From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F136C433FE for ; Wed, 9 Nov 2022 05:30:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 006746B0074; Wed, 9 Nov 2022 00:30:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EF8876B0075; Wed, 9 Nov 2022 00:30:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D4B908E0001; Wed, 9 Nov 2022 00:30:15 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BD4DD6B0074 for ; Wed, 9 Nov 2022 00:30:15 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8B8051C6DC2 for ; Wed, 9 Nov 2022 05:30:15 +0000 (UTC) X-FDA: 80112777990.30.CB2BF7E Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01on2051.outbound.protection.outlook.com [40.107.113.51]) by imf18.hostedemail.com (Postfix) with ESMTP id E338D1C0016 for ; Wed, 9 Nov 2022 05:30:09 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SNAcuMSunHcLBuA9YZ7qB1uQDF2Db1vFK7vipM1BzNLsUPohctFmQB2tTeLQh25roCml56fgppHcg+a30e7DGHKrOEU2gwLR64d+q9+VbiItY9vmWfSeIsavV68ys+nS7yG3TbzyDr6YvrfYjedYVe1Pghu0RgGUEzvvowIxDIuaiu4m9PVbAFaDn3PNcwXnnPwYcoI0BJLdT/FUMWaT4s0PJL/g8iHg4bL1xPnu0Zhc2bMbYlUi9+NrKVoFhocmGOkYeZb/BuwLX5LxCcjsZL5rQyBb5N5w6sxicspeGp5eoGVJ2gEy8jOlshgStW0fHYf8PAVe9Hvn61v7u+MpsA== 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=0lUM+1oJ+EH7dLkTp+vZyvx1dwQuSKKO4TVZjvbe91Y=; b=KRjMSvpXu5sRlX4TWT5NL/WUOlBqtmmcNHt1s5e8fu6G+Q96dP4kw/GjaSrd6KLA+D1uYxoDil2yByWpd+vDm77JBYyVsYCm3tOax1BaaBHTobesSDCeVscKhnHzkOaFdAojan42tDX+x/5qpmZWw8D+zwIBRT4J/SId5V2NKUReSwSS8Ao/pcb3o58uEQjSsmsGevyKpOyJMGHc/ydaAP+xtW8UNiznzET2ak0Ssoln55y7bt6lEH9Xva36gxhcV1s7p8Un7Z2H020uJ996vkeSq4RVkkILUWxhcPXp2D2RJbUYIxHjKHkvaDCUI/zB5Fh7/36xhWZ91nGfS1TArA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nec.com; dmarc=pass action=none header.from=nec.com; dkim=pass header.d=nec.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nec.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0lUM+1oJ+EH7dLkTp+vZyvx1dwQuSKKO4TVZjvbe91Y=; b=luMK26CrGVL4124jr50qJB7cX/VsOp0f+rHtuomOyPdtTZAZCoSuEH9rQhKS53k4i53+KmDTETBcT1esWGFosBTwhggMY9h0/9+DV7vyAg43GLXJr539rPWPE5lb3Ni0NxW2iEBeOQ3SV7NgWKCZORtocqqc6ISj+FD7uJ8AYDw= Received: from TYWPR01MB8591.jpnprd01.prod.outlook.com (2603:1096:400:13c::10) by TY3PR01MB10127.jpnprd01.prod.outlook.com (2603:1096:400:1d8::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27; Wed, 9 Nov 2022 05:29:09 +0000 Received: from TYWPR01MB8591.jpnprd01.prod.outlook.com ([fe80::9f34:8082:cd2f:589c]) by TYWPR01MB8591.jpnprd01.prod.outlook.com ([fe80::9f34:8082:cd2f:589c%9]) with mapi id 15.20.5791.027; Wed, 9 Nov 2022 05:29:09 +0000 From: =?utf-8?B?SE9SSUdVQ0hJIE5BT1lBKOWggOWPo+OAgOebtOS5nyk=?= To: Jiaqi Yan CC: "tony.luck@intel.com" , "dave.hansen@linux.intel.com" , "david@redhat.com" , "erdemaktas@google.com" , "pgonda@google.com" , "rientjes@google.com" , "duenwen@google.com" , "Vilas.Sridharan@amd.com" , "mike.malvestuto@intel.com" , "gthelen@google.com" , "linux-mm@kvack.org" , "jthoughton@google.com" , "Ghannam, Yazen" Subject: Re: [RFC] Kernel Support of Memory Error Detection. Thread-Topic: [RFC] Kernel Support of Memory Error Detection. Thread-Index: AQHY75xi2gotv3xeiEWGPGjQ44FwC642GSgA Date: Wed, 9 Nov 2022 05:29:09 +0000 Message-ID: <20221109052908.GB527418@hori.linux.bs1.fc.nec.co.jp> References: <20221103155029.2451105-1-jiaqiyan@google.com> In-Reply-To: <20221103155029.2451105-1-jiaqiyan@google.com> Accept-Language: ja-JP, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYWPR01MB8591:EE_|TY3PR01MB10127:EE_ x-ms-office365-filtering-correlation-id: 38c24c3c-dfe2-4274-3df5-08dac21353dd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iCsOurDDgJZ9gxdieCaAPGWH8csf8jAyRbc0HiQVVPOYq7uv4JFzEpjH1xGX/KQZ/bZEkh8yvYpxQhMITnW3WOTDRzKFbeFXGUkjnNZQ7SRG+/lUjz/iT/7X3fxYEt69ZJpndMc09xABanony2k90LcYc8G1XBUmqQD8MzNLZ16zE+mW1/MuHzrAMRRUUScqT0NTrj/kGedADnzwGKmFTxOeL7s46hvfPiWBPEUy6wwR75X6HrgLH2HyKehFabv74SKixAdF5RJdfCeLAVfsv58mWkOJm7SJvQByASFXGt3CXOU2bu4GPqkuOfLMO0rypfFbEjI9Ilab9q9eU7MoXPI6s9tsYcX3Dt/5fV//9BVMHX0hG9PY18hk7j9bASp/4/F/rIe+BLQeBF7qO2EPyD1e1JFLkNr0oa7aVYH/Rqow7XzNk3xksZJ89sFiocG2ajAxRmpGpdc/eDLIUb65yovfU77QuheZdQqJdBx9UjuDbeNNKu+pqfC9YZdsKi02iMRPuJ9dDSYWgOQqrFq0e3ym4NJmNLxhpubQieJqT9jQKDocJLR9px388xpzx3ZTYzIXPzeO5/FEfO2wD7YuwAjE1KgjpHh57bvg1MOkAlOkPhskAyP+mGbnaaZXxBMq9wuxCvDB+nV+7od6wiFHfIO+yRVV26JueXbuYrp9FoFGpFi+AuGfHT4Fy5Lca1kJn9HROequaSfVcObP9dm/PsO+cgOFOTlE8rCSIl7uMrOBii8qBG7su0jeGQ1BvzN32yprk2kXd/oPfZovlWua2g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWPR01MB8591.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(136003)(366004)(346002)(396003)(39860400002)(451199015)(186003)(1076003)(83380400001)(9686003)(6512007)(26005)(6506007)(55236004)(8676002)(86362001)(38070700005)(5660300002)(66476007)(85182001)(66946007)(4326008)(6486002)(478600001)(76116006)(71200400001)(66556008)(33656002)(54906003)(7416002)(66446008)(316002)(8936002)(38100700002)(41300700001)(82960400001)(122000001)(64756008)(2906002)(6916009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OVg3WXNiMi9yeUoxbi9UblJpV3hUUUVRb3BpL1NGTTZsbmdiM2F1endRWWZJ?= =?utf-8?B?OTRQUDlKelhSaTNpQ25YTm1CS2RQOG1JeFVwQUtqNE5rMjV0TXdQYU0vRzAw?= =?utf-8?B?NUducFFFV0FPMWZ5akszOHFCVzlZRytDZU52d0tBTm5lV3huMklTNndmY1BB?= =?utf-8?B?WHNlbC9pVHh4eEtkMUtzSEZKd2VJQmdtQTIzSlBtVWhqR2d3Qlc5T0ZzRXkx?= =?utf-8?B?U2ZNbGlYblN3bWlRN09zaW1JZmFkdUIxTTlyRW9XODJBTEZFOWYzQnZ0YVpR?= =?utf-8?B?M2VQMDhSdVpqaWNYWkErQUpQbnRkbGFOM0hodWtzWVZPaktuTkVlWUIxOS9t?= =?utf-8?B?UnRuY0ZLYXF0ZWp3SVUrK1M3N2ZTb0hkM093K2FYSEhCbVBoWEMwektvRWd5?= =?utf-8?B?VDRLVEpUbjJJci9IWTRwWUZFbnQyL2JoSnJ2SXZkMndxWGhWZ1JFM3NORmZR?= =?utf-8?B?TXVrUnVYZEtTM0VaR1VHcmI2YlVkZ3oyUHhYSGV3SUhBV1E2NC9pTU1wWUdq?= =?utf-8?B?YlI1Q01wQ0xRYVRidjRzZHo4eVdaMUpLelRXRndPTEl2eVc2OVJmeCtmQ2pv?= =?utf-8?B?OHhtRHpLNnV3eGtTbDVOZ3E3ZGlpdkxCa1lZeEpMM1FSRnhVa05ualQ5Rmhm?= =?utf-8?B?dk1YYVpCUVNwLytiT2ZScGo2VXFJUVB5VVRQTXVUQWRCbW5sWmF3VjdHTjRl?= =?utf-8?B?UmZpTFNUdnZ6VDJRWUF5S3g0M2E5cmJ0ckJERy8zNE4vcDZYZ0ZpSVp6VERR?= =?utf-8?B?azBYRlFjWThKbVNHdVpnd3RjQkp2UEJTM0U4SGNpb25QVlc2bXc0UXVDN3Y0?= =?utf-8?B?WWhZc2V4VDljTzF0VVFrWHN6NFgyakxBL3ZYV3MyVHhBYlFYTi9YaGRENGNu?= =?utf-8?B?eEliRVUwWnUwYUd3YTRCOENPai81bUMzZ2tOMXp3elMxSHFmczJpbmxhZDRp?= =?utf-8?B?VWg0bnk1bWRiTHdWVXdDRS93QktneUdCelVMaTJ6YnhRMVNiTXNmemhleWZK?= =?utf-8?B?WlRITjUvNnZjQ0QxMmNQdE1JbjVnMjhETm81M2hpWlNGZ0EvRUlqZ3dUcmlv?= =?utf-8?B?TEFFTXFxeFpEN1pWVFFLellRRnR0OUVXK0V0MWxVVytoTzZUWkwrU243UjMy?= =?utf-8?B?K0sySVNJdktSZE83SStxZlZUMFp4eks5UTRFZCtvQlFhaVZGUWMzZ0VZK0li?= =?utf-8?B?UmlBVWV2RUZIQzFMbzJxdGhqalNBYjBCMW9wYlVQY253MHlFMldFVmF5dUVy?= =?utf-8?B?ckQ5WlI5Y3VwTHhMNXRYRDUvTzdmQURhZzVEN3RRa3Y2Z1BOSGFHdDNPWDFz?= =?utf-8?B?cCtUSEl2amJodmFhc1NUOWVQQi9PSWZBOVlqUlVCVlJSaDZmYXhpVlYrUTdj?= =?utf-8?B?OVh5WGQrYXAxQzRjZS96WTFvcUs4aEtmR0d4MUVOOHBkU3Z5VVByM21rYms3?= =?utf-8?B?Z1A2MmZxbUVMNGNBNHphSkhGQ2owRVkvcjNtaUsrKzhOWkFPVHloUWFhMEJP?= =?utf-8?B?aCtTenI0TnlRSERvQXQ2N1lkTnRkRnNsNi8rWjJOWm5kdEdsZGtZVkJJWjEz?= =?utf-8?B?c3A1RTZDTzl5d3o2YVRWU3p1K0lzZkQ1eHJUTTdGVUhwRCtncFUxY1p2ZFo5?= =?utf-8?B?emJjSW9LUENGNWhKUzV3bTQwcnBTSWV1bTBDdTYyNlRNTDk4TWIzZVdVNXVY?= =?utf-8?B?bUxHTkhjWjExWlVySUlJdmlXeVI2Zll6dUlyRW10ekRTZjVCbVg5eHpwUVRT?= =?utf-8?B?VndvOTdyd2w3SWJhVUlqTEk3SDlORmdhOUM2aHR1cGlLdzB5TmUwTGJUdWJo?= =?utf-8?B?T0pvSEg2ZmhoTXhoc3hhbnFSQnYrU1NQVzVod0QrczM1Ymp2MXd3SmtoSktI?= =?utf-8?B?c0lDZjZZZ2ZmN1piZUpCaXVoQS81Smc4cWYrUDUxekFhMjFqRzU3YktxSFBn?= =?utf-8?B?VTYyemduSkZJU1BTZ1ZEczdMS2NGa0tOY0w3OTRCNXlmanZPSjJqc01yY1pK?= =?utf-8?B?QzhiUy8xOGg5TjZJMFBYUmp3aVRBSWt3VFIyOS9mM20xRlRoSk1KNW1NVjhl?= =?utf-8?B?YTV1T0hpTDQwNmZpd1JheERiKzZLVjVtdXYwRDZ3aHlPSTBpT1luQ0swVG1j?= =?utf-8?B?WkpOWjYrTWFMOWt0Sjd0UllFTGFaeXVFTUN6Nm9aRUV1cE1WRndyMDJHeHQ2?= =?utf-8?B?Nnc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <73965B71706E9D4DA5238F8B75DE39D4@jpnprd01.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nec.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYWPR01MB8591.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38c24c3c-dfe2-4274-3df5-08dac21353dd X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2022 05:29:09.3053 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e67df547-9d0d-4f4d-9161-51c6ed1f7d11 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JoNTpsrM3nB37TL8puBwitmj8cBxIy1LsLbzo8+/z3Z1RRxS3u7O4CL8q4bLqMLdISYpA8GVDmvQeioY+82d2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY3PR01MB10127 ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667971810; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=0lUM+1oJ+EH7dLkTp+vZyvx1dwQuSKKO4TVZjvbe91Y=; b=fbe9sdp+OdZQj+Us7vsAcABKWzBj4x7sEZWL1B3oZeQ5RJM7xpy36lxmqwmRg4ujQlD7FP e75LRumLer5tAs3xzOYnBsMb/cpnLdW6KNfKsefFw6SWDPxUTQEVuDdqWpNyBoLggtQFWe uAnbJG+DE0o4cNH9mhu5jS0cz8dy+os= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=nec.com header.s=selector1 header.b=luMK26Cr; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf18.hostedemail.com: domain of naoya.horiguchi@nec.com designates 40.107.113.51 as permitted sender) smtp.mailfrom=naoya.horiguchi@nec.com; dmarc=pass (policy=none) header.from=nec.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1667971810; a=rsa-sha256; cv=pass; b=Ee9IKfF4BtByC4tfjZU8Hzy7fnTU/MzdCiU/YCl3Hf8iqGyo1ceCaSDrwrXUhwg067zBro n8OsHsGRN5JBinxS2XfT9uiTvGJmDA12VSV6VRrhXCcSS9I5YqK78+jPGjBYPT0bGcNTCD PyVYX6fismoOl1SrqpvVuWyV4DIgcRk= X-Rspamd-Queue-Id: E338D1C0016 Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=nec.com header.s=selector1 header.b=luMK26Cr; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf18.hostedemail.com: domain of naoya.horiguchi@nec.com designates 40.107.113.51 as permitted sender) smtp.mailfrom=naoya.horiguchi@nec.com; dmarc=pass (policy=none) header.from=nec.com X-Rspamd-Server: rspam10 X-Rspam-User: X-Stat-Signature: 7p7ktupqr8ayxy9a6hustz3eii64j757 X-HE-Tag: 1667971809-226729 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: T24gVGh1LCBOb3YgMDMsIDIwMjIgYXQgMDM6NTA6MjlQTSArMDAwMCwgSmlhcWkgWWFuIHdyb3Rl Og0KPiBUaGlzIFJGQyBpcyBhIGZvbGxvd3VwIGZvciBbMV0uIFdl4oCZZCBsaWtlIHRvIGZpcnN0 IHJldmlzaXQgdGhlIHByb2JsZW0NCj4gc3RhdGVtZW50LCB0aGVuIGV4cGxhaW4gdGhlIG1vdGl2 YXRpb24gZm9yIGtlcm5lbCBzdXBwb3J0IG9mIG1lbW9yeQ0KPiBlcnJvciBkZXRlY3Rpb24uIFdl IGF0dGVtcHQgdG8gYW5zd2VyIHR3byBrZXkgcXVlc3Rpb25zIHJhaXNlZCBpbiB0aGUNCj4gaW5p dGlhbCBtZW1vcnktc2Nhbm5pbmcgYmFzZWQgc29sdXRpb246IHdoYXQgbWVtb3J5IHRvIHNjYW4g YW5kIGhvdyB0aGUNCj4gc2Nhbm5lciBzaG91bGQgYmUgZGVzaWduZWQuIERpZmZlcmVudCBmcm9t IHdoYXQgWzFdIG9yaWdpbmFsbHkgcHJvcG9zZWQsDQo+IHdlIHRoaW5rIGEga2VybmVsLWRyaXZl biBkZXNpZ24gc2ltaWxhciB0byBraHVnZXBhZ2VkL2tjb21wYWN0ZCB3b3VsZA0KPiB3b3JrIGJl dHRlciB0aGFuIHRoZSB1c2Vyc3BhY2UtZHJpdmVuIGRlc2lnbi4NCj4gDQo+IFByb2JsZW0gU3Rh dGVtZW50DQo+ID09PT09PT09PT09PT09PT09DQo+IFRoZSBldmVyIGluY3JlYXNpbmcgRFJBTSBz aXplIGFuZCBjb3N0IGhhcyBicm91Z2h0IHRoZSBtZW1vcnkgc3Vic3lzdGVtDQo+IHJlbGlhYmls aXR5IHRvIHRoZSBmb3JlZnJvbnQgb2YgbGFyZ2UgZmxlZXQgb3duZXJz4oCZIGNvbmNlcm4uIE1l bW9yeQ0KPiBlcnJvcnMgYXJlIG9uZSBvZiB0aGUgdG9wIGhhcmR3YXJlIGZhaWx1cmVzIHRoYXQg Y2F1c2Ugc2VydmVyIGFuZA0KPiB3b3JrbG9hZCBjcmFzaGVzLiBTaW1wbHkgZGVwbG95aW5nIGV4 dHJhLXJlbGlhYmxlIERSQU0gaGFyZHdhcmUgdG8gYQ0KPiBsYXJnZS1zY2FsZSBjb21wdXRpbmcg ZmxlZXQgYWRkcyBzaWduaWZpY2FudCBjb3N0LCBlLmcuLCAxMCUgZXh0cmEgY29zdA0KPiBvbiBE UkFNIGNhbiBhbW91bnQgdG8gaHVuZHJlZHMgb2YgbWlsbGlvbnMgb2YgZG9sbGFycy4NCj4gDQo+ IFJlYWN0aXZlIG1lbW9yeSBwb2lzb24gcmVjb3ZlcnkgKE1QUiksIGUuZy4sIHJlY292ZXJpbmcg ZnJvbSBNQ0VzIHJhaXNlZA0KPiBkdXJpbmcgYW4gZXhlY3V0aW9uIGNvbnRleHQgKHRoZSBrZXJu ZWwgbWVjaGFuaXNtcyBhcmUgTUNFIGhhbmRsZXIgKw0KPiBDT05GSUdfTUVNT1JZX0ZBSUxVUkUg KyBTSUdCVVMgdG8gdGhlIHVzZXIgc3BhY2UgcHJvY2VzcyksIGhhcyBiZWVuIGZvdW5kDQo+IGVm ZmVjdGl2ZSBpbiBrZWVwaW5nIHN5c3RlbXMgcmVzaWxpZW50IGZyb20gbWVtb3J5IGVycm9ycy4g SG93ZXZlciwNCj4gcmVhY3RpdmUgbWVtb3J5IHBvaXNvbiByZWNvdmVyeSBoYXMgc2V2ZXJhbCBt YWpvciBkcmF3YmFja3M6DQo+IC0gSXQgcmVxdWlyZXMgc29mdHdhcmUgc3lzdGVtcyB0aGF0IGFj Y2VzcyBwb2lzb25lZCBtZW1vcnkgdG8NCj4gICBiZSBzcGVjaWZpY2FsbHkgZGVzaWduZWQgYW5k IGltcGxlbWVudGVkIHRvIHJlY292ZXIgZnJvbSBtZW1vcnkgZXJyb3JzLg0KPiAgIFVuY29ycmVj dGFibGUgKFVDKSBlcnJvcnMgYXJlIHJhbmRvbSwgd2hpY2ggbWF5IGhhcHBlbiBvdXRzaWRlIG9m IHRoZQ0KPiAgIGVubGlnaHRlbmVkIGFkZHJlc3Mgc3BhY2VzIG9yIGV4ZWN1dGlvbiBjb250ZXh0 cy4gVGhlIGFkZGVkIGVycm9yDQo+ICAgcmVjb3ZlcnkgY2FwYWJpbGl0eSBjb21lcyBhdCB0aGUg Y29zdCBvZiBhZGRlZCBjb21wbGV4aXR5IGFuZCBvZnRlbg0KPiAgIGltcG9zc2libGUgdG8gZW5s aWdodGVuIGluIDNyZCBwYXJ0eSBzb2Z0d2FyZS4NCj4gLSBJbiBhIHZpcnR1YWxpemVkIGVudmly b25tZW50LCB0aGUgaW5qZWN0ZWQgTUNFcyBpbnRyb2R1Y2UgdGhlIHNhbWUNCj4gICBjaGFsbGVu Z2UgdG8gdGhlIGd1ZXN0Lg0KPiAtIEl0IG9ubHkgY292ZXJzIE1DRXMgcmFpc2VkIGJ5IENQVSBh Y2Nlc3NlcywgYnV0IHRoZSBzY29wZSBvZiBtZW1vcnkNCj4gICBlcnJvciBpc3N1ZSBpcyBmYXIg YmV5b25kIHRoYXQuIEZvciBleGFtcGxlLCBQQ0llIGRldmljZXMgKGUuZy4gTklDIGFuZA0KPiAg IEdQVSkgYWNjZXNzaW5nIHBvaXNvbmVkIG1lbW9yeSBjYXVzZSBob3N0IGNyYXNoZXMgd2hlbg0K PiAgIG9uIGNlcnRhaW4gbWFjaGluZSBjb25maWdzLg0KPiANCj4gV2Ugd2FudCB0byB1cHN0cmVh bSBhIHBhdGNoIHNldCB0aGF0IHByb2FjdGl2ZWx5IHNjYW5zIHRoZSBtZW1vcnkgRElNTXMNCj4g YXQgYSBjb25maWd1cmFibGUgcmF0ZSB0byBkZXRlY3QgVUMgbWVtb3J5IGVycm9ycywgYW5kIGF0 dGVtcHRzIHRvDQo+IHJlY292ZXIgdGhlIGRldGVjdGVkIG1lbW9yeSBlcnJvcnMuIFdlIGNhbGwg aXQgcHJvYWN0aXZlIE1QUiwgd2hpY2gNCj4gcHJvdmlkZXMgdGhyZWUgYmVuZWZpdHMgdG8gdGFj a2xlIHRoZSBtZW1vcnkgZXJyb3IgcHJvYmxlbToNCj4gLSBQcm9hY3RpdmVseSBzY2FubmluZyBt ZW1vcnkgRElNTXMgcmVkdWNlcyB0aGUgY2hhbmNlIG9mIGEgY29ycmVjdGFibGUNCj4gICBlcnJv ciBiZWNvbWluZyB1bmNvcnJlY3RhYmxlLg0KPiAtIE9uY2UgZGV0ZWN0ZWQsIFVDIGVycm9ycyBj YXVnaHQgaW4gdW5hbGxvY2F0ZWQgbWVtb3J5IHBhZ2VzIGFyZQ0KPiAgIGlzb2xhdGVkIGFuZCBw cmV2ZW50ZWQgZnJvbSBiZWluZyBhbGxvY2F0ZWQgdG8gYW4gYXBwbGljYXRpb24gb3IgdGhlIE9T Lg0KPiAtIFRoZSBwcm9iYWJpbGl0eSBvZiBzb2Z0d2FyZS9oYXJkd2FyZSBwcm9kdWN0cyBlbmNv dW50ZXJpbmcgbWVtb3J5DQo+ICAgZXJyb3JzIGlzIHJlZHVjZWQsIGFzIHRoZXkgYXJlIG9ubHkg ZXhwb3NlZCB0byBtZW1vcnkgZXJyb3JzIGRldmVsb3BlZA0KPiAgIG92ZXIgYSB3aW5kb3cgb2Yg VCwgd2hlcmUgVCBzdGFuZHMgZm9yIHRoZSBwZXJpb2Qgb2Ygc2NydWJiaW5nIHRoZQ0KPiAgIGVu dGlyZSBtZW1vcnkgc3BhY2UuIEFueSBtZW1vcnkgZXJyb3JzIHRoYXQgb2NjdXJyZWQgbW9yZSB0 aGFuIFQgYWdvDQo+ICAgc2hvdWxkIGhhdmUgcmVzdWx0ZWQgaW4gY3VzdG9tIHJlY292ZXJ5IGFj dGlvbnMuIEZvciBleGFtcGxlLCBpbiBhIGNsb3VkDQo+ICAgZW52aXJvbm1lbnQgVk1zIGNhbiBi ZSBsaXZlIG1pZ3JhdGVkIHRvIGFub3RoZXIgaGVhbHRoeSBob3N0Lg0KPiANCj4gU29tZSBDUFUg dmVuZG9ycyBbMiwgM10gcHJvdmlkZSBoYXJkd2FyZSBwYXRyb2wgc2NydWJiZXIgKEhQUykgdG8N Cj4gcHJldmVudCB0aGUgYnVpbGQgdXAgb2YgbWVtb3J5IGVycm9ycy4gSW4gY29tcGFyaXNvbiBz b2Z0d2FyZSBtZW1vcnkNCj4gZXJyb3IgZGV0ZWN0b3IgKFNXKSBoYXMgcHJvcyBhbmQgY29uczoN Cj4gLSBTVyBzdXBwb3J0cyBhZGFwdGl2ZSBzY2FubmluZywgaS5lLiBzcGVlZHMgdXAvZG93biBz Y2FubmluZywgdHVybnMNCj4gICBvbi9vZmYgc2Nhbm5pbmcsIGFuZCB5aWVsZHMgaXRzIG93biBD UFUgY3ljbGVzIGFuZCBtZW1vcnkgYmFuZHdpZHRoLg0KPiAgIEFsbCBvZiB0aGVzZSBjYW4gaGFw cGVuIG9uLXRoZS1mbHkgYmFzZWQgb24gdGhlIHN5c3RlbSB3b3JrbG9hZCBzdGF0dXMNCj4gICBv ciBhZG1pbmlzdHJhdG9y4oCZcyBjaG9pY2UuIEhQUyBkb2VzbuKAmXQgaGF2ZSBhbGwgdGhlc2Ug ZmxleGliaWxpdGllcy4NCj4gICBJdHMgcGF0cm9sIHNwZWVkIGlzIHVzdWFsbHkgb25seSBjb25m aWd1cmFibGUgYXQgYm9vdCB0aW1lLCBhbmQgaXQgaXMNCj4gICBub3QgYWJsZSB0byBjb25zaWRl ciBzeXN0ZW0gc3RhdGUuIChOb3RlOiBIUFMgaXMgYSBtZW1vcnkgY29udHJvbGxlcg0KPiAgIGZl YXR1cmUgYW5kIHVzdWFsbHkgZG9lc27igJl0IGNvbnN1bWUgQ1BVIHRpbWUpLg0KPiAtIFNXIGNh biBleHBvc2UgY29udHJvbHMgdG8gc2NhbiBieSBtZW1vcnkgdHlwZXMsIHdoaWxlIEhQUyBhbHdh eXMgc2NhbnMNCj4gICBmdWxsIHN5c3RlbSBtZW1vcnkuIEZvciBleGFtcGxlLCBhbiBhZG1pbmlz dHJhdG9yIGNhbiB1c2UgU1cgdG8gb25seQ0KPiAgIHNjYW4gaHVnZXRsYiBtZW1vcnkgb24gdGhl IHN5c3RlbS4NCj4gLSBTVyBjYW4gc2NhbiBtZW1vcnkgYXQgYSBmaW5lciBncmFudWxhcml0eSwg Zm9yIGV4YW1wbGUsIGhhdmluZyBkaWZmZXJlbnQNCj4gICBzY2FuIHJhdGUgcGVyIG5vZGUsIG9y IGVudGlyZWx5IGRpc2FibGVkIG9uIHNvbWUgbm9kZS4gSFBTLCBob3dldmVyLA0KPiAgIGN1cnJl bnRseSBvbmx5IHN1cHBvcnRzIHBlciBob3N0IHNjYW5uaW5nLg0KPiAtIFNXIGNhbiBtYWtlIHNj YW4gc3RhdGlzdGljcyAoZS5nLiBYIGJ5dGVzIGhhcyBiZWVuIHNjYW5uZWQgZm9yIHRoZQ0KPiAg IGxhc3QgWSBzZWNvbmRzIGFuZCBaIG1lbW9yeSBlcnJvcnMgYXJlIGZvdW5kKSBlYXNpbHkgdmlz aWJsZSB0bw0KPiAgIGRhdGFjZW50ZXIgYWRtaW5pc3RyYXRvcnMsIHdobyBjYW4gc2NoZWR1bGUg bWFpbnRlbmFuY2UgKGUuZy4gbWlncmF0aW5nDQo+ICAgcnVubmluZyBqb2JzIGJlZm9yZSByZXBh aXJpbmcgRElNTXMpIGFjY29yZGluZ2x5Lg0KDQpJIHRoaW5rIHRoYXQgZXhwb3NpbmcgbWVtb3J5 IGVycm9yIGluZm8gaW4gdGhlIHN5c3RlbSB0byB1c2VzcGFjZSBpcw0KdXNlZnVsIGluZGVwZW5k ZW50IG9mIHRoZSBuZXcgc2Nhbm5lci4NCg0KPiAtIFNX4oCZcyBmdW5jdGlvbmFsaXR5IGlzIGNv bnNpc3RlbnQgYWNyb3NzIGhhcmR3YXJlIHBsYXRmb3Jtcy4gSFBT4oCZcw0KPiAgIGZ1bmN0aW9u YWxpdHkgdmFyaWVzIGZyb20gdmVuZG9yIHRvIHZlbmRvci4gRm9yIGV4YW1wbGUsIHNvbWUgdmVu ZG9ycw0KPiAgIHN1cHBvcnQgc2hvcnRlciBzY3J1YmJpbmcgcGVyaW9kcyB0aGFuIG90aGVycywg YW5kIHNvbWUgdmVuZG9ycyBtYXkgbm90DQo+ICAgc3VwcG9ydCBtZW1vcnkgc2NydWJiaW5nIGF0 IGFsbC4NCj4gLSBIUFMgdXN1YWxseSBkb2VzbuKAmXQgY29uc3VtZSBDUFUgY29yZXMgYnV0IGRv ZXMgY29uc3VtZSBtZW1vcnkNCj4gICBjb250cm9sbGVyIGN5Y2xlcyBhbmQgbWVtb3J5IGJhbmR3 aWR0aC4gU1cgY29uc3VtZXMgYm90aCBDUFUgY3ljbGVzDQo+ICAgYW5kIG1lbW9yeSBiYW5kd2lk dGgsIGJ1dCBpcyBvbmx5IGEgcHJvYmxlbSBpZiBhZG1pbmlzdHJhdG9ycyBvcHQgaW50bw0KPiAg IHRoZSBzY2FubmluZyBhZnRlciB3ZWlnaGluZyB0aGUgY29zdCBiZW5lZml0Lg0KPiAtIEFzIENQ VSBjb3JlcyBhcmUgbm90IGNvbnN1bWVkIGJ5IEhQUywgdGhlcmUgd29u4oCZdCBiZSBhbnkgY2Fj aGUgaW1wYWN0Lg0KPiAgIFNXIGNhbiB1dGlsaXplIHByZWZldGNobnRhIChmb3IgeDg2KSBbNF0g YW5kIGVxdWl2YWxlbnQgaGludHMgZm9yIG90aGVyDQo+ICAgYXJjaGl0ZWN0dXJlcyBbNV0gdG8g bWluaW1pemUgY2FjaGUgaW1wYWN0IChpbiBjYXNlIG9mIHByZWZldGNobnRhLA0KPiAgIGNvbXBs ZXRlbHkgYXZvaWRpbmcgTDEvTDIgY2FjaGUgaW1wYWN0KS4NCj4gDQo+IFNvbHV0aW9uIFByb3Bv c2Fscw0KPiA9PT09PT09PT09PT09PT09PT0NCj4gDQo+IFdoYXQgdG8gU2Nhbg0KPiA9PT09PT09 PT09PT0NCj4gVGhlIGluaXRpYWwgUkZDIHByb3Bvc2VkIHRvIHNjYW4gdGhlICoqZW50aXJlIHN5 c3RlbSBtZW1vcnkqKiwgd2hpY2gNCj4gcmFpc2VkIHRoZSBxdWVzdGlvbiBvZiB3aGF0IG1lbW9y eSBpcyBzY2FubmFibGUgKGkuZS4gbWVtb3J5IGFjY2Vzc2libGUNCj4gZnJvbSBrZXJuZWwgZGly ZWN0IG1hcHBpbmcpLiBXZSBhdHRlbXB0IHRvIGFkZHJlc3MgdGhpcyBxdWVzdGlvbiBieQ0KPiBi cmVha2luZyBkb3duIHRoZSBtZW1vcnkgdHlwZXMgYXMgZm9sbG93czoNCj4gLSBTdGF0aWMgbWVt b3J5IHR5cGVzOiBtZW1vcnkgdGhhdCBlaXRoZXIgc3RheXMgc2Nhbm5hYmxlIG9yIHVuc2Nhbm5h YmxlLg0KPiAgIFdlbGwgZGVmaW5lZCBleGFtcGxlcyBhcmUgaHVnZXRsYiB2cyByZWd1bGFyIG1l bW9yeSwgbm9kZS1sb2NhbCBtZW1vcnkNCj4gICB2cyBmYXIgbWVtb3J5IChlLmcuIENYTCBvciBQ TUVNKS4gV2hpbGUgbW9zdCBzdGF0aWMgbWVtb3J5IHR5cGVzIGFyZQ0KPiAgIHNjYW5uYWJsZSwg YWRtaW5pc3RyYXRvcnMgY291bGQgZGlzYWJsZSBzY2FubmluZyBmYXIgbWVtb3J5IHRvIGF2b2lk DQo+ICAgbWVzc2luZyB3aXRoIHRoZSBwcm9tb3Rpb24gYW5kIGRlbW90aW9uIGxvZ2ljIGluIG1l bW9yeSB0aXJpbmcNCj4gICBzb2x1dGlvbnMuIChUaGUgaW1wbGVtZW50YXRpb24gd2lsbCBhbGxv dyBhZG1pbmlzdHJhdG9ycyB0byBkaXNhYmxlDQo+ICAgc2Nhbm5pbmcgb24gc2Nhbm5hYmxlIG1l bW9yeSkuDQoNCkkgdGhpbmsgdGhhdCBhbm90aGVyIHZpZXdwb2ludCBvZiBob3cgd2UgcHJpb3Jp dGl6ZSBtZW1vcnkgdHlwZSB0byBzY2FuDQppcyBrZXJuZWwgdnMgdXNlcnNwYWNlIG1lbW9yeS4g Q3VycmVudCBod3BvaXNvbiBtZWNoYW5pc20gZG9lcyBsaXR0bGUgdG8NCnJlY292ZXIgZnJvbSBl cnJvcnMgaW4ga2VybmVsIHBhZ2VzIChzbGFiLCByZXNlcnZlZCksIHNvIHRoZXJlIHNlZXNtDQps aXR0bGUgYmVuZWZpdCB0byBkZXRlY3Qgc3VjaCBlcnJvcnMgcHJvYWN0aXZlbHkgYW5kIGJlZm9y ZWhhbmQuICBJZiB0aGUNCnJlc291cmNlIGZvciBzY2FubmluZyBpcyBsaW1pdGVkLCB0aGUgdXNl ciBtaWdodCB0aGluayBvZiBmb2N1c2luZyBvbg0Kc2Nhbm5pbmcgdXNlcnNwYWNlIG1lbW9yeS4N Cg0KVGhhbmtzLA0KTmFveWEgSG9yaWd1Y2hp