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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B4F4EB64DA for ; Thu, 13 Jul 2023 03:26:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233602AbjGMD0C (ORCPT ); Wed, 12 Jul 2023 23:26:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232486AbjGMDZ7 (ORCPT ); Wed, 12 Jul 2023 23:25:59 -0400 Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED4B01FD6 for ; Wed, 12 Jul 2023 20:25:53 -0700 (PDT) X-UUID: f45bb54e212c11eeb20a276fd37b9834-20230713 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=g2qAZoqqHQJDKVVZa3WnIFmDhQ943+0J4fivOKgtIeU=; b=ODtsGI7MtBnYqWZ2uPZBlR7mAccbTL/Jb9I6xkFf31bV6KzOrF0JACVtVbEgod0LJr7eECdf2Fkfg4yF4AxxFCZEQhttRKTXUBZHeRuI5jlhXXgaJReeuxZbDwgIEBKaYb1b48YAFCCNf6OsOvbB9bRDq3re0ivK7+w3nkiA6q0=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.28,REQID:86b3b2d7-0a12-4b5a-8633-8421233889f0,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:176cd25,CLOUDID:83122d0e-c22b-45ab-8a43-3004e9216b56,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO, DKR:0,DKP:0 X-CID-BVR: 0,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: f45bb54e212c11eeb20a276fd37b9834-20230713 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 727385749; Thu, 13 Jul 2023 11:25:45 +0800 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs13n2.mediatek.inc (172.21.101.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Thu, 13 Jul 2023 11:25:44 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Thu, 13 Jul 2023 11:25:44 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RscIIhPNfVwpokBQcSrVp7b7BwQ23iVjEjsrgYAEhZRtq4fUljXcT518ELKDMiVvu1iFeonM81BJcgSndXngwbSLO9u7g5czAIozdrOIVCLeRutKOkgRhI5kBUGIvFPjJe7yw+Ey1umTDEc2Ye0nv93Li17l+iVp/DoC3Kyq5QskaWFAJwaR+OjqrV31cdLPia7HUO7kPVuf2szmQMawqC5Hx5pg+/qaRzte9tnjtetC56sGOzyRwZG4ip7hMOfCLXqw5NNe5qJPH6Z8Ez4f05Wu/EwAagpH5whzd+Z7AUtGkS+ze1kYHUy3NYDvJND6+gHTv37DNaBX78kWSEiMGQ== 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=g2qAZoqqHQJDKVVZa3WnIFmDhQ943+0J4fivOKgtIeU=; b=i07OwRbyCoCJTXjbBco5X0Nv6DOhIWxLS5OjZfZgCjabd6KgMKFkZtvdGSx5JxgPMq8TI1o8IWkoZ7TMtUGDnECeCWT//Xzi/TlGyqglvY/FwRR9+xoUAd/l1sl27vdT0SZqx9LxoGRmg1w/TBXEsSjRhnrSbsBerb24dwt7cOuFiRXQXqjBg0MgtUvmWSpXC2BvjhOHHkOi13JPHsSLV57dniHrSCsej2blQkhRVCQIjHvRV9FY9sQnx8ps1JcpxgbMNOF/osfH1GmvYoVcYxUInVqIRoWNN+wRE9mlYfSsGMhTXS+g4tnSQ66bDann+CFpn6LP5BHb8nW1anlCqQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g2qAZoqqHQJDKVVZa3WnIFmDhQ943+0J4fivOKgtIeU=; b=Uxpy3+PHoO31yTsZNGmKj0PUedPIWItv8+zHAm7TNp3AYqFvGWS7ly/p4J1q7/tEB75amK9FhZ25ORoNHmrhV3ybQtY2MV20nWNLCriaDqnvn5xCTIJk5qYqnqcs7JdmEapUAKjfTzX0kd9R0Ze27S8j3qk1nj7HlmiCKGAnqF8= Received: from PUZPR03MB5963.apcprd03.prod.outlook.com (2603:1096:301:b3::11) by PSAPR03MB5303.apcprd03.prod.outlook.com (2603:1096:301:20::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.20; Thu, 13 Jul 2023 03:25:41 +0000 Received: from PUZPR03MB5963.apcprd03.prod.outlook.com ([fe80::d21:7640:7279:f22a]) by PUZPR03MB5963.apcprd03.prod.outlook.com ([fe80::d21:7640:7279:f22a%4]) with mapi id 15.20.6588.024; Thu, 13 Jul 2023 03:25:40 +0000 From: =?utf-8?B?Sm9obiBIc3UgKOioseawuOe/sCk=?= To: "Liam.Howlett@Oracle.com" CC: =?utf-8?B?QW5kcmV3IFlhbmcgKOaliuaZuuW8tyk=?= , "linux-kernel@vger.kernel.org" , =?utf-8?B?UXVuLXdlaSBMaW4gKOael+e+pOW0tCk=?= , "surenb@google.com" , "linux-mm@kvack.org" , =?utf-8?B?Q2hpbndlbiBDaGFuZyAo5by16Yym5paHKQ==?= , =?utf-8?B?S3Vhbi1ZaW5nIExlZSAo5p2O5Yag56mOKQ==?= , =?utf-8?B?Q2FzcGVyIExpICjmnY7kuK3mpq4p?= , "akpm@linux-foundation.org" , "yuzhao@google.com" , "maple-tree@lists.infradead.org" Subject: Re: [BUG] trigger BUG_ON in mas_store_prealloc when low memory Thread-Topic: [BUG] trigger BUG_ON in mas_store_prealloc when low memory Thread-Index: AQHZmq2hr8VIEXfZDUmuykLw57Rh9K+IzHcAgAEbhYCAAJTEAIACtPMAgCAPjwCABeNrgIAAGmyAgAP+74A= Date: Thu, 13 Jul 2023 03:25:40 +0000 Message-ID: References: <9cb8c599b1d7f9c1c300d1a334d5eb70ec4d7357.camel@mediatek.com> <20230613141114.bwbnqsdazqbmyj3u@revolver> <3b14df2fc2a7f18fe12f87a27574b7d40f2899ba.camel@mediatek.com> <20230614155826.cxcpv33hs763gyrg@revolver> <20230706185436.agobbv72o3hma43z@revolver> <3507fdacf001c49f4c73f2952257beabfe9e1a53.camel@mediatek.com> <20230710142425.t5vhrqkjd7ugbmad@revolver> In-Reply-To: <20230710142425.t5vhrqkjd7ugbmad@revolver> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PUZPR03MB5963:EE_|PSAPR03MB5303:EE_ x-ms-office365-filtering-correlation-id: 6186a778-56fc-44f9-c462-08db8350d5a0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vfGKQAYmEteEB0DERpQy/ujhUv4eLwnRidjxaXv5mCz5rErc/BRWY77u+GEfa72PZDfJNS9C1qH78+yLAaR2ZbQTp8Bm8vghiTlMuUhFfhV2+vAsqQDHay8DgJmey7yu1Cs2U7/6/ihQ5qRMlILpCjfpZfGygs0rKSbLyGt2Ii1nltDCG78KZ6WPB6rvQJk87W+1GYwRFDRIsrIj1v+DOMtD8BkqBqHIOn3Yd0yF4zHOQIT6Pc8vcGUmKkaLqS9eiBA5xnJ6UN5+qyule/KORWvcvPgwUAtSE7rEpJAwo3Ew120jqdculCEIHLCt2Qd4/g5OfSf11pZZy9BBooRhrkHcgHZGy98UCEkhHU1LHi/jtlCcOzU4RWse3vromnFcGZfuTRIVCNJ6xizwhS4mdAThBFmEgybgVhak3ylZCRuhet/KSbwHczuk9So3yj4ah4TtpMXu7NP2NZ/RE6Y//WcD7Ha+4IBW9wOJBlWylMqHxyZoUTWANXn6pDAw6cI3TyHZnJdI1Y47gHbgDXYJtKVjIOzQtcs1n8EEisMSTHhFkYqkx8pBGlkmI//csf5KqvOvQeTXjOscocZ9l4gnKZAvyMn8tjs+kZwdCKNJDrpODLy8AHPJYEBTy33SU7Gtt/pE+OV1jszKHXlSn3VzTHzQYeKbJPdR7aGBbltNpqE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR03MB5963.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(376002)(396003)(346002)(39860400002)(136003)(366004)(451199021)(2906002)(54906003)(66556008)(71200400001)(478600001)(36756003)(8676002)(8936002)(85182001)(41300700001)(91956017)(66476007)(76116006)(66446008)(66946007)(4326008)(64756008)(316002)(6916009)(83380400001)(6486002)(122000001)(6512007)(38100700002)(5660300002)(6506007)(86362001)(38070700005)(2616005)(26005)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YjFpdm9hZ0hobmxYbXV0cnB2MUJOTkJpWkFzblNGZDJSWkRtaDU3Qm03S0gv?= =?utf-8?B?V3lIUExpZVBxZEtSays1Z1pLd01QMldHRVdqK3VXYjAxSXpjQ2VrYnNjc1hs?= =?utf-8?B?QnMyVnp0Sm56WmhwTVdmYTZTRW1yTm5rZmxrSGhBcmhzOWpKY3BEMjkyZ0hu?= =?utf-8?B?TWlHbGZCOENYenV3V0NKbk55QUZCZXE5MFJRRVdOY3Z4MWJHbFd4RHY4ZURH?= =?utf-8?B?Z29GTzV2aUtnYW1LREI4d1FQK0tLS0xrS3hpVmMrU2RYQjZiM2hhcksrbnU2?= =?utf-8?B?YndaSnlRVThIeW1IWUI0SFBKQWZhb2d2Z3BPbEgyWVVZdE1IS1FIa1ZidERI?= =?utf-8?B?cWROanBtQUdOczRiWC9vMkJ6R1hNbGRBeE4zckt4MUdOZWp1ek1jVWZadFdq?= =?utf-8?B?VFUvY1hGM2lURk1aN0pEOWNnaWpDRXlVbjBZUVEwS2NIdjg0WXZvSkNwNTUv?= =?utf-8?B?Vnk1L0VlOTlDSUpZaFhHeC9xVFdKVUJsT1JIZ0pkcGk1Rm1EbFJ1emtUamVW?= =?utf-8?B?STZCQndXR2duYnNzZXV0c2dMNXNPemx1NTU3VUdCS3dvMzltUnBVME5YZTZx?= =?utf-8?B?a05FUDg4UFNwVVROQWZJY0FXZlJuY3F1OXFmaUExSGhsdkZhWWpidi9kMU1I?= =?utf-8?B?dHh2bXk1aEFjK2hEZVRoVWtkSjZ0aStjOWU4ajZWN0JpamZ3VzFHTDBkNnlZ?= =?utf-8?B?cGNCdlZtNTlzeG8rTWV2VWpMWkgwR09PN2JjQmkyQm9QNVlHMEZMelBEbEFE?= =?utf-8?B?WklIWkFnU3VqenNlL1hXRXhnWXlVQVVrOGExVy9SbjlUSWJsaC9LSDBPaXBr?= =?utf-8?B?NWlYNllWVGYwQmV2ZmlZMUVrUnM5ZkVMSlllQjd1eGpFRUl1OERiR0QvTlZi?= =?utf-8?B?eFFCckZsU2dXbXZSYjlJbnZBYm94cG1xQ05scXpGS1ZMeXpiVnhJYVcvenRx?= =?utf-8?B?RndPLzRaaDlMemRVZDNqeEZ2cDNRZVQ4OGdDbk9xRTl4STYwTzBQRngwTmUw?= =?utf-8?B?aG9qanF2Mnp1ODNDeGtIWExZSnJxMHBEN0M1dUFiM1QrVk5COHNPNTlCQy9y?= =?utf-8?B?VjVvVW1BaWZQSnFQS1FxUkt4N2tKb0xZM3ozTkpQT3ozWEFUdUZnRkJpdEZR?= =?utf-8?B?QW9KZG4rNTFtMDhJaDV3Tll1aFJuVEFMLy9ESGVCbW1qenF6cHBoRkI4a2Nu?= =?utf-8?B?U3Q5Y1ZrSWx6bDMvUGRHcDMrZVpNWU9FS09GYVBaOGE2QjJ5dU41OGprR0ht?= =?utf-8?B?aEFqdzBVUC9lSWhRekRDUmdveU1FaWVHL1ZFY0lHU1Rjck1TMHAra2NWMEY1?= =?utf-8?B?bkhYZmF2cDhkajBDL0hkbjA3NEVhY28vcHNhUFJMd2FSaGlFM1BDVGNzWWtr?= =?utf-8?B?QS9rYnc1Sm9IeFRjK2U2THFlRC9qVjVCOXVqMFJvRzM4aVJGcTdDdTRkY0Zu?= =?utf-8?B?ZjFFeHlyTFh4cVRZUUJsM0I5NGZWZkRUc09oc1JtY2xIVjZUWC92SVJRNjJ1?= =?utf-8?B?a1JiVEg4NTRyVklycXdkV0tmVE1ReCt4Y2JJYUU0a3U0aXNvQ2ZZTW5OZ0dn?= =?utf-8?B?azdIM2RhcUVmU1plWENNMGhFcEpsRTZVMk5SRFBHN0NOYnptTmhxTnRlT2dw?= =?utf-8?B?ZUFiamg4U2Y3cGR0d05JK2RCVDVwa284aEtQTmlsM2hZY1RERXpnejd1Rnli?= =?utf-8?B?QmlvaCtMaWdtY213eXA4NjN3QnVJVVRyZ0Rva0FvQ0oyTWV1V2pDVFViUHU2?= =?utf-8?B?Y202MGpYVkY5dENuUXVtN0U5Mm5mL2VNcFZJejR2VWNOZExiZ0NWU0RlRFRs?= =?utf-8?B?bTVnK2gvbmNCY0FrWDdrS3hVRm9XMUJXTE5BVlk1d3V0QnltSDJmSXlKNE13?= =?utf-8?B?RTBWOGRhSnBUT1dzSlhBaXZsdGFPTGlkM3pWLzJUVDdmYy8xaVZ1NjM5Smx2?= =?utf-8?B?cVhhWG5URlg0bzdLM1B3ZS9WbFgybnBHU2pzOEkxeEJuOVplaUtQKytuR0Vx?= =?utf-8?B?czZmOE5GR1B6M3Bad241aWZGWjhOb2dheUowR0N0ZWJiblRxRTZ6Z1V6UG9X?= =?utf-8?B?cngxc01XQUh5VzBJZ1paQnkwOFZzMVpVd2pRQWtuWXc4aDJsZWJCTTR5SXFl?= =?utf-8?B?RnJ5Z3VtYUNzS0o5VEk0OWlqWlZHektPM2N1Tkw3OTRXYjJJN1A5MkZPZmFL?= =?utf-8?B?OFE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <7F0090BCC181FA42B78C358ADFC0FA96@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PUZPR03MB5963.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6186a778-56fc-44f9-c462-08db8350d5a0 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jul 2023 03:25:40.7303 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Rm6jHbcYuCactXrQyCHx204JAlZLf0CHaOLjLQSDhU7AT3ZSUOQSeD1AdOq9U8+J1HBCkkRg3z8+2BP4H4pe4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PSAPR03MB5303 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDIzLTA3LTEwIGF0IDEwOjI0IC0wNDAwLCBMaWFtIFIuIEhvd2xldHQgd3JvdGU6 DQo+ICAJIA0KPiBFeHRlcm5hbCBlbWFpbCA6IFBsZWFzZSBkbyBub3QgY2xpY2sgbGlua3Mgb3Ig b3BlbiBhdHRhY2htZW50cyB1bnRpbA0KPiB5b3UgaGF2ZSB2ZXJpZmllZCB0aGUgc2VuZGVyIG9y IHRoZSBjb250ZW50Lg0KPiAgKiBKb2huIEhzdSAo6Kix5rC457+wKSA8Sm9obi5Ic3VAbWVkaWF0 ZWsuY29tPiBbMjMwNzEwIDA4OjUwXToNCj4gLi4uDQo+IA0KPiA+ID4gPiA+ID4gVGhpcyBCVUdf T04oKSBpcyBuZWNlc3Nhcnkgc2luY2UgdGhpcyBmdW5jdGlvbiBzaG91bGQNCj4gX25ldmVyXw0K PiA+ID4gcnVuDQo+ID4gPiA+ID4gb3V0IG9mDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IG1l bW9yeTsgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYW4gZXJyb3IgY29kZS4NCj4gPiA+ ID4gPiBtYXNfcHJlYWxsb2NhdGUoKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBzaG91bGQg aGF2ZSBnb3R0ZW4geW91IHRoZSBtZW1vcnkgbmVjZXNzYXJ5IChvciByZXR1cm5lZCBhbg0KPiA+ ID4gPiA+IC1FTk9NRU0pDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IHByaW9yIHRvIHRoZSBj YWxsIHRvIG1hc19zdG9yZV9wcmVhbGxvYygpLCBzbyB0aGlzIGlzDQo+IHByb2JhYmx5DQo+ID4g PiBhbg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBpbnRlcm5hbCB0cmVlIHByb2JsZW0uDQo+ ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFRoZXJlIGlzIGEgdHJlZSBvcGVyYXRpb24gYmVpbmcg cGVyZm9ybWVkIGhlcmUuICBtcHJvdGVjdA0KPiBpcw0KPiA+ID4gPiA+IG1lcmdpbmcgYQ0KPiA+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiB2bWEgYnkgdGhlIGxvb2tzIG9mIHRoZSBjYWxsIHN0YWNr LiAgV2h5IGRvIHlvdSB0aGluayBubw0KPiB0cmVlDQo+ID4gPiA+ID4gb3BlcmF0aW9uDQo+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+IGlzIG5lY2Vzc2FyeT8NCj4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gQXMgeW91IG1lbnRpb25lZCwgbWFzX3ByZWFsbG9jYXRlKCkgc2hvdWxkIGFsbG9jYXRl IGVub3VnaA0KPiA+ID4gbm9kZSwNCj4gPiA+ID4gPiBidXQgdGhlcmUgaXMgc3VjaCBmdW5jdGlv bnMgbWFzX25vZGVfY291bnQoKSBpbg0KPiA+ID4gbWFzX3N0b3JlX3ByZWFsbG9jKCkuDQo+ID4g PiA+ID4gPiBJbiBtYXNfbm9kZV9jb3VudCgpIGNoZWNrcyB3aGV0aGVyIHRoZSAqbWFzKiBoYXMg ZW5vdWdoDQo+IG5vZGVzLA0KPiA+ID4gYW5kDQo+ID4gPiA+ID4gYWxsb2NhdGUgbWVtb3J5IGZv ciBub2RlIGlmIHRoZXJlIHdhcyBubyBlbm91Z2ggbm9kZXMgaW4gbWFzLg0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+IFJpZ2h0LCB3ZSBjYWxsIG1hc19ub2RlX2NvdW50KCkgc28gdGhhdCBib3RoIGNv ZGUgcGF0aHMgYXJlDQo+IHVzZWQNCj4gPiA+IGZvcg0KPiA+ID4gPiA+IHByZWFsbG9jYXRpb25z IGFuZCByZWd1bGFyIG1hc19zdG9yZSgpL21hc19zdG9yZV9nZnAoKS4gIEl0DQo+ID4gPiBzaG91 bGRuJ3QNCj4gPiA+ID4gPiB0YWtlIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIHRpbWUgdG8gdmVy aWZ5IHRoZXJlIGlzIGVub3VnaA0KPiA+ID4gbm9kZXMuDQo+ID4gPiA+IA0KPiA+ID4gPiBZYXAu Li4sIGl0IGRpZG4ndCB0YWtlIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIHRpbWUgdG8gdmVyaWZ5 DQo+ID4gPiB3aGV0aGVyDQo+ID4gPiA+IHRoZXJlIGlzIGVub3VnaCBub2Rlcy4gVGhlIHByb2Js ZW0gaXMgd2h5IHRoZSBmbG93IGluDQo+ID4gPiBtYXNfbm9kZV9jb3VudA0KPiA+ID4gPiB3aWxs IGFsbG9jIG5vZGVzIGlmIHRoZXJlIHdhcyBubyBlbm91Z2ggbm9kZXMgaW4gbWFzPw0KPiA+ID4g DQo+ID4gPiBXaGF0IEkgbWVhbnQgaXMgdGhhdCBib3RoIG1ldGhvZHMgdXNlIHRoZSBzYW1lIGNh bGwgcGF0aCBiZWNhdXNlDQo+ID4gPiB0aGVyZQ0KPiA+ID4gaXMgbm90IGEgcmVhc29uIHRvIGR1 cGxpY2F0ZSB0aGUgcGF0aC4gIEFmdGVyIG1hc19wcmVhbGxvY2F0ZSgpDQo+IGhhcw0KPiA+ID4g YWxsb2NhdGVkIHRoZSBub2RlcyBuZWVkZWQsIHRoZSBjYWxsIHRvIGNoZWNrIGlmIHRoZXJlIGlz IGVub3VnaA0KPiA+ID4gbm9kZXMNCj4gPiA+IHdpbGwgYmUgcXVpY2suDQo+ID4gDQo+ID4gU28g d2hldGhlciB0aGUgcHVycG9zZSBvZiBtYXNfcHJlYWxsb2NhdGUoKSBpcyBkZWNyZWFzaW5nIHRo ZSBsb2NrDQo+ID4gcmV0ZW50aW9uIHRpbWU/DQo+IA0KPiBJdCBjb3VsZCBiZSwgYnV0IGluIHRo aXMgY2FzZSBpdCdzIHRoZSBsb2NraW5nIG9yZGVyLiAgV2UgaGF2ZSB0bw0KPiBwcmUtYWxsb2Nh dGUgYW5kIGZhaWwgZWFybHkgaWYgd2UgYXJlIG91dCBvZiBtZW1vcnksIGJlY2F1c2Ugd2UNCj4g X2Nhbm5vdF8NCj4gdXNlIEdGUF9LRVJORUwgd2hlcmUgd2UgY2FsbCBtYXNfc3RvcmVfcHJlYWxs b2MoKS4gIG1hc19wcmVhbGxvY2F0ZSgpDQo+IHdpbGwgdXNlIEdGUF9LRVJFTkwgdGhvdWdoLiAg V2UgY2Fubm90IHVzZSBHRlBfS0VSTkVMIGR1cmluZyB0aGUNCj4gc3RvcmUNCj4gYmVjYXVzZSBy ZWNsYWltIG1heSBzbGVlcCBhbmQgd2UgY2Fubm90IHNsZWVwIGhvbGRpbmcgdGhlIGxvY2tzIHdl DQo+IG5lZWQNCj4gdG8gaG9sZCBhdCB0aGUgdGltZSBvZiB0aGUgc3RvcmUgb3BlcmF0aW9uIGlu IF9fdm1hX2FkanVzdCgpLg0KPiANCllhcCwgaWYgdGhlIHR5cGUgb2YgbG9jayBpcyBzcGlubG9j aywgdGhlIGZsb3cgc2hvdWxkbid0IHNsZWVwIGluIHRoZQ0KY3JpdGljYWwgc2VjdGlvbnMuIG1t YXBfbG9jayBpcyBpbXBsbWVudGVkIGJ5IHJ3X3NlbWFwaG9yZShtdXRleCkuIElzDQp0aGVyZSBh bnkgb3RoZXIgbG9jayBpbiB0aGlzIHNlY3Rpb24/DQo+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gSSB0aGluayB0aGF0IGlmIG1hc19wcmVhbGxvY2F0ZSgpIGFsbG9jYXRlIGVub3VnaCBub2Rl LCB3aHkNCj4gd2UNCj4gPiA+ID4gPiBjaGVjayB0aGUgbm9kZSBjb3VudCBhbmQgYWxsb2NhdGUg bm9kZXMgaWYgdGhlcmUgd2FzIG5vDQo+IGVub3VnaA0KPiA+ID4gbm9kZXMNCj4gPiA+ID4gPiBp biBtYXMgaW4gbWFzX25vZGVfY291bnQoKT8NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBXZSBjaGVj ayBmb3IgdGhlIGFib3ZlIHJlYXNvbi4NCj4gPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IE9L Li4uLCB0aGlzIGlzIG9uZSBvZiB0aGUgcm9vdCBjYXVzZSBvZiB0aGlzIEJVRy4NCj4gPiA+IA0K PiA+ID4gVGhlIHJvb3QgY2F1c2UgaXMgdGhhdCB0aGVyZSB3YXMgbm90IGVub3VnaCBtZW1vcnkg Zm9yIGEgc3RvcmUNCj4gPiA+IG9wZXJhdGlvbi4gIFJlZ2FyZGxlc3Mgb2YgaWYgd2UgY2hlY2sg dGhlIGFsbG9jYXRpb25zIGluIHRoZQ0KPiA+ID4gbWFzX3N0b3JlX3ByZWFsbG9jKCkgcGF0aCBv ciBub3QsIHRoaXMgd291bGQgZmFpbC4gIElmIHdlIHJlbW92ZQ0KPiB0aGUNCj4gPiA+IGNoZWNr IGZvciBub2RlcyB3aXRoaW4gdGhpcyBwYXRoLCB0aGVuIHdlIHdvdWxkIGhhdmUgdG8gQlVHX09O KCkNCj4gd2hlbg0KPiA+ID4gd2UNCj4gPiA+IHJ1biBvdXQgb2Ygbm9kZXMgdG8gdXNlIG9yIGhh dmUgYSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgQlVHDQo+ID4gPiBhbnl3YXlzLg0KPiA+ID4g DQo+ID4gWWFwLCB0aGUgcm9vdCBjYXVzZSBpcyBvb20uIFRoZSBCVUdfT04oKSBmb3IgdGhlIHNp dHVhdGlvbnMgdGhhdA0KPiB0aGUNCj4gPiBtYXBsZSB0cmVlIHN0cnVjdCBjYW5ub3QgYmUgbWFp bnRhaW5lZCBiZWNhdXNlIG9mIHRoZSBsYWNrIG9mDQo+IG1lbW9yeSBpcw0KPiA+IG5lY2Vzc2Fy eS4gQnV0IHRoZSB0aGUgYnVkZHkgc3lzdGVtIGluIGxpbnV4IGtlcm5lbCBjYW4gcmVjbGFpbQ0K PiBtZW1vcnkNCj4gPiB3aGVuIHRoZSBzeXN0ZW0gaXMgdW5kZXIgdGhlIGxvdyBtZW1vcnkgc3Rh dHVzLiBJZiB3ZSB1c2UNCj4gR0ZQX0tFUk5FTA0KPiA+IGFmdGVyIHRyeWluZyBHRlBfTk9XQUlU IHRvIGFsbG9jYXRlIG5vZGUsIG1heWJlIHdlIGNhbiBnZXQgZW5vdWdoDQo+ID4gbWVtb3J5IHdo ZW4gdGhlIHNlY29uZCB0cnkgd2l0aCBHRlBfS0VSTkVMLiANCj4gDQo+IFJpZ2h0LCBidXQgdGhl IEdGUF9LRVJORUwgY2Fubm90IGJlIHVzZWQgd2hlbiBob2xkaW5nIGNlcnRhaW4gbG9ja3MNCj4g YmVjYXVzZSBpdCBtYXkgc2xlZXAuDQo+IA0KPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gV2UgaGF2ZSBzZWVuIHRoYXQgdGhlcmUgbWF5IGJlIHNvbWUgbWFwbGVfdHJlZSBvcGVy YXRpb25zDQo+IGluDQo+ID4gPiA+ID4gbWVyZ2Vfdm1hLi4uDQo+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gSWYgbWVyZ2Vfdm1hKCkgZG9lcyBhbnl0aGluZywgdGhlbiB0aGVyZSB3YXMgYW4gb3BlcmF0 aW9uIHRvDQo+IHRoZQ0KPiA+ID4gPiA+IG1hcGxlDQo+ID4gPiA+ID4gdHJlZS4NCj4gPiA+ID4g PiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gTW9yZW92ZXIsIHdvdWxkIG1hcGxlX3RyZWUg cHJvdmlkZXMgYW4gQVBJIGZvciBhc3NpZ25pbmcNCj4gdXNlcidzDQo+ID4gPiBnZnANCj4gPiA+ ID4gPiBmbGFnIGZvciBhbGxvY2F0aW5nIG5vZGU/DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gbWFz X3ByZWFsbG9jYXRlKCkgYW5kIG1hc19zdG9yZV9nZnAoKSBoYXMgZ2ZwIGZsYWdzIGFzIGFuDQo+ ID4gPiA+ID4gYXJndW1lbnQuICBJbg0KPiA+ID4gPiA+IHlvdXIgY2FsbCBzdGFjaywgaXQgd2ls bCBiZSBjYWxsZWQgaW4gX192bWFfYWRqdXN0KCkgYXMgc3VjaDoNCj4gPiA+ID4gPiANCj4gPiA+ ID4gPiBpZiAobWFzX3ByZWFsbG9jYXRlKCZtYXMsIHZtYSwgR0ZQX0tFUk5FTCkpDQo+ID4gPiA+ ID4gcmV0dXJuIC1FTk9NRU07DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gbGluZSA3MTUgaW4gdjYu MS4yNQ0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSW4gcmJfdHJlZSwgd2UgYWxsb2NhdGUgdm1h X2FyZWFfc3RydWN0IChyYl9ub2RlIGlzIGluIHRoaXMNCj4gPiA+ID4gPiBzdHJ1Y3QuKSB3aXRo IEdGUF9LRVJORUwsIGFuZCBtYXBsZV90cmVlIGFsbG9jYXRlIG5vZGUgd2l0aA0KPiA+ID4gPiA+ IEdGUF9OT1dBSVQgYW5kIF9fR0ZQX05PV0FSTi4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBXZSB1 c2UgR0ZQX0tFUk5FTCBhcyBJIGV4cGxhaW5lZCBhYm92ZSBmb3IgdGhlIFZNQSB0cmVlLg0KPiA+ ID4gPiANCj4gPiA+ID4gR290IGl0ISBCdXQgdGhlIG1hc19ub2RlX2NvdW50KCkgYWx3YXlzIHVz ZSBHRlBfTk9XQUlUIGFuZA0KPiA+ID4gX19HRlBfTk9XQVJODQo+ID4gPiA+IGluIGluc2VydGlu ZyB0cmVlIGZsb3cuIERvIHlvdSBjb25zaWRlciB0aGUgcGVyZm9ybWFuY2Ugb2YNCj4gPiA+IG1h aW50YWluaW5nDQo+ID4gPiA+IHRoZSBzdHJ1Y3R1cmUgb2YgbWFwbGVfdHJlZT8NCj4gPiA+IA0K PiA+ID4gU29ycnksIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHlvdSBtZWFuIGJ5ICdjb25zaWRl ciB0aGUNCj4gcGVyZm9ybWFuY2UNCj4gPiA+IG9mDQo+ID4gPiBtYWludGFpbmluZyB0aGUgc3Ry dWN0dXJlIG9mIG1hcGxlX3RyZWUnLg0KPiA+ID4gDQo+ID4gQXMgSSBtZW50aW9uZWQgYWJvdmUs IEdGUF9OT1dBSVQgd2lsbCBub3QgYWxsb3cgYnVkZHkgc3lzdGVtIGZvcg0KPiA+IHJlY2xhaW1p bmcgbWVtb3J5LCBzbyAiRG8geW91IGNvbnNpZGVyIHRoZSBwZXJmb3JtYW5jZSBvZg0KPiBtYWlu dGFpbmluZw0KPiA+IHRoZSBzdHJ1Y3R1cmUgb2YgbWFwbGVfdHJlZSIgbWVhbnMgdGhhdDogd2hl dGhlciB0aGUNCj4gbWFzX25vZGVfY291bnQoKQ0KPiA+IHBhdGggaXMgbm90IGFsbG93ZWQgdG8g cmVjbGFpbSBvciBjb21wYWN0IG1lbW9yeSBmb3IgdGhlDQo+IHBlcmZvcm1hbmNlLg0KPiANCj4g QWgsIG5vLiAgVGhpcyBpcyBub3QgZm9yIHBlcmZvcm1hbmNlLiAgSXQgd2FzIGluaXRpYWxseSBv biB0aGUgcm9hZA0KPiBtYXANCj4gZm9yIHBlcmZvcm1hbmNlLCBidXQgaXQgd2FzIG5lZWRlZCBm b3IgdGhlIGNvbXBsaWNhdGVkIGxvY2tpbmcgaW4gdGhlDQo+IE1NDQo+IGNvZGUuDQo+IA0KPiBy YiB0cmVlIGVtYmVkZGVkIHRoZSBub2RlcyBpbiB0aGUgVk1BIHdoaWNoIGlzIGFsbG9jYXRlZCBv dXRzaWRlIHRoaXMNCj4gY3JpdGljYWwgc2VjdGlvbiBhbmQgc28gaXQgY291bGQgdXNlIEdGUF9L RVJORUwuDQo+IA0KQXMgSSBrbm93LCBmb2xsb3dpbmcgaXMgcmJfdHJlZSBmbG93IGluIDUuMTUu MTg2Og0KDQouLi4NCm1tYXBfd3JpdGVfbG9ja19raWxsYWJsZShtbSkNCi4uLg0KZG9fbW1hcCgp DQouLi4NCm1tYXBfcmVnaW9uKCkNCi4uLg0Kdm1fYXJlYV9hbGxvYyhtbSkNCi4uLg0KbW1hcF93 cml0ZV91bmxvY2sobW0pDQoNCnZtX2FyZWFfYWxsb2MgaXMgaW4gdGhlIG1tYXBfbG9jayBob2Rp bmcgcGVyaW9kLg0KSXQgc2VlbXMgdGhhdCB0aGUgZmxvdyB3b3VsZCBzbGVlcCBoZXJlIGluIHJi X3RyZWUgZmxvdy4NCklmIEkgbWlzcyBhbnl0aGluZywgcGxlYXNlIHRlbGwgbWUsIHRoYW5rcyEN Cg0KDQo+ID4gPiA+IA0KPiA+ID4gPiA+IEl0IGFsc28gd2lsbCBkcm9wIHRoZSBsb2NrIGFuZCBy ZXRyeSB3aXRoIEdGUF9LRVJORUwgb24NCj4gZmFpbHVyZQ0KPiA+ID4gPiA+IHdoZW4gbm90IHVz aW5nIHRoZSBleHRlcm5hbCBsb2NrLiAgVGhlIG1tYXBfbG9jayBpcw0KPiBjb25maWd1cmVkIGFz DQo+ID4gPiBhbg0KPiA+ID4gPiA+IGV4dGVybmFsIGxvY2suDQo+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gPiBBbGxvY2F0aW9uIHdpbGwgbm90IHdhaXQgZm9yIHJlY2xhaW1pbmcgYW5kIGNvbXBhY3Rp bmcgd2hlbg0KPiA+ID4gdGhlcmUNCj4gPiA+ID4gPiBpcyBubyBlbm91Z2ggYXZhaWxhYmxlIG1l bW9yeS4NCj4gPiA+ID4gPiA+IElzIHRoZXJlIGFueSBjb25jZXJuIGZvciB0aGlzIGRlc2lnbj8N Cj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGlzIGhhcyBiZWVuIGFkZHJlc3NlZCBhYm92ZSwgYnV0 IGxldCBtZSBrbm93IGlmIEkgbWlzc2VkDQo+ID4gPiBhbnl0aGluZw0KPiA+ID4gPiA+IGhlcmUu DQo+ID4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBJIHRoaW5rIHRoYXQgdGhlIG1hc19ub2Rl X2NvdW50KCkgaGFzIGhpZ2hlciByYXRlIG9mIHRyaWdnZXJpbmcNCj4gPiA+ID4gQlVHX09OKCkg d2hlbiBhbGxvY2F0aW5nIG5vZGVzIHdpdGggR0ZQX05PV0FJVCBhbmQNCj4gX19HRlBfTk9XQVJO LiBJZg0KPiA+ID4gPiBtYXNfbm9kZV9jb3VudCgpIHVzZSBHRlBfS0VSTkVMIGFzIG1hc19wcmVh bGxvY2F0ZSgpIGluIHRoZQ0KPiBtbWFwLmMsDQo+ID4gPiB0aGUNCj4gPiA+ID4gYWxsb2NhdGlv biBmYWlsIHJhdGUgbWF5IGJlIGxvd2VyIHRoYW4gdXNlIEdGUF9OT1dBSVQuDQo+ID4gPiANCj4g PiA+IFdoaWNoIEJVR19PTigpIGFyZSB5b3UgcmVmZXJyaW5nIHRvPw0KPiA+ID4gDQo+ID4gPiBJ ZiBJIHdhcyB0byBzZXBhcmF0ZSB0aGUgY29kZSBwYXRoIGZvciBtYXNfc3RvcmVfcHJlYWxsb2Mo KSBhbmQNCj4gPiA+IG1hc19zdG9yZV9nZnAoKSwgdGhlbiBhIEJVR19PTigpIHdvdWxkIHN0aWxs IG5lZWQgdG8gZXhpc3QgYW5kDQo+IHN0aWxsDQo+ID4gPiB3b3VsZCBoYXZlIGJlZW4gdHJpZ2dl cmVkLi4gIFdlIGFyZSBpbiBhIHBsYWNlIGluIHRoZSBjb2RlIHdoZXJlDQo+IHdlDQo+ID4gPiBz aG91bGQgbmV2ZXIgc2xlZXAgYW5kIHdlIGRvbid0IGhhdmUgZW5vdWdoIG1lbW9yeSBhbGxvY2F0 ZWQgdG8NCj4gZG8NCj4gPiA+IHdoYXQNCj4gPiA+IHdhcyBuZWNlc3NhcnkuDQo+ID4gPiANCj4g PiBZYXAuIFRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZXByYXRlIG1hc19zdG9yZV9wcmVhbGxvYygp IGFuZA0KPiA+IG1hc19zdG9yZV9nZnAuIElzIGl0IHBvc3NpYmxlIHRvIHJldHJ5IHRvIGFsbG9j YXRlIG1hc19ub2RlIHdpdGgNCj4gPiBHRlBfS0VSTkVMICh3YWl0IGZvciBzeXN0ZW0gcmVjbGFp bSBhbmQgY29tcGFjdCkgaW5zdGVhZCBvZg0KPiB0cmlnZ2VyaW5nDQo+ID4gQlVHX09OIG9uY2Ug dGhlIEdGUF9OT1dBSVQgYWxsb2NhdGlvbiBmYWlsZWQ/DQo+IA0KPiBVbmZvcnR1bmF0ZWx5IG5v dCwgbm8uICBJbiBzb21lIGNhc2VzIGl0IG1heSBhY3R1YWxseSB3b3JrIG91dCB0aGF0DQo+IHRo ZQ0KPiBWTUEgbWF5IG5vdCBuZWVkIHRoZSBsb2NrcyBpbiBxdWVzdGlvbiwgYnV0IGl0IGNhbm5v dCBiZSBnZW5lcmFsaXplZA0KPiBmb3INCj4gX192bWFfYWRqdXN0KCkuICBXaGVyZSBJIGFtIGFi bGUsIEkgdXNlIHRoZSBtYXNfc3RvcmVfZ2ZwKCkgY2FsbHMgc28NCj4gd2UNCj4gY2FuIGxldCBy ZWNsYWltIGFuZCBjb21wYWN0IHJ1biwgYnV0IGl0J3Mgbm90IHBvc3NpYmxlIGhlcmUuDQo+IA0K V2UgaGF2ZSB1c2VkIEdGUF9LRVJORUwgYXMgYWxsb2MgZmxhZyBpbiBtYXNfbm9kZV9jb3VudCBm bG93IGFib3V0IDINCm1vbnRocy4gVGhlIG1lbnRpb25lZCBwcm9ibGVtIHdlIG1lbnRpb25lZCBp biB0aGUgZmlyc3QgbWFpbCBkaWRuJ3QNCnJlcHJvZHVjZSB1bmRlciBoaWdoIHN0cmVzcyBzdGFi aWxpdHkgdGVzdC4NCg0KSSBoYXZlIHNlZW4gdGhlIHBhdGNoIHByb3ZpZGVkIGJ5IHlvdS4gSSB3 aWxsIHZlcmlmeSB0aGlzIHBhdGNoIGluIG91cg0Kc3RhYmlsaXR5IHRlc3QuIEJ1dCB0aGVyZSBp cyBhIHByb2JsZW0sIGlmIG1hcGxlX3RyZWUgYmVoYXZpb3IgaXMNCnVuZXhwZWN0ZWQgKGUuZy4g cmVkdW5kYW50IHdyaXRlIGJ1ZyB0aGlzIHRpbWUpLiBXZSBjYW4gb25seSByZXZpZXcgdGhlDQp3 aG9sZSBtbSBmbG93IHRvIGZpbmQgb3V0IHRoZSB3cm9uZyBiZWhhdmlvci4gRG8gd2UgaGF2ZSBh biBlZmZpY2llbnQNCmRlYnVnIG1ldGhvZCBmb3IgbWFwbGUgdHJlZT8NCg0KPiBUaGFua3MsDQo+ IExpYW0NCg==