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 6323FC48BC4 for ; Thu, 15 Feb 2024 20:04:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D984E8D000E; Thu, 15 Feb 2024 15:04:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D48458D0001; Thu, 15 Feb 2024 15:04:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC2568D000E; Thu, 15 Feb 2024 15:04:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id A7C078D0001 for ; Thu, 15 Feb 2024 15:04:12 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7CABA1408A4 for ; Thu, 15 Feb 2024 20:04:12 +0000 (UTC) X-FDA: 81795114744.17.0D8CDBD Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2082.outbound.protection.outlook.com [40.107.100.82]) by imf06.hostedemail.com (Postfix) with ESMTP id A408318001D for ; Thu, 15 Feb 2024 20:04:08 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=GPyBycqk; spf=pass (imf06.hostedemail.com: domain of ziy@nvidia.com designates 40.107.100.82 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1708027448; a=rsa-sha256; cv=pass; b=3F/nIvIts8gGCIX7GVPzVEkKfcH8/hYscv0fca5Qf4LkmQ/tnvYGt6dK3qpkeBJaYjPAXb 88tH3LCTU3B2RBySW3uf3DVDIeHybbT0vUsmtP/IWLp0ud/O9PtFG2uIAQClILGaUDJgql qKjU96JaC7wmC2K+F817lFa5pFpoWgw= ARC-Authentication-Results: i=2; imf06.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=GPyBycqk; spf=pass (imf06.hostedemail.com: domain of ziy@nvidia.com designates 40.107.100.82 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708027448; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=yOm3O0NLo0/gLtHchoIkW4qWCf8MGvQFJDaUUBOgnSo=; b=7r7fa7kpNIor+RQZ9B6Xy+bLTLQqvyYtS6cn2MV4Hf4Z2PYUXl8bdk9mORxrzy7nX05a8e pKEkJFNBt4sKOucKbdyIg3VVqXYDERO2gROY8am3PDcG8NDyTFQJgurIJJHLMb/fdB/SKt uNlX4PQXhGiJ5skvy2y8ta3BRMbKECI= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CqMqGf51Cl2kc6bUm9WC+hqH/96iAhN7nKbiRXyQABSbDX5wD2PcN0PY2h3EfDHlgRaNXuUkIhnKINyUMqTcqWG0XWwUOwy+yifjw2XzNs4fcHt6iwauduBuqcRWJZYz8/ge17W3ROUVCdl3Fx8ettZaSWJ+AJwTnKlnNMR8DxymFWSJNw3bxoeuca48hNW5JiGsr3l1eRrkhjYesiV4X8xvOHNzkXubSvS+41Hikjql7faxmPqWUJAt9nhEfGW6rA6vfEd6syvMaw7EUSyHsqiAWbbCIAM8zoFmlXdI6xX128KodcOpevpsgd6BecqiOnP1Hp8WyO9U/R6PSNDcQQ== 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=yOm3O0NLo0/gLtHchoIkW4qWCf8MGvQFJDaUUBOgnSo=; b=BiRxDmVbb7npcR+LjCcXToVgc4OiXIZBfVE3414+aRL+jit1ImUJcmeXBEDWO+QD8WD1GlZjNZoAS6jk6VizdY0K2JLMkoK2aSAoiosFbM1Q6464zhseJNXKsIVuqfb4qzaXb1T6PcupZiS3FvNiHsov0gVm4DTwXqUKaCLZVUY7garDU850JhCSt/317EHdzpQOGnfdrMx/TxQm/kRceJc/I093mFI89tQRraTcmaauBI5YLsqDWrDSpnZYxzfXPDThNmf33wHY69lFGnm+rBoxcItOWdipre+CCrdmxMBxKXeZvWcYxBEHjA9UqEYJxXouT+dw5iPKmZH8TGua1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yOm3O0NLo0/gLtHchoIkW4qWCf8MGvQFJDaUUBOgnSo=; b=GPyBycqkFrtCRGnYwzdsC1P2w08SYkyX2KKQkYX8uMlMgggQfYsSvfYVFsgzzjeHPs4ilS0oOZtEFm6Yodxd5MIUq/g0BJwHVQv/8epugUzwU03aQlBpz69ryHN6Y014hO9k0vobgauHjs5WFP4vB5UMb4rYBHVsJhDqEzqbk25w8uFDlU7ELgeE2J5fKdyNS+OGverGqUtDQzczLAZjavkEqnPVSQdq+zZYGV8yD+SZpQMHKDeyVK052HlwZ1MzcevfyoD461ji1c8CVymwxZDn58PQ933v3irYmh4Xvd+NkSRt0/GG/pvqpKQjsVJDDKQbfZenwNAGd3jnIHqWZA== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by DM6PR12MB4249.namprd12.prod.outlook.com (2603:10b6:5:223::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.14; Thu, 15 Feb 2024 20:04:05 +0000 Received: from DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::db3e:28df:adc1:9c15]) by DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::db3e:28df:adc1:9c15%5]) with mapi id 15.20.7316.012; Thu, 15 Feb 2024 20:04:05 +0000 From: Zi Yan To: Vlastimil Babka Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, "\"Huang, Ying\"" , Ryan Roberts , Andrew Morton , "\"Matthew Wilcox (Oracle)\"" , David Hildenbrand , "\"Yin, Fengwei\"" , Yu Zhao , "\"Kirill A . Shutemov\"" , Johannes Weiner , Baolin Wang , Kemeng Shi , Mel Gorman , Rohan Puri , Mcgrof Chamberlain , Adam Manzanares , "\"Vishal Moola (Oracle)\"" Subject: Re: [PATCH v5 2/3] mm/compaction: add support for >0 order folio memory compaction. Date: Thu, 15 Feb 2024 15:04:02 -0500 X-Mailer: MailMate (1.14r6018) Message-ID: <8FFA6A77-59C9-40E1-B999-C5C9EB5A2643@nvidia.com> In-Reply-To: <25a80b95-93e6-4d68-a3b1-35cd3ef9c421@suse.cz> References: <20240214220420.1229173-1-zi.yan@sent.com> <20240214220420.1229173-3-zi.yan@sent.com> <6a011e7f-4e21-4e31-a9a2-52cba3181337@suse.cz> <25a80b95-93e6-4d68-a3b1-35cd3ef9c421@suse.cz> Content-Type: multipart/signed; boundary="=_MailMate_B0F46FDC-2DBD-49E2-B04D-46C9691AD48E_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: BL1PR13CA0063.namprd13.prod.outlook.com (2603:10b6:208:2b8::8) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|DM6PR12MB4249:EE_ X-MS-Office365-Filtering-Correlation-Id: 319520ca-b749-49e3-e4e0-08dc2e61430e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DkRH67bqgZtmuOpoUbpAbAfI76Xsqyd2hUMdNeRLSiEYDNl19MeX7B5QCSnbdDOsnTfzOcHAyRuwuExuqvXfdjjLr5lISTDGfwMDieoetKaBxE9BhFWsCD5RaiOpkRaZ4LhqTmv0L4ucNaR4YjrT00uP6Tg7eSHNk3ndYvdOVd760a/z74cSpiLiQmKtyzIOfm+Zn6cSlQ7iksCCchOlIymNST98KMd/CGIYyiN9wQNOCAXfgdLGiAOKXR/20IlJ3TsBlYe5zsq6y6NIk2np+AxVpzYCnBvYj+nx9oAMOqokP+RPVkgXXyr3wgnzTRPpTmKXxFgYnkwLBxirv8PE6pqUSBiSCzVqYTPfPj8jK+lkSNcGTMVE+eS/iN5ACi+rbSZVRUnJ1WHCpzs3+nIX7DB8/lkS52XutQDEiOSeMB51dJif2Pzh2aUYC9QhrFSPx+mQL06uqTXVK1YQzi+/lYQTh2jr5emirLDbALJVTa0IpRPZyEx/bXPon2x6Dk85/5zAhEPev7dPD0inggNksbJnCNMYJEjXplb5hMZqXbqoA3s7nX8VyXxEODWhNLRJ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5744.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(366004)(376002)(136003)(396003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(2906002)(7416002)(235185007)(5660300002)(26005)(83380400001)(2616005)(8676002)(41300700001)(8936002)(6916009)(66476007)(478600001)(66556008)(4326008)(66946007)(53546011)(33656002)(54906003)(6666004)(316002)(6486002)(6512007)(6506007)(86362001)(36756003)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LpQ75dr+Rz2Ysy3CeF7cglTp+kB9HlVrXFQHiuGUWDgcGlQJGLeGbSoNKC7I?= =?us-ascii?Q?bLcJ5tlfSsx/Rkqr3oMhlkeJxCy8ssMMGd+WVeU6oi16cLQr1rMCJqk/Q0CX?= =?us-ascii?Q?VTR0+l8syAP75x3HB5haAwEcFJO5tp035/s87tZGUhg68XKWhW5oQfwuEcek?= =?us-ascii?Q?k90rSttHrSRrFVZz757Ur3m/570bf6zq29Iy34w20W+EHvQ79ub6qBCgMDBa?= =?us-ascii?Q?5lB1QsW9dNz23j52FNe5BsRB9SxCQ9fyrOhwDwrkhRiPecgojQ8LIl33xZ/L?= =?us-ascii?Q?T9HwPUX0dSywFFyCvEBa4tfrUHwhiyr80K418iJ/y03/Ra5O7Vgl8lB49syk?= =?us-ascii?Q?D+iM71Ok1HkPOgb+3p2ubBLETc/2bASoP/e+NDvBArHdPMapOE/4gfzMmfaK?= =?us-ascii?Q?ie7wLuvRT3aRLweTY8Jn3TyeWq/7I/i3Gmh6hS9ewU1KsLiGmbtHdPY/8U5Y?= =?us-ascii?Q?lJLxnLFlHNLBLsYebNDt6r5bOjVauGqjzoaUiwLXx+Zc5B+VVZ/e4LGJdDZg?= =?us-ascii?Q?GzVTKyXd+w+EkGi3VvVLxlVhXyi0olGDLKtE4DuHaFttQVLx+pYtaACd4hoj?= =?us-ascii?Q?8Q2AO58lXvSwOHmusfJDTEzhkmSMP8qWNLHSYlCLtRofRH88rRb2Mlx8VAUM?= =?us-ascii?Q?c2ut6RG1V7rQgrW+E/ZF/uLw+6FVDc62krNWQmtTVjVxfoNPk/L6Whzs8Y26?= =?us-ascii?Q?LGC781cK3w6SZ32TDPiAC+mhpF8aXuYMFhpVIYT2OsGkIuKK3BbLXN0ViUBW?= =?us-ascii?Q?v4jsOHTz5Hzop7OnnWAFKt+qLYRr2i+JN7k2sT0pRPAD7wqnGHVDHwTR8lrR?= =?us-ascii?Q?cByzK7eXEr8OIuU9dgAKSw8hwwdeogHYZQRXzMWgTmRHpKuq/jA+Pu51YXB8?= =?us-ascii?Q?e3vqdTllATGgZskoOHU7wei+UPY2WZAwTHMKmp++jncgRl/SWcr/fqb3a4F7?= =?us-ascii?Q?Luqu+L6JyH7Jwo8scKpNiNXp5VcB++CzL4Xgl8SUvEKqZwM6OoR1dfA+1t+U?= =?us-ascii?Q?GrK5eXobib5lkfcDqwr2CO0ufJK7mVFyHnCyMKmJ/+Qo7JuWmMJQtcIRGS9Z?= =?us-ascii?Q?AmBk+6iCjfhfAmSrEGgTKb5vKg5sKga4WfU+TVXCLV7kH9yw6uXuUnv4sYjV?= =?us-ascii?Q?A+e+3CG1O0E4iVpLMdudg6HCrUZSELPcNtnvReNzRMB+0oJpTpfZghboStkT?= =?us-ascii?Q?LLvWcyj8jdriemuu6SPTbH5SJCLCSALUgH9fR8XNdU00oJ0Xu38AnFupFUYL?= =?us-ascii?Q?/qTHnsgpcFibQmjQwPCdwn+8PjbpffxSk/+F1cgwp6AxvGiWhCpd3tuQknnE?= =?us-ascii?Q?5Us5j6NdfFQguYdC5bnflZzF5sc0Ee5SZ9fVZe09SYg3hM16cIFa6YiLMybJ?= =?us-ascii?Q?FcVT4xuN5aLxoHz5FKo5mgMB3Wzz1c9tR7vSK130f/WJMyPyD9uRBVEjQkaR?= =?us-ascii?Q?A9GtVzHFsjgdIkbfU/kTZNPxZGS5zgi624y7UDMMrwrNus6PBr0zge3UGqyf?= =?us-ascii?Q?NSn3xLE/A07ZF3wCCcMhPywKYvZuJ73zHfl7W+Mki7ti50Cq5XuEuyjt0izR?= =?us-ascii?Q?MVZgUq0V45UHFEwEkZA=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 319520ca-b749-49e3-e4e0-08dc2e61430e X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2024 20:04:05.3139 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YyzpSxljkvbJPCUH9218L8waJoO4SIrGRXhtiIKGBAFht/RoT7AISbFdEGDcJSN7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4249 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: A408318001D X-Stat-Signature: 9id3pno447e1zi8ygmbyqudepm9q6wtu X-Rspam-User: X-HE-Tag: 1708027448-537187 X-HE-Meta: U2FsdGVkX1/uFikFWevBr5x+1rDalJypSoQgF0bfNawMeVz5PMY2UPPQA2oW71mWOSjUVRNwCaDGKkYa8f+kpsB1nARaGXXf3mx08vmivWKRxtIoAOQRWiV1gAsdV4Xsiyb45hP16dRi8fkrxkB7MEytM9tqznyAQQU8j9bY5vLNWc1Xk50lr4jVPlNhucFW3C4EGq7qdkdyZx010J3UPJfn9ZSO60/4+ayrEqncGQw8bLu30UWhGV64XPozshW/8zPfiY6jTZOz1KfIrDSpEwO1X55/b/zIuLvhNHYjumBXrieCHahRychAeoFwKTaUJLpo6FesGFpWeUpGb/9aEPJBsjt9OTqYZ6Cx6QKI2KQ0UaGZaex2l3yRzaJXjqM2LEQv9qxTHUHBgRdOSYAvR6iJ1VSdpbBMxsrjp6q/xq124+gKInb04X+/5uKKcabAUCCz7EEY7kOq5CA4D5ykIDRQZm1tnZ708ngi376FkzZ0VGsO2B2Bl9LJBhTDvy3cr7reUCKax5VZ/coQEUAVJQmJ9GIrsR4LqXx8oHW/N9xi8SLJ9l4hgo4lTtOJvUfq6mVCSULvl0da6EQDxzfBwxSxdc1t5Q1O20k6Db6rw4+feT4m4N03VhFRPK6MvtxUyx6MSMgrSMhqgSMr/EjKmNrgjERkgTdqAWwkr70+8FBazDOAUE2KZwRIduOmQOxu15IpQfNq/H9RI8UTwwJDmPhUlTIO35tlAXiX2xIzmf2yr3+WfWc564JS7zjE0K6kMjp8VLMDcGdKVA1BglEOJfqYWS1NKEDwhdOq5KKz9wVNffDfWs/RZOk77vuhMyyasmIb/xXvxxaD4LRBFa4RWkBKQjo16q33mIVO59tSKjQYnLGUWpanrQenygOrPPrIBwAoXbByygH4dEKPk1CzscVoUaj4inZ6XKIoZe0Lk+z26nW/MJALfncJEIciEyOL340c3rO66mmEZG1fVO8 AN4PdWrJ 79vg05unYf/qvv0pPSfMKdvKIQaIKzBdB5Wy9D3v9WSHBCAlSwKp4erJjPwo1YU5cEUGJCec31edi3VXDCQy02QhZgh0NL8ecrPVhAo4alCJ4LSOT3Q7i0ruyG+qEgwGOCbqIezAIty251bttP+GOSdzNGbSsE4UCaVzDIpN6LKvVCGImUH3bSXYUUfz28E8TahTe3uB+8/KIvFA6rUzv3qQNodOIuLZblTmCOksrHq65qfOEgHmurdOkgqmOPim0UsGc7YT0F7rh59mn9e5NxcPH7+8/BgSf8S2877w3D0OpvteBisg+n2y6r+IUUo1zaWGmD79A6ZuAPPPf3PF0BLt3qYikHxk6RHkZyqLWNIQAL+YgXL3u/MfBr5/w0ZlE5mnYAccM0QzdLvhpacDCNz045A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: --=_MailMate_B0F46FDC-2DBD-49E2-B04D-46C9691AD48E_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 15 Feb 2024, at 15:02, Vlastimil Babka wrote: > On 2/15/24 18:32, Zi Yan wrote: >> On 15 Feb 2024, at 11:57, Vlastimil Babka wrote: >> >>> On 2/14/24 23:04, Zi Yan wrote: >>>> @@ -1849,10 +1857,22 @@ static struct folio *compaction_alloc(struct= folio *src, unsigned long data) >>>> static void compaction_free(struct folio *dst, unsigned long data) >>>> { >>>> struct compact_control *cc =3D (struct compact_control *)data; >>>> + int order =3D folio_order(dst); >>>> + struct page *page =3D &dst->page; >>>> + >>>> + if (folio_put_testzero(dst)) { >>>> + free_pages_prepare_fpi_none(page, order); >>>> + >>>> + INIT_LIST_HEAD(&dst->lru); >>> >>> (is this even needed? I think the state of first parameter of list_ad= d() is >>> never expected to be in particular state?) >> >> There is a __list_add_valid() performing list corruption checks. > > Yes, but dst->lru becomes "new" in list_add() and __list_add_valid() an= d > those never check the contents of new, i.e. new->next or new->prev. We = could > have done list_del(&dst->lru) which puts poison values there and then a= > list_add() is fine. So dst->lru does not need the init, it's just confu= sing. > Init is for the list's list_head, not for the list entry. Got it. Will remove it. >>>> >>>> - list_add(&dst->lru, &cc->freepages); >>>> - cc->nr_freepages++; >>>> - cc->nr_migratepages +=3D 1 << folio_order(dst); >>>> + list_add(&dst->lru, &cc->freepages[order]); >>>> + cc->nr_freepages +=3D 1 << order; >>>> + cc->nr_migratepages +=3D 1 << order; >>> >>> Hm actually this increment of nr_migratepages should happen even if w= e lost >>> the free page. >> >> Because compaction_free() indicates the page is not migrated and nr_mi= gratepages >> should be increased regardless. > > Yes. > >> Will fix it. Thanks. >> >>>> + } >>>> + /* >>>> + * someone else has referenced the page, we cannot take it back to= our >>>> + * free list. >>>> + */ >>>> } >> >> >> -- >> Best Regards, >> Yan, Zi -- Best Regards, Yan, Zi --=_MailMate_B0F46FDC-2DBD-49E2-B04D-46C9691AD48E_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmXObjIPHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhUbRIQAJSqRDuq9E608suyLANOBkwzoy91swtR/YN6 cnfQ2PSPGvcddeapP+w85P5v5/CZm0pgA3cKU8y34nu6c95CLSvDSwNf3ZtSvvfc KwVNdz6uAxcOEEkjkEkx6HBCg+4jH7eEBbYuRAjgwpyZGYuosOEaZ2AcLv2VmGAz rX78GFykIE0ATq7tygglibHFbC4AF2GQ/fFL1XehwMXy+MrKr3FQahV4PnXXY2i3 LzqQgmHJmTE/qHhHorYHLR1SoDk8Om/yluRkvlD8I+6u1hqOSfuIgvG9wf/K2vVm lVMnUTz+5rwPq9W3oABn04NwgSt42ZtQXbYamTzuXLOQyj9CLaWJO3B06fV219+M b6d0VJf/tXdCuxQjCUogjjgE80YDs9WBdLLWYaWgU2/yNV+KXowyRBmzQRDKb9AK LUJQjURm/3eNnD83YQ3ybKQyaV6cRLhM071IEHJPxbJK7uJpHAahZkMF6xyTV8bl QPTrFkkYs+jcq9k07UIjfbT9ZKiszyJSzRnvyhS5qc/g3gvvVfPr4gfY9LNcRXhy rEPxup4qkKuwbxk5W3j1LeDQDJTQkl2Y8YqcehKzpZwvftnWOZScXtUNayiF3Kj3 vNXaAnGIuChFFEqFcECGSDNXZUXbt++JZ0U3kNyIzMJMcC+GomWKu2Gk1680rZ6c 9fv3ob5Z =QopK -----END PGP SIGNATURE----- --=_MailMate_B0F46FDC-2DBD-49E2-B04D-46C9691AD48E_=--