From owner-freebsd-hackers@FreeBSD.ORG Sun Apr 28 01:41:00 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 37708386; Sun, 28 Apr 2013 01:41:00 +0000 (UTC) (envelope-from kpaasial@gmail.com) Received: from mail-wi0-x236.google.com (mail-wi0-x236.google.com [IPv6:2a00:1450:400c:c05::236]) by mx1.freebsd.org (Postfix) with ESMTP id 9FA981259; Sun, 28 Apr 2013 01:40:59 +0000 (UTC) Received: by mail-wi0-f182.google.com with SMTP id m6so1743815wiv.9 for ; Sat, 27 Apr 2013 18:40:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=fj53/O0c1KnB+ra+pDbOc561VZ8YAmhS+QqVCigA9GY=; b=jwjXjHWMmHcu7pFjmqRWDE10J4exWCAgB95utSAYLdm9AY4BpNPR4snseUIF8AjEDh ExgT84S9cbv/j08SVZyFtzE7C4uB4Q3DI4RNEYCHNd8QRVeTNn15t9aMbOc5uXttiYLS qQMOC4hJ5MtksfVgWcXWX3d1r1C/677YiQUt20+L/qzAgO5NRgJNbbATHZC9lkpWwXjK +I4STzU1p/80aof/q8ijmQ/FBCkzEj7whsPlIZp8hZhHD9CoFGwM6Fie8W08XKSzhzvz 8wmeH4miRl6CfDlJEDGZfns692S9ztnmhh0WYbrG/58x8h49ZC4Qy/kr0Jgx5YzS8eP8 37rg== MIME-Version: 1.0 X-Received: by 10.194.59.106 with SMTP id y10mr7631658wjq.28.1367113258776; Sat, 27 Apr 2013 18:40:58 -0700 (PDT) Received: by 10.216.139.72 with HTTP; Sat, 27 Apr 2013 18:40:58 -0700 (PDT) In-Reply-To: References: <20130427190514.GA85673@FreeBSD.org> Date: Sun, 28 Apr 2013 04:40:58 +0300 Message-ID: Subject: Re: config(8) -x headscratcher From: Kimmo Paasiala To: "Wojciech A. Koszek" Content-Type: text/plain; charset=UTF-8 Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Apr 2013 01:41:00 -0000 On Sat, Apr 27, 2013 at 11:53 PM, Kimmo Paasiala wrote: > On Sat, Apr 27, 2013 at 11:42 PM, Kimmo Paasiala wrote: >> On Sat, Apr 27, 2013 at 10:05 PM, Wojciech A. Koszek >> wrote: >>> On Sat, Apr 27, 2013 at 06:54:11PM +0300, Kimmo Paasiala wrote: >>>> I'm getting a core dump on 'config -x /boot/kernel/kernel' on 9.1-RELEASE i386. >>>> >>>> Assertion failed: (r != '\0' && ("Char present in the configuration " >>>> "string mustn't be equal to 0")), function kernconfdump, file >>>> /usr/src/usr.sbin/config/main.c, line 710. >>>> >>>> I have double checked that my config file is sane and does not have >>>> any funny characters anywhere. >>>> >>>> The system is i386 9.1-RELEASE r249856. The world and kernel are built >>>> with clang and I'm suspecting that the use of clang has something to >>>> do with this segfault. >>>> >>>> Looking at the kernel files I can see one very obvious difference. >>>> This is the 'elfdump -c kernel | grep -A 8 kern_conf' output (what >>>> config -x seems to use for finding out the config file from the kernel >>>> image) for the GENERIC kernel from the stock installation: >>>> >>>> sh_name: kern_conf >>>> sh_type: SHT_PROGBITS >>>> sh_flags: SHF_ALLOC >>>> sh_addr: 0xc1039f80 >>>> sh_offset: 12820352 >>>> sh_size: 3771 >>>> sh_link: 0 >>>> sh_info: 0 >>>> sh_addralign: 32 >>>> >>>> And this is from the kernel I have built myself using clang and a >>>> custom config file: >>>> >>>> sh_name: kern_conf >>>> sh_type: SHT_PROGBITS >>>> sh_flags: SHF_ALLOC >>>> sh_addr: 0xc09aee9c >>>> sh_offset: 5959324 >>>> sh_size: 1994 >>>> sh_link: 0 >>>> sh_info: 0 >>>> sh_addralign: 1 >>>> >>>> The align field looks suspicious, config -x seems to use it to check >>>> for padding but to me it looks like the logic may not work if the >>>> alignment is 1. >>>> >>>> This the relevant bit from main.c of config(8) >>>> >>> >>> Kimmo, >>> >>> Lets keep discussion on hackers@ only. I do agree with you that config(8) >>> internal implementation might have its issues. >>> >>> Can you make your kernel configuration file, faulty kernel image and exact >>> build instructions available to me? >>> >>> -- >>> Wojciech A. Koszek >>> wkoszek@FreeBSD.czest.pl >>> http://FreeBSD.czest.pl/~wkoszek/ >> >> The kernel config file: >> >> http://pastebin.com/j0J9NPCi >> >> My /etc/make.conf: >> >> http://pastebin.com/HYudWCA9 >> >> And /etc/src.conf: >> >> http://pastebin.com/ZAKq6ABT >> >> I'll see how I can make the kernel image available. >> >> -Kimmo > > The kernel file: > > https://www.dropbox.com/s/07mjk6j4ditbl9r/kernel > > -Kimmo dmesg(8) output of the system: http://pastebin.com/hqjsak2n -Kimmo From owner-freebsd-hackers@FreeBSD.ORG Sun Apr 28 17:09:56 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 46B3B30D for ; Sun, 28 Apr 2013 17:09:56 +0000 (UTC) (envelope-from wkoszek@freebsd.czest.pl) Received: from freebsd.czest.pl (freebsd.czest.pl [212.87.224.105]) by mx1.freebsd.org (Postfix) with ESMTP id D0B281D8D for ; Sun, 28 Apr 2013 17:09:55 +0000 (UTC) Received: from freebsd.czest.pl (freebsd.czest.pl [212.87.224.105]) by freebsd.czest.pl (8.14.5/8.14.5) with ESMTP id r3SH9D1L093344; Sun, 28 Apr 2013 17:09:13 GMT (envelope-from wkoszek@freebsd.czest.pl) Received: (from wkoszek@localhost) by freebsd.czest.pl (8.14.5/8.14.5/Submit) id r3SH9DwN093343; Sun, 28 Apr 2013 17:09:13 GMT (envelope-from wkoszek) Date: Sun, 28 Apr 2013 17:09:13 +0000 From: "Wojciech A. Koszek" To: Kimmo Paasiala Subject: Re: config(8) -x headscratcher Message-ID: <20130428170913.GF85673@FreeBSD.org> References: <20130427190514.GA85673@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-0.4 required=5.0 tests=RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on freebsd.czest.pl X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (freebsd.czest.pl [212.87.224.105]); Sun, 28 Apr 2013 17:09:16 +0000 (UTC) Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Apr 2013 17:09:56 -0000 On Sun, Apr 28, 2013 at 04:40:58AM +0300, Kimmo Paasiala wrote: > On Sat, Apr 27, 2013 at 11:53 PM, Kimmo Paasiala wrote: > > On Sat, Apr 27, 2013 at 11:42 PM, Kimmo Paasiala wrote: > >> On Sat, Apr 27, 2013 at 10:05 PM, Wojciech A. Koszek > >> wrote: > >>> On Sat, Apr 27, 2013 at 06:54:11PM +0300, Kimmo Paasiala wrote: > >>>> I'm getting a core dump on 'config -x /boot/kernel/kernel' on 9.1-RELEASE i386. > >>>> [..] > >> > >> The kernel config file: > >> > >> http://pastebin.com/j0J9NPCi > >> > >> My /etc/make.conf: > >> > >> http://pastebin.com/HYudWCA9 > >> > >> And /etc/src.conf: > >> > >> http://pastebin.com/ZAKq6ABT > >> > >> I'll see how I can make the kernel image available. > >> > >> -Kimmo > > > > The kernel file: > > > > https://www.dropbox.com/s/07mjk6j4ditbl9r/kernel > > > > -Kimmo > > dmesg(8) output of the system: > > http://pastebin.com/hqjsak2n Kimmo, Thanks for the information. Can you try following patch: cd /usr/src/usr.sbin/config fetch http://people.freebsd.org/~wkoszek/patches/config-align.patch patch -p0 < config-align.patch make and see if it fixes your problem for all kernel images you're building? -- Wojciech A. Koszek wkoszek@FreeBSD.czest.pl http://FreeBSD.czest.pl/~wkoszek/ From owner-freebsd-hackers@FreeBSD.ORG Sun Apr 28 21:21:08 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 4AB95426; Sun, 28 Apr 2013 21:21:08 +0000 (UTC) (envelope-from kpaasial@gmail.com) Received: from mail-wi0-x236.google.com (mail-wi0-x236.google.com [IPv6:2a00:1450:400c:c05::236]) by mx1.freebsd.org (Postfix) with ESMTP id B3E4E1589; Sun, 28 Apr 2013 21:21:07 +0000 (UTC) Received: by mail-wi0-f182.google.com with SMTP id m6so2180917wiv.9 for ; Sun, 28 Apr 2013 14:21:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=aqCHnd1rRYpFD2VQOOicZBM2J51XPSlWJcYMiCEcGC0=; b=y0RawjpeaEnqAjlOg0PT4xVZkuGOam8JPTAjgtnwgjWKRN3sNtr1JJLXodJ5SFbGFz sHmh8j2B941fTruFAzSApAZ+1mDXUQdyoVqqea/xjg6WAPXXDwIvryQ4xfIGbegQWJ5Q Oub8dV5OjugmvCBmm0sMqSgzBXQBZXWPvh/diD+h5DYHim4cnoFa6jdfNN+Ovc4yJP03 FgcQ+ciObg6FphBXHnnf2o+NEYdFa74m4ir1eekKLoCv+nXCh2T+BYjsrv5041bz8qy5 jqY791zPVDi7GoXp9ZWIBs7hhjtn8ONPhZzzYfieX9im7beQk8RdQ2subNtV7hOwgphD eiUQ== MIME-Version: 1.0 X-Received: by 10.180.14.5 with SMTP id l5mr8792331wic.32.1367184066798; Sun, 28 Apr 2013 14:21:06 -0700 (PDT) Received: by 10.216.139.72 with HTTP; Sun, 28 Apr 2013 14:21:06 -0700 (PDT) In-Reply-To: <20130428170913.GF85673@FreeBSD.org> References: <20130427190514.GA85673@FreeBSD.org> <20130428170913.GF85673@FreeBSD.org> Date: Mon, 29 Apr 2013 00:21:06 +0300 Message-ID: Subject: Re: config(8) -x headscratcher From: Kimmo Paasiala To: "Wojciech A. Koszek" Content-Type: text/plain; charset=UTF-8 Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Apr 2013 21:21:08 -0000 On Sun, Apr 28, 2013 at 8:09 PM, Wojciech A. Koszek wrote: > On Sun, Apr 28, 2013 at 04:40:58AM +0300, Kimmo Paasiala wrote: >> On Sat, Apr 27, 2013 at 11:53 PM, Kimmo Paasiala wrote: >> > On Sat, Apr 27, 2013 at 11:42 PM, Kimmo Paasiala wrote: >> >> On Sat, Apr 27, 2013 at 10:05 PM, Wojciech A. Koszek >> >> wrote: >> >>> On Sat, Apr 27, 2013 at 06:54:11PM +0300, Kimmo Paasiala wrote: >> >>>> I'm getting a core dump on 'config -x /boot/kernel/kernel' on 9.1-RELEASE i386. >> >>>> > > > [..] > >> >> >> >> The kernel config file: >> >> >> >> http://pastebin.com/j0J9NPCi >> >> >> >> My /etc/make.conf: >> >> >> >> http://pastebin.com/HYudWCA9 >> >> >> >> And /etc/src.conf: >> >> >> >> http://pastebin.com/ZAKq6ABT >> >> >> >> I'll see how I can make the kernel image available. >> >> >> >> -Kimmo >> > >> > The kernel file: >> > >> > https://www.dropbox.com/s/07mjk6j4ditbl9r/kernel >> > >> > -Kimmo >> >> dmesg(8) output of the system: >> >> http://pastebin.com/hqjsak2n > > Kimmo, > > Thanks for the information. Can you try following patch: > > cd /usr/src/usr.sbin/config > fetch http://people.freebsd.org/~wkoszek/patches/config-align.patch > patch -p0 < config-align.patch > make > > and see if it fixes your problem for all kernel images you're building? > > -- Thanks. That patch does fix the problem with config -x. However, is the alignment of 1 an error that needs to be addressed as well? -Kimmo From owner-freebsd-hackers@FreeBSD.ORG Mon Apr 29 00:16:36 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 946F461E for ; Mon, 29 Apr 2013 00:16:36 +0000 (UTC) (envelope-from lists@eitanadler.com) Received: from mail-pd0-f174.google.com (mail-pd0-f174.google.com [209.85.192.174]) by mx1.freebsd.org (Postfix) with ESMTP id 7171B1CD3 for ; Mon, 29 Apr 2013 00:16:36 +0000 (UTC) Received: by mail-pd0-f174.google.com with SMTP id y13so2923926pdi.33 for ; Sun, 28 Apr 2013 17:16:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eitanadler.com; s=0xdeadbeef; h=x-received:mime-version:from:date:message-id:subject:to:cc :content-type; bh=1CMwWQI4397oiqGgGCTS5qiVuajuhlL/+4FOZtkkCtQ=; b=gAsvUZUIlOaCwKO/ybm8nl3rGXYp8hRqlWqSdeCrlUlh5qeiN00SZqdPvjTPZsRbkf 6qbcsnzEHYyxowcT5dwSljDsir0PSYRRbF4jC12Kt0ODM38dAe8XQ9xjTdV3rTWMpetx iqyDsgHZijwXrlxKtnlBI+Gmrlm1B2eIgggjQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to:cc :content-type:x-gm-message-state; bh=1CMwWQI4397oiqGgGCTS5qiVuajuhlL/+4FOZtkkCtQ=; b=iztTnseqUIMFleU5z0hqIK0PxkF8yF4NCc4h8QiQIRGPcP9Re8D0xWbyXEEd0GgsYE 3HFJccJlk5OfVnLJzjf+TqoPYUt9H+yy4durGRWnjji96rRGVHFiVFQWc3HamVomkYOW BqUaIgYXH09UMOoogH6K2NDU2pc08mxfFp4cY0Oxem0iNCt8v/P/0jeyAmrS4Zq0LvQL sFsvcDKgUKxds2AVSVSJHv1h2Jy1Cdhy++urfnpw+FiLYSTYp/Eg7DjHYlb9oUUCTpSZ TjMha2tb+5hqB9DQCo3nM2+fWc4btJjXBOVmc8ndfSR5BNwTkcBX35Qj5b72s/wkwIj/ 9+hg== X-Received: by 10.68.220.106 with SMTP id pv10mr69120180pbc.52.1367194590759; Sun, 28 Apr 2013 17:16:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.66.159.97 with HTTP; Sun, 28 Apr 2013 17:16:00 -0700 (PDT) From: Eitan Adler Date: Sun, 28 Apr 2013 20:16:00 -0400 Message-ID: Subject: sys/dev/hptiop cleanup & bugfix To: FreeBSD Hackers Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQl0rQIJCA5E8tqkr30q0dNtRwYl64yDeKbVYw/Xxp0KD4InZOhtd+yK9Xys6wC3V1JvZJjn Cc: swildner@dragonflybsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Apr 2013 00:16:36 -0000 Thoughts? commit 17adf7957edc9d3512a02bcc3436e2718469002c Author: Eitan Adler Date: Sun Apr 28 20:11:42 2013 -0400 Remove ancient compatibility cruft. diff --git a/sys/dev/hptiop/hptiop.c b/sys/dev/hptiop/hptiop.c index 1191718..8ded436 100644 --- a/sys/dev/hptiop/hptiop.c +++ b/sys/dev/hptiop/hptiop.c @@ -30,12 +30,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#if (__FreeBSD_version >= 500000) #include #include -#else -#include -#endif #include #include @@ -43,11 +39,9 @@ __FBSDID("$FreeBSD$"); #include #include -#if (__FreeBSD_version >= 500000) #include #include #include -#endif #include #include @@ -62,17 +56,9 @@ __FBSDID("$FreeBSD$"); #include #include -#if (__FreeBSD_version >= 500000) #include #include -#else -#include -#include -#endif -#if (__FreeBSD_version <= 500043) -#include -#endif #include #include @@ -83,9 +69,6 @@ __FBSDID("$FreeBSD$"); #include #include -#if (__FreeBSD_version < 500043) -#include -#endif #include @@ -177,27 +160,11 @@ static struct cdevsw hptiop_cdevsw = { .d_close = hptiop_close, .d_ioctl = hptiop_ioctl, .d_name = driver_name, -#if __FreeBSD_version>=503000 .d_version = D_VERSION, -#endif -#if (__FreeBSD_version>=503000 && __FreeBSD_version<600034) - .d_flags = D_NEEDGIANT, -#endif -#if __FreeBSD_version<600034 -#if __FreeBSD_version>=501000 - .d_maj = MAJOR_AUTO, -#else - .d_maj = HPT_DEV_MAJOR, -#endif -#endif }; -#if __FreeBSD_version < 503000 -#define hba_from_dev(dev) ((struct hpt_iop_hba *)(dev)->si_drv1) -#else #define hba_from_dev(dev) \ ((struct hpt_iop_hba *)devclass_get_softc(hptiop_devclass, dev2unit(dev))) -#endif #define BUS_SPACE_WRT4_ITL(offset, value) bus_space_write_4(hba->bar0t,\ hba->bar0h, offsetof(struct hpt_iopmu_itl, offset), (value)) @@ -245,9 +212,7 @@ static int hptiop_ioctl(ioctl_dev_t dev, u_long cmd, caddr_t data, int ret = EFAULT; struct hpt_iop_hba *hba = hba_from_dev(dev); -#if (__FreeBSD_version >= 500000) mtx_lock(&Giant); -#endif switch (cmd) { case HPT_DO_IOCONTROL: @@ -259,9 +224,7 @@ static int hptiop_ioctl(ioctl_dev_t dev, u_long cmd, caddr_t data, break; } -#if (__FreeBSD_version >= 500000) mtx_unlock(&Giant); -#endif return ret; } @@ -1615,21 +1578,15 @@ static int hptiop_internal_memalloc_mv(struct hpt_iop_hba *hba) 1, BUS_SPACE_MAXSIZE_32BIT, BUS_DMA_ALLOCNOW, -#if __FreeBSD_version > 502000 NULL, NULL, -#endif &hba->ctlcfg_dmat)) { device_printf(hba->pcidev, "alloc ctlcfg_dmat failed\n"); return -1; } if (bus_dmamem_alloc(hba->ctlcfg_dmat, (void **)&hba->ctlcfg_ptr, -#if __FreeBSD_version>501000 BUS_DMA_WAITOK | BUS_DMA_COHERENT, -#else - BUS_DMA_WAITOK, -#endif &hba->ctlcfg_dmamap) != 0) { device_printf(hba->pcidev, "bus_dmamem_alloc failed!\n"); @@ -1678,21 +1635,15 @@ static int hptiop_internal_memalloc_mvfrey(struct hpt_iop_hba *hba) 1, BUS_SPACE_MAXSIZE_32BIT, BUS_DMA_ALLOCNOW, -#if __FreeBSD_version > 502000 NULL, NULL, -#endif &hba->ctlcfg_dmat)) { device_printf(hba->pcidev, "alloc ctlcfg_dmat failed\n"); return -1; } if (bus_dmamem_alloc(hba->ctlcfg_dmat, (void **)&hba->ctlcfg_ptr, -#if __FreeBSD_version>501000 BUS_DMA_WAITOK | BUS_DMA_COHERENT, -#else - BUS_DMA_WAITOK, -#endif &hba->ctlcfg_dmamap) != 0) { device_printf(hba->pcidev, "bus_dmamem_alloc failed!\n"); @@ -1937,9 +1888,7 @@ static int hptiop_attach(device_t dev) pci_get_bus(dev), pci_get_slot(dev), pci_get_function(dev), hba->ops)); -#if __FreeBSD_version >=440000 pci_enable_busmaster(dev); -#endif hba->pcidev = dev; hba->pciunit = unit; @@ -1951,9 +1900,7 @@ static int hptiop_attach(device_t dev) goto release_pci_res; } -#if (__FreeBSD_version >= 500000) mtx_init(&hba->lock, "hptioplock", NULL, MTX_DEF); -#endif if (bus_dma_tag_create(bus_get_dma_tag(dev),/* PCI parent */ 1, /* alignment */ @@ -1965,10 +1912,8 @@ static int hptiop_attach(device_t dev) BUS_SPACE_UNRESTRICTED, /* nsegments */ BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */ 0, /* flags */ -#if __FreeBSD_version>502000 NULL, /* lockfunc */ NULL, /* lockfuncarg */ -#endif &hba->parent_dmat /* tag */)) { device_printf(dev, "alloc parent_dmat failed\n"); @@ -2015,10 +1960,8 @@ static int hptiop_attach(device_t dev) hba->max_sg_count, /* nsegments */ 0x20000, /* maxsegsize */ BUS_DMA_ALLOCNOW, /* flags */ -#if __FreeBSD_version>502000 busdma_lock_mutex, /* lockfunc */ &hba->lock, /* lockfuncarg */ -#endif &hba->io_dmat /* tag */)) { device_printf(dev, "alloc io_dmat failed\n"); @@ -2035,10 +1978,8 @@ static int hptiop_attach(device_t dev) 1, /* nsegments */ BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */ 0, /* flags */ -#if __FreeBSD_version>502000 NULL, /* lockfunc */ NULL, /* lockfuncarg */ -#endif &hba->srb_dmat /* tag */)) { device_printf(dev, "alloc srb_dmat failed\n"); @@ -2046,11 +1987,7 @@ static int hptiop_attach(device_t dev) } if (bus_dmamem_alloc(hba->srb_dmat, (void **)&hba->uncached_ptr, -#if __FreeBSD_version>501000 BUS_DMA_WAITOK | BUS_DMA_COHERENT, -#else - BUS_DMA_WAITOK, -#endif &hba->srb_dmamap) != 0) { device_printf(dev, "srb bus_dmamem_alloc failed!\n"); @@ -2071,23 +2008,14 @@ static int hptiop_attach(device_t dev) goto srb_dmamap_unload; } -#if __FreeBSD_version <700000 - hba->sim = cam_sim_alloc(hptiop_action, hptiop_poll, driver_name, - hba, unit, hba->max_requests - 1, 1, devq); -#else hba->sim = cam_sim_alloc(hptiop_action, hptiop_poll, driver_name, hba, unit, &Giant, hba->max_requests - 1, 1, devq); -#endif if (!hba->sim) { device_printf(dev, "cam_sim_alloc failed\n"); cam_simq_free(devq); goto srb_dmamap_unload; } -#if __FreeBSD_version <700000 - if (xpt_bus_register(hba->sim, 0) != CAM_SUCCESS) -#else if (xpt_bus_register(hba->sim, dev, 0) != CAM_SUCCESS) -#endif { device_printf(dev, "xpt_bus_register failed\n"); goto free_cam_sim; @@ -2124,13 +2052,8 @@ static int hptiop_attach(device_t dev) goto free_hba_path; } -#if __FreeBSD_version <700000 - if (bus_setup_intr(hba->pcidev, hba->irq_res, INTR_TYPE_CAM, - hptiop_pci_intr, hba, &hba->irq_handle)) -#else if (bus_setup_intr(hba->pcidev, hba->irq_res, INTR_TYPE_CAM, NULL, hptiop_pci_intr, hba, &hba->irq_handle)) -#endif { device_printf(dev, "allocate intr function failed!\n"); goto free_irq_resource; @@ -2149,9 +2072,6 @@ static int hptiop_attach(device_t dev) UID_ROOT, GID_WHEEL /*GID_OPERATOR*/, S_IRUSR | S_IWUSR, "%s%d", driver_name, unit); -#if __FreeBSD_version < 503000 - hba->ioctl_dev->si_drv1 = hba; -#endif return 0; @@ -2419,15 +2339,7 @@ scsi_done: break; case XPT_CALC_GEOMETRY: -#if __FreeBSD_version >= 500000 cam_calc_geometry(&ccb->ccg, 1); -#else - ccb->ccg.heads = 255; - ccb->ccg.secs_per_track = 63; - ccb->ccg.cylinders = ccb->ccg.volume_size / - (ccb->ccg.heads * ccb->ccg.secs_per_track); - ccb->ccb_h.status = CAM_REQ_CMP; -#endif break; case XPT_PATH_INQ: diff --git a/sys/dev/hptiop/hptiop.h b/sys/dev/hptiop/hptiop.h index 0c8de3c..8683620 100644 --- a/sys/dev/hptiop/hptiop.h +++ b/sys/dev/hptiop/hptiop.h @@ -333,17 +333,9 @@ struct hpt_iop_ioctl_param { #define HPT_IOCTL_FLAG_OPEN 1 #define HPT_CTL_CODE_BSD_TO_IOP(x) ((x)-0xff00) -#if __FreeBSD_version>503000 typedef struct cdev * ioctl_dev_t; -#else -typedef dev_t ioctl_dev_t; -#endif -#if __FreeBSD_version >= 500000 typedef struct thread * ioctl_thread_t; -#else -typedef struct proc * ioctl_thread_t; -#endif struct hpt_iop_hba { struct hptiop_adapter_ops *ops; @@ -425,11 +417,7 @@ struct hpt_iop_hba { struct cam_sim *sim; struct cam_path *path; void *req; -#if (__FreeBSD_version >= 500000) struct mtx lock; -#else - int hpt_splx; -#endif #define HPT_IOCTL_FLAG_OPEN 1 u_int32_t flag; struct hpt_iop_srb* srb[HPT_SRB_MAX_QUEUE_SIZE]; @@ -474,19 +462,8 @@ struct hpt_iop_srb { int index; }; -#if __FreeBSD_version >= 500000 #define hptiop_lock_adapter(hba) mtx_lock(&(hba)->lock) #define hptiop_unlock_adapter(hba) mtx_unlock(&(hba)->lock) -#else -static __inline void hptiop_lock_adapter(struct hpt_iop_hba *hba) -{ - hba->hpt_splx = splcam(); -} -static __inline void hptiop_unlock_adapter(struct hpt_iop_hba *hba) -{ - splx(hba->hpt_splx); -} -#endif #define HPT_OSM_TIMEOUT (20*hz) /* timeout value for OS commands */ @@ -499,24 +476,12 @@ static __inline int hptiop_sleep(struct hpt_iop_hba *hba, void *ident, int retval; -#if __FreeBSD_version >= 500000 retval = msleep(ident, &hba->lock, priority, wmesg, timo); -#else - asleep(ident, priority, wmesg, timo); - hptiop_unlock_adapter(hba); - retval = await(priority, timo); - hptiop_lock_adapter(hba); -#endif return retval; } -#if __FreeBSD_version < 501000 -#define READ_16 0x88 -#define WRITE_16 0x8a -#define SERVICE_ACTION_IN 0x9e -#endif #define HPT_DEV_MAJOR 200 commit 6c2ededb884cf00fc9ebd5787175b4915a9d2ad1 Author: Eitan Adler Date: Sun Apr 28 20:07:36 2013 -0400 Add missing braces Reviewed by: swildner@dragonflybsd.org diff --git a/sys/dev/hptiop/hptiop.c b/sys/dev/hptiop/hptiop.c index d7a17c8..1191718 100644 --- a/sys/dev/hptiop/hptiop.c +++ b/sys/dev/hptiop/hptiop.c @@ -1642,10 +1642,11 @@ static int hptiop_internal_memalloc_mv(struct hpt_iop_hba *hba) MVIOP_IOCTLCFG_SIZE, hptiop_mv_map_ctlcfg, hba, 0)) { device_printf(hba->pcidev, "bus_dmamap_load failed!\n"); - if (hba->ctlcfg_dmat) + if (hba->ctlcfg_dmat) { bus_dmamem_free(hba->ctlcfg_dmat, hba->ctlcfg_ptr, hba->ctlcfg_dmamap); bus_dma_tag_destroy(hba->ctlcfg_dmat); + } return -1; } @@ -1704,10 +1705,11 @@ static int hptiop_internal_memalloc_mvfrey(struct hpt_iop_hba *hba) hba->u.mvfrey.internal_mem_size, hptiop_mvfrey_map_ctlcfg, hba, 0)) { device_printf(hba->pcidev, "bus_dmamap_load failed!\n"); - if (hba->ctlcfg_dmat) + if (hba->ctlcfg_dmat) { bus_dmamem_free(hba->ctlcfg_dmat, hba->ctlcfg_ptr, hba->ctlcfg_dmamap); bus_dma_tag_destroy(hba->ctlcfg_dmat); + } return -1; } -- Eitan Adler From owner-freebsd-hackers@FreeBSD.ORG Mon Apr 29 12:55:46 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id EFFCFBD2; Mon, 29 Apr 2013 12:55:46 +0000 (UTC) (envelope-from jiashiun@gmail.com) Received: from mail-oa0-f53.google.com (mail-oa0-f53.google.com [209.85.219.53]) by mx1.freebsd.org (Postfix) with ESMTP id B4C4112E4; Mon, 29 Apr 2013 12:55:46 +0000 (UTC) Received: by mail-oa0-f53.google.com with SMTP id m6so5964029oag.26 for ; Mon, 29 Apr 2013 05:55:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=w7sfVTtCNu63jIZr2rURBKBL62fXcLnl+iKxYKimwOA=; b=X/pkLckmY6f8oFCB0+vXSgybXDhOojhcipSULEh1wNHkvptqPIAEjBMHOwt6v6pB4l 8nOHnUZa47UmlhIgazkNlAR6JJKMTa8Wak8pGMJWcZvVpwYmWWlUb0+rXInEmSV79lah vs8HKufSy/2q4mQc09FPF+8Cak/2JgjzSt80IIs2AeU1aL5UvPQy4ZBj18yD5AebAx9H /btQ26hciQcu+Ppq7xarcGQ8gRGtWaDugpALMhmiNKjiHz06sUPbTq0VSzsq/vDFOgDK Ea+Xnzz7W4DwHa6VYoDjTHOiokpmjwoSefS5f8dxXNm6ly8kBTmziCQzwWd8ivpwkYxW e/gQ== X-Received: by 10.60.179.42 with SMTP id dd10mr28951072oec.51.1367240140255; Mon, 29 Apr 2013 05:55:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.76.168.232 with HTTP; Mon, 29 Apr 2013 05:55:10 -0700 (PDT) In-Reply-To: <517E67AB.9030902@contactlab.com> References: <514C1E5F.8040504@contactlab.com> <517E67AB.9030902@contactlab.com> From: Jia-Shiun Li Date: Mon, 29 Apr 2013 20:55:10 +0800 Message-ID: Subject: Re: FreeBSD 9.1 vs CentOS 6.3 To: "Davide D'Amico" Content-Type: text/plain; charset=UTF-8 Cc: freebsd-hackers@freebsd.org, freebsd-performance X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Apr 2013 12:55:47 -0000 Hi, that's ok, just to make sure the spec. Are you running - a 2-socket Xeon E5-2640 system, and - not running VM (and assigning only partial CPUs to it)? It will need someone else having similar machines to help reproduce it. My guess is some counting bits got overflown, or the CPU topology reported by the BIOS is too new for 9.1R. And the result is it saw less CPUs than actual case, and thus gives you worse performance than you expected. CC -hackers@ to see if anyone has ideas or access to similar systems. -Jia-Shiun. On Mon, Apr 29, 2013 at 8:29 PM, Davide D'Amico wrote: > Il 29/04/13 14:20, Jia-Shiun Li ha scritto: > >> On Fri, Mar 22, 2013 at 5:03 PM, Davide D'Amico >> wrote: >>> >>> Hi, I'm doing performance tests on a DELL R720, follows dmesg: >>> >>> Copyright (c) 1992-2012 The FreeBSD Project. >>> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 >>> The Regents of the University of California. All rights >>> reserved. >>> FreeBSD is a registered trademark of The FreeBSD Foundation. >>> FreeBSD 9.1-RELEASE #0: Tue Mar 19 10:24:21 CET 2013 >>> root:/usr/obj/usr/src/sys/R720 amd64 >>> CPU: Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz (2500.05-MHz K8-class CPU) >>> Origin = "GenuineIntel" Id = 0x206d7 Family = 6 Model = 2d Stepping >>> = 7 >>> >>> Features=0xbfebfbff >>> >>> Features2=0x1fbee3ff >>> AMD Features=0x2c100800 >>> AMD Features2=0x1 >>> TSC: P-state invariant, performance statistics >>> real memory = 34359738368 (32768 MB) >>> avail memory = 33027436544 (31497 MB) >>> Event timer "LAPIC" quality 600 >>> ACPI APIC Table: >>> FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs >>> FreeBSD/SMP: 2 package(s) x 2 core(s) x 2 SMT threads >>> cpu0 (BSP): APIC ID: 0 >>> cpu1 (AP): APIC ID: 1 >>> cpu2 (AP): APIC ID: 10 >>> cpu3 (AP): APIC ID: 11 >>> cpu4 (AP): APIC ID: 32 >>> cpu5 (AP): APIC ID: 33 >>> cpu6 (AP): APIC ID: 42 >>> cpu7 (AP): APIC ID: 43 >> >> >> >> According to CPU model you appear to have a system w/ 2 CPU packages x >> 6-core x 2-thread, which should be 12C/24T total. But it appears 9.1R >> only recognized 4C/8T. It does not look like a VM. Could you confirm? >> If it is really so 9.1R and your BIOS may have problem playing well >> together. >> > Sorry, I had to 'reuse' these servers so they are not available for testing > anymore. > > I hope I'll have similar servers in the future. > > Best, > d. > From owner-freebsd-hackers@FreeBSD.ORG Tue Apr 30 04:19:12 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id DA23671C for ; Tue, 30 Apr 2013 04:19:12 +0000 (UTC) (envelope-from vagner@bsdway.ru) Received: from bsdway.ru (bsdway.ru [62.109.17.46]) by mx1.freebsd.org (Postfix) with ESMTP id 652F0189D for ; Tue, 30 Apr 2013 04:19:11 +0000 (UTC) Received: from localhost ([188.134.95.3]) (authenticated bits=0) by bsdway.ru (8.14.4/8.14.5) with ESMTP id r3U3njpK003423; Tue, 30 Apr 2013 07:49:46 +0400 (MSD) (envelope-from vagner@bsdway.ru) Date: Tue, 30 Apr 2013 07:49:40 +0400 From: Vagner To: freebsd-hackers@freebsd.org Subject: Re: SystemV IPC. Segment info Message-ID: <20130430034940.GA8305@vagner-wrk.bsdway.ru> Mail-Followup-To: freebsd-hackers@freebsd.org References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bsdway.ru [62.109.17.46]); Tue, 30 Apr 2013 07:49:46 +0400 (MSD) Cc: vagner@bsdway.ru X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Apr 2013 04:19:12 -0000 Tell me please, may I send this to PR, or this changes is not valid? > Hello! > A few weeks ago, I ran into problem, which related to SystemV IPC. > More than 20 processes attached to a segment shared queue. Process-initiator for > create segment was killed, as process which was accessed to segment > last. Segment didn't free memory, but tagged it as SHMSEG_REMOVED as > the result. This is a reason of memory overflow (memory assotiated as > shm). Moreover, processes, which was attached to this segment did't > get a new data. I have one resolve. I need to restarted all process, > which still attached to segment. But this reason have a problem. We > haven't list of this processes at system. Moreover, struct shmid_ds, > which described segment, haven't this info too. > > This patch is a resolve of problem. It: > - added a linked list of structures shmid_pi in struct shmid_ds. PID > (and last access time) recorded to this struct consistently. Memory > allocates with ident 'shminfo' for this list of struct shmid_pi. > - added syscall shminf for get all elements from list shmid_ds. > - added option [-P] in ipcs(1) for system call shminf. > > Thanks. > > -- > Respectfully, > Stanislav Putrya > System administrator > FotoStrana.Ru Ltd. > ICQ IM: 328585847 > Jabber-GoogleTalk: root.vagner > mob.phone SPB: +79215788755 > mob.phone RND: +79525600664 > email: vagner@bsdway.ru > email: putrya@playform.ru > email: root.vagner@gmail.com > site: bsdway.ru > site: fotostrana.ru > > ---------------------------------------- > ( ) ASCII ribbon campaign > X - against HTML, vCards and > / \ - proprietary attachments in e-mail > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: shminf.patch > Type: text/x-diff > Size: 30460 bytes > Desc: not available > URL: > From owner-freebsd-hackers@FreeBSD.ORG Tue Apr 30 14:44:14 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id DBC6D895 for ; Tue, 30 Apr 2013 14:44:14 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay02.stack.nl [IPv6:2001:610:1108:5010::104]) by mx1.freebsd.org (Postfix) with ESMTP id 9B82E16F9 for ; Tue, 30 Apr 2013 14:44:14 +0000 (UTC) Received: from snail.stack.nl (snail.stack.nl [IPv6:2001:610:1108:5010::131]) by mx1.stack.nl (Postfix) with ESMTP id B6258359305 for ; Tue, 30 Apr 2013 16:44:11 +0200 (CEST) Received: by snail.stack.nl (Postfix, from userid 1677) id 9D6F428493; Tue, 30 Apr 2013 16:44:11 +0200 (CEST) Date: Tue, 30 Apr 2013 16:44:11 +0200 From: Jilles Tjoelker To: freebsd-hackers@freebsd.org Subject: Re: SystemV IPC. Segment info Message-ID: <20130430144411.GA1002@stack.nl> References: <20130430034940.GA8305@vagner-wrk.bsdway.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130430034940.GA8305@vagner-wrk.bsdway.ru> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Apr 2013 14:44:14 -0000 On Tue, Apr 30, 2013 at 07:49:40AM +0400, Vagner wrote: > Tell me please, may I send this to PR, or this changes is not valid? > > A few weeks ago, I ran into problem, which related to SystemV IPC. > > More than 20 processes attached to a segment shared queue. > > Process-initiator for create segment was killed, as process which > > was accessed to segment last. Segment didn't free memory, but tagged > > it as SHMSEG_REMOVED as the result. This is a reason of memory > > overflow (memory assotiated as shm). Moreover, processes, which was > > attached to this segment did't get a new data. I have one resolve. I > > need to restarted all process, which still attached to segment. But > > this reason have a problem. We haven't list of this processes at > > system. Moreover, struct shmid_ds, which described segment, haven't > > this info too. > > This patch is a resolve of problem. It: > > - added a linked list of structures shmid_pi in struct shmid_ds. PID > > (and last access time) recorded to this struct consistently. Memory > > allocates with ident 'shminfo' for this list of struct shmid_pi. > > - added syscall shminf for get all elements from list shmid_ds. > > - added option [-P] in ipcs(1) for system call shminf. I think it is strange to maintain pids in the VM system. This makes the VM system more complex for little reason (because the information is only needed for monitoring, not normal operation). Perhaps it is possible to do what you want using procstat -v or a slight extension to it. Alternatively, you may find a different way to get rid of your stale worker processes. For example, before invoking shmctl(IPC_RMID), set a flag inside the memory segment that all workers should exit and activate whatever mechanism you use for telling the workers that they need to do something. -- Jilles Tjoelker From owner-freebsd-hackers@FreeBSD.ORG Tue Apr 30 21:49:46 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A21D48D9 for ; Tue, 30 Apr 2013 21:49:46 +0000 (UTC) (envelope-from vagner@bsdway.ru) Received: from bsdway.ru (bsdway.ru [62.109.17.46]) by mx1.freebsd.org (Postfix) with ESMTP id 1C7AA1B0F for ; Tue, 30 Apr 2013 21:49:45 +0000 (UTC) Received: from localhost ([188.134.95.3]) (authenticated bits=0) by bsdway.ru (8.14.4/8.14.5) with ESMTP id r3ULngVJ019060; Wed, 1 May 2013 01:49:43 +0400 (MSD) (envelope-from vagner@bsdway.ru) Date: Wed, 1 May 2013 01:49:37 +0400 From: Vagner To: Jilles Tjoelker Subject: Re: SystemV IPC. Segment info Message-ID: <20130430214937.GA27234@vagner-wrk.bsdway.ru> Mail-Followup-To: Jilles Tjoelker , freebsd-hackers@freebsd.org References: <20130430034940.GA8305@vagner-wrk.bsdway.ru> <20130430144411.GA1002@stack.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130430144411.GA1002@stack.nl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bsdway.ru [62.109.17.46]); Wed, 01 May 2013 01:49:43 +0400 (MSD) Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Apr 2013 21:49:46 -0000 On 16:44 Tue 30 Apr , Jilles Tjoelker wrote: > On Tue, Apr 30, 2013 at 07:49:40AM +0400, Vagner wrote: > > Tell me please, may I send this to PR, or this changes is not valid? > > > > A few weeks ago, I ran into problem, which related to SystemV IPC. > > > More than 20 processes attached to a segment shared queue. > > > Process-initiator for create segment was killed, as process which > > > was accessed to segment last. Segment didn't free memory, but tagged > > > it as SHMSEG_REMOVED as the result. This is a reason of memory > > > overflow (memory assotiated as shm). Moreover, processes, which was > > > attached to this segment did't get a new data. I have one resolve. I > > > need to restarted all process, which still attached to segment. But > > > this reason have a problem. We haven't list of this processes at > > > system. Moreover, struct shmid_ds, which described segment, haven't > > > this info too. > > > > This patch is a resolve of problem. It: > > > - added a linked list of structures shmid_pi in struct shmid_ds. PID > > > (and last access time) recorded to this struct consistently. Memory > > > allocates with ident 'shminfo' for this list of struct shmid_pi. > > > - added syscall shminf for get all elements from list shmid_ds. > > > - added option [-P] in ipcs(1) for system call shminf. > > I think it is strange to maintain pids in the VM system. This makes the > VM system more complex for little reason (because the information is > only needed for monitoring, not normal operation). > Yes, it, may be, not nice solution, but I don't found there I can see address of segment (from user space). If you know where can see, tell me please. > Perhaps it is possible to do what you want using procstat -v or a slight > extension to it. > procstat(1) can show for me only proc->ki_vmspace struct, but there not contain info about mapping shared serments. > Alternatively, you may find a different way to get rid of your stale > worker processes. For example, before invoking shmctl(IPC_RMID), set a > flag inside the memory segment that all workers should exit and activate > whatever mechanism you use for telling the workers that they need to do > something. This solution requires action from workers, but I think many developers will not want to rewrite their soft... > > -- > Jilles Tjoelker > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" of segment (from user space). If you know where can see, tell me please. \ -- Respectfully, Stanislav Putrya System administrator FotoStrana.Ru Ltd. ICQ IM: 328585847 Jabber-GoogleTalk: root.vagner mob.phone SPB: +79215788755 mob.phone RND: +79525600664 email: vagner@bsdway.ru email: putrya@playform.ru email: root.vagner@gmail.com site: bsdway.ru site: fotostrana.ru ---------------------------------------- ( ) ASCII ribbon campaign X - against HTML, vCards and / \ - proprietary attachments in e-mail From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 03:58:00 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 6B2C7CA3 for ; Wed, 1 May 2013 03:58:00 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lauren.room52.net (lauren.room52.net [210.50.193.198]) by mx1.freebsd.org (Postfix) with ESMTP id 362251742 for ; Wed, 1 May 2013 03:57:59 +0000 (UTC) Received: from lstewart.caia.swin.edu.au (lstewart.caia.swin.edu.au [136.186.229.95]) by lauren.room52.net (Postfix) with ESMTPSA id 87AE97E88D for ; Wed, 1 May 2013 13:57:51 +1000 (EST) Message-ID: <518092BF.9070105@freebsd.org> Date: Wed, 01 May 2013 13:57:51 +1000 From: Lawrence Stewart User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130314 Thunderbird/17.0.4 MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Subject: Adding a FOREACH_CONTINUE() variant to queue(3) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.0 required=5.0 tests=UNPARSEABLE_RELAY autolearn=unavailable version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lauren.room52.net X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 03:58:00 -0000 [reposting from freebsd-arch@ - was probably the wrong list] Hi all, I've had use for these a few times now when wanting to restart a loop at a previously found element, and wonder if there are any thoughts about sticking them (and equivalents for other list types) in ? Cheers, Lawrence #define TAILQ_FOREACH_CONTINUE(var, head, field) \ for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ (var); \ (var) = TAILQ_NEXT((var), field)) #define SLIST_FOREACH_CONTINUE(var, head, field) \ for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ (var); \ (var) = SLIST_NEXT((var), field)) From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 04:11:05 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 9C179F95; Wed, 1 May 2013 04:11:05 +0000 (UTC) (envelope-from bright@mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 8E0F31796; Wed, 1 May 2013 04:11:05 +0000 (UTC) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) by elvis.mu.org (Postfix) with ESMTPSA id 9F1171A3C19; Tue, 30 Apr 2013 21:10:59 -0700 (PDT) Message-ID: <518095C0.30605@mu.org> Date: Tue, 30 Apr 2013 21:10:40 -0700 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: Lawrence Stewart Subject: Re: Adding a FOREACH_CONTINUE() variant to queue(3) References: <518092BF.9070105@freebsd.org> In-Reply-To: <518092BF.9070105@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 04:11:05 -0000 On 4/30/13 8:57 PM, Lawrence Stewart wrote: > [reposting from freebsd-arch@ - was probably the wrong list] > > Hi all, > > I've had use for these a few times now when wanting to restart a loop at > a previously found element, and wonder if there are any thoughts about > sticking them (and equivalents for other list types) in ? > > Cheers, > Lawrence > > #define TAILQ_FOREACH_CONTINUE(var, head, field) \ > for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ > (var); \ > (var) = TAILQ_NEXT((var), field)) > > > #define SLIST_FOREACH_CONTINUE(var, head, field) \ > for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ > (var); \ > (var) = SLIST_NEXT((var), field)) > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > Can you show a few uses please? If it can significantly cut down on extra code it seems wise. -Alfred From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 04:40:56 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 07ED96D5 for ; Wed, 1 May 2013 04:40:56 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lauren.room52.net (lauren.room52.net [210.50.193.198]) by mx1.freebsd.org (Postfix) with ESMTP id C43861843 for ; Wed, 1 May 2013 04:40:55 +0000 (UTC) Received: from lstewart.caia.swin.edu.au (lstewart.caia.swin.edu.au [136.186.229.95]) by lauren.room52.net (Postfix) with ESMTPSA id 244E77E820; Wed, 1 May 2013 14:40:54 +1000 (EST) Message-ID: <51809CD5.1040509@freebsd.org> Date: Wed, 01 May 2013 14:40:53 +1000 From: Lawrence Stewart User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130314 Thunderbird/17.0.4 MIME-Version: 1.0 To: Alfred Perlstein Subject: Re: Adding a FOREACH_CONTINUE() variant to queue(3) References: <518092BF.9070105@freebsd.org> <518095C0.30605@mu.org> In-Reply-To: <518095C0.30605@mu.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.0 required=5.0 tests=UNPARSEABLE_RELAY autolearn=unavailable version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lauren.room52.net Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 04:40:56 -0000 Hi Alfred, On 05/01/13 14:10, Alfred Perlstein wrote: > On 4/30/13 8:57 PM, Lawrence Stewart wrote: >> [reposting from freebsd-arch@ - was probably the wrong list] >> >> Hi all, >> >> I've had use for these a few times now when wanting to restart a loop at >> a previously found element, and wonder if there are any thoughts about >> sticking them (and equivalents for other list types) in ? >> >> Cheers, >> Lawrence >> >> #define TAILQ_FOREACH_CONTINUE(var, head, field) \ >> for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ >> (var); \ >> (var) = TAILQ_NEXT((var), field)) >> >> >> #define SLIST_FOREACH_CONTINUE(var, head, field) \ >> for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ >> (var); \ >> (var) = SLIST_NEXT((var), field)) > > Can you show a few uses please? If it can significantly cut down on > extra code it seems wise. Sure. Here is an excerpt from the MPTCP patch at [1] related to TCP reassembly (more uses are in the patch if you search for FOREACH_CONTINUE): + /* + * Search from segment just inserted towards end of list looking + * for a hole. + */ + q = te; + TAILQ_FOREACH_CONTINUE(q, tp->t_segq, tqe_q) { + nq = TAILQ_NEXT(q, tqe_q); + if (nq != NULL && + q->tqe_th->th_seq + q->tqe_len != nq->tqe_th->th_seq) { + /* Found the first out of sequence segment in the reass list. */ + tp->t_segq->disordered = nq; + break; + } + } + if (q == NULL) + tp->t_segq->disordered = NULL; Here is an excerpt from some unreleased code I'm working on that writes a full sysctl MIB path (e.g. "a.b.c.d") into a string buffer "name", progressing through the sysctl tree one MIB path at a time each time the function is called (oid is initialised to be the point in the sysctl tree from the last time the function was called): + again: + /* Depth first traversal of tree. */ + SLIST_FOREACH_CONTINUE(oid, lsp, oid_link) { + if (layer == 0 && strcmp(oid->oid_name, "sysctl") == 0) + continue; + + namelen = strlcat(name, oid->oid_name, remain); + remain -= namelen; + layer_state[layer].layer = lsp; + layer_state[layer].branch = oid; + + if (((oid->oid_kind & CTLTYPE) == CTLTYPE_NODE) && + !SLIST_EMPTY(SYSCTL_CHILDREN(oid))) { + layer++; + lsp = SYSCTL_CHILDREN(oid); + oid = NULL; + *(name + namelen) = '.'; + namelen++; + *(name + namelen) = '\0'; + remain -= 1; + goto again; + } else { + /* Leaf node. */ + return (namelen); + } + } Cheers, Lawrence [1] http://caia.swin.edu.au/urp/newtcp/mptcp/tools/mptcp_v0.3_10.x.248226.patch From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 05:17:12 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id C6700BA9 for ; Wed, 1 May 2013 05:17:12 +0000 (UTC) (envelope-from wkoszek@freebsd.czest.pl) Received: from freebsd.czest.pl (freebsd.czest.pl [212.87.224.105]) by mx1.freebsd.org (Postfix) with ESMTP id 407CA193B for ; Wed, 1 May 2013 05:17:12 +0000 (UTC) Received: from freebsd.czest.pl (freebsd.czest.pl [212.87.224.105]) by freebsd.czest.pl (8.14.5/8.14.5) with ESMTP id r415GPtG017277; Wed, 1 May 2013 05:16:25 GMT (envelope-from wkoszek@freebsd.czest.pl) Received: (from wkoszek@localhost) by freebsd.czest.pl (8.14.5/8.14.5/Submit) id r415GPfS017276; Wed, 1 May 2013 05:16:25 GMT (envelope-from wkoszek) Date: Wed, 1 May 2013 05:16:25 +0000 From: "Wojciech A. Koszek" To: Kimmo Paasiala Subject: Re: config(8) -x headscratcher Message-ID: <20130501051625.GF11713@FreeBSD.org> References: <20130427190514.GA85673@FreeBSD.org> <20130428170913.GF85673@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-0.4 required=5.0 tests=RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on freebsd.czest.pl X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (freebsd.czest.pl [212.87.224.105]); Wed, 01 May 2013 05:16:29 +0000 (UTC) Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 05:17:12 -0000 On Mon, Apr 29, 2013 at 12:21:06AM +0300, Kimmo Paasiala wrote: > On Sun, Apr 28, 2013 at 8:09 PM, Wojciech A. Koszek wrote: > > On Sun, Apr 28, 2013 at 04:40:58AM +0300, Kimmo Paasiala wrote: > >> On Sat, Apr 27, 2013 at 11:53 PM, Kimmo Paasiala wrote: > >> > On Sat, Apr 27, 2013 at 11:42 PM, Kimmo Paasiala wrote: > >> >> On Sat, Apr 27, 2013 at 10:05 PM, Wojciech A. Koszek > >> >> wrote: > >> >>> On Sat, Apr 27, 2013 at 06:54:11PM +0300, Kimmo Paasiala wrote: > >> >>>> I'm getting a core dump on 'config -x /boot/kernel/kernel' on 9.1-RELEASE i386. > >> >>>> > > > > > > [..] > > > >> >> > >> >> The kernel config file: > >> >> > >> >> http://pastebin.com/j0J9NPCi > >> >> > >> >> My /etc/make.conf: > >> >> > >> >> http://pastebin.com/HYudWCA9 > >> >> > >> >> And /etc/src.conf: > >> >> > >> >> http://pastebin.com/ZAKq6ABT > >> >> > >> >> I'll see how I can make the kernel image available. > >> >> > >> >> -Kimmo > >> > > >> > The kernel file: > >> > > >> > https://www.dropbox.com/s/07mjk6j4ditbl9r/kernel > >> > > >> > -Kimmo > >> > >> dmesg(8) output of the system: > >> > >> http://pastebin.com/hqjsak2n > > > > Kimmo, > > > > Thanks for the information. Can you try following patch: > > > > cd /usr/src/usr.sbin/config > > fetch http://people.freebsd.org/~wkoszek/patches/config-align.patch > > patch -p0 < config-align.patch > > make > > > > and see if it fixes your problem for all kernel images you're building? > > > > -- > > Thanks. That patch does fix the problem with config -x. However, is > the alignment of 1 an error that needs to be addressed as well? Kimmo, Thanks for this report. I fixed it in HEAD as of revision 250133. I'll MFC it after 10 days. I can't comment about alignment differences--I don't know. -- Wojciech A. Koszek wkoszek@FreeBSD.czest.pl http://FreeBSD.czest.pl/~wkoszek/ From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 05:59:51 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 582A551E for ; Wed, 1 May 2013 05:59:51 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lauren.room52.net (lauren.room52.net [210.50.193.198]) by mx1.freebsd.org (Postfix) with ESMTP id 206E41C4A for ; Wed, 1 May 2013 05:59:50 +0000 (UTC) Received: from lstewart.caia.swin.edu.au (lstewart.caia.swin.edu.au [136.186.229.95]) by lauren.room52.net (Postfix) with ESMTPSA id 451997E81E; Wed, 1 May 2013 15:59:49 +1000 (EST) Message-ID: <5180AF55.5070000@freebsd.org> Date: Wed, 01 May 2013 15:59:49 +1000 From: Lawrence Stewart User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130314 Thunderbird/17.0.4 MIME-Version: 1.0 To: Poul-Henning Kamp Subject: Re: Adding a FOREACH_CONTINUE() variant to queue(3) References: <518092BF.9070105@freebsd.org> <74840.1367386143@critter.freebsd.dk> In-Reply-To: <74840.1367386143@critter.freebsd.dk> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.0 required=5.0 tests=UNPARSEABLE_RELAY autolearn=unavailable version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lauren.room52.net Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 05:59:51 -0000 On 05/01/13 15:29, Poul-Henning Kamp wrote: > In message <518092BF.9070105@freebsd.org>, Lawrence Stewart writes: >> [reposting from freebsd-arch@ - was probably the wrong list] > >> #define TAILQ_FOREACH_CONTINUE(var, head, field) \ > > Obligatory bikeshedding: > > I find the suffix "_CONTINUE" non-obvious, as there may not have > been any previos FOREACH involved. > > TAILQ_FOREACH_FROM(...) ? Agreed. Thanks for the input. From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 07:41:54 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id AE819F17 for ; Wed, 1 May 2013 07:41:54 +0000 (UTC) (envelope-from lstewart@freebsd.org) Received: from lauren.room52.net (lauren.room52.net [210.50.193.198]) by mx1.freebsd.org (Postfix) with ESMTP id 76103102E for ; Wed, 1 May 2013 07:41:54 +0000 (UTC) Received: from lstewart.caia.swin.edu.au (lstewart.caia.swin.edu.au [136.186.229.95]) by lauren.room52.net (Postfix) with ESMTPSA id 7816E7E820 for ; Wed, 1 May 2013 17:41:52 +1000 (EST) Message-ID: <5180C740.1060104@freebsd.org> Date: Wed, 01 May 2013 17:41:52 +1000 From: Lawrence Stewart User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130314 Thunderbird/17.0.4 MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Subject: Re: Adding a FOREACH_CONTINUE() variant to queue(3) References: <518092BF.9070105@freebsd.org> <74840.1367386143@critter.freebsd.dk> <5180AF55.5070000@freebsd.org> In-Reply-To: <5180AF55.5070000@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.0 required=5.0 tests=UNPARSEABLE_RELAY autolearn=unavailable version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lauren.room52.net X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 07:41:54 -0000 On 05/01/13 15:59, Lawrence Stewart wrote: > On 05/01/13 15:29, Poul-Henning Kamp wrote: >> In message <518092BF.9070105@freebsd.org>, Lawrence Stewart writes: >>> [reposting from freebsd-arch@ - was probably the wrong list] >> >>> #define TAILQ_FOREACH_CONTINUE(var, head, field) \ >> >> Obligatory bikeshedding: >> >> I find the suffix "_CONTINUE" non-obvious, as there may not have >> been any previos FOREACH involved. >> >> TAILQ_FOREACH_FROM(...) ? > > Agreed. Thanks for the input. Here's an untested patch for consideration: http://people.freebsd.org/~lstewart/patches/misc/queue_foreach_from_10.x.r250136.patch I didn't do _SAFE variants as I don't have an immediate use for them. Cheers, Lawrence From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 05:29:11 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 545D2D59; Wed, 1 May 2013 05:29:11 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id 1F3EE1A95; Wed, 1 May 2013 05:29:11 +0000 (UTC) Received: from critter.freebsd.dk (critter.freebsd.dk [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id 13E3889FC6; Wed, 1 May 2013 05:29:04 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.6/8.14.6) with ESMTP id r415T3qs074841; Wed, 1 May 2013 05:29:03 GMT (envelope-from phk@phk.freebsd.dk) To: Lawrence Stewart Subject: Re: Adding a FOREACH_CONTINUE() variant to queue(3) In-reply-to: <518092BF.9070105@freebsd.org> From: "Poul-Henning Kamp" References: <518092BF.9070105@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1 Date: Wed, 01 May 2013 05:29:03 +0000 Message-ID: <74840.1367386143@critter.freebsd.dk> X-Mailman-Approved-At: Wed, 01 May 2013 11:17:48 +0000 Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 05:29:11 -0000 In message <518092BF.9070105@freebsd.org>, Lawrence Stewart writes: >[reposting from freebsd-arch@ - was probably the wrong list] >#define TAILQ_FOREACH_CONTINUE(var, head, field) \ Obligatory bikeshedding: I find the suffix "_CONTINUE" non-obvious, as there may not have been any previos FOREACH involved. TAILQ_FOREACH_FROM(...) ? -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 16:47:02 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 1FEFACA9 for ; Wed, 1 May 2013 16:47:02 +0000 (UTC) (envelope-from bright@mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 11C6B186D for ; Wed, 1 May 2013 16:47:01 +0000 (UTC) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) by elvis.mu.org (Postfix) with ESMTPSA id 037801A3C67 for ; Wed, 1 May 2013 09:46:57 -0700 (PDT) Message-ID: <518146F1.9020609@mu.org> Date: Wed, 01 May 2013 09:46:41 -0700 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: hackers@freebsd.org Subject: potential future proofing fix for aicasm build. References: <51814686.2060805@ixsystems.com> In-Reply-To: <51814686.2060805@ixsystems.com> X-Forwarded-Message-Id: <51814686.2060805@ixsystems.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 16:47:02 -0000 Hey folks, I took a shot at fixing this issue with building aicasm as part of "buildkernel" of an older 9.0 src on a machine running HEAD. aicasm.o: In function `__getCurrentRuneLocale': > /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale' The issue seems to be two-fold: 1) Paths are not fully set to pick up the bootstrap tools needed to build. 2) include files use the host's instead of the build trees. The first problem is fixed by changing setting of PATH from "${BPATH}:${PATH}" to ${TMPPATH}. The second is fixed by using -nostdinc and setting strict include paths using -I directives to the compiler: CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" Can I get review on this patch? https://gist.github.com/anonymous/5493734 Inline: diff --git a/Makefile.inc1 b/Makefile.inc1 index e850cda..785e3180 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -830,17 +830,18 @@ buildkernel: @echo ">>> stage 2.3: build tools" @echo "--------------------------------------------------------------" cd ${KRNLOBJDIR}/${_kernel}; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \ + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" \ -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile # XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case. .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules) .for target in obj depend all + @echo "---- aicasm: ${target} ----" cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target} + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" ${target} .endfor .endif .if !defined(NO_KERNELDEPEND) From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 16:57:04 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 8F8721CE for ; Wed, 1 May 2013 16:57:04 +0000 (UTC) (envelope-from prvs=18336b5b69=killing@multiplay.co.uk) Received: from mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) by mx1.freebsd.org (Postfix) with ESMTP id 2018E1935 for ; Wed, 1 May 2013 16:57:03 +0000 (UTC) Received: from r2d2 ([46.65.172.4]) by mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) (MDaemon PRO v10.0.4) with ESMTP id md50003591690.msg for ; Wed, 01 May 2013 17:56:55 +0100 X-Spam-Processed: mail1.multiplay.co.uk, Wed, 01 May 2013 17:56:55 +0100 (not processed: message from valid local sender) X-MDDKIM-Result: neutral (mail1.multiplay.co.uk) X-MDRemoteIP: 46.65.172.4 X-Return-Path: prvs=18336b5b69=killing@multiplay.co.uk X-Envelope-From: killing@multiplay.co.uk X-MDaemon-Deliver-To: hackers@freebsd.org Message-ID: From: "Steven Hartland" To: "Alfred Perlstein" , References: <51814686.2060805@ixsystems.com> <518146F1.9020609@mu.org> Subject: Re: potential future proofing fix for aicasm build. Date: Wed, 1 May 2013 17:57:31 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 16:57:04 -0000 I don't believe aicasm is actually needed if you don't have a driver which requires e.g. ahd or ahc. It would be good to get that fixed too. Regards Steve ----- Original Message ----- From: "Alfred Perlstein" To: Sent: Wednesday, May 01, 2013 5:46 PM Subject: potential future proofing fix for aicasm build. > > Hey folks, > > I took a shot at fixing this issue with building aicasm as part of > "buildkernel" of an older 9.0 src on a machine running HEAD. > > aicasm.o: In function `__getCurrentRuneLocale': > > /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale' > > The issue seems to be two-fold: > > 1) Paths are not fully set to pick up the bootstrap tools needed to build. > 2) include files use the host's instead of the build trees. > > The first problem is fixed by changing setting of PATH from > "${BPATH}:${PATH}" to ${TMPPATH}. > > The second is fixed by using -nostdinc and setting strict include paths > using -I directives to the compiler: > > CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" > > > > Can I get review on this patch? > > https://gist.github.com/anonymous/5493734 > > Inline: > > diff --git a/Makefile.inc1 b/Makefile.inc1 > index e850cda..785e3180 100644 > --- a/Makefile.inc1 > +++ b/Makefile.inc1 > @@ -830,17 +830,18 @@ buildkernel: > @echo ">>> stage 2.3: build tools" > @echo "--------------------------------------------------------------" > cd ${KRNLOBJDIR}/${_kernel}; \ > - PATH=${BPATH}:${PATH} \ > + PATH=${TMPPATH} \ > MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \ > - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \ > + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF > CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" \ > -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile > # XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case. > .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules) > .for target in obj depend all > + @echo "---- aicasm: ${target} ----" > cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \ > - PATH=${BPATH}:${PATH} \ > + PATH=${TMPPATH} \ > MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \ > - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target} > + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF > CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" ${target} > .endfor > .endif > .if !defined(NO_KERNELDEPEND) > > > > > > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > ================================================ This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk. From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 17:27:32 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id BB4B3D59 for ; Wed, 1 May 2013 17:27:32 +0000 (UTC) (envelope-from bright@mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id AB7AE1B48 for ; Wed, 1 May 2013 17:27:32 +0000 (UTC) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) by elvis.mu.org (Postfix) with ESMTPSA id 35D441A3C6B; Wed, 1 May 2013 10:27:32 -0700 (PDT) Message-ID: <51815074.6020904@mu.org> Date: Wed, 01 May 2013 10:27:16 -0700 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: Steven Hartland Subject: Re: potential future proofing fix for aicasm build. References: <51814686.2060805@ixsystems.com> <518146F1.9020609@mu.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 17:27:32 -0000 On 5/1/13 9:57 AM, Steven Hartland wrote: > I don't believe aicasm is actually needed if you don't have a driver > which requires e.g. ahd or ahc. It would be good to get that fixed too. True, but a challenge I don't currently have time for. I'm about to kick-off a universe build with my changes in aicasm, but I was hoping someone could tell me if I was going in the right direction here. -Alfred From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 16:45:13 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 19406C92 for ; Wed, 1 May 2013 16:45:13 +0000 (UTC) (envelope-from alfred@ixsystems.com) Received: from mail.iXsystems.com (newknight.ixsystems.com [206.40.55.70]) by mx1.freebsd.org (Postfix) with ESMTP id 01A7D1862 for ; Wed, 1 May 2013 16:45:12 +0000 (UTC) Received: from localhost (mail.ixsystems.com [10.2.55.1]) by mail.iXsystems.com (Postfix) with ESMTP id 8ABD884CD for ; Wed, 1 May 2013 09:45:12 -0700 (PDT) Received: from mail.iXsystems.com ([10.2.55.1]) by localhost (mail.ixsystems.com [10.2.55.1]) (maiad, port 10024) with ESMTP id 03559-07 for ; Wed, 1 May 2013 09:45:12 -0700 (PDT) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.iXsystems.com (Postfix) with ESMTPSA id CC43384B7 for ; Wed, 1 May 2013 09:45:09 -0700 (PDT) Message-ID: <51814686.2060805@ixsystems.com> Date: Wed, 01 May 2013 09:44:54 -0700 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: hackers@freebsd.org Subject: potential future proofing fix for aicasm build. X-Mailman-Approved-At: Wed, 01 May 2013 18:29:19 +0000 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 16:45:13 -0000 Hey folks, I took a shot at fixing this issue with building aicasm as part of "buildkernel" of an older 9.0 src on a machine running HEAD. aicasm.o: In function `__getCurrentRuneLocale': > /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale' The issue seems to be two-fold: 1) Paths are not fully set to pick up the bootstrap tools needed to build. 2) include files use the host's instead of the build trees. The first problem is fixed by changing setting of PATH from "${BPATH}:${PATH}" to ${TMPPATH}. The second is fixed by using -nostdinc and setting strict include paths using -I directives to the compiler: CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" Can I get review on this patch? https://gist.github.com/anonymous/5493734 Inline: diff --git a/Makefile.inc1 b/Makefile.inc1 index e850cda..785e3180 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -830,17 +830,18 @@ buildkernel: @echo ">>> stage 2.3: build tools" @echo "--------------------------------------------------------------" cd ${KRNLOBJDIR}/${_kernel}; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \ + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" \ -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile # XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case. .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules) .for target in obj depend all + @echo "---- aicasm: ${target} ----" cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \ - PATH=${BPATH}:${PATH} \ + PATH=${TMPPATH} \ MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \ - ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target} + ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" ${target} .endfor .endif .if !defined(NO_KERNELDEPEND) From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 18:34:54 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 13CC3161 for ; Wed, 1 May 2013 18:34:54 +0000 (UTC) (envelope-from syuu@dokukino.com) Received: from mail-pb0-x235.google.com (mail-pb0-x235.google.com [IPv6:2607:f8b0:400e:c01::235]) by mx1.freebsd.org (Postfix) with ESMTP id E3E3D1E77 for ; Wed, 1 May 2013 18:34:53 +0000 (UTC) Received: by mail-pb0-f53.google.com with SMTP id un1so843347pbc.40 for ; Wed, 01 May 2013 11:34:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dokukino.com; s=google; h=x-received:mime-version:from:date:message-id:subject:to :content-type; bh=27xfs12ofmyI8cfZ98uPYd/q7ohdsD8bUOh02gLTruQ=; b=fWTF+1oQuX+IGgpzQUHE8+vgHP9GYlONmw9eIOI60fUidEGszn447M0RJxmWhisUn3 PffJyG+fVB1wSapfnAHe6++eDJc1oMNw57F0ZkR3axLjDPZOo+ZNy8Oa1ubBalvo4lJg WrJU8uaHZGM0IgQfIyY2eqHMzfA9SozxgpL9Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to :content-type:x-gm-message-state; bh=27xfs12ofmyI8cfZ98uPYd/q7ohdsD8bUOh02gLTruQ=; b=Qqye6Mz0K3IvJxilMQU5i502msjpRU3KSo4AKeWYx60JEeR2X++TGY4sWkjlsq3Jcy rrquiBwa8SSRVyUI5G0ofizi/K4fPMEFFVtVwGjnWk6AFUZ81BkSW4pGggfrWVxtHE3v ADmMCNMLFnv7JmvlDR+ktc0Db4iEPos2qyRSALvPMV7ZF4ISobyYcAr4tikpClv6nPm3 hg8zXfQ6niIax5T/IJ+GTybtMKsT1x5Zksvw09OCSrvCz3y3MBAvUIRKkZ2loKLEWmBI 6aBi6etfd0CKT/q0ioO0ZUy3AIJLEauIij1V5/K924B6KJedN1+OftCS/U9mQo+5kvKf 73KA== X-Received: by 10.66.156.196 with SMTP id wg4mr6369374pab.23.1367433293699; Wed, 01 May 2013 11:34:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.150.98 with HTTP; Wed, 1 May 2013 11:34:13 -0700 (PDT) From: Takuya ASADA Date: Thu, 2 May 2013 03:34:13 +0900 Message-ID: Subject: [Looking for GSoC mentor] Port NiLFS to FreeBSD To: freebsd-hackers@freebsd.org X-Gm-Message-State: ALoCoQlTTxYuyv8NEpG1R905Elkh5OsE9+7Hgny2NY4ehTSbwl1HVt7mwsFDJXLXd5+pAp+OPsVC Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 18:34:54 -0000 Hi, My friend has interest to apply GSoC'13 with "Port NiLFS to FreeBSD", witch is on IdeasPage(not tagged as GSoC though). https://wiki.freebsd.org/IdeasPage#Port_NiLFS_to_FreeBSD There's no technical contact on the page, who can be a mentor of the project? Or, it's not goot project for GSoC? From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 21:38:12 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 23F29FE0 for ; Wed, 1 May 2013 21:38:12 +0000 (UTC) (envelope-from brooks@lor.one-eyed-alien.net) Received: from lor.one-eyed-alien.net (lor.one-eyed-alien.net [69.66.77.232]) by mx1.freebsd.org (Postfix) with ESMTP id 6625C1499 for ; Wed, 1 May 2013 21:38:11 +0000 (UTC) Received: from lor.one-eyed-alien.net (localhost [127.0.0.1]) by lor.one-eyed-alien.net (8.14.5/8.14.5) with ESMTP id r41LcAgj048491; Wed, 1 May 2013 16:38:10 -0500 (CDT) (envelope-from brooks@lor.one-eyed-alien.net) Received: (from brooks@localhost) by lor.one-eyed-alien.net (8.14.5/8.14.5/Submit) id r41LcA1Z048490; Wed, 1 May 2013 16:38:10 -0500 (CDT) (envelope-from brooks) Date: Wed, 1 May 2013 16:38:10 -0500 From: Brooks Davis To: Alfred Perlstein Subject: Re: potential future proofing fix for aicasm build. Message-ID: <20130501213810.GB45806@lor.one-eyed-alien.net> References: <51814686.2060805@ixsystems.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="IiVenqGWf+H9Y6IX" Content-Disposition: inline In-Reply-To: <51814686.2060805@ixsystems.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 21:38:12 -0000 --IiVenqGWf+H9Y6IX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, May 01, 2013 at 09:44:54AM -0700, Alfred Perlstein wrote: > Hey folks, >=20 > I took a shot at fixing this issue with building aicasm as part of=20 > "buildkernel" of an older 9.0 src on a machine running HEAD. >=20 > aicasm.o: In function `__getCurrentRuneLocale': >=20 > /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale' >=20 > The issue seems to be two-fold: >=20 > 1) Paths are not fully set to pick up the bootstrap tools needed to build. > 2) include files use the host's instead of the build trees. >=20 > The first problem is fixed by changing setting of PATH from=20 > "${BPATH}:${PATH}" to ${TMPPATH}. >=20 > The second is fixed by using -nostdinc and setting strict include paths= =20 > using -I directives to the compiler: >=20 > CFLAGS=3D"-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic= 7xxx/aicasm" This seems basically ok. > Can I get review on this patch? The line wrapping bugs should have been fixed before posting, but it otherwise looks fine. I do wonder why we don't just install aicasm in the base and bootstrap it in the unlikely event that it changes in an important way. A quick scan of svn log suggests that gibbs fixed a bug in mid-2010 and the last non-build system or portability change was circa 2003 so I don't think we'd break old-style kernel builds at a rate worth worrying about. -- Brooks --IiVenqGWf+H9Y6IX Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iD8DBQFRgYtBXY6L6fI4GtQRAoThAJwKy93MRB2wLXBJdHteqE0xdRgargCgvYX7 K4FL50WYZPqf3YrvKdv8oUI= =w0hK -----END PGP SIGNATURE----- --IiVenqGWf+H9Y6IX-- From owner-freebsd-hackers@FreeBSD.ORG Wed May 1 22:13:44 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A65AE229; Wed, 1 May 2013 22:13:44 +0000 (UTC) (envelope-from bright@mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 96E4D1609; Wed, 1 May 2013 22:13:44 +0000 (UTC) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) by elvis.mu.org (Postfix) with ESMTPSA id 9D0AE1A3CBA; Wed, 1 May 2013 15:13:41 -0700 (PDT) Message-ID: <51819386.6010107@mu.org> Date: Wed, 01 May 2013 15:13:26 -0700 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: Brooks Davis Subject: Re: potential future proofing fix for aicasm build. References: <51814686.2060805@ixsystems.com> <20130501213810.GB45806@lor.one-eyed-alien.net> In-Reply-To: <20130501213810.GB45806@lor.one-eyed-alien.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 May 2013 22:13:44 -0000 On 5/1/13 2:38 PM, Brooks Davis wrote: > On Wed, May 01, 2013 at 09:44:54AM -0700, Alfred Perlstein wrote: >> Hey folks, >> >> I took a shot at fixing this issue with building aicasm as part of >> "buildkernel" of an older 9.0 src on a machine running HEAD. >> >> aicasm.o: In function `__getCurrentRuneLocale': > >> /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale' >> >> The issue seems to be two-fold: >> >> 1) Paths are not fully set to pick up the bootstrap tools needed to build. >> 2) include files use the host's instead of the build trees. >> >> The first problem is fixed by changing setting of PATH from >> "${BPATH}:${PATH}" to ${TMPPATH}. >> >> The second is fixed by using -nostdinc and setting strict include paths >> using -I directives to the compiler: >> >> CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" > This seems basically ok. > >> Can I get review on this patch? > The line wrapping bugs should have been fixed before posting, but it > otherwise looks fine. > > I do wonder why we don't just install aicasm in the base and bootstrap > it in the unlikely event that it changes in an important way. A quick > scan of svn log suggests that gibbs fixed a bug in mid-2010 and the last > non-build system or portability change was circa 2003 so I don't think > we'd break old-style kernel builds at a rate worth worrying about. It looks sort of like a shortcut was taken so that changes to the tool can be picked up by a kernel compile instead of needing another step. That was probably convenient at the time, but now is somewhat of a problem. If I have time I will see about moving it to base. Thank you for the review. I will fix the white space and give make universe a whirl now. -Alfred From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 02:43:52 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 82C5E3AF for ; Thu, 2 May 2013 02:43:52 +0000 (UTC) (envelope-from SumiTomohiko@neko-daisuki.ddo.jp) Received: from mailout13.eonet.ne.jp (smtp-out03.eonet.ne.jp [IPv6:2001:ce8:0:603::50]) by mx1.freebsd.org (Postfix) with ESMTP id 4933A1FC0 for ; Thu, 2 May 2013 02:43:52 +0000 (UTC) Received: from ae0000-mailauth11.eo.k-opti.ad.jp (mailauth01 [10.36.196.204]) by ae0000-mailout13.eo.k-opti.ad.jp (Postfix) with ESMTP id 56A9717F44D for ; Thu, 2 May 2013 11:43:49 +0900 (JST) Received: from ae0000-mailauth11.eo.k-opti.ad.jp (localhost.localdomain [127.0.0.1]) by ae0000-mailauth11.eo.k-opti.ad.jp (Postfix) with ESMTP id 547FD1CF1B3 for ; Thu, 2 May 2013 11:43:49 +0900 (JST) Received: from herrenchiemsee.local (180-146-39-182f1.osk3.eonet.ne.jp [180.146.39.182]) by ae0000-mailauth11.eo.k-opti.ad.jp (Postfix) with ESMTP id 464EC644E1A for ; Thu, 2 May 2013 11:43:49 +0900 (JST) Received: from linderhof.local (180-146-39-182f1.osk3.eonet.ne.jp [180.146.39.182]) by herrenchiemsee.local (Postfix) with ESMTPSA id DAB1CF1144 for ; Thu, 2 May 2013 11:43:48 +0900 (JST) Received: by linderhof.local (Postfix, from userid 1001) id A86411E4FF0B; Thu, 2 May 2013 11:43:47 +0900 (JST) Received: from localhost (localhost [127.0.0.1]) by linderhof.local (Postfix) with ESMTP id 971EE1E4FF0A for ; Thu, 2 May 2013 11:43:47 +0900 (JST) Date: Thu, 2 May 2013 11:43:47 +0900 (JST) From: Tomohiko Sumi X-X-Sender: tom@linderhof.local To: FreeBSD Hackers Mailing List Subject: Introduction of fsyscall Message-ID: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 02:43:52 -0000 I am trying the idea to transfer system call request from application on FreeBSD to another machine. I am expecting mainly to use FreeBSD applications without any modifications on non-FreeBSD platforms such as Android. I named this system as "fsyscall". If you got interested in this project, please see fsyscall page[1]. This page tells the idea more, and explains how it works. [1] http://neko-daisuki.ddo.jp/~SumiTomohiko/fsyscall/index.html -- Tomohiko Sumi SumiTomohiko@neko-daisuki.ddo.jp http://neko-daisuki.ddo.jp/~SumiTomohiko/index.html From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 07:19:40 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id C0088928 for ; Thu, 2 May 2013 07:19:40 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) by mx1.freebsd.org (Postfix) with ESMTP id 8783E1930 for ; Thu, 2 May 2013 07:19:40 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::98c3:879b:d55:f476] (unknown [IPv6:2001:7b8:3a7:0:98c3:879b:d55:f476]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 61F815C45; Thu, 2 May 2013 09:19:32 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\)) Subject: Re: potential future proofing fix for aicasm build. From: Dimitry Andric In-Reply-To: <51814686.2060805@ixsystems.com> Date: Thu, 2 May 2013 09:19:27 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <51814686.2060805@ixsystems.com> To: Alfred Perlstein X-Mailer: Apple Mail (2.1503) Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 07:19:40 -0000 On May 1, 2013, at 18:44, Alfred Perlstein wrote: > I took a shot at fixing this issue with building aicasm as part of = "buildkernel" of an older 9.0 src on a machine running HEAD. >=20 > aicasm.o: In function `__getCurrentRuneLocale': > = /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale' I don't understand this error message... It seems like a linker error, = but it also seems to refer to an incorrect include file? Is this during = linking or compiling? > The issue seems to be two-fold: >=20 > 1) Paths are not fully set to pick up the bootstrap tools needed to = build. What do you mean, exactly? In r230622 I explicitly set the PATH to = ${BPATH}:${PATH}, which should be enough to pick up the bootstrap tools. = This is exactly the same path used to build the bootstrap-tools stage = itself. The kernel bootstrap tools (only aicasm, really) should be = built by the host compiler, not the cross-tools compiler. > 2) include files use the host's instead of the build trees. >=20 > The first problem is fixed by changing setting of PATH from = "${BPATH}:${PATH}" to ${TMPPATH}. >=20 > The second is fixed by using -nostdinc and setting strict include = paths using -I directives to the compiler: >=20 > CFLAGS=3D"-nostdinc -I${WORLDTMP}/usr/include -I. = -I${KERNSRCDIR}/dev/aic7xxx/aicasm" I don't think this is correct, as aicasm should be compiled by the host = compiler, and linked with the host libc. So if you start including = headers from the source directory, there will be a mismatch between what = those headers declare, and what is available in the host libc. From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 07:28:37 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id CC443F97 for ; Thu, 2 May 2013 07:28:37 +0000 (UTC) (envelope-from aamitr4@gmail.com) Received: from mail-lb0-f174.google.com (mail-lb0-f174.google.com [209.85.217.174]) by mx1.freebsd.org (Postfix) with ESMTP id D1C4C1B2C for ; Thu, 2 May 2013 07:28:36 +0000 (UTC) Received: by mail-lb0-f174.google.com with SMTP id r10so240924lbi.33 for ; Thu, 02 May 2013 00:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=9JJSvD8hIsho8OdpLvORVfjsHS8zOOV5pOyV0E1QVSU=; b=orjF+JVQ5l7i0wmCrgLGrwcI3iNj5wYvsj8iERvZwAcHzhCWYXdWbj+jhJNNYAiUCy 9RF1QmdlLjf4YBuvOu1k5Sl+LbQQ1+UwiMirkem8m1m4TW7jYEBuMZ3mrb7+gfKbAVM5 vBjcAH82hl0h4qwJ8EYISoypXJ/yqhddQz5g81nrCA0QUUX7z2NHSTkaqpkWiBNnTHLQ T8mreRp4U8bg7jze0Lgp2mcxjWX2vfybdGVFEEhkhWxDU4XBtmltelBVsGnEpoFJl5cp mV0YPAdhH/7ncn0VlLsgQpG6ku9kaWE4Gi4XVz0amGZdAHRHtmAO2nRz0z+hudjXqDxX G8jQ== MIME-Version: 1.0 X-Received: by 10.112.22.198 with SMTP id g6mr2159502lbf.135.1367479709925; Thu, 02 May 2013 00:28:29 -0700 (PDT) Received: by 10.152.134.179 with HTTP; Thu, 2 May 2013 00:28:29 -0700 (PDT) In-Reply-To: References: Date: Thu, 2 May 2013 12:58:29 +0530 Message-ID: Subject: My GSOC proposal for review From: Amit Rawat To: freebsd-hackers@freebsd.org Content-Type: multipart/mixed; boundary=14dae9473b8759073d04dbb72eb1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 07:28:37 -0000 --14dae9473b8759073d04dbb72eb1 Content-Type: text/plain; charset=ISO-8859-1 Hi, I am attaching my gsoc proposal with this mail for review. If any body want any extra thing in it they can mail. Thanks, Amit Rawat --14dae9473b8759073d04dbb72eb1 Content-Type: application/pdf; name="project.pdf" Content-Disposition: attachment; filename="project.pdf" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hg7lverh0 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 DvjdmQvMZKirWNW4sKs4Gx4qUjP1WcmxZocTemAzLluNyboKAQE+wfeYP7izbNR3cqPKLYHcLPxe Wa5ffhxp1Jsq6LMSxBGV3ckAFlObwAgNn2/I9GN+IcYPQf33Ty5nuKtSU4TJXIGmbZyj6VNn2zNC InJBKadj+Y1QyRpksPu0H3oiHa6qt3APk4Zkj/UaKz/5bSRhO2tyzeo0dnJtgbktYABywuhMaLOh pM3FJGQNP8Va56rGHA4HymW6fnIPgt/LGGsI0kag3vS0mkG3zkL2fY3pWhyTlap9N9pDry0+lKT+ Qyz/31ac9eQm5HhzF9NxSIO5xe+Wz9FWZbNlyY7j3xQLphB11UFqWmrfP+h/HvO+LjCFLYw/fG0E g+TTQUwvXWACdVOIP3+Fv4b/AVMmOzcKZW5kc3RyZWFtCmVuZG9iago0IDAgb2JqCiAgIDI5NzAK ZW5kb2JqCjIgMCBvYmoKPDwKICAgL0V4dEdTdGF0ZSA8PAogICAgICAvYTAgPDwgL0NBIDEgL2Nh IDEgPj4KICAgPj4KICAgL0ZvbnQgPDwKICAgICAgL2YtMC0wIDUgMCBSCiAgICAgIC9mLTEtMCA2 IDAgUgogICAgICAvZi0yLTAgNyAwIFIKICAgPj4KPj4KZW5kb2JqCjggMCBvYmoKPDwgL1R5cGUg L1BhZ2UKICAgL1BhcmVudCAxIDAgUgogICAvTWVkaWFCb3ggWyAwIDAgNjExLjk5OTk4MyA3OTEu OTk5OTgzIF0KICAgL0NvbnRlbnRzIDMgMCBSCiAgIC9Hcm91cCA8PAogICAgICAvVHlwZSAvR3Jv dXAKICAgICAgL1MgL1RyYW5zcGFyZW5jeQogICAgICAvQ1MgL0RldmljZVJHQgogICA+PgogICAv UmVzb3VyY2VzIDIgMCBSCj4+CmVuZG9iagoxMCAwIG9iago8PCAvTGVuZ3RoIDExIDAgUgogICAv RmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydWUuLHDcQvtev6D8wa6nVLU3D0odALrkF BnIIOcxj12BIIM7/h3RLVaWqkto7XpthbD3q8emrhzT/ghvSMg7R++GUFj98fxv+GP7ZRve/378O X65u+Pof/HIBP+ax7Sv5lzQPcY4vaVqWcxguf8OX95M7bbPD5R3+fHXOX9fTuH27sPp5/37fxm7b 94jjD/x+2z5xm0urf63Tfl73L+BlAb/POH9eefc25FGDm9a/Lr/txvhqzBq32fGRZ9xwGl/Gebg8 spXOb59rUeuXLDHuklCJQ6X4/7zyjtp4h4cglpCdMRu2r9xny2ovZU2oQ+qDzRzvy8C+OP+7mlZ8 9oFFszFCqH/laRBqH9W2cRQ7qhs9x1OVCe0Wt6C6q9gSO2CgtQtJ2nG85UMsbgZlSEe5m+tqkh4W 2AYXtbWwJu+MylLeI6xi2dAKF1tpWUKMFmag3YEE8y/uHLY/TLIZ8U9IoXeGhVW5aRf5WPmsECsG Ax60ci4rFTGjsdzNcjagpRHxZ9MX40IU3C4WjdVM4oaXC8ALeBjzPMXAvWsWoDg6hVuHGEJIqKFX Nc8/QlXY5jQPmW/k/3nV7mY5qcLLyoAj7dGeX6M4G0o6Q0cPdHAV2yeC0x4HZYBRHuakAxHxYy56 ke0kTOgQZacwyXxCxicrG3B1oBNYTMZACcXE5vBZW8igyqiWeLE9k5CGcNnAoLXQo0qxU1A0577F pPUiWdsWfDE45bkxVy8mRV6SgQ/G/aUyTP6f+aPdM2dBUjippd0CYsEDNFmKb1dEp1NOKBzLwp3W BATwaJ/WNhMWf30dJBi9CrM2rxU3Re2pc0fJMorFSzfQOA/EhKP5pBZkZALDdKzaqmJ1MkJh35qF BgdKx7nWlTpI2EWty5i3m5OpwkNHwY/r7fIc0LgOlGOxdURsm0UUzmi8PtrSH8S9PQplRnAcpRBg 56OJK/xU8efavyhIqN2TAui4r2yXvz9rXkmLFDpWou47uqlS9kpBk4eDG+vqHnM8Ro1GJZDEQtJD 2X+XPGipD3Ui4XFKdrO4ylNZI2yACmm3qkq1hQLPJGLfm3XAfluzYkfIVMzy5w5nE2USbiZk2EZ0 6qyLVnH6IJZBVvJFoEUNRpTAP6qDlEt5EfCq5NpDldU+Q9CcJesAoYTzu4q8GhbE/NHJO0eXq70k vslIEkrbaydqq10Ex82tpTGXTt7RBlySBIbGCNfmAP9mtJAUWb3a7q2fNstGbPy76QN6+aNsw4a7 KU44rSqeKL/MXMN6iu2ym9u4ViPQRNthdc6uDhj3qQdUoRtbR3r5h8xhXnNDmTTTTH1G0Xd9OMzB xURwbX3DPFWNmic2T/Pq5g6hbhtkcFBbWoaGmS4MzaVN3Oh9AGNoE1T98mbUqMtMFef6+1qXZaPG o2ARUNd1r7nK3e881eDDi8j4Km8z5jFCOaMuBI+uqRMFffd4RLfLJ3PQA4pspq7/15Zwpj/kwGHf 66sAPgXxu1R5/Ml8Vu2m+YzvRWPthbLg/QqwNM9LoSOTEla2olwe1FGN7YWhxn4F3eTSp2OvXo3M Eanipo5IZKskFIwOS4QwFErIdAvRKD4ChDHke/TOAYlF9/rnyN4OMLkCXJ2u5qKDUgmIBIK5itni U4LlaXBBoqu6Q/E2xMqjSjk7Zh2+5IQrU8zmVrjrex1f1xfkVUILMsc2ygf7UBpXb28PRC7pfr42 cX8BrlMrMNkgPpTQ2xR2c02+BplgxxuewNIPfFFUey832dq7q89ZnecHDxmbw+JlDnVHPkdktKgS IAVYVUNhQzZ2kNUgqbQ69mAF0zqat5cOwvaRhbwHypXj7RhddDMjKGOLrol3kbQStdhyH7A96rpH lJ8FrIcyRP0XbiuZjx7B20Th6BTgh8fwE1ylzHbI1QMu2axrCvwkmDsdJTu83+RFWK6tuOtzuIB7 np5jhaiDC/SapA9i+DOgGE6xHz9w+JlE5+svMKAd/pAI4uZ5EFGvJffnonleL996BDlM6+LKzHmr NH3dwD0Q06sM/M5T7spHzJ10+pBllPoT+cOL0kZvHiDjVfSebu4To/nt6qjPO7jjGpaIzmjXTuVS 3F+PnO/9lkfvJEFQrdNn7pq2AKi/I+q2j+wRFXX/92bzvuMUzE+PtknCZNn7HHZNcPD+rNpJObZo 0thuCezD9RPdksrK5p31w25JpcPeA8QoSoY1/mFS4EHj4Dv6ge+cB0Z8rmVzb1q9eDI84OOHWUL+ xqrWfi5bHP0UlpioT4uc223P+WafhD8bUr9e4Hf4H8xbzqgKZW5kc3RyZWFtCmVuZG9iagoxMSAw IG9iagogICAxNzE1CmVuZG9iago5IDAgb2JqCjw8CiAgIC9FeHRHU3RhdGUgPDwKICAgICAgL2Ew IDw8IC9DQSAxIC9jYSAxID4+CiAgID4+CiAgIC9Gb250IDw8CiAgICAgIC9mLTAtMCA1IDAgUgog ICAgICAvZi0xLTAgNiAwIFIKICAgPj4KPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9QYWdl CiAgIC9QYXJlbnQgMSAwIFIKICAgL01lZGlhQm94IFsgMCAwIDYxMS45OTk5ODMgNzkxLjk5OTk4 MyBdCiAgIC9Db250ZW50cyAxMCAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAog ICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9DUyAvRGV2aWNlUkdCCiAgID4+CiAgIC9SZXNv dXJjZXMgOSAwIFIKPj4KZW5kb2JqCjE0IDAgb2JqCjw8IC9MZW5ndGggMTUgMCBSCiAgIC9GaWx0 ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nL1ay67jNgzd8yvyA7kjyW9g4EWBbrorcIEuBl0k TtJVC7T9f6CWRFIkJSeZAu20QXJtSXwdPu0/wZ2mJZxG70/nafGnv+6nX05/7Ffjf3/9dvpycaff /oYfPsGHdG3/mvzHNJwmt3xM/bLM3enzd/jyOPvzfvf0+YBvX53z4/5ZnHNh//+xfz/Wc9ivu2G/ Pq9nH393+Zp3eG/B65f9c4W82W148SYOCfmQIA5x4+qn+H2V6yCfGvBUpiwpyUOJk2n/7e1BccFt Vfslc/F2n//2AenReZumC5FAIj6vv37+BN3p7D98GE6ft6S9JLj4+GElttyIl5G1bhE66EnJIGQV 8qWPlJ2udYbPoegNSIhozv135He3dkfWPu/MB8W8p0MjR/GwrLMRBehxyRxpkLXzki2qEnDtPfKe 18bl3q+s2r7cSr/vuOWRj4mXx6gC4iCas49qjMDMx0y4rvqs52V0aYm0zbj/m0jCBGwvvpG1IZOJ rPho/asgj0vihg3y9Xg/iXOPwCqsXbSEEYjlaF7ik4d0SC7gunR+1kKTgjwelbWe+zkJDP4AjTet Zj/lnU3+iDnmwU0geSuMoSxJO0PmrT6SoeMvgNsqkbNK1Mn22PW87xJGdUbEWoZ86BP9oYhpRw+I 7U4QvytA+gd6m8+fiM10vMQOaPAk3iOpkNfcBKQfynRKLI3VJ5Jd0KYTevyYuSbjjWS8pnWK9JJj j4YJBat3PCZtvaAn7qKEoD32Vvw+eeejXCcbe3AcAOKaA2vGHBC6HF4SHrJAgeBxzeaIt8MuWxiT LimQewdFEKKE+uZgP7rX0QWijBQvOTuexxgvu/SPjSRCrM2YrNJmlnQqSUKVJXMsSKzG9SJRyHzE Z0faWUrgY2jtJMQOaPoJP5vIMYgk5hMuegFvNJksmYUUgAnUJmKIxEVGpK/ryuRFure7efOWlkN0 oASMjMKQlRXu6CFpUdjK0Q9hJdS4X8BRVnTRsMHN0rBeyORXWbAkjEhmyZad0OWcGU06z79Zkw9U b98oX4gElgBcCgQQix6C9mZqhZE2RFfNdG/1bVBQK/yWdW2+uPQgPj16nJL/Iq6N4lASeOIQImq0 zMCBvhScn+kLSGHzSmuZrbngYahFTWpa1FJwBOaHZiWD4wg6Cm2hjgvSL4Ot667W2FVB63TxKgpA vi+UDkyNFtoqsmE1SZytBkPZ3CpRGxU2wy9QLCb4jYKJh7ahdFgFE2IY40MJnTZ4HGA6mmExQm9a OdBtGlQKXEsmTMHo6JBuI6foBBB4Yzvxhcbn8HxEMDcNGM0sc8oMYnPqPAYnQiHtpdZtQBWjBhfR sUjvn+skRL+hCdxmHC6bwvWZX6VUfeRTb3Wn4DhYewsaZCdMucRISsZrrFNeD883xMXdnSMQ0fKG VhcdPelzK4aSxOoN9foULXZiMo3KfUmvXeazJZRkDl5tItUL4XZAh+GrVahU0KVFeO1tLCKyZfk7 jvKqr6dhw1TyIUdGivzU0kukoiSp5Gl4xKyoQmovTEwsQPYfCcedrHIJyN20chYS+YCyjOKJqn0O fCQ0CSBzw+TUYEPWbTa858NS9WfCOktbSkBTf1aJAFg7JperZTRuWajKdlRlZ8dne3dEqKOyMQPP RDV0QlzlBoIrm3r/4VxyoXzOmL8eiZeEu76sJyq8y5GY0K9B3RGViB8kZ/jdxWFJtrHHL3a2sWox vn3d701L3EeaktXbBc/NPEmo68KlLAIu6qOt76aMsUMu3kauQkicCeezXammdpuQXWtHIK094zIA yZWIFLUuZUHCTnDewmeD8c5uTT1YCmNqEnnUn8sqq2r1iOHKQ9dzMq+OuHy1JSffLMk4d+famBAX zo5iXS920hBS1uLE+IX7JZo+0S6gio33Noq1HMYsHWNbYGKyP7P0WFezuX5F/SmVXVtqm+RFURzr boMWdEJxUsMYt1Rl0xUY6VqVROey563mjHYdd2istLL4qE1rz8WanZuBkjBmMy7AZhiumwW68Uaf B8pg3gp+bIVKj9AXvmaKM6r0O7JTkyIc9Xi63xM7+jzWqszBHYmBRdMKzR6lwpOKnA3nMima9h/k aZCUZlep+yhZawtx2dNb9bYMOzbkqzvtw2JJ9yA27FE9o6KsgU3KFKL9rfxzpsT8ohih+Tnl+IH3 58p2EvcIiXVVAqbMKHS5Dug/Bk2ZIxnNmqgQn3TINSOFBOJW+5OgZPpLBqs0XpmjlOkfdYkGit8z 78wPi2Rxa4Y+tvdtzDsJl28MPMV1MTloDT1VC3Q41TKp2BTqnh9hBWdbhWrtbVUsZwhFPPiIAd37 yDr/dZR8Mi8DWRcFu+h5Chv6gtkzMqldNnZD/xVQKT9VUeb/AqrHR0BHU3mVQIO4Vw3kpsLZ0Whe o1S7Ao/nedFzpNqk1kLqMaoPINmE7/ciFd4a7b6JVHgB1UaNZLH6aljLJOlVB35r4KYeFLQcqDVi TVP0VlC4uTrw3bSxWT24Bei6yOdHE92nA12oeqlqtqL6A+FCpkeA40lI1IbVPj3bkVVPxV5fAFBH 7YY7x8EvpYHQCi1j2a/4leH30YYLtT0SGaWXYaPRWxntKONa2fCNpyHwPT6jVHipDwXjMy2L9VEB ehqYrZaPVK2WYZ2UcpX1mEnwUjvvglY9zaqo9RbZWYjqNaTIVdQ3ObENtzYTYi5IDkxPgUW8rzrB Z2UNxct2Cdp9dFMJWtu6UCmNRWT6807Fbuqz0XNKDYpTrkatGY/Pz7R1xRn+3SeOjXOvhG8ONKa0 dXt20A1FPIFQ06ht4RuBMKe1rFJ6YOHZJvLptTWoSU6toiCGosQQMWLGwnr06z9mVGzV1DxToONm M70X154EUmnTi3AfCnhlbcGTYCMUV7xzyTbkyW2b2ZhSJ3Lj8aLCU5WKLA9ke2ja9/xoTz7lHLEA Q95k9G6M3V89YKPaNLjyYOk5YkHCzD5aVQlRFmQiolNI41HBIpAkVSRHgTZqCEMfT2hrRBP4bQSz j5A7qX1hKomg5kuKTx4lQxXEG7Z7mhInKSWd/mYJUgENx3tBjqI3qhOL174JoPc+UP54UVm158BF tKyD21r5k3nzgN6uoQggmqz4gt6YvmXtaYdL8k3Yx3GNzuHIW2NOeA2RKEZCslAQ71P8+Ak/wz8W bkoZCmVuZHN0cmVhbQplbmRvYmoKMTUgMCBvYmoKICAgMjM3MQplbmRvYmoKMTMgMCBvYmoKPDwK ICAgL0V4dEdTdGF0ZSA8PAogICAgICAvYTAgPDwgL0NBIDEgL2NhIDEgPj4KICAgPj4KICAgL0Zv bnQgPDwKICAgICAgL2YtMS0wIDYgMCBSCiAgICAgIC9mLTMtMCAxNiAwIFIKICAgICAgL2YtMC0w IDUgMCBSCiAgID4+Cj4+CmVuZG9iagoxNyAwIG9iago8PCAvVHlwZSAvUGFnZQogICAvUGFyZW50 IDEgMCBSCiAgIC9NZWRpYUJveCBbIDAgMCA2MTEuOTk5OTgzIDc5MS45OTk5ODMgXQogICAvQ29u dGVudHMgMTQgMCBSCiAgIC9Hcm91cCA8PAogICAgICAvVHlwZSAvR3JvdXAKICAgICAgL1MgL1Ry YW5zcGFyZW5jeQogICAgICAvQ1MgL0RldmljZVJHQgogICA+PgogICAvUmVzb3VyY2VzIDEzIDAg Ugo+PgplbmRvYmoKMTkgMCBvYmoKPDwgL0xlbmd0aCAyMCAwIFIKICAgL0ZpbHRlciAvRmxhdGVE ZWNvZGUKPj4Kc3RyZWFtCnicK+QK5AIAApIA1wplbmRzdHJlYW0KZW5kb2JqCjIwIDAgb2JqCiAg IDEyCmVuZG9iagoxOCAwIG9iago8PAo+PgplbmRvYmoKMjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2UK ICAgL1BhcmVudCAxIDAgUgogICAvTWVkaWFCb3ggWyAwIDAgNjExLjk5OTk4MyA3OTEuOTk5OTgz IF0KICAgL0NvbnRlbnRzIDE5IDAgUgogICAvR3JvdXAgPDwKICAgICAgL1R5cGUgL0dyb3VwCiAg ICAgIC9TIC9UcmFuc3BhcmVuY3kKICAgICAgL0NTIC9EZXZpY2VSR0IKICAgPj4KICAgL1Jlc291 cmNlcyAxOCAwIFIKPj4KZW5kb2JqCjIyIDAgb2JqCjw8IC9MZW5ndGggMjMgMCBSCiAgIC9GaWx0 ZXIgL0ZsYXRlRGVjb2RlCiAgIC9MZW5ndGgxIDMyMjQ4Cj4+CnN0cmVhbQp4nIS8B2Ac1bU3fu+d 3dm+Mzvb6+zObNFqtEXSqqwla8e9ypYpbrC4YgwGLBmwwQRswGAgedg0mxocAqak2LgKkzybEgIv vA+nQhISnBeHEBJRXoRDgrX6zp1ZGZPk//0t7y2zd2Zn7jn3nN8pdxBGCFnRZsSg+IorlvUz9w+f g9AFf4Gj+1asvzq+zPn+SYQu3IWQ2byq/5IrPnF/djVCK59GyDj9ksuvW3XgzXthPPo2nKOuvnjZ yh/FDL9G6NKP4Vj7ajjgnmH/CUKXNUA/ufqKq6/920LHAejPhv77l69dsQxZT1yO0JoS9P9yxbJr +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 Fx7DmaewB6/4Y2366dru2jSc/3vtV7Uf4k/wDZjFR//3udqxfW/Wnv3m8t72BXe2TUt4B67of+v7 O5pDUxec31i+9aO7m4qRzJHfL52SDNN1zqDe2lTm14Czi2g8mo2fUOeleBtXaUpttdyeuzd70PC8 ZV/2UP7j5KeTrdZWSxtbZrvic4zmVCCVtWTFTnG6+DXzrY0PW57KPTXJpk5PTkw4sgEeMeNMSU9P 1lGwayg9FBMqPapQ7lHTmVIPjX70qN5AqdiD6df7hUCpZ5AxqF6Ph0oIT7Rjp90eLRBGLTSXmEEm otqBos07C6Yp6SinZX6ADNVSbaxwt/HpePr0wLjB0eOamnCMw+NaAutMBK8TTbhAc18ZVs02TaQB QCi4SmEi5iaKE8nE6QmeHuS1gzzWN7oPMkbVky4V4VKkhLmSWCIlNZFWmujviXC0SW3IlpooSOaa 1jZta2L6mo43kaYNvZ36bluKO092U7uZH6pqu9y1cqQ6cBps7SHtMFVIdMt094iipdcNUdw8pOhb LukCq0eqy/WPq1zfDo8A9XhlbQ+a5l2VNO7raPHrTjkt6bnU3qEXul/JJNXZnPInI5nO6qXJo7hr f7M7sPboTHZdbnxHz3d+Mndg9fk3PX3j8cVTLrr5sqtuu/bE3urMcX1z27v7cvFrViXK67/51ce4 8BXMI1c2N7R3rbz3XGNXNkkjVbee/9VEc/OCYn5GUF035eZi865L73i955rB+9de+dj+CcXPP3GJ ba3nzpwUdMV81IZfPPpH/BQuIRuSDqAZrI0ZxG7VFrcUAcIE7WvvoEridJXmmFI/7dmeWVT3yOLS F35YjCbWHsTfx63IjzpU198JNlkM+CX0hjDDbjXMAiExVbXhVpHD3ITAd/4DKDVcBVGH6O4HDKiT hpjcbWMZG6azvXLsqqsvNZlMrD2qdC1YOW3+xu/UHmxqeexcF5iDrgt7Jq689eptv9X1Zissqu+A 3rQiB3pQDVQcAEoxwENisliNZocdGcwOh802iC9Ued3nYEPYZLY5sAG9gE8jI7ISXrWbsdFsd+hb Q15gLHBhE16qBgqGioFwBtFADCEO0bWCgk5dm57UPJC9w3owrsIPd5/qdo35HLbmFQNgGI7jtEzu qhu3agnMCVeiI+FqJVs2fuUrtaGadxm+E48yl57e+WbtOC6+SfyaX6wB3W64wvAa0GnR/jjBZJDu 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 c2NyaXB0b3IKICAgL0ZvbnROYW1lIC9JS1dRTlgrVGltZXNOZXdSb21hblBTLUJvbGRNVAogICAv Rm9udEZhbWlseSAoVGltZXMgTmV3IFJvbWFuIEJvbGQpCiAgIC9GbGFncyA0CiAgIC9Gb250QkJv eCBbIC01NTggLTMwNiAyMDMzIDEwMjUgXQogICAvSXRhbGljQW5nbGUgMAogICAvQXNjZW50IDg5 MQogICAvRGVzY2VudCAtMjE2CiAgIC9DYXBIZWlnaHQgMTAyNQogICAvU3RlbVYgODAKICAgL1N0 ZW1IIDgwCiAgIC9Gb250RmlsZTIgMjIgMCBSCj4+CmVuZG9iagoyNyAwIG9iago8PCAvVHlwZSAv Rm9udAogICAvU3VidHlwZSAvQ0lERm9udFR5cGUyCiAgIC9CYXNlRm9udCAvSUtXUU5YK1RpbWVz TmV3Um9tYW5QUy1Cb2xkTVQKICAgL0NJRFN5c3RlbUluZm8KICAgPDwgL1JlZ2lzdHJ5IChBZG9i ZSkKICAgICAgL09yZGVyaW5nIChJZGVudGl0eSkKICAgICAgL1N1cHBsZW1lbnQgMAogICA+Pgog ICAvRm9udERlc2NyaXB0b3IgMjYgMCBSCiAgIC9XIFswIFsgNzc3IDc3NyA0NDMgNDQzIDU1NiAy NzcgMjUwIDU1NiAyNzcgNDQzIDcyMiA1NTYgNTU2IDQ0MyAzMzMgNTAwIDYxMCA2NjYgODMzIDU1 NiA1MDAgMzg5IDU1NiA3MjIgNTU2IDMzMyA2MTAgMzMzIDY2NiAzMzMgNzIyIDUwMCA3MjIgNzIy IDUwMCA5MzAgNTAwIDI1MCAyNTAgNTAwIDU2OSA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAzODkg OTQzIDI3NyA3MjIgNjY2IDMzMyA1NTYgMzMzIDUwMCA2NjYgNzc3IF1dCj4+CmVuZG9iago1IDAg b2JqCjw8IC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9UeXBlMAogICAvQmFzZUZvbnQgL0lLV1FO WCtUaW1lc05ld1JvbWFuUFMtQm9sZE1UCiAgIC9FbmNvZGluZyAvSWRlbnRpdHktSAogICAvRGVz Y2VuZGFudEZvbnRzIFsgMjcgMCBSXQogICAvVG9Vbmljb2RlIDI0IDAgUgo+PgplbmRvYmoKMjgg MCBvYmoKPDwgL0xlbmd0aCAyOSAwIFIKICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKICAgL0xlbmd0 aDEgMzYxMjQKPj4Kc3RyZWFtCnicjLwJfBzFlT9e1d3Tx1zdc3fP2XP0HJrRzEgzI2lk2WqfsmXL EviUjZB8YBswsSTA2AbHAwGMDcEK4TImlpJw4/x8G9nmMAQSSNjgbBICSfaHd9cQHNDGu3HIgTX6 V/VIttnk9/n8JXVVdXXPaKbqvff9vlevGkAAgB6UAAnkVTet6KUW/Hk5ADfdjXpPrdp4i/yntt/c CcDXZgDAvLmmd+1N9bc+mwFgIwuA7ua16zevad45tA/di471H6y7bsXqn1wcaQHg9jtQX9061GFL GD9E50fQeWTdTbdsMltMX0fnHwAAqfUbVq0A5klPAnDH79A5e9OKTb30UwJ6r61n0f1yb/91vf+6 JnkBgK9TAPAiIPCH1aFf9GkZ0HaQgCeJVwENGOK1Q0BHDROvHiGBnsGNoxBILK17DV0nAAkTgIM3 wmuBmBS+aBptmi9caGobbQLNqC1cREVNNmgJWhRUQECBizJ56qKqA18CmTqF/iUEOQCITbp5IABu V7uCarwgBVdYVtexAQ8RDIkBjzUYkgIeGAxzAY8lGLZaCAKyohTietkSe4Ylx1iYZTvYHpbsZk+x p1mSXSH3BkvBM0EyG+wI9gTJU8HTQWLF78Tk/K6+fuFCV19f//hHbG5Kop+abDKpOIKFXG19XcGS j0Vj0XC4EHSEQwztsNhdTpczR2waPZldGBVN+kAqmyVm1iyISia9nMwqilIjbyHXrw1KVlFrX3xY a6OvBeaMjZA7yP2gFkwmFqkbDN6dOcK6oA5a5UCx1Pwcd0xPWpPWrWBr7l5wv+H+Au2zOhuF5lIz xXnn6ebRM+WZoXmNavMOH6s3MzIIzYFz9XMMcwpz66c3zpm8xLDWcA93t/5uA7/Q+Q0nEWjubiZ6 2BzIN6UT1fmT0AOMwDh26hhXNMYNRePw2CnV3VgQjB1GQkVFj5GUtWqjkTI2icNjH6gJQ7Fd7BY3 iGRG3CYS4tcDAhQUP5NtUpuIphTVW12qJqoLiVR2mJylWihD+lQ1rO5RQM5kNObzuZNwLYgABf0j u7kIlIBSUgYUSlXOK0RJgcpJYjoSL8fYqUOBomMYrlX9nkyxhlHNRZnpYEoMKTDwPAM7GMhMnzL9 a2jK8Hz19yfbRi6MJIVR1E5iwar8ftGFJvHC6NkuYaSveaQfXU1aiviWZDIzYrEW0V+xJjt9s9pS mOQN62z1DXUNBM2xepaggyE5RNAFQ1EGFp/NC6w2PmDywlB4kq7oBQ1sXoaFvMHqFbzQHEJFI93k BeiN0f9NwiQq0F+yqqrqzjvvhP2wD/TBvn7QNX3poWYr7OqEXUnQP/2apUdq0FdLD4+dOSRo1TFz sV5GX3Z47NNDRlydUQ2Goigbii50eIfHzqtuQ1GPJqs+jms9qvWo5lDNFfH/v/KnE3QpNEOHQ9FC vr6urr6Qj2oy67JX+upytVh4kQw7nVi46x24P2ZBr6EddtRFtHwzUje5+3Z/4qefL1nQrESJTFTJ HBjcMn+S16p38YLR0dS7pqYRPpZqn7G4Yd7dN1mku26YXjNj0+LIjjWhUKoxXZuvXjyQCExL3lN+ 5xuT7IypqeHRGd+GXU1Sqqc4uxtoOm4BgM4iPVgCZ6jePHO6849OstQJLZ09pq66pAkOdEKZlRN+ cZi4eCRUn/DXoIZqCM1L+FtaQ5aE3zVMmo+Ekwk/EjvTkfDUhH8WaqhTwotibVMX+hfNYBP1bWox EWcBo7QsXsI0pXRKyqg3MDSlY1pm1WRFl77T5XILlkgwK8Ne+YBMyMOwoPL1iXQy0pCth731B+qJ etznbFsyNTJvXqCto40otQ20EaBNaCPakPocszvzbT1LO4eJZYeDz2wTh+Hqe5LJ+ReSXdimCEgy L6DG6NlK1TR/5nUzPkF2Bv80a39tI8JIc5PF6ipCJJ3gzyMX4Z8rk6kJqj0UMfImJRyNGINI8PiQ WfHCJMSylsSCBrqSsK8L1qHZztU6XZXSqRkpZ27chI0bsXCIZhiXNvXoQu3lboZmLvdWOnFvTMnB jtXW6nW5xXc41j44d05f0GnS100uN9kmBV16yhNbXLhxHkE4GmeVa+YVDbpgqr2usKBaqplbntRc 6+YYv9sb46E9SXy+mo9Wre7eNHfuosY7yhsXy85AJOISwpYOuLM3rRZmG5LludemUWckYrka9dWo vlR92bGszhOJeCYtgtc+lgpKfKQX2dCxv5VbyRNIdmKgCCn16/pJ05HMFIU5wnJhh4W6NwUnpZon zU0tT91guSF1M7vZsjl1N/s0c479G2fKTlqa68yvz1PqJJhhyXjCakNSJt0bsiFZi4VBLNge84MZ hDUZJ6m0UAfrOmmGYNKK2SCJ5tqagH5AT/ToS/r9elL/mUzYsMnyyHJHsDdIlBCgBYXggSDGF12w p/GNuRgDsSRgQRjt6h/BEDPSjEyTxVUUxueaNAtYHLTpljMFxsQq+agxmlUKTK0MMyZU5Lg6GdYY 0jJAGg8r4oFmv6+/C/R1JUkl56jTVNthx8qP8GpiPnPOem1GtQnVVaQCg9r4vBPQHW3Z1b7zmr77 el9orYvXuopzy7JUH7M5hLBfVGCeM9+0YPWUq65Rl2YzEbLY//7mFevv/uXInm0Ovrp87tqcX1Gg 01CzmlzZmRXN28ovbAg3Lp2/5vi/9s0XrRVdN6FJewnNVxw8pW5ASsbXErW8Sqj8XRSjVsHuKhjA g69p9b3hWEyeGvXHZgC9ocpilwVIiSUOckXBCI2dJOIiSG+7aajSkE4HqmAVsEQCgYAMS/KATABZ QHp8Sj4t6+SexDOX4KKiif1nkUXGGC+M9I90WSoaVwQT81CThf19oAs6sA45NIs5rhvjujShSuPa AefdvLl+dj4SXuKwOqqzNtO0KeXkrJCk15nC7kBMDx3k/p/9bHoqVjfTnri2PGdeDAlzxKlJ/aqh yV5NnBEnmDl2ljyOxocHPrhUnWktOeCzzmPOt+A73Ju+Dzna+ns9nM3NdC5x3AMf4HbwH3qYgFpb oAJY7gcD8EeOd9yEGoBzWEEBjEthDVYKA3vSamhup6BKwdO47KB6qF5qgDpA0dTnRhVdVI2DRsI4 3T99rjZOGFO7MFjOPRBfMPdAx1XLDhr9cw4GqDlXL1v6CqYNgEJHYOxUQ0ND5/SlLwM3WYsYnJ2s PSec81xxikxaJ0ByPqLJdB30WRVzlFC8Ub1CRy28XUbf1C1DJ4daIoNaNpMgQw+JCofBJQNJhwos 4/AytGmgioC8D3bB6UtVy63ErfQW/RbzFusm563irV62q7MLwe01S1XOK1iKHnQ4EHoeNGgg2Qk1 7aA17UA4WOcKYcSz5mo1XSDA6a/fuPG9be9tWbv13QWFG6cN3rXi69e3kPv3bt9/+8XS0/f/4Ot/ u21q89473i7/36EfXnigB8v16rGzxK/QvNWQnJrgUlKKsFrTqqGYQkAt2juNy6J7hIcjOj2DUDvR k+vNlXI0nxuGsrodTdxPTT81vxl5U/l1+P3Ih6lPqE/Cn0TOpQzW5lRX6mvVW1O74C5iF1lylNwl T8m7o3pX2sRDntCTnJH26lNvh94Js17Sabd6nT4p4Unt5nbr98jfDn87YrAmTfFUa6o9153blNiU utf8XHh/7lPyE68xwdb4wSuEHwZgBhJwGCYPgVfSw9CtWqpEv/SKx+8OuKHglt2EG1+UXnHiiyGr NRI2GSg+plU6P/wxSGeqapCDoFQx7q9LkojJn92Z8StWA/GuFULre8GPgn8MksFh0q4aennYw/fy AzzJD8M6VYq5pXSAhWxqMAZ7Yr2xUoyUY9kYETsBZVAL5YNzJzS3baT/AjadfaOYSo0FEZUqZtAs HxqDqIns6chZdB2JGqZ/Z4WRcSB1FZGM6CPhcMRksJtMhu3mdNK8VXizUwTC5xdGuvqhgPhjpa01 NUn1xhMBWUBsKGBBYEsnWC8yKH4vYOI6L6xY3jsxvUMfReW+ZL4QvrB8GacQuesHfZjqqdIgHCQG yUHDE6YBx4B7wDPg3R16LDxYbUTSiYAaIAFGtxky4Uzk/tSeyJ6UrqsTy6wlLktFLi4VoaovEujw IA0+pC+6sSJL+mIadaW0AzF3wW9tNsu4QAJ+yFPUKqkYwRzSVgxXKsTtPz1mK6ZEW+W9rJX34q3o X1jRv7AWU7IVv+a8yvPoNr5ICib0f0z4Dc6rVhP6PyZ0DzpEi3b8b7L51R+osU9oCWPriFQL8UxX xYpqUBO25DD0IG2LRmITTBSd1xMDweht18xaLAe6H/rpK7cuXB90uEzBoHfvyplLVpT/b3X1ntvr 2nIWwWok95ff/vYNrdUN8US6ZdX3tu72692w5YEHryrOvHagsbik73EXbxaBZlObUMHoHgQGEAK/ VaWBCOyJ9EYGIkOR8xGdHOmIECou0Nc/dbi2Nq/VDY2VujpbqcOKVqtpyZ0XE35ba8iU8Ftbw8GY NFX2B2cYJaNtAMFQEYCQkbFZ9QMYp0g82NMLpDbYzQXyRqPRJJkioposipq7VdeYHxBhhwh7xF5x QBwSz4s68VD40PfHuUIyqcnyBVRX0AqzBWvxCpSqjHcXon39cAKp0Ija/jmJg4mqSZOqqpomfV2q mVqePj3t0YhZ3Aztugfxhaaqqknl4Ki8uOiNRNxNi+CKR1KyRrYg8hYB+Rdk43KQVRsLalWBLWCG ni10FHoKvYWBgq4aYYvWLqGzAwX6QOF0gThQgD2o41SB9LHOhJ8fJnnVEkok/JHWEJvwm1vDvoQ/ jCi8mg7XxKqmZv01M7wgXJtj3CmCQWrL82a9yxlhBlh4gIU828sOsu+xFDtMvKJ6EjlfpCqQ6Ej0 JHoTVCkxkDiQIEFCSBAJPMIcouSJnjwi42hANR6ukS+tRgOKHcVmTLmLxUtkW9N+qyiRNKVIpMsL dbSoc08QbazxCHYwN0CzA/+RYo/TAjTcV3ZeZgo5OPe7D81dLzvNhppp5Uk2NaenprbdttFgxlTZ PquGD0ww5ZE35i5uuqO8eUlAQrMRi/Lt8LatfXeVfV1OH6IPLavhwqdnuyvUAZBgcnkW+Vs0P5PA HNBJfKzeZXV2PBbdXUeCamE5sbFq4wICVNFp+ur7Zaq5vn35hvpbo73Ld1G7dN9w3S3uKuyc8o2Z u+be2/6I6xFxd/swdVx3xHVEfCf/ztxTy08vP7P8/HKPW3bkhIK9LrBc9yzbWtfsAU6yLtjqAdJ0 q0XgzSajQc9xNpudY5FDb1Ww6tiNzbhWDYhlDCr7ldcUUhmGe1Xz0iQiydbB4P7gaxgbKrdqNboz iG+xDrTCVhX1tmKK0tphh/ZhyB5jC/Tu6XD6MFmjGqVWfUaCHVJJIqRXiH8FNODINtCELulpRroK XpVK8W2vklmQBX5UFkEbmVVFIQs3ZHdlB7NktlBMk6WFcKESiMM4/pw+lzu/Kw7b473xU/HTcSp+ q7w8u1xdPoQGQbcc3+E0GPPLzbsenQVn1chOyDt7ne85SSeWR9vuZthckyU7SKKDhIAUSAJr/2HJ l8f1MfRK8vply0/ATSAI9Qd3iMnkF0ksl1qAYqT/rJDsQ4qf7B/pE85eQE6CgH4RsPU3j34ijHT1 NSO6KlxAB3rRCDqmLz2CwZXo6uxH6IUB5ch7ykcKPseyjcEP81p0aPx2IuSxZe6SxpmRgtfnEqEu qtTW5GryNSQ9NdoeTStV0cXKQi/0TkJoN7fQJoNpsFkGk3XNXtBR3eYFVycXynCGOMsLF8WWeOHi Jb5GD7rdMwnMq2mV4dzWQp1KTJeRxZhCNXnh/MxVXrAgcZUMZrqme4GGHFqE5HJxJbdLJqs0YMUO LfZoMFBiVNSnBSQDBcGKQyXnD1rHqVx0HD8qeohcHjocHocaLYzh0n4vOUM4FIJ+tVfBCjSN0z5I X3mGzgsLl/3L0Dd63kiaSVpH8snbGt58ekZLKhDMent/Nrlrww1Pfvn6PXMNlgLTnU8WoaN19Yx8 x7yVM3Plv2ayjatfOfJiLv/Ev8P5iW933vemqqM5l1uvo2f3lo7Zo0W7RWYoUseZeq/uW/XQkto6 UVSmcasCNYHwtcT2jVv2LpnWv2Vw2bSLd+aWKtnIlG2z804nRWs+lH3sv4km6nXgAe8fB6axT9Wp xmI37CaIZt9uy27pNcdrzmHpU4kZ9MEdbthubDd1G7tNfxaRHXOIMZF0OkTJTUJc2D1DkHRkqWHo Ub2QzBIEpI0FNsUbnO85PnL80UE6rrN73gWGYfi5mpKR25XO+A74CB+AkKJ0EXuHDZZsENgE2wHb Kdtp2xkbbevxvrhjwtcdj8Z1XejCknwBh+RGz2KnSxhBl85C5HgBdFiRWGpzjaa8PwktOUfYYtco QQ7TdDRdlnChDs8cbH3//Vw8OMUSC5dmpJdWfav+5mpXgnq9/ItZo/+nc0oivnJVrnsVsS7ovH52 9LoJn5P8E8L/OvB3NdOAcEvfgHGLV/hoqWGggTrQcKrhdAOZpGFHQ09DL+5SG6DMIpy3VMCqOuGP tYb0Cb+AED/hj1bAqhBLT837CzOgHKsDwJeiGASzFougl8QIN6CHB/SQ1/fqB/Xv6Sk9Ng5KNQhG 0oHqjuqe6t5qqlQ9UE0cqIbIPFefqj5dTVX31FeAquv/P1DZ3V4dSyueqFcneSHDuhnflTEhHHZE aIWQyvJPwkGXXdgroj5XBAkQYWjbcNfU+b0em1mfVctTHGqtngzMyNbc0Ooozio3Tg7bRYRXjowZ WnUPjq7cMnPxNeoL5ZeXyKKGWMJ8OOPRazP59rJXi+jY9A2Lycnfme0Wwpq/O7aqPAvu0u1C3CwB Pj32pBvSEkxiG1usL5iSh9A0qcmO5EDyOfNzvqEkLaOTUpIUUM/pJOlm4zF5aswfnyHZ3FyV5JET RgY5KWbVKoyTMSPj+ZnAD9qgFpxJVVVomdpSINNJl8uN+FgkEBiQIS/DHnlIPi+T8qGq5M+DmIEl 518KF8wXcKyu7QKiYcgKg0rYBsfqihbNsE4E67QpEbx+M+9TvHzAC/1mDzZ5sBKg60MWGov5V4na FeFYLPJf4WvxZFNTEtGy0ttDy5fWBN0ey4qgmHZeZm27tMtVyaayfHHNZ2enhcO1JmaJsuRbxAOP JcfDZIgDzxs7Sy4gDwA78BHTVcnaLXZJPaDH/j6pk2Rv0YUOp+otBvDQ66e35lktoIBPD8fjea17 eVU676ElbqntWme3a5m43M1AkqMZjjXqHHPoHcQD9HbjTuEe3/eJF8Wjtl8SH/K/ES4QfyJtVsAA VmAEtofpYXuZErODe515mz/PGCnImO4mSO7E2BlAj51Rp9dxs4gWrj2wkFjIrST6iR22HdJu21Pc U/ph9ih3QP9j4vfEGeMFvZ09zUDAnGYImRlghpgDDMVspewg63Tgz2pDU9Lt2OYYREaMcjg8v6Ag NTx2+pC9SFU8IgovZ8y2Fqkag+EaD/QoFoZ5l3XGPUXeCTc4tzl3IUC/YLeX8PrRAEtk2V3sRywp sCqLvgJ7gD3D0uwLZgcFdqDRHSZTqjVrVs0dZhKYBbNsJs+boVkjoGgwzZfCKsm+/v620T5Ns7tQ hRA9OY7vCM2T/ZZiBru2GxzIn9WWMrAEItsIu0BDA5YchO80gATR16ktZOAfDR6PAwZTrHDRqFYX TehgsesRLzKVisaVp3LmqVwbP9NXzvSVM047U81c0SFIRUm2FE2y5uzB5Fc8vk4bXfHYXNg8E4W8 FYfJlGBUE1z6N3D16u3L7qkOOH7y+NOf/fexJ340uh0+pxOkVXULvkFMeveWW1Ztsu/4dwg//Awy P32hcWmkQb1Ts9WzkJy2Ig4bhHcdYSloDeOPc3NVdR6EsUC6TEt0hNe2kFqgW0AvZJZ6lnqZtbqN uhIoBY943pJPy2fAxzquHrbAxeIib3e4R+zxbhT7vTutD9oGLAPiM/ApYn/4MHwd/pj5sXSOPev9 g3wBijTRal1ivT9wv1wKnw8zFhm+jCRSRkdg7Mwh4AM4pJEVgrAnWAoSOLAra6uHvcGB4NB4kPdM 8HzQFFzj+4iH/I+dCsf4kIwhicOV2mAt+mpIQ/DdgBEh8i4jYcwIiJKqoAf0ggFwAJwCZwCHOwjw ws3ub7iJDjccdEP3MDSq1vM0BLRAy3SWVmkdPT00/TjxLVAJ1PW1jXT19432dZ3twyFlJEbNI4g8 YsE5i2G1oaEBNsC+LuywaCGHa5YeAYKIAwHnj9mKOkEoQjz1Al5wOnVQKI4H2zphHxyfXDARA0Wz W4kVa+tDCI3JVuWDbzz5KYRHtv+fmtQkv8UQDk9ZPfmq7+5YOb8+D685+kNIf/QBNO9qi2aijo0B f+vK7z715fT0ZmyTZoydpXQIlwOgGqaPgwyyNS0t+Qye8WnJdL4ncwd1h24nVcrsz5zKMGqmlCFA xlnlSC7SLWIXJh9lmNkMlDP1+hb9Yv3j1LNVQxnmVOZ8kpBlIAexSTEgkzKzSW6Xr5XX6NfLW+RB MCi/wBxnflRliLK2mHGq1W+b4fDFnFO9ft+MAHqZgUo5gIJmL5CCqVSANASAIWiUMXpYHT3OknO/ kww4B5yE87NEB63Zx3Qe1y+1FOjp6enbKnqebBsZ7e9CGox/EH5jBW++FOcfDzNraOGOJik2pkTZ hAySFCrijCLDKl3qUnz/zjtBVwOeRjSJfRUQUegKaCC1cxUueZbjK3kuXbhgSROX5on48fRS66Nn /vrDze28LLqTJmip5oNOT7WhfD5NN63KLJ25/MD65WtnTf7yrbdgS9vzFXz+8t++2+K1hPvegR/M 6C22r3v7J7+uxPAJpKOj5MNAAb9TCzCGuZQcw5G7AzEqb6gPNMqzA7NlnZu1teN1lGC7X4mF2Ric yvjZGbJB8bHDcKZq06NhliSR9qXMZr1BbzAEtVE2gwMQ8rAXDsL3IAU13mSV3BGrtcM2YCNKqDhg IzHjlMc5J2Kc0Te2fTW8j+wrHnxB404jFf6EA4KX6FMFqT1e3uLl3V4gWDyCzws04oTHG3YhxnR5 OCdIKBpqphAcp6boLFYgV6GhDMTM5f+q3njHzLa+lLd+Npza2Zy8aW5xGfnw6K8GtUF8ozSt84ES 3D211gOV0T2ljrp5BDO/nlBwXAX57RfQeNbC9eqLHPZyzMlHEoQtn3aurvuG7h6a4DidlZVYN5e0 u6NcxBpBQtMA66wFT4t1HbdOf720xr3Ksy61id2s3yzd5r7Fsym1Q79Dehw8zj3mfjR5EpzOf0yH OY5NJlNVVXrIEn5ok+x+G0jV+oFVb/Fbo6wsud3ZKr0d3ZBKJiMca+eSVeglVW6O0rMpVEt6jmXD NqsVInsU05ACfdpYJlz08XlEpyTknaueXXr4kf48Xhrr1f9RT+q3NnPtXDdHcltZzM18yfd5TLgG ZULe1Z2CmVRzikhJufzzeM1UY139bWe7+s6OXkBuQ1ff6Pg6advo2WRlIifCutvZSiB3uzktJlGN mZgIhBEonPrHEtGPJrYJQynsS6IJTtpwDgf2+Ww2zeWL4qwOmmZoBtJXUDI80/Uwil3CmBG+6Kiu Dn70LxaGDSVhlRIXOal8f93+qybNq88Gi3G9vyUytfwSH5QEV458WIn5YjPLtfDvibiVM5gUhRKD 5uaLX7vnvhmpqpyTn9I5SBwOpMNGwYjkoB35KVt0DyAh9KlT7pd3O3ZHyRnkDONs6R7yHqPuCQpm qrcFB+gBZpAd5PYKey0HqjmBFhiiu6o7SXhZ8xE/+1AIHvEzwySrBsL+Qf9rfsJviSgumOwQoJCt SlgtNMvoBUR5huHVh3dVw+ph4otDsCo5DAXVFE9AK28RHuJ5GMH05XBPT16rGxsrdXNzpY7UaLXq 9AbzA2aISU+3udd8ynzaTJul1AmSJpkKQHVVeErbCCIz2uw1oeqTrrOVeGZT02h/U/OopdiVmYi8 KTG7M6o4oooz7gUxewS7M8kJ/gzQAbEHkxv3YOqwZ5jDqziVNU9NUbX1bdrhyDngM15lyoLRf0vE p0mHDi092nf90sa835VrDQSiadX7OTlv9JlSKBWJxGesJJbNbtrx6q0zqhv8heBNNlvN2venzUbz EgSACujmIZQCB+OZYehX65XVdRzF6Q9kyMeTJ5I/Sn5I/iJ5jjqn/5L6Us/16nrpbcw2tqQr0buY XSwab66KYIJG4zCMqibWw/gCHlcwRAcJAvckdB7aHPA4g2F/wBMNhpOpuJ41UjrkjIeNJpOrGoSj IC7Eifgw8QtVicWihNPFxpLxfSABQSKbUHHoMzFA0wEGtjPwNQYyw/CoqgfmkN+3N71ilTYROKtJ M5DYMx89W1n8/K8uZC2txQwylpWUGKxDCHaEkc+BMDpRV5xzxFWRZ459cksYwUt4PPkp94/JUTZ8 HX7/L4vakczD2MwZfzHp5VS2ZvTEeJYUmmryv01h98zrbtARo5/N3VAutLcq5cWX86QmcqbK73d3 xrU4/tiXeG0U8QUniIDz6mYhCp+ij9FHmT8EKF0Us0M5eiu5kbqX3E49Q77IMi0MbGTtMdNUm98+ Q3QZAeVxAsThgp0E41E4g78moBvQET26km6/jtR9ZnQCIEaMRsHUYeo1DZioEioOmEhgEkyyKYua p0ynTYwJg31TwdSjvDFO6i+hzsS6/ggm9AjtL6N8XJJJAxOVSb8M3XrRCyTRYPSy6CxABWUoGZCb 6KM9GuZrGUTjDjwC/C5srfphZSGaqeToXIZ8y8RKCoZ7OOmeJ775r9+7/8WOpxcjqPdWmaGtOndT cfl3vrO6UIgTXxz/759feKTU2EgefVLD+NH46O9qc2+/duAVj30iF4cyojGuJyapY3wxUCSstADR 37e5R/QDhgHjHv4Jyx7rE4HB4mG9vigV3d1Ct6U7sF7YYNkQ2ENwn/lHAkSJu9P8I/JH/DniHD9i +aOVbbY0i82BBrm5OIvv19/KsxmiSpAVOZopInYqMA5hEbxaWChTYWEJXMJ/IvxZ0M2xzA68wb2h /0+9zsU5hYAvEJhJTONpg4W3mdxGH+83B+gF5CLkC3QKCy0LbbTE+3z+wAKCEnhIWKw2myAF3H4p nfDHYiE9wfn1OHgTC9fFMlML/roZIAMMNkGIyAG7DAk5wAtCFhJ2CAmIGGRA5W2QihG8XhBEfT0A LhwEmyca3zUY9DTCC0Re9IassWQkzhvhaeMZI9FrPIWZvcs1KELRHSjCYjCSBpFMBqSF9IH0qfTp tK4jDUvpgTSR7mkoDsNNh4M4MwGBXh+ii204LjZf6P8CNxH2IRIzEfvRQmbNTRJSzwwO5CIIRKZU Qz4NAtnxBsAYOL4+pOFepdyOr73JMDivob8PewP9sEv7AX2gT3MghbFPVTuC80AcWQF0+FQ0/3G+ SGDvwFA04MpS5CsVV6lw0uBBS1EL34LkhOOALLSWHYH5kQapjE2LwmJLUYexVqNWrn+SRdF+rtXI BqPwwatvmvrZZytD2Yg0pTw96omXfy+l28rpWWGHgTfLbkeVBQq6By/2/mqG1Wi0+xDlJ9KTPiz/ +vZgxqyPRKDD5srBteXTnQ0ijEQsBlfwKnLaYIvHosWdIJiMDAqP5NwB9rw04DrlOu8iXRq+zcrj Wm0sTspD1yHT6roOF1RdHa4eV69rwDWEbmSMCT/TGoIJPx0LT5gXBwAMrQcwYjKOv00ln7IwKT9g hB1G2GPsNQ4Yh4znjTrjIecVC3xN47mml5f0EEHRIA8p/VdX8SZG6XYp31Jubk67zQHRHbdAi+7B L6cubvBpK3akuqdlPLyGvue3xs7CDeANYABJ1QtU2kCqnNpY4NTmQjcHB7n9HMHdY7xhC/442nIj wIkayhUBKggy6tR0eurUN7QynVHxWlMI2YlPECb6QRI0EJ1qdhlY5t8B7vPvyO12fye2z70vds79 h9jvM8YGsCW2OfdE7e7c05EXch+4P4h9ENdTjcPE7w/za+sa8Wh5Q3lcq//pcOVzajCFCsmfr1XD cVR4fPkZkRnKDveH8P3Ib3IfKwwVgYqpViAdtMdt9zsjzrgjm66dGWnNL4FLpWWxRwmLAITGRXBZ pKext7HUONTIurPu2g5ACow74o9LGYomSL/L3567L/JE5MMcIzeqjR2Nq4hVZI+uh+5herIb6Zvd N3t6/bdEbo5tid9N3+u5178rV2r8SeY3mc8if49InSwf8HDBkKAhdy4CSCoFCslAhAwlGlI5Mh2K FwqcMxF3uZxEOs6yHDsQhVGsN40FrZqGq9Lh5ql5fHp4+iytVu2of163F+r9WS/hXUQlAw2pGnxB mFmwqtQQRQBUnKFILbFHb7LkAQVlHOCCPz+WCgn83mLjy/DniLasgCLQbEsT8kYRenf1TUd6XkNW n/No1UhnEmebYY42oilv/4S3hD2lzIi2eOSqhDhdxXF+NjWTD8dFP2TcHslD0HQ0ohBKLhoXozmY YWpyMOyP5sg8rMmRMU8iB7O6dA4ovlAO+GvJQg55Dgjamq7M56mq5FEg17a/H/G7S8k+AMcsnOOp OldwDMwwarU1HVoZj5hW1lvHkVALZ5OHvjlrRemjj0dLuUWKyxdryxGtT616dO8do7cr3cWHvj3/ jROrO27pO/rq4jd2TVnqIY74p11zz3XHFyl14X5y/deDKUWMvHTbmu/yDNN8V9ttzzm/3OD5/qb2 hxZSOqxXpbF/p3S6G5HsL1El6yMpiPNxDCTgqThI6JLtsJ3gLI3DcJZ6uq6hzk16qG6xW+p2d3to nUlnBlWnGqlbDLeYbjFv5Hv9vYHeTG92B3uvYbtpu/lufnvyOeq5nGA15Ux5U8GX8+V9hQzMENWU 7JcDiUR1bgqcQjRTWSnrzwaywcn5yYXZptlVCw2LTUuExYnFSV8ABghPLlDw1C0UF0oL3Z211+Su yV9TuKZuWb2ZNBgSNoMnETbIjZMS2cZ+a79tR+Rx5vHM7uxzmVPx16t+lDzVeL7RPp9t8IANhGc/ 8sUJuA1CeAIMk3NVU+GJGq/HtyHg8ftP+HBPXnrCXoWsmdFsNxrNSWOVmYpyWkWH4SgAdLyGDMft HLEPqv5QHsIAVgYYVoWM5TUL8ZEFypb9lo8spGWY2P5SYJ8/KXCQwzcEBtPwtfQf02NpMq22FNT0 e+iEBGk5nUWISqVfhrNAEc7SZB37G13JSqYQFvn+0f5iJllhZE1XJARNpABVMoC+kv/TN5EAVBfJ MrZ41JDiciDBI+mO2FDBZNGpvtqYAwZjKhkTqnKQNyeqFGs4B9gMncOpQZeXNuFEdiZyXLREoVWG Naa1wqok1dWJV7uSWq7QNUtVo0Hki1SWL+bQUVnZ1Ej2ePaMn5iIv2HZDltyfqIi67FoJHqlp0q+ qFi79l2z7r7klHOv3j/3jy9Pygd+6JZ8jKK4lx5dv/Vb9Y2x8lPfnnfmB+s3N7jcQb3uxnJy+9C1 266akpu7dc1ND1/1xEecrtmfgT9/6Fs9dy+rXZPy//CWBxY+9IuCFMhU8mnCAOg2I9vvRCbmPXW5 wWPw3Ss8IvxK0G0UNtq3C4/bdjve8bzj+6XAihar3ecnGQfc7r7PT8RZOuABwRAT8JiCYVdQCsTN ZhMhxZ1OwHqb2q0QWAWrbM1aVavOOkcL/rqbC2oYymHYGx4KnwmT4aALMd29oSu8mjYBI+kXXWja Lxuw4oTB8rr9vENQ7FE/710M3Q5U+CyBxdBjkxZPZNDikA+yP119ua+aGZmyOgSGDsbQ4AKEKjh5 Kbc44vRiexKHWTj59X2vl2/97bbFn8La8s/OL7tZqQ/eTK7fJqeUneVXf1H++NVfrvQi4XRBCc7w jefAjp3VHSEfBikydNCaxt/R21xwxmRBtigxOd2dvp7rTZ9TzsX/qvw1bsQ3HLIVtPve9gTywXQ6 sbrOJ0kBT1hIU/qoL5qKFqOLXM+6nhWfjbIGpT5SH2sH82AbM4dticyKtcXbEvcxJaFk+aZyX/y+ RCn9hPAwvlk5KRxXjsdfS7+tvB3/UPkwfjodADqKoR2Ui1OYGBenEwXXdGG6pUN3NbNYvDqxw7BL uE/cIe0I36fcFy2lXdu5e13bo6SJ64S3CbdZKI5jkfutKHrIEH4ouCx+QQ4H/TJIpPyA15v9fEDy +wPDY/cexot3w2NbVVVUIjLLsBwTScTtiUQcCbUSy7KcHWGm6BAlR0Sv2PV6JRyJZEXJLopSIhqW RJeeQ541iAdPws+BDPzw88MByFvwmQDMiKrreUToAwFZBgTuhCCFboGAFk/CG4ACWPiMysdV9GGR 92+QL/LX6eEwPHjkFLguEcaBLIfqyXRIcEiCr0jvSR9JpPRQJCMOQ89LMq9AQYFaeovBmFdOQgFE gQOuVY2qPtMdhWq0FCWQefv8CLc1lmFPQA/6dx5VL4M4LMXPY1d+7NRR9NL4EKNljXckYAk780JC Ru78gcSpxOkEk+ipvrSSPoLdTMk9MnoWWak+8YJ7RNI8TzfqQJfFs+4R4QI+RsY9BnfFYcDL7hM7 YirtkYod3K67InjG4oZuojHRk0z+P6Np/zyyhjOjKolRSeS2Irt2NCrYjc04sRDn9tjwVhdf0XVF ZcfV+UOuooIrh3Z20FG8xA06bdiB0IJ0WgQO+xPMpaDd+DkMkzAMkdyZYKkQtLz5Vl6MOZvgkdl+ O3v6dXusCINLEuWfJT4u/1kp/8bX0EQ+rFB+byA1+t/wB9ubXGZSUUiXELY7Rv8Hflkn2/yEopiu v/gZMWf0JZKYkzNpeptAxHc90lsH7FYbrCwlUoPUoGnQ/Dw1TDGDLmhy3WqqqesAS/kOBwJ8l9nG X0tdzX9EneYZ8IUgTHX4cSJFRK3V6Y7o/QbKzPMRkrKTJEUaCIqHRrPLRPKEmerQQV3WZKSFbkQr kEuq508SU4AZUMQUNUXC9CD6NOkOE8yaVFOviTS5M65mVztyYYxpQwEQkJCcru8G/2VHxbFsu3B2 vtCFzeOFrrMC+sXb7/qbtGIi5DOeJLQ9ndy+9U2xEvb583iFfUbQn+yCXZqfaB47rXJ+azOZRYXG QU2owav4LOLEDuLvjjmLVNyOmx8csxepXituDhyzFinRgZufHnOgJq81D/LFr2T/AIx9ZLAAgyEc iw3XBx0wiDMV6slrDBc/IHrKv1zRZPNQcZoEo0/A+dfPdQkGKJV/HyGrpHBta1m5+MtwSl5bwSoZ zdlx3TqgBybwazXuNEEezDSpPKnysMoIHQwkaEhyOhpSRoMJUEYTRRtNpmHoVa0Ma2cYliWRQTSy IGCCppPwSUADAxxUTTpIcyxNszrKaKROwjnIJ2LhGtXAcTwJB8n9OO8L/kUVYTOaKzfAOc9D/Bme 5GmVgYxkPgEfRFRYg7C+JoRf2OW/gJeEPxGwQ9hczIyrLJoky3iWAZodajzMzfN8TRZxCkSb+6Ej bAlb0IjlUAXJ48eeHn2DuPVrT5cj8MKD5SfgmhJ518UHiO+Oju+3SqExeRGNiR+x07sY0VB0id7J eVFFhYQL3u90JpgmZg7zPEOr8nJqGbvctUy8kb3Fcov1ScN3zLst+wz7zO/o3nG9LX7o+lA8I/+N +pvL4YA+StJ5HJJTcvlEhnMZRIMvL7VIO1y7ZEaUCMLllowSbSIlQkeLWrqWjUJjvU7lOJzlh/d2 DJM51Sjo3LskOCjtlwjpBJkDJPzmYUgY/cPwm6oJ0P/Rbuu2bbBts1G2YcioNlUbYlmVSzKJszgI WToJ/4ZmxARV1d5NbCC2EbuI14j3iI+IPxIsIQWuGP2utrNNI/O1GWjTspTwah1ePmoe7UueHU+g 05LnCMHctF3QbX3T/CZSCZyq1KW5KUksrgBoTggS2LqJSB1DMEhwMSfrvngGroDy3q+tHowq0nt7 nv63bOszf5sCV65fMssNdeUvFTgNPv78nc/c2nf8R78cWLv2e0fL5xuEmmptvpCvTf8P4ltZ+Lr6 KS9CM2BdZskU5xN8FZVlrJPh5EynuAGuE2/KbBYfg09kfir+RvwUfiaaTCLUu+jsrCxZJ9ZlW0TS mY2J0SxJi7qsy0UmQQKdTQKNrqJYkArZ5tr22nVgC9gobpZuye4EO8R7srvBY9nnwTPZodoDte+6 3hFP1f4OTfnp2hHXH8Q/SGdqvwB/d/0lq8yGc1yzMstgp2tx5gbXJulH4lvZ98X3sx+LH2fNFU9Z DnjcwVA64IkHQ0TAwwbDFd85GPDEEBsUxRCAdiBKAEqiOEy8o07JZuxZ0ZXNiMj5QZ8diY/kIjiW BSCbjcXZ7HKk4lImHZLlK1bh6eBetRbWQgK9xTHkDddom3svMUWsaKNNSKcyZbz3TpgIr6Ff7Bxo i0q6iYgabogVu1TBN/QD+jTG7slgaIOVQiiKoqUoCtYiYEUMYqePuoqurL0IxwNjmlVDAhO8cvGi fiLVpxCE8IodxVdchuSs0QsepSNbjmcR77Sb5y6AJfg5PAtLmSWIhyodmdFT2SVh5+ifqVsvbtwa qFKUvNxPblwW98WUL39LaacXd166sPPL+7U479hZcgRhmUw0qpx1gX6puBzxG5ywYCiEsE1f4SjY Jbs7zIX0QYtsjYiyJLsbuaK+0YplpdHdys7hZuhnijOlOe7r2SfZ3dx33E94BkPPg+fYp7nvSd9z P+d5lT3KHdMfE1+STrhPek6FfiV+of9C/NJdPcjBkJZu35PX6mRNpfYnKnVLS6WOxSp1OFypLRat VlXJm+dDd4B+2E/06u6Q79TdY9kV4hrZvD4vFj0/ok8FP3Az9+l3iNslst46WyRsIl7t9Mjjq52I gKopzi3JoiRlOb2d4/Qet1tb80SsktZRlLZEWlnpdEsGRPt8qrVbDwV9RD+oP6b/pV6n38p5MHkT VDozxB5nf8aS7FZOutWNt1bLgEOfl7fmufH0Xy1iWlvA1UvGAuBOcQRyb187JoRgKVQZDXQXro/x tnwQEz9JSCJf9kIXFj/3qPgJYnxd48yvq18cqazgaCiB8yi3j/M53Xgk+J+RN02IcTrgONbide4k xAlER/Wy09TMIkB+CdVcxIB3KJw5ZCvq8TZkva3IyraiBx3jsV5Y4Wb/ZAUVL6BqbCwas8D93ljC 8av3XawB+fzJvD3sLZ9MlI874wFLLWJhUTmcLdOEqcFn5niDolAW/6yL/0Xq6jICx2I5PY+wikZY 5QSPqXZV7BGHxDMiBURVJDaCewFhnmqD18OpgINDyE6SWptFbeSjwr8i1L0eOFEPgP+jmiHPExwB dRxrJEhwAv4F3T5HtZrNvGopZPlt/ABCaIqXXCeICDw7Dg5JHJM/K1RCtBoQXNqWi/AXufBdtkre BY5mTyEupe6dh61BW9M1ZaKnwalnFLcyjfrxd7/c3t+AqSXhq9lC/O7hKtkfwByldexT8iX0HQUQ AScOrWDlYUgf0ukcuDKZ3MOQV62cG0TVKKFGe6JD0TNRKmrB3eZusAFsA7vAENABSTkB/ZdRrYJp bSOX997Ng5FwJBQhaAKSiPYwitfj8/g9JG2L8oohKkouiaCDlGUlCNDuldBuRi2nEbUiUF4JPSwq rIJjJZD0qJgI0iWrtKOq6k5b3lqvxSEsdkKLVdQLlZhE3fjCIN5j2vrALct6nrxjz32/WPnGnTe9 ObPYV3eLP52NFBONMwqz88TeT2H71VMH3yrv/7x87JGPX/9L+dODj6zo3weLn+65ORucvKD8pIaJ yAoSSwkXwvhmVSZ0Jd/qum069OUJcIAkASHADtgDB+AQPA1p5NXlj4IStXAZ9qVGu3BWSAbvq8Ha gNMAggsI3eiXhOuxCj9aieYDxzeCkFanP0VBa6f/ev823TZ6m+8B6ps+pkAUgovIRfKS4I3ejbrN 3u3ETvdO7/fJ5zgcoOBBGPKCxWpzOF2s3USQJCaTFjlol0lKDro9XpIRKR3qHTyMcMt2AjEVkbSp iHXC/wDEfwSDgELSOQV4YMvREjOEWMQw/LOqV8NQDfeEibBzGP7tmEAMBWEQv4nKyaowJBCCFDoB H4HntPk/24WXkrowf8TEZuQsGF9AGhnBgV0kxRP5E7rKmpELJxn2jW+aNNxIbbCu9vfqen06/LQC yAQZqhKHZS5lRjjHc+WxnkNy8/zyuk7I7blnyd1X3bx5y4Z02B3LzG279eDe+296GVK6eS8ci+29 b/jGY6VY/YJab1II5g9uu/1XjdUMwWMdWIrG/CDSARHEwYhadSu3UX+b+S7uQ+WcQtMk3EpuobY4 73FRTWyc1pFhKS7RpNzNQnYYTj8mR5G54dE0f/OwCHRYfQ7zJogGUcVzoVoNblClVhFqVU/VUNWZ KqpKqowvulTJI8raVNuAbcjG2KTEZSW62NU2enZciy40YT1qwqPXNdI/EUbU1CrlVTirz+v3ErRF MUUVLrwSBgTPShA0o1ZEH10JvVZ5JQgZUQEuBb6rtDSjvi7oMJPM5cXdWNSSt0bqcrCyeWFibZcm H7372e/fGBn41v3vrr3j3ftXvPoQ5P964+i71pZZuTlLdty3NbpEt04xtX/vxztWnTnwwgMvXHMY +o7B2eWlozO2L+j592mZpx5/8e8ylm+cC/w0km8D+MFxQI2dOWzzTNFhK59EDYmFOrKKmwZUU49p yPQT+A7xAfyAOGNCgwgNECCPkyQQPA7Db6tukkDOK0GRJp3aUtD9B9KXlgL9H/hJLsNw97EhAzRI Rt0J4lNAEr9XjYASKLz1eIjSUS8TnwDj+EgLWEA1m3UBc++kMJJsbsLhie3mrRNMux8NGtJUBCxB vA079jPi1+WmXvhI+f6+7MKcTzcv+vdXqbc86R5DRYcXlluJO3QPAhtoVMOPWp61EPcad1gI/eOc BTwObRAAPfecOdRBQ7pkX3ht5UOMJ4xp9hJDI3Qg4SYKAqh30DSBcM5PEHc8dt3Ak7D2i9v3zg+6 W7eWNyjz1nwL7vwlrINjX6ua8Xn50bfe37/z2SeQZboDyfROJNMSiIIc3KKe6ISQywVyVbENuS2h kqFkxPt571JK0Z2558Wn3c8qh41H3C9FT8be0r9l+LXJyQA9pE2Em4s5TS63YlLMc+ED8Bume8zP AzNi7XAumAvnxLvh8tg1uRvADfB6Ym30hti63O3wjtjG1B05vLerxJTYuyx3WXfZdzkfpx5lH7Y8 at3jfCb6g9gPcsPUMfac4Q/Gc+ZzsXO1CcbExRpBETbU6mawwOiOUVohuDREonXVuLKZfFM55EVz SLvwkUVtAXm+AiioBQJv/xsqnClQhfDL6AKJ9KwK6Zk+61JdAy7SJeVPwP8aN1IYpC5oBmrk7IUK TmkB+nG9qk1m/CGLk2IdSlAXRqDE+FbClL1qJUhbsythiEJ45MeglHRWrwQZS3VFuy7F3PHuB7yB CMnOeIgcWzDGeWknKupTxteONGWzjT/3pLIdaMd3u959/qm31794oDjvNwdfX794M6zZpG5cs6ZU qKlb0PHNm9bfFW0hXrx7aPHdrx3qn7f3xvvmr+nb9dPNK25edvD99Vvbr79tY3t+Xab8+1lP99y5 Z8uS2cUbcNQGyeViTS6LaiRBVbGzdSQSSAsSTBtA4qFHQllJ8yXpkmPpU/8omLDLVkDfweoQAFOo q7OiD5sm0o9ft+vJ8nt/uX2wLSjNvUO3umrumofKt/2q/JMy/Joy8zN441u/OrDzmSc03cDx++8g /Z8Jfqz29bYMtZxuOdNC2Vr2etW6DtQkrAGPIRgKBTzeYCgf8KSDoZkBzxTNadMHw7aAxxMMKwFP dTBcCHgmB8PoLcORiGfK5MkGg55IV1d7vR7WagsRagh+FIJyKBvqDQ2FTofOhOjQMCGrbqGlp+VU Cym3wJaZSqjQke/JE/m9s7Cn1iZc0B7AJGDm+5XtL5XcPy1XaYLAagiOFDX4vx7MdOnJTJc9qeD/ O11p/CXwaWKj9tSmLDEjm03KrsrjnEZfzi6ISqM7tUs1/+tBT9lkQCR+De9eV0lccglTV1985HIW E/xOedUVOU03XnFbJT51YOwsHCAPIFvsAtMOIg8MKqrPtLZuQBpCZEwFDH44A686SJXLDziGHITj ZagglPxXZME02bhQ2R9YkYzkV3aWXLmIH8RL9+hIZaZOwzV5oLKan546aptWaU3Dn0dAsnFAdyPw ggDcp3pYM8+bBL2fC3QEaQdvE9wWt8fjFX003qd5SClo2zWzS/NanUxr9aFEpVuOVrrd/kq3S+s+ 5NAq9THBljfxBvTmRb6VnyXM8bcHO/klwiL7Uv8N/FphnX+jUKK2m3fy24Xt1h3++wJ7+D3Cbsse /3H+uPCK+7j/p/xPhLd9P/H/lv9A+Iz/VPjU/zf+r8LffH/zpzh+rocIIHgJ+Ang8/u9nFnv4Zxe l8fJEoyHReLhcWzy8wLe0u8NWQS7pdcC8Q5WMw48WAi/nSD8Ad/TAPQifxs/HeGoamQFnnQ4nXgp 3zsM/65yPHoN8bRZtQwT2cPtfugfJj5XzTLeB3LeTJqflW/cqU2S5B7tGhFxRL5r5LI0X+jCj4LB S5FavKELh92367b+U8etUm4Xtr7ZxDShP42tXYqZwn6kAlq2N3ZDtG1yOVjxSbR8GwNBPj/6p2tC k1aWFy2SclPgv4XhB8WuBaPnrirGv/bJ5/BH77fHAhlGUXgx+23qmi8fv+8qHfLG0sFUNzQRkdHf Taz7rUN2Iw7y8DV1eHsIWu+JvhV+q5qcE3m2mhADrvSaCMlBTokqLWAp3EBsiNwObyduDtwsbwxt UnbC7fLj1S/CF5WXoi9Xj0UctHw3fCByd+yJyNPwKeKZyP7q16o/yP6xeqzaZEV+m5uwxt1Zd01j ujG7JnJ9Rl/FEl4vdAQ8fDAElLgHsAGPORh2YkMVVomUEomECIhmDkb2ETLBVCWeZgSmg+lhyAGN SAPPPm9+GH5L5WvjPp+XQNONGAhr1eRyaUUug+0FENwfJNqDQ0EieFSog2pdb93pOrIuz4acjr2F FcehBC5FlIQubKbwxtvjIFPJrMjgzIor8raQhlqLXf0ZnCAoISG4lK5sLbrF5HiWlhZYrMmKeMGy usYfDijV4UwO1vhRkQ6lciAcycq1eHl5fFn5cj6sFpVXkLNuxDs5zh+yF+P4YWL2IvIJcPP8UaGY FfCy8rjvjih9EDk3WibhP0SjtOwKLbmCwSKELMql/ELduvKj5UJONvkFb3ReYfRkbrHiwEuh8L8+ +Jdd338Rij07N1ycbPNyb7w1+I3GVcQWAsLyxlIgpSgNgVvI9bjV/PytW4ej5dvvXWokHobP3bVt EAEf+Fr5Rfg4eBtZwQVqrJPodL3pJDlXj3RaQgIFGIriWSs4ZlWNBqqRdwQcJQeJ/OMq1RDgu3mC l8QnnxqnFKNd2oNArBMMHadT2SpqoLmgl/wX9A2/traPYxiDYrXXNM6tm7Z2V/nFVGhXh83E2bnG XM2sm7vXHqzwydlj/657AdnFPLLPC/XUrDQhxdxxQhAFiZDr1Lqeuk1sr9grbaoaEAekA+IByVCd 2WjYbiDFurS7A0nQA9QPqDN1lJG813CqjpzN+gMe8U8hK84EDuc9iDDrDhMeCE/AwwCQc9VkzRMp HBKl4ynSHA9xMBlAbMjSYR2wEry13UrglfJt1jErZbUOE39VBX1TRxTy0UCUiM4prN45nnvdNvpF ZvyZU2c1mMD4eSnnYXyFPC8nGYFV4rFErCpG0sZoROGDlklQDggWJqmvBqYwKgQZcU4uRldDg2Ku HndkxhNVq7S9plqmqrbNqA/awhhcZWyUrBO7JaKXn5tI02F5Yjf2hC9ZT51Dwrdw86vl0e19j/6p NPeBqYGpVxMmab7PfvOZHeXb3t29eM2hR37aunlDg83mIXU3lhcOXXXrv/zgj2+UTz0SVeB9a5qD 0Wheuam8YkrjxVf+cvipH16/REw4wrlKzADx8cWIj9fCeceBXtMXHI1Tm4zFqdxM/SzD3BD1HgcT iYaEigjJe/kz+b/oGTTlU7lt4S3pFyLHIyfS76Q/Cn+k/Db9h9A5xTiHTQzDBw7H4wIYJs4ePp2F 2WEyf5TUCU6I3PTBoz41mcn7kI96WDAl4ifhOmAHHPGfqqFDLsnEgLZWMUzmDh8wQuMwHED9+AmK A9VD1UQ16j/azWzD/j/xMfL/83AofwrRJCQqU15Sba/ZCJuUw97qp5cWMirOflffBVycFTSnNYm3 HnVpbn8lrSWd8Uf1PEWHguFgJKgEKVqnmKNRPWLSGaoacWoetYKG2Eqo59I0YtoBk2+lltVy2XMd 9137AbJ8tkuPG6tssw9e3s16xXZ6bFemEBU7sq7x4N3fXzLtxNZS70Plz3asygQlt2WTS6la81jY HUg+Ol9uH5x9Z8+edVTrjkduaF/28N6aY7cfuPO5GTFfitU104a969vnNvjiU/36a+9uX7vtmYqO VgFAHUH4lAN/VBephbXe27x7ss+L+7Ins2cK7GKpl+5ltrHbuBJdYnaxuzguEvD4giHEZJPBMBs0 mwOch2WCBBGgPYxX8BAwjOiPLweeTqbxHm00JcQv1NmpVBL5gk/7PJ96vT6W28ey9L5mPE8AgU07 QzIb0/tSyUB1Br1gvXuf7FE9H3lIz4KOQi9yjcgCEEJKZG/+zHG4feKxqHhVYuRC19nRL7q6cJ4S Bo/PkcqiqqyRhArrxatQX1mZHQ9CdkFLEGfS5ixhbaSDWtqoFnqrz5EV237ZuCPNxKoJ98GqW2J5 WlHMZuvVi8rvC/GGT25el50yNX7rl59p/NcdWZilHHzMkauNX6cjRj8Np28px1d5w/Hy1GUxl5yZ srW8D5FZdRXZd6c/rpR/fWOHg9fmohXZSx7Zywj4Up3G+XHyWobMBB7ld/u/z3/feox/yWpg/RDh y1bydscm5zfJnc7vkI+695EnSc5IminCN5vsJHUZVrBENOt4VLOOOPvsmPyELu4l4TDx0VFL8oAA hWFy6tFdpkETYRomM2oCZ5khZwrWCvv2W2DA0mwhLG41CqNckyxCXkSUXZyjrF41YSNxqPQLvJHy Qh8a+lGkPhc+aR6ZMJLCO5Wn8Tk8tJFR3FFD1KnQHq4aGB2oYCVdNdS7TNX/62l8lZ0qtsoTkIgJ I+iiqYrds0YqGVtohqifBwJTPvnu9t9s3Tjy+N0/2RxYUz5/srz/+M5jsPmVb++qsnrsbgOydbn3 ju0o//Kj4fL/DPQ9Zz/63N9PXPwpXHhyttPmyeIxH/t47A8Io+aBGNypzt1phdZdEBJqe2EXAa0+ 4v/r7Evgo6quh8+9971ZM5nJTDKZzEwyy8ssyWQykw0yIZAXkiAQNGERkkhKwiKrTSCgomBoLUWD ClWK2ipgLYKCMpkIBrAF/dvFqhW7WLVW8XNt1b/Uqn8tMPOd+2bC0q/f//f/vnlz7rn3nnPXd7dz t0cCNGyptdxouY++TVNUbfF6zSYu0Hk9XKDzMr5GJ+XyNTrJbM4hlHrN3lyz2esdJT+RjYGD2Bxo CXXYNWYt42trcrZ5dk6O2xQ1ySZm2qVct2NqqJFLiLuE7Ck5XUJLLLkKn8cT9ZKTXuItCPb+JHNO TzkwMbZxCzUfKKveaSHv00+3ZCYmsRePKetvaj5bC91rmjrkoNZcYC4hDRAzt8F08wLoMvfBCvNN 5h+TR8lxctj8AvknMX9GCa8ZndhCkfT+dpraP1JkbuDb2UeshgYz34aQHyOyM8a1iQxyKOhIQYxo bFz7Gr8ly2w142AqTxlQWZRFMr4r/lQafX0YR1ryxSuxxnYzgHIJFvOQsYqX6fqkf10CVKqjg/Sz iXw5j7zGF/qKz33X4W+LJoN8lW/CxAmFE8QZ59Qse2wd7+ztQvO5n11Y1TvUUmbR8no3CdvAuHJf 8vNyXRfpol2FXUUryUq6snBlkSbiafC0ee4T73XsFx9xqCkpLMLBs8nj1fIxtaS2SeCiJqPGM0pP yhYcc4Ccn91gNqJ37XCIT+vR4FMarTff6goVKcf/OBmKTEULivYUCUXHaBCsFCW/xd28Zfuim4+K i/jxgZoi5RSBsRozJfSeqZ4fReL7IUHW1yCM2X+grLNw+Z6YnucVT9lPZEk3a9K/5Jsitasli/CQ 0a+3uJbOOYFZFjn/DM+/hxcEq6er/SZxRvLZOcV1489+MZZXQla2ZdV8Miktf/N97CElv8rIVUeh HNN0T11NpHydba1jrXNDsL/8h071ettTxceCf3b82flGsaogYCoP+mO+WGBCMFreFVge6C/fVK7/ JRC7s8TZ6vxTwZ8d4v4g+U3x6/lvFL8eeC34cbHKKUuFQU02X/T2EpdD7ZGMLkeeR4JCd1lpYbBB apOoJKnzSoPYh1KNGge7dhPKPrK93y7ap5VnNkJCOZHL4+V0t3KUhJWXEa8xe1e4fJTcMOLhGyKV vd4X69WVPP/9aanEn5FKxnZ38yFBjJ/1yuySLC7Jd9p8QX9JPt/q6kQlUFBaRXwOHD1d3CU5bc56 2VSETYY0QfAWuSeAx+0CoowCIZSecFtD1oydn/2/yxZc9rBe3K+tJj91+q+sViSKXAeXKP5+5Hfb //zrijWNNbMKl9079Xtzqtrpzcl1l8sSrYmbHjmVfYVO99CmjntbLfg++Tj9Rux3ssABw3LFveb9 6kd1j5qEG8h69RZym1po0hiCwPKCKq2t3sUijPI7mtwsymQmsmmFmYx2F8qFtDCn3qR1a6lR69JS 7TTnJR3GlabVY/tNx1bXKomDr6LZ/RZ/dlZOGBzEFia5atRZRdSZdIYwKaComDV5YcgX8sKX32r5 HdLdTdx8k6mHq+PH8W2uOcoSmjnHFPDTT4mG3Jq8Kflx8qPkrW+e+K8j3779rutGTnxz+7exc+hL /iH5QnIZuYvUk6YXh6dt2Z98OvnkyG2klDSS+Qdu422DAwWLD9kOqGVL5JS5RUe2GbZlb8vZ4t9S /ar+1fw3Am9UaY3lfp1PX5y1RrdO/0Gl2llXbuwaJ5Q3iA2mhpxaf0MwVh2tm6ZvM7XlTCma5p8R bK2W6+YWzPW1161TD+oHTYM5g9bB/B+qd5t25+yzHfcXZYtGkzHHWOYyuXJcZSW6kvxInc5Ud7W2 a1x7neC32QpwoBiorq7R6bOyqmw6FMgK/NU11VU1PvM2aySH5NRkGQzWrMKNBe1FpCji65MGsbJs k4hU4Csvj1WFPy8pCVS1YwI31pAaUVT7CtTq4hpfbk2NL8saCESrsnKrqrKwoNm0WflVAV+BvjYi l/ptOpZVra4xOonT5SqLRMotJlpbBOacHL7mXy6ESThcVFSow4F5y+E+HNCX+0ZJ9oi7gBTwUpJl qpEL4gWnC84UCNyCr/UXHKfjcPipJksTNeWBUaIZgSpSdZw+AzGoo1eOpLfk8bHep6bzoe7Qahz0 ZSaEusfW8vmVASZlwrdb2ZjHL0jK7Fjn6yHK5AHXEJs5tjFi+8T0Xjevzu9xBaE70o02JsVo2vAJ 6tQaU312/ZZsU/3G557j6DnNc2pEGrTlW/u6FbFt7BSYPnUmoeOHvb5+ShvL5xdLov4j3nHmIZa1 zpwGg+wwNdi4LRo4li3YDYj8ija1DZVxXMcP9OAYr6EkaOS+nTlijPncRr6b4LWEkV82chpRJZ+n MCDBoNjwrtbv5pCDdjncHe9q+Q6EhDmNctL7ERyGmAnTn4OQL+Og2GSM5SCUyXm8f+YbSa1pZFZm HPl1l2dkS15snCYvFozmxkoQcjRWLv+hZ9ZYCfbfJei4kgOGnM9DRzBfcr7t//z96yWY5DIC3x4x dvmlchhubHeE2nLh8BvKRoHL5u3G847OQQ6VeCS9tbF1qtdPxlUUV1y98b05U2PJ9nCBRf7+Pc3h cPKPxQ5/18knps+cyHb4nPm2SpN32bJF9rxCn4/ZvGv2JUfXV7Di4tzs/Pzu5567JscWoMXFYm7h Dalzq8an5SUztpVP8L6PPC7n6IwqFzWbPMSq0ccetRJlSsyWnsitqklP5JZFqtNTt26p+h/ms64z HnYs/6jtuD3u+UYtPlpw0P60eER1VI2j0H2qR9WP5e2zij9WbzduN//Iut0jLs9bnL9WWK/b5BG7 rPPy2z1LVMvV4jXqTs01um9ld+aJsqcd5rB54myV6PZUC7V5U2BatuhTlaiDmmBe0Cpi0+iJenr4 jdogEgcY80wOY7bG4Mh25Rc5XKOpLXKOVa1ya9RqL/Yy2NOIKhUfgtZY8/keDZfRmJ0NVK3Sns0n +R9GrbJ1u/WMVbB+FM2T89rz4nln8kR3Xk9ef96mPCFvlH58xO3Z6eGzuKEvursLUETrBtvYtpsL O6j/ux03F/bdrO6++EvvvUlvvJG1OizFRizF/GqiI6aYRmPhteG1I5aYLpi+qeiSPbJ8Of7CHht+ H0tNZoM0IZnF+Brxiam+mpJkwJcUAqaCaZNo6bdqy0knkSN1LWKWOMNn8FQsOXuL8IOuXJck+nza 8uLKFefeZzlrw4U1ekJ9/G6W5HQB2CEo5JOG8hN2o71oromRsHIlv9sWaA9TObwp/NPgnrAQtUc9 DaW1oTaTbJc9baVTQx3GdntnUbunq3RBqM+00L7Q01e6wbTaPli02jMY2my/M/SAcaf9gaKdnvtK d4X2Wx+xH3A+Hjpq/XnopdAboU9CZ0Ol7vCAbyC4zXKv5d7ck2H1bAvxarJLitSBzMFLh81Y5GKS vYSUdJr1kq/Qplarsh0OcLmy+aYsHMmS7YT2kE3kEGHkY3+FCV8wPZH3snKrXVNZ5qYWflbofPea 9Pn3iDI++rTh/BrlTrrM0MhWHLTkF+f73RC0oOKzSm4SyOXXtYzd68UHqavX1Ibg4onNjMyduUkC lPv4x7PMZWvpZUa20lY1PVlpqS3MtV1z27TNr5Dc/4j1+Otqbg0sbujf8/DAhPns0NlrOyqdPp9J H5tFhla1ff7CX4nP7XYWn4+QJ1rn1v/8maMnq1D2+yw5RTAn+aqzGyUdFpANYGQwTqRkqXDFVByM f1mfng7Ckuip8Qjms38RpOSUOZl97cJT2A644fvYsoOJH34msnceXUpvoEPu+92Puo+6swjKgXfJ VdmLx11N5xdRlBiYx2sd78iZ6NVxGUJyu9zKjUYMPnTmmKhTokwDB8kqlBWfk/XWfK9Wq9vl6e3O TJ1jH/eFcliBH9d5rzuWHomSNXw5L5/9y6Axz59Z0lOmNcYJOz1rz34wNvtMr101z23Kqrx10QO3 LCM3qJPbfbXutWwlP4TjI6Xy+nMHZ7vycsvXYVp9cFzoFHaACt6XDTbIV9EQi/EtDGwUM02vEnNV jKpEmjZr+YZUJqC7Y2wyqNjkBHMLjVrSjMkU6evAENxASbMckglpIH1kEMubQESBGkkbody8jewm Qh+/0iaCVguQeozOBkb+LgdVmPv83ifKr4HaDntAMAHPw3aUtKBf+TbQfE1HenOCchj803MKqq+H SPfqT+0F58/bbYi4wMx3qwpj21a5RpGd1hBSw/9C59kX2e5zvUI1vTNZPpfcTXZekyzlY8LUO+qN +O5jdL9coFUZ1FkaHIHpdFFVTG3OtlliWZk7o0c02moHP66K2IlYTqFmnLYmMl3bKXRo92lVflVI U6YPZgUtQXuJozQYqBinitmro1eomtWt+qmOOaoOdYemU9eR1WHviM6pWK5arF6lX2Zf5lhZdb1w vep69fW6G/U3Z91sv9Gx0Xmje11ks3CHZsh5W+S26O0Vd6vv199jucd2v/0+x47gDyM7ovs1j2kf 0z9m3+941PlY4b7IiHpE85Ru1P5k9FfRbzTf6M8VfuOeviyyJLqs4natUOtYVdTn+nZYWKJeolmm Za3aGa6pwdaI0OmYF5kZZe3qdk2Xnglq0DG93mmNlDpLXBXqmF6rdTo1WHSdTkdhUZEGVNjvWOy5 DjnPEoyUOILmrByHOVDkdwRiFbWO2Giqf8Sh17lHU31yblSjdmfp9V4H8jvsTmeRVqfj3VGew4kW zkihRuPle5yjkQocFnCKM1qBxgqLORAMongGVK/TaTRq7YRdqr0VmO0JuaYifYRYORLsD0eroxWb KrZXsLaKBRU9Ff2K4XTFmQpNxUeaD7Wz9I7Ddv0x6gY7+aes59/1OZXFsvbVTRilK0bSPRvfflNg es9mOv+FspQVOv/BhdWrzP7osd04Sld3UaPZeEnn9z89LJRdz48LqdPb7zI/6FYaU6JcTybnBoNW Q0MRV9xRVFx8VJlubZXuz5vp/zJdYHpqRekDLYFA+qaeSy0zHaNUo95YM7koN5T8fhBlpZeKk9eF s3JbJpCvbDW1ZUT/TtCdZzdYCgosJdRUXFsdxqpKywqt/onYZfqrpe+dPc4WnXtQuPaWfL/P54t6 pVvOq+mWNddU+i0Gs0aFViVVg+dd9OMN0XwU9n28bdWnTovDWL/Kie0oRLEalUaqo8rieLGC5TlW Z3VQVaeaoVpvFHySL1ApVQZapJbA3oC6JBAL0PboWv3Nxh8FTgS+9qvqs9NfvnK5HAUeb6ny5SuL y2HzSAU2G6XYdwcN2tISXpLMWq1GzoppZJRmNVEN1diV8NwNNaYo6Y/uicajp6NC1OX2ms2DFtJn IZaCyBeZ6bnuzK2X3VzMDYUUk7IBLrPegy1168z1w+M12D36PUFdDl9MoCqjL+ArznaHwZTjzyoJ E73OY/KFIaj3cWGXZL6LxBcQlBu0YTUf1ZCLH9NSesuAcs/Wpd/YUg67ZjoD9go5XdUeypv56Ytv fRB1t/Bz3dVzigsKZ2xbtvl3V2J/IAZ8vibX6vNvvPjOQz/6bueX1LzxKp+vpnjN+eG2F9dMX3v4 NerDrgEgPQPEFJwLRMHV2PS6EQvAW304I6dSqEIqZYIMhwruUHBj+i40dC+AyL+FBhrQgg70kAUG yAYjmCAHzGBBv/PACvlggwKwoxTuxFFVEbgwHA94QeJfxAI/BCCIPXEphKAMwlAOEewIKqASxclq qIFxMB5quRQJE6AeJsIkaABZvAuAj98RnCjXo3yfegfhPYSPktNT58SVICVXpE4zC8b18QwAhrYT dvM7dEgFPAsnYTo8gqlphx1wBbwMhzDu68kLmCoJmmE/+IgLUzkF8okI98PrMB/WwPvYaQWhFd4i ZvSnBfsqK8RSf0W1FW5LHUUuHTTBE3CMrCKzMSVNMJWWkRCGvC11EnMimHop9RqaHoT3SXFqGKai 7gPMrQAMwg8wz1bAb1Ln+JfrYCHsIxvIXzGnemCrUC0MpVZiDhyGP5JW1F0J68XXtIdhFbp6mOST k6m3Ux/CzwUCS9Cn78JtGOMEnKTlrEncg/ntx5y7CnqRejO8TiykgsmpQGpy6n603Qef0xD9JVNj PEIwDRbAnfAQ5sar8B58SfTYiT5IDuDzCvlP8TWMWyusg5uwj34Qc28fHISjpIJU0Hyaj7mVj2/y aqRtg70Y/gicIq04/j5JnmF7xWiyIZWbykt9iCWrFDowhrvhGQzjCxJFHgyBedlaoUhYK1ae/w6m cDE8AKfgFYzHW5jvX8LXpBSfd+gtdDA1L7U/9T7GRYOlqRZmQhf0wfVwA/wE3+qz8Bz8nZylWuR8 WfiFeJN4JnU35q0fJmPc25B7Nvq9Fd9SAkbxeRVTmUPcmIpachWZRZbiyGUnGSWvk9epinroavo3 FmcvsDeFcaKYqkOfrEoplmAeLMM3cAvm9t2Y3v3wC3ie5BE/CWOKXkX3X9EJtBmfh+nL9C22mW0T zonfT55Ofpw8mxrCetOM5a4Dc/MxzIXPiBXjUEJWkAHyLsZ8O32SZTMTk1gNa2RzWCe7je1gv2a/ FdYIB4Q3xGlir3hA3Zv8dvKVVGvqe0qdVGG8AliLqrHOLIRrsTStxPj147MGNsB3YAjuwvJyN463 DmC6T8Dz8Ef4C3yCbwCIB+O8HEO/DkvdZnIXPveTg+QZ8gvyPHmHfMUf6sUnSMfRBtpEp+AgeTM+ O+gp+ir9iDnZIjbINuGzix1hr2MzIggpsRKfqeJWlIpfUAfVU9ULNS+e+/R86fnO828lIWlPXpPc mXwm+WFqbmq9Mkbl9X8DbMFY3o9lcC8+j2FJPAK/hBfhT0pcPyeUiFjibdgHlpIyfGsN5AoyDZ8r yUx8rsZnHunCp5csJMvw4SPT75JbyffIneSHynMfpm0veZQcwecpcgyfP5K3yQfkb+RzioWYMizN PhqgERrDlDbRK2gbnYXPUtqHTz9dQ6/HN7SPjtCj9FVmYT4WZr1sNbufPcGeZX9g3whUKBMiQr0w V1gq3Cq8LLwivCacFV1ii7hM3CU+q3KoqlVXq1ao7lMdUn2kOoe9ert6oXqD+g/qlMaHrdWvMN2H 4dJfRPUyGRBzhRvp21gvbKxf3EKuxhxT0TlsFbuL/U68lpxhbvIGGWLL2crUw2wK/Zr1kbn0BPEy l1jHrsX2O0UO0HfoF/RDIY/MoX8lQeEH5Cnax5oov2EdxN8LecKt4kfYPfwJ6uhGcpL+gt3Kbk39 DOrEXeRtcRd9BdzCaWqBt7FWb6H84MBv6XK6FTqEavEsLMd8f1S8EfN7Er2NlLI/CLvgfSbRf5Az ZCe2Gi+R6UIx/RaNkQPY4p4nRfApWQ395Icgk+PkL2QUCNnP9pEZNAvfVpwayHjsfF5iHvIHpoNO ZfrGT/NIOz1Dr2ZPq04xHOVjK/E7uAll3ShsuJBfSfg21oAdNIBtWgu2Jr8nldgP3Yvt/RfJp3mL Lb4mbsVy9hArg1nY43TTF7CPuRtbmvexTn4f+59jWAZvgyi9DzakNpHF2O5fie0nhVGyAiJEj61l PsZtEPsLK/ViW8gPmX6N7f9vsNVvJf8JN6A4+QWKOUGBU+4QWrBl6sH2dys+i3EM8Cy+x7tVh8Xf QxvJx47XndyFpfxN+Bb2Oe9i+Hbs736ALdtDQhnG2o0t82p08UByKspgMsbwBUJhI8Z5EtbzdmEq trw7Uyswhcuxj5qBfeLzsDx1LzThu5uVujW1FRakHkrNh6UwO7Uf29/rUwnsW7eInXSuGBKqsY19 njyH/dGfyVZst6fCG9ge+YgN/obPExijSeJxGBL+hG1nQ+qO1B+xZw9iH34/tjPTsfW6Dv4T820q OwlVyavocGoK68ce6m2YmdqXchEdLEutwpb3adirFrHt2QRF4l5ZlhsmTayfUBer5dOBVZUV0Uh5 uCxUWhIM+H3FktfjdhUVOh32Alu+Nddy8Ssbyik1RgmUtUhTetxxf09c8EtTp4a5WepFi95LLHri brSacjlP3N2jsLkv55SR89p/4ZTTnPIFTmJy10N9uMzdIrnjLzVL7lHSNbMD9Xc2S53u+KeK/kpF v13RG1Dv8aADd4ttWbM7TnrcLfEp1y8baulpRu+G9bomqWmJLlwGwzo9avWoi+dL/cMkfxJRNDS/ pW6YgsaAkYrbpeaWeIHUzGMQZ76W3sXx9pkdLc0Oj6czXBYnTYukhXGQJseNIYUFmpRg4qqmuFoJ xr2cpwa2uofLTg7dMWqChT2hrMXS4t75HXHW28nDyAlhuM3x/Jves100oufmpo4tl1IdbKjFttzN jUNDW9zxPTM7LqV6uNrZiX7EqW9Kz9AUDPgOzMLW2W4Mi27u7IiTzRigm6eDpymduiVSC7fpWeGO a6XJ0rKhFT34YuxDcZi13pOw2+WjqdNgb3EPzemQPPEGh9TZ2+wczoWhWetHCmR3weWUcNmwKSed rcPZxowmy3CpZskFmqJT2LmuddaFfCU8RtI0LA5x9yI3xqRDwjTVcmVJLQwtqkU2/HUSdBVfjO9j eVzb1DNkqkN7E3cfF30myT30JeD7lz795HKb3oyNymf6EriWl5ILBQ3pY/p4KBQvLeUFRN2EbxTj OEkx14TLrh+lcanf5EaE2QftmLe9nXURzHyPh7/eraMyLERDfNPMjrTZDQsdCZAjoc447eGUk2OU vKs5ZdMY5YLzHgnL8ZOKPJAX1/gv/I0mq6VlWV2cWP8b8pI0vXW21Dqzq8PdMtSTydvWOZeZ0vTa C7SMjqQJmOFxwYc5NU3Cojerq4Nb4F/0TZFalvdMxaqGcYxbmjqYg3amddTBFK+w/M6/4DM3dGRx vwSfSin/i0fVGizAig1xT4mbeqam1U6dx/M/dDSaOsNdKeiis0ya4nWhy80TLjNfFr2sIYYRFvy0 dU7X0JDuMtoUbKyGhqZI7ilDPUO9o6lNCyW3SRo6yjpYx1B/S8/Y6x9NHdvqiE+5oxMTsYzUhdOS HH3lk4qbv7twgbH+S02BRuksf/Ju4bMcH544AmfXnr/DVKfJRqMW+dOyH6pqT7IF5pmQnpxlqsvY X/w1qmLESR+DKooGdidMU8UgR4DUN2hnEABaWCEspjGoR30WwkTU5yI20FhqEfLPQJiC5mYEynnQ XZswAB704yyac5B/Ivr9A3EueNF+k/grkBAM6K4E6W6EMnUh0oCHC2cQpqMfsxEvROhAmIHmOYg3 IC7n7tHPOGIT+imh399G/VSkzxbehVK0my7+KvU+6idheN4MzYHYnI5n6jOklQi3gk99p2Kvz+TF jZhhc9IgzEfB+T4UVKZidi4D0KOMnf00gIlH86dYT1CmtqLZ1gFQcBLAiTxF6M6dBeBBt9JiFAZR IvTjCD+A47LSUwChUUwqiuURhErkq5oBMB79q0X72IsAE3AUNBH5ZIxHI/oxeTvCJxjlHnwNSJ8S B7iiGmAaxmkamlsx7Fb0+yr0ox15ZmISZj0HMAfjNzcKMA9x536ALpT+5iPuRlrvHwAWnQFYsgfh TYBrfw2wFOkra/l32ZXS0Qif4wimD0TldEWEzxuILxltwIAeTZ1k74y0tFTKo4hD5QpOBEsqFULC 7qz8GXuHHkRhxoUWbyesDoXyVmLy5IxmXG1aM1Iarny7Ucfegs8QKHuLvY0DE8XVSLC88kyjAS0I uwWMOE50wR72F4gjUJDZGyPF/srdJ9iLSP8Nex7HZNzZ8wlDTiV6+Cv2FEp6LpRlDmcoh0eycyqh cQALHIGTqJ5COI1wBkGAPrYPBhG2IRxCEMCIqgshgtDGbdgBdgDjuRfdG1GNIPQhbEMQYA57DO1X cpXtZytwcOVid/BLdxBvZfco+KeI7Yh/gvYogrKH0Mzx7oz5x4g5/UcZ+/vRbEV8Xwbfi/YOxDuV SRMX+2HGfD1bp7hbm8F72ECiyGVqLEK6GyGKwFC3A3U7MOt28MkjVAkKB6uUkIYRVyK+Lo0xuzYm PJLyjjaO5BdU7sEs3YhZvxFzbiPm3Eb+FVW2YYxnQ5onzDYgzwbk2YA8GzBXomwAwxvAFwaomhDc CAzzfQDzfUA59jyA/APIz+2/h+p2hD3cxG7AfCzBWN3OViSCLixkS0dicmXDcZSFCHp77UhBYeW2 iyatjhdExNkZbOS8SxTqkhFtFrddMmIvTGPkWtmYzRbBzQgUclEtRqhGaEYQ2KJEccR1jF0F12lA znYN0kE2KAyKQrSZmE+wSmjHxtcFZhaGemQocS2oJ+N7tP3aTVrGt99EtbK2XSv2oVi9jTG+ZaeB tbEFTOTT4Oq6Kj6peYWqrmq7fo8+rj+pP6UX46qTqlOq06ozKjF9lq5d1aPqV21SbVftUWn5Beq0 R9+v36RnJr1bH9XL+na96FKTPY2b2UJeaVE1IfQjbEcQMI8XoL2bfQthAb6NBZgV3+KrNKgCmkwI p1B/GrGIJiPyGZHPiLZGtDWiLaDKKe0IPQj9GarqAmXMDec/wykIAaRmo2025u1pVM9wHcJ0NBnQ ZECTAblO0XMYQxOqboR2BKbYnUbAUoPqGC2aofcgqBT6GYVnjCZzt/Sc3Bs4WULifCsn2V5C5PqG xkrZi4rZbF4gLfAtCC7YK/RJfb6+YN9eoU1q87UF2/YKDVKDryHYsFeISBFfJBjZK7gkl88VdO0V ts04NOPEjJdnCAtm9M0YnMHG83nwRChaqWCvj+PDiQJ75Xhj40R6CJOzANXdCG8jMDCi6kKIIDQg 9CGI9JBi+zjaPo62j0MbwgIEEV09zpsYVF0ZGrffrdC4jtPpZXSGiT+YqKtqa5yBze4ChN0IDP0+ iPSDCndad0ixj6N6WrFvy/DvUew5lwthzB1vBLuU5q4Lq2EXNCAsQOhHEOFlNg/eRkDfUXUh9CMc QhBYFz7z2Dz6OD4H6UFWJhsq8lxgtWLPYs7RmBpNNAvLgoHsV9T7FPV2RW1Q1GI5e7rhq+mGn083 fH+6IYAaGsQ+yEB2KKpH1jcanmw0tDUaShoN6Fs+eHAwkqeoKq6SjxX1KkUtk3M9hm88hn94DH/3 GB70GFZ7DBM93J0T67CB5iqqnqtkp6JOV1S/rHcZfukyzHMZxrsMjQayi2DoMFlRixTVwVXy+ZPG ZiNoj5PPoRl9Ion6EtcoBQWRVKK+EVEyUX8FovOJ+l2I/pmov8f1NPmGKF0b+SpR/J6rMY98QaYJ 3PyPDP47mYYit4ucQbwU8SNQT3yIf5qo/w7nfxjd/wjNPwGvhvM/BO2Ku91kmmL/YMbdA4myhRjq jxNl6zHUH0GZEuq9ibL30PaeRNntiO5OlK1CtC3h4xFckagvdTXmkKVQTDnvIvBRHpMZmRCnos+r EF+RdtySKOOumnkAo6QpIVUgCvBYPk0kaFeCcyUkJZGFICleOEFSIu0An4KziVGJvAHHgRxrEtJ3 0BfVk773XP9Vf5wnHL4kxsQu17tPY/rmovF/kWmJA65XjvLsSrheLhslviOu30rHXb8oHiVzE66T ZaMaJJwoG6XksGsYMzmOvJQccR0qW+p6XFKoeyWk4qveXR92/Vjqct3vQ3PC9Z2yp3k04DpM8Vwk d5ZNcs2oP+Ca4hslSJbr+alXnatOWuOKoXXtKJk2csBVUTzKoxJFPw4ccZViiH5JicrV44/RGlCT dXKZeq16oXqueqZ6grpKHVa71YVqpzpXY9aYNNmaLI1Oo9GoNIKGakCTq9xwoHw/UaUs5qgErgqK 3kTTiznKEJ8SDcW6E7ewVto6ezKJm1uhdc7k+PhQ66g6NSteG2qNa9qv6Rgm5K5ONMXpbaME5nRg AeVWmx18guAoEBLZfKeD4w2b7+zsJK3xk4ugdaE7/tVsTIcOBR1RmmwD6/UNtgbzpJzYlOZ/o/Rk 1Et2mdku23NmK4zvbJ3dEX+ssDNeyTWpws7W+BV8auEoXU37WpqP0n6OOjuOkpvo6pZZ3J7c1Nx5 gQ28tB/ZoJ4jzjYCXs4GXjKisM1Q2LCYeluah73eNNOzZBpnwuLzrMK0NO1XMQaBfrVzhGy0CIoV v4ppEWfD8pD2zHipZ1lAjIpnxixQPHNypmGfD1nKfJxleLwPGYZ94xXygYtkyZeOTif4lHB8pFMJ h5CLPME0D5aCDA/VIM+/39P3//lbMvn/gZmM9L65eBGf4OmRWpYg9MS3Xr/MFt+00O0eXvxmZubH 37Nw0TKOe5fE35SWNMcXS83u4d5F/4a8iJN7peZhWNQyp2N4kbykOdEr97ZIvc2dI48MNrVeFtbt F8JqGvw3ng1yz5p4WI+0/htyKyc/wsNq5WG18rAekR9RwmqdNZm0tncMa2Ay/5K5gkeoXof1ocfh 6ZxsNfVPUirHBI/tFscxAbDb0oc641nS5LgBgZPCjeFGTsLayUnZfAovQ7LdMsHjOEb2Z0gmtM6R JkMIbC3Lmy/8BwYG1nJYty6E6tp1NsVuLVZaz+zW+BQ+4VAfr2+Jyz3NncquunWZX1OHbDpR/3I9 7asfrN9Wv7v+UL24bl0nWptPeF/20gXePu+gd5t3t/eQV8UJ8zuOyPW7vZ952TosTWQt/lqalTDX IcY/N65dN8B/gAEMIKSDC60LNXU0emERjnoJjtDDYEGQEKoQZiOI8B+o/h7hXYR/IAhwK6r3IDyM MMJtWJiFW2zLm3mIncoRZBurHInWVNaOIu69No1nd6Vxy1VpXN9YaUOcaKjSNRpxAM53N1XCbxDe QPgbwj8RRFbJKhXP16VLbecADIQIRp/vbl3LlYHQWuW7gIRn99qBUAgG0ntfCb4B5QsGl5d7IAPr ALMCXwgiZFJsB7izdRyP/f43mtf4+gplbmRzdHJlYW0KZW5kb2JqCjI5IDAgb2JqCiAgIDI3MDIx CmVuZG9iagozMCAwIG9iago8PCAvTGVuZ3RoIDMxIDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29k ZQo+PgpzdHJlYW0KeJxdlE2PmzAQQO/8Ch+3hxXYY2BXipCq7SWHfqhpfwAYk0VqABFyyL8v8Rtt pSIl0st4zLyZ2Pnb8ctxGjeT/1jncIqbGcapX+N1vq0hmi6exymzzvRj2JTSd7i0S5bvyaf7dYuX 4zTM2eFg8p978Lqtd/P0uZ+7+CkzxuTf1z6u43Q2T7/fTvx0ui3Ln3iJ02aKrGlMH4d9u6/t8q29 RJOn5Odjv8fH7f68p/1b8eu+ROMSW0oKcx+vSxvi2k7nmB2K/WnMYdifJotT/1+88qR1Q3hv17Tc 7suLwr82iVwiV0CSqLKQh3qoTFTrygpyUM3KAXohJtArMX1fC0Wog2ookOehntgLFKEWGqAykS0g 3mfxq9jF4lfrSvxqarHqV0H4eSX8Kvys+nUQflWA8HMYWfy85uFXamX4ea0Mvxp3i1+Nn8VPWOnw E/Z0Oj+m4tSPqh1+wvwcfsLEHH5O8/AT+uLwE90FP6Eyp37MweEnSvg5+unUT2P4CUYOP6+V4Vdi JPg5+inqx9sFP6GDgp+nasHPa0znxxwEv5IOCn4lnRD8PP9Wwa+masGvpBOCX03Vgl+pefh5rRo/ 0berHw4ev7JMB1RP4uOoPu6Vj3sg3NZ1vwLS5ZPO/uPUj1P8uJ+WeXlkpc9fQUsg6wplbmRzdHJl YW0KZW5kb2JqCjMxIDAgb2JqCiAgIDQ5MwplbmRvYmoKMzIgMCBvYmoKPDwgL1R5cGUgL0ZvbnRE ZXNjcmlwdG9yCiAgIC9Gb250TmFtZSAvTlFOVk9CK1RpbWVzTmV3Um9tYW5QU01UCiAgIC9Gb250 RmFtaWx5IChUaW1lcyBOZXcgUm9tYW4pCiAgIC9GbGFncyA0CiAgIC9Gb250QkJveCBbIC01Njgg LTMwNiAyMDI4IDEwMDYgXQogICAvSXRhbGljQW5nbGUgMAogICAvQXNjZW50IDg5MQogICAvRGVz Y2VudCAtMjE2CiAgIC9DYXBIZWlnaHQgMTAwNgogICAvU3RlbVYgODAKICAgL1N0ZW1IIDgwCiAg IC9Gb250RmlsZTIgMjggMCBSCj4+CmVuZG9iagozMyAwIG9iago8PCAvVHlwZSAvRm9udAogICAv U3VidHlwZSAvQ0lERm9udFR5cGUyCiAgIC9CYXNlRm9udCAvTlFOVk9CK1RpbWVzTmV3Um9tYW5Q U01UCiAgIC9DSURTeXN0ZW1JbmZvCiAgIDw8IC9SZWdpc3RyeSAoQWRvYmUpCiAgICAgIC9PcmRl cmluZyAoSWRlbnRpdHkpCiAgICAgIC9TdXBwbGVtZW50IDAKICAgPj4KICAgL0ZvbnREZXNjcmlw dG9yIDMyIDAgUgogICAvVyBbMCBbIDc3NyAzMzMgMjUwIDQ0MyA3NzcgNTAwIDMzMyA1MDAgMzg5 IDI3NyA1MDAgNTAwIDI3NyA1MDAgMjc3IDQ0MyA0NDMgNTAwIDUwMCA1MDAgMzMzIDU1NiA1MDAg NTAwIDI3NyAyNTAgNjY2IDU1NiA3MjIgNzIyIDQ0MyA1MDAgNTAwIDg4OSA1MDAgNTAwIDUwMCAz MzMgNTAwIDUwMCA1MDAgMzMzIDUwMCAzMzMgNzIyIDI3NyA3MjIgNjY2IDI1MCA3MjIgNTAwIDYx MCA2NjYgNzIyIDYxMCA1NTYgNzIyIDUwMCA3MjIgNTAwIDUwMCA2MTAgNTYzIDk0MyA3MjIgXV0K Pj4KZW5kb2JqCjYgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKICAgL1N1YnR5cGUgL1R5cGUwCiAgIC9C YXNlRm9udCAvTlFOVk9CK1RpbWVzTmV3Um9tYW5QU01UCiAgIC9FbmNvZGluZyAvSWRlbnRpdHkt SAogICAvRGVzY2VuZGFudEZvbnRzIFsgMzMgMCBSXQogICAvVG9Vbmljb2RlIDMwIDAgUgo+Pgpl bmRvYmoKMzQgMCBvYmoKPDwgL0xlbmd0aCAzNSAwIFIKICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUK ICAgL0xlbmd0aDEgODg2NAo+PgpzdHJlYW0KeJytWXl8VNW9/51z7iyZzCSTZTKT9d7JzUyWyToz 2SbbzTIhGClkoWaAQMIaQCUIWFAwEbXA4Fb3pUqttVKCZjIBHHAhrXax1o+v9Wmxz49iH1JsjVKL SiuZ+373TqDQz/u89/5498w5v/NbzvY737MlQADAAKPAQFhx3eAwZJ69CwU1KO1YceNmQW774cPI jwLotq4eXnNdpGtiCiDpPICmYc2121YP/vx7Z9D2IEDcnUOrBle+tnv3YgCrUr5qCAXGHewN5IeR zxu6bvNW2ybyEvIPIJ967YYVgwAZjyC/H3nbdYNbhzXZxnnIYxsgDN+wanjnplfWIn8S+zAFVOms BgP2VgdNhyg5r9VF6GopBTTceQYGHXeeQLpeqzlPWYRcNRn3w/dtLvNX9TP13zKfq583Uw9NmDdf wKSi3J5kT3JgQoCDCwKbuiBp4BsQOGwHyuUz7KdsDzihkrwn2eIEvb2S3E5uL3qQPJJ5f9EjpQc9 R1zx5RH5A8lqTG36UdqPKmhV0VUCNeamVxoTcgu8CYquFjNN1vnWZVbWUE6MErJGKb3yaNp7zjNO RijHQVqa1eF0WoymtPwyt9ORxlVYij3Zzgh7EEeVn5ebC7oC4Dje4ky1WJxlEfn9yZzkprIIK5VM GRnmeEtVgdNiNgWNL5NW4CgDCwBlLzifs0hoZ4nIU1KC6PCCxWwpt7B7LQRFo+GeSsvL9EEoZrdC MmTLU5OlXm+2Ymt15nuzR3sq92V/nk2z3VUWq6XK4H7V5nKZ613oxH6Xy9W6pO+oWmhBQZNSaNKd HqO2Wd4ixmjirBw7otKUGD9hrXXNfoF5n5xz9W90uc5Nm2e+mlYaMU/hJJmnXbsSSl0JO8yvuWxN gLz5FEmqTUquTarFH2CGmF/fpej19bsSzK+9VlFO+sHl6r+BYLX90Bkq6ukM+boW9R2HSvnfwYux QD4D+fKZGvwC0O8i/YTptJZUa5rHXV1VbdVqxVxnpbe6WquL5ZKrqzzuNGu1LlenpZZU1azS62Q/ fTWNGfRGkyW/Odd/X6PLlWa57fr5V89dd/z+Tasbuix5P5c6Vu9rK75udKyF7ZlZtNgUZzbGmbMX 24aucxVWLOgca6vYtm4fGVzXK111Q1b9wmh4V9v8p979aOHVAARE+YzmesReD/VLt6cTklxTQgJx i43LTNekLqnp9/XXLa1f2D2UsjZtXfE247a0m4q31u9he4v31u9pfYI9nvB41ROtz5Ix01PVP6kZ rx33jdc9X3+g7Wn/4ZojviMdjvVVQ9Xr2lg3BNq6u9meqt1tj/jZqtqbqrb4bm67sePpWm0BcdTm zylbuKFXY8/tiXZGSJbUW9Bd3jMPTD4dmdtsMvgIdHorkpKaK3S6nl+ALjU9nS8sTy0sLDf4fHxd Y2pdXSN0QE8HP7czde7cTmf83I6OujqfobC3oLywsa5zrjk3aI+Q1sn0VEd5hORJxnRHoZRQOVD4 YSEtjFDvkQ0+Mu4jvghlkqVOEivrpMws74Y6UrfAQAyOxufqjpEp6KDsUOdz3a/PRViFrbUqEStV wqtkEgupbHqMLSpWWcla5vVumPv5XDo3vbfQWmeday3sNbi/G8O56yLSlW/eqVPT585N95sRpdP9 G1E+jWBVsaqEWbxiaNqlKXXpEZFIbSp0EcI2F1KwNZ1CCOOPKAhOVvGLP/OX064L5Evz6wp41Y9s xMUlJZlsxtp6jJBrrL0KaZUygsTaRNxTkHAxAjFhT4xYUXgkJbUxNzfl0upSFhggyqsQ3gqULak6 XfLFHLsM+gk0Bv2UKgXh+U4REY9BTFHwrjBUp2ViSvUsm09e2nlNw7JFlT53i3XO0/d1zS+tS74+ L05rMKTXuu3pI4ucYlnhYp6yeGNiUVlw63z/w2NZaWa7o/5lb/rSB47adAW8qS6O7Yk27FuwvUaQ 3BXzo6Ti5ramFl9z9OaRhASDLqW4w1Jwp7tcLP8ead5gTElOT0hwjXz88Ke0f7k9M8OWL8OW6ui7 dHdvSlyaaHSAsnaceDTU4tophL9LzRQ9Z8fYRRaypXFLDd2FB9jBxAO2ZzLi7sh4MEN2sT3coxzN 4XkCfvufCwrLYR6hqQLlKbGXmYgpQvZJuakOrZboCgga8bxgTxUEu8AbCuyCuTxOilsQx+KOUQlw rOHC1wUFWqXWWkHyNngFqbhSkPIw5mLkBRRkZXtBICDsE44L/yZ8LsiCVoiQ3YddgtV9tYK9c8pe qH6nZk71K1hsqr8Iq9hGiGIVRCqGZgGk7oMV5TjV/YjaFAe7NMnKRpbvvDShSojNqipaQwL3jt/T 5bE7c20lVjtHdfr4pMSMyp7BopwirfDoUSEx1W6pYV010Qzi+k5bvqOlviSHT9Hq9QnS8u+39Nxg vYVed21pstEcB3Bx7+pE/7tIQIq3WdIzqd4Sl0mLlMMw32hqvCajp2hVxkDRyQxNkaUssz6tI3NZ 5pKi6zOv5de6nsk/5IpPLlGWabnPq9BwaaVKimKEV8lkTkwplVuzvBlFrxNig9yg4xcupzMhAXRZ mZnp6bZ4yjiNVpOUnunKyOLjy+Kb4lk8zudhzc7EJJIUYdWSkXycHrTtzHAF4eOMCL1bMmQGsxzz 85bl0bwIKwsXfZyltFaQ2qTQsKtSIVJiaZU3S7JXlmdJWQuyWNYxJuIxWjPxgXLRUPeM6a/6caXP zOCJNjM9048ThjOFy91ae3GjUNNz0+koLztlK8PVH5tzXPuHMnHJK2s5nFRrQ3I4qTYjN1Fd0YF+ 9dDqJ7OrtJRWei9Os7JCRUZEOjvZlY60lDQrYYv8zw81GLjqtNK8wtrEnGvWfVTtaI6uKNblJYrp nuwSwtcnaznyOB5Tyb+ZXFuWlhQnOiy8q8HjLfn27qejn9TQQzNXk7Gv1whWbV7rs9Ef35ZLfwzq R/EWpnypQFTqxXuUgJTDgJKznCxjCrJshlkLLdqCeoVTJEp5TnM3slcDjzGLbQQbgPwRxjNKjF4l X9CsBzE6JP+RNWKZB2dj7HPAfribxMMO2Al+cMOP4NewHoahC8ahHs6S38Mc7IkDvoO7gQQzkEYG oZ1UI3c3WOVfo2ax/Ak9jf14FG6FL2ALvAsr4BfYy8eIB/KgBn4DDfIaSNGcgCr4Ljwo/wfoOC88 Ayfk9+UoHm8/hBOknvSwUU0jXAM3wXa4k1hJEakh23Enqoet8DJMUXPcYTDCPPgW9EIfrIFDnDJ2 DSyAcfIOa8WW+mAvqSRT8kH0nwNLlkAzqaIu+RjkQBH6tQ6a4A54AB6B35NS0sAquKNgxTENwlGS QNJILjkufx94DPNgCfb0TngIDsAb8AZuWr20jA1ofhI9AwmwAXu4A/bCO/BXYiDXkK00wp6LNsnr 5En5NSxdje20wVXY7x3wMI7uWTgCU/BT9MkJkk0WkIfJZ9xmjXvm1uhvoyflNPmvkIh9XQhDcD2M wB6cmyfhZ/AHOAXnCUf0JIn8jJbTP7AE7kmNVQZ5l3KrhzJoRm9thV2wG8NRLPFzIpAC4iGbybs0 gSbSa+ktdIx+yvawCfaf3J/kVnm//Cr6/BO89YsYnNCNs7oDZ+0enLuD8Dwchgj8Cv6McDuHnlxH 9pIJcph8TVPpc/Qd7oLmhOas/IR8AeLR2w4ohnIMHvTgHJiLfbkeHsOZeh3ehPfhH/APkklqyS1k FwmSu8mD5CHyIfmKfpe+RT9gD7GfsBD7FUc4N7dOs1dzUtulG4w+FH1M7sTRpWDdXsRNI/pwFWJx E2Li++jHMLwAx7FvX8M36JcUHG0eqSPdZCvZTm4l95AfkPdoB11HN9BhRlg2E1k+283x3Bj3W+4P mps0e6POaEAuVdeMAdFQh/3uw7AMVmMrN2HYi34Yh5dwtn6JqP0E0fwlvmW+IRTnOZ5YiJ3kEz+G hTjrfWQpGSRDZAd5moyRP5DPqJnaaC69hz5An6a/o39iG9n97HE2yd5mUU7WxGvcGDo1ARzvmOYL 7ULtHl2LbrnuWf1vZopmfjXzQdQYtUTzoz3R26Mvyn3yjfJ35KfkZ+Xn5HF5Sl2pDLGbjfgSMORD Ka6cTrgalmL/18NGxGQQ7oXvYXgWxzAJh+A1RNxv4XfwAXyI4TScwZn9izqmL+ECjslGRFKBeKkm S8hyspoMk5vUsJM8Qh4lj5MQOU6myK/J2+T35AQ5ieEr8jU5T5NpCi2j1bSNzqHzaTddQVfRYTpC H6GP0x/TF+gx+nOc5Xfp7+nHNMqycCb8rIP1s6XokW3sVvYUe4H9O3uHnWAfsfPoG3yWcXZO5Byc j1vD3cad1BSgn1Zq1mn2YfiZNl67TjuundS+oT2DW3SBrkO3QPdjXVgn40oZh/twlV72IeL2k0K6 GHvJyKv0ELmfvEnD3DRNIAFyEwNawhUjxufBabqHOUgj20oycR3fBXPx0bcdEugTdA6iW/m6cRV7 EIe9mrc5C3kWt+rvkiHcb95C/HSizW44Bg75BCTB9+T1cJhYcUWtkh/FtTBKOvFWfY6soRvpn7kL zIwI/Yi9h7g5jWvfSx7SvgFLqAvR1gD7IA1qcT4/gG1EoKWwCB5lu3Gm7ZAORdy1GtzDyRcsDAfo Q3QPPSS/TgE+xX1vETcHn9z4otcUAU/+As9j335N36Z7yGFOS54i87EPWUyP+Pgl5NEnYBXbQjg6 Sv/GnYD3aC1dxIrJF1wFY7AA5+k2CJC/ED0cJA/R88QOD5JRHP3H5C/0Y9gMfyMynWH30CHyK/JL kkZdpIWVQ5R+RJZjb/LgM42V6Gk1riMt4uo0PcBWk8fhbc3P2PvcPHYEOPIKqaYXmEDbyDxWI0+D Q3uemaLvyK3QRmX5Pi5+5nP0zkZ4T36NlXCD3FXfHP7mLWol97HrNH3yF9EdmttoI6zWfKJrgG20 FXeIt/AsGoci8jnNQL/zKPGhp6zcvd98Q7sgm54lX8JWcg+ujjwcSS/uHOOwhuxHWw2eTU14CvyD juGuOY9twX3mCLyGaN+Oe3sKXYHnzBDpBoqnBKeeB48hGv7KrYVtMIrz/zKepmOYy9E8I0lSU2ND fZ2vtqa60utxV5SXlZYUu4oKC/KdjjwxF++4OdlZmRnpNiteMFKSk8yJCSZjvCFOr9NqOEYJFPvF 9gEh5BwIcU6xo6NE4cVBFAxeJhgICShqv9ImJAyoZsKVlhJarv4XSylmKV2yJGahHupLigW/KITe bBPx+ryoqw/zd7WJASE0rebnqfl71bwJ83Y7FhD8tqE2IUQGBH+o/cahoH+gDaubiDe0iq2rDCXF MGGIx2w85kJWcXiCWBuJmqFWv2+Cgt6EnQpliG3+ULrYpvQgxBz+wZWhBV19/rZMuz1QUhwirSvE 5SEQW0KJLtUEWtVmQtrWkE5tRlirjAb2ChPFU8E7I2ZYPuAyrhRXDi7pC7HBgNJGkgvbbQtZbzpl +yeLlSe39u26XJvJgn7bWkFhg8FdQugHXX2Xa+1KGghgHViWOtoHgu3Y9J2KE21l2BGl+8pQYoNa JfoVycA6IRQntohDwXUDOB8ZwRB0b7OHMzKko/JJyPALwd4+0R5qyhQDg21ZE6kQ7N42mS4J6Vdq SoonzEkxb04kJM5mjKbLM6su6dScaq7kOrsvuZMoPRLnIgpCwgoBe9In4kBqlGRVDQRX1KAZfgGC pUIrcRrWhuJaB4JmnyJXyoc0DrMoBL8EnHZx+tMrJYOzEq3D/CUoWQUcl/CF+ov5kMsVKipScKFr xYnEPjaqfGVJ8Y0R+pk4bBaQoPtgQR8WC/jK0Od2uzKreyMSLEcmNNrVF+MFWJ4ZBqnMFQjRAUUz dVFjWahoRi9qLhUfEBG+h9QrtCWkd176JZrTUvxDvhBJ+x/Uq2L6zh6xs2tRn+APDsz6trP3Ci6m r7mkm82FUlr7WCadzdFMpmoRiUsuGStMnzHEOfCnVZG8MqLTIxRVCRHaQ+aBjlgaMNjt/8dCEfms Ukol/yw2282Qz3UlX3cFf0X3jEGGHeactLN3UTBouELXjttOMNguCu3BgeBgRB5dLgpmMXgUr3ih 4LB/4OKMRuRjezND7XcGcBBDxFcSe+visfrbT28fSLphWWL9l/p0vXr0Ps1HXlbo4Ybw1xc0M3fq v9KX46kbh/axNxCmOnvUD9fo11/QXIjqv8I3j+7yewBotLUkiwMo1/wSRJYNRZpv45039g1ho6fw IYXvLN0PlL+5Q+xP4l/ga2MIKQWzer8GbqdhCu9d9Kg8xV6c9PvdUgSpq1Sl4YJCd0yR4XSPNqew F2EfxnGMb2HEtjHlMVL2Ih3HI55H46PhtEy1VCTc0jKbqaqJZSaLStwfNhtYBD7HSFmEHYWCWKnJ glL32eZ4FGBP2QtAMOLhjtUfYbeGfXxis5VNghnvCQLGBRiHMZ7EqMXOTMKHGD/HKGPkIJntD/9x D/8K20fWk8ewkkfgfj2RjPwIN6LBm9wIo8tepCEg8hSxhtNXu5UX/KqM1djNUbJJEbzMbidWpX15 io6HKzxSBEmpSibRLSp15seo3RGjWYJKw2LMOt3zg5fQLSGMJ+n4YSYxeyE29MWkz9ngfontVAL4 9HCYlxxLPDkRHOeSlWjw2aSj1JOKrDIPa19ht6JLgmqaoMjK3GZF17XYbVTot7rcuQqdM8+doFTR 7jEgkeKcc9zJjtY+1Sjs9ihlwkWeZMW0usGd/CJW2AAe+ZxkcTR4bI7KxW6zw+l1ax1FHiO2H5Gj Up6jxGP0lXncjzoOOI45XndwGkcVat017nRfoa/Gx2wOK1Z4qMBR4+BewpsvBnDoQTLzibzSeX4r T+P5cg+O6q+TvDrsUSUAj0YWvnqZblxHl+Hll+YeRPu4g2XY8PuS4SCf684VXd3KkEbChR6V5CpO GQnnCFjbn17IcXncOegMBVgjR66e73Y7iz3NBvkzNoLXTY98HqkL6Z+xiM8jYMnJpnZ3jkLLfO5k paZSj8oiKNX6nR5OYede5VUoOlIldo8NiWTM9uQ6y93uXKenBts/Lxmc2HicM9PuDr6CTRE2ogRw 4sBK+WpeW6Zt0rJ9dJwex7cCt4+Ns+PsLcZtQKt7GONZGWti89kypklsrqTTOLnLMN2H8UOMDMow bcK4QeXGEUME5mOKNeLqLcO0Sc01KShWNcv+RaOsD8LCLEynMYQwYC1SRjWBciLhLZZAHMHrClit uDUkJ+ml5nh6MxXxZWoiDWparaaZUobXdI/XdLvXNOQ1BbymXq+pw2sq9poKvKZmM63E15qJZiop uaCmr6rpAjUtljIE01nB9IpgekAwbRNM6wTToGBaJpjaBFOziTSSGjBBg5qWq2m2kpKZQ4nzEiHu OJnBp4wJH/gjYAGeWsJOLx+hqWFnExJ9OOdFvjmdaiFHT1CrwTiGkZulDHhOkROoUHYB8g2I5NtI nw87i/gIeS5GxpQ6my3K1VkpRZ6BHOJA+iMYU/kfQoVKn5qlT4TFa7HY9xXSHIfvAFFpBBvwqI3c GHaWovracMUNfHMSWY9tKuIhyFPN/AgRhTbNFhPDOU/yL+GLJIcqLBxybuNnsLwjzP/DE9GTMP/3 vAgdC/NnnBGC3MeoeyzMn6pATorn/7PiFP/Hij3875wRSo7w/+Z8k3/TEeHQ8IUK1fB5p1rJwRwU ov2TFUv5h51P8vfH6g7mqUa3oTPHpBR+Jw5pi3iKH8ZqVoo38EtjVfWLag8Wnla5HuwPkvkeVfgt p1JxCj+nYg3f7hzjWyve5BvFpbyPR/kRvjbvFF8tqm2VimrxohwcHPakUBzj8yvG+IXVL5FfgI4E MbqkUt2IbqNurW61rlMn6Wp0VboSXa7OrkvVJ+vN+gS9UW/Q6/VaPaenetCnRuSTkks5LVO16p8P tZyScmreTGN/PlQPU4rvN3wGhVJYJ+3saQlVuzojOrk7VOPqDMUtWNw3QcjdAdIZmloBncuF0Fc9 YoQY8I6gEVtIKLkTOntbbGgcorsjBHr7IkRWStyRqdy28cwi0h13ZSo0cMddgQCk3dhka0puTKpt b/tvkoHZ9LL/v9hcV3627NBDnT19oQPZgZBbycjZgc7QnB5hSd9RuoPe7G87SrcrJNB3lLTTHf5u RU7a2wKXzBBQ29EMQb09ZjYCOYoZontENVsaM+OxNJo5FKKY7QdeNePJfsUMYabYTYzx/rYJnldt uGEYU23GuOGYjUO1OX2ZjcYMp1Wb0xqz2pxVNcnLQ5OKPMVkIjcPDSbyclV11z/VYky9I6beoaqv /6faE1MfiKkPoNr1//StavnfLPxre1pI54K+CT20BPBuqtI083CjioOkww2jmcdIFnsP4vF6bsD3 XbzYAk1NNpe5npT1a40hLcp0GBXzOrvtlsxjHKDLFXMjik2zqpLmkmZFhXBWVAnKS3FWZbulzo6N 7J9VmVGchI0gjkt7EJfr/aGiASRiWwBs/rVt+Jslm/DbsmXLpk2btygfFnD2dIYa8GI84XTiE2+g LeDCh2Lb5v9h/LP/MG9SCul0fnxytQU2bXKp5VyuLbEM1q1k//XbHJOppuDadEmu/FcDNim1uAi6 NCJ/MJmTpZ66h10em9PlOSqfZbdOJHsU4wDZtFkpjXXFatik1vpfPyRG7wplbmRzdHJlYW0KZW5k b2JqCjM1IDAgb2JqCiAgIDY0NTcKZW5kb2JqCjM2IDAgb2JqCjw8IC9MZW5ndGggMzcgMCBSCiAg IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nF2Qz2rEIBDG7z7FHLeHxSRdupcQWLaX HPqHpn0Ao2MqNCoTc8jb14zLFjqg8HPm+/wYee2fe+8SyHcKesAE1nlDuISVNMKIk/OibsA4nW7E t55VFDKLh21JOPfeBtG2ID9yc0m0weFiwogPAgDkGxkk5yc4fF2H8jSsMf7gjD5BJboODNps96Li q5oRJIuPvcl9l7Zjlv1NfG4RoWGuSyQdDC5RaSTlJxRtlauD1ubqBHrzr38qqtHqb0U8Xefpqnqq O6amkCn0yHRuCp0Kndn35rD/sK/jHl+vRDk574wj72Gdx/taY4i7is8vcCV4nQplbmRzdHJlYW0K ZW5kb2JqCjM3IDAgb2JqCiAgIDI0MgplbmRvYmoKMzggMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNj cmlwdG9yCiAgIC9Gb250TmFtZSAvWkVDUFNHK1RpbWVzTmV3Um9tYW5QUy1JdGFsaWNNVAogICAv Rm9udEZhbWlseSAoVGltZXMgTmV3IFJvbWFuIEl0YWxpYykKICAgL0ZsYWdzIDQKICAgL0ZvbnRC Qm94IFsgLTQ5NyAtMzA2IDExMjAgMTAyMyBdCiAgIC9JdGFsaWNBbmdsZSAwCiAgIC9Bc2NlbnQg ODkxCiAgIC9EZXNjZW50IC0yMTYKICAgL0NhcEhlaWdodCAxMDIzCiAgIC9TdGVtViA4MAogICAv U3RlbUggODAKICAgL0ZvbnRGaWxlMiAzNCAwIFIKPj4KZW5kb2JqCjM5IDAgb2JqCjw8IC9UeXBl IC9Gb250CiAgIC9TdWJ0eXBlIC9DSURGb250VHlwZTIKICAgL0Jhc2VGb250IC9aRUNQU0crVGlt ZXNOZXdSb21hblBTLUl0YWxpY01UCiAgIC9DSURTeXN0ZW1JbmZvCiAgIDw8IC9SZWdpc3RyeSAo QWRvYmUpCiAgICAgIC9PcmRlcmluZyAoSWRlbnRpdHkpCiAgICAgIC9TdXBwbGVtZW50IDAKICAg Pj4KICAgL0ZvbnREZXNjcmlwdG9yIDM4IDAgUgogICAvVyBbMCBbIDc3NyA1MDAgNzIyIDM4OSA2 NjYgXV0KPj4KZW5kb2JqCjcgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKICAgL1N1YnR5cGUgL1R5cGUw CiAgIC9CYXNlRm9udCAvWkVDUFNHK1RpbWVzTmV3Um9tYW5QUy1JdGFsaWNNVAogICAvRW5jb2Rp bmcgL0lkZW50aXR5LUgKICAgL0Rlc2NlbmRhbnRGb250cyBbIDM5IDAgUl0KICAgL1RvVW5pY29k ZSAzNiAwIFIKPj4KZW5kb2JqCjQwIDAgb2JqCjw8IC9MZW5ndGggNDEgMCBSCiAgIC9GaWx0ZXIg L0ZsYXRlRGVjb2RlCiAgIC9MZW5ndGgxIDIwMzQwCj4+CnN0cmVhbQp4nJV8CWAURdZwVXXPTM+V 6ek5e+6eyUwymcl9QkLSOTnCfUhCCAQQBYSFCF54gO4qcgmKurp48CnsqoiEcBhABV08EFl0xZtd 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 wL/Fi9OF//Df4sWLl0xbPG0xzZV/i5dcA6Ac5C1Gi5fQ/9Gg1qDoNz9IYyqbVwOsUWQ0s3hx65LU ed/iaxAdbQlNLgx+vnQNjIwXX3RMuPjSH+WMGEoBDLf4GqwcJkIhzTaLMTTCMIhOMjUI+n+7Sux0 CmVuZHN0cmVhbQplbmRvYmoKNDEgMCBvYmoKICAgMTM4NjcKZW5kb2JqCjQyIDAgb2JqCjw8IC9M ZW5ndGggNDMgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nF2Ty2qEMBSG 9z5Flu1i0GTUzIAIZbpx0Qu1fQBNjlOhxhCdhW/fmD9MoYLCZ87tk2N6aZ4bM64sfXezamllw2i0 o2W+OUWsp+toEi6YHtUaKTzV1Nkk9cnttqw0NWaYk6pi6Yc/XFa3sYcnPff0mDDG0jenyY3myh6+ Li1etTdrf2gis7IsqWumafDlXjr72k3E0pB8aLQ/H9ft4NP+Ij43S0wE5hhJzZoW2ylynblSUmX+ qlk1+KtOyOh/58cT0vpBfXcuhHMfnmUiqwMJ0BF0DFTmoBxUgApQCSpBZ5AEEegUKOegc6Ai1uxA sXuPyFhFgeIsGpOdQIQOA2jAmQrEM5wJEPxKdOfwk6jJo58GwU9iFg4/iTk5/GSsCT+BOTn8itgd frIHwa+M/eBXYGoOvzLmwU/i6/LoJ0Hwy/E9BfwKRAr45agioh+MBPxyOAj45egu4FdgMgE/0Yel iduxr8++6/fdVDfn/FqGHyLs476Jo6H7P2Nnu2eF+xezztgsCmVuZHN0cmVhbQplbmRvYmoKNDMg MCBvYmoKICAgMzg4CmVuZG9iago0NCAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IKICAg L0ZvbnROYW1lIC9aUE1IUk0rQ291cmllck5ld1BTTVQKICAgL0ZvbnRGYW1pbHkgKENvdXJpZXIg TmV3KQogICAvRmxhZ3MgNAogICAvRm9udEJCb3ggWyAtMjEgLTY3OSA2MzcgMTAyMCBdCiAgIC9J dGFsaWNBbmdsZSAwCiAgIC9Bc2NlbnQgODMyCiAgIC9EZXNjZW50IC0zMDAKICAgL0NhcEhlaWdo dCAxMDIwCiAgIC9TdGVtViA4MAogICAvU3RlbUggODAKICAgL0ZvbnRGaWxlMiA0MCAwIFIKPj4K ZW5kb2JqCjQ1IDAgb2JqCjw8IC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9DSURGb250VHlwZTIK ICAgL0Jhc2VGb250IC9aUE1IUk0rQ291cmllck5ld1BTTVQKICAgL0NJRFN5c3RlbUluZm8KICAg PDwgL1JlZ2lzdHJ5IChBZG9iZSkKICAgICAgL09yZGVyaW5nIChJZGVudGl0eSkKICAgICAgL1N1 cHBsZW1lbnQgMAogICA+PgogICAvRm9udERlc2NyaXB0b3IgNDQgMCBSCiAgIC9XIFswIFsgNjAw IDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAg NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2 MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgXV0KPj4KZW5kb2JqCjE2IDAg b2JqCjw8IC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9UeXBlMAogICAvQmFzZUZvbnQgL1pQTUhS TStDb3VyaWVyTmV3UFNNVAogICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAgL0Rlc2NlbmRhbnRG b250cyBbIDQ1IDAgUl0KICAgL1RvVW5pY29kZSA0MiAwIFIKPj4KZW5kb2JqCjEgMCBvYmoKPDwg L1R5cGUgL1BhZ2VzCiAgIC9LaWRzIFsgOCAwIFIgMTIgMCBSIDE3IDAgUiAyMSAwIFIgXQogICAv Q291bnQgNAo+PgplbmRvYmoKNDYgMCBvYmoKPDwgL0NyZWF0b3IgKGNhaXJvIDEuMTAuMiAoaHR0 cDovL2NhaXJvZ3JhcGhpY3Mub3JnKSkKICAgL1Byb2R1Y2VyIChjYWlybyAxLjEwLjIgKGh0dHA6 Ly9jYWlyb2dyYXBoaWNzLm9yZykpCj4+CmVuZG9iago0NyAwIG9iago8PCAvVHlwZSAvQ2F0YWxv ZwogICAvUGFnZXMgMSAwIFIKPj4KZW5kb2JqCnhyZWYKMCA0OAowMDAwMDAwMDAwIDY1NTM1IGYg CjAwMDAwODUzNzUgMDAwMDAgbiAKMDAwMDAwMzA4NSAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAw IG4gCjAwMDAwMDMwNjIgMDAwMDAgbiAKMDAwMDAzMzU2OSAwMDAwMCBuIAowMDAwMDYyMjU0IDAw MDAwIG4gCjAwMDAwNjk4OTggMDAwMDAgbiAKMDAwMDAwMzIzMiAwMDAwMCBuIAowMDAwMDA1MjY0 IDAwMDAwIG4gCjAwMDAwMDM0NDYgMDAwMDAgbiAKMDAwMDAwNTI0MCAwMDAwMCBuIAowMDAwMDA1 MzkyIDAwMDAwIG4gCjAwMDAwMDgwODIgMDAwMDAgbiAKMDAwMDAwNTYwOCAwMDAwMCBuIAowMDAw MDA4MDU4IDAwMDAwIG4gCjAwMDAwODUyMTAgMDAwMDAgbiAKMDAwMDAwODIzMSAwMDAwMCBuIAow MDAwMDA4NTYxIDAwMDAwIG4gCjAwMDAwMDg0NDggMDAwMDAgbiAKMDAwMDAwODUzOSAwMDAwMCBu IAowMDAwMDA4NTgzIDAwMDAwIG4gCjAwMDAwMDg4MDAgMDAwMDAgbiAKMDAwMDAzMjIxMSAwMDAw MCBuIAowMDAwMDMyMjM2IDAwMDAwIG4gCjAwMDAwMzI3ODQgMDAwMDAgbiAKMDAwMDAzMjgwNyAw MDAwMCBuIAowMDAwMDMzMDk4IDAwMDAwIG4gCjAwMDAwMzM3NDEgMDAwMDAgbiAKMDAwMDA2MDg1 OSAwMDAwMCBuIAowMDAwMDYwODg0IDAwMDAwIG4gCjAwMDAwNjE0NTYgMDAwMDAgbiAKMDAwMDA2 MTQ3OSAwMDAwMCBuIAowMDAwMDYxNzYwIDAwMDAwIG4gCjAwMDAwNjI0MjEgMDAwMDAgbiAKMDAw MDA2ODk3NCAwMDAwMCBuIAowMDAwMDY4OTk4IDAwMDAwIG4gCjAwMDAwNjkzMTkgMDAwMDAgbiAK MDAwMDA2OTM0MiAwMDAwMCBuIAowMDAwMDY5NjM3IDAwMDAwIG4gCjAwMDAwNzAwNzIgMDAwMDAg biAKMDAwMDA4NDAzNiAwMDAwMCBuIAowMDAwMDg0MDYxIDAwMDAwIG4gCjAwMDAwODQ1MjggMDAw MDAgbiAKMDAwMDA4NDU1MSAwMDAwMCBuIAowMDAwMDg0ODIzIDAwMDAwIG4gCjAwMDAwODU0NjEg MDAwMDAgbiAKMDAwMDA4NTU4OSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDQ4CiAgIC9Sb290 IDQ3IDAgUgogICAvSW5mbyA0NiAwIFIKPj4Kc3RhcnR4cmVmCjg1NjQyCiUlRU9GCg== --14dae9473b8759073d04dbb72eb1-- From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 07:47:18 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 86ACC660 for ; Thu, 2 May 2013 07:47:18 +0000 (UTC) (envelope-from prvs=1834ac79c3=killing@multiplay.co.uk) Received: from mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) by mx1.freebsd.org (Postfix) with ESMTP id 06FEF1CDF for ; Thu, 2 May 2013 07:47:17 +0000 (UTC) Received: from r2d2 ([46.65.172.4]) by mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) (MDaemon PRO v10.0.4) with ESMTP id md50003601463.msg for ; Thu, 02 May 2013 08:47:13 +0100 X-Spam-Processed: mail1.multiplay.co.uk, Thu, 02 May 2013 08:47:13 +0100 (not processed: message from valid local sender) X-MDDKIM-Result: neutral (mail1.multiplay.co.uk) X-MDRemoteIP: 46.65.172.4 X-Return-Path: prvs=1834ac79c3=killing@multiplay.co.uk X-Envelope-From: killing@multiplay.co.uk X-MDaemon-Deliver-To: hackers@freebsd.org Message-ID: From: "Steven Hartland" To: "Dimitry Andric" , "Alfred Perlstein" References: <51814686.2060805@ixsystems.com> Subject: Re: potential future proofing fix for aicasm build. Date: Thu, 2 May 2013 08:47:52 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 07:47:18 -0000 I just remembered I had an issue with aicasm when compiling our kernel that didn't have ahc or ahd on an 8.3 box. The fix was to manually delete the kernel obj directory before compiling after doing a full make buildworld. For some reason there was some cruft left in there that running make buildkernel wasn't cleaning out, could you be suffering from a similar issue? ----- Original Message ----- From: "Dimitry Andric" To: "Alfred Perlstein" Cc: Sent: Thursday, May 02, 2013 8:19 AM Subject: Re: potential future proofing fix for aicasm build. > On May 1, 2013, at 18:44, Alfred Perlstein wrote: >> I took a shot at fixing this issue with building aicasm as part of "buildkernel" of an older 9.0 src on a machine running HEAD. >> >> aicasm.o: In function `__getCurrentRuneLocale': > /usr/include/runetype.h:96: undefined reference to `_ThreadRuneLocale' > > I don't understand this error message... It seems like a linker error, but it also seems to refer to an incorrect include file? > Is this during linking or compiling? > > >> The issue seems to be two-fold: >> >> 1) Paths are not fully set to pick up the bootstrap tools needed to build. > > What do you mean, exactly? In r230622 I explicitly set the PATH to ${BPATH}:${PATH}, which should be enough to pick up the > bootstrap tools. This is exactly the same path used to build the bootstrap-tools stage itself. The kernel bootstrap tools > (only aicasm, really) should be built by the host compiler, not the cross-tools compiler. > > >> 2) include files use the host's instead of the build trees. >> >> The first problem is fixed by changing setting of PATH from "${BPATH}:${PATH}" to ${TMPPATH}. >> >> The second is fixed by using -nostdinc and setting strict include paths using -I directives to the compiler: >> >> CFLAGS="-nostdinc -I${WORLDTMP}/usr/include -I. -I${KERNSRCDIR}/dev/aic7xxx/aicasm" > > I don't think this is correct, as aicasm should be compiled by the host compiler, and linked with the host libc. So if you > start including headers from the source directory, there will be a mismatch between what those headers declare, and what is > available in the host libc. > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > ================================================ This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk. From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 07:50:51 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 969D8785 for ; Thu, 2 May 2013 07:50:51 +0000 (UTC) (envelope-from aamitr4@gmail.com) Received: from mail-la0-x229.google.com (mail-la0-x229.google.com [IPv6:2a00:1450:4010:c03::229]) by mx1.freebsd.org (Postfix) with ESMTP id 21F5E1D06 for ; Thu, 2 May 2013 07:50:50 +0000 (UTC) Received: by mail-la0-f41.google.com with SMTP id fn20so255413lab.14 for ; Thu, 02 May 2013 00:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=D7sC35jCieSgS5+tge45izxSB8xIC0zpA8nh28IwN9A=; b=BYQW6wQh52+L96Yo4VRTvOHZjWAtDF1uylQT/D5r03x6sKvN7QS1Qe7Ww2kCsuo1Fv VoMl07ONxfvRS7GZ9HkaGM5uAs9y2tZRPE1GzVeThnFHmOV2LkgtzdJlHwsFxEqMHQGw n4frAqgexf01MnS1QWPlJznSIOcK5GV+HhzD3kygmNqX+EPBdE6FrJ+vUEPvvZHn2nJn 5aLZn56pkRsKxgDmYtIflw1iFQAo6xJKlsWFIu6v+XHKo5PI6Tu0JzVKzVlV/eSJ2S0X V/WgIU108cxi/cID5b4OIANv0mgnha+txl1N5HqXEgiSnjtsa/8H8fIyWKSHJZxBaJta 9PGQ== MIME-Version: 1.0 X-Received: by 10.112.199.230 with SMTP id jn6mr2188882lbc.131.1367481050088; Thu, 02 May 2013 00:50:50 -0700 (PDT) Received: by 10.152.134.179 with HTTP; Thu, 2 May 2013 00:50:50 -0700 (PDT) In-Reply-To: References: Date: Thu, 2 May 2013 13:20:50 +0530 Message-ID: Subject: Re: My GSOC proposal for review From: Amit Rawat To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 07:50:51 -0000 Hi, Here is some data I collected https://www.dropbox.com/sh/3ff3x34iq4cm2lu/RDFmXuO2xj. Thanks, Amit Rawat On Thu, May 2, 2013 at 12:58 PM, Amit Rawat wrote: > Hi, > > I am attaching my gsoc proposal with this mail for review. If any body > want any extra thing in it they can mail. > > Thanks, > Amit Rawat > From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 09:45:30 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 6940BDD7 for ; Thu, 2 May 2013 09:45:30 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (tensor.andric.com [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) by mx1.freebsd.org (Postfix) with ESMTP id 33EC41115 for ; Thu, 2 May 2013 09:45:30 +0000 (UTC) Received: from spaceball.andric.com (spaceball.andric.com [IPv6:2001:7b8:3a7:0:204:4bff:fe01:de8a]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id A8DE15C45; Thu, 2 May 2013 11:45:26 +0200 (CEST) Message-ID: <518235B9.6090104@andric.com> Date: Thu, 02 May 2013 11:45:29 +0200 From: Dimitry Andric User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Thunderbird/21.0 MIME-Version: 1.0 To: Steven Hartland , Alfred Perlstein Subject: Re: potential future proofing fix for aicasm build. References: <51814686.2060805@ixsystems.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 09:45:30 -0000 On 2013-05-02 09:47, Steven Hartland wrote: > I just remembered I had an issue with aicasm when compiling our kernel that didn't > have ahc or ahd on an 8.3 box. The fix was to manually delete the kernel obj > directory before compiling after doing a full make buildworld. > > For some reason there was some cruft left in there that running make buildkernel > wasn't cleaning out, could you be suffering from a similar issue? Well, a way to reproduce the problem would be nice. I tried running "make buildkernel" in a stable/9 tree on a 10.0 machine, and building aicasm went just fine. So it works for me... From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 09:54:23 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id A54F0FFC for ; Thu, 2 May 2013 09:54:23 +0000 (UTC) (envelope-from prvs=1834ac79c3=killing@multiplay.co.uk) Received: from mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) by mx1.freebsd.org (Postfix) with ESMTP id 4B2181187 for ; Thu, 2 May 2013 09:54:22 +0000 (UTC) Received: from r2d2 ([46.65.172.4]) by mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) (MDaemon PRO v10.0.4) with ESMTP id md50003602555.msg for ; Thu, 02 May 2013 10:54:19 +0100 X-Spam-Processed: mail1.multiplay.co.uk, Thu, 02 May 2013 10:54:19 +0100 (not processed: message from valid local sender) X-MDDKIM-Result: neutral (mail1.multiplay.co.uk) X-MDRemoteIP: 46.65.172.4 X-Return-Path: prvs=1834ac79c3=killing@multiplay.co.uk X-Envelope-From: killing@multiplay.co.uk X-MDaemon-Deliver-To: hackers@freebsd.org Message-ID: <9C51B77A3AC948B68BAAFB9FB86DE52F@multiplay.co.uk> From: "Steven Hartland" To: "Dimitry Andric" , "Alfred Perlstein" References: <51814686.2060805@ixsystems.com> <518235B9.6090104@andric.com> Subject: Re: potential future proofing fix for aicasm build. Date: Thu, 2 May 2013 10:54:56 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 09:54:23 -0000 ----- Original Message ----- From: "Dimitry Andric" > On 2013-05-02 09:47, Steven Hartland wrote: >> I just remembered I had an issue with aicasm when compiling our kernel that didn't >> have ahc or ahd on an 8.3 box. The fix was to manually delete the kernel obj >> directory before compiling after doing a full make buildworld. >> >> For some reason there was some cruft left in there that running make buildkernel >> wasn't cleaning out, could you be suffering from a similar issue? > > Well, a way to reproduce the problem would be nice. I tried running > "make buildkernel" in a stable/9 tree on a 10.0 machine, and building > aicasm went just fine. So it works for me... I think what I did was the following:- 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm 2. make buildworld -j10 # Realised I'd forgotten to build world 3. make buildkernel -j10 # still failed due to aicasm 4. rm -rf /usr/obj/usr/src/sys/MYCONF 5. make buildkernel -j10 # worked So I think the mistake that triggered it was I didn't build world before building kernel, however I've not tried reproducing. Regards Steve ================================================ This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk. From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 10:15:22 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 56D7E593 for ; Thu, 2 May 2013 10:15:22 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (tensor.andric.com [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) by mx1.freebsd.org (Postfix) with ESMTP id 200D412BC for ; Thu, 2 May 2013 10:15:22 +0000 (UTC) Received: from spaceball.andric.com (spaceball.andric.com [IPv6:2001:7b8:3a7:0:204:4bff:fe01:de8a]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 5ED935C45; Thu, 2 May 2013 12:15:21 +0200 (CEST) Message-ID: <51823CBC.2060803@andric.com> Date: Thu, 02 May 2013 12:15:24 +0200 From: Dimitry Andric User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Thunderbird/21.0 MIME-Version: 1.0 To: Steven Hartland , Alfred Perlstein Subject: Re: potential future proofing fix for aicasm build. References: <51814686.2060805@ixsystems.com> <518235B9.6090104@andric.com> <9C51B77A3AC948B68BAAFB9FB86DE52F@multiplay.co.uk> In-Reply-To: <9C51B77A3AC948B68BAAFB9FB86DE52F@multiplay.co.uk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 10:15:22 -0000 On 2013-05-02 11:54, Steven Hartland wrote: > From: "Dimitry Andric" ... >> Well, a way to reproduce the problem would be nice. I tried running >> "make buildkernel" in a stable/9 tree on a 10.0 machine, and building >> aicasm went just fine. So it works for me... > > I think what I did was the following:- > 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm And this is what I cannot reproduce. Works just fine, either with or without -j. From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 11:54:58 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 40DD2692 for ; Thu, 2 May 2013 11:54:58 +0000 (UTC) (envelope-from prvs=1834ac79c3=killing@multiplay.co.uk) Received: from mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) by mx1.freebsd.org (Postfix) with ESMTP id D9E151623 for ; Thu, 2 May 2013 11:54:57 +0000 (UTC) Received: from r2d2 ([46.65.172.4]) by mail1.multiplay.co.uk (mail1.multiplay.co.uk [85.236.96.23]) (MDaemon PRO v10.0.4) with ESMTP id md50003603811.msg for ; Thu, 02 May 2013 12:54:55 +0100 X-Spam-Processed: mail1.multiplay.co.uk, Thu, 02 May 2013 12:54:55 +0100 (not processed: message from valid local sender) X-MDDKIM-Result: neutral (mail1.multiplay.co.uk) X-MDRemoteIP: 46.65.172.4 X-Return-Path: prvs=1834ac79c3=killing@multiplay.co.uk X-Envelope-From: killing@multiplay.co.uk X-MDaemon-Deliver-To: hackers@freebsd.org Message-ID: From: "Steven Hartland" To: "Dimitry Andric" , "Alfred Perlstein" References: <51814686.2060805@ixsystems.com> <518235B9.6090104@andric.com> <9C51B77A3AC948B68BAAFB9FB86DE52F@multiplay.co.uk> <51823CBC.2060803@andric.com> Subject: Re: potential future proofing fix for aicasm build. Date: Thu, 2 May 2013 12:55:33 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 11:54:58 -0000 ----- Original Message ----- From: "Dimitry Andric" > On 2013-05-02 11:54, Steven Hartland wrote: >> From: "Dimitry Andric" > ... >>> Well, a way to reproduce the problem would be nice. I tried running >>> "make buildkernel" in a stable/9 tree on a 10.0 machine, and building >>> aicasm went just fine. So it works for me... >> >> I think what I did was the following:- >> 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm > > And this is what I cannot reproduce. Works just fine, either with or without -j. Have just confirmed this reproduces the issue with a recent head source on 8.3-RELEASE machine. 1. rm -rf /usr/obj 2. make buildkernel KERNCONF=MYCONF -j10 # Fails with:- cc1: warnings being treated as errors aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' 3. make buildworld 4. make buildkernel KERNCONF=MYCONF -j10 # Still fails with:- cc1: warnings being treated as errors aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' Fix is: 1. rm -rf /usr/obj/usr/src/sys/MYCONF 2. make buildkernel KERNCONF=MYCONF -j10 # Now works Regards Steve ================================================ This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk. From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 12:46:50 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 6C9A7DBA for ; Thu, 2 May 2013 12:46:50 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) by mx1.freebsd.org (Postfix) with ESMTP id 307FF18A9 for ; Thu, 2 May 2013 12:46:50 +0000 (UTC) Received: from spaceball.andric.com (spaceball.andric.com [IPv6:2001:7b8:3a7:0:204:4bff:fe01:de8a]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 53A675C45; Thu, 2 May 2013 14:46:47 +0200 (CEST) Message-ID: <51826039.1000108@andric.com> Date: Thu, 02 May 2013 14:46:49 +0200 From: Dimitry Andric User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Thunderbird/21.0 MIME-Version: 1.0 To: Steven Hartland , Alfred Perlstein Subject: Re: potential future proofing fix for aicasm build. References: <51814686.2060805@ixsystems.com> <518235B9.6090104@andric.com> <9C51B77A3AC948B68BAAFB9FB86DE52F@multiplay.co.uk> <51823CBC.2060803@andric.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 12:46:50 -0000 On 2013-05-02 13:55, Steven Hartland wrote: > From: "Dimitry Andric" >> On 2013-05-02 11:54, Steven Hartland wrote: >>> From: "Dimitry Andric" ... >>> I think what I did was the following:- >>> 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm >> >> And this is what I cannot reproduce. Works just fine, either with or without -j. > > Have just confirmed this reproduces the issue with a recent head source on 8.3-RELEASE > machine. Note this is the other way around; the original poster was talking about building "an older 9.0 src on a machine running HEAD". > 1. rm -rf /usr/obj > 2. make buildkernel KERNCONF=MYCONF -j10 # Fails with:- > cc1: warnings being treated as errors > aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' Yes, this is because r243906 removed the prototype, since newer versions of yacc generate the prototype for yyparse themselves. Here, lex and yacc should really be (also) built as part of the kernel's bootstrap tools. Currently, they are only part of the bootstrap tools for buildworld, which explains the events below. > 3. make buildworld So here the correct versions of lex and yacc are built... > 4. make buildkernel KERNCONF=MYCONF -j10 # Still fails with:- > cc1: warnings being treated as errors > aicasm_gram.c:1539: warning: no previous prototype for 'yyparse' However, since the .c file is newer than the .y file, it does not get regenerated... > Fix is: > 1. rm -rf /usr/obj/usr/src/sys/MYCONF > 2. make buildkernel KERNCONF=MYCONF -j10 # Now works And with this, you have forced regeneration of the aicasm_gram.c file, so now it builds correctly. E.g., I think you might get away with just rm'ing all the generated aicasm*.c files. From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 13:05:24 2013 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 2A1C36AB; Thu, 2 May 2013 13:05:24 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from mail-gw13.york.ac.uk (mail-gw13.york.ac.uk [144.32.129.163]) by mx1.freebsd.org (Postfix) with ESMTP id E32611ABC; Thu, 2 May 2013 13:05:23 +0000 (UTC) Received: from buffy-128.york.ac.uk ([144.32.128.160]:36581 helo=buffy.york.ac.uk) by mail-gw13.york.ac.uk with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1UXtCM-0005ZJ-Ph; Thu, 02 May 2013 14:05:22 +0100 Received: from [127.0.0.1] (localhost [127.0.0.1]) by buffy.york.ac.uk (8.14.6/8.14.6) with ESMTP id r42D5LY0042884; Thu, 2 May 2013 14:05:21 +0100 (BST) (envelope-from gavin@FreeBSD.org) Subject: Google Summer of Code 2013 From: Gavin Atkinson To: freebsd-hackers@FreeBSD.org, freebsd-current@FreeBSD.org Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-jGJx6MMesantpnipOgCd" Date: Thu, 02 May 2013 14:05:21 +0100 Message-ID: <1367499921.35821.8.camel@buffy.york.ac.uk> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: freebsd-hackers@FreeBSD.org List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 13:05:24 -0000 --=-jGJx6MMesantpnipOgCd Content-Type: text/plain; charset="ASCII" Content-Transfer-Encoding: quoted-printable Hi all, A reminder: The deadline for applications is 19:00 UTC Friday May 3rd (tomorrow). FreeBSD is pleased to announce that once again we have been selected to participate in the Google Summer of Code program. This gives University students the opportunity to earn a $5000 USD stipend in exchange for working on Open Source software over their Summer break. Students have around 12 weeks to work on their project, and will be mentored by existing FreeBSD committers. Participating organisations will earn $500 USD per student mentored. Over the past eight years we have hosted over 150 successful projects, and look forward to continuing this trend. FreeBSD's organisation page may be found at http://www.google-melange.com/gsoc/org/google/gsoc2013/freebsd and a list of possible project ideas may be found at https://wiki.freebsd.org/IdeasPage . Please note that projects do not have to come from the ideas list, and indeed students are encouraged to produce their own project ideas - the majority of past projects have been thought up by the particpants themselves. We are encouraging discussion of projects on the freebsd-hackers mailing list and the #freebsd-soc IRC channel on EFNet. Students are also encouraged to visit http://www.google-melange.com/ to view more details of the program, including eligibility requirements, and a list of other participating organisations. If you have administrative questions you can contact the FreeBSD GSoC administration team at soc-admins@FreeBSD.org. Thanks, Gavin --=-jGJx6MMesantpnipOgCd Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEABECAAYFAlGCZJEACgkQk13vRKCTJisRDACeN35EoTt8/dQJhdTm7PJhlzCt BP8An2wTjTKLaliDVub7OyAHZ7Y4c1vm =kKZy -----END PGP SIGNATURE----- --=-jGJx6MMesantpnipOgCd-- From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 13:14:54 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id D5EB3F86 for ; Thu, 2 May 2013 13:14:54 +0000 (UTC) (envelope-from rizzo.unipi@gmail.com) Received: from mail-la0-x22c.google.com (mail-la0-x22c.google.com [IPv6:2a00:1450:4010:c03::22c]) by mx1.freebsd.org (Postfix) with ESMTP id 5F88A1B7F for ; Thu, 2 May 2013 13:14:54 +0000 (UTC) Received: by mail-la0-f44.google.com with SMTP id ed20so497228lab.17 for ; Thu, 02 May 2013 06:14:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=E/uUJlt3zm8kkSPkUHzaZUjsiFJyMcNxa8vy7f34SEI=; b=MWmCgZqp05StrfRzN1sQqW/nTYiYgNbhxR89VjR33quHEzR3Ed/h6Ku60eykLPeLOQ /xRN5osnXB7+aksAGeZg+AqbYU1RMq5mTUuTQX0wr5m9t8KfxPC3EEryYUmu7yRfs4FW EcFjlPpWF5o2eFN38C8PRU4JDEo3oJnYNta3nJwle+qLLFzQDS3IAeJ5n6WmIZvxiTIg V/VTu3/EoasYS+V3Kxbg5tuHxD4ZlyowWG8I69cDglotDnykTmyKF5ffLJ+hWcpXXplP YZca0mc6PxgrH5zEWY4YK6nbNBJaN5NwXps3LY+DoMx83ElObjwW+t7H2ktdGU2OwjU3 qt+w== MIME-Version: 1.0 X-Received: by 10.112.201.4 with SMTP id jw4mr2147919lbc.47.1367500493270; Thu, 02 May 2013 06:14:53 -0700 (PDT) Sender: rizzo.unipi@gmail.com Received: by 10.114.21.166 with HTTP; Thu, 2 May 2013 06:14:53 -0700 (PDT) In-Reply-To: <1367499921.35821.8.camel@buffy.york.ac.uk> References: <1367499921.35821.8.camel@buffy.york.ac.uk> Date: Thu, 2 May 2013 15:14:53 +0200 X-Google-Sender-Auth: B2mkErpELsKAQEg6cVcvVkS672o Message-ID: Subject: Re: Google Summer of Code 2013 From: Luigi Rizzo To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 13:14:54 -0000 am i wrong or we are a bit short in terms of proposals ? cheers luigi On Thu, May 2, 2013 at 3:05 PM, Gavin Atkinson wrote: > Hi all, > > A reminder: The deadline for applications is 19:00 UTC Friday May 3rd > (tomorrow). > > FreeBSD is pleased to announce that once again we have been selected to > participate in the Google Summer of Code program. This gives University > students the opportunity to earn a $5000 USD stipend in exchange for > working on Open Source software over their Summer break. Students have > around 12 weeks to work on their project, and will be mentored by > existing FreeBSD committers. Participating organisations will earn $500 > USD per student mentored. Over the past eight years we have hosted over > 150 successful projects, and look forward to continuing this trend. > > FreeBSD's organisation page may be found at > http://www.google-melange.com/gsoc/org/google/gsoc2013/freebsd and a > list of possible project ideas may be found at > https://wiki.freebsd.org/IdeasPage . Please note that projects do not > have to come from the ideas list, and indeed students are encouraged to > produce their own project ideas - the majority of past projects have > been thought up by the particpants themselves. We are encouraging > discussion of projects on the freebsd-hackers mailing list and the > #freebsd-soc IRC channel on EFNet. > > Students are also encouraged to visit http://www.google-melange.com/ to > view more details of the program, including eligibility requirements, > and a list of other participating organisations. > > If you have administrative questions you can contact the FreeBSD GSoC > administration team at soc-admins@FreeBSD.org. > > Thanks, > > Gavin > -- -----------------------------------------+------------------------------- Prof. Luigi RIZZO, rizzo@iet.unipi.it . Dip. di Ing. dell'Informazione http://www.iet.unipi.it/~luigi/ . Universita` di Pisa TEL +39-050-2211611 . via Diotisalvi 2 Mobile +39-338-6809875 . 56122 PISA (Italy) -----------------------------------------+------------------------------- From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 16:48:42 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 5269A711 for ; Thu, 2 May 2013 16:48:42 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from mail-gw14.york.ac.uk (mail-gw14.york.ac.uk [144.32.129.164]) by mx1.freebsd.org (Postfix) with ESMTP id 1A3B718D9 for ; Thu, 2 May 2013 16:48:42 +0000 (UTC) Received: from ury.york.ac.uk ([144.32.64.162]:50619) by mail-gw14.york.ac.uk with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1UXwgM-0006cf-B1; Thu, 02 May 2013 17:48:34 +0100 Date: Thu, 2 May 2013 17:48:34 +0100 (BST) From: Gavin Atkinson X-X-Sender: gavin@thunderhorn.york.ac.uk To: Luigi Rizzo Subject: Re: Google Summer of Code 2013 In-Reply-To: Message-ID: References: <1367499921.35821.8.camel@buffy.york.ac.uk> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 16:48:42 -0000 On Thu, 2 May 2013, Luigi Rizzo wrote: > am i wrong or we are a bit short in terms of proposals ? We're not doing badly at the moment (I think we are about where we were at this time last year), but more proposals are certainly welcome! Many students seem to submit at the last moment unfortunately. Thanks, Gavin From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 17:57:31 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id D01C4C20 for ; Thu, 2 May 2013 17:57:31 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [64.62.153.212]) by mx1.freebsd.org (Postfix) with ESMTP id BD4C61D41 for ; Thu, 2 May 2013 17:57:31 +0000 (UTC) Received: from zeta.ixsystems.com (drawbridge.ixsystems.com [206.40.55.65]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by anubis.delphij.net (Postfix) with ESMTPSA id 3197911499; Thu, 2 May 2013 10:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=delphij.net; s=anubis; t=1367517445; bh=bfzsAtD8AyD6udQaKdX7Wo9B7+AKr+ZgaNwLE5QkvXQ=; h=Date:From:Reply-To:To:Subject:References:In-Reply-To; b=nj8UgfFWc9PDvr5YojM8Ctp73Awzmyj7heHa6LRkyF6A2AE2qVxb2Dnitl55L6TJj i1RNnzJAqhrM2gwFYEfINuJeEayhsk+mTuQsPGWZXyp/ZOBtk3pVSaaGxNmTL2OdZP kgFGoo0vHKjre+ZsixQHaJgDNH1U1GuoLLkfSMDM= Message-ID: <5182A903.6010604@delphij.net> Date: Thu, 02 May 2013 10:57:23 -0700 From: Xin Li Organization: The FreeBSD Project MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Subject: Re: potential future proofing fix for aicasm build. References: <51814686.2060805@ixsystems.com> In-Reply-To: X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: d@delphij.net List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 17:57:31 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 05/02/13 00:19, Dimitry Andric wrote: > On May 1, 2013, at 18:44, Alfred Perlstein > wrote: >> I took a shot at fixing this issue with building aicasm as part >> of "buildkernel" of an older 9.0 src on a machine running HEAD. >> >> aicasm.o: In function `__getCurrentRuneLocale': > >> /usr/include/runetype.h:96: undefined reference to >> `_ThreadRuneLocale' > > I don't understand this error message... It seems like a linker > error, but it also seems to refer to an incorrect include file? Is > this during linking or compiling? This is because the locale code being a macro: #if defined(__NO_TLS) || defined(__RUNETYPE_INTERNAL) extern const _RuneLocale *__getCurrentRuneLocale(void); #else extern _Thread_local const _RuneLocale *_ThreadRuneLocale; static __inline const _RuneLocale *__getCurrentRuneLocale(void) { if (_ThreadRuneLocale) return _ThreadRuneLocale; if (_CurrentRuneLocale) return _CurrentRuneLocale; return &_DefaultRuneLocale; } #endif /* __NO_TLS || __RUNETYPE_INTERNAL */ What really puzzles me is that why the build picks up headers from the running system. Cheers, - -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- iQEcBAEBCgAGBQJRgqkDAAoJEG80Jeu8UPuzwvUH/2M+HDzKA9neXXYb6SKzrNX2 DVqw66ygatDj6QqwmMvZvU4+kGLNR6KEOQGNF4f0mMJmfg+GLzDFE5s769J/Be+1 4WMr1luWwgwrYlYhMrA8/CXYUWI2O9mhNfhLQHD8z3lJ6yxJgPy3h9J3jwzmU/W8 p58Dp8raABgKcK9DKE47QSXiiEXHuJUdSJXBPCoEFg09s+PnhrduQ1Vd9vfK9As0 G1HUmn+S/LWxRCB2wzZAC3FjZQHblXEvmfZzxCqUZr5AP3jtlHTHDUtJTCxxclgg sGLmdvqnn6/3BBXIhcxXVka3CKzbuCyIeGCBhTsSbLnuKB+FXbid9ibSrIlFA2s= =vdoK -----END PGP SIGNATURE----- From owner-freebsd-hackers@FreeBSD.ORG Thu May 2 18:11:59 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id ABF3E253 for ; Thu, 2 May 2013 18:11:59 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 4F26C1E41 for ; Thu, 2 May 2013 18:11:59 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.7/8.14.7) with ESMTP id r42IBnAo071908; Thu, 2 May 2013 21:11:49 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.8.2 kib.kiev.ua r42IBnAo071908 Received: (from kostik@localhost) by tom.home (8.14.7/8.14.7/Submit) id r42IBnvG071907; Thu, 2 May 2013 21:11:49 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 2 May 2013 21:11:49 +0300 From: Konstantin Belousov To: d@delphij.net Subject: Re: potential future proofing fix for aicasm build. Message-ID: <20130502181149.GM3047@kib.kiev.ua> References: <51814686.2060805@ixsystems.com> <5182A903.6010604@delphij.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="bnUi9GzdSM4S/DMA" Content-Disposition: inline In-Reply-To: <5182A903.6010604@delphij.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 May 2013 18:11:59 -0000 --bnUi9GzdSM4S/DMA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, May 02, 2013 at 10:57:23AM -0700, Xin Li wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 >=20 > On 05/02/13 00:19, Dimitry Andric wrote: > > On May 1, 2013, at 18:44, Alfred Perlstein > > wrote: > >> I took a shot at fixing this issue with building aicasm as part > >> of "buildkernel" of an older 9.0 src on a machine running HEAD. > >>=20 > >> aicasm.o: In function `__getCurrentRuneLocale': > > >> /usr/include/runetype.h:96: undefined reference to > >> `_ThreadRuneLocale' > >=20 > > I don't understand this error message... It seems like a linker > > error, but it also seems to refer to an incorrect include file? Is > > this during linking or compiling? >=20 > This is because the locale code being a macro: >=20 > #if defined(__NO_TLS) || defined(__RUNETYPE_INTERNAL) > extern const _RuneLocale *__getCurrentRuneLocale(void); > #else > extern _Thread_local const _RuneLocale *_ThreadRuneLocale; > static __inline const _RuneLocale *__getCurrentRuneLocale(void) > { >=20 > if (_ThreadRuneLocale) > return _ThreadRuneLocale; > if (_CurrentRuneLocale) > return _CurrentRuneLocale; > return &_DefaultRuneLocale; > } > #endif /* __NO_TLS || __RUNETYPE_INTERNAL */ >=20 > What really puzzles me is that why the build picks up headers from the > running system. Because the utitily being build is intended to be run on the running system. --bnUi9GzdSM4S/DMA Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQIcBAEBAgAGBQJRgqxkAAoJEJDCuSvBvK1BhYsP/A65hzS5x88Pvo0UjCGCV85x g4dF/cQFL0nJvLSQxPfNJhj7etGWZgTaZgBAKoHY/1ejpvw1GQzYKPtYCef2E6V0 ygnM/QTOjUro2HpDLgkasBEwOUe2LS61nnWER0nmjUAc9wIU4O+nEyJ9bNnw2sZg Og2nqkF9+hG5HWSMyXl2jrXw0ojYlLLozFxJlBy9p3dAkAjFtHy79xZopRBlGCjl IFalsOgqMO1EK3D6Z956/XQiTWRdLU7rLB2Ru84Rthwpj2+EygqoY3Kf0VigZ0Tt LLu41EJFyyu6iyRjM3hmx1jozQCjaO+8Kjp9hpLRaelqRuvZQIAcMuvNmGdxx7L3 qUisZ+Uwy9m/1uN4Jm7uv+4qUWOU0fJQUkpWc3YGCgvhT62XuE+1Esh4LKkW5BDb O6n38sSVWom9NZXmVkAa/neIFjLSL1YZeAR7IMAQQ/uJ9849SuZaytYqyCaf2/Xe cDow4sx75crJEhpB3nibywliGbY1i5RzkZum0aNzLE9lj/GaKIInIq06o6iY9WbB B7uUgPpLDfMVXClHs4G6UdBUPVlvGpU9heYoo8V/bMyU0Tcw98UyGqH1aG86ZJja LocjSTcZcFDwxi0tcDnJhXhgp9GQKqTGhiiwsbe8ymfonxgo/dnTd1RduF/x5+Or Jo8MhCW9Wp1VNtWUk43l =E5Y2 -----END PGP SIGNATURE----- --bnUi9GzdSM4S/DMA-- From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 07:42:41 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 551AAAE1 for ; Fri, 3 May 2013 07:42:41 +0000 (UTC) (envelope-from rushilpaul@gmail.com) Received: from mail-lb0-f175.google.com (mail-lb0-f175.google.com [209.85.217.175]) by mx1.freebsd.org (Postfix) with ESMTP id DD4A11B9D for ; Fri, 3 May 2013 07:42:40 +0000 (UTC) Received: by mail-lb0-f175.google.com with SMTP id w20so1295954lbh.34 for ; Fri, 03 May 2013 00:42:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=LvgbArPPxwIFJ4RqB96Icd2mz2+UwtQuMEimWUCmO+s=; b=l2fbq8uJlzAlTOB83BKQoN9B3FYvtLJcgfel39mA54D4o3lXJXD9sjEGOnyQr87flD sYNA8AXdabtbCVmHKYlaMsnlO1SywHVF16ZylvDdEvzL1mMVnnYdTNVTaVyIrMi+I78L B5pDc9bZL9biJnFmHNSFh23WEM/HfI8SwBESWubAV4m97t4ve9RplHobYUNwGgwzyISQ nvEKMuRMqj5++R4vtelgAnJ4zKfoCRjw7gJzUEGdxactmBDtyehjKJ3XgH3ZK1AAFsD8 PTEj3a3R7AJUdsro+YP31XNSM+enwhTu43BF2brqNQswA8wlT29yLtCzcQO3azef0dxu 5eGA== MIME-Version: 1.0 X-Received: by 10.112.157.102 with SMTP id wl6mr3834091lbb.65.1367566954164; Fri, 03 May 2013 00:42:34 -0700 (PDT) Received: by 10.112.140.225 with HTTP; Fri, 3 May 2013 00:42:34 -0700 (PDT) Date: Fri, 3 May 2013 13:12:34 +0530 Message-ID: Subject: GSoC proposal review From: Rushil Paul To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 07:42:41 -0000 Hi, Can somebody review my proposal here and see if it can be further improved? http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/rushilpaul/12001 -- Regards, Rushil From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 08:17:23 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id BC0804CA for ; Fri, 3 May 2013 08:17:23 +0000 (UTC) (envelope-from justin.muniz@maine.edu) Received: from mail-la0-x22a.google.com (mail-la0-x22a.google.com [IPv6:2a00:1450:4010:c03::22a]) by mx1.freebsd.org (Postfix) with ESMTP id 4E3BE1D5E for ; Fri, 3 May 2013 08:17:22 +0000 (UTC) Received: by mail-la0-f42.google.com with SMTP id fq13so1308372lab.29 for ; Fri, 03 May 2013 01:17:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type:x-gm-message-state; bh=AlmQI+NLvfjX6cgEfRAw9mZfeHmQ80gKXKBYVWMgYBM=; b=Xgq/jeA3Gvs67IYWJ7dagzwD36dSMmD0vEB5RFsbzip/Hlify9h8dfqACFFqz3wLJx ThvRfK6rxIVdAzxbr7WRZUdRpMQxy9m2CQUNlPWCbNAyb6AKEf1oVDy52vahD8QqUx8v qs4LhWBQW4YFI9/hc6P3ROgTsO6vWS5KqsIx0JPNq6wNUglAAivpmBzOrZ1D3bK7AZG2 Za3s3+LDotyBOzSroTHG2sJ5f64pMA8SsjXOqdAw0tzYOKIuEAwGk9IlmPPO4v4DmcCX 4FUZVWJHYXRaGMelM4/gsX3tcdH1J8BsemdyRP3VesJUiq7/n4chd3Sc2pjuWekLPjdh MTKA== MIME-Version: 1.0 X-Received: by 10.112.5.137 with SMTP id s9mr3964697lbs.68.1367569041964; Fri, 03 May 2013 01:17:21 -0700 (PDT) Received: by 10.112.135.229 with HTTP; Fri, 3 May 2013 01:17:21 -0700 (PDT) Date: Fri, 3 May 2013 04:17:21 -0400 Message-ID: Subject: GSoC: PKGNG GUI Proposal Available for Review From: Justin Edward Muniz To: Eitan Adler , freebsd-hackers@freebsd.org, Kris Moore X-Gm-Message-State: ALoCoQn7l20eY9ziQmmaWCNy8hN0VWzOwhX8XYtpiH9doWij215mADy4bqR7Ql1ywObzG4CDIFk3 Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 08:17:23 -0000 Thank you everyone for helping me create a suitable project to propose. I have submitted a draft of my proposal, though I am still in the process of enhancing it. If anyone has the time, please check it out and I'll gladly accept any feedback. I am new to Google Summer of Code, and just discovered I could update my proposal after submitting it. Initially I uploaded most of the proposal but I am still finishing the last parts. Any advice could help me (or others) develop future proposals, so I hope to hear from people even after the deadline. My proposal can be read at the following address: https://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/justin_muniz/1 I appreciate you taking the time to read this email. Happy coding everyone. Justin Muniz From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 08:35:26 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 494C0ED2 for ; Fri, 3 May 2013 08:35:26 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [188.252.31.196]) by mx1.freebsd.org (Postfix) with ESMTP id CB00E1E94 for ; Fri, 3 May 2013 08:35:25 +0000 (UTC) Received: from wojtek.tensor.gdynia.pl (localhost [127.0.0.1]) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5) with ESMTP id r438ZGBV052994; Fri, 3 May 2013 10:35:16 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5/Submit) with ESMTP id r438ZG7R052991; Fri, 3 May 2013 10:35:16 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Fri, 3 May 2013 10:35:16 +0200 (CEST) From: Wojciech Puchar To: Amit Rawat Subject: Re: My GSOC proposal for review In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.7 (wojtek.tensor.gdynia.pl [127.0.0.1]); Fri, 03 May 2013 10:35:16 +0200 (CEST) Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 08:35:26 -0000 point c. is what i would like the most and is really the most important for NON embedded system. others for embedded ones. d. won't really cut much f. may not save much but slow things down i wish you a success. On Thu, 2 May 2013, Amit Rawat wrote: > Hi, > > I am attaching my gsoc proposal with this mail for review. If any body want > any extra thing in it they can mail. > > Thanks, > Amit Rawat > From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 08:45:34 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 34D991A9; Fri, 3 May 2013 08:45:34 +0000 (UTC) (envelope-from mikemandarine@gmail.com) Received: from mail-ve0-x229.google.com (mail-ve0-x229.google.com [IPv6:2607:f8b0:400c:c01::229]) by mx1.freebsd.org (Postfix) with ESMTP id DB6291F2B; Fri, 3 May 2013 08:45:33 +0000 (UTC) Received: by mail-ve0-f169.google.com with SMTP id jz10so1327692veb.0 for ; Fri, 03 May 2013 01:45:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=jyf1uahAs13IY97s7stcSDhProP1oNWjCys2DPsjidk=; b=rqE7Qt7beVT1nYA2lL3nPP0lPFgEXnl1sLdij5PQ+dd84XP+fK7IPj4tE0akEdJwsE V14WkwAML0RyjhI5DmauTwuBdQBDgiRXAlNEsfR5V1R+J74UQUMtHSU3SxAQOUbAsX0P TnaXvKnVqa0m74OLEfCi5Idh0XARDdQFzFcXId82HYd1S7bAD11lJpAPzpihTyFGU+GU 73Sp/xNl0DkMaDFITrMyTmxR40t7S/PLpbqyhQS+RFWsQeCi6YV4W7CTAR+OEY8RBtXu vj3u1XDhkG12dbH8SeNM4ZFSNNjFbQ/cNct/MXAyVOtvjpG72UCrKN8u3yUp4wbZecI9 eEpA== MIME-Version: 1.0 X-Received: by 10.220.164.81 with SMTP id d17mr3359915vcy.56.1367570733413; Fri, 03 May 2013 01:45:33 -0700 (PDT) Received: by 10.220.31.207 with HTTP; Fri, 3 May 2013 01:45:33 -0700 (PDT) Date: Fri, 3 May 2013 10:45:33 +0200 Message-ID: Subject: GSoC project proposal for review (Port GlusterFS to FreeBSD) From: Mike Ma To: Sean Bruno , "Kaleb S. KEITHLEY" , freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 08:45:34 -0000 Hi all, I'm planning to port GlusterFS as a GSoC project this year. And you can find the more information of the proposal here: http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/mikemandarine/26018 Any suggestions or comments are more than welcome. I'm looking forward to connect with anyone who's interested in this. Thanks a lot for your time . -- Cheers, Mike From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 08:55:52 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 5AC4C43F for ; Fri, 3 May 2013 08:55:52 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [188.252.31.196]) by mx1.freebsd.org (Postfix) with ESMTP id DA1611FCE for ; Fri, 3 May 2013 08:55:51 +0000 (UTC) Received: from wojtek.tensor.gdynia.pl (localhost [127.0.0.1]) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5) with ESMTP id r438X3wD052985; Fri, 3 May 2013 10:33:03 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5/Submit) with ESMTP id r438X2VT052982; Fri, 3 May 2013 10:33:02 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Fri, 3 May 2013 10:33:02 +0200 (CEST) From: Wojciech Puchar To: Justin Edward Muniz Subject: Re: GSoC: PKGNG GUI Proposal Available for Review In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.7 (wojtek.tensor.gdynia.pl [127.0.0.1]); Fri, 03 May 2013 10:33:03 +0200 (CEST) Cc: Eitan Adler , Kris Moore , freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 08:55:52 -0000 good for today and future ladmins that cannot type a command. Any USEFUL proposals that add some real functionality? On Fri, 3 May 2013, Justin Edward Muniz wrote: > Thank you everyone for helping me create a suitable project to propose. I > have submitted a draft of my proposal, though I am still in the process of > enhancing it. If anyone has the time, please check it out and I'll gladly > accept any feedback. > > I am new to Google Summer of Code, and just discovered I could update my > proposal after submitting it. Initially I uploaded most of the proposal but > I am still finishing the last parts. Any advice could help me (or others) > develop future proposals, so I hope to hear from people even after the > deadline. > > My proposal can be read at the following address: > https://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/justin_muniz/1 > > I appreciate you taking the time to read this email. Happy coding everyone. > > Justin Muniz > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > > From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 13:53:18 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 83F6BA4F for ; Fri, 3 May 2013 13:53:18 +0000 (UTC) (envelope-from florent@peterschmitt.fr) Received: from peterschmitt.fr (peterschmitt.fr [5.135.177.31]) by mx1.freebsd.org (Postfix) with ESMTP id 4FBA811C1 for ; Fri, 3 May 2013 13:53:18 +0000 (UTC) Received: from [172.29.180.39] (unknown [194.214.114.46]) by peterschmitt.fr (Postfix) with ESMTPSA id 0CDEC726B for ; Fri, 3 May 2013 13:53:15 +0000 (UTC) Message-ID: <5183C169.4060907@peterschmitt.fr> Date: Fri, 03 May 2013 15:53:45 +0200 From: Florent Peterschmitt User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130413 Icedove/17.0.5 MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Subject: Linux/Cdorked.A and the tool provided by welivesecurity X-Enigmail-Version: 1.5.1 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="----enig2VAUMEAIMKBQXFAVMLFWC" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: florent+FreeBSD-hackers@peterschmitt.fr List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 13:53:18 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2VAUMEAIMKBQXFAVMLFWC Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, I read a news about a malware called Linux/Cdorked.A : http://www.welivesecurity.com/2013/04/26/linuxcdorked-new-apache-backdoor= -in-the-wild-serves-blackhole/ They give a tool to know if our system is infected or not. Well, I have two questions : * Is this malware relevant on FreeBSD/*BSD systems ? * The tool don't work out-of-the-box, what do you think of : --- dump_cdorked_config.c 2013-05-03 09:48:59.000000000 +0000 +++ dump_cdorked_config-freebsd.c 2013-05-03 12:03:45.851681457 +00= 00 @@ -6,12 +6,13 @@ // would like to help, please send the httpd_cdorked_config.bin // and your httpd executable to our lab for analysis. Thanks! // -// Build with gcc -o dump_cdorked_config dump_cdorked_config.c +// Build with gcc -D_KERNEL -o dump_cdorked_config dump_cdorked_config.c= // // Marc-Etienne M.L=E9veill=E9 // #include +#include #include #define CDORKED_SHM_SIZE (6118512) I never developed any peace of code for FreeBSD, then what I'm not sure of is the use of -D_KERNEL on the build command line. Since shm_info struct is available only with this define and u_long and others used by sys/shm.h are in sys/types.h, I found it's a good way to d= o. I would like to know too, why does these structs (shm_info) are available only when using _KERNEL ? ------enig2VAUMEAIMKBQXFAVMLFWC Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Icedove - http://www.enigmail.net/ iQEcBAEBAgAGBQJRg8FtAAoJEMtO2Sol0IImcEIIAIf8+K5who4s+/chRxS0e/4+ +yDBsVB7kGgXdAbh7wdvybP9aGBpzfnrIfwUYQyYbeTZttotvmrXQMqYXvtPQCnT /41y04CbBxChki1r0+jAR2MvyrKXE2NKNlMz4ww2YIiJaF0zlELTWtOsbLqVgI75 sZhPVMuNNO3xFQnVRodlAfRPdIuZw1BsjH+NudY2c7t/23/edFLuEVyp2Sf8ooEb TJpxaaSR2FulnVVCJG50xZjH8onNA+82YtK9AgMl4ML0oQ9uOMP/IZw5I47jomW8 Mpaf3Xnu5Hh7ddIywhAo4YpKPHqSZeXIqlXwV4KQXUDd0mwhLxA8wUw11Wo4EK0= =ew9I -----END PGP SIGNATURE----- ------enig2VAUMEAIMKBQXFAVMLFWC-- From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 14:51:23 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 140A7C3; Fri, 3 May 2013 14:51:23 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) by mx1.freebsd.org (Postfix) with ESMTP id C017F15A8; Fri, 3 May 2013 14:51:22 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.16]) by ltcfislmsgpa04.fnfis.com (8.14.5/8.14.5) with ESMTP id r43Eoue4013157 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Fri, 3 May 2013 09:51:14 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([10.132.99.23]) by LTCFISWMSGHT05.FNFIS.com ([10.132.206.16]) with mapi id 14.02.0309.002; Fri, 3 May 2013 09:51:04 -0500 From: "Teske, Devin" To: Wojciech Puchar Subject: Re: GSoC: PKGNG GUI Proposal Available for Review Thread-Topic: GSoC: PKGNG GUI Proposal Available for Review Thread-Index: AQHOR9ao6PCABMS5d0WHV3LZuNj2SZjzdcoAgABpnoA= Date: Fri, 3 May 2013 14:51:03 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D7201F35010@ltcfiswmsgmb21> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.126] MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8626, 1.0.431, 0.0.0000 definitions=2013-05-03_05:2013-05-03,2013-05-03,1970-01-01 signatures=0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: Eitan Adler , Devin Teske , Justin Edward Muniz , FreeBSD Hackers , Kris Moore X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 14:51:23 -0000 On May 3, 2013, at 1:33 AM, Wojciech Puchar wrote: good for today and future ladmins that cannot type a command. Any USEFUL proposals that add some real functionality? WIth great respect, I disagree with the dismissal that a GUI itself cannot = bring value that a command-line tool couldn't otherwise bring to the table. For example, in a stateful modal dialog, I believe that part of the value-a= dd is seeing realtime calculations being performed based on user input. For= a concrete example, imagine as you are checking/unchecking boxes of what t= o install, if the GUI continually keeps up-to-date a display of selected de= pendencies (packages and leaves), then that is something that on the comman= d-line tool is more difficult. What is the value-add in that you may say? Exploring, of course! Imagine th= at you have a need to fill, you go into a particular package category, and = are faced with 5 things that all fill the same basic need -- but perhaps al= l but one has a massive runtime dependency list, so you choose that one. In= this example, the GUI is far superior to command-line tools. I'm actually taking the same approach in the design of "bsdconfig packages"= (visible here: http://twitpic.com/ci2rid ) in that the TUI based managemen= t will aim to give you all that extra value-added information that would ot= herwise take multiple command-line queries and extra effort to correlate. I argue that the goal should not be to develop tools that are useful for (a= s you call them) "ladmins" =85 but develop tools that the developers themse= lves find useful. I personally feel that I myself have failed as a developer if I ever develo= p a tool that I don't use myself (or at least find useful in replacing an o= ld way of doing something that is much more difficult). -- Devin P.S. I'm sorry=85 but that callous remark sparked a fire in me. Had to set = the record straight=85 we need to give this student a running chance -- don= 't dare say this won't be useful (I've read the project proposal=85 it's go= od and it has bapt's +1 iirc, so that makes it good as gold basically) On Fri, 3 May 2013, Justin Edward Muniz wrote: Thank you everyone for helping me create a suitable project to propose. I have submitted a draft of my proposal, though I am still in the process of enhancing it. If anyone has the time, please check it out and I'll gladly accept any feedback. I am new to Google Summer of Code, and just discovered I could update my proposal after submitting it. Initially I uploaded most of the proposal but I am still finishing the last parts. Any advice could help me (or others) develop future proposals, so I hope to hear from people even after the deadline. My proposal can be read at the following address: https://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/justin_= muniz/1 I appreciate you taking the time to read this email. Happy coding everyone. Justin Muniz _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 13:57:56 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 0E4C4DDB for ; Fri, 3 May 2013 13:57:56 +0000 (UTC) (envelope-from kris@pcbsd.org) Received: from mail.iXsystems.com (newknight.ixsystems.com [206.40.55.70]) by mx1.freebsd.org (Postfix) with ESMTP id E700F120F for ; Fri, 3 May 2013 13:57:55 +0000 (UTC) Received: from localhost (mail.ixsystems.com [10.2.55.1]) by mail.iXsystems.com (Postfix) with ESMTP id 78008F365; Fri, 3 May 2013 06:57:49 -0700 (PDT) Received: from mail.iXsystems.com ([10.2.55.1]) by localhost (mail.ixsystems.com [10.2.55.1]) (maiad, port 10024) with ESMTP id 37080-09; Fri, 3 May 2013 06:57:49 -0700 (PDT) Received: from [192.168.0.51] (75-130-56-30.static.kgpt.tn.charter.com [75.130.56.30]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.iXsystems.com (Postfix) with ESMTPSA id 4C7E4F360; Fri, 3 May 2013 06:57:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ixsystems.com; s=newknight0; t=1367589469; bh=flh1i3/6KChOlhRe+HyIDXlXqkExAVCLA7ZbbTJFRj8=; h=Date:From:To:CC:Subject:References:In-Reply-To; b=Q+rWQ/dUbD1ji0cfT28VP075TrIU4WLwiGhJXfOTDQtEJAqvUhoVWpbzspLJWe3UV fY3FtRyX4+zQmxuFC8ET2BWUux17kiE82TEJu+JM7I0WB9WqplvjjkoR2rPO4teq1L Kv83ChkJgM9RrIlxFmSGjGHHJ8AubE9Dkt4jJcdg= Message-ID: <5183C25A.7020908@pcbsd.org> Date: Fri, 03 May 2013 09:57:46 -0400 From: Kris Moore User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130407 Thunderbird/17.0.5 MIME-Version: 1.0 To: Wojciech Puchar Subject: Re: GSoC: PKGNG GUI Proposal Available for Review References: In-Reply-To: X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Fri, 03 May 2013 15:33:04 +0000 Cc: Eitan Adler , Justin Edward Muniz , freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 13:57:56 -0000 On 05/03/2013 04:33, Wojciech Puchar wrote: > good for today and future ladmins that cannot type a command. > > Any USEFUL proposals that add some real functionality? > Since this will enable more people to run FreeBSD that otherwise wouldn't give it a second glance, I would say it is VERY useful. Not everybody is born with innate knowledge of the command-line, sometimes you have to give users tools which are intuitive before they can get into the nitty gritty. (I.E. most people learn to drive a car and don't have the time or desire to rebuild an engine) > On Fri, 3 May 2013, Justin Edward Muniz wrote: > >> Thank you everyone for helping me create a suitable project to >> propose. I >> have submitted a draft of my proposal, though I am still in the >> process of >> enhancing it. If anyone has the time, please check it out and I'll >> gladly >> accept any feedback. >> >> I am new to Google Summer of Code, and just discovered I could update my >> proposal after submitting it. Initially I uploaded most of the >> proposal but >> I am still finishing the last parts. Any advice could help me (or >> others) >> develop future proposals, so I hope to hear from people even after the >> deadline. >> >> My proposal can be read at the following address: >> https://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/justin_muniz/1 >> >> >> I appreciate you taking the time to read this email. Happy coding >> everyone. >> >> Justin Muniz >> _______________________________________________ >> freebsd-hackers@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >> To unsubscribe, send any mail to >> "freebsd-hackers-unsubscribe@freebsd.org" >> >> -- Kris Moore PC-BSD Software iXsystems From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 17:51:56 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id EE09C693 for ; Fri, 3 May 2013 17:51:56 +0000 (UTC) (envelope-from mattjeet@gmail.com) Received: from mail-wg0-x22e.google.com (mail-wg0-x22e.google.com [IPv6:2a00:1450:400c:c00::22e]) by mx1.freebsd.org (Postfix) with ESMTP id 889951618 for ; Fri, 3 May 2013 17:51:56 +0000 (UTC) Received: by mail-wg0-f46.google.com with SMTP id n12so1814920wgh.1 for ; Fri, 03 May 2013 10:51:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=SiBRI0jDTJbpmrgRVKHgosu6/KtQuIIzpLWnmJD4aT4=; b=cbBHBQiau/dSIcm6uQSkubNnw6wOZv754Q0ne3KuUXlPJR4xxseII2bbNcg11wbM7b hDktB5752FPOKI2cxRoFC4UGIvSqL830Pvx92fvcZ1jxm7BionxchAxeSFgQPnFWYjAS xoBjPYuxckppCSD61GC0sEciJMSFBfAtrLCaGRR9T5hL+yhJUU6oc3G7FnkTn1gs/ZiP T/mUuI87qbiTiVB/djyO0060SYtCRtf7JaoGMBXL6LEtlVJtq/OFG65bdeuzNvceIKnt Y2s8MVlrA6tRMDm7POgJWgNuNDkH35HND8BWoiLds6s9iXjlnBOf8IKCYLSFUsqXs9al cyLQ== MIME-Version: 1.0 X-Received: by 10.180.79.69 with SMTP id h5mr41547652wix.14.1367603515682; Fri, 03 May 2013 10:51:55 -0700 (PDT) Sender: mattjeet@gmail.com Received: by 10.194.173.73 with HTTP; Fri, 3 May 2013 10:51:55 -0700 (PDT) In-Reply-To: <5183C25A.7020908@pcbsd.org> References: <5183C25A.7020908@pcbsd.org> Date: Fri, 3 May 2013 10:51:55 -0700 X-Google-Sender-Auth: bSm-qux2eR52Vyw4CXQRW1wpKRM Message-ID: Subject: Re: GSoC: PKGNG GUI Proposal Available for Review From: Matt Olander To: Kris Moore Content-Type: text/plain; charset=ISO-8859-1 Cc: Wojciech Puchar , Justin Edward Muniz , freebsd-hackers@freebsd.org, Eitan Adler X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: matt@ixsystems.com List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 17:51:57 -0000 On Fri, May 3, 2013 at 6:57 AM, Kris Moore wrote: > On 05/03/2013 04:33, Wojciech Puchar wrote: >> good for today and future ladmins that cannot type a command. >> >> Any USEFUL proposals that add some real functionality? >> > > Since this will enable more people to run FreeBSD that otherwise > wouldn't give it a second glance, I would say it is VERY useful. Not > everybody is born with innate knowledge of the command-line, sometimes > you have to give users tools which are intuitive before they can get > into the nitty gritty. (I.E. most people learn to drive a car and don't > have the time or desire to rebuild an engine) > >> On Fri, 3 May 2013, Justin Edward Muniz wrote: >> >>> Thank you everyone for helping me create a suitable project to >>> propose. I >>> have submitted a draft of my proposal, though I am still in the >>> process of >>> enhancing it. If anyone has the time, please check it out and I'll >>> gladly >>> accept any feedback. >>> >>> I am new to Google Summer of Code, and just discovered I could update my >>> proposal after submitting it. Initially I uploaded most of the >>> proposal but >>> I am still finishing the last parts. Any advice could help me (or >>> others) >>> develop future proposals, so I hope to hear from people even after the >>> deadline. >>> >>> My proposal can be read at the following address: >>> https://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/justin_muniz/1 >>> >>> >>> I appreciate you taking the time to read this email. Happy coding >>> everyone. Great proposal, Justin! I look forward to seeing your work ;) Cheers, -matt From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 18:00:33 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id ED6E5CC5 for ; Fri, 3 May 2013 18:00:33 +0000 (UTC) (envelope-from justin.muniz@maine.edu) Received: from mail-la0-x230.google.com (mail-la0-x230.google.com [IPv6:2a00:1450:4010:c03::230]) by mx1.freebsd.org (Postfix) with ESMTP id 7642617BC for ; Fri, 3 May 2013 18:00:33 +0000 (UTC) Received: by mail-la0-f48.google.com with SMTP id eg20so1722695lab.7 for ; Fri, 03 May 2013 11:00:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type:x-gm-message-state; bh=uHz32HAtWD5TMWi3OnScNEN2deI1EcUX+0jGPeC2Gqk=; b=U1h0LQT3ZPp26bk+kElRz8b3vwiJSR3rdmxi5nKuLF99NTS83ggQ/L4MzjjTim+ojl MJpYZCJavB89Bm2+VtRFrGJ5Gs7+mzWGABnKrbunv2tg8vNgCtKgaQAwskwLFoyU/fgk VHlUFFuukGlV8E4zc5Sn43kFz6GDDzef5875xvxKHLyS4A/SAZF+bDzGW4LKZaNzoaNC 3pQl29loCS3ZLcNtbg0CsXxQuIujzHFXeQ/C4hU9HA1xdZ8bprMJmPAZNQNXBiOTNS7m LGfQcEbnC2KNhIPFjTNM91R23cGUHP0mpTPIosfjo0PdSaiAyXu4lS78NlQJEd0QbqDn cgxg== MIME-Version: 1.0 X-Received: by 10.152.5.2 with SMTP id o2mr4566703lao.31.1367604032243; Fri, 03 May 2013 11:00:32 -0700 (PDT) Received: by 10.112.135.229 with HTTP; Fri, 3 May 2013 11:00:32 -0700 (PDT) In-Reply-To: References: <5183C25A.7020908@pcbsd.org> Date: Fri, 3 May 2013 14:00:32 -0400 Message-ID: Subject: Re: GSoC: PKGNG GUI Proposal Available for Review From: Justin Edward Muniz To: matt@ixsystems.com, freebsd-hackers@freebsd.org, Kris Moore , Eitan Adler X-Gm-Message-State: ALoCoQnByV8lfwCsS6YTp1DBVFvSD2fDdFElvdvglToGL2R3onPtZxhcvFbWEFQiU6fccR54M7B7 Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 18:00:34 -0000 On Fri, May 3, 2013 at 1:51 PM, Matt Olander wrote: > > Great proposal, Justin! I look forward to seeing your work ;) > > Cheers, > -matt > Thank you very much for your support, Matt! As soon as I start committing code, I will share a link to my repository on this mailing-list. Justin Muniz From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 19:01:11 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 6CEA7B98 for ; Fri, 3 May 2013 19:01:11 +0000 (UTC) (envelope-from dieterbsd@gmail.com) Received: from mail-ie0-x22a.google.com (mail-ie0-x22a.google.com [IPv6:2607:f8b0:4001:c03::22a]) by mx1.freebsd.org (Postfix) with ESMTP id 473F41E35 for ; Fri, 3 May 2013 19:01:11 +0000 (UTC) Received: by mail-ie0-f170.google.com with SMTP id aq17so2239730iec.29 for ; Fri, 03 May 2013 12:01:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=MfChLLHwplTvilIKFUKneOqcFepJflN0EfDRh+xeqNM=; b=sP2MZAR4oE7I7tpnfiBm4ZG/aeG1FAfc5P2RfRyW46KoZMixgePQRDsxogb9I15FDA WgqRqjIPeNtNYK2cSf3suuGFn0fqxj1bfrexY2QsFk9HBKnMKABCD2PBZ//HjlA6wmEb Absb9vlWvTl4uqQkz7bNSQqN15/dIK+VGsv0p9QbYR/0pt7MqxjkKR1IPZccvSnDK1Aa j8vXh61U3jJQy0HM84lb1479syRdHbs+bhkcS4PWc/+/atnNaEUTfzC3mFiA6PGufO0W X19ndvYZhNsVpEr9SNb4Osu8cNo6omledJSd5N4Pihfo7zdxNMSp8zcGwPGnyoBYCO+r mQ8Q== MIME-Version: 1.0 X-Received: by 10.50.66.162 with SMTP id g2mr17163091igt.84.1367607670933; Fri, 03 May 2013 12:01:10 -0700 (PDT) Received: by 10.64.7.211 with HTTP; Fri, 3 May 2013 12:01:10 -0700 (PDT) Date: Fri, 3 May 2013 12:01:10 -0700 Message-ID: Subject: ladmins that cannot type a command From: Dieter BSD To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 19:01:11 -0000 >> good for today and future ladmins that cannot type a command. >> >> Any USEFUL proposals that add some real functionality? > > Since this will enable more people to run FreeBSD that otherwise > wouldn't give it a second glance, I would say it is VERY useful. Really? How useful is FreeBSD going to be to someone who cannot type? Who is the target here? Idiots? People without fingers? I see lots of chatter about adding new stuff, much of which is ... rather questionable. Meanwhile many of the features FreeBSD already has are broken. No shortage of PRs that need fixing. Many of these PRs have been sitting around, unloved, for *years*. Some of them even contain patches (that *work*)! If you're building a race car, make sure the engine runs before spending your time polishing the wheels. From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 19:32:00 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id CEBD056D for ; Fri, 3 May 2013 19:32:00 +0000 (UTC) (envelope-from rank1seeker@gmail.com) Received: from mail-ee0-f42.google.com (mail-ee0-f42.google.com [74.125.83.42]) by mx1.freebsd.org (Postfix) with ESMTP id 6A62B1F82 for ; Fri, 3 May 2013 19:32:00 +0000 (UTC) Received: by mail-ee0-f42.google.com with SMTP id c13so902648eek.15 for ; Fri, 03 May 2013 12:31:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:message-id:from:to:subject:date:x-mailer; bh=M/TqVHNpeHztFu+YE2koBDJdKoghu+mHSbKZs/vkpac=; b=girVDouJL6or0NArtvz+R9ZgmORet55SY2E/5K7hUEHM9qhGdKRWDFU8McbCLwYUA/ TOCnUTAmgzsHkUgVBXQPy1lpCAdTpLBUMUPhIbQbXUGJ2xSLUk9hMPkcSw2gfCgyXQ+U uHP3kPYqkFHLre0Pv7bEBJhJ/CXLTUTIDqg1AFyUoC3MYzg+hp8CzwZA9NusCntDIpxZ fBfhFGvzfDnAnP+rJvwxWEB/F9APqQTDEvTWTmabSI15bOXOfajDtYroJGGrT7bsZ9Fy UoOoslxTCh783psNY0HzX0ugiEQNmZxpxL/jtoUtTSAObVweYRJf/MTwohO8XLo2hVzh qWdw== X-Received: by 10.14.115.131 with SMTP id e3mr34282332eeh.43.1367609519332; Fri, 03 May 2013 12:31:59 -0700 (PDT) Received: from DOMYPC ([82.193.208.225]) by mx.google.com with ESMTPSA id bn53sm17732244eeb.7.2013.05.03.12.31.57 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 03 May 2013 12:31:58 -0700 (PDT) Message-ID: <20130503.193155.845.4@DOMY-PC> From: rank1seeker@gmail.com To: hackers@freebsd.org Subject: net/udpxy occasional stream issuses Date: Fri, 03 May 2013 21:31:55 +0200 X-Mailer: POP Peeper (3.8.1.0) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 19:32:00 -0000 I have udpxy-1.0.23 running for over 2 months now. Under 9.1-p3, it's streams over WiFI local net, occasionally hang or start skipping with static squares appearing ... Anyone tuned "something" to fix this? Bandwith of local WiFi net, is more than double sufficient. # /usr/local/sbin/udpxy -p 56089 -S -a wlan0 -m em0 -c 4 -B 2Mb -l /var/log/udpxy.log -H3 # cat /var/log/udpxy.log ------------------------ 2013-05-03 21:26:00.003827 CEST S(1769) No children exited since last check 2013-05-03 21:26:00.003883 CEST S(1769) Got 1 requests 2013-05-03 21:26:00.003901 CEST S(1769) Received TSTAT={ sender=[2390], bytes=[1316000.000000], seconds=[3.000000] } 2013-05-03 21:26:00.003922 CEST S(1769) Updated context for pid=[2390]; [428.4] Kb/sec 2013-05-03 21:26:00.003942 CEST S(1769) Waiting for input from [2] fd's, with timeout 2013-05-03 21:26:00.003955 CEST S(1769) select() timeout set to [30] seconds 2013-05-03 21:26:00.511501 CEST S(1769) No children exited since last check 2013-05-03 21:26:00.511558 CEST S(1769) Got 1 requests 2013-05-03 21:26:00.511577 CEST S(1769) Received TSTAT={ sender=[2405], bytes=[1316000.000000], seconds=[3.000000] } 2013-05-03 21:26:00.511597 CEST S(1769) Updated context for pid=[2405]; [428.4] Kb/sec 2013-05-03 21:26:00.511612 CEST S(1769) Waiting for input from [2] fd's, with timeout 2013-05-03 21:26:00.511625 CEST S(1769) select() timeout set to [30] seconds 2013-05-03 21:26:02.098885 CEST S(1769) No children exited since last check 2013-05-03 21:26:02.098942 CEST S(1769) Got 1 requests 2013-05-03 21:26:02.098961 CEST S(1769) Received TSTAT={ sender=[2390], bytes=[1316000.000000], seconds=[2.000000] } 2013-05-03 21:26:02.098982 CEST S(1769) Updated context for pid=[2390]; [642.6] Kb/sec 2013-05-03 21:26:02.098997 CEST S(1769) Waiting for input from [2] fd's, with timeout 2013-05-03 21:26:02.099009 CEST S(1769) select() timeout set to [30] seconds ------------------------ Shows nothing unusual, just repeating entries ... Domagoj From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 20:10:35 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id E7B1F26D for ; Fri, 3 May 2013 20:10:35 +0000 (UTC) (envelope-from yuri@rawbw.com) Received: from shell0.rawbw.com (shell0.rawbw.com [198.144.192.45]) by mx1.freebsd.org (Postfix) with ESMTP id BC6131156 for ; Fri, 3 May 2013 20:10:35 +0000 (UTC) Received: from eagle.yuri.org (stunnel@localhost [127.0.0.1]) (authenticated bits=0) by shell0.rawbw.com (8.14.4/8.14.4) with ESMTP id r43KAT5j044283 for ; Fri, 3 May 2013 13:10:29 -0700 (PDT) (envelope-from yuri@rawbw.com) Message-ID: <518419B5.4000602@rawbw.com> Date: Fri, 03 May 2013 13:10:29 -0700 From: Yuri User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130327 Thunderbird/17.0.4 MIME-Version: 1.0 To: FreeBSD Hackers Subject: What is the correct way to declare assembler global variable ? Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 20:10:36 -0000 I am trying to compile this code fragment into my program (taken from lib/libc/amd64/sys/sbrk.S): void my_func() { ... __asm__ __volatile__( "movq .curbrk(%%rip), %%rax;" "lea .curbrk(%%rip), %%rdx;" "movq %%rax, %0;" "movq %%rdx, %1;" : "=r" (my_curbrk), "=r" (my_curbrk_ptr) :: "%rax", "%rdx"); ... } I get a warning: /usr/bin/ld: warning: type and size of dynamic symbol `.curbrk@@FBSDprivate_1.0' are not defined What is the correct way to declare .curbrk in in-place assembly? Yuri From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 20:30:24 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id DE22EAF0 for ; Fri, 3 May 2013 20:30:24 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 56EDD1253 for ; Fri, 3 May 2013 20:30:24 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.7/8.14.7) with ESMTP id r43KUKCl098889; Fri, 3 May 2013 23:30:20 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.8.2 kib.kiev.ua r43KUKCl098889 Received: (from kostik@localhost) by tom.home (8.14.7/8.14.7/Submit) id r43KUKqf098887; Fri, 3 May 2013 23:30:20 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 3 May 2013 23:30:20 +0300 From: Konstantin Belousov To: Yuri Subject: Re: What is the correct way to declare assembler global variable ? Message-ID: <20130503203020.GR3047@kib.kiev.ua> References: <518419B5.4000602@rawbw.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="P9SDCAjI7+EA+Yxm" Content-Disposition: inline In-Reply-To: <518419B5.4000602@rawbw.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: FreeBSD Hackers X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 20:30:24 -0000 --P9SDCAjI7+EA+Yxm Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, May 03, 2013 at 01:10:29PM -0700, Yuri wrote: > I am trying to compile this code fragment into my program (taken from=20 > lib/libc/amd64/sys/sbrk.S): > void my_func() { > ... > __asm__ __volatile__( > "movq .curbrk(%%rip), %%rax;" > "lea .curbrk(%%rip), %%rdx;" > "movq %%rax, %0;" > "movq %%rdx, %1;" > : "=3Dr" (my_curbrk), > "=3Dr" (my_curbrk_ptr) > :: "%rax", "%rdx"); > ... > } >=20 > I get a warning: > /usr/bin/ld: warning: type and size of dynamic symbol=20 > `.curbrk@@FBSDprivate_1.0' are not defined >=20 > What is the correct way to declare .curbrk in in-place assembly? Formal answer is for you to read about the .type directive in the GNU as manual. Also, you need to read about either common symbols, or about the .size directive. But, note that you cannot access hidden libc symbols from the code which links to libc (dynamically). You probably need to re-consider higher-level approach to your issue. --P9SDCAjI7+EA+Yxm Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQIcBAEBAgAGBQJRhB5bAAoJEJDCuSvBvK1BoskQAIfFweH431RG4kmVPemM0LMS XI4oi4lPok/0icWi0BP11a9JsWXnzeBgEBV1Hm2dXNyDEmOI7DMEmkuy7+7qPRph 0tD/Tcs6Atm6cEnsFB6eSc/b5aZWlNBYgYyFZdS8CTyrmKh7hVSxQkMFBzmtDgHW MZxZj/wMelSy3b0t6DojpHPp39tFBc01jdZqeiEL+yNo4qRbR6uZumy3AiSbmPAS m4am1NV+E27AQDa5yPdog0pjm0NRBC0SYbs5nm/lm3v7s5q48ogcnoPn34JwDtaX E5yMCf9/I+R5PdCbkaIrpUokXPt3EUNfrv33SUSeq9SBaVLy4lEjuoGqq8JZe17V WHXtHr33NL8KMzvotNefE965RM8UTN57BAOrrCfOsdVj7uTUlvI7Zzkmzk+FQrdM p3dPRu/RPhn+JuC7pzH3PZyqjev9q/C8Wnsftxudh5d77GN8kfhY3zO/E3aO29CN fct6PdBeGXcfUrOEHTZOj2aF9RVYcOm6BzoXMMo9naWOHrLPFMlfuxNKxTFBPR02 V3/mIqrgeHeXEjvCjzmVnHcJWJuZwUkr+Br/NoAvnznUm7ooo8vyiY92zkb61efp CNhWpQmkDlKCgq5olkQzxkDIUuumYoD87jvPHaPoSlv0T5Lz78HeYfGDzLprNr5J rhP2ssX781Rm/r+C1n7P =wGld -----END PGP SIGNATURE----- --P9SDCAjI7+EA+Yxm-- From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 21:33:30 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 684DA4CB for ; Fri, 3 May 2013 21:33:30 +0000 (UTC) (envelope-from fernando.apesteguia@gmail.com) Received: from mail-we0-x229.google.com (mail-we0-x229.google.com [IPv6:2a00:1450:400c:c03::229]) by mx1.freebsd.org (Postfix) with ESMTP id F3498162E for ; Fri, 3 May 2013 21:33:29 +0000 (UTC) Received: by mail-we0-f169.google.com with SMTP id x51so1740152wey.28 for ; Fri, 03 May 2013 14:33:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=udTTQoLjer59MQCBMfVWMDxzLIcBskyvN5MXsWFkP5Q=; b=Bl8OxYrhCX/w+H3GELkTpkMW+6JvrnosnozX9Qf2TxJfEqjcoSUNH19vY+rIQ+g78w TQMuPOTqYsbW/BI/C0XNhQLzrdLNBLqD8p8GOWXAitGtYdazcIjDRlRu3EYdBr2ClDZY 6sFQMo5K9HEV/xnodd1GPLo6AiMUCzrsaEBsaxe0NP74qIHgb40AiyPsmUlF43XNx/2K X/RHHqLc7hGG/GvhWRO3YQqn9onXI9rQrAFRd3HYMoltfPyozvlIHSknVzoshd0jbaZx maaGwbmWoA0+aqOpK6dH5M1OqswkL4vJZLTHaYLgNgcFsrvVVxMCL1pYsl/7zu6s4xOS TXJw== MIME-Version: 1.0 X-Received: by 10.194.61.237 with SMTP id t13mr16233873wjr.2.1367616809067; Fri, 03 May 2013 14:33:29 -0700 (PDT) Received: by 10.180.100.130 with HTTP; Fri, 3 May 2013 14:33:28 -0700 (PDT) Received: by 10.180.100.130 with HTTP; Fri, 3 May 2013 14:33:28 -0700 (PDT) In-Reply-To: References: <5183C25A.7020908@pcbsd.org> Date: Fri, 3 May 2013 23:33:28 +0200 Message-ID: Subject: Re: GSoC: PKGNG GUI Proposal Available for Review From: =?ISO-8859-1?Q?Fernando_Apestegu=EDa?= To: Justin Edward Muniz Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: Eitan Adler , matt@ixsystems.com, freebsd-hackers@freebsd.org, Kris Moore X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 21:33:30 -0000 El 03/05/2013 20:00, "Justin Edward Muniz" escribi=F3: > > On Fri, May 3, 2013 at 1:51 PM, Matt Olander wrote: > > > > > Great proposal, Justin! I look forward to seeing your work ;) > > > > Cheers, > > -matt > > > > Thank you very much for your support, Matt! > > As soon as I start committing code, I will share a link to my repository on > this mailing-list. I wish you the best of luck. I'm also happy to see you will use packagekit as a frontend. No need to reinvent the wheel. > > Justin Muniz > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org= " From owner-freebsd-hackers@FreeBSD.ORG Fri May 3 22:26:38 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 641404B1 for ; Fri, 3 May 2013 22:26:38 +0000 (UTC) (envelope-from yuri@rawbw.com) Received: from shell0.rawbw.com (shell0.rawbw.com [198.144.192.45]) by mx1.freebsd.org (Postfix) with ESMTP id 3B2541865 for ; Fri, 3 May 2013 22:26:37 +0000 (UTC) Received: from eagle.yuri.org (stunnel@localhost [127.0.0.1]) (authenticated bits=0) by shell0.rawbw.com (8.14.4/8.14.4) with ESMTP id r43MQapB082409; Fri, 3 May 2013 15:26:36 -0700 (PDT) (envelope-from yuri@rawbw.com) Message-ID: <5184399C.9000805@rawbw.com> Date: Fri, 03 May 2013 15:26:36 -0700 From: Yuri User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130327 Thunderbird/17.0.4 MIME-Version: 1.0 To: Konstantin Belousov Subject: Re: What is the correct way to declare assembler global variable ? References: <518419B5.4000602@rawbw.com> <20130503203020.GR3047@kib.kiev.ua> In-Reply-To: <20130503203020.GR3047@kib.kiev.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: FreeBSD Hackers X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 May 2013 22:26:38 -0000 On 05/03/2013 13:30, Konstantin Belousov wrote: > Formal answer is for you to read about the .type directive in the GNU > as manual. Also, you need to read about either common symbols, or about > the .size directive. > > But, note that you cannot access hidden libc symbols from the code which > links to libc (dynamically). You probably need to re-consider higher-level > approach to your issue. > I didn't write this code. This is google-perftools-2.0 I am trying to port. They added the procedure do_sbrk there (see below), that attempts to emulate what libc is doing for sbrk. It fails, they probably didn't test it. The idea is that they need to have hooks before and after sbrk call. I am not sure what the best approach would be here? How can the memory allocation library override sbrk in libc and still be able to attach to the original libc version of sbrk? On Linux there is another symbol __sbrk, and they just use it to conenct to the original sbrk. But there is no such thing of FreeBSD. Yuri static inline void* do_sbrk(intptr_t increment) { void* curbrk = 0; #if defined(__x86_64__) || defined(__amd64__) # ifdef PIC __asm__ __volatile__( "movq .curbrk@GOTPCREL(%%rip), %%rdx;" "movq (%%rdx), %%rax;" "movq %%rax, %0;" : "=r" (curbrk) :: "%rdx", "%rax"); # else __asm__ __volatile__( "movq .curbrk(%%rip), %%rax;" "movq %%rax, %0;" : "=r" (curbrk) :: "%rax"); # endif #else __asm__ __volatile__( "movl .curbrk, %%eax;" "movl %%eax, %0;" : "=r" (curbrk) :: "%eax"); #endif if (increment == 0) { return curbrk; } char* prevbrk = static_cast(curbrk); void* newbrk = prevbrk + increment; if (brk(newbrk) == -1) { return reinterpret_cast(static_cast(-1)); } return prevbrk; } extern "C" void* sbrk(intptr_t increment) __THROW { MallocHook::InvokePreSbrkHook(increment); void *result = do_sbrk(increment); MallocHook::InvokeSbrkHook(result, increment); return result; } From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 06:23:19 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 604465E2 for ; Sat, 4 May 2013 06:23:19 +0000 (UTC) (envelope-from utisoft@gmail.com) Received: from mail-ia0-x230.google.com (mail-ia0-x230.google.com [IPv6:2607:f8b0:4001:c02::230]) by mx1.freebsd.org (Postfix) with ESMTP id 328ED1659 for ; Sat, 4 May 2013 06:23:19 +0000 (UTC) Received: by mail-ia0-f176.google.com with SMTP id l27so1902686iae.7 for ; Fri, 03 May 2013 23:23:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=AwB7YC6bO6v53hRGRTfJZAYdv4w5Veg7AvMYzcANbBU=; b=GhkV3hygq8r/PFkApP6sugyUrQX4+SE4QQSU4+Ua2B6CnuA8pQQPLLGbuWF5+frQYH mt+pQOlkVTcue5gt6M9YCTP9OaswCZyK6tznjw/WWhUNsZZQ40WRhv16JFRmS5p1FJpF lrHKPIxxz/M+HJYHz/XI7XP2yHdHsHZsD13ORrjnI7F272ZtyVAf+Go65p9Y+9zijj28 NfJyilbYXhXzwjrrD+wlGaN01TZ55aanl1Saz7rRUpRBziwaUcTiIVlDLCrbB7akXodH kYFxORvtVHZPIuY9imslxIjOgal3PfLvDYSGwM6TGiqxyX2KAayQSrBKj7ZkuHY9jGWY lmGw== MIME-Version: 1.0 X-Received: by 10.50.47.10 with SMTP id z10mr354825igm.15.1367648598857; Fri, 03 May 2013 23:23:18 -0700 (PDT) Received: by 10.64.58.52 with HTTP; Fri, 3 May 2013 23:23:18 -0700 (PDT) Received: by 10.64.58.52 with HTTP; Fri, 3 May 2013 23:23:18 -0700 (PDT) In-Reply-To: References: Date: Sat, 4 May 2013 07:23:18 +0100 Message-ID: Subject: Re: ladmins that cannot type a command From: Chris Rees To: Dieter BSD Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 06:23:19 -0000 On 3 May 2013 20:01, "Dieter BSD" wrote: > > >> good for today and future ladmins that cannot type a command. > >> > >> Any USEFUL proposals that add some real functionality? > > > > Since this will enable more people to run FreeBSD that otherwise > > wouldn't give it a second glance, I would say it is VERY useful. > > Really? How useful is FreeBSD going to be to someone who cannot type? > Who is the target here? Idiots? People without fingers? > > I see lots of chatter about adding new stuff, much of which is ... > rather questionable. Meanwhile many of the features FreeBSD > already has are broken. No shortage of PRs that need fixing. > Many of these PRs have been sitting around, unloved, for *years*. > Some of them even contain patches (that *work*)! > > If you're building a race car, make sure the engine runs before > spending your time polishing the wheels. You need to spend more time writing patches rather than telling other people what not to do. We're (nearly) all volunteers. If you think something needs fixing, you can have a go yourself or pay someone, but do NOT tell someone that their contribution is not worthwhile while pushing your agenda. Chris From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 06:30:21 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 519A27EF for ; Sat, 4 May 2013 06:30:21 +0000 (UTC) (envelope-from yerenkow@gmail.com) Received: from mail-da0-x22a.google.com (mail-da0-x22a.google.com [IPv6:2607:f8b0:400e:c00::22a]) by mx1.freebsd.org (Postfix) with ESMTP id 2F9A01686 for ; Sat, 4 May 2013 06:30:21 +0000 (UTC) Received: by mail-da0-f42.google.com with SMTP id r6so1104478dad.29 for ; Fri, 03 May 2013 23:30:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=FoT5/f1ZdavS1L/LqLiPQ3iXC+4Zpp8tBgbC6MQYmoY=; b=xbs7dF8X61439vqE3/dwvqhZmg4nDO21sIQXVC589+aI9iHHgHxFMtCuzChKEFUYAc nHRJvcOqVZuYgY/swUzP4MbGsQBX7ze0JuldXlEUAtxp3mFf0IU6ry5DOBfFRno2gb6f +GJ3Qgr1oiLB46yOzWf8xl3e9Q59FAabEy2kXdRj0RXtjPRunnYeksMjJa3U+kUNr/Tv 4ihqVVYgJxopzi7IAPuuNWD5rGog52ZHU+Yayou/p21PRVaMcEpnRq7C/PxgjoDOyqa/ EDdolMuFlP3tTSVnyTrnUHwgSKViB5Hg6ffysmJhnXKi7NGL/v56jRsiAt1jTNndKjmK 5c6w== MIME-Version: 1.0 X-Received: by 10.68.13.168 with SMTP id i8mr17032865pbc.86.1367649020973; Fri, 03 May 2013 23:30:20 -0700 (PDT) Received: by 10.68.93.130 with HTTP; Fri, 3 May 2013 23:30:20 -0700 (PDT) Received: by 10.68.93.130 with HTTP; Fri, 3 May 2013 23:30:20 -0700 (PDT) In-Reply-To: References: Date: Sat, 4 May 2013 09:30:20 +0300 Message-ID: Subject: Re: ladmins that cannot type a command From: Alexander Yerenkow To: Chris Rees Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-hackers@freebsd.org, Dieter BSD X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 06:30:21 -0000 How old you guys? Few years ago, I got some small infection in eyes, so basically it was visit into future - when many peoples lost vision, fully or partially. Then I gave a try Kde accessibility and found out that it's not quite ready for real usage. But it was something, at least. About Gui I always think it's better to have it than not. There always peoples who's needs not same as yours, just keep this in mind and don't insult guys who willing to donate part of their lives to bring some feature to community. Regards, Alexander Yerenkow From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 11:22:21 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id BCEBFF0 for ; Sat, 4 May 2013 11:22:21 +0000 (UTC) (envelope-from yerenkow@gmail.com) Received: from mail-da0-x22e.google.com (mail-da0-x22e.google.com [IPv6:2607:f8b0:400e:c00::22e]) by mx1.freebsd.org (Postfix) with ESMTP id 998AD1116 for ; Sat, 4 May 2013 11:22:21 +0000 (UTC) Received: by mail-da0-f46.google.com with SMTP id e20so1153542dak.5 for ; Sat, 04 May 2013 04:22:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=L0esyV4WEhv6sra8OjOwjLVCxA0VlvHG8xc31wM229s=; b=CEfJVHpdipscH9j6q3MTQj9spd84QyXpB7GF8QzK4Z9UpwDNoMeBj4JaJmIrxAHGlt MsADFOyHo/3axhF5+jn5yOkV+n8ttyxt+mfO4Wn9kg21+JcoKwPBRUeQeOazsM5ycx5E cYCaxO/jeCLxKdNeFqiT4fOBqH9thjEhUAbGy5eh5awvUcm3yha8GXU5In3jR8OfOaxP f6rFrOgjdxUlI519d6QTx5ZyxwHL1VT8s772XGlKIL/JdXgK9jj2Gd3E1pBcDqSOb1J5 sjEw8vGdaoSejcnxIo6wHfdP2M2YnqbRydVNsq0QHGGF5O0XCXcEfQvwYKmZEJvyIzuB VovQ== MIME-Version: 1.0 X-Received: by 10.68.220.2 with SMTP id ps2mr17533201pbc.51.1367656209480; Sat, 04 May 2013 01:30:09 -0700 (PDT) Received: by 10.68.93.130 with HTTP; Sat, 4 May 2013 01:30:09 -0700 (PDT) Received: by 10.68.93.130 with HTTP; Sat, 4 May 2013 01:30:09 -0700 (PDT) In-Reply-To: References: Date: Sat, 4 May 2013 11:30:09 +0300 Message-ID: Subject: Re: ladmins that cannot type a command From: Alexander Yerenkow To: Wojciech Puchar Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-hackers@freebsd.org, Dieter BSD , Chris Rees X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 11:22:21 -0000 You still can't accept that there could be more than one point of view, and you show no respect to other's opinions. Thats not best qualities one can show. That is it, let's close this flame :) Regards, Alexander Yerenkow From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 11:25:52 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 65F9F3D6 for ; Sat, 4 May 2013 11:25:52 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [188.252.31.196]) by mx1.freebsd.org (Postfix) with ESMTP id E47D4119D for ; Sat, 4 May 2013 11:25:51 +0000 (UTC) Received: from wojtek.tensor.gdynia.pl (localhost [127.0.0.1]) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5) with ESMTP id r448iJUi061827; Sat, 4 May 2013 10:44:19 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5/Submit) with ESMTP id r448iJLO061824; Sat, 4 May 2013 10:44:19 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Sat, 4 May 2013 10:44:19 +0200 (CEST) From: Wojciech Puchar To: Alexander Yerenkow Subject: Re: ladmins that cannot type a command In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.7 (wojtek.tensor.gdynia.pl [127.0.0.1]); Sat, 04 May 2013 10:44:20 +0200 (CEST) Cc: freebsd-hackers@freebsd.org, Dieter BSD , Chris Rees X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 11:25:52 -0000 On Sat, 4 May 2013, Alexander Yerenkow wrote: > > You still can't accept that there could be more than one point of view, and you show no respect to other's opinions. I know no projects that actually worked and succeded if democracy were used to decide about it's direction. From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 11:25:53 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 760503D7 for ; Sat, 4 May 2013 11:25:53 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [188.252.31.196]) by mx1.freebsd.org (Postfix) with ESMTP id 0371F119E for ; Sat, 4 May 2013 11:25:52 +0000 (UTC) Received: from wojtek.tensor.gdynia.pl (localhost [127.0.0.1]) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5) with ESMTP id r447SBhO061355; Sat, 4 May 2013 09:28:11 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5/Submit) with ESMTP id r447SBWu061352; Sat, 4 May 2013 09:28:11 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Sat, 4 May 2013 09:28:11 +0200 (CEST) From: Wojciech Puchar To: Dieter BSD Subject: Re: ladmins that cannot type a command In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.7 (wojtek.tensor.gdynia.pl [127.0.0.1]); Sat, 04 May 2013 09:28:11 +0200 (CEST) Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 11:25:53 -0000 >> Since this will enable more people to run FreeBSD that otherwise >> wouldn't give it a second glance, I would say it is VERY useful. > > Really? How useful is FreeBSD going to be to someone who cannot type? > Who is the target here? Idiots? People without fingers? that's exactly what i mean here. Having more "people able to install FreeBSD somehow" only hurt it. We need more USERS, not more ladmins. The reverse would be true if FreeBSD would be commercially sold software - the more sold the better. Linux already got that way. contrary to common opinion GUI doesn't help learning. It prevents learning. From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 11:25:54 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 85D163D8 for ; Sat, 4 May 2013 11:25:54 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [188.252.31.196]) by mx1.freebsd.org (Postfix) with ESMTP id 11DF1119F for ; Sat, 4 May 2013 11:25:53 +0000 (UTC) Received: from wojtek.tensor.gdynia.pl (localhost [127.0.0.1]) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5) with ESMTP id r447SoNj061361; Sat, 4 May 2013 09:28:50 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5/Submit) with ESMTP id r447SoKr061358; Sat, 4 May 2013 09:28:50 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Sat, 4 May 2013 09:28:50 +0200 (CEST) From: Wojciech Puchar To: Chris Rees Subject: Re: ladmins that cannot type a command In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.7 (wojtek.tensor.gdynia.pl [127.0.0.1]); Sat, 04 May 2013 09:28:51 +0200 (CEST) Cc: freebsd-hackers@freebsd.org, Dieter BSD X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 11:25:54 -0000 >> spending your time polishing the wheels. > > You need to spend more time writing patches rather than telling other > people what not to do. We're (nearly) all volunteers. > > If you think something needs fixing, you can have a go yourself or pay > someone, but do NOT tell someone that their contribution is not worthwhile > while pushing your agenda. yes i am telling someone that his contribution is not worthwhile. Or to be more exact - that it hurts. From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 11:25:55 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 9605C3D9 for ; Sat, 4 May 2013 11:25:55 +0000 (UTC) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from wojtek.tensor.gdynia.pl (wojtek.tensor.gdynia.pl [188.252.31.196]) by mx1.freebsd.org (Postfix) with ESMTP id 20E5F11A0 for ; Sat, 4 May 2013 11:25:54 +0000 (UTC) Received: from wojtek.tensor.gdynia.pl (localhost [127.0.0.1]) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5) with ESMTP id r447TmQQ061367; Sat, 4 May 2013 09:29:48 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Received: from localhost (wojtek@localhost) by wojtek.tensor.gdynia.pl (8.14.6/8.14.5/Submit) with ESMTP id r447TmGj061364; Sat, 4 May 2013 09:29:48 +0200 (CEST) (envelope-from wojtek@wojtek.tensor.gdynia.pl) Date: Sat, 4 May 2013 09:29:48 +0200 (CEST) From: Wojciech Puchar To: Alexander Yerenkow Subject: Re: ladmins that cannot type a command In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.7 (wojtek.tensor.gdynia.pl [127.0.0.1]); Sat, 04 May 2013 09:29:48 +0200 (CEST) Cc: freebsd-hackers@freebsd.org, Dieter BSD , Chris Rees X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 11:25:55 -0000 > or partially. Then I gave a try Kde accessibility and found out that it's > not quite ready for real usage. But it was something, at least. > About Gui I always think it's better to have it than not. Not true. GUI is only a problem. you may just make your fonts larger using xterm. From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 11:31:01 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B51386CD for ; Sat, 4 May 2013 11:31:01 +0000 (UTC) (envelope-from fernando.apesteguia@gmail.com) Received: from mail-wg0-x22d.google.com (mail-wg0-x22d.google.com [IPv6:2a00:1450:400c:c00::22d]) by mx1.freebsd.org (Postfix) with ESMTP id 4DE65127B for ; Sat, 4 May 2013 11:31:01 +0000 (UTC) Received: by mail-wg0-f45.google.com with SMTP id l18so2237138wgh.0 for ; Sat, 04 May 2013 04:31:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=HH7F3H2ZrpNc1XX00gQIBg38wpTeJlu1h6DBXNIHT+A=; b=j7kbId4eCUIQflNpNE2QQmgjvAmstL30v/YVzEnp/BfCurn47Iws2/ce3mSDLTZOM6 aNpAnFFXvuCixt3ZSNsklFv7SYOPineAhtisdnsli4bcM6LDbskmRNXNDe6pCqqukOd7 JEZwuNUVx7dXseQ49pyKho8xinUX8aUnpVeL3DTglVnDG2dwrk8VqJB6Tcvf6EyTuHqV 0qqyljTwYGHhPwGsg04MrKLU86pZmSH+3WgzsQ6wzDpH7Uwv6yEISjPjfhKsyhXCDYVl ASanpfqw+5XPS7oB328ACR/wHdnZl2HihyXdKvcU/XllLYREF6P3XUIG5/bsgbGaSam6 AzUw== MIME-Version: 1.0 X-Received: by 10.194.92.176 with SMTP id cn16mr17944937wjb.51.1367667060374; Sat, 04 May 2013 04:31:00 -0700 (PDT) Received: by 10.180.100.130 with HTTP; Sat, 4 May 2013 04:31:00 -0700 (PDT) Received: by 10.180.100.130 with HTTP; Sat, 4 May 2013 04:31:00 -0700 (PDT) In-Reply-To: References: Date: Sat, 4 May 2013 13:31:00 +0200 Message-ID: Subject: Re: ladmins that cannot type a command From: =?ISO-8859-1?Q?Fernando_Apestegu=EDa?= To: Wojciech Puchar Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: FreeBSD Hackers , Dieter BSD , Chris Rees X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 11:31:01 -0000 El 04/05/2013 13:26, "Wojciech Puchar" escribi=F3: >>> >>> spending your time polishing the wheels. >> >> >> You need to spend more time writing patches rather than telling other >> people what not to do. We're (nearly) all volunteers. >> >> If you think something needs fixing, you can have a go yourself or pay >> someone, but do NOT tell someone that their contribution is not worthwhile >> while pushing your agenda. > > > yes i am telling someone that his contribution is not worthwhile. Or to be more exact - that it hurts. > Too bad, it's his contribution not yours. I'm really happy that you can not prevent people from contributing in any form. > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org= " From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 11:31:42 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 69898876 for ; Sat, 4 May 2013 11:31:42 +0000 (UTC) (envelope-from fernando.apesteguia@gmail.com) Received: from mail-wg0-x22c.google.com (mail-wg0-x22c.google.com [IPv6:2a00:1450:400c:c00::22c]) by mx1.freebsd.org (Postfix) with ESMTP id F11EF1299 for ; Sat, 4 May 2013 11:31:41 +0000 (UTC) Received: by mail-wg0-f44.google.com with SMTP id z12so2232051wgg.23 for ; Sat, 04 May 2013 04:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=2OYOBNTtVCEQCoyek5L1YA7BhSNCUFqrgclsxWv8Fsg=; b=nsLR9iXEfavLSPT9rnUG9LIALLfMBpuWQAEF1rY5HuBAr1XRIqMG23T/8imxclm8v3 iSecmCEADlH9kkYS3lRcAGpvi9d0Do/fVYRK05I1G1BkXIFMW32ImyzdcIaEuC9Q3DIL fC88XXDXAX1CA6SDeXi1Gu0kviV2k+EMF8F9pdzMCnNumtDTKDR7ax1Wd89HDA+TNDpv LtQNxgp+gSnkoCNaq3tWl9m+JbhqBrbza1R67oS+LCxFUE5gwTE2o44K1PZaTMV3r+TW WsvmEcHaEzIF8z/n+r6GHinZZ3UHrA7y49Wcs9fFiTX9iKaQQS0YLw1g5q1VtFMDi8Ok N2lw== MIME-Version: 1.0 X-Received: by 10.180.83.199 with SMTP id s7mr1777160wiy.19.1367667101219; Sat, 04 May 2013 04:31:41 -0700 (PDT) Received: by 10.180.100.130 with HTTP; Sat, 4 May 2013 04:31:41 -0700 (PDT) Received: by 10.180.100.130 with HTTP; Sat, 4 May 2013 04:31:41 -0700 (PDT) In-Reply-To: References: Date: Sat, 4 May 2013 13:31:41 +0200 Message-ID: Subject: Re: ladmins that cannot type a command From: =?ISO-8859-1?Q?Fernando_Apestegu=EDa?= To: Wojciech Puchar Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-hackers@freebsd.org, Dieter BSD , Alexander Yerenkow , Chris Rees X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 11:31:42 -0000 El 04/05/2013 13:26, "Wojciech Puchar" escribi=F3: >> >> or partially. Then I gave a try Kde accessibility and found out that it'= s >> not quite ready for real usage. But it was something, at least. >> About Gui I always think it's better to have it than not. > > > Not true. GUI is only a problem. you may just make your fonts larger using xterm. Accessibility is not only about larger fonts. > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org= " From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 18:06:19 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8DD26F30; Sat, 4 May 2013 18:06:19 +0000 (UTC) (envelope-from guru@unixarea.de) Received: from ms16-1.1blu.de (ms16-1.1blu.de [89.202.0.34]) by mx1.freebsd.org (Postfix) with ESMTP id 2DDF9933; Sat, 4 May 2013 18:06:18 +0000 (UTC) Received: from [89.204.138.4] (helo=tiny.Sisis.de) by ms16-1.1blu.de with esmtpsa (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1UYgqf-0007NT-2w; Sat, 04 May 2013 20:06:17 +0200 Received: from tiny.Sisis.de (localhost [127.0.0.1]) by tiny.Sisis.de (8.14.5/8.14.3) with ESMTP id r44I6CG8001275; Sat, 4 May 2013 20:06:12 +0200 (CEST) (envelope-from guru@unixarea.de) Received: (from guru@localhost) by tiny.Sisis.de (8.14.5/8.14.3/Submit) id r44I6BMU001274; Sat, 4 May 2013 20:06:11 +0200 (CEST) (envelope-from guru@unixarea.de) X-Authentication-Warning: tiny.Sisis.de: guru set sender to guru@unixarea.de using -f Date: Sat, 4 May 2013 20:06:11 +0200 From: Matthias Apitz To: freebsd-gnome@freebsd.org Subject: GTK+3.0 application does not show some existing icons Message-ID: <20130504180610.GA1229@tiny.Sisis.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="/04w6evG8XlLl3ft" Content-Disposition: inline X-Operating-System: FreeBSD 10.0-CURRENT r235646 (i386) User-Agent: Mutt/1.5.21 (2010-09-15) X-Con-Id: 51246 X-Con-U: 0-guru X-Originating-IP: 89.204.138.4 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Matthias Apitz List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 18:06:19 -0000 --/04w6evG8XlLl3ft Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hello, I have a problem with some GTK+3 application not showing some existing icons of the gnome-icon-theme. To nail it down, I went to some GTK tutorial pages and hacked together a simple application (attached) which can be compiled with just: $ gcc -g image.c `pkg-config --cflags --libs gtk+-3.0` -o image and shows the first argument as icon name, for example: $ ./image document-print-preview which works fine, while other icons do not work, for example $ ./image bottom Could some kind soul bring a bit light into the relation between an icon name and the corresponding PNG file name.png? Because, even in the case when the icon is shown, one does no see any open of the PNG file with truss(1). How this is done? And why some of the icons are woring while others do not? If it does matter, it is a system with a fresh ports tree from April, 1st, SVN revision r315646. Thanks matthias -- Sent from my FreeBSD netbook Matthias Apitz | - No system with backdoors like Apple/Android E-mail: guru@unixarea.de | - Never being an iSlave WWW: http://www.unixarea.de/ | - No proprietary attachments, no HTML/RTF in E-mail phone: +49-170-4527211 | - Respect for open standards --/04w6evG8XlLl3ft-- From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 18:49:50 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 4ED42EBB for ; Sat, 4 May 2013 18:49:50 +0000 (UTC) (envelope-from florent@peterschmitt.fr) Received: from peterschmitt.fr (peterschmitt.fr [5.135.177.31]) by mx1.freebsd.org (Postfix) with ESMTP id 17CA1A86 for ; Sat, 4 May 2013 18:49:49 +0000 (UTC) Received: from [192.168.0.23] (4ab54-4-88-163-248-31.fbx.proxad.net [88.163.248.31]) by peterschmitt.fr (Postfix) with ESMTPSA id DABA5740C for ; Sat, 4 May 2013 18:49:50 +0000 (UTC) Message-ID: <51855824.1080206@peterschmitt.fr> Date: Sat, 04 May 2013 20:49:08 +0200 From: Florent Peterschmitt User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130402 Thunderbird/17.0.5 MIME-Version: 1.0 To: freebsd-hackers@freebsd.org Subject: Binary upgrade from release to stable X-Enigmail-Version: 1.5.1 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="----enig2KLTFNUFJQDDDXRLCQVKM" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: florent+Freebsd-hackers@peterschmitt.fr List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 18:49:50 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2KLTFNUFJQDDDXRLCQVKM Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, I just proceeded a full upgrade from FreeBSD 9.1-RELEASE to the latest 9-STABLE snapshot using tarball sets. I done it this way : tar xpf src.txz -C / tar xf base.txz -C /usr/src mergemaster -p mergemaster -FUi tar cpf etc.tar -C / etc tar xpf base.tar -C / tar xpf etc.tar -C / tar xpf kernel.txz -C / reboot The system work well, I have all my old merged configuration. But, does someone has something to remove old files, like a make delete-old ? Thanks --=20 Florent Peterschmitt +33 (0)6 64 33 97 92 florent@peterschmitt.fr ------------------------ O< ascii ribbon campaign - stop html mail - www.asciiribbon.org ------enig2KLTFNUFJQDDDXRLCQVKM Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJRhVgkAAoJEMtO2Sol0IImycsH/1RFhtMEB8pbPqPKjWh16YFd RPmphtpFNRJiP1So7fxWalvzzkhhV7JZ9pnd25EWY7g62PkGcQSTpDfjpTML9AVx HYsZmCUm2cqutnJDiVs8U1vRH2XCX8CO9ofKmWOysztqcKTSYSGPlK1YxRyk0/SY f9ZHgmifZkANuD62XFDL/mwHw2k0JRJiDEixMU0arTCyNrk2LrXc8Iv8mB7pVcGr nNBwOB15HlCTpqyJvcpHZKmTFQ74krRjeNzNAEoOehZE16JRLdxMP6qQki1ghwsw 189xqC0Yxc/XlcdDemLTunDZOijN/++ntgss9bBwcrA2hTZXR0w4NcVLzcQwJG8= =FuSo -----END PGP SIGNATURE----- ------enig2KLTFNUFJQDDDXRLCQVKM-- From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 20:08:38 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 45F1AC1C for ; Sat, 4 May 2013 20:08:38 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 9886FDED for ; Sat, 4 May 2013 20:08:37 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.7/8.14.7) with ESMTP id r44K8QCZ033159; Sat, 4 May 2013 23:08:26 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.8.2 kib.kiev.ua r44K8QCZ033159 Received: (from kostik@localhost) by tom.home (8.14.7/8.14.7/Submit) id r44K8POQ033157; Sat, 4 May 2013 23:08:25 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 4 May 2013 23:08:25 +0300 From: Konstantin Belousov To: Yuri Subject: Re: What is the correct way to declare assembler global variable ? Message-ID: <20130504200825.GW3047@kib.kiev.ua> References: <518419B5.4000602@rawbw.com> <20130503203020.GR3047@kib.kiev.ua> <5184399C.9000805@rawbw.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="9vqSz5I27CpJbl/i" Content-Disposition: inline In-Reply-To: <5184399C.9000805@rawbw.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: FreeBSD Hackers X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 20:08:38 -0000 --9vqSz5I27CpJbl/i Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, May 03, 2013 at 03:26:36PM -0700, Yuri wrote: > On 05/03/2013 13:30, Konstantin Belousov wrote: > > Formal answer is for you to read about the .type directive in the GNU > > as manual. Also, you need to read about either common symbols, or about > > the .size directive. > > > > But, note that you cannot access hidden libc symbols from the code which > > links to libc (dynamically). You probably need to re-consider higher-le= vel > > approach to your issue. > > >=20 > I didn't write this code. This is google-perftools-2.0 I am trying to por= t. > They added the procedure do_sbrk there (see below), that attempts to=20 > emulate what libc is doing for sbrk. It fails, they probably didn't test = it. > The idea is that they need to have hooks before and after sbrk call. > I am not sure what the best approach would be here? > How can the memory allocation library override sbrk in libc and still be= =20 > able to attach to the original libc version of sbrk? >=20 > On Linux there is another symbol __sbrk, and they just use it to conenct= =20 > to the original sbrk. But there is no such thing of FreeBSD. >=20 > Yuri >=20 >=20 > static inline void* do_sbrk(intptr_t increment) { > void* curbrk =3D 0; >=20 > #if defined(__x86_64__) || defined(__amd64__) > # ifdef PIC > __asm__ __volatile__( > "movq .curbrk@GOTPCREL(%%rip), %%rdx;" > "movq (%%rdx), %%rax;" > "movq %%rax, %0;" > : "=3Dr" (curbrk) > :: "%rdx", "%rax"); > # else > __asm__ __volatile__( > "movq .curbrk(%%rip), %%rax;" > "movq %%rax, %0;" > : "=3Dr" (curbrk) > :: "%rax"); > # endif > #else > __asm__ __volatile__( > "movl .curbrk, %%eax;" > "movl %%eax, %0;" > : "=3Dr" (curbrk) > :: "%eax"); > #endif >=20 > if (increment =3D=3D 0) { > return curbrk; > } >=20 > char* prevbrk =3D static_cast(curbrk); > void* newbrk =3D prevbrk + increment; >=20 > if (brk(newbrk) =3D=3D -1) { > return reinterpret_cast(static_cast(-1)); > } >=20 > return prevbrk; > } >=20 > extern "C" void* sbrk(intptr_t increment) __THROW { > MallocHook::InvokePreSbrkHook(increment); > void *result =3D do_sbrk(increment); > MallocHook::InvokeSbrkHook(result, increment); > return result; > } So all the code needs is to call hooks before and after the sbrk call, right ? For the !PIC case, what is cited above would probably work, but it requires that libc is also linked static. For the dynamic case, it should be enough to use the dlsym(RTLD_NEXT, "sbrk") to get the pointer to interposed symbol in the wrapper. It assumes that the library which interposes sbrk is loaded before libc, but it is relatively non-trivial to fail this. Something along the lines, obviously not even compiled: #ifdef PIC void * sbrk(intptr_t incr) { static void *(*libc_sbrk)(intptr_t); void *ret; if (libc_sbrk =3D=3D NULL) libc_sbrk =3D dlsym(RTLD_NEXT, "sbrk"); sbrk_pre_hook(incr); ret =3D libc_sbrk(incr); sbrk_post_hook(ret, incr); return (ret); } #endif The sample is in fact thread-safe, or rather, not any more unsafe than an sbrk() use itself. --9vqSz5I27CpJbl/i Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQIcBAEBAgAGBQJRhWq4AAoJEJDCuSvBvK1BtZYP/0x7EZBlJnFGJEZvrNWpp2sf uErlVeDcDj3vi7b9V4YUD/Hue6gQwIT5+mpYqjzemkX8rcwnjDfZ0QzQnwu3C94x g4wH6FbZ6BAV20a8yj/wVN8KbtYHcPDHyCUc/D62PcFFIy3+oM77Gm/1PlqlxOn/ rjcmaI6gbFSzcl22wtC4e8MCP08AZty8D8mRGlNDMV2F6Onx9OB6E8QelbTzlAYe GQMAgvpLQnZkB+DqSg+CLmkxQ04r03dueVmp8P7DqsQfOj97HKMbLJmZN7jVXD8r 60XjH5o/ju/TYphWdm7dHHWBtw3hZXZ6coeZowAZg3I+qRzC9RjY1IDiPzDO8pdT wN/9qNZxdegyuY3qGMwO2PlFvsguIKHnV3vzBNIzMgsme+mcl362aLkYVSJ6UDWa SQfrSofamfc8ADgC1xoaGPdurBqDEPxhPZKKVlfm4BQmnFrs4mRwUVCvuestel7b nAkgSMBKVFe+FvhxLfGJQcS3i4dfUiAp7PCE+5fR9vhd5KvxP91JN+2/9kmlEp/z Ay3GVNlpvgt+3dMhUHSthuTF1HVRyyui8+I+dv3liC3whXAlfutTjQPOjXtoHFXf 4o6eUQ56Qopo/gnznOdMnwCHu+9/xXyVOfZKX3wtfJuYJ2FJSFYoM9pPiRn2tBFY NbNtEDFGwd2liHIDv56Z =gkMx -----END PGP SIGNATURE----- --9vqSz5I27CpJbl/i-- From owner-freebsd-hackers@FreeBSD.ORG Sat May 4 20:34:53 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E2323211 for ; Sat, 4 May 2013 20:34:53 +0000 (UTC) (envelope-from justin.muniz@maine.edu) Received: from mail-qa0-x231.google.com (mail-qa0-x231.google.com [IPv6:2607:f8b0:400d:c00::231]) by mx1.freebsd.org (Postfix) with ESMTP id A0476EA2 for ; Sat, 4 May 2013 20:34:53 +0000 (UTC) Received: by mail-qa0-f49.google.com with SMTP id bs12so894897qab.15 for ; Sat, 04 May 2013 13:34:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:references:in-reply-to:mime-version :content-transfer-encoding:content-type:message-id:cc:x-mailer:from :subject:date:to:x-gm-message-state; bh=+CQxmxSLRXflHwo4UAeasSLg77hIW9XFf5cRR+8NZsA=; b=c2oqkGNOo17zJqJ/vPTH5I9hcDZtFRd7K9zApX6hxq5TUfzoL5AUxsmR9Pgjh0LiGz xbDTlnHGDzaJHX2BDPVLnCBaGq7rwkQUOg7dXkw1IAD7MCbvQdoBT/PWlem6YDB+c/gK CZNAMBPe3G3x2/RcyDlyGHmPBS4izkfCSTpD+yR9QrlaCRe3rDeqnDHEdIHQvA9bdMaA PNhQnvD6VaCgpCNd3oCSP7tes0g6kHFnnrRx0SBdKonnflDqgYbJVASWgYNetsotoe0t +5au5U3su4JrwgWwL/8xLNCrlT/NKbw1uMN7HzVs/cwGUTj6okWyBocujBbK8fMN4cxO ns+Q== X-Received: by 10.224.33.148 with SMTP id h20mr18031072qad.45.1367699692994; Sat, 04 May 2013 13:34:52 -0700 (PDT) Received: from [192.168.1.33] ([64.223.226.12]) by mx.google.com with ESMTPSA id bc5sm26144339qeb.3.2013.05.04.13.34.49 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 04 May 2013 13:34:51 -0700 (PDT) References: <5183C25A.7020908@pcbsd.org> In-Reply-To: Mime-Version: 1.0 (1.0) Message-Id: <0238FEF5-D4B9-48CE-87E4-36BF2C6D28B3@maine.edu> X-Mailer: iPod Mail (10B141) From: Justin Muniz Subject: Re: GSoC: PKGNG GUI Proposal Available for Review Date: Sat, 4 May 2013 16:34:44 -0400 To: =?utf-8?Q?Fernando_Apestegu=C3=ADa?= X-Gm-Message-State: ALoCoQm1phaPspYmKEX4IW0bPQD9jXrVvjYqL3hmHnp5fyG2zicp9qr1gUc9OhzKBYarXU0due7E Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "freebsd-hackers@freebsd.org" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2013 20:34:53 -0000 > I wish you the best of luck.=20 >=20 Thank you very much, Fernando! > I'm also happy to see you will use packagekit as a frontend. No need to re= invent the wheel. >=20 It is a great utility. I have learned a lot while studying it.=20 As a side note, I have made much progress porting PackageKit-0.8.8. It fixes= a lot of issues that exist in the most recent version (0.6.11) from the por= ts collection. I started yesterday, but I've already made progress.=20 Justin Muniz=