From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 9C97C45822;
	Tue, 20 Aug 2024 11:04:56 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 3899E4026C;
	Tue, 20 Aug 2024 11:04:56 +0200 (CEST)
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7])
 by mails.dpdk.org (Postfix) with ESMTP id D0D26400D6
 for <dev@dpdk.org>; Tue, 20 Aug 2024 11:04:53 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1724144694; x=1755680694;
 h=message-id:date:subject:to:cc:references:from:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=dr+L8D8vW2E23MjwT9BrOH6kUYMmqfTLBX4kiZfYfQI=;
 b=RTNPOaCALYgnkLZ0Vuk8RC+JRMRCf7ZUFcjHGBVGSX669pJnfGLeItf+
 yddxGQWwkzv20cqEfMrbjzt1OVb4+tVt9yoc7aUKecEFQiyfaE1lM+CZm
 5XSMTiYUsD6c6u1XJ5+vbbTYbt5F+AtLusoVZFMjbZ0OMIH3xTHosGq3p
 PPTMBwnOa7oxDOEHTEbue2XKr8WAt2lsH3aAdxqLOZcu9L5muQteen3YT
 3DzkhDqfMmJqISVAULo8GnedH4kWPyY/fNY8LVmniU8jyZbRGnkEQ8aQm
 hG5zPd1jZpUVfdzJUW9rWkuMJ0UCDrhnadZQu2Kvz+P0oQhFKOD3sAFAP A==;
X-CSE-ConnectionGUID: kH8ag8RHRf+9XLCs+RS2OQ==
X-CSE-MsgGUID: quTUgP+TQ0ypBdu1hZyFuA==
X-IronPort-AV: E=McAfee;i="6700,10204,11169"; a="47824265"
X-IronPort-AV: E=Sophos;i="6.10,161,1719903600"; d="scan'208";a="47824265"
Received: from fmviesa004.fm.intel.com ([10.60.135.144])
 by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 20 Aug 2024 02:04:53 -0700
X-CSE-ConnectionGUID: 19KhzOUHTfuGluGfvYT6Xg==
X-CSE-MsgGUID: /DYxhSe0RtKKN3nFoXlhZw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.10,161,1719903600"; d="scan'208";a="65353318"
Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83])
 by fmviesa004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 20 Aug 2024 02:04:53 -0700
Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by
 fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39; Tue, 20 Aug 2024 02:04:52 -0700
Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by
 fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39; Tue, 20 Aug 2024 02:04:52 -0700
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.39 via Frontend Transport; Tue, 20 Aug 2024 02:04:52 -0700
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.39; Tue, 20 Aug 2024 02:04:51 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y/JG4wBejrDbE/6jER0urCodaamsl6kItqXU3r+l7CTQoDoNTqNEUEvcoiEjQqCcRlBllyKq8XZFI/q2nsNBOYajp2c5Kx5Zkgf4//kdhmrJOldLuE1aPU/HwLuArbRrF49ingfxwjC1UK4emGQnsGMcHCPAUGzeX+sA4Wf5S2tZCbONDnxpS8AZwR6oEAlAA2fTQcMiP+yBQtggVF46OFLUcwz6H7El8Qf3lAxmlf+YKGOdFMPfBcMhG4jSMboUmBs8fQ4/XKZsd472nNp5NboFXSdv7UynDjkPjcaCi29L7WUs51bB/6oNkOGR8cpMXBTj3z8umfwlACgpRYuuLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 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=5fZyedInx2iTqhsfqwxJ/yxYljjLNJ+6tnzaVl5BJgk=;
 b=IEpDEusI+XPwHSx7twUBx9iHl/noBm3eKbT9vWh6kdhE0/hC1luxh/KS84Jvgk/fxsmAlJWw6KGcpJdjVKIetn0byw6DfxhPzwWlhgJjfoFrE/GrxR4gowm+5kOgMgM3hJCke0Da0q0LVhUSEQ1mUe7gyEkXIairh+D0FJU4zob53bPE5Jowu8Ej6fxJmP5VvtwMJI9pTOW6ZzhvADhWl7h5yz2rRi2i0on8IjxtgEhPo66gQTCWnPpdKta7iIEdxZN2QkMG3RkXZOdzqKImPkCIvNjalzoJlXL4H5wtdLDwZjVkrPrO4SC2ZWtXfkcDxG5t7AvW8xrdtATGCV6hmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
