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 D4C2243BF7; Wed, 28 Feb 2024 15:51:25 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C2E73433D2; Wed, 28 Feb 2024 15:51:25 +0100 (CET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2065.outbound.protection.outlook.com [40.107.21.65]) by mails.dpdk.org (Postfix) with ESMTP id 07758433A5 for ; Wed, 28 Feb 2024 15:51:24 +0100 (CET) ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=JMuo/dp4nIy/PMGsEXQLmzKGf5UTqHCnI3EoguLIIoxblbIY05FM4eIllsT9jB4eV+NlAsbNr0IvzHps2GIw3Qlpte+dcWwI+BZXgthXsK3ufTZFyByRH73CEanAr8NTmXcuPpV+PX1LXYF2bZ37Vh94nNGSr9yjIkSwuZEdf1rLxjpTkZlaW4LvniGMAVmu4lAXRazVQOi5yrRUInx/Ca9s8ShcRPA19SyTdJmkS9nL8Ay2OSwr8DlNV/6mi1kTbNSQdXMofeAARmhBxWKjOY6AGPixDcVI07A+Xa1g78jpU0k3fOSqqhepLXZQKyI/SirpAMjLYMd3hXoyTqDLxw== 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=fRFVV5Ie2WhFepF1auBr8+Lp1nZkkNMfEFeMf51W2+M=; b=jNOBsS8rBiSf6FT2gE68HjjPdjX+lCFtnAp/WrNS+jqOnDCGHMJqBU3vKMFGju7k/eLNthvpE9ErOdL+iv8V5UNoYD/Bn/akMaZqlzliT1ynqeSGtTgaw9DQkn6y0rY1FOnbeSDm0LJYe/vog81CD3s2qjyN5FY5BYTXe9d28c7PjX+nkGWjVhwJS5i7LFieyhxylAO8DVhelq3qoGY7SIh9Dcd+2RyuglGawE2MEXR89JHkVmcflCj36v7ZdnmXiLoEwvYxu/uld+VLFF8X3Aj9G66XxsMhtoqFR+vH2FyueJcAUNzdv4ny2f3wTim8PwNg2nuiakLvKX+rFKAEvg== 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=fRFVV5Ie2WhFepF1auBr8+Lp1nZkkNMfEFeMf51W2+M=; b=QkdoBG4KMAmEFl27bWWNtLSoz98iAeu3XzqzZMy2OQ3qwsLiZvCY+jYkTRIRq1FIxoYp31K7/ur+BzYarlmm2NaI37KdPBRyJ6Iuq5kLpcgSph2RADyYgiRwZOLotPeD0zN7ELvsTCgZKO5Gj6TRJMF3s9SNDcTd2+im0sM0xSU= Received: from DU7PR01CA0002.eurprd01.prod.exchangelabs.com (2603:10a6:10:50f::24) by GV1PR08MB8742.eurprd08.prod.outlook.com (2603:10a6:150:86::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.36; Wed, 28 Feb 2024 14:51:21 +0000 Received: from DB5PEPF00014B91.eurprd02.prod.outlook.com (2603:10a6:10:50f:cafe::b) by DU7PR01CA0002.outlook.office365.com (2603:10a6:10:50f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.27 via Frontend Transport; Wed, 28 Feb 2024 14:51:21 +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 DB5PEPF00014B91.mail.protection.outlook.com (10.167.8.229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.25 via Frontend Transport; Wed, 28 Feb 2024 14:51:21 +0000 Received: ("Tessian outbound c21fe6ca13cc:v228"); Wed, 28 Feb 2024 14:51:21 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 58ad395db0080366 X-CR-MTA-TID: 64aa7808 Received: from 953a67b12161.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 52F562CE-8833-457A-BBCD-CE25744C28D4.1; Wed, 28 Feb 2024 14:51:14 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 953a67b12161.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 28 Feb 2024 14:51:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cmj54bLVOcYMrYPRSVgho465LYbIpYb1qmzXBkJuuHnpnOgGwxH2HPNu+k81DSpcxy3FX2/4lxz4udDRlv0LgXGUpZrwWf5Ho7muvbZCle12cDQdglD+OkhBx6qPXC+TQv1Ix8jVXEaRN8oKigcPyMt1ao54FPiyBIr3BENqudNhi1yqsHMGkPibiP0PNrsQ74okrJMVKwtD5lH942NThgQOEs4dm8JqslylN4VsIvvMOKm0vbUE2uQwFTnARJXxp3PUwwZM7QgpRF7qCI8i8AlAqu1BYqXDTCWrSQcxTOLTkyXGVUp85R6ApQrX1mWSscbcd6PMkeNpIs5/CUuDaQ== 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=fRFVV5Ie2WhFepF1auBr8+Lp1nZkkNMfEFeMf51W2+M=; b=Rb+4n/Msi7sdAu4btyVL8BY3nMaHBuUyCEviSk0P2iaM5MIcUBqU2k5CI5mXIbO6LTs/EbwzYF7FJNFgoQ3RfR9/IdoVCpi7OtUBUWgoh0hy1ZStovtG+ENbRmSfA6zT8yJdSiogV89UCSt5Nc6vfQg+PNZqEh8pmsypB1jo4W8SRn4bEBvDS+JNTz1BR+KdR2MYP5OxiJhKKmGzcW28p9fItnLpfOmvpJ4GQJdo7TeKbuVBGMPs7fGkuzThbRJIwxJfytPs1Flsq0YSOgegWNhUkX/pMbk7STxKtBHmei2mK9RUBKoDRwClOW2uH5WhLoVZiQsAEmykJhzw9u/HRA== 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=fRFVV5Ie2WhFepF1auBr8+Lp1nZkkNMfEFeMf51W2+M=; b=QkdoBG4KMAmEFl27bWWNtLSoz98iAeu3XzqzZMy2OQ3qwsLiZvCY+jYkTRIRq1FIxoYp31K7/ur+BzYarlmm2NaI37KdPBRyJ6Iuq5kLpcgSph2RADyYgiRwZOLotPeD0zN7ELvsTCgZKO5Gj6TRJMF3s9SNDcTd2+im0sM0xSU= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by PAWPR08MB10041.eurprd08.prod.outlook.com (2603:10a6:102:34f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.36; Wed, 28 Feb 2024 14:51:11 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::ee47:c96a:3e95:14b6]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::ee47:c96a:3e95:14b6%6]) with mapi id 15.20.7316.034; Wed, 28 Feb 2024 14:51:11 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?QWJkdWxsYWggw5ZtZXIgWWFtYcOn?= CC: "Medvedkin, Vladimir" , "dev@dpdk.org" , Yipeng Wang , Sameh Gobriel , Bruce Richardson , "thomas@monjalon.net" , nd Subject: Re: [PATCH] lib/hash,lib/rcu: feature hidden key count in hash Thread-Topic: [PATCH] lib/hash,lib/rcu: feature hidden key count in hash Thread-Index: AQHaWdsUp7R5SbED7k6jnkoiEtQNRw== Date: Wed, 28 Feb 2024 14:51:10 +0000 Message-ID: References: <20240207153340.34146-1-aomeryamac@gmail.com> <4CC50196-1F8F-40E2-8280-261783FDCFC8@arm.com> <772E05E7-716C-4A41-8C75-7323D9D745BC@arm.com> <508D578D-7B2D-485A-A408-AB3513FBBBD5@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3774.400.31) Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: DBAPR08MB5814:EE_|PAWPR08MB10041:EE_|DB5PEPF00014B91:EE_|GV1PR08MB8742:EE_ X-MS-Office365-Filtering-Correlation-Id: 87e4459d-da76-4601-dde5-08dc386cba6a x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr 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: goxEjm/cVaX1DsDc/2IlAUm6dOonWkDQ5eSR4qkCczOvGS8xUGddWkGvwwOpMV32PFK0IbrGgv/ZGgkXocs4PE5cHBGODCaYtZrqOoWhDiXHNpAM4KZ4TwmjFoNOmYLKdqdoKeL2lorhWV1TNoQsEOucWPP+nUXBv6U4quDG9Xl+SRifEk6ZDxFRb2Qyqka7y6Ajt9oOg4t21vviaXOoL9EAOBbtd5MmqZwYU86eQtPboC2+M3iaDeuUn705ep+oLalS58qctJCj8o23HkL74tthojfmocxMPG3dBdqyZgUBQNc85RTsuPPYH3rjcrm5KwYTn5yDyugUHGXizezXSdZywKTWH/x7bUUStdmyR+tkXSVW9CZLqjg5xX2VZVMy7RfZi5naxKaklhg9QL9HzYP3E1tbLguzD1vcGXcDZG7W1gnOIeanb6YawSJWIZVpAd8jQ7FDF+BTgpOTqBK6iWNN74OwUR1cr3pSt7M7g7WssZ1FXUaxr4AwZ0JuuHCa6lGAsgm4eAxhjJjlevOxV5j/w63O4y8DZZ8UNvCLhDXLXhMArDYDCAhaO2NJU83fODoyCIkd3jt5AbuLKJejmmSkNgnEKf4vXoTBt9rqLt71h35m9XF7KVhjAz+S5X1aEQmpLIjMJxIGIbEGYfJI8dBsC0sUSICF1npfLdRdO271JqDJuEopQRSmAFO5azcdRUA61OnmWF/BeGD9gaW2GHh5+sgt8C4s6KArbOyjpSA= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(38070700009); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-ID: <60543A5FD0879643B89458740F792E8D@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10041 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: DB5PEPF00014B91.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 0886921f-09b7-4273-50e8-08dc386cb43a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8KdM5vRbcwIrQrMYtvkG3hJpsVBRCMX3B5c9szqTQSXzZCCPw9Sxgy23PdIPkQhf4utab8Rv5LqkeYkRmn41hY2n5l0mLqsRILA4U1B8wPf8ixAFh+clJhK0m18XuWi9PQCnkFLaExHJEymaLDHCyk+Wfb6NbQ892bbs3gnag9qsCzH7G2Svnib3DGAX/jYFkFWEabXCMxsvM3aeJXxB3BfUqUPZDweRNK8Dih4Eoi90XNLWXnevsFBOkALlcTkGoKJulQKgFSGP3tsDPfXtRgdb6EsGQ41ZR5pa003jo+DGZa7d7vPLblAkoHPDqwA4PfweLg4NKb4qEsyz4vXcDutFDL0XXpy00xa5vHeqoE1GerQKoA8xVzgSvSsdfjUUbqhFefcKCPkK2iLMYllu77LB+8mVR/PU/ez9KTEG5wA5zr9OGmzqGGTYMucuMAH/hetpVyA+u/FWCDQamQFVh584LrvkxhZpiiYLIhS3SNeN/3YO1cCURm3Jf1VvbAi/9fd4bJBCjAsLs/RoJSbqdjbFi61R5TlvGSwZOGhyn7+BWNnL9H82w8L2vsAf096t2UG95oXxdGpAZuOJa/8cYE0KZDupWsD8Bc3HfsL1+wKDSfd8sCzB3w8vztLT8Vc4cJHPfIWklYmTj0PdjXUuhsSKZqZNdUXPLzjtKHrrd4IU3U21Vf22wfUmHfaJf2xX7hRRldvZ6SwhQqTlfoWEuGYjmxRccjwQ21VXOD2fWoUgUv5YCBAXEf8hyk1kuTiP 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:(13230031)(82310400014)(36860700004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2024 14:51:21.4957 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 87e4459d-da76-4601-dde5-08dc386cba6a 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: DB5PEPF00014B91.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8742 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 DQoNCj4gT24gRmViIDI4LCAyMDI0LCBhdCA1OjQ04oCvQU0sIEFiZHVsbGFoIMOWbWVyIFlhbWHD pyA8YW9tZXJ5YW1hY0BnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gV2hpbGUgSSB3YXMgaW1wbGVt ZW50aW5nIHRoZSBuZXcgQVBJLCBJIHJlYWxpemVkIG9uZSBpc3N1ZSwgYW5kIGl0IHdvdWxkIGJl IGdvb2QgdG8gZGlzY3VzcyBpdCBoZXJlLiBGaXJzdCBvZiBhbGwgcnRlX3JjdV9xc2JyX2RxX3Jl Y2xhaW0gZnVuY3Rpb24gY2hlY2tzIHRoZSBzdGF0ZSBvZiB0aGUgcXNiciB2YWx1ZXMuIEl0IG1l YW5zIHRoYXQgYWxsIHRocmVhZHMgc2hvdWxkIHJlcG9ydCB0aGUgcXVpZXNjZW50IHN0YXRlcy4g SXQgY29uZmxpY3RzIHdpdGggbXkgYWltLg0KPiANCj4gTGV0J3MgdGhpbmsgYWJvdXQgYmVsb3cg c2NlbmFyaW86DQo+IEVpZ2h0IHRocmVhZHMgdXNlIGEgaGFzaCB0YWJsZSBhbmQgcGVyaW9kaWNh bGx5IHJlcG9ydCB0aGVpciBxdWllc2NlbnQgc3RhdGVzLiBPbmUgYWRkaXRpb25hbCB0aHJlYWQg KG1haW4gdGhyZWFkKSBwZXJpb2RpY2FsbHkgcmVwb3J0cyB0aGUgaGFzaCBzaXplLiBJIGltcGxl bWVudGVkIHRoZSByZWNsYWltIGZ1bmN0aW9uIGluIHRoYXQgdGhyZWFkLiBJIG1lYW4sIHRoZSBt YWluIHRocmVhZCBjYWxscyByZWNsYWltIGJlZm9yZSB0aGUgcnRlX2hhc2hfY291bnQuDQo+IA0K PiBIZXJlIGlzIHRoZSBleGNlcHRpb25hbCBjYXNlIHRoYXQgSSBjb3VsZG4ndCByZXRyaWV2ZSB0 aGUgY29ycmVjdCBoYXNoIHNpemU6DQo+IEFzc3VtZSB0aGF0IDYgb2YgOCB0aHJlYWRzIHJlcG9y dGVkIHF1aWVzY2VudCBzdGF0ZXMgYW5kIDIgb2YgdGhlbSBhcmUgc3RpbGwgd29ya2luZyBvbiBz b21lIHByb2Nlc3MgYW5kIGhhdmVuJ3QgcmVwb3J0ZWQgcXVpZXNjZW50IHN0YXRlcyB5ZXQuIFRo ZSBtYWluIHRocmVhZCBjYWxscyByZWNsYWltIGZ1bmN0aW9ucyBldmVyeSB0aW1lLCBidXQgZWxl bWVudHMgaW4gZHEgd2lsbCBub3QgYmUgZnJlZWQgYmVjYXVzZSAyIG9mIHRoZSB3b3JrZXIgdGhy ZWFkcyBoYXZlbid0IHJlcG9ydGVkIHRoZWlyIHN0YXRlcyAoZXNwZWNpYWxseSBpZiB0aGV5IGFy ZSB3YWl0aW5nIGZvciBzb21lIHBhY2tldHMpLiBTbywgbXkgZmlyc3QgcHJvcG9zZWQgbWV0aG9k IGlzIG1vcmUgc3VpdGFibGUgZm9yIHRoaXMgY2FzZS4gQW55IGlkZWE/DQpJZiAyIG91dCBvZiA4 IHRocmVhZHMgaGF2ZSBub3QgcmVwb3J0ZWQgdGhlaXIgcXVpZXNjZW50IHN0YXRlIHRoZW4gdGhl IGVsZW1lbnRzIHRoYXQgaGF2ZSBub3QgYmVlbiBhY2tub3dsZWRnZWQgYnkgdGhvc2UgMiB0aHJl YWRzIGNhbm5vdCBiZSByZWNsYWltZWQgYW5kIGNhbm5vdCBiZSBhbGxvY2F0ZWQgZm9yIGZ1cnRo ZXIgdXNlLiBVc2luZyB0aGlzIHlvdSBjYW4gY2FsY3VsYXRlIHRoZSBtb3N0IGFjY3VyYXRlIG51 bWJlciBvZiBlbnRyaWVzIGluIHRoZSBoYXNoIHRhYmxlIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlv bi4NCg0KPiANCj4gT24gVGh1LCBGZWIgMjIsIDIwMjQgYXQgNzo0NOKAr1BNIEhvbm5hcHBhIE5h Z2FyYWhhbGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPiB3cm90ZToNCj4gDQo+IA0K PiA+IE9uIEZlYiAyMiwgMjAyNCwgYXQgNjozOeKAr0FNLCBBYmR1bGxhaCDDlm1lciBZYW1hw6cg PGFvbWVyeWFtYWNAZ21haWwuY29tPiB3cm90ZToNCj4gPiANCj4gPiBBcyBhIGZpbmFsIGRlY2lz aW9uLCBJIHdpbGwgYWRkIGEgbmV3IGhhc2ggQVBJIHRoYXQgZm9yY2VzIHRoZSByZWNsYWltLiBJ cyBpdCBvayBmb3IgZXZlcnlvbmU/DQo+IEFjayBmcm9tIG15IHNpZGUNCj4gDQo+ID4gDQo+ID4g T24gVGh1LCBGZWIgMjIsIDIwMjQgYXQgNTozN+KAr0FNIEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxI b25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPiB3cm90ZToNCj4gPiANCj4gPiANCj4gPiA+IE9u IEZlYiAyMSwgMjAyNCwgYXQgMzo1MeKAr1BNLCBBYmR1bGxhaCDDlm1lciBZYW1hw6cgPGFvbWVy eWFtYWNAZ21haWwuY29tPiB3cm90ZToNCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IE9u IFdlZCwgRmViIDIxLCAyMDI0IGF0IDY6MjTigK9BTSBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9u bmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4gd3JvdGU6DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4g PiBPbiBGZWIgMjAsIDIwMjQsIGF0IDEyOjU44oCvUE0sIEFiZHVsbGFoIMOWbWVyIFlhbWHDpyA8 YW9tZXJ5YW1hY0BnbWFpbC5jb20+IHdyb3RlOg0KPiA+ID4gPiANCj4gPiA+ID4gSSBhcHByZWNp YXRlIHRoYXQgeW91IGdhdmUgbWUgc3VnZ2VzdGlvbnMgYW5kIGNvbW1lbnRzLiBJIHdpbGwgbWFr ZSBjaGFuZ2VzIGFjY29yZGluZyB0byBhbGwgeW91ciByZWNvbW1lbmRhdGlvbnMsIGJ1dCBiZWZv cmUgdGhhdCwgSSB3YW50IHRvIG1ha2UgZXZlcnlvbmUncyBtaW5kcyBjbGVhci4gVGhlbiwgSSB3 aWxsIGFwcGx5IG1vZGlmaWNhdGlvbnMuIA0KPiA+ID4gPiANCj4gPiA+ID4gT24gVHVlLCBGZWIg MjAsIDIwMjQgYXQgMjozNeKAr0FNIEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25uYXBwYS5OYWdh cmFoYWxsaUBhcm0uY29tPiB3cm90ZToNCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+IE9u IEZlYiAxOSwgMjAyNCwgYXQgMzoyOOKAr1BNLCBBYmR1bGxhaCDDlm1lciBZYW1hw6cgPGFvbWVy eWFtYWNAZ21haWwuY29tPiB3cm90ZToNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBIZWxsbywNCj4g PiA+ID4gPiANCj4gPiA+ID4gPiBMZXQgbWUgZXhwbGFpbiBhIHVzZSBjYXNlOw0KPiA+ID4gPiA+ IA0KPiA+ID4gPiA+IEkgaGF2ZSBhIGhhc2ggdGFibGUgd2hvc2Uga2V5IHZhbHVlIGlzIElQIGFk ZHJlc3NlcywgYW5kIGRhdGEgKGxldCdzIHNheSB0aGUgdXNlcm5hbWUgb2YgdGhlIElQKSBpcyBy ZWxhdGVkIHRvIHRoZSBJUCBhZGRyZXNzLiBUaGUga2V5IHBvaW50IGlzIG1hdGNoaW5nIHRoZXNl IGRhdGEgd2l0aCBmbG93cy4gRmxvd3MgYXJlIGR5bmFtaWMsIGFuZCB0aGlzIGhhc2ggdGFibGUg aXMgZHluYW1pYywgYXMgd2VsbDsgYm90aCBjYW4gY2hhbmdlIGFueXRpbWUuIEZvciBleGFtcGxl LCB3aGVuIGEgZmxvdyBzdGFydHMsIHdlIGxvb2sgdXAgdGhlIGhhc2ggdGFibGUgd2l0aCB0aGUg Y29ycmVzcG9uZGluZyBJUCBhbmQgcmV0cmlldmUgdGhlIHVzZXJuYW1lLiBXZSBuZWVkIHRvIGhv bGQgdGhpcyB1c2VybmFtZSB1bnRpbCB0aGUgZmxvdyB0ZXJtaW5hdGVzLCBhbHRob3VnaCB3ZSBy ZW1vdmVkIHRoaXMgSVAga2V5IGZyb20gdGhlIGhhc2ggdGFibGUgKG11bHRpdGhyZWFkKS4gVGhh dCdzIHdoeSB3ZSBoYXZlIFJDVSBhbmQgZGVmZXIgcXVldWUgaXMgbmVjZXNzYXJ5IGZvciBoaWdo IHBlcmZvcm1hbmNlLiBJbiBteSBhcHBsaWNhdGlvbiwgSSBuZWVkIHRvIGtub3cgdGhlIG51bWJl ciBvZiBJUC11c2VybmFtZSBlbnRyaWVzLiBUaGVzZSBudW1iZXJzIGNhbiBiZSBjYWxjdWxhdGVk IGJ5IHJ0ZV9oYXNoX2NvdW50IC0gZGVmZXIgcXVldWUgc2l6ZS4NCj4gPiA+ID4gVGhlIGVudHJp ZXMgaW4gdGhlIGRlZmVyIHF1ZXVlIGFyZSBub3QgcmVjbGFpbWVkICh0aGVyZSBpcyBhIHByb2Jh YmlsaXR5IHRoYXQgYWxsIG9mIHRoZW0gY2FuIGJlIHJlY2xhaW1lZCkgYW5kIGhlbmNlIHRoZXkg YXJlIG5vdCBhdmFpbGFibGUgZm9yIGFsbG9jYXRpb24uIFNvLCBydGVfaGFzaF9jb3VudCAtIGRl ZmVyIHF1ZXVlIHNpemUgbWlnaHQgbm90IGdpdmUgeW91IHRoZSBjb3JyZWN0IG51bWJlciB5b3Ug YXJlIGV4cGVjdGluZy4NCj4gPiA+ID4gDQo+ID4gPiA+IEN1cnJlbnRseSwgdGhlcmUgaXMgbm8g QVBJIGluIGhhc2ggbGlicmFyeSB0aGF0IGZvcmNlcyBhIHJlY2xhaW0uIERvZXMgaXQgbWFrZXMg c2Vuc2UgdG8gaGF2ZSBhbiBBUEkgdGhhdCBqdXN0IGRvZXMgdGhlIHJlY2xhaW0gKGFuZCByZXR1 cm5zIHRoZSBudW1iZXIgb2YgZW50cmllcyBwZW5kaW5nIGluIHRoZSBkZWZlciBxdWV1ZSk/IEEg Y2FsbCB0byBydGVfaGFzaF9jb3VudCBzaG91bGQgcHJvdmlkZSB0aGUgZXhhY3QgY291bnQgeW91 IGFyZSBsb29raW5nIGZvci4NCj4gPiA+ID4gWW91IGFyZSByaWdodDsgbm8gQVBJIGluIHRoZSBo YXNoIGxpYnJhcnkgZm9yY2VzIGEgcmVjbGFpbS4gSW4gbXkgYXBwbGljYXRpb24sIEkgcGVyaW9k aWNhbGx5IGNhbGwgcnRlX2NvdW50IHRvIHJldHJpZXZlIGhhc2ggc2l6ZSwgYW5kIHRoaXMgZGF0 YSBpcyBzaG93biBpbiBteSBHVUkuIFNvIHRoYXQgbWVhbnMgSSBuZWVkIHRvIGNhbGwgcmVndWxh cmx5IHJlY2xhaW0uIEkgYW0gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hpY2ggaXMgYmV0dGVyLCBj YWxsaW5nIHJlY2xhaW0gb3IgcmV0cmlldmluZyB0aGUgZGVmZXIgcXVldWUgc2l6ZS4gQW55IGNv bW1lbnQgYWJvdXQgdGhpcz8NCj4gPiA+IFJldHJpZXZpbmcgdGhlIGRlZmVyIHF1ZXVlIHNpemUg d2lsbCBiZSBjaGVhcGVyLiBIb3dldmVyLCBjYWxsaW5nIHRoZSByZWNsYWltIEFQSSB3aWxsIGVu c3VyZSB0aGUgZW50cmllcyBhcmUgZnJlZWQgaGVuY2UgcHJvdmlkaW5nIGFuIGFjY3VyYXRlIG51 bWJlci4gQ2FsbGluZyB0aGUgcmVjbGFpbSBBUEkgb24gYW4gZW1wdHkgZGVmZXIgcXVldWUgZG9l cyBub3QgY29uc3VtZSBtYW55IGN5Y2xlcy4gSWYgbmVlZGVkIHdlIGNvdWxkIGFkZCBhIGNoZWNr IGZvciBlbXB0eSBkZWZlciBxdWV1ZSBpbiB0aGUgcmVjbGFpbSBBUEkgYW5kIHJldHVybiBlYXJs eS4NCj4gPiA+IA0KPiA+ID4gSSBhbSBhbHNvIHdvbmRlcmluZyBpZiBhIHJlY2xhaW0gQVBJIGlu IGhhc2ggbGlicmFyeSBpcyBuZWVkZWQuIFdoeSBub3QgY2FsbCBydGVfcmN1X3FzYnJfZHFfcmVj bGFpbSBBUEkgZnJvbSB0aGUgYXBwbGljYXRpb24/DQo+ID4gPiBUaGUgcmVhc29uIGlzIHNpbXBs ZS4gc3RydWN0IHJ0ZV9oYXNoICpoIGlzIGFuIGludGVybmFsIHN0cnVjdHVyZSBhbmQgd2UgY2Fu bm90IGFjY2VzcyB0aGUgaC0+ZHEuIFNvIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjYWxsIHJlY2xh aW0uDQo+ID4gQWNrLiBUaGlzIHdpbGwgYmUganVzdCBhIHdyYXBwZXIgYXJvdW5kIHRoZSBydGVf cmN1X3FzYnJfZHFfcmVjbGFpbS4NCj4gPiANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gSSB0aGluayBpZiB5b3UgbmVlZCBhIG5vbi1ibG9ja2luZyBhbmQgbXVsdGl0aHJl YWRlZCBoYXNoIHRhYmxlLCBhbiBSQ1UtZW5hYmxlZCBoYXNoIHRhYmxlIGlzIG5lY2Vzc2FyeS4g QWxzbywgdGhpcyBBUEkgaXMgbmVjZXNzYXJ5IGlmIHlvdSBuZWVkIHRvIGdldCB0aGUgYWN0dWFs IG1hdGNoYWJsZSBzaXplLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IE9uIE1vbiwgRmViIDE5LCAyMDI0IGF0IDg6 MzbigK9QTSBNZWR2ZWRraW4sIFZsYWRpbWlyIDx2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwuY29t PiB3cm90ZToNCj4gPiA+ID4gPiBIaSBBYmR1bGxhaCwNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBD b3VsZCB5b3UgcGxlYXNlIHRlbGwgbW9yZSBhYm91dCB1c2UgY2FzZXMgd2hlcmUgdGhpcyBBUEkg bWF5IGJlIHVzZWZ1bD8NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+YSBuZXcgQVBJIHRvIGdldCB0 aGUgaGlkZGVuIGtleSBjb3VudCBpbiB0aGUgaGFzaCB0YWJsZSBpZiB0aGUgcmN1IHFzYnIgaXMg ZW5hYmxlZA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEhlcmUgaW4gY29tbWl0IG1lc3NhZ2UgYW5k IGRvd24gYmVsb3cgaW4gZG94eWdlbiBjb21tZW50cywgSSB0aGluayB0aGlzIA0KPiA+ID4gPiA+ IHN0YXRlbWVudCBzaG91bGQgYmUgbW9yZSBzcGVjaWZpYyBiZWNhdXNlIHJjdSBjYW4gYmUgY3Jl YXRlZCB3aXRoIA0KPiA+ID4gPiA+IFJURV9IQVNIX1FTQlJfTU9ERV9TWU5DIG1vZGUgaS5lLiB3 aXRob3V0IGRlZmVyIHF1ZXVlLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEFsc28sIG5ldyBBUEkg bXVzdCBiZSByZWZsZWN0ZWQgaW4gcmVsZWFzZSBub3Rlcw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ IE9uIDA3LzAyLzIwMjQgMTU6MzMsIEFiZHVsbGFoIMOWbWVyIFlhbWHDpyB3cm90ZToNCj4gPiA+ ID4gPiA+IFRoaXMgcGF0Y2ggaW50cm9kdWNlIGEgbmV3IEFQSSB0byBnZXQgdGhlIGhpZGRlbiBr ZXkgY291bnQgaW4gdGhlIGhhc2gNCj4gPiA+ID4gPiA+IHRhYmxlIGlmIHRoZSByY3UgcXNiciBp cyBlbmFibGVkLiBXaGVuIHVzaW5nIHJ0ZV9oYXNoX2NvdW50IHdpdGggcmN1DQo+ID4gPiA+ID4g PiBxc2JyIGVuYWJsZWQsIGl0IHdpbGwgcmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhh dCBhcmUgbm90IGluIHRoZQ0KPiA+ID4gPiA+ID4gZnJlZSBxdWV1ZS4gVW5sZXNzIHJ0ZV9yY3Vf cXNicl9kcV9yZWNsYWltIGlzIGNhbGxlZCwgdGhlIG51bWJlciBvZg0KPiA+ID4gPiA+ID4gZWxl bWVudHMgaW4gdGhlIGRlZmVyIHF1ZXVlIHdpbGwgbm90IGJlIGNvdW50ZWQgYW5kIGZyZWVkLiBU aGVyZWZvcmUgSQ0KPiA+ID4gPiA+ID4gYWRkZWQgYSBuZXcgQVBJIHRvIGdldCB0aGUgbnVtYmVy IG9mIGhpZGRlbiAoZGVmZXIgcXVldWUpIGVsZW1lbnRzDQo+ID4gPiA+ID4gPiBpbiB0aGUgaGFz aCB0YWJsZS4gVGhlbiB0aGUgdXNlciBjYW4gY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2YN Cj4gPiA+ID4gPiA+IGVsZW1lbnRzIHRoYXQgYXJlIGF2YWlsYWJsZSBpbiB0aGUgaGFzaCB0YWJs ZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBYmR1bGxhaCDDlm1l ciBZYW1hw6cgPGFvbWVyeWFtYWNAZ21haWwuY29tPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IC0tLQ0KPiA+ID4gPiA+ID4gQ2M6IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxob25uYXBwYS5uYWdh cmFoYWxsaUBhcm0uY29tPg0KPiA+ID4gPiA+ID4gQ2M6IFlpcGVuZyBXYW5nIDx5aXBlbmcxLndh bmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IFNhbWVoIEdvYnJpZWwgPHNhbWVoLmdvYnJp ZWxAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IEJydWNlIFJpY2hhcmRzb24gPGJydWNlLnJp Y2hhcmRzb25AaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IFZsYWRpbWlyIE1lZHZlZGtpbiA8 dmxhZGltaXIubWVkdmVka2luQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ ID4gICBsaWIvaGFzaC9ydGVfY3Vja29vX2hhc2guYyB8ICA5ICsrKysrKysrKw0KPiA+ID4gPiA+ ID4gICBsaWIvaGFzaC9ydGVfaGFzaC5oICAgICAgICB8IDEzICsrKysrKysrKysrKysNCj4gPiA+ ID4gPiA+ICAgbGliL2hhc2gvdmVyc2lvbi5tYXAgICAgICAgfCAgMSArDQo+ID4gPiA+ID4gPiAg IGxpYi9yY3UvcnRlX3JjdV9xc2JyLmMgICAgIHwgIDggKysrKysrKysNCj4gPiA+ID4gPiA+ICAg bGliL3JjdS9ydGVfcmN1X3FzYnIuaCAgICAgfCAxMSArKysrKysrKysrKw0KPiA+ID4gPiA+ID4g ICBsaWIvcmN1L3ZlcnNpb24ubWFwICAgICAgICB8ICAxICsNCj4gPiA+ID4gPiA+ICAgNiBmaWxl cyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gZGlm ZiAtLWdpdCBhL2xpYi9oYXNoL3J0ZV9jdWNrb29faGFzaC5jIGIvbGliL2hhc2gvcnRlX2N1Y2tv b19oYXNoLmMNCj4gPiA+ID4gPiA+IGluZGV4IDcwNDU2NzU0YzQuLjM1NTNmM2VmYzcgMTAwNjQ0 DQo+ID4gPiA+ID4gPiAtLS0gYS9saWIvaGFzaC9ydGVfY3Vja29vX2hhc2guYw0KPiA+ID4gPiA+ ID4gKysrIGIvbGliL2hhc2gvcnRlX2N1Y2tvb19oYXNoLmMNCj4gPiA+ID4gPiA+IEBAIC01NTUs NiArNTU1LDE1IEBAIHJ0ZV9oYXNoX21heF9rZXlfaWQoY29uc3Qgc3RydWN0IHJ0ZV9oYXNoICpo KQ0KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICByZXR1cm4gaC0+ZW50cmllczsNCj4gPiA+ID4g PiA+ICAgfQ0KPiA+ID4gPiA+ID4gICANCj4gPiA+ID4gPiA+ICtpbnQzMl90DQo+ID4gPiA+ID4g PiArcnRlX2hhc2hfZHFfY291bnQoY29uc3Qgc3RydWN0IHJ0ZV9oYXNoICpoKQ0KPiA+ID4gPiA+ ID4gK3sNCj4gPiA+ID4gPiA+ICsgICAgIGlmIChoLT5kcSA9PSBOVUxMKQ0KPiA+ID4gPiA+IGlu cHV0IGFyZ3VtZW50cyBtdXN0IGJlIGNoZWNrZWQgc2luY2UgdGhpcyBpcyBhIHB1YmxpYyBBUEks IHRoZSBzYW1lIGlzIA0KPiA+ID4gPiA+IHRydWUgZm9yIHJ0ZV9yY3VfcXNicl9kcV9jb3VudCgp DQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ID4gPiA+IHdo eSBub3QganVzdCByZXR1cm4gMD8NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsgICAgIHJl dHVybiBydGVfcmN1X3FzYnJfZHFfY291bnQoaC0+ZHEpOw0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICAgaW50MzJfdA0KPiA+ID4gPiA+ID4gICBydGVfaGFzaF9j b3VudChjb25zdCBzdHJ1Y3QgcnRlX2hhc2ggKmgpDQo+ID4gPiA+ID4gPiAgIHsNCj4gPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9saWIvaGFzaC9ydGVfaGFzaC5oIGIvbGliL2hhc2gvcnRlX2hhc2gu aA0KPiA+ID4gPiA+ID4gaW5kZXggN2VjYzAyMTExMS4uOGVhOTdlMjk3ZCAxMDA2NDQNCj4gPiA+ ID4gPiA+IC0tLSBhL2xpYi9oYXNoL3J0ZV9oYXNoLmgNCj4gPiA+ID4gPiA+ICsrKyBiL2xpYi9o YXNoL3J0ZV9oYXNoLmgNCj4gPiA+ID4gPiA+IEBAIC0xOTMsNiArMTkzLDE5IEBAIHJ0ZV9oYXNo X2ZyZWUoc3RydWN0IHJ0ZV9oYXNoICpoKTsNCj4gPiA+ID4gPiA+ICAgdm9pZA0KPiA+ID4gPiA+ ID4gICBydGVfaGFzaF9yZXNldChzdHJ1Y3QgcnRlX2hhc2ggKmgpOw0KPiA+ID4gPiA+ID4gICAN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsvKioNCj4gPiA+ID4gPiA+ICsgKiBSZXR1cm4g dGhlIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBkZWZlciBxdWV1ZSBvZiB0aGUgaGFzaCB0YWJs ZQ0KPiA+ID4gPiA+ID4gKyAqIGlmIFJDVSBpcyBlbmFibGVkLg0KPiA+ID4gPiA+ID4gKyAqIEBw YXJhbSBoDQo+ID4gPiA+ID4gPiArICogIEhhc2ggdGFibGUgdG8gcXVlcnkgZnJvbQ0KPiA+ID4g PiA+ID4gKyAqIEByZXR1cm4NCj4gPiA+ID4gPiA+ICsgKiAgIC0gLUVJTlZBTCBpZiBwYXJhbWV0 ZXJzIGFyZSBpbnZhbGlkDQo+ID4gPiA+ID4gPiArICogICAtIEEgdmFsdWUgaW5kaWNhdGluZyBo b3cgbWFueSByZWNvcmRzIHdlcmUgaW5zZXJ0ZWQgaW4gdGhlIHRhYmxlLg0KPiA+ID4gPiA+IGRp ZCB5b3UgbWVhbiBob3cgbWFueSByZWNvcmRzIGFyZSBrZXB0IGluIGRlZmVyIHF1ZXVlPw0KPiA+ ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gK2ludDMyX3QNCj4gPiA+ID4gPiA+ICtydGVfaGFz aF9kcV9jb3VudChjb25zdCBzdHJ1Y3QgcnRlX2hhc2ggKmgpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gICAvKioNCj4gPiA+ID4gPiA+ICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2Yga2V5 cyBpbiB0aGUgaGFzaCB0YWJsZQ0KPiA+ID4gPiA+ID4gICAgKiBAcGFyYW0gaA0KPiA+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL2xpYi9oYXNoL3ZlcnNpb24ubWFwIGIvbGliL2hhc2gvdmVyc2lvbi5t YXANCj4gPiA+ID4gPiA+IGluZGV4IDZiMmFmZWJmNmIuLjdmN2IxNThjZjEgMTAwNjQ0DQo+ID4g PiA+ID4gPiAtLS0gYS9saWIvaGFzaC92ZXJzaW9uLm1hcA0KPiA+ID4gPiA+ID4gKysrIGIvbGli L2hhc2gvdmVyc2lvbi5tYXANCj4gPiA+ID4gPiA+IEBAIC05LDYgKzksNyBAQCBEUERLXzI0IHsN Cj4gPiA+ID4gPiA+ICAgICAgIHJ0ZV9oYXNoX2FkZF9rZXlfd2l0aF9oYXNoOw0KPiA+ID4gPiA+ ID4gICAgICAgcnRlX2hhc2hfYWRkX2tleV93aXRoX2hhc2hfZGF0YTsNCj4gPiA+ID4gPiA+ICAg ICAgIHJ0ZV9oYXNoX2NvdW50Ow0KPiA+ID4gPiA+ID4gKyAgICAgcnRlX2hhc2hfZHFfY291bnQ7 DQo+ID4gPiA+ID4gbmV3IEFQSSBtdXN0IGludHJvZHVjZWQgYXMgYW4gZXhwZXJpbWVudGFsIEFQ SS4gVGhlIHNhbWUgaXMgdHJ1ZSBmb3IgDQo+ID4gPiA+ID4gcnRlX3JjdV9xc2JyX2RxX2NvdW50 KCkNCj4gPiA+ID4gPiA+ICAgICAgIHJ0ZV9oYXNoX2NyYzMyX2FsZzsNCj4gPiA+ID4gPiA+ICAg ICAgIHJ0ZV9oYXNoX2NyY19zZXRfYWxnOw0KPiA+ID4gPiA+ID4gICAgICAgcnRlX2hhc2hfY3Jl YXRlOw0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9yY3UvcnRlX3JjdV9xc2JyLmMgYi9s aWIvcmN1L3J0ZV9yY3VfcXNici5jDQo+ID4gPiA+ID4gPiBpbmRleCBiZDBiODNiZTBjLi44OWY4 ZGE0YzRjIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvbGliL3JjdS9ydGVfcmN1X3FzYnIuYw0K PiA+ID4gPiA+ID4gKysrIGIvbGliL3JjdS9ydGVfcmN1X3FzYnIuYw0KPiA+ID4gPiA+ID4gQEAg LTQ1MCw2ICs0NTAsMTQgQEAgcnRlX3JjdV9xc2JyX2RxX3JlY2xhaW0oc3RydWN0IHJ0ZV9yY3Vf cXNicl9kcSAqZHEsIHVuc2lnbmVkIGludCBuLA0KPiA+ID4gPiA+ID4gICAgICAgcmV0dXJuIDA7 DQo+ID4gPiA+ID4gPiAgIH0NCj4gPiA+ID4gPiA+ICAgDQo+ID4gPiA+ID4gPiArLyoqDQo+ID4g PiA+ID4gPiArICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiBhIGRlZmVyIHF1ZXVl Lg0KPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gK3Vuc2lnbmVkIGludCBydGVfcmN1X3Fz YnJfZHFfY291bnQoc3RydWN0IHJ0ZV9yY3VfcXNicl9kcSAqZHEpDQo+ID4gPiA+ID4gPiArew0K PiA+ID4gPiBQbGVhc2UgdmFsaWRhdGUgZHEgaGVyZS4NCj4gPiA+ID4gDQo+ID4gPiA+ID4gPiAr ICAgICByZXR1cm4gcnRlX3JpbmdfY291bnQoZHEtPnIpOw0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICAgLyogRGVsZXRlIGEgZGVmZXIgcXVldWUuICovDQo+ID4g PiA+ID4gPiAgIGludA0KPiA+ID4gPiA+ID4gICBydGVfcmN1X3FzYnJfZHFfZGVsZXRlKHN0cnVj dCBydGVfcmN1X3FzYnJfZHEgKmRxKQ0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9yY3Uv cnRlX3JjdV9xc2JyLmggYi9saWIvcmN1L3J0ZV9yY3VfcXNici5oDQo+ID4gPiA+ID4gPiBpbmRl eCAyM2M5Zjg5ODA1Li5lZDVhNTkwZWRkIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvbGliL3Jj dS9ydGVfcmN1X3FzYnIuaA0KPiA+ID4gPiA+ID4gKysrIGIvbGliL3JjdS9ydGVfcmN1X3FzYnIu aA0KPiA+ID4gPiA+ID4gQEAgLTc5NCw2ICs3OTQsMTcgQEAgaW50DQo+ID4gPiA+ID4gPiAgIHJ0 ZV9yY3VfcXNicl9kcV9yZWNsYWltKHN0cnVjdCBydGVfcmN1X3FzYnJfZHEgKmRxLCB1bnNpZ25l ZCBpbnQgbiwNCj4gPiA+ID4gPiA+ICAgICAgIHVuc2lnbmVkIGludCAqZnJlZWQsIHVuc2lnbmVk IGludCAqcGVuZGluZywgdW5zaWduZWQgaW50ICphdmFpbGFibGUpOw0KPiA+ID4gPiA+ID4gICAN Cj4gPiA+ID4gPiA+ICsvKioNCj4gPiA+ID4gPiA+ICsgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBl bnRyaWVzIGluIGEgZGVmZXIgcXVldWUuDQo+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ICsg KiBAcGFyYW0gZHENCj4gPiA+ID4gPiA+ICsgKiAgIERlZmVyIHF1ZXVlLg0KPiA+ID4gPiA+ID4g KyAqIEByZXR1cm4NCj4gPiA+ID4gPiA+ICsgKiAgIFRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0 aGUgZGVmZXIgcXVldWUuDQo+ID4gPiA+ID4gPiArICovDQo+ID4gPiA+ID4gPiArdW5zaWduZWQg aW50DQo+ID4gPiA+ID4gPiArcnRlX3JjdV9xc2JyX2RxX2NvdW50KHN0cnVjdCBydGVfcmN1X3Fz YnJfZHEgKmRxKTsNCj4gPiA+ID4gQWdyZWUgb24gdGhlIG5lZWQgZm9yIHRoaXMgQVBJIGluIFJD VQ0KPiA+ID4gPiANCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICAgLyoqDQo+ID4gPiA+ID4g PiAgICAqIERlbGV0ZSBhIGRlZmVyIHF1ZXVlLg0KPiA+ID4gPiA+ID4gICAgKg0KPiA+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL2xpYi9yY3UvdmVyc2lvbi5tYXAgYi9saWIvcmN1L3ZlcnNpb24ubWFw DQo+ID4gPiA+ID4gPiBpbmRleCA5ODJmZmQ1OWQ5Li5mNDEwYWI0MWU3IDEwMDY0NA0KPiA+ID4g PiA+ID4gLS0tIGEvbGliL3JjdS92ZXJzaW9uLm1hcA0KPiA+ID4gPiA+ID4gKysrIGIvbGliL3Jj dS92ZXJzaW9uLm1hcA0KPiA+ID4gPiA+ID4gQEAgLTUsNiArNSw3IEBAIERQREtfMjQgew0KPiA+ ID4gPiA+ID4gICAgICAgcnRlX3JjdV9xc2JyX2RxX2NyZWF0ZTsNCj4gPiA+ID4gPiA+ICAgICAg IHJ0ZV9yY3VfcXNicl9kcV9kZWxldGU7DQo+ID4gPiA+ID4gPiAgICAgICBydGVfcmN1X3FzYnJf ZHFfZW5xdWV1ZTsNCj4gPiA+ID4gPiA+ICsgICAgIHJ0ZV9yY3VfcXNicl9kcV9jb3VudDsNCj4g PiA+ID4gPiA+ICAgICAgIHJ0ZV9yY3VfcXNicl9kcV9yZWNsYWltOw0KPiA+ID4gPiA+ID4gICAg ICAgcnRlX3JjdV9xc2JyX2R1bXA7DQo+ID4gPiA+ID4gPiAgICAgICBydGVfcmN1X3FzYnJfZ2V0 X21lbXNpemU7DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gLS0gDQo+ID4gPiA+ID4gUmVnYXJkcywN Cj4gPiA+ID4gPiBWbGFkaW1pcg0KPiA+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+IA0KPiA+IA0K PiANCg0K