From SRS0+6O/x+63+fromorbit.com=dave@internode.on.net Mon Aug 2 02:25:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o727Pum2177205 for ; Mon, 2 Aug 2010 02:25:57 -0500 X-ASG-Debug-ID: 1280734443-3f7201070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5215015CE136 for ; Mon, 2 Aug 2010 00:34:04 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id Pnjlo9XquGa1GnSe for ; Mon, 02 Aug 2010 00:34:04 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33580325-1927428 for multiple; Mon, 02 Aug 2010 16:56:03 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OfpPO-0005TD-Av; Mon, 02 Aug 2010 17:26:02 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OfpPI-0004ER-I5; Mon, 02 Aug 2010 17:25:56 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: [PATCH 0/2] dio: serialise unaligned direct IO V2 Subject: [PATCH 0/2] dio: serialise unaligned direct IO V2 Date: Mon, 2 Aug 2010 17:25:43 +1000 Message-Id: <1280733945-16231-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1280734446 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36793 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The first patch is unchanged from the first posting. The second patch adds multiple lists and locks to avod potential scalability issues with a single list. This is just a simple hash based on the block address being zeroed. From SRS0+6O/x+63+fromorbit.com=dave@internode.on.net Mon Aug 2 02:26:02 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o727Q2Ox177220 for ; Mon, 2 Aug 2010 02:26:02 -0500 X-ASG-Debug-ID: 1280733979-70ee02e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0BC581E39AC4 for ; Mon, 2 Aug 2010 00:26:19 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id DvXzmLwaNqdPNolA for ; Mon, 02 Aug 2010 00:26:19 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33973109-1927428 for multiple; Mon, 02 Aug 2010 16:56:13 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OfpPY-0005TE-Bx; Mon, 02 Aug 2010 17:26:12 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OfpPI-0004EV-Me; Mon, 02 Aug 2010 17:25:56 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: [PATCH 2/2] dio: scale unaligned IO tracking via multiple lists Subject: [PATCH 2/2] dio: scale unaligned IO tracking via multiple lists Date: Mon, 2 Aug 2010 17:25:45 +1000 Message-Id: <1280733945-16231-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280733945-16231-1-git-send-email-david@fromorbit.com> References: <1280733945-16231-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1280733981 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36794 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner To avoid concerns that a single list and lock tracking the unaligned IOs will not scale appropriately, create multiple lists and locks and chose them by hashing the unaligned block being zeroed. Signed-off-by: Dave Chinner --- fs/direct-io.c | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 13 deletions(-) diff --git a/fs/direct-io.c b/fs/direct-io.c index 611524e..95dcba4 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -152,8 +152,29 @@ struct dio_zero_block { atomic_t ref; /* reference count */ }; -DEFINE_SPINLOCK(dio_zero_block_lock); -LIST_HEAD(dio_zero_block_list); +#define DIO_ZERO_BLOCK_NR 37LL +struct dio_zero_block_head { + struct list_head list; + spinlock_t lock; +}; + +struct dio_zero_block_head dio_zero_blocks[DIO_ZERO_BLOCK_NR]; +#define to_dio_zero_list(zb) (&dio_zero_blocks[zb % DIO_ZERO_BLOCK_NR].list) +#define to_dio_zero_lock(zb) (&dio_zero_blocks[zb % DIO_ZERO_BLOCK_NR].lock) + + +static int __init +dio_init_zero_block(void) +{ + int i; + + for (i = 0; i < DIO_ZERO_BLOCK_NR; i++) { + spin_lock_init(&dio_zero_blocks[i].lock); + INIT_LIST_HEAD(&dio_zero_blocks[i].list); + } + return 0; +} +subsys_initcall(dio_init_zero_block); /* * Add a filesystem block to the list of blocks we are tracking. @@ -162,6 +183,8 @@ static void dio_start_zero_block(struct dio *dio, sector_t zero_block) { struct dio_zero_block *zb; + struct list_head *list = to_dio_zero_list(zero_block); + spinlock_t *lock = to_dio_zero_lock(zero_block); zb = kmalloc(sizeof(*zb), GFP_NOIO); if (!zb) @@ -172,9 +195,9 @@ dio_start_zero_block(struct dio *dio, sector_t zero_block) zb->dio = dio; atomic_set(&zb->ref, 1); - spin_lock(&dio_zero_block_lock); - list_add(&zb->dio_list, &dio_zero_block_list); - spin_unlock(&dio_zero_block_lock); + spin_lock(lock); + list_add(&zb->dio_list, list); + spin_unlock(lock); } static void @@ -194,20 +217,22 @@ static int dio_wait_zero_block(struct dio *dio, sector_t zero_block) { struct dio_zero_block *zb; + struct list_head *list = to_dio_zero_list(zero_block); + spinlock_t *lock = to_dio_zero_lock(zero_block); - spin_lock(&dio_zero_block_lock); - list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + spin_lock(lock); + list_for_each_entry(zb, list, dio_list) { if (zb->dio->inode != dio->inode) continue; if (zb->zero_block != zero_block) continue; atomic_inc(&zb->ref); - spin_unlock(&dio_zero_block_lock); + spin_unlock(lock); wait_event(zb->wq, (list_empty(&zb->dio_list))); dio_drop_zero_block(zb); return 1; } - spin_unlock(&dio_zero_block_lock); + spin_unlock(lock); return 0; } @@ -217,20 +242,22 @@ dio_wait_zero_block(struct dio *dio, sector_t zero_block) static void dio_end_zero_block(struct dio *dio, sector_t zero_block) { struct dio_zero_block *zb; + struct list_head *list = to_dio_zero_list(zero_block); + spinlock_t *lock = to_dio_zero_lock(zero_block); - spin_lock(&dio_zero_block_lock); - list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + spin_lock(lock); + list_for_each_entry(zb, list, dio_list) { if (zb->dio->inode != dio->inode) continue; if (zb->zero_block != zero_block) continue; list_del_init(&zb->dio_list); - spin_unlock(&dio_zero_block_lock); + spin_unlock(lock); wake_up(&zb->wq); dio_drop_zero_block(zb); return; } - spin_unlock(&dio_zero_block_lock); + spin_unlock(lock); } /* -- 1.7.1 From SRS0+DEPi+63+fromorbit.com=dave@internode.on.net Mon Aug 2 02:26:03 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_33, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o727Q3u9177226 for ; Mon, 2 Aug 2010 02:26:03 -0500 X-ASG-Debug-ID: 1280733979-51fa03dc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A5B7F4DD30A for ; Mon, 2 Aug 2010 00:26:20 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id xo7iZAZ20BHPK30X for ; Mon, 02 Aug 2010 00:26:20 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33481696-1927428 for multiple; Mon, 02 Aug 2010 16:56:14 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OfpPY-0005TJ-BU; Mon, 02 Aug 2010 17:26:12 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OfpPI-0004ET-KT; Mon, 02 Aug 2010 17:25:56 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: [PATCH 1/2] dio: track and serialise unaligned direct IO Subject: [PATCH 1/2] dio: track and serialise unaligned direct IO Date: Mon, 2 Aug 2010 17:25:44 +1000 Message-Id: <1280733945-16231-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280733945-16231-1-git-send-email-david@fromorbit.com> References: <1280733945-16231-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1280733981 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36794 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner If we get two unaligned direct IO's to the same filesystem block that is marked as a new allocation (i.e. buffer_new), then both IOs will zero the portion of the block they are not writing data to. As a result, when the IOs complete there will be a portion of the block that contains zeros from the last IO to complete rather than the data that should be there. This is easily manifested by qemu using aio+dio with an unaligned guest filesystem - every IO is unaligned and fileystem corruption is encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) is also a simple reproducer. To avoid this problem, track unaligned IO that triggers sub-block zeroing and check new incoming unaligned IO that require sub-block zeroing against that list. If we get an overlap where the start and end of unaligned IOs hit the same filesystem block, then we need to block the incoming IOs until the IO that is zeroing the block completes. The blocked IO can then continue without needing to do any zeroing and hence won't overwrite valid data with zeros. Signed-off-by: Dave Chinner --- fs/direct-io.c | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 146 insertions(+), 6 deletions(-) diff --git a/fs/direct-io.c b/fs/direct-io.c index a10cb91..611524e 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -71,6 +71,9 @@ struct dio { unsigned start_zero_done; /* flag: sub-blocksize zeroing has been performed at the start of a write */ +#define LAST_SECTOR ((sector_t)-1LL) + sector_t zero_block_front; /* fs block we are zeroing at front */ + sector_t zero_block_rear; /* fs block we are zeroing at rear */ int pages_in_io; /* approximate total IO pages */ size_t size; /* total request size (doesn't change)*/ sector_t block_in_file; /* Current offset into the underlying @@ -135,6 +138,101 @@ struct dio { struct page *pages[DIO_PAGES]; /* page buffer */ }; + +/* + * record fs blocks we are doing zeroing on in a zero block list. + * unaligned IO is not very performant and so is relatively uncommon, + * so a global list should be sufficent to track them. + */ +struct dio_zero_block { + struct list_head dio_list; /* list of io in progress */ + sector_t zero_block; /* block being zeroed */ + struct dio *dio; /* owner dio */ + wait_queue_head_t wq; /* New IO block here */ + atomic_t ref; /* reference count */ +}; + +DEFINE_SPINLOCK(dio_zero_block_lock); +LIST_HEAD(dio_zero_block_list); + +/* + * Add a filesystem block to the list of blocks we are tracking. + */ +static void +dio_start_zero_block(struct dio *dio, sector_t zero_block) +{ + struct dio_zero_block *zb; + + zb = kmalloc(sizeof(*zb), GFP_NOIO); + if (!zb) + return; + INIT_LIST_HEAD(&zb->dio_list); + init_waitqueue_head(&zb->wq); + zb->zero_block = zero_block; + zb->dio = dio; + atomic_set(&zb->ref, 1); + + spin_lock(&dio_zero_block_lock); + list_add(&zb->dio_list, &dio_zero_block_list); + spin_unlock(&dio_zero_block_lock); +} + +static void +dio_drop_zero_block(struct dio_zero_block *zb) +{ + if (atomic_dec_and_test(&zb->ref)) + kfree(zb); +} + +/* + * Check whether a filesystem block is currently being zeroed, and if it is + * wait for it to complete before returning. If we waited for a block being + * zeroed, return 1 to indicate that the block is already initialised, + * otherwise return 0 to indicate that it needs zeroing. + */ +static int +dio_wait_zero_block(struct dio *dio, sector_t zero_block) +{ + struct dio_zero_block *zb; + + spin_lock(&dio_zero_block_lock); + list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + if (zb->dio->inode != dio->inode) + continue; + if (zb->zero_block != zero_block) + continue; + atomic_inc(&zb->ref); + spin_unlock(&dio_zero_block_lock); + wait_event(zb->wq, (list_empty(&zb->dio_list))); + dio_drop_zero_block(zb); + return 1; + } + spin_unlock(&dio_zero_block_lock); + return 0; +} + +/* + * Complete a block zeroing and wake up anyone waiting for it. + */ +static void dio_end_zero_block(struct dio *dio, sector_t zero_block) +{ + struct dio_zero_block *zb; + + spin_lock(&dio_zero_block_lock); + list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + if (zb->dio->inode != dio->inode) + continue; + if (zb->zero_block != zero_block) + continue; + list_del_init(&zb->dio_list); + spin_unlock(&dio_zero_block_lock); + wake_up(&zb->wq); + dio_drop_zero_block(zb); + return; + } + spin_unlock(&dio_zero_block_lock); +} + /* * How many pages are in the queue? */ @@ -253,6 +351,11 @@ static int dio_complete(struct dio *dio, loff_t offset, int ret, bool is_async) aio_complete(dio->iocb, ret, 0); } + if (dio->zero_block_front != LAST_SECTOR) + dio_end_zero_block(dio, dio->zero_block_front); + if (dio->zero_block_rear != LAST_SECTOR) + dio_end_zero_block(dio, dio->zero_block_rear); + if (dio->flags & DIO_LOCKING) /* lockdep: non-owner release */ up_read_non_owner(&dio->inode->i_alloc_sem); @@ -777,6 +880,12 @@ static void clean_blockdev_aliases(struct dio *dio) * block with zeros. This happens only if user-buffer, fileoffset or * io length is not filesystem block-size multiple. * + * We need to track the blocks we are zeroing. If we have concurrent IOs that hit + * the same start or end block, we do not want all the IOs to zero the portion + * they are not writing data to as that will overwrite data from the other IOs. + * Hence we need to block until the first unaligned IO completes before we can + * continue (without executing any zeroing). + * * `end' is zero if we're doing the start of the IO, 1 at the end of the * IO. */ @@ -784,8 +893,8 @@ static void dio_zero_block(struct dio *dio, int end) { unsigned dio_blocks_per_fs_block; unsigned this_chunk_blocks; /* In dio_blocks */ - unsigned this_chunk_bytes; struct page *page; + sector_t fsblock; dio->start_zero_done = 1; if (!dio->blkfactor || !buffer_new(&dio->map_bh)) @@ -797,17 +906,41 @@ static void dio_zero_block(struct dio *dio, int end) if (!this_chunk_blocks) return; + if (end) + this_chunk_blocks = dio_blocks_per_fs_block - this_chunk_blocks; + /* * We need to zero out part of an fs block. It is either at the - * beginning or the end of the fs block. + * beginning or the end of the fs block, but first we need to check if + * there is already a zeroing being run on this block. + * + * If we are doing a sub-block IO (i.e. zeroing both front and rear of + * the same block) we don't need to wait or set a gaurd for the rear of + * the block as we already have one set. */ - if (end) - this_chunk_blocks = dio_blocks_per_fs_block - this_chunk_blocks; + fsblock = dio->block_in_file >> dio->blkfactor; + if (!end || dio->zero_block_front != fsblock) { - this_chunk_bytes = this_chunk_blocks << dio->blkbits; + /* wait for any zeroing already in progress */ + if (dio_wait_zero_block(dio, fsblock)) { + /* skip the range we would have zeroed. */ + dio->next_block_for_io += this_chunk_blocks; + return; + } + + /* + * we are going to zero stuff now, so set a guard to catch + * others that might want to zero the same block. + */ + dio_start_zero_block(dio, fsblock); + if (end) + dio->zero_block_rear = fsblock; + else + dio->zero_block_front = fsblock; + } page = ZERO_PAGE(0); - if (submit_page_section(dio, page, 0, this_chunk_bytes, + if (submit_page_section(dio, page, 0, this_chunk_blocks << dio->blkbits, dio->next_block_for_io)) return; @@ -1191,6 +1324,13 @@ __blockdev_direct_IO_newtrunc(int rw, struct kiocb *iocb, struct inode *inode, */ memset(dio, 0, offsetof(struct dio, pages)); + /* + * zero_blocks need to initialised to largeÑ•t value to avoid + * matching the zero block accidentally. + */ + dio->zero_block_front = LAST_SECTOR; + dio->zero_block_rear = LAST_SECTOR; + dio->flags = flags; if (dio->flags & DIO_LOCKING) { /* watch out for a 0 len io from a tricksy fs */ -- 1.7.1 From BATV+70fc035c0fcfd4a23151+2535+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 2 04:30:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o729UDB1181641 for ; Mon, 2 Aug 2010 04:30:14 -0500 X-ASG-Debug-ID: 1280741903-105100c80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5CBE715CE763 for ; Mon, 2 Aug 2010 02:38:23 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Z4V5JPN1Lna0HyeB for ; Mon, 02 Aug 2010 02:38:23 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OfrLk-0007UW-32; Mon, 02 Aug 2010 09:30:24 +0000 Date: Mon, 2 Aug 2010 05:30:24 -0400 From: Christoph Hellwig To: Dave Chinner Cc: linux-fsdevel@vger.kernel.org, sandeen@sandeen.net, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] dio: track and serialise unaligned direct IO Subject: Re: [PATCH 1/2] dio: track and serialise unaligned direct IO Message-ID: <20100802093024.GA7612@infradead.org> References: <1280733945-16231-1-git-send-email-david@fromorbit.com> <1280733945-16231-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280733945-16231-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280741904 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > +DEFINE_SPINLOCK(dio_zero_block_lock); > +LIST_HEAD(dio_zero_block_list); These two should be static. Otherwise looks good, Reviewed-by: Christoph Hellwig From BATV+70fc035c0fcfd4a23151+2535+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 2 04:32:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o729Whak181777 for ; Mon, 2 Aug 2010 04:32:43 -0500 X-ASG-Debug-ID: 1280742053-107400d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 10B4A15CE77B for ; Mon, 2 Aug 2010 02:40:53 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id aXOqjyROA1ETjGVL for ; Mon, 02 Aug 2010 02:40:53 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OfrOF-0003Xb-V7; Mon, 02 Aug 2010 09:33:00 +0000 Date: Mon, 2 Aug 2010 05:32:59 -0400 From: Christoph Hellwig To: Dave Chinner Cc: linux-fsdevel@vger.kernel.org, sandeen@sandeen.net, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] dio: scale unaligned IO tracking via multiple lists Subject: Re: [PATCH 2/2] dio: scale unaligned IO tracking via multiple lists Message-ID: <20100802093259.GB7612@infradead.org> References: <1280733945-16231-1-git-send-email-david@fromorbit.com> <1280733945-16231-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280733945-16231-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280742054 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 02, 2010 at 05:25:45PM +1000, Dave Chinner wrote: > From: Dave Chinner > > To avoid concerns that a single list and lock tracking the unaligned IOs > will not scale appropriately, create multiple lists and locks and chose them by > hashing the unaligned block being zeroed. > > Signed-off-by: Dave Chinner > --- > fs/direct-io.c | 53 ++++++++++++++++++++++++++++++++++++++++------------- > 1 files changed, 40 insertions(+), 13 deletions(-) > > diff --git a/fs/direct-io.c b/fs/direct-io.c > index 611524e..95dcba4 100644 > --- a/fs/direct-io.c > +++ b/fs/direct-io.c > @@ -152,8 +152,29 @@ struct dio_zero_block { > atomic_t ref; /* reference count */ > }; > > -DEFINE_SPINLOCK(dio_zero_block_lock); > -LIST_HEAD(dio_zero_block_list); > +#define DIO_ZERO_BLOCK_NR 37LL > +struct dio_zero_block_head { > + struct list_head list; > + spinlock_t lock; > +}; > + > +struct dio_zero_block_head dio_zero_blocks[DIO_ZERO_BLOCK_NR]; Again, should be static. > +#define to_dio_zero_list(zb) (&dio_zero_blocks[zb % DIO_ZERO_BLOCK_NR].list) > +#define to_dio_zero_lock(zb) (&dio_zero_blocks[zb % DIO_ZERO_BLOCK_NR].lock) > + struct list_head *list = to_dio_zero_list(zero_block); > + spinlock_t *lock = to_dio_zero_lock(zero_block); What about just finding the dio_zero_block_head and stuffing it into a local variable? Probably doesn't matter in the end anyway. Also looks good. If people really care about making this scale better we could also make it per-sb. One really big problem is that no one tells the users that unaligned direct I/O is a performance problem. We should add a variant of the XFS DIOINFO ioctl to the core VFS, including minimally required and optimal alignment values. From aelder@sgi.com Mon Aug 2 12:47:28 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72HlSah199734 for ; Mon, 2 Aug 2010 12:47:28 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id C7E81AC019; Mon, 2 Aug 2010 10:47:44 -0700 (PDT) Received: from [128.162.232.147] ([128.162.232.147]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 2 Aug 2010 12:47:44 -0500 Subject: Re: [PATCH] xfstests: have getfacl(1) report numeric id's From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20100801141549.GB10192@infradead.org> References: <201007302154.o6ULsNdm008915@stout.americas.sgi.com> <20100801141549.GB10192@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 02 Aug 2010 12:47:44 -0500 Message-ID: <1280771264.2236.61.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 02 Aug 2010 17:47:44.0390 (UTC) FILETIME=[CFC4E260:01CB326A] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2010-08-01 at 10:15 -0400, Christoph Hellwig wrote: > On Fri, Jul 30, 2010 at 04:54:23PM -0500, Alex Elder wrote: > > This patch arranges for calls to getfacl(1) to be given the "-n" > > flag, which requests that user and group id's be listed numerically > > rather than using names. The affected test output files are also > > updated to indicate the effect of the change. > > > > This eliminates some spurious output differences I was seeing, due > > to the presence of NIS in my test environment. > > > > Signed-off-by: Alex Elder > > Looks good, > > > Reviewed-by: Christoph Hellwig > > I wonder if this usage should be documented somewhere for future tests. > Same goes for the use of _cat_passwd and _cat_group. I'll add something to the "README" file in the "Test script environment" section and will post that shortly. -Alex From aelder@sgi.com Mon Aug 2 12:50:44 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72HoimQ199857 for ; Mon, 2 Aug 2010 12:50:44 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1ED838F804B for ; Mon, 2 Aug 2010 10:51:01 -0700 (PDT) Received: from [128.162.232.147] ([128.162.232.147]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 2 Aug 2010 12:51:00 -0500 Subject: [PATCH] xfstests: update README file to document some recent changes From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com Content-Type: text/plain; charset="UTF-8" Date: Mon, 02 Aug 2010 12:51:00 -0500 Message-ID: <1280771460.2236.68.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 02 Aug 2010 17:51:00.0985 (UTC) FILETIME=[44F2E690:01CB326B] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update the README file to document the new _cat_passwd and _cat_group functions, and to recommend passing "-n" to getfacl(1) so it produces numeric output. Signed-off-by: Alex Elder --- README | 14 ++++++++++++++ 1 file changed, 14 insertions(+) Index: b/README =================================================================== --- a/README +++ b/README @@ -160,6 +160,20 @@ Test script environment: string DATE for deterministic output + _cat_passwd, - dump the content of the password + _cat_group or group file (both the local file + and the content of the NIS database + if it is likely to be present) + + 4. General recommendations, usage conventions, etc.: + - When the content of the password or group file is + required, get it using the _cat_passwd and _cat_group + functions, to ensure NIS information is included if NIS + is active. + - When calling getfacl in a test, pass the "-n" argument so + that numeric rather than symbolic identifiers are used in + the output. + Verified output: Each test script has a numerical name, e.g. 007, and an associated From aelder@oss.sgi.com Mon Aug 2 13:02:09 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72I29O0200273 for ; Mon, 2 Aug 2010 13:02:09 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id o72I27CE200245; Mon, 2 Aug 2010 13:02:07 -0500 Date: Mon, 2 Aug 2010 13:02:07 -0500 Message-Id: <201008021802.o72I27CE200245@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.34-10537-g6b0a299 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 209fb87a259ead17e966627b7f053d16a96898da X-Git-Newrev: 6b0a2996a0c023d84bc27ec7528a6e54cb5ea264 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated from 209fb87a259ead17e966627b7f053d16a96898da (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- XFS development tree From aelder@oss.sgi.com Mon Aug 2 13:02:35 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72I2Z9f200633 for ; Mon, 2 Aug 2010 13:02:35 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id o72I2Xwn200349; Mon, 2 Aug 2010 13:02:33 -0500 Date: Mon, 2 Aug 2010 13:02:33 -0500 Message-Id: <201008021802.o72I2Xwn200349@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.34-10537-g6b0a299 X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: 7b6259e7a83647948fa33a736cc832310c8d85aa X-Git-Newrev: 6b0a2996a0c023d84bc27ec7528a6e54cb5ea264 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated 209fb87 xfs simplify and speed up direct I/O completions fb511f2 xfs: move aio completion after unwritten extent conversion 40e2e97 direct-io: move aio_complete into ->end_io 696123f xfs: fix big endian build ecd7f08 xfs: clean up xfs_bmap_get_bp 5d18898 xfs: simplify xfs_truncate_file 939d723 xfs: kill the b_strat callback in xfs_buf a64afb0 xfs: remove obsolete osyncisosync mount option 0664ce8 xfs: clean up filestreams helpers 73523a2 xfs: fix gcc 4.6 set but not read and unused statement warnings 0f1a932 xfs: Fix build when CONFIG_XFS_POSIX_ACL=n 3f34885 xfs: fix unsigned underflow in xfs_free_eofblocks aea1b95 xfs: use GFP_NOFS for page cache allocation 4a7eddd xfs: fix memory reclaim recursion deadlock on locked inode buffer 4386970 xfs: fix xfs_trans_add_item() lockdep warnings 2f11fea xfs: simplify and remove xfs_ireclaim ec53d1d xfs: don't block on buffer read errors a4190f9 xfs: move inode shrinker unregister even earlier fa17b25 xfs: remove a dmapi leftover 78558fe xfs: writepage always has buffers d4f7a5c xfs: allow writeback from kswapd 651701d xfs: remove incorrect log write optimization 2727ccc xfs: unregister inode shrinker before freeing filesystem structures cca28fb xfs: split xfs_itrace_entry f2d6761 xfs: remove xfs_iput ef35e92 xfs: remove xfs_iput_new d2e078c xfs: some iget tracing cleanups / fixes 807cbbd xfs: do not use emums for flags used in tracing 64c8614 xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on umount f2bde9b xfs: small cleanups for xfs_iomap / __xfs_get_blocks 3070451 xfs: reduce stack usage in xfs_iomap 7a36c8a xfs: avoid synchronous transaction in xfs_fs_write_inode 20cb52e xfs: simplify xfs_vm_writepage 89f3b36 xfs: simplify xfs_vm_releasepage 3d9b02e xfs: fix corruption case for block size < page size b4e9181 xfs: remove unused delta tracking code in xfs_bmapi cd8b0bb xfs: remove unused XFS_BMAPI_ flags a59f557 xfs: remove the unused XFS_TRANS_NOSLEEP/XFS_TRANS_WAIT flags 9134c23 xfs: remove the unused XFS_LOG_SLEEP and XFS_LOG_NOSLEEP flags dbb2f65 xfs: kill the unused xlog_debug variable 4e0d5f9 xfs: fix the xfs_log_iovec i_addr type 898621d xfs: simplify inode to transaction joining 4d16e92 xfs: simplify buffer pinning ca30b2a xfs: give li_cb callbacks the correct prototype 7bfa31d xfs: give xfs_item_ops methods the correct prototypes 9412e31 xfs: merge iop_unpin_remove into iop_unpin e98c414 xfs: simplify log item descriptor tracking 3400777 xfs: remove unneeded #include statements 288699f xfs: drop dmapi hooks 16fd536 xfs: track AGs with reclaimable inodes in per-ag radix tree 70e60ce xfs: convert inode shrinker to per-filesystem contexts 7f8275d mm: add context argument to shrinker callback from 7b6259e7a83647948fa33a736cc832310c8d85aa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 209fb87a259ead17e966627b7f053d16a96898da Author: Christoph Hellwig Date: Sun Jul 18 21:17:11 2010 +0000 xfs simplify and speed up direct I/O completions Our current handling of direct I/O completions is rather suboptimal, because we defer it to a workqueue more often than needed, and we perform a much to aggressive flush of the workqueue in case unwritten extent conversions happen. This patch changes the direct I/O reads to not even use a completion handler, as we don't bother to use it at all, and to perform the unwritten extent conversions in caller context for synchronous direct I/O. For a small I/O size direct I/O workload on a consumer grade SSD, such as the untar of a kernel tree inside qemu this patch gives speedups of about 5%. Getting us much closer to the speed of a native block device, or a fully allocated XFS file. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit fb511f2150174b18b28ad54708c1adda0df39b17 Author: Christoph Hellwig Date: Sun Jul 18 21:17:10 2010 +0000 xfs: move aio completion after unwritten extent conversion If we write into an unwritten extent using AIO we need to complete the AIO request after the extent conversion has finished. Without that a read could race to see see the extent still unwritten and return zeros. For synchronous I/O we already take care of that by flushing the xfsconvertd workqueue (which might be a bit of overkill). To do that add iocb and result fields to struct xfs_ioend, so that we can call aio_complete from xfs_end_io after the extent conversion has happened. Note that we need a new result field as io_error is used for positive errno values, while the AIO code can return negative error values and positive transfer sizes. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 40e2e97316af6e62affab7a392e792494b8d9dde Author: Christoph Hellwig Date: Sun Jul 18 21:17:09 2010 +0000 direct-io: move aio_complete into ->end_io Filesystems with unwritten extent support must not complete an AIO request until the transaction to convert the extent has been commited. That means the aio_complete calls needs to be moved into the ->end_io callback so that the filesystem can control when to call it exactly. This makes a bit of a mess out of dio_complete and the ->end_io callback prototype even more complicated. Signed-off-by: Christoph Hellwig Reviewed-by: Jan Kara Signed-off-by: Alex Elder commit 696123fca877905696591829c97a2cef11c8d048 Author: Dave Chinner Date: Mon Jul 26 13:51:46 2010 -0500 xfs: fix big endian build Commit 0fd7275cc42ab734eaa1a2c747e65479bd1e42af ("xfs: fix gcc 4.6 set but not read and unused statement warnings") failed to convert some code inside XFS_NATIVE_HOST (big endian host code only) and hence fails to build on such machines. Fix it. Signed-off-by: Dave Chinner Signed-off-by: Alex Elder commit ecd7f082d68d7fb1c96bcf72071aa85db9c00ddf Author: Christoph Hellwig Date: Thu Jul 22 12:52:08 2010 +1000 xfs: clean up xfs_bmap_get_bp Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 5d18898b20dfed5f373f8a9a7cbe01446036f8e9 Author: Christoph Hellwig Date: Tue Jul 20 17:51:31 2010 +1000 xfs: simplify xfs_truncate_file xfs_truncate_file is only used for truncating quota files. Move it to xfs_qm_syscalls.c so it can be marked static and take advatange of the fact by removing the unused page cache validation and taking the iget into the helper. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 939d723b721eef71060201738653a73443ff4510 Author: Christoph Hellwig Date: Tue Jul 20 17:51:16 2010 +1000 xfs: kill the b_strat callback in xfs_buf The b_strat callback is used by xfs_buf_iostrategy to perform additional checks before submitting a buffer. It is used in xfs_bwrite and when writing out delayed buffers. In xfs_bwrite it we can de-virtualize the call easily as b_strat is set a few lines above the call to xfs_buf_iostrategy. For the delayed buffers the rationale is a bit more complicated: - there are three callers of xfs_buf_delwri_queue, which places buffers on the delwri list: (1) xfs_bdwrite - this sets up b_strat, so it's fine (2) xfs_buf_iorequest. None of the callers can have XBF_DELWRI set: - xlog_bdstrat is only used for log buffers, which are never delwri - _xfs_buf_read explicitly clears the delwri flag - xfs_buf_iodone_work retries log buffers only - xfsbdstrat - only used for reads, superblock writes without the delwri flag, log I/O and file zeroing with explicitly allocated buffers. - xfs_buf_iostrategy - only calls xfs_buf_iorequest if b_strat is not set (3) xfs_buf_unlock - only puts the buffer on the delwri list if the DELWRI flag is already set. The DELWRI flag is only ever set in xfs_bwrite, xfs_buf_iodone_callbacks, or xfs_trans_log_buf. For xfs_buf_iodone_callbacks and xfs_trans_log_buf we require an initialized buf item, which means b_strat was set to xfs_bdstrat_cb in xfs_buf_item_init. Conclusion: we can just get rid of the callback and replace it with explicit calls to xfs_bdstrat_cb. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit a64afb057b607c04383ab5fb53c51421ba18c434 Author: Christoph Hellwig Date: Tue Jul 20 17:50:52 2010 +1000 xfs: remove obsolete osyncisosync mount option Since Linux 2.6.33 the kernel has support for real O_SYNC, which made the osyncisosync option a no-op. Warn the users about this and remove the mount flag for it. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 0664ce8d0fde731d76fa7e86b3afb54f3a6830ff Author: Christoph Hellwig Date: Tue Jul 20 17:31:01 2010 +1000 xfs: clean up filestreams helpers Move xfs_filestream_peek_ag, xxfs_filestream_get_ag and xfs_filestream_put_ag from xfs_filestream.h to xfs_filestream.c where it's only callers are, and remove the inline marker while we're at it to let the compiler decide on the inlining. Also don't return a value from xfs_filestream_put_ag because we don't need it. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 73523a2ecf03f0bfe7c36c244aff8a2ef2208a4a Author: Christoph Hellwig Date: Tue Jul 20 17:54:45 2010 +1000 xfs: fix gcc 4.6 set but not read and unused statement warnings [hch: dropped a few hunks that need structural changes instead] Signed-off-by: Andi Kleen Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 0f1a932f5d4d6ee71afb141914e2d5f11f27eee1 Author: Tony Luck Date: Tue Jul 20 17:54:41 2010 +1000 xfs: Fix build when CONFIG_XFS_POSIX_ACL=n When CONFIG_XFS_POSIX_ACL is not set "xfs_check_acl" is #defined to NULL - which breaks the code attempting to add a tracepoint on this function. Only define the tracepoint when the function exists. Signed-off-by: Tony Luck Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner commit 3f34885cd7c6a3f4deea48e3bbc704d91d5704f4 Author: Kulikov Vasiliy Date: Tue Jul 20 17:54:28 2010 +1000 xfs: fix unsigned underflow in xfs_free_eofblocks map_len is unsigned. Checking map_len <= 0 is buggy when it should be below zero. So, check exact expression instead of map_len. Signed-off-by: Kulikov Vasiliy Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner commit aea1b9532143218f8599ecedbbd6bfbf812385e1 Author: Dave Chinner Date: Tue Jul 20 17:54:12 2010 +1000 xfs: use GFP_NOFS for page cache allocation Avoid a lockdep warning by preventing page cache allocation from recursing back into the filesystem during memory reclaim. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder Signed-off-by: Dave Chinner commit 4a7edddcb5b14ddb5962e6906b6fd6b500d7a361 Author: Dave Chinner Date: Tue Jul 20 17:53:59 2010 +1000 xfs: fix memory reclaim recursion deadlock on locked inode buffer Calling into memory reclaim with a locked inode buffer can deadlock if memory reclaim tries to lock the inode buffer during inode teardown. Convert the relevant memory allocations to use KM_NOFS to avoid this deadlock condition. Reported-by: Peter Watkins Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder Signed-off-by: Dave Chinner commit 438697064aaa2f64e0fcc6586582a3e7ec36005b Author: Dave Chinner Date: Tue Jul 20 17:53:44 2010 +1000 xfs: fix xfs_trans_add_item() lockdep warnings xfs_trans_add_item() is called with ip->i_ilock held, which means it is unsafe for memory reclaim to recurse back into the filesystem (ilock is required in writeback). Hence the allocation needs to be KM_NOFS to avoid recursion. Lockdep report indicating memory allocation being called with the ip->i_ilock held is as follows: [ 1749.866796] ================================= [ 1749.867788] [ INFO: inconsistent lock state ] [ 1749.868327] 2.6.35-rc3-dgc+ #25 [ 1749.868741] --------------------------------- [ 1749.868741] inconsistent {IN-RECLAIM_FS-W} -> {RECLAIM_FS-ON-W} usage. [ 1749.868741] dd/2835 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 1749.868741] (&(&ip->i_lock)->mr_lock){++++?.}, at: [] xfs_ilock+0x10b/0x190 [ 1749.868741] {IN-RECLAIM_FS-W} state was registered at: [ 1749.868741] [] __lock_acquire+0x437/0x1450 [ 1749.868741] [] lock_acquire+0xa6/0x160 [ 1749.868741] [] down_write_nested+0x65/0xb0 [ 1749.868741] [] xfs_ilock+0x10b/0x190 [ 1749.868741] [] xfs_reclaim_inode+0x99/0x310 [ 1749.868741] [] xfs_inode_ag_walk+0x8b/0x150 [ 1749.868741] [] xfs_inode_ag_iterator+0x8b/0xf0 [ 1749.868741] [] xfs_reclaim_inode_shrink+0x88/0x90 [ 1749.868741] [] shrink_slab+0x137/0x1a0 [ 1749.868741] [] balance_pgdat+0x421/0x6a0 [ 1749.868741] [] kswapd+0x11d/0x320 [ 1749.868741] [] kthread+0x96/0xa0 [ 1749.868741] [] kernel_thread_helper+0x4/0x10 [ 1749.868741] irq event stamp: 4234335 [ 1749.868741] hardirqs last enabled at (4234335): [] kmem_cache_free+0x115/0x220 [ 1749.868741] hardirqs last disabled at (4234334): [] kmem_cache_free+0x3d/0x220 [ 1749.868741] softirqs last enabled at (4233112): [] __do_softirq+0x142/0x260 [ 1749.868741] softirqs last disabled at (4233095): [] call_softirq+0x1c/0x50 [ 1749.868741] [ 1749.868741] other info that might help us debug this: [ 1749.868741] 2 locks held by dd/2835: [ 1749.868741] #0: (&(&ip->i_iolock)->mr_lock#2){+.+.+.}, at: [] xfs_ilock_nowait+0xed/0x200 [ 1749.868741] #1: (&(&ip->i_lock)->mr_lock){++++?.}, at: [] xfs_ilock+0x10b/0x190 [ 1749.868741] [ 1749.868741] stack backtrace: [ 1749.868741] Pid: 2835, comm: dd Not tainted 2.6.35-rc3-dgc+ #25 [ 1749.868741] Call Trace: [ 1749.868741] [] print_usage_bug+0x18a/0x190 [ 1749.868741] [] ? save_stack_trace+0x2f/0x50 [ 1749.868741] [] ? check_usage_backwards+0x0/0xf0 [ 1749.868741] [] mark_lock+0x331/0x400 [ 1749.868741] [] mark_held_locks+0x67/0x90 [ 1749.868741] [] lockdep_trace_alloc+0xa1/0xe0 [ 1749.868741] [] kmem_cache_alloc+0x39/0x1e0 [ 1749.868741] [] kmem_zone_alloc+0x94/0xe0 [ 1749.868741] [] kmem_zone_zalloc+0x1e/0x50 [ 1749.868741] [] xfs_trans_add_item+0x72/0xb0 [ 1749.868741] [] xfs_trans_ijoin+0xa1/0xd0 [ 1749.868741] [] xfs_itruncate_finish+0x312/0x5d0 [ 1749.868741] [] xfs_free_eofblocks+0x227/0x280 [ 1749.868741] [] xfs_release+0x138/0x190 [ 1749.868741] [] xfs_file_release+0x15/0x20 [ 1749.868741] [] fput+0x13f/0x260 [ 1749.868741] [] filp_close+0x52/0x80 [ 1749.868741] [] sys_close+0xb9/0x120 [ 1749.868741] [] system_call_fastpath+0x16/0x1b Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder Signed-off-by: Dave Chinner commit 2f11feabb19748c0ffa2eb82d438e8a91b9f6ea0 Author: Dave Chinner Date: Tue Jul 20 17:53:25 2010 +1000 xfs: simplify and remove xfs_ireclaim xfs_ireclaim has to get and put te pag structure because it is only called with the inode to reclaim. The one caller of this function already has a reference on the pag and a pointer to is, so move the radix tree delete to the caller and remove xfs_ireclaim completely. This avoids a xfs_perag_get/put on every inode being reclaimed. The overhead was noticed in a bug report at: https://bugzilla.kernel.org/show_bug.cgi?id=16348 Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder Signed-off-by: Dave Chinner commit ec53d1dbb3ca960e7b552397613358ba1dbd12bd Author: Dave Chinner Date: Tue Jul 20 17:52:59 2010 +1000 xfs: don't block on buffer read errors xfs_buf_read() fails to detect dispatch errors before attempting to wait on sychronous IO. If there was an error, it will get stuck forever, waiting for an I/O that was never started. Make sure the error is detected correctly. Further, such a failure can leave locked pages in the page cache which will cause a later operation to hang on the page. Ensure that we correctly process pages in the buffers when we get a dispatch error. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner commit a4190f90b4e22bde8b01b0086e00dd95439e2edd Author: Dave Chinner Date: Mon Jul 12 06:40:58 2010 +0000 xfs: move inode shrinker unregister even earlier I missed Dave Chinner's second revision of this change, and pushed his first version out to the repository instead. commit a476c59ebb279d738718edc0e3fb76aab3687114 Author: Dave Chinner This commit compensates for that by moving a block of code up a bit further, with a result that matches the the effect of Dave's second version. Dave's first version was: Reviewed-by: Eric Sandeen Dave's second version was: Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder Reviewed-by: Eric Sandeen commit fa17b25e9f95375081b43a741cf1c188682ec588 Author: Christoph Hellwig Date: Sat Jul 3 09:21:17 2010 +0000 xfs: remove a dmapi leftover The open_exec file operation is only added by the external dmapi patch. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Signed-off-by: Alex Elder commit 78558fe8d8326b2395da33456cd9eec57ffc081a Author: Christoph Hellwig Date: Mon Jun 28 10:34:57 2010 -0400 xfs: writepage always has buffers These days we always have buffers thanks to ->page_mkwrite. And we already have an assert a few lines above tripping in case that was not true due to a bug. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit d4f7a5cbd5449a3d2097f601f588886ea7b70dc3 Author: Christoph Hellwig Date: Mon Jun 28 10:34:44 2010 -0400 xfs: allow writeback from kswapd We only need disable I/O from direct or memcg reclaim. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 651701d71da4dc0ac607f17a638e77906f0d280e Author: Christoph Hellwig Date: Mon Jun 28 10:34:34 2010 -0400 xfs: remove incorrect log write optimization We do need a barrier for the first buffer of a split log write. Otherwise we might incorrectly stamp the tail LSN into transactions in the first part of the split write, or not flush data I/O before updating the inode size. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 2727ccc950ae17375b15005403e1c35ba8fec1df Author: Dave Chinner Date: Fri Jun 25 11:08:40 2010 +1000 xfs: unregister inode shrinker before freeing filesystem structures Currently we don't remove the XFS mount from the shrinker list until late in the unmount path. By this time, we have already torn down the internals of the filesystem (e.g. the per-ag structures), and hence if the shrinker is executed between the teardown and the unregistering, the shrinker will get NULL per-ag structure pointers and panic trying to dereference them. Fix this by removing the xfs mount from the shrinker list before tearing down it's internal structures. Signed-off-by: Dave Chinner Reviewed-by: Eric Sandeen Signed-off-by: Alex Elder commit cca28fb83d9e60779bb348edc33a62068e5f04a4 Author: Christoph Hellwig Date: Thu Jun 24 11:57:09 2010 +1000 xfs: split xfs_itrace_entry Replace the xfs_itrace_entry catchall with specific trace points. For most simple callers we now use the simple inode class, which used to be the iget class, but add more details tracing for namespace events, which now includes the name of the directory entries manipulated. Remove the xfs_inactive trace point, which is a duplicate of the clear_inode one, and the xfs_change_file_space trace point, which is immediately followed by the more specific alloc/free space trace points. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit f2d6761433d69d94e0b39ac44ef0f0f0b0508065 Author: Christoph Hellwig Date: Thu Jun 24 11:52:50 2010 +1000 xfs: remove xfs_iput xfs_iput is just a small wrapper for xfs_iunlock + IRELE. Having this out of line wrapper means the trace events in those two can't track their caller properly. So just remove the wrapper and opencode the unlock + rele in the few callers. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit ef35e9255d4ed12522e836fbcec861e7306d794a Author: Christoph Hellwig Date: Thu Jun 24 11:51:19 2010 +1000 xfs: remove xfs_iput_new We never get an i_mode of 0 or a locked VFS inode until we pass in the XFS_IGET_CREATE flag to xfs_iget, which makes xfs_iput_new equivalent to xfs_iput for the only caller. In addition to that xfs_nfs_get_inode does not even need to lock the inode given that the generation never changes for a life inode, so just pass a 0 lock_flags to xfs_iget and release the inode using IRELE in the error path. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit d2e078c33c24f97411b0fdd7cd2173e68125e7e3 Author: Christoph Hellwig Date: Thu Jun 24 11:50:22 2010 +1000 xfs: some iget tracing cleanups / fixes The xfs_iget_alloc/found tracepoints are a bit misnamed and misplaced. Rename them to xfs_iget_hit/xfs_iget_miss and move them to the beggining of the xfs_iget_cache_hit/miss functions. Add a new xfs_iget_reclaim_fail tracepoint for the case where we fail to re-initialize a VFS inode, and add a second instance of the xfs_iget_skip tracepoint for the case of a failed igrab() call. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 807cbbdb438d172b87b380eebc1f1c1a5a3549b2 Author: Christoph Hellwig Date: Thu Jun 24 11:49:12 2010 +1000 xfs: do not use emums for flags used in tracing The tracing code can't print flags defined as enums. Most flags that we want to print are defines as macros already, but move the few remaining ones over to make the trace output more useful. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 64c86149410bc62d9ac27a0594b3402a2aca03d8 Author: Christoph Hellwig Date: Thu Jun 24 11:45:34 2010 +1000 xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on umount On the final put of a superblock the VFS already calls sync_filesystem for us to write out all data and wait for it. No need to start another asynchronous writeback inside ->put_super. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit f2bde9b89b4d67c9bc3b963cb996f449ddcd27a4 Author: Christoph Hellwig Date: Thu Jun 24 11:44:35 2010 +1000 xfs: small cleanups for xfs_iomap / __xfs_get_blocks Remove the flags argument to __xfs_get_blocks as we can easily derive it from the direct argument, and remove the unused BMAPI_MMAP flag. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 3070451eea1ed8e3bde0573183c7d8ac25fd5e97 Author: Christoph Hellwig Date: Thu Jun 24 11:42:19 2010 +1000 xfs: reduce stack usage in xfs_iomap xfs_iomap passes a xfs_bmbt_irec pointer to xfs_iomap_write_direct and xfs_iomap_write_allocate to give them the results of our read-only xfs_bmapi query. Instead of allocating a new xfs_bmbt_irec on stack for the next call to xfs_bmapi re use the one we got passed as it's not used after this point. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 7a36c8a98a7dd05756bb147be2ac350325ff5830 Author: Christoph Hellwig Date: Thu Jun 24 11:39:25 2010 +1000 xfs: avoid synchronous transaction in xfs_fs_write_inode We already rely on the fact that the sync code will cause a synchronous log force later on (currently via xfs_fs_sync_fs -> xfs_quiesce_data -> xfs_sync_data), so no need to do this here. This allows us to avoid a lot of synchronous log forces during sync, which pays of especially with delayed logging enabled. Some compilebench numbers that show this: xfs (delayed logging, 256k logbufs) =================================== intial create 25.94 MB/s 25.75 MB/s 25.64 MB/s create 8.54 MB/s 9.12 MB/s 9.15 MB/s patch 2.47 MB/s 2.47 MB/s 3.17 MB/s compile 29.65 MB/s 30.51 MB/s 27.33 MB/s clean 90.92 MB/s 98.83 MB/s 128.87 MB/s read tree 11.90 MB/s 11.84 MB/s 8.56 MB/s read compiled 28.75 MB/s 29.96 MB/s 24.25 MB/s delete tree 8.39 seconds 8.12 seconds 8.46 seconds delete compiled 8.35 seconds 8.44 seconds 5.11 seconds stat tree 6.03 seconds 5.59 seconds 5.19 seconds stat compiled tree 9.00 seconds 9.52 seconds 8.49 seconds xfs + write_inode log_force removal =================================== intial create 25.87 MB/s 25.76 MB/s 25.87 MB/s create 15.18 MB/s 14.80 MB/s 14.94 MB/s patch 3.13 MB/s 3.14 MB/s 3.11 MB/s compile 36.74 MB/s 37.17 MB/s 36.84 MB/s clean 226.02 MB/s 222.58 MB/s 217.94 MB/s read tree 15.14 MB/s 15.02 MB/s 15.14 MB/s read compiled tree 29.30 MB/s 29.31 MB/s 29.32 MB/s delete tree 6.22 seconds 6.14 seconds 6.15 seconds delete compiled tree 5.75 seconds 5.92 seconds 5.81 seconds stat tree 4.60 seconds 4.51 seconds 4.56 seconds stat compiled tree 4.07 seconds 3.87 seconds 3.96 seconds In addition to that also remove the delwri inode flush that is unessecary now that bulkstat is always coherent. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 20cb52ebd1b5ca6fa8a5d9b6b1392292f5ca8a45 Author: Christoph Hellwig Date: Thu Jun 24 09:46:01 2010 +1000 xfs: simplify xfs_vm_writepage The writepage implementation in XFS still tries to deal with dirty but unmapped buffers which used to caused by writes through shared mmaps. Since the introduction of ->page_mkwrite these can't happen anymore, so remove the code dealing with them. Note that the all_bh variable which causes us to start I/O on all buffers on the pages was controlled by the count of unmapped buffers, which also included those not actually dirty. It's now unconditionally initialized to 0 but set to 1 for the case of small file size extensions. It probably can be removed entirely, but that's left for another patch. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 89f3b363967a958e756a549c8747c1fb9c930c1a Author: Christoph Hellwig Date: Thu Jun 24 09:45:48 2010 +1000 xfs: simplify xfs_vm_releasepage Currently the xfs releasepage implementation has code to deal with converting delayed allocated and unwritten space. But we never get called for those as we always convert delayed and unwritten space when cleaning a page, or drop the state from the buffers in block_invalidatepage. We still keep a WARN_ON on those cases for now, but remove all the case dealing with it, which allows to fold xfs_page_state_convert into xfs_vm_writepage and remove the !startio case from the whole writeback path. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 3d9b02e3c76531687ab5314e0edf266256f13c2d Author: Eric Sandeen Date: Thu Jun 24 09:45:30 2010 +1000 xfs: fix corruption case for block size < page size xfstests 194 first truncats a file back and then extends it again by truncating it to a larger size. This causes discard_buffer to drop the mapped, but not the uptodate bit and thus creates something that xfs_page_state_convert takes for unmapped space created by mmap because it doesn't check for the dirty bit, which also gets cleared by discard_buffer and checked by other ->writepage implementations like block_write_full_page. Handle this kind of buffers early, and unlike Eric's first version of the patch simply ASSERT that the buffers is dirty, given that the mmap write case can't happen anymore since the introduction of ->page_mkwrite. The now dead code dealing with that will be deleted in a follow on patch. Signed-off-by: Eric Sandeen Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit b4e9181e772b0c8b9038c5822ead368b96c2b533 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: remove unused delta tracking code in xfs_bmapi This code was introduced four years ago in commit 3e57ecf640428c01ba1ed8c8fc538447ada1715b without any review and has been unused since. Remove it just as the rest of the code introduced in that commit to reduce that stack usage and complexity in this central piece of code. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit cd8b0bb3c49d0691e9e7b4cf19e21ca63b92c053 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: remove unused XFS_BMAPI_ flags Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit a59f55703c3725b2fa582924f51db62b58be05bb Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: remove the unused XFS_TRANS_NOSLEEP/XFS_TRANS_WAIT flags Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 9134c2332ecb9154860669d778ef2808f06503ec Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: remove the unused XFS_LOG_SLEEP and XFS_LOG_NOSLEEP flags Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit dbb2f6529feeee8f4de77849edeee2e60c40c805 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: kill the unused xlog_debug variable Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 4e0d5f926b80b06234a4ed664d6ae8c54fb08c4b Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: fix the xfs_log_iovec i_addr type By making this member a void pointer we can get rid of a lot of pointless casts. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 898621d5a72c6799a9a13fce20443b4b6699899c Author: Christoph Hellwig Date: Thu Jun 24 11:36:58 2010 +1000 xfs: simplify inode to transaction joining Currently we need to either call IHOLD or xfs_trans_ihold on an inode when joining it to a transaction via xfs_trans_ijoin. This patches instead makes xfs_trans_ijoin usable on it's own by doing an implicity xfs_trans_ihold, which also allows us to drop the third argument. For the case where we want to hold a reference on the inode a xfs_trans_ijoin_ref wrapper is added which does the IHOLD and marks the inode for needing an xfs_iput. In addition to the cleaner interface to the caller this also simplifies the implementation. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 4d16e9246fc3b3cf7bc95609eff66929a39daa06 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: simplify buffer pinning Get rid of the xfs_buf_pin/xfs_buf_unpin/xfs_buf_ispin helpers and opencode them in their only callers, just like we did for the inode pinning a while ago. Also remove duplicate trace points - the bufitem tracepoints cover all the information that is present in a buffer tracepoint. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit ca30b2a7b7ac899ac4da6030ccbebf2f137b8e6d Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: give li_cb callbacks the correct prototype Stop the function pointer casting madness and give all the li_cb instances correct prototype. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 7bfa31d8e0f90b65ff23be94fca65ce261b43fc8 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: give xfs_item_ops methods the correct prototypes Stop the function pointer casting madness and give all the xfs_item_ops the correct prototypes. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 9412e3181c0ef82efc3d8e88d73e583ec10c34e9 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: merge iop_unpin_remove into iop_unpin The unpin_remove item operation instances always share most of the implementation with the respective unpin implementation. So instead of keeping two different entry points add a remove flag to the unpin operation and share the code more easily. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit e98c414f9a3134fe7efc56ef8f1d394b54bfd40e Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: simplify log item descriptor tracking Currently we track log item descriptor belonging to a transaction using a complex opencoded chunk allocator. This code has been there since day one and seems to work around the lack of an efficient slab allocator. This patch replaces it with dynamically allocated log item descriptors from a dedicated slab pool, linked to the transaction by a linked list. This allows to greatly simplify the log item descriptor tracking to the point where it's just a couple hundred lines in xfs_trans.c instead of a separate file. The external API has also been simplified while we're at it - the xfs_trans_add_item and xfs_trans_del_item functions to add/ delete items from a transaction have been simplified to the bare minium, and the xfs_trans_find_item function is replaced with a direct dereference of the li_desc field. All debug code walking the list of log items in a transaction is down to a simple list_for_each_entry. Note that we could easily use a singly linked list here instead of the double linked list from list.h as the fastpath only does deletion from sequential traversal. But given that we don't have one available as a library function yet I use the list.h functions for simplicity. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 3400777ff03a3cd4fdbc6cb15676fc7e7ceefc00 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: remove unneeded #include statements Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 288699fecaffa1ef8f75f92020cbb593a772e487 Author: Christoph Hellwig Date: Wed Jun 23 18:11:15 2010 +1000 xfs: drop dmapi hooks Dmapi support was never merged upstream, but we still have a lot of hooks bloating XFS for it, all over the fast pathes of the filesystem. This patch drops over 700 lines of dmapi overhead. If we'll ever get HSM support in mainline at least the namespace events can be done much saner in the VFS instead of the individual filesystem, so it's not like this is much help for future work. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner commit 16fd5367370099b59d96e30bb7d9de8d419659f2 Author: Dave Chinner Date: Tue Jul 20 09:43:39 2010 +1000 xfs: track AGs with reclaimable inodes in per-ag radix tree https://bugzilla.kernel.org/show_bug.cgi?id=16348 When the filesystem grows to a large number of allocation groups, the summing of recalimable inodes gets expensive. In many cases, most AGs won't have any reclaimable inodes and so we are wasting CPU time aggregating over these AGs. This is particularly important for the inode shrinker that gets called frequently under memory pressure. To avoid the overhead, track AGs with reclaimable inodes in the per-ag radix tree so that we can find all the AGs with reclaimable inodes via a simple gang tag lookup. This involves setting the tag when the first reclaimable inode is tracked in the AG, and removing the tag when the last reclaimable inode is removed from the tree. Then the summation process becomes a loop walking the radix tree summing AGs with the reclaim tag set. This significantly reduces the overhead of scanning - a 6400 AG filesystea now only uses about 25% of a cpu in kswapd while slab reclaim progresses instead of being permanently stuck at 100% CPU and making little progress. Clean filesystems filesystems will see no overhead and the overhead only increases linearly with the number of dirty AGs. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 70e60ce71516c3a9e882edb70a09f696a05961db Author: Dave Chinner Date: Tue Jul 20 08:07:02 2010 +1000 xfs: convert inode shrinker to per-filesystem contexts Now the shrinker passes us a context, wire up a shrinker context per filesystem. This allows us to remove the global mount list and the locking problems that introduced. It also means that a shrinker call does not need to traverse clean filesystems before finding a filesystem with reclaimable inodes. This significantly reduces scanning overhead when lots of filesystems are present. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 7f8275d0d660c146de6ee3017e1e2e594c49e820 Author: Dave Chinner Date: Mon Jul 19 14:56:17 2010 +1000 mm: add context argument to shrinker callback The current shrinker implementation requires the registered callback to have global state to work from. This makes it difficult to shrink caches that are not global (e.g. per-filesystem caches). Pass the shrinker structure to the callback so that users can embed the shrinker structure in the context the shrinker needs to operate on and get back to it in the callback via container_of(). Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 4 +- fs/xfs/linux-2.6/xfs_acl.c | 2 +- fs/xfs/linux-2.6/xfs_aops.c | 611 +++++++++++++------------------------ fs/xfs/linux-2.6/xfs_aops.h | 4 +- fs/xfs/linux-2.6/xfs_buf.c | 67 ++--- fs/xfs/linux-2.6/xfs_buf.h | 119 ++++---- fs/xfs/linux-2.6/xfs_dmapi_priv.h | 28 -- fs/xfs/linux-2.6/xfs_export.c | 8 +- fs/xfs/linux-2.6/xfs_file.c | 104 +------ fs/xfs/linux-2.6/xfs_fs_subr.c | 4 - fs/xfs/linux-2.6/xfs_fs_subr.h | 25 -- fs/xfs/linux-2.6/xfs_ioctl.c | 27 +-- fs/xfs/linux-2.6/xfs_ioctl32.c | 6 +- fs/xfs/linux-2.6/xfs_iops.c | 10 +- fs/xfs/linux-2.6/xfs_linux.h | 1 - fs/xfs/linux-2.6/xfs_quotaops.c | 1 - fs/xfs/linux-2.6/xfs_super.c | 173 ++++-------- fs/xfs/linux-2.6/xfs_super.h | 7 - fs/xfs/linux-2.6/xfs_sync.c | 179 +++++++----- fs/xfs/linux-2.6/xfs_sync.h | 5 - fs/xfs/linux-2.6/xfs_trace.c | 4 - fs/xfs/linux-2.6/xfs_trace.h | 131 ++++++-- fs/xfs/quota/xfs_dquot.c | 114 +++---- fs/xfs/quota/xfs_dquot_item.c | 301 ++++++++----------- fs/xfs/quota/xfs_qm.c | 22 +- fs/xfs/quota/xfs_qm_bhv.c | 10 - fs/xfs/quota/xfs_qm_stats.c | 10 - fs/xfs/quota/xfs_qm_syscalls.c | 89 ++++-- fs/xfs/quota/xfs_trans_dquot.c | 35 +-- fs/xfs/support/debug.c | 1 - fs/xfs/xfs_alloc.c | 15 +- fs/xfs/xfs_alloc.h | 20 +- fs/xfs/xfs_alloc_btree.c | 5 - fs/xfs/xfs_attr.c | 91 ++---- fs/xfs/xfs_attr_leaf.c | 5 +- fs/xfs/xfs_bmap.c | 327 +++----------------- fs/xfs/xfs_bmap.h | 37 +-- fs/xfs/xfs_bmap_btree.c | 5 - fs/xfs/xfs_btree.c | 5 - fs/xfs/xfs_buf_item.c | 228 +++++++-------- fs/xfs/xfs_buf_item.h | 2 +- fs/xfs/xfs_da_btree.c | 20 +- fs/xfs/xfs_dfrag.c | 16 +- fs/xfs/xfs_dir2.c | 11 +- fs/xfs/xfs_dir2_block.c | 8 +- fs/xfs/xfs_dir2_data.c | 2 - fs/xfs/xfs_dir2_leaf.c | 4 +- fs/xfs/xfs_dir2_node.c | 2 - fs/xfs/xfs_dir2_sf.c | 2 - fs/xfs/xfs_dmapi.h | 170 ---------- fs/xfs/xfs_dmops.c | 55 ---- fs/xfs/xfs_error.c | 4 - fs/xfs/xfs_extfree_item.c | 278 +++++++---------- fs/xfs/xfs_filestream.c | 84 +++++- fs/xfs/xfs_filestream.h | 82 ----- fs/xfs/xfs_fsops.c | 7 +- fs/xfs/xfs_ialloc.c | 4 - fs/xfs/xfs_ialloc_btree.c | 4 - fs/xfs/xfs_iget.c | 108 +------- fs/xfs/xfs_inode.c | 60 ++--- fs/xfs/xfs_inode.h | 4 +- fs/xfs/xfs_inode_item.c | 273 ++++++----------- fs/xfs/xfs_inode_item.h | 12 +- fs/xfs/xfs_iomap.c | 76 +++--- fs/xfs/xfs_iomap.h | 22 +- fs/xfs/xfs_itable.c | 8 +- fs/xfs/xfs_log.c | 16 +- fs/xfs/xfs_log.h | 11 +- fs/xfs/xfs_log_cil.c | 4 +- fs/xfs/xfs_log_recover.c | 42 +-- fs/xfs/xfs_mount.c | 3 - fs/xfs/xfs_mount.h | 71 +----- fs/xfs/xfs_rename.c | 63 +---- fs/xfs/xfs_rtalloc.c | 9 +- fs/xfs/xfs_rw.c | 15 - fs/xfs/xfs_trans.c | 211 ++++++++----- fs/xfs/xfs_trans.h | 117 +------- fs/xfs/xfs_trans_ail.c | 1 - fs/xfs/xfs_trans_buf.c | 75 +---- fs/xfs/xfs_trans_extfree.c | 23 +- fs/xfs/xfs_trans_inode.c | 74 ++--- fs/xfs/xfs_trans_item.c | 441 -------------------------- fs/xfs/xfs_trans_priv.h | 18 +- fs/xfs/xfs_utils.c | 87 ------ fs/xfs/xfs_utils.h | 1 - fs/xfs/xfs_vnodeops.c | 293 ++++-------------- 86 files changed, 1681 insertions(+), 4052 deletions(-) delete mode 100644 fs/xfs/linux-2.6/xfs_dmapi_priv.h delete mode 100644 fs/xfs/linux-2.6/xfs_fs_subr.h delete mode 100644 fs/xfs/xfs_dmapi.h delete mode 100644 fs/xfs/xfs_dmops.c delete mode 100644 fs/xfs/xfs_trans_item.c hooks/post-receive -- XFS development tree From aelder@sgi.com Mon Aug 2 13:44:45 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72IiitQ202590 for ; Mon, 2 Aug 2010 13:44:44 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id C1459AC006; Mon, 2 Aug 2010 11:45:00 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.3/8.14.2) with ESMTP id o72Ij0H8021378; Mon, 2 Aug 2010 13:45:00 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.3/8.14.3/Submit) id o72Ij016021377; Mon, 2 Aug 2010 13:45:00 -0500 From: Alex Elder Message-Id: <201008021845.o72Ij016021377@stout.americas.sgi.com> Date: Mon, 02 Aug 2010 13:44:59 -0500 To: torvalds@linux-foundation.org Subject: [GIT PULL] XFS update for 2.6.36-rc1 Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The following changes since commit 9fe6206f400646a2322096b56c59891d530e8d51: Linux 2.6.35 (2010-08-01 15:11:14 -0700) are available in the git repository at: git://oss.sgi.com/xfs/xfs for-linus Alex Elder (1): Merge branch 'v2.6.35' Christoph Hellwig (38): xfs: drop dmapi hooks xfs: remove unneeded #include statements xfs: simplify log item descriptor tracking xfs: merge iop_unpin_remove into iop_unpin xfs: give xfs_item_ops methods the correct prototypes xfs: give li_cb callbacks the correct prototype xfs: simplify buffer pinning xfs: simplify inode to transaction joining xfs: fix the xfs_log_iovec i_addr type xfs: kill the unused xlog_debug variable xfs: remove the unused XFS_LOG_SLEEP and XFS_LOG_NOSLEEP flags xfs: remove the unused XFS_TRANS_NOSLEEP/XFS_TRANS_WAIT flags xfs: remove unused XFS_BMAPI_ flags xfs: remove unused delta tracking code in xfs_bmapi xfs: simplify xfs_vm_releasepage xfs: simplify xfs_vm_writepage xfs: avoid synchronous transaction in xfs_fs_write_inode xfs: reduce stack usage in xfs_iomap xfs: small cleanups for xfs_iomap / __xfs_get_blocks xfs: remove explicit xfs_sync_data/xfs_sync_attr calls on umount xfs: do not use emums for flags used in tracing xfs: some iget tracing cleanups / fixes xfs: remove xfs_iput_new xfs: remove xfs_iput xfs: split xfs_itrace_entry xfs: remove incorrect log write optimization xfs: allow writeback from kswapd xfs: writepage always has buffers xfs: remove a dmapi leftover xfs: fix gcc 4.6 set but not read and unused statement warnings xfs: clean up filestreams helpers xfs: remove obsolete osyncisosync mount option xfs: kill the b_strat callback in xfs_buf xfs: simplify xfs_truncate_file xfs: clean up xfs_bmap_get_bp direct-io: move aio_complete into ->end_io xfs: move aio completion after unwritten extent conversion xfs simplify and speed up direct I/O completions Dave Chinner (8): xfs: unregister inode shrinker before freeing filesystem structures xfs: move inode shrinker unregister even earlier xfs: don't block on buffer read errors xfs: simplify and remove xfs_ireclaim xfs: fix xfs_trans_add_item() lockdep warnings xfs: fix memory reclaim recursion deadlock on locked inode buffer xfs: use GFP_NOFS for page cache allocation xfs: fix big endian build Eric Sandeen (1): xfs: fix corruption case for block size < page size Kulikov Vasiliy (1): xfs: fix unsigned underflow in xfs_free_eofblocks Tony Luck (1): xfs: Fix build when CONFIG_XFS_POSIX_ACL=n Documentation/filesystems/xfs.txt | 11 - fs/direct-io.c | 26 +- fs/ext4/inode.c | 10 +- fs/ocfs2/aops.c | 7 +- fs/xfs/Makefile | 4 +- fs/xfs/linux-2.6/xfs_acl.c | 2 +- fs/xfs/linux-2.6/xfs_aops.c | 611 +++++++++++++------------------------ fs/xfs/linux-2.6/xfs_aops.h | 4 +- fs/xfs/linux-2.6/xfs_buf.c | 62 ++--- fs/xfs/linux-2.6/xfs_buf.h | 119 ++++---- fs/xfs/linux-2.6/xfs_dmapi_priv.h | 28 -- fs/xfs/linux-2.6/xfs_export.c | 8 +- fs/xfs/linux-2.6/xfs_file.c | 104 +------ fs/xfs/linux-2.6/xfs_fs_subr.c | 4 - fs/xfs/linux-2.6/xfs_fs_subr.h | 25 -- fs/xfs/linux-2.6/xfs_ioctl.c | 27 +-- fs/xfs/linux-2.6/xfs_ioctl32.c | 6 +- fs/xfs/linux-2.6/xfs_iops.c | 10 +- fs/xfs/linux-2.6/xfs_linux.h | 1 - fs/xfs/linux-2.6/xfs_quotaops.c | 1 - fs/xfs/linux-2.6/xfs_super.c | 171 ++++------- fs/xfs/linux-2.6/xfs_super.h | 7 - fs/xfs/linux-2.6/xfs_sync.c | 49 ++- fs/xfs/linux-2.6/xfs_sync.h | 3 - fs/xfs/linux-2.6/xfs_trace.c | 4 - fs/xfs/linux-2.6/xfs_trace.h | 128 ++++++-- fs/xfs/quota/xfs_dquot.c | 114 +++---- fs/xfs/quota/xfs_dquot_item.c | 301 ++++++++----------- fs/xfs/quota/xfs_qm.c | 15 +- fs/xfs/quota/xfs_qm_bhv.c | 10 - fs/xfs/quota/xfs_qm_stats.c | 10 - fs/xfs/quota/xfs_qm_syscalls.c | 89 ++++-- fs/xfs/quota/xfs_trans_dquot.c | 35 +-- fs/xfs/support/debug.c | 1 - fs/xfs/xfs_alloc.c | 15 +- fs/xfs/xfs_alloc.h | 20 +- fs/xfs/xfs_alloc_btree.c | 5 - fs/xfs/xfs_attr.c | 91 ++---- fs/xfs/xfs_attr_leaf.c | 5 +- fs/xfs/xfs_bmap.c | 327 +++----------------- fs/xfs/xfs_bmap.h | 37 +-- fs/xfs/xfs_bmap_btree.c | 5 - fs/xfs/xfs_btree.c | 5 - fs/xfs/xfs_buf_item.c | 228 +++++++-------- fs/xfs/xfs_buf_item.h | 2 +- fs/xfs/xfs_da_btree.c | 20 +- fs/xfs/xfs_dfrag.c | 16 +- fs/xfs/xfs_dir2.c | 11 +- fs/xfs/xfs_dir2_block.c | 8 +- fs/xfs/xfs_dir2_data.c | 2 - fs/xfs/xfs_dir2_leaf.c | 4 +- fs/xfs/xfs_dir2_node.c | 2 - fs/xfs/xfs_dir2_sf.c | 2 - fs/xfs/xfs_dmapi.h | 170 ---------- fs/xfs/xfs_dmops.c | 55 ---- fs/xfs/xfs_error.c | 4 - fs/xfs/xfs_extfree_item.c | 278 +++++++---------- fs/xfs/xfs_filestream.c | 84 +++++- fs/xfs/xfs_filestream.h | 82 ----- fs/xfs/xfs_fsops.c | 7 +- fs/xfs/xfs_ialloc.c | 4 - fs/xfs/xfs_ialloc_btree.c | 4 - fs/xfs/xfs_iget.c | 108 +------- fs/xfs/xfs_inode.c | 60 ++--- fs/xfs/xfs_inode.h | 4 +- fs/xfs/xfs_inode_item.c | 273 ++++++----------- fs/xfs/xfs_inode_item.h | 12 +- fs/xfs/xfs_iomap.c | 76 +++--- fs/xfs/xfs_iomap.h | 22 +- fs/xfs/xfs_itable.c | 8 +- fs/xfs/xfs_log.c | 16 +- fs/xfs/xfs_log.h | 11 +- fs/xfs/xfs_log_cil.c | 4 +- fs/xfs/xfs_log_recover.c | 42 +-- fs/xfs/xfs_mount.c | 3 - fs/xfs/xfs_mount.h | 69 ----- fs/xfs/xfs_rename.c | 63 +---- fs/xfs/xfs_rtalloc.c | 9 +- fs/xfs/xfs_rw.c | 15 - fs/xfs/xfs_trans.c | 211 ++++++++----- fs/xfs/xfs_trans.h | 117 +------- fs/xfs/xfs_trans_ail.c | 1 - fs/xfs/xfs_trans_buf.c | 75 +---- fs/xfs/xfs_trans_extfree.c | 23 +- fs/xfs/xfs_trans_inode.c | 74 ++--- fs/xfs/xfs_trans_item.c | 441 -------------------------- fs/xfs/xfs_trans_priv.h | 18 +- fs/xfs/xfs_utils.c | 87 ------ fs/xfs/xfs_utils.h | 1 - fs/xfs/xfs_vnodeops.c | 293 ++++-------------- include/linux/fs.h | 3 +- 91 files changed, 1621 insertions(+), 4018 deletions(-) delete mode 100644 fs/xfs/linux-2.6/xfs_dmapi_priv.h delete mode 100644 fs/xfs/linux-2.6/xfs_fs_subr.h delete mode 100644 fs/xfs/xfs_dmapi.h delete mode 100644 fs/xfs/xfs_dmops.c delete mode 100644 fs/xfs/xfs_trans_item.c From jack@suse.cz Mon Aug 2 13:51:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72Ip5FN202770 for ; Mon, 2 Aug 2010 13:51:05 -0500 X-ASG-Debug-ID: 1280775557-6b93036c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2888215D1249 for ; Mon, 2 Aug 2010 11:59:17 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id p66knIPt0OsD0iyS for ; Mon, 02 Aug 2010 11:59:17 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) by mx2.suse.de (Postfix) with ESMTP id D745587D82; Mon, 2 Aug 2010 20:51:22 +0200 (CEST) Received: by quack.suse.cz (Postfix, from userid 10005) id 5C9562B1C16; Mon, 2 Aug 2010 20:50:53 +0200 (CEST) Date: Mon, 2 Aug 2010 20:50:53 +0200 From: Jan Kara To: Dave Chinner Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: Re: [PATCH 1/2] dio: track and serialise unaligned direct IO Subject: Re: [PATCH 1/2] dio: track and serialise unaligned direct IO Message-ID: <20100802185052.GK3278@quack.suse.cz> References: <1280733945-16231-1-git-send-email-david@fromorbit.com> <1280733945-16231-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280733945-16231-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1280775558 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon 02-08-10 17:25:44, Dave Chinner wrote: > From: Dave Chinner > > If we get two unaligned direct IO's to the same filesystem block > that is marked as a new allocation (i.e. buffer_new), then both IOs > will zero the portion of the block they are not writing data to. As > a result, when the IOs complete there will be a portion of the block > that contains zeros from the last IO to complete rather than the > data that should be there. > > This is easily manifested by qemu using aio+dio with an unaligned > guest filesystem - every IO is unaligned and fileystem corruption is > encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) > is also a simple reproducer. > > To avoid this problem, track unaligned IO that triggers sub-block > zeroing and check new incoming unaligned IO that require sub-block > zeroing against that list. If we get an overlap where the start and > end of unaligned IOs hit the same filesystem block, then we need to > block the incoming IOs until the IO that is zeroing the block > completes. The blocked IO can then continue without needing to do > any zeroing and hence won't overwrite valid data with zeros. > > Signed-off-by: Dave Chinner ... > +/* > + * Add a filesystem block to the list of blocks we are tracking. > + */ > +static void > +dio_start_zero_block(struct dio *dio, sector_t zero_block) > +{ > + struct dio_zero_block *zb; > + > + zb = kmalloc(sizeof(*zb), GFP_NOIO); > + if (!zb) > + return; Ho hum, so if the allocation fails, we will just silently corrupt the data anyway? Not good I think. Honza -- Jan Kara SUSE Labs, CR From SRS0+Madt+63+fromorbit.com=david@internode.on.net Mon Aug 2 18:12:38 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72NCbKe211016 for ; Mon, 2 Aug 2010 18:12:38 -0500 X-ASG-Debug-ID: 1280790774-1a6c01130000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C685548D7F2 for ; Mon, 2 Aug 2010 16:12:55 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id Lx8yaKvy3R4QRDHV for ; Mon, 02 Aug 2010 16:12:55 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33651382-1927428 for multiple; Tue, 03 Aug 2010 08:42:53 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Og4Bg-0006gG-FP; Tue, 03 Aug 2010 09:12:52 +1000 Date: Tue, 3 Aug 2010 09:12:52 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfsprogs: fix depend targets Subject: Re: [PATCH] xfsprogs: fix depend targets Message-ID: <20100802231252.GD19164@dastard> References: <201007302145.o6ULjk4v008060@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201007302145.o6ULjk4v008060@stout.americas.sgi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1280790776 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0130 1.0000 -1.9362 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.94 X-Barracuda-Spam-Status: No, SCORE=-1.94 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36856 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 30, 2010 at 04:45:45PM -0500, Alex Elder wrote: > There's no need to re-make the dependency files all the time. Make > it so the "depend" target rebuilds the ".dep" file only if necessary. > Also change the name of the dependency file created for "ltdepend" > to be ".ltdep". > > Signed-off-by: Alex Elder Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From SRS0+Madt+63+fromorbit.com=david@internode.on.net Mon Aug 2 18:12:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72NCu7t211039 for ; Mon, 2 Aug 2010 18:12:56 -0500 X-ASG-Debug-ID: 1280791267-78d900580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 486BF11BDBF3 for ; Mon, 2 Aug 2010 16:21:08 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id q6Forylk70scE3OC for ; Mon, 02 Aug 2010 16:21:08 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 22142202-1927428 for multiple; Tue, 03 Aug 2010 08:43:12 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Og4Bz-0006gO-4O; Tue, 03 Aug 2010 09:13:11 +1000 Date: Tue, 3 Aug 2010 09:13:11 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfsdump: fix depend targets Subject: Re: [PATCH] xfsdump: fix depend targets Message-ID: <20100802231311.GE19164@dastard> References: <201007302148.o6ULmlpA008272@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201007302148.o6ULmlpA008272@stout.americas.sgi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1280791270 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0029 1.0000 -2.0023 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36857 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 30, 2010 at 04:48:47PM -0500, Alex Elder wrote: > There's no need to re-make the dependency files all the time. Make > it so the "depend" target rebuilds the ".dep" file only if necessary. > Also change the name of the dependency file created for "ltdepend" > to be ".ltdep". > > Signed-off-by: Alex Elder Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From SRS0+Bo/h+63+fromorbit.com=david@internode.on.net Mon Aug 2 18:13:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72NDCmk211056 for ; Mon, 2 Aug 2010 18:13:13 -0500 X-ASG-Debug-ID: 1280791285-55ce02950000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2128B11BDBFB for ; Mon, 2 Aug 2010 16:21:25 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id DIs15dANN4ui0TET for ; Mon, 02 Aug 2010 16:21:25 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33759961-1927428 for multiple; Tue, 03 Aug 2010 08:43:30 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Og4CG-0006gW-SL; Tue, 03 Aug 2010 09:13:28 +1000 Date: Tue, 3 Aug 2010 09:13:28 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix depend targets Subject: Re: [PATCH] xfstests: fix depend targets Message-ID: <20100802231328.GF19164@dastard> References: <201007302149.o6ULnmTR008330@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201007302149.o6ULnmTR008330@stout.americas.sgi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1280791287 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0017 1.0000 -2.0102 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36857 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 30, 2010 at 04:49:48PM -0500, Alex Elder wrote: > There's no need to re-make the dependency files all the time. Make > it so the "depend" target rebuilds the ".dep" file only if necessary. > Also change the name of the dependency file created for "ltdepend" > to be ".ltdep". > > Signed-off-by: Alex Elder Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From SRS0+Madt+63+fromorbit.com=david@internode.on.net Mon Aug 2 18:14:01 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o72NE0Nr211083 for ; Mon, 2 Aug 2010 18:14:01 -0500 X-ASG-Debug-ID: 1280790858-23c5005c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 27AAA48D7FB for ; Mon, 2 Aug 2010 16:14:18 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id 0Pf2G1ETs728g6fz for ; Mon, 02 Aug 2010 16:14:18 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 22142290-1927428 for multiple; Tue, 03 Aug 2010 08:44:18 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Og4D1-0006gg-PU; Tue, 03 Aug 2010 09:14:15 +1000 Date: Tue, 3 Aug 2010 09:14:15 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: dmapi: fix depend targets Subject: Re: dmapi: fix depend targets Message-ID: <20100802231415.GG19164@dastard> References: <201007302151.o6ULpNLX008602@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201007302151.o6ULpNLX008602@stout.americas.sgi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1280790860 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0134 1.0000 -1.9334 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.93 X-Barracuda-Spam-Status: No, SCORE=-1.93 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36856 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 30, 2010 at 04:51:23PM -0500, Alex Elder wrote: > There's no need to re-make the dependency files all the time. Make > it so the "depend" target rebuilds the ".dep" file only if necessary. > > Signed-off-by: Alex Elder Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From SRS0+k1Pl+64+fromorbit.com=dave@internode.on.net Mon Aug 2 21:07:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73279ro217622 for ; Mon, 2 Aug 2010 21:07:10 -0500 X-ASG-Debug-ID: 1280801245-75d701f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C73991687749 for ; Mon, 2 Aug 2010 19:07:26 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id uDyTGA8ERe480xcz for ; Mon, 02 Aug 2010 19:07:26 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33625746-1927428 for multiple; Tue, 03 Aug 2010 11:37:22 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1Og6uW-0006rz-Oi; Tue, 03 Aug 2010 12:07:20 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1Og6uQ-00068b-Kn; Tue, 03 Aug 2010 12:07:14 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: npiggin@kernel.de X-ASG-Orig-Subj: [PATCH] xfs: Reduce log force overhead for delayed logging Subject: [PATCH] xfs: Reduce log force overhead for delayed logging Date: Tue, 3 Aug 2010 12:07:14 +1000 Message-Id: <1280801234-23568-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1280801247 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36868 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Delayed logging adds some serialisation to the log force process to ensure that it does not deference a bad commit context structure when determining if a CIl push is necessary or not. It does this by grabing the CIl contrext lock exclusively, then dropping it before pushing the CIL if necessary. This causes serialisation of all log forces and pushes regardless of whether a force is necessary or not. As a result fsync heavy workloads (like dbench) can be significantly slower with delayed logging than without. To avoid this penalty, copy the current sequence from the context to the CIL structure when they are swapped. This allows us to do unlocked checks on the current sequence without having to worry about dereferencing context structures that may have already been freed. Hence we can remove the CIL context locking in the forcing code and only call into the push code if the current context matches the sequence we need to force. By passing the sequence into the push code, we can check the sequence again once we have the CIL lock held exclusive and abort if the sequence has already been pushed. This avoids a lock round-trip and unnecessary CIL pushes when we have racing push calls. The result is that the regression in dbench performance goes away - this change improves dbench performance on a ramdisk from ~2100MB/s to ~2500MB/s. This compares favourably to not using delayed logging which retuns ~2500MB/s for the same workload. Signed-off-by: Dave Chinner --- fs/xfs/xfs_log.c | 6 +- fs/xfs/xfs_log_cil.c | 243 ++++++++++++++++++++++++++----------------------- fs/xfs/xfs_log_priv.h | 15 +++- 3 files changed, 147 insertions(+), 117 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 925d572..88b81f2 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -3015,7 +3015,7 @@ _xfs_log_force( XFS_STATS_INC(xs_log_force); - xlog_cil_push(log, 1); + xlog_cil_force(log); spin_lock(&log->l_icloglock); @@ -3167,7 +3167,7 @@ _xfs_log_force_lsn( XFS_STATS_INC(xs_log_force); if (log->l_cilp) { - lsn = xlog_cil_push_lsn(log, lsn); + lsn = xlog_cil_force_lsn(log, lsn); if (lsn == NULLCOMMITLSN) return 0; } @@ -3724,7 +3724,7 @@ xfs_log_force_umount( * call below. */ if (!logerror && (mp->m_flags & XFS_MOUNT_DELAYLOG)) - xlog_cil_push(log, 1); + xlog_cil_force(log); /* * We must hold both the GRANT lock and the LOG lock, diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c index ef8e7d9..5650a97 100644 --- a/fs/xfs/xfs_log_cil.c +++ b/fs/xfs/xfs_log_cil.c @@ -68,6 +68,7 @@ xlog_cil_init( ctx->sequence = 1; ctx->cil = cil; cil->xc_ctx = ctx; + cil->xc_current_sequence = ctx->sequence; cil->xc_log = log; log->l_cilp = cil; @@ -321,94 +322,6 @@ xlog_cil_free_logvec( } /* - * Commit a transaction with the given vector to the Committed Item List. - * - * To do this, we need to format the item, pin it in memory if required and - * account for the space used by the transaction. Once we have done that we - * need to release the unused reservation for the transaction, attach the - * transaction to the checkpoint context so we carry the busy extents through - * to checkpoint completion, and then unlock all the items in the transaction. - * - * For more specific information about the order of operations in - * xfs_log_commit_cil() please refer to the comments in - * xfs_trans_commit_iclog(). - * - * Called with the context lock already held in read mode to lock out - * background commit, returns without it held once background commits are - * allowed again. - */ -int -xfs_log_commit_cil( - struct xfs_mount *mp, - struct xfs_trans *tp, - struct xfs_log_vec *log_vector, - xfs_lsn_t *commit_lsn, - int flags) -{ - struct log *log = mp->m_log; - int log_flags = 0; - int push = 0; - - if (flags & XFS_TRANS_RELEASE_LOG_RES) - log_flags = XFS_LOG_REL_PERM_RESERV; - - if (XLOG_FORCED_SHUTDOWN(log)) { - xlog_cil_free_logvec(log_vector); - return XFS_ERROR(EIO); - } - - /* lock out background commit */ - down_read(&log->l_cilp->xc_ctx_lock); - xlog_cil_format_items(log, log_vector, tp->t_ticket, commit_lsn); - - /* check we didn't blow the reservation */ - if (tp->t_ticket->t_curr_res < 0) - xlog_print_tic_res(log->l_mp, tp->t_ticket); - - /* attach the transaction to the CIL if it has any busy extents */ - if (!list_empty(&tp->t_busy)) { - spin_lock(&log->l_cilp->xc_cil_lock); - list_splice_init(&tp->t_busy, - &log->l_cilp->xc_ctx->busy_extents); - spin_unlock(&log->l_cilp->xc_cil_lock); - } - - tp->t_commit_lsn = *commit_lsn; - xfs_log_done(mp, tp->t_ticket, NULL, log_flags); - xfs_trans_unreserve_and_mod_sb(tp); - - /* - * Once all the items of the transaction have been copied to the CIL, - * the items can be unlocked and freed. - * - * This needs to be done before we drop the CIL context lock because we - * have to update state in the log items and unlock them before they go - * to disk. If we don't, then the CIL checkpoint can race with us and - * we can run checkpoint completion before we've updated and unlocked - * the log items. This affects (at least) processing of stale buffers, - * inodes and EFIs. - */ - xfs_trans_free_items(tp, *commit_lsn, 0); - - /* check for background commit before unlock */ - if (log->l_cilp->xc_ctx->space_used > XLOG_CIL_SPACE_LIMIT(log)) - push = 1; - - up_read(&log->l_cilp->xc_ctx_lock); - - /* - * We need to push CIL every so often so we don't cache more than we - * can fit in the log. The limit really is that a checkpoint can't be - * more than half the log (the current checkpoint is not allowed to - * overwrite the previous checkpoint), but commit latency and memory - * usage limit this to a smaller size in most cases. - */ - if (push) - xlog_cil_push(log, 0); - return 0; -} - -/* * Mark all items committed and clear busy extents. We free the log vector * chains in a separate pass so that we unpin the log items as quickly as * possible. @@ -441,13 +354,23 @@ xlog_cil_committed( } /* - * Push the Committed Item List to the log. If the push_now flag is not set, - * then it is a background flush and so we can chose to ignore it. + * Push the Committed Item List to the log. If @push_seq flag is zero, then it + * is a background flush and so we can chose to ignore it. Otherwise, if the + * current sequence is the same as @push_seq we need to do a flush. If + * @push_seq is less than the current sequence, then it has already been + * flushed and we don't need to do anything - the caller will wait for it to + * complete if necessary. + * + * @push_seq is a value rather than a flag because that allows us to do an + * unlocked check of the sequence number for a match. Hence we can allows log + * forces to run racily and not issue pushes for the same sequence twice. If we + * get a race between multiple pushes for the same sequence they will block on + * the first one and then abort, hence avoiding needless pushes. */ int xlog_cil_push( struct log *log, - int push_now) + xfs_lsn_t push_seq) { struct xfs_cil *cil = log->l_cilp; struct xfs_log_vec *lv; @@ -467,12 +390,14 @@ xlog_cil_push( if (!cil) return 0; + ASSERT(!push_seq || push_seq <= cil->xc_ctx->sequence); + new_ctx = kmem_zalloc(sizeof(*new_ctx), KM_SLEEP|KM_NOFS); new_ctx->ticket = xlog_cil_ticket_alloc(log); /* lock out transaction commit, but don't block on background push */ if (!down_write_trylock(&cil->xc_ctx_lock)) { - if (!push_now) + if (!push_seq) goto out_free_ticket; down_write(&cil->xc_ctx_lock); } @@ -483,7 +408,11 @@ xlog_cil_push( goto out_skip; /* check for spurious background flush */ - if (!push_now && cil->xc_ctx->space_used < XLOG_CIL_SPACE_LIMIT(log)) + if (!push_seq && cil->xc_ctx->space_used < XLOG_CIL_SPACE_LIMIT(log)) + goto out_skip; + + /* check for a previously pushed seqeunce */ + if (push_seq < cil->xc_ctx->sequence) goto out_skip; /* @@ -529,6 +458,13 @@ xlog_cil_push( cil->xc_ctx = new_ctx; /* + * mirror the new sequence into the cil structure so that we can do + * unlocked checks against the current sequence in log forces without + * risking deferencing a freed context pointer. + */ + cil->xc_current_sequence = new_ctx->sequence; + + /* * The switch is now done, so we can drop the context lock and move out * of a shared context. We can't just go straight to the commit record, * though - we need to synchronise with previous and future commits so @@ -640,6 +576,94 @@ out_abort: } /* + * Commit a transaction with the given vector to the Committed Item List. + * + * To do this, we need to format the item, pin it in memory if required and + * account for the space used by the transaction. Once we have done that we + * need to release the unused reservation for the transaction, attach the + * transaction to the checkpoint context so we carry the busy extents through + * to checkpoint completion, and then unlock all the items in the transaction. + * + * For more specific information about the order of operations in + * xfs_log_commit_cil() please refer to the comments in + * xfs_trans_commit_iclog(). + * + * Called with the context lock already held in read mode to lock out + * background commit, returns without it held once background commits are + * allowed again. + */ +int +xfs_log_commit_cil( + struct xfs_mount *mp, + struct xfs_trans *tp, + struct xfs_log_vec *log_vector, + xfs_lsn_t *commit_lsn, + int flags) +{ + struct log *log = mp->m_log; + int log_flags = 0; + int push = 0; + + if (flags & XFS_TRANS_RELEASE_LOG_RES) + log_flags = XFS_LOG_REL_PERM_RESERV; + + if (XLOG_FORCED_SHUTDOWN(log)) { + xlog_cil_free_logvec(log_vector); + return XFS_ERROR(EIO); + } + + /* lock out background commit */ + down_read(&log->l_cilp->xc_ctx_lock); + xlog_cil_format_items(log, log_vector, tp->t_ticket, commit_lsn); + + /* check we didn't blow the reservation */ + if (tp->t_ticket->t_curr_res < 0) + xlog_print_tic_res(log->l_mp, tp->t_ticket); + + /* attach the transaction to the CIL if it has any busy extents */ + if (!list_empty(&tp->t_busy)) { + spin_lock(&log->l_cilp->xc_cil_lock); + list_splice_init(&tp->t_busy, + &log->l_cilp->xc_ctx->busy_extents); + spin_unlock(&log->l_cilp->xc_cil_lock); + } + + tp->t_commit_lsn = *commit_lsn; + xfs_log_done(mp, tp->t_ticket, NULL, log_flags); + xfs_trans_unreserve_and_mod_sb(tp); + + /* + * Once all the items of the transaction have been copied to the CIL, + * the items can be unlocked and freed. + * + * This needs to be done before we drop the CIL context lock because we + * have to update state in the log items and unlock them before they go + * to disk. If we don't, then the CIL checkpoint can race with us and + * we can run checkpoint completion before we've updated and unlocked + * the log items. This affects (at least) processing of stale buffers, + * inodes and EFIs. + */ + xfs_trans_free_items(tp, *commit_lsn, 0); + + /* check for background commit before unlock */ + if (log->l_cilp->xc_ctx->space_used > XLOG_CIL_SPACE_LIMIT(log)) + push = 1; + + up_read(&log->l_cilp->xc_ctx_lock); + + /* + * We need to push CIL every so often so we don't cache more than we + * can fit in the log. The limit really is that a checkpoint can't be + * more than half the log (the current checkpoint is not allowed to + * overwrite the previous checkpoint), but commit latency and memory + * usage limit this to a smaller size in most cases. + */ + if (push) + xlog_cil_push(log, 0); + return 0; +} + +/* * Conditionally push the CIL based on the sequence passed in. * * We only need to push if we haven't already pushed the sequence @@ -653,39 +677,34 @@ out_abort: * commit lsn is there. It'll be empty, so this is broken for now. */ xfs_lsn_t -xlog_cil_push_lsn( +xlog_cil_force_lsn( struct log *log, - xfs_lsn_t push_seq) + xfs_lsn_t sequence) { struct xfs_cil *cil = log->l_cilp; struct xfs_cil_ctx *ctx; xfs_lsn_t commit_lsn = NULLCOMMITLSN; -restart: - down_write(&cil->xc_ctx_lock); - ASSERT(push_seq <= cil->xc_ctx->sequence); - - /* check to see if we need to force out the current context */ - if (push_seq == cil->xc_ctx->sequence) { - up_write(&cil->xc_ctx_lock); - xlog_cil_push(log, 1); - goto restart; - } + ASSERT(sequence <= cil->xc_current_sequence); + + /* + * check to see if we need to force out the current context. + * xlog_cil_push() handles racing pushes for the same sequence, + * so no need to deal with it here. + */ + if (sequence == cil->xc_current_sequence) + xlog_cil_push(log, sequence); /* * See if we can find a previous sequence still committing. - * We can drop the flush lock as soon as we have the cil lock - * because we are now only comparing contexts protected by - * the cil lock. - * * We need to wait for all previous sequence commits to complete * before allowing the force of push_seq to go ahead. Hence block * on commits for those as well. */ +restart: spin_lock(&cil->xc_cil_lock); - up_write(&cil->xc_ctx_lock); list_for_each_entry(ctx, &cil->xc_committing, committing) { - if (ctx->sequence > push_seq) + if (ctx->sequence > sequence) continue; if (!ctx->commit_lsn) { /* @@ -695,7 +714,7 @@ restart: sv_wait(&cil->xc_commit_wait, 0, &cil->xc_cil_lock, 0); goto restart; } - if (ctx->sequence != push_seq) + if (ctx->sequence != sequence) continue; /* found it! */ commit_lsn = ctx->commit_lsn; diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index 8c07261..750334d 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -422,6 +422,7 @@ struct xfs_cil { struct rw_semaphore xc_ctx_lock; struct list_head xc_committing; sv_t xc_commit_wait; + xfs_lsn_t xc_current_sequence; }; /* @@ -562,8 +563,18 @@ int xlog_cil_init(struct log *log); void xlog_cil_init_post_recovery(struct log *log); void xlog_cil_destroy(struct log *log); -int xlog_cil_push(struct log *log, int push_now); -xfs_lsn_t xlog_cil_push_lsn(struct log *log, xfs_lsn_t push_sequence); +/* + * CIL force routines + */ +xfs_lsn_t xlog_cil_force_lsn(struct log *log, xfs_lsn_t sequence); + +static inline void +xlog_cil_force(struct log *log) +{ + if (log->l_cilp) + xlog_cil_force_lsn(log, log->l_cilp->xc_current_sequence); +} + /* * Unmount record type is used as a pseudo transaction type for the ticket. -- 1.7.1 From upgrade@webmaster.org Mon Aug 2 21:11:47 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_50, FILL_THIS_FORM_FRAUD_PHISH,T_FILL_THIS_FORM autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o732BkrM217801 for ; Mon, 2 Aug 2010 21:11:47 -0500 X-ASG-Debug-ID: 1280801525-612d03320000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.lwhs.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 267081D6F338 for ; Mon, 2 Aug 2010 19:12:05 -0700 (PDT) Received: from smtp.lwhs.org (oslo.lwhs.org [65.205.197.1]) by cuda.sgi.com with ESMTP id U4DpqVIgTsoOCykk for ; Mon, 02 Aug 2010 19:12:05 -0700 (PDT) Received: from localhost ([127.0.0.1]) by smtp.lwhs.org; Mon, 2 Aug 2010 19:07:19 -0700 From: "Dale Allender" Reply-To: forms@mailsystemupdate.com Organization: Web Administrator X-ASG-Orig-Subj: Database Maintenance Update Subject: Database Maintenance Update To: undisclosed-recipients:; Message-ID: <20100802190719.284f56ea@smtp.lwhs.org> Date: Mon, 02 Aug 2010 19:07:19 -0700 X-User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; Crazy Browser 3.0.0 Beta2) MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: oslo.lwhs.org[65.205.197.1] X-Barracuda-Start-Time: 1280801526 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5706 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36868 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean A Computer Database Maintenance is currently going on our Web mail=20 Message Center Our Message Center needs to be re-set because of the high amount of spam mails we receive daily. A=20 Quarantine Maintenance will help us prevent this everyday dilemma. The new Hanover Web mail Software provide a pop - off block of some=20 Restricted words spam terms.a To revalidate your mailbox Please click the reply button and submit the = below information=E2=80=99s: Full Name: Email Address: User Name/ID Password: Confirm Password: The Hanover Web mail Software is a fast and light weight application=20 to quickly and easily access your e-mail. Failure to revalidate your mailbox will render your e-mail in-active=20 from our database. Thanks System Administrator The new Hanover Web mail Software CONFIDENTIALITY NOTICEA Computer Database Maintenance is currently going= on our Web mail=20 Message Center Our Message Center needs to be re-set because of the high amount of spam mails we receive daily. A=20 Quarantine Maintenance will help us prevent this everyday dilemma. The new Hanover Web mail Software provide a pop - off block of some=20 Restricted words spam terms.a To revalidate your mailbox Please click the reply button and submit the = below information=E2=80=99s: Full Name: Email Address: User Name/ID Password: Confirm Password: The Hanover Web mail Software is a fast and light weight application=20 to quickly and easily access your e-mail. Failure to revalidate your mailbox will render your e-mail in-active=20 from our database. Thanks System Administrator The new Hanover Web mail Software CONFIDENTIALITY NOTICE From SRS0+k1Pl+64+fromorbit.com=dave@internode.on.net Tue Aug 3 01:17:49 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o736HmYr227950 for ; Tue, 3 Aug 2010 01:17:49 -0500 X-ASG-Debug-ID: 1280816285-42e801960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AB06148E3D6 for ; Mon, 2 Aug 2010 23:18:06 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id 0ECpHzKeHjLuQCZa for ; Mon, 02 Aug 2010 23:18:06 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33661580-1927428 for ; Tue, 03 Aug 2010 15:48:05 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgAp9-00078v-AU for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:18:03 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgAp3-0007fp-7h for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:17:57 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfstests: add a test for XFS_IOC_ZERO_RANGE Subject: [PATCH] xfstests: add a test for XFS_IOC_ZERO_RANGE Date: Tue, 3 Aug 2010 16:17:57 +1000 Message-Id: <1280816277-29473-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1280816287 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Signed-off-by: Dave Chinner --- 241 | 192 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 241.out | 57 +++++++++++++++++++ group | 1 + 3 files changed, 250 insertions(+), 0 deletions(-) create mode 100644 241 create mode 100644 241.out diff --git a/241 b/241 new file mode 100644 index 0000000..b627438 --- /dev/null +++ b/241 @@ -0,0 +1,192 @@ +#! /bin/bash +# FS QA Test No. 241 +# +# Test XFS_IOC_ZERO_RANGE +# +#----------------------------------------------------------------------- +# Copyright (c) 2010 Red Hat. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#----------------------------------------------------------------------- +# +# creator +owner=dchinner@redhat.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! + +_cleanup() +{ + rm -f $tmp.* +} + +trap "_cleanup ; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +die_now() +{ + status=1 + exit +} + +_filter_bmap() +{ + awk '$3 ~ /hole/ { print $1, $2, $3; next } + $7 ~ /10000/ { print $1, $2, "unwritten"; next } + $7 ~ /00000/ {print $1, $2, "data" }' +} + +# test the different corner cases for zeroing a range: +# +# 1. into a hole +# 2. into allocated space +# 3. into unwritten space +# 4. hole -> data +# 5. hole -> unwritten +# 6. data -> hole +# 7. data -> unwritten +# 8. unwritten -> hole +# 9. unwritten -> data +# 10. hole -> data -> hole +# 11. data -> hole -> data +# 12. unwritten -> data -> unwritten +# 13. data -> unwritten -> data + +testfile=$TEST_DIR/241.$$ + +echo " 1. into a hole" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 2. into allocated space" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "pwrite 0 20k" -c "fsync" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 3. into unwritten space" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "resvsp 0 20k" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 4. hole -> data" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "pwrite 8k 8k" -c "fsync" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 5. hole -> unwritten" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "resvsp 8k 8k" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 6. data -> hole" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "pwrite 0 8k" -c "fsync" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 7. data -> unwritten" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "pwrite 0 8k" -c "fsync" \ + -c "resvsp 8k 8k" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 8. unwritten -> hole" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "resvsp 0 8k" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 9. unwritten -> data" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "resvsp 0 8k" \ + -c "pwrite 8k 8k" -c "fsync" \ + -c "zero 4k 8k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 10. hole -> data -> hole" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "pwrite 8k 4k" -c "fsync" \ + -c "zero 4k 12k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 11. data -> hole -> data" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "resvsp 0 20k" \ + -c "pwrite 0 8k" \ + -c "pwrite 12k 8k" -c "fsync" \ + -c "unresvsp 8k 4k" \ + -c "zero 4k 12k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +echo " 12. unwritten -> data -> unwritten" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "resvsp 0 20k" \ + -c "pwrite 8k 4k" -c "fsync" \ + -c "zero 4k 12k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + + +echo " 13. data -> unwritten -> data" +rm -f $testfile +$XFS_IO_PROG -f -c "truncate 20k" \ + -c "resvsp 0 20k" \ + -c "pwrite 0k 8k" -c "fsync" \ + -c "pwrite 12k 8k" -c "fsync" \ + -c "zero 4k 12k" \ + -c "bmap -vp" $testfile | _filter_bmap +[ $? -ne 0 ] && die_now + +status=0 ; exit diff --git a/241.out b/241.out new file mode 100644 index 0000000..7b3481f --- /dev/null +++ b/241.out @@ -0,0 +1,57 @@ +QA output created by 241 + 1. into a hole +0: [0..7]: hole +1: [8..23]: unwritten +2: [24..39]: hole + 2. into allocated space +0: [0..7]: data +1: [8..23]: unwritten +2: [24..39]: data + 3. into unwritten space +0: [0..39]: unwritten + 4. hole -> data +0: [0..7]: hole +1: [8..15]: unwritten +2: [16..23]: unwritten +3: [24..31]: data +4: [32..39]: hole + 5. hole -> unwritten +0: [0..7]: hole +1: [8..15]: unwritten +2: [16..31]: unwritten +3: [32..39]: hole + 6. data -> hole +0: [0..7]: data +1: [8..15]: unwritten +2: [16..23]: unwritten +3: [24..39]: hole + 7. data -> unwritten +0: [0..7]: data +1: [8..15]: unwritten +2: [16..31]: unwritten +3: [32..39]: hole + 8. unwritten -> hole +0: [0..15]: unwritten +1: [16..23]: unwritten +2: [24..39]: hole + 9. unwritten -> data +0: [0..15]: unwritten +1: [16..23]: unwritten +2: [24..31]: data +3: [32..39]: hole + 10. hole -> data -> hole +0: [0..7]: hole +1: [8..15]: unwritten +2: [16..23]: unwritten +3: [24..31]: unwritten +4: [32..39]: hole + 11. data -> hole -> data +0: [0..7]: data +1: [8..31]: unwritten +2: [32..39]: data + 12. unwritten -> data -> unwritten +0: [0..39]: unwritten + 13. data -> unwritten -> data +0: [0..7]: data +1: [8..31]: unwritten +2: [32..39]: data diff --git a/group b/group index afe7614..f6e8d7b 100644 --- a/group +++ b/group @@ -354,3 +354,4 @@ deprecated 238 auto quick metadata ioctl 239 auto aio rw 240 auto aio quick rw +241 auto quick prealloc -- 1.7.1 From SRS0+qmhr+64+fromorbit.com=dave@internode.on.net Tue Aug 3 01:18:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o736IZD9227980 for ; Tue, 3 Aug 2010 01:18:36 -0500 X-ASG-Debug-ID: 1280816332-36ed02df0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B31441D6FCA6 for ; Mon, 2 Aug 2010 23:18:53 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id b3otcOfNeziUCa6V for ; Mon, 02 Aug 2010 23:18:53 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33894427-1927428 for ; Tue, 03 Aug 2010 15:48:52 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgApu-000797-ND for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:18:50 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgApo-0007o4-Lh for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:18:44 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfsprogs: Add support for XFS_IOC_ZERO_RANGE Subject: [PATCH] xfsprogs: Add support for XFS_IOC_ZERO_RANGE Date: Tue, 3 Aug 2010 16:18:44 +1000 Message-Id: <1280816324-29984-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1280816334 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Add xfs_io support for XFS_IOC_ZERO_RANGE and document the ioctl parameter in the xfsctl(3) man page. Signed-off-by: Dave Chinner --- include/xfs_fs.h | 1 + io/prealloc.c | 29 +++++++++++++++++++++++++++++ man/man3/xfsctl.3 | 18 ++++++++++++++++++ 3 files changed, 48 insertions(+), 0 deletions(-) diff --git a/include/xfs_fs.h b/include/xfs_fs.h index 2376abb..74e7274 100644 --- a/include/xfs_fs.h +++ b/include/xfs_fs.h @@ -458,6 +458,7 @@ typedef struct xfs_handle { /* XFS_IOC_SETBIOSIZE ---- deprecated 46 */ /* XFS_IOC_GETBIOSIZE ---- deprecated 47 */ #define XFS_IOC_GETBMAPX _IOWR('X', 56, struct getbmap) +#define XFS_IOC_ZERO_RANGE _IOW ('X', 57, struct xfs_flock64) /* * ioctl commands that replace IRIX syssgi()'s diff --git a/io/prealloc.c b/io/prealloc.c index 5f6b029..c8b7df6 100644 --- a/io/prealloc.c +++ b/io/prealloc.c @@ -29,6 +29,7 @@ static cmdinfo_t allocsp_cmd; static cmdinfo_t freesp_cmd; static cmdinfo_t resvsp_cmd; static cmdinfo_t unresvsp_cmd; +static cmdinfo_t zero_cmd; #if defined(HAVE_FALLOCATE) static cmdinfo_t falloc_cmd; #endif @@ -125,6 +126,24 @@ unresvsp_f( return 0; } +static int +zero_f( + int argc, + char **argv) +{ + xfs_flock64_t segment; + + if (!offset_length(argv[1], argv[2], &segment)) + return 0; + + if (xfsctl(file->name, file->fd, XFS_IOC_ZERO_RANGE, &segment) < 0) { + perror("XFS_IOC_ZERO_RANGE"); + return 0; + } + return 0; +} + + #if defined (HAVE_FALLOCATE) static int fallocate_f( @@ -196,10 +215,20 @@ prealloc_init(void) unresvsp_cmd.oneline = _("frees reserved space associated with part of a file"); + zero_cmd.name = _("zero"); + zero_cmd.cfunc = zero_f; + zero_cmd.argmin = 2; + zero_cmd.argmax = 2; + zero_cmd.flags = CMD_NOMAP_OK; + zero_cmd.args = _("off len"); + zero_cmd.oneline = + _("Converts the given range of a file to allocated zeros"); + add_command(&allocsp_cmd); add_command(&freesp_cmd); add_command(&resvsp_cmd); add_command(&unresvsp_cmd); + add_command(&zero_cmd); #if defined (HAVE_FALLOCATE) falloc_cmd.name = _("falloc"); diff --git a/man/man3/xfsctl.3 b/man/man3/xfsctl.3 index 64e18df..784b3e0 100644 --- a/man/man3/xfsctl.3 +++ b/man/man3/xfsctl.3 @@ -338,6 +338,24 @@ in the final argument. Partial filesystem blocks are zeroed, and whole filesystem blocks are removed from the file. The file size does not change. +.TP +.B XFS_IOC_ZERO_RANGE +This command is used to convert a range of a file to zeros without issuing data +IO. +A range of bytes is specified using a pointer to a variable of type +.B xfs_flock64_t +in the final argument. +Blocks are preallocated for regions that span holes in the file, and the entire +range is converted to unwritten extents. +This operation is a fast method of overwriting any from the range specified +with zeros without removing any blocks or having to write zeros to disk. +Any subsequent read in the given range will return zeros until new data is +written. +This functionality requires filesystems to support unwritten extents. +If +.BR xfs_info (8) +reports unwritten=1, then the filesystem was made to flag unwritten extents. + .\" .TP .\" .B XFS_IOC_GETBIOSIZE .\" This command gets information about the preferred buffered I/O -- 1.7.1 From SRS0+of0x+64+fromorbit.com=dave@internode.on.net Tue Aug 3 01:22:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o736M9jC228094 for ; Tue, 3 Aug 2010 01:22:10 -0500 X-ASG-Debug-ID: 1280816547-3b9e02a00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 04DAB1D6B5AF for ; Mon, 2 Aug 2010 23:22:28 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id l7z6cvo6qxyNDYIw for ; Mon, 02 Aug 2010 23:22:28 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33712022-1927428 for ; Tue, 03 Aug 2010 15:52:27 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgAtN-00079F-U3 for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:22:25 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgAtH-0007q7-Sa for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:22:19 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/2] xfs: Fast zeroing of allocated space Subject: [PATCH 0/2] xfs: Fast zeroing of allocated space Date: Tue, 3 Aug 2010 16:22:04 +1000 Message-Id: <1280816526-30100-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1280816549 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36886 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean These two patches allow conversion of a written range of a file into back into unwritten state. The first patch converts page cache helper functions to use the correct range primitives as we need to be able to toss (invalidate) pages only within the range specified, not to to the end of the file as it currently uses. The actual conversion also preallocates any holes in the range, so it turns the entire range requested into allocated, unwritten extents. Version 2: o removed stray debugging printks o truncate_inode_pages_range doesn't handle partial tail pages, so the range needs to be tossed appropriately. From SRS0+qmhr+64+fromorbit.com=dave@internode.on.net Tue Aug 3 01:22:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o736MBG8228105 for ; Tue, 3 Aug 2010 01:22:11 -0500 X-ASG-Debug-ID: 1280817024-755e03a30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 11EF134AEE3 for ; Mon, 2 Aug 2010 23:30:25 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id uQsWNf4ZrVFfkLhd for ; Mon, 02 Aug 2010 23:30:25 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33894936-1927428 for ; Tue, 03 Aug 2010 15:52:27 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgAtO-00079H-0x for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:22:26 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgAtI-0007qB-0K for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:22:20 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/2] xfs: Introduce XFS_IOC_ZERO_RANGE Subject: [PATCH 2/2] xfs: Introduce XFS_IOC_ZERO_RANGE Date: Tue, 3 Aug 2010 16:22:06 +1000 Message-Id: <1280816526-30100-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280816526-30100-1-git-send-email-david@fromorbit.com> References: <1280816526-30100-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1280817027 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36885 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner XFS_IOC_ZERO_RANGE is the equivalent of an atomic XFS_IOC_UNRESVSP/ XFS_IOC_RESVSP call pair. It enabled ranges of written data to be turned into zeroes without requiring IO or having to free and reallocate the extents in the range given as would occur if we had to punch and then preallocate them separately. This enables applications to zero parts of files very quickly without changing the layout of the files in any way. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_ioctl.c | 3 ++- fs/xfs/linux-2.6/xfs_ioctl32.c | 1 + fs/xfs/xfs_bmap.c | 12 +++++++++--- fs/xfs/xfs_bmap.h | 9 ++++++--- fs/xfs/xfs_fs.h | 1 + fs/xfs/xfs_vnodeops.c | 10 ++++++++-- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 237f5ff..a9c4810 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -1292,7 +1292,8 @@ xfs_file_ioctl( case XFS_IOC_ALLOCSP64: case XFS_IOC_FREESP64: case XFS_IOC_RESVSP64: - case XFS_IOC_UNRESVSP64: { + case XFS_IOC_UNRESVSP64: + case XFS_IOC_ZERO_RANGE: { xfs_flock64_t bf; if (copy_from_user(&bf, arg, sizeof(bf))) diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index 6c83f7f..464bcc7 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c @@ -574,6 +574,7 @@ xfs_file_compat_ioctl( case XFS_IOC_FSGEOMETRY_V1: case XFS_IOC_FSGROWFSDATA: case XFS_IOC_FSGROWFSRT: + case XFS_IOC_ZERO_RANGE: return xfs_file_ioctl(filp, cmd, p); #else case XFS_IOC_ALLOCSP_32: diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 23f14e5..d36770f 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -4744,8 +4744,12 @@ xfs_bmapi( * Check if writing previously allocated but * unwritten extents. */ - if (wr && mval->br_state == XFS_EXT_UNWRITTEN && - ((flags & (XFS_BMAPI_PREALLOC|XFS_BMAPI_DELAY)) == 0)) { + if (wr && + ((mval->br_state == XFS_EXT_UNWRITTEN && + ((flags & (XFS_BMAPI_PREALLOC|XFS_BMAPI_DELAY)) == 0)) || + (mval->br_state == XFS_EXT_NORM && + ((flags & (XFS_BMAPI_PREALLOC|XFS_BMAPI_CONVERT)) == + (XFS_BMAPI_PREALLOC|XFS_BMAPI_CONVERT))))) { /* * Modify (by adding) the state flag, if writing. */ @@ -4757,7 +4761,9 @@ xfs_bmapi( *firstblock; cur->bc_private.b.flist = flist; } - mval->br_state = XFS_EXT_NORM; + mval->br_state = (mval->br_state == XFS_EXT_UNWRITTEN) + ? XFS_EXT_NORM + : XFS_EXT_UNWRITTEN; error = xfs_bmap_add_extent(ip, lastx, &cur, mval, firstblock, flist, &tmp_logflags, whichfork, (flags & XFS_BMAPI_RSVBLOCKS)); diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index b13569a..71ec9b6 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h @@ -74,9 +74,12 @@ typedef struct xfs_bmap_free #define XFS_BMAPI_IGSTATE 0x080 /* Ignore state - */ /* combine contig. space */ #define XFS_BMAPI_CONTIG 0x100 /* must allocate only one extent */ -#define XFS_BMAPI_CONVERT 0x200 /* unwritten extent conversion - */ - /* need write cache flushing and no */ - /* additional allocation alignments */ +/* + * unwritten extent conversion - this needs write cache flushing and no additional + * allocation alignments. When specified with XFS_BMAPI_PREALLOC it converts + * from written to unwritten, otherwise convert from unwritten to written. + */ +#define XFS_BMAPI_CONVERT 0x200 #define XFS_BMAPI_FLAGS \ { XFS_BMAPI_WRITE, "WRITE" }, \ diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h index 7cf7220..6af6518 100644 --- a/fs/xfs/xfs_fs.h +++ b/fs/xfs/xfs_fs.h @@ -446,6 +446,7 @@ typedef struct xfs_handle { /* XFS_IOC_SETBIOSIZE ---- deprecated 46 */ /* XFS_IOC_GETBIOSIZE ---- deprecated 47 */ #define XFS_IOC_GETBMAPX _IOWR('X', 56, struct getbmap) +#define XFS_IOC_ZERO_RANGE _IOW ('X', 57, struct xfs_flock64) /* * ioctl commands that replace IRIX syssgi()'s diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 3ac137d..9e0ebd3 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2270,7 +2270,7 @@ xfs_alloc_file_space( count = len; imapp = &imaps[0]; nimaps = 1; - bmapi_flag = XFS_BMAPI_WRITE | (alloc_type ? XFS_BMAPI_PREALLOC : 0); + bmapi_flag = XFS_BMAPI_WRITE | alloc_type; startoffset_fsb = XFS_B_TO_FSBT(mp, offset); allocatesize_fsb = XFS_B_TO_FSB(mp, count); @@ -2702,6 +2702,7 @@ xfs_change_file_space( xfs_off_t llen; xfs_trans_t *tp; struct iattr iattr; + int prealloc_type; if (!S_ISREG(ip->i_d.di_mode)) return XFS_ERROR(EINVAL); @@ -2744,12 +2745,17 @@ xfs_change_file_space( * size to be changed. */ setprealloc = clrprealloc = 0; + prealloc_type = XFS_BMAPI_PREALLOC; switch (cmd) { + case XFS_IOC_ZERO_RANGE: + prealloc_type |= XFS_BMAPI_CONVERT; + xfs_tosspages(ip, startoffset, startoffset + bf->l_len, 0); + /* FALLTHRU */ case XFS_IOC_RESVSP: case XFS_IOC_RESVSP64: error = xfs_alloc_file_space(ip, startoffset, bf->l_len, - 1, attr_flags); + prealloc_type, attr_flags); if (error) return error; setprealloc = 1; -- 1.7.1 From SRS0+3YsL+64+fromorbit.com=dave@internode.on.net Tue Aug 3 01:22:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o736MEv6228118 for ; Tue, 3 Aug 2010 01:22:14 -0500 X-ASG-Debug-ID: 1280816551-3b9a02c40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 58D591D6B5B1 for ; Mon, 2 Aug 2010 23:22:32 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id 3OisF2kIhVnSSEwk for ; Mon, 02 Aug 2010 23:22:32 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33614927-1927428 for ; Tue, 03 Aug 2010 15:52:31 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgAtN-00079G-Vi for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:22:26 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgAtH-0007q9-UL for xfs@oss.sgi.com; Tue, 03 Aug 2010 16:22:19 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/2] xfs: use range primitives for xfs page cache operations Subject: [PATCH 1/2] xfs: use range primitives for xfs page cache operations Date: Tue, 3 Aug 2010 16:22:05 +1000 Message-Id: <1280816526-30100-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280816526-30100-1-git-send-email-david@fromorbit.com> References: <1280816526-30100-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1280816553 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36886 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner While XFS passes ranges to operate on from the core code, the functions being called ignore the either the entire range or the end of the range. This is historical because when the function were written linux didn't have the necessary range operations. Update the functions to use the correct operations. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_fs_subr.c | 31 +++++++++++++++---------------- 1 files changed, 15 insertions(+), 16 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c index 1f279b0..24f0b0a 100644 --- a/fs/xfs/linux-2.6/xfs_fs_subr.c +++ b/fs/xfs/linux-2.6/xfs_fs_subr.c @@ -32,10 +32,9 @@ xfs_tosspages( xfs_off_t last, int fiopt) { - struct address_space *mapping = VFS_I(ip)->i_mapping; - - if (mapping->nrpages) - truncate_inode_pages(mapping, first); + /* can't toss partial tail pages, so mask them out */ + last &= ~(PAGE_SIZE - 1); + truncate_inode_pages_range(VFS_I(ip)->i_mapping, first, last); } int @@ -50,12 +49,11 @@ xfs_flushinval_pages( trace_xfs_pagecache_inval(ip, first, last); - if (mapping->nrpages) { - xfs_iflags_clear(ip, XFS_ITRUNCATED); - ret = filemap_write_and_wait(mapping); - if (!ret) - truncate_inode_pages(mapping, first); - } + xfs_iflags_clear(ip, XFS_ITRUNCATED); + ret = filemap_write_and_wait_range(mapping, first, + last == -1 ? LLONG_MAX : last); + if (!ret) + truncate_inode_pages_range(mapping, first, last); return -ret; } @@ -71,10 +69,9 @@ xfs_flush_pages( int ret = 0; int ret2; - if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) { - xfs_iflags_clear(ip, XFS_ITRUNCATED); - ret = -filemap_fdatawrite(mapping); - } + xfs_iflags_clear(ip, XFS_ITRUNCATED); + ret = -filemap_fdatawrite_range(mapping, first, + last == -1 ? LLONG_MAX : last); if (flags & XBF_ASYNC) return ret; ret2 = xfs_wait_on_pages(ip, first, last); @@ -91,7 +88,9 @@ xfs_wait_on_pages( { struct address_space *mapping = VFS_I(ip)->i_mapping; - if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) - return -filemap_fdatawait(mapping); + if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) { + return -filemap_fdatawait_range(mapping, first, + last == -1 ? ip->i_size - 1 : last); + } return 0; } -- 1.7.1 From SRS0+k1Pl+64+fromorbit.com=dave@internode.on.net Tue Aug 3 02:23:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o737NCks230198 for ; Tue, 3 Aug 2010 02:23:13 -0500 X-ASG-Debug-ID: 1280820210-6278029b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2185048E473 for ; Tue, 3 Aug 2010 00:23:30 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id wATLig4HIX6m103Z for ; Tue, 03 Aug 2010 00:23:30 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33671163-1927428 for multiple; Tue, 03 Aug 2010 16:53:30 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgBqS-0007DK-Jw; Tue, 03 Aug 2010 17:23:28 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgBqS-0000Nc-Bw; Tue, 03 Aug 2010 17:23:28 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] dio: add a mempool for the unaligned block structures Subject: [PATCH 3/3] dio: add a mempool for the unaligned block structures Date: Tue, 3 Aug 2010 17:23:24 +1000 Message-Id: <1280820204-1418-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280820204-1418-1-git-send-email-david@fromorbit.com> References: <1280820204-1418-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1280820212 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36890 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner We need the zero block tracking structure allocation to succeed. Silently failing and potentially allowing data corruption is not an option. Add a mempool to ensure this allocation will always succeed. Signed-off-by: Dave Chinner --- fs/direct-io.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/fs/direct-io.c b/fs/direct-io.c index 368abec..dfc5d9a 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -161,12 +161,22 @@ struct dio_zero_block_head { static struct dio_zero_block_head dio_zero_blocks[DIO_ZERO_BLOCK_NR]; #define to_dio_zero_head(zb) (&dio_zero_blocks[zb % DIO_ZERO_BLOCK_NR]) +/* a small mempool just to guarantee progress. */ +#define DIO_ZERO_BLOCK_ENTRIES 2 +static mempool_t *dio_zero_block_pool; + static int __init dio_init_zero_block(void) { int i; + dio_zero_block_pool = mempool_create_kmalloc_pool( + DIO_ZERO_BLOCK_ENTRIES, + sizeof(struct dio_zero_block)); + if (!dio_zero_block_pool) + panic("dio: can't create zero block pool"); + for (i = 0; i < DIO_ZERO_BLOCK_NR; i++) { spin_lock_init(&dio_zero_blocks[i].lock); INIT_LIST_HEAD(&dio_zero_blocks[i].list); @@ -184,9 +194,7 @@ dio_start_zero_block(struct dio *dio, sector_t zero_block) struct dio_zero_block_head *zbh = to_dio_zero_head(zero_block); struct dio_zero_block *zb; - zb = kmalloc(sizeof(*zb), GFP_NOIO); - if (!zb) - return; + zb = mempool_alloc(dio_zero_block_pool, GFP_NOIO); INIT_LIST_HEAD(&zb->dio_list); init_waitqueue_head(&zb->wq); zb->zero_block = zero_block; -- 1.7.1 From SRS0+of0x+64+fromorbit.com=dave@internode.on.net Tue Aug 3 02:23:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o737NDcW230200 for ; Tue, 3 Aug 2010 02:23:13 -0500 X-ASG-Debug-ID: 1280820210-094e01b10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7BA2F168935F for ; Tue, 3 Aug 2010 00:23:31 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id lP1Te4ZG83M0BJpE for ; Tue, 03 Aug 2010 00:23:31 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34114754-1927428 for multiple; Tue, 03 Aug 2010 16:53:29 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgBqS-0007DJ-Hv; Tue, 03 Aug 2010 17:23:28 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgBqS-0000Na-A0; Tue, 03 Aug 2010 17:23:28 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] dio: scale unaligned IO tracking via multiple lists Subject: [PATCH 2/3] dio: scale unaligned IO tracking via multiple lists Date: Tue, 3 Aug 2010 17:23:23 +1000 Message-Id: <1280820204-1418-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280820204-1418-1-git-send-email-david@fromorbit.com> References: <1280820204-1418-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1280820212 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36890 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner To avoid concerns that a single list and lock tracking the unaligned IOs will not scale appropriately, create multiple lists and locks and chose them by hashing the unaligned block being zeroed. Signed-off-by: Dave Chinner --- fs/direct-io.c | 49 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 36 insertions(+), 13 deletions(-) diff --git a/fs/direct-io.c b/fs/direct-io.c index 865749e..368abec 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -152,8 +152,28 @@ struct dio_zero_block { atomic_t ref; /* reference count */ }; -static DEFINE_SPINLOCK(dio_zero_block_lock); -static LIST_HEAD(dio_zero_block_list); +#define DIO_ZERO_BLOCK_NR 37LL +struct dio_zero_block_head { + struct list_head list; + spinlock_t lock; +}; + +static struct dio_zero_block_head dio_zero_blocks[DIO_ZERO_BLOCK_NR]; +#define to_dio_zero_head(zb) (&dio_zero_blocks[zb % DIO_ZERO_BLOCK_NR]) + + +static int __init +dio_init_zero_block(void) +{ + int i; + + for (i = 0; i < DIO_ZERO_BLOCK_NR; i++) { + spin_lock_init(&dio_zero_blocks[i].lock); + INIT_LIST_HEAD(&dio_zero_blocks[i].list); + } + return 0; +} +subsys_initcall(dio_init_zero_block); /* * Add a filesystem block to the list of blocks we are tracking. @@ -161,6 +181,7 @@ static LIST_HEAD(dio_zero_block_list); static void dio_start_zero_block(struct dio *dio, sector_t zero_block) { + struct dio_zero_block_head *zbh = to_dio_zero_head(zero_block); struct dio_zero_block *zb; zb = kmalloc(sizeof(*zb), GFP_NOIO); @@ -172,9 +193,9 @@ dio_start_zero_block(struct dio *dio, sector_t zero_block) zb->dio = dio; atomic_set(&zb->ref, 1); - spin_lock(&dio_zero_block_lock); - list_add(&zb->dio_list, &dio_zero_block_list); - spin_unlock(&dio_zero_block_lock); + spin_lock(&zbh->lock); + list_add(&zb->dio_list, &zbh->list); + spin_unlock(&zbh->lock); } static void @@ -193,21 +214,22 @@ dio_drop_zero_block(struct dio_zero_block *zb) static int dio_wait_zero_block(struct dio *dio, sector_t zero_block) { + struct dio_zero_block_head *zbh = to_dio_zero_head(zero_block); struct dio_zero_block *zb; - spin_lock(&dio_zero_block_lock); - list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + spin_lock(&zbh->lock); + list_for_each_entry(zb, &zbh->list, dio_list) { if (zb->dio->inode != dio->inode) continue; if (zb->zero_block != zero_block) continue; atomic_inc(&zb->ref); - spin_unlock(&dio_zero_block_lock); + spin_unlock(&zbh->lock); wait_event(zb->wq, (list_empty(&zb->dio_list))); dio_drop_zero_block(zb); return 1; } - spin_unlock(&dio_zero_block_lock); + spin_unlock(&zbh->lock); return 0; } @@ -216,21 +238,22 @@ dio_wait_zero_block(struct dio *dio, sector_t zero_block) */ static void dio_end_zero_block(struct dio *dio, sector_t zero_block) { + struct dio_zero_block_head *zbh = to_dio_zero_head(zero_block); struct dio_zero_block *zb; - spin_lock(&dio_zero_block_lock); - list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + spin_lock(&zbh->lock); + list_for_each_entry(zb, &zbh->list, dio_list) { if (zb->dio->inode != dio->inode) continue; if (zb->zero_block != zero_block) continue; list_del_init(&zb->dio_list); - spin_unlock(&dio_zero_block_lock); + spin_unlock(&zbh->lock); wake_up(&zb->wq); dio_drop_zero_block(zb); return; } - spin_unlock(&dio_zero_block_lock); + spin_unlock(&zbh->lock); } /* -- 1.7.1 From SRS0+of0x+64+fromorbit.com=dave@internode.on.net Tue Aug 3 02:23:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_33, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o737NDaO230202 for ; Tue, 3 Aug 2010 02:23:13 -0500 X-ASG-Debug-ID: 1280820211-68d801db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E447748E47D for ; Tue, 3 Aug 2010 00:23:31 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id QuAHAyD2G1ZYexTC for ; Tue, 03 Aug 2010 00:23:31 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33720684-1927428 for multiple; Tue, 03 Aug 2010 16:53:30 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgBqS-0007DI-G9; Tue, 03 Aug 2010 17:23:28 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgBqS-0000NY-86; Tue, 03 Aug 2010 17:23:28 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] dio: track and serialise unaligned direct IO Subject: [PATCH 1/3] dio: track and serialise unaligned direct IO Date: Tue, 3 Aug 2010 17:23:22 +1000 Message-Id: <1280820204-1418-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1280820204-1418-1-git-send-email-david@fromorbit.com> References: <1280820204-1418-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1280820212 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36890 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner If we get two unaligned direct IO's to the same filesystem block that is marked as a new allocation (i.e. buffer_new), then both IOs will zero the portion of the block they are not writing data to. As a result, when the IOs complete there will be a portion of the block that contains zeros from the last IO to complete rather than the data that should be there. This is easily manifested by qemu using aio+dio with an unaligned guest filesystem - every IO is unaligned and fileystem corruption is encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) is also a simple reproducer. To avoid this problem, track unaligned IO that triggers sub-block zeroing and check new incoming unaligned IO that require sub-block zeroing against that list. If we get an overlap where the start and end of unaligned IOs hit the same filesystem block, then we need to block the incoming IOs until the IO that is zeroing the block completes. The blocked IO can then continue without needing to do any zeroing and hence won't overwrite valid data with zeros. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/direct-io.c | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 146 insertions(+), 6 deletions(-) diff --git a/fs/direct-io.c b/fs/direct-io.c index a10cb91..865749e 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -71,6 +71,9 @@ struct dio { unsigned start_zero_done; /* flag: sub-blocksize zeroing has been performed at the start of a write */ +#define LAST_SECTOR ((sector_t)-1LL) + sector_t zero_block_front; /* fs block we are zeroing at front */ + sector_t zero_block_rear; /* fs block we are zeroing at rear */ int pages_in_io; /* approximate total IO pages */ size_t size; /* total request size (doesn't change)*/ sector_t block_in_file; /* Current offset into the underlying @@ -135,6 +138,101 @@ struct dio { struct page *pages[DIO_PAGES]; /* page buffer */ }; + +/* + * record fs blocks we are doing zeroing on in a zero block list. + * unaligned IO is not very performant and so is relatively uncommon, + * so a global list should be sufficent to track them. + */ +struct dio_zero_block { + struct list_head dio_list; /* list of io in progress */ + sector_t zero_block; /* block being zeroed */ + struct dio *dio; /* owner dio */ + wait_queue_head_t wq; /* New IO block here */ + atomic_t ref; /* reference count */ +}; + +static DEFINE_SPINLOCK(dio_zero_block_lock); +static LIST_HEAD(dio_zero_block_list); + +/* + * Add a filesystem block to the list of blocks we are tracking. + */ +static void +dio_start_zero_block(struct dio *dio, sector_t zero_block) +{ + struct dio_zero_block *zb; + + zb = kmalloc(sizeof(*zb), GFP_NOIO); + if (!zb) + return; + INIT_LIST_HEAD(&zb->dio_list); + init_waitqueue_head(&zb->wq); + zb->zero_block = zero_block; + zb->dio = dio; + atomic_set(&zb->ref, 1); + + spin_lock(&dio_zero_block_lock); + list_add(&zb->dio_list, &dio_zero_block_list); + spin_unlock(&dio_zero_block_lock); +} + +static void +dio_drop_zero_block(struct dio_zero_block *zb) +{ + if (atomic_dec_and_test(&zb->ref)) + kfree(zb); +} + +/* + * Check whether a filesystem block is currently being zeroed, and if it is + * wait for it to complete before returning. If we waited for a block being + * zeroed, return 1 to indicate that the block is already initialised, + * otherwise return 0 to indicate that it needs zeroing. + */ +static int +dio_wait_zero_block(struct dio *dio, sector_t zero_block) +{ + struct dio_zero_block *zb; + + spin_lock(&dio_zero_block_lock); + list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + if (zb->dio->inode != dio->inode) + continue; + if (zb->zero_block != zero_block) + continue; + atomic_inc(&zb->ref); + spin_unlock(&dio_zero_block_lock); + wait_event(zb->wq, (list_empty(&zb->dio_list))); + dio_drop_zero_block(zb); + return 1; + } + spin_unlock(&dio_zero_block_lock); + return 0; +} + +/* + * Complete a block zeroing and wake up anyone waiting for it. + */ +static void dio_end_zero_block(struct dio *dio, sector_t zero_block) +{ + struct dio_zero_block *zb; + + spin_lock(&dio_zero_block_lock); + list_for_each_entry(zb, &dio_zero_block_list, dio_list) { + if (zb->dio->inode != dio->inode) + continue; + if (zb->zero_block != zero_block) + continue; + list_del_init(&zb->dio_list); + spin_unlock(&dio_zero_block_lock); + wake_up(&zb->wq); + dio_drop_zero_block(zb); + return; + } + spin_unlock(&dio_zero_block_lock); +} + /* * How many pages are in the queue? */ @@ -253,6 +351,11 @@ static int dio_complete(struct dio *dio, loff_t offset, int ret, bool is_async) aio_complete(dio->iocb, ret, 0); } + if (dio->zero_block_front != LAST_SECTOR) + dio_end_zero_block(dio, dio->zero_block_front); + if (dio->zero_block_rear != LAST_SECTOR) + dio_end_zero_block(dio, dio->zero_block_rear); + if (dio->flags & DIO_LOCKING) /* lockdep: non-owner release */ up_read_non_owner(&dio->inode->i_alloc_sem); @@ -777,6 +880,12 @@ static void clean_blockdev_aliases(struct dio *dio) * block with zeros. This happens only if user-buffer, fileoffset or * io length is not filesystem block-size multiple. * + * We need to track the blocks we are zeroing. If we have concurrent IOs that hit + * the same start or end block, we do not want all the IOs to zero the portion + * they are not writing data to as that will overwrite data from the other IOs. + * Hence we need to block until the first unaligned IO completes before we can + * continue (without executing any zeroing). + * * `end' is zero if we're doing the start of the IO, 1 at the end of the * IO. */ @@ -784,8 +893,8 @@ static void dio_zero_block(struct dio *dio, int end) { unsigned dio_blocks_per_fs_block; unsigned this_chunk_blocks; /* In dio_blocks */ - unsigned this_chunk_bytes; struct page *page; + sector_t fsblock; dio->start_zero_done = 1; if (!dio->blkfactor || !buffer_new(&dio->map_bh)) @@ -797,17 +906,41 @@ static void dio_zero_block(struct dio *dio, int end) if (!this_chunk_blocks) return; + if (end) + this_chunk_blocks = dio_blocks_per_fs_block - this_chunk_blocks; + /* * We need to zero out part of an fs block. It is either at the - * beginning or the end of the fs block. + * beginning or the end of the fs block, but first we need to check if + * there is already a zeroing being run on this block. + * + * If we are doing a sub-block IO (i.e. zeroing both front and rear of + * the same block) we don't need to wait or set a gaurd for the rear of + * the block as we already have one set. */ - if (end) - this_chunk_blocks = dio_blocks_per_fs_block - this_chunk_blocks; + fsblock = dio->block_in_file >> dio->blkfactor; + if (!end || dio->zero_block_front != fsblock) { - this_chunk_bytes = this_chunk_blocks << dio->blkbits; + /* wait for any zeroing already in progress */ + if (dio_wait_zero_block(dio, fsblock)) { + /* skip the range we would have zeroed. */ + dio->next_block_for_io += this_chunk_blocks; + return; + } + + /* + * we are going to zero stuff now, so set a guard to catch + * others that might want to zero the same block. + */ + dio_start_zero_block(dio, fsblock); + if (end) + dio->zero_block_rear = fsblock; + else + dio->zero_block_front = fsblock; + } page = ZERO_PAGE(0); - if (submit_page_section(dio, page, 0, this_chunk_bytes, + if (submit_page_section(dio, page, 0, this_chunk_blocks << dio->blkbits, dio->next_block_for_io)) return; @@ -1191,6 +1324,13 @@ __blockdev_direct_IO_newtrunc(int rw, struct kiocb *iocb, struct inode *inode, */ memset(dio, 0, offsetof(struct dio, pages)); + /* + * zero_blocks need to initialised to largeÑ•t value to avoid + * matching the zero block accidentally. + */ + dio->zero_block_front = LAST_SECTOR; + dio->zero_block_rear = LAST_SECTOR; + dio->flags = flags; if (dio->flags & DIO_LOCKING) { /* watch out for a 0 len io from a tricksy fs */ -- 1.7.1 From SRS0+of0x+64+fromorbit.com=dave@internode.on.net Tue Aug 3 02:23:22 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o737NM7D230244 for ; Tue, 3 Aug 2010 02:23:22 -0500 X-ASG-Debug-ID: 1280820220-0e5b017d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A4D721681BBB for ; Tue, 3 Aug 2010 00:23:40 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id tLDl2NTUHUNZ5Aua for ; Tue, 03 Aug 2010 00:23:40 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34114774-1927428 for multiple; Tue, 03 Aug 2010 16:53:39 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgBqc-0007DH-Db; Tue, 03 Aug 2010 17:23:38 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgBqS-0000NW-68; Tue, 03 Aug 2010 17:23:28 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] dio: serialise unaligned direct IO V3 Subject: [PATCH 0/3] dio: serialise unaligned direct IO V3 Date: Tue, 3 Aug 2010 17:23:21 +1000 Message-Id: <1280820204-1418-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1280820221 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0205 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36890 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Updated version of the unaligned direct IO tracking bug fixes. Version 3: - address Christoph's review comments - add a mempool to avoid memory allocation failures to address Jan's comment. Version 2: - address scalability concerns From SRS0+3YsL+64+fromorbit.com=dave@internode.on.net Tue Aug 3 04:09:52 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7399p8R233905 for ; Tue, 3 Aug 2010 04:09:52 -0500 X-ASG-Debug-ID: 1280827085-744403840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BC73D11C5A1E for ; Tue, 3 Aug 2010 02:18:05 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id peCoWVGH5sOnz9Oc for ; Tue, 03 Aug 2010 02:18:05 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33637054-1927428 for ; Tue, 03 Aug 2010 18:40:07 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OgDVe-0007Li-0r for xfs@oss.sgi.com; Tue, 03 Aug 2010 19:10:06 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OgDVd-0000v2-OF for xfs@oss.sgi.com; Tue, 03 Aug 2010 19:10:05 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: dummy transactions should not dirty VFS state Subject: [PATCH] xfs: dummy transactions should not dirty VFS state Date: Tue, 3 Aug 2010 19:10:05 +1000 Message-Id: <1280826605-3506-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1280827087 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36897 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner When we need to cover the log, we issue dummy transactions to ensure the current log tail is on disk. Unfortunately we currently use the root inode in the dummy transaction, and the act of committing the transaction dirties the inode at the VFS level. As a result, the VFS writeback of the dirty inode will prevent the filesystem from idling long enough for the log covering state machine to complete. The state machine gets stuck in a loop issuing new dummy transactions to cover the log and never makes progress. To avoid this problem, the dummy transactions should not cause externally visible state changes. To ensure this occurs, make sure that dummy transactions log an unchanging field in the superblock as it's state is never propagated outside the filesystem. This allows the log covering state machine to complete successfully and the filesystem now correctly enters a fully idle state about 90s after the last modification was made. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 37 +++---------------------------------- fs/xfs/xfs_fsops.c | 24 ++++++++++++++---------- 2 files changed, 17 insertions(+), 44 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index dfcbd98..bec6539 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -34,6 +34,7 @@ #include "xfs_inode_item.h" #include "xfs_quota.h" #include "xfs_trace.h" +#include "xfs_fsops.h" #include #include @@ -341,38 +342,6 @@ xfs_sync_attr( } STATIC int -xfs_commit_dummy_trans( - struct xfs_mount *mp, - uint flags) -{ - struct xfs_inode *ip = mp->m_rootip; - struct xfs_trans *tp; - int error; - - /* - * Put a dummy transaction in the log to tell recovery - * that all others are OK. - */ - tp = xfs_trans_alloc(mp, XFS_TRANS_DUMMY1); - error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - return error; - } - - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_trans_commit(tp, 0); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - - /* the log force ensures this transaction is pushed to disk */ - xfs_log_force(mp, (flags & SYNC_WAIT) ? XFS_LOG_SYNC : 0); - return error; -} - -STATIC int xfs_sync_fsdata( struct xfs_mount *mp) { @@ -432,7 +401,7 @@ xfs_quiesce_data( /* mark the log as covered if needed */ if (xfs_log_need_covered(mp)) - error2 = xfs_commit_dummy_trans(mp, SYNC_WAIT); + error2 = xfs_fs_log_dummy(mp); /* flush data-only devices */ if (mp->m_rtdev_targp) @@ -578,7 +547,7 @@ xfs_sync_worker( /* dgc: errors ignored here */ error = xfs_qm_sync(mp, SYNC_TRYLOCK); if (xfs_log_need_covered(mp)) - error = xfs_commit_dummy_trans(mp, 0); + error = xfs_fs_log_dummy(mp); } mp->m_sync_seq++; wake_up(&mp->m_wait_single_sync_task); diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index dbca5f5..9e15623 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -604,6 +604,15 @@ out: return 0; } +/* + * Dump a transaction into the log that contains no real change. This is needed + * to be able to make the log dirty or stamp the current tail LSN into the log + * during the covering operation. + * + * We cannot use an inode here for this - that will push dirty state back up + * into the VFS and then periodic inode flushing will prevent log covering from + * making progress. Hence we log a field in the superblock instead. + */ int xfs_fs_log_dummy( xfs_mount_t *mp) @@ -613,22 +622,17 @@ xfs_fs_log_dummy( int error; tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP); - error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, 0, + XFS_DEFAULT_LOG_COUNT); if (error) { xfs_trans_cancel(tp, 0); return error; } - ip = mp->m_rootip; - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + /* log the UUID because it is an unchanging field */ + xfs_mod_sb(tp, XFS_SB_UUID); xfs_trans_set_sync(tp); - error = xfs_trans_commit(tp, 0); - - xfs_iunlock(ip, XFS_ILOCK_EXCL); - return error; + return xfs_trans_commit(tp, 0); } int -- 1.7.1 From BATV+ff76fabf3a6dc660cd64+2536+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 3 04:55:01 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o739t0Hs235261 for ; Tue, 3 Aug 2010 04:55:01 -0500 X-ASG-Debug-ID: 1280829319-788c029e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BEB11168928D for ; Tue, 3 Aug 2010 02:55:19 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DTTCpjsIuTQ6K2WK for ; Tue, 03 Aug 2010 02:55:19 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgEDO-0007oc-51; Tue, 03 Aug 2010 09:55:18 +0000 Date: Tue, 3 Aug 2010 05:55:18 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: dummy transactions should not dirty VFS state Subject: Re: [PATCH] xfs: dummy transactions should not dirty VFS state Message-ID: <20100803095518.GA27470@infradead.org> References: <1280826605-3506-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280826605-3506-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280829319 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I looks good to me, but there are two subtile differences between xfs_commit_dummy_trans and xfs_fs_log_dummy that get lost. For one xfs_commit_dummy_trans doesn't actually commit a synchronous transaction (or rather forces out the log) unless SYNC_WAIT is set, in addition to that xfs_fs_log_dummy uses _xfs_trans_alloc, which doesn't get blocked by the filesystem freezing. From SRS0+mH0S+64+fromorbit.com=david@internode.on.net Tue Aug 3 07:07:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73C7FdD238873 for ; Tue, 3 Aug 2010 07:07:15 -0500 X-ASG-Debug-ID: 1280837252-1d5f001d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5BCC21688327 for ; Tue, 3 Aug 2010 05:07:32 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id 8xrC3ZkBc2eBn8Z9 for ; Tue, 03 Aug 2010 05:07:32 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33654241-1927428 for multiple; Tue, 03 Aug 2010 21:37:31 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgGHI-0007YS-UW; Tue, 03 Aug 2010 22:07:28 +1000 Date: Tue, 3 Aug 2010 22:07:28 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: dummy transactions should not dirty VFS state Subject: Re: [PATCH] xfs: dummy transactions should not dirty VFS state Message-ID: <20100803120728.GA26402@dastard> References: <1280826605-3506-1-git-send-email-david@fromorbit.com> <20100803095518.GA27470@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100803095518.GA27470@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1280837254 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36908 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 05:55:18AM -0400, Christoph Hellwig wrote: > I looks good to me, but there are two subtile differences between > xfs_commit_dummy_trans and xfs_fs_log_dummy that get lost. Yes, I noticed those things. Especially as I modified the wrong one in the first place and realised both need fixing and the duplication of code seems completely unnecessary. We should have only one copy of this code, not two copies that do slightly different things. > For one > xfs_commit_dummy_trans doesn't actually commit a synchronous transaction > (or rather forces out the log) unless SYNC_WAIT is set, I don't think that we really _need_ a non-blocking version - waiting for a single sync transaction in xfssyncd once every 36s is hardly going to kill performance. > in addition > to that xfs_fs_log_dummy uses _xfs_trans_alloc, which doesn't get > blocked by the filesystem freezing. Everything will be clean on a frozen filesystem, so all the current code does is block the xfssyncd until the filesytem is unfrozen. Given that we can still read everything on the frozen filesystem, inode caches can still grow and hence we still need to run regular reclaiming. If the xfssyncd is blocked then only memory pressure can free up inodes. If we want to keep all these little differences, then we still need to kill one of the two versions. Let me know which you prefer... Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+ff76fabf3a6dc660cd64+2536+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 3 08:50:32 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73DoVrP242327 for ; Tue, 3 Aug 2010 08:50:32 -0500 X-ASG-Debug-ID: 1280843451-14d802490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E94248F4AC for ; Tue, 3 Aug 2010 06:50:51 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id PPy8NPUwsTphBblw for ; Tue, 03 Aug 2010 06:50:51 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgHtJ-0001G4-Ic; Tue, 03 Aug 2010 13:50:49 +0000 Date: Tue, 3 Aug 2010 09:50:49 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: dummy transactions should not dirty VFS state Subject: Re: [PATCH] xfs: dummy transactions should not dirty VFS state Message-ID: <20100803135049.GA32679@infradead.org> References: <1280826605-3506-1-git-send-email-david@fromorbit.com> <20100803095518.GA27470@infradead.org> <20100803120728.GA26402@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100803120728.GA26402@dastard> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280843451 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 10:07:28PM +1000, Dave Chinner wrote: > Yes, I noticed those things. Especially as I modified the wrong > one in the first place and realised both need fixing and the > duplication of code seems completely unnecessary. We should have > only one copy of this code, not two copies that do slightly > different things. Yes, having one copy is much better. > > For one > > xfs_commit_dummy_trans doesn't actually commit a synchronous transaction > > (or rather forces out the log) unless SYNC_WAIT is set, > > I don't think that we really _need_ a non-blocking version - waiting > for a single sync transaction in xfssyncd once every 36s is hardly > going to kill performance. Sounds fair, but it needs documentation in the changelog, and possibly in the source code as well. > > in addition > > to that xfs_fs_log_dummy uses _xfs_trans_alloc, which doesn't get > > blocked by the filesystem freezing. > > Everything will be clean on a frozen filesystem, so all the current > code does is block the xfssyncd until the filesytem is > unfrozen. Given that we can still read everything on the frozen > filesystem, inode caches can still grow and hence we still need to > run regular reclaiming. If the xfssyncd is blocked then only memory > pressure can free up inodes. That's a reason not to wait. But given the bugs we had in this area I'd rather not blindly start the transaction here. Instead we could check s_frozen manually to no bother even doing the calls to write the dummy record, plus maybe an assert so that it trips up for debug builds. From cmm@us.ibm.com Tue Aug 3 12:34:25 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73HYOW5249711 for ; Tue, 3 Aug 2010 12:34:25 -0500 X-ASG-Debug-ID: 1280856884-4cfd02f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8E79D490530 for ; Tue, 3 Aug 2010 10:34:44 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id FYxTfRUEkrMIoHlz for ; Tue, 03 Aug 2010 10:34:44 -0700 (PDT) Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id o73HKsPT018430 for ; Tue, 3 Aug 2010 13:20:54 -0400 Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o73HYTAM1569006 for ; Tue, 3 Aug 2010 13:34:29 -0400 Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o73HYTbv032137 for ; Tue, 3 Aug 2010 13:34:29 -0400 Received: from [9.47.17.72] (mingming-laptop.beaverton.ibm.com [9.47.17.72]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o73HYSDC031731; Tue, 3 Aug 2010 13:34:28 -0400 X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO From: Mingming Cao To: Dave Chinner Cc: Matthew Wilcox , linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net In-Reply-To: <20100730045331.GA2126@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <20100730025324.GO25774@parisc-linux.org> <20100730045331.GA2126@dastard> Content-Type: text/plain; charset="UTF-8" Date: Tue, 03 Aug 2010 10:34:25 -0700 Message-ID: <1280856865.2436.31.camel@mingming-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1280856884 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36930 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2010-07-30 at 14:53 +1000, Dave Chinner wrote: > On Thu, Jul 29, 2010 at 08:53:24PM -0600, Matthew Wilcox wrote: > > On Fri, Jul 30, 2010 at 08:45:16AM +1000, Dave Chinner wrote: > > > If we get two unaligned direct IO's to the same filesystem block > > > that is marked as a new allocation (i.e. buffer_new), then both IOs will > > > zero the portion of the block they are not writing data to. As a > > > result, when the IOs complete there will be a portion of the block > > > that contains zeros from the last IO to complete rather than the > > > data that should be there. > > > > Urgh. Yuck. > > > > > This is easily manifested by qemu using aio+dio with an unaligned > > > guest filesystem - every IO is unaligned and fileystem corruption is > > > encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) > > > is also a simple reproducer. > > > > > > To avoid this problem, track unaligned IO that triggers sub-block zeroing and > > > check new incoming unaligned IO that require sub-block zeroing against that > > > list. If we get an overlap where the start and end of unaligned IOs hit the > > > same filesystem block, then we need to block the incoming IOs until the IO that > > > is zeroing the block completes. The blocked IO can then continue without > > > needing to do any zeroing and hence won't overwrite valid data with zeros. > > > > Urgh. Yuck. > > It's better than silent data corruption. > > > Could we perhaps handle this by making an IO instantiate a page cache > > page for partial writes, and forcing that portion of the IO through the > > page cache? The second IO would hit the same page and use the existing > > O_DIRECT vs page cache paths. > > I don't want any direct IO for XFS to go through the page cache - > unaligned or not. using the page cache for the unaligned blocks > would also be much worse for performance that this method because it > turns unaligned direct IO into 3 IOs - the unaligned head block, the > aligned body and the unaligned tail block. It would also be a > performance hit you take on every single dio, whereas this way the > hit is only taken when an overlap is detected. > Does this problem also possible for DIO and non AIO case? (Ext4 case this only happy with AIO+DIO+unaligned). If not, could we simply force unaligned AIO+DIO to be synchronous? Still direct IO... > And besides, such decisions on whether to use buffered IO have to be > made high up in the filesystem when we are deciding how to lock the > inode for the dio - buffered IO requires exclusive locking, not the > shared locking we do for dio writes. That further reduces the > performance of unaligned direct IO even when there are no overlaps, > and it's a solution that every filesystem needs to implement > themselves in some way. > > I've looked at a couple of different ways to fix this (e.g. passing > the unaligned state to get_blocks() to allow the filesystem to > serialise there) but they've all died a horrible death of dodgy > locking and hacky IO completion detection. not to mention > requiring a different solution in every filesystem. > I also have been thinking other ways to fix this, initial thoughts about this but concerned about the scalability. I was looking at ways to use buffer head state to indicate any unaligned AIO DIO write to buffer_new buffers(do_direct_IO set the state), then for any futhur unaligned IO need to wait for the AIO+DIO complete on that buffer. but the buffer head passed from do_direct_IO to get_blocks() is a dummy buffer, have to get the buffer head from device...this would only impact to all IOs that are really conflict with pending AIO DIOs... it should work for ext4 case...would this something usable for XFS? I have got the approach started last week but not very far. Thanks, Mingming > This way may be a bit ugly, but it works, is isolated and seems to > me to be the least-worst way of solving the problem. It could be > made to scale better by making the tracking per-inode, but I don't > think that growing the struct inode for this corner case is a good > tradeoff, either... > > Cheers, > > Dave. From BATV+ff76fabf3a6dc660cd64+2536+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 3 13:54:44 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73IsfgN252351 for ; Tue, 3 Aug 2010 13:54:44 -0500 X-ASG-Debug-ID: 1280861700-10a902fa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EF28D490BAF for ; Tue, 3 Aug 2010 11:55:00 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id NxlAsdcR2ONI6FcP for ; Tue, 03 Aug 2010 11:55:00 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgMdc-0000o4-Vj; Tue, 03 Aug 2010 18:54:56 +0000 Date: Tue, 3 Aug 2010 14:54:56 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add a test for XFS_IOC_ZERO_RANGE Subject: Re: [PATCH] xfstests: add a test for XFS_IOC_ZERO_RANGE Message-ID: <20100803185456.GA2824@infradead.org> References: <1280816277-29473-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280816277-29473-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280861701 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 04:17:57PM +1000, Dave Chinner wrote: > From: Dave Chinner > > Signed-off-by: Dave Chinner Looks good, Reviewed-by: Christoph Hellwig From BATV+ff76fabf3a6dc660cd64+2536+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 3 13:55:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73ItFBS252390 for ; Tue, 3 Aug 2010 13:55:15 -0500 X-ASG-Debug-ID: 1280861734-273c00d90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 66264169074A for ; Tue, 3 Aug 2010 11:55:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id EVTIOzto3pup6Lg3 for ; Tue, 03 Aug 2010 11:55:34 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgMeE-0001Tn-E6; Tue, 03 Aug 2010 18:55:34 +0000 Date: Tue, 3 Aug 2010 14:55:34 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfsprogs: Add support for XFS_IOC_ZERO_RANGE Subject: Re: [PATCH] xfsprogs: Add support for XFS_IOC_ZERO_RANGE Message-ID: <20100803185534.GB2824@infradead.org> References: <1280816324-29984-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280816324-29984-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280861735 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 04:18:44PM +1000, Dave Chinner wrote: > From: Dave Chinner > > Add xfs_io support for XFS_IOC_ZERO_RANGE and document the ioctl > parameter in the xfsctl(3) man page. Looks good, Reviewed-by: Christoph Hellwig From BATV+ff76fabf3a6dc660cd64+2536+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 3 13:55:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73Ith9H252418 for ; Tue, 3 Aug 2010 13:55:43 -0500 X-ASG-Debug-ID: 1280861763-079303810000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 528DC490BC0 for ; Tue, 3 Aug 2010 11:56:03 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id hcNcYoSSc86d1Og5 for ; Tue, 03 Aug 2010 11:56:03 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgMeg-0001Xv-WF; Tue, 03 Aug 2010 18:56:03 +0000 Date: Tue, 3 Aug 2010 14:56:02 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: use range primitives for xfs page cache operations Subject: Re: [PATCH 1/2] xfs: use range primitives for xfs page cache operations Message-ID: <20100803185602.GC2824@infradead.org> References: <1280816526-30100-1-git-send-email-david@fromorbit.com> <1280816526-30100-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280816526-30100-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280861763 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 04:22:05PM +1000, Dave Chinner wrote: > From: Dave Chinner > > While XFS passes ranges to operate on from the core code, the > functions being called ignore the either the entire range or the end > of the range. This is historical because when the function were > written linux didn't have the necessary range operations. Update the > functions to use the correct operations. Looks good, Reviewed-by: Christoph Hellwig From BATV+ff76fabf3a6dc660cd64+2536+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 3 13:56:33 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73IuWl4252454 for ; Tue, 3 Aug 2010 13:56:32 -0500 X-ASG-Debug-ID: 1280861812-17a102dd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B35FF490BD6 for ; Tue, 3 Aug 2010 11:56:52 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id qE8yL51HRFQi6GtK for ; Tue, 03 Aug 2010 11:56:52 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgMfU-0001tH-BF; Tue, 03 Aug 2010 18:56:52 +0000 Date: Tue, 3 Aug 2010 14:56:52 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] xfs: Introduce XFS_IOC_ZERO_RANGE Subject: Re: [PATCH 2/2] xfs: Introduce XFS_IOC_ZERO_RANGE Message-ID: <20100803185652.GD2824@infradead.org> References: <1280816526-30100-1-git-send-email-david@fromorbit.com> <1280816526-30100-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280816526-30100-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280861812 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 04:22:06PM +1000, Dave Chinner wrote: > From: Dave Chinner > > XFS_IOC_ZERO_RANGE is the equivalent of an atomic XFS_IOC_UNRESVSP/ > XFS_IOC_RESVSP call pair. It enabled ranges of written data to be > turned into zeroes without requiring IO or having to free and > reallocate the extents in the range given as would occur if we had > to punch and then preallocate them separately. This enables > applications to zero parts of files very quickly without changing > the layout of the files in any way. Looks good, Reviewed-by: Christoph Hellwig From shawn.bohrer@gmail.com Tue Aug 3 17:03:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73M3hZh258401 for ; Tue, 3 Aug 2010 17:03:43 -0500 X-ASG-Debug-ID: 1280873521-53a701280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B033511C9331 for ; Tue, 3 Aug 2010 15:12:01 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id hXxs3nB5nvCBAzJp for ; Tue, 03 Aug 2010 15:12:01 -0700 (PDT) Received: by vws15 with SMTP id 15so3488604vws.26 for ; Tue, 03 Aug 2010 15:04:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=NRJ7EA3S1aKYeDfXm0rM+9qyUUW5lmaQck+74Inw0WU=; b=FxeYRP3Pct4gpYwxrqmIbIsiXijAU3YFMbbp7T12z2TtD8j0a+Alw4iJ+xKsFvqgB3 nPK/KOUhHn+5nxLmp3zoiMzecUW70N7d7bGAOguJZCJwQ7iFWTvRw0gXgsGAc4jgEOBh kTtnBjqWQhis5cTR+HcxuF8XytZGpqQ20rj/0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=er00otA+ohIZ2DemXULPO59NJrwl2bNawxGoTc77phsZ2nvxpST8TwVDWVV3+toLrG u5/jHK772MjAWBPqlLV8l22GqmcNORP1oSYbgUBiwdZF0reC9jLRgvnCqPrdC1oW+tls BdY6OiRZQfzN1/HBRG5v6ari3+LkkeiFta+YA= Received: by 10.220.76.200 with SMTP id d8mr5643159vck.261.1280873040924; Tue, 03 Aug 2010 15:04:00 -0700 (PDT) Received: from BohrerMBP.rgmadvisors.com (rgmadvisors.com [207.71.26.250]) by mx.google.com with ESMTPS id v11sm7144786vbb.14.2010.08.03.15.03.58 (version=SSLv3 cipher=RC4-MD5); Tue, 03 Aug 2010 15:03:59 -0700 (PDT) Date: Tue, 3 Aug 2010 17:03:53 -0500 From: Shawn Bohrer To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: High latencies writing to a memory mapped file Subject: Re: High latencies writing to a memory mapped file Message-ID: <20100803220336.GA7282@BohrerMBP.rgmadvisors.com> References: <20100722144706.GA2840@BohrerMBP.rgmadvisors.com> <20100722232846.GC32635@dastard> <20100726220909.GA3017@BohrerMBP.rgmadvisors.com> <20100726232224.GJ7362@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100726232224.GJ7362@dastard> User-Agent: Mutt/1.5.20 (2009-12-10) X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1280873522 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36949 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hey Dave, Thanks for the suggestions. On Tue, Jul 27, 2010 at 09:22:24AM +1000, Dave Chinner wrote: > On Mon, Jul 26, 2010 at 05:09:09PM -0500, Shawn Bohrer wrote: > > On Fri, Jul 23, 2010 at 09:28:46AM +1000, Dave Chinner wrote: > > > On Thu, Jul 22, 2010 at 09:47:06AM -0500, Shawn Bohrer wrote: > > > > Hello, > > > > > > > > We have an application that receives data over the network, and then > > > > writes data out to a shared memory mapped file on xfs. Previously > > > > everything worked great when we were running a CentOS 5.3 kernel > > > > (2.6.18-128.7.1.el5), but when we upgraded to the newer CentOS 5.4 or > > > > 5.5 kernels we started to see occasional spikes (up to 1 second) in > > > > the time it takes to write the data to the memory mapped file. I > > > > noticed that between the CentOS 5.3 and 5.4 kernels the upstream xfs > > > > changes were backported. Testing on 2.6.32.16 shows the same > > > > occasional latency spikes. > > > > > > > > After doing some debugging on 2.6.32.16 I have found the cause of the > > > > latency spikes. The spikes occur every time pdflush runs to flush the > > > > dirty pages. Note our app only writes data at about 1.5 MB/s and we > > > > are well below both the dirty_background_ratio and the dirty_ratio so > > > > these flushes are only of pages that are dirty_expire_centisecs old. > > > > Capturing one of the spikes with ftrace shows: > > > > > > > > ... > > > > flush-8:0-601 [011] 1291592.127590: funcgraph_entry: | xfs_ilock() { > > > > flush-8:0-601 [011] 1291592.127590: funcgraph_entry: | down_write() { > > > > flush-8:0-601 [011] 1291592.127590: funcgraph_entry: 0.213 us | _cond_resched(); > > > > flush-8:0-601 [011] 1291592.127591: funcgraph_exit: 0.657 us | } > > > > flush-8:0-601 [011] 1291592.127591: funcgraph_exit: 1.174 us | } > > > > flush-8:0-601 [011] 1291592.127764: sched_switch: task flush-8:0:601 [120] (D) ==> swapper:0 [120] > > > > ... > > > > > > what is the lead-in context to this hunk? i.e. how does xfs_ilock() > > > get called? That will tell me if it is blocking on the iolock or the > > > ilock... > > > > I don't have the lead-in context here. I'm using the function_graph > > tracer and with stalls up to a second in length it easily overflowed > > the ftrace ring buffer. Once I found I my process was blocking on the > > xfs_ilock(), I limited my traces to include xfs_ilock, xfs_iunlock, > > handle_mm_fault, and the scheduler events. If you are still > > interested in seeing some more detail here I can try to collect some > > more captures. > > I'm not sure isthe tracepoint buffer is the same as the ftrace > buffer, but if it is you can increase the size by doing this sort of > thing: > > # echo 32768 > /sys/kernel/debug/tracing/buffer_size_kb > > I often do that to capture long XFS traces during testing.... > > [snip] > > > > Hmmm - perhaps the issue is that the transaction commit has not been > > > able to get a iclog buffer to write the transaction into and so is > > > sleeping waiting for an iclog IO to complete. That would be woken by > > > the xfslogd, and then the transaction would write into the > > > now-available iclog and unlock the inode. > > > > > > So, I'd say that in this case your application is waiting for log IO > > > completion to occur. Nothing you can do to avoid that, but you can > > > minimise the impact - increase the log buffer size via the mount > > > option logbsize (i.e. -o logbsize=262144) to reduce the frequency of > > > iclog buffer IOs and make it less likely the system will run stall > > > having run out of iclog space. > > > > > > The other possibility is that the log IO is being slowed by barriers > > > being issued with the log writes. If you've got non-volatile caches > > > on your storage, you can turn off barriers and that should help > > > reduce log IO latency significantly. > > > > I've tried mounting with "noatime,nobarrier,logbufs=8,logbsize=262144" > > but I don't notice much difference and still see the stalls. > > Ok. One other possibility came to mind - the transaction commit is > blocking while locking the superblock buffer to apply free block > count changes. Do you have the "lazy-count" option set (xfs_info > will tell you). If it isn't set, then transaction commit > latency can be quite high if the sb buffer is being written to disk > when the transaction tries to lock it. If it is not set, you can use > xfs_admin to set that bit (mkfs has defaulted to lazy-count=1 for > some time now). Setting lazy-count=1 looks like it has helped quite a bit to reduce the frequency that I was seeing the spikes. I am still seeing spikes of up to a second, but I haven't had time to capture any more traces to verify if they are the same issue. Overall though this may be good enough. Thanks, Shawn From ibmirkin@gmail.com Tue Aug 3 17:30:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_42, J_CHICKENPOX_43,J_CHICKENPOX_44,J_CHICKENPOX_52,J_CHICKENPOX_61, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73MUNTs259244 for ; Tue, 3 Aug 2010 17:30:23 -0500 X-ASG-Debug-ID: 1280875117-5f1501de0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91D0511C8C68 for ; Tue, 3 Aug 2010 15:38:37 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id joksoM09ZZvtUTQW for ; Tue, 03 Aug 2010 15:38:37 -0700 (PDT) Received: by vws15 with SMTP id 15so3511359vws.26 for ; Tue, 03 Aug 2010 15:30:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=4wIbxi7WflBXdVaAt3mDIcIKqUVACsesYW8NECvbBfw=; b=EZAauJdU0nlNllDT1sijykT4Wy4XzV4wZxIZwU33Hu/9PE8+vHmDnj6eX2Q8pkchDj tp/3Tw3BuorqhP4auQhjpP1AYSfoCQzbOGXjpBWLclSr4iBftT4MTBkmRrseSl72oquD 6sx+ffX6iSsvtBOls36wPUli4vOLvH9ey6RGs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=o4mArbTEIhqa/JB9GlDVOydbwpkh2QFKMLUdvwV/i2D6KWw8xdsQ/LbafdJArKy0gm v2pjyOy1vqLGdWeQXofD8JIax7yyv+eFPxV0fAdIESXFya0xBEtFRG/MWKu7u3ghlIbw 35sDj7NMAqZMHHnQx5PL5CaCTU9/hxSF8aVSY= MIME-Version: 1.0 Received: by 10.220.61.199 with SMTP id u7mr5689407vch.140.1280874636832; Tue, 03 Aug 2010 15:30:36 -0700 (PDT) Sender: ibmirkin@gmail.com Received: by 10.220.166.76 with HTTP; Tue, 3 Aug 2010 15:30:36 -0700 (PDT) In-Reply-To: <20100718235036.GC32635@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> Date: Tue, 3 Aug 2010 18:30:36 -0400 X-Google-Sender-Auth: _HBnrX4fI8dFHXF4hORwS_sXIiU Message-ID: X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel From: Ilia Mirkin To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1280875118 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.02 X-Barracuda-Spam-Status: No, SCORE=-1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, BSF_RULE_7582B, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36951 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.50 BSF_RULE7568M Custom Rule 7568M 0.50 BSF_RULE_7582B Custom Rule 7582B X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 18, 2010 at 7:50 PM, Dave Chinner wrote: > On Sat, Jul 17, 2010 at 09:35:33PM -0400, Ilia Mirkin wrote: >> On Sat, Jul 17, 2010 at 9:20 PM, Dave Chinner wrot= e: >> > On Sat, Jul 17, 2010 at 12:01:11AM -0400, Ilia Mirkin wrote: >> > I can't find a thread that holds the XFS inode lock that everything >> > is waiting on. I think it is the ILOCK, but none of the threads in >> > this trace should be holding it where they are blocked. IOWs, the >> > output does not give me enough information to get to the root cause. >> >> In case this happens again, was there something more useful I could >> have collected? Should I have grabbed all task states? > > All the task states, including the running tasks, is probably a good > start. Also, if the kernel you are running has tracing events > enabled and has the necessary XFS tracepoints (I can't remember off > the top of my head whether they are in 2.6.33), you might want to > enable tracing of: > > =A0 =A0 =A0 =A0xfs_ilock > =A0 =A0 =A0 =A0xfs_ilock_nowait > =A0 =A0 =A0 =A0xfs_ilock_demote > =A0 =A0 =A0 =A0xfs_iunlock > > via: > > # echo 1 > /sys/kernel/debug/tracing/events/xfs//enable > > and when the problem is hit dumping the trace via: > > # cat /sys/kernel/debug/tracing/trace > trace.log > > You may also want to bump up the trace buffer size to capture more > events: > > # echo 32768 > /sys/kernel/debug/tracing/buffer_size_kb Sad. Nothing in /sys/kernel/debug, I tried turning on some config options at random before doing this run (including lockdep), but I still don't have these. Guess it's time to read some docs :) > > Though I suspect the only way to get to the bottom of it will > be to work out a reproducable test case.... I felt a little bothered by this issue, so I dug in a little further. I basically created a sample mysql, tar, and it seemed that having memory pressure helped, so I created an allocator as well. The "mysql" program basically just has 10 threads, each with their own O_DIRECT-opened fd, reading/writing to random locations in a large file. The "tar" program opens the file, reads it in sequentially with plain read(= ). The "malloc" program allocates a configured amount of memory in the system and then exits. Ideally this should be the amount of RAM in the system. I ran all this in a VM (kvm) with 4 VCPUs (the machine itself is 4S, 8C/S), 512M ram, 512M swap, and a dedicated lvm-backed volume for the test XFS partition (3G). The warnings were no problem to trigger, coming off at around one per second on average, the hang took about 4-5h to appear [although in the previous 8+ hour run, nothing happened, and then I added lockdep]. Basically I was running in three separate shells: ./test-mysqld /mnt/tmp/test ./test-tar /mnt/tmp/test while true; do ./test-malloc; done (oh, and /mnt/tmp/test is a 3G file on a newish XFS; the fs was created/used in prior boots as well, so not completely brand new) test-tar ended up eventually stuck in a D state, as well as one of the mysql threads. I could still create/delete files on the filesystem (although I didn't try writing anything substantial). The system is still up and running in this state, let me know if you'd like me to try doing something in particular to it. Below I have the program source code, as well as output from echo t > /proc/sysrq-trigger. The programs [this is not the cleanest code I've written, but it apparently does the trick... probably left over unnecessary stuff from earlier debugging in there]: test-malloc.c ------------- // gcc -Wall -o test-malloc -pthread test-malloc.c #include #include #include #define BLKSIZE 4096 int main(int argc, char *argv[]) { int i; for (i =3D 0; i < 512 * 1024 * 1024 / BLKSIZE; i++) { void *x =3D malloc(BLKSIZE); memset(x, 0, BLKSIZE); usleep(1); } return 0; } ------------- test-mysqld.c ------------- // gcc -Wall -o test-mysqld -pthread test-mysqld.c #define _GNU_SOURCE #include #include #include #include #include #include #include #define THREADS 10 #define BLKSIZE 4096 void *thread(void *arg) { struct stat s; int fd =3D *(int *)arg; fstat(fd, &s); struct random_data rnd; char state[128]; initstate_r(fd, state, 128, &rnd); char *buf =3D mmap(NULL, BLKSIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); int t; while (1) { random_r(&rnd, &t); off_t block =3D (t % s.st_size) / BLKSIZE; lseek(fd, block * BLKSIZE, SEEK_SET); random_r(&rnd, &t); int r =3D t % 2; if (r) { read(fd, buf, BLKSIZE); } else { int i; for (i =3D 0; i < BLKSIZE; i++) { random_r(&rnd, &t); buf[i] =3D (char)t; } write(fd, buf, BLKSIZE); } } close(fd); return NULL; } void *datasync(void *arg) { int *iarg =3D arg; int i; while (1) { for (i =3D 0; i < THREADS; i++) { fsync(iarg[i]); } sleep(1); } } int main(int argc, char *argv[]) { pthread_t threads[THREADS]; int fds[THREADS]; int i; for (i =3D 0; i < THREADS; i++) { fds[i] =3D open(argv[1], O_RDWR | O_DIRECT); pthread_create(&threads[i], NULL, thread, &fds[i]); } pthread_t sync_thread; pthread_create(&sync_thread, NULL, datasync, fds); for (i =3D 0; i < THREADS; i++) { pthread_join(threads[i], NULL); } return 0; } ------------- test-tar.c ------------- // gcc -Wall -o test-tar -pthread test-tar.c #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { while (1) { int fd =3D open(argv[1], O_RDWR); char buf[4096]; lseek(fd, 0, SEEK_SET); while (read(fd, buf, 4096) !=3D 0); close(fd); } } ------------------- The output of echo t > /proc/sysrq-trigger [apologies for line-wrapping] [16087.359042] SysRq : Show State [16087.359872] task PC stack pid father [16087.359872] init S 0000000000000000 3296 1 0 0x000000= 00 [16087.359872] ffff88001f8ff908 0000000000000046 ffff88001f8ff868 0000000000000286 [16087.359872] 0000000000000040 000000000000def8 ffff88001f8fffd8 0000000000014180 [16087.359872] ffff88001f8fffd8 0000000000014180 ffff88001f910000 ffff88001fa542c0 [16087.359872] Call Trace: [16087.359872] [] schedule_hrtimeout_range+0xc2/0xf7 [16087.359872] [] ? hrtimer_wakeup+0x0/0x21 [16087.359872] [] ? hrtimer_start_range_ns+0xf/0x11 [16087.359872] [] poll_schedule_timeout+0x46/0x69 [16087.359872] [] do_select+0x5c1/0x605 [16087.359872] [] ? do_select+0x0/0x605 [16087.359872] [] ? register_lock_class+0x20/0x327 [16087.359872] [] ? __pollwait+0x0/0xcf [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? lock_release_non_nested+0x97/0x20d [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] ? might_fault+0xa0/0xa4 [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] core_sys_select+0x1b9/0x255 [16087.359872] [] ? core_sys_select+0x41/0x255 [16087.359872] [] ? lock_release_non_nested+0x97/0x20d [16087.359872] [] ? might_fault+0xa0/0xa4 [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] ? ktime_get_ts+0xb1/0xbe [16087.359872] [] sys_select+0x94/0xbc [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] kthreadd S 0000000000000000 4096 2 0 0x000000= 00 [16087.359872] ffff88001f91df00 0000000000000046 0000000000000000 ffff88001f91decc [16087.359872] 0000000000000000 000000000000def8 ffff88001f91dfd8 0000000000014180 [16087.359872] ffff88001f91dfd8 0000000000014180 ffff88001f9110b0 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] kthreadd+0x83/0x109 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthreadd+0x0/0x109 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] migration/0 S 0000000000000000 6496 3 2 0x000000= 00 [16087.359872] ffff88001f91fe50 0000000000000046 0000000000000000 ffffffff81039a5e [16087.359872] ffff880000000000 000000000000def8 ffff88001f91ffd8 0000000000014180 [16087.359872] ffff88001f91ffd8 0000000000014180 ffff88001f912160 ffff88001f0b5370 [16087.359872] Call Trace: [16087.359872] [] ? migration_thread+0x76/0x297 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] migration_thread+0x19c/0x297 [16087.359872] [] ? migration_thread+0x0/0x297 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] ksoftirqd/0 S 0000000000000000 6600 4 2 0x000000= 00 [16087.359872] ffff88001f931e80 0000000000000046 ffffffff8104ad59 0000000000000000 [16087.359872] ffff88001f930000 000000000000def8 ffff88001f931fd8 0000000000014180 [16087.359872] ffff88001f931fd8 0000000000014180 ffff88001f913210 ffff88001e622160 [16087.359872] Call Trace: [16087.359872] [] ? run_timer_softirq+0x28a/0x2d3 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] run_ksoftirqd+0x52/0x121 [16087.359872] [] ? run_ksoftirqd+0x0/0x121 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] migration/1 S 0000000000000001 6552 5 2 0x000000= 00 [16087.359872] ffff88001f933e50 0000000000000046 0000000000000000 ffffffff81039a5e [16087.359872] ffff880000000000 000000000000def8 ffff88001f933fd8 0000000000014180 [16087.359872] ffff88001f933fd8 0000000000014180 ffff88001f9142c0 ffff88001f980000 [16087.359872] Call Trace: [16087.359872] [] ? migration_thread+0x76/0x297 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] migration_thread+0x19c/0x297 [16087.359872] [] ? migration_thread+0x0/0x297 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] ksoftirqd/1 S 0000000000000000 6600 6 2 0x000000= 00 [16087.359872] ffff88001f939e80 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001f938000 000000000000def8 ffff88001f939fd8 0000000000014180 [16087.359872] ffff88001f939fd8 0000000000014180 ffff88001f915370 ffff88001dcb5370 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] run_ksoftirqd+0x52/0x121 [16087.359872] [] ? run_ksoftirqd+0x0/0x121 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] migration/2 S 0000000000000002 6552 7 2 0x000000= 00 [16087.359872] ffff88001f95be50 0000000000000046 0000000000000000 ffffffff81039a5e [16087.359872] ffff880000000000 000000000000def8 ffff88001f95bfd8 0000000000014180 [16087.359872] ffff88001f95bfd8 0000000000014180 ffff88001f960000 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] ? migration_thread+0x76/0x297 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] migration_thread+0x19c/0x297 [16087.359872] [] ? migration_thread+0x0/0x297 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] ksoftirqd/2 S 0000000000000000 6600 8 2 0x000000= 00 [16087.359872] ffff88001f969e80 0000000000000046 ffffffff814903d9 ffff88001e7f9ea8 [16087.359872] ffff880002714b40 000000000000def8 ffff88001f969fd8 0000000000014180 [16087.359872] ffff88001f969fd8 0000000000014180 ffff88001f9610b0 ffff88001fa542c0 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] run_ksoftirqd+0x52/0x121 [16087.359872] [] ? run_ksoftirqd+0x0/0x121 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] migration/3 S 0000000000000003 6552 9 2 0x000000= 00 [16087.359872] ffff88001f96de50 0000000000000046 0000000000000000 0000000000000046 [16087.359872] 0000000000000000 000000000000def8 ffff88001f96dfd8 0000000000014180 [16087.359872] ffff88001f96dfd8 0000000000014180 ffff88001f963210 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] migration_thread+0x19c/0x297 [16087.359872] [] ? migration_thread+0x0/0x297 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] ksoftirqd/3 S 0000000000000000 6600 10 2 0x000000= 00 [16087.359872] ffff88001f96fe80 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001f96e000 000000000000def8 ffff88001f96ffd8 0000000000014180 [16087.359872] ffff88001f96ffd8 0000000000014180 ffff88001f9642c0 ffff88001e622160 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] run_ksoftirqd+0x52/0x121 [16087.359872] [] ? run_ksoftirqd+0x0/0x121 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] events/0 S ffff88001f966420 6152 11 2 0x000000= 00 [16087.359872] ffff88001f977dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f966420 000000000000def8 ffff88001f977fd8 0000000000014180 [16087.359872] ffff88001f977fd8 0000000000014180 ffff88001f966420 ffff88001f0b5370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? vmstat_update+0x0/0x3a [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] events/1 S ffff88001f980000 5776 12 2 0x000000= 00 [16087.359872] ffff88001f989dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f980000 000000000000def8 ffff88001f989fd8 0000000000014180 [16087.359872] ffff88001f989fd8 0000000000014180 ffff88001f980000 ffff88001dcb5370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? vmstat_update+0x0/0x3a [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] events/2 S ffff88001f9810b0 5704 13 2 0x000000= 00 [16087.359872] ffff88001f98bdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f9810b0 000000000000def8 ffff88001f98bfd8 0000000000014180 [16087.359872] ffff88001f98bfd8 0000000000014180 ffff88001f9810b0 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? flush_to_ldisc+0x0/0x1a0 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] events/3 S ffff88001f982160 5328 14 2 0x000000= 00 [16087.359872] ffff88001f98ddc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f982160 000000000000def8 ffff88001f98dfd8 0000000000014180 [16087.359872] ffff88001f98dfd8 0000000000014180 ffff88001f982160 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? neigh_periodic_work+0x0/0x185 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] cpuset S 0000000000000000 6712 15 2 0x000000= 00 [16087.359872] ffff88001f98fdc0 0000000000000046 ffff88001f98fd90 ffff88001f98fd8c [16087.359872] ffff88001f983210 000000000000def8 ffff88001f98ffd8 0000000000014180 [16087.359872] ffff88001f98ffd8 0000000000014180 ffff88001f983210 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] khelper S ffff88001f9842c0 5232 16 2 0x000000= 00 [16087.359872] ffff88001f999dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f9842c0 000000000000def8 ffff88001f999fd8 0000000000014180 [16087.359872] ffff88001f999fd8 0000000000014180 ffff88001f9842c0 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? __call_usermodehelper+0x0/0x6c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] netns S 0000000000000000 6816 19 2 0x000000= 00 [16087.359872] ffff88001fa35dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f985370 000000000000def8 ffff88001fa35fd8 0000000000014180 [16087.359872] ffff88001fa35fd8 0000000000014180 ffff88001f985370 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] async/mgr S 0000000000000000 6152 22 2 0x000000= 00 [16087.359872] ffff88001fa3de60 0000000000000046 ffff880002714180 0000000000000001 [16087.359872] ffff88001fa3ddd0 000000000000def8 ffff88001fa3dfd8 0000000000014180 [16087.359872] ffff88001fa3dfd8 0000000000014180 ffff88001f986420 ffff88001f9842c0 [16087.359872] Call Trace: [16087.359872] [] ? try_to_wake_up+0x2d5/0x2e7 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? async_manager_thread+0x0/0xe8 [16087.359872] [] async_manager_thread+0xbe/0xe8 [16087.359872] [] ? default_wake_function+0x0/0xf [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] sync_supers S 0000000000000000 6616 155 2 0x000000= 00 [16087.359872] ffff88001fa41e90 0000000000000046 ffff88001fa50000 0000000000000000 [16087.359872] 0000000000000002 000000000000def8 ffff88001fa41fd8 0000000000014180 [16087.359872] ffff88001fa41fd8 0000000000014180 ffff88001fa50000 ffff88001f966420 [16087.359872] Call Trace: [16087.359872] [] ? bdi_sync_supers+0x0/0x51 [16087.359872] [] ? _raw_spin_unlock+0x26/0x2b [16087.359872] [] ? sync_supers+0x13/0xa5 [16087.359872] [] ? bdi_sync_supers+0x0/0x51 [16087.359872] [] bdi_sync_supers+0x3a/0x51 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] bdi-default S ffff88001f9abe40 5816 157 2 0x000000= 00 [16087.359872] ffff88001f9abd80 0000000000000046 ffff88001fa510b0 ffffffff81490baf [16087.359872] ffffffff81b71f00 000000000000def8 ffff88001f9abfd8 0000000000014180 [16087.359872] ffff88001f9abfd8 0000000000014180 ffff88001fa510b0 ffff88001f0b5370 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] ? _raw_spin_unlock_bh+0x2f/0x33 [16087.359872] [] bdi_forker_task+0x1a8/0x2da [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? bdi_forker_task+0x0/0x2da [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kblockd/0 S ffff88001fa52160 5856 159 2 0x000000= 00 [16087.359872] ffff88001fa37dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa52160 000000000000def8 ffff88001fa37fd8 0000000000014180 [16087.359872] ffff88001fa37fd8 0000000000014180 ffff88001fa52160 ffff88001f0b5370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? blk_unplug_work+0x0/0x4d [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kblockd/1 S ffff88001fa53210 5624 160 2 0x000000= 00 [16087.359872] ffff88001fa3fdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa53210 000000000000def8 ffff88001fa3ffd8 0000000000014180 [16087.359872] ffff88001fa3ffd8 0000000000014180 ffff88001fa53210 ffff88001dcb5370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? cfq_kick_queue+0x0/0x3c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kblockd/2 S ffff88001fa542c0 5856 161 2 0x000000= 00 [16087.359872] ffff88001fa3bdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa542c0 000000000000def8 ffff88001fa3bfd8 0000000000014180 [16087.359872] ffff88001fa3bfd8 0000000000014180 ffff88001fa542c0 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? cfq_kick_queue+0x0/0x3c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kblockd/3 S ffff88001fa55370 5576 162 2 0x000000= 00 [16087.359872] ffff88001fa47dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa55370 000000000000def8 ffff88001fa47fd8 0000000000014180 [16087.359872] ffff88001fa47fd8 0000000000014180 ffff88001fa55370 ffff88001f155370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? cfq_kick_queue+0x0/0x3c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kacpid S ffff88001fa56420 6232 165 2 0x000000= 00 [16087.359872] ffff88001f9afdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa56420 000000000000def8 ffff88001f9affd8 0000000000014180 [16087.359872] ffff88001f9affd8 0000000000014180 ffff88001fa56420 ffff88001f910000 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? bind_to_cpu0+0x0/0x2f [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kacpi_notify S ffff88001fa65370 6232 166 2 0x000000= 00 [16087.359872] ffff88001fa69dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa65370 000000000000def8 ffff88001fa69fd8 0000000000014180 [16087.359872] ffff88001fa69fd8 0000000000014180 ffff88001fa65370 ffff88001fa642c0 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? bind_to_cpu0+0x0/0x2f [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kacpi_hotplug S ffff88001fa642c0 6232 167 2 0x000000= 00 [16087.359872] ffff88001fa6bdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa642c0 000000000000def8 ffff88001fa6bfd8 0000000000014180 [16087.359872] ffff88001fa6bfd8 0000000000014180 ffff88001fa642c0 ffff88001f910000 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? bind_to_cpu0+0x0/0x2f [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kseriod S ffff88001fa87e78 5352 239 2 0x000000= 00 [16087.359872] ffff88001fa87e40 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa63210 000000000000def8 ffff88001fa87fd8 0000000000014180 [16087.359872] ffff88001fa87fd8 0000000000014180 ffff88001fa63210 ffff88001f910000 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] serio_thread+0x2cd/0x30a [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? serio_thread+0x0/0x30a [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] rpciod/0 S 0000000000000000 6664 269 2 0x000000= 00 [16087.359872] ffff88001f08ddc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa62160 000000000000def8 ffff88001f08dfd8 0000000000014180 [16087.359872] ffff88001f08dfd8 0000000000014180 ffff88001fa62160 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] rpciod/1 S 0000000000000000 6664 270 2 0x000000= 00 [16087.359872] ffff88001f08fdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa60000 000000000000def8 ffff88001f08ffd8 0000000000014180 [16087.359872] ffff88001f08ffd8 0000000000014180 ffff88001fa60000 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] rpciod/2 S 0000000000000000 6664 271 2 0x000000= 00 [16087.359872] ffff88001fa7fdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa610b0 000000000000def8 ffff88001fa7ffd8 0000000000014180 [16087.359872] ffff88001fa7ffd8 0000000000014180 ffff88001fa610b0 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] rpciod/3 S 0000000000000000 6664 272 2 0x000000= 00 [16087.359872] ffff88001f091dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fa66420 000000000000def8 ffff88001f091fd8 0000000000014180 [16087.359872] ffff88001f091fd8 0000000000014180 ffff88001fa66420 ffff88001f910000 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kswapd0 S 00000000ffffffff 4352 319 2 0x000000= 00 [16087.359872] ffff88001f0bdd60 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fb58000 000000000000def8 ffff88001f0bdfd8 0000000000014180 [16087.359872] ffff88001f0bdfd8 0000000000014180 ffff88001fb58000 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] kswapd+0x853/0x867 [16087.359872] [] ? isolate_pages_global+0x0/0x1f2 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? kswapd+0x0/0x867 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] aio/0 S 0000000000000000 6664 375 2 0x000000= 00 [16087.359872] ffff88001f0bfdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fb590b0 000000000000def8 ffff88001f0bffd8 0000000000014180 [16087.359872] ffff88001f0bffd8 0000000000014180 ffff88001fb590b0 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] aio/1 S 0000000000000000 6664 376 2 0x000000= 00 [16087.359872] ffff88001f107dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fb5a160 000000000000def8 ffff88001f107fd8 0000000000014180 [16087.359872] ffff88001f107fd8 0000000000014180 ffff88001fb5a160 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] aio/2 S 0000000000000000 6664 377 2 0x000000= 00 [16087.359872] ffff88001f143dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fb5b210 000000000000def8 ffff88001f143fd8 0000000000014180 [16087.359872] ffff88001f143fd8 0000000000014180 ffff88001fb5b210 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] aio/3 S 0000000000000000 6664 378 2 0x000000= 00 [16087.359872] ffff88001f105dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fb5c2c0 000000000000def8 ffff88001f105fd8 0000000000014180 [16087.359872] ffff88001f105fd8 0000000000014180 ffff88001fb5c2c0 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] nfsiod S 0000000000000000 6664 390 2 0x000000= 00 [16087.359872] ffff88001f0ffdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001fb5d370 000000000000def8 ffff88001f0fffd8 0000000000014180 [16087.359872] ffff88001f0fffd8 0000000000014180 ffff88001fb5d370 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kslowd000 S ffff88001fb5e420 6768 399 2 0x000000= 00 [16087.359872] ffff88001f0fbe40 0000000000000046 0000000000000000 ffffffff81057e21 [16087.359872] ffff88001fb5e420 000000000000def8 ffff88001f0fbfd8 0000000000014180 [16087.359872] ffff88001f0fbfd8 0000000000014180 ffff88001fb5e420 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait_exclusive+0x1e/0x7a [16087.359872] [] ? prepare_to_wait_exclusive+0x6f/0x7a [16087.359872] [] slow_work_thread+0x140/0x2da [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? slow_work_thread+0x0/0x2da [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kslowd001 S ffff88001f0b42c0 6792 400 2 0x000000= 00 [16087.359872] ffff88001f16fe40 0000000000000046 0000000000000000 ffffffff81057e21 [16087.359872] ffff88001f0b42c0 000000000000def8 ffff88001f16ffd8 0000000000014180 [16087.359872] ffff88001f16ffd8 0000000000014180 ffff88001f0b42c0 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait_exclusive+0x1e/0x7a [16087.359872] [] ? prepare_to_wait_exclusive+0x6f/0x7a [16087.359872] [] slow_work_thread+0x140/0x2da [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? slow_work_thread+0x0/0x2da [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfs_mru_cache S 0000000000000000 6664 409 2 0x000000= 00 [16087.359872] ffff88001f195dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f0b3210 000000000000def8 ffff88001f195fd8 0000000000014180 [16087.359872] ffff88001f195fd8 0000000000014180 ffff88001f0b3210 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfslogd/0 S 0000000000000000 6664 410 2 0x000000= 00 [16087.359872] ffff88001f197dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f0b2160 000000000000def8 ffff88001f197fd8 0000000000014180 [16087.359872] ffff88001f197fd8 0000000000014180 ffff88001f0b2160 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfslogd/1 S ffff88001f0b10b0 6376 411 2 0x000000= 00 [16087.359872] ffff88001f1a1dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f0b10b0 000000000000def8 ffff88001f1a1fd8 0000000000014180 [16087.359872] ffff88001f1a1fd8 0000000000014180 ffff88001f0b10b0 ffff88001fa53210 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? xfs_buf_iodone_work+0x0/0xa1 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfslogd/2 S ffff88001f0b0000 5952 412 2 0x000000= 00 [16087.359872] ffff88001f1a3dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f0b0000 000000000000def8 ffff88001f1a3fd8 0000000000014180 [16087.359872] ffff88001f1a3fd8 0000000000014180 ffff88001f0b0000 ffff88001fa542c0 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? xfs_buf_iodone_work+0x0/0xa1 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfslogd/3 S ffff88001f0b6420 6256 413 2 0x000000= 00 [16087.359872] ffff88001f1a5dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f0b6420 000000000000def8 ffff88001f1a5fd8 0000000000014180 [16087.359872] ffff88001f1a5fd8 0000000000014180 ffff88001f0b6420 ffff88001fa55370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? xfs_buf_iodone_work+0x0/0xa1 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsdatad/0 D ffff88001f0b5370 6216 414 2 0x000000= 00 [16087.359872] ffff88001f1a7d00 0000000000000046 0000000000000000 ffffffff81490baf [16087.359872] ffffffff81b71f00 000000000000def8 ffff88001f1a7fd8 0000000000014180 [16087.359872] ffff88001f1a7fd8 0000000000014180 ffff88001f0b5370 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] ? queue_work+0x1a/0x1c [16087.359872] [] schedule_timeout_uninterruptible+0x19/= 0x1b [16087.359872] [] xfs_end_io+0x7d/0x8c [16087.359872] [] worker_thread+0x22c/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? xfs_end_io+0x0/0x8c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsdatad/1 S ffff88001f153210 6216 415 2 0x000000= 00 [16087.359872] ffff88001f1b1dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f153210 000000000000def8 ffff88001f1b1fd8 0000000000014180 [16087.359872] ffff88001f1b1fd8 0000000000014180 ffff88001f153210 ffff88001e5e42c0 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? xfs_end_io+0x0/0x8c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsdatad/2 D ffff88001f152160 6112 416 2 0x000000= 00 [16087.359872] ffff88001f1b3d00 0000000000000046 0000000000000000 ffffffff81490baf [16087.359872] ffff88001f95c000 000000000000def8 ffff88001f1b3fd8 0000000000014180 [16087.359872] ffff88001f1b3fd8 0000000000014180 ffff88001f152160 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] ? queue_work+0x1a/0x1c [16087.359872] [] schedule_timeout_uninterruptible+0x19/= 0x1b [16087.359872] [] xfs_end_io+0x7d/0x8c [16087.359872] [] worker_thread+0x22c/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? xfs_end_io+0x0/0x8c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsdatad/3 S ffff88001f1510b0 6176 417 2 0x000000= 00 [16087.359872] ffff88001f1b5dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1510b0 000000000000def8 ffff88001f1b5fd8 0000000000014180 [16087.359872] ffff88001f1b5fd8 0000000000014180 ffff88001f1510b0 ffff88001fb58000 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? worker_thread+0x1d5/0x332 [16087.359872] [] ? xfs_end_io+0x0/0x8c [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsconvertd/0 S 0000000000000000 6664 418 2 0x000000= 00 [16087.359872] ffff88001f1b7dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1b8000 000000000000def8 ffff88001f1b7fd8 0000000000014180 [16087.359872] ffff88001f1b7fd8 0000000000014180 ffff88001f1b8000 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsconvertd/1 S 0000000000000000 6664 419 2 0x000000= 00 [16087.359872] ffff88001f1c1dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1b90b0 000000000000def8 ffff88001f1c1fd8 0000000000014180 [16087.359872] ffff88001f1c1fd8 0000000000014180 ffff88001f1b90b0 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsconvertd/2 S 0000000000000000 6664 420 2 0x000000= 00 [16087.359872] ffff88001f1c3dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1ba160 000000000000def8 ffff88001f1c3fd8 0000000000014180 [16087.359872] ffff88001f1c3fd8 0000000000014180 ffff88001f1ba160 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsconvertd/3 S 0000000000000000 6664 421 2 0x000000= 00 [16087.359872] ffff88001f1c5dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1bb210 000000000000def8 ffff88001f1c5fd8 0000000000014180 [16087.359872] ffff88001f1c5fd8 0000000000014180 ffff88001f1bb210 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] crypto/0 S 0000000000000000 6664 423 2 0x000000= 00 [16087.359872] ffff88001f135dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1bc2c0 000000000000def8 ffff88001f135fd8 0000000000014180 [16087.359872] ffff88001f135fd8 0000000000014180 ffff88001f1bc2c0 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] crypto/1 S 0000000000000000 6664 424 2 0x000000= 00 [16087.359872] ffff88001fa07dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1bd370 000000000000def8 ffff88001fa07fd8 0000000000014180 [16087.359872] ffff88001fa07fd8 0000000000014180 ffff88001f1bd370 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] crypto/2 S 0000000000000000 6664 425 2 0x000000= 00 [16087.359872] ffff88001f191dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1be420 000000000000def8 ffff88001f191fd8 0000000000014180 [16087.359872] ffff88001f191fd8 0000000000014180 ffff88001f1be420 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] crypto/3 S 0000000000000000 6664 426 2 0x000000= 00 [16087.359872] ffff88001f1c7dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f150000 000000000000def8 ffff88001f1c7fd8 0000000000014180 [16087.359872] ffff88001f1c7fd8 0000000000014180 ffff88001f150000 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kpsmoused S 0000000000000000 6664 575 2 0x000000= 00 [16087.359872] ffff88001f22ddc0 0000000000000046 ffff88001f22dd90 ffff88001f22dd8c [16087.359872] ffff88001f1e6420 000000000000def8 ffff88001f22dfd8 0000000000014180 [16087.359872] ffff88001f22dfd8 0000000000014180 ffff88001f1e6420 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] edac-poller S 0000000000000000 6664 583 2 0x000000= 00 [16087.359872] ffff88001f283dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1e5370 000000000000def8 ffff88001f283fd8 0000000000014180 [16087.359872] ffff88001f283fd8 0000000000014180 ffff88001f1e5370 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kondemand/0 S 0000000000000000 6664 586 2 0x000000= 00 [16087.359872] ffff88001f289dc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1e3210 000000000000def8 ffff88001f289fd8 0000000000014180 [16087.359872] ffff88001f289fd8 0000000000014180 ffff88001f1e3210 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kondemand/1 S 0000000000000000 6664 587 2 0x000000= 00 [16087.359872] ffff88001f28bdc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1e2160 000000000000def8 ffff88001f28bfd8 0000000000014180 [16087.359872] ffff88001f28bfd8 0000000000014180 ffff88001f1e2160 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kondemand/2 S 0000000000000000 6664 588 2 0x000000= 00 [16087.359872] ffff88001f28ddc0 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001f1e10b0 000000000000def8 ffff88001f28dfd8 0000000000014180 [16087.359872] ffff88001f28dfd8 0000000000014180 ffff88001f1e10b0 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kondemand/3 S 0000000000000000 6664 589 2 0x000000= 00 [16087.359872] ffff88001f28fdc0 0000000000000046 ffff88001f28fd90 ffff88001f28fd8c [16087.359872] ffff88001f1e0000 000000000000def8 ffff88001f28ffd8 0000000000014180 [16087.359872] ffff88001f28ffd8 0000000000014180 ffff88001f1e0000 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] worker_thread+0xfd/0x332 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? worker_thread+0x0/0x332 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] vballoon S ffff88001ec37e60 6736 605 2 0x000000= 00 [16087.359872] ffff88001ec37e20 0000000000000046 0000000000000000 ffffffff81057e9b [16087.359872] ffff88001ec38000 000000000000def8 ffff88001ec37fd8 0000000000014180 [16087.359872] ffff88001ec37fd8 0000000000014180 ffff88001ec38000 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? prepare_to_wait+0x1e/0x7b [16087.359872] [] ? vp_get+0x48/0x5d [16087.359872] [] balloon+0x143/0x2c0 [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? balloon+0x0/0x2c0 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] kjournald S ffff88001f09e970 3984 620 2 0x000000= 00 [16087.359872] ffff88001ec4de20 0000000000000046 ffff88001ec4dd90 ffffffff81067901 [16087.359872] ffff88001ec390b0 000000000000def8 ffff88001ec4dfd8 0000000000014180 [16087.359872] ffff88001ec4dfd8 0000000000014180 ffff88001ec390b0 ffff88001f0b5370 [16087.359872] Call Trace: [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] kjournald+0x1cf/0x25a [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? kjournald+0x0/0x25a [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] udevd S 0000000000000000 5616 711 1 0x000000= 00 [16087.359872] ffff88001ed73a58 0000000000000046 0000000000000000 000000000000004c [16087.359872] ffff88001ed73a88 000000000000def8 ffff88001ed73fd8 0000000000014180 [16087.359872] ffff88001ed73fd8 0000000000014180 ffff88001edb2160 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] schedule_hrtimeout_range+0x3f/0xf7 [16087.359872] [] ? _raw_spin_unlock+0x26/0x2b [16087.359872] [] ? unix_peer_get+0x19/0x3d [16087.359872] [] ? unix_peer_get+0x35/0x3d [16087.359872] [] poll_schedule_timeout+0x46/0x69 [16087.359872] [] do_sys_poll+0x36a/0x40b [16087.359872] [] ? __pollwait+0x0/0xcf [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? __pagevec_free+0x70/0x85 [16087.359872] [] ? release_pages+0x1aa/0x1bc [16087.359872] [] ? anon_vma_unlink+0x1b/0x71 [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? kmem_cache_free+0x99/0xd3 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? remove_vma+0x7f/0x87 [16087.359872] [] ? remove_vma+0x7f/0x87 [16087.359872] [] ? sysret_check+0x27/0x62 [16087.359872] [] sys_poll+0x50/0xba [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] dhcpcd S 0000000000000000 3536 2636 1 0x000000= 00 [16087.359872] ffff88001e785a58 0000000000000046 0000000000000000 0000000000000282 [16087.359872] 0000000000000040 000000000000def8 ffff88001e785fd8 0000000000014180 [16087.359872] ffff88001e785fd8 0000000000014180 ffff88001ec3c2c0 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] schedule_hrtimeout_range+0xc2/0xf7 [16087.359872] [] ? hrtimer_wakeup+0x0/0x21 [16087.359872] [] ? hrtimer_start_range_ns+0xf/0x11 [16087.359872] [] ? __pollwait+0xc6/0xcf [16087.359872] [] poll_schedule_timeout+0x46/0x69 [16087.359872] [] do_sys_poll+0x36a/0x40b [16087.359872] [] ? __pollwait+0x0/0xcf [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? fsnotify_clear_marks_by_inode+0x2b/0= xe0 [16087.359872] [] ? kmem_cache_free+0x99/0xd3 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] ? kmem_cache_free+0x99/0xd3 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? __d_free+0x51/0x55 [16087.359872] [] ? d_free+0x32/0x4b [16087.359872] [] ? mntput_no_expire+0x24/0xf8 [16087.359872] [] ? ktime_get_ts+0xb1/0xbe [16087.359872] [] ? poll_select_set_timeout+0x5c/0x77 [16087.359872] [] sys_poll+0x50/0xba [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] login S ffff88001edb42c0 4896 2847 1 0x000000= 00 [16087.359872] ffff88001dc61e58 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001dc61e08 000000000000def8 ffff88001dc61fd8 0000000000014180 [16087.359872] ffff88001dc61fd8 0000000000014180 ffff88001edb42c0 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] do_wait+0x1bd/0x22b [16087.359872] [] sys_wait4+0xa6/0xc3 [16087.359872] [] ? child_wait_callback+0x0/0x53 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] agetty S ffff88001f9ec290 5784 2848 1 0x000000= 00 [16087.359872] ffff88001dcddd08 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001edb6420 000000000000def8 ffff88001dcddfd8 0000000000014180 [16087.359872] ffff88001dcddfd8 0000000000014180 ffff88001edb6420 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? flush_work+0x2b/0xf2 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] schedule_timeout+0x22/0xc9 [16087.359872] [] ? del_timer_sync+0x73/0x84 [16087.359872] [] ? del_timer_sync+0x0/0x84 [16087.359872] [] ? flush_delayed_work+0x50/0x55 [16087.359872] [] n_tty_read+0x517/0x7f3 [16087.359872] [] ? default_wake_function+0x0/0xf [16087.359872] [] tty_read+0x7d/0xba [16087.359872] [] vfs_read+0xa8/0x102 [16087.359872] [] sys_read+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] agetty S ffff88001f9bd350 5320 2849 1 0x000000= 00 [16087.359872] ffff88001f231d08 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001edb3210 000000000000def8 ffff88001f231fd8 0000000000014180 [16087.359872] ffff88001f231fd8 0000000000014180 ffff88001edb3210 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? flush_work+0x2b/0xf2 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] schedule_timeout+0x22/0xc9 [16087.359872] [] ? del_timer_sync+0x73/0x84 [16087.359872] [] ? del_timer_sync+0x0/0x84 [16087.359872] [] ? flush_delayed_work+0x50/0x55 [16087.359872] [] n_tty_read+0x517/0x7f3 [16087.359872] [] ? default_wake_function+0x0/0xf [16087.359872] [] tty_read+0x7d/0xba [16087.359872] [] vfs_read+0xa8/0x102 [16087.359872] [] sys_read+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] agetty S ffff88001f9bd360 5224 2850 1 0x000000= 00 [16087.359872] ffff88001ed71d08 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001edb0000 000000000000def8 ffff88001ed71fd8 0000000000014180 [16087.359872] ffff88001ed71fd8 0000000000014180 ffff88001edb0000 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] schedule_timeout+0x22/0xc9 [16087.359872] [] ? del_timer_sync+0x73/0x84 [16087.359872] [] ? del_timer_sync+0x0/0x84 [16087.359872] [] ? flush_delayed_work+0x50/0x55 [16087.359872] [] n_tty_read+0x517/0x7f3 [16087.359872] [] ? default_wake_function+0x0/0xf [16087.359872] [] tty_read+0x7d/0xba [16087.359872] [] vfs_read+0xa8/0x102 [16087.359872] [] sys_read+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] agetty S ffff88001f21c5e0 5224 2851 1 0x000000= 00 [16087.359872] ffff88001e425d08 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001edb10b0 000000000000def8 ffff88001e425fd8 0000000000014180 [16087.359872] ffff88001e425fd8 0000000000014180 ffff88001edb10b0 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? flush_work+0x2b/0xf2 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] schedule_timeout+0x22/0xc9 [16087.359872] [] ? del_timer_sync+0x73/0x84 [16087.359872] [] ? del_timer_sync+0x0/0x84 [16087.359872] [] ? flush_delayed_work+0x50/0x55 [16087.359872] [] n_tty_read+0x517/0x7f3 [16087.359872] [] ? default_wake_function+0x0/0xf [16087.359872] [] tty_read+0x7d/0xba [16087.359872] [] vfs_read+0xa8/0x102 [16087.359872] [] sys_read+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] agetty S ffff88001fa78a80 5784 2852 1 0x000000= 00 [16087.359872] ffff88001dd1bd08 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001edb5370 000000000000def8 ffff88001dd1bfd8 0000000000014180 [16087.359872] ffff88001dd1bfd8 0000000000014180 ffff88001edb5370 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] schedule_timeout+0x22/0xc9 [16087.359872] [] ? del_timer_sync+0x73/0x84 [16087.359872] [] ? del_timer_sync+0x0/0x84 [16087.359872] [] ? flush_delayed_work+0x50/0x55 [16087.359872] [] n_tty_read+0x517/0x7f3 [16087.359872] [] ? default_wake_function+0x0/0xf [16087.359872] [] tty_read+0x7d/0xba [16087.359872] [] vfs_read+0xa8/0x102 [16087.359872] [] sys_read+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] bash R running task 3968 2853 2847 0x000000= 00 [16087.359872] 332e37383036315b ffffffff8148e017 0000003000000010 ffff88001eda3d98 [16087.359872] ffff88001eda3cd8 0000000137383935 ffff88001eda2000 ffff88001eda2000 [16087.359872] ffff880002780000 0000000000000000 0000000000000082 0000000000000004 [16087.359872] Call Trace: [16087.359872] [] ? dump_trace+0x2fe/0x30f [16087.359872] [] show_trace_log_lvl+0x4c/0x58 [16087.359872] [] show_stack_log_lvl+0xff/0x10e [16087.359872] [] show_stack+0x17/0x19 [16087.359872] [] sched_show_task+0xc0/0xc5 [16087.359872] [] show_state_filter+0x50/0x9b [16087.359872] [] sysrq_handle_showstate+0xb/0xd [16087.359872] [] __handle_sysrq+0xbb/0x158 [16087.359872] [] ? write_sysrq_trigger+0x0/0x44 [16087.359872] [] write_sysrq_trigger+0x39/0x44 [16087.359872] [] proc_reg_write+0x84/0xa1 [16087.359872] [] vfs_write+0xab/0x105 [16087.359872] [] sys_write+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] xfsbufd S ffff88001eecde80 6208 2861 2 0x000000= 00 [16087.359872] ffff88001eecddd0 0000000000000046 0000000000000000 ffffffff81490baf [16087.359872] ffff88001f970000 000000000000def8 ffff88001eecdfd8 0000000000014180 [16087.359872] ffff88001eecdfd8 0000000000014180 ffff88001e5890b0 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] schedule_timeout_interruptible+0x19/0x= 1b [16087.359872] [] xfsbufd+0x73/0x10d [16087.359872] [] ? xfsbufd+0x0/0x10d [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfsaild S 0000000000000000 6440 2862 2 0x000000= 00 [16087.359872] ffff88001dc81de0 0000000000000046 ffff88001e58c2c0 ffffffff81490baf [16087.359872] ffffffff81b71f00 000000000000def8 ffff88001dc81fd8 0000000000014180 [16087.359872] ffff88001dc81fd8 0000000000014180 ffff88001e58c2c0 ffff88001f0b5370 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] schedule_timeout_interruptible+0x19/0x= 1b [16087.359872] [] xfsaild+0x3f/0x84 [16087.359872] [] ? xfsaild+0x0/0x84 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] xfssyncd S 0000000000007530 5664 2863 2 0x000000= 00 [16087.359872] ffff88001ef3dda0 0000000000000046 0000000000000000 ffffffff81490baf [16087.359872] ffff88001f934000 000000000000def8 ffff88001ef3dfd8 0000000000014180 [16087.359872] ffff88001ef3dfd8 0000000000014180 ffff88001e58e420 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] schedule_timeout_interruptible+0x19/0x= 1b [16087.359872] [] xfssyncd+0x80/0x1bd [16087.359872] [] ? xfssyncd+0x0/0x1bd [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] screen S 0000000000000000 5008 2876 1 0x000000= 00 [16087.359872] ffff88001f2d1908 0000000000000046 0000000000000000 ffffffff81067b93 [16087.359872] ffff88001f2d1878 000000000000def8 ffff88001f2d1fd8 0000000000014180 [16087.359872] ffff88001f2d1fd8 0000000000014180 ffff88001e58d370 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? try_to_del_timer_sync+0x66/0x74 [16087.359872] [] schedule_hrtimeout_range+0x3f/0xf7 [16087.359872] [] ? put_ldisc+0x91/0x98 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] poll_schedule_timeout+0x46/0x69 [16087.359872] [] do_select+0x5c1/0x605 [16087.359872] [] ? do_select+0x0/0x605 [16087.359872] [] ? __pollwait+0x0/0xcf [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] core_sys_select+0x1b9/0x255 [16087.359872] [] ? core_sys_select+0x41/0x255 [16087.359872] [] ? lock_release_non_nested+0x97/0x20d [16087.359872] [] ? lock_release_non_nested+0x97/0x20d [16087.359872] [] ? _raw_spin_unlock_irq+0x2b/0x31 [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] sys_select+0x94/0xbc [16087.359872] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] bash S ffff88001f1542c0 5384 2877 2876 0x000000= 00 [16087.359872] ffff88001dc17e58 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001dc17e08 000000000000def8 ffff88001dc17fd8 0000000000014180 [16087.359872] ffff88001dc17fd8 0000000000014180 ffff88001f1542c0 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] do_wait+0x1bd/0x22b [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] sys_wait4+0xa6/0xc3 [16087.359872] [] ? child_wait_callback+0x0/0x53 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld S 0000000000000000 5096 2881 2877 0x000000= 00 [16087.359872] ffff88001ee51bf8 0000000000000046 0000000000000000 ffffffff8106a8a6 [16087.359872] 0000000100000000 000000000000def8 ffff88001ee51fd8 0000000000014180 [16087.359872] ffff88001ee51fd8 0000000000014180 ffff88001dcb42c0 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? queue_lock+0x57/0x5f [16087.359872] [] ? _raw_spin_unlock+0x26/0x2b [16087.359872] [] futex_wait_queue_me+0x82/0x9a [16087.359872] [] futex_wait+0x143/0x2b1 [16087.359872] [] ? select_task_rq_fair+0x7a7/0x81e [16087.359872] [] do_futex+0x98/0x9a2 [16087.359872] [] ? trace_hardirqs_off+0xd/0xf [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? wake_up_new_task+0xd4/0xe2 [16087.359872] [] ? do_fork+0x279/0x33e [16087.359872] [] ? call_rwsem_wake+0x18/0x30 [16087.359872] [] sys_futex+0x113/0x131 [16087.359872] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D 0000000000000002 3440 2882 2877 0x000000= 00 [16087.359872] ffff88001edfba88 0000000000000046 ffff88001edfba08 ffffffff810676b1 [16087.359872] ffff88001ec1e420 000000000000def8 ffff88001edfbfd8 0000000000014180 [16087.359872] ffff88001edfbfd8 0000000000014180 ffff88001ec1e420 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? ktime_get_ts+0xb1/0xbe [16087.359872] [] io_schedule+0x7b/0xc2 [16087.359872] [] sync_page+0x44/0x48 [16087.359872] [] __wait_on_bit_lock+0x45/0x8c [16087.359872] [] ? sync_page+0x0/0x48 [16087.359872] [] __lock_page+0x63/0x6a [16087.359872] [] ? wake_bit_function+0x0/0x2a [16087.359872] [] lock_page+0x37/0x3b [16087.359872] [] invalidate_inode_pages2_range+0x82/0x2= cb [16087.359872] [] ? xfs_vm_direct_IO+0x90/0xbb [16087.359872] [] ? xfs_get_blocks_direct+0x0/0x17 [16087.359872] [] ? xfs_end_io_direct+0x0/0x4e [16087.359872] [] generic_file_direct_write+0x102/0x158 [16087.359872] [] xfs_write+0x4a5/0x793 [16087.359872] [] ? cpuacct_charge+0x8e/0x97 [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] xfs_file_aio_write+0x5a/0x5c [16087.359872] [] do_sync_write+0xc0/0x106 [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] ? security_file_permission+0x11/0x13 [16087.359872] [] vfs_write+0xab/0x105 [16087.359872] [] sys_write+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D ffff88001ec190b0 3152 2883 2877 0x000000= 00 [16087.359872] ffff88001e4bde28 0000000000000046 ffff88001e4bdda8 ffffffff810676b1 [16087.359872] ffff88001ec190b0 000000000000def8 ffff88001e4bdfd8 0000000000014180 [16087.359872] ffff88001e4bdfd8 0000000000014180 ffff88001ec190b0 ffff88001ec3b210 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] generic_file_llseek+0x2c/0x5e [16087.359872] [] vfs_llseek+0x35/0x37 [16087.359872] [] sys_lseek+0x48/0x67 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D 0000000000000000 3360 2884 2877 0x000000= 00 [16087.359872] ffff88001ece7e28 0000000000000046 ffff88001ece7df8 ffff88001ece7df4 [16087.359872] ffff88001e9e0000 000000000000def8 ffff88001ece7fd8 0000000000014180 [16087.359872] ffff88001ece7fd8 0000000000014180 ffff88001ec1a160 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] generic_file_llseek+0x2c/0x5e [16087.359872] [] vfs_llseek+0x35/0x37 [16087.359872] [] sys_lseek+0x48/0x67 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D 0000000000000000 2664 2885 2877 0x000000= 00 [16087.359872] ffff88001ecc9bb8 0000000000000046 ffff88001ecc9b38 ffffffff810676b1 [16087.359872] ffff880002614180 000000000000def8 ffff88001ecc9fd8 0000000000014180 [16087.359872] ffff88001ecc9fd8 0000000000014180 ffff88001ec1c2c0 ffff88001ec3b210 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] rwsem_down_failed_common+0x9a/0xcc [16087.359872] [] rwsem_down_write_failed+0x20/0x2a [16087.359872] [] call_rwsem_down_write_failed+0x13/0x20 [16087.359872] [] ? down_write_nested+0x66/0x6d [16087.359872] [] ? xfs_ilock+0x2c/0xb2 [16087.359872] [] xfs_ilock+0x2c/0xb2 [16087.359872] [] xfs_write+0x2cc/0x793 [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] xfs_file_aio_write+0x5a/0x5c [16087.359872] [] do_sync_write+0xc0/0x106 [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] ? security_file_permission+0x11/0x13 [16087.359872] [] vfs_write+0xab/0x105 [16087.359872] [] sys_write+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D ffff88001ec1d370 2664 2886 2877 0x000000= 00 [16087.359872] ffff88001eea1e28 0000000000000046 ffff88001eea1da8 ffffffff810676b1 [16087.359872] 000000000000000d 000000000000def8 ffff88001eea1fd8 0000000000014180 [16087.359872] ffff88001eea1fd8 0000000000014180 ffff88001ec1d370 ffff88001fa53210 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] generic_file_llseek+0x2c/0x5e [16087.359872] [] vfs_llseek+0x35/0x37 [16087.359872] [] sys_lseek+0x48/0x67 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D 0000000000000002 3440 2887 2877 0x000000= 00 [16087.359872] ffff88001ee87a88 0000000000000046 0000000000000000 ffff88000240a980 [16087.359872] 0000000046e48524 000000000000def8 ffff88001ee87fd8 0000000000014180 [16087.359872] ffff88001ee87fd8 0000000000014180 ffff88001ec1b210 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] ? ktime_get_ts+0xb1/0xbe [16087.359872] [] io_schedule+0x7b/0xc2 [16087.359872] [] sync_page+0x44/0x48 [16087.359872] [] __wait_on_bit_lock+0x45/0x8c [16087.359872] [] ? sync_page+0x0/0x48 [16087.359872] [] __lock_page+0x63/0x6a [16087.359872] [] ? wake_bit_function+0x0/0x2a [16087.359872] [] lock_page+0x37/0x3b [16087.359872] [] invalidate_inode_pages2_range+0x82/0x2= cb [16087.359872] [] ? xfs_vm_direct_IO+0x90/0xbb [16087.359872] [] ? xfs_get_blocks_direct+0x0/0x17 [16087.359872] [] ? xfs_end_io_direct+0x0/0x4e [16087.359872] [] generic_file_direct_write+0x102/0x158 [16087.359872] [] xfs_write+0x4a5/0x793 [16087.359872] [] ? cpuacct_charge+0x8e/0x97 [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] xfs_file_aio_write+0x5a/0x5c [16087.359872] [] do_sync_write+0xc0/0x106 [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] ? security_file_permission+0x11/0x13 [16087.359872] [] vfs_write+0xab/0x105 [16087.359872] [] sys_write+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D ffff88001f1e42c0 2664 2888 2877 0x000000= 00 [16087.359872] ffff88001dcc5e28 0000000000000046 0000000000000000 ffffffff810676b1 [16087.359872] ffff88001e9e0000 000000000000def8 ffff88001dcc5fd8 0000000000014180 [16087.359872] ffff88001dcc5fd8 0000000000014180 ffff88001f1e42c0 ffff88001f962160 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] generic_file_llseek+0x2c/0x5e [16087.359872] [] vfs_llseek+0x35/0x37 [16087.359872] [] sys_lseek+0x48/0x67 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D ffff88001ec3d370 2664 2889 2877 0x000000= 00 [16087.359872] ffff88001ede5e28 0000000000000046 ffff88001ede5da8 ffffffff810676b1 [16087.359872] ffff88001ec3d370 000000000000def8 ffff88001ede5fd8 0000000000014180 [16087.359872] ffff88001ede5fd8 0000000000014180 ffff88001ec3d370 ffff88001f0b5370 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] generic_file_llseek+0x2c/0x5e [16087.359872] [] vfs_llseek+0x35/0x37 [16087.359872] [] sys_lseek+0x48/0x67 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D 0000000000000000 3152 2890 2877 0x000000= 00 [16087.359872] ffff88001e6fbc08 0000000000000046 ffff88001e6fbbd8 ffff88001e6fbbd4 [16087.359872] ffff88001ec3b210 000000000000def8 ffff88001e6fbfd8 0000000000014180 [16087.359872] ffff88001e6fbfd8 0000000000014180 ffff88001ec3b210 ffff88001ec1a160 [16087.359872] Call Trace: [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? xfs_write+0x2bf/0x793 [16087.359872] [] ? xfs_write+0x2bf/0x793 [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] xfs_write+0x2bf/0x793 [16087.359872] [] ? cpuacct_charge+0x8e/0x97 [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] xfs_file_aio_write+0x5a/0x5c [16087.359872] [] do_sync_write+0xc0/0x106 [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] ? security_file_permission+0x11/0x13 [16087.359872] [] vfs_write+0xab/0x105 [16087.359872] [] sys_write+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D ffff88001ec3e420 3232 2891 2877 0x000000= 00 [16087.359872] ffff88001ee91e28 0000000000000046 ffff88001ee91da8 ffffffff810676b1 [16087.359872] ffff88001ec3e420 000000000000def8 ffff88001ee91fd8 0000000000014180 [16087.359872] ffff88001ee91fd8 0000000000014180 ffff88001ec3e420 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? generic_file_llseek+0x2c/0x5e [16087.359872] [] ? fget_light+0x4f/0xfb [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] generic_file_llseek+0x2c/0x5e [16087.359872] [] vfs_llseek+0x35/0x37 [16087.359872] [] sys_lseek+0x48/0x67 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-mysqld D ffff88001ec3a160 4136 2892 2877 0x000000= 00 [16087.359872] ffff88001e6d7e18 0000000000000046 ffffffff810b242d ffffffff8105b193 [16087.359872] 000000010000000e 000000000000def8 ffff88001e6d7fd8 0000000000014180 [16087.359872] ffff88001e6d7fd8 0000000000014180 ffff88001ec3a160 ffff88001e5e42c0 [16087.359872] Call Trace: [16087.359872] [] ? find_get_pages_tag+0x0/0x12a [16087.359872] [] ? lock_hrtimer_base+0x25/0x4a [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? __mutex_lock_common+0x216/0x330 [16087.359872] [] __mutex_lock_common+0x21e/0x330 [16087.359872] [] ? vfs_fsync_range+0x6e/0xa6 [16087.359872] [] ? vfs_fsync_range+0x6e/0xa6 [16087.359872] [] mutex_lock_nested+0x37/0x3c [16087.359872] [] vfs_fsync_range+0x6e/0xa6 [16087.359872] [] vfs_fsync+0x18/0x1a [16087.359872] [] do_fsync+0x32/0x48 [16087.359872] [] sys_fsync+0xb/0xf [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] bash S ffff88001e5e0000 5776 2893 2876 0x000000= 00 [16087.359872] ffff88001ee57e58 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001ee57e08 000000000000def8 ffff88001ee57fd8 0000000000014180 [16087.359872] ffff88001ee57fd8 0000000000014180 ffff88001e5e0000 ffffffff81a0e020 [16087.359872] Call Trace: [16087.359872] [] do_wait+0x1bd/0x22b [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] sys_wait4+0xa6/0xc3 [16087.359872] [] ? child_wait_callback+0x0/0x53 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-tar D 0000000000000000 3320 2897 2893 0x000000= 00 [16087.359872] ffff88001e6eb700 0000000000000046 ffff88001e6eb680 ffffffff810676b1 [16087.359872] 0000000000000000 000000000000def8 ffff88001e6ebfd8 0000000000014180 [16087.359872] ffff88001e6ebfd8 0000000000014180 ffff88001e58a160 ffff88001ec1c2c0 [16087.359872] Call Trace: [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] rwsem_down_failed_common+0x9a/0xcc [16087.359872] [] ? cfq_close_cooperator+0xd9/0x184 [16087.359872] [] rwsem_down_read_failed+0x26/0x30 [16087.359872] [] call_rwsem_down_read_failed+0x14/0x30 [16087.359872] [] ? down_read_nested+0x5b/0x62 [16087.359872] [] ? xfs_ilock+0x7b/0xb2 [16087.359872] [] xfs_ilock+0x7b/0xb2 [16087.359872] [] xfs_ilock_map_shared+0x29/0x2f [16087.359872] [] xfs_iomap+0x9f/0x39c [16087.359872] [] ? register_lock_class+0x20/0x327 [16087.359872] [] __xfs_get_blocks+0x71/0x15c [16087.359872] [] xfs_get_blocks+0x12/0x14 [16087.359872] [] do_mpage_readpage+0x173/0x467 [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? add_to_page_cache_locked+0xa4/0xcd [16087.359872] [] mpage_readpages+0xd6/0x11a [16087.359872] [] ? xfs_get_blocks+0x0/0x14 [16087.359872] [] ? xfs_get_blocks+0x0/0x14 [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] xfs_vm_readpages+0x1a/0x1c [16087.359872] [] __do_page_cache_readahead+0x163/0x1fc [16087.359872] [] ? __do_page_cache_readahead+0x7b/0x1fc [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ra_submit+0x1c/0x20 [16087.359872] [] ondemand_readahead+0x243/0x256 [16087.359872] [] page_cache_sync_readahead+0x38/0x3a [16087.359872] [] generic_file_aio_read+0x242/0x5a7 [16087.359872] [] xfs_read+0x1a8/0x1ff [16087.359872] [] xfs_file_aio_read+0x58/0x5d [16087.359872] [] do_sync_read+0xc0/0x106 [16087.359872] [] ? finish_task_switch+0x6f/0xad [16087.359872] [] ? finish_task_switch+0x0/0xad [16087.359872] [] ? schedule+0x845/0x8bd [16087.359872] [] ? security_file_permission+0x11/0x13 [16087.359872] [] vfs_read+0xa8/0x102 [16087.359872] [] sys_read+0x47/0x70 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] bash S ffff88001e6e0000 4880 2898 2876 0x000000= 00 [16087.359872] ffff88001f3dfe58 0000000000000046 0000000000000000 0000000000000000 [16087.359872] ffff88001f3dfe08 000000000000def8 ffff88001f3dffd8 0000000000014180 [16087.359872] ffff88001f3dffd8 0000000000014180 ffff88001e6e0000 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] do_wait+0x1bd/0x22b [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] sys_wait4+0xa6/0xc3 [16087.359872] [] ? child_wait_callback+0x0/0x53 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] syslog-ng S ffff88001e6e10b0 6248 3348 1 0x000000= 00 [16087.359872] ffff88001f373e58 0000000000000046 0000000000000002 0000000000000000 [16087.359872] ffff88001f373e08 000000000000def8 ffff88001f373fd8 0000000000014180 [16087.359872] ffff88001f373fd8 0000000000014180 ffff88001e6e10b0 ffff88001e5e6420 [16087.359872] Call Trace: [16087.359872] [] do_wait+0x1bd/0x22b [16087.359872] [] sys_wait4+0xa6/0xc3 [16087.359872] [] ? child_wait_callback+0x0/0x53 [16087.359872] [] ? sys_close+0x2d/0xe4 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] syslog-ng S 0000000000000000 3832 3349 3348 0x000000= 00 [16087.359872] ffff88001f3e9a58 0000000000000046 0000000000000000 0000000000000282 [16087.359872] 0000000000000040 000000000000def8 ffff88001f3e9fd8 0000000000014180 [16087.359872] ffff88001f3e9fd8 0000000000014180 ffff88001e5e6420 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] schedule_hrtimeout_range+0xc2/0xf7 [16087.359872] [] ? hrtimer_wakeup+0x0/0x21 [16087.359872] [] ? hrtimer_start_range_ns+0xf/0x11 [16087.359872] [] poll_schedule_timeout+0x46/0x69 [16087.359872] [] do_sys_poll+0x36a/0x40b [16087.359872] [] ? __pollwait+0x0/0xcf [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? pollwake+0x0/0x5c [16087.359872] [] ? mark_lock+0x22/0x225 [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? __wake_up+0x22/0x50 [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] ? trace_hardirqs_on_caller+0x10b/0x12f [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? ktime_get_ts+0xb1/0xbe [16087.359872] [] ? poll_select_set_timeout+0x5c/0x77 [16087.359872] [] sys_poll+0x50/0xba [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] flush-254:0 S 00000000000493e0 5216 4467 2 0x000000= 00 [16087.359872] ffff88001e783db0 0000000000000046 ffff88001e623210 ffffffff81490baf [16087.359872] ffff88001f95c000 000000000000def8 ffff88001e783fd8 0000000000014180 [16087.359872] ffff88001e783fd8 0000000000014180 ffff88001e623210 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] schedule_timeout_interruptible+0x19/0x= 1b [16087.359872] [] bdi_writeback_task+0x82/0xa9 [16087.359872] [] ? bdi_start_fn+0x0/0xd4 [16087.359872] [] bdi_start_fn+0x71/0xd4 [16087.359872] [] ? bdi_start_fn+0x0/0xd4 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] flush-254:16 S 00000000000493e0 6208 4702 2 0x000000= 00 [16087.359872] ffff88001e6cddb0 0000000000000046 0000000000000000 ffffffff81490baf [16087.359872] ffff88001f970000 000000000000def8 ffff88001e6cdfd8 0000000000014180 [16087.359872] ffff88001e6cdfd8 0000000000014180 ffff88001e5e5370 ffff88001f965370 [16087.359872] Call Trace: [16087.359872] [] ? _raw_spin_unlock_irqrestore+0x3f/0x4= 7 [16087.359872] [] ? __mod_timer+0x141/0x153 [16087.359872] [] ? init_timer_key+0x8d/0x99 [16087.359872] [] schedule_timeout+0xa2/0xc9 [16087.359872] [] ? process_timeout+0x0/0xb [16087.359872] [] schedule_timeout_interruptible+0x19/0x= 1b [16087.359872] [] bdi_writeback_task+0x82/0xa9 [16087.359872] [] ? bdi_start_fn+0x0/0xd4 [16087.359872] [] bdi_start_fn+0x71/0xd4 [16087.359872] [] ? bdi_start_fn+0x0/0xd4 [16087.359872] [] kthread+0x7d/0x85 [16087.359872] [] kernel_thread_helper+0x4/0x10 [16087.359872] [] ? restore_args+0x0/0x30 [16087.359872] [] ? kthread+0x0/0x85 [16087.359872] [] ? kernel_thread_helper+0x0/0x10 [16087.359872] bash S ffff88001dcb10b0 4616 4754 2876 0x000000= 00 [16087.359872] ffff88001f371e58 0000000000000046 0000000000000002 0000000000000000 [16087.359872] ffff88001f371e08 000000000000def8 ffff88001f371fd8 0000000000014180 [16087.359872] ffff88001f371fd8 0000000000014180 ffff88001dcb10b0 ffff88001f152160 [16087.359872] Call Trace: [16087.359872] [] do_wait+0x1bd/0x22b [16087.359872] [] ? might_fault+0x57/0xa4 [16087.359872] [] sys_wait4+0xa6/0xc3 [16087.359872] [] ? child_wait_callback+0x0/0x53 [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] sync D 0000000000000000 4896 4761 4754 0x000000= 00 [16087.359872] ffff88001edafcd8 0000000000000046 0000000000000000 ffffffff81067901 [16087.359872] ffff88001e5e42c0 000000000000def8 ffff88001edaffd8 0000000000014180 [16087.359872] ffff88001edaffd8 0000000000014180 ffff88001e5e42c0 ffff88001f916420 [16087.359872] Call Trace: [16087.359872] [] ? mark_held_locks+0x4d/0x6b [16087.359872] [] ? prepare_to_wait+0x70/0x7b [16087.359872] [] xfs_ioend_wait+0x83/0x9b [16087.359872] [] ? autoremove_wake_function+0x0/0x38 [16087.359872] [] ? mapping_tagged+0x60/0x69 [16087.359872] [] ? mapping_tagged+0x0/0x69 [16087.359872] [] xfs_sync_inode_data+0x98/0xbf [16087.359872] [] xfs_inode_ag_walk+0x9d/0xdc [16087.359872] [] ? xfs_sync_inode_data+0x0/0xbf [16087.359872] [] xfs_inode_ag_iterator+0x56/0x84 [16087.359872] [] ? xfs_sync_inode_data+0x0/0xbf [16087.359872] [] xfs_sync_data+0x26/0x4e [16087.359872] [] xfs_quiesce_data+0x1e/0x57 [16087.359872] [] xfs_fs_sync_fs+0x26/0xd7 [16087.359872] [] ? vfs_quota_sync+0x1b7/0x1c8 [16087.359872] [] sync_quota_sb+0x4e/0x103 [16087.359872] [] __sync_filesystem+0x41/0x72 [16087.359872] [] sync_filesystems+0xaa/0x100 [16087.359872] [] sys_sync+0x1c/0x2e [16087.359872] [] system_call_fastpath+0x16/0x1b [16087.359872] test-malloc R running task 4616 4765 2898 0x000000= 00 [16087.359872] ffff88001f3abdb8 0000000000000040 0000000000000001 ffff88001f3abea8 [16087.359872] ffff88000268e720 ffffffff81063fa4 ffff88001f3abe48 ffffffff8105b465 [16087.359872] ffff88001dcb5370 000000000000e6b0 0000000100000001 000000000000c350 [16087.359872] Call Trace: [16087.359872] [] ? trace_hardirqs_on+0xd/0xf [16087.359872] [] ? do_nanosleep+0x73/0xb3 [16087.359872] [] ? hrtimer_nanosleep+0x8b/0xf9 [16087.359872] [] ? hrtimer_wakeup+0x0/0x21 [16087.359872] [] ? hrtimer_start_range_ns+0xf/0x11 [16087.359872] [] ? sys_nanosleep+0x5e/0x78 [16087.359872] [] ? system_call_fastpath+0x16/0x1b [16087.359872] [16087.359872] Showing all locks held in the system: [16087.359872] 2 locks held by xfsdatad/0/414: [16087.359872] #0: (xfsdatad){+.+...}, at: [] worker_thread+0x1d5/0x332 [16087.359872] #1: ((&ioend->io_work)){+.+...}, at: [] worker_thread+0x1d5/0x332 [16087.359872] 2 locks held by xfsdatad/2/416: [16087.359872] #0: (xfsdatad){+.+...}, at: [] worker_thread+0x1d5/0x332 [16087.359872] #1: ((&ioend->io_work)){+.+...}, at: [] worker_thread+0x1d5/0x332 [16087.359872] 1 lock held by agetty/2848: [16087.359872] #0: (&tty->atomic_read_lock){+.+.+.}, at: [] n_tty_read+0x2d8/0x7f3 [16087.359872] 1 lock held by agetty/2849: [16087.359872] #0: (&tty->atomic_read_lock){+.+.+.}, at: [] n_tty_read+0x2d8/0x7f3 [16087.359872] 1 lock held by agetty/2850: [16087.359872] #0: (&tty->atomic_read_lock){+.+.+.}, at: [] n_tty_read+0x2d8/0x7f3 [16087.359872] 1 lock held by agetty/2851: [16087.359872] #0: (&tty->atomic_read_lock){+.+.+.}, at: [] n_tty_read+0x2d8/0x7f3 [16087.359872] 1 lock held by agetty/2852: [16087.359872] #0: (&tty->atomic_read_lock){+.+.+.}, at: [] n_tty_read+0x2d8/0x7f3 [16087.359872] 2 locks held by bash/2853: [16087.359872] #0: (sysrq_key_table_lock){......}, at: [] __handle_sysrq+0x26/0x158 [16087.359872] #1: (tasklist_lock){.+.+..}, at: [] debug_show_all_locks+0x53/0x188 [16087.359872] 1 lock held by test-mysqld/2882: [16087.359872] #0: (&(&ip->i_iolock)->mr_lock){++++++}, at: [] xfs_ilock+0x49/0xb2 [16087.359872] 1 lock held by test-mysqld/2883: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] generic_file_llseek+0x2c/0x5e [16087.359872] 1 lock held by test-mysqld/2884: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] generic_file_llseek+0x2c/0x5e [16087.359872] 2 locks held by test-mysqld/2885: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] xfs_write+0x2bf/0x793 [16087.359872] #1: (&(&ip->i_iolock)->mr_lock){++++++}, at: [] xfs_ilock+0x2c/0xb2 [16087.359872] 1 lock held by test-mysqld/2886: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] generic_file_llseek+0x2c/0x5e [16087.359872] 1 lock held by test-mysqld/2887: [16087.359872] #0: (&(&ip->i_iolock)->mr_lock){++++++}, at: [] xfs_ilock+0x49/0xb2 [16087.359872] 1 lock held by test-mysqld/2888: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] generic_file_llseek+0x2c/0x5e [16087.359872] 1 lock held by test-mysqld/2889: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] generic_file_llseek+0x2c/0x5e [16087.359872] 1 lock held by test-mysqld/2890: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] xfs_write+0x2bf/0x793 [16087.359872] 1 lock held by test-mysqld/2891: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] generic_file_llseek+0x2c/0x5e [16087.359872] 1 lock held by test-mysqld/2892: [16087.359872] #0: (&sb->s_type->i_mutex_key#12){+.+.+.}, at: [] vfs_fsync_range+0x6e/0xa6 [16087.359872] 2 locks held by test-tar/2897: [16087.359872] #0: (&(&ip->i_iolock)->mr_lock){++++++}, at: [] xfs_ilock+0x49/0xb2 [16087.359872] #1: (&(&ip->i_lock)->mr_lock){++++..}, at: [] xfs_ilock+0x7b/0xb2 [16087.359872] 2 locks held by sync/4761: [16087.359872] #0: (mutex){+.+...}, at: [] sync_filesystems+0x1e/0x100 [16087.359872] #1: (&type->s_umount_key#24){.+.+..}, at: [] sync_filesystems+0x88/0x100 [16087.359872] From SRS0+KImH+64+fromorbit.com=david@internode.on.net Tue Aug 3 17:56:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73MuuDO260360 for ; Tue, 3 Aug 2010 17:56:56 -0500 X-ASG-Debug-ID: 1280876233-618702240000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 84B70491AB0 for ; Tue, 3 Aug 2010 15:57:14 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id Igv7edpWS3wNFw5c for ; Tue, 03 Aug 2010 15:57:14 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33791609-1927428 for multiple; Wed, 04 Aug 2010 08:27:00 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgQPq-0008Na-Bt; Wed, 04 Aug 2010 08:56:58 +1000 Date: Wed, 4 Aug 2010 08:56:58 +1000 From: Dave Chinner To: Mingming Cao Cc: Matthew Wilcox , linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO Message-ID: <20100803225658.GB26402@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <20100730025324.GO25774@parisc-linux.org> <20100730045331.GA2126@dastard> <1280856865.2436.31.camel@mingming-laptop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280856865.2436.31.camel@mingming-laptop> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1280876235 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36952 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 10:34:25AM -0700, Mingming Cao wrote: > On Fri, 2010-07-30 at 14:53 +1000, Dave Chinner wrote: > > On Thu, Jul 29, 2010 at 08:53:24PM -0600, Matthew Wilcox wrote: > > > On Fri, Jul 30, 2010 at 08:45:16AM +1000, Dave Chinner wrote: > > > > If we get two unaligned direct IO's to the same filesystem block > > > > that is marked as a new allocation (i.e. buffer_new), then both IOs will > > > > zero the portion of the block they are not writing data to. As a > > > > result, when the IOs complete there will be a portion of the block > > > > that contains zeros from the last IO to complete rather than the > > > > data that should be there. .... > > I don't want any direct IO for XFS to go through the page cache - > > unaligned or not. using the page cache for the unaligned blocks > > would also be much worse for performance that this method because it > > turns unaligned direct IO into 3 IOs - the unaligned head block, the > > aligned body and the unaligned tail block. It would also be a > > performance hit you take on every single dio, whereas this way the > > hit is only taken when an overlap is detected. > > Does this problem also possible for DIO and non AIO case? (Ext4 case > this only happy with AIO+DIO+unaligned). If not, could we simply force > unaligned AIO+DIO to be synchronous? Still direct IO... There is nothing specific to AIO about this bug. XFS (at least) allows concurrent DIO writes to the same inode regardless of whether they are dispatched via AIO or multiple separate threads and so the race condition exists outside just the AIO context... > > And besides, such decisions on whether to use buffered IO have to be > > made high up in the filesystem when we are deciding how to lock the > > inode for the dio - buffered IO requires exclusive locking, not the > > shared locking we do for dio writes. That further reduces the > > performance of unaligned direct IO even when there are no overlaps, > > and it's a solution that every filesystem needs to implement > > themselves in some way. > > > > I've looked at a couple of different ways to fix this (e.g. passing > > the unaligned state to get_blocks() to allow the filesystem to > > serialise there) but they've all died a horrible death of dodgy > > locking and hacky IO completion detection. not to mention > > requiring a different solution in every filesystem. > > I also have been thinking other ways to fix this, initial thoughts about > this but concerned about the scalability. > > I was looking at ways to use buffer head state to indicate any unaligned > AIO DIO write to buffer_new buffers(do_direct_IO set the state), then > for any futhur unaligned IO need to wait for the AIO+DIO complete on > that buffer. That's effectively what my fix does, except it does not overload bufferheads to do it. > but the buffer head passed from do_direct_IO to > get_blocks() is a dummy buffer, have to get the buffer head from > device... Which, IMO, seems like a dangerous layering violation - it's mixing device associated bufferheads with filesystem IO (i.e. from different address spaces) and, as such, the two are never guaranteed to be coherent. To make matters more complex, XFS can have at least two block devices (data and real-time) that direct IO is targeted at, so doing something that is block device specific seems much more complex than just tracking the IO in a separate list... > this would only impact to all IOs that are really conflict with > pending AIO DIOs... it should work for ext4 case...would this something > usable for XFS? I have got the approach started last week but not very > far. It might, but I don't think it's a viable approach. Cheers, Dave. -- Dave Chinner david@fromorbit.com From cmm@us.ibm.com Tue Aug 3 18:41:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_33, J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o73Nf56X261858 for ; Tue, 3 Aug 2010 18:41:05 -0500 X-ASG-Debug-ID: 1280879364-1f7201a00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e33.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6DA6311C9536 for ; Tue, 3 Aug 2010 16:49:25 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by cuda.sgi.com with ESMTP id Ey3ouUedMCjEBhLA for ; Tue, 03 Aug 2010 16:49:25 -0700 (PDT) Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e33.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o73NadKS025152 for ; Tue, 3 Aug 2010 17:36:39 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o73NfKWg109490 for ; Tue, 3 Aug 2010 17:41:20 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o73NfGMw012678 for ; Tue, 3 Aug 2010 17:41:16 -0600 Received: from [9.47.16.90] (mingming-laptop-009047016090.beaverton.ibm.com [9.47.16.90]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o73NfFA6012643; Tue, 3 Aug 2010 17:41:15 -0600 X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO From: Mingming Cao To: Dave Chinner Cc: Matthew Wilcox , linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net In-Reply-To: <20100803225658.GB26402@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <20100730025324.GO25774@parisc-linux.org> <20100730045331.GA2126@dastard> <1280856865.2436.31.camel@mingming-laptop> <20100803225658.GB26402@dastard> Content-Type: text/plain; charset="UTF-8" Date: Tue, 03 Aug 2010 16:41:14 -0700 Message-ID: <1280878874.2334.6.camel@mingming-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e33.co.us.ibm.com[32.97.110.151] X-Barracuda-Start-Time: 1280879365 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36955 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2010-08-04 at 08:56 +1000, Dave Chinner wrote: > On Tue, Aug 03, 2010 at 10:34:25AM -0700, Mingming Cao wrote: > > On Fri, 2010-07-30 at 14:53 +1000, Dave Chinner wrote: > > > On Thu, Jul 29, 2010 at 08:53:24PM -0600, Matthew Wilcox wrote: > > > > On Fri, Jul 30, 2010 at 08:45:16AM +1000, Dave Chinner wrote: > > > > > If we get two unaligned direct IO's to the same filesystem block > > > > > that is marked as a new allocation (i.e. buffer_new), then both IOs will > > > > > zero the portion of the block they are not writing data to. As a > > > > > result, when the IOs complete there will be a portion of the block > > > > > that contains zeros from the last IO to complete rather than the > > > > > data that should be there. > .... > > > I don't want any direct IO for XFS to go through the page cache - > > > unaligned or not. using the page cache for the unaligned blocks > > > would also be much worse for performance that this method because it > > > turns unaligned direct IO into 3 IOs - the unaligned head block, the > > > aligned body and the unaligned tail block. It would also be a > > > performance hit you take on every single dio, whereas this way the > > > hit is only taken when an overlap is detected. > > > > Does this problem also possible for DIO and non AIO case? (Ext4 case > > this only happy with AIO+DIO+unaligned). If not, could we simply force > > unaligned AIO+DIO to be synchronous? Still direct IO... > > There is nothing specific to AIO about this bug. XFS (at least) > allows concurrent DIO writes to the same inode regardless of whether > they are dispatched via AIO or multiple separate threads and so the > race condition exists outside just the AIO context... > Okay..yeah ext4 prevent direct IO write to the same inode from multiple threads, so this is not a issue for non-aio case. How does XFS serialize direct IO (aligned) to the same file offset(or overlap) from multiple threads? Mingming From cmm@us.ibm.com Tue Aug 3 19:11:03 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_33, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o740B33B000978 for ; Tue, 3 Aug 2010 19:11:03 -0500 X-ASG-Debug-ID: 1280881161-2cba01b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e9.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E95A434AB42 for ; Tue, 3 Aug 2010 17:19:21 -0700 (PDT) Received: from e9.ny.us.ibm.com (e9.ny.us.ibm.com [32.97.182.139]) by cuda.sgi.com with ESMTP id CE5VlnGNAYBtzkRB for ; Tue, 03 Aug 2010 17:19:21 -0700 (PDT) Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e9.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id o73NsLID009178 for ; Tue, 3 Aug 2010 19:54:21 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o740BKDx133906 for ; Tue, 3 Aug 2010 20:11:20 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o740BJeV016076 for ; Tue, 3 Aug 2010 20:11:20 -0400 Received: from [9.47.16.90] (mingming-laptop-009047016090.beaverton.ibm.com [9.47.16.90]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o740BIMc016025; Tue, 3 Aug 2010 20:11:19 -0400 X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO From: Mingming Cao To: Dave Chinner Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net In-Reply-To: <1280443516-14448-1-git-send-email-david@fromorbit.com> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 03 Aug 2010 17:11:18 -0700 Message-ID: <1280880678.2334.27.camel@mingming-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: e9.ny.us.ibm.com[32.97.182.139] X-Barracuda-Start-Time: 1280881162 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36956 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2010-07-30 at 08:45 +1000, Dave Chinner wrote: > From: Dave Chinner > > If we get two unaligned direct IO's to the same filesystem block > that is marked as a new allocation (i.e. buffer_new), then both IOs will > zero the portion of the block they are not writing data to. As a > result, when the IOs complete there will be a portion of the block > that contains zeros from the last IO to complete rather than the > data that should be there. > > This is easily manifested by qemu using aio+dio with an unaligned > guest filesystem - every IO is unaligned and fileystem corruption is > encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) > is also a simple reproducer. > > To avoid this problem, track unaligned IO that triggers sub-block zeroing and > check new incoming unaligned IO that require sub-block zeroing against that > list. If we get an overlap where the start and end of unaligned IOs hit the > same filesystem block, then we need to block the incoming IOs until the IO that > is zeroing the block completes. The blocked IO can then continue without > needing to do any zeroing and hence won't overwrite valid data with zeros. > This seems to address both two IOs are unaligned direct IO. If the first IO is aligned direct IO, then it is not tracked? I am also concerned about the aligned direct IO case... 1) first thread aio+dio+aligned write to a hole, there is no zero-out submitted from kernel. But the hole remains initialized before all IO complete and convert it from uninitialized extent to initialized. 2) second thread aio+dio+unalign write to the same hole, this time it is unaligned. since buffer is still new (not converted yet), the new incoming thread zero out port of data that first thread has written to It seems would need to track any direct IO written to a hole/unwrtten extent/ buffer new, not only the unaligned dio ... regards, Mingming > Signed-off-by: Dave Chinner > --- > fs/direct-io.c | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- > 1 files changed, 146 insertions(+), 6 deletions(-) > > diff --git a/fs/direct-io.c b/fs/direct-io.c > index a10cb91..611524e 100644 > --- a/fs/direct-io.c > +++ b/fs/direct-io.c > @@ -71,6 +71,9 @@ struct dio { > unsigned start_zero_done; /* flag: sub-blocksize zeroing has > been performed at the start of a > write */ > +#define LAST_SECTOR ((sector_t)-1LL) > + sector_t zero_block_front; /* fs block we are zeroing at front */ > + sector_t zero_block_rear; /* fs block we are zeroing at rear */ > int pages_in_io; /* approximate total IO pages */ > size_t size; /* total request size (doesn't change)*/ > sector_t block_in_file; /* Current offset into the underlying > @@ -135,6 +138,101 @@ struct dio { > struct page *pages[DIO_PAGES]; /* page buffer */ > }; > > + > +/* > + * record fs blocks we are doing zeroing on in a zero block list. > + * unaligned IO is not very performant and so is relatively uncommon, > + * so a global list should be sufficent to track them. > + */ > +struct dio_zero_block { > + struct list_head dio_list; /* list of io in progress */ > + sector_t zero_block; /* block being zeroed */ > + struct dio *dio; /* owner dio */ > + wait_queue_head_t wq; /* New IO block here */ > + atomic_t ref; /* reference count */ > +}; > + > +DEFINE_SPINLOCK(dio_zero_block_lock); > +LIST_HEAD(dio_zero_block_list); > + > +/* > + * Add a filesystem block to the list of blocks we are tracking. > + */ > +static void > +dio_start_zero_block(struct dio *dio, sector_t zero_block) > +{ > + struct dio_zero_block *zb; > + > + zb = kmalloc(sizeof(*zb), GFP_NOIO); > + if (!zb) > + return; > + INIT_LIST_HEAD(&zb->dio_list); > + init_waitqueue_head(&zb->wq); > + zb->zero_block = zero_block; > + zb->dio = dio; > + atomic_set(&zb->ref, 1); > + > + spin_lock(&dio_zero_block_lock); > + list_add(&zb->dio_list, &dio_zero_block_list); > + spin_unlock(&dio_zero_block_lock); > +} > + > +static void > +dio_drop_zero_block(struct dio_zero_block *zb) > +{ > + if (atomic_dec_and_test(&zb->ref)) > + kfree(zb); > +} > + > +/* > + * Check whether a filesystem block is currently being zeroed, and if it is > + * wait for it to complete before returning. If we waited for a block being > + * zeroed, return 1 to indicate that the block is already initialised, > + * otherwise return 0 to indicate that it needs zeroing. > + */ > +static int > +dio_wait_zero_block(struct dio *dio, sector_t zero_block) > +{ > + struct dio_zero_block *zb; > + > + spin_lock(&dio_zero_block_lock); > + list_for_each_entry(zb, &dio_zero_block_list, dio_list) { > + if (zb->dio->inode != dio->inode) > + continue; > + if (zb->zero_block != zero_block) > + continue; > + atomic_inc(&zb->ref); > + spin_unlock(&dio_zero_block_lock); > + wait_event(zb->wq, (list_empty(&zb->dio_list))); > + dio_drop_zero_block(zb); > + return 1; > + } > + spin_unlock(&dio_zero_block_lock); > + return 0; > +} > + > +/* > + * Complete a block zeroing and wake up anyone waiting for it. > + */ > +static void dio_end_zero_block(struct dio *dio, sector_t zero_block) > +{ > + struct dio_zero_block *zb; > + > + spin_lock(&dio_zero_block_lock); > + list_for_each_entry(zb, &dio_zero_block_list, dio_list) { > + if (zb->dio->inode != dio->inode) > + continue; > + if (zb->zero_block != zero_block) > + continue; > + list_del_init(&zb->dio_list); > + spin_unlock(&dio_zero_block_lock); > + wake_up(&zb->wq); > + dio_drop_zero_block(zb); > + return; > + } > + spin_unlock(&dio_zero_block_lock); > +} > + > /* > * How many pages are in the queue? > */ > @@ -253,6 +351,11 @@ static int dio_complete(struct dio *dio, loff_t offset, int ret, bool is_async) > aio_complete(dio->iocb, ret, 0); > } > > + if (dio->zero_block_front != LAST_SECTOR) > + dio_end_zero_block(dio, dio->zero_block_front); > + if (dio->zero_block_rear != LAST_SECTOR) > + dio_end_zero_block(dio, dio->zero_block_rear); > + > if (dio->flags & DIO_LOCKING) > /* lockdep: non-owner release */ > up_read_non_owner(&dio->inode->i_alloc_sem); > @@ -777,6 +880,12 @@ static void clean_blockdev_aliases(struct dio *dio) > * block with zeros. This happens only if user-buffer, fileoffset or > * io length is not filesystem block-size multiple. > * > + * We need to track the blocks we are zeroing. If we have concurrent IOs that hit > + * the same start or end block, we do not want all the IOs to zero the portion > + * they are not writing data to as that will overwrite data from the other IOs. > + * Hence we need to block until the first unaligned IO completes before we can > + * continue (without executing any zeroing). > + * > * `end' is zero if we're doing the start of the IO, 1 at the end of the > * IO. > */ > @@ -784,8 +893,8 @@ static void dio_zero_block(struct dio *dio, int end) > { > unsigned dio_blocks_per_fs_block; > unsigned this_chunk_blocks; /* In dio_blocks */ > - unsigned this_chunk_bytes; > struct page *page; > + sector_t fsblock; > > dio->start_zero_done = 1; > if (!dio->blkfactor || !buffer_new(&dio->map_bh)) > @@ -797,17 +906,41 @@ static void dio_zero_block(struct dio *dio, int end) > if (!this_chunk_blocks) > return; > > + if (end) > + this_chunk_blocks = dio_blocks_per_fs_block - this_chunk_blocks; > + > /* > * We need to zero out part of an fs block. It is either at the > - * beginning or the end of the fs block. > + * beginning or the end of the fs block, but first we need to check if > + * there is already a zeroing being run on this block. > + * > + * If we are doing a sub-block IO (i.e. zeroing both front and rear of > + * the same block) we don't need to wait or set a gaurd for the rear of > + * the block as we already have one set. > */ > - if (end) > - this_chunk_blocks = dio_blocks_per_fs_block - this_chunk_blocks; > + fsblock = dio->block_in_file >> dio->blkfactor; > + if (!end || dio->zero_block_front != fsblock) { > > - this_chunk_bytes = this_chunk_blocks << dio->blkbits; > + /* wait for any zeroing already in progress */ > + if (dio_wait_zero_block(dio, fsblock)) { > + /* skip the range we would have zeroed. */ > + dio->next_block_for_io += this_chunk_blocks; > + return; > + } > + > + /* > + * we are going to zero stuff now, so set a guard to catch > + * others that might want to zero the same block. > + */ > + dio_start_zero_block(dio, fsblock); > + if (end) > + dio->zero_block_rear = fsblock; > + else > + dio->zero_block_front = fsblock; > + } > > page = ZERO_PAGE(0); > - if (submit_page_section(dio, page, 0, this_chunk_bytes, > + if (submit_page_section(dio, page, 0, this_chunk_blocks << dio->blkbits, > dio->next_block_for_io)) > return; > > @@ -1191,6 +1324,13 @@ __blockdev_direct_IO_newtrunc(int rw, struct kiocb *iocb, struct inode *inode, > */ > memset(dio, 0, offsetof(struct dio, pages)); > > + /* > + * zero_blocks need to initialised to largeÑ•t value to avoid > + * matching the zero block accidentally. > + */ > + dio->zero_block_front = LAST_SECTOR; > + dio->zero_block_rear = LAST_SECTOR; > + > dio->flags = flags; > if (dio->flags & DIO_LOCKING) { > /* watch out for a 0 len io from a tricksy fs */ > -- > 1.7.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From SRS0+1LZ9+65+fromorbit.com=david@internode.on.net Tue Aug 3 19:47:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o740lVPq002157 for ; Tue, 3 Aug 2010 19:47:31 -0500 X-ASG-Debug-ID: 1280882868-438303380000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 99C84167B2C2 for ; Tue, 3 Aug 2010 17:47:49 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id 4NFbeE8dGUHBOEnO for ; Tue, 03 Aug 2010 17:47:49 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33806829-1927428 for multiple; Wed, 04 Aug 2010 10:17:47 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgS94-0008Vg-92; Wed, 04 Aug 2010 10:47:46 +1000 Date: Wed, 4 Aug 2010 10:47:46 +1000 From: Dave Chinner To: Ilia Mirkin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel Message-ID: <20100804004746.GT7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1280882870 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36958 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Ilia, Can you send me the output of this for your kernel that the traces came from: $ gdb (gdb) l *( xfs_write+0x2cc) You can run it against the vmlinux file in the kernel build directory. Basically I need to know which xfs_ilock() call in xfs_write() one of the mysqld-test processes is stuck on. Cheers, Dave. -- Dave Chinner david@fromorbit.com From ibmirkin@gmail.com Tue Aug 3 20:15:35 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o741FZZb002920 for ; Tue, 3 Aug 2010 20:15:35 -0500 X-ASG-Debug-ID: 1280885035-7a1b003d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0936D34AB82 for ; Tue, 3 Aug 2010 18:23:55 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id hWbgEIzzaBsrw2pS for ; Tue, 03 Aug 2010 18:23:55 -0700 (PDT) Received: by vws15 with SMTP id 15so3619892vws.26 for ; Tue, 03 Aug 2010 18:15:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=8F+EL5dINbXF5Yc2w25k4gW9/KfU0xeelLn3jm5MIkk=; b=OLM8BJcweqSDsiSSjmvB/57WPHkcfhxa/IQczHm4KpqYvCSxHhn5B2Tyo5LMWClZjy UZfVFAUh6PptP7ltvqal+bU+nB4qNgbFMhdub1SK7Fle/ukqqX9vnSPimXiuT63Jr1uu gv2v+iTbGHCsGVq9bEonjQIIilZI1xL8beCYs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=qAm5PFyMtzAba4mvTHPwMCcKgd0KTrGMr/cU6t6e/FUA9GbyZ7FHEO5Uxdcf4zyhvY +R/Qg2pr7Uzoox3l4QHJZYeupP0g3QGqOuXHejva88R2HYFTHww/aU8flf7MlTDwel9K YnbFiDoDapSRoLMvzEzJJL9Udf0ykTlABxnH4= MIME-Version: 1.0 Received: by 10.220.59.202 with SMTP id m10mr5824297vch.23.1280884553970; Tue, 03 Aug 2010 18:15:53 -0700 (PDT) Sender: ibmirkin@gmail.com Received: by 10.220.166.76 with HTTP; Tue, 3 Aug 2010 18:15:53 -0700 (PDT) In-Reply-To: <20100804004746.GT7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100804004746.GT7362@dastard> Date: Tue, 3 Aug 2010 21:15:53 -0400 X-Google-Sender-Auth: wKgvGPSeEslO3bitaJD03h7917o Message-ID: X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel From: Ilia Mirkin To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1280885036 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36961 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 3, 2010 at 8:47 PM, Dave Chinner wrote: > Ilia, > > Can you send me the output of this for your kernel that the > traces came from: > > $ gdb > (gdb) l *( xfs_write+0x2cc) > > You can run it against the vmlinux file in the kernel build > directory. =A0Basically I need to know which xfs_ilock() call in > xfs_write() one of the mysqld-test processes is stuck on. No problem - BTW, I'm running this on a 2.6.33.3 kernel (same as the one before, although diff hardware). If you want (and are fine with me "destroying" the current state), I can upgrade it to a kernel of your choice and repeat the test overnight. Naturally I didn't have CONFIG_DEBUG_INFO in there... just changed that to Y and recompiled. I'm not entirely sure that this preserves all the offsets, but at least the BUG-HUNTING doc makes allusions that it would. (gdb) l *( xfs_write+0x2cc) 0xffffffff8124342d is in xfs_write (fs/xfs/linux-2.6/xfs_lrw.c:597). 592 if (!need_i_mutex && (mapping->nrpages || pos > xip->i_size)) { 593 xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock); 594 iolock =3D XFS_IOLOCK_EXCL; 595 need_i_mutex =3D 1; 596 mutex_lock(&inode->i_mutex); 597 xfs_ilock(xip, XFS_ILOCK_EXCL|iolock); 598 goto start; 599 } 600 } 601 Well, at least it points at an xfs_ilock, so pretty good chance that adding debug info didn't change anything else. From SRS0+1LZ9+65+fromorbit.com=david@internode.on.net Tue Aug 3 22:37:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o743bAYc007049 for ; Tue, 3 Aug 2010 22:37:10 -0500 X-ASG-Debug-ID: 1280893048-644602c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3C64816958CC for ; Tue, 3 Aug 2010 20:37:28 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id qVpW3CriMr5hQNdH for ; Tue, 03 Aug 2010 20:37:28 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 22326210-1927428 for multiple; Wed, 04 Aug 2010 13:07:20 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgUn8-0000HQ-UV; Wed, 04 Aug 2010 13:37:18 +1000 Date: Wed, 4 Aug 2010 13:37:18 +1000 From: Dave Chinner To: Mingming Cao Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO Message-ID: <20100804033718.GU7362@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <1280880678.2334.27.camel@mingming-laptop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280880678.2334.27.camel@mingming-laptop> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1280893050 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36970 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 05:11:18PM -0700, Mingming Cao wrote: > On Fri, 2010-07-30 at 08:45 +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > If we get two unaligned direct IO's to the same filesystem block > > that is marked as a new allocation (i.e. buffer_new), then both IOs will > > zero the portion of the block they are not writing data to. As a > > result, when the IOs complete there will be a portion of the block > > that contains zeros from the last IO to complete rather than the > > data that should be there. > > > > This is easily manifested by qemu using aio+dio with an unaligned > > guest filesystem - every IO is unaligned and fileystem corruption is > > encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) > > is also a simple reproducer. > > > > To avoid this problem, track unaligned IO that triggers sub-block zeroing and > > check new incoming unaligned IO that require sub-block zeroing against that > > list. If we get an overlap where the start and end of unaligned IOs hit the > > same filesystem block, then we need to block the incoming IOs until the IO that > > is zeroing the block completes. The blocked IO can then continue without > > needing to do any zeroing and hence won't overwrite valid data with zeros. > > > > This seems to address both two IOs are unaligned direct IO. If the first > IO is aligned direct IO, then it is not tracked? > > I am also concerned about the aligned direct IO case... > > 1) first thread aio+dio+aligned write to a hole, there is no zero-out > submitted from kernel. But the hole remains initialized before all IO > complete and convert it from uninitialized extent to initialized. > 2) second thread aio+dio+unalign write to the same hole, this time it is > unaligned. since buffer is still new (not converted yet), the new > incoming thread zero out port of data that first thread has written to That is clearly and unmistakably an application bug - it should not be issuing concurrent, overlapping IO to the same block(s) regardless of whether they are unaligned, aligned or a mixture of both. By using direct IO, the application has assumed responsibility for preventing data corruption due to overlapping IOs - they are inherently racy and nothing in the dio code prevents that from occurring. The bug I'm fixing is for *non-overlapping* concurrent unaligned IOs where the kernel direct IO code causes the data corruption, not the application. The application is not doing something stupid, and as such needs to be fixed. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+SkGd+65+fromorbit.com=david@internode.on.net Tue Aug 3 22:58:22 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o743wM00007808 for ; Tue, 3 Aug 2010 22:58:22 -0500 X-ASG-Debug-ID: 1280894320-58fd00e70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E45874923D6 for ; Tue, 3 Aug 2010 20:58:40 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id acK11QgAOjWXmtMG for ; Tue, 03 Aug 2010 20:58:40 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34017372-1927428 for multiple; Wed, 04 Aug 2010 13:28:36 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgV7i-0000Im-5s; Wed, 04 Aug 2010 13:58:34 +1000 Date: Wed, 4 Aug 2010 13:58:34 +1000 From: Dave Chinner To: Mingming Cao Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO Message-ID: <20100804035834.GV7362@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <1280880678.2334.27.camel@mingming-laptop> <20100804033718.GU7362@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100804033718.GU7362@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1280894321 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36972 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 01:37:18PM +1000, Dave Chinner wrote: > On Tue, Aug 03, 2010 at 05:11:18PM -0700, Mingming Cao wrote: > > On Fri, 2010-07-30 at 08:45 +1000, Dave Chinner wrote: > > > From: Dave Chinner > > > > > > If we get two unaligned direct IO's to the same filesystem block > > > that is marked as a new allocation (i.e. buffer_new), then both IOs will > > > zero the portion of the block they are not writing data to. As a > > > result, when the IOs complete there will be a portion of the block > > > that contains zeros from the last IO to complete rather than the > > > data that should be there. > > > > > > This is easily manifested by qemu using aio+dio with an unaligned > > > guest filesystem - every IO is unaligned and fileystem corruption is > > > encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) > > > is also a simple reproducer. > > > > > > To avoid this problem, track unaligned IO that triggers sub-block zeroing and > > > check new incoming unaligned IO that require sub-block zeroing against that > > > list. If we get an overlap where the start and end of unaligned IOs hit the > > > same filesystem block, then we need to block the incoming IOs until the IO that > > > is zeroing the block completes. The blocked IO can then continue without > > > needing to do any zeroing and hence won't overwrite valid data with zeros. > > > > > > > This seems to address both two IOs are unaligned direct IO. If the first > > IO is aligned direct IO, then it is not tracked? > > > > I am also concerned about the aligned direct IO case... > > > > 1) first thread aio+dio+aligned write to a hole, there is no zero-out > > submitted from kernel. But the hole remains initialized before all IO > > complete and convert it from uninitialized extent to initialized. > > 2) second thread aio+dio+unalign write to the same hole, this time it is > > unaligned. since buffer is still new (not converted yet), the new > > incoming thread zero out port of data that first thread has written to > > That is clearly and unmistakably an application bug - it should not > be issuing concurrent, overlapping IO to the same block(s) > regardless of whether they are unaligned, aligned or a mixture of > both. By using direct IO, the application has assumed responsibility > for preventing data corruption due to overlapping IOs - they are > inherently racy and nothing in the dio code prevents that from > occurring. > > The bug I'm fixing is for *non-overlapping* concurrent unaligned IOs > where the kernel direct IO code causes the data corruption, not the > application. The application is not doing something stupid, and as > such needs to be fixed. ^^^^^^ the kernel bug needs to be fixed. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+rmdr+65+fromorbit.com=david@internode.on.net Tue Aug 3 23:22:07 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_33, J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o744M7dI008787 for ; Tue, 3 Aug 2010 23:22:07 -0500 X-ASG-Debug-ID: 1280895745-193b02210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2BB2A16962AC for ; Tue, 3 Aug 2010 21:22:26 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id E77riBl4lkElbh3A for ; Tue, 03 Aug 2010 21:22:26 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33739688-1927428 for multiple; Wed, 04 Aug 2010 13:52:20 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgVUg-0000Kl-Cy; Wed, 04 Aug 2010 14:22:18 +1000 Date: Wed, 4 Aug 2010 14:22:18 +1000 From: Dave Chinner To: Mingming Cao Cc: Matthew Wilcox , linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO Message-ID: <20100804042218.GW7362@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <20100730025324.GO25774@parisc-linux.org> <20100730045331.GA2126@dastard> <1280856865.2436.31.camel@mingming-laptop> <20100803225658.GB26402@dastard> <1280878874.2334.6.camel@mingming-laptop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280878874.2334.6.camel@mingming-laptop> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1280895747 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36974 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 04:41:14PM -0700, Mingming Cao wrote: > On Wed, 2010-08-04 at 08:56 +1000, Dave Chinner wrote: > > On Tue, Aug 03, 2010 at 10:34:25AM -0700, Mingming Cao wrote: > > > On Fri, 2010-07-30 at 14:53 +1000, Dave Chinner wrote: > > > > On Thu, Jul 29, 2010 at 08:53:24PM -0600, Matthew Wilcox wrote: > > > > > On Fri, Jul 30, 2010 at 08:45:16AM +1000, Dave Chinner wrote: > > > > > > If we get two unaligned direct IO's to the same filesystem block > > > > > > that is marked as a new allocation (i.e. buffer_new), then both IOs will > > > > > > zero the portion of the block they are not writing data to. As a > > > > > > result, when the IOs complete there will be a portion of the block > > > > > > that contains zeros from the last IO to complete rather than the > > > > > > data that should be there. > > .... > > > > I don't want any direct IO for XFS to go through the page cache - > > > > unaligned or not. using the page cache for the unaligned blocks > > > > would also be much worse for performance that this method because it > > > > turns unaligned direct IO into 3 IOs - the unaligned head block, the > > > > aligned body and the unaligned tail block. It would also be a > > > > performance hit you take on every single dio, whereas this way the > > > > hit is only taken when an overlap is detected. > > > > > > Does this problem also possible for DIO and non AIO case? (Ext4 case > > > this only happy with AIO+DIO+unaligned). If not, could we simply force > > > unaligned AIO+DIO to be synchronous? Still direct IO... > > > > There is nothing specific to AIO about this bug. XFS (at least) > > allows concurrent DIO writes to the same inode regardless of whether > > they are dispatched via AIO or multiple separate threads and so the > > race condition exists outside just the AIO context... > > > > Okay..yeah ext4 prevent direct IO write to the same inode from multiple > threads, so this is not a issue for non-aio case. > > How does XFS serialize direct IO (aligned) to the same file offset(or > overlap) from multiple threads? It doesn't. The 1996 usenix paper describes it well: http://oss.sgi.com/projects/xfs/papers/xfs_usenix/index.html See section 6.2 "Performing File I/O", sepcifically the sections on "Using Direct I/O" and "Using Multiple Processes". Quote: "When using direct I/O, multiple readers and writers can all access the file simultaneously. Currently, when using direct I/O and multiple writers, we place the burden of serializing writes to the same region of the file on the application." This is still true 15 years later.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+1LZ9+65+fromorbit.com=david@internode.on.net Tue Aug 3 23:27:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o744R9Ao008963 for ; Tue, 3 Aug 2010 23:27:10 -0500 X-ASG-Debug-ID: 1280896529-5fa602f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1A2EB187D11 for ; Tue, 3 Aug 2010 21:35:29 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id e4Z8P4d28pM2jrdA for ; Tue, 03 Aug 2010 21:35:29 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33836302-1927428 for multiple; Wed, 04 Aug 2010 13:57:27 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgVZe-0000LN-02; Wed, 04 Aug 2010 14:27:26 +1000 Date: Wed, 4 Aug 2010 14:27:25 +1000 From: Dave Chinner To: Ilia Mirkin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel Message-ID: <20100804042725.GX7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100804004746.GT7362@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1280896531 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36975 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 09:15:53PM -0400, Ilia Mirkin wrote: > On Tue, Aug 3, 2010 at 8:47 PM, Dave Chinner wrote: > > Ilia, > > > > Can you send me the output of this for your kernel that the > > traces came from: > > > > $ gdb > > (gdb) l *( xfs_write+0x2cc) > > > > You can run it against the vmlinux file in the kernel build > > directory.  Basically I need to know which xfs_ilock() call in > > xfs_write() one of the mysqld-test processes is stuck on. > > No problem - BTW, I'm running this on a 2.6.33.3 kernel (same as the > one before, although diff hardware). If you want (and are fine with me > "destroying" the current state), I can upgrade it to a kernel of your > choice and repeat the test overnight. > > Naturally I didn't have CONFIG_DEBUG_INFO in there... just changed > that to Y and recompiled. I'm not entirely sure that this preserves > all the offsets, but at least the BUG-HUNTING doc makes allusions that > it would. > > (gdb) l *( xfs_write+0x2cc) > 0xffffffff8124342d is in xfs_write (fs/xfs/linux-2.6/xfs_lrw.c:597). > 592 if (!need_i_mutex && (mapping->nrpages || pos > > xip->i_size)) { > 593 xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock); > 594 iolock = XFS_IOLOCK_EXCL; > 595 need_i_mutex = 1; > 596 mutex_lock(&inode->i_mutex); > 597 xfs_ilock(xip, XFS_ILOCK_EXCL|iolock); Make sense. Can you run 'l *(xfs_ilock+0x2c)' as well? I just need to confirm which lock it has blocked on. Cheers, Dave. -- Dave Chinner david@fromorbit.com From ibmirkin@gmail.com Tue Aug 3 23:38:50 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o744cnTX010144 for ; Tue, 3 Aug 2010 23:38:50 -0500 X-ASG-Debug-ID: 1280896749-427100b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A7B5716963DC for ; Tue, 3 Aug 2010 21:39:09 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id inQY48jv6dpJHHa2 for ; Tue, 03 Aug 2010 21:39:09 -0700 (PDT) Received: by vws15 with SMTP id 15so3749585vws.26 for ; Tue, 03 Aug 2010 21:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=/zaZvfBGJ1ce8PDXBf3Wr6PopOZRefKeLNDRb6o1x+c=; b=FYjWnyxfRCMwYvUhqIhN1YwweMlJHvPvu1btfMhGiqgE+TbDnHNI80mRZfPUertwEv SrZar0aJcT7Y9kRgWiQXwMyhUFcMndVrpYvh8zkgb/ohYeh7jQRGRspIwEnP845r6C7L 7revDFBQgnBYkDvhiTfRyYe80MGCS7HtlBUqI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=btd4URT6g9KMPe8DWhodqFYNiwNyt4t6tWFRQIefcZDxvtOOWK30AFg5zT22bcmELx +CMpDVw1RtBxaGAABmN1HUN3cjzJA7cxsXHvcfHmScolcVStxkEnU/rGEmadPbIjgADK EPt5UBEo0oGE1eMhA0nLr2tX5gzoCmP5ouzLw= MIME-Version: 1.0 Received: by 10.220.126.207 with SMTP id d15mr5849170vcs.118.1280896748972; Tue, 03 Aug 2010 21:39:08 -0700 (PDT) Sender: ibmirkin@gmail.com Received: by 10.220.166.76 with HTTP; Tue, 3 Aug 2010 21:39:08 -0700 (PDT) In-Reply-To: <20100804042725.GX7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100804004746.GT7362@dastard> <20100804042725.GX7362@dastard> Date: Wed, 4 Aug 2010 00:39:08 -0400 X-Google-Sender-Auth: _dbF_tSnOdFde7WLsoBHqkCgvCg Message-ID: X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel From: Ilia Mirkin To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1280896749 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36974 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 4, 2010 at 12:27 AM, Dave Chinner wrote: > On Tue, Aug 03, 2010 at 09:15:53PM -0400, Ilia Mirkin wrote: >> On Tue, Aug 3, 2010 at 8:47 PM, Dave Chinner wrote= : >> > Ilia, >> > >> > Can you send me the output of this for your kernel that the >> > traces came from: >> > >> > $ gdb >> > (gdb) l *( xfs_write+0x2cc) >> > >> > You can run it against the vmlinux file in the kernel build >> > directory. =A0Basically I need to know which xfs_ilock() call in >> > xfs_write() one of the mysqld-test processes is stuck on. >> >> No problem - BTW, I'm running this on a 2.6.33.3 kernel (same as the >> one before, although diff hardware). If you want (and are fine with me >> "destroying" the current state), I can upgrade it to a kernel of your >> choice and repeat the test overnight. >> >> Naturally I didn't have CONFIG_DEBUG_INFO in there... just changed >> that to Y and recompiled. I'm not entirely sure that this preserves >> all the offsets, but at least the BUG-HUNTING doc makes allusions that >> it would. >> >> (gdb) l *( xfs_write+0x2cc) >> 0xffffffff8124342d is in xfs_write (fs/xfs/linux-2.6/xfs_lrw.c:597). >> 592 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (!need_i_mutex && (mappin= g->nrpages || pos >> > xip->i_size)) { >> 593 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 xfs_iunlock(= xip, XFS_ILOCK_EXCL|iolock); >> 594 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 iolock =3D X= FS_IOLOCK_EXCL; >> 595 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 need_i_mutex= =3D 1; >> 596 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mutex_lock(&= inode->i_mutex); >> 597 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 xfs_ilock(xi= p, XFS_ILOCK_EXCL|iolock); > > Make sense. Can you run 'l *(xfs_ilock+0x2c)' as well? I just need to > confirm which lock it has blocked on. (gdb) l *(xfs_ilock+0x2c) 0xffffffff81221001 is in xfs_ilock (fs/xfs/linux-2.6/mrlock.h:48). 43 down_read_nested(&mrp->mr_lock, subclass); 44 } 45 46 static inline void mrupdate_nested(mrlock_t *mrp, int subclass) 47 { 48 down_write_nested(&mrp->mr_lock, subclass); 49 #ifdef DEBUG 50 mrp->mr_writer =3D 1; 51 #endif 52 } From SRS0+i3iU+65+fromorbit.com=david@internode.on.net Wed Aug 4 01:53:32 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o746rV27016375 for ; Wed, 4 Aug 2010 01:53:32 -0500 X-ASG-Debug-ID: 1280905311-4e9902090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 65EB811CC2F8 for ; Wed, 4 Aug 2010 00:01:52 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id da3SWVHt3yTaYBAB for ; Wed, 04 Aug 2010 00:01:52 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 33964396-1927428 for multiple; Wed, 04 Aug 2010 16:23:49 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgXrH-0000Vy-IG; Wed, 04 Aug 2010 16:53:47 +1000 Date: Wed, 4 Aug 2010 16:53:47 +1000 From: Dave Chinner To: Ilia Mirkin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel Message-ID: <20100804065347.GZ7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100804004746.GT7362@dastard> <20100804042725.GX7362@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1280905313 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36983 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 12:39:08AM -0400, Ilia Mirkin wrote: > On Wed, Aug 4, 2010 at 12:27 AM, Dave Chinner wrote: > > On Tue, Aug 03, 2010 at 09:15:53PM -0400, Ilia Mirkin wrote: > >> On Tue, Aug 3, 2010 at 8:47 PM, Dave Chinner wrote: > >> > Ilia, > >> > > >> > Can you send me the output of this for your kernel that the > >> > traces came from: > >> > > >> > $ gdb > >> > (gdb) l *( xfs_write+0x2cc) > >> > > >> > You can run it against the vmlinux file in the kernel build > >> > directory.  Basically I need to know which xfs_ilock() call in > >> > xfs_write() one of the mysqld-test processes is stuck on. > >> > >> No problem - BTW, I'm running this on a 2.6.33.3 kernel (same as the > >> one before, although diff hardware). If you want (and are fine with me > >> "destroying" the current state), I can upgrade it to a kernel of your > >> choice and repeat the test overnight. > >> > >> Naturally I didn't have CONFIG_DEBUG_INFO in there... just changed > >> that to Y and recompiled. I'm not entirely sure that this preserves > >> all the offsets, but at least the BUG-HUNTING doc makes allusions that > >> it would. > >> > >> (gdb) l *( xfs_write+0x2cc) > >> 0xffffffff8124342d is in xfs_write (fs/xfs/linux-2.6/xfs_lrw.c:597). > >> 592                     if (!need_i_mutex && (mapping->nrpages || pos > >> > xip->i_size)) { > >> 593                             xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock); > >> 594                             iolock = XFS_IOLOCK_EXCL; > >> 595                             need_i_mutex = 1; > >> 596                             mutex_lock(&inode->i_mutex); > >> 597                             xfs_ilock(xip, XFS_ILOCK_EXCL|iolock); > > > > Make sense. Can you run 'l *(xfs_ilock+0x2c)' as well? I just need to > > confirm which lock it has blocked on. > > (gdb) l *(xfs_ilock+0x2c) > 0xffffffff81221001 is in xfs_ilock (fs/xfs/linux-2.6/mrlock.h:48). > 43 down_read_nested(&mrp->mr_lock, subclass); > 44 } > 45 > 46 static inline void mrupdate_nested(mrlock_t *mrp, int subclass) > 47 { > 48 down_write_nested(&mrp->mr_lock, subclass); > 49 #ifdef DEBUG > 50 mrp->mr_writer = 1; > 51 #endif > 52 } OK, that doesn't help - it followed into the inline function rather than telling me which of the two calls in the function it was. I guess I'll need the disassembly output to work it out. Can you send the output of "disass xfs_ilock" instead? Thanks. Cheers, Dave. -- Dave Chinner david@fromorbit.com From linux@dominikbrodowski.net Wed Aug 4 02:36:40 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o747aeJA018065 for ; Wed, 4 Aug 2010 02:36:40 -0500 X-ASG-Debug-ID: 1280907416-68ca01bb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3C439492C68 for ; Wed, 4 Aug 2010 00:36:56 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id iniYJxbYE2Jr3yHu for ; Wed, 04 Aug 2010 00:36:56 -0700 (PDT) Received: (qmail 4065 invoked from network); 4 Aug 2010 07:36:54 -0000 Received: from p54a06a33.dip.t-dialin.net (HELO comet.dominikbrodowski.net) (brodo@84.160.106.51) by isilmar-3.linta.de with (DHE-RSA-AES256-SHA encrypted) SMTP; 4 Aug 2010 07:36:53 -0000 Received: by comet.dominikbrodowski.net (Postfix, from userid 1000) id 774628007C; Wed, 4 Aug 2010 09:35:46 +0200 (CEST) Date: Wed, 4 Aug 2010 09:35:46 +0200 From: Dominik Brodowski To: linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804073546.GA7494@comet.dominikbrodowski.net> Mail-Followup-To: Dominik Brodowski , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1280907417 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36986 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hey, on a production system I run kernel 2.6.35 and XFS (rw,relatime,nobarrier) on a lvdevice of a vgroup consisting of five dm-crypt devices (cryptsetup -c aes-lrw-benbi -s 384 create) , each of which runs on a md-raid1 device (mdadm --create --level=raid1 --raid-devices=2) on two 750 GB ATA devices. The read performance is abysmal. The ata devices can be ruled out, as hdparm resulted in acceptable performance: > Timing cached reads: 9444 MB in 2.00 seconds = 4733.59 MB/sec > Timing buffered disk reads: 298 MB in 3.02 seconds = 98.73 MB/sec How can I best track down the cause of the performance problem, a) without rebooting too often, and b) without breaking up the setup specified above (production system)? Any ideas? perf(1)? iostat(1)? Thanks & best, Dominik From BATV+5b0c3c5db7a982429319+2537+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 4 03:50:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o748oLfs025729 for ; Wed, 4 Aug 2010 03:50:24 -0500 X-ASG-Debug-ID: 1280912323-15dd02560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5741E11CC89B for ; Wed, 4 Aug 2010 01:58:43 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id EsorJ973X2q2kO8D for ; Wed, 04 Aug 2010 01:58:43 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgZgN-0003ii-4Y; Wed, 04 Aug 2010 08:50:39 +0000 Date: Wed, 4 Aug 2010 04:50:39 -0400 From: Christoph Hellwig To: Dominik Brodowski , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804085039.GA11671@infradead.org> References: <20100804073546.GA7494@comet.dominikbrodowski.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100804073546.GA7494@comet.dominikbrodowski.net> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280912324 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 09:35:46AM +0200, Dominik Brodowski wrote: > How can I best track down the cause of the performance problem, > a) without rebooting too often, and > b) without breaking up the setup specified above (production system)? So did you just upgrade the system from an earlier kernel that did not show these problems? Or did no one notice them before? From linux@dominikbrodowski.net Wed Aug 4 04:13:01 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o749D0qt026487 for ; Wed, 4 Aug 2010 04:13:01 -0500 X-ASG-Debug-ID: 1280913681-45d900b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C4F7014C6187 for ; Wed, 4 Aug 2010 02:21:21 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id kGNZMSDxT4qAKsGr for ; Wed, 04 Aug 2010 02:21:21 -0700 (PDT) Received: (qmail 32056 invoked by uid 1000); 4 Aug 2010 09:13:17 -0000 Date: Wed, 4 Aug 2010 11:13:17 +0200 From: Dominik Brodowski To: Christoph Hellwig Cc: linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804091317.GA27779@isilmar-3.linta.de> Mail-Followup-To: Dominik Brodowski , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100804085039.GA11671@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1280913682 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36993 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph, On Wed, Aug 04, 2010 at 04:50:39AM -0400, Christoph Hellwig wrote: > On Wed, Aug 04, 2010 at 09:35:46AM +0200, Dominik Brodowski wrote: > > How can I best track down the cause of the performance problem, > > a) without rebooting too often, and > > b) without breaking up the setup specified above (production system)? > > So did you just upgrade the system from an earlier kernel that did not > show these problems? No, 2.6.31 to 2.6.34 show similar behaviour. > Or did no one notice them before? Well, there are some reports relating to XFS on MD or RAID, though I couldn't find a resolution to the issues reported, e.g. - http://kerneltrap.org/mailarchive/linux-raid/2009/10/12/6490333 - http://lkml.indiana.edu/hypermail/linux/kernel/1006.1/00099.html However, I think we can rule out barriers, as XFS is mounted "nobarrier" here. Best, Dominik From michael.monnerie@is.it-management.at Wed Aug 4 04:15:53 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o749FrBv026588 for ; Wed, 4 Aug 2010 04:15:53 -0500 X-ASG-Debug-ID: 1280913371-5f5603a00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 904DA1D6DB76 for ; Wed, 4 Aug 2010 02:16:11 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 7Mqum8cO79yDpDyz for ; Wed, 04 Aug 2010 02:16:11 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 9CF2B17C; Wed, 4 Aug 2010 11:16:10 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 5CA8347EA07; Wed, 4 Aug 2010 11:16:10 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: Dominik Brodowski , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Date: Wed, 4 Aug 2010 11:16:09 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.34.1-zmi; KDE/4.3.5; x86_64; ; ) References: <20100804073546.GA7494@comet.dominikbrodowski.net> In-Reply-To: <20100804073546.GA7494@comet.dominikbrodowski.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart41331569.taeFQ0rjha"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008041116.09822@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1280913372 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36992 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart41331569.taeFQ0rjha Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Mittwoch, 4. August 2010 Dominik Brodowski wrote: > The read performance is abysmal. The ata devices can be ruled out, as > hdparm >=20 > resulted in acceptable performance: > > Timing cached reads: 9444 MB in 2.00 seconds =3D 4733.59 MB/sec > > Timing buffered disk reads: 298 MB in 3.02 seconds =3D 98.73 > > MB/sec Has that system been running acceptable before? If yes, what has been=20 changed that performance is down now? Or is it a new setup? Then why is it in production already? Can you run bonnie on that system? What does "dd if=3D of=3D/dev/null bs=3D1m count=3D1024" say? What does "dd if=3D/dev/zero of=3D bs=3D1m count=3D1024" say? =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart41331569.taeFQ0rjha Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxZL9kACgkQzhSR9xwSCbTecACeIaIGfwqb9W43UiPu6DtTRiXr RWQAn0J6cBGwcUqCSGFRDblkJA/XaA/s =7bjv -----END PGP SIGNATURE----- --nextPart41331569.taeFQ0rjha-- From BATV+5b0c3c5db7a982429319+2537+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 4 04:21:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o749L3Cj026721 for ; Wed, 4 Aug 2010 04:21:03 -0500 X-ASG-Debug-ID: 1280914166-15de03880000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 97CC514C61D7 for ; Wed, 4 Aug 2010 02:29:26 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DFBoWPufgCtocjbb for ; Wed, 04 Aug 2010 02:29:26 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OgaA6-0001aA-B2; Wed, 04 Aug 2010 09:21:22 +0000 Date: Wed, 4 Aug 2010 05:21:22 -0400 From: Christoph Hellwig To: Dominik Brodowski , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804092122.GA2998@infradead.org> References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100804091317.GA27779@isilmar-3.linta.de> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280914166 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 11:13:17AM +0200, Dominik Brodowski wrote: > > show these problems? > > No, 2.6.31 to 2.6.34 show similar behaviour. Ok, so it's been around for a while. Can you test the write speed of each individual device layer by doing a large read from it, using: dd if= of=/dev/null bs=8k iflag=direct where device starts with the /dev/sda* device, and goes up to the MD device, the dm-crypt device and the LV. And yes, it's safe to read from the device while it's otherwise mounted/used. From linux@dominikbrodowski.net Wed Aug 4 05:25:08 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74AP8hT028546 for ; Wed, 4 Aug 2010 05:25:08 -0500 X-ASG-Debug-ID: 1280917527-64b101510000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6D0934930E1 for ; Wed, 4 Aug 2010 03:25:27 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id TerqY77kxfqCszHN for ; Wed, 04 Aug 2010 03:25:27 -0700 (PDT) Received: (qmail 19083 invoked by uid 1000); 4 Aug 2010 10:25:26 -0000 Date: Wed, 4 Aug 2010 12:25:26 +0200 From: Dominik Brodowski To: Michael Monnerie , Christoph Hellwig Cc: linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804102526.GB13766@isilmar-3.linta.de> Mail-Followup-To: Dominik Brodowski , Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100804092122.GA2998@infradead.org> <201008041116.09822@zmi.at> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1280917528 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.36998 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hey, many thanks for your feedback. It seems the crypto step is the culprit: Reading 1.1 GB with dd, iflag=direct, bs=8k: /dev/sd* 35.3 MB/s ( 90 %) /dev/md* 39.1 MB/s (100 %) /dev/mapper/md*_crypt 3.9 MB/s ( 10 %) /dev/mapper/vg1-* 3.9 MB/s ( 10 %) The "good" news: it also happens on my notebook, even though it has a different setup (no raid, disk -> lv/vg -> crypt). On my notebook, I'm more than happy to test out different kernel versions, patches etc. /dev/sd* 17.7 MB/s (100 %) /dev/mapper/vg1-* 16.2 MB/s ( 92 %) /dev/mapper/*_crypt 3.1 MB/s ( 18 %) On a different system, a friend of mine reported (with 2.6.33): /dev/sd* 51.9 MB/s (100 %) dm-crypt 32.9 MB/s ( 64 %) This shows that the speed drop when using dmcrypt is not always a factor of 5 to 10... Btw, it occurs both with aes-lrw-benbi and aes-cbc-essiv:sha256 , and (on my notebook) the CPU is mostly idling or waiting. Best, Dominik PS: Bonnie output: Writing intelligently...done Rewriting...done Reading intelligently...done start 'em...done...done...done... Create files in sequential order...done. Stat files in sequential order...done. Delete files in sequential order...done. Create files in random order...done. Stat files in random order...done. Delete files in random order...done. Version 1.03d ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP ABCABCABCABCABC 16G 60186 4 24796 4 53386 5 281.1 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 3176 16 +++++ +++ 4641 28 5501 20 +++++ +++ 2286 9 ABCABCABCABCABCABC,16G,,,60186,4,24796,4,,,53386,5,281.1,1,16,3176,16,+++++,+++,4641,28,5501,20,+++++,+++,2286,9 From BATV+5b0c3c5db7a982429319+2537+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 4 06:17:50 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74BHnRO030398 for ; Wed, 4 Aug 2010 06:17:50 -0500 X-ASG-Debug-ID: 1280921172-21c801490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F00D911CBEC1 for ; Wed, 4 Aug 2010 04:26:12 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 5JMVqVyas9XHe7wn for ; Wed, 04 Aug 2010 04:26:12 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Ogbz1-0005Jl-M9; Wed, 04 Aug 2010 11:18:03 +0000 Date: Wed, 4 Aug 2010 07:18:03 -0400 From: Christoph Hellwig To: Dominik Brodowski , Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804111803.GA32643@infradead.org> References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100804102526.GB13766@isilmar-3.linta.de> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1280921172 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 12:25:26PM +0200, Dominik Brodowski wrote: > Hey, > > many thanks for your feedback. It seems the crypto step is the culprit: > > Reading 1.1 GB with dd, iflag=direct, bs=8k: > > /dev/sd* 35.3 MB/s ( 90 %) > /dev/md* 39.1 MB/s (100 %) > /dev/mapper/md*_crypt 3.9 MB/s ( 10 %) > /dev/mapper/vg1-* 3.9 MB/s ( 10 %) > > The "good" news: it also happens on my notebook, even though it has a > different setup (no raid, disk -> lv/vg -> crypt). On my notebook, I'm > more than happy to test out different kernel versions, patches etc. > > /dev/sd* 17.7 MB/s (100 %) > /dev/mapper/vg1-* 16.2 MB/s ( 92 %) > /dev/mapper/*_crypt 3.1 MB/s ( 18 %) The good news is that you have it tracked down, the bad news is that I know very little about dm-crypt. Maybe the issue is the single threaded decryption in dm-crypt? Can you check how much CPU time the dm crypt kernel thread uses? From linux@dominikbrodowski.net Wed Aug 4 06:24:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74BOAjC030570 for ; Wed, 4 Aug 2010 06:24:10 -0500 X-ASG-Debug-ID: 1280921069-2a5f006f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE8C64932EC for ; Wed, 4 Aug 2010 04:24:30 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id jlJCtIzn51uxKctK for ; Wed, 04 Aug 2010 04:24:30 -0700 (PDT) Received: (qmail 6102 invoked by uid 1000); 4 Aug 2010 11:24:28 -0000 Date: Wed, 4 Aug 2010 13:24:28 +0200 From: Dominik Brodowski To: Christoph Hellwig Cc: Michael Monnerie , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804112428.GA5462@isilmar-3.linta.de> Mail-Followup-To: Dominik Brodowski , Christoph Hellwig , Michael Monnerie , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <20100804111803.GA32643@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100804111803.GA32643@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1280921070 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37001 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 07:18:03AM -0400, Christoph Hellwig wrote: > On Wed, Aug 04, 2010 at 12:25:26PM +0200, Dominik Brodowski wrote: > > Hey, > > > > many thanks for your feedback. It seems the crypto step is the culprit: > > > > Reading 1.1 GB with dd, iflag=direct, bs=8k: > > > > /dev/sd* 35.3 MB/s ( 90 %) > > /dev/md* 39.1 MB/s (100 %) > > /dev/mapper/md*_crypt 3.9 MB/s ( 10 %) > > /dev/mapper/vg1-* 3.9 MB/s ( 10 %) > > > > The "good" news: it also happens on my notebook, even though it has a > > different setup (no raid, disk -> lv/vg -> crypt). On my notebook, I'm > > more than happy to test out different kernel versions, patches etc. > > > > /dev/sd* 17.7 MB/s (100 %) > > /dev/mapper/vg1-* 16.2 MB/s ( 92 %) > > /dev/mapper/*_crypt 3.1 MB/s ( 18 %) > > The good news is that you have it tracked down, the bad news is that > I know very little about dm-crypt. Maybe the issue is the single > threaded decryption in dm-crypt? Can you check how much CPU time > the dm crypt kernel thread uses? 2 CPUs overall: Cpu(s): 1.0%us, 5.7%sy, 0.0%ni, 44.8%id, 47.0%wa, 0.0%hi, 1.5%si, 0.0%st Thanks & best, Dominik From swmike@swm.pp.se Wed Aug 4 06:52:45 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74Bqj5f032262 for ; Wed, 4 Aug 2010 06:52:45 -0500 X-ASG-Debug-ID: 1280922784-163e020a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from uplift.swm.pp.se (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 614431E3D32E for ; Wed, 4 Aug 2010 04:53:04 -0700 (PDT) Received: from uplift.swm.pp.se (swm.pp.se [212.247.200.143]) by cuda.sgi.com with ESMTP id rKoxrBR5RM9rFA4a for ; Wed, 04 Aug 2010 04:53:04 -0700 (PDT) Received: by uplift.swm.pp.se (Postfix, from userid 501) id 3715E9F; Wed, 4 Aug 2010 13:53:03 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id 35E5B9C; Wed, 4 Aug 2010 13:53:03 +0200 (CEST) Date: Wed, 4 Aug 2010 13:53:03 +0200 (CEST) From: Mikael Abrahamsson To: Christoph Hellwig cc: Dominik Brodowski , Michael Monnerie , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs In-Reply-To: <20100804111803.GA32643@infradead.org> Message-ID: References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <20100804111803.GA32643@infradead.org> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) Organization: People's Front Against WWW MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: swm.pp.se[212.247.200.143] X-Barracuda-Start-Time: 1280922785 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37004 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 4 Aug 2010, Christoph Hellwig wrote: > The good news is that you have it tracked down, the bad news is that I > know very little about dm-crypt. Maybe the issue is the single threaded > decryption in dm-crypt? Can you check how much CPU time the dm crypt > kernel thread uses? I'm not sure it's that. I have a Core i5 with AES-NI and that didn't significantly increase my overall performance, as it's not there the bottleneck is (at least in my system). I earlier sent out an email wondering if someone could shed some light on how scheduling, block caching and read-ahead works together when one does disks->md->crypto->lvm->fs, becase that's a lot of layers and potentially a lot of unneeded buffering, readahead and scheduling magic? -- Mikael Abrahamsson email: swmike@swm.pp.se From elopez@dciphi.uhu.es Wed Aug 4 07:29:46 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.3 required=5.0 tests=BAYES_60,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74CTjUk033271 for ; Wed, 4 Aug 2010 07:29:46 -0500 X-ASG-Debug-ID: 1280925004-5da200140000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ironport.uhu.es (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 77DF21E3D8DC for ; Wed, 4 Aug 2010 05:30:04 -0700 (PDT) Received: from ironport.uhu.es (relay.uhu.es [150.214.167.14]) by cuda.sgi.com with ESMTP id wjyBFQcukn7l1MWX for ; Wed, 04 Aug 2010 05:30:04 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuoEAI4i50vAqAM3/2dsb2JhbACRVo0vu1mCaoIrBA X-IronPort-AV: E=Sophos;i="4.55,315,1278280800"; d="scan'208";a="13617877" Received: from sirio5.uhu.es (HELO sirio05) ([192.168.3.55]) by relay.uhu.es with ESMTP; 04 Aug 2010 14:30:04 +0200 Received: from [127.0.0.1] (helo=correo.uhu.es) by sirio05 with esmtp (Exim 4.50) id 1Ogbzs-0004vD-13; Wed, 04 Aug 2010 13:18:56 +0200 Received: from 189.254.237.178 (proxying for 93.186.164.42) (SquirrelMail authenticated user elopez) by correo.uhu.es with HTTP; Wed, 4 Aug 2010 13:18:56 +0200 (CEST) Message-ID: <36195.189.254.237.178.1280920736.squirrel@correo.uhu.es> Date: Wed, 4 Aug 2010 13:18:56 +0200 (CEST) X-ASG-Orig-Subj: Web-Mail-Quote =?iso-8859-1?Q?erh=F6hen?= Subject: Web-Mail-Quote =?iso-8859-1?Q?erh=F6hen?= From: "Localhost" To: webmaster@localhost.de User-Agent: SquirrelMail/1.4.4 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Barracuda-Connect: relay.uhu.es[150.214.167.14] X-Barracuda-Start-Time: 1280925005 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0856 1.0000 -1.4796 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.98 X-Barracuda-Spam-Status: No, SCORE=-0.98 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37006 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Ihre Webmail-Quote hat die Menge, die Quote 5GB überschritten wird. Sie sind derzeit auf 4.8GB. Um wieder zu aktivieren und steigern Sie Ihre Webmail-Quote klicken Sie bitte auf den untenstehenden Link. https://www.hotforms123.com/Forms_ResponsePages/emailForm.aspx?id=03fcf0b1-1e0c-4084-9682-0b73c54698ff_100_400_700 Andernfalls kann die Löschung Ihrer Webmail-Accounts führen. Vielen Dank und sorry für die Unannehmlichkeiten Localhost From msnitzer@redhat.com Wed Aug 4 07:57:42 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74CvfSb034042 for ; Wed, 4 Aug 2010 07:57:41 -0500 X-ASG-Debug-ID: 1280927165-6f6e01020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 73DE115D0478 for ; Wed, 4 Aug 2010 06:06:05 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id vj3WzoTl3An5KA3U for ; Wed, 04 Aug 2010 06:06:05 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o74CucPD021728 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 4 Aug 2010 08:56:38 -0400 Received: from localhost (dhcp-100-19-150.bos.redhat.com [10.16.19.150]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o74CuVs6032128 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 4 Aug 2010 08:56:32 -0400 Date: Wed, 4 Aug 2010 08:56:31 -0400 From: Mike Snitzer To: Mikael Abrahamsson Cc: Christoph Hellwig , device-mapper development , Michael Monnerie , linux-kernel@vger.kernel.org, Andi Kleen , Dominik Brodowski , xfs@oss.sgi.com, linux-raid@vger.kernel.org X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100804125631.GC17263@redhat.com> References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <20100804111803.GA32643@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-12-10) X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1280927165 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04 2010 at 7:53am -0400, Mikael Abrahamsson wrote: > On Wed, 4 Aug 2010, Christoph Hellwig wrote: > > >The good news is that you have it tracked down, the bad news is > >that I know very little about dm-crypt. Maybe the issue is the > >single threaded decryption in dm-crypt? Can you check how much > >CPU time the dm crypt kernel thread uses? > > I'm not sure it's that. I have a Core i5 with AES-NI and that didn't > significantly increase my overall performance, as it's not there the > bottleneck is (at least in my system). You could try applying both of these patches that are pending review for hopeful inclussion in 2.6.36: https://patchwork.kernel.org/patch/103404/ https://patchwork.kernel.org/patch/112657/ From sbrodsky@sgi.com Wed Aug 4 09:16:59 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_FRT_FREE autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74EGxOa036181 for ; Wed, 4 Aug 2010 09:16:59 -0500 Received: from CF--AMER002E--3.americas.sgi.com (cf--amer002e--3.americas.sgi.com [137.38.100.6]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3EFD1AC002 for ; Wed, 4 Aug 2010 07:17:17 -0700 (PDT) Received: from [128.162.232.29] ([128.162.232.29]) by CF--AMER002E--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 4 Aug 2010 09:16:44 -0500 Subject: [PATCH v3] xfs: ensure f_ffree returned by statfs() is non-negative From: Stuart Brodsky To: xfs@oss.sgi.com Content-Type: text/plain; charset="UTF-8" Date: Wed, 04 Aug 2010 09:15:59 -0500 Message-ID: <1280931359.12084.2519.camel@superior.americas.sgi.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.2 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 04 Aug 2010 14:16:44.0938 (UTC) FILETIME=[AAF94EA0:01CB33DF] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Because of delayed updates to sb_icount field in the super block, it is possible to allocate over maxicount number of inodes. This causes the arithmetic to calculate a negative number of free inodes in user commands like df or stat -f. Since maxicount is a somewhat arbitrary number, a slight over allocation is not critical but user commands should be displayed as 0 or greater and never go negative. To do this the value in the stats buffer f_ffree is capped to never go negative. Signed-off-by: Stu Brodsky --- a/fs/xfs/linux-2.6/xfs_super.c.orig 2010-07-20 06:06:19.269572013-0500 +++ b/fs/xfs/linux-2.6/xfs_super.c 2010-07-20 08:09:17.773570840 -0500 @@ -1226,6 +1226,7 @@ struct xfs_inode *ip = XFS_I(dentry->d_inode); __uint64_t fakeinos, id; xfs_extlen_t lsize; + __int64_t ffree; statp->f_type = XFS_SB_MAGIC; statp->f_namelen = MAXNAMELEN - 1; @@ -1249,7 +1250,9 @@ statp->f_files = min_t(typeof(statp->f_files), statp->f_files, mp->m_maxicount); - statp->f_ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); + ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); + statp->f_ffree = (__u64) (ffree < 0 ? 0 : ffree); + spin_unlock(&mp->m_sb_lock); if ((ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) || -- Stuart Brodsky 2750 Blue Water Road Eagan, MN. 55121 651-683-7910 From cmm@us.ibm.com Wed Aug 4 09:55:59 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74EtxIp037429 for ; Wed, 4 Aug 2010 09:55:59 -0500 X-ASG-Debug-ID: 1280933779-5578010a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e9.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B63A493E46 for ; Wed, 4 Aug 2010 07:56:19 -0700 (PDT) Received: from e9.ny.us.ibm.com (e9.ny.us.ibm.com [32.97.182.139]) by cuda.sgi.com with ESMTP id v2A3GHvZ1FxJJQvn for ; Wed, 04 Aug 2010 07:56:19 -0700 (PDT) Received: from d01relay01.pok.ibm.com (d01relay01.pok.ibm.com [9.56.227.233]) by e9.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id o74EdFmG020406 for ; Wed, 4 Aug 2010 10:39:15 -0400 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d01relay01.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o74EuFV7385956 for ; Wed, 4 Aug 2010 10:56:16 -0400 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o74Eu24f028801 for ; Wed, 4 Aug 2010 08:56:03 -0600 Received: from [9.65.196.163] (sig-9-65-196-163.mts.ibm.com [9.65.196.163]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o74Eu0i4027480; Wed, 4 Aug 2010 08:56:01 -0600 X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO From: Mingming Cao To: Dave Chinner Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net In-Reply-To: <20100804033718.GU7362@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <1280880678.2334.27.camel@mingming-laptop> <20100804033718.GU7362@dastard> Content-Type: text/plain; charset="UTF-8" Date: Wed, 04 Aug 2010 07:55:52 -0700 Message-ID: <1280933752.4676.6.camel@mingming-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e9.ny.us.ibm.com[32.97.182.139] X-Barracuda-Start-Time: 1280933779 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37016 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2010-08-04 at 13:37 +1000, Dave Chinner wrote: > On Tue, Aug 03, 2010 at 05:11:18PM -0700, Mingming Cao wrote: > > On Fri, 2010-07-30 at 08:45 +1000, Dave Chinner wrote: > > > From: Dave Chinner > > > > > > If we get two unaligned direct IO's to the same filesystem block > > > that is marked as a new allocation (i.e. buffer_new), then both IOs will > > > zero the portion of the block they are not writing data to. As a > > > result, when the IOs complete there will be a portion of the block > > > that contains zeros from the last IO to complete rather than the > > > data that should be there. > > > > > > This is easily manifested by qemu using aio+dio with an unaligned > > > guest filesystem - every IO is unaligned and fileystem corruption is > > > encountered in the guest filesystem. xfstest 240 (from Eric Sandeen) > > > is also a simple reproducer. > > > > > > To avoid this problem, track unaligned IO that triggers sub-block zeroing and > > > check new incoming unaligned IO that require sub-block zeroing against that > > > list. If we get an overlap where the start and end of unaligned IOs hit the > > > same filesystem block, then we need to block the incoming IOs until the IO that > > > is zeroing the block completes. The blocked IO can then continue without > > > needing to do any zeroing and hence won't overwrite valid data with zeros. > > > > > > > This seems to address both two IOs are unaligned direct IO. If the first > > IO is aligned direct IO, then it is not tracked? > > > > I am also concerned about the aligned direct IO case... > > > > 1) first thread aio+dio+aligned write to a hole, there is no zero-out > > submitted from kernel. But the hole remains initialized before all IO > > complete and convert it from uninitialized extent to initialized. > > 2) second thread aio+dio+unalign write to the same hole, this time it is > > unaligned. since buffer is still new (not converted yet), the new > > incoming thread zero out port of data that first thread has written to > > That is clearly and unmistakably an application bug - it should not > be issuing concurrent, overlapping IO to the same block(s) > regardless of whether they are unaligned, aligned or a mixture of > both. By using direct IO, the application has assumed responsibility > for preventing data corruption due to overlapping IOs - they are > inherently racy and nothing in the dio code prevents that from > occurring. > while there are multiple applications running on the same filesystem, they could possible touching the same files concurrently. How could applications know there is other apps to change the same file at the same time? > The bug I'm fixing is for *non-overlapping* concurrent unaligned IOs > where the kernel direct IO code causes the data corruption, not the > application. The application is not doing something stupid, and as > such needs to be fixed. > For the case I refering to here, it's the kernel direct IO who zero out the block for 2). The application did 2) did not do zero-out it self, but it will result in loose data the application write in 1). It's the same as what you are trying to fix. Mingming From ibmirkin@gmail.com Wed Aug 4 10:39:44 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74FdhAL038686 for ; Wed, 4 Aug 2010 10:39:44 -0500 X-ASG-Debug-ID: 1280936403-557803390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pv0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4F39649417A for ; Wed, 4 Aug 2010 08:40:03 -0700 (PDT) Received: from mail-pv0-f181.google.com (mail-pv0-f181.google.com [74.125.83.181]) by cuda.sgi.com with ESMTP id IaokGv5p7gbzBOl2 for ; Wed, 04 Aug 2010 08:40:03 -0700 (PDT) Received: by pvg2 with SMTP id 2so2862822pvg.26 for ; Wed, 04 Aug 2010 08:40:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=25lfVwAXQt0SRlUohKEifilY/TGgw6seVBFNPMyHC2A=; b=vpol0j2VtkZCFJBxUimh9zooQK3u+6neffGS/tszmUy07g2PR04jAVJFle8cnPg7nh 3TvvRONJF9gNsWi/zxLtRiAJvGYYC/B0YnX3VGV+JOleMExAvmQoAqKWl6cUSRvDUe9g fHErgD1Rysh3NHXPVnY+oVWn9GabZd14A3d9A= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=VDhXK4X61C2UQqDEhGvRDLQOv4qADhcioe/AKCOF7upNejczBR8CPOn+G9Mljoy5vU ZXjjhTaEkiminvqi2oBG0iOU42IKNVg/3fH0Aw3MRbKYa4uAkL2JGmRUM5pfO6TWHMy8 m9o6OPtNLpC5BeN/YXwiO3Yw05XRjSSaGxp7U= MIME-Version: 1.0 Received: by 10.142.48.6 with SMTP id v6mr7960140wfv.96.1280936403284; Wed, 04 Aug 2010 08:40:03 -0700 (PDT) Sender: ibmirkin@gmail.com Received: by 10.220.166.76 with HTTP; Wed, 4 Aug 2010 08:40:02 -0700 (PDT) In-Reply-To: <20100804065347.GZ7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100804004746.GT7362@dastard> <20100804042725.GX7362@dastard> <20100804065347.GZ7362@dastard> Date: Wed, 4 Aug 2010 11:40:02 -0400 X-Google-Sender-Auth: uQrRUsFLS9ilh0UFKX60Z-0HiuY Message-ID: X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel From: Ilia Mirkin To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-pv0-f181.google.com[74.125.83.181] X-Barracuda-Start-Time: 1280936404 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37018 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 4, 2010 at 2:53 AM, Dave Chinner wrote: > On Wed, Aug 04, 2010 at 12:39:08AM -0400, Ilia Mirkin wrote: >> On Wed, Aug 4, 2010 at 12:27 AM, Dave Chinner wrot= e: >> > On Tue, Aug 03, 2010 at 09:15:53PM -0400, Ilia Mirkin wrote: >> >> On Tue, Aug 3, 2010 at 8:47 PM, Dave Chinner wr= ote: >> >> > Ilia, >> >> > >> >> > Can you send me the output of this for your kernel that the >> >> > traces came from: >> >> > >> >> > $ gdb >> >> > (gdb) l *( xfs_write+0x2cc) >> >> > >> >> > You can run it against the vmlinux file in the kernel build >> >> > directory. =A0Basically I need to know which xfs_ilock() call in >> >> > xfs_write() one of the mysqld-test processes is stuck on. >> >> >> >> No problem - BTW, I'm running this on a 2.6.33.3 kernel (same as the >> >> one before, although diff hardware). If you want (and are fine with m= e >> >> "destroying" the current state), I can upgrade it to a kernel of your >> >> choice and repeat the test overnight. >> >> >> >> Naturally I didn't have CONFIG_DEBUG_INFO in there... just changed >> >> that to Y and recompiled. I'm not entirely sure that this preserves >> >> all the offsets, but at least the BUG-HUNTING doc makes allusions tha= t >> >> it would. >> >> >> >> (gdb) l *( xfs_write+0x2cc) >> >> 0xffffffff8124342d is in xfs_write (fs/xfs/linux-2.6/xfs_lrw.c:597). >> >> 592 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (!need_i_mutex && (map= ping->nrpages || pos >> >> > xip->i_size)) { >> >> 593 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 xfs_iunlo= ck(xip, XFS_ILOCK_EXCL|iolock); >> >> 594 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 iolock = =3D XFS_IOLOCK_EXCL; >> >> 595 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 need_i_mu= tex =3D 1; >> >> 596 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mutex_loc= k(&inode->i_mutex); >> >> 597 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 xfs_ilock= (xip, XFS_ILOCK_EXCL|iolock); >> > >> > Make sense. Can you run 'l *(xfs_ilock+0x2c)' as well? I just need to >> > confirm which lock it has blocked on. >> >> (gdb) l *(xfs_ilock+0x2c) >> 0xffffffff81221001 is in xfs_ilock (fs/xfs/linux-2.6/mrlock.h:48). >> 43 =A0 =A0 =A0 =A0 =A0 =A0 =A0down_read_nested(&mrp->mr_lock, subclass); >> 44 =A0 =A0 =A0} >> 45 >> 46 =A0 =A0 =A0static inline void mrupdate_nested(mrlock_t *mrp, int subc= lass) >> 47 =A0 =A0 =A0{ >> 48 =A0 =A0 =A0 =A0 =A0 =A0 =A0down_write_nested(&mrp->mr_lock, subclass)= ; >> 49 =A0 =A0 =A0#ifdef DEBUG >> 50 =A0 =A0 =A0 =A0 =A0 =A0 =A0mrp->mr_writer =3D 1; >> 51 =A0 =A0 =A0#endif >> 52 =A0 =A0 =A0} > > OK, that doesn't help - it followed into the inline function > rather than telling me which of the two calls in the function it > was. I guess I'll need the disassembly output to work it out. > Can you send the output of "disass xfs_ilock" instead? Thanks. Looks like it's the first one. (gdb) disass xfs_ilock Dump of assembler code for function xfs_ilock: 0xffffffff81220fd5 : push %rbp 0xffffffff81220fd6 : test $0x1,%sil 0xffffffff81220fda : mov %rsp,%rbp 0xffffffff81220fdd : push %r14 0xffffffff81220fdf : push %r13 0xffffffff81220fe1 : mov %rdi,%r13 0xffffffff81220fe4 : push %r12 0xffffffff81220fe6 : mov %esi,%r12d 0xffffffff81220fe9 : push %rbx 0xffffffff81220fea : je 0xffffffff81221003 0xffffffff81220fec : and $0xff0000,%esi 0xffffffff81220ff2 : lea 0xe8(%rdi),%rdi 0xffffffff81220ff9 : shr $0x10,%esi 0xffffffff81220ffc : callq 0xffffffff8105b725 0xffffffff81221001 : jmp 0xffffffff8122101e 0xffffffff81221003 : test $0x2,%sil 0xffffffff81221007 : je 0xffffffff8122101e 0xffffffff81221009 : and $0xff0000,%esi 0xffffffff8122100f : lea 0xe8(%rdi),%rdi 0xffffffff81221016 : shr $0x10,%esi 0xffffffff81221019 : callq 0xffffffff8105b792 0xffffffff8122101e : test $0x4,%r12b 0xffffffff81221022 : je 0xffffffff81221038 0xffffffff81221024 : mov %r12d,%esi 0xffffffff81221027 : lea 0x88(%r13),%rdi 0xffffffff8122102e : shr $0x18,%esi 0xffffffff81221031 : callq 0xffffffff8105b725 0xffffffff81221036 : jmp 0xffffffff81221050 0xffffffff81221038 : test $0x8,%r12b 0xffffffff8122103c : je 0xffffffff81221050 0xffffffff8122103e : mov %r12d,%esi 0xffffffff81221041 : lea 0x88(%r13),%rdi 0xffffffff81221048 : shr $0x18,%esi 0xffffffff8122104b : callq 0xffffffff8105b792 0xffffffff81221050 : cmpl $0x0,0x863891(%rip) # 0xffffffff81a848e8 0xffffffff81221057 : mov 0x8(%rbp),%r14 0xffffffff8122105b : je 0xffffffff8122107e 0xffffffff8122105d : mov 0x86389c(%rip),%rbx # 0xffffffff81a84900 0xffffffff81221064 : test %rbx,%rbx 0xffffffff81221067 : je 0xffffffff8122107e 0xffffffff81221069 : mov %r14,%rdx 0xffffffff8122106c : mov %r12d,%esi 0xffffffff8122106f : mov %r13,%rdi 0xffffffff81221072 : callq *(%rbx) 0xffffffff81221074 : add $0x8,%rbx 0xffffffff81221078 : cmpq $0x0,(%rbx) 0xffffffff8122107c : jmp 0xffffffff81221067 0xffffffff8122107e : pop %rbx 0xffffffff8122107f : pop %r12 0xffffffff81221081 : pop %r13 0xffffffff81221083 : pop %r14 0xffffffff81221085 : leaveq 0xffffffff81221086 : retq ---Type to continue, or q to quit--- End of assembler dump. From Valdis.Kletnieks@vt.edu Wed Aug 4 15:34:39 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74KYc12047601 for ; Wed, 4 Aug 2010 15:34:38 -0500 X-ASG-Debug-ID: 1280954098-314f03d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lennier.cc.vt.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E702949591B for ; Wed, 4 Aug 2010 13:34:58 -0700 (PDT) Received: from lennier.cc.vt.edu (lennier.cc.vt.edu [198.82.162.213]) by cuda.sgi.com with ESMTP id AadOuz0IKuKgApze for ; Wed, 04 Aug 2010 13:34:58 -0700 (PDT) Received: from dagger.cc.vt.edu (dagger.cc.vt.edu [198.82.163.114]) by lennier.cc.vt.edu (8.13.8/8.13.8) with ESMTP id o74KX7Xq017975; Wed, 4 Aug 2010 16:33:07 -0400 Received: from turing-police.cc.vt.edu (EHLO localhost) ([128.173.14.107]) by dagger.cc.vt.edu (MOS 4.1.8-GA FastPath queued) with ESMTP id KXD81310; Wed, 04 Aug 2010 16:33:06 -0400 (EDT) X-Mailer: exmh version 2.7.2 01/07/2005 with nmh-1.2 To: Dominik Brodowski Cc: Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs In-Reply-To: Your message of "Wed, 04 Aug 2010 12:25:26 +0200." <20100804102526.GB13766@isilmar-3.linta.de> From: Valdis.Kletnieks@vt.edu References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_1280953986_3909P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Wed, 04 Aug 2010 16:33:06 -0400 Message-ID: <15446.1280953986@localhost> X-Mirapoint-Received-SPF: 128.173.14.107 localhost Valdis.Kletnieks@vt.edu 2 pass X-Mirapoint-IP-Reputation: reputation=neutral-1, source=Fixed, refid=n/a, actions=MAILHURDLE SPF TAG X-Junkmail-Status: score=10/50, host=dagger.cc.vt.edu X-Junkmail-SD-Raw: score=unknown, refid=str=0001.0A020207.4C59CE83.0142,ss=1,fgs=0, ip=0.0.0.0, so=2009-09-22 00:05:22, dmn=2009-09-10 00:05:08, mode=single engine X-Junkmail-IWF: false X-Barracuda-Connect: lennier.cc.vt.edu[198.82.162.213] X-Barracuda-Start-Time: 1280954098 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37038 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --==_Exmh_1280953986_3909P Content-Type: text/plain; charset="us-ascii" Content-Id: <15440.1280953986.1@localhost> On Wed, 04 Aug 2010 12:25:26 +0200, Dominik Brodowski said: > The "good" news: it also happens on my notebook, even though it has a > different setup (no raid, disk -> lv/vg -> crypt). On my notebook, I'm > more than happy to test out different kernel versions, patches etc. > > /dev/sd* 17.7 MB/s (100 %) > /dev/mapper/vg1-* 16.2 MB/s ( 92 %) > /dev/mapper/*_crypt 3.1 MB/s ( 18 %) Unfortunately, on my laptop with a similar config, I'm seeing this: # dd if=/dev/sda bs=8k count=1000000 of=/dev/null 1000000+0 records in 1000000+0 records out 8192000000 bytes (8.2 GB) copied, 108.352 s, 75.6 MB/s # dd if=/dev/sda2 bs=8k count=1000000 of=/dev/null 1000000+0 records in 1000000+0 records out 8192000000 bytes (8.2 GB) copied, 105.105 s, 77.9 MB/s # dd if=/dev/mapper/vg_blackice-root bs=8k count=100000 of=/dev/null 100000+0 records in 100000+0 records out 819200000 bytes (819 MB) copied, 11.6469 s, 70.3 MB/s The raw disk, the LUKS-encrypted partition that's got a LVM on it, and a crypted LVM partition. The last run spikes both CPUs up to about 50%CPU each. So whatever it is, it's somehow more subtle than that. Maybe the fact that in my case, it's disk, crypto, and LVM on the crypted partition, rather than crypted filesystems on an LVM volume? --==_Exmh_1280953986_3909P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Exmh version 2.5 07/13/2001 iD8DBQFMWc6CcC3lWbTT17ARAiAuAKCfL5NTEQUgaL9kVy6x0SN/ryDfbgCg9vhS WfKyIOBnRrmDh2eZQDebem0= =iHTW -----END PGP SIGNATURE----- --==_Exmh_1280953986_3909P-- From neilb@suse.de Wed Aug 4 17:24:30 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o74MOT9x050339 for ; Wed, 4 Aug 2010 17:24:29 -0500 X-ASG-Debug-ID: 1280960689-4ffb01920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 50308495B50 for ; Wed, 4 Aug 2010 15:24:49 -0700 (PDT) Received: from mx1.suse.de (cantor.suse.de [195.135.220.2]) by cuda.sgi.com with ESMTP id z2AMMmyrferUQ96P for ; Wed, 04 Aug 2010 15:24:49 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id B03BE93F19; Thu, 5 Aug 2010 00:24:48 +0200 (CEST) Date: Thu, 5 Aug 2010 08:24:38 +1000 From: Neil Brown To: Mikael Abrahamsson Cc: Christoph Hellwig , Dominik Brodowski , Michael Monnerie , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100805082438.0b476adb@notabene> In-Reply-To: References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <20100804111803.GA32643@infradead.org> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Barracuda-Connect: cantor.suse.de[195.135.220.2] X-Barracuda-Start-Time: 1280960690 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 4 Aug 2010 13:53:03 +0200 (CEST) Mikael Abrahamsson wrote: > On Wed, 4 Aug 2010, Christoph Hellwig wrote: > > > The good news is that you have it tracked down, the bad news is that I > > know very little about dm-crypt. Maybe the issue is the single threaded > > decryption in dm-crypt? Can you check how much CPU time the dm crypt > > kernel thread uses? > > I'm not sure it's that. I have a Core i5 with AES-NI and that didn't > significantly increase my overall performance, as it's not there the > bottleneck is (at least in my system). > > I earlier sent out an email wondering if someone could shed some light on > how scheduling, block caching and read-ahead works together when one does > disks->md->crypto->lvm->fs, becase that's a lot of layers and potentially > a lot of unneeded buffering, readahead and scheduling magic? > Both page-cache and read-ahead work at the filesystem level, so only the device in the stack that the filesystem mounts from is relevant for these. Any read-ahead setting on other devices are ignored. Other levels only have a cache if they explicitly need one. e.g. raid5 has a stripe-cache to allow parity calculations across all blocks in a stripe. Scheduling can potentially happen at every layer, but it takes very different forms. Crypto, lvm, raid0 etc don't do any scheduling - it is just first-in-first-out. RAID5 does some scheduling for writes (but not reads) to try to gather full stripes. If you write 2 of 3 blocks in a stripe, then 3 of 3 in another stripe, the 3 of 3 will be processed immediately while the 2 of 3 might be delayed a little in the hope that the third will arrive. The sys/block/XXX/queue/scheduler setting only applies at the bottom of the stack (though when you have dm-multipath it is actually one step above the bottom). Hope that helps, NeilBrown From SRS0+jah0+66+fromorbit.com=david@internode.on.net Wed Aug 4 20:02:39 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7512cGP055067 for ; Wed, 4 Aug 2010 20:02:39 -0500 X-ASG-Debug-ID: 1280970177-40b101d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 14EF7496305 for ; Wed, 4 Aug 2010 18:02:57 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id gnggZeO5m86apioB for ; Wed, 04 Aug 2010 18:02:57 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34131778-1927428 for multiple; Thu, 05 Aug 2010 10:32:45 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Ogor4-0001tq-So; Thu, 05 Aug 2010 11:02:42 +1000 Date: Thu, 5 Aug 2010 11:02:42 +1000 From: Dave Chinner To: Mingming Cao Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, sandeen@sandeen.net X-ASG-Orig-Subj: Re: [PATCH] dio: track and serialise unaligned direct IO Subject: Re: [PATCH] dio: track and serialise unaligned direct IO Message-ID: <20100805010242.GA7362@dastard> References: <1280443516-14448-1-git-send-email-david@fromorbit.com> <1280880678.2334.27.camel@mingming-laptop> <20100804033718.GU7362@dastard> <1280933752.4676.6.camel@mingming-laptop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280933752.4676.6.camel@mingming-laptop> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1280970179 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37056 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 07:55:52AM -0700, Mingming Cao wrote: > On Wed, 2010-08-04 at 13:37 +1000, Dave Chinner wrote: > > On Tue, Aug 03, 2010 at 05:11:18PM -0700, Mingming Cao wrote: > > > This seems to address both two IOs are unaligned direct IO. If the first > > > IO is aligned direct IO, then it is not tracked? > > > > > > I am also concerned about the aligned direct IO case... > > > > > > 1) first thread aio+dio+aligned write to a hole, there is no zero-out > > > submitted from kernel. But the hole remains initialized before all IO > > > complete and convert it from uninitialized extent to initialized. > > > 2) second thread aio+dio+unalign write to the same hole, this time it is > > > unaligned. since buffer is still new (not converted yet), the new > > > incoming thread zero out port of data that first thread has written to > > > > That is clearly and unmistakably an application bug - it should not > > be issuing concurrent, overlapping IO to the same block(s) > > regardless of whether they are unaligned, aligned or a mixture of > > both. By using direct IO, the application has assumed responsibility > > for preventing data corruption due to overlapping IOs - they are > > inherently racy and nothing in the dio code prevents that from > > occurring. > > while there are multiple applications running on the same filesystem, > they could possible touching the same files concurrently. How could > applications know there is other apps to change the same file at the > same time? That's for the applications to figure out. A typical way of acheiving serialisation at application level is for all the applications doing dio to the same files is to use byte-range locking... Remember, DIO abdicates all responsibility for IO coherency to the applications. If userspace is issuing concurrent direct IOs to the same block _no matter how_, then that is an application problem, not a kernel problem. If you want the kernel to avoid overlapping DIO, then we have to track _every single DIO_. We clearly do not do that, have never done that, and no OS that implements direct IO has ever done that. It is, quite simply, not the responsibility of the kernel to prevent userspace from doing stupid stuff with DIO and it never has been. If you want POSIX IO coherency semantics, then *don't use DIO*. > > The bug I'm fixing is for *non-overlapping* concurrent unaligned IOs > > where the kernel direct IO code causes the data corruption, not the > > application. The application is not doing something stupid, and as > > such needs to be fixed. > > For the case I refering to here, it's the kernel direct IO who zero out > the block for 2). The application did 2) did not do zero-out it self, > but it will result in loose data the application write in 1). It's the > same as what you are trying to fix. No it isn't. Overlapping vs non-overlapping DIO are two very different cases. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+SSx++66+fromorbit.com=david@internode.on.net Thu Aug 5 00:45:38 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o755jbWu068343 for ; Thu, 5 Aug 2010 00:45:37 -0500 X-ASG-Debug-ID: 1280987642-46e601860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8C2D611CD9DF for ; Wed, 4 Aug 2010 22:54:03 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id qOzvQQ2V8TFHiCts for ; Wed, 04 Aug 2010 22:54:03 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34384836-1927428 for multiple; Thu, 05 Aug 2010 15:15:54 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OgtH7-0002BQ-50; Thu, 05 Aug 2010 15:45:53 +1000 Date: Thu, 5 Aug 2010 15:45:53 +1000 From: Dave Chinner To: Ilia Mirkin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel Message-ID: <20100805054553.GB7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100804004746.GT7362@dastard> <20100804042725.GX7362@dastard> <20100804065347.GZ7362@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1280987644 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37075 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 04, 2010 at 11:40:02AM -0400, Ilia Mirkin wrote: > On Wed, Aug 4, 2010 at 2:53 AM, Dave Chinner wrote: > > On Wed, Aug 04, 2010 at 12:39:08AM -0400, Ilia Mirkin wrote: > >> On Wed, Aug 4, 2010 at 12:27 AM, Dave Chinner wrote: > >> > On Tue, Aug 03, 2010 at 09:15:53PM -0400, Ilia Mirkin wrote: > >> >> On Tue, Aug 3, 2010 at 8:47 PM, Dave Chinner wrote: > >> >> > Ilia, > >> >> > > >> >> > Can you send me the output of this for your kernel that the > >> >> > traces came from: > >> >> > > >> >> > $ gdb > >> >> > (gdb) l *( xfs_write+0x2cc) > >> >> > > >> >> > You can run it against the vmlinux file in the kernel build > >> >> > directory.  Basically I need to know which xfs_ilock() call in > >> >> > xfs_write() one of the mysqld-test processes is stuck on. .... > > OK, that doesn't help - it followed into the inline function > > rather than telling me which of the two calls in the function it > > was. I guess I'll need the disassembly output to work it out. > > Can you send the output of "disass xfs_ilock" instead? Thanks. > > Looks like it's the first one. Yup, that's what it looks like to me, too. That means it's the XFS_IOLOCK_EXCL it is blocking trying to get, not the XFS_ILOCK_EXCL. Well, that makes sense, and tells me that the lockdep "held locks" output at the end also includes locks we are trying to obtain. That clears up that confusion. Ok, I'll work from there. Thanks, Ilia. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+SSx++66+fromorbit.com=david@internode.on.net Thu Aug 5 01:25:26 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o756PQDI069772 for ; Thu, 5 Aug 2010 01:25:26 -0500 X-ASG-Debug-ID: 1280989544-5c0702e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B12F41BEF9E8 for ; Wed, 4 Aug 2010 23:25:45 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id hmxEl1Ab8w1YSnZp for ; Wed, 04 Aug 2010 23:25:45 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 22493392-1927428 for multiple; Thu, 05 Aug 2010 15:55:43 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Ogtte-0002E9-1l; Thu, 05 Aug 2010 16:25:42 +1000 Date: Thu, 5 Aug 2010 16:25:41 +1000 From: Dave Chinner To: Ilia Mirkin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel Message-ID: <20100805062541.GC26402@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1280989546 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37078 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 03, 2010 at 06:30:36PM -0400, Ilia Mirkin wrote: > On Sun, Jul 18, 2010 at 7:50 PM, Dave Chinner wrote: > > On Sat, Jul 17, 2010 at 09:35:33PM -0400, Ilia Mirkin wrote: > >> On Sat, Jul 17, 2010 at 9:20 PM, Dave Chinner wrote: > >> > On Sat, Jul 17, 2010 at 12:01:11AM -0400, Ilia Mirkin wrote: > >> > I can't find a thread that holds the XFS inode lock that everything > >> > is waiting on. I think it is the ILOCK, but none of the threads in > >> > this trace should be holding it where they are blocked. IOWs, the > >> > output does not give me enough information to get to the root cause. > >> > >> In case this happens again, was there something more useful I could > >> have collected? Should I have grabbed all task states? > > > > All the task states, including the running tasks, is probably a good .... > > Though I suspect the only way to get to the bottom of it will > > be to work out a reproducable test case.... > > I felt a little bothered by this issue, so I dug in a little further. > I basically created a sample mysql, tar, and it seemed that having > memory pressure helped, so I created an allocator as well. [snip test case] Nice work. I think I see the problem, and it's not something that can be easily fixed. The test-tar process is blocked in xfs_ilock_map_shared() trying to get the ip->i_lock in exclusive mode. You have a couple of IO's waiting to complete in the xfsdatad's waiting to get the ip->i_Ilock in exclusive mode in a non-blocking fashiion: schedule_timeout schedule_timeout_uninterruptible xfs_end_io worker_thread kthread kernel_thread_helper There are test-mysqld processes stuck doing page cache invalidation, waiting for IO completion to occur (which can't occur because of the above stuck IOs). These hold the ip->i_iolock in shared mode. 2882, 2887 io_schedule sync_page lock_page invalidate_inode_pages2_range generic_file_direct_write xfs_write xfs_file_aio_write do_sync_write vfs_write sys_write There's a couple of test-mysqld processes stuck on the inode->i_mutex here: 2883, 2884, 2886, 2888, 2889, 2891 __mutex_lock_common mutex_lock_nested generic_file_llseek vfs_llseek sys_lseek and here: 2890, 2892 __mutex_lock_common mutex_lock_nested xfs_write xfs_file_aio_write do_sync_write vfs_write sys_write There's a test-mysqld process stuck waiting for either the ip->i_iolock or ip->i_ilock in exclusive mode: 2885: xfs_write+0x2cc/0x793 rwsem_down_failed_common rwsem_down_write_failed call_rwsem_down_write_failed xfs_ilock xfs_write xfs_file_aio_write do_sync_write vfs_write sys_write And then there is the test-tar process, which is blocked on the ip->i_ilock trying to get it in _shared_ mode, holding the ip->i_iolock in shared mode 2897 rwsem_down_failed_common rwsem_down_read_failed call_rwsem_down_read_failed xfs_ilock xfs_ilock_map_shared xfs_iomap __xfs_get_blocks xfs_get_blocks do_mpage_readpage mpage_readpages xfs_vm_readpages __do_page_cache_readahead ra_submit ondemand_readahead page_cache_sync_readahead generic_file_aio_read xfs_read xfs_file_aio_read do_sync_read vfs_read sys_read And a sync process stuck waiting for io completion (no locks held) xfs_ioend_wait xfs_sync_inode_data xfs_inode_ag_walk xfs_inode_ag_iterator xfs_sync_data xfs_quiesce_data xfs_fs_sync_fs sync_quota_sb __sync_filesystem sync_filesystems sys_sync So in summary, we have: 1) xfsdatad sleeping for a clock tick because it can't get the ip->i_lock(EXCL) without blocking 2) 2882, 2887 waiting for IO completion, holding ip->i_iolock(SHARED) (blocked behind #1)) 3) 2885 waiting on an ip->i_iolock(EXCL), holding the i_mutex and blocked behind #2) and #5) 4) 2883, 2884, 2886, 2888, 2889, 2891, 2890, 2892 waiting on i_mutex, blocked behind #3) 5) 2897 doing buffered read, holding ip->i_iolock(SHARED), waiting on ip->i_lock(SHARED) So, this leaves me with the question - what is holding the ip->i_ilock()? Everything is blocked waiting for it and there are no reported holders, either through stack trace analysis or from the lockdep lock holder report. I said this previously: >> > I can't find a thread that holds the XFS inode lock that everything >> > is waiting on. I think it is the ILOCK, but none of the threads in >> > this trace should be holding it where they are blocked. IOWs, the >> > output does not give me enough information to get to the root cause. And my conclusion is the same from this analysis - I cannot see why everything has stopped waiting on an ILOCK that nobody should hold and lockdep is saying that nobody does actually hold. I'm starting to suspect memory corruption or something similar that is corrupting the inode lock state, but I don't hold much hope of tracking down something like that if it takes hours to reproduce. Ilia, while I try to think of the next step to take, can you try a couple of things to see if the hang can be caused faster? Maybe trying these different initial conditions: - use a smaller test file - allocate the file with worst case fragmentation by writing it backwards in synchronous 4k blocks before running the test - preallocating the test file with fallocate() Also, it woul dbe interesting to find out if a newer kernel also hangs in a similar manner, say 2.6.35? Cheers, Dave. -- Dave Chinner david@fromorbit.com From ibmirkin@gmail.com Thu Aug 5 01:42:19 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o756gJTX070349 for ; Thu, 5 Aug 2010 01:42:19 -0500 X-ASG-Debug-ID: 1280991046-46dc02cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1087711CDF24 for ; Wed, 4 Aug 2010 23:50:46 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id ymBwEeYHQeEjRdRR for ; Wed, 04 Aug 2010 23:50:46 -0700 (PDT) Received: by vws15 with SMTP id 15so4885786vws.26 for ; Wed, 04 Aug 2010 23:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=wsu0V4E2yCBoN1qrtmYTZ7Jkqn1zWWEVQbSmIPyYMmM=; b=CM2yX+A4sQzm07DPzDyW1B17fe3zbiFQ3opqUOiGU96CNCHyAHEULrAFMGpEcQqCy0 3LGs1AcgONlcIniKYxosBS9m8k4sMQ7ewEIkvKWn6+8x180kaOryBhCeqDEu+FZQEXtR 8fxQYqrpGROaW6pUrfCGmbDxZwvNQd9P/h6VI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=lSFHCmSjCj8JIOVoKiMMszDf/3w+jNWYZ55i2TDBvwrq3tGXMO1Dr1srkPQWE8uH7S hGlRhdGrXb9kYPVdQHL2J6vAX/WKrre1Sjzo23lWSvj+45rXCOdeNdkZog9mvEmPBatn rJpP+Nj2Ryo1hR0v1LsNLH53c89rul37ieEjg= MIME-Version: 1.0 Received: by 10.220.126.129 with SMTP id c1mr6925446vcs.214.1280990558640; Wed, 04 Aug 2010 23:42:38 -0700 (PDT) Sender: ibmirkin@gmail.com Received: by 10.220.126.196 with HTTP; Wed, 4 Aug 2010 23:42:38 -0700 (PDT) In-Reply-To: <20100805062541.GC26402@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100805062541.GC26402@dastard> Date: Thu, 5 Aug 2010 02:42:38 -0400 X-Google-Sender-Auth: hmBmpxn_kjLb-LV3PT1oJUITOvU Message-ID: X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel From: Ilia Mirkin To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1280991047 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37079 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 5, 2010 at 2:25 AM, Dave Chinner wrote: > a couple of things to see if the hang can be caused faster? Maybe > trying these different initial conditions: Together or independently? > > =A0 =A0 =A0 =A0- use a smaller test file OK. My theory [based on no evidence] was that it had to be bigger than RAM size. I'll try less though. > =A0 =A0 =A0 =A0- allocate the file with worst case fragmentation by > =A0 =A0 =A0 =A0 =A0writing it backwards in synchronous 4k blocks before > =A0 =A0 =A0 =A0 =A0running the test I created the file with dd if=3D/dev/zero of=3D... bs=3D1M count=3D... How would I "write backwards"? Like truncate and then seek to the end, write, seek back, write, etc? Is there a utility that might do it already? > =A0 =A0 =A0 =A0- preallocating the test file with fallocate() Sure. > > Also, it woul dbe interesting to find out if a newer kernel also > hangs in a similar manner, say 2.6.35? Will do. --=20 Ilia Mirkin imirkin@alum.mit.edu From stan@hardwarefreak.com Thu Aug 5 03:31:27 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o758VRqi074537 for ; Thu, 5 Aug 2010 03:31:27 -0500 X-ASG-Debug-ID: 1280997107-5ac703b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 783E016A6D2A for ; Thu, 5 Aug 2010 01:31:47 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id D6SMvevTanG2A2JJ for ; Thu, 05 Aug 2010 01:31:47 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 40C306C014 for ; Thu, 5 Aug 2010 03:31:47 -0500 (CDT) Message-ID: <4C5A774D.6000400@hardwarefreak.com> Date: Thu, 05 Aug 2010 03:33:17 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <20100804111803.GA32643@infradead.org> <20100805082438.0b476adb@notabene> In-Reply-To: <20100805082438.0b476adb@notabene> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1280997108 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37086 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Neil Brown put forth on 8/4/2010 5:24 PM: > Both page-cache and read-ahead work at the filesystem level Are you referring to /sys/block/sdx/queue/read_ahead_kb? I'm pretty sure this works below the FS level and below the partition level. This read_ahead works at the block device level. At least for individual or JBOD. Are you saying this setting gets ignored by the kernel if/when mdadm, LVM, and/or crypto are used? -- Stan From linux@dominikbrodowski.net Thu Aug 5 04:30:51 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o759Uo2q076299 for ; Thu, 5 Aug 2010 04:30:51 -0500 X-ASG-Debug-ID: 1281000669-4bb800330000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C83AC1E3F60C for ; Thu, 5 Aug 2010 02:31:10 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id ZSEzcRs8PFNKFLD3 for ; Thu, 05 Aug 2010 02:31:10 -0700 (PDT) Received: (qmail 31150 invoked from network); 5 Aug 2010 09:31:07 -0000 Received: from p54a039dc.dip.t-dialin.net (HELO comet.dominikbrodowski.net) (brodo@84.160.57.220) by isilmar-3.linta.de with (DHE-RSA-AES256-SHA encrypted) SMTP; 5 Aug 2010 09:31:07 -0000 Received: by comet.dominikbrodowski.net (Postfix, from userid 1000) id 91CF480230; Thu, 5 Aug 2010 11:31:00 +0200 (CEST) Date: Thu, 5 Aug 2010 11:31:00 +0200 From: Dominik Brodowski To: Valdis.Kletnieks@vt.edu, josef@redhat.com, chris.mason@oracle.com Cc: Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805093100.GA3001@comet.dominikbrodowski.net> Mail-Followup-To: Dominik Brodowski , Valdis.Kletnieks@vt.edu, josef@redhat.com, chris.mason@oracle.com, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <15446.1280953986@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <15446.1280953986@localhost> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1281000670 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37090 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hey, when attempting to track down insufficient I/O performance, I found the following reression relating to direct-io on my notebook, where an ata device, which consists of several partitions, is combined to a lvm volume, and one logical volume is then encrypted using dm-crypt. Test case was the following command: $ dd if=/dev/mapper/vg0-root_crypt of=/dev/zero iflag=direct bs=8k count=131072 2.6.34 results in ~16 MB/s, 2.6.35 results in ~ 3.1 MB/s The regression was bisected down to the follwoing commit: commit c2c6ca417e2db7a519e6e92c82f4a933d940d076 Author: Josef Bacik Date: Sun May 23 11:00:55 2010 -0400 direct-io: do not merge logically non-contiguous requests ... How to fix this? I do not use btrfs, but ext3 (and the access was down on the block level, not on the fs level, so this btrs-related commit should not cause such a regression). Best, Dominik From chris.mason@oracle.com Thu Aug 5 06:33:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56, UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75BWxcV084794 for ; Thu, 5 Aug 2010 06:33:00 -0500 X-ASG-Debug-ID: 1281008000-4bc702b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rcsinet10.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE77C1E3F7D1 for ; Thu, 5 Aug 2010 04:33:20 -0700 (PDT) Received: from rcsinet10.oracle.com (rcsinet10.oracle.com [148.87.113.121]) by cuda.sgi.com with ESMTP id a4bcAVWLXxEC0geW for ; Thu, 05 Aug 2010 04:33:20 -0700 (PDT) Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o75BX7F9023657 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 5 Aug 2010 11:33:09 GMT Received: from acsmt354.oracle.com (acsmt354.oracle.com [141.146.40.154]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o756tglE030051; Thu, 5 Aug 2010 11:33:01 GMT Received: from abhmt013.oracle.com by acsmt355.oracle.com with ESMTP id 468671041281007963; Thu, 05 Aug 2010 04:32:43 -0700 Received: from localhost (/66.66.148.185) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 05 Aug 2010 04:32:42 -0700 Date: Thu, 5 Aug 2010 07:32:40 -0400 From: Chris Mason To: Dominik Brodowski , Valdis.Kletnieks@vt.edu, josef@redhat.com, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805113240.GA29846@think> Mail-Followup-To: Chris Mason , Dominik Brodowski , Valdis.Kletnieks@vt.edu, josef@redhat.com, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <15446.1280953986@localhost> <20100805093100.GA3001@comet.dominikbrodowski.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805093100.GA3001@comet.dominikbrodowski.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Source-IP: acsmt354.oracle.com [141.146.40.154] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090209.4C5AA172.016F:SCFMA4539814,ss=1,fgs=0 X-Barracuda-Connect: rcsinet10.oracle.com[148.87.113.121] X-Barracuda-Start-Time: 1281008000 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 05, 2010 at 11:31:00AM +0200, Dominik Brodowski wrote: > Hey, > > when attempting to track down insufficient I/O performance, I found the > following reression relating to direct-io on my notebook, where an > ata device, which consists of several partitions, is combined to a lvm > volume, and one logical volume is then encrypted using dm-crypt. Test case > was the following command: > > $ dd if=/dev/mapper/vg0-root_crypt of=/dev/zero iflag=direct bs=8k count=131072 > > 2.6.34 results in ~16 MB/s, > 2.6.35 results in ~ 3.1 MB/s > > The regression was bisected down to the follwoing commit: > > commit c2c6ca417e2db7a519e6e92c82f4a933d940d076 > Author: Josef Bacik > Date: Sun May 23 11:00:55 2010 -0400 > > direct-io: do not merge logically non-contiguous requests > > ... > > How to fix this? I do not use btrfs, but ext3 (and the access was down on > the block level, not on the fs level, so this btrs-related commit should not > cause such a regression). Well, you've already bisected down to an offending if statement, that's a huge help. I'll try to reproduce this and fix it up today. But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that seems a little high. -chris From josef@redhat.com Thu Aug 5 07:32:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75CWK8G086789 for ; Thu, 5 Aug 2010 07:32:21 -0500 X-ASG-Debug-ID: 1281011561-761c00240000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0F36D1BEFCF8 for ; Thu, 5 Aug 2010 05:32:41 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id mEHHrUbBZhAmUobA for ; Thu, 05 Aug 2010 05:32:41 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o75CWQvW031385 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 5 Aug 2010 08:32:26 -0400 Received: from dhcp231-156.rdu.redhat.com (dhcp231-156.rdu.redhat.com [10.11.231.156]) by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o75CWKxY005203; Thu, 5 Aug 2010 08:32:20 -0400 Date: Thu, 5 Aug 2010 08:36:49 -0400 From: Josef Bacik To: Chris Mason , Dominik Brodowski , Valdis.Kletnieks@vt.edu, josef@redhat.com, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805123649.GA18672@dhcp231-156.rdu.redhat.com> References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <15446.1280953986@localhost> <20100805093100.GA3001@comet.dominikbrodowski.net> <20100805113240.GA29846@think> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805113240.GA29846@think> User-Agent: Mutt/1.5.19 (2009-01-05) X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1281011562 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 05, 2010 at 07:32:40AM -0400, Chris Mason wrote: > On Thu, Aug 05, 2010 at 11:31:00AM +0200, Dominik Brodowski wrote: > > Hey, > > > > when attempting to track down insufficient I/O performance, I found the > > following reression relating to direct-io on my notebook, where an > > ata device, which consists of several partitions, is combined to a lvm > > volume, and one logical volume is then encrypted using dm-crypt. Test case > > was the following command: > > > > $ dd if=/dev/mapper/vg0-root_crypt of=/dev/zero iflag=direct bs=8k count=131072 > > > > 2.6.34 results in ~16 MB/s, > > 2.6.35 results in ~ 3.1 MB/s > > > > The regression was bisected down to the follwoing commit: > > > > commit c2c6ca417e2db7a519e6e92c82f4a933d940d076 > > Author: Josef Bacik > > Date: Sun May 23 11:00:55 2010 -0400 > > > > direct-io: do not merge logically non-contiguous requests > > > > ... > > > > How to fix this? I do not use btrfs, but ext3 (and the access was down on > > the block level, not on the fs level, so this btrs-related commit should not > > cause such a regression). > > Well, you've already bisected down to an offending if statement, that's > a huge help. I'll try to reproduce this and fix it up today. > > But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that > seems a little high. > Hrm, I made sure there were no perf regressions when I wast testing this stuff, though I think I only tested xfs and ext4. Originally I had a test where if we provided our own submit_io, so maybe as a workaround just make if (dio->final_block_in_bio != dio->cur_page_block || cur_offset != bio_next_offset) look like this if (dio->final_block_in_bio != dio->cur_page_block || (dio->submit_io && cur_offset != bio_next_offset)) and that should limit my change to only btrfs. I know why it could cause a problem, but this change shouldn't be causing a 400% regression. I suspect something else is afoot here. Thanks, Josef From linux@dominikbrodowski.net Thu Aug 5 10:35:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,FAKE_REPLY_C, J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75FZOQD092483 for ; Thu, 5 Aug 2010 10:35:24 -0500 X-ASG-Debug-ID: 1281023032-41c6013d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 464A6C4F674 for ; Thu, 5 Aug 2010 08:43:52 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id Apxr6YE0IA1tADl2 for ; Thu, 05 Aug 2010 08:43:52 -0700 (PDT) Received: (qmail 5831 invoked from network); 5 Aug 2010 15:35:41 -0000 Received: from p54a02077.dip.t-dialin.net (HELO comet.dominikbrodowski.net) (brodo@84.160.32.119) by isilmar-3.linta.de with (DHE-RSA-AES256-SHA encrypted) SMTP; 5 Aug 2010 15:35:41 -0000 Received: by comet.dominikbrodowski.net (Postfix, from userid 1000) id EF95780232; Thu, 5 Aug 2010 17:35:19 +0200 (CEST) Date: Thu, 5 Aug 2010 17:35:19 +0200 From: Dominik Brodowski To: Chris Mason , josef@redhat.com Cc: Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805153519.GA7242@comet.dominikbrodowski.net> Mail-Followup-To: Dominik Brodowski , Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805123649.GA18672@dhcp231-156.rdu.redhat.com> <20100805113240.GA29846@think> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1281023034 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37115 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hey, On Thu, Aug 05, 2010 at 07:32:40AM -0400, Chris Mason wrote: > But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that > seems a little high. Well, that's what it does: # $ dd if=/dev/mapper/vg0-home_crypt of=/dev/zero iflag=direct bs=8k count=131072 seek=131072 # 131072+0 records in # 131072+0 records out # 1073741824 bytes (1.1 GB) copied, 62.0177 s, 17.3 MB/s On Thu, Aug 05, 2010 at 08:36:49AM -0400, Josef Bacik wrote: > Hrm, I made sure there were no perf regressions when I wast testing this stuff, > though I think I only tested xfs and ext4. For this test, I'm not doing dio on filesystem level, but on block level (/dev/mapper/vg0-*_crypt). It seems that dm-crypt creates such offending holes, which cause this huge performance drop. > Originally I had a test where if we > provided our own submit_io, so maybe as a workaround just make > > if (dio->final_block_in_bio != dio->cur_page_block || > cur_offset != bio_next_offset) > > look like this > > if (dio->final_block_in_bio != dio->cur_page_block || > (dio->submit_io && cur_offset != bio_next_offset)) Tested-by: Dominik Brodowski With this fix, I get proper speeds when doing dio reads from /dev/mapper/vg0-*_crypt; see the 17.3 MB/s above. Most strangely, also accesing /dev/mapper/vg0-* (un-encrypted) and the raw device at /dev/sda* speeds up (to up to 28 MB/s). Was only seeing around 16 to 18 MB/s without this patch for unencrypted access. > I know why it could cause a problem, but this change shouldn't be > causing a 400% regression. Well, it seems to cause -- at least on my notebook -- a 150% regression on unencrypted LVM2 access; and this > 400% on encrypted LVM2 access... > I suspect something else is afoot here. There is, probably. But the fix you propose helps a lot, already. Thanks & best, Dominik From chris.mason@oracle.com Thu Aug 5 10:40:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56, UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75Fe5er092604 for ; Thu, 5 Aug 2010 10:40:05 -0500 X-ASG-Debug-ID: 1281022825-4a6701cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rcsinet10.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5E7C8498CF5 for ; Thu, 5 Aug 2010 08:40:25 -0700 (PDT) Received: from rcsinet10.oracle.com (rcsinet10.oracle.com [148.87.113.121]) by cuda.sgi.com with ESMTP id LwWAFLOtOipQZQyx for ; Thu, 05 Aug 2010 08:40:25 -0700 (PDT) Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o75Fe5Gt018739 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 5 Aug 2010 15:40:06 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by rcsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o75Fe3mv031334; Thu, 5 Aug 2010 15:40:03 GMT Received: from abhmt019.oracle.com by acsmt353.oracle.com with ESMTP id 488128011281022787; Thu, 05 Aug 2010 08:39:47 -0700 Received: from localhost (/66.66.148.185) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 05 Aug 2010 08:39:44 -0700 Date: Thu, 5 Aug 2010 11:39:43 -0400 From: Chris Mason To: Dominik Brodowski , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805153943.GO29846@think> Mail-Followup-To: Chris Mason , Dominik Brodowski , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100805123649.GA18672@dhcp231-156.rdu.redhat.com> <20100805113240.GA29846@think> <20100805153519.GA7242@comet.dominikbrodowski.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805153519.GA7242@comet.dominikbrodowski.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Source-IP: acsmt353.oracle.com [141.146.40.153] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090201.4C5ADB55.007B:SCFMA4539814,ss=1,fgs=0 X-Barracuda-Connect: rcsinet10.oracle.com[148.87.113.121] X-Barracuda-Start-Time: 1281022826 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37114 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 05, 2010 at 05:35:19PM +0200, Dominik Brodowski wrote: > Hey, > > On Thu, Aug 05, 2010 at 07:32:40AM -0400, Chris Mason wrote: > > But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that > > seems a little high. > > Well, that's what it does: > > # $ dd if=/dev/mapper/vg0-home_crypt of=/dev/zero iflag=direct bs=8k count=131072 seek=131072 > # 131072+0 records in > # 131072+0 records out > # 1073741824 bytes (1.1 GB) copied, 62.0177 s, 17.3 MB/s Can I ask you to do the test directly to the real honest to goodness drive? If it were an SSD I'd be less surprised, but then the extra submits shouldn't hurt the ssd that much either. Thanks for testing the patch, I'll send it in. -chris From linux@dominikbrodowski.net Thu Aug 5 10:53:51 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_42, J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75Frott093102 for ; Thu, 5 Aug 2010 10:53:51 -0500 X-ASG-Debug-ID: 1281024139-41db025a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1B7DDC4FA52 for ; Thu, 5 Aug 2010 09:02:20 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id dLDlEfx33oYkC0Ie for ; Thu, 05 Aug 2010 09:02:20 -0700 (PDT) Received: (qmail 9952 invoked from network); 5 Aug 2010 15:54:07 -0000 Received: from p54a02077.dip.t-dialin.net (HELO comet.dominikbrodowski.net) (brodo@84.160.32.119) by isilmar-3.linta.de with (DHE-RSA-AES256-SHA encrypted) SMTP; 5 Aug 2010 15:54:07 -0000 Received: by comet.dominikbrodowski.net (Postfix, from userid 1000) id 1958280230; Thu, 5 Aug 2010 17:53:57 +0200 (CEST) Date: Thu, 5 Aug 2010 17:53:57 +0200 From: Dominik Brodowski To: Chris Mason Cc: josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805155357.GA8245@comet.dominikbrodowski.net> Mail-Followup-To: Dominik Brodowski , Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100805123649.GA18672@dhcp231-156.rdu.redhat.com> <20100805113240.GA29846@think> <20100805153519.GA7242@comet.dominikbrodowski.net> <20100805153943.GO29846@think> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805153943.GO29846@think> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1281024141 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37115 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 05, 2010 at 11:39:43AM -0400, Chris Mason wrote: > On Thu, Aug 05, 2010 at 05:35:19PM +0200, Dominik Brodowski wrote: > > On Thu, Aug 05, 2010 at 07:32:40AM -0400, Chris Mason wrote: > > > But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that > > > seems a little high. > > > > Well, that's what it does: > > > > # $ dd if=/dev/mapper/vg0-home_crypt of=/dev/zero iflag=direct bs=8k count=131072 seek=131072 > > # 131072+0 records in > > # 131072+0 records out > > # 1073741824 bytes (1.1 GB) copied, 62.0177 s, 17.3 MB/s > > Can I ask you to do the test directly to the real honest to goodness > drive? If it were an SSD I'd be less surprised, but then the extra > submits shouldn't hurt the ssd that much either. >From lower the chain up to the device: # LANG=EN dd if=/dev/mapper/vg0-root_crypt of=/dev/zero bs=8k count=131072 seek=393300 iflag=direct 131072+0 records in 131072+0 records out 1073741824 bytes (1.1 GB) copied, 63.1217 s, 17.0 MB/s # LANG=EN dd if=/dev/mapper/vg0-root of=/dev/zero bs=8k count=131072 seek=393300 iflag=direct 131072+0 records in 131072+0 records out 1073741824 bytes (1.1 GB) copied, 43.2335 s, 24.8 MB/s # LANG=EN dd if=/dev/sda5 of=/dev/zero bs=8k count=131072 seek=393300 iflag=direct 131072+0 records in 131072+0 records out 1073741824 bytes (1.1 GB) copied, 42.0868 s, 25.5 MB/s Best, Dominik From linux@dominikbrodowski.net Thu Aug 5 11:35:06 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75GZ6eK094317 for ; Thu, 5 Aug 2010 11:35:06 -0500 X-ASG-Debug-ID: 1281026126-4a8b03930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5F7C449931F for ; Thu, 5 Aug 2010 09:35:26 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id QHcP1AArGuD5SODv for ; Thu, 05 Aug 2010 09:35:26 -0700 (PDT) Received: (qmail 24579 invoked from network); 5 Aug 2010 16:35:25 -0000 Received: from p54a02077.dip.t-dialin.net (HELO comet.dominikbrodowski.net) (brodo@84.160.32.119) by isilmar-3.linta.de with (DHE-RSA-AES256-SHA encrypted) SMTP; 5 Aug 2010 16:35:25 -0000 Received: by comet.dominikbrodowski.net (Postfix, from userid 1000) id 1271E80230; Thu, 5 Aug 2010 18:35:20 +0200 (CEST) Date: Thu, 5 Aug 2010 18:35:19 +0200 From: Dominik Brodowski To: Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805163519.GA6604@comet.dominikbrodowski.net> Mail-Followup-To: Dominik Brodowski , Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100805123649.GA18672@dhcp231-156.rdu.redhat.com> <20100805113240.GA29846@think> <20100805153519.GA7242@comet.dominikbrodowski.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805153519.GA7242@comet.dominikbrodowski.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1281026127 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37118 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Small correction: On Thu, Aug 05, 2010 at 05:35:19PM +0200, Dominik Brodowski wrote: > With this fix, I get proper speeds when doing dio reads from > /dev/mapper/vg0-*_crypt; see the 17.3 MB/s above. Most strangely, > also accesing /dev/mapper/vg0-* (un-encrypted) and the raw > device at /dev/sda* speeds up (to up to 28 MB/s). Was only seeing around > 16 to 18 MB/s without this patch for unencrypted access. The speed-up of the unencrypted access (18 -> 28 MB/s) is caused by using a different configuration for kernel 2.6.35; and seems to be unrelated to your patch. Will try to track down which config option is the culprit. kernel, dmcrypt? | good config | bad config ------------------------------------------------- patched 2.6.35, dmcrypt ~ 18 MB/s ~ 13 MB/s patched 2.6.35 ~ 28 MB/s ~ 18 MB/s ------------------------------------------------- plain 2.6.35, dmcrypt ~ 3 MB/s ~ 3 MB/s plain 2.6.35 ~ 16 MB/s Best, Dominik From jmoyer@redhat.com Thu Aug 5 13:58:41 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75IweBF098614 for ; Thu, 5 Aug 2010 13:58:41 -0500 X-ASG-Debug-ID: 1281035230-2afc02920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 083EFC52773 for ; Thu, 5 Aug 2010 12:07:10 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 8mHV8va0ETOLCHGa for ; Thu, 05 Aug 2010 12:07:10 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o75Iwkfk015186 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 5 Aug 2010 14:58:46 -0400 Received: from segfault.boston.devel.redhat.com (segfault.boston.devel.redhat.com [10.16.60.26]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o75IwbK9027741; Thu, 5 Aug 2010 14:58:38 -0400 From: Jeff Moyer To: Chris Mason Cc: Dominik Brodowski , Valdis.Kletnieks@vt.edu, josef@redhat.com, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] References: <20100804073546.GA7494@comet.dominikbrodowski.net> <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <15446.1280953986@localhost> <20100805093100.GA3001@comet.dominikbrodowski.net> <20100805113240.GA29846@think> X-PGP-KeyID: 1F78E1B4 X-PGP-CertKey: F6FE 280D 8293 F72C 65FD 5A58 1FF8 A7CA 1F78 E1B4 X-PCLoadLetter: What the f**k does that mean? Date: Thu, 05 Aug 2010 14:58:37 -0400 In-Reply-To: <20100805113240.GA29846@think> (Chris Mason's message of "Thu, 5 Aug 2010 07:32:40 -0400") Message-ID: User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1281035232 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Chris Mason writes: > But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that > seems a little high. I'm not sure why you think that. We're talking about a plain old SATA disk, right? I can get 40-50MB/s on my systems for 8KB O_DIRECT reads. What am I missing? Cheers, Jeff From chris.mason@oracle.com Thu Aug 5 14:06:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75J6OOq098876 for ; Thu, 5 Aug 2010 14:06:24 -0500 X-ASG-Debug-ID: 1281035203-7da9028b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rcsinet10.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6DDFD1E40383 for ; Thu, 5 Aug 2010 12:06:43 -0700 (PDT) Received: from rcsinet10.oracle.com (rcsinet10.oracle.com [148.87.113.121]) by cuda.sgi.com with ESMTP id VFGD2Xl3XjCNxWSH for ; Thu, 05 Aug 2010 12:06:43 -0700 (PDT) Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o75J6P9X004953 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 5 Aug 2010 19:06:27 GMT Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by rcsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o75IwmgM011202; Thu, 5 Aug 2010 19:06:24 GMT Received: from abhmt008.oracle.com by acsmt353.oracle.com with ESMTP id 470104731281034901; Thu, 05 Aug 2010 12:01:41 -0700 Received: from localhost (/66.66.148.185) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 05 Aug 2010 12:01:40 -0700 Date: Thu, 5 Aug 2010 15:01:38 -0400 From: Chris Mason To: Jeff Moyer Cc: Dominik Brodowski , Valdis.Kletnieks@vt.edu, josef@redhat.com, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com X-ASG-Orig-Subj: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Subject: Re: direct-io regression [Was: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs] Message-ID: <20100805190138.GV29846@think> Mail-Followup-To: Chris Mason , Jeff Moyer , Dominik Brodowski , Valdis.Kletnieks@vt.edu, josef@redhat.com, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, dm-devel@redhat.com References: <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <15446.1280953986@localhost> <20100805093100.GA3001@comet.dominikbrodowski.net> <20100805113240.GA29846@think> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Source-IP: acsmt355.oracle.com [141.146.40.155] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090205.4C5B0BB1.01E8:SCFMA4539814,ss=1,fgs=0 X-Barracuda-Connect: rcsinet10.oracle.com[148.87.113.121] X-Barracuda-Start-Time: 1281035204 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37128 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 05, 2010 at 02:58:37PM -0400, Jeff Moyer wrote: > Chris Mason writes: > > > But, I'm surprised your drive is doing 8K dio reads at 16MB/s, that > > seems a little high. > > I'm not sure why you think that. We're talking about a plain old SATA > disk, right? I can get 40-50MB/s on my systems for 8KB O_DIRECT reads. > What am I missing? Clearly I'm wrong, his drive is going much faster ;) I expect the smaller reads to be slower but the drive's internal cache is doing well. -chris From linux@dominikbrodowski.net Thu Aug 5 15:54:35 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75KsYHE104159 for ; Thu, 5 Aug 2010 15:54:34 -0500 X-ASG-Debug-ID: 1281041694-3c0e01090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 58AF01E40A47 for ; Thu, 5 Aug 2010 13:54:54 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id 0cqRXy2JVxfCaEhX for ; Thu, 05 Aug 2010 13:54:54 -0700 (PDT) Received: (qmail 2692 invoked from network); 5 Aug 2010 20:54:53 -0000 Received: from p54a02077.dip.t-dialin.net (HELO comet.dominikbrodowski.net) (brodo@84.160.32.119) by isilmar-3.linta.de with (DHE-RSA-AES256-SHA encrypted) SMTP; 5 Aug 2010 20:54:53 -0000 Received: by comet.dominikbrodowski.net (Postfix, from userid 1000) id E604980230; Thu, 5 Aug 2010 22:47:49 +0200 (CEST) Date: Thu, 5 Aug 2010 22:47:49 +0200 From: Dominik Brodowski To: linux-kernel@vger.kernel.org, mingo@redhat.com, peterz@infradead.org Cc: Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, dm-devel@redhat.com X-ASG-Orig-Subj: Performance impact of CONFIG_DEBUG? direct-io test case Subject: Performance impact of CONFIG_DEBUG? direct-io test case Message-ID: <20100805204749.GA6318@comet.dominikbrodowski.net> Mail-Followup-To: Dominik Brodowski , linux-kernel@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, dm-devel@redhat.com References: <20100805123649.GA18672@dhcp231-156.rdu.redhat.com> <20100805113240.GA29846@think> <20100805153519.GA7242@comet.dominikbrodowski.net> <20100805163519.GA6604@comet.dominikbrodowski.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805163519.GA6604@comet.dominikbrodowski.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1281041695 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37136 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean How large is the performance impact of CONFIG_DEBUG? Well, for the test workload I've been working with lately, dd if= of=/dev/zero bs=8k count=100000 iflag=direct where is a dm-crypted LVM volume consisting of several partitions on a notebook pata harddisk, I get the following results: 1) best results are ~ 28 MB/s 2) Enabling CONFIG_DEBUG_LOCK_ALLOC, which also means CONFIG_LOCKDEP being enabled, causes the transfer rate to decrease by ~ 1.2 MB/s 3) Enabling CONFIG_DEBUG_SPINLOCK && CONFIG_DEBUG_MUTEXTES or CONFIG_DEBUG_SPINLOCK_SLEEP=y costs about ~ 0.4 MB/s each 4) Enabling all of the following options: CONFIG_DEBUG_RT_MUTEXES CONFIG_DEBUG_PI_LIST CONFIG_PROVE_LOCKING CONFIG_LOCK_STAT CONFIG_DEBUG_LOCKDEP costs another ~ 5 MB/s. So, for this test case, the performance impact of (some) CONFIG_DEBUG options is highly significant, here by about 25 %. Best, Dominik From linux@dominikbrodowski.net Thu Aug 5 15:54:34 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o75KsYmk104158 for ; Thu, 5 Aug 2010 15:54:34 -0500 X-ASG-Debug-ID: 1281041694-4ec2003d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from linta.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8D85E1E40A49 for ; Thu, 5 Aug 2010 13:54:54 -0700 (PDT) Received: from linta.de (isilmar-3.linta.de [188.40.101.200]) by cuda.sgi.com with ESMTP id QDHksjO6vZUllQZq for ; Thu, 05 Aug 2010 13:54:54 -0700 (PDT) Received: (qmail 2706 invoked from network); 5 Aug 2010 20:54:54 -0000 Received: from p54a02077.dip.t-dialin.net (HELO comet.dominikbrodowski.net) (brodo@84.160.32.119) by isilmar-3.linta.de with (DHE-RSA-AES256-SHA encrypted) SMTP; 5 Aug 2010 20:54:53 -0000 Received: by comet.dominikbrodowski.net (Postfix, from userid 1000) id 39FA180232; Thu, 5 Aug 2010 22:54:48 +0200 (CEST) Date: Thu, 5 Aug 2010 22:54:48 +0200 From: Dominik Brodowski To: linux-kernel@vger.kernel.org, mingo@redhat.com, peterz@infradead.org Cc: Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, dm-devel@redhat.com X-ASG-Orig-Subj: Performance impact of CONFIG_SCHED_MC? direct-io test case Subject: Performance impact of CONFIG_SCHED_MC? direct-io test case Message-ID: <20100805205448.GB6318@comet.dominikbrodowski.net> Mail-Followup-To: Dominik Brodowski , linux-kernel@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, Chris Mason , josef@redhat.com, Valdis.Kletnieks@vt.edu, Michael Monnerie , Christoph Hellwig , linux-raid@vger.kernel.org, xfs@oss.sgi.com, dm-devel@redhat.com References: <20100805123649.GA18672@dhcp231-156.rdu.redhat.com> <20100805113240.GA29846@think> <20100805153519.GA7242@comet.dominikbrodowski.net> <20100805163519.GA6604@comet.dominikbrodowski.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100805163519.GA6604@comet.dominikbrodowski.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: isilmar-3.linta.de[188.40.101.200] X-Barracuda-Start-Time: 1281041695 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37136 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean How large is the performance impact of CONFIG_SCHED_MC -- for which there is a warning that it comes "at a cost of slightly increased overhead in some places."? Well, for the test workload I've been working with lately, dd if= of=/dev/zero bs=8k count=100000 iflag=direct where is a dm-crypted LVM volume consisting of several partitions on a notebook pata harddisk, and all this runs on a Core2 Duo, I get a ~ 10 % performance reduction if CONFIG_SCHED_MC is enabled. Combined with the CONFIG_DEBUG performance reduction mentioned in the other message, all of the reduction from 28 MB/s to 18 MB/s is explained for. Best, Dominik PS: Ingo: you got both mingo@elte.hu and mingo@redhat.com in MAINTAINERS, I suppose both are valid? From SRS0+bxCo+67+fromorbit.com=dave@internode.on.net Thu Aug 5 20:18:26 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o761IQN8112744 for ; Thu, 5 Aug 2010 20:18:26 -0500 X-ASG-Debug-ID: 1281057524-1563028c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BE12D16AE847 for ; Thu, 5 Aug 2010 18:18:45 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id aF1V3ndgBtD7AG68 for ; Thu, 05 Aug 2010 18:18:45 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34203320-1927428 for ; Fri, 06 Aug 2010 10:48:44 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OhBa4-0003on-SU for xfs@oss.sgi.com; Fri, 06 Aug 2010 11:18:40 +1000 Received: from dave by disturbed with local (Exim 4.71) (envelope-from ) id 1OhBa3-0006RK-7w for xfs@oss.sgi.com; Fri, 06 Aug 2010 11:18:39 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfstests: fix NIS detection damage Subject: [PATCH] xfstests: fix NIS detection damage Date: Fri, 6 Aug 2010 11:18:39 +1000 Message-Id: <1281057519-24730-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1281057526 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37152 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner NIS detection wasn't tested on machines without NIS enabled, so many tests are failing on non-NIS machines. the _yp_active function has no specific return value so always evaluates as 0 (active) and the "_cat_passwd" function is called from within an awk script which is not valid as the shell may run with a sanitised environment. Hence the functions do not need specific export calls, either, as unsanitised subshells will automatically inherit the parent's environment. Signed-off-by: Dave Chinner --- common.attr | 9 +++++++-- common.rc | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/common.attr b/common.attr index 51616bc..6ba0b32 100644 --- a/common.attr +++ b/common.attr @@ -90,10 +90,14 @@ _create_n_aces() # _filter_aces() { - $AWK_PROG ' + tmp_file=`mktemp /tmp/ace.XXXXXX` + + (_cat_passwd; _cat_group) > $tmp_file + + $AWK_PROG -v tmpfile=$tmp_file ' BEGIN { FS=":" - while ( "_cat_passwd" | getline > 0 ) { + while ( getline 0 ) { idlist[$1] = $3 } } @@ -102,6 +106,7 @@ _filter_aces() /^default:user/ { if ($3 in idlist) sub($3, idlist[$3]); print; next} {print} ' + rm -f $tmp_file } _filter_aces_notypes() diff --git a/common.rc b/common.rc index e0cdfe6..08d4f71 100644 --- a/common.rc +++ b/common.rc @@ -800,13 +800,14 @@ _yp_active() local dn dn=$(domainname 2>/dev/null) test -n "${dn}" -a "${dn}" != "(none)" + echo $? } # cat the password file # _cat_passwd() { - [ _yp_active ] && ypcat passwd + [ $(_yp_active) -eq 0 ] && ypcat passwd cat /etc/passwd } @@ -814,10 +815,9 @@ _cat_passwd() # _cat_group() { - [ _yp_active ] && ypcat group + [ $(_yp_active) -eq 0 ] && ypcat group cat /etc/group } -export -f _yp_active _cat_passwd _cat_group # check for the fsgqa user on the machine # -- 1.7.1 From BATV+5ad17299b6ca7d028f88+2539+infradead.org+hch@bombadil.srs.infradead.org Fri Aug 6 08:00:48 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o76D0k7J140954 for ; Fri, 6 Aug 2010 08:00:48 -0500 X-ASG-Debug-ID: 1281099668-4a9702210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E2795F67B1B for ; Fri, 6 Aug 2010 06:01:08 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lMY4vXejcnDpMsy5 for ; Fri, 06 Aug 2010 06:01:08 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OhMXq-0005LB-Mn; Fri, 06 Aug 2010 13:01:06 +0000 Date: Fri, 6 Aug 2010 09:01:06 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, npiggin@kernel.de X-ASG-Orig-Subj: Re: [PATCH] xfs: Reduce log force overhead for delayed logging Subject: Re: [PATCH] xfs: Reduce log force overhead for delayed logging Message-ID: <20100806130106.GA16818@infradead.org> References: <1280801234-23568-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280801234-23568-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281099668 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good to me, Reviewed-by: Christoph Hellwig minor nitpicks below: > int > xlog_cil_push( This can be marked STATIC now. > +/* > + * CIL force routines > + */ > +xfs_lsn_t xlog_cil_force_lsn(struct log *log, xfs_lsn_t sequence); > + > +static inline void > +xlog_cil_force(struct log *log) > +{ > + if (log->l_cilp) > + xlog_cil_force_lsn(log, log->l_cilp->xc_current_sequence); > +} I'd move the if (log->l_cilp) check to the caller. One of the two already does so, as does the caller of xlog_cil_force_lsn. From BATV+5ad17299b6ca7d028f88+2539+infradead.org+hch@bombadil.srs.infradead.org Fri Aug 6 08:02:33 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_FRT_FREE autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o76D2XSv141052 for ; Fri, 6 Aug 2010 08:02:33 -0500 X-ASG-Debug-ID: 1281099775-4a9502380000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5B1261D70D58; Fri, 6 Aug 2010 06:02:55 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Zfh49qAq6YJG7Se8; Fri, 06 Aug 2010 06:02:55 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OhMZZ-0005kU-WD; Fri, 06 Aug 2010 13:02:54 +0000 Date: Fri, 6 Aug 2010 09:02:53 -0400 From: Christoph Hellwig To: Stuart Brodsky Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v3] xfs: ensure f_ffree returned by statfs() is non-negative Subject: Re: [PATCH v3] xfs: ensure f_ffree returned by statfs() is non-negative Message-ID: <20100806130253.GB16818@infradead.org> References: <1280931359.12084.2519.camel@superior.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280931359.12084.2519.camel@superior.americas.sgi.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281099775 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Good changelog this time around, thanks. > - statp->f_ffree = statp->f_files - (sbp->sb_icount - > sbp->sb_ifree); Your mailer line-wrapper the patch here. > + ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); > + statp->f_ffree = (__u64) (ffree < 0 ? 0 : ffree); Why not just use min_t here? statp->f_ffree = max_t(__int64_t, ffree, 0); From BATV+5ad17299b6ca7d028f88+2539+infradead.org+hch@bombadil.srs.infradead.org Fri Aug 6 08:03:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o76D3CnG141099 for ; Fri, 6 Aug 2010 08:03:12 -0500 X-ASG-Debug-ID: 1281099814-48ae02cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9148D49C587 for ; Fri, 6 Aug 2010 06:03:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id qaFgvaOgXq94Lbgd for ; Fri, 06 Aug 2010 06:03:34 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OhMaE-00062B-8Q; Fri, 06 Aug 2010 13:03:34 +0000 Date: Fri, 6 Aug 2010 09:03:34 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix NIS detection damage Subject: Re: [PATCH] xfstests: fix NIS detection damage Message-ID: <20100806130334.GC16818@infradead.org> References: <1281057519-24730-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1281057519-24730-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281099814 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 06, 2010 at 11:18:39AM +1000, Dave Chinner wrote: > From: Dave Chinner > > NIS detection wasn't tested on machines without NIS enabled, so many tests are > failing on non-NIS machines. the _yp_active function has no specific return > value so always evaluates as 0 (active) and the "_cat_passwd" function is > called from within an awk script which is not valid as the shell may run with a > sanitised environment. Hence the functions do not need specific export calls, > either, as unsanitised subshells will automatically inherit the parent's > environment. > > Signed-off-by: Dave Chinner Looks good, Reviewed-by: Christoph Hellwig From SRS0+JBZb+68+fromorbit.com=david@internode.on.net Sat Aug 7 05:08:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_28, J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o77A84Pd192929 for ; Sat, 7 Aug 2010 05:08:04 -0500 X-ASG-Debug-ID: 1281175704-48c801120000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DBDEE16C4101 for ; Sat, 7 Aug 2010 03:08:24 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id WjmLDeXAHhV1IrsT for ; Sat, 07 Aug 2010 03:08:24 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34640032-1927428 for multiple; Sat, 07 Aug 2010 19:38:23 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OhgKD-00068e-L0; Sat, 07 Aug 2010 20:08:21 +1000 Date: Sat, 7 Aug 2010 20:08:21 +1000 From: Dave Chinner To: Ilia Mirkin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS hung on 2.6.33.3 kernel Subject: Re: XFS hung on 2.6.33.3 kernel Message-ID: <20100807100821.GC7362@dastard> References: <20100718012033.GA18888@dastard> <20100718235036.GC32635@dastard> <20100805062541.GC26402@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1281175705 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37284 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 05, 2010 at 02:42:38AM -0400, Ilia Mirkin wrote: > On Thu, Aug 5, 2010 at 2:25 AM, Dave Chinner wrote: > > a couple of things to see if the hang can be caused faster? Maybe > > trying these different initial conditions: > > Together or independently? independently first - then if that does't work, maybe together? > >        - allocate the file with worst case fragmentation by > >          writing it backwards in synchronous 4k blocks before > >          running the test > > I created the file with > > dd if=/dev/zero of=... bs=1M count=... > > How would I "write backwards"? Like truncate and then seek to the end, > write, seek back, write, etc? Is there a utility that might do it > already? For a 1GB file: $ for i in `seq 256000 1 0`; do > dd if=/dev/zero of=testfile bs=4k count=1 seek=$i conv=notrunc,sync > done Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+3NQj+68+fromorbit.com=david@internode.on.net Sat Aug 7 05:13:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o77ADVrW193170 for ; Sat, 7 Aug 2010 05:13:31 -0500 X-ASG-Debug-ID: 1281176031-6fa602960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8190149F79F for ; Sat, 7 Aug 2010 03:13:52 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id jn9ILX9FggwIjGmK for ; Sat, 07 Aug 2010 03:13:52 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34350689-1927428 for multiple; Sat, 07 Aug 2010 19:43:51 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OhgPV-000694-IO; Sat, 07 Aug 2010 20:13:49 +1000 Date: Sat, 7 Aug 2010 20:13:49 +1000 From: Dave Chinner To: Stan Hoeppner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Message-ID: <20100807101349.GD7362@dastard> References: <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <20100804111803.GA32643@infradead.org> <20100805082438.0b476adb@notabene> <4C5A774D.6000400@hardwarefreak.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C5A774D.6000400@hardwarefreak.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1281176033 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37284 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 05, 2010 at 03:33:17AM -0500, Stan Hoeppner wrote: > Neil Brown put forth on 8/4/2010 5:24 PM: > > > Both page-cache and read-ahead work at the filesystem level > > Are you referring to /sys/block/sdx/queue/read_ahead_kb? I'm pretty sure this > works below the FS level and below the partition level. This read_ahead works > at the block device level. At least for individual or JBOD. That number is used to initialise the default readahead value for any file descriptor opened on the filesystem. readahead is tracked per-fd at the page cache level, so is effectively at the filesystem level, not the block device. > Are you saying this setting gets ignored by the kernel if/when mdadm, LVM, > and/or crypto are used? Only the value from the block device the filesystem sits on is used. i.e. if you are using /dev/md0, then the filesystem uses the value from /sys/block/md0/queue/read_ahead_kb and ignores all the ones set on the /dev/sdX devices that make up /dev/md0. Cheers, Dave. -- Dave Chinner david@fromorbit.com From seo@orangewebtech.com Sat Aug 7 06:55:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_50,FROM_EXCESS_BASE64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o77Bt0nN196629 for ; Sat, 7 Aug 2010 06:55:00 -0500 X-ASG-Debug-ID: 1281182620-22f702ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ww0-f51.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 154BF12C1D19 for ; Sat, 7 Aug 2010 05:03:40 -0700 (PDT) Received: from mail-ww0-f51.google.com (mail-ww0-f51.google.com [74.125.82.51]) by cuda.sgi.com with ESMTP id KCjDv1CJgpKk9LAQ for ; Sat, 07 Aug 2010 05:03:40 -0700 (PDT) Received: by wwb17 with SMTP id 17so5715391wwb.32 for ; Sat, 07 Aug 2010 04:55:20 -0700 (PDT) Received: by 10.227.136.146 with SMTP id r18mr11232651wbt.53.1281175339268; Sat, 07 Aug 2010 03:02:19 -0700 (PDT) Received: from Ankur-PC ([122.170.40.102]) by mx.google.com with ESMTPS id e31sm2220633wbe.5.2010.08.07.03.02.17 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 07 Aug 2010 03:02:19 -0700 (PDT) From: "=?utf-8?B?V2VibWFzdGVyIE9yYW5nZVRlY2hub2xhYg==?=" To: xfs@oss.sgi.com X-ASG-Orig-Subj: =?utf-8?B?cGFydG5lcnNoaXAgaXNzdWU=?= Subject: =?utf-8?B?cGFydG5lcnNoaXAgaXNzdWU=?= Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Sat, 7 Aug 2010 15:29:57 +0530 Message-ID: <20100807095957028.28001CBD492037AB@Ankur-PC> X-Mailer: Web CEO 8.1.0.3903 X-Barracuda-Connect: mail-ww0-f51.google.com[74.125.82.51] X-Barracuda-Start-Time: 1281182621 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1101 1.0000 -1.3324 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.27 X-Barracuda-Spam-Status: No, SCORE=-0.27 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FROM_EXCESS_BASE64, FROM_EXCESS_BASE64_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 FROM_EXCESS_BASE64 From: base64 encoded unnecessarily 1.05 FROM_EXCESS_BASE64_2 From: base64 encoded unnecessarily X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean SGVsbG8sDQpJIGhhdmUgZm91bmQgeW91ciB3ZWJzaXRlIG9zcy5zZ2kuY29tIHdoZW4gc2VhcmNo aW5nIHRoZSB3ZWIgb24gdGhlIHRvcGljcyByZWxhdGVkIHRvIG15IHdlYnNpdGUgdGhlbWUuDQpJ IG11c3Qgc2F5IHlvdXIgc2l0ZSBjb250ZW50IGlzIHZlcnkgZ29vZCBhbmQgSSB0aGluayB3ZSB3 b3VsZCBiZW5lZml0IG11Y2ggZnJvbSBwb3NzaWJsZSBwYXJ0bmVyc2hpcCAtIGZvciBleGFtcGxl IGxpbmsgZXhjaGFuZ2UuIFRoaXMgd291bGQgYnJpbmcgbW9yZSB0YXJnZXRlZCB0cmFmZmljIHRv IG91ciBzaXRlcywgcGx1cyBpbmNyZWFzZSBvdXIgd2Vic2l0ZXMnIHdlaWdodCBhdCB0aGUgc2Vh cmNoIGVuZ2luZXMsIGFzIHRoZXkgZ2l2ZSBncmVhdGVyIHZhbHVlIHRvIHRoZSBsaW5rcyBmcm9t IHRoZSB0b3BpYy1yZWxhdGVkIHNpdGVzIHJhdGhlciB0aGFuIGlycmVsZXZhbnQgYmFja2xpbmtz Lg0KTXkgd2Vic2l0ZSBodHRwOi8vd3d3Lm9yYW5nZXRlY2hub2xhYi5jb20vIGlzIGRlZmluaXRl bHkgcmVsYXRlZCB0byB5b3Vycy4NCkkgd291bGQgYmUgZ2xhZCB0byBsaW5rIHRvIHlvdXIgc2l0 ZSBpbiByZXR1cm4gdG8geW91IGxpbmtpbmcgYmFjayB0byBtaW5lLg0KRmVlbCBmcmVlIHRvIGVt YWlsIG1lIGRpcmVjdCB0byBzZW9Ab3Jhbmdld2VidGVjaC5jb20gdG8gZGlzY3VzcyB0aGUgZGV0 YWlscyBvbiB0aGUgcG9zc2libGUgcGFydG5lcnNoaXAuDQoNCkhvcGUgZm9yIHRoZSBmcnVpdGZ1 bCBjb29wZXJhdGlvbiwNCg0KQmVzdCByZWdhcmRzLA0KV2VibWFzdGVyIE9yYW5nZVRlY2hub2xh YiwNCmh0dHA6Ly93d3cub3JhbmdldGVjaG5vbGFiLmNvbS8NCg== From stan@hardwarefreak.com Sat Aug 7 18:40:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o77Ne4FC220636 for ; Sat, 7 Aug 2010 18:40:04 -0500 X-ASG-Debug-ID: 1281224926-6a9e03540000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C63DCC6869D for ; Sat, 7 Aug 2010 16:48:46 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id SkmOzXYbK0G5FykX for ; Sat, 07 Aug 2010 16:48:46 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id EA8026C33C for ; Sat, 7 Aug 2010 18:40:23 -0500 (CDT) Message-ID: <4C5DEFA1.4010506@hardwarefreak.com> Date: Sat, 07 Aug 2010 18:43:29 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs References: <20100804085039.GA11671@infradead.org> <20100804091317.GA27779@isilmar-3.linta.de> <20100804092122.GA2998@infradead.org> <20100804073546.GA7494@comet.dominikbrodowski.net> <201008041116.09822@zmi.at> <20100804102526.GB13766@isilmar-3.linta.de> <20100804111803.GA32643@infradead.org> <20100805082438.0b476adb@notabene> <4C5A774D.6000400@hardwarefreak.com> <20100807101349.GD7362@dastard> In-Reply-To: <20100807101349.GD7362@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1281224928 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37339 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner put forth on 8/7/2010 5:13 AM: > On Thu, Aug 05, 2010 at 03:33:17AM -0500, Stan Hoeppner wrote: >> Neil Brown put forth on 8/4/2010 5:24 PM: >> >>> Both page-cache and read-ahead work at the filesystem level >> >> Are you referring to /sys/block/sdx/queue/read_ahead_kb? I'm pretty sure this >> works below the FS level and below the partition level. This read_ahead works >> at the block device level. At least for individual or JBOD. > > That number is used to initialise the default readahead value for > any file descriptor opened on the filesystem. readahead is tracked > per-fd at the page cache level, so is effectively at the filesystem > level, not the block device. > >> Are you saying this setting gets ignored by the kernel if/when mdadm, LVM, >> and/or crypto are used? > > Only the value from the block device the filesystem sits on is used. > i.e. if you are using /dev/md0, then the filesystem uses the value > from /sys/block/md0/queue/read_ahead_kb and ignores all the ones set > on the /dev/sdX devices that make up /dev/md0. Thanks for the clarification/education Dave. -- Stan From michael.monnerie@is.it-management.at Sun Aug 8 02:46:40 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o787kead242465 for ; Sun, 8 Aug 2010 02:46:40 -0500 X-ASG-Debug-ID: 1281253619-09eb03600000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2D7B0D76721 for ; Sun, 8 Aug 2010 00:47:00 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id kADZHkndxDaxO9K7 for ; Sun, 08 Aug 2010 00:47:00 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 8977D17E; Sun, 8 Aug 2010 09:46:58 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 3F04C47EA07; Sun, 8 Aug 2010 09:46:58 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Subject: Re: How to track down abysmal performance ata - raid1 - crypto - vg/lv - xfs Date: Sun, 8 Aug 2010 09:46:53 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: <20100804085039.GA11671@infradead.org> <4C5A774D.6000400@hardwarefreak.com> <20100807101349.GD7362@dastard> In-Reply-To: <20100807101349.GD7362@dastard> Cc: Dave Chinner MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart4150250.H0cggjMXBm"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008080946.57635@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281253621 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37370 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart4150250.H0cggjMXBm Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Samstag, 7. August 2010 Dave Chinner wrote: > > Are you referring to /sys/block/sdx/queue/read_ahead_kb? I'm > > pretty sure this works below the FS level and below the partition > > level. This read_ahead works at the block device level. At least > > for individual or JBOD. >=20 > That number is used to initialise the default readahead value for > any file descriptor opened on the filesystem. readahead is tracked > per-fd at the page cache level, so is effectively at the filesystem > level, not the block device. >=20 > > Are you saying this setting gets ignored by the kernel if/when > > mdadm, LVM, and/or crypto are used? >=20 > Only the value from the block device the filesystem sits on is used. > i.e. if you are using /dev/md0, then the filesystem uses the value > from /sys/block/md0/queue/read_ahead_kb and ignores all the ones set > on the /dev/sdX devices that make up /dev/md0. =20 That would be a wonderful piece of documentation belonging to=20 Documentation/sysctl/fs.txt or vm.txt, and /sbin/sysctl should not only=20 change /proc/sys values, but also /sys entries. Such performance knobs are very poorly documented, but would be an=20 important bit for administrators to tune systems for their needs. This=20 is something that's really missing in Linux. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart4150250.H0cggjMXBm Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxeYPEACgkQzhSR9xwSCbTtcACg2gg83JJO+lbH3KLkgJ4fDXlU DdIAnAkrxrZk2tQe3iQ1GfstSe1GxLez =7Hw6 -----END PGP SIGNATURE----- --nextPart4150250.H0cggjMXBm-- From elopez@dciphi.uhu.es Sun Aug 8 03:29:48 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_95 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o788TktJ243668 for ; Sun, 8 Aug 2010 03:29:47 -0500 X-ASG-Debug-ID: 1281256711-6ef601440000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ironport.uhu.es (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0AFACC68D15 for ; Sun, 8 Aug 2010 01:38:31 -0700 (PDT) Received: from ironport.uhu.es (relay.uhu.es [150.214.167.14]) by cuda.sgi.com with ESMTP id xrhVNaYewIhBakJb for ; Sun, 08 Aug 2010 01:38:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuoEAI4i50vAqAM0/2dsb2JhbACRVo0vu1mCaoIrBA X-IronPort-AV: E=Sophos;i="4.55,337,1278280800"; d="scan'208";a="13684115" Received: from sirio2.uhu.es (HELO sirio02) ([192.168.3.52]) by relay.uhu.es with ESMTP; 08 Aug 2010 10:30:07 +0200 Received: from [127.0.0.1] (helo=correo.uhu.es) by sirio02 with esmtp (Exim 4.50) id 1Oi0Gu-0006ZX-69; Sun, 08 Aug 2010 09:26:16 +0200 Received: from 201.245.175.172 (proxying for 93.186.164.42) (SquirrelMail authenticated user elopez) by correo.uhu.es with HTTP; Sun, 8 Aug 2010 09:26:16 +0200 (CEST) Message-ID: <52206.201.245.175.172.1281252376.squirrel@correo.uhu.es> Date: Sun, 8 Aug 2010 09:26:16 +0200 (CEST) X-ASG-Orig-Subj: WEBMASTER Subject: WEBMASTER From: "UPDATE" To: info@webmaster.de User-Agent: SquirrelMail/1.4.4 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Barracuda-Connect: relay.uhu.es[150.214.167.14] X-Barracuda-Start-Time: 1281256713 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3172 1.0000 -0.2769 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.28 X-Barracuda-Spam-Status: No, SCORE=-0.28 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37375 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Ihre Webmail-Quote hat die Menge, die Quote 5GB überschritten wird. Sie sind derzeit auf 4.8GB. Um wieder zu aktivieren und steigern Sie Ihre Webmail-Quote klicken Sie bitte auf den untenstehenden Link. http://www.emailmeform.com/builder/form/4rdt04L8X6bUb8 Andernfalls kann die Löschung Ihrer Webmail-Accounts führen. Vielen Dank und sorry für die Unannehmlichkeiten Localhost From mayang8025@gmail.com Sun Aug 8 05:07:34 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.9 required=5.0 tests=BAYES_50,FREEMAIL_FROM, J_CHICKENPOX_72,SUBJ_CONGRATULATION,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o78A7Xar246212 for ; Sun, 8 Aug 2010 05:07:34 -0500 X-ASG-Debug-ID: 1281262580-6f0c03c20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 07B2AC6939F for ; Sun, 8 Aug 2010 03:16:20 -0700 (PDT) Received: from mail-pw0-f53.google.com (mail-pw0-f53.google.com [209.85.160.53]) by cuda.sgi.com with ESMTP id FpeConMwN0dXyQZv for ; Sun, 08 Aug 2010 03:16:20 -0700 (PDT) Received: by pwj2 with SMTP id 2so1608064pwj.26 for ; Sun, 08 Aug 2010 03:07:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:to:from:reply-to:subject :message-id:x-priority:x-mailer:mime-version :content-transfer-encoding:content-type; bh=9PiKwUfceKtVoJmAY41t9TM2/E82CSJzLFKGSmQXRdE=; b=I6UCsxJEO/V+WtOg9dlyH+bNv0Znue2L1hl9wwLtJiO2a9MLFveVMTIKr5EWKEQyNU OUQoGFVEE2ITh2/BEHSEuTHipYOGAHvYK4KnfiZZvsHW6MfNiblYlCB3KwEH8ABTczyW KTV4Qecz2k3FQkbO9GxAqNa8h3weTqORh78S4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:to:from:reply-to:subject:message-id:x-priority:x-mailer :mime-version:content-transfer-encoding:content-type; b=UUsIt2MbTB4AB1CehbnSx31pwEDbv6SbBPP+iQ83kIrW2/s2AMdQHF9hxGNUJNwNFm y8Qa8brclqwbC8m/Rgh/hczMqYvKUSRgZqVdAR+lS32j22mOnE29uU3tpUOh8OUhjEz3 9/GJtmk1DQVZiuKaa+b5oxVAhjP29CZyASVXk= Received: by 10.142.48.4 with SMTP id v4mr12333625wfv.85.1281255927654; Sun, 08 Aug 2010 01:25:27 -0700 (PDT) Received: from 192.168.1.10 ([112.198.229.193]) by mx.google.com with ESMTPS id z1sm4595728wfd.15.2010.08.08.01.25.25 (version=SSLv3 cipher=RC4-MD5); Sun, 08 Aug 2010 01:25:26 -0700 (PDT) Date: Sun, 8 Aug 2010 08:25:20 +0000 To: name From: Reply-To: X-ASG-Orig-Subj: Congratulations, your commission is coming Subject: Congratulations, your commission is coming Message-ID: <04a887bd4cb36672c077cebd1b1eaf51@192.168.1.10> X-Priority: 3 X-Mailer: PHPMailer [version 1.72] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="iso-8859-1" X-Barracuda-Connect: mail-pw0-f53.google.com[209.85.160.53] X-Barracuda-Start-Time: 1281262581 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5203 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37381 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello- To claim your commission, click this link ASAP. http://www.rpahomebiz.co.cc/s.php?un=rpa1&e=xfs@oss.sgi.com Sincerely, George Mason 5195 N Lake Shore Drive Chicago,IL 60657 USA Removal link: Click Below to unsubscribed http://www.rpahomebiz.co.cc/u.php?un=rpa1&e=xfs@oss.sgi.com From mckern_juq@yahoo.com.vn Tue Aug 10 00:31:44 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7A5ViLx073613 for ; Tue, 10 Aug 2010 00:31:44 -0500 X-ASG-Debug-ID: 1281418324-46ff00d50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp117.mail.sg1.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id A271316D45CE for ; Mon, 9 Aug 2010 22:32:05 -0700 (PDT) Received: from smtp117.mail.sg1.yahoo.com (smtp117.mail.sg1.yahoo.com [124.108.123.216]) by cuda.sgi.com with SMTP id 3T1ecdwEvkzFmGCP for ; Mon, 09 Aug 2010 22:32:05 -0700 (PDT) Received: (qmail 68817 invoked from network); 10 Aug 2010 05:32:03 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.vn; h=DKIM-Signature:Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Content-Transfer-Encoding:Date; b=aIIkhzztRMyw0Xk0JTvAY46nkVEYKOyg/TbtdFOOswRLYh8E5C3I8rMtofcaAacFgT4WP0gotY6VJlxtskk/D0zGwR1lHtfHjPVFl5gT01mbnxa3BrAShPzhzLkqvC/2T8y/7vouz0am6qbVNCMjkcic7GIVFlIimskNuPEH/0U= ; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com.vn; s=s1024; t=1281418323; bh=Fr0XK/pNXQhkMfHUdaEbcGszUXH0ROZI7tDo8UsF/AY=; h=Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Content-Transfer-Encoding:Date; b=uifNw7xj3/Lh+jWLaQWkCGc0Ufk6PixmahWhbBAILfqsRUTgFzlJnI1kjZsAOU6tMhCHdxwse1xReIBZx4xn/3z7xkHhjhXt/m321Iszc+WsPThojZjndk4jx31gvMJnnikYK3gamAvgsUnS4hcDKFgY8WQcEJveE/pXFAXHUPI= Message-ID: <691629.67086.qm@smtp117.mail.sg1.yahoo.com> Received: from fdkxiia (mckern_juq@58.251.106.125 with login) by smtp117.mail.sg1.yahoo.com with SMTP; 10 Aug 2010 13:32:02 +0800 SGT X-Yahoo-SMTP: QBmVprmswBB5_FlRRID1vzLoJPtONhY- X-YMail-OSG: .xjHlsAVM1mj9dhlDYUWVlFh142DjXsDqJUc2RpF0j18fKL NFjil_zlLmJ6It7X9xzx8Bk2GVseqJ2YPxHUbcgagGIFNfZr86HBiUrcN9c7 yeG2bdKnWtOHe6NBpELcI4roCoVfm12yUvlO_6GKI4o1xnBhPR8RX94B938g cwiUyGVaJAtYb4aYKdsU6wBmHWTSDNxf9pAPcqcMlLGGLi7Qg38pTdaSXX7D HxaNU1jQKesdAvPLkNL0S.EMIeE4iUSALEQgj2G_2QzaDH2udM4SG9Borz1W n8vsGYA-- X-Yahoo-Newman-Property: ymail-5 From: "Mvodowtd" X-ASG-Orig-Subj: =?gb2312?B?1MS2wbjVtKvTyrz+MlSjqDMtNaOp?= Subject: =?gb2312?B?1MS2wbjVtKvTyrz+MlSjqDMtNaOp?= To: xfryax@163.com Content-Type: text/plain; charset="gb2312" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Date: Tue, 10 Aug 2010 13:31:49 +0800 X-Barracuda-Connect: smtp117.mail.sg1.yahoo.com[124.108.123.216] X-Barracuda-Start-Time: 1281418326 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5649 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.77 X-Barracuda-Spam-Status: No, SCORE=1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED, MIME_BASE64_TEXT, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37554 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.52 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xPq6w6Oh16jStbmp06bUrbOn0czLv8Xk1sa498Dgw+LLsM/j0cwuDQoNCiDW0LuqoaLcvcjYu8ah osvV0cyhorTz0KHQ3MOooaK7xrrXwqWhotK7vsXSu8H5oaK2rLPmz8Sy3bXIo6ENCg0KIMGqz7VR UaO6NTcxNDc1NDQ5ILrOyfoxMzkyNjUyOTgwNSAgd3d3Lmc1NTg4LmNvbQ0KDQogsb7JzNDQz+PR zLa8yse+q7fCz7XB0C6w/Newus3V5sa3sfDO3sG90fmjqNPQt8DOscLro6kgv9q40LS/1f0uOTUl trzKx9Xm0czLvy4NCg0KINX9ueazp7zSvNO5pNbG1/cuob6+q7fCob8gs6e1xNKqx/O63NHPuPEu 0czStsirsr/M2MrivNO5pNPr1sbX99Xm1f2077W9wcu437Hq17y1xNKqx/Mho6jF+sG/vNu48cHt 0umjqb270tfB47Wjt+fP1aOhDQoNCiDKx9fUs+ks1dC0/SzLzcDxLMX6t6IswePK2yy5q8u+LL7G teosINPpwNazocv5tcjK19GhLCANCg0KILzbuPG4/LrPwO0sv9rOtrj8tL/V/SEgvPu79bi2v+4s x+u3xdDEubrC8iEgs7m118jDxPrO3rrzucvWrtPHIQ0KDQog0tShsLPP0MUuzvHKtS6439CnLrmy 066hsc6q19rWvNPrxPqzpMbaus/X9ywgtPLIxcfrxOPBwr3iDQoNCiAgICAgICAga1NBTjU4clVW a25vRDRHejNWV2ZOZ2hpMTluaDcxcDEwTWd1ODIwQkUxMFEwZ3VqNE9pODloMjF3NDFlSHROYzh1 Y3c4NzZWekxROEs1DQo= From MAILER-DAEMON@oss.sgi.com Tue Aug 10 02:23:50 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_60,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7A7Nnic077523 for ; Tue, 10 Aug 2010 02:23:50 -0500 X-ASG-Debug-ID: 1281425053-156401d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mout-bounce.perfora.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C709D4A5AD3 for ; Tue, 10 Aug 2010 00:24:13 -0700 (PDT) Received: from mout-bounce.perfora.net (mout-bounce.perfora.net [74.208.4.199]) by cuda.sgi.com with ESMTP id ilvRXRhHGo3P15Hc for ; Tue, 10 Aug 2010 00:24:13 -0700 (PDT) Received: from mx by mx.perfora.net id 0Lruj8-1Ov7a71SQw-013vgj; Tue, 10 Aug 2010 03:24:13 -0400 To: From: Traditions Customer Service X-ASG-Orig-Subj: Thank you for contacting Traditions Subject: Thank you for contacting Traditions Date: Tue, 10 Aug 2010 03:24:13 -0400 Message-Id: <0Lruj8-1Ov7a71SQw-013vgj@mx.perfora.net> Precedence: bulk X-Original-Id: 0LqiuQ-1PMiZb0D5e-00ecvZ X-Provags-Id: V01U2FsdGVkX18g+v/4aa099fJ3MMesZ6vknoF0w0es1a/ZMpG kQt0DC5TmjjSz8X+1tw1xRh+eScZH0sbzNn9GoYeBDYbbpZVR X-Barracuda-Connect: mout-bounce.perfora.net[74.208.4.199] X-Barracuda-Start-Time: 1281425053 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4791 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37562 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thank you for contacting us! We have answered some common questions below. If we haven't, you will receive an answer shortly. Please contact us at 800-297-4723 for immediate answers to your questions. How long will my order take to ship? Diploma Frames - 2-4 weeks Announcements - 7-10 business days Rings - 8-10 weeks Cap and Gown - approximately 2 weeks prior to commencement I forgot to order my cap and gown, how can I get one? You can visit our office at 1540 Louis Bork Drive, Batavia, IL to purchase a gown. Or you can purchase one at commencement, our representatives will be set up 2 hours prior to commencement. Please contact our office at 800-297-4723 for more info. How can I track my order? You will receive an email confirmation when you place your order online and another email confirmation once your order has shipped. From Nico.van.Wijk@reedbusiness.nl Tue Aug 10 02:33:37 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7A7Xapl077838 for ; Tue, 10 Aug 2010 02:33:37 -0500 X-ASG-Debug-ID: 1281425638-0ccb02000000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from maildtc1.reedbusiness.nl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 38A911BF14EF for ; Tue, 10 Aug 2010 00:33:59 -0700 (PDT) Received: from maildtc1.reedbusiness.nl (maildtc1.reedbusiness.nl [145.43.250.35]) by cuda.sgi.com with ESMTP id FCx5lwa8oukWv3XR for ; Tue, 10 Aug 2010 00:33:59 -0700 (PDT) Received: from RBNDTCEXCP01VB.b2b.regn.net ([145.43.80.53]) by maildtc1.reedbusiness.nl with Microsoft SMTPSVC(6.0.3790.3959); Tue, 10 Aug 2010 09:33:55 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-ASG-Orig-Subj: Uw E-mail Verlopen Na Enkele Uren. Subject: Uw E-mail Verlopen Na Enkele Uren. Date: Tue, 10 Aug 2010 09:33:54 +0200 Message-ID: <6D0CA15776E7F744878AEEB54D49B1A72015EF83@RBNDTCEXCP01VB.b2b.regn.net> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Uw E-mail Verlopen Na Enkele Uren. Thread-Index: Acs4XmF9hLK3lC2bTQGMQiXbD2GXhw== From: "Wijk, Nico van (RB-NL)" To: X-OriginalArrivalTime: 10 Aug 2010 07:33:55.0325 (UTC) FILETIME=[633D8AD0:01CB385E] X-Barracuda-Connect: maildtc1.reedbusiness.nl[145.43.250.35] X-Barracuda-Start-Time: 1281425640 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0024 1.0000 -2.0053 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37562 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Let op E-mail gebruiker. Uw e-mail account vervallen na 48 uur na het lezen van dit bericht. Uw mailbox is overschreden de limiet van 20 GB, die is ingesteld door uw = beheerder, Je hebt bereikt 91.624 KB, kunt u niet kunnen ontvangen of nieuwe mail = te sturen totdat u opnieuw valideren uw mailbox. =20 Voor re-valideren uw account mailbox: (KLIK HIER = ) vul vervolgens = het formulier in en stuur het direct verschijnt. Volg de bovenstaande instructies om opnieuw activeren van uw rekening = onmiddellijk. Nu activeren! =20 Bedankt, System Administrator [Systeem Beheerder].=20 Help webmail beheerder.=20 From amit.macworks@gmail.com Tue Aug 10 07:09:32 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7AC9WWn087337 for ; Tue, 10 Aug 2010 07:09:32 -0500 X-ASG-Debug-ID: 1281442196-0ce301e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED1461E425DE for ; Tue, 10 Aug 2010 05:09:56 -0700 (PDT) Received: from mail-qy0-f181.google.com (mail-qy0-f181.google.com [209.85.216.181]) by cuda.sgi.com with ESMTP id NtlEwQxT9NmDHUNL for ; Tue, 10 Aug 2010 05:09:56 -0700 (PDT) Received: by qyk7 with SMTP id 7so7161991qyk.5 for ; Tue, 10 Aug 2010 05:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=iW8IMTBjDMR85wIptrHU102A77phwIiGm0WBkUfawNU=; b=fAEDzr8qLWzNgs7Hx7egRZqiE0wSv4t3e6FQuUbXajUk00p8BPo/atI7MERr448qed D9A+wv2Obt/3VfV6pm9jc8XU4DiphLAbn8RXsp/fuwkfncTAElJJHMKSsxERxBcFxNmi 7IeLSuXRbezRb1CUA/B8BGSr4/gT5PL2Wfp0Y= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=KmB0kM7FYTXTEe/6qF424ukN3G1KmP0NX9xTUplNLYweEd9iXj3eoAGsxRy1Xv2nBz oOlWj+HuQcmg8IkSfXYcmgpP2BTBgu3B8oVwm3zW7aayCLtQ/sio4z053xPdgqblRf3K Q0cF/2y9ufzlJAtTmBvfJfqACaQq4R6ZzwJZw= MIME-Version: 1.0 Received: by 10.229.64.75 with SMTP id d11mr6679407qci.20.1281442195640; Tue, 10 Aug 2010 05:09:55 -0700 (PDT) Received: by 10.229.5.67 with HTTP; Tue, 10 Aug 2010 05:09:55 -0700 (PDT) In-Reply-To: References: Date: Tue, 10 Aug 2010 17:39:55 +0530 Message-ID: X-ASG-Orig-Subj: Query Regarding XFS File system Subject: Query Regarding XFS File system From: Amit K To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=0016e65da910df1171048d770210 X-Barracuda-Connect: mail-qy0-f181.google.com[209.85.216.181] X-Barracuda-Start-Time: 1281442196 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37580 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 0.10 BSF_SC0_SA085 Custom Rule SA085 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0016e65da910df1171048d770210 Content-Type: text/plain; charset=ISO-8859-1 Hi , I was just going through the architecture of different File system drivers and i found that XFS provides a better mechanism of data handling under heavy loads. I want to develop this driver and was referring documents provided by XFS (http://xfs.org/index.php/XFS_Papers_and_Documentation ) I have some queries regarding XFS Licenses-(CCPL- Share Alike Version, which covers XFS documents.) Query No 1 : Do I need to distribute or share/Open the Code( which will be written by referring this document .) if i want to commercialize XFS driver. Query No 2 : What all License related conditions need to be fulfilled, if i want to commercialize this XFS driver(stipulated by SGI). Response Awaited Thanks & Best Regards Amit Kumar --0016e65da910df1171048d770210 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi=A0,
=A0
I was just going through the architecture of different File system dri= vers and i found that XFS provides a better mechanism of data handling unde= r heavy loads.=A0=A0
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 I = want to develop this driver and=A0was=A0referring documents provided by XFS= =A0 (http://xfs.org/index.php/XFS_Papers_and_Documentation)=A0= =A0=A0=A0=A0
I=A0 have some queries regarding=A0XFS Licenses-(CCPL- Share Alike Ver= sion, which covers XFS documents.)
=A0
Query No 1 : Do I need to distribute or share/Open the Code( which wil= l be written by referring this document .) if i want to commercialize XFS d= river.
=A0
Query No 2 :=A0 What all=A0License related conditions need to be fulfi= lled, if i want to commercialize this XFS driver(stipulated by SGI).
=A0
=A0
=A0
Response Awaited
=A0
Thanks & Best Regards
=A0
Amit Kumar

--0016e65da910df1171048d770210-- From global@a-aidunion.org Tue Aug 10 08:35:57 2010 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7ADZuoG090823 for ; Tue, 10 Aug 2010 08:35:56 -0500 X-ASG-Debug-ID: 1281447378-1a31026b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from n63a.bullet.mail.sp1.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id E6E0E4A6B4D for ; Tue, 10 Aug 2010 06:36:18 -0700 (PDT) Received: from n63a.bullet.mail.sp1.yahoo.com (n63a.bullet.mail.sp1.yahoo.com [98.136.45.10]) by cuda.sgi.com with SMTP id 7atvOEoI74MnOEDp for ; Tue, 10 Aug 2010 06:36:18 -0700 (PDT) Received: from [216.252.122.218] by n63.bullet.mail.sp1.yahoo.com with NNFMP; 10 Aug 2010 13:36:18 -0000 Received: from [67.195.9.81] by t3.bullet.sp1.yahoo.com with NNFMP; 10 Aug 2010 13:36:16 -0000 Received: from [98.137.27.222] by t1.bullet.mail.gq1.yahoo.com with NNFMP; 10 Aug 2010 13:36:16 -0000 Received: from [127.0.0.1] by omp132.mail.gq1.yahoo.com with NNFMP; 10 Aug 2010 13:36:15 -0000 X-Yahoo-Newman-Property: ymail-5 X-Yahoo-Newman-Id: 567817.56446.bm@omp132.mail.gq1.yahoo.com Received: (qmail 64677 invoked by uid 60001); 10 Aug 2010 13:36:14 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1281447374; bh=AsfNFAXpVF5wgHefjPacjxzgwQj8FI1uRx8xHv6h2LA=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=nHnMVRQarL0ID8wxveLPQI0PY52NVNWZd8K18vMF8NAj8P5xiIh9WXxvhvkkC5DebUu14wxd7np6/QNBCbCjmQO/VZKcqRnxZ12C48Qod3hJiC91rHC59P7YqNr1x4+kVoETpdgv8+BumnyoJARsMtMOF65KGlnUGCYMqBeqzjg= Message-ID: <616616.62829.qm@web1203.biz.mail.gq1.yahoo.com> X-YMail-OSG: e2otdRgVM1nCapq2eVP.bNgMOlj5c_keRTc_3QuVFPFgx9Q lCmcAZ6wmKWsSsGrCZLKDQecVTA3Yr0bYlQFmvup9hml5e4fG7m.0qRpArOL zx9ns7Niti_rUaVFIB.oErv7PJoyD.Qx2fyFfPdn_ogFWi0.xmAEvEBAhDoa Fk0FXvtWKSIN3V5A8RW9M29wOdgtAdrFWXPQC_5G7LGAv0HtDfTN6brbq5ev u9f7T4rdids4gTWN6sSTwWEw.lCsyujNeVOlR58iRsGSPIMiTlW4K3NdExVF gfzIpXTolw5UiuWmqeE0CP5sNsS87uUZMnAgoak_K1h856t35u4z4IuKXETO ewAg3WMBMxwz1OWYNBsux3NJBAn9W572PrxZZ_.R6jVYDLkGwiiU_cZ7qLXl ZC2dMRTaCIgXqzw7fdBbrsgCI3xvLHesvkNauck8c5HRiK2fpDb6MnC3AznR zvzc.uPTjwLuNU1raOoS_hWpl.zfNDvYjjZ0n1ShgSOMgwBhpqqui1Z7EfiB I.8xVZI7fpHQ_gijVxJGVaqHbTC7B1GFA4VrCl5ANe6zlvVHjN9KoVFv_hfc - Received: from [41.219.193.133] by web1203.biz.mail.gq1.yahoo.com via HTTP; Tue, 10 Aug 2010 06:36:14 PDT X-Mailer: YahooMailClassic/11.3.2 YahooMailWebService/0.8.105.279950 Date: Tue, 10 Aug 2010 06:36:14 -0700 (PDT) From: Project Contracting Office X-ASG-Orig-Subj: Work and Migrate to Canada Subject: Work and Migrate to Canada To: undisclosed recipients: ; MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-389153779-1281447374=:62829" X-Barracuda-Connect: n63a.bullet.mail.sp1.yahoo.com[98.136.45.10] X-Barracuda-Start-Time: 1281447379 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5052 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37586 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0-389153779-1281447374=:62829 Content-Type: multipart/alternative; boundary="0-1051780831-1281447374=:62829" --0-1051780831-1281447374=:62829 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Work and Migrate to Canada --0-1051780831-1281447374=:62829 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Work and Migrate to Canada
--0-1051780831-1281447374=:62829-- --0-389153779-1281447374=:62829 Content-Type: image/pjpeg; name="Employment2.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Employment2.jpg" /9j/4AAQSkZJRgABAQEAYABgAAD/4QHeRXhpZgAASUkqAAgAAAARAP4ABAAB AAAAAgAAAP8AAwABAAAAAwAAAAABBAABAAAApAYAAAEBBAABAAAAmAgAAAIB AwABAAAAAQAAAAMBAwABAAAAAgAAAAYBAwABAAAAAAAAAAoBAwABAAAAAQAA ABEBBAAdAAAA2gAAABUBAwABAAAAAQAAABYBBAABAAAATAAAABcBBAAdAAAA TgEAABoBBQABAAAAwgEAABsBBQABAAAAygEAABwBAwABAAAAAQCpdCgBAwAB AAAAAgCYCCkBAwACAAAA0gEAAAAAAAAAAgAAo4UAAHqyAAAOZAEAyI8BAOiR AQAVlwEAnaIBAGqpAQCksAEAJr0BAFjKAQBX2QEAY+QBAKDqAQC18gEA2/QB AAT4AQCc+AEANPkBAMz5AQBk+gEA/PoBAJT7AQAs/AEAxPwBAFz9AQD0/QEA jP4BAKODAADXLAAAlLEAALorAAAgAgAALQUAAIgLAADNBgAAOgcAAIIMAAAy DQAA/w4AAAwLAAA9BgAAFQgAACYCAAApAwAAmAAAAJgAAACYAAAAmAAAAJgA AACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACQAAAAyAAAAAEAAADIAAAAAQAA AAAAAQD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgy IRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjL/wAARCAiYBqQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAA AAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi 4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMi MoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH SElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJma oqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiuLk1uHUr2G90/y5HifLnT5A090iORGq5x vTbKhYSKIwt2siSjaHIB2lFedpGdNe3SMRpd2ztcLbqZHIlK3BcKJXaRi4t9 plWAu4aZ0BMzmPqNI0OxhikPkxyJvEYSS128xTyOjkuDI77m3b2YhmHmLjeS QDcorH1HXEtWntV/dXYyseQsxwYnkWQQq4kdcxyKFUb2KNgbQWA+tv5t1DFa bposxxpuZz5u4ALKY0cRKRJC4JJbY7MVAQ0AbFFRwzLOhdBIAHZPnjZDlWKn hgDjI4PQjBGQQakoAKKKKACiiigAooooAKKKKACiiubtfF1iqKL29tGP2fzB JbtvMzKyAlUQuAHE1u0a72dhOo25HIB0lFFFABRRRQAUUV438TjMfE8qCONW ZLRVlLlliTy7473QgK4Km5DI7LGNsZdijSKgB7JRXzRIlvdo8Er5gMTQy3Ez G4draS3kuWmkJXccef8Aao1bYZWgmJCMsMUUk8lzOZZZYZFllQzSWkpeWfM8 nlXG6NCu47pGgWNdo82+nYGArJHCAfSdFfNkFtDfXcVpFJHexvcCAATDEkUl x5Ezo6qhSImOytQ8Q2eS0hWPd5kcZYAa7JYm5kjuTfXFsS7JGZZLZ7xt8kig 7MNPdiQxgOivFDGRKUm8oA+k6K+aLW5nu4oLzdAZpvIuWW4llxbzuu6Elsbo o0Q305lPzkGRi24w3LkkSeRc27L9jV4ovkvZ1h2wRvHYotwyDcmUlj80rnb5 dxGjqZZkiAPpeivmi9uEi82S5i8qExSyPaXYXMdrDvZQ0YXy0keWKzjO4FUk jSJQ6h7eKxcLeWt1PF5XmXMHmDbNITbyGKWcyCSSRm3Ry3El4uTiQQW7hyqS yyqAfR9FfOESOt1aQM89yy3aGH7QzRSTyRy3EUQ3SLuSae4N6WBbfEZopFOI JMV4JUMUJ3fad32J3MECpJcErcIIljJUFpI5bl4Y2QIYYbaMq/m7AAfS9FfM kjQxWrSPPaNsS6lnnGJopIzLKs8ykyCRhMDNaq5fLeTBv2tLC8VyV3juijpO GTzR5NurCQRJLYeSURGRtxuEMQKqjEp5WLcIPs4B9H0V80edBbwZa5gjtYov 3kloIjH9nif99JGpPllZpxfRxEpgCbynXZcRhJHkLO8V3exvIHliuCY5NkZZ d9xlS6vIkVqLrcpJmVrrcxE07LEAfSdFfNkW6aVB9lkjmluLdJoURWCGOC4V 4m2qOUW8tImRkI8x2iSGRFWCo3+2S2szW/npqRimMZtsiOS6aKGZpFb5yzZN pEjsW8x1idC0k5mhAPpeivmjUnt5f7Qa3TzY5JblbOFVJASfyZLZFVWEo8+3 SC3VEK/u2lGxBBIZbFy9veXVyz3k8lhPd3sbXduS5MRlcTXG4jZtNtHfMqqp XzJ5TFkl0gAPo+ivmxHmCeZcWUdym8Nc2EcRdDIGtZpLbyjlkPmHTrJUG8KI 5CUFR70tN6z3l88lrFJJdXVkVZnJ+yu1ypA+aSVbe5aIkZ2xQ3DKp3z0AfS9 FfNgea2mjheyjN1auJBp1pEUBkimmeVYgP8AVETXjWsUgZgTHKybpRCtESAX MdvDe3d0zOUt5tOljzMHvre1EsY4SMkWsoT/AJYwhbXawkwzAH0nRXzZHOWN pNJLH5cyNcyPG0ltGIUkS5McKLiRAEtoir4LpbiM/O0kEMcZNw9rFAk/lXpi Fq7vMLcRyiK2mdvkI8r7NK6GTCbljtIEA2JMVAPpeivmybdeXF02nWskVw1w ywQOixvDcsbmK1iYqpCG3Se2wwbMUkscTkDYYBJ4ZE+12cumyWKOEtZZ2EkN uHa1jYSMdp8hIksrdgf3jR3UjN8wkhQA+k6K+bLe1W+mtdPuUkxdPFbySS7k vHNxMLW5uXAQGJyUETKcjfAd8jCXF1HaXj3kEOpEbpr2X7XPHC7Q+bJM73gh gKH/AFjy2QhDhmdeASzYitwD6Xor5sijbzUUzWgeG4t288BcuRBcG3kkMYAg RfMmbchISCBTG6+XDJPHK07WzKJZ7SWW0jhty8cqyxzvckKpSNUxIksccQSN Q5XTt6gRoIZQD6Xor5suCLma6+yxx20sjyrZxu8cqwm4mIhTAD8vbWyARoHj aCEIm83S7ZI5/Nu4ru2TKCXzbUz3XmCJRqV0yTvOS6bkX7QxYeYwESvmSJrh QAfR9FfNFhN5FlbPZ3M8FrbRJL+4HlyRwx2YljJAKvG0ojvZGVWJJJVZES5a aSSCFUura2lNo2Xkjuy0jQx7I4oYHt8Z3gRwShS0mWhia4kOZS0cIB9J0V80 WcqI1ncbvLc+XdyzrApMDiJpIZniBYIsVtFFcIit1aeBFKO6xEMSWdrbvIv2 SygiMxYzqFtgkSxQ4ZQw8xTLcTebGAGa6gmCu8kcDAH0vRXzRIjxo9vNZ+ZP DE0EyWoaTyytvJaS28Yy2yQtcWdquDIT5CTOGUqXkuJZozdNB5b3QeURi1nO +S5ltj5bodx80yzRJLEWIfbZRSfPLODIAfSdFfNjiFXeeyto5vJeWe3ZbgeX iJfs9uUlBUMieVIqu7LIkUF1OCrSKYy3IjmtVso45ZIniS0jLxxjzmmF1asv ARDILyVYv3QOYMsqRGeNQD6Tor5ohAgtbf7LB9ogtIjLYCKGZGcJEsMD7AAf MlnaOQKMPEuoGRSWl82IlCW0Bke43RxRS/6ROqqitvsDKwxG6JG1syxqFDRs pESJICHuAD6Xor5saJbe6mge3kJje5ilt442Z2iSK1so02KwZwGe4t1AMnLS KJclrlYz5pRjb+RcSJFctBKNhtWb7PHbu4c5UQvLaysiKFURQOrqIJGMQB9L 0V84JbRT3kQiXzLQy28TJ5TywzW2IGgPlOfulY7dnRd0jL9jh3GWWRjXguf3 VjdXDTzuuy7RLyXZIpZUuWcyxjDeXaidi6K0ivdCUYlnKRAH0vRXzRFbpJAL B5dkLxRW8jKViWOOR79m3eSxSLcrGcSKpSO3LDMinbOMj3PmRx2fkXV9EgEM QbzFln22ToYWKhY4jLdwx7nCoYIlynmE3AB9L0V82ORemO5t44xHcJO8VzE8 bwWkLySHagcKGAiht0G5FBiFzFI0aQsIBIlZ0Bt5LT7Q8VsbaeNmaHzV8lYm 2spmEdrbXcAQEy73OCJZGSEA+k6K+aBcJLZwzzxeXbJaJPOb4KYdhIuI4nRV 2OpLWIfYq4hghjXDzJAskTsjxoryLOXKM09ysUgndbd7iSWQfxwRvF5jGMss trHOFP78KAfSdFfMlyVg02SBzHpkcdvMY4DCxMFsIpoZd6bwA585lRWYhJis e6SWS6dblyHnuJbaWCBA0qtFbzQs0Ala6kaG22gI0sYitEjMWzdwUP7yCCAA H0fRXzYJRZgH/S7PyXe8dZ54/OkVrmOEG4ZmUiUvLHI7B1xJAV81WjQWkclq iI8N3b+XBFE0UyfZF8uWKK3knlVFG0xxtP8AbZCjbG3xRInktE7QAH0vRXzg i5u2a7ufIjeUrf3YuPJMMjakjTSFwE2zIs9g5JjQgxqGKiJ4Hr2919kW3vrq 3gsVtdrTJbJ5TWrRSzXc0eOVTy3uYESFyVeU224gpJCAD6Xor5stYDA8VuYo 5UR44ZVtVkLs0Kz+YmH3ElIruG3jhlzvMluj42ywCO1IJgWWfatx5DyzafNN PM5lvf3zoFLMWWbYqz7nLNp8QOVnRWAPpeivmhrh4YjeyxWMDDfcSMQywwyx Lb+WEkRflhiS8cxyDczK4iiJZLeUyMZrQ3KW0d2WtUkiS3Rz5waKSKyjhJQO onVYoX3R9Zp7VyhSIMoB9J0V82ACGaNtLkjkmjcQ2DQJGiXEizTR25hZSECS Xpa58piQREw2hIEMslujrJBHZvPIr+XDEIWZSwe0gS0Csy4DZSImUBAslxZy OoKCFAD6Por5otrdL+CxtLaXyLK7iisbaW3KpGDdPLGGEZZs7IpthBZjvW72 7nMtxGfavMs49TFvBEP3uoJbSJ+6SOUxRx25eXaqx/vLKNx8gMCttCIQ9yAf S9FfNjx3Kp5CTSSEuY4HvA4M0oa6gj3qwMm+SVtRuHiZZNwEcIyX2mSOT7Rf 7RJsbzYHEly/nG3UTssdzI6uFDfZxdzt5bbiZzcK5HzQAH0fRXzRbi4Vbf7H B9luk2xW48kNJbTpLNcMsyxBVCxy3VsvlKvzuYCELo1tUkIhkkheyto5Iwjx Wds1wJmS3a8lhDlsyBh5UQgO1ZS3l2kYMqStCQD6Tor5ojXCIVigEtlEsiXF xJ5gt/Lt444X2xsSjPDZXMrGNuI3idHkkSEEkuE05HkMXkKkTTG3uwpfyLW3 khhScBcfvClvBIpbhnljRsyzxxgH0vRXzY9mwd7D7PIzK8tozzSrHcXV3Mvk SBZGDhXdhOrSEOGZ2RdyWonijS6yzXFlbwXUt1m88uBN5vSkSLlt2TJHNPP5 XzlJCkU0ZLTzyq4B9L0V82Blhmjltr+SYRuEj1Xa0u02800klwe8kRMdzeYL sJJfKjUOIJBRDbTKIYLe1jsXneC1slLEJH5tyksKxzKUd4FMEK70+Z2lu5ka TYxIB9J0V80RrBqMCSQRTrDqEqrAwkiaRopnjtBFEGYRxTPbl/lX90phkHJj C2kn2+a5LXRlju5ZEe6uEjgKBhNJPIqDzXVIovnnk3SK8nktvYPC80UYB9J0 V84RQf6YqO/DyyK9xcWuCqsBZyXMgkC7WZrSa4mjfczIgU/I1ywr2sz30UEr S7JrryA0n2hluIkdfNhhUhA5mkkhFx5veSORkhcTKLkA+l6K+bFeZDdXMNlG cukrwxRF1mkFsmIEUbvMgM1zbWyhdoEDARl1lmcEEkNjKd5jkht0tpLkABw9 vDBbxRh9iNkSxpdF1BcrCsjxmSJmFwAfSdFfMnkQ2oWy1C5kt5I7dLW72MPO MUccFvdyhAh8wxRtdQoQGTYkzjDxs00k3lebJDrHkWcZ80XcUW9TZLujhvGj k5xGF2QxqAFJtzErOAy3QB9L0V84Mt5cXDx6pFskuZQ19CZCkS77q7+1AyBj 5Sq0TxZV32wPcyhCWlApzTMbW5e4EfnyJdtcC7jU+bKJYJXaWFAwEqNKtxKg R8RW0UJJ2TUAfTdFfOE7vbX5UpPcNaymT7KVZpt8U824htzSGR7i8FvHKpfY zTHMjQrO0eJoiscsl3K0SIBLYocSCOSA5QRlciWeS3EQjCSCG3tVzGkolUA+ k6K+bDJDCIryYx3UFvbyb3twJl8n7TeJI0RCCNyYLaJAuxQyIu7bbxyoRZZt KA/1YvLJIG8uecxRxTWkdlB+8YtgxNdJ5e5RsYwtuJASW3APpOivmhrN0tRZ QHeEiltIZLxGjEcRimsPOdnAaL/V3E0iHeyxwwKBshcx2Ptv2iWO6jS+e2ll lvI4jB5xkt2aIRQyKwDOzfaVUoCXcyzFnMd55qgH0fRXzIz2yW87Xzx3tvHb 5llNykguoIRKZiZDlvKuLwXAV8lvMkgf92Y4llsXJubQzyXBklvGuLqOXyYX gaa58yOSMBUfPmvdW6IWj3Fv9IVGWO2R6APpOivmjUvNitdQCeQYliuWt4G2 TpdMkUMhcA4UwqlpA6IAqlRvKrHJDbSWNSiuIbrV47NZ43iu9SMVws4RlfzV ijOXADNm2ikMjk7VguJfMaVT5AB9H0V84ShJdUlEME4ja7uzFCIVWSG1NyEy kUgY7mjtFs0jKhSXWNkjBBuK/wBt8nZqUs0AuBFHdSXkFzvESxfanLgMx3qL sxoo3Ms8tsrSMDOjOAfS9FfNiWbQulvbW8m60eK2KCVWkWdF8nJlAZt9uJJ0 BVC3mvbMiukkMUcY8pIp4T5EsbYSZH32wkhjWJ2CSJvZo47BAgKmQ4muD5ji WITgH0vRXzYdxPmSWsmpO9xNJPGEX/iYFZLO6IZAvlEzyTqhK5BWOBY3lwFn Id3mQww3Ul44R4jfWrqbiaJLyUm4iYs5YyvG4jBz/pM4Ysu21oA+k6K+aILh 0gS8torFXWJo1MAaO2QI893MVaNWKxxvI6psYiQWUzRkSpCyn2dAn9mWMvkJ PL/Z9okpUCWNrfylCLuxJIqXW7KFEllvmk3GKIuQD6Xor5seSG+MbTGO3s7p J5A8YANtbvJIJhDuQMQmnqpVTGCY5YySCltHQ7312n2m+mktLkubi4JtcfY5 pWupTIBuzi3X+0GVVYyCUR7iWzFCAfSdFfNjxtI7t/ZckMl+8o+yiZYnV51+ yxWgySpdVlniXICxrBuVQ8dzCwkyo6XQFo9srxXSzNG1r5kUK+VE+4hRC8jS rs6fZ4r2JhuVIzAAfSdFfNEdm9yiaep+zTXES6fHK6NCTJ9nj05CQw+bdKlw FV1V44luWC7nXYS3jzWUt7YjyFmiu7y1kjdjHAGsxOiLtOD5RtzCM7Ar2kLR rmKdSAfS9FfNl2IrW4u1iElusFxP92aFPJSEw28EbzujiKWLfFGrjc0bB33+ XciVI71HXzYpbPz5fKlQwxBoUaebeFggDESDcLVbfywy7YYHjwJ5TEgB9L0V 80X7ef8A2jJZywag7xXjK8cfz3M0nm2TyxBFJ2zSSrIWG8MzwQrhIHdLF5DK 0t5BBbfbIbiWS0t1iKReeu5YrbmMAlZA8QMhkRUguHjRI1lgMgB9H0V82CSG 5uHuIDHIZrhbj7fGBDHcySEpHcs4QmJ1X+07ncARAdisSYRGsbPb29qJ5k8q CGKWCWBlMKwIsUxuVkjRvLEhM8e2PK7W1GSBXVkV4gD6Xor5sn3RmW3ltZJ5 rdCrWjIsvmmKTPlPCqhXQ3bWNoGiXDLZsFMaDAjniQ/aoFX7ZJFFcGQvOo80 ybMTGZQufOWNQzloy1tb3ExAM+VAPpeivnD7RtvvPa+8vN39rS5hi2ebmH7Q 126nG/GxbxolztzbwsHyggr2vlQRQQp5FmbfyA8U29/sjQL5kjLt2lpIbd5S 6oEYTyzsWR/s4YA+l6K+aHiR7dbS7XyLWa0EMn79bhdgtXRnAwN6wW8NvOzJ t8yRYyFdJLd45LsXdybiGe2u47qW4e3dEuELzXVxJJFJCpcqmDukTzNpVZJb xoo3UFogD6Tor5skRrslrNJP9LuA1rPa2yq4LSJBaGNX2+UUWaaRA/CRT2ye YGMLpHK9vcNczW6YhuvNdhApGyO4ilhgQh2XasdubmVTIEQQQQkeSZpMgH0v RXzYFmFw/wBggj/tCO4UIgyQL4Ex26ktGAoiCWhHCLFJcmFkjSZliLaJY5rW XS7eRVLxR2T20bAsomCWu1JGXyx5kwumST5GAs/McvKZHAPpOivmy2imcRxQ eWgdIYvNjgMwMbxwxQllZVM4S1RXwu0tJfpCYwJXjaPzd1vHMiwRMLSV7e3n bKQLLaxOMOY2MscNnHb7kC7n2zK7ESRpMAfS9FfNF35VlLclvIguoPt+43e9 wMtGryyFt/WWaVXY+Z5os0tw8u5jLJc7muJIftUlvdm4mihlunV/IniM0KmU qzbZYV826klQhQ10ZWOVjSUA+k6K+aLpE8qeQ2d9aJN59pDaoFWbZt8m3iYA uXmMO60XIbazXDFFeCVpZJIVnlu4AbS2864WKeaCRmXZJA6FkIJWKDyxcCNp FcR2q+YFRsG4APpOivmwXSwAXN28lvao7y3cUe6JoTFcxzSRKFc/Z3EEOnRI vmYR2SIDcXeMigu7GaAvFHbXNrbozrbqgEE0czKVQ/JHsW4N1dMjNsJtCuFh iWVwD6Tor5gu/wDQtJ1FIP3S2enywTbvnBkWOeBEeR9jMyQTJwQpR7kI2CkN qdDWJ/sV1qVwU+0R6bd380cjXX+raKWSOJScqfMB2sSTuT7Q7q7T3UW0A+j6 K+cPsdxbap9msDALq3u/sVvJGgSNZo7nyowQgzGv2qWS8eMq8YH2RONyA11m 2WplguZ7C2WKJxc3I4t7cxQxRMQpO6aO3S3uD5ZUNLLCCQ8cMbgH0vRXzY+6 6dzHayW07PKogjRZxau6+ZLGisv30j/s2z8lgiuWeEAbywjuYkvopZiv2kva KElE6s7RMskdwi3GFVWaVWZpCzKfs95OV8uRo5AD6Xor5ovF8trxhFBZXi+Z cRSmTy0ikWJYUk2symONJ5xBDnBh2AkRNDOJpJxFELiaASW8UdxLgedDE8CR R2sdvHJLIjeTLEtxBEHwzRSLNl8Ss8QB9J0V82TSzIbkw+XHOr3axRxTmHyp ltoA2wM2FRJZbZ1V9ht4tPBIDq9SC0zeTx+R9lgMotszj5EiYRQFnw6M0MNq l1DhwsoxM/ysJhbgH0fRXzI8gvNP+YyRNJZFUJEbNarNaXUzSSbE2oBAYI8K PnhT5EEkSpBYu1W9u7gSWEiG5R2eG5ZppTB9okiihkRdzktLdwGUJ8we3dg7 XAYRgH0nRXzZNuvRdJJdSQpKjS3UyuoERnjuVnuHjRmSSVoopLhcDHkyvGj/ APHuwJTNM8jxx6bazSOHXy3JW0kdbgWhMig7UghmnlE2MbLOPaETy5ZQD6To r5oke3ZHltk8iKeJjFDdKRsha3kKiQow8yOLT4oUYKXkT7c7AmQqpknnhill uLiW7EFvcF5JJGAkjWODJJJ3BLqIT5z+73Xl738r5gD6Tor5wgW8gntbZovJ uPtdvaMschRVkjR4jEgds/6z7PAhR8yNpzSGWMx+alezl+yQW9zpiwB7eK2+ zxlsKu17iaJHJjVlhkWzguXdgnzFm/dJO7oAfS9FfOFjbRBrS0VfO0+KW2t1 EMTqJbOSKNJH25GWkieSQKoZo31AIA8txmKPTpZ5obMyXEkci29us3lyRRoh nh84TFgoMYiUxkEKAgijZUkWwJcA+k6K+ZCkrWRSRI7SeeyS3RRbTZ86RJLI RsnLMYwzwJGd8mLWWYdWSewY4b64RohHcW1zcNBFChEaMXIV4opA+VExigtI zGzRpHHcgb1iaZwD6Tor5oab7bai4muZ5re5ilnmuYRtaRZYpprmRBl0VhAk 8axsNouLm72MBGdsjxTTO6Dy4Z3eUu1jAWe3uYlxGkQKrsMSzYjD4cG7ht/l eISRAH0nRXzYjszogeS2CPEiRWlyryRCZdyRwOOJHW306GKLcuXlkWVWI8tz Gbr7LFBPLbwJHaZne3gTZGzRLLeN9lC5Ybft3krIpKojCdN4G+AA+l6K+aLm JLVL5btfKjhllt7+5tp1GBHbxQXBVSNo+5cQwRkYX7anEIaISXIpL6PV4JZI Y4tQk1NBN5Z2I1yZ2nkTYxwxa6+zwqQ2ZBYSfvI0VmUA+i6K+ZIbYy6barFa yXoa3WxtULSI8m+K2jBBJBCTS7VLMY2W2cISBLbqtiQDUSfJkjuI9TuBClwE jCzs8iSGby2JR3nnihKowHS5hcoluHjAPpOivmxSuoRKXWR7K7SVXkgvWdVt mnuZS4mkKsZSk8qjcgHySGSRUS6iEa+VexBpvIuUn2CSBN4Fw1ytxIzeU2JH kcWVssau26QFJN0c0okQA+l6K+aLjzWgnafyFnuopHdp9k8byO897LMwXasq okVpvKx5YLCyh4isc8lwq3NxqM8NhJqEiXEhe1lZpXjClJ7a2mXoC8sgR43b MkkVzzNM0XlgH0nRXzhCu26tLi3ud+LtI4rlrjznl8uW4ZPLkUEy+bciaT5g 2WtA/lN5kVvVexKQ2sBtrfzIraKxuEhZliZQkTbRnzMQyOkn2kSDAjW4u3Je S3DKAfS9FfMjwtPplxbRmOcGyWDY8irEQNNt1jkcsSVRz+/Q7VI+zbpQBHvt 7lxcy3F/ceQ32g3crMojlQea9xPDLAFWUHY0yzXGI3yiQTS/6x1uFcA+j6K+ bJJzDLLMssc0caSzQiVpGFzCkF3fDcJMmQSmUGQZ3xwzpGzs00uI7qzeWKez B+2yv5+nKzozM42/O9wWDOG8+4W58sAuJZYogJJABbgH0vRXzhMEvryRXgnm W51CWZ1WFfKmeQRzMSAG3Rq7wEf6zzGuIFX7UtvGJY7eWaQWUx8u5ld7aSG2 jnMiyzG5uQVjuWbmVpp5kSTdlESeQeYYoppAD6Tor5ogbECQ2UsDKImhjllj 8uErK87QySRBQIVIe8uWBjKi3WOPO2WTf7n4CkaXwZZM8MkJDzLtmKmYgSuA 020keeQMyd/ML5AOQADpKKKKACiiigAooooAKKKKACiiigAoorm/FOpCMR6d Esc8k6OslsRHL5u+ORY42hY7pA7BjjKLthkLSKqkMAR6teXV3LLZRDb5m77N IXngdSWW3f8AdxnzJVQu7l/3aDdCQ3WVMO8LXMJS8Ml1O9vKY0vYV81hJDcq H8gu+12jgThbcn5psR/vJVjkjs4JrpIZrPzfP2t++tYleZWljWQvGbVX5juH ZiqlVa6uUdo8Kwkt/NuLJoBaxzSMiiSGVJvKkd0iLpPFGoUGQ3cxdpI4yPlc wuseQAR6iUjg1KCSeCFT5pNvPMsKOJHvQzFXKptC5lZngcMsTHNwQGXQnd47 pJ50nKW93N5TFWt5Jh5pPlrLIzZV5WtkWMtCHMRI3RYShHnt4mmsBfEwRGRV eGWASqFSeSR41tsGaWR1RlClgPMMe1xIlEllZwb/ALRDuhl3W8kktsDJPGnm b40V1kmuJHjt4kfdxIiq6HIxQBXa7fTYiJNT8yG33uzNcMIZjAtvGSX86SaN VmGHbBRV80SqxIkYW2gtpUs1WCY2WW8poonnhjt2tCQqIX27lRZRHFCoO+L/ AFT4ZtRHuZL1LOZ5BeSPE8h+0vhBG/nSBE/dBolEkcQkQMWLqJFIQg15JJfs UN5PDGwRPtskd6Zkt7dGQzDzJJiMFZ4gQ/llolKjy0B3UAWPD1isTxxyQyJJ a28CBwjRAFFkiMQ2wxLJEpDuucjMu4Ki+XnUk1qwEEcsN1BcLJ9nK+VPHykz 7I3yWAKk5xg/NtIUMcA8/wDY/Jlka3s/PaKWJWWe18sXTK0pSRytrncbpi5K fKoCzAgMVeubt3lGNT23H7kKLi4YO7syKGeLzodrDNlI8XlrjzXRd5mNAG5a +JYbq9W3FvIuEzKoImeNi6RgEQ71ADmVGLMuDDIQGVWZdyvP57f7bEbKC38y FYjHDCYMx26usyRxshhcQsEubfKNCjKhJZ5lR1rtNLB+wK5kkcTO8ymRJEYK 7l1UrISykBgMHGMYCqMKAC5RRRQAUUUUAFU9Q1CGxt5mae0SdLeSdEuZxEpV ANzM2CVQFl3Ng7dwqS+ufslnJKGgEnCRCeXykeRiFRS2DjcxVeATzwCeK8n8 U+JXudRkuYWnisodt2InkZ9xiLzBmiLAKwOmyfu/lK8q2153a3APVLbVtNvL iS3tdQtJ543kR44plZlZCocEA5BUugI7bhnqK5fxVouqxvcavpE8n2p3AMdu ZFllUKgijySyYEik5Kqi+azNlfOSfg9O1i88OXlrG15fCysZYoJokuSyRwwC eJyAeCqpZXLHCZfG4KHljFr7JDJbazpZ82GOSCdGint5SkgB5WSJ9pZSQQys ASMgigDh/CvjS0tkltdVe7tEjd0jNxM8yKqsG3M8mZQTvlU7zwLOUlYfLkRf RK8v8S+CXsL9tU0uGBbm6lY5s7FmmaZp2mVmPzbsP5Mm6VljDWyplEmbZ3mg Mv8AZaxRxSRRwuVijaBogkR+aJVUxx4AjZFwF+UgqSzKSQDUooooAK8b+Ikj QeN4JEhkLpcWUybyr5dEuZE2KTli7xKkca7SWSdcxeeXk9krxf4mm3m8VSW0 s/mrN9njZRMUKhYbppEyhX5UQruDMo2Xrb3RWieIA5C3S3a20+2uHzYP9kG1 WN4CBctb+UhVcTsQFfB3h304gRtAsQEck8wtJbi4lke6jt5b26jVjKisbe7E KYG8Om5nfBY+bHI80hlWR/IsRXM1wUm+1R3U7pbs0twpSGRpJLiV/PXGVikM l1OW8tMWsYTI+0Nggnhjezkglu7WLf8AbBNOwaYsyyXHnyj/AJbGOFLW7kCs 26QxxspBiEAAaiJle8jjku5b63e4a1V0LSwyRr9njcqp3Symebb5i7h9pkmk Tasbmc1ICGWX7PJGmLi5aC5RI+YbeCUxTqFI3OkHmSRbCgDXEWfKiS3EleOR bK0Bhhjjayty32BixdJ7e3eVVR8oFeJJCZdqqwkkumykn2bMl3a/2fa3tlFc QW9tbRXVrLKz7oYPLiNoqMByWUyXcjFQm43UUhUvJHbsAWGit/PkQrBJZW92 ks8M05liFtCiyRIu0HdC8VocMwJeK381kkeS3RI7MXduliFtrt7xHgnDW9wk gu7uRosEyEncfO8uUu48smaAsZI4rZZ5LqJJdSnjm06cDzZ5JLJHV55Imv8A yJVDK4b7RJFb+SWDlW2bdzyXfFdV+3eW1xFBe3N1E8k8lpJ/rPN3faXVUYZa S4hFsCjfvdzpvjSW2CAFjS4XaXTLWzup2t2lt44ZDGwLQ7oraOUltrJud4p2 TcZAhsRGyBBJFTsjDHptlIY5ILf7OLgRbxHCkSxLFDHI0gC5JuiGO0I73ryy IYVTzpC8tws1yIIL6e633r2sUyTJP+9JEflhQs3m3UUYklBXd5PlRqqtAJbE S7bq0ube53Kt2iLeSXHm5WOW4cSCYA7o3uBPM0kmVH2IytGVaOAAEcEBjMSy RRyl0CTRsslrEE8z7Iwd2+ZYo7a2vIwHDSojNN1MghLN2QWiyPIji4uEmL3K wTxKscPmEIP3aSooiYR5CW5S1O4eRcmqYCS2G3yIH3xWixx3UKyln8i2gs9y KHbzGVmufL2y5RHiQnNwDcuZIria6kkhkYO8oCOYbgiGaYvAkpJ2kKtv9syz eWwjdnkcXRKAEdve/YYvOjmglubTyrwJ9p8qNVRbP7IVVmG23ZpLVf3jKxSC R5CZBGILEFtLp89qqL5n2O7tyLieJI2K2iOEkkBI67IQqnYyLBdo7x7biZo5 7ma3MszXUayW6G9jkvlK+Q0UnkRyNuHmb1uI7md2aP522oFje7kiaOezt7dr uBrLyoYMQbTAdscdtFeyyqFLMrqsqRsI2ISWSBlLylJJ2AC3Igggg8/yoxFG sUwmmby4VeC6D9Y2k2WtmsrOhWT/AEiGIKgRFSRJ7sujQyxwTK8UsSsyeXau Vxb73iyNi+VLdM20xPFaWu0RpsRSUzKXlWO7SSZLi7C2LmV0lkkt9oWUDErs Fso0cq7+ZM1zkqIneQzRW1+zXtz9msvNWaVrcOIVhjnsnmeKVTlFYJGIACpE MMICF7hGIBXP2OWKCKLz7OymzDBbJiMxWkyyy5BO5GkSzOCzHy0N/vcxuJJJ CVHmglMtnvk8q73QkNbRglxGfL3kNFG3keQUZ4ylrZTsVUyfKQXL2VuJrmb7 P5OJ711RhiWK1hLxKPM2wKjPChjARjPHAsbx/L9mJIf7KiQTW08X2O0eSVIj 5siSW63EUeZ8ZMkYWVEZVyrrLLjyIIlIBcBmOqAfaZCzam4ke1tyGkceX50k ygBlcyPFMY0KyK7wQqWkRPstOMXFxa2mIPtchis1Fu0IKXbyxW86RMuFiWP7 RJaxsR0hiij3REIJ7AtotPv4YpV8i3tpUs5ltYnQQQ284numSQEOFDWkzRsD khDgSTSTvFTihaSwS2kMaTNb28UsSSLFaxl3uGKt5RPlxOr3M7SLx5CMEdEu QkYBYt5VM1rLb3Ekklu8RjvJJGQyq0wkiknZlZ4w3l39+Q6sgBhL+YqqlR28 32OzQJcz2kdh9mVp7kZaykiKgtImfn2Kkcrx73Ilaxt9pEYVpLpGu3uWkSS2 aV7kl57ZRIj3SzoxlAwu8QwXTyOHRVleON9iW+Ix5VvXdLy4ktVd5VuozIzS WyOvmXKhiv714bR5VIZSwlmuWYh3jEoARxTR24gh8vTgEMaWs0BkhtWmDlEk YqN0UMccquSOHF+ZSwYxTxzeV9luBN5FnbGIPIkm+CRbeKJrdRMOXCmQNAwB 3okDxq8j3QaeQPNLNHeXVlGmoXDhZrdojGFubqaaSXAO8ElI5omULI5MEEbB 981uscHmpbi407yJXix5E0mwJvtLWGK3l39B+8Sdtw8xB9nlUOITcSkAsO14 uozLFL5eptdzXIhaMgpcIYV3MUX58XcsjM21knksYo41GEQVzEj2bQWq+bbL aLHFHPOpIizZXcJmMgZFZ4IyhyjqphkJPkRgQmy3azjs7Z/JsZfNtbB3Y25a AmKMO42sFX7GbudpGX5DdSOUTzI2lkLzNcI8dlGZJLhntbWWIxktIRbrbFZP lQSTIIWhDL5cFjKqs6uzuASQSfapYZ5ZPt9hLLP5kofylkt2Y7nBLk7XtzMi iQl1klvpJJEMTvVe3vHs2S+nHnahYfZpZIg7IWNtEt3LbIpIWJY2CgxqSiES syBvssQP3V9PtTyL+5li+zwSXW+NpVlTy4QSNjq11JHJKyFwwW5WQFkNzvsR teTbHsJeu2WzuvLKIrR+WkDiFVDfvHCTmIgqqmwVd+IoJACujRabFEk97Alr ZfZ7eWU3jrlEWCUMjqxP757N2jkADrBGNqvutowTRy+VJa3Mc888FpLbSfZU RmSbbHDPGoVCFkMkxs1VAwEbwOVCwxNJYsfna0Nv9uihmltoIg37tvLkijjt 0VzmM3IhitpQEZQZZ4nfatqcV7FftNnpCwRQeXJ9khto4pPKgaS4O3byz7o0 We4iKOrkyQu+JA92oAJJZGF1OYobSaS2d7gRIVMOGiVdqsxKi3mKLhSYytlZ s33ZGLEJht7iEC5je3jeAM8duHWW1jsk2yXCkZ2NbwvN5YIYpLLCpcyTeTX3 td2C29pNHPJNboLe0ltVVXed4EtYmWRsABLa1KxsxLeVPIzSxBRPcM0U9/NN ptzgvK88LSB4440nnJjnnJKuW8mzhdmLB9kguFXfC8jgEcUN9sgjUyWt5K6R h5pMym5uGYMxIKCSdRHaphghNzbtJuUQzsSOVXNowuJLOzkRpY5IpGDW8AkT cYiyhnMVjZW8qb4937xZdwkMKtHafY7eASR+fp9msVvm7bEb2tnviZdpG5TM sOLg7BtM14p4mSFXIkeGCLy7P7JcGK0s4bPDQ+RIzmbZvUmQ4mtJPljJcbNm GuZpXjABl+2RGOaKC2upt8LQvJiG3kdbd7lfvLJHHFEsNvIilTHDI4AbyJXl k862uiouBJFZXCJ9+NN0dt5kF1kxENE5S0tFkfYGA+0QwhAiIix77eSDy4k8 y1eLy1t7dTGXSZ98MKIGjIkcLqEgwsfmxT+WnleeiRyTLNIJswR38rvPMYmy 8V5dLcvcZYrGokSVJLAA4Czb4UVM7XgAJIhfyS2zyNPFqVxLFEq3V1JIgurh os7mZxKdjW8cOCdybXaMNJZvI8emzW0Fxpt1IJDB9otL9rmWNEkkERE7t5WP lSK2ic7UwUEkCRApI0lxHLDbhrlI7rCXPmj7ZJGWknikilJu5QNnmsthIZGU AsrtCc755kqSfdMZZ761kihnQvLFKiyzwxLJ9smjYspRigsmRVkz5kss7uwc TRoAV7e1aHS7WwuUu45ILKKGa3t9vmFJMRTGOMJlpQZXtgrKAJbqT+OKeaSw rTSkrbzx+eyXLxvYZdAxkEYlgQSZaImHyYE7S2lm2Y/OwY7r7YYp3Tz5L5fP kLRZmWG7RfKjRVOJRIsl0rrwJBJfbpSz2775LsQ3JuLfT7aO5tZLh7ey/wBI DRTmOSS2s0UOdsgci1Zgcxumn7i0rLIqAEZS3ureZlf7PYy74hdqxuBYwfZT DJ5YCnzFRFEClA3nC2uZGZfLR4S7uftFrem5acfuroz2CS4lDGIzPCJmAJaK FiGJG4Sy3Rk3+aIriS5vVtbi51TypJ47ZBdrcecwVghWa3kjEuQJW85pCTkr 50IdpZZZYrgkhtrEnSLwyXlpDcCyaNZEbz0t5EhmQlyChaKOedyzYiVLLEiB EoAkuI/s99OLmPZsu5FmECbYv3MM6yBsp/x7xeXdrGCH3xShSsv2ZoKjhE0c 1sRJdw3e+0hS4ukLTxTGadwWTOZSXiubh4t7k3Bgh2kxMDXaSY287WxtLu4S 33E2wJW8miEtpH5UapzB5lwVGfMSXdFGFijWVIbF0LSM6hNayRjT0S4EdxIj vb+QsjWkRkljOGiNvC0KBj5hMly6kuYllAK+YmsGiiWOK3+zv5UFvewqkUUr zxMFmciMxRrE1v5jqf3t5LKpcunmWJzHdGW4Ed3dQToXZInnU3UCyYjVVILK 87TlWwfMEd9A5aTfcGSSOfdf7Sn2hhLBLLFd3W0wqJ2QR3ZBZUb7Ot7JOOWJ vJWaIiNmWn580VvFqFtLJNfpbwMjzsTczXDB5bVSibhl2kjuSg3CR/LDBjFc T0AWHgEzvHdXMcjyvKk1zG0cbTF1331xGWQLlo5Sqt/q2huLeRin2Z2UR2dP tNw8lhIjj7Y0NyqeTLI1q1w4Z+fPQ/Zosy42yyq5O+CSd43FvBHNFpkFjqNr bRTRW0JhLm6iju4Y4E2qDvjaW3jdmUFZJLyVVCfvZIyTytu+PyL8x+fYw3ku +U3vmSrbja65kPmvLfzsED7kd1Ri8QaEAGX7ZEVnigt533pLA0mI4WZbeS7S P5ldPLhSK3aPdGqJKVJVYJpnk86a6ilkhnu3N0k8vmzQmQu0k6GOQIIjuDyX iJ5exf3DTOIgbsLROjXD3ggSS+kkf7JDHPbK7S71jNuC7fJIDO1rPLIS0TO7 kbVlX7UTpBfGW4ZJLiGdCXC20srXdv5m2JQrfMpkknWUx53t5tm+8O0lyoAJ HDJdbSI47UuM29yRKkkcUVrKIE3OI3gjVbYO+0GURK/miJ5HgjW4Sx8ubUYt sltE99PHcBWeY/M06yybRjesdrZyEopeYyAbiJklLmVHgvptRbzY3il86a7g WQOC8V5Ku6MorRj7Q8akbBJLNA8b4MZt7kUNzb6pHZOY0uRcG3jLSPHGZz9n tBtKnGx7q1Yog2NFFbyOihhEYwCuEms5HjnvY3uLZFSU6jKUjZkvDFIZg2/9 08l6TLJubJiu4kby3zQ4mRNksl2sMrlVivUMkr72uoI4JNpaRpXa6kkl25Y7 rhY/Le2KmPT/ACmt7AQ+QsFv5P2XfviMG61XyZZVX7m5kuZi3HkobmRHZpYZ KLEoVt0trfyPN8oLDAywtI88tjJBhUkRYppGRrjCn/VjylkXyswgEke77OJY bqSKLYWW7V1lEJkDmSVfLZVZII7ORVVFUeZYWzxDEhFDkI7vPHHbmB5TdRF4 41QxL9ljhlcAxMUklljIOIwl3bsYzAphSNI7O6ZnaOCazbN5OZEG0KIkNuGR kJ+WO0upV+RVEUgKxlZPsryLJcwG2leGSe5hSO6VoC8+XWSWfCbi+ZTc31vF G+ZSV/eMDDNiQAjVIreIWazwW5i2QyCOFzFA0S3DyMInYF44reacyQnLM3ke aC800YJl/d3CyRQWRkiEk8V7J5wTzbtpJHfzGHmMjtZwMZQu6WHaz+XDMCNE giOlW67mXfbRxWk6opE628EUcJYFCsha/wDLMmXEU0lwQzHLyCcyXDvpMsf2 qS4WezTdJGjyOSlkFV+IQzRpKICCDHDZZyqSyqAEpmtrjdFHd/bLRJHt23ma eVkLNG0gI8xwb+eDCkfNKs3mogjWKGO88q1s5pbLyJktLS7FrcLvuIjCpmjR lU7g2820iFSxIgSAFpIorgNJbQQgWy2MV21n9oKWjIojKQpG0dtNtOWR8SmU NGgczXquYyfIScsSy3FsbU2jzfaNOeDzYVHzsYpLUKu/JKW8cEKI7Alri6Pm lEkcABqO6N7wJdSJPE9xJBNduqlBGvkW08m5gUfzbhjvGwi5uJ2kC/ZiGL3c ovY1tZJUlQxJblFt5HLRt5FvhFUvKfKlhfEgCAXVvGiZiD10CjTYzYCMSR26 eSxmbcJfKvktXd3QMgSGMTpKwTbvXISLYbexdQQudQWGK7FvIlwGiZRbSTqJ GtUJdsCECKB8IQnlj7YxUQr5MgAXYEU0gkkju5ZnuIonKRl7+aSYebJHGhXc ZraScgK6kq1smARbyyhlWS4R3uJLvFwxt3gkaVwMi1injMas0hadrtvOK5WT bKqK0vkzjTLay3M7i0t4xcSNc7o28lWggi3RuCGIgL3UcQjOx0hiaEL5szo8 c032a1uDJczhYYhFJcTje6bImnuDIrllM3mzRqUk25a/nt9zLh1AI5ntltL1 pnjNrJbzTSS21yi+fCtuIQxI4jHm280EYjLRo1wUBaIqlzYuY2jmukea0t7i N5Wk84LbRK4mNpGrrhh9nhF7tHzOp8i4iJkjEZSRlvI55EsIvLu4btIbe3WQ ssdwiLHBDuDEDyZlijkZl2SNDYMwCyGSq6+U0Qj0vyEtxs+x3I3rAny3EdtK rcmHYHvbl2AbZ5CB387zWIBJKJrh5IWku4PtTi1JuULyr5y3ECb0z88qwrfS uImDPc3GwqWUgRyXSKv217j7NC/n3TrY3albO3Mq5aNjkOyC0W2iIAjEixFR GViknk+aIs1nayIAjvBa3KLDAsUck5Ec6lQsZkd7lZFA+UW9wA0dvKWjCJrY GHTJLv7RG6Q6d9qQo8s0VzJbWpIJRAWEVuDEwUk2RkdSIQswASwqLqdLg2lk Xd1vkeRoVhUxLZSqCSV8pZrxoY3wUhS0cqJCXDxzuWgeO+Tyo1iWZ4J1hTaq vBbIWjLKi/vpPOeJy0Q+zQwblEDCOS3Nos1rDYxxz2lo8UtqXd7YRQmYJE8p x8hFtDcXHmAb1N68yIAryCOzlSKKwZG/cSfZxCssCxLLEVvLmbdCDsC5lj3D EarFNs8wRSefIASPOYHd5pYwkbywzrI0kjYiXzrjCtvZj5moSEl1MkcMMgkS TdLG0c0Tx2txbTrYpIIhbzRRztEPMt4mE6Oyh3McMI8kqpLtHE7CRDcgXEkE lzAYgsMk96UFtC05eOaabzNije5DZlv/ALTIAxjkRI5HwHSEwkNqoFrBZJJF C6LBE8e4OsEcdtKhieNNymSSe1lBIDeZG7CIvcG2IAECW4SOGSOJmuGWNpkj m8pLkiFE8tCwd/s9j5qxx7Y5Vl8tfkKRTCXRtE+1usdqkTiaPbcSeVb+Q1qY 18zaysiwTQHzMFZpLa3wkmAZyC5hcxXU8ca2wQXNxiEE20U8mW2RhpNo+wi2 YQ4ZPLgkBYrHPFLXeCaDT5YZ4pILxUh06VVUyZkFo1k6xquDO42uiKeDK7+W wjhneQAJoWt7Ka3zGZLWyntZJL2RVMcqo+nbCykxRHDwF8E5DWgb5Ve4Ny68 +6e7gH78z5iitm82JmQ3EsTSyg/vhueOVGUZfbP5f7ya7klEkwme9Eq20l00 epq1pGlwXM+9wqhJAVwC0sYjnc7lFxLcNtkuIA1NW2RCYSwPCNlwt40f2Zmj jW4hhkDFVWKRnu4DHkAW8b2jYkUMVAJJyGMskkca2jISYrl4/KFskmIhkDyA 8kg08kksiJ9nYB7djFHHL5Vu1zNfeQIm80ahJbb0Zm8qVLpmL5/eLFPDFGsu WaWZGZlka4jMlrAQ8UEEUdsIXjkSIrJGtsIFnhEpU5eKD7TNPukPlyRpb72P nyqzFkjTm1OnJJFJIln/AGdNNbKsEU7Sbo38lf8AVkTT+axI2oLhVUtFsS7A JGLx6jJJcTwWlz8kd3JNMyPbhCsUhWRi2F+23hxNyA1l5p8+QEtXAEVnD5kH lWkVojtZTQzGGBYyGeJoWDZU3cT+YABJ5OnyuTIzs7RxSWxsEbTobtbMW9u9 oVKK8bh7gQsshJjjcQRzO8gG2OSa5kZhJEkdXN32HVPOFt5s0F39t8mC32vK 1vc4g2xku8cbB7W0RAC0TCYfIEmWUArzBLWWSO7uPs8sHmtPJcqsjghoxdyO 3l7dzMsNqZcOk3k3JCPJII3kuRMwkW+ku/LZJmmdUKSLG8c0k4AJcb0t45oQ suSbi4u28xmR2quVbTtGuLeG7j8uyt4rQStEqwKQoZ59xQiSI7iflVg0V0ib XlvZGWxexLDd3UEFvJPKtxeSHT5Y2la5CXHmLHLvYhybg28TyZJm+ztFG2UX zwCO6byIp5riWCIxeeJJIo8x2zbd9xtjkU7Nqrp9ssDkK6SeUwjd5FjkvLab ZfWq2sc4ieeGSygYzI/ktLbRWgLEEkbLPcwVWcC2I2TiIzG9oy09m8ly8aOU na5V/NSOSfaRccbkkuXlmZy6MFsnnXy/3axRiOzuHWG3jguYPKtsF0FtGkZu JGDOpTCQsBNemNgwAaA+W0UDkgFj7bsm8+HVPOxd/aHma88uN3+37ftDvgI1 ukkxKkRlN6pIqfPdRJHaia2SztopLu2eN7KGF7hCZIJgzqpMef3h22rytEHc +bHa2+0+QVMc0r3NrcTK19tu4hwYGncm4iaONRGCd2IriSTIkJ87UIFldjuk Ng3Msd/NqNi3nSiV7sMsqeTO0c5YOGAVGWW5iDu5KMIbCRx5cZWOMApwmFbZ fIjktMIs8UaOJIrINY3c8DAgblECSxSBgBI8huWHmso22JhNbiYQyXcRRESD KFDas8cUYUKSoxHFayyFpJD5U1iAzgxmSePybdYPsMl1nTYIvKmS+jMbyJE/ 2T5ll2lY3cROxZhhvIiVohatLFYhiuJriNrpZ7R5ZYpbqczhCskl1JcStJtE ePL2wea6iN82EiJtSOR4gCvdXD2EU9zBFYxzWvnywxIGd45bVf3CDcu4tBEb dizLu52MkY+2ObDWtnp+oi1a422Vrdy2kmxxJI8dsZojJKW+/wCVaLcM0WGG ZoAQ8UiQx17OXNtbXSrBYo1p5iNu+zLDHLc24RWk8vCeWbuS43KFAkMbiPyo 4C55flQbBpsCiKLMenGDdIYY3zHC8XzFlkvBao6A5Q7l3vI106gAouLS1N3L B9iltYorolYRMYpY4oQiqhAZvs6W8wXcQwkMqMXjjuZDYht/sl5Hax2OyMah FFHZSS/JujEi/YxnaCrSSSWocb1kzeyybgo2Ri2h+0PGkkaNFcLCbl5hcF1m JklmdipUCVYCTO6ndAJ3dAj28Ij8l59lnHF9lup4o7QpJbtEQZftVoi4LlXk W3EcSxM5KybyzrsuSwBHErXFv5EN3He3FxbxhIZ4lVLu5nChHlLpy8k1tDKq sFLRxxM6sJbiSOS6mtbr7Xctczvb+UZbgRidjNbfvTGdhIaNpF+0SsufMaKR MyASXU9SeaurlohcSJDdI7fa45GeOCO5kniLb3VVlSOBXkYtmQGS7LBXaSSC OXUbh4mvYk/0mPy7u1haUTt9qnUzWsa/IXdkDwsrEbpJWush0kmkjALhN2dS /wBXJNqEd7Ncm2LoJRP5tmke0uCpK3ktyokXbHvM7KpQvC+fGIRaBLaSS+jN uUSSFAJbu3W3ezVtqkkmU3FtFFlGMTiYMpZJWlkuYbe2lltNPuvLNtthtZWj M7ySbpLeym3JlmbypPMiVcP/AKyRQY4oImkuYlmiuY0t5FgdBLbxeW1ztRJ1 gt4vLVmSY+V9kO0PiVmsWYFFkkYAJQJZP3MkeoyS3Egy6RmHVpWvGEZ4IixN cxIxHDmG3ZQVWEPPGIknWHav9qwz7IreZp1zeHzQIVzIPmae4luLh0kLIpQZ 3m2lhqwEe5vJ3heeCe8lESXKs00lumIpW2MFO/y3uoGQgn7Q4kkDGV7crXje 3kRJin2VbuJXlSZS21Ht42kZgjKJI47FZhsjxs+0psEZlEUABIGW7PyX8jtN cQz/AG0qyeSGkvPKZQ+5oD5KmcSuGKrNPM5kk8miF5gSYLKNW3sgtfKLOfs1 sVS3mX5uXZ7WAxltyrKIg8kk1waEVZ0/0uwkltlcJd2KM0jEu1qJoVVcZdI1 soBFsQJPOzJ5awrsjkmxb/ab65nWSDz7qa8YbgbhrVZXljKkINk145jPCM72 4iIMs0pAAeUVh8/yL6Ntiwyy75zc4lGxZCu7z/NvftDvEpb5I5yvnBbd0kgV ZjFFPLJd2ciASTCdj5tssmZi0vmBRLM41EbgxCKbgF2gYTRju0TvFI8lkYXl hEcFypa0ZFzKquPvC2gsLeMkozq8gmUOfJ3jxLdu9vNbyPG7yxSpbxtHJGXX M8cQDN5TrA1haiAkDzSsYZk81ZQCONvtaJLqEsHnXESy3M0se5ZFlt472d/L ZTuWJ/KuPKU7SyTg7BcRRmSK5mCQX011GyxOl8WCm5EaxsyKyTKCGlEqSzNJ tfcUu5Fj8vcLoEs17cP/AKtbq7uF3PZzmHzpZybtWQFsxPNLJZLE53PttC0i hY3jqNrhGiN+Itq/PdFkC2y4C28Nu0Tuo8tUe8nMRcq8UTQSMGVI0YAJbdIo mivJfslpaeXZXLIVkNohUx3u12Zm3IrPbjOfkWzULK0kUiWFmlnvY49Rufsl xdXbpfABJEhl+2M12oDFwuyNp87t0SQliwzeMFjIW0BkhaS3+yuhjllsmVLZ IbmRWuUt1HDiT7XcCI4YBZU+WKIrcDRXIintYbSSxkiT7Gpe+cLauJ5TnzDy Ug8u2zMOT/ZzKu6JJHQAjtkv5Ioo7d/sd1LaM5iZpC1rIFjtYkWLbv2xyQMA QQ/mxxZ8547f7QSvbvE13Gn9n2y+XNDcyKd1nEylLeRwGxI0Fm8TBlcsssts qgO8plkE1s00ctsJNPgZxdWhMaZsU86a+R0ix5bCC3KSnbuYC4eH/lqpijgu E05RceV/Z0NtgMIwrPZJHLDdvCrsuN0QjtYgkqjfc3UpJJLZACdHj+1BLPF0 kVxAbOANNHGU2WyW8hUhppAjpZjByBcNKAmBNcWNiC9QWjwXY+1xmzZGWP7a Y7y6gtgJlUIjNEZolCAGPZbuhVEk8qOO2mjFjYNax288NwLSLyGMYt7jy54/ 3asfmdJ51SE7iGktbiXfHulkqOKa3O65W18+OSIPLDHIUEhl82JEZjs8uM2V uxUsiJFHczSL5YEURAANstUMUsEv7q7lt7m6j2rKpiVd4j25jXyYvPaJY2UW 8dtEM+e3myJDbTOltIZPsyvEuyWRGRYwvlW6z4LrgQ2S3LuB5TArIwdYYo5Y yLiO3mjSD7VdLviIihCtJPb2pRVZAApUy6isaxOExHAkJRnbyqsKUuZ47iOe e4tjduxuPOUMkcaMiyh2JUzLuunEqEI1w1xKzCO3LsAR28lyRZNNDJJc77Z0 tpC6PLO1zc7ow8p3Rz+dcTQKzOzBYJ5sbliNRwOlvAkkF5Yz2sUTSQsSsUU0 CvOUZ48BFjmublY3ACeVFI0W44ufLLTypUhc+QUki2SQxby0hkt3hghVDsdl NvaTGIP+8ZbxUBV3+0CSPchW5e1kmaN7WUraooLy29tENibVzh5b7yonj3YE sTxlEgUOACCZ3RVku72eF4oduwpcyXjLtVndiUilRrs5KhfKmlZpWkdY/tBZ xws8EwEd3p8jukkkZEKSWoURBgS5Oz7GjQxiQlkZrx3dPJdhHJbpcI9pPLlV iaN7iEqPmubeRcqoYiKMQWcT8OsfDqD9mlEiSTPNcXs1x9ijfULl50hEsRRj NM7xGNPN42SXjykRPsKw2su5W82UOARxebLb2z3HkSvLaRSGGbYlvNstYrso Ijx5ZkayWXJXZHCNpWEMsEhS5gcywJqUt1Y26SrL9mcyeaVkaISsdxd21B0b ygTiUTpIGWCNqEitJ22Q/a5LCdwGkmgeWWeF9RtSbgqyuJJZE+zPsdN7+axI EYgRo4/uwTtYzrdJvulAj+1FZzLbFpUdXLySSNcTRoVk3shs5CVwkwAJLgjS kNxbxxpZae809vGrx+VH5TRSQskhB+QL5giYqWaSZJJMpe7GJbNrVJ9L+zya na2bvayQpKrG4Fuy2/k8gsHmZCzDJMYax2MWSGNy2EOk3tu1tbRzfZXBg2XA iV0tXs5I40ZiA6HdJO8mFjZJ/tBG6Py0jt7BIYILAp56RRR2EghhVnIieC4n XY0eBJ5iRxpE4AdryMMqzeeGAJFkaa7MVrqkks89xcqLq2hVxMWuAjXxVApJ 3mRkEbYaRbFEMjwttryzNdWDx2Yjld7e4Nvp6RrdISr26RoGIAliT7PaRI3S WWKb5pflimkuneTS3N5eeU8kV5511lhHCWtoc4OGEkYN5tDsWLh7iRGkluY8 SakZphqVs0d2tyUuwkSOZZY2aMwtGVxmUC4nW2STD73kvZchn3KAF+YWkvvI uY5bS4uLl7cJbi7F15l4sUR6ATORYAiPJaSQK7u8bzCMNysF6VmvLRBE6I8l zcM9u295GXe7lt8U891M2WKym0hkPzCVixctbXM10be/tLe2uXlikkVUMUUT zGyEu47N9vBHczJGwxnMfJVHitx7xrl3driS0luHlzBeRK0jTOu+Z2jcqfKi K3iMSscPmvJkiGaWOMAjjt0uFgt55cNNvgnkuyqypK0tt9rlmCMpDC2RTNtk 3BZirZZLiU2NPu/tN1aXUk+Ypbu0unlnOZrd5pZLlp2+Tanlo0rL8qoRBJL8 kcxjuI/PK3Es0UscFwiTqRdNIzW+0pflGf8A1sjxGa6SUhgy+VHJtEywq8c0 O61uLY205haIW6WVydkkuYmhggIw6+d5Ni5JT/l6aFWTMOFAI7MEafYxTyWi ItlAv79JJDHG1pE9y4bIaUfZC+UXaQH2bh5VpvkZdnmNLFBZu0SPcxXEmAqy bbd92GjBWOMrahCIlSW5udjRJEdklzOSbqQyxyZeW/jliaS2e4ZLY3gm+XaS ZXhildVI8pZ4VJZli+zx3DeQk8FtLArQSyLFH5flLaNHbzvvUhQQ0BnubiTa m5Wa2RY4WYxxgBNEkUskN2uYYvNLrcTrETEWjWX5gEMCyH7JYqQFVES43xxE Oik5dFMlyv2iZ8ySxyWrH+0LhpZmMbRFFAaS+tUUpt8xoFiH7sRS5kuolie5 svs8kcKvc2aQtG0SFQs8oRjGwSMLJHNHJKNqEXV2kbLFDuEkU0r3i3EdznzZ ZL43UITZvUDbOWBCbnuUuZnQs6H7FENwgj84AFe4dBBODeX0tiYpBNNEVud0 CPOssscmMvJMJdQCs2fuSSlI0ZTb2Lku91cx6hPAxa7vU1GMTMqOY5XmufK2 kyKpDTR9cxw+Y/ll7tUavKj2tg3n2e21itI0mikDSmFBAZnAiYt5rR3EaR7X 2/Jp6xszIlw0Zert822eKCZxFLYyQ30nmvNMN88kck4bIWOQTmViANzxyho0 eF7YAkimvoHjvYRJPfo5uGEce77bchbe7fIUCPDXc1sA68yxRRpGwIQTxrDb i1jtPtX2nTY5XtxP5ZmjMVvEyi4OeHjzby3BQmRZBb28KbhE4jknlUXcsy3E lw8lwZYZHkaGW7Rrj7eCZgo8lGhWN32BRA7QuWTzZwI5pUgiknlbzIbS0lI1 AwKVMTrGyOkDFELPG6bo8qqxG0gLMS0EwAZuJlk8ifyNQe0iQOZgfshkllma V7glyVEjSzg5Y+RHFKAzDz7eQqq3CPa2Egla4ZrG3mZoZFYEWtlCc7f3qMjR YZt8Ygu5Vcl43SRkf7YUnec3EUrmWPczTI6C3to2XCsXkW5u7z99GBum8yUK 5QRGm0c0umzmAWnmPpm2NrcnynYxS2py5fYUjQyRLudsJaTXG4LuWcAkjbzU SGxlguZ1iWCxW4j2iTzLeO0tvvr+7af7MsrRvu3RmJf9U9w4k8wxlrqxN3cg I8ltI4keeaFZJzACdgkLz3FxaSuuQ6mWGVCoK+RJM0WpXEjLLfGzupZWaXy3 86SGe6jheZVCkFmgutyQ7AQ15PIqorRB44N08sUktrIkzXAkkWzRcArBkC3Y LyYVuFS3PAaS7gVXkSBWcAjuG/s+Ce80+WCQ2UUktrLbR4jdYXn8p0Ma4Ctc x3N0YvnXCQAYjjkeOxJbRaZdPaRL5VtaXbW8TtE7iBbSWRftBwU24t475z5e GaWR3jZnBFvHakWj211eRx2kVu9tdT3CPG8USosCL5bYZnNukYaMkfN9pA3S iVPtcen22xLS1nWewRIrSN1eL93A5t5IG8xclSqN9vuHXhMJKkxLyFYgCxZx 5vLYSR+YscufJkTzH8zFu1xbybUxGuyW1szGiAnyWCKC32eanayTQW1tMDaL cQ2VtNC7gxgzR2MEqTklHLC2iVX2Lkk+dllEyQyBMM9kZbmORbZrJJbiTUXD gRskkwjdwC0geS6imkKnIIiKFJpIYI7Fzu866gu7WS6LPK95Zsis9w/nFpwQ iqS73E0FmskYZSYGkCgwxGMAII4bR7O3jEcNuz/6PHcEGMpGsiQrJ5bldgj3 TzsoMbxX0rHBMJeOOSW0dJ5pJ4bi3iWbzLl089QlxHGjOXcYb7Xcy3UiSM0e +JIi4MUmyQyz+dJBHcSTXk7klreSKKWaeeaF4pFbb5azzO04A3FVjgimXzRB E7xq9ukQGnp51oNkttDbKSJYIluIV2R7mO2aS9ijUFWw/nLMsjJK0oAMjxxG GKz+1CDfbiyw0iyNbrby+SyuTuV7iW1j2vslEVrHDzI2ygpbyLMhf+1oU3xN tYyyX0EUpT5TtZ3W5upJCSC215oGRibeQLJPGXMsM4u5oyhVjamSYTIJMvht 5aUTzX7BMFZTCYwzKly0osKbuS/gm8uSaV737THh0fdPKkUkO1sMuVufMHmY SMNfRyBTDOY3AI1a88+N/N8y7W7eZ7iyjO25uAjSSTKu3D5mawkiXcEnaWFS QoSO3rxr5aJYwRQOyxLHDZRSfI7XNvHFHbhgyrt817jYSzM8MtzMGDFZZDTn t7dtORE8+zi+wOVt1IlykTqiQIzIRNMVu5oz8hCz+Z880kSpHFCy6UlkDHDJ Hb29qwjkV4YVmsrhJHG0gMNkdxLmQqm+48wOsW+ScAkMNvcxQRLdfabfnL+W UnuDMsoSNIxtMSzQ2aFY0Klo3t4E2B5JnkeNr53FxNaW8tw8vnTIFmEL3q7G eQqACPs/2ydpQUVzGpwIUty8isl5qJkksZ5lubuKTZb7X88XJhjkUSFI/muI rqWSRsIE32aboyqoKbRrcWUHnzRvHLZTyF1DW6yFkgWYx5BkiQWlu8oVUwEM XylLhbYAFiK5Ny8dyY7sXF85n+z28MjTytKtveqVELDfKGg3u6bflmgTMAI+ zyW7XlpdQMsvmzW3llJI4y0cpjlg2FVjUh45LmW1wEVJBa20IUEOgNfUZUuI NVl1JtyyRXIuH8hY2Ul3u5IckuItpmhh2SbitxdZBkMEYFgh7fUXeKCCK5S7 tLpWeFkt450LbVYsCyQp5UzcKvkwWhiJSSWYAAr2tujbLVJftkEkVnC2wqGu YF86B3LRMW/5d47Xcm7atxIiLO0okmN32ho/tMsEkt35r+cY/swla7iiMjt8 rhMWs880kikqj7FYeXFAHjcQw6XLbTSSRWttZQyg3yAsvlbo23wsQWG+3YMk jbTOLOEZijVn0AJo9UCi2kill1N4wrXBDJNJ5auhOV81xNBDFG+4mR7e6mMk ZAliAI4fPm1aO6T91ctLFMA/mrcJHFJIFBRtzBmu3bcpDgSWqFhdSSp51OMQ x6bbssklna29vbNFcSoFFnuiCifYpAYrE5ufldmSe8gRcM8hlLYwxafavFHJ Jb26RJZtbuB5sv2QRxtbKoLF3nNyV3jfHK/mKuY7pKsJJDpjpcyGNIrN4v39 qBGiJAvnzNF8gXY00qyxK37uVrmzxtETRkAJTNCXh8u7gngS4C2lo5aa2ZZL eFI42xmQAw2trHJsf98JpcnyVJk633/Lj+7u/wDfgj8yH/gWLSXyf9jbZ2n/ AE3+evHD9hRLNraffZxKj2ludxd4beO2ZfLwcqbue5iXYHSSSeVpA6RFZJPJ WWVYbg2k0TXCLPIZGDlJYIPMkkkQnYbhbWZpJASEiE77pxLEWAIzDb3UQivb rzILm0hjuLqaMi4kgKpdzS87kZlgd5CiLxI5Z2eVIJJi4+2ahBP9p8+0v7qK TzvMzHBBcXTz+Zuzv2qiNd5zuSJIZs7J5m8ojm85fNe5nEl15EjyKPLneS4l ab7sJO24lZrKdGRWKxwFAJTA6PHLLC1v5159keBreSeY284EUUTBhOY8NuCb reGxRUk2OkbLuj+0RuQCxdTL9omaEWlv5iX91b297GySQIxaPYYyGKpFFAwk AUgiy8kIFl3XBJut5TFBdSWyyoFtpQ6sAfIQLsUN8qQw24l3+YAJHtHeSSNE uGJpIUEz6oY5bNnnfU1YBvMZbl5rhWwke2VoZLRAW2YlaFNgkQNbhlmgmkN/ 5aXiOZb9lnNsHkWaGS4YkMojL3iwW6zqWAKztkRxxrGARmX5GZVghmgiuUS0 uGytoxt49yFzGTItvbQwLJHt3MyTpIcSJHNJmaMs1vHd3FwUd7a3uXNwtxHH JOyrK6hlZ5zOhbDMX+0xpG3l3ZEQBNsj/eXdvdx24gjd0KSCaRpiqrAhWMyh bVtiq2Y5YrOEYMDsY7jyo7e4lXyLSL5gGn3yQrCtrCjROybd8aRTwwRyZYur 3EiFpJYVIBJDuS9hNvdSXE6PAlvcB1aWZ3dGtj87Kd8stzLfmOQsreUibh5U myOPylRI5PIRHiVPNG9lNv8AZ41yw/dmdY9Ohkdiu1w1+FVI3PFiaK4W4kt4 lntbkyyxWsBnEcnmtdR28a+YAYkkK2DKqKrLG+2VMIp+z14Xt2/cacm+PzbV bS1VTEJkP2mGJFEjFV8/7UJFSQcxrK8qTDLXABIhELpfXcccFurxXsrl40WF YF2RJvjByds0x8xMbUls2hCkw27Rk3FnaxXc0/kvbxBnuIJhAqPNFbLLLHKp YxRxxwhAIxy0kGxZIblYgJKhZpYW+2I2TDcLAshu3miSBXjDld0032aaeSNi 24xi3LB5ZVaSGWa1mN3Y+XK8Ttcq6Tlop3SYuX8x2KyJJdxli7MsgttPLFjy aAAxLZTSQ/Z5BJbOUW0sI2gaOK3mhCwJhnlxJcrFHvRn/ftMysFjkNxHcN9l ijmnlgmkseYpRHnLRKsk88KIqE4jZVj8tlUwTWzhozal0D5Wm2sQt/IMEEQl tXfeEkWCK2EUqqvzxMI7m4vHCKWC3DYYSpviJ7b7LFfafarPFDBvslCRedxt e08kRxlibhBNKTjy43nvNzOFMRmAC7s3txqNvEczQ+bp+x0aNMrZT2ceZcAO qi3umaVhsGEwIA8+yxLNE99FK1ziP7Wlx52HbfEkMsyTrvIYbYp5riQITKPM thvE7yS1HPdW0dw12XtBaQ3F7efJsmiFsCsYVMvzA7QPbjaFDpBBHiAXDM0b w+VHNbSW08sgimS6gjP2pzcLdwu6uzArLM8qW0JzGxLTO5HkLArAA0SDFtfr 88cssUkHnruaUec1xAJUAEUawW9rbSFVjWNWVwVhY+dYjF5c7P8ATPNmn2tP MtoZI3kufLdpgjH54wkkjiFcEveohXF09ugpf7VA0c8FxFJhUl85p4Z5PNvP 3XJZp1luPtPIG826bAzyTlGpg2McVvcXaxy2pt5Zrwre+Y4iacm4k84EeY8q 25tt4A3yTOu9YjbqwBJbw/aoILe2ttKh+0RR28FtIdyx/aHgltIGJB3KvnJM SVPmNazDZzNJNYt3e7lSSNJ2EsttNFLcK0ksQLKYpGVW+eQW8kkrtEwcz6lG FAk2ERi3a4AS9aSSZ3eK/nto1Z1lmuY4rt0UR7/PaO7UbNg+WaNGAltRujhX 7bLHDcxQPM3lNPZ28mdkc7SCUJsYtHGyW9pbIY2cGCVCiM0yoQAtPKitbIR+ RaIsVrKqTb3ECxxCcyoV272jtJZHYRhG82aZ9yP9mDEUPmQtEttOryRC1IjP mAqthLAdjKAJmEc9gqFsLJLKwiZUlJojlSdfMuG877V5EkwmgUtM9xK02HiQ spmmZ7KZcI+I4GjxN5Do5m4uYPPE+ZWi+0xzRzCcI4f7OjiRiqNJGrahcGVX j3SpLKQI0V2AC5uYBFLcSNBJaG0WVozLFJEII1kLjAAT5rmC2gVwroWt1G0Q vFA3ufgKNoPBllbyTSSyQPNDIXCgq6SurJtUBUCkFQi5VQoVWdQGPikcojuk ZGntLcXaxKvkTbgEljtYYERiJSy4ZiVVXlWwiKmOaOQx+z/DqJ4Ph/o8TrsC RFY189psRhmCDzGA3/Lt+ZRsPVPk20AdRRRRQAUUUUAFFFFABRRRQAUUUUAV 768Sws5LqUfuYsGRi6oI0yNzsWIAVRljz0BwCcA8H9sZIbm4nMlvBvYTeVcL bxGUQvJcJHtnjVXBF0GIaXEjo5kPkssfQeKpRMkVpD5ZnjdJCfPjidPMYwoo kLb4TIXZfMRWbasqp85SsOEi7ifUbRZ41vYpZTcR2szuBKtwT80aM78RW4zH OA3lReWUUxrIAWLKy33UUFvDAIVliVkgttkJlilRGICK8SKq2RKhy8ql1TfA duS2tU1O1Wz+z5jESQG1+yLILRWiO4Rh9scWxLtFCyQrI0cTgpICMR3cUVwl +11bxrIEYzy3kcMy2g3CTEhZnGwRXkiyK0ynYr+SgVs1cW4gDx3lxcbPK33b F54naHbcMJApkmdY/JSSSOZlHKuAjDaqAAje6iaF7pZrQTvby3i3QmhVFlaH JuBI8I3RRRtFEsyB8iXDqdpqxMILS3ugGjtIordoF8qylsIxFGLkIklxhvLi VRkOm3aQGBxKqmSN3Sz/AHsubZ/IspGhvmcAEtA0STNMreckxJaXarsNqgM4 GJIZI5HhmvLqNZWeCSUm/ntjtkVAjfZ2P7svNEEERPTfySzowAGICaSIeW0S 3paW3igjuIIJDNC67lVVkWVgfNDHIRpHdiwVKrwx2yzQqZo4SqQSRzzBIXCy TI7GRFEUkctxLuBXlGMQyuSY20Ejm3xMLKSLVIUmkTfIZYpt6qzx/aCjMkXm OuBhG/cjCFFxUkq3SwSi3i1WL91dkKkkDsXLgqVMjN8x5MYJ2BSQ4XCqADLE c0peRRJ9ojdVcsTNJZzTSHbsG+YRyxRTtu+TYwdPmWNcLH9qS1jwssEFrHwi QSLDHbQWl3tclRcgBQjqGKgYCESA5WGrF/bQIlzZxLOi2cTi3giiiZbNGtyq TRpEVnCjZLGoQhyzyAfKFKyXrTC61OLz7sIXDSww5dlt2iTMgVJPNBPkyxoY 9p3sT5b4LkAy2tHV7fy9M82S2iiSOBbdvkKXDSGGFnhWGONRAVVtqmTEBLxk Ru3aQQrbW8UCGQpGgRTJIzsQBjlmJLH3JJPeubsykeuRSzL5dzNdzIH+yrG8 gPnDDSuieYpS3h+WMFx5MZLSId9dJBMtzbxToJAkiB1EkbIwBGeVYAqfYgEd 6AJKKKKACiiigDm/FMmpJE0Onm7aS4SMReSG/cyLPGA25UIAIkyxdmAWPPlS KJFPldrNb2sUF7aWv2i2HkTW1ukhWZQq/aYYR1+YpDosBbDjc+1SXck+4X1m l9ZyW8h27sFHCKxjcEFXUMCu5WAYZBwQOK8b8S6UtreyWsksYgmSWIB3ZHji 33UOZXZAclbq5k80hsqjykyfZ2NyAZdv/wAS7yPs3+m/Y/L8ny/+XnyfI8vb jP8Arf7NtMYz/wAhKHG75fN6jwNrsGjIlnLPAkXlQL5kksSCSGG3RCQDIq7g m2dpAZD5YK/NGLeSTl7iXzfPmuYs+b5jzRSRY/1nnmQMhlTbj7ddggyLs8mY F/8ARGadkNzNaagdRguruykmdhLLCpjlEj3Zkldt4VFLDTrlWMiKOYy+yI+V bgH0HUcEENrbxW9vFHDBEgSOONQqooGAABwABxisfwxrsOtWDnzZPtcbsZ4Z cbo8u2APlUlAQyglQ3yFXAkV1GxNMsCB3EhBdU+SNnOWYKOFBOMnk9AMk4AJ oAkorm5/GVpHLLbx2l2LnYTAk8Lp5reR56DYA0oDKsoB8s/NBIuNwCt0lABX jfxJuVXxeplvJJYYnsk8mG4ZbhszCWSCBVOWcmG2OEUShriJmkWIYr2SvG/i bI0fiwO8MkhV7Dy4ISrm4G29CoyMVDhw1wrRA5cJGgJM5MQBxiJcNFal3sWv I7QQSO7B4opZ1O0nYuxIRGskjPtKtBaJFjySsk8iXSon2zfJbW4cXJurjcGj SZrVvNmCuBK4t7eKV3R93n3kIULJtIr3MrW8N0Y7i7E8NlLcmeCRZHWV4TL5 sjKoDyloLZVcbty28t0Am5ZRcuf9G1S+e1+w2piu5Z1kuPlS0mjuYoLdHf5k T7OZ4ycZAWHYqrHKZLgArs32WI2+oSwQrb7/ADrS6j8yJI7ZbeIJI2354/Nt 7ZZHAxK0MyQ7SFWeSMTWsoneS7WS0QyNcSoWmTyoHukZixBZzcLfTSREyL51 qkTFVG+i1ulhe2mtnkVY3tpbeObczg7YFsYnSNyS7LDbTOqKRKrTYG+1QLXi +zRwwNHdRyi3RGW5LpC22CFrVZC4bZnzJbaKKYBkieOVgXCSSzAFiGwYPDp6 CSw33sFpDIFXEEjKkUTwKzAoIpZL44YeaxZs/vY5JYC23akYLiO1ktlv7i1k jWBFEsBkkkMQhYqMGGGSOCMuqhXu4n3iNYGEZXIuVtooJJIvPilgkk8sIosr aOGGfDAx7Yzdx4be0YE4MgKvcoSfY7hZwPPvbV9iK82HeW3aW5dBMZNjL5qN JeOXKgeQjLJHvj8kAja4WW3nuxJHDItv9uZ7W3ZvJbEqQGNCqMBHCLiaAEq6 rNBn91A0i3DYu1/NAscCFZXspUiZpYYkWc2hjYLiSeSO1Xy1Hy7luk27JnUz xzvNILgSWUd/MbiV5YFiI+0XUUdrJIHQYDCW6lTMb7G2jyyplWBIiSG2W4WC 8Ml1BLcRQOZpEf7TbAzzzhZckuhy0plfywWuLab/AEdI0LABa3yzvbSyXshj le2laGa2aZykqwJHE4xukeRpbyR1wGmVJmQRpcuzGnuxmsjA8m5XS6xDcrO0 0rzTAzNKMmULLbxKxCHzJ3jIWZEt4WI/OnE0F3NHeys/lakrXZiVZpLkSTGR gitCnk/aSQACiXEq+XmO6ckN4wEN+1xJJJG8GozTXkSyeU7XKXXnNFGS2/yT JMI0IURTXAUh4pmlAI9P8q3t7Bl8gWkXksC29UP2S1UzNA65DYka9Jliz5eZ HHmSvb4jMgtrTfcGRpILeYygiMuJhb2c1wkcexgpUJ9kePaEjiZfkZUnqSOH +z12tbT2csXkadI0J8y7LJKw2QyYzLIgiESDaFaYu6ER2iGKSeKaJHs7ry9P X7O8c7W8BNraKzXwuWMSqzsYzcXUUccb8i3eVsRqDQAXMbRTXSXE1pHPA8qX FwgUxxytMYbmTMoIL7o7GErI/wC9imLylPOkdCDcZYhDayQym4CPa7FmjG2D attMdu9khVrC3ZSBKxuLqNfMMmKHka4dwkNpZXEjypHFOVkS0lkXdMp3EYig gaxhlj2jaI3+Vo0mSQSeGd0uvNu57VnilKFgJmR1xF5yyfID9mbULh2YrHJI 8jSBoihlAI1m8yIbbmdo5NjwrdDzpd0y3AtUkClmkkf7b9pkXDrKrzIqgQNG wZbeBZrg3Wy3+e8823uSxMSSmVpHbzMs0lzGIw6uWzaQRecRMsxPO8iDN7cz wrDF+/kQfZ5Ehhf95Ii5Ty2a4h8uE7FKGztInULKBViGPzNRt1njx5t2Uuks UysbKViMRQoCY4obh9kbgsWuoLZkk8pkoArkXFms32eDy9Stt/kx2sIkWzlh lJSD92F8xjdzx5QDaZHjcIsEUYmkljh2TpbCO/tIXdrdJCGhuobdlt7bLbxH sY2QeTOA8aTuVQQQuY1+2XtlZynz/ts8UD2sjZkMM5s13TOE53CSdJVOWcyX qNGPNE0UsgENxNG1nbRlZXH2GIXAQS/vprK3t3cF45T5EToCxdSWQlTH9qeQ AjlS3ETPdP5lhH5c01wzFHmWZTJNI8u1TteFbOJ2RfMbz42IEkslvJJKyzJO dXv5Fgd3hvJyrI6RBlluTIEwsU+dTl+XHyGH7P8AvfNYORozhriJJLqJkllW 4NsrF1eOC3a4YSbdhkVPtc3mnYY2hRnAuH3gkME0bqbtJd4iR7kSNK5WaZEX ITzWMt3LJIy/LMPsbyoqHy0jAAblMc99ayWzFxcXcMKKECLbTO8QG3kQxrdR JHJgMzmFjIlqwaS3F1FqkUnkTzX1t5EnkwwzysStzd3DBWYeZOxmRD5LEHaX WTDwPNFXtobe6litI7rzEud0cs9vGRNJGWjt5pRt3RMqxPJBAiLsDPMkbO6I 00ck63VoTNZRu0tuHezWdjAXubdJlj24AjiVIoPmkeNY4oXEYaSHz6AJLbzb a1X7L5F8kESK042CO6a3iNuELNhZIXZW+f5FFrBPhi73IEdzGosbm3hmjmR7 cW0fkBkeZDp6x28kjYxGCiCf52jCRPcJul3TIli6iVnlEtvJeiB5Lbbbxsm6 JFgSSLarB4p53NtFsRD5MVy0TFhFsiJLmZSbmC6ja6e4E0c0Slori68xIVmj MQO8SXf2m42bWaRLGIBFVVAAJNR8+6l1Hyvndpb9WI80hpJmS32mMZdGDai8 pi2OUBWMfvWuCa99bQXMV2jLBbLeWlynnPFEWMCLIYlOwsG8tIkuG2KyeXOn lhTHaAhKWz3T6Vb+RPBEstisbKfswW4na0SQmTy/LCL9odg5D4imKSLHM7x3 kGm29rfQCKSKxSyngxMqxyi3gllVGIf/AFYkaDZgx5FzO0jAMtuGALF7cwrf 3V9fRx207JeXbGaESPDFMnmvH8zcCOeWSFlYKksiLEAvm3RqRYriG8EQWcXL SpZK004M3mgXBeISsATI95OoSUb1M1rLMAqQhFLp3a8naVJ/tE0s9zcRRq0x L48tTHCzZ8trnULpBEV+cxrHKqHz2FedvIimnnlgjEP21zc+X56sxW3R3Ysq iXfBFFJ5mUW4kvY0IKNKKACPypbP7Lb+QLR7SCGOEb4YIvMLHLt/rUjZEuZN xC4td5Y+bdPIJFRr4zWkKSKslw0AgntlkKSSSWyxwyRf6vMa2tuWUMkaTXEM TKke5aJRDE91G1tHcJbXtssunNcCVU8tcm0kOQiIotFjLvlWS3lmk3f6MKBu e6js3upLq7t70QQTO6wvNL5UyDlmB+1NLNE4wjfZjIHkJkaYsAAM1w8s1rHd q1y8c1tHbuRMZrtbOQDzGGwlR9nj819xWQtO7CQwo4yQK8zSJI+myPaW4S2t pR9rgKx7I0fhjPJbbUSMMWjim2tuMlxLHHB5XlQrZeQiJ9iltx88cMDBbgJu zmSKMiS5ufM2owhhjcv50xkWSwtraW4sY7KzkRGS2t7b7TbofLhmLIse5QQD IktjNI2HjVppQwPnGCUAjvDcNbzJez75n+1ySXEEwxcgWs0ty8akkKsg3eUc MEF3LLsQTwrUl3FM9xdra+W8z3E9taJHASluxMIkZlZWMY2i2j+z4OI2S2Cy SySmOPT1gvoNMikinltbyUPvMkTm7eR4FTzd7HdNK6XEmwl08xY0kZktZBEJ ePHaw3VwPOeGKG9EO9t0xEU1/IY3c7hIqXhQSb3KKHkP71oAQCSYzRG5bTY7 s5e7S0hicswVLaBLRUOMZXzrLayt8724ZXnZoAsd1bo0U4tZc2knn2yXFsVY yIV+xxMmW2eSkFteurSsdqecrMrMlw4IYNPgjie2gnitooUYSGJLSaGB7HKm QggQ3Exdxnn95FKRHHLIzyCO5imja2mkl1QOI7ae6DxPcypNNFbbtwAjdrpJ ZniYHcY4C+cXEygBewHUDdRNFHHJIl5bRLaLI/2XMnMKp8nziB4Ihny2Zntb cqqpMpkkvLia/nu8QJdyyodquJWQ3E9zeLFEyFWkwsTLGvyGSWdJEfalu4r+ XZxQZto4G0+OLMH2tAkb2sT/ALhJN6KAs0wsJJVYrtE/mAhbiTy5I4y0ohIu 7qQIbMecZDl2gcz+equSX826RWH+sVr6eKLzHWJlAI4vKtoIorXyEEcVp9mU b5lScuRbbQm2Tc8Evm/IiuWubqVcSQLGp50FtB5guYLe3ji3i5sRErx2kb7n ZCDsVnuBdeXt3RxzeWAWDW0sdiH9xPby3P26KGbMklwPldfkVZrrK5V90No1 2sm6TdMsXlbzFMWrrDObU28ltBA00UUVxHKZY0jZooY44mkUBlhhit7tXcks qrdRMQx81wCSaWaJ40n8t72F7m5htBObaNXRUVHiiLDakbSGIO5WSGK2uMsj xotuRC0tZYLm5kjeysriyZboo48u1WCCMzqSR5btAiP+7+ZGuLdPnlaMwSJL cX0rS2rT2/2uUziYQDzVNyyMkrqhw8ixlJyYmBM9xZxhf3cSrHayQs9teRGO wgZ7a7jmuANtrHtghiZiyDJtWltSgYguizuxCXKhgAiimMX2PVPLmkRI4Luw 8gnftnWKYARqCQZZYIFaNSqLbsEWR7aB2j+0Xjweb9ugS5uYvMWe1iLrPeTv 5bSDy85YXCuVWMlma2aYZSC3hotbbEUFqFn0wp5Co0sWVsmK+VGWwRiSBRql w0ibFEg3PscGJJLWVbx7aSO4ktLaV7Yl0kZZbVbhYGeQjbtjEcNoxQFQi+U8 6+Uv2dCASRyefdI9tJ50E12tvarE/kblWWN0iDo4XzJJbe3iSaIbV2XIUeVb xlY7W5mgOn3cN1HOuy3MNxGp8uWUSKY0ESDLh7hYuERXW3sfLXLxyRoW+68m tVltZLe6neINaoikw+fMIphEkikoFNmLLZIFiAmRD8oaSeuJFXT2luYY0tXs rc3TRlo0EX2RZepIdisb21oqiQ7g8is0TXQdgCS1823iggtfIia18j7OZdhj t3VdtvKxTcI+Yrq+ZvnTZwHxPIZI0EP2JF0ySRFjSKa1iCB54oSnkwSCBTvE 6GfcuPLEtxe+YCY4t7WLl2E11FevJJHvla+E1yqrv84tcRPKuxYnM1xHaAod qpLcTFESfLSCW4W/hMjTz36ypcLG8Ahaa9lnHlbTISkcgk3nywSI5ft5IMam KUAjLstwjaS8kkv2hjZRQXKyKSpFrZmM9GgW4ihG9yob7Kry7jLBGpai0jeK GxkjaxR4zD56OsYi2zpaiZcgojRRzXExKhHiu52IVhFuLMTQpYpYyXc0SvAt lIiEu5VooLd8OVKlnKXTJKTHtSxjLKClVybSLTUja5kg01bdnjaC3dNlmIhH KpZgEMroZDGXVctfo4QG6JgACEQtaWUfmSMpt4YZDMgaZlmtzbRxosZby5ZI JYZPlV8pGOJHtXEtj5r0tbz3UheRH85g6p5KXEk6b2fc6bPs0bNljKwW9uLk GTaxMkvn3UtzFcf6RLdyyxTJB5ojE7tLLNuH+sjVXntofLDbyl1MqoJ5ZEWv O32xHDywF72VZlF1HsjmeS3gnE0mFKhd0z3U6kSIotYIyQgjLABIj38SC6s/ Kke0fzAga3WFGW4E0QDEeQ29Y7ZT822KxdnHkKVaS6RpHuTepIpunuZpZltl iaJp1nluG/j8sLAjwOGDvvMoUzG0RFHksbh3mnhkfT7h5buW0uDtkkgkX7TL yDiVxZWlr1JYS3SyNIrgERxObNrZpU23h8q4E0CwtHJcLFFtZAzYC24BmByk SojYYQ3iKgBY2ajPdfZLafyLuXiFPJWEQtPL5UbbAxaOO3drSLaCWSVOGlWz VFrm8R9Oa9hF9Hppiubi3S3dd8cCiM26+YpLLIqWUCqFD7WjlkeRxFNCsc8U NvYS2rfZFtbe3M0cV9AFjgWJ/s0ZZWXdlZo7mZy0fznagSNruSJrky3h1aT7 HFjV0llWMPIQ2+GSNICSzHCm9uX3D94jy2yb3fEtwwBHPbLDM8N9Z2ggtneK dLW3ZECwTX1zcBFYFfKUqwijfKStFEzH91LEsdwRHBOupT7rVYpLe8eGaYOo Dzz3Jy5JWRRdpEgkO92njV2XM8BP9Dt0iez89dPiine0U4jd1tre4eGZd3Mb GE+YpVAwmuTM42mFZLFrH5F5Agj8+NZYLcRW6f6PKsY8yfCBMCGWS4OCoZnj 1CNIhgPBIARzQrLMLfUDaWqs6yznzGjjtopJhaXCgsQ6xc2Y2gR7YopYNyOs paOZ5THcS3cEAYxC+kttQmRPMuGu2d/tIVVXb5r28LnOxvLVWWNkY2haG4gt 7VVn2XkPmztO0wUXN2tqs/m7mJ8xVuJLZ3ctsYIJCZIVUW0luYbI2scVzHHb wvFLbH7OGFvGlsJo50yF8wxKHupMDLGWNdkRuZ0AAOZoXdreO7vJYnlh+zzO ZjK8K+YY3DD5jNNfqr79khAmjAQzi3UldrV5HheS7aBxEY5rlZllG24lQux4 aKdpJ5HlcofIjmYFEuUiFfMNlbxC7jkhgit4HezvXE2y3hDtKsqkbWJmhsYu SpkZBCrQ4aKGS6S4topwr30N1F58G/cDNJeuvBXav76b7RBDBvwAzW0kyAvv kgAC6d9Oinu1vN9xp3niCdywZ3gXzd1w7AlWNzKlx5Tf8tZooW8w5+z2J7T7 NfnTlg8+O3lMP2Zh5ge3gnmBzGzsZFknt7WJF4ciGOBnUMkkpJ5Ftf8Anw/6 DFFLPcW0sXlCK3g89ZLdWb5U2rNdxuse4oWjRnZoJIpIq9qvlRQW8MUFpJH5 EUUU8mVtp4V3MzEMhXyI5lExVUdZLq5mHMA2gBsLQedC/nsIvPEm6GUzF323 DGVlEXmN5CwNIdyPFbXczIQ/z2I/PtrpPsXzXC3amyguPNhSRo5Y7e0iw2DH mSxfdE25mXyt7ExtPBTkMK2hvLWORY1txNaSTOIWjVLdLS0kZiFUSg3Vs53N +68p5YzsnXNiSOFHumAjgt0ee3k80jZCEWzgCSEvGSi29w1sok2yK0ju7RF3 8kALBliFilnfyPbpcW0VrcIrPuHlstvMoOC5L20kzQ/vCWgtLcDKFUNOFzKL VIRJG8yWsUSLM4CmWOyitx5mw4KQukjTIABOItyfJAHDuVzO9rI0sdukKRXK LCI3ZZFdSu1o4w0VpMXJ3LEfKt3AhhlUgszczR2Qu7sPO4sBLeeYjyh5prZm XcSFlmllumPmrJIivPtRfJUzAEdk9vJ5Umz7TatFFMy26kvc2z7LbyY4kYsd sDR2yszMVmluFBb55oSBHjtxLLZ/aXOPtK2wbFyfssMckSqp+6/2mC2hKb0U XE8iBUMYSSGRtYEMltDaSG8eA2tm5UQmBrlFXzkyyiIzG2VlTcyR28UAZysz RRx/Y7yC2nl89rS5ilRL84kuobV3keUu53gt9mF9I5BO6WdkVC1viIAkSATO lpc3MZg3xWz3IaPzYorhcSyjYnlxJ9lScKuGQRpu81kjtdxp05uns55JY7eK Z7dpTA0kRtftK73cKc+UkUMSmIN8qiwSYMgKrMZmJV5Y7u0uQiSy2tk5Lxeb JAsnkJgtvjaKC2jRgFSQqFw1rJKwY2uDcWk81pGklxFBK8QWS3jWSQSmdY2D AQKlpAY1chGtrR2Pl+bGSAV7VLZLK2u5kjsIAls9wyWyKtvFOkEt1IFOYiWA P3VbCXMMBV/NWOCxbyzWc1rcny9PnV4rmeO6nJ2u0wZ3nLsSqLei2SR8tIYk RNyvBMKIpVmeOd7iSxW4c3chjkbzIUmW3uZZEcr++eK0ihbLKW80PIWD+R5h BIyyxO8NpDNc3Ae6twV2RGGDdPAwcjKKs9vF5XyCONLiNmjTzZpACvJbMumr b/Y45Hjt4kYajbqGedIp0t/M4MaiNbRmcksqY8l9ubqR7h8+fVhLYc3cksIt btvN2SM8iG0Yk5KrvuVupFIdfltlkZpnZnpxiF7QASSTg253TIgLtJdW7wyy yGUhgXAubsM/ljyo4g7YaMQWJZZjdTyx+WmoI7iCSacuiXNrEs5cpIw2FZrg 8t84BZ59uy5E4AW88MJtbmOW7hiheK5jjZgkn2aK2EsZA+ZHlS2tLeVlXCNL cQeYMRBTGiPotrCl1Z4axihnlghDMsJtYpo3VHB+WR5Y59roMo0l3KQwiimq ORLa3tDHbJHJFJbiGzt57ZBmE26XECkt8hCt9nuZy2YwwmyIw3+k3Et7eS/a ASwNDHqBivVlJlUq06TF7hJWyvKGWVWJk8q3ji35iuXjABLO4sXhtmMFtPaX cNql0yAxQulxM0lyIlARVjmF86Z2/uocOY13Jc140cWcUMFn9naf5ItMwygh jdWsNpukK7W33EqSH5HcRTyDayCWeO2ML29tdPHJD51uZA0ziSQ+YGubiVjI DvPkW8aSsYizC6JCyRGCJpGh8yIwLbT+Zc74LeJj5UqK629lHBGJQVjkby7y FlYllWMyM0xhjZgAkbcj3FtLAiyRNJbzzR+QzNb28iRXCKq7o1WKaW7AwWRV giRUXyGlsMEup5IJYJ7mzmu0326QqI3gVFeWGEKD8pWS3jjG75nks1ilZbZZ JIzJDezSSAx3cMrlUuJQPImhlmhePe7oxCL9kvLptwcIwImaRzMrRySvIjyI 19LdLEzxo8DLcLPFbyWySGNiXEhvLlCpjH+vkudzP5ayUAANxcwK5n+0X93L bXCTW8wPnXLPJGwgZiYopDcSThCpIGLqcLgQBZDG19cIdPmtE+23DGyvFCrF vYi3stqgb1KGW6dFBzEigbpGtGiUcwxu/wBiuYzaO8sX2tLcSxCOJfJDlSP3 kEdtaXDp87F/NeLMwFxuEEKOkV1bRx2t48UckEdwCTCF3MiTKQWSKzt0g3tt GL15DIIpQ7gEf9o26QfbbW4+xwGL7fZuWLtbRQPtg3IHKNtijgXlwstwlrGw LRTEyRqujXFvNDYSJ9kuLaOBFZi8wgIkSEKMMDLOqoAFy0gu5ZI1aIJCQmZn hgu47uK8kt4BJBauUaJVVGlMIUDbKJooY1DBf3/lQKfLt2SSOKL7buijaBbm +iCj7IvmRu8/m2uUAkwYYw0tqgYhFdLdlcJPIaAJLKNrSW1hE1o72txZo90Q pIMMGIp9yggIfLeRJWUCOC2Lsr/aGWauIjb6a6DzLYRW6vHcvBILiDyIjBFK 4KsfNWX7WSgy0McE5QyCOBo5JJU1G3+0lvLW98+f7UsCyKiXNqrXEr7SNzRp 9v3FdnmSRIqqVh8uGQqt9cIj2EivPcNCbFGZlR5CGltlkXDQEIdNsSTsVPMk UKfmNAEeoRJDb35Zfs8Nt50c++dXNqi2rRPbRNggMojjsy7DkyRSESmWHypL ppoXuY0njtriN7mNWTKpBMFnaVgiyMVS3itrNfLXcY2ihkj3jb58ceo+W6ar JqEE9ykS3UVxJ8kcnl3Edw07tGM+S9zcy4TC5Fv5WzzyhjJftmlRMlv55nsP LgiabIknvIVMMCIiZBxJFHkAMsr2saDesEtwQCS8iVjNbvbyPE6TMLRo2lk2 NJYRgPCrLyVUW4iQAR3EbbGjCAwyCa4luCbeWCe5upZpYxZXAHnyzXTwK/mB O7wM4nAVfPmtMqqRIFj8uxti32aaT+yrRH8vyxvjniikntkkygZShj8+RkCn eTdyujxokUgltMXS0mtY0dni0+6twxhW4kVdggifJfOU+wBy5ARbiRfM3zmM Arme0XS5ESW0SyayPkRKzx2/kr5IeUuuZBEzTTxr91yqTxEG4uJGFz7NK1/J BcL50r6hFBMt1EiC8maeWSYNHnZIz3MdsmBtDCB41kMcMk1RxXjSFLmS4kvp WS3chYlzdPJJcSmMwsV3GZpLqRV2xloFSIMDcnFfCm3lSIR3/k28+HgmaSW+ llCWdw6kozMJJGn2Sru3vPbhgVt3WIAPLW/sGVpo5Yprd4RckNcB0med03u4 XzAqw3Vw0haMCeSMSCMQHy7F79puzdXEVraTPfpeXCQIjyRyvJJ9piUgrhif MsW3MgMpNrBsXEtEscNzcYxHeW6JJGk0ZEUMtuhaOUrIr7YxcG02Ky8xwtcB h5MMbCOCVJ1E0zf2h5+LmTyoFlF4PNhkkkaEEeYs93LHGoCo+LRIWMf7xogC w0MV5qMgS2+2RtsZLi6LyLcRgrJbB1xmTzS8E00YGC07Z3TzQRxV4pvKgivv tM8HlxWkv2+7G54PnM/muM/vF/e/a3TzH/fXFpFg7cMbd8GBFBq8sUWUXzPO a98p85zuPnwzX4nOGK5U4IaSS1VJBujmjewupLu6RxFZXBdWN3Ks00cDpKWw wlvS10Udm3CJ+AsCGYADbTODYrax2p3ppq21yxuEWQ3MhCLvIE5TyrWAbgok a2++YIJcxzw/2pZzNHbTzm+8i0jJO+a6jYgcGQAR+ZJJE4kdQN0zXDoryWqC S3NpbzWpto41t5XiS2R3eO2mt45gdro4YxI1u91LI20lYZIi7sZpTNXAhtLI TySSI9vZPA012gkaBoUjR1eEHy0cwCBWXcNzyW9u27FwZACxc3S3QuJd8l9H cOZp0TdAsyz3N5Lgbn324kgRWDM2yOCW5Y5aT95YtjNFqttN9pkWQXpmnuZb cxiQfbWJnlRgixnzraSWRMeYIbeFAwVJpFrymbThuiju45IbiR7dt5kluLry 2aNpARvkd7sQYUjc7283moiwLFDG9qkFrNFZW/2mMRTW1rbG0Vy0ccULwx5+ 4+6aSzmY8pNI0ojGHAuQCvbIkmkq5edlGlIJWjZUkI/s4tmRSvDGKC6t4yQw CP5uASHuLF8uPtn2iKDzTFMxjlk8hAzfZY5ZXkZvNVZpSLcsSrbYpFl2yPNL HJMyzzCSK/k8susUV2qtc7rkTC1SWPGGkcCW8nRo1UySq8uS26KEidpEgkR5 IIGdEgFncrIyB2YCO3kHErpFpaQR7ly058xWOI2IAXkU14l9bfu55bt5x5TQ GJpvNaW3e4mjK7wTcwtNsVdyv9miAkJi8iSS+c3T6kZIHjS7bVY5VVpUBSWR w3y7wVNwZmKRnMcNrcFGkErySRojXToXSSCdniLtYWy4Lxr5pNsecOkd4ttA 5JUn7P5e/erwFv8Aabia1e2urSG8meJrN0d2tVuJZgg2BW2kRzQQRRpukTy7 GWXy2GwMARrD9k8uAW05a1ieOe2gPnu00G63SGSTB81h9oSAJtILTszKbZIY 3Jhm2kt47yCaE+bBbH7J50FwTcx21vtUFy8eLKApHlpG8md28xVCTDvb/Y1k hT+zrCDE1rKykfYIpC5ikKhsO0VtMsu5WLCe4twAJJJTLJMqoLqOewktUCNb 3NurMyqkEdyzqJF2s5jht47UEsgkxdqjfPJKAAvVWU3WyWSNGS8gRridswB5 Muk/mSBPNSLVJQXkkU+cojBGCZpB593fw3mn/wDHzdSobSZ/NwrNOBaqzNl9 qyzi5dmTbKEtHdRJOd0brNZmRreCOGeFI0jQZiRGEl/IIt4jQpETH5zv8nlS xhcQbM255SrcSotvJMxSdnjSNkkukylgo8kshQ/ubzEWAEE6wxskkqFQCNZU 8mOWJv8ARmif7EbuBd0cH2BgGK5ydkdravONrb1kCohjk/0g81LSfz4W8htO i+058hZ7m2MaeTbLLGC0ZuIobR5CrcgzyYWIK80QPNFrKI/Iu8xHfLFsSO6W KK5t/vjCGF5J7lRgxtHa2ZYYwCLAuPLuYWS+/dxypIs0EXEMaWwliuCg27F2 obswtuDCG2gQEQuIgCvKlvZbbeZ/sbWMRhLXDGVooo/KS4DFlK/fWO2Eu11k VLlFVh5FuJI4leUQm3kKbDazJbxskhAgeN0C7nxLHbT2tskcmSLiQAOf3vml kjW4srdEkWIIJEs1tlnXyo41VYdy/I5dixbBHn/bIhH5QvJSI4iCthtnzM+6 eGaaaa6ijnMrgyyXCkDaoiuDvG3azXs8ZUCEOASW8K6jNaxXBtGN88UZkjkb y3e5mEM7K4JZnLRrDgSkzRWt05YGUSGOGOW/tbd7mOdp9QiJZ40TzPMuYlku ZW2oQjMLhIhtDFkurYKjS24QkflTohtPIlheJYreO83rJtmt44LeJlXJVnto ZmcoN0pBVFB+yykR7fc0kCfbVfLyRQKQbiNYktXQBGOVkdkt4jGGSIz3QTKx pIQAV7e8gBnT7UssU5mtbRTJCSz26MI4w2ZI95htYgjFM2eUKFvOgkMbG4Rb 2a0mlmuGV57kLLHfHIuXZsDCWpuAJ2wAPs4D4iMgNyAwsA01zHc6fbO6TXIt xLBdQxXMeG8pQAUPlPKQikG3skhRx5cpWPNxDBh5/sV0sXnSy3EwEiPM+ySd 2ygeRD9iiJcR/wClRb9y+VMzAEliJmfTbhZLsSyvH5UzIZpkUKkyTOQTkma6 F20RaTfJJawpuIbZHbXD2lrDfiKxhW1itrwNchiqFIrJrXc4X5vLiALuoyWm liVEM8TPJPar5strIkmm+fcG2jWXcjiDyPKZWDICqR2+1VklVmjieeZ1VpoU Jbzmea1vopYxIrxSxvukiZPMmE8XnGTzXVFUXl0WdmUugLB4khMgAGO500JF DNIstkjL51yHXbPaRhVZggKKiCJpWwHWVtNEYEhi82WSD93ciKD7d5aSiAJH xKscdtCgTA3bbmJVtlx8ge7miHIt1zTiS2TTf3aRrbx6ZGGWe2R/LTyleIMi bjhnSG+dMOCv2gDmOYTWJ7VZDLZ36SR25Q2d3LLulnREk8+7ZpGQhyn+l7eC JZYp5FIMMEagEccTy2f2OBbEQG0gj8lZ2htoUcsxJcDzQpidJRkL/o73oY+b 50hJmluIpJ9Ntpyy2ks9rDNbo5Z51jWNMZ2828dlmJMIDcmPkMlrJJJuuCZN TtZB5twLu9tokUAzzyJI6EOoQpGIrxyZDtWS2Ec25beMvHcO8DOb688q5H2m 4klkLBYWjiaOKZQQzoqT3blWYiUyRTFt87rEgBJK9i13Olu9o9jJcXrF5rnz vtEEdxPMZNrbjKW8uFmmKyLts1XMzMbegGaZI7a6ju5MW4F0l05jeVVaZpDL IAoilm2GIhHk8pWvWlO7zmMizRWzJK9z9ht4ZSsxw5EKQRWihXGcwsguF3oG 3l7OCNZDMFlamTDY2RivI5IliskZ7W6cTKIYkkd0JYY3+bHp8JeRcedGYlVo 4zCACxDuNxa2pupIppLhbYGN1t5jO5tvNWJCzKksccdnGISAsU0rspVLcFI1 b7TEHilg8+bZKXWPybZWkW4jgWRSpdbeOFp5VDjabeIB8rKkcMk7LZGWC5v5 I3gQxzSXSszBIpP9JeQtvUl5pZE3kOD517Cvn4iWSOaHfa3EL20/kyRCJ7S5 Plhd0TRJEch1iWOGxlcuWby5fJExc2zOAAV7fT/LuY0/s9baJ5h8pV7eKDd5 JMbsCmLrz8xHcrzW9ursTL58g8Pk2s2mSW06rFFNE1lZnDr+6hhaJAAX2i6e a3jdd+5p52cuolE1gy3Av5pYGnaZZXu9qwCO4mnScxCZYSV+/cK05SQ/NJBB blVAhMlNp7QWSky2kkKJ5vlXLO8Bit0sIk3suVaIOkquyrsuGg2oN/k+WAXJ C9zdOl5PBKt3dstwEmaOGYNLJPdOjEhkhCTQKHVmAt7meUKS8yrXa+uI7Uar cyfOYpbkXEiiORkWKa7XzCnyp5s95bNtVl2F7dUdpVLRyXQmtDqD+ZdwfYUu IhdyIZbg4kZjnndI8bC5l3q6q1zyuYrUyRkqrb3U8X2CQmN3ElmjMztEkS2r W3y4ZwGeOxilAk5a7l6kbQAIFlemJJI7c2rpFHKUjKWs1u8k08iwIcZhxczO ASQ0sUSBoGzNGq58tbeKCKZInht4Z5PPWHz9ywQ5DP5jbEkbcFbz7e2towMT FGkdJrky2st7HvLw2b3TSmRFWW2aGa5IXG5GU3typcjILSkxbyLmO8ufOguG vGnsDJFcyNBcy4eBGe3STfIA42iOe8hDOjOZjOcGaUxqASG5tlvTLe3kkVtG 6TyzS3CeZCheSKKQtllM4hFzdq0TbpZbpZFR1Umq/nNYW8U0ojsbiG3guEjk jXFkYQ8ksghACK63TShFJAaS4SHMYjnhNyWW4trqWNmnaWL7XutrSAROriUR IsagsQqu1vBEU34mj3F3jtIgYzKunmSR7iQQROQfssjEmKK2hWQ24K5IiVIp YWBO8S200jn7M5UAjliTTWuba2X7K1r5tmJIJ1aQJZRSyyqhx8jF4gQwU/PI 1w8aM9sFkljhmeRbgRvBE4knEBEaiOZbiWQKVd2igNpZwwlY8nYoaIyIcXB5 Ztito4u4mhRIZYLQyNPCsUkCyLF8+5n+0ukMMg3YNhChLp5jLHdeVHFPJfeQ 0CeeJHg3rCF2752iPBWMxrp9vEokVZYZlVWRpW8sAkE93DcPLNLHJqFpcK09 vZMiyz6kxMjKRyofzoX2p8wd4Q5DItrbvHHa+ciaJbXECMYls7cQv80azW8d tFK6ruUrJLJKxPKos07I0jXEDtYZryO8MEMvlX8crtDbGMgQPCLeNBmNcMqX Ej5IUpM9hDFEgAjjFeT7G2nOsfn6dpZibY7YBsre4EgXK/ckWO1kiY8u/mXj r/rbgPGASGc3wSYyxxR36MbWO7aQ486MNIJiNrGKOGSVWc5YLNcXJZWmhEoj tduksDySSSvE9tFPcqk7SyLttAzfOEnMUss4kUjNxdFypWCUoMq3KXpewkgh uHCXlraMzTRlmKvDER82+GG5s7VYiqgSOV4i+0CQeRpne6uobSWeR5ZJYIys a3LyL5t5sZiNoaO9ii80Oy+RC83PlxYAI45UjXzLJt7xeQbAxQKAH81ngeO3 JTbNJi+ukjPZoIlbZI0ckbWtibeeJEjk09rf7HJcw/vZZYIBK8rLKybXAjtX WLI2yO4cFPs6xW8j3L2VrNOZtklpFM+90aNBOsUMjqypJ+52rDYweXlfLnuD 5RBhjAkuY7GC4FtfzSLYwXG0+aPKePTojb20rEqCymSGNEbOxmkEsSiNkaKc AsLJffbZJ5oY7svcSSyxxHzIbs75bhxGCSypM0kVtEMsDHcszIDdqJM9laDT WzdxkWmmRCG8niUQoWitlZyWQlg0Sw5UJjyfLiZTPdECQ+bEs2oX3kR31vvn u2fZDDHfLKUmeRosuZFZnYHLbFdRF5b3UKxE0cunR3EcUc6TWsQsYmjRIJZb j7W0hSFURtrbzcIuwMgl2bA4tGuAAWJ1vFvy9lF5c4lIsDdSFZnmknmmtoHZ mYlknmzJvyHmgCFdsE0wjgsluTFYaXLJFZXSC0tiYWI8iST7HFO4bZtPk3bz GNdrGS7jlO5JCsUd5DbxteRfavJtE8y3kubeMysIniW3hdUTdmFbSG6mQvub y2kGQzx3EklxuWW5kltZLKaO4nkkWNFItzFBfkCNgo3G1UKkR+QNJHIquUiV ogAQzam6Pbx3aT3rxSxR3Ll4lkuF8uCN2AbciLfea5wQ+/8AfFnuhHEJuv3S eyupIlvXiW1lidUZpblctKuWbzJ/MhtUAdhh45vnLwyXSiwrby21sptLSEXE ccJjkZkIjglHmwtk+SiNcyzLMQxEYjncbyv2mO0KOkJFv5itF506sywoIGt3 WOB8SEpusxAqOxk8tZ7yQsTG7IAH2hxB9r02KxkkWL7ZZx24aZyY38iy2ZXc /l/6OocrlmPlFEP2xjJ9jhJbT9Nu41tJkexszHiVJ1aSexhYHKpvZPtbbFK7 pZvNZjGX8iOMXD2+yGD7U1x5EaKsIia5ElqywI+AECudSWNgrKII40QOWaJm JG8y3nuLGWCcPs8mQR+XDOFtbmO3ckKFWM7bt5EfdHGohgbYiS+WAWLOf7fd W+oon2dLr7M7XIuvNEaNLcSEFyQ3lxrKjyOCjtLZyuPnSSeKnYXltbW9jey3 Edube3tryaSOJLcQIoa48tFJUB5ZZZZI4juDSWsb7PIdRHcn/dX5vIvt3nJK VtpTzNOyTzRwKySbSZi9vLdGI4WSaIhtzTIsJbxXEckEcCz4by4IhDOCWLWk EVuquAwDLJGqmYbE8yWznwyeWtAEaW01lDbrNax2zWDsxiViYrZxDcfdKkNs gksrnLYaT/SJmjLSbZpI45oLV0aa5gP2eJZZmuhFIIFkuI1eVokOBC1taBNk b7THc28SBt5kkjtorGSKBo7eOe0NvasIbePLSQefIQIot0m4BpraIxMCr3S7 nZxFMWsGclFubmWO68h7i5adWke2kAZowQE3GaAutzlXLSGFL2UhmnGwAjl+ 2W0EtvH5/wBsjiu/Mtps3jm43iP5i3zTKZpBCNi7GmnvDzDujkub1+3NNA8d xZfbXSCSW5Z4riD+0J2HmufMzE0P28vOfm2RspARibindQ7Ip7I207yxefI9 ux+0STXAXYfOUjM2b57aPcAySvDIWHlxxJFJclZZrq7tlknkZ5Zo5kvWClIp iYRHOpXMRnSV2ZnRmS3uLh8u0ZhAC03Je2C3d1JaTb1VpLl1WRIA58yW6kZs oPtDvMQrqyyssSu0qA2teCNb/TVhSaO2ju7eytmIDIlok8TSSyGJAuwBpL+U ZIBjB+ZISEuLGYYpWtvtMcUEVw6NGluAtuqQTu/yYUOIhPdTTR7fm3wReXFv aKMZ2Yg3ryWjhLaeZpblfOgIkKNMjvwsqeaYizIg+1XVxIWHk5jACTdqNxcS S2skX2y4uXlhiRWubd5iWu4wQpUSiOWO2VW5ke6i3MrRLFDHJcOiPcxxWMsg ia9khjDCJilvJNDEcKCLf7OJtqyDLxXIgxmEyRDR/uCt5psGxYoI5bKCDyVf zHuLmS3Jf5YoVZ542Of3bWZlLI8SRyF15rxTwXHkXk0/nyXifJDHNcIuZkKt gje9xBNLuKmNLcMDG0YitwCQ2cKm4sku43jluIrW5uJcESK8gL3kjxnzGEsM V3Ll5BiGeUBo02G4LgXd4hS4trvfqDzeZbtcJFK01w0UaW+4nAl81rw5GxB5 lwdvyz21R3zecLthLBLPP9pNs/l+ULlriyk3zuxX5N6v9ofGFiEsEcjFQpt5 JxaRPeXCyRx2Jf5p5EfYbeRY0WZwCgKCyLL5SYMbXqLHsaVY4gCSSd7mZ7sT zyNcbrg3dpaMk7RPfyPsgQglWImgkjDFmV7qJiCBHLb1yvnyiGaKCed/JH2O 3k2JI1yyBoIn3fud6rDbR7XK/ZoJ5QpV132II/IvxI8fkXcEolltUTzZFuI5 4beNlIQ7liYxxp5cewP9r2K0SiCWvam4t7CD7DP581taQTWsUEwmeSWODylK HOGX7dGOpdZPs8KDAW3SYAsWjXjXUNxYS/bdRu7vzLAeWYjfyea9zvkTaNvm vFBKxCqY4ltEL7ZGkSnGIfsgt4ZJLmBLc21uQgaZ1lt3totiuVdZZoxPceW2 dyRWkSsPkAkjtLOdfs2nwQPZzeRpkIuAGWZfNYBU2uFfPl7SFKLJcSzzLJtt xJHJFKt2UZLiSFZkt1LRyNGlujSXDIQQqNESlraXPmtGAkcHCiMRwMAE0s0w upYvLuSyNIjpOWhdo47mAOruxR4nnnunIcrmG1kklEhd2aO+d/st+0N5l0ie fT3JYMxWK5vFuA8gZjJsnkfqxiWaBWJlfzoQFL1YT9n85p9h+yKyw7zdSjbb x/vCYGlthYxqA5RYBcgbmRhRcF7yCeSVf7SWaKRxIbVhJeRF52RWQID+/urq 3fy12tGklqylj+8jALFzbRf2tLaWq7S8q2kMUsTxo0MkkltCjZKmWYW8Rtwh dSvnuT5TwzyGNJVmCXElxJbWklvFI0kcjRCKIXO392xWNY3ZRp0qu23afs42 JbkiKT7RtvvNe+8txd/aTNDFty/k+fLcuOFm2Mgu2WIuhxbxhpkaIw14ofJg itfs09l5EVpL5UB864j2OYsQJgYmXz/L37R/pc052nb5luAH7q4aP7d5HmL5 q3kR3wLCnlRXE9vEq8rsjBt3ILPHFE6kOZIIVJDcXVv5FzPsnu/P8+aGYRxt K9qr3c4jJ8t2xcoqvyrI07b4ohE0MgnJAljljvHV3eSOwaRFkjS5jKpaqnzb GnhtreOUZKoVwX2mO1jk82C3nj/cXUi7IZjFsQT4tblULFcKLeTzrja37ry7 W2QgqWjNAFiZryR2MMv9n+b54izGRHayPcXMUYJ2o6Rwx2iyAlVKCFXY/wCj wwmvLKkkTXat9ht/3c4upIFVrdGUrbyuFIBaC2lMoMTDbLd20SqAkaAuokRr q3Rd7P8Aa4nkinWBpCkVrAV2ONsbCF52KMNlrHcvj5oWQSXE5jlvr63ljmuF TzoGRpBvhjgnuk8xjloxKG88DIfdHF87TCaaEAkjDrdJHJBBCIbtbQxyQter alpY4pIgIhvlWOG0trVlIBdrokuUlQt7P8O4ni8CaaJV2TN5skiNO00iu0rs wldgCZgSRJwMPvAAAAHiktqsJeGySS4+ypcWVoh3PKRHJbna5dGVJXgWOAoy E77mOHlcw2/tfw8+xr4Js4tP8g2kEtxBE1vjy3VJ5E3pj+Ftu4ZLNg/Mztli AdRRRRQAUUUUAFFFFABRRRQAVHPMttbyzuJCkaF2EcbOxAGeFUEsfYAk9qkr H8RXE6adJBbeeZpYpAFhtpZGfI2KFdHTy23vGcl1+UOcqAXQA5fULqUawZZL 37LdaftgW9nZGIVVZn8397HEPMU+c8aKW8qEMdjmHy686wXEV8GigkZLR2kN xJFJJEqq8AE0srTosaLLKrklWLwXDBJRI61Jas0EytFbySz2z5WwsbxZDEiT JF5SNHCBFEWQgIXjDC0QyBc3G2S3uPO8hFuPtyQ+XNiGf7TJc7PI2LHE80qj cywy+c5HlpOhyHeSVQC5M0322aNJ42vlec2itnzSA7yKirJJHKDJJH03tDJH aHHlq2BcEou5Z47e632r4McsVzNK5guGiIZVjkJKsfPCzEp5Wz5VKAk17Wy1 GXTp47Z8u26EyWk6oouEHmGUyKdn/Hx56yEQAuzANHsQ7thoRHdSSJdX0ccM qRAJHM7b5JVkfO7crxnci5C/ul8wBlGdoBXtFlvcamYvNW5+zkm1kRvMUeUy GKdWQtboWmJDjc+58DaQrWA7wSm1F59ku384QRzFp4ZXkZ3RtzhWdlWNmMSO Nikj7oRqI2le8+1G2njum8hnijt0V/JYMojllJKv5btLIRGwI4AB3fvC0tsa dDaBZzbvF9heO1i+xx2+wOrSRjIkRSQFXazYGwrxlyAEdpZxzppscEEEKyrK lrOA6yRxJGFaBN/7tUfyv4QAyn5csHqNNPhutLimgg0a/SWymB2wBIrpptrs QwL7YpGBLDD7tynJ2/NoSm+ht/NBjuHjeR2iihw0qYbZGm5wFf7gLMcHB4Xd 8tcJps96JLO9jhu5Xdm+zSrmby3jSXcvIYjYkRYgsgO0FSaAK94kxSdxLJcS 2lwhtfMtCHWZmJwJBGw8opKsRdUJRfMJYnJWSHRoJ4AsyTxost0yxkRRsGld syq0QDI21n2srBtshL5ckiO5tjK905tZGuwkpkWJpGd4XUoqQTMUETt5UTMF OFI55YSVuUAU49MgjuBOsl2XDl8NdysuSXP3S2MfvG4xjhP7ibblFFABRRRQ AUUUUAFU77S7TUjEbtJHETo6qJXVdyyJIpKggEho0IJ9x0ZgblZ+tShNJuYi 06NNFJGjwwTSlD5bHOIiHHAOMFSTgAhitAHjesWcPh14onu47SOC3hNyWwxt gFgDK2CdhCrbEBJGkUWkIWXzbtXOZdw7EIntoE8mK4SUTHiD/R5Y3X92Blf3 NzE+zb+7tZCg5s0i7u8GkSXb3VrJIhjdpbZY0MvM9xE0TpuLROZZZHeOQusY by9yObc+VzbajpcFqdtxPNbx+ReT+Q22S5iMVxch2YuWibZBJJGjZYGQSOwm lMsIBkW2qXumzl7K98hzEYiFSOOaOWJLbeqqSqx7PPSaVC20C18g7YYdzX9K vrjX7y1M0m7T02GBLFQR5SiB3Nui4dVxHKscandiBpNguLY+ZHcTzHUFt9Ql kh/0hlluIGISCSS7lE7ITygV01CcORhRZ2bMdyEHEtnuJUtorVLFZ7mKyttj KAjS3Fugt8lmY+XHHMsZVldnW3fG5ZrraAet3VxofhqFraTStStpZE+eHTbm UI8nkvlYvnQuBvjhVgoG6S2jXBRVj4fVfibOxhmk1GR9Mtbi3ubmSSxiaOYR yb2SMkFSXcyRx7HkKmx3byrPKvQaf8KLGW3IjSSys7pJVH2WXyWWKQSojNE8 OTKtuY4jvPHmzNgSZd+f8WeBLnSr0ala2sluZHhKpZzPO7uHEzRRrGYpXCLA scaDCxrGjAAvJJAAemeDPEkutaTaQXcc51KC0i+3ySKiATeWm75QcjLmVOFA DwSqcFcHz/4nuh8R3AlvP9BP2RL5iVAih2XHmBiAHCoJIiVRlkcXhj3fvYgu B8M9RMfiaO1tk/0ePyLaLZLDMVIlcLgxo6qyp9sQsm0ypJ5uxAZJl9X8S+CE 13U2vjNO7+UxEZuFjQusbJDGw8psx/vrhjnOfMIZZEIVQDxzY12IoL1JIYbi 4ggmspbZf3aSRuqw4XG8hoJi6x/MWt7WKNYXQJBH9rlmg+13E88SSRfaru5v SmI45X+07MKnlsxFwQW2MBHcspV3uI7ZPV4/hfYJfJIzzyxrdrIzSzxs0iGG NZmYGH5mmaJBKN3zLuO4B3Ro7T4YWlubeYm789ERpD/ajnzJXkja4dj5QLvm IOshw5ZuPK8uExgHmiu814BKk82ZUE6Irby6C4eRQhZwJBHewwmGTPm3M2Ha T975kcclygt7iaGS5lVLa6ljy8kjPFGI8RuhYGWW4mJV0OVGoJPiQsrQ+l/8 Ko05bOOAxTzCG0lt4xJqTAsuYlVSwiyvmRxFHYfMqO0Y3IECWI/hbpcd8ku2 cql2svmC72thYY0VwqxgKylHRFUgRLM7RlDsVQDyzyZ2e2tZDaTSO62ELvJE FnMiokjxIpQsJFkaGNUKjyJLZ38lYopGjkvHFv8AbIx57Hz7qD7S7KZBb2qy xSAkhwxDXshdUV2NwkhWFpopE9Pt/hRp0VmkHlTxq1pbWsqxakyBowVE0WVi U+WQHYgYErzOWCkIySH4YWipIUN2XLmYBdUeIeZE0PkqCkQ8tGWBSwTAQ7Qq t5cRjAPMIzDa34ENzHGbO4MLSW9uB9lWFHnEjIAvlgSefeNbtuy0cMKjMUgj r+RNb6U1usUloFt3SaPaWS2h+xTjBB275UjW+BCbA1y83mbBGvmetj4X2Blh SZ557dJUSQSTxlZoFYTYaIQhOZEhjKrjEUEQDAAoa6fCqz8q1LeeJ4cTeab4 PILiRSk0vmNBu8xc+asnBd9oYKsUYQA80v8AdKbtZ7WRGCSxxxWyKiQLNJcK I0eRRtItopIndlVI41AdUktFR5J3c35kv0neVJTcSvbK0YS5mnmLNGZWwnlx teupfAhe2DM0cjzxV6WPhfYxOJo4ZGkid5YFN9sCtGscVsm5Yd2FhjZQ5y8R kcqWciQEHwo0qAxQBJGtFuAZUMsYSeLzPtDb4RCI8tKsSFQB+7hjAYAFCAeW AXCWso8jfOsRJZ4Rb73hiubdSwYKnl+dNcDy5Amy2sSHQqCKCLfTlmaKC+jt bbfIsUEJtQIbeUttAUb0aWSzxubdcKI9zsEt2af09PhVZ+ValvPE8OJvNN8H kFxIpSaXzGg3eYufNWTgu+0MFWKMJIPhfYxOJo4ZGkid5YFN9sCtGscVsm5Y d2FhjZQ5y8RkcqWciQAHmn2e4huvsl1LOmz93JNCRC0cUUuXOVZY45jLCwTb lYl02MEtAGlqur389qZLVNt5NFEbVLZZFUXN3FCyhQWCpHH5tlGg3Yia2iky jFIp/U4PhRpUBigCSNaLcAyoZYwk8XmfaG3wiER5aVYkKgD93DGAwAKGOP4W weQnmSzm48pd8rXMTsZpHj+0yEm3wzGOJEJIxKpcOql3dgDzRzaFNlrHGdCd ylukDvsaxVrqZmZlAaImGJYjgs2JLvCvMZ0A5ubh3VzJczu8qz74XzJLIu65 BjV/lcRzLD5BK4udQmEbrgY9PHwxtoHE1sJFkid5oFN0mFeJY0sxkwE4jWIE MclSzqfOWR8kPwo0qB4YQkj2cTwQ7JJY2DW0SpIUZfJ5Ek8Ss6ZwSXcMpkdG APLG8oeZKvkJC0SSXTjfKiRy7Y8lU2M6jT/nSMIgVZrooYjF5ayPuilk+0Ws lvItxGtymxTGi28F+soLKoDIiEISUZGMcyRRyxRiKvS4/hbB5CeZLObjyl3y tcxOxmkeP7TISbfDMY4kQkjEqlw6qXd2kHwvsYnE0cMjSRO8sCm+2BWjWOK2 TcsO7Cwxsoc5eIyOVLORIADyyWzKxMstlv2eWQzwQ4Q7TEgaGZihW3gjCkSs xV0vACcPPBI8hszJcObuSGBI5HW4EkpeGOS/88OjoC7tKrFlba7xtNzBE0qx elj4RaOIja4nWE+dD5sVwkTCOVXaSRUSEKsjOyIQuAY4UUnbujaQ/C+xdzN5 MkMjukzpFffIHZZI3TaYcPFHE6rGjAqQmwqivJ5gB5hMJo4ZobmS7Mtu84me 8Qy7lELtcxt5ZjDlUS8iEhK75TcOhJld7cR2Z0BeS22vF5htrlWaHzl8wujj 92Alvp0YQsiRK7+chSJImHp4+F9jE4mjhkaSJ3lgU32wK0axxWyblh3YWGNl DnLxGRypZyJAD4V2QcJ9pu2QO6LK00TMqOsZZ1QwbASIY7fyh+78kEY+ZlIB 5haSQw3thPIY7ZEdZ91kAiRxlzeHylZAWghi8y6CckNcWsciP5YFVxBMNPa1 uopLZ7iyt7WTCklpjaLaRxps/el1kwWUqSQl3Gn+rlE/q6fC+xYJ50Mjxs8U 81tJfeYkkpufOm3s0O6UYCr85PmhEDhWjRwQ/DC0tSk0Ru3njSdgX1Rx50pk iZXkIiyXkMW9pOXjYjZny4jGAeYXMs1/cSFfLhu5LiaeKVpy/lXE5mNuVRGY 72Jupo1QsEUwtE0kjstwRtbXkyrFaSJa3T2sP2NZUEssEk0S28JbepWd7KRU XLlRGk/LNJMY/U7X4XadaT2gSS+MNriBGOotuMISI7yAgzJvhVRzlV2srKYo Vjjs/hhaWqWJBu99tbwRAf2o5H3ovNyREMlVhUo/DZwB5XlQmMA8s3Xl1Zxy G2g1KS482/kItzFDdzZikRXQnefNlRmIKESLcWakRl4PJkeeGxmlv1lu3t7J 4blLxmDSSWyzNOpDvt3SyLcx3TK+5BKsCMMypDH6XH8J9LggRFtPNWKJUWKW 8/dyCF42hjYCHHlyFHklGMb5WO2QhGSQfCqxRwIbvUoiHdftS6hmUh1jd52B jKtOZowctkjIYMDHEsYB5ZNZuIl0zObiL7Zpmy1Rp5A6LIkn2dMSO7eW/khX Zf3NvEZDGZIGjsSzSz3jIlz5Ylljj2uEugjXQLrnnMypHHdgL96d5N+ZUvGW vR5PhfZ3MDwSafBDDNE0Dxw3g2xxu8kjIg+z/dV7mVlHA3W1seDnbYh+Gtm8 9vNPB5W27MzxJdiVEjZF8yJQ0I/dnZFBsG0eTEMFd0iOAeSTXax6bNeJa3cM CW6X4Rrpo/ICxRPbQI6su4BVtAxDAlQhZjPJBHDoG2mtdUI8ySz8vU0j80zF 0jKeZEZtoXasUT2glCYSNhZOXWNfs8aej2nwwtLc28xN356IjSH+1HPmSvJG 1w7HygXfMQdZDhyzceV5cJjLH4WWNk9t5JkhELwpHJFcfvIUhV/LIOzYwaTy p2j2KPN3MzSABaAPJFmt30Uy3EsFrbSWkSShrgxOEeGGKCOR9m7ctrBdOrhR vZpFEbRyos+gfNt7q6aax80wXatLGsaQJM0cs6/Z8Fwq26QmSAuzSKqi4AE0 cIeH0uL4YWkaQNEbu1mht0iheDVH3229mEvluYtwKIYlV/vOsEcbbU3Bxfhf Yx3EEqQyHy7jzFH27b5aIYooQCIcsUt0cKSdyM7Ycs3mqAeWbZbXelzczxTx RSM9x9oSF3k/0VZLlywGxnuESBXcEo2ZZFjlt5C8ghWW4e0uTaQpdXCx3Mlv I0YDKSJ0ZGIaOCGGaAFQ4dIUZMReZc+V6XD8MLezijit7Xclv5RgVtSKgGFZ FjYYg/dscliyYIe6ncHfHE1Enwvs/IeAafBLD5TQCNrwRq8e+STYQtv8qs+G IXhWncrzBBgA80st1zLa3C2shee4s5kgVFjZSIM20QdVxk/aDGZVKiH7TZsv lbPJWNBcTRRBYPt+/wCzxwwNCFW5DrBNCjx4EW2SWa0VwpUQxW0cW9t8e/1N /hnZS3ryXEd2JJnl/wBKguIpCrSPvlleN4gmZBEqtgNkXDxEeUibY4fhfZp9 n26fBD5URgTZeB/JjbbvRd1v8y/PJw3D+UN+ftFxuAPMDY/a1mi02Scrf74L SeTgzNcSm3SadjH5jSPFOJGMgZUSYBChuYhFYhb7fqNu1rbeUk12ZreO4t9y Kt0VWC3bBYLH5ZsBLs+UQuIgY3JWf0eH4X2afZ9unwQ+VEYE2XgfyY2270Xd b/MvzycNw/lDfn7RcbpLT4X2MYtFMMlrHFcQSeVBfb1iSKObAjzCCCHuHXK7 WO1Zd4lLZAPLIIft0Viy209xHdbN6znbLcNcKjsN6hWWSTZbWkkx2rtlWUhh dZElveM01rf3NxJuV4rl78xLCSiTCV33MVUCS5vhJGrqAoitWlTY5dfS7b4U adBBbKIp42iisk/c6kyFfKdGdVZIlIUFGk42+ZJK7MEZY3SSP4Y21sRLbCSO aFCbfZdJGI3jkeSEDbBgI8shndSCqyJGAjIoUAHlloj2trZIbP7OYYrWGWIh oJIwsQnaPzVOE3XGnSlpMgQGWVny5kEMkcU1yLfPlyzoltEJ4IDsaOWMPIY4 2UqoZUs4sBXPl3axmM7oraP0+H4T6RbvDHGLtIYngiWSK/MbiGFUdcbIxtJm RmZVIDGVpSd4jCR/8KttwnnIuy6EXm/8fZ/4+fs/lKUZY1EflFVaJ9rBPMl2 xJ8m0A80ika3eOaKHUg0Tm4ihhKsMRLbxWyptMgILLa7FBcsZYZJfNSGN544 Eis/LskngRraWwjjKQvOgK+VCrxLGwJaUy3s8WzbIV3y4LPFJF6m3ws0+ITr bQRiMJshiF1NHGYfLlj+zhMssYKyHdMRI5M87AIzKRJ/wraKDmGTe0P7yNvt Dw+a3TbhQRFxDaDcoZU8rMUcLBWoA8sh3XFulwlrI+EneL7Oi3EbtIIrZo4i 6okpQRR5WLELFPIDFbpIoxEm3pFFexxSs8SeeZTLMJrldzSt5e0TS7IkMeBm WSzSdWUyos/p4+FGkJM3+ixyxB7cKpnIDwxzKwhk3K7OiIijDOwctghBHD5c b/Cqz+ymNfPdxFegvJfAvLJNEYd7uYC251d3duobauJESMIAeYQTW4R7qa18 uzjihuLmGKQyv9mktwfs4C7WbbYYjR35DPcsMrvmhI/NiaK1vPIiux/o8/l7 Hee8jiuk8lI12q/l+Y6eURtbdawBfKYTP6nN8L7G8eaKeGSOCd5980V9mVRK ro7gmHJdlS1DEtltrBi2ZDOT/DKG7t5Vmmu0kmQ7imoBvL84bJlBMPzhI2l2 M4LM1xMzbXfzKAPNLaK4nv7ITLPLPPLbtIYJxuWBZ7ZvLFwAC8kkhhbcpXdL P5wMUTGS4pwBpLCKItd+RNbhJFsrJVUxb9jtBHjKvP8A2hKsakHHmq5jjSWM werz/C3TZTK/2KNw1wbo28lyrRSNFJmCIhoDiLy9qYH+qRdiZEkpcPwp02Rz HPJd3ERdI/Nnu1kdolWSQs26I+YWuZTK0blkYqjHhRFQB5ZevcSrqruljLcy blZYlDwzTzSy3PnMrNsELGNGVpDzDaJI5CbYZrE8txHe3T6U08U8l3cNZRXE AV5rh7xIoCxcrlt1nAwVyJC0VzJJuVdkvpY+GFoyRljdrKridWOqPI0U0jTe Yyu8RJMfnF4mPO9c/IWkaQHwvsUcYhkaN3dHQ320CDbHbpHxDlwLVZVG47lM rgMWfzVAPLGe3tLUXGmJ9o0yCKV7aEqWW5S3imMTEhgixvEZDIjAeYz6gCBI kaiSWFYpp9OBtLk29663AuZGkjM/nLhblwSxG61u55XddskSR5EZEIh9LX4X 2cuftWnwN58UUFzi8Hzxr5OU4t1+Ufv9oG0DEW3Zti+zkvwwt7i1Vp7XfOIj D5Y1Iomxoot4BSAbdzReSdqj9y7AYVY4kAPLL2QQWF1ITIwFveTtDqAjBkw/ yS3SsmfNMttDEwAKtNaBW3C731cmR5dRuFtnnu5luwiAs0bfaiWjiUFlYxMg lkk3klo7i/gExZlZz6f/AMKvsPtMh3z+U8sQLCeNT5cdtLGrFBCFb5p3UxNl NgVRiMeTUY+GFoyRljdrKridWOqPI0U0jTeYyu8RJMfnF4mPO9c/IWkaQA8s +xfbYPstpDBJDexfYrZntvLjdZX8qI7Qu6FWmuXvWUqyqDZqpUtHUh1QpNJr CPHbvK51KJpIpI4SBNDcM0/DBS8ssLFRmTy7WGNGk86OR/S5PhPpYgdIbTao iZI4jeZjAjeRreMgwkeWTIsjghgXhQssxLs1j/hWFmt1mK5vkRbvzopXvRNJ Ewl+0LMPNiYmRZN0YUsV2SSNnfI+4A8sijubN49MtZpI7y2cpbmUO7RParbx JIyqCXDXBcFdzqXtYY4zMIUikjWby7UzxXM9jaCKLbcTD5raFooY4ZHUHBaK 2jhnYxMCbie0XaWRAPT/APhVVmdO+yJ59shi8tEgvhtgWUeXLGuYMMqRmXYz gszXEzHa7b6km+F9izzTQwyRyM88yot9tQvteOBGXySDEIpAuxgyxhAgV1eX eAeYeW0T3Ky6XJGEdreWETLhBte2aLcTGJIoLeMx+YzAkreFGxungjkd5keO W82tdxMiyEtKHElvIFY7wgbbayT3DyZjHm36GUIAxX1Ob4VaY7zCOOQh3nUP PeyPlJldndgArs7O6RtiQM0USAyYLo0h+GdvLLM0k88ZuZXaWaC6McylmMhm DKgUyNLHbS8KpVk272jVY6APLJppZpJroCQSOiGN4I5pcpJeRXMSRsoWaWUo tud2YwWu1LtFMzGaOR0d3eG8sWEUTW8F1MVaJA1xJC87cJGbcFrWDci4eJE4 2RzW1epn4X2LuZvJkhkd0mdIr75A7LJG6bTDh4o4nVY0YFSE2FUV5PMD8N1V zJ5clxIjpIjzao25njWQI+RBlHJZmZl5D3c7gl442oA8wdGZ3cpJbBHld5bu 2V5IhMu15J0PEjrb6dNLLtbLyyNEykeYhjkR40ctZ/ZTJEwMUoZ44V+zyApK ylWaOC1ga2O4eZvku2jLPGRXp6/C+zt/L8jT4P8AR5XngxeCLEh3fONluPLZ tqZKYK+a23/j3t9oPhTYC2nt0h8mJ8IFjuI9jA3MUjuYjb+XuIgjbG0g72i4 jSMqAecSrKt40ssV88KSxuGaREnXgoHPmNhJoUa8leTKf6U0rEMtvIy1/sbt B5BO2SaLypCqNapEpf7G25pASscVvb3iASK8iKzTEEmUQ+n3Pwo06aC5VYp9 8kV6oJ1Jt26V3IJcxFtzq6h5DlgsKIfNQvusSfC3S2vnlRZ4Va7aVJIrva0Q 8mRI3VfLwGiLqkS5xGsSspBLq4B5YSJLhJEjjhkluGPlu8ds1vKhCYbAbyha wTySggu8PnRqQ62rla7zMukPfwCOeG3spZ7VzGpRhJBsWMJiRgkcNvApBZiz Q3MbmSLzpIvV4fhfYxCExwyW6pbwQiGC+2CMC5Sd1VxCHAXyk2kEFiXYhHd5 WIvhfYpcec0Mm9LiOZGW+27ipWPdhYRsKQx5jC8RtPKsZjwjgA80ubaK2urm 2mXEP2u9t7mR4nnQqkryPcOsh+bD28kp3b2kW1ghDSFZyIwZoUje4ju7Z1tw Jpt5kuY1VpryYiZhzKixyDDqubp5WBH2ZBF6OnwpsYrJIFsI5VNlFbyRSX+E IVOYxiDhDIoYsApLTyS4DxxYkm+F9m/2jdp8E3mxCB994E86Nd2xG22/yr8k fC8J5p2Y+z2+0A80kea1J+3WUcoFwI57FYi0UsyyJI9ukZycNLb21lEEMibL WdwuFOAJNmO2lvY52kcQTTzSkrdbLaZZZCTtxBuvPNeSPLPBcCUFZEmc+nj4 bQwXD3EFpGZ9ioJBfCJnWMkxglLfKjKRkBfueYdmPs9vtIfhRpUDwwhJHs4n gh2SSxsGtolSQoy+TyJJ4lZ0zgku4ZTI6MAeYJftZXKXspkJgeLUJmumW1aS X7d5ks0yKu5AGglicYPzm2jVJDHHK8Y0rKw6ITPGE2aLDPO20RSTSiGUpEGC jpLvMZBkeMqDKkdzLL6nbfDKGBLVkmu45oniuHcagHaS4LAyO7GHLlXVZgTx I6orqEjjCxx/Cqzt4Egt/PjURLbK8d8I3gjR49rIywA7iUFyRnAmXA+WSQkA 80+3tfFtTYyQ/bkedZ7dlY26SST3zbZgvCRKrryhbzjK6CRrVEWOWHfE1uLa eJbny7V4XPkSZkUwRxEgM37uCzuMBTJIHn8hhKfOEnqY+GNtA4mthIskTvNA pukwrxLGlmMmAnEaxAhjkqWdT5yyPki+FOm2w8m0ku7ZQkdqlzFdqJY4UjUq 6Dytqv5yu5UcF5DLnesYQA8s1CVLlb+TUm8yKfzhcSRwKJHiMrXk/kDLhlSO aPaDuUvcGUSNHbpIkl3eXNvNJNdXFpBfxPcXk4mifZBdpMGMqsS+yKKe5lVc Bg7WkiISbmRW9Ph+F9jEITHDJbqlvBCIYL7YIwLlJ3VXEIcBfKTaQQWJdiEd 3lYh+GNtZITZiSFkdriFIrpIkWdGJjbCwYw7bJXBBVWhhUK6IqgA8we2mW4F lZ2sZvbdLu0ggnYtjmGCPO8nAaebyCf3istrHCXaISyNJYTRDVLaWyudirdp cSTMHKtE9yJknl80gruMJuHDEym3htwH2iaVfRz8J9LWIWH2T7Rpy+TGEmvO CkaogOwQ4VsSXjHaRl5S2QzK0Mg+G1tcAG6hkuBJevcXKzypEJj9pjfcyIjq 4dUZ2BIDHYCqBYhbgHklo0SaGot5fIEWnwzhJY3lEP8Ax8+WZFVVDL5FyzOg QeYIp5yrpxcWLyVI4LhJm+xWoiuZY7O6gWZoYEe3WMSqTj5EtIYwjN81wERn fdNHF6nD8N13wyXEckkgeCR3bVGdg8aoC6nyAQ+ZLxtw2kvKXyrsrQxw/DCz 8praWKcxvaWcUyi5Ch9qxwyL5yqHbEMJUfImRcTAMBKfLAPOMu2qeb58FreS XexbjzmkNoYrnzDvEhUusMcyXEu7aWkETSR7orljHZKrCyxYSLp0qBo7CNmL pBJGryQgp8pIgmSGIN8zyaiz71kZ0T0uT4cJdQPNLa+dPcxM0v2q4VXLO8k5 WRfLlT/XC3ZgpMZYOVRVLxyl18L7Ob7XjT4JPPlM5828DeZIvm+W77rdtzD9 xktuPMmd+6X7QAeaW8epzJa2yzSQXj28VvHNGI3tzcTMERgYwGURs8BDKFRV FoV3iG3NzGbn/R5rjS2nCyb/ALJbCXEyrJalbCNVIBEgEUTAAhmazD7pjJbY 9Pu/hRp0v21I4pyskV0sUjakwkZpssxYmJiGcuUaTLMUgiU71aRDJN8NoS8z w2kf352hDXw2p5iuu1QbdgqbI7RNnKhEKYZQ4nAPMJ5l06WW4jFoYrW4MkLR RsXkSygzG8W4NuJU2rI3ziOJlYmcPdGo57G4gY6RBH5s8dobO3S4YGQyyRTW HBG4opkVld2JXeLaJSIkSU+pxfDHTYpNkNtd26wpHDEsV4qRiEXizAJIqear qsKEjgZckOXeSUxxfCqzawW1bz7KN/MWVLO+AjXzYAssgj8hY2kJMsYJUYSU kFQsccYB5o8y3Du1mLTDPK0MksbCKNbhfLiZlYFoIvJgecoylBbW8MZJEshk kH+lX8MD/brZ5pUbE/zXkKxTiP7QNu8LNsnkAGAzXUtzz5qRIfS5PhfY3BLT wyBJEG63S+wkZlkT7QkbCEMqCGKOBQpUNGCmI8lyH4YWipIUN2XLmYBdUeIe ZE0PkqCkQ8tGWBSwTAQ7Qqt5cRjAPLLf7ZqEEH2bz7S/uoo/J8vMcEFxdPB5 e3G/aqI1pjG5IkhhxsnmXypEki1lv9HhkMF64mgtkMMh+xvqNqscSxsfKDge SgLBkUQtEzNjZbenn4UaUzmJkkNtvSNQJYwFhVZJP9WIQpBuZTIYjmMlEP3V EVB+GUMrmaSa7Eruk+BqAfypSsiEozQ5Bh86SWN+HklctIc4agDyyWZ1ia+n lyF8u6km+0MscTOp2SI7oWCxxTSzq4DS+dfW4dZJM7pHiWCaWC7t5FtkeGyu YoY2V7opM0RhiVWLl/IjW1U72BIuQu9WmnT0tPhhb2nky2Nr5E0UUJjCakQs Lx+dIka5gOY1laFuR87RiR1ZlbzZI/hfY2pDWkMiJGhVLU32YGSORzFEVMJA SRJXWRgN2CwzJ5srOAeYW6Ncu321JJmunU3y21sqC8fbFNclHjwxeQT+Qjly rG42xZS4Ihj23ksH7y5g/tGaLFzdfaDujuJ389X8yMfuoVdJLvco2bbb5QFk 8659Pm+EunPFJFG07M3mxi4uLxnZlkWNpJXAVS0kjxlHw6s0crjeAERJLv4W WN0km0yRGV7hPLNxujgSRhgoFRXwY4YIDGroFi3qrZyzAHmAnEtw8+n20YN1 cLPHZuseZfOJFlaOC5ABikt8qMKYDOiFCk4lII7lzFLYzSSS7A1pqE4dmJST dC7IR5jGWeV7po23AebZ48wlIZfV5vhrY3c0z3L3Zju7idrmFb35Qkkzy7lI jDZYMYygKhUnmwSzs0leH4X2KPDO8Mnnq8E7bb7AEoVI3xthGBHGjeVgLtM0 mwQ/IygHlizYtTJb3M9vDHFE8crjc9lbtFDGjMkRJkmFtFBd+m6IshQ28iyS PbTK7r9ljgy8tvcQyMSluqL5JjZ8p5yJbRyWyEkfN9tk81FjMlelr8KrOK1j hXz5lgieOJJr4HKiJoBGX8jcFmifEjA7k2RqnyxptkX4X2MdxBMsMjOtx5zt 9u2YKmKONgFhGCsKSlQNohaVljK5V4wDyxW82IOksFvDLsaOeaP5pI41uGeY xqqCSOO1uWCwlVDxxRFljV44JSWHzYmiFtPbLdeXavZOfLkQyqYo4jKAWbyY La4iAUPJvO1g5mmt09Pk+FVm8DpL591uiaNlub4MZlV5HEbuYC22Z5XlkbO5 JAhT7ilZJvhXZXDzLLc3Z8551kuRNEJT56uZp8CDAlfzGhKj5TGEb70aBQDz ASN9oeS1htLa4Nws6O5Vo4ZCSLR2KlxEkaRTXAxvjS3hjRXImlaWMQJGsNvZ 6f5udkFtp9xEvmNEkoSGKVGUYWS7SMThiFV4JirD7Uob1OT4X2NwS08MgSRB ut0vsJGZZE+0JGwhDKghijgUKVDRgpiPJch+GFoqSFDdly5mAXVHiHmRND5K gpEPLRlgUsEwEO0KreXEYwDzC0ZTcWk8F/JNm4gigvgrSPIGMzwzAnDSFp0u bp4cyEyLbwgbgwSvGYbfTbed45LOz+z203m7w1zCsUQk8zzSCvmpDNHHFnGX vYyDGY0hh9Xl+FliTOqmRo3d0DPcfPsktltnKfJshAQyHy0TDFIRuRECLI3w w05dRkuo4uDdpOCblhI7ZX98XC/6xUaVBuDtnbIskcjyOQDyx4Va9e11A2ik XstnJHHIyxEh8XYQgl7eIRwww5ziO2jd2RTLGjxte3kNqL2dJ4ryOKXUpZIo DHuuhFM7NLGRkMLyFfkGd32WV3AhjhWP1P8A4VTppt2sjJdi2ZHtS8d2sREL Cdy4RIgiv5ly67VwPLGM7WkjcPwvsXczeTJDI7pM6RX3yB2WSN02mHDxRxOq xowKkJsKoryeYAeYS26wXU9iokkBd4JLRrRnmeC3iW0VPkkjLPkrGXEgWST7 RHEQCUuRxdukrpbXYk+zwlI7S4TBwzN5cDIVxLuXTiJNu0FIxGGie3hl9Ln+ FVm9rdQx+eizRXEexL4JlREkFtGXEG7asSkbsll3yKfOWR8yS/C+xa486KGS J2uJJt0d9t8k5aOJkHk9Y4ZMxjgRNDGqH5pHYA8wunVHln860gti8m2WW1Zk tFKwefIPmZWi8mW1WOJTscRiJXkUn7WXEF3IhtjFHbfPNZtbSqklrabWiCGY yYMqRfZYkLrlWFrM5VlhlNx6fb/C+xtZhJawyWpheEWxivv9Wkc0rKADDgBQ 8Uuw5Eksa78kNJJHH8KNOt4EWCKdWhiVI9mpNCf3DxtAu5IgUVyjySbcYkkZ sOwR0APOI3e8v/ttok8Es0sEtvO6tJLbo07TQbl3ES7Y5YpnCsfMnltFZWkL mSvazW8MUE8Nr5FnF5F/JC8hY2cQXzIYk8vLKwinkcSgbgn2if55hsg9Xj+F ulx3yS7ZyqXay+YLva2FhjRXCrGArKUdEVSBEsztGUOxVrwfDC3tYrEpa+e9 taJEEuNSLLnam9DmA5VvIjiLYBaKaRMBEjjAB5hB5ulqIv3Fjd22GnaHZAiP HLC8zBG/dpuvEt7dZcOnyzk/uo40jkiRneOAJJMIXMMgjtlElsCtuWiRX3gv 9ngt7Tym3nzZnSV8Onm+nw/DaGzeF4LSOR7Z4HiaW+ALtbqiwFsW/BC20QyP ui6uQO26MfCjThBa27RTyxRRNakyakwYQ74FOCIs7nhiZWIKnaxiDeXsMYB5 hHcu6wXVtNm+G+4JtUaZfO822DTIiyBrhjN5UEbFpI5JLQu27zHkjkgtoYrh bWGSO3gguLK0WWKYHy7cFpDJvjUMImaBLndlCywTygwfaFDenyfDG2Yl2Ek6 hAPs0t0nkSCKRGjjZBBgJL5URkIGUESRp+7AUA+FdkHCm5u3+d1NzJNE0rb1 jMk7AwYaV/KSF1OVeMuzZZ3DAHllnKiNZ3St9hz5csaiBQbWIRNdqV2kLIsT SSXciKCrH7IgSPcUjktFXTxaCewkitIEgkmtCzMAkEc0sqcYUkQJcQujKgln uLrOREQnp6fC+xYJ50Mjxs8U81tJfeYkkpufOm3s0O6UYCr85PmhEDhWjRxG fhRp3kMjxT3OYrlXSfUmK3LO8bAy/uvmaTyyzyEFkZhtz5cRjAPMIDcW/wBl knn8m7EVuwvTMLgo8e+5mlHIaaNP3104JO+R7UKrxbGkGmt7XzF1C1+zWskS S3Vt5hV47ZNoaMSDa37uCJLEbwpaa5uF3n5xXq//AAq+we6zO89xG935ly0s 8ZF0hl+0O0kQhCFnmWJGAxmOGPDAAoY7b4ZQwJask13HNE8Vw7jUA7SXBYGR 3Yw5cq6rMCeJHVFdQkcYUA80RL1JWS4eeOZpSt9cRtHE6TbkmupgSoUSeaLi JGGYz9nWQlBZiSq7C4fGyDbfyyyiJUhFsDcfvrW0WIOAU8ueWURK7LIkdq7E YESReln4R6b9nS3WKTyxbtZqwvFR4ISBGdjLBnLrumcZx5m5eUmlLWJvhtCX meG0j+/O0Ia+G1PMV12qDbsFTZHaJs5UIhTDKHE4B5paOk2o2TaYkEy/a7We 1ZFX54rciKGTDMSys72cUYJVl2zxO6HzpnjsBcmKxh0wSGRktjZNJM+2JxO0 ELszIpZP3mnXDBgS223AjEW3yvS7n4X2ckUsS6fA8fy+Wkt4GB8pZEg3Brds 7VW2UZ3YG8HcGl+0F18L7Ob7XjT4JPPlM5828DeZIvm+W77rdtzD9xktuPMm d+6X7QAeWQSW32e3l06G7NmlvE1nApQSSSkXUdssbZKify1kkHlji4lmYlpE SBpJlxFeQRxQSD7JDAVWTyo5GKztEGZGZkjFrbpEXMm3YZcMUuDcj1eT4bW5 unulE7yHcxil1EvHKElkaONg0TfLIsriVsb8FhmQyys8cXwp01DBC8l3NDE6 QmSS7Uu9uLZoGGBEApdGSJghUlYo33715APNAEe/hjkgnuohKizWrwrGJbaC cB8W5GR58loI1jIBDmGHMUccYnr2stxB9kVNR8q+eIOLqRA0E1y/lTC4clFZ tqQW1w7YAVGUy5dXW59PHwtgaBd0s8dwYrbMsVzEGSZXkzIpFuAGijlZIiAB t2gLGY0cSSfC+xMVxGsMnlSJcqlsl95MSo05kjiUJCNqFXnUsPmRJ5EBcEFQ DzCzVSlitnYSSRwvA2n27s0LZkaLyFZkyofycsZgcRz6opxGxLiOylSO1tZw 2Y44m3XNjAsCPAIpbiRocFtuxo55Ig3lbp3GUQWhRfU5vhTpty8wuJLuTz3n SS5F2qSss6u0su1YgolZ3VDjGY4kBYrujYm+F9jdl5biGQyypB5ga+8wZEkr unzwneitIsmGBE0kSNIM72cA8witpoUgge1jh+yukVv5LG3ihcMwedmYlokj SWbyyVkkWS1mlcIy3CsWyNFcWzxJJamNC6P9mWH7OsRZkyp2LGftf2yZoGLI GtVBKwIZR6Xc/CjTpoLlVin3yRXqgnUm3bpXcglzEW3OrqHkOWCwoh81C+6x J8LdLe+eRFnije7aTMd3geWYZEUGPy9rKnmCJYWygjQdnlSQA8kQwy2JhaOS KO4t7RbgI4by7cafM2TIoDAi2W2yzKSW+1COORDJE1yNLia6Qw2cAkubtTFG 4HkuTLHBbRP5ROIQs05K/vE+z3MEW9i8LL6WPhhaMkZc3YcOJiG1R5R5krTe cpLxHzEVZ2Kh8hzuDKvmSmSO5+FGnTQXKrFPvkivVBOpNu3Su5BLmItudXUP IcsFhRD5qF9wB5gn2OfyTcefcWV5LCqi8wJZrM+dcyo7Nli20mSR2KKJZ4JF aOKON3JhcR2txc6hBveWIS6hvhG0O0TTzOsGCHkFwib1fGWsmXIhWVbf1eb4 W6XNPcIFnitbm7DTCK72l4NjDZgR5VcEQBFYbYgdrLvkV68fwwt40S4+y5vE lWbaNSKpvW3jVSGWAbdrI6JtUeUszvHsbYigHnkYmh1m3k+zSC8F7bW++a4J fzomDbDkqJCbobcKQk8iXcrNGFR4c+CZrTSoriAR3saW4cSCNSLtLay43HGG ikxImG8thDaXEf8ArZJlb1MfC+zhiMUOnwGNfO2oLwRBvMV0fhLf5PMXarbe gmYDiCDBN8LNMuftFvc206LdxC0e5tpoWcRru2l1aJQFARMKoYK0oCqFghaM A80uY7nTbiQxzSSXdncTQLczBzg2xmfz3cgts89Lq7dT5gdo4o03mOTy5IYk juI/s+nT+S8sUdtbh1n8xRdSRW6SNv8An/0e5VCGcxGAxLvzcRNH6PN8MLe8 ikjmtfKWbzQ3k6kcwCVY0kWI+QNqhBsVRgbLaJcBZZhUl18L7G5mvLiWGSWS 4e9lKfbvLXdNMj7AVhBUSKrI7jLhHMeZFClQDyy0ufs1va3AacCPzb1JRLte 7kitVuXmbeN53SwtIu4EnzLd5UCRwRyH2LyIPsXkwCVIvs+ZLbZaJ5j5SNt6 swhie2kuDuBx9nmEx8yeSOL1f/hV9g91md57iN7vzLlpZ4yLpDL9odpIhCEL PMsSMBjMcMeGABQ14/hZbpAhSe+huvKXdPHqZZ/NkeNp5CTDh5AYg6yMNxYj /V+XEYwDzCS5/wBDlv4mnggk/wBLF20v2dkM5tWdzkMRsjtg29hJIJbm3K+a xjmkku44WuLu2vhHbwi4nWUKRE1vBmG3m2lnAjDM6QJtJij+xiMtJE00h9Pl +F9j509zbwyQzyO8hMN95ZYJMskEIcQ7kixHCPkIMQhUJnc7NJD8L7CC8jKP P9lSWJPKE8YjMCiR3HlCEL+8lmlVlGPkkZVZUYxEA8sF5cgDVpbi0OXfVPtM 0TrbRS/aY7iNhGxMuMmUdVxDdRMq+bceXLHHbbkSzkWe7SGJbMK0W2QYt4/t APlncs21LC2MW6PJleAMXLTn09Phn5Hk3KNPLqCRQs1xLqfz+dH50gGRb4Zf OeFySuJGQSOhZWEpdfCjTpIp7eKKfyUtJ7e1J1Jgyqy4C5MRK5DCMtlm8u2h Q71Z0oA80T7TFN9pjtbRbp7cNmFHYkedaxwRCSFcsEM4kzGMkFfKRFS0lEf2 FDB9lttMxBJF5CiRVuAbWN/kiKpIuZJVCuBGdpluYn3bp4Gg9Tl+F9i1x50U MkTtcSTbo77b5Jy0cTIPJ6xwyZjHAiaGNUPzSO0f/Cp9L2yRi08uEeVFFGLz coiSWUhSrQkbQHjlKHcskka79xDSSAHmk5mvzKoju55LtCR9ncnzZruTaAru AuGhmQ5aMJE2oythHMcLBnM96b2wljMhdGt79mk8p/nka3csclEDrc3coYOv +ixrKxm81j6XJ8KrOaB1PnxNLEwYrfCRkkneT7S4d4CzN5UhjDNkyKEDBWjR xJc/DG2nM8jCSV3S6Gya6Rw4MkbwxsWgYlA8QlJbcfMZ93neY5IB5Yn2OPyb WDz7SFJYYFifCXFq0XnMXUnMaTR243PwFjnvmkkaMouwlR5oJTLZ75PKu90J DW0YJcRny95DRRt5HkFGeMpa2U7FVMny+py/DC0KTwk3dzF9neJWn1Rw9x8y yfvCIsqXd7sM4JYLcSAZDhY45vhfZv8AaN2nwTebEIH33gTzo13bEbbb/Kvy R8LwnmnZj7Pb7QDzhJpTeRfZrne3m272qwBFKu4gFoiAlAWJkFztcKkiWkKB YhE0cNe1eK2sLKeCCB7SLNwghmd1MNrBcSRmNwq+XI6pKN+FKyTTOA0qlLX1 Ob4bQyPM7Wkc7u87s0l8EMrSq6yFttv8plXAcr0E7gf6iDEc3wvs3+0btPgm 82IQPvvAnnRru2I223+Vfkj4XhPNOzH2e32gHmEXm2e5bXyJLmziEkEkOyIo B5s0JYriIK1zO05jyI1isd4MqBZGB5S2qR2nkR2Biu/sxuN8aGIRLjEK/OYT bi5k+ZvNRbx2+aR4nuPV3+G1u91DPIJ5pFu5Ll3fUSCHaVP3gxFwxU3EgA2+ XJPJ5ZUsJEryfCqzeB0l8+63RNGy3N8GMyq8jiN3MBbbM8ryyNnckgQp9xSo B5pKJrh5IWku4PtTi1JuULyr5y3ECb0z88qwrfSuImDPc3GwqWUgBlmkvTdw eXb3rOkivJOXW3LPI9sskis3yIwnu3kIMcyW0EjfPKxPp83wrsrh5llubs+c 86yXImiEp89XM0+BBgSv5jQlR8pjCN96NApJ8MoZSZhNd2s7INn2bUAq23mS IXWNfJ2kRLEgiZlLcIPk8qJkAPLLVLd/si6c+LUxCW0RWP7uJPKjjuZJFVhb +Wl1dMzhdq3MczlnwEWSB5llikgso0kjuAUhWImeNrSD90h++Fn3NaRqGLeU XSM+e8lyp9Pn+FumymV/sUbhrg3Rt5LlWikaKTMERDQHEXl7UwP9Ui7EyJJS 4fhTpsjmOeS7uIi6R+bPdrI7RKskhZt0R8wtcymVo3LIxVGPCiKgDyiR7YWh jleOG3jtxbRSC5QBRNbowIeXLRiVJWt4y+T5IV5FU2ZJsF5muEMVlHJcm4Yw 2ZiKksxFsUCScpbyXCLAQ3leXBbBDhp8P6efhlCySMs13bzyuZzJDqA3Ryyt CJiGMPzlFt42R3BdnJdirhZAXPwvsZUuhHDIguHlkkiS+2LIAxWKHcIdyRGF vLO3BiRSiZEkpcA8winKPHPbSx3sZc3CSW7SedPGy28JuNi/NJLLPBA23KlJ JWHmearyW0aQ/ZYrWKK2nYJaB0sLU+asjRqY0QSY8s5S5Hy7Qs0lzJIVlR4I p/V/+FX2H2mQ75/KeWIFhPGp8uO2ljVighCt807qYmymwKoxGPJqvH8KrOOz 8mLz7Y/uHiEN8CLRlLAiHMHHlK8pRyNzvM7NhwsigHmDxJLazRBftdq8Uyuk c6+RLEsUNrGIXYFRGHt7plZmDBLZJ5PM8lQ0kkkNwTLcmOexuLgXlxNIBAsk XmIpmKugTfNI6TNFKdg82wLEwxsB6ePhfYxOJo4ZGkid5YFN9sCtGscVsm5Y d2FhjZQ5y8RkcqWciQSWvwvsLW8gkV538rUILozPPHucRDchKiEKuGCRBE2h I1+Rl3yK4B5RM081tIl3LOJpfNhC+XLGXeW5jtmVcq7HKHUVRHR5sieYgtJh S6e3linlmTfZHz7pXs1LqsG3ZIgKtwsnkvGI4m+WKxKh/KkkuK9PtfhVZ2sU Bi8+GdLSC3eVL4GQ4XYf3hg3HyuJYzxlwgIRYogkg+F9jE4mjhkaSJ3lgU32 wK0axxWyblh3YWGNlDnLxGRypZyJAAeaXEVwbqeC/Wed5PMe586cICnmzyzQ s6BERjMLi3Ei5xGbyRgIdgWONGvjELpJL1bm4inkW3tljN3JcyWjpuRsxk7Z vNbL+X53kxuPLSAP6fB8KNKgMUASRrRbgGVDLGEni8z7Q2+EQiPLSrEhUAfu 4YwGABQxx/C2DyE8yWc3HlLvla5idjNI8f2mQk2+GYxxIhJGJVLh1Uu7sAeY Qr/aMduskUE41CI2ySiT7RDN5l2siLukZJXaVpLvapYYIiLMsltLJF7f8Orx L/4f6PcxDEbREKd6ncAzANtQlY84z5SnEedg4Wufn+FVm9rdQx+eizRXEexL 4JlREkFtGXEG7asSkbsll3yKfOWR895pdidNsFtDNJMEdyrySSSNtLkqC0ju zEAgZJ7cBRgAAuUUUUAFFFFABRRRQAUUUUAFY8pS81xoLi389YPLCwllIjBz ILhl8zld8SohKb1dHI+UkjYquxt7HzJpZ/LWaVATNMdu9tsaqu44XJ2gKMZY 9MscgHL6lZ3FxdQW9nFPK9n5EotJrkO2IpZFjaQtKw2yEh95jd9sLn/WiPZo G1s7Czgnvri+hNvKfLubxxMYUiMrbix3IimIuplbDlGAZt+K0Lq5iaeBom87 7NdrHOIZX3RMyYG5EB3f6xCVfChW3kjaK4/fdXFrujSf7Utp5EiwLO8mRF+5 jLBkl3D7Yu43EkZzGZAke4yIAdBPe3Hn2ttdWsEt5Fdxxw3PlAIz7EMhjSR1 IYxyT42NJtWN8lmBjOfbx77C3e0j3qkSi2ezTzgjGCZ1W1LIkCKqyKiTkbXH 7t+cVXlWCN72a3in2PL5ZkhkihLMbi6Vk3xtEpZmcogMrMskkbOiOGZtAxQa lqLQStBcfaJbmGRlWKQvCpjDqoeR9sI2LBKgXLSHdhPvUAWPs37idY9P+028 32oXVuLby45lDyfuhFJIFEjtISZMFZArEkBkxYK2bLMLmynvI7vfbXE81mCW XzSiwuoUM0Y819p2ldgZmbB3NlkwtbpJex2kBmt21G4kuXFtIu4BJHSUBJEM MLFNzRqxDRAup3VqTyXCXhcj7PdtlbeNrweReECYpFypZW2gSOVQHgDdIqEU AWGubNfs+p27WLQ3flRveGULvjO7ytrAHfl5AFXIH7wkHPBkuVaa4jgnsI7i 0Z42V9ytsdSz7mVsYCske0qWO5ugC7qjS6eOVpv38trJKUO+Jg8ThkiVVQR5 MZIdi7HjOQShytMFQLezjvI4LhHl08MuotJJGDGXQ4dSJJ9iRvhwSAznLDO8 AksfK+2Rxw+RPJa5hBn3rc29uQVyS+55N8sH3jtDgZyxXLbFY6Xj3MtqQPtL Ji5McTtbTRpIxSIyQuRlQhkLbyPmiJVC2AuhYeV/Z1t5Hn+T5SbPtG/zNuBj f5nz7sdd3zZ680AWKKKKACiiigAqnf6paaYnmXjyRxBC7y+U7JGoZVJdgCFA 3AkkjADN0ViCacSOPssskr21wqTw27Rk/Mo4fd0AWRZMAhsAYzna2PaeGYiJ ftJk+0IgjFw0ELbn8u3xMhcSSEq0CEeazHcvzbgsZABHe6xqk11LY2ieXLJF KUWKLE6COV1Lp5+xJNyhVHURu8ZIkjkDDD/4R3U9Wt1h1LSpLO3dEh+xQvHL BBEwgWRYwZR5Z8l5oCVB4jeSMRmQpJ3A0nTVLldPtAXdXciFfmZZDKpPHJEj M4PZmJ6nNZ+sa8bWwm+xRSG8LiGEXNvJHG0hdkA3MFUklCFBdQ5MY3qJEYgG PD4LmkJku7m7W4mdmkmi1El45HtjGZ0IhX96rPIq8AbWB4EcUccfibwhajRy LaXymMscEMZEEUEZlYQBim1RJsR0UITl0hWLOJJBJc8Oa5NealNE1raWGmyv I1oBGUaeVpZsrnIHmgQSSum3ePOAYKY2L9RPCtzbywOZAkiFGMcjIwBGOGUg qfcEEdqAPni1Vru9WRLCNbl7jyjbzMsqRzzunmCVjh2K79Mtp84Zg9z8rMXe qcM3mJaK1zO1lcRId10MyXObe4aTIJ3KpW4uJpWZxg3EQV44ttydC+h8nVpI 3toBPDi1RCcIJJZBmJFAkQ/ukuI8J5h/0RLbEiri5y5I1+yHE0YtBbhXuYAz F7ZLdLMsSgdGdhFd4wHEMaXUiCYFGoA+i9FunutJtjN55uEijEzTRMhZzGrE /NHHn73JCLzkYUgqM/xz83gbWof+fi0e3wOXPmDZhF/jkO7CJkb22rlc5HH/ AAz1S4R7qylsYFuhkXMFvIFMcq3DRuioXKbYVZVODuWJLbl/MSOPY8fatceR DpVjbfa5JpQJrOTEHnojwttEkrLG0bmSOBl+bPnnAYxsjAHJ/DHTItR8R3up yx2jLKgnCQxQyxwxLPIIIFl25ZEdGAZeptkA2Rxxmb2SsPwvoFt4f0tLaFbt pI0W2868ZGlaKLKRDKfKEC8qAB94lhvZydygAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACio55ltreWdxIUjQuwjjZ2IAzwqglj7AEntUlABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRWffatb2sslqs0 H27yhIkU0hRMswSMO4B2b3O1eCWw20NtIGhQAUUVGJla4eACTeiK5JjYLhiQ MNjBPynIByOM4yMgElFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRVe+m 8izkYXMFtI2I4pZxlBIxCpkZXdlio2ggnOAcmo9N1Wx1e3a40+5juIlcoWT1 wCPwKlWB6MrKwyGBIBcooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK 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 riSYcGMwyQxtuWeJI7ku231ef7ZdRkDU3jupLd2jd0hnWa8mIVlKyk2TTHZl o1lgQbw8fk5c37nS7uS5/dzC0cXRj/cgzC2txNGT8yxbIZJLVUdMJLcARgBy kIBJLHaXlvlRJbw3lvIVu5S5kUThp7mbyy+8lYAzOdxkYfZY8yxMXnsXZF9c XeY44ZLy4nLLI8cbW8twYXuwXIO0QwXEsMpKFxhXIZYgttJc20Ul5Layrtt7 jUFhmiMTlJEkEiRqkbkFFxbyboI8uPs9pCpEyM6R+Y1xFKLuHUpftSTyTplZ i5edGyGhI3GRrsRKsZUNG7NtiW8MkYAG8a4CMLiSL7SjSR/aYlfJljEgDKxK siQLJMxaQhWvwk7srzu8cyO8dxELP7PLJEJ5YJQ187GW7Z3XymIM0gd7KIu/ LTWwiYNGJWSRZ7sJJdQSx3VwHkumu7dkihe7jaUeYmcB0e42XDMx8sx2JbpG YYCG1XNtbWCSLGHtIrUxbmwXtp0ilTKKA6NPbyKwMYMt2GlMTSBYQCR0S9u1 854JLa9lELTRstyNjak58uJ2U+f8mns6qyHzXlmYkvIqSV4orgxLPHp267n8 yKKIuJmM86gFtxd0kWW4uIgZHYf6PDCrl1uFEkbGGa3nkijkxPb5cW7hSTKJ YkBZwoRDZW7MpeNY4o7maRQgEcTWLiO0M11NNax/Z2eX7Ws1g8fm2kcxjESh RviQGGYqrBpI4kkO0m0gZwCS15lja0+3SWckqW9p5PyTSx7rW1t2AfiNvICz iQmMecbdnUKLcvXtm8qKKXzYDHLaNLgx+VHKqLGoX51aTy4rOOV1DIzFHUvv F2YCTLmWRdTige/Hmm8UyfZhKxaP7blyypD5k2Lfz921gLlVJHkQrIiTXJkQ XsayXCQNNqMUpQpLcSR3Ml08Y8sKAAZwwIcxw24ICwXIABHGbeFEkmnsZbKK JSzyTE/6IlvHZuwKlgvmmKWJmTIXacGd2tTQ1ulzK8N/L51zHjT7oqV+1q5a 7jlhTax2zTJbCX777ppCuGS5koluEnia6ji+yNc+XdRx4WN7UBTcKySBSCtv ZvMqlUd0823IG4pFBJeo2bq2nSSSZUvEMNtbKksJMnkGOJfnwjLJHZLtEg3m Q7nS1hoAI5ZnlCfu4bhkM8n2Sc+VY+ZA+SrFgpAMdq8K/KqJZ79yxr9pkjM1 vbRQTva/YoLDJ+ziQmO0KLLK4yNredCs1pAA5jJmmm2lZXMwkkkaYmK3htL3 z7gNFawlZIZz5iRKqgkqbWS7ghjGTGI4bRFyGmG8trpYZrW7tXk1E27xXEEq 7nmu4oZhIGJDl2FxdyRBQQdkk06upNtGVAARTW0jxW/lxXFkirbgQGbyLpLw nlIlCb4p71IwqLuKoXA8txDOReQ6QLHdSLp6Oipcq8sj2yQMzPLFI7SqBFCb sQhOMpPteV4I3lr+WsVg0FpNHqn2S3eO32hj9pCPPYkIAGcxTrJaqWViSwWN GVYy1vYuTClxclbmNntUERuGtxLDFbkrG9wkSAhhJEjTiPq0Mezi3iC3ABHi 4eDfLB9kvzF9qZIIQ0scpfyIlSBRuX7P58kUWJC3mvEpKCCRIJJ5IbeWW6uD GkEdwZZJrUBFVYoOWhYpgCITf6K275vtloN37nYAhraaQgWmn3Vs5kCXMy7L WWKaG0g3OUy0VuXhCy87mgvFO9ZSaLaCFJrWwWK7s43eJYYUUNc2kcUwiWfH KxyrG9wCqqSbq4O3fLlIACOV3soDDdXn2S5topd4QtCLYo9hFJtfD4jjWJ4Y 3IkJlti6M8jIqlw39nLcQJLBYPYbjZxtHtS0a2lhxOxKvjbK8qDG9T5U8atN LcNKxDcvLa28zzfYJp4jMfLRgtsZYlneRF8zDRwWqRMsaEmNoLIja0jxrIks wdDZ+Xazh4nt4TOXWGTbss4sqz7yqwmXhWFwlnZnaXkwQAljh0u5kaMR6V9n cNEzEM2nwxX1wib0DkOkflM7bWIln+ygq7FmlLW1UvbWcCSQwF7aKFLbdLcR mJYDJLAFQh3jiu5GVo1IkaSe4BG2JRGXt9Nt5njTbaWu+VUlUiBhFal0jXax UQ7pkjbJYTf2k4DysqzNIY7H7aba/mkvYg6W1/cTDEk0cTyS3AZGHAEHmTyh P3iyyWwI85HkcAjdHmghlvbPe0sUgkW3DFYxK6L5FukJYtuAhjU7lBt5I1My i4hWGSWeHZPLqMt21ozvLetIwImQst1cbJE2gEpc/Z0ZdsbmY+WCLp2ijgs3 ubcW0h8m6usW9zLbo2Y3NrDFODEAQGiFzHEkJ7tcpH5byQopNc+fa3F/untg 0Qvj9tl3Qx+ZE3lxu2G8xUS8MrYDeaX2y75LpY4wAuUddz6nZ+ddmV4bpYQy NcTvhrmNFUgiSedPsqyR79yrdn/VRokdhXuH1ExW95ANTe7icOSFilu5DCkU wdBgrLcPNd7WDGSK0g+RY1XArvHdAok8co8+5Ecqt57GSW3to/NWJi7TebDb PIygnfJcbNk8AqmYWbTUsLIxuklu1pYm2kVfMLxCzjAOTEzyT/ajtyQi/bHV pN6SgAsWbLGljJp8Ui20DwXVlHJAzFEiaJbbKLHku8tzA0ir8wAneMlbsBi2 Sa3ht7a1vY4ZInCWk9zKdqG3hs2SU/30LTCZ/meNUtomVpIoFWQupIZXubmz McKTPc3djIwESiNFnFu2NnmKYLeU3CAKSiLEMt5sCxRzx28EDqpsbewES2we WzLR28SPBNI5+ZlkjHnW8iJnbI6kB5S7G8AJLZGnEaWSSRLOkMMHmWyu7rJH DDarKv3HK2yoSd6p5moJG4WOSQGSy8+e6sxbfK0/2CCOe482WUfaJYLhneQb S203WThl/eyeYWiYWsYG89b2S6f/AEa++1pFvg828e0mS8ULEVXmXyzOzueB LNFAzKfMR7mnEIRZRx2Mkg8tC1utsgnMXlpb28TooI8x1mub1Uki2rJcnzOF BKAEmmXCT29tPaReYsn2UFEC3CukNqQ0JKqPMbY9hCyNs3yTTRIUWV6FS3gt SLl9lkIoobhpWOJYoYoTIHljVcfup7a2SVcq8ZuGRWedUkkYw3l7BHBcxu7v PbxS21uJljh3wReYi42OgaGSPKpidJI7eNVz5dvHFEl7Esqr5NvP5lvL9knX ZDbqoi4kcYmZLZZrZJD+7OLiTKCGSaUAsKt488cN/F513JdvDcI0hjW4uJEZ J4cFgF8yZ5YI2Xcis9/KoVQNkce77PE9xayX0UaRfJGisl6iC0uNnkhcBJpZ rWFAqbhH5IYRiB0ljkb+0EeW7lgtZbyJppZo48BPtNvJdXcyKVJZkhuUQqGO 6ODDFJGtsE3z/aJlsZ7K9klE8ESx/PBNJujhhRS6h5oY1vBGAVCNbwqojlaW NgA89IoPNutQ84wRb5L+GVd8sUD7nk8xWVmjlu4m2FSjFoYwWR7tpTI9m294 Li3kaNXlgm86VV8nK/6RyoQAAQxWi+WUiaK1ujmFNzoGVXmkNrcSNAjkobCR nmZTNDBJJAAu1gDbW8UAVNnmTCRPK8oxwFqWa5iW3NpDOrxi1n02FXiQLfTu 0yoHBa3WV3EUQ3mSS3t9wXekcgAW1zNLdwXcN1He6pstXt/MUwCe4e4kuIw7 YU4luC7rGQoMJhYr96a2NOZUezht7+RLaF7cQ3TKx8tQuy3mdWwyAiGW+ZZN yeVbWqbgqrgtbownT2tljtiqW8tpBPcSGJJPMW6j3ybdzxR2z23mMTgJabWA Jt5FriAS6XHZ6dFqQDWQtrOMrGpJufOSENj5C5iubPc3+rQXM5JWeVSwBJaw 7bPSzFbTxJPaWz22n52idnMkECbpAqHcskpKlQsjtdzMskSokliJry4ltmtJ ftEkksRsrm4jOGm3RQ287ZUvGzSu14+5WAE0a7gbp/Mr3ktlL/a89q22GWK4 ujOkEhkMUv2iJGkQkGSQ2YkkBdgxMkcmFX7TK5eJbwNePK/k2n7yO5eFiJEC xKlwDlQiskBSCKJlUB744ELAwxABaypN9kk05trNELqyPkLNNiHyobZnQEhp ESAbSHUNcXRhxjzlotfKjigjsfIaBPIMaT71hC7dkCyjgrGY11C4lYxqssMz Myo0q+XYk8+5v/st781zcyznUbVfNUFvPVplj27nVWlnltFZWK4S58tZZLjY Y4hNqCQFZLtruZ0miuZUJkF1csxSQIpEYIW4Ei4cLDLdWy5QmaSQAj+zboPs 0CzxvNF9jt1mi2zyb3+wRCQExoZlgkuI/KJG17J5A2yRy8gmWQx3EAtJY0cS RI0bAKr20xRZA4wsUws4g5AhRbZUIWNJpFSuZLSa0uLvMkNncW8TGSAO7Hzr cK2SqFdkcMVzCNqMsWLp1WMiKBrE0ypezSauLSGZXnlvYzGyJlncXxyAWQM1 wLQSBnDi3cqHlSBKAI1S3gAXf5kf2RIkaRiFmi+xXDGSTCoXWO2Fsh2gsIpm YJHPLtUaVLKIys3mvbb9wuoFY5C28t0BAhyGSGOG3eAFEVJmTISGWVxo7i5g nRz9suoYjBKTZhpJXL2biJ4nYh5FIaV08zm6kaNh+9UT2BcxR3BumbzrOKWa VmEr3EU1st07Y3YfzVdpNQRnwJDBC0m3aZI5QACPptwWleeBdPlmmndWaQvc x3Tq0jSFd8uBCk5byyHMcrkOtotuK6olhGUurOxBsYooZ7BgqRvHHdwtLHmQ 4WP7QYLcSF3QiG7lO52O6SztpkurG0mtY59Qs3gXZuKsJIYorVwmT+6LTeRa rMhYF1mlJHlReUaYA6ae8MkaxQvEsd4Ej8kZZplu40BVUSKaa7kwVVvLg8va oW62AEcxuLOKTM+2+htJUE08wjbIWNfNkkc71Vr65kkQkKUlixIF2ZtrH2O3 utU+yRme2hvbv7GXkQwyMklz9h3AEbQ32dJVSFkGwtdsqxqkamnayLDZW32a GNNqWzwW8hZjE7JAtpGPKJYS4nu5y0aZkDyMgSVT5Ek6wCG6V4p0gniuCxWS KOS5WKwQsfkZwi4hl8oRsyql0CQInWO4AC0b+0IBdvLBZq0VvLMxj/c6at08 UbPmRSApAt0WJtqm3imTlWWaUknlVZblkns7x7TD/arpI54fLltQHaUkhN0k sybtnF0HmcIyYt5JLmG1vYZtVjj3WT/aGVIRAkUauWleD5meMqoFpGXMZLNA m2OS14j+zeVB/Z10s5KxfZ7qC0i2yKqvtuFjRCAWa5vp4YmRdoMHlndG8pAB JLarNcfZokki89JLKNE3QGUZazgXEiHErLBcW4SQsYo5lk+dkncxt5V9EZZf IhiuN7eZJv8AnRlt5Lu4C8THMMMgwWDyQMrOVklU3NiCaV73z0ud93PdzXcs 2nhHV1F4krPAhJDeZNbtDE7BmLRxq/yzwiKvb2XnQQWnkwQh4o7L9xbebHGo eC4kKoVfzFV5rRUUsy3ASYgmS4UuASPObp3a4ljhld5TeR3LSP5bOvm3eQuz zDHbPNuiUJslnutpiLQK4kd2jpJBZR21+zxSW8c0ifNfFdlvHygwYWSJVACK sq3UQQQ+aYY5pvtNrcXklzPZ211EHn+0jzRbJcRNhixI3rFb3UxO073luYWc s8xjjLpHk+1lLP7HPcRF5LWMNK6CbzbcqiAgyeTHcQWiRlUCzBgpVUn3AFjT 5okv7A2dz5UEEsKwth38xDOslsvlufMDOLczBMF2gt7SFZNz5bPtuNLtktuL tLSyl2J+9uYP9GSKOXYNzSyB7nMADR7TNCCxWNkt7kxF+JhFHHIk7z29qto8 e3zJbl7ZYLeVwqlGgCxoxTBTzGyfsiRITMuowzFL+RreZ51S5iVmDxTwusbg vhcBYL928wtsNwweRZGmmiAAyq80htbiRoEclDYSM8zKZoYJJIAF2sAba3ig Cps8yYSJ5XlGOAWFZnZmNosd2+2Sa0kY2211v7SRVfJxEI4i8blCkEMbcM2R MXM5uBJLJLHDIqTXltKjSSGPMc06sm/aZnjtWMwkJVhNPAWEbvO0gIz9of7L ZRvcW9wqogkkxBKpMUSEhFdxBAlsAcGZJLkoFWaZWiACUTXEXl3cl2sjpJLN HGhN15cs7W7xrDlsuY5FRS7SFZ7q4DFnMskHtfw9m+0+Dobg3MFzJLd3kks1 sMQtI1zKX8vk5j3FtrE5K4JAJwPELQ2CQQyxz+TpVtLkzLNGRbRRO9uGBQuP tESNJcBo8K0t4jZLeSk3t/w683/hX+ji488XAiImSfYGjkDNvjCp8qKrZVUw CiqFIBUgAHUUUUUAFFFFABRRRQAUUUUAFFFFAHmfxF0FbR01q2tI1to0aS78 mFmBSNZ53EiZ2FH3yZPyMxZoi+24Zo9zwbP/AGb4QhkuUwzXYt5Abrc/nGRY X3lyq+YJd4cpxKwaRRul210Gs6bFqmnPDJD57JmSKM3DwKZADtyycjBIIbBK sFYDcqkeN/bGhv10jTbjRpnsUS482SJfnKJA8Mu2IlyksogCxxtjabRUVvKm ioA7TTtVvPGGuQXEI3abbSi4iTaYwuNhjYShS254J/NZTs3B44uguM95BCtt bxQIZCkaBFMkjOxAGOWYksfckk96z/D2kLoejQaenmbLdFhTfcNLlI1EaHkA KSiKSqgAMW65LHUoAKKKKACiiigArz/xto0WnKurWqfvPNEpLB5XaYSxzKqg D5mdoYVAdwD5MUMflmTcvoFZ+uaf/a2h3unkb1uImjaMyeWJVPWNm2sVVhlS wG4BiRg4NAHh9v8A6F5H2b959m8vyfL/AH2/yvI8vbjb5m77DaYxt8zz4cbP ta/Z7mi37aPdJHAZHjht3Fu8TLKvm+VFaxMh2nL+XHEyyCNspKMIzXkcKV7u FhrlxYTGO+WS9dCFkVHnga6kgk4yCHLzXEOSI1aS/crtjt1cZF2y32m3CNfy PcXFk5kuZVYbRJFJeGSRI+EJS6nfA5KrLGvmCJluwD6H0zU7bVrKO6tZI2DI jMiypIYyyK4VijMudrqeCQQQQSCDVyuH8CeILjU7i+s5Y/K8m7vXeNbEKIib pwInljcx+coBZhjLCVGBOGZu4oAK5/xZ4hTQNOVgs7XUu5raOIqvnyIN4h3O CN0hAjCqGc7yVHyll2L+8TT9Oub2UZjt4nlYb1TIUEn5nIUdOrEAdyBXhfjT UBrPiq/RYLS4Fm81vOsckcKcOhlSSVWLxyywRCIvkqscUm4KDMLYAoav4mvt Vf7Tf6zGLeNIlW/P7h0i2kowUjMcsxt5LhfkOxTGwE0gt1TLWNLezRbswW1p BEUvFWzVvLRDaXUtum9iqeWwWHbMG3TynO5ppPKktgzJbuzXc0ZQOHisldih azSUxIwwDMGjhii2ALD5YeIJOZFjj+e6SST91cHbG6yf6VKnnyxuyxv+9Mnn yNKEX5v9GSWTy5jMS4BHJJMjwi6uo7Zy/mtMt+ZFspJVLpMJZSRJK0ssvlKW ARFklD/vDdj6H8IwwQ+GrQWxjEewIIopJWSAIBGIgJTuBQIEbIUllYlVYkD5 4sWlvr2xCRSSSF2JjjgmmSWeV7szyGVI5jINsbRAAyrMEjaTcsTxj6X0qFoN Lt0kN2ZCm+T7XIry72+ZtxUlc5J4X5R0XCgCgC5RRRQAUUUUAFeP/EznxfEn Xf8AYI9v9/dHqY2453ZzjbtfdnHly58tvYK8f+JnPi+JOu/7BHt/v7o9TG3H O7Ocbdr7s48uXPlsAcJNtu9LD3l1diM2SxvfXjsWt0nw0k2wMFy0LJLJ5bbm ee2ibezymaxfbp5tQSa1kF/cPfyvZ26K0ySyTFJkjkKhSCsv2UOVO+TzNpkM FtG0cU3lQRX32meDy4rSX7fdjc8HzmfzXGf3i/vftbp5j/vri0iwduGJYfKg lsfs08HlxXcX2C0O54PnEHlIcfvF/e/ZEfy3/fXF3Lk7csAWFmiXUTHJc+Rt u4gfsQdwFmMMJ8gKTndxLbLjckenQuEO8sacUsNvDBfXH2QuqJfTPBOCkPlw tC0ilWAcCWDy4Qm1UaWVEaPfbzGxcyXaW880N7HDhLrZII0hhhkIjMJB34WJ RcWKRlWYBwshkaK2hySm0mScxRxpp8zu0Id3ge4tIWXajHDSBP7PDkuP3gXa No88m6ACe1nUy2NwkjzMht7eMeUs3mzSfZngSTYsSkYmtQAOUhklxsgt4wST m6NzLBLHdQXD4hKtIRdg22oCJBuyWM7tKrKpEillUu87SOoTMAZXjuzdl0ll R3NrNdXL3MlyYyIwQssn2NwTGS6SC2gzmKQsYALSxyR3/wBmR0gmCRrHcQiS eGRkOfJQSbI8ZGEt7SRXV4o8TABDdW1pew60r2k9pbvA09xb7I2VbR0kcFkc qwJjCJEPkD3ES7vLS0Z44Ld7aKx0ueWxiaPZphiBYgy7Ujuk8tG+dlQ3CCNT uZ55pVZGngWQnuIrdS099O7wZ825mie3uGht5ZmmdydrDfcQ2bKMxlpHaMSC UzymRzJA72zXMdssbywOht4HSFgu6cGOMIrJbRpdBkVV3tLuw8d4yUAEU926 QSQSxtNM6NbW1uybHYs0EECTDauTMqlmUrkWpaLyktoGevLJpsdlJPKbSbS1 QISAsMVxbhLiZI0+TCi4liumZFOYZJLcKd8BQWISFeRPLjgjd7ZJkieOUwxO rsirIQVdI7OzMIaVQjC5mkZzC+5o45nt0QpLiSSJTEkVw0cZP2ePy1id0ykc dvAkwlPMbzWhnyYS4ALEtncTXDWd2YGu7jUI7G5kCBY7id7omdtkg2fNcW0I D7ZNyGYhGWHyYK8148VhJqkg3B/Nvliu3Yo6JBHJEshBIRWFxLvRi/mf2gkb O8jPLFJHFMt2LSw8uO5kQ2tqTAYNmbh7aJ9qqHgH2t7i6ZSpVGS2RSrbBUdu 9uq297pqfYraXbLZzqpf7FBFLNNHvVWKsscKSTMA372eJFKu8VwWAJLpJrR7 m0+2xyS2r3KR3E8pYia2WdDLuGZFlVpry9fhyoNuqsC6ZJoCBNbRxRpHKiRS C5WSHbujijijdl+ZIoobe7EjFmZFW7hZgxE0kflJJB9jgX7LE0XlRWqTqfJN w+xYFZA4fNql6Yzscv5plUtJcqgJHt7lHlkTZFcRM8VvIpjWFJLeSeVgVYsI xBb2KskTHy7eYxANIdzABcSpcQTyo2GvIpJT9vgVtxkee/M8qKRHJthSxeQI rEfuVwwUwSSXBAlMyRxpJc3GovaQzPHLJK0sEnkrwGEruLe03YZt4nUs0y3e 1SeO5le8xNJa3V0+1riQPCIZZFjmE7BANjmeG5kmO4+SbMJuKxCKUE4luHn0 +2jBurhZ47N1jzL5xIsrRwXIAMUlvlRhTAZ0QoUnEoAfuEu1jF1JBm4RpDA8 szy+dcQSRHKsWMryF5CFZpXisowkhUiZ42icQTrKtjClzEZZ2knZYgGezt4k aZAAI0SQksmAYp5ljSOKWKRpIWUC1hgv5LZJ0WG2vGVtpRY7aBJzG2GjKQwy XpxtC/6IzucR1HA9vHa2t1s/s6xilt7kxlSVtIfKd4cNu/5ZrdOztGRI7SWu PLnmdlAC6lSOG7u0bFm0RncSQLEpgFhKbeJ2BH3lu4432fdaZY08hVg8w1Jv KtdQEssDQxRXMAfy8In2eKGUeZEymNWeeG0BjYDy1nSAbyoW3JIfKgeC7tp4 SsrWs4B866eaZ5I7jynIPnTMitBnaBJLJIwby7VfKklnLvJcebG2xxdJchpJ LcG3W4QyCRd7lHllvGVox522181sM73CAEmoQuZbqAXU9vCZb23cXEbSCGLd cmR5GO5pJIorm9wQ4WV4pQCxhHnjJcXd/Z/6HBFfNL5sFqAMWAaeNV28o/mK JkswVMY3oATF9jWQ07sQx21+/mSRoiN9rkCCFkxYhZYmBJRXIMcCKFZbZ7qW PbzCXuTW0U11dwhfLtpLt0uTbROxkUS29usPlqfMjwt0Mwr8yRbYFZXe4JAI 4LmZzFJY3UdsxQSRuyl4oZpJMwO+QrJEsOnW9wBsRFTc2AgS3eN5vstrNKlz PZQxRTIGkGZLbyYoYkWRQdqzRwpA/DpuuprdCMw/IfaYBB9ovmgltpIvMmij lieKC0jfnaMbJWMlssYbb5bSpDGAkCxpcSRGayuMTx3c15bJGJERy08jRFfO j3YMhEt/cSxiRC/73bIpQWw3gEhj+xXkEkkf2JRKZY32bxCYRKqMu9FaVbSC 2hk/56B2khdczuErxQ7YIrcW06MsVpClnqR8yMsHJW2kGCZGY2wL7VLEWQhX y2kEEMbAWVvPPDqVos32fLX0RjKtxLD9oLKqssEU1tiJYztG+0ZU81NktiUA 3U6WUkdpvd7WGO4SPYirEoXzwxLE2sLwxSgngSTZV1juPPAI2R7myn22f9pI 0RkaJQxeYzWdmyNOAcGS4kWNsFgQyTCNpJjEy2Gml+0Pdpc/2hLbyieG5wir ceVdXbGdWz5KM8ztKjEfu4oZ9yvGrefHbSWMuoWt00MkVuL2K5RHPnzgXF2H Q5UmX7VJbXAIKljttgQWkQG3r2csKQ2Ms32Sd7NIJfO88Kg8mGK3dkctiINL 5Fss6FlLLNMSPKi8oAJo1tbKa286NY7aynSOW9DIUiCPp/mEMPNjLETyOpV+ IrSBTu2LVy6XzryeK8ufs8DSzxTKLjfNAuM3q5wRI0EBuUG4MzNLNOWDTwrJ XWOKK1KXMc626xRLeZR4i8VtFDakfKnmBZDDfBgcSpFHK4UAyRyyFGu5pFkS S8upHNvcZtlLS3E80LeW0b5RQkjwTNHvCJOJ4mws8dAA+77FLLq9rILbfDPe 2SIuxINjPPbxKF3YURmPa2GVoUAdVsHcxzC4h+0NewefOJQtxFLCCLy7O6aS LylBWXzL9EhJVVJjtQEZ1WVoy1S3u7iOO0f9/Lsiha6YlpZLm6tR5jO6sC08 YuPvx73jV2KeUyRRyW26YRm0upLRJUh+d3X/AEJJI4Uidk3fKkVtELkESbtw jLGT7JJIoABJopo5rO9jnl3gWd00plDyCaYQqJRl5iblLy6bKsJjBAqopdYg WscMDxW9uI0t4nj2RzkNGibZ0tlm8tyoQxxzTzMB5ckV3O3BERaOP7HcIjSe fZW13Eu9Fx5kFu9vGWw33ZVg09ZVHDupuEb78xSKRHmKeZNZR3CI4a8sBEWR 5N1rM1tHF8zKRJ9gsth4jC5CNuk8oAjzcPZYt5/tLrF5q/aZh1Nn5sLzFjx5 rX15K6v5iHy2QkQpJILEjusstzAk89s8vnKlurK9wA1rP5isrGUSXDHTERuX TfIXDOrSvX/e2qf8sNQureX/AGHe8ne3/wDIi3bw/wCw7wQfxPdfvCS1t453 tj/po81rUyiUmSYSJI7yjEm55Lv7MCgBV3SZ4i4RreSgCSKNklSNprRpYbi3 DXChVXekFx5MpMY+WBmlndXHlmK1tEZSC0RqOOBHWKA6f5qNabXsZIlSR4hL dTSQsiqhRmuWFou1dodA+xXNvQ4S/ilka42pc/aBJeBVkKGRZ3vLjKR7XYJI 8QK4SdLKbbtdYdkjma4usNHdw3V05mS0lczNFmK6jCzLg5SOaaNCPmad5pg6 ySs0MYAJJDvSW8Md8heK7vioBW6jK/2jcM8ewIDIIRsBCl08hcp5E6E8m+QW lvqBka+hQvLcGT/j2lWO7iklMmVV5Vm3On3drQXEhZVMlzLGfscsUC/v/s0u Zxb3eDJdO6y3KvNI25G/dR2skhOUV7iNpcxwpCCRHjgeX7H5xeVh9kmDE3cw eSTYySktJ513Ay/Ptm8qxRCS8ihgCS0gJuLS0t4o7d/tEC28BWRPKeMzW0bB Tl0ia7uJgXxHIiwBifPlVmrpMz6XFcWQju5DZTXMKyxq8sjy7bdAsaBlVCRb KUUMv3LbAVLpzYd2hT7TbPJfAOYYUe5W4W8ZWuiiqT/rhcTm5DElXZIpgoUX KQ0SQFUe3jijvIbd0iXzFkkhu/IbTreD5FySj5jnZVV1kjkjUFnVWiACeFQ9 5bxm0aOd/sMC+Y0MUkUSxp5zyZ3mIQNGSVLbbaRgGdpZ5o5La6eW4iu18+6t 7iVrqRLqJnaeKS6jdQyJHxJJ9sSJo0BVI2ndEkFyu+MOwmjazeS981wlqk9y sy3Q86ZIo2Y/JI8880wl+fOyC6MbGKULUcyW8+4F/Osp4pzHPfMWae2j+0zA SAr5reZ5iXco6qqxvGQ8kEaABAsqW9pbSXM4EdoYAY7hITI8VrZSs4kwNu1k t1SVCU2IszZSOQzknlTI63nkG3eJpGNrviby5LeSe4Ntu+6q2kVtGkY4CtAH MYeaFpJdzvJHd2sk63Lhrm2nRQ1zLKtxdSRNhU/fySILQFAcPbFiivHAFjnl RftRu2+1uIrie8uDAtwzRvsuI2Kg7PmmE0whXchW3Ug+TJLcSAEjvc3E0ssj 2i3krwyyTxXLqqyzTNdsjMu5obcMDKHV/uWTupQXIdo7r97viNjPPJLFeN/Z skfl78+SFHkq77FL/Z7ZYzJ8n2NwmLgoEsAuuoywTTwPc212Y5pGmaVIJ0Nz FCXkBDIy+TcXMk21MrczSDy5FhJrww+Xa29mltOVeI2kFqT9mdt8S2SptYBV mkle/LI5by2SWRd67/PAJLndqBniiupJ/tNxdW6XUDqftck8kdqGjDsqZdmv 51XmMLLMqOrB3iJZIS8l3IY7W0ZxPLJGAYoo5FuBDkMiebBDbXEDBOredHbs hEiLFXu7mFrS4lN1aCBbd44p51EKKs1vJbxsFwHiMsYuLkx7WzHFaxJ/yzWr F7bTGW6ht7WOK6uLi8shEWMSvM8H2WGPk4UBpriJFHmIn2UqjBRPOwBHt8uF z5UHm+VJGbQybCzLYWsT27ZZdqwec0ZLszLE90xZJE3tY8vybwxyx5jEttGw VNk07Y1D5AuxUdhEJLdISgVmESOsYWS3EdzNbXk11OgkuhO8uwtGkj3KzzGS BTFIFO9zb/bFhwqMQyji6VI43t0lZbZJfLL4gaRit1IZb6Jw8pYNulbyluvu 4aZxbsm+N4o4gCSKFbgpFqJtJUZLeK5AkZ94lkuLp1klJcrAfMl/eZY7bZbk P8sKzRo3nC1urqWD7U+NQmnMflFJGsjcTSwkKSJCLkOzjcYzaRsFO6CASIi6 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 WngeO3ul02a1vLt5JRp7xNc3Eu5JWMMwvJg7b2IcF4kaKQgNc3ZG4iGMJXgj W6htobeaOS4kSS4tb1A0kom8mFDdq2GYmW5lbDELJ+7aMBpkgSGxFPC7xzQy 6b9kVyIRIwuVgjVbc3KDbjzUitrXySoOZU8x2cCeFJACO3svsMEFpcQwKLaK Oyn+023mRqsDwXF0XRVG9Ve3ulChgsoinIPmBjPYtnngurGSWD7PcR+UVmu5 pZHEwlluQsrhcmNJBvnaQoNyXe1WMMYgpymGCwdp45Cj29w00e8XDSSRvb3k jlnBWcuq2ymTy3DeZNIcwQxrViRVtLi4hmlki2XFzHcvbTsZA1uTc3boxk3G UyRlo3b51FpaCX5ZskAr2karptpDYTRmIW8Cq10Gj2u0UywtLGAVii8ua6uJ Mgq6wkMGD+fcWAZpQ7aRHdxm4RRZQyuQUaWMx2ceQCFEcQ05/MDcTNAJCSUe EeAzO8U8Uc7M8sLxWyyBUYruuEReHjIVdPtUh3puSTyv3UjuIpIWlm1G3maW +N2bskXQjSQ7mK3OcoqiSOKa7jdQoCzyCIIJVlQW4BGJlUPNYi0uYSiy28dv Gzm6gijNvArIQzOksjW8BXO5I2aPc7tdssckSG3ltUXznitPLLxzqGWI2trb oVZgYo2lijuy3JURgzZlSGJmjhjtHtLKPEkEMtvCv2ecuWl/0csvmSo6F0jt ZJt2HRV8+HzGjibyreS4bzbe4lvpYBaXG64neSP9zcn7LDJLI21QUjlnuoZT n94yrEqCKWGFGALEsfnXUpmj89T9rL/aE2eZCJR5aP5yHb/pFjPIVkJKeb5k pmVbnNe1vfJ+yXME0F3dRxC4tne5xJceT5U3mFmYF4XvJJpW3lNiR3G8b4kE FhYZV1EyzW26a3u4lcTFLZUkQwxkl4gqiO3hiuoRIseVZJposgP5EcJu5LWF 0ubuOOS3gZHjt0WUbpU+6sQbbKVudPKbFZYo9gCyS20dAElnC8UtnY2t1PFs ljtoPtcbRmVkZrSLk/PH5k8ayspPmqlthPL+yxNJTikFzYJc2xkYvb27xzYj gYzB7hopAyo0cRS3iu0DglIN8KEKbZpBYgtVvCkUaSR29w6RySRbldLSW2sY 49i7GEjrby3EaoS5Qzhd7ySRmWM3jzRC+YeXcz2kJWN3aMxjal/I5lUmRlUx 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 bjxJ8R9V8N3WnXc9vZ6fDcrb+TEpcqWWM4nYHKkIS3yfeO5cAH0BRXF/CvXN a8QeA7O/19ZPt7O+ZXhMRmQncj7dirgqwwV3AgA5zkCv8XvFt34O8By3unTS QahPcR29tMsaOEYnexYNkY2I46Hkj6gA7yivE/E0etfCJ/D/AIg/4SnWdasJ LgWeqwahcGYSBl3boYzwpwkhGXyDtGSC2e4+IutTW1hY+HdNvLu11rX7hbW1 mtYTI0MYdfOlPTAWMnkEEZBGMFlAO0oryv4L32tah4V1+O41WS/eDU5oLS+v ZzcsSETG5Q5GwfK3ySkHc2CMBjh/EnRNZ8D+F08SW3jzxHPqq3cW9JrtBbSu SS22HIAXIyEG/AGCu3LKAe4UV5H8QPGerw/DTwpqMN/Jo51t7Zb/AFC2iDrb Rywln2qSXzyWXbz8h+YHGadne3nhv4oaHpGgeL9V8SaffRCXUre8lN59njI/ dy+aiNsVvMU4AUcKWYKwIAPaKK8f8Q+IpfFHxAv9Dl8Uf8I54Z0PYtzf2d+k ElzdOp2xeYSNuMSfKAeYmzyV2+geDtOs9P0P/QPEN9r1rPK0qXt5ei6J6KVV wMbQVPHYlqAOgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvJ/F Xhr4f2fijUdal8Yz+G9WMRN7Fpmpx28kmRvJMeC5ZhtOB94gHBJyfWKx77wn 4b1O8kvL/wAP6Vd3UmN809lHI7YAAyxGTgAD8KAPP/gj4et9Pg8Sa5pzY0jV NQdNNTB5tonkCPlju53EYYAjZk5zVf4+y2Fvp3hi5v2gMcWqq0kawRyXLRAZ cx7ztKjA3KylWJjzgDB9gri/iJ4Q1Lxfb6JHp2oR2psdTju5RKzKpVQfmBTD 7xngK6dTyDtIAOH8ZeIdI8ZfEb4eW/h25tNVlS4+1OUcg28fmQyluoAfZDIC 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 +W38Tte6PJp+kjU7q7mvby+3Nby4j3QSB/nJVckyN6HPNYf/AAkNh8UPHP2z XvEOlab4P0a7zaWNxdRo1+6nh3STBKkddy8KdgGS7D3C10LR7HTp9Os9Ksbe xn3edbQ26JHJuG1tygYOQADnqKz/APhBPB//AEKmh/8Aguh/+JoA4f4w65cN Z+GNNtr/AOz+HNeu1h1HUYHAAgYpgCXlVVkZ29wn93cDy9rDo/gX4i+F7f4d 61/acOsSi11W0jukuk8tPLHmEJyrYMsm7OBhsYXK17h/YWj/ANj/ANkf2VY/ 2Z/z5fZ08n7277mNv3uenXmjTNC0fRPN/snSrGw87HmfZLdIt+M4ztAzjJ6+ poA8X0jTvC2kfGbxjb+NdP0qFrrF5YTX2PszRs2WI844MjFlzgEApIFIAwdz 4JGG4vfGN7pUciaDNqZFmA4ERbfIxMcWAYx5T24wRzjrxtX0zU9C0fW/K/tb SrG/8nPl/a7dJdmcZxuBxnA6egq5BBDa28VvbxRwwRIEjjjUKqKBgAAcAAcY oAkooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5//AITvwf8A 9DXof/gxh/8Aiq6CvH/iRG5+M3w+a3M8cxlYNJaWbGVkDAlWk3ANHgsGUfcV nYghwKAPRIPGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGK3Kz9Z0PS/EOn PYavYQXtq2TsmTO0kEblPVWwThhgjPBryPwxqd98OPiy/gGeSNvDepO1xpnn S4+zB9zKqEsSQXVo9rHLNhhgsQwB7ZRWXq/iHTNCe0iv55BPduyW8EEEk8sp VdzbY41ZiABknGBxnqKNA8R6R4p0tdS0W+ju7QuU3qCpVh1DKwBU9DggcEHo RQBqUVy+o/EPwxpf25rq+n8mwl8i6uIbGeWGGTj5GlRCgYFlBGcgnB5rch1b TbnSzqkGoWkunhGc3aTK0QVc7jvBxgYOTnjBoAuUVx958U/BNjZi6uNfgWFp WiQrHIxkIJBZFCkvHlWHmKChIIzmuwoAKy9S8S6Do1wtvqmt6bYzsgdY7q6S JiuSMgMQcZBGfY1Jrt1eWPh7U7zTrf7RfQWkstvDsL+ZIqEqu0cnJAGBya8z +CHijwzfeH1sIZI4PEjuxvjdOpuL5yXk8wPgGUcvwclBkHIwzAHrlZcfiPSJ vEs3h2K+jfVobf7TLbKCSkeQMscYB+ZflJzgg4wc1h+E/B9l4U8UeI3022gg s9R+z3CJFFIvlnEgZMk+WVBBYBcFfMIIC7K0LXW/C194ynsbO4sbjxDBaMJm hQPJHCsmGjaQDjDkZQnIPOO9AHQUVj3PirQrTWG0mbU4BfJE880QJb7PGihm eUjiJcMCC5UHIxmjw34p0bxdp0l/od59rtY5TCz+U8eHABIw4B6MPzoALvxX 4fsLy6tb3WrG1mtfKE4nnWMRmQMUUsxA3EIx25zgZxgjNzTdW03WbdrjS9Qt L6BXKNJazLKobAOCVJGcEHHuK5PQbb+1/AOtalfLOV8RfabwxzReYVt3Ty4V 8uAhj+4SLKq28knnJ487+E083gvxnp3htpZJtP8AEuj2+qWy7ixhmMRZ89Ao OyUcBiQsWTwaAPfKx77xZ4b0y8ks7/xBpVpdR43wz3scbrkAjKk5GQQfxq5q uq2Oh6XcanqdzHbWdum+WV+ij+ZJOAAOSSAMk14f4B0vV7f9oHUZddS0utSl 0w3s5aUMbNpBHlEALkFCxiALD93yDggMAe+UVl6v4h0zQntIr+eQT3bslvBB BJPLKVXc22ONWYgAZJxgcZ6io9B8U6N4l+2DSbzzpLKXybmF4nikhf0ZHAYd COnUEdQcAGxWPN4q0KDxHbeHn1OA6vcbtlohLuNqbzuxnZ8vI3Yz2zUmr+Id M0J7SK/nkE927JbwQQSTyylV3NtjjVmIAGScYHGeorye3l0PUf2htE1Dw9b2 kyPZXP25IraWGW1mUzB5Zl2rtdmIT58nnkDKEgHtlFY+p+KNJ0jUYtOuZp5L 6WIzrbWlpLcyCMEKXKxKxVcnGTgE5x0NHh7xVoXiuzN1oepwXsa/fCEh48kg bkOGXO04yBnGRxQBsUVz9z448NWkupRy6vB/xLIvNvXQM6W43FNrOoKiQsCB HneccA1HpHj/AMKa7pd3qdhrlobO0dUuJZyYBEW+7u8wKQCTgHoTkDkGgDpK K5vw14+8L+L7ie30LVo7qeBA8kZjeNtpOMgOoJGcAkZxkZ6iukoAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igArxv4nQQy/GP4el4oyftGSwUQMdsisuZ3yrgHkRD5uSAcyrj2SvK/E3g/x t4i8a+H/ABCtv4ft00dwwtnv5phL82W+9BsQkAAME3A4OTtXaAeqV4X4uE2t ftL+H4dKkuzLplvAb1rZDmFQ7yMGJKjYUkQE5PD4AY/KfSNSbx9e2629hb+H 9LeRwsl215LdtEhBBZIzCgLjII3HHGCOcg8IeAdN8J3F9qIlkvta1FzJe6hM iqzsx3MEVQAiFsttHtknaMAHJ+FdZ1PXPiL42j07WtKguobtbcQ3lnNLN5MO UG1BOqrGrluVySzsWCblWtzw14Km8P8AxB1TXrjXrR59XtyZNNtLQ20bMpjz MFMrliCeT6ynkbsHL8c/DPWNQ8UReK/Bes/2Trb7Uu/NldY5lUDaeA39xAUI KsADwQd2xoXg3WbnQ9Rj8a63/aep6haSWLSW0aIlrA2QRF8g+ZsgsxXnagIO wEgHP+Hvscfw1v8ATfBvnv4eiiuN+r61hlkBUs/kwybEdQdyHeYow2Sd/wA9 Hwu0Wz1r4F6fa6zpsGrWp+0vBaiIBx+8kGFZmwJCS+HBTG4DjBYyeFvAnjrQ /D934VbxHptvooSdbS+tIXN7HvJK4zhVGSWPLMMkKw+Vl0PAnhrxl4N8J22l zSaNem1d0hto55IUKOxcyPKYnZnDEqqqqgAkkscYAMf4HaPpuofCvZfQWl+l zcOk0U7LOFVH3JGylfkAYlwh3cyFwRvwPXK4P4XeGPEPgzw+NC1cabLbxu8k Vxa3kztliDtMboAo+8cqQOny5LMe8oAjnmW2t5Z3EhSNC7CONnYgDPCqCWPs ASe1eZ+LvhHoXivd4i8O3X9m63Li7t720mPkzyHayucZxnGd6YOWLHca9E1a wXVdGvtOcRlLu3kgbzFYrhlK8hWUkc9mB9COtc3pNl440GzisJbrSvEMMUSq l3dyy2c+QWyHwkofjZhvlPBzk80Ac38MfFfiP/hJdU8B+LDHPqek26vFdx/M ZowRy75+YlZIip2g4zu+aqfhjS7DSP2jtettNsoLO3/sRW8qB49gJaDJCIB5 f+63J+90YV2nhzwlc2fiC78Ua7ex3evXluluRbh0t7WIBSY4lZiSC6lixxk8 gLk5x9P8N+LY/ilN4tu7bRhbz2S2Bt49Sndok3oxcFosE/KflAQHPrliAc2n hfQrT9o61gttDgtIItKF4ka2xaJ5gxUSoEbbFjAGXAG5DgbmV69A8T2FnFoc 2j2NpBBJ4gu/ssqwxhDL5vNxJkceYIFlcM2clAPmOFPNyeFvGJ+JsPjKK00Z cWX2SWzbWbpg3JOVbyQFH3fkKlcgtjcdw7S70d77xRp2pTvi102KUwRLK3zz yDaXZRgfIgZRndnzm4XaCwBYv44rPw9cx+ZthhtHXzLi9eLChDy8/LrwOZOW HXk15H4x0Sa5+CPhLxJp/mLq3h6ys7y2dIzIQuyPf8vTAwrkkHAjPYmvVPEX /CQPp0kPh6OxF1LFIguLu5aP7O5GEcKInD4Jzg46Drnin4W0rUrTwrbaDr1j prQWtlFZ/ubhp1uFVNjb1eJAoIA4+bOT6cgHP2/iG0+JKeHbKCzjm0y6txqe rQzK7IioxSOAkoAxNwpPUZFu3BVsHD0633/tQ6tJ9hsW2aUsnm+bukT5Yl8z HzbZOdm35PkO7nPz9R8P/AX/AAr7Q9VtrQwXd1c3cs0LSHYTGOIY5JAuTgDJ IXALtgHqeft/BHjC3+K9344+xeHJftMQi+yS3szNFiNU3JJ5Hyt8nXb91mXv mgDc1o6Ra/FKyu7aPUr7xU+meRDZQuY7dLcu586Z8YCBsqcljkqQjNtrm/DC 3g/aO15r+Kxjun0RWf7HIXBy0GA2WJDAYXOE3BVbYu7nU13wJ4mtPiRJ408H 6jpq3F5b+Re2uqBvLICqo2lFJx8inqCCvUhiAR+BPF9t8TZvEkfiO0mt7yy+ yXEk0LebbKSGK28fKAblBUsWxuO4SEEsAV/AF+3iD4vePtSmMimweLTYYmZX CorOp2sV3KC0RbapAy5yGIBFfW9NhX9pnw3dwNaJI+mSyXEYISRsJMgc5ADk gqoClmAjJICqDWp4m8B+IE8cnxj4M1Sxs9Snijt723vo2aO4RSCSW+YjISJc KF4UncCeadz8PfGmr+PNL8Saj4n021eztwA2n6eu+JmG2SJPMDbkKlyHctgs cIM0AakL6dZfEzxA3h+C+1LxFdRQ/wBoRzTNDY2iqieXvbafmdT8uFkbIYfI Nxrn/hpZyz/EX4kW19LY3kEksMd2iWiIkzN5mcKrsoX74KtuZs5YhgwOha+A /Fnhnx9q+seFtU0o6ZrUomvItTjd3icuzMUCY3Y3Ptyy53YPQNVjwt4G8U+H vHOu6jN4ggu9M1SWOaSeVC14/lklY8YEaLhmUkA/KoChMgqAYfgLRdNsPjh4 ygtLOOxgtEikt7FplG1mUZlSIbhjDvhgy7Fm27fnIWwulwt+0vdPPp0kiTaO lyGDAJuR0CyuDIdwDIAPlGGCNs+XzDseHPDvjLTPHmueIb+PRng1h4Vkt7e9 kAhSMbVb5oCXcL/tICS2RyNpp/hrxVF8UpvF1xYeH4oLiyWxkhtryXzAu9GM rMYQJHAXAHy8BRnjJAMvUbVI/wBprSZYLfDSaI0s7xWiybjmVAzueY+Aq7xk 8KnRjXrFeZ6x4P8AFV78WdO8ZW9vo3kadbvax20l/KrTKfNAckQEIcS52/N0 6nrVy4uPHOj/ABHtJLu+sb7wzqd2bSCygiCTQfuWkDktj7vlNuO9sgnCAkKA D0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAqnHpVjFqk2prbRm/lTy2uG+ZwnHyKTyq ZUHaMDOTjJJNyigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigArj774o+ENO1yTRLrUp49TSUQm1FhcM5c 42hQIzuzkYxnOQRnNdhXj/xpsX0PUfDvxBsY53utKu44bpIWZfMgJLAM4yEX O5Dxz52D2BAPQPEnjXQfCPlnXLqe0jkwFm+xzSRknOF3ohXd8pO3OcDOMVoa NrVlr+nJf6c072r4KPNbSQ7wQCGUSKpZSCMMOD61yfxWsrHxD8K9QKyxzB0i msZYYftBklLr5Qj25OZCwQMO0h6jNHwc19fEHwy0pt0fn2KfYZlRWUKYwAg5 6kx+WSRxknp0ABqWfxC8OX2uHRLee+bU12l7VtLuleMHGGcGMbF+ZfmbAGQc 11Fcv4UdNX1HWfE0N59otb6VbSz2lSiwW5dMgqOd0rTsDk5Vk6dBY1bxWmm3 ktra6PqurTQRNLcDToVcQABTtZmZQZCGBEakuRg4wRkA6Cisfwx4n0vxdocO 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 aa4BQoJFZV4Qr5iZ3EAggqWyM6HgzxzovjrS3vtHlkBifZNbzgLLCecbgCRg gZBBIPI6ggAHSUVy+q+NoNN/tGSHRtV1C002Jpbu8tUiEKbd29VaSRPMZdh3 BN208H5sijUPiL4R0vQ7DWrvW4EsNQz9lkRXcyY64VQWGOhyPlPBweKAOoor z/Uvi/4f0/Q7TWYrPVdQsZolkmmsbdZUsy23Ecz7giSZYDZuJHfGVzqeKPFt 3p3gp9f8P6VJqqPZNeRTF0jijj2hw8gdlcjaS21QSduDtyDQB1lFcP8AC7Vb 2/8ABekLdaRfQZtPNa+mjjjS4cnJbb5rSFmJLF2Ub+X43AV3FABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVj+K vD1v4r8L6jod02yO7iKB8E+W4OUfAIztYKcZ5xg8VsUUAeH/AA01u/8AF2ne H/C1/aTpJ4cu2k1Iu0kWEgGLaNlVAN3mMDsY/wDLqSck1nm6l+GPxK8XaHpd v5P/AAkFpHLoiIiFjdO2yJVHCJGskkvDgfLGOv8AF7B4f8I6d4c1jX9Ss1xN rN2LmXlvlwv3eWOfnMr5AH+sx0UUap4Ts9S8X6H4l3+VfaV5yZVAfPjkjZdr Hr8pbcOcDLcfNkAGppOmw6No1jpdu0jQWVvHbxtIQWKooUE4AGcD0FeT/CWW 58QWGuRr4h1nTNSh1Oaa9slsrRGjaV2ILu0BMjkqwJwuNu3YoC59kry/xZ8G rfW/FC+I9A1ufw7qTbjPJaxk+Y5GC67XUoxBYNg/NnOM5LAHSeE/BuleE9Z1 yez1K7vNQ1R0ur0XUkZYEtIQ4VEXaGYydsfKcdDXWVh+FPDa+GNGFm1/d6hd yv513e3cjPJcS7VUsck4G1VUDPAUck5J3KAPL71f+ES+PNlfNc4sfFlo1tIk lxsVLiFV2ttxg5ARFGc7pH9gcezvr/R/ihofi6WTZovjWIQyqFkZY3x/ooIH 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 t2XddpClnIUHAXGQZPB3g3xB4N8Of2JbeJLG6t4txtWn0pgYizhiDtmG5eX4 4OWznA20Ac/8C4YItO8UmG2g/wCQ3KgvLcxNHMoA2qjIFyq5JGEVcSfKBkgV /h1eXFnqPxTntxPLJb6rcyxQo4ny4Mp+W3BVtxwBncPMwFBBQmus8HeDta8J 2+rRP4gtNQfULia9aWTTTGwuZAvzHbLgp8udgCnnhhVfwd4B1Lwn4l1rVm1y 0u01m4NxeQjT2jIbMjARt5x2jdIeobgY460Ac/8ACnR01z4V6fHa+ItSgtCk sFzYKLOdEYu29W3wE4bdu2sTgOByOTcvvB+j+DPhB4v0fRp76+jEU806m5Tz YpDChwxXZhQoRyp5KkjDBgpp6r8Dl/4SW41jwp4mu/DQuExJBaRNgEnLBSsi FUJAOzkAjjAwB2F94Puf+EObwzpGqR29pNbzwXU9/A93PMZcl5N/mJhyzuxJ BGW4AAxQBh+F1gf9n2JbeKCVDokwMdxJFHG7bH3B2jZVVS2cksrAcuQ+41j6 MXH7L0h1ieeFv7KuQjTzNExG5/IUHIJUjy1VejKQuCDg9Rb+DfEEXgGTwpL4 ksZ4TafYUuX0pg6wFGQggTAFgCgDdtvIYnIk8M+BJtF8B3Hg+/1WO80+S3lt 0kgtTBKqyly5JLuCfn44GMc5oAsfDEFfhl4dBkkf/QkOXSRT06YkJOB0BHyk AFQFKgdZXH+CPBmo+FLO3t77xTfatHaxPb20LxrFDHGShGV5ZmXbgEsQqnaA BXYUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRUc88Nrby3FxLHDB EheSSRgqooGSSTwABzmgCSisvSPEmi+IHu00fVLS+No6pN9nlDhSy7hyOCCO 44yGHVSBqUAFFFFABRRRQAUVn6zrml+HtOe/1e/gsrVcjfM+NxAJ2qOrNgHC jJOOBViwvrfU9Otr+zk8y1uokmhfaRuRgCpweRkEdaALFFFFABRRRQAUUUUA FFFFABRRRQAVyfjj4eaL4/t7OLVnu4ns3ZoZbWQKwDAblO4EEHap6Z+UYI5z 1lFAFPStKsdD0u30zTLaO2s7dNkUSdFH8ySckk8kkk5Jq5RRQAUUVn6zrml+ HtOe/wBXv4LK1XI3zPjcQCdqjqzYBwoyTjgUAaFFV7C+t9T062v7OTzLW6iS aF9pG5GAKnB5GQR1qxQAUUUUAFFFFABRWPqvirQtE1Gy07UdTghvr6WOG3ts lpHZyVU7RkhSQRuOFz3rYoAKKKKACiiigAooooAKKKKACiiigAooooAKKx9G 8VaF4hvL610fU4L6Sx8v7QYCWRd4JXDj5W6H7pOMYODWxQAUUUUAFcv4r8Aa F4wlt7q+jnt9StcfZtQs5TFPDhgww3Q4I4yDjJIwTmuoooA4vTfhtY2lwz6j rniDXrdkKmy1m++0W5OQQxj2gMRjjdkA84yAR2lFFABRRRQAUUVj6r4q0LRN RstO1HU4Ib6+ljht7bJaR2clVO0ZIUkEbjhc96ANiiiigAooooAKKKy9D8R6 R4lt7m40a+jvILe4a2kkjB2+YoBIBIwwwwO4ZBzwTQBqUUUUAFFFFABXn83w h0KPUbi80XU9c8PfacGeHR74wRyMCxBKkHGNxAAwoHQDmvQKKAMPRPCemaHc fbITd3WoNbpbSX1/dSXE7opzjc5O0FiWIUKCe3AxuUUUAFFFRzzw2tvLcXEs cMESF5JJGCqigZJJPAAHOaAJKKy9N8S6DrNw1vpet6bfTqhdo7W6SVguQMkK ScZIGfcVqUAFFZ/9u6P/AGx/ZH9q2P8Aaf8Az5faE877u77md33eenTmtCgA ooooAKKw4PGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGK2I54ZnmSKWN3h fZKqsCUbaGw3odrKcHsQe9AElFFFABRRRQAUVXvr+z0yzkvL+7gtLWPG+aeQ RouSAMseBkkD8ap6X4j0jWfD669ZX0baWyO/2mQGJQqEhid4BABU8nHSgDUo rP0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcirk88Nrby3FxLHDBEheSS RgqooGSSTwABzmgCSisvQ/EekeJbe5uNGvo7yC3uGtpJIwdvmKASASMMMMDu GQc8E1qUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRVPVdVsdD0u41 PU7mO2s7dN8sr9FH8yScAAckkAZJqSwvrfU9Otr+zk8y1uokmhfaRuRgCpwe RkEdaALFFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p3iPR4NW0 m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWPqfijSdI1GLTrmaeS+liM621p aS3MgjBClysSsVXJxk4BOcdDWxXn8L6dZfEzxA3h+C+1LxFdRQ/2hHNM0Nja KqJ5e9tp+Z1Py4WRshh8g3GgDqPD3irQvFdmbrQ9TgvY1++EJDx5JA3IcMud pxkDOMjijU/FGk6RqMWnXM08l9LEZ1trS0luZBGCFLlYlYquTjJwCc46GvP/ AIVpLH8RfiMs88E8wu7bzJIIUiRm/e5wqMwHOerFu74bcKr+F9QTwV8WvGdr 4q1GC2bWPL1Cyurm6URtAryKqbnIIYBwoXHSNscAEgHoFh468J6n9mFn4k0q SS62CGH7WgkYtjauwncGOQNpGc8YzVjU/FGk6RqMWnXM08l9LEZ1trS0luZB GCFLlYlYquTjJwCc46GuH+FdhnxR421+ztL6LRtXu4Z7Ke9j8trjIkd3RTg+ WTICpI5UjuDiv8Mr7W/EOna9q+la3YrHda3cSSLd2EtxtOECiOTzoy0YjEYG 5FIwRgACgD0SDxJotz4fi15NUtBpMiB1vJJQkYBO3ktjad3y4OCDweeKx734 m+C9P0uPUp/EFobSS4ktkeHdKWkT7wCoCcDg7sYwynOGXPN+Gvhlo/hfTvEG narq9je2M22+FtNbII9N4lXzlWZ5QOMgM2eIuS2DUfwL02GX4Vxtd2cciXjz RMZkDCaEOw2nLNlNzSfLhBlm+U5LuAekaVqtjrml2+p6Zcx3NncJvilTow/m CDkEHkEEHBFY83j3w3Agme/kNmXVPt6Wsz2mWYKP9IVDFjccE7sA5BwQa8j8 N+IdU0L9nvxTJbLPaTabqEtjaxTnE1okjxAgsoQ+Ypmc7sDDdsDFeoaf4Y8P +IPhVYaDFBPHol5p8JjB2xzAELIrtt+XzN2GPUFs5BBOQC54l8e+G/B9xBBr 1/JZvOheIm1mdXAODhlQjI4yM5GR6itCDxBp914fi1y3+1zWEqB42jspmkdS cAiIJvIPXO3pz05rn9f8Fab4j+GTeFrOeOZLW3FvZXEjqxjmgGxSzBTg7lKP gZwXHFYejeObzxL8NUhnivrPxDcXY0CVhGRIl0VAknAQDbsQtKQduCjLkcNQ B3mgeIdM8UaWup6PPJPZs5RZWgkiDkddu9QSM8ZHGQR1Bq5fWFnqdnJZ39pB d2smN8M8YkRsEEZU8HBAP4UWFmmn6dbWURzHbxJEp2KmQoAHyoAo6dFAA7AC rFAHifwx8R6N4O0vxk2s30mn2lrrroIZxBlC3ygCOAE7/kOQo8vCfJwr49Y0 DxHpHinS11LRb6O7tC5TeoKlWHUMrAFT0OCBwQehFed/Bq3SXUfGWoLL9tj/ ALbuI7e/Yq3mgkM5Uq235sRsdqID8vLAAJJ8I91h4l8f6ELWS0gtNYM8MGxU RUlLhdibQQCsakckEbcAclgDrNR+IfhjS/tzXV9P5NhL5F1cQ2M8sMMnHyNK iFAwLKCM5BODzW5Dq2m3OlnVINQtJdPCM5u0mVogq53HeDjAwcnPGDXmfh77 HH8Nb/TfBvnv4eiiuN+r61hlkBUs/kwybEdQdyHeYow2Sd/z1H8OdIvtc/Z3 GlQ3kcMt7b3cNs6pt2BpJBtcndkFt2SFBCtgDI3EA7j/AIT3w2L22tHv5I5L t1S0aW1mRLol0QeS5QLKCZEOUJGDu+7k10leL6d47l06DSvCHxG0SfQZo5bb 7PqEARbSVoHSVckDYigrErbNyjcc+WBx7RQBwfxg0ax1T4b6vPc2Uc9xaW5l t5fLzJCQysSrBHKg7RuwACByyjLCnovxF8I+FfBHhiz1jW4ILo6Va5hRXldP 3MZ+ZUBK5DAjdjPbNbHxUj834X+IV8vzMWhbGzfjBBzjY/TGc4GMZ3Jjesfg /wAN6Le/CjSNMn0u0NnqGmW8l3EsQQTO0SZdsYO/IB3dcgHOQKAOwgnhureK 4t5Y5oJUDxyRsGV1IyCCOCCOc1z6+PfDZ1Sy05r+SKe/cpZvNazRxXJGP9XK yBHByMFWIbcuM5GfDNJ8Q/Zv2ap7SXUZ445dV/s4ske14Y2KyukYU/vcqXJD tGDvZc4ChvV/E3hDWPH3hc6deeIdDlsbny54bm20h2YYIZXjY3LDkZGR1Vj6 0Adpquq2Oh6XcanqdzHbWdum+WV+ij+ZJOAAOSSAMk1n6R4v0PXNUu9LsbuT +0LRFee0uLeW3lRW6HZIqkjkcgcblz1GfO9U1ie2+IHgTQIfEljK0WlebFfX 8cskd1M6mJZV2TASSOFcKGIAEjYZ2ZQNzW/A+pal4q0DxLqniXTbSfSrhAr2 mnNbtcKzqPJZ2nY4YkqB/wBNGGDuxQB1D+MfDi6o+mjWLR7uNJXnSJ94t1i/ 1hmZciIDplyvPHWq/hrx94X8X3E9voWrR3U8CB5IzG8bbScZAdQSM4BIzjIz 1FefwaFpFl+0XFZ2NlHb2q6OJ2to9PMcPmCTKkeWFUgEK+994DjaCGCbNDUg LP8AaS0ZrCSOGS90eQaghSNPOjG/YQxO533ImQBkLGOSu7aAeqVl6/4j0jwt pbalrV9HaWgcJvYFizHoFVQSx6nAB4BPQGtSvK/jzpmlP8PLzUp47SPUkeGK 3naKPzZB5gJiV2UtjBdsKQflPbcCAdZrHxF8I6BriaLqmtwW1+2zMbK5Cbvu 72AKp2PzEYBBPBzR4h+IvhHwreCz1jW4ILo9YUV5XTgH5lQErkMCN2M9s1h+ MNEtLf4FX+m2NjGLeDTFkWFLd4QNuJC/lu6upBBchmLA5yJDlWp2thpz/s5z 7LTcsvh9p5ftEbFnmSDhzv5OCi7D0Cqm35QtAHpH2+z/ALO/tH7XB9h8rz/t PmDy/Lxu37um3HOemK5tfiV4S32Sz6nJZpfIXtZr6zntoplChsrJKioRgjnP ceorj9JGh6n+zhYp4m1KS30g28aT3NoZXZNk4Cgb1ZshlVSACo524UDGX8Yb jUb74VQzy2X9maassH2eC/KzX0pwQPMLtmJgASdplkYH5tg8wUAeua34k0Xw 5b+frOqWlihR3QTShWkCjLbF6uRkcKCeR61j6j8S/B+k6pb6ZqOtR2t5Okbi KaGRTGH+75mVxEcEEh9pAIJwK5P45aPBJ8M59SubOCfVYPs8b30NtEpVd4zy +XWMsxwqMWywySu6rHxP0mwtfgXd29xDPH9liglRriOOWdZzIuWcg7fMZmYO 6k/fc/NnBAPTJ54bW3luLiWOGCJC8kkjBVRQMkkngADnNeP/ABe1/wAN+Ifh heXUMMklxshfT7q702aHIeWMt5MkqKCWQE4U5KqTyAcHj3VJtT8NfDjSLnUY 531y9snup4VIFyoCbmEbx7GQtIrbXA5C/IedvUfGWyhvfhXrJlsZLt4ESaIR Ab4mDj94DtbAVSxbGPl3DIzkAGxpGr2OjfDnS9V1O/tI7ODTIJJbmKPy4iPL XlE2qQCSNqhQeQAueKIPHvhubWYtHe/ktNQmQPFb39rNaNIC20bfNRdxLcAD JODjoa5PV4fDX/CrPBb6vdaqbW3+wy6etjGyXN1OsB8qMBNxVmGejDBxhx1r L+I8mp3Pir4f3Gow2lmh12EQWimOWcLvQlnkyCp+6CkYZARkyN8goA6D4ifE Q+G73S9E0+O7TU7+9hiFy1jJJFHHvjL7Rj9+SrBdsZzyeVYAHtLXWrK706e/ 3T21rBuMr31tJa7AoyWIlVTtA/i6cHng1538bEaS38JIySPbtrsAkRrZbiBj g4DxD95IcbsInDDcDyVq58Vb+4i1HwZp0F/9kW81uEnEYk3uhBjDJ5qFo95X cAD2OVIUOAdRY+NdBv8AXI9Ejup4NTkiM0dreWc1s8iDOSolRd3Q9P7rHsca mparY6RbrPf3McCO4jjDctK5BIRFHLucHCqCT2Brz/xx8P8AVfFdvZ3mreKt N099JdrmG+tdOkhaAYBYlmuSAPlVs4yNowRzmNJn1b9o5oL21nSHRtEMliXk bY7uyB5lXgciRoz1/wBX6gYAOf8AHV7o178VfAN3p8cFpfS6g32t73TXhmkG YVj3JJHvOQGRHIwGBwy7SV9wryP4rWVi/wARvhxcPLHb3jamF8xociREkiYK XXLZ3HCjBGZGJKgEn1ygDh/id44fwb4XvZbOzvpr9otsM0Vqxhty5KrI8hUx jBx8pJJJUYwcjoPDuqQ6hp0cUcF9DJbxRrIt3b3KYOMYEk6I0vQ/NjJ4JwTX H/HV0T4UakHvPIZ5YAkeVH2g+Yp2cjJwAX+XB+TrjINP4u6hd6N8FhbwwR2k lylvZypFIlt5CkAsqIGYEYUoY1ZsKxOSqk0AdhJ4+8LwvD5urRpbzPsivmjc WjttLYW52+UT8rDAfqCOoxXSVj33hqw1HwlJ4bul8yxe0FqSI41IAUBWVQoR WBAYYUAEDAGK4f4B6zeav8NVivH8z+z7t7OFySWMYVHUEknpvKjGAFVRjigD 1CsPW/F+h+Hrj7PqN3Is/wBne6aOG3lnaOFThpHEasUQE43NgcH0NbleR/C3 WNZ8TaXq9/puvaMss2pyzzx3FhPLON2BGXBuAEGxVVVXcoVANxIbAB6ZY65p eo6HHrdrfwSaY8RmF0X2oEGdxYnG3GDnOMYIOMVh3vxL8H6dpcep3WtRpZy3 EltDKIZGEzp98x4Ul0B43rlc8ZzXP6D8NtF0O38S2fiDUdN1HT7xxqEli1uL eDTwRKDIimRvLBXcocEECPrxxH8BLFIPhnbXflz+dcyyAyTMrAorsFWPHIjB Lna2PnaQgYbJAOsvPH/hSw8P2uu3OuWiafdpvt5MktKMgHagG8lSQGAGV74w auaP4q0LXtDfWtN1OCbTY9/mTsTGItvLbw2CmBz82OCD0INed/A3TbSyt/Es f2OSG8tNYnt8Mj7YY8J8iEs6g5T5grsflTczAIaPhjo8Laz8QtDvdKtJdFXW MwxFRLbnLM2wLkxAoBESAAykgN0UKAdxc+P/AApaaNc6xJrlo2n21wLV7iIm RTKVVgibQd52sCducc5+6cXNH1vQvGehvdabcQajps2+CQMhwezI6MMjIPRh yCD0Irzv4D6PaWOja9IsEgnt9YuLRDMzlo4wsWVwyoVJIG47ELbV3AbQBX+H 8EPhv46+NPDenRRpp81vHe7doBjb5GCJtwAg+0OAMdAvPByAXPhXZ2+n/EX4 jWtpZfYreO7thHAIDEFH73lVLN8p6gggEEEBQQo9E1LxDpmlXC2txPI92yCQ WtrBJcT7MkbzHGrOEyMbsYzgZyRXn/wzkhk+JvxLaAxlBewKSgAG4GYN0ROd wOeDzn5n++0fwQ1OLxDF4r8QyQzpf6hqpaQyM7hYQoMUYcgKdm5xgcgbcgDb QB6Jp3iHTNW0u41Gwnkngt3kjmRYJPNjdPvI0W3eHH93bk5GAcis/RfHnh7x Dqk2m6Xc3c93A5SdDp9wggYbuJGZAEPysMMRkjHWuDP/ABTH7SsFnpvyWviL TzPew9E8xRKd6quBuzDnLZP7yT+9xc1Hd8Pvi9b6jBayPovi547S5WFFAhvQ 2Ec/KBhgxON2WLStztAoA7i88XaPYeILXQrmS7TULt9lvH9hnKynAJ2uE2EK CCxBwvfGDW5XJ6GTrXjXWdc8uQWlig0iyZnkAZlYtcuqEBcF/Lj3DOTAecV1 lAGfrGt6doNml1qVx5MckqQRhUaR5ZGOFREUFnY+igngnoDWfpnjbw7q+sS6 Rbah5epxY3WV3DJbTHKlhhJVVm+UZ4BwME9RWP42/sKHxR4Vvb/+1Z9Zt5Zv 7LsNOyGuWYIJNx4AVRhjudV27s7hkVy+qf2i37QHguXVPsMdw9pdYt7Ta/lK IpcZlOJJMnJ+ZEUchdx3mgD0i68VaFZ6xBpEupwNqc0qwrZQkyzBiu4FkTLK u0ZLMAoHJIrP0f4i+Edf1x9F0vW4Lm/XfiNVcB9v3tjEBX7n5ScgEjgZrz/x /oGmW/xh8FSGzgtrTUZZ1uPs3kxNcyHG4S5Vd6vvVWBdi6syqoY/PqfEkC1+ Jvw7vbKSODU5L2SBnZIwJLclBIpdiOdrsFXBJMjbcNgMAeiaxrenaDZpdalc eTHJKkEYVGkeWRjhURFBZ2PooJ4J6A143461Pw3qPxN8EX2nR2h1JNYSC+t7 i0mtrpixh8uRwVRiEGCpY4JIADAMB0kWof23+0TLp1yfMh0DSnltF8vZ5U0v lB2yGO/KPjnAHZcjc1f4oW3kfEr4c6miz2+dQa1lvLeLLHc0eyJmyPlbMgwT 91pCAeQQD1iq99f2emWcl5f3cFpax43zTyCNFyQBljwMkgfjViuL+Kek6RqH w+1q41PT47mS0spntpPJLyQyYypUqNyjcqlj0wPm+UGgCTUPil4N0qzsLq+1 nyI9QiM9sHtZt7x5wHKbNyqexIAbGRkVoa9448NeGtOs7/VtXghtb3m2dA0v nDGdyhASVwR83Tkc8jPL+DLCwPwIjjuJfMt7vSpTdzQ3UbOwMZUjzHCqGVAE AfhNgUkhM1X+CGk27fCi1kuYYLhb/wA5JFeMtuiEjr5bbiQVyXOAFX5z8uSz MAegWOuaXqOhx63a38EmmPEZhdF9qBBncWJxtxg5zjGCDjFU/DGqeHNWt7+4 8NvaSQC9kW6ktYtiyXGAXYnADkgqd4yDxya8/wDgXp1tqPwme11GxjubSa9l JiurJBHIBtwR180Bh99uQQV6IKsfAeOGLwrr0duI1gTXbhYxGQVChIsYIdwR j/bf/ebqQDtNU8a6DpF5d2t1dTtNZRLNdi2s5rgWyEEgyNGjBMhSfmI456VY tfFnhu+8/wCx+INKuPIiaebyb2N/LjX7ztg8KMjJPAry/wCF+uW/gTTvEuje NL/7DqUGoSXrT3rlftqMNpkh34eXLQuchedy9ScVsfCPwolp4G1XTtV0WdNN u9VmmtrTV4FMjwARhDLGRgNlO46jI4waAOou/iN4OstOmv5vEVibWKXyS8cn mb3AQkIFyZMCRM7c4zzjBxcufF+h2tlpd293I6aqgexjgt5ZZZ12b8rEil8B eSccZGcZrzv4O6TYR6j8QLSaGCSRtVktbiBI41tmiUyBVWHJZVO6QYbK4wAS Vaug1OHQtL+JWmvp1tfXHiNdKFra6bakw2kNrufEkpACrGGG3GWx8u2MttoA 6TQ/GGgeI7i5tdL1KOW7tnZJrWRGinjKkBsxuA4ALAZxjPHWuLf4mw33xQh0 W3stVFhp9pJNdf6HciR5WCbD5CRGQqoYj5wqkvu6ohan4dF2P2i9Ya+ktGun 0INIlqiBYsyQ4QsCWcgY+eQIx4wqrtqxJKv/AA0vCrXEhP8AYW1UnkaAA7yd sQCgTjGWwSQCXOcxhQAegXniHTLC3tZbmeRHu0329t5EhuJRgE7YAvmEqCCw C5UcnGDVfQ/GGgeI7i5tdL1KOW7tnZJrWRGinjKkBsxuA4ALAZxjPHWuHk1u 9vvjrqWlWer6baXFppkcFvHfW0shO7bLIIlWZUYkbCzHDYRQFIVmOpF4IvIP iZYeL7/xDYx3TxNZvaWdibYXvyOQGJmYuwADd+Il4G3IAPQK5/XvDFv4n1Gz j1iCC50iz/fpavk+bc5+VmHHyooYbSWD+acgbBnoKjnnhtbeW4uJY4YIkLyS SMFVFAySSeAAOc0AeJ/GXw1pfg/TtM8YeGlg0PV7O7WGP7HH5aTBgxxsVdpY YP3sAruB3fKK6z4y+NJvB/gphYvGNQ1FzawnzijxKVO+VAOSV4AIxgspPodR LO48XeI7XVLgwf8ACOaZKJ9NQIHN9PsI+0EsPljTcwj2/eI8zJXZnj/2g1eH w9oF+L6e0jt9VQM9vuMiEoxEiAOqll2HGecnhlG7cAdZ4h8JabZfC2fRrOGN BpVk0thM8iwtDcRoWSbzBtCPu+YvkDls8E1Y+G3ihvF/gPTdVnkja82GG72u pPmodpLAABSwAfbgYDjtg1ua7d/YPD2p3nn+R9ntJZfOzjy9qE7vuP0xn7jf 7rdDwfwGtpoPhXZySySMk9xNJEGmLhFDlcKNo2DcrHaC3JLZ+bAAPTK8fsry 4+Jfxa1rTb4Tt4V8Pfumst4SO4uQ4A89AT5q7o5GUdAEXIGWDewV4P8AAXyt I8ZeNdAn8iK+SVcQW+9owsMkiPsZsnaC6AbjuIPfmgD2ybSdNudLGlz6faS6 eEVBaPCrRBVxtGwjGBgYGOMCuf8AAnhKHwZDrenWcMkWny6mbizDyBz5bQxZ GeuA4dRu5woznqesrH8Rvpdx4e1uy1K88m1GnyG9MRzJFAyOC+3BPRXxwclT wcUAZcnxK8JQpDNLqciWk1x9mivWs5xavJuK4WfZ5ZGVb5g2MAnOBXQalq2m 6NbrcapqFpYwM4RZLqZYlLYJwCxAzgE49jXkfimYSfAu7g0u18rwzb2iRwXW tSTNPdhZFEbIicqrHayMxA4CmNYyGGprGk2Wofs92dxcafHc3Np4cje3k8mJ 5If3CFipkGFGFBYj5sD5fmC0AdJqHxS8G6VZ2F1faz5EeoRGe2D2s29484Dl Nm5VPYkANjIyK6yCeG6t4ri3ljmglQPHJGwZXUjIII4II5zXl+g6JYz/ALOk lrp+m2kr3ejyzGK1P2jzrnyzhjxky71XjkoyhQflFcvq/i27tP2YtImgmkjl vU/sol40lJjBkRlyNoUFIyAdrEDA5J8wAHaeOPE/hXxB4B1tSPtsKWlyba7l 0+VrYTqjorRzsnl7t2VVg3JIAJJGbHwsubPRfg5olzft/ZlqkTO730oQDfK2 G3EKArFgV9mUZbqdjxXo2nR/DHVtICQQ2FvpUkUXnhpEhWOM7GPDMdu1TkAt 8uRk1x/gjQ7fUf2e7K0vbCxv2FpdTQRzIbhBIXlKH91lwwDYOz5xkgYbigD0 Dwte6FqHhy0uvDSQJpD7/s4ggMKDDsGwhAx8wbtz1qnqviDwvdpcadqPl39o r7Lv/QnubWFlbJE0gRo4ypAJDkbRgnAwa838P63N4e/ZZ/tG38zz1t7iKNo5 DG0bSXLxhww5BUvu/DqOtegfD/SrGH4W6BYLbRtaT6ZG8sMnzq5lTfJkNnIZ nbjpzjpxQByf7PPlf8K1k8vyN39oS+Z5W/du2p9/dxuxj7ny7dv8W6usk+JX hKFIZpdTkS0muPs0V61nOLV5NxXCz7PLIyrfMGxgE5wK4P4UWelx/CDxXaX5 vrGx+13sd+kyfvrRPJUMuQPmZUwSdi/NkbeOZPEcjS/A+8t9Hhkt/DdtZBIL vVislxdorAKUjkICI/ylXJDAcJFnyzQB3ni7xzp3hPwu2uGKe/heISW/2SNn jlyVC5lAKIpLr8xPIztDHiq/w88WjxN4X0ySe4nu79rQSXFyNOmghZwcMA5X y2YHg7W5IYgAcDHvW2/s5qfNni/4pqMboI97HMCjBG1vlPRjjhSTlcbhXGrX Gh/s4w3/AJ08NwmiJHFLNIEdC6hIyrRA4xuXZ0P3d5U7mAB1lz498N2dxcxT X8gS1uBa3NytrM1vBKSo2POEMakFlBywwTg4rcvr6306zkurqTy4UwCQpYkk gKqqMlmJIAUAkkgAEmvO7Xwpqvin4W6fora3pp0e60y3WLzNIkWdUCK0bErd Y3jCnuMjoRxVPVfBmu2Xw/8ADUHhq+g1/VvDmoGSNrlwI5lVpEKbGcpujJCj LBkCNtKnigDvNK8X6HrOqSaXZ3cn9oRIzyWk9vLDLGq7OWSRVKg+amCRzk4z g43K838I+P8AS/Fvi2G31KwvtC8TWVpNENNvOA6SNG7bSQGZgsUbYIXhmwGA yPSKAK99f2emWcl5f3cFpax43zTyCNFyQBljwMkgfjWXYeL9D1HVP7Lju5IN QKB0tL23ltZZFO7lElVS4+RslQcY5rh/GU51L44eB9BuZY3sIkl1D7MrSK3n KshjkfGFIBjG3HP388MM2PjppsM3w8k1lWkh1DSLiG4s7iEhXRmkVCA2MgfM G4I5RT2oA6jWvHvhvw7qkOnaxfyWM87hInntZlic/L0l2bCBuXJ3YXPOKk8S eNdB8I+Wdcup7SOTAWb7HNJGSc4XeiFd3yk7c5wM4xXm/wASNWfUvBvw61ma b7Jf3OoWV15qyNFbQlo9zMzMHjXBIILhiAGwCN4PQfHWbyvhRqSfaYIvNlgT ZKMtN+8VtqcjDcbujfKrcdwAXPiN4/Xwv4OuL7S4bu7uJ7dWtbu2t2e3iEmQ krTbTHgHBC5JYlRjDZHQeFtcs9a0a2ezW72JbxHfNDcBWDLwUlnRTMOPv9Tw TjNcX8Z/+SL3H2v7d9o/0bG/7+/eufO8n9303Z/g3Yxztr0iw83+zrbz/P8A O8pN/wBo2eZuwM7/AC/k3Z67flz04oAsVh6p4v0PRrhob+7kiEbok04t5Wgg ZyAoklVSkZO5ThmGAyk8EGtyvE/+Ei8R/CG91aHUvDEmoeGbnU5LqHUrWXc8 UcjjPmsQS7/MoBlKkkEbmGCAD1DUvEfhyPwqurapfWi6Le24ZWuhhZ43QttC MMsWXPyYJPIxWhpM1jc6NYz6WIxp8lvG9qI49iiIqCmFwNo244wMV5348tPC 2q/BKa906Cxu7C009V0y4cBjCoKqArO6srfKFI3bsjBVz8jYfjzWJtJ/Zv0G OCeSF7+ysbQlFOWUwhmXIYbQVQgnDZBK4+bIAOo8feIPC+s+Bdaify76NbKd 7W7ayeW1E3lMEKXGwxb9x2ghs7jtHzcVc+D8SQ/CjQFjXapidiPPWXkyOSdy jAySTt6r905INaHivRtOj+GOraQEghsLfSpIovPDSJCscZ2MeGY7dqnIBb5c jJrydtZi0v8AZo0BIH+zQ392LOX7QXdGUzyNKHaIq6xsEfO0M207MEneAD1i 3+InhW61GzsotV/eX0rw2kjW8qw3LodrCOUqI354+VjkkAZJFdRXn/ibwhrH j7wudOvPEOhy2Nz5c8NzbaQ7MMEMrxsblhyMjI6qx9a7DQovJ8PaZF/aP9pb LSJft27d9pwg/eZyc7vvZyevU0AaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFeX2vgPxZ4Z8favrHhbVNKOma1KJryLU 43d4nLszFAmN2Nz7csud2D0DV6hRQB5v4W8DeKfD3jnXdRm8QQXemapLHNJP Kha8fyySseMCNFwzKSAflUBQmQVp2I8ez+J/FOoeGJPD8lhPqZi36ml3HuaK NIzsQErhSpQuPvMjdgoHqleb2/wz1nQJZIvB/ji+0jTH5Fhc2qXqQnczYjLk bF+bpgk4ySewBoaZqfjyw17TbbxRD4cksdQle2RtMacSRyCJ5QxEgwVxEwxw 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 wrvfCc+ux3V5KiiG5azjt4kCOrJGscYwqYQLn5iMk8jCjY8HaZ4j0zS4ofEN 9psrx28UEVtp1r5UUWzcN2eNxZSmQFVV24A7npKKACuHh0LxZaadq+h/abHU NNvJZha3l/cvJNawSj7jRPG4n2EtjfJ84wCVHA7iigDzu98C6rp3wrj8EeHp LS4D28kM15fXMkBUu+5iqxKSQSzjaWAAwDvBINiXwJN4g+FsHhHxAtpbz2tv DBBc2khn2tEihZRvRCpJDAqP4SRu547yigDyuw8I/Eu08NXnhtvEPh+TT0tz BY3EtiZJTGoVUidCPLCMoIYkSEbj97gjQ8NfDFrP4bz+D/EWrSahaXCACOCN YltTu8w+W2NzkSEtufg4UbQMg+iUUAeN6B8OviXpDrozeOY08N7yhaElroQ7 doEe9D5R2gABXwhJIyRz7BBBDa28VvbxRwwRIEjjjUKqKBgAAcAAcYqSigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo orL1fxDpmhPaRX88gnu3ZLeCCCSeWUqu5tscasxAAyTjA4z1FAGpRWfo+t6d r1m91ptx50ccrwSBkaN4pFOGR0YBkYejAHkHoRWPqPxD8MaX9ua6vp/JsJfI uriGxnlhhk4+RpUQoGBZQRnIJweaAOoorP8A7d0f+x/7X/tWx/sz/n9+0J5P 3tv387fvcdevFYd78S/B+naXHqd1rUaWctxJbQyiGRhM6ffMeFJdAeN65XPG c0AdZRVPStVsdc0u31PTLmO5s7hN8UqdGH8wQcgg8ggg4Irn5PiV4ShSGaXU 5EtJrj7NFetZzi1eTcVws+zyyMq3zBsYBOcCgDrKr31/Z6ZZyXl/dwWlrHjf NPII0XJAGWPAySB+NWK5vVfEHhe7S407UfLv7RX2Xf8AoT3NrCytkiaQI0cZ UgEhyNowTgYNAGpo+uaX4gs3u9Iv4L23SV4WkhfcA6nBH8iPUEEZBBOhXkf7 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 aWI28FvcJvjnmkPlxxuP7rOyqckDB5IGTUnhvRIfDnhrTdGg8spZ26RF0jEY kYD5n2joWbLHk8k8mgDUorm5PH3heF4fN1aNLeZ9kV80bi0dtpbC3O3yiflY YD9QR1GK6CeeG1t5bi4ljhgiQvJJIwVUUDJJJ4AA5zQBJWWfEmir4gTQTqlp /azozizEoMmFAY5HY7WDAHkjJGQCRj3vxL8H6dpcep3WtRpZy3EltDKIZGEz p98x4Ul0B43rlc8ZzXFxaHZaD+0dYRaJYQWVtPojTXMUCSImdzrkLH8i8pH9 8BO/3ypoA9gorm9S8eeHtJ8QLoN3c3Y1R0Dx20Wn3ErSLgnKbEIYYByRnG0+ hrY1LVLTSbdZrt5AHcJGkUTyySNgnCIgLMcAkgA4Ck9ATQBcorH0HxTo3iX7 YNJvPOkspfJuYXieKSF/RkcBh0I6dQR1BxXvPHPhaw/tD7Tr1jH/AGfgXX70 Hy2O/EfHWT90/wAgy3y9ORkA6Cis/RNb07xHo8GraTcfaLGfd5cuxk3bWKnh gCOQRyK0KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8z+G2pQ6r4 8+IlxIsi6gmpx28gUAReTEHiiI5J3/I5bPH3cY5FemV5P4n+Fuux+NJvF3gX XYNK1K64uIJowImyMO2QrBtxCsVZT82W3ZwKAO00PwrovhrxLrN9YTSJea64 upreSUEZQnc6D72N0uW5IBYAYGBXF+Hvscfw1v8ATfBvnv4eiiuN+r61hlkB Us/kwybEdQdyHeYow2Sd/wA9dJpPgzU59G1CLxdr8mrahqNk1k8sMEcK2sTq d6xYXqWOS5A3bI8r8orn/C3gTx1ofh+78Kt4j0230UJOtpfWkLm9j3klcZwq jJLHlmGSFYfKygB8M9Gttc+BGlWlxZWl2+y6aBbqNGVJfOlCsN6OARnrtbGT wehPgXpVs/wrje5tpJRfPNHL9q2OkkQdl2IOT5WS/wArfxNIcYbJ0PBXhfxV 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 jy/MKYw/y9R4V8O+NLZ5dS8X63aaxqFujjTrWJVit42ZRl2YRA7zygO07VZ8 Z3kCvonhvxbp/wASNY8TT22jfZNXSCOa3j1KctCI1Vdw/dBHOAxwyg84DKC2 4A7yxsLPTLOOzsLSC0tY87IYIxGi5JJwo4GSSfxqxXP+KLTxTd/2b/wjOqWN j5d2r3v2u3MnmQ9wP8PlJ4w6Y56CgAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiisvUvEug6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXp viXQdZuGt9L1vTb6dULtHa3SSsFyBkhSTjJAz7itSgAoqvfX9nplnJeX93Ba WseN808gjRckAZY8DJIH41X0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEc igDQooooAKKKKACiiigCvfWNvqVnJaXcfm28mBJGWIDgEHa2OqnGCp4YEggg kVJBBDa28VvbxRwwRIEjjjUKqKBgAAcAAcYqSigAooooAKKKKACiiigAoooo AKKy9N8R6Rq+qalpun30dxd6Y6peIgJETNnA3YwT8rAgE4IIODRbeJNFvdZk 0e01S0uNQjSR5beGUO0QRlVt+M7SGYDBwevocAGpRRRQAUVj6N4q0LxDeX1r o+pwX0lj5f2gwEsi7wSuHHyt0P3ScYwcGtigAorHtfFWhX3iGfQLPU4LjU4I mmmghJfy1V9jBmHyhgxAKk7h6VsUAFFFFABRWXq3iPSNCuNPt9Svo4J9RuFt rSMgs0shIAAABOMkAseBkZIyK1KACiiigAooooAKKx9M8VaFreoy2Ok6nBfz QxCaRrQmWNFJIAMi5QMSD8pO7AJxjmtigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDze3+Ge s6BLJF4P8cX2kaY/IsLm1S9SE7mbEZcjYvzdMEnGST26jRPDlxZ+Rda5q8+t 6rDu23MqCGNAcgbIE+RW2kjfguQzDdtO0dBRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/ E5Ff4ZeIg6RuPsTnD2zTjIGQdq8gg8h+iEBjwprrK5P4nIr/AAy8RB0jcfYn OHtmnGQMg7V5BB5D9EIDHhTQBT+D9t9l+FGgR7Z1zE8mJ4vLb55HbgZOV5+V v4lwcDOBsX3jbw7p0si3GoYjilEE9xHDJJBBIWC7JZlUxxsCRkOwIyCcAivO 9L1Kbw3+zAt7brd2E62TiNnBaRWlmKh1wUIDF9yn+EFT8+Pm7j4f6VYw/C3Q LBbaNrSfTI3lhk+dXMqb5Mhs5DM7cdOcdOKALHi+DSNZ8C6jcXUWm31mtlJd QyXSmWAfumKyAplsYJO5PmwTt5rg/ht448NeEfhD4eGuavBaSSeeVhw0khBu JsNsQFtvykbsYyMZzVP4YXc2maX8RPDC3Mh0/QbiZbOWaUh41PmqctvjCj90 G4aPBZjuXOR0HwU0nTW+Elg7afaF79J0vGMK5uFE0qgScfOApIwc8HFAHoGl arY65pdvqemXMdzZ3Cb4pU6MP5gg5BB5BBBwRWP/AMJ74bF7bWj38kcl26pa NLazIl0S6IPJcoFlBMiHKEjB3fdya8v8A6KuoaX8UvBenzyQwR3s0NpbksiQ lvMRCZVJdgfLUMpBGE/i3sKuaT8QbjSZdI8IfEfw1/Y6p5Qh1FGCWzywsjxE BAEVQRHkqxUHghVJCgHtFRzzw2tvLcXEscMESF5JJGCqigZJJPAAHOakrl/i Jb6Fd+BNSg8S3s9lpDeV9ongBLpiVCuAFbq20dD1/GgCNfiV4S32Sz6nJZpf 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 JookRmUsiyqhLO67lHlBmX5iMMoB6DxV4G0Xxd4ai0G+ikt7OB0e3+yERmAo Co2jBXG0lcEEYPHIBHF/GU2Gqad4NEU/2prvW7cwQ280b/aImByyI58qTqgD OCo34JAY5APSLXWrK706e/3T21rBuMr31tJa7AoyWIlVTtA/i6cHng1np410 F7y1tjdTx/bJRDbTy2c0cE7kEqI5mQRvuAO3DHdxjORXD/GvU4hL4R8PXUM8 lhqmqo14IWfMkMbIGj2INz7vMBAHOUGATjHUfFLRrPW/hrrsV4mfs1pJeQuA NySRKXUgkHGcFTjnazDIzQB0Gs65pfh7Tnv9Xv4LK1XI3zPjcQCdqjqzYBwo yTjgVn/8Jt4d/wCEv/4RT+0P+J3/AM+vkyf88/M+/t2/c56+3WvHPE503xD+ zhYeI9Wjjl1xEjgt726dTcSMk5QqHAUuCokbac8ZJ3MC1ex6R4a0aPw9pNtH p0Ea2toY7eSO3e3khEiYkKbj5sTNk5+bfk8knmgCOfx74btreW7e/kNjGhdr +O1me1IA7TqhjY5+XAYkt8o+birniTxTo3hHTo7/AFy8+yWskohV/KeTLkEg YQE9FP5V4/Y+ItR8BeHI/Bfj/QZ7TShmC113S0UohLkxyDAwJFKtIG/1nyqx Qtlj7ZNBpuu6WEnitNQ0+5RXCuqyxSrwynnIYdCD9DQBYgnhureK4t5Y5oJU DxyRsGV1IyCCOCCOc1JRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABXmc3gbxbc3Hi7T7nXo7nR9ef8A0eaa6nMlghLsUSEYBHzB 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 AeR6B8P/AIkaci6Jc+PI4fDsCGGI2sIa6aLdgKGdMxHaTgh22EAAEAY6T4je B7jxV4SsdK0SSxs5tPu4bi2inhBgIRWUIVwQFAbptIO3GMHI7iigDi9f8E3P jfwU2j+Kru0+3lxPFPp0LxpbyhcDh3JkAJcHO3IPRTg1Xk0bxtrvhqHw/wCI X0ZYp08nUdQsrqbzZYsHPlxhECuflySxT72UIOyu8ooA4Px14S1XWvBD+EPD 9rpsGnm3ghjmur2RWiETqQoQRtuG1FGS+eTxxz0mjWupv4eSx1yKCK4EQgZr G+mk3rsALiRwsisTnuzDg7iea2KKAPO5/Cvi/VfBEvhDVr3TZ45EMLa1I7TT vGH3Ixt2jC79oVc+ZkH5wxYc7Gt6L4jsfBVjongm/tLW7tUht1udQG4iFFxk YQgudqjlcYLdDjHWUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUVTGq2Lay+ji5j/tBLdbo254bymYqHHqNykHHT jOMjNygAooooAKKKKACiiigAooooAKKKKACiisPSPFVjrXiDW9GtobtLjR3i S4aaLy1YyAkbM8kfKeSADwRkEGgDcooooAKKKKACiiigAorn9U8a6DpF5d2t 1dTtNZRLNdi2s5rgWyEEgyNGjBMhSfmI456VuQTw3VvFcW8sc0EqB45I2DK6 kZBBHBBHOaAJKKKr317Fp9nJdTJO8aYyIIHmc5IHCICx69hx16UAWKK5Oz+J HhnULi6t7KbUrme0fZcxw6Rdu0LZIw4EWVOVIwfQ+lWF8daEdUstMdtShvL5 yltFPpN1EZSMbsbowMAHJPQDk4FAHSUVh3/iqx07xZpHhyaG7a81RJXhkWL9 0ojUsdznAzgHhckcZwCCdygAooooAKKKKACiiigAooooAKKKKACisPX/ABdo /hdGl1iS7ggVA7TrYzyxIC20bpEQqDnjBOeR6ijQPF2j+KEWXR5LueBkLrO1 jPFE4DbTtkdApOeMA54PoaANyiisvX/EekeFtLbUtavo7S0DhN7AsWY9AqqC WPU4APAJ6A0AalFY/hbxJZ+LvDlprlhHPHa3W/Yk6gONrshyASOqnvWxQAUU UUAFFFU59VsbXVLPTJ7mOO8vUke2ibgyiPbv29iQGBx1xk9AcAFyiiigAork x8RvDknje38I2tzJdapI8qSeSmY4GRC5DsSBnAIwu7BBBxXWUAFFFFABRWH4 t8VWPgzw/LrOow3ctvG6oVtYt7ZY4GegUe7EDoOpAO5QAUUUUAFFFFABRWHf +L9D07VP7Lku5J9QCF3tLK3lupY1G3l0iVig+dcFgM54qxpviTRdXuGtbDVL Se7RC8lqsoE8QBAO+M/OhBIBDAEHg4NAGpRRRQAUUUUAFFFFABRRRQAUUUUA FFFYfiHxVY+GrjSILyG7kfVb1LGAwxblV3OAXY4Cj2zk84BwcAG5RRRQAUVy et/Ebw5oXiWx8Oz3Mk+rXlxDALa3TcYvNOFZySAo6cZ3YYHBBzXWUAFFFZ+s a3p2g2aXWpXHkxySpBGFRpHlkY4VERQWdj6KCeCegNAGhRWXpHiHTNde7isJ 5DPaOqXEE8EkEsRZdy7o5FVgCDkHGDzjoa1KACiiuX1P4heHNG1GKw1Ge+t7 qaUwwI2l3X79wQCIyI8SckfdznIx1FAHUUVy83xD8MWl5bWt/fT6bJc7vJOp WM9oj7RlvnlRV4479wOpFdRQAUVT1TVbHRbBr/UrmO1tEdEeaThVLuEXJ7Dc w5PA6nA5q5QAUVT1LVbHSLdZ7+5jgR3EcYblpXIJCIo5dzg4VQSewNZdj410 G/1yPRI7qeDU5IjNHa3lnNbPIgzkqJUXd0PT+6x7HAB0FFFFABRRWHr/AIu0 fwujS6xJdwQKgdp1sZ5YkBbaN0iIVBzxgnPI9RQBuUVh6B4u0fxQiy6PJdzw MhdZ2sZ4onAbadsjoFJzxgHPB9DW5QAUVl6/4j0jwtpbalrV9HaWgcJvYFiz HoFVQSx6nAB4BPQGo/C3iSz8XeHLTXLCOeO1ut+xJ1AcbXZDkAkdVPegDYoo ooAKKKKACiufm8a6DHqNxYRXU97dW2BcJp9nNd+SSWG1zCjBGyrfKcHjpRp/ jjw1ql5b2Vpq8D308skK2bBknV0Dlw8TAOmAjfeA7eoyAdBRXJ6R8SPC+v8A iX+wdHvpL67CSs7wQO0SbCAcvjGDnhhlTjrkqG6ygAooooAKKKw/Fviqx8Ge H5dZ1GG7lt43VCtrFvbLHAz0Cj3YgdB1IBANyiiigAooooAKKKKACiubtvHv hu8uLaKG/kKXVwbW2uWtZlt55QWGxJygjYkqwGGOSMDNdJQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABU c88Nrby3FxLHDBEheSSRgqooGSSTwABzmpK4v4hm91G30zwxpsccs+rXGbmK R5YlaziG+YGWMExhj5cWSDnzcY5yADzCK/1Pw7418L/Ee/MkUHit3g1CKZo/ KtYHZfIzMFwAIvKfkBj5LZPJC/QdeX/E7QfE/i7wNe2U+haUJLf/AEuBrfU5 ppA6AkhIxbrvZlLKAT1b1Arc+FXihfFnw+067aSR7u2QWd2ZHZ2MsYALFiBu LKVfv97GSQaANS58WQDUWsdK06+1qaPeLhtP8ox27KQDG8kjogkyfuAlgBkg DBMmgeLtF8SeGl1+wvYxYBC0zTMENuVGWWTnClRyecYwQSCCeH+A2tw6z4O1 GR/L/tQ6nNPfsJAWnkkwwlKDAQEfKABg+WSO9HxBg0jwd8MPF2neGoo7CeRI rm5hjUlQtzKIWIDZVQyo67VxtxwBxQB0mofESw06zuNTm0rVTolvLHG+rLFG ICHKASIC4kkjy4+dEYHkruFdBfa5penaHJrd1fwR6YkQmN0H3IUONpUjO7OR jGc5AGc1j6Fb6F4s+GumW32GCTRrvT4o/sfmmVYlCgeXv6lkIxu4YMueCK8/ +JsulxweALGBseGrXW1tbiOaDNsogcQlZJJDkbQsq4OQ43kn5RkA7y8+IGm6 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 ycAFj6KrMcAEgA8nvtQstL/aOkubrUYCg0QKYxdSK6OWAWJYwW82RuGEQC53 hgpcZbsPC3xG0vxVrl7okdhqum6naRCaS11K28pyhxzgE4xuTrjO4EZ5xzd7 JDP+0vpykxq8GhFQJwELsXkP7rch3na38BXgP83yshk1ZbyL9o7QJYIvMgm0 SSKcpIcxKrStuZVbhSxjUFwVJPHzKCoB2F94sgg1yTRbDTr7Vr+GITXMdj5W LZTjYJGkdFDNyQuSxAJxjBNfw14/0LxRZ6hPbyT2UmmZ/tCC/iML2mC4/eE/ KPuMTgnGOcHisOzvbHUPiR4hj8KaZaLrESRxatrd03nRxkKuyKONXBYnaysA YwpjydxABy/hnaXFv8UPiEJ7++uGjltkY3RBaUkOQ7ExoRgDChQECtgbwFag DcT4veFJn1xbWa7uxpCb5GtYDKJ1CsWaPbk7FK4MjbUBZfmwwJr3Xxq8IWfh ix1ueW7U3yO9vYiJWuGVZDGSQG2qMqxBZhkA4yQRWX4EiSX42+P7lF8zy/Ji 82OdZ0UkcqXYeYrZT7i/Iu1lP3Eqx8fo9/wvnby92y7hbOzds5IznY23rjOU 643HOxwDqPHvie98J+F7vU7HTPtkkUTMJJJ444YTkAGTc6s2c8KgJYjbwSDX P+FfFl/pXw107UNR8J6r5MOni6uLqCe1kWVdu9pzmZXLOMyNld25j1PJ6D4j zeR8NfEb/aYLfOnzJvnGVO5Su0cj5mztXn7zDg9DH8MUVPhl4dCJGg+xIcJb NAMkZJ2tySTyX6OSWHDCgCx4M8ZW3jfS31Ow03UrWzD7I5b2NEExGd2za7Eg EYJ4GeBkg4k0PxSda1jUNNOharYyaftE8t2sPlh2VWCBkkbc21g3HQEZIJAP n/hrV/8AhWfi3XfBl6u7SBE+q6KBNmZ1dgBaxIznexbcFXIYsrHB38egeDNJ uNI8ORi/hgi1O8llvr8QxhQJ5nMjLwW3bdwQHJyEFAHQVzfxAtb69+H2v2um pI93LZSKkcf3nGPmUDY2SVyMAZOcAqTuHSV5Pa6snxJ+J2r6FdzbfD2g4WTS 5JFBvrmORh5jKBloVPVS2MiIkfMQADL8NPD4/wDg/pHhLS7KRoC8Nvq11HEL WO0WOQSORncJJXC/w5yX3PsyFr0DTfiT4W1fWW0ewvbufUEcpJbrp1yGiIYK d+Y/kAYgEtgDvivL717v4I/Ei91RbKR/BmtuS620SMY5ArMqL90IVYttGcGM nqV+X1zwnpn2bTm1S6msbvVtV23N5fWS4jm4/dqhycxom1VPcDceWbIB0FFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAVxdl4T8RweNZPEl14j024eW3jtHtxo2wJCrbisb+cXUkljklhluQ dqgdpRQBXvkvJLORbCeCC6ONkk8JlReRnKhlJ4z/ABD156V5/wCCPhvrvgjU bmW28WQXNjeS+bc2LaUI492RlowkoEbY+XgbcYyp2jHpFFAHlevfBdbrxLda 94b8Ual4fvL13e78gs4csQx2kOjKCwLEEsMkYwABXaaV4P07TPD17o0s99qM N/5n22e/uWkmuN6BDufjHyBVGMYCjvzXQUUAeR6b8EJtGv2j0vx34gsdFZy7 WVrKYpC2wDJkUhc5A58voAPeu81jwXoWueEk8M3dp/xLYokitwrEvBsXajIx yQwHc5zyDkEg9BRQBxcHg3Wrrw/FoPiHxVJqOnqgSZ4LU29xdID/AKuWXzGy hX5W2hWYdW5bd1E+lWNzo0ujvbRjT5Lc2rW8fyKIiu3YNuNo28cYx2q5RQB5 /wCGfhve6BANIuPFE9/4Yj8wRaS1nHHkM5fbLKPmkXk7l+UNnBG3Kk8I/Dm/ 8E6Ottpniee4uuVP2+OSW0jQszERW6yqEYkrlizdDjG416BRQBw/g7wb4g8G +HP7EtvEljdW8W42rT6UwMRZwxB2zDcvL8cHLZzgbaPhx4CvPh/p1xpv9swX 9jNK1xj7EYpBIQi/e8xhtwnTbnJ69q7iigDg/Bvw/wBT8F29zZ2fi27uNPDy PY2U9rG0cJYN/rD99wCVbCNGCQx/iNHhvwNrXh3xBrusJr2mzS6y/mzx/wBk GNUdQ+wqFmHG58tnJbHLAktXeUUAcHoXgbWtD8Y6nr8OvaaE1V42vrKLSDHG 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 jxHOtrqe6Q2dzbib97htrSSs291Vnc4BVjkZY4JPoFFAHB6V4G1rTfHl/wCK 317TZZ9RSOK6hGkFRsQKMRuZiyEhPUjPJU4GLHxD8E33jzS10pdXtLGw3pKw bTvPlLru5VzIAowR0XPBG7DEV2lFAGXc6VNqvhq60nWLmOV7y3lt55rSIwja 4K5VWZ8EKe5PIz7Vz/hTw+3gDw+Br3i2S9tLNPJgluyttBbRErhTljuO7ABd jtGFUKCd3aVl+I9AsfFPh+80XUlkNpdIFfy22spBDKwPqGAPORxyCOKAOP8A F+l6D428Y+ENPmSO9EKS6r5sMqSL9nHlgK6E4aKVinzAMT5ZAGGZl9Erm/Bn gbRfAulvY6PFITK++a4nIaWY843EADABwAAAOT1JJ6SgArzfVvhVK3jSXxX4 X8ST6BqVxu+0hLRJopMhQcJ8o5ILHduyx3cEV6RRQBx7fDvS9U06SHxVNP4i upthe4vDs8sgKCIFj2iFSVyQvLfxFq5fRvgn/Z10lveeLtVvvD0Molh0ZuIT iUSKsoLMjrkHcAi5Jzx0r1iigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACuf/AOE78H/9DXof/gxh/wDi q6CvG/i/pMOgeJfDfxBt9PjZLK9RdVeOESO8eV2MVI2ZADKHJBBaMA8LtAPY IJ4bq3iuLeWOaCVA8ckbBldSMggjggjnNY8HjTwrdXEVvb+JdGmnlcJHHHfx MzsTgAANkknjFbEE8N1bxXFvLHNBKgeOSNgyupGQQRwQRzmuP8F2ttqus654 zVLR31G4aztJYNj/AOjW7GINvCAku6Mx5YbRGM/KKAO0orL1LxDpmlXC2txP I92yCQWtrBJcT7MkbzHGrOEyMbsYzgZyRUmja5pfiHTkv9Iv4L21bA3wvnaS AdrDqrYIypwRnkUAV7XxVoV94hn0Cz1OC41OCJppoISX8tVfYwZh8oYMQCpO 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 EEdxuUng1c8BaIfDngyy0Y+WfsbzRb0jkjEmJX+fbJyC33jglck7SV20AdJR XP33jXQdNlkW7up4oY5RDJdmzmNsjlgmGnCeWMMdpy3ykEHBBrQ1nXNL8Pac 9/q9/BZWq5G+Z8biATtUdWbAOFGSccCgDQork5PiV4Sj1SHS11OSfUJU3C0t rOeaVcZyrIiEo42nKMAy45Aq54b8a6D4u8w6HdT3cceQ032OaOMEYyu90C7v mB25zg5xigDoKy9N8R6Rq+qalpun30dxd6Y6peIgJETNnA3YwT8rAgE4IIOD VeHxdo8/iU+HkkuxqgRpPJexnQbFJBfeyBdmRgNnBOACcio9A1vwtrWsas2g XFjdX0fk/b7i0QHzMqfLzKBiTADDgnbgjigDoKKz9T1qy0jyhdNO0kuSkNtb SXEjAYy2yNWbaMqC2MAsoJyRk0fW9O16ze602486OOV4JAyNG8UinDI6MAyM PRgDyD0IoA0KK5vWvHvhvw/cXUGo38iPZpG90YrWaZbcSHCeY0aMELdgxBOR 6itz7fZ/2d/aP2uD7D5Xn/afMHl+Xjdv3dNuOc9MUAWKK5+08a6DeaxDpC3U 8OpT8xWt3ZzW8jja7bgsiKSuI3+boCAM5IB6CgAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKy/EmiQ+I/DWpaNP5YS8t3iDvGJBGxHyvtPUq2GHI5A5 FalFAHhfgvxzfDwHfeD9Xlks9cs72Hw9bTQjBiMxMSEMhwXiCStn5QRGo3bj mvbLCxt9M062sLOPy7W1iSGFNxO1FACjJ5OAB1rl4fAtvF8VbnxniD97p6wB CpdzPnDSgnhMRqiDb1y2cfxdhQB5X8EZzrFl4n8RXUsdxqF/rDpLcxNJseNE UxhA/IQeY20EAgEA9ABTP/FMftKwWem/Ja+ItPM97D0TzFEp3qq4G7MOctk/ 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 7jaLovgN/FniCwnkivNRt5NRmgkIlAMKszOkeVZhukyw3gZYAFQRXN+J/hbr sfjSbxd4F12DStSuuLiCaMCJsjDtkKwbcQrFWU/Nlt2cCuw8J+HtZ03df+Jt c/tnV5IliDrbpFHbJ1ZIwoGct95uNwSPIG0UAcn8NxrOvfDezFtrfh+4tpUk S7hm06e6YyOxaQTM9wpZ2LlmBUD5+MqQTXPw1vtO+E2qeFdL1qPWdQtb1bq2 SX93HG48uTyHjLMhBGWCP8pMgJA+9VN/hX418La5dSfDzxNBYaRcZcWd7Izi JmxuAUo6t91cOcNjg5xk9xqHhDUX8CXGlWWsbtdkljvTqlzCuZbpJUlVmUDA XKKgGG2oqjDBcEA5vRfiHDrHifSNB8ZaVd+HvEVpcNNbK5H2e6k8t4flY84Y yS7QMglVw7E4PqlcPqvhPVPFuuaDf64tjp0Oi3Yu44rKX7S9w4wQDI8SGNQV GQN2/POCqmu4oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisvUvEu g6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXpviXQdZuGt9L1vTb6d ULtHa3SSsFyBkhSTjJAz7itSgAoqvfX9nplnJeX93BaWseN808gjRckAZY8D JIH41X0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcigDQooooAKKKx77xZ 4b0y8ks7/wAQaVaXUeN8M97HG65AIypORkEH8aANiiuf/wCE78H/APQ16H/4 MYf/AIqtTTdW03WbdrjS9QtL6BXKNJazLKobAOCVJGcEHHuKALlFRzzw2tvL cXEscMESF5JJGCqigZJJPAAHOaz9D8R6R4lt7m40a+jvILe4a2kkjB2+YoBI BIwwwwO4ZBzwTQBqVT1bTYdZ0a+0u4aRYL23kt5GjIDBXUqSMgjOD6GrlFAH n/gD4W2/gvZLearPrF1b71smmUpHZI/LiKMswVmOdzA8jjjnd6BRRQAUUUUA FFRzzw2tvLcXEscMESF5JJGCqigZJJPAAHOap6JreneI9Hg1bSbj7RYz7vLl 2Mm7axU8MARyCORQBoUUUUAFFFFAFO80qx1C4tZ7y2juHtX8yAS/Msb5BDhT xvGOGxlcnBG45uUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8aALFFZ+i a3p3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkVoUAFFRzzw2tvLcXEscMESF5 JJGCqigZJJPAAHOaw/8AhO/B/wD0Neh/+DGH/wCKoA6Cio4J4bq3iuLeWOaC VA8ckbBldSMggjggjnNSUAFFY83irQoPEdt4efU4Dq9xu2WiEu42pvO7Gdny 8jdjPbNbFABRRRQAUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8ax/wDh O/B//Q16H/4MYf8A4qgDoKKx7HxZ4b1O8js7DxBpV3dSZ2QwXscjtgEnCg5O ACfwrYoAKKKKACiisvVvEekaFcafb6lfRwT6jcLbWkZBZpZCQAAACcZIBY8D IyRkUAalFFFABRRRQAUUUUAFFFZereI9I0K40+31K+jgn1G4W2tIyCzSyEgA AAE4yQCx4GRkjIoA1KKKKACiiigAooooA4PT/A2tWnxBm8Xza9pslxc262s8 EekGNTEChOCJid/yAbm3Y6YwAB3lZ+p67o+ieV/a2q2Nh52fL+13CRb8Yzjc RnGR09RVex8WeG9TvI7Ow8QaVd3UmdkMF7HI7YBJwoOTgAn8KANiiio554bW 3luLiWOGCJC8kkjBVRQMkkngADnNAElFZeh+I9I8S29zcaNfR3kFvcNbSSRg 7fMUAkAkYYYYHcMg54JrUoA4f4ifDv8A4Tv+yZ4NZn0q+0yVpIJ4o9+N20ng MpDAopDA8YPByCOk0DQLHw3pa2FgshBcyzTzNvluJW5aWR+rOx6n6AYAAGpR QAUVj33izw3pl5JZ3/iDSrS6jxvhnvY43XIBGVJyMgg/jVf/AITvwf8A9DXo f/gxh/8AiqAOgorDPjTwqtulw3iXRhA7siSG/i2sygFgDuwSAykjtuHrWhpu rabrNu1xpeoWl9ArlGktZllUNgHBKkjOCDj3FAFyiise+8WeG9MvJLO/8QaV aXUeN8M97HG65AIypORkEH8aANiiise+8WeG9MvJLO/8QaVaXUeN8M97HG65 AIypORkEH8aANis+10TTrPUZ9Rit919NuDXMztLIFJ3GNWckrHkZCLhQegFW Ib+zuPs/kXcEv2mIzwbJA3mxjbl1x95fnXkcfMPUVYoAKK5//hO/B/8A0Neh /wDgxh/+KroKACiiigAorn/+E78H/wDQ16H/AODGH/4qtixv7PU7OO8sLuC7 tZM7JoJBIjYJBww4OCCPwoAsUUVj6r4q0LRNRstO1HU4Ib6+ljht7bJaR2cl VO0ZIUkEbjhc96ANiiiigAooooAKKjnnhtbeW4uJY4YIkLySSMFVFAySSeAA Oc1jweNPCt1cRW9v4l0aaeVwkccd/EzOxOAAA2SSeMUAblFRxzwzPMkUsbvC +yVVYEo20NhvQ7WU4PYg96koAKKKKACiiigAooooAKKKjnnhtbeW4uJY4YIk LySSMFVFAySSeAAOc0ASUVz/APwnfg//AKGvQ/8AwYw//FVuQTw3VvFcW8sc 0EqB45I2DK6kZBBHBBHOaAJKKKx5vFWhQeI7bw8+pwHV7jdstEJdxtTed2M7 Pl5G7Ge2aANiiiigAooqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH40AWK K5//AITvwf8A9DXof/gxh/8Aiq6CgAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACisvUvEug6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NalAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuP sTnD2zTjIGQdq8gg8h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEH kP0QgMeFNAFP4P232X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvD unSyLcahiOKUQT3EcMkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut 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 4o+Onh/XPD/n6ha6ZaTQahfw4azTMb+WiSdGkzN8wBPDL6NiP4q6bpsHjXwH qEVnaR6hca7AstwqKssqhox8x3AsBhRyjY4+ZM4cA9E1jxX4f8PypFq+tWNl M+wrFNOquQzbQ23Oduc5bGBgkkAEjP8A+Fi+Ef8AhKP+Eb/tuD+1vN8jydr7 fMx9zfjZuzxjOd3y9eK4f40aLYNeeF7u3tZ4dTvNbgie40+COOeUYwMTlRtk GFCBnA6nB2ZWx8braDTvCXh+505YLK/sNVt00xxFEqQsFbClnIWOP5AT1X5F BGOQAemarqtjoel3Gp6ncx21nbpvllfoo/mSTgADkkgDJNU9M8UaTq+oy6db TTx30UQna2u7SW2kMZJUOFlVSy5GMjIBxnqK4vxjqVzP8YPB+iWWox2txHb3 V3GskLzxu7RsgMkYaMYCLLtYOxySCoByZNZ8AX+o+MtD8Wan4msbS602WKMN aWMkHnoZBiElrhgNxdk4HPmEHdwKAO41PWrLSPKF007SS5KQ21tJcSMBjLbI 1ZtoyoLYwCygnJGY9A8R6R4p0tdS0W+ju7QuU3qCpVh1DKwBU9DggcEHoRXn fhnV7/Wvih44TS9dsYLqGWG3+zXdrJcqIoQyZi/exEYdn3jaVDMMM27J1NI+ HcNl411fUtY1PTb5Nbt8z6OlgIoJWRoz53ltI+4huSSD80pORnkA3Lj4i+Eb bTrzUZNbgNjZypBJcxq8kbSONwRGUESNjkhNxUdcUaj4p8HT/wBhDUbyxmk1 CW3n0uGaLfIXkz5UqoQWTuA5AweMg1wfwY0HQDceNXtLS0uLQ6nNYwuYWlVr TJwglYlHQgjKjngFiwZMHxP0HStP8a/Du8sbS0tJzrEMDLBDHGZEVogucEMQ gUKMKQAcEr8oYA9M1jxX4f8AD8qRavrVjZTPsKxTTqrkM20NtznbnOWxgYJJ ABIz/wDhYvhH/hKP+Eb/ALbg/tbzfI8na+3zMfc342bs8Yznd8vXiuH+NGi2 DXnhe7t7WeHU7zW4InuNPgjjnlGMDE5UbZBhQgZwOpwdmVk+O1lY2ngrRJIJ Y9Mns9ThisbiGHAthtbgFPmjQBQ3yBjmNQF7gA9Q1XVbHQ9LuNT1O5jtrO3T fLK/RR/MknAAHJJAGSaxx4+8LrcPb3erR6dOiK/l6pG9izKxIBUTqhYZUjIz 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 5pZYd62tth90oyyhnG0sF5B2EEcrkA4/4f6/plo/jtfEjR6h4ln1OaK70+2W S4e8iRSqxQxNkugPmgD+Fcb8KAR2Hg7U9K8F+DtK8P8AiLxPpsWrWduouIbu +jWSEt84jILnhVYKD0IUEYGBXn/jXw9c/CXxLpPjfw5Bd3lmqGDVxPO7tO7H mSZ9xOZC2c7dquinBJArvNLtdG+IXi208Yw28FzpmmRNBYTzWjpJPPuDGUFs bo4/upkcOZTxtUkA7yCeG6t4ri3ljmglQPHJGwZXUjIII4II5zUlFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeZzeBvFtzceLtPudejudH15/9 HmmupzJYIS7FEhGAR8wTAkUEKCQwylemUUAZcPhzSLbw0fDsFjHFpJt2tjbI SoMbAhhkHOTk5bOSSTnPNcf4b8NeMvBOl3uhaPJo2paXG7tpUt/PJDLbhssV lVIiJAGOeCpPPIyAvolFAHN6J4Qh0bw1faWuoXbXepPNPfajEwilkuJRh5UA 4jPTaAMDA6nJOH4R8N+MPBmjr4dtpNDvtMgyLS9kaaGaPezO7SRAMr4Z+FDp kLywzkegUUAcnZeCF0/wdqWjwapdpqGpPLc3OqRs0UjXcmCZgqMu0BgvyKQM DBzkk4+t+D/Efjfw1Y6B4ml022iheGW6vbSTz5blkGG2o8KCEtkncpOPu4IY 16JRQB5/4vl8e6V4ms9W0nUdKk8PebbW0mmzoUd3llEXLhGPWRTuBGMfcbB3 U/it4N8VePbKDSdOGjW2nwXAuPOuLmXzZGCFQNqxkKBufu2flPHIr0CTSrGb VIdTmto5byBNkMsnzGEHOdmeEJDEMVwWAAOQBi5QBz/2zxh/0AtD/wDBzN/8 i1T0/wAO6lqGm+JYvExtEn1p3hB0+Vn8m1MQjSMO6g5BMjdNu52YAbiK6yig Dyvwx4J+IfhO3fQNP8TaM+ghGW3uZrJmuLYsGYskYIUne38bsMAHHVTofDf4 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 E5dmYoExuxufbllzuwegapPDvgfxf4c8Y+ItSXXLS/s9TdJ/MudwupWjyY4m IUpGh3FGZVb5QNqoSNvplFAHneieGvFWn/EjWPE9xYeHzBqyQRSKt5K09uqK qnY5hAYELkrhckLyNvMei+F/GFh8UNV8VTrpQsdViihnsotRmPl7BGok5hAd gEbAIX75GRzn0iigDxu7+FHivw54lv8AVfh54jtNOg1F2aazuYgqRDIYKoCO rAEtj5VKjgE5Jr0DSfCjQ6NqFp4g1KTXLvU0aK9upIlg3xFSgiVU+4gUscA/ ed24LGukooA8X0z4Z/EXwtqMtj4Y8aQW/h5pR5a3a+dJFHkk4jaMoGBZvulQ 5wTjoPXNK02HSNLt7CBpHSFMGSUgvK3VncgDc7MSzHuST3q5RQAV5v8AEn4a 3nivVtL8Q6FqEFhrumbfKedCySbZA6ZPIXad5+427dg8V6RRQBxdtoHirX7e S38aajpq2DpJFLp+irLGtyrBceZMzbwB8w2ptznksCVrj7L4WeNPCOqSW3gf xfHZ6DcvG8yX0ayyxt0YqvllGOOcjZngH7oNeyUUAZfhzRV8PeH7PS1nkuHh QmW4kLFp5WJaSQ7iTlnZmxk4zWpRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABXP/wDCd+D/APoa9D/8GMP/AMVXQV434/nhj+PXgVVljScJ8+GC NtZmCgt+7JBO4AeY2eR5ZztlAPRP+E78H/8AQ16H/wCDGH/4qrmv+I9I8LaW 2pa1fR2loHCb2BYsx6BVUEsepwAeAT0BqTWbHS9W059J1eOCa1v8w+RM2PNO C2F77gFLDHI25GMZrH8Qap4a8OeF4LXxhe2L2piSNo7tGl+0lCoJEbl3fDFT yXI4JJ60AdRRWXrfiTRfDlv5+s6paWKFHdBNKFaQKMtsXq5GRwoJ5HrWPqPx L8H6Tqlvpmo61Ha3k6RuIpoZFMYf7vmZXERwQSH2kAgnAoA6yiqeq6rY6Hpd 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 orH1PxRpOkajFp1zNPJfSxGdba0tJbmQRghS5WJWKrk4ycAnOOhqPRfGGgeI tLm1HR9SjvoIELypAjNKg+brFjeCdrYG3LY4zQBuUV5foXxYtdY8fa5p5F9H YWUSRQ2g0ueaeSRXYSSkRoWjUZVSrjP3T8p3Ke81fxDpmhPaRX88gnu3ZLeC CCSeWUqu5tscasxAAyTjA4z1FAGpRWP4e8VaF4rszdaHqcF7Gv3whIePJIG5 DhlztOMgZxkcVly/E3wXDpc+pP4gtBaQ3D2xcbiXkXbuEagZkA3odyAjBznF AGxq3iPSNCuNPt9Svo4J9RuFtrSMgs0shIAAABOMkAseBkZIyK1K5fUfFPg6 f+whqN5YzSahLbz6XDNFvkLyZ8qVUILJ3AcgYPGQa1NR8SaLpN7b2N/qlpBe XDxpDbNKPNkLvsXan3iC3GcYGCTgA0AalFcv/wALF8I/8JR/wjf9twf2t5vk eTtfb5mPub8bN2eMZzu+XrxW5quq2Oh6XcanqdzHbWdum+WV+ij+ZJOAAOSS AMk0AXKK5sePvC63D293q0enToiv5eqRvYsysSAVE6oWGVIyM4xW5Y39nqdn HeWF3Bd2smdk0EgkRsEg4YcHBBH4UAWKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACvG/iREb340+B7IXF2gZH3C0 uZIpFUk7iDGzMoIBBIRMgEGTAJi9kryvxN4P8beIvGvh/wAQrb+H7dNHcMLZ 7+aYS/NlvvQbEJAADBNwODk7V2gHWL4LtbTxHpWsWd3qpktPOjkSfVp5keOR OcrIX3fMqHaCg43EkqBXF/tBafZHwGdRMFot8LiKEXDQRNK0eWPlq7EOoz83 yZPB42liPWIDM1vE1xHHHOUBkSNy6q2OQGIBIz3wM+grh/ij4Y8Q+M/D50LS BpsVvI6SS3F1eTI2VJO0RohDD7pyxI6/LkKwAMf486NbXHw8vNVWytGvLd4V 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 9Htl0rT90qzXTf2jMyttLgR4EI3Lyj5OMMMY4DGTxmfEt3f+FLfT49Nj1pri eZ7KZ7iezMcaZEkjqEBCN5JG5MiRk2kYO4Ax/Gs+m+NPGvgpfDksmr3el6nH c3M1iyy2ttblgzGWQcBz5PyrnJAbjJXPrlef/wDF3/8AqRv/ACbrsNC1P+2/ D2mat5Pk/brSK58rdu2b0Dbc4GcZxnAoA0KKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisvUvEug6NcLb6prem2 M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXpviXQdZuGt9L1vTb6dULtHa3SSsFyB khSTjJAz7itSgAoqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH41X0TW9O8 R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcigDQooooAKKKx77xZ4b0y8ks7/wAQ aVaXUeN8M97HG65AIypORkEH8aANiis/TNd0fW/N/snVbG/8nHmfZLhJdmc4 ztJxnB6+hrP/AOE78H/9DXof/gxh/wDiqAOgoqOCeG6t4ri3ljmglQPHJGwZ XUjIII4II5zUlABRRRQAUUUUAFFFFABRRRQAUVXvr+z0yzkvL+7gtLWPG+ae QRouSAMseBkkD8ax/wDhO/B//Q16H/4MYf8A4qgDoKKz9M13R9b83+ydVsb/ AMnHmfZLhJdmc4ztJxnB6+hrQoAKKKKACiiigAooooAKKKKACiiigAooooAK KKKAKdnpVjYXF1c21tGlxdvvuJ+skpySNznkhckKCcKOBgACrlFc/wD8J34P /wChr0P/AMGMP/xVAHQUVXsb+z1OzjvLC7gu7WTOyaCQSI2CQcMODggj8KsU AFFY+q+KtC0TUbLTtR1OCG+vpY4be2yWkdnJVTtGSFJBG44XPetigAooooAK KK5//hO/B/8A0Neh/wDgxh/+KoA6CisebxZ4bt7O2vJvEGlR2t1u+zzPexhJ dpw21icNg8HHSq//AAnfg/8A6GvQ/wDwYw//ABVAHQUVj2Pizw3qd5HZ2HiD Sru6kzshgvY5HbAJOFBycAE/hWxQAUUVlzeJdBttUGlz63psWoF1QWj3SLKW bG0bCc5ORgY5yKANSiiigAoqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH4 1j/8J34P/wChr0P/AMGMP/xVAHQUVz//AAnfg/8A6GvQ/wDwYw//ABVdBQAU UVl23iTRb3WZNHtNUtLjUI0keW3hlDtEEZVbfjO0hmAwcHr6HABqUUUUAFFF FABRRRQAUUUUAFFFFABRWXqXiXQdGuFt9U1vTbGdkDrHdXSRMVyRkBiDjIIz 7GjTfEug6zcNb6Xrem306oXaO1uklYLkDJCknGSBn3FAGpRRVe+v7PTLOS8v 7uC0tY8b5p5BGi5IAyx4GSQPxoAsUVn6JreneI9Hg1bSbj7RYz7vLl2Mm7ax U8MARyCORWhQAUUUUAU49KsYtUm1NbaM38qeW1w3zOE4+RSeVTKg7RgZycZJ JuVl6l4l0HRrhbfVNb02xnZA6x3V0kTFckZAYg4yCM+xqTTNd0fW/N/snVbG /wDJx5n2S4SXZnOM7ScZwevoaANCiiigAooooAK5vxt4cvvFnh+fRrbUbSyt 7pClw01j9pYjKkbMuoUjB5IJ5BG0gGukooAx/C+k3mg+HrPSby9gvPscSW8M sNsYf3aIqruBd8twSSCBz0FbFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA /Gq+ia3p3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFYc/jTwra3Etvc eJdGhnicpJHJfxKyMDgggtkEHjFAG5RVPTdW03WbdrjS9QtL6BXKNJazLKob AOCVJGcEHHuKuUAFFZ+s65pfh7Tnv9Xv4LK1XI3zPjcQCdqjqzYBwoyTjgVY sL631PTra/s5PMtbqJJoX2kbkYAqcHkZBHWgCxXmdt8G7GPxrqmtXWr3dzpe o3BuptHYbYpZd28eaQcSIrFiFK+mScHd6ZRQAUUVhz+NPCtrcS29x4l0aGeJ ykkcl/ErIwOCCC2QQeMUAblFV7G/s9Ts47ywu4Lu1kzsmgkEiNgkHDDg4II/ CrFABRRVPVdVsdD0u41PU7mO2s7dN8sr9FH8yScAAckkAZJoAuUVXsL631PT ra/s5PMtbqJJoX2kbkYAqcHkZBHWrFABRRRQAUUUUAFFFFABRRVPUtW03Rrd bjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaALlFV7G/s9Ts47ywu4Lu1kzsmgkEi NgkHDDg4II/CrFABXH+K/An9v6tb65pmt32ia7bRCCO7tjuR4xIH2SRkgOuc 8ZAOfm3AAV2Fc/8A8J34P/6GvQ//AAYw/wDxVAGPa+C/EV359r4p8az6zpM8 TRy2UNhHZeZn+9JGd+3GcqCM9CSMg9xXP/8ACd+D/wDoa9D/APBjD/8AFVqa bq2m6zbtcaXqFpfQK5RpLWZZVDYBwSpIzgg49xQBcooooAKKKKACiisvVvEe kaFcafb6lfRwT6jcLbWkZBZpZCQAAACcZIBY8DIyRkUAalFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuPsTnD2zTjI GQdq8gg8h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEHkP0QgMeFN AFP4P232X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvDunSyLcahi OKUQT3EcMkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut3YTrZOI2c FpFaWYqHXBQgMX3Kf4QVPz4+buPh/pVjD8LdAsFto2tJ9MjeWGT51cypvkyG zkMztx05x04oAueKLPS9f8G3jz2UGr2ptHuLdVg+07z5bbWiAZSzEH5SrKTn hhnNef8Aw28ceGvCPwh8PDXNXgtJJPPKw4aSQg3E2G2IC235SN2MZGM5qn8M C1tpfxE8JJJd3VnpFxNDaxzlZRsbzV2hBE5ySmSNrgluI85DdB8FNJ01vhJY O2n2he/SdLxjCubhRNKoEnHzgKSMHPBxQB6BpWq2OuaXb6nplzHc2dwm+KVO jD+YIOQQeQQQcEVl3/jXQdM+0teXU8cFrvE119jmNupXO5fOCeWWBBXaGzv+ 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 lXaMksAB3xUmgeI9I8U6WupaLfR3doXKb1BUqw6hlYAqehwQOCD0Irn/AAAT F8IdGY3N2uNMDebFbyNKnyk/IkgcsR/DgFWwNq7Sq1h/Bewg1P4OWNnqdp9r s5JZsQ3kcUkTKJSRtUdVDAn5/m3BsfLtoA6S5+Jvgu0t7m4l8QWnkW7hGkj3 OsjEKcRlQRKQHUsE3bdw3YqTUfFPg6f+whqN5YzSahLbz6XDNFvkLyZ8qVUI LJ3AcgYPGQa4P4MaPpDXHjWGKCN7NNTmtIbO5Ys0VuSQVaGRdyBwqhixJfyg CAY+ZPidouj6d4t+H09lptja3T63bxF4Ykjdo0aNVXhgSqgKB8jAYA3J0cA9 Q1PW9O0fylvbjbNNnybeNGlmmxjdsiQF3wCCdoOBycCq+ieKdG8RS3MWl3nn zWuBcRNE8bwks67XVgCrZjf5SM8A4wQTyfxEsvFFn4g0LxX4csY9WGlpOlzp zhN3luAWaIldwchdvykn7oCkFwTwb4q8OfEY6pDqGjR22tKiW+o6Vfjzf3cU jlDtYAMFZ2z8oKscH+EkA3Lj4jeDrbTry/fxFYva2cqQzPDJ5uHcZUKFyXyM /dz91/7rYkh8f+FJ/DR8QprloNLDtH5zkod6gkpsYBt+BkLjJGCAciuH+Cem wWNx4tgXTo7d7LWJ7eIrNLKsSZAaNGdQCBsTLA7mwu8DamTwBptpB8ZfHyzW ciXEdxFcQAo+xPMDln+86B2EnBJDYd9qoC6AA9A8NeMNA8YW88+g6lHeJA4S UBGRkJGRlWAODzg4wcH0NbleT+E7VLf9oTxuLe38uH7JAzGO0XZvdImJMnVW Y7m2j7/zMeUFesUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXmc3gbxbc3 Hi7T7nXo7nR9ef8A0eaa6nMlghLsUSEYBHzBMCRQQoJDDKV6ZRQBlw+HNItv DR8OwWMcWkm3a2NshKgxsCGGQc5OTls5JJOc81x/hvw14y8E6Xe6Fo8mjalp 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 gAghg1dZfeLINJ0OTU9X06+sG80QQWcnlSz3UjY2JEsTuGZjkAZB4JOAM0Ad BXJ+M/iN4c8Coi6vcyNdypvis7dN8rruAzjICjryxGdrYyRio5fiJYWHiGx0 TWtK1XR7rUMCze7ijeOdy4QIHhdwGyw64wMEkZGeX/aG8r/hWsfmeRu/tCLy /N37t21/ubeN2M/f+Xbu/i20AesUUUUARzzw2tvLcXEscMESF5JJGCqigZJJ PAAHOaw9L8a6Dq95aWtrdTrNexNNaC5s5rcXKAAkxtIih8BgflJ456Vzfxvs r69+FepixlkAheKa4iSHzDNErjI9VCnDlh2jOeCapxXlv4/0nwle6fpU9roG lSx6pcSwqQIpYIyFtYYwm6XDtglVC4QhSWOAAeoUVy/h74h+GPFd4bXQ76e9 kX75SxnCR5BI3OUCrnacZIzjA5rqKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuX+I/m/8ACtfEfk+f u/s+bPkbN23ad2d/G3Gd2Pm252/NiuorzcfCZF1HxSBrGdK8SyiW8t2s1eaM gs/7uRiVHzuTkxkgYwQw3UAc/Ztcaf8AsrsbWxvo5G0+QGLgyFJJW3ycp/qy rM/ThDw2fnr0D4cfY/8AhWvhz7D5Hk/2fDu8jG3zNo8zOP4t+7d33Zzzmug+ wWf9nf2d9kg+w+V5H2byx5fl427NvTbjjHTFcfoPgjWPCX2yz8PeIYI9Gll8 22sNQsXufsmeWVHEyHaSc4OfzLFgDi/hnBe6db/E7SdOiki02yvZ005SspVZ QJFIDx/vWIVIchSXHBHJ56z4Jf8AJIdC/wC3j/0okrpNO8JaRp3hq40FIZJr S7SQXjzSEy3TSDEjyOMFnbPJ47YwAAMPw94I1nwpZnSdI8U/8SQcQQXWnpJP bgks5SVWVSxZmILowHHBAOQDi/APhq21hPiloIt47ezuNTmtYT9gTyoSGkCl G4LFDtYJwEwpBBc4G8V+JvAyado3xM02PUNFNxCsOuWkrMQ8bCVWk/ichlTq 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 T2nxV8S61rOsS2l/pOmXBtdN0wM5iZcyFbmaB8guyPtViB0f5QVBHMaNqWr/ AAW8S6n4Wu1j/sfVHeTRbu5AMQmYqiPNICuEC7fNGMjaCowct2cXwkvdD8Q3 2qeDfF0+hR32TPamxjnjyXLAKpKqqrnCjaSBnnBIrc1P4XeHNc0uS11pbvUr t3d/7SuZs3SFt2ArKAFRdxxGF8sHnaTkkA2NA0q28MaIsc8saT3FwZ7ueV0z LczPk5cIgYlmCL8qkgKMDgVuV5n4U+Ek2h39lcaz4s1LXINOdXsbKYFbeFlR lU+WzOMqGBUrt2kd69MoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACisOfxp4VtbiW3uPEujQzx OUkjkv4lZGBwQQWyCDxitgTwtcPbrLGZ0RXeMMNyqxIUkdQCVYA99p9KAJKK KKACiiigCMQQrcPcLFGJ3RUeQKNzKpJUE9SAWYgdtx9akoooAKKy7rxHpFn4 gsdBnvo11S+R3t7YAszKoJJOBhRhWwWxnBxnBrUoAKKKKACiiigAoqvfX9np lnJeX93BaWseN808gjRckAZY8DJIH41j/wDCd+D/APoa9D/8GMP/AMVQBc1/ w5pHinS203WrGO7tC4fYxKlWHQqykFT1GQRwSOhNcnYfCi30/wCzRxeMfGRt bfYFtf7WKRlFxhMIoIXAx8pGB0Ir0CigCvY2FnplnHZ2FpBaWsedkMEYjRck k4UcDJJP41YrHtfFWhX3iGfQLPU4LjU4ImmmghJfy1V9jBmHyhgxAKk7h6Vs UAFFFFABRVPUtW03RrdbjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaNN1bTdZt2u NL1C0voFco0lrMsqhsA4JUkZwQce4oAuUUVj33izw3pl5JZ3/iDSrS6jxvhn vY43XIBGVJyMgg/jQBsUUUUAFFFFABRRRQAUUVl6b4j0jV9U1LTdPvo7i70x 1S8RASImbOBuxgn5WBAJwQQcGgDUooooAKjjghheZ4oo0eZ98rKoBdtoXLep 2qoyewA7VJRQAUUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8aALFFc// AMJ34P8A+hr0P/wYw/8AxVdBQAUUVj2virQr7xDPoFnqcFxqcETTTQQkv5aq +xgzD5QwYgFSdw9KANiiiigAoorP1PXdH0Tyv7W1WxsPOz5f2u4SLfjGcbiM 4yOnqKANCiqem6tpus27XGl6haX0CuUaS1mWVQ2AcEqSM4IOPcVcoAKKx77x Z4b0y8ks7/xBpVpdR43wz3scbrkAjKk5GQQfxrYoAKKKx/EPirQvClmLrXNT gso2+4HJLyYIB2oMs2NwzgHGcnigDYooooAKKy9D8R6R4lt7m40a+jvILe4a 2kkjB2+YoBIBIwwwwO4ZBzwTUejeKtC8Q3l9a6PqcF9JY+X9oMBLIu8Erhx8 rdD90nGMHBoA2KKy4/EekTeJZvDsV9G+rQ2/2mW2UElI8gZY4wD8y/KTnBBx g5rUoA5fxX4A0LxhLb3V9HPb6la4+zahZymKeHDBhhuhwRxkHGSRgnNU7L4a aZEkkWq6v4g16B3jfyNW1OSWIFG3DMa7VcEgEhww+Ue+e0ooAKKKKACiiigA oorHm8VaFB4jtvDz6nAdXuN2y0Ql3G1N53Yzs+XkbsZ7ZoA2KKKKACo44IYX meKKNHmffKyqAXbaFy3qdqqMnsAO1Yf/AAnfg/8A6GvQ/wDwYw//ABVbFjf2 ep2cd5YXcF3ayZ2TQSCRGwSDhhwcEEfhQBYoorH1XxVoWiajZadqOpwQ319L HDb22S0js5KqdoyQpII3HC570AbFFFFABRRUc88Nrby3FxLHDBEheSSRgqoo GSSTwABzmgCSiuf/AOE78H/9DXof/gxh/wDiq0NM13R9b83+ydVsb/yceZ9k uEl2ZzjO0nGcHr6GgDQooooAKKKKACiiigArh9W+FehajrkutWN3quh6lcbv tM+j3ZgM+7aTuGCOq5OMZJJOTzXQX3izw3pl5JZ3/iDSrS6jxvhnvY43XIBG VJyMgg/jVf8A4Tvwf/0Neh/+DGH/AOKoAr6D4E07RLyK+mv9V1i/g3i3u9Wv GuHgVwoYRg4Vc7eoG7kjOOK6is/TNd0fW/N/snVbG/8AJx5n2S4SXZnOM7Sc Zwevoaj0PxHpHiW3ubjRr6O8gt7hraSSMHb5igEgEjDDDA7hkHPBNAGpRRRQ AUUUUAFFFFABRWfqeu6Ponlf2tqtjYedny/tdwkW/GM43EZxkdPUVXsfFnhv U7yOzsPEGlXd1JnZDBexyO2AScKDk4AJ/CgDYooqOeeG1t5bi4ljhgiQvJJI wVUUDJJJ4AA5zQBJRWXofiPSPEtvc3GjX0d5Bb3DW0kkYO3zFAJAJGGGGB3D IOeCa1KACiiigAorHvvFnhvTLySzv/EGlWl1HjfDPexxuuQCMqTkZBB/Go4P GnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGKANyiiigAqOOCGF5niijR5n3 ysqgF22hct6naqjJ7ADtRPPDa28txcSxwwRIXkkkYKqKBkkk8AAc5rP0PxHp HiW3ubjRr6O8gt7hraSSMHb5igEgEjDDDA7hkHPBNAGpRRWPo3irQvEN5fWu j6nBfSWPl/aDASyLvBK4cfK3Q/dJxjBwaANiisuPxHpE3iWbw7FfRvq0Nv8A aZbZQSUjyBljjAPzL8pOcEHGDmtSgAooooAKKKy9N8S6DrNw1vpet6bfTqhd o7W6SVguQMkKScZIGfcUAalFFFAFeaws7i8trya0gkurXd9nmeMF4tww21jy uRwcdasUUUAFFFFABRRRQAVx/iT4baF4j1iPWvMvtL1lMD+0dMuDBMyhSuCc EHg4zjdgAZwMV2FFAHJ6J4AsdJuPPvNV1nXXV0kgGtXf2lbd1OQ8akAK/wDt YyOxGTnrKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8j8S6nfe M/jBB4Ciku4dBsbc3Grrby+S1wGjztZg2WiPmRIVGCd7egYeuV4P4N8rRP2m vE1ld+RDNfRTeQkG9ldnMc4yWzhigZm6LuyBxgUAe2Q6TpttpZ0uDT7SLTyj IbRIVWIq2dw2AYwcnIxzk1y/h3wlpvgnxL4m1GzhjsNHvbe3uGLSKsUUiGfz Qo/gQKUbngbjjgYHaVXufsdxu0668iX7TE+baXDebGMK/wAp+8vzqD2+YZ60 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 uLS4ik2aBo5NqDMxUSyeWWkC8AEpNsI5ztB7DAB3mk+KdG1u8nsrK8/0635m s54ngnQYU7jFIFfbh1+bGOetSX/iPSNN1Sz0u6voxqF44WC0QGSVs7vm2KCQ nytlyAowckV5n8df+JDF4c8aWH7vV9P1BYEccCWNldyjkYYr8hGMgYdx/FVf x/4a8NSfGHwVEunWInvpZ5dQhW3aTzgMMjSRoRnLeZ87DHBL7lUigD0zQPGG geKbi/g0TUo717BwlwY0bapJYDDEAMDtblSRx7ityq8NhZ295c3kNpBHdXW3 7RMkYDy7RhdzDlsDgZ6VYoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAK4vx78ObHxulrdJdSaZrVk6ta6lAuXQBs7SAQSM8jkFTyDyQe0ooA 870q1+L1slvb3+oeEblA+Jbp4p2lKluTtQIhIBwB8ucDJ6muk07RtR0TTrqd bv8AtvW7jyzLcX7rbq+0BdimOM+XGPnZV2t8ztzlia6CigDz/wAC+GvE/hvX Ndm1CLSnsdY1CS+byL+Znty247QjRhG5KjI2HjndhQI/iT8N7nxXcWmuaBqc ml+JLNPJiuBM8avEScqSuSpG5sEDnJBBBBX0SigDh/B3hvxdBef2j431+DVL qDctlBbRIsMO4ANISI1JkxlQcfKrOMneQMPwh8PvF/gi/vtK0jWtN/4Re6uD MJJoma9hymCUGAm/hRlty/KG2dVPqlFAHnfw38FeJvB76ja6prNpd2Et7JeL JErNcXTuu0mZn4UYVWwuSW/jwCGk8NeEPFPh/wAW6666xY/8I7qWoPqQRISb kSMwZkGRtVT90nLEhflCFsj0CigDzvW/Dfi3UPiRo/iaC20b7JpCTxw28mpT hphIrLuP7oohwVOFUnjBZgF295f2NvqenXNheR+Za3UTwzJuI3IwIYZHIyCe lWKKAOT+HXgxfAvhNdH8yOac3Es006bgJiWwjYJ+U+WsYIHAIPJ6nL+IPw+v PEWo6f4j8Oal/ZnibTsJBO7Hy5I8klWABxjc3YgglWBBBX0CigDh/B3hvxdB ef2j431+DVLqDctlBbRIsMO4ANISI1JkxlQcfKrOMneQO4oooA4/xroHiTVt R0C/8Pav9l/s67826s3uZII7yPKnazIG/uYwVIw59MG54Y8MHRb/AFrVrp43 1LWbhZ5/LeRliVUAWIM7EsFJf5sLndgKoAUdJRQBweteCtStvHkPjPwrPaJq EyC31O1vnYRXUOF5VgrGNxsQcDHAPZg+pb+G7zUfFFn4k1+SAXFhE8dhY2jF o7ZnG2RzKQrSsyhRyqqoyME/NXUUUAcHqng7WrT4gt4y8O3OmyXFzbpZ3Vlf xmNTECCzLLGCd/yIBvVsc84CqNS38N3mo+KLPxJr8kAuLCJ47CxtGLR2zONs jmUhWlZlCjlVVRkYJ+auoooA49NM8WaX4q1rUNPOlXumalKkq2dzM8DwusMU e8SLG+d2xgVI42oQeWFZdh4J8R+HPAd5YeGdT02x16+vTfTP9n/0WJnK7ooV wdiBVABZW4B4XI2+iVXvrG31KzktLuPzbeTAkjLEBwCDtbHVTjBU8MCQQQSK AOL0e98bat4IMMtto0+qB7uxmujfzW6lonaESgRxbgSysSFZOgIK7sJseFtK 1K08K22g69Y6a0FrZRWf7m4adbhVTY29XiQKCAOPmzk+nPQQQQ2tvFb28UcM ESBI441CqigYAAHAAHGKkoA4vwH4Eh+H/h/ULXT1juLy4uJZVeaQDeoJEKM4 TIAXbn5ThmcgEHFc/ZeD/G1j8VNR8axW/h8pf24t5bJr+bIUJGMrJ5HXdGp5 U8Ej3HqlFAHD+NPBF5quuaZ4q8O3UFp4l0z93E12C0E8J3Bo3ABI4d8Moz8x Hoy3Lnw7qXiTVNLvPERtLe00y4F3Bp9lK0okuF/1crzMqHC5bEYUDPJZh8o6 yigDh/HnhbxBrGseHdc8M31jb6lo0sxCXysY5ElVQwJUE9FxjHRiQQQMnjHw HceJ9H06ZdU2eJdJlN1YX5jCxrLuDbTHyPLyqgZ3MAq5L/Nu7iigDi9R0DXv F+l2+j+KIdNttPLxy339nXbyG82c+XteJTEhcKxIcsAu3PzbgfEjQNe8WeGL zw/pcOmrBdpGWurq7dGRlkD4EaxMCMKOdw6njjntKKAMfRl1u38PJFqNtY/2 lBEI0WG9lljlKoAC0kib1y2c5DkDnLGuT8LeG/Fuh+LPE2tXdto0w1p0kWNN SnJhMauEXLxEkEsoJ4CgHauAEr0SigDzfw94T8SaN8RdZ8RnSvDkdrq/lCWO G6kM1vjG9kbyAG3Hc7KQNzbcsMZJpfhfxhB8VbzxferpT2t3aJZC0XUZnNtH mMsUJhAPKM235QS55HU+kUUAeV6fa+PR4g8S6h4Z1Dw/fWd3qbhn1SK7iZGj Aj8tUUBCE27PMXO/ZySRhdzTNT8eWGvabbeKIfDkljqEr2yNpjTiSOQRPKGI kGCuImGODlge2Dn2/wAM9Z0CWSLwf44vtI0x+RYXNql6kJ3M2Iy5Gxfm6YJO Mknt1GieHLiz8i61zV59b1WHdtuZUEMaA5A2QJ8ittJG/BchmG7adoAOgrj/ ABvovizULzRtQ8J6zBZXFhK5ntbtnEF0jAcOFBzjaQBj+MkFSBnsKKAOX8M+ D7fRtY1fXri2sV1fVZfMla1iKrCm1f3Skn5vmBZnwu9jkqMADL1rwVqVt48h 8Z+FZ7RNQmQW+p2t87CK6hwvKsFYxuNiDgY4B7MH7yigDl7fw9ean4os/EWv pBFcadE8VhZ2lwZY4mkGJJS5jRmZl2rtI2qFJ5LfLl6p4O1q0+ILeMvDtzps lxc26Wd1ZX8ZjUxAgsyyxgnf8iAb1bHPOAqjvKKAOXt/Dd5qPiiz8Sa/JALi wieOwsbRi0dszjbI5lIVpWZQo5VVUZGCfmqOOx8X6V4g1a4tbm01jTb50lgg v7trdrNgCrIuyFwyEBCOmMHIJJZusooA87sPAev+FPAd5pXhTXbRNaur03kl 3cWaxxZYqGVI1BWMbVH8LDqABkFbGj3/AI61PwQUWPRm1pXu7J743TxqJIna JZgnksCdysSvA4B43bV7S+sbfUrOS0u4/Nt5MCSMsQHAIO1sdVOMFTwwJBBB IqSCCG1t4re3ijhgiQJHHGoVUUDAAA4AA4xQBz/hbStStPCttoOvWOmtBa2U Vn+5uGnW4VU2NvV4kCggDj5s5Ppzl/D/AMBf8K+0PVba0MF3dXN3LNC0h2Ex jiGOSQLk4AySFwC7YB6nuKKAPJ7fwR4wt/ivd+OPsXhyX7TEIvskt7MzRYjV NySeR8rfJ12/dZl75rpPHvhDUvEFxomsaFqEdprWi3BlthOzCCZWK70kKfMA QoHHUFlI+bI7SigDzPxL4C8VeNdG0tdY160sNUtr0T79MWUQW6qsmGRSwZ5S xj+ZiNoB24+bfJ488HeLPE3guDw1b39jdsfLkutTvZ3t3ldSSQIYY9m3O3G4 nGOhYB69IooAw7yw1LxB4V1XS9UitNPnvbea1VrWdrlVV027zuSM5BJ+XHYc 88Yfg3RvGvh7wvFZapd6Vf3FjELayt4XaGN4wVw0svlltyqCqhUAwPm3E5Xu KKAPP/h54a8T+EdO1i21GLSrmS8u5tQSSG/mbMrhAI28yMtt+U5cszezHmq/ g7wp4n8N+LfEOrS2Oh/Z9du45pI4NQmzbgM5YjdCd7HeT1UZ6bQQB6RRQB53 p/hvxbH8UpvFt3baMLeeyWwNvHqU7tEm9GLgtFgn5T8oCA59csa8nhXxa3xN h8ZLpvh9itl9ka2n1OeUqcn54nMGIjggYC4IL93Jr0yigDzfWvC/jC/+KGle KoF0o2OlRSwwWUuozDzN4kUycQkIxDrkAN9wDJ4xXvYPGE3xQ1+98Lvodz5F pa2ryavazJ9m4aQwRSRj587lkbn/AJaIP4a9Qrz+8+HGo2muXmq+E/F99oTX 8sk93avCt3A8j7SXWNyArEqSTyecDaBigAXU/iPpF1Z3Ovw+FJdMe7gtplsG uFmHnSrErKXBXhnUkHqARx1qTxb4Q1658Y6b4u8LahaRapbW7Wc1tqDOLeaE 7iM+X8xIZs4PBIU8bfm1NG8LajFsl8TeIZ9fuIZRJb5gW1hjxgjMUZ2yMGAY M+7aQpUKQSeooA8v8R/D3xT4j1jw1rEmvWNtqdh5r3Mq25lht2KrsFvA+VOG Uku5DZIb+FEU1XwB4p074gDxf4S1exlu7m0Ftfx6wp2y7VRQw8pB12KxA24Z eMq20eoUUAeb2fgjxZYfFU+KRrtje2lzaLbXIuonDwpkM0cEanaq7kG0ljje ch2BZpNb8N+LdQ+JGj+JoLbRvsmkJPHDbyalOGmEisu4/uiiHBU4VSeMFmAX b6JRQAVh+MNJ1LXPCd/p2j6nJpuoSopgukdkKMrBsblOQGxtJHQMeD0O5RQB w+heD9TbWNC1nxJPBLfaLp5s4RDczTebIyqrXDM20BmG8FdhPzZLthQtjx/4 I/4S6zsrqyuvsWu6VL9p0y6YbkSQFTtdSCCpKLzgkYB5GVbsKKAOH1Lw5r/j GztNJ8VW+lQaUu2W9Gn3k7PdSKVKqAVQJGSGJDGQ9MYYBxY8d+DbjxT/AGRe 6fewW2paNdi8tRcQB45XXBCOww6qWVc7T06qxC47CigDi9R8O694w0u30rxQ dNtNPDxvfQ6dK8pvtvzbdzqphTeqk43sRxuXGW1PFGma7e/2bdaBqn2W4sbt ZpLWQhYbyPo8cjBWZflLYIBAPOMhWXoKKAOHi8I3+qfEWw8X61BY2U2m2jW9 vFY3Uk5mLbwTIzogCqHbAVcksSWwAKp6Jc+P9N8a32nazdabrNpc281xai1X yRZ7W/dCU4yiSZZR/rWyhxkK5r0SqdnpVjYXF1c21tGlxdvvuJ+skpySNznk hckKCcKOBgACgDzP/hCvGv8Awtf/AITf7P4c2+V5P2L7S27b5ezPm/Zs7s87 sbtvyZ28V6pAZmt4muI445ygMiRuXVWxyAxAJGe+Bn0FSUUAeZ674E8TWnxI k8aeD9R01bi8t/IvbXVA3lkBVUbSik4+RT1BBXqQxAks/BHiyw+Kp8UjXbG9 tLm0W2uRdROHhTIZo4I1O1V3INpLHG85DsCzekUUAeZyeFfFv/CzYfGUGm+H 4T9i+yXFsupzgznJw7OsABONgwysMIO4Ur1Hj7w1N4v8EanoVvcR289yiGOS QEruR1cA45AJXGecZzg4xXSUUAc34O0zxHpmlxQ+Ib7TZXjt4oIrbTrXyoot m4bs8biylMgKqrtwB3PSUUUAV757yOzkawggnuhjZHPMYkbkZywViOM/wn04 615f4K8HePPCXiHX9Wnj8OXv9ty/aJ4kvJ4dkm9mG0mJvl/eMMEE9OeDn1ii gCvfPeR2cjWEEE90MbI55jEjcjOWCsRxn+E+nHWuD8BeG/FvhDS9Xt7q20a8 nvb2S/V11KcDe+wFGLxM2AFY7iWJOAepavRKKAPN/AvhTxP4QvNdaSx0OeHU 7uS7SQahM06EhisbyNCTIucDceRudsMTipPCvhrxVoXjHxBrNxYeHxBrlxC8 kdpeSp9nVNwJAMOJHIbcTlctk8Z49EooA830Xwv4wsPihqviqddKFjqsUUM9 lFqMx8vYI1EnMIDsAjYBC/fIyOc5fiH4X+JrHxjP4h+H/iCPS3v3aa+t7qVv LaU5+YDa4cHexww+UklTyAvrlFAHP+E9D1HSNOabXNS/tPW7ra13d+WqKMDC xxgAYjXkgY5ZnbALEV0FFFAHB3vhnxavjzU9Us9Yjn0XUbIWws7i9niFk5CK ZEROGICFuGjJLkbl+8eg8I+F7Hwd4atNHsI4wIkBmlVNpnlwN0jck5JHTJwM AcAVuUUAed+HfBuveAtU1G38MjTbzw3eP9ojsr65eGW2mOAwWRY33ptUD5ue B3BL9J4c8Mf2Leapqd3efbdX1WVZLu5WLykKoCsaJHk7VVeOSWPJJPGOgooA 878MeEfE3gS4v7TRm0bU9HvLiS8C3TNZTxSuQNo8uN4ygVB0VeScBQAD0nhz wx/Yt5qmp3d59t1fVZVku7lYvKQqgKxokeTtVV45JY8kk8Y6CigDzOLwj4yf 4ff8IZqDeH7y3a3jtRfyNJuhiwoOIfLw7x4bY29c7UYgHObHjKy8V+F/Culy +DtTtIdP0CydryK/UO11FCibV4Q87UcHBT73UdvRKz7rRNOvtRgvry3+0TQb TCszs8cbKcrIsZOwSAk4cDcBxnHFAHF/FHwp4m8caMdE06LRoLQXCTC5urhm kYBTkBPJOw7j95XzgEdGIrqPC0GtWWjW1hrNrpsT2tvFCklhOWWUquGOzyox GOBhVyOccY53KKACvL/B3gfxr4Mi/sCy1bQ20BpWka9Foy3w3KM7V/1ZYEYD OXwMZBACV6hRQB534A8Ba/4R1TUnuvE0lxpc97PcR2flrI85fAWSaZlDb8Dl VwMgHPJBPDHhHxN4EuL+00ZtG1PR7y4kvAt0zWU8UrkDaPLjeMoFQdFXknAU AA+iUUAc3ofhqbQ31nVXuI9R17VHEs8zA28T7FKwxqo37EVeM/MxySSeAMPw d4a8T6L408Q6zqcWlNb63LHI4gv5pHtxGHCgCSP587gPvKBj5QBhR6BRQB5v pfhTxPa/FW88YTWOhxw31olpNDDqEzOoBjzJlocM2I8BQEHTnOWOf4n+Fuux +NJvF3gXXYNK1K64uIJowImyMO2QrBtxCsVZT82W3ZwK9YooA5fwn4e1nTd1 /wCJtc/tnV5IliDrbpFHbJ1ZIwoGct95uNwSPIG0V1FFFAHN+JfDupatqmka lpOsR6Xd6c8mXe2aYTRvt3RMokUbDtBOQTlVKlSOad5b+PNV0kadJ/YelSTx NFc6ha3M87pmMgtDHsj2tuIIJkO3/aNdhRQBy/8AwgGhf8K//wCEL8uf+yfK 8vPmnzN27fv3f3t/zdNueMY4rg9A+HXxL0h10ZvHMaeG95QtCS10Idu0CPeh 8o7QAAr4QkkZI59kooA87+Ifwuh8W2+mXGjXcej6ppKbbOSGIKu0DKJlcMgV gCpGduWwpzxJ4Y8K+NnvIbnxv4pg1GG2l82LT7S2jWJ3A+R3fYpO0ksFxwyo 2cjFegUUAcH4i8KeJpfiNp3irw5qWmwBbL+z7yG+iZwYvML5ULyxy2cbk5Qc kMQDxZ4Evr/VNH8S6BqMcfijSUWFJ78ZiuouQyyhFwpIdzlFH3iMD5SveUUA cnc+HdS8Sappd54iNpb2mmXAu4NPspWlElwv+rleZlQ4XLYjCgZ5LMPlGP4q 8N+Ldb8Y+H9Zs7bRootEuJnjWTUp1a4R9o52RDYdq9MsOcHcMg+iUUARwGZr eJriOOOcoDIkbl1VscgMQCRnvgZ9BUlFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABWXqXiXQdGuFt9U1vTbGdkDrHdXSRMVyRkBiDjIIz7 GtSuT+JyK/wy8RB0jcfYnOHtmnGQMg7V5BB5D9EIDHhTQBsab4l0HWbhrfS9 b02+nVC7R2t0krBcgZIUk4yQM+4rUrh/g/bfZfhRoEe2dcxPJieLy2+eR24G Tleflb+JcHAzgbF9428O6dLItxqGI4pRBPcRwySQQSFguyWZVMcbAkZDsCMg nAIoA2L6/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p3iPR4NW0m4+0 WM+7y5djJu2sVPDAEcgjkVl+L7PStf8AAuovcW9pqFobKS4gdpY1XPlNtkSV wUQ4PEnQZz0rg/ht448NeEfhD4eGuavBaSSeeVhw0khBuJsNsQFtvykbsYyM ZzQB7BRWfY65peo6HHrdrfwSaY8RmF0X2oEGdxYnG3GDnOMYIOMVl/8ACe+G xe21o9/JHJduqWjS2syJdEuiDyXKBZQTIhyhIwd33cmgDpKw5/GnhW1uJbe4 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 8Sf8Ij4L1TXBH5klrF+6QrkGRiETcMj5dzLnBzjOOa5v4XaA0/h+x8WeIVkv vEmoIbj7XdssrQRMXMaw44iQo+7auPvkHgAAA7Cz8S6DqFvdXFlrem3MFom+ 5khukdYVwTlyDhRhScn0PpWpXF/EfwHpvjPw1fBtOjl1iK3Y2Nwm1JfMUMUT ef4CxIIPHzE8HBHSaxrenaDZpdalceTHJKkEYVGkeWRjhURFBZ2PooJ4J6A0 AaFFc/pnjbw7q+sS6Rbah5epxY3WV3DJbTHKlhhJVVm+UZ4BwME9RVy/8R6R puqWel3V9GNQvHCwWiAyStnd82xQSE+VsuQFGDkigDUorD0DxhoHim4v4NE1 KO9ewcJcGNG2qSWAwxADA7W5Ukce4qnb/ETwrdajZ2UWq/vL6V4bSRreVYbl 0O1hHKVEb88fKxySAMkigDqKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigArk/iciv8MvEQdI3H2Jzh7ZpxkD IO1eQQeQ/RCAx4U11leZzeBvFtzceLtPudejudH15/8AR5prqcyWCEuxRIRg EfMEwJFBCgkMMpQBj6Xf3Ph79mBbyzMmm3C2T+W90z7gZJiN6FFBBbfujOMD cmSQCx7j4f6VYw/C3QLBbaNrSfTI3lhk+dXMqb5Mhs5DM7cdOcdOK2IfDmkW 3ho+HYLGOLSTbtbG2QlQY2BDDIOcnJy2ckknOea5Pwp4Z8WeC7O40Gwn0q+0 RJSdOuLuR0ntUclmDoibZcMxIG9M88qCAoByfwwkmttL+Ing9TJc6fo9xNFZ iYGVyreapUjY4IPlg7RG2SzfK2cV0HwU0nTW+Elg7afaF79J0vGMK5uFE0qg ScfOApIwc8HFdRong620jw1faU9zJcz6k80+oXbxoTPPKMSP5ZBQD0TBXAAI bknD8I+G/GHgzR18O20mh32mQZFpeyNNDNHvZndpIgGV8M/Ch0yF5YZyADj/ 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 4QkkZI5APWNJs5tO0axsri7kvJ7e3jikuZM7pmVQC5ySckjPU9epq5UcEENr bxW9vFHDBEgSOONQqooGAABwABxipKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAoorL1LxLoOjXC2+qa3ptjOy B1jurpImK5IyAxBxkEZ9jQBqUVl6b4l0HWbhrfS9b02+nVC7R2t0krBcgZIU k4yQM+4rUoAKKr31/Z6ZZyXl/dwWlrHjfNPII0XJAGWPAySB+NV9E1vTvEej watpNx9osZ93ly7GTdtYqeGAI5BHIoA0KKKKAKcmlWM2qQ6nNbRy3kCbIZZP mMIOc7M8ISGIYrgsAAcgDFyis/U9d0fRPK/tbVbGw87Pl/a7hIt+MZxuIzjI 6eooA0KK5/8A4Tvwf/0Neh/+DGH/AOKqxY+LPDep3kdnYeINKu7qTOyGC9jk dsAk4UHJwAT+FAGxRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXD698Pri78Ry +I/DniW+0HVrjYLooonguAiMgLQsQCwBABJwMZAyc13FFAHH6X4Q1lpQfFXi ufXoYpYp7eBLRLNEljbcrN5ZzJghSFJ28ZIJwR2FFFABRRWPfeLPDemXklnf +INKtLqPG+Ge9jjdcgEZUnIyCD+NAGxRWfpmu6Prfm/2Tqtjf+TjzPslwkuz OcZ2k4zg9fQ1oUAFFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p 3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFFAFOTSrGbVIdTmto5byBN kMsnzGEHOdmeEJDEMVwWAAOQBi5RWfqeu6Ponlf2tqtjYedny/tdwkW/GM43 EZxkdPUUAaFFc/8A8J34P/6GvQ//AAYw/wDxVWLHxZ4b1O8js7DxBpV3dSZ2 QwXscjtgEnCg5OACfwoA2KKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iq99f2emWcl5f3cFpax43zTyCNFyQBljwMkgfjQBHpulWOkW7QWFtHAjuZJC vLSuQAXdjy7nAyzEk9yauVT03VtN1m3a40vULS+gVyjSWsyyqGwDglSRnBBx 7irlABRRWHP408K2txLb3HiXRoZ4nKSRyX8SsjA4IILZBB4xQBuUVXsb+z1O zjvLC7gu7WTOyaCQSI2CQcMODggj8KsUAFFFFABRRRQAUVl6H4j0jxLb3Nxo 19HeQW9w1tJJGDt8xQCQCRhhhgdwyDngmtSgAooqOeeG1t5bi4ljhgiQvJJI wVUUDJJJ4AA5zQBJRWfomt6d4j0eDVtJuPtFjPu8uXYybtrFTwwBHII5FaFA BRRRQBTvNKsdQuLWe8to7h7V/MgEvzLG+QQ4U8bxjhsZXJwRuOblFZ+p67o+ ieV/a2q2Nh52fL+13CRb8YzjcRnGR09RQBoUVj2Pizw3qd5HZ2HiDSru6kzs hgvY5HbAJOFBycAE/hWxQAUUVj6N4q0LxDeX1ro+pwX0lj5f2gwEsi7wSuHH yt0P3ScYwcGgDYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAqvfWNvqVnJaXcfm28mBJGWIDgEHa2OqnGCp4YEgggkVYooAjgghtbeK3t4 o4YIkCRxxqFVFAwAAOAAOMVJRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuPsTnD2zTjIGQdq8gg8 h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEHkP0QgMeFNAFP4P232 X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvDunSyLcahiOKUQT3Ec MkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut3YTrZOI2cFpFaWYqH XBQgMX3Kf4QVPz4+buPh/pVjD8LdAsFto2tJ9MjeWGT51cypvkyGzkMztx05 x04oAseL7PStf8C6i9xb2moWhspLiB2ljVc+U22RJXBRDg8SdBnPSuD+G3jj w14R+EPh4a5q8FpJJ55WHDSSEG4mw2xAW2/KRuxjIxnNU/hhJNbaX8RPB6mS 50/R7iaKzEwMrlW81SpGxwQfLB2iNslm+Vs4roPgppVi/wAJLB5baOU3yTx3 PnfOJEE0qhCGyNmC3yjjLMcZZiQD0DStVsdc0u31PTLmO5s7hN8UqdGH8wQc gg8ggg4IrH1Px74b0Z5BqF/Jbxo7xm4a1m8guisWRZQmxnGxhtDE7lK43DFe f/Bazhsrjx34Wju7t7Ox1Noo4zhGVSXj3iVCG3sIxnAXbtBU5Y4y7PxFqPgT wu3gb4gaDPa6NNFJYxa1piKYykhZckAY3Y8x8/fIAJQkkkA94rPTSbdfEM2s mGA3UlpHarL5Z8xUV3YruJxtJYHAA5Xkt8oW5BPDdW8VxbyxzQSoHjkjYMrq RkEEcEEc5qSgDx/xD/ydD4T/AOwVJ/6DdV6ZqmiQ6lf6VqA8tLzTLgywStGG +VkKSJ2OGVj0P3lQkMF2nzPxD/ydD4T/AOwVJ/6DdV7BQBh634v0Pw9cfZ9R u5Fn+zvdNHDbyztHCpw0jiNWKICcbmwOD6GtDStVsdc0u31PTLmO5s7hN8Uq dGH8wQcgg8ggg4Iry/4W6xrPibS9Xv8ATde0ZZZtTlnnjuLCeWcbsCMuDcAI Niqqqu5QqAbiQ2Nzwd8PLPw/L4h06/1Cx1W11OWO8fSRZiOC2yzkFYS7gKSo A/65Dk7eADYuPiL4RttOvNRk1uA2NnKkElzGryRtI43BEZQRI2OSE3FR1xUk Pj/wpP4aPiFNctBpYdo/OclDvUElNjANvwMhcZIwQDkVwfwR0/TrbUfGDWQ2 Q2+qy29rbyyN5lvDn/nk6h49wVASTljEAQDHzJ4A0uGH4y+PjLp0ivFcRTxS FhsjaQOd23zG+d1diGHQFx+73bKAPQPDXjDQPGFvPPoOpR3iQOElARkZCRkZ VgDg84OMHB9DVP8A4WN4O8rUJR4isTDp+wXEqyZTLqzKqMOJGIRvlQsflIxn iuL0Cyhg/aB8Z6bNYyJZ6jpiT+SQFt7hSIlkZoyuJCWZxuzwfMByWOI/hjo2 lwfFDx6bW0gjjsbuEW0cJxHCWEoYqodlDfeXPBUM6gRhmQAHonhrxhoHjC3n n0HUo7xIHCSgIyMhIyMqwBwecHGDg+hqxqXiHTNKuFtbieR7tkEgtbWCS4n2 ZI3mONWcJkY3YxnAzkivL2gh8NftO2qafFGqa/pjvdqVACth2JTGMEtbqSTn JZz3GND4I3S65ZeJ/EsryS3mo6w6vM+5S0SIpjXYXYKFEjAAE4GBkgCgD0TR tc0vxDpyX+kX8F7atgb4XztJAO1h1VsEZU4IzyKz7nxx4atJdSjl1eD/AIlk Xm3roGdLcbim1nUFRIWBAjzvOOAa87uIIdD/AGjV0u1ijbT/ABRpjPqNpIoM TsFlyQgwCT5XJYNnzJP73B4C0HQLb44eMm0y0tBFYpELYRQs6wO6jzQjg7Iz u3KUxnqF2hWBAPSIfGGgT+Ez4oTUoxooRn+1OjIMKxQ/KwDZ3DAGMk4xnIqv B498NzazFo738lpqEyB4re/tZrRpAW2jb5qLuJbgAZJwcdDWP490zwpp/hrS INQju7GztNTjmsLPRoijzXIDskSCNcgsS3IKnOPmB5rl/iPJqdz4q+H9xqMN pZoddhEFopjlnC70JZ5MgqfugpGGQEZMjfIKAPUNR8SaLpN7b2N/qlpBeXDx pDbNKPNkLvsXan3iC3GcYGCTgA1j3fxK8JWeqX+mvqckt3p6M92ltZzziBVx uLNGjABc4JzweDg1w/xw0DTZn8OXR02MS3msQwXVzHaLIZFK4CvsxO5wPlVG GQCODsr1T+wtH/6BVj/x6fYf+PdP+Pf/AJ49P9X/ALPT2oAp+GvF+h+L7ee4 0K7kuoIHCSSG3ljXcRnALqATjBIGcZGeoo0jxdo+u6pd6ZYSXZvLRFe4insZ 4DEG+7u8xFAJByB1IyRwDXB+AtV/4QTUfEHgbVxOtjo0U2q2N6y7lNiSGIOF BZgWJJAOW3gY2jPaeCLSaLw+dQuxH9s1a4k1Gfy7o3KjzDmNRJ0IWIRJ8vy/ JxxyQDpK8v8Aj8iN8L5y7wKy3cJQSsoZjkjCAqSWwScKVO0Mc4BVvUK8z+PJ I+Fd4BHI2biEEq8ihfnHLBQQw7YfC5IOdwUEA7Twmuzwboa+VBFjT7ceXbye ZGn7teEbc25R2O5sjnJ61XvvG3h3TpZFuNQxHFKIJ7iOGSSCCQsF2SzKpjjY EjIdgRkE4BFc/wCKNVuPD3wNlvYpJ7W6j0qGJW+yCCSN3VIx+6RlETAt0U/I egbbg6nw/wBKsYfhboFgttG1pPpkbywyfOrmVN8mQ2chmduOnOOnFAFzxRZ6 Xr/g28eeyg1e1No9xbqsH2nefLba0QDKWYg/KVZSc8MM5rz/AOG3jjw14R+E Ph4a5q8FpJJ55WHDSSEG4mw2xAW2/KRuxjIxnNU/hgWttL+InhJJLu6s9IuJ obWOcrKNjeau0IInOSUyRtcEtxHnIboPgppOmt8JLB20+0L36TpeMYVzcKJp VAk4+cBSRg54OKAPQNK1Wx1zS7fU9MuY7mzuE3xSp0YfzBByCDyCCDgisseN dBMsKG6nRZ5Uht5pLOZIbh3YKgikKBJNxII2k5XLfdBI8n8EabbzaH8VvClv efY7G2u7hIElkMUNsD5iq7TBt5XEShg3G1P4tzCtC38Y6joV1png34j6ZBpd v5sLWOrWDKltJ9nljaMMuNqKWjG4jbtDrlEB3AA9orPTSbdfEM2smGA3UlpH arL5Z8xUV3YruJxtJYHAA5Xkt8oXQooA8f8AEP8AydD4T/7BUn/oN1XpmqaJ DqV/pWoDy0vNMuDLBK0Yb5WQpInY4ZWPQ/eVCQwXafM/EP8AydD4T/7BUn/o N1Xrk8EN1by29xFHNBKhSSORQyupGCCDwQRxigDn5/H/AIUhsL+/GuWk9pp6 RPdTWpM6xiVyiZMYOSWU8DkcE4BBqRPG3h2Tw5a6/HqG/TbuUQWzrDIXmkLl AiR7d7NuB4C54J6c1534C0PRYPjh4yeyhtJEsEiW1MVqNtuzqBIqNGBGhBBQ grvODzxJu6TxTYeFtG1zwkwtL5L+zln/ALI0rRoxGJ2fZ5ucbVVVyGOXRSN2 dwyKAOg0zxt4d1fWJdIttQ8vU4sbrK7hktpjlSwwkqqzfKM8A4GCeoqxdeKt Cs9Yg0iXU4G1OaVYVsoSZZgxXcCyJllXaMlmAUDkkV5nrQ1eT4+eCpL2TTYL trec+RAgmEUQSTIMmUkcsN+CyIik/KHIfJ448N6efjL4LSDS5Io797l7v7JF bxrckDc+88M4IJ8wPkMjELliwIB3mj/EXwjr+uPoul63Bc3678RqrgPt+9sY gK/c/KTkAkcDNbmpapaaTbrNdvIA7hI0iieWSRsE4REBZjgEkAHAUnoCa83+ JIFr8Tfh3e2UkcGpyXskDOyRgSW5KCRS7Ec7XYKuCSZG24bAbQ+Ilh4js/EG heLvDemR6rJpiTx3dm75ZoWAJMSnhXwrDcnznKjDrlaAOo0vxhoGsJfPZ6lG Rp6b7zzkaE2w3Op8wOAUIMT5DYIABPBBNe58f+FLTRrnWJNctG0+2uBavcRE yKZSqsETaDvO1gTtzjnP3Tjn/Bvirw58RjqkOoaNHba0qJb6jpV+PN/dxSOU O1gAwVnbPygqxwf4ScP9n/SrO18PazPGfPmh1We1jnZg37sJEflCsyDcQCSh IbavzMFUgA9M0DxHpHinS11LRb6O7tC5TeoKlWHUMrAFT0OCBwQehFR33ijS bC8ks3mnuLqLHnQ2NpLdPDkAr5ixKxTIORuxnnGcGvI/DtzD4E+KnxH03To4 4tPi0w6rjyQ5iZEWQKiKyDYPPcBcjhVG4ck9Z8DfKk+GcF5+/e8u7u4nvZpt 5M0xcjfub73yhASvGQc/NuoA7zStVsdc0u31PTLmO5s7hN8UqdGH8wQcgg8g gg4IrDuPiL4RttOvNRk1uA2NnKkElzGryRtI43BEZQRI2OSE3FR1xXn/AIOs LOw+MPjXwP8AZILnw9PEmofYriMPHHJ+6bCp9wLmXGNucRx8/LzJ8GNB0A3H jV7S0tLi0OpzWMLmFpVa0ycIJWJR0IIyo54BYsGTABqfEL4l2unaHpy6cb6K DVJbcNqxs50ggt32uWDYUuzRlsLGwcfMdysor0TTdTg1W3ae3ju0RXKEXVpL btnAPCyKpI564x19DXmfxlS307TvBqWr/YGt9btxbsrGG2gRQeWO1ok24XBZ WwA2ARuFesUAFeR/E/U1074m+Am1uSMeHRcPKFWVkK3KkBZZMsF2IWjIPUDz M5BwfSPEmtw+HPDWpazP5ZSzt3lCPIIxIwHypuPQs2FHB5I4NeX3vg3V/iT8 N73WdWu7t9Uv0N7pGnmYCCzjDM0SBVKo7ujbTI4yA44G05AOgsr3TYviDqni +W+j0vQ5bKDT1nuytvBqVxlpPORmYeYFj2qr4IYFtpKrz2mma7o+t+b/AGTq tjf+TjzPslwkuzOcZ2k4zg9fQ15H4U8W3PxB8HDwNqVlG+uI/wBj1NbsuHjt I9oe5O9T+/DYUKSSJMOQFBA9g0rSrHQ9Lt9M0y2jtrO3TZFEnRR/MknJJPJJ JOSaALleL/GWws7j4h/Dnz7SCX7TqHkT74w3mxiWHCNn7y/O3B4+Y+pr2ivH /i//AMlD+GP/AGFT/wCjbegD2CiivM/jvqtzpnwyuEtbmOA3txHayZ3h3Qgs yIV4BIXndwV3jqQCAdRJ4+8LwvD5urRpbzPsivmjcWjttLYW52+UT8rDAfqC OoxXSVj33hjS77wlJ4Ykg26Y1oLREHzGNAoClS2fmXAIJzggGvN/hDf6x4l+ Cmo6dFd+VfW32jT7G5MjqyZiVoyW5I2mTAK9FVcDigDvLnx74bs7i5imv5Al rcC1ublbWZreCUlRsecIY1ILKDlhgnBxVy18WeG77z/sfiDSrjyImnm8m9jf y41+87YPCjIyTwK8v8Iazo+jfCO88HeJXns9VtftOnXGmxlDeTtMxK+RGCS+ 4TKFbG0nJ+6M11nw08NtB8JNI0XxDpcZJSR5rO7iVxhpmkTcpyM4KnB5B64I oA6DwxqnhzVre/uPDb2kkAvZFupLWLYslxgF2JwA5IKneMg8cmq8/j3w3bW8 t29/IbGNC7X8drM9qQB2nVDGxz8uAxJb5R83FcX8DrdD4N8RW1nL9nj/ALbu Y4ZLcq3ljy4wpTLSKccYyzj3Ycnm4dbu/BnhM+A/iP4cki0OVGtIdY0+JHiw zHaxG3G8YeTd/rPlUlC2SQDuPil4/ufBaaRHZwyKbi9i+03U1u/2eOAMSyGQ KwDsFIwFdgoY4B257CPxDpjaXNqc88ljZwvskl1GCSzCnjH+uVTglgAehPHW vP8A4vXIurfwRNYXV3KJtdtpIPsKxusuQSrrI4Kb+RsDMFbcxIYDK9x4v03T dT8K6jHqlnaXUEVvJKoukVlRgjfMCzIFIBPzb0xk/MvUAEnha90LUPDlpdeG kgTSH3/ZxBAYUGHYNhCBj5g3bnrVObx74bgQTPfyGzLqn29LWZ7TLMFH+kKh ixuOCd2Acg4INeX6Xqt9ov7KS3+m3Mlrdojok0fDKHvCjYPY7WPI5HUYPNei af4b0LxJ8KrDRBa+RpF7p8LrHAphKbgsgYDc2G3YblnyepbJyAdJqWq2OkW6 z39zHAjuI4w3LSuQSERRy7nBwqgk9gap6f4o0nU9RGnW806Xxiaf7Nc2ktvJ 5alVL7ZFU7cuAD0JDYztbHH+LfDtw3hnwvF4Tu7G4vtBu1Wyiv7gMlyYInVo to+RpsxnnClNrkMmCaj8E+PbHxX4ltLXWrS70bxbY2UkL2FwnlpKJDG7lA3z ZxEjbTggMfvgFgAemVT1aJptGvokt47l3t5FWCSNZFkJUjaUZlDA9MFlBzgk dauVT1ZFk0a+R0jdGt5AySWzXCsNp4MS8yD/AGBy3QdaAPL/ANnUQj4c3Rik kZzqcplDIFCt5cfCnJ3DbtOTjkkY4yfSNS8Q6ZpVwtrcTyPdsgkFrawSXE+z JG8xxqzhMjG7GM4GckV53+zzN5vw1kT7TPL5WoSpslGFh+VG2pycrzu6L8zN x3MnwRul1yy8T+JZXklvNR1h1eZ9ylokRTGuwuwUKJGAAJwMDJAFAHoGm6ro vizRmnsLm01LT50McgXDqQyglHU9DtYZVhnnkV5P8PrzRfBPjH4lPf3Eel6f Dew+WtxEIMA+e4SNATuG3OwLyygEAZwLh/4pj9pWCz035LXxFp5nvYeieYol O9VXA3Zhzlsn95J/e4sfDS0s1+KvxInigg8xLuFVkQAld5kaQA73xllBIyOR yqEbFAO88NeMNA8YW88+g6lHeJA4SUBGRkJGRlWAODzg4wcH0NGqeL9D0a4a G/u5IhG6JNOLeVoIGcgKJJVUpGTuU4ZhgMpPBBrzuazt9E/aasBppgsV1TSp Jb2MIf8ASnJkJxwQrExI5Py52NyS2Grw+INd+Eeo6vBrPhye88LXOoTXcGp2 TCSSNXOQJmbl2JaNd0jBshsM4AAAPYLC+t9T062v7OTzLW6iSaF9pG5GAKnB 5GQR1qxWP4UfS38JaSNEvPtmmR2kcVtOTkuiKFG7gYbjBGBggjA6VsUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5nN4G8W3Nx4u0+51 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 RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVx+s/FHwh4e1F7DV9SnsrpcnZ NYXA3AEjcp8vDLkHDDIOODQB2FFU9N1ODVbdp7eO7RFcoRdWktu2cA8LIqkj nrjHX0NXKACiiigAooooAKKKKACiiigAooooAKKKjnnhtbeW4uJY4YIkLySS MFVFAySSeAAOc0ASUVzfhTx3oHjV9QXQrqS4Fi6LIzQsgYOuVZdwBxkMOcHK njBBPSUAFFFFABRRRQAUUUUAFFFcnofxG8OeJfFVz4f0a5kvJ7e3aeS4jT9x 8rhCoYnLHLA5AKkHgmgDrKKw4/FVjL41m8KLDdi/isvtzSNFtiKbguFY8scs OQCOozkEDcoAKK5eLx/oV140XwpYyT3upL5n2k20RaK02AE+Y/QZJ28Zw3yn BrqKACiiigAooooAKKKKACiiigAork9e+JHhfw5rMejXl9JJqkjxKLO1geaT 94wAyFBGcHdtzuIxgHIB6ygAooooAKKKKACiuf8AFnjTQvBWnLea1d+V5u4Q QopeSZlGSFUfgMnCgkZIyK1NJ1KHWdGsdUt1kWC9t47iNZAAwV1DAHBIzg+p oAuUVl6/4j0jwtpbalrV9HaWgcJvYFizHoFVQSx6nAB4BPQGo/C3iSz8XeHL TXLCOeO1ut+xJ1AcbXZDkAkdVPegDYooooAKKKKACiiigAoork/GfxG8OeBU RdXuZGu5U3xWdum+V13AZxkBR15YjO1sZIxQB1lFFFABRUc88Nrby3FxLHDB EheSSRgqooGSSTwABzmub8MeP9C8Y6jdW2gST3kNrEkk135RjjVmJCph8OWI Vjwu3A654oA6iiiigAoorD8MeKrHxZb389hDdxJZXsljILqLymLoASQp5A+Y cMAeuQKANyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAoorl/FnxC8NeCtses3/l3UkTSxWsUbSSSAewGFyeAWIBIPPBwAdRRUcEj TW8UrwyQO6BmikKlkJH3TtJGR04JHoTVPXNYt/D+h3ur3aTyW9nE0siwRGRy B6AfzOAOpIAJABoUVT0nUodZ0ax1S3WRYL23juI1kADBXUMAcEjOD6mrlABR RRQAUUUUAFFFFABRRRQAUVh+LfFVj4M8Py6zqMN3LbxuqFbWLe2WOBnoFHux A6DqQDH4s8aaF4K05bzWrvyvN3CCFFLyTMoyQqj8Bk4UEjJGRQB0FFU9J1KH WdGsdUt1kWC9t47iNZAAwV1DAHBIzg+pq5QAUUUUAFFFcn4a+JHhfxfrM+l6 HfSXM8NuLgsYHRSu7aQNwByCVzx/GMZwcAHWUUVy+g+P9C8T+IbzSNFknvfs cXmT3sUR+zK2/aE3nqxwSMAqQCQTg0AdRRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFeP8Axf8A+Sh/DH/sKn/0bb17BXj/AMX/APkofwx/7Cp/ 9G29AHceLPiF4a8FbY9Zv/LupImlitYo2kkkA9gMLk8AsQCQeeDjL1z4saL4 duLZNS03WY7eV1ilvUtQ9vBKSQ0TSBiGdNrbhHvwVYDJBAz/AI8xQyfCu8aX zN8dxC0W2AON28D5m2nYNpb5gV5wufm2tJ8Q7S3/AOFDXlvZ2nnWsen25his LgyoqK0ZVlkKkvGoAYsQNyqeVzkAEnxf8W6v4X8HXbaXpV25uEELakjgR2u/ cu75W3hxxg4CgsvzE/Keo0TW/tOjfbLy3u7S0ht0l+3X81qVnTbky7oJGQDA 3E4Uc8cdPO/H188v7NVrLdSTz3F1p+nlpWVpCzkxMWducZwfmY8kgZyQDc+L l0U+DUDIsdxYzPaC68m4knLw5Vv3dwVOSWVMSyDBBPBZgCAdJqHxEsNGvLBN Z0rVdMsb+UxQajdxRrBnGV34cvFuHQSKpHOQNrYk8SfEbw54X1Sy0u7uZLjU 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 bxLdyz2emQyvFI89u4dSsxh5jALDLjoRkZ5A5Ajg8Xg63Z6TfaDrOn3F4+2B 7iKNom+SRz+8jd0BAiPyk7vmUgEZI5Nr7S/ip8KJJtGkg0W8+1o0TzLs+yX/ AJiv8rjHzOz4Ei/MfN6biVqnpnjXWtM8WaJ4c+I+jRx3jXB/svV7RiYp5dph BKrxlhI+emPMTKKPmAB65RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeb+Mfhvrvi7x Dp2rN4sgsv7LlMthFDpQbym3hgzFpTvb5UB4C/L90ZOfSKKAOL8W+Ede8X+G JdCu9d02CC4RRcSRaW+4ssm8FMz4UYVAQd3QnIyAI/EfgvW/Evgt/DV1r9jH DLtWSdNPldyiFGQAvcMd2UOWYtuz2IJPcUUAcfqHgu81z4dXHhTW9a+0ySRR xJfxW5R/3ewq0gZ33sWTLHIzkjg80WXgaWTwve6L4j8QX2u/bLRbSSSdEVY1 UtteNcHEg3Al2LMWRTngCuwooA8j0v4JXOn3C2j+ONZl8Nh3DaQjPEskTEny 2ZZMYOfmIUbstjaTkdJ488D6p43igtDrdjZ2Ntdx3cCNpfnvvVSMOWl2OpLM cFPQHPOe4ooApw2s02lm01hrS9eRGSfZblIpFORjy2Z+NpwQSc8+uK8rh+Bb 6Zrlzc+H/Geq6NplxKryWdpuV9g/g80OM4y20spxnndyT7BRQBzeseElu9G0 ax0m9k0t9GuIJ7F1DSKBGpTy3G4M6FGZSNwJzyTyDHb+EXuPFFn4k1zUPtup WMTw2kdtG0FtEHGGfyy7kyEEqW3YI2/LlQa6iigDh7j4fXDfEC88S2fiW+sr XUYki1CwhUDzwi7RtkzmPgLyBvGX2su7in49+E1j4y1S11mx1CTRdagdS17B HuMgX7pIDKd6kDDg5wMHOF2+iUUAcv4L8Hv4Vs5ze61fa1qdztE99eSMxKKW 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 CNQ8OWGp6lDLeXH2x9Tkm8y4NyHV1lLcZIZE6bSQOoJ3VYufB9zrmqaXfeJN UjuxpVwLq0t7GB7WJpR0eUGSQuVIBXBXHzA7gxFdZRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRXz58b/iBq83iBvA+hfa4hsWG8WJQWu2lCMsaYBbGCAcEbt5 UjA5APZ5/GnhW1uJbe48S6NDPE5SSOS/iVkYHBBBbIIPGK2IJ4bq3iuLeWOa CVA8ckbBldSMggjggjnNY/hfwjovg7S0sNHso4QEVZZyoMs5GTukfGWOWb2G cAAcVh3ngb7P8QtH8RaTLPDam7mm1GwSTEDSNbyILkJnAkJKqcAlt2eMMSAd BfeLPDemXklnf+INKtLqPG+Ge9jjdcgEZUnIyCD+NakE8N1bxXFvLHNBKgeO SNgyupGQQRwQRzmvnj9paOYazoEjCTyGt5VQknaWDLuwN5GcFc/Ivb5n6J9D zzw2tvLcXEscMESF5JJGCqigZJJPAAHOaAJKp6lq2m6NbrcapqFpYwM4RZLq ZYlLYJwCxAzgE49jWGvxE8Kt5btqvl2ssrwx3s1vLHaSOu7IW4ZREfuNjDc4 4zVP4tQG5+FfiBBFHLi3D7XWRgNrq2f3fORjIJ+UEAt8u6gDqNN1bTdZt2uN L1C0voFco0lrMsqhsA4JUkZwQce4q5Xz/wDBTxx4a8I/Dy8GuavBaSSaq5WH DSSEGKPDbEBbb8pG7GMjGc17ho2uaX4h05L/AEi/gvbVsDfC+dpIB2sOqtgj KnBGeRQBoUVzetePfDfh+4uoNRv5EezSN7oxWs0y24kOE8xo0YIW7BiCcj1F amja5pfiHTkv9Iv4L21bA3wvnaSAdrDqrYIypwRnkUAV7HxZ4b1O8js7DxBp V3dSZ2QwXscjtgEnCg5OACfwrYr5ws4hc/tXssizxgXcjAefNuJW2Yg7mCtt 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 ubeL9qi7EE+JJdPAnXziMv5S4XBKZ+VVbaPO/vYByYgD1jTNd0fW/N/snVbG /wDJx5n2S4SXZnOM7ScZwevoar6r4q0LRNRstO1HU4Ib6+ljht7bJaR2clVO 0ZIUkEbjhc968f8Ajr5XhXxR4Y8X6T5FvrIlfzMb1a5VAmN23AKgEo2SGKuB yB8u58VdGsYvGvgPV4bKOO8l12CKa4jj2mQbo8ByEwxAQbdzggA4VhkqAeuU VXvr6306zkurqTy4UwCQpYkkgKqqMlmJIAUAkkgAEmsvSPF+h65ql3pdjdyf 2haIrz2lxby28qK3Q7JFUkcjkDjcueoyAblFY+p+KNJ0jUYtOuZp5L6WIzrb WlpLcyCMEKXKxKxVcnGTgE5x0NHh7xVoXiuzN1oepwXsa/fCEh48kgbkOGXO 04yBnGRxQBsUVz99428O6dLItxqGI4pRBPcRwySQQSFguyWZVMcbAkZDsCMg nAIrUg1WxudGi1hLmMafJbi6W4k+RREV3bzuxtG3nnGO9AFyiub0rx74b1nV LfTLO/kF5dW/2q3iuLWaAzxdnTzEUOCATxnIBPQGukoAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACvkzx1YNofx6d9QEht5dTgvBJEq2e+JmVjs fcoBHzKZNwyyliQckfWdcX4++Gei+P7eNrwyWuoQIywXsIG4Ag4VwfvoGOcc HrgjJyAdZfPeR2cjWEEE90MbI55jEjcjOWCsRxn+E+nHWvH7H456pfeLY/DE fgnbqbXZtHQ6luEbhiGLFYj8q4JJGcAE12mgW3j7RdLXTr/+xtbMDlIb6a/l t5ZIh93zF8lwXx1O49s5OWPN+GPhFeaZ8RT42v8AVoFupLu6uX0+CIyIvm+Y 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 gf8ATRhg7sVY8e/DxfG+l2t6jx6Z4oskV7W8gkYhHHzeWXADFN3RsAqfmA5K mn4P8I+OYry3PjXxPBqNhY7HtrO3UMJZFBCtM7RqzbeGGSSXCsSCoyAWIW0u z+JniCTQLGfU/E11FCL4z/uraxRUTYpm2Fl8xcHaok3FOQoUkY/wrSWP4i/E ZZ54J5hd23mSQQpEjN+9zhUZgOc9WLd3w24VYtfAfizwz4+1fWPC2qaUdM1q UTXkWpxu7xOXZmKBMbsbn25Zc7sHoGqx4W8DeKfD3jnXdRm8QQXemapLHNJP Kha8fyySseMCNFwzKSAflUBQmQVAOfh8ReIvhLqOrxeINBn1Lw5dahNeR6xZ JH5g8w5zMFCqWLMi/NswdwUsoUCx4l1myi074aaN4d1aCTTbu7iW2nuY5Hjl EAVY/M8pkJYOyHyyoBdRuKBSD1EWgeKbSz1zRo20q603Ubu6lt7qeQh7WO4J ZlMBiZZdru5wzgPnB2jgV7j4T6Xd/C+08FT3k7raZlgvcYZJyWYvsBwVy7Da T904znDUAU/HHw/1XxXb2d5q3irTdPfSXa5hvrXTpIWgGAWJZrkgD5VbOMja MEc59Mryfwx4G+IqSw6f4r8XQXmgJ801tEfOlufm3eXJJJGGMZ5DAscrlMYP HrFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFY8Xivw/ Pri6JDrVjLqbeYPssc6s4MeN6kA8MM/dPPDHHynGxQAUUUUAFFFFABRRRQAU UUUAFU9V0qx1zS7jTNTto7mzuE2SxP0YfzBBwQRyCARgirlFAHP/ANja7ZfL pniPdCeBHqtoLry1H3QjI0TnjqZGkY4BznJY/sbXb35dT8R7YRwY9KtBa+Yp +8HZ2lccdDG0bDJOc4K9BRQBXsbG306zjtbWPy4UyQCxYkkkszMclmJJJYkk kkkkmrFFFABRRWPa+KtCvvEM+gWepwXGpwRNNNBCS/lqr7GDMPlDBiAVJ3D0 oA2KKKKACiiigAooooAKKKKACiiigAooooAKKKy4/EekTeJZvDsV9G+rQ2/2 mW2UElI8gZY4wD8y/KTnBBxg5oA1KKx5vFWhQeI7bw8+pwHV7jdstEJdxtTe d2M7Pl5G7Ge2a2KACiiigAoorL1bxHpGhXGn2+pX0cE+o3C21pGQWaWQkAAA AnGSAWPAyMkZFAGpXL+I/B39ta5pev2Wpz2Or6XuFs7L50BVsBw8RIzldy5U q3I5O1cdRVPUtW03RrdbjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaAMv+zvFM/7 u58RWMUJ+89hpZjmHptaWWVBz1yjcZxg4I0ND0az8PaHZaRYJstbSJYkyAC2 OrNgAFicknHJJNSaVqlprWl2+pWDyPaXKb4neJ4yy9jtcA4PUHHIwRwRVygA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKr31/Z6ZZyXl/dwWlrHjf NPII0XJAGWPAySB+NAFiisvTfEug6zcNb6Xrem306oXaO1uklYLkDJCknGSB n3FR3Xizw3Y+R9s8QaVb+fEs8PnXsaeZG33XXJ5U4OCODQBsUVn6Zruj635v 9k6rY3/k48z7JcJLsznGdpOM4PX0NR6l4l0HRrhbfVNb02xnZA6x3V0kTFck ZAYg4yCM+xoA1KKr2N/Z6nZx3lhdwXdrJnZNBIJEbBIOGHBwQR+FWKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK 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 eTGA3AkRcnad2OuMnoCaJPHvhuDxLD4eub+S21SZ9kUNzazQiQ5IG13QKwJU gEHDHgZyK4+SaFP2l4Utr+MO+hbLmJroElt5YRqrBsHaEfYuzjL5PzB5PG80 rfGj4fQQ3O5k+1OYLcJ5yKUAZmLnHlsFI4AbCSbSWwAAd5f+I9I03VLPS7q+ jGoXjhYLRAZJWzu+bYoJCfK2XICjByRVfQPGGgeKbi/g0TUo717BwlwY0bap JYDDEAMDtblSRx7ivM/H/hrTo/jD4Kkt9KggXUpZxePbFla6xguJUWNgVIc7 ifvq7ByijcPYIbCzt7y5vIbSCO6utv2iZIwHl2jC7mHLYHAz0oAj1bUodG0a +1S4WRoLK3kuJFjALFUUsQMkDOB6ivM/hVY3HjOzk8ceK4/tt9PdudMjmYPB aRKVG6CM58tt6Ebj837sHPJLdR8VLF9Q+F/iGGOOCRltDMROzBQIyJCRt53A KSvYsBnjNY/wKvre7+FGmwwSb5LSWeGcbSNjmRpAOevyup49fXNAHWeKPCOi +MdLew1iyjmBRlinCgSwE4O6N8ZU5VfY4wQRxWHc+C/7c+EFn4Z1K0g+3xaV FFGJmyILpIQqtuXOMN1K5yMjkEg9xUcM8NyheCWOVA7IWRgwDKxVhx3DAgjs QRQB538EtYS9+H8Wkyp5GpaNLJaXds0SxOh3EqSg5GQcEsASyvnJyTqeL7W2 8S+JdB8LTpaTQK7atexybHfyoSqooRkbh5JACflyqSLk5Iri9TlT4dfHmLVL hrG10LxNEVmnkgVfJlVRuAYHK5fy2ZjhT5hJyV3D0DwjE95ea34imXH9pXfl 2hE7SA2kI8uIrkBQrt5so28ETA5NAHUUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF 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 25XJVQApBw4k+FvgXWfA+jtaanrMFxG24rZ2lsixo5blzKVEkjEBRzjAyMEB SPQKKAPP/hx4Q8U+ELM6PqWsWNxotpK72S20JE0isWOJCwwq5O/C5bccb9o2 t6BRRQBxfxW0q21n4eahZz20lxO7xJZLFs3i5eRUiwX4UFnCscg7Wb1roPDe iQ+HPDWm6NB5ZSzt0iLpGIxIwHzPtHQs2WPJ5J5NcP4M+Ddj4T1R7ifV7vU7 OK4+02FjONsVvLyBKyglXlC4AfC45OM42+mUAcHrXgrUrbx5D4z8Kz2iahMg t9Ttb52EV1DheVYKxjcbEHAxwD2YPqW/hu81HxRZ+JNfkgFxYRPHYWNoxaO2 ZxtkcykK0rMoUcqqqMjBPzV1FFAHB+LfCGvXPjHTfF3hbULSLVLa3azmttQZ xbzQncRny/mJDNnB4JCnjb82X4j+HvinxHrHhrWJNesbbU7DzXuZVtzLDbsV XYLeB8qcMpJdyGyQ38KIvqFFAHm/iPwv4w1bxR4a1W2XSiugyylXuNRmWS8V wqkv5UKhGITJA3LlsEFcg+iQGZreJriOOOcoDIkbl1VscgMQCRnvgZ9BUlFA BXld58Mda8O+JZ9d+HWrWmmC7dDd6Vdxn7K4BJOMAkDOAFABUM+1lBC16pRQ Bw9vpPxA1iKS28Qa3pWlWp4LeH4pPPkUqwI8ybIjwSpyqluOCvU9pBBDa28V vbxRwwRIEjjjUKqKBgAAcAAcYqSigDk/iL4MXx14TbR/MjhnFxFNDO+4iEhs O2AfmPltIADwSRyOo6iCCG1t4re3ijhgiQJHHGoVUUDAAA4AA4xUlFAGH4tt fEd54flh8LahaWGqF1KTXUW9dufmA4IBx3Kt3GBncNiATLbxLcSRyThAJHjQ orNjkhSSQM9snHqakooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKw 4PGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGKANyiiq99f2emWcl5f3cFp ax43zTyCNFyQBljwMkgfjQBYorP0zXdH1vzf7J1Wxv8AyceZ9kuEl2ZzjO0n GcHr6GtCgAooqOeeG1t5bi4ljhgiQvJJIwVUUDJJJ4AA5zQBJRXP/wDCd+D/ APoa9D/8GMP/AMVW5BPDdW8VxbyxzQSoHjkjYMrqRkEEcEEc5oAkoorHuvFW hWesQaRLqcDanNKsK2UJMswYruBZEyyrtGSzAKBySKANiiiigAooooAKKz9T 13R9E8r+1tVsbDzs+X9ruEi34xnG4jOMjp6ipNN1bTdZt2uNL1C0voFco0lr MsqhsA4JUkZwQce4oAuUUVj33izw3pl5JZ3/AIg0q0uo8b4Z72ON1yARlScj IIP40AbFFFFABRRRQAUUUUAFFFFABRUc88Nrby3FxLHDBEheSSRgqooGSSTw ABzms/Q/EekeJbe5uNGvo7yC3uGtpJIwdvmKASASMMMMDuGQc8E0AalFY+je KtC8Q3l9a6PqcF9JY+X9oMBLIu8Erhx8rdD90nGMHBrYoAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvE/jb4bm 1DV4dYsY5ItQ07R5ryG5guSjnyJ4ScgjChElkcFTuJOP4QD7ZXJzoo+LmnuE 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 I7nT31i4iVZP3iyRGKIYO5F3Ar6quc8qOldJ4B8F/wDCGajr0X9tQXX2+VLz 7Bb2/kR2e4ycpHvbCtjaOnEWMnHGP8DpPN8PeIpPM8zf4guW379+7KR87t75 +u98/wB5upAKfwls7bT/AIg/Ee1s7eO3t472ARxRyo6oMzcDYAFH+x1T7p5U 165XlfwzIb4m/EsiONP9NgGEeNh1m5zGAMnqQfmBJDEsGJ9UoAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuHey 8cSeModcay0M2sOnyWkdl/acvyu8iO0m/wCzZ5EaDbjtnPJruKKAOL8ZfDvT fGHiDw9ql3HGTp1wTcKVX9/DgsEbKncPMCcEgbXk7kUfEjQNe8WeGLzw/pcO mrBdpGWurq7dGRlkD4EaxMCMKOdw6njjntKKAOL0HTfFWm+CrXQtR0rw/fvb W6WePt0qxTwhSp3hoGwdoQEchssflwAa/wALvDHiHwZ4fGhauNNlt43eSK4t byZ2yxB2mN0AUfeOVIHT5clmPeUUAFcn8Q/D2veJPDS2nhzWpNJ1CO4SUSrM 8QkUBlKMycgfNu6HlQMdx1lFAHL6N4Znj8W33ivVBAupXVpHZxwQTSypbxqx LAO5Abcdh4jQDHQkszZ/jTwRearrmmeKvDt1BaeJdM/dxNdgtBPCdwaNwASO HfDKM/MR6MvcUUAcfP4c1PxLrmnXniW3sbez0qVLqztrG8mlL3Azh5GKxrtX 5SBsJzn5gpZWy/FXhrxVrvjHw/rNvYeHzBodxM8cd3eSv9oV9oBIEOI3AXcD lsNg8459EooA838YeF/GHiHxR4Y1ixXSrP8AsSXzmX+0Zg0+8RmSPIh+VfkZ M87lbJA5Wo/EXhXxbrfjHw74jh03w/a3GkO+8DU5y1wjYwhdYFIA+fAO4fOc ggkH0yigDzPxt4P8VeKfEvhfVYLfRoE0O4W6Mb38pMzExMyZEHygNGQG5yCD gdK9IgMzW8TXEccc5QGRI3LqrY5AYgEjPfAz6CpKKAMfxEuty6dJbaLbWMsk 8UkbSXd7Lb+USMKR5SFj1PRkIwMHJyKfhbStStPCttoOvWOmtBa2UVn+5uGn W4VU2NvV4kCggDj5s5Ppz0lFAHF+A/AkPw/8P6ha6esdxeXFxLKrzSAb1BIh RnCZAC7c/KcMzkAg4rn7Lwf42sfipqPjWK38PlL+3FvLZNfzZChIxlZPI67o 1PKngke49UooA8z13wJ4mtPiRJ408H6jpq3F5b+Re2uqBvLICqo2lFJx8inq CCvUhiAR+BPF9t8TZvEkfiO0mt7yy+yXEk0LebbKSGK28fKAblBUsWxuO4SE Et6ZRQBy+n6VrbePr/WtUjsfsItBaacILuVniTfucvGVCbpCEJIPHlqvzctX L6V4O8YeG/iLr2vaNHoZ0jVpTJNYTXkwd2GSJN/lHaxZmYqMqN5XnCkeoUUA c3488KQ+M/B1/oziMTum+1kfH7uZeUOcEgZ+UkDO1mA61X8R+CodW+G954Ut 55AXtwI55XG6SZWEgeVgpyWkG5zjJ3MeprrKKAM/Q9M/sbQ7LTjN58kESrLO V2meTq8jDJ+Z2LMSSSSxJJPNeZ+Ifhf4msfGM/iH4f8AiCPS3v3aa+t7qVvL aU5+YDa4cHexww+UklTyAvrlFAHL6Bo2u6Loc1xe3cGteJbnY1xNO4t4jjAE aMkZKxqNxA28szNhd5xh+APDfi3whZalbXlto12b69nvzKmpT5DugwnzxMxG 5RlixOCT8xHPolFAHnfhXw34t0Txj4g1m8ttGli1u4heRY9SnZrdE3DjfEd5 2t0yo4wNowB0mk2nimHxRrFxquqWNxokuz+z7aG3KyQ8c7m/nktuPI2D5T0F FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAVyepfEnwtpGsro9/e3cGoO4SO3bTrktKSxUbMR/OCwIBXIPbNdZX j/xf/wCSh/DH/sKn/wBG29AHoH/CZaX/AM+uuf8Agivf/jNamlarY65pdvqe mXMdzZ3Cb4pU6MP5gg5BB5BBBwRRqup22jaXcaheSRxwQJuJeVIwT0C7nZVB JIAyQMkc1j634j0H4f8Ah/zNTvo4YIkf7NbKEWR1B+WKKNQoIUMqjjgYLHq1 AHSUVwd58V9It9GtdVt9H8QX9tLb/aJjaaeW+yLtDYmJIVTtO7qflw33WUtY 1X4n6Bp+lx6hZxalrED263bHS7NpRFAd48yRjhUAMTghiGBU5HBwAdpRWHoH i7RfEnhpdfsL2MWAQtM0zBDblRllk5wpUcnnGMEEggnDuvidYWOjwa3c6Hrk ehTSqiambePy9jNtWUp5nmrGeoJQZBXAywBAO0nmW2t5Z3EhSNC7CONnYgDP CqCWPsASe1c/pfjnRdS8EL4veWSx0ko7s92ArKFcpyFJySy4AGScgDk4qxqP jDQNJ8NW/iG/1KODS7hI3hmZGzIHGV2pjcSRzjGQAScYNSeFvEln4u8OWmuW Ec8drdb9iTqA42uyHIBI6qe9AFfwj4x0vxtp13f6R55tbe7e13zJs8wqFO5R nO0hhjOD6gV0FeV/AeOGLwrr0duI1gTXbhYxGQVChIsYIdwRj/bf/ebqfVKA Cqc+q2Nrqlnpk9zHHeXqSPbRNwZRHt37exIDA464yegOLlfPnjG/1OPVLf4t Whklg0/WH062hiaOWKWwTMZkEiqdoeTz1ywP+tXB4UsAfQdFRwTw3VvFcW8s c0EqB45I2DK6kZBBHBBHOax9X8UW2lapaaTDaXeo6pco0q2VkELpEvWVy7Kq JnCgswyTgZ5wAZ4+I3hyTxvb+EbW5kutUkeVJPJTMcDIhch2JAzgEYXdggg4 rrK8XXWk139onQ5bSyvobq10+e21K1vLJd1oF80q28FgNxdPmU42uoDHeVHa af8AEa31DxjN4WTw/rMeqW6LJcpJ9m2wxnZ85YTEEASKcLk89DQB2lFc/wCI PFJ8P3ljbnQtVv8A7dKsED2SwsDKQx2kNIrDCozFiNoHU9cXNS1oWNwtpbWF 3qV4UEjW1oYw0cZJAdjI6KoJBABOWw2AQrEAGpRXN6V450XVdL1a+82S1Ojv KmpW84BltTHu3bghYEYViCpIOCByCBhwfGHw1eaHqOrWMGq3sNjK6SR21mzu UXB804OI4yCSDIUzsfjKkUAegUV5HrfxD1i78T+CVsdC1m20nUnN3GYXga4v R5ZwmwSFFixIrMXIIHI2lM16pY3Et3ZxzzWU9lI2cwTlC6YJHJRmXnrwT19e KAC+vYtPs5LqZJ3jTGRBA8znJA4RAWPXsOOvSsPQ/HvhvxHrNzo+l38kuoWy M81vJazRNGFYK2d6DBDMBjrXSV8+eIkm8NeM9T+Iun3t2UtPEa6fqUNpKbpH tTFEzZZsbTuyhQ/KrFFUrsBIB9B1z/ifxt4d8HfZf7f1D7H9q3+T+5kk3bcb vuKcY3L19a2LC+t9T062v7OTzLW6iSaF9pG5GAKnB5GQR1r548dXdvrPjLwj 45t9agjtbzVRBYG7jISK2gkjHmsuF+US+cx3OCVdPu4baAfQem6nBqtu09vH doiuUIurSW3bOAeFkVSRz1xjr6GrlZev6/Y+G9La/v2kILiKGCFd8txK3CxR p1Z2PQfUnABIw5fiJYWHiGx0TWtK1XR7rUMCze7ijeOdy4QIHhdwGyw64wME kZGQDsKK5PXviT4U8N6zHo+o6rGmoO8SmFQT5YkYAM7/AHEAB3HcQdvODkZp y/FTQofFFjoktpqsa6hKIbLUWtCLS5YgYMb5y6kso3BSvzA52ndQB3FFY+ve JLPQPscUsc91fX0vk2ljaqGmnb+IqCQAqj5mZiFUdTyM5+meOrC+8US+Gryy vtJ1dYhNFb36xj7QhBJMTI7K+MHOD2P91sAHUUVj694ks9A+xxSxz3V9fS+T aWNqoaadv4ioJACqPmZmIVR1PIzj/wDCyNGt9Y/sbU7XVdO1duY7CWxeeSVN u7ehg8xWXhhweCjZAxQB2FFY+peIrfT7O0lS0vry4vNpt7K3tz57glQWKPt8 tV3LuZyoXIBIJANPS/G+lahf6rp1z5ml6hpSCW7tb941aOIoH83cjshTDDJD fL3xkZAOkorh4Piv4avZ9VisPt1+1hKkC/Y7Zp/tcrJI4WEJktxDJ8xCrxnO Oa6Dwt4ks/F3hy01ywjnjtbrfsSdQHG12Q5AJHVT3oA2KKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAK8b+M0EN146+G1vcRRzQS6mySRyKGV1M tuCCDwQRxivZK878VfDvWvFPirStam8TWkKaRcefY2q6WSqkOH+dvOBYnagO No+XgLk0AdBL4B8KsYHt9B02ynguIbiOe0s4o5FaORZAAwXIBK4PqCRVP4lS 29z8NfFEStBM0Fo6yIYDceW+0OAUU5VsFWDH7mVc8CtD7H4w/wCg7of/AIJp v/kqsu58DXf/AAgd14csNajt7vUXlfUtSexR3uWlJMx2KVCls7QedqgAcgMA Cv4PihPwRsI2+yQxNo7bzLALaIZQ5ZxIrjHJLOVZW5faQ2Kp/ApET4UaaUs/ IZ5Zy8mFH2g+Yw38HJwAE+bB+TpjBOxpPhnxJonhKLQrLxHYo1vEsFvdvpsk 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 5I5kHJLH5FQjIwRjNV/HXw/1jx7odppV/wCILG3jhlFw7waY+XkG9RjM5wu1 wMcnIznBwACx4vu9Cfxp4Z0+XS4NS8S/v59LSe4McVvgBmeTG4jIQ7Dsb5k4 24yOX1Sz1S2/aA8FzanewXbS2l0FaGy8hVIilyqkgkrgqdpkchi5wodQeg8T fDi88RajpGvR+IP7M8Tad8g1CztT5ckeWIXyWkOMbiPvEEFgQQQFr3vwtvbr xRoviZfF98mtWUXlXV01tG/njBB8tD8kPyu4xtYcg4LbmYAp+PdMudI+KnhH xtFHJeQK/wDZctnBE7yqGSZjKoRWLhVZ2KgZ+QdckrYbT7nxR8YNF8TWWi3d pp+kW80E9/fK9u1yWjIVI4XAfCmUneVAOWGflGTWtI1DVviNDb+Ftfk0q70n RxBfXj28N4VWSRTFExc+YXIjdyWJwApHLsSatpPxB8PaNfa0/wAQ471NOt5L trWTQ4UWcRqX2FlbIDYxkcjPFAFO4lN/+0FeWL6jfaVdLoiRWdxCkKecgfzH RRKkglySTuULjynXBwWroIvh7pNn47sPFd7rV9c6yN0MJn+zxic+U4wVjiTe wTcfXC+i0fET4ZaX8QbOIyyfYtTgwIb5I95CZyUZcjcvJI5GDyDywJ4R8BX/ AIa+13l94pvtc1d4nhtbm/Mjx2yNtJAjMhzlkUt8wyFAG3kkA5/wXaRf8L58 d3JgnjmjigRfPDyNtdVYkSByiqSqlUPzbcBdgRlr1iuD0rwNrWm+PL/xW+va bLPqKRxXUI0gqNiBRiNzMWQkJ6kZ5KnAx3lABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcf4k+G2he I9Yj1rzL7S9ZTA/tHTLgwTMoUrgnBB4OM43YAGcDFSaV8PtM097eW+1DWdbn tbj7TbyavqEk4icLgEJkJkZJBKkgnIPTHWUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFAH/2Q== --0-389153779-1281447374=:62829-- From David.Kinzel@encana.com Tue Aug 10 08:43:49 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_64,MIME_QP_LONG_LINE autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7ADhmQx091090 for ; Tue, 10 Aug 2010 08:43:49 -0500 X-ASG-Debug-ID: 1281448367-2d3f02140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from CGYSNEX001.encana.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9CAB614C9114 for ; Tue, 10 Aug 2010 06:52:48 -0700 (PDT) Received: from CGYSNEX001.encana.com (cgysnex001.encana.com [142.56.87.68]) by cuda.sgi.com with ESMTP id rRtHDWz5dj5aUGvg for ; Tue, 10 Aug 2010 06:52:48 -0700 (PDT) Received: from CGYEX202.encana.com (unverified) by CGYSNEX001.encana.com (Clearswift SMTPRS 5.3.2) with ESMTP id for ; Tue, 10 Aug 2010 07:44:11 -0600 Received: from CGYEX710.encana.com (unverified) by CGYEX202.encana.com (Clearswift SMTPRS 5.3.2) with ESMTP id for ; Tue, 10 Aug 2010 07:44:10 -0600 Received: from CGYEX705.encana.com ([10.56.98.106]) by CGYEX710.encana.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 10 Aug 2010 07:44:11 -0600 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-ASG-Orig-Subj: RE: [PATCH] xfstests: fix NIS detection damage Subject: RE: [PATCH] xfstests: fix NIS detection damage Date: Tue, 10 Aug 2010 07:44:10 -0600 Message-ID: In-Reply-To: <1281057519-24730-1-git-send-email-david@fromorbit.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] xfstests: fix NIS detection damage Thread-Index: Acs1CJ5JpP7w7Mt0ROSgpZj3jtKvcgDiTagQ References: <1281057519-24730-1-git-send-email-david@fromorbit.com> From: "Kinzel, David" To: X-OriginalArrivalTime: 10 Aug 2010 13:44:11.0206 (UTC) FILETIME=[1CEFF660:01CB3892] X-Barracuda-Connect: cgysnex001.encana.com[142.56.87.68] X-Barracuda-Start-Time: 1281448368 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.20 X-Barracuda-Spam-Status: No, SCORE=-1.20 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MIME_QP_LONG_LINE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37587 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.82 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner said,=0D=0A>=0D=0A>NIS detection wasn't t= ested on machines without NIS enabled, =0D=0A>so many tests are=0D=0A>failin= g on non-NIS machines. the _yp_active function has no =0D=0A>specific retur= n=0D=0A>value so always evaluates as 0 (active) and the "_cat_passwd"= =0D=0A>function is=0D=0A>called from within an awk script which is not vali= d as the =0D=0A>shell may run with a=0D=0A>sanitised environment. Hence the = functions do not need =0D=0A>specific export calls,=0D=0A>either, as unsanit= ised subshells will automatically inherit =0D=0A>the parent's=0D=0A>environm= ent.=0D=0A>=0D=0A=0D=0AIs there any reason why getent passwd/group cannot be= used for these, as=0D=0Ait would get local and nss defined accounts? This w= ould add support for=0D=0Apeople using LDAP as well.=0D=0A=0D=0A=0D=0A>Signe= d-off-by: Dave Chinner =0D=0A>---=0D=0A> common.attr | = 9 +++++++--=0D=0A> common.rc | 6 +++---=0D=0A> 2 files changed, 10 i= nsertions(+), 5 deletions(-)=0D=0A>=0D=0A>diff --git a/common.attr b/common.= attr=0D=0A>index 51616bc..6ba0b32 100644=0D=0A>--- a/common.attr=0D=0A>+++ b= /common.attr=0D=0A>@@ -90,10 +90,14 @@ _create_n_aces()=0D=0A> #=0D=0A> _fil= ter_aces()=0D=0A> {=0D=0A>- $AWK_PROG '=0D=0A>+ tmp_file=3D`mktemp /tm= p/ace.XXXXXX`=0D=0A>+=0D=0A>+ (_cat_passwd; _cat_group) > $tmp_fil= e=0D=0A>+=0D=0A>+ $AWK_PROG -v tmpfile=3D$tmp_file '=0D=0A> BEGIN = {=0D=0A> FS=3D":"=0D=0A>- while ( "_cat_passwd" | getline > 0 ) = {=0D=0A>+ while ( getline 0 ) {=0D=0A> idlist[$1] =3D $3= =0D=0A> }=0D=0A> }=0D=0A>@@ -102,6 +106,7 @@ _filter_aces()=0D=0A> /= ^default:user/ { if ($3 in idlist) sub($3, =0D=0A>idlist[$3]); print; next= }=0D=0A> {print}=0D=0A> '=0D=0A>+ rm -f $tmp_file=0D=0A> }=0D=0A>= =0D=0A> _filter_aces_notypes()=0D=0A>diff --git a/common.rc b/common.r= c=0D=0A>index e0cdfe6..08d4f71 100644=0D=0A>--- a/common.rc=0D=0A>+++ b/comm= on.rc=0D=0A>@@ -800,13 +800,14 @@ _yp_active()=0D=0A> local dn=0D=0A> dn= =3D$(domainname 2>/dev/null)=0D=0A> test -n "${dn}" -a "${dn}" !=3D "(none)= "=0D=0A>+ echo $?=0D=0A> }=0D=0A> =0D=0A> # cat the password file=0D=0A> = #=0D=0A> _cat_passwd()=0D=0A> {=0D=0A>- [ _yp_active ] && ypcat passw= d=0D=0A>+ [ $(_yp_active) -eq 0 ] && ypcat passwd=0D=0A> cat /etc/passw= d=0D=0A> }=0D=0A> =0D=0A>@@ -814,10 +815,9 @@ _cat_passwd()=0D=0A> #=0D=0A> = _cat_group()=0D=0A> {=0D=0A>- [ _yp_active ] && ypcat group=0D=0A>+ [ $(_yp_= active) -eq 0 ] && ypcat group=0D=0A> cat /etc/group=0D=0A> }=0D=0A>-export= -f _yp_active _cat_passwd _cat_group=0D=0A> =0D=0A> # check for the fsgqa u= ser on the machine=0D=0A> #=0D=0A>-- =0D=0A>1.7.1=0D=0A>=0D=0A>_____________= __________________________________=0D=0A>xfs mailing list=0D=0A>xfs@oss.sgi.= com=0D=0A>http://oss.sgi.com/mailman/listinfo/xfs=0D=0A>=0D=0A=0D=0AThis ema= il communication and any files transmitted with it may contain confidential = and or proprietary information and is provided for the use of the intended r= ecipient only. Any review, retransmission or dissemination of this informat= ion by anyone other than the intended recipient is prohibited. If you recei= ve this email in error, please contact the sender and delete this communicat= ion and any copies immediately. Thank you.=0D=0Ahttp://www.encana.co= m=0D=0A=0D=0A From sgi-linux-xfs@lo.gmane.org Tue Aug 10 11:01:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7AG1T8N095937 for ; Tue, 10 Aug 2010 11:01:31 -0500 X-ASG-Debug-ID: 1281456110-7d7b00610000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lo.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C234D16D8947 for ; Tue, 10 Aug 2010 09:01:51 -0700 (PDT) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by cuda.sgi.com with ESMTP id RRkVzAgvf7Wm9C7h for ; Tue, 10 Aug 2010 09:01:51 -0700 (PDT) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1OirGt-0008GP-IG for linux-xfs@oss.sgi.com; Tue, 10 Aug 2010 18:01:47 +0200 Received: from barriere.frankfurter-softwarefabrik.de ([217.11.197.1]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 10 Aug 2010 18:01:47 +0200 Received: from niemayer by barriere.frankfurter-softwarefabrik.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 10 Aug 2010 18:01:47 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Peter Niemayer X-ASG-Orig-Subj: observed significant performance improvement using "delaylog" in a real-world application Subject: observed significant performance improvement using "delaylog" in a real-world application Date: Tue, 10 Aug 2010 18:01:33 +0200 Lines: 25 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: barriere.frankfurter-softwarefabrik.de User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.7) Gecko/20100713 Thunderbird/3.1.1 X-Barracuda-Connect: lo.gmane.org[80.91.229.12] X-Barracuda-Start-Time: 1281456111 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37596 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi all, we use XFS for a very I/O-intensive, in-house developed real-time database application, and whenever we see new or significantly changed file-systems becoming available, we run a benchmark using this application on a conserved, fixed real-world data set. I'm pleased to state that using the experimental "delaylog" mount option (in vanilla linux-2.6.35) we measured a 17% performance increase for our benchmark scenario. (Other mount-options in use both before and after the "delaylog" option: noatime,nodiratime,nobarrier) That's a lot given that XFS was the fastest performing file-system for this application already. It's also a promising result regarding stability, as several other tests (using e.g. reiser4 or ceph) in the past led to crashes in the same benchmark scenario. So thanks to all contributing developers for this significant optimization! Regards, Peter Niemayer From global@a-aidunion.org Tue Aug 10 12:42:36 2010 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7AHgYPX099438 for ; Tue, 10 Aug 2010 12:42:35 -0500 X-ASG-Debug-ID: 1281462693-4df200160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from n8.bullet.mail.ac4.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 7F7F914C93EA for ; Tue, 10 Aug 2010 10:51:33 -0700 (PDT) Received: from n8.bullet.mail.ac4.yahoo.com (n8.bullet.mail.ac4.yahoo.com [76.13.13.236]) by cuda.sgi.com with SMTP id MK0qJg1lUclOUaNb for ; Tue, 10 Aug 2010 10:51:33 -0700 (PDT) Received: from [76.13.13.26] by n8.bullet.mail.ac4.yahoo.com with NNFMP; 10 Aug 2010 17:42:55 -0000 Received: from [67.195.9.81] by t3.bullet.mail.ac4.yahoo.com with NNFMP; 10 Aug 2010 17:42:53 -0000 Received: from [98.137.27.223] by t1.bullet.mail.gq1.yahoo.com with NNFMP; 10 Aug 2010 17:42:52 -0000 Received: from [127.0.0.1] by omp201.mail.gq1.yahoo.com with NNFMP; 10 Aug 2010 17:42:52 -0000 X-Yahoo-Newman-Property: ymail-5 X-Yahoo-Newman-Id: 231303.32829.bm@omp201.mail.gq1.yahoo.com Received: (qmail 69612 invoked by uid 60001); 10 Aug 2010 17:42:52 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1281462171; bh=K8rMiLjvmfCj4QJMx637p6qotj2eam2oON0AzCxpE6I=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=hPhTnGlhhbeSowtpAQ2l15Q8verfZ7eUd3vhThbhQ68oqgbltQA0FA9yPpz+SMSNEKr4bjeHhCmVp5zlERRlFBIstofL6a390ZsopThchsYJmdejwL0n3zaGje8TXXiLGl0ihl5ogx25LXOCEcLy/Vx50VQRlnRclJIHlHj66BQ= Message-ID: <910314.65851.qm@web1216.biz.mail.gq1.yahoo.com> X-YMail-OSG: 3sri3z4VM1lSLZIbt4NYR2UEqgGIUY1dp9iFRWuZBSLTX1w Q9bdgsROly2a.bhVEw3EXKft6GgZdC_5Q3gGnKniJcMHroOl9VXx7vwxbkyw yDEDHJPioLzRpolVX4ga2_5gM31udRjzI8U0sfhxYI0amVHRVFe2ExYG7LXx vteH_EZLl2WCCPuL8BMUoUlm5fykYuLYa6B7ib1cMDOgyp.2_Sz33oul3CBX 1.v2ovAZ49mCiMDjdcN5.ljGW1K_52XKnZktUnLnk_qHXtMYY_z6CunAmx61 tKt2qiLBf3FTVm22Ei6.w4iSYzPcmnHLQ4jMW5Pkn6tXIgz7AQ6iMmjG6X4a qZd1Zrerhwr03ynhwI.kn2bM4nFVfToNLirQg4QHjAIXgf_oaSa6FeexDgeA XTTBNUe4YlIxv4A9RuK4c7SJiE.82n_LBjKSfL7yMJd6C0xwOD18w6QPSSWU oY38jwHBFN2wS7MFRBS4B.RdCOJcpKZqFmi.8uOuiJmNml7tdnKivNjqOCHi 1EHkSzcj5NnH8drGQcyKjw1am48TH Received: from [41.219.195.70] by web1216.biz.mail.gq1.yahoo.com via HTTP; Tue, 10 Aug 2010 10:42:51 PDT X-Mailer: YahooMailClassic/11.3.2 YahooMailWebService/0.8.105.279950 Date: Tue, 10 Aug 2010 10:42:51 -0700 (PDT) From: Project Contracting Office X-ASG-Orig-Subj: Work and Migrate to Canada Subject: Work and Migrate to Canada To: undisclosed recipients: ; MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-109243609-1281462171=:65851" X-Barracuda-Connect: n8.bullet.mail.ac4.yahoo.com[76.13.13.236] X-Barracuda-Start-Time: 1281462695 X-Barracuda-Bayes: INNOCENT GLOBAL 0.6872 1.0000 1.2740 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.27 X-Barracuda-Spam-Status: No, SCORE=1.27 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37603 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0-109243609-1281462171=:65851 Content-Type: multipart/alternative; boundary="0-357819647-1281462171=:65851" --0-357819647-1281462171=:65851 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Work and Migrate to Canada --0-357819647-1281462171=:65851 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Work and Migrate to Canada
--0-357819647-1281462171=:65851-- --0-109243609-1281462171=:65851 Content-Type: image/pjpeg; name="Employment2.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Employment2.jpg" /9j/4AAQSkZJRgABAQEAYABgAAD/4QHeRXhpZgAASUkqAAgAAAARAP4ABAAB AAAAAgAAAP8AAwABAAAAAwAAAAABBAABAAAApAYAAAEBBAABAAAAmAgAAAIB AwABAAAAAQAAAAMBAwABAAAAAgAAAAYBAwABAAAAAAAAAAoBAwABAAAAAQAA ABEBBAAdAAAA2gAAABUBAwABAAAAAQAAABYBBAABAAAATAAAABcBBAAdAAAA TgEAABoBBQABAAAAwgEAABsBBQABAAAAygEAABwBAwABAAAAAQCpdCgBAwAB AAAAAgCYCCkBAwACAAAA0gEAAAAAAAAAAgAAo4UAAHqyAAAOZAEAyI8BAOiR AQAVlwEAnaIBAGqpAQCksAEAJr0BAFjKAQBX2QEAY+QBAKDqAQC18gEA2/QB AAT4AQCc+AEANPkBAMz5AQBk+gEA/PoBAJT7AQAs/AEAxPwBAFz9AQD0/QEA jP4BAKODAADXLAAAlLEAALorAAAgAgAALQUAAIgLAADNBgAAOgcAAIIMAAAy DQAA/w4AAAwLAAA9BgAAFQgAACYCAAApAwAAmAAAAJgAAACYAAAAmAAAAJgA AACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACQAAAAyAAAAAEAAADIAAAAAQAA AAAAAQD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgy IRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjL/wAARCAiYBqQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAA AAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi 4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMi MoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH SElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJma oqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiuLk1uHUr2G90/y5HifLnT5A090iORGq5x vTbKhYSKIwt2siSjaHIB2lFedpGdNe3SMRpd2ztcLbqZHIlK3BcKJXaRi4t9 plWAu4aZ0BMzmPqNI0OxhikPkxyJvEYSS128xTyOjkuDI77m3b2YhmHmLjeS QDcorH1HXEtWntV/dXYyseQsxwYnkWQQq4kdcxyKFUb2KNgbQWA+tv5t1DFa bposxxpuZz5u4ALKY0cRKRJC4JJbY7MVAQ0AbFFRwzLOhdBIAHZPnjZDlWKn hgDjI4PQjBGQQakoAKKKKACiiigAooooAKKKKACiiubtfF1iqKL29tGP2fzB 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 I1oBGUaeVpZsrnIHmgQSSum3ePOAYKY2L9RPCtzbywOZAkiFGMcjIwBGOGUg qfcEEdqAPni1Vru9WRLCNbl7jyjbzMsqRzzunmCVjh2K79Mtp84Zg9z8rMXe qcM3mJaK1zO1lcRId10MyXObe4aTIJ3KpW4uJpWZxg3EQV44ttydC+h8nVpI 3toBPDi1RCcIJJZBmJFAkQ/ukuI8J5h/0RLbEiri5y5I1+yHE0YtBbhXuYAz F7ZLdLMsSgdGdhFd4wHEMaXUiCYFGoA+i9FunutJtjN55uEijEzTRMhZzGrE /NHHn73JCLzkYUgqM/xz83gbWof+fi0e3wOXPmDZhF/jkO7CJkb22rlc5HH/ AAz1S4R7qylsYFuhkXMFvIFMcq3DRuioXKbYVZVODuWJLbl/MSOPY8fatceR DpVjbfa5JpQJrOTEHnojwttEkrLG0bmSOBl+bPnnAYxsjAHJ/DHTItR8R3up yx2jLKgnCQxQyxwxLPIIIFl25ZEdGAZeptkA2Rxxmb2SsPwvoFt4f0tLaFbt pI0W2868ZGlaKLKRDKfKEC8qAB94lhvZydygAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACio55ltreWdxIUjQuwjjZ2IAzwqglj7AEntUlABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRWffatb2sslqs0 H27yhIkU0hRMswSMO4B2b3O1eCWw20NtIGhQAUUVGJla4eACTeiK5JjYLhiQ MNjBPynIByOM4yMgElFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRVe+m 8izkYXMFtI2I4pZxlBIxCpkZXdlio2ggnOAcmo9N1Wx1e3a40+5juIlcoWT1 wCPwKlWB6MrKwyGBIBcooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK 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 riSYcGMwyQxtuWeJI7ku231ef7ZdRkDU3jupLd2jd0hnWa8mIVlKyk2TTHZl o1lgQbw8fk5c37nS7uS5/dzC0cXRj/cgzC2txNGT8yxbIZJLVUdMJLcARgBy kIBJLHaXlvlRJbw3lvIVu5S5kUThp7mbyy+8lYAzOdxkYfZY8yxMXnsXZF9c XeY44ZLy4nLLI8cbW8twYXuwXIO0QwXEsMpKFxhXIZYgttJc20Ul5Layrtt7 jUFhmiMTlJEkEiRqkbkFFxbyboI8uPs9pCpEyM6R+Y1xFKLuHUpftSTyTplZ i5edGyGhI3GRrsRKsZUNG7NtiW8MkYAG8a4CMLiSL7SjSR/aYlfJljEgDKxK siQLJMxaQhWvwk7srzu8cyO8dxELP7PLJEJ5YJQ187GW7Z3XymIM0gd7KIu/ LTWwiYNGJWSRZ7sJJdQSx3VwHkumu7dkihe7jaUeYmcB0e42XDMx8sx2JbpG YYCG1XNtbWCSLGHtIrUxbmwXtp0ilTKKA6NPbyKwMYMt2GlMTSBYQCR0S9u1 854JLa9lELTRstyNjak58uJ2U+f8mns6qyHzXlmYkvIqSV4orgxLPHp267n8 yKKIuJmM86gFtxd0kWW4uIgZHYf6PDCrl1uFEkbGGa3nkijkxPb5cW7hSTKJ YkBZwoRDZW7MpeNY4o7maRQgEcTWLiO0M11NNax/Z2eX7Ws1g8fm2kcxjESh RviQGGYqrBpI4kkO0m0gZwCS15lja0+3SWckqW9p5PyTSx7rW1t2AfiNvICz iQmMecbdnUKLcvXtm8qKKXzYDHLaNLgx+VHKqLGoX51aTy4rOOV1DIzFHUvv F2YCTLmWRdTige/Hmm8UyfZhKxaP7blyypD5k2Lfz921gLlVJHkQrIiTXJkQ XsayXCQNNqMUpQpLcSR3Ml08Y8sKAAZwwIcxw24ICwXIABHGbeFEkmnsZbKK JSzyTE/6IlvHZuwKlgvmmKWJmTIXacGd2tTQ1ulzK8N/L51zHjT7oqV+1q5a 7jlhTax2zTJbCX777ppCuGS5koluEnia6ji+yNc+XdRx4WN7UBTcKySBSCtv ZvMqlUd0823IG4pFBJeo2bq2nSSSZUvEMNtbKksJMnkGOJfnwjLJHZLtEg3m Q7nS1hoAI5ZnlCfu4bhkM8n2Sc+VY+ZA+SrFgpAMdq8K/KqJZ79yxr9pkjM1 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 KQ0SQFUe3jijvIbd0iXzFkkhu/IbTreD5FySj5jnZVV1kjkjUFnVWiACeFQ9 5bxm0aOd/sMC+Y0MUkUSxp5zyZ3mIQNGSVLbbaRgGdpZ5o5La6eW4iu18+6t 7iVrqRLqJnaeKS6jdQyJHxJJ9sSJo0BVI2ndEkFyu+MOwmjazeS981wlqk9y sy3Q86ZIo2Y/JI8880wl+fOyC6MbGKULUcyW8+4F/Osp4pzHPfMWae2j+0zA SAr5reZ5iXco6qqxvGQ8kEaABAsqW9pbSXM4EdoYAY7hITI8VrZSs4kwNu1k t1SVCU2IszZSOQzknlTI63nkG3eJpGNrviby5LeSe4Ntu+6q2kVtGkY4CtAH MYeaFpJdzvJHd2sk63Lhrm2nRQ1zLKtxdSRNhU/fySILQFAcPbFiivHAFjnl RftRu2+1uIrie8uDAtwzRvsuI2Kg7PmmE0whXchW3Ug+TJLcSAEjvc3E0ssj 2i3krwyyTxXLqqyzTNdsjMu5obcMDKHV/uWTupQXIdo7r97viNjPPJLFeN/Z skfl78+SFHkq77FL/Z7ZYzJ8n2NwmLgoEsAuuoywTTwPc212Y5pGmaVIJ0Nz FCXkBDIy+TcXMk21MrczSDy5FhJrww+Xa29mltOVeI2kFqT9mdt8S2SptYBV mkle/LI5by2SWRd67/PAJLndqBniiupJ/tNxdW6XUDqftck8kdqGjDsqZdmv 51XmMLLMqOrB3iJZIS8l3IY7W0ZxPLJGAYoo5FuBDkMiebBDbXEDBOredHbs hEiLFXu7mFrS4lN1aCBbd44p51EKKs1vJbxsFwHiMsYuLkx7WzHFaxJ/yzWr F7bTGW6ht7WOK6uLi8shEWMSvM8H2WGPk4UBpriJFHmIn2UqjBRPOwBHt8uF z5UHm+VJGbQybCzLYWsT27ZZdqwec0ZLszLE90xZJE3tY8vybwxyx5jEttGw VNk07Y1D5AuxUdhEJLdISgVmESOsYWS3EdzNbXk11OgkuhO8uwtGkj3KzzGS BTFIFO9zb/bFhwqMQyji6VI43t0lZbZJfLL4gaRit1IZb6Jw8pYNulbyluvu 4aZxbsm+N4o4gCSKFbgpFqJtJUZLeK5AkZ94lkuLp1klJcrAfMl/eZY7bZbk P8sKzRo3nC1urqWD7U+NQmnMflFJGsjcTSwkKSJCLkOzjcYzaRsFO6CASIi6 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 WngeO3ul02a1vLt5JRp7xNc3Eu5JWMMwvJg7b2IcF4kaKQgNc3ZG4iGMJXgj W6htobeaOS4kSS4tb1A0kom8mFDdq2GYmW5lbDELJ+7aMBpkgSGxFPC7xzQy 6b9kVyIRIwuVgjVbc3KDbjzUitrXySoOZU8x2cCeFJACO3svsMEFpcQwKLaK Oyn+023mRqsDwXF0XRVG9Ve3ulChgsoinIPmBjPYtnngurGSWD7PcR+UVmu5 pZHEwlluQsrhcmNJBvnaQoNyXe1WMMYgpymGCwdp45Cj29w00e8XDSSRvb3k jlnBWcuq2ymTy3DeZNIcwQxrViRVtLi4hmlki2XFzHcvbTsZA1uTc3boxk3G UyRlo3b51FpaCX5ZskAr2karptpDYTRmIW8Cq10Gj2u0UywtLGAVii8ua6uJ Mgq6wkMGD+fcWAZpQ7aRHdxm4RRZQyuQUaWMx2ceQCFEcQ05/MDcTNAJCSUe EeAzO8U8Uc7M8sLxWyyBUYruuEReHjIVdPtUh3puSTyv3UjuIpIWlm1G3maW +N2bskXQjSQ7mK3OcoqiSOKa7jdQoCzyCIIJVlQW4BGJlUPNYi0uYSiy28dv Gzm6gijNvArIQzOksjW8BXO5I2aPc7tdssckSG3ltUXznitPLLxzqGWI2trb oVZgYo2lijuy3JURgzZlSGJmjhjtHtLKPEkEMtvCv2ecuWl/0csvmSo6F0jt ZJt2HRV8+HzGjibyreS4bzbe4lvpYBaXG64neSP9zcn7LDJLI21QUjlnuoZT n94yrEqCKWGFGALEsfnXUpmj89T9rL/aE2eZCJR5aP5yHb/pFjPIVkJKeb5k pmVbnNe1vfJ+yXME0F3dRxC4tne5xJceT5U3mFmYF4XvJJpW3lNiR3G8b4kE FhYZV1EyzW26a3u4lcTFLZUkQwxkl4gqiO3hiuoRIseVZJposgP5EcJu5LWF 0ubuOOS3gZHjt0WUbpU+6sQbbKVudPKbFZYo9gCyS20dAElnC8UtnY2t1PFs ljtoPtcbRmVkZrSLk/PH5k8ayspPmqlthPL+yxNJTikFzYJc2xkYvb27xzYj gYzB7hopAyo0cRS3iu0DglIN8KEKbZpBYgtVvCkUaSR29w6RySRbldLSW2sY 49i7GEjrby3EaoS5Qzhd7ySRmWM3jzRC+YeXcz2kJWN3aMxjal/I5lUmRlUx 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 bjxJ8R9V8N3WnXc9vZ6fDcrb+TEpcqWWM4nYHKkIS3yfeO5cAH0BRXF/CvXN a8QeA7O/19ZPt7O+ZXhMRmQncj7dirgqwwV3AgA5zkCv8XvFt34O8By3unTS QahPcR29tMsaOEYnexYNkY2I46Hkj6gA7yivE/E0etfCJ/D/AIg/4SnWdasJ LgWeqwahcGYSBl3boYzwpwkhGXyDtGSC2e4+IutTW1hY+HdNvLu11rX7hbW1 mtYTI0MYdfOlPTAWMnkEEZBGMFlAO0oryv4L32tah4V1+O41WS/eDU5oLS+v ZzcsSETG5Q5GwfK3ySkHc2CMBjh/EnRNZ8D+F08SW3jzxHPqq3cW9JrtBbSu SS22HIAXIyEG/AGCu3LKAe4UV5H8QPGerw/DTwpqMN/Jo51t7Zb/AFC2iDrb Rywln2qSXzyWXbz8h+YHGadne3nhv4oaHpGgeL9V8SaffRCXUre8lN59njI/ dy+aiNsVvMU4AUcKWYKwIAPaKK8f8Q+IpfFHxAv9Dl8Uf8I54Z0PYtzf2d+k ElzdOp2xeYSNuMSfKAeYmzyV2+geDtOs9P0P/QPEN9r1rPK0qXt5ei6J6KVV wMbQVPHYlqAOgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvJ/F Xhr4f2fijUdal8Yz+G9WMRN7Fpmpx28kmRvJMeC5ZhtOB94gHBJyfWKx77wn 4b1O8kvL/wAP6Vd3UmN809lHI7YAAyxGTgAD8KAPP/gj4et9Pg8Sa5pzY0jV NQdNNTB5tonkCPlju53EYYAjZk5zVf4+y2Fvp3hi5v2gMcWqq0kawRyXLRAZ cx7ztKjA3KylWJjzgDB9gri/iJ4Q1Lxfb6JHp2oR2psdTju5RKzKpVQfmBTD 7xngK6dTyDtIAOH8ZeIdI8ZfEb4eW/h25tNVlS4+1OUcg28fmQyluoAfZDIC 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 +W38Tte6PJp+kjU7q7mvby+3Nby4j3QSB/nJVckyN6HPNYf/AAkNh8UPHP2z XvEOlab4P0a7zaWNxdRo1+6nh3STBKkddy8KdgGS7D3C10LR7HTp9Os9Ksbe xn3edbQ26JHJuG1tygYOQADnqKz/APhBPB//AEKmh/8Aguh/+JoA4f4w65cN Z+GNNtr/AOz+HNeu1h1HUYHAAgYpgCXlVVkZ29wn93cDy9rDo/gX4i+F7f4d 61/acOsSi11W0jukuk8tPLHmEJyrYMsm7OBhsYXK17h/YWj/ANj/ANkf2VY/ 2Z/z5fZ08n7277mNv3uenXmjTNC0fRPN/snSrGw87HmfZLdIt+M4ztAzjJ6+ poA8X0jTvC2kfGbxjb+NdP0qFrrF5YTX2PszRs2WI844MjFlzgEApIFIAwdz 4JGG4vfGN7pUciaDNqZFmA4ERbfIxMcWAYx5T24wRzjrxtX0zU9C0fW/K/tb SrG/8nPl/a7dJdmcZxuBxnA6egq5BBDa28VvbxRwwRIEjjjUKqKBgAAcAAcY oAkooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5//AITvwf8A 9DXof/gxh/8Aiq6CvH/iRG5+M3w+a3M8cxlYNJaWbGVkDAlWk3ANHgsGUfcV nYghwKAPRIPGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGK3Kz9Z0PS/EOn PYavYQXtq2TsmTO0kEblPVWwThhgjPBryPwxqd98OPiy/gGeSNvDepO1xpnn S4+zB9zKqEsSQXVo9rHLNhhgsQwB7ZRWXq/iHTNCe0iv55BPduyW8EEEk8sp VdzbY41ZiABknGBxnqKNA8R6R4p0tdS0W+ju7QuU3qCpVh1DKwBU9DggcEHo RQBqUVy+o/EPwxpf25rq+n8mwl8i6uIbGeWGGTj5GlRCgYFlBGcgnB5rch1b TbnSzqkGoWkunhGc3aTK0QVc7jvBxgYOTnjBoAuUVx958U/BNjZi6uNfgWFp WiQrHIxkIJBZFCkvHlWHmKChIIzmuwoAKy9S8S6Do1wtvqmt6bYzsgdY7q6S JiuSMgMQcZBGfY1Jrt1eWPh7U7zTrf7RfQWkstvDsL+ZIqEqu0cnJAGBya8z +CHijwzfeH1sIZI4PEjuxvjdOpuL5yXk8wPgGUcvwclBkHIwzAHrlZcfiPSJ vEs3h2K+jfVobf7TLbKCSkeQMscYB+ZflJzgg4wc1h+E/B9l4U8UeI3022gg s9R+z3CJFFIvlnEgZMk+WVBBYBcFfMIIC7K0LXW/C194ynsbO4sbjxDBaMJm hQPJHCsmGjaQDjDkZQnIPOO9AHQUVj3PirQrTWG0mbU4BfJE880QJb7PGihm eUjiJcMCC5UHIxmjw34p0bxdp0l/od59rtY5TCz+U8eHABIw4B6MPzoALvxX 4fsLy6tb3WrG1mtfKE4nnWMRmQMUUsxA3EIx25zgZxgjNzTdW03WbdrjS9Qt L6BXKNJazLKobAOCVJGcEHHuK5PQbb+1/AOtalfLOV8RfabwxzReYVt3Ty4V 8uAhj+4SLKq28knnJ487+E083gvxnp3htpZJtP8AEuj2+qWy7ixhmMRZ89Ao OyUcBiQsWTwaAPfKx77xZ4b0y8ks7/xBpVpdR43wz3scbrkAjKk5GQQfxq5q uq2Oh6XcanqdzHbWdum+WV+ij+ZJOAAOSSAMk14f4B0vV7f9oHUZddS0utSl 0w3s5aUMbNpBHlEALkFCxiALD93yDggMAe+UVl6v4h0zQntIr+eQT3bslvBB BJPLKVXc22ONWYgAZJxgcZ6io9B8U6N4l+2DSbzzpLKXybmF4nikhf0ZHAYd COnUEdQcAGxWPN4q0KDxHbeHn1OA6vcbtlohLuNqbzuxnZ8vI3Yz2zUmr+Id M0J7SK/nkE927JbwQQSTyylV3NtjjVmIAGScYHGeorye3l0PUf2htE1Dw9b2 kyPZXP25IraWGW1mUzB5Zl2rtdmIT58nnkDKEgHtlFY+p+KNJ0jUYtOuZp5L 6WIzrbWlpLcyCMEKXKxKxVcnGTgE5x0NHh7xVoXiuzN1oepwXsa/fCEh48kg bkOGXO04yBnGRxQBsUVz9z448NWkupRy6vB/xLIvNvXQM6W43FNrOoKiQsCB HneccA1HpHj/AMKa7pd3qdhrlobO0dUuJZyYBEW+7u8wKQCTgHoTkDkGgDpK K5vw14+8L+L7ie30LVo7qeBA8kZjeNtpOMgOoJGcAkZxkZ6iukoAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igArxv4nQQy/GP4el4oyftGSwUQMdsisuZ3yrgHkRD5uSAcyrj2SvK/E3g/x t4i8a+H/ABCtv4ft00dwwtnv5phL82W+9BsQkAAME3A4OTtXaAeqV4X4uE2t ftL+H4dKkuzLplvAb1rZDmFQ7yMGJKjYUkQE5PD4AY/KfSNSbx9e2629hb+H 9LeRwsl215LdtEhBBZIzCgLjII3HHGCOcg8IeAdN8J3F9qIlkvta1FzJe6hM iqzsx3MEVQAiFsttHtknaMAHJ+FdZ1PXPiL42j07WtKguobtbcQ3lnNLN5MO UG1BOqrGrluVySzsWCblWtzw14Km8P8AxB1TXrjXrR59XtyZNNtLQ20bMpjz MFMrliCeT6ynkbsHL8c/DPWNQ8UReK/Bes/2Trb7Uu/NldY5lUDaeA39xAUI KsADwQd2xoXg3WbnQ9Rj8a63/aep6haSWLSW0aIlrA2QRF8g+ZsgsxXnagIO wEgHP+Hvscfw1v8ATfBvnv4eiiuN+r61hlkBUs/kwybEdQdyHeYow2Sd/wA9 Hwu0Wz1r4F6fa6zpsGrWp+0vBaiIBx+8kGFZmwJCS+HBTG4DjBYyeFvAnjrQ /D934VbxHptvooSdbS+tIXN7HvJK4zhVGSWPLMMkKw+Vl0PAnhrxl4N8J22l zSaNem1d0hto55IUKOxcyPKYnZnDEqqqqgAkkscYAMf4HaPpuofCvZfQWl+l zcOk0U7LOFVH3JGylfkAYlwh3cyFwRvwPXK4P4XeGPEPgzw+NC1cabLbxu8k Vxa3kztliDtMboAo+8cqQOny5LMe8oAjnmW2t5Z3EhSNC7CONnYgDPCqCWPs ASe1eZ+LvhHoXivd4i8O3X9m63Li7t720mPkzyHayucZxnGd6YOWLHca9E1a wXVdGvtOcRlLu3kgbzFYrhlK8hWUkc9mB9COtc3pNl440GzisJbrSvEMMUSq l3dyy2c+QWyHwkofjZhvlPBzk80Ac38MfFfiP/hJdU8B+LDHPqek26vFdx/M ZowRy75+YlZIip2g4zu+aqfhjS7DSP2jtettNsoLO3/sRW8qB49gJaDJCIB5 f+63J+90YV2nhzwlc2fiC78Ua7ex3evXluluRbh0t7WIBSY4lZiSC6lixxk8 gLk5x9P8N+LY/ilN4tu7bRhbz2S2Bt49Sndok3oxcFosE/KflAQHPrliAc2n hfQrT9o61gttDgtIItKF4ka2xaJ5gxUSoEbbFjAGXAG5DgbmV69A8T2FnFoc 2j2NpBBJ4gu/ssqwxhDL5vNxJkceYIFlcM2clAPmOFPNyeFvGJ+JsPjKK00Z cWX2SWzbWbpg3JOVbyQFH3fkKlcgtjcdw7S70d77xRp2pTvi102KUwRLK3zz yDaXZRgfIgZRndnzm4XaCwBYv44rPw9cx+ZthhtHXzLi9eLChDy8/LrwOZOW HXk15H4x0Sa5+CPhLxJp/mLq3h6ys7y2dIzIQuyPf8vTAwrkkHAjPYmvVPEX /CQPp0kPh6OxF1LFIguLu5aP7O5GEcKInD4Jzg46Drnin4W0rUrTwrbaDr1j prQWtlFZ/ubhp1uFVNjb1eJAoIA4+bOT6cgHP2/iG0+JKeHbKCzjm0y6txqe rQzK7IioxSOAkoAxNwpPUZFu3BVsHD0633/tQ6tJ9hsW2aUsnm+bukT5Yl8z HzbZOdm35PkO7nPz9R8P/AX/AAr7Q9VtrQwXd1c3cs0LSHYTGOIY5JAuTgDJ IXALtgHqeft/BHjC3+K9344+xeHJftMQi+yS3szNFiNU3JJ5Hyt8nXb91mXv mgDc1o6Ra/FKyu7aPUr7xU+meRDZQuY7dLcu586Z8YCBsqcljkqQjNtrm/DC 3g/aO15r+Kxjun0RWf7HIXBy0GA2WJDAYXOE3BVbYu7nU13wJ4mtPiRJ408H 6jpq3F5b+Re2uqBvLICqo2lFJx8inqCCvUhiAR+BPF9t8TZvEkfiO0mt7yy+ yXEk0LebbKSGK28fKAblBUsWxuO4SEEsAV/AF+3iD4vePtSmMimweLTYYmZX CorOp2sV3KC0RbapAy5yGIBFfW9NhX9pnw3dwNaJI+mSyXEYISRsJMgc5ADk gqoClmAjJICqDWp4m8B+IE8cnxj4M1Sxs9Snijt723vo2aO4RSCSW+YjISJc KF4UncCeadz8PfGmr+PNL8Saj4n021eztwA2n6eu+JmG2SJPMDbkKlyHctgs cIM0AakL6dZfEzxA3h+C+1LxFdRQ/wBoRzTNDY2iqieXvbafmdT8uFkbIYfI Nxrn/hpZyz/EX4kW19LY3kEksMd2iWiIkzN5mcKrsoX74KtuZs5YhgwOha+A /Fnhnx9q+seFtU0o6ZrUomvItTjd3icuzMUCY3Y3Ptyy53YPQNVjwt4G8U+H vHOu6jN4ggu9M1SWOaSeVC14/lklY8YEaLhmUkA/KoChMgqAYfgLRdNsPjh4 ygtLOOxgtEikt7FplG1mUZlSIbhjDvhgy7Fm27fnIWwulwt+0vdPPp0kiTaO lyGDAJuR0CyuDIdwDIAPlGGCNs+XzDseHPDvjLTPHmueIb+PRng1h4Vkt7e9 kAhSMbVb5oCXcL/tICS2RyNpp/hrxVF8UpvF1xYeH4oLiyWxkhtryXzAu9GM rMYQJHAXAHy8BRnjJAMvUbVI/wBprSZYLfDSaI0s7xWiybjmVAzueY+Aq7xk 8KnRjXrFeZ6x4P8AFV78WdO8ZW9vo3kadbvax20l/KrTKfNAckQEIcS52/N0 6nrVy4uPHOj/ABHtJLu+sb7wzqd2bSCygiCTQfuWkDktj7vlNuO9sgnCAkKA D0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAqnHpVjFqk2prbRm/lTy2uG+ZwnHyKTyq ZUHaMDOTjJJNyigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigArj774o+ENO1yTRLrUp49TSUQm1FhcM5c 42hQIzuzkYxnOQRnNdhXj/xpsX0PUfDvxBsY53utKu44bpIWZfMgJLAM4yEX O5Dxz52D2BAPQPEnjXQfCPlnXLqe0jkwFm+xzSRknOF3ohXd8pO3OcDOMVoa NrVlr+nJf6c072r4KPNbSQ7wQCGUSKpZSCMMOD61yfxWsrHxD8K9QKyxzB0i msZYYftBklLr5Qj25OZCwQMO0h6jNHwc19fEHwy0pt0fn2KfYZlRWUKYwAg5 6kx+WSRxknp0ABqWfxC8OX2uHRLee+bU12l7VtLuleMHGGcGMbF+ZfmbAGQc 11Fcv4UdNX1HWfE0N59otb6VbSz2lSiwW5dMgqOd0rTsDk5Vk6dBY1bxWmm3 ktra6PqurTQRNLcDToVcQABTtZmZQZCGBEakuRg4wRkA6Cisfwx4n0vxdocO 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 aa4BQoJFZV4Qr5iZ3EAggqWyM6HgzxzovjrS3vtHlkBifZNbzgLLCecbgCRg gZBBIPI6ggAHSUVy+q+NoNN/tGSHRtV1C002Jpbu8tUiEKbd29VaSRPMZdh3 BN208H5sijUPiL4R0vQ7DWrvW4EsNQz9lkRXcyY64VQWGOhyPlPBweKAOoor z/Uvi/4f0/Q7TWYrPVdQsZolkmmsbdZUsy23Ecz7giSZYDZuJHfGVzqeKPFt 3p3gp9f8P6VJqqPZNeRTF0jijj2hw8gdlcjaS21QSduDtyDQB1lFcP8AC7Vb 2/8ABekLdaRfQZtPNa+mjjjS4cnJbb5rSFmJLF2Ub+X43AV3FABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVj+K vD1v4r8L6jod02yO7iKB8E+W4OUfAIztYKcZ5xg8VsUUAeH/AA01u/8AF2ne H/C1/aTpJ4cu2k1Iu0kWEgGLaNlVAN3mMDsY/wDLqSck1nm6l+GPxK8XaHpd v5P/AAkFpHLoiIiFjdO2yJVHCJGskkvDgfLGOv8AF7B4f8I6d4c1jX9Ss1xN rN2LmXlvlwv3eWOfnMr5AH+sx0UUap4Ts9S8X6H4l3+VfaV5yZVAfPjkjZdr Hr8pbcOcDLcfNkAGppOmw6No1jpdu0jQWVvHbxtIQWKooUE4AGcD0FeT/CWW 58QWGuRr4h1nTNSh1Oaa9slsrRGjaV2ILu0BMjkqwJwuNu3YoC59kry/xZ8G rfW/FC+I9A1ufw7qTbjPJaxk+Y5GC67XUoxBYNg/NnOM5LAHSeE/BuleE9Z1 yez1K7vNQ1R0ur0XUkZYEtIQ4VEXaGYydsfKcdDXWVh+FPDa+GNGFm1/d6hd yv513e3cjPJcS7VUsck4G1VUDPAUck5J3KAPL71f+ES+PNlfNc4sfFlo1tIk lxsVLiFV2ttxg5ARFGc7pH9gcezvr/R/ihofi6WTZovjWIQyqFkZY3x/ooIH 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 t2XddpClnIUHAXGQZPB3g3xB4N8Of2JbeJLG6t4txtWn0pgYizhiDtmG5eX4 4OWznA20Ac/8C4YItO8UmG2g/wCQ3KgvLcxNHMoA2qjIFyq5JGEVcSfKBkgV /h1eXFnqPxTntxPLJb6rcyxQo4ny4Mp+W3BVtxwBncPMwFBBQmus8HeDta8J 2+rRP4gtNQfULia9aWTTTGwuZAvzHbLgp8udgCnnhhVfwd4B1Lwn4l1rVm1y 0u01m4NxeQjT2jIbMjARt5x2jdIeobgY460Ac/8ACnR01z4V6fHa+ItSgtCk sFzYKLOdEYu29W3wE4bdu2sTgOByOTcvvB+j+DPhB4v0fRp76+jEU806m5Tz YpDChwxXZhQoRyp5KkjDBgpp6r8Dl/4SW41jwp4mu/DQuExJBaRNgEnLBSsi FUJAOzkAjjAwB2F94Puf+EObwzpGqR29pNbzwXU9/A93PMZcl5N/mJhyzuxJ BGW4AAxQBh+F1gf9n2JbeKCVDokwMdxJFHG7bH3B2jZVVS2cksrAcuQ+41j6 MXH7L0h1ieeFv7KuQjTzNExG5/IUHIJUjy1VejKQuCDg9Rb+DfEEXgGTwpL4 ksZ4TafYUuX0pg6wFGQggTAFgCgDdtvIYnIk8M+BJtF8B3Hg+/1WO80+S3lt 0kgtTBKqyly5JLuCfn44GMc5oAsfDEFfhl4dBkkf/QkOXSRT06YkJOB0BHyk AFQFKgdZXH+CPBmo+FLO3t77xTfatHaxPb20LxrFDHGShGV5ZmXbgEsQqnaA BXYUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRUc88Nrby3FxLHDB EheSSRgqooGSSTwABzmgCSisvSPEmi+IHu00fVLS+No6pN9nlDhSy7hyOCCO 44yGHVSBqUAFFFFABRRRQAUVn6zrml+HtOe/1e/gsrVcjfM+NxAJ2qOrNgHC jJOOBViwvrfU9Otr+zk8y1uokmhfaRuRgCpweRkEdaALFFFFABRRRQAUUUUA FFFFABRRRQAVyfjj4eaL4/t7OLVnu4ns3ZoZbWQKwDAblO4EEHap6Z+UYI5z 1lFAFPStKsdD0u30zTLaO2s7dNkUSdFH8ySckk8kkk5Jq5RRQAUUVn6zrml+ HtOe/wBXv4LK1XI3zPjcQCdqjqzYBwoyTjgUAaFFV7C+t9T062v7OTzLW6iS aF9pG5GAKnB5GQR1qxQAUUUUAFFFFABRWPqvirQtE1Gy07UdTghvr6WOG3ts lpHZyVU7RkhSQRuOFz3rYoAKKKKACiiigAooooAKKKKACiiigAooooAKKx9G 8VaF4hvL610fU4L6Sx8v7QYCWRd4JXDj5W6H7pOMYODWxQAUUUUAFcv4r8Aa F4wlt7q+jnt9StcfZtQs5TFPDhgww3Q4I4yDjJIwTmuoooA4vTfhtY2lwz6j rniDXrdkKmy1m++0W5OQQxj2gMRjjdkA84yAR2lFFABRRRQAUUVj6r4q0LRN RstO1HU4Ib6+ljht7bJaR2clVO0ZIUkEbjhc96ANiiiigAooooAKKKy9D8R6 R4lt7m40a+jvILe4a2kkjB2+YoBIBIwwwwO4ZBzwTQBqUUUUAFFFFABXn83w h0KPUbi80XU9c8PfacGeHR74wRyMCxBKkHGNxAAwoHQDmvQKKAMPRPCemaHc fbITd3WoNbpbSX1/dSXE7opzjc5O0FiWIUKCe3AxuUUUAFFFRzzw2tvLcXEs cMESF5JJGCqigZJJPAAHOaAJKKy9N8S6DrNw1vpet6bfTqhdo7W6SVguQMkK ScZIGfcVqUAFFZ/9u6P/AGx/ZH9q2P8Aaf8Az5faE877u77md33eenTmtCgA ooooAKKw4PGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGK2I54ZnmSKWN3h fZKqsCUbaGw3odrKcHsQe9AElFFFABRRRQAUVXvr+z0yzkvL+7gtLWPG+aeQ RouSAMseBkkD8ap6X4j0jWfD669ZX0baWyO/2mQGJQqEhid4BABU8nHSgDUo rP0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcirk88Nrby3FxLHDBEheSS RgqooGSSTwABzmgCSisvQ/EekeJbe5uNGvo7yC3uGtpJIwdvmKASASMMMMDu GQc8E1qUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRVPVdVsdD0u41 PU7mO2s7dN8sr9FH8yScAAckkAZJqSwvrfU9Otr+zk8y1uokmhfaRuRgCpwe RkEdaALFFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p3iPR4NW0 m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWPqfijSdI1GLTrmaeS+liM621p aS3MgjBClysSsVXJxk4BOcdDWxXn8L6dZfEzxA3h+C+1LxFdRQ/2hHNM0Nja KqJ5e9tp+Z1Py4WRshh8g3GgDqPD3irQvFdmbrQ9TgvY1++EJDx5JA3IcMud pxkDOMjijU/FGk6RqMWnXM08l9LEZ1trS0luZBGCFLlYlYquTjJwCc46GvP/ AIVpLH8RfiMs88E8wu7bzJIIUiRm/e5wqMwHOerFu74bcKr+F9QTwV8WvGdr 4q1GC2bWPL1Cyurm6URtAryKqbnIIYBwoXHSNscAEgHoFh468J6n9mFn4k0q SS62CGH7WgkYtjauwncGOQNpGc8YzVjU/FGk6RqMWnXM08l9LEZ1trS0luZB GCFLlYlYquTjJwCc46GuH+FdhnxR421+ztL6LRtXu4Z7Ke9j8trjIkd3RTg+ WTICpI5UjuDiv8Mr7W/EOna9q+la3YrHda3cSSLd2EtxtOECiOTzoy0YjEYG 5FIwRgACgD0SDxJotz4fi15NUtBpMiB1vJJQkYBO3ktjad3y4OCDweeKx734 m+C9P0uPUp/EFobSS4ktkeHdKWkT7wCoCcDg7sYwynOGXPN+Gvhlo/hfTvEG narq9je2M22+FtNbII9N4lXzlWZ5QOMgM2eIuS2DUfwL02GX4Vxtd2cciXjz RMZkDCaEOw2nLNlNzSfLhBlm+U5LuAekaVqtjrml2+p6Zcx3NncJvilTow/m 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 O8pN/wBo2eZuwM7/AC/k3Z67flz04oAsVh6p4v0PRrhob+7kiEbok04t5Wgg ZyAoklVSkZO5ThmGAyk8EGtyvE/+Ei8R/CG91aHUvDEmoeGbnU5LqHUrWXc8 UcjjPmsQS7/MoBlKkkEbmGCAD1DUvEfhyPwqurapfWi6Le24ZWuhhZ43QttC MMsWXPyYJPIxWhpM1jc6NYz6WIxp8lvG9qI49iiIqCmFwNo244wMV5348tPC 2q/BKa906Cxu7C009V0y4cBjCoKqArO6srfKFI3bsjBVz8jYfjzWJtJ/Zv0G OCeSF7+ysbQlFOWUwhmXIYbQVQgnDZBK4+bIAOo8feIPC+s+Bdaify76NbKd 7W7ayeW1E3lMEKXGwxb9x2ghs7jtHzcVc+D8SQ/CjQFjXapidiPPWXkyOSdy jAySTt6r905INaHivRtOj+GOraQEghsLfSpIovPDSJCscZ2MeGY7dqnIBb5c jJrydtZi0v8AZo0BIH+zQ392LOX7QXdGUzyNKHaIq6xsEfO0M207MEneAD1i 3+InhW61GzsotV/eX0rw2kjW8qw3LodrCOUqI354+VjkkAZJFdRXn/ibwhrH j7wudOvPEOhy2Nz5c8NzbaQ7MMEMrxsblhyMjI6qx9a7DQovJ8PaZF/aP9pb LSJft27d9pwg/eZyc7vvZyevU0AaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFeX2vgPxZ4Z8favrHhbVNKOma1KJryLU 43d4nLszFAmN2Nz7csud2D0DV6hRQB5v4W8DeKfD3jnXdRm8QQXemapLHNJP Kha8fyySseMCNFwzKSAflUBQmQVp2I8ez+J/FOoeGJPD8lhPqZi36ml3HuaK NIzsQErhSpQuPvMjdgoHqleb2/wz1nQJZIvB/ji+0jTH5Fhc2qXqQnczYjLk bF+bpgk4ySewBoaZqfjyw17TbbxRD4cksdQle2RtMacSRyCJ5QxEgwVxEwxw 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 wrvfCc+ux3V5KiiG5azjt4kCOrJGscYwqYQLn5iMk8jCjY8HaZ4j0zS4ofEN 9psrx28UEVtp1r5UUWzcN2eNxZSmQFVV24A7npKKACuHh0LxZaadq+h/abHU NNvJZha3l/cvJNawSj7jRPG4n2EtjfJ84wCVHA7iigDzu98C6rp3wrj8EeHp LS4D28kM15fXMkBUu+5iqxKSQSzjaWAAwDvBINiXwJN4g+FsHhHxAtpbz2tv DBBc2khn2tEihZRvRCpJDAqP4SRu547yigDyuw8I/Eu08NXnhtvEPh+TT0tz BY3EtiZJTGoVUidCPLCMoIYkSEbj97gjQ8NfDFrP4bz+D/EWrSahaXCACOCN YltTu8w+W2NzkSEtufg4UbQMg+iUUAeN6B8OviXpDrozeOY08N7yhaElroQ7 doEe9D5R2gABXwhJIyRz7BBBDa28VvbxRwwRIEjjjUKqKBgAAcAAcYqSigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo orL1fxDpmhPaRX88gnu3ZLeCCCSeWUqu5tscasxAAyTjA4z1FAGpRWfo+t6d r1m91ptx50ccrwSBkaN4pFOGR0YBkYejAHkHoRWPqPxD8MaX9ua6vp/JsJfI uriGxnlhhk4+RpUQoGBZQRnIJweaAOoorP8A7d0f+x/7X/tWx/sz/n9+0J5P 3tv387fvcdevFYd78S/B+naXHqd1rUaWctxJbQyiGRhM6ffMeFJdAeN65XPG c0AdZRVPStVsdc0u31PTLmO5s7hN8UqdGH8wQcgg8ggg4Irn5PiV4ShSGaXU 5EtJrj7NFetZzi1eTcVws+zyyMq3zBsYBOcCgDrKr31/Z6ZZyXl/dwWlrHjf NPII0XJAGWPAySB+NWK5vVfEHhe7S407UfLv7RX2Xf8AoT3NrCytkiaQI0cZ UgEhyNowTgYNAGpo+uaX4gs3u9Iv4L23SV4WkhfcA6nBH8iPUEEZBBOhXkf7 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 aWI28FvcJvjnmkPlxxuP7rOyqckDB5IGTUnhvRIfDnhrTdGg8spZ26RF0jEY kYD5n2joWbLHk8k8mgDUorm5PH3heF4fN1aNLeZ9kV80bi0dtpbC3O3yiflY YD9QR1GK6CeeG1t5bi4ljhgiQvJJIwVUUDJJJ4AA5zQBJWWfEmir4gTQTqlp /azozizEoMmFAY5HY7WDAHkjJGQCRj3vxL8H6dpcep3WtRpZy3EltDKIZGEz p98x4Ul0B43rlc8ZzXFxaHZaD+0dYRaJYQWVtPojTXMUCSImdzrkLH8i8pH9 8BO/3ypoA9gorm9S8eeHtJ8QLoN3c3Y1R0Dx20Wn3ErSLgnKbEIYYByRnG0+ hrY1LVLTSbdZrt5AHcJGkUTyySNgnCIgLMcAkgA4Ck9ATQBcorH0HxTo3iX7 YNJvPOkspfJuYXieKSF/RkcBh0I6dQR1BxXvPHPhaw/tD7Tr1jH/AGfgXX70 Hy2O/EfHWT90/wAgy3y9ORkA6Cis/RNb07xHo8GraTcfaLGfd5cuxk3bWKnh gCOQRyK0KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8z+G2pQ6r4 8+IlxIsi6gmpx28gUAReTEHiiI5J3/I5bPH3cY5FemV5P4n+Fuux+NJvF3gX XYNK1K64uIJowImyMO2QrBtxCsVZT82W3ZwKAO00PwrovhrxLrN9YTSJea64 upreSUEZQnc6D72N0uW5IBYAYGBXF+Hvscfw1v8ATfBvnv4eiiuN+r61hlkB Us/kwybEdQdyHeYow2Sd/wA9dJpPgzU59G1CLxdr8mrahqNk1k8sMEcK2sTq d6xYXqWOS5A3bI8r8orn/C3gTx1ofh+78Kt4j0230UJOtpfWkLm9j3klcZwq jJLHlmGSFYfKygB8M9Gttc+BGlWlxZWl2+y6aBbqNGVJfOlCsN6OARnrtbGT wehPgXpVs/wrje5tpJRfPNHL9q2OkkQdl2IOT5WS/wArfxNIcYbJ0PBXhfxV 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 jy/MKYw/y9R4V8O+NLZ5dS8X63aaxqFujjTrWJVit42ZRl2YRA7zygO07VZ8 Z3kCvonhvxbp/wASNY8TT22jfZNXSCOa3j1KctCI1Vdw/dBHOAxwyg84DKC2 4A7yxsLPTLOOzsLSC0tY87IYIxGi5JJwo4GSSfxqxXP+KLTxTd/2b/wjOqWN j5d2r3v2u3MnmQ9wP8PlJ4w6Y56CgAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiisvUvEug6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXp viXQdZuGt9L1vTb6dULtHa3SSsFyBkhSTjJAz7itSgAoqvfX9nplnJeX93Ba WseN808gjRckAZY8DJIH41X0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEc igDQooooAKKKKACiiigCvfWNvqVnJaXcfm28mBJGWIDgEHa2OqnGCp4YEggg kVJBBDa28VvbxRwwRIEjjjUKqKBgAAcAAcYqSigAooooAKKKKACiiigAoooo AKKy9N8R6Rq+qalpun30dxd6Y6peIgJETNnA3YwT8rAgE4IIODRbeJNFvdZk 0e01S0uNQjSR5beGUO0QRlVt+M7SGYDBwevocAGpRRRQAUVj6N4q0LxDeX1r o+pwX0lj5f2gwEsi7wSuHHyt0P3ScYwcGtigAorHtfFWhX3iGfQLPU4LjU4I mmmghJfy1V9jBmHyhgxAKk7h6VsUAFFFFABRWXq3iPSNCuNPt9Svo4J9RuFt rSMgs0shIAAABOMkAseBkZIyK1KACiiigAooooAKKx9M8VaFreoy2Ok6nBfz QxCaRrQmWNFJIAMi5QMSD8pO7AJxjmtigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDze3+Ge s6BLJF4P8cX2kaY/IsLm1S9SE7mbEZcjYvzdMEnGST26jRPDlxZ+Rda5q8+t 6rDu23MqCGNAcgbIE+RW2kjfguQzDdtO0dBRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/ E5Ff4ZeIg6RuPsTnD2zTjIGQdq8gg8h+iEBjwprrK5P4nIr/AAy8RB0jcfYn OHtmnGQMg7V5BB5D9EIDHhTQBT+D9t9l+FGgR7Z1zE8mJ4vLb55HbgZOV5+V v4lwcDOBsX3jbw7p0si3GoYjilEE9xHDJJBBIWC7JZlUxxsCRkOwIyCcAivO 9L1Kbw3+zAt7brd2E62TiNnBaRWlmKh1wUIDF9yn+EFT8+Pm7j4f6VYw/C3Q LBbaNrSfTI3lhk+dXMqb5Mhs5DM7cdOcdOKALHi+DSNZ8C6jcXUWm31mtlJd QyXSmWAfumKyAplsYJO5PmwTt5rg/ht448NeEfhD4eGuavBaSSeeVhw0khBu JsNsQFtvykbsYyMZzVP4YXc2maX8RPDC3Mh0/QbiZbOWaUh41PmqctvjCj90 G4aPBZjuXOR0HwU0nTW+Elg7afaF79J0vGMK5uFE0qgScfOApIwc8HFAHoGl arY65pdvqemXMdzZ3Cb4pU6MP5gg5BB5BBBwRWP/AMJ74bF7bWj38kcl26pa NLazIl0S6IPJcoFlBMiHKEjB3fdya8v8A6KuoaX8UvBenzyQwR3s0NpbksiQ lvMRCZVJdgfLUMpBGE/i3sKuaT8QbjSZdI8IfEfw1/Y6p5Qh1FGCWzywsjxE BAEVQRHkqxUHghVJCgHtFRzzw2tvLcXEscMESF5JJGCqigZJJPAAHOakrl/i Jb6Fd+BNSg8S3s9lpDeV9ongBLpiVCuAFbq20dD1/GgCNfiV4S32Sz6nJZpf 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 JookRmUsiyqhLO67lHlBmX5iMMoB6DxV4G0Xxd4ai0G+ikt7OB0e3+yERmAo Co2jBXG0lcEEYPHIBHF/GU2Gqad4NEU/2prvW7cwQ280b/aImByyI58qTqgD OCo34JAY5APSLXWrK706e/3T21rBuMr31tJa7AoyWIlVTtA/i6cHng1np410 F7y1tjdTx/bJRDbTy2c0cE7kEqI5mQRvuAO3DHdxjORXD/GvU4hL4R8PXUM8 lhqmqo14IWfMkMbIGj2INz7vMBAHOUGATjHUfFLRrPW/hrrsV4mfs1pJeQuA NySRKXUgkHGcFTjnazDIzQB0Gs65pfh7Tnv9Xv4LK1XI3zPjcQCdqjqzYBwo yTjgVn/8Jt4d/wCEv/4RT+0P+J3/AM+vkyf88/M+/t2/c56+3WvHPE503xD+ zhYeI9Wjjl1xEjgt726dTcSMk5QqHAUuCokbac8ZJ3MC1ex6R4a0aPw9pNtH p0Ea2toY7eSO3e3khEiYkKbj5sTNk5+bfk8knmgCOfx74btreW7e/kNjGhdr +O1me1IA7TqhjY5+XAYkt8o+birniTxTo3hHTo7/AFy8+yWskohV/KeTLkEg YQE9FP5V4/Y+ItR8BeHI/Bfj/QZ7TShmC113S0UohLkxyDAwJFKtIG/1nyqx Qtlj7ZNBpuu6WEnitNQ0+5RXCuqyxSrwynnIYdCD9DQBYgnhureK4t5Y5oJU DxyRsGV1IyCCOCCOc1JRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABXmc3gbxbc3Hi7T7nXo7nR9ef8A0eaa6nMlghLsUSEYBHzB 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 AeR6B8P/AIkaci6Jc+PI4fDsCGGI2sIa6aLdgKGdMxHaTgh22EAAEAY6T4je B7jxV4SsdK0SSxs5tPu4bi2inhBgIRWUIVwQFAbptIO3GMHI7iigDi9f8E3P jfwU2j+Kru0+3lxPFPp0LxpbyhcDh3JkAJcHO3IPRTg1Xk0bxtrvhqHw/wCI X0ZYp08nUdQsrqbzZYsHPlxhECuflySxT72UIOyu8ooA4Px14S1XWvBD+EPD 9rpsGnm3ghjmur2RWiETqQoQRtuG1FGS+eTxxz0mjWupv4eSx1yKCK4EQgZr G+mk3rsALiRwsisTnuzDg7iea2KKAPO5/Cvi/VfBEvhDVr3TZ45EMLa1I7TT vGH3Ixt2jC79oVc+ZkH5wxYc7Gt6L4jsfBVjongm/tLW7tUht1udQG4iFFxk YQgudqjlcYLdDjHWUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUVTGq2Lay+ji5j/tBLdbo254bymYqHHqNykHHT jOMjNygAooooAKKKKACiiigAooooAKKKKACiisPSPFVjrXiDW9GtobtLjR3i S4aaLy1YyAkbM8kfKeSADwRkEGgDcooooAKKKKACiiigAorn9U8a6DpF5d2t 1dTtNZRLNdi2s5rgWyEEgyNGjBMhSfmI456VuQTw3VvFcW8sc0EqB45I2DK6 kZBBHBBHOaAJKKKr317Fp9nJdTJO8aYyIIHmc5IHCICx69hx16UAWKK5Oz+J HhnULi6t7KbUrme0fZcxw6Rdu0LZIw4EWVOVIwfQ+lWF8daEdUstMdtShvL5 yltFPpN1EZSMbsbowMAHJPQDk4FAHSUVh3/iqx07xZpHhyaG7a81RJXhkWL9 0ojUsdznAzgHhckcZwCCdygAooooAKKKKACiiigAooooAKKKKACisPX/ABdo /hdGl1iS7ggVA7TrYzyxIC20bpEQqDnjBOeR6ijQPF2j+KEWXR5LueBkLrO1 jPFE4DbTtkdApOeMA54PoaANyiisvX/EekeFtLbUtavo7S0DhN7AsWY9AqqC WPU4APAJ6A0AalFY/hbxJZ+LvDlprlhHPHa3W/Yk6gONrshyASOqnvWxQAUU UUAFFFU59VsbXVLPTJ7mOO8vUke2ibgyiPbv29iQGBx1xk9AcAFyiiigAork x8RvDknje38I2tzJdapI8qSeSmY4GRC5DsSBnAIwu7BBBxXWUAFFFFABRWH4 t8VWPgzw/LrOow3ctvG6oVtYt7ZY4GegUe7EDoOpAO5QAUUUUAFFFFABRWHf +L9D07VP7Lku5J9QCF3tLK3lupY1G3l0iVig+dcFgM54qxpviTRdXuGtbDVL Se7RC8lqsoE8QBAO+M/OhBIBDAEHg4NAGpRRRQAUUUUAFFFFABRRRQAUUUUA FFFYfiHxVY+GrjSILyG7kfVb1LGAwxblV3OAXY4Cj2zk84BwcAG5RRRQAUVy et/Ebw5oXiWx8Oz3Mk+rXlxDALa3TcYvNOFZySAo6cZ3YYHBBzXWUAFFFZ+s a3p2g2aXWpXHkxySpBGFRpHlkY4VERQWdj6KCeCegNAGhRWXpHiHTNde7isJ 5DPaOqXEE8EkEsRZdy7o5FVgCDkHGDzjoa1KACiiuX1P4heHNG1GKw1Ge+t7 qaUwwI2l3X79wQCIyI8SckfdznIx1FAHUUVy83xD8MWl5bWt/fT6bJc7vJOp WM9oj7RlvnlRV4479wOpFdRQAUVT1TVbHRbBr/UrmO1tEdEeaThVLuEXJ7Dc w5PA6nA5q5QAUVT1LVbHSLdZ7+5jgR3EcYblpXIJCIo5dzg4VQSewNZdj410 G/1yPRI7qeDU5IjNHa3lnNbPIgzkqJUXd0PT+6x7HAB0FFFFABRRWHr/AIu0 fwujS6xJdwQKgdp1sZ5YkBbaN0iIVBzxgnPI9RQBuUVh6B4u0fxQiy6PJdzw MhdZ2sZ4onAbadsjoFJzxgHPB9DW5QAUVl6/4j0jwtpbalrV9HaWgcJvYFiz HoFVQSx6nAB4BPQGo/C3iSz8XeHLTXLCOeO1ut+xJ1AcbXZDkAkdVPegDYoo ooAKKKKACiufm8a6DHqNxYRXU97dW2BcJp9nNd+SSWG1zCjBGyrfKcHjpRp/ jjw1ql5b2Vpq8D308skK2bBknV0Dlw8TAOmAjfeA7eoyAdBRXJ6R8SPC+v8A iX+wdHvpL67CSs7wQO0SbCAcvjGDnhhlTjrkqG6ygAooooAKKKw/Fviqx8Ge H5dZ1GG7lt43VCtrFvbLHAz0Cj3YgdB1IBANyiiigAooooAKKKKACiubtvHv hu8uLaKG/kKXVwbW2uWtZlt55QWGxJygjYkqwGGOSMDNdJQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABU c88Nrby3FxLHDBEheSSRgqooGSSTwABzmpK4v4hm91G30zwxpsccs+rXGbmK R5YlaziG+YGWMExhj5cWSDnzcY5yADzCK/1Pw7418L/Ee/MkUHit3g1CKZo/ KtYHZfIzMFwAIvKfkBj5LZPJC/QdeX/E7QfE/i7wNe2U+haUJLf/AEuBrfU5 ppA6AkhIxbrvZlLKAT1b1Arc+FXihfFnw+067aSR7u2QWd2ZHZ2MsYALFiBu LKVfv97GSQaANS58WQDUWsdK06+1qaPeLhtP8ox27KQDG8kjogkyfuAlgBkg DBMmgeLtF8SeGl1+wvYxYBC0zTMENuVGWWTnClRyecYwQSCCeH+A2tw6z4O1 GR/L/tQ6nNPfsJAWnkkwwlKDAQEfKABg+WSO9HxBg0jwd8MPF2neGoo7CeRI rm5hjUlQtzKIWIDZVQyo67VxtxwBxQB0mofESw06zuNTm0rVTolvLHG+rLFG ICHKASIC4kkjy4+dEYHkruFdBfa5penaHJrd1fwR6YkQmN0H3IUONpUjO7OR jGc5AGc1j6Fb6F4s+GumW32GCTRrvT4o/sfmmVYlCgeXv6lkIxu4YMueCK8/ +JsulxweALGBseGrXW1tbiOaDNsogcQlZJJDkbQsq4OQ43kn5RkA7y8+IGm6 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 ycAFj6KrMcAEgA8nvtQstL/aOkubrUYCg0QKYxdSK6OWAWJYwW82RuGEQC53 hgpcZbsPC3xG0vxVrl7okdhqum6naRCaS11K28pyhxzgE4xuTrjO4EZ5xzd7 JDP+0vpykxq8GhFQJwELsXkP7rch3na38BXgP83yshk1ZbyL9o7QJYIvMgm0 SSKcpIcxKrStuZVbhSxjUFwVJPHzKCoB2F94sgg1yTRbDTr7Vr+GITXMdj5W LZTjYJGkdFDNyQuSxAJxjBNfw14/0LxRZ6hPbyT2UmmZ/tCC/iML2mC4/eE/ KPuMTgnGOcHisOzvbHUPiR4hj8KaZaLrESRxatrd03nRxkKuyKONXBYnaysA YwpjydxABy/hnaXFv8UPiEJ7++uGjltkY3RBaUkOQ7ExoRgDChQECtgbwFag DcT4veFJn1xbWa7uxpCb5GtYDKJ1CsWaPbk7FK4MjbUBZfmwwJr3Xxq8IWfh ix1ueW7U3yO9vYiJWuGVZDGSQG2qMqxBZhkA4yQRWX4EiSX42+P7lF8zy/Ji 82OdZ0UkcqXYeYrZT7i/Iu1lP3Eqx8fo9/wvnby92y7hbOzds5IznY23rjOU 643HOxwDqPHvie98J+F7vU7HTPtkkUTMJJJ444YTkAGTc6s2c8KgJYjbwSDX P+FfFl/pXw107UNR8J6r5MOni6uLqCe1kWVdu9pzmZXLOMyNld25j1PJ6D4j zeR8NfEb/aYLfOnzJvnGVO5Su0cj5mztXn7zDg9DH8MUVPhl4dCJGg+xIcJb NAMkZJ2tySTyX6OSWHDCgCx4M8ZW3jfS31Ow03UrWzD7I5b2NEExGd2za7Eg EYJ4GeBkg4k0PxSda1jUNNOharYyaftE8t2sPlh2VWCBkkbc21g3HQEZIJAP n/hrV/8AhWfi3XfBl6u7SBE+q6KBNmZ1dgBaxIznexbcFXIYsrHB38egeDNJ uNI8ORi/hgi1O8llvr8QxhQJ5nMjLwW3bdwQHJyEFAHQVzfxAtb69+H2v2um pI93LZSKkcf3nGPmUDY2SVyMAZOcAqTuHSV5Pa6snxJ+J2r6FdzbfD2g4WTS 5JFBvrmORh5jKBloVPVS2MiIkfMQADL8NPD4/wDg/pHhLS7KRoC8Nvq11HEL WO0WOQSORncJJXC/w5yX3PsyFr0DTfiT4W1fWW0ewvbufUEcpJbrp1yGiIYK d+Y/kAYgEtgDvivL717v4I/Ei91RbKR/BmtuS620SMY5ArMqL90IVYttGcGM nqV+X1zwnpn2bTm1S6msbvVtV23N5fWS4jm4/dqhycxom1VPcDceWbIB0FFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAVxdl4T8RweNZPEl14j024eW3jtHtxo2wJCrbisb+cXUkljklhluQ dqgdpRQBXvkvJLORbCeCC6ONkk8JlReRnKhlJ4z/ABD156V5/wCCPhvrvgjU bmW28WQXNjeS+bc2LaUI492RlowkoEbY+XgbcYyp2jHpFFAHlevfBdbrxLda 94b8Ual4fvL13e78gs4csQx2kOjKCwLEEsMkYwABXaaV4P07TPD17o0s99qM N/5n22e/uWkmuN6BDufjHyBVGMYCjvzXQUUAeR6b8EJtGv2j0vx34gsdFZy7 WVrKYpC2wDJkUhc5A58voAPeu81jwXoWueEk8M3dp/xLYokitwrEvBsXajIx yQwHc5zyDkEg9BRQBxcHg3Wrrw/FoPiHxVJqOnqgSZ4LU29xdID/AKuWXzGy hX5W2hWYdW5bd1E+lWNzo0ujvbRjT5Lc2rW8fyKIiu3YNuNo28cYx2q5RQB5 /wCGfhve6BANIuPFE9/4Yj8wRaS1nHHkM5fbLKPmkXk7l+UNnBG3Kk8I/Dm/ 8E6Ottpniee4uuVP2+OSW0jQszERW6yqEYkrlizdDjG416BRQBw/g7wb4g8G +HP7EtvEljdW8W42rT6UwMRZwxB2zDcvL8cHLZzgbaPhx4CvPh/p1xpv9swX 9jNK1xj7EYpBIQi/e8xhtwnTbnJ69q7iigDg/Bvw/wBT8F29zZ2fi27uNPDy PY2U9rG0cJYN/rD99wCVbCNGCQx/iNHhvwNrXh3xBrusJr2mzS6y/mzx/wBk GNUdQ+wqFmHG58tnJbHLAktXeUUAcHoXgbWtD8Y6nr8OvaaE1V42vrKLSDHG 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 jxHOtrqe6Q2dzbib97htrSSs291Vnc4BVjkZY4JPoFFAHB6V4G1rTfHl/wCK 317TZZ9RSOK6hGkFRsQKMRuZiyEhPUjPJU4GLHxD8E33jzS10pdXtLGw3pKw bTvPlLru5VzIAowR0XPBG7DEV2lFAGXc6VNqvhq60nWLmOV7y3lt55rSIwja 4K5VWZ8EKe5PIz7Vz/hTw+3gDw+Br3i2S9tLNPJgluyttBbRErhTljuO7ABd jtGFUKCd3aVl+I9AsfFPh+80XUlkNpdIFfy22spBDKwPqGAPORxyCOKAOP8A F+l6D428Y+ENPmSO9EKS6r5sMqSL9nHlgK6E4aKVinzAMT5ZAGGZl9Erm/Bn gbRfAulvY6PFITK++a4nIaWY843EADABwAAAOT1JJ6SgArzfVvhVK3jSXxX4 X8ST6BqVxu+0hLRJopMhQcJ8o5ILHduyx3cEV6RRQBx7fDvS9U06SHxVNP4i upthe4vDs8sgKCIFj2iFSVyQvLfxFq5fRvgn/Z10lveeLtVvvD0Molh0ZuIT iUSKsoLMjrkHcAi5Jzx0r1iigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACuf/AOE78H/9DXof/gxh/wDi q6CvG/i/pMOgeJfDfxBt9PjZLK9RdVeOESO8eV2MVI2ZADKHJBBaMA8LtAPY IJ4bq3iuLeWOaCVA8ckbBldSMggjggjnNY8HjTwrdXEVvb+JdGmnlcJHHHfx MzsTgAANkknjFbEE8N1bxXFvLHNBKgeOSNgyupGQQRwQRzmuP8F2ttqus654 zVLR31G4aztJYNj/AOjW7GINvCAku6Mx5YbRGM/KKAO0orL1LxDpmlXC2txP I92yCQWtrBJcT7MkbzHGrOEyMbsYzgZyRUmja5pfiHTkv9Iv4L21bA3wvnaS AdrDqrYIypwRnkUAV7XxVoV94hn0Cz1OC41OCJppoISX8tVfYwZh8oYMQCpO 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 EEdxuUng1c8BaIfDngyy0Y+WfsbzRb0jkjEmJX+fbJyC33jglck7SV20AdJR XP33jXQdNlkW7up4oY5RDJdmzmNsjlgmGnCeWMMdpy3ykEHBBrQ1nXNL8Pac 9/q9/BZWq5G+Z8biATtUdWbAOFGSccCgDQork5PiV4Sj1SHS11OSfUJU3C0t rOeaVcZyrIiEo42nKMAy45Aq54b8a6D4u8w6HdT3cceQ032OaOMEYyu90C7v mB25zg5xigDoKy9N8R6Rq+qalpun30dxd6Y6peIgJETNnA3YwT8rAgE4IIOD VeHxdo8/iU+HkkuxqgRpPJexnQbFJBfeyBdmRgNnBOACcio9A1vwtrWsas2g XFjdX0fk/b7i0QHzMqfLzKBiTADDgnbgjigDoKKz9T1qy0jyhdNO0kuSkNtb SXEjAYy2yNWbaMqC2MAsoJyRk0fW9O16ze602486OOV4JAyNG8UinDI6MAyM PRgDyD0IoA0KK5vWvHvhvw/cXUGo38iPZpG90YrWaZbcSHCeY0aMELdgxBOR 6itz7fZ/2d/aP2uD7D5Xn/afMHl+Xjdv3dNuOc9MUAWKK5+08a6DeaxDpC3U 8OpT8xWt3ZzW8jja7bgsiKSuI3+boCAM5IB6CgAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKy/EmiQ+I/DWpaNP5YS8t3iDvGJBGxHyvtPUq2GHI5A5 FalFAHhfgvxzfDwHfeD9Xlks9cs72Hw9bTQjBiMxMSEMhwXiCStn5QRGo3bj mvbLCxt9M062sLOPy7W1iSGFNxO1FACjJ5OAB1rl4fAtvF8VbnxniD97p6wB CpdzPnDSgnhMRqiDb1y2cfxdhQB5X8EZzrFl4n8RXUsdxqF/rDpLcxNJseNE UxhA/IQeY20EAgEA9ABTP/FMftKwWem/Ja+ItPM97D0TzFEp3qq4G7MOctk/ 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 7jaLovgN/FniCwnkivNRt5NRmgkIlAMKszOkeVZhukyw3gZYAFQRXN+J/hbr sfjSbxd4F12DStSuuLiCaMCJsjDtkKwbcQrFWU/Nlt2cCuw8J+HtZ03df+Jt c/tnV5IliDrbpFHbJ1ZIwoGct95uNwSPIG0UAcn8NxrOvfDezFtrfh+4tpUk S7hm06e6YyOxaQTM9wpZ2LlmBUD5+MqQTXPw1vtO+E2qeFdL1qPWdQtb1bq2 SX93HG48uTyHjLMhBGWCP8pMgJA+9VN/hX418La5dSfDzxNBYaRcZcWd7Izi JmxuAUo6t91cOcNjg5xk9xqHhDUX8CXGlWWsbtdkljvTqlzCuZbpJUlVmUDA XKKgGG2oqjDBcEA5vRfiHDrHifSNB8ZaVd+HvEVpcNNbK5H2e6k8t4flY84Y yS7QMglVw7E4PqlcPqvhPVPFuuaDf64tjp0Oi3Yu44rKX7S9w4wQDI8SGNQV GQN2/POCqmu4oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisvUvEu g6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXpviXQdZuGt9L1vTb6d ULtHa3SSsFyBkhSTjJAz7itSgAoqvfX9nplnJeX93BaWseN808gjRckAZY8D JIH41X0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcigDQooooAKKKx77xZ 4b0y8ks7/wAQaVaXUeN8M97HG65AIypORkEH8aANiiuf/wCE78H/APQ16H/4 MYf/AIqtTTdW03WbdrjS9QtL6BXKNJazLKobAOCVJGcEHHuKALlFRzzw2tvL cXEscMESF5JJGCqigZJJPAAHOaz9D8R6R4lt7m40a+jvILe4a2kkjB2+YoBI BIwwwwO4ZBzwTQBqVT1bTYdZ0a+0u4aRYL23kt5GjIDBXUqSMgjOD6GrlFAH n/gD4W2/gvZLearPrF1b71smmUpHZI/LiKMswVmOdzA8jjjnd6BRRQAUUUUA FFRzzw2tvLcXEscMESF5JJGCqigZJJPAAHOap6JreneI9Hg1bSbj7RYz7vLl 2Mm7axU8MARyCORQBoUUUUAFFFFAFO80qx1C4tZ7y2juHtX8yAS/Msb5BDhT xvGOGxlcnBG45uUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8aALFFZ+i a3p3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkVoUAFFRzzw2tvLcXEscMESF5 JJGCqigZJJPAAHOaw/8AhO/B/wD0Neh/+DGH/wCKoA6Cio4J4bq3iuLeWOaC VA8ckbBldSMggjggjnNSUAFFY83irQoPEdt4efU4Dq9xu2WiEu42pvO7Gdny 8jdjPbNbFABRRRQAUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8ax/wDh O/B//Q16H/4MYf8A4qgDoKKx7HxZ4b1O8js7DxBpV3dSZ2QwXscjtgEnCg5O ACfwrYoAKKKKACiisvVvEekaFcafb6lfRwT6jcLbWkZBZpZCQAAACcZIBY8D IyRkUAalFFFABRRRQAUUUUAFFFZereI9I0K40+31K+jgn1G4W2tIyCzSyEgA AAE4yQCx4GRkjIoA1KKKKACiiigAooooA4PT/A2tWnxBm8Xza9pslxc262s8 EekGNTEChOCJid/yAbm3Y6YwAB3lZ+p67o+ieV/a2q2Nh52fL+13CRb8Yzjc RnGR09RVex8WeG9TvI7Ow8QaVd3UmdkMF7HI7YBJwoOTgAn8KANiiio554bW 3luLiWOGCJC8kkjBVRQMkkngADnNAElFZeh+I9I8S29zcaNfR3kFvcNbSSRg 7fMUAkAkYYYYHcMg54JrUoA4f4ifDv8A4Tv+yZ4NZn0q+0yVpIJ4o9+N20ng MpDAopDA8YPByCOk0DQLHw3pa2FgshBcyzTzNvluJW5aWR+rOx6n6AYAAGpR QAUVj33izw3pl5JZ3/iDSrS6jxvhnvY43XIBGVJyMgg/jVf/AITvwf8A9DXo f/gxh/8AiqAOgorDPjTwqtulw3iXRhA7siSG/i2sygFgDuwSAykjtuHrWhpu rabrNu1xpeoWl9ArlGktZllUNgHBKkjOCDj3FAFyiise+8WeG9MvJLO/8QaV aXUeN8M97HG65AIypORkEH8aANiiise+8WeG9MvJLO/8QaVaXUeN8M97HG65 AIypORkEH8aANis+10TTrPUZ9Rit919NuDXMztLIFJ3GNWckrHkZCLhQegFW Ib+zuPs/kXcEv2mIzwbJA3mxjbl1x95fnXkcfMPUVYoAKK5//hO/B/8A0Neh /wDgxh/+KroKACiiigAorn/+E78H/wDQ16H/AODGH/4qtixv7PU7OO8sLuC7 tZM7JoJBIjYJBww4OCCPwoAsUUVj6r4q0LRNRstO1HU4Ib6+ljht7bJaR2cl VO0ZIUkEbjhc96ANiiiigAooooAKKjnnhtbeW4uJY4YIkLySSMFVFAySSeAA Oc1jweNPCt1cRW9v4l0aaeVwkccd/EzOxOAAA2SSeMUAblFRxzwzPMkUsbvC +yVVYEo20NhvQ7WU4PYg96koAKKKKACiiigAooooAKKKjnnhtbeW4uJY4YIk LySSMFVFAySSeAAOc0ASUVz/APwnfg//AKGvQ/8AwYw//FVuQTw3VvFcW8sc 0EqB45I2DK6kZBBHBBHOaAJKKKx5vFWhQeI7bw8+pwHV7jdstEJdxtTed2M7 Pl5G7Ge2aANiiiigAooqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH40AWK K5//AITvwf8A9DXof/gxh/8Aiq6CgAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACisvUvEug6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NalAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuP sTnD2zTjIGQdq8gg8h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEH kP0QgMeFNAFP4P232X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvD unSyLcahiOKUQT3EcMkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut 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 4o+Onh/XPD/n6ha6ZaTQahfw4azTMb+WiSdGkzN8wBPDL6NiP4q6bpsHjXwH qEVnaR6hca7AstwqKssqhox8x3AsBhRyjY4+ZM4cA9E1jxX4f8PypFq+tWNl M+wrFNOquQzbQ23Oduc5bGBgkkAEjP8A+Fi+Ef8AhKP+Eb/tuD+1vN8jydr7 fMx9zfjZuzxjOd3y9eK4f40aLYNeeF7u3tZ4dTvNbgie40+COOeUYwMTlRtk GFCBnA6nB2ZWx8braDTvCXh+505YLK/sNVt00xxFEqQsFbClnIWOP5AT1X5F BGOQAemarqtjoel3Gp6ncx21nbpvllfoo/mSTgADkkgDJNU9M8UaTq+oy6db TTx30UQna2u7SW2kMZJUOFlVSy5GMjIBxnqK4vxjqVzP8YPB+iWWox2txHb3 V3GskLzxu7RsgMkYaMYCLLtYOxySCoByZNZ8AX+o+MtD8Wan4msbS602WKMN aWMkHnoZBiElrhgNxdk4HPmEHdwKAO41PWrLSPKF007SS5KQ21tJcSMBjLbI 1ZtoyoLYwCygnJGY9A8R6R4p0tdS0W+ju7QuU3qCpVh1DKwBU9DggcEHoRXn fhnV7/Wvih44TS9dsYLqGWG3+zXdrJcqIoQyZi/exEYdn3jaVDMMM27J1NI+ HcNl411fUtY1PTb5Nbt8z6OlgIoJWRoz53ltI+4huSSD80pORnkA3Lj4i+Eb bTrzUZNbgNjZypBJcxq8kbSONwRGUESNjkhNxUdcUaj4p8HT/wBhDUbyxmk1 CW3n0uGaLfIXkz5UqoQWTuA5AweMg1wfwY0HQDceNXtLS0uLQ6nNYwuYWlVr TJwglYlHQgjKjngFiwZMHxP0HStP8a/Du8sbS0tJzrEMDLBDHGZEVogucEMQ gUKMKQAcEr8oYA9M1jxX4f8AD8qRavrVjZTPsKxTTqrkM20NtznbnOWxgYJJ ABIz/wDhYvhH/hKP+Eb/ALbg/tbzfI8na+3zMfc342bs8Yznd8vXiuH+NGi2 DXnhe7t7WeHU7zW4InuNPgjjnlGMDE5UbZBhQgZwOpwdmVk+O1lY2ngrRJIJ Y9Mns9ThisbiGHAthtbgFPmjQBQ3yBjmNQF7gA9Q1XVbHQ9LuNT1O5jtrO3T fLK/RR/MknAAHJJAGSaxx4+8LrcPb3erR6dOiK/l6pG9izKxIBUTqhYZUjIz jFcn8Yf7R02Xwx4pi/eaRoeoLPqMA2sSrMiq6o/ysw+dQfvKXBGOSKfjWfTf GnjXwUvhyWTV7vS9TjubmaxZZbW2tywZjLIOA58n5VzkgNxkrkA9Usb+z1Oz jvLC7gu7WTOyaCQSI2CQcMODggj8KsUUUAZ+uwxXHh7U4J7b7VDJaSo8GXHm qUIK5jDPyOPlBbngE8V5v+zz5X/CtZPL8jd/aEvmeVv3btqff3cbsY+58u3b /Fur0zVgW0a+USSRk28gDxpI7L8p5CxkOT7IQx7EHFeT/BvUptJ+COpalKt3 Glk91PE04MqMqIGzEmU+TcGG0Nywf5hngA9MvvFGk2F5JZvNPcXUWPOhsbSW 6eHIBXzFiVimQcjdjPOM4NSQTaL4u8PxToLTVNJvEDqJIxJHIAc8qw6hh0Iy COcEVxfwN8qT4ZwXn797y7u7ie9mm3kzTFyN+5vvfKEBK8ZBz826sfwD/wAU 78bfGPhKw+XSHiXUEhPAhkIiJCKMKq/viMYzhEGeOQDP+EHifw14R8A6vPqG rQWtj/bc4ti7s7yoEhAKrsV3wGXJCDrkhe3rmgeI9I8U6WupaLfR3doXKb1B Uqw6hlYAqehwQOCD0Irzv4HWlnLp3iLVfIgkvn1u5i+2YDyNGRG23zN7krnn /WOCedzdTT8G2FjpXxw8ceHLASWWnz2UU32S2XYuSsZLLIGDxkGZtoXj5zgr tUUAeiX/AI10HTPtLXl1PHBa7xNdfY5jbqVzuXzgnllgQV2hs7/kxu4roK8H 07xLrPw98PWPhzxfptjN4VvIvstrrukhJY9kiFizIVKyffH3kG4K7Yl5z7pB PDdW8VxbyxzQSoHjkjYMrqRkEEcEEc5oA8v/AGgo4X+GRaURl0vYmiLEAhsM Pl+dcnaW6B+M/KPvp6BpN3DF4Vsb24uY1gSyjlkuJJQVChASxcu4Ixzu3v67 m6ng/j9Js+F86+Zt33cK437d/JOMb13dM4w/TO0Y3psL4EtNV8L2aSahriXj RQTCW41a8kxKhVwXRnTPzKM/LGw7eW2CoBqDQLHRfB2r6UVtDpLJdOsErfZo o4pdzvG8i52oGZ8MqjamBglcnyP4SX//AAhPi+Dw9e3fk6Z4g0q01Cx+0SZ3 3DxpkLj5V3N5q4YAny4xk8bvdNWlaHRr6VLiO2dLeRlnkkWNYyFJ3F2VgoHX JVgMZIPSvJ/GXh1r74OeF9f0OWQ6h4csra+s5pI1VjEsaFiULFAcKr4+b/V7 RnPIB6prms2fh7Q73V799lraRNK+CAWx0VckAsTgAZ5JArw/wLayx/tCXf8A b1xs1v8As83MyyOjhriREcxRbtxVY45Cg2sTiIndtJWu8tvEi/EM+F4NN8yK 0kSPWdTKhv3QikxHBuaPBJuIzyCpKwPjhhWHp00sX7UOrJJc2MSy6UqRphDJ Mu2JtvykESZBb5wzbF6bdpABc+Inim71Hxjonw90G6u7e8vLiOXUbqyuUjkh txlmRW6q+1S/Y4CjDByK9E0bQ9L8PaclhpFhBZWq4OyFMbiABuY9WbAGWOSc cmvF9dd9H/ao0e71O8za3cSC0GWfyw8TwqmMfLmXceOPnySMnHvFAHF6b4D0 3QPiMuvaLp0dnb3OmTW90kG1IlkEkJjKoOhZQ+ccfKOhJLcmby4+KnxK1bw/ cCdPB+h5ivrQuF+13Ks6rkoQ4XcCwGSP3KkgFhj1ySeGF4UlljR5n2RKzAF2 2lsL6narHA7AntXh/wAFIptA+I3jbw5d+X9oDiTd5BgLrHIwDpEq7FRhKrAZ GAV2hgSVAPbPsFn/AGd/Z32SD7D5XkfZvLHl+Xjbs29NuOMdMVzfhfwNY+Ev EuvX2lRR29hqiW7i3Q8RSoZd+0YwqEOhAycHcBgACukvrKLULOS1medI3xkw TvC4wQeHQhh07Hnp0rxf4ai61X4p+LLW/wDEmqy2uj3ciWWnS6nOdwE7AP8A 6zLqgQKQwYHzBn3APcKKKKAPG/idaLdfGP4egRSF/tG8tb2LNIQkiuN0mQGQ YJIHMYLMc7gK9cvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8a8j+J1ss3xj +HuLOS4f7RuIt7dlkwsisGaXBDonLFAMqAxJG8EaHjK6XUvjh4H8PXDyPaQp LqJgG5VMqrIYnJD/ADFWi4G0YyeWDkAA7iw8X6HqOqf2XHdyQagUDpaXtvLa yyKd3KJKqlx8jZKg4xzXnfxX0mwh8feANUihgivptbijmZI41ecb4sFjkO20 KAPlYDdyV+UNqfHTTYZvh5JrKtJDqGkXENxZ3EJCujNIqEBsZA+YNwRyintW H48n/wCEk074V6hqNpBJ/aGoWb3CeTuj/eiNmTlG+U8/KXGQPuvjKAHeQfE3 wXdeIItDt/EFpNfyuEjWPc0bsRkASgbCT0xu68deK3NT1vTtH8pb242zTZ8m 3jRpZpsY3bIkBd8AgnaDgcnArzv46eHtNm+FclwttHC+kPCbMQoqhFZ1iKDj hNrA4GOUX0xR4gufFd9pvgfx3omkWmpXFrZNPfWSgBik8UbN5W7JB+VgNpLf MBhgWBAO80TxTo3iKW5i0u88+a1wLiJonjeElnXa6sAVbMb/ACkZ4BxggnUn nhtbeW4uJY4YIkLySSMFVFAySSeAAOc1w/gTxnovjDWdSuoY7uw16O3htr7T LvAaIRNIcqMZIDzOpJwRhcquRnsNWtprzRr61t5JI55reSON45jCysVIBDhW KEE/e2nHXB6UAeV+F3f4veIdS1TXEgu/Cuk3bQ6VaqrJHcSh9wmkUtlmEewb XXaRIcAfMD6xfWFnqdnJZ39pBd2smN8M8YkRsEEZU8HBAP4V4/8As6XXleHt e0Oe3nhvrHUPNnSVNu3egQLg8hgYWyCBjj3x65qWmQarbrBcSXaIrhwbW7lt 2zgjlo2Ukc9M46egoA5/whoMPgjTdaszLJBosF69xZm6uAyw25ijZgCT8qLJ 5vXngk5zklz8TfBdpb3NxL4gtPIt3CNJHudZGIU4jKgiUgOpYJu27huxXnfw KWfxRpOrX+v69fatIkv2YWF3eyyIkZjO5njLlXV95ADKR+7OOelz4Mabpt1c eNdzabewHU5rdIoCpg8lidxjhwQkUgCj77BxGo/5Z5IB6g/iHTE0a01YTySW l4iPbeVBJJJMHXcuyNVLsduWIC5ABJwAcR6D4p0bxL9sGk3nnSWUvk3MLxPF JC/oyOAw6EdOoI6g48/hury6+OV/o+jahBY/2Rokdvb202nmS2jjZo3faFnT DcwgEAAgbSPkBbUtvAVzZ/E+28ZXviO0S7uENtLaWtq8C3p8pgAd075IVA2A MfugcZBNAHUa34v0Pw9cfZ9Ru5Fn+zvdNHDbyztHCpw0jiNWKICcbmwOD6Gr EHiTRbnw/FryapaDSZEDreSShIwCdvJbG07vlwcEHg88V5v8LdY1nxNper3+ m69oyyzanLPPHcWE8s43YEZcG4AQbFVVVdyhUA3Ehsamh/DCz8P6d4iTVrqD UrG/lN7HaQ6UDHYyAPloIWMoLYYADaThAMN0oA6DUfiL4R0rR7XVrzW4Fsbq WSG3lRXk81o2KuVCgkqCpG4DbyOfmGdzStVsdc0u31PTLmO5s7hN8UqdGH8w Qcgg8ggg4IrzP4D6Ppx+F5kezgkbUJZUuy9sw85QSoVi+RIuM/dwo3EY3BiZ PgJuTwVqdq1rJai21ieFYJkUSxgLGdshCqWcEkEkA8AYAAAAPVKKKKAPF7iK 1k/aotGRcyx6eWc+fBHtk8phnaBuk+QgbWw/O7/VqK9c1LVbHSLdZ7+5jgR3 EcYblpXIJCIo5dzg4VQSewNeV3Ad/wBqG0Ign2ppRJbyWmXG1vmy4AhXJ27o 9wLfKTmRwLkF0utftJXFrcPJImh6OWtYzuRYZZPL3MBvIYlJcE4XsMfKGIB3 mk+KdG1u8nsrK8/0635ms54ngnQYU7jFIFfbh1+bGOeteZ+IYNI0b9ojwxcR RabYhrK6uryRFMTH93OTJKeExwx3fe4bdxtqT46/8SGLw540sP3er6fqCwI4 4EsbK7lHIwxX5CMZAw7j+KrHjWzt9U+Ongqw1Cy+1WL2l0WjuYC8Dny3OBuY oWBVSQEBHyElsqFAOw0f4i+Edf1x9F0vW4Lm/XfiNVcB9v3tjEBX7n5ScgEj gZrY1PWrLSPKF007SS5KQ21tJcSMBjLbI1ZtoyoLYwCygnJGfK/j3a22m2/h vxaiSLqGn6nHErw7FZkw0mNzI3IaP5cggbmypzWp4xTxT4V8ff8ACYaDoH9u WE+nraXtskhadGVztMeQWVTuUlUBU7WLKDhqAO80LxHpHiaye80a+jvLdHCN IgIAYor45A52uuR2OQcEEDUrj/AHifw/4stdU1bQ55zJdXYlu7a52iSBxEkS /KM4UrECDk5O7nIIHYUAeN/CGCFviX8S7hoozOmplEkKjcqtNOWAPUAlVJHf aPSvSH8Y+HF1R9NGsWj3caSvOkT7xbrF/rDMy5EQHTLleeOted/CD/kofxO/ 7Co/9G3FV7Pw1pdn+0cbex077PaJpS3TW9pb+RAHDAKzqx2yKGCMDGBiQJxu R2oA9E8NePvC/i+4nt9C1aO6ngQPJGY3jbaTjIDqCRnAJGcZGeoq5feKNJsL ySzeae4uosedDY2kt08OQCvmLErFMg5G7GecZwa4PUt2l/tJaNLFayRRato8 kEk0aKqzOm9zuJU7iFSIcEEfJzj5TT1nUPEHw88ba1r9lp0Gs+Gr+7RtSFsW mvLIpApJdjyq4JcKxKKuAPL3DIB3l7498N2GiR61NfyNpcjyILyC1mmiBR/L OWRCAN3AJwG/hzViTxfocfhqHxEt3JPpMqbxc21vLMFUAklgikoBtOSwG0jB weK5PUrzS9W+Bet6jowvrixvbS9u1BfypUd5JJJA3K/KjlsgE5VSPnz82p4A uAfhDo01xqkcSJpgDXiTRsIFVSM7igQFAMEMp2lSGLYLEA6DS/Eekaz4fXXr K+jbS2R3+0yAxKFQkMTvAIAKnk46Vj3vxL8H6dpcep3WtRpZy3EltDKIZGEz p98x4Ul0B43rlc8ZzXF/CbRNL1r4JRW2paPBqUJluJPs4tPLeR8soKu5AaTB 2iVSu3hcgoTUnwO0fTdQ+Fey+gtL9Lm4dJop2WcKqPuSNlK/IAxLhDu5kLgj fgAHomp+KNJ0jUYtOuZp5L6WIzrbWlpLcyCMEKXKxKxVcnGTgE5x0NSaB4j0 jxTpa6lot9Hd2hcpvUFSrDqGVgCp6HBA4IPQiuThfTrL4meIG8PwX2peIrqK H+0I5pmhsbRVRPL3ttPzOp+XCyNkMPkG41z/AMLLTzvHPxMtNRgsZfNu4kuE gG+GbcZ9xKl3xuySyFjtJK8YwADvG8f+FAl7KmuWk0Fjbi5uZ4CZYokLFVBk UFd5IwEzuPYGrHhrxhoHjC3nn0HUo7xIHCSgIyMhIyMqwBwecHGDg+hrzfwF oWkW/wAcPGT21lGosEiW1DaeYvI3qN+wqFRB1AypZ1O4MRvLaHh3dp37Q3in T7a1ktLO90yO8lUooS4lUxjzU+UEDMkgPJy28k54UA7y+8UaTYXklm809xdR Y86GxtJbp4cgFfMWJWKZByN2M84zg1c0rVbHXNLt9T0y5jubO4TfFKnRh/ME HIIPIIIOCK8/+CmpQ6/4a1XxBIsh1a/1OU38jgY3AKUSM5LeUqMoUMTglscV Jr1np3w6+HXjD+ydRn+1T+Zesbi7ZpoZLjESMGVS/wB5flLZJZTlxywAOk1L x74b0i4WLUL+S3RrgWouXtZvs/m5IKefs8vIIYH5vlKsDjacdJXmek6DqXir 4W2Ol2+v6NPot1pkdvG0mjs0qKECgnFyVEqEenDr7V1ngnR/+Ef8IWOj/wBr f2r9i8yD7X0ztkYbMbmxs+5jPGzHGMAA6CiiuD8ceML6z8QaN4P8OvGuvaq+ 5pZYd62tth90oyyhnG0sF5B2EEcrkA4/4f6/plo/jtfEjR6h4ln1OaK70+2W S4e8iRSqxQxNkugPmgD+Fcb8KAR2Hg7U9K8F+DtK8P8AiLxPpsWrWduouIbu +jWSEt84jILnhVYKD0IUEYGBXn/jXw9c/CXxLpPjfw5Bd3lmqGDVxPO7tO7H mSZ9xOZC2c7dquinBJArvNLtdG+IXi208Yw28FzpmmRNBYTzWjpJPPuDGUFs bo4/upkcOZTxtUkA7yCeG6t4ri3ljmglQPHJGwZXUjIII4II5zUlFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeZzeBvFtzceLtPudejudH15/9 HmmupzJYIS7FEhGAR8wTAkUEKCQwylemUUAZcPhzSLbw0fDsFjHFpJt2tjbI SoMbAhhkHOTk5bOSSTnPNcf4b8NeMvBOl3uhaPJo2paXG7tpUt/PJDLbhssV lVIiJAGOeCpPPIyAvolFAHN6J4Qh0bw1faWuoXbXepPNPfajEwilkuJRh5UA 4jPTaAMDA6nJOH4R8N+MPBmjr4dtpNDvtMgyLS9kaaGaPezO7SRAMr4Z+FDp kLywzkegUUAcnZeCF0/wdqWjwapdpqGpPLc3OqRs0UjXcmCZgqMu0BgvyKQM DBzkk4+t+D/Efjfw1Y6B4ml022iheGW6vbSTz5blkGG2o8KCEtkncpOPu4IY 16JRQB5/4vl8e6V4ms9W0nUdKk8PebbW0mmzoUd3llEXLhGPWRTuBGMfcbB3 U/it4N8VePbKDSdOGjW2nwXAuPOuLmXzZGCFQNqxkKBufu2flPHIr0CTSrGb VIdTmto5byBNkMsnzGEHOdmeEJDEMVwWAAOQBi5QBz/2zxh/0AtD/wDBzN/8 i1T0/wAO6lqGm+JYvExtEn1p3hB0+Vn8m1MQjSMO6g5BMjdNu52YAbiK6yig Dyvwx4J+IfhO3fQNP8TaM+ghGW3uZrJmuLYsGYskYIUne38bsMAHHVTofDf4 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 E5dmYoExuxufbllzuwegapPDvgfxf4c8Y+ItSXXLS/s9TdJ/MudwupWjyY4m IUpGh3FGZVb5QNqoSNvplFAHneieGvFWn/EjWPE9xYeHzBqyQRSKt5K09uqK qnY5hAYELkrhckLyNvMei+F/GFh8UNV8VTrpQsdViihnsotRmPl7BGok5hAd gEbAIX75GRzn0iigDxu7+FHivw54lv8AVfh54jtNOg1F2aazuYgqRDIYKoCO rAEtj5VKjgE5Jr0DSfCjQ6NqFp4g1KTXLvU0aK9upIlg3xFSgiVU+4gUscA/ ed24LGukooA8X0z4Z/EXwtqMtj4Y8aQW/h5pR5a3a+dJFHkk4jaMoGBZvulQ 5wTjoPXNK02HSNLt7CBpHSFMGSUgvK3VncgDc7MSzHuST3q5RQAV5v8AEn4a 3nivVtL8Q6FqEFhrumbfKedCySbZA6ZPIXad5+427dg8V6RRQBxdtoHirX7e S38aajpq2DpJFLp+irLGtyrBceZMzbwB8w2ptznksCVrj7L4WeNPCOqSW3gf xfHZ6DcvG8yX0ayyxt0YqvllGOOcjZngH7oNeyUUAZfhzRV8PeH7PS1nkuHh QmW4kLFp5WJaSQ7iTlnZmxk4zWpRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABXP/wDCd+D/APoa9D/8GMP/AMVXQV434/nhj+PXgVVljScJ8+GC NtZmCgt+7JBO4AeY2eR5ZztlAPRP+E78H/8AQ16H/wCDGH/4qrmv+I9I8LaW 2pa1fR2loHCb2BYsx6BVUEsepwAeAT0BqTWbHS9W059J1eOCa1v8w+RM2PNO C2F77gFLDHI25GMZrH8Qap4a8OeF4LXxhe2L2piSNo7tGl+0lCoJEbl3fDFT yXI4JJ60AdRRWXrfiTRfDlv5+s6paWKFHdBNKFaQKMtsXq5GRwoJ5HrWPqPx L8H6Tqlvpmo61Ha3k6RuIpoZFMYf7vmZXERwQSH2kAgnAoA6yiqeq6rY6Hpd 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 orH1PxRpOkajFp1zNPJfSxGdba0tJbmQRghS5WJWKrk4ycAnOOhqPRfGGgeI tLm1HR9SjvoIELypAjNKg+brFjeCdrYG3LY4zQBuUV5foXxYtdY8fa5p5F9H YWUSRQ2g0ueaeSRXYSSkRoWjUZVSrjP3T8p3Ke81fxDpmhPaRX88gnu3ZLeC CCSeWUqu5tscasxAAyTjA4z1FAGpRWP4e8VaF4rszdaHqcF7Gv3whIePJIG5 DhlztOMgZxkcVly/E3wXDpc+pP4gtBaQ3D2xcbiXkXbuEagZkA3odyAjBznF AGxq3iPSNCuNPt9Svo4J9RuFtrSMgs0shIAAABOMkAseBkZIyK1K5fUfFPg6 f+whqN5YzSahLbz6XDNFvkLyZ8qVUILJ3AcgYPGQa1NR8SaLpN7b2N/qlpBe XDxpDbNKPNkLvsXan3iC3GcYGCTgA0AalFcv/wALF8I/8JR/wjf9twf2t5vk eTtfb5mPub8bN2eMZzu+XrxW5quq2Oh6XcanqdzHbWdum+WV+ij+ZJOAAOSS AMk0AXKK5sePvC63D293q0enToiv5eqRvYsysSAVE6oWGVIyM4xW5Y39nqdn HeWF3Bd2smdk0EgkRsEg4YcHBBH4UAWKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACvG/iREb340+B7IXF2gZH3C0 uZIpFUk7iDGzMoIBBIRMgEGTAJi9kryvxN4P8beIvGvh/wAQrb+H7dNHcMLZ 7+aYS/NlvvQbEJAADBNwODk7V2gHWL4LtbTxHpWsWd3qpktPOjkSfVp5keOR OcrIX3fMqHaCg43EkqBXF/tBafZHwGdRMFot8LiKEXDQRNK0eWPlq7EOoz83 yZPB42liPWIDM1vE1xHHHOUBkSNy6q2OQGIBIz3wM+grh/ij4Y8Q+M/D50LS BpsVvI6SS3F1eTI2VJO0RohDD7pyxI6/LkKwAMf486NbXHw8vNVWytGvLd4V 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 9Htl0rT90qzXTf2jMyttLgR4EI3Lyj5OMMMY4DGTxmfEt3f+FLfT49Nj1pri eZ7KZ7iezMcaZEkjqEBCN5JG5MiRk2kYO4Ax/Gs+m+NPGvgpfDksmr3el6nH c3M1iyy2ttblgzGWQcBz5PyrnJAbjJXPrlef/wDF3/8AqRv/ACbrsNC1P+2/ D2mat5Pk/brSK58rdu2b0Dbc4GcZxnAoA0KKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisvUvEug6NcLb6prem2 M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXpviXQdZuGt9L1vTb6dULtHa3SSsFyB khSTjJAz7itSgAoqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH41X0TW9O8 R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcigDQooooAKKKx77xZ4b0y8ks7/wAQ aVaXUeN8M97HG65AIypORkEH8aANiis/TNd0fW/N/snVbG/8nHmfZLhJdmc4 ztJxnB6+hrP/AOE78H/9DXof/gxh/wDiqAOgoqOCeG6t4ri3ljmglQPHJGwZ XUjIII4II5zUlABRRRQAUUUUAFFFFABRRRQAUVXvr+z0yzkvL+7gtLWPG+ae QRouSAMseBkkD8ax/wDhO/B//Q16H/4MYf8A4qgDoKKz9M13R9b83+ydVsb/ AMnHmfZLhJdmc4ztJxnB6+hrQoAKKKKACiiigAooooAKKKKACiiigAooooAK KKKAKdnpVjYXF1c21tGlxdvvuJ+skpySNznkhckKCcKOBgACrlFc/wD8J34P /wChr0P/AMGMP/xVAHQUVXsb+z1OzjvLC7gu7WTOyaCQSI2CQcMODggj8KsU AFFY+q+KtC0TUbLTtR1OCG+vpY4be2yWkdnJVTtGSFJBG44XPetigAooooAK KK5//hO/B/8A0Neh/wDgxh/+KoA6CisebxZ4bt7O2vJvEGlR2t1u+zzPexhJ dpw21icNg8HHSq//AAnfg/8A6GvQ/wDwYw//ABVAHQUVj2Pizw3qd5HZ2HiD Sru6kzshgvY5HbAJOFBycAE/hWxQAUUVlzeJdBttUGlz63psWoF1QWj3SLKW bG0bCc5ORgY5yKANSiiigAoqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH4 1j/8J34P/wChr0P/AMGMP/xVAHQUVz//AAnfg/8A6GvQ/wDwYw//ABVdBQAU UVl23iTRb3WZNHtNUtLjUI0keW3hlDtEEZVbfjO0hmAwcHr6HABqUUUUAFFF FABRRRQAUUUUAFFFFABRWXqXiXQdGuFt9U1vTbGdkDrHdXSRMVyRkBiDjIIz 7GjTfEug6zcNb6Xrem306oXaO1uklYLkDJCknGSBn3FAGpRRVe+v7PTLOS8v 7uC0tY8b5p5BGi5IAyx4GSQPxoAsUVn6JreneI9Hg1bSbj7RYz7vLl2Mm7ax U8MARyCORWhQAUUUUAU49KsYtUm1NbaM38qeW1w3zOE4+RSeVTKg7RgZycZJ JuVl6l4l0HRrhbfVNb02xnZA6x3V0kTFckZAYg4yCM+xqTTNd0fW/N/snVbG /wDJx5n2S4SXZnOM7ScZwevoaANCiiigAooooAK5vxt4cvvFnh+fRrbUbSyt 7pClw01j9pYjKkbMuoUjB5IJ5BG0gGukooAx/C+k3mg+HrPSby9gvPscSW8M sNsYf3aIqruBd8twSSCBz0FbFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA /Gq+ia3p3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFYc/jTwra3Etvc eJdGhnicpJHJfxKyMDgggtkEHjFAG5RVPTdW03WbdrjS9QtL6BXKNJazLKob AOCVJGcEHHuKuUAFFZ+s65pfh7Tnv9Xv4LK1XI3zPjcQCdqjqzYBwoyTjgVY sL631PTra/s5PMtbqJJoX2kbkYAqcHkZBHWgCxXmdt8G7GPxrqmtXWr3dzpe o3BuptHYbYpZd28eaQcSIrFiFK+mScHd6ZRQAUUVhz+NPCtrcS29x4l0aGeJ ykkcl/ErIwOCCC2QQeMUAblFV7G/s9Ts47ywu4Lu1kzsmgkEiNgkHDDg4II/ CrFABRRVPVdVsdD0u41PU7mO2s7dN8sr9FH8yScAAckkAZJoAuUVXsL631PT ra/s5PMtbqJJoX2kbkYAqcHkZBHWrFABRRRQAUUUUAFFFFABRRVPUtW03Rrd bjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaALlFV7G/s9Ts47ywu4Lu1kzsmgkEi NgkHDDg4II/CrFABXH+K/An9v6tb65pmt32ia7bRCCO7tjuR4xIH2SRkgOuc 8ZAOfm3AAV2Fc/8A8J34P/6GvQ//AAYw/wDxVAGPa+C/EV359r4p8az6zpM8 TRy2UNhHZeZn+9JGd+3GcqCM9CSMg9xXP/8ACd+D/wDoa9D/APBjD/8AFVqa bq2m6zbtcaXqFpfQK5RpLWZZVDYBwSpIzgg49xQBcooooAKKKKACiisvVvEe kaFcafb6lfRwT6jcLbWkZBZpZCQAAACcZIBY8DIyRkUAalFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuPsTnD2zTjI GQdq8gg8h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEHkP0QgMeFN AFP4P232X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvDunSyLcahi OKUQT3EcMkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut3YTrZOI2c FpFaWYqHXBQgMX3Kf4QVPz4+buPh/pVjD8LdAsFto2tJ9MjeWGT51cypvkyG zkMztx05x04oAueKLPS9f8G3jz2UGr2ptHuLdVg+07z5bbWiAZSzEH5SrKTn hhnNef8Aw28ceGvCPwh8PDXNXgtJJPPKw4aSQg3E2G2IC235SN2MZGM5qn8M C1tpfxE8JJJd3VnpFxNDaxzlZRsbzV2hBE5ySmSNrgluI85DdB8FNJ01vhJY O2n2he/SdLxjCubhRNKoEnHzgKSMHPBxQB6BpWq2OuaXb6nplzHc2dwm+KVO jD+YIOQQeQQQcEVl3/jXQdM+0teXU8cFrvE119jmNupXO5fOCeWWBBXaGzv+ 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 lXaMksAB3xUmgeI9I8U6WupaLfR3doXKb1BUqw6hlYAqehwQOCD0Irn/AAAT F8IdGY3N2uNMDebFbyNKnyk/IkgcsR/DgFWwNq7Sq1h/Bewg1P4OWNnqdp9r s5JZsQ3kcUkTKJSRtUdVDAn5/m3BsfLtoA6S5+Jvgu0t7m4l8QWnkW7hGkj3 OsjEKcRlQRKQHUsE3bdw3YqTUfFPg6f+whqN5YzSahLbz6XDNFvkLyZ8qVUI LJ3AcgYPGQa4P4MaPpDXHjWGKCN7NNTmtIbO5Ys0VuSQVaGRdyBwqhixJfyg CAY+ZPidouj6d4t+H09lptja3T63bxF4Ykjdo0aNVXhgSqgKB8jAYA3J0cA9 Q1PW9O0fylvbjbNNnybeNGlmmxjdsiQF3wCCdoOBycCq+ieKdG8RS3MWl3nn zWuBcRNE8bwks67XVgCrZjf5SM8A4wQTyfxEsvFFn4g0LxX4csY9WGlpOlzp zhN3luAWaIldwchdvykn7oCkFwTwb4q8OfEY6pDqGjR22tKiW+o6Vfjzf3cU jlDtYAMFZ2z8oKscH+EkA3Lj4jeDrbTry/fxFYva2cqQzPDJ5uHcZUKFyXyM /dz91/7rYkh8f+FJ/DR8QprloNLDtH5zkod6gkpsYBt+BkLjJGCAciuH+Cem wWNx4tgXTo7d7LWJ7eIrNLKsSZAaNGdQCBsTLA7mwu8DamTwBptpB8ZfHyzW ciXEdxFcQAo+xPMDln+86B2EnBJDYd9qoC6AA9A8NeMNA8YW88+g6lHeJA4S UBGRkJGRlWAODzg4wcH0NbleT+E7VLf9oTxuLe38uH7JAzGO0XZvdImJMnVW Y7m2j7/zMeUFesUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXmc3gbxbc3 Hi7T7nXo7nR9ef8A0eaa6nMlghLsUSEYBHzBMCRQQoJDDKV6ZRQBlw+HNItv DR8OwWMcWkm3a2NshKgxsCGGQc5OTls5JJOc81x/hvw14y8E6Xe6Fo8mjalp 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 gAghg1dZfeLINJ0OTU9X06+sG80QQWcnlSz3UjY2JEsTuGZjkAZB4JOAM0Ad BXJ+M/iN4c8Coi6vcyNdypvis7dN8rruAzjICjryxGdrYyRio5fiJYWHiGx0 TWtK1XR7rUMCze7ijeOdy4QIHhdwGyw64wMEkZGeX/aG8r/hWsfmeRu/tCLy /N37t21/ubeN2M/f+Xbu/i20AesUUUUARzzw2tvLcXEscMESF5JJGCqigZJJ PAAHOaw9L8a6Dq95aWtrdTrNexNNaC5s5rcXKAAkxtIih8BgflJ456Vzfxvs r69+FepixlkAheKa4iSHzDNErjI9VCnDlh2jOeCapxXlv4/0nwle6fpU9roG lSx6pcSwqQIpYIyFtYYwm6XDtglVC4QhSWOAAeoUVy/h74h+GPFd4bXQ76e9 kX75SxnCR5BI3OUCrnacZIzjA5rqKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuX+I/m/8ACtfEfk+f u/s+bPkbN23ad2d/G3Gd2Pm252/NiuorzcfCZF1HxSBrGdK8SyiW8t2s1eaM gs/7uRiVHzuTkxkgYwQw3UAc/Ztcaf8AsrsbWxvo5G0+QGLgyFJJW3ycp/qy rM/ThDw2fnr0D4cfY/8AhWvhz7D5Hk/2fDu8jG3zNo8zOP4t+7d33Zzzmug+ wWf9nf2d9kg+w+V5H2byx5fl427NvTbjjHTFcfoPgjWPCX2yz8PeIYI9Gll8 22sNQsXufsmeWVHEyHaSc4OfzLFgDi/hnBe6db/E7SdOiki02yvZ005SspVZ QJFIDx/vWIVIchSXHBHJ56z4Jf8AJIdC/wC3j/0okrpNO8JaRp3hq40FIZJr S7SQXjzSEy3TSDEjyOMFnbPJ47YwAAMPw94I1nwpZnSdI8U/8SQcQQXWnpJP bgks5SVWVSxZmILowHHBAOQDi/APhq21hPiloIt47ezuNTmtYT9gTyoSGkCl G4LFDtYJwEwpBBc4G8V+JvAyado3xM02PUNFNxCsOuWkrMQ8bCVWk/ichlTq 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 T2nxV8S61rOsS2l/pOmXBtdN0wM5iZcyFbmaB8guyPtViB0f5QVBHMaNqWr/ AAW8S6n4Wu1j/sfVHeTRbu5AMQmYqiPNICuEC7fNGMjaCowct2cXwkvdD8Q3 2qeDfF0+hR32TPamxjnjyXLAKpKqqrnCjaSBnnBIrc1P4XeHNc0uS11pbvUr t3d/7SuZs3SFt2ArKAFRdxxGF8sHnaTkkA2NA0q28MaIsc8saT3FwZ7ueV0z LczPk5cIgYlmCL8qkgKMDgVuV5n4U+Ek2h39lcaz4s1LXINOdXsbKYFbeFlR lU+WzOMqGBUrt2kd69MoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACisOfxp4VtbiW3uPEujQzx OUkjkv4lZGBwQQWyCDxitgTwtcPbrLGZ0RXeMMNyqxIUkdQCVYA99p9KAJKK KKACiiigCMQQrcPcLFGJ3RUeQKNzKpJUE9SAWYgdtx9akoooAKKy7rxHpFn4 gsdBnvo11S+R3t7YAszKoJJOBhRhWwWxnBxnBrUoAKKKKACiiigAoqvfX9np lnJeX93BaWseN808gjRckAZY8DJIH41j/wDCd+D/APoa9D/8GMP/AMVQBc1/ w5pHinS203WrGO7tC4fYxKlWHQqykFT1GQRwSOhNcnYfCi30/wCzRxeMfGRt bfYFtf7WKRlFxhMIoIXAx8pGB0Ir0CigCvY2FnplnHZ2FpBaWsedkMEYjRck k4UcDJJP41YrHtfFWhX3iGfQLPU4LjU4ImmmghJfy1V9jBmHyhgxAKk7h6Vs UAFFFFABRVPUtW03RrdbjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaNN1bTdZt2u NL1C0voFco0lrMsqhsA4JUkZwQce4oAuUUVj33izw3pl5JZ3/iDSrS6jxvhn vY43XIBGVJyMgg/jQBsUUUUAFFFFABRRRQAUUVl6b4j0jV9U1LTdPvo7i70x 1S8RASImbOBuxgn5WBAJwQQcGgDUooooAKjjghheZ4oo0eZ98rKoBdtoXLep 2qoyewA7VJRQAUUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8aALFFc// AMJ34P8A+hr0P/wYw/8AxVdBQAUUVj2virQr7xDPoFnqcFxqcETTTQQkv5aq +xgzD5QwYgFSdw9KANiiiigAoorP1PXdH0Tyv7W1WxsPOz5f2u4SLfjGcbiM 4yOnqKANCiqem6tpus27XGl6haX0CuUaS1mWVQ2AcEqSM4IOPcVcoAKKx77x Z4b0y8ks7/xBpVpdR43wz3scbrkAjKk5GQQfxrYoAKKKx/EPirQvClmLrXNT gso2+4HJLyYIB2oMs2NwzgHGcnigDYooooAKKy9D8R6R4lt7m40a+jvILe4a 2kkjB2+YoBIBIwwwwO4ZBzwTUejeKtC8Q3l9a6PqcF9JY+X9oMBLIu8Erhx8 rdD90nGMHBoA2KKy4/EekTeJZvDsV9G+rQ2/2mW2UElI8gZY4wD8y/KTnBBx g5rUoA5fxX4A0LxhLb3V9HPb6la4+zahZymKeHDBhhuhwRxkHGSRgnNU7L4a aZEkkWq6v4g16B3jfyNW1OSWIFG3DMa7VcEgEhww+Ue+e0ooAKKKKACiiigA oorHm8VaFB4jtvDz6nAdXuN2y0Ql3G1N53Yzs+XkbsZ7ZoA2KKKKACo44IYX meKKNHmffKyqAXbaFy3qdqqMnsAO1Yf/AAnfg/8A6GvQ/wDwYw//ABVbFjf2 ep2cd5YXcF3ayZ2TQSCRGwSDhhwcEEfhQBYoorH1XxVoWiajZadqOpwQ319L HDb22S0js5KqdoyQpII3HC570AbFFFFABRRUc88Nrby3FxLHDBEheSSRgqoo GSSTwABzmgCSiuf/AOE78H/9DXof/gxh/wDiq0NM13R9b83+ydVsb/yceZ9k uEl2ZzjO0nGcHr6GgDQooooAKKKKACiiigArh9W+FehajrkutWN3quh6lcbv tM+j3ZgM+7aTuGCOq5OMZJJOTzXQX3izw3pl5JZ3/iDSrS6jxvhnvY43XIBG VJyMgg/jVf8A4Tvwf/0Neh/+DGH/AOKoAr6D4E07RLyK+mv9V1i/g3i3u9Wv GuHgVwoYRg4Vc7eoG7kjOOK6is/TNd0fW/N/snVbG/8AJx5n2S4SXZnOM7Sc Zwevoaj0PxHpHiW3ubjRr6O8gt7hraSSMHb5igEgEjDDDA7hkHPBNAGpRRRQ AUUUUAFFFFABRWfqeu6Ponlf2tqtjYedny/tdwkW/GM43EZxkdPUVXsfFnhv U7yOzsPEGlXd1JnZDBexyO2AScKDk4AJ/CgDYooqOeeG1t5bi4ljhgiQvJJI wVUUDJJJ4AA5zQBJRWXofiPSPEtvc3GjX0d5Bb3DW0kkYO3zFAJAJGGGGB3D IOeCa1KACiiigAorHvvFnhvTLySzv/EGlWl1HjfDPexxuuQCMqTkZBB/Go4P GnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGKANyiiigAqOOCGF5niijR5n3 ysqgF22hct6naqjJ7ADtRPPDa28txcSxwwRIXkkkYKqKBkkk8AAc5rP0PxHp HiW3ubjRr6O8gt7hraSSMHb5igEgEjDDDA7hkHPBNAGpRRWPo3irQvEN5fWu j6nBfSWPl/aDASyLvBK4cfK3Q/dJxjBwaANiisuPxHpE3iWbw7FfRvq0Nv8A aZbZQSUjyBljjAPzL8pOcEHGDmtSgAooooAKKKy9N8S6DrNw1vpet6bfTqhd o7W6SVguQMkKScZIGfcUAalFFFAFeaws7i8trya0gkurXd9nmeMF4tww21jy uRwcdasUUUAFFFFABRRRQAVx/iT4baF4j1iPWvMvtL1lMD+0dMuDBMyhSuCc EHg4zjdgAZwMV2FFAHJ6J4AsdJuPPvNV1nXXV0kgGtXf2lbd1OQ8akAK/wDt YyOxGTnrKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8j8S6nfe M/jBB4Ciku4dBsbc3Grrby+S1wGjztZg2WiPmRIVGCd7egYeuV4P4N8rRP2m vE1ld+RDNfRTeQkG9ldnMc4yWzhigZm6LuyBxgUAe2Q6TpttpZ0uDT7SLTyj IbRIVWIq2dw2AYwcnIxzk1y/h3wlpvgnxL4m1GzhjsNHvbe3uGLSKsUUiGfz Qo/gQKUbngbjjgYHaVXufsdxu0668iX7TE+baXDebGMK/wAp+8vzqD2+YZ60 Ac/cfEbwdbadeX7+IrF7WzlSGZ4ZPNw7jKhQuS+Rn7ufuv8A3WxoXPinRrPQ 7PWZrzFjfeULVlidnnMuDGqRgF2Yg52gZ68cGvN/hBotuNR8dQXdrBNGmqz2 flrAVtghJEiRxlSqK2E3KHbIWMMAFUtct7y9uvjTqei6NeabZDSNHigghuLK V1ijJR2ESJMqYO6LLHaflRQpCliAd5oPinRvEv2waTeedJZS+TcwvE8UkL+j I4DDoR06gjqDivqnjXQdIvLu1urqdprKJZrsW1nNcC2QgkGRo0YJkKT8xHHP Sufsfh3fw/EyPxrc67B9oaIxXVtZ2ckKXI2FBu3TP0whxjH7tTjPNR+HUW01 nX4fBsMl4l1qdw+p3+o3TLBaXe4Boo4QoMhG4scbQwAHmnjaAdZZ+KdG1HQz rOnXn2+xG0FrKJ7hwTg7TGgLhgGBK4yM8gVxfgT4jx+JPEGvpd2mpW8i3sdt b2rW88rW8YG0CVUjMcJL+YSzNnkqTtjUmv8AAcBfCuvKJI5ANduAHjSNFb5I uQsZKAeyEqOxIxR8GJQLjxraf6XGYtdmb7NczxyNFkkfMQzOX+XDMxKnaNpJ 3mgDtLvW/Cx8X6dpNzcWMviEeb9ki2CSaD93ufkA+VuTnkruHTNU5/iT4Wtv EEugve3Z1aNyjWcenXLyEgbuAsZ3Db82RkEcjjmuP1vTdNsP2iPCEllZ2lvP c293LcmFFVpWMcvzOA2SSc/MUGefmfGEsfGjTZtOsNN8eaW0cWqaBcIWYkr5 0LuF2NtG5huYDG4Da8nrQB3niHxRpPhWzF5rE08FqesyWksqJyB8zIpC5LAD djPbNSaj4h0zSdLt9Rv55IILh444UaCTzZHf7qLFt3lz/d25GDkDBrHmvF8T +INBTT7iOXSYbddXud0TfvQ4K2owxHBbzJOQSrQJ904J5uXUb/U/jvf2Gmap BbXGnaIsaxT20lzDh5EeQld8eyQ5h+7vBUckEbQAdxoPinRvEv2waTeedJZS +TcwvE8UkL+jI4DDoR06gjqDjYrz+x+Hd/D8TI/GtzrsH2hojFdW1nZyQpcj YUG7dM/TCHGMfu1OM816BQAV4v4ChtYP2gvG6R20Fu5iZwjGcyHc8bOy7gF2 sxDHI6svlkpkn2ivG/BDqn7Q3jaFppHke3DqHtWB2gx5+eRi6gbgAF+Rxhht VUFAHqmp63p2j+Ut7cbZps+Tbxo0s02MbtkSAu+AQTtBwOTgVHoviPSPEKTN pd9HO8DlJ4SCksDBmXEkbAOhyrcMBnFef+ALpdd+L3j7U53klnsHi062Ztyi KIM4dFXewwWiBz3OThdxWqfxA/4pr4zeCdc0393daxKdPvU6JNHujTLBcFmA l6sSP3cfHy8gFfRotE8K/tBeIWRbHSNNj0RGc+fFHChZ4BnaABFk4G1uSTu6 OK9E8NePvC/i+4nt9C1aO6ngQPJGY3jbaTjIDqCRnAJGcZGeori4dMs7v9pO /a8sIJvL0SO5hM1uDtkWSMLIpMa/MOQGBcjGNwxsSv8AEW2s9H+MPgDWLVfs l9f3b29zcQxB2mX93GqspIHIkZC33gpyM7VFAHpF94o0mwvJLN5p7i6ix50N jaS3Tw5AK+YsSsUyDkbsZ5xnBq5peq2OtWC3+m3Md1aO7ok0fKsUco2D3G5T yOD1GRzXl/iCXxl8OvE+v+JtO0yPWvDN+63Vzbm7kM1sUjCs43Z2gscnargJ GB8gUY7jwLqui614YS/0G5kntJ7ied1lx5kUssjSvG4HQhpDgemDkggkA2NW tob3Rr60uLWS7gnt5I5LaNgrTKykFASVAJBxnI69R1rwv4SX/wDwhPi+Dw9e 3fk6Z4g0q01Cx+0SZ33DxpkLj5V3N5q4YAny4xk8bveL9d+nXK+VPLmJx5dv J5cj8HhG3LtY9juXB5yOteN+MdEmufgj4S8Saf5i6t4esrO8tnSMyELsj3/L 0wMK5JBwIz2JoA9c1zWbPw9od7q9++y1tImlfBALY6KuSAWJwAM8kgV4n4Ms bu1/aIun1ua0GpXOmC6eOeRJ3SZ44y8URD5jKEuFB3HylxyGDV3Fv4htPiSn h2ygs45tMurcanq0MyuyIqMUjgJKAMTcKT1GRbtwVbBw9O/0b9qHVv8Al0+1 aUv/AB88/bMLF/qfu4xs5+//AKqTpn5QD1TUtVsdIt1nv7mOBHcRxhuWlcgk Iijl3ODhVBJ7A1T0nxTo2t3k9lZXn+nW/M1nPE8E6DCncYpAr7cOvzYxz1rg 4L1dc/aSuLS4ik2aBo5NqDMxUSyeWWkC8AEpNsI5ztB7DFP46/8AEhi8OeNL D93q+n6gsCOOBLGyu5RyMMV+QjGQMO4/ioA1PGXxEj07xj4e0FY9Ss7aa9LX V49jOFm8vIEESqA8pZ/L+ZMryud6sy13n9t6cmj/ANrXNx9isR96W/RrXZ82 0bhKFK5PAyBnIx1Fed+PZoYvjL8PTFfxw3e+4WRHugoEbABflYMAX+dRhQXI C7gQCp4yvV1P44eB/DdxFIbS3SXUyBMwWSULIYiVGOUaHIOTneRjGcgHcWHi /Q9R1T+y47uSDUCgdLS9t5bWWRTu5RJVUuPkbJUHGOasa/4j0jwtpbalrV9H aWgcJvYFizHoFVQSx6nAB4BPQGuH+OmmwzfDyTWVaSHUNIuIbizuISFdGaRU IDYyB8wbgjlFPasP4qiw1z4JWnibUILGHWbm0snjlWGPe5cqzRIzguFAZ2wp B+U5JG4EA9Mk8YaBF4sh8LtqUZ1qVN62qozEDaX+ZgNqnapOCQcY9RmPQNb8 La1rGrNoFxY3V9H5P2+4tEB8zKny8ygYkwAw4J24I4o0jwzoSeHtJtTpFi8N taGOESWJTYsiYkwkmXTeCdysSxyQxJzXB/DPT7JfHnxL04QWj2P2iCH7OkES xeXiYeXsjJTAHynPJwdwDFgADuG8f+FAl7KmuWk0Fjbi5uZ4CZYokLFVBkUF d5IwEzuPYGrHhrxhoHjC3nn0HUo7xIHCSgIyMhIyMqwBwecHGDg+hrzvwBoE Fh8aPGqCz8qGy8hreK38oW0PmISp2BUxJsLBSF4DShmYtua54XAs/wBoHxja WEkcdnNZQz3dvsjj/wBIwhDKM7mGHdmYADdJhudpIB3mp+KNJ0jUYtOuZp5L 6WIzrbWlpLcyCMEKXKxKxVcnGTgE5x0NV7Dx14T1P7MLPxJpUkl1sEMP2tBI xbG1dhO4McgbSM54xmuD8M6sPBnxS8Yad4r1C0thqrrqdjd3E0aq8O9kVDIx DZAKqqHgeW+MA5a58K7DPijxtr9naX0Wjavdwz2U97H5bXGRI7uinB8smQFS RypHcHAB6hRRRQB4v4CiRP2gvG5jWxkURNmWKdS6kvGSoVQoPOd52EqygFyS S/rGp63p2j+Ut7cbZps+Tbxo0s02MbtkSAu+AQTtBwOTgV5f4GDt8fvHMhgn RREikvC0gBymMzSAOmQCRGBsI6ErGhNzwBdLrvxe8fanO8ks9g8WnWzNuURR BnDoq72GC0QOe5ycLuK0AegaL4j0jxCkzaXfRzvA5SeEgpLAwZlxJGwDocq3 DAZxXlej2ul+Evj94nuI7f8As/TIfD5unVLTyokRTDuaMLnevykkgD5twwcZ Nj4gf8U18ZvBOuab+7utYlOn3qdEmj3RplguCzAS9WJH7uPj5eZLXTdNvP2l 9VaeztJ3j0eO4BdFcpMrwhX5ZtrhcYOEOMfLzvcA7jw14+8L+L7ie30LVo7q eBA8kZjeNtpOMgOoJGcAkZxkZ6itDUvEGn6VcLbz/a5Zygcx2llNcsikkAsI kYqCQwBbGdrYzg48v+IlrbaH8afAevWySJd6jcGzuPK2LvGUjDHKHJ2zFTnk qoAKkBhJrl34p+H/AIq8SeI9I0ux1zQLmVJtQjS4Ju7VkhThmOWC/OHC4dVT oEBzQB6ppeq2OtWC3+m3Md1aO7ok0fKsUco2D3G5TyOD1GRzUeu29vd+HtTt ryWCK1ltJY5pLgkRohQhi+GU7QM5wy8dx1rP8Ga3o/iHw5HqOiXHnWs0ssjq yIjxSO5dkdVAAYF/cnhstncdi/bZp1y3mzxYic+Zbx+ZInB5RdrbmHYbWyeM HpQB4P8ACK5fwJ4otPD+parAbDxHpVvqdkH3LtncACMDO1WPzjP8WyPkE7a9 w1zWbPw9od7q9++y1tImlfBALY6KuSAWJwAM8kgV5H4x0Sa5+CPhLxJp/mLq 3h6ys7y2dIzIQuyPf8vTAwrkkHAjPYmuot/ENp8SU8O2UFnHNpl1bjU9WhmV 2RFRikcBJQBibhSeoyLduCrYIBw/gzSbuP8AaIup9bt5J9SbTBfOVukk+xzS RxhwcPkIpd41U7iFKHBGHr1iTx74bg8Sw+Hrm/kttUmfZFDc2s0IkOSBtd0C sCVIBBwx4GciuD0633/tQ6tJ9hsW2aUsnm+bukT5Yl8zHzbZOdm35PkO7nPz 3PHtyo+Mvw9ie8tAFe4byWuGgdCwADF1JJDEbVTaA5VlJIY7QDsNa8eeHvD2 qQ6bqlzdwXc7hIEGn3Didjt4jZUIc/MowpOCcda4P9obTtLbwNHqU9vAupLd xQwXG3EjDDkx7ghJXBZtpKjIznICtc+Nk0Mdv4SEl/HCf7dgfyJLoW6uoBzI ZAN8YTIG9fu78kE7cSfH6TZ8L518zbvu4Vxv27+ScY3ru6Zxh+mdoxvQA7Dx h4qi8I6Hcai+n319JHE8iQ2tu7g7cZ3yBSsajOSzdgcAkYrL8B+MTrHg6wu9 Za7hvFsvtF3c3WnSWsBUdXEhHlEEYbKtyMttUZVbnxHbb8NfEZ82eL/iXzDd BHvY5UjBG1vlPRjjhSTlcbhT+H9nY6t8JtAtby3tL20ksoxJFJL9rjYr2O8d Qw+50QjaOFFAGpoF74W8Q6dqn9hpY3VjJdyw33kwARzzEDzC3AEm4EZbkMD1 NcP8K7O30/4i/Ea1tLL7Fbx3dsI4BAYgo/e8qpZvlPUEEAgggKCFB+z+lvH4 N1lLN99qutziFtxbcnlxbTkqpPGOSq/QdKk+GaMnxN+JYdJEP22A4e2WA4Jm IO1eCCOQ/VwQx5Y0Adpa634WvvGU9jZ3FjceIYLRhM0KB5I4Vkw0bSAcYcjK E5B5x3qR/GPhxdUfTRrFo93GkrzpE+8W6xf6wzMuREB0y5XnjrXnfhjS7DSP 2jtettNsoLO3/sRW8qB49gJaDJCIB5f+63J+90YVHB4b0+0/aLitrTS5LWyj 0cXQgtoreK3LCTAdkXBZA4BGQXEiqfuKCAD0Dw14+8L+L7ie30LVo7qeBA8k ZjeNtpOMgOoJGcAkZxkZ6itDV/EOmaE9pFfzyCe7dkt4IIJJ5ZSq7m2xxqzE ADJOMDjPUV5/qQFn+0lozWEkcMl7o8g1BCkaedGN+whidzvuRMgDIWMcld22 O7Nx4U+PM3iDXp/L0LVtP+xWd5JMBDbOqo5jkLECPJjkIA+8X4yd2ADtIfiB 4QmQs3iPTbd1dkeG7nW3lRlYqQ0cm11IIPBAqTSfGug63rk+iWV1P/advF50 1rPZzQOifLyRIi/31/PNcX4Vgh1b43a54p0eK7m0ebTBbPqEigQTXCuikQN/ GgWHBYZG4NzgrkvSD+0vpwuo41xoRFqVeNi3zyZLBwCp/wBYMR5bABJ2lwAD sJPHvhuDxLD4eub+S21SZ9kUNzazQiQ5IG13QKwJUgEHDHgZyK0NX8Q6ZoT2 kV/PIJ7t2S3gggknllKrubbHGrMQAMk4wOM9RXB+N5pW+NHw+ghudzJ9qcwW 4TzkUoAzMXOPLYKRwA2Ek2ktgDY1aLS4vidBfWi3174pXSvLjsY5/JgW2MjD zpWIGVDnBALkcMIyQCADoNB8U6N4l+2DSbzzpLKXybmF4nikhf0ZHAYdCOnU EdQceb61p2l2H7SHhN7G3gt7q5tLma6WFdu8mObEjAIAWJ3ZbcxOOQuAWj8O 219F+0lrEtxcWn2ibRxNdxRJuVB+5URo2/ORiMl3VS2CRGoZTWh4mnLftEeC bfzYyEsrl/LDSbl3RyjJB+QA7cAr8x2ndwEoA9UooooA8X+JtpbyfGvwBI9p +8aVQ0/2gxbwkoZFy6+X8pJO1SXbdtwpKE+wX1/Z6ZZyXl/dwWlrHjfNPII0 XJAGWPAySB+NeR/E51h+Mfw9kkmkCG42BTatKoYyKBje3l5JIBKgOmAx3fuw NDxldLqXxw8D+Hrh5HtIUl1EwDcqmVVkMTkh/mKtFwNoxk8sHIAB3Fh4v0PU dU/suO7kg1AoHS0vbeW1lkU7uUSVVLj5GyVBxjmvO/ivpdhB4+8AajFZQR30 +txLNcI8aPKA8QAZcb5MADDZwnQ/fWtT46abDN8PJNZVpIdQ0i4huLO4hIV0 ZpFQgNjIHzBuCOUU9qw/Hl4mvad8K5LwedHqWoWcs0Fw6v5ocR7t6gqr/eIJ ERHzdYwdrgHeQ/EvwfP4lPh5NajGqC4a18l4ZEHmqSCm9lC5yMDnk4AzkV0l 9fW+nWcl1dSeXCmASFLEkkBVVRksxJACgEkkAAk15v8AG/Q9Lf4UXU32CBZN L8kWJRNv2cGRIyq46KVONvTgcZAxJ4lsNa1/wZ4N1bSr7TbzXrV4L6H7WxSC /f7OzMEjYKC7Y3KSqlBuIKc0Adpp/ijSdT1EadbzTpfGJp/s1zaS28nlqVUv tkVTty4APQkNjO1sbFeb+CPGP/CU+LZbHXdMn0nxVo1pLDLaBt0MscjQl5FO OPmRMDJG1wQXzkekUAeNxxm2/akmYiOH7Tpm4FTIhmxGB8251Dn5P4BIuFHy hlZ0y/jr5XhXxR4Y8X6T5FvrIlfzMb1a5VAmN23AKgEo2SGKuByB8uhfWFxd ftKyR215facz6UHa4s1ClgAB8263ZHXIA+csMhcSBlWMdxbfDjRx4oXxJqtz fa1q0ez7PNqDoVt9oONiRqiDk55Bww3DBySAbmr+IdM0J7SK/nkE927JbwQQ STyylV3NtjjVmIAGScYHGeoqPQfFOjeJftg0m886Syl8m5heJ4pIX9GRwGHQ jp1BHUHHN60dItfilZXdtHqV94qfTPIhsoXMduluXc+dM+MBA2VOSxyVIRm2 1zfhhbwftHa81/FYx3T6IrP9jkLg5aDAbLEhgMLnCbgqtsXdyAekL4r8PvqN xYJrVi91axSzXKLOp+zpGVDmQg4TBYfex39Djh/FXxh0mPwNqOq+FzfahMub dLqKxlWG2kYYDvJImz5SynbySSoxg5GOnhnR7b9o61t4tIgt7WHShdwQrYp5 QkDEB08rATBz88oJ3AgdYyNj412dhp3wo1gWxgsGuruKV44UjT7ZK0ilt3GW bA3kjDfu+TgEEA7jw7qkOoadHFHBfQyW8UayLd29ymDjGBJOiNL0PzYyeCcE 1sVT0mJodGsYnt47Z0t41aCONY1jIUDaEVmCgdMBmAxgE9auUAZ+kaTb6PBc x28MEbXN3NdStDGV8x5HLbmySS2CATntwFGFHl/wg/5KH8Tv+wqP/RtxXsFe P/CD/kofxO/7Co/9G3FAHpH9mWela5qHiHzoLaO5tEW+LqFB8ncUkL5GMK7h i2cgJgqFO6voGt+FrzTtU1HQ7ixWxhu5TfXMKCKMzABpJGbADcEEvyCO5rYv rCz1Ozks7+0gu7WTG+GeMSI2CCMqeDggH8K8r+Cmm6bfeCvEOnz2dpc6eddn UW7ossRULEV4LSAgYBHzv0HzN1oA7S4+IvhG20681GTW4DY2cqQSXMavJG0j jcERlBEjY5ITcVHXFSQ+P/Ck/ho+IU1y0Glh2j85yUO9QSU2MA2/AyFxkjBA ORXD/BPSorW48Wzm2u43h1ie1iE/khYlBBZFWLhHOE37QEO2PbnbweANKgT4 y+PpVto2jguIpVdvNjMcsgckrE+QSQ0g8zI4J2DZIQAD0Dw14w0Dxhbzz6Dq Ud4kDhJQEZGQkZGVYA4PODjBwfQ0a34v0Pw9cfZ9Ru5Fn+zvdNHDbyztHCpw 0jiNWKICcbmwOD6GuD8Mw/2d+0T4utVtp7aG80+K7jCHy4Zf9UGcpj52Ls/z 54PmDkscR/C3WNZ8TaXq9/puvaMss2pyzzx3FhPLON2BGXBuAEGxVVVXcoVA NxIbAB6hpWq2OuaXb6nplzHc2dwm+KVOjD+YIOQQeQQQcEVcrh/APgv/AIQz Udei/tqC6+3ypefYLe38iOz3GTlI97YVsbR04ixk447igDP122ivPD2p2s67 oZrSWNx5Ty5UoQfkjIduD91SGPQEGvN/2ebbyPhrJJtnHn6hLJmWLYpwqL8h yd6/L97j5twx8uT6ZqyLJo18jpG6NbyBkktmuFYbTwYl5kH+wOW6DrXkfwWu v7E+Cmr6r9nng8iW6uvMlTzFl2RL86L8mVG3bjdyyt8wzhQD0zVfF+h6M9wl 3dyM9qm+6W1t5bg2y7d2ZfKVvLBXkF8ZAJGcGrn/ABJ/E2j/APLjqumXH+5P DLtb8VOGX8CPauL+CMK/8Kwsr9jI93qNxcXV3NJIztNL5rIXJJPO1F/LPUk1 h+Af+Kd+NvjHwlYfLpDxLqCQngQyEREhFGFVf3xGMZwiDPHIBn/CPxN4d8Hf DzVbzUb/AOz6Y3iCa3t5tsk2791GV6RhjlVJyUX6DpXrmgeI9I8U6WupaLfR 3doXKb1BUqw6hlYAqehwQOCD0Irzv4HWdvJp3iLVJbLZqTa3cwtPcQFblUxG xjcuzOPm5Ks7c9STzVPwbYWOlfHDxx4csBJZafPZRTfZLZdi5KxkssgYPGQZ m2hePnOCu1RQB6BP498N21vLdvfyGxjQu1/HazPakAdp1Qxsc/LgMSW+UfNx XSV4Ous+IPh74ej8G+P9P83w1dxPp0euWEzSNEjo2QQwJO0MFUFVwsZ2h8Yr 3SCeG6t4ri3ljmglQPHJGwZXUjIII4II5zQB5f8AtBRLJ8MizW8kpjvYmV1j ZhEcMNzEMAowSuSGGWAxkhl3PE+lad4h+EEyakYJI00r7VHczM0gikWHcsu5 WkY46kq0hIJGXBOcP9oIA/DIkyRri9iIDJGxbhuFLEFT3ymWwCMbSxGw3gIe JPDWnWeueIvEF1Y7IZZbKaWNRJtAOyR/IjlYeu7a2QCQGHABz/wh8WS2Pwhi vvEIu1s7K4kt4LhbWaYmBV3bm2hjsU703cKoQL1FeiWPijSdT8OR6/YTT3em yZ2PBaSyO2HKHEYXecMD/D2z05qSHR9N0jw0dJsdKjfT4bdo1sEVSJVwcp85 AYtk5LHkkknkmuH+AwI+FdmTJI2biYgMkihfnPCliQw75TC5JGNwYkA6zSda 8NfEDQ55LJoNV0zzfJmSe2bYXXa+CkijOMqen8q8v+EfiTQvBfw81W61e6+x WJ8QTW8R3G6+byoyF3xKQ/Cn5gApxkdRW58GBDHceNYYbaOzCa7NizFwN1uu SAphUlEAwQGUndtI6IKj+B2nW8eneIr2W336kut3Nu13cKWuWTEZKvI6K5+b khlXnkqDxQB6Bo+t6F4z0N7rTbiDUdNm3wSBkOD2ZHRhkZB6MOQQehFed/CW zttP+IPxHtbO3jt7eO9gEcUcqOqDM3A2ABR/sdU+6eVNR+Bbaz0H48+M9D0x fsli9pDcLZxRDy922MltxOVwZWwoG3DnptUVofDmTzfih8Sm8zzMXdqud+/G BKMZ3v0xjGRjGNqY2KAdha634WvvGU9jZ3FjceIYLRhM0KB5I4Vkw0bSAcYc jKE5B5x3rQ1PWrLSPKF007SS5KQ21tJcSMBjLbI1ZtoyoLYwCygnJGfL/DGj 2ei/tHa9b2Fn9jtX0RZEhS2EMQ+aAHy8cMuQctgfNuGOMnQ+Guof2z4+8e3F 8ftGpWWoGzimePmK1DyBIlbdgLlCSAq5PzEuT8oB6Bo+t6dr1m91ptx50ccr wSBkaN4pFOGR0YBkYejAHkHoRWhXN6H4V0Xw14l1m+sJpEvNdcXU1vJKCMoT udB97G6XLckAsAMDArpKAPI/jnrk2kJ4WS5tZJ9Bk1NZtSVYywlWJkZYWyQj BgXO1upQHjBrsNVs/DnxS8FXFtbXdpe2k6fublPnNtNtyrYyCrruBKnBwSDw SK2Nbg0jVLf+wtYijmg1FHQQyqdsu0biA3QOB8wAIb5Cw+4SPH/EPw31r4bX E/iv4f6nJHY2yNc32mXUxKuiEnAHAkQIzcMdwwSrFiMAHsHhqA2vhXSLcxRw mKyhQxxrIqphAMASfOAOmH+b15zVNPGugveWtsbqeP7ZKIbaeWzmjgncglRH MyCN9wB24Y7uMZyK838ceOv7a+A2nas809j/AGzLFZ3TW8G5hhmEwQeYMKfK fGSdynaQNxZeo8Y+Atb8caH/AGTq2u6UsKyrNHJBpMqvG4yMjNyQeCw5B6+u CADuL6+t9Os5Lq6k8uFMAkKWJJICqqjJZiSAFAJJIABJrP0zxRpOr6jLp1tN PHfRRCdra7tJbaQxklQ4WVVLLkYyMgHGeorzu7kmt/jL4M8Laveyalb2ujia IzxlhJeIJB9ob5/v7YyQW37STgAtvHeat4d0u58UaP4nvbueG60zfDApuNsL GYeWAVbjcSwA24JJUHOAAAcfd/E2F/ihp2itZarb2EdpLN+9s7mOS6lI+UpA sRkdVAkHzAKSWbrGhPoF1renWOnQX15cfZ4Z9ohWZGSSRmGVjWMjeZCAcIBu J4xnivO5JoU/aXhS2v4w76FsuYmugSW3lhGqsGwdoR9i7OMvk/MHIL1dc/aS uLS4ik2aBo5NqDMxUSyeWWkC8AEpNsI5ztB7DAB3mk+KdG1u8nsrK8/0635m s54ngnQYU7jFIFfbh1+bGOetSX/iPSNN1Sz0u6voxqF44WC0QGSVs7vm2KCQ nytlyAowckV5n8df+JDF4c8aWH7vV9P1BYEccCWNldyjkYYr8hGMgYdx/FVf x/4a8NSfGHwVEunWInvpZ5dQhW3aTzgMMjSRoRnLeZ87DHBL7lUigD0zQPGG geKbi/g0TUo717BwlwY0bapJYDDEAMDtblSRx7ityq8NhZ295c3kNpBHdXW3 7RMkYDy7RhdzDlsDgZ6VYoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAK4vx78ObHxulrdJdSaZrVk6ta6lAuXQBs7SAQSM8jkFTyDyQe0ooA 870q1+L1slvb3+oeEblA+Jbp4p2lKluTtQIhIBwB8ucDJ6muk07RtR0TTrqd bv8AtvW7jyzLcX7rbq+0BdimOM+XGPnZV2t8ztzlia6CigDz/wAC+GvE/hvX Ndm1CLSnsdY1CS+byL+Znty247QjRhG5KjI2HjndhQI/iT8N7nxXcWmuaBqc ml+JLNPJiuBM8avEScqSuSpG5sEDnJBBBBX0SigDh/B3hvxdBef2j431+DVL qDctlBbRIsMO4ANISI1JkxlQcfKrOMneQMPwh8PvF/gi/vtK0jWtN/4Re6uD MJJoma9hymCUGAm/hRlty/KG2dVPqlFAHnfw38FeJvB76ja6prNpd2Et7JeL JErNcXTuu0mZn4UYVWwuSW/jwCGk8NeEPFPh/wAW6666xY/8I7qWoPqQRISb kSMwZkGRtVT90nLEhflCFsj0CigDzvW/Dfi3UPiRo/iaC20b7JpCTxw28mpT hphIrLuP7oohwVOFUnjBZgF295f2NvqenXNheR+Za3UTwzJuI3IwIYZHIyCe lWKKAOT+HXgxfAvhNdH8yOac3Es006bgJiWwjYJ+U+WsYIHAIPJ6nL+IPw+v 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 8vPmnzN27fv3f3t/zdNueMY4rg9A+HXxL0h10ZvHMaeG95QtCS10Idu0CPeh 8o7QAAr4QkkZI59kooA87+Ifwuh8W2+mXGjXcej6ppKbbOSGIKu0DKJlcMgV gCpGduWwpzxJ4Y8K+NnvIbnxv4pg1GG2l82LT7S2jWJ3A+R3fYpO0ksFxwyo 2cjFegUUAcH4i8KeJpfiNp3irw5qWmwBbL+z7yG+iZwYvML5ULyxy2cbk5Qc kMQDxZ4Evr/VNH8S6BqMcfijSUWFJ78ZiuouQyyhFwpIdzlFH3iMD5SveUUA cnc+HdS8Sappd54iNpb2mmXAu4NPspWlElwv+rleZlQ4XLYjCgZ5LMPlGP4q 8N+Ldb8Y+H9Zs7bRootEuJnjWTUp1a4R9o52RDYdq9MsOcHcMg+iUUARwGZr eJriOOOcoDIkbl1VscgMQCRnvgZ9BUlFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABWXqXiXQdGuFt9U1vTbGdkDrHdXSRMVyRkBiDjIIz7 GtSuT+JyK/wy8RB0jcfYnOHtmnGQMg7V5BB5D9EIDHhTQBsab4l0HWbhrfS9 b02+nVC7R2t0krBcgZIUk4yQM+4rUrh/g/bfZfhRoEe2dcxPJieLy2+eR24G Tleflb+JcHAzgbF9428O6dLItxqGI4pRBPcRwySQQSFguyWZVMcbAkZDsCMg nAIoA2L6/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p3iPR4NW0m4+0 WM+7y5djJu2sVPDAEcgjkVl+L7PStf8AAuovcW9pqFobKS4gdpY1XPlNtkSV wUQ4PEnQZz0rg/ht448NeEfhD4eGuavBaSSeeVhw0khBuJsNsQFtvykbsYyM ZzQB7BRWfY65peo6HHrdrfwSaY8RmF0X2oEGdxYnG3GDnOMYIOMVl/8ACe+G xe21o9/JHJduqWjS2syJdEuiDyXKBZQTIhyhIwd33cmgDpKw5/GnhW1uJbe4 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 8Sf8Ij4L1TXBH5klrF+6QrkGRiETcMj5dzLnBzjOOa5v4XaA0/h+x8WeIVkv vEmoIbj7XdssrQRMXMaw44iQo+7auPvkHgAAA7Cz8S6DqFvdXFlrem3MFom+ 5khukdYVwTlyDhRhScn0PpWpXF/EfwHpvjPw1fBtOjl1iK3Y2Nwm1JfMUMUT ef4CxIIPHzE8HBHSaxrenaDZpdalceTHJKkEYVGkeWRjhURFBZ2PooJ4J6A0 AaFFc/pnjbw7q+sS6Rbah5epxY3WV3DJbTHKlhhJVVm+UZ4BwME9RVy/8R6R puqWel3V9GNQvHCwWiAyStnd82xQSE+VsuQFGDkigDUorD0DxhoHim4v4NE1 KO9ewcJcGNG2qSWAwxADA7W5Ukce4qnb/ETwrdajZ2UWq/vL6V4bSRreVYbl 0O1hHKVEb88fKxySAMkigDqKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigArk/iciv8MvEQdI3H2Jzh7ZpxkD IO1eQQeQ/RCAx4U11leZzeBvFtzceLtPudejudH15/8AR5prqcyWCEuxRIRg EfMEwJFBCgkMMpQBj6Xf3Ph79mBbyzMmm3C2T+W90z7gZJiN6FFBBbfujOMD cmSQCx7j4f6VYw/C3QLBbaNrSfTI3lhk+dXMqb5Mhs5DM7cdOcdOK2IfDmkW 3ho+HYLGOLSTbtbG2QlQY2BDDIOcnJy2ckknOea5Pwp4Z8WeC7O40Gwn0q+0 RJSdOuLuR0ntUclmDoibZcMxIG9M88qCAoByfwwkmttL+Ing9TJc6fo9xNFZ iYGVyreapUjY4IPlg7RG2SzfK2cV0HwU0nTW+Elg7afaF79J0vGMK5uFE0qg ScfOApIwc8HFdRong620jw1faU9zJcz6k80+oXbxoTPPKMSP5ZBQD0TBXAAI bknD8I+G/GHgzR18O20mh32mQZFpeyNNDNHvZndpIgGV8M/Ch0yF5YZyADj/ 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 4QkkZI5APWNJs5tO0axsri7kvJ7e3jikuZM7pmVQC5ySckjPU9epq5UcEENr bxW9vFHDBEgSOONQqooGAABwABxipKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAoorL1LxLoOjXC2+qa3ptjOy B1jurpImK5IyAxBxkEZ9jQBqUVl6b4l0HWbhrfS9b02+nVC7R2t0krBcgZIU k4yQM+4rUoAKKr31/Z6ZZyXl/dwWlrHjfNPII0XJAGWPAySB+NV9E1vTvEej watpNx9osZ93ly7GTdtYqeGAI5BHIoA0KKKKAKcmlWM2qQ6nNbRy3kCbIZZP mMIOc7M8ISGIYrgsAAcgDFyis/U9d0fRPK/tbVbGw87Pl/a7hIt+MZxuIzjI 6eooA0KK5/8A4Tvwf/0Neh/+DGH/AOKqxY+LPDep3kdnYeINKu7qTOyGC9jk dsAk4UHJwAT+FAGxRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXD698Pri78Ry +I/DniW+0HVrjYLooonguAiMgLQsQCwBABJwMZAyc13FFAHH6X4Q1lpQfFXi ufXoYpYp7eBLRLNEljbcrN5ZzJghSFJ28ZIJwR2FFFABRRWPfeLPDemXklnf +INKtLqPG+Ge9jjdcgEZUnIyCD+NAGxRWfpmu6Prfm/2Tqtjf+TjzPslwkuz OcZ2k4zg9fQ1oUAFFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p 3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFFAFOTSrGbVIdTmto5byBN kMsnzGEHOdmeEJDEMVwWAAOQBi5RWfqeu6Ponlf2tqtjYedny/tdwkW/GM43 EZxkdPUUAaFFc/8A8J34P/6GvQ//AAYw/wDxVWLHxZ4b1O8js7DxBpV3dSZ2 QwXscjtgEnCg5OACfwoA2KKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iq99f2emWcl5f3cFpax43zTyCNFyQBljwMkgfjQBHpulWOkW7QWFtHAjuZJC vLSuQAXdjy7nAyzEk9yauVT03VtN1m3a40vULS+gVyjSWsyyqGwDglSRnBBx 7irlABRRWHP408K2txLb3HiXRoZ4nKSRyX8SsjA4IILZBB4xQBuUVXsb+z1O zjvLC7gu7WTOyaCQSI2CQcMODggj8KsUAFFFFABRRRQAUVl6H4j0jxLb3Nxo 19HeQW9w1tJJGDt8xQCQCRhhhgdwyDngmtSgAooqOeeG1t5bi4ljhgiQvJJI wVUUDJJJ4AA5zQBJRWfomt6d4j0eDVtJuPtFjPu8uXYybtrFTwwBHII5FaFA BRRRQBTvNKsdQuLWe8to7h7V/MgEvzLG+QQ4U8bxjhsZXJwRuOblFZ+p67o+ ieV/a2q2Nh52fL+13CRb8YzjcRnGR09RQBoUVj2Pizw3qd5HZ2HiDSru6kzs hgvY5HbAJOFBycAE/hWxQAUUVj6N4q0LxDeX1ro+pwX0lj5f2gwEsi7wSuHH yt0P3ScYwcGgDYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAqvfWNvqVnJaXcfm28mBJGWIDgEHa2OqnGCp4YEgggkVYooAjgghtbeK3t4 o4YIkCRxxqFVFAwAAOAAOMVJRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuPsTnD2zTjIGQdq8gg8 h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEHkP0QgMeFNAFP4P232 X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvDunSyLcahiOKUQT3Ec MkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut3YTrZOI2cFpFaWYqH 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 to+RpsxnnClNrkMmCaj8E+PbHxX4ltLXWrS70bxbY2UkL2FwnlpKJDG7lA3z ZxEjbTggMfvgFgAemVT1aJptGvokt47l3t5FWCSNZFkJUjaUZlDA9MFlBzgk dauVT1ZFk0a+R0jdGt5AySWzXCsNp4MS8yD/AGBy3QdaAPL/ANnUQj4c3Rik kZzqcplDIFCt5cfCnJ3DbtOTjkkY4yfSNS8Q6ZpVwtrcTyPdsgkFrawSXE+z JG8xxqzhMjG7GM4GckV53+zzN5vw1kT7TPL5WoSpslGFh+VG2pycrzu6L8zN x3MnwRul1yy8T+JZXklvNR1h1eZ9ylokRTGuwuwUKJGAAJwMDJAFAHoGm6ro vizRmnsLm01LT50McgXDqQyglHU9DtYZVhnnkV5P8PrzRfBPjH4lPf3Eel6f Dew+WtxEIMA+e4SNATuG3OwLyygEAZwLh/4pj9pWCz035LXxFp5nvYeieYol O9VXA3Zhzlsn95J/e4sfDS0s1+KvxInigg8xLuFVkQAld5kaQA73xllBIyOR yqEbFAO88NeMNA8YW88+g6lHeJA4SUBGRkJGRlWAODzg4wcH0NGqeL9D0a4a G/u5IhG6JNOLeVoIGcgKJJVUpGTuU4ZhgMpPBBrzuazt9E/aasBppgsV1TSp Jb2MIf8ASnJkJxwQrExI5Py52NyS2Grw+INd+Eeo6vBrPhye88LXOoTXcGp2 TCSSNXOQJmbl2JaNd0jBshsM4AAAPYLC+t9T062v7OTzLW6iSaF9pG5GAKnB 5GQR1qxWP4UfS38JaSNEvPtmmR2kcVtOTkuiKFG7gYbjBGBggjA6VsUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5nN4G8W3Nx4u0+51 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 RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVx+s/FHwh4e1F7DV9SnsrpcnZ NYXA3AEjcp8vDLkHDDIOODQB2FFU9N1ODVbdp7eO7RFcoRdWktu2cA8LIqkj nrjHX0NXKACiiigAooooAKKKKACiiigAooooAKKKjnnhtbeW4uJY4YIkLySS MFVFAySSeAAOc0ASUVzfhTx3oHjV9QXQrqS4Fi6LIzQsgYOuVZdwBxkMOcHK njBBPSUAFFFFABRRRQAUUUUAFFFcnofxG8OeJfFVz4f0a5kvJ7e3aeS4jT9x 8rhCoYnLHLA5AKkHgmgDrKKw4/FVjL41m8KLDdi/isvtzSNFtiKbguFY8scs OQCOozkEDcoAKK5eLx/oV140XwpYyT3upL5n2k20RaK02AE+Y/QZJ28Zw3yn BrqKACiiigAooooAKKKKACiiigAork9e+JHhfw5rMejXl9JJqkjxKLO1geaT 94wAyFBGcHdtzuIxgHIB6ygAooooAKKKKACiuf8AFnjTQvBWnLea1d+V5u4Q QopeSZlGSFUfgMnCgkZIyK1NJ1KHWdGsdUt1kWC9t47iNZAAwV1DAHBIzg+p oAuUVl6/4j0jwtpbalrV9HaWgcJvYFizHoFVQSx6nAB4BPQGo/C3iSz8XeHL TXLCOeO1ut+xJ1AcbXZDkAkdVPegDYooooAKKKKACiiigAoork/GfxG8OeBU RdXuZGu5U3xWdum+V13AZxkBR15YjO1sZIxQB1lFFFABRUc88Nrby3FxLHDB EheSSRgqooGSSTwABzmub8MeP9C8Y6jdW2gST3kNrEkk135RjjVmJCph8OWI Vjwu3A654oA6iiiigAoorD8MeKrHxZb389hDdxJZXsljILqLymLoASQp5A+Y cMAeuQKANyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAoorl/FnxC8NeCtses3/l3UkTSxWsUbSSSAewGFyeAWIBIPPBwAdRRUcEj TW8UrwyQO6BmikKlkJH3TtJGR04JHoTVPXNYt/D+h3ur3aTyW9nE0siwRGRy B6AfzOAOpIAJABoUVT0nUodZ0ax1S3WRYL23juI1kADBXUMAcEjOD6mrlABR RRQAUUUUAFFFFABRRRQAUVh+LfFVj4M8Py6zqMN3LbxuqFbWLe2WOBnoFHux A6DqQDH4s8aaF4K05bzWrvyvN3CCFFLyTMoyQqj8Bk4UEjJGRQB0FFU9J1KH WdGsdUt1kWC9t47iNZAAwV1DAHBIzg+pq5QAUUUUAFFFcn4a+JHhfxfrM+l6 HfSXM8NuLgsYHRSu7aQNwByCVzx/GMZwcAHWUUVy+g+P9C8T+IbzSNFknvfs cXmT3sUR+zK2/aE3nqxwSMAqQCQTg0AdRRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFeP8Axf8A+Sh/DH/sKn/0bb17BXj/AMX/APkofwx/7Cp/ 9G29AHceLPiF4a8FbY9Zv/LupImlitYo2kkkA9gMLk8AsQCQeeDjL1z4saL4 duLZNS03WY7eV1ilvUtQ9vBKSQ0TSBiGdNrbhHvwVYDJBAz/AI8xQyfCu8aX zN8dxC0W2AON28D5m2nYNpb5gV5wufm2tJ8Q7S3/AOFDXlvZ2nnWsen25his LgyoqK0ZVlkKkvGoAYsQNyqeVzkAEnxf8W6v4X8HXbaXpV25uEELakjgR2u/ cu75W3hxxg4CgsvzE/Keo0TW/tOjfbLy3u7S0ht0l+3X81qVnTbky7oJGQDA 3E4Uc8cdPO/H188v7NVrLdSTz3F1p+nlpWVpCzkxMWducZwfmY8kgZyQDc+L l0U+DUDIsdxYzPaC68m4knLw5Vv3dwVOSWVMSyDBBPBZgCAdJqHxEsNGvLBN Z0rVdMsb+UxQajdxRrBnGV34cvFuHQSKpHOQNrYk8SfEbw54X1Sy0u7uZLjU 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 bxLdyz2emQyvFI89u4dSsxh5jALDLjoRkZ5A5Ajg8Xg63Z6TfaDrOn3F4+2B 7iKNom+SRz+8jd0BAiPyk7vmUgEZI5Nr7S/ip8KJJtGkg0W8+1o0TzLs+yX/ AJiv8rjHzOz4Ei/MfN6biVqnpnjXWtM8WaJ4c+I+jRx3jXB/svV7RiYp5dph BKrxlhI+emPMTKKPmAB65RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeb+Mfhvrvi7x Dp2rN4sgsv7LlMthFDpQbym3hgzFpTvb5UB4C/L90ZOfSKKAOL8W+Ede8X+G JdCu9d02CC4RRcSRaW+4ssm8FMz4UYVAQd3QnIyAI/EfgvW/Evgt/DV1r9jH DLtWSdNPldyiFGQAvcMd2UOWYtuz2IJPcUUAcfqHgu81z4dXHhTW9a+0ySRR xJfxW5R/3ewq0gZ33sWTLHIzkjg80WXgaWTwve6L4j8QX2u/bLRbSSSdEVY1 UtteNcHEg3Al2LMWRTngCuwooA8j0v4JXOn3C2j+ONZl8Nh3DaQjPEskTEny 2ZZMYOfmIUbstjaTkdJ488D6p43igtDrdjZ2Ntdx3cCNpfnvvVSMOWl2OpLM cFPQHPOe4ooApw2s02lm01hrS9eRGSfZblIpFORjy2Z+NpwQSc8+uK8rh+Bb 6Zrlzc+H/Geq6NplxKryWdpuV9g/g80OM4y20spxnndyT7BRQBzeseElu9G0 ax0m9k0t9GuIJ7F1DSKBGpTy3G4M6FGZSNwJzyTyDHb+EXuPFFn4k1zUPtup WMTw2kdtG0FtEHGGfyy7kyEEqW3YI2/LlQa6iigDh7j4fXDfEC88S2fiW+sr XUYki1CwhUDzwi7RtkzmPgLyBvGX2su7in49+E1j4y1S11mx1CTRdagdS17B HuMgX7pIDKd6kDDg5wMHOF2+iUUAcv4L8Hv4Vs5ze61fa1qdztE99eSMxKKW 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 CNQ8OWGp6lDLeXH2x9Tkm8y4NyHV1lLcZIZE6bSQOoJ3VYufB9zrmqaXfeJN UjuxpVwLq0t7GB7WJpR0eUGSQuVIBXBXHzA7gxFdZRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRXz58b/iBq83iBvA+hfa4hsWG8WJQWu2lCMsaYBbGCAcEbt5 UjA5APZ5/GnhW1uJbe48S6NDPE5SSOS/iVkYHBBBbIIPGK2IJ4bq3iuLeWOa CVA8ckbBldSMggjggjnNY/hfwjovg7S0sNHso4QEVZZyoMs5GTukfGWOWb2G cAAcVh3ngb7P8QtH8RaTLPDam7mm1GwSTEDSNbyILkJnAkJKqcAlt2eMMSAd BfeLPDemXklnf+INKtLqPG+Ge9jjdcgEZUnIyCD+NakE8N1bxXFvLHNBKgeO SNgyupGQQRwQRzmvnj9paOYazoEjCTyGt5VQknaWDLuwN5GcFc/Ivb5n6J9D zzw2tvLcXEscMESF5JJGCqigZJJPAAHOaAJKp6lq2m6NbrcapqFpYwM4RZLq ZYlLYJwCxAzgE49jWGvxE8Kt5btqvl2ssrwx3s1vLHaSOu7IW4ZREfuNjDc4 4zVP4tQG5+FfiBBFHLi3D7XWRgNrq2f3fORjIJ+UEAt8u6gDqNN1bTdZt2uN L1C0voFco0lrMsqhsA4JUkZwQce4q5Xz/wDBTxx4a8I/Dy8GuavBaSSaq5WH DSSEGKPDbEBbb8pG7GMjGc17ho2uaX4h05L/AEi/gvbVsDfC+dpIB2sOqtgj KnBGeRQBoUVzetePfDfh+4uoNRv5EezSN7oxWs0y24kOE8xo0YIW7BiCcj1F amja5pfiHTkv9Iv4L21bA3wvnaSAdrDqrYIypwRnkUAV7HxZ4b1O8js7DxBp V3dSZ2QwXscjtgEnCg5OACfwrYr5ws4hc/tXssizxgXcjAefNuJW2Yg7mCtt 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 ubeL9qi7EE+JJdPAnXziMv5S4XBKZ+VVbaPO/vYByYgD1jTNd0fW/N/snVbG /wDJx5n2S4SXZnOM7ScZwevoar6r4q0LRNRstO1HU4Ib6+ljht7bJaR2clVO 0ZIUkEbjhc968f8Ajr5XhXxR4Y8X6T5FvrIlfzMb1a5VAmN23AKgEo2SGKuB yB8u58VdGsYvGvgPV4bKOO8l12CKa4jj2mQbo8ByEwxAQbdzggA4VhkqAeuU VXvr6306zkurqTy4UwCQpYkkgKqqMlmJIAUAkkgAEmsvSPF+h65ql3pdjdyf 2haIrz2lxby28qK3Q7JFUkcjkDjcueoyAblFY+p+KNJ0jUYtOuZp5L6WIzrb WlpLcyCMEKXKxKxVcnGTgE5x0NHh7xVoXiuzN1oepwXsa/fCEh48kgbkOGXO 04yBnGRxQBsUVz99428O6dLItxqGI4pRBPcRwySQQSFguyWZVMcbAkZDsCMg nAIrUg1WxudGi1hLmMafJbi6W4k+RREV3bzuxtG3nnGO9AFyiub0rx74b1nV LfTLO/kF5dW/2q3iuLWaAzxdnTzEUOCATxnIBPQGukoAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACvkzx1YNofx6d9QEht5dTgvBJEq2e+JmVjs fcoBHzKZNwyyliQckfWdcX4++Gei+P7eNrwyWuoQIywXsIG4Ag4VwfvoGOcc HrgjJyAdZfPeR2cjWEEE90MbI55jEjcjOWCsRxn+E+nHWvH7H456pfeLY/DE fgnbqbXZtHQ6luEbhiGLFYj8q4JJGcAE12mgW3j7RdLXTr/+xtbMDlIb6a/l t5ZIh93zF8lwXx1O49s5OWPN+GPhFeaZ8RT42v8AVoFupLu6uX0+CIyIvm+Y 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 gf8ATRhg7sVY8e/DxfG+l2t6jx6Z4oskV7W8gkYhHHzeWXADFN3RsAqfmA5K mn4P8I+OYry3PjXxPBqNhY7HtrO3UMJZFBCtM7RqzbeGGSSXCsSCoyAWIW0u z+JniCTQLGfU/E11FCL4z/uraxRUTYpm2Fl8xcHaok3FOQoUkY/wrSWP4i/E ZZ54J5hd23mSQQpEjN+9zhUZgOc9WLd3w24VYtfAfizwz4+1fWPC2qaUdM1q UTXkWpxu7xOXZmKBMbsbn25Zc7sHoGqx4W8DeKfD3jnXdRm8QQXemapLHNJP Kha8fyySseMCNFwzKSAflUBQmQVAOfh8ReIvhLqOrxeINBn1Lw5dahNeR6xZ JH5g8w5zMFCqWLMi/NswdwUsoUCx4l1myi074aaN4d1aCTTbu7iW2nuY5Hjl EAVY/M8pkJYOyHyyoBdRuKBSD1EWgeKbSz1zRo20q603Ubu6lt7qeQh7WO4J ZlMBiZZdru5wzgPnB2jgV7j4T6Xd/C+08FT3k7raZlgvcYZJyWYvsBwVy7Da T904znDUAU/HHw/1XxXb2d5q3irTdPfSXa5hvrXTpIWgGAWJZrkgD5VbOMja MEc59Mryfwx4G+IqSw6f4r8XQXmgJ801tEfOlufm3eXJJJGGMZ5DAscrlMYP HrFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFY8Xivw/ Pri6JDrVjLqbeYPssc6s4MeN6kA8MM/dPPDHHynGxQAUUUUAFFFFABRRRQAU UUUAFU9V0qx1zS7jTNTto7mzuE2SxP0YfzBBwQRyCARgirlFAHP/ANja7ZfL pniPdCeBHqtoLry1H3QjI0TnjqZGkY4BznJY/sbXb35dT8R7YRwY9KtBa+Yp +8HZ2lccdDG0bDJOc4K9BRQBXsbG306zjtbWPy4UyQCxYkkkszMclmJJJYkk kkkkmrFFFABRRWPa+KtCvvEM+gWepwXGpwRNNNBCS/lqr7GDMPlDBiAVJ3D0 oA2KKKKACiiigAooooAKKKKACiiigAooooAKKKy4/EekTeJZvDsV9G+rQ2/2 mW2UElI8gZY4wD8y/KTnBBxg5oA1KKx5vFWhQeI7bw8+pwHV7jdstEJdxtTe d2M7Pl5G7Ge2a2KACiiigAoorL1bxHpGhXGn2+pX0cE+o3C21pGQWaWQkAAA AnGSAWPAyMkZFAGpXL+I/B39ta5pev2Wpz2Or6XuFs7L50BVsBw8RIzldy5U q3I5O1cdRVPUtW03RrdbjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaAMv+zvFM/7 u58RWMUJ+89hpZjmHptaWWVBz1yjcZxg4I0ND0az8PaHZaRYJstbSJYkyAC2 OrNgAFicknHJJNSaVqlprWl2+pWDyPaXKb4neJ4yy9jtcA4PUHHIwRwRVygA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKr31/Z6ZZyXl/dwWlrHjf NPII0XJAGWPAySB+NAFiisvTfEug6zcNb6Xrem306oXaO1uklYLkDJCknGSB n3FR3Xizw3Y+R9s8QaVb+fEs8PnXsaeZG33XXJ5U4OCODQBsUVn6Zruj635v 9k6rY3/k48z7JcJLsznGdpOM4PX0NR6l4l0HRrhbfVNb02xnZA6x3V0kTFck ZAYg4yCM+xoA1KKr2N/Z6nZx3lhdwXdrJnZNBIJEbBIOGHBwQR+FWKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK 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 eTGA3AkRcnad2OuMnoCaJPHvhuDxLD4eub+S21SZ9kUNzazQiQ5IG13QKwJU gEHDHgZyK4+SaFP2l4Utr+MO+hbLmJroElt5YRqrBsHaEfYuzjL5PzB5PG80 rfGj4fQQ3O5k+1OYLcJ5yKUAZmLnHlsFI4AbCSbSWwAAd5f+I9I03VLPS7q+ jGoXjhYLRAZJWzu+bYoJCfK2XICjByRVfQPGGgeKbi/g0TUo717BwlwY0bap JYDDEAMDtblSRx7ivM/H/hrTo/jD4Kkt9KggXUpZxePbFla6xguJUWNgVIc7 ifvq7ByijcPYIbCzt7y5vIbSCO6utv2iZIwHl2jC7mHLYHAz0oAj1bUodG0a +1S4WRoLK3kuJFjALFUUsQMkDOB6ivM/hVY3HjOzk8ceK4/tt9PdudMjmYPB aRKVG6CM58tt6Ebj837sHPJLdR8VLF9Q+F/iGGOOCRltDMROzBQIyJCRt53A KSvYsBnjNY/wKvre7+FGmwwSb5LSWeGcbSNjmRpAOevyup49fXNAHWeKPCOi +MdLew1iyjmBRlinCgSwE4O6N8ZU5VfY4wQRxWHc+C/7c+EFn4Z1K0g+3xaV FFGJmyILpIQqtuXOMN1K5yMjkEg9xUcM8NyheCWOVA7IWRgwDKxVhx3DAgjs QRQB538EtYS9+H8Wkyp5GpaNLJaXds0SxOh3EqSg5GQcEsASyvnJyTqeL7W2 8S+JdB8LTpaTQK7atexybHfyoSqooRkbh5JACflyqSLk5Iri9TlT4dfHmLVL hrG10LxNEVmnkgVfJlVRuAYHK5fy2ZjhT5hJyV3D0DwjE95ea34imXH9pXfl 2hE7SA2kI8uIrkBQrt5so28ETA5NAHUUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF 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 25XJVQApBw4k+FvgXWfA+jtaanrMFxG24rZ2lsixo5blzKVEkjEBRzjAyMEB SPQKKAPP/hx4Q8U+ELM6PqWsWNxotpK72S20JE0isWOJCwwq5O/C5bccb9o2 t6BRRQBxfxW0q21n4eahZz20lxO7xJZLFs3i5eRUiwX4UFnCscg7Wb1roPDe iQ+HPDWm6NB5ZSzt0iLpGIxIwHzPtHQs2WPJ5J5NcP4M+Ddj4T1R7ifV7vU7 OK4+02FjONsVvLyBKyglXlC4AfC45OM42+mUAcHrXgrUrbx5D4z8Kz2iahMg t9Ttb52EV1DheVYKxjcbEHAxwD2YPqW/hu81HxRZ+JNfkgFxYRPHYWNoxaO2 ZxtkcykK0rMoUcqqqMjBPzV1FFAHB+LfCGvXPjHTfF3hbULSLVLa3azmttQZ xbzQncRny/mJDNnB4JCnjb82X4j+HvinxHrHhrWJNesbbU7DzXuZVtzLDbsV XYLeB8qcMpJdyGyQ38KIvqFFAHm/iPwv4w1bxR4a1W2XSiugyylXuNRmWS8V wqkv5UKhGITJA3LlsEFcg+iQGZreJriOOOcoDIkbl1VscgMQCRnvgZ9BUlFA BXld58Mda8O+JZ9d+HWrWmmC7dDd6Vdxn7K4BJOMAkDOAFABUM+1lBC16pRQ Bw9vpPxA1iKS28Qa3pWlWp4LeH4pPPkUqwI8ybIjwSpyqluOCvU9pBBDa28V vbxRwwRIEjjjUKqKBgAAcAAcYqSigDk/iL4MXx14TbR/MjhnFxFNDO+4iEhs O2AfmPltIADwSRyOo6iCCG1t4re3ijhgiQJHHGoVUUDAAA4AA4xUlFAGH4tt fEd54flh8LahaWGqF1KTXUW9dufmA4IBx3Kt3GBncNiATLbxLcSRyThAJHjQ orNjkhSSQM9snHqakooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKw 4PGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGKANyiiq99f2emWcl5f3cFp ax43zTyCNFyQBljwMkgfjQBYorP0zXdH1vzf7J1Wxv8AyceZ9kuEl2ZzjO0n GcHr6GtCgAooqOeeG1t5bi4ljhgiQvJJIwVUUDJJJ4AA5zQBJRXP/wDCd+D/ APoa9D/8GMP/AMVW5BPDdW8VxbyxzQSoHjkjYMrqRkEEcEEc5oAkoorHuvFW hWesQaRLqcDanNKsK2UJMswYruBZEyyrtGSzAKBySKANiiiigAooooAKKz9T 13R9E8r+1tVsbDzs+X9ruEi34xnG4jOMjp6ipNN1bTdZt2uNL1C0voFco0lr MsqhsA4JUkZwQce4oAuUUVj33izw3pl5JZ3/AIg0q0uo8b4Z72ON1yARlScj IIP40AbFFFFABRRRQAUUUUAFFFFABRUc88Nrby3FxLHDBEheSSRgqooGSSTw ABzms/Q/EekeJbe5uNGvo7yC3uGtpJIwdvmKASASMMMMDuGQc8E0AalFY+je KtC8Q3l9a6PqcF9JY+X9oMBLIu8Erhx8rdD90nGMHBrYoAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvE/jb4bm 1DV4dYsY5ItQ07R5ryG5guSjnyJ4ScgjChElkcFTuJOP4QD7ZXJzoo+LmnuE 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 I7nT31i4iVZP3iyRGKIYO5F3Ar6quc8qOldJ4B8F/wDCGajr0X9tQXX2+VLz 7Bb2/kR2e4ycpHvbCtjaOnEWMnHGP8DpPN8PeIpPM8zf4guW379+7KR87t75 +u98/wB5upAKfwls7bT/AIg/Ee1s7eO3t472ARxRyo6oMzcDYAFH+x1T7p5U 165XlfwzIb4m/EsiONP9NgGEeNh1m5zGAMnqQfmBJDEsGJ9UoAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuHey 8cSeModcay0M2sOnyWkdl/acvyu8iO0m/wCzZ5EaDbjtnPJruKKAOL8ZfDvT fGHiDw9ql3HGTp1wTcKVX9/DgsEbKncPMCcEgbXk7kUfEjQNe8WeGLzw/pcO mrBdpGWurq7dGRlkD4EaxMCMKOdw6njjntKKAOL0HTfFWm+CrXQtR0rw/fvb W6WePt0qxTwhSp3hoGwdoQEchssflwAa/wALvDHiHwZ4fGhauNNlt43eSK4t byZ2yxB2mN0AUfeOVIHT5clmPeUUAFcn8Q/D2veJPDS2nhzWpNJ1CO4SUSrM 8QkUBlKMycgfNu6HlQMdx1lFAHL6N4Znj8W33ivVBAupXVpHZxwQTSypbxqx LAO5Abcdh4jQDHQkszZ/jTwRearrmmeKvDt1BaeJdM/dxNdgtBPCdwaNwASO HfDKM/MR6MvcUUAcfP4c1PxLrmnXniW3sbez0qVLqztrG8mlL3Azh5GKxrtX 5SBsJzn5gpZWy/FXhrxVrvjHw/rNvYeHzBodxM8cd3eSv9oV9oBIEOI3AXcD lsNg8459EooA838YeF/GHiHxR4Y1ixXSrP8AsSXzmX+0Zg0+8RmSPIh+VfkZ M87lbJA5Wo/EXhXxbrfjHw74jh03w/a3GkO+8DU5y1wjYwhdYFIA+fAO4fOc ggkH0yigDzPxt4P8VeKfEvhfVYLfRoE0O4W6Mb38pMzExMyZEHygNGQG5yCD gdK9IgMzW8TXEccc5QGRI3LqrY5AYgEjPfAz6CpKKAMfxEuty6dJbaLbWMsk 8UkbSXd7Lb+USMKR5SFj1PRkIwMHJyKfhbStStPCttoOvWOmtBa2UVn+5uGn W4VU2NvV4kCggDj5s5Ppz0lFAHF+A/AkPw/8P6ha6esdxeXFxLKrzSAb1BIh RnCZAC7c/KcMzkAg4rn7Lwf42sfipqPjWK38PlL+3FvLZNfzZChIxlZPI67o 1PKngke49UooA8z13wJ4mtPiRJ408H6jpq3F5b+Re2uqBvLICqo2lFJx8inq CCvUhiAR+BPF9t8TZvEkfiO0mt7yy+yXEk0LebbKSGK28fKAblBUsWxuO4SE Et6ZRQBy+n6VrbePr/WtUjsfsItBaacILuVniTfucvGVCbpCEJIPHlqvzctX L6V4O8YeG/iLr2vaNHoZ0jVpTJNYTXkwd2GSJN/lHaxZmYqMqN5XnCkeoUUA c3488KQ+M/B1/oziMTum+1kfH7uZeUOcEgZ+UkDO1mA61X8R+CodW+G954Ut 55AXtwI55XG6SZWEgeVgpyWkG5zjJ3MeprrKKAM/Q9M/sbQ7LTjN58kESrLO V2meTq8jDJ+Z2LMSSSSxJJPNeZ+Ifhf4msfGM/iH4f8AiCPS3v3aa+t7qVvL aU5+YDa4cHexww+UklTyAvrlFAHL6Bo2u6Loc1xe3cGteJbnY1xNO4t4jjAE aMkZKxqNxA28szNhd5xh+APDfi3whZalbXlto12b69nvzKmpT5DugwnzxMxG 5RlixOCT8xHPolFAHnfhXw34t0Txj4g1m8ttGli1u4heRY9SnZrdE3DjfEd5 2t0yo4wNowB0mk2nimHxRrFxquqWNxokuz+z7aG3KyQ8c7m/nktuPI2D5T0F FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAVyepfEnwtpGsro9/e3cGoO4SO3bTrktKSxUbMR/OCwIBXIPbNdZX j/xf/wCSh/DH/sKn/wBG29AHoH/CZaX/AM+uuf8Agivf/jNamlarY65pdvqe mXMdzZ3Cb4pU6MP5gg5BB5BBBwRRqup22jaXcaheSRxwQJuJeVIwT0C7nZVB JIAyQMkc1j634j0H4f8Ah/zNTvo4YIkf7NbKEWR1B+WKKNQoIUMqjjgYLHq1 AHSUVwd58V9It9GtdVt9H8QX9tLb/aJjaaeW+yLtDYmJIVTtO7qflw33WUtY 1X4n6Bp+lx6hZxalrED263bHS7NpRFAd48yRjhUAMTghiGBU5HBwAdpRWHoH i7RfEnhpdfsL2MWAQtM0zBDblRllk5wpUcnnGMEEggnDuvidYWOjwa3c6Hrk ehTSqiambePy9jNtWUp5nmrGeoJQZBXAywBAO0nmW2t5Z3EhSNC7CONnYgDP CqCWPsASe1c/pfjnRdS8EL4veWSx0ko7s92ArKFcpyFJySy4AGScgDk4qxqP jDQNJ8NW/iG/1KODS7hI3hmZGzIHGV2pjcSRzjGQAScYNSeFvEln4u8OWmuW Ec8drdb9iTqA42uyHIBI6qe9AFfwj4x0vxtp13f6R55tbe7e13zJs8wqFO5R nO0hhjOD6gV0FeV/AeOGLwrr0duI1gTXbhYxGQVChIsYIdwRj/bf/ebqfVKA Cqc+q2Nrqlnpk9zHHeXqSPbRNwZRHt37exIDA464yegOLlfPnjG/1OPVLf4t Whklg0/WH062hiaOWKWwTMZkEiqdoeTz1ywP+tXB4UsAfQdFRwTw3VvFcW8s c0EqB45I2DK6kZBBHBBHOax9X8UW2lapaaTDaXeo6pco0q2VkELpEvWVy7Kq JnCgswyTgZ5wAZ4+I3hyTxvb+EbW5kutUkeVJPJTMcDIhch2JAzgEYXdggg4 rrK8XXWk139onQ5bSyvobq10+e21K1vLJd1oF80q28FgNxdPmU42uoDHeVHa af8AEa31DxjN4WTw/rMeqW6LJcpJ9m2wxnZ85YTEEASKcLk89DQB2lFc/wCI PFJ8P3ljbnQtVv8A7dKsED2SwsDKQx2kNIrDCozFiNoHU9cXNS1oWNwtpbWF 3qV4UEjW1oYw0cZJAdjI6KoJBABOWw2AQrEAGpRXN6V450XVdL1a+82S1Ojv KmpW84BltTHu3bghYEYViCpIOCByCBhwfGHw1eaHqOrWMGq3sNjK6SR21mzu UXB804OI4yCSDIUzsfjKkUAegUV5HrfxD1i78T+CVsdC1m20nUnN3GYXga4v R5ZwmwSFFixIrMXIIHI2lM16pY3Et3ZxzzWU9lI2cwTlC6YJHJRmXnrwT19e KAC+vYtPs5LqZJ3jTGRBA8znJA4RAWPXsOOvSsPQ/HvhvxHrNzo+l38kuoWy M81vJazRNGFYK2d6DBDMBjrXSV8+eIkm8NeM9T+Iun3t2UtPEa6fqUNpKbpH tTFEzZZsbTuyhQ/KrFFUrsBIB9B1z/ifxt4d8HfZf7f1D7H9q3+T+5kk3bcb vuKcY3L19a2LC+t9T062v7OTzLW6iSaF9pG5GAKnB5GQR1r548dXdvrPjLwj 45t9agjtbzVRBYG7jISK2gkjHmsuF+US+cx3OCVdPu4baAfQem6nBqtu09vH doiuUIurSW3bOAeFkVSRz1xjr6GrlZev6/Y+G9La/v2kILiKGCFd8txK3CxR p1Z2PQfUnABIw5fiJYWHiGx0TWtK1XR7rUMCze7ijeOdy4QIHhdwGyw64wME kZGQDsKK5PXviT4U8N6zHo+o6rGmoO8SmFQT5YkYAM7/AHEAB3HcQdvODkZp y/FTQofFFjoktpqsa6hKIbLUWtCLS5YgYMb5y6kso3BSvzA52ndQB3FFY+ve JLPQPscUsc91fX0vk2ljaqGmnb+IqCQAqj5mZiFUdTyM5+meOrC+8US+Gryy vtJ1dYhNFb36xj7QhBJMTI7K+MHOD2P91sAHUUVj694ks9A+xxSxz3V9fS+T aWNqoaadv4ioJACqPmZmIVR1PIzj/wDCyNGt9Y/sbU7XVdO1duY7CWxeeSVN u7ehg8xWXhhweCjZAxQB2FFY+peIrfT7O0lS0vry4vNpt7K3tz57glQWKPt8 tV3LuZyoXIBIJANPS/G+lahf6rp1z5ml6hpSCW7tb941aOIoH83cjshTDDJD fL3xkZAOkorh4Piv4avZ9VisPt1+1hKkC/Y7Zp/tcrJI4WEJktxDJ8xCrxnO Oa6Dwt4ks/F3hy01ywjnjtbrfsSdQHG12Q5AJHVT3oA2KKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAK8b+M0EN146+G1vcRRzQS6mySRyKGV1M tuCCDwQRxivZK878VfDvWvFPirStam8TWkKaRcefY2q6WSqkOH+dvOBYnagO No+XgLk0AdBL4B8KsYHt9B02ynguIbiOe0s4o5FaORZAAwXIBK4PqCRVP4lS 29z8NfFEStBM0Fo6yIYDceW+0OAUU5VsFWDH7mVc8CtD7H4w/wCg7of/AIJp v/kqsu58DXf/AAgd14csNajt7vUXlfUtSexR3uWlJMx2KVCls7QedqgAcgMA Cv4PihPwRsI2+yQxNo7bzLALaIZQ5ZxIrjHJLOVZW5faQ2Kp/ApET4UaaUs/ IZ5Zy8mFH2g+Yw38HJwAE+bB+TpjBOxpPhnxJonhKLQrLxHYo1vEsFvdvpsk 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 5I5kHJLH5FQjIwRjNV/HXw/1jx7odppV/wCILG3jhlFw7waY+XkG9RjM5wu1 wMcnIznBwACx4vu9Cfxp4Z0+XS4NS8S/v59LSe4McVvgBmeTG4jIQ7Dsb5k4 24yOX1Sz1S2/aA8FzanewXbS2l0FaGy8hVIilyqkgkrgqdpkchi5wodQeg8T fDi88RajpGvR+IP7M8Tad8g1CztT5ckeWIXyWkOMbiPvEEFgQQQFr3vwtvbr xRoviZfF98mtWUXlXV01tG/njBB8tD8kPyu4xtYcg4LbmYAp+PdMudI+KnhH xtFHJeQK/wDZctnBE7yqGSZjKoRWLhVZ2KgZ+QdckrYbT7nxR8YNF8TWWi3d pp+kW80E9/fK9u1yWjIVI4XAfCmUneVAOWGflGTWtI1DVviNDb+Ftfk0q70n RxBfXj28N4VWSRTFExc+YXIjdyWJwApHLsSatpPxB8PaNfa0/wAQ471NOt5L trWTQ4UWcRqX2FlbIDYxkcjPFAFO4lN/+0FeWL6jfaVdLoiRWdxCkKecgfzH RRKkglySTuULjynXBwWroIvh7pNn47sPFd7rV9c6yN0MJn+zxic+U4wVjiTe wTcfXC+i0fET4ZaX8QbOIyyfYtTgwIb5I95CZyUZcjcvJI5GDyDywJ4R8BX/ AIa+13l94pvtc1d4nhtbm/Mjx2yNtJAjMhzlkUt8wyFAG3kkA5/wXaRf8L58 d3JgnjmjigRfPDyNtdVYkSByiqSqlUPzbcBdgRlr1iuD0rwNrWm+PL/xW+va bLPqKRxXUI0gqNiBRiNzMWQkJ6kZ5KnAx3lABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcf4k+G2he I9Yj1rzL7S9ZTA/tHTLgwTMoUrgnBB4OM43YAGcDFSaV8PtM097eW+1DWdbn tbj7TbyavqEk4icLgEJkJkZJBKkgnIPTHWUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFAH/2Q== --0-109243609-1281462171=:65851-- From SRS0+kgzL+71+fromorbit.com=david@internode.on.net Tue Aug 10 18:18:47 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7ANIksX108736 for ; Tue, 10 Aug 2010 18:18:47 -0500 X-ASG-Debug-ID: 1281482348-2840019a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3EA734A91D7 for ; Tue, 10 Aug 2010 16:19:09 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id 2TDE9sv9RlpA9Yu4 for ; Tue, 10 Aug 2010 16:19:09 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34740420-1927428 for multiple; Wed, 11 Aug 2010 08:49:07 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Oiy66-0002eS-2D; Wed, 11 Aug 2010 09:19:06 +1000 Date: Wed, 11 Aug 2010 09:19:06 +1000 From: Dave Chinner To: "Kinzel, David" Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix NIS detection damage Subject: Re: [PATCH] xfstests: fix NIS detection damage Message-ID: <20100810231905.GJ26402@dastard> References: <1281057519-24730-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1281482350 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37624 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 10, 2010 at 07:44:10AM -0600, Kinzel, David wrote: > Dave Chinner said, > > > >NIS detection wasn't tested on machines without NIS enabled, > >so many tests are > >failing on non-NIS machines. the _yp_active function has no > >specific return > >value so always evaluates as 0 (active) and the "_cat_passwd" > >function is > >called from within an awk script which is not valid as the > >shell may run with a > >sanitised environment. Hence the functions do not need > >specific export calls, > >either, as unsanitised subshells will automatically inherit > >the parent's > >environment. > > > > Is there any reason why getent passwd/group cannot be used for these, as > it would get local and nss defined accounts? This would add support for > people using LDAP as well. If you want your test box to use this stuff, then feel free to submit patches that support this. In general, though, I think that running anything other than a single user account on a filesystem test box is not necessary - you don't want random users to be able to log in to the machine you are running potentially destructive tests on. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+kgzL+71+fromorbit.com=david@internode.on.net Tue Aug 10 18:31:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7ANVD6F109091 for ; Tue, 10 Aug 2010 18:31:14 -0500 X-ASG-Debug-ID: 1281483096-7f2f01f50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 310921E44EA6 for ; Tue, 10 Aug 2010 16:31:36 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id ptOHex5pdjBOwNLr for ; Tue, 10 Aug 2010 16:31:36 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34741791-1927428 for multiple; Wed, 11 Aug 2010 09:01:35 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OiyI9-0002f5-P9; Wed, 11 Aug 2010 09:31:33 +1000 Date: Wed, 11 Aug 2010 09:31:33 +1000 From: Dave Chinner To: Amit K Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Query Regarding XFS File system Subject: Re: Query Regarding XFS File system Message-ID: <20100810233133.GK26402@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1281483098 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37626 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 10, 2010 at 05:39:55PM +0530, Amit K wrote: > Hi , > > I was just going through the architecture of different File system drivers > and i found that XFS provides a better mechanism of data handling under > heavy loads. > I want to develop this > driver and was referring documents provided by XFS > (http://xfs.org/index.php/XFS_Papers_and_Documentation > ) > I have some queries regarding XFS Licenses-(CCPL- Share Alike Version, > which covers XFS documents.) > > Query No 1 : Do I need to distribute or share/Open the Code( which will be > written by referring this document .) if i want to commercialize XFS driver. > > Query No 2 : What all License related conditions need to be fulfilled, if i > want to commercialize this XFS driver(stipulated by SGI). Perhaps you should be asking your lawyer these questions. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+Rqfm+72+fromorbit.com=david@internode.on.net Tue Aug 10 19:08:34 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7B08YS0110130 for ; Tue, 10 Aug 2010 19:08:34 -0500 X-ASG-Debug-ID: 1281485337-2837023c0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 23A704A9701 for ; Tue, 10 Aug 2010 17:08:57 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id QSu0CLcoR0964IvM for ; Tue, 10 Aug 2010 17:08:57 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34592436-1927428 for multiple; Wed, 11 Aug 2010 09:38:56 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OiysI-0002hN-VJ; Wed, 11 Aug 2010 10:08:54 +1000 Date: Wed, 11 Aug 2010 10:08:54 +1000 From: Dave Chinner To: Peter Niemayer Cc: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Message-ID: <20100811000854.GL26402@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1281485339 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0205 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37628 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 10, 2010 at 06:01:33PM +0200, Peter Niemayer wrote: > Hi all, > > we use XFS for a very I/O-intensive, in-house developed real-time > database application, and whenever we see new or significantly > changed file-systems becoming available, we run a benchmark using > this application on a conserved, fixed real-world data set. > > I'm pleased to state that using the experimental "delaylog" mount > option (in vanilla linux-2.6.35) we measured a 17% performance > increase > for our benchmark scenario. (Other mount-options in use both before > and after the "delaylog" option: noatime,nodiratime,nobarrier) That's great to hear. One thing that you might want to try to further improve performance is the logbsize=262144 option as well. That will help flush log IO faster by doing less IOs. Also, if your workload is doing lots of fsync calls, then the optimisations I posted a few days ago should also help improve delaylog throughput. > That's a lot given that XFS was the fastest performing file-system > for this application already. > > It's also a promising result regarding stability, as several other > tests (using e.g. reiser4 or ceph) in the past led to crashes in the > same benchmark scenario. That's definitely encouraging. ;) > So thanks to all contributing developers for this significant optimization! And thanks for the feedback. Cheers, Dave. -- Dave Chinner david@fromorbit.com From michael.monnerie@is.it-management.at Wed Aug 11 03:03:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7B83GgZ127682 for ; Wed, 11 Aug 2010 03:03:17 -0500 X-ASG-Debug-ID: 1281513819-16cf03080000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ECE624AA543 for ; Wed, 11 Aug 2010 01:03:39 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id hTBJsTELWYftOvkQ for ; Wed, 11 Aug 2010 01:03:39 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id A2BB817E for ; Wed, 11 Aug 2010 10:03:37 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 65BCC47EA07 for ; Wed, 11 Aug 2010 10:03:37 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Date: Wed, 11 Aug 2010 10:03:36 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart4825992.PizCbbSebK"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008111003.36890@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281513819 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0027 1.0000 -2.0031 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37659 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart4825992.PizCbbSebK Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Dienstag, 10. August 2010 Peter Niemayer wrote: > 17% performance increase for our benchmark scenario =20 Can you say what kind of data accesses you have? Database, fileserver,=20 virtualization platform with VM Images on XFS... there are so many. Just=20 to get an idea in which area delaylog helps that much. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart4825992.PizCbbSebK Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxiWVgACgkQzhSR9xwSCbRSvwCg1ptWeG8Xp8Pq3WubbZZJdd/X troAoLVnTNZW4yaHvK008SDL/bL4aKdV =BDCK -----END PGP SIGNATURE----- --nextPart4825992.PizCbbSebK-- From sgi-linux-xfs@lo.gmane.org Wed Aug 11 04:45:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7B9jZrK131847 for ; Wed, 11 Aug 2010 04:45:36 -0500 X-ASG-Debug-ID: 1281519958-33d100160000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lo.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C186E1D72008 for ; Wed, 11 Aug 2010 02:45:59 -0700 (PDT) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by cuda.sgi.com with ESMTP id hVkymNpTFoAMAbEx for ; Wed, 11 Aug 2010 02:45:59 -0700 (PDT) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Oj7sh-0006aR-BV for linux-xfs@oss.sgi.com; Wed, 11 Aug 2010 11:45:55 +0200 Received: from barriere.frankfurter-softwarefabrik.de ([217.11.197.1]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 11 Aug 2010 11:45:55 +0200 Received: from niemayer by barriere.frankfurter-softwarefabrik.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 11 Aug 2010 11:45:55 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Peter Niemayer X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Date: Wed, 11 Aug 2010 11:45:41 +0200 Lines: 27 Message-ID: References: <201008111003.36890@zmi.at> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: barriere.frankfurter-softwarefabrik.de User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.7) Gecko/20100713 Thunderbird/3.1.1 In-Reply-To: <201008111003.36890@zmi.at> X-Barracuda-Connect: lo.gmane.org[80.91.229.12] X-Barracuda-Start-Time: 1281519959 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37665 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 08/11/2010 10:03 AM, Michael Monnerie wrote: > On Dienstag, 10. August 2010 Peter Niemayer wrote: >> 17% performance increase for our benchmark scenario > > Can you say what kind of data accesses you have? The application basically writes a large data set to ~ 100,000 files, which consists of many small messages. Each message consists of a primary key (an integer in the range of 0 to approx. 1,000,000) and an (almost random) number of data bytes (length in the range from 10 to ~1000 byte). For each message, the application opens the file that is determined by the primary key with O_APPEND, write()s the data bytes to the file. Then it closes the file. (There are usually a few to many messages per primary key / file). The application runs 4 threads in parallel to spread the above action over 4 CPU cores, each thread processes a quarter of the primary keys (primary_key & 0x03). This description is, of course, somewhat simplified, but it should get you an idea on the kind of I/O-operations. Regards, Peter Niemayer From global@a-aidunion.org Wed Aug 11 05:19:59 2010 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7BAJxLt133320 for ; Wed, 11 Aug 2010 05:19:59 -0500 X-ASG-Debug-ID: 1281522021-22dd00280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from n1-vm0.bullet.mail.gq1.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 85CFA4AA732 for ; Wed, 11 Aug 2010 03:20:21 -0700 (PDT) Received: from n1-vm0.bullet.mail.gq1.yahoo.com (n1-vm0.bullet.mail.gq1.yahoo.com [67.195.23.152]) by cuda.sgi.com with SMTP id IUjqRJhaR9oCvCw7 for ; Wed, 11 Aug 2010 03:20:21 -0700 (PDT) Received: from [67.195.9.82] by n1.bullet.mail.gq1.yahoo.com with NNFMP; 11 Aug 2010 10:20:21 -0000 Received: from [98.137.27.221] by t2.bullet.mail.gq1.yahoo.com with NNFMP; 11 Aug 2010 10:20:20 -0000 Received: from [127.0.0.1] by omp131.mail.gq1.yahoo.com with NNFMP; 11 Aug 2010 10:20:19 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 496881.14639.bm@omp131.mail.gq1.yahoo.com Received: (qmail 36288 invoked by uid 60001); 11 Aug 2010 10:20:18 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1281522018; bh=N4oqhn2BAs+1mitOJ/1LA9Ju6nx8/5g3QBOLsF7Ga8M=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=z9UoC0ffAmQlW/ySAE0DJmUlae48TLzCBqd4n8Zpyw3MQGsOofOTfahHWRw+7KDBO/p5O3ksXtY/PjdMYaLewu6dl/VuhtMXhq9aoXR6ZobFZ2N03Du8mdjqoKYNOPcz8tyXx5lsmUSzAahnIshfOWFSp801VwAqhMdTLpEUnrk= Message-ID: <319644.76806.qm@web1204.biz.mail.gq1.yahoo.com> X-YMail-OSG: blbjIFgVM1luDdVMQwsenIHieahd7iiXhWi0DRc3W1OFdAS rKm513oxcQBHnSdr2KbnQrwC..f5CBeJhLVHXLmnO8GmMKaojqrDaVHpA7Xa WBnQBwwFqwyNJdkMwLPDt5zPm_gb2xtz9V7Brno41icM72Es4Q36F9yBVSy9 3z5Zy_IRpA6nH_qG_zAXdbl5RYCVRqjsgYWfp08Yfdk7bpExGlPNVvxF1muL 1Pi7peg4FcIm.HtPHMh2y3HqjqJM0d4C3K9OHJgCnLedftXbhjsycA7wOtkN nc0OmduThMoJ66a1tFG5gJeHLbFHJKyyq9zu0KjvP Received: from [41.219.192.44] by web1204.biz.mail.gq1.yahoo.com via HTTP; Wed, 11 Aug 2010 03:20:17 PDT X-Mailer: YahooMailClassic/11.3.2 YahooMailWebService/0.8.105.279950 Date: Wed, 11 Aug 2010 03:20:17 -0700 (PDT) From: Project Contracting Office X-ASG-Orig-Subj: Work and Migrate to Canada Subject: Work and Migrate to Canada To: undisclosed recipients: ; MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-385061593-1281522017=:76806" X-Barracuda-Connect: n1-vm0.bullet.mail.gq1.yahoo.com[67.195.23.152] X-Barracuda-Start-Time: 1281522023 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5052 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37669 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0-385061593-1281522017=:76806 Content-Type: multipart/alternative; boundary="0-698861238-1281522017=:76806" --0-698861238-1281522017=:76806 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable =A0Work and Migrate to Canada --0-698861238-1281522017=:76806 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable --0-698861238-1281522017=:76806-- --0-385061593-1281522017=:76806 Content-Type: image/pjpeg; name="Employment2.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Employment2.jpg" /9j/4AAQSkZJRgABAQEAYABgAAD/4QHeRXhpZgAASUkqAAgAAAARAP4ABAAB AAAAAgAAAP8AAwABAAAAAwAAAAABBAABAAAApAYAAAEBBAABAAAAmAgAAAIB AwABAAAAAQAAAAMBAwABAAAAAgAAAAYBAwABAAAAAAAAAAoBAwABAAAAAQAA ABEBBAAdAAAA2gAAABUBAwABAAAAAQAAABYBBAABAAAATAAAABcBBAAdAAAA TgEAABoBBQABAAAAwgEAABsBBQABAAAAygEAABwBAwABAAAAAQCpdCgBAwAB AAAAAgCYCCkBAwACAAAA0gEAAAAAAAAAAgAAo4UAAHqyAAAOZAEAyI8BAOiR AQAVlwEAnaIBAGqpAQCksAEAJr0BAFjKAQBX2QEAY+QBAKDqAQC18gEA2/QB AAT4AQCc+AEANPkBAMz5AQBk+gEA/PoBAJT7AQAs/AEAxPwBAFz9AQD0/QEA jP4BAKODAADXLAAAlLEAALorAAAgAgAALQUAAIgLAADNBgAAOgcAAIIMAAAy DQAA/w4AAAwLAAA9BgAAFQgAACYCAAApAwAAmAAAAJgAAACYAAAAmAAAAJgA AACYAAAAmAAAAJgAAACYAAAAmAAAAJgAAACQAAAAyAAAAAEAAADIAAAAAQAA AAAAAQD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgy IRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjL/wAARCAiYBqQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAA AAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi 4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMi MoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH SElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJma oqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiuLk1uHUr2G90/y5HifLnT5A090iORGq5x vTbKhYSKIwt2siSjaHIB2lFedpGdNe3SMRpd2ztcLbqZHIlK3BcKJXaRi4t9 plWAu4aZ0BMzmPqNI0OxhikPkxyJvEYSS128xTyOjkuDI77m3b2YhmHmLjeS QDcorH1HXEtWntV/dXYyseQsxwYnkWQQq4kdcxyKFUb2KNgbQWA+tv5t1DFa bposxxpuZz5u4ALKY0cRKRJC4JJbY7MVAQ0AbFFRwzLOhdBIAHZPnjZDlWKn hgDjI4PQjBGQQakoAKKKKACiiigAooooAKKKKACiiubtfF1iqKL29tGP2fzB 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 I1oBGUaeVpZsrnIHmgQSSum3ePOAYKY2L9RPCtzbywOZAkiFGMcjIwBGOGUg qfcEEdqAPni1Vru9WRLCNbl7jyjbzMsqRzzunmCVjh2K79Mtp84Zg9z8rMXe qcM3mJaK1zO1lcRId10MyXObe4aTIJ3KpW4uJpWZxg3EQV44ttydC+h8nVpI 3toBPDi1RCcIJJZBmJFAkQ/ukuI8J5h/0RLbEiri5y5I1+yHE0YtBbhXuYAz F7ZLdLMsSgdGdhFd4wHEMaXUiCYFGoA+i9FunutJtjN55uEijEzTRMhZzGrE /NHHn73JCLzkYUgqM/xz83gbWof+fi0e3wOXPmDZhF/jkO7CJkb22rlc5HH/ AAz1S4R7qylsYFuhkXMFvIFMcq3DRuioXKbYVZVODuWJLbl/MSOPY8fatceR DpVjbfa5JpQJrOTEHnojwttEkrLG0bmSOBl+bPnnAYxsjAHJ/DHTItR8R3up yx2jLKgnCQxQyxwxLPIIIFl25ZEdGAZeptkA2Rxxmb2SsPwvoFt4f0tLaFbt pI0W2868ZGlaKLKRDKfKEC8qAB94lhvZydygAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACio55ltreWdxIUjQuwjjZ2IAzwqglj7AEntUlABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRWffatb2sslqs0 H27yhIkU0hRMswSMO4B2b3O1eCWw20NtIGhQAUUVGJla4eACTeiK5JjYLhiQ MNjBPynIByOM4yMgElFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRVe+m 8izkYXMFtI2I4pZxlBIxCpkZXdlio2ggnOAcmo9N1Wx1e3a40+5juIlcoWT1 wCPwKlWB6MrKwyGBIBcooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK 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 riSYcGMwyQxtuWeJI7ku231ef7ZdRkDU3jupLd2jd0hnWa8mIVlKyk2TTHZl o1lgQbw8fk5c37nS7uS5/dzC0cXRj/cgzC2txNGT8yxbIZJLVUdMJLcARgBy kIBJLHaXlvlRJbw3lvIVu5S5kUThp7mbyy+8lYAzOdxkYfZY8yxMXnsXZF9c XeY44ZLy4nLLI8cbW8twYXuwXIO0QwXEsMpKFxhXIZYgttJc20Ul5Layrtt7 jUFhmiMTlJEkEiRqkbkFFxbyboI8uPs9pCpEyM6R+Y1xFKLuHUpftSTyTplZ i5edGyGhI3GRrsRKsZUNG7NtiW8MkYAG8a4CMLiSL7SjSR/aYlfJljEgDKxK siQLJMxaQhWvwk7srzu8cyO8dxELP7PLJEJ5YJQ187GW7Z3XymIM0gd7KIu/ LTWwiYNGJWSRZ7sJJdQSx3VwHkumu7dkihe7jaUeYmcB0e42XDMx8sx2JbpG YYCG1XNtbWCSLGHtIrUxbmwXtp0ilTKKA6NPbyKwMYMt2GlMTSBYQCR0S9u1 854JLa9lELTRstyNjak58uJ2U+f8mns6qyHzXlmYkvIqSV4orgxLPHp267n8 yKKIuJmM86gFtxd0kWW4uIgZHYf6PDCrl1uFEkbGGa3nkijkxPb5cW7hSTKJ YkBZwoRDZW7MpeNY4o7maRQgEcTWLiO0M11NNax/Z2eX7Ws1g8fm2kcxjESh RviQGGYqrBpI4kkO0m0gZwCS15lja0+3SWckqW9p5PyTSx7rW1t2AfiNvICz iQmMecbdnUKLcvXtm8qKKXzYDHLaNLgx+VHKqLGoX51aTy4rOOV1DIzFHUvv F2YCTLmWRdTige/Hmm8UyfZhKxaP7blyypD5k2Lfz921gLlVJHkQrIiTXJkQ XsayXCQNNqMUpQpLcSR3Ml08Y8sKAAZwwIcxw24ICwXIABHGbeFEkmnsZbKK JSzyTE/6IlvHZuwKlgvmmKWJmTIXacGd2tTQ1ulzK8N/L51zHjT7oqV+1q5a 7jlhTax2zTJbCX777ppCuGS5koluEnia6ji+yNc+XdRx4WN7UBTcKySBSCtv ZvMqlUd0823IG4pFBJeo2bq2nSSSZUvEMNtbKksJMnkGOJfnwjLJHZLtEg3m Q7nS1hoAI5ZnlCfu4bhkM8n2Sc+VY+ZA+SrFgpAMdq8K/KqJZ79yxr9pkjM1 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 KQ0SQFUe3jijvIbd0iXzFkkhu/IbTreD5FySj5jnZVV1kjkjUFnVWiACeFQ9 5bxm0aOd/sMC+Y0MUkUSxp5zyZ3mIQNGSVLbbaRgGdpZ5o5La6eW4iu18+6t 7iVrqRLqJnaeKS6jdQyJHxJJ9sSJo0BVI2ndEkFyu+MOwmjazeS981wlqk9y sy3Q86ZIo2Y/JI8880wl+fOyC6MbGKULUcyW8+4F/Osp4pzHPfMWae2j+0zA SAr5reZ5iXco6qqxvGQ8kEaABAsqW9pbSXM4EdoYAY7hITI8VrZSs4kwNu1k t1SVCU2IszZSOQzknlTI63nkG3eJpGNrviby5LeSe4Ntu+6q2kVtGkY4CtAH MYeaFpJdzvJHd2sk63Lhrm2nRQ1zLKtxdSRNhU/fySILQFAcPbFiivHAFjnl RftRu2+1uIrie8uDAtwzRvsuI2Kg7PmmE0whXchW3Ug+TJLcSAEjvc3E0ssj 2i3krwyyTxXLqqyzTNdsjMu5obcMDKHV/uWTupQXIdo7r97viNjPPJLFeN/Z skfl78+SFHkq77FL/Z7ZYzJ8n2NwmLgoEsAuuoywTTwPc212Y5pGmaVIJ0Nz FCXkBDIy+TcXMk21MrczSDy5FhJrww+Xa29mltOVeI2kFqT9mdt8S2SptYBV mkle/LI5by2SWRd67/PAJLndqBniiupJ/tNxdW6XUDqftck8kdqGjDsqZdmv 51XmMLLMqOrB3iJZIS8l3IY7W0ZxPLJGAYoo5FuBDkMiebBDbXEDBOredHbs hEiLFXu7mFrS4lN1aCBbd44p51EKKs1vJbxsFwHiMsYuLkx7WzHFaxJ/yzWr F7bTGW6ht7WOK6uLi8shEWMSvM8H2WGPk4UBpriJFHmIn2UqjBRPOwBHt8uF z5UHm+VJGbQybCzLYWsT27ZZdqwec0ZLszLE90xZJE3tY8vybwxyx5jEttGw VNk07Y1D5AuxUdhEJLdISgVmESOsYWS3EdzNbXk11OgkuhO8uwtGkj3KzzGS BTFIFO9zb/bFhwqMQyji6VI43t0lZbZJfLL4gaRit1IZb6Jw8pYNulbyluvu 4aZxbsm+N4o4gCSKFbgpFqJtJUZLeK5AkZ94lkuLp1klJcrAfMl/eZY7bZbk P8sKzRo3nC1urqWD7U+NQmnMflFJGsjcTSwkKSJCLkOzjcYzaRsFO6CASIi6 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 WngeO3ul02a1vLt5JRp7xNc3Eu5JWMMwvJg7b2IcF4kaKQgNc3ZG4iGMJXgj W6htobeaOS4kSS4tb1A0kom8mFDdq2GYmW5lbDELJ+7aMBpkgSGxFPC7xzQy 6b9kVyIRIwuVgjVbc3KDbjzUitrXySoOZU8x2cCeFJACO3svsMEFpcQwKLaK Oyn+023mRqsDwXF0XRVG9Ve3ulChgsoinIPmBjPYtnngurGSWD7PcR+UVmu5 pZHEwlluQsrhcmNJBvnaQoNyXe1WMMYgpymGCwdp45Cj29w00e8XDSSRvb3k jlnBWcuq2ymTy3DeZNIcwQxrViRVtLi4hmlki2XFzHcvbTsZA1uTc3boxk3G UyRlo3b51FpaCX5ZskAr2karptpDYTRmIW8Cq10Gj2u0UywtLGAVii8ua6uJ Mgq6wkMGD+fcWAZpQ7aRHdxm4RRZQyuQUaWMx2ceQCFEcQ05/MDcTNAJCSUe EeAzO8U8Uc7M8sLxWyyBUYruuEReHjIVdPtUh3puSTyv3UjuIpIWlm1G3maW +N2bskXQjSQ7mK3OcoqiSOKa7jdQoCzyCIIJVlQW4BGJlUPNYi0uYSiy28dv Gzm6gijNvArIQzOksjW8BXO5I2aPc7tdssckSG3ltUXznitPLLxzqGWI2trb oVZgYo2lijuy3JURgzZlSGJmjhjtHtLKPEkEMtvCv2ecuWl/0csvmSo6F0jt ZJt2HRV8+HzGjibyreS4bzbe4lvpYBaXG64neSP9zcn7LDJLI21QUjlnuoZT n94yrEqCKWGFGALEsfnXUpmj89T9rL/aE2eZCJR5aP5yHb/pFjPIVkJKeb5k pmVbnNe1vfJ+yXME0F3dRxC4tne5xJceT5U3mFmYF4XvJJpW3lNiR3G8b4kE FhYZV1EyzW26a3u4lcTFLZUkQwxkl4gqiO3hiuoRIseVZJposgP5EcJu5LWF 0ubuOOS3gZHjt0WUbpU+6sQbbKVudPKbFZYo9gCyS20dAElnC8UtnY2t1PFs ljtoPtcbRmVkZrSLk/PH5k8ayspPmqlthPL+yxNJTikFzYJc2xkYvb27xzYj gYzB7hopAyo0cRS3iu0DglIN8KEKbZpBYgtVvCkUaSR29w6RySRbldLSW2sY 49i7GEjrby3EaoS5Qzhd7ySRmWM3jzRC+YeXcz2kJWN3aMxjal/I5lUmRlUx LK2xi4RkyDPcySIASGZbeW4eEWhs4UilMixsytAkAECyphpGSSJkcrjclrFO oaSRrjPt/gKNoPBllBLNJPPC80U8soXe0qyushfaAN+4NuILZOfnk++3hl55 SwXEU/kGCOK5kcXm+KOSMvb2gLx8NEu+xlk8sIRGDFFGVlaIr7n4DjaLwjAk s0k1wLi6NzJIFDNObiQy5CgKp37vlXco6BnADsAdJRRRQAUUUUAFFFFABRRR QAUUUUAeF/FLWFvNZ8iJrTeiGGdBOyxyorTp88wQGNN7xROxOMzyRLJHidm7 DwB4sgfS5rS5EhkieWQhLWU3EkvzPcmSJQ2xxISWUY2tKqBSpiebQ8QeAl1j VBepdyAb4jsZ23xlftQMkcrbirqbveg24UwqBtBBW5p3gbTLKzeF0gcy7DIi WcKwrgvuSOMqdkbLLIhXJ+V2Od7u7AHQWd/Z6hEZbK7guYxty8MgcDcodeR6 qysPUMD0NWKKKAK97ZpfQLFIcKssco+RW5R1ccMCOqjnGR1BBAI5N9A1PRLL bpayXUkNuY4GgaOF22pdGNTuwqgGSMDPmRAn5YYlGR2lFAHNt4omhuJ457CN BHceSqfaCJZcmURsFZFCh2jVFMjIrOWCsQEMtxfFOjN5Z+2bY5YnnSZ4nWNo l3bpQ5G3yxtzvztw8ZziRN2pJBDM8LyxRu8L74mZQSjbSuV9DtZhkdiR3rH/ AOEU01TF5QkiWJ4HVV2tuaKR5MuzAtIWaRiS5bDHeu1/noAuQa3p1xv23GzZ 5IfzkaLY0uPLjbcBiQ7l+Q/MN6ZA3LmObxBp9vZC7m+1ojOqJGbKbzZGZA4C RbN7kKSSFB27XzjY2OPvfAV8qRoLuS8tVt5I7mMPteZJG3TRRrwAHAZcySFm M/mPIWgjJ4/XvBPi2UuZ7e71CRklzO4gkiuJ/MfymljB3EMyQnb/AKtUMAky tofMAPRJPiFpMNq7y3diJvsjSxqssrJJIkUksgDCLmMIiuHAJKyI20B49+fr HxGFuqRQWc8btKiCR0miHmGX5ICGgZ/MeMAtGIy4EqFAyFpU84bwV4kk8wQn VVZ5UZZ1tpFedhtH2h+UKzOTDJjcqho4fNMjJPJBHa/DnU1dZY9Gu/3ieW0d taRwIwZUDRAvslVDEASWkUsEdGkWW5kSIAj1DW4tQvLW6aH+zbF4oJ2uLeB7 dI4FFuQNqsBEqGKCRsHzn328MTFCkrZYjmjso7N7WOKaS3Eslk9gYoFutkzf OygxInmRM8iPuXdaxK3lojpbdfp/w08Qi4hnaC7iIuI5JWnNuGmlQlftEm2R 33n7VPJkS7x5DbWQvF5Ohp/wontooTNDJPbxJGz2k6xF3hjnMsduNrCNjtjV ZEIWNpLh5S8hRQoBwA1AT3Draz3c3mIs3lzzxxzeWxNwQI5wwMRFxJ5kspYh J32tNFFMZfT/AIbeDGtyuqXEkkTqixq9ttXzUSRv3DMxM6pGyKoRiGKqqyE/ 6mHU0bwFb6La3T6jNPfqm77VJJbkteo0UTTMEicl2keKMMGB3rEVKMXeSTQ8 SfETSfDkFzPK3mLaZFxGUlWRWDquAPLIPBzliq5eDJCzK9AHUXt9b6fAs11J 5cbSxwg7ScvI6xoOPVmUe2eeK8b8Ta5e+PLia30C1kuGht3Nvd2scqNBvMck AkDFHUs8dtIrhQvz53FLeXzciNta8dX4srJJHRkNpfS2WqkwXEUaPA22RpvM dAxjk+ZJNomVvLO5jdev+EvCkPhywiRxG91GjRK0eBGil9zeWgAEYkb94yjO CQoJWNMAGhoeiQ6LatCnlu++QLIIwpWHzZHihH+xGsmxR0AHAGcVqUUUAFFF FABRRRQAV4/8TOfF8Sdd/wBgj2/390epjbjndnONu192ceXLny29grxv4ozw x+J1mMsbQIkH2tww226xx3YYSZ4wwu4RgLJ99Q0b+ZHHKAcZFE91bKkK2Mk1 zaSSyRGdrpJZZLkfN0bzVFwuS5EjSfZIYPmDo9wXcqSWbXk7bLeS0mkWW7gW ZzFm2nQTgkq7bFin++qyXN8qEYMoqxbh7C+gklgghNpdxzTJJCzBTaQwM0Yc D5Via1uYkkPmFoxd7d7riWvpa/2c2mMIoPPtvs+GWTy0kFpFFcugywCxtJJD 86l4233Fy/yrGYwCS5lmt7iRo/LW9guJlt455zL5dwhmuVBkZm+e3nkn8yZx gqIMlYp5HNeaDTbNJt0UiWlsk67JFWCRrGBnjVGLfvIRM0MsbmMRs0t2+9QB Gs1i0M1jb26Rx3bNZojqJHMJDW4jiVg0gGA08Vy5WbGyOyidk2W4iYjimsbc LaeXHHYoXtnuICixtbh445ShXfG4e1vbt0Kv90xg7p5RIASTQvJNd2d1dTyS PvS682NmkeVr+3jmfyosMVP2i6jxE+3LTxpk75Zq819cDdq7Sb7jyp70S26i VYzH9pkiUSJgSZvA0rgAo7QuwSOGFWkjnENlaSpaySW0do5EKsgMkKw2/URg 5+0W6zF2C+X/AKRdO5IS3ZqsahCqzXtpObRYIXeOWO5kbZt86G3nYgmNTEDb QQxgbE3S+YrQeSUgAB7VbKaWwjSSOOzeGJY7Xc9yhgma3aWAFMFwzNHGyqBJ NePMSjRskIkjQ3EcZhtG+zXCCOCyKrE7g31zH5AB3xmUyPDbspY7CJdqs0FS YuJL1FW4nF1NdxyQSzqPMFy15dHeFkjVRMs8SokRCBkedisPmTGOvB5UsCQ2 vkQ2zRMsMb7zBbrO86xpJjY/k/ZIpH3uqsEurifcHZVcAjnma00+5nIjnWGy juXuVjWJZHW0mEYwQqyITeodhVVWAW8LBnkENSX9jb2j3Nn5djZxRSvYpc3T FbZDFcGKFSj9Y2laaZkJZCIFdmmkhnVy4m+zK8z3M9hJHaXJVrkebdJGsrMJ JmyMSBnkbbuA+2PEN5KGO3kuTNZm68mO7tnjeW3jh3lmWb7MYbeCEAFnMc8U MQZcF3tTLmXZ/owAXd2yzSXElrIjwvcX0Md5dKjwAzCGASHcMOskyhnZsxl7 txIZ2byZF8+ynMEHymPyo1e481I0wkMMIZxhk8tbO5llkCrgQjIhmRBBXuFs zBOi3MEWn+VIkpS4Cxraq86NJD5QA2yTTTASbeBGQsZW5S1YvxcSf2izQeZe vFeXQjEIR5JbvzYWURKHddrXEMR5LGZWiYukQe3AJLazZZI7Wwt5LSeVIbS3 haVY7iCIXkMMbs2GERG5i4VGxcyFxueNltpLN3upbOaJJxFcyx+WIFaBgblm 5iUswj8uNdPjRHwkcv2Vw4jIaUuYU/tFokuoLVJLt47S8EanIQiOC4wvG2G1 kuLlZFZAm6L5UiW3305DD9kN3NHJZafcW4dlVx5sNubdA6l8FGMdo0NvD5mS z327crlkQAIJFfSLOWKGOG3+xZEURZ7YRGCSWfbtIZisKXMIV2XLzzbW8yKa eSxLFMzyRfu7O7DjZceQRFDJtuIrdnbarAwJHcSlwsYi3MCqG1SBi5S5vpro SpaX9xK8tvdxNbOieZLMZjGD98RRvK26MBpd00C/LM8a2wZ4XmW/eW7u0+23 DQSBhK0kzTM0bqI9u+VmmliQQnYHguGiZfMaeEAJAJiZEkj08C4Ae4uEjj+x 7ZEtozKFPE9vHdrKApRVafblBarFR8149zGLWSIXLtHeQWyL5lqCrnyEJUB3 jt7j7GiFcrLPtYoFtwSGKaxEM9t5cstg8Ecb28BKymO5S4do441TzEM06CON SI5Eu7ZvkMDMsaW6LbWtnYy58nEGnSRFXDym5NtFLG4ZI3bEl00edjb7Qz/J 50oIBYsQ76taXEEEC3ssts6yxQsIS7SRtaRKwCt9nRzbuQwO2G5SNiJYYAac Fq13o0VtYJdwxnTBFamTaqkzLtwVVNzOqXLJ/q8Nnci+bfRsJFS3vYgsD+RB c7F+0RMWhWCRbiBIxIVGVS0twPNkRvKVrsuPNAQBKX0odbfzhc+SwtCyxSSv dMm6MyeYWWa4iW1+bccQtc7jLIkjOASXM8N8JHaW7t7WZJrnEjAz/Z5I5ppI 1ByjuLHDb2LlZb192WmLxyT+fPLdw6jzHcygXbQebEQ07Xss7IX/ANWqrHKg ViFUljK0Qa6iaubq3CzXU3/Ezt/nvpZY4iY76ISm5JlQxhA08kGCqB2RIgHK C1lWSSTTZsmxnaOa5+0CweSUlTcXEkiRXLggIzPI1q0IIdRLHKSzI0Vy1ABO 806XJ1Cyjkad45bixiiMbXlzO008sA39CzbrfAJcPYq2RJFFFING04ntLqa0 uPNuMXcrBfLmeSOWQyyFBjyJpS8pfEZS3sYXB3eSaj8+3dpJFn3xT+UzQQ2h 3SxNFLBBCFAVi0iy3BCgIzxtb+WLeMMYB22Ws1wssEpgimeKVY/Mt3zFDayy KVV8wl7aeVY0UfuLWVChjkwgATypd25kkb/j7zdypcwKoZ2tZrgzMqkq67lt rqZB5vEkEW39yqvJPErTXKXFvJcK1vHG1tNG0kzxPNM8uV3NK7i5uIYthYfv Cy7y9v8AaULmQ6dNdKt7HZSwPLcq88chaK4imJkmmbe3mJ50kS8lg72qoGnM CC5r3Ihs9PuhBJJaR2ySvGxQD7LLDaF41TkiB4pZkQ7suZb5xueWITEAsefd uWmEsd/cBHfzmZBa3OySdpC7D5DFNPJeAEKrCCBg2yOWWRRoptSSOFPLvkuX jS2kvICySyFooIJXDKWQtJI94+9XGJ413f6U/mSXv7q/vhD9uikSW9MVra/L JAPPhRFRfmywaO3tI2QNGrqXRQbbzJSP93qfmxfYUkj1CCfevzRJIkbPC+fm xbFkdkPyGK0tiRg3B8wAjE8Opnz7aW7hiuriG6iuZ2DfZ1aS88vbJ8wR0iVp Gmw/ls127lpkjUE6zzRXBmsJFSRJWMDtFGIkE9q8cPlvmNCDbSgh9wihjZWe T7K8ax21t9o062t4lneForKAJNFvbySElJYMXRmY29geFkKLeJDtlKxJQi+c qT2kUHmyfaSkk8nmxbZpZYzPJIWdfvxTSS8ys0EESFpIxO9ABdyvdWt69s19 ctcRXTWzNAxUq8RgQhAd7ea10jIrlpA135jcb3upLsWkk0ggkjmtS9xDa70e RLnzZhZoVaAhtjpbIBFDtbC3JVfKVIZBJVu3S4huJHjd4pYnuJGjkjLriCSU lW8p1ga/ujOAB5paQqyeU0saSoLdpIW+zLJaGZRLArEoLVGRPLJxIsVnAzhf MbBvUikZleVnAJHiF07xyfa53leVJZ44Iw8xlXzLqWParL5rxzpAv/LOQ3Vu qM/kJK55U2oFbX93JJcokcUsEBiiRruSCMJExVikX2WdkBKNsR7fed/kwwkb tFexeQ8kt7G9i0Cm5WSWR2eWRYvOOFLyXM6SgsXV/szz7DEIozHEkVokVvbz wKiS2n2J2hfa0cVuXEqjcgRmjaWcsrKIWvFLvvbzbcAkhka7NlLaQ2kv2m4h Nq8hVIJHuZCnlbCXKQeULWF0Uk4tZokDL50ix+dmDdaXM8UskW+GaYb5zcXT 4haRYTl5mh+wzfKpO+B5VJkikjkGs3uLKe0tjhb6I28MuxjiKOzs44GygDPu S5xk7WO7CxgyvbTWIry3kvFnAnt7SWWS5HkuRJYwSgSqWUFlXy7KGOVMHh4Y BGm6GbcAV7qVB9rljbyPIiN0HigWSSIL5sdsxEZ2mSO3WeeMxuozNEVCwQbk NQiSG3vxIv2eGPzoJJBOsh09FtWhliXIwWQCG2A/5anDOyGW1dT57axg+06Z kQxWqGweVpFuZPOjl+yBGVmOfK8jJBfdBHENyW08jSDdbzR3Ed1JfOHEa3sL rI+oBJpkiVDuXDySR3dwVQguYbfbIJ280gEl7P5E8t1dJhLO7lmkZrrebNkR zIrEFS8kUhWJDu3NJNLIXie6hkqN7doneKZpLcxvLE8s0ay/ZsLuun2+XsIj SBYFRQIporK6RQpcCi1jYPFLZzWgjjeO3E8AVISEWcuyuAuy3+175yyEnywH j8trRwld/s0Vk8l5axraxpLHcW7IkW2KBPOeBwqlYTLNOxZN37qW4tRGS0DI ACS5kl+ytLNJPFK8T3SurpNMjRRDa0bF9rTIhvbppFwsguI3BjkmiMdxdtnq qrdWsdvaQ3ssc8NqjGCGCK9uZZYyrKFaIQC7G8ANICIkXC3AaOS2lW6dbhft BN2wvTcxIiOySyTXDSoT5b+ZOkI+Xau2zmTzRHC05jS1Wd0tL9JFtZniiu2u Nwkzcrm4llbYEZ40iILMuBLp7SuY2BjlAI7f7ZCqST+emrxWltM03M85mWVe BENpfE8x3Kdoe6EYcN5NxK0kUcNrKlvII7ezS4t1HkEPE1vDBcG4kiUud8Qj mnkAZSXT7OXSY3LsY2a8ubGSa5toHuZYkvZbSe3KI90JlM3nliilWlgmLowX CpMxylrblpHZY3dYb+RFLytFesrGR0kXzjePjZ5jraRwzsqgsssdq+d8kigA LCS7BtI1vY7W4jSJn2xo8Vnvktwjlt5DRQxWIlUbyzpGkzM8byrHXiktE0+A EyWmnmyR0EgdUjtzaNFMrMEAVz9rjILBiWMsqJ/pMcU0l35r2tykXkKWikCW c+x83AisnkjkV9qKsJW2BQbUXyZ3YLGgtzccltXzHHJL52pmWBLp5Edgs91F bRoWCmOd3WRMk+YhmknYyNlrcArzvNbyyyzWUYnhuCDE0RczXTQbZYQDuaYS 3MaW7EYZ44Hw0u65kA1mzkRNbyX6lLaNZZ5VczEyGRixAcuheR52B80NNPZq iSx7DNHZypDBbmNvtCpFbBIoYFVZy73Enk+QSgPnGS5kRAsZa3WOIEG5IBbW UVzLFaB4LuS43WyzCd385pWjge43oSzRz3ccitL8jCDchJMkCqASM9zLcTtF fSJPKmEmupnmFvJOZR5sjrKzZCWlvOjlmjihj35kdUeSRQkl4BJBPaqZULCW FYQFIuIoY58Bl/dwpctJgeUgeSN122y2717e4S6ggu2i+2QvFHN9hAVvPgje DYnkorL+/njjjZV3eXuhjRitvNGo1m8kRtHP26STfbs7I0kN1Ky25nnkChS6 sUtwrKS0i3UEkYNwjbwCS1kuQdPvYIZLm/CW7IgL/PPJIt7Au9iWdDPexI++ TaFiDMfMlg2x2v2OGKBIfPe1t/I8prfCHbt8qGULJj7PJ5S6lehjtVTLG7u3 FSGZZZpNQiGpTpdub9UhjaF3TzoZVRtgyJ5pWtVZkG4GSNk2QRx+eRRBnjtm +13UTOYXVoIzFOWW3kL7QrAIuyxRFQGM+ZEsSThGFyAEEB8q3sZIo47XZFDL CiyW8Ih8+6SbJbDwgeQYiSWcQvdTMhZ5gI2m+3WoF3czxNeRSyzXRG118+Ka SWXyssjKtq3nsiM2xryVFCtMrREQt7mKFrmC+uYpds0zQQnfcKVsIZihwJN1 2S47SN5kLN5ccshck826t5xeeQzSbJ9RjGySF2ltbmaRyUwfLZ4POkIBZlEP kcQwvIAWGeeZ5DLB9heTYgjjmlgW08y4WVE3hcJ5McMgaYL+7bTkjKhIsTV1 KTxSvFb7rZ7S1aS0DLCzRbeI3k8zKM1sIdrFisdu93kyOkrOXkct2s0UMc8l 9dfa4lVkRJ3muJZoPO2lF2+ZLKbd2cRgR24LKrvbqkl9NbXs000Ykvbcuz29 uI0D3KyTTvawv5oMjO6QiYI3ySF0kZJJPluQAaA3t1Ms8Uc08r3MErBZEzOY rVp2Ij+YGaeYKwxHKImkgwXaKKOM/Y7qIT33nxWZtIRPPJiAW9vKqLK0YTIE jQGKQquQBLBb7gqLDcSGFb29OnSG0lkldLUmWRpFm815CiGQlmeKe5unlXJW XyLRZRl9j1HHqiK6aq97ukES6mlzMiuxAuI7whjGUDRrI88G07A9wyAHIC2w BJHJckMywyfa1SU/Z7YvEFuWjgeSJMF/KMSvb28aMuUngtCgJMqqRTLZXUD2 4tCYXRrF0jaBZFSJr2JiAAoieYLNImVSBLpAxJVDbxtbpFEbC6l+WHfas05W R4Aq2/2pcxMhZYbaykhkChXfcrAlblQkks7BJ5Lm9kgWV3NzPcbZTbuzLPct Ivl7Q8ZvI4fKwqyD7WgVHuApAI4YbeS1+zJdebZCK18+7aMxO9skVyhMirh/ mtoEmVAEPkeZGHDzF5pDuvppDc2sjSXDlbpNizyhzNDdzxjcpXepW3j8l0RW ubyUKAvy0SQNeE215ZSXbSXAt5raXbOwnWRLVYmPmBfNV5buSSTKK/2lG3RS TRNGQagFu4tQM8dzGlwNSWW4njKy7bjzvO3EL5QeeaG2RwAqbrtmjiYyKACN G+2WbedLAsVzk3E0cfnQ7gUnuZ8MriXabaNBlmW4WxujuMj5Nh/PuZV+0f6O ZpQk0d15rrbLcM/mB2G0yLHbrdIxbDLIb52kR9hevbWtu0Fjazf6XZmKKwWb zS8c4keVD+6WQ+ZhbED5WZy6bISVNtJCRebdxLOfIuWl8zz7l9nls8ihryUl dgO8td24ZHCOkW8vGLTzaAJE3SOjSWslpPviciRFhELlfKiDyKrbHt411KTz FULEY0BVPKEEcao4gAsbP7PKkU9rDboGDxGF7e5jjPlnekjSpHEU8zKtdx4a SfzyxJD5i/Z/s09yZfPt0tLo+Us8kkqwRJtIQDdJCkQjPlGOKxklVI3KeXJc TlkOpGWN44nmv0u7lpIkkZmiVJiBh4iSbi5Cqp2C9RYiss8bAAHItneWxjjT Y8qW0YeOImKFfPRVICqEZ7+KaRkYIgtnlicKIvLPKmgLJZeXFJse3ikeA2qw xiSeJZSdqmALcLdXjx4Yp5UO0BYnaMNkDNJYGxjuHRzbPYqI4WliSaGMxAbd qpLd3dwG2tsjeNWidvs6h45ndPtEgvPNmklE6XALW4uFO69kuH2gEbgsE7+U PMjjjtoQSzsUAI7sw3NlfzWscllGbJhGu8N5ULoI4DKFDsXWxlBxhwIoZypM ryNDY1UgzalE0ccKo98kcbvHC1rEZoYNu9htRDHNLZhgroHjBLtHEhhJZra3 le4mEgs7e4uH8x40x9naC38zaSGTIijtkUDbDLJdrGm6AFZBBNZn7O0l2lxD biF4rdC8kckNta2ZZVzlyLogRmPAaW2XcxAWSAAL1prc3Sxzx208aXjxucwJ Exk8uOXY0mYosmwhRD/qZbcsSnkSCQu0bzbiHZJaQTo8bTtbLmOIwSJmWNcc 29sb3IBTM2YY0KW+FjWSztIhmSBLCDZK32Vw8Qt7dbiF2jDPho5ZJrpI9wIZ o4RMrm5ZmkjgmImt5NNjkmL+RdRfaTMhuWuQ84bcHLlHRQzMruzfYowsyNuu ACTe9xfbgk4Iu/tLRsrTTJNHDvFurBhtaNrwxnIWaS4dSJFeVmgrp5piitP3 FxL/AKOqac2yWOTKwR21uZDhX8x7a2dzx5iQyvGI4wrTyQ7nmtoIrqQ3oe0W CSV1klSVpp3jlyzPG87zIsyAtzHezDf5Q81I4fKe1t7dfItbe4iKxWUu/wAl FmiWVUaVNjmGK3kUu6lWUy3TyMRIsdwASG5mASeK6jkIRrq0ubpSN7QRgpcY I3q/yzX7gq/yyIoObpxIeUtkVjht5I440SJIkjaKcM8kEsVvFhlIKvaXDbRI XMqzwlvNZZ5BAJnTz5I5lvnikeS5SONZ1kX7XcSumSgIaXT3dtjeWke3bNHC 5eOPzWtftR8iLzImlWfUNgQNLFY2/mytztaTz4rmYHzFKkR7jvnBABfNtohd 2nkFrfZHaSWmzy3eNbhldCu1Et/tqXFwd5KFIASIxHGksjwFTHFZRRtPEk9t bRTrISIWkkt0kaOTLqA8JVkKyO0aWdt8/mPukid01SK42TxXJu7RY5btWaZC LkvEkiBh5rbbS5klSNsyXE+3Z5iArTgC21hFIojSCC3FxH9nmZ0iCP8AZ0Ky IjDfGh1CfzY1BaVJZfLZERnALkaEXSTWdnPEDdr9jjAhlkDiWOCzxglGWKI2 0iO0gyd6uxS7jZo7A2kT2hijjnskexXyi7me4ULcFUYMAXL28M0UcbAeat4h +RPLijBZL9oeznlkgT7QthdyLC0PkoxNuxBO9WSGzguIwWLhGW7cynEZljZr w2oma2ghuxFKWtprcqkNxPFNhAzFljhRLXynU5RVtURyiyXKxgBZh0WG3dvL uX+yRzTx3TTFrieWG4aT5HV5GYWMz71YSSGaJI96CJzJbERTWtwscemrE8Uh aV40S3iSYFdskY8vY1xexTHOUAhSYRGN4oQSMsMpS0v5Le32CO3mKsxECwIY 7nB2kmOzhS4ZI8MJjbEknbHDJaW/+lafbCx/s5Hu7GOKLzdwglaW5RI1B2sP LW6Adl2SmW3mK/OJZowCmkE0Nr9mt4pLWdLIRQptKTRqstrBFgRZkR/tR+0u qiTEiGNTvNwKuLMkutRtBawYN27R2M0iupjmmYQwqwyitPFb21uFDFFtzvUS I8hjr2kP2i1slltp1hu4rVPstudibDEJp1IjH7tXe6I+TLlb9EjAKyW7yQJN rFvFHJextJf3AtJL+CUtEbi5Hk3AXrGXV55GWIEgo15KnlrLCVAI7dvLgguW lgmxFHM11eR4SXzHgW4mfcqfNJ5cUe1mTzIb2J5CmZneSAXMRiihEgl2BFhS Z0kRFk+xRkhk3qUWyL71QM1xJajyiURajW58+AX5aez+0RT3gMUvlLB5j27K XlkHMxxaxeawOGkW4KjYs05M237Qhlg+3GUACCP7N5dxHukAjdlPlLBbmeMF 1Jg86BpCmAlsAFyUs9MldrfbpcNorG0RljUxLJJvjEiyHa0ieTtYMyiK9fmW W4VrixL8t9Kt99hdo7u7S8LfKZGSEC+KlMn96ftJJADRxbSUZjaIsdvHDBdB 9OEcaQvCIZoyIxbwxxSzxSbWc/I7TW9wsb7QTbyGY/upJ2ji8qWCKODyJYRF aKkc+824UuZAk4k3OIWEHnb2UMLSzgUtmT5QCSGC7uBaxpFHJehFszI6ofIk aO289Wh+VA4kuorYR8AqkcchjiikEpDMtuIdRjFpbWqvBeLPPGzpbJFcoIjy EkkEdpDBsDKrMLxvnDTxpJG32OWV3uvPlVMLdJe4NyVha7uZFbrG8iwiB5Is bTcPE0vIdXJbdy1zDNLY2t9debbSupYj7W0UsVw02GOVhSVkZmLFRE1wWHnB bkAk05VheziawkaOJ7dJ7bc0sjmFdzwu3G91gmS0MUiqHlvWjHyRxokdsbiW Cxaaf7XdPFEY/ImDPc3bPLAjLOx8vzBLJcFGQKdwmmYzeUrTyT3c05l1K0N3 PczIb2xaS1LeSwk8yAmMfenae6jPyj71xkBbYAXBLHYqk5M0i6Orva/2lENm 62RlsjICw2TBLSCUb13AS36qiBmFAEci/aLK5hiigmQxRDyGk2wFEs42QOXY ssMquhU4VwlgjOUdJJoi4b7fa6mFlgmhuYpppZJo9iSeZFJtmdQu+NpBHcXz KVb5YLRUORGBJvYFZLp5NMlCJNPHFcrELZZZIBK0W/7piaKG2QPtSOQrgqbW SZo2X7TEVuYoBKN7SWok+zgyFbeS6t1cszQRpAyWrrwYxChyIzc7ACw0nnap Ook+zm4uyDPI/lPGxubO5meVEdcSQogaZlKMGkKqBHb7kjsnEptbxLK7lj2W d0VEUYkmxJuCR7djLOkN00MbAIoCQGMbp7fyy4kIQy3N7G9s7zPJe3McgEsc rRPPcSKj7djQXh8uECMqbuZQfOCmUIhN6RqdtHvV0iujNcC4w0DySzq6gjzU iWESzqAPNlkYhW86CWIAjh82K1tynkXz2kR2ONn2eZYoltfkY/KYZmth5m51 byLO4f5UlKCT7KocwlJJo0e8SaRdzyl5lt7ZkY7Glacm7Yu21T+8jJQtCLVI /wB7HBu1PyHNtFsvpr3Y4EkL5lhn27vMVrtY5HC4PlhCC812RJJBuhurZvtU guI3kQTSupmR7eKG4zJuYHeLi7luJY3LqJIVVmWONpFACa5m8lpZ7qO3Quxl nmUzRRq0No07HIPmJG1xKY8uftH2iTLyeaVuRDMjo9vHptvMjxPH85kW1kC4 si8mD8kMMbSmYghktWwAkzS3MdmlvCsMUb/Yh/oluJrJjNIsDSw+SsQ2hhM8 UhuVAj5dZJNpkAW1ktpGea1uvJtLiSZ4misYSrwSPLMIZIIpWO0CQwR26gHa tvDc/LIoWSYAjV7dbUzFPs9l5UQM1wpBjtnihhQzKrAS7bFTuKPkSaiqIFdg asOt4kq+dFi5aUAw3khcPMrPBHBIUY+YxaLVHk2qRcCVgFEkyBI7JlSazuFv 5LjyntWN5tZZiomvpwxD8oJFRbvMzFBJ5RceUcxx6fboi2EVvL5LXvkxRT25 WEqhlXZBbJKwcMQ3mISGwZIp5SGlR7cAD9jmigM3ntBJmd/tGI55UkWWeZ5J E67rKGzExiBf98DyzSRzSHciLcX9rJKWe4ubyK4RVNyI2a8cTRhTGjyvbSI4 6oEhjDOYLhKjibNssySwafHJaSS/abePyxbq9yDGsJdUCRrJIs6B8Ni8t87B GtxEJD9pZoltp4lfMF1BbnMtspiRPIVmAEskdqUtEVlLLPcybmQvHvAJIN1k 9nG11Ijo/npdq6lrm4KySmZgWYMEEdvO7M+wv5e5mt2hlijtYf3UFlDbT28n 7i3ghhO54LqNflUSY2wyJ9oihZmRMXN9LJyYlC2I9Q+z3SapfHyfJu11C7MM e2GV1ljvpyhDc586GBWZikhS2K+ZuV7evbWbwQWOlZ/0mKKKyMToyQyGV5YS BxHvkZUmjEZKFTdyFvLkhuJWAJI5lmltJ8WkaT3DPAJo2WPBgQv8rAlbV8R7 hiMx2duucfaB5kcc2yz+0PczxwtaQCS5vh5ghVy0jTOhOJMpPJO43u2+9ht+ VZ0kktJZ2Nu9hcSFJ7hBaTLJEfOcyRypsyoVC7wWltENu1Vtp2aKPY6KWphV 4pIbmOSAPGzlbcKssZWdYI5I3G5YPslojAu4OyaRXcJO8sYAC9W3mjv7iKS1 Fq4kmbzmklgMc015IhlblnjN1bR7JQA9z5WciNlaO4tp4IJ9OZYDNaRSWgWK KWWRcvPaTNEjHe6gSw28Y3fvCluWdRDJGkkQuYyjASRXuy3jUXUztJ5zSXEg gMmzzHLM7yOV/efaLORECP5G2NZUsIglo2Da7JLG28hZHicLcJYhdhZWmaWK Gfjd5n2mRkCxmYyAElzNDPcSeXfxp5txNdrN9qErLDAZsS27YYkAi7xMVLjb LMyvLNAiksjLK8yQ2jOlxcPFauVUqVgtzJAyucIh86COWIMohgtJU3Nl2Yit obhINKhkjmtJnS0h8+YSwzAM1rEokC/vElmwScrJ5en+YgQLCkRCBq4hMskd ymqvBAJrpI33/a7lJipKGPciNLdIVUKxlQuv+q/0UAHtVld7SVJLmNnlhleP cbpnZf8ASiWCLicxmzhCsFMskke/az3EJr3cijTbue6hj3pbzsUy0dtvaKGW VY3Ulki2G1tF2sFdAixk/aGeGT7Qhg/tDUot1rdRfaLhrkLJL5bv9tm3Hb5X HmWYjjwEeWWM4TfcQsObi0ZT5+NUtMQxNJMCXu44nmmEshLErFeCWZt2EBMJ fdFIjwgFy5kmt9XupJTJc3dtcSrIIQUmuFhnK/IFTcBPeSSE7SfLkmt2jYm2 cJXjEym08mTTb+4KMsQKHyLq4kkS2VI3ztWKQ2LR+WBhombHlxu/2aSCGJdS sbS3tv8AUyollbZeBB/p6WyOy4MsLfLe/MQ3lebG24zyM717CVPItrmBvOjl iS8mXyFlmuhvEEaeSh2+WdyR+WhwBJ9mUoBdS0ASQSFjFcWxu2JQNHNMJJJH QSfu/mCea4lub6KZvuy4iWZFQvAiENpFMIY5dOkltpXgtPs0SQhpkNygaNQh KJFN9plnzvAR3ttpRRA8sYht5Vhjurr7TDJstpZTGboXi+aIjsdcvIst1Jf3 G3PmMLZCnlFVdZLOSG6uYLyQx3Jkd/tTwAXJDTXwS4ZTGnlyy7bm3QqE/eCI dYCqXABH9pe4g8ySb7ZNNFvk2Iw+0T3L4KrE0iN+9gW/eOP5P+PgshRrhI45 HjaV3jM1pbMzy7Li3C7w8C4heJmCKwihl84SgKu26UKIUhEtuaak0g02Fb2O GS5S0tVeGUvGjGMWIdJPuu6zQxzoqFdxtZSSyxQSmvC8MtlCbWytHRLKCX7I 0QVVj2JOsEnmcGJ7gbyGZSILSWXLec8jgEjXCRRGW6i+y29vvEiYWRrNAtu0 0Kuykbo7aG0tNkqjzJbmRWLDIMl0lzbPcrMloJ4XuVlmFs8gEqrObuUB/vgx 2ixqHb9+Y8u/N1GTeyFTA8l29oiTx3f2ld7ESQXMExE2Qksm67nLOCI4rib5 n8l4xG8FnDHNayPBZ2ccUw82W1H7m1W7hjQeVINwVZrS4lMbq+7zBGWaafcQ CSaJUmuYhbySwyvdswjja8WVGmgeJhuY+e7TzREFhumSC03iOKVmIk8Nm6Xs 0t3Etq8UrXMjCVtkK/apdsvAcmW7jYM+Y5Z1gKho5NsMlqj3t/GivPaS3GoJ FOsTMZbSW5ntQ/7zbh5Io1t0Jddyz73dlk8nzK+nr9tt7BxFAxvfJt4leTdC DcWq2yRxtuDLGuxYpMAyOrTAF3tPNABJBbTQC3082scEhuIrLy42KxxzLHdR GNY3O1x512YVXcyTm2uGkYKZHqP7Tv077VA08sTaf5kbSS+aZcD7ZJukYOpb YNQhLOnzySTAAxl4oBZttqbv7TPao0UU0l5MMNC0sUIe5dVIDt5ccN02Hdlu JrRV+fcZJBarNeiynSSzmld7Wa2ttzNBArx2rYOw+c8cDvaoxG1380RjzQGu ACSZHS9uI0eeKVcW6XbMyYD3jTB2lkV5I2AXUJWLbxD5UW8meHIr3HlXSSn9 xEk0U8kay71RI5Le0ucoF+dV+zo8LxxviKFVUF3ZfPjkkW6tDLLDHuu7cNFp sxZIN8tuk7qSCR5SpFCBghYIhb5KSO00GhGZjqQY3MkYlvTNPM1uYcjzXied 8hDEWlhuLmVM+YqwwBGQQGSEANzTahbTz2l35j6ms6RTSqJpHku0jEeN6rHc FXndQDtik+1FCr7hbU7Wac2toy3MEFxJKPs88glSKXMURkk8sFWihC29u6nj yYg8wWItaoI7EwpZW09tHJbRfYoRN5Djz7OFUe5BUsBhzDbyMo2KHuHeclQL djYktpnt5bKe1jtspLaXAtmMEVtxdyTbEJCgJNctEhDbXS0udzpEZTQBG8qW /nX6N9gEMs0482BZHglg8kxNKMhEkiiCBYQVVZrhYgdkksMUjWq2sk9kqSW3 2a43eTabpprcQ3ktuFtVKDJCyBY5sZaa4dmDMGktxr6ETWuo3bRyW8bvqEip eBzbxiZ8skoI8whY5II3xk3NxLJ5imSJ5I1Fxp8QVYM3dhsiVfJESwXaLcTB lGBCVW8e6PmDakcVlIpLLIQ4AS+VLBLJP5EsIiu2eSDebcKXEZeAx7nELCDy disGFpZzsFzJ8slzPd2YuZxLHA1lcD7zIsdpJHGoAZk6iGdQZBsIkMVikcYR 41WOWG1j22qW091FaxGBYsz+dJCvlRyxhWCSq0kogshIFyR9oBVY0jjjkaS7 kuJ41vY5tRRP3txbxpLcMrGV/NiRXQMJbq5aWLmPAgtmwzyRBwANtNazSWVj axx/Z3On2iysbeSSQTQ+RAHQjBE1qS7qQHlkuPL2qsk6DyQyGNcxyWEiTsst yABNaxySTp+52ABzFHayH92VSG2txtkEqwEMENyZIViu40dzGojUTMkP2aFJ Ibdvu58iSK2SQjEztEw83zEa2IpZg8fmeWvmOZGihnMMZMa293KsTbgY0G2w gjkRmjWKKSbhfmoAI5LmO7inEMiakiRTCS5LyS5iuLRIvMijJcl7kzPLGpI3 zOcyTQFFjVYIYhFDFOiQ7FUCSKZnTbcQ2xnO7a2Lfzrghm8kxptLmKWJYY5R C+lOtxJJPbC3uJLgqgdvKlsreSJjCpCqdpDrEAUT7CgUoscs9aDzXNrq/n3g jluYdTMrqI38lriKe6uZSrOP3KeZCIkkLFBG9w+AxnCAFd5VN1++uJPPjcxm PzGLfaY4rohxK6jY8ce2R32oY570yy42eWI2R/sBjis/tKSWjxRQWwaJZQIL eb5FQgBZpr19o/duIriaIDfJHGhBbXFvYWNpZzbx9kS3tysAkhkLQIxlkTYD tBmQKg5kW+AKPI1xFNIstojSXv8Apa2G+S+Zred3leEajLIVMisweUpaMTKr 7z5cBBEcU0hABpIbqSeSIxzxzXGVlvAGgvZGvJZ5DN5aGIRAJC0s3yhhYyRx syAsslg7xy2VzbpOsJle8ijkVpridw0NxE8rKwDSOGtyyEnzJJoUDA7PskZj uUCC9mksZrdGtri8gDqtoVjBnkEKghjHLCqR7AwP2Wcq0SQxGACq11HcPYSW skt6JXgVmjmty8UwhihHKyTxLDcQxKNojkS3AEb/AGiMgEdhbeVZW1iqzlI4 khlVIvMW52WY3JHtIXazX8qZXb5zS2/lvvkknBb3CMyXAi+0uv2a42WYXMj2 8SwkR7Fzte5uZbeOSLdtJUxmNLYB7Gmx7LyxzHtCS2ioIEykLRiCaaSJFQpu E17I8RG5ZN6oh2EQ3FO1EMulafbXckkdqbe3EsEqB90P2JZJi5JJkRVQTkRk Oq/ZkyG8r7MASSt5ETfapYLmO28uKb935sUiqpmVmijUhreWSEPkKjLaWMYH DoGkAms70AyXbXlo7qWCGa5zC8YR8Z3SF7+5mcpmSN5oUQN5aGQDzX0JlusS JeB4bplEewm9e2aRnYkKqgXiSyS7yyAWW1vLEEaSHlLEWtbS3kWOJHaK3ijb c6RyT2kQWCRlIJeW7donBEmIInZpZnaQAjeGcWs1tDbQT7opoAkRl/0jyYoY oI/NUKWVoUiAkAHm/wBpGKNU8xmSwwSS8KWsE8y+a62jpCriVboW8EOFcKq5 h+yyGMbYlB8liq3Iiij+yq8q2zpJcQtcJEscO54HEcECYAZDmBWS3MfDmcXF sWWd4vKaMXLxRT3sc217fGpfaQjMyvMsVwG8lZMuywwWzjzXfdKkxbzUDzQg EkU0saQT2wkuo0dL6FjHNLO5VmKENIGLTyXE0DKdqhVuI5PJ2XE8Yjbyvsoh h8ia38qWziI3z28jJFM4O58oIVuLWILI5ZXghiUsBBODI9m2nO9qlvIBYvKE jjlVAogX7NCySMNiusn9pS+Z+7IKvcMmEEZEZVdFmv5PLV4hHcQq0O+3Rftb TbV24Ajjt5WWLDxxRWsAbc5MYBHdC38qdrmC+EQ8+aZmhJfaq+TMScJIWnNu 4f7kjfZJWbyI55DFJd7mu7g3lrJeXcSPvt5UWRpZEuJJikiIqmRGvbmG1wgM cnlythSqNHHFD9oiW3ntp5Xk8y3ktpD5kSyOod0kCBSPKH9l25jCqVYMIU80 IRYs7mWa/s7uJvtbf2hHKPtMqMLi5M7XCiJwApYz7rUOuIwPtEqKwebygCNy ti7rtk8vfK32gXrO8yRL9sluAwKtI7NbQMrgqzq2WMCS2wjjuPNezuFXyHc2 jQ28U+xlkdTDcMSp2QtGgmtF3KNjRWfmZEKeTJHZxrFpUMNtNG6RW8KoSGAd /sV/5TOhCrFEXEkjb12yQzRvIFzKZLEhhklJuLmOaOdArSTW4lxb+Qlz5nzg GYIY/tkowS7NCNkbXEyAAkkCW108kEE62q3beXG0K4lgSWS2hhmWQKyqkFpM WDlcRxzq8o+0t5cccdz5o0+aaRpChUpMHka42wPFIzceYqSXV9cA5/etl41E U0axvJZRXD39iFWeK+aWyKJczhriIefMH8xsZ4vJ7ZmJ8wGQFjH+6e3ip2Yh m0uxi8ySHS5kgiRY0DGSM+VbogWI798he6meNCxIE8SOrtcmgCRSl1aktb/a oPKinktZWWIPHLFDvicCTZH5kUFtMn8EEZuCuWtl2jN9q8xLiWC5meJJrhrC P/SZPtW0TzRxlThpUmjjRSvzm7RiUEAityXzb+CWY+R5k8V3cGWDZIu64cW8 pL/IjsI/tsjOHjVmgJwIIIibBu/MuBdmfZZ+bDfRTucPCv2pG3q8yBdyYiVP NG5/7RaeQqssgABXn8pvtSXPkP5MVw0/k7/IRZNmHi2bnWF440QIrBvsdrK6 r+9GDUEMVvfm5fZ5PnQ3VxG0MZIitWhkjZEVY4mwqW0a4lERuJGy/nQM8lrb TMdPsUtY4rmJLcQ28bGAQyySLEXGSzIIWu3iyVZ1ni8wbma5ALCa2iuLGZhJ b25S2dtkaQukClrqXaqDhPJaS6YRszRyTWiJtMQJAJLxJ7m/mjM+y+aW7uI5 mhlVYZDPMPtbLuYwQoLpcb8GGSKc5Do8c9eWa3iibULe18qCLy7mBruQxi3U qVt97J95YbQWpDKzyI9yVX97MjxVwEi0tRdwQXDwWltcXsRhWUAQW0iRBcB1 Zn8hGUsXAjzMFaGaeNLl07Ws2pSO8gu4nmhuLhLlUMTRTWke2KV8qg+0y3DZ kIdRIlxIGkWMsAV7+AQ299ZtFaIyW9zaPFOscKIiBY1J6CNGvbudzjfGJYI1 VlSLzV0JybnUhLJHJj7bc3byl5IGiUy3CGVFkGI5Qy3jpG5Hk5jk3YW6do2/ 4l94Uk+3QRmV4Y4v9TNtQW8SlEk5hWO3ia5VnZWRkt2mLBIZJY7aAwzWrvFH JLG8TkMslokRSYWwJdvmRIYbW6VSwaaMFp+pk8gAj2/aNLgaeKC2hkitTIJp N1tHutoxETvb/UxPPp3mBlO8LGCJDA8ksk+6UyyzWsjuUKvDeIqkmSTzRFIW VwqJ9gnlLMzhJpSsxfbcM0djKkEtpqMDee6/ZpmlaBYpyd0c1ujopRUhRIri ba7BPLjCbgiW1wSG18r7PZrcQWzrKYFn373t2i2xLJIX2OzWtvM85bKMjTIu xEtmWIAsRyf6fBJPJ9ojnlfM6v8AZ5Gt0ntrwvG5feqmH7Oyhm3q89zLLIgV nNe3Fxc2aRmD7RfL9mtjZTwhY2nysjQSqoMYUzi2jbAXy0S0hYp5jmI863uL OS/ntfsen3XlXFzGJCgETGVihk4dYUtzbWxCoGAnUxBlm2XFhJpU1GE6rc+Y 0F3D9rJCblkiM1xfSAoQRJEZb0ZQAopgKK7SxyoAVwbC4WGSWfzrVtkjzTzR y77VJQS5dyN6y3F4TmUFfPtv3iIm5IJI5LmJ7WaaGRbyN4HETF3ZJwt5dCNW lJLztcExo212R45InDjPnxwRJHaxw6kv2ceVYfb4jOsRMEcUVtKu8gMOggYs U2yXEqB0SK4aSS3kuZXZ5YZJbwOr3oty8LST7YryePCkGOdrhLa33JuZXdgw UG3iUAjtjbxWqiOe+ktIokg8+OYgiKCIyyyQupI8wGyBVi21pI0jjdobZ/MB 5UgP2jyLSS484XYtt7xoslk4Zk3bRJHBA8jhU3qqfZkiYmaSRpII2vHs7UTW l0ZX8q3dQvzpIsloC3lgqsUk0phcxkCOK0jVHcmBmrzzzXOlS3MEsji8tysT MxmM7TWXlwoFGTJL5s16jFdm+aV5NrCKVEAJLhHure4Z7Pcy7mliiDGVrh7W Hz4OCZGZ7iW0t5OVk2jG52kuHBfRJeS3cSLukuftMSXdzOsJd52kkmmJQbdq w3Nm8kqA7kgKrvgLuthre31TUjaW0sFzFLK9nbzoSAsD39va7wisgaMxx7DJ Ey7hc+SgEcJEdcXP2q1le4adxdxGaZJpdxTzorm9d5jGF2LsMa4jI3xS3Xlo JHlRACxst9Y1TzVs5wuo3fm7ZgUGy9ud5i3Rn5GeJ7JXlG7ZHcSIxYmGKq9t c+darfStPI5iS/unhl8iSRjEdRk3hQpjaWS2dFdBu2RQsCqIv2iSdAxlS+vb tSyF7uSeWOFylxJtuJdpyqODPJbhGxHHJdSAEGCaZ43R57WZ5bPzJFimSW2i DAJPJFCWgiRSZEw8llYtGGXbGGCjLyGEAkaKaAqJPLa4V4PPkSA24SSO2vlj aIlR5ZDLIN7cWxiQlVCtBB7f4BE3/CEaY80kbmZHmQxIUiEbuzosSkkrEFZQ gOCECgqpyo8MupoLb7Xc/aYJLdYjdF7cRMhii82zj28qsihnu2IYCKRVtoQs QlWIe5+A4VtvCMEAMhljuLpLgvIz5nFxIJtrMSzJ5m/aWJYrt3c5oA6Siiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAO P1v4c6Xrc8U73+q280PlmKWK53uhRHRW3ShzuAckMeVbLqVZ3Z6+ifCzRNC1 GC+gur6SW3laWFWMUSRliWfasUaAbjtBI5KxrHny8oe4ooAjghW2t4oEMhSN AimSRnYgDHLMSWPuSSe9SUUUAFFFFABRRRQAUUUUAFcvrXgWw1vVjqUt7fQ3 H7po/LaNhFLFIrpKodGww2lQPugSS4UGRy3UUUAcGPhL4eVBEkl2sCo8SwkQ sgiLRukWGjOUSSJZADncxcvv3uGkPws0SSUPcXV9c/6kSC4MTiVEZJGR8x5Z ZJI1kfPVy5BXzH3dxRQBwY+E2gsgS4u9SuMo4kaSRFeVpGj812dUDb5EiWJy CNyl8/M7MZI/hV4fjnSbzb4yJKs2RKq/OqRxqRtUbdqo4TbjyvOfy9h2be4o oA4u1+GWi2j2zx3WpE272zpmcYJgWBUyAuMEWybgOGJyclIzHHa/Crw/aRQR Ry32yDyDGvmqApiXarLhRsb5pm3Lg77iRwQ4Rk7iigDh0+FXh9WYmW+bzMiU eaqiQGJISpCqAF8sSIqjAjE8mwJ8u2RPhloodJJLrUppFeKTfJOCxeNcBwdu Vcl52LLg77iR8hwjJ2lFAHD2vwq8P2kUESS3xhh8gCJpV2MIl2hSoXG1g0+9 cYf7TKWBJUqQ/CzRIvs5e6vp5IpTLJJMYmacttEvmfu+fNVI0kIwWVDk5klL 9xRQBw6fC3R18lpdQ1WeWOWGZpZZkLu0fnYbIT5WP2hyXTa24BwRIWci/Crw /wAiWW+njaWKV4ZZVMblPJwuzbtEZ8hQYwAhBAxiOLy+4ooA4eD4V6FAoAu9 VLHBdzdkPI3mwzNIzAA+YzwKS4Ib5iAQFjCCfCrw+rMTLfN5mRKPNVRIDEkJ UhVAC+WJEVRgRieTYE+Xb3FFAHDv8LdHdldtQ1UyLhvMMyM3mLE8aSglPlkV pZpgy4JllZzk4wf8Ks0TdG32q+ynm4yYmGZIoomwDGQq4gTCKAmCyFTGfLru KKAODm+EnhydJlM2pL5qTqXFzlx5zOZG3EEl23opcksywojFlLh7Fz8MtFuJ rqf7VqUc9y8rmaKcK8ZeYz/I23KhZfLdQDgGIH+OXzO0ooA4e6+FXh+7inja W+RZfPA8uVQYRKuxljO35FCLCgUcBIVXG1pBJJdfDLRbt7l5LrUgbh7l3xOM AzrOr4BXGALl9oPCkZGC8hk7SigDh5fhV4fuNouJb6WPyjC0JlVY3Q+VuBRV C/8ALEAYA2DaE2iKHywfCzRDKZ5bq+luW84vM5iy7zM7SuVEezcxZA3y/MkS RkFN6t3FFAHDx/C3R4URYdQ1WPZEsQKzJn5beOBGHyfKy+VHICuMyIjHPloF I/hZokM6Sw3V9G0cqyx4MR2GNI0t8ExknyREuwkk/M4YuJHDdxRQBw9r8LNE tIoIYrq++zw+QBAxiKMka7WQjy+Vky5f182XBUSyByH4W6PBLHMNQ1Vp4vKM c7zI0gZGkkyWKZfdPIZ2DblLonG1QtdxRQBwcfwm0GO0Fql3qSwLbm3RFkRQ im3eBjgIASRK8nOcSM7DG9w0n/CrNE3Rt9qvsp5uMmJhmSKKJsAxkKuIEwig JgshUxny67iigDg5vhJ4cnSZTNqS+ak6lxc5ceczmRtxBJdt6KXJLMsKIxZS 4exc/DLRbia6n+1alHPcvK5minCvGXmM/wAjbcqFl8t1AOAYgf45fM7SigDh 7r4VeH7uKeNpb5Fl88Dy5VBhEq7GWM7fkUIsKBRwEhVcbWkEklz8MtFuJrqf 7VqUc9y8rmaKcK8ZeYz/ACNtyoWXy3UA4BiB/jl8ztKKAOLf4ZaKXd4rrUoC XldPJnCiIuu0bBtwAgS32DohtoSuCGLRr8KvD8UQiglvoYV2BIklUogVbhVU KVIK4uXypBD4y4ctIX7iigDg5vhJ4cnSZTNqS+ak6lxc5ceczmRtxBJdt6KX JLMsKIxZS4exL8MNBuJp3uJLuZJ7172SFymx2aZZijAINyFlwQ2dw2hifLiM faUUAcPB8K9CgUAXeqljgu5uyHkbzYZmkZgAfMZ4FJcEN8xAICxhBPhV4fVm Jlvm8zIlHmqokBiSEqQqgBfLEiKowIxPJsCfLt7iigDhz8KvD8kokuZb66Y+ SJPtEquJhGyPtcbfmV3V3dejvK7MCwQoL8LdHTy2XUNVEyRPEZzMjSvu3NuL lC24TO84Of8AWlW5CRhO4ooA4M/CPwzsMaC7SPYkaxh1ZFRGkZE2spBQNIrl TkO0SM4dt5eT/hVXh/fky3zxtL5ksUsqypODceeyyB1O/cyxKzH5ysMa7sbt 3cUUAcGPhRowQZ1DUnl2PmaTyGdpHaPzJWzFhndIkjfIIdS+4Eu7NIfhXoQW YRXeqwtLvJeO7O8M0pmMm4jJkDiE7ySx+zxAkgMG7iigDh7j4U+G7iCeDbPH DLFJB5cYjCpG7zybFGzhVe43AdA0MJ6pzJdfDDQbt7l3ku1e4e5dmQoCGuFn WUj5OpW4xnuIIQc7Oe0ooA4t/hlopd5I7rUoZGeWTfHOAweRcFyduWcFIGDN k77eN8ly7PHL8KvD8sTRGW+8k+WBEZVZAI1Kou1lIKgLBlWBD/ZoS4chi3cU UAcPJ8LdHkneY6hqu5pWmUmZGMbbJFjZSUJDRmaWRXzuMjl3Ltg1GfhNoLIY jd6ksBRI2gikSJPLDSM6AIg2iRppdxXBAkZEKIxQ95RQBwc3wp0q4SYS6vrL yTJOJJDNHlnmZzI+PL252yyoFxtUSOVUOxcySfC3R5J3lbUNVO+VpSjTIynK SIqkMh3KvnTMQ2fMaVzL5m413FFAHBn4T6K6GOXUtZljZEjkEl0CZEDSNIGb buzI00pds7sSOqsqMVMjfC3R5MPNqGqy3AlluBO0yBxM/nHzAAgUMrTs6YAC Mu5QC0hfuKKAOHm+FXh+W1uLdZb6KOeIQt5UqqwQRNEg3bc/LGVQZJ+VCDkS zebI/wAMtFLu8V1qUBLyunkzhREXXaNg24AQJb7B0Q20JXBDFu0ooA4f/hVe hJB5EF3qttCsXkwxw3ZVbdd/mAxjHyMHWFtw+ZmgQsWLSb5E+GWixOjwXWpQ mN4ni2TgiMxLtiwCpGFCwcHIY2sJfcVJbtKKAOH/AOFVeHxB5AlvjCIvJWKS VZUCB96gq6kNtKwAbs5W2iQ5UMrSD4ZaKs0c8d1qSTxOHjm88O4ImmnXLMpL gSzB8MWDGGItu2nd2lFAHBy/CTw5Lb+R52pLGLeS2jxc5McbhgQrEE52mOPd kkxwRoSU3K1i5+GWi3VxJO91qQd7ia5IE4K75TMWBUqQyfv2wjAr14PmS+Z2 lFAHDy/CvQpmuXe71VpLnzfNkkuzI7+ZFLD8zOCW2xy7V3E7dgxy0m8l+FXh +42+fLfOBEYcCVUGxvKDgBFG3csXlnbj927RjCLGqdxRQBxcXwy0WJ43F1qW UcuMThBkrbqcBVAUYtk2hcCMnMewrGUjsfhV4f0+W0kt5b5WtfswjxKoGIGj dVwFHyl0Z2UYDPKzEFghTuKKAODtPhNoNnb2kEd3qRW2eBlJkQf6kTBcYQBD i4fLJtbcA4Ifc5ktfhV4ftIoIklvjDD5AETSrsYRLtClQuNrBp964w/2mUsC SpXuKKAOLt/hlotvNaz/AGrUpJ7Z4nE0s4Z5Ckwn+dtuWDS+Y7AnBMpP8EXl x2vwq8P2kUEUct9sg8gxr5qgKYl2qy4UbG+aZty4O+4kcEOEZO4ooA4u1+GW i2j2zx3WpE272zpmcYJgWBUyAuMEWybgOGJyclIzHXX4SeHBbwQPNqUscNv9 mXfc8mMiIMNwAILLF5ZYEHy3ZAQgRU7yigDi4vhlosTxuLrUso5cYnCDJW3U 4CqAoxbJtC4EZOY9hWMpHa/Crw/aRQRJLfGGHyAImlXYwiXaFKhcbWDT71xh /tMpYElSvcUUAcPB8K9CgUAXeqljgu5uyHkbzYZmkZgAfMZ4FJcEN8xAICxh CP4VeH450m82+MiSrNkSqvzqkcakbVG3aqOE248rzn8vYdm3uKKAODj+FGjQ xBYdQ1KGRbcwJLD5EbJ+/efcu2IBSGkbAACjCMAHjRlkj+FmiQzpLDdX0bRy rLHgxHYY0jS3wTGSfJES7CST8zhi4kcN3FFAHBxfCbQY4YITd6lJFCiRqski MfL8loZE3bN2JEfDEHOEjClBGgUHwo0YIB/aGpM4Rwrt5DbS7R7iqmLaAY4Y 4dgHl+UCu35mz3lFAHFx/DLRY7hphdaluNxLccThfmkMGckKCx/0dMOxL7iZ N3mBXWvF8JPDkNv9nSbUljNvHauI7ny98KhcxkoAQjkSM6jAdpnY5YIU7yig Dh0+FXh9WYmW+bzMiUeaqiQGJISpCqAF8sSIqjAjE8mwJ8u2RfhhoP2iC4mk u7ieJNnmTlHZ1JiMgYlMkSGJy4/i+03Gf9YcdpRQBxdr8MNBtHtnSS7Z7d7Z 1ZyhJa3WBYifk6hbfGewnmAxv4LP4ZaLYpYpFdakRZPA8e+cEkxNEy7jtywJ hXIPBG0dIoRF2lFAHBr8JPDgt4IHm1KWOG3+zLvueTGREGG4AEFli8ssCD5b sgIQIqWD8MtFkuEuJrrUpZVuGutzTgZlYgl+FG07vOZduNjXErJsJUr2lFAH Dp8KvD4iiillvp4U+zgxSyqySCFYFVWXbgqwt03LjDZyQSkZSSD4ZaLAYn+1 alJKiBDNJODK48zzTl9u7JkMkmc5DybhgxwmPtKKAOHj+FXh9ERDLfMqxLC4 81R5qC3jtsPhRn90jqP7vnyldpIKyQ/DDQYL2G8SS7FxE8DeYpRC/kujorbU GUDJ9z7oDAAARwiPtKKAOHtfhV4ftIoI1lvnWLyAfMlUmYRLsVZDt+dSjTIV PBSZlxtWMRn/AAqrw+8Hk3Et9dK0XkytcSq7zIX8xg7Fcnc7SuefvS7hgxwm PuKKAOLHww0H7Q9w8l28k1wtzcHKL9okBO4yBUAYMJJ1ZTwVndcbVjEcf/Cq 9CaDyZrvVZ1aLyZDJdktKpfe5ZgM7mLXALZ3bbqZQQpUL3FFAHFr8MNBFxBO 8l3K0KbFVymwqTFuGwIFAZYvLIAH7t2jGECKkf8Awqrw+8Hk3Et9dK0Xkytc Sq7zIX8xg7Fcnc7SuefvS7hgxwmPuKKAOPj+HGjx3SXP2m+My3a3rMHRfMmE scrMwVRnc8eWHQ5AxiKER17X4VeH7SKCNZb51i8gHzJVJmES7FWQ7fnUo0yF TwUmZcbVjEfcUUAcPH8KvD6IiPLfSqkSw4klU/ILeO2YD5fl3xRlW24zvJ6p EYxvhXoUnmGW71WRpokgnf7WVeaMbdyMygHbIRIzgEB2mdjlghTuKKAOH/4V Zom6RvtV9l/KzgxKMxxSxLkCMBlxO+UYFMBUCiMeXQ/wt0d2V21DVTIuG8wz IzeYsTxpKCU+WRWlmmDLgmWVnOTjHcUUAcOnwq8Pw+SsEt9DFDLDJHEkq7UE XnbFXK5Ti4f5lIfcA+7zNzsJ8LdHiZmi1DVY2fJOyZAA3lJGpQbMR7TGkihN qh0jOMRRqncUUAcHL8JtBeGeJLvUofNR4w0ciApGYVt1TlDuCQq8al9xAlkO dzbhJN8KvD9xLIZJb7yX80eSsqqqCRo96oQu5FMUSQbVIAiBUAElj3FFAHDj 4WaIZTPLdX0ty3nF5nMWXeZnaVyoj2bmLIG+X5kiSMgpvViP4W6PCiLDqGqx 7IliBWZM/LbxwIw+T5WXyo5AVxmREY58tAvcUUAcP/wqzRN0ZF1fBYvNESEx MER4ooQg3RnKqkEajOdw3K5dXYGOX4TaC8M8SXepQ+ajxho5EBSMwrbqnKHc EhV41L7iBLIc7m3DvKKAOLT4YaDFepdRSXcbrexXoUFCu6J90aDKHaiqEjUD GxE2qV3yb47X4W6PZxQRw6hqoFv5BgJmQlGiXCnOz5vmETkNlSYIVxsjVB3F FAHBx/CbQYrQWsV3qUcH2c25RZEwV+zvADjZhSBNPJ8uMyTOzbuAJH+FmiMy ut1fRuuDvjMSnesTxROMR/K0fmSMm3G0lQBsjjVO4ooA4dPhZokTMYrq+RWy CmYmBQRJDGhzGdyxom1d2ch5Fcusjhh/hbo7srtqGqmRcN5hmRm8xYnjSUEp 8sitLNMGXBMsrOcnGO4ooA4OX4TaC8M8SXepQ+ajxho5EBSMwrbqnKHcEhV4 1L7iBLIc7m3CS4+FmiXC3CC6vo4Z937kGJ40JlhkG1XjYbQLeCMIcoEjA25J J7iigDh5vhV4fuJZGllviknml0EqgkyNH5rbwu/c8cSRM27LIWyS7u7H/CrN E3SN9qvsv5WcGJRmOKWJcgRgMuJ3yjApgKgURjy67iigDh3+Fujuyu2oaqZF w3mGZGbzFieNJQSnyyK0s0wZcEyys5ycYjl+E2gvDPEl3qUPmo8YaORAUjMK 26pyh3BIVeNS+4gSyHO5tw7yigDi0+GGgxXqXUUl3G63sV6FBQruifdGgyh2 oqhI1AxsRNqld8m+unwm0FbJLNrvUpYESJUSWRHH7tNo3ZT5wWEblX3KTBCu NkaoO8ooA4uP4ZaLHcNMLrUtxuJbjicL80hgzkhQWP8Ao6YdiX3EybvMCute L4S+Hobf7OJLtohbx2yo4hYKiBTjBjwQZY0mIbIMgY4xJIr95RQBw7/C3R3Z XbUNVMi4bzDMjN5ixPGkoJT5ZFaWaYMuCZZWc5OMRn4R+GdhjQXaR7EjWMOr IqI0jIm1lIKBpFcqch2iRnDtvL95RQBxY+GekJcPcR6jrKzvcLcvIb0uzyIS Yi5YEyCM+WUV9wHlLx80m+OH4V6FbfZ/s13qsX2aUzQYuy2xvl2j5gdyr5Vt tVtyj7NFwfn39xRQBwb/AAk8ONZPZ+dqX2dklQRtc7wFkTZj5gchVS32A52m 2iI5DFrB+GmlNcJcG/1IzLcNd72eNv35IYSYKEKVlDyqFwoaaUY2SMh7SigD g4vhNoMEMEUF3qUSQIgjCSJ8jJC0Ubr8nyOrSSygrj97IznPAEkPws0S3lje K6vo/L8oKIjFGAitJIyLtjBVWklaQ7cbXVChTy029xRQBwY+FGjBAP7Q1JnC OFdvIbaXaPcVUxbQDHDHDsA8vygV2/M2SX4TaDLDPbtd6kbeZHjMJkRkWMwr CiAFDgRrHGynqWjjZy5RNveUUAcO3wt0d7qS4bUNVDyypNL5cyR72EqzSNlE BDSSJGzOuGHloqFEULUZ+FGjFDjUNSSXYmJo/IV1kRpPLlXEWFdEleNMABFC bQCiMveUUAcPH8LNEhnSWG6vo2jlWWPBiOwxpGlvgmMk+SIl2Ekn5nDFxI4a OL4TaDHDBCbvUpIoUSNVkkRj5fktDIm7ZuxIj4Yg5wkYUoI0C95RQBwY+FGj BAP7Q1JnCOFdvIbaXaPcVUxbQDHDHDsA8vygV2/M2SX4TaDLDPbtd6kbeZHj MJkRkWMwrCiAFDgRrHGynqWjjZy5RNveUUAcO3wt0d7qS4bUNVDyypNL5cyR 72EqzSNlEBDSSJGzOuGHloqFEULUZ+FGjFDjUNSSXYmJo/IV1kRpPLlXEWFd EleNMABFCbQCiMveUUAcPH8LNEhnSWG6vo2jlWWPBiOwxpGlvgmMk+SIl2Ek n5nDFxI4aOL4TaDHDBCbvUpIoUSNVkkRj5fktDIm7ZuxIj4Yg5wkYUoI0C95 RQBwY+FGjBAP7Q1JnCOFdvIbaXaPcVUxbQDHDHDsA8vygV2/M2ZH+FmiSecG ur5o5pZpZI3MTq5k8k/NujO/a1tE+WyWYHzC4Zge4ooA4c/C3R2lEr6hqrSf uQZBMiyMsbJIw8xUDjfLGsrEENv3MpUu+6OX4UaNPb+U+oaln7PJAsg8gFd4 ZWZQIsKTE/k4ACiNIwBmNCveUUAcPN8KvD9xLIZJb7yX80eSsqqqCRo96oQu 5FMUSQbVIAiBUAEljJB8NNKhu4rpr/UpJUuBduS8aebP9o+0GR9iLkswVSPu lUj4zGjL2lFAHB2nwm0Gzt7SCO71IrbPAykyIP8AUiYLjCAIcXD5ZNrbgHBD 7nMlv8LNEtmQrdXzKPswZHMREiQxLDsf938yui7W9mkVSqySBu4ooA4eH4W6 PBLHMNQ1Vp4vKMc7zI0gZGkkyWKZfdPIZ2DblLonG1QtFv8ACzRLZkeO6vt8 f2YxOTESj28SxROP3fLDYjDOcEMAAkkiv3FFAHBxfCbQYIYIoLvUokgRBGEk T5GSFoo3X5PkdWkllBXH72RnOeAJI/hV4fhdPIlvoYo4lhjjhlWPYi3Ec4Cu qhxholHDd3b/AFju7dxRQBw4+FmiFYVmur6dU2CSOQxGOZFlEuxoxGE2kpCh 2gYSCJAQoIInwt0dfJ36hqsvkywzKZZkZy0fnEtvKbtzvczOXB3BmBQptXHc UUAcPbfCzRLPb9mur6AJKk8awmKNUlXLbgqxgHMnlyFSCpaGEY2Rqgji+Evh 6G3+ziS7aIW8dsqOIWCogU4wY8EGWNJiGyDIGOMSSK/eUUAcO/wt0d2V21DV TIuG8wzIzeYsTxpKCU+WRWlmmDLgmWVnOTjAvws0SLyzBdX1u0cTxK0BijIB 3MMYj+XbK7zKFwBIVOMRxqncUUAcPH8LNEhnSWG6vo2jlWWPBiOwxpGlvgmM k+SIl2Ekn5nDFxI4aN/hNoP2J7SK71KCHZLHEsUiAQxyJ5exRswQqGYAsGOb iZsl33V3lFAHDzfCzRJftBS6voJJZRLHJCYlaAruEXl/u+PKV5EjJyVVxg5j iKE3ws0SWWR0ur6Ld5vlqpiZYTI0e7YHjIC+XFHBs+55QK7fmYnuKKAOHb4V eH28xPNvlgliSF4UlVQyLtVQWC7+IV8j73+reT+KR2Y/4VZom6RvtV9l/Kzg xKMxxSxLkCMBlxO+UYFMBUCiMeXXcUUAcO/wt0d2V21DVTIuG8wzIzeYsTxp KCU+WRWlmmDLgmWVnOTjAPhV4fVYYllvvskWxVs2lV4PKWUSmLy2UqFZki3k AM3lAlizOX7iigDh4fhXoUX2fN3qsnkym4+e7J3znbumbjmY4f8Ae/fXzTtZ dkXlxn4TaDIhWe71K4yiLunkSRm2tJIdxZD5gaaUzMr7lZ1TI2qFrvKKAOLH wz0hLh7iPUdZWd7hbl5Del2eRCTEXLAmQRnyyivuA8pePmk39Joej2/h/Q7L SLR55LeziWKNp5TI5A9Sf5DAHQAAADQooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoorx+ybUfiV 8RfFVn/wlGuaVpGhSpbQW2nSrbu0hyrszrncu6FyA2T84xt5BAPYKK8/+Fni G81Gz1rQNV1H7fqXh/UJLFrhoyrzQqSscjnJBYlHHUn5RnJOT0nifxXpvhK3 sLjVDIsF7ex2SyLtCxM4J3uWIAQBSSecelAG5RXD6J8VNC13xRBoEVpqtrcX cTT2U13aGKO7jAJDx87trKrMCQAQp78VH4i+Lnhnwxf6vYaibsXemvAhhjRS 1wZU3jyxu5Cr94ttA4HJIBAO8orzdF8Laj8bbW7ii1W51+PShP8ANIFgs42B UF43YSJIQ4Gzbj94GKgksLEnxf8AD/8AZ2oXtlZ6rqUdhdyW84sLdZ9qIMmc srbVhPO1mI3YOBhTgA9AorDh8YaBP4TPihNSjGihGf7U6MgwrFD8rANncMAY yTjGcisvwx8RdO8T3kNrHpOuafJcxefam/sGRLiMDJdHXcu0ZTkkD51AyTQB 2FFefv8AF7QjeXS2mma5f6baSmK41eysTNZx7QC7Fwc7VBySAeBkZBBOxrvj /QtC0PTtVkknu11Ty/7PtbSItPd78EbIzg9GBOcdQOpAIB1FFYfhrxPD4lt5 3XTtS0yeBwHtNTgEM+0j5X2ZJ2EhgD3KMO1R+K/GOl+D7O3lv/PnuLqUQ2tl aJ5k9w5IGETIzjIzz3A6kAgHQUVw9z8RkHhLUtZj0HXLaay4ltbqyUTwoVO2 4aEyKWhyCMhhnY/QKSMv4WfEG+8ReGIf7Z0/WZbuG3muJtTOn4t5wshAWMxj 53CkDaq5JVup6gHplFef6N8YvC2u6joun2Qvnu9V37YRAHa32lgPN2E7c7SR jOFwzbVOasap8UNLsdcu9IsNI1zXLiy2i6bR7P7QkDnPyMdww3Bz+IzkEAA7 iisOHxhoE/hM+KE1KMaKEZ/tToyDCsUPysA2dwwBjJOMZyK5/RPixousapp9 hPpus6QdSTdYT6paiGK6PBCxuGIJIYY7HIGckAgHeUV4/wCJ/ibqOk/FzTtK tLfXLjTUikW602HS1L3TBXxJCWw7ru4JG1f3RILA16xYXX27Tra8+zz2/nxJ L5NwmySPcAdrr2YZwR2NAFiivnjxL4s8U+HPjRrGonUp7rRNHlt5LyxS5Kxr byoifLA0vzsPMHzDjeQxCg4rt/GGs3A+KHgFbXU5xpF/5rELfiC0uTgFCGj+ aRuVIVso+UUfeegD1CiuP8Q/EbS9B1waJFYarrGpiLzprXSbb7Q9unGDIMjG dw/ME4yuZLD4jeHNS8FXniu1uZDp9mh89XTy3WQKreV8xAL/ADKowSCSACaA Osorz+1+MXha+nnhsxfXDQaU2qTGGAOsaqm9omYHAkAIBydob5d27itSb4h6 LF8PB42RLubSyitsSMCUEyCMrtYgZDHB5xwcE8ZAOsorl9X8e6Ponga28W3g nFjcxQywwgJ5z+aAVUKWALAEkgHorHnFY/l6P/wvLd9l1z+2/wCyt2/7Sn2P 7Puxv27933/l2Yxu+bbn56APQKK4fVPipoWm65d6ZHaarqC2G3+0LzT7QzwW Wc581gcjaFJOAcYI6ggcfq2u2dh8foNVlE99C/h/fYJDaC7e4yWYC18rlcje d7/9NBwrKQAe0UVzfhLxvpHjJLtdPW7gu7Jwl5Z3cBilt2LMAGHIz8jcAnHf B4rL+L9/eaZ8LdZvLC7ntLqPyNk0Ehjdczxg4YcjIJH40AdxRXk/wq8Q6pqX h7VfCmuTfaNfsIvNjZ9Ry1zBMm9GE6O7cbwN6fdVo8ZNc3Hr/iMfsyTauNS1 Jr43GDfT3e2VY/tAXMTrl2Gflw5B5fnaFBAPfKK8D1eHWvB3w50Hx3YeMtZu L90tZ5rLVtQMtvOJY8tGkeMsctnGchVYg5ANeqa94avfFP2ORvEOuaJaiLdJ Z2EscUnm9i0qhjwCwZQxUnaRjblgDqKK8j+G+oa1ZfE3xR4Tk1q713RbFPNS 9umMzwykoBEZMkZwXUqe8RIC/MK6T4v395pnwt1m8sLue0uo/I2TQSGN1zPG DhhyMgkfjQB3FFcnpOtzad8I7HXrjzLye30KO8k8yQ7pmWAOcscnJI689e9e Z/DjXPGOneOdDh8RX99f2vivT5LxBO/7uBwZJF8vqPuKpKLtwJlyPlFAHvFF cn4r8JQ6zcHVLjxX4g0WC3t8SLYaiLaAKpZi7ZBGcHk56AelcP8ABR/EerXu q6zd6trNx4bV5YtLTU5PMebc65ctnkosar0K5d9pB3ZAPZKK4P4x6hqWl/DD VLvS55LedHhDXEU7RSRKZVGUKjJJOFIyOGJzxg6lhePc/Cy2vYhfSySaIkqj e09yxMAI+ZDGzyH1UoSehUngA6iivC4/Emqy/svTaouqakNUifY160siyk/b APlkPLDawXIJHVexAsX3iTWvE+m+D/Avh/VLu31a80y1vtV1aOUs1vF5QYhi vzh2O1skrncgyRIcAHtlFV7C1+w6dbWf2ie48iJIvOuH3ySbQBudu7HGSe5r zPwU7W/xw8fWsjyI8iW8wiFysqsu0YY78SZw4wF+RNxUniPIB6pRXP8Aifwr /wAJN9l/4n2uaV9n3/8AIKvPI83dj7/Bzjbx6ZPrXk/w58Oan4v/ALefUfG3 jK3+wag9pFDDfzJtVe7SSINzc4K7UZcZZRuAAB7xRXH+IfiNpeg64NEisNV1 jUxF501rpNt9oe3TjBkGRjO4fmCcZXOf4k8Qad4w+Evie506387yLSeK4tr+ JoXt5kQOysCp/eR5BGMjcoG4dQAegUV5noXjPTPBHwW8O6vq8d2IjbxQRxR+ ZLJI5BxjzAuBtVm6hQBhCw259MoAKK87+JPiGY3Fp4T0y5u7e8uE+339zbOY WtbCIlnZZiQsbsU2KWO3khioINWPg5qGpap8MNLu9UnkuJ3eYLcSztLJKolY ZcsMgg5UDJ4UHPOAAd5RXz/r3i7WNa8W6L4o0rV76HQpdbttM0/S4ZHgfUo0 bdNNsZ1VlLkRgnA5AbaRz9AUAFFcv4k8F/8ACR6jHef8JN4j0vZEIvJ0y/8A IjbBJ3Fdpy3OM+gHpXn/AMO01RvjD4isrbxNrmp6Bo8XkMb+783dOdoKsrjs yzYZQPuDnB+YA9oorxvQbXUviu/iHXYvGes6baQ3sljpcWlyNBEsaKGWWRer lt6kg7TwRkDAXqPhH4zvvG/goX+pxxi8trhrSWVOBMVVW37cYUkOMgcZBIwD gAHeUVn63/bH9jz/ANgfYf7T+Xyft+/yfvDdu2fN93djHfFeX/DZ9fg+Kviv StU1++1iGyiXMt1HPEBI5VjsiJMSL94DuQAY/l3UAewUV538VY/FR8P6jcaZ rMelaRaWRuXktIZXvZZlJIjBUgJERtJccjBz8ua2PhlqU2r/AA30O9uLyS8n e32yTyOXZmVipySqkkEY6Hp95/vsAdZRXh+r33jDRPir4ObxB4l2Nqcpil0/ T0misY1B2KoZlYSs5bnK7lJA3INrr7hQAUVj+JNFuNf06Oxg1m+0qMyh55rB gkzoAcIrkHZ820kgchSvRjXmehTa14X+OEfhS18Ralr2k3Vl592uoSm4ksiF YjLZ+QlgnYAiVQQTtagD2SivN/ibq1/fXmn+DtA1K+sNTuf9OvLq0gkc29kg fccoN25nUBVXliNpI3DMnw4v/Efib4SQXcupxwatdvceVqEqfaCMzP8AMY/l AI+ZVUEqAqnp8gAPRKK8L+IFhrXw2fQtU0Dxj4g1O/nvfIXS9TuzdC6BU9Ix gkZwpwCcyLgqQM9R491u+1Lx54e8AadqV3pQ1FGu728tRtl8pQ7Kkb5ypJif Jx/d6jcpAPTKK8n0bUtU8F/Fy18ES6tfa3pmrWn2uGXUpvMntXVZMjf/ABKf KPGBjcMdG3c/pUlhrXiHxYPEHxF1zRJLXW7mG2hTXo7eMxBzgKjksMcjoFwQ Bkg4APeKKp6VYNpml29i99d3xgTZ9ou2VpXHbcVABOOM4ycZOTkny/4tXmpR +NfBGmxaxqVlp+p3ElrKumXLW0u5mjXeX5DAb1IUr2bn5vlAPXKK5fR9Dt/A 2napf3niLXNRtVi86Z9Vujc+QkYYsUAXIyCc4znArLsvivpE2s2Wl6lo/iDR J75xHaNqmnmJZ5CyqEXBY5y45IAHcjjIB3lFc3H4101vHk3g+WC7t9QS3+0R SToqRXC4BxEd2XIy3QfwP/dqnB8SdCn8F6j4tEd9HpFnK8SyyW5U3OCFDRDP KszBQTjBznbg4AOwoqnpOpQ6zo1jqlusiwXtvHcRrIAGCuoYA4JGcH1Ncn8T NbvLTR7Xw/otxPB4h16UWtg8KE+WoZfNkZgDsVUJyw+YZyOhIAO4orzf4Paj rGoad4jGrahPqP2fW54Y7q53xyNgLlfJYfuVHBCA8FmGFxzw/wAVvEmt6pda zqPh/XdV0/SPDvl2Mv2ZJY1uL1pSJBvTHyooGWc4DBQo/eAkA+gKKjgMzW8T XEccc5QGRI3LqrY5AYgEjPfAz6CsPxP4V/4Sb7L/AMT7XNK+z7/+QVeeR5u7 H3+DnG3j0yfWgDoKK8LsrG+T44WXhfTfEni66tNMQXmpve6tuVwFV0ULgZTc 0atnJO8jAA3HYt31L4lfEHxJYN4k1LSdL8PutrDFotw0LTSMWDPI7KCSDGRt 24H8JOCzgHrlFeb/AAp8T6pqcviHw1q8/wBtuPDl39kXUG4e5TdIoLrz8w8s 85OcjOSCzdJ4/wBfbwv4D1nWImkWeC3KwOiqxSVyEjbDcEBmUnOeAeD0oA6S ivD9Uj8S6D8M9M+Ia+MtVutTiigu5bOcr9jmSd8mMxLjp52N2TgLhQuF2eia tojeNrfT7+y8V6zp+kzW6zpHpjrA0pYAo+8rvA2scoeD8pwCpyAdZRXjfwy1 zV7X4peJvBtxrN3q2m2iSTQzX8omnRleNNu8Mwxh8Eeq/dQllrDi1pPEuo+L bjxJ8R9V8N3WnXc9vZ6fDcrb+TEpcqWWM4nYHKkIS3yfeO5cAH0BRXF/CvXN a8QeA7O/19ZPt7O+ZXhMRmQncj7dirgqwwV3AgA5zkCv8XvFt34O8By3unTS QahPcR29tMsaOEYnexYNkY2I46Hkj6gA7yivE/E0etfCJ/D/AIg/4SnWdasJ LgWeqwahcGYSBl3boYzwpwkhGXyDtGSC2e4+IutTW1hY+HdNvLu11rX7hbW1 mtYTI0MYdfOlPTAWMnkEEZBGMFlAO0oryv4L32tah4V1+O41WS/eDU5oLS+v ZzcsSETG5Q5GwfK3ySkHc2CMBjh/EnRNZ8D+F08SW3jzxHPqq3cW9JrtBbSu SS22HIAXIyEG/AGCu3LKAe4UV5H8QPGerw/DTwpqMN/Jo51t7Zb/AFC2iDrb Rywln2qSXzyWXbz8h+YHGadne3nhv4oaHpGgeL9V8SaffRCXUre8lN59njI/ dy+aiNsVvMU4AUcKWYKwIAPaKK8f8Q+IpfFHxAv9Dl8Uf8I54Z0PYtzf2d+k ElzdOp2xeYSNuMSfKAeYmzyV2+geDtOs9P0P/QPEN9r1rPK0qXt5ei6J6KVV wMbQVPHYlqAOgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvJ/F Xhr4f2fijUdal8Yz+G9WMRN7Fpmpx28kmRvJMeC5ZhtOB94gHBJyfWKx77wn 4b1O8kvL/wAP6Vd3UmN809lHI7YAAyxGTgAD8KAPP/gj4et9Pg8Sa5pzY0jV NQdNNTB5tonkCPlju53EYYAjZk5zVf4+y2Fvp3hi5v2gMcWqq0kawRyXLRAZ cx7ztKjA3KylWJjzgDB9gri/iJ4Q1Lxfb6JHp2oR2psdTju5RKzKpVQfmBTD 7xngK6dTyDtIAOH8ZeIdI8ZfEb4eW/h25tNVlS4+1OUcg28fmQyluoAfZDIC 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 +W38Tte6PJp+kjU7q7mvby+3Nby4j3QSB/nJVckyN6HPNYf/AAkNh8UPHP2z XvEOlab4P0a7zaWNxdRo1+6nh3STBKkddy8KdgGS7D3C10LR7HTp9Os9Ksbe xn3edbQ26JHJuG1tygYOQADnqKz/APhBPB//AEKmh/8Aguh/+JoA4f4w65cN Z+GNNtr/AOz+HNeu1h1HUYHAAgYpgCXlVVkZ29wn93cDy9rDo/gX4i+F7f4d 61/acOsSi11W0jukuk8tPLHmEJyrYMsm7OBhsYXK17h/YWj/ANj/ANkf2VY/ 2Z/z5fZ08n7277mNv3uenXmjTNC0fRPN/snSrGw87HmfZLdIt+M4ztAzjJ6+ poA8X0jTvC2kfGbxjb+NdP0qFrrF5YTX2PszRs2WI844MjFlzgEApIFIAwdz 4JGG4vfGN7pUciaDNqZFmA4ERbfIxMcWAYx5T24wRzjrxtX0zU9C0fW/K/tb SrG/8nPl/a7dJdmcZxuBxnA6egq5BBDa28VvbxRwwRIEjjjUKqKBgAAcAAcY oAkooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5//AITvwf8A 9DXof/gxh/8Aiq6CvH/iRG5+M3w+a3M8cxlYNJaWbGVkDAlWk3ANHgsGUfcV nYghwKAPRIPGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGK3Kz9Z0PS/EOn PYavYQXtq2TsmTO0kEblPVWwThhgjPBryPwxqd98OPiy/gGeSNvDepO1xpnn S4+zB9zKqEsSQXVo9rHLNhhgsQwB7ZRWXq/iHTNCe0iv55BPduyW8EEEk8sp VdzbY41ZiABknGBxnqKNA8R6R4p0tdS0W+ju7QuU3qCpVh1DKwBU9DggcEHo RQBqUVy+o/EPwxpf25rq+n8mwl8i6uIbGeWGGTj5GlRCgYFlBGcgnB5rch1b TbnSzqkGoWkunhGc3aTK0QVc7jvBxgYOTnjBoAuUVx958U/BNjZi6uNfgWFp WiQrHIxkIJBZFCkvHlWHmKChIIzmuwoAKy9S8S6Do1wtvqmt6bYzsgdY7q6S JiuSMgMQcZBGfY1Jrt1eWPh7U7zTrf7RfQWkstvDsL+ZIqEqu0cnJAGBya8z +CHijwzfeH1sIZI4PEjuxvjdOpuL5yXk8wPgGUcvwclBkHIwzAHrlZcfiPSJ vEs3h2K+jfVobf7TLbKCSkeQMscYB+ZflJzgg4wc1h+E/B9l4U8UeI3022gg s9R+z3CJFFIvlnEgZMk+WVBBYBcFfMIIC7K0LXW/C194ynsbO4sbjxDBaMJm hQPJHCsmGjaQDjDkZQnIPOO9AHQUVj3PirQrTWG0mbU4BfJE880QJb7PGihm eUjiJcMCC5UHIxmjw34p0bxdp0l/od59rtY5TCz+U8eHABIw4B6MPzoALvxX 4fsLy6tb3WrG1mtfKE4nnWMRmQMUUsxA3EIx25zgZxgjNzTdW03WbdrjS9Qt L6BXKNJazLKobAOCVJGcEHHuK5PQbb+1/AOtalfLOV8RfabwxzReYVt3Ty4V 8uAhj+4SLKq28knnJ487+E083gvxnp3htpZJtP8AEuj2+qWy7ixhmMRZ89Ao OyUcBiQsWTwaAPfKx77xZ4b0y8ks7/xBpVpdR43wz3scbrkAjKk5GQQfxq5q uq2Oh6XcanqdzHbWdum+WV+ij+ZJOAAOSSAMk14f4B0vV7f9oHUZddS0utSl 0w3s5aUMbNpBHlEALkFCxiALD93yDggMAe+UVl6v4h0zQntIr+eQT3bslvBB BJPLKVXc22ONWYgAZJxgcZ6io9B8U6N4l+2DSbzzpLKXybmF4nikhf0ZHAYd COnUEdQcAGxWPN4q0KDxHbeHn1OA6vcbtlohLuNqbzuxnZ8vI3Yz2zUmr+Id M0J7SK/nkE927JbwQQSTyylV3NtjjVmIAGScYHGeorye3l0PUf2htE1Dw9b2 kyPZXP25IraWGW1mUzB5Zl2rtdmIT58nnkDKEgHtlFY+p+KNJ0jUYtOuZp5L 6WIzrbWlpLcyCMEKXKxKxVcnGTgE5x0NHh7xVoXiuzN1oepwXsa/fCEh48kg bkOGXO04yBnGRxQBsUVz9z448NWkupRy6vB/xLIvNvXQM6W43FNrOoKiQsCB HneccA1HpHj/AMKa7pd3qdhrlobO0dUuJZyYBEW+7u8wKQCTgHoTkDkGgDpK K5vw14+8L+L7ie30LVo7qeBA8kZjeNtpOMgOoJGcAkZxkZ6iukoAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igArxv4nQQy/GP4el4oyftGSwUQMdsisuZ3yrgHkRD5uSAcyrj2SvK/E3g/x t4i8a+H/ABCtv4ft00dwwtnv5phL82W+9BsQkAAME3A4OTtXaAeqV4X4uE2t ftL+H4dKkuzLplvAb1rZDmFQ7yMGJKjYUkQE5PD4AY/KfSNSbx9e2629hb+H 9LeRwsl215LdtEhBBZIzCgLjII3HHGCOcg8IeAdN8J3F9qIlkvta1FzJe6hM iqzsx3MEVQAiFsttHtknaMAHJ+FdZ1PXPiL42j07WtKguobtbcQ3lnNLN5MO UG1BOqrGrluVySzsWCblWtzw14Km8P8AxB1TXrjXrR59XtyZNNtLQ20bMpjz MFMrliCeT6ynkbsHL8c/DPWNQ8UReK/Bes/2Trb7Uu/NldY5lUDaeA39xAUI KsADwQd2xoXg3WbnQ9Rj8a63/aep6haSWLSW0aIlrA2QRF8g+ZsgsxXnagIO wEgHP+Hvscfw1v8ATfBvnv4eiiuN+r61hlkBUs/kwybEdQdyHeYow2Sd/wA9 Hwu0Wz1r4F6fa6zpsGrWp+0vBaiIBx+8kGFZmwJCS+HBTG4DjBYyeFvAnjrQ /D934VbxHptvooSdbS+tIXN7HvJK4zhVGSWPLMMkKw+Vl0PAnhrxl4N8J22l zSaNem1d0hto55IUKOxcyPKYnZnDEqqqqgAkkscYAMf4HaPpuofCvZfQWl+l zcOk0U7LOFVH3JGylfkAYlwh3cyFwRvwPXK4P4XeGPEPgzw+NC1cabLbxu8k Vxa3kztliDtMboAo+8cqQOny5LMe8oAjnmW2t5Z3EhSNC7CONnYgDPCqCWPs ASe1eZ+LvhHoXivd4i8O3X9m63Li7t720mPkzyHayucZxnGd6YOWLHca9E1a wXVdGvtOcRlLu3kgbzFYrhlK8hWUkc9mB9COtc3pNl440GzisJbrSvEMMUSq l3dyy2c+QWyHwkofjZhvlPBzk80Ac38MfFfiP/hJdU8B+LDHPqek26vFdx/M ZowRy75+YlZIip2g4zu+aqfhjS7DSP2jtettNsoLO3/sRW8qB49gJaDJCIB5 f+63J+90YV2nhzwlc2fiC78Ua7ex3evXluluRbh0t7WIBSY4lZiSC6lixxk8 gLk5x9P8N+LY/ilN4tu7bRhbz2S2Bt49Sndok3oxcFosE/KflAQHPrliAc2n hfQrT9o61gttDgtIItKF4ka2xaJ5gxUSoEbbFjAGXAG5DgbmV69A8T2FnFoc 2j2NpBBJ4gu/ssqwxhDL5vNxJkceYIFlcM2clAPmOFPNyeFvGJ+JsPjKK00Z cWX2SWzbWbpg3JOVbyQFH3fkKlcgtjcdw7S70d77xRp2pTvi102KUwRLK3zz yDaXZRgfIgZRndnzm4XaCwBYv44rPw9cx+ZthhtHXzLi9eLChDy8/LrwOZOW HXk15H4x0Sa5+CPhLxJp/mLq3h6ys7y2dIzIQuyPf8vTAwrkkHAjPYmvVPEX /CQPp0kPh6OxF1LFIguLu5aP7O5GEcKInD4Jzg46Drnin4W0rUrTwrbaDr1j prQWtlFZ/ubhp1uFVNjb1eJAoIA4+bOT6cgHP2/iG0+JKeHbKCzjm0y6txqe rQzK7IioxSOAkoAxNwpPUZFu3BVsHD0633/tQ6tJ9hsW2aUsnm+bukT5Yl8z HzbZOdm35PkO7nPz9R8P/AX/AAr7Q9VtrQwXd1c3cs0LSHYTGOIY5JAuTgDJ IXALtgHqeft/BHjC3+K9344+xeHJftMQi+yS3szNFiNU3JJ5Hyt8nXb91mXv mgDc1o6Ra/FKyu7aPUr7xU+meRDZQuY7dLcu586Z8YCBsqcljkqQjNtrm/DC 3g/aO15r+Kxjun0RWf7HIXBy0GA2WJDAYXOE3BVbYu7nU13wJ4mtPiRJ408H 6jpq3F5b+Re2uqBvLICqo2lFJx8inqCCvUhiAR+BPF9t8TZvEkfiO0mt7yy+ yXEk0LebbKSGK28fKAblBUsWxuO4SEEsAV/AF+3iD4vePtSmMimweLTYYmZX CorOp2sV3KC0RbapAy5yGIBFfW9NhX9pnw3dwNaJI+mSyXEYISRsJMgc5ADk gqoClmAjJICqDWp4m8B+IE8cnxj4M1Sxs9Snijt723vo2aO4RSCSW+YjISJc KF4UncCeadz8PfGmr+PNL8Saj4n021eztwA2n6eu+JmG2SJPMDbkKlyHctgs cIM0AakL6dZfEzxA3h+C+1LxFdRQ/wBoRzTNDY2iqieXvbafmdT8uFkbIYfI Nxrn/hpZyz/EX4kW19LY3kEksMd2iWiIkzN5mcKrsoX74KtuZs5YhgwOha+A /Fnhnx9q+seFtU0o6ZrUomvItTjd3icuzMUCY3Y3Ptyy53YPQNVjwt4G8U+H vHOu6jN4ggu9M1SWOaSeVC14/lklY8YEaLhmUkA/KoChMgqAYfgLRdNsPjh4 ygtLOOxgtEikt7FplG1mUZlSIbhjDvhgy7Fm27fnIWwulwt+0vdPPp0kiTaO lyGDAJuR0CyuDIdwDIAPlGGCNs+XzDseHPDvjLTPHmueIb+PRng1h4Vkt7e9 kAhSMbVb5oCXcL/tICS2RyNpp/hrxVF8UpvF1xYeH4oLiyWxkhtryXzAu9GM rMYQJHAXAHy8BRnjJAMvUbVI/wBprSZYLfDSaI0s7xWiybjmVAzueY+Aq7xk 8KnRjXrFeZ6x4P8AFV78WdO8ZW9vo3kadbvax20l/KrTKfNAckQEIcS52/N0 6nrVy4uPHOj/ABHtJLu+sb7wzqd2bSCygiCTQfuWkDktj7vlNuO9sgnCAkKA D0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAqnHpVjFqk2prbRm/lTy2uG+ZwnHyKTyq ZUHaMDOTjJJNyigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigArj774o+ENO1yTRLrUp49TSUQm1FhcM5c 42hQIzuzkYxnOQRnNdhXj/xpsX0PUfDvxBsY53utKu44bpIWZfMgJLAM4yEX O5Dxz52D2BAPQPEnjXQfCPlnXLqe0jkwFm+xzSRknOF3ohXd8pO3OcDOMVoa NrVlr+nJf6c072r4KPNbSQ7wQCGUSKpZSCMMOD61yfxWsrHxD8K9QKyxzB0i msZYYftBklLr5Qj25OZCwQMO0h6jNHwc19fEHwy0pt0fn2KfYZlRWUKYwAg5 6kx+WSRxknp0ABqWfxC8OX2uHRLee+bU12l7VtLuleMHGGcGMbF+ZfmbAGQc 11Fcv4UdNX1HWfE0N59otb6VbSz2lSiwW5dMgqOd0rTsDk5Vk6dBY1bxWmm3 ktra6PqurTQRNLcDToVcQABTtZmZQZCGBEakuRg4wRkA6Cisfwx4n0vxdocO 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 aa4BQoJFZV4Qr5iZ3EAggqWyM6HgzxzovjrS3vtHlkBifZNbzgLLCecbgCRg gZBBIPI6ggAHSUVy+q+NoNN/tGSHRtV1C002Jpbu8tUiEKbd29VaSRPMZdh3 BN208H5sijUPiL4R0vQ7DWrvW4EsNQz9lkRXcyY64VQWGOhyPlPBweKAOoor z/Uvi/4f0/Q7TWYrPVdQsZolkmmsbdZUsy23Ecz7giSZYDZuJHfGVzqeKPFt 3p3gp9f8P6VJqqPZNeRTF0jijj2hw8gdlcjaS21QSduDtyDQB1lFcP8AC7Vb 2/8ABekLdaRfQZtPNa+mjjjS4cnJbb5rSFmJLF2Ub+X43AV3FABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVj+K vD1v4r8L6jod02yO7iKB8E+W4OUfAIztYKcZ5xg8VsUUAeH/AA01u/8AF2ne H/C1/aTpJ4cu2k1Iu0kWEgGLaNlVAN3mMDsY/wDLqSck1nm6l+GPxK8XaHpd v5P/AAkFpHLoiIiFjdO2yJVHCJGskkvDgfLGOv8AF7B4f8I6d4c1jX9Ss1xN rN2LmXlvlwv3eWOfnMr5AH+sx0UUap4Ts9S8X6H4l3+VfaV5yZVAfPjkjZdr Hr8pbcOcDLcfNkAGppOmw6No1jpdu0jQWVvHbxtIQWKooUE4AGcD0FeT/CWW 58QWGuRr4h1nTNSh1Oaa9slsrRGjaV2ILu0BMjkqwJwuNu3YoC59kry/xZ8G rfW/FC+I9A1ufw7qTbjPJaxk+Y5GC67XUoxBYNg/NnOM5LAHSeE/BuleE9Z1 yez1K7vNQ1R0ur0XUkZYEtIQ4VEXaGYydsfKcdDXWVh+FPDa+GNGFm1/d6hd yv513e3cjPJcS7VUsck4G1VUDPAUck5J3KAPL71f+ES+PNlfNc4sfFlo1tIk lxsVLiFV2ttxg5ARFGc7pH9gcezvr/R/ihofi6WTZovjWIQyqFkZY3x/ooIH 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 t2XddpClnIUHAXGQZPB3g3xB4N8Of2JbeJLG6t4txtWn0pgYizhiDtmG5eX4 4OWznA20Ac/8C4YItO8UmG2g/wCQ3KgvLcxNHMoA2qjIFyq5JGEVcSfKBkgV /h1eXFnqPxTntxPLJb6rcyxQo4ny4Mp+W3BVtxwBncPMwFBBQmus8HeDta8J 2+rRP4gtNQfULia9aWTTTGwuZAvzHbLgp8udgCnnhhVfwd4B1Lwn4l1rVm1y 0u01m4NxeQjT2jIbMjARt5x2jdIeobgY460Ac/8ACnR01z4V6fHa+ItSgtCk sFzYKLOdEYu29W3wE4bdu2sTgOByOTcvvB+j+DPhB4v0fRp76+jEU806m5Tz YpDChwxXZhQoRyp5KkjDBgpp6r8Dl/4SW41jwp4mu/DQuExJBaRNgEnLBSsi FUJAOzkAjjAwB2F94Puf+EObwzpGqR29pNbzwXU9/A93PMZcl5N/mJhyzuxJ BGW4AAxQBh+F1gf9n2JbeKCVDokwMdxJFHG7bH3B2jZVVS2cksrAcuQ+41j6 MXH7L0h1ieeFv7KuQjTzNExG5/IUHIJUjy1VejKQuCDg9Rb+DfEEXgGTwpL4 ksZ4TafYUuX0pg6wFGQggTAFgCgDdtvIYnIk8M+BJtF8B3Hg+/1WO80+S3lt 0kgtTBKqyly5JLuCfn44GMc5oAsfDEFfhl4dBkkf/QkOXSRT06YkJOB0BHyk AFQFKgdZXH+CPBmo+FLO3t77xTfatHaxPb20LxrFDHGShGV5ZmXbgEsQqnaA BXYUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRUc88Nrby3FxLHDB EheSSRgqooGSSTwABzmgCSisvSPEmi+IHu00fVLS+No6pN9nlDhSy7hyOCCO 44yGHVSBqUAFFFFABRRRQAUVn6zrml+HtOe/1e/gsrVcjfM+NxAJ2qOrNgHC jJOOBViwvrfU9Otr+zk8y1uokmhfaRuRgCpweRkEdaALFFFFABRRRQAUUUUA FFFFABRRRQAVyfjj4eaL4/t7OLVnu4ns3ZoZbWQKwDAblO4EEHap6Z+UYI5z 1lFAFPStKsdD0u30zTLaO2s7dNkUSdFH8ySckk8kkk5Jq5RRQAUUVn6zrml+ HtOe/wBXv4LK1XI3zPjcQCdqjqzYBwoyTjgUAaFFV7C+t9T062v7OTzLW6iS aF9pG5GAKnB5GQR1qxQAUUUUAFFFFABRWPqvirQtE1Gy07UdTghvr6WOG3ts lpHZyVU7RkhSQRuOFz3rYoAKKKKACiiigAooooAKKKKACiiigAooooAKKx9G 8VaF4hvL610fU4L6Sx8v7QYCWRd4JXDj5W6H7pOMYODWxQAUUUUAFcv4r8Aa F4wlt7q+jnt9StcfZtQs5TFPDhgww3Q4I4yDjJIwTmuoooA4vTfhtY2lwz6j rniDXrdkKmy1m++0W5OQQxj2gMRjjdkA84yAR2lFFABRRRQAUUVj6r4q0LRN RstO1HU4Ib6+ljht7bJaR2clVO0ZIUkEbjhc96ANiiiigAooooAKKKy9D8R6 R4lt7m40a+jvILe4a2kkjB2+YoBIBIwwwwO4ZBzwTQBqUUUUAFFFFABXn83w h0KPUbi80XU9c8PfacGeHR74wRyMCxBKkHGNxAAwoHQDmvQKKAMPRPCemaHc fbITd3WoNbpbSX1/dSXE7opzjc5O0FiWIUKCe3AxuUUUAFFFRzzw2tvLcXEs cMESF5JJGCqigZJJPAAHOaAJKKy9N8S6DrNw1vpet6bfTqhdo7W6SVguQMkK ScZIGfcVqUAFFZ/9u6P/AGx/ZH9q2P8Aaf8Az5faE877u77md33eenTmtCgA ooooAKKw4PGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGK2I54ZnmSKWN3h fZKqsCUbaGw3odrKcHsQe9AElFFFABRRRQAUVXvr+z0yzkvL+7gtLWPG+aeQ RouSAMseBkkD8ap6X4j0jWfD669ZX0baWyO/2mQGJQqEhid4BABU8nHSgDUo rP0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcirk88Nrby3FxLHDBEheSS RgqooGSSTwABzmgCSisvQ/EekeJbe5uNGvo7yC3uGtpJIwdvmKASASMMMMDu GQc8E1qUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRVPVdVsdD0u41 PU7mO2s7dN8sr9FH8yScAAckkAZJqSwvrfU9Otr+zk8y1uokmhfaRuRgCpwe RkEdaALFFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p3iPR4NW0 m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWPqfijSdI1GLTrmaeS+liM621p aS3MgjBClysSsVXJxk4BOcdDWxXn8L6dZfEzxA3h+C+1LxFdRQ/2hHNM0Nja KqJ5e9tp+Z1Py4WRshh8g3GgDqPD3irQvFdmbrQ9TgvY1++EJDx5JA3IcMud pxkDOMjijU/FGk6RqMWnXM08l9LEZ1trS0luZBGCFLlYlYquTjJwCc46GvP/ AIVpLH8RfiMs88E8wu7bzJIIUiRm/e5wqMwHOerFu74bcKr+F9QTwV8WvGdr 4q1GC2bWPL1Cyurm6URtAryKqbnIIYBwoXHSNscAEgHoFh468J6n9mFn4k0q SS62CGH7WgkYtjauwncGOQNpGc8YzVjU/FGk6RqMWnXM08l9LEZ1trS0luZB GCFLlYlYquTjJwCc46GuH+FdhnxR421+ztL6LRtXu4Z7Ke9j8trjIkd3RTg+ WTICpI5UjuDiv8Mr7W/EOna9q+la3YrHda3cSSLd2EtxtOECiOTzoy0YjEYG 5FIwRgACgD0SDxJotz4fi15NUtBpMiB1vJJQkYBO3ktjad3y4OCDweeKx734 m+C9P0uPUp/EFobSS4ktkeHdKWkT7wCoCcDg7sYwynOGXPN+Gvhlo/hfTvEG narq9je2M22+FtNbII9N4lXzlWZ5QOMgM2eIuS2DUfwL02GX4Vxtd2cciXjz RMZkDCaEOw2nLNlNzSfLhBlm+U5LuAekaVqtjrml2+p6Zcx3NncJvilTow/m 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 O8pN/wBo2eZuwM7/AC/k3Z67flz04oAsVh6p4v0PRrhob+7kiEbok04t5Wgg ZyAoklVSkZO5ThmGAyk8EGtyvE/+Ei8R/CG91aHUvDEmoeGbnU5LqHUrWXc8 UcjjPmsQS7/MoBlKkkEbmGCAD1DUvEfhyPwqurapfWi6Le24ZWuhhZ43QttC MMsWXPyYJPIxWhpM1jc6NYz6WIxp8lvG9qI49iiIqCmFwNo244wMV5348tPC 2q/BKa906Cxu7C009V0y4cBjCoKqArO6srfKFI3bsjBVz8jYfjzWJtJ/Zv0G OCeSF7+ysbQlFOWUwhmXIYbQVQgnDZBK4+bIAOo8feIPC+s+Bdaify76NbKd 7W7ayeW1E3lMEKXGwxb9x2ghs7jtHzcVc+D8SQ/CjQFjXapidiPPWXkyOSdy jAySTt6r905INaHivRtOj+GOraQEghsLfSpIovPDSJCscZ2MeGY7dqnIBb5c jJrydtZi0v8AZo0BIH+zQ392LOX7QXdGUzyNKHaIq6xsEfO0M207MEneAD1i 3+InhW61GzsotV/eX0rw2kjW8qw3LodrCOUqI354+VjkkAZJFdRXn/ibwhrH j7wudOvPEOhy2Nz5c8NzbaQ7MMEMrxsblhyMjI6qx9a7DQovJ8PaZF/aP9pb LSJft27d9pwg/eZyc7vvZyevU0AaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFeX2vgPxZ4Z8favrHhbVNKOma1KJryLU 43d4nLszFAmN2Nz7csud2D0DV6hRQB5v4W8DeKfD3jnXdRm8QQXemapLHNJP Kha8fyySseMCNFwzKSAflUBQmQVp2I8ez+J/FOoeGJPD8lhPqZi36ml3HuaK NIzsQErhSpQuPvMjdgoHqleb2/wz1nQJZIvB/ji+0jTH5Fhc2qXqQnczYjLk bF+bpgk4ySewBoaZqfjyw17TbbxRD4cksdQle2RtMacSRyCJ5QxEgwVxEwxw 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 wrvfCc+ux3V5KiiG5azjt4kCOrJGscYwqYQLn5iMk8jCjY8HaZ4j0zS4ofEN 9psrx28UEVtp1r5UUWzcN2eNxZSmQFVV24A7npKKACuHh0LxZaadq+h/abHU NNvJZha3l/cvJNawSj7jRPG4n2EtjfJ84wCVHA7iigDzu98C6rp3wrj8EeHp LS4D28kM15fXMkBUu+5iqxKSQSzjaWAAwDvBINiXwJN4g+FsHhHxAtpbz2tv DBBc2khn2tEihZRvRCpJDAqP4SRu547yigDyuw8I/Eu08NXnhtvEPh+TT0tz BY3EtiZJTGoVUidCPLCMoIYkSEbj97gjQ8NfDFrP4bz+D/EWrSahaXCACOCN YltTu8w+W2NzkSEtufg4UbQMg+iUUAeN6B8OviXpDrozeOY08N7yhaElroQ7 doEe9D5R2gABXwhJIyRz7BBBDa28VvbxRwwRIEjjjUKqKBgAAcAAcYqSigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo orL1fxDpmhPaRX88gnu3ZLeCCCSeWUqu5tscasxAAyTjA4z1FAGpRWfo+t6d r1m91ptx50ccrwSBkaN4pFOGR0YBkYejAHkHoRWPqPxD8MaX9ua6vp/JsJfI uriGxnlhhk4+RpUQoGBZQRnIJweaAOoorP8A7d0f+x/7X/tWx/sz/n9+0J5P 3tv387fvcdevFYd78S/B+naXHqd1rUaWctxJbQyiGRhM6ffMeFJdAeN65XPG c0AdZRVPStVsdc0u31PTLmO5s7hN8UqdGH8wQcgg8ggg4Irn5PiV4ShSGaXU 5EtJrj7NFetZzi1eTcVws+zyyMq3zBsYBOcCgDrKr31/Z6ZZyXl/dwWlrHjf NPII0XJAGWPAySB+NWK5vVfEHhe7S407UfLv7RX2Xf8AoT3NrCytkiaQI0cZ UgEhyNowTgYNAGpo+uaX4gs3u9Iv4L23SV4WkhfcA6nBH8iPUEEZBBOhXkf7 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 aWI28FvcJvjnmkPlxxuP7rOyqckDB5IGTUnhvRIfDnhrTdGg8spZ26RF0jEY kYD5n2joWbLHk8k8mgDUorm5PH3heF4fN1aNLeZ9kV80bi0dtpbC3O3yiflY YD9QR1GK6CeeG1t5bi4ljhgiQvJJIwVUUDJJJ4AA5zQBJWWfEmir4gTQTqlp /azozizEoMmFAY5HY7WDAHkjJGQCRj3vxL8H6dpcep3WtRpZy3EltDKIZGEz p98x4Ul0B43rlc8ZzXFxaHZaD+0dYRaJYQWVtPojTXMUCSImdzrkLH8i8pH9 8BO/3ypoA9gorm9S8eeHtJ8QLoN3c3Y1R0Dx20Wn3ErSLgnKbEIYYByRnG0+ hrY1LVLTSbdZrt5AHcJGkUTyySNgnCIgLMcAkgA4Ck9ATQBcorH0HxTo3iX7 YNJvPOkspfJuYXieKSF/RkcBh0I6dQR1BxXvPHPhaw/tD7Tr1jH/AGfgXX70 Hy2O/EfHWT90/wAgy3y9ORkA6Cis/RNb07xHo8GraTcfaLGfd5cuxk3bWKnh gCOQRyK0KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8z+G2pQ6r4 8+IlxIsi6gmpx28gUAReTEHiiI5J3/I5bPH3cY5FemV5P4n+Fuux+NJvF3gX XYNK1K64uIJowImyMO2QrBtxCsVZT82W3ZwKAO00PwrovhrxLrN9YTSJea64 upreSUEZQnc6D72N0uW5IBYAYGBXF+Hvscfw1v8ATfBvnv4eiiuN+r61hlkB Us/kwybEdQdyHeYow2Sd/wA9dJpPgzU59G1CLxdr8mrahqNk1k8sMEcK2sTq d6xYXqWOS5A3bI8r8orn/C3gTx1ofh+78Kt4j0230UJOtpfWkLm9j3klcZwq jJLHlmGSFYfKygB8M9Gttc+BGlWlxZWl2+y6aBbqNGVJfOlCsN6OARnrtbGT wehPgXpVs/wrje5tpJRfPNHL9q2OkkQdl2IOT5WS/wArfxNIcYbJ0PBXhfxV 4W8Bjw9f2/h/VER3iS3M0saNC5dn8xzG+8lnxt2AYHJOcUfDzw14q8EeE20W Ww8P3Dxu8sU0F5LEZmZl/wBb+5PIXd8wzwqLj+KgDn/hS1tdfBHW7XVL+T+w 43vYUmVUEsVoUyxZE3lXy0jbTuPIxlduTxekw+B91aaRYxnw7b2UXkXOrXhM 91HuUo6AMAowVddzA5Xy/JAIFWPD3wv15fAeveEvEd7aOmq3DXh1K2unll87 MZG5HjG4bo8k7snOOM7hJD4G+IF78OrnwnqfiDSraOK0W3s5bFJC8yrwI5nI GI9oC/Iu49SSAyuAXNS1ubw9+zpbajb+Z566FaxRtHIY2jaSOOMOGHIKl934 dR1roPh/pVjD8LdAsFto2tJ9MjeWGT51cypvkyGzkMztx05x04o8L+GtSt/B SaD4nuLS6T7Euntb2YZYhCqlPvnDs7KfmPygYG1RgluX8MeCfiH4Tt30DT/E 2jPoIRlt7mayZri2LBmLJGCFJ3t/G7DABx1UgGX8JYbf/hSniHT9cur6C1gl vbe+WWMq9mnlDzFQfMeAS2No+ZmG09TJ4jkaX4H3lvo8Mlv4btrIJBd6sVku LtFYBSkchARH+Uq5IYDhIs+WasaB8G7u08Ea34b1DX5Es9TcyRWtuiSLbSB1 Ku0hRWlOI4wQAg+9xkhhJD4G+IF78OrnwnqfiDSraOK0W3s5bFJC8yrwI5nI GI9oC/Iu49SSAyuAdx4E/wCSeeGv+wVa/wDopaueJNEh8R+GtS0afywl5bvE HeMSCNiPlfaepVsMORyByK5ex8P+N9P+G66VbazpsGvQW8FtaPFGfs8KRMBk l1ZmdkBySuM4AUYLNseBdS1fUvDCNrqxnUra4ns554gBHcNDI0ZkQA5AJU5y F5BwoGKAOD8JazLq/wAKpPBl4+Nfjlk8OTwkpmLIcbxtOCscCuRkjeYWUEkg k8DeItRvfhrL4UuJfs3iO0u28Pr5Uy+ZD8pxL8mAPLjWUjn5zbkBtzV2GmeA rPTPiLq3iiI4jvYo2W2BGxbj51kl27eGKkYbJP72bPDUWngKzt/ihqPjRz5s 1zaRRRI5DeVIBsdgNvy/IkYBBz80gPBFAHP/ABns7fSvgvcafZme3tbf7NBD FEhkUorqFV2IYqoAB3EjLKoyc4Y+J+m6cnwLu1mjwsMUE8cgtWD+e0i5fbK2 9GdnbcWYuN7E7jkHc+JGga94s8MXnh/S4dNWC7SMtdXV26MjLIHwI1iYEYUc 7h1PHHNPxHoPjDXPh0/hy2tdD026miW3kktL6ZIY412cIohztYB0KZwFxy2S AAcn49v1k8FfDjR7ox3Om6ncWX21rFmjFxEqplEgRVdkbfuAVRtKoMAlRXef FLRrPW/hrrsV4mfs1pJeQuANySRKXUgkHGcFTjnazDIzWfc/D1/Evwxs/Cni IQW1xYRRR21zZTtKFeOMIspDInXLApzweGzgix/ZPjXWvC//AAj/AIgk0qL7 TF9nvdTsLlmkkjJ+fbC8IUM6ZUndhSxYDgLQBY+Fms3mv/DPRNRv38y6aJon kJJL+W7RhmJJJYhASe5Jrc8Sx2M3hXV4tUmkg097KZbqWMZZIih3sODyFyeh +hq5YWNvpmnW1hZx+Xa2sSQwpuJ2ooAUZPJwAOtZfjDw1D4w8J3+gz3Elul2 igTIASjKwdTg9RuUZHGRnkdaAPM/FMjzfAu7t9FsP+KctrREguNauGWe6RZF CyIu5dqn5XQswztCCLay1oa/o+nal+zxZXF5ZwTT2nh+CS3me2aZ4W8pD8u3 DLnaMtnaMZYFQQSHwN8QL34dXPhPU/EGlW0cVotvZy2KSF5lXgRzOQMR7QF+ Rdx6kkBlfUh8NeMofhyfDc0mjXU8umNpp2zyQxWyCMxo4/dO0rkHLZKD5VCg csQCx8MdH02f4ZeHXngtL1wiXYldluCsyjarbiow6KAgHVAgTJ25OH8L9Q1/ xJoeqavp2s6Ui3WqzvL9p02eWUt8u3dm4ATCeWAiFlVQo3E5rsPAWla3oPhe 00bWo7EtZRLFFNaXcs3mgE9RIoKYG0YBI64CgBa4vWPhp4v0vxjqWv8AgLxF aacNVcvd210rFQ3BJGVkDEsXbOF27iBwTQB0Hw58Cr4DuNZs01yO8S7eO5Wx jjaNbQEuMhWkc4bG3JOT5XJOOO4nghureW3uIo5oJUKSRyKGV1IwQQeCCOMV h+E9D1HSNOabXNS/tPW7ra13d+WqKMDCxxgAYjXkgY5ZnbALEVuTmZbeVreO OScITGkjlFZscAsASBnvg49DQB5X8K7SzsfiL8RrWwgggtYru2VIoAAif63I ADsBznjIx02p9xacHhmysv2i4re306O3sF0cXcdvZLFHDxJgNKgRcgSDcB87 BxG2QBhOk8HeGvE+i+NPEOs6nFpTW+tyxyOIL+aR7cRhwoAkj+fO4D7ygY+U AYUU5PCnio/E2HxnFo/hhXFl9llga9lZ2bJ/erJ9nG19u1MlT8oI78AFfUoD Y/tJaNcRxR28eoaPIjyFZE+0yJvJAKfK7hVjJD5AUD+IJUlxbS/8NJ2km37S v/CPmTMsSN9mXzGX5DlSuT/F87fvGGApykmseD/FV78WdO8ZW9vo3kadbvax 20l/KrTKfNAckQEIcS52/N06nrVjxF4G1qX4m6d4x8OT6NBItv8AZrxb62Lk jJHmLt5Z9rY+8hwgXcVYgAFOW/1TUvjvf2NhfwWc1hoipCk8f2uF0eRHkcok qGKTJjXBzuVcnA21ctvAVzZ/E+28ZXviO0S7uENtLaWtq8C3p8pgAd075IVA 2AMfugcZBNV/HXwy1LxHb6Xqul67JbeLdPt0tzqIZoFuFwQ5ITJjJLORt/vF TkEFdDwr4d8aWzy6l4v1u01jULdHGnWsSrFbxsyjLswiB3nlAdp2qz4zvIAB y/gLQdAtvjh4ybTLS0EVikQthFCzrA7qPNCODsjO7cpTGeoXaFYG54kvYtK+ KvhPw1pVzpWjwQ2k1xbwz2riBZpSyLsSORFaQ4kUBgoG9sFmYKNTRPDfi3T/ AIkax4mnttG+yaukEc1vHqU5aERqq7h+6COcBjhlB5wGUFt2h8RvAS+N9Ltn tbuSx1rTnM2nXauyhH4JDY5AJVfmHKkAjPIIBn634H1LUvFWgeJdU8S6baT6 VcIFe005rdrhWdR5LO07HDElQP8Apowwd2Kx/Eur+L/h54z8Q+IINAk1rw3q SQykQ3DA2skcQVmYANtG2M7m24x5fzAjFang/wAI+OYry3PjXxPBqNhY7Htr O3UMJZFBCtM7RqzbeGGSSXCsSCozuR6f4q0jxBq0+nyWmp6XfOk0Ftf38sTW cmCJFU+XISjHawGVC8gKOpAJPDWreH/EfguW90O2+26fc+e81k21naWQtJLE 6u20MWc8E7fmGDtINcP8H9Qg0j4G3mpRHD2f2u4mPlxSYZF3fdRlZvlC8SMr HsQmw13HgPwangjQ57AXv2ya5u5LueVYFgTe2BhI14RQFXge+MDAGP8ADjwh 4p8IWZ0fUtYsbjRbSV3sltoSJpFYscSFhhVyd+Fy24437RtYAy/huNZ174b2 Yttb8P3FtKkiXcM2nT3TGR2LSCZnuFLOxcswKgfPxlSCeb8WaPefDj4G6roN nq0+seZqCwTTw5i+wRyKrsjKGbCtgAglQftHv82g/wAK/GvhbXLqT4eeJoLD SLjLizvZGcRM2NwClHVvurhzhscHOMnuL/4f2er+Brnw/q1x9vu7nfNJqU8I 8w3RBxMAuMbeFVQeEUJkrQBY8V6Hb/8ACsdW0SysPOhh0qSG0tQhlOUjPlBQ cksCq46nIB61n/B+bz/hRoD/AGme4xE6b5xhhtkddo5PyrjavP3VHA6DDsPB nxDj8NXnhW+1/RptF+zm2t5kgZbp4AFQQ527IwyAguVlZSxxu4I6T4b+ENR8 FeF4tJ1DWPt+zmOJIVSO3ySzKpxufLsx3MemMKvOQDqL9tmnXLebPFiJz5lv H5kicHlF2tuYdhtbJ4weleV/CPU10r4FT6iskebFLuZtsrXBQpub5oyyhDjB 8sMAQQ2QXOPXK8/+HHhDxT4Qszo+paxY3Gi2krvZLbQkTSKxY4kLDCrk78Ll txxv2jawBH8EYV/4VhZX7GR7vUbi4uruaSRnaaXzWQuSSedqL+WepJrD8A/8 U78bfGPhKw+XSHiXUEhPAhkIiJCKMKq/viMYzhEGeOdzw74N17wFqmo2/hka beeG7x/tEdlfXLwy20xwGCyLG+9NqgfNzwO4JfpPDnhj+xbzVNTu7z7bq+qy rJd3KxeUhVAVjRI8naqrxySx5JJ4wAdBXl/iu2l8MfGHw14qgXbY6vjRb9YY k3NI+TEWJOTkhckDIWHGTkLXqFc3488KQ+M/B1/oziMTum+1kfH7uZeUOcEg Z+UkDO1mA60Aed+I9Tl0H4q6X43toYIdFu7tvD99MzJGJdpAMrsRkbXV16dL UfNtcV6JpEEN/wCMdb1wRR5hSLSoJdobcseZJGV/TzJTGyjo0HJzwtfxH4Kh 1b4b3nhS3nkBe3AjnlcbpJlYSB5WCnJaQbnOMncx6mtzQ9Gs/D2h2WkWCbLW 0iWJMgAtjqzYABYnJJxySTQB538EbpdcsvE/iWV5JbzUdYdXmfcpaJEUxrsL sFCiRgACcDAyQBWfcQQ6H+0aul2sUbaf4o0xn1G0kUGJ2Cy5IQYBJ8rksGz5 kn97jpIvBeseGfHN9r/hR7GWx1fMmp6ffzPHmYElZIpFRyMlmJUjHJ9V2bGn +HryPXL/AMVXyQSa7NaC0trZLg+Rbwr8wjEnlgtuf5y5QkZwBhfmAOD8BaJp Fr8cPGQ0ry0sLJIvKtYIy8CTMo3sGHyxuhMqBeuJJAMBWFWPjXZWWleCvD1r Y2NpBaRa7AVtkEUMXKykj51MagknJZSvJJBGa2NE8N+LdP8AiRrHiae20b7J q6QRzW8epTloRGqruH7oI5wGOGUHnAZQW3SfEbw14n8WxWNppcWlQQ2GoQ30 NxPfzI7lFYbSscYKcseVkzxkYJ4AKfgXXx4r8Y6oPEenSWXiXRXdbexnaNlt oZMAtDhQzEhUDOdw5BUqshWvTK8v8c+BPEniXUdD8R6K9jpHiax3JJOL+R41 jBJVQPJ+fO5s5CjDMpDggj0DRn1h9OT+3ILGK+GA32GZ5I34GWG9VK5Ofl+b Ax8xoAj8Sx2M3hXV4tUmkg097KZbqWMZZIih3sODyFyeh+hry/xHI0vwPvLf R4ZLfw3bWQSC71YrJcXaKwClI5CAiP8AKVckMBwkWfLNekeMPDUPjDwnf6DP cSW6XaKBMgBKMrB1OD1G5RkcZGeR1rg4fA3xAvfh1c+E9T8QaVbRxWi29nLY pIXmVeBHM5AxHtAX5F3HqSQGVwCTWNGttU/Z7s53srSe7tPDkcsEs0aFoQIE ZyjMj7SVXsATgYZThhJo+k2C/s8PFewziGfRHubh5445pSRFlZAAQG2hU8sE ghUjBKleLh8L+KpPhanhO8t/D97O1k1kZDNLFHAqoFhcAxuZHBG8nEeCBgcZ qTStB8YaX8NT4agtdDt76O0NpBd2d9NEo3K4M2BDkSAlW4PzMWbK8AgHB6zr 19Z/st6Z9ou4/tN6iWKSRTYPlCRsIDGCCfKj2srFeNwY7vlPqnivRoD8MdW0 gJBLHFpUkUXniKNAyRnYx4WNMFVOQFVcZGAOOb0X4c6lJ8JJvAeuy2kCBCIr yxnaUsxmaYFkeNcANtGATuGeV4qvYeEfiXaeGrzw23iHw/Jp6W5gsbiWxMkp jUKqROhHlhGUEMSJCNx+9wQAbnwfm8/4UaA/2me4xE6b5xhhtkddo5Pyrjav P3VHA6DpPEOmaVqmjTxazHaG0jRpTLdRRutuQp/ejzFZAVBJyQR1zxmsP4b+ ENR8FeF4tJ1DWPt+zmOJIVSO3ySzKpxufLsx3MemMKvOek1U6kul3B0eO0fU NmIBduyxbvVioJwOuB1xjIzkAHm/wAtoU+G6XKyRyzy3EiORMJGjVWO2MjaD GAWZwmT/AKwtn58Cv8DdHgs7fxLPGseyHWJ7S3BgljaJFCFgFkdigb93lSN3 yDezYXbueAPD/izwZ4QTQ54NKvWt97wP/aLopLSZKYFvlVwWOSXO7jgEbY/A HhrxV4PstStJ7Dw/Il7ez3w+yXksSRM6ALEsZhOE3KBnPAPQ4wQDH+FNlDD4 l+I+gz2MkVompkizlAFv5MhlChYSuAGQDJ5DLs4AHJ8JbO20/wCIPxHtbO3j t7eO9gEcUcqOqDM3A2ABR/sdU+6eVNangvwv4w8Ma54lvbldKuLXWbuS9jt0 1GYC3kO9sAGHB3FkUtwcLnBwBVjwd4a8T6L408Q6zqcWlNb63LHI4gv5pHtx GHCgCSP587gPvKBj5QBhQAc/4Vv/APhDfir42i8VXf2SPVpVurG/vJPLgljQ nEaySY3MqzRrtXIGxh0AzofCuwz4o8ba/Z2l9Fo2r3cM9lPex+W1xkSO7opw fLJkBUkcqR3BxX0uDx43iPxVf+Gn8OXFrcaq8Zu9VtZ4ZpPKRU8tdgw0cZDR hu7K5710Gman48sNe0228UQ+HJLHUJXtkbTGnEkcgieUMRIMFcRMMcHLA9sE A49PD2j6V+0da2sGnQWFrNpQuIre0kRYppFY4Z4mAHBj3BYwx3RpJ/e29Z8Q NM8KWejWcuqR3don9sJewxaREVnvb3a21fkXJd8EbsqcgfMKp3HhzxnN8SrT xelnoaLDp5sXtP7VuPnG5m3bhAB1YcMrDjPXBW58SvAl94vTSNQ0bUY7LWtH uPPs2nGYiSyE7vlJBBRSOCOCCOcgA5f4jyanc+Kvh/cajDaWaHXYRBaKY5Zw u9CWeTIKn7oKRhkBGTI3yCtD42TyWtv4SuPNu4YItdgd5IWgVUIBIOZeA4G4 qT+7+9v/AIaPE3grx94kTw/qc2s6MuqaXei6OnosqWJKtlHzy7Pxg5wMMQu3 BL7njjwhrviPwvp1vp+sQJren6hFqEVzPCFjaRS3AUBtqrv+UEOcKAxYktQB l/FfXjpuqeD7A6haWUV1qfnySXqSGAeVtKmQpIpwrujBT8pZVLMoU5k8b+Bd Y8U6dbS6t4p0rT/7Ml+2R39tpbxSQbQcnzGuDtXgMcY5RTnitTX/AAPN418F NpPie+jOoO4uEmsoysVrMF2gRqTl0GWzvJLbmI2/KF5vwx4G+IqSw6f4r8XQ XmgJ801tEfOlufm3eXJJJGGMZ5DAscrlMYPAB6xXl/xlhlb/AIQ2eC23TJ4g t0SeEp9pRjkhYxINnzFc/MQuUTII5HqFcP8AE/wPceNtDs49OksYtTsbtbi3 kvIRIjDkMhyG+U8EjawOwAjuADL+O+q3OmfDK4S1uY4De3EdrJneHdCCzIhX gEhed3BXeOpAPaX3hjS77wlJ4Ykg26Y1oLREHzGNAoClS2fmXAIJzggGs+Xw xeeI/CV/o/jC8gu2v9pdbCIwJbYVCFjJJLbXUuGbrnBXHy1j6No3xA0bwunh 2O70OT7Pi2tNWLyCSK3BCqxt/L2tIqZwN4Gdud2CWAM/4B6zeav8NVivH8z+ z7t7OFySWMYVHUEknpvKjGAFVRjiug+KlreXnwv8QxWNx5Ey2hlZ95XMaEPI uR/eRWXHQ5weCa3PDmgWPhbw/Z6LpqyC0tUKp5jbmYklmYn1LEnjA54AHFal AHmfwI1WxvfhhYWFvcxyXdg8qXUI+9EXld1yPQqeD04I6ggemV5XefDHWvDv iWfXfh1q1ppgu3Q3elXcZ+yuASTjAJAzgBQAVDPtZQQtblvpPxA1iKS28Qa3 pWlWp4LeH4pPPkUqwI8ybIjwSpyqluOCvUgB8RH8NXeh6bcazeXzQ2+qo1om lFmmuLuPzAIFKAkMSHXgqQw+8prj/ie+s3fiHwJNcpY6fI+txC0t2VLiRCXQ 75W3K3Hyho48pkcyklK6j4h/D248S2eh3Hh27g0zU9BlEmnq6AQKMpwQFONv lqRwRxgjnIy/E3grx94kTw/qc2s6MuqaXei6OnosqWJKtlHzy7Pxg5wMMQu3 BLgFP40aPZx3nhfUoLPyLyfW4I5r63tgztx8u4x4uGYBflWNh908htlWPjdb Qad4S8P3OnLBZX9hqtummOIolSFgrYUs5Cxx/ICeq/IoIxyNDxx4T8WeJ9O0 7T410O6Wx1CK/NxfyuEuCobMbQLEQI8uVA3sdqjJJJNHxH8L+MPHXhe30e2X StP3SrNdN/aMzK20uBHgQjcvKPk4wwxjgMQDU8aw6LF4g8MapfHUp9WtLiRN M0/TpAJLp3Ch8jI+RVUMxLKoGQ2QcHk9U/tFv2gPBcuqfYY7h7S6xb2m1/KU RS4zKcSSZOT8yIo5C7jvNanirwP4m1fxLofjLR7nTbDxFYIYJbaeVprVosv0 fywxJDsD8o4bggrlo9T8EeOL3xp4d8UjXdKku7KJo7i1milFtblwVcwIDufK sfvMpJQchSFQAj8ZXq6n8cPA/hu4ikNpbpLqZAmYLJKFkMRKjHKNDkHJzvIx jOY/2gLCzufA1nc3VpO/kahGDd28Yd7WNgQ7EHqpwo27kBbZluMHoPiD8P8A /hLf7P1PTLiDT/EOmSia0vXh3525ZY2/2d+05IbGDgHcc834k+H3jrxx4ast M8Sa1oyvb3CN/oUTgNgAGd2YfO4UyARqI1y+d3AWgDpPG39hQ+KPCt7f/wBq z6zbyzf2XYadkNcswQSbjwAqjDHc6rt3Z3DIrl9U/tFv2gPBcuqfYY7h7S6x b2m1/KURS4zKcSSZOT8yIo5C7jvNaHiP4deJZ9c8PeKNG8QwXPiPTIvs88up QqkNwnzknbGvy/6xlwP4SPmDLljU/BHji98aeHfFI13SpLuyiaO4tZopRbW5 cFXMCA7nyrH7zKSUHIUhUAPUK4fxt/YUPijwre3/APas+s28s39l2GnZDXLM EEm48AKowx3Oq7d2dwyK7SCNobeKJ5pJ3RArSyBQzkD7x2gDJ68AD0Arz/xx 4E1rU/GOjeMPC+o2lvrGnp5DRX4Jgki+f+6pIJ3sp9Q2QVK8gGHqn9ot+0B4 Ll1T7DHcPaXWLe02v5SiKXGZTiSTJyfmRFHIXcd5rQ8Yjxd4X8ff8Jfoujf8 JBpsunrZ3NogQTw7XJAjKpv2lmDHG/PzbgAEKmp+CPHF7408O+KRrulSXdlE 0dxazRSi2ty4KuYEB3PlWP3mUkoOQpCp0lzpHiOw8VR6vpdxaahBLpkdldW9 /N9nZ5I3Zkm3xxMCSJJAVCqOc88AAEfgDxP4f8WWuqatoc85kursS3dtc7RJ A4iSJflGcKViBBycndzkEDsK5Pwh4Obw9qmvaxdXMcl/rlws80UEapFABuwi 4ALkF2zIQC/BKg5z1lAHn/huK3tNR8RR+DlnvJLrVZn1G81Cci2tbnP7yNIg AzsuVOAqhxwZcqAMf9n+3S08G6zbRS+bHFrc8ayZU7wI4gD8jMvP+yzD0JHN SeEPh94v8EX99pWka1pv/CL3VwZhJNEzXsOUwSgwE38KMtuX5Q2zqp0Phv4K 8TeD31G11TWbS7sJb2S8WSJWa4unddpMzPwowqthckt/HgEMAeiVxfibwJ4Z +JFqJ9StZEuYHkto7y3mUSoElKsMqWUjKtwwJXc3CtkDtK4u20DxVoWt6pqG l6jpuoWmpXpuZdPvVlhMXybcpPukOfljBUptwvyhBxQB5/oN74v+FHjHRfCu u30ereH9XuPIsp8s8kWMRqqhmBjALQll+ZQD8uTmtj4tzz2vjz4fT2tlHfXM dxdNDbPPFCJXxFtXfKCoOcY4znG0hsEdRN4V1XxL4g03U/E81pDaaVcG4stM 0+WR1aUBNsk0jbd5Vg5ChFxnkkEg5/irw34t1vxj4f1mzttGii0S4meNZNSn VrhH2jnZENh2r0yw5wdwyCAR/C3xBZ+LZdS1W+t54/FVriz1BLmIKbZNzMsU eFGI9wc4bLgjDFtqmsv9oLTdNfwGdSls7Q6glxFFFcsiiULljtVtykjljtAf udo++lzxR4I8WXXjnTfF3habStN1JLRYr9ZrhzHcnPKMFiBdcYG4kEgJgIUB q58Q/Dfi3xt4TXRYLbRrMyuklxI2pTsFKsxCqFiUOCAhy3AOflyFegDQ+LSM /wAK/EARJHP2cHCWyznAdSTtbgADkv1QAsOVFangT/knnhr/ALBVr/6KWsvx toviHxX4In0VNP0ZLi9QrP51/MY4CrqyMhWIFzxnnaAQMhxkG54ctfEmjeEr XTJtP0p7qwtILa3KahJsn2KFZmJgzHwMgAPnOOOtAHB/CS/GjfDTxhqIljYW Wp3s4kjgjKnZCjZEcbhMcfdRwvYNjBq58PNO1vX/AIUWcS61YzWGoRXC3C3+ myvM5kkkEwaRbld2WL4bAJGDwa2Phz4a8T+Eor601SLSp4b/AFCa+muIL+Z3 QuqjaFkjJflRy0mecnJHPLv8K/GvhbXLqT4eeJoLDSLjLizvZGcRM2NwClHV vurhzhscHOMkAz/FVlcfC34KajoNr4i/tGS51A2Zb7OP3CSxbnh2mQ+XlQzZ 5/1nCgtvHqHivRtOj+GOraQEghsLfSpIovPDSJCscZ2MeGY7dqnIBb5cjJqv qPgNNW+H994ZvtUnmur/APe3WpGNRJLPuDhyo42gqqhc8IqqCMA1zdh4R+Jd p4avPDbeIfD8mnpbmCxuJbEySmNQqpE6EeWEZQQxIkI3H73BABufB/zf+FUa B53kbvKfHkbNu3zH252cbsY3Z+bdnd82a7iuP+G/hDUfBXheLSdQ1j7fs5ji SFUjt8ksyqcbny7MdzHpjCrznsKAPG/jBG3hbxj4U+IUU0gS1uFsbuNQrM0R 3sQikYyUMyklh1XGOTUnibw8nxG8JeL9aiaefMoGjGMLIHSzVxmNYzlvMke6 UFieGUgcCvQPHHhv/hLvBeqaGJPLkuov3TlsASKQ6bjg/LuVc4GcZxzWppOm w6No1jpdu0jQWVvHbxtIQWKooUE4AGcD0FAHl/gjX18f2/gu3laO4fSLd77U fNVrhhPGDbwF5DgK77pZgDlvkB/2jofHfWJtJ+GVxHBPJC9/cR2hKKcspBZl yGG0FUIJw2QSuPmyNzwD4Ft/AsWtW9sIDDeag09uyKd6wFV2RMTknYd4HJzn PBYgbniPQLHxT4fvNF1JZDaXSBX8ttrKQQysD6hgDzkccgjigCO+8MaXfeEp PDEkG3TGtBaIg+YxoFAUqWz8y4BBOcEA15n8JJLHxd8HJbPxXDaXWn6ZcS26 yXZz5cSxhtxdj8hVZGUMCu1QMYxmuo0DRfHWkeGl8Ovf6Nst0NvZ6wodpYoV GIy1sUCM4Ax/rMDgnfg7tzTtEfwj4XsdG8M2UFxHa/IEvrxosgkszl1jfLFj nG0Dk4wABQBwfwO0DSLr4V5utNtLj7fcOboT2hxLsf5AxfIkC4yCuFBJGNwY nP8AH+panpPxutL7RdKj1PUovDjtb27SRqS2+bLKGBZyBk7IyrsMgHG4HsPh d4Y8Q+DPD40LVxpstvG7yRXFreTO2WIO0xugCj7xypA6fLksxp3HhzxnN8Sr TxelnoaLDp5sXtP7VuPnG5m3bhAB1YcMrDjPXBUA1Phlq9j4i8KxaxDfyahq cqRxaldSx7GE6oGMQG1QETecBRt+YnlmYnn7nWLm9+PVzpljrVpZ3dpo4ggh uoHuInLMssmF8yLbLt8s/LvBRSSQVwJLjwR4s0n4oXnifwrNpUGm32w3thc3 Dqt0QPmbakRCNnJDZY7ixJIYrVj4g/Dm/wDFv9n67pF//Y/iq0iEQmiuZBGU Odyb1AYY3vhgoyCQRyNoBI3gGZ/iHa+J9Y1zTWe4t3sJ7C308wJqCmN/lfdM /mHbzgg8RDj5cjn/AAFpGi2nxw8ZQ6X9kS0tEiaC1iuAVSUqBIyR4PKs0iEg jy/MKYw/y9R4V8O+NLZ5dS8X63aaxqFujjTrWJVit42ZRl2YRA7zygO07VZ8 Z3kCvonhvxbp/wASNY8TT22jfZNXSCOa3j1KctCI1Vdw/dBHOAxwyg84DKC2 4A7yxsLPTLOOzsLSC0tY87IYIxGi5JJwo4GSSfxqxXP+KLTxTd/2b/wjOqWN j5d2r3v2u3MnmQ9wP8PlJ4w6Y56CgAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiisvUvEug6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXp viXQdZuGt9L1vTb6dULtHa3SSsFyBkhSTjJAz7itSgAoqvfX9nplnJeX93Ba WseN808gjRckAZY8DJIH41X0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEc igDQooooAKKKKACiiigCvfWNvqVnJaXcfm28mBJGWIDgEHa2OqnGCp4YEggg kVJBBDa28VvbxRwwRIEjjjUKqKBgAAcAAcYqSigAooooAKKKKACiiigAoooo AKKy9N8R6Rq+qalpun30dxd6Y6peIgJETNnA3YwT8rAgE4IIODRbeJNFvdZk 0e01S0uNQjSR5beGUO0QRlVt+M7SGYDBwevocAGpRRRQAUVj6N4q0LxDeX1r o+pwX0lj5f2gwEsi7wSuHHyt0P3ScYwcGtigAorHtfFWhX3iGfQLPU4LjU4I mmmghJfy1V9jBmHyhgxAKk7h6VsUAFFFFABRWXq3iPSNCuNPt9Svo4J9RuFt rSMgs0shIAAABOMkAseBkZIyK1KACiiigAooooAKKx9M8VaFreoy2Ok6nBfz QxCaRrQmWNFJIAMi5QMSD8pO7AJxjmtigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDze3+Ge s6BLJF4P8cX2kaY/IsLm1S9SE7mbEZcjYvzdMEnGST26jRPDlxZ+Rda5q8+t 6rDu23MqCGNAcgbIE+RW2kjfguQzDdtO0dBRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/ E5Ff4ZeIg6RuPsTnD2zTjIGQdq8gg8h+iEBjwprrK5P4nIr/AAy8RB0jcfYn OHtmnGQMg7V5BB5D9EIDHhTQBT+D9t9l+FGgR7Z1zE8mJ4vLb55HbgZOV5+V v4lwcDOBsX3jbw7p0si3GoYjilEE9xHDJJBBIWC7JZlUxxsCRkOwIyCcAivO 9L1Kbw3+zAt7brd2E62TiNnBaRWlmKh1wUIDF9yn+EFT8+Pm7j4f6VYw/C3Q LBbaNrSfTI3lhk+dXMqb5Mhs5DM7cdOcdOKALHi+DSNZ8C6jcXUWm31mtlJd QyXSmWAfumKyAplsYJO5PmwTt5rg/ht448NeEfhD4eGuavBaSSeeVhw0khBu JsNsQFtvykbsYyMZzVP4YXc2maX8RPDC3Mh0/QbiZbOWaUh41PmqctvjCj90 G4aPBZjuXOR0HwU0nTW+Elg7afaF79J0vGMK5uFE0qgScfOApIwc8HFAHoGl arY65pdvqemXMdzZ3Cb4pU6MP5gg5BB5BBBwRWP/AMJ74bF7bWj38kcl26pa NLazIl0S6IPJcoFlBMiHKEjB3fdya8v8A6KuoaX8UvBenzyQwR3s0NpbksiQ lvMRCZVJdgfLUMpBGE/i3sKuaT8QbjSZdI8IfEfw1/Y6p5Qh1FGCWzywsjxE BAEVQRHkqxUHghVJCgHtFRzzw2tvLcXEscMESF5JJGCqigZJJPAAHOakrl/i Jb6Fd+BNSg8S3s9lpDeV9ongBLpiVCuAFbq20dD1/GgCNfiV4S32Sz6nJZpf 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 JookRmUsiyqhLO67lHlBmX5iMMoB6DxV4G0Xxd4ai0G+ikt7OB0e3+yERmAo Co2jBXG0lcEEYPHIBHF/GU2Gqad4NEU/2prvW7cwQ280b/aImByyI58qTqgD OCo34JAY5APSLXWrK706e/3T21rBuMr31tJa7AoyWIlVTtA/i6cHng1np410 F7y1tjdTx/bJRDbTy2c0cE7kEqI5mQRvuAO3DHdxjORXD/GvU4hL4R8PXUM8 lhqmqo14IWfMkMbIGj2INz7vMBAHOUGATjHUfFLRrPW/hrrsV4mfs1pJeQuA NySRKXUgkHGcFTjnazDIzQB0Gs65pfh7Tnv9Xv4LK1XI3zPjcQCdqjqzYBwo yTjgVn/8Jt4d/wCEv/4RT+0P+J3/AM+vkyf88/M+/t2/c56+3WvHPE503xD+ zhYeI9Wjjl1xEjgt726dTcSMk5QqHAUuCokbac8ZJ3MC1ex6R4a0aPw9pNtH p0Ea2toY7eSO3e3khEiYkKbj5sTNk5+bfk8knmgCOfx74btreW7e/kNjGhdr +O1me1IA7TqhjY5+XAYkt8o+birniTxTo3hHTo7/AFy8+yWskohV/KeTLkEg YQE9FP5V4/Y+ItR8BeHI/Bfj/QZ7TShmC113S0UohLkxyDAwJFKtIG/1nyqx Qtlj7ZNBpuu6WEnitNQ0+5RXCuqyxSrwynnIYdCD9DQBYgnhureK4t5Y5oJU DxyRsGV1IyCCOCCOc1JRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABXmc3gbxbc3Hi7T7nXo7nR9ef8A0eaa6nMlghLsUSEYBHzB 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 AeR6B8P/AIkaci6Jc+PI4fDsCGGI2sIa6aLdgKGdMxHaTgh22EAAEAY6T4je B7jxV4SsdK0SSxs5tPu4bi2inhBgIRWUIVwQFAbptIO3GMHI7iigDi9f8E3P jfwU2j+Kru0+3lxPFPp0LxpbyhcDh3JkAJcHO3IPRTg1Xk0bxtrvhqHw/wCI X0ZYp08nUdQsrqbzZYsHPlxhECuflySxT72UIOyu8ooA4Px14S1XWvBD+EPD 9rpsGnm3ghjmur2RWiETqQoQRtuG1FGS+eTxxz0mjWupv4eSx1yKCK4EQgZr G+mk3rsALiRwsisTnuzDg7iea2KKAPO5/Cvi/VfBEvhDVr3TZ45EMLa1I7TT vGH3Ixt2jC79oVc+ZkH5wxYc7Gt6L4jsfBVjongm/tLW7tUht1udQG4iFFxk YQgudqjlcYLdDjHWUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUVTGq2Lay+ji5j/tBLdbo254bymYqHHqNykHHT jOMjNygAooooAKKKKACiiigAooooAKKKKACiisPSPFVjrXiDW9GtobtLjR3i S4aaLy1YyAkbM8kfKeSADwRkEGgDcooooAKKKKACiiigAorn9U8a6DpF5d2t 1dTtNZRLNdi2s5rgWyEEgyNGjBMhSfmI456VuQTw3VvFcW8sc0EqB45I2DK6 kZBBHBBHOaAJKKKr317Fp9nJdTJO8aYyIIHmc5IHCICx69hx16UAWKK5Oz+J HhnULi6t7KbUrme0fZcxw6Rdu0LZIw4EWVOVIwfQ+lWF8daEdUstMdtShvL5 yltFPpN1EZSMbsbowMAHJPQDk4FAHSUVh3/iqx07xZpHhyaG7a81RJXhkWL9 0ojUsdznAzgHhckcZwCCdygAooooAKKKKACiiigAooooAKKKKACisPX/ABdo /hdGl1iS7ggVA7TrYzyxIC20bpEQqDnjBOeR6ijQPF2j+KEWXR5LueBkLrO1 jPFE4DbTtkdApOeMA54PoaANyiisvX/EekeFtLbUtavo7S0DhN7AsWY9AqqC WPU4APAJ6A0AalFY/hbxJZ+LvDlprlhHPHa3W/Yk6gONrshyASOqnvWxQAUU UUAFFFU59VsbXVLPTJ7mOO8vUke2ibgyiPbv29iQGBx1xk9AcAFyiiigAork x8RvDknje38I2tzJdapI8qSeSmY4GRC5DsSBnAIwu7BBBxXWUAFFFFABRWH4 t8VWPgzw/LrOow3ctvG6oVtYt7ZY4GegUe7EDoOpAO5QAUUUUAFFFFABRWHf +L9D07VP7Lku5J9QCF3tLK3lupY1G3l0iVig+dcFgM54qxpviTRdXuGtbDVL Se7RC8lqsoE8QBAO+M/OhBIBDAEHg4NAGpRRRQAUUUUAFFFFABRRRQAUUUUA FFFYfiHxVY+GrjSILyG7kfVb1LGAwxblV3OAXY4Cj2zk84BwcAG5RRRQAUVy et/Ebw5oXiWx8Oz3Mk+rXlxDALa3TcYvNOFZySAo6cZ3YYHBBzXWUAFFFZ+s a3p2g2aXWpXHkxySpBGFRpHlkY4VERQWdj6KCeCegNAGhRWXpHiHTNde7isJ 5DPaOqXEE8EkEsRZdy7o5FVgCDkHGDzjoa1KACiiuX1P4heHNG1GKw1Ge+t7 qaUwwI2l3X79wQCIyI8SckfdznIx1FAHUUVy83xD8MWl5bWt/fT6bJc7vJOp WM9oj7RlvnlRV4479wOpFdRQAUVT1TVbHRbBr/UrmO1tEdEeaThVLuEXJ7Dc w5PA6nA5q5QAUVT1LVbHSLdZ7+5jgR3EcYblpXIJCIo5dzg4VQSewNZdj410 G/1yPRI7qeDU5IjNHa3lnNbPIgzkqJUXd0PT+6x7HAB0FFFFABRRWHr/AIu0 fwujS6xJdwQKgdp1sZ5YkBbaN0iIVBzxgnPI9RQBuUVh6B4u0fxQiy6PJdzw MhdZ2sZ4onAbadsjoFJzxgHPB9DW5QAUVl6/4j0jwtpbalrV9HaWgcJvYFiz HoFVQSx6nAB4BPQGo/C3iSz8XeHLTXLCOeO1ut+xJ1AcbXZDkAkdVPegDYoo ooAKKKKACiufm8a6DHqNxYRXU97dW2BcJp9nNd+SSWG1zCjBGyrfKcHjpRp/ jjw1ql5b2Vpq8D308skK2bBknV0Dlw8TAOmAjfeA7eoyAdBRXJ6R8SPC+v8A iX+wdHvpL67CSs7wQO0SbCAcvjGDnhhlTjrkqG6ygAooooAKKKw/Fviqx8Ge H5dZ1GG7lt43VCtrFvbLHAz0Cj3YgdB1IBANyiiigAooooAKKKKACiubtvHv hu8uLaKG/kKXVwbW2uWtZlt55QWGxJygjYkqwGGOSMDNdJQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABU c88Nrby3FxLHDBEheSSRgqooGSSTwABzmpK4v4hm91G30zwxpsccs+rXGbmK R5YlaziG+YGWMExhj5cWSDnzcY5yADzCK/1Pw7418L/Ee/MkUHit3g1CKZo/ KtYHZfIzMFwAIvKfkBj5LZPJC/QdeX/E7QfE/i7wNe2U+haUJLf/AEuBrfU5 ppA6AkhIxbrvZlLKAT1b1Arc+FXihfFnw+067aSR7u2QWd2ZHZ2MsYALFiBu LKVfv97GSQaANS58WQDUWsdK06+1qaPeLhtP8ox27KQDG8kjogkyfuAlgBkg DBMmgeLtF8SeGl1+wvYxYBC0zTMENuVGWWTnClRyecYwQSCCeH+A2tw6z4O1 GR/L/tQ6nNPfsJAWnkkwwlKDAQEfKABg+WSO9HxBg0jwd8MPF2neGoo7CeRI rm5hjUlQtzKIWIDZVQyo67VxtxwBxQB0mofESw06zuNTm0rVTolvLHG+rLFG ICHKASIC4kkjy4+dEYHkruFdBfa5penaHJrd1fwR6YkQmN0H3IUONpUjO7OR jGc5AGc1j6Fb6F4s+GumW32GCTRrvT4o/sfmmVYlCgeXv6lkIxu4YMueCK8/ +JsulxweALGBseGrXW1tbiOaDNsogcQlZJJDkbQsq4OQ43kn5RkA7y8+IGm6 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 ycAFj6KrMcAEgA8nvtQstL/aOkubrUYCg0QKYxdSK6OWAWJYwW82RuGEQC53 hgpcZbsPC3xG0vxVrl7okdhqum6naRCaS11K28pyhxzgE4xuTrjO4EZ5xzd7 JDP+0vpykxq8GhFQJwELsXkP7rch3na38BXgP83yshk1ZbyL9o7QJYIvMgm0 SSKcpIcxKrStuZVbhSxjUFwVJPHzKCoB2F94sgg1yTRbDTr7Vr+GITXMdj5W LZTjYJGkdFDNyQuSxAJxjBNfw14/0LxRZ6hPbyT2UmmZ/tCC/iML2mC4/eE/ KPuMTgnGOcHisOzvbHUPiR4hj8KaZaLrESRxatrd03nRxkKuyKONXBYnaysA YwpjydxABy/hnaXFv8UPiEJ7++uGjltkY3RBaUkOQ7ExoRgDChQECtgbwFag DcT4veFJn1xbWa7uxpCb5GtYDKJ1CsWaPbk7FK4MjbUBZfmwwJr3Xxq8IWfh ix1ueW7U3yO9vYiJWuGVZDGSQG2qMqxBZhkA4yQRWX4EiSX42+P7lF8zy/Ji 82OdZ0UkcqXYeYrZT7i/Iu1lP3Eqx8fo9/wvnby92y7hbOzds5IznY23rjOU 643HOxwDqPHvie98J+F7vU7HTPtkkUTMJJJ444YTkAGTc6s2c8KgJYjbwSDX P+FfFl/pXw107UNR8J6r5MOni6uLqCe1kWVdu9pzmZXLOMyNld25j1PJ6D4j zeR8NfEb/aYLfOnzJvnGVO5Su0cj5mztXn7zDg9DH8MUVPhl4dCJGg+xIcJb NAMkZJ2tySTyX6OSWHDCgCx4M8ZW3jfS31Ow03UrWzD7I5b2NEExGd2za7Eg EYJ4GeBkg4k0PxSda1jUNNOharYyaftE8t2sPlh2VWCBkkbc21g3HQEZIJAP n/hrV/8AhWfi3XfBl6u7SBE+q6KBNmZ1dgBaxIznexbcFXIYsrHB38egeDNJ uNI8ORi/hgi1O8llvr8QxhQJ5nMjLwW3bdwQHJyEFAHQVzfxAtb69+H2v2um pI93LZSKkcf3nGPmUDY2SVyMAZOcAqTuHSV5Pa6snxJ+J2r6FdzbfD2g4WTS 5JFBvrmORh5jKBloVPVS2MiIkfMQADL8NPD4/wDg/pHhLS7KRoC8Nvq11HEL WO0WOQSORncJJXC/w5yX3PsyFr0DTfiT4W1fWW0ewvbufUEcpJbrp1yGiIYK d+Y/kAYgEtgDvivL717v4I/Ei91RbKR/BmtuS620SMY5ArMqL90IVYttGcGM nqV+X1zwnpn2bTm1S6msbvVtV23N5fWS4jm4/dqhycxom1VPcDceWbIB0FFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAVxdl4T8RweNZPEl14j024eW3jtHtxo2wJCrbisb+cXUkljklhluQ dqgdpRQBXvkvJLORbCeCC6ONkk8JlReRnKhlJ4z/ABD156V5/wCCPhvrvgjU bmW28WQXNjeS+bc2LaUI492RlowkoEbY+XgbcYyp2jHpFFAHlevfBdbrxLda 94b8Ual4fvL13e78gs4csQx2kOjKCwLEEsMkYwABXaaV4P07TPD17o0s99qM N/5n22e/uWkmuN6BDufjHyBVGMYCjvzXQUUAeR6b8EJtGv2j0vx34gsdFZy7 WVrKYpC2wDJkUhc5A58voAPeu81jwXoWueEk8M3dp/xLYokitwrEvBsXajIx yQwHc5zyDkEg9BRQBxcHg3Wrrw/FoPiHxVJqOnqgSZ4LU29xdID/AKuWXzGy hX5W2hWYdW5bd1E+lWNzo0ujvbRjT5Lc2rW8fyKIiu3YNuNo28cYx2q5RQB5 /wCGfhve6BANIuPFE9/4Yj8wRaS1nHHkM5fbLKPmkXk7l+UNnBG3Kk8I/Dm/ 8E6Ottpniee4uuVP2+OSW0jQszERW6yqEYkrlizdDjG416BRQBw/g7wb4g8G +HP7EtvEljdW8W42rT6UwMRZwxB2zDcvL8cHLZzgbaPhx4CvPh/p1xpv9swX 9jNK1xj7EYpBIQi/e8xhtwnTbnJ69q7iigDg/Bvw/wBT8F29zZ2fi27uNPDy PY2U9rG0cJYN/rD99wCVbCNGCQx/iNHhvwNrXh3xBrusJr2mzS6y/mzx/wBk GNUdQ+wqFmHG58tnJbHLAktXeUUAcHoXgbWtD8Y6nr8OvaaE1V42vrKLSDHG 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 jxHOtrqe6Q2dzbib97htrSSs291Vnc4BVjkZY4JPoFFAHB6V4G1rTfHl/wCK 317TZZ9RSOK6hGkFRsQKMRuZiyEhPUjPJU4GLHxD8E33jzS10pdXtLGw3pKw bTvPlLru5VzIAowR0XPBG7DEV2lFAGXc6VNqvhq60nWLmOV7y3lt55rSIwja 4K5VWZ8EKe5PIz7Vz/hTw+3gDw+Br3i2S9tLNPJgluyttBbRErhTljuO7ABd jtGFUKCd3aVl+I9AsfFPh+80XUlkNpdIFfy22spBDKwPqGAPORxyCOKAOP8A F+l6D428Y+ENPmSO9EKS6r5sMqSL9nHlgK6E4aKVinzAMT5ZAGGZl9Erm/Bn gbRfAulvY6PFITK++a4nIaWY843EADABwAAAOT1JJ6SgArzfVvhVK3jSXxX4 X8ST6BqVxu+0hLRJopMhQcJ8o5ILHduyx3cEV6RRQBx7fDvS9U06SHxVNP4i upthe4vDs8sgKCIFj2iFSVyQvLfxFq5fRvgn/Z10lveeLtVvvD0Molh0ZuIT iUSKsoLMjrkHcAi5Jzx0r1iigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACuf/AOE78H/9DXof/gxh/wDi q6CvG/i/pMOgeJfDfxBt9PjZLK9RdVeOESO8eV2MVI2ZADKHJBBaMA8LtAPY IJ4bq3iuLeWOaCVA8ckbBldSMggjggjnNY8HjTwrdXEVvb+JdGmnlcJHHHfx MzsTgAANkknjFbEE8N1bxXFvLHNBKgeOSNgyupGQQRwQRzmuP8F2ttqus654 zVLR31G4aztJYNj/AOjW7GINvCAku6Mx5YbRGM/KKAO0orL1LxDpmlXC2txP I92yCQWtrBJcT7MkbzHGrOEyMbsYzgZyRUmja5pfiHTkv9Iv4L21bA3wvnaS AdrDqrYIypwRnkUAV7XxVoV94hn0Cz1OC41OCJppoISX8tVfYwZh8oYMQCpO 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 EEdxuUng1c8BaIfDngyy0Y+WfsbzRb0jkjEmJX+fbJyC33jglck7SV20AdJR XP33jXQdNlkW7up4oY5RDJdmzmNsjlgmGnCeWMMdpy3ykEHBBrQ1nXNL8Pac 9/q9/BZWq5G+Z8biATtUdWbAOFGSccCgDQork5PiV4Sj1SHS11OSfUJU3C0t rOeaVcZyrIiEo42nKMAy45Aq54b8a6D4u8w6HdT3cceQ032OaOMEYyu90C7v mB25zg5xigDoKy9N8R6Rq+qalpun30dxd6Y6peIgJETNnA3YwT8rAgE4IIOD VeHxdo8/iU+HkkuxqgRpPJexnQbFJBfeyBdmRgNnBOACcio9A1vwtrWsas2g XFjdX0fk/b7i0QHzMqfLzKBiTADDgnbgjigDoKKz9T1qy0jyhdNO0kuSkNtb SXEjAYy2yNWbaMqC2MAsoJyRk0fW9O16ze602486OOV4JAyNG8UinDI6MAyM PRgDyD0IoA0KK5vWvHvhvw/cXUGo38iPZpG90YrWaZbcSHCeY0aMELdgxBOR 6itz7fZ/2d/aP2uD7D5Xn/afMHl+Xjdv3dNuOc9MUAWKK5+08a6DeaxDpC3U 8OpT8xWt3ZzW8jja7bgsiKSuI3+boCAM5IB6CgAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKy/EmiQ+I/DWpaNP5YS8t3iDvGJBGxHyvtPUq2GHI5A5 FalFAHhfgvxzfDwHfeD9Xlks9cs72Hw9bTQjBiMxMSEMhwXiCStn5QRGo3bj mvbLCxt9M062sLOPy7W1iSGFNxO1FACjJ5OAB1rl4fAtvF8VbnxniD97p6wB CpdzPnDSgnhMRqiDb1y2cfxdhQB5X8EZzrFl4n8RXUsdxqF/rDpLcxNJseNE UxhA/IQeY20EAgEA9ABTP/FMftKwWem/Ja+ItPM97D0TzFEp3qq4G7MOctk/ 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 7jaLovgN/FniCwnkivNRt5NRmgkIlAMKszOkeVZhukyw3gZYAFQRXN+J/hbr sfjSbxd4F12DStSuuLiCaMCJsjDtkKwbcQrFWU/Nlt2cCuw8J+HtZ03df+Jt c/tnV5IliDrbpFHbJ1ZIwoGct95uNwSPIG0UAcn8NxrOvfDezFtrfh+4tpUk S7hm06e6YyOxaQTM9wpZ2LlmBUD5+MqQTXPw1vtO+E2qeFdL1qPWdQtb1bq2 SX93HG48uTyHjLMhBGWCP8pMgJA+9VN/hX418La5dSfDzxNBYaRcZcWd7Izi JmxuAUo6t91cOcNjg5xk9xqHhDUX8CXGlWWsbtdkljvTqlzCuZbpJUlVmUDA XKKgGG2oqjDBcEA5vRfiHDrHifSNB8ZaVd+HvEVpcNNbK5H2e6k8t4flY84Y yS7QMglVw7E4PqlcPqvhPVPFuuaDf64tjp0Oi3Yu44rKX7S9w4wQDI8SGNQV GQN2/POCqmu4oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisvUvEu g6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXpviXQdZuGt9L1vTb6d ULtHa3SSsFyBkhSTjJAz7itSgAoqvfX9nplnJeX93BaWseN808gjRckAZY8D JIH41X0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcigDQooooAKKKx77xZ 4b0y8ks7/wAQaVaXUeN8M97HG65AIypORkEH8aANiiuf/wCE78H/APQ16H/4 MYf/AIqtTTdW03WbdrjS9QtL6BXKNJazLKobAOCVJGcEHHuKALlFRzzw2tvL cXEscMESF5JJGCqigZJJPAAHOaz9D8R6R4lt7m40a+jvILe4a2kkjB2+YoBI BIwwwwO4ZBzwTQBqVT1bTYdZ0a+0u4aRYL23kt5GjIDBXUqSMgjOD6GrlFAH n/gD4W2/gvZLearPrF1b71smmUpHZI/LiKMswVmOdzA8jjjnd6BRRQAUUUUA FFRzzw2tvLcXEscMESF5JJGCqigZJJPAAHOap6JreneI9Hg1bSbj7RYz7vLl 2Mm7axU8MARyCORQBoUUUUAFFFFAFO80qx1C4tZ7y2juHtX8yAS/Msb5BDhT xvGOGxlcnBG45uUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8aALFFZ+i a3p3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkVoUAFFRzzw2tvLcXEscMESF5 JJGCqigZJJPAAHOaw/8AhO/B/wD0Neh/+DGH/wCKoA6Cio4J4bq3iuLeWOaC VA8ckbBldSMggjggjnNSUAFFY83irQoPEdt4efU4Dq9xu2WiEu42pvO7Gdny 8jdjPbNbFABRRRQAUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8ax/wDh O/B//Q16H/4MYf8A4qgDoKKx7HxZ4b1O8js7DxBpV3dSZ2QwXscjtgEnCg5O ACfwrYoAKKKKACiisvVvEekaFcafb6lfRwT6jcLbWkZBZpZCQAAACcZIBY8D IyRkUAalFFFABRRRQAUUUUAFFFZereI9I0K40+31K+jgn1G4W2tIyCzSyEgA AAE4yQCx4GRkjIoA1KKKKACiiigAooooA4PT/A2tWnxBm8Xza9pslxc262s8 EekGNTEChOCJid/yAbm3Y6YwAB3lZ+p67o+ieV/a2q2Nh52fL+13CRb8Yzjc RnGR09RVex8WeG9TvI7Ow8QaVd3UmdkMF7HI7YBJwoOTgAn8KANiiio554bW 3luLiWOGCJC8kkjBVRQMkkngADnNAElFZeh+I9I8S29zcaNfR3kFvcNbSSRg 7fMUAkAkYYYYHcMg54JrUoA4f4ifDv8A4Tv+yZ4NZn0q+0yVpIJ4o9+N20ng MpDAopDA8YPByCOk0DQLHw3pa2FgshBcyzTzNvluJW5aWR+rOx6n6AYAAGpR QAUVj33izw3pl5JZ3/iDSrS6jxvhnvY43XIBGVJyMgg/jVf/AITvwf8A9DXo f/gxh/8AiqAOgorDPjTwqtulw3iXRhA7siSG/i2sygFgDuwSAykjtuHrWhpu rabrNu1xpeoWl9ArlGktZllUNgHBKkjOCDj3FAFyiise+8WeG9MvJLO/8QaV aXUeN8M97HG65AIypORkEH8aANiiise+8WeG9MvJLO/8QaVaXUeN8M97HG65 AIypORkEH8aANis+10TTrPUZ9Rit919NuDXMztLIFJ3GNWckrHkZCLhQegFW Ib+zuPs/kXcEv2mIzwbJA3mxjbl1x95fnXkcfMPUVYoAKK5//hO/B/8A0Neh /wDgxh/+KroKACiiigAorn/+E78H/wDQ16H/AODGH/4qtixv7PU7OO8sLuC7 tZM7JoJBIjYJBww4OCCPwoAsUUVj6r4q0LRNRstO1HU4Ib6+ljht7bJaR2cl VO0ZIUkEbjhc96ANiiiigAooooAKKjnnhtbeW4uJY4YIkLySSMFVFAySSeAA Oc1jweNPCt1cRW9v4l0aaeVwkccd/EzOxOAAA2SSeMUAblFRxzwzPMkUsbvC +yVVYEo20NhvQ7WU4PYg96koAKKKKACiiigAooooAKKKjnnhtbeW4uJY4YIk LySSMFVFAySSeAAOc0ASUVz/APwnfg//AKGvQ/8AwYw//FVuQTw3VvFcW8sc 0EqB45I2DK6kZBBHBBHOaAJKKKx5vFWhQeI7bw8+pwHV7jdstEJdxtTed2M7 Pl5G7Ge2aANiiiigAooqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH40AWK K5//AITvwf8A9DXof/gxh/8Aiq6CgAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACisvUvEug6NcLb6prem2M7IHWO6ukiYrkjIDEHGQRn2NalAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuP sTnD2zTjIGQdq8gg8h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEH kP0QgMeFNAFP4P232X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvD unSyLcahiOKUQT3EcMkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut 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 4o+Onh/XPD/n6ha6ZaTQahfw4azTMb+WiSdGkzN8wBPDL6NiP4q6bpsHjXwH qEVnaR6hca7AstwqKssqhox8x3AsBhRyjY4+ZM4cA9E1jxX4f8PypFq+tWNl M+wrFNOquQzbQ23Oduc5bGBgkkAEjP8A+Fi+Ef8AhKP+Eb/tuD+1vN8jydr7 fMx9zfjZuzxjOd3y9eK4f40aLYNeeF7u3tZ4dTvNbgie40+COOeUYwMTlRtk GFCBnA6nB2ZWx8braDTvCXh+505YLK/sNVt00xxFEqQsFbClnIWOP5AT1X5F BGOQAemarqtjoel3Gp6ncx21nbpvllfoo/mSTgADkkgDJNU9M8UaTq+oy6db TTx30UQna2u7SW2kMZJUOFlVSy5GMjIBxnqK4vxjqVzP8YPB+iWWox2txHb3 V3GskLzxu7RsgMkYaMYCLLtYOxySCoByZNZ8AX+o+MtD8Wan4msbS602WKMN aWMkHnoZBiElrhgNxdk4HPmEHdwKAO41PWrLSPKF007SS5KQ21tJcSMBjLbI 1ZtoyoLYwCygnJGY9A8R6R4p0tdS0W+ju7QuU3qCpVh1DKwBU9DggcEHoRXn fhnV7/Wvih44TS9dsYLqGWG3+zXdrJcqIoQyZi/exEYdn3jaVDMMM27J1NI+ HcNl411fUtY1PTb5Nbt8z6OlgIoJWRoz53ltI+4huSSD80pORnkA3Lj4i+Eb bTrzUZNbgNjZypBJcxq8kbSONwRGUESNjkhNxUdcUaj4p8HT/wBhDUbyxmk1 CW3n0uGaLfIXkz5UqoQWTuA5AweMg1wfwY0HQDceNXtLS0uLQ6nNYwuYWlVr TJwglYlHQgjKjngFiwZMHxP0HStP8a/Du8sbS0tJzrEMDLBDHGZEVogucEMQ gUKMKQAcEr8oYA9M1jxX4f8AD8qRavrVjZTPsKxTTqrkM20NtznbnOWxgYJJ ABIz/wDhYvhH/hKP+Eb/ALbg/tbzfI8na+3zMfc342bs8Yznd8vXiuH+NGi2 DXnhe7t7WeHU7zW4InuNPgjjnlGMDE5UbZBhQgZwOpwdmVk+O1lY2ngrRJIJ Y9Mns9ThisbiGHAthtbgFPmjQBQ3yBjmNQF7gA9Q1XVbHQ9LuNT1O5jtrO3T fLK/RR/MknAAHJJAGSaxx4+8LrcPb3erR6dOiK/l6pG9izKxIBUTqhYZUjIz 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 5pZYd62tth90oyyhnG0sF5B2EEcrkA4/4f6/plo/jtfEjR6h4ln1OaK70+2W S4e8iRSqxQxNkugPmgD+Fcb8KAR2Hg7U9K8F+DtK8P8AiLxPpsWrWduouIbu +jWSEt84jILnhVYKD0IUEYGBXn/jXw9c/CXxLpPjfw5Bd3lmqGDVxPO7tO7H mSZ9xOZC2c7dquinBJArvNLtdG+IXi208Yw28FzpmmRNBYTzWjpJPPuDGUFs bo4/upkcOZTxtUkA7yCeG6t4ri3ljmglQPHJGwZXUjIII4II5zUlFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeZzeBvFtzceLtPudejudH15/9 HmmupzJYIS7FEhGAR8wTAkUEKCQwylemUUAZcPhzSLbw0fDsFjHFpJt2tjbI SoMbAhhkHOTk5bOSSTnPNcf4b8NeMvBOl3uhaPJo2paXG7tpUt/PJDLbhssV lVIiJAGOeCpPPIyAvolFAHN6J4Qh0bw1faWuoXbXepPNPfajEwilkuJRh5UA 4jPTaAMDA6nJOH4R8N+MPBmjr4dtpNDvtMgyLS9kaaGaPezO7SRAMr4Z+FDp kLywzkegUUAcnZeCF0/wdqWjwapdpqGpPLc3OqRs0UjXcmCZgqMu0BgvyKQM DBzkk4+t+D/Efjfw1Y6B4ml022iheGW6vbSTz5blkGG2o8KCEtkncpOPu4IY 16JRQB5/4vl8e6V4ms9W0nUdKk8PebbW0mmzoUd3llEXLhGPWRTuBGMfcbB3 U/it4N8VePbKDSdOGjW2nwXAuPOuLmXzZGCFQNqxkKBufu2flPHIr0CTSrGb VIdTmto5byBNkMsnzGEHOdmeEJDEMVwWAAOQBi5QBz/2zxh/0AtD/wDBzN/8 i1T0/wAO6lqGm+JYvExtEn1p3hB0+Vn8m1MQjSMO6g5BMjdNu52YAbiK6yig Dyvwx4J+IfhO3fQNP8TaM+ghGW3uZrJmuLYsGYskYIUne38bsMAHHVTofDf4 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 E5dmYoExuxufbllzuwegapPDvgfxf4c8Y+ItSXXLS/s9TdJ/MudwupWjyY4m IUpGh3FGZVb5QNqoSNvplFAHneieGvFWn/EjWPE9xYeHzBqyQRSKt5K09uqK qnY5hAYELkrhckLyNvMei+F/GFh8UNV8VTrpQsdViihnsotRmPl7BGok5hAd gEbAIX75GRzn0iigDxu7+FHivw54lv8AVfh54jtNOg1F2aazuYgqRDIYKoCO rAEtj5VKjgE5Jr0DSfCjQ6NqFp4g1KTXLvU0aK9upIlg3xFSgiVU+4gUscA/ ed24LGukooA8X0z4Z/EXwtqMtj4Y8aQW/h5pR5a3a+dJFHkk4jaMoGBZvulQ 5wTjoPXNK02HSNLt7CBpHSFMGSUgvK3VncgDc7MSzHuST3q5RQAV5v8AEn4a 3nivVtL8Q6FqEFhrumbfKedCySbZA6ZPIXad5+427dg8V6RRQBxdtoHirX7e S38aajpq2DpJFLp+irLGtyrBceZMzbwB8w2ptznksCVrj7L4WeNPCOqSW3gf xfHZ6DcvG8yX0ayyxt0YqvllGOOcjZngH7oNeyUUAZfhzRV8PeH7PS1nkuHh QmW4kLFp5WJaSQ7iTlnZmxk4zWpRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABXP/wDCd+D/APoa9D/8GMP/AMVXQV434/nhj+PXgVVljScJ8+GC NtZmCgt+7JBO4AeY2eR5ZztlAPRP+E78H/8AQ16H/wCDGH/4qrmv+I9I8LaW 2pa1fR2loHCb2BYsx6BVUEsepwAeAT0BqTWbHS9W059J1eOCa1v8w+RM2PNO C2F77gFLDHI25GMZrH8Qap4a8OeF4LXxhe2L2piSNo7tGl+0lCoJEbl3fDFT yXI4JJ60AdRRWXrfiTRfDlv5+s6paWKFHdBNKFaQKMtsXq5GRwoJ5HrWPqPx L8H6Tqlvpmo61Ha3k6RuIpoZFMYf7vmZXERwQSH2kAgnAoA6yiqeq6rY6Hpd xqep3MdtZ26b5ZX6KP5kk4AA5JIAyTWPB498NzazFo738lpqEyB4re/tZrRp AW2jb5qLuJbgAZJwcdDQB0lFY+seK/D/AIflSLV9asbKZ9hWKadVchm2htuc 7c5y2MDBJIAJGf8A8LF8I/8ACUf8I3/bcH9reb5Hk7X2+Zj7m/GzdnjGc7vl 68UAdRRVe+vrfTrOS6upPLhTAJCliSSAqqoyWYkgBQCSSAASaz9M8UaTq+oy 6dbTTx30UQna2u7SW2kMZJUOFlVSy5GMjIBxnqKAJLrxHpFn4gsdBnvo11S+ R3t7YAszKoJJOBhRhWwWxnBxnBrUrm7rVPCA8b2NlO+myeKGR0t8RLJcRKEL kFgCYwVZiAxGQTjPNaGpeI9I0m4W1u76MXjoHjs4gZbiRckZSFAXYcHJCnAU noDQBqVjzeKtCg8R23h59TgOr3G7ZaIS7jam87sZ2fLyN2M9s1HofjDQPEdx c2ul6lHLd2zsk1rIjRTxlSA2Y3AcAFgM4xnjrXnetaXYaf8AtIeE5bKygtpL q0uZZ2heMea5jmJZo1G4McnLsTu6DlDQB7BRRRQBn6nruj6J5X9rarY2HnZ8 v7XcJFvxjONxGcZHT1FXIJ4bq3iuLeWOaCVA8ckbBldSMggjggjnNeL/AAc8 c2NxqniGz8RSx2Pii/1MzOtyPLMg+VFgUud2UbKiMnIDcZ+bHeWXg+y0j4nX PiGxtoIv7S090uAkUgIlWRCXDA+WN4IyCAxMe4ZzJQB2FFZer+IdM0J7SK/n kE927JbwQQSTyylV3NtjjVmIAGScYHGeoqTR9b07XrN7rTbjzo45XgkDI0bx SKcMjowDIw9GAPIPQigDQork2+Jfg9dLvdTOtR/YLK4FrLcCGQo0pz8kZ24l OBn5N2Bz05qNPif4TkvLWzju757q7iE9tCulXZeaMgkOi+VllwCcjjg0AdhW Xq3iPSNCuNPt9Svo4J9RuFtrSMgs0shIAAABOMkAseBkZIyKj8Q+KNJ8K2Yv NYmngtT1mS0llROQPmZFIXJYAbsZ7ZqnrHiHwpHcaNa6zPaG7u7iCTT7W6gJ nWViRG4jK74znI3EDacgkGgDpKKp6lqtjpFus9/cxwI7iOMNy0rkEhEUcu5w cKoJPYGqemeKNJ1fUZdOtpp476KITtbXdpLbSGMkqHCyqpZcjGRkA4z1FAGx RWXqXiHTNKuFtbieR7tkEgtbWCS4n2ZI3mONWcJkY3YxnAzkijQPEekeKdLX UtFvo7u0LlN6gqVYdQysAVPQ4IHBB6EUAalFc/f+NdB0z7S15dTxwWu8TXX2 OY26lc7l84J5ZYEFdobO/wCTG7iugoAKw5/GnhW1uJbe48S6NDPE5SSOS/iV kYHBBBbIIPGK3K8X/aFiSTTvDRK2Msn9oFVhup1i8wEDIJIDCPgBmEiAZXOS VZAD1zTdW03WbdrjS9QtL6BXKNJazLKobAOCVJGcEHHuKuVHPPDa28txcSxw wRIXkkkYKqKBkkk8AAc5rDh8beHZtRt7H+0PKmus/ZWuIZIY7rlR+5kdQkuS 642FsggjI5oAseIfFWheFLMXWuanBZRt9wOSXkwQDtQZZsbhnAOM5PFbFeR/ tBaZYyeAzqbaZHLfx3EUS3i2254ky3DOGBVMkjncMsBtyQy9hqXxN8F6TrK6 Te+ILSO8LhGVdzrG24rh3UFUIIOQxGOpwKAOsoqnqWq2OkW6z39zHAjuI4w3 LSuQSERRy7nBwqgk9gap6f4o0nU9RGnW806Xxiaf7Nc2ktvJ5alVL7ZFU7cu AD0JDYztbABsVz//AAnfg/8A6GvQ/wDwYw//ABVdBXjd7ZAftSadMLG7bOmG YyqI1Rf3cieY21SWT+D5yG3Ec7QqkA9Uutd0ex06DUbzVbG3sZ9vk3M1wiRy bhuXaxODkAkY6iq9j4s8N6neR2dh4g0q7upM7IYL2OR2wCThQcnABP4VsV4v +zdY28fg3Vr9Y8XU2oeTI+4/MiRoVGOnBkf8/YUAe0UVh634v0Pw9cfZ9Ru5 Fn+zvdNHDbyztHCpw0jiNWKICcbmwOD6GtDStVsdc0u31PTLmO5s7hN8UqdG H8wQcgg8ggg4IoAuVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8a5uT4le EoUhml1ORLSa4+zRXrWc4tXk3FcLPs8sjKt8wbGATnArQ8X6ZY6r4V1GK/0y PUUjt5JY4GtvPbeEYAogZSX5IG1lPOAwzmgC5omt6d4j0eDVtJuPtFjPu8uX YybtrFTwwBHII5FXJ54bW3luLiWOGCJC8kkjBVRQMkkngADnNeX/AAz1608N fAjStUvYruSCFLpmW1t3mbiaVudowowp+ZiFHGSK0PAviqDx54YRNesZLr+0 bid0t5dKle3jiWRikbzFPKcrtGG+XkAY3AkgHYaR4j0jX3u10i+jvUtXVJZo AWi3Fd2FkxscgEZCk4yM4zWpXifwx8Q+HPCOl+Mru81e0j0yLXXjhmSfeZFP CFYI12AMASGjHzBW4CxivWNA8R6R4p0tdS0W+ju7QuU3qCpVh1DKwBU9Dggc EHoRQBqUUUUAZ+p67o+ieV/a2q2Nh52fL+13CRb8YzjcRnGR09RVyCeG6t4r i3ljmglQPHJGwZXUjIII4II5zXj+h+I7Gw+OvjD/AISKaSK/W3ig04ueBANp MMcYdizuWjZVUFmO47UJK10Hgm+0rwjok8OtaraaMdQvbjUbPS9Qnjt3sraR z5cYjL4UYUtgYALMMZBoA9EoqvY39nqdnHeWF3Bd2smdk0EgkRsEg4YcHBBH 4VYoAw5/GnhW1uJbe48S6NDPE5SSOS/iVkYHBBBbIIPGK3K8v+L/AITi8YXP hrTd/l3Ust3HBIUcBW+zPIu6QZVVLxJlSpZhnaRtbOp8IvFy+LPAdk097HPq lkn2e9XcxcEEhGfcSSWUAluhO70IAB3E88Nrby3FxLHDBEheSSRgqooGSSTw ABzms/TfEug6zcNb6Xrem306oXaO1uklYLkDJCknGSBn3Fcf8VtQa60afw1a 3kls89lPfajNAFeSCyhXLEJ5iEmR9kYHQgyZ6Go/gVD5Xwo01/s0EXmyzvvi OWm/eMu5+BhuNvVvlVeewAPSKK5/W/Gug+HfPOp3U8cdvtE80VnNNHCWxhXd EKqx3KdpIOGU4wwzuQTw3VvFcW8sc0EqB45I2DK6kZBBHBBHOaAI76/s9Ms5 Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gqel+I9I1nw+uvWV9G2lsjv8AaZAYlCoS GJ3gEAFTycdK4/x94g8L6z4F1qJ/Lvo1sp3tbtrJ5bUTeUwQpcbDFv3HaCGz uO0fNxR8JtQ03Tvgxot5cTx2NnGkgklu51Cq3nupJYhQAWPA7ZAyTyQDtNE1 vTvEejwatpNx9osZ93ly7GTdtYqeGAI5BHIrQrH8LXuhah4ctLrw0kCaQ+/7 OIIDCgw7BsIQMfMG7c9apzePfDcCCZ7+Q2ZdU+3pazPaZZgo/wBIVDFjccE7 sA5BwQaANjVdVsdD0u41PU7mO2s7dN8sr9FH8yScAAckkAZJqSwvrfU9Otr+ zk8y1uokmhfaRuRgCpweRkEdap+IdV0XSNGnn8QXNpBp7o0cgusFZQVJKBT9 8lQ3ygEnng1HHrnh/T/D2n3/ANvsbDSJ4oxZvM628ZRkyiqGxj5RwvGAOnFA GxRXH6h8UvBulWdhdX2s+RHqERntg9rNvePOA5TZuVT2JADYyMiusgnhureK 4t5Y5oJUDxyRsGV1IyCCOCCOc0ASUVy9v8RPCt1qNnZRar+8vpXhtJGt5Vhu XQ7WEcpURvzx8rHJIAySK6igArHvvFnhvTLySzv/ABBpVpdR43wz3scbrkAj Kk5GQQfxrYrzP48wCb4V3jmKR/JuIXDKsZCfOFy27kD5sZT5skD7pagDvNM1 3R9b83+ydVsb/wAnHmfZLhJdmc4ztJxnB6+hrQrH8Jrs8G6GvlQRY0+3Hl28 nmRp+7XhG3NuUdjubI5yetU5PH3heF4fN1aNLeZ9kV80bi0dtpbC3O3yiflY YD9QR1GKANTWdc0vw9pz3+r38Flarkb5nxuIBO1R1ZsA4UZJxwKsWF9b6np1 tf2cnmWt1Ek0L7SNyMAVODyMgjrXD/Gaw064+GerXl5aWMk9rEPs811GxMTM 6D5GX5lY8Afwk43fLmq+i/EXwj4V8EeGLPWNbggujpVrmFFeV0/cxn5lQErk MCN2M9s0AekUVX+32f8AZ39o/a4PsPlef9p8weX5eN2/d0245z0xWPaeNdBv NYh0hbqeHUp+YrW7s5reRxtdtwWRFJXEb/N0BAGckAgHQVz/APwnfg//AKGv Q/8AwYw//FV0FeN/Ee0U/G7wDcxxSNPI+x9li0x2I+4csdhA3MSVAaMZc5+Q AA9U/t3R/wCx/wC1/wC1bH+zP+f37Qnk/e2/fzt+9x168VTg8aeFbq4it7fx Lo008rhI447+JmdicAABskk8Yrcrxf4R2NvJ8U/iRftHm6h1B4Y33H5UeeUs MdOTGn5e5oA9oorP1PW9O0fylvbjbNNnybeNGlmmxjdsiQF3wCCdoOBycCo9 I8Q6Zrr3cVhPIZ7R1S4gngkgliLLuXdHIqsAQcg4wecdDQBqUVj33ijSbC8k s3mnuLqLHnQ2NpLdPDkAr5ixKxTIORuxnnGcGo5fGPhyDw//AG9LrFomll5E S5Z8LIyFgwTu5yjYC53Y4zQBuVHPPDa28txcSxwwRIXkkkYKqKBkkk8AAc5r k9S+KfgnSIrSS91+BPtUSzRokckjhGVXUsiqWTKupG4DOfY10k2rabbaWNUn 1C0i08ori7eZViKtjad5OMHIwc85FAEeia3p3iPR4NW0m4+0WM+7y5djJu2s VPDAEcgjkVoVy+n+I/Dtp4Lt9W8P2U9xpDeYLW30rTZCXYF8hYlUbcsrDLBV yeTzWP8ADTx7P4t0cT6jbX0dxc3c5t/+JfL5KwhiVXzwvlttGV3HYSVxtJ5Y A9AqOeeG1t5bi4ljhgiQvJJIwVUUDJJJ4AA5zXN6j8Q/DGl/bmur6fybCXyL q4hsZ5YYZOPkaVEKBgWUEZyCcHmtj/iT+JtH/wCXHVdMuP8Acnhl2t+KnDL+ BHtQBHofiPSPEtvc3GjX0d5Bb3DW0kkYO3zFAJAJGGGGB3DIOeCaNN8R6Rq+ qalpun30dxd6Y6peIgJETNnA3YwT8rAgE4IIODXnf7P8SQeDdZiiXZGmtzqq +es2AI4gB5iAK/8AvKMHqOK7TSPEPhTUb/W7nRJ7S7u7ZIn1GewgMjSDYTH8 6KfNIUMAFLEdOvFAHSUV5npHxLOo/EHW7ObT/EEGm2FvFFFENKkk3SEljJIq xmWMsu3YDwVViQCQB0ln8QvDl9rh0S3nvm1Ndpe1bS7pXjBxhnBjGxfmX5mw BkHNAHUUVh654u0fw5cW0GqSXcT3LrHCY7GeVZHYkKgZEILnaflzn2rcoAKp 6lq2m6NbrcapqFpYwM4RZLqZYlLYJwCxAzgE49jVyvI9X1mxsP2hrRvEt7Ha Wdro7Npb3EnlxLK5w7Z3lclRKuWCZ2qMEhWYA9Usb+z1OzjvLC7gu7WTOyaC QSI2CQcMODggj8KsV534bvdN0PW/EmuanfR6Hp+tXqtYWWplbMv5SKss4jdg QZHOTlQxAUn7wx3Gm6tpus27XGl6haX0CuUaS1mWVQ2AcEqSM4IOPcUAXKKK 83+LnjHWfDlno2k+G/l1vWbvybeQojBQCoIG87QxZ0AyCMFuhwaAO01LxLoO jXC2+qa3ptjOyB1jurpImK5IyAxBxkEZ9jVi21bTb23tri01C0ngunKW8kUy sszAMSEIOGICOSB/dPoap+HvDGl+GbMw6fB++l5ubuX557p8kl5ZOrsSzHnp k4AHFYeoeA9NTx9oPinTNOjgvIbiYXzw7UWSN4Zfndf4n8xlGRyd5zkAYAO0 orH1PxRpOkajFp1zNPJfSxGdba0tJbmQRghS5WJWKrk4ycAnOOhqPRfGGgeI tLm1HR9SjvoIELypAjNKg+brFjeCdrYG3LY4zQBuUV5foXxYtdY8fa5p5F9H YWUSRQ2g0ueaeSRXYSSkRoWjUZVSrjP3T8p3Ke81fxDpmhPaRX88gnu3ZLeC CCSeWUqu5tscasxAAyTjA4z1FAGpRWP4e8VaF4rszdaHqcF7Gv3whIePJIG5 DhlztOMgZxkcVly/E3wXDpc+pP4gtBaQ3D2xcbiXkXbuEagZkA3odyAjBznF AGxq3iPSNCuNPt9Svo4J9RuFtrSMgs0shIAAABOMkAseBkZIyK1K5fUfFPg6 f+whqN5YzSahLbz6XDNFvkLyZ8qVUILJ3AcgYPGQa1NR8SaLpN7b2N/qlpBe XDxpDbNKPNkLvsXan3iC3GcYGCTgA0AalFcv/wALF8I/8JR/wjf9twf2t5vk eTtfb5mPub8bN2eMZzu+XrxW5quq2Oh6XcanqdzHbWdum+WV+ij+ZJOAAOSS AMk0AXKK5sePvC63D293q0enToiv5eqRvYsysSAVE6oWGVIyM4xW5Y39nqdn HeWF3Bd2smdk0EgkRsEg4YcHBBH4UAWKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACvG/iREb340+B7IXF2gZH3C0 uZIpFUk7iDGzMoIBBIRMgEGTAJi9kryvxN4P8beIvGvh/wAQrb+H7dNHcMLZ 7+aYS/NlvvQbEJAADBNwODk7V2gHWL4LtbTxHpWsWd3qpktPOjkSfVp5keOR OcrIX3fMqHaCg43EkqBXF/tBafZHwGdRMFot8LiKEXDQRNK0eWPlq7EOoz83 yZPB42liPWIDM1vE1xHHHOUBkSNy6q2OQGIBIz3wM+grh/ij4Y8Q+M/D50LS BpsVvI6SS3F1eTI2VJO0RohDD7pyxI6/LkKwAMf486NbXHw8vNVWytGvLd4V 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 9Htl0rT90qzXTf2jMyttLgR4EI3Lyj5OMMMY4DGTxmfEt3f+FLfT49Nj1pri eZ7KZ7iezMcaZEkjqEBCN5JG5MiRk2kYO4Ax/Gs+m+NPGvgpfDksmr3el6nH c3M1iyy2ttblgzGWQcBz5PyrnJAbjJXPrlef/wDF3/8AqRv/ACbrsNC1P+2/ D2mat5Pk/brSK58rdu2b0Dbc4GcZxnAoA0KKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisvUvEug6NcLb6prem2 M7IHWO6ukiYrkjIDEHGQRn2NAGpRWXpviXQdZuGt9L1vTb6dULtHa3SSsFyB khSTjJAz7itSgAoqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH41X0TW9O8 R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcigDQooooAKKKx77xZ4b0y8ks7/wAQ aVaXUeN8M97HG65AIypORkEH8aANiis/TNd0fW/N/snVbG/8nHmfZLhJdmc4 ztJxnB6+hrP/AOE78H/9DXof/gxh/wDiqAOgoqOCeG6t4ri3ljmglQPHJGwZ XUjIII4II5zUlABRRRQAUUUUAFFFFABRRRQAUVXvr+z0yzkvL+7gtLWPG+ae QRouSAMseBkkD8ax/wDhO/B//Q16H/4MYf8A4qgDoKKz9M13R9b83+ydVsb/ AMnHmfZLhJdmc4ztJxnB6+hrQoAKKKKACiiigAooooAKKKKACiiigAooooAK KKKAKdnpVjYXF1c21tGlxdvvuJ+skpySNznkhckKCcKOBgACrlFc/wD8J34P /wChr0P/AMGMP/xVAHQUVXsb+z1OzjvLC7gu7WTOyaCQSI2CQcMODggj8KsU AFFY+q+KtC0TUbLTtR1OCG+vpY4be2yWkdnJVTtGSFJBG44XPetigAooooAK KK5//hO/B/8A0Neh/wDgxh/+KoA6CisebxZ4bt7O2vJvEGlR2t1u+zzPexhJ dpw21icNg8HHSq//AAnfg/8A6GvQ/wDwYw//ABVAHQUVj2Pizw3qd5HZ2HiD Sru6kzshgvY5HbAJOFBycAE/hWxQAUUVlzeJdBttUGlz63psWoF1QWj3SLKW bG0bCc5ORgY5yKANSiiigAoqvfX9nplnJeX93BaWseN808gjRckAZY8DJIH4 1j/8J34P/wChr0P/AMGMP/xVAHQUVz//AAnfg/8A6GvQ/wDwYw//ABVdBQAU UVl23iTRb3WZNHtNUtLjUI0keW3hlDtEEZVbfjO0hmAwcHr6HABqUUUUAFFF FABRRRQAUUUUAFFFFABRWXqXiXQdGuFt9U1vTbGdkDrHdXSRMVyRkBiDjIIz 7GjTfEug6zcNb6Xrem306oXaO1uklYLkDJCknGSBn3FAGpRRVe+v7PTLOS8v 7uC0tY8b5p5BGi5IAyx4GSQPxoAsUVn6JreneI9Hg1bSbj7RYz7vLl2Mm7ax U8MARyCORWhQAUUUUAU49KsYtUm1NbaM38qeW1w3zOE4+RSeVTKg7RgZycZJ JuVl6l4l0HRrhbfVNb02xnZA6x3V0kTFckZAYg4yCM+xqTTNd0fW/N/snVbG /wDJx5n2S4SXZnOM7ScZwevoaANCiiigAooooAK5vxt4cvvFnh+fRrbUbSyt 7pClw01j9pYjKkbMuoUjB5IJ5BG0gGukooAx/C+k3mg+HrPSby9gvPscSW8M sNsYf3aIqruBd8twSSCBz0FbFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA /Gq+ia3p3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFYc/jTwra3Etvc eJdGhnicpJHJfxKyMDgggtkEHjFAG5RVPTdW03WbdrjS9QtL6BXKNJazLKob AOCVJGcEHHuKuUAFFZ+s65pfh7Tnv9Xv4LK1XI3zPjcQCdqjqzYBwoyTjgVY sL631PTra/s5PMtbqJJoX2kbkYAqcHkZBHWgCxXmdt8G7GPxrqmtXWr3dzpe o3BuptHYbYpZd28eaQcSIrFiFK+mScHd6ZRQAUUVhz+NPCtrcS29x4l0aGeJ ykkcl/ErIwOCCC2QQeMUAblFV7G/s9Ts47ywu4Lu1kzsmgkEiNgkHDDg4II/ CrFABRRVPVdVsdD0u41PU7mO2s7dN8sr9FH8yScAAckkAZJoAuUVXsL631PT ra/s5PMtbqJJoX2kbkYAqcHkZBHWrFABRRRQAUUUUAFFFFABRRVPUtW03Rrd bjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaALlFV7G/s9Ts47ywu4Lu1kzsmgkEi NgkHDDg4II/CrFABXH+K/An9v6tb65pmt32ia7bRCCO7tjuR4xIH2SRkgOuc 8ZAOfm3AAV2Fc/8A8J34P/6GvQ//AAYw/wDxVAGPa+C/EV359r4p8az6zpM8 TRy2UNhHZeZn+9JGd+3GcqCM9CSMg9xXP/8ACd+D/wDoa9D/APBjD/8AFVqa bq2m6zbtcaXqFpfQK5RpLWZZVDYBwSpIzgg49xQBcooooAKKKKACiisvVvEe kaFcafb6lfRwT6jcLbWkZBZpZCQAAACcZIBY8DIyRkUAalFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuPsTnD2zTjI GQdq8gg8h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEHkP0QgMeFN AFP4P232X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvDunSyLcahi OKUQT3EcMkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut3YTrZOI2c FpFaWYqHXBQgMX3Kf4QVPz4+buPh/pVjD8LdAsFto2tJ9MjeWGT51cypvkyG zkMztx05x04oAueKLPS9f8G3jz2UGr2ptHuLdVg+07z5bbWiAZSzEH5SrKTn hhnNef8Aw28ceGvCPwh8PDXNXgtJJPPKw4aSQg3E2G2IC235SN2MZGM5qn8M C1tpfxE8JJJd3VnpFxNDaxzlZRsbzV2hBE5ySmSNrgluI85DdB8FNJ01vhJY O2n2he/SdLxjCubhRNKoEnHzgKSMHPBxQB6BpWq2OuaXb6nplzHc2dwm+KVO jD+YIOQQeQQQcEVl3/jXQdM+0teXU8cFrvE119jmNupXO5fOCeWWBBXaGzv+ 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 lXaMksAB3xUmgeI9I8U6WupaLfR3doXKb1BUqw6hlYAqehwQOCD0Irn/AAAT F8IdGY3N2uNMDebFbyNKnyk/IkgcsR/DgFWwNq7Sq1h/Bewg1P4OWNnqdp9r s5JZsQ3kcUkTKJSRtUdVDAn5/m3BsfLtoA6S5+Jvgu0t7m4l8QWnkW7hGkj3 OsjEKcRlQRKQHUsE3bdw3YqTUfFPg6f+whqN5YzSahLbz6XDNFvkLyZ8qVUI LJ3AcgYPGQa4P4MaPpDXHjWGKCN7NNTmtIbO5Ys0VuSQVaGRdyBwqhixJfyg CAY+ZPidouj6d4t+H09lptja3T63bxF4Ykjdo0aNVXhgSqgKB8jAYA3J0cA9 Q1PW9O0fylvbjbNNnybeNGlmmxjdsiQF3wCCdoOBycCq+ieKdG8RS3MWl3nn zWuBcRNE8bwks67XVgCrZjf5SM8A4wQTyfxEsvFFn4g0LxX4csY9WGlpOlzp zhN3luAWaIldwchdvykn7oCkFwTwb4q8OfEY6pDqGjR22tKiW+o6Vfjzf3cU jlDtYAMFZ2z8oKscH+EkA3Lj4jeDrbTry/fxFYva2cqQzPDJ5uHcZUKFyXyM /dz91/7rYkh8f+FJ/DR8QprloNLDtH5zkod6gkpsYBt+BkLjJGCAciuH+Cem wWNx4tgXTo7d7LWJ7eIrNLKsSZAaNGdQCBsTLA7mwu8DamTwBptpB8ZfHyzW ciXEdxFcQAo+xPMDln+86B2EnBJDYd9qoC6AA9A8NeMNA8YW88+g6lHeJA4S UBGRkJGRlWAODzg4wcH0NbleT+E7VLf9oTxuLe38uH7JAzGO0XZvdImJMnVW Y7m2j7/zMeUFesUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXmc3gbxbc3 Hi7T7nXo7nR9ef8A0eaa6nMlghLsUSEYBHzBMCRQQoJDDKV6ZRQBlw+HNItv DR8OwWMcWkm3a2NshKgxsCGGQc5OTls5JJOc81x/hvw14y8E6Xe6Fo8mjalp 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 gAghg1dZfeLINJ0OTU9X06+sG80QQWcnlSz3UjY2JEsTuGZjkAZB4JOAM0Ad BXJ+M/iN4c8Coi6vcyNdypvis7dN8rruAzjICjryxGdrYyRio5fiJYWHiGx0 TWtK1XR7rUMCze7ijeOdy4QIHhdwGyw64wMEkZGeX/aG8r/hWsfmeRu/tCLy /N37t21/ubeN2M/f+Xbu/i20AesUUUUARzzw2tvLcXEscMESF5JJGCqigZJJ PAAHOaw9L8a6Dq95aWtrdTrNexNNaC5s5rcXKAAkxtIih8BgflJ456Vzfxvs r69+FepixlkAheKa4iSHzDNErjI9VCnDlh2jOeCapxXlv4/0nwle6fpU9roG lSx6pcSwqQIpYIyFtYYwm6XDtglVC4QhSWOAAeoUVy/h74h+GPFd4bXQ76e9 kX75SxnCR5BI3OUCrnacZIzjA5rqKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuX+I/m/8ACtfEfk+f u/s+bPkbN23ad2d/G3Gd2Pm252/NiuorzcfCZF1HxSBrGdK8SyiW8t2s1eaM gs/7uRiVHzuTkxkgYwQw3UAc/Ztcaf8AsrsbWxvo5G0+QGLgyFJJW3ycp/qy rM/ThDw2fnr0D4cfY/8AhWvhz7D5Hk/2fDu8jG3zNo8zOP4t+7d33Zzzmug+ wWf9nf2d9kg+w+V5H2byx5fl427NvTbjjHTFcfoPgjWPCX2yz8PeIYI9Gll8 22sNQsXufsmeWVHEyHaSc4OfzLFgDi/hnBe6db/E7SdOiki02yvZ005SspVZ QJFIDx/vWIVIchSXHBHJ56z4Jf8AJIdC/wC3j/0okrpNO8JaRp3hq40FIZJr S7SQXjzSEy3TSDEjyOMFnbPJ47YwAAMPw94I1nwpZnSdI8U/8SQcQQXWnpJP bgks5SVWVSxZmILowHHBAOQDi/APhq21hPiloIt47ezuNTmtYT9gTyoSGkCl G4LFDtYJwEwpBBc4G8V+JvAyado3xM02PUNFNxCsOuWkrMQ8bCVWk/ichlTq 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 T2nxV8S61rOsS2l/pOmXBtdN0wM5iZcyFbmaB8guyPtViB0f5QVBHMaNqWr/ AAW8S6n4Wu1j/sfVHeTRbu5AMQmYqiPNICuEC7fNGMjaCowct2cXwkvdD8Q3 2qeDfF0+hR32TPamxjnjyXLAKpKqqrnCjaSBnnBIrc1P4XeHNc0uS11pbvUr t3d/7SuZs3SFt2ArKAFRdxxGF8sHnaTkkA2NA0q28MaIsc8saT3FwZ7ueV0z LczPk5cIgYlmCL8qkgKMDgVuV5n4U+Ek2h39lcaz4s1LXINOdXsbKYFbeFlR lU+WzOMqGBUrt2kd69MoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACisOfxp4VtbiW3uPEujQzx OUkjkv4lZGBwQQWyCDxitgTwtcPbrLGZ0RXeMMNyqxIUkdQCVYA99p9KAJKK KKACiiigCMQQrcPcLFGJ3RUeQKNzKpJUE9SAWYgdtx9akoooAKKy7rxHpFn4 gsdBnvo11S+R3t7YAszKoJJOBhRhWwWxnBxnBrUoAKKKKACiiigAoqvfX9np lnJeX93BaWseN808gjRckAZY8DJIH41j/wDCd+D/APoa9D/8GMP/AMVQBc1/ w5pHinS203WrGO7tC4fYxKlWHQqykFT1GQRwSOhNcnYfCi30/wCzRxeMfGRt bfYFtf7WKRlFxhMIoIXAx8pGB0Ir0CigCvY2FnplnHZ2FpBaWsedkMEYjRck k4UcDJJP41YrHtfFWhX3iGfQLPU4LjU4ImmmghJfy1V9jBmHyhgxAKk7h6Vs UAFFFFABRVPUtW03RrdbjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaNN1bTdZt2u NL1C0voFco0lrMsqhsA4JUkZwQce4oAuUUVj33izw3pl5JZ3/iDSrS6jxvhn vY43XIBGVJyMgg/jQBsUUUUAFFFFABRRRQAUUVl6b4j0jV9U1LTdPvo7i70x 1S8RASImbOBuxgn5WBAJwQQcGgDUooooAKjjghheZ4oo0eZ98rKoBdtoXLep 2qoyewA7VJRQAUUVXvr+z0yzkvL+7gtLWPG+aeQRouSAMseBkkD8aALFFc// AMJ34P8A+hr0P/wYw/8AxVdBQAUUVj2virQr7xDPoFnqcFxqcETTTQQkv5aq +xgzD5QwYgFSdw9KANiiiigAoorP1PXdH0Tyv7W1WxsPOz5f2u4SLfjGcbiM 4yOnqKANCiqem6tpus27XGl6haX0CuUaS1mWVQ2AcEqSM4IOPcVcoAKKx77x Z4b0y8ks7/xBpVpdR43wz3scbrkAjKk5GQQfxrYoAKKKx/EPirQvClmLrXNT gso2+4HJLyYIB2oMs2NwzgHGcnigDYooooAKKy9D8R6R4lt7m40a+jvILe4a 2kkjB2+YoBIBIwwwwO4ZBzwTUejeKtC8Q3l9a6PqcF9JY+X9oMBLIu8Erhx8 rdD90nGMHBoA2KKy4/EekTeJZvDsV9G+rQ2/2mW2UElI8gZY4wD8y/KTnBBx g5rUoA5fxX4A0LxhLb3V9HPb6la4+zahZymKeHDBhhuhwRxkHGSRgnNU7L4a aZEkkWq6v4g16B3jfyNW1OSWIFG3DMa7VcEgEhww+Ue+e0ooAKKKKACiiigA oorHm8VaFB4jtvDz6nAdXuN2y0Ql3G1N53Yzs+XkbsZ7ZoA2KKKKACo44IYX meKKNHmffKyqAXbaFy3qdqqMnsAO1Yf/AAnfg/8A6GvQ/wDwYw//ABVbFjf2 ep2cd5YXcF3ayZ2TQSCRGwSDhhwcEEfhQBYoorH1XxVoWiajZadqOpwQ319L HDb22S0js5KqdoyQpII3HC570AbFFFFABRRUc88Nrby3FxLHDBEheSSRgqoo GSSTwABzmgCSiuf/AOE78H/9DXof/gxh/wDiq0NM13R9b83+ydVsb/yceZ9k uEl2ZzjO0nGcHr6GgDQooooAKKKKACiiigArh9W+FehajrkutWN3quh6lcbv tM+j3ZgM+7aTuGCOq5OMZJJOTzXQX3izw3pl5JZ3/iDSrS6jxvhnvY43XIBG VJyMgg/jVf8A4Tvwf/0Neh/+DGH/AOKoAr6D4E07RLyK+mv9V1i/g3i3u9Wv GuHgVwoYRg4Vc7eoG7kjOOK6is/TNd0fW/N/snVbG/8AJx5n2S4SXZnOM7Sc Zwevoaj0PxHpHiW3ubjRr6O8gt7hraSSMHb5igEgEjDDDA7hkHPBNAGpRRRQ AUUUUAFFFFABRWfqeu6Ponlf2tqtjYedny/tdwkW/GM43EZxkdPUVXsfFnhv U7yOzsPEGlXd1JnZDBexyO2AScKDk4AJ/CgDYooqOeeG1t5bi4ljhgiQvJJI wVUUDJJJ4AA5zQBJRWXofiPSPEtvc3GjX0d5Bb3DW0kkYO3zFAJAJGGGGB3D IOeCa1KACiiigAorHvvFnhvTLySzv/EGlWl1HjfDPexxuuQCMqTkZBB/Go4P GnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGKANyiiigAqOOCGF5niijR5n3 ysqgF22hct6naqjJ7ADtRPPDa28txcSxwwRIXkkkYKqKBkkk8AAc5rP0PxHp HiW3ubjRr6O8gt7hraSSMHb5igEgEjDDDA7hkHPBNAGpRRWPo3irQvEN5fWu j6nBfSWPl/aDASyLvBK4cfK3Q/dJxjBwaANiisuPxHpE3iWbw7FfRvq0Nv8A aZbZQSUjyBljjAPzL8pOcEHGDmtSgAooooAKKKy9N8S6DrNw1vpet6bfTqhd o7W6SVguQMkKScZIGfcUAalFFFAFeaws7i8trya0gkurXd9nmeMF4tww21jy uRwcdasUUUAFFFFABRRRQAVx/iT4baF4j1iPWvMvtL1lMD+0dMuDBMyhSuCc EHg4zjdgAZwMV2FFAHJ6J4AsdJuPPvNV1nXXV0kgGtXf2lbd1OQ8akAK/wDt YyOxGTnrKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8j8S6nfe M/jBB4Ciku4dBsbc3Grrby+S1wGjztZg2WiPmRIVGCd7egYeuV4P4N8rRP2m vE1ld+RDNfRTeQkG9ldnMc4yWzhigZm6LuyBxgUAe2Q6TpttpZ0uDT7SLTyj IbRIVWIq2dw2AYwcnIxzk1y/h3wlpvgnxL4m1GzhjsNHvbe3uGLSKsUUiGfz Qo/gQKUbngbjjgYHaVXufsdxu0668iX7TE+baXDebGMK/wAp+8vzqD2+YZ60 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 uLS4ik2aBo5NqDMxUSyeWWkC8AEpNsI5ztB7DAB3mk+KdG1u8nsrK8/0635m s54ngnQYU7jFIFfbh1+bGOetSX/iPSNN1Sz0u6voxqF44WC0QGSVs7vm2KCQ nytlyAowckV5n8df+JDF4c8aWH7vV9P1BYEccCWNldyjkYYr8hGMgYdx/FVf x/4a8NSfGHwVEunWInvpZ5dQhW3aTzgMMjSRoRnLeZ87DHBL7lUigD0zQPGG geKbi/g0TUo717BwlwY0bapJYDDEAMDtblSRx7ityq8NhZ295c3kNpBHdXW3 7RMkYDy7RhdzDlsDgZ6VYoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAK4vx78ObHxulrdJdSaZrVk6ta6lAuXQBs7SAQSM8jkFTyDyQe0ooA 870q1+L1slvb3+oeEblA+Jbp4p2lKluTtQIhIBwB8ucDJ6muk07RtR0TTrqd bv8AtvW7jyzLcX7rbq+0BdimOM+XGPnZV2t8ztzlia6CigDz/wAC+GvE/hvX Ndm1CLSnsdY1CS+byL+Znty247QjRhG5KjI2HjndhQI/iT8N7nxXcWmuaBqc ml+JLNPJiuBM8avEScqSuSpG5sEDnJBBBBX0SigDh/B3hvxdBef2j431+DVL qDctlBbRIsMO4ANISI1JkxlQcfKrOMneQMPwh8PvF/gi/vtK0jWtN/4Re6uD MJJoma9hymCUGAm/hRlty/KG2dVPqlFAHnfw38FeJvB76ja6prNpd2Et7JeL JErNcXTuu0mZn4UYVWwuSW/jwCGk8NeEPFPh/wAW6666xY/8I7qWoPqQRISb kSMwZkGRtVT90nLEhflCFsj0CigDzvW/Dfi3UPiRo/iaC20b7JpCTxw28mpT hphIrLuP7oohwVOFUnjBZgF295f2NvqenXNheR+Za3UTwzJuI3IwIYZHIyCe lWKKAOT+HXgxfAvhNdH8yOac3Es006bgJiWwjYJ+U+WsYIHAIPJ6nL+IPw+v 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 8vPmnzN27fv3f3t/zdNueMY4rg9A+HXxL0h10ZvHMaeG95QtCS10Idu0CPeh 8o7QAAr4QkkZI59kooA87+Ifwuh8W2+mXGjXcej6ppKbbOSGIKu0DKJlcMgV gCpGduWwpzxJ4Y8K+NnvIbnxv4pg1GG2l82LT7S2jWJ3A+R3fYpO0ksFxwyo 2cjFegUUAcH4i8KeJpfiNp3irw5qWmwBbL+z7yG+iZwYvML5ULyxy2cbk5Qc kMQDxZ4Evr/VNH8S6BqMcfijSUWFJ78ZiuouQyyhFwpIdzlFH3iMD5SveUUA cnc+HdS8Sappd54iNpb2mmXAu4NPspWlElwv+rleZlQ4XLYjCgZ5LMPlGP4q 8N+Ldb8Y+H9Zs7bRootEuJnjWTUp1a4R9o52RDYdq9MsOcHcMg+iUUARwGZr eJriOOOcoDIkbl1VscgMQCRnvgZ9BUlFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABWXqXiXQdGuFt9U1vTbGdkDrHdXSRMVyRkBiDjIIz7 GtSuT+JyK/wy8RB0jcfYnOHtmnGQMg7V5BB5D9EIDHhTQBsab4l0HWbhrfS9 b02+nVC7R2t0krBcgZIUk4yQM+4rUrh/g/bfZfhRoEe2dcxPJieLy2+eR24G Tleflb+JcHAzgbF9428O6dLItxqGI4pRBPcRwySQQSFguyWZVMcbAkZDsCMg nAIoA2L6/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p3iPR4NW0m4+0 WM+7y5djJu2sVPDAEcgjkVl+L7PStf8AAuovcW9pqFobKS4gdpY1XPlNtkSV wUQ4PEnQZz0rg/ht448NeEfhD4eGuavBaSSeeVhw0khBuJsNsQFtvykbsYyM ZzQB7BRWfY65peo6HHrdrfwSaY8RmF0X2oEGdxYnG3GDnOMYIOMVl/8ACe+G xe21o9/JHJduqWjS2syJdEuiDyXKBZQTIhyhIwd33cmgDpKw5/GnhW1uJbe4 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 8Sf8Ij4L1TXBH5klrF+6QrkGRiETcMj5dzLnBzjOOa5v4XaA0/h+x8WeIVkv vEmoIbj7XdssrQRMXMaw44iQo+7auPvkHgAAA7Cz8S6DqFvdXFlrem3MFom+ 5khukdYVwTlyDhRhScn0PpWpXF/EfwHpvjPw1fBtOjl1iK3Y2Nwm1JfMUMUT ef4CxIIPHzE8HBHSaxrenaDZpdalceTHJKkEYVGkeWRjhURFBZ2PooJ4J6A0 AaFFc/pnjbw7q+sS6Rbah5epxY3WV3DJbTHKlhhJVVm+UZ4BwME9RVy/8R6R puqWel3V9GNQvHCwWiAyStnd82xQSE+VsuQFGDkigDUorD0DxhoHim4v4NE1 KO9ewcJcGNG2qSWAwxADA7W5Ukce4qnb/ETwrdajZ2UWq/vL6V4bSRreVYbl 0O1hHKVEb88fKxySAMkigDqKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigArk/iciv8MvEQdI3H2Jzh7ZpxkD IO1eQQeQ/RCAx4U11leZzeBvFtzceLtPudejudH15/8AR5prqcyWCEuxRIRg EfMEwJFBCgkMMpQBj6Xf3Ph79mBbyzMmm3C2T+W90z7gZJiN6FFBBbfujOMD cmSQCx7j4f6VYw/C3QLBbaNrSfTI3lhk+dXMqb5Mhs5DM7cdOcdOK2IfDmkW 3ho+HYLGOLSTbtbG2QlQY2BDDIOcnJy2ckknOea5Pwp4Z8WeC7O40Gwn0q+0 RJSdOuLuR0ntUclmDoibZcMxIG9M88qCAoByfwwkmttL+Ing9TJc6fo9xNFZ iYGVyreapUjY4IPlg7RG2SzfK2cV0HwU0nTW+Elg7afaF79J0vGMK5uFE0qg ScfOApIwc8HFdRong620jw1faU9zJcz6k80+oXbxoTPPKMSP5ZBQD0TBXAAI bknD8I+G/GHgzR18O20mh32mQZFpeyNNDNHvZndpIgGV8M/Ch0yF5YZyADj/ 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 4QkkZI5APWNJs5tO0axsri7kvJ7e3jikuZM7pmVQC5ySckjPU9epq5UcEENr bxW9vFHDBEgSOONQqooGAABwABxipKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAoorL1LxLoOjXC2+qa3ptjOy B1jurpImK5IyAxBxkEZ9jQBqUVl6b4l0HWbhrfS9b02+nVC7R2t0krBcgZIU k4yQM+4rUoAKKr31/Z6ZZyXl/dwWlrHjfNPII0XJAGWPAySB+NV9E1vTvEej watpNx9osZ93ly7GTdtYqeGAI5BHIoA0KKKKAKcmlWM2qQ6nNbRy3kCbIZZP mMIOc7M8ISGIYrgsAAcgDFyis/U9d0fRPK/tbVbGw87Pl/a7hIt+MZxuIzjI 6eooA0KK5/8A4Tvwf/0Neh/+DGH/AOKqxY+LPDep3kdnYeINKu7qTOyGC9jk dsAk4UHJwAT+FAGxRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXD698Pri78Ry +I/DniW+0HVrjYLooonguAiMgLQsQCwBABJwMZAyc13FFAHH6X4Q1lpQfFXi ufXoYpYp7eBLRLNEljbcrN5ZzJghSFJ28ZIJwR2FFFABRRWPfeLPDemXklnf +INKtLqPG+Ge9jjdcgEZUnIyCD+NAGxRWfpmu6Prfm/2Tqtjf+TjzPslwkuz OcZ2k4zg9fQ1oUAFFV76/s9Ms5Ly/u4LS1jxvmnkEaLkgDLHgZJA/Gq+ia3p 3iPR4NW0m4+0WM+7y5djJu2sVPDAEcgjkUAaFFFFAFOTSrGbVIdTmto5byBN kMsnzGEHOdmeEJDEMVwWAAOQBi5RWfqeu6Ponlf2tqtjYedny/tdwkW/GM43 EZxkdPUUAaFFc/8A8J34P/6GvQ//AAYw/wDxVWLHxZ4b1O8js7DxBpV3dSZ2 QwXscjtgEnCg5OACfwoA2KKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iq99f2emWcl5f3cFpax43zTyCNFyQBljwMkgfjQBHpulWOkW7QWFtHAjuZJC vLSuQAXdjy7nAyzEk9yauVT03VtN1m3a40vULS+gVyjSWsyyqGwDglSRnBBx 7irlABRRWHP408K2txLb3HiXRoZ4nKSRyX8SsjA4IILZBB4xQBuUVXsb+z1O zjvLC7gu7WTOyaCQSI2CQcMODggj8KsUAFFFFABRRRQAUVl6H4j0jxLb3Nxo 19HeQW9w1tJJGDt8xQCQCRhhhgdwyDngmtSgAooqOeeG1t5bi4ljhgiQvJJI wVUUDJJJ4AA5zQBJRWfomt6d4j0eDVtJuPtFjPu8uXYybtrFTwwBHII5FaFA BRRRQBTvNKsdQuLWe8to7h7V/MgEvzLG+QQ4U8bxjhsZXJwRuOblFZ+p67o+ ieV/a2q2Nh52fL+13CRb8YzjcRnGR09RQBoUVj2Pizw3qd5HZ2HiDSru6kzs hgvY5HbAJOFBycAE/hWxQAUUVj6N4q0LxDeX1ro+pwX0lj5f2gwEsi7wSuHH yt0P3ScYwcGgDYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAqvfWNvqVnJaXcfm28mBJGWIDgEHa2OqnGCp4YEgggkVYooAjgghtbeK3t4 o4YIkCRxxqFVFAwAAOAAOMVJRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABXJ/E5Ff4ZeIg6RuPsTnD2zTjIGQdq8gg8 h+iEBjwprrK5P4nIr/DLxEHSNx9ic4e2acZAyDtXkEHkP0QgMeFNAFP4P232 X4UaBHtnXMTyYni8tvnkduBk5Xn5W/iXBwM4GxfeNvDunSyLcahiOKUQT3Ec MkkEEhYLslmVTHGwJGQ7AjIJwCK870vUpvDf7MC3tut3YTrZOI2cFpFaWYqH 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 to+RpsxnnClNrkMmCaj8E+PbHxX4ltLXWrS70bxbY2UkL2FwnlpKJDG7lA3z ZxEjbTggMfvgFgAemVT1aJptGvokt47l3t5FWCSNZFkJUjaUZlDA9MFlBzgk dauVT1ZFk0a+R0jdGt5AySWzXCsNp4MS8yD/AGBy3QdaAPL/ANnUQj4c3Rik kZzqcplDIFCt5cfCnJ3DbtOTjkkY4yfSNS8Q6ZpVwtrcTyPdsgkFrawSXE+z JG8xxqzhMjG7GM4GckV53+zzN5vw1kT7TPL5WoSpslGFh+VG2pycrzu6L8zN x3MnwRul1yy8T+JZXklvNR1h1eZ9ylokRTGuwuwUKJGAAJwMDJAFAHoGm6ro vizRmnsLm01LT50McgXDqQyglHU9DtYZVhnnkV5P8PrzRfBPjH4lPf3Eel6f Dew+WtxEIMA+e4SNATuG3OwLyygEAZwLh/4pj9pWCz035LXxFp5nvYeieYol O9VXA3Zhzlsn95J/e4sfDS0s1+KvxInigg8xLuFVkQAld5kaQA73xllBIyOR yqEbFAO88NeMNA8YW88+g6lHeJA4SUBGRkJGRlWAODzg4wcH0NGqeL9D0a4a G/u5IhG6JNOLeVoIGcgKJJVUpGTuU4ZhgMpPBBrzuazt9E/aasBppgsV1TSp Jb2MIf8ASnJkJxwQrExI5Py52NyS2Grw+INd+Eeo6vBrPhye88LXOoTXcGp2 TCSSNXOQJmbl2JaNd0jBshsM4AAAPYLC+t9T062v7OTzLW6iSaF9pG5GAKnB 5GQR1qxWP4UfS38JaSNEvPtmmR2kcVtOTkuiKFG7gYbjBGBggjA6VsUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5nN4G8W3Nx4u0+51 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 RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVx+s/FHwh4e1F7DV9SnsrpcnZ NYXA3AEjcp8vDLkHDDIOODQB2FFU9N1ODVbdp7eO7RFcoRdWktu2cA8LIqkj nrjHX0NXKACiiigAooooAKKKKACiiigAooooAKKKjnnhtbeW4uJY4YIkLySS MFVFAySSeAAOc0ASUVzfhTx3oHjV9QXQrqS4Fi6LIzQsgYOuVZdwBxkMOcHK njBBPSUAFFFFABRRRQAUUUUAFFFcnofxG8OeJfFVz4f0a5kvJ7e3aeS4jT9x 8rhCoYnLHLA5AKkHgmgDrKKw4/FVjL41m8KLDdi/isvtzSNFtiKbguFY8scs OQCOozkEDcoAKK5eLx/oV140XwpYyT3upL5n2k20RaK02AE+Y/QZJ28Zw3yn BrqKACiiigAooooAKKKKACiiigAork9e+JHhfw5rMejXl9JJqkjxKLO1geaT 94wAyFBGcHdtzuIxgHIB6ygAooooAKKKKACiuf8AFnjTQvBWnLea1d+V5u4Q QopeSZlGSFUfgMnCgkZIyK1NJ1KHWdGsdUt1kWC9t47iNZAAwV1DAHBIzg+p oAuUVl6/4j0jwtpbalrV9HaWgcJvYFizHoFVQSx6nAB4BPQGo/C3iSz8XeHL TXLCOeO1ut+xJ1AcbXZDkAkdVPegDYooooAKKKKACiiigAoork/GfxG8OeBU RdXuZGu5U3xWdum+V13AZxkBR15YjO1sZIxQB1lFFFABRUc88Nrby3FxLHDB EheSSRgqooGSSTwABzmub8MeP9C8Y6jdW2gST3kNrEkk135RjjVmJCph8OWI Vjwu3A654oA6iiiigAoorD8MeKrHxZb389hDdxJZXsljILqLymLoASQp5A+Y cMAeuQKANyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAoorl/FnxC8NeCtses3/l3UkTSxWsUbSSSAewGFyeAWIBIPPBwAdRRUcEj TW8UrwyQO6BmikKlkJH3TtJGR04JHoTVPXNYt/D+h3ur3aTyW9nE0siwRGRy B6AfzOAOpIAJABoUVT0nUodZ0ax1S3WRYL23juI1kADBXUMAcEjOD6mrlABR RRQAUUUUAFFFFABRRRQAUVh+LfFVj4M8Py6zqMN3LbxuqFbWLe2WOBnoFHux A6DqQDH4s8aaF4K05bzWrvyvN3CCFFLyTMoyQqj8Bk4UEjJGRQB0FFU9J1KH WdGsdUt1kWC9t47iNZAAwV1DAHBIzg+pq5QAUUUUAFFFcn4a+JHhfxfrM+l6 HfSXM8NuLgsYHRSu7aQNwByCVzx/GMZwcAHWUUVy+g+P9C8T+IbzSNFknvfs cXmT3sUR+zK2/aE3nqxwSMAqQCQTg0AdRRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFeP8Axf8A+Sh/DH/sKn/0bb17BXj/AMX/APkofwx/7Cp/ 9G29AHceLPiF4a8FbY9Zv/LupImlitYo2kkkA9gMLk8AsQCQeeDjL1z4saL4 duLZNS03WY7eV1ilvUtQ9vBKSQ0TSBiGdNrbhHvwVYDJBAz/AI8xQyfCu8aX zN8dxC0W2AON28D5m2nYNpb5gV5wufm2tJ8Q7S3/AOFDXlvZ2nnWsen25his LgyoqK0ZVlkKkvGoAYsQNyqeVzkAEnxf8W6v4X8HXbaXpV25uEELakjgR2u/ cu75W3hxxg4CgsvzE/Keo0TW/tOjfbLy3u7S0ht0l+3X81qVnTbky7oJGQDA 3E4Uc8cdPO/H188v7NVrLdSTz3F1p+nlpWVpCzkxMWducZwfmY8kgZyQDc+L l0U+DUDIsdxYzPaC68m4knLw5Vv3dwVOSWVMSyDBBPBZgCAdJqHxEsNGvLBN Z0rVdMsb+UxQajdxRrBnGV34cvFuHQSKpHOQNrYk8SfEbw54X1Sy0u7uZLjU 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 bxLdyz2emQyvFI89u4dSsxh5jALDLjoRkZ5A5Ajg8Xg63Z6TfaDrOn3F4+2B 7iKNom+SRz+8jd0BAiPyk7vmUgEZI5Nr7S/ip8KJJtGkg0W8+1o0TzLs+yX/ AJiv8rjHzOz4Ei/MfN6biVqnpnjXWtM8WaJ4c+I+jRx3jXB/svV7RiYp5dph BKrxlhI+emPMTKKPmAB65RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeb+Mfhvrvi7x Dp2rN4sgsv7LlMthFDpQbym3hgzFpTvb5UB4C/L90ZOfSKKAOL8W+Ede8X+G JdCu9d02CC4RRcSRaW+4ssm8FMz4UYVAQd3QnIyAI/EfgvW/Evgt/DV1r9jH DLtWSdNPldyiFGQAvcMd2UOWYtuz2IJPcUUAcfqHgu81z4dXHhTW9a+0ySRR xJfxW5R/3ewq0gZ33sWTLHIzkjg80WXgaWTwve6L4j8QX2u/bLRbSSSdEVY1 UtteNcHEg3Al2LMWRTngCuwooA8j0v4JXOn3C2j+ONZl8Nh3DaQjPEskTEny 2ZZMYOfmIUbstjaTkdJ488D6p43igtDrdjZ2Ntdx3cCNpfnvvVSMOWl2OpLM cFPQHPOe4ooApw2s02lm01hrS9eRGSfZblIpFORjy2Z+NpwQSc8+uK8rh+Bb 6Zrlzc+H/Geq6NplxKryWdpuV9g/g80OM4y20spxnndyT7BRQBzeseElu9G0 ax0m9k0t9GuIJ7F1DSKBGpTy3G4M6FGZSNwJzyTyDHb+EXuPFFn4k1zUPtup WMTw2kdtG0FtEHGGfyy7kyEEqW3YI2/LlQa6iigDh7j4fXDfEC88S2fiW+sr XUYki1CwhUDzwi7RtkzmPgLyBvGX2su7in49+E1j4y1S11mx1CTRdagdS17B HuMgX7pIDKd6kDDg5wMHOF2+iUUAcv4L8Hv4Vs5ze61fa1qdztE99eSMxKKW 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 CNQ8OWGp6lDLeXH2x9Tkm8y4NyHV1lLcZIZE6bSQOoJ3VYufB9zrmqaXfeJN UjuxpVwLq0t7GB7WJpR0eUGSQuVIBXBXHzA7gxFdZRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRXz58b/iBq83iBvA+hfa4hsWG8WJQWu2lCMsaYBbGCAcEbt5 UjA5APZ5/GnhW1uJbe48S6NDPE5SSOS/iVkYHBBBbIIPGK2IJ4bq3iuLeWOa CVA8ckbBldSMggjggjnNY/hfwjovg7S0sNHso4QEVZZyoMs5GTukfGWOWb2G cAAcVh3ngb7P8QtH8RaTLPDam7mm1GwSTEDSNbyILkJnAkJKqcAlt2eMMSAd BfeLPDemXklnf+INKtLqPG+Ge9jjdcgEZUnIyCD+NakE8N1bxXFvLHNBKgeO SNgyupGQQRwQRzmvnj9paOYazoEjCTyGt5VQknaWDLuwN5GcFc/Ivb5n6J9D zzw2tvLcXEscMESF5JJGCqigZJJPAAHOaAJKp6lq2m6NbrcapqFpYwM4RZLq ZYlLYJwCxAzgE49jWGvxE8Kt5btqvl2ssrwx3s1vLHaSOu7IW4ZREfuNjDc4 4zVP4tQG5+FfiBBFHLi3D7XWRgNrq2f3fORjIJ+UEAt8u6gDqNN1bTdZt2uN L1C0voFco0lrMsqhsA4JUkZwQce4q5Xz/wDBTxx4a8I/Dy8GuavBaSSaq5WH DSSEGKPDbEBbb8pG7GMjGc17ho2uaX4h05L/AEi/gvbVsDfC+dpIB2sOqtgj KnBGeRQBoUVzetePfDfh+4uoNRv5EezSN7oxWs0y24kOE8xo0YIW7BiCcj1F amja5pfiHTkv9Iv4L21bA3wvnaSAdrDqrYIypwRnkUAV7HxZ4b1O8js7DxBp V3dSZ2QwXscjtgEnCg5OACfwrYr5ws4hc/tXssizxgXcjAefNuJW2Yg7mCtt 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 ubeL9qi7EE+JJdPAnXziMv5S4XBKZ+VVbaPO/vYByYgD1jTNd0fW/N/snVbG /wDJx5n2S4SXZnOM7ScZwevoar6r4q0LRNRstO1HU4Ib6+ljht7bJaR2clVO 0ZIUkEbjhc968f8Ajr5XhXxR4Y8X6T5FvrIlfzMb1a5VAmN23AKgEo2SGKuB yB8u58VdGsYvGvgPV4bKOO8l12CKa4jj2mQbo8ByEwxAQbdzggA4VhkqAeuU VXvr6306zkurqTy4UwCQpYkkgKqqMlmJIAUAkkgAEmsvSPF+h65ql3pdjdyf 2haIrz2lxby28qK3Q7JFUkcjkDjcueoyAblFY+p+KNJ0jUYtOuZp5L6WIzrb WlpLcyCMEKXKxKxVcnGTgE5x0NHh7xVoXiuzN1oepwXsa/fCEh48kgbkOGXO 04yBnGRxQBsUVz99428O6dLItxqGI4pRBPcRwySQQSFguyWZVMcbAkZDsCMg nAIrUg1WxudGi1hLmMafJbi6W4k+RREV3bzuxtG3nnGO9AFyiub0rx74b1nV LfTLO/kF5dW/2q3iuLWaAzxdnTzEUOCATxnIBPQGukoAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACvkzx1YNofx6d9QEht5dTgvBJEq2e+JmVjs fcoBHzKZNwyyliQckfWdcX4++Gei+P7eNrwyWuoQIywXsIG4Ag4VwfvoGOcc HrgjJyAdZfPeR2cjWEEE90MbI55jEjcjOWCsRxn+E+nHWvH7H456pfeLY/DE fgnbqbXZtHQ6luEbhiGLFYj8q4JJGcAE12mgW3j7RdLXTr/+xtbMDlIb6a/l t5ZIh93zF8lwXx1O49s5OWPN+GPhFeaZ8RT42v8AVoFupLu6uX0+CIyIvm+Y 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 gf8ATRhg7sVY8e/DxfG+l2t6jx6Z4oskV7W8gkYhHHzeWXADFN3RsAqfmA5K mn4P8I+OYry3PjXxPBqNhY7HtrO3UMJZFBCtM7RqzbeGGSSXCsSCoyAWIW0u z+JniCTQLGfU/E11FCL4z/uraxRUTYpm2Fl8xcHaok3FOQoUkY/wrSWP4i/E ZZ54J5hd23mSQQpEjN+9zhUZgOc9WLd3w24VYtfAfizwz4+1fWPC2qaUdM1q UTXkWpxu7xOXZmKBMbsbn25Zc7sHoGqx4W8DeKfD3jnXdRm8QQXemapLHNJP Kha8fyySseMCNFwzKSAflUBQmQVAOfh8ReIvhLqOrxeINBn1Lw5dahNeR6xZ JH5g8w5zMFCqWLMi/NswdwUsoUCx4l1myi074aaN4d1aCTTbu7iW2nuY5Hjl EAVY/M8pkJYOyHyyoBdRuKBSD1EWgeKbSz1zRo20q603Ubu6lt7qeQh7WO4J ZlMBiZZdru5wzgPnB2jgV7j4T6Xd/C+08FT3k7raZlgvcYZJyWYvsBwVy7Da T904znDUAU/HHw/1XxXb2d5q3irTdPfSXa5hvrXTpIWgGAWJZrkgD5VbOMja MEc59Mryfwx4G+IqSw6f4r8XQXmgJ801tEfOlufm3eXJJJGGMZ5DAscrlMYP HrFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFY8Xivw/ Pri6JDrVjLqbeYPssc6s4MeN6kA8MM/dPPDHHynGxQAUUUUAFFFFABRRRQAU UUUAFU9V0qx1zS7jTNTto7mzuE2SxP0YfzBBwQRyCARgirlFAHP/ANja7ZfL pniPdCeBHqtoLry1H3QjI0TnjqZGkY4BznJY/sbXb35dT8R7YRwY9KtBa+Yp +8HZ2lccdDG0bDJOc4K9BRQBXsbG306zjtbWPy4UyQCxYkkkszMclmJJJYkk kkkkmrFFFABRRWPa+KtCvvEM+gWepwXGpwRNNNBCS/lqr7GDMPlDBiAVJ3D0 oA2KKKKACiiigAooooAKKKKACiiigAooooAKKKy4/EekTeJZvDsV9G+rQ2/2 mW2UElI8gZY4wD8y/KTnBBxg5oA1KKx5vFWhQeI7bw8+pwHV7jdstEJdxtTe d2M7Pl5G7Ge2a2KACiiigAoorL1bxHpGhXGn2+pX0cE+o3C21pGQWaWQkAAA AnGSAWPAyMkZFAGpXL+I/B39ta5pev2Wpz2Or6XuFs7L50BVsBw8RIzldy5U q3I5O1cdRVPUtW03RrdbjVNQtLGBnCLJdTLEpbBOAWIGcAnHsaAMv+zvFM/7 u58RWMUJ+89hpZjmHptaWWVBz1yjcZxg4I0ND0az8PaHZaRYJstbSJYkyAC2 OrNgAFicknHJJNSaVqlprWl2+pWDyPaXKb4neJ4yy9jtcA4PUHHIwRwRVygA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKr31/Z6ZZyXl/dwWlrHjf NPII0XJAGWPAySB+NAFiisvTfEug6zcNb6Xrem306oXaO1uklYLkDJCknGSB n3FR3Xizw3Y+R9s8QaVb+fEs8PnXsaeZG33XXJ5U4OCODQBsUVn6Zruj635v 9k6rY3/k48z7JcJLsznGdpOM4PX0NR6l4l0HRrhbfVNb02xnZA6x3V0kTFck ZAYg4yCM+xoA1KKr2N/Z6nZx3lhdwXdrJnZNBIJEbBIOGHBwQR+FWKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK 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 eTGA3AkRcnad2OuMnoCaJPHvhuDxLD4eub+S21SZ9kUNzazQiQ5IG13QKwJU gEHDHgZyK4+SaFP2l4Utr+MO+hbLmJroElt5YRqrBsHaEfYuzjL5PzB5PG80 rfGj4fQQ3O5k+1OYLcJ5yKUAZmLnHlsFI4AbCSbSWwAAd5f+I9I03VLPS7q+ jGoXjhYLRAZJWzu+bYoJCfK2XICjByRVfQPGGgeKbi/g0TUo717BwlwY0bap JYDDEAMDtblSRx7ivM/H/hrTo/jD4Kkt9KggXUpZxePbFla6xguJUWNgVIc7 ifvq7ByijcPYIbCzt7y5vIbSCO6utv2iZIwHl2jC7mHLYHAz0oAj1bUodG0a +1S4WRoLK3kuJFjALFUUsQMkDOB6ivM/hVY3HjOzk8ceK4/tt9PdudMjmYPB aRKVG6CM58tt6Ebj837sHPJLdR8VLF9Q+F/iGGOOCRltDMROzBQIyJCRt53A KSvYsBnjNY/wKvre7+FGmwwSb5LSWeGcbSNjmRpAOevyup49fXNAHWeKPCOi +MdLew1iyjmBRlinCgSwE4O6N8ZU5VfY4wQRxWHc+C/7c+EFn4Z1K0g+3xaV FFGJmyILpIQqtuXOMN1K5yMjkEg9xUcM8NyheCWOVA7IWRgwDKxVhx3DAgjs QRQB538EtYS9+H8Wkyp5GpaNLJaXds0SxOh3EqSg5GQcEsASyvnJyTqeL7W2 8S+JdB8LTpaTQK7atexybHfyoSqooRkbh5JACflyqSLk5Iri9TlT4dfHmLVL hrG10LxNEVmnkgVfJlVRuAYHK5fy2ZjhT5hJyV3D0DwjE95ea34imXH9pXfl 2hE7SA2kI8uIrkBQrt5so28ETA5NAHUUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF 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 25XJVQApBw4k+FvgXWfA+jtaanrMFxG24rZ2lsixo5blzKVEkjEBRzjAyMEB SPQKKAPP/hx4Q8U+ELM6PqWsWNxotpK72S20JE0isWOJCwwq5O/C5bccb9o2 t6BRRQBxfxW0q21n4eahZz20lxO7xJZLFs3i5eRUiwX4UFnCscg7Wb1roPDe iQ+HPDWm6NB5ZSzt0iLpGIxIwHzPtHQs2WPJ5J5NcP4M+Ddj4T1R7ifV7vU7 OK4+02FjONsVvLyBKyglXlC4AfC45OM42+mUAcHrXgrUrbx5D4z8Kz2iahMg t9Ttb52EV1DheVYKxjcbEHAxwD2YPqW/hu81HxRZ+JNfkgFxYRPHYWNoxaO2 ZxtkcykK0rMoUcqqqMjBPzV1FFAHB+LfCGvXPjHTfF3hbULSLVLa3azmttQZ xbzQncRny/mJDNnB4JCnjb82X4j+HvinxHrHhrWJNesbbU7DzXuZVtzLDbsV XYLeB8qcMpJdyGyQ38KIvqFFAHm/iPwv4w1bxR4a1W2XSiugyylXuNRmWS8V wqkv5UKhGITJA3LlsEFcg+iQGZreJriOOOcoDIkbl1VscgMQCRnvgZ9BUlFA BXld58Mda8O+JZ9d+HWrWmmC7dDd6Vdxn7K4BJOMAkDOAFABUM+1lBC16pRQ Bw9vpPxA1iKS28Qa3pWlWp4LeH4pPPkUqwI8ybIjwSpyqluOCvU9pBBDa28V vbxRwwRIEjjjUKqKBgAAcAAcYqSigDk/iL4MXx14TbR/MjhnFxFNDO+4iEhs O2AfmPltIADwSRyOo6iCCG1t4re3ijhgiQJHHGoVUUDAAA4AA4xUlFAGH4tt fEd54flh8LahaWGqF1KTXUW9dufmA4IBx3Kt3GBncNiATLbxLcSRyThAJHjQ orNjkhSSQM9snHqakooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKw 4PGnhW6uIre38S6NNPK4SOOO/iZnYnAAAbJJPGKANyiiq99f2emWcl5f3cFp ax43zTyCNFyQBljwMkgfjQBYorP0zXdH1vzf7J1Wxv8AyceZ9kuEl2ZzjO0n GcHr6GtCgAooqOeeG1t5bi4ljhgiQvJJIwVUUDJJJ4AA5zQBJRXP/wDCd+D/ APoa9D/8GMP/AMVW5BPDdW8VxbyxzQSoHjkjYMrqRkEEcEEc5oAkoorHuvFW hWesQaRLqcDanNKsK2UJMswYruBZEyyrtGSzAKBySKANiiiigAooooAKKz9T 13R9E8r+1tVsbDzs+X9ruEi34xnG4jOMjp6ipNN1bTdZt2uNL1C0voFco0lr MsqhsA4JUkZwQce4oAuUUVj33izw3pl5JZ3/AIg0q0uo8b4Z72ON1yARlScj IIP40AbFFFFABRRRQAUUUUAFFFFABRUc88Nrby3FxLHDBEheSSRgqooGSSTw ABzms/Q/EekeJbe5uNGvo7yC3uGtpJIwdvmKASASMMMMDuGQc8E0AalFY+je KtC8Q3l9a6PqcF9JY+X9oMBLIu8Erhx8rdD90nGMHBrYoAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvE/jb4bm 1DV4dYsY5ItQ07R5ryG5guSjnyJ4ScgjChElkcFTuJOP4QD7ZXJzoo+LmnuE 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 I7nT31i4iVZP3iyRGKIYO5F3Ar6quc8qOldJ4B8F/wDCGajr0X9tQXX2+VLz 7Bb2/kR2e4ycpHvbCtjaOnEWMnHGP8DpPN8PeIpPM8zf4guW379+7KR87t75 +u98/wB5upAKfwls7bT/AIg/Ee1s7eO3t472ARxRyo6oMzcDYAFH+x1T7p5U 165XlfwzIb4m/EsiONP9NgGEeNh1m5zGAMnqQfmBJDEsGJ9UoAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuHey 8cSeModcay0M2sOnyWkdl/acvyu8iO0m/wCzZ5EaDbjtnPJruKKAOL8ZfDvT fGHiDw9ql3HGTp1wTcKVX9/DgsEbKncPMCcEgbXk7kUfEjQNe8WeGLzw/pcO mrBdpGWurq7dGRlkD4EaxMCMKOdw6njjntKKAOL0HTfFWm+CrXQtR0rw/fvb W6WePt0qxTwhSp3hoGwdoQEchssflwAa/wALvDHiHwZ4fGhauNNlt43eSK4t byZ2yxB2mN0AUfeOVIHT5clmPeUUAFcn8Q/D2veJPDS2nhzWpNJ1CO4SUSrM 8QkUBlKMycgfNu6HlQMdx1lFAHL6N4Znj8W33ivVBAupXVpHZxwQTSypbxqx LAO5Abcdh4jQDHQkszZ/jTwRearrmmeKvDt1BaeJdM/dxNdgtBPCdwaNwASO HfDKM/MR6MvcUUAcfP4c1PxLrmnXniW3sbez0qVLqztrG8mlL3Azh5GKxrtX 5SBsJzn5gpZWy/FXhrxVrvjHw/rNvYeHzBodxM8cd3eSv9oV9oBIEOI3AXcD lsNg8459EooA838YeF/GHiHxR4Y1ixXSrP8AsSXzmX+0Zg0+8RmSPIh+VfkZ M87lbJA5Wo/EXhXxbrfjHw74jh03w/a3GkO+8DU5y1wjYwhdYFIA+fAO4fOc ggkH0yigDzPxt4P8VeKfEvhfVYLfRoE0O4W6Mb38pMzExMyZEHygNGQG5yCD gdK9IgMzW8TXEccc5QGRI3LqrY5AYgEjPfAz6CpKKAMfxEuty6dJbaLbWMsk 8UkbSXd7Lb+USMKR5SFj1PRkIwMHJyKfhbStStPCttoOvWOmtBa2UVn+5uGn W4VU2NvV4kCggDj5s5Ppz0lFAHF+A/AkPw/8P6ha6esdxeXFxLKrzSAb1BIh RnCZAC7c/KcMzkAg4rn7Lwf42sfipqPjWK38PlL+3FvLZNfzZChIxlZPI67o 1PKngke49UooA8z13wJ4mtPiRJ408H6jpq3F5b+Re2uqBvLICqo2lFJx8inq CCvUhiAR+BPF9t8TZvEkfiO0mt7yy+yXEk0LebbKSGK28fKAblBUsWxuO4SE Et6ZRQBy+n6VrbePr/WtUjsfsItBaacILuVniTfucvGVCbpCEJIPHlqvzctX L6V4O8YeG/iLr2vaNHoZ0jVpTJNYTXkwd2GSJN/lHaxZmYqMqN5XnCkeoUUA c3488KQ+M/B1/oziMTum+1kfH7uZeUOcEgZ+UkDO1mA61X8R+CodW+G954Ut 55AXtwI55XG6SZWEgeVgpyWkG5zjJ3MeprrKKAM/Q9M/sbQ7LTjN58kESrLO V2meTq8jDJ+Z2LMSSSSxJJPNeZ+Ifhf4msfGM/iH4f8AiCPS3v3aa+t7qVvL aU5+YDa4cHexww+UklTyAvrlFAHL6Bo2u6Loc1xe3cGteJbnY1xNO4t4jjAE aMkZKxqNxA28szNhd5xh+APDfi3whZalbXlto12b69nvzKmpT5DugwnzxMxG 5RlixOCT8xHPolFAHnfhXw34t0Txj4g1m8ttGli1u4heRY9SnZrdE3DjfEd5 2t0yo4wNowB0mk2nimHxRrFxquqWNxokuz+z7aG3KyQ8c7m/nktuPI2D5T0F FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAVyepfEnwtpGsro9/e3cGoO4SO3bTrktKSxUbMR/OCwIBXIPbNdZX j/xf/wCSh/DH/sKn/wBG29AHoH/CZaX/AM+uuf8Agivf/jNamlarY65pdvqe mXMdzZ3Cb4pU6MP5gg5BB5BBBwRRqup22jaXcaheSRxwQJuJeVIwT0C7nZVB JIAyQMkc1j634j0H4f8Ah/zNTvo4YIkf7NbKEWR1B+WKKNQoIUMqjjgYLHq1 AHSUVwd58V9It9GtdVt9H8QX9tLb/aJjaaeW+yLtDYmJIVTtO7qflw33WUtY 1X4n6Bp+lx6hZxalrED263bHS7NpRFAd48yRjhUAMTghiGBU5HBwAdpRWHoH i7RfEnhpdfsL2MWAQtM0zBDblRllk5wpUcnnGMEEggnDuvidYWOjwa3c6Hrk ehTSqiambePy9jNtWUp5nmrGeoJQZBXAywBAO0nmW2t5Z3EhSNC7CONnYgDP CqCWPsASe1c/pfjnRdS8EL4veWSx0ko7s92ArKFcpyFJySy4AGScgDk4qxqP jDQNJ8NW/iG/1KODS7hI3hmZGzIHGV2pjcSRzjGQAScYNSeFvEln4u8OWmuW Ec8drdb9iTqA42uyHIBI6qe9AFfwj4x0vxtp13f6R55tbe7e13zJs8wqFO5R nO0hhjOD6gV0FeV/AeOGLwrr0duI1gTXbhYxGQVChIsYIdwRj/bf/ebqfVKA Cqc+q2Nrqlnpk9zHHeXqSPbRNwZRHt37exIDA464yegOLlfPnjG/1OPVLf4t Whklg0/WH062hiaOWKWwTMZkEiqdoeTz1ywP+tXB4UsAfQdFRwTw3VvFcW8s c0EqB45I2DK6kZBBHBBHOax9X8UW2lapaaTDaXeo6pco0q2VkELpEvWVy7Kq JnCgswyTgZ5wAZ4+I3hyTxvb+EbW5kutUkeVJPJTMcDIhch2JAzgEYXdggg4 rrK8XXWk139onQ5bSyvobq10+e21K1vLJd1oF80q28FgNxdPmU42uoDHeVHa af8AEa31DxjN4WTw/rMeqW6LJcpJ9m2wxnZ85YTEEASKcLk89DQB2lFc/wCI PFJ8P3ljbnQtVv8A7dKsED2SwsDKQx2kNIrDCozFiNoHU9cXNS1oWNwtpbWF 3qV4UEjW1oYw0cZJAdjI6KoJBABOWw2AQrEAGpRXN6V450XVdL1a+82S1Ojv KmpW84BltTHu3bghYEYViCpIOCByCBhwfGHw1eaHqOrWMGq3sNjK6SR21mzu UXB804OI4yCSDIUzsfjKkUAegUV5HrfxD1i78T+CVsdC1m20nUnN3GYXga4v R5ZwmwSFFixIrMXIIHI2lM16pY3Et3ZxzzWU9lI2cwTlC6YJHJRmXnrwT19e KAC+vYtPs5LqZJ3jTGRBA8znJA4RAWPXsOOvSsPQ/HvhvxHrNzo+l38kuoWy M81vJazRNGFYK2d6DBDMBjrXSV8+eIkm8NeM9T+Iun3t2UtPEa6fqUNpKbpH tTFEzZZsbTuyhQ/KrFFUrsBIB9B1z/ifxt4d8HfZf7f1D7H9q3+T+5kk3bcb vuKcY3L19a2LC+t9T062v7OTzLW6iSaF9pG5GAKnB5GQR1r548dXdvrPjLwj 45t9agjtbzVRBYG7jISK2gkjHmsuF+US+cx3OCVdPu4baAfQem6nBqtu09vH doiuUIurSW3bOAeFkVSRz1xjr6GrlZev6/Y+G9La/v2kILiKGCFd8txK3CxR p1Z2PQfUnABIw5fiJYWHiGx0TWtK1XR7rUMCze7ijeOdy4QIHhdwGyw64wME kZGQDsKK5PXviT4U8N6zHo+o6rGmoO8SmFQT5YkYAM7/AHEAB3HcQdvODkZp y/FTQofFFjoktpqsa6hKIbLUWtCLS5YgYMb5y6kso3BSvzA52ndQB3FFY+ve JLPQPscUsc91fX0vk2ljaqGmnb+IqCQAqj5mZiFUdTyM5+meOrC+8US+Gryy vtJ1dYhNFb36xj7QhBJMTI7K+MHOD2P91sAHUUVj694ks9A+xxSxz3V9fS+T aWNqoaadv4ioJACqPmZmIVR1PIzj/wDCyNGt9Y/sbU7XVdO1duY7CWxeeSVN u7ehg8xWXhhweCjZAxQB2FFY+peIrfT7O0lS0vry4vNpt7K3tz57glQWKPt8 tV3LuZyoXIBIJANPS/G+lahf6rp1z5ml6hpSCW7tb941aOIoH83cjshTDDJD fL3xkZAOkorh4Piv4avZ9VisPt1+1hKkC/Y7Zp/tcrJI4WEJktxDJ8xCrxnO Oa6Dwt4ks/F3hy01ywjnjtbrfsSdQHG12Q5AJHVT3oA2KKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAK8b+M0EN146+G1vcRRzQS6mySRyKGV1M tuCCDwQRxivZK878VfDvWvFPirStam8TWkKaRcefY2q6WSqkOH+dvOBYnagO No+XgLk0AdBL4B8KsYHt9B02ynguIbiOe0s4o5FaORZAAwXIBK4PqCRVP4lS 29z8NfFEStBM0Fo6yIYDceW+0OAUU5VsFWDH7mVc8CtD7H4w/wCg7of/AIJp v/kqsu58DXf/AAgd14csNajt7vUXlfUtSexR3uWlJMx2KVCls7QedqgAcgMA Cv4PihPwRsI2+yQxNo7bzLALaIZQ5ZxIrjHJLOVZW5faQ2Kp/ApET4UaaUs/ IZ5Zy8mFH2g+Yw38HJwAE+bB+TpjBOxpPhnxJonhKLQrLxHYo1vEsFvdvpsk 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 5I5kHJLH5FQjIwRjNV/HXw/1jx7odppV/wCILG3jhlFw7waY+XkG9RjM5wu1 wMcnIznBwACx4vu9Cfxp4Z0+XS4NS8S/v59LSe4McVvgBmeTG4jIQ7Dsb5k4 24yOX1Sz1S2/aA8FzanewXbS2l0FaGy8hVIilyqkgkrgqdpkchi5wodQeg8T fDi88RajpGvR+IP7M8Tad8g1CztT5ckeWIXyWkOMbiPvEEFgQQQFr3vwtvbr xRoviZfF98mtWUXlXV01tG/njBB8tD8kPyu4xtYcg4LbmYAp+PdMudI+KnhH xtFHJeQK/wDZctnBE7yqGSZjKoRWLhVZ2KgZ+QdckrYbT7nxR8YNF8TWWi3d pp+kW80E9/fK9u1yWjIVI4XAfCmUneVAOWGflGTWtI1DVviNDb+Ftfk0q70n RxBfXj28N4VWSRTFExc+YXIjdyWJwApHLsSatpPxB8PaNfa0/wAQ471NOt5L trWTQ4UWcRqX2FlbIDYxkcjPFAFO4lN/+0FeWL6jfaVdLoiRWdxCkKecgfzH RRKkglySTuULjynXBwWroIvh7pNn47sPFd7rV9c6yN0MJn+zxic+U4wVjiTe wTcfXC+i0fET4ZaX8QbOIyyfYtTgwIb5I95CZyUZcjcvJI5GDyDywJ4R8BX/ AIa+13l94pvtc1d4nhtbm/Mjx2yNtJAjMhzlkUt8wyFAG3kkA5/wXaRf8L58 d3JgnjmjigRfPDyNtdVYkSByiqSqlUPzbcBdgRlr1iuD0rwNrWm+PL/xW+va bLPqKRxXUI0gqNiBRiNzMWQkJ6kZ5KnAx3lABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcf4k+G2he I9Yj1rzL7S9ZTA/tHTLgwTMoUrgnBB4OM43YAGcDFSaV8PtM097eW+1DWdbn tbj7TbyavqEk4icLgEJkJkZJBKkgnIPTHWUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFAH/2Q== --0-385061593-1281522017=:76806-- From michael.monnerie@is.it-management.at Wed Aug 11 07:28:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7BCSApw138109 for ; Wed, 11 Aug 2010 07:28:10 -0500 X-ASG-Debug-ID: 1281529712-410600a10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9ECE01E45347 for ; Wed, 11 Aug 2010 05:28:33 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id jwn3qi7pnosX3XFN for ; Wed, 11 Aug 2010 05:28:33 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id EDD9E705 for ; Wed, 11 Aug 2010 14:28:31 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id AB69A47EA07 for ; Wed, 11 Aug 2010 14:28:31 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Date: Wed, 11 Aug 2010 14:28:30 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: <201008111003.36890@zmi.at> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1357555.5LLqSiQUSt"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008111428.31196@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281529713 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37677 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1357555.5LLqSiQUSt Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Mittwoch, 11. August 2010 Peter Niemayer wrote: > This description is, of course, somewhat simplified, but it should > get you an idea on the kind of I/O-operations. =20 Thank you. Are those files located within one dir or do you use a hash=20 structure like squid cache does? =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1357555.5LLqSiQUSt Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxil28ACgkQzhSR9xwSCbQ3AwCgybCl8yr9RXaCe050fc+j+9vG 2zgAoNUoM4w3Fmu8Z9wicyQT2VVj3B7X =gxuw -----END PGP SIGNATURE----- --nextPart1357555.5LLqSiQUSt-- From sgi-linux-xfs@lo.gmane.org Wed Aug 11 12:01:30 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7BH1RI1150539 for ; Wed, 11 Aug 2010 12:01:30 -0500 X-ASG-Debug-ID: 1281546111-68df014c0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lo.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 40F144ABD38 for ; Wed, 11 Aug 2010 10:01:51 -0700 (PDT) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by cuda.sgi.com with ESMTP id nJw8Dem8a9yljCyU for ; Wed, 11 Aug 2010 10:01:51 -0700 (PDT) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1OjEgO-0000CM-Vr for linux-xfs@oss.sgi.com; Wed, 11 Aug 2010 19:01:40 +0200 Received: from barriere.frankfurter-softwarefabrik.de ([217.11.197.1]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 11 Aug 2010 19:01:40 +0200 Received: from niemayer by barriere.frankfurter-softwarefabrik.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 11 Aug 2010 19:01:40 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Peter Niemayer X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Date: Wed, 11 Aug 2010 19:01:31 +0200 Lines: 14 Message-ID: References: <201008111003.36890@zmi.at> <201008111428.31196@zmi.at> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: barriere.frankfurter-softwarefabrik.de User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.7) Gecko/20100713 Thunderbird/3.1.1 In-Reply-To: <201008111428.31196@zmi.at> X-Barracuda-Connect: lo.gmane.org[80.91.229.12] X-Barracuda-Start-Time: 1281546112 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37695 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 08/11/2010 02:28 PM, Michael Monnerie wrote: > Thank you. Are those files located within one dir or do you use a hash > structure like squid cache does? There's only a shallow hierarchy (for functional, not for distribution reasons), so the relevant directories have thousands of files in them. I think after the "ext2"-age no serious file system ever had a real problem dealing with lots of files in one directory - or do you have contradicting information? Regards, Peter Niemayer From sgi-linux-xfs@lo.gmane.org Wed Aug 11 13:08:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7BI8Krf153709 for ; Wed, 11 Aug 2010 13:08:21 -0500 X-ASG-Debug-ID: 1281550646-034c00140000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lo.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9EDACC8167B for ; Wed, 11 Aug 2010 11:17:26 -0700 (PDT) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by cuda.sgi.com with ESMTP id Smsvlse4bC1C5CW0 for ; Wed, 11 Aug 2010 11:17:26 -0700 (PDT) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1OjFjF-00062n-Ff for linux-xfs@oss.sgi.com; Wed, 11 Aug 2010 20:08:41 +0200 Received: from barriere.frankfurter-softwarefabrik.de ([217.11.197.1]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 11 Aug 2010 20:08:41 +0200 Received: from niemayer by barriere.frankfurter-softwarefabrik.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 11 Aug 2010 20:08:41 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Peter Niemayer X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Date: Wed, 11 Aug 2010 20:08:33 +0200 Lines: 19 Message-ID: References: <20100811000854.GL26402@dastard> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: barriere.frankfurter-softwarefabrik.de User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.7) Gecko/20100713 Thunderbird/3.1.1 In-Reply-To: <20100811000854.GL26402@dastard> X-Barracuda-Connect: lo.gmane.org[80.91.229.12] X-Barracuda-Start-Time: 1281550647 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0008 1.0000 -2.0156 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37700 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 08/11/2010 02:08 AM, Dave Chinner wrote: > One thing that you might want to try to > further improve performance is the logbsize=262144 option as well. > That will help flush log IO faster by doing less IOs. Tried that - but this did not have a positive effect. (In fact a slightly negative one, but that could be within the measurement accuracy). > Also, if your workload is doing lots of fsync calls, then the > optimisations I posted a few days ago should also help improve > delaylog throughput. We don't to any fsync's. Regards, Peter Niemayer From michael.monnerie@is.it-management.at Wed Aug 11 17:31:02 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7BMV1rv165700 for ; Wed, 11 Aug 2010 17:31:02 -0500 X-ASG-Debug-ID: 1281566407-21df036f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 266F5C9D9CA for ; Wed, 11 Aug 2010 15:40:07 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id DOFcOyckcjhVQXg5 for ; Wed, 11 Aug 2010 15:40:07 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 63C03703 for ; Thu, 12 Aug 2010 00:31:22 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 2B2FE401C2E for ; Thu, 12 Aug 2010 00:31:22 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Date: Thu, 12 Aug 2010 00:31:21 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: <201008111428.31196@zmi.at> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart2733270.f5vIWqtFvQ"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008120031.21682@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281566408 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37718 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart2733270.f5vIWqtFvQ Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Mittwoch, 11. August 2010 Peter Niemayer wrote: > I think after the "ext2"-age no serious file system ever had > a real problem dealing with lots of files in one directory - > or do you have contradicting information? =20 IIRC 2010 there was someone on this list reporting problems when a=20 certain amount of files were created in a dir. He had to do with=20 audio/video recording, where delays are important (not to have). At one=20 point file creating time increased a lot, but I don't remember if it was=20 a filesystem problem or something else. But as it was the only report I=20 saw, I'd say you are right and a big number of files per dir doesn't=20 matter anymore. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart2733270.f5vIWqtFvQ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxjJLkACgkQzhSR9xwSCbSYSwCgitiYdnwFqzjN3l/I/fYrqoTv p/EAoPZMdS/4+Xdko9AsCQU9c8Uwrjoq =VXNZ -----END PGP SIGNATURE----- --nextPart2733270.f5vIWqtFvQ-- From SRS0+Rqfm+72+fromorbit.com=david@internode.on.net Wed Aug 11 18:44:09 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7BNi9Rl169518 for ; Wed, 11 Aug 2010 18:44:09 -0500 X-ASG-Debug-ID: 1281570272-46e000830000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1E1154AD3CD for ; Wed, 11 Aug 2010 16:44:32 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id FOQTEyL8CCQtgPsF for ; Wed, 11 Aug 2010 16:44:32 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34737144-1927428 for multiple; Thu, 12 Aug 2010 09:14:31 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OjKy4-00047W-3D; Thu, 12 Aug 2010 09:44:20 +1000 Date: Thu, 12 Aug 2010 09:44:20 +1000 From: Dave Chinner To: Peter Niemayer Cc: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in a real-world application Subject: Re: observed significant performance improvement using "delaylog" in a real-world application Message-ID: <20100811234420.GA10429@dastard> References: <201008111003.36890@zmi.at> <201008111428.31196@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1281570274 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0013 1.0000 -2.0128 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37721 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 11, 2010 at 07:01:31PM +0200, Peter Niemayer wrote: > On 08/11/2010 02:28 PM, Michael Monnerie wrote: > >Thank you. Are those files located within one dir or do you use a hash > >structure like squid cache does? > > There's only a shallow hierarchy (for functional, not for distribution > reasons), so the relevant directories have thousands of files in them. > > I think after the "ext2"-age no serious file system ever had > a real problem dealing with lots of files in one directory - > or do you have contradicting information? Define "lots of files". :) >From my numbers, ext3/4 still fall way behind XFS and btrfs when it comes to handling directories with tens of thousands of entries or larger. Especially on cold-cache random lookups. XFS also has quite sophisticated internal directory readahead, so under the cold cache directory performance of XFS is far better than ext3/4 can acheive, even for relatively small directories. IIRC this difference in directory lookup performance was one of the prime reasons kernel.org switched from ext3 to XFS a couple of years back... Cheers, Dave. -- Dave Chinner david@fromorbit.com From overbeck654777@yahoo.co.nz Wed Aug 11 19:50:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,MIME_8BIT_HEADER, T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7C0nxWv172386 for ; Wed, 11 Aug 2010 19:50:00 -0500 X-ASG-Debug-ID: 1281574224-46e302d80000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from n14.bullet.mail.mud.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id C1AFE2155A1 for ; Wed, 11 Aug 2010 17:50:24 -0700 (PDT) Received: from n14.bullet.mail.mud.yahoo.com (n14.bullet.mail.mud.yahoo.com [68.142.206.41]) by cuda.sgi.com with SMTP id mvTPflarF4LKGt3g for ; Wed, 11 Aug 2010 17:50:24 -0700 (PDT) Received: from [68.142.200.224] by n14.bullet.mail.mud.yahoo.com with NNFMP; 12 Aug 2010 00:50:23 -0000 Received: from [68.142.201.254] by t5.bullet.mud.yahoo.com with NNFMP; 12 Aug 2010 00:50:23 -0000 Received: from [127.0.0.1] by omp415.mail.mud.yahoo.com with NNFMP; 12 Aug 2010 00:50:20 -0000 X-Yahoo-Newman-Id: 559048.8450.bm@omp415.mail.mud.yahoo.com Received: (qmail 86005 invoked from network); 12 Aug 2010 00:50:20 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.nz; s=s1024; t=1281574220; bh=9kaSdr/TEOeDW5+bbI3A0OXSLue5bPL3xumzQ1ve7ro=; h=Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:To:Subject:Date:MIME-Version:Content-Type:X-Priority; b=5VhKmM1KHKYi6YipCcnUS9PRZX3uXlR3jgtLe9zWHTBmpmSXbkrzDtP+LbtvKkp1WTqQWoufLJ1JjcF/LyyLA7A48hj1IQcW9FZQuYX56p7dFYB7nv+orZsCN/V4neHe1+rzOd9H9tvZ0pfn+HI8Uv5E0iP7OTCrs/t5ty6rk10= Message-ID: <42195.84957.qm@smtp117.plus.mail.sp1.yahoo.com> Received: from rnrbzju (overbeck654777@124.88.65.74 with login) by smtp117.plus.mail.sp1.yahoo.com with SMTP; 11 Aug 2010 17:50:18 -0700 PDT X-Yahoo-SMTP: OB52euGswBBWrG7CGkWjN.nObOB9Akk5QWST X-YMail-OSG: nfNyCOUVM1nhw0NSujPXbTIjMlQgxtfGZJPu.eWL_e2W2WK a9zpDN8468fj1JNA.bRnPmn7ydG9jbpqpumenQZCgF_EHImbOUsxJ2A.f8DB mWbFLR0XwSWIr6j3Xd1SUO30PrfSFW_7Lwe24cP6Q.HBKcE3.M85kvT_a5n7 FoK2S7WGCMCNtlJvHvLxEvgejtzjrr._aWLlxoNkkWyhfCbntncNm4Tm9_7Z BmTch7GtfX4rpEnQ- X-Yahoo-Newman-Property: ymail-3 From: "Bmrlswxp" To: "linux-xfs" X-ASG-Orig-Subj: =?GB2312?B?udy1wM2ouf3IqA==?= Subject: =?GB2312?B?udy1wM2ouf3IqA==?= Date: Thu, 12 Aug 2010 08:49:52 +0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=zjka431_5826_235384195.752222" X-Priority: 3 X-Barracuda-Connect: n14.bullet.mail.mud.yahoo.com[68.142.206.41] X-Barracuda-Start-Time: 1281574224 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.52 X-Barracuda-Spam-Status: No, SCORE=0.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, MIME_BASE64_TEXT, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37727 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.52 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. ------=zjka431_5826_235384195.752222 Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 ------=zjka431_5826_235384195.752222 Content-Type: image/gif; name="Ophoe_3491.gif" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Ophoe_3491.gif" R0lGODdhJQIKAXcAACwAAAAAJQIKAYcAAAAAADMAAGYAAJkAAMwAAP8AMwAAMzMAM2YAM5kAM8wA M/8AZgAAZjMAZmYAZpkAZswAZv8AmQAAmTMAmWYAmZkAmcwAmf8AzAAAzDMAzGYAzJkAzMwAzP8A /wAA/zMA/2YA/5kA/8wA//8zAAAzADMzAGYzAJkzAMwzAP8zMwAzMzMzM2YzM5kzM8wzM/8zZgAz ZjMzZmYzZpkzZswzZv8zmQAzmTMzmWYzmZkzmcwzmf8zzAAzzDMzzGYzzJkzzMwzzP8z/wAz/zMz /2Yz/5kz/8wz//9mAABmADNmAGZmAJlmAMxmAP9mMwBmMzNmM2ZmM5lmM8xmM/9mZgBmZjNmZmZm ZplmZsxmZv9mmQBmmTNmmWZmmZlmmcxmmf9mzABmzDNmzGZmzJlmzMxmzP9m/wBm/zNm/2Zm/5lm /8xm//+ZAACZADOZAGaZAJmZAMyZAP+ZMwCZMzOZM2aZM5mZM8yZM/+ZZgCZZjOZZmaZZpmZZsyZ Zv+ZmQCZmTOZmWaZmZmZmcyZmf+ZzACZzDOZzGaZzJmZzMyZzP+Z/wCZ/zOZ/2aZ/5mZ/8yZ///M AADMADPMAGbMAJnMAMzMAP/MMwDMMzPMM2bMM5nMM8zMM//MZgDMZjPMZmbMZpnMZszMZv/MmQDM mTPMmWbMmZnMmczMmf/MzADMzDPMzGbMzJnMzMzMzP/M/wDM/zPM/2bM/5nM/8zM////AAD/ADP/ AGb/AJn/AMz/AP//MwD/MzP/M2b/M5n/M8z/M///ZgD/ZjP/Zmb/Zpn/Zsz/Zv//mQD/mTP/mWb/ mZn/mcz/mf//zAD/zDP/zGb/zJn/zMz/zP///wD//zP//2b//5n//8z///8AAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAABaMk1sNU14OE05L01CZ1pOalpabVpaCg1abWxabXhtbTltbUJtbU5t bVptbWxtbXh6bTl6bUJ6bU56bVp6bWx6bXgvbTkvbUIvbU4vbVoNbWx4OC8rLy9DQUEI/wBlCRxI sKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN mzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jT 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 ------=zjka431_5826_235384195.752222-- From eye.of.the.8eholder@gmail.com Thu Aug 12 05:46:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CAkEKY206801 for ; Thu, 12 Aug 2010 05:46:14 -0500 X-ASG-Debug-ID: 1281609996-21a5013c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-bw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A6F1D4AE8BB for ; Thu, 12 Aug 2010 03:46:36 -0700 (PDT) Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com [209.85.214.53]) by cuda.sgi.com with ESMTP id lUXRjlGjIBkoRCIP for ; Thu, 12 Aug 2010 03:46:36 -0700 (PDT) Received: by bwz4 with SMTP id 4so544130bwz.26 for ; Thu, 12 Aug 2010 03:46:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:subject:date :user-agent:mime-version:content-type:content-transfer-encoding :message-id; bh=ANIuWHc5io/eTImLjAs+jxMPxJD6RKhwBI68PIu/Imo=; b=qvKQIvUBOW0TMBJMD2Za0243V4KwoZmpVQAL6QAul7PkKHmzs0PrElVgqFz/9Oakuz ql0sRJuPB48q427oXyPn+HjDtuAtz4Us5qy8rHKONx3VLNkjh4fGTuicN8ZwzUyazl52 lHz5AmSeVyF5Xklm7/6g394wTwhN+36IBzJOI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:mime-version:content-type :content-transfer-encoding:message-id; b=tJnZbL8XmuZOssGtbuSiYifZQK6PFMvXhMVK/z5Nlxz2s3jwAEiVGhkEtHnddF3MpG WW8e3F+0R2jSnDTQMDu73NuuuxE4a/LtlqegJHprghRCY9/n8ZDhQgGQ0GZM5LRNBjPC L0ajPsKCiQKAP3ubvq/0bRkHO/sSX5Grcp5BI= Received: by 10.204.156.212 with SMTP id y20mr527382bkw.179.1281609995758; Thu, 12 Aug 2010 03:46:35 -0700 (PDT) Received: from ktinos.localnet (188.4.138.134.dsl.dyn.forthnet.gr [188.4.138.134]) by mx.google.com with ESMTPS id x13sm944168bki.0.2010.08.12.03.46.33 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 12 Aug 2010 03:46:34 -0700 (PDT) From: Khelben Blackstaff To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Date: Thu, 12 Aug 2010 13:46:30 +0300 User-Agent: KMail/1.13.5 (Linux/2.6.35; KDE/4.4.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <201008121346.30760.eye.of.the.8eholder@gmail.com> X-Barracuda-Connect: mail-bw0-f53.google.com[209.85.214.53] X-Barracuda-Start-Time: 1281609997 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0176 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37765 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > I'm pleased to state that using the experimental "delaylog" mount option > (in vanilla linux-2.6.35) we measured a 17% performance increase > for our benchmark scenario. (Other mount-options in use both before > and after the "delaylog" option: noatime,nodiratime,nobarrier) > That's a lot given that XFS was the fastest performing file-system > for this application already. > So thanks to all contributing developers for this significant optimization! I did a benchmark (a simple copy/untar not something fancy) some time ago and also noticed great improvement. Here is my post with the results of the benchmark. http://lordkhelben.wordpress.com/2010/07/08/xfs-delayed-logging/ From Nicolas.Morlino@bp.com Thu Aug 12 09:14:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_95 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CEEU6F216047 for ; Thu, 12 Aug 2010 09:14:31 -0500 X-ASG-Debug-ID: 1281623021-3798029f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail37.messagelabs.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 90EA814CB104 for ; Thu, 12 Aug 2010 07:23:42 -0700 (PDT) Received: from mail37.messagelabs.com (mail37.messagelabs.com [216.82.241.83]) by cuda.sgi.com with SMTP id 4sv5uJppsP0nKW9c for ; Thu, 12 Aug 2010 07:23:42 -0700 (PDT) X-VirusChecked: Checked X-Env-Sender: Nicolas.Morlino@bp.com X-Msg-Ref: server-15.tower-37.messagelabs.com!1281622494!46533508!1 X-StarScan-Version: 6.2.4; banners=-,-,- X-Originating-IP: [149.184.166.129] Received: (qmail 906 invoked from network); 12 Aug 2010 14:14:54 -0000 Received: from unknown (HELO bp1xeuav003.bp1.ad.bp.com) (149.184.166.129) by server-15.tower-37.messagelabs.com with SMTP; 12 Aug 2010 14:14:54 -0000 Received: from BP1XEUEX016-C.bp1.ad.bp.com ([149.184.180.118]) by bp1xeuav003.bp1.ad.bp.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 12 Aug 2010 15:14:52 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-ASG-Orig-Subj: A Computer Database Maintenance Subject: A Computer Database Maintenance Date: Thu, 12 Aug 2010 15:14:44 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: A Computer Database Maintenance Thread-Index: Acs6KLJVmIkQRLNWSumO/Iix6CKFog== From: "Morlino, Nicolas" To: X-OriginalArrivalTime: 12 Aug 2010 14:14:52.0050 (UTC) FILETIME=[BAFDF720:01CB3A28] X-Barracuda-Connect: mail37.messagelabs.com[216.82.241.83] X-Barracuda-Start-Time: 1281623022 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2711 1.0000 -0.4762 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.48 X-Barracuda-Spam-Status: No, SCORE=-0.48 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37779 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean A Computer Database Maintenance is currently going on our Webmail Message center. Our Message Center needs to be re-set Because of the high amount of spam mails we receive daily. A Quarantine Maintenance will help us prevent this everyday dilemma. The new Hanover Web mail Software provide a pop - off block of some Restricted words and spam terms. To revalidate your mailbox=20 =20 Click Here =20 =20 The Hanover Web mail Software is a fast and light weight application to quickly and easily access your e-mail. Failure to revalidate your mailbox will render your e-mail in-active from our database. Thanks System Administrator The new Hanover Web mail Software CONFIDENTIALITY NOTICE =20 From newsletter@elabs3.com Thu Aug 12 12:17:22 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,HTML_MESSAGE, T_FRT_EXPERIENCE,T_LOTS_OF_MONEY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CHHMDG227883 for ; Thu, 12 Aug 2010 12:17:22 -0500 X-ASG-Debug-ID: 1281633467-706f00bd0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail35.elabs3.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E06B4B0453 for ; Thu, 12 Aug 2010 10:17:47 -0700 (PDT) Received: from mail35.elabs3.com (mail35.elabs3.com [208.66.204.135]) by cuda.sgi.com with ESMTP id 3QCKZz9vBIHm7tI7 for ; Thu, 12 Aug 2010 10:17:47 -0700 (PDT) X-ASG-Whitelist: Client Received: from [10.0.3.57] ([10.0.3.57:40410] helo=mail7.elabs3.com) by sv-mta02.l3s.lyris.net (envelope-from ) (ecelerity 2.2.2.43 r(32041/32179)) with ESMTP id E4/FF-06203-BBC246C4; Thu, 12 Aug 2010 10:17:47 -0700 To: X-ASG-Orig-Subj: =?utf-8?Q?New=20Retained=20Searches?= Subject: =?utf-8?Q?New=20Retained=20Searches?= Date: Thu, 12 Aug 2010 10:17:47 -0700 X-Delivery: Level 3 Reply-To: mrothstein@executive-advantage.com List-Unsubscribe: Content-description: d7ae72dde1linux-xfs@oss.sgi.com!3b151!1ee366!5a9e!rynof3.pbz! X-Complaints-To: abuse@elabs3.com Message-Id: <20100812171840.D7AE72DDE124@elabs3.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=_9e9a16bb808433d38c7bd20f0870fb5a" From: "=?utf-8?Q?Michael=20A.=20Rothstein?=" X-Barracuda-Connect: mail35.elabs3.com[208.66.204.135] X-Barracuda-Start-Time: 1281633468 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a MIME encoded message. --=_9e9a16bb808433d38c7bd20f0870fb5a Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Nathan After successfully completing 2 retained executive searches (VP, Engineering; VP, Global Service and Support) for our client Zhone Technologies, Inc., Executive Advantage Group, Inc. has recently been retained to assist Zhone (a $126M telecom capital equipment provider) with 4 additional mission critical roles: We've showcased each new retained search in the corresponding search specific websites below. At the top of each respective search specific website's - The Position Profile - page there is a link to - download the Detailed Position Spec for that role. If you are aware of a stellar candidate that would excel in any of these roles based on the individual brief position descriptions below please have them send their resume to me, Michael A. Rothstein, Managing Principal, Executive Advantage Group, Inc. (Email: mrothstein@executive-advantage.com, Direct: 503-372-9084). * Reporting to the CEO & President: Senior Product Manager, User Experience. http://executive-advantage.com/Zhone_SPMUE The ideal Senior Product Manager, User Experience candidate must possess +5 years of telecommunications Data/IP systems industry experience within the telecommunications capital equipment industry to include +3 years of direct hands on technical experience in telecommunications industry software engineering and product line management roles developing and implementing user interfaces. The candidate must have telecommunications equipment related web GUI and CLI experience; and be familiar with, worked with, and has experience identifying, developing and writing UI marketing requirements; and establishing and communicating a product vision and implementation roadmap ideally for telecommunications equipment related UI software for provisioning, control, and troubleshooting. Experience working with higher level commercial UI software is highly desired (e.g., iPhone or iPad). * Reporting to the VP of Engineering: Manager System Test Verification. http://executive-advantage.com/Zhone_MSTV The ideal Manager, Systems Test Verification candidate must possess +8 years of complex hands on telecommunications Data/IP systems industry experience within the telecommunications capital equipment industry to include +5 years direct system test engineering management experience. This individual must possess a working knowledge of TDM networks and practical experience in deploying triple play services (data, video, voice) and includes how to troubleshoot fiber related issues as well as how to use tools for testing data, voice, and video services in a lab environment. As an engineer possessing strong engineering skills, this individual must be a domain expert in GPON with associated expertise in OMCI technologies and SNMP PON Management protocols. This individual is currently in a Systems Test Verification like role within the telecommunications Data/IP carrier access capital equipment industry. Also open to candidates possessing large Tier-1 Telco Provider Lab Trial experie nce. * Reporting to the VP, Oakland Engineering: Embedded Software Development Engineering Manager. http://executive-advantage.com/Zhone_ESDEM The ideal Embedded Software Development Engineering Manager candidate must possess +8 years experience developing Central Office related IP, ATM and SONET based wide area networks Telecom Capital Equipment functional system software to include +3 years of Embedded Software Development Engineering management experience. Possessing +5 years hands on experience developing embedded systems, this individual is an experienced C & C++ programmer using a real time OS in product environment that includes familiarity with transmission protocols such as Gigabit Ethernet, T1/E1, DS3/E3, and SONET. Specific VxWorks and Linux knowledge is highly desirable. Experience should include solid Layer 2 and Layer 3 expertise. Specific expertise includes: VoIP; Voice over ATM; TCP/IP/UDP with expertise in TDM; TDM over IP: CES, PWE is a plus. Domain expertise in xDSL and GPON with associated expertise in OMCI technologies and SNMP PON Management protocols is highly desirable. * Reporting to the Director of Information Systems: Senior Web Applications Developer. http://executive-advantage.com/Zhone_SWAD The ideal Senior Web Applications Developer candidate must possess +8 years of hands on Web Applications Development industry experience to include Intranet as well as the Extranet web applications development experience. Possessing strong expertise in Object-oriented Perl (including mod_perl and CGI.pm), this individual must possess strong expertise in JavaScript, HTML, CSS, XML, as well as with Prototype and Scriptaculous toolkits. Strong experience with Template: Toolkit is highly desirable. This role combines development, project management and maintenance of web based information infrastructure with a very broad range of responsibilities and potential for strategic impact with company. As a result, the role will have a lot of senior executive interface responsibility within the company, and give the Senior Web Applications Developer a lot of exposure to Oracle ERP applications and associated business process flows and the associated ability to pick up related skills. Executive Advantage Group, Inc. - Experts in Mission Critical Search Solutions: We fill positions with top A-Player talent - we don't throw stacks of resumes at our clients. If you, or any business colleagues, have similar search needs at -any- mission critical position level or functional discipline, we can help provide you with the same service as the recent clients below have commented on. * Andy Holroyd, Senior Vice President, Instruments Division, Ashtead Technology. We recently completed a retained executive search for our new VP of Sales & Marketing role using the services of Executive Advantage Group's Ron Bates and Michael Rothstein. One thing I'll say is Executive Advantage Group's networking reach and ability to cover the largest possible candidate population is impressive and quite effective. Out of the first 4 candidates submitted with the first month of the search, 2 of them became finalists with the second candidate submitted being the one we ultimately hired. Ultimately, the individual we hired is going to be invaluable. * Laura Larsen, Dir. HR & Administration, Zhone Technologies, Inc. Compared to my experiences with large firms as well as other smaller firms, Executive Advantage Group is vastly different in a very positive way. Michael and Ron are much more thorough than anyone else. Executive Advantage Group completed our VP of Global Customer Service search in 42 days with the first candidate being submitted within the first 20 days after the spec was approved, and with all 3 candidates interviewed submitted 23 days into the search. * Sandra Swann, Director of Human Resources, ViewCast Corporation. Thanks to the efforts of Executive Advantage Group's Ron Bates and Michael Rothstein, completed a Vice President of Sales retained search in 62 days with the hired candidate submitted 29 days after the spec was approved. Compared to the other both large and boutique search firms I've used, Executive Advantage Group's network is very large and they tuned into our industry specifically. There's no comparison. I knew we would be more likely to find candidates that fit our industry requirements going with Executive Advantage Group, Inc. * Frank Madren, President, GarrettCom, Inc. We recently had the need to conduct a confidential executive search to fill our Vice President of Engineering & Chief Technical Officer role at GarrettCom, Inc. Our new Vice President of Engineering & Chief Technical Officer was submitted 23 days after the search began and started work 99 days after we signed the retained search contract with Executive Advantage Group. The level of screening they took candidates through prior to formal candidate submission allowed us to go into interviews knowing more than we've ever known before on candidates prior to interview. * Steve Harris, VP, Research, Development and Engineering, Electro Scientific Industries, Inc. I recently retained Michael Rothstein and Ron Bates of Executive Advantage Group, Inc. to fill three high impact senior management positions that will be key parts of how we grow Electro Scientific Industries, Inc. We tried for 3 months to fill these positions prior to engaging Executive Advantage Group. I would strongly recommend Executive Advantage Group to others with mission critical recruiting needs for one simple reason - results - Michael and Ron got it done. One of the candidates we hired even said, "I wish I would have found those guys when I was looking to hire candidates. Our firm's references and example full-page client reference letters can be viewed on our website under - Client References. You'll note from our references we are a truly unique retained search firm that consistently gets the job done for clients that retain our services. We have filled every search in the last 9 years within 45-90 days (or less) with the hired candidate being one of 2-4 bull's eye rifle shots submitted within the first 30 days of the search. I would happy to speak with you about your company's search needs when you feel the timing is right. With each Principal having +20-year careers in sales, marketing & technology management and having worked for Hewlett Packard, MentorGraphics, TRW, Raytheon, ComputerVision and Spherion, we're former top performing Managing Directors, Vice Presidents, and Partners with Heidrick & Struggles and StratfordGroup - both retained executive search firms. You will -never- find retained executive recruiters with our experience and direct industry backgrounds. We work with client's that believe it's paramount they acquire the -best- possible talent for mission critical positions. We excel at identifying, assessing, and assisting our clients in capturing differentiated talent. I look forward to your response. Sincerely, Michael A. Rothstein Managing Principal Executive Advantage Group Direct: 503-372-9084 mrothstein@executive-advantage.com Executive-Advantage.com Silicon Valley Offices - 1250 Oakmead Parkway, Suite 250, Sunnyvale, CA 94085 - Direct: 408-451-8414 Pacific Northwest Offices - 14385 Benchview Terrace, Portland, OR 97224 - Direct: 503-372-9084 To submit your preferred contact information - go here: http://www.executive-advantage.com/database/index.html To permanently unsubscribe from all future mailings, send an email to: globalunsub-23198@elabs3.com with the adddress: linux-xfs@oss.sgi.com in the subject line. This document is provided for information only. This information is not a promise or guarantee nor is the accuracy of any information generated after this item is published guaranteed. This document is provided AS IS without warranty of any kind, express or implied, including but not limited to service provider. Advertisement. DISCLAIMER: This e-mail is sent in compliance with strict anti-abuse regulations, and is in compliance as long as there is a way to be removed. --=_9e9a16bb808433d38c7bd20f0870fb5a Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 7bit

Nathan

After successfully completing 2 retained executive searches (VP, Engineering; VP, Global Service and Support) for our client Zhone Technologies, Inc., Executive Advantage Group, Inc. has recently been retained to assist Zhone (a $126M telecom capital equipment provider) with 4 additional mission critical roles:

We've showcased each new retained search in the corresponding search specific websites below.

At the top of each respective search specific website's - The Position Profile - page there is a link to - download the Detailed Position Spec for that role.  

If you are aware of a stellar candidate that would excel in any of these roles based on the individual brief position descriptions below please have them send their resume to me, Michael A. Rothstein, Managing Principal, Executive Advantage Group, Inc. (Email: mrothstein@executive-advantage.com, Direct: 503-372-9084).

  • Reporting to the CEO & President: Senior Product Manager, User Experience
    http://executive-advantage.com/Zhone_SPMUE
    The ideal Senior Product Manager, User Experience candidate must possess +5 years of telecommunications Data/IP systems industry experience within the telecommunications capital equipment industry to include +3 years of direct hands on technical experience in telecommunications industry software engineering and product line management roles developing and implementing user interfaces. The candidate must have telecommunications equipment related web GUI and CLI experience; and be familiar with, worked with, and has experience identifying, developing and writing UI marketing requirements; and establishing and communicating a product vision and implementation roadmap ideally for telecommunications equipment related UI software for provisioning, control, and troubleshooting. Experience working with higher level commercial UI software is highly desired (e.g., iPhone or iPad).
  • Reporting to the VP of Engineering: Manager System Test Verification
    http://executive-advantage.com/Zhone_MSTV
    The ideal Manager, Systems Test Verification candidate must possess +8 years of complex hands on telecommunications Data/IP systems industry experience within the telecommunications capital equipment industry to include +5 years direct system test engineering management experience. This individual must possess a working knowledge of TDM networks and practical experience in deploying triple play services (data, video, voice) and includes how to troubleshoot fiber related issues as well as how to use tools for testing data, voice, and video services in a lab environment. As an engineer possessing strong engineering skills, this individual must be a domain expert in GPON with associated expertise in OMCI technologies and SNMP PON Management protocols. This individual is currently in a Systems Test Verification like role within the telecommunications Data/IP carrier access capital equipment industry. Also open to candidates possessing large Tier-1 Telco Provider Lab Trial experience.
  • Reporting to the VP, Oakland Engineering: Embedded Software Development Engineering Manager
    http://executive-advantage.com/Zhone_ESDEM
    The ideal Embedded Software Development Engineering Manager candidate must possess +8 years experience developing Central Office related IP, ATM and SONET based wide area networks Telecom Capital Equipment functional system software to include +3 years of Embedded Software Development Engineering management experience. Possessing +5 years hands on experience developing embedded systems, this individual is an experienced C & C++ programmer using a real time OS in product environment that includes familiarity with transmission protocols such as Gigabit Ethernet, T1/E1, DS3/E3, and SONET. Specific VxWorks and Linux knowledge is highly desirable. Experience should include solid Layer 2 and Layer 3 expertise. Specific expertise includes: VoIP; Voice over ATM; TCP/IP/UDP with expertise in TDM; TDM over IP: CES, PWE is a plus. Domain expertise in xDSL and GPON with associated expertise in OMCI technologies and SNMP PON Management protocols is highly desirable.
  • Reporting to the Director of Information Systems: Senior Web Applications Developer
    http://executive-advantage.com/Zhone_SWAD
    The ideal Senior Web Applications Developer candidate must possess +8 years of hands on Web Applications Development industry experience to include Intranet as well as the Extranet web applications development experience. Possessing strong expertise in Object-oriented Perl (including mod_perl and CGI.pm), this individual must possess strong expertise in JavaScript, HTML, CSS, XML, as well as with Prototype and Scriptaculous toolkits. Strong experience with Template: Toolkit is highly desirable. This role combines development, project management and maintenance of web based information infrastructure with a very broad range of responsibilities and potential for strategic impact with company. As a result, the role will have a lot of senior executive interface responsibility within the company, and give the Senior Web Applications Developer a lot of exposure to Oracle ERP applications and associated business process flows and the associated ability to pick up related skills.

Executive Advantage Group, Inc. - Experts in Mission Critical Search Solutions:

We fill positions with top A-Player talent - we don't throw stacks of resumes at our clients. If you, or any business colleagues, have similar search needs at -any- mission critical position level or functional discipline, we can help provide you with the same service as the recent clients below have commented on.

  • Andy Holroyd, Senior Vice President, Instruments Division, Ashtead Technology
    We recently completed a retained executive search for our new VP of Sales & Marketing role using the services of Executive Advantage Group's Ron Bates and Michael Rothstein. One thing I'll say is Executive Advantage Group's networking reach and ability to cover the largest possible candidate population is impressive and quite effective. Out of the first 4 candidates submitted with the first month of the search, 2 of them became finalists with the second candidate submitted being the one we ultimately hired. Ultimately, the individual we hired is going to be invaluable.
  • Laura Larsen, Dir. HR & Administration, Zhone Technologies, Inc.
    Compared to my experiences with large firms as well as other smaller firms, Executive Advantage Group is vastly different in a very positive way. Michael and Ron are much more thorough than anyone else. Executive Advantage Group completed our VP of Global Customer Service search in 42 days with the first candidate being submitted within the first 20 days after the spec was approved, and with all 3 candidates interviewed submitted 23 days into the search.
  • Sandra Swann, Director of Human Resources, ViewCast Corporation
    Thanks to the efforts of Executive Advantage Group's Ron Bates and Michael Rothstein, completed a Vice President of Sales retained search in 62 days with the hired candidate submitted 29 days after the spec was approved. Compared to the other both large and boutique search firms I've used, Executive Advantage Group's network is very large and they tuned into our industry specifically. There's no comparison. I knew we would be more likely to find candidates that fit our industry requirements going with Executive Advantage Group, Inc.
  • Frank Madren, President, GarrettCom, Inc.
    We recently had the need to conduct a confidential executive search to fill our Vice President of Engineering & Chief Technical Officer role at GarrettCom, Inc. Our new Vice President of Engineering & Chief Technical Officer was submitted 23 days after the search began and started work 99 days after we signed the retained search contract with Executive Advantage Group. The level of screening they took candidates through prior to formal candidate submission allowed us to go into interviews knowing more than we've ever known before on candidates prior to interview.
  • Steve Harris, VP, Research, Development and Engineering, Electro Scientific Industries, Inc.
    I recently retained Michael Rothstein and Ron Bates of Executive Advantage Group, Inc. to fill three high impact senior management positions that will be key parts of how we grow Electro Scientific Industries, Inc. We tried for 3 months to fill these positions prior to engaging Executive Advantage Group. I would strongly recommend Executive Advantage Group to others with mission critical recruiting needs for one simple reason - results - Michael and Ron got it done. One of the candidates we hired even said, "I wish I would have found those guys when I was looking to hire candidates.

Our firm's references and example full-page client reference letters can be viewed on our website under - Client References. You'll note from our references we are a truly unique retained search firm that consistently gets the job done for clients that retain our services. We have filled every search in the last 9 years within 45-90 days (or less) with the hired candidate being one of 2-4 bull's eye rifle shots submitted within the first 30 days of the search. I would happy to speak with you about your company's search needs when you feel the timing is right.

With each Principal having +20-year careers in sales, marketing & technology management and having worked for Hewlett Packard, MentorGraphics, TRW, Raytheon, ComputerVision and Spherion, we're former top performing Managing Directors, Vice Presidents, and Partners with Heidrick & Struggles and StratfordGroup - both retained executive search firms. You will -never- find retained executive recruiters with our experience and direct industry backgrounds. We work with client's that believe it's paramount they acquire the -best- possible talent for mission critical positions.  We excel at identifying, assessing, and assisting our clients in capturing differentiated talent.

I look forward to your response.

Sincerely,

Michael A. Rothstein
Managing Principal
Executive Advantage Group
Direct: 503-372-9084
mrothstein@executive-advantage.com
Executive-Advantage.com


 

Silicon Valley Offices - 1250 Oakmead Parkway, Suite 250, Sunnyvale, CA 94085 - Direct: 408-451-8414
Pacific Northwest Offices - 14385 Benchview Terrace, Portland, OR 97224 - Direct: 503-372-9084

Executive Advantage Group, Inc.
Experts in Mission Critical Retained Search
 

To submit your preferred contact information - go here

To permanently opt-out from all future mailings, go here or send an email to: globalunsub-23198@elabs3.com with the address: linux-xfs@oss.sgi.com in the subject line.


This document is provided for information only. This information is not a promise or guarantee nor is the accuracy of any information generated after this item is published guaranteed. This document is provided AS IS without warranty of any kind, express or implied, including but not limited to service provider. Advertisement. DISCLAIMER: This e-mail is sent in compliance with strict anti-abuse regulations, and is in compliance as long as there is a way to be removed.

 Work and Migrate to Canada
--=_9e9a16bb808433d38c7bd20f0870fb5a-- From sandeen@sandeen.net Thu Aug 12 13:49:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CInwpT234587 for ; Thu, 12 Aug 2010 13:49:58 -0500 X-ASG-Debug-ID: 1281639548-35d801aa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91F4814CC869 for ; Thu, 12 Aug 2010 11:59:08 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id 2EdTDpKRa3H42lJd for ; Thu, 12 Aug 2010 11:59:08 -0700 (PDT) Received: from Liberator.local (unknown [12.198.177.3]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id DA4354106E08 for ; Thu, 12 Aug 2010 13:50:18 -0500 (CDT) Message-ID: <4C644269.20109@sandeen.net> Date: Thu, 12 Aug 2010 14:50:17 -0400 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests 228: suppress core dump message Subject: Re: [PATCH] xfstests 228: suppress core dump message References: <4C0FB207.20706@sandeen.net> In-Reply-To: <4C0FB207.20706@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1281639549 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eric Sandeen wrote: > When running 228 with abrt on in rhel6, I was getting different > output due to a (core dumped) message on SIGXFSZ. For some reason > I wasn't able to use sed to filter it, and just ulimit -c 0 didn't > suppress it either. > > abrt sets the core pattern to: > > "|/usr/libexec/abrt-hook-ccpp /var/spool/abrt %p %s %u %c"" > > which apparently allows core dumps even if ulimit -c is 0, due > to the pipe. > > Temporarily changing the kernel's core pattern to just plain "core" > and setting ulimit -c to 0 does suppress it. These are reset to > original values after the test is run. > > Signed-off-by: Eric Sandeen hm ping on this one? > --- > > --- 228.orig 2010-06-09 11:13:27.000000000 -0400 > +++ 228 2010-06-09 11:19:57.000000000 -0400 > @@ -31,6 +31,8 @@ > { > cd / > rm -f $tmp.* > + sysctl -w kernel.core_pattern="$core_pattern" &>/dev/null > + ulimit -c $ulimit_c > } > > here=`pwd` > @@ -58,6 +60,12 @@ > avail=`df -P $TEST_DIR | awk 'END {print $4}'` > [ "$avail" -ge 104000 ] || _notrun "Test device is too small ($avail KiB)" > > +# Suppress core dumped messages > +core_pattern=`sysctl kernel.core_pattern | awk -F = '{print $NF}'` > +ulimit_c=`ulimit -c` > +sysctl -w kernel.core_pattern=core &>/dev/null > +ulimit -c 0 > + > # Set the FSIZE ulimit to 100MB and check > ulimit -f 102400 > flim=`ulimit -f` > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From michael.monnerie@is.it-management.at Thu Aug 12 14:05:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CJ5Hur236103 for ; Thu, 12 Aug 2010 14:05:17 -0500 X-ASG-Debug-ID: 1281639937-202e03cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D8C0B4AFF15 for ; Thu, 12 Aug 2010 12:05:38 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id sAeC3VQSqmF3JIEk for ; Thu, 12 Aug 2010 12:05:38 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id AFBBD17F for ; Thu, 12 Aug 2010 21:05:36 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 53231401C2E for ; Thu, 12 Aug 2010 21:05:36 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Date: Thu, 12 Aug 2010 21:05:35 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: <201008121346.30760.eye.of.the.8eholder@gmail.com> In-Reply-To: <201008121346.30760.eye.of.the.8eholder@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart2301956.zxzAzIfnxN"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008122105.35787@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281639938 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37798 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart2301956.zxzAzIfnxN Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Donnerstag, 12. August 2010 Khelben Blackstaff wrote: > Here is my post with the results of the benchmark. > http://lordkhelben.wordpress.com/2010/07/08/xfs-delayed-logging/ =20 Wow, BTRFS rocks. I guess I'll use it once it's released. But I'm=20 stunned that XFS is that much slower than ext4 in many tests. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart2301956.zxzAzIfnxN Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxkRf8ACgkQzhSR9xwSCbRmrwCfRXRm0LhqVC4RUcP8bR7XrAww Q/kAn27cR9q6j4+JDZu9OJ0mg+dYEvw5 =en7I -----END PGP SIGNATURE----- --nextPart2301956.zxzAzIfnxN-- From sgi-linux-xfs@lo.gmane.org Thu Aug 12 16:46:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CLkX84252159 for ; Thu, 12 Aug 2010 16:46:36 -0500 X-ASG-Debug-ID: 1281650142-63b301090000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lo.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0299614CD663 for ; Thu, 12 Aug 2010 14:55:43 -0700 (PDT) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by cuda.sgi.com with ESMTP id RhLpHU5UHaHZAwnz for ; Thu, 12 Aug 2010 14:55:43 -0700 (PDT) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Ojfbv-0007Xy-UW for linux-xfs@oss.sgi.com; Thu, 12 Aug 2010 23:46:51 +0200 Received: from barriere.frankfurter-softwarefabrik.de ([217.11.197.1]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 12 Aug 2010 23:46:51 +0200 Received: from niemayer by barriere.frankfurter-softwarefabrik.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 12 Aug 2010 23:46:51 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Peter Niemayer X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Date: Thu, 12 Aug 2010 23:46:43 +0200 Lines: 45 Message-ID: References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <201008122105.35787@zmi.at> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: barriere.frankfurter-softwarefabrik.de User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.7) Gecko/20100713 Thunderbird/3.1.1 In-Reply-To: <201008122105.35787@zmi.at> X-Barracuda-Connect: lo.gmane.org[80.91.229.12] X-Barracuda-Start-Time: 1281650145 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37809 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 08/12/2010 09:05 PM, Michael Monnerie wrote: > On Donnerstag, 12. August 2010 Khelben Blackstaff wrote: >> Here is my post with the results of the benchmark. >> http://lordkhelben.wordpress.com/2010/07/08/xfs-delayed-logging/ > > Wow, BTRFS rocks. Be sure to measure your specific use-case before jumping to conclusions. With our application, for example, Btrfs performed exceptionally bad - about 4 times(!) as slow as XFS. Then again, there are some use-cases where even older file-systems like reiser3 excel (e.g. storing files for cyrus imapd). > But I'm stunned that XFS is that much slower than ext4 in many tests. Again, it all depends on the use-case. For us, ext4 performs good (when used with all kinds of performance-enhancing, safety-reducing mount-options), but not as good as XFS. To me, as of today, XFS' big strength is performing good to excellent (while not always better than all other file-systems) in many use-cases - without worries about instability or immaturity. One thing, I guess, is for sure: Every file-system will require continued development to stay competitive. SSDs, for example, are just beginning to get used appropriately by modern file-systems. There's plenty of opportunity left to optimize for them. And once that is done, there may be yet another storage-technology available (PRAM? Racetrack?), that benefits from specific strategies. So the competition will stay open... :-) Regards, Peter Niemayer From mjt@tls.msk.ru Thu Aug 12 17:10:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CMAGkk254317 for ; Thu, 12 Aug 2010 17:10:17 -0500 X-ASG-Debug-ID: 1281651570-5fad020a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from isrv.corpit.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0FC3B14CDC41 for ; Thu, 12 Aug 2010 15:19:30 -0700 (PDT) Received: from isrv.corpit.ru (isrv.corpit.ru [86.62.121.231]) by cuda.sgi.com with ESMTP id OJAvY0iEXroFrJKS for ; Thu, 12 Aug 2010 15:19:30 -0700 (PDT) Received: from [192.168.88.2] (mjt.vpn.tls.msk.ru [192.168.10.88]) by isrv.corpit.ru (Postfix) with ESMTP id A2BAC417DD; Fri, 13 Aug 2010 02:10:39 +0400 (MSD) (envelope-from mjt@tls.msk.ru) Message-ID: <4C64715F.8060000@msgid.tls.msk.ru> Date: Fri, 13 Aug 2010 02:10:39 +0400 From: Michael Tokarev Organization: Telecom Service, JSC User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.10) Gecko/20100619 Icedove/3.0.5 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Alignment size? Subject: Alignment size? X-Enigmail-Version: 1.0.1 OpenPGP: id=804465C5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: isrv.corpit.ru[86.62.121.231] X-Barracuda-Start-Time: 1281651571 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37809 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello. I used XFS for a long time on many different servers, and it works well. But now I encountered an.. unexpected problem. The question is: on one of our servers, XFS requires different alignment size for O_DIRECT operations than on others. Usually it's 512 bytes, but on this server it is 4096 - both min_io and alignment (this is from XFS_IOC_DIOINFO ioctl). I'm not sure what the reason for this is. On this server, the underlying block device is raid5 (linux sw raid), but we had other machines with raid5 which didn't have that alignment requiriments. The problem with that is that Oracle db, which we use with XFS alot, refuses to work on this machine, or, rather, XFS refuses to process I/O in 512-byte chunks from oracle (control files and redolog files). I know it is a frequent combination which is used in production in many places, and is used here alot too, but I haven't seen anyone mentioning this issue we have now, with "larger than usual" alignment size requiriments. Is there a way to remedy this somehow, without reformatting whole 600+ gb? Thank you! /mjt From SRS0+/XDE+73+fromorbit.com=david@internode.on.net Thu Aug 12 18:48:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7CNmvtd261233 for ; Thu, 12 Aug 2010 18:48:58 -0500 X-ASG-Debug-ID: 1281657490-43af01470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7166614CDE55 for ; Thu, 12 Aug 2010 16:58:11 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id NM7xhdKpRdVH3CnU for ; Thu, 12 Aug 2010 16:58:11 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35335368-1927428 for multiple; Fri, 13 Aug 2010 09:19:20 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OjhWJ-0005te-EC; Fri, 13 Aug 2010 09:49:11 +1000 Date: Fri, 13 Aug 2010 09:49:11 +1000 From: Dave Chinner To: Michael Tokarev Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? Message-ID: <20100812234911.GC10429@dastard> References: <4C64715F.8060000@msgid.tls.msk.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C64715F.8060000@msgid.tls.msk.ru> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1281657492 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37816 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 13, 2010 at 02:10:39AM +0400, Michael Tokarev wrote: > Hello. > > I used XFS for a long time on many different > servers, and it works well. But now I encountered > an.. unexpected problem. > > The question is: on one of our servers, XFS requires > different alignment size for O_DIRECT operations than > on others. Usually it's 512 bytes, but on this server > it is 4096 - both min_io and alignment (this is from > XFS_IOC_DIOINFO ioctl). It'll be a filesystem set up with a 4k sector size, then. Check the output of xfs_info. > I'm not sure what the reason for this is. > On this server, the underlying block device is raid5 > (linux sw raid), but we had other machines with raid5 > which didn't have that alignment requiriments. > > The problem with that is that Oracle db, which we use > with XFS alot, refuses to work on this machine, or, > rather, XFS refuses to process I/O in 512-byte chunks > from oracle (control files and redolog files). A clear case of application failure. I guess Oracle have some work to do to support 4k sector drives where they won't be able to do 512 byte direct IOs at all.... > Is there a way to remedy this somehow, without > reformatting whole 600+ gb? Not really. If it is 4k sector size, then there is some extremely dangerous voodoo that you could do to realign and resize the AG headers, followed by a full xfs_repair run to fix up all the block accounting. This is not something I'd recommend anyone ever does, and for only 600GB of data it would probably take more time to work out how to do it correctly (using disposable filesystem images) than it would to dump, mkfs and restore... Cheers, Dave. -- Dave Chinner david@fromorbit.com From mjt@tls.msk.ru Fri Aug 13 01:24:48 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7D6OlLh030361 for ; Fri, 13 Aug 2010 01:24:48 -0500 X-ASG-Debug-ID: 1281680687-4b8701300000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from isrv.corpit.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8B8B44B2026 for ; Thu, 12 Aug 2010 23:24:47 -0700 (PDT) Received: from isrv.corpit.ru (isrv.corpit.ru [86.62.121.231]) by cuda.sgi.com with ESMTP id xFFPmJKoJ3sz2zFp for ; Thu, 12 Aug 2010 23:24:47 -0700 (PDT) Received: from [192.168.88.2] (mjt.vpn.tls.msk.ru [192.168.10.88]) by isrv.corpit.ru (Postfix) with ESMTP id 761AD418D0; Fri, 13 Aug 2010 10:24:46 +0400 (MSD) (envelope-from mjt@tls.msk.ru) Message-ID: <4C64E52E.2060806@msgid.tls.msk.ru> Date: Fri, 13 Aug 2010 10:24:46 +0400 From: Michael Tokarev Organization: Telecom Service, JSC User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.10) Gecko/20100619 Icedove/3.0.5 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> In-Reply-To: <20100812234911.GC10429@dastard> X-Enigmail-Version: 1.0.1 OpenPGP: id=804465C5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: isrv.corpit.ru[86.62.121.231] X-Barracuda-Start-Time: 1281680688 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 13.08.2010 03:49, Dave Chinner wrote: > On Fri, Aug 13, 2010 at 02:10:39AM +0400, Michael Tokarev wrote: >> Hello. >> >> I used XFS for a long time on many different >> servers, and it works well. But now I encountered >> an.. unexpected problem. >> >> The question is: on one of our servers, XFS requires >> different alignment size for O_DIRECT operations than >> on others. Usually it's 512 bytes, but on this server >> it is 4096 - both min_io and alignment (this is from >> XFS_IOC_DIOINFO ioctl). > > It'll be a filesystem set up with a 4k sector size, then. Check the > output of xfs_info. yes, xfs_info reports sectsz=4096, I noticed this yesterday. >> I'm not sure what the reason for this is. >> On this server, the underlying block device is raid5 >> (linux sw raid), but we had other machines with raid5 >> which didn't have that alignment requiriments. >> >> The problem with that is that Oracle db, which we use >> with XFS alot, refuses to work on this machine, or, >> rather, XFS refuses to process I/O in 512-byte chunks >> from oracle (control files and redolog files). > > A clear case of application failure. I guess Oracle have some work > to do to support 4k sector drives where they won't be able to do 512 > byte direct IOs at all.... Sure thing, that's oracle10, and at least at that time there was no way to determine the size of I/O in a generic way. Now there is, and I hope in oracle12 there will be support for various different sectors. But this is not the point.. . >> Is there a way to remedy this somehow, without >> reformatting whole 600+ gb? > > Not really. If it is 4k sector size, then there is some extremely > dangerous voodoo that you could do to realign and resize the AG > headers, followed by a full xfs_repair run to fix up all the block > accounting. This is not something I'd recommend anyone ever does, > and for only 600GB of data it would probably take more time to work > out how to do it correctly (using disposable filesystem images) than > it would to dump, mkfs and restore... Ugh. I see. Well, I was afraid of that, but I'm already sorta-prepared for that, after "sleeping with this idea"... ;) It'll take ages for sure, but there's no other choice for now. So the question that remains is: why? It's an old machine (PIV era), with old scsi disks (74Gb non-hotswap), -- the same disks as used on numerous other machines out there, where there's no such issue. Plain old linux software raid array, also as used on many other systems. At that time, all stuff were in 512 bytes for sure. The array and filesystem were re-created last year (we added another drive to it), but I don't think at that time there were a kernel version that supported >512 sector sizes either (it was 2.6.27 I think). So why xfs decided the block size is 4K?? And a related question, -- is there a way to create xfs fs with the right sector size? The filesystem were ok in years, not only on this machine, and I'm quite afraid to replace it with something else (e.g. ext4) in a hurry without good prior testing. By the way, how one can check the "sector size" of a block device nowadays? I think I saw something about sysfs, but I see nothing of that sort in 2.6.32 kernel (which is used on this and other systems). Thanks! /mjt From ceo@kortech.cn Fri Aug 13 01:41:08 2010 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7D6f3DM031529 for ; Fri, 13 Aug 2010 01:41:06 -0500 X-ASG-Debug-ID: 1281682212-4d8802c40000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.mail202.cn4e.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5EEE114CEA70 for ; Thu, 12 Aug 2010 23:50:12 -0700 (PDT) Received: from mail.mail202.cn4e.com (mail.mail202.cn4e.com [211.152.42.202]) by cuda.sgi.com with ESMTP id PDRl74rYnCimCG5Z for ; Thu, 12 Aug 2010 23:50:12 -0700 (PDT) Received: from coma14d67e11bd (unknown [58.38.152.71]) by mail.mail202.cn4e.com (Postfix) with ESMTPA id C3F9849828C; Fri, 13 Aug 2010 14:40:57 +0800 (CST) From: "CEO-Kortech" To: "CEO-Kortech" X-ASG-Orig-Subj: UF Membrane Subject: UF Membrane Date: Fri, 13 Aug 2010 14:40:50 +0800 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_003C_01CB3AF5.880BBBE0" X-Priority: 1 (Highest) X-MSMail-Priority: High X-Mailer: Microsoft Office Outlook 11 Importance: High Thread-Index: Acs5wkDvI0Im1ii3RXGl7VEFtKtBxwAAIrmAADuMjCAAADpOEA== X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3664 Disposition-Notification-To: "CEO-Kortech" X-Barracuda-Connect: mail.mail202.cn4e.com[211.152.42.202] X-Barracuda-Start-Time: 1281682220 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. ------=_NextPart_000_003C_01CB3AF5.880BBBE0 Content-Type: multipart/alternative; boundary="----=_NextPart_001_003D_01CB3AF5.880BBBE0" ------=_NextPart_001_003D_01CB3AF5.880BBBE0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Dear sir/ms, We are now focusing on the hollow fiber UF membrane, which is made of poly sulphone, and famous as low pressure/high flux. For the authorization, we have had Korean certificate/Japan certificate as well as China certificate. It is believed that the product will be helpful to you, so I send the application data sheet to you for reference, please review the attachment. If samples are needed, please do not hesitate to let me know. It is hoped that we can start our cooperation very soon :-) Best regards Michael ------=_NextPart_001_003D_01CB3AF5.880BBBE0 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Dear sir/ms,

   We are now focusing on the hollow fiber UF = membrane, which is made of poly sulphone, and famous as low pressure/high = flux.

   For the authorization, we have had Korean certificate/Japan certificate as well as China = certificate.

   It is believed that the product will be helpful = to you, so I send the application data sheet to you for reference, please = review the attachment.

   If samples are needed, please do not hesitate = to let me know. It is hoped that we can start our cooperation very soon = J

Best regards

Michael

------=_NextPart_001_003D_01CB3AF5.880BBBE0-- ------=_NextPart_000_003C_01CB3AF5.880BBBE0 Content-Type: application/pdf; name="Products Specification.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Products Specification.pdf" JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29k ZT4+CnN0cmVhbQp4nO2dS9MdR33GjUMgGShCyBeYKi414+SM+n6hKKoiW3YkILHFIa6K7IXRxRf0 ykiWkziLrFmxoIo9RWVBFuxSxffIp+AzZJXuOdP/nld6JTuFKphfIcvSXHqm+9cz55k5/+eRdH9U izajqv+1hZtngxpfKf+/Pdwf0mLrj3XHfvnm2Xj5OFy6nsZy1PHOoJacs9PrPj26GBblRhPLIWE8 ng3Tc7+Zj++V9lpffEDKu9Y3Jj0f1GKy1c5M6tyyV+rN47XhoJVesisHH2+V9uHUxvvkJ79b3rU3 aSnDagfcnA9hMcHnsmSX6KZL88EsOjgbprO66HzOfnq3b73XTnWCcBVQOGzYQEJYQiEJi3Mnkqt1 NN5o53Q5hS2trXflvG6xTuswPZwPbjFahVg7a4tvzXFJPvg03e0bx7kg56js9PKclpBMAbwrJ/qw NizQdvrX8yO9YLptNKNWfvHbdL91moOHnXasw9Yu+KinV0q/PvrgpgfzIS5Gaa/bIf+8m+zdZNUz leUYzPRRG41Oi7YqjubUb70K7uJLVeYw5VQb1lmsDdWu4bIb2n673i3/+6zKObQvUz0+ofn+NFrG aMthSY+mXMBTz/bcEC8YrhqNXVJ6HChcCOcKkwlmf9B+4H+zG5X5uK7topSOsZ4rhqdPlD43UW0w psySN6Z8XuUEr9bbyFqt4/T+7phyG+p6QcvN99Fs8hKN0W1qo892+n4/7sPzx7V74s5slqSczedO fK+cWC223FPT7dk5V8d15Ti8Vu7YFKIuc/T4woOqTCaZQp6yW0IczwYbY1+9u60Gt62eGsvqO8Pr L4z3hvujPUneofxemvh6glCbFA28fHW4dPV748MHH94eLr0+6jBc+rv118uvvjjq4dJLN/Sg3hwu vXzpxRdfLquvfutbl74zHsqeF9+/++HZvQ9K429/e7j60vjVX37z9POzX/mPn1392s+u/lP95ev1 l6/97L/qL9fWzV9/t275+br52n/XLS+sbX6+HnVc2/z1uuU/1zb/uG65vm75xfPPjcOVq+Nrj0L5 UD75QK6UkFzZKCaXN0yu5IhcRY+RumGVQ+qGVQmpG+V9Aqkb5csMUzfKKz+SyyimbhjH1A0TmbpR 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 5cn0L4Mer5X/3xvUOvTrrww6+jSalNdA5dlpNakCFNJ4d/j+4LIvz2u37S4jCrIqu53z+93bquxW Lu13b6ttt04u73a3VdkdvNrv3lZlt7Pndm+rstvofd9tVXYrtR95W5WRy7TUtXOzspL03XX1sVk7 v7uttt2t+QVHm2Ti7vB1db/fxrjfv64+1rspj9Rd79tq3X2/HJtOb2VGZVvtND1aFdX2TlbudTu+ 9H59x1lsLK8pbnylL36itx43mrjk0D8rJrfPil1cGmO5DvXRWj8sn6mfx6yTCdPzp096+b4y/Un5 YATj7fTZujuEXHb/afmIZOdU9tPn6lZnfc5l66E8p22KobRdD1Ju+vzpqBTt9GdlY3lEO7Me77z3 5VPz5+VDvrjSaxGx8uTxS0xB5+kLtYdyGxgzfbF+mMpMptLFGw/qdqvK4pfW95/Sh0r7zX9R+zPK lFeBer527s/3wX/5NMxs8vSXay9axTK2imHK9WiDU1rvMHY9fKXOjcvlOpe5kbN+QU71V73XL/dT bR3oIjVfmL2rYqPX98Eikq5oTRzXpdMr4R+vxO/hSsiFUH+8CJ+Cj8MfPw2/1wuxvq2o+rz5ZA+a +j5x7qVM2+1BUwZXL2Ww5bf2oCmvQapc5nI9dXlPKnzr5fTa+ApXv+/4YOuFW+Ft2DX8XNlty3eu egm3l+fCrZQt73yHdsusVEklX09SXgdDwa6XtNxHwZQXu3IJyhBqHGK/uO+5H+RzKFuNvHwK50F7 X48sL1rr23nt+G/XPmJQ9cXZLFGZ8o7443ply2tCuTJ36+jLC0N9J25LN8vVCOVNPtRSgyw+3LUs M57qJX5fTnmv1RN0qC+4fizfEFQ6jeE72xiiL98+ZVGvx+p16TScmHcbzenUZW4O9RhvQpnrK/M6 vZUzaD1KwaLcyb5MVH2pbmC3+uLtubwB6Vi+HHTa+i5fvpW4cvPV7+/l24Q35fANYr3ZyptI9OXN 2JQ34/5WrH0Yyzv19gpVpsHIan2FOt2L5ShV36fXxl6fa7yt1sb7Hk5tjfX7ttvq2vZ8x+eaP9Zx /Sq7a3xa3Z9s1/E5hAs6fm34X/bOaj5lbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKNzEzNwplbmRv YmoKMjIgMCBvYmoKPDwvTGVuZ3RoIDIzIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFt 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 y7vdbVV2B6/2u7dV2e3sud3bquw2et93W5XdSu1H3lZl5DItde3crKwkfXddfWzWzu9uq213a37B 0SaZuDt8Xd3vtzHu96+rj/VuyiN11/u2WnffL8em01uZUdlWO02PVkW1vZOVe92OL71f33EWG8tr ihtf6Yuf6K3HjSYuOfTPisnts2IXl8ZYrkN9tNYPy2fq5zHrZML0/OmTXr6vTH9SPhjBeDt9tu4O IZfdf1o+Itk5lf30ubrVWZ9z2Xooz2mbYiht14OUmz5/OipFO/1Z2Vge0c6sxzvvffnU/Hn5kC+u 9FpErDx5/BJT0Hn6Qu2h3AbGTF+sH6Yyk6l08caDut2qsvil9f2n9KHSfvNf1P6MMuVVoJ6vnfvz ffBfPg0zmzz95dqLVrGMrWKYcj3a4JTWO4xdD1+pc+Nyuc5lbuSsX5BT/VXv9cv9VFsHukjNF2bv qtjo9X2wiKQrWhPHden0SvjHK/F7uBJyIdQfL8Kn4OPwx0/D7/VCrG8rqj5vPtmDpr5PnHsp03Z7 0JTB1UsZbPmtPWjKa5Aql7lcT13ekwrfejm9Nr7C1e87Pth64VZ4G3YNP1d22/Kdq17C7eW5cCtl yzvfod0yK1VSydeTlNfBULDrJS33UTDlxa5cgjKEGofYL+577gf5HMpWIy+fwnnQ3tcjy4vW+nZe O/7btY8YVH1xNktUprwj/rhe2fKaUK7M3Tr68sJQ34nb0s1yNUJ5kw+11CCLD3cty4yneonfl1Pe a/UEHeoLrh/LNwSVTmP4zjaG6Mu3T1nU67HltXLy23Bi3m0Mp1OXuTnUY7wJZa6vzOv0Vs6g9SgF i3In+zJR9aW6gd3qi7fn8gakY/ly0Gnru3z5VuLKzVe/v5dvE96UwzeI9WYrbyLRlzdjU96M+1ux 9mEs79TbK1SZBiOr9RXqdC+Wo1R9n14be32u8bZaG+97OLU11u/bbqtr2/Mdn2v+WMf1q+yu8Wl1 f7Jdx+cQLuj4teF/ATztalVlbmRzdHJlYW0KZW5kb2JqCjIzIDAgb2JqCjcxNDEKZW5kb2JqCjI4 IDAgb2JqCjw8L0xlbmd0aCAyOSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nO2d S68mR3nHjSGQvEZAyBdoiYu6nZw+da9qhJDwjXggCR5esJSxF2YuvjBnzIxtJc4ia1YskNgjlAVZ sIvE98in4DNklaf67Xqqz3hmPBGjYH7ieDzTl+qu+lVV/7ve5/+cc+4OZrZuMPW/tnH94mCG78j/ bx7uHsrs69d6Yr99/WJ47ng4v2rtIJcdbx3MvCxLsOtJO4Ts5sUNNi5zTMPx4nBt/OFk55hjCuPZ 5OZigl/G43Rml9lnW8YPJ9mSjTz+dDozs1u8DW68OYUQZmPc68crh7PFzNH7IDUcb8gd06lgjCWO Q922IcVsx/PpzM02BZ8uHY674maKxqz3tN7Pxpd2z5emOKccchjf7ne53TffmPwsJ9+Ths/OGxfH eVfFY7Tioh4OcVmibOZcTo0o0l1FG/HtU1cZ3xohbR7vrb2mpDkvbvyRFrx5atedE2NYZPv9fu3+ mvNLh50cj0savzdZMydp1+5OcsQbG8c3dx23u+lbrQ/Pr5aHTII0mzB4k+ZS58D41O+m4zuPmDRl 6YWvjX43D8ylbR07KeyLb91md+38u12Xl0sD/8BJ4GSSeb3R9ekszS5JZ1w/dcZuLHfjt5shd3pf VLhQuZXPpw0wpTkJYZjz9ky8XFsTnQ3Byi28lPaxzrww+2Btqr0dZieYuVbWNt+Y8lxikiG43Q8O MhWWJctUeGkqcypOAG/rjT6oBQXaj/96uaUPGAZf5EGXZ9es/6zt/Ka0LaXFXp7Kod3KysSURgwu rk977cLw4H6WDihLGaI9ldqPxv452h/fj+q/TzJJi43SScNDiu9vY7WB0vxS7ODSHE41+90ly4Pa agbnZ3kk19Lx40pL74bgkttf9LDp6D5uOoogGZvz/l4PJ+zHozZGHuoUnZMHcJ1p9QbfrxPAe2vz +O7uGplAVuZwnTYfTk4E2DlVsRwXP/6gX/fB5eva1L+lar6/8U4+Vg2v7XrxeHhF5lpJIvOidR/Z uFdfOK64PHjrrcjwcHHwOffd26ddJ0N52l0L9923Dq8+O9w53B386U12Jv9KkVhv4GsRebU99/Lh /OV/GN6/98HNw/mrg02H879f/37u+88P9nD+wjV7MK8fzl86f/75l2T3+9/85vl3hzM58/y7tz+4 uPOeFP7Wtw4vvzB85dffOP35zJf/4xcvf/UXL/9z/etr9a+v/uK/6l9X1sNfe7se+eV6+Mp/1yPP rmV+uV51XMv87XrkP9cyP1qPXF2P/Orpp4bDiy8Pr9wPFZM8s0Au0R4i1+IMkys6JlcJRC7RY6Ru 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 JYxLzUocV0DqhpqVNK5mVuK4PFM3mllJ42pmJY7LM3WjmZU4roWpG82sxHElpm40s5LG1cxKHFdk 6kYzK2lczazEcUWmbkRmXFTNShwXMy6qZiWNKzPjompW4rigcdHCjItuZqXPLKj2UoZxqVlJ42ov ZRpXeynDuNSspHEFpm6oWcni6mYljSsgdaOblTAuNStpXJ6pG2pWwrjUrKRxeaZuqFlJ41qYuqFm JY0rMXVDzUoYl5qVNK7I1A01K2FcalbSuCJTNyIzLtrNShoXMy7azUoYV2bGRbtZSeOCxkULMy66 mZUmsqDaSxnGpWYljau9lGlc7aUM41KzksYVmLqhZiWLq5uVNK6A1I1uVsK41KykcXmmbqhZCeNS s5LG5Zm6oWYljWth6oaalTSuxNQNNSthXGpW0rgiUzfUrIRxqVlJ44pM3YjMuGg3K2lczLhoNyth XJkZF+1mJY0LGhctzLjoala6JcN+EefppYzj2sxKHtfppczjOr2UcVybWcnjCkzd2MxKGlczK3lc AakbzazEcW1mJY/LM3VjMytxXJtZyePyTN3YzEoe18LUjc2s5HElpm5sZiWOazMreVyRqRubWYnj 2sxKHldk6kZkxkWbWcnjYsZFm1mJ48rMuGgzK3lc0LhoYcZFN7MywH4RZ3spw7jUrKRxtZcyjau9 lGFcalbSuAJTN9SsZHF1s5LGFZC60c1KGJealTQuz9QNNSthXGpW0rg8UzfUrKRxLUzdULOSxpWY uqFmJYxLzUoaV2TqhpqVMC41K2lckakbkRkX7WYljYsZF+1mJYwrM+Oi3aykcUHjooUZF93MSgP7 RZztpQzjUrOSxtVeyjSu9lKGcalZSeMKTN1Qs5LF1c1KGldA6kY3K2FcalbSuDxTN9SshHGpWUnj 8kzdULOSxrUwdUPNShpXYuqGmpUwLjUraVyRqRtqVsK41KykcUWmbkRmXLSblTQuZly0m5UwrsyM i3azksYFjYsWTFz0lYMZ3jzcPZTZ168Vcb99/WJ47ng4v2rtYMNswnC8dTDCvgSf1gJW1MbNqQw+ ljnJ+YvDtfGHk5ft6JfxznQW5hhzLuPbU5h9MCmM708ul9ePVw4vHmsD5pKyLWX46Ma92rSwxMFb v9rCFwebY9Hd26ddV8q2W8v2vbcOrz473Lk8dmFx0vxUb/Hkvyv267/5+c9+f/rzhwzPb9cjDxv9 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 o8/ja1ObGo9U8lNnGWnk1lmvTtbKE2pse9ZlVu/nzk8eIKy7CfewafZevcyXEIpsBmHIPrbn+37l v9lE7MWjvKzcbIq8mf7lYIcr8v87B7M2/ep3DjbHMnipuL6QL067xcnrOZXh9uEHh7DEwZWynZYW Jd3V06JV+9Pbrp528ql1d3rb1dOmxP3pbbedtvIU7063XT2d0qXT266eDnF/87arp40r+9Pbbjvd u6XuXeqVWnx3uu7e32v3nW677XQr/oCrXXF5d/m6uz/vc96fX3c/Mmah+H23brtK7sK+cW23nr47 uBg3HSixRmGNl1Vcaj8yTR4FP7zwbl0CzT7LKiYM3+mbj7UoCoPL85L6o+SW9ij5OZQh26LC86n6 uC62uDQ+fRIC+Tgzflqem+SiHz9TT6e0yOm/kCdoCcEscfxsPRp8XBY5eiYq5ktOUna9yITxc6er SvbjX8pBeYMHt14vEyTKQ/VXogFzkFpF4+TFFOdckl3GZ2oN1hjnxs/XZ016skgVr92rx72RzS+s yyOpw5T94S/W+pxxslKo92v3/lxv/JdOzVzcMv71Wos1WdpWMeSJKa1xxtodxq6GL9e+CUuRteCn +12f0Vv9Ta/1S/1WWwVWlOiZKYaqRXZdLoqGBpGiPKxbpxXjn0fijzASOhDmz4PwCXgc/vw0/FEH Yl3MmPq+ebwXTV1PXFqzWb+9aLzJc0zyvllmd3rRPFOb75OsG9c+NNk469chkeP1LVmx6srGxdqd 7eAXa+Eiq9ZUZCJYWX9Jx8hAu9nLR7R6/bbWPltmKzMjDWdtCtXJEuWYlV700hrphTrCMq2SVL27 Wy/4pSnNRsZRyvn60VpWiPsGfHqK0c3ZB12zKv+ZjTJ5TZGlwFxX/LUB314ry8nU9bZcZ2SZUFfe Xlayi4zY7UpRllCX0m3ruoxSkg8AqUYodPP9XUkZiVKH/l295Z0WhrCprovr2kgWpKc2fHdrQ47y oVU37XqtrEbHuDUnL7uD7nRr6aSzek10SXrpxWntZlvXeNYOGueQGR6tPHzvdrAbffOm9GiyWT5T dNphG16ZlPVjv3wIiU4u3yDWSSgrlBxlQe1kQd0X01amlCzF87YwK8bpbl1aneaoXGXqMnwtHO2l wttuLbyv4VTW+bgvu+2uZS9XfKn4Ryqun4B3hU+7+5vtKr6E8ICKXzn8L22k019lbmRzdHJlYW0K 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 +f9eXa4nlw61mjqIk1zj5lbjrnIZELYWkPM+GEwZk5mfw1qzCS71Lw1taFyq5Etn1ebGpbNeHIyR J3Qy7VmXUb0fO7+8QFh3A+5uw+zdeprL3mfZ9MKQXGjP94eV/0YTsWeOMllZuY8yM/3zwXTPyT+/ OExz06/+8GCK3H4n3VEn5LNlN0d5vGRqunn46cGXIPO1WX+WFkXd1Z9rPtzu53VXf3Z1ott+Xnf1 Z2PK/ud1t/1sip12P7dd/TlNZv/zuqs/+7y/eNvVnyeZfHc/r7vt561b6t65XqnFdz/X3Q/32od+ brvt51b8grNl+O7vyby7/12GQNn9Pu9+5J4Fk/bduu4quU37e9Z2688yjNP8qvDDbfO+XnW83Pqx xO0BsaU9IG70uUty4/MqJ5+pD2Ex2cb+0eXxNtH3n5WnIdrg+s/Vn2Ms8vPn5bko3k8l9F+oR70L pcjRE5mcXU5Rys4nTb5/bDkrJ9f/jRyUednb+XwfQpBH5W/lyR691CrKJdNNGFOOpvRfrDWYabK2 /1J9gqR/slTx0p163E2y+eX5pUfqmPL+8OO1PjvJgJ+v16792Nb4ryzNLLb0X51rMVOStlUMa3Nu jZuM2WHsavha7RtfsrzhfXa76hf1Ul/fav3Kdqm1AlkeSdHgq8KY+SVQlNGLwKRu3lreA/96Jz6F O6E3YvrrTXgIHoe/Pg2f6o2YX1GmOt/c30Qj09l07k3MuHWisWWegaIr47qk/moldS5GaXOSk4q8 X31eXhVDlNbVnpfbHa0cfFQ4gxX82n3TmOU9NObaZ4Jf58jalfI6PNlcmeWFajLS618f6jt+XWh8 QY45WZT5/UUfay/a0qDkheOkDTTpzNowIyvpehtbJdtVPivNlV6f6vBwdRUtL4OfH6KrL09WX0m1 I05MDvJuWDorL4Z2qeMHc0NSnOrrtB3TZOXN8Z1ar81Fbt3NWlkuvr4pt63rcruivN/HGoDQzfd2 JeWW5DoG3tZL3mpRBmPzaF199ZnXDbUNP1rbkIKsSXXTzeca2ZrW5qTSGz3ol0tLB57Uc4KNclt+ sJ3ebR12urRHRt/u4JP1rdqV6M+XrAw52f3Bp+675NNDsnO/y5rCzOmzGkiRhy0Y0YG3t659bdu8 McirlUmyaNn6u11Xno8aV5BVTrBy+tqN8/MgL0spyBu7lTf27W3dhNjJu/76aufkAdLd+u62PC5y 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 uuHNhNQNbxxTN0xk6oYpTN2wjqkbNjJ1wxambjjL1A0XmLrhClI31sWye/gpxJ+KxTKMSxfLNK62 WKZxtcUyi2tbLNO4HFI3tsUyjEsXyzQux9QNXSzTuApTN3SxTOOKTN3QxTKMSxfLNK7A1A1dLLO4 1sXy9PBTXz4Vi2UYly6WaVxtsUzjaotlFte2WKZxOaRubItlGJculmlcjqkbulimcRWmbuhimcYV mbqhi2UYly6WaVyBqRu6WGZxLYvlKRkW1LpYpnG1xTKOa10s47jWxTKMSxfLOC6H1A1dLNO42mIZ x+WYutEWyziuwtSNtljGcUWmbrTFMo2rLZZxXIGpG22xDONaF8uusKDaYhnGpYtlGldbLNO42mKZ xbUtlmlcDqkb22IZxqWLZRqXY+qGLpZpXIWpG7pYpnFFpm7oYhnGpYtlGldg6oYulllc62J5gv2L 2G2xDOPSxTKNqy2WaVxtsczi2hbLNC6H1I1tsQzj0sUyjcsxdUMXyzSuwtQNXSzTuCJTN3SxDOPS xTKNKzB1QxfLLK55sfyxfCP4U7BYxnGti2Ue17JY5nEti2UaV1ss87gcUjfaYhnHtS6WeVyOqRvr YpnHVZi6sS6WeVyRqRvrYhnHtS6WeVyBqRvrYpnGtS6WP4Zv230qFsswLl0s07jaYpnG1RbLLK5t sUzjckjd2BbLMC5dLNO4HFM3dLFM4ypM3dDFMo0rMnVDF8swLl0s07gCUzd0sfz/nuv5j/7NdJ+k E67+Znr9hnaaSn82mDjmHEP/8vIh9eS87e/V7WBNibb/1VA/L15Kvuor2FaWvybuvpb+lS9d+R1s K7frXPnTq75NbouT1uyv/oXl++Z+dMXK72GM84e++y//z9XVBjNXu30o/ep6pYKw/676jVpz7Zpi TCz9l9OwdMpl1UmvfOD8s+FEIEIpoX+zbpoot62/c7+PpduS6kfPdw2Xuq8idVP5wAkv9lehOuPG c1+Qv88NdNLn9oE70lnpiHP9vtzByy/vpw+c8OJw5Z3KYcyCm3P7ev1XPlPLT3IP5oGhu+2b8OuR y+9dngTQRjea9RF6ZqhxOJ/8/s7d3jZfHtwoP74znJhRXmNsOPdF926w4epbvCC0D8l/5bH7NK/U z847eW1PC/CDfwzeFLni9jF4W8K2e3vZ3b7+Phe++mPwUmT6eD7a950//ObXf17+/iji+sf5yGXa /Uj36AUzipG+Hj+ujxF+olwyOQC57DQFJpdLTK5YkFxmQuqGNY6pG3XiQ3IVpm5Yy9QNG5m6URdv RK66AkJyBaZuuMzUDW+ZuuEDUzd8ZupGMEzdCJ6pGyEzdSMapm5Ez9SNmJi6kSambiRmXNQmaFw0 Q+OiGRoXzdC4aIHGRQszLrqaeh/Dx8U/FaYejatNXiyuzdSjcbXJi8bVJi8Yl5p6NC7H1A019Whc hakbaurRuCJTN9TUg3GpqUfjCkzdUFMPxqWmHo0rMHVDTT0Yl5p6NC7P1A019WBcaurRuDxTN9TU g3GpqUfjYsZFN1MPxpWhcdEMjYtmaFy0QOOihRkXXU296eH/O9KfClOPxtUmLxbXZurRuNrkReNq kxeMS009Gpdj6oaaejSuwtQNNfVoXJGpG2rqwbjU1KNxBaZuqKkH41JTj8YVmLqhph6MS009Gpdn 6oaaejAuNfVoXJ6pG2rqwbjU1KNxMeOim6kH48rQuGiGxkUzNC5aoHHRwoyLLqbelAwLap28cFzr 5AXjUlMPx7VOXjiudfKicTVTD8flmLrRTD0cV2HqRjP1cFyRqRvN1KNxNVMPxxWYutFMPRpXM/Vw XIGpG83Uo3E1Uw/H5Zm60Uw9Glcz9XBcnqkbzdSjcTVTD8fFjIuqqUfjytC4aIbGRTM0LlqgcdHC jIuupp4rLKg2edG42uTF4tpMPRpXm7xoXG3ygnGpqUfjckzdUFOPxlWYuqGmHo0rMnVDTT0Yl5p6 NK7A1A019WBcaurRuAJTN9TUg3GpqUfj8kzdUFMPxqWmHo3LM3VDTT0Yl5p6NC5mXHQz9WBcGRoX zdC4aIbGRQs0LlqYcdHV1JtgHwpskxeNq01eLK7N1KNxtcmLxtUmLxiXmno0LsfUDTX1aFyFqRtq 6tG4IlM31NSDcampR+MKTN1QUw/GpaYejSswdUNNPRiXmno0Ls/UDTX1YFxq6tG4PFM31NSDcamp R+NixkU3Uw/GlaFx0QyNi2ZoXLRA46KFGRedTT1bEuxDgcvkxeNaJi8aVzP1eFzL5MXjWiYvHNdq 6vG4HFM3VlOPx1WYurGaejyuyNSN1dTDca2mHo8rMHVjNfVwXKupx+MKTN1YTT0c12rq8bg8UzdW Uw/HtZp6PC7P1I3V1MNxraYej4sZF22mHo4rQ+OiGRoXzdC4aIHGRQszLrqaeh72ocA2edG42uTF 4tpMPRpXm7xoXG3ygnGpqUfjckzdUFOPxlWYuqGmHo0rMnVDTT0Yl5p6NK7A1A019WBcaurRuAJT N9TUg3GpqUfj8kzdUFMPxqWmHo3LM3VDTT0Yl5p6NC5mXHQz9WBcGRoXzdC4aIbGRQs0LlowcdHn D1P3+uHuIY+u/jUj7rdvnnVPHA+n143pjB8n3x1fO0zCLuRxLmBERcsoOy7aMdnueHa40f98kH6R xVzp7wwnfgwhpdy/OfjR+Sn6/t3BpvzS8dnD08fagDHHZHLuPrxxrzbNl9C5GrGVnj47mGKs7t5e dm0x624tu+29cXjh8e7O+Xvni5Xmx3qJh/9vWX7z999b/v7c1y/r+fnwR7mxv3v0ke6CMRmsFy7L 4wqRyZUzkivaickVLJMrM3UjGaZuJM/UjZSZupENUzeyZ+pGTkzdKBNTN4pn6kZJTN0w0+Tn/8oN jstFJlfMSC4ZiEwuZ5lckakbpjB1w1qmbtjI1A1bmLrhLFM3XGDqhstM3fCWqRs+MHXDZ6ZuBMPU jeCZuhEyUzeiYepG9EzdiImpG2li6kbyTN1IiakbGRoXzdC4aIbGRQszLrrlfbmH/x/i+AS5trwv GJfmfcG4NO+LxbXlfcG4NO8LxpWZurHlfcG4PFM3trwvFteW9wXj8kzd2PK+WFxb3heMyzN1Y8v7 YnFteV80rhbfoHG1+AaMS/O+aFwt74vGFZm6oXlfMC7N+6JxRaZuaN4XjEvzvmhcgakbmvcF49K8 LxpXYOqG5n3BuDTvi8blmbqheV8wLs37onF5pm5o3heMS/O+aFyeqRua9wXjytC4aIbGRTM0LlqY cdEt72t6+P+ttk+Qa8v7gnFp3heMS/O+WFxb3heMS/O+YFyZqRtb3heMyzN1Y8v7YnFteV8wLs/U jS3vi8W15X3BuDxTN7a8LxbXlvdF42rxDRpXi2/AuDTvi8bV8r5oXJGpG5r3BePSvC8aV2TqhuZ9 wbg074vGFZi6oXlfMC7N+6JxBaZuaN4XjEvzvmhcnqkbmvcF49K8LxqXZ+qG5n3BuDTvi8blmbqh eV8wrgyNi2ZoXDRD46KFGRfVvK8pGRKX5n3RuFreF42r5X3BuDTvi8bV8r5oXJmpG5r3RePyTN3Q vC8Yl+Z90bg8Uzc07wvGpXlfNC7P1A3N+4Jxad4XjmuNb+C41vgGjavlfeG41rwvHFdk6kbL+6Jx tbwvHFdk6kbL+6JxtbwvHFdg6kbL+6JxtbwvHFdg6kbL+6JxtbwvHJdn6kbL+6JxtbwvHJdn6kbL +6JxtbwvHJdn6kbL+6JxZWhcNEPjohkaFy3MuOiW9+UKiWvL+4Jxad4XjEvzvlhcW94XjEvzvmBc makbW94XjMszdWPL+2JxbXlfMC7P1I0t74vFteV9wbg8Uze2vC8W15b3ReNq8Q0aV4tvwLg074vG 1fK+aFyRqRua9wXj0rwvGldk6obmfcG4NO+LxhWYuqF5XzAuzfuicQWmbmjeF4xL875oXJ6pG5r3 BePSvC8al2fqhuZ9wbg074vG5Zm6oXlfMK4MjYtmaFw0Q+OihRkX3fK+pkTi2vK+YFya9wXj0rwv FteW9wXj0rwvGFdm6saW9wXj8kzd2PK+WFxb3heMyzN1Y8v7YnFteV8wLs/UjS3vi8W15X3RuFp8 g8bV4hswLs37onG1vC8aV2TqhuZ9wbg074vGFZm6oXlfMC7N+6JxBaZuaN4XjEvzvmhcgakbmvcF 49K8LxqXZ+qG5n3BuDTvi8blmbqheV8wLs37onF5pm5o3heMK0PjohkaF83QuGhhxkVb3pctKZC4 Wt4XjmvN+8JxrXlfNK6W94XjWvO+cFyZqRst7wvH5Zm60fK+aFwt7wvH5Zm60fK+aFwt7wvH5Zm6 0fK+aFwt74vHtcQ3eFxLfAPHteZ98biWvC8eV2Tqxpr3heNa8754XJGpG2veF45rzfvicQWmbqx5 XziuNe+LxxWYurHmfeG41rwvHpdn6saa94XjWvO+eFyeqRtr3heOa8374nF5pm6seV84rgyNi2Zo XDRD46KFGRfd8r68I3FteV8wLs37gnFp3heLa8v7gnFp3heMKzN1Y8v7gnF5pm5seV8sri3vC8bl mbqx5X2xuLa8LxiXZ+rGlvfF4tryvmhcLb5B42rxDRiX5n3RuFreF40rMnVD875gXJr3ReOKTN3Q vC8Yl+Z90bgCUzc07wvGpXlfNK7A1A3N+4Jxad4XjcszdUPzvmBcmvdF4/JM3dC8LxiX5n3RuDxT NzTvC8aVoXHRDI2LZmhctGDios8fpu71w91DHl39a0bcb9886544Hk6vGyNv++Pku+Nrh8ou5HEu IMdNHmPuXLRjst3x7HCjf3I4maSwzdNU+pfrTizBBt+/O5z40ZrJhP7W7vDrg5Nr+in2b9UCIaSU +3u1QLCmRNu/P4Rpeun47OFEVlJmKl7uw9QdX5W6flqLuVJrO1fVm2tVMfV3lotm13eDkYrS5C49 7d3ttFtDGnOIoTYlj5MtOelVBWB/1u3Bplzb59MYpZN+cjg+fqP/2TCNxklh1783Ezop2rC8N/1r u+395W7utvf9tDV/X3rfUfvSLw/e+9oo68acW6P+QVoSfShG2tS65WyQBU/OyfSv6LFbF9RQ27m1 YXevXts1YSvwzFBHhnV2322vbGftO3g7/53B5VKbXVv7jxe09twtul8jnxrkHdqUlPYDYt97K3s8 PyIvGaj3BnkwWtuu7Sq8o/f3zl/Qg08p3UNtnI2jjsHntjH41oVj8OLxtRu6u6b9633H5f/1lg2z LCwCZTd1Mqs4xTjGGi8bp7xI008GM8193r89nNQ4tfelf7EfTtJoq1ptvwu3jJwot7K/W1lF7Uvy dRzq9q7Iq7vDXd02PqViay1yQbfeqzjaKJe+N9gxTyEaucEnMj59PXhLbk+qT+38f68s15NLh1pN HcRJrnF7q3FXuQwIWwvIee8PpozJzM9hrdkEl/oXhzY0rlTypbNqc+PSWS8MxsgTOpn2rMuo3o+d X10grLsBd9kwe6ee5rL3WTa9MCQX2vP9QeW/1UTs6aNMVlbuo8xM/3ww3bPyzy8P09z06z86mCK3 30l31An5bNnNUR4vmZpuH3528CXIfG3Wn6VFUXf155oPt/t53dWfXZ3otp/XXf3ZmLL/ed1tP5ti p93PbVd/TpPZ/7zu6s8+7y/edvXnSSbf3c/rbvt565a6d65XavHdz3X3g732gZ/bbvu5Fb/gbBm+ +3sy7+5/lyFQdr/Pux+6Z8Gkfbeuu0pu0/6etd36swzjNL8q/GjbfKBXHS+3fixxe0BsaQ+IG33u ktz4vMrJZ+pDWEy2sX90ebxN9P1n5WmINrj+c/XnGIv8/Hl5Lor3Uwn9F+pR70IpcvREJmeXU5Sy 80mT7x9bzsrJ9X8jB2Ve9nY+34cQ5FH5W3myRy+1inLJdBPGlKMp/RdrDWaarO2/VJ8g6Z8sVbx4 rx53k2x+eX7pkTqmvD/8lVqfnWTAz9dr135sa/xXl2YWW/qvzbWYKUnbKoa1ObfGTcbsMHY1fL32 jS9Z3vA+u131i3qpb2y1fnW71FqBLI+kaPBVYcz8EijK6EVgUjdvLe+Bf70Tn8Cd0Bsx/fUmfAoe h78+DZ/ojZhfUaY63zzYRCPT2XTuTcy4daKxZZ6BoivjuqT+WiV1LkZpc5KTirxffV5eFUOU1tWe l9sdrRx8VDiDFfzafdOY5T005tpngl/nyNqV8jo82VyZ5YVqMtLr3xjqO35daHxBjjlZlPn9RR9r L9rSoOSF46QNNOnM2jAjK+l6G1sl21U+K82VXp/q8HB1FS0vg58foqsvT1ZfSbUjTkwO8m5YOisv hnap44dzQ1Kc6uu0HdNk5c3x7VqvzUVu3e1aWS6+vim3rZtyu6K838cagNDNd3cl5ZbkOgbe0kve aVEGY/NoXX31mdcNtQ0/XtuQgqxJddPP5xrZKmtzUunN7uB8aenAk3pOsFFuyw+307utw06X9sjo 2x18or5VuxL9+ZKVISe7P/jkA5d8akh27ndZU5g5fVYDKfKwBSM68NbWta9um7cGebUySRYtW3+3 68rzUeMKssoJVk5fu3F+HuRlKQV5Y7fyxr69rZsQO3nXX1/tnDxAulvf3ZbHRc6a6nv+XFjfA5fC u/fAfQ1LWbl3+7Lr7lz2fMXnin+oYmti2RVedvcX21V8DuGCiu/KiiCtj3dMppMC879j6dzUYoin 1/3UPfXWoUYbjayOlsLyzHc2SgnnS9xK2qXk84f/BRd0SuFlbmRzdHJlYW0KZW5kb2JqCjU0IDAg b2JqCjczOTgKZW5kb2JqCjQgMCBvYmoKPDwvVHlwZS9QYWdlL01lZGlhQm94IFswIDAgNTk1IDg0 Ml0KL1JvdGF0ZSAwL1BhcmVudCAzIDAgUgovUmVzb3VyY2VzPDwvUHJvY1NldFsvUERGIC9JbWFn ZUIgL0ltYWdlQyAvSW1hZ2VJIC9UZXh0XQovQ29sb3JTcGFjZSAxOCAwIFIKL1hPYmplY3QgMTkg MCBSCi9Gb250IDIwIDAgUgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjIxIDAgb2JqCjw8 L1R5cGUvUGFnZS9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Sb3RhdGUgMC9QYXJlbnQgMyAwIFIK L1Jlc291cmNlczw8L1Byb2NTZXRbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSAvVGV4dF0K L0NvbG9yU3BhY2UgMjQgMCBSCi9YT2JqZWN0IDI1IDAgUgovRm9udCAyNiAwIFIKPj4KL0NvbnRl bnRzIDIyIDAgUgo+PgplbmRvYmoKMjcgMCBvYmoKPDwvVHlwZS9QYWdlL01lZGlhQm94IFswIDAg NTk1IDg0Ml0KL1JvdGF0ZSAwL1BhcmVudCAzIDAgUgovUmVzb3VyY2VzPDwvUHJvY1NldFsvUERG IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIC9UZXh0XQovQ29sb3JTcGFjZSAzMCAwIFIKL1hPYmpl Y3QgMzEgMCBSCi9Gb250IDMyIDAgUgo+PgovQ29udGVudHMgMjggMCBSCj4+CmVuZG9iagozMyAw IG9iago8PC9UeXBlL1BhZ2UvTWVkaWFCb3ggWzAgMCA1OTUgODQyXQovUm90YXRlIDAvUGFyZW50 IDMgMCBSCi9SZXNvdXJjZXM8PC9Qcm9jU2V0Wy9QREYgL0ltYWdlQiAvVGV4dF0KL0ZvbnQgMzYg MCBSCj4+Ci9Db250ZW50cyAzNCAwIFIKPj4KZW5kb2JqCjM3IDAgb2JqCjw8L1R5cGUvUGFnZS9N ZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Sb3RhdGUgMC9QYXJlbnQgMyAwIFIKL1Jlc291cmNlczw8 L1Byb2NTZXRbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSAvVGV4dF0KL0NvbG9yU3BhY2Ug NDMgMCBSCi9YT2JqZWN0IDQ0IDAgUgovRm9udCA0NSAwIFIKPj4KL0NvbnRlbnRzIDM4IDAgUgo+ PgplbmRvYmoKNDYgMCBvYmoKPDwvVHlwZS9QYWdlL01lZGlhQm94IFswIDAgNTk1IDg0Ml0KL1Jv dGF0ZSAwL1BhcmVudCAzIDAgUgovUmVzb3VyY2VzPDwvUHJvY1NldFsvUERGIC9JbWFnZUIgL0lt YWdlQyAvSW1hZ2VJIC9UZXh0XQovQ29sb3JTcGFjZSA0OSAwIFIKL1hPYmplY3QgNTAgMCBSCi9G b250IDUxIDAgUgo+PgovQ29udGVudHMgNDcgMCBSCj4+CmVuZG9iago1MiAwIG9iago8PC9UeXBl L1BhZ2UvTWVkaWFCb3ggWzAgMCA1OTUgODQyXQovUm90YXRlIDAvUGFyZW50IDMgMCBSCi9SZXNv dXJjZXM8PC9Qcm9jU2V0Wy9QREYgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgL1RleHRdCi9Db2xv clNwYWNlIDU1IDAgUgovWE9iamVjdCA1NiAwIFIKL0ZvbnQgNTcgMCBSCj4+Ci9Db250ZW50cyA1 MyAwIFIKPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsKNCAwIFIKMjEg MCBSCjI3IDAgUgozMyAwIFIKMzcgMCBSCjQ2IDAgUgo1MiAwIFIKXSAvQ291bnQgNwovUm90YXRl IDA+PgplbmRvYmoKMSAwIG9iago8PC9UeXBlIC9DYXRhbG9nIC9QYWdlcyAzIDAgUgovTWV0YWRh dGEgNjUgMCBSCj4+CmVuZG9iago3IDAgb2JqCjw8Ci9SZWdpc3RyeShBZG9iZSkKL09yZGVyaW5n KFdpbkNoYXJTZXRGRkZGKQovU3VwcGxlbWVudCAwCj4+CmVuZG9iagoxMiAwIG9iagpbL0luZGV4 ZWQKL0RldmljZUdyYXkKMjU1CihcMzc3XDM3MlwzNzVcMzc2XDM3NFwzNzNcMzY2XDM3MVwzNjVc MzU3XDM1NVwzNTNcMzUwXDM1NFwzNjdcMzYxXDMzNlwzNTFcMzYyXDM3MFwzNjNcMzYwXDI3Nlwy MzRcMjIzXDIyMVwyMjRcMjM3XDMwNlwzNTJcMzEzXDIyNlwyMTNcMjMxXDIyNVwyMzZcMzA1XDM1 NlwzNjRcMzM3XDMxMVwyNjVcMjQwflwyMTBcMjA3XlZdblwyNzFcMzQxXDI3N3xiaFtVb1wyNTNc MzQ3XDMwN1wyMTFcMjIwXDI2NlwzMTdcMzMyXDIwNmNHXDAzNTtcMjQ3XDIwNVwyMTVcMzI2XDMz NFwyNjNcMjQ0XDIyN1wyMTRYXDAzM1wwMjU2YVwyNjFcMzI3XDI3MlwzNDRcMzQzXDIzMkJxXDIw MH1cMzMzXDM0NlwzNDBcMzQ1XDIzMGlcMzAzXDI1NFwyNTFqT0RcMzEwXDI0MlwzMDFcMzA0XDI1 NnRJRnJcMzI1XFwiKj5cMjQ2XDMxNGAuIUt6XDMzMVwxNzdcMzI0XDMxNlwzMTI/USdcMzIzbSNA XDIxNlwyNjBfJlwpXDI2MlwyNzAxXDMyMFRcMjAxXDMzNXlcMzAwXDIzNVwyNDFcMjczXDMwMlwy MzNcMjQzXDI1N1wyNjdcMjc0XDI1MFwzMjFXXDI3NXY6LVwoXDAzNzJcMzQyXDIwMiBcMjEyXDAz NFwwMzZsXDIwNCtTe1wwMzBkUiUkXDAzMj1cMDEzXDAyMFwzMTVcMzIyQ1wyMTdcMjY0XDI1Mlwy MjJcMDI2XDAwMFwwMDJcMDI0OVwwMjNccjxMRVwyNDVBTUhaSk5QXGJcMDI3XDAwNFwwMDdcMDMx XDAxNyxcMjU1XGY4NDUwc3cvN1x0XDAxNnB4dVwwMDZcMDA1XDAwMVwwMDNcMDIxXDMzMFwyMDNr ZWZnXDAyMlxuWTMpXWVuZG9iagoxOCAwIG9iago8PC9SMTIKMTIgMCBSPj4KZW5kb2JqCjE5IDAg b2JqCjw8L1IxMwoxMyAwIFI+PgplbmRvYmoKMTMgMCBvYmoKPDwvU3VidHlwZS9JbWFnZQovQ29s b3JTcGFjZSAxMiAwIFIKL1dpZHRoIDc4NQovSGVpZ2h0IDU0NgovQml0c1BlckNvbXBvbmVudCA4 Ci9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDUyNTE3Pj5zdHJlYW0KeJzsfQdAE1nX9p0+SWAi mcSOCEKwYUOsWMCGYAEbgo1ib9gQbCiCFEEFRUSwN1QUC4oFQVewjbo27BVXQMG1L3b97x1AXZAF 3P/F5TPP+y5g5mZKcp57yj3nXAA00ECDL8A00ECDr8A10ECDr/jZGkoDDf5TIDTQQIOv+NkaSgMN /lP42RpKAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDf5zIAj4A8dIQNEMIFgM UBiOYQwBKABoFmASqUxLWwoIDsgrSHUkEpkCAB6QPCG+G6cBxQOMoWgangTg8BUK4uc+kgYa/CDy c64wnoH/ongFBRglDlRQoimGInFcq2KlylWqVquuy1N8Db2a+gZVahmqACAVRjRBMLQRfBemBjhk B4VzCh7DMIr42Q+lgQY/ChzpB4JAOVeYmqUImiQgK4xr16lbr76hkgRcbZMGDRs2atzEFAN8U7Nm zVu0bNXaHBBMm7bNW7Vrb2FJUEgtkAymUEOaUEDkBtDkcGlQPiGKLyBwhiAoEs7ygFcDZcUOrTp2 6tzFSkUCZQ39rm3rW9eykcBR3br36GlrUqm2guCoOna9evfpa9ZPRWJAoW3EoveSPAVPBQgKnUoD DcozKAYHtH1/BxWDOw5oOHDQ4CEGNjwPCKmlk7Opi0RJ4ThBS6WupsauSjiarFBnaFuzYXY9dQGQ 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 quLCV89NHZakxjWY+apPnj86SndWi+WxmolrZ77x6dnr1vTZtnvb4bf6bg2jRmDN23239lnxjsjN X/H4mt193yn7/PXpBX8bwfTHfnmn77pvV3z1mulZcPCHddvSV3z9GoDecfU/+6zZ+vauF72uiMHt nv627ztvfVOvraIkjE/fsz13xQczPVUnBMGZXB7n0sBDwMYCb4qpJET1yy0RjeJkbmNuEsF1Mdyn xl00SQyPieNbQWUmVYY6SBcLFLeBW9e4XYcWhhGO2RWEEkPBV3IUaiLyjRlX5Oj26EizqH4j08eN kpYhKkFG1JYJ/s0MirtwqDB5wvqoo7YHzMAIg1BFmi1dGh7Nv4RKmYpO5IaHdr48+tN/jLypDjcw qcpjs5LvQtoW+8V7/zv2+ed3XTH6t1+ufD6MGoGrrn3j8l/HXvX57oe/uPXW9y8fW/b5K74/9qAM qpNe3T9ofId9myIMiPls6QPj9+3bNEoOD2v+6kP7991x/iQZdLvvPjh16k/33pmQBprVeOlDD7Qa 2H5hlSxEzYD0dyTxXOd/3T1Kxu83LtuyuWOiRlXpdWFOoIGJsMBL9aCRJUTHnixcksDJ+MAiQeSX U6nqAuT3lA7f9336+i9v65gauFxBieqOjok/G35xGFVHfEpKTEpiXLd7lw33pSW7k0oeTy6Gr3PO tT3tUBjQpwuHEDTiosvqJ7pBe/Vvzzzzxc3Do3BPUvVgepTilzkkHIMJ3YO7Msyp95GW6YTcPLQE hqknb5ySrLMZd3133bRXn4jWy1dK4I6pCqMmgeJWNUDChaNszKsLSD5Szl/fIb68JKdaB4Ka9Erk +ZdtSpbR9IXnHRz34Be/bnbJ+KJXL0dSgyMf1OISJQSTMYZia1gqyFlJZrjClZjH+nW67Ouli2Jh 0r5P2k3AwIgEqAeUZKPQMGoUdKpjwOk2ZSBIiEICDujc91Ai/wP0/2NOsE0ib75vYhRKhkPslBuX D7pRAzOy3sE75/a7f3IUJvCpqIzJNMtDUfjMrwlAiqcRPSbZJXkR89m1n96w4ulfhuuQUH/fdOl/ ydBHLft+Jd8vD6NGQcZ+hqKjZ+zkEkHZ58nMol97llNJV+vgZAdSJaLRLz1SmYq7jlyLTImUPlLa +8feefvJb5o9ZqpES4mM9ihICsvJl9IVzaAyoCcpGy9sPa9Rty5uD6Ss/senXeduHuphPHXRa7P8 +ebl5/2yP8BME2LQcAkG12yc2a4cV3faMw8cAVZpm+fQh/z4hDFP234XRMowgKtO4iA1pLt49f5W T4388uf5KrD+nXdd9du9qzYnSCcq7pK77/ns1Vf6xVFGjjS+7smXXvjkgTlyWvG+uKV1jAerHCiL j4kwbMptXqHLdC5mwTAqhsVUg8iJr1ei269xWgylGNBxU9t49kfILJCTgSYNQ6xLxykdo2RilOzc mz2v2Xv3FIPBqGbfv/DPl76eOVTOI/M7XDl6dPv/Nr/QUMiRm3788YaR9zY+giNdk8zxaZbuxoor zEA3PIE5AI6/FLYQNQ6K051AGzL3xiSnPqAsTDOauv4Q9Y3UYYFf4JsQoM4uh2YSlCE0uKZGAERy 3vTVMQ3Om7t3lDQdXbr+1Gz2xEb3HHF7ATZecOGoJLdJNGoRMN2as59HFDcYMjgxTQho5OIHC6PG AbUxvJ/dumqjk9Ff8mhJzEecRs8QfXYH57kAqmH4lQPglAWdmjvSF2trYMQMXrxhcpdEn0eTXyJx gUZ1F0RQeuqK6pqOktUyzJsBzFzB+Cf2lDXiZiXNAEMK2HlE+kpzWx7aKMdDOTXQDNOAKtbdqj3Q nB1pYkW5UWTgFPsDXJoNKoNww7Z0kxjYfgLLkAg2dIyGUCcEYIkVrqIoHks1NKritiR4KmxcUSwy VWv2UzhDORdl3hUTe8o5spxb6fFp3j9ExzNcdqVM33DNhTojlatgnFzUKmcNMn3Fh3GqEuqE8O+y aFaxA41l5TrWBpYEl+W8girlS7SHJKTDi3/mPT9xkvwKyvlcjy3smIzRZq0H7kQz7prbrnEyJRXX dGJCOwKNKzFVJ1kPB5FhdfzzV5PtkCeEaaiG/3Zzw+1VKcFye2/FMv3OXjtRa02YiVnKKvP2/m3Q Yr8mUVnc9uHR/rXIRawYjtaGEtnp8hZpmK9X0WF+Mvh/orQ42MIcpojBF49rtbEWuEy4lqCREgb4 UHXqVCLMjHNSiywEytCo4H1t9Z0JHAsmyz5Pjx67Ygr8EXKZqL9UtP7oTlHATyE/7M9VL/3Xr/rP SYwBk2/4S1tPqBMi2m1gXwT8Uf6lRiIlGKi0Ipep2HmoNarlHKcDMI/MeSxWgcAEA+DLt/6cQGtN yHQKUNT5Y76bLmvok99KhS5Ayf4Bw4IIovmPk0G15iLJa481rgUWwrl8bjkdywBcqRBBA1Xhjx8N xG1A7dEvZxx1UrhlW07H6oDnSec1HeKUWvNxTwHKiCYJUf+WrqmKUvENLvGX/MEnil76+8ygpl/z H7tOCHVCqBo1ep7/YfqON/rFOAXAkZAjRL4oQdnjJ593XWH6G72bnotrPSNQqGaipinKbkGg2LbW MPOKWafVhz1E4PQbolRJbZPo1XjwH5hqoF7SYeQ1uGjHVRp6vbFMZ1eSm+B7I7dQZBfkiNzX5Qyp Qn+RJR8QojA9L6OglBCO9pSdtitD5BcUZAnxs4+iXFZtCCZ0oNY9v3bvD+UpknI1cUo8KIG+VG0D daZ7ptiWhrV4QdtEqhla6qY3m0crbjMklfgcKVzC3LGF6SKvKE8UFWYcfh08YDSVFkKsx06YQuTu KT3ewg2qg7vT0/GZotyiltFRpwq9QgWSApZ0lV6/deBGbirlaBNz0yD6HyC3jzvSBMzpKqaY1ZDS o6oKC/fclwq26mQOhxichTVMZP9SiK51kwGe6CwyxBNy3M8XOfdz278VZUSWvkCGFRFPSK40wLh7 rhA5M2Q8ZYXgTHAyJAXcFOzezw+cxMpbfee4RaUFulK1Doq//lMDeesNM/hlNTmZWHDNI0/OYdwD TiV3aMHJeJbhZKPsvC2xnLmkleudc2CED9iyjPxeuG+pu+kJOYqoiKK/LN4aivluABdsFdc6rTrO 4Uf4XSCjBw8Fd4NdgyZBeaurGli2HCm1f6tauktcRlJG/GMT0FIG7SOaFuhGwuqvBiXxWMwaPhPX eCZBcCgQ0GWYMAF/0wwjpkB8DVHa2sIcnXucoWEfHwc4T0blFbRzVHVl8DBVHPB6Qs8wBsBAnV7u GnbV/g3ShQ70mWjkBaPcnpDnfeWgmOYIiv3Z0c98UN7yQmWwQFXtJdfdN5ShxkzI7dxy1Fzm0DNd 3CPdZKeWPA0gyYbUjNxb0Y/0urHN/fGcJoNC3UJxvzzOKx80ZoiiBbScARRq0LDplGbduG/5JO5P fS6DeV+fH23/AdZdmdMXgrhntuye5Og/BwtqqkRNeflP91ioRh5ycyVKYWkU9gpxIcTJjwDRGppJ 1Y7OEud5FywTmd+ct+HEtGcZep6fKdoUqxuas4ToQWpDFqgheWDwyR8NiC5/iWBfxvupGv0DiAw4 s4Hmqnd58yg5+wXt8lgoFaiTdtcfTcC+viE3U2JfPpXyzhnZSdS65A0hVs9hukHAGiUKX7nusMgU OaJgamLp58IGBTNF32QFIpAmWlJfsUovt+YyxKBq2KAgKaYNCm3xQIJ3WnfXkQqqW2oVcEEBZe+3 3NojBvukBPt6RhWq0vhG962Ms2UsEoozCIpOXZkr4EaRIXIKMg/8awN4KSwU2SIrV4hCkSUKP/WZ 2NecomS5aeeJnNLvSckWOxg92bIyykNuYvAQnWHOu84xDiwnSWvLtoNJpPbH1MWE4FHLR7dIQ7GF YF/PZQimMq3uuJfuZ0QJvX053GwnkUk5IqeBOCA5IEmRlz+Ec2VMhsifu1FOmrzpQyLrJzDQkhqO 1mh+YX7pgGd5WXnSxziJAKFICJ06DXicNWhaTgih9Thw7QRWjuWobXB6bAGP3PRrjzhWjdwclJO1 CUTtOva6Yiuht3HDmSOzmbsnL1u86JMh0JBf8sR+Ndr+9/rModgOykOo9y6RmYQrLMx0CCH9qON9 u0WRAJOeNFBCkRAoU8Y18BqawimlAQPfvPjpnyehgmlthxNSM+p9tf7eGKfjbpDAalvdAqP7j83r 6KCGoMvklvM7FyL3vi4ALkOHyNnbRWsnpcOCKArYGHJJrpiJu/AGCvFQJETpq5mQzlYZDyMUCUGd tldkSr+OPnAyWcqAt231yiwIQRcgaKAMDWX2rKYTCJRXOljZy6WdVSyqtj64di+H0Nvbd1aLDD1H bJ8C0XUAkoiatH7PUUN1y6jZkgNFkt2KzU7fjjL/LmyDTPjW3BNy/UTmbiiTAxaKhACO8ZGn3xUN F+O0GHD9JHn4hEhqhtyyevAgzsqJSS1HuzjolxuYz6dRI63+24N0zRVyO9VYJi7/Gy0K3ThNYp2c IkQ2ATVVGg8Vf5c2ENNdiYGEQDf6qhxRui9BMopeBhr6FgIIKsnHzn15YBdszBlw/bpmga38AYJq rKkmCiZ8ApRolgcDFeW+5X9a73W/9ecV1uTXXCgQYbuUaSIjQo7rWE5jgb8lh3+SpHm0I9Fj6jGR Rbv/ChojOInKb2hLruhV8vKUjNwtZYWMQpEQ0vAxG9yv/NJpCuakBMQKWEtosT+AgUBCYLt3ovll NIJ9uQqGqmA/iY/+9+A12HoixEC82FyGvVggXLrhLJ8aIPJv8YJOPYD6tBAL0CtTtJLegu6fNXi/ AtGl5PVNRFZrlK05EaFICOS0/CqGXTGxKQrVBd5Hw6auP4TIAHHyGPWUx/pjZYDGq1vok7r/9uaz QjHJDRuXedoI0Rt3H0ywPbNE+kUMrhM5Psx0wi72rxYWfSTpoKKugnxoVMGOfaApTrfzB9aLXtIu RpxwQlZSbRsKcBpEOfrV2BHE2/jy8ZPkR6MBpoDH3ZisGSFdA1ZFKHiPwRpx094krnBWXT4wbf7X b1wQeqkuzBH3pda9O0SC/OSqTuEukbtYi91cVHingcneXuoaKUQEo45Oi5PqtFNkb3Rey7rsES2l mTzJQoQeIRTUdEet44hLXz60GEwSWEPumXt7140q/wPsVTv7ENS1fGWPI6giUe05gMb89t01oViF Tp1EpAkiW1wT6aawYKXI+VUHmpQlil5fAB4SOeDDor7zTNC4x9/lj9Nrduwo6B2rEF8Dkd/3agu4 deIACj1CyNgRlV05i776ytUzFLUcFRronjN6A4Re8mbwwAohpkT3eH95GvBq1JAWgyp89dvNo0Nw GYJhe0qIvlTkZ6dnZYm3RcanqdKdtvZuE+t3FO4R+UWHxUwDEuShuPykgpeANBl7sNI6R4jL8Ryh ayEQqDDkrKtQu8lF9yRiM8PAg3qsm9qfaCE44QULhxAksv7Y5T5JiGoHg5IJ0294cEnIfWHUad+K ckw3potjcoxnbluaggvR0dDljXXy960FIuNqHeKla2Vniz2qjCUM7bHRO0RBTk6hWL9vuD/944RT hhwhEBputzOWmJqIO/J2gCVg9d86FIdq1rUexRaiU8tVqYDLisCqdUM50ZIGftIpokQ1+kxc6pkA htSY0OXlPHr+vuyC7e2GoiCTwiMh1tN2XnaGqLc5zS9Hk+RsR0h/OzoK1Cb1rxTisosuBIhxU+0k 0dPQIkSxjormXz4nMh6SDlM5zQEb5t7aBv4ILYQc5T4e2/nK5akaLkAyp91V8JbCctvDW743I9QI wbCrJEP1FcxK0G2L2/41SPBAhAU20HiQ86U3EktocB8+CpfoI1zUCS898j8GcPL+fEgRgirY45xx zamZkzOBpVocAjM0zOW5V06gVsgtJweP4qC6d4fbYomBDawpto0JPslPflUTfntmfqgRApUVABdV fOBBjSnQmKLEgkcxIIagYJeBGl6ADYdBkkKJhGjFSQpmCmP+uqAIyk9atw8pQiiaqXEZRhHcY/Aa 6P8puLJW9jit278nJhp/gEUmxdFl4mZEwmAPtS1MYNOs1AvmePzt5EsbZpz0onIGPGa9ajPfvLkO xGJfhSoRyhE7O8uoxld08od1vpFS5SJW9vGz/XlOF8SdeH9Tr+Mm6HI+tCck4s+BGQf6hcM3xpQr C17LwB0VQ0qI/DpA0b1y0ht8063tR1iOKnjgRps0HkTDLmRlYFCT0jH33TqdGRh3BjxfLjQtZIM0 Z7uG1QIpO7XpQ2u7dtTcGjXdRuxj9V+vQ8rTdgWPs7Rc+wlB/TVCGFrrFjZrn7L5of+Jpz+zCFoO RqvqAjliXUdWvbRJBZsbVe+sUbb53xnrGFVdV84vdg7HX1/8d8mzZR8PMQAZ8qV4/NY7F2MtCHhf ubzdYxovm74rYSiMG7pW+2MIXHVEQii2RnTF6j+m1Q97csUje1XqX0ss+eJKNrBLJveS7pRmCbjX UGN69+2QBDrRTaZUAg3PQDSzrAk/4wMg2O+HOn7dcdexlCDOs+U8HlogfMPLIuPY2+9dvJhExird Lm83CQUYA1xeixmmYoZOaHgacOoCSdqkSPBMbvDzu+uyRGbmjyOwQwBnJ02BlUABhV/46MsLpBdE qugJ8cAi3TM9AIL9dvwt5o83mvdTgDHT1KTLJ+eBMo+HGih5omVuVoHI++GNO9tGw4jLBibgelPA DVQjJqcA5SFYABYkmEMIrre+ePP9vQ9+kisKs0Vh3kv14pJjkpNS40vh8nps3bYtRXHGR+CtV3ER e8K+229LQ7E7rbIbgedQDNsTf5YRFSTi45Ml/H8jnAfkadKSkhITk5LSyj5+tj/P6SIy8aMvC0RG 9oFC8cJ/xwyfed/qSVwrW+AhYdQ9eFOS5w+gMuB0AQLN+8p/d135nz7HxIHCLCHy//pzt73P3X3P 1Xv3jijGJa+1nr9o0fwB01u3bj1gwHz5sx/zizH9uUWtByxo9Mb/OvRbsGj4nAGLKsH01vPnD3jt xn5Xl8GIGoe9e/Fb2FsM+cPddzv/lDx38uOhhn5XL/+TQGmFgvwCcf240aN7TDAplDPuX3nhrlkh l9xfDfgJYUQ3avnxX4VYs32HyMrNyn/nmzv2j1+679D+/UuLcce+pT/Nnr1/6f79+3+SP8weX4yS 58c/sGzpxObf/POv4waNv3fQ0TvGV4JD+2evHr//gYd+KoOlNQzyCzh0yPmnGIcekDi0dN8+/Hff vrKPhxp+Orjr8cLcDJGZlV4ojr07buKIGBk/BHpGvMWeX13crv19qjnH3rIkddPYkV99/RfMV8sV mUUP7+894urPNm/uVjpzfzam2+uvdxvzWdkZfXMxxlw6d+Hr83qs/vHfnacPa3zbvGHFWFgJepdB 2fOHcWax8J5p/xGZO9YX5ImCx79Y3fiJBKfZRWBst2l9h2Re+0U3igmhxB+9rOviCS3eXVOYl5eR Lb5rEO/2Rnq90V6rGF63x7I87tLfS1Cy6uQYGtDc3e664lXT35WqWih7/jDOLEzXok/zpJecVbT1 X0c7usCLmSvl9dTqkf7+LKdXfS0Hhk8EeORN72+JhCnzGv/rWyFysz6pqzurrlVflDEJxcIr8N38 9kMq9yglqy+VLb+W3Yc4gx81jHJA6WNX5eWl7+nz9bThyUSx5S2nJg1MZjKWb792UjnBdq1DsS6T a97EzUkmmBFXP/T5wwfE9/0iCDEZNRW1GKZp4ga1qZZBqYXA7B5UdNm77apoT/VX58qeP4wzC127 8AuR9cinzRdZoChM0z1E3vXAfQh9zDc3J7Daz4dSXaYNbRMxoy+CJw1fdsPhP93mdmTyq/4FMKo4 hPG0/efHTd2GVrJhVdYCVIYz+EnDKA9Gkzfe+fDodJfhqJClNpniBU7KGfkpN06JJmrop6pUCsXR ZdLAp1GP4WxF9p83qNleL+fSQmjHUymKd2zLomSj2l9qQwnEjP9wS1TVkvvKw2nuM4URJBTfhecv n57m7KsakHrPoMY9lXILgZkHUxCqP85CBn5CcCVCY5xYoFvU8EaNSlAdCbPjEwVKqyin0G3yRxBU iU1d8uCXTckJuT+nRtkb9Dt9qjCqCnfM4CRTN7kGigXuj95rN8Rg5SyJYJ21N/S6HVQDitMnDvM2 DYbddHRM9vOoJlYGnPjNMCRE4Hg9IYYARyPX5fvm6SWuijueh1GzYOmWAobGVaAqJJ+3a1lTCkrg jrS8xTwSyiu2rpVg3D0rSo/V4LQHciwYq/4yMYLIb9BUq9Oi62wj2mk+f9wXMLh0HdqAifOhR5pI 6gESebxm2oQo0H1gmVgvJD9fBH5lduirUZjAVc57vXhL844eR5emDDzKjEhFM2p/6kZx/Ys0CtJm msppE4KAvfmFlk2cbo6k3ByAmgXdgyrGPlGCzELMXYFESYXkjXtvz8q/dkETAh7f8VdES/Ikahfv FAUrLx0CkMT1WtCmGjRKUOc80osSv4EaA3J+u9BH1FrwQSuFf0cNDMtgXLdOO1uFq3bCp+MWylFG /euwNRwce1BrsK2wGLhXn1nkAq75JgqRny/SRfYDacc/h6HIo+N+FQUHcrIPCHF5oimtoO6uBVu4 iqEV/6sbgffN6rh6b5o39NouBw/GnchAhg4a/R1cRM0ger2n9idJh4lAKDStNDizUHGpGPkHCgrE HZTGxM4uyCzYI/JRfOnL42nPOkoBP7X922yxvo84kJ3zNYpdBt/NuOYBy0l13XTbqN+qBBCcbFnx 8wSoeuFX6MJPCEqAez2q5/T7O1BGNn7+40eUqTrQUJg4XQBRDEp2zkG7UIzGCbKJZMfVCUxTLxKi YH7p0ZqiweY1GWJMtKG7h2UKMRSlcUM+hJDuspy8qF+IjJWzmEiP5l02oRodpkIPzqfnRPV6fp81 NYVT9fa356ogfWuwa/46HdO01BPEil1HDog4D/PWWSsyZ8hQkkTBgMPi2lK5CayRaSkOTMK1OIPf /fSOq6R3pZghv6rGiOm4Q6ph6LYRSAh+/t9Xz1JrgSWsDE5IzYjau8WlvdzREafd4MFpYtnuumWD Ga7c2DU+iHB8ITu1VC2DPCi6yUe0uOz1d0h7oWOnhPsys467CpyPEmua2Rh8KqBemSPiUfYv5PdP GFNMU+HO8jnXymlr0Pg/LZL/CKuufkKY9rL3miXB6cfUOH6YtuihN5Z4sMV5CMwoxHEDSieCXZn3 gldlrK0Qc6ANmjniXnJM3F/yfCRA24zCS6h0L0CJgmtE4QVA1ervzNcUqFSGfwollGiSFIHZymRm 9q0TmFX76yGYs8qkxpz/S484jcLpK1G5FaDJ3fvMpqacXj1KqGw+R4DJpAd9t8iPc2S6ehQJH8r/ SodS8YmiHqUHmnCeyEijTuI8qFFix22mAaSU+bV1x50sP3xFDAR2Fqp18BPCiKz/fPPU8prtBQ2D MMXT+4WrInCRSSlP06xmwnLHQnQbIYahNCU12ucKn+k3oKZP5LYvOUzT2U8iIxn8ifNabFH2Ssbc xz2q2koIZdpb986KrP18AH8bLTO24W/LUkE//dUSjZlUY4s/fXa4m1Edt+dCY2wwFQjR921d77IV OehhqxDMxHiIKyYTYmvJcfLDHS4U4KbOagQ1MsUesE6op6mthGBHt18RZyi17nMFwE8I4nnlgYt+ H0JgHMrUo18eqiOjNPCGythwmgMNFuIVebluGfuI/AL5GFUU1CgqyD+hDy8XeQKlsh0TwUSBgBNT VGorIeD8/xxKDoVUnN8B6A+rQz/q6GXlSFcGi/9v70zgoyiyP/66ju6eHD1kekZRjLpiBhbPFbyW rOuFF4cKKoeKIgqICiriheABiniCoIKCq7IKKNfiXxARTMCLSiAIKkpICAbUlUQ3M4l7SJZ/Vc8k tIGeTELcGHjfDyHMTHdNz/B+/epVvXrFIACWCZ2GLm8PQcICLcY2qBmAS0vz1L4hmuwzFZQLbqj1 SmrqQZQX1BwWhuDSYpGqInFn+VhlRTlA9u7x+f1WEKt6TM42DohtSJ0SroY/3W9z2Esd9IY2RsJg +CHztKKvaVgGqi3GNuRlXydyp/tZMBUMRqMiAhZXFcq4BRERrTlMdglFkQBV6FQJguQIIR3r7r71 /ioIbgTSU/SWU9V8X3BquxKn3h7d58psBtU0Ztn8yMULrrVkZ6LF2EYWwIUV0YG2uikYoG0WuWCr LqRh2pArNtcex6FCymNgrCYusYtEhXQQWbWGst8KwiYqJ/wASN2ICULtdqDGEff5DmACDRIZcw4/ 97QrZDxhthTbMIClish3AAOApMjv44fKinTZD1JLAbX0isofao6zQVsgxFj1T/m98bAo+IcGvt2j c/urIKhTjYMfAF0mTtW6uLDhT5E2YQMnRtBW6wUb/7/qlDkdeEj+h/Lr02qearoL/nWQsfOZheLh 2us8VJQPVMPuugWpGXniRUOXmlEOg8AloqwbgTRV8BAGRMWLPFb6vJYWtWGKF0QVf3ctmbQgTK29 JP3tfzBny5jgyhmHpUs/4UTVXCUjNL6z4xiE/WL+CQN0GqsD25TX+yvBw3BKUU5G7ePu5WIwtFIG MQBeLe75qrQFeX90knyOfkO014IA6ZlB+ChPHA3GL6cz9wtBcNtgmm7Ver7guENnDthz3dB+iLOl Fg0ddUfrqdJZcGKZmvyfd76IRjqJmEHMfGLX8CCTEQVv/F6//0N4SKsSX+1+nC1KzpG3w9RUg7LZ ZWKCc6uUbkTXtVGi7Bq1okpNaD4fKZjKnT1td7NfCIKp1RGuumTk4IV3zD8gPARRvSaWddzp/5zP udpRjTjFApzXaCO3oFLlZ7r97Z4js5mWsDLBbwimdRXSJ+weZXuiItreDqg1f9eJghHqa8qSZu9T R3whIu3BDzQbVgpxuwqoqTttfr8QBDhbb2pabUz0ibg8Q/nR/R4lCMLTf3fikyFq0rAf1EaUmh3b MqpRldocgzBSZgxd/yxtAdl9MRhcERVTjdrrNVeKLYXTOwL0PbRypzjIVAvrNMimqTCw1Qvloujr FC3MWueVVt0qD/7lUuP9QhAMqGkyw1cjiODB+X8YeEBsmKKyE6iWfsSdl6SwIOVmWG0mRoKa09Fp 1B5qMYOwXzv+8e41+xr/9oNqDmdERbvdDsKAy0VpSaUQBdG8yu+kdUCWT4gqcEoBPyEiIq9ARLaI 8hsZZdT6RbLrfiEItUOvGlKqSYsPHrL239fuDyuh6kNVmmGUp//5tAv7UtVDtALMyOg4wHYC60bN XMcMgqZes+bIbtBSxiAZuV+o/NZaQvM3CVFcWl4oxPGpFgQMG0pzhDQJw4LUocVRUVEqRPUfXgPp VMkvhqv3C0EojWdN7avXbhl27NL/dN3b9qT7G6pKmxJEh8eeHABcM4IBagy78KJZutHotT2OQcie 9cGn/bu72kpuL9WcfntQnqsSlmqDRmnmfPghpwtx/18nOOXhTegXLctTYaUWgnD7Y08Qka/+ulL1 lfQ6xXv2C0FIRVjj2txyWK0gPrnqnJHkAJiXU9ujAdWsmdNnZem27COFf+rw36rFrwQMFVHvrYbb L1EOgPzSAGIxBMBPC974EEzDDDNueRpIC3EgtdR3sfvNxJy8Ub6wcd74Vx5OkV7R5vZhL47q6P/t rwjeZ1TFVqDMSEnTwebUP+Go8VvfKnqzQ8AghFE1gZ0MezRLZfyVetR7N8qoVGfATE8DSa793xZE etL6NkRv7mvcV7jsLM36tHzL1jsPHpch/wsh1NXU2QFQ/psSNSwaC55JyvArb9hRLfLEjt+b3ImE k3b9ru8yVvRbnnzY+o2HBTg35LfrKayak3+lj7fP1Fbj2A0lmm3V/Rx1hdBsF9xU2IwPG19YJPK3 /dxmpLxZQlgF2vt/UF1Tl4mSwICRt2zcmhctrhRizq0h3bAtGUDa9WBZtowT9lLGnuvQ7cZlba4l Tgq1p7CY2qzasvT63qe5MOPUPFa7a9t6OGh50JzX2pQwyzA7nVAtivJE5I3/u/foVsBI6AASBNW0 3tc/PS83KkRFtKh00o3PTJ4xeXIfZ9PRhLz66uSTXJuSOsySDHup+1MHX7r952eGHdT91VkzPPYi lcfOnNHnpMmTX63vfZqLml1Wa5/oIzlp8quT69AnTjNeatPS56AZhzxSkaeKF4q155/2SdcUeVdj B0AQodbRy17xs5MfmCTFEMmtKKwsrq6eOOWybZdt37Htsh31sP2bby6TB22bspt58+bt2jXlnm3f vrkouvDzOZO+XTdl0vYpHqxZs23Hjssu+6a+92kuLotT83jeru3yA6sP/Uu8jm+pbL9sx5ytOaKq urC6vCwaLZ576vVTDXJAlLJUetCs6Tes3/Z4r5JIpSguEyKy/ftd38ybsmv7ru31sEshf2/bzZo1 c+bM2frNjm07PiuJTPx++/mfrZk3Z5sHNY3U9z7Nxbdxah9Pmac+sfNXIprzmpuCedvnTXmvTBRW CVFZHC3r+f2aOYf22/da2C0AFQEyO3zl8bNfvf6eHLFT5OSXFX5zzqreP40c27V315+SoLdkZJyx 8qerfNxu5Gu9Vz37h2/+9Uy3seN6/zRhpAddJer8ZN7nt4C80gcfjH3kX+D+PIrmvs59Zey1147b cGm+KM4rLK+MrHto5tULHzu7JdTZ2le4k51tpV9y7ofzM4cf8vrmyryiaPSJPrEM8H1ol3HKtJfu 33QmUbsssP1m9OUAgaTYMHx8qewtRNfec/JHY80P3/pX2gEQQcTrxFgph1x+bF/gWSPPGf94sah8 /+tYxZHG2y8FTdPJ/Is+e7ufpcpXoCBaGBq1Z25cK3otGn3nkBSSzi7ackqroL7/V92gzh8768Pj L+yrqlBmv/Dk+LnFO3qYqvbtPhgwAc6DjL52/vpZzrQ1CqJloRmgP7Mpv2zpjyP96UoGF+ZubNeQ bWlbMNJMDf8/Nz4/FcJBDWiw08lfvN45qLItGrcewsFWCa8WZC1Zfj1RqytQEC0LFuR299Pu/+6p CQGNgJZpH7N6Y9cDoZQlOONM3Hzhd52zecBQNWn0fgdd8HDY3ldBcGBh0I/bNTuDqHJoKIiWhWXo o26Z7PMblAcDHGjnx67sZ1v7/wIhZxmQqs2VnUEhbDLQbBtIX9Pmaji28YvdOFiE6EBfeHroTBuS 36YX+W0Q5KCFskzCTJVnYBuQPTXUErZI22dIvAxNWCVwAVNrosKUhFTtgXhSR+OwVaqgdLBpF018 Pgt0ioJoWaRzZRraQFXmNMtvQ1DGEZqt7f//fywmCLVUWA9TMHSi/pni7Ey6L4IIqPo2NtO0v5Zd OhACKIgWB7dVzY0sgxgMiI/aYISB7v8xhCYDCE6JRkxT7ZNRm7XZBE3H1kUcPfqRk8BkjBFUQwti j+xdK0sn2gHQZWKUcCaD6pdu7ZSmbglNLQh/+o+fLUhXikBBtCTqCoJf23lQkBmZ9Z/ZwqGUqb6N b0j/NplgabypBUHJM+PHDzIABdGyqCuIrGeGvtNNPyDmIVRKr575tyX9B4DRpMOjsbXFZMLGXRvC KIgWRl07CF65+txUTevbnNf0P0It7rEyWx9/RhroXGtqQQTA+tekJzNtFETLoq4dhA8tebrj/r/l okKtkzVCZ9zw4YOBfd4d4pcNK0EEAYacftpHBgqiZUMOXXFKR0vPbu7r+NUhzoYpxAK/JXWhB+o/ I2liMYRJU6/8/uoUFETLxq/5AVL2/4nqmnkIVaePW1qT1hNyBKEZBGZtPf1hFETLxgYtYBKy/xcq +7Xxg2HNP/n2t7uBZYHaksnplxINiG4D9y4+oI5IdD+iVKPBBmRfalQLEJ6ecJE8acREZEzlzt9q D8b9Pz0a2Tc0Mx14p/U3vWBpGgR0jTPubD8Rcmos184D7gE31M4t3jNBxLDVHIp3A3WRCkxUVkhe FmOaHky6vV/A5OmGZRwAK46RfSVsQmjg8WuuzFb3fObcRrnm5IcYBjET10bUEiQXGjoFLfnSillh y9J1W/M8IOYeGteroyo/Uon4QFhShuwbHLS0lOuXPHYW0Tkww9ZUGM+kYWpc7VHlec/VmMEzde9V 7Yyr5a+e5+/hIJy6/951hVStpbClsYb6BkqUy5PeT+mJWwdA3SJkn6CaFQZ71Yk7NmjMb1thQ3fW 4hFia6Hh7Wc++5oHZ7VfefPKs7zbVVlmK8f9aZjX+XW5+bBZHWmCmEXd20njtoxyoiJuWUz5vsY0 gBxIsHAIfPqxE7/rBzF7Y5paagGcDlo/Z/G2bz1449Ft89b8J80zrtaAhs796p51XufXZfGuNdeb muFZNsIXduYkVfHnBuF4CGeTJKqpRMlf4ytE9icINcMD4Kyn758e5HYoNVNtzcadlSYdRK8ta1d4 sHnt1lyxKyPBHdcIrRbiPa/z67JldeQdNdbk3Z4Vtljj9tRTf6VSoDah2GVC6kHe402D+gd/c9ph A6a+0Pnrm1OdvoltwMtbZre9qLUHnxz54on5c7zT74mlQX7Zmie9zq/LlXcsn8YN72F0u1ufCy74 +qlbX24gG3q8/HKPe4d0ntlPzW4eCLVPkcYj+yBq5/NgkPFVn9/z4cunLp777gSL2ip/ipINcztl Z2fESYtT+zg95eKly8MJuiCMPi4uC9U934vs3w89WdXt9mzO/8aKuzaft3BMnIVJctebyxe+9/jc 5e85OWGAMQSSANUp50yl0/qeWrL428VbhPjj2Zq8jXK1xeWGieP2nBeoSSozGJ++cJL3Ln8EGLyZ 90TSfXY+bPxsw/Yexg2fHRGTxsy9K1kh1NBz4Xlv3T0pV2xhliFbPxDSo5FGoxaW2NzqeNi9xy25 O1dUluTkH9OXOoKQJjp9zCgCWh1c+zH0GDNJ9zQwNaOxOLJ+j/O9gJuX3GYl2kWzX87Wiw+++OA2 cTokyYsdrrz+3jb/fjyfc7ovlQ6RAwF1p9dJyq2njF67KCKKcktF+ZGpTl6MGqh8sedhlsHrUOMh NMI7vPWo7r0VF3B4NPoZq3u+F2TQkmlq+syrPd4v9wQDDNrgUSbgJpgv37NWXSlvEVtyI82G6jLZ LOuCT6vE2mhlYUGeyD00hVCVxCTv8B0WjvO2H0759LmTEsWonL4n7km6z250Gv8AJMh90ltFhgK1 7IYKwmbUALbh2wKDANcNjCGQBChBBDn89OT6zXmitDhaWDDm4BAjqk6TBnT6mGeBeN3RZXe8w3kJ PYRGJ0avosl6CHjpq9t4omSmAYX3E7/3PIUXGlNV2Dp/W2qreTl0EEgipCB0U945u12/rJeorhTR SHEP+ViG1USaT9tFh2ue46qyK9K2Z4JRJikIIgWR/LUM/+o7jSUIevuWfk78jQiKVYaWfe+ktSqB HvWAJCS2BtGvQ8e2X5RFK0RZTuHHtuq3WEza0cHnnbXnUsWarggoD/FmouQ9gz0uHkm6zD4ZNvRH iGVo7BXWd+cSkgIpDfuA6jJUNvvg0asJI0TD1A2kHmSUzKWd6IM/LxDFRZFJM33SfpylqrzteQ97 L0AwDOgxZnGCFRE2GJPEOlUlJLnp5T6f/0Ah4CkIcl3VMgg3fNtZ+eYEyL2Ll1KKHgKpHye3lRIj +4JLe0VLHz1+pSkN2HBSTxMKAqj9l/wxOvEKZiHMtIkVH9CkBdFpyTSDM82rvVC7wvGqzYZ+PhQE 0iBqBAFp944oEz2ntWOG5oyZ1iMIQtkFCycl2Cfb4mRu5H0rWUGYMz//MWwmmEkOV95vhRu1Yg4F gSSP6jJxGXYCTeu8sajknGxqJyUI2Xe54Lzlpt9roo3JvvtdOVdBsoLgZy37EUxmebWXnhldBrTh w6YoCKRBcKc0IDEsDsFZr2/7sK8qEMrr7zJplFz/1i7vzAzZgDGxaHs4WUEE29//A7AEQXp483jO rQanb6MgkAZBYivwma5rhv+gD4f0JVzlbtD6BGEacMnCN05qP8GDlWNX3Tx65wdJewg4c8TTP40b NNKrvWf79Pw0rDU8WRUFgTSIuCBULGABzL8uFQwCBq1XEJTB30vE9m++92LelPOF2KYlHUPcmLv2 s28Xv+HV3PLRFcsA9AZPzKEgkAahUSfXm9s2mGFqQFhGw8l0mcCEG3ZWrF66xYO3ehVXVRTclPQo E7upNDe3fKFnewX5+eO51vDShSgIpIlIIAhKGBj854IdV170iQdHnXHGRSIyIpCsIIxlkU/+dtTv jtujodaHtv6k9VEXtz5DnA6NWDCHgkCaiHoEwegNi05pd122BwMGDnxtRdmXSccQwU+3rOqY4Uvb o6G0DPlcRvrZM6r+C84MecNAQSBNRGJBEEru2/yD99nyxPlLxTo7WUH43u+VmdADTOi1hDZigQ8K AmkiEsUQlJgUNpb+bFqGB1yzui0q+sBIepRpfX4aNYP6Hg1pmmHbGiMrSzZBglwnL1AQSBORWBBB gPuqHtO8J8qo1m5MTheWtCC+WN3P6zhnXPis/Odk/wsn5pDmYu+CiD2h0p3g8rV/3J0NWxdOabul 4v2ku0zhm3pdx515wjqoEV4ubfqsteN5I6oqoSCQJiKRINQ0BH16543ei6BlZ3/+orzkk/vo/Ysy ZNC8Vw+gyrpqDxd83pjCfSgIpInwEET8Gc7JuyseS1AVgOvdFlavTzq5j3+2dgCx9h4zyxAe6MqS 8dCIukooCKSJqCe5j8ApuY95n02BZ5dEr0raQ2hdNg9MdCB7uHwZNKJGAAoCaSJQEAjiAgWBIC5Q EAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAji AgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWB IC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5Q EAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAji AgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWB IC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5Q EAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAjiAgWBIC5QEAji AgWBIC5QEAjiAgWBIC5QEAjiIrEgKINTqv6QyMSUID4jyQrCGJFYEPzw3CWNMWgUBNJEJBYEqUcQ FFhaufgsaQ9hjFjdl5AEV6MEkeB1z+tAQSBNQ72CuFwKwtNEGVAlCGigIDwP5YeXoCCQ5qR+QcgY wtNEOdCMAnFV0oJQMUS9gmBJNFQHFATSRNQTVHN6nxSEp4lyINJDJC8I9sWWAYljiJJllGNQjTQb 9Qui5DHqKQhCtQEllR80TBB7OZTGiQmi4cNMKAikiahHEJoUxP95CwKINbCq4qakR5m0EZv7cs54 3edrBMGkIIjmfT1eoCCQJqI+QZB6BGH23Vm4niUrCPumXh0NQzPqPl9HEA0Oq1EQSBORWBC6D/5Y 8S74ars0dbAAWp0XfSL5LtNVvaS9hqFuO4Ymf2yNB8eJ22VgsocHqRcq4xx2wVYUBLKPJBaENLOf Cx6DIPUAqL9faWROZrKCCIwoaeWDAK/bjrwCSqRjCPauWmZlNmbcFQWBNAmJBWEY1qXlN1omibPH AVbYyl39XNIewvqyZzsNgnt4ANWwDLaBPbh6iZ7VmKlqFATSJNTjIQAuX3gbq+3jkzoYBFJKxPtJ xxDW9jHZmpkerNtOjYegDxd3MUkjpuZQEEjTkFgQgWDqacvfXXVtdpy+dcjIuG7Y6LJ1WrKCoJe9 8fBr3dLT6rbTd0D2gIF9B2aPPbPn5bL/FG7wx0BBIE1DfR4i/G6xmJSTG6ekDhV5hYtE0frkZ6qf qHyzquciUbed3J1rd1blVq0Vj4vTbKsRHwMFgTQNiQVhZlgPrI3OmbLGgxFr1nwZLbonlKwggv9a WvJ9lzV7tDdn3fvrzp9z/vtTbq/+ATTDbPDHQEEgTUM9HsKCY5fe1WbcC3E61WHYjBc69SzrkrSH gLabTu+zqvuze7QzaPigl4a9NHzYxbnj0zCGQJoPJQhtDwOsCaIzLNIhf0sWqxsE1446EWJuzbud 0eTkANqq+38AQ9+jvZrX7czqJYQ1Yh5CpVXBkK29VFONERSCxGBt3nqYewrCNvS2b71p2l6CCJtM 21V8P09WEOzZr24D0zK8BGFmFw/VbGbXfb4+CAWDkgvuXk0cD4E+AmksrMPcw/fsMtVOvDH9xTFb bc1LEBoHPqVyfZgmqQg6avw0LcR1bw9RNp5pVGvEB3E8xGbsMiH7BumwcJS3IOStusOKu8zax3vM VMub+t3iA1OFEMnYIfnTsmt0H+h7aceBp+csI67UDa/33cuFcKBDFi8FFASyDxBg0+sRRJstY8Ke hildRHhx9IvYxFwShsiHj7/G8oPmJQgjo/gr2+I2i5OsHjiRl8rvfXMpEMAIAmk0nHDpIfge2ay1 hkqttgsX67bX+YYB2rd5NwXjiqhXEsbNQ6cRM8EKvNSyoYZNjLpCqY9aD0HllTRixR2COBhMazP3 cM1zfQIFPn3M3foe6do1yN4//148kcWS9BH8rM//Id/Uu2hBVs54rkGtZ/CKXepSI4jNZG+rLRAk SWzNaDv3YWOPILbGIAMAF6x4y+95PjO04N2yy8SUIpIQBBn5+R3Abe/1F6mFX1kWM/Q4RpLothG0 9emPr2aaxrXkPQuC/IJ0A/68a2bHzLqpRQPjZPjSj9wSbeW9hNSnwebK9e1qcp361UPfr7+ZbSca TQ2JR5595ejhg+IMT5I/3Tx8+MoZfx+9FNJkG40ZpEIQB/sv+Z+9/u+NdTgtzqUn3HdZYX6m9+kc 2OrqnsfXHF+3nbqcuGntbEotzy5YKCzeWv/IjvXnx1mXNNvWrB8xUVRz27ZM4tk+giREM4MHjVmx aMWWOqyIs6VqTM+dE+d7p9sZmn9KlRiTH2dFPeTfVdJfBuqeHscy54m7x3y7/b04E5Pk7jeX3/Xo G4uXf0AhGISGL0FFEAfL0F9Zfuqxx/7TgwsXPPnQiZv6ep5PLJ1Om5i/4JI4b9fDbVd/fiVhnoNW QOjJZS+2faXHrXFeSZKPnnnmqcF/7XzFR2CFpZ/5Nb4q5ICAwS2PHpQRSvUgMzXUdfq0gQka0OGl R+ZZNbFHZj3oq568gjPLe/0F/OVRH1iBhn4MqnyCdAw2+MJA0xp6OoLE0Hzw8ejXArzuMGbNxBjn dvbwtv08b+kWhELX3vRt7WNWD3D29c/oYPC68wy1E2wwpDQo302LU7cYgRdW2DQ4Z8CZDCKYiaNM SOOg4eCtb77k3YWh1DbTn9U9++SmFk6f32WHv9bg68HX/srfm6B5CgJSP1qb0g0avkSIMk2+OVUz KjJCQUEgjWMgg7FfjAJzj5SMOAYxGM1OYF/SdIMnnAB1DdwL2q37n2ywNC9BaP1eeTpEIVEfba8Q J+FVdgBtA7jVmOqwCALKkMJ/6v6Tky9tMtBkH5zL56RRQc3sVnx9gcEgXQ2yGgSYmlezVCFkaXem FMRBk0Oq1pI82QSTy5eCrjeg8klDhhpMHkE1mNovlWepF8JERQzACXAtlnqhEWpQX+8eI3W9Wb4L BJE2DFaaX5qnMvyYHaY7Vi5fIaCSuyEQhLDs20u9SMvlHNTyHZX8pGa/iLopE55iU3lKinO6qZmu fFMSUndrolr0KwHQALAgML9P6ijegDqWwgBgHOZLsZHrKGh4h0eaBxbmYIdVfXoq79UBMILyBs8M 8BuOKqQKVG0+lRxk6plOT0Tdz1VIEZIisqgUkV86BOUGdBNsLez4Fd/uNyDgk937mMYMNRyaLl2J T62zkG8ZDtjOOgbnR54vj9bBJJp3TIMgvy5+vx3wK0M3pBmzmC2HHIsPx2oOGxbcIrvmKcpapfOQ ArGU9atz47d3sAz5qhZyukCqI+UKwW2n+8Rlk+oMRnyq+9QXnGf9zivK0yhHFFZP2uDz+7NSGlN2 A0GagPjaNE0nHy+oEP93JlGykKGEJXstM98pE/27E8d6ZXzx4jFlxf95JSPWV5KqCMCsY4R46CXw GcqSnaTrwEe3ieKnX4Hd2YC9qwtFVZ6IgowPpCiUK5B+6MUFZeLcox1HoEJh+XP0hUK8PUjqz8Q1 0UjzIi3Z4p8KSW7ed9JwlclbYPwxXz216AYlhiywPi2KCJE392TZnwmDUzrph4oiIZ/7DlQWuLR0 P007XYjqaGXk6t2Nj4yoViqEmltw5GDaDEYUCNFL5D6gc4gL8kfZdp4Qf48PEKEgkGaCECMo4+LW ouhjAi8KsQGc6tw6tBPiHxbcUR7tJjtNoLUV0XsBpoulLwfAWeDTb0KleJvCP0Vl7wGyHVtFIRuq C6/XjDOdVuIcKkpXOv8Iqpr6wUzV/MFCdE+FzqKwjTNaJbXycIV4m5C3RcVK4LThRZkQpKmI54U+ eaOQt2+9OPKlpuJfDYwjKyKrgHQVoo2tRpuOPDVqcA6lYrw0aZ80WzgiIlYBHxupOFRNUKuQQP/b uwKyQBdru9Q0n3VntUhRXSNdvpNaZ6QcwPP/qrClfCrFfw2lBj/YfxFiFMAoIV7UlEBwXg1pZgiR HRoD8vKqNV0NGYE9TZSOBGgXKblazSwwNQEhrVqURUJqdxJp2leLyEDpKCqKZtNYF4c6K1F1sErz RE27/SJSQSqeNlQbzHEHTqdIeoaoKGJq1oPZ8EBU+Bjzieg7YKgIG4ddkebFdn4OE+J49cgEHq6K ChVei2gkNvoD1LKg/WZxuRSDoYZHi6XZGwxEpBh2T6SpJLujhbiz5vGgipz1/xFD+zh5dwxobPEo Z2Hwj8rLuxzUIlbpIwrzhE2pLfKqw/JVnJdDmp2wtMRnnxPFw5i6ZwOhMspVzwtl9vKJkC1v6mcv yxMHQUBZNlBRFAXNlE5FELWe2XESMrbODiwR0YdrmpV9IZFXKAqPCTmdM40AiS9nM7uInVcofahZ OBHzKc6v+hOiEORXJwhBf5cV4lxgPGaxEbEzHSBQXFjI1IvKC7S6VIjvgkxZsQwIcvKKDeB2TmWO 4cxeqJoxUintTq8ser222ZdPeOzBQOghGSIoH6RUE+aqg8YGDI2KG8DpexEdKkRMEKLSSenAKgFI M6OmFU4TYuODziNCDWmcQi0wUL9i9kksecBzmUoZzs1e3s7VvVxUCqf4htQGUykg0st8Q2uXcPrU GmcWEOJUNd+nRlnlS5YUxolCLEuNp4sYTERjgog6b0YbvBwCQZqc2UKc3i826sRlfN0zZpxCbI6n Nplvy9igFagYWFfpqT1l/0ZTisknzmRdrBzSOyKyKcs106yijbBRWiZi+VKqQ2bL048RxXemZ8aT PoDlV1bKc6zKys0MAEMIpNkJwL1CXDQfID2WvQewQFQMAJgfEQs0acRZoA0WxbMHqjwn7sQQcLJY nW6wtBIxTUYQPJbol9Ujr/SH+bC7zAw3LKklS4hqEs8H5CRI4WUhjhmoUkE0J18KjokWDQQYWBTt H8tpwnFXpJkZLgovDKvpBSUOZbidhehm0ZGVeWfGEjz6VIljgISVC1EbXtnwihATZCAuimY593Q1 7xbqLXLuACeDPM4Zz0s3EpQR+gZLiyUrKbENKiz80YSA6kE5bsU3WOR1JaRrnphhqWFZ7yIECPLr Qp3VadQvxDnOxm4cfJWFEUJIx4joD/bbojA9JOPlkOwaTVO3eDVxJsqFD8JjC8Q1GjtOlJ/tjNoG 5b2di2j/oCpvKeMCES2UXuOWYnExhK4RYpXK/NOVofsgU+TNBh9zXI2okp0p39RicSzQt0XFQFtF KFhXCWkubDXQQ6FHsaislgG0ipBFjlAVzDo4A6bVR6ijVLpFdalQqUsRU8bR5eDToE1UPRZXggyc ZU9K2vf0SlGRI58qEhYUCqGEcUdBVLXamcSmL5y+0C0yeBZr1cngBO3S/qcXCNl86S2GE8D7Elww gvyK0LAOZ1MDbqooFqKiuloUq/GlRU6AfPQCIc5YKWPd48JAT5DyiIqYEVcJEVQxw/CLRMmCQRDW 5xvUVLa+JK8gT8pBHqfcSDGYGRB44ZRoxd87gpYio2nL9Pn69U3ZWCSkXES1qAiytaLAr3pJK6dV iku6AmSCFdIwrkaaCa4Hgy+q9QcklvQKtikNXJpoOtNUXyoEpgWnAfidVG1bZaxasWFYzVlbp5b8 aN1fyZIPUrKkNZuqZAZXSeTgN0ks3KBqqo2b6qws0A8fBc4SUvkwi8UWRRgBYM4laFoYWh3hhzBW 3kOaB4OFJ5zeVS2GdnalUpGA6RirmgoIOXPUYJ0cyqSQFiRSLlIEmWCkQj8pFEv1bQLpvsDrd0KW roPhZ5qMvzVCmcZpCHggi6vpiVg6OfjSLQIpU1+ZIUWVqWfpQZORgB9SgvMp1zRb9rt8mqanvvp6 V4OlNPf3ghygcGbNXD5IJe6tmnV4alpI3bN1v24YNGPGtfPDoBOmDf8/6Rk0Bk9dHPb7KQ3JvlFA 9mn0lR92huukkF57YoeqQGCuTDfSs8K2zYBaEGRZUl2WZocZsFBw1M3ZhAWla+jX9oq+VMou9cHD s7L6QsAy5OtaJlx35u+BMN2Cv/S0jKnN/bUgByxB49XNszRdO+zqd2ZK70B5SHVjUiy/edFVs4OZ HDK0Tv/pZ0Ka3Wn9ehVZpKmbPgFu2K+d+8WhP/XLhgmbLgszX/rg5zqr6jHM9AWYdCWpMEAVJNM0 zQoa8LuNh6YDtXng7IsHqXnxw8/4+xVOhG3zIFMDTqnfvX5FWkAqsMfcdGPPDVwQ5H9DqjFz0Swt 0P3c8i86qxlnqnr1ujRo/6eRSOs+0lWk9BsrRdL9ghGRhVmqrHYQnAIyDMZdvXreyZ1DMOP99Rbp 9o8nCjZYstelhkylP+EqftBUvqyTvXeMePSIWWngt9IuGczTf3rh+ui3PUyqhw1GnLHcFLhz6fbj ZoLOvy4YiMVZkeaCBVNmrpl585Btc8VXG7hv966gPr6uovqtHeNSwOhH4PAJ76/oJQpUVqtTxIxx HdhZp+YUV2w5vGPK63c92OnpwsKKpyxSU1rSVb3S2Ujlhsri0fccHCTQ7pLu3N9/++icL19VRTtq NjxJT31OlIz5/E/XwccTe9NMXDSHNA881bKPffLpLtXVkf9257vtULfYpyU5eWL8yQcBPfuVozZF hKhYDAHi1HvlTpQ8cvaWwrLyb+8/+pBjTz5/YnVF9RXBjJrzf7HdlewaXVghROHoi17IggHZ4/5Q JarFI/falmvpdNbreXlFOZv6/75d2wEWrqlGmomwP7P3Q9vUJETe7a9aesgXx6+lbxJi5+O5VR/M SHnp07misKQgsnlkx3atWrWaKul984RnP/73osLqFWWl7zx2TX5hebEo22BDSpzAboLBcDj8j6qC iqVi8aaP0yecfFVp9SJR+tUGgxtazfH2tf+tipRFV5fu+noUDWnzm/t7QQ5QQoErTvw+Iio2F1S/ t6DzM0OeijOo85/vWVomRImIvjFlTqFYvSivdG3koWPUnhELFjz//Cf9j+t/7prSIiEWFfeq3iyi oqKw141HvFyzr8PXcQYPHiz/vvXWe0pzRH5epOy9Yx54dHVlmYj0mnPq4CE97q057uXrP1ubVyhE fuX224iNM9VIM2H06/9WnogWiooqkV8y6YnlcSYuH11WVlIdiYi5d4uqRXmRajWz/MMNl993331P S+689IYbL51XXdBTFBYV9RI5OytyysSYraMfjVOzA9Djsi31e5FsKVKdVyG+X1xZJaLSI0XL12x9 fHnNcduukm9QVSyKyxatS/G1wmQmpHlINVPGPfBBuZhbWHj+jJSUrrWbLgZDx1dF8/KK83/++Mn+ 56w777zVJdWPZ4fDwWBQ9YPSUgIdXz2+OLq0tOCz22bP6RkVRdU7/3b41AFxMuJkZ6elpcnfX+SX 54uyhVcN79bm8+/Likp29hz6yXVpqek17zf2T6f3KsgVkS33tb0G1DwGgjQH8lY8dujV923KE5Eu ffy7lyHYBh9RWFZY+fltw9KH//mnQT/eJXtHc2Nl69V2Kqp4xvwHcneKLSfe2/uh8Q+MXpFXWXyr Ubv2s2a0SY0gqW1P3q6KFle++fxHA+HwIW2+mySE+OJW2Vqwtiy+vVE+V/bFP08avmxqClbdQJoJ P/cNmTKy2++6PJ771Qsa12oHS8MwoqJ68bI+mRA+6B/pkHlKlzU5ETOr5jwOetrZP0RL7nn9Jyt1 12jfhqfXVohn9JQ9932I/Z4mImPuv9APdtfWN8O1f1w3t6LL17YBVs3x2f4TRfnyLyeHAy+XtAsY 6CGQ5iELyJnfdoX0v77b68uTIGDUDJVysL8sWvT3TkEw7GGnZlvhgRNaly+3XBuj+MJT71h325nd ILPvV59mZnW8rSB/iKEx4vgQVneLrodKF7UelQ0UMnp8rcHUGT/ftf0o2xeoHZ4F67nyRw7urIF1 xcJUcG8wgSD/Q6huzOg5mABvf9u0GZzUGqgG/Ofbn59ApA/pN/mBVAq6ce3JVwf8Na9LV0F7n/H8 qPl+0Lute58ZwUEf9v9939o932qFFaf1u3/uFw6ClX32xzNMLUDGPnDKdOKarmA/3fH+mRl+CNpf 56T4MNkVaS4s66TRgyAV+M2TV1pmrSHrNnz9UStpsQbxPfiRqfnn25D22u5NFQMaZRntJwDlJn9t 11YSDrLwgFUDKVBVDp/WWnqNR2nfPgU0VWXgwTYnmWYIYNULvVVieK2HyDqsg3xsEqNtJdFwohpp JixGZtzUHSAb9HAAbLvGgFkKpBJmm3YsDdxiGaYOAbN27znQTdk9YrZtZPKRx48Ih9XmEgG1JDu2 P0TdPesYBcOvlv2MvPIkBpyYOqEsaNUKhkNWSCOyp2T/dTtRq60R5H/JbsNWy9OssNoHTi3/qY0R AtwGZlDZmzedfbMoTaOGvzalQlUzUxUzguAjmWcewcHSgmr1BOOGZRmc1W6iGAfUjlnqrNDKs1Wg YRPDDMqeWa1gIF3qLosE7d6Hpps+TN1A/rfUCMICg1gBP4CRzgN89+COtEhbI04JgoCUjIyWIct9 vloEZxFVutJgNuurdhGSobAl/QPXNL57D6GaLhbVlKzUsKxlGqahNvLSdKCuvbOI7FIFLKLZ1wVV tXEEaQ44ENVhDwL55UinCmsJozZ1ZgSc/RGpdCG7S+qR+JyD5lSjBMM2gBoJ9oZT27BY0uHwQHwD ImdL09r5hoCuttQFiJX2w1qWSHOh9gj1q6U6al8ItlsVVHcqchBn+2e1rS5Ri0v12qBAHWPpzsoF Qy3ziZXgq5l22LPQmBHbT85xHU7MHHbKge9GU5tHEOk2LNUagiB7QZMeiOO8BILEoXpI7eSC/Er8 P9t2xCwKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8PC9SOAo4IDAgUi9SMTEKMTEgMCBSL1Ix NAoxNCAwIFIvUjE2CjE2IDAgUj4+CmVuZG9iagoyNCAwIG9iago8PC9SMTIKMTIgMCBSPj4KZW5k b2JqCjI1IDAgb2JqCjw8L1IxMwoxMyAwIFI+PgplbmRvYmoKMjYgMCBvYmoKPDwvUjgKOCAwIFIv UjExCjExIDAgUi9SMTQKMTQgMCBSL1IxNgoxNiAwIFI+PgplbmRvYmoKMzAgMCBvYmoKPDwvUjEy CjEyIDAgUj4+CmVuZG9iagozMSAwIG9iago8PC9SMTMKMTMgMCBSPj4KZW5kb2JqCjMyIDAgb2Jq Cjw8L1I4CjggMCBSL1IxMQoxMSAwIFIvUjE0CjE0IDAgUi9SMTYKMTYgMCBSPj4KZW5kb2JqCjM2 IDAgb2JqCjw8L1I4CjggMCBSL1IxMQoxMSAwIFIvUjE0CjE0IDAgUi9SMTYKMTYgMCBSPj4KZW5k b2JqCjQxIDAgb2JqClsvSW5kZXhlZAovRGV2aWNlR3JheQoyNTUKKFwzNzdcMzcyXDM3NVwzNzZc Mzc0XDM3M1wzNjZcMzcxXDM2NFwzNzBcMzY3XDM2MFwzNTdcMzU0XDM1MVwzNTVcMzM1XDM1MFwz NTZcMzUyXDM2MVwzNjVcMzYzXDM0MlwzNjJcMjc3XDIzNlwyMjVcMjIzXDIyNlwyNDFcMzA1XDMx MlwyMTNcMjMwXDIyNFwyMjBcMjM1XDMwNFwzMzdcMzExXDI2NVwyNDBcMTc3XDIxMVwzMDZcMzEz XDIxMF9YV15vXDI3MVwzNDB8YmdaVFwyNTNcMzQ2aXBcMjIxXDI2N1wzMjBcMzMzXDI3NVwyMDVu Y0hcMDM3PFwyNDdcMjMxXDIxNFwzMjZcMjYzXDI0NFwyMjdcMjA3XDIzNFwyNjZZXDAzNFwwMjY3 flwzNDRcMzQ3XDM1M1wzMjdcMjcyXDM0MVM/clwyMDFcMzMxXDMzNlwzNDVcMjEyfWpcMjU1T0Rc MjM3XDMwMFwyNTFcMzEwXDI2MXRFRltcMjMyXDMyNVxcNiIqPlwyNDVcMzIzXS4hXDAzM0tcMjU0 XDI2MlwzMjJcMzI0XDMxN1wzNDNcMzM0YXpcMzA3XDMwM1wyMDBWUkFCUU1HQ1wzMTVQXDIwMlwy MDZKXDIwNFwyMTVcMjc0XDAwMFwwMjVcMDMxXHJcdFwwMjNcMDE3XDAyMFwwMTNcblwwMjFcZlww MjJcMDE2NC09d3YwMztcMjY0KzU5XDMzMDpcMjczeXsnXDMxNG0jQFwyMTZcMjYwLFwwMDFcMDMy c3h1XDMxNlwzMDJcMzIxYCZcKVwyNzAxXDI1N1wzMzIyXDIxN1VoIFwyNDZcMjIyXDI0MlwyMzNc MjUyXDI3NlwzMDFcMjQzXDI1NlwyNTA4L2VcMDI3JVwwMzVcMDM2ZFwoJElcMDAyTHFcMDA3XDAy NFwwMDRcMDAzXDAwNVwwMDZcYk5mbFwyMDNcMDMwayldZW5kb2JqCjQzIDAgb2JqCjw8L1I0MQo0 MSAwIFI+PgplbmRvYmoKNDQgMCBvYmoKPDwvUjQyCjQyIDAgUi9SNDAKNDAgMCBSPj4KZW5kb2Jq CjQyIDAgb2JqCjw8L1N1YnR5cGUvSW1hZ2UKL0NvbG9yU3BhY2UgNDEgMCBSCi9XaWR0aCA5ODEK L0hlaWdodCA2MTEKL0JpdHNQZXJDb21wb25lbnQgOAovRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0 aCA2MTgyMT4+c3RyZWFtCnic7J0HXBPJ28dne3aTEAjZEEXsFHvHgtiVam9IEVDA3jtYwEaxK2LX PdvpnScqKlgQFOyogGJBxY4Kgr23dyYU768i4mlQ3/1+7hDI7GY37G+e55l55hkAREREfiswERGR 4uNHiBoXEREpPn6EqEVERH4zCBERkeLjR4i6uL0PEZH/1/wIUYuIiIiIiIiIiIiIFAiBk1RxX4OI iMh3RBS1iMhvhihqEZHfDFHUIiK/GaKoRUR+M0RRi4j8ZoiiFhH5zfj/LGptoiyOkYCiGYBLGIAx JMNyBCAB4DhASmVyPYUc4DSQ6ssNlApDFQE4wNCk9miSB6QaUAxF0/AkAIenoiAfvwkmAWr0Xjq+ N5H/p8DHl8OBUd7zRmHoucz7DpAURgNAE/BxxSn0yLKA1r6KAxYHDIEOBxR8wDFAkMV1C99OXgI8 xjLwJ4rVUIBR44QU3jqJUSQODEuUNC5lUrqMHodxZU3Kla9Q0dRMBu9WKucJgHFKeNOMEiPRh4Bz GhbDMOqzyoWfFcXTTHEm+Yv8/0EDJcmxNKOS8DyDxIlTDMPAhxMpmkBKJViZimEBTqJnF2BQ1CzP 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 fVLMKJSTS2jPFQSiYR6pjGOzRlgWB52VBrT0mgvcHTP6rdhpQtMtil1mUiW1Yd/p0CwoKDbUNwze dqtxqm4/hcWDG6YguuOORgmDg50tOIgXvvqX7km3GjjC5Glm5yPYhmpzO8YLXpB6HrGhS+w1qSCD gt+wqOTM79FJnVsvwmswDU4S6W2Dbz/qIlA8DQ9KG5Hcbm8jLIN6LU+pofHJAsGqYEhC+a1mntfS /JZ0YyZ40I5QPnVQWIQpVhTeUxe2gMEMhEFzW2kf50STjqW8EK1mQC0LSiBYKF8ZZQyAA0DlBdyE SyBiRq5KhiZXvTgrwFA5piDpBg24DBMFW2+QbmWroaGhoaGhoaGhoaExGv4HYkLfMAplbmRzdHJl YW0KZW5kb2JqCjQwIDAgb2JqCjw8L1N1YnR5cGUvSW1hZ2UKL0NvbG9yU3BhY2UvRGV2aWNlUkdC Ci9XaWR0aCAxMTU5Ci9IZWlnaHQgNzcxCi9CaXRzUGVyQ29tcG9uZW50IDgKL0ZpbHRlci9EQ1RE ZWNvZGUvTGVuZ3RoIDY0NzMwPj5zdHJlYW0K/9j/7gAOQWRvYmUAZAAAAAAB/9sAQwAOCgsNCwkO DQwNEA8OERYkFxYUFBYsICEaJDQuNzYzLjIyOkFTRjo9Tj4yMkhiSU5WWF1eXThFZm1lWmxTW11Z /9sAQwEPEBAWExYqFxcqWTsyO1lZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZ WVlZWVlZWVlZWVlZ/8AAEQgDAwSHAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgME BQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEV UtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3 eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh 4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALUR AAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDTh JfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJ ipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz 9PX29/j5+v/aAAwDAQACEQMRAD8A9JooooAKKKKACiiigApKinmEEEkz52xqXOPQCmWF3HfWcVzB nypV3LmgCzRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAmKMcUtFACYopaKAExS0UUAJS0UlAC0UUUAFNzxTq5fxtfXEFha2NjK0V7fzrCjIxDKM8kfoPx oA6bNOrkvCdzc22rarol/dS3Mts4khkmcs7xt9fTj8TXW0AFNyfUVS1XVINKtPPuBI25tkccaFnk cgkKB68GuW8P6tqV/wCPL6G+WS2SOzytrvJCZZCCR03Ybk+9AHb5oz3rmPGWqXtkunWWnv5M+oTi HzyuRGMgd+5z+QNY18uteEXtLyXWZdUt57gRSwyxknnJO3k9gelAHoFGa5XxRqt9/adhoekypBd3 mWeZhkxoM9B74P5flQuodb8JWx1KXWX1S0V1+0QzJyFJAypLHuRxwKAO6pucdaSORZI1dTlWAYfS uT8c3F0TpOnWN1Na3F5dBd8JIIUDBPGOBuBx7UAddS1w/wDwhms/9DhqH/j/AP8AHK7igApKWqOs X39m6Rd3nBMETOAe5xwPzoAuZ4p1Z+iwTW+j2cV1I8lwsS+azsWJbHPJ561oUANzRmuJ8fTXn9pa DaWd/PZfa5niZ4nK9SgBIBGcZNKPCWvQZlh8WXjyLyqyqxUn3y5H6GgDtqWue8F6xca3oCXN2p89 HaNn27RJjHzD88fUGuhoAbk06vOvGXiq6n0rdpCTw2RmEZvslDIcE4Tvjjk/hXeX92lhY3F3Lny4 IzI2OvAzQBPmlrhbXT/EXiO0i1OTW5NNWU+ZDbwocKv8OSCM5685/pWzpV7qenaLeSeIIxus9xWZ WU+cgGc4HQ/gO1AHQZpa4W10/wAReI7SLU5Nbk01ZT5kNvChwq/w5IIznrzn+ldD4cbV1tJYNaRf OhcqkyspEyeuB0/TtQBtUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF 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 kkEquZAgO1cAEA16LQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF AEFyM28oA5KkcVjeDIZIPDsMcsbxuHf5WGD941v4FGKAGPDG7KzorFehI6VJRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAm0elcu3/ABT2ubyf+JbfNgjtFJ/9eupqjqdhFqVhLazD5XHBHUHsaALm c96dXO+Gr6cebpd8w+2WnAP/AD0Ts1dDQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUnOaAFooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqD7TD9p+zedH9o 2b/K3DftzjdjrjPGakZwilmICjqT2oAfRVa3vrW7Li2uoJihwwjkDbT6HHSrFAC0UxnCKWZgoHUn gCoLe/tLtmW2u4J2Q4YRyBtp98HigC1RSUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAmMimRwxxghEVQeTgVJRQBn3Oox2+qWlkykvchipz0xWhVO awt5r23u5EzPACEbPTPWrlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUmKWigDnvEdlMDHqtgv+l23LAfx p3H5Vq6dfRajZRXUDZRxn6HuKtEAg8VykZPhvXmjc40y/bKE/wDLKT0/GgDraKbmnUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFACZ6UtJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUmcUUALRSUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAVn6tPfw2g/sy2juLl22DzH2pHwTub1AwOBzzWhSYHpQBwHhuK6h+JOpxX1z9puFtA Wkxgc+WcAdgM4q/8QI5ZYNMjcsultdL9tK54XI5OO33j9QKh0z/krGs/9ei/yhqx4kuZLvxLpWhN JLDaXKtJM0Z2+YACQmf+A849RQBh6tYaPZXGmyeEpI31I3KgpBctJlO+7k4GcZ+pr0uuG8Q6JZeG NIk1XRFks7q3ZCMSsyyAsAVYMTkYOfwrsLG5a6sLe4ZDG0sSuUbqpIzj680Acr4u/wCJpr+jaC0j LBcFpp1U4LKoJA+nDVS8U+GtP0HShq+jxNbXVnIjZEjNuBYLzk+/armtRiD4k6DdSMAkkLwjPTID /wDxYq38QpFXwdeKxAaRo1Uep3qf5A0AdHazrc2sM6HKSoHU+xGRU1UtHtza6PY2zHLQ28cZ+oUC rlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRSZoAWikooAW iiigBMUtFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAIao6tp0WqafLay9GGVburdiKv0mKAMDw1q Msscmn3o23todjj+8OxFb9c34ltJbeaLWrJSbi2H7xF/5aR9x9a2rC8iv7OG6gcNHKoYH+lAFuii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigDO1u/fTdJuLtE3tEu4Ke9VrrxFY2Gnw3N5MsbSRhxGDluRnpUfiuwv NQ0eSC0uEiz9/eOCPrXj2rabqFhKFv45eBhXYkgj2NAHuOkajHqunRXkKsscnIDdau1wvhWy1ifw 9ZvZ6nHbQ7SAhhDevOa2P7M8Rf8AQcj/APAcUAdFRXO/2Z4i/wCg5H/4Dij+zPEX/Qcj/wDAcUAd FRXO/wBmeIv+g5H/AOA4o/szxF/0HI//AAHFAHRUVzv9meIv+g5H/wCA4o/szxF/0HI//AcUAdFR XO/2Z4i/6Dkf/gOKP7M8Rf8AQcj/APAcUAdFRXO/2Z4i/wCg5H/4Dij+zPEX/Qcj/wDAcUAdFRXO /wBmeIv+g5H/AOA4o/szxF/0HI//AAHFAHRUVzv9meIv+g5H/wCA4o/szxF/0HI//AcUAdFRXO/2 Z4i/6Dkf/gOKP7M8Rf8AQcj/APAcUAdFRXO/2Z4i/wCg5H/4Dij+zPEX/Qcj/wDAcUAdFRXO/wBm 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 wzR3ESSwyLJG4yrKcgisTxsP+KYuu3K/+hCgDnPA2ka3ot6ftFuBZzryfMB2nrnFehCobQZtYf8A cX+VT0AFFJS0AFFFFABRRRQBl+Iv+Rd1D/rg38qsaT/yCbL/AK4J/wCgiq/iL/kXdQ/64N/KrGk/ 8gmy/wCuCf8AoIoAuUUUUAFFFFABSHpS0h6UAcR4q/5Hvw59T/Ou3riPFX/I9+HPqf513FABRRRQ AUUUUAFctf8A/I/ad/17N/Ouprlr/wD5H7Tv+vZv50AdQKWkFLQAUUUUAFJS0lAHMv8A8lCi/wCv Nv5109cw/wDyUKL/AK82/nXT0AFFFFABRRRQAlYw/wCRoP8A1xrZrGH/ACNB/wCuNAGzS0lLQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAUNb/5A15/ 1yb+VVfCf/Isad/1y/qata3/AMga8/65N/KqvhP/AJFjTv8Arl/U0AbNFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXMeMtXu rFLCx091ivNRmEKSMM7BkAn/AMeH5109YXifRZdWtbd7WQRXtpKJ4GbpuHY+3T8qAMnWr/UobvSf Ddhdhb6eIGW7dedqg5YD1O1j/nNVL+21/wAKWbamNbfUoInBmgnQjIJxwSSRyR0x/Sq+rXviAXth ezeHJft9mxAlt2LpIpGGBVQeCOnPFXbxte8V2i2Emkf2VZSlWmllkyxAIOAuAQeB27UAdjBOl1Zx 3ERzHNGHU+xGRWR4T/487j/ru1bMUMdvapDEoWOJAiAdAAMAVjeE/wDjzuP+u7UAb9FFFABRRRQA VheMvO/4RTUvs/MnlHP+7kbv/Hc1u01lVlKsAVIwQehoAwfBwsf+EbsPsQhz5KmXZjPmY+bPvnPW tHVfsP2Cb+0vK+zbTv8ANxjH41iX3gHQrx2dYJLZ2OSYHwB9AcgflUdp8PdCtmy6T3JByPOk4+ny gUAHw18//hFE877nnP5X+7x/7Nuq942/5Fi6+q/+hCruiahpuoWAbSGVraJjGAsZQKQASMED1FUv G3/IsXX1X/0IUAbVp/x6Q/7i/wAqlFRWn/HpD/uL/KpaAFooooAKKKKACiiigDL8Rf8AIu6h/wBc G/lVjSf+QTZf9cE/9BFV/EX/ACLuof8AXBv5VY0n/kE2X/XBP/QRQBcooooAKKKKACkPSlpD0oA4 jxV/yPfhz6n+ddxXD+Kv+R78OfU/zruKACiiigAooooAK5a//wCR+07/AK9m/nXU1y1//wAj9p3/ AF7N/OgDqBS0gpaACiiigApKWkoA5l/+ShRf9ebfzrp65h/+ShRf9ebfzrp6ACiiigAooooASsYf 8jQf+uNbNYw/5Gg/9caANmlpKWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAoa3/wAga8/65N/KqvhP/kWNO/65f1NWtb/5A15/1yb+VVfCf/Isad/1 y/qaANmiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigApKWuY8ZavdWKWFjp7rFeajMIUkYZ2DIBP/jw/OgDpcVR1iO/m0yaPSp4 4L07fLkkAKr8wzng9s9q5zWr/UobvSfDdhdhb6eIGW7dedqg5YD1O1j/AJzVTULbX/CtmdT/ALbf UoInBmgnQjIJA4JJI5I6Yx+lAHaWguE0+Fbt1kuViUSuvRnxyRwOM+wrK8J/8edx/wBd2rXgnS6s o7iI5jljDqfYjIrI8J/8edx/13agDfooooAKKKKACmswRSzEAAZJPAFOrC8Zed/wimpfZ+ZPKOf9 3I3f+O5oApX/AI90KzZkW4kuWXgiBNw/AnAP51HafELQrlwskk9sScDzY+P/AB0mr3g4WP8Awjdh 9iEOfJUy7MZ8zHzZ98561o6r9h+wTf2l5X2bad/m4xj8aAH6fDYxWqnTYreO3k+ceQoVW9+OO1Zf jb/kWLr6r/6EKo/DXz/+EUTzvuec/lf7vH/s26r3jb/kWLr6r/6EKANq0/49If8AcX+VTVDaf8ek P+4v8qmoAKKKKACiiigAooooAy/EX/Iu6h/1wb+VWNJ/5BNl/wBcE/8AQRVfxF/yLuof9cG/lVjS f+QTZf8AXBP/AEEUAXKKKKACiiigApD0paQ9KAOI8Vf8j34c+p/nXcVw/ir/AJHvw59T/Ou4oAKK KKACiiigArlr/wD5H7Tv+vZv511Nctf/API/ad/17N/OgDqBS0gpaACiiigApKWkoA5l/wDkoUX/ AF5t/OunrmH/AOShRf8AXm3866egAooooAKKKKAErGH/ACNB/wCuNbNYw/5Gg/8AXGgDZpaSloAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKGt/8ga8 /wCuTfyqr4T/AORY07/rl/U1a1v/AJA15/1yb+VVfCf/ACLGnf8AXL+poA2aKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsLx PosurWtu9rIIr20lE8DN03Dsfbp+VbtYviHxDb+H4oZbq3upY5cjdCgYIRj7xJGM54+hoA5PVr3x AL2wvZvDkv2+zYgS27F0kUjDAqoPBHTnirt42veK7RbCTSP7KspSrTSyyZYgEHAXAIPA7dqd/wAL L0b/AJ9dQ/79p/8AF0f8LN0X/n11D/v2n/xdAHYxQx29qkMShY4kCIB0AAwBWN4T/wCPO4/67tWr aXSXunw3UQYRzxLKoYcgMMjPvzWV4T/487j/AK7tQBv0UUUAFFFFABTGAZSGG5SMEHkEU+qWqWbX 9hLbJczWrOBiaFtrrgg8H8MGgDCvvAOhXjs6wSWzsckwPtA+gOQPyqO0+HuhWzAulxckHI86Tj6f KBWFpuh6zd6heWFx4o1C3urYg7NzsJEPR1O8ZH8q1P8AhDNZ/wChw1D8n/8AjlAHYwQx28KRQRrH EgwqqMACsXxt/wAixdfVf/QhVrQNMudKspILvUZtRkaQuJZc5AwBt5J44/Wqvjb/AJFi6+q/+hCg DatP+PSH/cX+VTVDaf8AHpD/ALi/yqagAooooAKKKKACiiigDL8Rf8i7qH/XBv5VY0n/AJBNl/1w T/0EVX8Rf8i7qH/XBv5VY0n/AJBNl/1wT/0EUAXKKKKACiiigApD0paQ9KAOI8Vf8j34c+p/nXcV w/ir/ke/Dn1P867igAooooAKKKKACuWv/wDkftO/69m/nXU1y1//AMj9p3/Xs386AOoFLSCloAKK KKACkpaSgDmX/wCShRf9ebfzrp65h/8AkoUX/Xm3866egAooooAKKKKAErGH/I0H/rjWzWMP+RoP /XGgDZpaSloAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKAKGt/wDIGvP+uTfyqr4T/wCRY07/AK5f1NWtb/5A15/1yb+VVfCf/Isad/1y/qaANmiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAqG5toru3kgnRZIpFKup6EVNTWcIjMxwqjJJ7UAZmg2d3p1ibS7nW4WJyIJM5Yx/w7uOor UrgrZNc8YpLfQ6pLpOnbytukQO9wMgk4I/n/ACydPw9qWo22tT6DrDrPOkfnQXKjHmJnHI9f8D9S AdQwGw/SsPwn/wAedx/13at1vuH6VheE/wDjzuP+u7UAb9FFFABRRRQAUmBS0UARG3hNwLgwxmcL sEu0bguc4z1x7VLWRrniLT9BiVr6Yh3BKRINzt+Hb6nAqDQvFema85jtJHScDJhmXa2PUYJB/A0A buKwPG3/ACLF19V/9CFdBXP+Nv8AkWLr6r/6EKANq0/49If9xf5VKKitP+PSH/cX+VSjpQAtFFJn nFAC0UUUAFFFFAGX4i/5F3UP+uDfyqxpP/IJsv8Argn/AKCKr+Iv+Rd1D/rg38qsaT/yCbL/AK4J /wCgigC5RRRQAUUUUAFIelLSHpQBxHir/ke/Dn1P867iuH8Vf8j34c+p/nXcUAFFFFABRRRQAVy1 /wD8j9p3/Xs3866muWv/APkftO/69m/nQB1ApaQUtABRRRQAUlLSUAcy/wDyUKL/AK82/nXT1zD/ APJQov8Arzb+ddPQAUUUUAFFFFACVjD/AJGg/wDXGtmsYf8AI0H/AK40AbNLSUtABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBQ1v/kDXn/XJv5VV8J/ 8ixp3/XL+pq1rf8AyBrz/rk38qq+E/8AkWNO/wCuX9TQBs0UUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFYXiiy1G806UadqH2 QLFIJI/JD+dkcDceV7jI9fat2kwPSgDz/wAHafrNz4atHsvEAtIMuBB9jSTYd5z8xOT6/jVWfTtY fx9bQDW994loXN19mQeWvzfLs6Hr39fYVsz+GNW06ed/DOpx2cE77zbyoCit3wcHH0xWn4e8Pf2V NcXt1cNealc/62dhjj+6B2HA/IelAGvCssdnGk8vnTLGA8m3bvOOTgdMmsjwn/x53H/Xdq3H+4fo aw/Cf/Hncf8AXdqAN+iiigAooooAKqahf2+mWUl3eS+VBHjc+0tjJAHA56kVbpKAPNNM8RaJJ4u1 TVdRuCFG2OzZ43YBRkMQAPl6A8+p9TSeLPEWiXNzpupaXceZf2twpYpG6M0fUgkgA+mPc+9aZuo/ CXizUp76No9P1PbIk6qSFcZJBAHqWP5evEWs6jb+MtR0/S9LVri1imW4uZmQqqqMjHIz0J7en4AH YaVq1lrFs1xp8/nRK5QtsZcNgHHIHYis7xt/yLF19V/9CFb2BXK+MtUsZfD91Al3CZcqNobnqO1A HTWn/HpD/uL/ACqWs3TtUsZ4oYobuGSTYPlVgT0FaVAC0lLSUALRRRQAUUUUAZfiL/kXdQ/64N/K rGk/8gmy/wCuCf8AoIqv4i/5F3UP+uDfyqxpP/IJsv8Argn/AKCKALlFFFABRRRQAUh6UtIelAHE eKv+R78OfU/zruK4fxV/yPfhz6n+ddxQAUUUUAFFFFABXLX/APyP2nf9ezfzrqa5a/8A+R+07/r2 b+dAHUClpBS0AFFFFABSUtJQBzL/APJQov8Arzb+ddPXMP8A8lCi/wCvNv5109ABRRRQAUUUUAJW MP8AkaD/ANca2axh/wAjQf8ArjQBs0tJS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFAFDW/+QNef9cm/lVXwn/yLGnf9cv6mrWt/wDIGvP+uTfyqr4T /wCRY07/AK5f1NAGzRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAJijApaKAGv9xvoawvCf8Ax53H/Xdq3X+430NYXhP/ AI87j/ru1AG/RRRQAUUU0nAJPagB1FYH/CW6X9p+z75fN3bceWetX9T1a20q3We6ZgjHAwpNAFyW GOaMpLGkiHqrDINMtrS2s4vLtbeKCPrsiQKPyFVNK1m11ZHe0ZiqHB3KRVOTxZpkd21s0knmq20g Iev1oA3a8h+Iejf2fq32uJcQXPJx2avT9S1W20y1W4uWZY2IHCk1j3n9n+M9KltoHbKMCGZSMHPv QBj/AAz0XybR9UmX55fljz/d9a7+ubj8Q6RpjLpqu6mHEYAjOK1tR1S202zF1cswjOOikn8qAL1L WZpWtWer+Z9jZ28vG7chH86qXPivTLW8a1kkk8xWCnCE8/WgDeoqhf6pb6fY/bLhiIeOQpJqLS9c s9WZ1tGdimM7kI/nQBp0VhXfirTLO7a2leTzVOCAhIz9a0LzUreysPtkxYQ4B4Uk/lQBD4j/AORe 1D/rg38qsaT/AMgmy/64J/6CKwr7X7HV9E1OK0dyyW7k7lI7e/1q+uqW2k6BZT3bMsZiRQVUnnb7 UAbNFZmla1Z6tv8AsjOdnXcpFWLa+huhMYif3LlHyMYIoAt0tc+vi3S2uhbiSTzC23Hlnr9a1Li+ htp7eGVmD3B2pxnmgC5SHpWPqfiKx0q5EF27q7KGG1Cas2Wq21/YG8tyxhGc5BB49qAOX8U/8j34 c+p/nXb15/4uv4YvFPh69ckQrljxzjd6V1Om+ItP1W4MNo7swGeUI/nQBsUVUjvoZL6S0Unzo1DN 8vGPrWXdeLNLtLl4JpJRIhwQIyaAN+kqrJexR2yTsW2PjGF559qg1TWLXSoo5LtmVZDhcKTQBo1z F/8A8j7p/wD17N/OtfS9XtdWiaS0ZiqnB3KRXOS6hBdeNrOaIsUigkViVxyDzQB2YorDtPFOm3d4 lrC8nmucAGMgZ+taMt/DFew2rE+bMCV44wOvNAFuisjU/ENhpU4humkVyMgBCaswanb3GnC+iLGE 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 cYxzQBtUUUUAFFFFABRRRQAUUUUAFFFFABRRRQByPjuymuY9Mn2NNYWtyJLuFVzuTI+bHfA3D/gV YmqHR9bn0+HwpBCL+K4WR5YrcxiNB1LEgZ5wfwNavimVJ/FmiadqGBpcm523thZHGcA/Q7f++qb4 1sdM0vQDe2UFtZX0UiNbyQKsbFt3OMdflLUAdtXE+MriC417SNKvJhHYnfc3OTgMqgkA+3ykfjXW WEs02n20lwnlzvErSJ/dYgEj881yPie1tk8daFeXwU2sitCxcfIGG4rn8WH5UAUWvfBetyjTo4Ps LlwI7mKFYiTns3JHp8w71b8bywJqHh+yvZk+ypKZZnlGSwTHXtyMirvxF+zf8InOJvL80OnkdM5y M4/4Du/CrBvrGzvNEttXtUOpTwKEumjQhXC8jcTkcnjA70AZmn6z4L1C8FsmnWkTs21Gls0VXPsc cfjiu4rk/iKLdvC0yy+WZy6CEEfNu3Dp/wAB3V0WmrOumWq3WPtAiQS4/vYGf1oAt0UUUAFFFFAB RRRQAUlLSYoAZK2yNnwTtBPFU9F1BdV02K8WMxiTPyk5xg1clXdGyZxkEZqnounjStMisxIZBHn5 iMZySf60AaFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFAFW/jaWxnjQZdkIH1xVHwzbTWfh+zt7lNksaEMp5wcnrWheTG3tJZgMlELAfQV5vru p+JtQ0uG7gj8uxmUkeR97qev5UAd4+t6emoRWIuEa4l6IvNaYArw7wi1x/wklu0ADzZP3j/PNese brf/AD7wf99igDZ4owPSsbzdb/54Qf8AfYo8zW/+eEH/AH2KANaRljRnbgKCSRVHTdasNUB+y3Cs ykgqTgg/SqdxLrX2eXMEGNp/iHpXi5uJ7e9kkhkaKQOeVOD1oA9n1K2mk8UaTOkLtFEsod8cLkDG au6nrFjpYU3c6ozHCr1Y/hXmS+MvEK2MHynAbAl28vwePeudub+61LUlmu5GmmLADPbnoBQB77Gw kjVwOGAIp+BWDbSa19mixBBjYMfOPSpfM1v/AJ4Qf99igDZ4o4rG83W/+eEH/fYo83W/+eEH/fYo AmTXNPbUZbA3CpcREAq3GfpUN7ZTzeI9MvY0VoLdJA53cgsMV5N4ta5/4Se6MyhJ9w4U9OO1Xluf FY062K/aTFu/dnHzHjv7YoA9S1HW9P01kS6nRXcgBAcn8q0FIZQR0NeAK902qxm43tc+aufM65zX s0cut+UuIIBwP4hQBt8UcVjeZrf/ADwg/wC+xR5mt/8APCD/AL7FAGzWZDruny30tmLhFuIjhkY4 /KohLreR+4g/77FeQ+Jjcf8ACR3RlG2ff0U9D7YoA9cvrK4n8RaZexKpgt0kDtkZ+YYFXr3UrOxh aW5uI41Xrk8/lXlCXHiz7BbBftJj3Yj4+Y8H9K56+N8JmS/84SZ3FZgQc+uKAPetPvYdRs47m3Ja KQZUnjirWAetcf4Wk1YeH7UQwRGPbwWbFa/ma3/zwg/77FAGzxSVj+Zrf/PCD/vsUol1vI/cQf8A fYoAlg1zT576WyWdVuIjhkbg59qku9PW41C0vN+2S3zg4B3A9q8Z8StcjxHctJ8s+/op6H2xWxaX Pi4R2Xl+eVDHy9469etAHqV9qNrp8LS3c6RIBn5jz+VOsLyLULKK6t2JhlGVPqK8K1ibUZbxv7Ua TzgSdsmePpXpPhx/EQ0Gz+xxWBt9nyeYzbjz7UAdtRXOb/Ff/PHTf++mo3+K/wDnjpv/AH01AHR0 Vzm/xX/zx03/AL6ajf4r/wCeOm/99NQB0dFc5v8AFf8Azx03/vpqN/iv/njpv/fTUAdHRXOb/Ff/ ADx03/vpqN/iv/njpv8A301AHR0Vzm/xX/zx03/vpqN/iv8A546b/wB9NQBqatpFlrNp9mvoBLGD uHOCp9QRyKxdN8C6Lp10LgRyzyK25BO+4KfoAAfxzU2/xX/zx03/AL6ajf4r/wCeOmf99NQBd8Qa HbeILGO1u3mSNJBIDEQDnBHUg8cmrWo6daanaNa3sKyxNyQex9Qe1ZG7xV/zx03/AL6ajf4r/wCe Om/99NQBDpvgbRdOvFukjlnkRt0YmfKoe2ABzj3zW1q2kWWsWn2e+hEqZ3DkgqfUEVl7/Ff/ADx0 3/vpqN/iv/njpv8A301AEeleB9G0u5W4SOWeVW3IZ33bD2wAAPzrpsVzu/xX/wA8dN/76ajf4r/5 46b/AN9NQB0dFc5v8V/88dN/76ajf4r/AOeOm/8AfTUAdHRXOb/Ff/PHTf8AvpqN/iv/AJ46b/30 1AHR0Vzm/wAV/wDPHTf++mo3+K/+eOm/99NQB0dZ+q6va6Skb3jlEkbaGx0+tZm/xX/zx03/AL6a uW8etrTaRH/aSWiw+YMeSSTn8aAPQBcw3dm8ttKkqFDhkOe1Z3g5nbw3atIXZ/myX6/eNeV+Gzrw mLaQZsKMseqCvWPC97cahoVvc3ZQyuDkrwKANmiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigCGeNJYJI5PuMpB57VBp1nb2lhFbWwH2dFwo68Z P+NP1BHksLhIwS7IQoHHOKo+GLee18P2UN0hSZEwyk5OcmgAbw7p/wDaceoRwiK4TunGa16KWgBK KWigCOSPzEdCThhisvS/Dmm6UWe3gHmscmRuSa2KSgCvNcQQPFHLIqNKdqA9z7VR1Hw9pupsj3Ns pdGDBl4J+tRa3ptxe6lpU8IXZaz+Y+fTHatsdKAGogRAq8ADAp1LRQAlFLRQBlNoGmtqL3zWqNcP 95mJOfwPFSXl9BY3FnA6ktcuY48DgHFaNZ97p0V7d2k8rOptHMiBSACSMc+1AEGo+H9O1OSOSe3U SI24OvBz71qICqhc5wOtOpaAEopaKAExWRD4d06LUJb5oBJcSHJL84+lbFJQBn3mowWN5ZW8qHfd OUjIHA4o1LR7LVYjHeW6SZHXHzD8aW+0yK9u7O4kd1ktHLxhSME9Oav0AVNNsItNso7WDPlxjC56 1bopaAEoxS0lAGRD4d06LUZb5oBJcSHJZ+cfQVYvNQhs7yytpEJe6crHgcAgZq/Wff6at5f2NyXK m0cuB65GKADUtIstViMd3AknHXHzD8am06yj06xitISfLiGFz6VaxRQAUUtFACUUtFACUUtFACUU tFACUUtFACUUtFACUUtFACUUtFACUUtFACUUtFACUUtFACUUtFACVQ1TSLXVkjjvE8yNG3bD0JrQ ooArRW1vawGKKJI4gMbQMDGKZpi2i2MYsAq2/O0J068/1qxKm+NlzjcpGapaHpx0rS4rMyeZ5efm xjPNAGjRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAlGBRRQAtFFFABRRRQAUUUUAJiiiigBaKKKACiiigApMUUUALRRRQAUUUUAFFFFACYpaK KACiiigAooooAKSiigBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigBDRgCiigBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKAP/9kKZW5kc3RyZWFtCmVuZG9iago0NSAwIG9iago8PC9SOAo4IDAgUi9SMTEKMTEgMCBSL1Ix NAoxNCAwIFIvUjE2CjE2IDAgUj4+CmVuZG9iago0OSAwIG9iago8PC9SNDEKNDEgMCBSPj4KZW5k b2JqCjUwIDAgb2JqCjw8L1I0Mgo0MiAwIFIvUjQwCjQwIDAgUj4+CmVuZG9iago1MSAwIG9iago8 PC9SOAo4IDAgUi9SMTEKMTEgMCBSL1IxNAoxNCAwIFIvUjE2CjE2IDAgUj4+CmVuZG9iago1NSAw IG9iago8PC9SNDEKNDEgMCBSPj4KZW5kb2JqCjU2IDAgb2JqCjw8L1I0Mgo0MiAwIFIvUjQwCjQw IDAgUj4+CmVuZG9iago1NyAwIG9iago8PC9SOAo4IDAgUi9SMTEKMTEgMCBSL1IxNAoxNCAwIFIv UjE2CjE2IDAgUj4+CmVuZG9iago5IDAgb2JqCjw8L0Jhc2VGb250L05TRVNKTytUVDM2NzhBQzc0 dENJRC9Gb250RGVzY3JpcHRvciAxMCAwIFIvVHlwZS9Gb250Ci9EVyAxMDAwCi9XWzE4M1s4MzNd XQovQ0lEU3lzdGVtSW5mbyA3IDAgUi9TdWJ0eXBlL0NJREZvbnRUeXBlMj4+CmVuZG9iago2MSAw IG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDIwMz4+c3RyZWFtCnicXZBNDsIgEIX3 nIIbtDim1qRhoxsXGqNegA5Dw6KUYF14e/mpNZGEl8zHvDBvqsPpeHJ25tU1THinmRvrdKDn9ApI vKfBOiY2XFuclyorjsqz6nBW/vH2xGMDmVJf1EjVrRGZiOLBSdPTK6Sg3ECsq+ORnYlHMnL677kp pt6s3f1O/lTIiAhSkRVEqzMySi4KgNuETC3kogD7vqAmo2QEVReEclGAtoz0/TxNl6J+k3F8hUBu zvvIeVNO62hdmZ98cvF42Qd1vGy7CmVuZHN0cmVhbQplbmRvYmoKOCAwIG9iago8PC9CYXNlRm9u dC9OU0VTSk8rVFQzNjc4QUM3NHRDSUQtV2luQ2hhclNldEZGRkYtSDIvVG9Vbmljb2RlIDYxIDAg Ui9UeXBlL0ZvbnQKL0VuY29kaW5nIC9JZGVudGl0eS1IL0Rlc2NlbmRhbnRGb250c1s5IDAgUl0v U3VidHlwZS9UeXBlMD4+CmVuZG9iagoxMSAwIG9iago8PC9CYXNlRm9udC9UaW1lcy1Sb21hbi9U eXBlL0ZvbnQKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTQgMCBvYmoKPDwvQmFzZUZvbnQvR01U WFNVK0FyaWFsUm91bmRlZE1UQm9sZC9Gb250RGVzY3JpcHRvciAxNSAwIFIvVHlwZS9Gb250Ci9G aXJzdENoYXIgMS9MYXN0Q2hhciAyNC9XaWR0aHNbIDY2NyA2MjUgNTk0IDU5NCAyNzEgMzMzIDU5 NCAzNTQgNjA0IDYwNCA1NDIgMzEzIDI1MCA3NjAgNzE5CjI3MSA1NDIgNzE5IDYwNCA1OTQgNTk0 IDU5NCA1OTQgNTk0XQovRW5jb2RpbmcgNjIgMCBSL1N1YnR5cGUvVHJ1ZVR5cGU+PgplbmRvYmoK NjIgMCBvYmoKPDwvVHlwZS9FbmNvZGluZy9CYXNlRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL0Rp ZmZlcmVuY2VzWwoxL1MvcC9lL2MvaS9mL2EvdC9vL24vcy9wZXJpb2Qvc3BhY2UvYW1wZXJzYW5k L0EvbAoveS9SL3Uvc2l4L3RocmVlL2ZpdmUvZm91ci9vbmVdPj4KZW5kb2JqCjE2IDAgb2JqCjw8 L0Jhc2VGb250L1hHUUZERytDb3BwZXJwbGF0ZUdvdGhpY0xpZ2h0L0ZvbnREZXNjcmlwdG9yIDE3 IDAgUi9UeXBlL0ZvbnQKL0ZpcnN0Q2hhciAxL0xhc3RDaGFyIDE5L1dpZHRoc1sgODQxIDYxOSA1 NTMgNjU1IDYzOSA1NjAgMjUwIDcyMiA1OTYgNjE5IDc2OSA5MTEgNTkwIDI1MCA3MDAKNzczIDc0 NiA3NTAgNTQ0XQovRW5jb2RpbmcgNjMgMCBSL1N1YnR5cGUvVHJ1ZVR5cGU+PgplbmRvYmoKNjMg MCBvYmoKPDwvVHlwZS9FbmNvZGluZy9CYXNlRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL0RpZmZl cmVuY2VzWwoxL04vYS90L3Uvci9sL3NwYWNlL1AvZS9zL1IvTy9mL2kvbi9tCi9LL28veV0+Pgpl bmRvYmoKMTUgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9HTVRYU1UrQXJp YWxSb3VuZGVkTVRCb2xkL0ZvbnRCQm94Wy04IC0yMDkgNzMzIDcyOF0vRmxhZ3MgNAovQXNjZW50 IDcyOAovQ2FwSGVpZ2h0IDcyOAovRGVzY2VudCAtMjA5Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViAx MDkKL01pc3NpbmdXaWR0aCA1MDAKL0ZvbnRGaWxlMiA1OCAwIFI+PgplbmRvYmoKNTggMCBvYmoK PDwvRmlsdGVyL0ZsYXRlRGVjb2RlCi9MZW5ndGgxIDY2NjgvTGVuZ3RoIDQzNDQ+PnN0cmVhbQp4 nO1YeVRbV3r/7lskJIRAICR2kISQkRCS0MaijV1CEosAsdtgwME2xHjBG94w9gB28BYn8SQex57x OImdcXGG6XFcT9qcJJMmk6XTJDNNm2lOzzQlaSfLmU5yUseI3vee8JL99PS/9t3zPem77973vt+3 vwcIAOJgH5DQ2NBsKAL2kL+PT+H+kb5Rjpe1AKB1/Vu35Dzw6UNBPPEO5levGb1nxHT9GL4D4cH8 1XuGd6zh1lPzAPFXhwb7Bl5s8VwBSH0TT9qG8ET8k/xDAOTnmM8dGtmynVufwuzfMryhv4/jpcOY f3+kb/soFYcC+H4ZeDLn3r6Rwah8f4NPmtENm7dwfOo8c3100+Do1YnfJ+H1DsyPAQ9iQAw+aIPO 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 TWvQZZdkU4lxkdOF7cfHt28vKZYlpyUZbLoyJ1nvU6gcuf6axV5iYyCcpSjOTqrJvdk9fp/fUm0w 83gZ1Yx4yV8ZP/vSeIUdX8AXaAt6hlASs187/vG7BllLPvPNgzLisQ+PN2kFOzrZMY7HKzwJbx07 3uab+ZPR8c7/j+8/2C803NckKZDsu1QaJh7zDbjZWxPwVbWFmsISUpDb0G1tT5Wl4Pbq/8hBQSN7 phj9fJKytITPiDljnsJnGzSDF2ogAD6ogjYIQROEQYK1KMDvcw3QDVZoxx2LDFJADpzaECRifTMf qHg4nqB809q+4ZzQhrF7BwYHcoItORUbhgeYVYCOAf29JY25m/0EPlm6awItA4LQMjEifB3xpDD+ bURMwMVlop6FiSgNYErFNIJp5fcl+lmw/y/QGToMI/8TwjKEotQepU7i4tLHt0gHs18m6i04iCmA jTO1TFQYWoi3IDN67TaFl2PqWw6219l/9MrcX1xbFe/4FGI5Yz7pOvwh8/vzf15ojZyONArG+Scw K2CNhI//BsDT1+AKZW5kc3RyZWFtCmVuZG9iago2NCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNv ZGUvTGVuZ3RoIDQ4Pj5zdHJlYW0KeJzt0aERACAMBMHgUga90H9PaSCxgNiVp37mIzqrrfxq/Guf vLkDAACAVwoINgBuCmVuZHN0cmVhbQplbmRvYmoKMTAgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3Jp cHRvci9Gb250TmFtZS9OU0VTSk8rVFQzNjc4QUM3NHRDSUQvRm9udEJCb3hbMCAtMTQ4IDEwMDAg ODYyXS9GbGFncyA0Ci9Bc2NlbnQgODYyCi9DYXBIZWlnaHQgODYyCi9EZXNjZW50IC0xNDgKL0l0 YWxpY0FuZ2xlIDAKL1N0ZW1WIDE0OQovQ0lEU2V0IDY0IDAgUgovRm9udEZpbGUyIDU5IDAgUj4+ CmVuZG9iago1OSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDI3OTM+PnN0cmVh bQp4nO3Xe4xcVR0H8N85Z+bO3Hm/79x57Z2Z3dnHzL5mH7OvdqctfWzBdttSCy1QtqXtgpS20JDW QgQaJZiQaKKREEQRCeaGpxAxkEpjDBFFiQbUoKDwBz7wQYhEE9kdz92Z2y4IEvxDlHznk+/O/O49 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 YW1lL1hHUUZERytDb3BwZXJwbGF0ZUdvdGhpY0xpZ2h0L0ZvbnRCQm94Wy01IC0zMSA4NTQgNjc4 XS9GbGFncyA0Ci9Bc2NlbnQgNjc4Ci9DYXBIZWlnaHQgNjc4Ci9EZXNjZW50IC0zMQovSXRhbGlj QW5nbGUgMAovU3RlbVYgMTI4Ci9NaXNzaW5nV2lkdGggMjUwCi9Gb250RmlsZTIgNjAgMCBSPj4K ZW5kb2JqCjYwIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZQovTGVuZ3RoMSA2NjgwL0xlbmd0 aCAzNTI3Pj5zdHJlYW0KeJztWHt0E+eVv99oZiSssTWypdHbmtFj5IeMbMmPOih4QmzAhGwIxIQE SDDhZRaDA17ippBQNyENp6E53QINTbN50N3mcc6SUAjJIee4m5DKTUPYnsAmlHbbxulyukuwdx1n N1jjvTMj+UnTnt2zf+xpv9H3ut9Ic+/vPkdAAKAQ9oAJltyyLJEEvbmGcVh+T2d7l7EXNgGQNffs 7Bavnz03hISLANTmDV0bO//9kaqPAUwLkbZg45YvbzDup28D4N2b1revO/3Rj70Anl8hsX4TEvgt FlybHsd9ZFNnd49xv3sx/n73lm33tBt7xxbcj3a293RRK6n5eP8PkShube9cn+Mvg0NF17Yd3cbe 06edd21f3/XEPz7gxvvfx/1ugLFLuf6bsVxj2phOeg3do8+/ZN7WaPA9OALfhIOwH/bl74NeeBQ6 oRvpj8IFeF2n7R+b0eCh8dVSuGnm+Z/bRAMFRDgPms7uhJPanKNfg/ZH/Z4IynQadZ76NfZ15J+p 12AJdSecJc+QPrKZqiaPk0XUjTN/xXRqJo16h8ygmuroZnjA9CierqY6qVcpjuylmsgV6IC7AI7x QRsVF4+aoi3hlnD7pn1iyyZxX7h5TXNVPCzu29eyZIUk+Vqa76iK37R0RUuzT5LumHJyVGnHQzR7 APZzNQFQsGcsNZYqSGuUKW21TsnCITCjhdJAAQ8OtF6AFxATCsjxZOhpWyh8koiv2MJBfQqW6lOp qE+SNp2wiY6nbW6PTvEI+lTm0CenQz93CE/bXNqBwtmKbBRXSBVYqSQ5ScYefuymZSuO7gncUVlZ SSr1BpW5GRsFKRTkXaYNo4oZgkqRmdV4JgUMSxGKJBL24sZGaGrSpprqlF2yx7CnyOGU+lOm7fMX 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 +P/Smc/gYL6zr8NBcyt0Mz/GPXZW/p93+j+AmdJPQw99cqLjs8c7fT/0sAnoYQ7jDLA63xk/ng3D PHoL8MxcWDu503eOfWr40hc0TTeELHj56N+/frct/SlYDWU+v/Pbu7X52C//5a6xlAoFafZz3M7S AcH238iLy0MKZW5kc3RyZWFtCmVuZG9iago2NSAwIG9iago8PC9MZW5ndGggMTQyNj4+c3RyZWFt Cjw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjw/ YWRvYmUteGFwLWZpbHRlcnMgZXNjPSJDUkxGIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0nYWRvYmU6 bnM6bWV0YS8nIHg6eG1wdGs9J1hNUCB0b29sa2l0IDIuOS4xLTEzLCBmcmFtZXdvcmsgMS42Jz4K PHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50 YXgtbnMjJyB4bWxuczppWD0naHR0cDovL25zLmFkb2JlLmNvbS9pWC8xLjAvJz4KPHJkZjpEZXNj cmlwdGlvbiByZGY6YWJvdXQ9JzIwMmMzYzllLTdjMmItMTFkZi0wMDAwLWE4YzA4ZTc4NzgzYScg eG1sbnM6cGRmPSdodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJyBwZGY6UHJvZHVjZXI9J0FG UEwgR2hvc3RzY3JpcHQgOC41NCcvPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nMjAyYzNj OWUtN2MyYi0xMWRmLTAwMDAtYThjMDhlNzg3ODNhJyB4bWxuczp4YXA9J2h0dHA6Ly9ucy5hZG9i ZS5jb20veGFwLzEuMC8nIHhhcDpNb2RpZnlEYXRlPScyMDEwLTA2LTE3JyB4YXA6Q3JlYXRlRGF0 ZT0nMjAxMC0wNi0xNyc+PHhhcDpDcmVhdG9yVG9vbD5BRlBMIEdob3N0c2NyaXB0IDguNTQgUERG IFdyaXRlcjwveGFwOkNyZWF0b3JUb29sPjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0 aW9uIHJkZjphYm91dD0nMjAyYzNjOWUtN2MyYi0xMWRmLTAwMDAtYThjMDhlNzg3ODNhJyB4bWxu czp4YXBNTT0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLycgeGFwTU06RG9jdW1lbnRJ RD0nMjAyYzNjOWUtN2MyYi0xMWRmLTAwMDAtYThjMDhlNzg3ODNhJy8+CjxyZGY6RGVzY3JpcHRp b24gcmRmOmFib3V0PScyMDJjM2M5ZS03YzJiLTExZGYtMDAwMC1hOGMwOGU3ODc4M2EnIHhtbG5z OmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLycgZGM6Zm9ybWF0PSdhcHBsaWNh dGlvbi9wZGYnPjxkYzp0aXRsZT48cmRmOkFsdD48cmRmOmxpIHhtbDpsYW5nPSd4LWRlZmF1bHQn PlwzNzZcMzc3XDAwMGNcMDAwZVwwMDByXDAwMHRcMDAwaVwwMDBmXDAwMGlcMDAwY1wwMDBhXDAw MHRcMDAwZVwwMDAgXDAwMHVcMDAwZjwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOnRpdGxlPjxkYzpj cmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+XDM3NlwzNzdcMDAwY1wwMDBvXDAwMG08L3JkZjpsaT48 L3JkZjpTZXE+PC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4 bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9J3cn Pz4KZW5kc3RyZWFtCmVuZG9iagoyIDAgb2JqCjw8L1Byb2R1Y2VyKEFGUEwgR2hvc3RzY3JpcHQg OC41NCkKL0NyZWF0aW9uRGF0ZShEOjIwMTAwNjE3MTMxNzI0KzA4JzAwJykKL01vZERhdGUoRDoy MDEwMDYxNzEzMTcyNCkKL1RpdGxlKFwzNzZcMzc3XDAwMGNcMDAwZVwwMDByXDAwMHRcMDAwaVww MDBmXDAwMGlcMDAwY1wwMDBhXDAwMHRcMDAwZVwwMDAgXDAwMHVcMDAwZikKL0NyZWF0b3IoXDM3 NlwzNzdcMDAwUFwwMDBEXDAwMEZcMDAwQ1wwMDByXDAwMGVcMDAwYVwwMDB0XDAwMG9cMDAwclww MDAgXDAwMFZcMDAwZVwwMDByXDAwMHNcMDAwaVwwMDBvXDAwMG5cMDAwIFwwMDAwXDAwMC5cMDAw OVwwMDAuXDAwMDMpCi9BdXRob3IoXDM3NlwzNzdcMDAwY1wwMDBvXDAwMG0pCi9LZXl3b3Jkcygp Ci9TdWJqZWN0KCk+PmVuZG9iagp4cmVmCjAgNjYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDUz OTkxIDAwMDAwIG4gCjAwMDAyNTA1OTIgMDAwMDAgbiAKMDAwMDA1Mzg4MSAwMDAwMCBuIAowMDAw MDUyNTEzIDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwNzIyMiAwMDAwMCBuIAow MDAwMDU0MDU2IDAwMDAwIG4gCjAwMDAyMzY0NzUgMDAwMDAgbiAKMDAwMDIzNjA1NyAwMDAwMCBu IAowMDAwMjQyMjIzIDAwMDAwIG4gCjAwMDAyMzY2MzAgMDAwMDAgbiAKMDAwMDA1NDEzNCAwMDAw MCBuIAowMDAwMDU0OTc1IDAwMDAwIG4gCjAwMDAyMzY2OTcgMDAwMDAgbiAKMDAwMDIzNzQ2OCAw MDAwMCBuIAowMDAwMjM3MTA5IDAwMDAwIG4gCjAwMDAyNDUyOTEgMDAwMDAgbiAKMDAwMDA1NDkx MSAwMDAwMCBuIAowMDAwMDU0OTQzIDAwMDAwIG4gCjAwMDAxMDc2MzkgMDAwMDAgbiAKMDAwMDA1 MjcxNCAwMDAwMCBuIAowMDAwMDA3MjQyIDAwMDAwIG4gCjAwMDAwMTQ0NTUgMDAwMDAgbiAKMDAw MDEwNzcwMiAwMDAwMCBuIAowMDAwMTA3NzM0IDAwMDAwIG4gCjAwMDAxMDc3NjYgMDAwMDAgbiAK MDAwMDA1MjkxNyAwMDAwMCBuIAowMDAwMDE0NDc2IDAwMDAwIG4gCjAwMDAwMjE4OTUgMDAwMDAg biAKMDAwMDEwNzgyOSAwMDAwMCBuIAowMDAwMTA3ODYxIDAwMDAwIG4gCjAwMDAxMDc4OTMgMDAw MDAgbiAKMDAwMDA1MzEyMCAwMDAwMCBuIAowMDAwMDIxOTE2IDAwMDAwIG4gCjAwMDAwMzAwMjYg MDAwMDAgbiAKMDAwMDEwNzk1NiAwMDAwMCBuIAowMDAwMDUzMjcyIDAwMDAwIG4gCjAwMDAwMzAw NDcgMDAwMDAgbiAKMDAwMDAzNzUxMSAwMDAwMCBuIAowMDAwMTcwODM5IDAwMDAwIG4gCjAwMDAx MDgwMTkgMDAwMDAgbiAKMDAwMDEwODg3MSAwMDAwMCBuIAowMDAwMTA4Nzk2IDAwMDAwIG4gCjAw MDAxMDg4MjggMDAwMDAgbiAKMDAwMDIzNTcxOCAwMDAwMCBuIAowMDAwMDUzNDc1IDAwMDAwIG4g CjAwMDAwMzc1MzIgMDAwMDAgbiAKMDAwMDA0NTAwMSAwMDAwMCBuIAowMDAwMjM1NzgxIDAwMDAw IG4gCjAwMDAyMzU4MTMgMDAwMDAgbiAKMDAwMDIzNTg1NiAwMDAwMCBuIAowMDAwMDUzNjc4IDAw MDAwIG4gCjAwMDAwNDUwMjIgMDAwMDAgbiAKMDAwMDA1MjQ5MiAwMDAwMCBuIAowMDAwMjM1OTE5 IDAwMDAwIG4gCjAwMDAyMzU5NTEgMDAwMDAgbiAKMDAwMDIzNTk5NCAwMDAwMCBuIAowMDAwMjM3 NjgxIDAwMDAwIG4gCjAwMDAyNDI0MjkgMDAwMDAgbiAKMDAwMDI0NTUwNiAwMDAwMCBuIAowMDAw MjM2MjA0IDAwMDAwIG4gCjAwMDAyMzY5NDkgMDAwMDAgbiAKMDAwMDIzNzM0NSAwMDAwMCBuIAow MDAwMjQyMTA4IDAwMDAwIG4gCjAwMDAyNDkxMTYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSA2 NiAvUm9vdCAxIDAgUiAvSW5mbyAyIDAgUgovSUQgWzxDOUNFNDc3QzdGMjA5MjkzNkRBODU0MTA1 MjlCRjQ0Mj48QzlDRTQ3N0M3RjIwOTI5MzZEQTg1NDEwNTI5QkY0NDI+XQo+PgpzdGFydHhyZWYK MjUwOTkxCiUlRU9GCg== ------=_NextPart_000_003C_01CB3AF5.880BBBE0 Content-Type: application/pdf; name="English Catalogue.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="English Catalogue.pdf" JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29k ZT4+CnN0cmVhbQp4nCtUMNAzNFIwAEEYIzmXqxBImRsYminompibmQI5JhZmQEk9S0NzSzNLkAr9 IHMFl3yuQCAEAMxxDZBlbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKNjAKZW5kb2JqCjEwIDAgb2Jq Cjw8L0xlbmd0aCAxMSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nCtUMNAzNFIw AEEYIzmXqxBImRsYminompibmgM5JhamFkAVlobmlmaWIBX6QUDVLvlcgUAIANqVDcJlbmRzdHJl YW0KZW5kb2JqCjExIDAgb2JqCjYwCmVuZG9iagoxNSAwIG9iago8PC9MZW5ndGggMTYgMCBSL0Zp bHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJwrVDDQMzRSMABBGCM5l6sQSJkbGJop6JqYm4FE TSzMQCosDc0tzSxBKvSDDM0VXPK5AoEQANmKDbxlbmRzdHJlYW0KZW5kb2JqCjE2IDAgb2JqCjU5 CmVuZG9iagoyMCAwIG9iago8PC9MZW5ndGggMjEgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+Pgpz dHJlYW0KeJwrVDDQMzRSMABBGCM5l6sQSJkbGJop6JqYm4FETSzMQCosDc0tzSxBKvSDjIwUXPK5 AoEQANlnDbhlbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjU5CmVuZG9iago0IDAgb2JqCjw8L1R5 cGUvUGFnZS9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Sb3RhdGUgOTAvUGFyZW50IDMgMCBSCi9S ZXNvdXJjZXM8PC9Qcm9jU2V0Wy9QREYgL0ltYWdlQ10KL1hPYmplY3QgOCAwIFIKPj4KL0NvbnRl bnRzIDUgMCBSCj4+CmVuZG9iago5IDAgb2JqCjw8L1R5cGUvUGFnZS9NZWRpYUJveCBbMCAwIDU5 NSA4NDJdCi9Sb3RhdGUgOTAvUGFyZW50IDMgMCBSCi9SZXNvdXJjZXM8PC9Qcm9jU2V0Wy9QREYg L0ltYWdlQ10KL1hPYmplY3QgMTMgMCBSCj4+Ci9Db250ZW50cyAxMCAwIFIKPj4KZW5kb2JqCjE0 IDAgb2JqCjw8L1R5cGUvUGFnZS9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Sb3RhdGUgOTAvUGFy ZW50IDMgMCBSCi9SZXNvdXJjZXM8PC9Qcm9jU2V0Wy9QREYgL0ltYWdlQ10KL1hPYmplY3QgMTgg MCBSCj4+Ci9Db250ZW50cyAxNSAwIFIKPj4KZW5kb2JqCjE5IDAgb2JqCjw8L1R5cGUvUGFnZS9N ZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Sb3RhdGUgOTAvUGFyZW50IDMgMCBSCi9SZXNvdXJjZXM8 PC9Qcm9jU2V0Wy9QREYgL0ltYWdlQ10KL1hPYmplY3QgMjMgMCBSCj4+Ci9Db250ZW50cyAyMCAw IFIKPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsKNCAwIFIKOSAwIFIK MTQgMCBSCjE5IDAgUgpdIC9Db3VudCA0Ci9Sb3RhdGUgOTA+PgplbmRvYmoKMSAwIG9iago8PC9U eXBlIC9DYXRhbG9nIC9QYWdlcyAzIDAgUgovTWV0YWRhdGEgMjQgMCBSCj4+CmVuZG9iago4IDAg b2JqCjw8L1I3CjcgMCBSPj4KZW5kb2JqCjcgMCBvYmoKPDwvU3VidHlwZS9JbWFnZQovQ29sb3JT cGFjZS9EZXZpY2VSR0IKL1dpZHRoIDk5NAovSGVpZ2h0IDY3NQovQml0c1BlckNvbXBvbmVudCA4 Ci9GaWx0ZXIvRENURGVjb2RlL0xlbmd0aCA2Mjc4MT4+c3RyZWFtCv/Y/+4ADkFkb2JlAGQAAAAA Af/bAEMADgoLDQsJDg0MDRAPDhEWJBcWFBQWLCAhGiQ0Ljc2My4yMjpBU0Y6PU4+MjJIYklOVlhd Xl04RWZtZVpsU1tdWf/bAEMBDxAQFhMWKhcXKlk7MjtZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZ WVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWf/AABEIAqMD4gMBIgACEQEDEQH/xAAfAAABBQEBAQEB AQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEH InEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFla 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 Izn36cZpYdMu7eWG8SFWlSd3aJ7hnZlZAmS7fxDaPbHHXk9DRQFzIs7O6XV47y4jt4x9nkRliJ4Z pAwHI54HJ4yc8DNQrpt2/h1dKZYkP2UIZd5OJBj5SMfd45OfbFbtJSC5i3drqGoPG8tvbwCOeB8B 9zkI+5iWwOMYwMZ6k4zir9rbSRahfztjZO6MnrgIAc+nIq5QKYXFooooABRRRSAKKKM0AFFFFABS 0lFAC5ozzSYoFAC0UA0UAFFFFABRRRQAUUUUDCiiigLhRRRQFwooooC4UUUUAFFFGaACiiigAooo oAKKKKACiiigAooooAKB70UUBcKB1ooHWgDwHxB/yMWp/wDX3L/6GaKPEH/Ixan/ANfcv/oZooGe vWH/ACD7X/rin/oIqeoLD/kH2v8A1xT/ANBFT1ocjCiiigQUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGjF/qk/3R/Kn1HEf3SD/ZH8qk7V ButgzQDRRQMWikooAM0tIaM0ALRQKKBi0UgpaBhS0lFABnmlxzSUtABRRiigApaSjNAC0UZooAM0 ZoooAKKKKQBRRR3oAKKKKACgfrRRQAoNFJRmgBaKKKACiiigAooJooAKKD0pAecZoAWiiigAoooo AKMUUA0DYUUUUCCiiigdwoooPtQAUUUUCCiigGgAooooAKB1ooHWgDwHxB/yMWp/9fcv/oZoo8Qf 8jFqf/X3L/6GaKCj16w/5B9r/wBcU/8AQRU9QWH/ACD7X/rin/oIqetDkYUUUUCCiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA0IjiJP90fy p4NMi/1Sf7o/lTx1zUPc3WwtHekJpaBhQOtFAoAKM0UUALQKKKACiiigoXPNFJ060vUcUAFFFFAA KWkozQAtFFFABijtRRQAtJRRQAtFFFABRRRQAUUUUAFFFFIAooooAKBRRQAZpaSigBaAKSjJ9aAF oxSUueKACigGjNABRRQeRQAHnFHAooIoAKDQBRQAUUUUAFFFFABRRQQc0AFGKKKACigmkoAUmjPN JSjrQB4D4g/5GLU/+vuX/wBDNFJ4g/5GHU/+vqX/ANDNFBR6/Yf8g+1/64p/6CKnqCw/5B9r/wBc U/8AQRU9aHIwooooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQBoQ/6pP8AdFO+lNi/1af7op1Q9zdbC54pabSjpQMWiiigAzRRRQAZpaSi gBaM0ZooHcM0UUUALk4pR0puaAaBi0UUUAFLSUUALRSGjtQAtFFFABRmiikAtFJS5pgFFJmloAKK KKADNHOfaiigAFFFFIAooooAKKKKACiiigAooooAUH1ozzSUUALRSUUAKe1FJRmgBTQOlFGaAEpc 0maKAFzQf0pKM9qACiiigAooooAKUdaSgdaAPAfEH/Iw6n/19S/+hmijxB/yMOp/9fUv/oZooKPX 7D/kH2v/AFxT/wBBFT1BYf8AIPtf+uKf+gip60ORhRRRQIKKKKACiiigAooooAKKKKACiiigAorJ k1+1VpNquVQZDHjf16Drj5TycdOKhh8SxSRs5tpF24IG8EkHvx2HGe/IpXK5JG5RWGPEsBVnaB0i UZDFhyM4GBjBzx3709fECMjFbZ2IJG1XUnI65Bxj/wCsfSi6HySNmisT/hIYwuWtXU5AwzAEEjPO RwPf+VC+I4XIC27lsZxvX34z0PIPTPQ+houg5JG3RWIPEcJJU27gjOcMDg5xjgZz3xjik/4SSLPF tIc4x8w5J7dKLoOSRuUVir4hiZgv2dxkEglhj6e56/lT9O1+3vnKNG1u4YKA7AgkjI5HSi4nBo16 KKKZIUVia54ltNGJjZTPcYB8tWAwD0yecflVZPFatBHI1iyu4zs80EgHpk7fT2paFKEmjpKK52Tx QqbQbMlmBYgSj5R2J+XqT2qOXxcscIkNiSS20DzsZ9Tnb2H9KLofJI6aiubtvFa3IZVs8SqQQhmG WHqPl7d/w9aY/jCMXccCWRkLMFZhMMKSccfLzj/63rRdBySOnormn8XRxiQvZEKgJ/1o5x2+7UUP jLerM+mSRAAFS0v3s56ZUelF0HJI6qiubi8WJJbvL9iYFXC7RKCemcn5eB/gaWPxbbM4EltJGM4J DBsfhgUXDkkdHRTIpUnhSWJg0bgMrDoQafTICioLu6jtUDPkljhVHU//AFqgj1APj90Rn1b/AOtS bSKUW1cvUVCs4YZxjPTmppGSOMMzjcedoHQepPYUXHySCiq7ahp8YPm3sSt2C5bP5ZxUY1bTWYKL 1Mk9WVlH5kYoug5JFyiiIxzpvilSRR1KEMPpwetUtV1KPTZI42UyysNxVTjaOxJ56+lF0HJIu0Vh jxGne1Yf9tB/hSDxGmTm1YAdfnH+FFw5JG7RVeyu4r2HzIs8HDKeCp9DVimQ007MKKKKACiiigAo oooAKKKKACiiigAooooEaEX+qT/dH8qdTIv9Un+6KfUHQtgoFFKOlAxM04dKbSj0oAWgUUUAFFFF ABilpKWgAooooAKKKKCheMdaAaSigBc0UneloAKKAaKACjqKKKAFoozSUALRRRQAUZoopALmk7UU UwFpM0UCgBaKKKACig0lAC0ZoooAKPxoooAKM9qKKQAOlHeiigAoozRQAUUUUALmkPWiigAooooA KKKKACiiigAozQaKADNA60UDrTA8B8Qf8jDqf/X1L/6GaKPEH/Iw6n/19S/+hmikUev2H/IPtf8A rin/AKCKnqCw/wCQfa/9cU/9BFT1ocjCiiigQUUUUAFFFFABRRRQAUUUUAFQ3pYWVyVBLCJiADgk 4OMGpqiusm0nA6mNsfkaBrc8/SB40imYSQCLDHeMswK55z6EHrjrxzVtY0S0Qo4kRlO8ROSA27IB HBwcgf8AAR1wMMujcJBGojDIQQZGTcy8ngZ4A6c9+nGKhUoQYokZQ2VVUUAHbznjBxwpz68cmszr Jbd5ZCgMyqjDzWUrnKnjbkc5BGfTP6orIIFdwSdrbmBCtk5AYA8k8kcYHUjFLGkhUCKWYPcZUhlB VR1OMHgHBzgDGO9SFleYmQuiuVVVySoYA5ySBjqeuc5A7UAALRh45xapOQ21icBgCoAHXgDgH1B5 GKauJowVkLqpKs0aBmHOSM4yMADnHTnvilVi+FTmJQURQnDkEDkA9cqCcDuKFVlkUSKsGCAQ5DFg CTzyCehAAwPmGQMUAI2TkMzFs/NggMMA8nJyeh9Oe1R5yNxCnnP3gcAHnjnGDyeo79+HhH2srSEB QCoYgkg5Oc5GRwB64J+lNbIOWBHHBIByBwDkHnHf655oATey5OSCOwJBPfPOfXt/jSGV5EeNmZgT uXJ4A6cdu9NYcAE9ensMe34fkaYgLHsRkZyMHJIwDx6n9KAZ6OeppKU9TSVocZ59rWmx/wBvXc81 yRukLbAmQemATkfyqs0JbJjvIi/UCRCo/MZrQ1prk6rd4eNEEhCCUZ3DjpgEgfj61krLI1ykM9iq bicSI5CnjsSCO3T+VQ9zrjsS22mXe2R2lglklbLFXJ9gMAU27tbo4ASNliQnargtzyTg4Pp27VKY IicxytGccbxwT7EZ/XFSo93EA2FuEU8HhwO/BGcfhSGZO13gM3lMYh/Hjj65/r0q5Y6XPLHb3qbD EXJVd3zYUH5iPQED3/qt7lYI2twY2mJjEX8I45I/2QOvpT0XybOJYGP+jnYT6knOfoSTx7UATr5U D7YVE8xIJkcAgH/ZHIAz35Oe4qO9uWe2aKSQyuzg43Z2YznJ9e351U1W6ljjie3AQzkh8DkNxwPT OcnHfNQoBbWLiMqWVS3I4Hc4/pQBZsleCBpVLLLO3y4P8A6ZHuTn6Yqd5XSVQ8UUoBGTtAJPcDAx gdOQec+lVdHuZTA3mIrRxfKshBLZJzgHOOPpxxVppAimZ0VmckIrDIAHU4788fgaAO08PSJLo0Dx ghCz4Hp85yB7A5rTrO8PoI9GtgqKgwx2r0BLEnA7dc4rRq1sckt2ZGsKWuIgP7h7+9VVlhgADSoo HGC2Tn6DJJ/Cn+IEt2uYTPJsOwgcE5GfYVkyfZbeEtbtvdjgAggZA5JBHOOO/pUs6YfCXp9ZEQxA h3nkM4/XHOPx59gOazbm4nudzTSMxYbgoPAOT2+n9KgGSSTyTySTk57nNRzzmNA6ugyABk9B3OB3 68/TrSKHrjAJI6Y6cUpHPI/Gs6TUAoYAEk4Ck9u5J756Dr698YZHqTKFDIrAHOW5JPvjr9KANaN3 gkDxO0bjkMrEEfQip3uBdSE3RxM3/Lbk5P8AtAfzHPsayorxHBwwGCMDbgkew/P9KtxjeAAQxJJA AxxQBLIjRvtcYOAQc5BHYg9CPemnPUHNXY7SdoxCy7l5KFSGKN6EDoCTg+nXsc0SCrFWBDAkEEcg 9xQBv+FyT9qBPA2YH/fVb9YHhfrdf8A/9mrfq0c1T4gooopkBRRRQAUUUUAFFFFABRRRQAUUUUCL 8X+qT6Cn0yL/AFSfQfyp9QdC2CiiigYZoooFACg8fSlzTaUGgBaKKKACiiigAzS0lH8qAFoozRQA ZooooHcKKKKAAGlzSCigYd6WiigAooooAKM0UUALmikpaACijNFABRRRQAUUZooABS008jGaUUAL RSUmSPpQA7NFN980ooAU0UZooAKKKKACiiigAooooAM0ZoooAKO9FFABRRRQAUUUUAFFFGaACgda SgdaAPAvEH/Iw6n/ANfUv/oZoo8Qf8jDqf8A19S/+hmikUev2H/IPtf+uKf+gip6gsP+Qfa/9cU/ 9BFT1ocjCiiigQUUUUAFFFFABRRRQAUUUUAFQ3ZYWc5X7wjbH1wcVNUV0/l2kz4ztjZseuATQNbn DRyXCTNJDK9wgJDRg5HpkbhkA88c+2eyKTdR5OYTGZAgAI525AOffnI6+2aWC+lmdA8aFEJcNtGH xjAx6nIGRzz2xUd1au0sMTt87AkOpAwcZVWwcDIHTg8E+xzOsnEc0s0Pmo6yspRhgMMhcEH1JwuB kHn6ipVYvIEMbRzFjkyE7JCqjknqwGDgHjIA5BpWEUkCFDDIYgWZ42yXXoRz0x7Ac56ZGa0jW4MF vCArLAGV2bkhQpHIz6Hr2I4GMgAkRlkaa4YAqGOFRMAgqTyB2AyCAAc44x0RQCilIyyltzgsWLAN tOO+QMgdMEdiKUqY8PcLErMvzKCep3YwQDzkgcg8kjJIpQoWNUUM6klWAGQCABgYyegP1wfxAGOC zKzHJGQ2WILAEAgk5wc8Y6cEgYpm4YG0AoRgkdCcdBnI7ce3rnl6gDGGLIwGX2kZyD0IwcHkdOO5 7U2RWBYOo25GMnIOO+Dz1HX6e9AEeASCFzxjOcEYJ9Tzzjr196aDtYH5sk8ZGMc/0xUkh3MVVSAR naOSDj36jjPrzUa43jnJzgAjvzxz/nmgGeinqaSlPU0laHGcNrsyfbb0yIXWKQ7guNwBxyPXHcem TkYOc2CRtpe0kEigZZCOQPdT2/Sr+rkReILkt9x2IIHcEYIrGSZUmkj8l90LlN6uAcg4yDj2FQ9z rjsXzNBMQGVonOckDK5+nUfmfYUCKSJ8suFLbdwbGT7EH8uh+lVZdSihlAkhd3Cgk4GRnoc8DPTq Klt5H2iW1lLqQGKnggdOR/XpSGL5EbXLyLcSNKRtxOxbjPZjyBn1/OooZmXVPsjIV3xsGB74BYEY 69OvvVwSQ3PyuvlOeM9v6kfXp7UuFt50NwhxESVY8lQRg4I6jBPTg4FAFG6AOnSbxkpIrKehBzg/ Xgmq0SNc7olO1dp3t6Dp+foK0WgS5s7lIpo2VsEOrAgEHIzjpnHTrTIYkhtmCbjFGNzuB8znHYep 7DsPxNAD0VQkcUY2rysak8YHJJ/Uk/1IpY1F1eqMlYY8ck9AP6k/mTjvUUUjyW5lkXy5JsLGvOVj 6j6ZPPvgHpiqupP5aGyjJPIMpHcjkKPYdT7/AEoA9I0bJ0yIsmxizkrjpliavVi+EVK+G7RSSSC+ STn+Nu9bVWtjkluznPEw3XVuvcoQPrmsRiCw2n5VGF9wP8Tk1ueJQRcwuQdojIz75459ec/hWD0X A4J6c81LOmHwjJHVAScAAHkEZHTk45I5x75rEurkliFOAAAOSc1oanKY4tqnAfIPPBwcYwOnP+Oa wWYsSKRQrSEnGT9aaWPvmlAGck1IoTjIY/QUAMSVlPB6dq3NIu1ZnDnLBQQoGC56YJBHTOfzrIMc bDgkHtkUkbSWs6SAkFSCCPz60AdUrxsh25YcchcD+efWnSkOFkXPJ2sT1yMYz+BA9yDUMSoVVkQB WG5ME9COnPJHbPtVqJDLDOoYEgBxk8nB5x7YJP4CgDY8L/8AL1/wD/2at+sDwuMG6H+5/wCzVv1a Oap8QUUUUyAooooAKKKKACiiigAooooAKKKKAL8X+rT6D+VOpkQ/dr9B/Kn1D3NlsLRSZooGLRSV n3urRWd5HbPE7M4B3LjAySO/0ppOWwpTUFdmjmis/U9Uj00xq8buZASNuOMY9frRcarFBewWzRuW mCkMOg3HA/lT5HuQ6sFpc0QaWqI1KA6j9iG/zunTjpnr9Kug0mrFxkpbMWiiikUGaKr3t0tnaSTu rMqdQMZOeKgttTjuNOkvFjdVjDEg9TgZOO1NRbVyXOKfK3qXxR3rJj1xJrG4uYoJD5G0bSQN2Tjj GelXdPujeWcc5jMZbPyk9MEj+mabi1uKNWMtmWqKSs+31WO41KSzEbho85Y4wcHHHekk2NyjHdmj RRVPUr9NPtxLIjOC23C9c9c80JNuw3JRV2y5QDWAfFFsP+Xeb/x3/Gry6rE2qmwEb7x/Fxj7ufr0 qnTktzONem9maNFFGag3A8jjrQCcDOM98UA0UAVtRvY9OsZbuRWZIgDtXqckAD8yKz9G8RQ6xdPB FbyxlELlnxjGQMcHrz+hqr43m8vQxGD/AK6ZVI9gC38wKo+AIPkvZyOpWMH6Ak/zFbxpx9k5vcxc 37TlNjWfEdvo90kEsMsrugf5MYAJIGcn2NSPrsKaCNVaGQRtjEfG45baO+Pf6VxXjCfzfENyM5ES qg/AAn9Sa2PFA+x+GdLsujfJuHrtTn9SKv2MbR7sj2ju/Isf8JxZ/wDPnc/mv+NXdK8T2+qXq2sN tMjEFizYwMeuDn0/OuX8PWej3FtK+q3Eccgk2orTbDgAHPXnr19q67RtI0q1f7Zpx371KBxIXXGR nHbqP0oqRpxTSTuOEpy1ubFc5f8Ai61sb6a1a3ndom2ll24JwDxznvj8K6OvIryU3V9czgf6yR5P oCSf6ipw9NVG77FVZuK0PU9Lv01LT4ruNGRJM8NjIwSO30rAk8b2SSOq21w4ViA67cMM9Rz0qja6 l9i8B4VsSyO8KeoLEkn8Bk/WuVSFpJ4oQMNIVUD/AHsY/QitKdCLcnLZGc6rVkj121m+0WsUwQp5 qK+09RkZwfepawtd8QQaIiQpGJbgrlY84Cr6n0HHT2rCXxhqcEqG7sohC4yF2MhK+oJJB/L8q51S lLVGzqJaM7qisTV9dWz0WHULVVlExUIH4HIJ5x3wD+NYMnje4+yqEtovtJY5zkqq8Y4zkk89x268 4I0pS2QOpGJ3NFcTF43cWDma3Q3gOEC5CEEdTknGDxjPPHTtNoPiq6v9TjtLyKECXO1o1I2kAnBB J4wDTdCau2gVWPQ09Y8TW2kXgtpIJZW2B8pjABJGDk+1bFvL59vFMFK+YivtPUZAOD7ivNPE8wuP EV22SUVhHxyQFAB/UGtNfG92twCLWD7MOBGM7go/2s46e2K0dBuKcUZqt7zUjvqK57XvEJ06zs57 WNJRdfMu/IG3APbvyKzYfF1zdXNjbQQQrLM6rKTkgZbGF5HQcknPpjislSk1zLY0dSKdjss0vauR 1jxbJBfPZ6bAs0iNsLuC2WzghVGCfTPr+dUYvGOpW92Ev7WIIDh0EbI6g9wCT25wevqKaozauhOr FHd5ozXOeJPEUukXMEMEUcpdC7b88DOBj9ax7rxtdEoLWCEYUFzICct3wARgZyOc59qI0Zy1SG6s YneUZrG0fW477RmvrgLAIiVlP8IIwcjv3Hv2rBuPGN9PM/8AZlkpiTkl0Z2x6kKRt/HNJUpN2Q3U ikdvmiud8OeI/wC13eCeNYrhV3fITtcZGSAemMjjJroc1EouLsyoyUldC0UlFIYuaSiigBB9KWii gAoA5ooGcigDwLxB/wAjDqf/AF9S/wDoZoo8Qf8AIw6n/wBfUv8A6GaKRR6/Yf8AIPtf+uKf+gip 6gsP+Qfa/wDXFP8A0EVPWhyMKKKKBBRRRQAUUUUAFFFFABRRRQAVBff8g+5yxUeU+WHUfKeanqG7 IWznJAIEbEg9xg8UDW553GHVWmaYSQxtsRMYJJGB1BwOgweDn61dYxXCvG94HlI83Cg7pHJ6EkZH Hp78HIFMliit3lDlld2URfNtVWOSWx0HTHOMd/ZqpE9wJAFBzvDsMYHGSFGc4PTnB65xxWZ1lgxx XD+QCq7YRKXRMckglRjkkZI4HORxxmktQxiDqyyplV3AMoKgnqTyWIAwACMdcAHLba3i3SCO3LlW 8sMjYIwSQTnHIyM47kA4yKfFuO+TynO9wSqE4ABAyGPBPQevzD1oAcCJJXSOIlWUsixqoJHY9D7E AnJzkAE00ZnjTO9gZASpIxheedp5yCcjpkY4JNICImleaTzIjjy8KCGAJGdxAyMkE9+QMillAAMS pCqMSMSL0BPJ6nJBIGc++etAAUlCjzRukZRjaDtBLHpyOeg9vp0ix8u4AMCccJwQQMkgDHJzx7Cn 5IVgqocYchwXwCM8gjJAyRnr0waYQM71ByGwpU4OMjAIB4yAP/r0AMJG1gQCAxBIAx9ememP09ab GzLIrEDgnHf/AD6/54cyAZ2klgcYJBwOffP8utNiAZwBk56AY5/zigGeinqaSlPU0laHGcDrz+Zq Vw4XBjmZDx1IwQfxBFZUxUam6bXJlVZBhS2eBngDPUfz5rX1PC6xqK3LgRNLuQKcsMDqeOhGO/aq pbziBCPLijUAuxxgAk8nvyT+fFQ9zrjsY94jC6kaSN03cqGGDgDAP6UslxAltGUZlnRAvygg5Axk HpjvVq9t5ryRNq/Z4IwQry5DPk8kL1HQYzj60kOmxdlknYDndkL+Q5/MmkMisdSM58u5jeR/4ZI1 yfxA6/Uc/WtS4gjl8lbiaQYBzGo5wSMA88dOR79uaSJRBF5gCKoJCIgABYdScen8/pU+mwF7hp5R lI/mOeST2H9fw96AK7Q+TujKCKBWICouNxBxkZ69uSePWkWUECRiBGD8iKcg/wCI9T36DHabWHjg 0qWSZzK8sq7Ax9CSTj6AjPuBVBru0QecZPNP8ES5BzjgEkYA/X2oAnaUxK13NgtnEan+Ju3HoOp/ +vWdawS3LMyKHwSWdiAMk5PJ6n/GnIJNQm+0XJKxAYVV4yPQDsPfqfXOTWnDESquxWG3j9eAB1wB 3Pt3oA7Hw1G0WhW8bY3KXBwcj7x71q1m+H5hcaPDKFChmcqPQBiB+OAK0qtbHJLdnP8AiORVcJvA doshcHJAYcg4x35/CufY4AOTz1BHBrT8WXJi1mxhJws0TDn13ZH6gD8azByMY46YqWdMPhRi61IT MoB6qDjJI564J565rNA78k1o60rF4WOACu0gHoQT1Hbj+VURhVLN29qRQqhVILDIB6etXDdx4wiZ HP3gOPQVlPMzE44FLE4BwTz60AamY5MkqoJ6YGKhkjAXHBU+nOKan3cqCcdwelPQtI6xr8zMQoAH UngCgDasfMW2hUvuVYwMgEYz2zj0/H9K2tChN1qggHAkikU89MqR/MisyKMRqEB3Kvyg+oHA5/P0 /Wuh8HW5k1d5udsUZ5PucY/n+VAB4XJ/0oEYI2ZH/fVb9ZWmw/Z9X1aLGAsoIHoCWI/QitWrRzVP iCiiimQFFFFABRRRQAUUUUAFFFFABRRRQBei/wBWn0H8qfnmmRY8tPoP5U6oe5sthaKTJJOR+OaU UDCuY1//AJDtt/up/wChGunrI1vSnviksDKJUG0hiQGGeOexFa0pKMtTnxMHKHulLxb/AKy2/wB1 /wCYpNS/5GDT/wDdi/8AQjQujahe3KNqEg2LgH5gSR6DHHPqf1q9qGnXFxrFtcx7BFFszlsHhiTg fQ1rzJWjc5XTnO8rdUZBtZW8Rtbi5cSlj+9A5A25x19OKmvri+bW57a2mky/yqoYgDgHI7dv51bv tLvjqzXtm8ak4IyeQdoHQgg8Z/Opk024HiFr07PJyT97n7uOn1o547+QeymvdXf8CnqJuIRaxT6i LZViUOFZi5OOScDnn+tL4dvJ5L+WBp5JodhZS5JIwQARnOMg9KlvtLu21f7ZbiGQHB2yngHGPy4y Md6fpem3dpqktxOY2WRWyynuSD0x04NK8eRlctT2qfQt6/8A8ge4+i/+hCuYtri/SwlihRzasG3k R5GMc8/Sus1S3kutOmhixvfGN3A4Oev0zVSx0+eDRbi1fZ5sgcLg5HI70qc1GFmXXpSnUuuxjafI 8Oiai8TsrBo8MpwRluf0qa41G4i0C0xM/mys+ZMndhWPGfy/AVYttGu4tKvbdhH5kxQrhuODk544 4pt5YJBoNtFeSCGSJ22sFLDkk447Y/Wr5oN/MxUKkYfL9SGY6hY31lby3kjhmVuGPdgCDk8j6+tR LDc3Gu3kdrJ5UjM+WJIwM9j19OlQKrNqNkPtP2pyycjJ2jcOOeemSeBW9Y6bcQa3PdybPKfftwcn kg9KcpcpMIuo7dLkPhm7nm+0QzyNJswVLEkjOQRk9uB+tS+Kf+QYn/XUfyNLoem3FjPcvMExJjbt bPQk8/nU+uWU19ZLHBt3LIGOTjjB/wDrVi3H2l1sdSjJ4dxe5jaReN/ots1gjoWC+aV6gnrnHap0 48ZP9f8A2StnS7d7XToYZAN6A5wfU1STTpx4ja9ITyDz15+7j+dVzpyZHsZKEV1uiho13cy2epGS 4kcxxZUs+dpw3I9On6VJpf2q/wBEuMXMonWT5G3nsoOPp1/nUaaJqEMs8UEqLbygqzZGWXnAPHXn H4nmrFtp1/baPPbR+WJppDkhuikAHnHXjH405cu6ZEFU0Uk+pQsLq+1K5t7b7RKixgl2ViCRnqfw IA6+tdf06VzMWiXlnNa3Fs0ZlQfvFLYGe46dwcfhXTfhis6zi37ux0YVTSfPucb4/c5sI/4TvY/X 5cf1q34MmtrfQJHkmjTErNKWONvAHOfYCr/iHRV1m1RVkEc8RJjYjIOeoPt9PSuTPg3VS+CLbAP3 vMOPr0z+lbRcJU1Bu1i5KUZ8yRQUHV/EHygkXVySARyFLZOfov8AKtnx7Nu1G1gzxHEX/wC+jj/2 Wtrw94cTSWNxO6zXTDAIHCA9h6n39PTnNDXvDeoanq0tzFJbCIhVQO7AgAc5AUjrnv3qlVg6i7In klyPzMzTvCVzf2MV0tzFGsoyFZTkDtz79fxrt9Ksv7P023tdwYxrgsBgEnJJH45qSyg+yWNvbgg+ TGqZHQ4AGf0qfmuapVlPc3hTUSrqs5ttKu5gcGOF2H1wcfrXmemQebBqDYyI7Utn0O5f6Z/KvRtd s59Q0ie1tiiySbRlyQMBgT0BPQY6Vi6V4aurTTtThmeBpbqLy4yrHAIB6kjpkjpWtKooRfcipFyl ocpp8cupXFlpoP7sSMxI7A4LH8AvH/16s6Kq3/iu3ZVwjTmUAfwhcsAPYYArodE8M3enC8kkeBrl 4WjhKsSqkjqcgHqB0pfDfhq60vU/tN08DKI2VRGxJDEjnkDtn862lWj71jKNOWhzV81xqHiWfygH na4KxhsY+U4AOeOgHB4Naep6d4k1FUS+SOQIcr80YPPB6Vd1jwncS6i93p00al3MhV2KlWJySpAP fntTLXwjdXN4s+tXQmAx8odnLe244wPb61PtY2TT2HyO7TRn69HNY6BpFhcDEqmSR1DZA5456Hhj Vk20Np4BaVol8+4ZW3Ec5L8c+yjP51oeJPD17qt/HLavbJDHEECuzAggnPAUjuB+FWdZ0O6vNEst PtXhXyNu4uxAO1SOMA/WpVRWir9dSnB3Zj+CrWHy7+9uI1dYlCqWAOBjLdfbH61n+DYvN8QwPgBY keQ+gGMfzYV1Gn6JdWXhq7sN0Jubjf8AMGO0bgF64z0HpVTRPDd7pq3zySW5mmgMURRmIBPc/KMD OOmabqxfM77iUHpoc7pCx6n4miNxgxzTNIwPQ9WAPqMgcd6s+NGg/tzbCEHlwqsm0D72SccdwMfp 6VYj8FX4hcm4txMpUxhWYg9c5+UEHoQRnv8AWrekeD5o7xJ9SkjZUYMI0Jbcc5+YkDjPbnNW6kL8 yey2J5JW5bGT4nLQjS7OThrazTcPRiMH/wBBFdDpOj2GlaTDqV2mZ0jE7SEnK8ZwBnHfH1qtrnhj UNU1ea5SS2WF9oUM7bgAADkbcdcnrXSapYrf6XNZhtgkQKrYztI5HH1FYyqLljFP1NIwd22ji4tU 1DVL9v7H061hdSWDLEu9QeMljxk89vXrWS0dxe64sN3IZZ5J1ikbOe4U4x6D09K3tP8ADGt2k7CK 9htkcBXeNySR7DA5/EVNpPhS8sdYguZHt3hictje248EA429eQetbKcI35WZuEpWujJ8ZTGfxFMi 8+UiRqB64zj82rS8Y21vY6Xp1rFGisrHDAAEgLz+ZIqWXwvfz6+b2WS2MBuBKRvYttDZAxtxnAA6 1b8T6Fe6xdQNbyW6xRIRiRmB3E8ngH0FSqkU4q+iK5H72hz8xe28FWyKcC7uWdvoucD81B/Cn6HF r8diZNKCC3lYsSfLySODnPOBiumufD63Xh22055FSWBVIkUZG/GDxxxyawE8Ka0kbW63cSW78som fa3/AAHHJ6fkKFUi4tabg4NNE3hrQ9Qs9ajubiNEiVW3YdTyRwMD3rt6ydB0SDRrZkRvMmkIMkhG M46DHYDnj61q1y1Z88rm1OPKrC0Uhoyeag0FopKKAFpDRmgnmgABPOcdeMelKDyKSgdR6UAeB+IP +Rh1P/r6l/8AQzRRr/8AyMOp/wDX1L/6GaKRR6/Yf8g+1/64p/6CKnqCw/5B9r/1xT/0EVPWhyMK KKKBBRRRQAUUUUAFFFFABRRRQAVBeuY7G5cLuKxOwX1IUnH41PVfUSV027YcEQOQf+Amga3OD2sQ rXMZkMhPz4zsUHAYEcgE5xn2NOgBlIlsHYRhSXJXc74ONpHIxxwOpzgZzUbsVs44FVvPcbSyjbub IyBjqMc59jz0q1Z2vl3ElurrAsjrgxyfMoBLAA55JxggE8njrWZ1kjRsphVIjOIpMM4fvnJODgg5 AA5IOOM1HbwyCUJvLJE4GXxh8AZ2kDCjg9TgYHPUBRDJZEy3DhyGKzoVChckAZxgk/MCQB1zSQeX FbHZKplJDEBtwQkgkDAAAJByD1A4OeoA5SHjRd29GbY3mEjJHOQQRg5wc9ewAGaTLmJmulZWGXCs ASAWOchgeeTgADrxxxQInJfZiIIrFXAJJUkhgMcZyeOTgH1xSkMYwE3kg5GQQAQCCCQRtzgHnOSe vWgBhYsCiktjGCWbIYjJAIwCQMZABIHTJprsBu4ByvQsME8EcfTHft04p+Sz+XIh3A55UkAYGMDH Prx1AzjB4YWcqSHOGGQVYEEnk98Z596AGMxU4UkY6Hkc/X/PAp1uSZkGwMSwHAGRk9Se2Tx+PUUx iDnGFOT0GO/4+gqS0ywdSwCHkgcZAIzj3yR270Azvz1opT1pK0OM4XWVtU1i6dyXcuTtHQHj0/z7 VWkuXVFLMttET8o/iP0A5PpkD6mk16W6Gt3YgEEWJD+8Iyx6c85A/DB96zFtCzFprhncnJbGSfxJ JqHudcdix9vt1BKQyyv/AHpCAMeuAT39artdyX1wlsNwDnHzPhQOpJAAHABqVbWMEYSSQ/7RwPyG KftNqwlVY4SpyCQB+Bz1HbFIZbRRLOEiXbDEuFXPAA6D6kn8ya0hhF8mNkCxgszngE4ySfy/AAel U4JyturvHGnmYdQmckdiST0OcgfQ5PaDUbpbe0ktxlp7hCGAJwin19z2Hp7EUAalmJtRCXNod9ie CGAJBHBDDnJ78+tY2r6XDa6u+2NQhVW8pQQFYgE5Hp7dOfwpmj6peaVE0duYmjYlgjqTycDII+g4 JqefUJLmVp2hQSuCxdmJBwBwBx6Yxk9qAGrGEVZZgWJ4SNeCx6fgOnP5VCwe+kBkfEcY+YqflQdc KOxIwO54Jz2oMTyuZbqQqDjIIG4+wHQD+XpVgKGjUlSsKnCooyWPoM9T6k/jQB2fh4q2iWxRQqjc FUdgGIFadZ2gAjR4AQBy2AOw3HArRq1sckt2cJ8QQwvLJ0yGSMlSOxDZBqvHMGiV0yBIoZSOuD1H 4HI/CtDxuoa8tQSDiIkDucN+X/6qwNMulkka0YBQDmM+/cZJ7/zHvUs6YfCT3lt5kbIeC20gns3O Dk+x59j3rnboNGRGwIYdRXXq3nOQcITxgjjIGACKztQsreQ5bccEqr5wQPcY59fxNIo5iitebRJV ZvLnicA4GcgnjPTGP1psejTk4kkiQfiT0z24/MigDPjlZOOo6Yrb0qyKkTyBvMI+VcYKg8En0JGc D059KmttNhtirhS7j+J8cH1A7d/0xV/b82AMtnPA7+3WgBSQoIHBAzkdPyrv/C1ibPTQ8igTTHe3 qB2H5c/UmuZ0PSjdXZnuVPkodwU/xMeQPoPSu7gPA7e1AGNLHs12+b/npHE36MP6VLT71f8AiZu3 rCg/Jn/xplWjmqfEFFFFMgKKKKACiiigAooooAKKKKACiiigC9FxGv0H8qcMA9aZH/q1+g/lTx61 DRstg70tJijH5UDFooFGeKACj6UUUgClpKKYXFooooGFGaM0UgFFNkRJUKSIroeCrAEH6g0tKDTB q+jK8Nja2774beNH6blUA/nVmjv7UUNt7iSS0SCiiigYUUUUAFFFGRk8g464oAWk69sUZpaACkpa KACiiigdwooooABR7UUd6BhmlBpKKAFoxzSUZoELQKAeuaPegYUUA0ZoAKKM0UAFBoooAKKM0UAF FFGaACiiigAooNFABRRRQAE0UZoOaACg88UmT60cigBTQOSKSgdaAPBNf/5GHU/+vqX/ANDNFGv/ APIw6n/19S/+hmikUev2H/IPtf8Arin/AKCKnqCw/wCQfa/9cU/9BFT1ocjCiiigQUUUUAFFFFAB RRRQAUUUUAFR3AVraYSAlCjBgBnIwcj8qkoYBlKkZBBBHqDQC0Zw7LYREBZJGYE8KAWALHJXjOSC Dg8nOOxzJElqkjjdMW3hgVUjBBGeSBglixyDgjGffQk8OSC9MkTwmBi27eDvIxlRyCCQ2DnjoOOo pI/D91EjiIwK8jbmJlYgHdnIymQeByMd/QVFjp54mX5llDMgleWIqwDCRCSwDAliCDknuQOO5PIF thbTspeSRInBdEYqACTnB4IHTPoOgyOtuPQr4bg9zENxABVjlVweASvPX2z7U1PDtyJYi8kRRMgg OeQQM4G3A5BI5wMgUWHzx7lIxWO4ofOaGNiwWMkkAjJKkjJyeQPQg9uJClmsQkRZdxUhVUAAK2Op 25JwfcgjqatDw/dkPulgjJXC+WxyCBjklehwCR06jBHNH/CPXIkDq9uCQwLbmB568AD+fr60WDnj 3MjJG0rsAUnIABBBPJHGCOeeoAA9sRhlZgOCFIKgruJPGAfUfU85PFbC+HrwEEywFucsZGyfTOVI 7DkY6fjQfDt6wYNPbnd1O5ienTBHPPP+FFg549zIiEJJ88tsAyuBzkkYByDkYB6Z/M4MkQtlhcCV w7YYZTgkZBwcDjnH4H2zf/4Rq9IGZLUnqQXbHp/dqxZeHHjuFe6eIohBCxkktgdCSBgZ54+nFFhO cbHSHrSUdeaKs5jhdYmsV1q6Vo55JPMUMEIPruIGM8ADA9+tQgKwYRwSxDa5BkUKcg/Jjd1BHXjr nkDr02raJJdzma0uBC7Y3qwOCRxnI5zjHrWd/wAIvd8k3MLNjjJYj+VQ0zojONjFS2knuESa6kMe AXW3yWGQM9FA4PrnIxUcFnYIGLLLPOozGXUY3ZwQR7cHn1P0PQf8I1dqERLiEICGcktlj3J4/Ac8 U2fw9qskrmG5srdHYksgZn5JI5I44xyO+aLFc8e5n3U8draQNMhF02QBgcAA4OO+cAAkcHnkDFZV rHFOxMrzvOXBYoN2VJ+Yk9jyfb19+hXwhKjF2njnc9Wmdjn8AOfxzUq+GLo4V7mBYwfuxggD6DAF Fg549zBNvbiGISTOjBfnSMBiTkdDwAcZ456DnnAt3AiChrSOQAFiXn9Cckg5zzjnoMY78jUbw1dq CLeS1jHQsxZmP0O3A/AZ96gXwhcPIZLq5jkIBAUO3zZ9WIyB7D86LBzx7lGGK1dopUcSxZUSSFuF 65xjrzgYH5+qyy2zDZamdpGUqXZQTnIAAwQAMZJx3wMcmtN/DV7Kyq09ssS8CNdwAHoBgU5fDN1k R/aIIoOQzR5Lt9SQAPoPzNFg54mzosaR6XEkTl0DPhiMH7x4IycY6dT0q/UNrbR2lrFbwgiONQqg 9T7n3J5P1qarRzN3bZzHikW63cL3EczgRHaYyMKd3UgnpgkdOv41x8kVrE7S+VMVEm8OuMbQeR1H PbH5Ed/Q9c0hdWgQCUxSxklWxkEHqCPT37e9YUvg2aSExG6iAYZJweCDwQMfn9BUNO5tCaUdSlYX mnX5Ta1yjqcFn2kke4HU9efw+li6W1iWNZIJCScEhgQwwc4Ofcen4c5baeCLy3mWT7bAcdlDDPt0 6VtHQ52gKNNETjK5UkA/iKLF88TFLWjwhkSZApYKGIyDxjPJycAfn2xyNNp27AinwOVGf0PPOPbH QfU7dtoTrEqXX2ZyGLZjDLz9CT6CpxokAOdqg+oJHGc44PSiwc8Tmo1eeULCAigYVSTnBzkgEnPJ J68evStfTtKkJDSAKuCBlQTgn39cnn+fFbEVisWAoQADAAFWFjKkcjgYosHPElt0VECqAFA4wBx6 /jzWjEwwOorPVtoxipkuFXGVJ+hosHPEbff8f5H/AEyX+bVDUs8xmcHGABgCoqpaI55u7CiiimSF FFFABRRRQAUUUUAFFFFABRRRQBdj/wBWv0H8qeKZH/q1+gp1SzZbC0ZpAeKWkACsC61tLDxO8F7d CGyFqrKrLnLluuQCegPtxW/msyPTpV8Sy6izRGB7YQhcktuDA5IxjGB1zn2oGjP0vX1+xX95eTtN CLxobcIgLMpAKqoABJOc88+tLrGuk6BqMtkZrW9tCgdJYwHTcwwSDkEEE4PNMbw/dG3uCssC3H9o m+gyWKkdlbgY4znGcUl7oF9fWurSSyWyXl+IlVFZjGioQeW25JIHp1+vAPQng1doNW1n7bPiztI4 WUFR8u5QTjAySTjjnk8VZXxDamO4Z4LuKSGHzzFJEFdo84LKM4IHfvVS88PTXsutB5Y0S/WERFSS VKAZ3DAGCQOhPHvU9vpl3c6ob7Vfs2RbfZhFAzMGByWYkgYzkgDH4+oGhaGt2bX1laAuZLyMSxna NoBBIBOeCQDgYNWNNvodShM8AcRiRowXAG7acEjB5GePwNc5B4a1CHT3H2i3N9HLE1tJubaqRjCg 8ZzhmyACORzXR6VZrp2m2touCIUCkjoT1J/Ekn8aA0OX8P6vNfvbG61/bcPLg2ZgTLgHgZABGQOv vUkGuzqNEkFzcXcNw1wJAIFV5dowoCjOME44I9TgVs+G9Ml0rSI7W5MTSqzMTGSRgnI5IB/Ssm08 P6lZw6P5Ulm0tgZ2cMzbW3ngA7c9OCSBjrg4xQPRmsuv2TWBusTgib7OYPL/AHvm5wEx6/jimN4k sY7bzpFnjCzi3kjePDxsQSNwz0wCcjNZs3hm5uLGVp5LdryW9+1tHuYRHgjZkDcOCeQM/wA6cnhu dbaNUjsoHF7HOyRu7LsTPG5slm5PYCgLI6O0uFurWOdY5IxIM7JV2sOccjseKmFITkk0UCFzS00H uRzS5oAWiiigAzSAAEkADPX3paKACgnHqfpRRQAUUUUALRSUUALRSHpRmgBaKKKAuFFFFA7hRRRQ Fwoz2oooAKOp5ozRQAcDpSikzRQMXI9aBjPWkoHBoAPpRmjPNFAC5oJpDRQAoNIetFHXrQAUuOaT NGT60AFFFGaAF9qSgmigQUUd6O9AAaB1ooA5zQFzwTX/APkYdT/6+pf/AEM0Ua//AMjDqf8A19S/ +hmikWev2H/IPtf+uKf+gip6gsP+Qfa/9cU/9BFT1ocjCiiigQUUUUAFFFFABRRRQAUUUUAFFFKP vD60AN3LgHcuCcA5GCfSk3rv2bl34ztyM49cda5DQsQ3dm9781qZJUtWP3Y5d5zuH94jofwAzzUZ WD+wzGVX/hIftHGV/f8AmeZnOeu3b36Url8p2YZS20Mpb0BGfyo8xCcB1z0xuFcXeW48zU7porcQ xakN8yqROg3L91ugHPf1PtWxHp1kPGLILO3CC0WUARjAfzcbhxwcd+tFw5V3NwOjHCupPoCCaA6M Ww6kr94Ag4+vpXF6B5f9mlbZtOF8YJhGqREXO7DYy2cfp0xViH+yf7MiFqn+nLp8gkMS42nZ8wlx 3znGec/hRcOU63cOORzyOev09aWuXs1uheeGjcNbmPyH8oRoyso8peGJJBOMdAOc/ho6k+sLq9kt iimyOPOJA9TuyTyBjGMd80XE4muSAQCQCegJ60hZQSCwBBAOSOM9KyNcKw3mlXUh2wQ3B8xyOEDL gEnsM8ZPHNY9/JHI2pXiMrWrXlqFlHKttADEHoQPUcUXBROuLqpwzKD6EgUeYnHzrz0+Yc1z3iNr DUNHe7h+z3LJLHGJQoYqN4O3OMgYPI96h1TTUbXnt7SysSqaeSscsfyr+8blQBw2Twfc0XGorqdS SF6kDnHJxzQSACSQAOpJwBXGSj+09P0+ytorm5jhs/NO0qWWVgVTcSR0IY8c4xxWrqF59v8ABc9y eGe3O8ejAgMPzBouDjY3SyjqwHGeT29aRnRMFnVQxwMkDJ9s9a5LVVuhPJ9ra3ZjpU2zyUZQBxwc k5P0xSg2yz3bailqztbQfZfthwhj2DcFJBwc56DOaLhy+Z12Ru25GcZxnnHrikDAruBBX1B4/OuW 0xribU9PewEEDHTM7bjdIFXzegIIJOcYJPTPtUliMeAJxgf6ifp06tRcXL5nSB0PR1PIHBHWnEgE AkZPQZ5NclPbCx0uxnmjsYEa6tn328RQ4GSS5JOTg9R71fu720k1jS79biNrNPOiaYH5FYqCAT0G fei4OJu7lzjcuc4xkZz6UoIyQCCR1APIrk5fJnsNRkUM8lzqBNgycFpAFCup9AQcnpgHmtXw8y+T cpNkX6zN9r3Yyzk8EcD5SOnbAouDjZGvQCCSAQSOozyKyNGfWGurwaoiLCG/dEADuemOSMY5PP61 CbmDT/EGpyXkiwJNDE0bOcB9oIIB7kHsOfai4uU2zIgAJdQCMg7hyKUsoAJYAHoSQAa4yxsJZZtL t2t7RpV00sUvIi6gGXIOAQQcEfgTWt4js0urfTLRlRQ9wIxtGApMbAEDsAcEfQUXKcVsbpYAgEgE 9ATyaQSIejqeM8MOlchBJJqGpabf3CEOJVtQG65WNi5/FiR+FVtKNt/wj8y7tN842U3yxxEXGdpP zNnBGOvA4xRcOQ7jcoXcWXb65GPzo3KW27l3emRn8q4i5iY6ZNppQiCCJr8HHG1owVUfR2Y/hUep LD9q1EObUOYrcoHQmZsIMiJhnaeACSD2pXGoX6nd7l3bdy7umMjP5U4kAgEgE9ATya4jUrfzn1u4 NvBsjeFnd1JnjBVSdh6A9c575q1qs0txfz39tBPOumlFikUrtyp3S7skE5BA4B6U7i5PM6wMCxUE EjqAeRSGRBjLqMjIyw5FcsXWLWdQ1e3yyQvCZMc74HjXJ9yCFYfQ1mWggU6d5509R/Z4Gb6MumfN boARg+/pmi4KHmd8DkZ7UUyAoYIjGUKFAVKDCkYGMDsMdPan0yGFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAXY/8AVr9BS55pI/8AVr9BS1JqtgBpc0UUDFqiNRB1xtN8o7hbifzNwwQWxjGP1zV2ufvX OneKl1CeOU2ktp5PmRxlwjBs4YAEgEYwcd/Y4TGtSW88Rx2qaqxtXb+z2jVgHA37zgEccY/GtJdR tWv2shKDOsfmMuOAM469M+3sc4rkNRguLnR/EN6tvMqXk0PkoyEOyqwBbbjIBzkcetX57O3t/F10 XtQBLaFoWEOQZDnJBAwGIzknH60DsjqPMTaW3ptAyTuGAPUn0qlq+qx6ZpxuwonywVEVwAxJx15w Bzk81y8djHaeELN/sRaS5kjFy8iO+xVLYZkBBIUcAdORkGqj2bvpF8pt2fbqCNH/AKOU+VgMlVx8 oIAyB7ZoCyOqu9amsrW6nnsCFt40f5ZlYOWxkA9eCeuOcVci1O1lvI7QSYuHhE2z0UkDBPTOT068 Vyut2bJP4jWC3YJ9nt0jVEOMArwoHoB0HTFXPskFv4rtpGtVXzbJTG5hJBn3cEkDAbAHJxx3oCyO qDoXKB1LLyyggkfUdqBIhGQ6kY3ZDAjHrn0964Pw/ZzDUNO3747yKRzOFs2DDJOfMkJG4EdDg9cU +0sUtvBImNg0tzcMEmDq5KoJDglQQSAADgYBJyeKAtY7K6vrW0s3u5plECDJZTu9sDGcn2FMW+L3 dtHFAZIJoy/nb1AUgZAK9ST7dK4wWTTaV4hUW5lCmOWD/RjEM4ILImOMj05I69avxw+ZqWlvpsRi UWEqowjKBZPmz1Ax8xJ/XmgZ1qspdlDqzKeVBBK/UdRSiWNmCiRCTnADAk464HfFcVpNsouNDSzt JYb+CRjeyNCyELzuDsQA2e3JqCPThHo1vcpaMt4NVB8wRkOF3HvjIXofTPNArHfUfSgnk+maM0AK DkUtNo7UAOopM0tABRmiigAzRRRmgAooozQAUUZpCwAJIPAzwKAFBpc0gIYAjOCM80UALRSZpc0A FFJS0AFICCetLSYGeAPegBaKKKACgUgIyR6UUBcWikxS0DEpaKKAuFGaKKAuFFFFAXDvRRRQFwoo ooC4UnQ9aWkNAhaSjNLQAdqB1pDQBg9e9AHguv8A/Iw6n/19S/8AoZoo1/8A5GHU/wDr6l/9DNFI 0PX7D/kH2v8A1xT/ANBFT1BYf8g+1/64p/6CKnrQ5GFFFFAgooooAKKKKACiiigAooooAKKKKADA xjAxRnnPfGPwoooAMUUUUAGB6Uevv196KKACiiigAo7Adh0FFFABgelFFFABjHQUYHpRRQAYoIBG CMjrg0UUAHvRj2oooAKOxHY9RRRQAf0ooooAKP6HNFFAB3z3ooooAKMD0H5UUUAFA4ORwfWiigAo oooAPwowPSiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAuR/6tfoKdTYz8i/QU4VJqtgpa TNAoGKKrtf2qXi2jXMS3LAERFgGORngdegzU4rjNcVk8QX15GCZLKO3uAB1IDYYfTBJ/CkNanWtf WqXi2r3MS3LAFYywDEHPQdexqxk4wCa4qEi68R2GpDlbu+lWNvWNECqR9SCal0vW9VvLm0uRHO1v cXBR0MKiJUJwNrg7iw6nPB59KLj5TsMnOc81HcXMVrA09xKsUS43O7YAycDJ+pArkI9V1f8As6C+ F6jF742oiaFSpBJAJIwcgjsRxTNbubs6Z4h0+7uPtK2vkFJCgViGYEggADjjH4/gBY7fJHc8UAkZ 5ODXMXN/qNhd3NtLdrcF9Pe6RxGq+U6g4x6rxxnPb3yn27Ul0qwkmvma4v3QpHb26l9u3JVdxC5P BLHgZ4GKAsdQSSMZ4oBIOcnNcdFrOpzafaBZ/LnbU/sbO0aklcZ+YDjIzzjHTrTp9b1CxtdVheYX E9tcxwxTGNcgPzkqMAkAHHueeKA5WdeTkg5PFBJ7kmsTQLvUJrm7gvUnMce1onuI1SQ5ByGCnHUZ B9P0pXmp6jFe32mxTD7VJcRC0Yovyo4LHjGCAFIJOetAWOmmmSCJ5ZnWONAWZmOAoHUk9hSxyLNG kkTh0dQyspyGBGQQe4IrkTrN3f2M80Ui+Tb6aHmUxqwM7ZGMEHgBScdOmRSWiXc3iPRXa8K+ZYrK FWJQFXA3KABjnB56jPHSgLHWW9zDdRmS3lSVAxUshBAI6j6ii4uYbWMSXMqRISF3OQBk9Bn1NcTp 1zfafpkN1DcgQPqLRNAYxhgzEE7jznjjGBW342BGhgDGRcR4z06mgLG39pgF0LXzk+0ld/lbhu29 M46496rLrOmtd/ZRf25nzt2CQZJ6Yz0znjHWuf013Sw8QGTcNcVZDM2eSNp2FO4UDoPX2Ipk8NkP hurqkYHkqwYYz5m4Zweuc5H5jpQOx0tzq2n2kxiub23hlABKO4BAIyODRLrGnQCMy39sgkXchMgw w6ZBzyM5FctGt9Jr9yY7S1urj7DCZUuTgAlRkgYOTnIxx9adBBbf8K5kkiHmN5Tne6AMrb+QOuAD nHPPXvQFjpBrelmNpBqNsY1IUt5gwCQSAT6kAn8DUttqdjdrI1teQSrEN0hRwQg55J7Dg9fQ1zWu QBfD2hC3ihEr3NvjcuFZtjY3YGSM9fYml8QR6hD4XvvtcNhFueME2QYZTcM7s474H50BZHR2mraf fO6Wl7BMyAllVwSAOpx3HuOKedQsxZfbDdQi1IyJiw29cdenXis29h0mO5s3GyO7WFxaiPI3LsOc 4GMAZxnjriuVf+0v+EATd9j/ALPwMYL+d/rP++ev6e9AWPRgQRkdDRSD7o+gpaBBSc5znilzRQAZ ooooAQkAgZ5PSlo/CigAopOc9sfrSg0AFAoooAWkJ9qKKAAHIBwfxpaSjNAAeRSikyD0oFACnpSD PelNJQApopCQBknAFFABmlpKO9AC0UlFAC0hOATgnHYUUUAGc4oPXNB6iigAooozQAUDrRmgdaAP Bdf/AORh1P8A6+pf/QzRRr//ACMOp/8AX1L/AOhmikaHr9h/yD7X/rin/oIqeoLD/kH2v/XFP/QR U9aHIwooooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQBcj/wBWv0FKDTUP7tfoKdj35qTVbAe1LSUtAw71XewtXmnlaENJcR+VKcn5kxjB GcD6jBqxR1FAFVNNs0FoEgCizyYAGPyZGD35z75qOLRtOivBdR2qLMGLqckhWPUhScAn1Aq9RSHd lIaRYC3S3FuPJSbz1Xc3D5zuznP4dPaln0mwuTdGa3Dm72eedzDft+70PGPbHvVyloC5Qh0bToPt HlWqqLhDHJ8zElSMFQSeB7DA6egp8+lWNxbQW8sAaK3x5QDMCmBgYIIPQetXKWgLsoRaNp8SRpHa qqxzi4RQzALIBgMBn0A46e1PfSrGUXQkt1YXZBmDEneR078Y7YxVulzQF2VbLTrTTxJ9lh2eYQXJ YszEDAySSTjtzxTnsbWW/jvmhU3USlEkycqDnI647nqO9WQaKAuUotJsIre5gjtlWK5JMyhj85PX nOR9BjFDaVYvLauYPntFCwkOwKqMYGQeRwODnv61dFBzjigLlH+yLD7Mtv8AZx5Ky+eF3tw+c56+ p6Zx7VPeWdvqEHk3UfmR7g+3JHI6HIwan+tFAXK5sbZtQW/MQF2E2eYGIJX0IBwevcHt6Cqq+H9K W4E62MYcNvAydob1C52g/hWnSYoC5ClpBHey3ixgXEqhXfJJIHQYzjj2FQx6VZR6e9gkAFrJndHu bBycnnORyOxq7RQMp3el2V7ZxWtxbiSCIgom5htIBA5BBOASOT3qO00TTbGOeO3tESO4ULKpJYOB nAIJPqfzrQooC5nWmh6bZSM9taIjsuwsWZiFPBAJJwPpipDpNidMGnfZx9jHSLc2Ou7rnPXnrV2j NAXAcdKWkzRQAcHB5GKcKbRmgBTS02loAWikznOKB0oAWiiigAooooAM9vSiiigAooooAKKAKM0A FFGaBQAZooooAKD1ozRQAUUUDPegAzRRRQAdqKKKACiiigBAaUdaKB1oA8F1/wD5GHU/+vqX/wBD NFGv/wDIw6n/ANfUv/oZopGh6/Yf8g+1/wCuKf8AoIqeoLD/AJB9r/1xT/0EVPWhyMKKKKBBRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAW4 /uL9BTh1pkf3F+gp9SaIM9aM+9FAwe1A7hmlBpO9AAoGLmijPNFAC0UlFAC0UlLQAtJSAY75pRQA oozR3opWAXNGKTPrQCM8UDFopO9LQAUEZ4NB7UUALRSZo+tAC0UUUAgopM0tAXCikNLQMQjIxkj3 FLRRQAZooooAM8UuQBSCjvQAuaUGmj60UAOozTc0o6c0ALRSUGgBaKaDkc5HsadQAUUUUAFFFFAB RRSZoAWigGkJoAWikzS0AFFJmjPftQAtJQTxSUAOopvOcY49aM9hQApoHWkpR1oA8G1//kYdT/6+ pf8A0M0Ua/8A8jBqf/X1L/6GaKRoev2H/IPtf+uKf+gip6gsP+Qfa/8AXFP/AEEVPWhyMKKKKBBR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AWoyAijuRTqan3F+gpw96k0QtApPpR16UDFoPSiigAwOlLj9KSj3oGKPU0cke9HBGaBQAdqAecUU UAFLSYopALSDOe1FLnmgAFLSUCgBc0tIKOp4oADmlzScj3pe1AwzRRQaACigHIooAKKKKACgn1oo P1oAM0tIOBRQFxaKSloAKKKKBgKKKKACiiigAooooAM0uaSigBQTzk0E0gooAWgn8aSigAByM4I7 YPWjvRRQAUUUUAFKDSUdqACiiigAo+p5oooAKO1FFABSc7hjGO/NLQOtAjwfX/8AkYNT/wCvqX/0 M0Ua/wD8jBqf/X1L/wChmikanr9h/wAg+1/64p/6CKnqCw/5B9r/ANcU/wDQRU9aHIwooooEFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBa Q/Iv0FOzTE+4v0FOqSxfpRRQKBi5opKO9AxaKTNLQAE0A0UfhQFxc0UgzS0DCijPNFAAKD1o5z0/ WigA6Dk59+lLRRx0pAFLSUZoAXNA60UDBJwQSODQAtFFITgfSgYtFITwKUetACd6DSn2pM+lACjI FGaKKAAUUHpR2oAKKKOc9sUAFLSUUAFLSUUAhaKSigLi0UUUBcKKKKBhRRRQAUjMFBJIAHUmlooA KKKKADNFFITgZPSgBaTPOO9AIIyOR60AAdBQK4tFFFAXEJGccZPQUUHGQCBkcg4paAuFIKKKAClH Wk4Geg9aCcc4JA5wKAPCdf8A+Rg1L/r6l/8AQzRSa4Sdd1E7SM3MnB7fMaKRoev2H/IPtf8Arin/ AKCKnqCw/wCQfa/9cU/9BFT1ocrCiiigQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAiyn3F+gpwwBwKan3F+gp2ak1WwD1paTv1pc0AFGaK KADNGM96KDnsCT6CgYUd6WkoAWgHjng+lFA5NACj8aDRRkd6BgOtFB4GQaKAAGjvRR1GKAFopAKO /XigBaXgUlLQAE80e9FFKwB+NAooosAcg/8A1qO9GfegUWACeaO1Bo/GgBRSHHegH1oOMUDFBopB RQAtFANGaACiiigAooFFABQDRQAB0GKAFpKKKAFopKCSCPSgLi0lJk7unBGQc0uaAuLRSdqO1AXD 60dvaiikADp7UUY4opgLmikFBoAKKKKAAZyc49sUUEE9jVe5ure2hZpp1jVRktnkChJvYV0iwQCC CMg9jQOCOaxD4n0mNObiSQqOSIzz71g6r4knvQ39l3UscY67YiGH4nNaxoyl0E5WOC1//kYNS/6+ pf8A0M0VXu3drycyPI0hkYsT1JzzRWfKbHs1h/yD7X/rin/oIqeoLD/kH2v/AFxT/wBBFT1RysKK KKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAWU+4v0FLx1pqn5V+gp3GPakaLYMgHHPNLQDxR2pALSZ5xkZ64zzRSADOcDOMZxzQA6j6UU CgAGcnOMdsCjqKKKAFopDyKWgYClpKM0BcWj3opCfrQMWijtRQAUYoooAPr0paSlpAFFJRQAtLSU UwCiiigAFLTeQMAD8aWgBaMjFNAwOpPuaWlYBR0zRRRQAZ9KBQMHtS0AFA9aO1GaBhQc9gPxo7UU AFGc5xgkdgaKRl3AgEqT3AGaAF9DRR9SPzqOWeKBC80qRqOSWYCnZiuSU0MXBKggg4wwIrOfXbEI zRSNMB02DIJ9KqX3im10+4eC6il89MfKgyDkA8H1HpVKnJ6WFzI3hwOaCwBAPU9KxI/ESTorwWcz qfvZIBUe+f5Vn6t4xbTZAosGlRlDLIHwpH5daaozfQFJPQ6s0VwE3xAlMG6G3jE24YQ5Klcdz1zm iL4gzgKJrKAE9SrnH5Vf1apbYZ39H0rkrnxdKkamKO2LMCQdxI6ZrGh8T65qN4LeKZLdmbA2Rbj0 z37DuSaFh5sSkmej4wMngDnmqFxq9jaqTNcKoHr1P0HU15ve61rjmSP+0HlQHH3dufcYqDTmlMwu LwTtHEQ0gAB4JwMEnjJx1rSOG/mBt7o7mXxnpyNhYrhwOjFcA/nQPFsEkReKNRtUsy7wzAD2HA/E 1xt9qU9wCzNEsTMSEBDFR25HXilsY3s4E1O3UxKm7eJF+Vm6AADkgj8jWnsIInVm7b+Jr+6UTada yXUihhLGSBjJyCAD1A44psnjW9jO02kasOokyrA9wQR/WuT06S6i1Ez2krWzs2SUUkAE9CD1Fb2v w3sGnxzzvDdQyOS3loVAJ6kjr/Sq9nFSs0OyWw9vEN9fxLI8dxKu9tywMEXbjgAjnOc5NJNqus6t bvb2lisNrt2MEG4kDsWPGaXwpY5tbtpRHJHKuI2DEFDz0PQD1B9BVeCeG2nS0urpdiEjcmQG56kj gntkdqdo30WxLdnoV9PtLf7SLe4eRZjjcHOA3JyOOcAY4HNWruPUNIgjhstjQMWYkMCRk8ZYYyD2 yMjpXVS6fplxYKDDGyEAhlxkZ75quvg/Tkh3vPcbH5xuqPbLqJPmPKLpme6maT75di31zRUuqRrD qt5FExMcczqueuAxAorludJ7HYf8g+1/64p/6CKnqCw/5B9r/wBcU/8AQRU9SczCiiigQUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFhfuL 9BThimp9xfoKXNItC0uKQcCjjHNAxaKKKACgUUUgFopOelRRXCSs6qGBUnJKkA4JHH4g0W6hcmo7 UUUAFLSUCgYtH1opMjvQFx2aM0lANAXFzRmkOMfSgEEZHINAxaKKKAAUd6KTBznPHpikAuRnGeaK KPrTAWikozSAWikHA6596WmAn9KdTcEdTRQAtFGKh+1QmQxiVDIBnaCM/lRa4rpE/wBKKx/EOqS6 dZwm3i3TzyBFDHGM9cntWTdjVrPSIblrlI7l5CXl35QDJwoU9c+taRp8yE5djrh3qOWeOFVMjbdx wvqTjPH4CuJvvGs0qCHToRkACS4YZAPfaD1GemayItdvTqEbiYXc7fJtmUuoz6AcA5xj8quOHk9W PU7O98VWUOVtQ13JjOE4UfUmsCfxxeeZsjtolJ9AWx+Nc9JaTx72uvKt23FWMjHJIP8AdHQUhuIL dQrTTuMcKCI1P4DJNdMaEEu4jYfxVrc7FT+6U/xIgH6mqF1qd9K6NLeOyknKmfaD+XPFVY5PMYNH bpzzllLfqxP8q27J54ots1hHJnlXYBdv0AFaOMY9CXoVBPJdac8SzgXEeXDqXYhRjgHuc1nG3ebI le9nY8nEZPP4mtmWeQOR9puolPXy9owPy5qpctfJAZ7fUXlhLFf3gK8gZxkHFC0Em+g20spIlQi0 mCK2794wUD3P/wCurU0FxO0/l3EMkIcuGClskjkk4yPT8KydN1G4muJN8S3LIjMqMMgkeuTyBWqP EVxHe2BugkcRjO/YoAbJIzgegFJt3uiuViy6eJUybmVreKNSDHGyAHHPXJOD3pgsWktSTLc3EMYJ AaNSAPbJz+VdBrE1rcaZHHcXUMUrKQrAMQVPAwQOuMVl6BYiGCayv4FLffjkB3E+hXB+hqFN21FY wlEZO2OCUr1BMYXH1J6CpFhheRRHDHk8AsN2T0wB3Oa0rvRb9tRkSK6DhhuXfGTgHqM4P5VBZaJ5 07vdX6xrCwDCKJtwbtxxx71pzq1yvmWYtIu0x5kWnxsDyJGJYexAOBWlplnb2upRTtJB5iA/LCpG QQQeSSMHNRJLiY2zXEiuCCruyymUewOMVUv9T0a2mCzK8lwnBNthefQnOM/TNZtt6My95vQuCytd v+jabDeMHKElmBJHJPYYGetRXsMH9nOqxQWiSkK4t13s2DkDJOBzWHdeJpJiYrQ/YrZVKqo+Zmz1 LN3+nSoZL6G6t7aFIhCkaBT5TH5iOCWHqetOMW2WoSS1Z0drAtuBbWmmiWZl3LLIAxz2BwMCrsLa pbwsNWtIbaBiSzK6kE44IBJxXISQz3DqtnJOWwFG1iMfrU6aXa200Z1/UZUduRCql3x7k8CicdQS 01ZZb7Iboqmr3RViQPL5x+OAD+FXGsrxy0Wna3JclOXt5UwwHsOcjHcDFdHpOmaC1ri0iDNjIlk5 Yf59KzNXvv7HQSvZKsikbZUOdxzz15XI7ZxWfPzOyFfojmDFNau0M9sY1c/MzKygkd8Dgmn30QmZ fs6z7CACVTIXjocjJPeu0028bXLR55ZJI7ftsIBX6461Ztrm2gJjubxJHbA8yMfuyegHcA4xxmn7 ZrpqF9TjPD6XJ1BbaK4dEZTuMgOxBg8kcZPoOATW1YXerFpbe1Zby1LFUJ+ZwR3zwACQTg8Cupmc QRhZ7NpgeN0Sg59yO1Yl/bExymxiurferAEKVBJHoPXpzis/ac71G3Y8q1Fi+pXbE8mZz+popl3E 8N5PE4O5JGU/UGisToPZrD/kH2v/AFxT/wBBFT1BYf8AIPtf+uKf+gip6k5mFFFFAgooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKALC/cH0FL SLnaPpS5pFoWikpfpQAtFJmjIBoAWiigcigYClJJABOccCkopALR3pDzxRQAtA60UUALSY5oJoBo AWjtRRQMBRn3oooC4ZozRR1+lAxQeaKQn2paACijPFHagAooooAACBgnJ9aWkpk0qQRNJKwVFHJJ wKVribsPzSFSXBBIA6jsahhuY5pNilg+0NtIIOCeDj0qTDI7FsBOyjJJ/wAKewrlfVPPOl3Itf8A XmMhD6EiufkWJfD8dvJmK4O3zZXBDt3OD1Pt2rpJnkwSoWJccsx5xXLX2saVYXEry3D3twxGF+9t x2HYCt6SbWxnNt7C3usXd7F9nsrRtqxkiR4y7NgDtjgn1NYwS8khkS9knuCiM7RO2VG4YXap6EHJ OOmKTUPE97Onl2yrZwnqSfmI7g47Uxv7TvtLUzlLpZVzHIdu9UQ4OCDkDnkHGa6VHltoUou12ObS tC06FPtN493MyhjFGxPJHIwOn1JFQT6zHZw4sIEtB3wAX9sHoD+ZFUjEsO2NSFJOGZR0/wA+tUCs Esu2eYqgJ5jQs30wcD9a05bLUpQvq2PjvlkleS6djKxyHbLAD29/eofNgWTeXLtnOSCat77QII7X TFZv+elw7Mx/4CuAPpzUkVrdsRhIbZT38tVx+JyaSlI00Qy31AmUPDbzSuDngZA/ACrbatfPMW+x EkjAEpO0e/OKje22YFxeSv8A7CkjA/QVFs0xmCZk3ZxjJJz9DTs3uS7PoJNf3OGJFuB3VZgR+WSa pXNzPdIDLMNgOAo4A/CtdJtMt1AdHCnozRhh+YNEkukmN3jgllCAFygIVcngn8eKPJiTtsitp5h0 uaO4nk86UYZbePo2RxuOMY9q1bp7vVDFNbWltaxquCDEhVTnsSM49qxxqSM+y002Ig8DeCx/nV6K R7ljHqUENtEqkhgxGD2+UHmpsrg77go1i1uvNjvY5GAxtV1IIHbb2/KrJ1PU51KwzPCyjJVkyCfQ Ejis+G6tFuVju7JFg67oFJcjsTkn8quXr2YRDYEXAOQVmLRsvpkZwRTsk7CKY1jVY2eQXRO04YE4 59quQ6vFdlZLyOaNyMNJGDhvc9jWXILl+lrEp/vKQf681o6Vd3YkhiuGjaDcFYPIAFXoSB2x+tNp bpDaVh9tPLPePBCsc9qEZ90wAKYBOVJ5BFc1MEUAIxkkfk47Z7e5rqfFU9kloos3QTlijeUBtYEH JBHPoMH1NcvFHGJJMuVKx5U46tgce3fmo5r6JFQXU6PQ/DIlHnXI+0SjkW0ZHH++3QfQc101v4MW RzKwWEnov3gB6dqXwHGGtXWJgyLjcwOQWPJrs3wkZA6461zTqOD5Yk2crtnmeo6jbeHr37PHb+a8 a7sg4AJ6Z9aqXVmda162u0V5LeWNGkZhgBgPmUZ7A8VT8UW1xN4nu440LsxBAHcYFdp4chW4sIIm /dyxoFZSOQQMVvJ2XMZP3VpuyzPpjQutzajAIAZV4B98VT1Rlv5ba0aPcoO6QMOCPTPr0Nad+NRi 2w2sQmP1xx71SjlmD/6ZbPDJx97B6dMEVjFvcxldFyz09rCTzNPREgkwWjLYCnuQPQ+lVr3UVW+k szarHAEDs4TCuSfp29a24YhNCh3ZK8gVn6vBcIEMAUgNl0PceoqIyu9TSSajc0LSVTsBLIAOATjP 4VaCh3ZJMEHpzzismTUHNnuWJVlUZXeOCc9BU+mX/nK7TqY2B6MMECs3F7mkJrRM8Y10Bde1Fcni 5lH/AI8aKTXCH13UXB4a5kI/76NFZnSev2H/ACD7X/rin/oIqeoLD/kH2v8A1xT/ANBFT1ocrCii igQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUdTWcNXhMaMscrPJM0KRgDcxB5I5xgdyTxTUWxN2 NGis+fVUjnliitp7kwgGVolBCZGcckZOOcCkl1iFRbGGGa5+0qXQRKCcDGcgkcj+hp8jC6NGiss6 3EbYzpa3TqhZZQEAMRXBIbJ44P6H0pDrSiCOU2V2BK6rGpUZfIJBHPIwP1FHJIXMjVoqg+qJFaGe a2uIiXEaROgDux6ADP179jUba1DHDcNNDNFLblQ8TAbgGIAI5wRz60cjHdGnRVeS6SO+htCrF5VZ lIAwAOoPOc1BdamtveC1W1uLiUxiQiJQcKSRzkjuP1FLlYXRforOl1eGGe2hmimje4UMNwACZOAG 545x+dLcatBbyzI8cpEMiI7ADA3jIPXoOh+op8jC6NCiql3fx2kwiZHZvKeY7QMKqjJJye/Qe9Vj rSbo1itLqZpIVnAjUEhTwM89f8aORhdGpRWcdYt2traWFJZmuSRHEijcSOucnAA7nNIdYhW2uJZI po3tiokiYDcMkAEc4IOeuf6ZORhdGlRVFNUheC0lVXK3MgiUEDKtzkHnjBB6Zptlq1vemfarx+QN zFwBkZIJGCeBg0ckgujQorJTXoJLNbhYLghplgVABuLFcjAz0I4696kl1dYLQzzWd1GPMEYRlAZi QSCBnkcY+tHJIOZGlRVGTU4lFsUjklNzG0kYQAkhVBIwT1OcY9ajtdWFzcmBbK7VlYK5ZRhCRkbs HijkYXRpUVUvL9bWWKFYpJ55QSscYGcDqSSQAKgGs2zWqTKkrO8hhWAKN+8dVIzgY4Oc45FHKwuj SoqpZ36XMssLRSwTxAFo5AM4PQggkEe9W6TVmCdwoqCC6Se5uYFVg1uyqxOMHIyMc+lUW1rbcCA6 femUgsFCDJAOMgZ6U1FsGzVorKk1uGOSYNbXRjgcpJKqAqpHrg5xz6VpqyuiujBlYAgg5BBGQRSc WtwTuOooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigCwv3B9BQDzjB9c44pF+6Kdn1pFoA eaPpQMUUAFLSUtABgZoxQetGfWgBaKTPpRQAppaSgUhi5opBgCloAKO9FFABRR7UZoAKPxo/lQAT yRigYYGc4GehPrS0UcmgAHWlz3pPpTNwVgHYAscAetAN2HgUMwUEnJA7Dmq/223D7TIOW257Z9M9 M+1WlDZBCkn1x0otYE7jFZWXcFweQeOcg96rSX8Mc0kQy7xKHkC/wA9KulQoMkrKink5xj9ax7rX dB0yaR2mjeeTAZYhuZsdOnFOKvsgszSSRpVRokZlcBgcYAB9c0XdhDeQCK5Uum4MVBwCQcjPtWDd +L3isxcQ2BWNv9WsrgPIPZVz+prEu/GNzMAsqtaK3VioIH4A5NaRozbB+R2GoataaepeeVYzjGBj JA7ZrlL7x6m8x2FvvY5+eRsAe9crc6jPNMzJFbyDJxJLGBkep3E06C4m3ZWW3Eh5CW1srtn6hcfq a6I0Yx3Ek+pclvtT1uQLcXflxtk7UzgD0OKvQaTHbQHyFVpmXAklXAB+h61ThtvEVymXjukT+9Iw hXHvkjFSDT/m2TahbGQjHl2yNcSHPqRgA/jWra6Owmn0Ktxosrkma8tdxzud514+gHQU5LOVQqf2 tpoRVCgmQZA/AZ/OtOLwzdSxolvpE7KAfnu5xGGz6qpz+tWl8L6tbpv8zSLEAdVjBI+pYE/rS9pH a422YwtbQYEusGZh/BaW7OT+JwKnjtraPm30TUpyTnfIoXJ9ehFPkfypPLu/FJfAIMdmjE56DkAD rUcNvpMjfvP7a1F/QYAJ/MmjmF8y7bW1/JgRaE6KT1kvAn6DBrpNN0kfZjFc6fFbFs/PFL5j/ix5 rJ062MTA6f4R2EdJbqUAj3+bJ/Kukt01RlzPLaWw/uwqX/niuepJjsc3e+CYhIz2t5MCxyVZd5J/ HH86yp/Dt1DJ81teSgH74jTp9M5r0ECRBzLcSn/ZQCjz5wfltLpvdmUD+dSq8kLU89g07Tlbbqdr qhUdAIgFHucZJq0W0G3RktrPUShGGAG0MPQ8c13StPKcMHh/75bFDQGIlnun59dgH8qbq3dw1PN5 L/RkOBY6nEfUShcfjioWttFeSOVEu5dyhmV5VfaeeDyCfqOOa7y91HRwCl5e24z/AHZct+QFYGpT +G5APKFsx7loCxP45HNaxnfowbdh8d/oUdokcNutqwwCz2pfJ+oP9aikurBcsUlmiJwClqy/Xk8V Tt30qG5jmtdFluJEO5SoIGfcAkEexqcDKOsOnahZI2SU+14U5POA3AFUo2ZDinqVrg6PLl47K/YY 5ZFGB9eOKpRvYbytvpF7IWOBvJx/KtWCNYAdl1cWuRg4kiYY+mBmo57O4lx5HiS1UqQVW4wnTpkj IP5VXMkC10OfvEhnaDFsbbDsSpzkqBknn6Y4rJKl4Hm3cvJtx+tauuXl297Mt5NFPLBEIRJEcqcn OQcc8E1Usbbz2s4ieJJCT9OKd7m691HpngCAW2hRKRhpCXP1J/wArpLpiq8d6zPDkYjtgqgBVGB7 VfuCzNgDI6VwVNZkxleJlS6PDdXH2gqBLjAYDrUsWkvG/mI6q46Ed/rWtCgVADUF7cCBMKCXbgYF CnJ6EOnFe8yhBDdTX7v9t2KoA2omQfXk1DqjM11HBGHlkPJYkAAD2p11qo023AZQsr57gDPrXHTa nNb3byNOswkwQ4Ykg9wMVtTpuTuS7NWR3FpOsC7ZPlI7k8GpLuXzEV4wMg4yxwMV57ceIriNVSHA kJwD1yc9yf5Cqo126mn3z3IEinAQkgA9xwMVX1dt3GlK1j0S6kkS3DSOskeckEADFVTd2lja/bpr RxLOSYrdAXZ/TA/L2Fcbda7rZhwyhYgAdwQEH3zVIeIr9LxLiO5k89V2lm5XHpg8VX1eVtxxg73Z galJJNqd3LMnlSvM7OmPusWOR+FFMu5WuLueaViZJJGdjjuTk0VzWOk9nsP+Qfa/9cU/9BFT1BYf 8g+1/wCuKf8AoIqepOVhRRRQIKKKKACiiigAooooAKKKKACiiigAooooAUda5SySWxnGomN3jE8k MqlSSqlgQyjGep5x1H1rqqM/WqjPlE1cxLe4XS7u/W4jlImlM0TJGzCQEdAQDgg8YOOtUrawuI30 iB3mt3CTFnjAymTkAkggcHH511GSO5oq1UsLlMG3Rk0DVYCjGSNplLEHdKccMfUnPb0pmoqRpGjb vOVUaIu0YO9AE5IwMgiuh/GgEjoaXtNQ5TnZdrW1rcW7XlzHa3SySecCXCkDJAIBIGAePU07Vrs3 +mXogtpPKUxhJSpBkO4EgKQDgetdBknuaMnOcnNHtOocpiCzNt4hsyJbmdTFJlpXL7TjoDjjNQ6t sXX1eaS7ijNqFD2wOS28nBIB4xk49hXQ0AkdCaPaa3DlMCS2S/vYox5rQyWDIJJAd2QwwSSOuQDU WnwzajFq0dzGySypGhLAgF1UjI9eQD+NdJknvQST1NP2lg5TnbLz7ux1C8njdZTam3RWBBOEJYge 7HP4VHZ2c095boss9sRpyZeMYOQcbSSPfOOvFdNkk5Joo9rboHKczZloI9JvXgZYYUkhlCISUJJA Yjk4PUn39xSagr3ceq3kUcgheOOOMlCDIQwJIBGcDHXH9a6fJznJzRk5zk5o9rrcOU527hlt9bto kjZreW7S4UgEhWOVYH0ycH8api3nW1hMMbhroyWkhwRtVnyCfbG7n3rru2M0ZPrR7UOU5W7hMcMw CypGuqKcxqdyoFxlcDsOh9cVZkaOS1tlt5LycLfRMzXAYsBz0yBxx+tdDn60ufrS9oHKc3bwyW3i G2tfLYwQtM0T4OAjrkDPsQRWhpisuqasSpAaRCCQQD8p6etafOPaih1LoEjIvm+ya7Beyq5tjAYW dULbGySCQATg5x0qCeaWWWx1JrOSOGGVwyhSWKMAA5UAEdDkcn65reBOeDRk9aFOwWMWGYS6tc6k qS/ZYrYRhihBc7txIBAJwBjpWnFdRy3DwpuLoiu2RgANyAT64GcVPk5znmmqiKzsqKGcgsQACxAw CT34AFJyTGlYxYr2Ox1jUzOswEjxlCsbMDhcHkD3FWZVb/hJrdtpKi1YFsHAO48ZrTyQOCfzo5x7 Uc/VCsc4bnyRrNsIJ5JriWQRqkZIYEYBzjGO9benwPbafbQucvHGqtg5wQOR/SrGTjGTiiiU7oEr BRRRUFBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBOv3RS0i52r9Kd3pFBQKKAaBh9KXNIM98 fhR2oAWg0lKcDpQAYopGZVBLMFHqTgUKyupZWVlHUgjH50rBoOoqJbm3L7PtMG/su8Z/nT8nzjHs fIGQQOCPrTsx3HUdqCeeePrRwaQCijNISACSQAO5qJbiF32pcRlhwVDg8/40JNhcmoo4z7ikJwCS CcegyaAFFLVea6igRWlJUMCcEYOAMk/gOai+32+CwnRkwGBXnAIyPwI5BpqLewnJIuMwUZJwKFIc Er8wHpXLX3jCDT49nlm5nxnIUqvPsc8e461y19401q8VxAfs0Sjnyl6DPHPb0rVUJsa1PUXZI03y yJEnq7Bf51mz+INGt2Imv4pGxjanPvxivJUF9qd2iEzzySMBlssck4zj8atWfh/Urm58tbOQ/MVL FSAMH/61aqhHqyrLqdw/jPRdPgMVlblwGLbegLE5JOe+apXPi++vrGH7FIsVzLOU8mFQzqmAQec/ mKzbTwVcMvm3LpHgAmPqST2HP05rfh0mw0lop454oJVABkLDI9yM89TVctOO25Dmo6I526tdSv0h BS+kcxsGaSTIZgTyPQAYGOKiuNEijsLRbqe1s5493nFnLM4JyDgZ5xkY9q6Ge90qeUxy6hfX5J/1 dshVT7cDn860tPsoMq0GhlEA+U3BGR6nByabqW6EqTOJFnpZYLbSajMpP3Uhzk54wScdMVettDWY jydAvZc955tgP1AA/nXeOzQKGmuba0VecALx7c1Cmy75Wa7ulz1BKJ+eBUOuw5mYVv4akjAaW30q xHXBTznH/fRxWommRxxnfql4VPaBBGPyUVox/Z7c4it0Mnog3n8TTbqW8aMgzQ2KEdWwzfhzisnO Uh3MhtAtXJkbT57s5+/e3JC/XGSf0qzbSR2qtHDNZQYHEVlHkn0y319qamnW9wQ873mpv/tkqgP0 4H86vxo0Y8qN7WzXpsjXe2P8+1Dd9ybvoOKXk6ArOYkxnfIuSfwyAKyrvT9KlfGoXtxfuD/qwx25 +iitkWEUgzPLPMB/z0baPyGKmRbO1HyKigdwKhStsUoswItKi4GnaRbQDs8se4/r/jV2PQ7iQD7V qE+3/nnBiJfp8oz+tWLnX7G2B8yaNcf3mArEvPHthACIiZWH91Tj86te0lshxUfU6S30uztgPLi3 EfxOxYn8STVktHGM/KoHsK8zvPiFey5FrbqnuxJ/lisO68S6zd5El2yKf4Uwv8uapUJy3NPRHquo eIbOwX52d27Ko5NYUni+6uX2WOklz0Bkk4/IV5o93IzEvI7t3JJp8Wo3UX+pkdT7GtlRpx33E1I9 Pt/+EmviGb7HZIR2G4gfTNOurXSbVM63qiTP1KlgP/HRzXnUb63qI2o93MCcYUnH+FW4vCmrMA0o jtwf4pZAp/U0nC3WxPKupvXmteGrXiw0ZLlhzvlGxf15P5VlHxJcuf8AR/sFgnpBbqSPxINXrb4f u8YludRiC99oyPzzirS+DdPRSSbmbHZcJn8SCaalBDvFGfBqCsyyXWo3EpHzDczYz2wBgfoRWdI0 JvBKJ2jiBzty0hJ9TwB+Fa11YaRpu03umX0cROPMWUOB/KtjTdM0W4iMlgI3P92aTBB9CMZq+eK1 sQ32Rhwa7du5EV2JI1HKm2AAHucg1Hex3GpTqhglWOQZLgjYQDnI/wAM5rdGlainiCC4sUtiVQBl VlxEpPJPck8447U29u1GsMbL/SJFyJiuCiYHODkAnPHtzSU1fQTbSujnZtIMDfYhb+fc3SM687RC ARhjx0C59OT+FU9LhMuvW9rbEyLHlNw7nByR+NdJdXMkyzx+TMk1woWRgCxcDoA2MAD0GK1PCWgD TA1w0Ya6YfKG4AHpn1pSnyxbY4y5lZnTWkK2FkqfecDnHUk1kx6yGuZBKjxbG2kMOh98dKi1e6uk AmiuE8ljhj0wRwR7YPXNVbjTwLZZb24NnG5y43g+Yeo56n8BXNGCesupUk7WRtHWYQDtDSY67VJH 51Qur24uiNmyAHoGcBsfQ9KzprpFgJti82Rj5htT6nqWP5CrIFsbJXmCyzgYZQoAOeh9sVagombu 9GVbu0SbK3JTaeN7SKf65P0FRQ6NYqqtIlzMhJCiIBFB9STyfr0FVbu/TTApt0EZlztYAHJA5+Y5 wPYDmsi31q5u77ZcoGDggiTJwCOuOlbKMmhxVtUdN/wg+l6i/nw3c4Vj8yh1bb7Ajj+dU5/h5Il2 fJvkFpjJaQfMvrx0P1yKqRwXNvIJtIle3YAsyICVYdyF55HoBVbVTr+ox7Zbp7gBd3lAbNy+oXjc PX0pJTvpI2Uk9GX73wvBDOJbG/srq22YY3NxgRtjBPy8Eeg7Glt/AF1KqONQt5InGVaPOD9Dg5Fc 6F1fw5eeckQikePk7FkG3vnqB2rY8H+LZdOH2O8VprXqu370fc4Hcc5x19KJe0S913LVjjdQtmtd QurdnUtFKyE56kEiipdYljudZv54mYxy3EjrlccFiRRXDqUewWH/ACD7X/rin/oIqeoLD/kH2v8A 1xT/ANBFT1RyMKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRUNzcJbRq7BmLMEVUAJZicAD JA/MgAA80BuTUVRXVLYiTJZHjj8wxyAK5GCSACRyADnt745qc3dqN+bmEeXgODIPlJOOeeOeOe9A 7MnooBDAMpBBAIIOQQe4ooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBEda0uFzFNcMsinDAo2AR15 xg/WnjWdIZgouuT7H/Ci31vTZJWt5GAkhJQll4yODzV5hayDdG0OfXim0lui76aCQLHOm6GfcDzn H+NStHHGuXk6fhWfc6tFYDDNEQPRsUy28S6ZdnYzqGPGGGRS5JPWw1KPzH3Gq6dasRLMoI9T1pkX iDSZXCC4TJ6DBp0+i6TfkyPFG5bnO7GPpVYaBpdmfMXYmPXBxVpQat1JbktTcjMUqq0YVlPfFQ3c 8dspZ4JCo7ouf0rCuvE9rpsTeSVmCMFKggEk9P5VRj+IMZk2zWRCeqtyPwIpKjN6pFqSki3ea9pj n5pbiIg7ctbZwfTkdaz7l7bUIyPt93JEGJJZQoxjgZGO/bFbCa/oeohVlaONmG4LPHjIPHH5VZms rOaEtbG1CjDJ/EuQc5I79OlaJ8m6MpRfcxbOy0fTNst15SY/56jLDgEHHXvWzZ6xaNInkmUxzLvT 5PlxnB+nPY1z+qavpFjI7XETX95gD5xwMZxjPauTvtfu76R1t0W1RuSqHbkAdz+H41p7Pn1Y4KXQ 9d+2QOnE0IccYdgP0zTypaLcsaMxHG1sA/jXgpMjNudsk88nP51r6RqWoW7pHZTyowPAQnBHoR0x S+q6XTNnotT1ya2iZQbmQIowdu/AHHc96zorfw/bymQvbtLI20tvBJJHTjjpU1pBc6hp6/aZGR2H IZQRWBdeE7iC7W4tZIS8bh1Ayp3DnOOh+lZRS2bM763sbcniLQ7XlryNQBtGFY9O2cc1E/ibT7eK WWaYvFtVg8IJG1sgZ9DkHj2rlbnwpqEpl81NxaRdoWQCNQcliQTkYAHHvSW3hW+a3ltYpAYJmXzA rgqNuSCe+fp61r7Kn/MNyNW58UWl1EpsrRp0L/Z2aReu8YAye5x/OgGe4uhbeTBE5zFhCMvsU5I9 COOCOmeazJPB9zbWbCGcksN4UAgBhwMg9DyecUraPPJMLi6nmefcCwUld+MZyQDgkDGapKK+FkSc OpFaWlvdLatcSJH50rKsmwsGCkAg5xjB7+hqprMRsDP9nmRi8xXy41yoQcjJ78jgHtzWwmlwb4tq XCorMxjDFsE9hnA/xxVzT9N2PLJLbCZnK4EgACgDAGBwTjrV89ne5POlsc5pU9w1tcs5YKUKARuE O4jIJzyQAD05yRVu2tvEl5aBESSG32/KCQoPfBOcgd81t6k8CGAXS2EKoTtyuWU46gCq5v1nA8p7 m5CkAA5RPqB0I6cUc7eqQnU62KcPh65dFa81ZbdSCWw27jPAAyO2c59qfFpmi25LL9q1O4IK4GQo zxkn/wCvVuIEkbo4S7Ek4HJJ57VpwQSsACSB/dRcGolJ9WQqjeiRXt5b2GMR2NjbafHjG5juf8hU otbh3V72/lKkEkY2g8e1aNvZyEnGIh3Y8sasjT4x8zEyN/eY5x/QVg6iRajKW5kRW1lAd9taK7j/ AJbXBzj86txrc3Jy0jyL2AGxB/U1ZuptO05PMupooj6ucn8BXMal47sIwVtLeW7I43H5Ez29zQlK WyLVN9WdG2yL5C7u3/PKAVVnaaEeYwstMj/56TsHf8OQB+Zrz2+8baxdZSB0tIz/AAwKAfz61UTT 77V7lGiFzOSql2lJJDY55PbOce1XGk+pfJbc7a48Q6LCSJ7661OQdhkJ+QwP51HH4vLfJp1gIl6D GP8ACq+k+BuVa9lAPUohyR9TWzPBpujRbYxGHAxnGTVWprRasibstCi9/qsy75ZFgTrwMmsLUNSy WVmuLhskEs21fyFXLl7nUZMLJIE9Ado/Sr2n6HbxkPJEJX/2skVr7sFdoxT1uzjRa3N5JiK25PQD mtW08GajcAFkWNTzzXf2sTRqFhjjiGONqjNX47djgyyO3tnA/KspYl7JHRFuW2hw8XgF8fPcrn0A qY+AkAy9zj6DJ/KuuuL63szs+XdjoDz+PpXOaz45tLAFLZBcXPTg/Kv1P+FSqtaWw9HpcS38D6eo 3SpJJ3+YhR/U1qWGg6VbkmOztjt743Y/E8fpXFJ4vmlkNxqEzSkfcgRcJn3H+OauRX91rcbHUbxb a2Bx5EWFAyMgt3P8qqUKj3YtTrrvU9Os4yu8OxOAkHJOe2eg/MVzEWrtcajLBp2kw2t0n35rsmRx 9B6/jio7rVNMj0kWE0nmEAqDbfNtA6MScDPc1lTTXN2BfWE0qyQBYZJfLxvz0yBkcAdz6U4UurGW 77XL+xuguftkpBLTTHHOeQqjhce1WbbxVcW0CyXums0ZJxJHJuGR1yD069zVW+0e+khD3t5FFAwD NKIwBn65GT+FSw6/YWsSWyzS3oVPLEcNuqKR0PX1xknmrajZWQr3WiK19qk+oi5NslwIZypaSeQB IgOwyMAHv3qjFptvdwy3Juln8nA2xrsDMegyeSPcCtZ9I1DxG6PFbR6fYqMKXcuceoHTP5D3omvN L8PQTWOlxfbruRds9xI3C+q8dvYfiTVc32YoaTaGtbPo2nxzaq0imfPl2EDFExjrIw5PXpmqz6qG bDBYkCfIkYAUHPA47AVoado/9rQLNq95M7KB5ak5CD/PatVfA9jwwnmORkHAwPwqeeMfieonaWiF 0jVjcMiSRl8jChRzx3+ldMRtTK/K3bjODWfpOj2+kiRkkeaZwAXfA4HQADgCr7EseTxXJUknK62F GPKctNNf/aXit5A0oYllMe0NnryOR+ZqneXEkg+yapbuEzlSWJKE9w3Ye2K7UKDg4HFZGtaL/aM0 UqztE0fbAIP1FaQqxbSaFaSMUadPaW4UoZYQcq4YZ7YBPTPTtWWLu8Ny1vCkUXJZg4yAOmWPU/QV 0bTvo8QhvVWe1kODxnj0x6jtg9qfqek2v2RpouIWUHepL4X1HU4xg1oppPUaSZy25pJCS0csRGNm 3hyPY9Bmq1/ZS2d9DOIx5ZQBcEnHqCfbP5Yq7d6c1qQ7thGA2upyCD0Ix601r29tlVFYOhBU71BB HYkHuPXrWyfYL2L1oypEs43B42DjB6euPwpnjSaEWEaQbjKHEwZSRtUjnB685FMt1MVuGkkJiIwo AyW9gK0L/TjqGlqYoy8rW5QDoAQMfn0rOWjuEdzhdM1q40q+F1akM/IYPkrID1Dd66OTxVaazbtb XGmQwyHGwxcsW9iAMfnXFyRvEzRupDKSCD1BHaum8G6VLdX0N2IwYYnG4nuRzgVO75mayskczeh0 vrhXL7lkYHd1znvRVjX/APkYNT/6+pf/AEM0Vx8xoevWH/IPtf8Arin/AKCKnqCw/wCQfa/9cU/9 BFT1RysKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUF1bi5RFLtG0brIjKASrA8HB4I5II9D U9QXczQRoUAJZwuShbGc84HJ6dBQC8inNo8cyOstxM7OMM7EEk7HTPTHRycdBgdqWTSI3LETyqSW JK4/icOQeORkY+lPj1FWgRmRlcsEYAZAbBJByQRgAgg8g8GmLqm5IXMTBXC7m4IySgIHOeN/UgdO +KRWpetoVtraGBSSsUaoCepAAAJ9+Kkqkuoo2B5MwOQGBC5UHbgnnod69Mkc5HFOvrprQKdgZSCW Jz2I4GAeSCSM8fKfqGKzLdFUrvU7e3jyssLsWAAMgAHqSfYA/U4HemSX8wSVkhRgoZ1AJJKgsDkA E5JUdOgYnsclwSNCioJ7gRRxOFLLIwX5QWOCCcgDOenaqy6tFkh0cEFsgAAjDMACCQQSF9MAkAkZ oCxoUVRfUBE7ia3ljVRkk7SQcMSDg85CkgjI5HPNOl1KGJ2VlclQ5OMZ+XdnjOedpwcY6fgXCzLl FU5rxlgDKhVzKImVlLFTnnhSc9jwe9Mj1NDFvkjYAbgzAAAEFsAhiCCQpOCOCQCc5ouFi/RVJdQW QxiOJzuYBicYXLMvJB5yVOMZHTOM0kl3Mt2LcRpukJEZJOMAkEk454GcDOCQD1FAWL1FZq6lI8Ly CDA8jzo1YkbwFUn5sYwN2OOf1xavbh7ezaZEDuCgCk4yWYDH60BYsUVnrqYa4kRULoCBGUwS+Sq5 5IA+YkfQZpV1NDvZonVAQFYlQCdqkg5PBG489OOtFwsy/RVH+04tqt5Uu04AOF5YgkL16kA89OnP NWBOWtXlWNgyhxsYgEspIIJyQOR1zjHNAWaJqKz49QYOElQtyQzKhQrygBKscjlu2cgZHcBw1SJl LLHKQoJbBUgKACWyDjGCOBz14ouFmXqKoPqaqQRBKU2+YT8uSmGIYc9MKeDg9OOakjvo5LjylByJ NhJwQeHIIIJx9w9eenHPBcLFuiq7TSm5ZI/KVIgpcuSCdxPAPQYAzk5yeOOtV4tTDrEGgkEjorbA ASSSoBBzgDLd8HjnHcCxoUVUt7+O4mWJVYMU3ckccAkEAkg8j24OD626BWCiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAy/+ESt7i6luZbu4BlcuVXAAyc4BrRj8M2SJgPMSO+7muX1DXZ1u 54oraVvKdkyASDgkZ6e1VU8SXsDjdHKB3yD/AIV0clRrcE+6OpuPCFnP/rJZDz3NMt/CGm277gzE juzf/XrPt9cku4XZo5wqBdxAOBk4H60y4gknBdFuCT6EihKezkS5paKJ0yWNvHiNLjt0yDXPanb2 99qc+nWiNNPAgeVjKUUA9RnPXGPz571QiN0jBWS7Ck8EHIzjGcVLpGn6be32oSyxXE7xgjc2UJcD LLx14x1oUHD3rjjaXQbpWg6Pqlj9silmXa5QpKwG1gRwT3B4/OtFNB0YkvczwCd2LSBX+UEnOACe AKzJrOGHw59rhkNurSqYygywz1+UAjGMjHqMk9qdH4bt47ZS0U02wKGYEq3PU4PpnkDpVt3+0VLT obSeH9HkwZZVl2gKuXztUdAPYVdh0vSrdQFIGOPvGuaS0jtjiDT7iRh/eJAq3CmrSuRHaJCpHAIy evc1Eot/aIU/7pr3Wj6JKMzQIx9Tkn9KyJNP8MwSiOVoP9kSFgVGckDjGOvWr0en62CG8+32nopW i50qW5UJeWUTk9Shzn8KmLto5FNyXQqPB4TaP5fshP8As5zTIJdFtG3W0aA54YMBVK40DyIHEb25 tWnUnIxJGO6k/wB368inmzgts/ZNPLNnAOMgn2OTke9apJrcmb2NZ9bG0GIKSvIIGSB+PTPrTbfx FulxcXUMIz0Yg1ivpWp6gV80eRFnDAcAD6da1tM8P2Ntgm1a7k7s4+X9eKiUacV5iXN3Ogikguik gMMwXkMpyc9M/lThc2sTOuBD3yV2hvcevSo0tbNUwYYoeP4WAI/Kq9vFptzEFUsVVsgOzA88jg9e K57I3uyWbULGNMNcqqgYxwaypvEGkxIBJc72HZVzn8hUt3p+iI+93SJhyG54Pb2/A1XSXwtAeJbf d1yQef0rSMY9mQ7tlKXxRE3y2VpJIR0JU4H6VTludYv1IMTwoT/CQMit1db0ONCTe2sYGRhQT/So bnxPo9qkTkTymVMoqJk46cjPB+vNaJ2ekSeQwk0q7j3uYFP7ssssjcBtwHOecYJPtWmdIlikiFzL NNuKgrAuAM9OenY1n3vjSJkRYtKZhGCEaeTHUYPA9QT1rFuPGus3I8uKVLdAAAsSgYH1OTWn7x+R SpX3PSY7Ox01Sz7Io8fekbnj61m3XjDRrMlY3e4YHpGpwPxNecTvdXczGW6kn54ZiTn3welOj0i8 nOIoZXz3C8UfV1vNlpKJ1tx8RFDEW9hlug3P/QCs278W61eqwEqWqYJIjXLAe55x9ap2/g3UXHmO FgQclnYDAp8MNjpLTD7Y13JJGYZFiUbdpxkFjkDp1HNVGEFsg5l0MeeVZpdzvLdSserEsSfpWhBo t/LBi5aOws2YMfNcICQDg4JycAn86mF95AK20QtU6bIRhj9XIJ/ICiNo3zNLGu4c5YlyfxOea1d7 aDu+hZtYvD2m4bzZb+Udooztz9TgVJc+MprfKWenwwADgyMWJH0GBXPXVxLeXISCIE9AqDP8q1tO 8J3dwyvdjyEPJ3kA49hUOMUryYmorWRG/i7Xbz5BciJD2jjA4/n+tW9NjvLmQNKJZ2J/iOBXTWHh WztUWRxJOQRwowPrj0rpIYbe1QBFRAB2H9axdaEVaCJfvaGRYafc7QXRI19AB/M81rx2iqpDMWJH 5Vmap4msdPQ7pA7Doq8k1w+reOb65LJb4t4/9nkn6msuSc9XoEYRWyPRp7+002233c8cKqD1PP5D qa4vWviEDui0uPA/56uOfwH+NcFdXk925eaRnP8AtHNMhgkncJGhZicCnGMYvuzZR01Lt1rF5dMx eZiW6nOM1QZwQBtGR1Pc1oLp6oCJrq3jIGSFbcf04/WrukaRbapdC3thLLIeQXwq47n1rZ81r7DV omPbK006AA7QRk4zgVqGzlciTKSHdgI5wSPXB7V0OoeFDFCAmrW8ZQY8pAQCfc5PP1rEOnXEQeNZ o2z0JlBDf1FXTd0S5orm3u4ZAwWIEHhWIIB+nSty212YRRJqUsctojkvDCBHu44JYYPB5461lLpk sufPv4ogOCqKzEfkMfrV600iwijLeVLeOeAHJRfr0qpWe5DnFGReaik0zLtklUEhFaQsqjPAA6Yx VuHSrq7iDRoyg4JAAUKO+SO/tWsI0tiGTS7WJhwC9xwPrkZNWILe71aVYTJ53IGyBSsMY7knv+dJ ystdhc/8qGXupXs+nw6bA/2eKJBGWU8sBwOn9KvaD4MxGs14zDoVUjH447fjXV6folnpyKUjV5QO ZGHJP8hV1n9a5ZV7aQVilF294ow6PaRYLF5SOgduB+AwKuswAwAAB0AppbI4phOTyK52292FktgJ ySaM+1ITxSjpQIUUh5NGaPegCG4t4rhNkyLIvowzWAbG+0a8eXT18+zYcw55A7jHf2710h96TFXG dtOgrdjmRPb3tqZLdW8tCRc2rDPy5+8o6gg+n+FWZNNtpYFUHzIWAKMv6EH1q1f6cDJ9rtsx3CjJ KD7w+nc/zqnGPNUvp9w1tOwzLCE3Kx/vJn7p7+nt3rVS7CTvuZ1/Z3FjbsqOuFXjI+YHsfoakilu W0dZInO5RyRzgjrUOiSJKrRSs7TshaQSNuZmBIYHuMcHHbNbEFq0MDRKQiyqQB3BPGa0ctLMTVmc mb03DCa702znJOHZRiUgdSeea6KPSPMiguPD14LVSAXTGVcjoT744PrXHi1cXc8UiYuYiADkggAE 5AHXJx1rZ0C/aGQfZ3O2RgDGx4Vj0APYE5H1x61c46XiUzidYMn9s3/mhfM+0SbtvTO45xRRqrNJ q165VgWnc4I6ZY0VwGx7BYf8g+1/64p/6CKnqCw/5B9r/wBcU/8AQRU9Uc7CiiigQUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUyWJJkCSKGUEEDJGCOhBFPqvqBcWMzxu6OiMylDzkA4+v0oBbiiytgV IhQFQAMDgYyM49eTz1oFlbAgiFMgADjgAYxx/wABX8h6Cqkt1Ml41soO1JEUMcFiC6ZJOeQQxHQd OpOQL4kDTPHgZVVY4YE856jqOnU9ecdDQN3RBLYxSOjYK7WDEKB8xG3GTjP8Kjj09QCJmt4mEYKA iMAJnsBjj3HAOD3APYUxJ3a4mjMLqsaghzghs56AHPbjgd844rJgvbsiLzJCwJBJVlyxwmVB24Jy WJXgjnnjIAV2brAOpVhlT1B71A1nbuWLRKSzbieQSec/TO5sgcHJz1Oa7yu2ovDFcgFVOUYLgZUE ADqTnknIGDjk5xHdXNwmn2kisVZ0DO2QpLbMgDKkZJ6DHJGM80Aky+sSKAAoIDFwD2JJ6enU01rW 3YktChJByCODkknI6H7zfmfU1nzXVyHlEjSWybhg7FO0bXwM8gklVz7nA683IZJw85lUsVRGWNQB gkElQSeTkYyT+VAO6JPstuUKGJSpzkEZySCCT6khjk+5pv2G2IwYVOc5zk5znJPPJO5uTzyfU1QW 5uztDOyS7yFUoMOTJgjGCcKp4wc4yTnFMiu7ltuZX27gIyQp80/JlSQMYyX6YIGc/d4B28zXMUZO Sgzu39P4vX61G1pbsSWhQk5zkdckkn65Zue2TjqaZPJMURlV4sSorBgpLKWAIBBOBg9f/wBdWqBa og+xW2QfKXIJIOTnJJJPXk5JOT3J9TkNnbncTEuWOScnOc5yOeOeTjGTyanooFdkItYFLFYkG5Sp AHGCACMdACAM464Gegp/kp82VyGdXIPIBXGCPTG0H6in0UBdkKWlum3ZCi7QAuBjABBGPxAP4UG1 gK7fKUANuAHGDwMg9jwOfYVNRQF2V2s4DCY1jVQckEAHBIIyM5HQkfjSw2kUUbR4Lq6lWD8hgSxO R05LHPtU9FAXZCtrCoIEY56kkknkHknk/dH5CkWzt0DBYVAZSpHJypAGPpgAfQAdhU9FAXZVisIY 2lYgyGQEHcBgDngAADHzH86ebK3OSIwCepBII6jj0+83Tpk+tT0UDuyN4IpJVkeNS64wT7HIz64P Iz0PIpBbQqysIlBUBVIHQAggD6ED8qlooFdkAs7dW3LEoPqMj0/wH1wPQVPRRQFwooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKBFoyxW0Ks6dQMkDrmmRajYztsLKD0wwFWViMkEY+UjaOGGe 1RLYKDlY7b/v3z+eaV1Y1tLSwq2NuZBMIoiwJKkL0Bx+vFSyTpGSMDjn0qQDy15KgD0GAKj3wycF 4m+pFK7ZbslpuV7S6tGBWEj1wvTnvVMaNv1Cefz2jWV9/wC6BU/dCjOSQeM54HOK0isNspYRAADH yLngdBgVmP4m0eKZlmvDE44IdGGP0q1zP4RabMs2GmRafaiHzmlUMWBYAfhwOgq0boAgBNxz696z 18T6HJ8o1K3yf7xx/OtGJ4LmMPFLHKh6FCCPzFS77yQ7dhVmZwcwvx1qGa8jgwZYZRngcZzT3uYL bdv3IDySQSKptrulSSeWNRiR+mCcfzoUX2FfomO/taHOI43J9waji1Ce6aVYBA7JnIBOUOSMH0PF aEK7l3pP5iHocAj9Kq3l9p1grm6migL9W6Fvxx1p6bJE2l1Y61P2uBJGSGUEZD7cZ/A9DVpgIoGI QAKOijP5CsFPFugx/ulvM9shCP1wK07bV7O6UPBMHX2IP9aHCS6FJpLUkuLgxRqwiLsf7o6H39Kz Ls38pVY42UOerngelXp9c022JE9ysZ9G4NZlx420SAH9+0h9FUmqipdETKKl1Ft9FuDOGu5gVGOF HJ4Ofw6VuCCFFBYFiBjcxycVzCeO9OuAwFrdMnIJAGcfTOan03WfDtwvlwztEScbJmYEdup/xpyj N6tAoqOxcNvZorRyebcbiDyOnGP161Ul8JabfDcY54ie4YcVuRw2wTfE6kHoc5rnNe8UW+lsYozJ NNjIC8KPqTRBzbtESVnqV/8AhXlotx5guXeMBsRuo5J6ZIPTPtVPVPCUgd3WHIlHlITLxCowFYnG WOARjHHHNUrrWvETYnWWSKM9PLwQPwPWn6d44ukby9QMdwoOCSgB+tdHLVWt7l300K9v4cRFmha6 s51cqsjmXDQEHOQDjJPTFbumeEdNVULeZLkAkgDH6VFL4n8P3E6LcWR3MQS6qOMdPrXSrrdjbwpu 3RRN9x9vyn8R/WonOoiP8TGrpGm2KAiIKM4ycZJ/GuY1fxhbWTmHT7NpZQdpaQ4VSOO3X88Vrajr 9kRiUxyxNwCDkGsZl8N3zZYLGx9GxRCL3mRzRvsc/da0+o7jqN25IIKxhcIPXgHn2zmqclxaMAqs 7AHlVTGf1rr00Hw8cH7QGHoXzVqJPD9gA0YjLDuBk1uqiWkUV7RLZHIiO7ulV4rRggAAklIUAduT 1qex0lL6cRvPJeOOfKtV+VfqxwBWvqWqaNJcLM9m1w6fdDsdo+gziqE/jGSOMxWcEdvGOioAB+lV eTWiFeT2On07SVs4CrLFZL0IjO5yPdiMD8M1K+qaVpmdrqZB1ZiWYn6mvNrzX765JEk7AHsvArLe aRySWPNYSSXxu5UaT3Z6Rf8Aja0EbIqvLkY9Aa5vUvGF5dApDiJMY45P51gWlnPdvtijeQ9wozj6 mujsbRdOsZZxax3U6sA0zjdFCPQ+rZ7DNOKW6Rfs4rc5x2uLlizbmJ/EmrEOj3cqeZJGIIR1klO1 f16/hU7X1/NMqRht0jYXYoUE9sAClmtpy4WbzTcKWWXzeQpB6L68dc96rk5nqy72Iy2n2XEam9m7 s/yoPoByfxI+ldBotn/bFyYrBPs6KoZ5JFB574UcYz0zVGz0fCea8eF/vOQo+uev4CtLSjLaySjT leWVwVJQEL0zjNVy2TsZymtkQX3hgWl5J500cwYH97uCBWPqDwcegplu8OnIqx3jXsyklUjUgAn3 9K3bPQDqLLLel7pyAdiEqi57E9/wrpbPQYLdQNqRgfwxKB+Z6ms3VjHfVke9LRHI6fo1xqUyy3gb 5uVhBwAPU+grr7Pw/ZW8Sq8KFu+BgVpxRRQLiJcZ6nufrQzAdT+ArmnWcnpoUoJbkI0+zVdohAA7 VG+kadI257WNj6nmpy4HQYppc+tZ3l3L0RHHpenRPuSytw3rsGRVzcqrgAAD2xiq28nvTGbPfijV 7sOZLYmaXPQ1GWB4qIsRSgk9qLEOVx+R60vvUeSDz2pwPFFgTFpCQBzQOtLhTgMMjPI9aBCA5Gc8 U4GkwqjCjA7CkJ5oHsOJ4pMUgpe/WgBCKpXNgktxHMrtE6sCzLjJHcVepDTTa2FY57UdI8q+e6j8 n7ShEkMmSrHsQexB6HvzWe3iC4kBa4txbSxvtKAE9c+vGD6jNdRd2iXSKGZlKnKlT0J9R3rKOmQk S2tw7Ayn5CTww9AexHPB69q6ITj9oL3djCvYk1pRd2jeXfRqQ8ecbwOMj3A7VlWNtKjSsdu0qSdp zgg5HvnNWEWTQtVMd4xDI2Q+QAy9iPf1rZniW4uYry3aM2zkNvTkPjqD6Htg1u3bbYNUecaixk1K 6f8AvTOf1NFGokHUbrAx+9f+ZoriOg9lsP8AkH2v/XFP/QRU9QWH/IPtf+uKf+gip6RysKKKKBBR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRnFFVb+3a5ijRQMCVWJIBAAPJwQQfpigFuWs8YB4orMeG +SWRYCVQJtjOVCgjbgkA4xwxICgkEjJyMXLcyABZAwxGmdwBO7Bz8wPJ4HYD0znABsnpTuyevT9K rotwLiYs6GIqNihSCDznJyfbPHPbGKyYdOuY1iHl5CnIUhMB8INxAOAPlbkfNz7nICRvc474oGcn Gc96oNbmTUndoWVMECVWALZUDBIbcAOwAxkZzzUNxZzPp1pEE3NFGAyfKRuCYBO7ggHqRzzkc80B Y1QD2B/Ck546+1ZM9lcPNK0sSXCuQSob7x2uBw2AMbl/LIyRVqO3eM3JYNIZI1HDkF2CkHBJ+XJx joBnNANF3BGeD70YbJ4PTmsQWE+6Nkh8pgQVXagWJsjJABJAwOCDkkHPBIJDYTIqAwAbSChOwGNv kJc4OP4WwRkkYz1JoCy7m1RR3ooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAjzPWNVu49ZvUiup4lSZ1AWQ44Y9s8fSqb61qTSF xf3GScnDkD8hxTdbtpDr2oMpQg3D9x/eNUQkqkgxE4545FejBppJo6VFWNqDxPrKABdRlPb58MP1 BqK71nVJPmkfd/tKoH8qy/LZlyoxjsTg06CadCQqMR3AFVaK6CcVuX7fxNqdsw23MmB2Jz/Ork2u rqabL+FWYjAdeCKx5I/MGTGFJ7E4/nVeSGSPkDAz6g1NuXUTgmXp7Fof3sDB427MM/nUNpe3FpPu imkt8nny2IH5VYs5LyNAAgljI5BGaZOmXJEJBI4BOACfrVpXGuzLNxqGo3IKTXk0gxxzwfyqqsGE dyJFZeSxztGemfqajMUyoG3ouOgLjP5ZrS0zVryJSk0C3UBGGjY4B9CfUjtmhtLRIGraojsfEd7p sgFrPKI9uGDEHJ7ke3pXXQ6vB4isDam+UTFcGKWMAk+xArktUjsJhvt7ea2kPJU8r+BqO0MIjUTK SAOGQEFT74rNwvqQ4qSI9Q057C5eMlSR2Yc/UVQjaWGRWWRk56qSCK6T+13VBFPHBqNuBhfOUhwP QN/jVG++ycT21s0QI+ZCdwX3B/xqrX3Ki3sxzajctGsd4n2mEjhnA3AeoPWnjT7PUFiW0uoY5Y12 iJ1Ks/JOSeQTzjjjAFQw3MOomO3uXMTDAEqgnIHYr3PYYxWnfaAtlH9rnaS3h/5Zyq4Yk9gV7E/W htbCaS2MmWxlgnWGUNBJkAbl689QR1/Co9Sf7LduiOJVBwku0qWA7kH+vNdNd3V7Hp8Md/A2o6XK qvHdKgDgdxkdD255rm9Vt7Y3CfY3m8pxuVJ1wy8njPf6ikm3ew076Mv6VrhTbHLdNCnqFyB+Faep eH31W2+22l7b3HHJztP0PofrXHm0CoGeQAHtg1e06/k02TzbVpCpO18j5CD2IPFSrvXYTp/aiTLc ajp2bS7RtgBKh+3uD3rHlYvKSrEjpk12ljqVlPE8d1Ext8ZMZO5UJ7qTyo9jx71i67p8FqyS2rbo JQdh3Bvw471SV9GKE9bNGCGIbJ/OvUvCV5a3mkpbpteUAhoJDjd7gnrXn+lacuoXscc0yW8RIBZi AT7AdzXZ+INCOnvbXGkvIzxKB5CckgfxA1i4/ZbLmky9qXhCw1EsbN2srnqUOcfl/hXL3fhrVNOS aJraOcPjEikEqAc8dxnvXQrr8rWCSX1tLLEBgzw/LLCR2dfT3HBrPl8YiP8Adpc/aYzyDLHgj6kU 6bqLQyu1sjmGsryI4dZE9eDxTGDKCGmce3NaF9qt1ePmLIVjgBQcH6Gsx4rmWUouJG77TnH1rqvZ XZpG73IpCP7xP1NRDBdVyBkjnsM1fh06MXcUN9MYRJ3wML6ZOeBWlFpC/bFt7d4kLfKJmcFHYdlY 8HP8+KiUmVdGFcWMsU8iEqwViocHhsHqKmtbGNpVFxKASfuJjcfb0H1zWjLb3GnbZ0glaYZAMifK QQQSARz1PWs6PT5V2+eGTd0RRlz7AdRWHJG9x8xeutVeGRbG2jRLONxugifIkPfc45Yn2OPStDVL C6S2toHMy7gJDCeAMjsB0x0PeoNN0C8eVZGjexhyCpZSXf2FduftF3eRPKGcxbQURQWYA5IJHAzR zcplKavZGL9ltI7XS2s8wzwqGl25J3DBxg985/CrQspbiXzQo8yRmYhzuYEnOcDjmt2HSluLmaZg 0CM+dgADHAHftWvBbw2ybYlC+p65+prF1UlpuRySm9Wc4mgu8kRni83ON0khzt+ig49K3bXTrW0K mKMKyqFyO/bntmrJfGcGmNJnrWMqkpdTSMIxJAyqAFAA9AMUhcfWoCxpC1RYrmJC5wQOKYTmmZ5o BzxTsS3cCaO9BPFNZgBTExxPFMY/lRnNQXshhtJpO6oT+QoSu7Et6FAXlxeXUqWgGyL5Sx5LN/dA 9u5NXYINSXaZWtSO6Bmz+eP6Vl+FXaS2kZgQVwF+hAYn8ST+Vb+PetJuzshRXcpRXgkuHhZTHNHj ch6gHoQe4PqKuKRjNUtStw/k3KEiaE4BH8SngqfboR7ircf3RmpequC3JKKSjtUlC59aTNFFACg0 Z9qSgZ7CgBaQml+tIQTkg8UAJUVzbx3MLRyqGUjv2qbqKQmkm07oTRh3cVkkC2utwfarVP8AVylS XjHfkckdORz65rJu9GNlG174auvMtmOXj3hgPqD1H15rqru2W5gaNjgkHDDqD6157JcXWk6nLFKp jfBUuWJXBHBx3H54rrpe8tGVFvZnJ3jM97O7gBmkYkDpnNFPvQxvbg5Q5kbkMCOtFYGx7JYf8g+1 /wCuKf8AoIqeoLD/AJB9r/1xT/0EVPUnMwooooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFMlmj hCGVtodwinBOWJwBx0z6nin1BeWwuoljLlQG3ZAyehH9c/hQCsOS4hkZlWRSVcxkHg7gASBnrgEd M06KVJk3RklckEkEEEdRg4NUBpbBlb7QCQ6u2UOSw2kngjqVyQcgZ4GRkz2lobVYkDhlRWBPIJJI I4zjseTz6Yycg3YsGSNd2ZEG0gNlgME9AfTNCyxscB1zlhgnBypweD1wR1qhNphlaUiYKsjEkBCc ZDZ53Aj73bAODkHJpDpIZyzShiwIIKkDJLHgBgMfOcg54HUZo1CyLkt3BEis8g2typXJBHqMZ9fx p4mjYMQ64UAkk4ABGQcnjGDmqb6YWiRRcFXXcCwTIIYk4wSTxkjJJJycnmlfTQZRIkmCAqhWXcMK VI4yO6jOMZBwegINQsi4ZolZFMiBpD8o3DLcE8fgCaRp4lj3mRdu0uCDnKgZJAHUAelUX0lHhZPM AZiSWCY4KspA54A3EgZ4Ax70HSgUlUuhEqMrZjLEE7+QSxI++c8nOO2TRqFkaBkQIHLrsPRtwwec denWgMrFgrAlTggEEg+h9KqyWRdSoeMKJGkVWj3AFgwIIyARhuPcd84ElvaLbyMysDuGCAuOdzNn /wAex+HvQGhYooooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFAHkeuxt/buoEhgDcSH7vbcefpUEMBEAuFuAhEmwJjLdM7senb61 6ZqPh+1lWe7eOae5ILIrNnkngDHQc1QfRJ4beEoIC02AIwpB6ZJzjPHSuuMo23NfaaHESXd5HIFb 5wB/zzHShry4fKpHLg9MRjP8q9CvtKuXm8+Kwjgj2hdikMT9enJz/jRb6NfyMQR5IXoz7QD9ACTV KorXuS5tbI8+jlvtxDxzsuRtyuAOepGOfpUyG/aVlSz3HBb7gBwO+K9DHh26lK77hVXPzEKSce3N WoNB8mzubcylmnP+twAyipdZLqPmb1seXsmpTNhrWcg9gCP1xTnh1FWCLblWAyVZtx/WvSn0OdEC wzeZ6+Y+P5Co5NAmlto4/KgjdCzNIXyXJ98Zo9su4lKXY87RdTJCrZIzDjIjGabJBqjkK1pLz2wR mvS20K4axjg+0opjcMu0Y4wQcnGSeaaNFvEPyzo/plzn+VNVl3Dmkuh57Hpmssu6G0MeBg/NyfwJ qe3sbqMldQ0ySVDxmFwrD6AcH8a7t9EuXwSYgQMEmQnP14pYtAnDhpJ4VHoqk/4UvbJdSeab6HKj QormwDWTPDzkrKp3A+hH+BrM0nSdSGrFDbu3l9UK8MP5EevNejLozou1LvP+8v8AXNH2G9gQvFMx kb5SFI2hfUZ5zU+27FJy6o4htEhv9ZNutkbEqAZNuWAI6gAdM5HWtOy8KW+nxXNzftFNH0RCCc+g x1yTgV01vJPZphbOZnxudsgmR/Un0x+XAqGe9vbmYR/YfKif5GaVTxnvkelS6snoin6nKB/s9itl HiOMFjJuJOc9VwCRgVNZ6XLd3lnax/6uJDJiZMqFJwcZ5we2D15roINOg05Jkth5r4zvc7go4z2w D3qwumRmdZHMhcJjzRIQxz0GRjj2puqraGet9ThdX8O6jHM8dvGJYSxbIIwTnGD6EY6Z6VOPC6ac 0b6mN0JXhEYkFj6+h/zmu1/sa18nyo57mFGbeVWQnLfjk1atdMtLdzIN0jFAhMjbuB9fWl9YNNXo jkbbSrQSRXFvptxCxJCNE+Q/1B7fXinyeH9Gmn8x4HgmBw6AlQD7gcD8OK7MxIkwlQ4IXbtxxj2o JibO+NTu4JwOfqaj2zEovueZXHh+4TV1eCVVhDAeaoyUHsATx2ya6iO3miZUjQtxkMxySAcZI6jm uiNnbSBwgCBxhwgA3emakFpCMk5YldpLEkkfWnKvfoEoOS3MX+ztQeMNi1EoBOcHPsp+uea5fVvC 5e/LrpzDKeYwicYJBGeD7nt2r0MNsUAkZHBI70GVHBVxlSMGojWaY1FI4mw0+0uLAYa2smRGiA3Z 3Z/j54zxwearWekRzstvpSb3QgTu6FQ6nuTng/Qc4ruvspKKkTR+WuAismduPSojpzrIZopvLmf7 5C8H04z2q/bb6g4mJb6daQStBeyJLamPhWQKU2noSOSPTPNHk6e08iLDGtupDwyRKVAbHcdOo68V vpZv5Sq5iLKch9mSOc/nmo10qAyM0u5iTn0GT6Cp9p3YmpdDHv5jqVo1tOxKOVLBDg5GCcH0JFOs tLMCKkEYt0Jz7k+5PJroo4YYRiNFUewp7FT1A/LNL2tlaIvZt/EzLjsoYtvnzjDN91OBk+prSRYY IwqBUTt2FNITptUj0wKaUj2ldilSc4IyKzbb3LUVHYJZwrDALA9SOcUxbgSKxAZSpI+YYIxT/lC7 QoAJzx/Oo5I0kILoGIPBNCB3GCZXJCsCR1waYsqu2FOcgke4zjinvbQO2SgBJyQOATjH6UrW8TBc AoVAAZeCAD0/GnoS0yISgkYPBO0HsT6UssixIXY4AqXyoxGgAHyEkYGOfXHrTl25GVB5yMjODSuh WIFclipBBGCfxp5PGakcrksFHPJ461GCCOOnamO1hgkVnKhuQcH6+lV9RMywA26lnLqpwMkAkAkf QVdwgQDaARkggc5PelVgpB9OhovYVrkAiZJlVAwUAhgST9Dk96ra1uXTZtrBWK4DHoCe5rSebcOl VrqJLu3khk+7IpU47Zpxdndg12G2N1GIYIZnQCVQYsJtBHp9atyQFeV5H6isuSDyzbRtb4ijQxq4 cbc4GMgjOeKssp822CE70bAOTnbjkH2+vehrqh30s0JJE8+0kFUVskEcsR0/CpgAoxVkgEdQarmF 0YFmBHOfTPYVNxONtQBozQKM0wAnJxR2JwT7Cg9QaOB0GM0AA6U4cCminAAZA4FA0NCkMTuJBHQ9 j7U9fukelGM9KUAY6c96QJEeKTvSt14pP5UCYVj65psN5GJJBhgMBwOVPY/Stc5z1GKRk3oynoww auEnF3RLPDr5WF/cByNwlYHjvk0VJqyFNXvVx92dx/48aKXMdB7BYf8AIPtf+uKf+gip6gsP+Qfa /wDXFP8A0EVPQc7CiiigQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVDcTrboruPkLYZs/dGCc+/I A/GpqjnhjuIWilXcjYJGSM4II6e4FAIqLqkQUNMrRYA3A/MVbncDgfw4GT7inpqUDKpYOjMwUKUJ JznBHHI+U9PT6Zkaxt3LEoQWcyEhiCWIAPIPQgDj2z1pp0+2ZChVyrcEGRiCOTjr0yTx7+wwaj0I xqluCwkLJg4zgkEYBJBx0GRk9s1cDqwYqwbaSp2nOCOo47+1Vzp9tkHYwI7hyPTI698DP0FWFUqS dzEli3J6Z7D2oB2Kx1O02FvNJUAkkKTgBQx7ehH1PHUUp1C2DbTIckkABTzjOccc9CPcjFC6faoM LEAMqcbj/CxYd/Un6jg8DFC2FspiIj5iChDuJxhtw788knnr3oDQVr2JJpYmzvjYDaoLE5CkHA6Z LYHrgnoDhjanbKRy5Ugln2EBcLuweOuMcdcnFSNZQM24q2/IO/ed2Rtwc5z/AAqfqPc5Q2FsY/LM Z25JxuOSSoUknOc4A/HnrzRqGgxtSgEZdA74GSFQkA5IwSAcHg8d8e4zK13EsayYchmKhQhLZGcg gDPGDn6d8jLRYwDs/uN7YJySCRnk8n8/YYc1pE3UOPmLfK7DBJJOMHjO45/D0GDUNBYLmOcsIyxK gE7lIyCSARnqMgjPt9KmqOOCOIkopBKhSck8Akgfmx/OpKBBRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBKsUK7JNgL45xkfT/Pen mUkDIUkdDjkfT0qEHIHB9OaUZzQPmJDIeDnkdKTzGPJNMoo0C7HiRh3oMhxkmmdBSjkGjQLsdvPq aA59abRRYLsfvJFJvOeppB0ox3FFguxd7eppd7A5zTRRnnBosF2P3n1xSiRh0Y1HQeTmlYd2TCdx jJzUgufWquTn2zS0WGpMtGWNlI2jB6jHWomcE1DRilYHK4Ft2QuSeh46UOxj2j5juHIHY09JDE2Q AQRyMUSsskm9QemOaYum4ByccEk8YApN2een1pVIDAntTTySe9ADlJByCRThK2OTUeTjGeKU4AHP vRYE7Di5J60h5PvTaM470WC49JGQ4zxU4nPTvVWjPNKw1JotGc00yn1FVpJBHGXbooyaI5QcZUDc OD1o5eo3PoWPNJ7ik8wnv+lRjAAH8qAQaLBckLn1oDkcd/pTKORntRYLj9+eopQw9ahGcA8jJ4Ht TgcE4xz1oBMlzSE+lRZIpQc4oC44n1xSbgTQVGM5Oc0gFAtRQeeDQSM4ppFGaYNjqbSjJooAQD2o 70tJQIlSQAYYAj3pxeMZKqAx6kDmoMUn50ilIezkk4wPpTdxPGc0lKRyQOnagTdwBoFKRnDAjngj 39aQDHNMBTSZx2pCaBk0CuOB9aUNz0H40lGKCriljjt+FIDg5o7UmaBXDNBIoI60lAhTQD0+tJmg daEM8R1z/kO6j/18yf8AoRoo1z/kO6j/ANfMn/oRoqDoPYLD/kH2v/XFP/QRU9QWH/IPtf8Arin/ AKCKnrQ5WFFFFAgooooAKKKKACiiigAooooAKKKKACiiigApCwXGSBkgDJxknoB70tUdWs5L60SG NzGfMVi4OCoBOSPcZ4oDdl1WV1DKwZT0KkEH8RS1iS2mptFiFkgYQbFWOQhEIRlwFxjlirA9QBjt gvks9RWecxzs0RAVA0rA4+TI653cOcjGc8k5wC5VkbFFQWSTR2UCXLbp1QB2znJA5Oe/1qeglhRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAOUMRyAMnj3FOx9KYMnHelApiuOx7ijFNoOCO+f0pWGOxS4pl HTkUBcfg0YNNzznofajn1NA9B2DRj0pMnHU0bvegBaKTcR3pcnscUBoGOlLSbiR1o3H/ACKA0D2p cUm4+tG4+1AaC4560YpNxzSgEg8jIoBCqDuwASSDgUhBXgjBA5FAYggg4I6EUEljk8nOcmkPQACT joaAKCxyMmgMRxmgApSKNxz2pAx9qA0FxjmkIzg4o3H2oBkCBmA5bA47UBoHelxSZwSRTtxPYUAQ 3S7reRcZypGKbBnyYcjDA4I/Cp93OMCgHBzgZp30FZXuI7bAMgkk4GBQvzAEZORUiyMmSAD9RSFi TnAH0FIeggprEggAHnqaduPGAM0bj6YxQDF5IGTnjj2opMnHQUBh3AoHcDSigsAOlG72NAaCk8Ug 70m8e350oI64NA7ikgjFNwAaC6A4I5+vSlJAGAPzoFdAOlFJuJPJ4pQR0zQAUUEge9AYZ70BoIaK XK9qMj1oDQQUYpeD3FAHIoAAMHmkY8cUHrml470AIUPysGzkHI9KUDFKGHTOPemkmlcLIWkzR9KK YB360UhznNGeeaVhATRR9KQmmAUDqDRRnkUAeJa5/wAh3Uf+vmT/ANCNFGt/8h3Uf+vmT/0I0VB0 nsFh/wAg+1/64p/6CKnqCw/5B9r/ANcU/wDQRU9aHKwooooEFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFRzzR28ZkmcIgIGScDJOB/OpKhu7ZbqBonZlUkHKkg8fQigERm/hyAu9iwG3ahw2So4J4OCy 557+xqSK5hlKhZFDsCQjEBuCQeOvBBH4Gq8+nCdyzSA4AChkDcBgwDEn5gCvAPTJ65pItNWN42Ez lUJIQAqBkMCAAQAPmOMDIwOccUaj0LMlxHHKsbFgzY5CkgZJAyegyQQKRLuCTydr585mVODyVzn6 dD1phtCLiORZGKR8hHy+Dzkgk8HBAzzjHGMnL1tgoiAYny5XlGR1Lbsj8Nx/KgNBZ7hIGVSrszBm CouSFGMnHcDI4GTzwDTTfWwR281SEYqwBGVIznI7fdP5Uy6szdQokrqSFIYmMMMkDLLnlWBBwe2T wezJNNSQgl2ABJxgHOS5Of8Avs/kKAVrFoXELKGWaIqQSCHBBABJ5z6An8DSG5hETyCRWWMkMUIb BHUcd6rPpkb3AmZ23BixGBgguWIP1BK/Q0sVhsgmjaZ381VUsRkjAxnqevpwM5wAOABoTSXltHG7 tcRbYzhiHBwcE469eDx7U9riFF3PNGozjLMBzkjHJ9QR9QfSqsmmq4O2UqTGYidoI2ndnj1O8/kO uSC19M3lsTsuSSpC4K5Lk4IIOcueQRwACCMggaFkXlsxAWZCSWGNwBAUkEkHsCCM9KPtcG13EilI 08xmXkBckZyOv3TwPSoH05XVwJWBYkhgBkZLn9DIfyFOj09VjnR5GYTIUY9CASxJBJJzljjOegzm gNCVbqMgeZmBiwULNhSSRkAc4OfQHPUHBpRd2xYqLmHK5yPMGRjk557VFJZPNuMtwzMytGxCgDY2 MgDPBOAc8854xgCK403fDhHw4CgZAxkBxk/99k/h7mgNCyLy3JH75ACFIYsAp3EgAHOCflPA9KlV 0fO11bAycEHHX/A/lVGXS1kdnaZwzhgxAwCGLE8A993GcjjkHJqe3tjbyOyyZWWQyuCoGWI5xjoO n5d80A0iRriFHKPIqMGC/MQMkjIAz1PtSG6t1zm4hG1tpy4GG9Dz19qrPpgkO6Sd2cgqWxjKkAEE AgE/KDk5GSeMcUp05SGDSscxmFcKBtUhgPqRuPPfj3JA0LX2mDc6+dHujJDDeMrjrnnjGD+VBuIV ZlM0YZQSwLgEAHBJGeMHj61R/s0zO4nIEQYFApySNzEgnA4IbH59epcNMGVzO7BQMhhnJwASRnGS Rk8ZyTyRgACyLi3EDsirNGzONygOCWHPIGeRwfyNEs8UTIryKrOQFUkZOSBwPTJ5Paqf2Fxdghh5 LSNK53EMWIfgEcjG8c57du8k+npMGXzHVHCq4JLEgEkYJJI+8fX8O4GhOt1bvs2zxN5hITDg7j0w Oefwp0UscylopEkUHBKMCM+mRVVtPVxKZJCzSlSxACg4KkAAdAQoB/OnWMFxFuMzJ8xyVUZ6Kqjn A7KfzHToAHboW6KKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACg4HWjIx9K MZHSjA68U7CAEE9Rxzilz04pMAnOADjGfWjnjuKAFxzRQPakOe2M+9FgHUmRnrSNnBwRntmlGQOe TSAUUUfhRmgYEcAgknuCOlLnHWkzQRxxwfWgBT2I6UUgpe1ABSgLghgSSMAg9KTNGCcAAZJxzQMA QBknAAxk0ZHUc0mCCQwHB4xSgADAGKBDWcKMnv0prNKo3KqsPQnB/OkkRpHXHQEYGOvrmrYtm2dO 1F0gSb2KsUyyMRtKsBypqXgc+veq5jK3i4BAAOTVim7CVw70AjOB1oP5UZ4A4AHoKRQtGTgAkkDo KTINH4UAAGOmaUUg60uMHrQAf1oGO44opCAQSWIx0FAC5/wpNxDEbScAEntzS5zjmgkAZIPXtQMU UvA6daaDkZ59OaUcnGaVgEySf50pBxxij8aUHrQAmMcE596iuHZY8r1JA+lSAg8g5FBAI5GRnNNC epTu7g20USiMySzOI40BAycEkknoAATViN2BCSKVfGc5yD61PcCCeJUaPJVgykcFWHQg9jTSxbBc 7iOjYGf0ouNqwgCgMSuWYAZ9KU9MUZpB1NIAPA9hQDkZBpeMf0oJJOTQAlFHHajNABz2oJPeimk5 PHQUxMcDSgkHg00duKUDmkMfuz1FAweDxSE8U0kk0BccQOvWimgkD2pynIoAMUZpcUmKBgaSg8H3 oBz1oEFGDilAPUdKQn0ouAYx1pOpwfWikBy2CKBHieuf8h3Uf+vmT/0I0Ua5/wAh3Uf+vmT/ANCN FQdR7BYf8g+1/wCuKf8AoIqeoLD/AJB9r/1xT/0EVPWhysKKKKBBRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABUNzK0EJdQhwQCXfaqj1JwT6AAAkkipqjmhSdVWQMQrBgVYqQQCMggg9zQC31Kr37orE2 7KwSJgrE5JckEEAE8Y5ABJweMc0QaisjDzVWCNkV1Z2IBJVSQCQFON2ODnI6ellraJx8yknCjduI YBSSOc5yCTznPNJHawxOGjQKQMAAkgDAHAJwDgDJ6nHNA9CMXW66SJFR0cEh1cE4AJ3YAxtyNuSe vakuLp4bpYygEZC/O2QCSSMAgEAjAOCQTnAqR7WJ3d/nV5BhisjDPGM4BxnHfFOktopJfMdCW4zh iAcHIyAcHBORkHFAaFRdVi8oPKjKWJ2cgB8HHBJAGMjOcde+KlGoQsqMgkfeQFCrySduByRj769c d89Kk+x24VVEe0ICFKsQVyQTgg5ByBzQtnbrIJFjAZcY+Y4GMYwM4H3V7c4FAaEceoQOVOWVCAd7 gBQcA4JJ4OCPbJwCcGh9QhEnlowc4BDKQVIJA4wcnr1AxnjOeKWOyjiuRKhICjCoOgOAM+/AHPX3 IAAke2hkkDum5gQRknGR0OM4zxjOM446UBoR3t59leJNm4yghckgBsqBk4OB83JPTHckCmzanbwA 7y24EggADkFgepH9xj78YySKmNvEY1R1MgWMxZckkqQAQfXOBk0wWUOJNwLF33k7iCDtCgZBz0GD zzkk9aAVhp1CIHCpKxJITao+fGckZI4G09cduuRQNQiZlVElcuSIyqjDkEAgZI6Z5zjocZqUWsKu XEYDEk9TgE5zgZwM7jwO5J61XOmJvZkkZcDCADhBkE4568DkYPqTk0BoSRX9vIm9pUjBwVDsAxBA IODznntTE1FCzBopU2sAcgZCkKdx54GXA4yfbg4sQW8dvCIo1+UAA55zgAc/gBTFsbZCCI+Q27lm OSAAM5PI+VeDxwOOKA0G3t59leJSm4yAhckgBsqBk4OB83JPTHckCg30avsKSFixUEKMMQSGI56A gg5x7ZqX7PGY1R1MgWMxZckkqQAQfXOBnNItrCjhxH8wOQSxODznGTxnJJ9TycmgNCvHqttIIypb DuEGSvU7cHrzncOBkjnIGDV6q4sbcbcRn5SCPnbjBBA69AVXA6DAxU6qFUKM4AwMkk4+p5NAMWii igQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAoooHHegUx AOlLSZoB65oABx3pR1pO+RS5HWgApQQRSe9ApBcX6UlGfpRQMMYNLR3pAxJIIwB096BC57UE45wa QgkHHB9cUAEDBOfegAPTIBNLx1paSgYoHqAR6Gj2ooz0oAATnjrVhbpwuCFPoTVeiiw02hSSzFjj JPOKQkgZAyaAQSQCOKOelAB1Az+NBUsCFODxSiiNts6rk8gn8B1oD1B4vLlGGBBHI96KRmT5ihDI MjIoUliAFZs+lGodbIWloIZSQwIxSdeDQAjMFIBySegoVgWKkYI569RSrErzozHAAxSyxoJtynoM UXQWe4U4MQQehFNqPcFYgZJHJ70WC5KOSSepOaUgAE596YWAGefwpQc8EEdiDSsO41XDYxnB6GnA gkggjtz3pTt2qoUALxxSEimKwjOoYKoAPcdhRgls7iABgADv6mnHABGASepI5pjsERmI4AzQg2HG jPFQrITEHOfUinsyIBk4LHAA5JPsKLAncfQBjuSSe5pFIKgjODzzS54pDCigk4NIc4oFcM4yaM0g BJpcGmFwJJ4oApQOeaXFAJCDOeR9KcBxSEgEdSScAClzxS3GITzSY4ozk0E8UAHtSr2NJ3pyjg0M BQQTRt+lIVPU0DIzmgYHvmgUHGOvOaQDPSgQhPOKcCuw8c+tIQRgnoaTknAoATI7Un8f40vr2pP4 xTEeKa3/AMh3Uf8Ar5k/9CNFGuf8h3Uf+vmT/wBCNFZnUewWH/IPtf8Arin/AKCKnqCw/wCQfa/9 cU/9BFT1ocrCiiigQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVS1dpU0y4lhleKWNC6lMEkgHg gg5FALVl2isW51GSC6eyXe4j2DzCRvJLJnPGCCGI4AHBwc5wLrM+XDWoUorEkbiMopL4wOgbaB65 J7UXK5TaorGt9XnmeIGBAhdVcgnJ3OyAjGRj5Qep4PBPBrZoFawUUUUCCiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigBaBikyBiimSLR2oJ6c0CgYUCigD8qAA0vPagkd6B7DFABx3paT1ooAMjOMjPpQcnvijr2FA GT6UgFooIwcZB+lH1oGKQRj396TvQMdKXGBQAmcHFAz3xShjtIABBPXHNB9qAAUgGOnFKQQSCQfp QPagYADnGB3ooooEGaVflkV8AkZA/GmFzkhQCR1yaVGDKGHQ9qADYuxlAwDk/jWVHcTzeIWskkZL e2gDSBTguzHgE9gBWtWfbW5g8VPMRmK9twm70dDnH4gk/gaqL3GlqV7t3stTtp4nbyZHEMsZYkYP AIz0IOPzrY2u77VXgDJIqrfWnnX8Slcxowdj2BByB9c1bJYBthIYggH3x/jRJppCV76iKHIGRzz1 pc8VWtrd0giDu5uBzIxOQx7/AIeg7VZIwe+e+aTsNCjrzQCFVgADu6kjmkzxQMAccfjSBBk5HGB2 NDkhWYZJwTz3NBJAyBkngA0YYZDYJB6g0AMCSLGjkEEkZqQEg0pdiNpOQPWolEoZizqAMbVwTkdy T+mKNw9CQ89abIodCnYjFO6noBmkOBz0oQMUxItuiggnjNJgblboy5we4zwaAQRkEEH0ooDToKTn rR2oooC4Ck6j2pe1IRxQDAAAZpwFIOPrRglSpIyRgkcYyKQxsc8UiuySKwRtpIOQD6Z74qSoLW3j trGK2CgiNdu7198VLk9qYEcUjyPOFiOyIhQc8k4BJx6c1Jk4+tA4JI4J6kd6KGAUE44o7UGkAUAn tRR3oAeGBAB7UmSegpAMj6U5WxnNADTkUhz1pWOTScHGenegAyTQODmlIXcdoIBP1xSHg0ADcnOM ZpAMuKk4C5NR5weKAPFNc/5Duo/9fMn/AKEaKTW/+Q7qP/XzJ/6EaKg6T2Cw/wCQfa/9cU/9BFT1 BYf8g+1/64p/6CKnrQ5WFFFFAgooooAKKKKACiiigAooooAKKKKACiiigAo5zkdaKrX1u1zFGikq RIrbgcFcZII9SDg4oBFrJxjJxRyRnnArLt0vY2VpI2GGZmRHUrgs5IwSCSSVwe3GSOcuv7eSe4Bi iYMIyFnBGVbDAAEkFRkgkgEkEDtQOxpEnOCTn3pKp2kZjSaMQNCjEsiYGEGAMcEgEkE4Hr61AovN loqQyxiIIrgsuDgqG4DcjAbHX6A4NAWNOjB9KyjFqKiICRyAAWJIJ3YXOeR8ud2RyOeAeMWL22eS VnjVmBhKEbuD8ynaATgZAYZ49zQFi7gjqKM8gevSsyOC4hlSUxjyYvMKxKfmRSSQABwT90AA4GAB jvJd28j30cscW4gIAzBSowxJ6kMpAOcgnPQg45Asi/RWXbx348vz2mIBydrKCG+XJJycr97gevA6 YuTxtMLdgrKVkVypbGB3yAcHH4+1ANWLBOOScUVQvomuoYmELtjcdpVTgkYG5WIBB55BBHbgmoTb 3qIPLLDcWMiq+cfMCAuSCMgnJyDjvnFAJGrRVOyS7SdGuHZgUIcEjAYBMEAdOd549fTFQQxXJhso zHJCIohHI25QTymcEEkDAb0PTvigLGnRWZPZz3MdsJQhdbZ1dnVXG87McHjJweR6H1p9rHcJcK8s cpAjZTl1IGSuMc54AOT3IPXNFwsaFFVZ4EumtJHgVtrhmEiglVKtwc+5GR6/So7SKeWOaO9V9kgA wzAkZBBAIJ6HGDgDuAKAsXqKzI4byMWxAcuxD3BDDBYkbgRkdFBA6jAAABANLPa3JkleJ2GZt6qA uP8AVgA5POcjoTjj0oCyNKisd49RCNsVw+wBW3LkkFyM5OccrwScd88066N1AjO0koRiTgOoYN85 AGeAOE4747kkEuFjWopkTM0YLKysOCGGCSOCfoafQIKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKAGkjjIBGacAWzjAOMjNAOMjjB7GjOAKZPUBnHIwfSl7UDJIA79qVlZcAqc noKB2EozkUgIOTS8HGAQRyTnrQIMH0PFKDg+5pAc9DmjnrQMXNGcDk0mecEEd+RSqELZcEgA4A9a AQZ6EdPWjtSLhVC5OBzilIIIIYHI5GOlABTSzNkJjIPU07IJxmpLS3VgxLY56UaLcEm2VlldZAko GW6FelTfSkurbbMhDAgHJwaKHZhZrQMgHsPalGQSDkH3oFs0sJYgHqRzTYy7IpkOWxiloGw76Uva k4A5pAQehoHcdRjmmktuUKVCkncxGcDHp705ScDcBn2osA+MqgOUDE98c01VCqABwKeBmm45xQMa TSgAkE9Qcg+hoxzzQTQArMWYljnPem96KB74/CgLjS+1wACTjIpwO4gknB5OOtKrFScAZIwSR2pK ABmCqSSAB1JpquGOMEHGee4qK9jaW0dE+8cEfgRUzRGMxluu3n2p6E63HUUgOScEYBwcnmlpFXIl DyXLIFJUAfTmnRggFTngkDPpUqyNGDt4z1OKYCTglSMjIz3oFohenNQXcUsyIkRxlwW5x8o680XM hWWBArEM3zAHGQB6/XFP27vMjbJUjGM9j2p7ahe+gjHyztj2yA4AC8jn6dqkGSMEYPelBAIICqQA BtGMAVWmuCLhYVJ3MNzH0GaLNi0RZ70oqJCQ5QnIxkE0sshijLBSxyAFHUknA/nSsNMfS0g3BiHU KR6HNLQMTOBk9KUGkPWlznqaAQgz1xiloJHrRn0/WkMOgNIAcsSQBxgY7d+aU0D2oADQPegmk68U CFHP40oGOppCSTkk5ozx70DHcdKQ8dKSgEAnjNAXDrjFAoNFABQaKKADOOKTGTxn8KCaCNygEkAk E4ODTEeJ63/yHdR/6+ZP/QjRS65j+3dR/wCvmT/0I0VmdR6/Yf8AIPtf+uKf+gip6gsP+Qfa/wDX FP8A0EVPWhysKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUc8yQRmSUsEHJIUtgYzkgAkDjr 0qSo7mLz7aWINt8xCucZxkYzigEKJFKggsM44KkMMnAyCMjn1FAkQuEDgsRkAHqMkf0P5VSuNOae 7km84KHIOAuCAGQ9QcZ+TrjPPsKQaWpUAmFWGwApFtACspOOepC4P9cUDsaBIBAJGScDnqaRpEVS zMAoIBI55JAA49yBVCPTCDukkRnBUqypjbgRjjJJB/d9ff25ba2D/ZJYpUWIMYwAFAJCgZJAJGTj Gc/h6gWNDzUy43DKEhhg5BABIA6ngg8etOLKASWAx1ycY+vpWbLpIdn8t1jVixAKlioIAIGTg9Ou MjPBFKukr5zO7q4Ls2GTOc7uuTg4LccdvfgCyL08qW8TSSlgijJIUtgAZJIAJA469KUSLtDZYdOC pBGTgZBGRz6ioTbu9hJbSOuWjMQcAngjAJGevfrUM+nma9acyKFZgSuznAKHBORn7nUjPPsKASRe LBRkkAepOKXIJIBBI6jPIrKGkERlPPDE4JLJnsQe+RkBOmPunnnizb2Jt5EkV0LgMHOzG7JU5zns FIGc9fzAaLlFFFAgooooAKKKKACiiigAooooAKAcdKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAMZNApCaUUyRQSpBHBpTI5bduOfWmk5xQSACScADJosO9hk08 cCb5nCKO5PX6UW89tc8JcR7j0VsqT+dZlov224a5nGRkiNTyFA6YHqeua1J4ozHjaCMdwKtxS0JU rjyMMQABz2PFHOcHGfY1T084WSLgKjHaB2B5xVzHNS1Yad9Rc5OCc4FJ9KOMAYwcnmjH50hijk9K PY0dzijFAIM9xRz1oozSGLXO3uq3Ftqt9BGxdyI0tosD77KMkfic8/TvXRAA9TgVz17pUl5qepsU ZCyRtby4wN6qOh/MH/61a07XdyZXJ7qW+t0sNNS7Y3VyzebOQCVAGTgYA9cfT1OaRJrqw1I2U109 xFNCzxSOBuRgCSMjqOM/l75jlW+nTTtRNq/2q1LLLCRtLAjBK546ZOPf2p6x3OoaoL17WW3hghZI 1lADOzAgnAzgYP6D1OL0JuzNiv79LC1vF1IXE0kgU2jKpLDJGOOeQB2HXrV3UI9Qh1W2hTVJAl47 4xGv7sAZAHrwcdulVk0uSDQbWeG0ZdSikDHaCHIDHgjuMY49K19Rglk1fSpY42aONnLsBwoIGM+m aptX08w1M66luodVWzl1k26LbhzK6qAzZI6E8Ej37VPcXFyTp2n21+ZGuSzPdKBkqMnjGQD1GfYU zUoXXXjcNpj30BtwgAQMA24nPIIyB/OnTRT79O1G2094/s5dHtVADBSSMgDA9Tgeo96WjsMS9l1X TtM1DfcNIsZQ29wdu4gsAQR+OMkevtiW81ZZL3S47O8RhJMFmVGByDjg+neoNQGp6hpeobrV4422 C3gZR5hwwJJA+nT6+mTYvtORbvS3tLNF2TBpWijC4AxySAOM560tOu4akniK5mt4bPybk2wkuAjy AAhVIOSc8YHWqlxPLbaLfTw6uL2RNm11C5j+YA9CRyD39KteIoJZobMx2z3IjuFd41XOVAOQR6Hp z61Uu0e60S/httHktHIQhQgBkO4HgADOAP1pRtZDd7iXGoXcOiXSPMRfWk4jdwBlgWBB6YwQcfhV +zuZI9Y1G1uZSyIBNETj5UPUD2BIH4Vm+IdOuTMHs43mS4jRZQoJIZSCCfwyPzqx4itLp54p7KNp Hkje3k2jOFYcE+wyefpTtFpeYtbkEF9esmlzPMwF5dt8pAwIyQAvTp1P41W+2332O7uRq2ySGZkS 3ZVJcAjGB15yex6VrX9k6zaLHbxs8VtKoYqMhVAAyfyrOj0hm0nUHa0Zb0Tu0LYIfAIIIP54ppxF qXHnvL/UI7JJ2tAlus07IBu3ED5QT0xkfr7VDNqF7bWmq2s1y0k9mqtFPgBirEdR0yAR+dSlbq11 GLUfs0lwJ7ZUnjTG9HABzg9egH5+2YJ7K7ubTV7uS2eOW6VUig6uFUjqB3OBx7GkrfIeoSaleR6B eo8xF5ayKC4ABZWIIbp3BI/Cn/b7uPxIyNOxtBMkJjwMAuhK9s9Qai17T7t44pLWF5GmgWGdFGSC pDAkevBGfapbqxupJNXdInD74ZYDj7zIO3qeo/Gn7tha3BNQu5fEixrK32RpZIVjwMEogyemepz+ FRaRc3F2kEk+uhJDIB9nYLlgDgDqDz9O9T2dhcQXOjSGN9yiZ5mxwrOM4PocnH4VX0iN7SKGObQp JJlfPnmMZGTkHJGRj+lPS2galiz1G5j8QSfaJPMtGuXtkVgMI3BXBxnnkUI9/e29/MuoPC1vczAB UB3KACF9gOfzphs5J4NZj2MrtdGWF8dWHIIPuRjPvVjR4br+ydRNzA8U88srhCpBJZR0H1yPwqXb cd+hJoC3ctpFd3N686yocRMgAU565HXoe3eopVm1LX7i3iuntI7aNdzxgEsxGRnPYZ6e3vxc0cG1 0e0iuf3UioQVfgg5J6VVkFxp+s3F5FaS3dvdov8AqQCVZQAAR6EA8+/tS+0xkU1zqaR2NnKyw31w 7I0y4b5FwSwA4yQfboemeJoJLmw1iGyuLlrqC5RmRpAAysMkjI6jA/UenMMtvqckVjqE0SyXdvIz NAmAdjADAPQkAfr7VNClxqGswXktrJa29tGwUSgBnYgg8A8AA/p78GlhK5td6zNVuJoL7S0ikKrL PtcAD5hgcGnx6k7PZRvaPHNc7y0bNgxKvUnjnPGOnUVX11JjcafNBbyXH2eUyOsYycYGOe3Ss4rX UpvQn1mK6Nq89tevb+RG7sqoDvIGQCT06EfjWTJNqFv4cbUDqMkjyohVSgGwlhnB78ZHTvWq0899 pV6Gs5reQxOio45YlTjH4nFUbu0uH8Hx2ywuZwiDYB8wIYEjHsKuLtoxMkE19pmo2kVzd/a7e7Yp lkCsjcYxjqDkfrW5WCVvNV1GzeWze0trVjITIw3O3GAB+A/X2rdPXpmpqDiLk/hS00fSl3DOO/0r Mq4poHemkmlBz1zQFxRRmkzS5A64/GkFwPGKTGehpANoALEnnJJ68+lAz0pgLkcDvSgE80gGSOcU 4nsKTGhACSAOTTyjDIAz+FIrhGzjJxwKd57HpgUhqw1l2oWf5QByT2pqjcAQePWp9i3ClXOQeoPS laAEgKQo9BRcfKeFa3/yHdR/6+ZP/QjRTtcXGvaiM9LmT/0I0VJsevWH/IPtf+uKf+gip6gsP+Qf a/8AXFP/AEEVPWhzMKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAIaUjIxmk+tL1P0pkh7Y/GmuCyMPUEU44pKa0BlbTYSECkHIJBq/ cRlYyT6U6zMSMxbCknPPSnX7q8exCMng47Um25XKUUoGXpy5SR/7zHB9hVumxoscYRQAAOKcVLhi TgAcD1NU3claC/zopFGABnJ9aX8akYZozzRxzRjvQApOCOKKAT0/MUe1FguB9+lIzBVLE8AUoIB6 ZyMYNMlj8yIoDjPANCB36EQa5choxGF7Bs5NPFyA6xyIY3I4OcqT7GrkFkyoAWB461T1C1bcijBJ YHPpTTT0DllFXJaMUUtSAUZ44oo+tAwpSQoyaKjIZ5lCgkAE8etAh+8FtuTnsCOtOAyaiuI3WSI4 IIOSfapMii2mg0+4EYNFB/SkHPWgBT60UYprFtpCgFugyeM0AKFUYIGD3PqaWkCsuQxBI7iloAay MwADbRnJPqPSndySTRRQMCdoJPSgHKkjIJBxx0pnmAE4BIBwSOgNSE5JJOT3o2EtSG3tPs9milwX JycdznOaqa1qDafaKYlDTzOI4gemT3PsBk1ocA+hrI1+2eX7FMoyIZSWAGeCCM/nVw1lqJ2SFsbF GIlnJnmPJd+Tn29KvGNrYFrckDqUJyp/DsadZQkxggZ4qxLEwjYkcAZolLUUYu1yKGYTxhwCM9Qe oIp5zkknAxwMd++TUNqhSEEjBYk4+tSSqXhdVOCVIB9DUvca2FARmDgAsBgNgZx6Z9KXvjIpqR+W iqWDHaMkevenDJwD2pMaFzxwOO2KB0pcAthR+dIaB2EC4JOCSSDnPAA7YoxgZpe1Ic0AFGSBgHGa ODRQIDwKAc8A0hPGO5oAxQAp9qXuD3FHpzSHrQMX370fjSUDk80AL+NPQjBBGTjIplKpw3JIBGCa GC3Ezk5NFKwKnBwR2NJzyKADJGME5pVZicZPXBNMZ1RNzMAB3NOVsgY4HpSsCZ4nrn/Id1H/AK+Z P/QjRRrf/Ic1D/r5k/8AQjRUHUewWH/IPtf+uKf+gip6gsP+Qfa/9cU/9BFT1ocrCiiigQUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADcc0 vfPFITz+NLmqJDqMmjpz/Okyec9KUjuaAFzxQP0oozkYoAWk7+tGATR+lIBaKATR+FAwooxS4564 oAQUv60maBQAowKO3SgUUAKGZcAMQPTNBJJySSfc0n1oz0osO4Zoz3xQKPegAp1JRSAD05pyOY2B UDj260h7UYHcZoBaEdyv2maFpMMkbElM4Dccfl1waWNAmcDAJzjPAp2AO2DQDT8geruLikoJopAG aO9GOKSnYAZsEADOf0p1GfTiikAUHkYoooAakUaQBASWzkk0847ZqKWURIW2lmxkKOppwLZO7BIx ypyD9KbQX7Dqj3CQMNjFQ20k9Ce+PpRcSrbwGRuuQFXuxPQVXuLieC1WRUV3ZgoBzgEnGTjsOpoS Ym+hp28kUShdpH05pLibzBtXIXHIPeqgR43VDL5pA+ZsDB+mOn0qWk1qXzaWAcYHpUBiZ74PK7eQ iDYijq+Tkn14xjt1qf6UUEjY0CKR6knGelOBIOetBxjigADpkj3oBBkg5BxUdxMIoi5IzkDJ96kO M1Q1xC+i3eDtZYy4I6gjkfypxV3Zg9iyGYoHUk45I9qmBDKCMEHkGs/RpzcWEMjdWQE/iKtQkI8k ZwAPmBJwAO9VJa2Ji2Td6MVFFcwTQGaKVZIg23evIJ9iO3v0qU9KgsAAT0pcYFJ+JooAKXHrQMGg AmgBDwaKO/tSKoBYlmJJGBngACgQ7tQelRW7yy24laPy1ZiAD1ABI59+M1ISDxQMRiRjALD+VLTS MkU7GCRgkDHPagRHLEsybHztyCQPY5qUlQ3yggcYBpM4NGeRRcDxTW/+Q7qP/XzJ/wChGijW/wDk Oah/18yf+hGiszrPYLD/AJB9r/1xT/0EVPUFh/yD7X/rin/oIqetDlYUUUUCCiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAQ9aQ0Ecmj2qiG FOpuaXOeOtAwpR1xzSZpcEc0AFFHvQTz7UALR6Ug5HNL+NIYUfUmigmgAxRQOlGaAFpBkE57+1Hf 3paAEFLzjGeBRiigAz7UUUfjQAZoFFFAwNA9O1FHfvQIU8mg9KQUUDAUuaSjFABQKOgozzQAtIO+ OTS0nfvQA8EjkY/Gk7UZoApDGgICWZRkjAJPQU4deOnYiqsscsuoQoFLRBSWHbPGM/hViNCgKHgA kAelNolXuRXFubh4cEDa2SDVq4iSONQTyDknPAApgJPtXKeNNTlAh0q0Y+fcEbyCchc4Az79/YVU E5OxSSL8niKN7kw6fA11tOGdThQfY1pW2oRzyxwS280M7KWxjcoA6knsOcVQ0WxisrSOKNRxjJx1 PcmtdQI5POUDzApXPtnOMfUVU1FaJEJ6grBhuBOCe4pWYKhLHAAJJ9BUFozESqxyQ5IP15qfGRg4 OeorNqxS1EUhgDgjIBwRg807v1oYliSTknrUYWRpGI4RQMc9SaQElQXsP2iynhzjzEK5+oqcfWim nZ3B6oqaPbmO0RAMBVCgfSq+uWUt1bSwxfxFN4yRuTcCwyPUZrXgdYsjbx1GKYzbnLYxmnzPmuCj ZA0EUUMcShQAoAVMYUY7e1NxhcZ7YGKWipuNgR0wOOmCc4pM4PfpS5pBySRQIUdaXJ5zgDp15pDk elBPb0oHcDnBxwfejoeDmg9KAe9AiOS5WO5gt9pZpcnaDgBR1J/EgfjTgck8EYJFKiotyJygaQIU B9ic4/MUxbiORpArZMbbWIHAPpn1pjY/tRxggjIPaloAJ6DP0pCAZYknA/rSggHjBNRCRWlZBksp APsTUi4DfWhgjxTW/wDkO6j/ANfMn/oRoo1v/kO6j/18yf8AoRorM6zsbbW9QW0hUTgBY1AHlrxw Papf7d1H/n4H/ftf8KKKtHOH9u6j/wA/A/79r/hR/buo/wDPwP8Av2v+FFFAB/buo/8APwP+/a/4 Uf27qP8Az8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A/wC/a/4UUUAH9u6j/wA/A/79r/hR /buo/wDPwP8Av2v+FFFAB/buo/8APwP+/a/4Uf27qP8Az8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9 u6j/AM/A/wC/a/4UUUAH9u6j/wA/A/79r/hR/buo/wDPwP8Av2v+FFFAB/buo/8APwP+/a/4Uf27 qP8Az8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A/wC/a/4UUUAH9u6j/wA/A/79r/hR/buo /wDPwP8Av2v+FFFAB/buo/8APwP+/a/4Uf27qP8Az8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/ AM/A/wC/a/4UUUAH9u6j/wA/A/79r/hR/buo/wDPwP8Av2v+FFFAB/buo/8APwP+/a/4Uf27qP8A z8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A/wC/a/4UUUAH9u6j/wA/A/79r/hR/buo/wDP wP8Av2v+FFFAB/buo/8APwP+/a/4Uf27qP8Az8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A /wC/a/4UUUAH9u6j/wA/A/79r/hR/buo/wDPwP8Av2v+FFFAB/buo/8APwP+/a/4Uf27qP8Az8D/ AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A/wC/a/4UUUAH9u6j/wA/A/79r/hR/buo/wDPwP8A v2v+FFFAB/buo/8APwP+/a/4Uf27qP8Az8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A/wC/ a/4UUUAH9u6j/wA/A/79r/hR/buo/wDPwP8Av2v+FFFAB/buo/8APwP+/a/4Uf27qP8Az8D/AL9r /hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A/wC/a/4UUUAH9u6j/wA/A/79r/hR/buo/wDPwP8Av2v+ FFFAB/buo/8APwP+/a/4Uf27qP8Az8D/AL9r/hRRQAf27qP/AD8D/v2v+FH9u6j/AM/A/wC/a/4U UUAc7deKtaS6mVb5gocgDy09fpUX/CWa5/z/ALf9+0/wooqTWyD/AISzXP8An/b/AL9p/hR/wlmu f8/7f9+0/wAKKKB2Qf8ACW65/wA/7f8AftP8KP8AhLdc/wCf9v8Av2n+FFFAWQf8Jbrn/P8At/37 T/Cj/hLdc/5/2/79p/hRRQFkH/CW65/z/t/37T/Cj/hLdc/5/wBv+/af4UUUBZB/wluuf8/7f9+0 /wAKP+Et1z/n/b/v2n+FFFAWQf8ACW65/wA/7f8AftP8KP8AhLdc/wCf9v8Av2n+FFFAWQv/AAlu uf8AP+3/AH7T/Ck/4S7Xf+gg3/ftP8KKKAshf+Et1z/n/b/v2n+FH/CW65/z/t/37T/CiigLIP8A hLdc/wCf9v8Av2n+FJ/wl2u/8/7f9+0/woooCyF/4S3XP+f9v+/af4Uf8Jbrn/P+3/ftP8KKKAsh P+Eu13/n/b/v2n+FH/CXa7/0EG/79p/hRRQFkL/wl2u/8/7f9+0/wpP+Eu13/oIN/wB+0/woooCy D/hLtd/6CDf9+0/wo/4S7Xf+gg3/AH7T/CiigdkH/CXa7/0EG/79p/hR/wAJdrv/AEEG/wC/af4U UUBZC/8ACXa7/wA/7f8AftP8KT/hLtd/6CDf9+0/woooFZC/8Jdrv/QQb/v2n+FH/CXa7/z/ALf9 +0/woooCyFXxhry8jUGB/wCuaf4Uh8X69yf7QbP/AFzT/CiigLIP+Ev13/oIN/37T/CqTavfPfNe vcFrluC5UenpjAooq4MLItr4p1pPu3rD/tmn+FOPi3XMf8f7f9+0/wAKKKm4JIanivW0J23zDJyf 3af4U7/hL9d/6CDf9+0/woopBZCf8Jbrmc/b2z/1zT/Cl/4S7Xf+gg3/AH7T/CiigLIP+Eu13/n/ AG/79p/hR/wl2u/8/wC3/ftP8KKKYWQf8Jdrv/QQb/v2n+FJ/wAJdrv/AEEG/wC/af4UUUgshf8A hLtd/wCf9v8Av2n+FH/CXa7/ANBBv+/af4UUUBZB/wAJdrv/AD/t/wB+0/wpf+Eu13/n/b/v2n+F FFAWQn/CX67/ANBBv+/af4Uf8Jfrv/QQb/v2n+FFFAWQf8Jdrv8A0EG/79p/hR/wl2u/8/7f9+0/ woooCyAeL9d/6CDf9+0/wqOLxRrMQkEd6VDsXb92nJPfpRRQFkS/8Jdrv/QQb/v2n+FA8X68DxqD f9+0/wAKKKAshP8AhK9bDu/247mIJPlpz+lH/CXa7/0EG/79p/hRRQFkY1zK81zLLIdzu5ZiR1JP NFFFIs//2QplbmRzdHJlYW0KZW5kb2JqCjEzIDAgb2JqCjw8L1IxMgoxMiAwIFI+PgplbmRvYmoK MTIgMCBvYmoKPDwvU3VidHlwZS9JbWFnZQovQ29sb3JTcGFjZS9EZXZpY2VSR0IKL1dpZHRoIDk5 NAovSGVpZ2h0IDY3NAovQml0c1BlckNvbXBvbmVudCA4Ci9GaWx0ZXIvRENURGVjb2RlL0xlbmd0 aCAxMTQ5MTA+PnN0cmVhbQr/2P/uAA5BZG9iZQBkAAAAAAH/2wBDAA4KCw0LCQ4NDA0QDw4RFiQX FhQUFiwgIRokNC43NjMuMjI6QVNGOj1OPjIySGJJTlZYXV5dOEVmbWVabFNbXVn/2wBDAQ8QEBYT FioXFypZOzI7WVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZ WVn/wAARCAKiA+IDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QA tRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJ ipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcF BAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygp KjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJma oqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oA DAMBAAIRAxEAPwDqND0bS5dC06STTbN3a2jZmaBSSSoyc4rQ/sLSP+gVY/8AgOn+FHh//kXtM/69 Yv8A0AVo0AZ39haR/wBAqx/8B0/wo/sLSP8AoFWP/gOn+FaNFAGd/YWkf9Aqx/8AAdP8KP7C0j/o FWP/AIDp/hWjUcsiQxtJIwRFBYsTgAetAFL+wtI/6Bdj/wCA6f4Uf2FpH/QLsf8AwHT/AAqzBeW1 z/qLiGX/AHHDfyqfNFhXM/8AsLSP+gVY/wDgOn+FH9haR/0CrH/wHT/CtCloGZ39haR/0CrH/wAB 0/wo/sLSP+gVY/8AgOn+FaNFAGd/YWkf9Aqx/wDAdP8ACj+wtI/6BVj/AOA6f4Vo0UAZ39haR/0C rH/wHT/Cj+wtI/6BVj/4Dp/hWjRQBnf2FpH/AECrH/wHT/Cj+wtI/wCgVY/+A6f4Vo0UAZ39haR/ 0CrH/wAB0/wo/sLSP+gVY/8AgOn+FaNFAGd/YWkf9Aqx/wDAdP8ACj+wtI/6BVj/AOA6f4Vo0UAZ 39haR/0CrH/wHT/Cj+wtI/6BVj/4Dp/hWjRQBnf2FpH/AECrH/wHT/Cj+wtI/wCgVY/+A6f4Vo0U AZ39haR/0CrH/wAB0/wo/sLSP+gVY/8AgOn+FaNFAGd/YWkf9Aqx/wDAdP8ACj+wtI/6BVj/AOA6 f4Vo0UAZ39haR/0CrH/wHT/Cj+wtI/6BVj/4Dp/hWjRQBnf2FpH/AECrH/wHT/Cj+wtI/wCgVY/+ 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 ek0Tpj8SMVdg1GyucC3u7eU+iSKT+hpOLQ+ZMuUUlFIYtFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBm eHf+QHa/7p/9CNadZnh3/kB2v+6f/QjWnQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHK634Vk1XUJ LsXwTcAqxtFkAAeufXJ6d6x/+EL1S3ffbXVuCOhV2Q/oP616DRWsa84qyMpUYt3OBWw8XWh/dSzy Y7+erj/x4/0p66v4qteJrJ5sf3rcn9U4ru6Kr2194oXsuzOIXxtdW+FvNMCnud5T9CD/ADq7B450 6THmw3EZ7naGA/I5/SuqxVWXTrKfma0gkP8AtRqf6Uuem/sj5ZrZmfD4o0ebhb1VP/TRWX9SMVow X1rc8W91BL/uOG/lVGbw1o833rCJf9zKf+g4qlN4K0iT7iTRf7shP/oWaX7t90P30dHRiuYHhFoB /oWr3tuPTdkfkMU8aV4htwBDrccwHaaEfz5NLlj0kHNLqjpaK54SeJ4cb4NPuR/sOyk/nxUi6vqk fN1oM6j1hmSQ/kMUuRj5zdorGHiK3AzcWt/bAd5bV8f+Og1NDr+kzHC6hbg/3XcIfyOKnlY+ZGpR UcciSrujdXU91ORT6RQtFFFABRRRQB4prv8AyH9S/wCvqX/0I0Ua7/yH9S/6+pf/AEI0UAeteH/+ Re0z/r1i/wDQBWjWd4f/AORe0z/r1i/9AFaNABRRSZoAWkpjyLGu5jgVH9qj9aAKBa5vL67iiunt Y7YrGPLVWLsVDEncDx8wAAx3/BH1SSCNy8aTLbxq9zLG+FHGSVHOcAE4JHGMEmnzW9tLOZllnhkd QrmJyu8DOAfzOCMGmtY2LAKA6R7FjaNGIV1XoCPQZ/EcHI4qlYhp9Bp1aZpljjs9weZ4I2MoGXTO SeDhcKeeuR070w64xhaZLRjFFCs0xLgFFO7IA/iI2n0Hv2qysNojRsu7MczzLk/xNuB/9CNVF063 86QGRxbNEkflhz8wBYkN6g7h05xkHg8v3ewve7lg6uo1EWpROXaMYlBcEKWyVHQYBwc+nHNRJrbe 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 Ct9/4EP/AI0f27q//QVvv/Ah/wDGiigA/t3V/wDoK33/AIEP/jR/bur/APQVvv8AwIf/ABoooAP7 d1f/AKCt9/4EP/jR/bur/wDQVvv/AAIf/GiigA/t3V/+grff+BD/AONH9u6v/wBBW+/8CH/xoooA P7d1f/oK33/gQ/8AjR/bur/9BW+/8CH/AMaKKAD+3dX/AOgrff8AgQ/+NH9u6v8A9BW+/wDAh/8A GiigA/t3V/8AoK33/gQ/+NH9u6v/ANBW+/8AAh/8aKKAD+3dX/6Ct9/4EP8A40f27q//AEFb7/wI f/GiigA/t3V/+grff+BD/wCNH9u6v/0Fb7/wIf8AxoooAP7d1f8A6Ct9/wCBD/40f27q/wD0Fb7/ AMCH/wAaKKAD+3dX/wCgrff+BD/40f27q/8A0Fb7/wACH/xoooAP7d1f/oK33/gQ/wDjR/bur/8A QVvv/Ah/8aKKAD+3dX/6Ct9/4EP/AI0f27q//QVvv/Ah/wDGiigA/t3V/wDoK33/AIEP/jR/bur/ APQVvv8AwIf/ABoooAP7d1f/AKCt9/4EP/jR/bur/wDQVvv/AAIf/GiigA/t3V/+grff+BD/AONH 9u6v/wBBW+/8CH/xoooAP7d1f/oK33/gQ/8AjR/bur/9BW+/8CH/AMaKKAD+3dX/AOgrff8AgQ/+ NH9u6v8A9BW+/wDAh/8AGiigA/t3V/8AoK33/gQ/+NH9u6v/ANBW+/8AAh/8aKKAD+3dX/6Ct9/4 EP8A40f27q//AEFb7/wIf/GiigA/t3V/+grff+BD/wCNH9u6v/0Fb7/wIf8AxoooAyri5ne5ld5p GZnJLFiSTnrRRRSKP//ZCmVuZHN0cmVhbQplbmRvYmoKMTggMCBvYmoKPDwvUjE3CjE3IDAgUj4+ CmVuZG9iagoxNyAwIG9iago8PC9TdWJ0eXBlL0ltYWdlCi9Db2xvclNwYWNlL0RldmljZVJHQgov V2lkdGggOTkzCi9IZWlnaHQgNjc0Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0ZpbHRlci9EQ1REZWNv ZGUvTGVuZ3RoIDgzMzA0Pj5zdHJlYW0K/9j/7gAOQWRvYmUAZAAAAAAB/9sAQwAOCgsNCwkODQwN EA8OERYkFxYUFBYsICEaJDQuNzYzLjIyOkFTRjo9Tj4yMkhiSU5WWF1eXThFZm1lWmxTW11Z/9sA QwEPEBAWExYqFxcqWTsyO1lZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZ WVlZWVlZWVlZ/8AAEQgCogPhAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk 5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2 9/j5+v/aAAwDAQACEQMRAD8A6jQ9G0uXQtOkk02zd2to2ZmgUkkqMnOK0P7C0j/oFWP/AIDp/hR4 f/5F7TP+vWL/ANAFaNAGd/YWkf8AQKsf/AdP8KP7C0j/AKBVj/4Dp/hWjRQBnf2FpH/QKsf/AAHT /Cj+wtI/6BVj/wCA6f4Vo0UAZ39haR/0CrH/AMB0/wAKP7C0j/oFWP8A4Dp/hWjRQBnf2FpH/QLs f/AdP8KP7C0j/oFWP/gOn+FTRahZzuViuoHYHG1ZATn6Zq1RZiTRn/2FpH/QKsf/AAHT/Cj+wtI/ 6BVj/wCA6f4VoUUDM/8AsLSP+gVY/wDgOn+FH9haR/0CrH/wHT/CtGigDO/sLSP+gVY/+A6f4Uf2 FpH/AECrH/wHT/CtGigDO/sLSP8AoFWP/gOn+FH9haR/0CrH/wAB0/wrRooAzv7C0j/oFWP/AIDp /hR/YWkf9Aqx/wDAdP8ACtGigDO/sLSP+gVY/wDgOn+FH9haR/0CrH/wHT/CtGigDO/sLSP+gVY/ +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 AD/6j/3/AB/hXR0Ue0l3Dkic5/wiFr/z/wCo/wDf8f4Uf8Iha/8AP/qP/f8AH+FdHRR7SXcOSJzn /CIWv/P/AKj/AN/x/hR/wiFr/wA/+o/9/wAf4V0dFHtJdw5InOf8Iha/8/8AqP8A3/H+FNTwdZxu zpe36u33mWUAn6nbXS0Ue0n3D2cTnf8AhFYccahqJ9mmDA/UEcj2rXsLQWdsIVIIDFsBdoGTnAHY VbopOTe41FLYWiiipKPnyiiigD3Lw/8A8i9pn/XrF/6AK0azvD//ACL2mf8AXrF/6AK0aACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KAMzw3/yLWlf9ekP/oArTrM8N/8AItaV/wBekP8A6AK06ACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPnyiiigD3Lw/8A8i9pn/Xr F/6AK0azvD//ACL2mf8AXrF/6AK0aACiiigAooooAKKKKACiiigAooqn9ti3OuJCynAGw5bJI49f ut+WemDQBcoqmNQtzkhmKhd24KcHjdj64wcdamgkWVA6ZHJHI6EEgj880ATUUlFAC0UlFAC0UlFA C0UlFAC0UlFAC0UlFAC0UlLQAUUUlAC0UlFAC0UlFAC0UlFAC0UlFAC0UlFAC0UlFAC0UlLQAUUl FAC0UlFAC0UlFAC0UlFAC0UUUAFFFFABRRRQAUUUUAFFFFAGZ4b/AORa0r/r0h/9AFadZnhv/kWt K/69If8A0AVp0AFFFFABRRRQAUUUUAFVYr21nmaGG5hkmTO5EkBZcHByAfWnTx3DMphnWNR1Bj3Z /HIrEj0zURFJAZGSNrjflbjA2GcOwACgglNw6+30AOgZgiksQFAySTgUzzovLaTzE8tc7m3DAx1y fbBrmZ7G++0fZcyybyyo/mSbEjPmYVjjaeNmcknPrhcy3WkajMkqCVSHimjAadtoDeZt+UAf3kHO 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 6v8A9BW+/wDAh/8AGj+3dX/6Ct9/4EP/AI0UUAH9u6v/ANBW+/8AAh/8aP7d1f8A6Ct9/wCBD/40 UUAH9u6v/wBBW+/8CH/xo/t3V/8AoK33/gQ/+NFFAB/bur/9BW+/8CH/AMaP7d1f/oK33/gQ/wDj RRQAf27q/wD0Fb7/AMCH/wAaP7d1f/oK33/gQ/8AjRRQAf27q/8A0Fb7/wACH/xo/t3V/wDoK33/ AIEP/jRRQAf27q//AEFb7/wIf/Gga7q/H/E1vv8AwIf/ABoooAxPMf8Avt+dFFFBR//ZCmVuZHN0 cmVhbQplbmRvYmoKMjMgMCBvYmoKPDwvUjIyCjIyIDAgUj4+CmVuZG9iagoyMiAwIG9iago8PC9T dWJ0eXBlL0ltYWdlCi9Db2xvclNwYWNlL0RldmljZVJHQgovV2lkdGggOTkzCi9IZWlnaHQgNjc0 Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0ZpbHRlci9EQ1REZWNvZGUvTGVuZ3RoIDgzNjgyPj5zdHJl YW0K/9j/7gAOQWRvYmUAZAAAAAAB/9sAQwAOCgsNCwkODQwNEA8OERYkFxYUFBYsICEaJDQuNzYz LjIyOkFTRjo9Tj4yMkhiSU5WWF1eXThFZm1lWmxTW11Z/9sAQwEPEBAWExYqFxcqWTsyO1lZWVlZ WVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZ/8AAEQgCogPhAwEi AAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQE AAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2 Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Sl pqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8B AAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUh MQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJ 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 rRooAzv7C0j/AKBVj/4Dp/hR/YWkf9Aqx/8AAdP8K0aTNAGf/YWkf9Aqx/8AAdP8KP7C0j/oF2P/ AIDp/hVq3uYLqPfBNHKn95GDD9KmzQ9Avcz/AOwtI/6Bdj/4Dp/hR/YWkf8AQKsf/AdP8K0aKAM7 +wtI/wCgVY/+A6f4Uf2FpH/QKsf/AAHT/CtGigDO/sLSP+gVY/8AgOn+FH9haR/0CrH/AMB0/wAK 0aKAM7+wtI/6BVj/AOA6f4Uf2FpH/QKsf/AdP8K0aKAM7+wtI/6BVj/4Dp/hR/YWkf8AQKsf/AdP 8K0aKAPF/s8H/PCH/vgf4UVLRQB6l4f/AORe0z/r1i/9AFaNZ3h//kXtM/69Yv8A0AVo0AFFFFAB RRRQA01wN54O1NLh7iC5imkLF92TGxJOTjrj867+irhUcNiJwUtzz1L/AMUaRxPFPLGv/PVPMH4s uT+taNj46t3+W9tniP8AeiYMPxHB/nXYVVutOs7z/j5tYZfd0BP51p7SEvij9xCpyj8LIrLWdPv8 C1u4nY/wZw3/AHyeav5rm7vwXpc4JiEtuf8AZcsM/Rs/pioE0PXdP/5B+riVP+ec4OMenO79MVLj B/C/vK5pLdHWUVzSazrNmQNS0Z5F7yWhDcf7uSfzIq9a+I9Lum8tbpYZRwY5wUYH056/hUODRSmm bFFNBBGQc06pKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAzvD/APyL2mf9esX/ AKAK0azvD/8AyL2mf9esX/oArRoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBK huY3ltpY4n8uR0Kq+M7SR1x3xU1FAHncng/VrF/NspkkZfutHIY3/wAP1p6a14j0ni8geWJeCZoy QPo69fqc16DRW/t7/ErmPsbfCzlLLxxZTAC7hkt2PVl+dR+I5/SugtNQtL5c2tzFNxkhWGR9R1FR 3mj6fe5NxZwyMf4tuG/Mc1i3Pgmwdt9rNPbODlcNuA/Pn9aT9nLyGudeZ1GaK5VNO8TacR9l1CK9 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 +3dX/wCgrff+BD/40UUAH9u6v/0Fb7/wIf8Axo/t3V/+grff+BD/AONFFAB/bur/APQVvv8AwIf/ ABo/t3V/+grff+BD/wCNFFAB/bur/wDQVvv/AAIf/Gj+3dX/AOgrff8AgQ/+NFFAB/bur/8AQVvv /Ah/8aP7d1f/AKCt9/4EP/jRRQAf27q//QVvv/Ah/wDGga7q/H/E1vv/AAIf/GiigDK+13P/AD8T f99miiigD//ZCmVuZHN0cmVhbQplbmRvYmoKMjQgMCBvYmoKPDwvTGVuZ3RoIDEzNTA+PnN0cmVh bQo8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8 P2Fkb2JlLXhhcC1maWx0ZXJzIGVzYz0iQ1JMRiI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2Jl Om5zOm1ldGEvJyB4OnhtcHRrPSdYTVAgdG9vbGtpdCAyLjkuMS0xMywgZnJhbWV3b3JrIDEuNic+ CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3lu dGF4LW5zIycgeG1sbnM6aVg9J2h0dHA6Ly9ucy5hZG9iZS5jb20vaVgvMS4wLyc+CjxyZGY6RGVz Y3JpcHRpb24gcmRmOmFib3V0PScwOGYzNGVhYi1hOTAwLTExZGYtMDAwMC1lNDZlNjFkZWY2NzAn IHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLycgcGRmOlByb2R1Y2VyPSdB RlBMIEdob3N0c2NyaXB0IDguNTQnLz4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JzA4ZjM0 ZWFiLWE5MDAtMTFkZi0wMDAwLWU0NmU2MWRlZjY3MCcgeG1sbnM6eGFwPSdodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvJyB4YXA6TW9kaWZ5RGF0ZT0nMjAxMC0wOC0xMycgeGFwOkNyZWF0ZURh dGU9JzIwMTAtMDgtMTMnPjx4YXA6Q3JlYXRvclRvb2w+QUZQTCBHaG9zdHNjcmlwdCA4LjU0IFBE RiBXcml0ZXI8L3hhcDpDcmVhdG9yVG9vbD48L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9JzA4ZjM0ZWFiLWE5MDAtMTFkZi0wMDAwLWU0NmU2MWRlZjY3MCcgeG1s bnM6eGFwTU09J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8nIHhhcE1NOkRvY3VtZW50 SUQ9JzA4ZjM0ZWFiLWE5MDAtMTFkZi0wMDAwLWU0NmU2MWRlZjY3MCcvPgo8cmRmOkRlc2NyaXB0 aW9uIHJkZjphYm91dD0nMDhmMzRlYWItYTkwMC0xMWRmLTAwMDAtZTQ2ZTYxZGVmNjcwJyB4bWxu czpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nIGRjOmZvcm1hdD0nYXBwbGlj YXRpb24vcGRmJz48ZGM6dGl0bGU+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0 Jz4oKTwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOnRpdGxlPjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxy ZGY6bGk+XDM3NlwzNzdcMDAwY1wwMDBvXDAwMG08L3JkZjpsaT48L3JkZjpTZXE+PC9kYzpjcmVh dG9yPjwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9J3cnPz4KZW5kc3RyZWFtCmVuZG9i agoyIDAgb2JqCjw8L1Byb2R1Y2VyKEFGUEwgR2hvc3RzY3JpcHQgOC41NCkKL0NyZWF0aW9uRGF0 ZShEOjIwMTAwODEzMTQzMjA5KzA4JzAwJykKL01vZERhdGUoRDoyMDEwMDgxMzE0MzIwOSkKL1Rp dGxlKCkKL0NyZWF0b3IoXDM3NlwzNzdcMDAwUFwwMDBEXDAwMEZcMDAwQ1wwMDByXDAwMGVcMDAw YVwwMDB0XDAwMG9cMDAwclwwMDAgXDAwMFZcMDAwZVwwMDByXDAwMHNcMDAwaVwwMDBvXDAwMG5c MDAwIFwwMDAwXDAwMC5cMDAwOVwwMDAuXDAwMDMpCi9BdXRob3IoXDM3NlwzNzdcMDAwY1wwMDBv XDAwMG0pCi9LZXl3b3JkcygpCi9TdWJqZWN0KCk+PmVuZG9iagp4cmVmCjAgMjUKMDAwMDAwMDAw MCA2NTUzNSBmIAowMDAwMDAxMjk5IDAwMDAwIG4gCjAwMDAzNDgxNTggMDAwMDAgbiAKMDAwMDAw MTIxMCAwMDAwMCBuIAowMDAwMDAwNjE0IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAw MDAwMDE0NSAwMDAwMCBuIAowMDAwMDAxMzkzIDAwMDAwIG4gCjAwMDAwMDEzNjQgMDAwMDAgbiAK MDAwMDAwMDc2MSAwMDAwMCBuIAowMDAwMDAwMTYzIDAwMDAwIG4gCjAwMDAwMDAyOTUgMDAwMDAg biAKMDAwMDA2NDM1MyAwMDAwMCBuIAowMDAwMDY0MzIxIDAwMDAwIG4gCjAwMDAwMDA5MTAgMDAw MDAgbiAKMDAwMDAwMDMxNCAwMDAwMCBuIAowMDAwMDAwNDQ1IDAwMDAwIG4gCjAwMDAxNzk0NDQg MDAwMDAgbiAKMDAwMDE3OTQxMiAwMDAwMCBuIAowMDAwMDAxMDYwIDAwMDAwIG4gCjAwMDAwMDA0 NjQgMDAwMDAgbiAKMDAwMDAwMDU5NSAwMDAwMCBuIAowMDAwMjYyOTI4IDAwMDAwIG4gCjAwMDAy NjI4OTYgMDAwMDAgbiAKMDAwMDM0Njc1OCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDI1IC9S b290IDEgMCBSIC9JbmZvIDIgMCBSCi9JRCBbPDNFQjBGQzM1OTM4NEJBQkRGOUEzRTIzQjMxMTU1 MzBEPjwzRUIwRkMzNTkzODRCQUJERjlBM0UyM0IzMTE1NTMwRD5dCj4+CnN0YXJ0eHJlZgozNDg0 NzkKJSVFT0YK ------=_NextPart_000_003C_01CB3AF5.880BBBE0-- From stan@hardwarefreak.com Fri Aug 13 04:50:46 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7D9ojcD045275 for ; Fri, 13 Aug 2010 04:50:46 -0500 X-ASG-Debug-ID: 1281693601-59a603b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F143314CF29B for ; Fri, 13 Aug 2010 03:00:01 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id 7yqBhmDMyoh3pn36 for ; Fri, 13 Aug 2010 03:00:01 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 363CC6C3E2 for ; Fri, 13 Aug 2010 04:51:09 -0500 (CDT) Message-ID: <4C6516CA.2010602@hardwarefreak.com> Date: Fri, 13 Aug 2010 04:56:26 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <201008122105.35787@zmi.at> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1281693601 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37855 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Peter Niemayer put forth on 8/12/2010 4:46 PM: > To me, as of today, XFS' big strength is performing good to > excellent (while not always better than all other file-systems) > in many use-cases - without worries about instability or immaturity. +1 But don't forget the excellent tool set which I think is a little better than those of the other filesystems. XFS has the only functional/reliable online defrag tool AFAIK. The only 'missing' feature compared to the other FSes is filesystem shrink ability, but for the majority of XFS users, I'm guessing this isn't an issue as data sets are always growing. Some benchmark results maybe worth a look: http://btrfs.boxacle.net/repository/raid/2.6.35-rc5/2.6.35-rc5/ -- Stan From stan@hardwarefreak.com Fri Aug 13 05:22:46 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_35, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DAMkD1047638 for ; Fri, 13 Aug 2010 05:22:46 -0500 X-ASG-Debug-ID: 1281694992-03f100560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A1A8E4B32B9 for ; Fri, 13 Aug 2010 03:23:12 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id oX3mRMXO7NLGte7T for ; Fri, 13 Aug 2010 03:23:12 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 078D96C3E2 for ; Fri, 13 Aug 2010 05:23:11 -0500 (CDT) Message-ID: <4C651E2B.9010100@hardwarefreak.com> Date: Fri, 13 Aug 2010 05:27:55 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> In-Reply-To: <4C64E52E.2060806@msgid.tls.msk.ru> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1281694992 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37858 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Tokarev put forth on 8/13/2010 1:24 AM: > So the question that remains is: why? 4096 is the default block size and has been since at least 2.6.26 when I started using XFS. From "man mkfs.xfs": OPTIONS -b block_size_options This option specifies the fundamental block size of the filesystem. The valid block_size_options are: log=value or size=value and only one can be supplied. The block size is specified either as a base two logarithm value with log=, or in bytes with size=. The default value is 4096 bytes (4 KiB), the minimum is 512, and the maximum is 65536 (64 KiB). XFS on Linux currently only supports pagesize or smaller blocks. > So why xfs decided the block size is 4K?? See above. It's the default. Dave, Eric, Alex and others may be able to explain why 4096 was chosen as the default. I'm guessing it has to do with the best all around performance across a wide variety of storage systems. > And a related question, -- is there a way to create > xfs fs with the right sector size? Yes. -s sector_size This option specifies the fundamental sector size of the filesystem. The sector_size is specified either as a value in bytes with size=value or as a base two logarithm value with log=value. The default sector_size is 512 bytes. The minimum value for sector size is 512; the maximum is 32768 (32 KiB). The sector_size must be a power of 2 size and cannot be made larger than the filesystem block size. Note that the default is 512. This would lead me to believe that whoever created this 600GB XFS filesystem manually specified "-s 4096" on the command line when creating it. > The filesystem > were ok in years, not only on this machine, and I'm > quite afraid to replace it with something else (e.g. > ext4) in a hurry without good prior testing. > > By the way, how one can check the "sector size" of a > block device nowadays? cat /sys/block/[device]/queue/hw_sector_size That will give you the hardware sector size. As mentioned above, the XFS sector size can be manually specified during FS creation. Thus they may not match, which is likely the case with the 600GB FS you're having the problems with. -- Stan From michael.monnerie@is.it-management.at Fri Aug 13 05:35:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DAZNdc048511 for ; Fri, 13 Aug 2010 05:35:23 -0500 X-ASG-Debug-ID: 1281695747-5b0003de0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B810B17015F3 for ; Fri, 13 Aug 2010 03:35:47 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id NJlp9PADayesbwE8 for ; Fri, 13 Aug 2010 03:35:47 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id CC458705; Fri, 13 Aug 2010 12:35:45 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 85CC7401C2E; Fri, 13 Aug 2010 12:35:45 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Date: Fri, 13 Aug 2010 12:35:44 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) Cc: Stan Hoeppner References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <4C6516CA.2010602@hardwarefreak.com> In-Reply-To: <4C6516CA.2010602@hardwarefreak.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart2865155.WHU4dXdg73"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008131235.45050@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281695747 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37858 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart2865155.WHU4dXdg73 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Freitag, 13. August 2010 Stan Hoeppner wrote: > Some benchmark results maybe worth a look: > http://btrfs.boxacle.net/repository/raid/2.6.35-rc5/2.6.35-rc5/ =20 Thanks - it would have been great to see xfs with delaylog in that=20 comparison, but the graphs are very very nice. XFS seems performing better the more threads there are, just in "large=20 file random reads" it's the slowest - why this? A test with "lots of small files in a dir" would be great, something=20 like the squid cachedir or just a single dir with >5.000 files in it. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart2865155.WHU4dXdg73 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxlIAAACgkQzhSR9xwSCbTcvwCg9ZKY69RHMfnDV8H8SFS63o8L pCIAoI6TjQsBxFPym5dbmFv1/z0ITLKz =vn0r -----END PGP SIGNATURE----- --nextPart2865155.WHU4dXdg73-- From mjt@tls.msk.ru Fri Aug 13 05:59:46 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_35, J_CHICKENPOX_43,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DAxjJ1050471 for ; Fri, 13 Aug 2010 05:59:46 -0500 X-ASG-Debug-ID: 1281697210-7a87027e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from isrv.corpit.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1508A4B3541 for ; Fri, 13 Aug 2010 04:00:10 -0700 (PDT) Received: from isrv.corpit.ru (isrv.corpit.ru [86.62.121.231]) by cuda.sgi.com with ESMTP id BuGh8xClhg6b745C for ; Fri, 13 Aug 2010 04:00:10 -0700 (PDT) Received: from [192.168.88.2] (mjt.vpn.tls.msk.ru [192.168.10.88]) by isrv.corpit.ru (Postfix) with ESMTP id D745E4192B; Fri, 13 Aug 2010 15:00:09 +0400 (MSD) (envelope-from mjt@tls.msk.ru) Message-ID: <4C6525B9.4040406@msgid.tls.msk.ru> Date: Fri, 13 Aug 2010 15:00:09 +0400 From: Michael Tokarev Organization: Telecom Service, JSC User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.10) Gecko/20100619 Icedove/3.0.5 MIME-Version: 1.0 To: Stan Hoeppner CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> <4C651E2B.9010100@hardwarefreak.com> In-Reply-To: <4C651E2B.9010100@hardwarefreak.com> X-Enigmail-Version: 1.0.1 OpenPGP: id=804465C5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: isrv.corpit.ru[86.62.121.231] X-Barracuda-Start-Time: 1281697211 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37860 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 13.08.2010 14:27, Stan Hoeppner wrote: > Michael Tokarev put forth on 8/13/2010 1:24 AM: > >> So the question that remains is: why? > > 4096 is the default block size and has been since at least 2.6.26 when I > started using XFS. From "man mkfs.xfs": > > OPTIONS > -b block_size_options This is block size. But XFS_IOC_DIOINFO returns _sector_ size. All other XFS filesystems we have are made with the same 4096 _block_ size. > [..] The default value is 4096 bytes (4 KiB) > >> So why xfs decided the block size is 4K?? That was the wrong question. The right one is about _sector_ size, not _block_ size. The filesystem in question has _sector_ size =4096, all the rest has it =512. >> And a related question, -- is there a way to create >> xfs fs with the right sector size? > > Yes. > > -s sector_size > This option specifies the fundamental sector size of the filesystem. The > sector_size is specified either as a value in bytes with size=value or as a > base two logarithm value with log=value. The default sector_size is 512 Yeah, the default is 512, my manpage agrees. But yet I've a filesystem that has it =4096... But maybe it were specified during filesystem creation. I re-read the mkfs.xfs manpage yesterday, but somehow missed the sector size option (!), which you quoted above. Maybe we used it year ago when creating the filesystem, for yet to be determined reason... ;) I just tried to create an xfs filesystem on this machine (on a small reserved partition) - it uses sector size = 512 as expected. >> By the way, how one can check the "sector size" of a >> block device nowadays? > > cat /sys/block/[device]/queue/hw_sector_size And it shows 512 even for the md array in question. > That will give you the hardware sector size. As mentioned above, the XFS > sector size can be manually specified during FS creation. Thus they may not > match, which is likely the case with the 600GB FS you're having the problems with. Yup! Thank you all for the information, and please excuse me for the noize - just too many stuff at once... ;) /mjt From michael.monnerie@is.it-management.at Fri Aug 13 06:00:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DB0HCv050539 for ; Fri, 13 Aug 2010 06:00:17 -0500 X-ASG-Debug-ID: 1281697242-191601060000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DF4C91701E04 for ; Fri, 13 Aug 2010 04:00:42 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id U53pjB3OSkSsst2E for ; Fri, 13 Aug 2010 04:00:42 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 5E905400 for ; Fri, 13 Aug 2010 13:00:41 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 24BAB401C2E for ; Fri, 13 Aug 2010 13:00:41 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Message to Stan Hoeppner Subject: Message to Stan Hoeppner Date: Fri, 13 Aug 2010 13:00:40 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1361870.I63s8x047H"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008131300.40536@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281697242 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0196 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37860 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1361870.I63s8x047H Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Dear Stan, : host greer.hardwarefreak.com[65.41.216.221]=20 said: 550 5.7.1 : Client host=20 rejected: We do not accept mail from .at domains (in reply to RCPT TO=20 command) I don't know what experiences you've had, but Austria is not that bad.=20 We have Mozart, Walzer, the Danube, and Vienna is worlds most beautiful=20 city to live in (search "vienna best city in the world" on Google finds=20 http://www.citymayors.com/features/quality_survey.html and others). Maybe you could rethink that policy? Spam rate is quite low with .at=20 domains, compared to others. =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1361870.I63s8x047H Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxlJdgACgkQzhSR9xwSCbSOewCfTmB8Dd2UkSgiqgSPsFFX+4sx BYcAn1uVKYymOCRbSenpcc4K2nfjrnyw =5Njh -----END PGP SIGNATURE----- --nextPart1361870.I63s8x047H-- From roger@filmlight.ltd.uk Fri Aug 13 06:35:50 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DBZocd052990 for ; Fri, 13 Aug 2010 06:35:50 -0500 X-ASG-Debug-ID: 1281699375-03f003a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from b.mx.filmlight.ltd.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 63D704B37E2 for ; Fri, 13 Aug 2010 04:36:15 -0700 (PDT) Received: from b.mx.filmlight.ltd.uk (bongo.filmlight.ltd.uk [77.107.81.251]) by cuda.sgi.com with SMTP id UyLpnoDXHsI01ZIC for ; Fri, 13 Aug 2010 04:36:15 -0700 (PDT) Received: (dqd 13716 invoked from network); 13 Aug 2010 11:36:13 -0000 Received: from montana.filmlight.ltd.uk (HELO ?10.44.0.177?) (roger@10.44.0.177) by b.mx.filmlight.ltd.uk with ESMTPA; 13 Aug 2010 11:36:13 -0000 X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? From: Roger Willcocks To: Michael Tokarev Cc: Dave Chinner , xfs@oss.sgi.com In-Reply-To: <4C64E52E.2060806@msgid.tls.msk.ru> References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> Content-Type: text/plain Date: Fri, 13 Aug 2010 12:36:05 +0100 Message-Id: <1281699365.12371.142.camel@montana.filmlight.ltd.uk> Mime-Version: 1.0 X-Mailer: Evolution 2.12.3 (2.12.3-8.el5_2.2) Content-Transfer-Encoding: 7bit X-Barracuda-Connect: bongo.filmlight.ltd.uk[77.107.81.251] X-Barracuda-Start-Time: 1281699376 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37861 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2010-08-13 at 10:24 +0400, Michael Tokarev wrote: > So why xfs decided the block size is 4K?? We had a similar problem with direct io here, with 2.6.9; I quote from the Bugzilla: "mkfs.xfs has md-specific code (!) that looks at the raid flavour to figure stripe parameters, alignment requirements, etc. "Raid flavours 4,5 and 6 force the alignment to be the same as the file system block size (which is 4096 bytes)." Here's a program to test the alignment requirements: ---- #include #include int main(int argc, char* argv[]) { struct dioattr dio; int tfd = open((argc == 2) ? argv[1] : "/mnt/disk1", O_RDONLY, 0666); if (ioctl(tfd, XFS_IOC_DIOINFO, &dio) < 0) perror("ioctl"); else { printf("min io size = %d\n", dio.d_miniosz); printf("max io size = %d\n", dio.d_maxiosz); printf("align = %d\n", dio.d_mem); } close(tfd); return 0; } ---- The same disk set returned 'align = 4096' for raid 5, but 'align = 512' for raid 0. -- Roger From SRS0+6gd8+74+fromorbit.com=david@internode.on.net Fri Aug 13 06:38:53 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DBcrHq053199 for ; Fri, 13 Aug 2010 06:38:53 -0500 X-ASG-Debug-ID: 1281699558-191b02f10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 950B51702493 for ; Fri, 13 Aug 2010 04:39:18 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id FFyUmO3CimZhDiH6 for ; Fri, 13 Aug 2010 04:39:18 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35011748-1927428 for multiple; Fri, 13 Aug 2010 21:09:17 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OjsbT-0006WP-Kk; Fri, 13 Aug 2010 21:39:15 +1000 Date: Fri, 13 Aug 2010 21:39:15 +1000 From: Dave Chinner To: Michael Tokarev Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? Message-ID: <20100813113915.GD10429@dastard> References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C64E52E.2060806@msgid.tls.msk.ru> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1281699559 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37861 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 13, 2010 at 10:24:46AM +0400, Michael Tokarev wrote: > 13.08.2010 03:49, Dave Chinner wrote: > > On Fri, Aug 13, 2010 at 02:10:39AM +0400, Michael Tokarev wrote: > >> Hello. > >> > >> I used XFS for a long time on many different > >> servers, and it works well. But now I encountered > >> an.. unexpected problem. > >> > >> The question is: on one of our servers, XFS requires > >> different alignment size for O_DIRECT operations than > >> on others. Usually it's 512 bytes, but on this server > >> it is 4096 - both min_io and alignment (this is from > >> XFS_IOC_DIOINFO ioctl). > > > > It'll be a filesystem set up with a 4k sector size, then. Check the > > output of xfs_info. > > yes, xfs_info reports sectsz=4096, I noticed this yesterday. .... > So the question that remains is: why? > > It's an old machine (PIV era), with old scsi disks (74Gb > non-hotswap), -- the same disks as used on numerous other > machines out there, where there's no such issue. If the software was as old as the machine, then that's the likely reason. The old md raid5 implementation did not handle sub-page size aligned IO very well - a change of IO alignment would cause the stripe cache to be purged and cause performance to be terrible. Hence every time XFS wrote the superblock or an AG header it would purge the stripe cache. The workaround old versions of mkfs.xfs used was to create the fs with a sector size of 4k when it detected md raid5 underneath it so the sb and ag headers were all 4k aligned and sized, just like the rest of the filesystem.... > And a related question, -- is there a way to create > xfs fs with the right sector size? The filesystem > were ok in years, not only on this machine, and I'm > quite afraid to replace it with something else (e.g. > ext4) in a hurry without good prior testing. # mkfs.xfs -s .... if you want to set it manually. YOu shouldn't need to with any relatively recent mkfs.xfs... > By the way, how one can check the "sector size" of a > block device nowadays? I think I saw something about > sysfs, but I see nothing of that sort in 2.6.32 kernel > (which is used on this and other systems). /sys/block//queue/hw_sector_size Cheers, Dave. -- Dave Chinner david@fromorbit.com From mjt@tls.msk.ru Fri Aug 13 06:57:49 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DBvnHQ054546 for ; Fri, 13 Aug 2010 06:57:49 -0500 X-ASG-Debug-ID: 1281700695-5ebb003d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from isrv.corpit.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2134217018CA for ; Fri, 13 Aug 2010 04:58:15 -0700 (PDT) Received: from isrv.corpit.ru (isrv.corpit.ru [86.62.121.231]) by cuda.sgi.com with ESMTP id 8U4XGB6Gkyoc0JfD for ; Fri, 13 Aug 2010 04:58:15 -0700 (PDT) Received: from [192.168.88.2] (mjt.vpn.tls.msk.ru [192.168.10.88]) by isrv.corpit.ru (Postfix) with ESMTP id 8DE444193C; Fri, 13 Aug 2010 15:58:13 +0400 (MSD) (envelope-from mjt@tls.msk.ru) Message-ID: <4C653355.6080605@msgid.tls.msk.ru> Date: Fri, 13 Aug 2010 15:58:13 +0400 From: Michael Tokarev Organization: Telecom Service, JSC User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.10) Gecko/20100619 Icedove/3.0.5 MIME-Version: 1.0 To: Michael Monnerie CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Message to Stan Hoeppner Subject: Re: Message to Stan Hoeppner References: <201008131300.40536@zmi.at> In-Reply-To: <201008131300.40536@zmi.at> X-Enigmail-Version: 1.0.1 OpenPGP: id=804465C5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: isrv.corpit.ru[86.62.121.231] X-Barracuda-Start-Time: 1281700696 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37864 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 13.08.2010 15:00, Michael Monnerie пишет: > Dear Stan, > > : host greer.hardwarefreak.com[65.41.216.221] > said: 550 5.7.1 : Client host > rejected: We do not accept mail from .at domains (in reply to RCPT TO > command) > > I don't know what experiences you've had, but Austria is not that bad. > We have Mozart, Walzer, the Danube, and Vienna is worlds most beautiful > city to live in (search "vienna best city in the world" on Google finds > http://www.citymayors.com/features/quality_survey.html and others). Heh. I can say something similar about Russia as well (I received similar reject to my email too, telling me about .ru domains). But I don't think it counts at all in this context - it's a tradeoff, everyone decides for himself if he wants to accept a small amount of email or block all spam outright and deal with a few possible problem cases... /mjt From BATV+4f9a237d2f5148632b3b+2546+infradead.org+hch@bombadil.srs.infradead.org Fri Aug 13 07:28:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DCSfao056745 for ; Fri, 13 Aug 2010 07:28:43 -0500 X-ASG-Debug-ID: 1281702548-410402cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B42964B3D2E for ; Fri, 13 Aug 2010 05:29:08 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id G8mKzuHFcEdEhThr for ; Fri, 13 Aug 2010 05:29:08 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OjtNj-00030m-Ku; Fri, 13 Aug 2010 12:29:07 +0000 Date: Fri, 13 Aug 2010 08:29:07 -0400 From: Christoph Hellwig To: Michael Monnerie Cc: xfs@oss.sgi.com, Stan Hoeppner X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Message-ID: <20100813122907.GA14650@infradead.org> References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <4C6516CA.2010602@hardwarefreak.com> <201008131235.45050@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201008131235.45050@zmi.at> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281702548 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 13, 2010 at 12:35:44PM +0200, Michael Monnerie wrote: > On Freitag, 13. August 2010 Stan Hoeppner wrote: > > Some benchmark results maybe worth a look: > > http://btrfs.boxacle.net/repository/raid/2.6.35-rc5/2.6.35-rc5/ > > Thanks - it would have been great to see xfs with delaylog in that > comparison, but the graphs are very very nice. > > XFS seems performing better the more threads there are, just in "large > file random reads" it's the slowest - why this? Any idea who is doing these runs? Once we figure out what that large file random reads loads is I'm sure we could fix it soon. And asking him/her to add -o delaylog would also be good. From BATV+4f9a237d2f5148632b3b+2546+infradead.org+hch@bombadil.srs.infradead.org Fri Aug 13 07:30:03 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DCU3X0056869 for ; Fri, 13 Aug 2010 07:30:03 -0500 X-ASG-Debug-ID: 1281702629-4ef602740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C63B51701FF1 for ; Fri, 13 Aug 2010 05:30:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id TDEpyYmVJZaxdx55 for ; Fri, 13 Aug 2010 05:30:29 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OjtP0-0005RE-Mf; Fri, 13 Aug 2010 12:30:26 +0000 Date: Fri, 13 Aug 2010 08:30:26 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests 228: suppress core dump message Subject: Re: [PATCH] xfstests 228: suppress core dump message Message-ID: <20100813123026.GB14650@infradead.org> References: <4C0FB207.20706@sandeen.net> <4C644269.20109@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C644269.20109@sandeen.net> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281702629 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Ugly stuff, but hey the workaround looks correct, Reviewed-by: Christoph Hellwig I wish RH wouldn't play such stupid games with core dumps. From michael.monnerie@is.it-management.at Fri Aug 13 07:36:29 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DCaTXt057319 for ; Fri, 13 Aug 2010 07:36:29 -0500 X-ASG-Debug-ID: 1281703014-5ebd02560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD6AF17020CA for ; Fri, 13 Aug 2010 05:36:54 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id uoI96PKLIMhDOTgB for ; Fri, 13 Aug 2010 05:36:54 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 3586D42B; Fri, 13 Aug 2010 14:36:53 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id E3B56401C2E; Fri, 13 Aug 2010 14:36:52 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Message to Stan Hoeppner Subject: Re: Message to Stan Hoeppner Date: Fri, 13 Aug 2010 14:36:48 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) Cc: Michael Tokarev References: <201008131300.40536@zmi.at> <4C653355.6080605@msgid.tls.msk.ru> In-Reply-To: <4C653355.6080605@msgid.tls.msk.ru> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1530368.AK6cZ27XKc"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008131436.52453@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281703014 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37866 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1530368.AK6cZ27XKc Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On Freitag, 13. August 2010 Michael Tokarev wrote: > Heh. I can say something similar about Russia as well (I > received similar reject to my email too, telling me about > .ru domains). But I don't think it counts at all in this > context - it's a tradeoff, everyone decides for himself if > he wants to accept a small amount of email or block all > spam outright and deal with a few possible problem cases... =20 That explanation was more a joke than seriously meant, I apologize for=20 the fuzz - it was a "not too hidden" ad for Austria and Vienna ;-) Still, my pledge for removing .at blacklisting was meant seriously. =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1530368.AK6cZ27XKc Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxlPGQACgkQzhSR9xwSCbTJbQCgv8Clx/NjQHlZVngiWTTWZvJd r7IAmwfDo8LunxRVfWQffJxo7CFq+yRo =LjOE -----END PGP SIGNATURE----- --nextPart1530368.AK6cZ27XKc-- From SRS0+6gd8+74+fromorbit.com=david@internode.on.net Fri Aug 13 09:13:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DEDMk5064540 for ; Fri, 13 Aug 2010 09:13:23 -0500 X-ASG-Debug-ID: 1281708827-14ae03100000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D05A94B476F for ; Fri, 13 Aug 2010 07:13:47 -0700 (PDT) Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id rldXR4hfpoYT0V2k for ; Fri, 13 Aug 2010 07:13:47 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34969120-1927428 for multiple; Fri, 13 Aug 2010 23:43:46 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Ojv0y-0006gZ-EG; Sat, 14 Aug 2010 00:13:44 +1000 Date: Sat, 14 Aug 2010 00:13:44 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Michael Monnerie , Stan Hoeppner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Message-ID: <20100813141344.GE10429@dastard> References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <4C6516CA.2010602@hardwarefreak.com> <201008131235.45050@zmi.at> <20100813122907.GA14650@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100813122907.GA14650@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103] X-Barracuda-Start-Time: 1281708828 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37872 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 13, 2010 at 08:29:07AM -0400, Christoph Hellwig wrote: > On Fri, Aug 13, 2010 at 12:35:44PM +0200, Michael Monnerie wrote: > > On Freitag, 13. August 2010 Stan Hoeppner wrote: > > > Some benchmark results maybe worth a look: > > > http://btrfs.boxacle.net/repository/raid/2.6.35-rc5/2.6.35-rc5/ > > > > Thanks - it would have been great to see xfs with delaylog in that > > comparison, but the graphs are very very nice. > > > > XFS seems performing better the more threads there are, just in "large > > file random reads" it's the slowest - why this? > > Any idea who is doing these runs? IIRC the tests are run by someone from IBM, but I cannot remember who it is. > Once we figure out what that large > file random reads loads is I'm sure we could fix it soon. >From http://btrfs.boxacle.net/: Random Reads (raid, single-disk) Start with 1024 files. 100 MB files on the raid system. 35 MB files on the single-disk system. Each thread reads a fixed amount of data from a random location in one file using 4 kB reads. 5 MB reads on the raid system. 1 MB reads on the single-disk system. So it's not a small random read workload (100GB data set), so the files on XFS are probably more spread out over multiple AGs and hence further apart than other filesystems. Hence a greater average seek distance, hence it slower throughput.... > And asking > him/her to add -o delaylog would also be good. Yes, that would be an interesting comparison... Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+4f9a237d2f5148632b3b+2546+infradead.org+hch@bombadil.srs.infradead.org Fri Aug 13 09:47:34 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DElYfV066964 for ; Fri, 13 Aug 2010 09:47:34 -0500 X-ASG-Debug-ID: 1281710880-263203460000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DFE261702324 for ; Fri, 13 Aug 2010 07:48:00 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id IXchgO3Lh83CtT1l for ; Fri, 13 Aug 2010 07:48:00 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OjvY7-00085G-8B; Fri, 13 Aug 2010 14:47:59 +0000 Date: Fri, 13 Aug 2010 10:47:59 -0400 From: Christoph Hellwig To: Michael Monnerie Cc: xfs@oss.sgi.com, Michael Tokarev X-ASG-Orig-Subj: Re: Message to Stan Hoeppner Subject: Re: Message to Stan Hoeppner Message-ID: <20100813144759.GA30594@infradead.org> References: <201008131300.40536@zmi.at> <4C653355.6080605@msgid.tls.msk.ru> <201008131436.52453@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201008131436.52453@zmi.at> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281710880 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 13, 2010 at 02:36:48PM +0200, Michael Monnerie wrote: > On Freitag, 13. August 2010 Michael Tokarev wrote: > > Heh. I can say something similar about Russia as well (I > > received similar reject to my email too, telling me about > > .ru domains). But I don't think it counts at all in this > > context - it's a tradeoff, everyone decides for himself if > > he wants to accept a small amount of email or block all > > spam outright and deal with a few possible problem cases... > > That explanation was more a joke than seriously meant, I apologize for > the fuzz - it was a "not too hidden" ad for Austria and Vienna ;-) And out in the West it's even more beautiful.. /me runs and hides From marco@nethype.de Fri Aug 13 10:13:54 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44,J_CHICKENPOX_45,J_CHICKENPOX_46,J_CHICKENPOX_47, J_CHICKENPOX_48 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DFDrM7068879 for ; Fri, 13 Aug 2010 10:13:54 -0500 X-ASG-Debug-ID: 1281712458-059800f30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4D548170364D for ; Fri, 13 Aug 2010 08:14:18 -0700 (PDT) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id slOIfda7MqwCLpNO for ; Fri, 13 Aug 2010 08:14:18 -0700 (PDT) Received: from [10.9.0.44] by mail.nethype.de with esmtp (Exim 4.69) (envelope-from ) id 1OjvxZ-0006Jm-9C for xfs@oss.sgi.com; Fri, 13 Aug 2010 15:14:17 +0000 Message-ID: <4C656149.6050604@nethype.de> Date: Fri, 13 Aug 2010 17:14:17 +0200 From: Marco Maisenhelder Organization: nethype GmbH User-Agent: Mozilla-Thunderbird 2.0.0.24 (X11/20100328) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: fs corruption not detected by xfs_check or _repair Subject: fs corruption not detected by xfs_check or _repair Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1281712459 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37876 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi list, I have a little bit of a problem after a catastrophic hardware failure (power supply went up in smoke and took half of my server with it - luckily only one of my raid5 disks though). My xfs data partition on my raid has some severe corruption that prevents me from accessing some files and directories on the partition. This is how the problem manifests itself: *marco:/etc# ls -lrt /store/xfs_corruption/x/ ls: cannot access /store/xfs_corruption/x/db.backup2: Invalid argument ls: cannot access /store/xfs_corruption/x/db.backup1: Invalid argument total 0 ?????????? ? ? ? ? ? db.backup2 ?????????? ? ? ? ? ? db.backup1 xfs_check does not report any errors. xfs_repair does not repair anything. xfs_repair version 3.1.2 xfs_check version 3.1.2 System is Debian stable using a 2.6.26-2-amd64 kernel *marco:/etc# xfs_info /store/ meta-data=/dev/mapper/vgraid-rstore isize=256 agcount=48, agsize=11443904 blks = sectsz=512 attr=2 data = bsize=4096 blocks=549307392, imaxpct=25 = sunit=64 swidth=192 blks naming =version 2 bsize=4096 log =internal bsize=4096 blocks=32768, version=2 = sectsz=512 sunit=64 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 There's nothing in any of the system logs that would hint to the filesystem being corrupt. I have done a metadump but after looking into it found that there's still sensitive information in there. I would be ok sharing it with individual developers but I can't put that on an open mailinglist. I have managed to recover most of the lost data from the filesystem by other means but if there's a chance to recover all of it that would be nice ;) My main problem at the moment is that I don't trust the filesystem in this state and that I can't delete any of the garbled entries without hacking the fs which I think would be suicidal with my current experience level... albeit interesting ;). I'm willing to provide any requested data provided that there is no sensitive information inside. Additional info: I ran an xfs_ncheck on the fs and looked for the broken files/directories (example): marco:~# grep xfs_corruption /tmp/filelist 270700128 xfs_corruption/. 823523611 xfs_corruption/x/. 8589948676 xfs_corruption/x/db.backup2/. 8589948686 xfs_corruption/x/db.backup2/annotations.db 8589948688 xfs_corruption/x/db.backup2/log.0000000010 8589948689 xfs_corruption/x/db.backup2/mailboxes.db 8864332545 xfs_corruption/x/db.backup1/. 8864332554 xfs_corruption/x/db.backup1/annotations.db 8864332555 xfs_corruption/x/db.backup1/log.0000000010 8864332556 xfs_corruption/x/db.backup1/mailboxes.db xfs_db> blockget -i 8589948676 inode 8589948676 add link, now 1 inode 8589948676 mode 040700 fmt local afmt extents nex 0 anex 0 nblk 0 sz 83 inode 8589948676 nlink 2 is dir inode 8589948676 add link, now 2 dir 8589948676 entry . 8589948676 dir 8589948676 entry annotations.db offset 48 8589948686 dir 8589948676 entry log.0000000010 offset 80 8589948688 dir 8589948676 entry mailboxes.db offset 112 8589948689 dir 8589948676 entry .. 823523611 inode 8589948676 parent 823523611 xfs_db> blockget -i 823523611 inode 823523611 add link, now 1 inode 823523611 mode 040750 fmt local afmt extents nex 0 anex 0 nblk 0 sz 52 inode 823523611 nlink 4 is dir inode 823523611 add link, now 2 dir 823523611 entry . 823523611 dir 823523611 entry db.backup2 offset 928 8589948676 dir 823523611 entry db.backup1 offset 952 8864332545 dir 823523611 entry .. 270700128 inode 823523611 parent 270700128 inode 823523611 add link, now 3 inode 8589948676 parent 823523611 inode 823523611 add link, now 4 inode 8864332545 parent 823523611 xfs_db> inode 8589948676 xfs_db> print core.magic = 0x494e core.mode = 040700 core.version = 2 core.format = 1 (local) core.nlinkv2 = 2 core.onlink = 0 core.projid = 0 core.uid = 109 core.gid = 8 core.flushiter = 16 core.atime.sec = Wed Aug 4 20:20:30 2010 core.atime.nsec = 405290860 core.mtime.sec = Wed Aug 4 20:20:30 2010 core.mtime.nsec = 444295242 core.ctime.sec = Wed Aug 4 20:50:30 2010 core.ctime.nsec = 716289102 core.size = 83 core.nblocks = 0 core.extsize = 0 core.nextents = 0 core.naextents = 0 core.forkoff = 0 core.aformat = 2 (extents) core.dmevmask = 0 core.dmstate = 0 core.newrtbm = 0 core.prealloc = 0 core.realtime = 0 core.immutable = 0 core.append = 0 core.sync = 0 core.noatime = 0 core.nodump = 0 core.rtinherit = 0 core.projinherit = 0 core.nosymlinks = 0 core.extsz = 0 core.extszinherit = 0 core.nodefrag = 0 core.filestream = 0 core.gen = 1967827294 next_unlinked = null u.sfdir2.hdr.count = 3 u.sfdir2.hdr.i8count = 3 u.sfdir2.hdr.parent.i8 = 823523611 u.sfdir2.list[0].namelen = 14 u.sfdir2.list[0].offset = 0x30 u.sfdir2.list[0].name = "annotations.db" u.sfdir2.list[0].inumber.i8 = 8589948686 u.sfdir2.list[1].namelen = 14 u.sfdir2.list[1].offset = 0x50 u.sfdir2.list[1].name = "log.0000000010" u.sfdir2.list[1].inumber.i8 = 8589948688 u.sfdir2.list[2].namelen = 12 u.sfdir2.list[2].offset = 0x70 u.sfdir2.list[2].name = "mailboxes.db" u.sfdir2.list[2].inumber.i8 = 8589948689 xfs_db> ring type bblock bblen fsbno inode * 0: inode 283762312 8 51470225 823523611 xfs_db> type inode xfs_db> p core.magic = 0x494e core.mode = 040750 core.version = 2 core.format = 1 (local) core.nlinkv2 = 4 core.onlink = 0 core.projid = 0 core.uid = 110 core.gid = 8 core.flushiter = 14526 core.atime.sec = Sat Aug 7 01:32:24 2010 core.atime.nsec = 351022120 core.mtime.sec = Sat Aug 7 01:32:38 2010 core.mtime.nsec = 547022120 core.ctime.sec = Sat Aug 7 01:32:38 2010 core.ctime.nsec = 547022120 core.size = 52 core.nblocks = 0 core.extsize = 0 core.nextents = 0 core.naextents = 0 core.forkoff = 0 core.aformat = 2 (extents) core.dmevmask = 0 core.dmstate = 0 core.newrtbm = 0 core.prealloc = 0 core.realtime = 0 core.immutable = 0 core.append = 0 core.sync = 0 core.noatime = 0 core.nodump = 0 core.rtinherit = 0 core.projinherit = 0 core.nosymlinks = 0 core.extsz = 0 core.extszinherit = 0 core.nodefrag = 0 core.filestream = 0 core.gen = 677480964 next_unlinked = null u.sfdir2.hdr.count = 2 u.sfdir2.hdr.i8count = 2 u.sfdir2.hdr.parent.i8 = 270700128 u.sfdir2.list[0].namelen = 10 u.sfdir2.list[0].offset = 0x3a0 u.sfdir2.list[0].name = "db.backup2" u.sfdir2.list[0].inumber.i8 = 8589948676 u.sfdir2.list[1].namelen = 10 u.sfdir2.list[1].offset = 0x3b8 u.sfdir2.list[1].name = "db.backup1" u.sfdir2.list[1].inumber.i8 = 8864332545 xfs_db> type text xfs_db> p 00: 49 4e 41 e8 02 01 00 00 00 00 00 6e 00 00 00 08 INA........n.... 10: 00 00 00 04 00 00 00 00 00 00 00 00 00 00 38 be ..............8. 20: 4c 5c 9b 88 14 ec 2c 28 4c 5c 9b 96 20 9a e5 28 L.......L....... 30: 4c 5c 9b 96 20 9a e5 28 00 00 00 00 00 00 00 34 L..............4 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 02 00 00 00 00 00 00 00 00 28 61 8a 04 .............a.. 60: ff ff ff ff 02 02 00 00 00 00 10 22 8e 60 0a 03 ................ 70: a0 64 62 2e 62 61 63 6b 75 70 32 00 00 00 02 00 .db.backup2..... 80: 00 37 04 0a 03 b8 64 62 2e 62 61 63 6b 75 70 31 .7....db.backup1 90: 00 00 00 02 10 5a fb 01 00 00 00 00 00 00 00 00 .....Z.......... a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Hope this helps! Marco From BATV+4f9a237d2f5148632b3b+2546+infradead.org+hch@bombadil.srs.infradead.org Fri Aug 13 10:15:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DFFFKt069017 for ; Fri, 13 Aug 2010 10:15:15 -0500 X-ASG-Debug-ID: 1281712542-5c5101c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6BA2B4B4E1C for ; Fri, 13 Aug 2010 08:15:42 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id cUgKGiqzNIgNGV2r for ; Fri, 13 Aug 2010 08:15:42 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Ojvyt-0006m9-Bf; Fri, 13 Aug 2010 15:15:39 +0000 Date: Fri, 13 Aug 2010 11:15:39 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Michael Tokarev , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? Message-ID: <20100813151539.GA22492@infradead.org> References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> <20100813113915.GD10429@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100813113915.GD10429@dastard> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281712542 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 13, 2010 at 09:39:15PM +1000, Dave Chinner wrote: > The workaround old versions of mkfs.xfs used was to create the fs > with a sector size of 4k when it detected md raid5 underneath it so > the sb and ag headers were all 4k aligned and sized, just like the > rest of the filesystem.... That workaround is still in latests mkfs.xfs if you build against the internal libdisk instead of libblkid. And that's the case at least for Debian, and probably a few other distributions as well. From sandeen@sandeen.net Fri Aug 13 15:40:11 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DKeAHO092705 for ; Fri, 13 Aug 2010 15:40:10 -0500 X-ASG-Debug-ID: 1281732568-125602c40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BAA1314D1AC6 for ; Fri, 13 Aug 2010 13:49:28 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id CD8e9EgiSh5NIZCn for ; Fri, 13 Aug 2010 13:49:28 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id A403048820E0; Fri, 13 Aug 2010 15:40:33 -0500 (CDT) Message-ID: <4C65ADC1.3010801@sandeen.net> Date: Fri, 13 Aug 2010 15:40:33 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Marco Maisenhelder CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: fs corruption not detected by xfs_check or _repair Subject: Re: fs corruption not detected by xfs_check or _repair References: <4C656149.6050604@nethype.de> In-Reply-To: <4C656149.6050604@nethype.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1281732570 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37899 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Marco Maisenhelder wrote: > Hi list, > > I have a little bit of a problem after a catastrophic hardware failure > (power supply went up in smoke and took half of my server with it - > luckily only one of my raid5 disks though). My xfs data partition on my > raid has some severe corruption that prevents me from accessing some > files and directories on the partition. This is how the problem > manifests itself: > > *marco:/etc# ls -lrt /store/xfs_corruption/x/ > ls: cannot access /store/xfs_corruption/x/db.backup2: Invalid argument > ls: cannot access /store/xfs_corruption/x/db.backup1: Invalid argument > total 0 > ?????????? ? ? ? ? ? db.backup2 > ?????????? ? ? ? ? ? db.backup1 > > xfs_check does not report any errors. xfs_repair does not repair anything. > > xfs_repair version 3.1.2 > xfs_check version 3.1.2 > System is Debian stable using a 2.6.26-2-amd64 kernel > > *marco:/etc# xfs_info /store/ > meta-data=/dev/mapper/vgraid-rstore isize=256 agcount=48, > agsize=11443904 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=549307392, imaxpct=25 > = sunit=64 swidth=192 blks > naming =version 2 bsize=4096 > log =internal bsize=4096 blocks=32768, version=2 > = sectsz=512 sunit=64 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > > There's nothing in any of the system logs that would hint to the > filesystem being corrupt. > > I have done a metadump but after looking into it found that there's > still sensitive information in there. I would be ok sharing it with > individual developers but I can't put that on an open mailinglist. You might be able to xfs_mdrestore, mount that, remove all but the offending directory, re-metadump that, and put it out there? Just a thought, I haven't looked in further detail at your xfs_db adventures, sorry - maybe there's enough info there but I'm swamped in other things ATM, so will leave it to others, I hope. :) -Eric From sandeen@sandeen.net Fri Aug 13 15:42:28 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DKgSiL092914 for ; Fri, 13 Aug 2010 15:42:28 -0500 X-ASG-Debug-ID: 1281732174-77a900d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E8DE44B6E37 for ; Fri, 13 Aug 2010 13:42:54 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id rMAHwzOn4CEOajFr for ; Fri, 13 Aug 2010 13:42:54 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id D426E48820E0; Fri, 13 Aug 2010 15:42:53 -0500 (CDT) Message-ID: <4C65AE4D.6070502@sandeen.net> Date: Fri, 13 Aug 2010 15:42:53 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Dave Chinner CC: Christoph Hellwig , Michael Monnerie , Stan Hoeppner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <4C6516CA.2010602@hardwarefreak.com> <201008131235.45050@zmi.at> <20100813122907.GA14650@infradead.org> <20100813141344.GE10429@dastard> In-Reply-To: <20100813141344.GE10429@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1281732174 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37898 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > On Fri, Aug 13, 2010 at 08:29:07AM -0400, Christoph Hellwig wrote: ... >> And asking >> him/her to add -o delaylog would also be good. > > Yes, that would be an interesting comparison... I was thinking the same thing; I'll do that. -Eric > Cheers, > > Dave. > From xfs2@s2y4n2c.de Fri Aug 13 17:29:29 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,UPPERCASE_50_75 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DMTSTt100134 for ; Fri, 13 Aug 2010 17:29:29 -0500 X-ASG-Debug-ID: 1281739127-680d01c40000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from moutng.kundenserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3FECFCA6199 for ; Fri, 13 Aug 2010 15:38:47 -0700 (PDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.171]) by cuda.sgi.com with ESMTP id gzORB4HelJYfgCFU for ; Fri, 13 Aug 2010 15:38:47 -0700 (PDT) Received: from [90.60.90.23] (p4FFE134E.dip.t-dialin.net [79.254.19.78]) by mrelayeu.kundenserver.de (node=mreu2) with ESMTP (Nemesis) id 0M6ym1-1P4TOX2RpV-00xORy; Sat, 14 Aug 2010 00:29:52 +0200 X-ASG-Orig-Subj: simpler _xfs_dic2xflags() ? Subject: simpler _xfs_dic2xflags() ? From: utz lehmann To: linux-xfs Content-Type: text/plain; charset="UTF-8" Date: Sat, 14 Aug 2010 00:29:51 +0200 Message-ID: <1281738591.5897.17.camel@segv.aura.of.mankind> Mime-Version: 1.0 X-Mailer: Evolution 2.30.2 (2.30.2-4.fc13) Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:nrkTMsUzDsKoSjxsvFhTcpPPBPHQXLDopF+mxiKwhIu P1w8Rqoxecthm5uRJmNQzF0CxW4OAPj1F48fksvDUPWRUu3kMk wc04zYTfLErqQI+aEvpzAg6HmdTrwhsCKV8N0LkKM6282Dlg2y E6Ahly+wqXrgmdbBEowqkV3Z3ZoDcbcKWW2sdDc0t6metlfaRZ EynxYbHVQOb007cRG0irg== X-Barracuda-Connect: moutng.kundenserver.de[212.227.126.171] X-Barracuda-Start-Time: 1281739129 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.53 X-Barracuda-Spam-Status: No, SCORE=-1.53 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UPPERCASE_50_75, UPPERCASE_50_75_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37907 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UPPERCASE_50_75 message body is 50-75% uppercase 0.49 UPPERCASE_50_75_2 message body is 50-75% uppercase X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello I just found following function in xfs_inode.c: STATIC uint _xfs_dic2xflags( __uint16_t di_flags) { uint flags = 0; if (di_flags & XFS_DIFLAG_ANY) { if (di_flags & XFS_DIFLAG_REALTIME) flags |= XFS_XFLAG_REALTIME; if (di_flags & XFS_DIFLAG_PREALLOC) flags |= XFS_XFLAG_PREALLOC; if (di_flags & XFS_DIFLAG_IMMUTABLE) flags |= XFS_XFLAG_IMMUTABLE; if (di_flags & XFS_DIFLAG_APPEND) flags |= XFS_XFLAG_APPEND; if (di_flags & XFS_DIFLAG_SYNC) flags |= XFS_XFLAG_SYNC; if (di_flags & XFS_DIFLAG_NOATIME) flags |= XFS_XFLAG_NOATIME; if (di_flags & XFS_DIFLAG_NODUMP) flags |= XFS_XFLAG_NODUMP; if (di_flags & XFS_DIFLAG_RTINHERIT) flags |= XFS_XFLAG_RTINHERIT; if (di_flags & XFS_DIFLAG_PROJINHERIT) flags |= XFS_XFLAG_PROJINHERIT; if (di_flags & XFS_DIFLAG_NOSYMLINKS) flags |= XFS_XFLAG_NOSYMLINKS; if (di_flags & XFS_DIFLAG_EXTSIZE) flags |= XFS_XFLAG_EXTSIZE; if (di_flags & XFS_DIFLAG_EXTSZINHERIT) flags |= XFS_XFLAG_EXTSZINHERIT; if (di_flags & XFS_DIFLAG_NODEFRAG) flags |= XFS_XFLAG_NODEFRAG; if (di_flags & XFS_DIFLAG_FILESTREAM) flags |= XFS_XFLAG_FILESTREAM; } return flags; } Can't the whole function be replaced by something like this? flags = di_flags & MASK; The corresponding XFS_DIFLAGS and XFS_XFLAGS have the same values. utz From SRS0+6gd8+74+fromorbit.com=david@internode.on.net Fri Aug 13 18:05:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DN54al103019 for ; Fri, 13 Aug 2010 18:05:04 -0500 X-ASG-Debug-ID: 1281741262-5baf039e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 12B11CA6263 for ; Fri, 13 Aug 2010 16:14:23 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id 1ZBEsBng4Yb67oLU for ; Fri, 13 Aug 2010 16:14:23 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 23574134-1927428 for multiple; Sat, 14 Aug 2010 08:35:27 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Ok3JW-0007HM-1o; Sat, 14 Aug 2010 09:05:26 +1000 Date: Sat, 14 Aug 2010 09:05:25 +1000 From: Dave Chinner To: Marco Maisenhelder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: fs corruption not detected by xfs_check or _repair Subject: Re: fs corruption not detected by xfs_check or _repair Message-ID: <20100813230525.GF10429@dastard> References: <4C656149.6050604@nethype.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C656149.6050604@nethype.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1281741265 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37909 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 13, 2010 at 05:14:17PM +0200, Marco Maisenhelder wrote: > Hi list, > > I have a little bit of a problem after a catastrophic hardware > failure (power supply went up in smoke and took half of my server > with it - luckily only one of my raid5 disks though). My xfs data > partition on my raid has some severe corruption that prevents me > from accessing some files and directories on the partition. This is > how the problem manifests itself: > > *marco:/etc# ls -lrt /store/xfs_corruption/x/ > ls: cannot access /store/xfs_corruption/x/db.backup2: Invalid argument > ls: cannot access /store/xfs_corruption/x/db.backup1: Invalid argument > total 0 > ?????????? ? ? ? ? ? db.backup2 > ?????????? ? ? ? ? ? db.backup1 What operation is returning EINVAL? strace should tell you that. > *marco:/etc# xfs_info /store/ > meta-data=/dev/mapper/vgraid-rstore isize=256 agcount=48, > agsize=11443904 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=549307392, imaxpct=25 > = sunit=64 swidth=192 blks > naming =version 2 bsize=4096 > log =internal bsize=4096 blocks=32768, version=2 > = sectsz=512 sunit=64 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > > There's nothing in any of the system logs that would hint to the > filesystem being corrupt. >From the xfs_db output, all the directories look valid, so I'm not sure what is causing the problem, yet. What kernel version and xfs_repair version are you running? Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+wJe4+74+fromorbit.com=david@internode.on.net Fri Aug 13 18:15:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7DNFv8a104326 for ; Fri, 13 Aug 2010 18:15:57 -0500 X-ASG-Debug-ID: 1281741381-2c9301500000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DABF41B2DDF6 for ; Fri, 13 Aug 2010 16:16:22 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id Tdy75fkwlCQjBMkG for ; Fri, 13 Aug 2010 16:16:22 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 34956019-1927428 for multiple; Sat, 14 Aug 2010 08:46:21 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Ok3U3-0007I1-Ky; Sat, 14 Aug 2010 09:16:19 +1000 Date: Sat, 14 Aug 2010 09:16:19 +1000 From: Dave Chinner To: utz lehmann Cc: linux-xfs X-ASG-Orig-Subj: Re: simpler _xfs_dic2xflags() ? Subject: Re: simpler _xfs_dic2xflags() ? Message-ID: <20100813231619.GG10429@dastard> References: <1281738591.5897.17.camel@segv.aura.of.mankind> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1281738591.5897.17.camel@segv.aura.of.mankind> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1281741383 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37908 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Aug 14, 2010 at 12:29:51AM +0200, utz lehmann wrote: > Hello > > I just found following function in xfs_inode.c: > > STATIC uint > _xfs_dic2xflags( > __uint16_t di_flags) > { > uint flags = 0; > > if (di_flags & XFS_DIFLAG_ANY) { > if (di_flags & XFS_DIFLAG_REALTIME) > flags |= XFS_XFLAG_REALTIME; > if (di_flags & XFS_DIFLAG_PREALLOC) > flags |= XFS_XFLAG_PREALLOC; > if (di_flags & XFS_DIFLAG_IMMUTABLE) > flags |= XFS_XFLAG_IMMUTABLE; > if (di_flags & XFS_DIFLAG_APPEND) > flags |= XFS_XFLAG_APPEND; > if (di_flags & XFS_DIFLAG_SYNC) > flags |= XFS_XFLAG_SYNC; > if (di_flags & XFS_DIFLAG_NOATIME) > flags |= XFS_XFLAG_NOATIME; > if (di_flags & XFS_DIFLAG_NODUMP) > flags |= XFS_XFLAG_NODUMP; > if (di_flags & XFS_DIFLAG_RTINHERIT) > flags |= XFS_XFLAG_RTINHERIT; > if (di_flags & XFS_DIFLAG_PROJINHERIT) > flags |= XFS_XFLAG_PROJINHERIT; > if (di_flags & XFS_DIFLAG_NOSYMLINKS) > flags |= XFS_XFLAG_NOSYMLINKS; > if (di_flags & XFS_DIFLAG_EXTSIZE) > flags |= XFS_XFLAG_EXTSIZE; > if (di_flags & XFS_DIFLAG_EXTSZINHERIT) > flags |= XFS_XFLAG_EXTSZINHERIT; > if (di_flags & XFS_DIFLAG_NODEFRAG) > flags |= XFS_XFLAG_NODEFRAG; > if (di_flags & XFS_DIFLAG_FILESTREAM) > flags |= XFS_XFLAG_FILESTREAM; > } > > return flags; > } > > Can't the whole function be replaced by something like this? > > flags = di_flags & MASK; > > The corresponding XFS_DIFLAGS and XFS_XFLAGS have the same values. Sure they have the same value right now, but remember that XFS_XFLAG_* values are part of userspace ABI and the XFS_DIFLAG_* define to the on-disk format values. We keep a logical separation of the two as there is no guarantee they will remain the same over time. Indeed, there are XFS_XFLAGS_* values that have no equivalent XFS_DIFLAG_ value. Further, we are out of space for new flags in the inode flags field and hence any new on-disk flags will be in a different format to the current on disk values and hence we'd break any masking based optimisation if we change them... Cheers, Dave. -- Dave Chinner david@fromorbit.com From stan@hardwarefreak.com Sat Aug 14 00:21:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7E5LFcL132384 for ; Sat, 14 Aug 2010 00:21:15 -0500 X-ASG-Debug-ID: 1281763301-57f401320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 18EC9170C8AD for ; Fri, 13 Aug 2010 22:21:41 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id Ob5LpKfEQDgZZtCU for ; Fri, 13 Aug 2010 22:21:41 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 68A9F6C307 for ; Sat, 14 Aug 2010 00:21:41 -0500 (CDT) Message-ID: <4C6627E4.3040000@hardwarefreak.com> Date: Sat, 14 Aug 2010 00:21:40 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Message to Stan Hoeppner Subject: Re: Message to Stan Hoeppner References: <201008131300.40536@zmi.at> In-Reply-To: <201008131300.40536@zmi.at> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1281763302 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0796 1.0000 -1.5164 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.92 X-Barracuda-Spam-Status: No, SCORE=-0.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37934 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Monnerie put forth on 8/13/2010 6:00 AM: > Dear Stan, > > : host greer.hardwarefreak.com[65.41.216.221] > said: 550 5.7.1 : Client host > rejected: We do not accept mail from .at domains (in reply to RCPT TO > command) > > I don't know what experiences you've had, but Austria is not that bad. > We have Mozart, Walzer, the Danube, and Vienna is worlds most beautiful > city to live in (search "vienna best city in the world" on Google finds > http://www.citymayors.com/features/quality_survey.html and others). > > Maybe you could rethink that policy? Spam rate is quite low with .at > domains, compared to others. Fixed. Sorry about that Michael. I had an old pcre that checked the SMTP client rDNS host name against a bunch of ccTLDs I received spam from some time ago. I forgot to disable it when I moved to a much more effective and a bit more sane anti-spam configuration. I'm surprised someone such as yourself hadn't tripped this before now with all the lists I subscribe to. That said, I do still block some entire countries' IP space using ipdeny.com info, such as China, Russia, Korea, Malaysia, and a handful of others from which I'll likely never receive legit mail. I might from Russia due to some of my list memberships. The "Reply-to-list" option in one's MUA is one's friend. Reply-all causes rows like this and just duplicates messages needlessly. There are times when a reply-all is needed, but usually that's not the case. Only when non-list members are CC'd in a thread do I hit the "reply-all" button. Anyway, enough about mail management and my somewhat draconian anti-spam policies. ;) -- Stan From seo@orangewebtech.com Sat Aug 14 00:57:01 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_50,FROM_EXCESS_BASE64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7E5v1T0134457 for ; Sat, 14 Aug 2010 00:57:01 -0500 X-ASG-Debug-ID: 1281765447-66b7025e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pv0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C1E5B4B82D5 for ; Fri, 13 Aug 2010 22:57:27 -0700 (PDT) Received: from mail-pv0-f181.google.com (mail-pv0-f181.google.com [74.125.83.181]) by cuda.sgi.com with ESMTP id k02JqEiZDKgGha2W for ; Fri, 13 Aug 2010 22:57:27 -0700 (PDT) Received: by pvg16 with SMTP id 16so1563614pvg.26 for ; Fri, 13 Aug 2010 22:57:26 -0700 (PDT) Received: by 10.114.111.15 with SMTP id j15mr2856240wac.187.1281765446754; Fri, 13 Aug 2010 22:57:26 -0700 (PDT) Received: from Ankur-PC ([122.170.40.205]) by mx.google.com with ESMTPS id d38sm6172911wam.20.2010.08.13.22.57.24 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 13 Aug 2010 22:57:26 -0700 (PDT) From: "=?utf-8?B?U2FuICggT3JhbmdlVGVjaG5vbGFiKQ==?=" To: xfs@oss.sgi.com X-ASG-Orig-Subj: =?utf-8?B?cGFydG5lcnNoaXAgaXNzdWU=?= Subject: =?utf-8?B?cGFydG5lcnNoaXAgaXNzdWU=?= Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Sat, 14 Aug 2010 11:25:10 +0530 Message-ID: <20100814055510576.41530A5436BC262D@Ankur-PC> X-Mailer: Web CEO 8.1.0.3903 X-Barracuda-Connect: mail-pv0-f181.google.com[74.125.83.181] X-Barracuda-Start-Time: 1281765447 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0445 1.0000 -1.7346 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.67 X-Barracuda-Spam-Status: No, SCORE=-0.67 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FROM_EXCESS_BASE64, FROM_EXCESS_BASE64_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37936 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 FROM_EXCESS_BASE64 From: base64 encoded unnecessarily 1.05 FROM_EXCESS_BASE64_2 From: base64 encoded unnecessarily X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean SGVsbG8sDQpUaGlzIGlzIFNhbiAoIE9yYW5nZVRlY2hub2xhYikgY29udGFjdGluZyB5b3UgYWdh aW4gb24gdGhlIHBvc3NpYmxlIHBhcnRuZXJzaGlwIGlzc3VlLiBJIGVtYWlsZWQgeW91IHNvbWUg dGltZSBhZ28gYnV0IG5ldmVyIGhlYXJkIGJhY2sgZnJvbSB5b3UuDQpUaGUgdGhpbmcgd2FzIHRo YXQgSSBmb3VuZCB5b3VyIHdlYnNpdGUgb3NzLnNnaS5jb20gd2hlbiBzZWFyY2hpbmcgdGhlIHdl YiBvbiB0aGUgdG9waWNzIHJlbGF0ZWQgdG8gbXkgd2Vic2l0ZSB0aGVtZSwgYW5kIHdvdWxkIGxp a2UgdG8gcGFydG5lciB3aXRoIHlvdS4NCkkgd291bGQgZ3JlYXRseSBhcHByZWNpYXRlIGl0IGlm IHlvdSBwbGFjZWQgYSBsaW5rIHRvIGh0dHA6Ly93d3cub3JhbmdldGVjaG5vbGFiLmNvbS8gaW4g cmV0dXJuIHRvIG1lIGxpbmtpbmcgYmFjayB0byB5b3VyIHdlYnNpdGUuDQpZb3UgY2FuIGZlZWwg ZnJlZSB0byByZXZpZXcgbXkgd2Vic2l0ZSBodHRwOi8vd3d3Lm9yYW5nZXRlY2hub2xhYi5jb20v IGFuZCBsZXQgbWUga25vdyBpZiB5b3UgZmVlbCBpbnRlcmVzdGVkIGluIGxpbmsgZXhjaGFuZ2Uu DQpEb24ndCBoZXNpdGF0ZSB0byBjb250YWN0IG1lIGF0IHNlb0BvcmFuZ2V3ZWJ0ZWNoLmNvbSB0 byBkaXNjdXNzIHRoZSB0aGluZ3MuDQoNCkhvcGUgdG8gaGVhciBmcm9tIHlvdSBzb29uLA0KDQpT YW4gKCBPcmFuZ2VUZWNobm9sYWIpLA0KaHR0cDovL3d3dy5vcmFuZ2V0ZWNobm9sYWIuY29tLw0K From Martin@lichtvoll.de Sat Aug 14 04:49:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7E9nKGc142360 for ; Sat, 14 Aug 2010 04:49:21 -0500 X-ASG-Debug-ID: 1281779922-6441005c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.lichtvoll.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4E5E7CAC3D3 for ; Sat, 14 Aug 2010 02:58:42 -0700 (PDT) Received: from mail.lichtvoll.de (mondschein.lichtvoll.de [194.150.191.11]) by cuda.sgi.com with ESMTP id aTyvwzPqk2ukvqB6 for ; Sat, 14 Aug 2010 02:58:42 -0700 (PDT) Received: from shambhala.localnet (ppp-88-217-99-194.dynamic.mnet-online.de [88.217.99.194]) by mail.lichtvoll.de (Postfix) with ESMTPSA id 5BDFF5AE6E; Sat, 14 Aug 2010 11:49:44 +0200 (CEST) From: Martin Steigerwald To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Message to Stan Hoeppner Subject: Re: Message to Stan Hoeppner Date: Sat, 14 Aug 2010 11:49:30 +0200 User-Agent: KMail/1.13.5 (Linux/2.6.33.6-tp42-toi-3.1.1.1-04982-g768d8a0; KDE/4.4.5; i686; ; ) Cc: Stan Hoeppner References: <201008131300.40536@zmi.at> <4C6627E4.3040000@hardwarefreak.com> (sfid-20100814_092332_879282_FAC1CB60) In-Reply-To: <4C6627E4.3040000@hardwarefreak.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart2665223.Uz4xhOOUxM"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008141149.37526.Martin@lichtvoll.de> X-Barracuda-Connect: mondschein.lichtvoll.de[194.150.191.11] X-Barracuda-Start-Time: 1281779923 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37951 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart2665223.Uz4xhOOUxM Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Am Samstag 14 August 2010 schrieb Stan Hoeppner: > Michael Monnerie put forth on 8/13/2010 6:00 AM: > > Dear Stan, Hi! > > : host greer.hardwarefreak.com[65.41.216.221] > > said: 550 5.7.1 : Client host > > rejected: We do not accept mail from .at domains (in reply to RCPT TO > > command) > >=20 > > I don't know what experiences you've had, but Austria is not that > > bad. We have Mozart, Walzer, the Danube, and Vienna is worlds most > > beautiful city to live in (search "vienna best city in the world" on > > Google finds http://www.citymayors.com/features/quality_survey.html > > and others). > >=20 > > Maybe you could rethink that policy? Spam rate is quite low with .at > > domains, compared to others. >=20 > Fixed. Sorry about that Michael. I had an old pcre that checked the > SMTP client rDNS host name against a bunch of ccTLDs I received spam > from some time ago. I forgot to disable it when I moved to a much > more effective and a bit more sane anti-spam configuration. I'm > surprised someone such as yourself hadn't tripped this before now with > all the lists I subscribe to. >=20 > That said, I do still block some entire countries' IP space using > ipdeny.com info, such as China, Russia, Korea, Malaysia, and a handful > of others from which I'll likely never receive legit mail. I might > from Russia due to some of my list memberships. Hmmm, I use policyd-weight to weight several blacklists instead of=20 blocking complete country IP spaces unconditionally and together with some= =20 local spam filtering with CRM114 at home it keeps spam gets through rate=20 very comfortable low for more than a year already. I estimate I do not=20 have more than 20 spam mails marked as unsure in a whole week.The rate is=20 a bit higher at work, but still quite comfortable, where Zimbra does the=20 additional spam filtering I think with a learnable Spamassassin setup. But= =20 most mail is blocked by policyd-weight at SMTP level anyway. So I do not see any need to block complete IP spaces, but your mileage may= =20 vary.=20 Ciao, =2D-=20 Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 --nextPart2665223.Uz4xhOOUxM Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iEYEABECAAYFAkxmZqoACgkQmRvqrKWZhMe36gCeKnCtnpjtz7MZW5+lUsviFMDn SEQAn1x6SYb1zS8GE3/bUzU3I8kqKqNI =Sk7A -----END PGP SIGNATURE----- --nextPart2665223.Uz4xhOOUxM-- From BATV+b6a12dc2e78f4cb1aae4+2547+infradead.org+hch@bombadil.srs.infradead.org Sat Aug 14 06:14:50 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7EBEmjL144523 for ; Sat, 14 Aug 2010 06:14:50 -0500 X-ASG-Debug-ID: 1281784515-68a501c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6CBFF1B3045B for ; Sat, 14 Aug 2010 04:15:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id YVm89hW22fliNCrD for ; Sat, 14 Aug 2010 04:15:15 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OkEhl-00049E-8p; Sat, 14 Aug 2010 11:15:13 +0000 Date: Sat, 14 Aug 2010 07:15:13 -0400 From: Christoph Hellwig To: nathans@debian.org, anibal@debian.org Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: xfsprogs Debian mantainaince Subject: xfsprogs Debian mantainaince Message-ID: <20100814111513.GA8214@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281784515 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Nathan, hi Anibal, if seen the constant flipping between native and non-native uploads for the xfsprogs Debian packages between the two of you and it's slightly annoying. I know Nathan likes maintaining the Debian packages in git, which also makes life for us XFS developers trying to build debian packages a lot easier. What about a compromise? We'll add a debian- branches to the xfsprogs-dev repository where we can track the exact packages uploaded to Debian, including the -2/-3 etc packages revisions that only get uploaded to Debian, while all important packaging changes happen in the master branch, so that it can also be built from git into a Debian package. The advantage is that all package maintaince happens in git, git master can be packaged easily, and in addition we track all Debian uploads in git as well. The only big prerequisite is that we get a kernel.org account for Anibal so that he can also commit to it directly. Also can we add xfs@oss.sgi.com to the Cc list for debian xfs bugreports? I think most issues are upstream ones anyway, and automatically sending them to the XFS list will get them a bigger audience. All this also applies to xfsdump and the dmapi package, too. And one last request, any chance to get xfsprogs for -testing rebuilt against libblkid now that util-linux-2.17 has finally made it into testing? Beeing able to use blkid for alignment detection will be very important so that XFS on Debian can deal with 4k sector disks and hardware RAID arrays out of the box. From Martin@lichtvoll.de Sat Aug 14 06:27:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7EBRvcl144860 for ; Sat, 14 Aug 2010 06:27:58 -0500 X-ASG-Debug-ID: 1281785838-2192013f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.lichtvoll.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A77FCAE983 for ; Sat, 14 Aug 2010 04:37:19 -0700 (PDT) Received: from mail.lichtvoll.de (mondschein.lichtvoll.de [194.150.191.11]) by cuda.sgi.com with ESMTP id 2bdgg2xuvDf2Qeow for ; Sat, 14 Aug 2010 04:37:19 -0700 (PDT) Received: from shambhala.localnet (ppp-88-217-99-194.dynamic.mnet-online.de [88.217.99.194]) by mail.lichtvoll.de (Postfix) with ESMTPSA id 5790A5AE6E; Sat, 14 Aug 2010 13:28:21 +0200 (CEST) From: Martin Steigerwald To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Date: Sat, 14 Aug 2010 13:28:17 +0200 User-Agent: KMail/1.13.5 (Linux/2.6.33.6-tp42-toi-3.1.1.1-04982-g768d8a0; KDE/4.4.5; i686; ; ) References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <20100813141344.GE10429@dastard> <4C65AE4D.6070502@sandeen.net> (sfid-20100814_092305_493513_AC7C6900) In-Reply-To: <4C65AE4D.6070502@sandeen.net> Cc: Steven Pratt , Christoph Hellwig , Michael Monnerie , Stan Hoeppner , xfs@oss.sgi.com, Dave Chinner , Eric Sandeen MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201008141328.18436.Martin@lichtvoll.de> X-Barracuda-Connect: mondschein.lichtvoll.de[194.150.191.11] X-Barracuda-Start-Time: 1281785840 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.02 X-Barracuda-Spam-Status: No, SCORE=-1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_TG232 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37958 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.00 BSF_SC0_TG232 BODY: Custom Rule TG232 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi! Cc'd Steve as I think he is running the benchmarks. Am Freitag 13 August 2010 schrieb Eric Sandeen: > Dave Chinner wrote: > > On Fri, Aug 13, 2010 at 08:29:07AM -0400, Christoph Hellwig wrote: > ... > > >> And asking > >> him/her to add -o delaylog would also be good. > > > > Yes, that would be an interesting comparison... > > I was thinking the same thing; I'll do that. I think its Steven Pratt from IBM. Steve, could you add a case for mount option "-o delaylog" to your benchmark runs? ---------- Weitergeleitete Nachricht ---------- Subject: New performance results Date: Samstag 24 April 2010 From: Steven Pratt To: "linux-btrfs" Well, it's been a while but been very busy on other things. Thanks to Keith Mannthey for helping get some of these runs done. New raid performance on 2.6.34-rc3: http://btrfs.boxacle.net/repository/raid/2010-04-14_2004/2.6.34- rc3/2.6.34-rc3.html Also, the long running history graphs are here: http://btrfs.boxacle.net/repository/raid/history/History.html Steve -- [...] ------------------------------------------------------- Ciao, -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 From mluken1@hometowncable.net Sat Aug 14 15:38:32 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_95 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7EKcWCY160988 for ; Sat, 14 Aug 2010 15:38:32 -0500 X-ASG-Debug-ID: 1281818338-174901eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp1103.redcondor.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 34C731218377 for ; Sat, 14 Aug 2010 13:38:58 -0700 (PDT) Received: from smtp1103.redcondor.net (smtp1103.redcondor.net [206.51.160.5]) by cuda.sgi.com with ESMTP id lgQ18Fso4KLMDCcg for ; Sat, 14 Aug 2010 13:38:58 -0700 (PDT) Received: from mail.hometowncable.net ([206.51.160.12]) by smtp1103.redcondor.net ({ab31096f-0631-4b67-afb7-8a6a434e6ed1}) via TCP (outbound) with ESMTP id 20100814203730928; Sat, 14 Aug 2010 20:37:30 +0000 X-RC-FROM: Received: from hometowncable.net ([192.168.200.12]) by mail.hometowncable.net (IceWarp 10.1.1) with ASMTP id WCZ71827; Sat, 14 Aug 2010 16:37:27 -0400 Date: Sat, 14 Aug 2010 16:37:27 -0400 To: undisclosed-recipients:; From: Micheal Luken X-ASG-Orig-Subj: Upgrading Of Your Account... Subject: Upgrading Of Your Account... Message-ID: <78a260e1f38775a5ff1c03f894268eb5@hometowncable.net> X-Mailer: IceWarp Mailer 10.1.1 X-Priority: 3 Reply-To: upgrading001@gmail.com MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: smtp1103.redcondor.net[206.51.160.5] X-Barracuda-Start-Time: 1281818339 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5168 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Upgrading our old Webmail Server of (No-378XXA842) to a new and better = Server (No-975RRR984). So verify of your account. Username: Password: = D.O.B. Confirmed Your Password:=20 From xfs@tlinx.org Sat Aug 14 15:47:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7EKlgwe161207 for ; Sat, 14 Aug 2010 15:47:43 -0500 X-ASG-Debug-ID: 1281819425-7deb020b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from Ishtar.sc.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ABEF5CB053B for ; Sat, 14 Aug 2010 13:57:05 -0700 (PDT) Received: from Ishtar.sc.tlinx.org (ishtar.tlinx.org [173.164.175.65]) by cuda.sgi.com with ESMTP id r5cA2ftH5v02iFdL for ; Sat, 14 Aug 2010 13:57:05 -0700 (PDT) Received: from [192.168.3.12] (Athenae [192.168.3.12]) by Ishtar.sc.tlinx.org (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7EKm11k023216 for ; Sat, 14 Aug 2010 13:48:03 -0700 Message-ID: <4C670101.8050901@tlinx.org> Date: Sat, 14 Aug 2010 13:48:01 -0700 From: "Linda A. Walsh" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: xfs.fsck change that is unhelpful Subject: xfs.fsck change that is unhelpful X-Stationery: 0.4.10 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[173.164.175.65] X-Barracuda-Start-Time: 1281819428 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Some time ago, when I upgraded a system, I ran into problems when it hit a file system that was offline. It wasn't a critical partition, so it normally wouldn't have been an issue, but somewhere along the line someone mangled fsck.xfs. Instead of doing the useful thing with an xfs file system and being a link to ->/bin/true, someone thought it would be neat to return failure if it couldn't find the file system that it was supposed to check (mount-by-name, name not yet present, => system refuse to boot). I asked suse why they put this check in and they said it had been done upstream. This was a bit back, but it keeps biting me with new revisions until I replace it with a link to /bin/true. Note: if it actually did a check that was supposed to be done prior to mounting each file system, like ext2 or such, I wouldn't be doing such and probably wouldn't be using the file system if there was an alternative. I'd rather have the system come up to the best of its ability rather than failing for no good reason. So, I'm here - asking, if this was done here, why? It serves a _less_ _than__useful_ _purpose_ --in that it hinders what is usually a perfectly functional system from coming up where after _REMOTELY_ logging in, the problem could be noted, debugged, and perhaps even fixed remotely. In the case of a /dev/Space/Test, file system, it might not be necessary to do anything immediately. I see absolutely no useful purpose served by this. If it's a key file system (which in my case, it never has been -- it's the "peripheral file systems" that have occasionally been absent upon boot, the core file systems being located in the machine). In my systems design, I'm in the camp that subscribe to having redundancy present to automatically work around problems and continue working as best as possible in the presence of any problem. I'm not in the camp of designing a 'human', who has a cut finger to immediately go unconscious due to a 'fault' in their skin integrity. Ideally you want the brain to come up so it can assess and deal with damage -- at least from my point of view. So I don't understand this 'change'. Would it be unreasonable to request that this behavior be reverted? In my case, at least, it seems only to cause more harm than good. And while I can imagine scenarios in which you don't want the computer to come up at all, I think they would be in the minority compared to those systems where the admin would prefer the system come up so it can be reached 'normally' ("normal" interactive login). If not can you describe how the new functionality results in greater system reliability/availability than before, "cuz", I just don't see it. thanks, Linda Walsh From marco@nethype.de Sat Aug 14 17:53:34 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7EMrXDC164347 for ; Sat, 14 Aug 2010 17:53:34 -0500 X-ASG-Debug-ID: 1281826978-5bce01fe0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CABCCCAF319 for ; Sat, 14 Aug 2010 16:02:58 -0700 (PDT) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id Luz9a9rgac6ar9XN for ; Sat, 14 Aug 2010 16:02:58 -0700 (PDT) Received: from [10.9.0.44] by mail.nethype.de with esmtp (Exim 4.69) (envelope-from ) id 1OkPbv-00069A-Fn; Sat, 14 Aug 2010 22:53:55 +0000 Message-ID: <4C671E83.4060106@nethype.de> Date: Sun, 15 Aug 2010 00:53:55 +0200 From: Marco Maisenhelder Organization: nethype GmbH User-Agent: Mozilla-Thunderbird 2.0.0.24 (X11/20100328) MIME-Version: 1.0 To: Chris Wedgwood CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: fs corruption not detected by xfs_check or _repair Subject: Re: fs corruption not detected by xfs_check or _repair References: <4C656149.6050604@nethype.de> <20100814183537.GA13734@puku.stupidest.org> In-Reply-To: <20100814183537.GA13734@puku.stupidest.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1281826979 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37983 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Chris Wedgwood wrote: > On Fri, Aug 13, 2010 at 05:14:17PM +0200, Marco Maisenhelder wrote: > >> *marco:/etc# ls -lrt /store/xfs_corruption/x/ >> ls: cannot access /store/xfs_corruption/x/db.backup2: Invalid argument >> ls: cannot access /store/xfs_corruption/x/db.backup1: Invalid argument >> total 0 >> ?????????? ? ? ? ? ? db.backup2 >> ?????????? ? ? ? ? ? db.backup1 > > where these created with inode64 and now mounted w/o that option? (in > which case inodes > 32-bit are inaccessible) I wasn't even aware of the option - I guess I should have spent more time reading the FAQ before trying to find a more complex problem :( inode64 was my problem - mouting the partition with -o inode64 fixes all weirdness. Thanks a lot and sorry to have bothered you with this! Marco From SRS0+eHox+76+fromorbit.com=david@internode.on.net Sat Aug 14 19:52:19 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_34, J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7F0qI3s167569 for ; Sat, 14 Aug 2010 19:52:19 -0500 X-ASG-Debug-ID: 1281833563-738100c60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 886DE4BD283 for ; Sat, 14 Aug 2010 17:52:44 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id DEHqdYdqVPnEQsPF for ; Sat, 14 Aug 2010 17:52:44 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35533499-1927428 for multiple; Sun, 15 Aug 2010 10:22:42 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OkRSq-0000CB-Te; Sun, 15 Aug 2010 10:52:40 +1000 Date: Sun, 15 Aug 2010 10:52:40 +1000 From: Dave Chinner To: "Linda A. Walsh" Cc: xfs-oss X-ASG-Orig-Subj: Re: xfs.fsck change that is unhelpful Subject: Re: xfs.fsck change that is unhelpful Message-ID: <20100815005240.GH10429@dastard> References: <4C670101.8050901@tlinx.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C670101.8050901@tlinx.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1281833565 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37986 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Aug 14, 2010 at 01:48:01PM -0700, Linda A. Walsh wrote: > > Some time ago, when I upgraded a system, I ran into problems when > it hit a file system that was offline. It wasn't a critical > partition, so it normally wouldn't have been an issue, but somewhere > along the line > someone mangled fsck.xfs. fsck.xfs is behaving identically to e2fsck when presented with an invalid block device - it exits with an error of 8, which is defined as "operational error" in the e2fsck man page. > Instead of doing the useful thing with an xfs file system and being a > link to ->/bin/true, someone thought it would be neat to return failure if > it couldn't find the file system that it was supposed to check If the device is not present when the bootup sequence is attempting to access it, then you've got a configuration error somewhere. It should return an error. > (mount-by-name, name not yet present, => system refuse to boot). That sounds like a problem with the distro init scripts or you've stuffed up your /etc/fstab config (i.e. fs_passno is wrong). Indeed, setting fs_passno = 0 will cause the filesysetm fsck to be skipped completely on boot, regardless of the fs type... Cheers, Dave. -- Dave Chinner david@fromorbit.com From xfs@tlinx.org Sat Aug 14 21:03:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_34, J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7F23KUw169347 for ; Sat, 14 Aug 2010 21:03:21 -0500 X-ASG-Debug-ID: 1281837826-737f03000000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from Ishtar.sc.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55EC24ADB42 for ; Sat, 14 Aug 2010 19:03:46 -0700 (PDT) Received: from Ishtar.sc.tlinx.org (ishtar.tlinx.org [173.164.175.65]) by cuda.sgi.com with ESMTP id pNJDvsbUXY83kxtV for ; Sat, 14 Aug 2010 19:03:46 -0700 (PDT) Received: from [192.168.3.12] (Athenae [192.168.3.12]) by Ishtar.sc.tlinx.org (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7F23KuG000792; Sat, 14 Aug 2010 19:03:22 -0700 Message-ID: <4C674AE8.7030107@tlinx.org> Date: Sat, 14 Aug 2010 19:03:20 -0700 From: Linda Walsh User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 MIME-Version: 1.0 To: Dave Chinner CC: xfs-oss X-ASG-Orig-Subj: Re: xfs.fsck change that is unhelpful Subject: Re: xfs.fsck change that is unhelpful References: <4C670101.8050901@tlinx.org> <20100815005240.GH10429@dastard> In-Reply-To: <20100815005240.GH10429@dastard> X-Stationery: 0.4.10 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[173.164.175.65] X-Barracuda-Start-Time: 1281837828 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.37988 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > On Sat, Aug 14, 2010 at 01:48:01PM -0700, Linda A. Walsh wrote: >> Some time ago, when I upgraded a system, I ran into problems when >> it hit a file system that was offline. It wasn't a critical >> partition, so it normally wouldn't have been an issue, but somewhere >> along the line >> someone mangled fsck.xfs. > > fsck.xfs is behaving identically to e2fsck when presented with an > invalid block device - it exits with an error of 8, which is defined > as "operational error" in the e2fsck man page. --- That may be fine for the ext2 fs, but I am asserting that in actual practice, with xfs, it does more harm than good. > That sounds like a problem with the distro init scripts or you've > stuffed up your /etc/fstab config (i.e. fs_passno is wrong). Indeed, > setting fs_passno = 0 will cause the filesysetm fsck to be skipped > completely on boot, regardless of the fs type... --- Yes, you are right. They are setup to be check in the order I would want them mounted. But I don't see the benefit to being compliant with a checking mechanism for a file system that is actually needs fsck. It was long a *feature* of xfs, that xfs.fsck, was a noop. I don't see that making it fail in ways fsck does for a file system that *needs* fsck, is productive. Sure, it may be dotting i's and crossing t's, but in reality, is that a standard xfs should be living down to? From BATV+d6bc4401040d3772203c+2548+infradead.org+hch@bombadil.srs.infradead.org Sun Aug 15 04:22:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7F9M2uT183623 for ; Sun, 15 Aug 2010 04:22:05 -0500 X-ASG-Debug-ID: 1281864149-5f3902cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0CDA91D73227 for ; Sun, 15 Aug 2010 02:22:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id fBzfNmEAB5Ut5fav for ; Sun, 15 Aug 2010 02:22:29 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OkZQ7-0000bI-0H; Sun, 15 Aug 2010 09:22:23 +0000 Date: Sun, 15 Aug 2010 05:22:22 -0400 From: Christoph Hellwig To: Marco Maisenhelder Cc: Chris Wedgwood , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: fs corruption not detected by xfs_check or _repair Subject: Re: fs corruption not detected by xfs_check or _repair Message-ID: <20100815092222.GA1801@infradead.org> References: <4C656149.6050604@nethype.de> <20100814183537.GA13734@puku.stupidest.org> <4C671E83.4060106@nethype.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C671E83.4060106@nethype.de> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1281864150 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Aug 15, 2010 at 12:53:55AM +0200, Marco Maisenhelder wrote: > Chris Wedgwood wrote: > >On Fri, Aug 13, 2010 at 05:14:17PM +0200, Marco Maisenhelder wrote: > > > >>*marco:/etc# ls -lrt /store/xfs_corruption/x/ > >>ls: cannot access /store/xfs_corruption/x/db.backup2: Invalid argument > >>ls: cannot access /store/xfs_corruption/x/db.backup1: Invalid argument > >>total 0 > >>?????????? ? ? ? ? ? db.backup2 > >>?????????? ? ? ? ? ? db.backup1 > > > >where these created with inode64 and now mounted w/o that option? (in > >which case inodes > 32-bit are inaccessible) > > I wasn't even aware of the option - I guess I should have spent more > time reading the FAQ before trying to find a more complex problem :( > > inode64 was my problem - mouting the partition with -o inode64 fixes > all weirdness. FYI: starting from kernel 2.6.35 you can access all the inodes even without -o inode64 and won't get these strange errors. From jasondeugalde@hotmail.com Sun Aug 15 12:14:54 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7FHErT6196058 for ; Sun, 15 Aug 2010 12:14:54 -0500 X-ASG-Debug-ID: 1281892520-1c9900090000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from snt0-omc3-s3.snt0.hotmail.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7289C170DAAE for ; Sun, 15 Aug 2010 10:15:20 -0700 (PDT) Received: from snt0-omc3-s3.snt0.hotmail.com (snt0-omc3-s3.snt0.hotmail.com [65.55.90.142]) by cuda.sgi.com with ESMTP id WAX197v40nEYjZZo for ; Sun, 15 Aug 2010 10:15:20 -0700 (PDT) Received: from SNT104-W5 ([65.55.90.136]) by snt0-omc3-s3.snt0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Sun, 15 Aug 2010 10:15:20 -0700 Message-ID: Content-Type: multipart/alternative; boundary="_837d6354-4709-483b-b11b-ca0d806dcad1_" X-Originating-IP: [88.108.220.22] From: Jason de Ugalde To: , X-ASG-Orig-Subj: Possible bug in getfattr program Subject: Possible bug in getfattr program Date: Sun, 15 Aug 2010 17:15:20 +0000 Importance: Normal In-Reply-To: References: MIME-Version: 1.0 X-OriginalArrivalTime: 15 Aug 2010 17:15:20.0333 (UTC) FILETIME=[706413D0:01CB3C9D] X-Barracuda-Connect: snt0-omc3-s3.snt0.hotmail.com[65.55.90.142] X-Barracuda-Start-Time: 1281892521 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0164 1.0000 -1.9141 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38048 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --_837d6354-4709-483b-b11b-ca0d806dcad1_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi=2C I'm not sure whether this is a deliberate feature or a bug=2C but for some = reason the getfattr command won't give me a list of a file's system extende= d attributes when I use the -d option. For example=2C all of my files have a system.ntfs_times extended attribute.= But when I type the following: getfattr -d -m "^system\." * or=20 getfattr -d -m "^system\\." * I get no output (incidentally can you tell me why a double backslash is req= uired?) However=2C if I type: getfattr -d -n system.ntfs_times * I do get a list of attributes. Can you tell me if I'm doing something wrong=2C or whether this is a bug? Thanks=2C Jason de Ugalde = --_837d6354-4709-483b-b11b-ca0d806dcad1_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi=2C

I'm not sure whether this is a deliberate feature or a bug=2C = but for some reason the getfattr command won't give me a list of a file's s= ystem extended attributes when I use the -d option.

For example=2C a= ll of my files have a system.ntfs_times extended attribute. But when I type= the following:

getfattr -d -m "^system\." *

or

getfa= ttr -d -m "^system\\." *

I get no output (incidentally can you tell = me why a double backslash is required?)

However=2C if I type:
getfattr -d -n system.ntfs_times *

I do get a list of attributes.
Can you tell me if I'm doing something wrong=2C or whether this is a = bug?

Thanks=2C

Jason de Ugalde

= --_837d6354-4709-483b-b11b-ca0d806dcad1_-- From michael.monnerie@is.it-management.at Sun Aug 15 13:52:37 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7FIqaRN198648 for ; Sun, 15 Aug 2010 13:52:37 -0500 X-ASG-Debug-ID: 1281898926-151301f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0285CC90C6E for ; Sun, 15 Aug 2010 12:02:06 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 1XWsCBHb0jJ6w3jZ for ; Sun, 15 Aug 2010 12:02:06 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id BCA9F17B for ; Sun, 15 Aug 2010 20:53:00 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 69DF3401C2E for ; Sun, 15 Aug 2010 20:53:00 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Message to Stan - again Subject: Re: Message to Stan - again Date: Sun, 15 Aug 2010 20:52:59 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: <201008131300.40536@zmi.at> In-Reply-To: <201008131300.40536@zmi.at> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1373631.BEkx3UiOKl"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008152052.59870@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1281898927 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0998 1.0000 -1.3938 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.39 X-Barracuda-Spam-Status: No, SCORE=-1.39 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38055 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1373631.BEkx3UiOKl Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sorry to bother all again, I just wanted to inform Stan that his filter=20 still has a problem: : host greer.hardwarefreak.com[65.41.216.221]=20 said: 554 5.7.1 : Client host rejected:=20 Access denied (in reply to RCPT TO command) Your .at filter seems removed, but another one still hits (me). =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1373631.BEkx3UiOKl Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxoN4sACgkQzhSR9xwSCbSe6ACgvl4/xYGWvT0I4bjyGQMUYPW3 EqIAoJYzZCbZLgF+fhUF+MlqIE4CWlhh =sVv6 -----END PGP SIGNATURE----- --nextPart1373631.BEkx3UiOKl-- From hpj@urpla.net Sun Aug 15 13:54:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_34, J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7FIsDNB198715 for ; Sun, 15 Aug 2010 13:54:13 -0500 X-ASG-Debug-ID: 1281899024-151302090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from moutng.kundenserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0792BCB2444 for ; Sun, 15 Aug 2010 12:03:44 -0700 (PDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.8]) by cuda.sgi.com with ESMTP id UzYQFtulA4CsWB3c for ; Sun, 15 Aug 2010 12:03:44 -0700 (PDT) Received: from lisa (p5DC2A16B.dip0.t-ipconnect.de [93.194.161.107]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0LpzzH-1PQLhT0xi3-00fi2v; Sun, 15 Aug 2010 20:54:36 +0200 Received: from localhost (localhost [127.0.0.1]) by tyrex.lisa.loc (Postfix) with ESMTP id 23CA18A027F1; Sun, 15 Aug 2010 20:54:36 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at lisa.loc From: "Hans-Peter Jansen" To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs.fsck change that is unhelpful Subject: Re: xfs.fsck change that is unhelpful Date: Sun, 15 Aug 2010 20:54:27 +0200 User-Agent: KMail/1.9.10 References: <4C670101.8050901@tlinx.org> <20100815005240.GH10429@dastard> <4C674AE8.7030107@tlinx.org> In-Reply-To: <4C674AE8.7030107@tlinx.org> Cc: Linda Walsh , Dave Chinner MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201008152054.27909.hpj@urpla.net> X-Provags-ID: V02:K0:F2Wx/PJrdn6K11RE5+kWz9otjUnPq2qgd2XloRxYcJb PvcYze0eFC3Os3F08wZZLqJR4uiCnTlsgQol7EPlUiz47r9jA2 ewvI7w+Kr/W1XO4UkeG9zhmXbMH4oKEl3G7B9GWwR3m0GPTyWh EycYxJtPc1oF+KgqHdRVWQTe9rUDfnJ7CBcsUa8mQ8koMMxoWV WBWH6WKKTGlMig6qEUzlpWIJe9dG1ciXpyW9nXR+CE= X-Barracuda-Connect: moutng.kundenserver.de[212.227.17.8] X-Barracuda-Start-Time: 1281899025 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38055 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean On Sunday 15 August 2010, 04:03:20 Linda Walsh wrote: > Dave Chinner wrote: > > On Sat, Aug 14, 2010 at 01:48:01PM -0700, Linda A. Walsh wrote: > >> Some time ago, when I upgraded a system, I ran into problems when > >> it hit a file system that was offline. It wasn't a critical > >> partition, so it normally wouldn't have been an issue, but somewhere > >> along the line > >> someone mangled fsck.xfs. > > > > fsck.xfs is behaving identically to e2fsck when presented with an > > invalid block device - it exits with an error of 8, which is defined > > as "operational error" in the e2fsck man page. > > --- > That may be fine for the ext2 fs, but I am asserting that in actual > practice, with xfs, it does more harm than good. Linda, you're barking at the wrong tree, IMHO. If xfs would tolerate any configuration failure, a lot of people would complain for a _good_ reason. > > That sounds like a problem with the distro init scripts or you've > > stuffed up your /etc/fstab config (i.e. fs_passno is wrong). Indeed, > > setting fs_passno = 0 will cause the filesysetm fsck to be skipped > > completely on boot, regardless of the fs type... > > --- > Yes, you are right. They are setup to be check in the order > I would want them mounted. But I don't see the benefit to being > compliant with a checking mechanism for a file system that is > actually needs fsck. > > It was long a *feature* of xfs, that xfs.fsck, was a noop. > > I don't see that making it fail in ways fsck does for a file > system that *needs* fsck, is productive. Sure, it may be dotting i's > and crossing t's, but in reality, is that a standard xfs should be > living down to? Of course, most of the attending audience is being bitten by such a configuration failure, but to argue, that it is wrong behavior, if the init code decides to stop booting, because some devices configured to mount on boot failed to mount, is, hmm, incongruous.. By (current) definition, the init system has absolutely no business to _weight_ the _severity_ of such a basic failure. Nowadays, there are enough ways to delay the mount (noauto, autofs) for certain FS in order to avoid such a failure - if that is what you want - but generally ignoring any fsck failures, be them on journaling FS or not is not acceptable. And making xfs special in the regard is even more incongruous. Pete From ms@citd.de Sun Aug 15 17:43:25 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_34, J_CHICKENPOX_43,J_CHICKENPOX_82 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7FMhOmt205551 for ; Sun, 15 Aug 2010 17:43:25 -0500 X-ASG-Debug-ID: 1281912232-045201860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from enyo.dsw2k3.info (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2F3E8170DF55 for ; Sun, 15 Aug 2010 15:43:52 -0700 (PDT) Received: from enyo.dsw2k3.info (enyo.dsw2k3.info [195.71.86.239]) by cuda.sgi.com with ESMTP id n6RMuQLV75otcYry for ; Sun, 15 Aug 2010 15:43:52 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by enyo.dsw2k3.info (Postfix) with ESMTP id 8E11BA683AB; Mon, 16 Aug 2010 00:43:50 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at enyo.dsw2k3.info Received: from enyo.dsw2k3.info ([127.0.0.1]) by localhost (enyo.dsw2k3.info [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 3EeQSwkyLiTq; Mon, 16 Aug 2010 00:43:44 +0200 (CEST) Received: from citd.de (p4FC4D6EA.dip.t-dialin.net [79.196.214.234]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by enyo.dsw2k3.info (Postfix) with ESMTPSA id 067E498C805; Mon, 16 Aug 2010 00:43:43 +0200 (CEST) Date: Mon, 16 Aug 2010 00:43:41 +0200 From: Matthias Schniedermeyer To: Linda Walsh Cc: Dave Chinner , xfs-oss X-ASG-Orig-Subj: Re: xfs.fsck change that is unhelpful Subject: Re: xfs.fsck change that is unhelpful Message-ID: <20100815224341.GA9438@citd.de> References: <4C670101.8050901@tlinx.org> <20100815005240.GH10429@dastard> <4C674AE8.7030107@tlinx.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C674AE8.7030107@tlinx.org> User-Agent: Mutt/1.5.19 (2009-01-05) X-Barracuda-Connect: enyo.dsw2k3.info[195.71.86.239] X-Barracuda-Start-Time: 1281912233 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-ASG-Whitelist: HEADER (^X-Barracuda-Connect: [^ ]+\.dsw2k3\.info\[) X-Virus-Status: Clean On 14.08.2010 19:03, Linda Walsh wrote: > > > Dave Chinner wrote: >> On Sat, Aug 14, 2010 at 01:48:01PM -0700, Linda A. Walsh wrote: >>> Some time ago, when I upgraded a system, I ran into problems when >>> it hit a file system that was offline. It wasn't a critical >>> partition, so it normally wouldn't have been an issue, but somewhere >>> along the line >>> someone mangled fsck.xfs. >> >> fsck.xfs is behaving identically to e2fsck when presented with an >> invalid block device - it exits with an error of 8, which is defined >> as "operational error" in the e2fsck man page. > --- > That may be fine for the ext2 fs, but I am asserting that in actual > practice, with xfs, it does more harm than good. I would suggest using autofs, so that you can keep fstab to an absolut minimum. Except for devices related to booting, i personally mount everything either with autofs or manually(In that case it's normaly a one-shot thing). In my case that are all "non boot related" devices, DVD-drive, network filesystems, some "tmpfs"es for playing, removable-devices, etc. Bis denn -- Real Programmers consider "what you see is what you get" to be just as bad a concept in Text Editors as it is in women. No, the Real Programmer wants a "you asked for it, you got it" text editor -- complicated, cryptic, powerful, unforgiving, dangerous. From slpratt@austin.ibm.com Sun Aug 15 19:29:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G0TtCj208381 for ; Sun, 15 Aug 2010 19:29:55 -0500 X-ASG-Debug-ID: 1281918622-4e3801e30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e32.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 34CA0170E91C for ; Sun, 15 Aug 2010 17:30:22 -0700 (PDT) Received: from e32.co.us.ibm.com (e32.co.us.ibm.com [32.97.110.150]) by cuda.sgi.com with ESMTP id 49PvjgMZqyEMEekO for ; Sun, 15 Aug 2010 17:30:22 -0700 (PDT) Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e32.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o7G0M6cT019547 for ; Sun, 15 Aug 2010 18:22:06 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o7G0UFAW206828 for ; Sun, 15 Aug 2010 18:30:16 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o7G0UDhZ014023 for ; Sun, 15 Aug 2010 18:30:15 -0600 Received: from [9.65.38.58] (sig-9-65-38-58.mts.ibm.com [9.65.38.58]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o7G0UAek013824; Sun, 15 Aug 2010 18:30:11 -0600 Message-ID: <4C688691.2020100@austin.ibm.com> Date: Sun, 15 Aug 2010 19:30:09 -0500 From: Steven Pratt User-Agent: Thunderbird 2.0.0.24 (X11/20100411) MIME-Version: 1.0 To: Martin Steigerwald CC: xfs@oss.sgi.com, Christoph Hellwig , Michael Monnerie , Stan Hoeppner , Dave Chinner , Eric Sandeen , Keith Mannthey X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <20100813141344.GE10429@dastard> <4C65AE4D.6070502@sandeen.net> (sfid-20100814_092305_493513_AC7C6900) <201008141328.18436.Martin@lichtvoll.de> In-Reply-To: <201008141328.18436.Martin@lichtvoll.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e32.co.us.ibm.com[32.97.110.150] X-Barracuda-Start-Time: 1281918623 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.02 X-Barracuda-Spam-Status: No, SCORE=-1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_TG232 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38078 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.00 BSF_SC0_TG232 BODY: Custom Rule TG232 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Martin Steigerwald wrote: > Hi! > > Cc'd Steve as I think he is running the benchmarks. > > Am Freitag 13 August 2010 schrieb Eric Sandeen: > >> Dave Chinner wrote: >> >>> On Fri, Aug 13, 2010 at 08:29:07AM -0400, Christoph Hellwig wrote: >>> >> ... >> >> >>>> And asking >>>> him/her to add -o delaylog would also be good. >>>> >>> Yes, that would be an interesting comparison... >>> >> I was thinking the same thing; I'll do that. >> > > I think its Steven Pratt from IBM. > > Steve, could you add a case for mount option "-o delaylog" to your > benchmark runs? > Which filesystem is this for? Keith has been helping me with some of these runs. We'll see if we can add this. Steve > ---------- Weitergeleitete Nachricht ---------- > > Subject: New performance results > Date: Samstag 24 April 2010 > From: Steven Pratt > To: "linux-btrfs" > > Well, it's been a while but been very busy on other things. Thanks to > Keith Mannthey for helping get some of these runs done. > > New raid performance on 2.6.34-rc3: > > http://btrfs.boxacle.net/repository/raid/2010-04-14_2004/2.6.34- > rc3/2.6.34-rc3.html > > Also, the long running history graphs are here: > > http://btrfs.boxacle.net/repository/raid/history/History.html > > > Steve > > > -- > [...] > ------------------------------------------------------- > > Ciao, > From SRS0+poNH+77+fromorbit.com=david@internode.on.net Sun Aug 15 20:03:41 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G13fFJ209340 for ; Sun, 15 Aug 2010 20:03:41 -0500 X-ASG-Debug-ID: 1281920648-3c3402020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A3D744BE6AB for ; Sun, 15 Aug 2010 18:04:08 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id ipZuuZWTIECwpgx8 for ; Sun, 15 Aug 2010 18:04:08 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35172767-1927428 for multiple; Mon, 16 Aug 2010 10:33:13 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Oko6P-0001Oy-OM; Mon, 16 Aug 2010 11:03:01 +1000 Date: Mon, 16 Aug 2010 11:03:01 +1000 From: Dave Chinner To: Steven Pratt Cc: Martin Steigerwald , xfs@oss.sgi.com, Christoph Hellwig , Michael Monnerie , Stan Hoeppner , Eric Sandeen , Keith Mannthey X-ASG-Orig-Subj: Re: observed significant performance improvement using "delaylog" in Subject: Re: observed significant performance improvement using "delaylog" in Message-ID: <20100816010301.GI10429@dastard> References: <201008121346.30760.eye.of.the.8eholder@gmail.com> <20100813141344.GE10429@dastard> <4C65AE4D.6070502@sandeen.net> <201008141328.18436.Martin@lichtvoll.de> <4C688691.2020100@austin.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C688691.2020100@austin.ibm.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1281920649 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38080 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Aug 15, 2010 at 07:30:09PM -0500, Steven Pratt wrote: > Martin Steigerwald wrote: > >Hi! > > > >Cc'd Steve as I think he is running the benchmarks. > > > >Am Freitag 13 August 2010 schrieb Eric Sandeen: > >>Dave Chinner wrote: > >>>On Fri, Aug 13, 2010 at 08:29:07AM -0400, Christoph Hellwig wrote: > >>... > >> > >>>>And asking > >>>>him/her to add -o delaylog would also be good. > >>>Yes, that would be an interesting comparison... > >>I was thinking the same thing; I'll do that. > > > >I think its Steven Pratt from IBM. > > > >Steve, could you add a case for mount option "-o delaylog" to your > >benchmark runs? > Which filesystem is this for? Keith has been helping me with some > of these runs. We'll see if we can add this. XFS - it's a new mount option for 2.6.35. Gory details in Documentation/filesystems/xfs-delayed-logging-design.txt. Cheers, Dave. -- Dave Chinner david@fromorbit.com From nathans@aconex.com Sun Aug 15 20:25:52 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G1PqJq209966 for ; Sun, 15 Aug 2010 20:25:52 -0500 X-ASG-Debug-ID: 1281922511-352200390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2EA53CB2D65 for ; Sun, 15 Aug 2010 18:35:11 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id OJa3xV9vkfgxhaHa for ; Sun, 15 Aug 2010 18:35:11 -0700 (PDT) Received: from postoffice.aconex.com (localhost [127.0.0.1]) by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 7097F909FB1; Mon, 16 Aug 2010 11:26:04 +1000 (EST) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id igknD2CIklmRFo2o; Mon, 16 Aug 2010 11:26:04 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10]) by postoffice.aconex.com (Postfix) with ESMTP id 4ACE3A50263; Mon, 16 Aug 2010 11:26:04 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 42FFEBC0045; Mon, 16 Aug 2010 11:26:04 +1000 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gTMkPWDbOrEK; Mon, 16 Aug 2010 11:25:59 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by gatekeeper.aconex.com (Postfix) with ESMTP id 86376BC0046; Mon, 16 Aug 2010 11:25:59 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by mail-au.aconex.com (Postfix) with ESMTP id 7E84664B86B0; Mon, 16 Aug 2010 11:25:59 +1000 (EST) Date: Mon, 16 Aug 2010 11:25:59 +1000 (EST) From: Nathan Scott To: Christoph Hellwig Cc: xfs@oss.sgi.com, nathans@debian.org, anibal@debian.org Message-ID: <1697333467.18161281921959476.JavaMail.root@mail-au.aconex.com> In-Reply-To: <20100814111513.GA8214@infradead.org> X-ASG-Orig-Subj: Re: xfsprogs Debian mantainaince Subject: Re: xfsprogs Debian mantainaince MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 5.0.18_GA_3011.RHEL5_64 (ZimbraWebClient - SAF3 (Mac)/5.0.18_GA_3011.RHEL5_64) X-Barracuda-Connect: mail.aconex.com[203.89.202.182] X-Barracuda-Start-Time: 1281922513 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38083 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean ----- "Christoph Hellwig" wrote: > Hi Nathan, hi Anibal, > > if seen the constant flipping between native and non-native uploads > for the xfsprogs Debian packages between the two of you and it's > slightly annoying. I know Nathan likes maintaining the Debian > packages > in git, which also makes life for us XFS developers trying to build > debian packages a lot easier. > > What about a compromise? We'll add a debian- branches to the > xfsprogs-dev repository where we can track the exact packages > uploaded > to Debian, including the -2/-3 etc packages revisions that only get > uploaded to Debian, IMO, the -2 and -3 revisions are unnecessary and there's really no need for a separate branch ... if Anibal had a kernel.org account and merged changes in before uploading, there'd be no issue, I think - Anibal? It would make life simpler, for sure. > And one last request, any chance to get xfsprogs for -testing rebuilt > against libblkid now that util-linux-2.17 has finally made it into > testing? Beeing able to use blkid for alignment detection will be > very important so that XFS on Debian can deal with 4k sector disks > and hardware RAID arrays out of the box. Sure, I'll take a look at that for next upload. cheers. -- Nathan From SRS0+8qpr+77+fromorbit.com=david@internode.on.net Sun Aug 15 20:54:42 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_34, J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G1sg8f210832 for ; Sun, 15 Aug 2010 20:54:42 -0500 X-ASG-Debug-ID: 1281924254-42be00b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED8B5CB3050 for ; Sun, 15 Aug 2010 19:04:14 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id pdSGFD9CoALUBbpQ for ; Sun, 15 Aug 2010 19:04:14 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 23743026-1927428 for multiple; Mon, 16 Aug 2010 11:25:07 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Okoun-0001Rg-Sl; Mon, 16 Aug 2010 11:55:05 +1000 Date: Mon, 16 Aug 2010 11:55:05 +1000 From: Dave Chinner To: Linda Walsh Cc: xfs-oss X-ASG-Orig-Subj: Re: xfs.fsck change that is unhelpful Subject: Re: xfs.fsck change that is unhelpful Message-ID: <20100816015505.GJ10429@dastard> References: <4C670101.8050901@tlinx.org> <20100815005240.GH10429@dastard> <4C674AE8.7030107@tlinx.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C674AE8.7030107@tlinx.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1281924255 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38083 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Aug 14, 2010 at 07:03:20PM -0700, Linda Walsh wrote: > > > Dave Chinner wrote: > >On Sat, Aug 14, 2010 at 01:48:01PM -0700, Linda A. Walsh wrote: > >>Some time ago, when I upgraded a system, I ran into problems when > >>it hit a file system that was offline. It wasn't a critical > >>partition, so it normally wouldn't have been an issue, but somewhere > >>along the line > >>someone mangled fsck.xfs. > > > >fsck.xfs is behaving identically to e2fsck when presented with an > >invalid block device - it exits with an error of 8, which is defined > >as "operational error" in the e2fsck man page. > --- > That may be fine for the ext2 fs, but I am asserting that in actual > practice, with xfs, it does more harm than good. For whom? > >That sounds like a problem with the distro init scripts or you've > >stuffed up your /etc/fstab config (i.e. fs_passno is wrong). Indeed, > >setting fs_passno = 0 will cause the filesysetm fsck to be skipped > >completely on boot, regardless of the fs type... > --- > Yes, you are right. They are setup to be check in the order > I would want them mounted. But I don't see the benefit to being > compliant with a checking mechanism for a file system that is > actually needs fsck. > > It was long a *feature* of xfs, that xfs.fsck, was a noop. It wasn't a feature - it was simply to ensure that initscripts worked. There was simply no reason for it to do anything else until someone discovered that their booot problems were caused by non-standard behaviour. i.e. fsck wasn't catching non-existent devices and telling the init scripts... Fundamentally, a filesystem should integrate with common infrastructure as best as possible, and if that means behaving like other fsck programs for missing block devices, then IMO we absolutely should be doing that. > I don't see that making it fail in ways fsck does for a file > system that *needs* fsck, is productive. Sure, it may be dotting i's > and crossing t's, but in reality, is that a standard xfs should be > living down to? Being different for the sake of being different is misguided at best. There's a time and place for differentiation between filesystems, but interactions with init scripts is definitely not that place. Cheers, Dave. -- Dave Chinner david@fromorbit.com From xfs@tlinx.org Sun Aug 15 21:26:16 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_34 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G2QGXq212279 for ; Sun, 15 Aug 2010 21:26:16 -0500 X-ASG-Debug-ID: 1281925601-220a022a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from Ishtar.sc.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 30F2E170EF06 for ; Sun, 15 Aug 2010 19:26:41 -0700 (PDT) Received: from Ishtar.sc.tlinx.org (ishtar.tlinx.org [173.164.175.65]) by cuda.sgi.com with ESMTP id iCCfhV4Zod8GEECH for ; Sun, 15 Aug 2010 19:26:41 -0700 (PDT) Received: from [192.168.3.12] (Athenae [192.168.3.12]) by Ishtar.sc.tlinx.org (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G2QKp2013931; Sun, 15 Aug 2010 19:26:22 -0700 Message-ID: <4C68A1CC.4050206@tlinx.org> Date: Sun, 15 Aug 2010 19:26:20 -0700 From: Linda Walsh User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 MIME-Version: 1.0 To: Dave Chinner CC: xfs-oss X-ASG-Orig-Subj: Re: xfs.fsck change that is unhelpful Subject: Re: xfs.fsck change that is unhelpful References: <4C670101.8050901@tlinx.org> <20100815005240.GH10429@dastard> <4C674AE8.7030107@tlinx.org> <20100816015505.GJ10429@dastard> In-Reply-To: <20100816015505.GJ10429@dastard> X-Stationery: 0.4.10 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[173.164.175.65] X-Barracuda-Start-Time: 1281925604 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38086 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > On Sat, Aug 14, 2010 at 07:03:20PM -0700, Linda Walsh wrote: >> It was long a *feature* of xfs, that xfs.fsck, was a noop. > > It wasn't a feature - it was simply to ensure that initscripts > worked. There was simply no reason for it to do anything else until > someone discovered that their booot problems were caused by > non-standard behaviour. i.e. fsck wasn't catching non-existent > devices and telling the init scripts... ---- Fine. If it's required to be break at the slightest provocation, then great. (*fume*) I'd love to see that logic applied to any system that's supposed to be reliable -- like the human body. Scrape a finger. Sorry -- can't gain consciousness. Must forever remain dormant until someone fixes my scraped finger. I found the computer coming up to a point where I could remotely log into it and fix the problem to be useful far more often than I've found it to be when it demands I sit at the console using a limited tool set to repair some damage left over after some upgrade or installation. It's a pathological condition in either case. My preference is to have it "do it's best", and not give up like a petulant child if all the t's are not crossed and all the i's are not dotted just so. That's why computers break so easily. I feel it is better design to have them try to do what is intended -- even if limpingly. But it is required for 'init'(5) scripts -- which, apparently are on their way out and possibly won't be used to start the machine in the next SuSE release. Perhaps the 'fall over and die' mentality is part of that decision -- and FWIW, please don't take any of my words as directed against *people*, involved in implementing the maladaptive behavior. I realize there is a job that must be done. I just don't always agree with a 1970's - 1980's era computer design philosphy that says give up at the first error. It only bites me when I've done some measure upgrade or install and haven't patched fsck -> /bin/true yet -- which I only do for XFS, because for XFS, it's the best possible action to take. If the device isn't there. It won't be mounted. If it really is critical to the system booting up, then the system will be stopped later. But on the off chance that /usr, /etc, /tmp...etc, are ok, the system might come up into some state where it can be remotely diagnosed and fixed. I *LOVE* XFS, because I know it won't leave me hung out to dry during a boot due to a failed fsck. So if init scripts need such broken mentality, I just need to remember to 1) patch it, and 2) as others have pointed out -- make changes in the system state, so that a missing file system won't prevent bootup. That said -- how many people, who have their /home or /usr/people partition 'local' to their machine, automount it? I admit to thinking of the fsck field as having some meaning in the order in which file systems are mounted. I guess that order is random now, though how I'm supposed to tell mount that '/home needs to be mounted only after "/", but need to be mounted before /home/share, without some ordering in fstab is something that is supposed to be specified....where? I.e. isn't that field also the order in which file systems are mounted, or is there some other place that order is maintained other than in fstab? Sorry, am definitely showing my ignorance in this area. Linda From viiru@iki.fi Mon Aug 16 03:32:06 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_MIME_NO_TEXT, T_TVD_MIME_NO_HEADERS autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G8W5l9228362 for ; Mon, 16 Aug 2010 03:32:06 -0500 X-ASG-Debug-ID: 1281947552-64f702f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from emh07.mail.saunalahti.fi (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AED514BF1DC for ; Mon, 16 Aug 2010 01:32:32 -0700 (PDT) Received: from emh07.mail.saunalahti.fi (emh07.mail.saunalahti.fi [62.142.5.117]) by cuda.sgi.com with ESMTP id CZaDkFHO9r6V26QF for ; Mon, 16 Aug 2010 01:32:32 -0700 (PDT) Received: from saunalahti-vams (vs3-10.mail.saunalahti.fi [62.142.5.94]) by emh07-2.mail.saunalahti.fi (Postfix) with SMTP id A6B5818D480 for ; Mon, 16 Aug 2010 11:32:31 +0300 (EEST) Received: from emh02.mail.saunalahti.fi ([62.142.5.108]) by vs3-10.mail.saunalahti.fi ([62.142.5.94]) with SMTP (gateway) id A03F1CA29E2; Mon, 16 Aug 2010 11:32:31 +0300 Received: from ryoko (ryoko.zyrain.org [217.152.200.219]) by emh02.mail.saunalahti.fi (Postfix) with ESMTP id 95B292BD4B for ; Mon, 16 Aug 2010 11:32:30 +0300 (EEST) Received: by ryoko (Postfix, from userid 1000) id EFF96280DD8A1; Mon, 16 Aug 2010 11:32:29 +0300 (EEST) From: Arto Jantunen To: xfs@oss.sgi.com X-ASG-Orig-Subj: Kernel BUG when running xfs_fsr with 2.6.35.1 Subject: Kernel BUG when running xfs_fsr with 2.6.35.1 Date: Mon, 16 Aug 2010 11:32:29 +0300 Message-ID: <878w47yn36.fsf@viiru.iki.fi> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Antivirus: VAMS X-Barracuda-Connect: emh07.mail.saunalahti.fi[62.142.5.117] X-Barracuda-Start-Time: 1281947553 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, BSF_SC0_SA590 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38110 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_SA590 Custom Rule SA590 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --=-=-= Hi List, I had a kernel BUG yesterday when running xfs_fsr on my Debian Unstable laptop. The kernel is upstream 2.6.35.1. I'm attaching the backtrace below. I haven't tried reproducing the problem yet and don't know if it is reproducible. I can try that, and test patches etc. if it is useful. Let me know if there is any other information I can provide to help with debugging. Please CC me on any replies, I'm not subscribed to the list. -- Arto Jantunen --=-=-= Content-Disposition: inline; filename=backtrace Content-Description: Backtrace [18695.285232] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 [18695.285245] IP: [] xfs_trans_find_item+0x0/0x5 [xfs] [18695.285290] PGD 24285067 PUD 2f6f0067 PMD 0 [18695.285300] Oops: 0000 [#1] PREEMPT SMP [18695.285309] last sysfs file: /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input8/name [18695.285316] CPU 1 [18695.285319] Modules linked in: usbhid hid cryptd aes_x86_64 aes_generic ppdev lp sco acpi_cpufreq mperf cpufreq_userspace cpufreq_stats bnep cpufreq_powersave cpufreq_conservative rfcomm l2cap crc16 bluetooth uinput fuse loop snd_hda_codec_realtek arc4 ecb pcmcia snd_hda_intel i915 snd_hda_codec snd_hwdep drm_kms_helper iwl3945 drm iwlcore i2c_algo_bit tifm_7xx1 joydev tifm_core snd_pcm_oss snd_mixer_oss yenta_socket snd_pcm pcmcia_rsrc pcmcia_core snd_timer mac80211 snd i2c_i801 rng_core cfg80211 psmouse parport_pc parport i2c_core intel_agp tpm_tis tpm tpm_bios soundcore evdev serio_raw rfkill snd_page_alloc irda crc_ccitt container battery processor video output wmi ac button xfs exportfs sd_mod crc_t10dif ata_generic ata_piix libata firewire_ohci tg3 firewire_core uhci_hcd libphy crc_itu_t scsi_mod ehci_hcd thermal thermal_sys [last unloaded: scsi_wait_scan] [18695.285464] [18695.285470] Pid: 4050, comm: xfs_fsr Not tainted 2.6.35.1 #1 Ness2 /TravelMate 3040 [18695.285476] RIP: 0010:[] [] xfs_trans_find_item+0x0/0x5 [xfs] [18695.285512] RSP: 0018:ffff880035055c40 EFLAGS: 00010206 [18695.285517] RAX: 0000000000000000 RBX: ffff88003cda68d0 RCX: 0000000000000005 [18695.285522] RDX: 0000000000000005 RSI: 0000000000000000 RDI: ffff88003cda68d0 [18695.285528] RBP: ffff88000462f400 R08: ffff88003e6db300 R09: ffff880035055d18 [18695.285533] R10: 0000000000000000 R11: ffff88003d081800 R12: 0000000000000005 [18695.285539] R13: ffff88000462f438 R14: 0000000000000000 R15: 0000000000000000 [18695.285546] FS: 00007f232413d700(0000) GS:ffff880001900000(0000) knlGS:0000000000000000 [18695.285552] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [18695.285557] CR2: 0000000000000018 CR3: 000000000fc7d000 CR4: 00000000000006e0 [18695.285563] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [18695.285569] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [18695.285575] Process xfs_fsr (pid: 4050, threadinfo ffff880035054000, task ffff88002f562c10) [18695.285580] Stack: [18695.285583] ffffffffa017f421 ffff88000462f400 0000000000000000 0000000000000000 [18695.285591] <0> ffffffffa0152a4a ffff880035055d58 0000000000000000 ffff880000000000 [18695.285601] <0> 0000000000000000 ffff880035055cf8 ffff880035055d18 ffff880000000000 [18695.285612] Call Trace: [18695.285646] [] ? xfs_trans_log_inode+0x19/0x42 [xfs] [18695.285679] [] ? xfs_bunmapi+0xb2a/0xb9e [xfs] [18695.285693] [] ? get_parent_ip+0x9/0x1b [18695.285730] [] ? xfs_itruncate_finish+0x1b8/0x329 [xfs] [18695.285764] [] ? xfs_inactive+0x1e1/0x402 [xfs] [18695.285772] [] ? get_parent_ip+0x9/0x1b [18695.285785] [] ? clear_inode+0x58/0xaf [18695.285792] [] ? generic_delete_inode+0xa4/0x110 [18695.285801] [] ? d_kill+0x42/0x61 [18695.285808] [] ? dput+0x149/0x156 [18695.285815] [] ? fput+0x17b/0x1a4 [18695.285824] [] ? filp_close+0x5f/0x6a [18695.285831] [] ? sys_close+0xa2/0xdb [18695.285840] [] ? system_call_fastpath+0x16/0x1b [18695.285845] Code: 9d fe ff 85 c0 75 1b 48 85 ed 74 16 89 44 24 08 44 89 e2 48 8b 33 48 89 ef e8 67 ff ff ff 8b 44 24 08 5a 59 5b 5d 41 5c c3 90 90 <48> 8b 46 18 c3 44 8a 46 0b bf 01 00 00 00 41 0f b6 c0 45 0f b6 [18695.285930] RIP [] xfs_trans_find_item+0x0/0x5 [xfs] [18695.285963] RSP [18695.285966] CR2: 0000000000000018 [18695.285973] ---[ end trace 95a1de083b2b773e ]--- [18696.225289] ------------[ cut here ]------------ [18696.225300] kernel BUG at fs/xfs/xfs_iget.c:301! [18696.225306] invalid opcode: 0000 [#2] PREEMPT SMP [18696.225315] last sysfs file: /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input8/name [18696.225320] CPU 1 [18696.225323] Modules linked in: usbhid hid cryptd aes_x86_64 aes_generic ppdev lp sco acpi_cpufreq mperf cpufreq_userspace cpufreq_stats bnep cpufreq_powersave cpufreq_conservative rfcomm l2cap crc16 bluetooth uinput fuse loop snd_hda_codec_realtek arc4 ecb pcmcia snd_hda_intel i915 snd_hda_codec snd_hwdep drm_kms_helper iwl3945 drm iwlcore i2c_algo_bit tifm_7xx1 joydev tifm_core snd_pcm_oss snd_mixer_oss yenta_socket snd_pcm pcmcia_rsrc pcmcia_core snd_timer mac80211 snd i2c_i801 rng_core cfg80211 psmouse parport_pc parport i2c_core intel_agp tpm_tis tpm tpm_bios soundcore evdev serio_raw rfkill snd_page_alloc irda crc_ccitt container battery processor video output wmi ac button xfs exportfs sd_mod crc_t10dif ata_generic ata_piix libata firewire_ohci tg3 firewire_core uhci_hcd libphy crc_itu_t scsi_mod ehci_hcd thermal thermal_sys [last unloaded: scsi_wait_scan] [18696.225469] [18696.225476] Pid: 2284, comm: plasma-desktop Tainted: G D 2.6.35.1 #1 Ness2 /TravelMate 3040 [18696.225482] RIP: 0010:[] [] xfs_iget+0x3e3/0x593 [xfs] [18696.225527] RSP: 0018:ffff88003069b9f8 EFLAGS: 00010246 [18696.225532] RAX: 0000000000000000 RBX: ffff88003d081800 RCX: ffffc900102ae8d0 [18696.225537] RDX: ffffffff00000001 RSI: 0000000000000004 RDI: ffff88000462f4e0 [18696.225543] RBP: 0000000000000004 R08: ffffc900102ae8e0 R09: 0000000000000000 [18696.225549] R10: ffff88003d081800 R11: 0000000000000250 R12: ffff88000462f458 [18696.225554] R13: ffff88003d67af0c R14: ffff88003d67aec0 R15: 00000000000140c0 [18696.225561] FS: 00007f2005eac780(0000) GS:ffff880001900000(0000) knlGS:0000000000000000 [18696.225567] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [18696.225573] CR2: 00007f2002dbd300 CR3: 00000000307a1000 CR4: 00000000000006e0 [18696.225578] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [18696.225584] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [18696.225590] Process plasma-desktop (pid: 2284, threadinfo ffff88003069a000, task ffff8800305d71e0) [18696.225595] Stack: [18696.225599] ffff880000000000 0000000000000002 ffff88002437cb19 000000000424fe22 [18696.225608] <0> 0000001900000000 ffff88003d67af10 0424fe2200000002 0000000100000001 [18696.225619] <0> ffff88003069a000 ffff88002437cb30 ffff88003069bb18 000000000024fe22 [18696.225631] Call Trace: [18696.225668] [] ? xfs_trans_iget+0x16/0x3e [xfs] [18696.225707] [] ? xfs_ialloc+0xaf/0x53f [xfs] [18696.225742] [] ? kmem_zone_alloc+0x58/0x9c [xfs] [18696.225777] [] ? xfs_dir_ialloc+0xa0/0x273 [xfs] [18696.225814] [] ? xfs_trans_reserve+0xc9/0x195 [xfs] [18696.225849] [] ? xfs_create+0x2f9/0x572 [xfs] [18696.225882] [] ? xfs_vn_mknod+0xcc/0x168 [xfs] [18696.225895] [] ? vfs_create+0x66/0x88 [18696.225906] [] ? sub_preempt_count+0x83/0x94 [18696.225914] [] ? do_last+0x290/0x55f [18696.225923] [] ? do_filp_open+0x1ee/0x5c8 [18696.225933] [] ? get_parent_ip+0x9/0x1b [18696.225942] [] ? _raw_spin_unlock+0x25/0x33 [18696.225952] [] ? alloc_fd+0x110/0x122 [18696.225962] [] ? do_sys_open+0x56/0xf9 [18696.225972] [] ? system_call_fastpath+0x16/0x1b [18696.225978] Code: 00 0f 84 28 01 00 00 bf d0 00 00 00 e8 d0 f1 00 e1 85 c0 0f 85 11 01 00 00 85 ed 74 12 89 ee 4c 89 e7 e8 2c f7 ff ff 85 c0 75 04 <0f> 0b eb fe 4c 89 ef e8 61 ba 18 e1 8a 4c 24 10 be 01 00 00 00 [18696.226060] RIP [] xfs_iget+0x3e3/0x593 [xfs] [18696.226095] RSP [18696.226101] ---[ end trace 95a1de083b2b773f ]--- [18696.226109] note: plasma-desktop[2284] exited with preempt_count 1 --=-=-=-- From stan@hardwarefreak.com Mon Aug 16 03:36:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G8aZSU228534 for ; Mon, 16 Aug 2010 03:36:36 -0500 X-ASG-Debug-ID: 1281947823-620e037c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5F85F4BF336 for ; Mon, 16 Aug 2010 01:37:03 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id JpqXj0Cu4UI3jCl7 for ; Mon, 16 Aug 2010 01:37:03 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 490EA6C2D8 for ; Mon, 16 Aug 2010 03:37:03 -0500 (CDT) Message-ID: <4C68F8AE.2010006@hardwarefreak.com> Date: Mon, 16 Aug 2010 03:37:02 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: [META-LIST] Now: perennial "reply-to-all" -- Was: Message to Stan - again Subject: [META-LIST] Now: perennial "reply-to-all" -- Was: Message to Stan - again References: <201008131300.40536@zmi.at> <201008152052.59870@zmi.at> In-Reply-To: <201008152052.59870@zmi.at> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1281947824 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0072 1.0000 -1.9743 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.37 X-Barracuda-Spam-Status: No, SCORE=-1.37 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38110 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Monnerie put forth on 8/15/2010 1:52 PM: > Sorry to bother all again, I just wanted to inform Stan that his filter > still has a problem: > > : host greer.hardwarefreak.com[65.41.216.221] > said: 554 5.7.1 : Client host rejected: > Access denied (in reply to RCPT TO command) > > Your .at filter seems removed, but another one still hits (me). Apparently you're just in the wrong part of the world Michael. :) Ok, it should be "fixed" now. BTW... Why does "everyone" on this list "reply-to-all" when 99% of the time it is totally unnecessary, redundant, and potentially ruffles a sender's feathers, as in this case? TTBOMK in recent months the only time I saw that "reply-to-all" was necessary was a thread which included the linux-kernel list or someone who wasn't a member of the xfs list. I love you guys and all, and I love XFS, but do I really need _two_ message copies each time someone replies to a thread in which I participated? :) Do I need to be called out in public for a "problem" with my spam filter when one of those two _redundant_ messages gets blocked, even though the other made it through, and always will? :) I'm on 7 FOSS technical mailing lists, the others being debian-user, dovecot, linux-ide, postfix-users, roundcube, and samba. Of these 7, only xfs and linux-ide routinely suffer the "reply-to-all" syndrome. And of the others, on some, the list OPs will actively scold people when they catch them performing this perennial "reply-to-all" act. Wietse Venema (father of Postfix) in particular gets perturbed by the "reply-to-all" behavior. Not surprising I guess, with him living and breathing SMTP mail for the past ~15 years. Most MUA's have a built in "reply-to-list" function these days and if not someone usually offers a plug-in. I use it in TBird, first as a plug-in, and now that the function is fully integrated. It works great. Never a problem. I'm not trying to be a PITA for anyone here. I'm just trying to understand the apparent _need_ to always "reply-to-all" given that it's unnecessary 99% of the time and simply causes problems, some small, others more severe. P.S. When someone feels slighted by the spam filter of a colleague, the first thing you should do before making a public statement about it is to find a local spammer and physically assault him for an hour or so. Then type your email. If it weren't for the 10s of thousands of folks around the world like the one you just pummeled, my draconian spam filter wouldn't exist. :) Rightly place blame where it _belongs_. -- Stan From stan@hardwarefreak.com Mon Aug 16 04:43:41 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_34 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7G9he1A231153 for ; Mon, 16 Aug 2010 04:43:41 -0500 X-ASG-Debug-ID: 1281951848-321c01080000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 62B834BE627 for ; Mon, 16 Aug 2010 02:44:08 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id DLlXVlTYZqwj8lYn for ; Mon, 16 Aug 2010 02:44:08 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id A17436C2D8 for ; Mon, 16 Aug 2010 04:44:08 -0500 (CDT) Message-ID: <4C690868.6040209@hardwarefreak.com> Date: Mon, 16 Aug 2010 04:44:08 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs.fsck change that is unhelpful Subject: Re: xfs.fsck change that is unhelpful References: <4C670101.8050901@tlinx.org> <20100815005240.GH10429@dastard> <4C674AE8.7030107@tlinx.org> <20100816015505.GJ10429@dastard> <4C68A1CC.4050206@tlinx.org> In-Reply-To: <4C68A1CC.4050206@tlinx.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1281951849 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38114 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Linda Walsh put forth on 8/15/2010 9:26 PM: > That said -- how many people, who have their /home or /usr/people > partition > 'local' to their machine, automount it? I do. Who wouldn't? And why not? /dev/sda6 /home xfs defaults 0 0 /dev/sda7 /samba xfs defaults 0 0 > I admit to thinking of the fsck > field as having > some meaning in the order in which file systems are mounted. I guess > that order is > random now, though how I'm supposed to tell mount that '/home needs to > be mounted > only after "/", but need to be mounted before /home/share, without some > ordering > in fstab is something that is supposed to be specified....where? The device mount order is defined by the lines in the fstab file. Devices are mounted in order, top to bottom, as each line is read. > I.e. isn't that field also the order in which file systems are > mounted, or > is there some other place that order is maintained other than in fstab? > Sorry, am definitely showing my ignorance in this area. No need to apologize. This is easily remedied by learning. Start here: In general, file system mount order is determined by the order in which the file systems appear in the fstab file. The exceptions to this ordering are file systems mounted with the _netdev flag or filesystems that have their own init scripts. A file system with its own init script is mounted later in the initialization process, after the file systems in the fstab file. File systems mounted with the _netdev flag are mounted when the network has been enabled on the system. -- Stan From shaun@adolphson.net Mon Aug 16 05:32:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7GAWASG232876 for ; Mon, 16 Aug 2010 05:32:10 -0500 X-ASG-Debug-ID: 1281955305-36d100cf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 98532CB4428 for ; Mon, 16 Aug 2010 03:41:45 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id q2xNGI4ebU50bDld for ; Mon, 16 Aug 2010 03:41:45 -0700 (PDT) Received: by vws15 with SMTP id 15so3369518vws.26 for ; Mon, 16 Aug 2010 03:32:37 -0700 (PDT) Received: by 10.220.161.201 with SMTP id s9mr3039351vcx.137.1281954756856; Mon, 16 Aug 2010 03:32:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.176.135 with HTTP; Mon, 16 Aug 2010 03:32:16 -0700 (PDT) X-Originating-IP: [220.233.38.104] In-Reply-To: <20100712054559.GE25335@dastard> References: <20100706231856.GC25018@dastard> <20100712010832.GA25335@dastard> <20100712054559.GE25335@dastard> From: Shaun Adolphson Date: Mon, 16 Aug 2010 20:32:16 +1000 Message-ID: X-ASG-Orig-Subj: Re: CentOS 5.5 XFS internal errors (XFS_WANT_CORRUPTED_GOTO) Subject: Re: CentOS 5.5 XFS internal errors (XFS_WANT_CORRUPTED_GOTO) To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1281955305 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38119 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 12, 2010 at 3:45 PM, Dave Chinner wrote: > > On Mon, Jul 12, 2010 at 11:08:32AM +1000, Dave Chinner wrote: > > On Sun, Jul 11, 2010 at 09:44:07PM +1000, Shaun Adolphson wrote: > > > On Thu, Jul 8, 2010 at 9:21 PM, Shaun Adolphson = wrote: > > > > On Wed, Jul 7, 2010 at 9:18 AM, Dave Chinner = wrote: > > > >> > > > >> On Tue, Jul 06, 2010 at 08:57:45PM +1000, Shaun Adolphson wrote: > > > >> > Hi, > > > >> > > > > >> > We have been able to repeatably produce xfs internal errors > > > >> > (XFS_WANT_CORRUPTED_GOTO) on one of our fileservers. We are atte= mpting > > > >> > to locally copy a 248Gig file off a usb drive formated as NTFS t= o the > > > >> > xfs drive. The copy gets about 96% of the way through and we get= the > > > >> > following messages: > > > >> > > > > >> > Jun 28 22:14:46 terrorserver kernel: XFS internal error > > > >> > XFS_WANT_CORRUPTED_GOTO at line 2092 of file fs/xfs/xfs_bmap_btr= ee.c. > > > >> > Caller 0xffffffff8837446f > > > >> > > > >> Interesting. That's a corrupted inode extent btree - I haven't see= n > > > >> one of them for a long while. Were there any errors (like IO error= s) > > > >> reported before this? > > > >> > > > >> However, the first step is to determine if the error is on disk or= an > > > >> in-memory error. Can you post output of: > > > >> > > > >> =C2=A0 =C2=A0 =C2=A0 =C2=A0- xfs_info > > > > > > meta-data=3D/dev/TerrorVolume/terror isize=3D256 =C2=A0 =C2=A0agcount= =3D130385, > > > agsize=3D32768 blks > > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sectsz=3D512 = =C2=A0 attr=3D1 > > > data =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bsize=3D4096 =C2=A0 blocks=3D4= 272433152, imaxpct=3D25 > > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sunit=3D0 =C2= =A0 =C2=A0 =C2=A0swidth=3D0 blks > > > naming =C2=A0 =3Dversion 2 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bsize=3D4096 = =C2=A0 ascii-ci=3D0 > > > log =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3Dinternal =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0bsize=3D4096 =C2=A0 blocks=3D2560, version=3D1 > > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sectsz=3D512 = =C2=A0 sunit=3D0 blks, lazy-count=3D0 > > > realtime =C2=A0=3Dnone =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 extsz=3D4096 =C2=A0 blocks=3D0, rtextents=3D0 > > > > WHy did you make this filesystem with 128MB allocation groups? The > > default for a filesystem of this size is 1TB allocation groups. > > More than 100k allocation groups will certainly push internal AG > > scanning scalability past it's tested limits.... > > > > Also, a log of 10MB is rather small, and it tells me that you didn't > > just create this filesystem firectly on the 16TB block device with a > > recent mkfs.xfs. That is, at current mkfs.xfs defaults to get a layout = like > > this you'd have to =D1=95tart with a 512MB filesystem and grow it to > > 16TB. > > Actually, an old mkfs that defaults to 16 AGs and a filesystem size > of 2GB in needed to get a log of 2540 blocks. I just grew one of > these to roughly 16TB and ended up with 125,000 AGs, so it's in the > ballpark. Also, *allocating* 250GB to a single file (as > preallocation) doesn't appear to have any problems on 2.6.35-rc4, so > there doesn't appear to be any general error caused by this > configuration in mainline.... > > Can you run this command: > > # xfs_io -f -c "truncate 250g" -c "resvsp 0 250g" > > And see if that generates the same corruption as copying a file? > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com Hi David, After many weeks of planning to move all the data off and back on again we are happy to say the the partition is now working as expected. In the end we managed to backup all data on our partition and we re-created it using the mkfs.xfs default options. This time we have 16 allocation groups as you suggested we should have. It appears that the original partition was grown from an extremely small size to have created that many allocation groups. I would like to thank the xfs mailing list for all its help. Regards, Shaun From prvs=1844a46c36=mbachman@stud.uni-frankfurt.de Mon Aug 16 11:22:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7GGMKY4246484 for ; Mon, 16 Aug 2010 11:22:21 -0500 X-ASG-Debug-ID: 1281976315-47fa02710000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailout.rz.uni-frankfurt.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B5B7CCC0560 for ; Mon, 16 Aug 2010 09:31:56 -0700 (PDT) Received: from mailout.rz.uni-frankfurt.de (mailout.rz.uni-frankfurt.de [141.2.22.233]) by cuda.sgi.com with ESMTP id 2jnQoqcZE5PHxlsn for ; Mon, 16 Aug 2010 09:31:56 -0700 (PDT) Received: from smtpauth.cluster.uni-frankfurt.de ([10.2.22.4] helo=smtpauth3.rz.uni-frankfurt.de) by mailout.rz.uni-frankfurt.de with esmtps (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1Ol2SU-00010C-2Z for xfs@oss.sgi.com; Mon, 16 Aug 2010 18:22:46 +0200 Received: from p4fdd345c.dip.t-dialin.net ([79.221.52.92] helo=server.grafnetz) by smtpauth3.rz.uni-frankfurt.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1Ol2SO-0007C9-Fd for xfs@oss.sgi.com; Mon, 16 Aug 2010 18:22:40 +0200 Received: from x2.grafnetz ([192.168.0.4]) by server.grafnetz with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1Ol2SL-0006mp-J5 for xfs@oss.sgi.com; Mon, 16 Aug 2010 18:22:38 +0200 Date: Mon, 16 Aug 2010 18:22:36 +0200 From: Mario Bachmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfsdump-3.0.4 problems Subject: xfsdump-3.0.4 problems Message-ID: <20100816182236.249a2a0f@x2.grafnetz> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-MailScanner: Found to be clean X-Barracuda-Connect: mailout.rz.uni-frankfurt.de[141.2.22.233] X-Barracuda-Start-Time: 1281976316 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38141 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello,=20 my kernel is Linux x2 2.6.35.2 #1 SMP Sun Aug 15 00:32:14 CEST 2010 x86_64 AMD Athlon(tm= ) 64 X2 Dual Core Processor 5600+ AuthenticAMD GNU/Linux I get a lot of Warnings with xfsdump-3.0.4 (booth, gentoo package 3.0.4-r1 = and git-version): x2 ~/source/d/xfsdump/dump # ./xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > = /mnt/data2/dump_text.gz ./xfsdump: using file dump (drive_simple) strategy ./xfsdump: version 3.0.4 (dump format 3.0) - Running single-threaded ./xfsdump: level 0 dump of x2:/home ./xfsdump: dump date: Mon Aug 16 17:34:30 2010 ./xfsdump: session id: 288ed27c-2b26-4c8b-a5d4-bfd1a32f4b6f ./xfsdump: session label: "Test" ./xfsdump: ino map phase 1: constructing initial dump list ./xfsdump: ino map phase 2: skipping (no pruning necessary) ./xfsdump: ino map phase 3: skipping (only one dump stream) ./xfsdump: ino map construction complete ./xfsdump: estimated dump size: 3236335808 bytes ./xfsdump: creating dump session media file 0 (media 0, file 0) ./xfsdump: dumping ino map ./xfsdump: dumping directories ./xfsdump: WARNING: could not stat dirent .crack-attack ino 100663674: Das = Argument ist ung=C3=BCltig: using null generation count in directory entry ./xfsdump: WARNING: could not stat dirent .kvirc4.rc ino 239: Das Argument = ist ung=C3=BCltig: using null generation count in directory entry ./xfsdump: WARNING: could not stat dirent .recently-used ino 240: Das Argum= ent ist ung=C3=BCltig: using null generation count in directory entry ./xfsdump: WARNING: could not stat dirent .DownloadManager ino 100663836: D= as Argument ist ung=C3=BCltig: using null generation count in directory ent= ry ./xfsdump: WARNING: could not stat dirent .distcc ino 33554725: Das Argumen= t ist ung=C3=BCltig: using null generation count in directory entry ./xfsdump: WARNING: could not stat dirent .javafx_eula_accepted ino 1327: D= as Argument ist ung=C3=BCltig: using null generation count in directory ent= ry ./xfsdump: WARNING: could not stat dirent solar_kassel_thomas.txt ino 1671:= Das Argument ist ung=C3=BCltig: using null generation count in directory e= ntry [thousands of these messages...] ./xfsdump: WARNING: could not stat dirent -07a9540007aa7500-0000000000 ino = 38797391: Das Argument ist ung=C3=BCltig: using null generation count in di= rectory entry ./xfsdump: dumping non-directory files ./xfsdump: ending media file ./xfsdump: media file size 3319179552 bytes ./xfsdump: dump size (non-dir files) : 3313078008 bytes ./xfsdump: dump complete: 174 seconds elapsed ./xfsdump: Dump Status: SUCCESS At the end there is a file with 2,8 GB. When restored, I have 3,2 GB.=20 A lot of files simply are not there!=20 With the "old" version xfsdump-3.0.1, I get no warnings! xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > /mnt/data2/dump301_test.gz xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.0.1 (dump format 3.0) - Running single-threaded xfsdump: level 0 dump of x2:/home xfsdump: dump date: Mon Aug 16 18:14:47 2010 xfsdump: session id: b75a088f-6481-4583-8020-7c67fbe92bca xfsdump: session label: "Test" xfsdump: ino map phase 1: constructing initial dump list xfsdump: ino map phase 2: skipping (no pruning necessary) xfsdump: ino map phase 3: skipping (only one dump stream) xfsdump: ino map construction complete xfsdump: estimated dump size: 6000020480 bytes xfsdump: creating dump session media file 0 (media 0, file 0) xfsdump: dumping ino map xfsdump: dumping directories xfsdump: dumping non-directory files xfsdump: ending media file xfsdump: media file size 5701306656 bytes xfsdump: dump size (non-dir files) : 5691937016 bytes xfsdump: dump complete: 308 seconds elapsed xfsdump: Dump Status: SUCCESS And the file is 4,8 GB. All seems to be correct! Mario From SRS0+8qpr+77+fromorbit.com=david@internode.on.net Mon Aug 16 17:09:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7GM9G5N003677 for ; Mon, 16 Aug 2010 17:09:17 -0500 X-ASG-Debug-ID: 1281997133-0db2011e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D58BB11D336A for ; Mon, 16 Aug 2010 15:18:54 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id SxFhxuk0nZIVdxWY for ; Mon, 16 Aug 2010 15:18:54 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35331972-1927428 for multiple; Tue, 17 Aug 2010 07:39:42 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Ol7sD-0002mn-3i; Tue, 17 Aug 2010 08:09:41 +1000 Date: Tue, 17 Aug 2010 08:09:41 +1000 From: Dave Chinner To: Arto Jantunen Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 Subject: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 Message-ID: <20100816220941.GK10429@dastard> References: <878w47yn36.fsf@viiru.iki.fi> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <878w47yn36.fsf@viiru.iki.fi> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1281997135 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38165 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 16, 2010 at 11:32:29AM +0300, Arto Jantunen wrote: > > Hi List, > > I had a kernel BUG yesterday when running xfs_fsr on my Debian Unstable > laptop. The kernel is upstream 2.6.35.1. I'm attaching the backtrace > below. I haven't tried reproducing the problem yet and don't know if it is > reproducible. I can try that, and test patches etc. if it is useful. Let me > know if there is any other information I can provide to help with debugging. It's not obvious what has gone wrong at all - I haven't seen anything like this in all my recent testing, so it's something new. The first oops implies the inode has not been joined to the transaction, but from code inspection I cannot see how that can happen. What compiler did you use to build the kernel? can you reproduce the problem at all? Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+poNH+77+fromorbit.com=david@internode.on.net Mon Aug 16 17:29:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7GMTu0x004933 for ; Mon, 16 Aug 2010 17:29:57 -0500 X-ASG-Debug-ID: 1281998374-01d9038d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EC90512C4F50 for ; Mon, 16 Aug 2010 15:39:34 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id kzSrm67pGaHZBAYD for ; Mon, 16 Aug 2010 15:39:34 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35288196-1927428 for multiple; Tue, 17 Aug 2010 08:00:23 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Ol8CD-0002nt-Fe; Tue, 17 Aug 2010 08:30:21 +1000 Date: Tue, 17 Aug 2010 08:30:21 +1000 From: Dave Chinner To: Mario Bachmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsdump-3.0.4 problems Subject: Re: xfsdump-3.0.4 problems Message-ID: <20100816223021.GL10429@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20100816182236.249a2a0f@x2.grafnetz> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1281998375 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38167 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 16, 2010 at 06:22:36PM +0200, Mario Bachmann wrote: > Hello, > > my kernel is > Linux x2 2.6.35.2 #1 SMP Sun Aug 15 00:32:14 CEST 2010 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 5600+ AuthenticAMD GNU/Linux > > I get a lot of Warnings with xfsdump-3.0.4 (booth, gentoo package 3.0.4-r1 and git-version): > > x2 ~/source/d/xfsdump/dump # ./xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > /mnt/data2/dump_text.gz ..... > ./xfsdump: WARNING: could not stat dirent .crack-attack ino 100663674: Das Argument ist ungültig: using null generation count in directory entry bulkstat is failing, indicating an invalid option was passed. > With the "old" version xfsdump-3.0.1, I get no warnings! > xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > /mnt/data2/dump301_test.gz > xfsdump: using file dump (drive_simple) strategy > xfsdump: version 3.0.1 (dump format 3.0) - Running single-threaded .... > xfsdump: Dump Status: SUCCESS > > And the file is 4,8 GB. All seems to be correct! I can't see any changes between 3.0.1 and 3.0.4 that would explain this. Did you run them on the same machine and kernel? Did you build them with the same compiler? If everything is the same, then perhaps you could bisect (only a few changes so should be quick) to point out the offending change. Cheers, Dave. -- Dave Chinner david@fromorbit.com From mjt@tls.msk.ru Mon Aug 16 19:18:02 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_42,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H0I2ML010892 for ; Mon, 16 Aug 2010 19:18:02 -0500 X-ASG-Debug-ID: 1282004309-22ea03d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from isrv.corpit.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A9C361B70 for ; Mon, 16 Aug 2010 17:18:30 -0700 (PDT) Received: from isrv.corpit.ru (isrv.corpit.ru [86.62.121.231]) by cuda.sgi.com with ESMTP id m3TFTeK0FblkRGEp for ; Mon, 16 Aug 2010 17:18:30 -0700 (PDT) Received: from [192.168.88.2] (mjt.vpn.tls.msk.ru [192.168.10.88]) by isrv.corpit.ru (Postfix) with ESMTP id 74E5D41F21; Tue, 17 Aug 2010 04:18:28 +0400 (MSD) (envelope-from mjt@tls.msk.ru) Message-ID: <4C69D554.4010407@msgid.tls.msk.ru> Date: Tue, 17 Aug 2010 04:18:28 +0400 From: Michael Tokarev Organization: Telecom Service, JSC User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.10) Gecko/20100619 Icedove/3.0.5 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> <20100813113915.GD10429@dastard> In-Reply-To: <20100813113915.GD10429@dastard> X-Enigmail-Version: 1.0.1 OpenPGP: id=804465C5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: isrv.corpit.ru[86.62.121.231] X-Barracuda-Start-Time: 1282004310 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38172 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 13.08.2010 15:39, Dave Chinner wrote: > On Fri, Aug 13, 2010 at 10:24:46AM +0400, Michael Tokarev wrote: [] >> And a related question, -- is there a way to create >> xfs fs with the right sector size? The filesystem >> were ok in years, not only on this machine, and I'm >> quite afraid to replace it with something else (e.g. >> ext4) in a hurry without good prior testing. > > # mkfs.xfs -s .... > > if you want to set it manually. YOu shouldn't need to with any > relatively recent mkfs.xfs... Um. It appears that mkfs.xfs ignores -s size=512 on this raid5 array, and silently creates a filesystem with 4096 sector size, regardless of various -s size=nn and -s log=mm options. This is xfsprogs 3.1.2-1 (debian squeeze package). So the question stands... Thanks! /mjt From mjt@tls.msk.ru Mon Aug 16 19:30:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_42,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H0UL8c011545 for ; Mon, 16 Aug 2010 19:30:21 -0500 X-ASG-Debug-ID: 1282005599-147d01f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from isrv.corpit.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 59F811340099 for ; Mon, 16 Aug 2010 17:40:00 -0700 (PDT) Received: from isrv.corpit.ru (isrv.corpit.ru [86.62.121.231]) by cuda.sgi.com with ESMTP id Y4bP6HLyvq42a7sO for ; Mon, 16 Aug 2010 17:40:00 -0700 (PDT) Received: from [192.168.88.2] (mjt.vpn.tls.msk.ru [192.168.10.88]) by isrv.corpit.ru (Postfix) with ESMTP id 2303841F29; Tue, 17 Aug 2010 04:30:48 +0400 (MSD) (envelope-from mjt@tls.msk.ru) Message-ID: <4C69D837.10702@msgid.tls.msk.ru> Date: Tue, 17 Aug 2010 04:30:47 +0400 From: Michael Tokarev Organization: Telecom Service, JSC User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.10) Gecko/20100619 Icedove/3.0.5 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> <20100813113915.GD10429@dastard> <4C69D554.4010407@msgid.tls.msk.ru> In-Reply-To: <4C69D554.4010407@msgid.tls.msk.ru> X-Enigmail-Version: 1.0.1 OpenPGP: id=804465C5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: isrv.corpit.ru[86.62.121.231] X-Barracuda-Start-Time: 1282005601 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38174 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 17.08.2010 04:18, Michael Tokarev wrote: >> # mkfs.xfs -s .... >> >> if you want to set it manually. YOu shouldn't need to with any >> relatively recent mkfs.xfs... > > Um. It appears that mkfs.xfs ignores -s size=512 on this > raid5 array, and silently creates a filesystem with 4096 > sector size, regardless of various -s size=nn and -s log=mm > options. > > This is xfsprogs 3.1.2-1 (debian squeeze package). > > So the question stands... Debian builds it with internal blkid. Rebuilding it with libblkid fixes that. Thanks! /mjt From SRS0+cg7x+78+fromorbit.com=david@internode.on.net Mon Aug 16 19:30:53 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_42,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H0UqbW011593 for ; Mon, 16 Aug 2010 19:30:53 -0500 X-ASG-Debug-ID: 1282005079-62c103930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 58087171E0AB for ; Mon, 16 Aug 2010 17:31:19 -0700 (PDT) Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id Tmzp7HUmtqBzBqST for ; Mon, 16 Aug 2010 17:31:19 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35293880-1927428 for multiple; Tue, 17 Aug 2010 10:01:18 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OlA5E-0002uv-SP; Tue, 17 Aug 2010 10:31:16 +1000 Date: Tue, 17 Aug 2010 10:31:16 +1000 From: Dave Chinner To: Michael Tokarev Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Alignment size? Subject: Re: Alignment size? Message-ID: <20100817003116.GM10429@dastard> References: <4C64715F.8060000@msgid.tls.msk.ru> <20100812234911.GC10429@dastard> <4C64E52E.2060806@msgid.tls.msk.ru> <20100813113915.GD10429@dastard> <4C69D554.4010407@msgid.tls.msk.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C69D554.4010407@msgid.tls.msk.ru> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103] X-Barracuda-Start-Time: 1282005081 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38174 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 04:18:28AM +0400, Michael Tokarev wrote: > 13.08.2010 15:39, Dave Chinner wrote: > > On Fri, Aug 13, 2010 at 10:24:46AM +0400, Michael Tokarev wrote: > [] > >> And a related question, -- is there a way to create > >> xfs fs with the right sector size? The filesystem > >> were ok in years, not only on this machine, and I'm > >> quite afraid to replace it with something else (e.g. > >> ext4) in a hurry without good prior testing. > > > > # mkfs.xfs -s .... > > > > if you want to set it manually. YOu shouldn't need to with any > > relatively recent mkfs.xfs... > > Um. It appears that mkfs.xfs ignores -s size=512 on this > raid5 array, and silently creates a filesystem with 4096 > sector size, regardless of various -s size=nn and -s log=mm > options. > > This is xfsprogs 3.1.2-1 (debian squeeze package). > > So the question stands... IIRC, the current debian xfsprogs package is still being built with the old detection library. If you install libblkid and build xfsprogs yourself, it should use the newer detection code and behave as expected. Cheers, Dave. -- Dave Chinner david@fromorbit.com From michael.monnerie@is.it-management.at Tue Aug 17 00:31:47 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H5Vkno026926 for ; Tue, 17 Aug 2010 00:31:47 -0500 X-ASG-Debug-ID: 1282023132-5099021d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9228C1D74BFF for ; Mon, 16 Aug 2010 22:32:13 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id rXBVRYf0OQenSNTY for ; Mon, 16 Aug 2010 22:32:13 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 78ED817A for ; Tue, 17 Aug 2010 07:32:11 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 2D83C401C2E for ; Tue, 17 Aug 2010 07:32:11 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [META-LIST] Now: perennial "reply-to-all" Subject: Re: [META-LIST] Now: perennial "reply-to-all" Date: Tue, 17 Aug 2010 07:32:02 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: <201008131300.40536@zmi.at> <201008152052.59870@zmi.at> <4C68F8AE.2010006@hardwarefreak.com> In-Reply-To: <4C68F8AE.2010006@hardwarefreak.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1303441.apTFxkH0Rn"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008170732.10565@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1282023133 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1303441.apTFxkH0Rn Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Montag, 16. August 2010 Stan Hoeppner wrote: > Why does "everyone" on this list "reply-to-all" when 99% of the time > it is totally unnecessary, redundant, and potentially ruffles a > sender's feathers, as in this case? =20 I'm also on several lists, but the only list where reply-to-all is used=20 is this one - so I followed the way it's done here without having=20 questioned why. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1303441.apTFxkH0Rn Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxqHtoACgkQzhSR9xwSCbRGngCeIKJXg18ePdodupxYxPcDH3PY xREAn1UWf6VsnaZmiT8UJhZd46NOawyf =0NS7 -----END PGP SIGNATURE----- --nextPart1303441.apTFxkH0Rn-- From prvs=1845cb4a47=mbachman@stud.uni-frankfurt.de Tue Aug 17 01:32:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H6WEcr029469 for ; Tue, 17 Aug 2010 01:32:15 -0500 X-ASG-Debug-ID: 1282026762-797702a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailout.rz.uni-frankfurt.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7490F2141 for ; Mon, 16 Aug 2010 23:32:42 -0700 (PDT) Received: from mailout.rz.uni-frankfurt.de (mailout.rz.uni-frankfurt.de [141.2.22.233]) by cuda.sgi.com with ESMTP id SsbXLi2EUdh5xbwN for ; Mon, 16 Aug 2010 23:32:42 -0700 (PDT) Received: from smtpauth.cluster.uni-frankfurt.de ([10.2.22.4] helo=smtpauth3.rz.uni-frankfurt.de) by mailout.rz.uni-frankfurt.de with esmtps (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1OlFiz-000733-A6; Tue, 17 Aug 2010 08:32:41 +0200 Received: from p4fdd345c.dip.t-dialin.net ([79.221.52.92] helo=server.grafnetz) by smtpauth3.rz.uni-frankfurt.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1OlFip-00077i-OF; Tue, 17 Aug 2010 08:32:31 +0200 Received: from x2.grafnetz ([192.168.0.4]) by server.grafnetz with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1OlFim-0003gK-4q; Tue, 17 Aug 2010 08:32:29 +0200 Date: Tue, 17 Aug 2010 08:32:27 +0200 From: Mario Bachmann To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsdump-3.0.4 problems Subject: Re: xfsdump-3.0.4 problems Message-ID: <20100817083227.06e23889@x2.grafnetz> In-Reply-To: <20100816223021.GL10429@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-MailScanner: Found to be clean X-Barracuda-Connect: mailout.rz.uni-frankfurt.de[141.2.22.233] X-Barracuda-Start-Time: 1282026763 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38198 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Am Tue, 17 Aug 2010 08:30:21 +1000 schrieb Dave Chinner : > On Mon, Aug 16, 2010 at 06:22:36PM +0200, Mario Bachmann wrote: > > Hello,=20 > >=20 > > my kernel is > > Linux x2 2.6.35.2 #1 SMP Sun Aug 15 00:32:14 CEST 2010 x86_64 AMD Athlo= n(tm) 64 X2 Dual Core Processor 5600+ AuthenticAMD GNU/Linux > >=20 > > I get a lot of Warnings with xfsdump-3.0.4 (booth, gentoo package 3.0.4= -r1 and git-version): > >=20 > > x2 ~/source/d/xfsdump/dump # ./xfsdump -l0 -L "Test" - /dev/sda2 |gzip = - > /mnt/data2/dump_text.gz > ..... > > ./xfsdump: WARNING: could not stat dirent .crack-attack ino 100663674: = Das Argument ist ung=C3=BCltig: using null generation count in directory en= try >=20 > bulkstat is failing, indicating an invalid option was passed. >=20 > > With the "old" version xfsdump-3.0.1, I get no warnings! > > xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > /mnt/data2/dump301_test.gz > > xfsdump: using file dump (drive_simple) strategy > > xfsdump: version 3.0.1 (dump format 3.0) - Running single-threaded > .... > > xfsdump: Dump Status: SUCCESS > >=20 > > And the file is 4,8 GB. All seems to be correct! >=20 > I can't see any changes between 3.0.1 and 3.0.4 that would explain > this. Did you run them on the same machine and kernel? Did you build > them with the same compiler? If everything is the same, then perhaps > you could bisect (only a few changes so should be quick) to point > out the offending change. >=20 > Cheers, >=20 > Dave. After some testing, I think it is NOT a problem with xfsdump, but with the = new kernel 2.6.35.2. First I must correct my last posting: xfsdump-3.0.1 DO= have the same problem as xfsdump-3.0.4 on kernel 2.6.35.2. It was just a c= oincidence that is worked one time without problems... Machines: I have two x86_64 and one x86. All machines have the same problem= s after I upgraded all three Kernels from 2.6.34.x to 2.6.35.2. So I believ= e, it is a problem with 2.6.35.2 or the combination of [2.6.35.2 & xfsdump] Compiler: I use "gcc (Gentoo 4.4.4-r1 p1.0, pie-0.4.5) 4.4.4".=20 Testing List (on one machine only): works: x86_64, 2.6.34.4, xfsdump-3.0.1 works: x86_64, 2.6.34.4, xfsdump-3.0.4 failure: x86_64, 2.6.35.2, xfsdump-3.0.1 (worked only one time) failure: x86_64, 2.6.35.2, xfsdump-3.0.4 Mario From SRS0+l3vJ+78+fromorbit.com=david@internode.on.net Tue Aug 17 02:13:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H7DE5k031417 for ; Tue, 17 Aug 2010 02:13:15 -0500 X-ASG-Debug-ID: 1282029773-2f5302570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8B5C8CC6254 for ; Tue, 17 Aug 2010 00:22:53 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id dVFDLNCnR72tMctK for ; Tue, 17 Aug 2010 00:22:53 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35307410-1927428 for multiple; Tue, 17 Aug 2010 16:43:39 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OlGMb-0003KX-R8; Tue, 17 Aug 2010 17:13:37 +1000 Date: Tue, 17 Aug 2010 17:13:37 +1000 From: Dave Chinner To: Mario Bachmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsdump-3.0.4 problems Subject: Re: xfsdump-3.0.4 problems Message-ID: <20100817071337.GN10429@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20100817083227.06e23889@x2.grafnetz> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1282029775 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38201 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 08:32:27AM +0200, Mario Bachmann wrote: > Am Tue, 17 Aug 2010 08:30:21 +1000 > schrieb Dave Chinner : > > > On Mon, Aug 16, 2010 at 06:22:36PM +0200, Mario Bachmann wrote: > > > Hello, > > > > > > my kernel is > > > Linux x2 2.6.35.2 #1 SMP Sun Aug 15 00:32:14 CEST 2010 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 5600+ AuthenticAMD GNU/Linux > > > > > > I get a lot of Warnings with xfsdump-3.0.4 (booth, gentoo package 3.0.4-r1 and git-version): > > > > > > x2 ~/source/d/xfsdump/dump # ./xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > /mnt/data2/dump_text.gz > > ..... > > > ./xfsdump: WARNING: could not stat dirent .crack-attack ino 100663674: Das Argument ist ungültig: using null generation count in directory entry > > > > bulkstat is failing, indicating an invalid option was passed. > > > > > With the "old" version xfsdump-3.0.1, I get no warnings! > > > xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > /mnt/data2/dump301_test.gz > > > xfsdump: using file dump (drive_simple) strategy > > > xfsdump: version 3.0.1 (dump format 3.0) - Running single-threaded > > .... > > > xfsdump: Dump Status: SUCCESS > > > > > > And the file is 4,8 GB. All seems to be correct! > > > > I can't see any changes between 3.0.1 and 3.0.4 that would explain > > this. Did you run them on the same machine and kernel? Did you build > > them with the same compiler? If everything is the same, then perhaps > > you could bisect (only a few changes so should be quick) to point > > out the offending change. > > After some testing, I think it is NOT a problem with xfsdump, but > with the new kernel 2.6.35.2. First I must correct my last > posting: xfsdump-3.0.1 DO have the same problem as xfsdump-3.0.4 > on kernel 2.6.35.2. It was just a coincidence that is worked one > time without problems... > > Machines: I have two x86_64 and one x86. All machines have the > same problems after I upgraded all three Kernels from 2.6.34.x to > 2.6.35.2. So I believe, it is a problem with 2.6.35.2 or the > combination of [2.6.35.2 & xfsdump]. > > Compiler: I use "gcc (Gentoo 4.4.4-r1 p1.0, pie-0.4.5) 4.4.4". > > Testing List (on one machine only): > works: x86_64, 2.6.34.4, xfsdump-3.0.1 > works: x86_64, 2.6.34.4, xfsdump-3.0.4 > failure: x86_64, 2.6.35.2, xfsdump-3.0.1 (worked only one time) > failure: x86_64, 2.6.35.2, xfsdump-3.0.4 Ok, that makes more sense - we changed the way bulkstat works in from 2.6.34 to 2.6.35 to correctly validate inode numbers being passed in via bulkstat, and hence files unlinked during the dump run could return EINVAL when validating the directory structure (as they no longer exist). Is you system completely idle while the dump is running, or are files being removed while the dump is running? Cheers, Dave. -- Dave Chinner david@fromorbit.com From prvs=1845cb4a47=mbachman@stud.uni-frankfurt.de Tue Aug 17 02:53:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H7rVLE033508 for ; Tue, 17 Aug 2010 02:53:31 -0500 X-ASG-Debug-ID: 1282031639-4aa801c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailout.rz.uni-frankfurt.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 38E112334 for ; Tue, 17 Aug 2010 00:53:59 -0700 (PDT) Received: from mailout.rz.uni-frankfurt.de (mailout.rz.uni-frankfurt.de [141.2.22.233]) by cuda.sgi.com with ESMTP id MmX4F9xwJXiQp3D5 for ; Tue, 17 Aug 2010 00:53:59 -0700 (PDT) Received: from smtpauth.cluster.uni-frankfurt.de ([10.2.22.4] helo=smtpauth3.rz.uni-frankfurt.de) by mailout.rz.uni-frankfurt.de with esmtps (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1OlGzf-0001s1-1v; Tue, 17 Aug 2010 09:53:59 +0200 Received: from p4fdd345c.dip.t-dialin.net ([79.221.52.92] helo=server.grafnetz) by smtpauth3.rz.uni-frankfurt.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1OlGzV-00047l-9r; Tue, 17 Aug 2010 09:53:49 +0200 Received: from x2.grafnetz ([192.168.0.4]) by server.grafnetz with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1OlGzN-00028V-Gz; Tue, 17 Aug 2010 09:53:46 +0200 Date: Tue, 17 Aug 2010 09:53:40 +0200 From: Mario Bachmann To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsdump-3.0.4 problems Subject: Re: xfsdump-3.0.4 problems Message-ID: <20100817095340.6b9ab8e2@x2.grafnetz> In-Reply-To: <20100817071337.GN10429@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-MailScanner: Found to be clean X-Barracuda-Connect: mailout.rz.uni-frankfurt.de[141.2.22.233] X-Barracuda-Start-Time: 1282031640 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38204 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Am Tue, 17 Aug 2010 17:13:37 +1000 schrieb Dave Chinner : > On Tue, Aug 17, 2010 at 08:32:27AM +0200, Mario Bachmann wrote: > > Am Tue, 17 Aug 2010 08:30:21 +1000 > > schrieb Dave Chinner : > >=20 > > > On Mon, Aug 16, 2010 at 06:22:36PM +0200, Mario Bachmann wrote: > > > > Hello,=20 > > > >=20 > > > > my kernel is > > > > Linux x2 2.6.35.2 #1 SMP Sun Aug 15 00:32:14 CEST 2010 x86_64 AMD A= thlon(tm) 64 X2 Dual Core Processor 5600+ AuthenticAMD GNU/Linux > > > >=20 > > > > I get a lot of Warnings with xfsdump-3.0.4 (booth, gentoo package 3= .0.4-r1 and git-version): > > > >=20 > > > > x2 ~/source/d/xfsdump/dump # ./xfsdump -l0 -L "Test" - /dev/sda2 |g= zip - > /mnt/data2/dump_text.gz > > > ..... > > > > ./xfsdump: WARNING: could not stat dirent .crack-attack ino 1006636= 74: Das Argument ist ung=C3=BCltig: using null generation count in director= y entry > > >=20 > > > bulkstat is failing, indicating an invalid option was passed. > > >=20 > > > > With the "old" version xfsdump-3.0.1, I get no warnings! > > > > xfsdump -l0 -L "Test" - /dev/sda2 |gzip - > /mnt/data2/dump301_test= .gz > > > > xfsdump: using file dump (drive_simple) strategy > > > > xfsdump: version 3.0.1 (dump format 3.0) - Running single-threaded > > > .... > > > > xfsdump: Dump Status: SUCCESS > > > >=20 > > > > And the file is 4,8 GB. All seems to be correct! > > >=20 > > > I can't see any changes between 3.0.1 and 3.0.4 that would explain > > > this. Did you run them on the same machine and kernel? Did you build > > > them with the same compiler? If everything is the same, then perhaps > > > you could bisect (only a few changes so should be quick) to point > > > out the offending change. > >=20 > > After some testing, I think it is NOT a problem with xfsdump, but > > with the new kernel 2.6.35.2. First I must correct my last > > posting: xfsdump-3.0.1 DO have the same problem as xfsdump-3.0.4 > > on kernel 2.6.35.2. It was just a coincidence that is worked one > > time without problems... > >=20 > > Machines: I have two x86_64 and one x86. All machines have the > > same problems after I upgraded all three Kernels from 2.6.34.x to > > 2.6.35.2. So I believe, it is a problem with 2.6.35.2 or the > > combination of [2.6.35.2 & xfsdump]. > >=20 > > Compiler: I use "gcc (Gentoo 4.4.4-r1 p1.0, pie-0.4.5) 4.4.4".=20 > >=20 > > Testing List (on one machine only): > > works: x86_64, 2.6.34.4, xfsdump-3.0.1 > > works: x86_64, 2.6.34.4, xfsdump-3.0.4 > > failure: x86_64, 2.6.35.2, xfsdump-3.0.1 (worked only one time) > > failure: x86_64, 2.6.35.2, xfsdump-3.0.4 >=20 > Ok, that makes more sense - we changed the way bulkstat works in > from 2.6.34 to 2.6.35 to correctly validate inode numbers being > passed in via bulkstat, and hence files unlinked during the dump run > could return EINVAL when validating the directory structure (as they > no longer exist). Is you system completely idle while the dump > is running, or are files being removed while the dump is running? >=20 > Cheers, >=20 > Dave. I would call my system idle, when I use xfsdump. No rm or mv operations=20 are running while the dump. The first machine has a dual core 2.9 GHz and 8 GB of RAM and the filesystems are not really big (~10GB used). The second= =20 machine has a dual core 2 GHz and 2 GB of RAM.=20 It does not matter if I dump the running root partition or the extra=20 home partition (even not logged in with a user, so there should be absolute= ly=20 no changes to the files, also I did a sync before the dump).=20 What I tested now: After downgrading to 2.6.34.4 on both x86_64, xfsdump wo= rked again,=20 but that is no solution to use an old kernel! To describe the result on 2.6.35.2 again clearly: xfsdump produces a dump w= here=20 some gigabyte of data are simply missing. I think about 30% of all files ar= e=20 missing.=20 Mario From BATV+fa23e45383b0cf910768+2550+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 17 04:01:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H91MXY038113 for ; Tue, 17 Aug 2010 04:01:24 -0500 X-ASG-Debug-ID: 1282035711-0b4401d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE5E11D759AB for ; Tue, 17 Aug 2010 02:01:51 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id mSybSvM9MKswEcTR for ; Tue, 17 Aug 2010 02:01:51 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OlI3K-0001Z0-Lt; Tue, 17 Aug 2010 09:01:50 +0000 Date: Tue, 17 Aug 2010 05:01:50 -0400 From: Christoph Hellwig To: Michael Monnerie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [META-LIST] Now: perennial "reply-to-all" Subject: Re: [META-LIST] Now: perennial "reply-to-all" Message-ID: <20100817090150.GA1294@infradead.org> References: <201008131300.40536@zmi.at> <201008152052.59870@zmi.at> <4C68F8AE.2010006@hardwarefreak.com> <201008170732.10565@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201008170732.10565@zmi.at> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282035711 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 07:32:02AM +0200, Michael Monnerie wrote: > On Montag, 16. August 2010 Stan Hoeppner wrote: > > Why does "everyone" on this list "reply-to-all" when 99% of the time > > it is totally unnecessary, redundant, and potentially ruffles a > > sender's feathers, as in this case? > > I'm also on several lists, but the only list where reply-to-all is used > is this one - so I followed the way it's done here without having > questioned why. It's done by all Lists in the Linux development universe, and it's the only sane way to handle a list. We don't require people to subsribe to post to the list, and keeping everyone in the To/Cc list means it arrives at those people as well. In addition it allows subscribes that are on tons of lists to prioritize discussions they're actually involved in personally by getting a copy in the inbox that can be replied to ASAP while also having an archived copy in the list folder. Every other way to run a list is simply insane. From BATV+fa23e45383b0cf910768+2550+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 17 04:02:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H92vKM038234 for ; Tue, 17 Aug 2010 04:02:57 -0500 X-ASG-Debug-ID: 1282035806-6ff102f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 954766F4 for ; Tue, 17 Aug 2010 02:03:26 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Z5pBRH5XPGZw71Eo for ; Tue, 17 Aug 2010 02:03:26 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OlI4l-0001vg-V9; Tue, 17 Aug 2010 09:03:19 +0000 Date: Tue, 17 Aug 2010 05:03:19 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Mario Bachmann , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsdump-3.0.4 problems Subject: Re: xfsdump-3.0.4 problems Message-ID: <20100817090319.GB1294@infradead.org> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100817071337.GN10429@dastard> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282035806 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 05:13:37PM +1000, Dave Chinner wrote: > > Testing List (on one machine only): > > works: x86_64, 2.6.34.4, xfsdump-3.0.1 > > works: x86_64, 2.6.34.4, xfsdump-3.0.4 > > failure: x86_64, 2.6.35.2, xfsdump-3.0.1 (worked only one time) > > failure: x86_64, 2.6.35.2, xfsdump-3.0.4 > > Ok, that makes more sense - we changed the way bulkstat works in > from 2.6.34 to 2.6.35 to correctly validate inode numbers being > passed in via bulkstat, and hence files unlinked during the dump run > could return EINVAL when validating the directory structure (as they > no longer exist). Is you system completely idle while the dump > is running, or are files being removed while the dump is running? I've also seen related issues in xfstests recently, but even going all the way back to kernel 2.6.34 does not solve all of them for me. From SRS0+I+72+78+fromorbit.com=david@internode.on.net Tue Aug 17 04:05:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H959T4038410 for ; Tue, 17 Aug 2010 04:05:10 -0500 X-ASG-Debug-ID: 1282035936-0b4001eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A4BFB1D759D9 for ; Tue, 17 Aug 2010 02:05:37 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id FCyGbuitpS7qy4Yt for ; Tue, 17 Aug 2010 02:05:37 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35371978-1927428 for multiple; Tue, 17 Aug 2010 18:35:36 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OlI6w-0003Ud-Nj; Tue, 17 Aug 2010 19:05:34 +1000 Date: Tue, 17 Aug 2010 19:05:34 +1000 From: Dave Chinner To: Mario Bachmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsdump-3.0.4 problems Subject: Re: xfsdump-3.0.4 problems Message-ID: <20100817090534.GP10429@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> <20100817095340.6b9ab8e2@x2.grafnetz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100817095340.6b9ab8e2@x2.grafnetz> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1282035938 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38208 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 09:53:40AM +0200, Mario Bachmann wrote: > Am Tue, 17 Aug 2010 17:13:37 +1000 > schrieb Dave Chinner : > > > Compiler: I use "gcc (Gentoo 4.4.4-r1 p1.0, pie-0.4.5) 4.4.4". > > > > > > Testing List (on one machine only): > > > works: x86_64, 2.6.34.4, xfsdump-3.0.1 > > > works: x86_64, 2.6.34.4, xfsdump-3.0.4 > > > failure: x86_64, 2.6.35.2, xfsdump-3.0.1 (worked only one time) > > > failure: x86_64, 2.6.35.2, xfsdump-3.0.4 > > > > Ok, that makes more sense - we changed the way bulkstat works in > > from 2.6.34 to 2.6.35 to correctly validate inode numbers being > > passed in via bulkstat, and hence files unlinked during the dump run > > could return EINVAL when validating the directory structure (as they > > no longer exist). Is you system completely idle while the dump > > is running, or are files being removed while the dump is running? > > I would call my system idle, when I use xfsdump. No rm or mv operations > are running while the dump. The first machine has a dual core 2.9 GHz and > 8 GB of RAM and the filesystems are not really big (~10GB used). The second > machine has a dual core 2 GHz and 2 GB of RAM. Yup, I have reproduced it here. What is strange is that xfs_fsr uses XFS_IOC_BULKSTAT_SINGLE, and that works fine on 2.6.35.2. The same ioctl calls from xfsdump are failing, though, so something funny is going on there. I'll look into it further. Cheers, Dave. -- Dave Chinner david@fromorbit.com From viiru@iki.fi Tue Aug 17 04:19:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7H9JDOe039430 for ; Tue, 17 Aug 2010 04:19:13 -0500 X-ASG-Debug-ID: 1282036774-0b4a02b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from emh06.mail.saunalahti.fi (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0CAB21CA80CA for ; Tue, 17 Aug 2010 02:19:34 -0700 (PDT) Received: from emh06.mail.saunalahti.fi (emh06.mail.saunalahti.fi [62.142.5.116]) by cuda.sgi.com with ESMTP id 7KZL4sKHUK8wzYdY for ; Tue, 17 Aug 2010 02:19:34 -0700 (PDT) Received: from saunalahti-vams (vs3-10.mail.saunalahti.fi [62.142.5.94]) by emh06-2.mail.saunalahti.fi (Postfix) with SMTP id 58CA9C7D04; Tue, 17 Aug 2010 12:19:33 +0300 (EEST) Received: from emh05.mail.saunalahti.fi ([62.142.5.111]) by vs3-10.mail.saunalahti.fi ([62.142.5.94]) with SMTP (gateway) id A0645555144; Tue, 17 Aug 2010 12:19:33 +0300 Received: from ryoko (ryoko.zyrain.org [217.152.200.219]) by emh05.mail.saunalahti.fi (Postfix) with ESMTP id 0305227D8A; Tue, 17 Aug 2010 12:19:29 +0300 (EEST) Received: by ryoko (Postfix, from userid 1000) id 8E39D280DD8A1; Tue, 17 Aug 2010 12:19:29 +0300 (EEST) From: Arto Jantunen To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 Subject: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 References: <878w47yn36.fsf@viiru.iki.fi> <20100816220941.GK10429@dastard> Date: Tue, 17 Aug 2010 12:19:29 +0300 In-Reply-To: <20100816220941.GK10429@dastard> (sfid-20100817_010956_232755_D2E8C8BA) (Dave Chinner's message of "Tue\, 17 Aug 2010 08\:09\:41 +1000") Message-ID: <874oetzjdq.fsf@viiru.iki.fi> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Antivirus: VAMS X-Barracuda-Connect: emh06.mail.saunalahti.fi[62.142.5.116] X-Barracuda-Start-Time: 1282036775 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38210 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner writes: > On Mon, Aug 16, 2010 at 11:32:29AM +0300, Arto Jantunen wrote: >> I had a kernel BUG yesterday when running xfs_fsr on my Debian Unstable >> laptop. The kernel is upstream 2.6.35.1. I'm attaching the backtrace >> below. I haven't tried reproducing the problem yet and don't know if it is >> reproducible. I can try that, and test patches etc. if it is useful. Let me >> know if there is any other information I can provide to help with debugging. > > It's not obvious what has gone wrong at all - I haven't seen > anything like this in all my recent testing, so it's something new. > The first oops implies the inode has not been joined to the > transaction, but from code inspection I cannot see how that can > happen. > > What compiler did you use to build the kernel? can you reproduce the > problem at all? I used the compiler which is available on current Debian Testing, --version reports "gcc (Debian 4.4.4-8) 4.4.5 20100728 (prerelease)". I'll try to reproduce the problem later today. -- Arto Jantunen From SRS0+O8fi+78+fromorbit.com=david@internode.on.net Tue Aug 17 06:45:27 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7HBjQNn046851 for ; Tue, 17 Aug 2010 06:45:26 -0500 X-ASG-Debug-ID: 1282046106-6f3603460000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 747F915D4848 for ; Tue, 17 Aug 2010 04:55:07 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id 2uwTSVHeJsO17zmU for ; Tue, 17 Aug 2010 04:55:07 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35627813-1927428 for multiple; Tue, 17 Aug 2010 21:15:52 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OlKc2-0003gB-Ro; Tue, 17 Aug 2010 21:45:50 +1000 Date: Tue, 17 Aug 2010 21:45:50 +1000 From: Dave Chinner To: Mario Bachmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] Re: xfsdump-3.0.4 problems Subject: [PATCH] Re: xfsdump-3.0.4 problems Message-ID: <20100817114550.GQ10429@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> <20100817095340.6b9ab8e2@x2.grafnetz> <20100817090534.GP10429@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100817090534.GP10429@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1282046108 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38217 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 07:05:34PM +1000, Dave Chinner wrote: > On Tue, Aug 17, 2010 at 09:53:40AM +0200, Mario Bachmann wrote: > > Am Tue, 17 Aug 2010 17:13:37 +1000 > schrieb Dave Chinner : > > > > Compiler: I use "gcc (Gentoo 4.4.4-r1 p1.0, pie-0.4.5) 4.4.4". > > > > > > > > Testing List (on one machine only): > > > > works: x86_64, 2.6.34.4, xfsdump-3.0.1 > > > > works: x86_64, 2.6.34.4, xfsdump-3.0.4 > > > > failure: x86_64, 2.6.35.2, xfsdump-3.0.1 (worked only one time) > > > > failure: x86_64, 2.6.35.2, xfsdump-3.0.4 > > > > > > Ok, that makes more sense - we changed the way bulkstat works in > > > from 2.6.34 to 2.6.35 to correctly validate inode numbers being > > > passed in via bulkstat, and hence files unlinked during the dump run > > > could return EINVAL when validating the directory structure (as they > > > no longer exist). Is you system completely idle while the dump > > > is running, or are files being removed while the dump is running? > > > > I would call my system idle, when I use xfsdump. No rm or mv operations > > are running while the dump. The first machine has a dual core 2.9 GHz and > > 8 GB of RAM and the filesystems are not really big (~10GB used). The second > > machine has a dual core 2 GHz and 2 GB of RAM. > > Yup, I have reproduced it here. What is strange is that xfs_fsr uses > XFS_IOC_BULKSTAT_SINGLE, and that works fine on 2.6.35.2. The same > ioctl calls from xfsdump are failing, though, so something funny is > going on there. > > I'll look into it further. Ok, there is nothing wrong with the changes to the bulkstat code; when all the inodes in the filesystem are hot in the inode cache xfsdump succeeds. When I run xfs_fsr per file to exercise the XFS_IOC_BULKSTAT_SINGLE path like so: $ sudo find /mnt/test -type f -exec xfs_fsr -d -v {} \; It succeeds without any bulkstat failures. A subsequent xfsdump invocation then succeeds without failure, either. Clearly the find is populating the inode cache for the subsequent bulkstat calls, Ok, so the reason this wasn't picked up is that xfs_fsr silently ignores inodes that it gets an error from bulkstat on. and it looks like Dropping caches then running xfsdump: $ sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" $ sudo xfsdump -l0 -L "Test" - /dev/vda 2> t.t |gzip - > ~/dump_test.gz Results in failures. /me sighs My fault. I screwed up the btree lookup for the inode validation. Can you test the patch below? Cheers, Dave -- Dave Chinner david@fromorbit.com xfs: fix untrusted inode number lookup From: Dave Chinner Commit 7124fe0a5b619d65b739477b3b55a20bf805b06d ("xfs: validate untrusted inode numbers during lookup") changes the inode lookup code to do btree lookups for untrusted inode numbers. This change made an invalid assumption about the alignment of inodes and hence incorrectly calculated the first inode in the cluster. As a result, some inode numbers were being incorrectly considered invalid when they were actually valid. The issue was not picked up by the xfstests suite because it always runs fsr and dump (the two utilities that utilise the bulkstat interface) on cache hot inodes and hence the lookup code in the cold cache path was not sufficiently exercised to uncover this intermittent problem. Fix the issue by relaxing the btree lookup criteria and then checking if the record returned contains the inode number we are lookup for. If it we get an incorrect record, then the inode number is invalid. Signed-off-by: Dave Chinner --- fs/xfs/xfs_ialloc.c | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c index abf80ae..5371d2d 100644 --- a/fs/xfs/xfs_ialloc.c +++ b/fs/xfs/xfs_ialloc.c @@ -1213,7 +1213,6 @@ xfs_imap_lookup( struct xfs_inobt_rec_incore rec; struct xfs_btree_cur *cur; struct xfs_buf *agbp; - xfs_agino_t startino; int error; int i; @@ -1227,13 +1226,13 @@ xfs_imap_lookup( } /* - * derive and lookup the exact inode record for the given agino. If the - * record cannot be found, then it's an invalid inode number and we - * should abort. + * Lookup the inode record for the given agino. If the record cannot be + * found, then it's an invalid inode number and we should abort. Once + * we have a record, we need to ensure it contains the inode number + * we are looking up. */ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); - startino = agino & ~(XFS_IALLOC_INODES(mp) - 1); - error = xfs_inobt_lookup(cur, startino, XFS_LOOKUP_EQ, &i); + error = xfs_inobt_lookup(cur, agino, XFS_LOOKUP_LE, &i); if (!error) { if (i) error = xfs_inobt_get_rec(cur, &rec, &i); @@ -1246,6 +1245,11 @@ xfs_imap_lookup( if (error) return error; + /* check that the returned record contains the required inode */ + if (rec.ir_startino > agino || + rec.ir_startino + XFS_IALLOC_INODES(mp) <= agino) + return EINVAL; + /* for untrusted inodes check it is allocated first */ if ((flags & XFS_IGET_UNTRUSTED) && (rec.ir_free & XFS_INOBT_MASK(agino - rec.ir_startino))) From nohez@cmie.com Tue Aug 17 08:41:32 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_27 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7HDfWA6049999 for ; Tue, 17 Aug 2010 08:41:32 -0500 X-ASG-Debug-ID: 1282052518-473303240000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from out.rilinfo.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 19ECB32BC for ; Tue, 17 Aug 2010 06:41:58 -0700 (PDT) Received: from out.rilinfo.net (out41.rilinfo.net [202.138.96.41]) by cuda.sgi.com with ESMTP id wLYFqxWQA3FKmYvJ for ; Tue, 17 Aug 2010 06:41:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsEAIYuakzc4stL/2dsb2JhbAChLr9QhTcEhC+FOA Received: from mail.cmie.com (HELO p8001cmie.local) ([220.226.203.75]) by out.rilinfo.net with ESMTP; 17 Aug 2010 13:41:31 +0000 Received: from sutlej.cmie.ernet.in (sutlej.cmie.ernet.in [192.168.1.4]) by p8001cmie.local (Postfix) with ESMTP id CC3DB4A38001; Tue, 17 Aug 2010 19:07:57 +0530 (IST) Received: from mahi.cmie.ernet.in (mahi.cmie.ernet.in [196.1.1.46]) by sutlej.cmie.ernet.in (Postfix) with ESMTP id 6527C17D646; Tue, 17 Aug 2010 19:12:12 +0530 (IST) Date: Tue, 17 Aug 2010 19:12:12 +0530 (IST) From: Nohez X-X-Sender: nohez@mahi.cmie.ernet.in To: xfs@oss.sgi.com X-ASG-Orig-Subj: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Message-ID: User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: out41.rilinfo.net[202.138.96.41] X-Barracuda-Start-Time: 1282052521 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38226 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, I had a kernel bug today when running xfs on CentOS v5.5. I moved to xfs from ext3 today. The only application accessing the xfs filesystem is Sybase ASE v15.x. Database has been configured to use directio with native kernel asynchronous disk i/o enabled. Let me know if there is any other information I can provide to help with debugging. Thanks Nohez # uname -a Linux xxxxxx 2.6.18-194.11.1.el5 #1 SMP Tue Aug 10 19:05:06 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux # modinfo xfs filename: /lib/modules/2.6.18-194.11.1.el5/kernel/fs/xfs/xfs.ko license: GPL description: SGI XFS with ACLs, security attributes, large block/inode numbers, no debug enabled author: Silicon Graphics, Inc. srcversion: 5380928C58CAF3C9D7FF438 depends: vermagic: 2.6.18-194.11.1.el5 SMP mod_unload gcc-4.1 module_sig: 883f3504c61e211db40e56c3525288511247550a0d2737921213759cfcfebb5d4b9c7349defb86f4f0a0c1199fc66696cad525fb805585a3d05072b47923 # grep xfs /proc/mounts /dev/mapper/xxxxxx_syb_vol_6130p1 /sybase xfs rw,noatime,nodiratime,nobarrier,logbufs=8,logbsize=32k,noquota 0 0 Aug 17 14:26:02 xxxxxx kernel: XFS mounting filesystem dm-1 Aug 17 15:20:09 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: Call Trace: Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:09 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:09 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:09 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:09 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:09 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:09 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: Call Trace: Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:09 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:09 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:09 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:09 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:09 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:09 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: Call Trace: Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:09 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:09 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:09 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:09 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:09 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:09 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: Call Trace: Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:09 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:09 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:09 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:09 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:09 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:09 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: Call Trace: Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:09 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:09 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:09 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:09 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:09 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:09 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:09 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:09 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:09 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: Call Trace: Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:10 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:10 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:10 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:10 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:10 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:10 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: Call Trace: Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:10 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:10 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:10 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:10 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:10 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:10 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: Call Trace: Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:10 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:10 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:10 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:10 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:10 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:10 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: Call Trace: Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:10 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:10 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:10 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:10 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:10 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:10 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: Call Trace: Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:10 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:10 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:10 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:10 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:10 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:10 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:10 xxxxxx kernel: Aug 17 15:20:10 xxxxxx kernel: Call Trace: Aug 17 15:20:10 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:11 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:11 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:11 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:11 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:11 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:11 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:11 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:11 xxxxxx kernel: Aug 17 15:20:11 xxxxxx kernel: BUG: warning at fs/xfs/linux-2.6/xfs_lrw.c:718/xfs_write() (Tainted: G ) Aug 17 15:20:11 xxxxxx kernel: Aug 17 15:20:11 xxxxxx kernel: Call Trace: Aug 17 15:20:11 xxxxxx kernel: [] :xfs:xfs_write+0x39f/0x69e Aug 17 15:20:11 xxxxxx kernel: [] core_sys_select+0x1f9/0x265 Aug 17 15:20:11 xxxxxx kernel: [] :xfs:xfs_file_aio_write+0x65/0x6a Aug 17 15:20:11 xxxxxx kernel: [] aio_pwrite+0x2c/0x75 Aug 17 15:20:11 xxxxxx kernel: [] aio_run_iocb+0xef/0x18a Aug 17 15:20:11 xxxxxx kernel: [] io_submit_one+0x396/0x499 Aug 17 15:20:11 xxxxxx kernel: [] sys_io_submit+0xbe/0x1a4 Aug 17 15:20:11 xxxxxx kernel: [] tracesys+0xd5/0xe0 Aug 17 15:20:11 xxxxxx kernel: From prvs=1845cb4a47=mbachman@stud.uni-frankfurt.de Tue Aug 17 10:47:16 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7HFlGwA055854 for ; Tue, 17 Aug 2010 10:47:16 -0500 X-ASG-Debug-ID: 1282060617-591003ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailout.rz.uni-frankfurt.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B774CCEB27 for ; Tue, 17 Aug 2010 08:56:58 -0700 (PDT) Received: from mailout.rz.uni-frankfurt.de (mailout.rz.uni-frankfurt.de [141.2.22.233]) by cuda.sgi.com with ESMTP id fJAj3wqL6ycaP1Ej for ; Tue, 17 Aug 2010 08:56:58 -0700 (PDT) Received: from smtpauth.cluster.uni-frankfurt.de ([10.2.22.4] helo=smtpauth3.rz.uni-frankfurt.de) by mailout.rz.uni-frankfurt.de with esmtps (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1OlOO7-0004t8-77; Tue, 17 Aug 2010 17:47:43 +0200 Received: from p4fdd2455.dip.t-dialin.net ([79.221.36.85] helo=server.grafnetz) by smtpauth3.rz.uni-frankfurt.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) (envelope-from ) id 1OlOO0-0003gt-Lx; Tue, 17 Aug 2010 17:47:36 +0200 Received: from x2.grafnetz ([192.168.0.4]) by server.grafnetz with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1OlONw-0003WM-Fc; Tue, 17 Aug 2010 17:47:33 +0200 Date: Tue, 17 Aug 2010 17:47:31 +0200 From: Mario Bachmann To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Re: xfsdump-3.0.4 problems Subject: Re: [PATCH] Re: xfsdump-3.0.4 problems Message-ID: <20100817174731.0061f5ec@x2.grafnetz> In-Reply-To: <20100817114550.GQ10429@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> <20100817095340.6b9ab8e2@x2.grafnetz> <20100817090534.GP10429@dastard> <20100817114550.GQ10429@dastard> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-MailScanner: Found to be clean X-Barracuda-Connect: mailout.rz.uni-frankfurt.de[141.2.22.233] X-Barracuda-Start-Time: 1282060619 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38235 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Am Tue, 17 Aug 2010 21:45:50 +1000 schrieb Dave Chinner : > On Tue, Aug 17, 2010 at 07:05:34PM +1000, Dave Chinner wrote: > > On Tue, Aug 17, 2010 at 09:53:40AM +0200, Mario Bachmann wrote: > > > Am Tue, 17 Aug 2010 17:13:37 +1000 > schrieb Dave Chinner : > > > > > Compiler: I use "gcc (Gentoo 4.4.4-r1 p1.0, pie-0.4.5) 4.4.4". > > > > > > > > > > Testing List (on one machine only): > > > > > works: x86_64, 2.6.34.4, xfsdump-3.0.1 > > > > > works: x86_64, 2.6.34.4, xfsdump-3.0.4 > > > > > failure: x86_64, 2.6.35.2, xfsdump-3.0.1 (worked only one time) > > > > > failure: x86_64, 2.6.35.2, xfsdump-3.0.4 > > > > > > > > Ok, that makes more sense - we changed the way bulkstat works in > > > > from 2.6.34 to 2.6.35 to correctly validate inode numbers being > > > > passed in via bulkstat, and hence files unlinked during the dump run > > > > could return EINVAL when validating the directory structure (as they > > > > no longer exist). Is you system completely idle while the dump > > > > is running, or are files being removed while the dump is running? > > > > > > I would call my system idle, when I use xfsdump. No rm or mv operations > > > are running while the dump. The first machine has a dual core 2.9 GHz and > > > 8 GB of RAM and the filesystems are not really big (~10GB used). The second > > > machine has a dual core 2 GHz and 2 GB of RAM. > > > > Yup, I have reproduced it here. What is strange is that xfs_fsr uses > > XFS_IOC_BULKSTAT_SINGLE, and that works fine on 2.6.35.2. The same > > ioctl calls from xfsdump are failing, though, so something funny is > > going on there. > > > > I'll look into it further. > > Ok, there is nothing wrong with the changes to the bulkstat code; > when all the inodes in the filesystem are hot in the inode cache > xfsdump succeeds. > > When I run xfs_fsr per file to exercise the XFS_IOC_BULKSTAT_SINGLE > path like so: > > $ sudo find /mnt/test -type f -exec xfs_fsr -d -v {} \; > > It succeeds without any bulkstat failures. A subsequent xfsdump > invocation then succeeds without failure, either. Clearly the find > is populating the inode cache for the subsequent bulkstat calls, > > Ok, so the reason this wasn't picked up is that xfs_fsr silently > ignores inodes that it gets an error from bulkstat on. > > and it looks like > Dropping caches then running xfsdump: > > $ sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" > $ sudo xfsdump -l0 -L "Test" - /dev/vda 2> t.t |gzip - > ~/dump_test.gz > > Results in failures. > > /me sighs > > My fault. I screwed up the btree lookup for the inode validation. > Can you test the patch below? > > Cheers, > > Dave Your patch works here with 2.6.35.2. :-) Mario From viiru@iki.fi Tue Aug 17 12:05:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45, T_MIME_NO_TEXT,T_TVD_MIME_NO_HEADERS autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7HH5C3A058871 for ; Tue, 17 Aug 2010 12:05:13 -0500 X-ASG-Debug-ID: 1282065295-423401d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from emh01.mail.saunalahti.fi (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 49577CCE98A for ; Tue, 17 Aug 2010 10:14:55 -0700 (PDT) Received: from emh01.mail.saunalahti.fi (emh01.mail.saunalahti.fi [62.142.5.107]) by cuda.sgi.com with ESMTP id M27smDO8YGRgtbCW for ; Tue, 17 Aug 2010 10:14:55 -0700 (PDT) Received: from saunalahti-vams (vs3-11.mail.saunalahti.fi [62.142.5.95]) by emh01-2.mail.saunalahti.fi (Postfix) with SMTP id 81F8B8C78A; Tue, 17 Aug 2010 20:05:39 +0300 (EEST) Received: from emh07.mail.saunalahti.fi ([62.142.5.117]) by vs3-11.mail.saunalahti.fi ([62.142.5.95]) with SMTP (gateway) id A0316C7B8A6; Tue, 17 Aug 2010 20:05:39 +0300 Received: from ryoko (ryoko.zyrain.org [217.152.200.219]) by emh07.mail.saunalahti.fi (Postfix) with ESMTP id 698C51C638B; Tue, 17 Aug 2010 20:05:36 +0300 (EEST) Received: by ryoko (Postfix, from userid 1000) id 0DADA280DD8A1; Tue, 17 Aug 2010 20:05:35 +0300 (EEST) From: Arto Jantunen To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 Subject: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 References: <878w47yn36.fsf@viiru.iki.fi> <20100816220941.GK10429@dastard> Date: Tue, 17 Aug 2010 20:05:35 +0300 In-Reply-To: <20100816220941.GK10429@dastard> (sfid-20100817_010956_232755_D2E8C8BA) (Dave Chinner's message of "Tue\, 17 Aug 2010 08\:09\:41 +1000") Message-ID: <87zkwlxj8g.fsf@viiru.iki.fi> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Antivirus: VAMS X-Barracuda-Connect: emh01.mail.saunalahti.fi[62.142.5.107] X-Barracuda-Start-Time: 1282065296 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA590 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_SA590 Custom Rule SA590 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --=-=-= Dave Chinner writes: >> I had a kernel BUG yesterday when running xfs_fsr on my Debian Unstable >> laptop. The kernel is upstream 2.6.35.1. I'm attaching the backtrace >> below. I haven't tried reproducing the problem yet and don't know if it is >> reproducible. I can try that, and test patches etc. if it is useful. Let me >> know if there is any other information I can provide to help with debugging. > > It's not obvious what has gone wrong at all - I haven't seen > anything like this in all my recent testing, so it's something new. > The first oops implies the inode has not been joined to the > transaction, but from code inspection I cannot see how that can > happen. I tried to reproduce the problem, and this time xfs_fsr finished without reporting errors, but the kernel output the following two lines (one of which is essentially empty): [ 6372.878945] Filesystem "sda4": Access to block zero in inode 67203861 start_block: 0 start_off: 0 blkcnt: 0 extent-state: 0 lastx: 2 [ 6372.878950] I decided to boot from a usb stick and try xfs_repair -n, I have attached the output of that. There were errors reported. Is this simply a case of random (possibly hardware related) fs corruption, or were the errors actually caused by the xfs_fsr run that crashed the system? Is there a way to tell from this data, is there anything else I can provide? -- Arto Jantunen --=-=-= Content-Disposition: inline; filename=xfsrep Content-Description: xfs_repair -n Phase 1 - find and verify superblock... Phase 2 - using internal log - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan (but don't clear) agi unlinked lists... error following ag 0 unlinked list error following ag 2 unlinked list error following ag 3 unlinked list - process known inodes and perform inode discovery... - agno = 0 b766fb90: Badness in key lookup (length) bp=(bno 208, len 16384 bytes) key=(bno 208, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 720, len 16384 bytes) key=(bno 720, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 752, len 16384 bytes) key=(bno 752, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 14224, len 16384 bytes) key=(bno 14224, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 15440, len 16384 bytes) key=(bno 15440, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 127952, len 16384 bytes) key=(bno 127952, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 178096, len 16384 bytes) key=(bno 178096, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 282256, len 16384 bytes) key=(bno 282256, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 283888, len 16384 bytes) key=(bno 283888, len 8192 bytes) b766fb90: Badness in key lookup (length) bp=(bno 380176, len 16384 bytes) key=(bno 380176, len 8192 bytes) - agno = 1 b6e6fb90: Badness in key lookup (length) bp=(bno 29853904, len 16384 bytes) key=(bno 29853904, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29854000, len 16384 bytes) key=(bno 29854000, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29854032, len 16384 bytes) key=(bno 29854032, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29854320, len 16384 bytes) key=(bno 29854320, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29855120, len 16384 bytes) key=(bno 29855120, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29855632, len 16384 bytes) key=(bno 29855632, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29860912, len 16384 bytes) key=(bno 29860912, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29861328, len 16384 bytes) key=(bno 29861328, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 29865328, len 16384 bytes) key=(bno 29865328, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 30082480, len 16384 bytes) key=(bno 30082480, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 30153392, len 16384 bytes) key=(bno 30153392, len 8192 bytes) b6e6fb90: Badness in key lookup (length) bp=(bno 30156400, len 16384 bytes) key=(bno 30156400, len 8192 bytes) - agno = 2 b4cecb90: Badness in key lookup (length) bp=(bno 44738944, len 16384 bytes) key=(bno 44738944, len 8192 bytes) b4cecb90: Badness in key lookup (length) bp=(bno 44756544, len 16384 bytes) key=(bno 44756544, len 8192 bytes) b4cecb90: Badness in key lookup (length) bp=(bno 44910976, len 16384 bytes) key=(bno 44910976, len 8192 bytes) b4cecb90: Badness in key lookup (length) bp=(bno 44917376, len 16384 bytes) key=(bno 44917376, len 8192 bytes) b4cecb90: Badness in key lookup (length) bp=(bno 44991680, len 16384 bytes) key=(bno 44991680, len 8192 bytes) b4cecb90: Badness in key lookup (length) bp=(bno 45189120, len 16384 bytes) key=(bno 45189120, len 8192 bytes) b4cecb90: Badness in key lookup (length) bp=(bno 45241856, len 16384 bytes) key=(bno 45241856, len 8192 bytes) - agno = 3 - agno = 4 - agno = 5 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - agno = 4 - agno = 5 No modify flag set, skipping phase 5 Phase 6 - check inode connectivity... - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... disconnected inode 475, would move to lost+found disconnected inode 1457, would move to lost+found disconnected inode 1462, would move to lost+found disconnected inode 1515, would move to lost+found disconnected inode 1527, would move to lost+found disconnected inode 12936, would move to lost+found disconnected inode 28462, would move to lost+found disconnected inode 28486, would move to lost+found disconnected inode 30897, would move to lost+found disconnected inode 30900, would move to lost+found disconnected inode 255910, would move to lost+found disconnected inode 356253, would move to lost+found disconnected inode 564550, would move to lost+found disconnected inode 564552, would move to lost+found disconnected inode 564558, would move to lost+found disconnected inode 564560, would move to lost+found disconnected inode 567818, would move to lost+found disconnected inode 760356, would move to lost+found disconnected inode 67167339, would move to lost+found disconnected inode 67167345, would move to lost+found disconnected inode 67167367, would move to lost+found disconnected inode 67167377, would move to lost+found disconnected inode 67167381, would move to lost+found disconnected inode 67167523, would move to lost+found disconnected inode 67167530, would move to lost+found disconnected inode 67167540, would move to lost+found disconnected inode 67167567, would move to lost+found disconnected inode 67167589, would move to lost+found disconnected inode 67167590, would move to lost+found disconnected inode 67167611, would move to lost+found disconnected inode 67167995, would move to lost+found disconnected inode 67168188, would move to lost+found disconnected inode 67168199, would move to lost+found disconnected inode 67169785, would move to lost+found disconnected inode 67169805, would move to lost+found disconnected inode 67170769, would move to lost+found disconnected inode 67170784, would move to lost+found disconnected inode 67181371, would move to lost+found disconnected inode 67181372, would move to lost+found disconnected inode 67181399, would move to lost+found disconnected inode 67182212, would move to lost+found disconnected inode 67190216, would move to lost+found disconnected inode 67624500, would move to lost+found disconnected inode 67766334, would move to lost+found disconnected inode 67772371, would move to lost+found disconnected inode 100667199, would move to lost+found disconnected inode 100702371, would move to lost+found disconnected inode 101011291, would move to lost+found disconnected inode 101024061, would move to lost+found disconnected inode 101026567, would move to lost+found disconnected inode 101172659, would move to lost+found disconnected inode 101567559, would move to lost+found disconnected inode 101567560, would move to lost+found disconnected inode 101567561, would move to lost+found disconnected inode 101567563, would move to lost+found disconnected inode 101673003, would move to lost+found disconnected inode 101673004, would move to lost+found Phase 7 - verify link counts... would have reset inode 475 nlinks from 0 to 1 would have reset inode 1457 nlinks from 0 to 1 would have reset inode 1462 nlinks from 0 to 1 would have reset inode 1515 nlinks from 0 to 1 would have reset inode 1527 nlinks from 0 to 1 would have reset inode 12936 nlinks from 0 to 1 would have reset inode 28462 nlinks from 0 to 1 would have reset inode 28486 nlinks from 0 to 1 would have reset inode 30897 nlinks from 0 to 1 would have reset inode 30900 nlinks from 0 to 1 would have reset inode 255910 nlinks from 0 to 1 would have reset inode 356253 nlinks from 0 to 1 would have reset inode 564550 nlinks from 0 to 1 would have reset inode 564552 nlinks from 0 to 1 would have reset inode 564558 nlinks from 0 to 1 would have reset inode 564560 nlinks from 0 to 1 would have reset inode 567818 nlinks from 0 to 1 would have reset inode 760356 nlinks from 0 to 1 would have reset inode 67167339 nlinks from 0 to 1 would have reset inode 67167345 nlinks from 0 to 1 would have reset inode 67167367 nlinks from 0 to 1 would have reset inode 67167377 nlinks from 0 to 1 would have reset inode 67167381 nlinks from 0 to 1 would have reset inode 67167523 nlinks from 0 to 1 would have reset inode 67167530 nlinks from 0 to 1 would have reset inode 67167540 nlinks from 0 to 1 would have reset inode 67167567 nlinks from 0 to 1 would have reset inode 67167589 nlinks from 0 to 1 would have reset inode 67167590 nlinks from 0 to 1 would have reset inode 67167611 nlinks from 0 to 1 would have reset inode 67167995 nlinks from 0 to 1 would have reset inode 67168188 nlinks from 0 to 1 would have reset inode 67168199 nlinks from 0 to 1 would have reset inode 67169785 nlinks from 0 to 1 would have reset inode 67169805 nlinks from 0 to 1 would have reset inode 67170769 nlinks from 0 to 1 would have reset inode 67170784 nlinks from 0 to 1 would have reset inode 67181371 nlinks from 0 to 1 would have reset inode 67181372 nlinks from 0 to 1 would have reset inode 67181399 nlinks from 0 to 1 would have reset inode 67182212 nlinks from 0 to 1 would have reset inode 67190216 nlinks from 0 to 1 would have reset inode 67624500 nlinks from 0 to 1 would have reset inode 67766334 nlinks from 0 to 1 would have reset inode 67772371 nlinks from 0 to 1 would have reset inode 100667199 nlinks from 0 to 1 would have reset inode 100702371 nlinks from 0 to 1 would have reset inode 101011291 nlinks from 0 to 1 would have reset inode 101024061 nlinks from 0 to 1 would have reset inode 101026567 nlinks from 0 to 1 would have reset inode 101172659 nlinks from 0 to 1 would have reset inode 101567559 nlinks from 0 to 1 would have reset inode 101567560 nlinks from 0 to 1 would have reset inode 101567561 nlinks from 0 to 1 would have reset inode 101567563 nlinks from 0 to 1 would have reset inode 101673003 nlinks from 0 to 1 would have reset inode 101673004 nlinks from 0 to 1 No modify flag set, skipping filesystem flush and exiting. --=-=-=-- From stan@hardwarefreak.com Tue Aug 17 13:15:33 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7HIFXLl061205 for ; Tue, 17 Aug 2010 13:15:33 -0500 X-ASG-Debug-ID: 1282068961-3e25028f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7C6C64E0293 for ; Tue, 17 Aug 2010 11:16:01 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id JE0jlnTuHIV445Fb for ; Tue, 17 Aug 2010 11:16:01 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 514886C310 for ; Tue, 17 Aug 2010 13:16:01 -0500 (CDT) Message-ID: <4C6AD1E0.2020304@hardwarefreak.com> Date: Tue, 17 Aug 2010 13:16:00 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [META-LIST] Now: perennial "reply-to-all" Subject: Re: [META-LIST] Now: perennial "reply-to-all" References: <201008131300.40536@zmi.at> <201008152052.59870@zmi.at> <4C68F8AE.2010006@hardwarefreak.com> <201008170732.10565@zmi.at> <20100817090150.GA1294@infradead.org> In-Reply-To: <20100817090150.GA1294@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1282068962 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0190 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38244 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig put forth on 8/17/2010 4:01 AM: > On Tue, Aug 17, 2010 at 07:32:02AM +0200, Michael Monnerie wrote: >> On Montag, 16. August 2010 Stan Hoeppner wrote: >>> Why does "everyone" on this list "reply-to-all" when 99% of the time >>> it is totally unnecessary, redundant, and potentially ruffles a >>> sender's feathers, as in this case? >> >> I'm also on several lists, but the only list where reply-to-all is used >> is this one - so I followed the way it's done here without having >> questioned why. > > It's done by all Lists in the Linux development universe, and it's the > only sane way to handle a list. We don't require people to subsribe to > post to the list, and keeping everyone in the To/Cc list means it > arrives at those people as well. In addition it allows subscribes that > are on tons of lists to prioritize discussions they're actually involved > in personally by getting a copy in the inbox that can be replied to ASAP > while also having an archived copy in the list folder. Every other way > to run a list is simply insane. Thanks Christoph. That makes sense. -- Stan From sandeen@redhat.com Tue Aug 17 14:39:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7HJdG92063740 for ; Tue, 17 Aug 2010 14:39:17 -0500 X-ASG-Debug-ID: 1282073985-0cea03620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 592E14E0468 for ; Tue, 17 Aug 2010 12:39:45 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id pD4lCIOjP9xfjHur for ; Tue, 17 Aug 2010 12:39:45 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o7HJdi7U014176 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 17 Aug 2010 15:39:45 -0400 Received: from liberator.lan (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o7HJdfna021842 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 17 Aug 2010 15:39:44 -0400 Message-ID: <4C6AE57D.7090807@redhat.com> Date: Tue, 17 Aug 2010 14:39:41 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: xfs-oss CC: ext4 development X-ASG-Orig-Subj: [PATCH] xfstests 241: run parallel dbench Subject: [PATCH] xfstests 241: run parallel dbench Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1282073986 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ext4 was corrupting inode table bitmaps due to a mishmash of atomic & nonatomic bitops. This got broken twice and fixed twice; let's add a test. On a 4-way box this reliably ends up with a corrupted filesystem if we get it wrong (upstream as of 2.6.35 at least is fine again) Signed-off-by: Eric Sandeen --- --- /dev/null +++ b/241 @@ -0,0 +1,60 @@ +#! /bin/bash +# FS QA Test No. 241 +# +# Run parallel dbench & check for filesystem corruption +# This corrupted ext4 inode bitmaps due to races at one point +# +# Copyright (c) 2010 Red Hat, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# +# creator +owner=sandeen@sandeen.net + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* +} + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +_supported_fs generic +_supported_os Linux + +[ "$DBENCH_PROG" = "" ] && _notrun "dbench not found" + +echo "Silence is golden." + +# real QA test starts here +rm -f $seq.full + +rm -rf $TEST_DIR/dbench +mkdir $TEST_DIR/dbench + +dbench -t 30 -D $TEST_DIR/dbench 4 >> $seq.full + +status=$? +exit diff --git a/common.config b/common.config index 926846b..04bdcf6 100644 --- a/common.config +++ b/common.config @@ -149,6 +149,7 @@ export XFS_PARALLEL_REPAIR64_PROG="`set_prog_path xfs_prepair64`" export XFSDUMP_PROG="`set_prog_path xfsdump`" export XFSRESTORE_PROG="`set_prog_path xfsrestore`" export XFSINVUTIL_PROG="`set_prog_path xfsinvutil`" +export DBENCH_PROG="`set_prog_path dbench`" # Generate a comparable xfsprogs version number in the form of # major * 10000 + minor * 100 + release diff --git a/common.dbench b/common.dbench index 026acdf..b59be71 100755 --- a/common.dbench +++ b/common.dbench @@ -17,7 +17,7 @@ # #check dbench is installed -if [ "`whereis dbench`" == "dbench:"]; then +if [ "`whereis dbench`" == "dbench:" ]; then echo $0 error dbench not installed. exit fi diff --git a/group b/group index afe7614..2baa538 100644 --- a/group +++ b/group @@ -354,3 +354,4 @@ deprecated 238 auto quick metadata ioctl 239 auto aio rw 240 auto aio quick rw +241 auto From SRS0+3QS0+78+fromorbit.com=david@internode.on.net Tue Aug 17 18:03:33 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7HN3Xjf072617 for ; Tue, 17 Aug 2010 18:03:33 -0500 X-ASG-Debug-ID: 1282086240-4e5301730000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B17094DF64D for ; Tue, 17 Aug 2010 16:04:01 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id Trd6ZzbBeZUCZz9G for ; Tue, 17 Aug 2010 16:04:01 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35592208-1927428 for multiple; Wed, 18 Aug 2010 08:33:59 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OlVCH-0004Wo-Ae; Wed, 18 Aug 2010 09:03:57 +1000 Date: Wed, 18 Aug 2010 09:03:57 +1000 From: Dave Chinner To: Arto Jantunen Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 Subject: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 Message-ID: <20100817230357.GG7362@dastard> References: <878w47yn36.fsf@viiru.iki.fi> <20100816220941.GK10429@dastard> <87zkwlxj8g.fsf@viiru.iki.fi> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87zkwlxj8g.fsf@viiru.iki.fi> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1282086242 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38264 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 08:05:35PM +0300, Arto Jantunen wrote: > Dave Chinner writes: > >> I had a kernel BUG yesterday when running xfs_fsr on my Debian Unstable > >> laptop. The kernel is upstream 2.6.35.1. I'm attaching the backtrace > >> below. I haven't tried reproducing the problem yet and don't know if it is > >> reproducible. I can try that, and test patches etc. if it is useful. Let me > >> know if there is any other information I can provide to help with debugging. > > > > It's not obvious what has gone wrong at all - I haven't seen > > anything like this in all my recent testing, so it's something new. > > The first oops implies the inode has not been joined to the > > transaction, but from code inspection I cannot see how that can > > happen. > > I tried to reproduce the problem, and this time xfs_fsr finished without > reporting errors, but the kernel output the following two lines (one of which > is essentially empty): > > [ 6372.878945] Filesystem "sda4": Access to block zero in inode 67203861 > start_block: 0 start_off: 0 blkcnt: 0 extent-state: 0 lastx: 2 > [ 6372.878950] That's a corrupt extent record - it's all zeros, and judging by the fact that it's only got 2 extents, it's probaly inline in the inode (i.e. the inode fork has been zeroed.) > > I decided to boot from a usb stick and try xfs_repair -n, I have attached the > output of that. There were errors reported. Is this simply a case of random > (possibly hardware related) fs corruption, or were the errors actually caused > by the xfs_fsr run that crashed the system? Is there a way to tell from this > data, is there anything else I can provide? .... > Phase 1 - find and verify superblock... > Phase 2 - using internal log > - scan filesystem freespace and inode maps... > - found root inode chunk > Phase 3 - for each AG... > - scan (but don't clear) agi unlinked lists... > error following ag 0 unlinked list > error following ag 2 unlinked list > error following ag 3 unlinked list Ok, so a corrupt set of inode unlinked lists > - process known inodes and perform inode discovery... > - agno = 0 > b766fb90: Badness in key lookup (length) > bp=(bno 208, len 16384 bytes) key=(bno 208, len 8192 bytes) > b766fb90: Badness in key lookup (length) > bp=(bno 720, len 16384 bytes) key=(bno 720, len 8192 bytes) [snip] > Phase 6 - check inode connectivity... > - traversing filesystem ... > - traversal finished ... > - moving disconnected inodes to lost+found ... > disconnected inode 475, would move to lost+found > disconnected inode 1457, would move to lost+found [snip] > Phase 7 - verify link counts... > would have reset inode 475 nlinks from 0 to 1 > would have reset inode 1457 nlinks from 0 to 1 Ok, so inode #457 is in the inode chunk at block 208, likewise inode #1457 is in the chunk at bno 720. This all implies that at some point there's been a problem with the second phase of the unlink procedure and freeing the inode cluster. It looks like the inode cluster has been partially freed (by the "Badness in key lookup" errors) as half of the chunk is free space and half appears to be in use. The freespace btree is clearly confused about this. Along with the inodes bein removed from the directory structure and the link counts being zero, this really does indicate that something went wrong with an inode cluster freeing transaction at some point. I can't see how normal execution would do this, so it leads me to think that transaction recovery might be involved. It smells like partial transaction recovery failures so my next question is this: what is your hardware, have you had any power loss events and are you using barriers? Cheers, Dave. -- Dave Chinner david@fromorbit.com From nathans@aconex.com Wed Aug 18 00:06:07 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_73,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7I566Ja091723 for ; Wed, 18 Aug 2010 00:06:07 -0500 X-ASG-Debug-ID: 1282108551-2ec3013d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0EBA8CD596B for ; Tue, 17 Aug 2010 22:15:51 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id eRfDFoXCQLBlmcRa for ; Tue, 17 Aug 2010 22:15:51 -0700 (PDT) Received: from postoffice.aconex.com (localhost [127.0.0.1]) by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id E92FB27F4F6 for ; Wed, 18 Aug 2010 15:06:32 +1000 (EST) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id Al2Xgm1LxeCAashA for ; Wed, 18 Aug 2010 15:06:32 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10]) by postoffice.aconex.com (Postfix) with ESMTP id D61E5A503C8 for ; Wed, 18 Aug 2010 15:06:32 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id D3B4ABC019F for ; Wed, 18 Aug 2010 15:06:32 +1000 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W5+rHFXhioMQ for ; Wed, 18 Aug 2010 15:06:28 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by gatekeeper.aconex.com (Postfix) with ESMTP id D19F5BC019E for ; Wed, 18 Aug 2010 15:06:28 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by mail-au.aconex.com (Postfix) with ESMTP id CBFF164B86F4 for ; Wed, 18 Aug 2010 15:06:28 +1000 (EST) Date: Wed, 18 Aug 2010 15:06:28 +1000 (EST) From: nathans@aconex.com Sender: nscott@aconex.com To: xfs Message-ID: <86828409.114311282107988740.JavaMail.root@mail-au.aconex.com> In-Reply-To: <472498892.114291282107960876.JavaMail.root@mail-au.aconex.com> X-ASG-Orig-Subj: Review: xfsprogs with libblkid enabled for Debian Subject: Review: xfsprogs with libblkid enabled for Debian MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_8094_1097065593.1282107988739" X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 5.0.18_GA_3011.RHEL5_64 (ZimbraWebClient - SAF3 (Mac)/5.0.18_GA_3011.RHEL5_64) X-Barracuda-Connect: mail.aconex.com[203.89.202.182] X-Barracuda-Start-Time: 1282108553 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Status: Clean ------=_Part_8094_1097065593.1282107988739 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi guys, Attached patch adds support for libblkid in Debian builds. There's a couple of other trivial things fixed up while the package was building - man page typos reported by lintian, fix source tarball generation (and deb build) when libblkid is enabled (*must* descend into libdisk to pick up sources) ... but its all pretty straight forward. I've checked that mkfs.xfs is linked as expected too. :) cheers. -- Nathan ------=_Part_8094_1097065593.1282107988739 Content-Type: text/x-patch; name=patchlet Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=patchlet diff --git a/Makefile b/Makefile index 9d98bb0..c40fb2c 100644 --- a/Makefile +++ b/Makefile @@ -39,14 +39,10 @@ LDIRDIRT = $(SRCDIR) LDIRT += $(SRCTAR) endif -LIB_SUBDIRS = libxfs libxlog libxcmd libhandle $(LDISK) +LIB_SUBDIRS = libxfs libxlog libxcmd libhandle libdisk TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \ mdrestore repair rtcp m4 man doc po debian -ifneq ($(ENABLE_BLKID), yes) -LIB_SUBDIRS += libdisk -endif - SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS) default: include/builddefs include/platform_defs.h diff --git a/VERSION b/VERSION index 40f0361..58a77e2 100644 --- a/VERSION +++ b/VERSION @@ -3,5 +3,5 @@ # PKG_MAJOR=3 PKG_MINOR=1 -PKG_REVISION=2 +PKG_REVISION=3 PKG_BUILD=1 diff --git a/debian/changelog b/debian/changelog index c1f3257..502c8e8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xfsprogs (3.1.3) unstable; urgency=low + + * New upstream release + * Enforce building with libblkid (closes: #593320) + + -- Nathan Scott Wed, 18 Aug 2010 13:34:59 +1000 + xfsprogs (3.1.2) unstable; urgency=low * New upstream release diff --git a/debian/control b/debian/control index 5130bab..0f437b2 100644 --- a/debian/control +++ b/debian/control @@ -3,15 +3,15 @@ Section: admin Priority: optional Maintainer: Nathan Scott Uploaders: Anibal Monsalve Salazar -Build-Depends: uuid-dev, autoconf, debhelper (>= 5), gettext, libtool, libreadline5-dev -Standards-Version: 3.8.1 +Build-Depends: uuid-dev, autoconf, debhelper (>= 5), gettext, libtool, libreadline5-dev, libblkid-dev +Standards-Version: 3.9.1 Homepage: http://oss.sgi.com/projects/xfs/ Package: xfsprogs Depends: ${shlibs:Depends}, ${misc:Depends} Provides: fsck-backend Suggests: xfsdump, acl, attr, quota -Conflicts: xfsdump (<< 3.0.0) +Breaks: xfsdump (<< 3.0.0) Architecture: any Description: Utilities for managing the XFS filesystem A set of commands to use the XFS filesystem, including mkfs.xfs. @@ -29,8 +29,8 @@ Description: Utilities for managing the XFS filesystem Package: xfslibs-dev Section: libdevel Priority: extra -Depends: libc6-dev | libc-dev, uuid-dev, xfsprogs (>= 3.0.0) -Conflicts: xfsprogs (<< 3.0.0) +Depends: libc6-dev | libc-dev, uuid-dev, xfsprogs (>= 3.0.0), ${misc:Depends} +Breaks: xfsprogs (<< 3.0.0) Architecture: any Description: XFS filesystem-specific static libraries and headers xfslibs-dev contains the libraries and header files needed to diff --git a/debian/rules b/debian/rules index 8c15dcb..a26195d 100755 --- a/debian/rules +++ b/debian/rules @@ -20,7 +20,7 @@ stdenv = @GZIP=-q; export GZIP; options = export DEBUG=-DNDEBUG DISTRIBUTION=debian \ INSTALL_USER=root INSTALL_GROUP=root \ - LOCAL_CONFIGURE_OPTIONS=--enable-readline=yes ; + LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes --enable-blkid=yes" ; diopts = $(options) \ export OPTIMIZER=-Os LOCAL_CONFIGURE_OPTIONS="--enable-gettext=no" ; checkdir = test -f debian/rules diff --git a/doc/CHANGES b/doc/CHANGES index 9a3b998..c433a50 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,3 +1,12 @@ +xfsprogs-3.1.3 (18 August 2010) + - Fix depend targets. + - Allow xfs_io resvsp command for foreign filesystems. + - Fix configure --prefix. + - Make xfs_db check for valid inode data pointer before dereferencing. + - Unbreak make update-po, permissions problem. + - Fix linking of libxfs. Fix librt detection (needs pthread). + - Add a platform_discard_blocks stub for GNU/kFreebsd. + xfsprogs-3.1.2 (6 May 2010) - Fix missing thread synchronization in xfs_repair duplicate extent tracking. diff --git a/libdisk/Makefile b/libdisk/Makefile index f56f3b4..b058a9f 100644 --- a/libdisk/Makefile +++ b/libdisk/Makefile @@ -20,7 +20,11 @@ else LSRCFILES = $(LINUX_DRIVERS) endif +ifneq ($(ENABLE_BLKID), yes) default: ltdepend $(LTLIBRARY) +else +default: +endif include $(BUILDRULES) diff --git a/man/man8/xfs_mdrestore.8 b/man/man8/xfs_mdrestore.8 index 0aadc4a..a7d2b68 100644 --- a/man/man8/xfs_mdrestore.8 +++ b/man/man8/xfs_mdrestore.8 @@ -38,7 +38,7 @@ can be destroyed. Shows restore progress on stdout. .SH DIAGNOSTICS .B xfs_mdrestore -returns an exit code of 0 if all the metadata is succesfully restored or +returns an exit code of 0 if all the metadata is successfully restored or 1 if an error occurs. .SH SEE ALSO .BR xfs_metadump (8), @@ -47,4 +47,4 @@ returns an exit code of 0 if all the metadata is succesfully restored or .BR xfs (5) .SH BUGS Email bug reports to -.BR xfs@oss.sgi.com . \ No newline at end of file +.BR xfs@oss.sgi.com . diff --git a/man/man8/xfs_metadump.8 b/man/man8/xfs_metadump.8 index f0ff1ae..9672713 100644 --- a/man/man8/xfs_metadump.8 +++ b/man/man8/xfs_metadump.8 @@ -98,11 +98,11 @@ copied. Disables obfuscation of file names and extended attributes. .TP .B \-w -Prints warnings of inconsistant metadata encountered to stderr. Bad metadata +Prints warnings of inconsistent metadata encountered to stderr. Bad metadata is still copied. .SH DIAGNOSTICS .B xfs_metadump -returns an exit code of 0 if all readable metadata is succesfully copied or +returns an exit code of 0 if all readable metadata is successfully copied or 1 if a write error occurs or a read error occurs and the .B \-e option used. ------=_Part_8094_1097065593.1282107988739-- From Kontoservice@webmaster.de Wed Aug 18 00:47:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7I5kxj2093764 for ; Wed, 18 Aug 2010 00:46:59 -0500 X-ASG-Debug-ID: 1282110447-144300710000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay.ubu.es (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AF6DE4327 for ; Tue, 17 Aug 2010 22:47:28 -0700 (PDT) Received: from relay.ubu.es (relay.ubu.es [193.146.160.3]) by cuda.sgi.com with ESMTP id LNt5O12Jl8vN4iYI for ; Tue, 17 Aug 2010 22:47:28 -0700 (PDT) Received: from correoweb.ubu.es (virtual512.curris.ubu.es [10.145.5.12]) by relay.ubu.es (ubumail) with ESMTP id 488724F9B9; Wed, 18 Aug 2010 07:47:25 +0200 (CEST) X-Virus-Status: Clean X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: clamav-milter 0.95.2 at virtual310 Received: from 93.186.164.42 (SquirrelMail authenticated user aalvarez@ubu.es) by correoweb.ubu.es with HTTP; Wed, 18 Aug 2010 07:47:25 +0200 (CEST) Message-ID: <65f12940326378ab0756612de5b48e5e.squirrel@correoweb.ubu.es> Date: Wed, 18 Aug 2010 07:47:25 +0200 (CEST) X-ASG-Orig-Subj: Webmail-Quote Subject: Webmail-Quote From: "Konto Webmaster" Reply-To: Kontoservice@webmaster.de User-Agent: SquirrelMail/1.4.17 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Barracuda-Connect: relay.ubu.es[193.146.160.3] X-Barracuda-Start-Time: 1282110448 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4967 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.58 X-Barracuda-Spam-Status: No, SCORE=1.58 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MISSING_HEADERS, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.58 MISSING_HEADERS Missing To: header 0.00 TO_CC_NONE No To: or Cc: header To: undisclosed-recipients:; Ihre Web-Mail-Quote hat die Menge Quote von 5 GB Sie derzeit bei 5,3 GB überschritten. So aktivieren und steigern Sie Ihre Webmail-Quote klicken Sie auf den Link unten. http://fd8.formdesk.com/musa/konto Andernfalls kann die Kündigung Ihres Webmail-Accounts führen. Vielen Dank und sorry für die Unannehmlichkeiten Localhost From viiru@iki.fi Wed Aug 18 03:48:01 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7I8m1TX102013 for ; Wed, 18 Aug 2010 03:48:01 -0500 X-ASG-Debug-ID: 1282121864-777901130000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from emh07.mail.saunalahti.fi (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E8885CD776A for ; Wed, 18 Aug 2010 01:57:45 -0700 (PDT) Received: from emh07.mail.saunalahti.fi (emh07.mail.saunalahti.fi [62.142.5.117]) by cuda.sgi.com with ESMTP id kCSSK1WmhdyvO5rH for ; Wed, 18 Aug 2010 01:57:45 -0700 (PDT) Received: from saunalahti-vams (vs3-11.mail.saunalahti.fi [62.142.5.95]) by emh07-2.mail.saunalahti.fi (Postfix) with SMTP id 0C84C18CF8C; Wed, 18 Aug 2010 11:48:26 +0300 (EEST) Received: from emh06.mail.saunalahti.fi ([62.142.5.116]) by vs3-11.mail.saunalahti.fi ([62.142.5.95]) with SMTP (gateway) id A07A4F09EFB; Wed, 18 Aug 2010 11:48:26 +0300 Received: from ryoko (ryoko.zyrain.org [217.152.200.219]) by emh06.mail.saunalahti.fi (Postfix) with ESMTP id E0F2DE51A8; Wed, 18 Aug 2010 11:48:22 +0300 (EEST) Received: by ryoko (Postfix, from userid 1000) id 8DAE2280DD8A1; Wed, 18 Aug 2010 11:48:22 +0300 (EEST) From: Arto Jantunen To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 Subject: Re: Kernel BUG when running xfs_fsr with 2.6.35.1 References: <878w47yn36.fsf@viiru.iki.fi> <20100816220941.GK10429@dastard> <87zkwlxj8g.fsf@viiru.iki.fi> <20100817230357.GG7362@dastard> Date: Wed, 18 Aug 2010 11:48:22 +0300 In-Reply-To: <20100817230357.GG7362@dastard> (sfid-20100818_020413_194941_2A487A57) (Dave Chinner's message of "Wed\, 18 Aug 2010 09\:03\:57 +1000") Message-ID: <87r5hwxq5l.fsf@viiru.iki.fi> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Antivirus: VAMS X-Barracuda-Connect: emh07.mail.saunalahti.fi[62.142.5.117] X-Barracuda-Start-Time: 1282121866 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38302 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner writes: > On Tue, Aug 17, 2010 at 08:05:35PM +0300, Arto Jantunen wrote: >> Dave Chinner writes: >> >> I had a kernel BUG yesterday when running xfs_fsr on my Debian Unstable >> >> laptop. The kernel is upstream 2.6.35.1. I'm attaching the backtrace >> >> below. I haven't tried reproducing the problem yet and don't know if it is >> >> reproducible. I can try that, and test patches etc. if it is useful. Let me >> >> know if there is any other information I can provide to help with debugging. >> > >> > It's not obvious what has gone wrong at all - I haven't seen >> > anything like this in all my recent testing, so it's something new. >> > The first oops implies the inode has not been joined to the >> > transaction, but from code inspection I cannot see how that can >> > happen. >> >> I tried to reproduce the problem, and this time xfs_fsr finished without >> reporting errors, but the kernel output the following two lines (one of which >> is essentially empty): >> >> [ 6372.878945] Filesystem "sda4": Access to block zero in inode 67203861 >> start_block: 0 start_off: 0 blkcnt: 0 extent-state: 0 lastx: 2 >> [ 6372.878950] > > That's a corrupt extent record - it's all zeros, and judging by the > fact that it's only got 2 extents, it's probaly inline in the inode > (i.e. the inode fork has been zeroed.) > >> >> I decided to boot from a usb stick and try xfs_repair -n, I have attached the >> output of that. There were errors reported. Is this simply a case of random >> (possibly hardware related) fs corruption, or were the errors actually caused >> by the xfs_fsr run that crashed the system? Is there a way to tell from this >> data, is there anything else I can provide? > .... > >> Phase 1 - find and verify superblock... >> Phase 2 - using internal log >> - scan filesystem freespace and inode maps... >> - found root inode chunk >> Phase 3 - for each AG... >> - scan (but don't clear) agi unlinked lists... >> error following ag 0 unlinked list >> error following ag 2 unlinked list >> error following ag 3 unlinked list > > Ok, so a corrupt set of inode unlinked lists > >> - process known inodes and perform inode discovery... >> - agno = 0 >> b766fb90: Badness in key lookup (length) >> bp=(bno 208, len 16384 bytes) key=(bno 208, len 8192 bytes) >> b766fb90: Badness in key lookup (length) >> bp=(bno 720, len 16384 bytes) key=(bno 720, len 8192 bytes) > > [snip] > >> Phase 6 - check inode connectivity... >> - traversing filesystem ... >> - traversal finished ... >> - moving disconnected inodes to lost+found ... >> disconnected inode 475, would move to lost+found >> disconnected inode 1457, would move to lost+found > > [snip] > >> Phase 7 - verify link counts... >> would have reset inode 475 nlinks from 0 to 1 >> would have reset inode 1457 nlinks from 0 to 1 > > Ok, so inode #457 is in the inode chunk at block 208, likewise > inode #1457 is in the chunk at bno 720. This all implies that > at some point there's been a problem with the second phase of > the unlink procedure and freeing the inode cluster. It looks like > the inode cluster has been partially freed (by the "Badness in key > lookup" errors) as half of the chunk is free space and half appears > to be in use. The freespace btree is clearly confused about this. > > Along with the inodes bein removed from the directory structure and > the link counts being zero, this really does indicate that something > went wrong with an inode cluster freeing transaction at some point. > > I can't see how normal execution would do this, so it leads me to > think that transaction recovery might be involved. It smells like > partial transaction recovery failures so my next question is this: > what is your hardware, have you had any power loss events and are > you using barriers? Could this corruption have been caused by having to reboot via sysrq after the original crash (with sync, umount, sync, reboot)? Other than that one, I don't remember having any power failures or such. The hardware is an Acer TravelMate 3040 laptop with a single SATA disk (120Gb IIRC). I haven't disabled barriers manually and am not using any layers between the fs and disk (dm or md or such), so as far as I understand barriers should be enabled (I'll check the kernel log when I'm at the machine again and send another mail tonight if that is not in fact the case). Any ideas if the original crash during xfs_fsr was caused by existing problems in the fs, or was the crash the cause of the problems seen now? Should I allow xfs_repair to fix the fs, or will that lose data that could be useful for debugging? -- Arto Jantunen From BATV+362a85bc611765c32391+2551+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 18 05:10:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IAACwZ106798 for ; Wed, 18 Aug 2010 05:10:12 -0500 X-ASG-Debug-ID: 1282126241-5fac003a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2CE20506F for ; Wed, 18 Aug 2010 03:10:41 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id aOYGLfaCgGwNZHEw for ; Wed, 18 Aug 2010 03:10:41 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OlfbQ-0006DU-99; Wed, 18 Aug 2010 10:10:36 +0000 Date: Wed, 18 Aug 2010 06:10:36 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Mario Bachmann , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Re: xfsdump-3.0.4 problems Subject: Re: [PATCH] Re: xfsdump-3.0.4 problems Message-ID: <20100818101036.GA14467@infradead.org> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> <20100817095340.6b9ab8e2@x2.grafnetz> <20100817090534.GP10429@dastard> <20100817114550.GQ10429@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100817114550.GQ10429@dastard> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282126242 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > xfs: fix untrusted inode number lookup > > From: Dave Chinner > > Commit 7124fe0a5b619d65b739477b3b55a20bf805b06d ("xfs: validate untrusted inode > numbers during lookup") changes the inode lookup code to do btree lookups for > untrusted inode numbers. This change made an invalid assumption about the > alignment of inodes and hence incorrectly calculated the first inode in the > cluster. As a result, some inode numbers were being incorrectly considered > invalid when they were actually valid. > > The issue was not picked up by the xfstests suite because it always runs fsr > and dump (the two utilities that utilise the bulkstat interface) on cache hot > inodes and hence the lookup code in the cold cache path was not sufficiently > exercised to uncover this intermittent problem. > > Fix the issue by relaxing the btree lookup criteria and then checking if the > record returned contains the inode number we are lookup for. If it we get an > incorrect record, then the inode number is invalid. Looks good and fixes the dump issues I've seen in xfstests. Reviewed-by: Christoph Hellwig From SRS0+Y12f+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBa4wH110367 for ; Wed, 18 Aug 2010 06:36:04 -0500 X-ASG-Debug-ID: 1282131391-5fa8022e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5CC3F55AA for ; Wed, 18 Aug 2010 04:36:32 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id Gw9pDbeENTvRDXee for ; Wed, 18 Aug 2010 04:36:32 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35480603-1927428 for ; Wed, 18 Aug 2010 21:06:30 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OlgwW-0005Ka-PM for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:28 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OlgwS-0007np-RT for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:24 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/8] xfs: unlock items before allowing the CIL to commit Subject: [PATCH 1/8] xfs: unlock items before allowing the CIL to commit Date: Wed, 18 Aug 2010 21:36:12 +1000 Message-Id: <1282131379-29932-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1282131393 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner When we commit a transaction using delayed logging, we need to unlock the items in the transaciton before we unlock the CIL context and allow it to be checkpointed. If we unlock them after we release the CIl context lock, the CIL can checkpoint and complete before we free the log items. This breaks stale buffer item unlock and unpin processing as there is an implicit assumption that the unlock will occur before the unpin. Also, some log items need to store the LSN of the transaction commit in the item (inodes and EFIs) and so can race with other transaction completions if we don't prevent the CIL from checkpointing before the unlock occurs. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/xfs_log_cil.c | 14 ++++++++++++++ fs/xfs/xfs_trans.c | 5 +---- fs/xfs/xfs_trans_priv.h | 3 ++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c index 31e4ea2..ef8e7d9 100644 --- a/fs/xfs/xfs_log_cil.c +++ b/fs/xfs/xfs_log_cil.c @@ -377,9 +377,23 @@ xfs_log_commit_cil( xfs_log_done(mp, tp->t_ticket, NULL, log_flags); xfs_trans_unreserve_and_mod_sb(tp); + /* + * Once all the items of the transaction have been copied to the CIL, + * the items can be unlocked and freed. + * + * This needs to be done before we drop the CIL context lock because we + * have to update state in the log items and unlock them before they go + * to disk. If we don't, then the CIL checkpoint can race with us and + * we can run checkpoint completion before we've updated and unlocked + * the log items. This affects (at least) processing of stale buffers, + * inodes and EFIs. + */ + xfs_trans_free_items(tp, *commit_lsn, 0); + /* check for background commit before unlock */ if (log->l_cilp->xc_ctx->space_used > XLOG_CIL_SPACE_LIMIT(log)) push = 1; + up_read(&log->l_cilp->xc_ctx_lock); /* diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index fdca741..1c47eda 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1167,7 +1167,7 @@ xfs_trans_del_item( * Unlock all of the items of a transaction and free all the descriptors * of that transaction. */ -STATIC void +void xfs_trans_free_items( struct xfs_trans *tp, xfs_lsn_t commit_lsn, @@ -1653,9 +1653,6 @@ xfs_trans_commit_cil( return error; current_restore_flags_nested(&tp->t_pflags, PF_FSTRANS); - - /* xfs_trans_free_items() unlocks them first */ - xfs_trans_free_items(tp, *commit_lsn, 0); xfs_trans_free(tp); return 0; } diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index e2d93d8..62da86c 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -25,7 +25,8 @@ struct xfs_trans; void xfs_trans_add_item(struct xfs_trans *, struct xfs_log_item *); void xfs_trans_del_item(struct xfs_log_item *); - +void xfs_trans_free_items(struct xfs_trans *tp, xfs_lsn_t commit_lsn, + int flags); void xfs_trans_item_committed(struct xfs_log_item *lip, xfs_lsn_t commit_lsn, int aborted); void xfs_trans_unreserve_and_mod_sb(struct xfs_trans *tp); -- 1.7.1 From SRS0+Fw7C+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBa4fK110371 for ; Wed, 18 Aug 2010 06:36:04 -0500 X-ASG-Debug-ID: 1282131950-080b008a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C1F1615D51FF for ; Wed, 18 Aug 2010 04:45:50 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id t7nBkfkhGl0blfLw for ; Wed, 18 Aug 2010 04:45:50 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35687654-1927428 for ; Wed, 18 Aug 2010 21:06:30 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OlgwW-0005Kb-UR for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:28 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OlgwS-0007nr-Tp for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:24 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/8] xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE Subject: [PATCH 2/8] xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE Date: Wed, 18 Aug 2010 21:36:13 +1000 Message-Id: <1282131379-29932-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1282131952 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Under heavy load parallel metadata loads (e.g. dbench), we can fail to mark all the inodes in a cluster being freed as XFS_ISTALE as we skip inodes we cannot get the XFS_ILOCK_EXCL or the flush lock on. When this happens and the inode cluster buffer has already been marked stale and freed, inode reclaim can try to write the inode out as it is dirty and not marked stale. This can result in writing th metadata to an freed extent, or in the case it has already been overwritten trigger a magic number check failure and return an EUCLEAN error such as: Filesystem "ram0": inode 0x442ba1 background reclaim flush failed with 117 Fix this by ensuring that we hoover up all in memory inodes in the cluster and mark them XFS_ISTALE when freeing the cluster. Signed-off-by: Dave Chinner --- fs/xfs/xfs_inode.c | 49 ++++++++++++++++++++++++++----------------------- 1 files changed, 26 insertions(+), 23 deletions(-) diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 68415cb..34798f3 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -1914,6 +1914,11 @@ xfs_iunlink_remove( return 0; } +/* + * A big issue when freeing the inode cluster is is that we _cannot_ skip any + * inodes that are in memory - they all must be marked stale and attached to + * the cluster buffer. + */ STATIC void xfs_ifree_cluster( xfs_inode_t *free_ip, @@ -1945,8 +1950,6 @@ xfs_ifree_cluster( } for (j = 0; j < nbufs; j++, inum += ninodes) { - int found = 0; - blkno = XFS_AGB_TO_DADDR(mp, XFS_INO_TO_AGNO(mp, inum), XFS_INO_TO_AGBNO(mp, inum)); @@ -1965,7 +1968,9 @@ xfs_ifree_cluster( /* * Walk the inodes already attached to the buffer and mark them * stale. These will all have the flush locks held, so an - * in-memory inode walk can't lock them. + * in-memory inode walk can't lock them. By marking them all + * stale first, we will not attempt to lock them in the loop + * below as the XFS_ISTALE flag will be set. */ lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); while (lip) { @@ -1977,11 +1982,11 @@ xfs_ifree_cluster( &iip->ili_flush_lsn, &iip->ili_item.li_lsn); xfs_iflags_set(iip->ili_inode, XFS_ISTALE); - found++; } lip = lip->li_bio_list; } + /* * For each inode in memory attempt to add it to the inode * buffer and set it up for being staled on buffer IO @@ -1993,6 +1998,7 @@ xfs_ifree_cluster( * even trying to lock them. */ for (i = 0; i < ninodes; i++) { +retry: read_lock(&pag->pag_ici_lock); ip = radix_tree_lookup(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, (inum + i))); @@ -2003,38 +2009,36 @@ xfs_ifree_cluster( continue; } - /* don't try to lock/unlock the current inode */ + /* + * Don't try to lock/unlock the current inode, but we + * _cannot_ skip the other inodes that we did not find + * in the list attached to the buffer and are not + * already marked stale. If we can't lock it, back off + * and retry. + */ if (ip != free_ip && !xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) { read_unlock(&pag->pag_ici_lock); - continue; + delay(1); + goto retry; } read_unlock(&pag->pag_ici_lock); - if (!xfs_iflock_nowait(ip)) { - if (ip != free_ip) - xfs_iunlock(ip, XFS_ILOCK_EXCL); - continue; - } - + xfs_iflock(ip); xfs_iflags_set(ip, XFS_ISTALE); - if (xfs_inode_clean(ip)) { - ASSERT(ip != free_ip); - xfs_ifunlock(ip); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - continue; - } + /* + * we don't need to attach clean inodes or those only + * with unlogged changes (which we throw away, anyway). + */ iip = ip->i_itemp; - if (!iip) { - /* inode with unlogged changes only */ + if (!iip || xfs_inode_clean(ip)) { ASSERT(ip != free_ip); ip->i_update_core = 0; xfs_ifunlock(ip); xfs_iunlock(ip, XFS_ILOCK_EXCL); continue; } - found++; iip->ili_last_fields = iip->ili_format.ilf_fields; iip->ili_format.ilf_fields = 0; @@ -2049,8 +2053,7 @@ xfs_ifree_cluster( xfs_iunlock(ip, XFS_ILOCK_EXCL); } - if (found) - xfs_trans_stale_inode_buf(tp, bp); + xfs_trans_stale_inode_buf(tp, bp); xfs_trans_binval(tp, bp); } -- 1.7.1 From SRS0+Y12f+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBa31Q110365 for ; Wed, 18 Aug 2010 06:36:04 -0500 X-ASG-Debug-ID: 1282131391-5fbc020c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 583D055A7 for ; Wed, 18 Aug 2010 04:36:32 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id KniA7Vaw6a9kCnBh for ; Wed, 18 Aug 2010 04:36:32 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35480604-1927428 for ; Wed, 18 Aug 2010 21:06:31 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OlgwW-0005KZ-Ou for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:28 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OlgwS-0007nn-PG for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:24 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/8] xfs: current pending patches Subject: [PATCH 0/8] xfs: current pending patches Date: Wed, 18 Aug 2010 21:36:11 +1000 Message-Id: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1282131393 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Folks, This is the current list of patches that I have for the main XFS tree. Some of the patches have been reviewed, the ones that haven't got reviewed-by tags have been updated after the last round of review and need another pass. The patches are also available at: git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev.git for-oss Note that this branch is currently based on 2.6.36-rc1, so if you pull from it and try it you are likely to have a kernel that hangs in the writeback code. I will rebase it on 2.6.35 once I get everything reviewed and have to update all the tags. Cheers, Dave. From SRS0+hIMp+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBa4BY110383 for ; Wed, 18 Aug 2010 06:36:05 -0500 X-ASG-Debug-ID: 1282131950-7b8f01bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C667C15D5204 for ; Wed, 18 Aug 2010 04:45:50 -0700 (PDT) Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id wK3OKFtyYQDzX5W5 for ; Wed, 18 Aug 2010 04:45:50 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35523126-1927428 for ; Wed, 18 Aug 2010 21:06:30 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OlgwW-0005Ke-Va for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:29 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OlgwS-0007nu-W7 for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:24 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/8] xfs: Reduce log force overhead for delayed logging Subject: [PATCH 3/8] xfs: Reduce log force overhead for delayed logging Date: Wed, 18 Aug 2010 21:36:14 +1000 Message-Id: <1282131379-29932-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103] X-Barracuda-Start-Time: 1282131952 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Delayed logging adds some serialisation to the log force process to ensure that it does not deference a bad commit context structure when determining if a CIL push is necessary or not. It does this by grabing the CIL context lock exclusively, then dropping it before pushing the CIL if necessary. This causes serialisation of all log forces and pushes regardless of whether a force is necessary or not. As a result fsync heavy workloads (like dbench) can be significantly slower with delayed logging than without. To avoid this penalty, copy the current sequence from the context to the CIL structure when they are swapped. This allows us to do unlocked checks on the current sequence without having to worry about dereferencing context structures that may have already been freed. Hence we can remove the CIL context locking in the forcing code and only call into the push code if the current context matches the sequence we need to force. By passing the sequence into the push code, we can check the sequence again once we have the CIL lock held exclusive and abort if the sequence has already been pushed. This avoids a lock round-trip and unnecessary CIL pushes when we have racing push calls. The result is that the regression in dbench performance goes away - this change improves dbench performance on a ramdisk from ~2100MB/s to ~2500MB/s. This compares favourably to not using delayed logging which retuns ~2500MB/s for the same workload. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/xfs_log.c | 7 +- fs/xfs/xfs_log_cil.c | 245 ++++++++++++++++++++++++++----------------------- fs/xfs/xfs_log_priv.h | 13 ++- 3 files changed, 147 insertions(+), 118 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 925d572..33f718f 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -3015,7 +3015,8 @@ _xfs_log_force( XFS_STATS_INC(xs_log_force); - xlog_cil_push(log, 1); + if (log->l_cilp) + xlog_cil_force(log); spin_lock(&log->l_icloglock); @@ -3167,7 +3168,7 @@ _xfs_log_force_lsn( XFS_STATS_INC(xs_log_force); if (log->l_cilp) { - lsn = xlog_cil_push_lsn(log, lsn); + lsn = xlog_cil_force_lsn(log, lsn); if (lsn == NULLCOMMITLSN) return 0; } @@ -3724,7 +3725,7 @@ xfs_log_force_umount( * call below. */ if (!logerror && (mp->m_flags & XFS_MOUNT_DELAYLOG)) - xlog_cil_push(log, 1); + xlog_cil_force(log); /* * We must hold both the GRANT lock and the LOG lock, diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c index ef8e7d9..9768f24 100644 --- a/fs/xfs/xfs_log_cil.c +++ b/fs/xfs/xfs_log_cil.c @@ -68,6 +68,7 @@ xlog_cil_init( ctx->sequence = 1; ctx->cil = cil; cil->xc_ctx = ctx; + cil->xc_current_sequence = ctx->sequence; cil->xc_log = log; log->l_cilp = cil; @@ -321,94 +322,6 @@ xlog_cil_free_logvec( } /* - * Commit a transaction with the given vector to the Committed Item List. - * - * To do this, we need to format the item, pin it in memory if required and - * account for the space used by the transaction. Once we have done that we - * need to release the unused reservation for the transaction, attach the - * transaction to the checkpoint context so we carry the busy extents through - * to checkpoint completion, and then unlock all the items in the transaction. - * - * For more specific information about the order of operations in - * xfs_log_commit_cil() please refer to the comments in - * xfs_trans_commit_iclog(). - * - * Called with the context lock already held in read mode to lock out - * background commit, returns without it held once background commits are - * allowed again. - */ -int -xfs_log_commit_cil( - struct xfs_mount *mp, - struct xfs_trans *tp, - struct xfs_log_vec *log_vector, - xfs_lsn_t *commit_lsn, - int flags) -{ - struct log *log = mp->m_log; - int log_flags = 0; - int push = 0; - - if (flags & XFS_TRANS_RELEASE_LOG_RES) - log_flags = XFS_LOG_REL_PERM_RESERV; - - if (XLOG_FORCED_SHUTDOWN(log)) { - xlog_cil_free_logvec(log_vector); - return XFS_ERROR(EIO); - } - - /* lock out background commit */ - down_read(&log->l_cilp->xc_ctx_lock); - xlog_cil_format_items(log, log_vector, tp->t_ticket, commit_lsn); - - /* check we didn't blow the reservation */ - if (tp->t_ticket->t_curr_res < 0) - xlog_print_tic_res(log->l_mp, tp->t_ticket); - - /* attach the transaction to the CIL if it has any busy extents */ - if (!list_empty(&tp->t_busy)) { - spin_lock(&log->l_cilp->xc_cil_lock); - list_splice_init(&tp->t_busy, - &log->l_cilp->xc_ctx->busy_extents); - spin_unlock(&log->l_cilp->xc_cil_lock); - } - - tp->t_commit_lsn = *commit_lsn; - xfs_log_done(mp, tp->t_ticket, NULL, log_flags); - xfs_trans_unreserve_and_mod_sb(tp); - - /* - * Once all the items of the transaction have been copied to the CIL, - * the items can be unlocked and freed. - * - * This needs to be done before we drop the CIL context lock because we - * have to update state in the log items and unlock them before they go - * to disk. If we don't, then the CIL checkpoint can race with us and - * we can run checkpoint completion before we've updated and unlocked - * the log items. This affects (at least) processing of stale buffers, - * inodes and EFIs. - */ - xfs_trans_free_items(tp, *commit_lsn, 0); - - /* check for background commit before unlock */ - if (log->l_cilp->xc_ctx->space_used > XLOG_CIL_SPACE_LIMIT(log)) - push = 1; - - up_read(&log->l_cilp->xc_ctx_lock); - - /* - * We need to push CIL every so often so we don't cache more than we - * can fit in the log. The limit really is that a checkpoint can't be - * more than half the log (the current checkpoint is not allowed to - * overwrite the previous checkpoint), but commit latency and memory - * usage limit this to a smaller size in most cases. - */ - if (push) - xlog_cil_push(log, 0); - return 0; -} - -/* * Mark all items committed and clear busy extents. We free the log vector * chains in a separate pass so that we unpin the log items as quickly as * possible. @@ -441,13 +354,23 @@ xlog_cil_committed( } /* - * Push the Committed Item List to the log. If the push_now flag is not set, - * then it is a background flush and so we can chose to ignore it. + * Push the Committed Item List to the log. If @push_seq flag is zero, then it + * is a background flush and so we can chose to ignore it. Otherwise, if the + * current sequence is the same as @push_seq we need to do a flush. If + * @push_seq is less than the current sequence, then it has already been + * flushed and we don't need to do anything - the caller will wait for it to + * complete if necessary. + * + * @push_seq is a value rather than a flag because that allows us to do an + * unlocked check of the sequence number for a match. Hence we can allows log + * forces to run racily and not issue pushes for the same sequence twice. If we + * get a race between multiple pushes for the same sequence they will block on + * the first one and then abort, hence avoiding needless pushes. */ -int +STATIC int xlog_cil_push( struct log *log, - int push_now) + xfs_lsn_t push_seq) { struct xfs_cil *cil = log->l_cilp; struct xfs_log_vec *lv; @@ -467,12 +390,14 @@ xlog_cil_push( if (!cil) return 0; + ASSERT(!push_seq || push_seq <= cil->xc_ctx->sequence); + new_ctx = kmem_zalloc(sizeof(*new_ctx), KM_SLEEP|KM_NOFS); new_ctx->ticket = xlog_cil_ticket_alloc(log); /* lock out transaction commit, but don't block on background push */ if (!down_write_trylock(&cil->xc_ctx_lock)) { - if (!push_now) + if (!push_seq) goto out_free_ticket; down_write(&cil->xc_ctx_lock); } @@ -483,7 +408,11 @@ xlog_cil_push( goto out_skip; /* check for spurious background flush */ - if (!push_now && cil->xc_ctx->space_used < XLOG_CIL_SPACE_LIMIT(log)) + if (!push_seq && cil->xc_ctx->space_used < XLOG_CIL_SPACE_LIMIT(log)) + goto out_skip; + + /* check for a previously pushed seqeunce */ + if (push_seq < cil->xc_ctx->sequence) goto out_skip; /* @@ -529,6 +458,13 @@ xlog_cil_push( cil->xc_ctx = new_ctx; /* + * mirror the new sequence into the cil structure so that we can do + * unlocked checks against the current sequence in log forces without + * risking deferencing a freed context pointer. + */ + cil->xc_current_sequence = new_ctx->sequence; + + /* * The switch is now done, so we can drop the context lock and move out * of a shared context. We can't just go straight to the commit record, * though - we need to synchronise with previous and future commits so @@ -640,6 +576,94 @@ out_abort: } /* + * Commit a transaction with the given vector to the Committed Item List. + * + * To do this, we need to format the item, pin it in memory if required and + * account for the space used by the transaction. Once we have done that we + * need to release the unused reservation for the transaction, attach the + * transaction to the checkpoint context so we carry the busy extents through + * to checkpoint completion, and then unlock all the items in the transaction. + * + * For more specific information about the order of operations in + * xfs_log_commit_cil() please refer to the comments in + * xfs_trans_commit_iclog(). + * + * Called with the context lock already held in read mode to lock out + * background commit, returns without it held once background commits are + * allowed again. + */ +int +xfs_log_commit_cil( + struct xfs_mount *mp, + struct xfs_trans *tp, + struct xfs_log_vec *log_vector, + xfs_lsn_t *commit_lsn, + int flags) +{ + struct log *log = mp->m_log; + int log_flags = 0; + int push = 0; + + if (flags & XFS_TRANS_RELEASE_LOG_RES) + log_flags = XFS_LOG_REL_PERM_RESERV; + + if (XLOG_FORCED_SHUTDOWN(log)) { + xlog_cil_free_logvec(log_vector); + return XFS_ERROR(EIO); + } + + /* lock out background commit */ + down_read(&log->l_cilp->xc_ctx_lock); + xlog_cil_format_items(log, log_vector, tp->t_ticket, commit_lsn); + + /* check we didn't blow the reservation */ + if (tp->t_ticket->t_curr_res < 0) + xlog_print_tic_res(log->l_mp, tp->t_ticket); + + /* attach the transaction to the CIL if it has any busy extents */ + if (!list_empty(&tp->t_busy)) { + spin_lock(&log->l_cilp->xc_cil_lock); + list_splice_init(&tp->t_busy, + &log->l_cilp->xc_ctx->busy_extents); + spin_unlock(&log->l_cilp->xc_cil_lock); + } + + tp->t_commit_lsn = *commit_lsn; + xfs_log_done(mp, tp->t_ticket, NULL, log_flags); + xfs_trans_unreserve_and_mod_sb(tp); + + /* + * Once all the items of the transaction have been copied to the CIL, + * the items can be unlocked and freed. + * + * This needs to be done before we drop the CIL context lock because we + * have to update state in the log items and unlock them before they go + * to disk. If we don't, then the CIL checkpoint can race with us and + * we can run checkpoint completion before we've updated and unlocked + * the log items. This affects (at least) processing of stale buffers, + * inodes and EFIs. + */ + xfs_trans_free_items(tp, *commit_lsn, 0); + + /* check for background commit before unlock */ + if (log->l_cilp->xc_ctx->space_used > XLOG_CIL_SPACE_LIMIT(log)) + push = 1; + + up_read(&log->l_cilp->xc_ctx_lock); + + /* + * We need to push CIL every so often so we don't cache more than we + * can fit in the log. The limit really is that a checkpoint can't be + * more than half the log (the current checkpoint is not allowed to + * overwrite the previous checkpoint), but commit latency and memory + * usage limit this to a smaller size in most cases. + */ + if (push) + xlog_cil_push(log, 0); + return 0; +} + +/* * Conditionally push the CIL based on the sequence passed in. * * We only need to push if we haven't already pushed the sequence @@ -653,39 +677,34 @@ out_abort: * commit lsn is there. It'll be empty, so this is broken for now. */ xfs_lsn_t -xlog_cil_push_lsn( +xlog_cil_force_lsn( struct log *log, - xfs_lsn_t push_seq) + xfs_lsn_t sequence) { struct xfs_cil *cil = log->l_cilp; struct xfs_cil_ctx *ctx; xfs_lsn_t commit_lsn = NULLCOMMITLSN; -restart: - down_write(&cil->xc_ctx_lock); - ASSERT(push_seq <= cil->xc_ctx->sequence); - - /* check to see if we need to force out the current context */ - if (push_seq == cil->xc_ctx->sequence) { - up_write(&cil->xc_ctx_lock); - xlog_cil_push(log, 1); - goto restart; - } + ASSERT(sequence <= cil->xc_current_sequence); + + /* + * check to see if we need to force out the current context. + * xlog_cil_push() handles racing pushes for the same sequence, + * so no need to deal with it here. + */ + if (sequence == cil->xc_current_sequence) + xlog_cil_push(log, sequence); /* * See if we can find a previous sequence still committing. - * We can drop the flush lock as soon as we have the cil lock - * because we are now only comparing contexts protected by - * the cil lock. - * * We need to wait for all previous sequence commits to complete * before allowing the force of push_seq to go ahead. Hence block * on commits for those as well. */ +restart: spin_lock(&cil->xc_cil_lock); - up_write(&cil->xc_ctx_lock); list_for_each_entry(ctx, &cil->xc_committing, committing) { - if (ctx->sequence > push_seq) + if (ctx->sequence > sequence) continue; if (!ctx->commit_lsn) { /* @@ -695,7 +714,7 @@ restart: sv_wait(&cil->xc_commit_wait, 0, &cil->xc_cil_lock, 0); goto restart; } - if (ctx->sequence != push_seq) + if (ctx->sequence != sequence) continue; /* found it! */ commit_lsn = ctx->commit_lsn; diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index 8c07261..ced52b9 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -422,6 +422,7 @@ struct xfs_cil { struct rw_semaphore xc_ctx_lock; struct list_head xc_committing; sv_t xc_commit_wait; + xfs_lsn_t xc_current_sequence; }; /* @@ -562,8 +563,16 @@ int xlog_cil_init(struct log *log); void xlog_cil_init_post_recovery(struct log *log); void xlog_cil_destroy(struct log *log); -int xlog_cil_push(struct log *log, int push_now); -xfs_lsn_t xlog_cil_push_lsn(struct log *log, xfs_lsn_t push_sequence); +/* + * CIL force routines + */ +xfs_lsn_t xlog_cil_force_lsn(struct log *log, xfs_lsn_t sequence); + +static inline void +xlog_cil_force(struct log *log) +{ + xlog_cil_force_lsn(log, log->l_cilp->xc_current_sequence); +} /* * Unmount record type is used as a pseudo transaction type for the ticket. -- 1.7.1 From SRS0+axlI+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_FRT_FREE autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBaDR6110432 for ; Wed, 18 Aug 2010 06:36:13 -0500 X-ASG-Debug-ID: 1282131401-53a601870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 045791E4AE00 for ; Wed, 18 Aug 2010 04:36:41 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id 90xjb2cz62RfDvko for ; Wed, 18 Aug 2010 04:36:41 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35775345-1927428 for ; Wed, 18 Aug 2010 21:06:40 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1Olgwh-0005Kr-2m for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:39 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1Olgwd-0007o0-4e for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:35 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/8] xfs: ensure f_ffree returned by statfs() is non-negative Subject: [PATCH 5/8] xfs: ensure f_ffree returned by statfs() is non-negative Date: Wed, 18 Aug 2010 21:36:16 +1000 Message-Id: <1282131379-29932-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1282131403 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Stuart Brodsky Because of delayed updates to sb_icount field in the super block, it is possible to allocate over maxicount number of inodes. This causes the arithmetic to calculate a negative number of free inodes in user commands like df or stat -f. Since maxicount is a somewhat arbitrary number, a slight over allocation is not critical but user commands should be displayed as 0 or greater and never go negative. To do this the value in the stats buffer f_ffree is capped to never go negative. [ Modified to use max_t as per Christoph's comment. ] Signed-off-by: Stu Brodsky Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index d09cd14..a4e0797 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1226,6 +1226,7 @@ xfs_fs_statfs( struct xfs_inode *ip = XFS_I(dentry->d_inode); __uint64_t fakeinos, id; xfs_extlen_t lsize; + __int64_t ffree; statp->f_type = XFS_SB_MAGIC; statp->f_namelen = MAXNAMELEN - 1; @@ -1249,7 +1250,11 @@ xfs_fs_statfs( statp->f_files = min_t(typeof(statp->f_files), statp->f_files, mp->m_maxicount); - statp->f_ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); + + /* make sure statp->f_ffree does not underflow */ + ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); + statp->f_ffree = max_t(__int64_t, ffree, 0); + spin_unlock(&mp->m_sb_lock); if ((ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) || -- 1.7.1 From SRS0+Y12f+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBaCD4110424 for ; Wed, 18 Aug 2010 06:36:12 -0500 X-ASG-Debug-ID: 1282131400-5fc2022b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3DE1555BC for ; Wed, 18 Aug 2010 04:36:41 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id fauqX07uO34MEKJD for ; Wed, 18 Aug 2010 04:36:41 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35480615-1927428 for ; Wed, 18 Aug 2010 21:06:40 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1Olgwh-0005Ks-4I for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:39 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1Olgwd-0007o4-6R for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:35 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/8] xfs: fix untrusted inode number lookup Subject: [PATCH 6/8] xfs: fix untrusted inode number lookup Date: Wed, 18 Aug 2010 21:36:17 +1000 Message-Id: <1282131379-29932-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1282131402 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Commit 7124fe0a5b619d65b739477b3b55a20bf805b06d ("xfs: validate untrusted inode numbers during lookup") changes the inode lookup code to do btree lookups for untrusted inode numbers. This change made an invalid assumption about the alignment of inodes and hence incorrectly calculated the first inode in the cluster. As a result, some inode numbers were being incorrectly considered invalid when they were actually valid. The issue was not picked up by the xfstests suite because it always runs fsr and dump (the two utilities that utilise the bulkstat interface) on cache hot inodes and hence the lookup code in the cold cache path was not sufficiently exercised to uncover this intermittent problem. Fix the issue by relaxing the btree lookup criteria and then checking if the record returned contains the inode number we are lookup for. If it we get an incorrect record, then the inode number is invalid. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/xfs_ialloc.c | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c index abf80ae..5371d2d 100644 --- a/fs/xfs/xfs_ialloc.c +++ b/fs/xfs/xfs_ialloc.c @@ -1213,7 +1213,6 @@ xfs_imap_lookup( struct xfs_inobt_rec_incore rec; struct xfs_btree_cur *cur; struct xfs_buf *agbp; - xfs_agino_t startino; int error; int i; @@ -1227,13 +1226,13 @@ xfs_imap_lookup( } /* - * derive and lookup the exact inode record for the given agino. If the - * record cannot be found, then it's an invalid inode number and we - * should abort. + * Lookup the inode record for the given agino. If the record cannot be + * found, then it's an invalid inode number and we should abort. Once + * we have a record, we need to ensure it contains the inode number + * we are looking up. */ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); - startino = agino & ~(XFS_IALLOC_INODES(mp) - 1); - error = xfs_inobt_lookup(cur, startino, XFS_LOOKUP_EQ, &i); + error = xfs_inobt_lookup(cur, agino, XFS_LOOKUP_LE, &i); if (!error) { if (i) error = xfs_inobt_get_rec(cur, &rec, &i); @@ -1246,6 +1245,11 @@ xfs_imap_lookup( if (error) return error; + /* check that the returned record contains the required inode */ + if (rec.ir_startino > agino || + rec.ir_startino + XFS_IALLOC_INODES(mp) <= agino) + return EINVAL; + /* for untrusted inodes check it is allocated first */ if ((flags & XFS_IGET_UNTRUSTED) && (rec.ir_free & XFS_INOBT_MASK(agino - rec.ir_startino))) -- 1.7.1 From SRS0+Y12f+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBaMkq110464 for ; Wed, 18 Aug 2010 06:36:23 -0500 X-ASG-Debug-ID: 1282131411-5fad020b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8378D55BE for ; Wed, 18 Aug 2010 04:36:51 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id Mjcihw7KxgUeR5eA for ; Wed, 18 Aug 2010 04:36:51 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35480630-1927428 for ; Wed, 18 Aug 2010 21:06:50 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1Olgwr-0005L6-9u for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:49 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1Olgwd-0007o9-Aj for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:35 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 8/8] xfs: Introduce XFS_IOC_ZERO_RANGE Subject: [PATCH 8/8] xfs: Introduce XFS_IOC_ZERO_RANGE Date: Wed, 18 Aug 2010 21:36:19 +1000 Message-Id: <1282131379-29932-9-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1282131412 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner XFS_IOC_ZERO_RANGE is the equivalent of an atomic XFS_IOC_UNRESVSP/ XFS_IOC_RESVSP call pair. It enabled ranges of written data to be turned into zeroes without requiring IO or having to free and reallocate the extents in the range given as would occur if we had to punch and then preallocate them separately. This enables applications to zero parts of files very quickly without changing the layout of the files in any way. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_ioctl.c | 3 ++- fs/xfs/linux-2.6/xfs_ioctl32.c | 1 + fs/xfs/xfs_bmap.c | 12 +++++++++--- fs/xfs/xfs_bmap.h | 9 ++++++--- fs/xfs/xfs_fs.h | 1 + fs/xfs/xfs_vnodeops.c | 10 ++++++++-- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 237f5ff..a9c4810 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -1292,7 +1292,8 @@ xfs_file_ioctl( case XFS_IOC_ALLOCSP64: case XFS_IOC_FREESP64: case XFS_IOC_RESVSP64: - case XFS_IOC_UNRESVSP64: { + case XFS_IOC_UNRESVSP64: + case XFS_IOC_ZERO_RANGE: { xfs_flock64_t bf; if (copy_from_user(&bf, arg, sizeof(bf))) diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index 6c83f7f..464bcc7 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c @@ -574,6 +574,7 @@ xfs_file_compat_ioctl( case XFS_IOC_FSGEOMETRY_V1: case XFS_IOC_FSGROWFSDATA: case XFS_IOC_FSGROWFSRT: + case XFS_IOC_ZERO_RANGE: return xfs_file_ioctl(filp, cmd, p); #else case XFS_IOC_ALLOCSP_32: diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 23f14e5..d36770f 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -4744,8 +4744,12 @@ xfs_bmapi( * Check if writing previously allocated but * unwritten extents. */ - if (wr && mval->br_state == XFS_EXT_UNWRITTEN && - ((flags & (XFS_BMAPI_PREALLOC|XFS_BMAPI_DELAY)) == 0)) { + if (wr && + ((mval->br_state == XFS_EXT_UNWRITTEN && + ((flags & (XFS_BMAPI_PREALLOC|XFS_BMAPI_DELAY)) == 0)) || + (mval->br_state == XFS_EXT_NORM && + ((flags & (XFS_BMAPI_PREALLOC|XFS_BMAPI_CONVERT)) == + (XFS_BMAPI_PREALLOC|XFS_BMAPI_CONVERT))))) { /* * Modify (by adding) the state flag, if writing. */ @@ -4757,7 +4761,9 @@ xfs_bmapi( *firstblock; cur->bc_private.b.flist = flist; } - mval->br_state = XFS_EXT_NORM; + mval->br_state = (mval->br_state == XFS_EXT_UNWRITTEN) + ? XFS_EXT_NORM + : XFS_EXT_UNWRITTEN; error = xfs_bmap_add_extent(ip, lastx, &cur, mval, firstblock, flist, &tmp_logflags, whichfork, (flags & XFS_BMAPI_RSVBLOCKS)); diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index b13569a..71ec9b6 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h @@ -74,9 +74,12 @@ typedef struct xfs_bmap_free #define XFS_BMAPI_IGSTATE 0x080 /* Ignore state - */ /* combine contig. space */ #define XFS_BMAPI_CONTIG 0x100 /* must allocate only one extent */ -#define XFS_BMAPI_CONVERT 0x200 /* unwritten extent conversion - */ - /* need write cache flushing and no */ - /* additional allocation alignments */ +/* + * unwritten extent conversion - this needs write cache flushing and no additional + * allocation alignments. When specified with XFS_BMAPI_PREALLOC it converts + * from written to unwritten, otherwise convert from unwritten to written. + */ +#define XFS_BMAPI_CONVERT 0x200 #define XFS_BMAPI_FLAGS \ { XFS_BMAPI_WRITE, "WRITE" }, \ diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h index 7cf7220..6af6518 100644 --- a/fs/xfs/xfs_fs.h +++ b/fs/xfs/xfs_fs.h @@ -446,6 +446,7 @@ typedef struct xfs_handle { /* XFS_IOC_SETBIOSIZE ---- deprecated 46 */ /* XFS_IOC_GETBIOSIZE ---- deprecated 47 */ #define XFS_IOC_GETBMAPX _IOWR('X', 56, struct getbmap) +#define XFS_IOC_ZERO_RANGE _IOW ('X', 57, struct xfs_flock64) /* * ioctl commands that replace IRIX syssgi()'s diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 66d585c..3cacf59 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2272,7 +2272,7 @@ xfs_alloc_file_space( count = len; imapp = &imaps[0]; nimaps = 1; - bmapi_flag = XFS_BMAPI_WRITE | (alloc_type ? XFS_BMAPI_PREALLOC : 0); + bmapi_flag = XFS_BMAPI_WRITE | alloc_type; startoffset_fsb = XFS_B_TO_FSBT(mp, offset); allocatesize_fsb = XFS_B_TO_FSB(mp, count); @@ -2704,6 +2704,7 @@ xfs_change_file_space( xfs_off_t llen; xfs_trans_t *tp; struct iattr iattr; + int prealloc_type; if (!S_ISREG(ip->i_d.di_mode)) return XFS_ERROR(EINVAL); @@ -2746,12 +2747,17 @@ xfs_change_file_space( * size to be changed. */ setprealloc = clrprealloc = 0; + prealloc_type = XFS_BMAPI_PREALLOC; switch (cmd) { + case XFS_IOC_ZERO_RANGE: + prealloc_type |= XFS_BMAPI_CONVERT; + xfs_tosspages(ip, startoffset, startoffset + bf->l_len, 0); + /* FALLTHRU */ case XFS_IOC_RESVSP: case XFS_IOC_RESVSP64: error = xfs_alloc_file_space(ip, startoffset, bf->l_len, - 1, attr_flags); + prealloc_type, attr_flags); if (error) return error; setprealloc = 1; -- 1.7.1 From SRS0+axlI+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBaN7a110468 for ; Wed, 18 Aug 2010 06:36:23 -0500 X-ASG-Debug-ID: 1282131411-53b5018b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D77C31E4AE04 for ; Wed, 18 Aug 2010 04:36:51 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id zZXl5vI8atgtAMhg for ; Wed, 18 Aug 2010 04:36:51 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35775351-1927428 for ; Wed, 18 Aug 2010 21:06:50 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1Olgwh-0005Km-4G for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:39 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OlgwT-0007nx-1b for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:25 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/8] xfs: dummy transactions should not dirty VFS state Subject: [PATCH 4/8] xfs: dummy transactions should not dirty VFS state Date: Wed, 18 Aug 2010 21:36:15 +1000 Message-Id: <1282131379-29932-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1282131412 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner When we need to cover the log, we issue dummy transactions to ensure the current log tail is on disk. Unfortunately we currently use the root inode in the dummy transaction, and the act of committing the transaction dirties the inode at the VFS level. As a result, the VFS writeback of the dirty inode will prevent the filesystem from idling long enough for the log covering state machine to complete. The state machine gets stuck in a loop issuing new dummy transactions to cover the log and never makes progress. To avoid this problem, the dummy transactions should not cause externally visible state changes. To ensure this occurs, make sure that dummy transactions log an unchanging field in the superblock as it's state is never propagated outside the filesystem. This allows the log covering state machine to complete successfully and the filesystem now correctly enters a fully idle state about 90s after the last modification was made. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 2 +- fs/xfs/linux-2.6/xfs_sync.c | 42 ++++++------------------------------------ fs/xfs/xfs_fsops.c | 31 ++++++++++++++++++------------- fs/xfs/xfs_fsops.h | 2 +- 4 files changed, 26 insertions(+), 51 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 15c35b6..d09cd14 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1402,7 +1402,7 @@ xfs_fs_freeze( xfs_save_resvblks(mp); xfs_quiesce_attr(mp); - return -xfs_fs_log_dummy(mp); + return -xfs_fs_log_dummy(mp, SYNC_WAIT); } STATIC int diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index dfcbd98..d59c4a6 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -34,6 +34,7 @@ #include "xfs_inode_item.h" #include "xfs_quota.h" #include "xfs_trace.h" +#include "xfs_fsops.h" #include #include @@ -341,38 +342,6 @@ xfs_sync_attr( } STATIC int -xfs_commit_dummy_trans( - struct xfs_mount *mp, - uint flags) -{ - struct xfs_inode *ip = mp->m_rootip; - struct xfs_trans *tp; - int error; - - /* - * Put a dummy transaction in the log to tell recovery - * that all others are OK. - */ - tp = xfs_trans_alloc(mp, XFS_TRANS_DUMMY1); - error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - return error; - } - - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_trans_commit(tp, 0); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - - /* the log force ensures this transaction is pushed to disk */ - xfs_log_force(mp, (flags & SYNC_WAIT) ? XFS_LOG_SYNC : 0); - return error; -} - -STATIC int xfs_sync_fsdata( struct xfs_mount *mp) { @@ -432,7 +401,7 @@ xfs_quiesce_data( /* mark the log as covered if needed */ if (xfs_log_need_covered(mp)) - error2 = xfs_commit_dummy_trans(mp, SYNC_WAIT); + error2 = xfs_fs_log_dummy(mp, SYNC_WAIT); /* flush data-only devices */ if (mp->m_rtdev_targp) @@ -563,7 +532,7 @@ xfs_flush_inodes( /* * Every sync period we need to unpin all items, reclaim inodes and sync * disk quotas. We might need to cover the log to indicate that the - * filesystem is idle. + * filesystem is idle and not frozen. */ STATIC void xfs_sync_worker( @@ -577,8 +546,9 @@ xfs_sync_worker( xfs_reclaim_inodes(mp, 0); /* dgc: errors ignored here */ error = xfs_qm_sync(mp, SYNC_TRYLOCK); - if (xfs_log_need_covered(mp)) - error = xfs_commit_dummy_trans(mp, 0); + if (mp->m_super->s_frozen == SB_UNFROZEN && + xfs_log_need_covered(mp)) + error = xfs_fs_log_dummy(mp, 0); } mp->m_sync_seq++; wake_up(&mp->m_wait_single_sync_task); diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index dbca5f5..43b1d56 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -604,31 +604,36 @@ out: return 0; } +/* + * Dump a transaction into the log that contains no real change. This is needed + * to be able to make the log dirty or stamp the current tail LSN into the log + * during the covering operation. + * + * We cannot use an inode here for this - that will push dirty state back up + * into the VFS and then periodic inode flushing will prevent log covering from + * making progress. Hence we log a field in the superblock instead. + */ int xfs_fs_log_dummy( - xfs_mount_t *mp) + xfs_mount_t *mp, + int flags) { xfs_trans_t *tp; - xfs_inode_t *ip; int error; tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP); - error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, 0, + XFS_DEFAULT_LOG_COUNT); if (error) { xfs_trans_cancel(tp, 0); return error; } - ip = mp->m_rootip; - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - xfs_trans_set_sync(tp); - error = xfs_trans_commit(tp, 0); - - xfs_iunlock(ip, XFS_ILOCK_EXCL); - return error; + /* log the UUID because it is an unchanging field */ + xfs_mod_sb(tp, XFS_SB_UUID); + if (flags & SYNC_WAIT) + xfs_trans_set_sync(tp); + return xfs_trans_commit(tp, 0); } int diff --git a/fs/xfs/xfs_fsops.h b/fs/xfs/xfs_fsops.h index 88435e0..a786c52 100644 --- a/fs/xfs/xfs_fsops.h +++ b/fs/xfs/xfs_fsops.h @@ -25,6 +25,6 @@ extern int xfs_fs_counts(xfs_mount_t *mp, xfs_fsop_counts_t *cnt); extern int xfs_reserve_blocks(xfs_mount_t *mp, __uint64_t *inval, xfs_fsop_resblks_t *outval); extern int xfs_fs_goingdown(xfs_mount_t *mp, __uint32_t inflags); -extern int xfs_fs_log_dummy(xfs_mount_t *mp); +extern int xfs_fs_log_dummy(xfs_mount_t *mp, int flags); #endif /* __XFS_FSOPS_H__ */ -- 1.7.1 From SRS0+hIMp+79+fromorbit.com=dave@internode.on.net Wed Aug 18 06:36:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBaNnv110466 for ; Wed, 18 Aug 2010 06:36:23 -0500 X-ASG-Debug-ID: 1282131970-7bf5018a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C8AF715D5208 for ; Wed, 18 Aug 2010 04:46:10 -0700 (PDT) Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id PjrDHXcwvfdkQwgM for ; Wed, 18 Aug 2010 04:46:10 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35523139-1927428 for ; Wed, 18 Aug 2010 21:06:50 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1Olgwh-0005Kt-60 for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:39 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1Olgwd-0007o6-8w for xfs@oss.sgi.com; Wed, 18 Aug 2010 21:36:35 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 7/8] xfs: use range primitives for xfs page cache operations Subject: [PATCH 7/8] xfs: use range primitives for xfs page cache operations Date: Wed, 18 Aug 2010 21:36:18 +1000 Message-Id: <1282131379-29932-8-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282131379-29932-1-git-send-email-david@fromorbit.com> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103] X-Barracuda-Start-Time: 1282131971 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner While XFS passes ranges to operate on from the core code, the functions being called ignore the either the entire range or the end of the range. This is historical because when the function were written linux didn't have the necessary range operations. Update the functions to use the correct operations. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_fs_subr.c | 31 +++++++++++++++---------------- 1 files changed, 15 insertions(+), 16 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c index 1f279b0..ed88ed1 100644 --- a/fs/xfs/linux-2.6/xfs_fs_subr.c +++ b/fs/xfs/linux-2.6/xfs_fs_subr.c @@ -32,10 +32,9 @@ xfs_tosspages( xfs_off_t last, int fiopt) { - struct address_space *mapping = VFS_I(ip)->i_mapping; - - if (mapping->nrpages) - truncate_inode_pages(mapping, first); + /* can't toss partial tail pages, so mask them out */ + last &= ~(PAGE_SIZE - 1); + truncate_inode_pages_range(VFS_I(ip)->i_mapping, first, last - 1); } int @@ -50,12 +49,11 @@ xfs_flushinval_pages( trace_xfs_pagecache_inval(ip, first, last); - if (mapping->nrpages) { - xfs_iflags_clear(ip, XFS_ITRUNCATED); - ret = filemap_write_and_wait(mapping); - if (!ret) - truncate_inode_pages(mapping, first); - } + xfs_iflags_clear(ip, XFS_ITRUNCATED); + ret = filemap_write_and_wait_range(mapping, first, + last == -1 ? LLONG_MAX : last); + if (!ret) + truncate_inode_pages_range(mapping, first, last); return -ret; } @@ -71,10 +69,9 @@ xfs_flush_pages( int ret = 0; int ret2; - if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) { - xfs_iflags_clear(ip, XFS_ITRUNCATED); - ret = -filemap_fdatawrite(mapping); - } + xfs_iflags_clear(ip, XFS_ITRUNCATED); + ret = -filemap_fdatawrite_range(mapping, first, + last == -1 ? LLONG_MAX : last); if (flags & XBF_ASYNC) return ret; ret2 = xfs_wait_on_pages(ip, first, last); @@ -91,7 +88,9 @@ xfs_wait_on_pages( { struct address_space *mapping = VFS_I(ip)->i_mapping; - if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) - return -filemap_fdatawait(mapping); + if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) { + return -filemap_fdatawait_range(mapping, first, + last == -1 ? ip->i_size - 1 : last); + } return 0; } -- 1.7.1 From SRS0+RQGG+79+fromorbit.com=david@internode.on.net Wed Aug 18 06:42:44 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBghbS111012 for ; Wed, 18 Aug 2010 06:42:44 -0500 X-ASG-Debug-ID: 1282132350-7f6e01ac0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BE1DD15D525C for ; Wed, 18 Aug 2010 04:52:31 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id ZbXeZG19U2xI0HYQ for ; Wed, 18 Aug 2010 04:52:31 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 24101198-1927428 for multiple; Wed, 18 Aug 2010 21:13:10 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Olh2w-0005LX-1K; Wed, 18 Aug 2010 21:43:06 +1000 Date: Wed, 18 Aug 2010 21:43:05 +1000 From: Dave Chinner To: Nohez Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Message-ID: <20100818114305.GR10429@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282132352 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 07:12:12PM +0530, Nohez wrote: > > Hi, > > I had a kernel bug today when running xfs on CentOS v5.5. I moved to > xfs from ext3 today. > > The only application accessing the xfs filesystem is Sybase ASE v15.x. > Database has been configured to use directio with native kernel > asynchronous disk i/o enabled. The warning is being issued because the application is mixing buffered IO with direct IO on the same file. i.e. data corruption waiting to happen. This is an application bug - the responsibility for ensuring data coherency and integrity is assumed by the application issuing the direct IO. This was discussed in more detail on a recent thread on this list - you shoul dbe able to find it in the archives easily enough. > Let me know if there is any other information I can provide to help > with debugging. Report it to the application vendor - it's an application bug, not a filesystem bug. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+RQGG+79+fromorbit.com=david@internode.on.net Wed Aug 18 06:44:51 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBipLw111102 for ; Wed, 18 Aug 2010 06:44:51 -0500 X-ASG-Debug-ID: 1282131919-5bcb02910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 01B9755F0 for ; Wed, 18 Aug 2010 04:45:19 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id YijVi38FZALWXJsJ for ; Wed, 18 Aug 2010 04:45:19 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 24101395-1927428 for multiple; Wed, 18 Aug 2010 21:15:10 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Olh4t-0005MJ-L4; Wed, 18 Aug 2010 21:45:07 +1000 Date: Wed, 18 Aug 2010 21:45:07 +1000 From: Dave Chinner To: Eric Sandeen Cc: xfs-oss , ext4 development X-ASG-Orig-Subj: Re: [PATCH] xfstests 241: run parallel dbench Subject: Re: [PATCH] xfstests 241: run parallel dbench Message-ID: <20100818114507.GS10429@dastard> References: <4C6AE57D.7090807@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C6AE57D.7090807@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282131921 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 02:39:41PM -0500, Eric Sandeen wrote: > ext4 was corrupting inode table bitmaps due to a mishmash of > atomic & nonatomic bitops. This got broken twice and fixed > twice; let's add a test. > > On a 4-way box this reliably ends up with a corrupted filesystem > if we get it wrong (upstream as of 2.6.35 at least is fine again) > > Signed-off-by: Eric Sandeen Looks good, except it's missing a 241.out file for the golden output. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+ZjcF+79+fromorbit.com=david@internode.on.net Wed Aug 18 06:48:30 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IBmUPX111232 for ; Wed, 18 Aug 2010 06:48:30 -0500 X-ASG-Debug-ID: 1282132138-5fb3025a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 287785607 for ; Wed, 18 Aug 2010 04:48:58 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id 5NLrEx5VJp2mczLY for ; Wed, 18 Aug 2010 04:48:58 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35532509-1927428 for multiple; Wed, 18 Aug 2010 21:18:57 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Olh8a-0005Mj-6T; Wed, 18 Aug 2010 21:48:56 +1000 Date: Wed, 18 Aug 2010 21:48:56 +1000 From: Dave Chinner To: nathans@aconex.com Cc: xfs X-ASG-Orig-Subj: Re: Review: xfsprogs with libblkid enabled for Debian Subject: Re: Review: xfsprogs with libblkid enabled for Debian Message-ID: <20100818114856.GT10429@dastard> References: <472498892.114291282107960876.JavaMail.root@mail-au.aconex.com> <86828409.114311282107988740.JavaMail.root@mail-au.aconex.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86828409.114311282107988740.JavaMail.root@mail-au.aconex.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1282132140 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 18, 2010 at 03:06:28PM +1000, nathans@aconex.com wrote: > Hi guys, > > Attached patch adds support for libblkid in Debian builds. > There's a couple of other trivial things fixed up while the > package was building - man page typos reported by lintian, > fix source tarball generation (and deb build) when libblkid > is enabled (*must* descend into libdisk to pick up sources) > ... but its all pretty straight forward. > > I've checked that mkfs.xfs is linked as expected too. :) Looks OK to me. Reviewed-by: Dave Chinner Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+362a85bc611765c32391+2551+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 18 07:04:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IC3xXX111682 for ; Wed, 18 Aug 2010 07:04:00 -0500 X-ASG-Debug-ID: 1282133069-5fbe029d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C891450B1 for ; Wed, 18 Aug 2010 05:04:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id tslOpp6lPd7mQfvw for ; Wed, 18 Aug 2010 05:04:29 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OlhNc-00062S-DL; Wed, 18 Aug 2010 12:04:28 +0000 Date: Wed, 18 Aug 2010 08:04:28 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/8] xfs: dummy transactions should not dirty VFS state Subject: Re: [PATCH 4/8] xfs: dummy transactions should not dirty VFS state Message-ID: <20100818120428.GA21652@infradead.org> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> <1282131379-29932-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282131379-29932-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282133069 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The updated version looks good to me, Reviewed-by: Christoph Hellwig From BATV+362a85bc611765c32391+2551+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 18 07:04:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IC4aOe111721 for ; Wed, 18 Aug 2010 07:04:36 -0500 X-ASG-Debug-ID: 1282133106-53b002d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 006901E4A90B for ; Wed, 18 Aug 2010 05:05:06 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id XNsKjEfGqZKkyagg for ; Wed, 18 Aug 2010 05:05:06 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OlhOD-0006gs-BE; Wed, 18 Aug 2010 12:05:05 +0000 Date: Wed, 18 Aug 2010 08:05:05 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/8] xfs: ensure f_ffree returned by statfs() is non-negative Subject: Re: [PATCH 5/8] xfs: ensure f_ffree returned by statfs() is non-negative Message-ID: <20100818120505.GB21652@infradead.org> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> <1282131379-29932-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282131379-29932-6-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282133107 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From sandeen@redhat.com Wed Aug 18 09:26:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IEQD00116890 for ; Wed, 18 Aug 2010 09:26:13 -0500 X-ASG-Debug-ID: 1282142162-7a8201db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0836B14D4EAE for ; Wed, 18 Aug 2010 07:36:02 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id AqDUF2CSjC1pLOVs for ; Wed, 18 Aug 2010 07:36:02 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o7IEQawQ032512 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 18 Aug 2010 10:26:36 -0400 Received: from liberator.lan (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o7IEQW9b017693 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 18 Aug 2010 10:26:36 -0400 Message-ID: <4C6BED98.10203@redhat.com> Date: Wed, 18 Aug 2010 09:26:32 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Dave Chinner CC: xfs-oss , ext4 development X-ASG-Orig-Subj: Re: [PATCH] xfstests 241: run parallel dbench Subject: Re: [PATCH] xfstests 241: run parallel dbench References: <4C6AE57D.7090807@redhat.com> <20100818114507.GS10429@dastard> In-Reply-To: <20100818114507.GS10429@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1282142163 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > On Tue, Aug 17, 2010 at 02:39:41PM -0500, Eric Sandeen wrote: >> ext4 was corrupting inode table bitmaps due to a mishmash of >> atomic & nonatomic bitops. This got broken twice and fixed >> twice; let's add a test. >> >> On a 4-way box this reliably ends up with a corrupted filesystem >> if we get it wrong (upstream as of 2.6.35 at least is fine again) >> >> Signed-off-by: Eric Sandeen > > Looks good, except it's missing a 241.out file for the golden > output. grr "guilt add" :) Thanks, will add that to the commit. -Eric > Cheers, > > Dave. From ygao.linux@gmail.com Wed Aug 18 09:27:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IERvRK116975 for ; Wed, 18 Aug 2010 09:27:57 -0500 X-ASG-Debug-ID: 1282142265-140c00cf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7568514D4ECB for ; Wed, 18 Aug 2010 07:37:46 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id 8wo5Fc4RkhBNUw2H for ; Wed, 18 Aug 2010 07:37:46 -0700 (PDT) Received: by qwe5 with SMTP id 5so575213qwe.26 for ; Wed, 18 Aug 2010 07:28:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=DKcILb5aKK/cWVEW7TjN0IGHh/7QOY4e1wZ23dfEnss=; b=mlkbMTIGIfN5MBfTmGCSkQdbyPEm2js/PlU7jGqQe3WF7bWMuSXh2fqziHr2xrXPdW ycFrnF6PJgG9x+3TerGgf3gUYhwjTiZumtz5vAoGZETkvBnR+zBsa7z/MLsyP5DUAi8Y gE4k4C85p8zmnA+BHdx0ckOHl+cu+5Op1ZC3A= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=SxbkbBtB6y/GYwhHpTA0QIxQycgOTaL1VzubZWmOQTY4JeNssRCmB1Im58zgKZxKdt 1b/tOYZc3VJ9R1JiCEstrTHCA4zkFKjuYiogYOeK5oyYTPaJ9Rwc+zs9zfL9DT2v/SCh dezc+AevkVxw+fn7JVnAdPDxFkXNBY/vyDvGw= MIME-Version: 1.0 Received: by 10.224.88.69 with SMTP id z5mr5419925qal.359.1282141705996; Wed, 18 Aug 2010 07:28:25 -0700 (PDT) Received: by 10.229.141.207 with HTTP; Wed, 18 Aug 2010 07:27:55 -0700 (PDT) Date: Wed, 18 Aug 2010 09:27:55 -0500 Message-ID: X-ASG-Orig-Subj: page discard on page error Subject: page discard on page error From: Mike Gao To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=00c09f8a4e86f00e06048e19e01d X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1282142266 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38327 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --00c09f8a4e86f00e06048e19e01d Content-Type: text/plain; charset=ISO-8859-1 Hi, all, I sync latest XFS last month and build into our embedded system. When I test, I found below issue. It seems that the xfs_iomap failed when it did allocat with xfs_ilock_nowait(). I debug this and found that ip->i_lock is locked and there are sometime no unlock coming between two lock trying. This issue will give wrong data in file on disk exactly on that offset. Filesystem "ubdb1": page discard on page 09160ac0, inode 0x43, offset 229494784. Filesystem "ubdb1": page discard on page 09160ae0, inode 0x43, offset 229498880. Filesystem "ubdb1": page discard on page 0915fac0, inode 0x43, offset 229502976. Filesystem "ubdb1": page discard on page 0915fae0, inode 0x43, offset 229507072. Filesystem "ubdb1": page discard on page 0914d440, inode 0x43, offset 229511168. Should we just discard the page? I don't think it is good because the file will be corrupted. Should we fix it? I am new to XFS and more than like to hear your opinion. Thanks very much, Mike Gao --00c09f8a4e86f00e06048e19e01d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, all,

I sync latest XFS last month and build into our= embedded system. When I test, I found below issue.
It seems that= the xfs_iomap failed when it did allocat with xfs_ilock_nowait().
I debug this and found that ip->i_lock is locked and there are some= time no unlock coming between two lock trying.
This issue will gi= ve wrong data in file on disk exactly on that offset.

Filesystem "ubdb1": page discard on page 09160ac0, inod= e 0x43, offset 229494784.
Filesystem "ubdb1": page disc= ard on page 09160ae0, inode 0x43, offset 229498880.
Filesystem &q= uot;ubdb1": page discard on page 0915fac0, inode 0x43, offset 22950297= 6.
Filesystem "ubdb1": page discard on page 0915fae0, inode 0x4= 3, offset 229507072.
Filesystem "ubdb1": page discard o= n page 0914d440, inode 0x43, offset 229511168.


Should we just discard the page? I don't think it i= s good because the file will be corrupted.=A0
Should we fix it? I= am new to XFS and more than like to hear your=A0opinion.=A0

=
Thanks very much,
Mike Gao
--00c09f8a4e86f00e06048e19e01d-- From ygao.linux@gmail.com Wed Aug 18 09:28:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IES58I116996 for ; Wed, 18 Aug 2010 09:28:05 -0500 X-ASG-Debug-ID: 1282142265-140c00cf0001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9742514D4ED1 for ; Wed, 18 Aug 2010 07:37:54 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id Dh1tu4O15Wt0WmIH for ; Wed, 18 Aug 2010 07:37:54 -0700 (PDT) Received: by mail-qw0-f53.google.com with SMTP id 5so575213qwe.26 for ; Wed, 18 Aug 2010 07:28:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=5fsuJzBuU4LFCTdwon3i+ZgVdxmT291sjMSVdNdiwCQ=; b=aMw5rP3l4SnTzt80FRIM/ucVx26siwWs7q0/3OusoeTNFwCGmqWxXz47d4shfnX0qw KfORBDK6it1vlnCOvPtsJihFgLDytsIp2AMj1PDiwO4m7Kzz/2qHJSQnN1okhQvubxZ8 tlHaPy3X1tAs3LgGzkbk1dn0pcKfvvKz0u9kc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=ue97iGg6rfdaB7tL0SZEt2mE581iDfZwfji15XKUDo+20bqF+7CVXFE76EA6ENKwp9 hJlvFz+u+KoBwZ67EDpTkq9bjsdTSztaL49GGxwN3carfFS5mhg1RyIdj1q/altxxHYE uSqVbLpCvlatHaQjsYxYWm+JoFSX7J9v+j81g= MIME-Version: 1.0 Received: by 10.229.112.38 with SMTP id u38mr446889qcp.215.1282141683119; Wed, 18 Aug 2010 07:28:03 -0700 (PDT) Received: by 10.229.141.207 with HTTP; Wed, 18 Aug 2010 07:27:55 -0700 (PDT) Date: Wed, 18 Aug 2010 09:27:55 -0500 Message-ID: X-ASG-Orig-Subj: page discard on page error Subject: page discard on page error From: Mike Gao To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=002354471d8cbfc1be048e19df29 X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1282142274 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38327 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --002354471d8cbfc1be048e19df29 Content-Type: text/plain; charset=ISO-8859-1 Hi, all, I sync latest XFS last month and build into our embedded system. When I test, I found below issue. It seems that the xfs_iomap failed when it did allocat with xfs_ilock_nowait(). I debug this and found that ip->i_lock is locked and there are sometime no unlock coming between two lock trying. This issue will give wrong data in file on disk exactly on that offset. Filesystem "ubdb1": page discard on page 09160ac0, inode 0x43, offset 229494784. Filesystem "ubdb1": page discard on page 09160ae0, inode 0x43, offset 229498880. Filesystem "ubdb1": page discard on page 0915fac0, inode 0x43, offset 229502976. Filesystem "ubdb1": page discard on page 0915fae0, inode 0x43, offset 229507072. Filesystem "ubdb1": page discard on page 0914d440, inode 0x43, offset 229511168. Should we just discard the page? I don't think it is good because the file will be corrupted. Should we fix it? I am new to XFS and more than like to hear your opinion. Thanks very much, Mike Gao --002354471d8cbfc1be048e19df29 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, all,

I sync latest XFS last month and build into our= embedded system. When I test, I found below issue.
It seems that= the xfs_iomap failed when it did allocat with xfs_ilock_nowait().
I debug this and found that ip->i_lock is locked and there are some= time no unlock coming between two lock trying.
This issue will gi= ve wrong data in file on disk exactly on that offset.

Filesystem "ubdb1": page discard on page 09160ac0, inod= e 0x43, offset 229494784.
Filesystem "ubdb1": page disc= ard on page 09160ae0, inode 0x43, offset 229498880.
Filesystem &q= uot;ubdb1": page discard on page 0915fac0, inode 0x43, offset 22950297= 6.
Filesystem "ubdb1": page discard on page 0915fae0, inode 0x4= 3, offset 229507072.
Filesystem "ubdb1": page discard o= n page 0914d440, inode 0x43, offset 229511168.


Should we just discard the page? I don't think it i= s good because the file will be corrupted.=A0
Should we fix it? I= am new to XFS and more than like to hear your=A0opinion.=A0

=
Thanks very much,
Mike Gao
--002354471d8cbfc1be048e19df29-- From nohez@cmie.com Wed Aug 18 09:50:49 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IEommE117877 for ; Wed, 18 Aug 2010 09:50:49 -0500 X-ASG-Debug-ID: 1282143077-2ed201e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from out75.rilinfo.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C63DD4E1663 for ; Wed, 18 Aug 2010 07:51:17 -0700 (PDT) Received: from out75.rilinfo.net (out75.rilinfo.net [202.138.96.75]) by cuda.sgi.com with ESMTP id y6Pl6nzRXfDRxz5b for ; Wed, 18 Aug 2010 07:51:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsEAFOOa0zc4stL/2dsb2JhbAChO8AjhTcEhC+FPg Received: from mail.cmie.com (HELO p8001cmie.local) ([220.226.203.75]) by out.rilinfo.net with ESMTP; 18 Aug 2010 14:50:32 +0000 Received: from sutlej.cmie.ernet.in (sutlej.cmie.ernet.in [192.168.1.4]) by p8001cmie.local (Postfix) with ESMTP id EA9574A38001; Wed, 18 Aug 2010 20:16:59 +0530 (IST) Received: from mahi.cmie.ernet.in (mahi.cmie.ernet.in [196.1.1.46]) by sutlej.cmie.ernet.in (Postfix) with ESMTP id 3B7C817D63F; Wed, 18 Aug 2010 20:21:32 +0530 (IST) Date: Wed, 18 Aug 2010 20:21:31 +0530 (IST) From: Nohez X-X-Sender: nohez@mahi.cmie.ernet.in To: Dave Chinner cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) In-Reply-To: <20100818114305.GR10429@dastard> Message-ID: References: <20100818114305.GR10429@dastard> User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: out75.rilinfo.net[202.138.96.75] X-Barracuda-Start-Time: 1282143078 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38328 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thank you for your reply. I checked the archives and found a bug report. The function names in the call trace report are different from the ones I have reported. Since it's an application bug, it does not matter which filesystem is being used. Can I assume that the data corruption can happen on ext3 too? Nohez From SRS0+RQGG+79+fromorbit.com=david@internode.on.net Wed Aug 18 10:50:25 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IFoP7m120585 for ; Wed, 18 Aug 2010 10:50:25 -0500 X-ASG-Debug-ID: 1282146653-71b901300000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D94986478 for ; Wed, 18 Aug 2010 08:50:53 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id 4gSPvIDh6eHDWxzR for ; Wed, 18 Aug 2010 08:50:53 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35596860-1927428 for multiple; Thu, 19 Aug 2010 01:20:45 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Olkua-0005h3-1H; Thu, 19 Aug 2010 01:50:44 +1000 Date: Thu, 19 Aug 2010 01:50:43 +1000 From: Dave Chinner To: Mike Gao Cc: xfs@oss.sgi.com, hch@lst.de X-ASG-Orig-Subj: Re: page discard on page error Subject: Re: page discard on page error Message-ID: <20100818155043.GL7362@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1282146654 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38332 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 18, 2010 at 09:27:55AM -0500, Mike Gao wrote: > Hi, all, > > I sync latest XFS last month and build into our embedded system. When I > test, I found below issue. > It seems that the xfs_iomap failed when it did allocat with > xfs_ilock_nowait(). > I debug this and found that ip->i_lock is locked and there are sometime no > unlock coming between two lock trying. > This issue will give wrong data in file on disk exactly on that offset. Ah, it looks like we dropped the EAGAIN error from xfs_map_blocks() on the floor. Christoph, the 2.6.34 code did this: error: ...... /* * If it's delalloc and we have nowhere to put it, * throw it away, unless the lower layers told * us to try again. */ if (err != -EAGAIN) { if (!unmapped) xfs_aops_discard_page(page); ClearPageUptodate(page); } and the caller redirtied the page on EAGAIN. The EAGAIN comes from the BMAPI_TRYLOCK case, so it is a valid return indicating that we would have blocked on a non-blocking IO. The current code does not handle EAGAIN at all, just discards the page. This looks incorrect - I think that EAGAIN should still cause the page to be redirtied, not discarded. I'm not sure if I missed something else, though - can you remember why you removed the EAGAIN case? Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+UT9l+79+fromorbit.com=david@internode.on.net Wed Aug 18 10:55:08 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IFt7gw120831 for ; Wed, 18 Aug 2010 10:55:07 -0500 X-ASG-Debug-ID: 1282147495-6efe004e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 50532CE0D48 for ; Wed, 18 Aug 2010 09:04:56 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id aGGIdoe2ob6qSjop for ; Wed, 18 Aug 2010 09:04:56 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35500321-1927428 for multiple; Thu, 19 Aug 2010 01:25:35 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OlkzG-0005hs-2b; Thu, 19 Aug 2010 01:55:34 +1000 Date: Thu, 19 Aug 2010 01:55:34 +1000 From: Dave Chinner To: Nohez Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Message-ID: <20100818155533.GM7362@dastard> References: <20100818114305.GR10429@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1282147497 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38331 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 18, 2010 at 08:21:31PM +0530, Nohez wrote: > > Thank you for your reply. > > I checked the archives and found a bug report. The function names in > the call trace report are different from the ones I have reported. > > Since it's an application bug, it does not matter which filesystem > is being used. Can I assume that the data corruption can happen on > ext3 too? It depends on the way the filesystem handles parallelism when doing direct IO. In general, though, you cannot rely on the filesystem maintaining data coherence if you mix concurrent buffered/mmap IO and direct IO to the same file. Filesystems do make efforts to minimise the possibility of coherency problems, but they cannot be prevented entirely. Hence the delegation of responsibility to the application issuing the direct IO. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+362a85bc611765c32391+2551+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 18 11:17:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IGGxCV122188 for ; Wed, 18 Aug 2010 11:17:00 -0500 X-ASG-Debug-ID: 1282148249-643401b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 17499172A92A for ; Wed, 18 Aug 2010 09:17:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id I7MRlFTqfnXhpAHa for ; Wed, 18 Aug 2010 09:17:29 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OllKS-00017b-9r; Wed, 18 Aug 2010 16:17:28 +0000 Date: Wed, 18 Aug 2010 12:17:28 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Mike Gao , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: page discard on page error Subject: Re: page discard on page error Message-ID: <20100818161728.GA3511@infradead.org> References: <20100818155043.GL7362@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100818155043.GL7362@dastard> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282148250 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 19, 2010 at 01:50:43AM +1000, Dave Chinner wrote: > The current code does not handle EAGAIN at all, just discards the > page. This looks incorrect - I think that EAGAIN should still cause > the page to be redirtied, not discarded. I'm not sure if I missed > something else, though - can you remember why you removed the EAGAIN > case? I don't think that was intentional, in fact I'm pretty sure I handled it in an earlier version. Mike, can you test the patch below? Index: xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2010-08-18 18:10:48.140261091 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_aops.c 2010-08-18 18:12:41.167005888 +0200 @@ -1068,7 +1068,7 @@ xfs_vm_writepage( * by themselves. */ if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) - goto out_fail; + goto redirty; /* * We need a transaction if there are delalloc or unwritten buffers @@ -1080,7 +1080,7 @@ xfs_vm_writepage( */ xfs_count_page_state(page, &delalloc, &unwritten); if ((current->flags & PF_FSTRANS) && (delalloc || unwritten)) - goto out_fail; + goto redirty; /* Is this page beyond the end of the file? */ offset = i_size_read(inode); @@ -1245,12 +1245,15 @@ error: if (iohead) xfs_cancel_ioend(iohead); + if (err == -EAGAIN) + goto redirty; + xfs_aops_discard_page(page); ClearPageUptodate(page); unlock_page(page); return err; -out_fail: +redirty: redirty_page_for_writepage(wbc, page); unlock_page(page); return 0; From BATV+362a85bc611765c32391+2551+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 18 11:37:29 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IGbToM123201 for ; Wed, 18 Aug 2010 11:37:29 -0500 X-ASG-Debug-ID: 1282150038-6efe025d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 046EC14D50C5 for ; Wed, 18 Aug 2010 09:47:18 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id AHXBzrGClkRHJw10 for ; Wed, 18 Aug 2010 09:47:18 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OlleI-0001gn-EL; Wed, 18 Aug 2010 16:37:58 +0000 Date: Wed, 18 Aug 2010 12:37:58 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: XFS status update for July 2010 Subject: XFS status update for July 2010 Message-ID: <20100818163758.GA4321@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282150039 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean July saw three more release candidates for the Linux 2.6.35 kernel, which included a relatively large number of XFS updates. There were two security fixes, a small one to prevent swapext to operate on write-only file descriptors, and a much larger one to properly validate inode numbers coming from NFS clients or userspace applications using the bulkstat or the open-by-handle interfaces. In addition to that another relatively large patch fixes the way inodes get reclaimed in the background, and avoids inode caches growing out of bounds. In the meantime the code for the Linux 2.6.36 got the last touches before the expected opening of the merge window, by merging a few more last minute fixes and cleanups. The most notable one is a patch series that fixes in-memory corruption when concurrently accessing unwritten extents using the in-kernel AIO code. The userspace side was still quite slow, but some a bit more activity than June. In xfsprogs the xfs_db code grew two bug fixes, as did the xfs_io script. The xfstests package saw one new test cases and various fixes to existing code. Last but not least a few patches affecting the build system for all userspace tools were committed. From casazza840930@yahoo.de Wed Aug 18 12:00:38 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7IH0buO124365 for ; Wed, 18 Aug 2010 12:00:37 -0500 X-ASG-Debug-ID: 1282151426-6f00033f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from n21.bullet.mail.mud.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 37DEBCE2676 for ; Wed, 18 Aug 2010 10:10:26 -0700 (PDT) Received: from n21.bullet.mail.mud.yahoo.com (n21.bullet.mail.mud.yahoo.com [68.142.206.160]) by cuda.sgi.com with SMTP id 5OVXGiGDHlUbgppv for ; Wed, 18 Aug 2010 10:10:26 -0700 (PDT) Received: from [209.191.108.96] by n21.bullet.mail.mud.yahoo.com with NNFMP; 18 Aug 2010 17:01:01 -0000 Received: from [68.142.201.241] by t3.bullet.mud.yahoo.com with NNFMP; 18 Aug 2010 17:01:06 -0000 Received: from [127.0.0.1] by omp402.mail.mud.yahoo.com with NNFMP; 18 Aug 2010 17:01:06 -0000 X-Yahoo-Newman-Id: 416114.50082.bm@omp402.mail.mud.yahoo.com Received: (qmail 5442 invoked from network); 18 Aug 2010 17:01:05 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.de; h=DKIM-Signature:Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:To:Subject:Date:MIME-Version:Content-Type:X-Priority; b=4mhsosSLxjbA60eoPpdpUzt0yjNG+5kzKXo4Y/MfUUegGaRfpG1IHC0beb47+YzZCHDkvlQDcBpPylGqgKOAsocSuhGvcl48zO30BoFsJMpH+G28QMqkbbyDs8DSV6kysjBAJ78HB+kylEBC5PZ3Mv2jBBk9k+/b8Q+I6CvMVH0= ; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s1024; t=1282150865; bh=Zw43swdAj16gWwEAjzD9MlmuE3O887K6O4bw/b+b+Os=; h=Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:To:Subject:Date:MIME-Version:Content-Type:X-Priority; b=Yn6NavRG54TSfWxFM+VP2paSrcKCHUp8ZqqjKo54/3ou5xjlISa9O8CN5pf6nyqtDKOd/wlnMNywvvem3fPvShBjVxzXPM5ZCHfGLeiUO79Zvg4NxctKPRbVZuWEzR1CfiAc8R70th/wSkQg09EA3NThRHyvM+Z7jPoOXllhxhM= Message-ID: <952914.1749.qm@smtp120.plus.mail.sp1.yahoo.com> Received: from xufjibd (casazza840930@59.41.186.67 with login) by smtp120.plus.mail.sp1.yahoo.com with SMTP; 18 Aug 2010 10:01:05 -0700 PDT X-Yahoo-SMTP: Jh9dO7SswBDRZKg9ODHnKEwt5CRU9iVSJ3M- X-YMail-OSG: vy7yn20VM1nyAnh58qXzBYy5rBVdc4XcPyaoobVQt5YyLDG aVnVMZmFC1BbQkbtzdABjRqnqAttmDgrG0qhMvO3jLxv88fjUlffNcXxg0z0 FS5c.QhD043ShSbe4XSOmN5lwDSNxex2NRSqPxG6mevb8OAx76EPZn_K7kQq FJX0TClW9P3x8OVXasEcFGd7BTE.lS8n29lI3GmcfPsGkrO3hpxds_ozvp4K QPwljfl2kvLfpLsE- X-Yahoo-Newman-Property: ymail-3 From: "Ptyiapal" To: "xfs" X-ASG-Orig-Subj: =?GB2312?B?tvLD18vjt/s=?= Subject: =?GB2312?B?tvLD18vjt/s=?= Date: Thu, 19 Aug 2010 01:00:26 +0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=alewtk592_3623_146401959.089179" X-Priority: 3 X-Barracuda-Connect: n21.bullet.mail.mud.yahoo.com[68.142.206.160] X-Barracuda-Start-Time: 1282151427 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.52 X-Barracuda-Spam-Status: No, SCORE=0.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, MIME_BASE64_TEXT, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.52 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. ------=alewtk592_3623_146401959.089179 Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 ------=alewtk592_3623_146401959.089179 Content-Type: image/gif; name="Hbldbsw6059.gif" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Hbldbsw6059.gif" R0lGODdhJQIKAXcAACwAAAAAJQIKAYcAAAAAADMAAGYAAJkAAMwAAP8AMwAAMzMAM2YAM5kAM8wA M/8AZgAAZjMAZmYAZpkAZswAZv8AmQAAmTMAmWYAmZkAmcwAmf8AzAAAzDMAzGYAzJkAzMwAzP8A /wAA/zMA/2YA/5kA/8wA//8zAAAzADMzAGYzAJkzAMwzAP8zMwAzMzMzM2YzM5kzM8wzM/8zZgAz ZjMzZmYzZpkzZswzZv8zmQAzmTMzmWYzmZkzmcwzmf8zzAAzzDMzzGYzzJkzzMwzzP8z/wAz/zMz /2Yz/5kz/8wz//9mAABmADNmAGZmAJlmAMxmAP9mMwBmMzNmM2ZmM5lmM8xmM/9mZgBmZjNmZmZm ZplmZsxmZv9mmQBmmTNmmWZmmZlmmcxmmf9mzABmzDNmzGZmzJlmzMxmzP9m/wBm/zNm/2Zm/5lm /8xm//+ZAACZADOZAGaZAJmZAMyZAP+ZMwCZMzOZM2aZM5mZM8yZM/+ZZgCZZjOZZmaZZpmZZsyZ Zv+ZmQCZmTOZmWaZmZmZmcyZmf+ZzACZzDOZzGaZzJmZzMyZzP+Z/wCZ/zOZ/2aZ/5mZ/8yZ///M AADMADPMAGbMAJnMAMzMAP/MMwDMMzPMM2bMM5nMM8zMM//MZgDMZjPMZmbMZpnMZszMZv/MmQDM mTPMmWbMmZnMmczMmf/MzADMzDPMzGbMzJnMzMzMzP/M/wDM/zPM/2bM/5nM/8zM////AAD/ADP/ AGb/AJn/AMz/AP//MwD/MzP/M2b/M5n/M8z/M///ZgD/ZjP/Zmb/Zpn/Zsz/Zv//mQD/mTP/mWb/ mZn/mcz/mf//zAD/zDP/zGb/zJn/zMz/zP///wD//zP//2b//5n//8z///8AAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAADHFJgAAAD7dKgAAAD7kAgAAADHXjAAAAD7ZogAAADHU7AAAADHVKAA AAD7cSgAAADHXYgAAADHMCgAAADHZxgAAAD7ncgAAAD7eWgAAAD7eigAAAD7lKgAAAAI/wBlCRxI sKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN mzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jT 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 ------=alewtk592_3623_146401959.089179-- From sandeen@sandeen.net Wed Aug 18 19:46:30 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7J0kTEK139604 for ; Wed, 18 Aug 2010 19:46:30 -0500 X-ASG-Debug-ID: 1282178818-131402970000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CEC4B5435 for ; Wed, 18 Aug 2010 17:46:59 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id uAoKgPD1WPx5hio0 for ; Wed, 18 Aug 2010 17:46:59 -0700 (PDT) Received: from [10.69.165.41] (mobile-166-137-143-212.mycingular.net [166.137.143.212]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 7A6D348820E0; Wed, 18 Aug 2010 19:46:55 -0500 (CDT) References: <20100818114305.GR10429@dastard> In-Reply-To: <20100818114305.GR10429@dastard> Mime-Version: 1.0 (iPhone Mail 8A293) Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Message-Id: <341C002D-C57C-4F73-8B36-5D12B0B91CD5@sandeen.net> Cc: Nohez , "xfs@oss.sgi.com" X-Mailer: iPhone Mail (8A293) From: Eric Sandeen X-ASG-Orig-Subj: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Date: Wed, 18 Aug 2010 19:47:09 -0500 To: Dave Chinner X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1282178819 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38366 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Aug 18, 2010, at 6:43 AM, Dave Chinner wrote: > On Tue, Aug 17, 2010 at 07:12:12PM +0530, Nohez wrote: >> >> Hi, >> >> I had a kernel bug today when running xfs on CentOS v5.5. I moved to >> xfs from ext3 today. >> >> The only application accessing the xfs filesystem is Sybase ASE v15.x. >> Database has been configured to use directio with native kernel >> asynchronous disk i/o enabled. > > The warning is being issued because the application is mixing > buffered IO with direct IO on the same file. i.e. data corruption > waiting to happen. This is an application bug - the responsibility > for ensuring data coherency and integrity is assumed by the > application issuing the direct IO. > You know... A clearer kernel message might help a lot here... -Eric > This was discussed in more detail on a recent thread on this list - > you shoul dbe able to find it in the archives easily enough. > >> Let me know if there is any other information I can provide to help >> with debugging. > > Report it to the application vendor - it's an application bug, not > a filesystem bug. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From SRS0+xhgS+80+fromorbit.com=david@internode.on.net Wed Aug 18 20:34:09 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7J1Y8bx141278 for ; Wed, 18 Aug 2010 20:34:09 -0500 X-ASG-Debug-ID: 1282181677-5ac0000a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB02A789C for ; Wed, 18 Aug 2010 18:34:37 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id 6QwZZqxQFhRK8pDN for ; Wed, 18 Aug 2010 18:34:37 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35847120-1927428 for multiple; Thu, 19 Aug 2010 11:04:35 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Olu1Z-0006Qp-QA; Thu, 19 Aug 2010 11:34:33 +1000 Date: Thu, 19 Aug 2010 11:34:33 +1000 From: Dave Chinner To: Eric Sandeen Cc: Nohez , "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Message-ID: <20100819013433.GP7362@dastard> References: <20100818114305.GR10429@dastard> <341C002D-C57C-4F73-8B36-5D12B0B91CD5@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <341C002D-C57C-4F73-8B36-5D12B0B91CD5@sandeen.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1282181678 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38370 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 18, 2010 at 07:47:09PM -0500, Eric Sandeen wrote: > On Aug 18, 2010, at 6:43 AM, Dave Chinner wrote: > > > On Tue, Aug 17, 2010 at 07:12:12PM +0530, Nohez wrote: > >> > >> Hi, > >> > >> I had a kernel bug today when running xfs on CentOS v5.5. I moved to > >> xfs from ext3 today. > >> > >> The only application accessing the xfs filesystem is Sybase ASE v15.x. > >> Database has been configured to use directio with native kernel > >> asynchronous disk i/o enabled. > > > > The warning is being issued because the application is mixing > > buffered IO with direct IO on the same file. i.e. data corruption > > waiting to happen. This is an application bug - the responsibility > > for ensuring data coherency and integrity is assumed by the > > application issuing the direct IO. > > > You know... A clearer kernel message might help a lot here... Yeah, probably would given we've had more reports of this in the last month or two than we've had in the last five years. What sort of text do you think we should add? I'd argue on the scary side, say: "XFS: filesystem 〈blah>: detected potential data corruption issue caused by application(s) mixing concurrent buffered and direct IO to the same inode. Inode #12345, pid 6789. Please report this issue to your application vendor." What do you think? As it is, I suspect that the test for this race condition will need to change somewhat with range-based flushing now working. Just checking mapping->nr_pages is not sufficient anymore, I think. Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Wed Aug 18 20:38:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,MIME_QP_LONG_LINE autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7J1cHmN141407 for ; Wed, 18 Aug 2010 20:38:17 -0500 X-ASG-Debug-ID: 1282181926-24c0039b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7691B52D1 for ; Wed, 18 Aug 2010 18:38:47 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id hz3P0DymDODbipll for ; Wed, 18 Aug 2010 18:38:47 -0700 (PDT) Received: from [10.69.165.41] (mobile-166-137-143-212.mycingular.net [166.137.143.212]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 56A5548820E0; Wed, 18 Aug 2010 20:38:23 -0500 (CDT) References: <20100818114305.GR10429@dastard> <341C002D-C57C-4F73-8B36-5D12B0B91CD5@sandeen.net> <20100819013433.GP7362@dastard> In-Reply-To: <20100819013433.GP7362@dastard> Mime-Version: 1.0 (iPhone Mail 8A293) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Message-Id: <040DE437-1D0C-45F1-8CC7-CD11D49B6E53@sandeen.net> Cc: Nohez , "xfs@oss.sgi.com" X-Mailer: iPhone Mail (8A293) From: Eric Sandeen X-ASG-Orig-Subj: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Date: Wed, 18 Aug 2010 20:38:33 -0500 To: Dave Chinner X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1282181927 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.10 X-Barracuda-Spam-Status: No, SCORE=-1.10 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MIME_QP_LONG_LINE, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38370 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.82 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Aug 18, 2010, at 8:34 PM, Dave Chinner wrote: > On Wed, Aug 18, 2010 at 07:47:09PM -0500, Eric Sandeen wrote: >> On Aug 18, 2010, at 6:43 AM, Dave Chinner wrote: >>=20 >>> On Tue, Aug 17, 2010 at 07:12:12PM +0530, Nohez wrote: >>>>=20 >>>> Hi, >>>>=20 >>>> I had a kernel bug today when running xfs on CentOS v5.5. I moved to >>>> xfs from ext3 today. >>>>=20 >>>> The only application accessing the xfs filesystem is Sybase ASE v15.x. >>>> Database has been configured to use directio with native kernel >>>> asynchronous disk i/o enabled. >>>=20 >>> The warning is being issued because the application is mixing >>> buffered IO with direct IO on the same file. i.e. data corruption >>> waiting to happen. This is an application bug - the responsibility >>> for ensuring data coherency and integrity is assumed by the >>> application issuing the direct IO. >>>=20 >> You know... A clearer kernel message might help a lot here... >=20 > Yeah, probably would given we've had more reports of this in the > last month or two than we've had in the last five years. What sort > of text do you think we should add? I'd argue on the scary side, > say: >=20 > "XFS: filesystem =E2=8C=A9blah>: detected potential data corruption issue > caused by application(s) mixing concurrent buffered and direct IO to > the same inode. Inode #12345, pid 6789. Please report this issue > to your application vendor." >=20 > What do you think? >=20 Plenty verbose, might want to limit/throttle it, but sure. Maybe include cu= rrent->comm? -Eric > As it is, I suspect that the test for this race condition will > need to change somewhat with range-based flushing now working. > Just checking mapping->nr_pages is not sufficient anymore, I think. >=20 > Cheers, >=20 > Dave. > --=20 > Dave Chinner > david@fromorbit.com >=20 From SRS0+zbUS+80+fromorbit.com=david@internode.on.net Wed Aug 18 20:50:06 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7J1o5oG141890 for ; Wed, 18 Aug 2010 20:50:06 -0500 X-ASG-Debug-ID: 1282183194-647800c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5FDC7CE7376 for ; Wed, 18 Aug 2010 18:59:55 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id 6OMyqd4icN27ykmg for ; Wed, 18 Aug 2010 18:59:55 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35651562-1927428 for multiple; Thu, 19 Aug 2010 11:20:31 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OluGz-0006S0-Gk; Thu, 19 Aug 2010 11:50:29 +1000 Date: Thu, 19 Aug 2010 11:50:29 +1000 From: Dave Chinner To: Eric Sandeen Cc: Nohez , "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Subject: Re: kernel bug in xfs_lrw.c (centos v5.5, directio, aio) Message-ID: <20100819015029.GQ7362@dastard> References: <20100818114305.GR10429@dastard> <341C002D-C57C-4F73-8B36-5D12B0B91CD5@sandeen.net> <20100819013433.GP7362@dastard> <040DE437-1D0C-45F1-8CC7-CD11D49B6E53@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <040DE437-1D0C-45F1-8CC7-CD11D49B6E53@sandeen.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1282183197 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38371 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 18, 2010 at 08:38:33PM -0500, Eric Sandeen wrote: > On Aug 18, 2010, at 8:34 PM, Dave Chinner wrote: > > > On Wed, Aug 18, 2010 at 07:47:09PM -0500, Eric Sandeen wrote: > >> On Aug 18, 2010, at 6:43 AM, Dave Chinner wrote: > >> > >>> On Tue, Aug 17, 2010 at 07:12:12PM +0530, Nohez wrote: > >>>> > >>>> Hi, > >>>> > >>>> I had a kernel bug today when running xfs on CentOS v5.5. I moved to > >>>> xfs from ext3 today. > >>>> > >>>> The only application accessing the xfs filesystem is Sybase ASE v15.x. > >>>> Database has been configured to use directio with native kernel > >>>> asynchronous disk i/o enabled. > >>> > >>> The warning is being issued because the application is mixing > >>> buffered IO with direct IO on the same file. i.e. data corruption > >>> waiting to happen. This is an application bug - the responsibility > >>> for ensuring data coherency and integrity is assumed by the > >>> application issuing the direct IO. > >>> > >> You know... A clearer kernel message might help a lot here... > > > > Yeah, probably would given we've had more reports of this in the > > last month or two than we've had in the last five years. What sort > > of text do you think we should add? I'd argue on the scary side, > > say: > > > > "XFS: filesystem 〈blah>: detected potential data corruption issue > > caused by application(s) mixing concurrent buffered and direct IO to > > the same inode. Inode #12345, pid 6789. Please report this issue > > to your application vendor." > > > > What do you think? > > > Plenty verbose, might want to limit/throttle it, but sure. Rate limiting it is a good idea, anyway. How about this: "XFS: : inode <#>: pid <#> : detected potential data corruption issue due to concurrent buffered and direct IO to the same inode. Please report this issue to your application vendor." > Maybe include current->comm? Yes, I thought about that but hadn't gone looking to find out how easy it was to get the process name. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+74d8d3ecacf3f6577bf1+2552+infradead.org+hch@bombadil.srs.infradead.org Thu Aug 19 04:42:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7J9fwdV164450 for ; Thu, 19 Aug 2010 04:42:00 -0500 X-ASG-Debug-ID: 1282210948-30e5004d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E9612172EE37 for ; Thu, 19 Aug 2010 02:42:28 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id tLjgliocMh8CuWXK for ; Thu, 19 Aug 2010 02:42:28 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Om1di-0000jO-Hp; Thu, 19 Aug 2010 09:42:26 +0000 Date: Thu, 19 Aug 2010 05:42:26 -0400 From: Christoph Hellwig To: Mike Gao Cc: david@fromorbit.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: page discard on page error Subject: Re: page discard on page error Message-ID: <20100819094226.GA15610@infradead.org> References: <20100818155043.GL7362@dastard> <20100818161728.GA3511@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282210948 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Mike, Adding Dave and the list back to the cc list, given that mail didn't contain private information and was addressed to Dave and me. On Wed, Aug 18, 2010 at 01:28:12PM -0500, Mike Gao wrote: > I copied two video files (260M and 400M). The 260M one is done and cmp the > same. But the 400M cmp doesn't match. > cmp /mnt/USB0disk1/data/iCarly-4.ts ./iCarly-4.ts > /mnt/USB0disk1/data/iCarly-4.ts ./iCarly-4.ts differ: char 112919977, line > 516965 > try again > /mnt/USB0disk1/data/iCarly-4.ts ./iCarly-4.ts differ: char 78496169, line > 368800 > > Do you remember if there is still somewhere discard the page silence? I will > try the latest sync to see if this is still the same. There shouldn't be silent discards. Did you just do a straight copy from a usb device to a local filesystem? From michael.monnerie@is.it-management.at Thu Aug 19 06:12:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JBCNWK168353 for ; Thu, 19 Aug 2010 06:12:24 -0500 X-ASG-Debug-ID: 1282216935-4c7e03e00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 67629CEACE9 for ; Thu, 19 Aug 2010 04:22:16 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id PEaQU5i2aXXfuDqk for ; Thu, 19 Aug 2010 04:22:16 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 2D772701 for ; Thu, 19 Aug 2010 13:12:50 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id D975C401C3A for ; Thu, 19 Aug 2010 13:12:49 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: LWN.net article: creating 1 billion files -> XFS looses Subject: LWN.net article: creating 1 billion files -> XFS looses Date: Thu, 19 Aug 2010 13:12:45 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart22111549.i8vhoulC4t"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008191312.49346@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1282216936 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38409 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart22111549.i8vhoulC4t Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The subject is a bit harsh, but overall the article says: XFS is slowest on creating and deleting a billion files XFS fsck needs 30GB RAM to fsck that 100TB filesystem. http://lwn.net/SubscriberLink/400629/3fb4bc34d6223b32/ =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart22111549.i8vhoulC4t Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxtEbEACgkQzhSR9xwSCbQEPwCfdrvdTAQwslB/Zo8tfpcP/wO0 tBEAn19NvyriqrzsP8OYAgGIvs0q7yLR =iDRo -----END PGP SIGNATURE----- --nextPart22111549.i8vhoulC4t-- From michael.monnerie@is.it-management.at Thu Aug 19 06:33:29 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JBXTDW169053 for ; Thu, 19 Aug 2010 06:33:29 -0500 X-ASG-Debug-ID: 1282217636-5aba03c00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E18CE8BFA for ; Thu, 19 Aug 2010 04:33:57 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 7mEs28OEEpTrtxDW for ; Thu, 19 Aug 2010 04:33:57 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 49C6D400 for ; Thu, 19 Aug 2010 13:33:56 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 08461401C3A for ; Thu, 19 Aug 2010 13:33:55 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: LWN.net article: The end of block barriers Subject: LWN.net article: The end of block barriers Date: Thu, 19 Aug 2010 13:33:55 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart11555881.DRxQABo0vy"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008191333.55503@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1282217637 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38409 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart11555881.DRxQABo0vy Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable http://lwn.net/SubscriberLink/400541/c95bd1b7d2a7b5d5/ A good article, but it leaves some questions open. I've asked them in=20 the article's discussions, maybe an answer is already there. =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart11555881.DRxQABo0vy Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxtFqMACgkQzhSR9xwSCbQuXgCfUJVggLpIrI2BUg38D+lQuoJX DfMAn0O1h6SVuZj3d6Fji419mwTijAFx =DXNc -----END PGP SIGNATURE----- --nextPart11555881.DRxQABo0vy-- From BATV+74d8d3ecacf3f6577bf1+2552+infradead.org+hch@bombadil.srs.infradead.org Thu Aug 19 07:03:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JC32kh170057 for ; Thu, 19 Aug 2010 07:03:04 -0500 X-ASG-Debug-ID: 1282219976-1f5902090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3BF1CCEA7FE for ; Thu, 19 Aug 2010 05:12:56 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id LZENIMVfL5hYdPHA for ; Thu, 19 Aug 2010 05:12:56 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Om3qE-0003V9-Vg; Thu, 19 Aug 2010 12:03:30 +0000 Date: Thu, 19 Aug 2010 08:03:30 -0400 From: Christoph Hellwig To: Michael Monnerie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: LWN.net article: The end of block barriers Subject: Re: LWN.net article: The end of block barriers Message-ID: <20100819120330.GA9358@infradead.org> References: <201008191333.55503@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201008191333.55503@zmi.at> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282219977 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 19, 2010 at 01:33:55PM +0200, Michael Monnerie wrote: > http://lwn.net/SubscriberLink/400541/c95bd1b7d2a7b5d5/ > > A good article, but it leaves some questions open. I've asked them in > the article's discussions, maybe an answer is already there. Just take a look at the linux-fsevel list where all this work is happening right now. From BATV+74d8d3ecacf3f6577bf1+2552+infradead.org+hch@bombadil.srs.infradead.org Thu Aug 19 07:04:42 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JC4gto170118 for ; Thu, 19 Aug 2010 07:04:42 -0500 X-ASG-Debug-ID: 1282219513-1a0a007b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4AF1C9198 for ; Thu, 19 Aug 2010 05:05:13 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id sZ1HSYvKdJvqCLkF for ; Thu, 19 Aug 2010 05:05:13 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Om3rs-0004Ae-Tl; Thu, 19 Aug 2010 12:05:12 +0000 Date: Thu, 19 Aug 2010 08:05:12 -0400 From: Christoph Hellwig To: Michael Monnerie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: LWN.net article: creating 1 billion files -> XFS looses Subject: Re: LWN.net article: creating 1 billion files -> XFS looses Message-ID: <20100819120512.GB9358@infradead.org> References: <201008191312.49346@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201008191312.49346@zmi.at> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282219513 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 19, 2010 at 01:12:45PM +0200, Michael Monnerie wrote: > The subject is a bit harsh, but overall the article says: > XFS is slowest on creating and deleting a billion files > XFS fsck needs 30GB RAM to fsck that 100TB filesystem. > > http://lwn.net/SubscriberLink/400629/3fb4bc34d6223b32/ The creation and deletion performance is a known issue, and too a large extent fixes by the new delaylog code. We're not quite as fast as ext4 yet, but it's getting close. The repair result looks a lot like the pre-3.1.0 xfsprogs repair. From BATV+74d8d3ecacf3f6577bf1+2552+infradead.org+hch@bombadil.srs.infradead.org Thu Aug 19 07:05:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JC5wwn170173 for ; Thu, 19 Aug 2010 07:05:58 -0500 X-ASG-Debug-ID: 1282219588-67eb03b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 014B591BC for ; Thu, 19 Aug 2010 05:06:28 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id hrJZ1aLDaA2zimWU for ; Thu, 19 Aug 2010 05:06:28 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Om3t5-0004Ep-Bt; Thu, 19 Aug 2010 12:06:27 +0000 Date: Thu, 19 Aug 2010 08:06:27 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/8] xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE Subject: Re: [PATCH 2/8] xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE Message-ID: <20100819120627.GA16045@infradead.org> References: <1282131379-29932-1-git-send-email-david@fromorbit.com> <1282131379-29932-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282131379-29932-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282219589 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This new version looks good to me, Reviewed-by: Christoph Hellwig From BATV+74d8d3ecacf3f6577bf1+2552+infradead.org+hch@bombadil.srs.infradead.org Thu Aug 19 07:11:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JCBNmH170309 for ; Thu, 19 Aug 2010 07:11:23 -0500 X-ASG-Debug-ID: 1282219914-1a0600f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3CA909202 for ; Thu, 19 Aug 2010 05:11:54 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Hzf8k4KvyJpPIcO3 for ; Thu, 19 Aug 2010 05:11:54 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Om3yL-0006hw-6n; Thu, 19 Aug 2010 12:11:53 +0000 Date: Thu, 19 Aug 2010 08:11:53 -0400 From: Christoph Hellwig To: nathans@aconex.com Cc: xfs X-ASG-Orig-Subj: Re: Review: xfsprogs with libblkid enabled for Debian Subject: Re: Review: xfsprogs with libblkid enabled for Debian Message-ID: <20100819121153.GB16045@infradead.org> References: <472498892.114291282107960876.JavaMail.root@mail-au.aconex.com> <86828409.114311282107988740.JavaMail.root@mail-au.aconex.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86828409.114311282107988740.JavaMail.root@mail-au.aconex.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282219914 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 18, 2010 at 03:06:28PM +1000, nathans@aconex.com wrote: > Hi guys, > > Attached patch adds support for libblkid in Debian builds. > There's a couple of other trivial things fixed up while the > package was building - man page typos reported by lintian, > fix source tarball generation (and deb build) when libblkid > is enabled (*must* descend into libdisk to pick up sources) > ... but its all pretty straight forward. > > I've checked that mkfs.xfs is linked as expected too. :) All the changes in here look good, but I'd be much happier if you'd submit separate changes with separate changelogs for the manpage updates and the libdisk packaging fix. As for the blkid-dev build-dep: we need at least version 2.17 of it as that introduced the symbols we need, I think a versioned dependency for this would be in order. The doc/CHANGES update should include the names of external contributors where applicable, and currently the release date for is set as part of the release.sh process. I'm fine with pushing out a new 3.1.3 release as it's time anyway, but can we also include Dave's patch to add XFS_IOC_ZERO_RANGE support to xfs_io and the xfsctl manpage first? Next week also has Alex back from vacation, so I'd suggest waiting if he has any input on this. From michael.monnerie@is.it-management.at Thu Aug 19 07:44:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JCiuqm171589 for ; Thu, 19 Aug 2010 07:44:56 -0500 X-ASG-Debug-ID: 1282221924-5e8100590000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DFC2E1E4C4B4 for ; Thu, 19 Aug 2010 05:45:24 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id ha9hV9Oz40dGKela for ; Thu, 19 Aug 2010 05:45:24 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 69432701 for ; Thu, 19 Aug 2010 14:45:23 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 08DFB401C3A for ; Thu, 19 Aug 2010 14:45:23 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: LWN.net article: creating 1 billion files -> XFS looses Subject: Re: LWN.net article: creating 1 billion files -> XFS looses Date: Thu, 19 Aug 2010 14:45:22 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: <201008191312.49346@zmi.at> <20100819120512.GB9358@infradead.org> In-Reply-To: <20100819120512.GB9358@infradead.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart4567438.0lh2FLJA9i"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008191445.22568@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1282221924 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38414 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart4567438.0lh2FLJA9i Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Donnerstag, 19. August 2010 Christoph Hellwig wrote: > The creation and deletion performance is a known issue, and too a > large extent fixes by the new delaylog code. We're not quite as > fast as ext4 yet, but it's getting close. >=20 > The repair result looks a lot like the pre-3.1.0 xfsprogs repair. =20 Yes I know. I thought some XFS dev might contact the Author to do some=20 re-testing, as a reputation is quickly destroyed by such articles and=20 takes long to be returned. Just this week I had a friend in a FS=20 discussion saying "ins't XFS destroying/zeroing files on power=20 failure?". That information is ancient, but things like that stay in=20 peoples brain for(almost)ever. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart4567438.0lh2FLJA9i Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxtJ2IACgkQzhSR9xwSCbRPMACeJWWNXtfwlOOjKobwjYGf0jjh En0AniDOxAhKYoN693iSBTc6GGNO51lH =OU1R -----END PGP SIGNATURE----- --nextPart4567438.0lh2FLJA9i-- From eflorac@intellique.com Thu Aug 19 08:10:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JDAZV7172502 for ; Thu, 19 Aug 2010 08:10:36 -0500 X-ASG-Debug-ID: 1282223460-620101860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp4-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F3BCD1E4CA3E for ; Thu, 19 Aug 2010 06:11:04 -0700 (PDT) Received: from smtp4-g21.free.fr (smtp4-g21.free.fr [212.27.42.4]) by cuda.sgi.com with ESMTP id C9Ry6QHacbSAH87u for ; Thu, 19 Aug 2010 06:11:04 -0700 (PDT) Received: from harpe.intellique.com (unknown [82.225.196.72]) by smtp4-g21.free.fr (Postfix) with ESMTP id 2DFAC4C8155 for ; Thu, 19 Aug 2010 15:10:56 +0200 (CEST) Date: Thu, 19 Aug 2010 15:10:50 +0200 From: Emmanuel Florac To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: LWN.net article: creating 1 billion files -> XFS looses Subject: Re: LWN.net article: creating 1 billion files -> XFS looses Message-ID: <20100819151050.04d71e1f@harpe.intellique.com> In-Reply-To: <201008191312.49346@zmi.at> References: <201008191312.49346@zmi.at> Organization: Intellique X-Mailer: Claws Mail 3.7.3 (GTK+ 2.16.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA1; boundary="Sig_/_1fLZiziONhlE401MG3.ibF"; protocol="application/pgp-signature" X-Barracuda-Connect: smtp4-g21.free.fr[212.27.42.4] X-Barracuda-Start-Time: 1282223465 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38416 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --Sig_/_1fLZiziONhlE401MG3.ibF Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Le Thu, 19 Aug 2010 13:12:45 +0200 Michael Monnerie =E9crivait: > The subject is a bit harsh, but overall the article says: > XFS is slowest on creating and deleting a billion files > XFS fsck needs 30GB RAM to fsck that 100TB filesystem. Too bad I haven't got a 100 TB machine at hand. However I have a 24TB system dedicated to tests. I'm pretty sure we can do much better with XFS and the proper mount options :) In fact, I have an unused 40 TB array too. See this one later... Stay tuned :) --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ --Sig_/_1fLZiziONhlE401MG3.ibF Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkxtLVoACgkQX3jQXNUicVYdkwCg2e/nPbuckZSnq8IptdJsRnmw fEMAoOpym/fDALIw1uisvTGp1B72gv+Q =sYp5 -----END PGP SIGNATURE----- --Sig_/_1fLZiziONhlE401MG3.ibF-- From stan@hardwarefreak.com Thu Aug 19 08:54:41 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JDsefg174604 for ; Thu, 19 Aug 2010 08:54:41 -0500 X-ASG-Debug-ID: 1282226110-6bac03570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 448BF1E4C8A9 for ; Thu, 19 Aug 2010 06:55:10 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id F9A181LZgELZPL8L for ; Thu, 19 Aug 2010 06:55:10 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 71CDA6C2D0 for ; Thu, 19 Aug 2010 08:55:10 -0500 (CDT) Message-ID: <4C6D37BD.3060900@hardwarefreak.com> Date: Thu, 19 Aug 2010 08:55:09 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: LWN.net article: creating 1 billion files -> XFS looses Subject: Re: LWN.net article: creating 1 billion files -> XFS looses References: <201008191312.49346@zmi.at> <20100819120512.GB9358@infradead.org> <201008191445.22568@zmi.at> In-Reply-To: <201008191445.22568@zmi.at> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1282226111 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38420 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Monnerie put forth on 8/19/2010 7:45 AM: > Just this week I had a friend in a FS > discussion saying "ins't XFS destroying/zeroing files on power > failure?". That information is ancient, but things like that stay in > peoples brain for(almost)ever. Had a similar lengthy discussion over on debian-users not more than a month or so ago. Same thing there. Of the 10 or so people active in the thread, I'd say 8 of them were anti-XFS because of the "corruption due to power failure" issue that they'd "read about" years before. Not a single one of them had ever used XFS. A couple of them considered it a "hobbyist quality" filesystem that might be ready for production use in a few years. Ahh the ignorance abounds in our world... I did my best to educate them, sending them to the Wikipedia page on XFS and to the xfs.org site and specifically the relevant sections of the FAQ. Unfortunately there are some people who simply refuse to be educated. But those type of people aren't candidates for XFS anyway, thankfully. ;) -- Stan From seo@orangewebtech.com Thu Aug 19 09:17:39 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_50,FROM_EXCESS_BASE64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JEHdp5175749 for ; Thu, 19 Aug 2010 09:17:39 -0500 X-ASG-Debug-ID: 1282227489-1fc0001a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-px0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2DBDD8E1C for ; Thu, 19 Aug 2010 07:18:09 -0700 (PDT) Received: from mail-px0-f181.google.com (mail-px0-f181.google.com [209.85.212.181]) by cuda.sgi.com with ESMTP id 196FmlbE66HObDPR for ; Thu, 19 Aug 2010 07:18:09 -0700 (PDT) Received: by pxi5 with SMTP id 5so1055916pxi.26 for ; Thu, 19 Aug 2010 07:18:08 -0700 (PDT) Received: by 10.114.133.18 with SMTP id g18mr11331142wad.48.1282227488064; Thu, 19 Aug 2010 07:18:08 -0700 (PDT) Received: from Ankur-PC ([122.170.42.46]) by mx.google.com with ESMTPS id d35sm2751389waa.21.2010.08.19.07.18.05 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 19 Aug 2010 07:18:07 -0700 (PDT) From: "=?utf-8?B?U2FuICggT3JhbmdlVGVjaG5vbGFiKQ==?=" To: xfs@oss.sgi.com X-ASG-Orig-Subj: =?utf-8?B?cGFydG5lcnNoaXAgaXNzdWU=?= Subject: =?utf-8?B?cGFydG5lcnNoaXAgaXNzdWU=?= Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Thu, 19 Aug 2010 19:45:49 +0530 Message-ID: <20100819141549151.27ED3A8A2A6005E6@Ankur-PC> X-Mailer: Web CEO 8.1.0.3903 X-Barracuda-Connect: mail-px0-f181.google.com[209.85.212.181] X-Barracuda-Start-Time: 1282227490 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3454 1.0000 -0.1693 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.89 X-Barracuda-Spam-Status: No, SCORE=0.89 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FROM_EXCESS_BASE64, FROM_EXCESS_BASE64_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38420 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 FROM_EXCESS_BASE64 From: base64 encoded unnecessarily 1.05 FROM_EXCESS_BASE64_2 From: base64 encoded unnecessarily X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean SGVsbG8sDQpTb3JyeSB0byBib3RoZXIgeW91IGFnYWluLiBNeSBuYW1lIGlzIFNhbiAoIE9yYW5n ZVRlY2hub2xhYik7IEkgY29udGFjdGVkIHlvdSBzb21lIHRpbWUgYWdvIG9uIHRoZSBwb3NzaWJs ZSBwYXJ0bmVyc2hpcCBpc3N1ZS4NCkluIHR3byB3b3JkcywgSSBzZWFyY2hlZCBmb3IgdGhlIHdl YnNpdGVzIHJlbGF0ZWQgdG8gbXkgd2Vic2l0ZSB0b3BpYywgYW5kIGZvdW5kIHlvdXIgc2l0ZSBy ZWFsbHkgYXR0cmFjdGl2ZSBhbmQgY29udGVudC1yaWNoLg0KSSB0aGluayB3ZSBjb3VsZCBiZW5l Zml0IGZyb20gbGluayBleGNoYW5nZSwgYXMgbXkgd2Vic2l0ZSBodHRwOi8vd3d3Lm9yYW5nZXRl Y2hub2xhYi5jb20vIGhhcyBtdWNoIGluIGNvbW1vbiB3aXRoIHlvdXJzLg0KSSB3aWxsIGJlIGds YWQgdG8gbGluayB0byB5b3VyIHNpdGUgaW4gcmV0dXJuIHRvIHlvdSBsaW5raW5nIGJhY2sgdG8g bWluZS4NClBsZWFzZSBsZXQgbWUga25vdyBpZiB5b3UgZmVlbCBpbnRlcmVzdGVkIGluIHRoZSBw b3NzaWJsZSBwYXJ0bmVyc2hpcC4gWW91IGNhbiBjb250YWN0IG1lIGF0IHNlb0BvcmFuZ2V3ZWJ0 ZWNoLmNvbS4NCg0KQmVzdCByZWdhcmRzLA0KU2FuICggT3JhbmdlVGVjaG5vbGFiKSwNCmh0dHA6 Ly93d3cub3JhbmdldGVjaG5vbGFiLmNvbS8NCg== From nathans@aconex.com Thu Aug 19 16:40:54 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JLerhR198879 for ; Thu, 19 Aug 2010 16:40:53 -0500 X-ASG-Debug-ID: 1282254648-310b011d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F195F14D6D67 for ; Thu, 19 Aug 2010 14:50:49 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id EIQj71jq2uWzOHus for ; Thu, 19 Aug 2010 14:50:49 -0700 (PDT) Received: from postoffice.aconex.com (localhost [127.0.0.1]) by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 9E645893D14; Fri, 20 Aug 2010 07:41:20 +1000 (EST) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id aMK3AmFBbVvQGkHD; Fri, 20 Aug 2010 07:41:20 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10]) by postoffice.aconex.com (Postfix) with ESMTP id 8EA55A50263; Fri, 20 Aug 2010 07:41:20 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 81C2E9D0003; Fri, 20 Aug 2010 07:41:20 +1000 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y1sBbTBbi+We; Fri, 20 Aug 2010 07:41:16 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by gatekeeper.aconex.com (Postfix) with ESMTP id 246369D0002; Fri, 20 Aug 2010 07:41:16 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by mail-au.aconex.com (Postfix) with ESMTP id 1CDC264B865A; Fri, 20 Aug 2010 07:41:16 +1000 (EST) Date: Fri, 20 Aug 2010 07:41:16 +1000 (EST) From: Nathan Scott To: Christoph Hellwig Cc: xfs Message-ID: <1359964397.180811282254076015.JavaMail.root@mail-au.aconex.com> In-Reply-To: <20100819121153.GB16045@infradead.org> X-ASG-Orig-Subj: Re: Review: xfsprogs with libblkid enabled for Debian Subject: Re: Review: xfsprogs with libblkid enabled for Debian MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 5.0.18_GA_3011.RHEL5_64 (ZimbraWebClient - SAF3 (Mac)/5.0.18_GA_3011.RHEL5_64) X-Barracuda-Connect: mail.aconex.com[203.89.202.182] X-Barracuda-Start-Time: 1282254649 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38450 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean ----- "Christoph Hellwig" wrote: > On Wed, Aug 18, 2010 at 03:06:28PM +1000, nathans@aconex.com wrote: > > Hi guys, > > > > Attached patch adds support for libblkid in Debian builds. > > There's a couple of other trivial things fixed up while the > > package was building - man page typos reported by lintian, > > fix source tarball generation (and deb build) when libblkid > > is enabled (*must* descend into libdisk to pick up sources) > > ... but its all pretty straight forward. > > > > I've checked that mkfs.xfs is linked as expected too. :) > > All the changes in here look good, but I'd be much happier if you'd > submit separate changes with separate changelogs for the manpage > updates and the libdisk packaging fix. > Yep, will do. > As for the blkid-dev build-dep: we need at least version 2.17 of it > as that introduced the symbols we need, I think a versioned > dependency for this would be in order. Good point, will do. > The doc/CHANGES update should include the names of external > contributors > where applicable, and currently the release date for is set as part > of the release.sh process. Oh, OK - hmm, will go through the git logs again & see what I can find. > I'm fine with pushing out a new 3.1.3 release as it's time anyway, > but > can we also include Dave's patch to add XFS_IOC_ZERO_RANGE support to > xfs_io and the xfsctl manpage first? Sure, will wait for that before I commit anything. > Next week also has Alex back from vacation, so I'd suggest waiting if > he has any input on this. No worries. cheers. -- Nathan From ygao.linux@gmail.com Thu Aug 19 17:32:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JMW3F1201529 for ; Thu, 19 Aug 2010 17:32:04 -0500 X-ASG-Debug-ID: 1282257154-284202500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 940A89D31 for ; Thu, 19 Aug 2010 15:32:34 -0700 (PDT) Received: from mail-qy0-f181.google.com (mail-qy0-f181.google.com [209.85.216.181]) by cuda.sgi.com with ESMTP id DKHClxT2nmiHxw6f for ; Thu, 19 Aug 2010 15:32:34 -0700 (PDT) Received: by qyk33 with SMTP id 33so2426251qyk.5 for ; Thu, 19 Aug 2010 15:32:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=DUXKh9II7xSEbzdpcqWS7bzdOgw4EN25YtlAxykNWO8=; b=PvI1kPU9SLr0T3bYp0JrdrEFKMFeqFwUUPLtywROTnAQz6jUe3WNeTuJoTm+MYlEUo 59ZmI51jCB2mdwLbOwLPCYtpl0xFsN0zR33ezt9HxuD8/ksPmqY8BdGaClGoFLfUlAUU nHfasHzIOIzXeb1cQaG8ipxTwJ3wcTXxoQ69Y= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=pAECve9e6gBxQr2OP4Mg6BO5A2kY/loW3018r6huN4HmO58lQFpLC8CUWv5G7fjHka BCxawunmQm62r1TiWNAhAKtdpEcu9Bqm4NnYfLfPlvCNcZQhGpeNmtkSxh96E02HYdG/ fVQxzpXkUCDh0D/EB61MSz+4JRLrUqlbpD+2U= MIME-Version: 1.0 Received: by 10.229.231.8 with SMTP id jo8mr470326qcb.45.1282257153769; Thu, 19 Aug 2010 15:32:33 -0700 (PDT) Received: by 10.229.141.207 with HTTP; Thu, 19 Aug 2010 15:32:33 -0700 (PDT) Date: Thu, 19 Aug 2010 17:32:33 -0500 Message-ID: X-ASG-Orig-Subj: Question about XFS recovery and error Subject: Question about XFS recovery and error From: Mike Gao To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=00163630f1d12940dc048e34c2e8 X-Barracuda-Connect: mail-qy0-f181.google.com[209.85.216.181] X-Barracuda-Start-Time: 1282257154 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --00163630f1d12940dc048e34c2e8 Content-Type: text/plain; charset=ISO-8859-1 The USB key is mounted automatically at boot and no error report with XFS recovery. But when I did a file copy on a USB key which XFS filesystem could be corrupted by some reason, I got endless repeat of ERROR message printed on the screen. Should XFS recovery this at the beginning when mounting? [42949387.250000] Starting XFS recovery on filesystem: sda (logdev: internal) [42949387.330000] Ending XFS recovery on filesystem: sda (logdev: internal) [42949388.600000] Starting XFS recovery on filesystem: sdb1 (logdev: internal) [42949388.640000] Ending XFS recovery on filesystem: sdb1 (logdev: internal) cp /mnt/USB0disk1/iCarly-4.ts ./iCarly-4-10.ts [ 3234.740000] Filesystem "sda": XFS internal error xfs_btree_check_sblock at line 120 of file fs/xfs/xfs_btree.c. Caller 0x8718e102 [ 3234.740000] [ 3234.750000] regs can't be NULL. [ 3234.760000] Filesystem "sda": page discard on page 876a1914, inode 0x91, offset 91160576. [ 3235.150000] Filesystem "sda": XFS internal error xfs_btree_check_sblock at line 120 of file fs/xfs/xfs_btree.c. Caller 0x8718e102 Thanks, Mike --00163630f1d12940dc048e34c2e8 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
The USB key is mounted automatically at boot and no error report with = XFS recovery.
But when I did a file copy on a USB key which XFS filesy= stem could be corrupted by some reason,
I got endless repeat of ERROR m= essage printed on the screen.=A0

Should XFS recovery this at the beginning when mounting= ?=A0

[42949387.250000] Starting XFS recovery = on filesystem: sda (logdev: internal)
[42949387.330000] Ending XF= S recovery on filesystem: sda (logdev: internal)
[42949388.600000] Starting XFS recovery on filesystem: sdb1 (logdev: i= nternal)
[42949388.640000] Ending XFS recovery on filesystem: sdb= 1 (logdev: internal)


cp /mnt/USB0disk1/iCarly-4.ts ./iCarly-4-10.ts

[ 3= 234.740000] Filesystem "sda": XFS internal error xfs_btree_check_= sblock at line 120 of file fs/xfs/xfs_btree.c. =A0Caller 0x8718e102
[ 3234.740000]
[ 3234.750000] regs can't be NULL.
<= div>[ 3234.760000] Filesystem "sda": page discard on page 876a191= 4, inode 0x91, offset 91160576.
[ 3235.150000] Filesystem "s= da": XFS internal error xfs_btree_check_sblock at line 120 of file fs/= xfs/xfs_btree.c. =A0Caller 0x8718e102

Thanks,
Mike
--00163630f1d12940dc048e34c2e8-- From michael.monnerie@is.it-management.at Thu Aug 19 18:17:54 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7JNHs5T203868 for ; Thu, 19 Aug 2010 18:17:54 -0500 X-ASG-Debug-ID: 1282260467-30c603070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 26556CF6186 for ; Thu, 19 Aug 2010 16:27:47 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id W5Smbf0cvqICVNlv for ; Thu, 19 Aug 2010 16:27:47 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id BE56617A for ; Fri, 20 Aug 2010 01:18:19 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 726F7401C3A for ; Fri, 20 Aug 2010 01:18:19 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Question about XFS recovery and error Subject: Re: Question about XFS recovery and error Date: Fri, 20 Aug 2010 01:18:18 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35-zmi; KDE/4.3.5; x86_64; ; ) References: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart5590563.RSI40aLk2m"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008200118.18306@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1282260469 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0206 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38457 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart5590563.RSI40aLk2m Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On Freitag, 20. August 2010 Mike Gao wrote: > Should XFS recovery this at the beginning when mounting? =20 I've had this several times. XFS doesn't normally detect errors during=20 mount, because it doesn't run fsck - no filesystem does that. So you'll=20 trip over errors as you use the files involved - like this one. =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart5590563.RSI40aLk2m Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkxtu7oACgkQzhSR9xwSCbR6mACgr+RrV14pWu0kLx0NV+DJaQuY 0lcAoKYnOtGGBnU4eRQe4F02lmqSZRFr =/ZOW -----END PGP SIGNATURE----- --nextPart5590563.RSI40aLk2m-- From SRS0+HNOA+81+fromorbit.com=david@internode.on.net Fri Aug 20 02:54:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7K7sv9M225203 for ; Fri, 20 Aug 2010 02:54:58 -0500 X-ASG-Debug-ID: 1282290926-4d12009d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B658D369 for ; Fri, 20 Aug 2010 00:55:27 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id iMCYkIoajide8hOA for ; Fri, 20 Aug 2010 00:55:27 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 35754378-1927428 for multiple; Fri, 20 Aug 2010 17:25:25 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OmMRg-0008M2-8l; Fri, 20 Aug 2010 17:55:24 +1000 Date: Fri, 20 Aug 2010 17:55:24 +1000 From: Dave Chinner To: Michael Monnerie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: LWN.net article: creating 1 billion files -> XFS looses Subject: Re: LWN.net article: creating 1 billion files -> XFS looses Message-ID: <20100820075524.GA31488@dastard> References: <201008191312.49346@zmi.at> <20100819120512.GB9358@infradead.org> <201008191445.22568@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201008191445.22568@zmi.at> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1282290928 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38492 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 19, 2010 at 02:45:22PM +0200, Michael Monnerie wrote: > On Donnerstag, 19. August 2010 Christoph Hellwig wrote: > > The creation and deletion performance is a known issue, and too a > > large extent fixes by the new delaylog code. We're not quite as > > fast as ext4 yet, but it's getting close. > > > > The repair result looks a lot like the pre-3.1.0 xfsprogs repair. > > Yes I know. I thought some XFS dev might contact the Author to do some > re-testing, as a reputation is quickly destroyed by such articles and > takes long to be returned. Just this week I had a friend in a FS > discussion saying "ins't XFS destroying/zeroing files on power > failure?". That information is ancient, but things like that stay in > peoples brain for(almost)ever. Don't worry too much - I have the details of the test that was run and alredy know why XFS appeared so slow: it was single threaded. Immediately, that means XFS will be slower to create 1b files regardless of any other detail. Look at it this way - the initial numbers I'm seeing on my test rig are sustained create rates of about 8,000/s with default mkfs/mount options (i.e. no tuning, no delayed logging, 32k logbsize, etc) and it is burning exactly one of 8 CPUs in the VM. I know I can get an order of magnitude better performance out of XFS on this VM.... It'll take me a few days to run the numbers to be able to write a solid reply, but I have every confidence that a "create 1b inodes" benchmark tuned to XFS's strengths rather than one designed to avoid ext4's weaknesses will show very, very different results. In the meantime, there is no need to start a flamewar. ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From ygao.linux@gmail.com Fri Aug 20 16:53:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_20,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7KLrwCP256188 for ; Fri, 20 Aug 2010 16:53:58 -0500 X-ASG-Debug-ID: 1282341840-102f033a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f174.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5660515D7950 for ; Fri, 20 Aug 2010 15:04:00 -0700 (PDT) Received: from mail-qy0-f174.google.com (mail-qy0-f174.google.com [209.85.216.174]) by cuda.sgi.com with ESMTP id jSNza3im2hxBDlK3 for ; Fri, 20 Aug 2010 15:04:00 -0700 (PDT) Received: by qyk9 with SMTP id 9so931883qyk.5 for ; Fri, 20 Aug 2010 14:54:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=8aEiKIddwY8l96pzWhvsV3NEsOP2sga0LTcJNc66ECw=; b=B2n4jiQaW7NWdbf1SodUHUrr7ECkX+uPDDdldWc1KxnkShmpWJmnv4hKvFVbbH6oNa Xvn6BTkSz7RdC4d8F0rHzQTLykzlECnpwkXKZIr2a4h4aaKogrPXg45dio5wDbA8BeFR jFY1AuDEKNZueBbC1FIP34qXoBSYu9JyAe9iQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=F+hueYD7y01WiAck+XqU8f3Fw6Do3uemGB1Vkuny0Ww+mNUxMcMlcxzvqDdKC3XjSJ IJZTJnP0zws5wVEr6/+6xw5yhxiKFOoHjr2lPYo4gkZ1bQLct4FwCOo9M6UcdB8x0dz5 ohwKUxWediTNQ5hWu8+1RxacqaaiMo0SEJPAY= MIME-Version: 1.0 Received: by 10.229.87.74 with SMTP id v10mr1600515qcl.38.1282341268229; Fri, 20 Aug 2010 14:54:28 -0700 (PDT) Received: by 10.229.141.207 with HTTP; Fri, 20 Aug 2010 14:54:28 -0700 (PDT) In-Reply-To: References: Date: Fri, 20 Aug 2010 16:54:28 -0500 Message-ID: X-ASG-Orig-Subj: Re: xfs Digest, Vol 24, Issue 44 Subject: Re: xfs Digest, Vol 24, Issue 44 From: Mike Gao To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=0016364ef503c60fb7048e4857dc X-Barracuda-Connect: mail-qy0-f174.google.com[209.85.216.174] X-Barracuda-Start-Time: 1282341841 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38546 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0016364ef503c60fb7048e4857dc Content-Type: text/plain; charset=ISO-8859-1 The question is "Is there anything else we can do except print these message? For example, call a recovery function which already be implemented in user tools to fix it. I ask this because if the disk is in customer's side, they may not be able to format it. Thanks, Mike > > > > ------------------------------ > > Message: 2 > Date: Thu, 19 Aug 2010 17:32:33 -0500 > From: Mike Gao > Subject: Question about XFS recovery and error > To: xfs@oss.sgi.com > Message-ID: > > > > Content-Type: text/plain; charset="iso-8859-1" > > The USB key is mounted automatically at boot and no error report with XFS > recovery. > But when I did a file copy on a USB key which XFS filesystem could be > corrupted by some reason, > I got endless repeat of ERROR message printed on the screen. > > Should XFS recovery this at the beginning when mounting? > > [42949387.250000] Starting XFS recovery on filesystem: sda (logdev: > internal) > [42949387.330000] Ending XFS recovery on filesystem: sda (logdev: internal) > [42949388.600000] Starting XFS recovery on filesystem: sdb1 (logdev: > internal) > [42949388.640000] Ending XFS recovery on filesystem: sdb1 (logdev: > internal) > > > cp /mnt/USB0disk1/iCarly-4.ts ./iCarly-4-10.ts > > [ 3234.740000] Filesystem "sda": XFS internal error xfs_btree_check_sblock > at line 120 of file fs/xfs/xfs_btree.c. Caller 0x8718e102 > [ 3234.740000] > [ 3234.750000] regs can't be NULL. > [ 3234.760000] Filesystem "sda": page discard on page 876a1914, inode 0x91, > offset 91160576. > [ 3235.150000] Filesystem "sda": XFS internal error xfs_btree_check_sblock > at line 120 of file fs/xfs/xfs_btree.c. Caller 0x8718e102 > > Thanks, > Mike > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://oss.sgi.com/pipermail/xfs/attachments/20100819/62574c74/attachment.html > > > > ------------------------------ > > > > End of xfs Digest, Vol 24, Issue 44 > *********************************** > --0016364ef503c60fb7048e4857dc Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
The question is "Is there anything else we can do except print the= se message?
For example, call a recovery function which already be impl= emented in user tools to fix it.
I ask this because if the disk i= s in customer's side, they may not be able to format it.

Thanks,
Mike
=A0=A0=A0



------------------------------

Message: 2
Date: Thu, 19 Aug 2010 17:32:33 -0500
From: Mike Gao <ygao.linux@gmail= .com>
Subject: Question about XFS recovery and error
To: xfs@oss.sgi.com
Message-ID:
=A0 =A0 =A0 =A0<AANLkTi=3DprcC7ky3ikNTJ+py8XnALGf4THSOCUwqYhxaq@mail.gma= il.com>
Content-Type: text/plain; charset=3D"iso-8859-1"

The USB key is mounted automatically at boot and no error report with XFS recovery.
But when I did a file copy on a USB key which XFS filesystem could be
corrupted by some reason,
I got endless repeat of ERROR message printed on the screen.

Should XFS recovery this at the beginning when mounting?

[42949387.250000] Starting XFS recovery on filesystem: sda (logdev:
internal)
[42949387.330000] Ending XFS recovery on filesystem: sda (logdev: internal)=
[42949388.600000] Starting XFS recovery on filesystem: sdb1 (logdev:
internal)
[42949388.640000] Ending XFS recovery on filesystem: sdb1 (logdev: internal= )


cp /mnt/USB0disk1/iCarly-4.ts ./iCarly-4-10.ts

[ 3234.740000] Filesystem "sda": XFS internal error xfs_btree_che= ck_sblock
at line 120 of file fs/xfs/xfs_btree.c. =A0Caller 0x8718e102
[ 3234.740000]
[ 3234.750000] regs can't be NULL.
[ 3234.760000] Filesystem "sda": page discard on page 876a1914, i= node 0x91,
offset 91160576.
[ 3235.150000] Filesystem "sda": XFS internal error xfs_btree_che= ck_sblock
at line 120 of file fs/xfs/xfs_btree.c. =A0Caller 0x8718e102

Thanks,
Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://oss.sgi.com/pipermail/xfs= /attachments/20100819/62574c74/attachment.html>

------------------------------



End of xfs Digest, Vol 24, Issue 44
***********************************

--0016364ef503c60fb7048e4857dc-- From ziffmoow@yahoo.com.tw Fri Aug 20 18:10:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7KNAEN5259364 for ; Fri, 20 Aug 2010 18:10:14 -0500 X-ASG-Debug-ID: 1282346416-69ba02600000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp106.mail.tp2.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 87C53D02469 for ; Fri, 20 Aug 2010 16:20:16 -0700 (PDT) Received: from smtp106.mail.tp2.yahoo.com (smtp106.mail.tp2.yahoo.com [203.188.201.206]) by cuda.sgi.com with SMTP id f5QvH1D7fcih2TS8 for ; Fri, 20 Aug 2010 16:20:16 -0700 (PDT) Received: (qmail 55747 invoked from network); 20 Aug 2010 23:10:42 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.tw; h=DKIM-Signature:Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Content-Transfer-Encoding:Date; b=Lip461Py8hHxgU/dy3dkkZYZMD+cQz4amNiOO+2CRJYbcqDmwe4+e7jDH3izJZ9fVDQ94pume/BI9sV/9VnAhi8Gzsltp2Xr745GdDqDNJJx93POHNo2FTrI86sUCuj+tRd00Ks0ZHQ5ridaBbl5sl0qaddZjzjvRq+A0MQQDF4= ; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com.tw; s=s1024; t=1282345842; bh=n5esMJ3gJV6LZjzK2wonjRIBxWUPKvsStEhhYI+zxDw=; h=Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Content-Transfer-Encoding:Date; b=u3pwZ5MXhY6UToO9lumF5F1P/AASODUGWM1yVnHeJCqWOENdtmX3KPT7ydevrkw1zqrM29pFLKfYXBv+JUMhiUZbz7pghSvVJ2cbNRInE8Bf6sy4haSH98hSmIlcMVKq14u8G8cIxCBintLiK/G7r4+Q+wYWKnTtTx3wkdFdcPQ= Message-ID: <869630.54598.qm@smtp106.mail.tp2.yahoo.com> Received: from lmhhlkog (ziffmoow@58.251.104.168 with login) by smtp106.mail.tp2.yahoo.com with SMTP; 21 Aug 2010 07:10:41 +0800 CST X-Yahoo-SMTP: mzAnP6WswBBR6ybXFoE3ntgbNM8l X-YMail-OSG: Mfbb3v0VM1kdJBfILnIulxXgrjY4MCdgQlkati5XnJJZhbk V5VT2df_p9IrDxqNOxCIhe0k643xiw_etxrQKbjOPKpZKWZ3nj8XxF9ow26W B11kgqLNMB7Qhrtzoh6DzqKfY_AVBunMs_1Vi.JNkN91QXPIzMr8fIxOodbm cCRIvoz42huuVaOJ.GQrrW4czoIFpG2Q.5zvruQas.NxA.c7eJTahaQ-- X-Yahoo-Newman-Property: ymail-3 From: "Rovy" X-ASG-Orig-Subj: =?gb2312?B?x+uy6b+00MLTys/kMVmjqDMtNaOp?= Subject: =?gb2312?B?x+uy6b+00MLTys/kMVmjqDMtNaOp?= To: linuxw@citiz.net Content-Type: text/plain; charset="gb2312" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Date: Sat, 21 Aug 2010 07:10:12 +0800 X-Barracuda-Connect: smtp106.mail.tp2.yahoo.com[203.188.201.206] X-Barracuda-Start-Time: 1282346417 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4943 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.02 X-Barracuda-Spam-Status: No, SCORE=1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED, MIME_BASE64_TEXT, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38552 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.52 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xPq6w6Oh16jStbmp06bUrbOn0czLv8Xk1sa498Dgw+LLsM/j0cwuDQoNCiDW0LuqoaLcvcjYu8ah osvV0cyhorTz0KHQ3MOooaK7xrrXwqWhotK7vsXSu8H5oaK2rLPmz8Sy3bXIo6ENCg0KIMGqz7VR UaO6MTM3ODM1NzQ5OCAgILrOyfoxMzY5MjIyNzc2MiANCg0KILG+yczQ0M/j0cy2vMrHvqu3ws+1 wdAusPzXsLrN1ebGt7Hwzt7BvdH5o6jT0LfAzrHC66OpIL/auNC0v9X9Ljk1Jba8ysfV5tHMy78u DQoNCiDV/bnms6e80rzTuaTWxtf3LqG+vqu3wqG/ILOntcTSqsfzutzRz7jxLtHM0rbIq7K/zNjK 4rzTuaTT69bG1/fV5tX9tO+1vcHLuN+x6te8tcTSqsfzIaOoxfrBv7zbuPHB7dLpo6m9u9LXweO1 o7fnz9WjoQ0KDQogysfX1LPpLNXQtP0sy83A8SzF+reiLMHjytssuavLviy+xrXqLCDT6cDWs6HL +bXIytfRoSwgDQoNCiC827jxuPy6z8DtLL/azra4/LS/1f0hILz7u/W4tr/uLMfrt8XQxLm6wvIh ILO5tdfIw8T6zt6687nL1q7TxyENCg0KINLUobCzz9DFLs7xyrUuuN/Qpy65stOuobHOqtfa1rzT 68T6s6TG2rrP1/csILTyyMXH68TjwcK94g0KDQogICAgICAgIDQwNWQ5SjRyZTQ2ZWQzNmdwOFRE MFFoMjJhNDZ4V2JoNWk1Y3VQc1VBOVk5VzVob3lFcEp1YjhaSjI4aGdJYTBRaGcwUFpDYjBaOURj YTUNCg== From sandeen@sandeen.net Fri Aug 20 18:13:28 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7KNDR52259522 for ; Fri, 20 Aug 2010 18:13:28 -0500 X-ASG-Debug-ID: 1282346038-69a5032c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3D2DA1747574 for ; Fri, 20 Aug 2010 16:13:58 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id MBt5hnbFpcfDZKla for ; Fri, 20 Aug 2010 16:13:58 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id CD0EC4106C54; Fri, 20 Aug 2010 18:13:57 -0500 (CDT) Message-ID: <4C6F0C35.3030007@sandeen.net> Date: Fri, 20 Aug 2010 18:13:57 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Mike Gao CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Question about XFS recovery and error Subject: Re: Question about XFS recovery and error References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1282346039 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38552 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Mike Gao wrote: > The USB key is mounted automatically at boot and no error report with > XFS recovery. > But when I did a file copy on a USB key which XFS filesystem could be > corrupted by some reason, > I got endless repeat of ERROR message printed on the screen. > > Should XFS recovery this at the beginning when mounting? > > [42949387.250000] Starting XFS recovery on filesystem: sda (logdev: > internal) > [42949387.330000] Ending XFS recovery on filesystem: sda (logdev: internal) > [42949388.600000] Starting XFS recovery on filesystem: sdb1 (logdev: > internal) > [42949388.640000] Ending XFS recovery on filesystem: sdb1 (logdev: internal) > first off, the above is an indication that you're not cleanly unmounting the filesystem. > cp /mnt/USB0disk1/iCarly-4.ts ./iCarly-4-10.ts > > [ 3234.740000] Filesystem "sda": XFS internal error > xfs_btree_check_sblock at line 120 of file fs/xfs/xfs_btree.c. Caller > 0x8718e102 > [ 3234.740000] > [ 3234.750000] regs can't be NULL. > [ 3234.760000] Filesystem "sda": page discard on page 876a1914, inode > 0x91, offset 91160576. > [ 3235.150000] Filesystem "sda": XFS internal error > xfs_btree_check_sblock at line 120 of file fs/xfs/xfs_btree.c. Caller > 0x8718e102 This is probably a result of a write cache which isn't properly flushed during use prior to unplug (i.e. barriers; no idea what usb keys have for write caches etc, but btree errors wouldn't be unheard of due to lost/reordered writes due to write cache failure) As to your other question, Michael is right, filesystems don't call out to userspace repair tools when they encounter an error like this. You could make xfs_repair run prior to mount, but I'd focus more on why you're getting a corrupted filesystem in the first place. -Eric > Thanks, > Mike > > > ------------------------------------------------------------------------ > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From SRS0+91Ea+84+fromorbit.com=dave@internode.on.net Sun Aug 22 19:15:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N0FVtd102033 for ; Sun, 22 Aug 2010 19:15:31 -0500 X-ASG-Debug-ID: 1282522562-592601e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C3DF915225 for ; Sun, 22 Aug 2010 17:16:02 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id VX90npTFwt5E6NOP for ; Sun, 22 Aug 2010 17:16:02 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36068808-1927428 for ; Mon, 23 Aug 2010 09:46:00 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OnKhj-0003Uv-0G for xfs@oss.sgi.com; Mon, 23 Aug 2010 10:15:59 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OnKha-00023z-Qv for xfs@oss.sgi.com; Mon, 23 Aug 2010 10:15:50 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/2] xfs: don't do memory allocation under the CIL context lock Subject: [PATCH 1/2] xfs: don't do memory allocation under the CIL context lock Date: Mon, 23 Aug 2010 10:15:45 +1000 Message-Id: <1282522546-7892-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282522546-7892-1-git-send-email-david@fromorbit.com> References: <1282522546-7892-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1282522563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38747 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Formatting items requires memory allocation when using delayed logging. Currently that memory allocation is done while holding the CIL context lock in read mode. This means that if memory allocation takes some time (e.g. enters reclaim), we cannot push on the CIL until the allocation(s) required by formatting complete. This can stall CIL pushes for some time, and once a push is stalled so are all new transaction commits. Fix this splitting the item formatting into two steps. The first step which does the allocation and memcpy() into the allocated buffer is now done outside the CIL context lock, and only the CIL insert is done inside the CIL context lock. This avoids the stall issue. Signed-off-by: Dave Chinner --- fs/xfs/xfs_log_cil.c | 34 ++++++++++++++++++++++++++-------- 1 files changed, 26 insertions(+), 8 deletions(-) diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c index 9768f24..ed575fb 100644 --- a/fs/xfs/xfs_log_cil.c +++ b/fs/xfs/xfs_log_cil.c @@ -270,15 +270,10 @@ xlog_cil_insert( static void xlog_cil_format_items( struct log *log, - struct xfs_log_vec *log_vector, - struct xlog_ticket *ticket, - xfs_lsn_t *start_lsn) + struct xfs_log_vec *log_vector) { struct xfs_log_vec *lv; - if (start_lsn) - *start_lsn = log->l_cilp->xc_ctx->sequence; - ASSERT(log_vector); for (lv = log_vector; lv; lv = lv->lv_next) { void *ptr; @@ -302,9 +297,24 @@ xlog_cil_format_items( ptr += vec->i_len; } ASSERT(ptr == lv->lv_buf + lv->lv_buf_len); + } +} +static void +xlog_cil_insert_items( + struct log *log, + struct xfs_log_vec *log_vector, + struct xlog_ticket *ticket, + xfs_lsn_t *start_lsn) +{ + struct xfs_log_vec *lv; + + if (start_lsn) + *start_lsn = log->l_cilp->xc_ctx->sequence; + + ASSERT(log_vector); + for (lv = log_vector; lv; lv = lv->lv_next) xlog_cil_insert(log, ticket, lv->lv_item, lv); - } } static void @@ -612,9 +622,17 @@ xfs_log_commit_cil( return XFS_ERROR(EIO); } + /* + * do all the hard work of formatting items (including memory + * allocation) outside the CIL context lock. This prevents stalling CIL + * pushes when we are low on memory and a transaction commit spends a + * lot of time in memory reclaim. + */ + xlog_cil_format_items(log, log_vector); + /* lock out background commit */ down_read(&log->l_cilp->xc_ctx_lock); - xlog_cil_format_items(log, log_vector, tp->t_ticket, commit_lsn); + xlog_cil_insert_items(log, log_vector, tp->t_ticket, commit_lsn); /* check we didn't blow the reservation */ if (tp->t_ticket->t_curr_res < 0) -- 1.7.1 From SRS0+91Ea+84+fromorbit.com=dave@internode.on.net Sun Aug 22 19:15:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N0FUZv102030 for ; Sun, 22 Aug 2010 19:15:31 -0500 X-ASG-Debug-ID: 1282522561-3f3e03c20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 86CED1504A for ; Sun, 22 Aug 2010 17:16:02 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id uXymGZpcjGXZKoC6 for ; Sun, 22 Aug 2010 17:16:02 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 24591227-1927428 for ; Mon, 23 Aug 2010 09:46:00 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OnKhj-0003Uw-1i for xfs@oss.sgi.com; Mon, 23 Aug 2010 10:15:59 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OnKha-000241-Si for xfs@oss.sgi.com; Mon, 23 Aug 2010 10:15:50 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/2] xfs: improve buffer cache hash scalability Subject: [PATCH 2/2] xfs: improve buffer cache hash scalability Date: Mon, 23 Aug 2010 10:15:46 +1000 Message-Id: <1282522546-7892-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1282522546-7892-1-git-send-email-david@fromorbit.com> References: <1282522546-7892-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282522563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38747 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean When doing large parallel file creates on a 16p machines, large amounts of time is being spent in _xfs_buf_find(). A system wide profile with perf top shows this: 1134740.00 19.3% _xfs_buf_find 733142.00 12.5% __ticket_spin_lock The problem is that the hash contains 45,000 buffers, and the hash table width is only 256 buffers. That means we've got around 200 buffers per chain, and searching it is quite expensive. The hash table size needs to increase. Secondly, every time we do a lookup, we promote the buffer we find to the head of the hash chain. This is causing cachelines to be dirtied and causes invalidation of cachelines across all CPUs that may have walked the hash chain recently. hence every walk of the hash chain is effectively a cold cache walk. Remove the promotion to avoid this invalidation. The results are: 1045043.00 21.2% __ticket_spin_lock 326184.00 6.6% _xfs_buf_find A 70% drop in the CPU usage when looking up buffers. Unfortunately that does not result in an increase in performance underthis workload as contention on the inode_lock soaks up most of the reduction in CPU usage. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_buf.c | 8 +------- fs/xfs/linux-2.6/xfs_buf.h | 1 - 2 files changed, 1 insertions(+), 8 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index ea79072..d72cf2b 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -440,12 +440,7 @@ _xfs_buf_find( ASSERT(btp == bp->b_target); if (bp->b_file_offset == range_base && bp->b_buffer_length == range_length) { - /* - * If we look at something, bring it to the - * front of the list for next time. - */ atomic_inc(&bp->b_hold); - list_move(&bp->b_hash_list, &hash->bh_list); goto found; } } @@ -1443,8 +1438,7 @@ xfs_alloc_bufhash( { unsigned int i; - btp->bt_hashshift = external ? 3 : 8; /* 8 or 256 buckets */ - btp->bt_hashmask = (1 << btp->bt_hashshift) - 1; + btp->bt_hashshift = external ? 3 : 12; /* 8 or 4096 buckets */ btp->bt_hash = kmem_zalloc_large((1 << btp->bt_hashshift) * sizeof(xfs_bufhash_t)); for (i = 0; i < (1 << btp->bt_hashshift); i++) { diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index d072e5f..2a05614 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -137,7 +137,6 @@ typedef struct xfs_buftarg { size_t bt_smask; /* per device buffer hash table */ - uint bt_hashmask; uint bt_hashshift; xfs_bufhash_t *bt_hash; -- 1.7.1 From SRS0+91Ea+84+fromorbit.com=dave@internode.on.net Sun Aug 22 19:15:39 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N0Fd8b102060 for ; Sun, 22 Aug 2010 19:15:39 -0500 X-ASG-Debug-ID: 1282522570-53b402640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4F8171522D for ; Sun, 22 Aug 2010 17:16:11 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id JNeZ70ksTe93fljD for ; Sun, 22 Aug 2010 17:16:11 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 24591266-1927428 for ; Mon, 23 Aug 2010 09:46:10 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OnKhi-0003Uu-Vg for xfs@oss.sgi.com; Mon, 23 Aug 2010 10:15:58 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OnKha-00023x-Ox for xfs@oss.sgi.com; Mon, 23 Aug 2010 10:15:50 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/2] xfs: Fix issues found doing large inode count testing Subject: [PATCH 0/2] xfs: Fix issues found doing large inode count testing Date: Mon, 23 Aug 2010 10:15:44 +1000 Message-Id: <1282522546-7892-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282522572 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0197 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38747 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Two fixes - one that prevents stalls in the CIl commit subsystem when memory is low, one that brings CPu usage of the buffer cache hash down to something more sensible. From climatiseur.mural@gmail.com Sun Aug 22 21:08:08 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99,FREEMAIL_FROM, T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N288df105760 for ; Sun, 22 Aug 2010 21:08:08 -0500 X-ASG-Debug-ID: 1282529891-763003140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from [175.184.136.248] (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 18EB2D0F3B1 for ; Sun, 22 Aug 2010 19:18:18 -0700 (PDT) Received: from [175.184.136.248] ([175.184.136.248]) by cuda.sgi.com with SMTP id eLuoELJCiG4MDfrV for ; Sun, 22 Aug 2010 19:18:18 -0700 (PDT) Reply-To: climatiseur.mural@gmail.com From: climatiseur.mural@gmail.com To: xfs@oss.sgi.com X-ASG-Orig-Subj: Climatiseur en promo Subject: Climatiseur en promo Sender: climatiseur.mural@gmail.com Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Date: Mon, 23 Aug 2010 09:50:42 +0800 X-Barracuda-Connect: UNKNOWN[175.184.136.248] X-Barracuda-Start-Time: 1282529905 Message-Id: <20100823021818.18EB2D0F3B1@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.3265 1.0000 -0.2399 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.36 X-Barracuda-Spam-Status: No, SCORE=0.36 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, NO_REAL_NAME, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38755 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Liquidation fin de saison Climatiseurs muraux 9000 a 24 000 BTU Tous munis de compresseur Toshiba. A partir de 1295$ Tout inclus. Frigor est un grossiste en climatisation. Prix de gros disponible pour contracteur. Prix de groupe disponible pour association de coprietaire de condos. Tous nos appareils repondent aux normes et certifications en vigueur tant au point de vue de la qualite que celui de la protection de l'environnement. Frigor inc. Tel.: 514-792-6461 450-441-1235 From hairyninja@p3slh051.shr.phx3.secureserver.net Sun Aug 22 21:54:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.9 required=5.0 tests=BAYES_95,MIME_8BIT_HEADER, SUBJECT_NEEDS_ENCODING,SUBJ_ILLEGAL_CHARS autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N2sNIP107108 for ; Sun, 22 Aug 2010 21:54:24 -0500 X-ASG-Debug-ID: 1282532095-030901ce0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from p3smtphosting02-01.prod.phx3.secureserver.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 28EB517527B2 for ; Sun, 22 Aug 2010 19:54:55 -0700 (PDT) Received: from p3smtphosting02-01.prod.phx3.secureserver.net (p3smtphosting02-01.prod.phx3.secureserver.net [208.109.80.24]) by cuda.sgi.com with SMTP id KvtwxjDnbBCUehsd for ; Sun, 22 Aug 2010 19:54:55 -0700 (PDT) Received: (qmail 19173 invoked from network); 23 Aug 2010 02:54:55 -0000 Received: from p3slh051.shr.phx3.secureserver.net ([68.178.254.202]) (envelope-sender ) by p3smtphosting02-01.prod.phx3.secureserver.net (qmail-ldap-1.03) with SMTP for ; 23 Aug 2010 02:54:55 -0000 Received: from p3slh051.shr.phx3.secureserver.net (opsw-dhcp-10-6-80-16 [127.0.0.1]) by p3slh051.shr.phx3.secureserver.net (8.12.11.20060308/8.12.11) with ESMTP id o7N27BON013973 for ; Sun, 22 Aug 2010 19:07:11 -0700 Received: (from hairyninja@localhost) by p3slh051.shr.phx3.secureserver.net (8.12.11.20060308/8.12.11/Submit) id o7N27Brh013970; Sun, 22 Aug 2010 19:07:11 -0700 Date: Sun, 22 Aug 2010 19:07:11 -0700 Message-Id: <201008230207.o7N27Brh013970@p3slh051.shr.phx3.secureserver.net> To: xfs@oss.sgi.com X-ASG-Orig-Subj: Ôåÿ oäHà B góøè_zbkp Subject: Ôåÿ oäHà B góøè_zbkp From: vitaly@arian.msk.ru Content-type: text/plain; charset=windows-1251 X-Barracuda-Connect: p3smtphosting02-01.prod.phx3.secureserver.net[208.109.80.24] X-Barracuda-Start-Time: 1282532096 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3834 1.0000 -0.0451 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Header-Alert: BAD HEADER Non-encoded 8-bit data (char D4 hex) in message header 'X-ASG-Orig-Subj' X-ASG-Orig-Subj: \324\345\377 o\344H\340 B g\363\370\350_zbkp\n ^ X-Barracuda-Spam-Score: 1.33 X-Barracuda-Spam-Status: No, SCORE=1.33 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME, SUBJECT_NEEDS_ENCODING, SUBJ_ILLEGAL_CHARS X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38759 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.10 SUBJ_ILLEGAL_CHARS Subject: has too many raw illegal characters 1.28 SUBJECT_NEEDS_ENCODING SUBJECT_NEEDS_ENCODING X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Äèíî÷êà òàåò â àæåîòàæå ïî÷óâñòâîâàòü òâîåãî ãîëîâàñòîãî äðóãà ;)! Äàâàé ñþäà!!! electrollama.net/wp-content/uploads/2010/08/uploads/54767 From SRS0+91Ea+84+fromorbit.com=dave@internode.on.net Sun Aug 22 23:43:22 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N4hLDs111135 for ; Sun, 22 Aug 2010 23:43:22 -0500 X-ASG-Debug-ID: 1282538632-711700310000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6BE841753408 for ; Sun, 22 Aug 2010 21:43:52 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id sDKn5GZCROJ3Et5i for ; Sun, 22 Aug 2010 21:43:52 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 24628380-1927428 for multiple; Mon, 23 Aug 2010 14:13:51 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OnOsv-0003l8-M4; Mon, 23 Aug 2010 14:43:49 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OnOsm-0002p3-VB; Mon, 23 Aug 2010 14:43:40 +1000 From: Dave Chinner To: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 Subject: [PATCH] writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 Date: Mon, 23 Aug 2010 14:43:40 +1000 Message-Id: <1282538620-10824-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282538634 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38765 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner I noticed XFS writeback in 2.6.36-rc1 was much slower than it should have been. Enabling writeback tracing showed: flush-253:16-8516 [007] 1342952.351608: wbc_writepage: bdi 253:16: towrt=1024 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 flush-253:16-8516 [007] 1342952.351654: wbc_writepage: bdi 253:16: towrt=1023 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 flush-253:16-8516 [000] 1342952.369520: wbc_writepage: bdi 253:16: towrt=0 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 flush-253:16-8516 [000] 1342952.369542: wbc_writepage: bdi 253:16: towrt=-1 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 flush-253:16-8516 [000] 1342952.369549: wbc_writepage: bdi 253:16: towrt=-2 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 Writeback is not terminating in background writeback if ->writepage is returning with wbc->nr_to_write == 0, resulting in sub-optimal single page writeback on XFS. Fix the write_cache_pages loop to terminate correctly when this situation occurs and so prevent this sub-optimal background writeback pattern. This improves sustained sequential buffered write performance from around 250MB/s to 750MB/s for a 100GB file on an XFS filesystem on my 8p test VM. Signed-off-by: Dave Chinner --- mm/page-writeback.c | 26 ++++++++++---------------- 1 files changed, 10 insertions(+), 16 deletions(-) diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 7262aac..f069782 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -984,22 +984,16 @@ continue_unlock: } } - if (wbc->nr_to_write > 0) { - if (--wbc->nr_to_write == 0 && - wbc->sync_mode == WB_SYNC_NONE) { - /* - * We stop writing back only if we are - * not doing integrity sync. In case of - * integrity sync we have to keep going - * because someone may be concurrently - * dirtying pages, and we might have - * synced a lot of newly appeared dirty - * pages, but have not synced all of the - * old dirty pages. - */ - done = 1; - break; - } + /* + * We stop writing back only if we are not doing + * integrity sync. In case of integrity sync we have to + * keep going until we have written all the pages + * we tagged for writeback prior to entering this loop. + */ + if (--wbc->nr_to_write <= 0 && + wbc->sync_mode == WB_SYNC_NONE) { + done = 1; + break; } } pagevec_release(&pvec); -- 1.7.1 From fengguang.wu@intel.com Mon Aug 23 03:27:28 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N8RSNY121575 for ; Mon, 23 Aug 2010 03:27:28 -0500 X-ASG-Debug-ID: 1282552666-1f81009c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mga01.intel.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 864191231381 for ; Mon, 23 Aug 2010 01:37:46 -0700 (PDT) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by cuda.sgi.com with ESMTP id GO5oVS9lXI1BRnxv for ; Mon, 23 Aug 2010 01:37:46 -0700 (PDT) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 23 Aug 2010 01:28:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.56,256,1280732400"; d="scan'208";a="830744647" Received: from unknown (HELO localhost.localdomain) ([10.255.13.83]) by fmsmga001.fm.intel.com with ESMTP; 23 Aug 2010 01:27:53 -0700 Received: from wfg by localhost.localdomain with local (Exim 4.69) (envelope-from ) id 1OnSNf-0001VL-Mx; Mon, 23 Aug 2010 16:27:47 +0800 Date: Mon, 23 Aug 2010 16:27:47 +0800 From: Wu Fengguang To: Dave Chinner Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com, Andrew Morton X-ASG-Orig-Subj: Re: [PATCH] writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 Subject: Re: [PATCH] writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 Message-ID: <20100823082747.GB4970@localhost> References: <1282538620-10824-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282538620-10824-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: mga01.intel.com[192.55.52.88] X-Barracuda-Start-Time: 1282552666 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38781 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 23, 2010 at 02:43:40PM +1000, Dave Chinner wrote: > From: Dave Chinner > > I noticed XFS writeback in 2.6.36-rc1 was much slower than it should have > been. Enabling writeback tracing showed: > > flush-253:16-8516 [007] 1342952.351608: wbc_writepage: bdi 253:16: towrt=1024 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 > flush-253:16-8516 [007] 1342952.351654: wbc_writepage: bdi 253:16: towrt=1023 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 > flush-253:16-8516 [000] 1342952.369520: wbc_writepage: bdi 253:16: towrt=0 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 > flush-253:16-8516 [000] 1342952.369542: wbc_writepage: bdi 253:16: towrt=-1 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 > flush-253:16-8516 [000] 1342952.369549: wbc_writepage: bdi 253:16: towrt=-2 skip=0 mode=0 kupd=0 bgrd=1 reclm=0 cyclic=1 more=0 older=0x0 start=0x0 end=0x0 > > Writeback is not terminating in background writeback if ->writepage is > returning with wbc->nr_to_write == 0, resulting in sub-optimal single page > writeback on XFS. The new code looks more simple, and more robust in case ->writepage modifies wbc->nr_to_write (as in xfs_vm_writepage). Reviewed-by: Wu Fengguang Thanks, Fengguang > Fix the write_cache_pages loop to terminate correctly when this situation > occurs and so prevent this sub-optimal background writeback pattern. This > improves sustained sequential buffered write performance from around > 250MB/s to 750MB/s for a 100GB file on an XFS filesystem on my 8p test VM. > > Signed-off-by: Dave Chinner > --- > mm/page-writeback.c | 26 ++++++++++---------------- > 1 files changed, 10 insertions(+), 16 deletions(-) > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index 7262aac..f069782 100644 > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -984,22 +984,16 @@ continue_unlock: > } > } > > - if (wbc->nr_to_write > 0) { > - if (--wbc->nr_to_write == 0 && > - wbc->sync_mode == WB_SYNC_NONE) { > - /* > - * We stop writing back only if we are > - * not doing integrity sync. In case of > - * integrity sync we have to keep going > - * because someone may be concurrently > - * dirtying pages, and we might have > - * synced a lot of newly appeared dirty > - * pages, but have not synced all of the > - * old dirty pages. > - */ > - done = 1; > - break; > - } > + /* > + * We stop writing back only if we are not doing > + * integrity sync. In case of integrity sync we have to > + * keep going until we have written all the pages > + * we tagged for writeback prior to entering this loop. > + */ > + if (--wbc->nr_to_write <= 0 && > + wbc->sync_mode == WB_SYNC_NONE) { > + done = 1; > + break; > } > } > pagevec_release(&pvec); > -- > 1.7.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ From BATV+4a3d82e207a2128e1c76+2556+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 23 04:09:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7N99gAs122875 for ; Mon, 23 Aug 2010 04:09:43 -0500 X-ASG-Debug-ID: 1282554615-39fd02ed0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1534C16444 for ; Mon, 23 Aug 2010 02:10:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id jMeRNlF6e4sDOSZK for ; Mon, 23 Aug 2010 02:10:15 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OnT2l-0001pX-Ku for xfs@oss.sgi.com; Mon, 23 Aug 2010 09:10:15 +0000 Date: Mon, 23 Aug 2010 05:10:15 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: do not discard page cache data on EAGAIN Subject: [PATCH] xfs: do not discard page cache data on EAGAIN Message-ID: <20100823091015.GA2829@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282554616 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean If xfs_map_blocks returns EAGAIN because of lock contention we must redirty the page and not disard the pagecache content and return an error from writepage. We used to do this correctly, but the logic got lost during the recent reshuffle of the writepage code. Signed-off-by: Christoph Hellwig Reported-by: Mike Gao Tested-by: Mike Gao Index: xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2010-08-18 18:10:48.140261091 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_aops.c 2010-08-18 18:12:41.167005888 +0200 @@ -1068,7 +1068,7 @@ xfs_vm_writepage( * by themselves. */ if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) - goto out_fail; + goto redirty; /* * We need a transaction if there are delalloc or unwritten buffers @@ -1080,7 +1080,7 @@ xfs_vm_writepage( */ xfs_count_page_state(page, &delalloc, &unwritten); if ((current->flags & PF_FSTRANS) && (delalloc || unwritten)) - goto out_fail; + goto redirty; /* Is this page beyond the end of the file? */ offset = i_size_read(inode); @@ -1245,12 +1245,15 @@ error: if (iohead) xfs_cancel_ioend(iohead); + if (err == -EAGAIN) + goto redirty; + xfs_aops_discard_page(page); ClearPageUptodate(page); unlock_page(page); return err; -out_fail: +redirty: redirty_page_for_writepage(wbc, page); unlock_page(page); return 0; From BATV+4a3d82e207a2128e1c76+2556+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 23 05:32:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NAWEvS125867 for ; Mon, 23 Aug 2010 05:32:17 -0500 X-ASG-Debug-ID: 1282560153-7d2a00a10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 920CC14D79E1 for ; Mon, 23 Aug 2010 03:42:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id MnJZSzG6j1hnCOeQ for ; Mon, 23 Aug 2010 03:42:33 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OnUKb-00024G-Mq; Mon, 23 Aug 2010 10:32:45 +0000 Date: Mon, 23 Aug 2010 06:32:45 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: don't do memory allocation under the CIL context lock Subject: Re: [PATCH 1/2] xfs: don't do memory allocation under the CIL context lock Message-ID: <20100823103245.GA7268@infradead.org> References: <1282522546-7892-1-git-send-email-david@fromorbit.com> <1282522546-7892-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282522546-7892-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282560153 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From BATV+4a3d82e207a2128e1c76+2556+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 23 05:36:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NAaEZ4126008 for ; Mon, 23 Aug 2010 05:36:14 -0500 X-ASG-Debug-ID: 1282560393-7d2c01070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8AF8215D80FE for ; Mon, 23 Aug 2010 03:46:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id HN0P8sM2EFGWRyka for ; Mon, 23 Aug 2010 03:46:33 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OnUOV-0002qp-BB; Mon, 23 Aug 2010 10:36:47 +0000 Date: Mon, 23 Aug 2010 06:36:47 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] xfs: improve buffer cache hash scalability Subject: Re: [PATCH 2/2] xfs: improve buffer cache hash scalability Message-ID: <20100823103647.GB7268@infradead.org> References: <1282522546-7892-1-git-send-email-david@fromorbit.com> <1282522546-7892-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282522546-7892-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282560393 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > @@ -1443,8 +1438,7 @@ xfs_alloc_bufhash( > { > unsigned int i; > > - btp->bt_hashshift = external ? 3 : 8; /* 8 or 256 buckets */ > - btp->bt_hashmask = (1 << btp->bt_hashshift) - 1; > + btp->bt_hashshift = external ? 3 : 12; /* 8 or 4096 buckets */ Not directly related to the patch, but we never have hashes buffers on the log device. And on the RT device we only use hashed buffers twice to verify the device size. With a little work on the latter we can stop allocating the buf hash entirely for the RT and log devices. Anyway, the patch looks good for now, although we should try to get rid of the hash long term. Reviewed-by: Christoph Hellwig From SRS0+Kyl4+84+fromorbit.com=dave@internode.on.net Mon Aug 23 07:10:18 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NCAHU5128722 for ; Mon, 23 Aug 2010 07:10:18 -0500 X-ASG-Debug-ID: 1282565448-59ac01570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 71918178E0 for ; Mon, 23 Aug 2010 05:10:49 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id X7LaMet5H4YJvIxz for ; Mon, 23 Aug 2010 05:10:49 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36266652-1927428 for ; Mon, 23 Aug 2010 21:40:48 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1OnVrS-0004Cd-Jm for xfs@oss.sgi.com; Mon, 23 Aug 2010 22:10:46 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1OnVrJ-0003cM-PQ for xfs@oss.sgi.com; Mon, 23 Aug 2010 22:10:37 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: handle negative wbc->nr_to_write during sync writeback Subject: [PATCH] xfs: handle negative wbc->nr_to_write during sync writeback Date: Mon, 23 Aug 2010 22:10:37 +1000 Message-Id: <1282565437-13880-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1282565450 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38795 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner During data integrity (WB_SYNC_ALL) writeback, wbc->nr_to_write will go negative on inodes with more than 1024 dirty pages due to implementation details of write_cache_pages(). Currently XFS will abort page clustering in writeback once nr_to_write drops below zero, and so for data integrity writeback we will do very inefficient page at a time allocation and IO submission for inodes with large numbers of dirty pages. Fix this by only aborting the page clustering code when wbc->nr_to_write is negative and the sync mode is WB_SYNC_NONE. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_aops.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 15412fe..528be1b 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -852,8 +852,8 @@ xfs_convert_page( SetPageUptodate(page); if (count) { - wbc->nr_to_write--; - if (wbc->nr_to_write <= 0) + if (--wbc->nr_to_write <= 0 && + wbc->sync_mode == WB_SYNC_NONE) done = 1; } xfs_start_page_writeback(page, !page_dirty, count); -- 1.7.1 From SRS0+sY6z+84+fromorbit.com=david@internode.on.net Mon Aug 23 07:10:53 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NCAreC128756 for ; Mon, 23 Aug 2010 07:10:53 -0500 X-ASG-Debug-ID: 1282565484-1f2003e30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 813101E4EFCE for ; Mon, 23 Aug 2010 05:11:25 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id 0jOtWVZ41ycLdXtf for ; Mon, 23 Aug 2010 05:11:25 -0700 (PDT) Received: from dastard (unverified [121.44.216.100]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36156800-1927428 for multiple; Mon, 23 Aug 2010 21:41:24 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OnVs2-0004Cl-Q6; Mon, 23 Aug 2010 22:11:22 +1000 Date: Mon, 23 Aug 2010 22:11:22 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: do not discard page cache data on EAGAIN Subject: Re: [PATCH] xfs: do not discard page cache data on EAGAIN Message-ID: <20100823121122.GH31488@dastard> References: <20100823091015.GA2829@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100823091015.GA2829@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1282565486 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38795 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 23, 2010 at 05:10:15AM -0400, Christoph Hellwig wrote: > If xfs_map_blocks returns EAGAIN because of lock contention we must redirty > the page and not disard the pagecache content and return an error from > writepage. We used to do this correctly, but the logic got lost during > the recent reshuffle of the writepage code. > > Signed-off-by: Christoph Hellwig > Reported-by: Mike Gao > Tested-by: Mike Gao Looks good. Reviewed-by: Dave Chinner Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+4a3d82e207a2128e1c76+2556+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 23 08:25:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NDPC9C131080 for ; Mon, 23 Aug 2010 08:25:12 -0500 X-ASG-Debug-ID: 1282569946-2d3600570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 39A6A1826A for ; Mon, 23 Aug 2010 06:25:46 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id uC25yuOGQYGwHfgZ for ; Mon, 23 Aug 2010 06:25:46 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OnX1z-0004nE-WC; Mon, 23 Aug 2010 13:25:44 +0000 Date: Mon, 23 Aug 2010 09:25:43 -0400 From: Christoph Hellwig To: Dave Chinner Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 Subject: Re: [PATCH] writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 Message-ID: <20100823132543.GA15918@infradead.org> References: <1282538620-10824-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282538620-10824-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282569946 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From BATV+4a3d82e207a2128e1c76+2556+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 23 08:27:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NDRux9131167 for ; Mon, 23 Aug 2010 08:27:56 -0500 X-ASG-Debug-ID: 1282570109-123002620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B4B3182CE for ; Mon, 23 Aug 2010 06:28:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 8MgZK3uM08kUhnq3 for ; Mon, 23 Aug 2010 06:28:29 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OnX4f-0004vO-8U; Mon, 23 Aug 2010 13:28:29 +0000 Date: Mon, 23 Aug 2010 09:28:29 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: handle negative wbc->nr_to_write during sync writeback Subject: Re: [PATCH] xfs: handle negative wbc->nr_to_write during sync writeback Message-ID: <20100823132829.GB15918@infradead.org> References: <1282565437-13880-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282565437-13880-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282570109 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 23, 2010 at 10:10:37PM +1000, Dave Chinner wrote: > From: Dave Chinner > > During data integrity (WB_SYNC_ALL) writeback, wbc->nr_to_write will > go negative on inodes with more than 1024 dirty pages due to > implementation details of write_cache_pages(). Currently XFS will > abort page clustering in writeback once nr_to_write drops below > zero, and so for data integrity writeback we will do very > inefficient page at a time allocation and IO submission for inodes > with large numbers of dirty pages. > > Fix this by only aborting the page clustering code when > wbc->nr_to_write is negative and the sync mode is WB_SYNC_NONE. Looks okay, but I wonder why if we should remove the check entirely. We're clustering inside the same extent, and we already have a cap for the extent size. That means the additional I/O basically is for free and we really shouldn't let the writeback code restrict us here. Reviewed-by: Christoph Hellwig From sandeen@redhat.com Mon Aug 23 11:22:11 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NGMBXQ137812 for ; Mon, 23 Aug 2010 11:22:11 -0500 X-ASG-Debug-ID: 1282580563-515f00d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE2741758D5D for ; Mon, 23 Aug 2010 09:22:43 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 1Kuxutyx1iEnFI1D for ; Mon, 23 Aug 2010 09:22:43 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o7NGMgFL010142 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 23 Aug 2010 12:22:42 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o7NGMdNC030391 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 23 Aug 2010 12:22:42 -0400 Message-ID: <4C72A04F.20104@redhat.com> Date: Mon, 23 Aug 2010 11:22:39 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [ANNOUNCE] updated xfs documentation available Subject: [ANNOUNCE] updated xfs documentation available Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1282580563 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Just as an FYI, we've converted some of the older SGI XFS documentation to XML/Docbook/Publican[1] format, and it's now available on xfs.org; see http://xfs.org/index.php/XFS_Papers_and_Documentation particularly the 3 links at the top, * XFS User Guide * XFS File System Structure * XFS Training Labs In addition to the XML conversion, much of the documentation has been updated & corrected compared to the original docs. This should be good material for anyone using, developing, or supporting XFS. If omissions or errors are found, we'd be happy to accept patches against the XML source for the docs, found at http://git.kernel.org/?p=fs/xfs/xfsdocs-xml-dev.git;a=summary In addition, using that git repo + publican allows one to create the documentation in various other forms such as PDFs, txt, and epub. Thanks! -Eric [1] https://fedorahosted.org/publican/ From David.Kinzel@encana.com Mon Aug 23 17:02:46 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,MIME_QP_LONG_LINE autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NM2jlT151198 for ; Mon, 23 Aug 2010 17:02:46 -0500 X-ASG-Debug-ID: 1282601584-463203d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from CGYSNEX001.encana.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EA054D15B5C for ; Mon, 23 Aug 2010 15:13:04 -0700 (PDT) Received: from CGYSNEX001.encana.com (cgysnex001.encana.com [142.56.87.68]) by cuda.sgi.com with ESMTP id AsHi1FoVBC3LnW8s for ; Mon, 23 Aug 2010 15:13:04 -0700 (PDT) Received: from CGYEX203.encana.com (unverified) by CGYSNEX001.encana.com (Clearswift SMTPRS 5.3.2) with ESMTP id for ; Mon, 23 Aug 2010 16:03:16 -0600 Received: from CGYEX711.encana.com (unverified) by CGYEX203.encana.com (Clearswift SMTPRS 5.3.2) with ESMTP id ; Mon, 23 Aug 2010 16:03:15 -0600 Received: from CGYEX705.encana.com ([10.56.98.106]) by CGYEX711.encana.com with Microsoft SMTPSVC(6.0.3790.4675); Mon, 23 Aug 2010 16:03:15 -0600 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-ASG-Orig-Subj: RE: [ANNOUNCE] updated xfs documentation available Subject: RE: [ANNOUNCE] updated xfs documentation available Date: Mon, 23 Aug 2010 16:03:14 -0600 Message-ID: In-Reply-To: <4C72A04F.20104@redhat.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [ANNOUNCE] updated xfs documentation available Thread-Index: ActC4mSultmX1BjrTTq3gph67Wkp0wALGTvg References: <4C72A04F.20104@redhat.com> From: "Kinzel, David" To: "Eric Sandeen" , "xfs-oss" X-OriginalArrivalTime: 23 Aug 2010 22:03:15.0955 (UTC) FILETIME=[FCC4CC30:01CB430E] X-Barracuda-Connect: cgysnex001.encana.com[142.56.87.68] X-Barracuda-Start-Time: 1282601585 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.10 X-Barracuda-Spam-Status: No, SCORE=-1.10 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085, MIME_QP_LONG_LINE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38835 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.82 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars 0.10 BSF_SC0_SA085 Custom Rule SA085 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean >Just as an FYI, we've converted some of the older SGI XFS documentatio= n=0D=0A>to XML/Docbook/Publican[1] format, and it's now available on =0D=0A>= xfs.org; see=0D=0A>http://xfs.org/index.php/XFS_Papers_and_Documentatio= n=0D=0A>=0D=0A>particularly the 3 links at the top, =0D=0A>=0D=0A> * XFS = User Guide =0D=0A>=0D=0A> * XFS File System Structure =0D=0A>=0D=0A=0D=0A= I am not sure about the other guides, but the images in the html outpu= t=0D=0Aare being sized down making them not-so-readable. Eg,=0D=0Ahttp://xfs= .org/docs/xfsdocs-xml-dev/XFS_Filesystem_Structure//tmp/en-US/=0D=0Ahtml/Int= ernal_Inodes.html=0D=0A=0D=0AWould it be possible to regenerate these with t= he scaling off?=0D=0A=0D=0AThanks,=0D=0A=0D=0A> * XFS Training Labs= =0D=0A>=0D=0A>In addition to the XML conversion, much of the documentation = has=0D=0A>been updated & corrected compared to the original docs.=0D=0A= >=0D=0A>This should be good material for anyone using, developing, or= =0D=0A>supporting=0D=0A>XFS. If omissions or errors are found, we'd be hap= py to accept=0D=0A>patches against the XML source for the docs, found a= t=0D=0A>http://git.kernel.org/?p=3Dfs/xfs/xfsdocs-xml-dev.git;a=3Dsummar= y=0D=0A>=0D=0A>In addition, using that git repo + publican allows one to cre= ate=0D=0A>the documentation in various other forms such as PDFs, txt,=0D=0A>= and epub.=0D=0A>=0D=0A>Thanks!=0D=0A>=0D=0A>-Eric=0D=0A>=0D=0A>[1] https://f= edorahosted.org/publican/=0D=0A=0D=0AThis email communication and any files = transmitted with it may contain confidential and or proprietary information = and is provided for the use of the intended recipient only. Any review, ret= ransmission or dissemination of this information by anyone other than the in= tended recipient is prohibited. If you receive this email in error, please = contact the sender and delete this communication and any copies immediately.= Thank you.=0D=0Ahttp://www.encana.com=0D=0A=0D=0A From sandeen@redhat.com Mon Aug 23 17:04:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7NM4odp151266 for ; Mon, 23 Aug 2010 17:04:55 -0500 X-ASG-Debug-ID: 1282601123-01c103820000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7A8B71757E1B for ; Mon, 23 Aug 2010 15:05:23 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 4LKJHayX1tqgEaTb for ; Mon, 23 Aug 2010 15:05:23 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o7NM5KxJ006879 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 23 Aug 2010 18:05:21 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o7NM5Hr1011681 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 23 Aug 2010 18:05:20 -0400 Message-ID: <4C72F09D.5010006@redhat.com> Date: Mon, 23 Aug 2010 17:05:17 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: "Kinzel, David" CC: xfs-oss X-ASG-Orig-Subj: Re: [ANNOUNCE] updated xfs documentation available Subject: Re: [ANNOUNCE] updated xfs documentation available References: <4C72A04F.20104@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1282601124 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Kinzel, David wrote: >> Just as an FYI, we've converted some of the older SGI XFS documentation >> to XML/Docbook/Publican[1] format, and it's now available on >> xfs.org; see >> http://xfs.org/index.php/XFS_Papers_and_Documentation >> >> particularly the 3 links at the top, >> >> * XFS User Guide >> >> * XFS File System Structure >> > > I am not sure about the other guides, but the images in the html output > are being sized down making them not-so-readable. Eg, > http://xfs.org/docs/xfsdocs-xml-dev/XFS_Filesystem_Structure//tmp/en-US/ > html/Internal_Inodes.html > > Would it be possible to regenerate these with the scaling off? > > Thanks, Interesting, I'll have to look into how publican decides to scale images when it generates html... not sure offhand. :) Thanks, -Eric From SRS0+21CU+85+fromorbit.com=david@internode.on.net Mon Aug 23 21:44:28 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7O2iRbc159614 for ; Mon, 23 Aug 2010 21:44:28 -0500 X-ASG-Debug-ID: 1282617898-5187039d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A2D3E1E50CF7 for ; Mon, 23 Aug 2010 19:44:59 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id mIsvFAJrJ8n7L2Bd for ; Mon, 23 Aug 2010 19:44:59 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 24753122-1927428 for ; Tue, 24 Aug 2010 12:14:57 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OnjVG-0005HF-1d for xfs@oss.sgi.com; Tue, 24 Aug 2010 12:44:46 +1000 Date: Tue, 24 Aug 2010 12:44:45 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [GIT Review] xfs: 2.6.36 fixes Subject: [GIT Review] xfs: 2.6.36 fixes Message-ID: <20100824024445.GJ31488@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282617900 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38852 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Folks, Can you please cast an eye over the the tree below to check that all the bug fixes that need to go into 2.6.36 are there? If so, I'll send a pull request to Linus tomorrow. Note that these are just the outstanding bug fixes that have been reviewed (as Linus has again decreed for pull requests after -rc1), so it not the complete set of reviewd patches that exist. Cheers, Dave. The following changes since commit 9ee47476d6734c9deb9ae9ab05d963302f6b6150: Merge branch 'radix-tree' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev (2010-08-22 19:55:14 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev.git 2.6.36-fixes Christoph Hellwig (1): xfs: do not discard page cache data on EAGAIN Dave Chinner (8): xfs: unlock items before allowing the CIL to commit xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE xfs: fix untrusted inode number lookup writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 xfs: handle negative wbc->nr_to_write during sync writeback xfs: dummy transactions should not dirty VFS state xfs: Reduce log force overhead for delayed logging xfs: don't do memory allocation under the CIL context lock Stuart Brodsky (1): xfs: ensure f_ffree returned by statfs() is non-negative fs/xfs/linux-2.6/xfs_aops.c | 13 ++- fs/xfs/linux-2.6/xfs_super.c | 9 +- fs/xfs/linux-2.6/xfs_sync.c | 42 +------ fs/xfs/xfs_fsops.c | 31 +++-- fs/xfs/xfs_fsops.h | 2 +- fs/xfs/xfs_ialloc.c | 16 ++- fs/xfs/xfs_inode.c | 49 ++++---- fs/xfs/xfs_log.c | 7 +- fs/xfs/xfs_log_cil.c | 263 +++++++++++++++++++++++++----------------- fs/xfs/xfs_log_priv.h | 13 ++- fs/xfs/xfs_trans.c | 5 +- fs/xfs/xfs_trans_priv.h | 3 +- mm/page-writeback.c | 26 ++--- 13 files changed, 261 insertions(+), 218 deletions(-) -- Dave Chinner david@fromorbit.com From lmcilroy@redhat.com Tue Aug 24 01:39:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,J_BACKHAIR_12, J_CHICKENPOX_72,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7O6dZUE169830 for ; Tue, 24 Aug 2010 01:39:36 -0500 X-ASG-Debug-ID: 1282632005-0d6b012f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx01.colomx.prod.int.phx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 47C4A175E70D for ; Mon, 23 Aug 2010 23:40:06 -0700 (PDT) Received: from mx01.colomx.prod.int.phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id fyga2ZuPrURuy06E for ; Mon, 23 Aug 2010 23:40:06 -0700 (PDT) Received: from mail05.corp.redhat.com (zmail05.collab.prod.int.phx2.redhat.com [10.5.5.46]) by mx01.colomx.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o7O6e5Io022506 for ; Tue, 24 Aug 2010 02:40:05 -0400 Date: Tue, 24 Aug 2010 02:40:05 -0400 (EDT) From: Lachlan McIlroy Reply-To: Lachlan McIlroy To: xfs Message-ID: <860858888.392461282632005513.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> In-Reply-To: <595817597.392191282631741549.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> X-ASG-Orig-Subj: [PATCH V2 1/2] xfsdocs: updates to XFS User Guide Subject: [PATCH V2 1/2] xfsdocs: updates to XFS User Guide MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.5.5.72] X-Mailer: Zimbra 5.0.21_GA_3150.RHEL4_64 (ZimbraWebClient - FF3.0 (Linux)/5.0.21_GA_3150.RHEL4_64) X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1282632007 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38869 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean [Finally getting back to this, now split into two patches] Various updates to chapters 1,2,4 and 5 of the XFS User Guide. Fixed various spelling/grammar mistakes, updated outdated and/or incorrect facts, added some new slides for delayed allocation and direct i/o. Lachlan diff --git a/XFS_User_Guide/en-US/XFS-Background.xml b/XFS_User_Guide/en-US= /XFS-Background.xml index e20f6e0..b610f60 100644 --- a/XFS_User_Guide/en-US/XFS-Background.xml +++ b/XFS_User_Guide/en-US/XFS-Background.xml @@ -195,12 +195,12 @@ =09=09=09 =09=09=09 =09=09=09=09 -=09=09=09=09=09Large filesystems: one terabyte, 240, on 32 bit systems; unlimited on 64 bit systems +=09=09=09=09=09Large files: up to 9 ExaBytes (16TB on 32-bit systems). =09=09=09=09 =09=09=09 =09=09=09 =09=09=09=09 -=09=09=09=09=09Large files: one terabyte, 240, = on 32 bit systems; 263 on 64 bit systems +=09=09=09=09=09Large filesystems: up to 18 ExaBytes (16TB on 32-bit system= s). =09=09=09=09 =09=09=09 =09=09=09 @@ -220,7 +220,7 @@ =09=09=09 =09=09=09 =09=09=09=09 -=09=09=09=09=09Parallel access to inodes +=09=09=09=09=09Parallelized access via allocation groups =09=09=09=09 =09=09=09 =09=09=09 @@ -230,17 +230,32 @@ =09=09=09 =09=09=09 =09=09=09=09 -=09=09=09=09=09Asynchronous metadata transaction logging for quick recover +=09=09=09=09=09Asynchronous metadata transaction logging for quick recover= y =09=09=09=09 =09=09=09 =09=09=09 =09=09=09=09 -=09=09=09=09=09Delayed allocation to improve data contiguity +=09=09=09=09=09Delayed allocation to improve data contiguity and performan= ce =09=09=09=09 =09=09=09 =09=09=09 =09=09=09=09 -=09=09=09=09=09ACL's --Access Control Lists (see chacl(1), acl(4), acl_get_file(3c), acl_set_file(3c) +=09=09=09=09=09Extended attributes (such as Access Control Lists) +=09=09=09=09 +=09=09=09 +=09=09=09 +=09=09=09=09 +=09=09=09=09=09Extent based allocation (including unwritten extents) +=09=09=09=09 +=09=09=09 +=09=09=09 +=09=09=09=09 +=09=09=09=09=09Variable allocation block sizes +=09=09=09=09 +=09=09=09 +=09=09=09 +=09=09=09=09 +=09=09=09=09=09Direct I/O =09=09=09=09 =09=09=09 =09=09 @@ -264,9 +279,6 @@ =09=09=09=09 =09=09=09=09=092.4 kernel (2004) =09=09=09=09 -=09=09=09=09 -=09=09=09=09=09SLES9 and beyond -=09=09=09=09 =09=09=09 =09=09 =09=09 @@ -286,19 +298,30 @@ =09
=09=09Who is using XFS =09=09 -=09=09=09 -=09=09=09 +=09=09=09XFS is included in a number of distributions: =09=09 =09=09 =09=09=09 =09=09=09=09 +=09=09=09=09=09 +=09=09=09=09 +=09=09=09 +=09=09=09 +=09=09=09=09 =09=09=09=09=09List is not always current, but it gives an indication of t= he spread of users =09=09=09=09 =09=09=09 =09=09 =09=09 -=09=09=09XFS is included in a number of distributions +=09=09=09Some of the companies using XFS: =09=09 +=09=09 +=09=09=09 +=09=09=09=09 +=09=09=09=09=09 +=09=09=09=09 +=09=09=09 +=09=09 =09
=09
=09=09XFS Distributions =E2=80=93 kernelspace diff --git a/XFS_User_Guide/en-US/XFS-Overview.xml b/XFS_User_Guide/en-US/X= FS-Overview.xml index 1762b39..afb84e1 100644 --- a/XFS_User_Guide/en-US/XFS-Overview.xml +++ b/XFS_User_Guide/en-US/XFS-Overview.xml @@ -50,9 +50,9 @@ =09=09Filesystem Block Size (FSB) =09=09Filesystem blocks (FSBs) are the unit of space for a filesyste= m =09=09 -=09=09Filesystem blocks are comprised of one or more devic= e-level sectors. +=09=09Filesystem blocks are composed of one or more device= -level sectors. =09=09 -=09=09The page management implementation in Linux limits the FSB siz= e to the page size +=09=09The page management implementation in Linux limits the maximum= FSB size to the page size =09=09 =09=094KB on ia32 and x86_64 architectures =09=0916KB on ia64 @@ -72,7 +72,13 @@ =09=09 =09=09For very large files, the file=E2=80=99s inode may h= ave thousands of extents, or one very large extent. Usually something in be= tween. =09=09 -=09=09Extents are also used for file and directory metadata when the= information exceeds the space reserved for an inode +=09=09Extents are used for files, directory metadata and extended at= tributes when the information exceeds the space reserved in the inode +=09=09Using extents helps to +=09=09 +=09=09minimize the disk space required to store a file's b= lock map +=09=09reduce the effects of fragmentation +=09=09improve I/O performance by allowing fewer and larger= I/O operations +=09=09 =09
=09
=09=09Unwritten Extents @@ -87,11 +93,10 @@ =09=09=09 =09=09 =09=09fallocate(1) on newer glibc versi= ons -=09=09Through direct IOs of specific (un)alignment.= +=09=09Through direct IOs of specific alignment (such as st= ripe boundaries) =09=09 -=09=09They are a security measure, to ensure allocated but not yet i= nitialised space -=09=09 ondisk is not visible to arbitrary users =09=09Unwritten extents apply only to regular files. +=09=09The unwritten state prevents the uninitialised data in the ext= ent from being exposed to the user. =09=09Once such an extent is written to, or partially written to, a = transaction is=20 =09=09 issued to convert the written part into a regular written exte= nt, and mark the=20 =09=09 remaining (up to 2) extents as unwritten. @@ -99,20 +104,66 @@ =09=09# xfs_io -f -c 'resvsp 0 10m' -c 'bmap -vp' /tmp/foo<= /command> =09
=09
+=09=09Delayed Allocation +=09=09Delayed allocation splits file block allocation into two stage= s: +=09=09 +=09=09Reservation - disk space is reserved (but not alloca= ted) when writing to cache +=09=09=09 +=09=09=09decrements free block count +=09=09=09creates a virtual 'delalloc' extent +=09=09=09 +=09=09 +=09=09Allocation - disk blocks are allocated when flushing= data from cache to disk +=09=09=09 +=09=09=09converts 'delalloc' extent to real extent<= /listitem> +=09=09=09 +=09=09 +=09=09 +=09=09Benefits of delayed allocation +=09=09 +=09=09Fragmentation is reduced by combining writes and all= ocating extents in large chunks +=09=09Short lived files may never need to be allocated +=09=09Files written randomly (such as those that are memor= y mapped) can now be allocated contiguously +=09=09 +=09
+=09
+=09=09Direct I/O +=09=09Direct I/O allows an application to transfer data directly to = disk from an application buffer and vice versa. +=09=09 +=09=09Data does not pass through the filesystem cache +=09=09Data is transferred by DMA and does not involve CPU = overhead +=09=09Synchronous I/O +=09=09XFS allows for parallel writes to same file +=09=09 +=09=09Uses of direct I/O +=09=09 +=09=09Backup programs, so that they can work without pollu= ting the page cache +=09=09Applications that need 'intelligent' caching<= /listitem> +=09=09High performance, bandwidth intensive workloads +=09=09 +=09
+=09
+=09=09Stripe Alignment +=09=09Delayed allocations can be aligned to stripe unit/width bounda= ries if past eof +=09=09Direct I/O can align block allocations on stripe unit/width bo= undaries +=09
+=09
=09=09Inodes =09=09XFS has three inode structures -=09=09Ondisk inode +=09=09XFS inode =09=09 -=09=09Used for storing the metadata for all files, directo= ries and other file types -=09=09By default 256 bytes but can be up to 2KiB +=09=09In-memory XFS inode used only by the filesystem =09=09 -=09=09 Linux inode +=09=09Ondisk inode =09=09 -=09=09xfs_inode_t has the Linux inode embedded in it +=09=09Used for storing the metadata for files, directories= and other file types +=09=09Default size is 256 bytes and can be up to 2KB +=09=09Embedded within the XFS inode =09=09 -=09=09XFS inode +=09=09 Linux inode =09=09 -=09=09xfs_inode contains the ondisk inode structure in mem= ory +=09=09Generic inode structure used by VFS +=09=09Embedded within the XFS inode =09=09 =09
=09
@@ -123,16 +174,19 @@ =09
=09
=09=09Journal Log -=09=09XFS Journal logs all metadata transactions +=09=09XFS Journal logs all metadata changes =09=09 -=09=09No record of data, only that the file size had chang= ed +=09=09Only filesystem metadata is logged, not user data =09=09 -=09=09Allows the filesystem to replay and recover the filesystem in = seconds +=09=09Allows the filesystem to replay the log and recover the filesy= stem quickly after a crash =09=09 =09=09No requirement to run fsck =09=09 -=09=09Log replay will apply filesystem and metadata changes that had= been -=09=09 logged but may not have been applied to the filesystem when it= went down +=09=09Log replay will apply filesystem and metadata changes during a= mount that had been +=09=09 logged but may not have yet been applied to the filesystem =09=09The log may be located on a separate device +=09=09 +=09=09Can improve performance due to reduced disk contenti= on +=09=09 =09
diff --git a/XFS_User_Guide/en-US/XFS-allocators.xml b/XFS_User_Guide/en-US= /XFS-allocators.xml index ba5bad0..41ba28a 100644 --- a/XFS_User_Guide/en-US/XFS-allocators.xml +++ b/XFS_User_Guide/en-US/XFS-allocators.xml @@ -20,7 +20,6 @@ =09=09New directories are placed in different AGs where possible =09=09Watch the inode numbers as directory inodes are created: =09=09 -> mkdir a b > mkdir a b > ls -li total 0 131 drwxr-xr-x 2 sjv users 6 2006-10-20 12:12 a diff --git a/XFS_User_Guide/en-US/XFS-mkfs.xml b/XFS_User_Guide/en-US/XFS-m= kfs.xml index ce26572..17e8d67 100644 --- a/XFS_User_Guide/en-US/XFS-mkfs.xml +++ b/XFS_User_Guide/en-US/XFS-mkfs.xml @@ -5,7 +5,7 @@ =09mkfs =09
=09=09Creating XFS Filesystems -=09=09mkfs.xfs supports a large number of options for configuration = a large number of different XFS filesystems +=09=09mkfs.xfs supports a large number of options for configuring ma= ny different XFS filesystems =09=09 =09=09See mkfs.xfs(8) =09=09 @@ -14,15 +14,15 @@ =09=09100s =3D 100 sectors =3D 100 x 512 bytes* =09=09100b =3D 100 blocks =3D 100 x 4 kilobytes* =09=09100k =3D 100 * 1024 bytes -=09=09Assuming 512 bytes sectors and 4 KB filesyste= +=09=09Assuming 512 bytes sectors and 4 KB filesystem block= size =09=09 =09=09-N option can be used to show filesystem parameters without cr= eating a filesystem =09=09Also provides the capability to pre-initialise the filesystem = with directories and inodes, which is useful for testing =09
=09
=09=09mkfs - Allocation Block Size -=09=09Specify the fundamental block size of the filesystem. -=09=09The default value is 4096 bytes (4 KB), the minimum is 512, an= d the maximum is 65536 (64 KB). +=09=09Specify the fundamental allocation block size of the filesyste= m. +=09=09The default value is 4KB, the minimum is 512 bytes, and the ma= ximum is 64KB =09=09XFS on Linux currently only supports pagesize or smaller block= s. =09=09To create a filesystem with a block size of 2048 bytes you wou= ld use: =09=09mkfs.xfs -b size=3D2048 device @@ -30,17 +30,17 @@ =09
=09
=09=09mkfs - Allocation groups -=09=09The data section of an XFS filesystem is divided into allocati= on groups -=09=09More allocation groups imply more parallelism when allocation = blocks and inodes. -=09=09To create filesystem with 16 allocation groups you would use:<= /para> +=09=09An XFS filesystem is divided into allocation groups +=09=09More allocation groups offer more parallelism when allocating = blocks and inodes +=09=09To create filesystem with 16 allocation groups you would use =09=09mkfs.xfs -d acount=3D16 device -=09=09To create a filesystem with fixed size allocation groups +=09=09To create a filesystem with a specific size for the allocation= groups =09=09mkfs.xfs -d agsize=3D4g device =09=09Filesystems with too few or too many allocation grou= ps should be avoided. =09
=09
=09=09mkfs - Stripe Alignment -=09=09Aligning file data on stripe width boundaries can significantl= y improve performance on large RAIDs +=09=09Aligning file data I/Os on stripe width boundaries can signifi= cantly improve performance on large RAIDs =09=09 =09=09A 2MB write to filesystem with a 2MB stripe width an= d 512KB stripe unit will result in four=20 =09=09=09=09I/Os, one to each lun. Without alignment this would often requ= ire two I/Os to one disk,=20 @@ -74,28 +74,33 @@ =09
=09=09mkfs - Extended Attributes =09=09Specify the version of extended attribute inline allocation po= licy to be used. -=09=09Default is zero, when extended attributes are used for the fir= st time the version=20 -=09=09 will be set to either one or two. -=09=09Version two uses a more efficient algorithm for managing the a= vailable inline inode space=20 -=09=09 than version one, however, for backward compatibility, version= one is selected by default. +=09=09 +=09=09Version 1 has fixed regions for attribute and extent= data +=09=09Version 2 (default) uses a more efficient algorithm = for managing the available inline inode space +=09=09Version 1 inodes are automatically converted to vers= ion 2 on the fly +=09=09 =09=09To force the use of version two extended attributes you would = use: =09=09mkfs.xfs -i attr=3D2 device =09
=09
=09=09mkfs - Naming options =09=09Specify the version and size parameters for the naming (direct= ory) area of the filesystem. -=09=09The naming (directory) version is 1 or 2, defaulting to 2 if u= nspecified. -=09=09XFS on Linux does not support naming (directory) version 1. +=09=09 +=09=09The naming (directory) version is either 2 (default)= or ci (implies version 2). +=09=09Version 2 allows for the directory block size to be = a multiple of the allocation block size +=09=09Version ci supports ASCII-only case-insensitive nami= ng +=09=09XFS on Linux does not support naming (directory) ver= sion 1. +=09=09 =09=09To create a filesystem with a directory block size of 16KB you= would use: =09=09mkfs.xfs -n size=3D16384 device -=09=09ASCII-only case-insensitive naming is also supported: +=09=09ASCII-only case-insensitive naming: =09=09mkfs.xfs -n version=3Dci device =09
=09
=09=09mkfs - External Log =09=09The journal log can be on a different device to the rest of th= e filesystem =09=09 -=09=09At least 512 blocks. +=09=09At least 512 filesystem blocks =09=09No more than 64K blocks or 128MB, whichever is small= er =09=09Defaults to maximum size for >1TB filesystems= =09=09 @@ -105,7 +110,6 @@ =09=09 =09=09mkfs.xfs -l logdev=3Dlog_device device =09=09mount -o logdev=3Dlog_device device path -=09=09XXX Image goes here =09
=09
=09=09mkfs - Realtime @@ -123,7 +127,6 @@ =09=09Receives limited testing and support in Linux =09=09Filesystems created with a realtime subvolume can only b= e mounted on kernels =09=09=09 with CONFIG_XFS_RT enabled -=09=09XXX Image goes here =09
=09
=09=09mkfs - Filesystem Image diff --git a/XFS_User_Guide/en-US/XFS-mount.xml b/XFS_User_Guide/en-US/XFS-= mount.xml index e175f95..75b36b4 100644 --- a/XFS_User_Guide/en-US/XFS-mount.xml +++ b/XFS_User_Guide/en-US/XFS-mount.xml @@ -30,32 +30,31 @@ =09=09mount -o logdev=3Dlog_device,rtdev=3Drt_device device= mountpoint =09
=09
-=09=09Mount Options - 64bit Inodes -=09=09By default XFS uses 32bit inodes -=09=09 -=09=09The inode=E2=80=99s number roughly equates to its lo= cation on disk +=09=09Mount Options - 32 or 64 bit Inodes +=09=09The inode's number is derived from its location on disk =09=09=09 =09=09=09Combination of allocation group, cluster and bloc= k =09=09=09 -=09=09 -=09=09Inode on Linux is 32bit on 32bit machines -=09=09=09 -=09=09=09May change in future kernels -=09=09=09 -=09=09 -=09=09Allocator will place 32bit inodes in the first terab= yte +=09=09 +=09=0932 bit inodes (default): +=09=09 +=09=09Allocator can only place 32bit inodes in the first t= erabyte =09=09=09 =09=09=09Using a larger inode size means less inodes per c= luster allowing 32bit=20 =09=09=09=09=09inodes to be located beyond the first terabyte =09=09=09 =09=09 +=09=09Allocator will rotate data extents across allocation= s groups to leave room for inodes =09=09 -=09=09inode64 option on 64bit machines allows inodes to span the ent= ire filesystem +=09=0964 bit inodes: =09=09 +=09=09Only available on 64bit machines +=09=09Use inode64 mount option to enable +=09=09Allows inodes to span the entire filesystem =09=09Allocator will try to put file extents in same alloc= ation group as inode =09=09Not all backup tools support 64bit inodes =09=09=09 -=09=09=09Inode number used to identify file between backup= s +=09=09=09Inode number used to uniquely identify files in b= ackups =09=09=09 =09=09 =09=09 @@ -66,7 +65,7 @@ =09=09Values must be specified in 512-byte block units. =09=09For example, to use a stripe unit of 1MB and a stripe width of= 8MB: =09=09mount -o sunit=3D2048,swidth=3D16384 device mountpoin= t -=09=09swalloc option +=09=09swalloc mount option =09=09 =09=09data allocations will be rounded up to stripe width = boundaries when the =09=09=09=09current end of file is being extended and the file size is lar= ger than the=20 @@ -75,6 +74,7 @@ =09
=09
=09=09Mount Options - Large I/O +=09=09These mount options affect the preferred filesystem I/O size r= eported by stat(2) =09=09largeio =09=09 =09=09A filesystem that has a swidth sp= ecified will return the=20 @@ -82,29 +82,30 @@ =09=09If the filesystem does not have a swidth specified but does=20 =09=09=09=09specify an allocsize then allocsiz= e=20 =09=09=09=09(in bytes) will be returned instead. -=09=09If neither of these two options are specified, then = filesystem will behave as=20 -=09=09=09=09if nolargeio was specified. =09=09 -=09=09largeio +=09=09nolargeio (default) =09=09 -=09=09The optimal I/O reported in st_blksize by stat(2)=20 -=09=09=09=09will be as small as possible to allow user applications to avo= id inefficient=20 -=09=09=09=09read/modify/write I/O. +=09=09The optimal I/O reported in st_blksize will be as sm= all as possible to +=09=09=09allow user applications to avoid inefficient read/modify/write I/= O. =09=09 +=09=09If neither of these two options are specified, then the filesy= stem will behave as if +=09=09=09nolargeio was specified. =09
=09
=09=09Mount Options - Performance Tweaks -=09=09osyncisdsync (default/deprecated) +=09=09osyncisdsync (default/deprecated) =09=09 =09=09Writes to files opened with the O_SYNC flag set will= behave as if the O_DSYNC=20 =09=09=09=09flag had been used instead. =09=09This can result in better performance without compro= mising data safety. =09=09However timestamp updates from O_SYNC writes can be = lost if the system crashes.=20 -=09=09=09=09Use osyncisosync to disable this setting. +=09=09=09=09Use osyncisosync to disable this setting. =09=09 =09=09ikeep =09=09 =09=09When inode clusters are emptied of inodes, keep them= around on the disk. +=09=09Use the noikeep option to force e= mpty inode clusters to be returned to +=09=09=09the free space pool. =09=09 =09
=09
@@ -145,21 +146,24 @@ =09
=09
=09=09Mount Options - Barriers -=09=09Write cache on disk can result in filesystem corruption since = XFS is told the=20 +=09=09Write caches on disks can result in filesystem corruption sinc= e XFS may be told a=20 =09=09 log transaction has reached the disk when in fact it is still = in the disk cache. =09=09 =09=09A journal log assumes that the log transaction is up= dated on disk before=20 -=09=09=09=09the metadata is updated, but this may not be true with write c= aching +=09=09=09=09updating the metadata in the filesystem, but this may not be t= rue with +=09=09=09=09write caching =09=09 -=09=09XFS is able to issue write barriers if the device supports it<= /para> +=09=09XFS is able to issue write barriers if the underlying devices = support it =09=09 =09=09Ensures that the log entry is written before any oth= er data =09=09 =09=09Write barriers are enabled by default in XFS =09=09 -=09=09Filesystem will attempt to determine is barriers are= supported and will=20 +=09=09Filesystem will attempt to determine if barriers are= supported and will=20 =09=09=09=09issue a warning to the syslog if they are not =09=09The nobarrier option disables wri= te barriers +=09=09Barriers should be disabled when using a RAID with b= attery backed controller +=09=09=09cache (but only if the individual disk write caches are disabled)= =09=09 =09=09See =09=09 @@ -175,7 +179,8 @@ =09=09mount -o grpquota device mountpoint =09=09Project quota accounting enabled, and limits (optionally) enfo= rced. =09=09mount -o prjquota device mountpoint -=09=09Can optionally specify uqnoenforce, gqnoenforce and=20 -=09=09 pqnoenforce to use soft limits. +=09=09Can optionally specify uqnoenforce,=20 +=09=09=09gqnoenforce and pqnoenforce= =20 +=09=09=09to use soft limits. =09
From lmcilroy@redhat.com Tue Aug 24 01:42:27 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_210, J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7O6gQjB170001 for ; Tue, 24 Aug 2010 01:42:27 -0500 X-ASG-Debug-ID: 1282632179-73f901ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx01.colomx.prod.int.phx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B50591E09A for ; Mon, 23 Aug 2010 23:42:59 -0700 (PDT) Received: from mx01.colomx.prod.int.phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id 4iBRYwdBJ5pVfaD0 for ; Mon, 23 Aug 2010 23:42:59 -0700 (PDT) Received: from mail05.corp.redhat.com (zmail05.collab.prod.int.phx2.redhat.com [10.5.5.46]) by mx01.colomx.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o7O6gwxi022875 for ; Tue, 24 Aug 2010 02:42:58 -0400 Date: Tue, 24 Aug 2010 02:42:58 -0400 (EDT) From: Lachlan McIlroy Reply-To: Lachlan McIlroy To: xfs Message-ID: <1900845948.392521282632178785.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> X-ASG-Orig-Subj: [PATCH V2 2/2] xfsdocs: updates to XFS User Guide Subject: [PATCH V2 2/2] xfsdocs: updates to XFS User Guide MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.5.72] X-Mailer: Zimbra 5.0.21_GA_3150.RHEL4_64 (ZimbraWebClient - FF3.0 (Linux)/5.0.21_GA_3150.RHEL4_64) X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1282632179 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38869 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Fixed some command line examples by adding the replaceable tag. Lachlan diff --git a/XFS_User_Guide/en-US/XFS-mkfs.xml b/XFS_User_Guide/en-US/XFS-mkfs.xml index 17e8d67..eb29d72 100644 --- a/XFS_User_Guide/en-US/XFS-mkfs.xml +++ b/XFS_User_Guide/en-US/XFS-mkfs.xml @@ -25,7 +25,7 @@ The default value is 4KB, the minimum is 512 bytes, and the maximum is 64KB XFS on Linux currently only supports pagesize or smaller blocks. To create a filesystem with a block size of 2048 bytes you would use: - mkfs.xfs -b size=2048 device + mkfs.xfs -b size=2048 device Smaller block sizes reduce wasted space for lots of small files.
@@ -33,9 +33,9 @@ An XFS filesystem is divided into allocation groups More allocation groups offer more parallelism when allocating blocks and inodes To create filesystem with 16 allocation groups you would use - mkfs.xfs -d acount=16 device + mkfs.xfs -d acount=16 device To create a filesystem with a specific size for the allocation groups - mkfs.xfs -d agsize=4g device + mkfs.xfs -d agsize=4g device Filesystems with too few or too many allocation groups should be avoided.
@@ -47,9 +47,9 @@ and one I/O to the other three, taking longer than it should. To create a filesystem with a stripe unit of 1MB for an 8+1 RAID you would use: - mkfs.xfs -d sunit=2048,swidth=16384 device + mkfs.xfs -d sunit=2048,swidth=16384 device or - mkfs.xfs -d su=1m,sw=8m device + mkfs.xfs -d su=1m,sw=8m device xfsprogs 3.1.0 and newer will use the blkid library to correctly identify stripe geometry for lvm, md, and some hardware raid devices which export this information @@ -69,7 +69,7 @@ how much data may be associated with the inode before data goes out of line To allocate 512 bytes to each inode: - mkfs.xfs -i size=512 device + mkfs.xfs -i size=512 device
mkfs - Extended Attributes @@ -80,7 +80,7 @@ Version 1 inodes are automatically converted to version 2 on the fly To force the use of version two extended attributes you would use: - mkfs.xfs -i attr=2 device + mkfs.xfs -i attr=2 device
mkfs - Naming options @@ -92,9 +92,9 @@ XFS on Linux does not support naming (directory) version 1. To create a filesystem with a directory block size of 16KB you would use: - mkfs.xfs -n size=16384 device + mkfs.xfs -n size=16384 device ASCII-only case-insensitive naming: - mkfs.xfs -n version=ci device + mkfs.xfs -n version=ci device
mkfs - External Log @@ -108,8 +108,8 @@ 15K RPM disk or battery-backed memory - mkfs.xfs -l logdev=log_device device - mount -o logdev=log_device device path + mkfs.xfs -l logdev=log_device device + mount -o logdev=log_device device path
mkfs - Realtime @@ -121,8 +121,8 @@ Bitmap allocator only has to manage file data allocations - mkfs.xfs -l logdev=log_device -r rtdev=rt_device device - mount -o logdev=log_device,rtdev=rt_device device path + mkfs.xfs -l logdev=log_device -r rtdev=rt_device device + mount -o logdev=log_device,rtdev=rt_device device path rt_device is the device for the file data, device is for the metadata Receives limited testing and support in Linux Filesystems created with a realtime subvolume can only be mounted on kernels @@ -132,7 +132,7 @@ mkfs - Filesystem Image mkfs allows you to create a filesystem as a regular file This can be used to create a filesystem on a loop-back device - mkfs.xfs -d file=1,name=filename,size=2g filename + mkfs.xfs -d file=1,name=filename,size=2g filename
mkfs - Sector Size @@ -140,7 +140,7 @@ Default value is 512 bytes. The minimum value for sector size is 512; the maximum is 32768 (32 KB) or the filesystem block size (whichever is smaller). To create a filesystem on a device that has a sector size of 1KB you would use: - mkfs.xfs -s size=1024 device + mkfs.xfs -s size=1024 device xfsprogs 3.1.0 and newer will automatically detect the appropriate sector size for a device
@@ -148,7 +148,7 @@ Set the filesystem label. XFS filesystem labels can be at most 12 characters long. To create a filesystem and specify the label you would use: - mkfs.xfs -L label device + mkfs.xfs -L label device A label may later be added or changed by using the xfs_admin command
diff --git a/XFS_User_Guide/en-US/XFS-mount.xml b/XFS_User_Guide/en-US/XFS-mount.xml index 75b36b4..817a2da 100644 --- a/XFS_User_Guide/en-US/XFS-mount.xml +++ b/XFS_User_Guide/en-US/XFS-mount.xml @@ -25,9 +25,9 @@
Mount Options - Log & Realtime Devices Use an external log (metadata journal) device: - mount -o logdev=log_device device mountpoint + mount -o logdev=log_device device mountpoint Use an external log (metadata journal) and real-time device: - mount -o logdev=log_device,rtdev=rt_device device mountpoint + mount -o logdev=log_device,rtdev=rt_device device mountpoint
Mount Options - 32 or 64 bit Inodes @@ -64,7 +64,7 @@ Specify the stripe unit and width for a RAID device or a stripe volume. Values must be specified in 512-byte block units. For example, to use a stripe unit of 1MB and a stripe width of 8MB: - mount -o sunit=2048,swidth=16384 device mountpoint + mount -o sunit=2048,swidth=16384 device mountpoint swalloc mount option data allocations will be rounded up to stripe width boundaries when the @@ -120,7 +120,7 @@ When the new form is used for the first time (by setting or removing extended attributes) the on-disk superblock feature bit field will be updated to reflect this format being in use. - mount -o attr2 device mountpoint + mount -o attr2 device mountpoint
Mount Options - Group Ids @@ -142,7 +142,7 @@ If the filesystem was not cleanly unmounted, it is likely to be inconsistent when mounted in norecovery mode. Some files or directories may not be accessible because of this. Filesystems mounted norecovery must be mounted read-only or the mount will fail. - mount -o ro,norecovery device mountpoint + mount -o ro,norecovery device mountpoint
Mount Options - Barriers @@ -174,11 +174,11 @@
Mount Options - User/Group/Project Quotas User disk quota accounting enabled, and limits (optionally) enforced. - mount -o uquota device mountpoint + mount -o uquota device mountpoint Group disk quota accounting enabled, and limits (optionally) enforced. - mount -o grpquota device mountpoint + mount -o grpquota device mountpoint Project quota accounting enabled, and limits (optionally) enforced. - mount -o prjquota device mountpoint + mount -o prjquota device mountpoint Can optionally specify uqnoenforce, gqnoenforce and pqnoenforce to use soft limits. From BATV+e61b76511dbfe0182aa4+2557+infradead.org+hch@bombadil.srs.infradead.org Tue Aug 24 04:12:03 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7O9C1ge175889 for ; Tue, 24 Aug 2010 04:12:03 -0500 X-ASG-Debug-ID: 1282641154-2226004c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 43F341763D21 for ; Tue, 24 Aug 2010 02:12:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id IESlVjoekd8rQWbl for ; Tue, 24 Aug 2010 02:12:34 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OnpYX-0002vb-5j; Tue, 24 Aug 2010 09:12:33 +0000 Date: Tue, 24 Aug 2010 05:12:33 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [GIT Review] xfs: 2.6.36 fixes Subject: Re: [GIT Review] xfs: 2.6.36 fixes Message-ID: <20100824091233.GA21574@infradead.org> References: <20100824024445.GJ31488@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100824024445.GJ31488@dastard> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282641155 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 24, 2010 at 12:44:45PM +1000, Dave Chinner wrote: > Folks, > > Can you please cast an eye over the the tree below to check that all > the bug fixes that need to go into 2.6.36 are there? If so, I'll > send a pull request to Linus tomorrow. The tree looks good to me. From SRS0+BkpT+85+fromorbit.com=dave@internode.on.net Tue Aug 24 08:45:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44,J_CHICKENPOX_45,J_CHICKENPOX_46,J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7ODjECJ185707 for ; Tue, 24 Aug 2010 08:45:14 -0500 X-ASG-Debug-ID: 1282657545-56c2009f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 912341F9E9 for ; Tue, 24 Aug 2010 06:45:46 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id ECzn6bzh0r4H0XlG for ; Tue, 24 Aug 2010 06:45:46 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36508295-1927428 for ; Tue, 24 Aug 2010 23:15:44 +0930 (CST) Received: from disturbed ([192.168.1.9]) by dastard with esmtp (Exim 4.71) (envelope-from ) id 1Ontot-0005yf-8D for xfs@oss.sgi.com; Tue, 24 Aug 2010 23:45:43 +1000 Received: from dave by disturbed with local (Exim 4.72) (envelope-from ) id 1Ontoj-0000tS-B2 for xfs@oss.sgi.com; Tue, 24 Aug 2010 23:45:33 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] [RFC] xfs: prevent bmap btree from using alloc btree reserved blocks Subject: [PATCH] [RFC] xfs: prevent bmap btree from using alloc btree reserved blocks Date: Tue, 24 Aug 2010 23:45:33 +1000 Message-Id: <1282657533-3400-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1282657547 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38897 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Recently we've had WANT_CORRUPTED_GOTO filesystem shutdowns reported on filesystems with large numbers of small AGs. RedHat QA found a simple test case at: https://bugzilla.redhat.com/show_bug.cgi?id=626244 Which was further refined to: # mkfs.xfs -f -d agsize=16m,size=50g # mount /mnt # xfs_io -f -c 'resvsp 0 40G' /mnt/foo The initial analysis is in the above bug. The fundamental problem is that the data extent allocation is using all the free blocks in the allocation group, and then the bmap btree block allocation is dipping into the reserved block pool that each AG holds for freespace btree manipulations. This results in failures when multiple bmap btree blocks are needed for a multilevel split of the bmap btree. The reason this is occurring is that when we do a btree block allocation after a data extent allocation we run down the path that does not set up the minleft allocation parameter. That is, we allow the btree block allocation to use up all the blocks in the current AG if that is what will make the current allocation succeed. This what we are supposed to only allow the low space allocation algorithm to do, not a normal allocation. The result is that we can allocate the first block from the AG freelist, and then the second block allocation in the split will fail in the same AG because we do not have a minleft parameter set and hence will not pass the checks in xfs_alloc_fix_freelist() and hence the allocation will fail. Further, because no minleft parameter is set, the btree block allocation will not retry the allocation with different parameters and (potentially) enable the low space algorithm. The result is that we fail a btree block allocation and hence fail the extent allocation with a dirty btree and transaction. The dirty btree causes the WANT_CORRUPTED_GOTO warning, and cancelling the dirty transaction triggers the shutdown. The fix appears to be to ensure that we set the minleft parameter correctly to reflect the potential number of btree blocks we still need to allocate from the same AG if we are doing a worst case split. By doing so, the particular case results in the first btree block allocation setting minleft to the number of blocks needed for a split. Hence the AG that we just allocated all the free blocks out of for the data extent will fail because there are not enough free blocks for all the blocks in the split in the AG. It will fail this without dirtying anything, and because minleft is now > 0, will trigger the retry algorithm. The fallback algorithm also needs a slight modification. It currently assumes that if minleft is set, no allocation has been done yet, so it can scan from AG 0 to find a free block. If it is left like this, it can trigger deadlocks from the new case as we have a prior allocation and hence cannot allocate from an AG less than the current AG. Hence it is modified to use a START_AG allocation to scan upwards from the current AG, hence avoiding the known AG locking deadlocks. As far as I can tell, the bmap btree code has never handled this case properly - I checked as far back as 1995 and minleft has never been set to avoid selecting an AG that cannot be allocated out of... Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap_btree.c | 51 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 42 insertions(+), 9 deletions(-) diff --git a/fs/xfs/xfs_bmap_btree.c b/fs/xfs/xfs_bmap_btree.c index 87d3c10..d5ef4e3 100644 --- a/fs/xfs/xfs_bmap_btree.c +++ b/fs/xfs/xfs_bmap_btree.c @@ -538,6 +538,25 @@ xfs_bmbt_alloc_block( args.type = XFS_ALLOCTYPE_START_BNO; } else { args.type = XFS_ALLOCTYPE_NEAR_BNO; + + /* + * we've come in here because this is the second or subsequent + * btree block we need to allocate for the bmap btree + * modification. If we've just emptied the AG and there are + * only free list blocks left, we need to make sure that we + * take into account the minleft value that was reserved on the + * first allocation through here (the NULLFSBLOCK branch + * above). In that case, minleft will already take into account + * the maximum number of blocks needed for a btree split, and + * the number of blocks already allocated is recorded in the + * cursor. From that, we can work out exactly how much smaller + * the minleft should be so that we don't select an AG that + * does not have enough blocks available to continue the entire + * btree split. + */ + args.minleft = XFS_BM_MAXLEVELS(args.mp, + (int)cur->bc_private.b.whichfork) - 1 - + cur->bc_private.b.allocated; } args.minlen = args.maxlen = args.prod = 1; @@ -550,15 +569,29 @@ xfs_bmbt_alloc_block( if (error) goto error0; - if (args.fsbno == NULLFSBLOCK && args.minleft) { - /* - * Could not find an AG with enough free space to satisfy - * a full btree split. Try again without minleft and if - * successful activate the lowspace algorithm. - */ - args.fsbno = 0; - args.type = XFS_ALLOCTYPE_FIRST_AG; - args.minleft = 0; + while (args.fsbno == NULLFSBLOCK && args.minleft) { + if (cur->bc_private.b.firstblock == NULLFSBLOCK) { + /* + * Could not find an AG with enough free space to satisfy + * a full btree split. Try again without minleft and if + * successful activate the lowspace algorithm. + */ + args.type = XFS_ALLOCTYPE_FIRST_AG; + args.fsbno = 0; + args.minleft = 0; + } else { + /* + * Failed to find enough space for a btree block after + * a extent allocation has already occurred. Continue + * searching other AGs that can hold the remaining + * blocks. If we fail with minleft set, then clear it + * and try again. + */ + args.type = XFS_ALLOCTYPE_START_AG; + args.fsbno = cur->bc_private.b.firstblock; + if (cur->bc_private.b.flist->xbf_low) + args.minleft = 0; + } error = xfs_alloc_vextent(&args); if (error) goto error0; -- 1.7.1 From aelder@sgi.com Tue Aug 24 17:55:18 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7OMtHOk205200 for ; Tue, 24 Aug 2010 17:55:18 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 65647AC009; Tue, 24 Aug 2010 15:55:49 -0700 (PDT) Received: from [128.162.232.176] ([128.162.232.176]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 24 Aug 2010 17:54:59 -0500 Subject: Re: [GIT Review] xfs: 2.6.36 fixes From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <20100824024445.GJ31488@dastard> References: <20100824024445.GJ31488@dastard> Content-Type: text/plain; charset="UTF-8" Date: Tue, 24 Aug 2010 17:54:58 -0500 Message-ID: <1282690498.1885.74.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 24 Aug 2010 22:54:59.0408 (UTC) FILETIME=[60FBE500:01CB43DF] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2010-08-24 at 12:44 +1000, Dave Chinner wrote: > Folks, > > Can you please cast an eye over the the tree below to check that all > the bug fixes that need to go into 2.6.36 are there? If so, I'll > send a pull request to Linus tomorrow. > > Note that these are just the outstanding bug fixes that have been > reviewed (as Linus has again decreed for pull requests after -rc1), > so it not the complete set of reviewd patches that exist. > > Cheers, > > Dave. All of these commits look good to me. I will have these and all the rest published on the oss.sgi.com tree later this week. I've been on vacation and have gotten behind. Reviewed-by: Alex Elder > > The following changes since commit 9ee47476d6734c9deb9ae9ab05d963302f6b6150: > > Merge branch 'radix-tree' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev (2010-08-22 19:55:14 -0700) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev.git 2.6.36-fixes . . . From SRS0+oUyZ+86+fromorbit.com=david@internode.on.net Tue Aug 24 20:10:00 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7P19xwj209501 for ; Tue, 24 Aug 2010 20:10:00 -0500 X-ASG-Debug-ID: 1282698631-07e5023c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D24511E52792 for ; Tue, 24 Aug 2010 18:10:32 -0700 (PDT) Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id w0nfNnBRw7kBLbdq for ; Tue, 24 Aug 2010 18:10:32 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36308779-1927428 for multiple; Wed, 25 Aug 2010 10:40:30 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Oo4VY-00076W-Je; Wed, 25 Aug 2010 11:10:28 +1000 Date: Wed, 25 Aug 2010 11:10:28 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [GIT Review] xfs: 2.6.36 fixes Subject: Re: [GIT Review] xfs: 2.6.36 fixes Message-ID: <20100825011028.GL31488@dastard> References: <20100824024445.GJ31488@dastard> <1282690498.1885.74.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282690498.1885.74.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103] X-Barracuda-Start-Time: 1282698633 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38943 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 24, 2010 at 05:54:58PM -0500, Alex Elder wrote: > On Tue, 2010-08-24 at 12:44 +1000, Dave Chinner wrote: > > Folks, > > > > Can you please cast an eye over the the tree below to check that all > > the bug fixes that need to go into 2.6.36 are there? If so, I'll > > send a pull request to Linus tomorrow. > > > > Note that these are just the outstanding bug fixes that have been > > reviewed (as Linus has again decreed for pull requests after -rc1), > > so it not the complete set of reviewd patches that exist. > > > > Cheers, > > > > Dave. > > All of these commits look good to me. I will have these > and all the rest published on the oss.sgi.com tree later > this week. I've been on vacation and have gotten behind. I'm going to send the pull to Linus, anyway, Alex. The problem is deeper than "been on vacation" - regardless of whether you are on vacation we can't rely on you to do anything immediately. It might be code review, triage community reported bugs, pulling patches into the OSS tree or sending stuff to Linus, but it's always a week or two later than it needs to be. This is not a new problem, either. Just on the git aspect of this problem, I haven't been using the git tree on oss.sgi.com now for a couple of months - instead I'm working from a mainline tree and using topic branches and local merges to manange separate patch sets. Having to work with a slow-to-update XFS tree is actually quite painful, and most of that pain goes away it I just drop the OSS tree out of the loop completely. For example, the last pull request I sent to Linus was for the radix-tree branch containing writeback regression fixes. Linus merged that branch into mainline within ten minutes of me sending the pull request. If I contrast that to getting the same patches to Linus via the oss tree - I'd still be waiting for you to get them into the OSS tree and all I know is that it would be "later this week". It's just easier to send stuff that is ready straight to Linus. Given that I'm already doing all the git tree work to integrate, tag and test all the XFS patches coming in on the mailing list, adding an extra tree hop with an unknown latency to get the commits to Linus is distinctly sub-optimal. So, give me some good reasons why I should continue to send XFS kernel code through the SGI controlled tree on oss.sgi.com rather than directly to Linus. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+oUyZ+86+fromorbit.com=david@internode.on.net Tue Aug 24 23:50:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7P4o3OU217709 for ; Tue, 24 Aug 2010 23:50:04 -0500 X-ASG-Debug-ID: 1282711835-7af700120000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C37E21B9AFFC for ; Tue, 24 Aug 2010 21:50:36 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id CMWG1faCoVl1Q5RB for ; Tue, 24 Aug 2010 21:50:36 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 24919944-1927428 for multiple; Wed, 25 Aug 2010 14:20:34 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Oo7wW-0007Id-NH; Wed, 25 Aug 2010 14:50:32 +1000 Date: Wed, 25 Aug 2010 14:50:32 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [GIT Review] xfs: 2.6.36 fixes Subject: Re: [GIT Review] xfs: 2.6.36 fixes Message-ID: <20100825045032.GM31488@dastard> References: <20100824024445.GJ31488@dastard> <1282690498.1885.74.camel@doink> <20100825011028.GL31488@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100825011028.GL31488@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282711837 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38958 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 25, 2010 at 11:10:28AM +1000, Dave Chinner wrote: > On Tue, Aug 24, 2010 at 05:54:58PM -0500, Alex Elder wrote: > > On Tue, 2010-08-24 at 12:44 +1000, Dave Chinner wrote: > > > Folks, > > > > > > Can you please cast an eye over the the tree below to check that all > > > the bug fixes that need to go into 2.6.36 are there? If so, I'll > > > send a pull request to Linus tomorrow. > > > > > > Note that these are just the outstanding bug fixes that have been > > > reviewed (as Linus has again decreed for pull requests after -rc1), > > > so it not the complete set of reviewd patches that exist. > > > > > > Cheers, > > > > > > Dave. > > > > All of these commits look good to me. I will have these > > and all the rest published on the oss.sgi.com tree later > > this week. I've been on vacation and have gotten behind. > > I'm going to send the pull to Linus, anyway, Alex. > > The problem is deeper than "been on vacation" - regardless of > whether you are on vacation we can't rely on you to do anything > immediately. It might be code review, triage community reported > bugs, pulling patches into the OSS tree or sending stuff to Linus, > but it's always a week or two later than it needs to be. This is > not a new problem, either. So this doesn't get taken the wrong way, this is not a comment on the quality of the work you do, Alex. My concern is the limited amount of time you have available to do the required work and avoiding the bottleneck it causes. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+BywY+86+fromorbit.com=david@internode.on.net Wed Aug 25 02:27:40 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7P7RdjT227335 for ; Wed, 25 Aug 2010 02:27:40 -0500 X-ASG-Debug-ID: 1282721292-58c3021b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1BB0B17519CE for ; Wed, 25 Aug 2010 00:28:12 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id hrTANDBwSIrG2tE6 for ; Wed, 25 Aug 2010 00:28:12 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36621142-1927428 for multiple; Wed, 25 Aug 2010 16:58:11 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OoAP3-0007T4-Os; Wed, 25 Aug 2010 17:28:09 +1000 Date: Wed, 25 Aug 2010 17:28:09 +1000 From: Dave Chinner To: torvalds@linux-foundation.org Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [GIT PULL] xfs: Fixes for 2.6.36-rc3 Subject: [GIT PULL] xfs: Fixes for 2.6.36-rc3 Message-ID: <20100825072809.GO31488@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1282721294 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38968 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Linus, Can you please pull the XFS and writeback related fixes from the tree below? There are writeback efficieny fixes, data integrity fixes, race and sanity fixes for the delayed logging mode, making the filesystem idle correctly (no more disk writes every 30s), ensuring df doesn't return negative free inode counts and fixing a thinko in the untrusted inode validation code. Thanks,, Dave. The following changes since commit 9ee47476d6734c9deb9ae9ab05d963302f6b6150: Merge branch 'radix-tree' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev (2010-08-22 19:55:14 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev.git 2.6.36-fixes Christoph Hellwig (1): xfs: do not discard page cache data on EAGAIN Dave Chinner (8): xfs: unlock items before allowing the CIL to commit xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE xfs: fix untrusted inode number lookup writeback: write_cache_pages doesn't terminate at nr_to_write <= 0 xfs: handle negative wbc->nr_to_write during sync writeback xfs: dummy transactions should not dirty VFS state xfs: Reduce log force overhead for delayed logging xfs: don't do memory allocation under the CIL context lock Stuart Brodsky (1): xfs: ensure f_ffree returned by statfs() is non-negative fs/xfs/linux-2.6/xfs_aops.c | 13 ++- fs/xfs/linux-2.6/xfs_super.c | 9 +- fs/xfs/linux-2.6/xfs_sync.c | 42 +------ fs/xfs/xfs_fsops.c | 31 +++-- fs/xfs/xfs_fsops.h | 2 +- fs/xfs/xfs_ialloc.c | 16 ++- fs/xfs/xfs_inode.c | 49 ++++---- fs/xfs/xfs_log.c | 7 +- fs/xfs/xfs_log_cil.c | 263 +++++++++++++++++++++++++----------------- fs/xfs/xfs_log_priv.h | 13 ++- fs/xfs/xfs_trans.c | 5 +- fs/xfs/xfs_trans_priv.h | 3 +- mm/page-writeback.c | 26 ++--- 13 files changed, 261 insertions(+), 218 deletions(-) -- Dave Chinner david@fromorbit.com From arekm@maven.pl Wed Aug 25 03:22:06 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_74, J_CHICKENPOX_75,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7P8M5o3229692 for ; Wed, 25 Aug 2010 03:22:06 -0500 X-ASG-Debug-ID: 1282725154-33eb00ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9786836D513 for ; Wed, 25 Aug 2010 01:32:35 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id Z9xsLSwHKSQaKInh for ; Wed, 25 Aug 2010 01:32:35 -0700 (PDT) Received: from [83.238.65.58] (port=41824 helo=tarm.maven.pl ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoBFl-0004Lt-N0; Wed, 25 Aug 2010 10:22:37 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoBFl-00054P-2O; Wed, 25 Aug 2010 10:22:37 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Validate string -> number conversion. Subject: [PATCH] Validate string -> number conversion. Date: Wed, 25 Aug 2010 10:22:36 +0200 Message-Id: <1282724556-19456-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282725155 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38969 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Make sure that numbers passed as string will fit into proper types when doing string->uid_t/gid_t/prid_t conversion. Signed-off-by: Arkadiusz Miśkiewicz --- libxcmd/input.c | 18 +++++++++++++++--- quota/project.c | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libxcmd/input.c b/libxcmd/input.c index 1bc0745..c7807fe 100644 --- a/libxcmd/input.c +++ b/libxcmd/input.c @@ -337,13 +337,17 @@ prid_from_string( { fs_project_t *prj; prid_t prid; + unsigned long int prid_long; char *sp; /* * Allow either a full numeric or a valid projectname, even * if it starts with a digit. */ - prid = (prid_t)strtoul(project, &sp, 10); + prid_long = strtoul(project, &sp, 10); + if ((prid_long == ULONG_MAX && errno == ERANGE) || (prid_long > (prid_t)-1)) + return -1; + prid = (prid_t)prid_long; if (*project != '\0' && *sp == '\0') return prid; prj = getprnam(project); @@ -358,9 +362,13 @@ uid_from_string( { struct passwd *pwd; uid_t uid; + unsigned long int uid_long; char *sp; - uid = (uid_t)strtoul(user, &sp, 10); + uid_long = strtoul(user, &sp, 10); + if ((uid_long == ULONG_MAX && errno == ERANGE) || (uid_long > (uid_t)-1)) + return -1; + uid = (uid_t)uid_long; if (sp != user) return uid; pwd = getpwnam(user); @@ -375,9 +383,13 @@ gid_from_string( { struct group *grp; gid_t gid; + unsigned long int gid_long; char *sp; - gid = (gid_t)strtoul(group, &sp, 10); + gid_long = strtoul(group, &sp, 10); + if ((gid_long == ULONG_MAX && errno == ERANGE) || (gid_long > (gid_t)-1)) + return -1; + gid = (gid_t)gid_long; if (sp != group) return gid; grp = getgrnam(group); diff --git a/quota/project.c b/quota/project.c index 1aacddd..e9baadd 100644 --- a/quota/project.c +++ b/quota/project.c @@ -331,7 +331,7 @@ project_f( prid = prid_from_string(argv[optind]); if (prid == -1) { exitcode = 1; - fprintf(stderr, _("%s - no such project in %s\n"), + fprintf(stderr, _("%s - no such project in %s or invalid project number\n"), argv[optind], projects_file); } else project(argv[optind], type); -- 1.7.1.1 From arekm@maven.pl Wed Aug 25 03:45:22 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7P8jMGW230763 for ; Wed, 25 Aug 2010 03:45:22 -0500 X-ASG-Debug-ID: 1282725955-56ed01aa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2F7195C7A for ; Wed, 25 Aug 2010 01:45:55 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id ffvJuYBKd38AwEhG for ; Wed, 25 Aug 2010 01:45:55 -0700 (PDT) Received: from [83.238.65.58] (port=37150 helo=tarm.maven.pl ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoBcJ-00070Q-CQ for xfs@oss.sgi.com; Wed, 25 Aug 2010 10:45:55 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoBcI-0005U5-Ua for xfs@oss.sgi.com; Wed, 25 Aug 2010 10:45:55 +0200 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Validate string -> number conversion. Subject: Re: [PATCH] Validate string -> number conversion. Date: Wed, 25 Aug 2010 10:45:54 +0200 User-Agent: KMail/1.13.5 (Linux/2.6.36-rc2-00003-g9ee4747; KDE/4.5.0; x86_64; ; ) References: <1282724556-19456-1-git-send-email-arekm@maven.pl> In-Reply-To: <1282724556-19456-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201008251045.54899.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282725956 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38971 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wednesday 25 of August 2010, Arkadiusz Mi=C5=9Bkiewicz wrote: > Make sure that numbers passed as string will fit into proper > types when doing string->uid_t/gid_t/prid_t conversion. >=20 > Signed-off-by: Arkadiusz Mi=C5=9Bkiewicz > --- > libxcmd/input.c | 18 +++++++++++++++--- > quota/project.c | 2 +- > 2 files changed, 16 insertions(+), 4 deletions(-) On the kernel side something like below is needed (compile tested only). The true fix is to extend on disk di_projid to 32bit (there is room for tha= t). diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 237f5ff..1d9cf4f 100644 =2D-- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -906,6 +906,11 @@ xfs_ioctl_setattr( if (XFS_FORCED_SHUTDOWN(mp)) return XFS_ERROR(EIO); =20 + /* Make sure a userspace passed projid (32bit) will fit on disk (16bit) */ + if (fa->fsx_projid > (__uint16_t)-1) { + code =3D XFS_ERROR(EINVAL); = =20 + goto error_return;=20 + } /* * If disk quotas is on, we make sure that the dquots do exist on disk, * before we start any other transactions. Trying to do this later =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From arekm@maven.pl Wed Aug 25 04:00:54 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7P90sTb231308 for ; Wed, 25 Aug 2010 04:00:54 -0500 X-ASG-Debug-ID: 1282726888-25ac01e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 96D9B17674F9 for ; Wed, 25 Aug 2010 02:01:28 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id sAyrWTVhBrH1uUfw for ; Wed, 25 Aug 2010 02:01:28 -0700 (PDT) Received: from [83.238.65.58] (port=53561 helo=tarm.maven.pl ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoBrL-0000Ne-Pz for xfs@oss.sgi.com; Wed, 25 Aug 2010 11:01:27 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoBrL-0005mG-4O for xfs@oss.sgi.com; Wed, 25 Aug 2010 11:01:27 +0200 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Validate string -> number conversion. Subject: Re: [PATCH] Validate string -> number conversion. Date: Wed, 25 Aug 2010 11:01:26 +0200 User-Agent: KMail/1.13.5 (Linux/2.6.36-rc2-00003-g9ee4747; KDE/4.5.0; x86_64; ; ) References: <1282724556-19456-1-git-send-email-arekm@maven.pl> <201008251045.54899.arekm@maven.pl> In-Reply-To: <201008251045.54899.arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201008251101.27106.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282726888 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38973 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wednesday 25 of August 2010, Arkadiusz Miskiewicz wrote: > On Wednesday 25 of August 2010, Arkadiusz Mi=C5=9Bkiewicz wrote: > > Make sure that numbers passed as string will fit into proper > > types when doing string->uid_t/gid_t/prid_t conversion. > >=20 > > Signed-off-by: Arkadiusz Mi=C5=9Bkiewicz > > --- > >=20 > > libxcmd/input.c | 18 +++++++++++++++--- > > quota/project.c | 2 +- > > 2 files changed, 16 insertions(+), 4 deletions(-) >=20 > On the kernel side something like below is needed (compile tested only). > The true fix is to extend on disk di_projid to 32bit (there is room for > that). template of test suite for this problem (likely needs some small amount of work) #! /bin/bash # FS QA Test No. xxx # # test to verify that correct project quota id is set # # creator owner=3Darekm@maven.pl seq=3D`basename $0` echo "QA output created by $seq" here=3D`pwd` tmp=3D/tmp/$$ status=3D1 # failure is the default! # get standard environment, filters and checks =2E ./common.rc =2E ./common.filter =2E ./common.quota _cleanup() { cd / umount $SCRATCH_MNT 2>/dev/null rm -f $tmp.* } #trap "_cleanup; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs xfs _supported_os Linux IRIX _require_xfs_quota dir=3D$SCRATCH_MNT/project _require_scratch _scratch_mkfs_xfs >/dev/null 2>&1 #if pquota's already in mount options then we dont need to enable # we can't run with group quotas if ( `echo $MOUNT_OPTIONS | grep -q gquota` || `echo $MOUNT_OPTIONS | grep = =2Dq grpquota` ) then _notrun "Can't run with group quotas enabled" fi EXTRA_MOUNT_OPTIONS=3D"-o pquota" if ! _scratch_mount "$EXTRA_MOUNT_OPTIONS" >$tmp.out 2>&1 then cat $tmp.out echo "!!! mount failed" exit fi src/feature -p $SCRATCH_DEV [ $? -ne 0 ] && _notrun "Installed kernel does not support project quotas" mkdir $dir touch $dir/below16bit # below 16bit value xfs_quota -x -c "project -s -p $dir/below16bit 3422" $SCRATCH_DEV projid=3D$($XFS_IO_PROG -r -c "lsproj" $dir/below16bit) if [ "projid =3D 3422" !=3D "$projid" ]; then echo "FAIL: returned projid value ($projid) doesn't match set one (3422)" fi # over 16bit value touch $dir/over16bit xfs_quota -x -c "project -s -p $dir/over16bit 108545" $SCRATCH_DEV projid=3D$($XFS_IO_PROG -r -c "lsproj" $dir) if [ "projid =3D 108545" !=3D "$projid" ]; then echo "FAIL: returned projid value ($projid) doesn't match set one (108545)" fi # over 32bit value, should fail touch $dir/over32bit if ! xfs_quota -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV= ; then echo "FAIL: setting over 32bit projid succeeded while it should fail" fi # success, all done status=3D0 exit =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From ygao.linux@gmail.com Wed Aug 25 09:55:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_00,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7PEtNv2242864 for ; Wed, 25 Aug 2010 09:55:23 -0500 X-ASG-Debug-ID: 1282748157-62e201680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f174.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 34FA51D7B23E for ; Wed, 25 Aug 2010 07:55:57 -0700 (PDT) Received: from mail-qy0-f174.google.com (mail-qy0-f174.google.com [209.85.216.174]) by cuda.sgi.com with ESMTP id shtiWpAwmY8DqyEj for ; Wed, 25 Aug 2010 07:55:57 -0700 (PDT) Received: by qyk9 with SMTP id 9so4927177qyk.5 for ; Wed, 25 Aug 2010 07:55:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:cc:content-type; bh=HIsFVG8NEFy/BnxlYecIa3h0iIlIXSnlMGdU5xJqXlg=; b=aEgzjTBw/d3/UAEijWzAMa+5GMLhQs98ByJq6/busrW0MI+3czf11ZjWer9jrus1sH ZLwn0Ug37mZt7WJntXBpVNpPt2Ej4z4759ct4fHIyprX8NoMpNwLxdPxat5dH6/uHAbY pkNzWqQWZB9O0pPgbEFgTY/7EKzkD7D49dILM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=P4/GrXHeecktCXjU3Cp9jv2adygA2SVCd5LSSXYmaGXxODt+hcdhdv26THQA1TVm1s wWTMwmQwfN7cc6Zsc4MGUg/sV/kpSayKBTrU08a26DBCVJhhHvP2KUfhDqeBbAeJI7Bt CLoAREkLN5Vce4GylPF9Y5wjk5wdwGE/GZwHs= MIME-Version: 1.0 Received: by 10.224.28.209 with SMTP id n17mr2031060qac.141.1282748156840; Wed, 25 Aug 2010 07:55:56 -0700 (PDT) Received: by 10.229.141.207 with HTTP; Wed, 25 Aug 2010 07:55:56 -0700 (PDT) Date: Wed, 25 Aug 2010 09:55:56 -0500 Message-ID: X-ASG-Orig-Subj: Issue: try to release page which still has unwritten blocks? Subject: Issue: try to release page which still has unwritten blocks? From: Mike Gao To: xfs@oss.sgi.com Cc: david@fromorbit.com, Christoph Hellwig Content-Type: multipart/alternative; boundary=0015175cdf6a398ab4048ea714de X-Barracuda-Connect: mail-qy0-f174.google.com[209.85.216.174] X-Barracuda-Start-Time: 1282748158 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.38995 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0015175cdf6a398ab4048ea714de Content-Type: text/plain; charset=ISO-8859-1 Hi, there, It seems that the block should be flushed out somewhere before we come to xfs_aops.c:1295. This happens when I run xfstest 013. Can anybody take a look at this? Thanks very much, Mike Filesystem "xxx": Disabling barriers, trial barrier write failed XFS mounting filesystem xxx BUG: warning at fs/xfs/linux-2.6/xfs_aops.c:1295/xfs_vm_releasepage() 2632fc40: [<08059358>] dump_stack+0x1c/0x20 2632fc58: [<08168ba5>] xfs_vm_releasepage+0x51/0x64 2632fc7c: [<0808e568>] try_to_release_page+0x50/0x60 2632fc90: [<080bfbdf>] block_invalidatepage+0xb8/0xc2 2632fcb4: [<08168318>] xfs_vm_invalidatepage+0xe/0x12 2632fcc4: [<08091e6b>] do_invalidatepage+0x1f/0x23 2632fcd4: [<08091e89>] truncate_complete_page+0x1a/0x3e 2632fce8: [<08091f5f>] truncate_inode_pages_range+0xb2/0x245 2632fd4c: [<08092107>] truncate_inode_pages+0x15/0x1a 2632fd68: [<080960e5>] vmtruncate+0x64/0xf4 2632fdb0: [<081633e7>] xfs_setattr+0x387/0x8ac 2632fe24: [<0816eb42>] xfs_vn_setattr+0x19/0x1d 2632fe38: [<080b56bc>] notify_change+0xfc/0x27c 2632fe64: [<080a31bc>] do_truncate+0x53/0x6c 2632feb4: [<080a336b>] do_sys_truncate+0x196/0x1b7 2632ff38: [<080a350d>] sys_truncate64+0x11/0x13 2632ff40: [<0805b045>] handle_syscall+0x81/0x9c 2632ff8c: [<0806937f>] userspace+0x210/0x267 2632ffdc: [<0805ad8e>] fork_handler+0x74/0x7c 2632fffc: [] 0xa55a5a5a --0015175cdf6a398ab4048ea714de Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi, there,

It seems that the block should be = flushed out somewhere before we come to xfs_aops.c:1295.
This hap= pens when I run xfstest 013. Can anybody take a look at this?

Thanks very much,
Mike

Fi= lesystem "xxx": Disabling barriers, trial barrier write failed
XFS mounting filesystem xxx
BUG: warning at fs/xfs/linux-= 2.6/xfs_aops.c:1295/xfs_vm_releasepage()
2632fc40: =A0[<08059358>] dump_stack+0x1c/0x20
2632fc5= 8: =A0[<08168ba5>] xfs_vm_releasepage+0x51/0x64
2632fc7c: = =A0[<0808e568>] try_to_release_page+0x50/0x60
2632fc90: =A0= [<080bfbdf>] block_invalidatepage+0xb8/0xc2
2632fcb4: =A0[<08168318>] xfs_vm_invalidatepage+0xe/0x12
2632fcc4: =A0[<08091e6b>] do_invalidatepage+0x1f/0x23
26= 32fcd4: =A0[<08091e89>] truncate_complete_page+0x1a/0x3e
26= 32fce8: =A0[<08091f5f>] truncate_inode_pages_range+0xb2/0x245
2632fd4c: =A0[<08092107>] truncate_inode_pages+0x15/0x1a
2632fd68: =A0[<080960e5>] vmtruncate+0x64/0xf4
2632fdb0:= =A0[<081633e7>] xfs_setattr+0x387/0x8ac
2632fe24: =A0[<= 0816eb42>] xfs_vn_setattr+0x19/0x1d
2632fe38: =A0[<080b56bc>] notify_change+0xfc/0x27c
263= 2fe64: =A0[<080a31bc>] do_truncate+0x53/0x6c
2632feb4: =A0[= <080a336b>] do_sys_truncate+0x196/0x1b7
2632ff38: =A0[<0= 80a350d>] sys_truncate64+0x11/0x13
2632ff40: =A0[<0805b045>] handle_syscall+0x81/0x9c
263= 2ff8c: =A0[<0806937f>] userspace+0x210/0x267
2632ffdc: =A0[= <0805ad8e>] fork_handler+0x74/0x7c
2632fffc: =A0[<a55a5a= 5a>] 0xa55a5a5a

--0015175cdf6a398ab4048ea714de-- From BATV+651b6504fe32feeb54cb+2558+infradead.org+hch@bombadil.srs.infradead.org Wed Aug 25 10:21:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7PFLe22243688 for ; Wed, 25 Aug 2010 10:21:43 -0500 X-ASG-Debug-ID: 1282749735-4da802e50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5C8E01B9B4AB for ; Wed, 25 Aug 2010 08:22:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id LDltHtrNGEKbE9xu for ; Wed, 25 Aug 2010 08:22:15 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OoHnr-0001j0-0j; Wed, 25 Aug 2010 15:22:15 +0000 Date: Wed, 25 Aug 2010 11:22:15 -0400 From: Christoph Hellwig To: Mike Gao Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Issue: try to release page which still has unwritten blocks? Subject: Re: Issue: try to release page which still has unwritten blocks? Message-ID: <20100825152214.GA6385@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1282749735 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 25, 2010 at 09:55:56AM -0500, Mike Gao wrote: > Hi, there, > > It seems that the block should be flushed out somewhere before we come to > xfs_aops.c:1295. > This happens when I run xfstest 013. Can anybody take a look at this? Which kernel version are you running? From arekm@maven.pl Wed Aug 25 16:09:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_64, LOCAL_GNU_PATCH,MIME_8BIT_HEADER autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7PL9Ate255771 for ; Wed, 25 Aug 2010 16:09:10 -0500 X-ASG-Debug-ID: 1282770582-417002580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8C11A2609F for ; Wed, 25 Aug 2010 14:09:42 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id WHfxoayJtY4YNPIF for ; Wed, 25 Aug 2010 14:09:42 -0700 (PDT) Received: from chello087207113141.chello.pl ([87.207.113.141]:53157 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoNE5-0001v5-8u; Wed, 25 Aug 2010 23:09:41 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoNE4-0001or-5m; Wed, 25 Aug 2010 23:09:40 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Extend project quotas to support 32bit project identificators. Subject: [PATCH] Extend project quotas to support 32bit project identificators. Date: Wed, 25 Aug 2010 23:09:38 +0200 Message-Id: <1282770578-6958-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282770583 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39018 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch adds support for 32bit project quota identificators. On disk format is backward compatible with 16bit projid numbers. projid on disk is now keept in two 16bit values - di_projid_lo (which holds the same position as old 16bit projid value) and new di_projid_hi (takes existing padding) and converted from/to 32bit value on the fly. To use 32bit numbers you need to explictly enable projid32bit feature flag. Patch also fixes a xfs bug in existing kernels where 32bit projid values were allowed to be set, kernel kept 32bit projid value in struct fsxattr while storing only 16bit projid value on-disk. This caused files to be visible but not mv/rm-able. With this patch 32bit projid are explictly forbidden when projid32bit feature is disabled. Signed-of-by: Arkadiusz Miśkiewicz --- fs/xfs/linux-2.6/xfs_ioctl.c | 13 +++++++++---- fs/xfs/linux-2.6/xfs_ioctl32.c | 6 ++++-- fs/xfs/linux-2.6/xfs_ioctl32.h | 5 +++-- fs/xfs/quota/xfs_qm.c | 12 ++++++------ fs/xfs/quota/xfs_qm_bhv.c | 2 +- fs/xfs/quota/xfs_qm_syscalls.c | 2 +- fs/xfs/xfs_dinode.h | 5 +++-- fs/xfs/xfs_fs.h | 5 +++-- fs/xfs/xfs_inode.c | 14 ++++++++------ fs/xfs/xfs_inode.h | 24 +++++++++++++++++++++--- fs/xfs/xfs_itable.c | 3 ++- fs/xfs/xfs_rename.c | 2 +- fs/xfs/xfs_sb.h | 10 +++++++++- fs/xfs/xfs_types.h | 2 -- fs/xfs/xfs_vnodeops.c | 14 +++++++------- 15 files changed, 78 insertions(+), 41 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 237f5ff..6bc432f 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -788,7 +788,7 @@ xfs_ioc_fsgetxattr( xfs_ilock(ip, XFS_ILOCK_SHARED); fa.fsx_xflags = xfs_ip2xflags(ip); fa.fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog; - fa.fsx_projid = ip->i_d.di_projid; + fa.fsx_projid = xfs_get_projid(ip->i_d); if (attr) { if (ip->i_afp) { @@ -906,6 +906,11 @@ xfs_ioctl_setattr( if (XFS_FORCED_SHUTDOWN(mp)) return XFS_ERROR(EIO); + /* Make sure userspace passed projid will fit on disk */ + if (!xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb) && + fa->fsx_projid > (__uint16_t)-1) + return XFS_ERROR(EINVAL); + /* * If disk quotas is on, we make sure that the dquots do exist on disk, * before we start any other transactions. Trying to do this later @@ -952,7 +957,7 @@ xfs_ioctl_setattr( if (mask & FSX_PROJID) { if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp) && - ip->i_d.di_projid != fa->fsx_projid) { + xfs_get_projid(ip->i_d) != fa->fsx_projid) { ASSERT(tp); code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, capable(CAP_FOWNER) ? @@ -1054,12 +1059,12 @@ xfs_ioctl_setattr( * Change the ownerships and register quota modifications * in the transaction. */ - if (ip->i_d.di_projid != fa->fsx_projid) { + if (xfs_get_projid(ip->i_d) != fa->fsx_projid) { if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp)) { olddquot = xfs_qm_vop_chown(tp, ip, &ip->i_gdquot, gdqp); } - ip->i_d.di_projid = fa->fsx_projid; + xfs_set_projid(&ip->i_d, fa->fsx_projid); /* * We may have to rev the inode as well as diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index 6c83f7f..2146196 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c @@ -164,7 +164,8 @@ xfs_ioctl32_bstat_copyin( get_user(bstat->bs_extsize, &bstat32->bs_extsize) || get_user(bstat->bs_extents, &bstat32->bs_extents) || get_user(bstat->bs_gen, &bstat32->bs_gen) || - get_user(bstat->bs_projid, &bstat32->bs_projid) || + get_user(bstat->bs_projid_lo, &bstat32->bs_projid_lo) || + get_user(bstat->bs_projid_hi, &bstat32->bs_projid_hi) || get_user(bstat->bs_dmevmask, &bstat32->bs_dmevmask) || get_user(bstat->bs_dmstate, &bstat32->bs_dmstate) || get_user(bstat->bs_aextents, &bstat32->bs_aextents)) @@ -217,7 +218,8 @@ xfs_bulkstat_one_fmt_compat( put_user(buffer->bs_extsize, &p32->bs_extsize) || put_user(buffer->bs_extents, &p32->bs_extents) || put_user(buffer->bs_gen, &p32->bs_gen) || - put_user(buffer->bs_projid, &p32->bs_projid) || + put_user(buffer->bs_projid_lo, &p32->bs_projid_lo) || + put_user(buffer->bs_projid_hi, &p32->bs_projid_hi) || put_user(buffer->bs_dmevmask, &p32->bs_dmevmask) || put_user(buffer->bs_dmstate, &p32->bs_dmstate) || put_user(buffer->bs_aextents, &p32->bs_aextents)) diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.h b/fs/xfs/linux-2.6/xfs_ioctl32.h index 1024c4f..7a22385 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.h +++ b/fs/xfs/linux-2.6/xfs_ioctl32.h @@ -65,8 +65,9 @@ typedef struct compat_xfs_bstat { __s32 bs_extsize; /* extent size */ __s32 bs_extents; /* number of extents */ __u32 bs_gen; /* generation count */ - __u16 bs_projid; /* project id */ - unsigned char bs_pad[14]; /* pad space, unused */ + __u16 bs_projid_lo; /* lower part of project id */ + __u16 bs_projid_hi; /* high part of project id */ + unsigned char bs_pad[12]; /* pad space, unused */ __u32 bs_dmevmask; /* DMIG event mask */ __u16 bs_dmstate; /* DMIG state info */ __u16 bs_aextents; /* attribute number of extents */ diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 9a92407..56e1330 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -837,7 +837,7 @@ xfs_qm_dqattach_locked( xfs_qm_dqattach_one(ip, ip->i_d.di_gid, XFS_DQ_GROUP, flags & XFS_QMOPT_DQALLOC, ip->i_udquot, &ip->i_gdquot) : - xfs_qm_dqattach_one(ip, ip->i_d.di_projid, XFS_DQ_PROJ, + xfs_qm_dqattach_one(ip, xfs_get_projid(ip->i_d), XFS_DQ_PROJ, flags & XFS_QMOPT_DQALLOC, ip->i_udquot, &ip->i_gdquot); /* @@ -1248,7 +1248,7 @@ xfs_qm_dqget_noattach( XFS_QMOPT_DQALLOC|XFS_QMOPT_DOWARN, &gdqp) : xfs_qm_dqget(mp, ip, - ip->i_d.di_projid, XFS_DQ_PROJ, + xfs_get_projid(ip->i_d), XFS_DQ_PROJ, XFS_QMOPT_DQALLOC|XFS_QMOPT_DOWARN, &gdqp); if (error) { @@ -2332,9 +2332,9 @@ xfs_qm_vop_dqalloc( xfs_dqunlock(gq); } } else if ((flags & XFS_QMOPT_PQUOTA) && XFS_IS_PQUOTA_ON(mp)) { - if (ip->i_d.di_projid != prid) { + if (xfs_get_projid(ip->i_d) != prid) { xfs_iunlock(ip, lockflags); - if ((error = xfs_qm_dqget(mp, NULL, (xfs_dqid_t)prid, + if ((error = xfs_qm_dqget(mp, NULL, prid, XFS_DQ_PROJ, XFS_QMOPT_DQALLOC | XFS_QMOPT_DOWARN, @@ -2454,7 +2454,7 @@ xfs_qm_vop_chown_reserve( } if (XFS_IS_OQUOTA_ON(ip->i_mount) && gdqp) { if (XFS_IS_PQUOTA_ON(ip->i_mount) && - ip->i_d.di_projid != be32_to_cpu(gdqp->q_core.d_id)) + xfs_get_projid(ip->i_d) != be32_to_cpu(gdqp->q_core.d_id)) prjflags = XFS_QMOPT_ENOSPC; if (prjflags || @@ -2558,7 +2558,7 @@ xfs_qm_vop_create_dqattach( ip->i_gdquot = gdqp; ASSERT(XFS_IS_OQUOTA_ON(mp)); ASSERT((XFS_IS_GQUOTA_ON(mp) ? - ip->i_d.di_gid : ip->i_d.di_projid) == + ip->i_d.di_gid : xfs_get_projid(ip->i_d)) == be32_to_cpu(gdqp->q_core.d_id)); xfs_trans_mod_dquot(tp, gdqp, XFS_TRANS_DQ_ICOUNT, 1); } diff --git a/fs/xfs/quota/xfs_qm_bhv.c b/fs/xfs/quota/xfs_qm_bhv.c index bea02d7..cc16de0 100644 --- a/fs/xfs/quota/xfs_qm_bhv.c +++ b/fs/xfs/quota/xfs_qm_bhv.c @@ -81,7 +81,7 @@ xfs_qm_statvfs( xfs_mount_t *mp = ip->i_mount; xfs_dquot_t *dqp; - if (!xfs_qm_dqget(mp, NULL, ip->i_d.di_projid, XFS_DQ_PROJ, 0, &dqp)) { + if (!xfs_qm_dqget(mp, NULL, xfs_get_projid(ip->i_d), XFS_DQ_PROJ, 0, &dqp)) { xfs_fill_statvfs_from_dquot(statp, &dqp->q_core); xfs_qm_dqput(dqp); } diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 45e5849..e12029f 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -1175,7 +1175,7 @@ xfs_qm_internalqcheck_adjust( } xfs_qm_internalqcheck_get_dquots(mp, (xfs_dqid_t) ip->i_d.di_uid, - (xfs_dqid_t) ip->i_d.di_projid, + (xfs_dqid_t) xfs_get_projid(ip->i_d), (xfs_dqid_t) ip->i_d.di_gid, &ud, &gd); if (XFS_IS_UQUOTA_ON(mp)) { diff --git a/fs/xfs/xfs_dinode.h b/fs/xfs/xfs_dinode.h index e5b153b..b668dff 100644 --- a/fs/xfs/xfs_dinode.h +++ b/fs/xfs/xfs_dinode.h @@ -49,8 +49,9 @@ typedef struct xfs_dinode { __be32 di_uid; /* owner's user id */ __be32 di_gid; /* owner's group id */ __be32 di_nlink; /* number of links to file */ - __be16 di_projid; /* owner's project id */ - __u8 di_pad[8]; /* unused, zeroed space */ + __be16 di_projid_lo; /* lower part of owner's project id */ + __be16 di_projid_hi; /* higher part owner's project id */ + __u8 di_pad[6]; /* unused, zeroed space */ __be16 di_flushiter; /* incremented on flush */ xfs_timestamp_t di_atime; /* time last accessed */ xfs_timestamp_t di_mtime; /* time last modified */ diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h index 7cf7220..6b7debc 100644 --- a/fs/xfs/xfs_fs.h +++ b/fs/xfs/xfs_fs.h @@ -291,9 +291,10 @@ typedef struct xfs_bstat { __s32 bs_extsize; /* extent size */ __s32 bs_extents; /* number of extents */ __u32 bs_gen; /* generation count */ - __u16 bs_projid; /* project id */ + __u16 bs_projid_lo; /* lower part of project id */ __u16 bs_forkoff; /* inode fork offset in bytes */ - unsigned char bs_pad[12]; /* pad space, unused */ + __u16 bs_projid_hi; /* higher part of project id */ + unsigned char bs_pad[10]; /* pad space, unused */ __u32 bs_dmevmask; /* DMIG event mask */ __u16 bs_dmstate; /* DMIG state info */ __u16 bs_aextents; /* attribute number of extents */ diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 68415cb..a38f3fb 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -660,7 +660,8 @@ xfs_dinode_from_disk( to->di_uid = be32_to_cpu(from->di_uid); to->di_gid = be32_to_cpu(from->di_gid); to->di_nlink = be32_to_cpu(from->di_nlink); - to->di_projid = be16_to_cpu(from->di_projid); + to->di_projid_lo = be16_to_cpu(from->di_projid_lo); + to->di_projid_hi = be16_to_cpu(from->di_projid_hi); memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad)); to->di_flushiter = be16_to_cpu(from->di_flushiter); to->di_atime.t_sec = be32_to_cpu(from->di_atime.t_sec); @@ -695,7 +696,8 @@ xfs_dinode_to_disk( to->di_uid = cpu_to_be32(from->di_uid); to->di_gid = cpu_to_be32(from->di_gid); to->di_nlink = cpu_to_be32(from->di_nlink); - to->di_projid = cpu_to_be16(from->di_projid); + to->di_projid_lo = cpu_to_be16(from->di_projid_lo); + to->di_projid_hi = cpu_to_be16(from->di_projid_hi); memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad)); to->di_flushiter = cpu_to_be16(from->di_flushiter); to->di_atime.t_sec = cpu_to_be32(from->di_atime.t_sec); @@ -874,7 +876,7 @@ xfs_iread( if (ip->i_d.di_version == 1) { ip->i_d.di_nlink = ip->i_d.di_onlink; ip->i_d.di_onlink = 0; - ip->i_d.di_projid = 0; + xfs_set_projid(&ip->i_d, 0); } ip->i_delayed_blks = 0; @@ -983,7 +985,7 @@ xfs_ialloc( xfs_nlink_t nlink, xfs_dev_t rdev, cred_t *cr, - xfs_prid_t prid, + prid_t prid, int okalloc, xfs_buf_t **ialloc_context, boolean_t *call_again, @@ -1027,7 +1029,7 @@ xfs_ialloc( ASSERT(ip->i_d.di_nlink == nlink); ip->i_d.di_uid = current_fsuid(); ip->i_d.di_gid = current_fsgid(); - ip->i_d.di_projid = prid; + xfs_set_projid(&ip->i_d, prid); memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); /* @@ -3005,7 +3007,7 @@ xfs_iflush_int( memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); memset(&(dip->di_pad[0]), 0, sizeof(dip->di_pad)); - ASSERT(ip->i_d.di_projid == 0); + ASSERT(xfs_get_projid(ip->i_d) == 0); } } diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 0898c54..d1eed14 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -134,8 +134,9 @@ typedef struct xfs_icdinode { __uint32_t di_uid; /* owner's user id */ __uint32_t di_gid; /* owner's group id */ __uint32_t di_nlink; /* number of links to file */ - __uint16_t di_projid; /* owner's project id */ - __uint8_t di_pad[8]; /* unused, zeroed space */ + __uint16_t di_projid_lo; /* lower part of owner's project id */ + __uint16_t di_projid_hi; /* higher part of owner's project id */ + __uint8_t di_pad[6]; /* unused, zeroed space */ __uint16_t di_flushiter; /* incremented on flush */ xfs_ictimestamp_t di_atime; /* time last accessed */ xfs_ictimestamp_t di_mtime; /* time last modified */ @@ -335,6 +336,23 @@ xfs_iflags_test_and_clear(xfs_inode_t *ip, unsigned short flags) } /* + * Project quota id helpers + */ +static inline prid_t +xfs_get_projid(xfs_icdinode_t i_d) +{ + return ((prid_t)i_d.di_projid_hi) << 16 | i_d.di_projid_lo; +} + +static inline void +xfs_set_projid(xfs_icdinode_t *i_d, + prid_t projid) +{ + i_d->di_projid_hi = (__uint16_t) (projid >> 16); + i_d->di_projid_lo = (__uint16_t) (projid & 0xffff); +} + +/* * Manage the i_flush queue embedded in the inode. This completion * queue synchronizes processes attempting to flush the in-core * inode back to disk. @@ -456,7 +474,7 @@ void xfs_inode_free(struct xfs_inode *ip); * xfs_inode.c prototypes. */ int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, - xfs_nlink_t, xfs_dev_t, cred_t *, xfs_prid_t, + xfs_nlink_t, xfs_dev_t, cred_t *, prid_t, int, struct xfs_buf **, boolean_t *, xfs_inode_t **); uint xfs_ip2xflags(struct xfs_inode *); diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index 7e3626e..dc1882a 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -92,7 +92,8 @@ xfs_bulkstat_one_int( * further change. */ buf->bs_nlink = dic->di_nlink; - buf->bs_projid = dic->di_projid; + buf->bs_projid_lo = dic->di_projid_lo; + buf->bs_projid_hi = dic->di_projid_hi; buf->bs_ino = ino; buf->bs_mode = dic->di_mode; buf->bs_uid = dic->di_uid; diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c index 8fca957..8cf2b49 100644 --- a/fs/xfs/xfs_rename.c +++ b/fs/xfs/xfs_rename.c @@ -183,7 +183,7 @@ xfs_rename( * tree quota mechanism would be circumvented. */ if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && - (target_dp->i_d.di_projid != src_ip->i_d.di_projid))) { + (xfs_get_projid(target_dp->i_d) != xfs_get_projid(src_ip->i_d)))) { error = XFS_ERROR(EXDEV); goto error_return; } diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h index 1b017c6..fe5b23c 100644 --- a/fs/xfs/xfs_sb.h +++ b/fs/xfs/xfs_sb.h @@ -80,10 +80,12 @@ struct xfs_mount; #define XFS_SB_VERSION2_RESERVED4BIT 0x00000004 #define XFS_SB_VERSION2_ATTR2BIT 0x00000008 /* Inline attr rework */ #define XFS_SB_VERSION2_PARENTBIT 0x00000010 /* parent pointers */ +#define XFS_SB_VERSION2_PROJID32BIT 0x00000020 /* 32 bit project id */ #define XFS_SB_VERSION2_OKREALFBITS \ (XFS_SB_VERSION2_LAZYSBCOUNTBIT | \ - XFS_SB_VERSION2_ATTR2BIT) + XFS_SB_VERSION2_ATTR2BIT | \ + XFS_SB_VERSION2_PROJID32BIT ) #define XFS_SB_VERSION2_OKSASHFBITS \ (0) #define XFS_SB_VERSION2_OKREALBITS \ @@ -495,6 +497,12 @@ static inline void xfs_sb_version_removeattr2(xfs_sb_t *sbp) sbp->sb_versionnum &= ~XFS_SB_VERSION_MOREBITSBIT; } +static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp) +{ + return xfs_sb_version_hasmorebits(sbp) && + (sbp->sb_features2 & XFS_SB_VERSION2_PROJID32BIT); +} + /* * end of superblock version macros */ diff --git a/fs/xfs/xfs_types.h b/fs/xfs/xfs_types.h index 3207752..26d1867 100644 --- a/fs/xfs/xfs_types.h +++ b/fs/xfs/xfs_types.h @@ -73,8 +73,6 @@ typedef __int32_t xfs_tid_t; /* transaction identifier */ typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */ -typedef __uint16_t xfs_prid_t; /* prid_t truncated to 16bits in XFS */ - typedef __uint32_t xlog_tid_t; /* transaction ID type */ /* diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 66d585c..5616e60 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -114,7 +114,7 @@ xfs_setattr( */ ASSERT(udqp == NULL); ASSERT(gdqp == NULL); - code = xfs_qm_vop_dqalloc(ip, uid, gid, ip->i_d.di_projid, + code = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip->i_d), qflags, &udqp, &gdqp); if (code) return code; @@ -1266,7 +1266,7 @@ xfs_create( boolean_t unlock_dp_on_error = B_FALSE; uint cancel_flags; int committed; - xfs_prid_t prid; + prid_t prid; struct xfs_dquot *udqp = NULL; struct xfs_dquot *gdqp = NULL; uint resblks; @@ -1279,7 +1279,7 @@ xfs_create( return XFS_ERROR(EIO); if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) - prid = dp->i_d.di_projid; + prid = xfs_get_projid(dp->i_d); else prid = dfltprid; @@ -1880,7 +1880,7 @@ xfs_link( * the tree quota mechanism could be circumvented. */ if (unlikely((tdp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && - (tdp->i_d.di_projid != sip->i_d.di_projid))) { + (xfs_get_projid(tdp->i_d) != xfs_get_projid(sip->i_d)))) { error = XFS_ERROR(EXDEV); goto error_return; } @@ -1955,7 +1955,7 @@ xfs_symlink( int byte_cnt; int n; xfs_buf_t *bp; - xfs_prid_t prid; + prid_t prid; struct xfs_dquot *udqp, *gdqp; uint resblks; @@ -1978,9 +1978,9 @@ xfs_symlink( udqp = gdqp = NULL; if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) - prid = dp->i_d.di_projid; + prid = xfs_get_projid(dp->i_d); else - prid = (xfs_prid_t)dfltprid; + prid = dfltprid; /* * Make sure that we have allocated dquot(s) on disk. -- 1.7.1.1 From aelder@sgi.com Wed Aug 25 21:16:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q2GuGo004873 for ; Wed, 25 Aug 2010 21:16:56 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 34E01AC004; Wed, 25 Aug 2010 19:17:27 -0700 (PDT) Received: from [134.15.64.4] ([134.15.64.4]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 25 Aug 2010 21:17:27 -0500 Subject: Re: [GIT Review] xfs: 2.6.36 fixes From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <20100825045032.GM31488@dastard> References: <20100824024445.GJ31488@dastard> <1282690498.1885.74.camel@doink> <20100825011028.GL31488@dastard> <20100825045032.GM31488@dastard> Content-Type: text/plain; charset="UTF-8" Date: Wed, 25 Aug 2010 21:17:26 -0500 Message-ID: <1282789046.5543.2.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 26 Aug 2010 02:17:27.0355 (UTC) FILETIME=[D42340B0:01CB44C4] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2010-08-25 at 14:50 +1000, Dave Chinner wrote: > On Wed, Aug 25, 2010 at 11:10:28AM +1000, Dave Chinner wrote: > > On Tue, Aug 24, 2010 at 05:54:58PM -0500, Alex Elder wrote: > > > On Tue, 2010-08-24 at 12:44 +1000, Dave Chinner wrote: > > > > Folks, > > > > > > > > Can you please cast an eye over the the tree below to check that all > > > > the bug fixes that need to go into 2.6.36 are there? If so, I'll > > > > send a pull request to Linus tomorrow. > > > > > > > > Note that these are just the outstanding bug fixes that have been > > > > reviewed (as Linus has again decreed for pull requests after -rc1), > > > > so it not the complete set of reviewd patches that exist. > > > > > > > > Cheers, > > > > > > > > Dave. > > > > > > All of these commits look good to me. I will have these > > > and all the rest published on the oss.sgi.com tree later > > > this week. I've been on vacation and have gotten behind. > > > > I'm going to send the pull to Linus, anyway, Alex. > > > > The problem is deeper than "been on vacation" - regardless of > > whether you are on vacation we can't rely on you to do anything > > immediately. It might be code review, triage community reported > > bugs, pulling patches into the OSS tree or sending stuff to Linus, > > but it's always a week or two later than it needs to be. This is > > not a new problem, either. > > So this doesn't get taken the wrong way, this is not a comment on > the quality of the work you do, Alex. My concern is the limited > amount of time you have available to do the required work and > avoiding the bottleneck it causes. This has been an ongoing issue, and I concur that it's been a matter of giving XFS maintenance the time and attention it requires. In July I raised this issue internally and got agreement to give this more priority versus other competing demands. That helped some, but there still were some other things that needed my dedicated focus, and that disrupted the continuity of my attention to XFS maintenance. My vacation last week, directly on the heels of my trip to Boston the week before (during which I had limited network access) resulted in an extended delay whose cause was actually pretty unusual (and unfortunately timed). I have now been directed to spend 100% of my time on XFS maintenance for the community. This will not result in 10 minute turnaround but it will allow me to offer everything I've got to the cause, without interruption. SGI continues to be committed to supporting XFS (for more than just its own customers), and in the coming month or so is going to be evaluating what more can be done to serve and benefit the community. In the mean time XFS maintenance has my full attention. -Alex From SRS0+ulBy+87+fromorbit.com=david@internode.on.net Wed Aug 25 23:13:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q4DNQU008552 for ; Wed, 25 Aug 2010 23:13:23 -0500 X-ASG-Debug-ID: 1282796035-1f6101a40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CBAF927498 for ; Wed, 25 Aug 2010 21:13:56 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id nDk24ldk4aGlwEtw for ; Wed, 25 Aug 2010 21:13:56 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 25058673-1927428 for multiple; Thu, 26 Aug 2010 13:43:54 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OoTqa-0000Q0-SB; Thu, 26 Aug 2010 14:13:52 +1000 Date: Thu, 26 Aug 2010 14:13:52 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [GIT Review] xfs: 2.6.36 fixes Subject: Re: [GIT Review] xfs: 2.6.36 fixes Message-ID: <20100826041352.GA705@dastard> References: <20100824024445.GJ31488@dastard> <1282690498.1885.74.camel@doink> <20100825011028.GL31488@dastard> <20100825045032.GM31488@dastard> <1282789046.5543.2.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282789046.5543.2.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282796037 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39046 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 25, 2010 at 09:17:26PM -0500, Alex Elder wrote: > On Wed, 2010-08-25 at 14:50 +1000, Dave Chinner wrote: > > On Wed, Aug 25, 2010 at 11:10:28AM +1000, Dave Chinner wrote: > > > On Tue, Aug 24, 2010 at 05:54:58PM -0500, Alex Elder wrote: > > > > On Tue, 2010-08-24 at 12:44 +1000, Dave Chinner wrote: > > > > > Folks, > > > > > > > > > > Can you please cast an eye over the the tree below to check that > all > > > > > the bug fixes that need to go into 2.6.36 are there? If so, I'll > > > > > send a pull request to Linus tomorrow. > > > > > > > > > > Note that these are just the outstanding bug fixes that have > been > > > > > reviewed (as Linus has again decreed for pull requests after > -rc1), > > > > > so it not the complete set of reviewd patches that exist. > > > > > > > > > > Cheers, > > > > > > > > > > Dave. > > > > > > > > All of these commits look good to me. I will have these > > > > and all the rest published on the oss.sgi.com tree later > > > > this week. I've been on vacation and have gotten behind. > > > > > > I'm going to send the pull to Linus, anyway, Alex. > > > > > > The problem is deeper than "been on vacation" - regardless of > > > whether you are on vacation we can't rely on you to do anything > > > immediately. It might be code review, triage community reported > > > bugs, pulling patches into the OSS tree or sending stuff to Linus, > > > but it's always a week or two later than it needs to be. This is > > > not a new problem, either. > > > > So this doesn't get taken the wrong way, this is not a comment on > > the quality of the work you do, Alex. My concern is the limited > > amount of time you have available to do the required work and > > avoiding the bottleneck it causes. > > This has been an ongoing issue, and I concur that it's been a matter > of giving XFS maintenance the time and attention it requires. > > In July I raised this issue internally and got agreement to give > this more priority versus other competing demands. That helped > some, but there still were some other things that needed my > dedicated focus, and that disrupted the continuity of my attention > to XFS maintenance. > > My vacation last week, directly on the heels of my trip to Boston > the week before (during which I had limited network access) resulted > in an extended delay whose cause was actually pretty unusual (and > unfortunately timed). > > I have now been directed to spend 100% of my time on XFS maintenance > for the community. This will not result in 10 minute turnaround but > it will allow me to offer everything I've got to the cause, without > interruption. Wonderful news, Alex! I can't think of a better way to address my concerns. /me does a happy dance > SGI continues to be committed to supporting XFS (for more than just > its own customers), and in the coming month or so is going to be > evaluating what more can be done to serve and benefit the community. > In the mean time XFS maintenance has my full attention. I'd suggest that one thing we really need to do first is work out a semi-coherent development roadmap so that we all understand what the big issues are that we need to solve. I've been noticing the lack of a definite direction for XFS recently - we've been scratching itches but not really having an idea of what the next itch is going to be. I can see some interesting requirements starting to coalesce from RedHat customers that are just starting to use XFS, and I'm sure that SGI is in the same boat. I also know that there are many different lurkers in the community that would like certain features in XFS to differentiate their products, so perhaps it is time to flush them all out and work out a future direction that we can work towards together..... Cheers, Dave. -- Dave Chinner david@fromorbit.com From arekm@maven.pl Thu Aug 26 01:48:50 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH, MIME_8BIT_HEADER autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q6mnJS016751 for ; Thu, 26 Aug 2010 01:48:49 -0500 X-ASG-Debug-ID: 1282805963-086c01f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0F417D4B7D4 for ; Wed, 25 Aug 2010 23:59:23 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id CuRGa6hsT7wFXtm6 for ; Wed, 25 Aug 2010 23:59:23 -0700 (PDT) Received: from [83.238.65.58] (port=59228 helo=tarm.maven.pl ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoWH2-0001hL-Vr; Thu, 26 Aug 2010 08:49:21 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoWH0-00050Y-0t; Thu, 26 Aug 2010 08:49:18 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Implictly set PROJID32BIT features2 bit when using 32bit project ids. Subject: [PATCH] Implictly set PROJID32BIT features2 bit when using 32bit project ids. Date: Thu, 26 Aug 2010 08:49:11 +0200 Message-Id: <1282805351-19192-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.1.1 In-Reply-To: <1282770578-6958-1-git-send-email-arekm@maven.pl> References: <1282770578-6958-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282805965 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39055 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Set PROJID32BIT automaticly when trying to use 32bit quota project identificator instead of requiring user to do that manually. Signed-off-by: Arkadiusz Miśkiewicz --- fs/xfs/linux-2.6/xfs_ioctl.c | 17 ++++++++++++----- fs/xfs/xfs_sb.h | 6 ++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 6bc432f..285eeef 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -906,11 +906,6 @@ xfs_ioctl_setattr( if (XFS_FORCED_SHUTDOWN(mp)) return XFS_ERROR(EIO); - /* Make sure userspace passed projid will fit on disk */ - if (!xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb) && - fa->fsx_projid > (__uint16_t)-1) - return XFS_ERROR(EINVAL); - /* * If disk quotas is on, we make sure that the dquots do exist on disk, * before we start any other transactions. Trying to do this later @@ -951,6 +946,18 @@ xfs_ioctl_setattr( goto error_return; } + /* Switch on the PROJID32BIT superblock bit (implies also FEATURES2) */ + if (!xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb) && + fa->fsx_projid > (__uint16_t)-1) { + spin_lock(&ip->i_mount->m_sb_lock); + if (!xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb)) { + xfs_sb_version_addprojid32bit(&ip->i_mount->m_sb); + spin_unlock(&ip->i_mount->m_sb_lock); + xfs_mod_sb(tp, XFS_SB_VERSIONNUM | XFS_SB_FEATURES2); + } else + spin_unlock(&ip->i_mount->m_sb_lock); + } + /* * Do a quota reservation only if projid is actually going to change. */ diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h index fe5b23c..bc3dc77 100644 --- a/fs/xfs/xfs_sb.h +++ b/fs/xfs/xfs_sb.h @@ -503,6 +503,12 @@ static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp) (sbp->sb_features2 & XFS_SB_VERSION2_PROJID32BIT); } +static inline void xfs_sb_version_addprojid32bit(xfs_sb_t *sbp) +{ + sbp->sb_versionnum |= XFS_SB_VERSION_MOREBITSBIT; + sbp->sb_features2 |= XFS_SB_VERSION2_PROJID32BIT; +} + /* * end of superblock version macros */ -- 1.7.1.1 From arekm@maven.pl Thu Aug 26 02:01:40 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q71enH017218 for ; Thu, 26 Aug 2010 02:01:40 -0500 X-ASG-Debug-ID: 1282806134-074501c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A6E16276E5 for ; Thu, 26 Aug 2010 00:02:15 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id 6U7VPzJN46Dylc1F for ; Thu, 26 Aug 2010 00:02:15 -0700 (PDT) Received: from [83.238.65.58] (port=51016 helo=tarm.maven.pl ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoWTW-0003G2-Jz; Thu, 26 Aug 2010 09:02:14 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoWTV-0005Fn-3U; Thu, 26 Aug 2010 09:02:13 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Disallow 32bit project quota id. Subject: [PATCH] Disallow 32bit project quota id. Date: Thu, 26 Aug 2010 09:02:11 +0200 Message-Id: <1282806131-20163-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282806135 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39058 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Currently on-disk structure is able to keep only 16bit project quota id, so disallow 32bit ones. This fixes a problem where part of kernel structures holding project quota id uses 32bit variable while part (on-disk) uses 16bit variable which causes project quota member files to be inaccessible for some operations (like mv/rm). Signed-off-by: Arkadiusz Miśkiewicz --- Please queue for upcoming 2.6.36 fixes. fs/xfs/linux-2.6/xfs_ioctl.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 237f5ff..0166226 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -906,6 +906,10 @@ xfs_ioctl_setattr( if (XFS_FORCED_SHUTDOWN(mp)) return XFS_ERROR(EIO); + /* Disallow 32bit project ids that because on-disk structure is 16bit only */ + if (fa->fsx_projid > (__uint16_t)-1) + return XFS_ERROR(EINVAL); + /* * If disk quotas is on, we make sure that the dquots do exist on disk, * before we start any other transactions. Trying to do this later -- 1.7.1.1 From arekm@maven.pl Thu Aug 26 02:30:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_74, J_CHICKENPOX_75,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q7ULF7018528 for ; Thu, 26 Aug 2010 02:30:21 -0500 X-ASG-Debug-ID: 1282807855-34ed00920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B6BE6176D7D6 for ; Thu, 26 Aug 2010 00:30:55 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id AJuQWlcKhnDL0q3b for ; Thu, 26 Aug 2010 00:30:55 -0700 (PDT) Received: from [83.238.65.58] (port=56119 helo=tarm.maven.pl ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoWvH-0006Sy-7s; Thu, 26 Aug 2010 09:30:55 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoWvF-00067G-S7; Thu, 26 Aug 2010 09:30:53 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Validate string -> number conversion. Subject: [PATCH] Validate string -> number conversion. Date: Thu, 26 Aug 2010 09:30:52 +0200 Message-Id: <1282807852-23457-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.2.2 In-Reply-To: <1282724556-19456-1-git-send-email-arekm@maven.pl> References: <1282724556-19456-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282807856 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39060 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Make sure that numbers passed as string will fit into proper types when doing string->uid_t/gid_t/prid_t conversion. Signed-off-by: Arkadiusz Miśkiewicz --- Fixed version. libxcmd/input.c | 33 +++++++++++++++++++++------------ quota/project.c | 2 +- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/libxcmd/input.c b/libxcmd/input.c index 1bc0745..d0c4e0d 100644 --- a/libxcmd/input.c +++ b/libxcmd/input.c @@ -336,16 +336,19 @@ prid_from_string( char *project) { fs_project_t *prj; - prid_t prid; + unsigned long int prid_long; char *sp; /* * Allow either a full numeric or a valid projectname, even * if it starts with a digit. */ - prid = (prid_t)strtoul(project, &sp, 10); - if (*project != '\0' && *sp == '\0') - return prid; + prid_long = strtoul(project, &sp, 10); + if (*project != '\0' && *sp == '\0') { + if ((prid_long == ULONG_MAX && errno == ERANGE) || (prid_long > (prid_t)-1)) + return -1; + return (prid_t)prid_long; + } prj = getprnam(project); if (prj) return prj->pr_prid; @@ -357,12 +360,15 @@ uid_from_string( char *user) { struct passwd *pwd; - uid_t uid; + unsigned long int uid_long; char *sp; - uid = (uid_t)strtoul(user, &sp, 10); - if (sp != user) - return uid; + uid_long = strtoul(user, &sp, 10); + if (sp != user) { + if ((uid_long == ULONG_MAX && errno == ERANGE) || (uid_long > (uid_t)-1)) + return -1; + return (uid_t)uid_long; + } pwd = getpwnam(user); if (pwd) return pwd->pw_uid; @@ -374,12 +380,15 @@ gid_from_string( char *group) { struct group *grp; - gid_t gid; + unsigned long int gid_long; char *sp; - gid = (gid_t)strtoul(group, &sp, 10); - if (sp != group) - return gid; + gid_long = strtoul(group, &sp, 10); + if (sp != group) { + if ((gid_long == ULONG_MAX && errno == ERANGE) || (gid_long > (gid_t)-1)) + return -1; + return (gid_t)gid_long; + } grp = getgrnam(group); if (grp) return grp->gr_gid; diff --git a/quota/project.c b/quota/project.c index 1aacddd..e9baadd 100644 --- a/quota/project.c +++ b/quota/project.c @@ -331,7 +331,7 @@ project_f( prid = prid_from_string(argv[optind]); if (prid == -1) { exitcode = 1; - fprintf(stderr, _("%s - no such project in %s\n"), + fprintf(stderr, _("%s - no such project in %s or invalid project number\n"), argv[optind], projects_file); } else project(argv[optind], type); -- 1.7.2.2 From SRS0+ulBy+87+fromorbit.com=david@internode.on.net Thu Aug 26 03:12:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q8CHVa019804 for ; Thu, 26 Aug 2010 03:12:17 -0500 X-ASG-Debug-ID: 1282810370-2e7103ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CBD5827CD6 for ; Thu, 26 Aug 2010 01:12:50 -0700 (PDT) Received: from mail.internode.on.net (bld-mail16.adl2.internode.on.net [150.101.137.101]) by cuda.sgi.com with ESMTP id 6XgAjfGHIAQRtypY for ; Thu, 26 Aug 2010 01:12:50 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36566043-1927428 for multiple; Thu, 26 Aug 2010 17:42:49 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OoXZn-0000fw-LQ; Thu, 26 Aug 2010 18:12:47 +1000 Date: Thu, 26 Aug 2010 18:12:47 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Disallow 32bit project quota id. Subject: Re: [PATCH] Disallow 32bit project quota id. Message-ID: <20100826081247.GD705@dastard> References: <1282806131-20163-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1282806131-20163-1-git-send-email-arekm@maven.pl> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail16.adl2.internode.on.net[150.101.137.101] X-Barracuda-Start-Time: 1282810371 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39062 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 26, 2010 at 09:02:11AM +0200, Arkadiusz Miśkiewicz wrote: > Currently on-disk structure is able to keep only 16bit project quota id, > so disallow 32bit ones. This fixes a problem where part of kernel > structures holding project quota id uses 32bit variable while part > (on-disk) uses 16bit variable which causes project quota member files > to be inaccessible for some operations (like mv/rm). > > Signed-off-by: Arkadiusz Miśkiewicz > --- > > Please queue for upcoming 2.6.36 fixes. > > > fs/xfs/linux-2.6/xfs_ioctl.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c > index 237f5ff..0166226 100644 > --- a/fs/xfs/linux-2.6/xfs_ioctl.c > +++ b/fs/xfs/linux-2.6/xfs_ioctl.c > @@ -906,6 +906,10 @@ xfs_ioctl_setattr( > if (XFS_FORCED_SHUTDOWN(mp)) > return XFS_ERROR(EIO); > > + /* Disallow 32bit project ids that because on-disk structure is 16bit only */ > + if (fa->fsx_projid > (__uint16_t)-1) > + return XFS_ERROR(EINVAL); > + If think that needs to include a (mask & FSX_PROJID) check first. i.e. only validate the projid if it was set by userspace. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+ulBy+87+fromorbit.com=david@internode.on.net Thu Aug 26 03:25:41 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q8PffT020203 for ; Thu, 26 Aug 2010 03:25:41 -0500 X-ASG-Debug-ID: 1282811174-34d503020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C6F91D52E84 for ; Thu, 26 Aug 2010 01:26:14 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id aDLMgOUuaca5QePU for ; Thu, 26 Aug 2010 01:26:14 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 25097297-1927428 for multiple; Thu, 26 Aug 2010 17:56:13 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OoXmm-0000gt-9i; Thu, 26 Aug 2010 18:26:12 +1000 Date: Thu, 26 Aug 2010 18:26:12 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Validate string -> number conversion. Subject: Re: [PATCH] Validate string -> number conversion. Message-ID: <20100826082612.GE705@dastard> References: <1282724556-19456-1-git-send-email-arekm@maven.pl> <1282807852-23457-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1282807852-23457-1-git-send-email-arekm@maven.pl> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282811176 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39064 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Aug 26, 2010 at 09:30:52AM +0200, Arkadiusz Miśkiewicz wrote: > Make sure that numbers passed as string will fit into proper > types when doing string->uid_t/gid_t/prid_t conversion. > > Signed-off-by: Arkadiusz Miśkiewicz Looks good, but just a couple of minor style things: > --- > > Fixed version. > > libxcmd/input.c | 33 +++++++++++++++++++++------------ > quota/project.c | 2 +- > 2 files changed, 22 insertions(+), 13 deletions(-) > > diff --git a/libxcmd/input.c b/libxcmd/input.c > index 1bc0745..d0c4e0d 100644 > --- a/libxcmd/input.c > +++ b/libxcmd/input.c > @@ -336,16 +336,19 @@ prid_from_string( > char *project) > { > fs_project_t *prj; > - prid_t prid; > + unsigned long int prid_long; > char *sp; unsigned long is all that is necessary here - that will also keep the same indent as well. > > /* > * Allow either a full numeric or a valid projectname, even > * if it starts with a digit. > */ > - prid = (prid_t)strtoul(project, &sp, 10); > - if (*project != '\0' && *sp == '\0') > - return prid; > + prid_long = strtoul(project, &sp, 10); > + if (*project != '\0' && *sp == '\0') { > + if ((prid_long == ULONG_MAX && errno == ERANGE) || (prid_long > (prid_t)-1)) Can you split this to keep within 80 chars? Same for the uid and gid checks as well. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+ulBy+87+fromorbit.com=david@internode.on.net Thu Aug 26 03:42:20 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7Q8gJo2020866 for ; Thu, 26 Aug 2010 03:42:20 -0500 X-ASG-Debug-ID: 1282812171-76fb00640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 421C627D6C for ; Thu, 26 Aug 2010 01:42:52 -0700 (PDT) Received: from mail.internode.on.net (bld-mail15.adl6.internode.on.net [150.101.137.100]) by cuda.sgi.com with ESMTP id pSeIR1iebEJetgOD for ; Thu, 26 Aug 2010 01:42:52 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 25098984-1927428 for multiple; Thu, 26 Aug 2010 18:12:51 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OoY2r-0000iA-LK; Thu, 26 Aug 2010 18:42:49 +1000 Date: Thu, 26 Aug 2010 18:42:49 +1000 From: Dave Chinner To: Arkadiusz Miskiewicz Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Validate string -> number conversion. Subject: Re: [PATCH] Validate string -> number conversion. Message-ID: <20100826084249.GF705@dastard> References: <1282724556-19456-1-git-send-email-arekm@maven.pl> <201008251045.54899.arekm@maven.pl> <201008251101.27106.arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201008251101.27106.arekm@maven.pl> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail15.adl6.internode.on.net[150.101.137.100] X-Barracuda-Start-Time: 1282812174 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39064 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Aug 25, 2010 at 11:01:26AM +0200, Arkadiusz Miskiewicz wrote: > On Wednesday 25 of August 2010, Arkadiusz Miskiewicz wrote: > > On Wednesday 25 of August 2010, Arkadiusz Miśkiewicz wrote: > > > Make sure that numbers passed as string will fit into proper > > > types when doing string->uid_t/gid_t/prid_t conversion. > > > > > > Signed-off-by: Arkadiusz Miśkiewicz > > > --- > > > > > > libxcmd/input.c | 18 +++++++++++++++--- > > > quota/project.c | 2 +- > > > 2 files changed, 16 insertions(+), 4 deletions(-) > > > > On the kernel side something like below is needed (compile tested only). > > The true fix is to extend on disk di_projid to 32bit (there is room for > > that). > > template of test suite for this problem > (likely needs some small amount of work) Great - thanks for doing this. A couple of comments, though. First, I'm assuming that no output should occur if everything succeeds? If so, we normally put an: echo "Silence is golden" in the test to document that we expect no other output. > > #! /bin/bash > # FS QA Test No. xxx > # > # test to verify that correct project quota id is set > # > # creator Can you add the GPL text and copyright here so the license is clear and we know where it came from? > owner=arekm@maven.pl > > seq=`basename $0` > echo "QA output created by $seq" > > here=`pwd` > tmp=/tmp/$$ > status=1 # failure is the default! > > # get standard environment, filters and checks > . ./common.rc > . ./common.filter > . ./common.quota > > _cleanup() > { > cd / > umount $SCRATCH_MNT 2>/dev/null > rm -f $tmp.* > } > #trap "_cleanup; exit \$status" 0 1 2 3 15 > > > # real QA test starts here > _supported_fs xfs > _supported_os Linux IRIX I'm not sure any will ever validate this on Irix, so maybe that should be left out? > > _require_xfs_quota > > dir=$SCRATCH_MNT/project > > _require_scratch > _scratch_mkfs_xfs >/dev/null 2>&1 > > #if pquota's already in mount options then we dont need to enable > > # we can't run with group quotas > if ( `echo $MOUNT_OPTIONS | grep -q gquota` || `echo $MOUNT_OPTIONS | grep -q grpquota` ) if ( `echo $MOUNT_OPTIONS | egrep -q g??quota` ) > then > _notrun "Can't run with group quotas enabled" > fi > EXTRA_MOUNT_OPTIONS="-o pquota" > > if ! _scratch_mount "$EXTRA_MOUNT_OPTIONS" >$tmp.out 2>&1 > then > cat $tmp.out > echo "!!! mount failed" > exit _fail "!!! failed to mount > fi > > src/feature -p $SCRATCH_DEV > [ $? -ne 0 ] && _notrun "Installed kernel does not support project quotas" This test should probably be first. > mkdir $dir > touch $dir/below16bit status=0 > # below 16bit value > xfs_quota -x -c "project -s -p $dir/below16bit 3422" $SCRATCH_DEV > projid=$($XFS_IO_PROG -r -c "lsproj" $dir/below16bit) > if [ "projid = 3422" != "$projid" ]; then > echo "FAIL: returned projid value ($projid) doesn't match set one (3422)" status=1 > fi > > # over 16bit value > touch $dir/over16bit > xfs_quota -x -c "project -s -p $dir/over16bit 108545" $SCRATCH_DEV > projid=$($XFS_IO_PROG -r -c "lsproj" $dir) > if [ "projid = 108545" != "$projid" ]; then > echo "FAIL: returned projid value ($projid) doesn't match set one (108545)" status=1 > fi > > # over 32bit value, should fail > touch $dir/over32bit > if ! xfs_quota -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV; then > echo "FAIL: setting over 32bit projid succeeded while it should fail" status=1 > fi > > # success, all done > status=0 Remove these two lines. > exit Cheers, Dave. -- Dave Chinner david@fromorbit.com From arekm@maven.pl Thu Aug 26 05:19:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7QAJEdV023789 for ; Thu, 26 Aug 2010 05:19:14 -0500 X-ASG-Debug-ID: 1282817987-143a03850000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 948311D7BF6A for ; Thu, 26 Aug 2010 03:19:47 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id f8eGz4CH9IW2HYJD for ; Thu, 26 Aug 2010 03:19:47 -0700 (PDT) Received: from [83.238.65.58] (port=60085 helo=tarm.maven.pl ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OoZYg-000102-Ay; Thu, 26 Aug 2010 12:19:46 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OoZYe-0000rz-Nu; Thu, 26 Aug 2010 12:19:44 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Disallow 32bit project quota id. Subject: [PATCH] Disallow 32bit project quota id. Date: Thu, 26 Aug 2010 12:19:43 +0200 Message-Id: <1282817983-3301-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.2.2 In-Reply-To: <20100826081247.GD705@dastard> References: <20100826081247.GD705@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282817988 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39072 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Currently on-disk structure is able to keep only 16bit project quota id, so disallow 32bit ones. This fixes a problem where parts of kernel structures holding project quota id are 32bit while parts (on-disk) are 16bit variables which causes project quota member files to be inaccessible for some operations (like mv/rm). Signed-off-by: Arkadiusz Miśkiewicz --- Issues solved: - FSX_PROJID in mask is checked - 80 column issue fixed - checkpath.pl checked fs/xfs/linux-2.6/xfs_ioctl.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 237f5ff..4fec427 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -907,6 +907,13 @@ xfs_ioctl_setattr( return XFS_ERROR(EIO); /* + * Disallow 32bit project ids because on-disk structure + * is 16bit only. + */ + if ((mask & FSX_PROJID) && (fa->fsx_projid > (__uint16_t)-1)) + return XFS_ERROR(EINVAL); + + /* * If disk quotas is on, we make sure that the dquots do exist on disk, * before we start any other transactions. Trying to do this later * is messy. We don't care to take a readlock to look at the ids -- 1.7.2.2 From nathans@aconex.com Thu Aug 26 08:26:15 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7QDQF3j030164 for ; Thu, 26 Aug 2010 08:26:15 -0500 X-ASG-Debug-ID: 1282829209-626001d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7CD691E53AB5 for ; Thu, 26 Aug 2010 06:26:49 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id WiMRGgX3X1R8hzGX for ; Thu, 26 Aug 2010 06:26:49 -0700 (PDT) Received: from postoffice.aconex.com (localhost [127.0.0.1]) by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 5A80A2CAFD4 for ; Thu, 26 Aug 2010 23:26:46 +1000 (EST) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id MSjfCVu35B2lb0ge for ; Thu, 26 Aug 2010 23:26:46 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10]) by postoffice.aconex.com (Postfix) with ESMTP id 49AC6A50296 for ; Thu, 26 Aug 2010 23:26:46 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 3D8CD9D0002 for ; Thu, 26 Aug 2010 23:26:46 +1000 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27TSC2ewSwh3 for ; Thu, 26 Aug 2010 23:26:41 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by gatekeeper.aconex.com (Postfix) with ESMTP id D3CF49D0001 for ; Thu, 26 Aug 2010 23:26:41 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by mail-au.aconex.com (Postfix) with ESMTP id CF18964B8659 for ; Thu, 26 Aug 2010 23:26:41 +1000 (EST) Date: Thu, 26 Aug 2010 23:26:41 +1000 (EST) From: Nathan Scott To: xfs Message-ID: <239606566.371721282829201737.JavaMail.root@mail-au.aconex.com> In-Reply-To: <20100819121153.GB16045@infradead.org> X-ASG-Orig-Subj: Re: Review: xfsprogs with libblkid enabled for Debian Subject: Re: Review: xfsprogs with libblkid enabled for Debian MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 5.0.18_GA_3011.RHEL5_64 (ZimbraWebClient - SAF3 (Mac)/5.0.18_GA_3011.RHEL5_64) X-Barracuda-Connect: mail.aconex.com[203.89.202.182] X-Barracuda-Start-Time: 1282829210 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39084 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean ----- "Christoph Hellwig" wrote: > I'm fine with pushing out a new 3.1.3 release as it's time anyway, > but > can we also include Dave's patch to add XFS_IOC_ZERO_RANGE support to > xfs_io and the xfsctl manpage first? > > Next week also has Alex back from vacation, so I'd suggest waiting if > he has any input on this. As discussed on IRC, I made the changes and push out a new release.sh tagged git update to kernel.org. I pushed the src tarball to oss also, and libblkid enabled packages will be uploaded to Debian shortly. cheers. -- Nathan From sassmanbm@yahoo.de Thu Aug 26 14:28:08 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7QJS8vH045639 for ; Thu, 26 Aug 2010 14:28:08 -0500 X-ASG-Debug-ID: 1282850922-1151010f0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp141.mail.ukl.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 192FF2A59E for ; Thu, 26 Aug 2010 12:28:42 -0700 (PDT) Received: from smtp141.mail.ukl.yahoo.com (smtp141.mail.ukl.yahoo.com [77.238.184.72]) by cuda.sgi.com with SMTP id CKlYkI4DrR4axjOR for ; Thu, 26 Aug 2010 12:28:42 -0700 (PDT) Received: (qmail 96578 invoked from network); 26 Aug 2010 19:28:41 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.de; h=DKIM-Signature:Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Content-Transfer-Encoding:Date; b=NQu+yw4GQD6WxXKFS1wEIJRdkTho+o3Itgly1RaRrjMy3d29aykwkmgIjpryvs5sLE/uGvBwYbP/W9Q2bKyIDzdhWW36kTJicpEaH0fNaSaqVmRuoqbZkMW7JJp04OiXtKjDdg3LcC5mdX0RFYaLTlEtkEhSvq6pUUlpdc0t9aY= ; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s1024; t=1282850921; bh=rbroQk5L0qYcnfqBQBzx+A8FN7opeWCRXoVhz6AJAv8=; h=Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Content-Transfer-Encoding:Date; b=d7LL4iS6vSP9llLlOKxZzCIdaUajqeb6EC9+7J6LkF7mVQCC7AMMS7jC0inBnDobA6Fa3vVb66rSiquLXXIcPAqqvR7eMeoWdhueSCPCbY2K7qG8/KhUGz5EwMdNMiE54WCIafngi2XS7Ik7EgHJ8RTC4wpRWWm47pGbeERKM+M= Message-ID: <747323.90046.qm@smtp141.mail.ukl.yahoo.com> Received: from gecnmihldasdvskzksdv (sassmanbm@58.251.31.50 with login) by smtp141.mail.ukl.yahoo.com with SMTP; 26 Aug 2010 19:28:39 +0000 GMT X-Yahoo-SMTP: OG1jOiWswBAdWN5YaR1lEQUCDzL8DA-- X-YMail-OSG: GluNcgoVM1kC6v.lfFT3t3fDUEh8bKq8THqzBjVLoWzGJnc QC_ZJsfd9j0K85cVVKrAQ5apdaeoqdZcQqnLFRawvsTxGxm_qXlRC9vAxoSm EdcDNPPc_SHHWPQDohGHmle0eaY_Pb7bXuuZJd_E1KLpciS8XMEZO_QTI7TF _9Suwv937oDj04ntWhfeIRPf0pLFoUurgIA-- X-Yahoo-Newman-Property: ymail-3 From: "Ciqkzcb" X-ASG-Orig-Subj: =?gb2312?B?x+uy6b+00MLTys/kMUWjqDMtNaOp?= Subject: =?gb2312?B?x+uy6b+00MLTys/kMUWjqDMtNaOp?= To: linux-xfs@oss.sgi.com Content-Type: text/plain; charset="gb2312" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Date: Fri, 27 Aug 2010 03:28:15 +0800 X-Barracuda-Connect: smtp141.mail.ukl.yahoo.com[77.238.184.72] X-Barracuda-Start-Time: 1282850923 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3548 1.0000 -0.1360 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.89 X-Barracuda-Spam-Status: No, SCORE=0.89 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED, MIME_BASE64_TEXT, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39108 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.52 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xPq6w6Oh16jStbmp06bUrbOn0czLv8Xk1sa498Dgw+LLsM/j0cwuDQoNCiDW0LuqoaLcvcjYu8ah osvV0cyhorTz0KHQ3MOooaK7xrrXwqWhotK7vsXSu8H5oaK2rLPmz8Sy3bXIo6ENCg0KIMGqz7VR UaO6NjQyNzE0MzYyICAgus7J+jEzNjkyMjI3NzYyIA0KDQogsb7JzNDQz+PRzLa8yse+q7fCz7XB 0C6w/Newus3V5sa3sfDO3sG90fmjqNPQt8DOscLro6kgv9q40LS/1f0uOTUltrzKx9Xm0czLvy4N Cg0KINX9ueazp7zSvNO5pNbG1/cuob6+q7fCob8gs6e1xNKqx/O63NHPuPEu0czStsirsr/M2Mri vNO5pNPr1sbX99Xm1f2077W9wcu437Hq17y1xNKqx/Mho6jF+sG/vNu48cHt0umjqb270tfB47Wj t+fP1aOhDQoNCiDKx9fUs+ks1dC0/SzLzcDxLMX6t6IswePK2yy5q8u+LL7GteosINPpwNazocv5 tcjK19GhLCANCg0KILzbuPG4/LrPwO0sv9rOtrj8tL/V/SEgvPu79bi2v+4sx+u3xdDEubrC8iEg s7m118jDxPrO3rrzucvWrtPHIQ0KDQog0tShsLPP0MUuzvHKtS6439CnLrmy066hsc6q19rWvNPr xPqzpMbaus/X9ywgtPLIxcfrxOPBwr3iDQoNCiAgICAgICAgWUlvSXY5Nk9NUlFQNTZFS0J6NHV3 cjRDMGMwZGNHDQo= From iusty@k1024.org Fri Aug 27 06:17:52 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RBHpMM087569 for ; Fri, 27 Aug 2010 06:17:52 -0500 X-ASG-Debug-ID: 1282907904-581301200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ew0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3266F2C46E for ; Fri, 27 Aug 2010 04:18:25 -0700 (PDT) Received: from mail-ew0-f53.google.com (mail-ew0-f53.google.com [209.85.215.53]) by cuda.sgi.com with ESMTP id Ds6E6DtFOHA2y5dG for ; Fri, 27 Aug 2010 04:18:25 -0700 (PDT) Received: by ewy19 with SMTP id 19so1919127ewy.26 for ; Fri, 27 Aug 2010 04:18:24 -0700 (PDT) Received: by 10.213.35.72 with SMTP id o8mr2019052ebd.80.1282907904223; Fri, 27 Aug 2010 04:18:24 -0700 (PDT) Received: from teal.hq.k1024.org (80-218-216-17.dclient.hispeed.ch [80.218.216.17]) by mx.google.com with ESMTPS id z55sm5914690eeh.21.2010.08.27.04.18.21 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 27 Aug 2010 04:18:21 -0700 (PDT) Received: by teal.hq.k1024.org (Postfix, from userid 4004) id 4DD53205C0C; Fri, 27 Aug 2010 13:18:20 +0200 (CEST) Date: Fri, 27 Aug 2010 13:18:20 +0200 From: Iustin Pop To: Dave Chinner Cc: Mario Bachmann , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Re: xfsdump-3.0.4 problems Subject: Re: [PATCH] Re: xfsdump-3.0.4 problems Message-ID: <20100827111820.GA9837@teal.hq.k1024.org> Mail-Followup-To: Dave Chinner , Mario Bachmann , xfs@oss.sgi.com References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> <20100817095340.6b9ab8e2@x2.grafnetz> <20100817090534.GP10429@dastard> <20100817114550.GQ10429@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100817114550.GQ10429@dastard> X-Linux: This message was written on Linux X-Header: /usr/include gives great headers User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: mail-ew0-f53.google.com[209.85.215.53] X-Barracuda-Start-Time: 1282907906 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39169 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 17, 2010 at 09:45:50PM +1000, Dave Chinner wrote: > My fault. I screwed up the btree lookup for the inode validation. > Can you test the patch below? I just see that 2.6.35.4 has been released, but it doesn't include this fix (as far as I can see). Could it be send for inclusion into the next stable please (yes, it fixes the issue for me too). thanks, iustin From SRS0+T4rL+88+fromorbit.com=david@internode.on.net Fri Aug 27 06:40:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RBeNZR089524 for ; Fri, 27 Aug 2010 06:40:24 -0500 X-ASG-Debug-ID: 1282909257-74ff00450000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7E4C82CC94 for ; Fri, 27 Aug 2010 04:40:58 -0700 (PDT) Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id 0kBBCnK1nFIpaLz3 for ; Fri, 27 Aug 2010 04:40:58 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36672414-1927428 for multiple; Fri, 27 Aug 2010 21:10:56 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OoxIl-0002Zc-8b; Fri, 27 Aug 2010 21:40:55 +1000 Date: Fri, 27 Aug 2010 21:40:55 +1000 From: Dave Chinner To: Mario Bachmann , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Re: xfsdump-3.0.4 problems Subject: Re: [PATCH] Re: xfsdump-3.0.4 problems Message-ID: <20100827114055.GI705@dastard> References: <20100816182236.249a2a0f@x2.grafnetz> <20100816223021.GL10429@dastard> <20100817083227.06e23889@x2.grafnetz> <20100817071337.GN10429@dastard> <20100817095340.6b9ab8e2@x2.grafnetz> <20100817090534.GP10429@dastard> <20100817114550.GQ10429@dastard> <20100827111820.GA9837@teal.hq.k1024.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100827111820.GA9837@teal.hq.k1024.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103] X-Barracuda-Start-Time: 1282909259 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39170 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 27, 2010 at 01:18:20PM +0200, Iustin Pop wrote: > On Tue, Aug 17, 2010 at 09:45:50PM +1000, Dave Chinner wrote: > > My fault. I screwed up the btree lookup for the inode validation. > > Can you test the patch below? > > I just see that 2.6.35.4 has been released, but it doesn't include this > fix (as far as I can see). Could it be send for inclusion into the next > stable please (yes, it fixes the issue for me too). The commit is now upstream, it had a "cc: stable@kernel.org" in it, so it should get automatically queued for inclusion in the next stable kernel release. If I don't see it appear in Greg's stable queue once he starts processing the commits for the next stable release, I'll chase it up.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Fri Aug 27 13:11:20 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RIBKVA105962 for ; Fri, 27 Aug 2010 13:11:20 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 0C8A63040CA; Fri, 27 Aug 2010 11:11:53 -0700 (PDT) Received: from [128.162.232.176] ([128.162.232.176]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 27 Aug 2010 13:11:53 -0500 Subject: Re: [PATCH 2/2] xfs: improve buffer cache hash scalability From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <1282522546-7892-3-git-send-email-david@fromorbit.com> References: <1282522546-7892-1-git-send-email-david@fromorbit.com> <1282522546-7892-3-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 27 Aug 2010 13:11:53 -0500 Message-ID: <1282932713.2450.75.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 27 Aug 2010 18:11:53.0597 (UTC) FILETIME=[53E412D0:01CB4613] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2010-08-23 at 10:15 +1000, Dave Chinner wrote: > When doing large parallel file creates on a 16p machines, large amounts of > time is being spent in _xfs_buf_find(). A system wide profile with perf top > shows this: > > 1134740.00 19.3% _xfs_buf_find > 733142.00 12.5% __ticket_spin_lock > > The problem is that the hash contains 45,000 buffers, and the hash table width > is only 256 buffers. That means we've got around 200 buffers per chain, and > searching it is quite expensive. The hash table size needs to increase. My only comment on this is that 4096 buckets is good now but someday that may not be right either. Is there any better way (based on size of underlying block_device and maybe taking into account other things like page size or CPU count) to decide this hash size? Either way it looks good. Reviewed-by: Alex Elder . . . From aelder@sgi.com Fri Aug 27 14:46:39 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RJkdOl108674 for ; Fri, 27 Aug 2010 14:46:39 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2DC6F8F80D1; Fri, 27 Aug 2010 12:47:12 -0700 (PDT) Received: from [128.162.232.176] ([128.162.232.176]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 27 Aug 2010 14:46:56 -0500 Subject: Re: [PATCH v2] xfs: Make fiemap works with sparse file. From: Alex Elder Reply-To: aelder@sgi.com To: Tao Ma Cc: xfs@oss.sgi.com, david@fromorbit.com In-Reply-To: <1276764799-4837-1-git-send-email-tao.ma@oracle.com> References: <20100614122912.GD6590@dastard> <1276764799-4837-1-git-send-email-tao.ma@oracle.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 27 Aug 2010 14:46:55 -0500 Message-ID: <1282938415.2450.109.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 27 Aug 2010 19:46:56.0790 (UTC) FILETIME=[9B424360:01CB4620] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2010-06-17 at 16:53 +0800, Tao Ma wrote: > Hi Dave, > On 06/14/2010 08:29 PM, Dave Chinner wrote: > > I just had a thought - if you want to avoid holes being reported to > > fiemap, then add a BMV_IF_NO_HOLES flag to xfs_getbmap() and skip > > holes in the mappin gloop when this flag is set. That will make > > fiemap fill in the full number of extents without hacking the > > extent count... > Here is the updated one. I have used BVM_IF_NO_HOLES in xfs_getbmap > to skip increasing index 'cur_ext'. It is a bit ugly, see my commit > log. I guess maybe we can add another flag in xfs_bmapi so that it > don't even give us the holes? Dave said he would commit this but it hasn't been done yet, so there's still time to comment! . . . > diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c > index 99587de..d49107d 100644 > --- a/fs/xfs/xfs_bmap.c > +++ b/fs/xfs/xfs_bmap.c > @@ -5744,12 +5744,24 @@ xfs_getbmap( > map[i].br_startblock)) > goto out_free_map; > > - nexleft--; > bmv->bmv_offset = > out[cur_ext].bmv_offset + > out[cur_ext].bmv_length; > bmv->bmv_length = > max_t(__int64_t, 0, bmvend - bmv->bmv_offset); > + > + /* > + * In case we don't want to return the hole, > + * don't increase cur_ext so that we can reuse > + * it in the next loop. > + */ > + if ((iflags & BMV_IF_NO_HOLES) && > + out[cur_ext].bmv_block == -1LL) { I personally would prefer this to use: if ((iflags & BMV_IF_NO_HOLES) && map[i].br_startblock == HOLESTARTBLOCK) { I think this is more obvious that this "extent" represents a hole (as opposed to bmv_block == -1, which is how xfs_getbmapx_fix_eof_hole() encodes this). Otherwise looks good. Reviewed-by: Alex Elder > + memset(&out[cur_ext], 0, sizeof(out[cur_ext])); > + continue; > + } > + > + nexleft--; > bmv->bmv_entries++; > cur_ext++; > } > diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h > index 7cf7220..87c2e9d 100644 > --- a/fs/xfs/xfs_fs.h > +++ b/fs/xfs/xfs_fs.h > @@ -114,8 +114,10 @@ struct getbmapx { > #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ > #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ > #define BMV_IF_DELALLOC 0x8 /* rtn status BMV_OF_DELALLOC if req */ > +#define BMV_IF_NO_HOLES 0x10 /* Do not return holes */ > #define BMV_IF_VALID \ > - (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|BMV_IF_DELALLOC) > + (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC| \ > + BMV_IF_DELALLOC|BMV_IF_NO_HOLES) > > /* bmv_oflags values - returned for each non-header segment */ > #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ From akshaylal@google.com Fri Aug 27 15:33:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RKXOHj110715 for ; Fri, 27 Aug 2010 15:33:24 -0500 X-ASG-Debug-ID: 1282941238-334502520000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A8641E56F3A for ; Fri, 27 Aug 2010 13:33:58 -0700 (PDT) Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by cuda.sgi.com with ESMTP id 4EqD3T7rRgfQyvIU for ; Fri, 27 Aug 2010 13:33:58 -0700 (PDT) Received: from wpaz33.hot.corp.google.com (wpaz33.hot.corp.google.com [172.24.198.97]) by smtp-out.google.com with ESMTP id o7RKXv1h005825 for ; Fri, 27 Aug 2010 13:33:57 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1282941238; bh=i2tRbrCpDtXyOvgL/L9IgoH1z5k=; h=From:To:Cc:Subject:Date:Message-Id; b=QSplJE2YP4VCTJ6O2oGkq5qQAGbn09rUKDhJzrVZiQ2p9a56BfnhSZoCOp/kvKjdg NvUBCP1Wjxqt5gwnkpDlw== DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=from:to:cc:subject:date:message-id:x-mailer:x-system-of-record; b=tWoX9d6Fw8JmVk2JYXC6GGpo1UlGY19BRCtQgvmBZFCB4M47a+9KBKAe9JtLVO/yw wPA8mOCOY6dZvXjf9BbJw== Received: from akshaylal.mtv.corp.google.com (akshaylal.mtv.corp.google.com [172.22.123.30]) by wpaz33.hot.corp.google.com with ESMTP id o7RKXtvB008244; Fri, 27 Aug 2010 13:33:56 -0700 Received: by akshaylal.mtv.corp.google.com (Postfix, from userid 102255) id 858F014A152; Fri, 27 Aug 2010 13:33:55 -0700 (PDT) From: Akshay Lal To: xfs@oss.sgi.com Cc: Akshay Lal X-ASG-Orig-Subj: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. As found by Theodore Ts'o: If a 128K file is falloc'ed using the KEEP_SIZE flag, and then write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. This forces e2fsck to complain about that inode. Subject: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. As found by Theodore Ts'o: If a 128K file is falloc'ed using the KEEP_SIZE flag, and then write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. This forces e2fsck to complain about that inode. Date: Fri, 27 Aug 2010 13:33:44 -0700 Message-Id: <1282941224-5805-1-git-send-email-alal@google.com> X-Mailer: git-send-email 1.7.1 X-System-Of-Record: true X-Barracuda-Connect: smtp-out.google.com[74.125.121.35] X-Barracuda-Start-Time: 1282941240 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39207 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Bug reference: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 --- 243 | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 243.out | 25 +++++++++++ group | 1 + 3 files changed, 171 insertions(+), 0 deletions(-) create mode 100644 243 create mode 100644 243.out diff --git a/243 b/243 new file mode 100644 index 0000000..8102f24 --- /dev/null +++ b/243 @@ -0,0 +1,145 @@ +#! /bin/bash +# FS QA Test No. 243 +# +# Test to ensure that the EOFBLOCK_FL gets set/unset correctly. +# +# As found by Theodore Ts'o: +# If a 128K file is falloc'ed using the KEEP_SIZE flag, and then +# write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. +# This forces e2fsck to complain about that inode. +# +# creator +owner=alal@google.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# Test specific macros. +BIT_NOT_SET=0 # inode flag - 0x40000 bit is set. +BIT_SET=1 # inode flag - 0x400000 bit is not set. + +# Generic test cleanup function. +_cleanup() +{ + cd / + rm -f $tmp.* +} + +# Checks the state of the sample file in the filesystem and returns whether +# the inode flag 0x400000 is set or not. +_check_file_state() +{ + bit_set=1 + + # Check whether EOFBLOCK_FL is set. + if [ "${FSTYP}" == "ext4" ]; then + # Unmount the ${TEST_DEV} + umount ${TEST_DEV} + + # Run debugfs to gather file_parameters - specifically iflags. + file_params=`debugfs ${TEST_DEV} -R "stat ${1}" 2>&1 | grep -e Flags:` + iflags=${file_params#*Flags: } + + # Ensure that the iflags value was parsed correctly. + if [ -z ${iflags} ]; then + echo "iFlags value was not parsed successfully." + status=1 + exit ${status} + fi + + if ((${iflags} & 0x400000)); then + echo "EOFBLOCK_FL bit is set." + bit_set=1 + else + echo "EOFBLOCK_FL bit is not set." + bit_set=0 + fi + + # Check current bit state to expected value. + if [ ${bit_set} -ne ${2} ]; then + echo "Error: Current bit state incorrect." + exit ${status} + fi + + # Mount the ${TEST_DEV} + mount ${TEST_DEV} -t ${FSTYP} ${TEST_DIR} + else + # Run fsck on the fs. fsck -t ${FSTYP} -fn ${TEST_DEV}. + _check_test_fs + fi + + # Remove test file + rm -f ${TEST_DIR}/${1} +} + +# Get standard environment, filters and checks. +. ./common.rc +. ./common.filter + +# Prerequisites for the test run. +_supported_fs generic +_supported_os Linux +_require_xfs_io_falloc + +# Real QA test starts here. +rm -f $seq.full + +# Begin test cases. + +# Using FALLOC_FL_KEEP_SIZE +# Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). +echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 4096' \ + ${TEST_DIR}/test_1 | _filter_xfs_io_unique +_check_file_state test_1 ${BIT_SET} + +# Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). +echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 4096' \ + ${TEST_DIR}/test_2 | _filter_xfs_io_unique +_check_file_state test_2 ${BIT_SET} + +# Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). +echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 40960' \ + ${TEST_DIR}/test_3 | _filter_xfs_io_unique +_check_file_state test_3 ${BIT_NOT_SET} + +# Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). +echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 40960' \ + ${TEST_DIR}/test_4 | _filter_xfs_io_unique +_check_file_state test_4 ${BIT_NOT_SET} + +# Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io). +echo "Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io)." +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 128k' \ + -c 'pwrite 256k 4k' \ + ${TEST_DIR}/test_5 | _filter_xfs_io_unique +_check_file_state test_5 ${BIT_NOT_SET} + +# Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). +echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io)." +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 128k' \ + -c 'pwrite 256k 4k' \ + ${TEST_DIR}/test_6 | _filter_xfs_io_unique +_check_file_state test_6 ${BIT_NOT_SET} + + +status=0 +exit ${status} diff --git a/243.out b/243.out new file mode 100644 index 0000000..35583e8 --- /dev/null +++ b/243.out @@ -0,0 +1,25 @@ +QA output created by 243 +Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +EOFBLOCK_FL bit is set. +Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +EOFBLOCK_FL bit is set. +Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). +wrote 40960/40960 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +EOFBLOCK_FL bit is set. +Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). +wrote 40960/40960 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +EOFBLOCK_FL bit is set. +Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io). +wrote 4096/4096 bytes at offset 262144 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +EOFBLOCK_FL bit is not set. +Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). +wrote 4096/4096 bytes at offset 262144 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +EOFBLOCK_FL bit is not set. diff --git a/group b/group index ff16bb3..e6dab13 100644 --- a/group +++ b/group @@ -356,3 +356,4 @@ deprecated 240 auto aio quick rw 241 auto 242 auto quick prealloc +243 auto quick prealloc -- 1.7.1 From arekm@maven.pl Fri Aug 27 15:54:06 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_74, J_CHICKENPOX_75,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RKs5RN111349 for ; Fri, 27 Aug 2010 15:54:06 -0500 X-ASG-Debug-ID: 1282942480-5a5d00da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 88DE91781D4E for ; Fri, 27 Aug 2010 13:54:41 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id 4OXxrg4LioRicIhG for ; Fri, 27 Aug 2010 13:54:41 -0700 (PDT) Received: from chello087207113141.chello.pl ([87.207.113.141]:51927 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Op5wd-0007HX-Q9; Fri, 27 Aug 2010 22:54:39 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1Op5wc-0001OE-I0; Fri, 27 Aug 2010 22:54:38 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Validate string -> number conversion. [version 3] Subject: [PATCH] Validate string -> number conversion. [version 3] Date: Fri, 27 Aug 2010 22:54:36 +0200 Message-Id: <1282942476-5296-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.2.2 In-Reply-To: <20100826082612.GE705@dastard> References: <20100826082612.GE705@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282942481 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39209 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Make sure that numbers passed as string will fit into proper types when doing string->uid_t/gid_t/prid_t conversion. Signed-off-by: Arkadiusz Miśkiewicz --- libxcmd/input.c | 36 ++++++++++++++++++++++++------------ quota/project.c | 2 +- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/libxcmd/input.c b/libxcmd/input.c index 1bc0745..d7f29c1 100644 --- a/libxcmd/input.c +++ b/libxcmd/input.c @@ -336,16 +336,20 @@ prid_from_string( char *project) { fs_project_t *prj; - prid_t prid; + unsigned long prid_long; char *sp; /* * Allow either a full numeric or a valid projectname, even * if it starts with a digit. */ - prid = (prid_t)strtoul(project, &sp, 10); - if (*project != '\0' && *sp == '\0') - return prid; + prid_long = strtoul(project, &sp, 10); + if (*project != '\0' && *sp == '\0') { + if ((prid_long == ULONG_MAX && errno == ERANGE) + || (prid_long > (prid_t)-1)) + return -1; + return (prid_t)prid_long; + } prj = getprnam(project); if (prj) return prj->pr_prid; @@ -357,12 +361,16 @@ uid_from_string( char *user) { struct passwd *pwd; - uid_t uid; + unsigned long uid_long; char *sp; - uid = (uid_t)strtoul(user, &sp, 10); - if (sp != user) - return uid; + uid_long = strtoul(user, &sp, 10); + if (sp != user) { + if ((uid_long == ULONG_MAX && errno == ERANGE) + || (uid_long > (uid_t)-1)) + return -1; + return (uid_t)uid_long; + } pwd = getpwnam(user); if (pwd) return pwd->pw_uid; @@ -374,12 +382,16 @@ gid_from_string( char *group) { struct group *grp; - gid_t gid; + unsigned long gid_long; char *sp; - gid = (gid_t)strtoul(group, &sp, 10); - if (sp != group) - return gid; + gid_long = strtoul(group, &sp, 10); + if (sp != group) { + if ((gid_long == ULONG_MAX && errno == ERANGE) + || (gid_long > (gid_t)-1)) + return -1; + return (gid_t)gid_long; + } grp = getgrnam(group); if (grp) return grp->gr_gid; diff --git a/quota/project.c b/quota/project.c index 1aacddd..e9baadd 100644 --- a/quota/project.c +++ b/quota/project.c @@ -331,7 +331,7 @@ project_f( prid = prid_from_string(argv[optind]); if (prid == -1) { exitcode = 1; - fprintf(stderr, _("%s - no such project in %s\n"), + fprintf(stderr, _("%s - no such project in %s or invalid project number\n"), argv[optind], projects_file); } else project(argv[optind], type); -- 1.7.2.2 From aelder@sgi.com Fri Aug 27 16:31:34 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RLVYXg112757 for ; Fri, 27 Aug 2010 16:31:34 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 75602304043; Fri, 27 Aug 2010 14:32:07 -0700 (PDT) Received: from [128.162.232.176] ([128.162.232.176]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 27 Aug 2010 16:32:04 -0500 Subject: Re: [PATCH] Validate string -> number conversion. [version 3] From: Alex Elder Reply-To: aelder@sgi.com To: Arkadiusz =?UTF-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com In-Reply-To: <1282942476-5296-1-git-send-email-arekm@maven.pl> References: <20100826082612.GE705@dastard> <1282942476-5296-1-git-send-email-arekm@maven.pl> Content-Type: text/plain; charset="UTF-8" Date: Fri, 27 Aug 2010 16:32:04 -0500 Message-ID: <1282944724.2450.135.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: quoted-printable X-OriginalArrivalTime: 27 Aug 2010 21:32:04.0690 (UTC) FILETIME=[4B0F6B20:01CB462F] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2010-08-27 at 22:54 +0200, Arkadiusz Mi=C5=9Bkiewicz wrote: > Make sure that numbers passed as string will fit into proper > types when doing string->uid_t/gid_t/prid_t conversion. Looks good to me. I can commit this for you next week if nobody else has any issue with it. Reviewed-by: Alex Elder > Signed-off-by: Arkadiusz Mi=C5=9Bkiewicz > --- > libxcmd/input.c | 36 ++++++++++++++++++++++++------------ > quota/project.c | 2 +- > 2 files changed, 25 insertions(+), 13 deletions(-) . . . From sandeen@sandeen.net Fri Aug 27 16:49:29 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RLnT55113710 for ; Fri, 27 Aug 2010 16:49:29 -0500 X-ASG-Debug-ID: 1282945798-584c02110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 52A1B2EE72 for ; Fri, 27 Aug 2010 14:49:58 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id 50cK1SfyEudsTug7 for ; Fri, 27 Aug 2010 14:49:58 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 912F94546409; Fri, 27 Aug 2010 16:49:57 -0500 (CDT) Message-ID: <4C783305.5060506@sandeen.net> Date: Fri, 27 Aug 2010 16:49:57 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Akshay Lal CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. References: <1282941224-5805-1-git-send-email-alal@google.com> In-Reply-To: <1282941224-5805-1-git-send-email-alal@google.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1282945799 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39213 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Akshay Lal wrote: > As found by Theodore Ts'o: If a 128K file is falloc'ed using the > KEEP_SIZE flag, and then write exactly 128K, the EOFBLOCK_FL doesn't > get cleared correctly. This forces e2fsck to complain about that > inode. Thanks, a few comments below... > --- > 243 | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 243.out | 25 +++++++++++ > group | 1 + > 3 files changed, 171 insertions(+), 0 deletions(-) > create mode 100644 243 > create mode 100644 243.out > > diff --git a/243 b/243 > new file mode 100644 > index 0000000..8102f24 > --- /dev/null > +++ b/243 > @@ -0,0 +1,145 @@ > +#! /bin/bash > +# FS QA Test No. 243 > +# > +# Test to ensure that the EOFBLOCK_FL gets set/unset correctly. > +# > +# As found by Theodore Ts'o: > +# If a 128K file is falloc'ed using the KEEP_SIZE flag, and then > +# write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. > +# This forces e2fsck to complain about that inode. > +# > +# creator > +owner=alal@google.com > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +# Test specific macros. > +BIT_NOT_SET=0 # inode flag - 0x40000 bit is set. > +BIT_SET=1 # inode flag - 0x400000 bit is not set. I'm thinking one of the values in the comment is not right :) > + > +# Generic test cleanup function. > +_cleanup() > +{ > + cd / > + rm -f $tmp.* > +} > + > +# Checks the state of the sample file in the filesystem and returns whether > +# the inode flag 0x400000 is set or not. I guess a little more comment here about why we do this only for ext4 might be good. Just to make it more obvious in the main test could you maybe call it something like _check_ext4_eof_flag() ? If we ever need to do testing on other filesystems we can adjust it. > +_check_file_state() > +{ > + bit_set=1 > + > + # Check whether EOFBLOCK_FL is set. > + if [ "${FSTYP}" == "ext4" ]; then > + # Unmount the ${TEST_DEV} > + umount ${TEST_DEV} > + > + # Run debugfs to gather file_parameters - specifically iflags. > + file_params=`debugfs ${TEST_DEV} -R "stat ${1}" 2>&1 | grep -e Flags:` > + iflags=${file_params#*Flags: } > + > + # Ensure that the iflags value was parsed correctly. > + if [ -z ${iflags} ]; then > + echo "iFlags value was not parsed successfully." > + status=1 > + exit ${status} > + fi > + > + if ((${iflags} & 0x400000)); then > + echo "EOFBLOCK_FL bit is set." This will cause the test to fail on anything but ext4 because it's expected in the output but only happens for ext4... You could redirect it into $seq.full, just to have it for analysis if the test ever fails. > + bit_set=1 > + else > + echo "EOFBLOCK_FL bit is not set." > + bit_set=0 > + fi > + > + # Check current bit state to expected value. > + if [ ${bit_set} -ne ${2} ]; then > + echo "Error: Current bit state incorrect." > + exit ${status} > + fi > + > + # Mount the ${TEST_DEV} > + mount ${TEST_DEV} -t ${FSTYP} ${TEST_DIR} > + else > + # Run fsck on the fs. fsck -t ${FSTYP} -fn ${TEST_DEV}. > + _check_test_fs Ah now I see why you didn't call it _check_ext4_eof_flag() ;) This may not be necessary, the harness runs fsck after each test anyway. On a large filesystem this could take a pretty long time if you run fsck 6 times. I'd just drop this and let the post-test-fsck catch any problems. > + fi > + > + # Remove test file > + rm -f ${TEST_DIR}/${1} ... but I suppose you'd need to leave the files around for that to work, which is fine; the test_dir is supposed to age anyway. Thanks, -Eric > +} > + > +# Get standard environment, filters and checks. > +. ./common.rc > +. ./common.filter > + > +# Prerequisites for the test run. > +_supported_fs generic > +_supported_os Linux > +_require_xfs_io_falloc > + > +# Real QA test starts here. > +rm -f $seq.full > + > +# Begin test cases. > + > +# Using FALLOC_FL_KEEP_SIZE > +# Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). > +echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 4096' \ > + ${TEST_DIR}/test_1 | _filter_xfs_io_unique > +_check_file_state test_1 ${BIT_SET} > + > +# Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). > +echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 4096' \ > + ${TEST_DIR}/test_2 | _filter_xfs_io_unique > +_check_file_state test_2 ${BIT_SET} > + > +# Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). > +echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 40960' \ > + ${TEST_DIR}/test_3 | _filter_xfs_io_unique > +_check_file_state test_3 ${BIT_NOT_SET} > + > +# Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). > +echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 40960' \ > + ${TEST_DIR}/test_4 | _filter_xfs_io_unique > +_check_file_state test_4 ${BIT_NOT_SET} > + > +# Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io). > +echo "Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io)." > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 128k' \ > + -c 'pwrite 256k 4k' \ > + ${TEST_DIR}/test_5 | _filter_xfs_io_unique > +_check_file_state test_5 ${BIT_NOT_SET} > + > +# Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). > +echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io)." > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 128k' \ > + -c 'pwrite 256k 4k' \ > + ${TEST_DIR}/test_6 | _filter_xfs_io_unique > +_check_file_state test_6 ${BIT_NOT_SET} > + > + > +status=0 > +exit ${status} > diff --git a/243.out b/243.out > new file mode 100644 > index 0000000..35583e8 > --- /dev/null > +++ b/243.out > @@ -0,0 +1,25 @@ > +QA output created by 243 > +Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). > +wrote 40960/40960 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). > +wrote 40960/40960 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io). > +wrote 4096/4096 bytes at offset 262144 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is not set. > +Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). > +wrote 4096/4096 bytes at offset 262144 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is not set. > diff --git a/group b/group > index ff16bb3..e6dab13 100644 > --- a/group > +++ b/group > @@ -356,3 +356,4 @@ deprecated > 240 auto aio quick rw > 241 auto > 242 auto quick prealloc > +243 auto quick prealloc From arekm@maven.pl Fri Aug 27 17:30:54 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RMUsCe115125 for ; Fri, 27 Aug 2010 17:30:54 -0500 X-ASG-Debug-ID: 1282948289-0e9300b00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0A39F2EFB3 for ; Fri, 27 Aug 2010 15:31:29 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id 21xBnvYJSrKzKqyY for ; Fri, 27 Aug 2010 15:31:29 -0700 (PDT) Received: from chello087207113141.chello.pl ([87.207.113.141]:36395 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Op7SK-0001k4-D5; Sat, 28 Aug 2010 00:31:28 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1Op7SK-00037z-1z; Sat, 28 Aug 2010 00:31:28 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: Arkadiusz Miskiewicz X-ASG-Orig-Subj: [PATCH] xfstests: Quota project id setting overflow Subject: [PATCH] xfstests: Quota project id setting overflow Date: Sat, 28 Aug 2010 00:31:26 +0200 Message-Id: <1282948286-11970-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.2.2 In-Reply-To: <20100826084249.GF705@dastard> References: <20100826084249.GF705@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282948290 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39215 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Arkadiusz Miskiewicz Test 3 quota project setting id conditions: - set 16bit project quota id -> should succeed - set 32bit project quota id -> should succeed (with projid32bit patch applied; fail otherwise) - over 32bit project quota id -> should always fail Signed-off-by: Arkadiusz Miśkiewicz --- 243 | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 243.out | 2 + group | 1 + 3 files changed, 124 insertions(+), 0 deletions(-) create mode 100644 243 create mode 100644 243.out diff --git a/243 b/243 new file mode 100644 index 0000000..34fa969 --- /dev/null +++ b/243 @@ -0,0 +1,121 @@ +#! /bin/bash +# FS QA Test No. 243 +# +# test to verify that proper project quota id is correctly set +# +#----------------------------------------------------------------------- +# Copyright (c) 2010 Arkadiusz Miśkiewicz. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#----------------------------------------------------------------------- +# +# creator +owner=arekm@maven.pl + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter +. ./common.quota + +_cleanup() +{ + cd / + umount $SCRATCH_MNT 2>/dev/null + rm -f $tmp.* +} + +# real QA test starts here +_supported_fs xfs + +_require_xfs_quota + +dir=$SCRATCH_MNT/project + +_require_scratch +_scratch_mkfs_xfs >/dev/null 2>&1 + +#if pquota's already in mount options then we dont need to enable +# we can't run with group quotas +if ( echo $MOUNT_OPTIONS | egrep -q g??quota ) +then + _notrun "Can't run with group quotas enabled" +fi +EXTRA_MOUNT_OPTIONS="-o pquota" + +if ! _scratch_mount "$EXTRA_MOUNT_OPTIONS" >$tmp.out 2>&1 +then + cat $tmp.out + _fail "!!! failed to mount" +fi + +src/feature -p $SCRATCH_DEV +[ $? -ne 0 ] && _notrun "Installed kernel does not support project quotas" + +status=0 + +echo "Silence is golden" + +mkdir $dir +touch $dir/below16bit +# below 16bit value +xfs_quota -x -c "project -s -p $dir/below16bit 3422" $SCRATCH_DEV >> $seq.full +projid=$($XFS_IO_PROG -r -c "lsproj" $dir/below16bit) +if [ "projid = 3422" != "$projid" ]; then + echo "FAIL: returned projid value ($projid) doesn't match set one (projid = 3422)" + status=1 +fi + +# 0x20 - projid32bit features2 bit +features2_pre=$(xfs_db -x -r -c 'sb' -c 'print features2' $SCRATCH_DEV | awk ' { print $3 } ') +projid32bit_pre=$((features2_pre & 0x20)) +# over 16bit value +touch $dir/over16bit +if (xfs_quota -x -c "project -s -p $dir/over16bit 108545" $SCRATCH_DEV >> $seq.full); then + # success? verify if projid matches + projid=$($XFS_IO_PROG -r -c "lsproj" $dir/over16bit) + if [ "projid = 108545" != "$projid" ]; then + echo "FAIL: returned projid value ($projid) doesn't match set one (projid = 108545)" + status=1 + else + # if it really succeeded then projid32bit feature bit is supposed to be set automaticly + features2_post=$(xfs_db -x -r -c 'sb' -c 'print features2' $SCRATCH_DEV | awk ' { print $3 } ') + projid32bit_post=$((features2_post & 0x20)) + if [ "$projid32bit_post" -eq 0 ]; then + echo "FAIL: setting 32bit projid succeeded but projid32bit features2 bit wasn't automaticly set" + status=1 + fi + fi +else + # didn't succeed but it should if projid32bit feature bit was already set + if [ "$projid32bit_pre" -gt 0 ]; then + echo "FAIL: setting 32bit projid failed but it should succeeded" + status=1 + fi +fi + +# over 32bit value, should fail +touch $dir/over32bit +if xfs_quota -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV >> $seq.full; then + echo "FAIL: setting over 32bit projid succeeded while it should fail" + status=1 +fi diff --git a/243.out b/243.out new file mode 100644 index 0000000..d075942 --- /dev/null +++ b/243.out @@ -0,0 +1,2 @@ +QA output created by 243 +Silence is golden diff --git a/group b/group index ff16bb3..e7ba59b 100644 --- a/group +++ b/group @@ -356,3 +356,4 @@ deprecated 240 auto aio quick rw 241 auto 242 auto quick prealloc +243 auto quota quick -- 1.7.1 From arekm@maven.pl Fri Aug 27 17:39:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_64, LOCAL_GNU_PATCH,MIME_8BIT_HEADER autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RMdO83115353 for ; Fri, 27 Aug 2010 17:39:24 -0500 X-ASG-Debug-ID: 1282948799-168000bf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2625A2F183 for ; Fri, 27 Aug 2010 15:39:59 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id 30Gu2Gc3Q5nDZZgv for ; Fri, 27 Aug 2010 15:39:59 -0700 (PDT) Received: from chello087207113141.chello.pl ([87.207.113.141]:54920 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Op7aY-0002nJ-V1; Sat, 28 Aug 2010 00:39:59 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1Op7aY-0003IS-JG; Sat, 28 Aug 2010 00:39:58 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] Extend project quotas to support 32bit project identificators. [version 3] Subject: [PATCH] Extend project quotas to support 32bit project identificators. [version 3] Date: Sat, 28 Aug 2010 00:39:58 +0200 Message-Id: <1282948798-12622-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.2.2 In-Reply-To: <1282770578-6958-1-git-send-email-arekm@maven.pl> References: <1282770578-6958-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282948800 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39215 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch adds support for 32bit project quota identificators. On disk format is backward compatible with 16bit projid numbers. projid on disk is now keept in two 16bit values - di_projid_lo (which holds the same position as old 16bit projid value) and new di_projid_hi (takes existing padding) and convertes from/to 32bit value on the fly. PROJID32BIT feature2 flag is set automaticly when trying to use 32bit quota project identificator. Signed-off-by: Arkadiusz Miśkiewicz --- Changes: - automaticly set projid32bit features2 flag - operate on xfs_inode_t * instead of xfs_icdinode - drop xfs_prid_t completly (no longer used) - formatting fixes fs/xfs/linux-2.6/xfs_ioctl.c | 31 ++++++++++++++++++++++++------- fs/xfs/linux-2.6/xfs_ioctl32.c | 6 ++++-- fs/xfs/linux-2.6/xfs_ioctl32.h | 5 +++-- fs/xfs/quota/xfs_qm.c | 12 ++++++------ fs/xfs/quota/xfs_qm_bhv.c | 2 +- fs/xfs/quota/xfs_qm_syscalls.c | 2 +- fs/xfs/xfs_dinode.h | 5 +++-- fs/xfs/xfs_fs.h | 5 +++-- fs/xfs/xfs_inode.c | 14 ++++++++------ fs/xfs/xfs_inode.h | 24 +++++++++++++++++++++--- fs/xfs/xfs_itable.c | 3 ++- fs/xfs/xfs_rename.c | 2 +- fs/xfs/xfs_sb.h | 16 +++++++++++++++- fs/xfs/xfs_types.h | 2 -- fs/xfs/xfs_vnodeops.c | 14 +++++++------- 15 files changed, 99 insertions(+), 44 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 237f5ff..75e014c 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -788,7 +788,7 @@ xfs_ioc_fsgetxattr( xfs_ilock(ip, XFS_ILOCK_SHARED); fa.fsx_xflags = xfs_ip2xflags(ip); fa.fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog; - fa.fsx_projid = ip->i_d.di_projid; + fa.fsx_projid = xfs_get_projid(ip); if (attr) { if (ip->i_afp) { @@ -946,13 +946,30 @@ xfs_ioctl_setattr( goto error_return; } - /* - * Do a quota reservation only if projid is actually going to change. - */ if (mask & FSX_PROJID) { + /* + * Switch on the PROJID32BIT superblock bit when needed + * (implies also FEATURES2) + */ + if (!xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb) && + fa->fsx_projid > (__uint16_t)-1) { + spin_lock(&ip->i_mount->m_sb_lock); + if (!xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb)) { + xfs_sb_version_addprojid32bit(&ip->i_mount->m_sb); + spin_unlock(&ip->i_mount->m_sb_lock); + xfs_mod_sb(tp, + XFS_SB_VERSIONNUM | XFS_SB_FEATURES2); + } else + spin_unlock(&ip->i_mount->m_sb_lock); + } + + /* + * Do a quota reservation only if projid is actually + * going to change. + */ if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp) && - ip->i_d.di_projid != fa->fsx_projid) { + xfs_get_projid(ip) != fa->fsx_projid) { ASSERT(tp); code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, capable(CAP_FOWNER) ? @@ -1054,12 +1071,12 @@ xfs_ioctl_setattr( * Change the ownerships and register quota modifications * in the transaction. */ - if (ip->i_d.di_projid != fa->fsx_projid) { + if (xfs_get_projid(ip) != fa->fsx_projid) { if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp)) { olddquot = xfs_qm_vop_chown(tp, ip, &ip->i_gdquot, gdqp); } - ip->i_d.di_projid = fa->fsx_projid; + xfs_set_projid(ip, fa->fsx_projid); /* * We may have to rev the inode as well as diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index 6c83f7f..2146196 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c @@ -164,7 +164,8 @@ xfs_ioctl32_bstat_copyin( get_user(bstat->bs_extsize, &bstat32->bs_extsize) || get_user(bstat->bs_extents, &bstat32->bs_extents) || get_user(bstat->bs_gen, &bstat32->bs_gen) || - get_user(bstat->bs_projid, &bstat32->bs_projid) || + get_user(bstat->bs_projid_lo, &bstat32->bs_projid_lo) || + get_user(bstat->bs_projid_hi, &bstat32->bs_projid_hi) || get_user(bstat->bs_dmevmask, &bstat32->bs_dmevmask) || get_user(bstat->bs_dmstate, &bstat32->bs_dmstate) || get_user(bstat->bs_aextents, &bstat32->bs_aextents)) @@ -217,7 +218,8 @@ xfs_bulkstat_one_fmt_compat( put_user(buffer->bs_extsize, &p32->bs_extsize) || put_user(buffer->bs_extents, &p32->bs_extents) || put_user(buffer->bs_gen, &p32->bs_gen) || - put_user(buffer->bs_projid, &p32->bs_projid) || + put_user(buffer->bs_projid_lo, &p32->bs_projid_lo) || + put_user(buffer->bs_projid_hi, &p32->bs_projid_hi) || put_user(buffer->bs_dmevmask, &p32->bs_dmevmask) || put_user(buffer->bs_dmstate, &p32->bs_dmstate) || put_user(buffer->bs_aextents, &p32->bs_aextents)) diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.h b/fs/xfs/linux-2.6/xfs_ioctl32.h index 1024c4f..7a22385 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.h +++ b/fs/xfs/linux-2.6/xfs_ioctl32.h @@ -65,8 +65,9 @@ typedef struct compat_xfs_bstat { __s32 bs_extsize; /* extent size */ __s32 bs_extents; /* number of extents */ __u32 bs_gen; /* generation count */ - __u16 bs_projid; /* project id */ - unsigned char bs_pad[14]; /* pad space, unused */ + __u16 bs_projid_lo; /* lower part of project id */ + __u16 bs_projid_hi; /* high part of project id */ + unsigned char bs_pad[12]; /* pad space, unused */ __u32 bs_dmevmask; /* DMIG event mask */ __u16 bs_dmstate; /* DMIG state info */ __u16 bs_aextents; /* attribute number of extents */ diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 9a92407..9a8885e 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -837,7 +837,7 @@ xfs_qm_dqattach_locked( xfs_qm_dqattach_one(ip, ip->i_d.di_gid, XFS_DQ_GROUP, flags & XFS_QMOPT_DQALLOC, ip->i_udquot, &ip->i_gdquot) : - xfs_qm_dqattach_one(ip, ip->i_d.di_projid, XFS_DQ_PROJ, + xfs_qm_dqattach_one(ip, xfs_get_projid(ip), XFS_DQ_PROJ, flags & XFS_QMOPT_DQALLOC, ip->i_udquot, &ip->i_gdquot); /* @@ -1248,7 +1248,7 @@ xfs_qm_dqget_noattach( XFS_QMOPT_DQALLOC|XFS_QMOPT_DOWARN, &gdqp) : xfs_qm_dqget(mp, ip, - ip->i_d.di_projid, XFS_DQ_PROJ, + xfs_get_projid(ip), XFS_DQ_PROJ, XFS_QMOPT_DQALLOC|XFS_QMOPT_DOWARN, &gdqp); if (error) { @@ -2332,9 +2332,9 @@ xfs_qm_vop_dqalloc( xfs_dqunlock(gq); } } else if ((flags & XFS_QMOPT_PQUOTA) && XFS_IS_PQUOTA_ON(mp)) { - if (ip->i_d.di_projid != prid) { + if (xfs_get_projid(ip) != prid) { xfs_iunlock(ip, lockflags); - if ((error = xfs_qm_dqget(mp, NULL, (xfs_dqid_t)prid, + if ((error = xfs_qm_dqget(mp, NULL, prid, XFS_DQ_PROJ, XFS_QMOPT_DQALLOC | XFS_QMOPT_DOWARN, @@ -2454,7 +2454,7 @@ xfs_qm_vop_chown_reserve( } if (XFS_IS_OQUOTA_ON(ip->i_mount) && gdqp) { if (XFS_IS_PQUOTA_ON(ip->i_mount) && - ip->i_d.di_projid != be32_to_cpu(gdqp->q_core.d_id)) + xfs_get_projid(ip) != be32_to_cpu(gdqp->q_core.d_id)) prjflags = XFS_QMOPT_ENOSPC; if (prjflags || @@ -2558,7 +2558,7 @@ xfs_qm_vop_create_dqattach( ip->i_gdquot = gdqp; ASSERT(XFS_IS_OQUOTA_ON(mp)); ASSERT((XFS_IS_GQUOTA_ON(mp) ? - ip->i_d.di_gid : ip->i_d.di_projid) == + ip->i_d.di_gid : xfs_get_projid(ip)) == be32_to_cpu(gdqp->q_core.d_id)); xfs_trans_mod_dquot(tp, gdqp, XFS_TRANS_DQ_ICOUNT, 1); } diff --git a/fs/xfs/quota/xfs_qm_bhv.c b/fs/xfs/quota/xfs_qm_bhv.c index bea02d7..45b5cb1 100644 --- a/fs/xfs/quota/xfs_qm_bhv.c +++ b/fs/xfs/quota/xfs_qm_bhv.c @@ -81,7 +81,7 @@ xfs_qm_statvfs( xfs_mount_t *mp = ip->i_mount; xfs_dquot_t *dqp; - if (!xfs_qm_dqget(mp, NULL, ip->i_d.di_projid, XFS_DQ_PROJ, 0, &dqp)) { + if (!xfs_qm_dqget(mp, NULL, xfs_get_projid(ip), XFS_DQ_PROJ, 0, &dqp)) { xfs_fill_statvfs_from_dquot(statp, &dqp->q_core); xfs_qm_dqput(dqp); } diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 45e5849..a89065b 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -1175,7 +1175,7 @@ xfs_qm_internalqcheck_adjust( } xfs_qm_internalqcheck_get_dquots(mp, (xfs_dqid_t) ip->i_d.di_uid, - (xfs_dqid_t) ip->i_d.di_projid, + (xfs_dqid_t) xfs_get_projid(ip), (xfs_dqid_t) ip->i_d.di_gid, &ud, &gd); if (XFS_IS_UQUOTA_ON(mp)) { diff --git a/fs/xfs/xfs_dinode.h b/fs/xfs/xfs_dinode.h index e5b153b..dffba9b 100644 --- a/fs/xfs/xfs_dinode.h +++ b/fs/xfs/xfs_dinode.h @@ -49,8 +49,9 @@ typedef struct xfs_dinode { __be32 di_uid; /* owner's user id */ __be32 di_gid; /* owner's group id */ __be32 di_nlink; /* number of links to file */ - __be16 di_projid; /* owner's project id */ - __u8 di_pad[8]; /* unused, zeroed space */ + __be16 di_projid_lo; /* lower part of owner's project id */ + __be16 di_projid_hi; /* higher part owner's project id */ + __u8 di_pad[6]; /* unused, zeroed space */ __be16 di_flushiter; /* incremented on flush */ xfs_timestamp_t di_atime; /* time last accessed */ xfs_timestamp_t di_mtime; /* time last modified */ diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h index 7cf7220..6b7debc 100644 --- a/fs/xfs/xfs_fs.h +++ b/fs/xfs/xfs_fs.h @@ -291,9 +291,10 @@ typedef struct xfs_bstat { __s32 bs_extsize; /* extent size */ __s32 bs_extents; /* number of extents */ __u32 bs_gen; /* generation count */ - __u16 bs_projid; /* project id */ + __u16 bs_projid_lo; /* lower part of project id */ __u16 bs_forkoff; /* inode fork offset in bytes */ - unsigned char bs_pad[12]; /* pad space, unused */ + __u16 bs_projid_hi; /* higher part of project id */ + unsigned char bs_pad[10]; /* pad space, unused */ __u32 bs_dmevmask; /* DMIG event mask */ __u16 bs_dmstate; /* DMIG state info */ __u16 bs_aextents; /* attribute number of extents */ diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 68415cb..2ff0d49 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -660,7 +660,8 @@ xfs_dinode_from_disk( to->di_uid = be32_to_cpu(from->di_uid); to->di_gid = be32_to_cpu(from->di_gid); to->di_nlink = be32_to_cpu(from->di_nlink); - to->di_projid = be16_to_cpu(from->di_projid); + to->di_projid_lo = be16_to_cpu(from->di_projid_lo); + to->di_projid_hi = be16_to_cpu(from->di_projid_hi); memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad)); to->di_flushiter = be16_to_cpu(from->di_flushiter); to->di_atime.t_sec = be32_to_cpu(from->di_atime.t_sec); @@ -695,7 +696,8 @@ xfs_dinode_to_disk( to->di_uid = cpu_to_be32(from->di_uid); to->di_gid = cpu_to_be32(from->di_gid); to->di_nlink = cpu_to_be32(from->di_nlink); - to->di_projid = cpu_to_be16(from->di_projid); + to->di_projid_lo = cpu_to_be16(from->di_projid_lo); + to->di_projid_hi = cpu_to_be16(from->di_projid_hi); memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad)); to->di_flushiter = cpu_to_be16(from->di_flushiter); to->di_atime.t_sec = cpu_to_be32(from->di_atime.t_sec); @@ -874,7 +876,7 @@ xfs_iread( if (ip->i_d.di_version == 1) { ip->i_d.di_nlink = ip->i_d.di_onlink; ip->i_d.di_onlink = 0; - ip->i_d.di_projid = 0; + xfs_set_projid(ip, 0); } ip->i_delayed_blks = 0; @@ -983,7 +985,7 @@ xfs_ialloc( xfs_nlink_t nlink, xfs_dev_t rdev, cred_t *cr, - xfs_prid_t prid, + prid_t prid, int okalloc, xfs_buf_t **ialloc_context, boolean_t *call_again, @@ -1027,7 +1029,7 @@ xfs_ialloc( ASSERT(ip->i_d.di_nlink == nlink); ip->i_d.di_uid = current_fsuid(); ip->i_d.di_gid = current_fsgid(); - ip->i_d.di_projid = prid; + xfs_set_projid(ip, prid); memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); /* @@ -3005,7 +3007,7 @@ xfs_iflush_int( memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); memset(&(dip->di_pad[0]), 0, sizeof(dip->di_pad)); - ASSERT(ip->i_d.di_projid == 0); + ASSERT(xfs_get_projid(ip) == 0); } } diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 0898c54..5bbb100 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -134,8 +134,9 @@ typedef struct xfs_icdinode { __uint32_t di_uid; /* owner's user id */ __uint32_t di_gid; /* owner's group id */ __uint32_t di_nlink; /* number of links to file */ - __uint16_t di_projid; /* owner's project id */ - __uint8_t di_pad[8]; /* unused, zeroed space */ + __uint16_t di_projid_lo; /* lower part of owner's project id */ + __uint16_t di_projid_hi; /* higher part of owner's project id */ + __uint8_t di_pad[6]; /* unused, zeroed space */ __uint16_t di_flushiter; /* incremented on flush */ xfs_ictimestamp_t di_atime; /* time last accessed */ xfs_ictimestamp_t di_mtime; /* time last modified */ @@ -335,6 +336,23 @@ xfs_iflags_test_and_clear(xfs_inode_t *ip, unsigned short flags) } /* + * Project quota id helpers + */ +static inline prid_t +xfs_get_projid(xfs_inode_t *ip) +{ + return (prid_t)(ip->i_d.di_projid_hi) << 16 | ip->i_d.di_projid_lo; +} + +static inline void +xfs_set_projid(xfs_inode_t *ip, + prid_t projid) +{ + ip->i_d.di_projid_hi = (__uint16_t) (projid >> 16); + ip->i_d.di_projid_lo = (__uint16_t) (projid & 0xffff); +} + +/* * Manage the i_flush queue embedded in the inode. This completion * queue synchronizes processes attempting to flush the in-core * inode back to disk. @@ -456,7 +474,7 @@ void xfs_inode_free(struct xfs_inode *ip); * xfs_inode.c prototypes. */ int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, - xfs_nlink_t, xfs_dev_t, cred_t *, xfs_prid_t, + xfs_nlink_t, xfs_dev_t, cred_t *, prid_t, int, struct xfs_buf **, boolean_t *, xfs_inode_t **); uint xfs_ip2xflags(struct xfs_inode *); diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index 7e3626e..dc1882a 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -92,7 +92,8 @@ xfs_bulkstat_one_int( * further change. */ buf->bs_nlink = dic->di_nlink; - buf->bs_projid = dic->di_projid; + buf->bs_projid_lo = dic->di_projid_lo; + buf->bs_projid_hi = dic->di_projid_hi; buf->bs_ino = ino; buf->bs_mode = dic->di_mode; buf->bs_uid = dic->di_uid; diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c index 8fca957..494b5cd 100644 --- a/fs/xfs/xfs_rename.c +++ b/fs/xfs/xfs_rename.c @@ -183,7 +183,7 @@ xfs_rename( * tree quota mechanism would be circumvented. */ if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && - (target_dp->i_d.di_projid != src_ip->i_d.di_projid))) { + (xfs_get_projid(target_dp) != xfs_get_projid(src_ip)))) { error = XFS_ERROR(EXDEV); goto error_return; } diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h index 1b017c6..5066711 100644 --- a/fs/xfs/xfs_sb.h +++ b/fs/xfs/xfs_sb.h @@ -80,10 +80,12 @@ struct xfs_mount; #define XFS_SB_VERSION2_RESERVED4BIT 0x00000004 #define XFS_SB_VERSION2_ATTR2BIT 0x00000008 /* Inline attr rework */ #define XFS_SB_VERSION2_PARENTBIT 0x00000010 /* parent pointers */ +#define XFS_SB_VERSION2_PROJID32BIT 0x00000020 /* 32 bit project id */ #define XFS_SB_VERSION2_OKREALFBITS \ (XFS_SB_VERSION2_LAZYSBCOUNTBIT | \ - XFS_SB_VERSION2_ATTR2BIT) + XFS_SB_VERSION2_ATTR2BIT | \ + XFS_SB_VERSION2_PROJID32BIT) #define XFS_SB_VERSION2_OKSASHFBITS \ (0) #define XFS_SB_VERSION2_OKREALBITS \ @@ -495,6 +497,18 @@ static inline void xfs_sb_version_removeattr2(xfs_sb_t *sbp) sbp->sb_versionnum &= ~XFS_SB_VERSION_MOREBITSBIT; } +static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp) +{ + return xfs_sb_version_hasmorebits(sbp) && + (sbp->sb_features2 & XFS_SB_VERSION2_PROJID32BIT); +} + +static inline void xfs_sb_version_addprojid32bit(xfs_sb_t *sbp) +{ + sbp->sb_versionnum |= XFS_SB_VERSION_MOREBITSBIT; + sbp->sb_features2 |= XFS_SB_VERSION2_PROJID32BIT; +} + /* * end of superblock version macros */ diff --git a/fs/xfs/xfs_types.h b/fs/xfs/xfs_types.h index 3207752..26d1867 100644 --- a/fs/xfs/xfs_types.h +++ b/fs/xfs/xfs_types.h @@ -73,8 +73,6 @@ typedef __int32_t xfs_tid_t; /* transaction identifier */ typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */ -typedef __uint16_t xfs_prid_t; /* prid_t truncated to 16bits in XFS */ - typedef __uint32_t xlog_tid_t; /* transaction ID type */ /* diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 66d585c..53de9fc 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -114,7 +114,7 @@ xfs_setattr( */ ASSERT(udqp == NULL); ASSERT(gdqp == NULL); - code = xfs_qm_vop_dqalloc(ip, uid, gid, ip->i_d.di_projid, + code = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip), qflags, &udqp, &gdqp); if (code) return code; @@ -1266,7 +1266,7 @@ xfs_create( boolean_t unlock_dp_on_error = B_FALSE; uint cancel_flags; int committed; - xfs_prid_t prid; + prid_t prid; struct xfs_dquot *udqp = NULL; struct xfs_dquot *gdqp = NULL; uint resblks; @@ -1279,7 +1279,7 @@ xfs_create( return XFS_ERROR(EIO); if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) - prid = dp->i_d.di_projid; + prid = xfs_get_projid(dp); else prid = dfltprid; @@ -1880,7 +1880,7 @@ xfs_link( * the tree quota mechanism could be circumvented. */ if (unlikely((tdp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && - (tdp->i_d.di_projid != sip->i_d.di_projid))) { + (xfs_get_projid(tdp) != xfs_get_projid(sip)))) { error = XFS_ERROR(EXDEV); goto error_return; } @@ -1955,7 +1955,7 @@ xfs_symlink( int byte_cnt; int n; xfs_buf_t *bp; - xfs_prid_t prid; + prid_t prid; struct xfs_dquot *udqp, *gdqp; uint resblks; @@ -1978,9 +1978,9 @@ xfs_symlink( udqp = gdqp = NULL; if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) - prid = dp->i_d.di_projid; + prid = xfs_get_projid(dp); else - prid = (xfs_prid_t)dfltprid; + prid = dfltprid; /* * Make sure that we have allocated dquot(s) on disk. -- 1.7.2.2 From akshaylal@google.com Fri Aug 27 18:10:06 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RNA5i3116301 for ; Fri, 27 Aug 2010 18:10:06 -0500 X-ASG-Debug-ID: 1282950640-490b014a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C5F821782931 for ; Fri, 27 Aug 2010 16:10:40 -0700 (PDT) Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by cuda.sgi.com with ESMTP id iB3noD38E6LB2NCp for ; Fri, 27 Aug 2010 16:10:40 -0700 (PDT) Received: from kpbe15.cbf.corp.google.com (kpbe15.cbf.corp.google.com [172.25.105.79]) by smtp-out.google.com with ESMTP id o7RNAdQQ021472 for ; Fri, 27 Aug 2010 16:10:39 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1282950640; bh=30G1syo5QlJDp5jMdB9uSVDsfR4=; h=MIME-Version:Reply-To:In-Reply-To:References:From:Date:Message-ID: Subject:To:Cc:Content-Type:Content-Transfer-Encoding; b=qw6xnxSAV8BK1sH3xGS9wHdNxb8CzfGdMq/Tq/hCwJ8VXOjgku+maFshvccUMuRLr np0PvgA8sNNlZnodf5rmA== Received: from gxk2 (gxk2.prod.google.com [10.202.11.2]) by kpbe15.cbf.corp.google.com with ESMTP id o7RNAbUB001055 for ; Fri, 27 Aug 2010 16:10:37 -0700 Received: by gxk2 with SMTP id 2so1396968gxk.6 for ; Fri, 27 Aug 2010 16:10:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:received:mime-version:received:reply-to :in-reply-to:references:from:date:message-id:subject:to:cc :content-type:content-transfer-encoding; bh=5y/nY/ZX+0hjxvG8MVgSgFCtNmMyzCFdCY43ATV5jFU=; b=NoS/KvfCxTRyuIcCnraHpB8aEe8oUCt+K3OF/R+hGH+O0JGYbDrl1w7IdLBWI8hpzh PisBapmGdQ4z9huHSWew== DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:reply-to:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; b=vNjqDL2ee+R8NPZF+3dQT6tMQw33ZF0XG6lybJWc0y4aafvpoRRl9WolF7sjc/Bfiu bSykFNLc2wafJN/cki+Q== Received: by 10.150.189.5 with SMTP id m5mr2492166ybf.379.1282950637206; Fri, 27 Aug 2010 16:10:37 -0700 (PDT) MIME-Version: 1.0 Received: by 10.151.158.8 with HTTP; Fri, 27 Aug 2010 16:10:07 -0700 (PDT) Reply-To: alal@google.com In-Reply-To: <4C783305.5060506@sandeen.net> References: <1282941224-5805-1-git-send-email-alal@google.com> <4C783305.5060506@sandeen.net> From: Akshay Lal Date: Fri, 27 Aug 2010 16:10:07 -0700 Message-ID: X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. To: Eric Sandeen Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-System-Of-Record: true X-Barracuda-Connect: smtp-out.google.com[74.125.121.35] X-Barracuda-Start-Time: 1282950641 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39217 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean >> +# Test specific macros. >> +BIT_NOT_SET=3D0 =A0 # inode flag - 0x40000 bit is set. >> +BIT_SET=3D1 =A0 =A0 =A0 # inode flag - 0x400000 bit is not set. > > I'm thinking one of the values in the comment is not right :) Duh. Thats silly of me. Done. >> +# Checks the state of the sample file in the filesystem and returns whe= ther >> +# the inode flag 0x400000 is set or not. > > I guess a little more comment here about why we do this only for ext4 mig= ht > be good. > > Just to make it more obvious in the main test could you maybe call > it something like _check_ext4_eof_flag() ? =A0If we ever need to do > testing on other filesystems we can adjust it. Done. >> + =A0 =A0 =A0 =A0if ((${iflags} & 0x400000)); then >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0echo "EOFBLOCK_FL bit is set." > > This will cause the test to fail on anything but ext4 because > it's expected in the output but only happens for ext4... > > You could redirect it into $seq.full, just to have it for analysis > if the test ever fails. I've added an else condition to exit the test with the error message that the test is only supported on ext4 filesystems. I've also redirected all echo messages to $seq.full >> + =A0 =A0 =A0 =A0# Run fsck on the fs. fsck -t ${FSTYP} -fn ${TEST_DEV}. >> + =A0 =A0 =A0 =A0_check_test_fs > > Ah now I see why you didn't call it _check_ext4_eof_flag() ;) > > This may not be necessary, the harness runs fsck after each > test anyway. =A0On a large filesystem this could take a pretty > long time if you run fsck 6 times. =A0I'd just drop > this and let the post-test-fsck catch any problems. Removed. ---------------------------------------------------------------------------= ------------ Updated patch: ---------------------------------------------------------------------------= ------------ >From f1e8df788e4b93ae33e01c48a859f2b21c425357 Mon Sep 17 00:00:00 2001 From: Akshay Lal Date: Fri, 27 Aug 2010 13:14:18 -0700 Subject: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correct= ly. As found by Theodore Ts'o: If a 128K file is falloc'ed using the KEEP_SIZE flag, and then write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. This forces e2fsck to complain about that inode. Bug reference: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 --- 243 | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 243.out | 13 +++++ group | 1 + 3 files changed, 171 insertions(+), 0 deletions(-) create mode 100644 243 create mode 100644 243.out diff --git a/243 b/243 new file mode 100644 index 0000000..804513f --- /dev/null +++ b/243 @@ -0,0 +1,157 @@ +#! /bin/bash +# FS QA Test No. 243 +# +# Test to ensure that the EOFBLOCK_FL gets set/unset correctly. +# +# As found by Theodore Ts'o: +# If a 128K file is falloc'ed using the KEEP_SIZE flag, and then +# write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. +# This forces e2fsck to complain about that inode. +# +# Ref: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 +# +# creator +owner=3Dalal@google.com + +seq=3D`basename $0` +echo "QA output created by $seq" + +here=3D`pwd` +tmp=3D/tmp/$$ +status=3D1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# Test specific macros. +BIT_NOT_SET=3D0 # inode flag - 0x40000 bit is not set. +BIT_SET=3D1 # inode flag - 0x400000 bit is set. + +# Generic test cleanup function. +_cleanup() +{ + cd / + rm -f $tmp.* +} + +# Ext4 uses the EOFBLOCKS_FL bit when fallocating blocks with KEEP_SIZE +# enabled. The only time this bit should be set is when extending the allo= cated +# blocks further than what the i_size represents. In the situations wherei= n the +# i_size covers all allocated blocks, this bit should be cleared. + +# Checks the state of the sample file in the filesystem and returns whethe= r +# the inode flag 0x400000 is set or not. +_check_ext4_eof_flag() +{ + bit_set=3D1 + + # Check whether EOFBLOCK_FL is set. + if [ "${FSTYP}" =3D=3D "ext4" ]; then + # Unmount the ${TEST_DEV} + umount ${TEST_DEV} + + # Run debugfs to gather file_parameters - specifically iflags. + file_params=3D`debugfs ${TEST_DEV} -R "stat ${1}" 2>&1 | grep -e F= lags:` + iflags=3D${file_params#*Flags: } + + # Ensure that the iflags value was parsed correctly. + if [ -z ${iflags} ]; then + echo "iFlags value was not parsed successfully." >> $seq.f= ull + status=3D1 + exit ${status} + fi + + # Check if EOFBLOCKS_FL is set. + if ((${iflags} & 0x400000)); then + echo "EOFBLOCK_FL bit is set." >> $seq.full + bit_set=3D1 + else + echo "EOFBLOCK_FL bit is not set." >> $seq.full + bit_set=3D0 + fi + + # Check current bit state to expected value. + if [ ${bit_set} -ne ${2} ]; then + echo "Error: Current bit state incorrect." >> $seq.full + exit ${status} + fi + + # Mount the ${TEST_DEV} + mount ${TEST_DEV} -t ${FSTYP} ${TEST_DIR} + else + echo "Only EXT4 filesystems supported." >> $seq.full + status=3D1 + exit ${status} + fi +} + +# Get standard environment, filters and checks. +. ./common.rc +. ./common.filter + +# Prerequisites for the test run. +_supported_fs generic +_supported_os Linux +_require_xfs_io_falloc + +# Real QA test starts here. +rm -f $seq.full + +# Begin test cases. + +# Using FALLOC_FL_KEEP_SIZE +# Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). +echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." \ + >> $seq.full +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 4096' \ + ${TEST_DIR}/test_1 | _filter_xfs_io_unique +_check_ext4_eof_flag test_1 ${BIT_SET} + +# Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). +echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." \ + >> $seq.full +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 4096' \ + ${TEST_DIR}/test_2 | _filter_xfs_io_unique +_check_ext4_eof_flag test_2 ${BIT_SET} + +# Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). +echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." = \ + >> $seq.full +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 40960' \ + ${TEST_DIR}/test_3 | _filter_xfs_io_unique +_check_ext4_eof_flag test_3 ${BIT_NOT_SET} + +# Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). +echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." \ + >> $seq.full +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 40960' \ + ${TEST_DIR}/test_4 | _filter_xfs_io_unique +_check_ext4_eof_flag test_4 ${BIT_NOT_SET} + +# Test 5: Fallocate 128k, seek 256k and write 4k block (buffered io). +echo "Test 5: Fallocate 128k, seek 256k and write 4k block (buffered io)."= \ + >> $seq.full +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 128k' \ + -c 'pwrite 256k 4k' \ + ${TEST_DIR}/test_5 | _filter_xfs_io_unique +_check_ext4_eof_flag test_5 ${BIT_NOT_SET} + +# Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). +echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io= )." \ + >> $seq.full +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 128k' \ + -c 'pwrite 256k 4k' \ + ${TEST_DIR}/test_6 | _filter_xfs_io_unique +_check_ext4_eof_flag test_6 ${BIT_NOT_SET} + + +status=3D0 +exit ${status} diff --git a/243.out b/243.out new file mode 100644 index 0000000..290a005 --- /dev/null +++ b/243.out @@ -0,0 +1,13 @@ +QA output created by 243 +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 40960/40960 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 40960/40960 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 4096/4096 bytes at offset 262144 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 4096/4096 bytes at offset 262144 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) diff --git a/group b/group index ff16bb3..e6dab13 100644 --- a/group +++ b/group @@ -356,3 +356,4 @@ deprecated 240 auto aio quick rw 241 auto 242 auto quick prealloc +243 auto quick prealloc --=20 1.7.1 From sandeen@sandeen.net Fri Aug 27 18:23:19 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RNNIXU116884 for ; Fri, 27 Aug 2010 18:23:19 -0500 X-ASG-Debug-ID: 1282951433-63ca00570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 85AE81782ED7 for ; Fri, 27 Aug 2010 16:23:53 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id GH5GEIuaal7UnXjq for ; Fri, 27 Aug 2010 16:23:53 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 2CB7C480E2D3; Fri, 27 Aug 2010 18:23:53 -0500 (CDT) Message-ID: <4C784908.30802@sandeen.net> Date: Fri, 27 Aug 2010 18:23:52 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: alal@google.com CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. References: <1282941224-5805-1-git-send-email-alal@google.com> <4C783305.5060506@sandeen.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1282951434 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39219 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Akshay Lal wrote: >>> +# Test specific macros. >>> +BIT_NOT_SET=0 # inode flag - 0x40000 bit is set. >>> +BIT_SET=1 # inode flag - 0x400000 bit is not set. >> I'm thinking one of the values in the comment is not right :) > Duh. Thats silly of me. > Done. > >>> +# Checks the state of the sample file in the filesystem and returns whether >>> +# the inode flag 0x400000 is set or not. >> I guess a little more comment here about why we do this only for ext4 might >> be good. >> >> Just to make it more obvious in the main test could you maybe call >> it something like _check_ext4_eof_flag() ? If we ever need to do >> testing on other filesystems we can adjust it. > Done. > > >>> + if ((${iflags} & 0x400000)); then >>> + echo "EOFBLOCK_FL bit is set." >> This will cause the test to fail on anything but ext4 because >> it's expected in the output but only happens for ext4... >> >> You could redirect it into $seq.full, just to have it for analysis >> if the test ever fails. > I've added an else condition to exit the test with the error message > that the test is only > supported on ext4 filesystems. If you only want to run on ext4, just set _supported_fs ext4 but I think the test is fine to run on other filesystems, it exercises some boundary conditions, it just doesn't do the low-level testing for other filesystems. But that's ok, it's a regression test specifically for ext4 which can be sanity-checked on other filesystems. I'd prefer to keep it a generic test, and only do the low-level debugfs checks for ext4.... More below. > I've also redirected all echo messages to $seq.full > > >>> + # Run fsck on the fs. fsck -t ${FSTYP} -fn ${TEST_DEV}. >>> + _check_test_fs >> Ah now I see why you didn't call it _check_ext4_eof_flag() ;) >> >> This may not be necessary, the harness runs fsck after each >> test anyway. On a large filesystem this could take a pretty >> long time if you run fsck 6 times. I'd just drop >> this and let the post-test-fsck catch any problems. > Removed. > > --------------------------------------------------------------------------------------- > Updated patch: > --------------------------------------------------------------------------------------- > > From f1e8df788e4b93ae33e01c48a859f2b21c425357 Mon Sep 17 00:00:00 2001 > From: Akshay Lal > Date: Fri, 27 Aug 2010 13:14:18 -0700 > Subject: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. > As found by Theodore Ts'o: > If a 128K file is falloc'ed using the KEEP_SIZE flag, and then > write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. > This forces e2fsck to complain about that inode. > > Bug reference: > http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 > --- > 243 | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 243.out | 13 +++++ > group | 1 + > 3 files changed, 171 insertions(+), 0 deletions(-) > create mode 100644 243 > create mode 100644 243.out > > diff --git a/243 b/243 > new file mode 100644 > index 0000000..804513f > --- /dev/null > +++ b/243 > @@ -0,0 +1,157 @@ > +#! /bin/bash > +# FS QA Test No. 243 > +# > +# Test to ensure that the EOFBLOCK_FL gets set/unset correctly. > +# > +# As found by Theodore Ts'o: > +# If a 128K file is falloc'ed using the KEEP_SIZE flag, and then > +# write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. > +# This forces e2fsck to complain about that inode. > +# > +# Ref: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 > +# > +# creator > +owner=alal@google.com > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +# Test specific macros. > +BIT_NOT_SET=0 # inode flag - 0x40000 bit is not set. > +BIT_SET=1 # inode flag - 0x400000 bit is set. still different ;) > + > +# Generic test cleanup function. > +_cleanup() > +{ > + cd / > + rm -f $tmp.* > +} > + > +# Ext4 uses the EOFBLOCKS_FL bit when fallocating blocks with KEEP_SIZE > +# enabled. The only time this bit should be set is when extending the allocated > +# blocks further than what the i_size represents. In the situations wherein the > +# i_size covers all allocated blocks, this bit should be cleared. > + > +# Checks the state of the sample file in the filesystem and returns whether > +# the inode flag 0x400000 is set or not. > +_check_ext4_eof_flag() > +{ > + bit_set=1 > + > + # Check whether EOFBLOCK_FL is set. > + if [ "${FSTYP}" == "ext4" ]; then > + # Unmount the ${TEST_DEV} > + umount ${TEST_DEV} > + > + # Run debugfs to gather file_parameters - specifically iflags. > + file_params=`debugfs ${TEST_DEV} -R "stat ${1}" 2>&1 | grep -e Flags:` > + iflags=${file_params#*Flags: } > + > + # Ensure that the iflags value was parsed correctly. > + if [ -z ${iflags} ]; then > + echo "iFlags value was not parsed successfully." >> $seq.full > + status=1 > + exit ${status} > + fi > + > + # Check if EOFBLOCKS_FL is set. > + if ((${iflags} & 0x400000)); then > + echo "EOFBLOCK_FL bit is set." >> $seq.full > + bit_set=1 > + else > + echo "EOFBLOCK_FL bit is not set." >> $seq.full > + bit_set=0 > + fi > + > + # Check current bit state to expected value. > + if [ ${bit_set} -ne ${2} ]; then > + echo "Error: Current bit state incorrect." >> $seq.full > + exit ${status} > + fi > + > + # Mount the ${TEST_DEV} > + mount ${TEST_DEV} -t ${FSTYP} ${TEST_DIR} > + else > + echo "Only EXT4 filesystems supported." >> $seq.full > + status=1 > + exit ${status} this will make it -fail- on other filesystems, at worst we want to not run, but in reality we can just skip the debugfs steps for non-ext4 and do the quick checks on other filesystems, with the built-in fsck backing us up. So I'd just say "if not ext4 return" and then let the rest of the function do the ext4 checking. (FYI if/when you ever do want to bail like above, you can either: _notrun "Sorry, Dave, I'm afraid I can't do that" or _fail "Something terrible has gone wrong!" and the user will see the results during the test run and get the right test status) > + fi > +} > + > +# Get standard environment, filters and checks. > +. ./common.rc > +. ./common.filter > + > +# Prerequisites for the test run. > +_supported_fs generic so you have "generic" supported but it fails on non-ext4 now ;) Really you probably want to have: _supported_fs ext4 xfs btrfs gfs2 since those are the ones which support preallocation. (sorry, I didn't catch that the first time) -Eric > +_supported_os Linux > +_require_xfs_io_falloc > + > +# Real QA test starts here. > +rm -f $seq.full > + > +# Begin test cases. > + > +# Using FALLOC_FL_KEEP_SIZE > +# Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). > +echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." \ > + >> $seq.full > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 4096' \ > + ${TEST_DIR}/test_1 | _filter_xfs_io_unique > +_check_ext4_eof_flag test_1 ${BIT_SET} > + > +# Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). > +echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." \ > + >> $seq.full > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 4096' \ > + ${TEST_DIR}/test_2 | _filter_xfs_io_unique > +_check_ext4_eof_flag test_2 ${BIT_SET} > + > +# Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). > +echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." \ > + >> $seq.full > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 40960' \ > + ${TEST_DIR}/test_3 | _filter_xfs_io_unique > +_check_ext4_eof_flag test_3 ${BIT_NOT_SET} > + > +# Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). > +echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." \ > + >> $seq.full > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 40960' \ > + ${TEST_DIR}/test_4 | _filter_xfs_io_unique > +_check_ext4_eof_flag test_4 ${BIT_NOT_SET} > + > +# Test 5: Fallocate 128k, seek 256k and write 4k block (buffered io). > +echo "Test 5: Fallocate 128k, seek 256k and write 4k block (buffered io)." \ > + >> $seq.full > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 128k' \ > + -c 'pwrite 256k 4k' \ > + ${TEST_DIR}/test_5 | _filter_xfs_io_unique > +_check_ext4_eof_flag test_5 ${BIT_NOT_SET} > + > +# Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). > +echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io)." \ > + >> $seq.full > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 128k' \ > + -c 'pwrite 256k 4k' \ > + ${TEST_DIR}/test_6 | _filter_xfs_io_unique > +_check_ext4_eof_flag test_6 ${BIT_NOT_SET} > + > + > +status=0 > +exit ${status} > diff --git a/243.out b/243.out > new file mode 100644 > index 0000000..290a005 > --- /dev/null > +++ b/243.out > @@ -0,0 +1,13 @@ > +QA output created by 243 > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +wrote 40960/40960 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +wrote 40960/40960 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +wrote 4096/4096 bytes at offset 262144 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +wrote 4096/4096 bytes at offset 262144 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > diff --git a/group b/group > index ff16bb3..e6dab13 100644 > --- a/group > +++ b/group > @@ -356,3 +356,4 @@ deprecated > 240 auto aio quick rw > 241 auto > 242 auto quick prealloc > +243 auto quick prealloc From SRS0+Wjs6+88+fromorbit.com=david@internode.on.net Fri Aug 27 18:31:46 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7RNVk3O117136 for ; Fri, 27 Aug 2010 18:31:46 -0500 X-ASG-Debug-ID: 1282951939-3328030f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B3F791782F39 for ; Fri, 27 Aug 2010 16:32:20 -0700 (PDT) Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id 2LgV0xamMCFVXlfB for ; Fri, 27 Aug 2010 16:32:20 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36721587-1927428 for multiple; Sat, 28 Aug 2010 09:02:18 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Op8PA-0003PE-J4; Sat, 28 Aug 2010 09:32:16 +1000 Date: Sat, 28 Aug 2010 09:32:16 +1000 From: Dave Chinner To: Akshay Lal Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. As found by Theodore Ts'o: If a 128K file is falloc'ed using the KEEP_SIZE flag, and then write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. This forces e2fsck to complain about that inode. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. As found by Theodore Ts'o: If a 128K file is falloc'ed using the KEEP_SIZE flag, and then write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. This forces e2fsck to complain about that inode. Message-ID: <20100827233216.GJ705@dastard> References: <1282941224-5805-1-git-send-email-alal@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1282941224-5805-1-git-send-email-alal@google.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104] X-Barracuda-Start-Time: 1282951941 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39219 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 27, 2010 at 01:33:44PM -0700, Akshay Lal wrote: > Bug reference: > http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 The test looks good - a few minor things, though. Firstly Can you add a brief description rather than just a URL as this forms the commit message? > --- > 243 | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 243.out | 25 +++++++++++ > group | 1 + > 3 files changed, 171 insertions(+), 0 deletions(-) > create mode 100644 243 > create mode 100644 243.out > > diff --git a/243 b/243 > new file mode 100644 > index 0000000..8102f24 > --- /dev/null > +++ b/243 > @@ -0,0 +1,145 @@ > +#! /bin/bash > +# FS QA Test No. 243 > +# > +# Test to ensure that the EOFBLOCK_FL gets set/unset correctly. > +# > +# As found by Theodore Ts'o: > +# If a 128K file is falloc'ed using the KEEP_SIZE flag, and then > +# write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. > +# This forces e2fsck to complain about that inode. > +# > +# creator Please retain the GPL license text here as per the new test template and all other tests. > +owner=alal@google.com > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +# Test specific macros. > +BIT_NOT_SET=0 # inode flag - 0x40000 bit is set. > +BIT_SET=1 # inode flag - 0x400000 bit is not set. > + > +# Generic test cleanup function. > +_cleanup() > +{ > + cd / > + rm -f $tmp.* > +} > + > +# Checks the state of the sample file in the filesystem and returns whether > +# the inode flag 0x400000 is set or not. > +_check_file_state() > +{ > + bit_set=1 > + > + # Check whether EOFBLOCK_FL is set. > + if [ "${FSTYP}" == "ext4" ]; then > + # Unmount the ${TEST_DEV} > + umount ${TEST_DEV} > + > + # Run debugfs to gather file_parameters - specifically iflags. > + file_params=`debugfs ${TEST_DEV} -R "stat ${1}" 2>&1 | grep -e Flags:` > + iflags=${file_params#*Flags: } > + > + # Ensure that the iflags value was parsed correctly. > + if [ -z ${iflags} ]; then > + echo "iFlags value was not parsed successfully." > + status=1 > + exit ${status} > + fi > + > + if ((${iflags} & 0x400000)); then > + echo "EOFBLOCK_FL bit is set." > + bit_set=1 > + else > + echo "EOFBLOCK_FL bit is not set." > + bit_set=0 > + fi > + > + # Check current bit state to expected value. > + if [ ${bit_set} -ne ${2} ]; then > + echo "Error: Current bit state incorrect." > + exit ${status} That needs to be: status=1 exit For the cleanup trap to set the exit status correctly. > + fi > + > + # Mount the ${TEST_DEV} > + mount ${TEST_DEV} -t ${FSTYP} ${TEST_DIR} > + else > + # Run fsck on the fs. fsck -t ${FSTYP} -fn ${TEST_DEV}. > + _check_test_fs > + fi > + > + # Remove test file > + rm -f ${TEST_DIR}/${1} > +} > + > +# Get standard environment, filters and checks. > +. ./common.rc > +. ./common.filter > + > +# Prerequisites for the test run. > +_supported_fs generic I'm not sure this really is a generic test - it's testing an ext4 specific bug. We've got other generic tests that exercise fallocate, and some filesystems (like XFS) don't have special bits to say there are extents beyond EOF and checking a filesystem repeated won't report any problems. So perhaps if should be '_supported_fs ext4' > +_supported_os Linux > +_require_xfs_io_falloc > + > +# Real QA test starts here. > +rm -f $seq.full > + > +# Begin test cases. > + > +# Using FALLOC_FL_KEEP_SIZE > +# Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). > +echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." No need for the comment and the echo. Just remove the comments. > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 4096' \ > + ${TEST_DIR}/test_1 | _filter_xfs_io_unique > +_check_file_state test_1 ${BIT_SET} > + > +# Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). > +echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 4096' \ > + ${TEST_DIR}/test_2 | _filter_xfs_io_unique > +_check_file_state test_2 ${BIT_SET} > + > +# Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). > +echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 40960' \ > + ${TEST_DIR}/test_3 | _filter_xfs_io_unique > +_check_file_state test_3 ${BIT_NOT_SET} > + > +# Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). > +echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 40960' \ > + -c 'pwrite 0 40960' \ > + ${TEST_DIR}/test_4 | _filter_xfs_io_unique > +_check_file_state test_4 ${BIT_NOT_SET} > + > +# Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io). > +echo "Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io)." > +${XFS_IO_PROG} -F -f \ > + -c 'falloc -k 0 128k' \ > + -c 'pwrite 256k 4k' \ > + ${TEST_DIR}/test_5 | _filter_xfs_io_unique > +_check_file_state test_5 ${BIT_NOT_SET} > + > +# Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). > +echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io)." > +${XFS_IO_PROG} -F -f -d \ > + -c 'falloc -k 0 128k' \ > + -c 'pwrite 256k 4k' \ > + ${TEST_DIR}/test_6 | _filter_xfs_io_unique > +_check_file_state test_6 ${BIT_NOT_SET} > + > + > +status=0 > +exit ${status} > diff --git a/243.out b/243.out > new file mode 100644 > index 0000000..35583e8 > --- /dev/null > +++ b/243.out > @@ -0,0 +1,25 @@ > +QA output created by 243 > +Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io). > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io). > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io). > +wrote 40960/40960 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io). > +wrote 40960/40960 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is set. > +Test 5: Fallocate 128k, seek to 256k and write a 4k block (buffered io). > +wrote 4096/4096 bytes at offset 262144 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is not set. > +Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io). > +wrote 4096/4096 bytes at offset 262144 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +EOFBLOCK_FL bit is not set. > diff --git a/group b/group > index ff16bb3..e6dab13 100644 > --- a/group > +++ b/group > @@ -356,3 +356,4 @@ deprecated > 240 auto aio quick rw > 241 auto > 242 auto quick prealloc > +243 auto quick prealloc > -- > 1.7.1 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Fri Aug 27 19:02:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7S02vJQ118061 for ; Fri, 27 Aug 2010 19:02:57 -0500 X-ASG-Debug-ID: 1282953812-670201b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7AF831E57292 for ; Fri, 27 Aug 2010 17:03:33 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id WdMAySFGaJgCrbs1 for ; Fri, 27 Aug 2010 17:03:33 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 67F304966B79; Fri, 27 Aug 2010 19:03:32 -0500 (CDT) Message-ID: <4C785254.2020708@sandeen.net> Date: Fri, 27 Aug 2010 19:03:32 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Dave Chinner CC: Akshay Lal , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. References: <1282941224-5805-1-git-send-email-alal@google.com> <20100827233216.GJ705@dastard> In-Reply-To: <20100827233216.GJ705@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1282953813 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > I'm not sure this really is a generic test - it's testing an ext4 > specific bug. We've got other generic tests that exercise fallocate, > and some filesystems (like XFS) don't have special bits to say there > are extents beyond EOF and checking a filesystem repeated won't > report any problems. So perhaps if should be '_supported_fs ext4' Oops we're giving conflicting advice :) I thought a test that exercises blocks-past-eof-filling at various boundaries made sense in general, even if the specific regression test is ext4-specific. Seems like at least ocfs2/btrfs might benefit from the basic exercise, so I was recommending that it be generic. I don't think there is any other test that makes a point of allocating X blocks past eof and then filling them exactly, overwriting/extending past them, etc. Seems like a good addition in general. -Eric From SRS0+t2p5+89+fromorbit.com=david@internode.on.net Fri Aug 27 19:16:31 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7S0GVww118604 for ; Fri, 27 Aug 2010 19:16:31 -0500 X-ASG-Debug-ID: 1282954626-553b00f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 162952F57D for ; Fri, 27 Aug 2010 17:17:06 -0700 (PDT) Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id R5SFJm1J6VNJpDMf for ; Fri, 27 Aug 2010 17:17:06 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 36894423-1927428 for multiple; Sat, 28 Aug 2010 09:47:05 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Op96V-0003S4-Qw; Sat, 28 Aug 2010 10:17:03 +1000 Date: Sat, 28 Aug 2010 10:17:03 +1000 From: Dave Chinner To: Eric Sandeen Cc: Akshay Lal , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Message-ID: <20100828001703.GK705@dastard> References: <1282941224-5805-1-git-send-email-alal@google.com> <20100827233216.GJ705@dastard> <4C785254.2020708@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C785254.2020708@sandeen.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97] X-Barracuda-Start-Time: 1282954628 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Aug 27, 2010 at 07:03:32PM -0500, Eric Sandeen wrote: > Dave Chinner wrote: > > > I'm not sure this really is a generic test - it's testing an ext4 > > specific bug. We've got other generic tests that exercise fallocate, > > and some filesystems (like XFS) don't have special bits to say there > > are extents beyond EOF and checking a filesystem repeated won't > > report any problems. So perhaps if should be '_supported_fs ext4' > > > Oops we're giving conflicting advice :) I thought a test that > exercises blocks-past-eof-filling at various boundaries made > sense in general, even if the specific regression test is ext4-specific. > > Seems like at least ocfs2/btrfs might benefit from the basic exercise, > so I was recommending that it be generic. Ok, that seems reasonable. If the bug results in filesystem corruption, then maybe just relying on the check at the end of the test to fail it would be appropriate? Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Fri Aug 27 19:23:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7S0NBZh118797 for ; Fri, 27 Aug 2010 19:23:12 -0500 X-ASG-Debug-ID: 1282955027-4c14018a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 79BD72F375 for ; Fri, 27 Aug 2010 17:23:48 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id LP6OZOD8b3RJwklR for ; Fri, 27 Aug 2010 17:23:48 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 3868B4966B79; Fri, 27 Aug 2010 19:23:44 -0500 (CDT) Message-ID: <4C785710.9070405@sandeen.net> Date: Fri, 27 Aug 2010 19:23:44 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Dave Chinner CC: Akshay Lal , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. References: <1282941224-5805-1-git-send-email-alal@google.com> <20100827233216.GJ705@dastard> <4C785254.2020708@sandeen.net> <20100828001703.GK705@dastard> In-Reply-To: <20100828001703.GK705@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1282955028 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39223 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > On Fri, Aug 27, 2010 at 07:03:32PM -0500, Eric Sandeen wrote: >> Dave Chinner wrote: >> >>> I'm not sure this really is a generic test - it's testing an ext4 >>> specific bug. We've got other generic tests that exercise fallocate, >>> and some filesystems (like XFS) don't have special bits to say there >>> are extents beyond EOF and checking a filesystem repeated won't >>> report any problems. So perhaps if should be '_supported_fs ext4' >> >> Oops we're giving conflicting advice :) I thought a test that >> exercises blocks-past-eof-filling at various boundaries made >> sense in general, even if the specific regression test is ext4-specific. >> >> Seems like at least ocfs2/btrfs might benefit from the basic exercise, >> so I was recommending that it be generic. > > Ok, that seems reasonable. If the bug results in filesystem > corruption, then maybe just relying on the check at the end of the > test to fail it would be appropriate? That's fine by me, if e2fsck will squawk, that's enough. -Eric > Cheers, > > Dave. From arekm@maven.pl Sat Aug 28 03:44:14 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_46, J_CHICKENPOX_47,J_CHICKENPOX_61,J_CHICKENPOX_75,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7S8iDo7141603 for ; Sat, 28 Aug 2010 03:44:13 -0500 X-ASG-Debug-ID: 1282985698-78e5030e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B692314E0CE3 for ; Sat, 28 Aug 2010 01:54:58 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id oNDEDHvtDEc0hwME for ; Sat, 28 Aug 2010 01:54:58 -0700 (PDT) Received: from chello087207113141.chello.pl ([87.207.113.141]:43710 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1OpH1p-000764-R6; Sat, 28 Aug 2010 10:44:45 +0200 Received: from arekm by tarm.maven.pl with local (Exim 4.72) (envelope-from ) id 1OpH1p-0007Zs-5T; Sat, 28 Aug 2010 10:44:45 +0200 From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= X-ASG-Orig-Subj: [PATCH] xfsprogs: projid32bit handling Subject: [PATCH] xfsprogs: projid32bit handling Date: Sat, 28 Aug 2010 10:44:43 +0200 Message-Id: <1282985083-29061-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 1.7.2.2 In-Reply-To: <1282948798-12622-1-git-send-email-arekm@maven.pl> References: <1282948798-12622-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1282985700 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39250 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Add projid32bit handling to userspace. Userspace xfs_get/set_projid helpers operate on struct xfs_icdinode instead of struct xfs_inode as it fits better for userspace. Signed-off-by: Arkadiusz Miśkiewicz --- db/check.c | 2 +- db/inode.c | 6 ++++-- db/sb.c | 6 ++++++ include/xfs_dinode.h | 5 +++-- include/xfs_fs.h | 5 +++-- include/xfs_inode.h | 23 ++++++++++++++++++++--- include/xfs_sb.h | 16 +++++++++++++++- include/xfs_types.h | 2 -- libxfs/util.c | 13 ++++++++----- libxfs/xfs_ialloc.c | 3 ++- libxfs/xfs_inode.c | 6 ++++-- logprint/log_print_all.c | 6 ++++-- man/man3/xfsctl.3 | 6 ++++-- man/man8/xfs_db.8 | 6 ++++-- mkfs/xfs_mkfs.c | 18 +++++++++++++++--- mkfs/xfs_mkfs.h | 3 ++- quota/quot.c | 3 ++- repair/README | 2 +- 18 files changed, 98 insertions(+), 33 deletions(-) diff --git a/db/check.c b/db/check.c index 4f8a62a..a8939a4 100644 --- a/db/check.c +++ b/db/check.c @@ -2840,7 +2840,7 @@ process_inode( break; } if (ic) { - dqprid = idic.di_projid; /* dquot ID is u32 */ + dqprid = xfs_get_projid(idic); /* dquot ID is u32 */ quota_add(&dqprid, &idic.di_gid, &idic.di_uid, 0, bc, ic, rc); } diff --git a/db/inode.c b/db/inode.c index 4aa4e1a..6f8592a 100644 --- a/db/inode.c +++ b/db/inode.c @@ -81,8 +81,10 @@ const field_t inode_core_flds[] = { FLD_COUNT, TYP_NONE }, { "onlink", FLDT_UINT16D, OI(COFF(onlink)), inode_core_onlink_count, FLD_COUNT, TYP_NONE }, - { "projid", FLDT_UINT16D, OI(COFF(projid)), inode_core_projid_count, - FLD_COUNT, TYP_NONE }, + { "projid_lo", FLDT_UINT16D, OI(COFF(projid_lo)), + inode_core_projid_count, FLD_COUNT, TYP_NONE }, + { "projid_hi", FLDT_UINT16D, OI(COFF(projid_hi)), + inode_core_projid_count, FLD_COUNT, TYP_NONE }, { "uid", FLDT_UINT32D, OI(COFF(uid)), C1, 0, TYP_NONE }, { "gid", FLDT_UINT32D, OI(COFF(gid)), C1, 0, TYP_NONE }, { "flushiter", FLDT_UINT16D, OI(COFF(flushiter)), C1, 0, TYP_NONE }, diff --git a/db/sb.c b/db/sb.c index 961a939..21f38c5 100644 --- a/db/sb.c +++ b/db/sb.c @@ -620,6 +620,8 @@ version_string( strcat(s, ",ATTR2"); if (xfs_sb_version_haslazysbcount(sbp)) strcat(s, ",LAZYSBCOUNT"); + if (xfs_sb_version_hasprojid32bit(sbp)) + strcat(s, ",PROJID32BIT"); return s; } @@ -696,6 +698,10 @@ version_f( xfs_sb_version_addattr2(&mp->m_sb); version = mp->m_sb.sb_versionnum; features = mp->m_sb.sb_features2; + } else if (!strcasecmp(argv[1], "projid32bit")) { + xfs_sb_version_addprojid32bit(&mp->m_sb); + version = mp->m_sb.sb_versionnum; + features = mp->m_sb.sb_features2; } else { dbprintf(_("%s: invalid version change command \"%s\"\n"), progname, argv[1]); diff --git a/include/xfs_dinode.h b/include/xfs_dinode.h index d7cf392..f28c088 100644 --- a/include/xfs_dinode.h +++ b/include/xfs_dinode.h @@ -52,8 +52,9 @@ typedef struct xfs_dinode_core { __be32 di_uid; /* owner's user id */ __be32 di_gid; /* owner's group id */ __be32 di_nlink; /* number of links to file */ - __be16 di_projid; /* owner's project id */ - __u8 di_pad[8]; /* unused, zeroed space */ + __be16 di_projid_lo; /* lower part of owner's project id */ + __be16 di_projid_hi; /* higher part owner's project id */ + __u8 di_pad[6]; /* unused, zeroed space */ __be16 di_flushiter; /* incremented on flush */ xfs_timestamp_t di_atime; /* time last accessed */ xfs_timestamp_t di_mtime; /* time last modified */ diff --git a/include/xfs_fs.h b/include/xfs_fs.h index 74e7274..e36a5f1 100644 --- a/include/xfs_fs.h +++ b/include/xfs_fs.h @@ -299,9 +299,10 @@ typedef struct xfs_bstat { __s32 bs_extsize; /* extent size */ __s32 bs_extents; /* number of extents */ __u32 bs_gen; /* generation count */ - __u16 bs_projid; /* project id */ + __u16 bs_projid_lo; /* lower part of project id */ __u16 bs_forkoff; /* inode fork offset in bytes */ - unsigned char bs_pad[12]; /* pad space, unused */ + __u16 bs_projid_hi; /* higher part of project id */ + unsigned char bs_pad[10]; /* pad space, unused */ __u32 bs_dmevmask; /* DMIG event mask */ __u16 bs_dmstate; /* DMIG state info */ __u16 bs_aextents; /* attribute number of extents */ diff --git a/include/xfs_inode.h b/include/xfs_inode.h index b19b467..49f2524 100644 --- a/include/xfs_inode.h +++ b/include/xfs_inode.h @@ -124,8 +124,9 @@ typedef struct xfs_icdinode { __uint32_t di_uid; /* owner's user id */ __uint32_t di_gid; /* owner's group id */ __uint32_t di_nlink; /* number of links to file */ - __uint16_t di_projid; /* owner's project id */ - __uint8_t di_pad[8]; /* unused, zeroed space */ + __uint16_t di_projid_lo; /* lower part of owner's project id */ + __uint16_t di_projid_hi; /* higher part of owner's project id */ + __uint8_t di_pad[6]; /* unused, zeroed space */ __uint16_t di_flushiter; /* incremented on flush */ xfs_ictimestamp_t di_atime; /* time last accessed */ xfs_ictimestamp_t di_mtime; /* time last modified */ @@ -204,6 +205,22 @@ typedef struct xfs_icdinode { ((ip)->i_d.di_anextents = (n))) +/* + * Project quota id helpers (userspace) + */ +static inline __uint32_t +xfs_get_projid(xfs_icdinode_t i_d) +{ + return (__uint32_t)(i_d.di_projid_hi) << 16 | i_d.di_projid_lo; +} + +static inline void +xfs_set_projid(xfs_icdinode_t *i_d, + __uint32_t projid) +{ + i_d->di_projid_hi = (__uint16_t) (projid >> 16); + i_d->di_projid_lo = (__uint16_t) (projid & 0xffff); +} #ifdef __KERNEL__ @@ -510,7 +527,7 @@ int xfs_finish_reclaim_all(struct xfs_mount *, int); int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, xfs_inode_t **, xfs_daddr_t, uint); int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, - xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t, + xfs_nlink_t, xfs_dev_t, struct cred *, prid_t, int, struct xfs_buf **, boolean_t *, xfs_inode_t **); uint xfs_ip2xflags(struct xfs_inode *); diff --git a/include/xfs_sb.h b/include/xfs_sb.h index 1e86489..a0126dd 100644 --- a/include/xfs_sb.h +++ b/include/xfs_sb.h @@ -80,10 +80,12 @@ struct xfs_mount; #define XFS_SB_VERSION2_RESERVED4BIT 0x00000004 #define XFS_SB_VERSION2_ATTR2BIT 0x00000008 /* Inline attr rework */ #define XFS_SB_VERSION2_PARENTBIT 0x00000010 /* parent pointers */ +#define XFS_SB_VERSION2_PROJID32BIT 0x00000020 /* 32 bit project id */ #define XFS_SB_VERSION2_OKREALFBITS \ (XFS_SB_VERSION2_LAZYSBCOUNTBIT | \ - XFS_SB_VERSION2_ATTR2BIT) + XFS_SB_VERSION2_ATTR2BIT | \ + XFS_SB_VERSION2_PROJID32BIT) #define XFS_SB_VERSION2_OKSASHFBITS \ (0) #define XFS_SB_VERSION2_OKREALBITS \ @@ -489,6 +491,18 @@ static inline void xfs_sb_version_removeattr2(xfs_sb_t *sbp) sbp->sb_versionnum &= ~XFS_SB_VERSION_MOREBITSBIT; } +static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp) +{ + return xfs_sb_version_hasmorebits(sbp) && + (sbp->sb_features2 & XFS_SB_VERSION2_PROJID32BIT); +} + +static inline void xfs_sb_version_addprojid32bit(xfs_sb_t *sbp) +{ + sbp->sb_versionnum |= XFS_SB_VERSION_MOREBITSBIT; + sbp->sb_features2 |= XFS_SB_VERSION2_PROJID32BIT; +} + /* * end of superblock version macros */ diff --git a/include/xfs_types.h b/include/xfs_types.h index 0f51916..228b948 100644 --- a/include/xfs_types.h +++ b/include/xfs_types.h @@ -81,8 +81,6 @@ typedef __int32_t xfs_tid_t; /* transaction identifier */ typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */ -typedef __uint16_t xfs_prid_t; /* prid_t truncated to 16bits in XFS */ - /* * These types are 64 bits on disk but are either 32 or 64 bits in memory. * Disk based types: diff --git a/libxfs/util.c b/libxfs/util.c index 409fb92..077d2a2 100644 --- a/libxfs/util.c +++ b/libxfs/util.c @@ -134,7 +134,7 @@ libxfs_iread( * made it 32 bits long. If this is an old format inode, * convert it in memory to look like a new one. If it gets * flushed to disk we will convert back before flushing or - * logging it. We zero out the new projid field and the old link + * logging it. We zero out the new projid_lo/hi field and the old link * count field. We'll handle clearing the pad field (the remains * of the old uuid field) when we actually convert the inode to * the new format. We don't change the version number so that we @@ -143,7 +143,7 @@ libxfs_iread( if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { ip->i_d.di_nlink = ip->i_d.di_onlink; ip->i_d.di_onlink = 0; - ip->i_d.di_projid = 0; + xfs_set_projid(&ip->i_d, 0); } ip->i_delayed_blks = 0; @@ -219,7 +219,7 @@ libxfs_ialloc( ASSERT(ip->i_d.di_nlink == nlink); ip->i_d.di_uid = cr->cr_uid; ip->i_d.di_gid = cr->cr_gid; - ip->i_d.di_projid = pip ? 0 : fsx->fsx_projid; + xfs_set_projid(&ip->i_d, pip ? 0 : fsx->fsx_projid); memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); /* @@ -231,7 +231,10 @@ libxfs_ialloc( if (xfs_sb_version_hasnlink(&tp->t_mountp->m_sb) && ip->i_d.di_version == XFS_DINODE_VERSION_1) { ip->i_d.di_version = XFS_DINODE_VERSION_2; - /* old link count, projid field, pad field already zeroed */ + /* + * old link count, projid_lo/hi field, pad field + * already zeroed + */ } if (pip && (pip->i_d.di_mode & S_ISGID)) { @@ -446,7 +449,7 @@ libxfs_iflush_int(xfs_inode_t *ip, xfs_buf_t *bp) memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); memset(&(dip->di_core.di_pad[0]), 0, sizeof(dip->di_core.di_pad)); - ASSERT(ip->i_d.di_projid == 0); + ASSERT(xfs_get_projid(ip->i_d) == 0); } } diff --git a/libxfs/xfs_ialloc.c b/libxfs/xfs_ialloc.c index 39fdf96..32ae4b0 100644 --- a/libxfs/xfs_ialloc.c +++ b/libxfs/xfs_ialloc.c @@ -46,7 +46,8 @@ xfs_ialloc_log_di( offsetof(xfs_dinode_core_t, di_uid), offsetof(xfs_dinode_core_t, di_gid), offsetof(xfs_dinode_core_t, di_nlink), - offsetof(xfs_dinode_core_t, di_projid), + offsetof(xfs_dinode_core_t, di_projid_lo), + offsetof(xfs_dinode_core_t, di_projid_hi), offsetof(xfs_dinode_core_t, di_pad), offsetof(xfs_dinode_core_t, di_atime), offsetof(xfs_dinode_core_t, di_mtime), diff --git a/libxfs/xfs_inode.c b/libxfs/xfs_inode.c index b0adabc..1c9ea3b 100644 --- a/libxfs/xfs_inode.c +++ b/libxfs/xfs_inode.c @@ -589,7 +589,8 @@ xfs_dinode_from_disk( to->di_uid = be32_to_cpu(from->di_uid); to->di_gid = be32_to_cpu(from->di_gid); to->di_nlink = be32_to_cpu(from->di_nlink); - to->di_projid = be16_to_cpu(from->di_projid); + to->di_projid_lo = be16_to_cpu(from->di_projid_lo); + to->di_projid_hi = be16_to_cpu(from->di_projid_hi); memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad)); to->di_flushiter = be16_to_cpu(from->di_flushiter); to->di_atime.t_sec = be32_to_cpu(from->di_atime.t_sec); @@ -624,7 +625,8 @@ xfs_dinode_to_disk( to->di_uid = cpu_to_be32(from->di_uid); to->di_gid = cpu_to_be32(from->di_gid); to->di_nlink = cpu_to_be32(from->di_nlink); - to->di_projid = cpu_to_be16(from->di_projid); + to->di_projid_lo = cpu_to_be16(from->di_projid_lo); + to->di_projid_hi = cpu_to_be16(from->di_projid_hi); memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad)); to->di_flushiter = cpu_to_be16(from->di_flushiter); to->di_atime.t_sec = cpu_to_be32(from->di_atime.t_sec); diff --git a/logprint/log_print_all.c b/logprint/log_print_all.c index c21e05c..572dac8 100644 --- a/logprint/log_print_all.c +++ b/logprint/log_print_all.c @@ -238,8 +238,10 @@ xlog_recover_print_inode_core( "onlink:%d\n"), (di->di_magic>>8) & 0xff, di->di_magic & 0xff, di->di_mode, di->di_version, di->di_format, di->di_onlink); - printf(_(" uid:%d gid:%d nlink:%d projid:%d\n"), - di->di_uid, di->di_gid, di->di_nlink, (uint)di->di_projid); + printf(_(" uid:%d gid:%d nlink:%d\n"), + di->di_uid, di->di_gid, di->di_nlink); + printf(_(" projid_lo:%d projid_hi:%d\n"), + (uint)di->di_projid_lo, (uint)di->di_projid_hi); printf(_(" atime:%d mtime:%d ctime:%d\n"), di->di_atime.t_sec, di->di_mtime.t_sec, di->di_ctime.t_sec); printf(_(" flushiter:%d\n"), di->di_flushiter); diff --git a/man/man3/xfsctl.3 b/man/man3/xfsctl.3 index 784b3e0..7f3c2e8 100644 --- a/man/man3/xfsctl.3 +++ b/man/man3/xfsctl.3 @@ -564,8 +564,10 @@ The structure has the following elements: (number of extents), .B bs_gen (generation count), -.B bs_projid -(project id), +.B bs_projid_lo +(project id - low word), +.B bs_projid_hi +(project id - high word), .B bs_dmevmask (DMIG event mask), .B bs_dmstate diff --git a/man/man8/xfs_db.8 b/man/man8/xfs_db.8 index 629ae58..17ac601 100644 --- a/man/man8/xfs_db.8 +++ b/man/man8/xfs_db.8 @@ -1474,8 +1474,10 @@ number of links to the file in a version 1 inode. .B nlinkv2 number of links to the file in a version 2 inode. .TP -.B projid -owner's project id (version 2 inode only). +.B projid_lo +owner's project id (low word; version 2 inode only). +.B projid_hi +owner's project id (high word; version 2 inode only). .TP .B uid owner's user id. diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 2d09e36..15edf67 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -106,6 +106,8 @@ char *iopts[] = { "size", #define I_ATTR 5 "attr", +#define I_PROJID32BIT 6 + "projid32bit", NULL }; @@ -829,6 +831,7 @@ main( __uint64_t agsize; xfs_alloc_rec_t *arec; int attrversion; + int projid32bit; struct xfs_btree_block *block; int blflag; int blocklog; @@ -923,6 +926,7 @@ main( textdomain(PACKAGE); attrversion = 2; + projid32bit = 0; blflag = bsflag = slflag = ssflag = lslflag = lssflag = 0; blocklog = blocksize = 0; sectorlog = lsectorlog = XFS_MIN_SECTORSIZE_LOG; @@ -1259,6 +1263,14 @@ main( illegal(value, "i attr"); attrversion = c; break; + case I_PROJID32BIT: + if (!value) + reqval('i', iopts, I_PROJID32BIT); + c = atoi(value); + if (c < 0 || c > 1) + illegal(value, "i projid32bit"); + projid32bit = c; + break; default: unknown('i', value); } @@ -2261,7 +2273,7 @@ an AG size that is one stripe unit smaller, for example %llu.\n"), if (!qflag || Nflag) { printf(_( "meta-data=%-22s isize=%-6d agcount=%lld, agsize=%lld blks\n" - " =%-22s sectsz=%-5u attr=%u\n" + " =%-22s sectsz=%-5u attr=%u projid32bit=%u\n" "data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" " =%-22s sunit=%-6u swidth=%u blks\n" "naming =version %-14u bsize=%-6u ascii-ci=%d\n" @@ -2269,7 +2281,7 @@ an AG size that is one stripe unit smaller, for example %llu.\n"), " =%-22s sectsz=%-5u sunit=%d blks, lazy-count=%d\n" "realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n"), dfile, isize, (long long)agcount, (long long)agsize, - "", sectorsize, attrversion, + "", sectorsize, attrversion, projid32bit, "", blocksize, (long long)dblocks, imaxpct, "", dsunit, dswidth, dirversion, dirblocksize, nci, @@ -2336,7 +2348,7 @@ an AG size that is one stripe unit smaller, for example %llu.\n"), sbp->sb_logsectsize = 0; } sbp->sb_features2 = XFS_SB_VERSION2_MKFS(lazy_sb_counters, - attrversion == 2, 0); + attrversion == 2, projid32bit == 1, 0); sbp->sb_versionnum = XFS_SB_VERSION_MKFS(iaflag, dsunit != 0, logversion == 2, attrversion == 1, (sectorsize != BBSIZE || diff --git a/mkfs/xfs_mkfs.h b/mkfs/xfs_mkfs.h index 49401d6..f25a7f3 100644 --- a/mkfs/xfs_mkfs.h +++ b/mkfs/xfs_mkfs.h @@ -36,9 +36,10 @@ XFS_DFL_SB_VERSION_BITS | \ 0 ) : XFS_SB_VERSION_1 ) -#define XFS_SB_VERSION2_MKFS(lazycount, attr2, parent) (\ +#define XFS_SB_VERSION2_MKFS(lazycount, attr2, projid32bit, parent) (\ ((lazycount) ? XFS_SB_VERSION2_LAZYSBCOUNTBIT : 0) | \ ((attr2) ? XFS_SB_VERSION2_ATTR2BIT : 0) | \ + ((projid32bit) ? XFS_SB_VERSION2_PROJID32BIT : 0) | \ ((parent) ? XFS_SB_VERSION2_PARENTBIT : 0) | \ 0 ) diff --git a/quota/quot.c b/quota/quot.c index 09d349f..98f9a04 100644 --- a/quota/quot.c +++ b/quota/quot.c @@ -102,7 +102,8 @@ quot_bulkstat_add( } for (i = 0; i < 3; i++) { id = (i == 0) ? p->bs_uid : ((i == 1) ? - p->bs_gid : p->bs_projid); + p->bs_gid : ((prid_t)p->bs_projid_hi << 16 + | p->bs_projid_lo)); hp = &duhash[i][id % DUHASH]; for (dp = *hp; dp; dp = dp->next) if (dp->id == id) diff --git a/repair/README b/repair/README index 69cb0c5..7f168e6 100644 --- a/repair/README +++ b/repair/README @@ -130,7 +130,7 @@ D - 0) rewrite directory leaf block holemap comparison code. it does describe doesn't conflict with reality. D - 0) rewrite setting nlinks handling -- for version 1 - inodes, set both nlinks and onlinks (zero projid + inodes, set both nlinks and onlinks (zero projid_lo/hi and pad) if we have to change anything. For version 2, I think we're ok. -- 1.7.2.2 From ballantyne20746@yahoo.com.ph Sat Aug 28 20:38:51 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7T1cpTw182004 for ; Sat, 28 Aug 2010 20:38:51 -0500 X-ASG-Debug-ID: 1283045965-3b4600d20000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from n23a.bullet.mail.mud.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 1522F30DF2 for ; Sat, 28 Aug 2010 18:39:25 -0700 (PDT) Received: from n23a.bullet.mail.mud.yahoo.com (n23a.bullet.mail.mud.yahoo.com [68.142.207.189]) by cuda.sgi.com with SMTP id jDKef0LUtwtVItrd for ; Sat, 28 Aug 2010 18:39:25 -0700 (PDT) Received: from [209.191.108.97] by n23.bullet.mail.mud.yahoo.com with NNFMP; 29 Aug 2010 01:39:25 -0000 Received: from [68.142.201.67] by t4.bullet.mud.yahoo.com with NNFMP; 29 Aug 2010 01:39:25 -0000 Received: from [127.0.0.1] by omp419.mail.mud.yahoo.com with NNFMP; 29 Aug 2010 01:39:25 -0000 X-Yahoo-Newman-Id: 255001.7938.bm@omp419.mail.mud.yahoo.com Received: (qmail 77348 invoked from network); 29 Aug 2010 01:39:24 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.ph; h=DKIM-Signature:Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Date; b=idNG18944Izoi1LOdZ6SV5gHlx06jRtS6nqX1M0pynP3ffu6SQ7igBevEHUjpfXZDgMRIqgbfjUqx8p0RI61aFziNPanWXWx+CpN579GMbLhctT6n9NAC9Kz9tqnkwjEO5bW5PhnDtcF52SGhbQecZJkFKHtjYsE0tJIpIDYb+0= ; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com.ph; s=s1024; t=1283045964; bh=l16OAXHsIkCV5XpQxBZ++IGfPpuRQJG5ml0J84qMtHo=; h=Message-ID:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:Subject:To:Content-Type:MIME-Version:Date; b=SA/aP9LXUXFC/8m1Zlec0Ndg47FlmkYUSefGyB7O6TIeGiCosZE4t7vTiUgRmcvsTrwezcqwAF9eKptyStJicENjLEf91TnhrIrRKZeOnRUQaYEcBN4biFVsm4cVI4u2by3WdemOxhoauLYpRSacan/jAtMAISTeDv2Xf4tvduA= Message-ID: <587029.75713.qm@smtp115.plus.mail.sp1.yahoo.com> Received: from 20090828-1634 (ballantyne20746@121.15.124.50 with login) by smtp115.plus.mail.sp1.yahoo.com with SMTP; 28 Aug 2010 18:39:20 -0700 PDT X-Yahoo-SMTP: ncvFd0SswBDP5GpmvEi2xRVgcNWx9V6VzuLrlA-- X-YMail-OSG: wBt8NPoVM1ne3s7cPswYbdarc9ZirInhBvj35w4qtDyzsCy 7Y09BRmZQTWIo6grGAB9uieIxZig9IH3mKvU24YIJiGcVmY8x8HyxcDLVCWk 7U.wCxnYxbX3KwEwfl7yXia.Cp.JDCZ5LfF.Pv8KsmJJ0r12ny0JKVl9uvYO GZk02mddtO_Pv5ro6H8XPrnrUmmwlh5PDAxV8GcAFThg3_QrtGU4e8.mbKSA 7oF7kjVvhg11o0GFqPsPxmWWJFLFxvI_y6NMzyaus7DJiRBfE61tI67B2w4a Zhhd.wpe1.Q-- X-Yahoo-Newman-Property: ymail-3 From: =?gb2312?B?1uyx+bfSeWFob28uY29tZQ==?= X-ASG-Orig-Subj: =?gb2312?B?tqi1paO6YmFsbGFudHluZTIwNzQ2QHlhaG9vLmNvbS5waHAyOdbssfm30nlh?= =?gb2312?B?aG9vLmNvbWU=?= Subject: =?gb2312?B?tqi1paO6YmFsbGFudHluZTIwNzQ2QHlhaG9vLmNvbS5waHAyOdbssfm30nlh?= =?gb2312?B?aG9vLmNvbWU=?= To: wangcan@yahoo.com Content-Type: multipart/mixed; charset="gb2312"; boundary="FuRrzO7DaHHDi7h17Dc8dSWpYDC=_axdm1" MIME-Version: 1.0 Date: Sun, 29 Aug 2010 09:36:38 +0800 X-Barracuda-Connect: n23a.bullet.mail.mud.yahoo.com[68.142.207.189] X-Barracuda-Start-Time: 1283045967 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2751 1.0000 -0.4579 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.46 X-Barracuda-Spam-Status: No, SCORE=-0.46 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39288 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format --FuRrzO7DaHHDi7h17Dc8dSWpYDC=_axdm1 Content-Type: text/plain Content-Transfer-Encoding: 7bit s 141.16.201.102 163.com --FuRrzO7DaHHDi7h17Dc8dSWpYDC=_axdm1 Content-Type: application/octet-stream; name="Kmrwm_2451.JPG" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Kmrwm_2451.JPG" /9j/4AAQSkZJRgABAQEAYABgAAD/4QAWRXhpZgAASUkqAAgAAAAAAAAAAAD/2wBDAAgGBgcGBQgH BwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/ 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjL/wAARCAFJAbYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQF BgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4 eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi 4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl 8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImK kpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP0 9fb3+Pn6/9oADAMBAAIRAxEAPwDgKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiijrQAAZOK nitzJIAe1PtoNx3EVc4XpQBFOAqBQKoYJfFX5CDVdE5Y0AVu5opT940lABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFXILFLgoq3tuHYZ2sJPl4ycnbgY7nOKs6lp8MGoz77uCNDIzKiI5IXJ4Hy7cjpj OMjGRWDxEFPk1v6P/I5ni6aqKnrf0f8AkZVFW7GBJ2kDxM+1d2ROsQUZxyWBHUitWSxswgikVQsc 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 24yDtY4DDOeUB6MAc6ulKCpu9uz/AOHt69DGvpRpqlK/K+jvra3m0t9en4qe/ji3z+fPbySQ+Y6e awfDgcnBmLEnaowQRwOOueWroZtQubSzgulfUkklZvLFxdFlwApDY2jcPm+nHORxXPu7SOzuxZ2O WZjkk+prXAqootz1/wCBua5dGqot1NfO/VXv+PmJRRRXcekFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABmjNFFABmjNFFAC0UlFAC0UlFAC0UmaM0ALRSUUAFFFFABRRRQAV ItxOtu0CzSCFjlowx2k+pHTsPyqOik0nuJxT3CiiimMVnZzl2LHAGSc8AYA/KgOwQoGOwkErngkZ wf1P50lFKy2FZWsFFFFMYUUUUAFFFFAE0d3cwzNNHcSpK+dzq5DNk5OTUNFFJRS1SJUUtUhQ7BCg Y7CQSueCRnB/U/nQ7tI7O7FnY5ZmOST6mkoostx2V7j2mkeNI2kdo487FLEhc9cDtTKKKEktgSS2 CiiimMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooA//2Q== --FuRrzO7DaHHDi7h17Dc8dSWpYDC=_axdm1-- From anibal@master.debian.org Sat Aug 28 23:18:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7T4IwTC188306 for ; Sat, 28 Aug 2010 23:18:58 -0500 X-ASG-Debug-ID: 1283055574-7b4803640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from master.debian.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1242F3128A for ; Sat, 28 Aug 2010 21:19:34 -0700 (PDT) Received: from master.debian.org (master.debian.org [70.103.162.29]) by cuda.sgi.com with ESMTP id qK7oIDssuo9T8ozI for ; Sat, 28 Aug 2010 21:19:34 -0700 (PDT) Received: from anibal by master.debian.org with local (Exim 4.69) (envelope-from ) id 1OpZMd-0001DN-PF; Sun, 29 Aug 2010 04:19:28 +0000 Date: Sun, 29 Aug 2010 14:19:24 +1000 From: =?iso-8859-1?Q?An=EDbal?= Monsalve Salazar To: Christoph Hellwig Cc: Andreas Gruenbacher , Nathan Scott , xfs@oss.sgi.com, nathans@debian.org, anibal@debian.org X-ASG-Orig-Subj: Re: xfsprogs Debian mantainaince Subject: Re: xfsprogs Debian mantainaince Message-ID: <20100829041924.GB2648@mapuche.apana.org.au> References: <20100814111513.GA8214@infradead.org> <1697333467.18161281921959476.JavaMail.root@mail-au.aconex.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1697333467.18161281921959476.JavaMail.root@mail-au.aconex.com> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: Anibal Monsalve Salazar X-Barracuda-Connect: master.debian.org[70.103.162.29] X-Barracuda-Start-Time: 1283055575 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 16, 2010 at 11:25:59AM +1000, Nathan Scott wrote: >----- "Christoph Hellwig" wrote: > >>Hi Nathan, hi Anibal, >> >>if seen the constant flipping between native and non-native uploads >>for the xfsprogs Debian packages between the two of you and it's >>slightly annoying. I know Nathan likes maintaining the Debian >>packages in git, which also makes life for us XFS developers trying to >>build debian packages a lot easier. Sorry about the unintended nuisance. When I had access to the SGI ptools repo it was very easy to keep my uploads to Debian with an updated debian directory. >>What about a compromise? We'll add a debian- branches to the >>xfsprogs-dev repository where we can track the exact packages uploaded >>to Debian, including the -2/-3 etc packages revisions that only get >>uploaded to Debian, > >IMO, the -2 and -3 revisions are unnecessary and there's really no need >for a separate branch ... if Anibal had a kernel.org account and merged >changes in before uploading, there'd be no issue, I think - Anibal? It >would make life simpler, for sure. I agree. On the same subject, I talked to Andreas during LinuxCon2010 in Boston about getting access to the acl and attr git repos to update the debian directory before uploading packages to Debian. He was very positive about that. >>And one last request, any chance to get xfsprogs for -testing rebuilt >>against libblkid now that util-linux-2.17 has finally made it into >>testing? Beeing able to use blkid for alignment detection will be >>very important so that XFS on Debian can deal with 4k sector disks and >>hardware RAID arrays out of the box. > >Sure, I'll take a look at that for next upload. > >cheers. > >-- >Nathan From news@pears-gallery.com Sun Aug 29 04:43:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,HTML_FONT_SIZE_HUGE, HTML_MESSAGE,UPPERCASE_50_75 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7T9htJP204044 for ; Sun, 29 Aug 2010 04:43:56 -0500 X-ASG-Debug-ID: 1283075687-7fc900110000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hvx5105.celeo.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 761DDD58EEB for ; Sun, 29 Aug 2010 02:54:47 -0700 (PDT) Received: from hvx5105.celeo.net (hvx5105.celeo.net [95.128.73.105]) by cuda.sgi.com with ESMTP id hUMKnNq5lE4AoDw1 for ; Sun, 29 Aug 2010 02:54:47 -0700 (PDT) Received: from mov76-1-78-236-189-81.fbx.proxad.net (mov76-1-78-236-189-81.fbx.proxad.net [78.236.189.81]) (using SSLv3 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: news@pears-gallery.com) by hvx5105.celeo.net (Postfix) with ESMTPSA id F1119135CB3 for ; Sun, 29 Aug 2010 11:44:27 +0200 (CEST) From: "News Pears Gallery" X-ASG-Orig-Subj: Pears Gallery : YOUR site.... Subject: Pears Gallery : YOUR site.... To: "linux-xfs" Content-Type: multipart/alternative; boundary="rgxgDhIEJDZinIwMJWgobi=_hX9xI3ox8X" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Organization: Pears gallery Date: Sun, 29 Aug 2010 11:44:26 +0200 Message-Id: <20100829094427.F1119135CB3@hvx5105.celeo.net> X-Barracuda-Connect: hvx5105.celeo.net[95.128.73.105] X-Barracuda-Start-Time: 1283075689 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.88 X-Barracuda-Spam-Status: No, SCORE=0.88 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_FONT_SIZE_HUGE, HTML_MESSAGE, UPPERCASE_50_75, UPPERCASE_50_75_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39307 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.39 HTML_FONT_SIZE_HUGE BODY: HTML font size is huge 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 UPPERCASE_50_75 message body is 50-75% uppercase 0.49 UPPERCASE_50_75_2 message body is 50-75% uppercase X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format --rgxgDhIEJDZinIwMJWgobi=_hX9xI3ox8X Content-Type: text/plain ; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =20 www.pears-gallery.com =20 YOUR GALLERY - YOUR ART -25% WITH THIS CODE : BVE99180817 (ONLY ANNUAL SUBSCRIPTION / 31/08/2010)=20 =20 = = = =20 D=E9sinscription / Unsubscribe --rgxgDhIEJDZinIwMJWgobi=_hX9xI3ox8X Content-Type: text/html ; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

3D"" 3D"" 3D"" 3D"" = 3D"" 3D"" 3D"" 3D""

3D""


www.pears-g= allery.com

 

 

 

YOUR GALL= ERY - YOUR ART

-25% WITH= THIS CODE : BVE99180817

(ONLY ANN= UAL SUBSCRIPTION / 31/08/2010)

 

 


3D""

 
               &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;    

D=E9sinscription= / Unsubscribe

--rgxgDhIEJDZinIwMJWgobi=_hX9xI3ox8X-- From news@pears-gallery.com Sun Aug 29 04:46:09 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,HTML_FONT_SIZE_HUGE, HTML_MESSAGE,UPPERCASE_50_75 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7T9k9J4204145 for ; Sun, 29 Aug 2010 04:46:09 -0500 X-ASG-Debug-ID: 1283075205-18b400280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hvx5105.celeo.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D4EA315EB for ; Sun, 29 Aug 2010 02:46:45 -0700 (PDT) Received: from hvx5105.celeo.net (hvx5105.celeo.net [95.128.73.105]) by cuda.sgi.com with ESMTP id QNaXqrg1e0vhzzDs for ; Sun, 29 Aug 2010 02:46:45 -0700 (PDT) Received: from mov76-1-78-236-189-81.fbx.proxad.net (mov76-1-78-236-189-81.fbx.proxad.net [78.236.189.81]) (using SSLv3 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: news@pears-gallery.com) by hvx5105.celeo.net (Postfix) with ESMTPSA id ACCBB135CD1 for ; Sun, 29 Aug 2010 11:46:44 +0200 (CEST) From: "News Pears Gallery" X-ASG-Orig-Subj: Pears Gallery : YOUR site.... Subject: Pears Gallery : YOUR site.... To: "xfs" Content-Type: multipart/alternative; boundary="E=_GTVFxR38oGWthIGwfj8xCTXNCx6tjDe" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Organization: Pears gallery Date: Sun, 29 Aug 2010 11:46:42 +0200 Message-Id: <20100829094644.ACCBB135CD1@hvx5105.celeo.net> X-Barracuda-Connect: hvx5105.celeo.net[95.128.73.105] X-Barracuda-Start-Time: 1283075206 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.88 X-Barracuda-Spam-Status: No, SCORE=0.88 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_FONT_SIZE_HUGE, HTML_MESSAGE, UPPERCASE_50_75, UPPERCASE_50_75_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39306 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.39 HTML_FONT_SIZE_HUGE BODY: HTML font size is huge 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 UPPERCASE_50_75 message body is 50-75% uppercase 0.49 UPPERCASE_50_75_2 message body is 50-75% uppercase X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format --E=_GTVFxR38oGWthIGwfj8xCTXNCx6tjDe Content-Type: text/plain ; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =20 www.pears-gallery.com =20 YOUR GALLERY - YOUR ART -25% WITH THIS CODE : BVE99180817 (ONLY ANNUAL SUBSCRIPTION / 31/08/2010)=20 =20 = = = =20 D=E9sinscription / Unsubscribe --E=_GTVFxR38oGWthIGwfj8xCTXNCx6tjDe Content-Type: text/html ; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

3D"" 3D"" 3D"" 3D"" = 3D"" 3D"" 3D"" 3D""

3D""


www.pears-g= allery.com

 

 

 

YOUR GALL= ERY - YOUR ART

-25% WITH= THIS CODE : BVE99180817

(ONLY ANN= UAL SUBSCRIPTION / 31/08/2010)

 

 


3D""

 
               &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;           &= nbsp;           = ;           &nb= sp;    

D=E9sinscription= / Unsubscribe

--E=_GTVFxR38oGWthIGwfj8xCTXNCx6tjDe-- From bogdandr@op.pl Sun Aug 29 15:54:50 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.3 required=5.0 tests=BAYES_20, RCVD_IN_BL_SPAMCOP_NET autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7TKsnom226978 for ; Sun, 29 Aug 2010 15:54:50 -0500 X-ASG-Debug-ID: 1283115322-48cf02000000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtpo07.poczta.onet.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8200C1789E40 for ; Sun, 29 Aug 2010 13:55:22 -0700 (PDT) Received: from smtpo07.poczta.onet.pl (smtpo07.poczta.onet.pl [213.180.142.138]) by cuda.sgi.com with ESMTP id 3nGo5690SDHBQutI for ; Sun, 29 Aug 2010 13:55:22 -0700 (PDT) Received: from rudy.mif.pg.gda.pl ([153.19.42.16]:45478 "EHLO orion.wszechswiat.org" rhost-flags-OK-OK-OK-FAIL) by ps2.m5r2.onet with ESMTPSA id S134218389Ab0H2JU2116YF (ORCPT ); Sun, 29 Aug 2010 11:20:28 +0200 Message-ID: <4C7A2654.3080106@op.pl> Date: Sun, 29 Aug 2010 11:20:20 +0200 From: Bogdan User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfsprogs: minimum version with these commands Subject: xfsprogs: minimum version with these commands X-Enigmail-Version: 1.1.1 OpenPGP: url=http://rudy.mif.pg.gda.pl/~bogdro/bogdan_publiczny.asc Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: smtpo07.poczta.onet.pl[213.180.142.138] X-Barracuda-Start-Time: 1283115323 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4213 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39355 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello. I couldn't find this information in the xfsprogs ChangeLog, so I'm asking here: what is the minimum version of xfsprogs to: 1) contain these utilities: xfs_db, xfs_freeze, xfs_check, and 2) xfs_db accepts the following command-line parameters: -i, -c, and 3) xfs_freeze accepts the following command-line parameters: -f, -u, and 4) xfs_db accepts the following interactive mode commands: "freesp -d", "quit", "blockget -n", "ncheck", "sb 0", "print". Or is there a ChangeLog that covers all xfsprogs versions in such deatil that I would be able to find this myself? If so, where can I find it? -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft From sandeen@sandeen.net Sun Aug 29 20:52:22 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7U1qLAZ237356 for ; Sun, 29 Aug 2010 20:52:22 -0500 X-ASG-Debug-ID: 1283133178-4d1900b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6FAAC178A07F for ; Sun, 29 Aug 2010 18:52:58 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id QqfFjX7OKGwX1JKO for ; Sun, 29 Aug 2010 18:52:58 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 1EC004A8B957; Sun, 29 Aug 2010 20:52:55 -0500 (CDT) Message-ID: <4C7B0EF6.5030505@sandeen.net> Date: Sun, 29 Aug 2010 20:52:54 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Bogdan CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsprogs: minimum version with these commands Subject: Re: xfsprogs: minimum version with these commands References: <4C7A2654.3080106@op.pl> In-Reply-To: <4C7A2654.3080106@op.pl> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1283133179 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39375 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Bogdan wrote: > Hello. > > I couldn't find this information in the xfsprogs ChangeLog, so I'm > asking here: what is the minimum version of xfsprogs to: > > 1) contain these utilities: xfs_db, xfs_freeze, xfs_check, and > 2) xfs_db accepts the following command-line parameters: -i, -c, and > 3) xfs_freeze accepts the following command-line parameters: -f, -u, and > 4) xfs_db accepts the following interactive mode commands: "freesp > -d", "quit", "blockget -n", "ncheck", "sb 0", "print". I am not surprised that changelogs do not mention when "quit" was added to xfs_db ...! > Or is there a ChangeLog that covers all xfsprogs versions in such > deatil that I would be able to find this myself? If so, where can I > find it? > You could look at git and/or cvs history/blame to see when commands & options were added. Most of the things you ask about are SO OLD it will take some digging through renames and moves. Do you really need to know if "xfs_check" was added in 1994, or 1995, for example? :) This strikes me as a bit of an odd question; what is your motivation here? -Eric From MAILER-DAEMON@oss.sgi.com Sun Aug 29 21:40:08 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7U2e8SM239020 for ; Sun, 29 Aug 2010 21:40:08 -0500 X-ASG-Debug-ID: 1283136664-14ff02990000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx0b-000cec01.pphosted.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8B36812CD968 for ; Sun, 29 Aug 2010 19:51:04 -0700 (PDT) Received: from mx0b-000cec01.pphosted.com (mx0b-000cec01.pphosted.com [67.231.152.127]) by cuda.sgi.com with ESMTP id H9HKmIOWwKYBbGaO for ; Sun, 29 Aug 2010 19:51:04 -0700 (PDT) Received: from pps.filterd (m0000717 [127.0.0.1]) by mx0b-000cec01.pphosted.com (8.14.3/8.14.3) with SMTP id o7U2Y2Uo019371 for ; Sun, 29 Aug 2010 22:40:42 -0400 Received: from hart-edge1.ccci.org ([72.159.180.27]) by mx0b-000cec01.pphosted.com with ESMTP id qygyhtj6x-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) for ; Sun, 29 Aug 2010 22:40:41 -0400 Received: from HART-EXPF1.net.ccci.org (10.10.10.57) by HART-EDGE1.ccci.org (172.16.1.27) with Microsoft SMTP Server id 8.1.436.0; Sun, 29 Aug 2010 22:40:34 -0400 Received: from hart-exht2.net.ccci.org ([10.10.10.63]) by HART-EXPF1.net.ccci.org with Microsoft SMTPSVC(6.0.3790.4675); Sun, 29 Aug 2010 22:38:53 -0400 thread-index: ActH7Hppu6Iyb0cuR4WlSNP9zOEyaA== Thread-Topic: PureMessage has encountered the following event(s): Virus infection detected From: Sender: To: X-ASG-Orig-Subj: PureMessage has encountered the following event(s): Virus infection detected Subject: PureMessage has encountered the following event(s): Virus infection detected Date: Sun, 29 Aug 2010 22:38:50 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-Class: urn:content-classes:message Importance: normal Priority: normal X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6002.18197 Message-ID: X-OriginalArrivalTime: 30 Aug 2010 02:38:53.0519 (UTC) FILETIME=[7C674DF0:01CB47EC] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.0.10011,1.0.148,0.0.0000 definitions=2010-08-29_07:2010-08-29,2010-08-29,1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 ndrscore=0 ipscore=0 adjustscore=0 phishscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx engine=5.0.0-1005130000 definitions=main-1008290204 X-Barracuda-Connect: mx0b-000cec01.pphosted.com[67.231.152.127] X-Barracuda-Start-Time: 1283136666 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0016 1.0000 -2.0106 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39377 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean VGhpcyBzZW5kZXIgYWxlcnQgbWVzc2FnZSBpcyBnZW5lcmF0ZWQgYnkgUHVyZU1lc3NhZ2UgYmVj YXVzZSBpdCBoYXMgZW5jb3VudGVyZWQgdGhlIGZvbGxvd2luZyBldmVudHMuDQoNCkV2ZW50KHMp OiBWaXJ1cyBpbmZlY3Rpb24gZGV0ZWN0ZWQNCk1lc3NhZ2UgYWN0aW9uOiBNZXNzYWdlIGRlbGV0 ZWQNCk1lc3NhZ2UgSUQ6PDcxN2QzNmRmLWE2ZWItNDY1ZC1iODQ2LWE4ZWFkZTNlZGU1ZUBoYXJ0 LWV4aHQyLm5ldC5jY2NpLm9yZz4NClN1YmplY3Q6IGVycm9yDQpTZW5kZXI6IHhmc0Bvc3Muc2dp LmNvbQ0KUmVjaXBpZW50KHMpOiB3d2Muc3Vic0BjY2NpLm9yZyxEaWFuZS5EYWtpbkBjY2NpLm9y Zw0KRGF0ZTogOC8yOS8yMDEwDQpUaW1lOiAyMjozODo1MA0KSm9iOiBUcmFuc3BvcnQgKFNNVFAp IHNjYW5uaW5nDQpTZXJ2ZXI6IEhBUlQtRVhIVDINCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KSW5jaWRlbnQgaW5mb3JtYXRpb246 DQoNCkV2ZW50OiBWaXJ1cyBpbmZlY3Rpb24gZGV0ZWN0ZWQNCkxvY2F0aW9uOiB0ZXh0LnppcA0K UmVwbGFjZWQgd2l0aCB0ZXh0OiBObw0KVmlydXMgbmFtZShzKTogVzMyL015RG9vbS1PDQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cg== From tao.ma@oracle.com Sun Aug 29 21:45:21 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66, UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7U2jKNo239268 for ; Sun, 29 Aug 2010 21:45:20 -0500 X-ASG-Debug-ID: 1283136978-09ff036b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rcsinet10.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D2A012CD99B; Sun, 29 Aug 2010 19:56:19 -0700 (PDT) Received: from rcsinet10.oracle.com (rcsinet10.oracle.com [148.87.113.121]) by cuda.sgi.com with ESMTP id j0B815cjxUqaHeix; Sun, 29 Aug 2010 19:56:19 -0700 (PDT) Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id o7U2jcdw021898 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 30 Aug 2010 02:45:40 GMT Received: from acsmt353.oracle.com (acsmt353.oracle.com [141.146.40.153]) by acsinet15.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id o7TNvLX7023715; Mon, 30 Aug 2010 02:45:38 GMT Received: from abhmt001.oracle.com by acsmt353.oracle.com with ESMTP id 558927221283136264; Sun, 29 Aug 2010 19:44:24 -0700 Received: from localhost.localdomain (/10.182.121.36) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 29 Aug 2010 19:44:24 -0700 From: Tao Ma To: Alex Elder Cc: xfs@oss.sgi.com, Tao Ma , Dave Chinner X-ASG-Orig-Subj: [PATCH v4] xfs: Make fiemap works with sparse file. Subject: [PATCH v4] xfs: Make fiemap works with sparse file. Date: Mon, 30 Aug 2010 10:44:03 +0800 Message-Id: <1283136243-2411-1-git-send-email-tao.ma@oracle.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1282938415.2450.109.camel@doink> References: <1282938415.2450.109.camel@doink> X-Barracuda-Connect: rcsinet10.oracle.com[148.87.113.121] X-Barracuda-Start-Time: 1283136979 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39377 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 08/28/2010 03:46 AM, Alex Elder wrote: > On Thu, 2010-06-17 at 16:53 +0800, Tao Ma wrote: >> > Hi Dave, >> > On 06/14/2010 08:29 PM, Dave Chinner wrote: >>> > > I just had a thought - if you want to avoid holes being reported to >>> > > fiemap, then add a BMV_IF_NO_HOLES flag to xfs_getbmap() and skip >>> > > holes in the mappin gloop when this flag is set. That will make >>> > > fiemap fill in the full number of extents without hacking the >>> > > extent count... >> > Here is the updated one. I have used BVM_IF_NO_HOLES in xfs_getbmap >> > to skip increasing index 'cur_ext'. It is a bit ugly, see my commit >> > log. I guess maybe we can add another flag in xfs_bmapi so that it >> > don't even give us the holes? > Dave said he would commit this but it hasn't been done > yet, so there's still time to comment! yeah, it is never late. ;) > > . . . > >> > diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c >> > index 99587de..d49107d 100644 >> > --- a/fs/xfs/xfs_bmap.c >> > +++ b/fs/xfs/xfs_bmap.c >> > @@ -5744,12 +5744,24 @@ xfs_getbmap( >> > map[i].br_startblock)) >> > goto out_free_map; >> > >> > - nexleft--; >> > bmv->bmv_offset = >> > out[cur_ext].bmv_offset + >> > out[cur_ext].bmv_length; >> > bmv->bmv_length = >> > max_t(__int64_t, 0, bmvend - bmv->bmv_offset); >> > + >> > + /* >> > + * In case we don't want to return the hole, >> > + * don't increase cur_ext so that we can reuse >> > + * it in the next loop. >> > + */ >> > + if ((iflags& BMV_IF_NO_HOLES)&& >> > + out[cur_ext].bmv_block == -1LL) { > I personally would prefer this to use: > if ((iflags& BMV_IF_NO_HOLES)&& > map[i].br_startblock == HOLESTARTBLOCK) { > > I think this is more obvious that this "extent" represents > a hole (as opposed to bmv_block == -1, which is how > xfs_getbmapx_fix_eof_hole() encodes this). > > Otherwise looks good. OK, I have updated the patch and attached it. So could you please send it to Linus? Regards, Tao >From 09a3cbaa456b35ed071cdd08a8b3c4c129baf451 Mon Sep 17 00:00:00 2001 From: Tao Ma Date: Mon, 30 Aug 2010 10:04:51 +0800 Subject: [PATCH v4] xfs: Make fiemap works with sparse file. In xfs_vn_fiemap, we set bvm_count to fi_extent_max + 1 and want to return fi_extent_max extents, but actually it won't work for a sparse file. The reason is that in xfs_getbmap we will calculate holes and set it in 'out', while out is malloced by bmv_count(fi_extent_max+1) which didn't consider holes. So in the worst case, if 'out' vector looks like [hole, extent, hole, extent, hole, ... hole, extent, hole], we will only return half of fi_extent_max extents. This patch add a new parameter BMV_IF_NO_HOLES for bvm_iflags. So with this flags, we don't use our 'out' in xfs_getbmap for a hole. The solution is a bit ugly by just don't increasing index of 'out' vector. I felt that it is not easy to skip it at the very beginning since we have the complicated check and some function like xfs_getbmapx_fix_eof_hole to adjust 'out'. Cc: Dave Chinner Reviewed-by: Alex Elder Signed-off-by: Tao Ma --- fs/xfs/linux-2.6/xfs_iops.c | 2 +- fs/xfs/xfs_bmap.c | 14 +++++++++++++- fs/xfs/xfs_fs.h | 4 +++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 68be25d..b1fc2a6 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -664,7 +664,7 @@ xfs_vn_fiemap( fieinfo->fi_extents_max + 1; bm.bmv_count = min_t(__s32, bm.bmv_count, (PAGE_SIZE * 16 / sizeof(struct getbmapx))); - bm.bmv_iflags = BMV_IF_PREALLOC; + bm.bmv_iflags = BMV_IF_PREALLOC | BMV_IF_NO_HOLES; if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) bm.bmv_iflags |= BMV_IF_ATTRFORK; if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 23f14e5..f90dadd 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -5533,12 +5533,24 @@ xfs_getbmap( map[i].br_startblock)) goto out_free_map; - nexleft--; bmv->bmv_offset = out[cur_ext].bmv_offset + out[cur_ext].bmv_length; bmv->bmv_length = max_t(__int64_t, 0, bmvend - bmv->bmv_offset); + + /* + * In case we don't want to return the hole, + * don't increase cur_ext so that we can reuse + * it in the next loop. + */ + if ((iflags & BMV_IF_NO_HOLES) && + map[i].br_startblock == HOLESTARTBLOCK) { + memset(&out[cur_ext], 0, sizeof(out[cur_ext])); + continue; + } + + nexleft--; bmv->bmv_entries++; cur_ext++; } diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h index 7cf7220..87c2e9d 100644 --- a/fs/xfs/xfs_fs.h +++ b/fs/xfs/xfs_fs.h @@ -114,8 +114,10 @@ struct getbmapx { #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ #define BMV_IF_DELALLOC 0x8 /* rtn status BMV_OF_DELALLOC if req */ +#define BMV_IF_NO_HOLES 0x10 /* Do not return holes */ #define BMV_IF_VALID \ - (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|BMV_IF_DELALLOC) + (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC| \ + BMV_IF_DELALLOC|BMV_IF_NO_HOLES) /* bmv_oflags values - returned for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ -- 1.7.1.571.gba4d01 From jessen@szcnarts.com Sun Aug 29 23:22:39 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.6 required=5.0 tests=BAYES_60,J_CHICKENPOX_33, SUBJ_ALL_CAPS autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7U4Mchv242377 for ; Sun, 29 Aug 2010 23:22:39 -0500 X-ASG-Debug-ID: 1283142176-0906037c0001-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from szcnarts.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D72CB32995 for ; Sun, 29 Aug 2010 21:22:57 -0700 (PDT) Received: from szcnarts.com ([183.13.91.251]) by cuda.sgi.com with ESMTP id RsWQQol0FFwJFDVc for ; Sun, 29 Aug 2010 21:22:57 -0700 (PDT) From: "jessen" X-ASG-Orig-Subj: QUOTATION FROM EUROPE Subject: QUOTATION FROM EUROPE To: linux-xfs@oss.sgi.com Content-Type: text/plain;charset="GB2312" Reply-To: jessen@szcnarts.com Date: Mon, 30 Aug 2010 12:22:47 +0800 X-Priority: 3 X-Mailer: FoxMail 4.0 beta 2 [cn] X-Barracuda-Connect: UNKNOWN[183.13.91.251] X-Barracuda-Start-Time: 1283142179 Message-Id: <20100830042257.D72CB32995@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.5928 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.35 X-Barracuda-Spam-Status: No, SCORE=1.35 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39385 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean DEAR ALL: SHEKOU,GUANGDONG---MIDDLE EAST SKU Closing on 7.Sep Jebel Ali---------------USD925/1680/1680 Bandar Abbas------------USD925/1680/1680 Doha--------------------USD1275/2230/2230 Riyad-------------------USD1275/2230/2230 Damman------------------USD1025/1830/1830 Umm Qasr----------------USD1625/2830/2830 Khoramshahr-------------USD1625/2880/2880 subject to thc,doc,tlex fee and seal fee. weight limitagion---14mts/20'GP EUROPE: Rotterdam(25days)/Bremerhaven(28days) > YANTIAN,GUANGDONG Closing on 4.Sep Le Havre(25days)/Hamburg(28days)/Rotterdam(30days)/Zeebrugge(32days) > YANTIAN,GUANGDONG Closing on 2.Sep > O/F£ºUSD1750/3350/3450+ORC+DOC+ISPS Barcelona(22days)/Valencia(24days)/Algeciras(26days) > YANTIAN,GUANGDONG Closing on 2.Sep > O/F£ºUSD1775/3500/3600+ORC+DOC+ISPS 2010-08-30 -------------------------------------------------------------- Tks & best rgds. If you have any question, pls contact with me! Mr.Jessen Zhang China Arts Inter Trans Co.,Ltd.(Shenzhen Office) Tel:+86 755 25172492/25172493/25712494-604 Fax:+86 755 25172748 Mob:15118845670/13418553654(24'HR) Msn:szcnarts@hotmail.com QQ:154887788 Skype:jasonzhang0428 E-mail:jessen@szcnarts.com Add: Room H,15/F Yonghui Bidg.Guo Qi Bldg, Shangbu South Road Shenzhen From michael.monnerie@is.it-management.at Mon Aug 30 00:37:44 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7U5bisC248321 for ; Mon, 30 Aug 2010 00:37:44 -0500 X-ASG-Debug-ID: 1283146699-43f702c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 05C7C178A9CB for ; Sun, 29 Aug 2010 22:38:20 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id rQgJpgHSQGEenxF7 for ; Sun, 29 Aug 2010 22:38:20 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 0DCD312D for ; Mon, 30 Aug 2010 07:38:19 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id BD16F401C2E for ; Mon, 30 Aug 2010 07:38:18 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsprogs: minimum version with these commands Subject: Re: xfsprogs: minimum version with these commands Date: Mon, 30 Aug 2010 07:38:18 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) References: <4C7A2654.3080106@op.pl> <4C7B0EF6.5030505@sandeen.net> In-Reply-To: <4C7B0EF6.5030505@sandeen.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart2856880.ehgLBCIOc8"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008300738.18345@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283146701 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39389 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart2856880.ehgLBCIOc8 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Montag, 30. August 2010 Eric Sandeen wrote: > This strikes me as a bit of an odd question; what is your motivation > here? =20 I'd guess they have a program using that features, and they want to tell=20 people "this needs at least version X of xfsprogs". =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart2856880.ehgLBCIOc8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx7Q8oACgkQzhSR9xwSCbQDYgCgqiUPsCZ3MD/vEkkCtzs4prPy uDYAoOVGZ7fkplAn9htsQWUz6h7Aq8AK =6btv -----END PGP SIGNATURE----- --nextPart2856880.ehgLBCIOc8-- From michael.monnerie@is.it-management.at Mon Aug 30 02:55:49 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7U7tmYI254837 for ; Mon, 30 Aug 2010 02:55:49 -0500 X-ASG-Debug-ID: 1283155606-651902d10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 82624D6C0ED for ; Mon, 30 Aug 2010 01:06:46 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 3DemFydPCzYEY8L4 for ; Mon, 30 Aug 2010 01:06:46 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 1BC9512D for ; Mon, 30 Aug 2010 09:56:22 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id BBF48401C2E for ; Mon, 30 Aug 2010 09:56:21 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: 4K drives, sectsz=512, bsize=4096 Subject: 4K drives, sectsz=512, bsize=4096 Date: Mon, 30 Aug 2010 09:56:16 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart3248334.JWiSvKbyU8"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008300956.21264@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283155607 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39399 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart3248334.JWiSvKbyU8 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I have 2x 2TB 4K sector drives, joined with LVM to RAID-0. On top of=20 that, I created an XFS, but that has sectsz=3D512. Will there be any real difference if I re-format with sectsz=3D4096?=20 AFAIK, XFS will do I/O based on block size, so the sector size doesn't=20 do any harm. Is that correct? A question for LVM: Is there anything I need to tell to LVM to let it=20 know that those are 4K sector drives and I/O should be aligned to that?=20 Drives are reported as 512b sectors, but really are 4K. There seems to=20 be no way to instruct the kernel to see those drives as 4K drives. =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart3248334.JWiSvKbyU8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx7ZCUACgkQzhSR9xwSCbS18QCgxgMlCRj1cG9NPe8Fxnlsi9oi 0bIAoNjONDr0LJagn7EfNgwmCEvZQIuL =rlfv -----END PGP SIGNATURE----- --nextPart3248334.JWiSvKbyU8-- From s.priebe@profihost.ag Mon Aug 30 07:13:49 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UCDnZG003127 for ; Mon, 30 Aug 2010 07:13:49 -0500 X-ASG-Debug-ID: 1283170466-7c4102db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server655-han.de-nserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6EAEE341CB for ; Mon, 30 Aug 2010 05:14:26 -0700 (PDT) Received: from server655-han.de-nserver.de (server655-han.de-nserver.de [85.158.177.45]) by cuda.sgi.com with ESMTP id EvHjI6BiUXG0oQlD for ; Mon, 30 Aug 2010 05:14:26 -0700 (PDT) Received: (qmail 2783 invoked from network); 30 Aug 2010 14:14:26 +0200 Received: from fw-office.allied-internet.ag (HELO s.priebe-desktop) (85.158.179.66) (smtp-auth username hostmaster@profihost.com, mechanism plain) by server655-han.de-nserver.de (qpsmtpd/0.82) with ESMTPA; Mon, 30 Aug 2010 14:14:26 +0200 Message-ID: <4C7BA0A0.5090202@profihost.ag> Date: Mon, 30 Aug 2010 14:14:24 +0200 From: Stefan Priebe - Profihost AG User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100713 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: XFS Quota Check OOM Subject: XFS Quota Check OOM Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-User-Auth: Auth by hostmaster@profihost.com through 85.158.179.66 X-Barracuda-Connect: server655-han.de-nserver.de[85.158.177.45] X-Barracuda-Start-Time: 1283170467 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0184 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39415 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, on one of our systems i want to activate prjquota support. The relevant disk is the root disk so i added prjquota to rootflags kernel line. But when i do so i always get OOM out of Memory while checking quota's. I also upgraded the system from 8GB to 16GB RAM but still the same. Kernel is vanilla 2.6.32.19. Stefan From aelder@sgi.com Mon Aug 30 09:21:03 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UEL3hB007381 for ; Mon, 30 Aug 2010 09:21:03 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id A42DF30407B; Mon, 30 Aug 2010 07:21:38 -0700 (PDT) Received: from [134.15.64.100] ([134.15.64.100]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 30 Aug 2010 09:21:38 -0500 Subject: Re: Review: xfsprogs with libblkid enabled for Debian From: Alex Elder Reply-To: aelder@sgi.com To: Nathan Scott Cc: xfs In-Reply-To: <239606566.371721282829201737.JavaMail.root@mail-au.aconex.com> References: <239606566.371721282829201737.JavaMail.root@mail-au.aconex.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 30 Aug 2010 09:21:37 -0500 Message-ID: <1283178097.5273.97.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 30 Aug 2010 14:21:38.0478 (UTC) FILETIME=[A8AD74E0:01CB484E] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2010-08-26 at 23:26 +1000, Nathan Scott wrote: > ----- "Christoph Hellwig" wrote: > > > I'm fine with pushing out a new 3.1.3 release as it's time anyway, > > but > > can we also include Dave's patch to add XFS_IOC_ZERO_RANGE support to > > xfs_io and the xfsctl manpage first? > > > > Next week also has Alex back from vacation, so I'd suggest waiting if > > he has any input on this. > > As discussed on IRC, I made the changes and push out a new release.sh > tagged git update to kernel.org. I pushed the src tarball to oss also, > and libblkid enabled packages will be uploaded to Debian shortly. Sorry I didn't get this done for you last week. I hadn't looked over the patch closely yet and didn't notice you were proposing a new release. Now that I've looked, I can say the changes all look fine to me. I'm glad you broke up your recent patch into multiple commits. I will publish your versioned release on oss.sgi.com today after my tests complete. -Alex From willrose@kol.co.nz Mon Aug 30 10:03:58 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_80,MIME_QP_LONG_LINE, T_LOTS_OF_MONEY,X_IP autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UF3vWP008930 for ; Mon, 30 Aug 2010 10:03:58 -0500 X-ASG-Debug-ID: 1283180674-0d2f01f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.kol.co.nz (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ADD1834885 for ; Mon, 30 Aug 2010 08:04:34 -0700 (PDT) Received: from mx2.kol.co.nz (mx2.kol.co.nz [202.150.96.3]) by cuda.sgi.com with ESMTP id v2GZyYz8L8nkDjEK for ; Mon, 30 Aug 2010 08:04:34 -0700 (PDT) Received: from Debian-exim by mx2.kol.co.nz with local (Exim 4.69) (envelope-from ) id 1Oq5uR-0003Ep-Jv for xfs@oss.sgi.com; Tue, 31 Aug 2010 03:04:31 +1200 Received-SPF: none (mx2.kol.co.nz: domain of willrose@kol.co.nz does not designate permitted sender hosts) Received: from webmail1.orcon.net.nz ([219.88.242.47] helo=webmail.kol.co.nz) by mx2.kol.co.nz with esmtp (Exim 4.69) (envelope-from ) id 1Oq5sG-0005ew-Ll; Tue, 31 Aug 2010 03:02:16 +1200 Received: from 175.137.160.121 ([175.137.160.121]) by webmail.kol.co.nz (Horde MIME library) with HTTP; Tue, 31 Aug 2010 03:02:13 +1200 Message-ID: <20100831030213.s4bgy4h2kkg4sg8o@webmail.kol.co.nz> Date: Tue, 31 Aug 2010 03:02:13 +1200 From: You Have Won Reply-To: grircadyot@garrifulio.mailexpire.com To: undisclosed-recipients:; X-ASG-Orig-Subj: Your Alert Subject: Your Alert MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Internet Messaging Program (IMP) H3 (4.1.3) X-IP: 175.137.160.121 X-DSPAM-Check: by mx2.kol.co.nz on Tue, 31 Aug 2010 03:02:17 +1200 X-DSPAM-Result: Innocent X-DSPAM-Processed: Tue Aug 31 03:04:31 2010 X-DSPAM-Confidence: 0.5404 X-DSPAM-Improbability: 1 in 119 chance of being spam X-DSPAM-Probability: 0.0036 X-Barracuda-Connect: mx2.kol.co.nz[202.150.96.3] X-Barracuda-Start-Time: 1283180675 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5277 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.57 X-Barracuda-Spam-Status: No, SCORE=1.57 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MIME_QP_LONG_LINE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39427 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.82 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean GEP ALERT GPG wishes to inform you of the results of the Global Grand E-mail Promotion held in Bolton, Lancashire - United Kingdom on Saturday 28th August, =20 2010. Your account has been picked as a winner of a lump sum payout. This is what our latest winners had to say: Lydie A - won 370,000 Pounds Sterling "I've just won 370,000 Pounds. All of my dearest dreams and the dreams of my children will now come true and it is all thanks to you" Emma S - won 550,000 Pounds Sterling "I cannot explain the emotion when I saw all these zeros!! I cannot believe = I won 550,000!" * To begin your claim, contact your claims representative using the details below: Contact person: Oliver Morley Email: grircadyot@garrifulio.mailexpire.com Tel: +44 (0) 844 664 4633 +44 (0) 844 664 4599 Winning Details: Ref #: GPG-GEP/279-QE537FK41 Batch #: 16YQX-F89105 Amount Won: =A3739,761.25 Pounds Sterling Copyright =A9 2010 Grand Promotions Group, Inc. All Rights Reserved. From aelder@sgi.com Mon Aug 30 10:04:39 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UF4cqf008961 for ; Mon, 30 Aug 2010 10:04:39 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5F8CCAC015 for ; Mon, 30 Aug 2010 08:05:14 -0700 (PDT) Received: from [134.15.64.100] ([134.15.64.100]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 30 Aug 2010 10:05:13 -0500 Subject: Re: [PATCH] xfstests: update README file to document some recent changes From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com In-Reply-To: <1280771460.2236.68.camel@doink> References: <1280771460.2236.68.camel@doink> Content-Type: text/plain; charset="UTF-8" Date: Mon, 30 Aug 2010 10:05:12 -0500 Message-ID: <1283180712.5273.98.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 30 Aug 2010 15:05:13.0510 (UTC) FILETIME=[BF5BAC60:01CB4854] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2010-08-02 at 12:51 -0500, Alex Elder wrote: > Update the README file to document the new _cat_passwd and > _cat_group functions, and to recommend passing "-n" to > getfacl(1) so it produces numeric output. > > Signed-off-by: Alex Elder Ping? Trivial change (to README). > --- > README | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > Index: b/README > =================================================================== > --- a/README > +++ b/README > @@ -160,6 +160,20 @@ Test script environment: > string DATE for deterministic > output > > + _cat_passwd, - dump the content of the password > + _cat_group or group file (both the local file > + and the content of the NIS database > + if it is likely to be present) > + > + 4. General recommendations, usage conventions, etc.: > + - When the content of the password or group file is > + required, get it using the _cat_passwd and _cat_group > + functions, to ensure NIS information is included if NIS > + is active. > + - When calling getfacl in a test, pass the "-n" argument so > + that numeric rather than symbolic identifiers are used in > + the output. > + > Verified output: > > Each test script has a numerical name, e.g. 007, and an associated > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From sandeen@sandeen.net Mon Aug 30 11:43:42 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UGhf08012284 for ; Mon, 30 Aug 2010 11:43:42 -0500 X-ASG-Debug-ID: 1283187282-5124003f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91D7DD6DB76 for ; Mon, 30 Aug 2010 09:54:43 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id zHYXqZ43if7AFuWi for ; Mon, 30 Aug 2010 09:54:43 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 75E794A8B95A; Mon, 30 Aug 2010 11:44:17 -0500 (CDT) Message-ID: <4C7BDFE1.10804@sandeen.net> Date: Mon, 30 Aug 2010 11:44:17 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Bogdan CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsprogs: minimum version with these commands Subject: Re: xfsprogs: minimum version with these commands References: <4C7A2654.3080106@op.pl> <4C7B0EF6.5030505@sandeen.net> <4C7BDDB1.6030209@op.pl> In-Reply-To: <4C7BDDB1.6030209@op.pl> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1283187283 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39433 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Bogdan wrote: > On 30.08.2010 03:52, Eric Sandeen wrote: >> Bogdan wrote: >>> Hello. >>> >>> I couldn't find this information in the xfsprogs ChangeLog, so I'm >>> asking here: what is the minimum version of xfsprogs to: >>> >>> 1) contain these utilities: xfs_db, xfs_freeze, xfs_check, and >>> 2) xfs_db accepts the following command-line parameters: -i, -c, and >>> 3) xfs_freeze accepts the following command-line parameters: -f, -u, and >>> 4) xfs_db accepts the following interactive mode commands: "freesp >>> -d", "quit", "blockget -n", "ncheck", "sb 0", "print". >> I am not surprised that changelogs do not mention when "quit" was >> added to xfs_db ...! > > It could have been "exit" one day in the past, right? It could have been, but if it was "quit" from day one, that's never going to make it to a changelog. :) >>> Or is there a ChangeLog that covers all xfsprogs versions in such >>> deatil that I would be able to find this myself? If so, where can I >>> find it? >>> >> You could look at git and/or cvs history/blame to see when commands & >> options were added. > > Is everything really there? How do I get these? http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfsprogs.git http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfsdump.git http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/ Most everything should be there. >> Most of the things you ask about are SO OLD it will take some digging >> through renames and moves. > > I thought so. I'm surprised such things as added commands aren't in > the ChangeLog, unless they were present from the first version. > >> Do you really need to know if "xfs_check" was added in 1994, or 1995, for >> example? :) > > No. I need to know what was the first version of the xfsprogs package > that contained this program. The version number, not the year. well, equivalently, do you care if it was version 1.0.0 or 1.0.1, from the 1990's era. For everything you asked about, I think they've all been there since inception. I think picking a version from maybe 5 years ago and checking that the commands are all there would suffice; it would be -very- unlikely that anything older is still in use. >> This strikes me as a bit of an odd question; what is your motivation here? > > I'm writing a program that executes xfs_db and other processes, > passes commands to them and reads replies. Now I want to know what the > minimum required version is to be sure that these commands are > accepted. I know this might seem strange, but I'd like to know this in > more detail, so I can say "requires xfsprogs version X.Y.Z or newer" > instead of "requires xfsprogs" (which would imply that all versions > work, and this might not be the case). If it would be "1.0.0", great. > But I wanted to be sure. Ok, understood. I think the fastest route, since nothing you asked for is particularly "new" would be to just grab a sufficiently old version and double check that the commands are there. Easier than chasing through the repository, I think. -Eric From s.priebe@profihost.ag Mon Aug 30 12:11:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UHB9KM013107 for ; Mon, 30 Aug 2010 12:11:10 -0500 X-ASG-Debug-ID: 1283188930-4c2d00ef0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server655-han.de-nserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9A7EDD6E014 for ; Mon, 30 Aug 2010 10:22:10 -0700 (PDT) Received: from server655-han.de-nserver.de (server655-han.de-nserver.de [85.158.177.45]) by cuda.sgi.com with ESMTP id PzcAU2GdBwcfkC5w for ; Mon, 30 Aug 2010 10:22:10 -0700 (PDT) Received: (qmail 12478 invoked from network); 30 Aug 2010 19:11:44 +0200 Received: from dslb-088-070-073-235.pools.arcor-ip.net (HELO [192.168.178.15]) (88.70.73.235) (smtp-auth username s.priebe@profihost.ag, mechanism plain) by server655-han.de-nserver.de (qpsmtpd/0.82) with (AES256-SHA encrypted) ESMTPSA; Mon, 30 Aug 2010 19:11:44 +0200 Message-ID: <4C7BE651.30506@profihost.ag> Date: Mon, 30 Aug 2010 19:11:45 +0200 From: Stefan Priebe - Profihost AG User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM References: <4C7BA0A0.5090202@profihost.ag> In-Reply-To: <4C7BA0A0.5090202@profihost.ag> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-User-Auth: Auth by s.priebe@profihost.ag through 88.70.73.235 X-Barracuda-Connect: server655-han.de-nserver.de[85.158.177.45] X-Barracuda-Start-Time: 1283188931 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39435 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean i already run an xfs_repair over the drive but no results... Stefan Am 30.08.2010 14:14, schrieb Stefan Priebe - Profihost AG: > Hi, > > on one of our systems i want to activate prjquota support. The relevant > disk is the root disk so i added prjquota to rootflags kernel line. > > But when i do so i always get OOM out of Memory while checking quota's. > I also upgraded the system from 8GB to 16GB RAM but still the same. > Kernel is vanilla 2.6.32.19. > > Stefan > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From akshaylal@google.com Mon Aug 30 12:33:35 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UHXZFx013970 for ; Mon, 30 Aug 2010 12:33:35 -0500 X-ASG-Debug-ID: 1283189650-736703b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8246C35DD1 for ; Mon, 30 Aug 2010 10:34:10 -0700 (PDT) Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by cuda.sgi.com with ESMTP id CWP47bnvb4e0A695 for ; Mon, 30 Aug 2010 10:34:10 -0700 (PDT) Received: from hpaq5.eem.corp.google.com (hpaq5.eem.corp.google.com [172.25.149.5]) by smtp-out.google.com with ESMTP id o7UHY8KE010522 for ; Mon, 30 Aug 2010 10:34:08 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1283189649; bh=FSO3PwcLJacQ0gE20leCLBVxkyo=; h=MIME-Version:Reply-To:In-Reply-To:References:From:Date:Message-ID: Subject:To:Cc:Content-Type:Content-Transfer-Encoding; b=QMM5T1b9vE+F8lHwrHw8zdmC8iojjBvHpVYBRv2OVDphk9h+AyBCw17WS5Eg2NZeL cTuiZ5WZkz7/1wOzdWz/w== Received: from gyb13 (gyb13.prod.google.com [10.243.49.77]) by hpaq5.eem.corp.google.com with ESMTP id o7UHXaOE016174 for ; Mon, 30 Aug 2010 10:34:06 -0700 Received: by gyb13 with SMTP id 13so2837363gyb.35 for ; Mon, 30 Aug 2010 10:34:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:received:mime-version:received:reply-to :in-reply-to:references:from:date:message-id:subject:to:cc :content-type:content-transfer-encoding; bh=tfWIvazgUuttxH2uFCbXZwNINZvl9zZRteCVRRRoSLg=; b=MGRhq2DnB8tvM7iDfw0f1m7oOrZelMPw0qLOnU0kTWf/GiV0MnKXdn+2S0CBJr5lpe TJYVVPhBH98spVunR05g== DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:reply-to:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; b=PKZMTzgjMc7ZRt8MQzv/jbUvrJQ0YtD+P+0vGQILd/eAShPt5UbSLh8d2rmsCmVTNb 9Cbouv7NbqqcdfJEQ2nw== Received: by 10.151.6.5 with SMTP id j5mr2244384ybi.37.1283189646234; Mon, 30 Aug 2010 10:34:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.151.158.8 with HTTP; Mon, 30 Aug 2010 10:33:34 -0700 (PDT) Reply-To: alal@google.com In-Reply-To: <4C785710.9070405@sandeen.net> References: <1282941224-5805-1-git-send-email-alal@google.com> <20100827233216.GJ705@dastard> <4C785254.2020708@sandeen.net> <20100828001703.GK705@dastard> <4C785710.9070405@sandeen.net> From: Akshay Lal Date: Mon, 30 Aug 2010 10:33:34 -0700 Message-ID: X-ASG-Orig-Subj: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. Subject: Re: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correctly. To: Eric Sandeen Cc: Dave Chinner , xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-System-Of-Record: true X-Barracuda-Connect: smtp-out.google.com[74.125.121.35] X-Barracuda-Start-Time: 1283189651 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39437 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I reckon I've addressed all the concerns (yes even the comment mismatch) ---------------------------------------------------------------------------= ------------ Updated patch: ---------------------------------------------------------------------------= ------------ >From 6bf876f2b95e61409abbab24754c80354988bcc9 Mon Sep 17 00:00:00 2001 From: Akshay Lal Date: Fri, 27 Aug 2010 13:14:18 -0700 Subject: [PATCH] Test to ensure that the EOFBLOCK_FL gets set/unset correct= ly. As found by Theodore Ts'o: If a 128K file is falloc'ed using the KEEP_SIZE flag, and then write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. This forces e2fsck to complain about that inode. Bug reference: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 --- 243 | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 243.out | 13 +++++ group | 1 + 3 files changed, 191 insertions(+), 0 deletions(-) create mode 100644 243 create mode 100644 243.out diff --git a/243 b/243 new file mode 100644 index 0000000..1a6c4a5 --- /dev/null +++ b/243 @@ -0,0 +1,177 @@ +#! /bin/bash +# FS QA Test No. 243 +# +# Test to ensure that the EOFBLOCK_FL gets set/unset correctly. +# +# As found by Theodore Ts'o: +# If a 128K file is falloc'ed using the KEEP_SIZE flag, and then +# write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly. +# This is bad since it forces e2fsck to complain about that inode. +# If you have a large number of inodes that are written with fallocate +# using KEEP_SIZE, and then fill them up to their expected size, +# e2fsck will potentially complain about a _huge_ number of inodes. +# This would also cause a huge increase in the time taken by e2fsck +# to complete its check. +# +# Test scenarios covered: +# 1. Fallocating X bytes and writing Y (YX) (buffered and direct io) +# +# These test cases exercise the normal and edge case conditions using +# falloc (and KEEP_SIZE). +# +# Ref: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682 +# +#----------------------------------------------------------------------- +# Copyright (c) 2010 Google, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# +# creator +owner=3Dalal@google.com + +seq=3D`basename $0` +echo "QA output created by $seq" + +here=3D`pwd` +tmp=3D/tmp/$$ +status=3D1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# Test specific macros. +BIT_NOT_SET=3D0 # inode flag - 0x400000 bit is not set. +BIT_SET=3D1 # inode flag - 0x400000 bit is set. + +# Generic test cleanup function. +_cleanup() +{ + cd / + rm -f $tmp.* +} + +# Ext4 uses the EOFBLOCKS_FL bit when fallocating blocks with KEEP_SIZE +# enabled. The only time this bit should be set is when extending the allo= cated +# blocks further than what the i_size represents. In the situations wherei= n the +# i_size covers all allocated blocks, this bit should be cleared. + +# Checks the state of the sample file in the filesystem and returns whethe= r +# the inode flag 0x400000 is set or not. +_check_ext4_eof_flag() +{ + bit_set=3D1 + + # Check whether EOFBLOCK_FL is set. + # For ext4 filesystems: use debugfs to check if EOFBLOCKS_FL is set. + # Other filesystems: do nothing. The default fsck at the end of the tes= t + # should catch any potential errors. + if [ "${FSTYP}" =3D=3D "ext4" ]; then + # Unmount the ${TEST_DEV} + umount ${TEST_DEV} + + # Run debugfs to gather file_parameters - specifically iflags. + file_params=3D`debugfs ${TEST_DEV} -R "stat ${1}" 2>&1 | grep -e F= lags:` + iflags=3D${file_params#*Flags: } + + # Ensure that the iflags value was parsed correctly. + if [ -z ${iflags} ]; then + echo "iFlags value was not parsed successfully." >> $seq.f= ull + status=3D1 + exit ${status} + fi + + # Check if EOFBLOCKS_FL is set. + if ((${iflags} & 0x400000)); then + echo "EOFBLOCK_FL bit is set." >> $seq.full + bit_set=3D1 + else + echo "EOFBLOCK_FL bit is not set." >> $seq.full + bit_set=3D0 + fi + + # Check current bit state to expected value. + if [ ${bit_set} -ne ${2} ]; then + echo "Error: Current bit state incorrect." >> $seq.full + status=3D1 + exit ${status} + fi + + # Mount the ${TEST_DEV} + mount ${TEST_DEV} -t ${FSTYP} ${TEST_DIR} +} + +# Get standard environment, filters and checks. +. ./common.rc +. ./common.filter + +# Prerequisites for the test run. +_supported_fs ext4 xfs btrfs gfs2 +_supported_os Linux +_require_xfs_io_falloc + +# Real QA test starts here. +rm -f $seq.full + +# Begin test cases. +echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." \ + >> $seq.full +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 4096' \ + ${TEST_DIR}/test_1 | _filter_xfs_io_unique +_check_ext4_eof_flag test_1 ${BIT_SET} + +echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." \ + >> $seq.full +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 4096' \ + ${TEST_DIR}/test_2 | _filter_xfs_io_unique +_check_ext4_eof_flag test_2 ${BIT_SET} + +echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." = \ + >> $seq.full +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 40960' \ + ${TEST_DIR}/test_3 | _filter_xfs_io_unique +_check_ext4_eof_flag test_3 ${BIT_NOT_SET} + +echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." \ + >> $seq.full +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 40960' \ + -c 'pwrite 0 40960' \ + ${TEST_DIR}/test_4 | _filter_xfs_io_unique +_check_ext4_eof_flag test_4 ${BIT_NOT_SET} + +echo "Test 5: Fallocate 128k, seek 256k and write 4k block (buffered io)."= \ + >> $seq.full +${XFS_IO_PROG} -F -f \ + -c 'falloc -k 0 128k' \ + -c 'pwrite 256k 4k' \ + ${TEST_DIR}/test_5 | _filter_xfs_io_unique +_check_ext4_eof_flag test_5 ${BIT_NOT_SET} + +echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io= )." \ + >> $seq.full +${XFS_IO_PROG} -F -f -d \ + -c 'falloc -k 0 128k' \ + -c 'pwrite 256k 4k' \ + ${TEST_DIR}/test_6 | _filter_xfs_io_unique +_check_ext4_eof_flag test_6 ${BIT_NOT_SET} + +status=3D0 +exit ${status} diff --git a/243.out b/243.out new file mode 100644 index 0000000..290a005 --- /dev/null +++ b/243.out @@ -0,0 +1,13 @@ +QA output created by 243 +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 40960/40960 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 40960/40960 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 4096/4096 bytes at offset 262144 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 4096/4096 bytes at offset 262144 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) diff --git a/group b/group index ff16bb3..e6dab13 100644 --- a/group +++ b/group @@ -356,3 +356,4 @@ deprecated 240 auto aio quick rw 241 auto 242 auto quick prealloc +243 auto quick prealloc --=20 1.7.1 --- Cheers! Akshay Lal On Fri, Aug 27, 2010 at 5:23 PM, Eric Sandeen wrote: > Dave Chinner wrote: >> On Fri, Aug 27, 2010 at 07:03:32PM -0500, Eric Sandeen wrote: >>> Dave Chinner wrote: >>> >>>> I'm not sure this really is a generic test - it's testing an ext4 >>>> specific bug. We've got other generic tests that exercise fallocate, >>>> and some filesystems (like XFS) don't have special bits to say there >>>> are extents beyond EOF and checking a filesystem repeated won't >>>> report any problems. =A0So perhaps if should be '_supported_fs ext4' >>> >>> Oops we're giving conflicting advice :) =A0I thought a test that >>> exercises blocks-past-eof-filling at various boundaries made >>> sense in general, even if the specific regression test is ext4-specific= . >>> >>> Seems like at least ocfs2/btrfs might benefit from the basic exercise, >>> so I was recommending that it be generic. >> >> Ok, that seems reasonable. If the bug results in filesystem >> corruption, then maybe just relying on the check at the end of the >> test to fail it would be appropriate? > > That's fine by me, if e2fsck will squawk, that's enough. > > -Eric > >> Cheers, >> >> Dave. > > From aelder@oss.sgi.com Mon Aug 30 13:29:24 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_15,J_CHICKENPOX_33,J_CHICKENPOX_47,J_CHICKENPOX_51 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UITOPk016167 for ; Mon, 30 Aug 2010 13:29:24 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id o7UITMqL016059; Mon, 30 Aug 2010 13:29:22 -0500 Date: Mon, 30 Aug 2010 13:29:22 -0500 Message-Id: <201008301829.o7UITMqL016059@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.34-19248-g2bfc96a X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 6b0a2996a0c023d84bc27ec7528a6e54cb5ea264 X-Git-Newrev: 2bfc96a127bc1cc94d26bfaa40159966064f9c8c This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated b5420f2 xfs: do not discard page cache data on EAGAIN 3b93c7a xfs: don't do memory allocation under the CIL context lock a44f13e xfs: Reduce log force overhead for delayed logging 1a387d3 xfs: dummy transactions should not dirty VFS state 2fe3366 xfs: ensure f_ffree returned by statfs() is non-negative efceab1 xfs: handle negative wbc->nr_to_write during sync writeback 4536f2a xfs: fix untrusted inode number lookup 5b3eed7 xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE d17c701 xfs: unlock items before allowing the CIL to commit 5f248c9 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 b57922d convert remaining ->clear_inode() to ->evict_inode() a4ffdde simplify checks for I_CLEAR/I_FREEING fa9b227 xfs: new truncate sequence 155130a get rid of block_write_begin_newtrunc eafdc7d sort out blockdev_direct_IO variants 90e0c22 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 ade7ce3 quota: Clean up the namespace in dqblk_xfs.h from 6b0a2996a0c023d84bc27ec7528a6e54cb5ea264 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b5420f235953448eeae615b3361584dc5e414f34 Author: Christoph Hellwig Date: Tue Aug 24 11:47:51 2010 +1000 xfs: do not discard page cache data on EAGAIN If xfs_map_blocks returns EAGAIN because of lock contention we must redirty the page and not disard the pagecache content and return an error from writepage. We used to do this correctly, but the logic got lost during the recent reshuffle of the writepage code. Signed-off-by: Christoph Hellwig Reported-by: Mike Gao Tested-by: Mike Gao Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 3b93c7aaefc05ee2a75e2726929b01a321402984 Author: Dave Chinner Date: Tue Aug 24 11:45:53 2010 +1000 xfs: don't do memory allocation under the CIL context lock Formatting items requires memory allocation when using delayed logging. Currently that memory allocation is done while holding the CIL context lock in read mode. This means that if memory allocation takes some time (e.g. enters reclaim), we cannot push on the CIL until the allocation(s) required by formatting complete. This can stall CIL pushes for some time, and once a push is stalled so are all new transaction commits. Fix this splitting the item formatting into two steps. The first step which does the allocation and memcpy() into the allocated buffer is now done outside the CIL context lock, and only the CIL insert is done inside the CIL context lock. This avoids the stall issue. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit a44f13edf0ebb4e41942d0f16ca80489dcf6659d Author: Dave Chinner Date: Tue Aug 24 11:40:03 2010 +1000 xfs: Reduce log force overhead for delayed logging Delayed logging adds some serialisation to the log force process to ensure that it does not deference a bad commit context structure when determining if a CIL push is necessary or not. It does this by grabing the CIL context lock exclusively, then dropping it before pushing the CIL if necessary. This causes serialisation of all log forces and pushes regardless of whether a force is necessary or not. As a result fsync heavy workloads (like dbench) can be significantly slower with delayed logging than without. To avoid this penalty, copy the current sequence from the context to the CIL structure when they are swapped. This allows us to do unlocked checks on the current sequence without having to worry about dereferencing context structures that may have already been freed. Hence we can remove the CIL context locking in the forcing code and only call into the push code if the current context matches the sequence we need to force. By passing the sequence into the push code, we can check the sequence again once we have the CIL lock held exclusive and abort if the sequence has already been pushed. This avoids a lock round-trip and unnecessary CIL pushes when we have racing push calls. The result is that the regression in dbench performance goes away - this change improves dbench performance on a ramdisk from ~2100MB/s to ~2500MB/s. This compares favourably to not using delayed logging which retuns ~2500MB/s for the same workload. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 1a387d3be2b30c90f20d49a3497a8fc0693a9d18 Author: Dave Chinner Date: Tue Aug 24 11:46:31 2010 +1000 xfs: dummy transactions should not dirty VFS state When we need to cover the log, we issue dummy transactions to ensure the current log tail is on disk. Unfortunately we currently use the root inode in the dummy transaction, and the act of committing the transaction dirties the inode at the VFS level. As a result, the VFS writeback of the dirty inode will prevent the filesystem from idling long enough for the log covering state machine to complete. The state machine gets stuck in a loop issuing new dummy transactions to cover the log and never makes progress. To avoid this problem, the dummy transactions should not cause externally visible state changes. To ensure this occurs, make sure that dummy transactions log an unchanging field in the superblock as it's state is never propagated outside the filesystem. This allows the log covering state machine to complete successfully and the filesystem now correctly enters a fully idle state about 90s after the last modification was made. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 2fe33661fcd79d4c53022509f7223d526b5fa233 Author: Stuart Brodsky Date: Tue Aug 24 11:46:05 2010 +1000 xfs: ensure f_ffree returned by statfs() is non-negative Because of delayed updates to sb_icount field in the super block, it is possible to allocate over maxicount number of inodes. This causes the arithmetic to calculate a negative number of free inodes in user commands like df or stat -f. Since maxicount is a somewhat arbitrary number, a slight over allocation is not critical but user commands should be displayed as 0 or greater and never go negative. To do this the value in the stats buffer f_ffree is capped to never go negative. [ Modified to use max_t as per Christoph's comment. ] Signed-off-by: Stu Brodsky Signed-off-by: Dave Chinner commit efceab1d563153a2b1a6e7d35376241a48126989 Author: Dave Chinner Date: Tue Aug 24 11:44:56 2010 +1000 xfs: handle negative wbc->nr_to_write during sync writeback During data integrity (WB_SYNC_ALL) writeback, wbc->nr_to_write will go negative on inodes with more than 1024 dirty pages due to implementation details of write_cache_pages(). Currently XFS will abort page clustering in writeback once nr_to_write drops below zero, and so for data integrity writeback we will do very inefficient page at a time allocation and IO submission for inodes with large numbers of dirty pages. Fix this by only aborting the page clustering code when wbc->nr_to_write is negative and the sync mode is WB_SYNC_NONE. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 4536f2ad8b330453d7ebec0746c4374eadd649b1 Author: Dave Chinner Date: Tue Aug 24 11:42:30 2010 +1000 xfs: fix untrusted inode number lookup Commit 7124fe0a5b619d65b739477b3b55a20bf805b06d ("xfs: validate untrusted inode numbers during lookup") changes the inode lookup code to do btree lookups for untrusted inode numbers. This change made an invalid assumption about the alignment of inodes and hence incorrectly calculated the first inode in the cluster. As a result, some inode numbers were being incorrectly considered invalid when they were actually valid. The issue was not picked up by the xfstests suite because it always runs fsr and dump (the two utilities that utilise the bulkstat interface) on cache hot inodes and hence the lookup code in the cold cache path was not sufficiently exercised to uncover this intermittent problem. Fix the issue by relaxing the btree lookup criteria and then checking if the record returned contains the inode number we are lookup for. If it we get an incorrect record, then the inode number is invalid. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 5b3eed756cd37255cad1181bd86bfd0977e97953 Author: Dave Chinner Date: Tue Aug 24 11:42:41 2010 +1000 xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE Under heavy load parallel metadata loads (e.g. dbench), we can fail to mark all the inodes in a cluster being freed as XFS_ISTALE as we skip inodes we cannot get the XFS_ILOCK_EXCL or the flush lock on. When this happens and the inode cluster buffer has already been marked stale and freed, inode reclaim can try to write the inode out as it is dirty and not marked stale. This can result in writing th metadata to an freed extent, or in the case it has already been overwritten trigger a magic number check failure and return an EUCLEAN error such as: Filesystem "ram0": inode 0x442ba1 background reclaim flush failed with 117 Fix this by ensuring that we hoover up all in memory inodes in the cluster and mark them XFS_ISTALE when freeing the cluster. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit d17c701ce6a548a92f7f8a3cec20299465f36ee3 Author: Dave Chinner Date: Tue Aug 24 11:42:52 2010 +1000 xfs: unlock items before allowing the CIL to commit When we commit a transaction using delayed logging, we need to unlock the items in the transaciton before we unlock the CIL context and allow it to be checkpointed. If we unlock them after we release the CIl context lock, the CIL can checkpoint and complete before we free the log items. This breaks stale buffer item unlock and unpin processing as there is an implicit assumption that the unlock will occur before the unpin. Also, some log items need to store the LSN of the transaction commit in the item (inodes and EFIs) and so can race with other transaction completions if we don't prevent the CIL from checkpointing before the unlock occurs. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 5f248c9c251c60af3403902b26e08de43964ea0b Merge: f6cec0ae58c17522a7bc4e2f39dae19f199ab534 dca332528bc69e05f67161e1ed59929633d5e63d Author: Linus Torvalds Date: Tue Aug 10 11:26:52 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits) no need for list_for_each_entry_safe()/resetting with superblock list Fix sget() race with failing mount vfs: don't hold s_umount over close_bdev_exclusive() call sysv: do not mark superblock dirty on remount sysv: do not mark superblock dirty on mount btrfs: remove junk sb_dirt change BFS: clean up the superblock usage AFFS: wait for sb synchronization when needed AFFS: clean up dirty flag usage cifs: truncate fallout mbcache: fix shrinker function return value mbcache: Remove unused features add f_flags to struct statfs(64) pass a struct path to vfs_statfs update VFS documentation for method changes. All filesystems that need invalidate_inode_buffers() are doing that explicitly convert remaining ->clear_inode() to ->evict_inode() Make ->drop_inode() just return whether inode needs to be dropped fs/inode.c:clear_inode() is gone fs/inode.c:evict() doesn't care about delete vs. non-delete paths now ... Fix up trivial conflicts in fs/nilfs2/super.c commit b57922d97fd6f79b6dbe6db0c4fd30d219fa08c1 Author: Al Viro Date: Mon Jun 7 14:34:48 2010 -0400 convert remaining ->clear_inode() to ->evict_inode() Signed-off-by: Al Viro commit a4ffdde6e56fdf8c34ddadc2674d6eb978083369 Author: Al Viro Date: Wed Jun 2 17:38:30 2010 -0400 simplify checks for I_CLEAR/I_FREEING add I_CLEAR instead of replacing I_FREEING with it. I_CLEAR is equivalent to I_FREEING for almost all code looking at either; it's there to keep track of having called clear_inode() exactly once per inode lifetime, at some point after having set I_FREEING. I_CLEAR and I_FREEING never get set at the same time with the current code, so we can switch to setting i_flags to I_FREEING | I_CLEAR instead of I_CLEAR without loss of information. As the result of such change, checks become simpler and the amount of code that needs to know about I_CLEAR shrinks a lot. Signed-off-by: Al Viro commit fa9b227e9019ebaeeb06224ba531a490f91144b3 Author: Christoph Hellwig Date: Mon Jun 14 05:17:31 2010 -0400 xfs: new truncate sequence Convert XFS to the new truncate sequence. We still can have errors after updating the file size in xfs_setattr, but these are real I/O errors and lead to a transaction abort and filesystem shutdown, so they are not an issue. Errors from ->write_begin and write_end can now be handled correctly because we can actually get rid of the delalloc extents while previous the buffer state was stipped in block_invalidatepage. There is still no error handling for ->direct_IO, because doing so will need some major restructuring given that we only have the iolock shared and do not hold i_mutex at all. Fortunately leaving the normally allocated blocks behind there is not a major issue and this will get cleaned up by xfs_free_eofblock later. Note: the patch is against Al's vfs.git tree as that contains the nessecary preparations. I'd prefer to get it applied there so that we can get some testing in linux-next. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit 155130a4f7848b1aac439cab6bda1a175507c71c Author: Christoph Hellwig Date: Fri Jun 4 11:29:58 2010 +0200 get rid of block_write_begin_newtrunc Move the call to vmtruncate to get rid of accessive blocks to the callers in preparation of the new truncate sequence and rename the non-truncating version to block_write_begin. While we're at it also remove several unused arguments to block_write_begin. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit eafdc7d190a944c755a9fe68573c193e6e0217e7 Author: Christoph Hellwig Date: Fri Jun 4 11:29:53 2010 +0200 sort out blockdev_direct_IO variants Move the call to vmtruncate to get rid of accessive blocks to the callers in prepearation of the new truncate calling sequence. This was only done for DIO_LOCKING filesystems, so the __blockdev_direct_IO_newtrunc variant was not needed anyway. Get rid of blockdev_direct_IO_no_locking and its _newtrunc variant while at it as just opencoding the two additional paramters is shorted than the name suffix. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit 90e0c225968f0878e090c7ff3f88323973476cee Merge: 938a73b959cf77aadc41bded3bf416b618aa20b3 5f11e6a44059f728dddd8d0dbe5b4368ea93575b Author: Linus Torvalds Date: Sat Aug 7 12:57:07 2010 -0700 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: ext3: Fix dirtying of journalled buffers in data=journal mode ext3: default to ordered mode quota: Use mark_inode_dirty_sync instead of mark_inode_dirty quota: Change quota error message to print out disk and function name MAINTAINERS: Update entries of ext2 and ext3 MAINTAINERS: Update address of Andreas Dilger ext3: Avoid filesystem corruption after a crash under heavy delete load ext3: remove vestiges of nobh support ext3: Fix set but unused variables quota: clean up quota active checks quota: Clean up the namespace in dqblk_xfs.h quota: check quota reservation on remove_dquot_ref commit ade7ce31c22e961dfbe1a6d57fd362c90c187cbd Author: Christoph Hellwig Date: Fri Jun 4 10:56:01 2010 +0200 quota: Clean up the namespace in dqblk_xfs.h Almost all identifiers use the FS_* namespace, so rename the missing few XFS_* ones to FS_* as well. Without this some people might get upset about having too many XFS names in generic code. Acked-by: Steven Whitehouse Signed-off-by: Christoph Hellwig Signed-off-by: Jan Kara ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_aops.c | 75 +++++++++--- fs/xfs/linux-2.6/xfs_iops.c | 20 +--- fs/xfs/linux-2.6/xfs_linux.h | 2 - fs/xfs/linux-2.6/xfs_quotaops.c | 10 +- fs/xfs/linux-2.6/xfs_super.c | 17 ++- fs/xfs/linux-2.6/xfs_sync.c | 42 +------ fs/xfs/linux-2.6/xfs_trace.h | 2 +- fs/xfs/quota/xfs_qm_syscalls.c | 32 +++--- fs/xfs/xfs_fsops.c | 31 +++-- fs/xfs/xfs_fsops.h | 2 +- fs/xfs/xfs_ialloc.c | 16 ++- fs/xfs/xfs_inode.c | 49 ++++---- fs/xfs/xfs_log.c | 7 +- fs/xfs/xfs_log_cil.c | 263 +++++++++++++++++++++++---------------- fs/xfs/xfs_log_priv.h | 13 ++- fs/xfs/xfs_trans.c | 5 +- fs/xfs/xfs_trans_priv.h | 3 +- fs/xfs/xfs_vnodeops.c | 38 +++--- 18 files changed, 350 insertions(+), 277 deletions(-) hooks/post-receive -- XFS development tree From aelder@oss.sgi.com Mon Aug 30 13:34:40 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_15,J_CHICKENPOX_33,J_CHICKENPOX_47,J_CHICKENPOX_51 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UIYe4o016692 for ; Mon, 30 Aug 2010 13:34:40 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id o7UIYcVR016583; Mon, 30 Aug 2010 13:34:38 -0500 Date: Mon, 30 Aug 2010 13:34:38 -0500 Message-Id: <201008301834.o7UIYcVR016583@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.34-19248-g2bfc96a X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: 6b0a2996a0c023d84bc27ec7528a6e54cb5ea264 X-Git-Newrev: 2bfc96a127bc1cc94d26bfaa40159966064f9c8c This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated b5420f2 xfs: do not discard page cache data on EAGAIN 3b93c7a xfs: don't do memory allocation under the CIL context lock a44f13e xfs: Reduce log force overhead for delayed logging 1a387d3 xfs: dummy transactions should not dirty VFS state 2fe3366 xfs: ensure f_ffree returned by statfs() is non-negative efceab1 xfs: handle negative wbc->nr_to_write during sync writeback 4536f2a xfs: fix untrusted inode number lookup 5b3eed7 xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE d17c701 xfs: unlock items before allowing the CIL to commit 5f248c9 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 b57922d convert remaining ->clear_inode() to ->evict_inode() a4ffdde simplify checks for I_CLEAR/I_FREEING fa9b227 xfs: new truncate sequence 155130a get rid of block_write_begin_newtrunc eafdc7d sort out blockdev_direct_IO variants 90e0c22 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 ade7ce3 quota: Clean up the namespace in dqblk_xfs.h from 6b0a2996a0c023d84bc27ec7528a6e54cb5ea264 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b5420f235953448eeae615b3361584dc5e414f34 Author: Christoph Hellwig Date: Tue Aug 24 11:47:51 2010 +1000 xfs: do not discard page cache data on EAGAIN If xfs_map_blocks returns EAGAIN because of lock contention we must redirty the page and not disard the pagecache content and return an error from writepage. We used to do this correctly, but the logic got lost during the recent reshuffle of the writepage code. Signed-off-by: Christoph Hellwig Reported-by: Mike Gao Tested-by: Mike Gao Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 3b93c7aaefc05ee2a75e2726929b01a321402984 Author: Dave Chinner Date: Tue Aug 24 11:45:53 2010 +1000 xfs: don't do memory allocation under the CIL context lock Formatting items requires memory allocation when using delayed logging. Currently that memory allocation is done while holding the CIL context lock in read mode. This means that if memory allocation takes some time (e.g. enters reclaim), we cannot push on the CIL until the allocation(s) required by formatting complete. This can stall CIL pushes for some time, and once a push is stalled so are all new transaction commits. Fix this splitting the item formatting into two steps. The first step which does the allocation and memcpy() into the allocated buffer is now done outside the CIL context lock, and only the CIL insert is done inside the CIL context lock. This avoids the stall issue. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit a44f13edf0ebb4e41942d0f16ca80489dcf6659d Author: Dave Chinner Date: Tue Aug 24 11:40:03 2010 +1000 xfs: Reduce log force overhead for delayed logging Delayed logging adds some serialisation to the log force process to ensure that it does not deference a bad commit context structure when determining if a CIL push is necessary or not. It does this by grabing the CIL context lock exclusively, then dropping it before pushing the CIL if necessary. This causes serialisation of all log forces and pushes regardless of whether a force is necessary or not. As a result fsync heavy workloads (like dbench) can be significantly slower with delayed logging than without. To avoid this penalty, copy the current sequence from the context to the CIL structure when they are swapped. This allows us to do unlocked checks on the current sequence without having to worry about dereferencing context structures that may have already been freed. Hence we can remove the CIL context locking in the forcing code and only call into the push code if the current context matches the sequence we need to force. By passing the sequence into the push code, we can check the sequence again once we have the CIL lock held exclusive and abort if the sequence has already been pushed. This avoids a lock round-trip and unnecessary CIL pushes when we have racing push calls. The result is that the regression in dbench performance goes away - this change improves dbench performance on a ramdisk from ~2100MB/s to ~2500MB/s. This compares favourably to not using delayed logging which retuns ~2500MB/s for the same workload. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 1a387d3be2b30c90f20d49a3497a8fc0693a9d18 Author: Dave Chinner Date: Tue Aug 24 11:46:31 2010 +1000 xfs: dummy transactions should not dirty VFS state When we need to cover the log, we issue dummy transactions to ensure the current log tail is on disk. Unfortunately we currently use the root inode in the dummy transaction, and the act of committing the transaction dirties the inode at the VFS level. As a result, the VFS writeback of the dirty inode will prevent the filesystem from idling long enough for the log covering state machine to complete. The state machine gets stuck in a loop issuing new dummy transactions to cover the log and never makes progress. To avoid this problem, the dummy transactions should not cause externally visible state changes. To ensure this occurs, make sure that dummy transactions log an unchanging field in the superblock as it's state is never propagated outside the filesystem. This allows the log covering state machine to complete successfully and the filesystem now correctly enters a fully idle state about 90s after the last modification was made. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 2fe33661fcd79d4c53022509f7223d526b5fa233 Author: Stuart Brodsky Date: Tue Aug 24 11:46:05 2010 +1000 xfs: ensure f_ffree returned by statfs() is non-negative Because of delayed updates to sb_icount field in the super block, it is possible to allocate over maxicount number of inodes. This causes the arithmetic to calculate a negative number of free inodes in user commands like df or stat -f. Since maxicount is a somewhat arbitrary number, a slight over allocation is not critical but user commands should be displayed as 0 or greater and never go negative. To do this the value in the stats buffer f_ffree is capped to never go negative. [ Modified to use max_t as per Christoph's comment. ] Signed-off-by: Stu Brodsky Signed-off-by: Dave Chinner commit efceab1d563153a2b1a6e7d35376241a48126989 Author: Dave Chinner Date: Tue Aug 24 11:44:56 2010 +1000 xfs: handle negative wbc->nr_to_write during sync writeback During data integrity (WB_SYNC_ALL) writeback, wbc->nr_to_write will go negative on inodes with more than 1024 dirty pages due to implementation details of write_cache_pages(). Currently XFS will abort page clustering in writeback once nr_to_write drops below zero, and so for data integrity writeback we will do very inefficient page at a time allocation and IO submission for inodes with large numbers of dirty pages. Fix this by only aborting the page clustering code when wbc->nr_to_write is negative and the sync mode is WB_SYNC_NONE. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 4536f2ad8b330453d7ebec0746c4374eadd649b1 Author: Dave Chinner Date: Tue Aug 24 11:42:30 2010 +1000 xfs: fix untrusted inode number lookup Commit 7124fe0a5b619d65b739477b3b55a20bf805b06d ("xfs: validate untrusted inode numbers during lookup") changes the inode lookup code to do btree lookups for untrusted inode numbers. This change made an invalid assumption about the alignment of inodes and hence incorrectly calculated the first inode in the cluster. As a result, some inode numbers were being incorrectly considered invalid when they were actually valid. The issue was not picked up by the xfstests suite because it always runs fsr and dump (the two utilities that utilise the bulkstat interface) on cache hot inodes and hence the lookup code in the cold cache path was not sufficiently exercised to uncover this intermittent problem. Fix the issue by relaxing the btree lookup criteria and then checking if the record returned contains the inode number we are lookup for. If it we get an incorrect record, then the inode number is invalid. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 5b3eed756cd37255cad1181bd86bfd0977e97953 Author: Dave Chinner Date: Tue Aug 24 11:42:41 2010 +1000 xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE Under heavy load parallel metadata loads (e.g. dbench), we can fail to mark all the inodes in a cluster being freed as XFS_ISTALE as we skip inodes we cannot get the XFS_ILOCK_EXCL or the flush lock on. When this happens and the inode cluster buffer has already been marked stale and freed, inode reclaim can try to write the inode out as it is dirty and not marked stale. This can result in writing th metadata to an freed extent, or in the case it has already been overwritten trigger a magic number check failure and return an EUCLEAN error such as: Filesystem "ram0": inode 0x442ba1 background reclaim flush failed with 117 Fix this by ensuring that we hoover up all in memory inodes in the cluster and mark them XFS_ISTALE when freeing the cluster. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit d17c701ce6a548a92f7f8a3cec20299465f36ee3 Author: Dave Chinner Date: Tue Aug 24 11:42:52 2010 +1000 xfs: unlock items before allowing the CIL to commit When we commit a transaction using delayed logging, we need to unlock the items in the transaciton before we unlock the CIL context and allow it to be checkpointed. If we unlock them after we release the CIl context lock, the CIL can checkpoint and complete before we free the log items. This breaks stale buffer item unlock and unpin processing as there is an implicit assumption that the unlock will occur before the unpin. Also, some log items need to store the LSN of the transaction commit in the item (inodes and EFIs) and so can race with other transaction completions if we don't prevent the CIL from checkpointing before the unlock occurs. Cc: Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 5f248c9c251c60af3403902b26e08de43964ea0b Merge: f6cec0ae58c17522a7bc4e2f39dae19f199ab534 dca332528bc69e05f67161e1ed59929633d5e63d Author: Linus Torvalds Date: Tue Aug 10 11:26:52 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits) no need for list_for_each_entry_safe()/resetting with superblock list Fix sget() race with failing mount vfs: don't hold s_umount over close_bdev_exclusive() call sysv: do not mark superblock dirty on remount sysv: do not mark superblock dirty on mount btrfs: remove junk sb_dirt change BFS: clean up the superblock usage AFFS: wait for sb synchronization when needed AFFS: clean up dirty flag usage cifs: truncate fallout mbcache: fix shrinker function return value mbcache: Remove unused features add f_flags to struct statfs(64) pass a struct path to vfs_statfs update VFS documentation for method changes. All filesystems that need invalidate_inode_buffers() are doing that explicitly convert remaining ->clear_inode() to ->evict_inode() Make ->drop_inode() just return whether inode needs to be dropped fs/inode.c:clear_inode() is gone fs/inode.c:evict() doesn't care about delete vs. non-delete paths now ... Fix up trivial conflicts in fs/nilfs2/super.c commit b57922d97fd6f79b6dbe6db0c4fd30d219fa08c1 Author: Al Viro Date: Mon Jun 7 14:34:48 2010 -0400 convert remaining ->clear_inode() to ->evict_inode() Signed-off-by: Al Viro commit a4ffdde6e56fdf8c34ddadc2674d6eb978083369 Author: Al Viro Date: Wed Jun 2 17:38:30 2010 -0400 simplify checks for I_CLEAR/I_FREEING add I_CLEAR instead of replacing I_FREEING with it. I_CLEAR is equivalent to I_FREEING for almost all code looking at either; it's there to keep track of having called clear_inode() exactly once per inode lifetime, at some point after having set I_FREEING. I_CLEAR and I_FREEING never get set at the same time with the current code, so we can switch to setting i_flags to I_FREEING | I_CLEAR instead of I_CLEAR without loss of information. As the result of such change, checks become simpler and the amount of code that needs to know about I_CLEAR shrinks a lot. Signed-off-by: Al Viro commit fa9b227e9019ebaeeb06224ba531a490f91144b3 Author: Christoph Hellwig Date: Mon Jun 14 05:17:31 2010 -0400 xfs: new truncate sequence Convert XFS to the new truncate sequence. We still can have errors after updating the file size in xfs_setattr, but these are real I/O errors and lead to a transaction abort and filesystem shutdown, so they are not an issue. Errors from ->write_begin and write_end can now be handled correctly because we can actually get rid of the delalloc extents while previous the buffer state was stipped in block_invalidatepage. There is still no error handling for ->direct_IO, because doing so will need some major restructuring given that we only have the iolock shared and do not hold i_mutex at all. Fortunately leaving the normally allocated blocks behind there is not a major issue and this will get cleaned up by xfs_free_eofblock later. Note: the patch is against Al's vfs.git tree as that contains the nessecary preparations. I'd prefer to get it applied there so that we can get some testing in linux-next. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit 155130a4f7848b1aac439cab6bda1a175507c71c Author: Christoph Hellwig Date: Fri Jun 4 11:29:58 2010 +0200 get rid of block_write_begin_newtrunc Move the call to vmtruncate to get rid of accessive blocks to the callers in preparation of the new truncate sequence and rename the non-truncating version to block_write_begin. While we're at it also remove several unused arguments to block_write_begin. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit eafdc7d190a944c755a9fe68573c193e6e0217e7 Author: Christoph Hellwig Date: Fri Jun 4 11:29:53 2010 +0200 sort out blockdev_direct_IO variants Move the call to vmtruncate to get rid of accessive blocks to the callers in prepearation of the new truncate calling sequence. This was only done for DIO_LOCKING filesystems, so the __blockdev_direct_IO_newtrunc variant was not needed anyway. Get rid of blockdev_direct_IO_no_locking and its _newtrunc variant while at it as just opencoding the two additional paramters is shorted than the name suffix. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit 90e0c225968f0878e090c7ff3f88323973476cee Merge: 938a73b959cf77aadc41bded3bf416b618aa20b3 5f11e6a44059f728dddd8d0dbe5b4368ea93575b Author: Linus Torvalds Date: Sat Aug 7 12:57:07 2010 -0700 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: ext3: Fix dirtying of journalled buffers in data=journal mode ext3: default to ordered mode quota: Use mark_inode_dirty_sync instead of mark_inode_dirty quota: Change quota error message to print out disk and function name MAINTAINERS: Update entries of ext2 and ext3 MAINTAINERS: Update address of Andreas Dilger ext3: Avoid filesystem corruption after a crash under heavy delete load ext3: remove vestiges of nobh support ext3: Fix set but unused variables quota: clean up quota active checks quota: Clean up the namespace in dqblk_xfs.h quota: check quota reservation on remove_dquot_ref commit ade7ce31c22e961dfbe1a6d57fd362c90c187cbd Author: Christoph Hellwig Date: Fri Jun 4 10:56:01 2010 +0200 quota: Clean up the namespace in dqblk_xfs.h Almost all identifiers use the FS_* namespace, so rename the missing few XFS_* ones to FS_* as well. Without this some people might get upset about having too many XFS names in generic code. Acked-by: Steven Whitehouse Signed-off-by: Christoph Hellwig Signed-off-by: Jan Kara ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_aops.c | 75 +++++++++--- fs/xfs/linux-2.6/xfs_iops.c | 20 +--- fs/xfs/linux-2.6/xfs_linux.h | 2 - fs/xfs/linux-2.6/xfs_quotaops.c | 10 +- fs/xfs/linux-2.6/xfs_super.c | 17 ++- fs/xfs/linux-2.6/xfs_sync.c | 42 +------ fs/xfs/linux-2.6/xfs_trace.h | 2 +- fs/xfs/quota/xfs_qm_syscalls.c | 32 +++--- fs/xfs/xfs_fsops.c | 31 +++-- fs/xfs/xfs_fsops.h | 2 +- fs/xfs/xfs_ialloc.c | 16 ++- fs/xfs/xfs_inode.c | 49 ++++---- fs/xfs/xfs_log.c | 7 +- fs/xfs/xfs_log_cil.c | 263 +++++++++++++++++++++++---------------- fs/xfs/xfs_log_priv.h | 13 ++- fs/xfs/xfs_trans.c | 5 +- fs/xfs/xfs_trans_priv.h | 3 +- fs/xfs/xfs_vnodeops.c | 38 +++--- 18 files changed, 350 insertions(+), 277 deletions(-) hooks/post-receive -- XFS development tree From nathans@aconex.com Mon Aug 30 14:51:06 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UJp6N0019353 for ; Mon, 30 Aug 2010 14:51:06 -0500 X-ASG-Debug-ID: 1283197903-3ba502e00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DA9281B9F4A3 for ; Mon, 30 Aug 2010 12:51:44 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id nS1A37R6vBgn3Umc for ; Mon, 30 Aug 2010 12:51:44 -0700 (PDT) Received: from postoffice.aconex.com (localhost [127.0.0.1]) by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 9FE1A7F9315; Tue, 31 Aug 2010 05:51:41 +1000 (EST) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id ihDFnQe9on5XsfLm; Tue, 31 Aug 2010 05:51:41 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10]) by postoffice.aconex.com (Postfix) with ESMTP id 8C6C8A50264; Tue, 31 Aug 2010 05:51:41 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 8891A9D0002; Tue, 31 Aug 2010 05:51:41 +1000 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tk+FESkLOZd8; Tue, 31 Aug 2010 05:51:37 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by gatekeeper.aconex.com (Postfix) with ESMTP id A7B669D0001; Tue, 31 Aug 2010 05:51:37 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by mail-au.aconex.com (Postfix) with ESMTP id A1A4D64B864A; Tue, 31 Aug 2010 05:51:37 +1000 (EST) Date: Tue, 31 Aug 2010 05:51:37 +1000 (EST) From: Nathan Scott To: aelder@sgi.com Cc: xfs Message-ID: <1123090185.486021283197897549.JavaMail.root@mail-au.aconex.com> In-Reply-To: <1283178097.5273.97.camel@doink> X-ASG-Orig-Subj: Re: Review: xfsprogs with libblkid enabled for Debian Subject: Re: Review: xfsprogs with libblkid enabled for Debian MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 5.0.18_GA_3011.RHEL5_64 (ZimbraWebClient - SAF3 (Mac)/5.0.18_GA_3011.RHEL5_64) X-Barracuda-Connect: mail.aconex.com[203.89.202.182] X-Barracuda-Start-Time: 1283197904 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0164 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39447 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean ----- "Alex Elder" wrote: > > > Next week also has Alex back from vacation, so I'd suggest waiting > > > if he has any input on this. > > > > As discussed on IRC, I made the changes and push out a new release.sh > > tagged git update to kernel.org. I pushed the src tarball to oss also, > > and libblkid enabled packages will be uploaded to Debian shortly. > > Sorry I didn't get this done for you last week. I hadn't looked Not a problem. > over the patch closely yet and didn't notice you were proposing > a new release. > > Now that I've looked, I can say the changes all look fine to me. > I'm glad you broke up your recent patch into multiple commits. > > I will publish your versioned release on oss.sgi.com today after > my tests complete. Great, thanks. You'll find there is a src tarball on oss already, in what looked like the usual spot that you put 'em. If, while testing, you come across something else that needs to change, pls bump version again before releasing - thanks! cheers. -- Nathan From ygao.linux@gmail.com Mon Aug 30 15:54:27 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UKsR83021833 for ; Mon, 30 Aug 2010 15:54:27 -0500 X-ASG-Debug-ID: 1283201704-4e8403b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5591936A5C for ; Mon, 30 Aug 2010 13:55:04 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id Rx5dAYyEHUutsg86 for ; Mon, 30 Aug 2010 13:55:04 -0700 (PDT) Received: by qwe5 with SMTP id 5so5416160qwe.26 for ; Mon, 30 Aug 2010 13:55:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=dlGbkIUQF6O8DndY4z1Mik+iEuUYS9nUVBDHGrfdDzs=; b=eugUgnNKhvFM09h5raPywk+jLl4o1gLLwFsjbFOKy0tu0dy1KB5FPUtWBhIP5Khp5Q lPohUQo/M4Hoq88xcxUSB/zj9i+FvJsThjHFq9qOkrH6Ir4lEEZSSo9R7ZLDEQn411eK P59Dwc4WBgYR4XHM2R8Vb/7IpHLkgOiKTe2Dw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=fD6NN2nCWClTv0LVUHr1O2emOTaNK/NgFvpkofrsYEZBBJveGmS7RH1VD39eYn8Uqr P5j8dGRPVX3G4OdcNFKRymMrf09lH6MXspEXyMah+pKmhLWc8I6aA1m6M1V3EHUEb4o4 1m1XLp9s9m0mwUaS4g4mT0NGzpMO75Ih86noE= MIME-Version: 1.0 Received: by 10.224.27.104 with SMTP id h40mr3325482qac.125.1283201702797; Mon, 30 Aug 2010 13:55:02 -0700 (PDT) Received: by 10.229.88.204 with HTTP; Mon, 30 Aug 2010 13:55:02 -0700 (PDT) Date: Mon, 30 Aug 2010 15:55:02 -0500 Message-ID: X-ASG-Orig-Subj: What should to do with ASSERT failed Subject: What should to do with ASSERT failed From: Mike Gao To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=00c09f899714aba312048f10ad8a X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1283201705 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39451 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --00c09f899714aba312048f10ad8a Content-Type: text/plain; charset=ISO-8859-1 xfs_vm_writepage { /* * A hole may still be marked uptodate because discard_buffer * leaves the flag set. */ if (!buffer_mapped(bh) && buffer_uptodate(bh)) { ASSERT(!buffer_dirty(bh)); imap_valid = 0; continue; } } I met this case that buffer is marked as dirty which make assert failed. What does this mean and what I can do with it? Thanks very much, Mike --00c09f899714aba312048f10ad8a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
xfs_vm_writep= age
{
=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 /*
* A = hole may still be marked uptodate because discard_buffer
* leaves the fla= g set.
*/<= /div>
if (!buffer_mapped(bh) && buffer_uptodate(bh)) {
ASSERT(!buffer_dirty(bh));=
imap_valid =3D= 0;
conti= nue;
}
}

I met this case that buffer is marked as= dirty which make assert failed.=A0
What does this mean and what = I can do with it?

Thanks very much,
Mike
--00c09f899714aba312048f10ad8a-- From BATV+c9555bd924acc20b0753+2563+infradead.org+hch@bombadil.srs.infradead.org Mon Aug 30 16:43:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7ULhCYt025447 for ; Mon, 30 Aug 2010 16:43:13 -0500 X-ASG-Debug-ID: 1283204630-5e60024d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B5C871E58689; Mon, 30 Aug 2010 14:43:50 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id En6AqYqaoRMGCUSu; Mon, 30 Aug 2010 14:43:50 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1OqC8s-0005i7-8O; Mon, 30 Aug 2010 21:43:50 +0000 Date: Mon, 30 Aug 2010 17:43:50 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: update README file to document some recent changes Subject: Re: [PATCH] xfstests: update README file to document some recent changes Message-ID: <20100830214350.GA21020@infradead.org> References: <1280771460.2236.68.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280771460.2236.68.camel@doink> User-Agent: Mutt/1.5.20 (2009-08-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1283204630 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 02, 2010 at 12:51:00PM -0500, Alex Elder wrote: > Update the README file to document the new _cat_passwd and > _cat_group functions, and to recommend passing "-n" to > getfacl(1) so it produces numeric output. > > Signed-off-by: Alex Elder Looks good, Reviewed-by: Christoph Hellwig From sandeen@sandeen.net Mon Aug 30 16:46:43 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7ULkhkS025576 for ; Mon, 30 Aug 2010 16:46:43 -0500 X-ASG-Debug-ID: 1283204841-5ead02d30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 573B21E5869E for ; Mon, 30 Aug 2010 14:47:21 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id NMnnOUSriNaI0ODs for ; Mon, 30 Aug 2010 14:47:21 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id C04CA4A8B95F; Mon, 30 Aug 2010 16:47:20 -0500 (CDT) Message-ID: <4C7C26E8.9070308@sandeen.net> Date: Mon, 30 Aug 2010 16:47:20 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Mike Gao CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: What should to do with ASSERT failed Subject: Re: What should to do with ASSERT failed References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1283204841 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39453 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Mike Gao wrote: > xfs_vm_writepage > { > /* > * A hole may still be marked uptodate because discard_buffer > * leaves the flag set. > */ > if (!buffer_mapped(bh) && buffer_uptodate(bh)) { > ASSERT(!buffer_dirty(bh)); > imap_valid = 0; > continue; > } > } > > I met this case that buffer is marked as dirty which make assert failed. > What does this mean and what I can do with it? You can report it here, with more information on what load you were running, and the full backtrace that the ASSERT generated... thanks! And it means that we think we are in a hole, but the buffer for that hole is marked dirty, which we did not expect ... The change went in with this commit: 3d9b02e3c76531687ab5314e0edf266256f13c2d xfs: fix corruption case for block size < page size which was attempting to fix a very specific file corruption case. What kernel are you running on? What block size are you using? (xfs_info will tell you) Thanks, -Eric > Thanks very much, > Mike > > > ------------------------------------------------------------------------ > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From ygao.linux@gmail.com Mon Aug 30 17:55:36 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_00,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UMtZpA027799 for ; Mon, 30 Aug 2010 17:55:36 -0500 X-ASG-Debug-ID: 1283209596-695703580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f174.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 52DF314E27B4 for ; Mon, 30 Aug 2010 16:06:37 -0700 (PDT) Received: from mail-qy0-f174.google.com (mail-qy0-f174.google.com [209.85.216.174]) by cuda.sgi.com with ESMTP id SyDuuATo9OwULiFU for ; Mon, 30 Aug 2010 16:06:37 -0700 (PDT) Received: by qyk4 with SMTP id 4so24902qyk.5 for ; Mon, 30 Aug 2010 15:56:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=0HvOIrHPxos8m6yKi1X6XHcZhqQO/eEoDo9P5gociyA=; b=PhZ/J9Zeqh7lVxYOZAZANeORL3lYUJanvP4KAdDZwBH7lg6KevgUy3P9a5M/EmkwZf HDNY5XLC3GWI283yn7Hcb9Oe1pBc0SJ8sUGotEibaV+z/Xyr6pz4/q9C4dwtstSLEnS/ sKEKvW9z03jUaTM6NjJWOa1BM/rAYu1WwvYEU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=kHj0BtBIk6kCNlU0fAdhQbTkdppCBsguTgEnKiiwTSS8Q2FIiNQZ+GFZyJ6WylIPxI ThA2tvXTJnekfTNtErAI/lS0d4j1L6cvznTPQ4R35W538ipOxBa/ivQsLMmcXwZOqKth 9F/zoe+Agvi84a6MoPwVBEW0VFgDEnOHbkJ+U= MIME-Version: 1.0 Received: by 10.229.215.19 with SMTP id hc19mr3606211qcb.107.1283208967753; Mon, 30 Aug 2010 15:56:07 -0700 (PDT) Received: by 10.229.88.204 with HTTP; Mon, 30 Aug 2010 15:56:07 -0700 (PDT) In-Reply-To: <4C7C26E8.9070308@sandeen.net> References: <4C7C26E8.9070308@sandeen.net> Date: Mon, 30 Aug 2010 17:56:07 -0500 Message-ID: X-ASG-Orig-Subj: Re: What should to do with ASSERT failed Subject: Re: What should to do with ASSERT failed From: Mike Gao To: Eric Sandeen Cc: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=001636310673b21339048f125e78 X-Barracuda-Connect: mail-qy0-f174.google.com[209.85.216.174] X-Barracuda-Start-Time: 1283209600 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39459 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --001636310673b21339048f125e78 Content-Type: text/plain; charset=ISO-8859-1 Thanks very much for help. The kernel is pretty old, 2.6.19 but the xfs is pretty new. the block size is 512 and use mmap for test with write and read compare. (xfstest 074). If I ignored this ASSERT(comment out), the test will failed. I guess because some pages never written to disk. Assertion failed: !buffer_dirty(bh), file: fs/xfs/linux-2.6/xfs_aops.c, line: 1399 BUG: failure at fs/xfs/support/debug.c:108/assfail()! Kernel panic - not syncing: BUG! EIP: 0073:[] CPU: 0 Not tainted ESP: 007b:b75a6fa8 EFLAGS: 00000246 Not tainted EAX: 00000000 EBX: 00000e97 ECX: 00000013 EDX: 00000e97 ESI: 00000e93 EDI: 00000011 EBP: b75a6fc4 DS: 007b ES: 007b 0a7d7c94: [<0806bd41>] show_regs+0xc5/0xca 0a7d7cc0: [<0805a920>] panic_exit+0x25/0x3f 0a7d7cd4: [<0807b5d5>] atomic_notifier_call_chain+0x1d/0x33 0a7d7cf4: [<0807048f>] panic+0x4c/0xcf 0a7d7d10: [<081724cd>] xfs_hex_dump+0x0/0x7 0a7d7d1c: [<08168e26>] xfs_vm_writepage+0x226/0x656 0a7d7dbc: [<0809092f>] generic_writepages+0x164/0x27b 0a7d7e4c: [<0816926c>] xfs_vm_writepages+0x16/0x18 0a7d7e5c: [<08090a6a>] do_writepages+0x24/0x38 0a7d7e70: [<080bbe8b>] __writeback_single_inode+0x16d/0x2de 0a7d7ebc: [<080bc1ba>] sync_sb_inodes+0x1be/0x25c 0a7d7ef4: [<080bc299>] writeback_inodes+0x41/0x6c 0a7d7f08: [<080905b5>] background_writeout+0x66/0x93 0a7d7f54: [<0809106a>] pdflush+0xca/0x154 0a7d7f88: [<08080a83>] kthread+0xb6/0xe6 0a7d7fb4: [<080663ee>] run_kernel_thread+0x37/0x41 0a7d7fe0: [<0805acee>] new_thread_handler+0x64/0x8b 0a7d7ffc: [] 0xa55a5a5a On Mon, Aug 30, 2010 at 4:47 PM, Eric Sandeen wrote: > Mike Gao wrote: > > xfs_vm_writepage > > { > > /* > > * A hole may still be marked uptodate because discard_buffer > > * leaves the flag set. > > */ > > if (!buffer_mapped(bh) && buffer_uptodate(bh)) { > > ASSERT(!buffer_dirty(bh)); > > imap_valid = 0; > > continue; > > } > > } > > > > I met this case that buffer is marked as dirty which make assert failed. > > What does this mean and what I can do with it? > > You can report it here, with more information on what load you were > running, > and the full backtrace that the ASSERT generated... thanks! > > And it means that we think we are in a hole, but the buffer for > that hole is marked dirty, which we did not expect ... > > The change went in with this commit: > > 3d9b02e3c76531687ab5314e0edf266256f13c2d xfs: fix corruption case for block > size < page size > > which was attempting to fix a very specific file corruption case. > > What kernel are you running on? > > What block size are you using? (xfs_info will tell you) > > Thanks, > -Eric > > > Thanks very much, > > Mike > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > xfs mailing list > > xfs@oss.sgi.com > > http://oss.sgi.com/mailman/listinfo/xfs > > --001636310673b21339048f125e78 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Thanks very much for help. The kernel is pretty old, 2.6.19 but the xfs is = pretty new.
the block size is 512 and use mmap for test with write and = read compare. (xfstest 074).

If I ignored this ASS= ERT(comment out), the test will failed. I guess because some pages never wr= itten to disk.

Assertion failed: !buffer_dirty(bh), file: fs/xfs/linux= -2.6/xfs_aops.c, line: 1399
BUG: failure at fs/xfs/support/debug.= c:108/assfail()!
Kernel panic - not syncing: BUG!
=A0
EIP: 0073:[<b76f5424>] CPU: 0 Not tainted ESP: 007b:b75a6fa8 EFL= AGS: 00000246
=A0=A0 =A0Not tainted
EAX: 00000000 EBX: = 00000e97 ECX: 00000013 EDX: 00000e97
ESI: 00000e93 EDI: 00000011 = EBP: b75a6fc4 DS: 007b ES: 007b
0a7d7c94: =A0[<0806bd41>] show_regs+0xc5/0xca
0a7d7cc0= : =A0[<0805a920>] panic_exit+0x25/0x3f
0a7d7cd4: =A0[<08= 07b5d5>] atomic_notifier_call_chain+0x1d/0x33
0a7d7cf4: =A0[&l= t;0807048f>] panic+0x4c/0xcf
0a7d7d10: =A0[<081724cd>] xfs_hex_dump+0x0/0x7
0a7d7d1= c: =A0[<08168e26>] xfs_vm_writepage+0x226/0x656
0a7d7dbc: = =A0[<0809092f>] generic_writepages+0x164/0x27b
0a7d7e4c: = =A0[<0816926c>] xfs_vm_writepages+0x16/0x18
0a7d7e5c: =A0[<08090a6a>] do_writepages+0x24/0x38
0a7d= 7e70: =A0[<080bbe8b>] __writeback_single_inode+0x16d/0x2de
= 0a7d7ebc: =A0[<080bc1ba>] sync_sb_inodes+0x1be/0x25c
0a7d7e= f4: =A0[<080bc299>] writeback_inodes+0x41/0x6c
0a7d7f08: =A0[<080905b5>] background_writeout+0x66/0x93
0a7d7f54: =A0[<0809106a>] pdflush+0xca/0x154
0a7d7f88: = =A0[<08080a83>] kthread+0xb6/0xe6
0a7d7fb4: =A0[<080663e= e>] run_kernel_thread+0x37/0x41
0a7d7fe0: =A0[<0805acee>] new_thread_handler+0x64/0x8b
0a7d7ffc: =A0[<a55a5a5a>] 0xa55a5a5a

On Mon, Aug 30, 2010 at 4:47 PM, Eric Sandeen <sandeen@sandeen.net>= ; wrote:
Mike Gao = wrote:
> xfs_vm_writepage
> {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/*
> * A hole may still be marked uptodate because discard_buffer
> * leaves the flag set.
> */
> if (!buffer_mapped(bh) && buffer_uptodate(bh)) {
> ASSERT(!buffer_dirty(bh));
> imap_valid =3D 0;
> continue;
> }
> }
>
> I met this case that buffer is marked as dirty which make assert faile= d.
> What does this mean and what I can do with it?

You can report it here, with more information on what load you = were running,
and the full backtrace that the ASSERT generated... thanks!

And it means that we think we are in a hole, but the buffer for
that hole is marked dirty, which we did not expect ...

The change went in with this commit:

3d9b02e3c76531687ab5314e0edf266256f13c2d xfs: fix corruption case for block= size < page size

which was attempting to fix a very specific file corruption case.

What kernel are you running on?

What block size are you using? =A0(xfs_info will tell you)

Thanks,
-Eric

> Thanks very much,
> Mike
>
>
> ----------------------------------------------------------------------= --
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> = http://oss.sgi.com/mailman/listinfo/xfs


--001636310673b21339048f125e78-- From sandeen@sandeen.net Mon Aug 30 18:30:17 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UNUHSH028846 for ; Mon, 30 Aug 2010 18:30:17 -0500 X-ASG-Debug-ID: 1283211681-11be02800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 449CB12368CD for ; Mon, 30 Aug 2010 16:41:21 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id 0oEzM18FrKLxJhix for ; Mon, 30 Aug 2010 16:41:21 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id AD55E4A8B972; Mon, 30 Aug 2010 18:30:54 -0500 (CDT) Message-ID: <4C7C3F2E.6070102@sandeen.net> Date: Mon, 30 Aug 2010 18:30:54 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Mike Gao CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: What should to do with ASSERT failed Subject: Re: What should to do with ASSERT failed References: <4C7C26E8.9070308@sandeen.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1283211682 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39461 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Mike Gao wrote: > Thanks very much for help. The kernel is pretty old, 2.6.19 but the xfs > is pretty new. > the block size is 512 and use mmap for test with write and read compare. > (xfstest 074). Ok so just xfstests 074 with a 512-byte block? I will test that when I get a chance.... > If I ignored this ASSERT(comment out), the test will failed. I guess > because some pages never written to disk. *nod* I'm afraid that makes sense, it's ignoring this because it thinks it's a hole: /* * A hole may still be marked uptodate because discard_buffer * leaves the flag set. */ if (!buffer_mapped(bh) && buffer_uptodate(bh)) { ASSERT(!buffer_dirty(bh)); imap_valid = 0; continue; } It appears that in your case it should not be a hole... -Eric > Assertion failed: !buffer_dirty(bh), file: fs/xfs/linux-2.6/xfs_aops.c, > line: 1399 > BUG: failure at fs/xfs/support/debug.c:108/assfail()! > Kernel panic - not syncing: BUG! > > EIP: 0073:[] CPU: 0 Not tainted ESP: 007b:b75a6fa8 EFLAGS: > 00000246 > Not tainted > EAX: 00000000 EBX: 00000e97 ECX: 00000013 EDX: 00000e97 > ESI: 00000e93 EDI: 00000011 EBP: b75a6fc4 DS: 007b ES: 007b > 0a7d7c94: [<0806bd41>] show_regs+0xc5/0xca > 0a7d7cc0: [<0805a920>] panic_exit+0x25/0x3f > 0a7d7cd4: [<0807b5d5>] atomic_notifier_call_chain+0x1d/0x33 > 0a7d7cf4: [<0807048f>] panic+0x4c/0xcf > 0a7d7d10: [<081724cd>] xfs_hex_dump+0x0/0x7 > 0a7d7d1c: [<08168e26>] xfs_vm_writepage+0x226/0x656 > 0a7d7dbc: [<0809092f>] generic_writepages+0x164/0x27b > 0a7d7e4c: [<0816926c>] xfs_vm_writepages+0x16/0x18 > 0a7d7e5c: [<08090a6a>] do_writepages+0x24/0x38 > 0a7d7e70: [<080bbe8b>] __writeback_single_inode+0x16d/0x2de > 0a7d7ebc: [<080bc1ba>] sync_sb_inodes+0x1be/0x25c > 0a7d7ef4: [<080bc299>] writeback_inodes+0x41/0x6c > 0a7d7f08: [<080905b5>] background_writeout+0x66/0x93 > 0a7d7f54: [<0809106a>] pdflush+0xca/0x154 > 0a7d7f88: [<08080a83>] kthread+0xb6/0xe6 > 0a7d7fb4: [<080663ee>] run_kernel_thread+0x37/0x41 > 0a7d7fe0: [<0805acee>] new_thread_handler+0x64/0x8b > 0a7d7ffc: [] 0xa55a5a5a From sandeen@sandeen.net Mon Aug 30 18:31:33 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7UNVW3X028906 for ; Mon, 30 Aug 2010 18:31:32 -0500 X-ASG-Debug-ID: 1283211755-0a3502b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 68B361236941 for ; Mon, 30 Aug 2010 16:42:36 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id gfKqZa2STMFb2L5h for ; Mon, 30 Aug 2010 16:42:36 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id C6FF84A8B972; Mon, 30 Aug 2010 18:32:08 -0500 (CDT) Message-ID: <4C7C3F78.5020500@sandeen.net> Date: Mon, 30 Aug 2010 18:32:08 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Mike Gao CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: What should to do with ASSERT failed Subject: Re: What should to do with ASSERT failed References: <4C7C26E8.9070308@sandeen.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1283211757 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39461 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Mike Gao wrote: > Thanks very much for help. The kernel is pretty old, 2.6.19 but the xfs > is pretty new. > the block size is 512 and use mmap for test with write and read compare. > (xfstest 074). > > If I ignored this ASSERT(comment out), the test will failed. I guess > because some pages never written to disk. > FWIW, in your case, if you are not expecting to do IO like test 194 then maybe you'd be better off w/o this patch if it's causing problems in more normal IO patterns ... -Eric From SRS0+zB4A+2+fromorbit.com=david@internode.on.net Mon Aug 30 19:30:18 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7V0UH8S030876 for ; Mon, 30 Aug 2010 19:30:18 -0500 X-ASG-Debug-ID: 1283214653-5c9e03ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 80E1217920C5 for ; Mon, 30 Aug 2010 17:30:54 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id I9bl5ghoo5EClGTV for ; Mon, 30 Aug 2010 17:30:54 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 37271458-1927428 for multiple; Tue, 31 Aug 2010 10:00:52 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OqEkV-0007bj-21; Tue, 31 Aug 2010 10:30:51 +1000 Date: Tue, 31 Aug 2010 10:30:51 +1000 From: Dave Chinner To: Mike Gao Cc: Eric Sandeen , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: What should to do with ASSERT failed Subject: Re: What should to do with ASSERT failed Message-ID: <20100831003050.GL705@dastard> References: <4C7C26E8.9070308@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1283214655 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39465 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Aug 30, 2010 at 05:56:07PM -0500, Mike Gao wrote: > Thanks very much for help. The kernel is pretty old, 2.6.19 but the xfs is > pretty new. > the block size is 512 and use mmap for test with write and read compare. > (xfstest 074). Can you reproduce it on a more recent kernel? The buffer flags are modified by code outside XFS which could be significantly different in 2.6.19 comapred to 2.6.34/35, so it may not be aproblem with the XFS code as such.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From s.priebe@profihost.ag Tue Aug 31 02:35:56 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7V7Zt0P049568 for ; Tue, 31 Aug 2010 02:35:56 -0500 X-ASG-Debug-ID: 1283240192-1e0303890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server655-han.de-nserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AFAB23B99C for ; Tue, 31 Aug 2010 00:36:32 -0700 (PDT) Received: from server655-han.de-nserver.de (server655-han.de-nserver.de [85.158.177.45]) by cuda.sgi.com with ESMTP id SPgUXJ1tOPvupCMx for ; Tue, 31 Aug 2010 00:36:32 -0700 (PDT) Received: (qmail 9296 invoked from network); 31 Aug 2010 09:36:31 +0200 Received: from fw-office.allied-internet.ag (HELO s.priebe-desktop) (85.158.179.66) (smtp-auth username hostmaster@profihost.com, mechanism plain) by server655-han.de-nserver.de (qpsmtpd/0.82) with ESMTPA; Tue, 31 Aug 2010 09:36:31 +0200 Message-ID: <4C7CB0FE.1020302@profihost.ag> Date: Tue, 31 Aug 2010 09:36:30 +0200 From: Stefan Priebe - Profihost AG User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100713 Thunderbird/3.0.6 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM References: <4C7BA0A0.5090202@profihost.ag> In-Reply-To: <4C7BA0A0.5090202@profihost.ag> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-User-Auth: Auth by hostmaster@profihost.com through 85.158.179.66 X-Barracuda-Connect: server655-han.de-nserver.de[85.158.177.45] X-Barracuda-Start-Time: 1283240193 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39493 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Can really nobody help :-( Stefan Am 30.08.2010 14:14, schrieb Stefan Priebe - Profihost AG: > Hi, > > on one of our systems i want to activate prjquota support. The relevant > disk is the root disk so i added prjquota to rootflags kernel line. > > But when i do so i always get OOM out of Memory while checking quota's. > I also upgraded the system from 8GB to 16GB RAM but still the same. > Kernel is vanilla 2.6.32.19. > > Stefan > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From eflorac@intellique.com Tue Aug 31 03:43:54 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7V8hskq052321 for ; Tue, 31 Aug 2010 03:43:54 -0500 X-ASG-Debug-ID: 1283244897-441f01a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3B15512CF50F for ; Tue, 31 Aug 2010 01:54:58 -0700 (PDT) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id 72NqHl9CUOLiLDsL for ; Tue, 31 Aug 2010 01:54:58 -0700 (PDT) Received: from galadriel.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id B0EAB818112; Tue, 31 Aug 2010 10:44:24 +0200 (CEST) Date: Tue, 31 Aug 2010 10:44:18 +0200 From: Emmanuel Florac To: Stefan Priebe - Profihost AG Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM Message-ID: <20100831104418.058ab6b5@galadriel.home> In-Reply-To: <4C7CB0FE.1020302@profihost.ag> References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> Organization: Intellique X-Mailer: Claws Mail 3.7.3 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1283244901 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39497 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Tue, 31 Aug 2010 09:36:30 +0200 vous =E9criviez: > Can really nobody help :-( What is the size of the filesystem, output of xfs_info, output of uname -a, version of xfs_utils? What are the main tasks of the system, memory wise? --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From s.priebe@profihost.ag Tue Aug 31 07:25:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VCPB8Z061116 for ; Tue, 31 Aug 2010 07:25:12 -0500 X-ASG-Debug-ID: 1283258176-0e9c00460000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server655-han.de-nserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DF96212D0218 for ; Tue, 31 Aug 2010 05:36:16 -0700 (PDT) Received: from server655-han.de-nserver.de (server655-han.de-nserver.de [85.158.177.45]) by cuda.sgi.com with ESMTP id LZxiJBPPzwWtoPuI for ; Tue, 31 Aug 2010 05:36:16 -0700 (PDT) Received: (qmail 14682 invoked from network); 31 Aug 2010 14:25:45 +0200 Received: from fw-office.allied-internet.ag (HELO s.priebe-desktop) (85.158.179.66) (smtp-auth username hostmaster@profihost.com, mechanism plain) by server655-han.de-nserver.de (qpsmtpd/0.82) with ESMTPA; Tue, 31 Aug 2010 14:25:45 +0200 Message-ID: <4C7CF4C4.9030105@profihost.ag> Date: Tue, 31 Aug 2010 14:25:40 +0200 From: Stefan Priebe - Profihost AG User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100713 Thunderbird/3.0.6 MIME-Version: 1.0 To: Emmanuel Florac CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> <20100831104418.058ab6b5@galadriel.home> In-Reply-To: <20100831104418.058ab6b5@galadriel.home> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-User-Auth: Auth by hostmaster@profihost.com through 85.158.179.66 X-Barracuda-Connect: server655-han.de-nserver.de[85.158.177.45] X-Barracuda-Start-Time: 1283258177 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39513 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi! Disk Size: /dev/sda3 4.8T 2.7T 2.2T 55% / uname -a: Linux abc 2.6.32.19intel #1 SMP Wed Aug 18 15:46:03 CEST 2010 x86_64 GNU/Linux xfs_info /dev/sda3 meta-data=/dev/sda3 isize=256 agcount=32, agsize=40038461 blks = sectsz=512 attr=0 data = bsize=4096 blocks=1281230752, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 log =internal bsize=4096 blocks=32768, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 xfs_utils: Actual Debian Version: xfs_quota -V xfs_quota version 2.9.8 Mein Task is nothing - just to store a lot of Data once per day. Stefan Am 31.08.2010 10:44, schrieb Emmanuel Florac: > Le Tue, 31 Aug 2010 09:36:30 +0200 vous écriviez: > >> Can really nobody help :-( > > What is the size of the filesystem, output of xfs_info, output of uname > -a, version of xfs_utils? > What are the main tasks of the system, memory wise? > From eflorac@intellique.com Tue Aug 31 07:42:52 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VCgpNP061777 for ; Tue, 31 Aug 2010 07:42:52 -0500 X-ASG-Debug-ID: 1283258605-3a3c00d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C1C863D208 for ; Tue, 31 Aug 2010 05:43:28 -0700 (PDT) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id 2KIHgX7FrGsSLeUb for ; Tue, 31 Aug 2010 05:43:28 -0700 (PDT) Received: from galadriel.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id 49AB28180F5; Tue, 31 Aug 2010 14:43:21 +0200 (CEST) Date: Tue, 31 Aug 2010 14:43:19 +0200 From: Emmanuel Florac To: Stefan Priebe - Profihost AG Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM Message-ID: <20100831144319.7e97acea@galadriel.home> In-Reply-To: <4C7CF4C4.9030105@profihost.ag> References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> <20100831104418.058ab6b5@galadriel.home> <4C7CF4C4.9030105@profihost.ag> Organization: Intellique X-Mailer: Claws Mail 3.7.3 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1283258610 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39513 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Tue, 31 Aug 2010 14:25:40 +0200 vous =E9criviez: > Disk Size: > /dev/sda3 4.8T 2.7T 2.2T 55% / This is really very very weird. Why on earth would you use such a big root filesystem? It is extremely impractical and dangerous to store data on the root filesystem. Do you have any good reason not to have a small root filesystem and a distinct data one? --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From s.priebe@profihost.ag Tue Aug 31 07:56:08 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VCu84G062221 for ; Tue, 31 Aug 2010 07:56:08 -0500 X-ASG-Debug-ID: 1283259406-3a40015e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server655-han.de-nserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 550093CDA2 for ; Tue, 31 Aug 2010 05:56:46 -0700 (PDT) Received: from server655-han.de-nserver.de (server655-han.de-nserver.de [85.158.177.45]) by cuda.sgi.com with ESMTP id 7Qtg1X7QKVjadArV for ; Tue, 31 Aug 2010 05:56:46 -0700 (PDT) Received: (qmail 7741 invoked from network); 31 Aug 2010 14:56:45 +0200 Received: from fw-office.allied-internet.ag (HELO s.priebe-desktop) (85.158.179.66) (smtp-auth username hostmaster@profihost.com, mechanism plain) by server655-han.de-nserver.de (qpsmtpd/0.82) with ESMTPA; Tue, 31 Aug 2010 14:56:45 +0200 Message-ID: <4C7CFC08.1000708@profihost.ag> Date: Tue, 31 Aug 2010 14:56:40 +0200 From: Stefan Priebe - Profihost AG User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100713 Thunderbird/3.0.6 MIME-Version: 1.0 To: Emmanuel Florac CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> <20100831104418.058ab6b5@galadriel.home> <4C7CF4C4.9030105@profihost.ag> <20100831144319.7e97acea@galadriel.home> In-Reply-To: <20100831144319.7e97acea@galadriel.home> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-User-Auth: Auth by hostmaster@profihost.com through 85.158.179.66 X-Barracuda-Connect: server655-han.de-nserver.de[85.158.177.45] X-Barracuda-Start-Time: 1283259407 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Oh we don't do this today. But it is a really old system where someone someday decided to do that. Sadly i can't change this... Stefan Am 31.08.2010 14:43, schrieb Emmanuel Florac: > Le Tue, 31 Aug 2010 14:25:40 +0200 vous écriviez: > >> Disk Size: >> /dev/sda3 4.8T 2.7T 2.2T 55% / > > This is really very very weird. Why on earth would you use such a big > root filesystem? It is extremely impractical and dangerous to store > data on the root filesystem. Do you have any good reason not to have a > small root filesystem and a distinct data one? > From eflorac@intellique.com Tue Aug 31 08:19:52 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VDJqCW063218 for ; Tue, 31 Aug 2010 08:19:52 -0500 X-ASG-Debug-ID: 1283260825-3a4b02010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7E34A3CD70 for ; Tue, 31 Aug 2010 06:20:29 -0700 (PDT) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id jXKEvpRznh1VWtsC for ; Tue, 31 Aug 2010 06:20:29 -0700 (PDT) Received: from galadriel.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id E000F818180; Tue, 31 Aug 2010 15:20:21 +0200 (CEST) Date: Tue, 31 Aug 2010 15:20:16 +0200 From: Emmanuel Florac To: Stefan Priebe - Profihost AG Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM Message-ID: <20100831152016.5d800e93@galadriel.home> In-Reply-To: <4C7CFC08.1000708@profihost.ag> References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> <20100831104418.058ab6b5@galadriel.home> <4C7CF4C4.9030105@profihost.ag> <20100831144319.7e97acea@galadriel.home> <4C7CFC08.1000708@profihost.ag> Organization: Intellique X-Mailer: Claws Mail 3.7.3 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1283260831 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39517 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Tue, 31 Aug 2010 14:56:40 +0200 vous =C3=A9criviez: > Oh we don't do this today. But it is a really old system where > someone someday decided to do that. Sadly i can't change this... >=20 Did you upgrade the kernel recently? Or simply enabled quotas? --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From s.priebe@profihost.ag Tue Aug 31 08:30:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VDU4Z5063616 for ; Tue, 31 Aug 2010 08:30:05 -0500 X-ASG-Debug-ID: 1283261440-3a4502650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server655-han.de-nserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 130073D5F9 for ; Tue, 31 Aug 2010 06:30:41 -0700 (PDT) Received: from server655-han.de-nserver.de (server655-han.de-nserver.de [85.158.177.45]) by cuda.sgi.com with ESMTP id eCNzC6jpOz6qkja7 for ; Tue, 31 Aug 2010 06:30:41 -0700 (PDT) Received: (qmail 668 invoked from network); 31 Aug 2010 15:30:40 +0200 Received: from fw-office.allied-internet.ag (HELO s.priebe-desktop) (85.158.179.66) (smtp-auth username hostmaster@profihost.com, mechanism plain) by server655-han.de-nserver.de (qpsmtpd/0.82) with ESMTPA; Tue, 31 Aug 2010 15:30:40 +0200 Message-ID: <4C7D03FA.4010106@profihost.ag> Date: Tue, 31 Aug 2010 15:30:34 +0200 From: Stefan Priebe - Profihost AG User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100713 Thunderbird/3.0.6 MIME-Version: 1.0 To: Emmanuel Florac CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> <20100831104418.058ab6b5@galadriel.home> <4C7CF4C4.9030105@profihost.ag> <20100831144319.7e97acea@galadriel.home> <4C7CFC08.1000708@profihost.ag> <20100831152016.5d800e93@galadriel.home> In-Reply-To: <20100831152016.5d800e93@galadriel.home> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-User-Auth: Auth by hostmaster@profihost.com through 85.158.179.66 X-Barracuda-Connect: server655-han.de-nserver.de[85.158.177.45] X-Barracuda-Start-Time: 1283261442 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39517 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi! After booting the System to a RAM Image with prjquota (the quota check wents fine) and upgrading to xfsprogs 3.1.3. I'm getting this when trying to setup a project Quota: xfs_quota -x -c "project -s 2" / Setting up project 2 (path /serverbackup/abc)... Processed 1 (/etc/projects and cmdline) paths for project 2 with recursion depth infinite (-1). cat /etc/projects 2:/serverbackup/abc cat /etc/projid abc:2 ls -la /serverbackup/abc/ total 102412 drwxr-xr-x 2 root root 16 Aug 24 00:41 . drwxr-xr-x 62 root root 8192 Aug 31 13:05 .. -rw-r--r-- 1 root root 104857600 Aug 24 00:41 abc mount /dev/sda3 on / type xfs (rw,noatime,nodiratime,nobarrier,prjquota) Stefan Am 31.08.2010 15:20, schrieb Emmanuel Florac: > Le Tue, 31 Aug 2010 14:56:40 +0200 vous écriviez: > >> Oh we don't do this today. But it is a really old system where >> someone someday decided to do that. Sadly i can't change this... >> > > Did you upgrade the kernel recently? Or simply enabled quotas? > From michael.monnerie@is.it-management.at Tue Aug 31 16:01:04 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VL131M082597 for ; Tue, 31 Aug 2010 16:01:04 -0500 X-ASG-Debug-ID: 1283289131-484b01a60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2E02B1239EA2 for ; Tue, 31 Aug 2010 14:12:11 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id zMpMGHARMLHgHQ2n for ; Tue, 31 Aug 2010 14:12:11 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 0457E616 for ; Tue, 31 Aug 2010 23:01:38 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id AFAA9401C3D for ; Tue, 31 Aug 2010 23:01:38 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 4K drives, sectsz=512, bsize=4096 Subject: Re: 4K drives, sectsz=512, bsize=4096 Date: Tue, 31 Aug 2010 23:01:34 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) References: <201008300956.21264@zmi.at> In-Reply-To: <201008300956.21264@zmi.at> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart4789981.Hv5HgZVOYP"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201008312301.38103@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283289132 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39547 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart4789981.Hv5HgZVOYP Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On Montag, 30. August 2010 Michael Monnerie wrote: > Will there be any real difference if I re-format with sectsz=3D4096?=20 > AFAIK, XFS will do I/O based on block size, so the sector size > doesn't do any harm. Is that correct? =20 Nobody? Is my assumption correct that a change in sectsz from 512 to=20 4096 would be of no difference for the filesystem? =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart4789981.Hv5HgZVOYP Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx9bbIACgkQzhSR9xwSCbSSlwCg4fgx6/x7zRWPoxiJAMLTiBZg 5vIAnj55XDF+cvyNkzRydIufR6eZon38 =B8Ki -----END PGP SIGNATURE----- --nextPart4789981.Hv5HgZVOYP-- From sandeen@sandeen.net Tue Aug 31 16:16:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VLGCel083266 for ; Tue, 31 Aug 2010 16:16:13 -0500 X-ASG-Debug-ID: 1283289411-3f1002d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D34211BF6ADF for ; Tue, 31 Aug 2010 14:16:51 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id uSfO3h6ZVB9Fm9o4 for ; Tue, 31 Aug 2010 14:16:51 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 1BA564A8BA35; Tue, 31 Aug 2010 16:16:50 -0500 (CDT) Message-ID: <4C7D7141.4070406@sandeen.net> Date: Tue, 31 Aug 2010 16:16:49 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Michael Monnerie CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 4K drives, sectsz=512, bsize=4096 Subject: Re: 4K drives, sectsz=512, bsize=4096 References: <201008300956.21264@zmi.at> <201008312301.38103@zmi.at> In-Reply-To: <201008312301.38103@zmi.at> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1283289411 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39547 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Monnerie wrote: > On Montag, 30. August 2010 Michael Monnerie wrote: >> Will there be any real difference if I re-format with sectsz=4096? >> AFAIK, XFS will do I/O based on block size, so the sector size >> doesn't do any harm. Is that correct? > > Nobody? Is my assumption correct that a change in sectsz from 512 to > 4096 would be of no difference for the filesystem? > Just be sure your first sector of your top-level block device is 4k aligned, and then yes you'll want to set sector size to 4k so that xfs will do all log IO in 4k blocks as well. If you do it right (and especially vs. if you do it wrong) it should be a bit faster if all IOs are 4k aligned on the disk. -Eric From michael.monnerie@is.it-management.at Tue Aug 31 17:06:49 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VM6nw4085424 for ; Tue, 31 Aug 2010 17:06:49 -0500 X-ASG-Debug-ID: 1283292445-200601a30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9DD75407BA for ; Tue, 31 Aug 2010 15:07:25 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 4KBJQvkkYB4jt9qQ for ; Tue, 31 Aug 2010 15:07:25 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id E365B602 for ; Wed, 1 Sep 2010 00:07:24 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 97E89401C2F for ; Wed, 1 Sep 2010 00:07:24 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 4K drives, sectsz=512, bsize=4096 Subject: Re: 4K drives, sectsz=512, bsize=4096 Date: Wed, 1 Sep 2010 00:07:20 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) References: <201008300956.21264@zmi.at> <201008312301.38103@zmi.at> <4C7D7141.4070406@sandeen.net> In-Reply-To: <4C7D7141.4070406@sandeen.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart4209108.hUK4E06rom"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201009010007.23899@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283292446 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39551 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart4209108.hUK4E06rom Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Dienstag, 31. August 2010 Eric Sandeen wrote: > Just be sure your first sector of your top-level block device > is 4k aligned, and then yes you'll want to set sector size to 4k > so that xfs will do all log IO in 4k blocks as well. I can only hope LVM does it right, I have no idea how it aligns. =20 > If you do it right (and especially vs. if you do it wrong) it should > be a bit faster if all IOs are 4k aligned on the disk. =20 And that's what's interesting me: why? Won't XFS do all I/Os at minimum=20 for a given block size? Or is it possible XFS does write only a single=20 sector? I'd expect the smallest I/O size to be the block size, but it=20 seems I'm wrong? I guess there's no way to "convert" an existing XFS with=20 sectsz=3D512,bsize=3D4096 to sectsz=3D4096,bsize=3D4096? Maybe that's only = a=20 flag that can be changed? =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart4209108.hUK4E06rom Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx9fRsACgkQzhSR9xwSCbT4/wCfW/7qzxALjUrvTGIaNMC95krJ muQAn2x5yQ2SoDRQMpOs3tKwHWZRvzbE =1wnB -----END PGP SIGNATURE----- --nextPart4209108.hUK4E06rom-- From sandeen@sandeen.net Tue Aug 31 17:14:52 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VMEpxm085856 for ; Tue, 31 Aug 2010 17:14:51 -0500 X-ASG-Debug-ID: 1283293561-7a4b02bb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DC89A1239E63 for ; Tue, 31 Aug 2010 15:26:01 -0700 (PDT) Received: from mail.sandeen.net (64-131-60-146.usfamily.net [64.131.60.146]) by cuda.sgi.com with ESMTP id x0NcMDNIcysW6HaZ for ; Tue, 31 Aug 2010 15:26:01 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 4803D4A8BA33; Tue, 31 Aug 2010 17:15:29 -0500 (CDT) Message-ID: <4C7D7F01.1070003@sandeen.net> Date: Tue, 31 Aug 2010 17:15:29 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.24 (Macintosh/20100228) MIME-Version: 1.0 To: Michael Monnerie CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 4K drives, sectsz=512, bsize=4096 Subject: Re: 4K drives, sectsz=512, bsize=4096 References: <201008300956.21264@zmi.at> <201008312301.38103@zmi.at> <4C7D7141.4070406@sandeen.net> <201009010007.23899@zmi.at> In-Reply-To: <201009010007.23899@zmi.at> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: 64-131-60-146.usfamily.net[64.131.60.146] X-Barracuda-Start-Time: 1283293561 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39551 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Monnerie wrote: > On Dienstag, 31. August 2010 Eric Sandeen wrote: >> Just be sure your first sector of your top-level block device >> is 4k aligned, and then yes you'll want to set sector size to 4k >> so that xfs will do all log IO in 4k blocks as well. > > I can only hope LVM does it right, I have no idea how it aligns. > >> If you do it right (and especially vs. if you do it wrong) it should >> be a bit faster if all IOs are 4k aligned on the disk. > > And that's what's interesting me: why? Won't XFS do all I/Os at minimum > for a given block size? Or is it possible XFS does write only a single > sector? I'd expect the smallest I/O size to be the block size, but it > seems I'm wrong? the log can do things on sector size boundaries. > I guess there's no way to "convert" an existing XFS with > sectsz=512,bsize=4096 to sectsz=4096,bsize=4096? Maybe that's only a > flag that can be changed? I don't think so ... -Eric From nathans@aconex.com Tue Aug 31 17:33:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VMXveS086706 for ; Tue, 31 Aug 2010 17:33:57 -0500 X-ASG-Debug-ID: 1283294074-1d2503110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2DB9C4096F for ; Tue, 31 Aug 2010 15:34:35 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id xZVkaIkgXEz4zvjC for ; Tue, 31 Aug 2010 15:34:35 -0700 (PDT) Received: from postoffice.aconex.com (localhost [127.0.0.1]) by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 8579E923E60; Wed, 1 Sep 2010 08:34:33 +1000 (EST) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id DCTvzp8U1KDcjrmg; Wed, 01 Sep 2010 08:34:33 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10]) by postoffice.aconex.com (Postfix) with ESMTP id 75868A50264; Wed, 1 Sep 2010 08:34:33 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 6ECDC9D0001; Wed, 1 Sep 2010 08:34:33 +1000 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9l1ZejP7HKIe; Wed, 1 Sep 2010 08:34:28 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by gatekeeper.aconex.com (Postfix) with ESMTP id B2D609D0004; Wed, 1 Sep 2010 08:34:28 +1000 (EST) Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12]) by mail-au.aconex.com (Postfix) with ESMTP id AC4A964B867B; Wed, 1 Sep 2010 08:34:28 +1000 (EST) Date: Wed, 1 Sep 2010 08:34:28 +1000 (EST) From: Nathan Scott To: Michael Monnerie Cc: xfs@oss.sgi.com Message-ID: <1177874643.527261283294068615.JavaMail.root@mail-au.aconex.com> In-Reply-To: <201009010007.23899@zmi.at> X-ASG-Orig-Subj: Re: 4K drives, sectsz=512, bsize=4096 Subject: Re: 4K drives, sectsz=512, bsize=4096 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 5.0.18_GA_3011.RHEL5_64 (ZimbraWebClient - SAF3 (Mac)/5.0.18_GA_3011.RHEL5_64) X-Barracuda-Connect: mail.aconex.com[203.89.202.182] X-Barracuda-Start-Time: 1283294076 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39553 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean ----- "Michael Monnerie" wrote: > On Dienstag, 31. August 2010 Eric Sandeen wrote: > > If you do it right (and especially vs. if you do it wrong) it > > should be a bit faster if all IOs are 4k aligned on the disk. > > And that's what's interesting me: why? Won't XFS do all I/Os at > minimum > for a given block size? Or is it possible XFS does write only a single > sector? I'd expect the smallest I/O size to be the block size, but it > seems I'm wrong? Log I/O and direct writes are sector sized & aligned. > I guess there's no way to "convert" an existing XFS with > sectsz=512,bsize=4096 to sectsz=4096,bsize=4096? Maybe that's only a > flag that can be changed? There's no way (other than dump, mkfs & restore), the filesystem is laid out differently (most data structures, like superblocks and other metadata become 4K aligned). cheers. -- Nathan From ygao.linux@gmail.com Tue Aug 31 17:49:30 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.5 required=5.0 tests=BAYES_05,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VMnTZY087414 for ; Tue, 31 Aug 2010 17:49:30 -0500 X-ASG-Debug-ID: 1283295639-0f1002e70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F4135D76398 for ; Tue, 31 Aug 2010 16:00:39 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id lMBjVhvePDVoksL1 for ; Tue, 31 Aug 2010 16:00:39 -0700 (PDT) Received: by qwe5 with SMTP id 5so5873049qwe.26 for ; Tue, 31 Aug 2010 15:50:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=yQXeVb+4thj/UvKw0cT+sIL73Gunmx+gEN5XeOiSrQE=; b=SEk03m2s4LyonadGCJXQBKyHKapZnKvGQtlVvlXCP/SG44VRhQUZ5+WEDuQLTsjmlZ xnQWCHrtyndcDG4/FAfDl+77zKRcfVCC6UWPcsxbAMeimm4Gq+saIXB3Oo3DAKT/naYN DctfH4R9LpC5k7sWfRDyM92FPgK6oArBKPqmI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=B5bZJMLo7wOOBhUV03d3YasqAGBKBj5FKblkX7VH1ausqtWUPTzssDtPgNOPezvynG pqwV9pvr8lPuF9VWi+5y8S1EWICCnITHW+G2BbPf68C6pkmi8Urh/P49ZZl+PKs6eTQY nnjl0wORWybpxlYx+oE20fWkLxkC4Ys9asjHQ= MIME-Version: 1.0 Received: by 10.224.29.3 with SMTP id o3mr4542409qac.178.1283295006994; Tue, 31 Aug 2010 15:50:06 -0700 (PDT) Received: by 10.229.88.204 with HTTP; Tue, 31 Aug 2010 15:50:06 -0700 (PDT) In-Reply-To: <20100831003050.GL705@dastard> References: <4C7C26E8.9070308@sandeen.net> <20100831003050.GL705@dastard> Date: Tue, 31 Aug 2010 17:50:06 -0500 Message-ID: X-ASG-Orig-Subj: Re: What should to do with ASSERT failed Subject: Re: What should to do with ASSERT failed From: Mike Gao To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=0015175caade08bb7b048f266726 X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1283295639 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39553 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0015175caade08bb7b048f266726 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable What kind of logic there could be? I notice that in old version, if page has no buffer in writepage, then xfs will create a empty buffer and attach to page. This logic there at least untill 2.6.33. But now xfs need this never happens (assert) when coming to writepage. But I guess, when use mmap, there is no buffer attach to page because it operates on page directly on kernel. xfs should create buffer before submit bio. There must be sth I don't know. Maybe sbd can help me out. Thanks very much, Mike On Mon, Aug 30, 2010 at 7:30 PM, Dave Chinner wrote: > On Mon, Aug 30, 2010 at 05:56:07PM -0500, Mike Gao wrote: > > Thanks very much for help. The kernel is pretty old, 2.6.19 but the xfs > is > > pretty new. > > the block size is 512 and use mmap for test with write and read compare= . > > (xfstest 074). > > Can you reproduce it on a more recent kernel? The buffer flags are > modified by code outside XFS which could be significantly different in > 2.6.19 comapred to 2.6.34/35, so it may not be a=EE=80=80problem with the > XFS code as such.... > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > --0015175caade08bb7b048f266726 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable What kind of logic there could be?

I notice that in old = version, if page has no buffer in writepage, then xfs will create a empty b= uffer and attach to page. This logic there at least untill 2.6.33. But now = xfs need this never happens (assert) when coming to writepage. =C2=A0But I = guess, when use mmap, there is no buffer attach to page because it operates= on page directly on kernel. xfs should create buffer before submit bio. Th= ere must be sth I don't know.=C2=A0Maybe sbd can help me out.

Thanks very much,
Mike

--0015175caade08bb7b048f266726-- From michael.monnerie@is.it-management.at Tue Aug 31 18:12:03 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VNC2UM088471 for ; Tue, 31 Aug 2010 18:12:03 -0500 X-ASG-Debug-ID: 1283296991-29d501db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D06DE1239E38 for ; Tue, 31 Aug 2010 16:23:11 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id pdyVK1h4PPxgPs2X for ; Tue, 31 Aug 2010 16:23:11 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 35F1260E for ; Wed, 1 Sep 2010 01:12:38 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id E2BB0401C2F for ; Wed, 1 Sep 2010 01:12:37 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 4K drives, sectsz=512, bsize=4096 Subject: Re: 4K drives, sectsz=512, bsize=4096 Date: Wed, 1 Sep 2010 01:12:37 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) References: <201008300956.21264@zmi.at> <201009010007.23899@zmi.at> <4C7D7F01.1070003@sandeen.net> In-Reply-To: <4C7D7F01.1070003@sandeen.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1301790.78fbH4LAh7"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201009010112.37351@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283296991 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39555 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1301790.78fbH4LAh7 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Mittwoch, 1. September 2010 Eric Sandeen wrote: > the log can do things on sector size boundaries. =20 Great, thanks to both of you for clarification. Going to reformat now... =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1301790.78fbH4LAh7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx9jGUACgkQzhSR9xwSCbQgpwCeNY7z0AxHODmcOjvenGa7oz3Y Pb0AoKR1FZy/DBVlz7Izf8IpNNO7xUXF =q1TA -----END PGP SIGNATURE----- --nextPart1301790.78fbH4LAh7-- From SRS0+WkSn+2+fromorbit.com=david@internode.on.net Tue Aug 31 18:27:44 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VNRhS8089181 for ; Tue, 31 Aug 2010 18:27:44 -0500 X-ASG-Debug-ID: 1283297932-196003830000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 16123D762BA for ; Tue, 31 Aug 2010 16:38:52 -0700 (PDT) Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id bIMTHkKj6raJ4Bma for ; Tue, 31 Aug 2010 16:38:52 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 37090099-1927428 for multiple; Wed, 01 Sep 2010 08:58:19 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OqaFV-0000jr-Gi; Wed, 01 Sep 2010 09:28:17 +1000 Date: Wed, 1 Sep 2010 09:28:17 +1000 From: Dave Chinner To: Stefan Priebe - Profihost AG Cc: Emmanuel Florac , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM Message-ID: <20100831232817.GM705@dastard> References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> <20100831104418.058ab6b5@galadriel.home> <4C7CF4C4.9030105@profihost.ag> <20100831144319.7e97acea@galadriel.home> <4C7CFC08.1000708@profihost.ag> <20100831152016.5d800e93@galadriel.home> <4C7D03FA.4010106@profihost.ag> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C7D03FA.4010106@profihost.ag> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103] X-Barracuda-Start-Time: 1283297934 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39557 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 31, 2010 at 03:30:34PM +0200, Stefan Priebe - Profihost AG wrote: > Hi! > > After booting the System to a RAM Image with prjquota (the quota > check wents fine) and upgrading to xfsprogs 3.1.3. > > I'm getting this when trying to setup a project Quota: > xfs_quota -x -c "project -s 2" / > Setting up project 2 (path /serverbackup/abc)... > Processed 1 (/etc/projects and cmdline) paths for project 2 with > recursion depth infinite (-1). That's normal, I think. Adding project quota involves descending the directory heirachy specified and adding the project id to every file and directory. You can limit the recursion depth it runs to if you want to, but the default (infinite) is to walk the entire heirarchy. You can confirm by running a quota report and checking the output... Cheers, Dave. -- Dave Chinner david@fromorbit.com From michael.monnerie@is.it-management.at Tue Aug 31 18:30:05 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VNU50X089332 for ; Tue, 31 Aug 2010 18:30:05 -0500 X-ASG-Debug-ID: 1283297443-45e402030000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C1D844028E for ; Tue, 31 Aug 2010 16:30:43 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 8Ylvf7Eo3WmId7O8 for ; Tue, 31 Aug 2010 16:30:43 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 67A60616 for ; Wed, 1 Sep 2010 01:30:42 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 0FB18401C2F for ; Wed, 1 Sep 2010 01:30:42 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: deleting 2TB lots of files with delaylog: sync helps? Subject: deleting 2TB lots of files with delaylog: sync helps? Date: Wed, 1 Sep 2010 01:30:41 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart75489676.hYA5ozuBjL"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201009010130.41500@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283297443 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39557 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart75489676.hYA5ozuBjL Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I'm just trying the delaylog mount option on a filesystem (LVM over=20 2x 2TB 4K sector drives), and I see this while running 8 processes=20 of "rm -r * & 2>/dev/null": Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz = avgqu-sz await svctm %util sdc 2,80 33,40 125,00 64,60 720,00 939,30 17,50 = 0,55 2,91 1,71 32,40 sdd 0,00 25,60 122,80 63,40 662,40 874,40 16,51 = 0,52 2,77 1,96 36,54 dm-0 0,00 0,00 250,60 123,00 1382,40 1941,70 17,79 = 1,64 4,39 1,74 65,08 Then I issue "sync", and utilisation increases: Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz = avgqu-sz await svctm %util sdc 0,00 0,20 15,80 175,40 84,00 2093,30 22,78 = 0,62 3,26 2,93 55,94 sdd 0,00 1,00 13,40 177,60 79,20 2114,10 22,97 = 0,69 3,63 3,34 63,80 dm-0 0,00 0,00 29,20 101,20 163,20 4207,40 67,03 = 1,11 8,51 7,56 98,60 This is reproducible. Now it can be that the sync just causes more writes a= nd stalls reads so overall it's slower, but I'm wondering why none of the devices says "100= % util", which should be the case on deletes? Or is this again the "mistake" of the utiliz= ation calculation that writes do not really show up there? I know I should have benchmarked and tested, I just wanted to raise eyes on= this as it=20 could be possible there's something to optimize. Another strange thing: After the 8 "rm -r" finished, there were some subdir= s left over=20 that hadn't been deleted - running one "rm -r" cleaned them out then. Could= that be a problem with "delaylog"? Or can that happen when several "rm" compete in = the same=20 dirs? This is kernel 2.6.35.4 =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart75489676.hYA5ozuBjL Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx9kKEACgkQzhSR9xwSCbTS/QCfcJ1ZMkYwVK9Y5E16+pF9ciP0 DCAAnRONr2448sAG0z24BsT3m+kQqVK6 =edj/ -----END PGP SIGNATURE----- --nextPart75489676.hYA5ozuBjL-- From SRS0+WkSn+2+fromorbit.com=david@internode.on.net Tue Aug 31 18:39:13 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VNdChT089779 for ; Tue, 31 Aug 2010 18:39:13 -0500 X-ASG-Debug-ID: 1283297990-782500790000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D0B8840D54 for ; Tue, 31 Aug 2010 16:39:50 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id fX0RvZ9hfBIO5kCa for ; Tue, 31 Aug 2010 16:39:50 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 37612372-1927428 for multiple; Wed, 01 Sep 2010 09:09:49 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OqaQd-0000kh-MS; Wed, 01 Sep 2010 09:39:47 +1000 Date: Wed, 1 Sep 2010 09:39:47 +1000 From: Dave Chinner To: Mike Gao Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: What should to do with ASSERT failed Subject: Re: What should to do with ASSERT failed Message-ID: <20100831233947.GN705@dastard> References: <4C7C26E8.9070308@sandeen.net> <20100831003050.GL705@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1283297991 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39557 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 31, 2010 at 05:50:06PM -0500, Mike Gao wrote: > What kind of logic there could be? > > I notice that in old version, if page has no buffer in writepage, then xfs > will create a empty buffer and attach to page. This logic there at least > untill 2.6.33. But now xfs need this never happens (assert) when coming to > writepage. But I guess, when use mmap, there is no buffer attach to page > because it operates on page directly on kernel. xfs should create buffer > before submit bio. There must be sth I don't know. Maybe sbd can help me > out. mmap() pages used to be special because they weren't tagged correctly when the page was dirtied. Nowdays the ->page_mkwrite interface captures those and does the correct processing at page fault time to set up the buffers. Hence we should never see an unmapped dirty buffer in writeback. ->page-mkwrite was introduced around 2.6.18 IIRC, but there has been changes to the way it works since then. Maybe it is not functioning correctly on your kernel? However, this is just one example of how buffers are handled differently _outside XFS_ on older kernels. Nobody will be able to give you a definitive list of what has changed - you'll only find those by trolling git logs or testing and tripping over them. As it is, I'm curious why you are backporting to such an old kernel rather than just using a newer kernel. Using a newer kernel would save you a lot of time and effort.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From s.priebe@profihost.ag Tue Aug 31 18:55:52 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o7VNtpvj090709 for ; Tue, 31 Aug 2010 18:55:51 -0500 X-ASG-Debug-ID: 1283299621-762c004d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server655-han.de-nserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4BBF7D76427 for ; Tue, 31 Aug 2010 17:07:01 -0700 (PDT) Received: from server655-han.de-nserver.de (server655-han.de-nserver.de [85.158.177.45]) by cuda.sgi.com with ESMTP id l4N16ARJgNEEyp6Y for ; Tue, 31 Aug 2010 17:07:01 -0700 (PDT) Received: (qmail 6891 invoked from network); 1 Sep 2010 01:56:28 +0200 Received: from dslb-088-070-089-056.pools.arcor-ip.net (HELO [192.168.178.15]) (88.70.89.56) (smtp-auth username s.priebe@profihost.ag, mechanism plain) by server655-han.de-nserver.de (qpsmtpd/0.82) with (AES256-SHA encrypted) ESMTPSA; Wed, 01 Sep 2010 01:56:28 +0200 Message-ID: <4C7D96AF.3000006@profihost.ag> Date: Wed, 01 Sep 2010 01:56:31 +0200 From: Stefan Priebe - Profihost AG User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Quota Check OOM Subject: Re: XFS Quota Check OOM References: <4C7BA0A0.5090202@profihost.ag> <4C7CB0FE.1020302@profihost.ag> <20100831104418.058ab6b5@galadriel.home> <4C7CF4C4.9030105@profihost.ag> <20100831144319.7e97acea@galadriel.home> <4C7CFC08.1000708@profihost.ag> <20100831152016.5d800e93@galadriel.home> <4C7D03FA.4010106@profihost.ag> <20100831232817.GM705@dastard> In-Reply-To: <20100831232817.GM705@dastard> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-User-Auth: Auth by s.priebe@profihost.ag through 88.70.89.56 X-Barracuda-Connect: server655-han.de-nserver.de[85.158.177.45] X-Barracuda-Start-Time: 1283299622 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39559 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean quota report returns nothing... :-( except two newlines... # xfs_quota -x -c "report -phnN" / # Stefan Am 01.09.2010 01:28, schrieb Dave Chinner: > On Tue, Aug 31, 2010 at 03:30:34PM +0200, Stefan Priebe - Profihost AG wrote: >> Hi! >> >> After booting the System to a RAM Image with prjquota (the quota >> check wents fine) and upgrading to xfsprogs 3.1.3. >> >> I'm getting this when trying to setup a project Quota: >> xfs_quota -x -c "project -s 2" / >> Setting up project 2 (path /serverbackup/abc)... >> Processed 1 (/etc/projects and cmdline) paths for project 2 with >> recursion depth infinite (-1). > > That's normal, I think. Adding project quota involves descending the > directory heirachy specified and adding the project id to every file > and directory. You can limit the recursion depth it runs to if you > want to, but the default (infinite) is to walk the entire heirarchy. > > You can confirm by running a quota report and checking the output... > > Cheers, > > Dave. From SRS0+LR8j+3+fromorbit.com=david@internode.on.net Tue Aug 31 19:05:57 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o8105vhb091171 for ; Tue, 31 Aug 2010 19:05:57 -0500 X-ASG-Debug-ID: 1283299594-45de037d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5319240EF3 for ; Tue, 31 Aug 2010 17:06:35 -0700 (PDT) Received: from mail.internode.on.net (bld-mail17.adl2.internode.on.net [150.101.137.102]) by cuda.sgi.com with ESMTP id e0M4XG3vb8DlsDHf for ; Tue, 31 Aug 2010 17:06:35 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 37111850-1927428 for multiple; Wed, 01 Sep 2010 09:36:33 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OqaqV-0000mN-Oq; Wed, 01 Sep 2010 10:06:31 +1000 Date: Wed, 1 Sep 2010 10:06:31 +1000 From: Dave Chinner To: Michael Monnerie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: deleting 2TB lots of files with delaylog: sync helps? Subject: Re: deleting 2TB lots of files with delaylog: sync helps? Message-ID: <20100901000631.GO705@dastard> References: <201009010130.41500@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201009010130.41500@zmi.at> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail17.adl2.internode.on.net[150.101.137.102] X-Barracuda-Start-Time: 1283299596 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39559 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Sep 01, 2010 at 01:30:41AM +0200, Michael Monnerie wrote: > I'm just trying the delaylog mount option on a filesystem (LVM over > 2x 2TB 4K sector drives), and I see this while running 8 processes > of "rm -r * & 2>/dev/null": > > Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util > sdc 2,80 33,40 125,00 64,60 720,00 939,30 17,50 0,55 2,91 1,71 32,40 > sdd 0,00 25,60 122,80 63,40 662,40 874,40 16,51 0,52 2,77 1,96 36,54 > dm-0 0,00 0,00 250,60 123,00 1382,40 1941,70 17,79 1,64 4,39 1,74 65,08 > > Then I issue "sync", and utilisation increases: > Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util > sdc 0,00 0,20 15,80 175,40 84,00 2093,30 22,78 0,62 3,26 2,93 55,94 > sdd 0,00 1,00 13,40 177,60 79,20 2114,10 22,97 0,69 3,63 3,34 63,80 > dm-0 0,00 0,00 29,20 101,20 163,20 4207,40 67,03 1,11 8,51 7,56 98,60 > > This is reproducible. You're probably getting RMW cycles on inode writeback. I've been noticing this lately with my benchmarking - the VM is being _very aggressive_ reclaiming page cache pages vs inode caches and as a result the inode buffers used for IO are being reclaimed between the time it takes to create the inodes and when they are written back. Hence you get lots of reads occurring during inode writeback. By issuing a sync, you clear out all the inode writeback and all the RMW cycles go away. As a result, there is more disk throughput availble for the unlink processes. There is a good chance this is the case as the number of reads after the sync drop by an order of magnitude... > Now it can be that the sync just causes more writes and stalls reads > so overall it's slower, but I'm wondering why none of the devices says "100% util", which > should be the case on deletes? Or is this again the "mistake" of the utilization calculation > that writes do not really show up there? You're probably CPU bound, not IO bound. > I know I should have benchmarked and tested, I just wanted to raise eyes on this as it > could be possible there's something to optimize. > > Another strange thing: After the 8 "rm -r" finished, there were some subdirs left over > that hadn't been deleted - running one "rm -r" cleaned them out then. Could that be > a problem with "delaylog"? Unlikely - files not being deleted is not a function of the way transactions are written to disk. It's a function of whether the operation was performed or not. > Or can that happen when several "rm" compete in the same dirs? Most likely. Cheers, Dave. -- Dave Chinner david@fromorbit.com From michael.monnerie@is.it-management.at Tue Aug 31 19:22:22 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o810MLi4091973 for ; Tue, 31 Aug 2010 19:22:22 -0500 X-ASG-Debug-ID: 1283300578-0a65015c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1A52540C4E for ; Tue, 31 Aug 2010 17:22:59 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id Cof1A6JxhiFtR9NT for ; Tue, 31 Aug 2010 17:22:59 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 56E8F616; Wed, 1 Sep 2010 02:22:58 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 086FA401C2F; Wed, 1 Sep 2010 02:22:58 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: deleting 2TB lots of files with delaylog: sync helps? Subject: Re: deleting 2TB lots of files with delaylog: sync helps? Date: Wed, 1 Sep 2010 02:22:31 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) Cc: Dave Chinner References: <201009010130.41500@zmi.at> <20100901000631.GO705@dastard> In-Reply-To: <20100901000631.GO705@dastard> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1437051.Y1BxbpQFyr"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201009010222.57350@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283300580 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39561 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1437051.Y1BxbpQFyr Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Mittwoch, 1. September 2010 Dave Chinner wrote: > You're probably getting RMW cycles on inode writeback. I've been > noticing this lately with my benchmarking - the VM is being _very > aggressive_ reclaiming page cache pages vs inode caches and as a > result the inode buffers used for IO are being reclaimed between the > time it takes to create the inodes and when they are written back. > Hence you get lots of reads occurring during inode writeback. >=20 > By issuing a sync, you clear out all the inode writeback and all the > RMW cycles go away. As a result, there is more disk throughput > availble for the unlink processes. There is a good chance this is > the case as the number of reads after the sync drop by an order of > magnitude... Nice explanation. =20 > > Now it can be that the sync just causes more writes and stalls > > reads so overall it's slower, but I'm wondering why none of the > > devices says "100% util", which should be the case on deletes? Or > > is this again the "mistake" of the utilization calculation that > > writes do not really show up there? >=20 > You're probably CPU bound, not IO bound. This is a hexa-core AMD Phenom(tm) II X6 1090T Processor with up to=20 3.2GHz per core, so that shouldn't be - or is there only one core used?=20 I think I read somewhere that each AG should get a core or so... =20 Thanks for your explanation. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=E4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1437051.Y1BxbpQFyr Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx9nOEACgkQzhSR9xwSCbTM8ACfWqqqc9RSN3r5illX4wKdQkbA GK4AoOmjgJagdjlScOwgS563COyJ+B+p =zwYX -----END PGP SIGNATURE----- --nextPart1437051.Y1BxbpQFyr-- From michael.monnerie@is.it-management.at Tue Aug 31 19:26:12 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o810QCI7092169 for ; Tue, 31 Aug 2010 19:26:12 -0500 X-ASG-Debug-ID: 1283301440-762c01c60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 47CCFD72192 for ; Tue, 31 Aug 2010 17:37:21 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 64h8QU5DcBJS3NhD for ; Tue, 31 Aug 2010 17:37:21 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id B1FB5616 for ; Wed, 1 Sep 2010 02:26:47 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 68D48401C2F for ; Wed, 1 Sep 2010 02:26:47 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: broken XFS filesystem not to be repaired by xfs_repair 3.1.2 Subject: broken XFS filesystem not to be repaired by xfs_repair 3.1.2 Date: Wed, 1 Sep 2010 02:26:46 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart3361018.U3NooiSBJI"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201009010226.46771@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283301442 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39561 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart3361018.U3NooiSBJI Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable http://zmi.at/x/big.xfs.metadump.bz2 After I did the big "rm -r" on that 4TB volume, 4 subdirs with a file in=20 each are still left even after 20 "xfsrepair;mount;rm -r;umount" cycles.=20 So I dare to say it can't be repaired here. It's not directly important as I'm going to format the filesytem now,=20 but I'd like this solved in case it hits me once in a real XFS on a=20 production server. =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart3361018.U3NooiSBJI Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx9ncYACgkQzhSR9xwSCbQfBwCdFUmDlYy3kY0eWlTl8u/fPGH6 nlIAn1DLXDj7jg8iOk/ExvOvWX6zGIRL =9/MX -----END PGP SIGNATURE----- --nextPart3361018.U3NooiSBJI-- From michael.monnerie@is.it-management.at Tue Aug 31 19:48:20 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o810mKl0093324 for ; Tue, 31 Aug 2010 19:48:20 -0500 X-ASG-Debug-ID: 1283302137-460900ee0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6D9001799C48 for ; Tue, 31 Aug 2010 17:48:57 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv1.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id D3UxYqR3ko5GwQ1z for ; Tue, 31 Aug 2010 17:48:57 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 95A70616 for ; Wed, 1 Sep 2010 02:48:56 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 49F8A401C2F for ; Wed, 1 Sep 2010 02:48:56 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: ultra fast XFS now - thanks Subject: ultra fast XFS now - thanks Date: Wed, 1 Sep 2010 02:48:54 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.35.4-zmi; KDE/4.3.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1451650.LRgksgOnCq"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201009010248.55140@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1283302138 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39561 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1451650.LRgksgOnCq Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I'm on the way to copy the data to the newly formatted drives, and I=20 just got 109MB/s for a 6GB file, copied with rsync from one PC to the=20 other over Gb/s LAN. That's damn pretty close to the 125MB/s you can get=20 from a Gb/s LAN, and it's cool that it's possible to even copy files at=20 that speed. Great job, all developers of XFS, the networking, and the kernel in=20 general. And of course the hardware from AMD, Asus, Areca... great. =2D-=20 mit freundlichen Gr=C3=BCssen, Michael Monnerie, Ing. BSc it-management Internet Services http://proteger.at [gesprochen: Prot-e-schee] Tel: 0660 / 415 65 31 ****** Aktuelles Radiointerview! ****** http://www.it-podcast.at/aktuelle-sendung.html // Wir haben im Moment zwei H=C3=A4user zu verkaufen: // http://zmi.at/langegg/ // http://zmi.at/haus2009/ --nextPart1451650.LRgksgOnCq Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) iEYEABECAAYFAkx9ovcACgkQzhSR9xwSCbQxOwCbBo/SlVc4xbkbbyHQZ9gOD13c vGUAniRxELiQo7a9wHc/KgZjR/hB0SSX =Wwpy -----END PGP SIGNATURE----- --nextPart1451650.LRgksgOnCq-- From stan@hardwarefreak.com Tue Aug 31 22:01:10 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o81319Bt099179 for ; Tue, 31 Aug 2010 22:01:10 -0500 X-ASG-Debug-ID: 1283310108-75d501610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 052AF41100 for ; Tue, 31 Aug 2010 20:01:48 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id H7QelS3N4b3sfKEZ for ; Tue, 31 Aug 2010 20:01:48 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id CDEBA6C3F6 for ; Tue, 31 Aug 2010 22:01:47 -0500 (CDT) Message-ID: <4C7DC21B.1040705@hardwarefreak.com> Date: Tue, 31 Aug 2010 22:01:47 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: deleting 2TB lots of files with delaylog: sync helps? Subject: Re: deleting 2TB lots of files with delaylog: sync helps? References: <201009010130.41500@zmi.at> <20100901000631.GO705@dastard> In-Reply-To: <20100901000631.GO705@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1283310109 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0971 1.0000 -1.4102 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.81 X-Barracuda-Spam-Status: No, SCORE=-0.81 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39571 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner put forth on 8/31/2010 7:06 PM: > You're probably CPU bound, not IO bound. 7200 rpm is the highest spindle speed for 2TB drives--5400 is most common. None of them are going to do much over 200 random seeks/second, if that. That's 400 tops for two drives. Using any modern Intel/AMD ~2 GHz CPU, you think he's CPU bound? Apparently this "rm -rf" type operation is much more complex than I previously believed. -- Stan From SRS0+7xkR+3+fromorbit.com=david@internode.on.net Tue Aug 31 22:19:20 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o813JKNP099980 for ; Tue, 31 Aug 2010 22:19:20 -0500 X-ASG-Debug-ID: 1283311196-323600fe0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A05B91798C4E for ; Tue, 31 Aug 2010 20:19:57 -0700 (PDT) Received: from mail.internode.on.net (bld-mail14.adl6.internode.on.net [150.101.137.99]) by cuda.sgi.com with ESMTP id LSse624NfxZTty01 for ; Tue, 31 Aug 2010 20:19:57 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 37647100-1927428 for multiple; Wed, 01 Sep 2010 12:49:56 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1Oqdre-0000yp-Em; Wed, 01 Sep 2010 13:19:54 +1000 Date: Wed, 1 Sep 2010 13:19:54 +1000 From: Dave Chinner To: Michael Monnerie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: deleting 2TB lots of files with delaylog: sync helps? Subject: Re: deleting 2TB lots of files with delaylog: sync helps? Message-ID: <20100901031954.GP705@dastard> References: <201009010130.41500@zmi.at> <20100901000631.GO705@dastard> <201009010222.57350@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201009010222.57350@zmi.at> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail14.adl6.internode.on.net[150.101.137.99] X-Barracuda-Start-Time: 1283311198 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39573 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Sep 01, 2010 at 02:22:31AM +0200, Michael Monnerie wrote: > On Mittwoch, 1. September 2010 Dave Chinner wrote: > > You're probably getting RMW cycles on inode writeback. I've been > > noticing this lately with my benchmarking - the VM is being _very > > aggressive_ reclaiming page cache pages vs inode caches and as a > > result the inode buffers used for IO are being reclaimed between the > > time it takes to create the inodes and when they are written back. > > Hence you get lots of reads occurring during inode writeback. > > > > By issuing a sync, you clear out all the inode writeback and all the > > RMW cycles go away. As a result, there is more disk throughput > > availble for the unlink processes. There is a good chance this is > > the case as the number of reads after the sync drop by an order of > > magnitude... > > Nice explanation. > > > > Now it can be that the sync just causes more writes and stalls > > > reads so overall it's slower, but I'm wondering why none of the > > > devices says "100% util", which should be the case on deletes? Or > > > is this again the "mistake" of the utilization calculation that > > > writes do not really show up there? > > > > You're probably CPU bound, not IO bound. > > This is a hexa-core AMD Phenom(tm) II X6 1090T Processor with up to > 3.2GHz per core, so that shouldn't be I'm getting a 8core/16thread server being CPU bound with multithreaded unlink workloads using delaylog, so it's entirely possible that all CPU cores are fully utilised on your machine. > - or is there only one core used? > I think I read somewhere that each AG should get a core or so... If all the files are in one AG, then it will serialise on the AGI header and won't use much more than one CPU. Cheers, Dave. -- Dave Chinner david@fromorbit.com From SRS0+6Uso+3+fromorbit.com=david@internode.on.net Tue Aug 31 22:41:23 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o813fNqL100887 for ; Tue, 31 Aug 2010 22:41:23 -0500 X-ASG-Debug-ID: 1283312520-323401720000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 612121799BE5 for ; Tue, 31 Aug 2010 20:42:01 -0700 (PDT) Received: from mail.internode.on.net (bld-mail13.adl6.internode.on.net [150.101.137.98]) by cuda.sgi.com with ESMTP id B90FeaXfBalWbGWE for ; Tue, 31 Aug 2010 20:42:01 -0700 (PDT) Received: from dastard (unverified [121.44.127.68]) by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 37446443-1927428 for multiple; Wed, 01 Sep 2010 13:11:59 +0930 (CST) Received: from dave by dastard with local (Exim 4.71) (envelope-from ) id 1OqeCy-00010O-K3; Wed, 01 Sep 2010 13:41:56 +1000 Date: Wed, 1 Sep 2010 13:41:56 +1000 From: Dave Chinner To: Stan Hoeppner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: deleting 2TB lots of files with delaylog: sync helps? Subject: Re: deleting 2TB lots of files with delaylog: sync helps? Message-ID: <20100901034156.GQ705@dastard> References: <201009010130.41500@zmi.at> <20100901000631.GO705@dastard> <4C7DC21B.1040705@hardwarefreak.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C7DC21B.1040705@hardwarefreak.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: bld-mail13.adl6.internode.on.net[150.101.137.98] X-Barracuda-Start-Time: 1283312522 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39573 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Aug 31, 2010 at 10:01:47PM -0500, Stan Hoeppner wrote: > Dave Chinner put forth on 8/31/2010 7:06 PM: > > > You're probably CPU bound, not IO bound. > > 7200 rpm is the highest spindle speed for 2TB drives--5400 is most > common. None of them are going to do much over 200 random seeks/second, > if that. That's 400 tops for two drives. > > Using any modern Intel/AMD ~2 GHz CPU, you think he's CPU bound? Absolutely. > Apparently this "rm -rf" type operation is much more complex than I > previously believed. Nothing in XFS is simple. ;) Unlinks that free the inode clusters results in no inode writeback load, so the majority of the IO is log traffic. Hence they are either log IO bound or read latency bound. A pair of 2TB SATA drives will be good for at least 150MB/s of log throughput, but the numbers are nowhere near that. Without delayed logging, 150MB/s is enough for a single threaded unlink to consume an entire CPU core on any modern CPU, and there maybe enough bandwidth for two threads to max out 2 CPUs. With delaylog, log throughput is reduced by an order of magnitude, so should be good for at least 10x that number of CPU cores running flat out unless they are latency bound reading the directories and inodes into memory..... Cheers, Dave. -- Dave Chinner david@fromorbit.com From stan@hardwarefreak.com Tue Aug 31 23:41:29 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o814fTJG104443 for ; Tue, 31 Aug 2010 23:41:29 -0500 X-ASG-Debug-ID: 1283316761-175c03d00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B56FA134683C for ; Tue, 31 Aug 2010 21:52:41 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id qozSS6CnngWmzMG3 for ; Tue, 31 Aug 2010 21:52:41 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id AB91F6C370 for ; Tue, 31 Aug 2010 23:42:07 -0500 (CDT) Message-ID: <4C7DD99F.7000401@hardwarefreak.com> Date: Tue, 31 Aug 2010 23:42:07 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: deleting 2TB lots of files with delaylog: sync helps? Subject: Re: deleting 2TB lots of files with delaylog: sync helps? References: <201009010130.41500@zmi.at> <20100901000631.GO705@dastard> <201009010222.57350@zmi.at> <20100901031954.GP705@dastard> In-Reply-To: <20100901031954.GP705@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1283316761 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1094 1.0000 -1.3364 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.74 X-Barracuda-Spam-Status: No, SCORE=-0.74 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner put forth on 8/31/2010 10:19 PM: > On Wed, Sep 01, 2010 at 02:22:31AM +0200, Michael Monnerie wrote: >> >> This is a hexa-core AMD Phenom(tm) II X6 1090T Processor with up to >> 3.2GHz per core, so that shouldn't be > > I'm getting a 8core/16thread server being CPU bound with multithreaded > unlink workloads using delaylog, so it's entirely possible that all > CPU cores are fully utilised on your machine. What's your disk configuration on this 8 core machine? Are you implying/stating that the performance of the disk subsystem is irrelevant WRT multithreaded unlink workloads with delaylog enabled? If so, this CPU hit you describe is specific to this workload scenario only, not necessarily all your XFS test workloads, correct? -- Stan From MAILER-DAEMON@oss.sgi.com Tue Aug 31 23:45:55 2010 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_MIME_NO_TEXT, T_TVD_MIME_NO_HEADERS autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id o814jtWc104702 for ; Tue, 31 Aug 2010 23:45:55 -0500 X-ASG-Debug-ID: 1283316393-39b102680000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mirapoint2.hull.ac.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 42C75415DD for ; Tue, 31 Aug 2010 21:46:33 -0700 (PDT) Received: from mirapoint2.hull.ac.uk (mirapoint2.hull.ac.uk [150.237.47.28]) by cuda.sgi.com with ESMTP id CRNqSrmKlEPA9ien for ; Tue, 31 Aug 2010 21:46:33 -0700 (PDT) Received: from localhost (localhost) by mirapoint2.hull.ac.uk (MOS 3.7.3a-GA) with internal id EDF80827; Wed, 1 Sep 2010 04:46:30 GMT Date: Wed, 1 Sep 2010 04:46:30 GMT From: Mail Delivery Subsystem Message-Id: <201009010446.EDF80827@mirapoint2.hull.ac.uk> To: linux-xfs@oss.sgi.com MIME-Version: 1.0 X-ASG-Orig-Subj: Returned mail: cuda_nsu Unknown user (from barracudas.hull.ac.uk) Subject: Returned mail: cuda_nsu Unknown user (from barracudas.hull.ac.uk) Auto-Submitted: auto-generated (failure) Content-Type: multipart/mixed; boundary="MIRAPOINT_PART1_4c7ddaa7" X-Mirapoint-Sig: mirapoint2.hull.ac.uk X-Barracuda-Connect: mirapoint2.hull.ac.uk[150.237.47.28] X-Barracuda-Start-Time: 1283316394 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5307 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.95 X-Barracuda-Spam-Status: No, SCORE=0.95 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA590 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_SA590 Custom Rule SA590 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a MIME-encapsulated message --MIRAPOINT_PART1_4c7ddaa7 Content-Type: multipart/report; report-type=delivery-status; boundary="EDF80827.1283316390/mirapoint2.hull.ac.uk" --EDF80827.1283316390/mirapoint2.hull.ac.uk The original message was received at Wed, 1 Sep 2010 04:46:30 GMT from localhost [113.190.179.201] (may be forged) ----- The following addresses had permanent delivery errors ----- --EDF80827.1283316390/mirapoint2.hull.ac.uk Content-Type: message/delivery-status Reporting-MTA: dns; mirapoint2.hull.ac.uk Arrival-Date: Wed, 1 Sep 2010 04:46:30 GMT Final-Recipient: RFC822; m.nicholson@acs.hull.ac.uk Action: failed Status: 5.1.1 Remote-MTA: DNS; barracudas.hull.ac.uk Diagnostic-Code: SMTP; 550 cuda_nsu Unknown user Last-Attempt-Date: Wed, 1 Sep 2010 04:46:30 GMT --EDF80827.1283316390/mirapoint2.hull.ac.uk Content-Type: message/rfc822 Return-Path: Received: from oss.sgi.com (localhost [113.190.179.201] (may be forged)) by mirapoint2.hull.ac.uk (MOS 3.7.3a-GA) with ESMTP id EDF80824; Wed, 1 Sep 2010 04:46:27 GMT Message-Id: <201009010446.EDF80824@mirapoint2.hull.ac.uk> From: linux-xfs@oss.sgi.com To: m.nicholson@acs.hull.ac.uk Subject: Error Date: Wed, 1 Sep 2010 11:46:11 +0700 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 --EDF80827.1283316390/mirapoint2.hull.ac.uk-- --MIRAPOINT_PART1_4c7ddaa7 Content-Disposition: inline ***************************************************************************************** To view the terms under which this email is distributed, please go to http://www.hull.ac.uk/legal/email_disclaimer.html ***************************************************************************************** --MIRAPOINT_PART1_4c7ddaa7--