Received: from PH7PR11MB6498.namprd11.prod.outlook.com (2603:10b6:510:1f1::21)
 by SN7PR11MB6678.namprd11.prod.outlook.com (2603:10b6:806:26a::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.18; Tue, 20 Aug
 2024 09:04:49 +0000
Received: from PH7PR11MB6498.namprd11.prod.outlook.com
 ([fe80::999a:425d:a211:5d30]) by PH7PR11MB6498.namprd11.prod.outlook.com
 ([fe80::999a:425d:a211:5d30%6]) with mapi id 15.20.7875.019; Tue, 20 Aug 2024
 09:04:49 +0000
Message-ID: <ab65666c-c908-4958-92af-8adf78c6e39a@intel.com>
Date: Tue, 20 Aug 2024 11:04:43 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] usertools/dpdk-hugepages.py: sort by NUMA node
To: Robin Jarry <rjarry@redhat.com>, <dev@dpdk.org>
CC: <bruce.richardson@intel.com>
References: <e51d00fea7c535404dda4d63e483639b13c48b2d.1723634354.git.anatoly.burakov@intel.com>
 <8f79ca252aac7d47106e6660fb88ad122cd25fcc.1723810613.git.anatoly.burakov@intel.com>
 <D3JUSLL4EX11.I1RGEOXI8WZE@redhat.com>
Content-Language: en-US
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
In-Reply-To: <D3JUSLL4EX11.I1RGEOXI8WZE@redhat.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: DUZPR01CA0023.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46b::17) To PH7PR11MB6498.namprd11.prod.outlook.com
 (2603:10b6:510:1f1::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH7PR11MB6498:EE_|SN7PR11MB6678:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cb39f8c-e809-4408-4955-08dcc0f72549
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?UVUzR0R4eGZFREZISWhYTU5KQVRtS3h0Qzlkb2R3NHhZVngwTGFXVytCNVNj?=
 =?utf-8?B?ckVQTlpuY2NBSUliMXNuSzBEN2YrV1N6V29ScThmNURkMUovditObVhDdGcr?=
 =?utf-8?B?TTlKNTFTOStCaFViNXM5T1o4L0Q5RmJ1cXNFamJJcVF6aUhRQnFiTytGM0V4?=
 =?utf-8?B?TG50WG5Lc0xveFZtcmdNZm4ya1F6SXFkYnF0TEQ3WkhmYTVPMDB0S21LZTNI?=
 =?utf-8?B?blYyb0xnNjJRMXVlalFZOGo2R2N2VGc2TkVOOFVFenRwcW1wSHBVeVM0bmIz?=
 =?utf-8?B?VTRMTXlPcnlzN0IzVzZ6TmFDTk4xS05nZXM2SDMvZUJUZVNXeTBvLzRDSHJj?=
 =?utf-8?B?U1R2MkJKam5wUkVmdzV1TEN1SWZtWjVmL1ZwN2VoRktXdDJKWkxQYWV5RHh1?=
 =?utf-8?B?UzdoNjFEeXJzZXRXRWNyeERUMEhWcGdEY3Q1aTVsZE5MeWsvUFMxZ2hzdUc3?=
 =?utf-8?B?QlpQLzFmQzVMbGVBQUhlSXU1ZnZraTFkMmpWeUI4UnlFVmdjeVM4cHlHUVBv?=
 =?utf-8?B?SFBrZWF5cGJMK0ZsS29OUmNQTDF6YVEvZVBMcG1DTUlpcis5akkrWFpPdDdQ?=
 =?utf-8?B?TW9zUWJRRmdCU3lsekp0Rml2SlBJZ044bE5lcit5UHN4RlZkaWZ2SWs0MVlO?=
 =?utf-8?B?YjdXeVJjK2VXMStvb3ArTHY0elcway9RMnR6Rk5FTE5UTi93WG1HNUw3cTYy?=
 =?utf-8?B?dXZra2l0NjJ5d2NnTUxGelNMNi9BNmhtSG9OeDlPM25OZHB5STU0bTdMRXAy?=
 =?utf-8?B?cHJDMWpXTTR6K1FubndCYXZuclIwTUo2Tm1vclh4ZXluaUN3T3JoSmhMSGhM?=
 =?utf-8?B?VCtFNXc5WnRZN0FXU21QN0hlUU5zbFZPR3pWbElaU01YUzkvZnllZ3dnbXpI?=
 =?utf-8?B?Wm1qcCtkdkRwM3FmYm9aK0QrM09vNVdWVEE0cFhzWnVhUStRVG5pd2FPR09D?=
 =?utf-8?B?cGdONjUrbzF3WU5jVDExRDZRSDBTMEJPYW1taEJGMUlMV3ZMeWxZNitDN1dR?=
 =?utf-8?B?MUdEamZkaEZsMjRqMklNeTR0VGQ3azQ4RGtTaHRDR3BVSGVJZEJhcHVvZUdU?=
 =?utf-8?B?dFo5QWJIOUliQUpyS3FsWmhXNm9IbkZpUjhSMFhwUlpVanY3cjFIYklaSkxr?=
 =?utf-8?B?ODliTFF6Vk0rZkVzVTcyRUtubGViZmdQUXZhbGxBNUZPOWlBVjhoRzJYK1U2?=
 =?utf-8?B?YWJjblYrWWJWcWFCZ0UrR1VHUVhQKzhiQnJRNGpWY0NmaG5jMWZ2SDd0TU9Z?=
 =?utf-8?B?LzBHb2NWV3VxSEtZc1ppMHB3TldEcFI2b2xzYVo4VkFBS2phOTJ3Tm5XalRi?=
 =?utf-8?B?Y0NLdzNxSVFqY2oyMHhNWnV6eWZSejMzUHkwanRBQWlHcDJ0N0dhN1dCcUJu?=
 =?utf-8?B?OTV5ZU5SN1JPZDIzVm5mY0hZbVZZWk43NDVlWE9XQjduTzNDOGVPZTdoK3BQ?=
 =?utf-8?B?NGMyc2JZRWkxLzRmUWJKdTR0OGptZVo1ajdzNG9aT0c3MG5ZdDhpeWRlM1gw?=
 =?utf-8?B?dFBoNGUvOVRCcWM0WXVyeGRzWmNRUDBCL3pnQ3dmVHRUQk84V2txNEl5cWx2?=
 =?utf-8?B?RVF6WDFRVXY4NVAvN2xwSXI4T3diZUhYY0RiM2k3c3NmdC96UFRtbTdjd0lX?=
 =?utf-8?B?cWhYcndyMmlzbU4yWTAwdVoyS3VaYmhNeXZVcjYvK0JGSktVSlpYUGhPell4?=
 =?utf-8?B?TlNOckVsZ1BLR1pZQjloZTgwL3ZMOVlIdmtzdzNiZjRuZERTcG5STUFPcWkv?=
 =?utf-8?B?QlJ4SDExTUN5c0JtWDBSbnJiLzFUelplQlZsTjlCK1A2cWhKejFLamo3SFBk?=
 =?utf-8?B?MmNMWXpCVVZ6dUpMa1hjdz09?=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:PH7PR11MB6498.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(366016)(1800799024)(376014); DIR:OUT; SFP:1101; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bnQ0cll5UXdzYWFVUVhCYXlzWjI3RkQ3MHlCZk5zZGx1bTNwQ1puVU0wWThV?=
 =?utf-8?B?RHB3L0VJMm1oaWwyNjg5QktGQzF4T1Y1TDV2MnVxb1FLeXY1VlQyS2ltNk9G?=
 =?utf-8?B?UmpwWE1NOWdBQTFmb1d3aS9SR2tRWWp5NkpNMC9hOUh2MzhFa3RPbkR6eXJ0?=
 =?utf-8?B?MDVJdXNONXU0SUJ5Q3R3ZDMvL3E1WTBQMml5elA4cjRUUWR3N1I5RVdjMWNW?=
 =?utf-8?B?UnJzQmhFcUdKeDEzVlN1ZHp3SWFRUXZicW5DbzlnY1BBRVRBKzlWNTZ4K2tL?=
 =?utf-8?B?cUlFd3VvWXYwQVlsOWF3R3puOFhoaW1lRkUwSDE0N3g2Zno4aSsrbVVIUEFT?=
 =?utf-8?B?Z2ZBUXl0WGFuTEpGQVJWVXN4MEJZS3dLbkdFdllMZWpGcWFGcSsrdmN0RDZC?=
 =?utf-8?B?UXR2OUxOTUNSbUtwRHBIbVZMOGdtNmUxcnlLR1ZwaGlFOGRFTEp3RnY0SXcv?=
 =?utf-8?B?d3dESzYvNnBSV0paVHFwTGt5NlZHVGpLVTRCQXlvV1U2eDFIQndZbjNhUUM0?=
 =?utf-8?B?ZVRrYm5NYUlGUlZDT1dJSCttMW1CdGp0OG1kNzRoZVdURmVLSzJZZ0c3SkZw?=
 =?utf-8?B?Y3RjZTlsYVUxRXhrS251OU94b2hxZk1hK2pIRjhPZDZQdCszejZFWmVBN0sw?=
 =?utf-8?B?L3VXVWZEMW1FLy81YWpudkdZRGd5NGwwMnpkOFZYZVdqMnhZenY5OWNwWHdM?=
 =?utf-8?B?aTBlOXZKT0pLbHovOVZZbzZiUWdXYXBab3R0c2svcHRRd3NRN0JJYWRXQnJG?=
 =?utf-8?B?SmhsaGtsdVhZWEZTckdCcUxMM25WaHVxeXNqbUJaTlhaTHFoUEJlUXM5Nk03?=
 =?utf-8?B?NElBTHJJU3NWRlFxMm1rMWxQNDVYUFlQQ3RjUGJ3dWRYYmZRNk9MRVBvT00w?=
 =?utf-8?B?YVZKa0RLYTdUSXRXZ3d4MVlFbjN0SnRTMW1LTXRHd3N1VktseFFEdlZGYytx?=
 =?utf-8?B?RDBiZnRaL1AyZGI3WndBblZiSUdLcy9HYm01QjZmaXZBMW54b0VTMVdIZXNt?=
 =?utf-8?B?SjEvK3Yyc2s5UnpSZTdSVDJLY0tLUFRQQkgzZ1lYZXBDV3JGR1Y5bjZydE8r?=
 =?utf-8?B?NHlOZGh6L2ZjZmlVb0V6c1dWakpZb2YrNDQycDh6bkNwTXRKa04vNDZnR2Jp?=
 =?utf-8?B?NlhCWWtDUTVNSkhFYTRua2thSE83Vkl3VDE2eXIySW53d3hxT1hrZ1V2bzJK?=
 =?utf-8?B?YVloZURYekhyVXdjd2VjL3hXd0xseUF1UGsxSG1hcDY3QmRLK2JrWkh0QUNR?=
 =?utf-8?B?ajNjUWRYc1JPS2kvc29rZ0JpSkl4NmRqS1JoNUNOaXF0S0NLNkdKT0FGM0NL?=
 =?utf-8?B?VXFjUkZzWUpXVkozVCtUK3pMUXNIZjhETkdBUDV5STR6N01GSlk2SzlOUGRu?=
 =?utf-8?B?NXpKTVJxRlR5SU9XY0xWNGFqdi9qVmF1cXljVVZVU0hyVjdIUndnd1h2b0RQ?=
 =?utf-8?B?OVBrd1NFZW1OUDJYSXE2ajJ1NmllVk1iYmJ4NFlveVJ1Mm9YSENvYVpJZ2lV?=
 =?utf-8?B?eHdGa0pVUjQ0SHd3eXR1aE5NSC9sc3Rpa3VadCtvdG9KMmtPbVkyaUsrdmJr?=
 =?utf-8?B?Sit2SW83Y3ZpdmloZUpGVlVMaW9GTS9uZGp2bG02bFY4QWpuTnRMR2xjWjNs?=
 =?utf-8?B?ZTkwMXFyaDNKb3hrZ1hHb1R2MGZZelhaLzhkYXFqZDVkcXdRNTVpUWt0c3Nm?=
 =?utf-8?B?SFdOVFoxUFdJTjU4N3lwb2RHZDhJa1dQblpTYVR1ZE0xOGY0TlZ3VGlSbWYx?=
 =?utf-8?B?RnIyY1kxMlpjUkNCcXVzZmRUaTFVN3RnZzQyM3lVSXRiUGNVV3ZISy9uVEFp?=
 =?utf-8?B?UWZJM3dRRFY3QUw3YVJFcGJoTTk3Y2FmWlNVMjBaaUVUb2FIN2p5RzQxaENu?=
 =?utf-8?B?Rk9jTVptOFlZb1dYTExrZUd5MmN0WUZCa2J4Q0ZsVDZTS015NXVuZVhBaG14?=
 =?utf-8?B?cG8ya3ZIZEltMGM0djcxdm9wRjdDZXhaM3BYZmJOWmI4ckZUeFZqU3c5OEdp?=
 =?utf-8?B?M2NnVTg0OU85d3U2ZUw1b0laSnUwNzBNbEw5dWUrcy9hZzFJamJMSXNsSjdv?=
 =?utf-8?B?UlphNW9hdk5NblNJUVFEOTZTei80TlVlUzVrUDYzUFVkM3pwMXRTdU1tbEdM?=
 =?utf-8?B?bWkrN3lrV0RJLzRaL1k1b3BzQ2R6SWs0Q3V2OHJzamx1UlBVTjV6a3JqeUJL?=
 =?utf-8?B?Rmc9PQ==?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cb39f8c-e809-4408-4955-08dcc0f72549
X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB6498.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2024 09:04:49.6247 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: N4OHuOyRm+h2xHaZPfDODeQW71qBvPlKNTaqIAhIGDVKsB0bx5A/c0VN47bNoLd8yygE4fhVGDdsjoC69kzGU/FBBhK+E2H8IgKi5pcItEQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6678
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

On 8/19/2024 1:32 PM, Robin Jarry wrote:
> Anatoly Burakov, Aug 16, 2024 at 14:16:
>> Currently, the list of per-NUMA node hugepages is displayed in glob 
>> order,
>> which can be arbitrary. Fix it to sort the glob order.
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> 
> Hey Anatoly,
> 
> I mean no offense to anyone but dpdk-hugepages.py is really ugly :(
> 
> Is this script really needed? If it is, maybe it would be a good 
> opportunity to rewrite it. Is this something you'd be willing to work on?

I do agree it is, umm, let's say not up to Python standards, but I was 
attempting to minimize changes to ensure this change gets integrated 
quickly. I can try and rewrite it if that's something that community is 
willing to accept. I'm not a master Pythonist by any stretch, but I do 
like to think I'm at least capable :D

-- 
Thanks,
Anatoly