From owner-freebsd-arch Sun Aug 5 7:13:16 2001 Delivered-To: freebsd-arch@freebsd.org Received: from Awfulhak.org (gw.Awfulhak.org [217.204.245.18]) by hub.freebsd.org (Postfix) with ESMTP id CBA5D37B405 for ; Sun, 5 Aug 2001 07:13:10 -0700 (PDT) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [172.16.0.12]) by Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75ECwj00895; Sun, 5 Aug 2001 15:12:58 +0100 (BST) (envelope-from brian@lan.Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75ECwu42771; Sun, 5 Aug 2001 15:12:58 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200108051412.f75ECwu42771@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Dima Dorfman Cc: arch@FreeBSD.ORG, brian@freebsd-services.com Subject: Re: Library routine to load a kld if it already isn't In-Reply-To: Message from Dima Dorfman of "Fri, 03 Aug 2001 13:31:01 PDT." <20010803203106.447343E35@bazooka.unixfreak.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 05 Aug 2001 15:12:58 +0100 From: Brian Somers Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > Programs that control a certain driver or set of drivers (e.g., > ifconfig, ccdconfig, mdconfig) attempt to load the module they'll be > working with if it isn't already present. They do it in different > ways, and the most correct way (i.e., the one that handles the most > cases properly) is liable to change if the kld subsystem ever changes. > I propose to add a library routine, kldmaybeload(3), that will check > if a certain module is present in the kernel, and load it if it isn't. > This will cut down on duplicated code, and may save some headaches > later if the kld interface changes. > > Sharball of the implementation and man page is attached (extract into > src/lib/libc/gen). Comments? Suggestions? This is normally done with: if (modfind("module") == -1 && ID0kldload("module") == -1) errx(); I don't think it's a good idea to change this. -- Brian http://www.freebsd-services.com/ Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Sun Aug 5 9: 6:10 2001 Delivered-To: freebsd-arch@freebsd.org Received: from bazooka.unixfreak.org (bazooka.unixfreak.org [63.198.170.138]) by hub.freebsd.org (Postfix) with ESMTP id 11D5E37B405 for ; Sun, 5 Aug 2001 09:06:07 -0700 (PDT) (envelope-from dima@unixfreak.org) Received: by bazooka.unixfreak.org (Postfix, from userid 1000) id C985F3E35; Sun, 5 Aug 2001 09:06:06 -0700 (PDT) Received: from bazooka.unixfreak.org (localhost [127.0.0.1]) by bazooka.unixfreak.org (Postfix) with ESMTP id BE9B43C12E; Sun, 5 Aug 2001 09:06:06 -0700 (PDT) To: Brian Somers Cc: arch@FreeBSD.ORG, brian@freebsd-services.com Subject: Re: Library routine to load a kld if it already isn't In-Reply-To: <200108051412.f75ECwu42771@hak.lan.Awfulhak.org>; from brian@Awfulhak.org on "Sun, 05 Aug 2001 15:12:58 +0100" Date: Sun, 05 Aug 2001 09:06:01 -0700 From: Dima Dorfman Message-Id: <20010805160606.C985F3E35@bazooka.unixfreak.org> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Brian Somers writes: > > Programs that control a certain driver or set of drivers (e.g., > > ifconfig, ccdconfig, mdconfig) attempt to load the module they'll be > > working with if it isn't already present. They do it in different > > ways, and the most correct way (i.e., the one that handles the most > > cases properly) is liable to change if the kld subsystem ever changes. > > I propose to add a library routine, kldmaybeload(3), that will check > > if a certain module is present in the kernel, and load it if it isn't. > > This will cut down on duplicated code, and may save some headaches > > later if the kld interface changes. > > > > Sharball of the implementation and man page is attached (extract into > > src/lib/libc/gen). Comments? Suggestions? > > This is normally done with: > > if (modfind("module") == -1 && ID0kldload("module") == -1) > errx(); > > I don't think it's a good idea to change this. Only it's wrong in some cases. Some modules will have a bus attached to their name, such as "pci/if_fxp", and modfind() won't find them unless you give the full name. If it were just the simpler cases as above, I probably wouldn't propose this; it's them more complex cases where this would help. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Sun Aug 5 9:17:23 2001 Delivered-To: freebsd-arch@freebsd.org Received: from Awfulhak.org (gw.Awfulhak.org [217.204.245.18]) by hub.freebsd.org (Postfix) with ESMTP id E213E37B401 for ; Sun, 5 Aug 2001 09:17:19 -0700 (PDT) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [172.16.0.12]) by Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75GHHj01178; Sun, 5 Aug 2001 17:17:17 +0100 (BST) (envelope-from brian@lan.Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75GHGu44097; Sun, 5 Aug 2001 17:17:16 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200108051617.f75GHGu44097@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Dima Dorfman Cc: Brian Somers , arch@FreeBSD.ORG, brian@freebsd-services.com, brian@freebsd-services.com Subject: Re: Library routine to load a kld if it already isn't In-Reply-To: Message from Dima Dorfman of "Sun, 05 Aug 2001 09:06:01 PDT." <20010805160606.C985F3E35@bazooka.unixfreak.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 05 Aug 2001 17:17:16 +0100 From: Brian Somers Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > Brian Somers writes: > > > Programs that control a certain driver or set of drivers (e.g., > > > ifconfig, ccdconfig, mdconfig) attempt to load the module they'll be > > > working with if it isn't already present. They do it in different > > > ways, and the most correct way (i.e., the one that handles the most > > > cases properly) is liable to change if the kld subsystem ever changes. > > > I propose to add a library routine, kldmaybeload(3), that will check > > > if a certain module is present in the kernel, and load it if it isn't. > > > This will cut down on duplicated code, and may save some headaches > > > later if the kld interface changes. > > > > > > Sharball of the implementation and man page is attached (extract into > > > src/lib/libc/gen). Comments? Suggestions? > > > > This is normally done with: > > > > if (modfind("module") == -1 && ID0kldload("module") == -1) > > errx(); > > > > I don't think it's a good idea to change this. > > Only it's wrong in some cases. Some modules will have a bus attached > to their name, such as "pci/if_fxp", and modfind() won't find them > unless you give the full name. If it were just the simpler cases as > above, I probably wouldn't propose this; it's them more complex cases > where this would help. Hmm, what's the reasoning behind this. Is one of these an miibus based fxp and the other not ? If so, is the plan to deprecate one ? I find this bizarre - there's no trace of anything about this in NOTES or fxp(4). Nonetheless, shouldn't modfind() be made capable of doing it's job properly (finding "pci/if_fxp" if that's what's really required) ? -- Brian http://www.freebsd-services.com/ Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Sun Aug 5 9:24:27 2001 Delivered-To: freebsd-arch@freebsd.org Received: from bazooka.unixfreak.org (bazooka.unixfreak.org [63.198.170.138]) by hub.freebsd.org (Postfix) with ESMTP id 1FD7637B403 for ; Sun, 5 Aug 2001 09:24:15 -0700 (PDT) (envelope-from dima@unixfreak.org) Received: by bazooka.unixfreak.org (Postfix, from userid 1000) id 225003E35; Sun, 5 Aug 2001 09:24:14 -0700 (PDT) Received: from bazooka.unixfreak.org (localhost [127.0.0.1]) by bazooka.unixfreak.org (Postfix) with ESMTP id 173C83C12D; Sun, 5 Aug 2001 09:24:14 -0700 (PDT) To: Brian Somers Cc: arch@FreeBSD.ORG, brian@freebsd-services.com Subject: Re: Library routine to load a kld if it already isn't In-Reply-To: <200108051617.f75GHGu44097@hak.lan.Awfulhak.org>; from brian@Awfulhak.org on "Sun, 05 Aug 2001 17:17:16 +0100" Date: Sun, 05 Aug 2001 09:24:09 -0700 From: Dima Dorfman Message-Id: <20010805162414.225003E35@bazooka.unixfreak.org> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Brian Somers writes: > > Brian Somers writes: > > > > Programs that control a certain driver or set of drivers (e.g., > > > > ifconfig, ccdconfig, mdconfig) attempt to load the module they'll be > > > > working with if it isn't already present. They do it in different > > > > ways, and the most correct way (i.e., the one that handles the most > > > > cases properly) is liable to change if the kld subsystem ever changes. > > > > I propose to add a library routine, kldmaybeload(3), that will check > > > > if a certain module is present in the kernel, and load it if it isn't. > > > > This will cut down on duplicated code, and may save some headaches > > > > later if the kld interface changes. > > > > > > > > Sharball of the implementation and man page is attached (extract into > > > > src/lib/libc/gen). Comments? Suggestions? > > > > > > This is normally done with: > > > > > > if (modfind("module") == -1 && ID0kldload("module") == -1) > > > errx(); > > > > > > I don't think it's a good idea to change this. > > > > Only it's wrong in some cases. Some modules will have a bus attached > > to their name, such as "pci/if_fxp", and modfind() won't find them > > unless you give the full name. If it were just the simpler cases as > > above, I probably wouldn't propose this; it's them more complex cases > > where this would help. > > Hmm, what's the reasoning behind this. Is one of these an miibus > based fxp and the other not ? If so, is the plan to deprecate one ? > I find this bizarre - there's no trace of anything about this in > NOTES or fxp(4). This isn't fxp-specific, I just used fxp as an example. Do a "kldstat -v" and you'll see a lot of other drivers with bus names in front. Here's a small exerpt: 78 nexus/npx 79 isa/npxisa 80 nexus/pcib 81 pci/hostb 82 isa/pcibus_pnp 83 atkbdc/atkbd > Nonetheless, shouldn't modfind() be made capable of doing it's job > properly (finding "pci/if_fxp" if that's what's really required) ? Well, no, because the module name really is "pci/if_fxp". The reason you can use kldload("if_fxp"); is because the filename is if_fxp.ko. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Sun Aug 5 10:46:22 2001 Delivered-To: freebsd-arch@freebsd.org Received: from Awfulhak.org (gw.Awfulhak.org [217.204.245.18]) by hub.freebsd.org (Postfix) with ESMTP id 7C97237B401 for ; Sun, 5 Aug 2001 10:46:18 -0700 (PDT) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [172.16.0.12]) by Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75HkEj01385; Sun, 5 Aug 2001 18:46:15 +0100 (BST) (envelope-from brian@lan.Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75HkEu45187; Sun, 5 Aug 2001 18:46:14 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200108051746.f75HkEu45187@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Dima Dorfman Cc: Brian Somers , arch@FreeBSD.ORG, brian@freebsd-services.com, brian@freebsd-services.com Subject: Re: Library routine to load a kld if it already isn't In-Reply-To: Message from Dima Dorfman of "Sun, 05 Aug 2001 09:24:09 PDT." <20010805162414.225003E35@bazooka.unixfreak.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 05 Aug 2001 18:46:14 +0100 From: Brian Somers Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > Brian Somers writes: > > > Brian Somers writes: > > > > > Programs that control a certain driver or set of drivers (e.g., > > > > > ifconfig, ccdconfig, mdconfig) attempt to load the module they'll be > > > > > working with if it isn't already present. They do it in different > > > > > ways, and the most correct way (i.e., the one that handles the most > > > > > cases properly) is liable to change if the kld subsystem ever changes. > > > > > I propose to add a library routine, kldmaybeload(3), that will check > > > > > if a certain module is present in the kernel, and load it if it isn't. > > > > > This will cut down on duplicated code, and may save some headaches > > > > > later if the kld interface changes. > > > > > > > > > > Sharball of the implementation and man page is attached (extract into > > > > > src/lib/libc/gen). Comments? Suggestions? > > > > > > > > This is normally done with: > > > > > > > > if (modfind("module") == -1 && ID0kldload("module") == -1) > > > > errx(); > > > > > > > > I don't think it's a good idea to change this. > > > > > > Only it's wrong in some cases. Some modules will have a bus attached > > > to their name, such as "pci/if_fxp", and modfind() won't find them > > > unless you give the full name. If it were just the simpler cases as > > > above, I probably wouldn't propose this; it's them more complex cases > > > where this would help. > > > > Hmm, what's the reasoning behind this. Is one of these an miibus > > based fxp and the other not ? If so, is the plan to deprecate one ? > > I find this bizarre - there's no trace of anything about this in > > NOTES or fxp(4). > > This isn't fxp-specific, I just used fxp as an example. Do a "kldstat > -v" and you'll see a lot of other drivers with bus names in front. > Here's a small exerpt: > > 78 nexus/npx > 79 isa/npxisa > 80 nexus/pcib > 81 pci/hostb > 82 isa/pcibus_pnp > 83 atkbdc/atkbd > > > > Nonetheless, shouldn't modfind() be made capable of doing it's job > > properly (finding "pci/if_fxp" if that's what's really required) ? > > Well, no, because the module name really is "pci/if_fxp". The reason > you can use kldload("if_fxp"); is because the filename is if_fxp.ko. So maybe the code should be reduced to if (ID0kldload("if_fxp") == -1 && errno != EEXIST) errx(); until someone eventually decides how the module -> name mapping is actually going to work ? I don't think a userland api is a good idea for something that's unfinished in the kernel. -- Brian http://www.freebsd-services.com/ Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Sun Aug 5 15:20:29 2001 Delivered-To: freebsd-arch@freebsd.org Received: from mass.dis.org (dhcp45-25.dis.org [216.240.45.25]) by hub.freebsd.org (Postfix) with ESMTP id DCA8037B415 for ; Sun, 5 Aug 2001 15:20:23 -0700 (PDT) (envelope-from msmith@mass.dis.org) Received: from mass.dis.org (localhost [127.0.0.1]) by mass.dis.org (8.11.4/8.11.3) with ESMTP id f75MMj100826; Sun, 5 Aug 2001 15:22:48 -0700 (PDT) (envelope-from msmith@mass.dis.org) Message-Id: <200108052222.f75MMj100826@mass.dis.org> X-Mailer: exmh version 2.1.1 10/15/1999 To: Dima Dorfman Cc: Brian Somers , arch@FreeBSD.ORG, brian@freebsd-services.com Subject: Re: Library routine to load a kld if it already isn't In-reply-to: Your message of "Sun, 05 Aug 2001 09:06:01 PDT." <20010805160606.C985F3E35@bazooka.unixfreak.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 05 Aug 2001 15:22:45 -0700 From: Mike Smith Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > > > Sharball of the implementation and man page is attached (extract into > > > src/lib/libc/gen). Comments? Suggestions? > > > > This is normally done with: > > > > if (modfind("module") == -1 && ID0kldload("module") == -1) > > errx(); > > > > I don't think it's a good idea to change this. > > Only it's wrong in some cases. Some modules will have a bus attached Please see ifmaybeload() in src/sbin/ifconfig/ifconfig.c. I would like to see a library function like kmodule_require(), which would take a *module* name and version number constrants similar to those taken by loadable modules themselves. -- ... every activity meets with opposition, everyone who acts has his rivals and unfortunately opponents also. But not because people want to be opponents, rather because the tasks and relationships force people to take different points of view. [Dr. Fritz Todt] V I C T O R Y N O T V E N G E A N C E To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Sun Aug 5 16:25:20 2001 Delivered-To: freebsd-arch@freebsd.org Received: from Awfulhak.org (gw.Awfulhak.org [217.204.245.18]) by hub.freebsd.org (Postfix) with ESMTP id 11D0F37B405; Sun, 5 Aug 2001 16:25:14 -0700 (PDT) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [172.16.0.12]) by Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75NOfj02490; Mon, 6 Aug 2001 00:25:01 +0100 (BST) (envelope-from brian@lan.Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.11.4/8.11.4) with ESMTP id f75NOeu49363; Mon, 6 Aug 2001 00:24:40 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200108052324.f75NOeu49363@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Mike Smith Cc: Dima Dorfman , Brian Somers , arch@FreeBSD.ORG, brian@freebsd-services.com, brian@freebsd-services.com Subject: Re: Library routine to load a kld if it already isn't In-Reply-To: Message from Mike Smith of "Sun, 05 Aug 2001 15:22:45 PDT." <200108052222.f75MMj100826@mass.dis.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 06 Aug 2001 00:24:40 +0100 From: Brian Somers Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > > > > Sharball of the implementation and man page is attached (extract into > > > > src/lib/libc/gen). Comments? Suggestions? > > > > > > This is normally done with: > > > > > > if (modfind("module") == -1 && ID0kldload("module") == -1) > > > errx(); > > > > > > I don't think it's a good idea to change this. > > > > Only it's wrong in some cases. Some modules will have a bus attached > > Please see ifmaybeload() in src/sbin/ifconfig/ifconfig.c. > > I would like to see a library function like kmodule_require(), which would > take a *module* name and version number constrants similar to those taken > by loadable modules themselves. From sys/kern/kern_linker.c: /* * Find a file which contains given module and load it, * if "parent" is not NULL, register a reference to it. */ static int linker_load_module(const char *modname, struct linker_file *parent) { linker_file_t lfdep; const char *filename; char *pathname; int error; /* * There will be a system to look up or guess a file name from * a module name. * For now we just try to load a file with the same name. */ pathname = linker_search_path(modname); ..... I don't think it's right to write an API for something that hasn't been defined yet. I'm not saying kmodule_require() doesn't sound like a good idea, just that someone's going to have to design & write a module -> filename mapping mechanism first (or at the same time). The linker_search_path() function isn't even a sufficient placeholder for that right now -- as Dima has pointed out, modules show up with names such as "bus/driver" rather than just "driver", so linker_search_path() should be able to take "pci/if_fxp" and turn that into "if_fxp" somehow. That's not as trivial as it sounds (not to me anyway - I don't know if/how the module namespace is defined...). > -- > ... every activity meets with opposition, everyone who acts has his > rivals and unfortunately opponents also. But not because people want > to be opponents, rather because the tasks and relationships force > people to take different points of view. [Dr. Fritz Todt] > V I C T O R Y N O T V E N G E A N C E -- Brian http://www.freebsd-services.com/ Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Mon Aug 6 6:35:20 2001 Delivered-To: freebsd-arch@freebsd.org Received: from relay2.kornet.net (unknown [211.48.62.162]) by hub.freebsd.org (Postfix) with ESMTP id F02AF37B401; Mon, 6 Aug 2001 06:32:52 -0700 (PDT) (envelope-from clubfriend@clubfriend.com) Received: from bown112 (211.38.171.177) by relay2.kornet.net; 6 Aug 2001 22:32:55 +0900 Message-ID: <006801c11e7b$fe8f4f20$b1ab26d3@kornet.net> Reply-To: "Youn, Roy" From: "Youn, Roy" To: =?ks_c_5601-1987?B?wK/H0MC7wdi68cfPtMK60LKy?= Subject: =?ks_c_5601-1987?B?W8irurhdwK/H0Mb4xbq96sDPISEhyK69x8fRwbawxyEhtbXA/MfP?= =?ks_c_5601-1987?B?vLy/5CEhISE=?= Date: Mon, 6 Aug 2001 22:30:35 +0900 Organization: =?ks_c_5601-1987?B?x8G3o7XlIMCvx9C/+A==?= MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0063_01C11EC7.693216A0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is a multi-part message in MIME format. ------=_NextPart_000_0063_01C11EC7.693216A0 Content-Type: text/plain; charset="ks_c_5601-1987" Content-Transfer-Encoding: base64 ICAgICAgICAgICANCg0KDQogICAgICAgICAgICC+yLPnx8+8vL/kIMfBt6O15SDAr8fQv/ggwNS0 z7TZLg0KICAgICAgICAgICAgursguN7Az8C6IMiruri43sDPwNS0z7TZLiDH47b0vvjAzCC43sDP wLsgurizu7XluK6w1CC1yCDBob+hILTrx9ggwcu828fVtM+02S4gDQoNCiAgICAgICAgICAgICog sc3Hz8DHIGVtYWlsIMGkuri0wiDIqMbkwMzB9iC51yCw1L3Dxse/obytIML8wbbHz7+0vcC0z7TZ Lg0KDQoNCiAgICAgICAgICAgIL+1vu6woSC09SDAzLvzwLoguaux4rChIL7GtNEgx8q89sD7wM4g v+S80rfOILTZsKG/wLTCIMDMIL3DtOu/oSDFq7W3IL7ItenAzLDttbUgx9i/3L+svPa/zSDAr7e0 ILnos7a/qcfgse7B9iC02bPgv8MgvPYgwNa0wrHiyLiwoSDA1r7uvK0gvNKwsyDH1bTPtNkuDQog ICAgICAgICAgICCx17DNtbUgwaTF67+1vu64piC56L/vILz2IMDWtMIgv7WxuSC3sbT4wMcgTE9O RE9OIEVOR0xJU0ggU0NIT09MIL+hvK0gwNS0z7TZLg0KDQogICAgICAgICAgICC6zrTjIL74tMIg sKGw3cC4t84gw+K538fPsO0gx/bB9r+hvK0gvsa4o7nZwMzGrsfPuOkgw+a60Mj3ILv9yLC68bim ILn6vPYgwNa9wLTPtNkuILbHx9Egv6y89rChILOhs6q46SCwobHuv+4gx8G2+726LCDAzMXCuK4g te4gv6m3ryDAr7e0s6q287fOILnos7a/qcfgwLsgtrCzryC89iDA1r3AtM+02S4NCg0KDQogICAg ICAgICAgICAgICAgICDH4LvnwM/BpCA0wvcgOS8zIDogMjAguO0gwaS/+CAoMrjtv6nArykgDQog ICAgICAgICAgICAgICAgICAoMjAwMbPiKSA1wvcgOS8yNCA6IDIwILjtIMGkv/ggIA0KICAgICAg ICAgICAgICAgICAgICA2wvcgMTAvMTkgOiAxNSC47SDBpL/4ICi4trCoKSANCiAgICAgICAgICAg ICAgICAgICAgN8L3IDExLzQgOiAxNSC47SDBpL/4IA0KDQogICAgICAgICAgICDC/LChuvEgOiC/ rLz2IDaws7/5seLB2CAzODAguLi/+CAvIL+svPYgMbPiILHiwdggNDQwILi4v/ggKMSrteUgsOHB piCwobTJKSAoKiogv6y89rHisKMgv6zA5bChtMkpDQogICAgICAgICAgICAgICAgICAgICAgDQog ICAgICAgICAgICAgICAgICDC/LChuvEgxvfH1LO7v6ogOiC/1bq5IMfXsPixxyAoNrCzv/mwoyks ILz2vve34SDA/L7XLCA0wdYgvPe52rrxICgywM4xvccpLCC89rzTt+EsIMPiud/A/CC80r7nsbPA sCwgseKz5CC6ubTrLCC/qcfgwNogurjH6Cwgx/bB9rChwMy15SAosPjH17nMxsMsILz3vNIsIMfQ sbMsIL7GuKO52cDMxq4pIA0KICAgICAgICAgICAgKrvzseIgsd2+18C6IMfQuvEgwPy+1yC51yDA z8O8IMb3x9TAzLbzILT1IMDMu/PAxyDD37ChILrxv+vAuiC++MC4uOcgv7m78yC7/ciwuvG/6yAo vPe9xLrxLCCxs8XrLCC/67W3KcC6IL/5IDcwuLi/+CC8scC4t84gvsa4o7nZwMzGriC89sDUwLi3 ziDD5rTnILChtMnH1bTPtNkuIA0KICAgICAgICAgICAgx/bB9iC+xrijudnAzMauIDogxLO8xSwg veG68Swgv6nH4LvnILChwMy15SC51yC757mrwfcsILzux84gvsa4o7nZwMzGriwgvcS05yC6uMG2 te4gDQogICAgICAgICAgICDH9sH2IL7GuKO52cDMxq4gvPbA1CA6IL3DsKO05yDD1sD6IDcsMDAw v/h+MTAsMDAwv/ggICAxwM8gNb3DsKMsIMHWIDXAzyCx2b3DIC0tLSAxsLO/+SDD1sD6ILz2wNQg NzC4uL/4IH4gMTAwuLi/+CANCg0KDQogICAgICAgICAgICDB9r/4IMDasN0gOiAxOLy8IMDMu/Mg s7IsILPgILSpsbizqiCwobTJICi0qbG4s6ogwK/H0LrxwNogMTAwJSC53r7GteW4sikNCg0KICAg ICAgICAgICAgwNq8vMfRILvnu/PAuiDIqMbkwMzB9iC55rmuwMyzqiC6u7vnt84gv6y29CDB1r3D uOkgw9a8scC7ILTZx9ggtbW/zSC15biusNq9wLTPtNkuDQogICAgICAgICAgICBodHRwOi8vd3d3 LmNsdWJmcmllbmQuY29tIC8gx8G3o7XlIMCvx9C/+CAwMzEtMzk2LTc5MDUvNg0KDQogICAgICAg ICAgICC9xcO7wLsgv/jHz73DtMK60MC6IMDMsPfAuyDF68fPv6kgvcXDu7ytuKYgud+828fPv6kg wda9w7HiILnZtvi0z7TZLg0KICAgICAgICAgICAgwbax4iC9xcO7wNq0wiC897zSILyxxcPAzLOq IL7GuKO52cDMxq4gvNKws73Dxq/A/MDMIMHWvu4gwf20z7TZLiANCg0KICAgICAgICAgICAgKrq7 IMCvx9C/+MC6IEJDIMSrteW75yC/tbG5v6y89iC788ewIMf5t8K+98O8IMDUtM+02S4NCg0KICAg ICAgICAgICANCiAgICAgDQoNCg== ------=_NextPart_000_0063_01C11EC7.693216A0 Content-Type: text/html; charset="ks_c_5601-1987" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PWtzX2NfNTYwMS0xOTg3Ij4NCjxNRVRBIGNvbnRlbnQ9Ik1T SFRNTCA1LjUwLjQ1MjIuMTgwMCIgbmFtZT1HRU5FUkFUT1I+DQo8U1RZTEU+PC9TVFlMRT4NCjwv SEVBRD4NCjxCT0RZIGJnQ29sb3I9I2ZmZmZmZj4NCjxESVY+PEZPTlQgc2l6ZT0yPg0KPFRBQkxF IGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MCB3aWR0aD01MDAgYm9yZGVyPTE+DQogIDxUQk9E WT4NCiAgPFRSPg0KICAgIDxURD4NCiAgICAgIDxUQUJMRSBjZWxsU3BhY2luZz0wIGNlbGxQYWRk aW5nPTAgd2lkdGg9NTAwIGJvcmRlcj0wPg0KICAgICAgICA8VEJPRFk+DQogICAgICAgIDxUUj4N CiAgICAgICAgICA8VEQgd2lkdGg9NTAwIGhlaWdodD0yNTA+DQogICAgICAgICAgICA8T0JKRUNU IA0KICAgICAgICAgICAgY29kZUJhc2U9aHR0cDovL2Rvd25sb2FkLm1hY3JvbWVkaWEuY29tL3B1 Yi9zaG9ja3dhdmUvY2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiN2ZXJzaW9uPTUsMCwwLDAgDQogICAg ICAgICAgICBjbGFzc2lkPWNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAw MCB3aWR0aD01MDAgDQogICAgICAgICAgICBoZWlnaHQ9MjUwPjxQQVJBTSBOQU1FPSJfY3giIFZB TFVFPSIxMzIyOSI+PFBBUkFNIE5BTUU9Il9jeSIgVkFMVUU9IjY2MTUiPjxQQVJBTSBOQU1FPSJN b3ZpZSIgVkFMVUU9Imh0dHA6Ly9jbHViZnJpZW5kLmNvbS+xpLDtLnN3ZiI+PFBBUkFNIE5BTUU9 IlNyYyIgVkFMVUU9Imh0dHA6Ly9jbHViZnJpZW5kLmNvbS+xpLDtLnN3ZiI+PFBBUkFNIE5BTUU9 IldNb2RlIiBWQUxVRT0iV2luZG93Ij48UEFSQU0gTkFNRT0iUGxheSIgVkFMVUU9Ii0xIj48UEFS QU0gTkFNRT0iTG9vcCIgVkFMVUU9Ii0xIj48UEFSQU0gTkFNRT0iUXVhbGl0eSIgVkFMVUU9Ikhp Z2giPjxQQVJBTSBOQU1FPSJTQWxpZ24iIFZBTFVFPSIiPjxQQVJBTSBOQU1FPSJNZW51IiBWQUxV RT0iLTEiPjxQQVJBTSBOQU1FPSJCYXNlIiBWQUxVRT0iIj48UEFSQU0gTkFNRT0iU2NhbGUiIFZB TFVFPSJTaG93QWxsIj48UEFSQU0gTkFNRT0iRGV2aWNlRm9udCIgVkFMVUU9IjAiPjxQQVJBTSBO QU1FPSJFbWJlZE1vdmllIiBWQUxVRT0iMCI+PFBBUkFNIE5BTUU9IkJHQ29sb3IiIFZBTFVFPSIi PjxQQVJBTSBOQU1FPSJTV1JlbW90ZSIgVkFMVUU9IiI+PFBBUkFNIE5BTUU9IlN0YWNraW5nIiBW QUxVRT0iYmVsb3ciPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8ZW1iZWQg ICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwOi8vY2x1YmZyaWVuZC5jb20vsaSw7S5z d2YiIA0KICAgICAgICAgICAgcXVhbGl0eT1oaWdoICAgICAgICAgICAgICAgICAgICAgICAgIA0K ICAgICAgICAgICAgcGx1Z2luc3BhZ2U9Imh0dHA6Ly93d3cubWFjcm9tZWRpYS5jb20vc2hvY2t3 YXZlL2Rvd25sb2FkL2luZGV4LmNnaT9QMV9Qcm9kX1ZlcnNpb249U2hvY2t3YXZlRmxhc2giIA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iYXBwbGljYXRpb24veC1z aG9ja3dhdmUtZmxhc2giIA0KICAgICAgICAgICAgd2lkdGg9IjUwMCIgICAgICAgICAgICAgaGVp Z2h0PSIyNTAiPiAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2VtYmVk PiAgICAgICAgICAgICAgICAgICAgICAgPC9PQkpFQ1Q+PC9URD48L1RSPg0KICAgICAgICA8VFI+ DQogICAgICAgICAgPFREPg0KICAgICAgICAgICAgPFA+Jm5ic3A7PC9QPg0KICAgICAgICAgICAg PFA+PEZPTlQgc2l6ZT0tMT6+yLPnx8+8vL/kIMfBt6O15SDAr8fQv/ggwNS0z7TZLjxCUj66uyC4 3sDPwLogyKu6uLjewM/A1LTPtNkuIMfjtvS++MDMILjewM/AuyC6uLO7teW4rrDUIA0KICAgICAg ICAgICAgtcggwaG/oSC068fYIMHLvNvH1bTPtNkuIDwvRk9OVD48L1A+DQogICAgICAgICAgICA8 UD48Rk9OVCBzaXplPS0xPiogsc3Hz8DHIGVtYWlsIMGkuri0wiDIqMbkwMzB9iC51yCw1L3Dxse/ obytIML8wbbHz7+0vcC0z7TZLjwvRk9OVD48L1A+DQogICAgICAgICAgICA8UD48Rk9OVCBzaXpl PS0xPjxCUj6/tb7usKEgtPUgwMy788C6ILmrseKwoSC+xrTRIMfKvPbA+8DOIL/kvNK3ziC02bCh v8C0wiDAzCC9w7Trv6Egxau1tyC+yLXpwMyw7bW1IA0KICAgICAgICAgICAgPEI+PEZPTlQgY29s b3I9IzAwMDA4MD7H2L/cv6y89r/NIMCvt7Qgueiztr+px+A8L0ZPTlQ+PC9CPrHuwfYgtNmz4L/D ILz2IMDWtMKx4si4sKEgwNa+7rytILzSsLMgDQogICAgICAgICAgICDH1bTPtNkuPEJSPrHXsM21 tSDBpMXrv7W+7rimILnov+8gvPYgwNa0wiC/tbG5ILextPjAxyA8Qj48Rk9OVCBjb2xvcj0jMDAw MDgwPkxPTkRPTiANCiAgICAgICAgICAgIEVOR0xJU0ggU0NIT09MPC9GT05UPjwvQj48Rk9OVCBj b2xvcj0jMDAwMDgwPiA8L0ZPTlQ+v6G8rSANCiAgICAgICAgICAgIMDUtM+02S48L0ZPTlQ+PC9Q Pg0KICAgICAgICAgICAgPFA+PEZPTlQgc2l6ZT0tMT66zrTjIL74tMIgsKGw3cC4t84gw+K538fP sO0gx/bB9r+hvK0gvsa4o7nZwMzGrsfPuOkgw+a60Mj3ILv9yLC68bimILn6vPYgwNa9wLTPtNku ILbHx9EgDQogICAgICAgICAgICC/rLz2sKEgs6GzqrjpILChse6/7iDHwbb7vbosIMDMxcK4riC1 7iC/qbevIMCvt7Szqrbzt84gueiztr+px+DAuyC2sLOvILz2IMDWvcC0z7TZLjwvRk9OVD48Rk9O VCANCiAgICAgICAgICAgIHNpemU9LTE+PEJSPjwvRk9OVD48L1A+DQogICAgICAgICAgICA8VEFC TEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSI4MCUiIGJvcmRlcj0wPg0KICAg ICAgICAgICAgICA8VEJPRFk+DQogICAgICAgICAgICAgIDxUUj4NCiAgICAgICAgICAgICAgICA8 VEQgd2lkdGg9IjI3JSI+PEZPTlQgc2l6ZT0tMT7H4LvnwM/BpDwvRk9OVD48L1REPg0KICAgICAg ICAgICAgICAgIDxURCB3aWR0aD0iMjIlIj48Rk9OVCBzaXplPS0xPjTC9yA5LzMgOjwvRk9OVD48 L1REPg0KICAgICAgICAgICAgICAgIDxURCB3aWR0aD0iNTElIj48Rk9OVCBzaXplPS0xPjIwILjt IMGkv/ggKDK47b+pwK8pPC9GT05UPjwvVEQ+PC9UUj4NCiAgICAgICAgICAgICAgPFRSPg0KICAg ICAgICAgICAgICAgIDxURCB3aWR0aD0iMjclIj48Rk9OVCBzaXplPS0xPigyMDAxs+IpPC9GT05U PjwvVEQ+DQogICAgICAgICAgICAgICAgPFREIHdpZHRoPSIyMiUiPjxGT05UIHNpemU9LTE+NcL3 IDkvMjQgOjwvRk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURCB3aWR0aD0iNTElIj48Rk9O VCBzaXplPS0xPjIwILjtIMGkv/ggPC9GT05UPjwvVEQ+PC9UUj4NCiAgICAgICAgICAgICAgPFRS Pg0KICAgICAgICAgICAgICAgIDxURCB3aWR0aD0iMjclIj4mbmJzcDs8L1REPg0KICAgICAgICAg ICAgICAgIDxURCB3aWR0aD0iMjIlIj48Rk9OVCBzaXplPS0xPjbC9yAxMC8xOSA6PC9GT05UPjwv VEQ+DQogICAgICAgICAgICAgICAgPFREIHdpZHRoPSI1MSUiPjxGT05UIHNpemU9LTE+MTUguO0g waS/+CAouLawqCk8L0ZPTlQ+PC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAg ICAgICAgICAgPFREIHdpZHRoPSIyNyUiPiZuYnNwOzwvVEQ+DQogICAgICAgICAgICAgICAgPFRE IHdpZHRoPSIyMiUiPjxGT05UIHNpemU9LTE+N8L3IDExLzQgOjwvRk9OVD48L1REPg0KICAgICAg ICAgICAgICAgIDxURCB3aWR0aD0iNTElIj48Rk9OVCBzaXplPS0xPjE1ILjtIA0KICAgICAgICAg ICAgwaS/+DwvRk9OVD48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjxGT05UIHNpemU9LTE+PEJS PsL8sKG68SA6IL+svPYgPEZPTlQgDQogICAgICAgICAgICBjb2xvcj0jZmYwMDAwIHNpemU9Mz48 Qj42sLO/+bHiwdggMzgwILi4v/g8L0I+PC9GT05UPiAvIL+svPYgPEZPTlQgDQogICAgICAgICAg ICBzaXplPTM+PEI+PEZPTlQgY29sb3I9I2ZmMDAwMD4xs+IgseLB2CA0NDAguLi/+DwvRk9OVD48 L0I+IDwvRk9OVD4oxKu15SCw4cGmIA0KICAgICAgICAgICAgsKG0yTxGT05UIGNvbG9yPSMwMDAw ODA+KTwvRk9OVD4gKCoqIL+svPax4rCjIL+swOWwobTJKTxCUj48L0ZPTlQ+DQogICAgICAgICAg ICA8VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBib3JkZXI9 MD4NCiAgICAgICAgICAgICAgPFRCT0RZPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAg ICAgICAgPFREIHdpZHRoPSIxOCUiPiZuYnNwOzwvVEQ+DQogICAgICAgICAgICAgICAgPFREIHdp ZHRoPSI4MiUiPiZuYnNwOzwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+DQogICAgICAgICAgICA8 VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBib3JkZXI9MD4N CiAgICAgICAgICAgICAgPFRCT0RZPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAg ICAgPFREIHZBbGlnbj10b3Agd2lkdGg9IjIyJSI+PEZPTlQgc2l6ZT0tMT7C/LChuvEgxvfH1LO7 v6ogOjwvRk9OVD48L1REPg0KICAgICAgICAgICAgICAgIDxURCB3aWR0aD0iNzglIj48Rk9OVCBz aXplPS0xPr/Vurkgx9ew+LHHICg2sLO/+bCjKSwgPEI+PEZPTlQgDQogICAgICAgICAgICAgICAg ICBjb2xvcj0jMDAwMDgwPrz2vve34SDA/L7XPC9GT05UPjwvQj4sIDTB1iC897nauvEgKDLAzjG9 xyksILz2vNO34Swgw+K538D8ILzSvuexs8CwLCANCiAgICAgICAgICAgICAgICAgILHis+Qgurm0 6ywgv6nH4MDaILq4x+gsIMf2wfawocDMteUgKLD4x9e5zMbDLCC897zSLCDH0LGzLCANCiAgICAg ICAgICAgIL7GuKO52cDMxq4pPC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PEZPTlQg c2l6ZT0tMT4qu/Ox4iCx3b7XwLogx9C68SDA/L7XILnXIA0KICAgICAgICAgICAgwM/DvCDG98fU wMy28yA8Rk9OVCBjb2xvcj0jMDAwMDgwPjxCPrT1IMDMu/PAxyDD37ChILrxv+vAuiC++MC4uOc8 L0I+PC9GT05UPiC/ubvzILv9yLC68b/rIA0KICAgICAgICAgICAgKLz3vcS68SwgsbPF6ywgv+u1 tynAuiC/+SA3MLi4v/ggvLHAuLfOIL7GuKO52cDMxq4gvPbA1MC4t84gw+a05yCwobTJx9W0z7TZ LiA8L0ZPTlQ+DQogICAgICAgICAgICA8UD48Rk9OVCBzaXplPS0xPsf2wfYgvsa4o7nZwMzGriA6 IMSzvMUsIL3huvEsIL+px+C75yCwocDMteUgudcgu+e5q8H3LCC87sfOIL7GuKO52cDMxq4sIL3E tOcgurjBtrXuIA0KICAgICAgICAgICAgPEJSPsf2wfYgvsa4o7nZwMzGriC89sDUIDogvcOwo7Tn IMPWwPogNywwMDC/+H4xMCwwMDC/+CA8L0ZPTlQ+DQogICAgICAgICAgICA8VEFCTEUgY2VsbFNw YWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBib3JkZXI9MD4NCiAgICAgICAgICAg ICAgPFRCT0RZPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAgICAgPFREIHdpZHRo PSIyNyUiPiZuYnNwOzwvVEQ+DQogICAgICAgICAgICAgICAgPFREIHdpZHRoPSI3MyUiPjxGT05U IHNpemU9LTE+McDPIDW9w7CjLCDB1iA1wM8gsdm9wyAtLS0gMbCzv/kgw9bA+iC89sDUIA0KICAg ICAgICAgICAgICAgICAgNzC4uL/4IH4gMTAwuLi/+DwvRk9OVD48L1REPjwvVFI+PC9UQk9EWT48 L1RBQkxFPg0KICAgICAgICAgICAgPFA+PEZPTlQgc2l6ZT0tMT7B9r/4IMDasN0gOiA8Qj48Rk9O VCBjb2xvcj0jMDAwMDgwPjE4vLwgwMy78yCzsiwgs+AgtKmxuLOqIA0KICAgICAgICAgICAgsKG0 yTwvRk9OVD48L0I+ICi0qbG4s6ogwK/H0LrxwNogMTAwJSC53r7GteW4sik8L0ZPTlQ+PC9QPg0K ICAgICAgICAgICAgPFA+PEZPTlQgc2l6ZT0tMT7A2ry8x9Egu+e788C6IMioxuTAzMH2ILnmua7A zLOqILq7u+e3ziC/rLb0IMHWvcO46SDD1ryxwLsgtNnH2CC1tb/NIA0KICAgICAgICAgICAgteW4 rrDavcC0z7TZLjxCUj48QSBocmVmPSJodHRwOi8vY2x1YmZyaWVuZC5jb20iPmh0dHA6Ly93d3cu Y2x1YmZyaWVuZC5jb20gDQogICAgICAgICAgICA8L0E+LyDHwbejteUgwK/H0L/4IDAzMS0zOTYt NzkwNS82PC9GT05UPjwvUD4NCiAgICAgICAgICAgIDxQPjxGT05UIHNpemU9LTE+PEEgDQogICAg ICAgICAgICBocmVmPSJodHRwOi8vY2x1YmZyaWVuZC5jb20vc3VibWl0LWZyYW1lLmh0bWwiPjxC PjxGT05UIA0KICAgICAgICAgICAgY29sb3I9IzAwMDA4MD69xcO7wLsgv/jHz73DtMK60MC6IMDM sPfAuyDF68fPv6kgvcXDu7ytuKYgud+82zwvRk9OVD48L0I+PC9BPsfPv6kgwda9w7HiIA0KICAg ICAgICAgICAgudm2+LTPtNkuPEJSPsG2seIgvcXDu8DatMIgvPe80iC8scXDwMyzqiC+xrijudnA zMauILzSsLO9w8avwPzAzCDB1r7uIMH9tM+02S4gPC9GT05UPjwvUD4NCiAgICAgICAgICAgIDxQ PjxGT05UIHNpemU9LTE+PEI+PEZPTlQgY29sb3I9IzAwMDA4MD4qursgwK/H0L/4wLogQkMgxKu1 5bvnIL+1sbm/rLz2ILvzx7Agx/m3wr73w7wgDQogICAgICAgICAgICDA1LTPtNkuPC9GT05UPjwv Qj48L0ZPTlQ+PC9QPg0KICAgICAgICAgICAgPFA+PC9QPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFC TEU+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT48L0ZPTlQ+PC9ESVY+PC9CT0RZPjwvSFRNTD4N Cg== ------=_NextPart_000_0063_01C11EC7.693216A0-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Mon Aug 6 15:42:32 2001 Delivered-To: freebsd-arch@freebsd.org Received: from ?????? (unknown [211.244.225.95]) by hub.freebsd.org (Postfix) with SMTP id 82FBB37B405 for ; Mon, 6 Aug 2001 15:42:06 -0700 (PDT) (envelope-from ksj@edusarang.com) From: =?ks_c_5601-1987?B?w7XA57ChtcggssPF6w==?= To: freebsd-arch@FreeBSD.org Subject: =?ks_c_5601-1987?B?u+y4573DIL7Lt8G15bixsNS/5Cwguau9vMDPwMy15yCzsrq4tNm9sbDULi4u?= Date: Tue, 07 Aug 2001 07:41:43 +0900 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0077_01C0F07A.93A41C00" X-Priority: 3 Message-Id: <20010806224206.82FBB37B405@hub.freebsd.org> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is a multi-part message in MIME format. ------=_NextPart_000_0077_01C0F07A.93A41C00 Content-Type: text/plain; charset="ks_c_5601-1987" Content-Transfer-Encoding: base64 v6G14LvntvsguN7AzyC80r3EwfYgIAkJCQkJCQkJCQkJCQkJCQkNCgkJCQkgICAgICAgDQoN CiAgIA0Kx+O29L74wMwgIMDMuN7Az8C7ILq4s7sgwcu828fVtM+02S4gxbggu+fAzMauILDU vcPGx7+hvK0guavA28Cnt84gud/D6cfPv6kgurizu7nHt84gsLPAzsGkurggs+vD4sC6IL74 vcC0z7TZLiAgDQogICAgICAJCQkJCQkJCQkJCSANCiANCgkJCQkgICAgIA0KCQkJCSANCiAN CgkgCQkgICAgICAgICAgDQoNCiAgIA0KILGzwOcgIMfRscfAuyCw7biuLbnmu+e9xCAgseK+ 78C4t84gv8+6rsfPsNQgILHivu8hISENCiAgICAgICAgICAgDQogDQogICAgICAgICAgIA0K DQogICANCiDD1rzSICA0uejAxyDA0LHiILzTtbUgILnXIMDMx9i1tSDB9bChISEhDQogICAg ICAgICAgIA0KIA0KICAgICAgICAgICANCg0KICAgDQogw9a46cC4t84gIMDhwOe1yCDH0L3A tMm3/CAgsfq/7LHiISEhDQogICAgICAgICAgIA0KIA0KICAgICAgICAgICANCg0KICAgDQog MbrQICC6ub3AwLi3ziDA/MO8ILO7v+sgIMbEvschISENCiAgICAgICAgICAgDQogDQogICAg ICAgICAgIA0KDQogICANCiC47sO1tNzAp7bztbUgILXotMK067fOIMO0w7QgsOi76iEhIQ0K ICAgICAgICAgICANCiANCiAgICAgICAgICAgDQoNCiAgIA0KIDW60L+hICAxMDC03L7uuKYg v8/A/CCx4r7vISEhDQogICAgICAgICAgIA0KIA0KICAgICAgICAgICAgICANCrz2sK2067vz DQoNCrXOs/ogILCzud/AxyDD1rTrIMD7t8mx4sDHIMPKte7H0Lv9ICAvIMfQvcC0ybf8IMfi u/PAuyC/+MfPtMIgx9C7/SAgudcgvPbH6Lv9IC8gwNqx4rCzud8gudcgvve5q7TJt/zAuyAg wKfH2CCw7b3Jx8+0wiDB98DlwM4gLyDA2rPgv6Gw1CAgx9C9wCC55rn9wLsgwPzH2MHWsO3A 2iDHz7TCICDH0LrOuPANCiAgICAgICAgICAgDQogICAgICANCsioxuTAzMH2IDogd3d3LmVk dXNhcmFuZy5jb20gICAgICAgICAgICAgICAgIG1haWwgOiBtYWlsQGVkdXNhcmFuZy5jb20N CrmuwMfA/MitIDogKDAzMSkgIDgyMS0xMzM0ICAgICAgICAgICAgICAgICAgICAgICAgICAg vPa+97muwMcgIC8gwfa757muwMcgLyDBpsjeua7Axw0KICAgICAgIA0KIA0KICAgDQogDQo= ------=_NextPart_000_0077_01C0F07A.93A41C00 Content-Type: text/html; charset="ks_c_5601-1987" Content-Transfer-Encoding: base64 PEhUTUw+DQo8SEVBRD4NCjxUSVRMRT6/obXgu+e2+yC43sDPILzSvcTB9jwvVElUTEU+DQo8 TUVUQSBIVFRQLUVRVUlWPSJDb250ZW50LVR5cGUiIENPTlRFTlQ9InRleHQvaHRtbDsgY2hh cnNldD1ldWMta3IiPg0KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJOYW1vIFdl YkVkaXRvciB2NC4wKFRyaWFsKSI+DQo8L0hFQUQ+DQo8Qk9EWSBCR0NPTE9SPSNGRkZGRkY+ DQo8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjEiIHdp ZHRoPSI1NDAiIGJnY29sb3I9ImJsYWNrIj4NCiAgICA8dHI+DQogICAgICAgIDx0ZCB3aWR0 aD0iOTY0IiBiZ2NvbG9yPSJ3aGl0ZSI+PCEtLSBJbWFnZVJlYWR5IFNsaWNlcyAoVW50aXRs ZWQtMSkgLS0+DQo8VEFCTEUgQk9SREVSPTAgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5H PTAgd2lkdGg9IjEwMCUiPg0KCTxUUj4NCgkJPFREPg0KCQkJPHAgYWxpZ249ImNlbnRlciI+ PGEgaHJlZj0iaHR0cDovL3d3dy5lZHVzYXJhbmcuY29tIiB0YXJnZXQ9Il9ibGFuayI+PGlt ZyBzcmM9Imh0dHA6Ly93d3cuZWR1c2FyYW5nLmNvbS9tYWlsL2ltYWdlcy90aXRsZS5naWYi IHdpZHRoPSI1NDQiIGhlaWdodD0iMTE2IiBib3JkZXI9IjAiPjwvYT4JCQk8L1REPg0KCTwv VFI+DQoJPFRSPg0KCQk8VEQgd2lkdGg9IjU0NCI+DQoJCQk8Zm9udCBzaXplPSIxIj48YnI+ PC9mb250PjwvVEQ+DQoJPC9UUj4NCgk8VFI+DQoJCTxURCB3aWR0aD0iNTQ0Ij4NCiAgICAg ICAgICAgICAgICAgICAgICAgIDx0YWJsZSBhbGlnbj0iY2VudGVyIiBib3JkZXI9IjAiIGNl bGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjUwMCIgYmdjb2xvcj0iIzAw MzQ3MSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjUzNCI+DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIg Y2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIxMDAlIj4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDx0ZCB3aWR0aD0iMjAiIGJnY29sb3I9IndoaXRlIj4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpbWcgc3JjPSJo dHRwOi8vd3d3LmVkdXNhcmFuZy5jb20vbWFpbC9pbWFnZXMvc2lkZWJhcjEuZ2lmIiB3aWR0 aD0iMTAiIGhlaWdodD0iNTAiIGJvcmRlcj0iMCI+PC9wPg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0id2hpdGUiPg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZTo5cHQ7Ij48Zm9udCBjb2xvcj0iZ3JheSI+x+O29L74wMwgDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDAzLjewM/AuyC6uLO7 IMHLvNvH1bTPtNkuIMW4ILvnwMzGriCw1L3Dxse/obytILmrwNvAp7fOILnfw+nHz7+pILq4 s7u5x7fOILCzwM7BpLq4ILPrw+LAuiC++L3AtM+02S4gDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9wPg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rk Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAg ICAgICAgICA8L3RhYmxlPg0KPC9URD4NCgk8L1RSPg0KCTxUUj4NCgkJPFREIHdpZHRoPSI1 NDQiPg0KCQkJPC9URD4NCgk8L1RSPg0KCTxUUj4NCgkJPFREPg0KICAgICAgICAgICAgICAg ICAgICAgICAgPHA+PGZvbnQgc2l6ZT0iMSI+Jm5ic3A7PC9mb250PjwvcD4NCjwvVEQ+DQoJ PC9UUj4NCgk8VFI+DQoJCTxURD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGFsaWdu PSJsZWZ0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8aW1nIHNyYz0iaHR0cDovL3d3dy5l ZHVzYXJhbmcuY29tL21haWwvaW1hZ2VzL2xlY190aXRsZTEuZ2lmIiB3aWR0aD0iODYiIGhl aWdodD0iMjAiIGJvcmRlcj0iMCI+PC9wPg0KPC9URD4NCgk8L1RSPg0KCTxUUj4NCgkJPFRE Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGZvbnQgc2l6ZT0iMSI+Jm5ic3A7PC9m b250PjwvcD4NCjwvVEQ+DQoJPC9UUj4NCiAgICAgICAgICAgICAgICA8dHI+DQoJCTxURD4N CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBhbGlnbj0iY2VudGVyIiBib3JkZXI9 IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjUwMCI+DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8dGQgd2lkdGg9IjUzNCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9 IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjRjY5ODA0Ij4NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iNDkwIj4NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxw YWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjQ5OCI+DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lk dGg9IjE2NyIgYmdjb2xvcj0id2hpdGUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGltZyBzcmM9Imh0dHA6Ly93 d3cuZWR1c2FyYW5nLmNvbS9tYWlsL2ltYWdlcy9raXVrLmdpZiIgd2lkdGg9IjE1MSIgaGVp Z2h0PSI0MSIgYm9yZGVyPSIwIiB1c2VtYXA9IiNJbWFnZU1hcDEiPjwvcD4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHRkIHdpZHRoPSIzMzEiIGJnY29sb3I9IiNGQUVGREUiPg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZTo5cHQ7Ij48Zm9udCBjb2xvcj0iI0Y2OTgwNCI+PGI+Jm5ic3A7 sbPA5yANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIMfRscfAuyCw7biuLbnmu+e9xCANCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILHivu/AuLfOIL/Puq7H z7DUIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgseK+7yEhITwvYj48L2ZvbnQ+PC9zcGFuPjwvcD4NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Ry Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90 YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90 ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI1MzQiPg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8dGQgd2lkdGg9IjUzNCI+DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNw YWNpbmc9IjEiIHdpZHRoPSI1MDAiIGJnY29sb3I9IiM3NTkwNDciPg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9 IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iNDk4Ij4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iMTY4 IiBiZ2NvbG9yPSJ3aGl0ZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iaHR0cDovL3d3dy5lZHVz YXJhbmcuY29tL21haWwvaW1hZ2VzL3Nvay5naWYiIHdpZHRoPSIxNTEiIGhlaWdodD0iNDEi IGJvcmRlcj0iMCIgdXNlbWFwPSIjSW1hZ2VNYXAyIj48L3A+DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB3 aWR0aD0iMzMwIiBiZ2NvbG9yPSIjRTRGMUNFIj4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxmb250IGNvbG9yPSIj NzU5MDQ3Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjlwdDsiPjxiPiZuYnNwO8PWvNIgDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA0uejAxyDA0LHiILzTtbUgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICC51yDAzMfYtbUgwfWwoSEhITwvYj48L3Nw YW4+PC9mb250PjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdp ZHRoPSI1MzQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+Jm5i c3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjUz NCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVy PSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2Nv bG9yPSIjMjI2RDNBIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 ZCB3aWR0aD0iNDkwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2lu Zz0iMCIgd2lkdGg9IjQ5OCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjE2OCIgYmdjb2xvcj0id2hp dGUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPHA+PGltZyBzcmM9Imh0dHA6Ly93d3cuZWR1c2FyYW5nLmNvbS9tYWls L2ltYWdlcy9jaG9pLmdpZiIgd2lkdGg9IjE1MSIgaGVpZ2h0PSI0MSIgYm9yZGVyPSIwIiB1 c2VtYXA9IiNJbWFnZU1hcDMiPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSIzMzAiIGJn Y29sb3I9IiNFMEYzRDkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGI+PGZvbnQgY29sb3I9IiMyMjZEM0EiPjxz cGFuIHN0eWxlPSJmb250LXNpemU6OXB0OyI+Jm5ic3A7w9a46cC4t84gDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDA4cDn tcggx9C9wLTJt/wgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICCx+r/sseIhISE8L3NwYW4+PC9mb250PjwvYj48L3A+DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iNTM0Ij4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI1MzQiPg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9 IjAiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iNTAwIiBiZ2NvbG9yPSIjMTM2QUI1Ij4NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iNDkwIj4NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBi b3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjQ5OCI+ DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8dGQgd2lkdGg9IjE2NyIgYmdjb2xvcj0id2hpdGUiPg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGlt ZyBzcmM9Imh0dHA6Ly93d3cuZWR1c2FyYW5nLmNvbS9tYWlsL2ltYWdlcy9taW5kLmdpZiIg d2lkdGg9IjE1MSIgaGVpZ2h0PSI0MSIgYm9yZGVyPSIwIiB1c2VtYXA9IiNJbWFnZU1hcDQi PjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSIzMzEiIGJnY29sb3I9IiNERERFRjkiPg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPHA+PGZvbnQgY29sb3I9IiMxMzZBQjUiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNp emU6OXB0OyI+Jm5ic3A7MbrQIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgurm9wMC4t84gwPzDvCCzu7/rIA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg xsS+xyEhITwvc3Bhbj48L2I+PC9mb250PjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHRkIHdpZHRoPSI1MzQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8dGQgd2lkdGg9IjUzNCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjEiIHdp ZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQkI1OUQzIj4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDx0ZCB3aWR0aD0iNDkwIj4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5n PSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjQ5OCI+DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjE2 OCIgYmdjb2xvcj0id2hpdGUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGltZyBzcmM9Imh0dHA6Ly93d3cuZWR1 c2FyYW5nLmNvbS9tYWlsL2ltYWdlcy9jeWJlci5naWYiIHdpZHRoPSIxNTEiIGhlaWdodD0i NDEiIGJvcmRlcj0iMCIgdXNlbWFwPSIjSW1hZ2VNYXA1Ij48L3A+DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 ZCB3aWR0aD0iMzMwIiBiZ2NvbG9yPSIjRjBEREY2Ij4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxmb250IGNvbG9y PSIjQkI1OUQzIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjlwdDsiPiZuYnNwO7juw7W0 3MCntvO1tSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgILXotMK067fOIMO0w7QgsOi76iEhITwvc3Bhbj48L2I+PC9mb250 PjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90 YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI1MzQi Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+Jm5ic3A7PC9wPg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjUzNCI+DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxs cGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjRDIz QzJCIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0i NDkwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lk dGg9IjQ5OCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjE2OCIgYmdjb2xvcj0id2hpdGUiPg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHA+PGltZyBzcmM9Imh0dHA6Ly93d3cuZWR1c2FyYW5nLmNvbS9tYWlsL2ltYWdlcy9l bmcuZ2lmIiB3aWR0aD0iMTUxIiBoZWlnaHQ9IjQxIiBib3JkZXI9IjAiIHVzZW1hcD0iI0lt YWdlTWFwNiI+PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjMzMCIgYmdjb2xvcj0iI0Y3 RTZDRiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8cD48Zm9udCBjb2xvcj0iI0QyM0MyQiI+PGI+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZTo5cHQ7Ij4mbmJzcDs1utC/oSANCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMLTcvu64piC/z8D8ILHi vu8hISE8L3NwYW4+PC9iPjwvZm9udD48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDx0ZCB3aWR0aD0iNTM0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAg ICAgICAgICAgICAgPC90YWJsZT4NCjwvVEQ+DQogICAgICAgICAgICAgICAgICAgDQogICAg ICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAg ICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBhbGlnbj0iY2Vu dGVyIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9 IjUwMCIgYmdjb2xvcj0iZ3JheSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRy Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjUzNCI+DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgYWxpZ249ImNlbnRl ciIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSI1 MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGJnY29sb3I9 IndoaXRlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxwPjxmb250IHNpemU9IjIiIGNvbG9yPSJncmF5Ij48Yj689rCttOu78zwvYj48L2Zv bnQ+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5cHQ7Ij48Zm9udCBjb2xvcj0iZ3JheSI+PGJy Pjxicj61zrP6IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgsLO538DHIMPWtOsgwPu3ybHiwMcgw8q17sfQu/0gDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIMfQvcC0ybf8IMfiu/PAuyC/+MfP tMIgx9C7/SANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgILnXILz2x+i7/SAvIMDaseKws7nfILnXIL73uau0ybf8wLsgDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDAp8fYILDtvcnHz7TCIMH3wOXA ziAvIMDas+C/obDUIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgx9C9wCC55rn9wLsgwPzH2MHWsO3A2iDHz7TCIA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgx9C6zrjwPC9mb250Pjwvc3Bhbj48 L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQo8L1REPg0KICAgICAg ICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAg ICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj4m bmJzcDs8L3A+DQo8L1REPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAg ICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQgaGVpZ2h0PSIxOCI+DQogICAgICAg ICAgICAgICAgICAgICAgICA8dGFibGUgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIwIiBjZWxs cGFkZGluZz0iOCIgY2VsbHNwYWNpbmc9IjEiIHdpZHRoPSI1MDAiIGJnY29sb3I9ImdyYXki Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI1MzQiIGJnY29sb3I9IiNGN0Y2RjYiPiAgICAg ICAgICAgICAgICAgICAgICAgIDxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OXB0OyI+PGZv bnQgY29sb3I9ImdyYXkiPsioxuTAzMH2IDo8L2ZvbnQ+IDwvc3Bhbj48YSBocmVmPSJodHRw Oi8vd3d3LmVkdXNhcmFuZy5jb20iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OXB0OyI+d3d3 LmVkdXNhcmFuZy5jb208L3NwYW4+PC9hPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OXB0OyI+ IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGZvbnQgY29sb3I9ImdyYXkiPm1haWwgOjwvZm9udD4g PC9zcGFuPjxhIGhyZWY9Im1haWx0bzptYWlsQGVkdXNhcmFuZy5jb20iPjxzcGFuIHN0eWxl PSJmb250LXNpemU6OXB0OyI+bWFpbEBlZHVzYXJhbmcuY29tPC9zcGFuPjwvYT48c3BhbiBz dHlsZT0iZm9udC1zaXplOjlwdDsiPjxicj48Zm9udCBjb2xvcj0iZ3JheSI+ua7Ax8D8yK0g OiA8L2ZvbnQ+PGZvbnQgY29sb3I9InJlZCI+KDAzMSkgDQogICAgICAgICAgICAgICAgICAg ICAgICA4MjEtMTMzNCAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDs8L2ZvbnQ+PGEgaHJlZj0ibWFpbHRvOm1haWxAZWR1c2FyYW5nLmNvbSI+PGZv bnQgY29sb3I9InJlZCI+vPa+97muwMcgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvIMH2u+e5rsDHIC8gwabI3rmuwMc8L2ZvbnQ+PC9hPjwvc3Bhbj48L3A+DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+DQo8 L1REPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAg ICAgICAgICAgICAgICAgICA8dGQgaGVpZ2h0PSIxOCI+DQogICAgICAgICAgICAgICAgICAg ICAgICA8cD48Zm9udCBzaXplPSIxIj4mbmJzcDs8L2ZvbnQ+PC9wPg0KPC9URD4NCiAgICAg ICAgICAgICAgICA8L3RyPg0KPC9UQUJMRT4NCiAgICAgICAgPC90ZD4NCiAgICA8L3RyPg0K PC90YWJsZT4NCjxwPiZuYnNwOzwvcD4NCjxtYXAgbmFtZT0iSW1hZ2VNYXAxIj4NCjxhcmVh IHNoYXBlPSJyZWN0IiBjb29yZHM9IjQzLCAyMiwgOTgsIDQwIiBocmVmPSJodHRwOi8vd3d3 LmVkdXNhcmFuZy5jb20iIHRhcmdldD0iX2JsYW5rIj4NCjxhcmVhIHNoYXBlPSJyZWN0IiBj b29yZHM9Ijk5LCAyMCwgMTQ5LCA0MCIgaHJlZj0iaHR0cDovL3d3dy5lZHVzYXJhbmcuY29t L3NyYy9oZWFkL2xlY19pbnRyb19raS5odG0iIHRhcmdldD0iX2JsYW5rIj4NCjwvbWFwPjxt YXAgbmFtZT0iSW1hZ2VNYXAyIj4NCjxhcmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9IjQzLCAy MywgOTcsIDQwIiBocmVmPSJodHRwOi8vd3d3LmVkdXNhcmFuZy5jb20iIHRhcmdldD0iX2Js YW5rIj4NCjxhcmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9Ijk5LCAyNCwgMTQ5LCAzOSIgaHJl Zj0iaHR0cDovL3d3dy5lZHVzYXJhbmcuY29tL3NyYy9oZWFkL2xlY19pbnRyb19zb2suaHRt IiB0YXJnZXQ9Il9ibGFuayI+DQo8L21hcD48bWFwIG5hbWU9IkltYWdlTWFwMyI+DQo8YXJl YSBzaGFwZT0icmVjdCIgY29vcmRzPSI0NCwgMjEsIDk4LCA0MCIgaHJlZj0iaHR0cDovL3d3 dy5lZHVzYXJhbmcuY29tIiB0YXJnZXQ9Il9ibGFuayI+DQo8YXJlYSBzaGFwZT0icmVjdCIg Y29vcmRzPSIxMDIsIDIwLCAxNTAsIDQwIiBocmVmPSJodHRwOi8vd3d3LmVkdXNhcmFuZy5j b20vc3JjL2hlYWQvbGVjX2ludHJvX2Nob2kuaHRtIiB0YXJnZXQ9Il9ibGFuayI+DQo8L21h cD48bWFwIG5hbWU9IkltYWdlTWFwNCI+DQo8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSI0 NCwgMjIsIDk4LCA0MCIgaHJlZj0iaHR0cDovL3d3dy5lZHVzYXJhbmcuY29tIiB0YXJnZXQ9 Il9ibGFuayI+DQo8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIxMDAsIDIyLCAxNDYsIDM5 IiBocmVmPSJodHRwOi8vd3d3LmVkdXNhcmFuZy5jb20vc3JjL2hlYWQvbGVjX2ludHJvX21p bmQuaHRtIiB0YXJnZXQ9Il9ibGFuayI+DQo8L21hcD48bWFwIG5hbWU9IkltYWdlTWFwNSI+ DQo8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSI0MywgMjMsIDk2LCA0MCIgaHJlZj0iaHR0 cDovL3d3dy5lZHVzYXJhbmcuY29tIiB0YXJnZXQ9Il9ibGFuayI+DQo8YXJlYSBzaGFwZT0i cmVjdCIgY29vcmRzPSI5OSwgMjAsIDE1MCwgMzkiIGhyZWY9Imh0dHA6Ly93d3cuZWR1c2Fy YW5nLmNvbS9zcmMvaGVhZC9sZWNfaW50cm9fY3liZXIuaHRtIj4NCjwvbWFwPjxtYXAgbmFt ZT0iSW1hZ2VNYXA2Ij4NCjxhcmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9IjQzLCAyMSwgOTYs IDQwIiBocmVmPSJodHRwOi8vd3d3LmVkdXNhcmFuZy5jb20iIHRhcmdldD0iX2JsYW5rIj4N CjxhcmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9Ijk5LCAyMCwgMTUwLCAzOCIgaHJlZj0iaHR0 cDovL3d3dy5lZHVzYXJhbmcuY29tL3NyYy9oZWFkL2xlY19pbnRyb19lbmcuaHRtIj4NCjwv bWFwPjwhLS0gRW5kIEltYWdlUmVhZHkgU2xpY2VzIC0tPg0KPC9CT0RZPg0KPC9IVE1MPg== ------=_NextPart_000_0077_01C0F07A.93A41C00-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Tue Aug 7 11: 3:17 2001 Delivered-To: freebsd-arch@freebsd.org Received: from tasogare.imasy.or.jp (tasogare.imasy.or.jp [202.227.24.5]) by hub.freebsd.org (Postfix) with ESMTP id D32F337B40E; Tue, 7 Aug 2001 11:03:03 -0700 (PDT) (envelope-from iwasaki@jp.FreeBSD.org) Received: from localhost (iwasaki.imasy.or.jp [202.227.24.92]) by tasogare.imasy.or.jp (8.11.3+3.4W/8.11.3/tasogare) with ESMTP/inet id f77I30I56619; Wed, 8 Aug 2001 03:03:00 +0900 (JST) (envelope-from iwasaki@jp.FreeBSD.org) To: arch@freebsd.org Cc: audit@freebsd.org Subject: CFR: Some bug fixes in i386/i386/machdep.c X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20010808030258E.iwasaki@jp.FreeBSD.org> Date: Wed, 08 Aug 2001 03:02:58 +0900 From: Mitsuru IWASAKI X-Dispatcher: imput version 20000228(IM140) Lines: 135 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hi, I've noticed that there are some bugs in i386/i386/machdep.c. With following patches on printing, I got strange result from dmesg. Index: machdep.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/machdep.c,v retrieving revision 1.465 diff -u -r1.465 machdep.c --- machdep.c 2001/07/26 23:06:44 1.465 +++ machdep.c 2001/08/07 17:00:43 #endif @@ -1969,6 +1974,22 @@ pmap_kenter((vm_offset_t)msgbufp + off, avail_end + off); msgbufinit(msgbufp, MSGBUF_SIZE); + + for (x = 0; x < NGDT; x++) { + printf("gdt_segs[%02d](sel %02x): base = %08x(%08x), limit = %08x(%08x)\n", + x, x * 8, gdt_segs[x].ssd_base, + gdt[x].sd.sd_hibase<<24|gdt[x].sd.sd_lobase, + gdt_segs[x].ssd_limit, + (gdt[x].sd.sd_hilimit<<16|gdt[x].sd.sd_lolimit)); + } + + for (x = 0; x < sizeof ldt_segs / sizeof ldt_segs[0]; x++) { + printf("ldt_segs[%02d](sel %02x): base = %08x(%08x), limit = %08x(%08x)\n", + x, x * 8, ldt_segs[x].ssd_base, + ldt[x].sd.sd_hibase<<24|ldt[x].sd.sd_lobase, + ldt_segs[x].ssd_limit, + (ldt[x].sd.sd_hilimit<<16|ldt[x].sd.sd_lolimit)); + } /* make a call gate to reenter kernel with */ gdp = &ldt[LSYS5CALLS_SEL].gd; gdt_segs[00](sel 00): base = 00000000(00000000), limit = 00000000(00000000) gdt_segs[01](sel 08): base = 00000000(00000000), limit = ffffffff(000fffff) gdt_segs[02](sel 10): base = 00000000(00000000), limit = ffffffff(000fffff) gdt_segs[03](sel 18): base = c0429540(c0429540), limit = ffffffff(000fffff) gdt_segs[04](sel 20): base = c042955c(c042955c), limit = 00000067(00000067) gdt_segs[05](sel 28): base = c0433da0(c0433da0), limit = 00000087(00000087) gdt_segs[06](sel 30): base = c0433da0(c0433da0), limit = 00000fff(00000fff) gdt_segs[07](sel 38): base = 00000000(00000000), limit = 00000000(00000000) gdt_segs[08](sel 40): base = 00000400(00000400), limit = 000fffff(000fffff) gdt_segs[09](sel 48): base = c0429a20(c0429a20), limit = 00000067(00000067) gdt_segs[10](sel 50): base = 00000000(00000000), limit = 000fffff(000fffff) gdt_segs[11](sel 58): base = 00000000(00000000), limit = 000fffff(000fffff) gdt_segs[12](sel 60): base = 00000000(00000000), limit = 000fffff(000fffff) gdt_segs[13](sel 68): base = 00000000(00000000), limit = 000fffff(000fffff) gdt_segs[14](sel 70): base = 00000000(00000000), limit = 000fffff(000fffff) ldt_segs[00](sel 00): base = 00000000(00000000), limit = 00000000(00000000) ldt_segs[01](sel 08): base = 00000000(00000000), limit = 00000000(00000000) ldt_segs[02](sel 10): base = 00000000(00000000), limit = 00000000(00000000) ldt_segs[03](sel 18): base = 00000000(00000000), limit = 000bfc01(000bfc01) ldt_segs[04](sel 20): base = 00000000(00000000), limit = 00000000(00000000) ldt_segs[05](sel 28): base = 00000000(00000000), limit = 000bfbff(000bfbff) ACPI debug layer 0x0 debug level 0x0 Copyright (c) 1992-2001 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 5.0-CURRENT #153: Wed Aug 8 00:35:09 JST 2001 The segment limit values in gdt_segs for GCODE_SEL, GDATA_SEL, GPRIV_SEL (1, 2, 3 respectively) seems wrong for me, also GPRIV_SEL limit is too big. Of course ssdtosd() correct them luckily except for GPRIV_SEL. Also I've found too early warning printing before calling cninit(). This would never warn to users. Following is bug fixes for above problems. Please review it. I'll commit this weekend if no objections. Thanks Index: machdep.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/machdep.c,v retrieving revision 1.465 diff -u -r1.465 machdep.c --- machdep.c 2001/07/26 23:06:44 1.465 +++ machdep.c 2001/08/07 17:41:22 @@ -1782,6 +1782,7 @@ struct region_descriptor r_gdt, r_idt; #endif int off; + int metadata_missing = 0; proc0.p_addr = proc0paddr; @@ -1791,7 +1792,7 @@ preload_metadata = (caddr_t)bootinfo.bi_modulep + KERNBASE; preload_bootstrap_relocate(KERNBASE); } else { - printf("WARNING: loader(8) metadata is missing!\n"); + metadata_missing = 1; } if (bootinfo.bi_envp) kern_envp = (caddr_t)bootinfo.bi_envp + KERNBASE; @@ -1808,18 +1809,18 @@ * XXX text protection is temporarily (?) disabled. The limit was * i386_btop(round_page(etext)) - 1. */ - gdt_segs[GCODE_SEL].ssd_limit = i386_btop(0) - 1; - gdt_segs[GDATA_SEL].ssd_limit = i386_btop(0) - 1; + gdt_segs[GCODE_SEL].ssd_limit = i386_btop(0 - 1); + gdt_segs[GDATA_SEL].ssd_limit = i386_btop(0 - 1); #ifdef SMP gdt_segs[GPRIV_SEL].ssd_limit = - i386_btop(sizeof(struct privatespace)) - 1; + i386_btop(sizeof(struct privatespace) + PAGE_SIZE - 1); gdt_segs[GPRIV_SEL].ssd_base = (int) &SMP_prvspace[0]; gdt_segs[GPROC0_SEL].ssd_base = (int) &SMP_prvspace[0].globaldata.gd_common_tss; SMP_prvspace[0].globaldata.gd_prvspace = &SMP_prvspace[0].globaldata; #else gdt_segs[GPRIV_SEL].ssd_limit = - i386_btop(sizeof(struct globaldata)) - 1; + i386_btop(sizeof(struct globaldata) + PAGE_SIZE - 1); gdt_segs[GPRIV_SEL].ssd_base = (int) &__globaldata; gdt_segs[GPROC0_SEL].ssd_base = (int) &__globaldata.gd_common_tss; @@ -1920,6 +1921,10 @@ */ cninit(); + if (metadata_missing) { + printf("WARNING: loader(8) metadata is missing!\n"); + } + #ifdef DEV_ISA isa_defaultirq(); #endif To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Tue Aug 7 23:28:18 2001 Delivered-To: freebsd-arch@freebsd.org Received: from softweyr.com (softweyr.com [208.247.99.111]) by hub.freebsd.org (Postfix) with ESMTP id 080AA37B405; Tue, 7 Aug 2001 23:28:10 -0700 (PDT) (envelope-from wes@softweyr.com) Received: from localhost.softweyr.com ([127.0.0.1] helo=softweyr.com ident=caeddc1d6349926dc2f5361f9c803d3f) by softweyr.com with esmtp (Exim 3.16 #1) id 15UMwu-0000AY-00; Wed, 08 Aug 2001 00:36:12 -0600 Message-ID: <3B70DDDC.719625AA@softweyr.com> Date: Wed, 08 Aug 2001 00:36:12 -0600 From: Wes Peters Organization: Softweyr LLC X-Mailer: Mozilla 4.75 [en] (X11; U; Linux 2.2.12 i386) X-Accept-Language: en MIME-Version: 1.0 To: Cy Schubert - ITSD Open Systems Group Cc: Robert Watson , arch@FreeBSD.ORG, stable@FreeBSD.ORG Subject: Re: Patch to modify default inetd.conf, have sysinstall prompt to edit , inetd.conf References: <200108011402.f71E2Dm30982@cwsys.cwsent.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Cy Schubert - ITSD Open Systems Group wrote: > > In message >, Robe > rt Watson writes: > > One of the observations that has been made fairly frequently to me is that > > the current default inetd.conf puts many FreeBSD users at risk > > unnecessarily, as many of them have moved to using SSH for remote access > > needs. In particular in light of the recent ftpd and telnetd security > > bugs, it seems like 4.4-RELEASE would be a good time to move to a more > > conservative default of having both of these services disabled in the base > > install, as both NetBSD and OpenBSD have moved to doing. > > I think that this is goodness. I have been an advocate of this > (actually a less balanced approach -- of which I've seen the light and > error of my thinking) for a long time. For that matter one of my > biggest pet peeves about RH Linux is that by default it installs > everything and enables everything. I think that the approach taken > here is a balanced approach and is the correct approach. Services are > not removed from the system entirely and can be enabled if needed. Sorry for the lateness of this reply, I'm finally catching up on email. Given that we have at least the skeleton of ability to create various installation "profiles" for FreeBSD, I'd argue we should provide a profile that is similar to the current default installation, for those who prefer the current setup and/or don't want to be surprised, and then make the default -- the "profile" the cursor sits on when the question about which "profile" to install is asked -- significantly more secure. -- "Where am I, and what am I doing in this handbasket?" Wes Peters Softweyr LLC wes@softweyr.com http://softweyr.com/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Wed Aug 8 2:34:56 2001 Delivered-To: freebsd-arch@freebsd.org Received: from mass.dis.org (mass.dis.org [216.240.45.41]) by hub.freebsd.org (Postfix) with ESMTP id F3C2537B409; Wed, 8 Aug 2001 02:34:49 -0700 (PDT) (envelope-from msmith@mass.dis.org) Received: from mass.dis.org (localhost [127.0.0.1]) by mass.dis.org (8.11.4/8.11.3) with ESMTP id f789bhZ01682; Wed, 8 Aug 2001 02:37:44 -0700 (PDT) (envelope-from msmith@mass.dis.org) Message-Id: <200108080937.f789bhZ01682@mass.dis.org> X-Mailer: exmh version 2.1.1 10/15/1999 To: Mitsuru IWASAKI Cc: arch@freebsd.org, audit@freebsd.org Subject: Re: CFR: Some bug fixes in i386/i386/machdep.c In-reply-to: Your message of "Wed, 08 Aug 2001 03:02:58 +0900." <20010808030258E.iwasaki@jp.FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 08 Aug 2001 02:37:43 -0700 From: Mike Smith Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > Hi, I've noticed that there are some bugs in i386/i386/machdep.c. ... > Following is bug fixes for above problems. Please review it. > I'll commit this weekend if no objections. Looks good to me at first glance. Since the only material change is GPRIV_SEL, I think this is OK to commit. Regards, Mike -- ... every activity meets with opposition, everyone who acts has his rivals and unfortunately opponents also. But not because people want to be opponents, rather because the tasks and relationships force people to take different points of view. [Dr. Fritz Todt] V I C T O R Y N O T V E N G E A N C E To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Wed Aug 8 8:41:59 2001 Delivered-To: freebsd-arch@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id D2F1637B40A; Wed, 8 Aug 2001 08:41:48 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id BAA26360; Thu, 9 Aug 2001 01:41:35 +1000 Date: Thu, 9 Aug 2001 01:39:06 +1000 (EST) From: Bruce Evans X-X-Sender: To: Mitsuru IWASAKI Cc: , Subject: Re: CFR: Some bug fixes in i386/i386/machdep.c In-Reply-To: <20010808030258E.iwasaki@jp.FreeBSD.org> Message-ID: <20010809005326.Y8258-100000@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Wed, 8 Aug 2001, Mitsuru IWASAKI wrote: > Hi, I've noticed that there are some bugs in i386/i386/machdep.c. > With following patches on printing, I got strange result from dmesg. It sure is dusty in there. In FreeBSD_1.x, the segment limit computations were all written as `i386_btop(addr) - 1'. This worked in all cases because `addr' was always a multiple of PAGE_SIZE. Cloning this code for small segments gave the bugs that you observed. I think `atop(addr - 1)' is correct. Reasons: - the segment limit is a maximum page number, not a number of pages, so rounding down is correct. - we mostly have addresses, not byte counts, so using i386_btop() (bytes to pages) is bogus and using atop() (address to pages) is correct. Using atop() to convert byte counts to pages is bogus, but I suspect that it is often used. Anyway, we have too many functions to convert between bytes and pages. > Also I've found too early warning printing before calling cninit(). > This would never warn to users. Does it get put into the message buffer that early? > Following is bug fixes for above problems. Please review it. > I'll commit this weekend if no objections. > Index: machdep.c > =================================================================== > RCS file: /home/ncvs/src/sys/i386/i386/machdep.c,v > retrieving revision 1.465 > diff -u -r1.465 machdep.c > --- machdep.c 2001/07/26 23:06:44 1.465 > +++ machdep.c 2001/08/07 17:41:22 > @@ -1782,6 +1782,7 @@ > struct region_descriptor r_gdt, r_idt; > #endif > int off; > + int metadata_missing = 0; Some style bugs here. The declarations of ints should be: int gsel_tss, metadata_missing, off, x; (except some of these variables shouldn't be ints), and the initializer should be elsewhere. > @@ -1808,18 +1809,18 @@ > * XXX text protection is temporarily (?) disabled. The limit was > * i386_btop(round_page(etext)) - 1. > */ > - gdt_segs[GCODE_SEL].ssd_limit = i386_btop(0) - 1; > - gdt_segs[GDATA_SEL].ssd_limit = i386_btop(0) - 1; > + gdt_segs[GCODE_SEL].ssd_limit = i386_btop(0 - 1); > + gdt_segs[GDATA_SEL].ssd_limit = i386_btop(0 - 1); OK. > #ifdef SMP > gdt_segs[GPRIV_SEL].ssd_limit = > - i386_btop(sizeof(struct privatespace)) - 1; > + i386_btop(sizeof(struct privatespace) + PAGE_SIZE - 1); I think the " + PAGE_SIZE" term gives an off by one error. Moving the " - 1" term into the macro arg is sufficient. > .... > - i386_btop(sizeof(struct globaldata)) - 1; > + i386_btop(sizeof(struct globaldata) + PAGE_SIZE - 1); Similarly. > @@ -1920,6 +1921,10 @@ > */ > cninit(); > > + if (metadata_missing) { > + printf("WARNING: loader(8) metadata is missing!\n"); > + } > + Style bug: too many braces. Grepping for i386_btop in machdep.c shows some related bugs: /* * The code segment limit has to cover the user area until we move * the signal trampoline out of the user area. This is safe because * the code segment cannot be written to directly. */ #define VM_END_USER_R_ADDRESS (VM_END_USER_RW_ADDRESS + UPAGES * PAGE_SIZE) ldt_segs[LUCODE_SEL].ssd_limit = i386_btop(VM_END_USER_R_ADDRESS) - 1; ldt_segs[LUDATA_SEL].ssd_limit = i386_btop(VM_END_USER_RW_ADDRESS) - 1; The " - 1" term should be moved into the macro arg here too. The comment and the UPAGES term rotted long ago. Peter Wemm seems to be collecting UPAGES garbage now (he just committed removal of signal trampoline garbage iin libkern/mcount.c). Perhaps he has already fixed this. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Wed Aug 8 11:21:39 2001 Delivered-To: freebsd-arch@freebsd.org Received: from tasogare.imasy.or.jp (tasogare.imasy.or.jp [202.227.24.5]) by hub.freebsd.org (Postfix) with ESMTP id 3885837B411; Wed, 8 Aug 2001 11:21:15 -0700 (PDT) (envelope-from iwasaki@jp.FreeBSD.org) Received: from localhost (iwasaki.imasy.or.jp [202.227.24.92]) by tasogare.imasy.or.jp (8.11.3+3.4W/8.11.3/tasogare) with ESMTP/inet id f78IL0I71108; Thu, 9 Aug 2001 03:21:00 +0900 (JST) (envelope-from iwasaki@jp.FreeBSD.org) To: bde@zeta.org.au Cc: iwasaki@jp.FreeBSD.org, arch@FreeBSD.ORG, audit@FreeBSD.ORG Subject: Re: CFR: Some bug fixes in i386/i386/machdep.c In-Reply-To: <20010809005326.Y8258-100000@besplex.bde.org> References: <20010808030258E.iwasaki@jp.FreeBSD.org> <20010809005326.Y8258-100000@besplex.bde.org> X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20010809032100T.iwasaki@jp.FreeBSD.org> Date: Thu, 09 Aug 2001 03:21:00 +0900 From: Mitsuru IWASAKI X-Dispatcher: imput version 20000228(IM140) Lines: 147 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hi, Thanks Mike and Bruce for your comments. > I think `atop(addr - 1)' is correct. Reasons: > - the segment limit is a maximum page number, not a number of pages, so > rounding down is correct. Yes, this is what I wanted to confirm. The segment limit for GPRIV_SEL should be 0 because sizeof(struct privatespace) (or sizeof(struct globaldata)) is less than PAGE_SIZE. And I'll change all i386_btop() to atop() within my patch. > > Also I've found too early warning printing before calling cninit(). > > This would never warn to users. > > Does it get put into the message buffer that early? I couldn't find any messages printed before cninit() from dmesg. > Some style bugs here. The declarations of ints should be: > > int gsel_tss, metadata_missing, off, x; > > (except some of these variables shouldn't be ints), and the initializer > should be elsewhere. OK. > > #ifdef SMP > > gdt_segs[GPRIV_SEL].ssd_limit = > > - i386_btop(sizeof(struct privatespace)) - 1; > > + i386_btop(sizeof(struct privatespace) + PAGE_SIZE - 1); > > I think the " + PAGE_SIZE" term gives an off by one error. Moving the > " - 1" term into the macro arg is sufficient. Understood. > > + if (metadata_missing) { > > + printf("WARNING: loader(8) metadata is missing!\n"); > > + } > > + > > Style bug: too many braces. OK. > Grepping for i386_btop in machdep.c shows some related bugs: > > /* > * The code segment limit has to cover the user area until we move > * the signal trampoline out of the user area. This is safe because > * the code segment cannot be written to directly. > */ > #define VM_END_USER_R_ADDRESS (VM_END_USER_RW_ADDRESS + UPAGES * PAGE_SIZE) > ldt_segs[LUCODE_SEL].ssd_limit = i386_btop(VM_END_USER_R_ADDRESS) - 1; > ldt_segs[LUDATA_SEL].ssd_limit = i386_btop(VM_END_USER_RW_ADDRESS) - 1; > > The " - 1" term should be moved into the macro arg here too. The comment > and the UPAGES term rotted long ago. Peter Wemm seems to be collecting > UPAGES garbage now (he just committed removal of signal trampoline garbage > iin libkern/mcount.c). Perhaps he has already fixed this. OK, I'll change this as well, except for the comments ;) Thanks again, here is my revised diffs. Index: machdep.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/machdep.c,v retrieving revision 1.465 diff -u -r1.465 machdep.c --- machdep.c 2001/07/26 23:06:44 1.465 +++ machdep.c 2001/08/08 17:36:31 @@ -1774,24 +1774,23 @@ init386(first) int first; { - int x; struct gate_descriptor *gdp; - int gsel_tss; + int gsel_tss, metadata_missing, off, x; #ifndef SMP /* table descriptors - used to load tables by microp */ struct region_descriptor r_gdt, r_idt; #endif - int off; proc0.p_addr = proc0paddr; atdevbase = ISA_HOLE_START + KERNBASE; + metadata_missing = 0; if (bootinfo.bi_modulep) { preload_metadata = (caddr_t)bootinfo.bi_modulep + KERNBASE; preload_bootstrap_relocate(KERNBASE); } else { - printf("WARNING: loader(8) metadata is missing!\n"); + metadata_missing = 1; } if (bootinfo.bi_envp) kern_envp = (caddr_t)bootinfo.bi_envp + KERNBASE; @@ -1808,18 +1807,18 @@ * XXX text protection is temporarily (?) disabled. The limit was * i386_btop(round_page(etext)) - 1. */ - gdt_segs[GCODE_SEL].ssd_limit = i386_btop(0) - 1; - gdt_segs[GDATA_SEL].ssd_limit = i386_btop(0) - 1; + gdt_segs[GCODE_SEL].ssd_limit = atop(0 - 1); + gdt_segs[GDATA_SEL].ssd_limit = atop(0 - 1); #ifdef SMP gdt_segs[GPRIV_SEL].ssd_limit = - i386_btop(sizeof(struct privatespace)) - 1; + atop(sizeof(struct privatespace) - 1); gdt_segs[GPRIV_SEL].ssd_base = (int) &SMP_prvspace[0]; gdt_segs[GPROC0_SEL].ssd_base = (int) &SMP_prvspace[0].globaldata.gd_common_tss; SMP_prvspace[0].globaldata.gd_prvspace = &SMP_prvspace[0].globaldata; #else gdt_segs[GPRIV_SEL].ssd_limit = - i386_btop(sizeof(struct globaldata)) - 1; + atop(sizeof(struct globaldata) - 1); gdt_segs[GPRIV_SEL].ssd_base = (int) &__globaldata; gdt_segs[GPROC0_SEL].ssd_base = (int) &__globaldata.gd_common_tss; @@ -1876,8 +1875,8 @@ * the code segment cannot be written to directly. */ #define VM_END_USER_R_ADDRESS (VM_END_USER_RW_ADDRESS + UPAGES * PAGE_SIZE) - ldt_segs[LUCODE_SEL].ssd_limit = i386_btop(VM_END_USER_R_ADDRESS) - 1; - ldt_segs[LUDATA_SEL].ssd_limit = i386_btop(VM_END_USER_RW_ADDRESS) - 1; + ldt_segs[LUCODE_SEL].ssd_limit = atop(VM_END_USER_R_ADDRESS - 1); + ldt_segs[LUDATA_SEL].ssd_limit = atop(VM_END_USER_RW_ADDRESS - 1); for (x = 0; x < sizeof ldt_segs / sizeof ldt_segs[0]; x++) ssdtosd(&ldt_segs[x], &ldt[x].sd); @@ -1920,6 +1919,9 @@ */ cninit(); + if (metadata_missing) + printf("WARNING: loader(8) metadata is missing!\n"); + #ifdef DEV_ISA isa_defaultirq(); #endif To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Wed Aug 8 11:58:17 2001 Delivered-To: freebsd-arch@freebsd.org Received: from tasogare.imasy.or.jp (tasogare.imasy.or.jp [202.227.24.5]) by hub.freebsd.org (Postfix) with ESMTP id 70B7C37B409; Wed, 8 Aug 2001 11:58:05 -0700 (PDT) (envelope-from iwasaki@jp.FreeBSD.org) Received: from localhost (iwasaki.imasy.or.jp [202.227.24.92]) by tasogare.imasy.or.jp (8.11.3+3.4W/8.11.3/tasogare) with ESMTP/inet id f78Iw2I76154; Thu, 9 Aug 2001 03:58:02 +0900 (JST) (envelope-from iwasaki@jp.FreeBSD.org) To: arch@FreeBSD.ORG Cc: audit@FreeBSD.ORG, kumabu@t3.rim.or.jp Subject: CFR: Timing to enable CR4.PGE bit X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20010809035801V.iwasaki@jp.FreeBSD.org> Date: Thu, 09 Aug 2001 03:58:01 +0900 From: Mitsuru IWASAKI X-Dispatcher: imput version 20000228(IM140) Lines: 106 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hi, I've found a report in Japanese mailing list that CR4.PGE seems to be enabled before CR0.PG in locore.s. This was originally reported by Kumabuchi-san (Thanks!). According to developer's manual from Intel site, ftp://download.intel.com/design/PentiumII/manuals/24319202.pdf ---- 2.5. CONTROL REGISTERS [snip] PGE (2-17) Page Global Enable (bit 7 of CR4). (Introduced in the P6 family processors.) Enables the global page feature when set; disables the global page feature when clear. [snip] In addition, the bit must not ^^^^^^^^^^^^^^^^ be enabled before paging is enabled via CR0.PG. Program correctness ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ may be affected by reversing this sequence, and processor performance will be impacted. ---- Currently, we enable CR4.PGE bit in create_pagetables, then enable CR0.PG in locore.s. This seems to violate Intel's note. I've made patches for this, moving CR4.PGE enabling code to just before calling init386(). Index: locore.s =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/locore.s,v retrieving revision 1.144 diff -u -r1.144 locore.s --- locore.s 2001/07/12 06:32:50 1.144 +++ locore.s 2001/08/08 17:49:28 @@ -374,6 +374,12 @@ movl IdlePTD,%esi movl %esi,PCB_CR3(%eax) + testl $CPUID_PGE, R(cpu_feature) + jz 1f + movl %cr4, %eax + orl $CR4_PGE, %eax + movl %eax, %cr4 +1: pushl physfree /* value of first for init386(first) */ call init386 /* wire 386 chip for unix operation */ @@ -718,13 +724,6 @@ */ create_pagetables: - - testl $CPUID_PGE, R(cpu_feature) - jz 1f - movl %cr4, %eax - orl $CR4_PGE, %eax - movl %eax, %cr4 -1: /* Find end of kernel image (rounded up to a page boundary). */ movl $R(_end),%esi Also I have another thing to be confirmed. Should we utilize TLB by enabling PGE bit at very later stage? I think it would be more efficient to cache page entries with G flag in multi-user environment, not in kernel bootstrap. If we enable PGE bit in locore.s, TLB could be occupied by entries which is referenced by initialization code (yes, most of them are executed only once). # but I could be wrong... Anyway, patch for this is attached here. Thanks. Index: initcpu.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/initcpu.c,v retrieving revision 1.29 diff -u -r1.29 initcpu.c --- initcpu.c 2001/07/13 11:23:06 1.29 +++ initcpu.c 2001/08/08 15:35:51 @@ -847,3 +847,23 @@ printf("CR0=%x\n", cr0); } #endif /* DDB */ + +/* + * Enable CR4.PGE after kernel bootstrap. + */ + +static void +enable_i686_pge(void *unused) +{ + + if ((cpu_feature & CPUID_PGE) && + (cpu_id & 0xf00) == 0x600) { + load_cr4(rcr4() | CR4_PGE); + if (bootverbose) { + printf("P6 family processor PGE on\n"); + } + } +} + +SYSINIT(initcpu, SI_SUB_RUN_SCHEDULER, SI_ORDER_FIRST, enable_i686_pge, NULL) + To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Thu Aug 9 22:38:31 2001 Delivered-To: freebsd-arch@freebsd.org Received: from silby.com (cb34181-a.mdsn1.wi.home.com [24.14.173.39]) by hub.freebsd.org (Postfix) with ESMTP id A1C1537B406 for ; Thu, 9 Aug 2001 22:37:56 -0700 (PDT) (envelope-from silby@silby.com) Received: (qmail 93532 invoked by uid 1000); 10 Aug 2001 05:37:54 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 10 Aug 2001 05:37:54 -0000 Date: Fri, 10 Aug 2001 00:37:54 -0500 (CDT) From: Mike Silbersack To: , Subject: [PATCH] RFC 1948 sequence numbers, final(?) patch Message-ID: <20010810002406.U93492-300000@achilles.silby.com> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1767808683-997421874=:93492" Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-1767808683-997421874=:93492 Content-Type: TEXT/PLAIN; charset=US-ASCII After much procrastination, I present the update RFC 1948 sequence number patch. Modifications have been made so that it more closely complies with RFC 1948, but still allows flexibility for sysadmins who want to reseed. Thanks go to Barney and Julian for suggesting these changes. I've done extensive testing with this patch, and all sysctls controlling its operation appear to work properly. However, testing would still be very helpful. I'll be on vacation from the 12th through the 19th; if no problems have been found during that time I expected to commit and MFC it on the 21st. I've included diffs relevant to an up to date -stable and -current. Thanks, Mike "Silby" Silbersack --0-1767808683-997421874=:93492 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rfc1948-2.patch" Content-Transfer-Encoding: BASE64 Content-ID: <20010810003754.B93492@achilles.silby.com> Content-Description: Content-Disposition: attachment; filename="rfc1948-2.patch" ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfaW5wdXQuYyBuZXRpbmV0L3Rj cF9pbnB1dC5jDQotLS0gbmV0aW5ldC5vbGQvdGNwX2lucHV0LmMJVHVlIEp1 bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3BfaW5wdXQuYwlU aHUgQXVnICA5IDAwOjQ1OjAxIDIwMDENCkBAIC0xMDEsNyArMTAxLDYgQEAN CiBNQUxMT0NfREVGSU5FKE1fVFNFR1EsICJ0c2VnX3FlbnQiLCAiVENQIHNl Z21lbnQgcXVldWUgZW50cnkiKTsNCiANCiBzdGF0aWMgaW50CXRjcHJleG10 dGhyZXNoID0gMzsNCi10Y3Bfc2VxCXRjcF9pc3M7DQogdGNwX2NjCXRjcF9j Y2dlbjsNCiANCiBzdHJ1Y3QJdGNwc3RhdCB0Y3BzdGF0Ow0KQEAgLTExMzUs NyArMTEzNCw3IEBADQogCQlpZiAoaXNzKQ0KIAkJCXRwLT5pc3MgPSBpc3M7 DQogCQllbHNlIHsNCi0JCQl0cC0+aXNzID0gdGNwX25ld19pc24oKTsNCisJ CQl0cC0+aXNzID0gdGNwX25ld19pc24odHApOw0KICAJCX0NCiAJCXRwLT5p cnMgPSB0aC0+dGhfc2VxOw0KIAkJdGNwX3NlbmRzZXFpbml0KHRwKTsNCkBA IC0xNjY3LDcgKzE2NjYsNyBAQA0KIAkJCWlmICh0aGZsYWdzICYgVEhfU1lO ICYmDQogCQkJICAgIHRwLT50X3N0YXRlID09IFRDUFNfVElNRV9XQUlUICYm DQogCQkJICAgIFNFUV9HVCh0aC0+dGhfc2VxLCB0cC0+cmN2X254dCkpIHsN Ci0JCQkJaXNzID0gdGNwX25ld19pc24oKTsNCisJCQkJaXNzID0gdGNwX25l d19pc24odHApOw0KIAkJCQl0cCA9IHRjcF9jbG9zZSh0cCk7DQogCQkJCWdv dG8gZmluZHBjYjsNCiAJCQl9DQpkaWZmIC11IC1yIG5ldGluZXQub2xkL3Rj cF9zZXEuaCBuZXRpbmV0L3RjcF9zZXEuaA0KLS0tIG5ldGluZXQub2xkL3Rj cF9zZXEuaAlUdWUgSnVsIDMxIDIxOjQzOjIxIDIwMDENCisrKyBuZXRpbmV0 L3RjcF9zZXEuaAlUaHUgQXVnICA5IDAwOjQ4OjMwIDIwMDENCkBAIC04MCwy NiArODAsNSBAQA0KIA0KICNpZmRlZiBfS0VSTkVMDQogZXh0ZXJuIHRjcF9j Ywl0Y3BfY2NnZW47CQkvKiBnbG9iYWwgY29ubmVjdGlvbiBjb3VudCAqLw0K LQ0KLS8qDQotICogSW5jcmVtZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25k Lg0KLSAqIFRoaXMgaXMgZGVzaWduZWQgdG8gaW5jcmVtZW50IGF0IHRoZSBz dGFuZGFyZCAyNTAgS0IvcywNCi0gKiBidXQgd2l0aCBhIHJhbmRvbSBjb21w b25lbnQgYXZlcmFnaW5nIDEyOCBLQi4NCi0gKiBXZSBhbHNvIGluY3JlbWVu dCB0Y3BfaXNzIGJ5IGEgcXVhcnRlciBvZiB0aGlzIGFtb3VudA0KLSAqIGVh Y2ggdGltZSB3ZSB1c2UgdGhlIHZhbHVlIGZvciBhIG5ldyBjb25uZWN0aW9u Lg0KLSAqIElmIGRlZmluZWQsIHRoZSB0Y3BfcmFuZG9tMTgoKSBtYWNybyBz aG91bGQgcHJvZHVjZSBhDQotICogbnVtYmVyIGluIHRoZSByYW5nZSBbMC0w eDNmZmZmXSB0aGF0IGlzIGhhcmQgdG8gcHJlZGljdC4NCi0gKiANCi0gKiBU aGUgdmFyaWFibGUgdGNwX2lzcyBhbmQgdGNwX3JhbmRvbTE4KCkgYXJlIG9u bHkgdXNlZA0KLSAqIGJ5IHNlcXVlbmNlIG51bWJlciBnZW5lcmF0aW9uIHNj aGVtZSAwLg0KLSAqLw0KLSNpZm5kZWYgdGNwX3JhbmRvbTE4DQotI2RlZmlu ZQl0Y3BfcmFuZG9tMTgoKQkoYXJjNHJhbmRvbSgpICYgMHgzZmZmZikNCi0j ZW5kaWYNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgxMjIqMTAyNCArIHRjcF9y YW5kb20xOCgpKQ0KLQ0KLWV4dGVybiB0Y3Bfc2VxCXRjcF9pc3M7DQotI2Vs c2UNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgyNTAqMTAyNCkJLyogaW5jcmVt ZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25kICovDQogI2VuZGlmIC8qIF9L RVJORUwgKi8NCiAjZW5kaWYgLyogX05FVElORVRfVENQX1NFUV9IXyAqLw0K ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3Bfc3Vici5jIG5ldGluZXQvdGNw X3N1YnIuYw0KLS0tIG5ldGluZXQub2xkL3RjcF9zdWJyLmMJVHVlIEp1bCAz MSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3Bfc3Vici5jCVRodSBB dWcgIDkgMDE6MjE6MTYgMjAwMQ0KQEAgLTk4LDYgKzk4LDcgQEANCiAjZW5k aWYgLypJUFNFQyovDQogDQogI2luY2x1ZGUgPG1hY2hpbmUvaW5fY2tzdW0u aD4NCisjaW5jbHVkZSA8c3lzL21kNS5oPg0KIA0KIGludCAJdGNwX21zc2Rm bHQgPSBUQ1BfTVNTOw0KIFNZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwgVENQ Q1RMX01TU0RGTFQsIG1zc2RmbHQsIENUTEZMQUdfUlcsIA0KQEAgLTEzOSw5 ICsxNDAsMTMgQEANCiBTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3AsIE9JRF9B VVRPLCBpY21wX21heV9yc3QsIENUTEZMQUdfUlcsICZpY21wX21heV9yc3Qs IDAsIA0KICAgICAiQ2VydGFpbiBJQ01QIHVucmVhY2hhYmxlIG1lc3NhZ2Vz IG1heSBhYm9ydCBjb25uZWN0aW9ucyBpbiBTWU5fU0VOVCIpOw0KIA0KLXN0 YXRpYyBpbnQJdGNwX3NlcV9nZW5zY2hlbWUgPSAxOw0KLVNZU0NUTF9JTlQo X25ldF9pbmV0X3RjcCwgT0lEX0FVVE8sIHRjcF9zZXFfZ2Vuc2NoZW1lLCBD VExGTEFHX1JXLA0KLSAgICAmdGNwX3NlcV9nZW5zY2hlbWUsIDAsICJUQ1Ag SVNOIGdlbmVyYXRpb24gc2NoZW1lIik7DQorc3RhdGljIGludAl0Y3Bfc3Ry aWN0X3JmYzE5NDggPSAwOw0KK1NZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwg T0lEX0FVVE8sIHN0cmljdF9yZmMxOTQ4LCBDVExGTEFHX1JXLA0KKyAgICAm dGNwX3N0cmljdF9yZmMxOTQ4LCAwLCAiRGV0ZXJtaW5lcyBpZiBSRkMxOTQ4 IGlzIGZvbGxvd2VkIGV4YWN0bHkiKTsNCisNCitzdGF0aWMgaW50CXRjcF9p c25fcmVzZWVkX2ludGVydmFsID0gMDsNCitTWVNDVExfSU5UKF9uZXRfaW5l dF90Y3AsIE9JRF9BVVRPLCBpc25fcmVzZWVkX2ludGVydmFsLCBDVExGTEFH X1JXLA0KKyAgICAmdGNwX2lzbl9yZXNlZWRfaW50ZXJ2YWwsIDAsICJTZWNv bmRzIGJldHdlZW4gcmVzZWVkaW5nIG9mIElTTiBzZWNyZXQiKTsNCiANCiBz dGF0aWMgdm9pZAl0Y3BfY2xlYXJ0YW9jYWNoZSBfX1AoKHZvaWQpKTsNCiBz dGF0aWMgdm9pZAl0Y3Bfbm90aWZ5IF9fUCgoc3RydWN0IGlucGNiICosIGlu dCkpOw0KQEAgLTE4Niw3ICsxOTEsNiBAQA0KIHsNCiAJaW50IGhhc2hzaXpl ID0gVENCSEFTSFNJWkU7DQogCQ0KLQl0Y3BfaXNzID0gYXJjNHJhbmRvbSgp OwkvKiB3cm9uZywgYnV0IGJldHRlciB0aGFuIGEgY29uc3RhbnQgKi8NCiAJ dGNwX2NjZ2VuID0gMTsNCiAJdGNwX2NsZWFydGFvY2FjaGUoKTsNCiANCkBA IC0xMTEyLDgwICsxMTE2LDEwMSBAQA0KIH0NCiAjZW5kaWYgLyogSU5FVDYg Ki8NCiANCi10Y3Bfc2VxDQotdGNwX25ld19pc24oKQ0KLXsNCi0NCi0JaWYg KHRjcF9zZXFfZ2Vuc2NoZW1lID4gMSB8fCB0Y3Bfc2VxX2dlbnNjaGVtZSA8 IDApDQotCQl0Y3Bfc2VxX2dlbnNjaGVtZSA9IDE7DQotDQotCXN3aXRjaCAo dGNwX3NlcV9nZW5zY2hlbWUpIHsNCi0JY2FzZSAwOgkJCS8qIFJhbmRvbSBw b3NpdGl2ZSBpbmNyZW1lbnRzICovDQotCQl0Y3BfaXNzICs9IFRDUF9JU1NJ TkNSLzI7DQotCQlyZXR1cm4gdGNwX2lzczsNCi0JY2FzZSAxOgkJCS8qIE9w ZW5CU0QgcmFuZG9taXplZCBzY2hlbWUgKi8NCi0JCXJldHVybiB0Y3Bfcm5k aXNzX25leHQoKTsNCi0JZGVmYXVsdDoNCi0JCXBhbmljKCJjYW5ub3QgaGFw cGVuIik7DQotCX0NCi19DQotDQotI2RlZmluZSBUQ1BfUk5ESVNTX1JPVU5E UwkxNg0KLSNkZWZpbmUgVENQX1JORElTU19PVVQJNzIwMA0KLSNkZWZpbmUg VENQX1JORElTU19NQVgJMzAwMDANCi0NCi11X2ludDhfdCB0Y3Bfcm5kaXNz X3Nib3hbMTI4XTsNCi11X2ludDE2X3QgdGNwX3JuZGlzc19tc2I7DQotdV9p bnQxNl90IHRjcF9ybmRpc3NfY250Ow0KLWxvbmcgdGNwX3JuZGlzc19yZXNl ZWQ7DQotDQotdV9pbnQxNl90DQotdGNwX3JuZGlzc19lbmNyeXB0KHZhbCkN Ci0JdV9pbnQxNl90IHZhbDsNCi17DQotCXVfaW50MTZfdCBzdW0gPSAwLCBp Ow0KLSAgDQotCWZvciAoaSA9IDA7IGkgPCBUQ1BfUk5ESVNTX1JPVU5EUzsg aSsrKSB7DQotCQlzdW0gKz0gMHg3OWI5Ow0KLQkJdmFsIF49ICgodV9pbnQx Nl90KXRjcF9ybmRpc3Nfc2JveFsodmFsXnN1bSkgJiAweDdmXSkgPDwgNzsN Ci0JCXZhbCA9ICgodmFsICYgMHhmZikgPDwgNykgfCAodmFsID4+IDgpOw0K LQl9DQogDQotCXJldHVybiB2YWw7DQotfQ0KLQ0KLXZvaWQNCi10Y3Bfcm5k aXNzX2luaXQoKQ0KLXsNCi0Jc3RydWN0IHRpbWV2YWwgdGltZTsNCisvKg0K KyAqIEZvbGxvd2luZyBpcyB3aGVyZSBUQ1AgaW5pdGlhbCBzZXF1ZW5jZSBu dW1iZXIgZ2VuZXJhdGlvbiBvY2N1cnMuDQorICoNCisgKiBUaGVyZSBhcmUg dHdvIHBsYWNlcyB3aGVyZSB3ZSBtdXN0IHVzZSBpbml0aWFsIHNlcXVlbmNl IG51bWJlcnM6DQorICogMS4gIEluIFNZTi1BQ0sgcGFja2V0cy4NCisgKiAy LiAgSW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBpbiBTWU4t QUNLIHBhY2tldHMgaGF2ZSBubyBtb25vdG9uaWNpdHkgcmVxdWlyZW1lbnQs IA0KKyAqIGFuZCBzaG91bGQgYmUgYXMgdW5wcmVkaWN0YWJsZSBhcyBwb3Nz aWJsZSB0byBhdm9pZCB0aGUgcG9zc2liaWxpdHkNCisgKiBvZiBzcG9vZmlu ZyBhbmQvb3IgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBzYXRpc2Z5IHRo aXMNCisgKiByZXF1aXJlbWVudCwgU1lOLUFDSyBJU05zIGFyZSBnZW5lcmF0 ZWQgdmlhIHRoZSBhcmM0cmFuZG9tKCkNCisgKiBmdW5jdGlvbi4gIElmIGV4 YWN0IFJGQyAxOTQ4IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkIHZpYSBzeXNj dGwsDQorICogdGhlc2UgSVNOcyB3aWxsIGJlIGdlbmVyYXRlZCBqdXN0IGxp a2UgdGhvc2UgaW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBp biBTWU4gcGFja2V0cyBtdXN0IGJlIG1vbm90b25pYzsgVElNRV9XQUlUIHJl Y3ljbGluZw0KKyAqIGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eS4gIEluIGFk ZGl0aW9uLCB0aGVzZSBJU05zIHNob3VsZCBiZQ0KKyAqIHVuZ3Vlc3NhYmxl IHNvIGFzIHRvIHByZXZlbnQgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBz YXRpc2Z5DQorICogdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNpdHVhdGlv biwgdGhlIGFsZ29yaXRobSBvdXRsaW5lZCBpbg0KKyAqIFJGQyAxOTQ4IGlz IHVzZWQgdG8gZ2VuZXJhdGUgc2VxdWVuY2UgbnVtYmVycy4NCisgKg0KKyAq IEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0aGVvcnkgb2Ygb3BlcmF0 aW9uLCBwbGVhc2Ugc2VlDQorICogUkZDIDE5NDguDQorICoNCisgKiBJbXBs ZW1lbnRhdGlvbiBkZXRhaWxzOg0KKyAqDQorICogVGltZSBpcyBiYXNlZCBv ZmYgdGhlIHN5c3RlbSB0aW1lciwgYW5kIGlzIGNvcnJlY3RlZCBzbyB0aGF0 IGl0DQorICogaW5jcmVhc2VzIGJ5IG9uZSBtZWdhYnl0ZSBwZXIgc2Vjb25k LiAgVGhpcyBhbGxvd3MgZm9yIHByb3Blcg0KKyAqIHJlY3ljbGluZyBvbiBo aWdoIHNwZWVkIExBTnMgd2hpbGUgc3RpbGwgbGVhdmluZyBvdmVyIGFuIGhv dXINCisgKiBiZWZvcmUgcm9sbG92ZXIuDQorICoNCisgKiBUd28gc3lzY3Rs cyBjb250cm9sIHRoZSBnZW5lcmF0aW9uIG9mIElTTnM6DQorICoNCisgKiBu ZXQuaW5ldC50Y3AuaXNuX3Jlc2VlZF9pbnRlcnZhbCBjb250cm9scyB0aGUg bnVtYmVyIG9mIHNlY29uZHMNCisgKiBiZXR3ZWVuIHNlZWRpbmcgb2YgaXNu X3NlY3JldC4gIFRoaXMgaXMgbm9ybWFsbHkgc2V0IHRvIHplcm8sDQorICog YXMgcmVzZWVkaW5nIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5Lg0KKyAqDQor ICogbmV0LmluZXQudGNwLnN0cmljdF9yZmMxOTQ4IGNvbnRyb2xzIHdoZXRo ZXIgUkZDIDE5NDggaXMgZm9sbG93ZWQNCisgKiBzdHJpY3RseS4gIFdoZW4g c3RyaWN0IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkLCByZXNlZWRpbmcgaXMN CisgKiBkaXNhYmxlZCBhbmQgU1lOLUFDS3Mgd2lsbCBiZSBnZW5lcmF0ZWQg aW4gdGhlIHNhbWUgbWFubmVyIGFzDQorICogU1lOcy4gIFN0cmljdCBtb2Rl IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuDQorICoNCisgKi8NCiANCi0JZ2V0 bWljcm90aW1lKCZ0aW1lKTsNCi0JcmVhZF9yYW5kb20odGNwX3JuZGlzc19z Ym94LCBzaXplb2YodGNwX3JuZGlzc19zYm94KSk7DQorI2RlZmluZSBJU05f QllURVNfUEVSX1NFQ09ORCAxMDQ4NTc2DQogDQotCXRjcF9ybmRpc3NfcmVz ZWVkID0gdGltZS50dl9zZWMgKyBUQ1BfUk5ESVNTX09VVDsNCi0JdGNwX3Ju ZGlzc19tc2IgPSB0Y3Bfcm5kaXNzX21zYiA9PSAweDgwMDAgPyAwIDogMHg4 MDAwOyANCi0JdGNwX3JuZGlzc19jbnQgPSAwOw0KLX0NCit1X2NoYXIgaXNu X3NlY3JldFszMl07DQoraW50IGlzbl9sYXN0X3Jlc2VlZDsNCitNRDVfQ1RY IGlzbl9jdHg7DQogDQogdGNwX3NlcQ0KLXRjcF9ybmRpc3NfbmV4dCgpDQor dGNwX25ld19pc24odHApDQorCXN0cnVjdCB0Y3BjYiAqdHA7DQogew0KLQl1 X2ludDE2X3QgdG1wOw0KLQlzdHJ1Y3QgdGltZXZhbCB0aW1lOw0KKwl1X2lu dDMyX3QgbWQ1X2J1ZmZlcls0XTsNCisJdGNwX3NlcSBuZXdfaXNuOw0KIA0K LQlnZXRtaWNyb3RpbWUoJnRpbWUpOw0KLQ0KLSAgICAgICAgaWYgKHRjcF9y bmRpc3NfY250ID49IFRDUF9STkRJU1NfTUFYIHx8DQotCSAgICB0aW1lLnR2 X3NlYyA+IHRjcF9ybmRpc3NfcmVzZWVkKQ0KLSAgICAgICAgICAgICAgICB0 Y3Bfcm5kaXNzX2luaXQoKTsNCi0JDQotCXJlYWRfcmFuZG9tKCZ0bXAsIHNp emVvZih0bXApKTsNCi0NCi0JLyogKHRtcCAmIDB4N2ZmZikgZW5zdXJlcyBh IDMyNzY4IGJ5dGUgZ2FwIGJldHdlZW4gSVNTICovDQotCXJldHVybiAoKHRj cF9ybmRpc3NfZW5jcnlwdCh0Y3Bfcm5kaXNzX2NudCsrKSB8IHRjcF9ybmRp c3NfbXNiKSA8PDE2KSB8DQotCQkodG1wICYgMHg3ZmZmKTsNCisJLyogVXNl IGFyYzRyYW5kb20gZm9yIFNZTi1BQ0tzIHdoZW4gbm90IGluIGV4YWN0IFJG QzE5NDggbW9kZS4gKi8NCisJaWYgKCgodHAtPnRfc3RhdGUgPT0gVENQU19M SVNURU4pIHx8ICh0cC0+dF9zdGF0ZSA9PSBUQ1BTX1RJTUVfV0FJVCkpDQor CSAgICYmIHRjcF9zdHJpY3RfcmZjMTk0OCAhPSAxKQ0KKwkJcmV0dXJuIGFy YzRyYW5kb20oKTsNCisNCisJLyogU2VlZCBpZiB0aGlzIGlzIHRoZSBmaXJz dCB1c2UsIHJlc2VlZCBpZiByZXF1ZXN0ZWQuICovDQorCWlmICgoaXNuX2xh c3RfcmVzZWVkID09IDApIHx8DQorCSAgICAoKHRjcF9zdHJpY3RfcmZjMTk0 OCAhPSAxKSAmJiAodGNwX2lzbl9yZXNlZWRfaW50ZXJ2YWwgPiAwKSAmJg0K KwkgICAgICgoKHVfaW50KWlzbl9sYXN0X3Jlc2VlZCArICh1X2ludCl0Y3Bf aXNuX3Jlc2VlZF9pbnRlcnZhbCpoeikNCisJCTwgKHVfaW50KXRpY2tzKSkp IHsNCisJCXJlYWRfcmFuZG9tKCZpc25fc2VjcmV0LCBzaXplb2YoaXNuX3Nl Y3JldCkpOw0KKwkJaXNuX2xhc3RfcmVzZWVkID0gdGlja3M7DQorCX0NCisJ CQ0KKwkvKiBDb21wdXRlIHRoZSBtZDUgaGFzaCBhbmQgcmV0dXJuIHRoZSBJ U04uICovDQorCU1ENUluaXQoJmlzbl9jdHgpOw0KKwlNRDVVcGRhdGUoJmlz bl9jdHgsICh1X2NoYXIgKikgJnRwLT50X2lucGNiLT5pbnBfZnBvcnQsIHNp emVvZih1X3Nob3J0KSk7DQorCU1ENVVwZGF0ZSgmaXNuX2N0eCwgKHVfY2hh ciAqKSAmdHAtPnRfaW5wY2ItPmlucF9scG9ydCwgc2l6ZW9mKHVfc2hvcnQp KTsNCisjaWZkZWYgSU5FVDYNCisJaWYgKCh0cC0+dF9pbnBjYi0+aW5wX3Zm bGFnICYgSU5QX0lQVjYpICE9IDApIHsNCisJCU1ENVVwZGF0ZSgmaXNuX2N0 eCwgKHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmluNnBfZmFkZHIsDQorCQkJ ICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7DQorCQlNRDVVcGRhdGUoJmlz bl9jdHgsICh1X2NoYXIgKikgJnRwLT50X2lucGNiLT5pbjZwX2xhZGRyLA0K KwkJCSAgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpOw0KKwl9IGVsc2UNCisj ZW5kaWYNCisJew0KKwkJTUQ1VXBkYXRlKCZpc25fY3R4LCAodV9jaGFyICop ICZ0cC0+dF9pbnBjYi0+aW5wX2ZhZGRyLA0KKwkJCSAgc2l6ZW9mKHN0cnVj dCBpbl9hZGRyKSk7DQorCQlNRDVVcGRhdGUoJmlzbl9jdHgsICh1X2NoYXIg KikgJnRwLT50X2lucGNiLT5pbnBfbGFkZHIsDQorCQkJICBzaXplb2Yoc3Ry dWN0IGluX2FkZHIpKTsNCisJfQ0KKwlNRDVVcGRhdGUoJmlzbl9jdHgsICh1 X2NoYXIgKikgJmlzbl9zZWNyZXQsIHNpemVvZihpc25fc2VjcmV0KSk7DQor CU1ENUZpbmFsKCh1X2NoYXIgKikgJm1kNV9idWZmZXIsICZpc25fY3R4KTsN CisJbmV3X2lzbiA9ICh0Y3Bfc2VxKSBtZDVfYnVmZmVyWzBdOw0KKwluZXdf aXNuICs9IHRpY2tzICogKElTTl9CWVRFU19QRVJfU0VDT05EIC8gaHopOw0K KwlyZXR1cm4gbmV3X2lzbjsNCiB9DQotDQogDQogLyoNCiAgKiBXaGVuIGEg c291cmNlIHF1ZW5jaCBpcyByZWNlaXZlZCwgY2xvc2UgY29uZ2VzdGlvbiB3 aW5kb3cNCmRpZmYgLXUgLXIgbmV0aW5ldC5vbGQvdGNwX3RpbWVyLmMgbmV0 aW5ldC90Y3BfdGltZXIuYw0KLS0tIG5ldGluZXQub2xkL3RjcF90aW1lci5j CVR1ZSBKdWwgMzEgMjE6NDM6MjEgMjAwMQ0KKysrIG5ldGluZXQvdGNwX3Rp bWVyLmMJVGh1IEF1ZyAgOSAwMDo0NTo1MCAyMDAxDQpAQCAtMTMzLDggKzEz Myw2IEBADQogDQogCXRjcF9tYXhpZGxlID0gdGNwX2tlZXBjbnQgKiB0Y3Bf a2VlcGludHZsOw0KIA0KLQl0Y3BfaXNzICs9IFRDUF9JU1NJTkNSL1BSX1NM T1dIWjsNCi0NCiAJc3BseChzKTsNCiB9DQogDQpkaWZmIC11IC1yIG5ldGlu ZXQub2xkL3RjcF91c3JyZXEuYyBuZXRpbmV0L3RjcF91c3JyZXEuYw0KLS0t IG5ldGluZXQub2xkL3RjcF91c3JyZXEuYwlUdWUgSnVsIDMxIDIxOjQzOjIx IDIwMDENCisrKyBuZXRpbmV0L3RjcF91c3JyZXEuYwlUdWUgSnVsIDMxIDIx OjQ1OjU4IDIwMDENCkBAIC03NTgsNyArNzU4LDcgQEANCiAJdGNwc3RhdC50 Y3BzX2Nvbm5hdHRlbXB0Kys7DQogCXRwLT50X3N0YXRlID0gVENQU19TWU5f U0VOVDsNCiAJY2FsbG91dF9yZXNldCh0cC0+dHRfa2VlcCwgdGNwX2tlZXBp bml0LCB0Y3BfdGltZXJfa2VlcCwgdHApOw0KLQl0cC0+aXNzID0gdGNwX25l d19pc24oKTsNCisJdHAtPmlzcyA9IHRjcF9uZXdfaXNuKHRwKTsNCiAJdGNw X3NlbmRzZXFpbml0KHRwKTsNCiANCiAJLyoNCkBAIC04NDQsNyArODQ0LDcg QEANCiAJdGNwc3RhdC50Y3BzX2Nvbm5hdHRlbXB0Kys7DQogCXRwLT50X3N0 YXRlID0gVENQU19TWU5fU0VOVDsNCiAJY2FsbG91dF9yZXNldCh0cC0+dHRf a2VlcCwgdGNwX2tlZXBpbml0LCB0Y3BfdGltZXJfa2VlcCwgdHApOw0KLQl0 cC0+aXNzID0gdGNwX25ld19pc24oKTsNCisJdHAtPmlzcyA9IHRjcF9uZXdf aXNuKHRwKTsNCiAJdGNwX3NlbmRzZXFpbml0KHRwKTsNCiANCiAJLyoNCmRp ZmYgLXUgLXIgbmV0aW5ldC5vbGQvdGNwX3Zhci5oIG5ldGluZXQvdGNwX3Zh ci5oDQotLS0gbmV0aW5ldC5vbGQvdGNwX3Zhci5oCVR1ZSBKdWwgMzEgMjE6 NDM6MjEgMjAwMQ0KKysrIG5ldGluZXQvdGNwX3Zhci5oCVRodSBBdWcgIDkg MDA6NTU6MTYgMjAwMQ0KQEAgLTQxMCwxMSArNDEwLDcgQEANCiBleHRlcm4J c3RydWN0IHByX3VzcnJlcXMgdGNwX3VzcnJlcXM7DQogZXh0ZXJuCXVfbG9u ZyB0Y3Bfc2VuZHNwYWNlOw0KIGV4dGVybgl1X2xvbmcgdGNwX3JlY3ZzcGFj ZTsNCi12b2lkCXRjcF9ybmRpc3NfaW5pdCBfX1AoKHZvaWQpKTsNCi10Y3Bf c2VxCXRjcF9ybmRpc3NfbmV4dCBfX1AoKHZvaWQpKTsNCi11X2ludDE2X3QN Ci0JdGNwX3JuZGlzc19lbmNyeXB0IF9fUCgodV9pbnQxNl90KSk7DQotdGNw X3NlcSB0Y3BfbmV3X2lzbiBfX1AoKHZvaWQpKTsNCit0Y3Bfc2VxIHRjcF9u ZXdfaXNuIF9fUCgoc3RydWN0IHRjcGNiICopKTsNCiANCiAjZW5kaWYgLyog X0tFUk5FTCAqLw0K --0-1767808683-997421874=:93492 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rfc1948-2-stable.patch" Content-Transfer-Encoding: BASE64 Content-ID: <20010810003754.B93492@achilles.silby.com> Content-Description: Content-Disposition: attachment; filename="rfc1948-2-stable.patch" ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfaW5wdXQuYyBuZXRpbmV0L3Rj cF9pbnB1dC5jDQotLS0gbmV0aW5ldC5vbGQvdGNwX2lucHV0LmMJVHVlIEp1 bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3BfaW5wdXQuYwlU aHUgQXVnICA5IDAwOjQ1OjAxIDIwMDENCkBAIC0xMDEsNyArMTAxLDYgQEAN CiBNQUxMT0NfREVGSU5FKE1fVFNFR1EsICJ0c2VnX3FlbnQiLCAiVENQIHNl Z21lbnQgcXVldWUgZW50cnkiKTsNCiANCiBzdGF0aWMgaW50CXRjcHJleG10 dGhyZXNoID0gMzsNCi10Y3Bfc2VxCXRjcF9pc3M7DQogdGNwX2NjCXRjcF9j Y2dlbjsNCiANCiBzdHJ1Y3QJdGNwc3RhdCB0Y3BzdGF0Ow0KQEAgLTExMzUs NyArMTEzNCw3IEBADQogCQlpZiAoaXNzKQ0KIAkJCXRwLT5pc3MgPSBpc3M7 DQogCQllbHNlIHsNCi0JCQl0cC0+aXNzID0gdGNwX25ld19pc24oKTsNCisJ CQl0cC0+aXNzID0gdGNwX25ld19pc24odHApOw0KICAJCX0NCiAJCXRwLT5p cnMgPSB0aC0+dGhfc2VxOw0KIAkJdGNwX3NlbmRzZXFpbml0KHRwKTsNCkBA IC0xNjY3LDcgKzE2NjYsNyBAQA0KIAkJCWlmICh0aGZsYWdzICYgVEhfU1lO ICYmDQogCQkJICAgIHRwLT50X3N0YXRlID09IFRDUFNfVElNRV9XQUlUICYm DQogCQkJICAgIFNFUV9HVCh0aC0+dGhfc2VxLCB0cC0+cmN2X254dCkpIHsN Ci0JCQkJaXNzID0gdGNwX25ld19pc24oKTsNCisJCQkJaXNzID0gdGNwX25l d19pc24odHApOw0KIAkJCQl0cCA9IHRjcF9jbG9zZSh0cCk7DQogCQkJCWdv dG8gZmluZHBjYjsNCiAJCQl9DQpkaWZmIC11IC1yIG5ldGluZXQub2xkL3Rj cF9zZXEuaCBuZXRpbmV0L3RjcF9zZXEuaA0KLS0tIG5ldGluZXQub2xkL3Rj cF9zZXEuaAlUdWUgSnVsIDMxIDIxOjQzOjIxIDIwMDENCisrKyBuZXRpbmV0 L3RjcF9zZXEuaAlUaHUgQXVnICA5IDAwOjQ4OjMwIDIwMDENCkBAIC04MCwy NiArODAsNSBAQA0KIA0KICNpZmRlZiBfS0VSTkVMDQogZXh0ZXJuIHRjcF9j Ywl0Y3BfY2NnZW47CQkvKiBnbG9iYWwgY29ubmVjdGlvbiBjb3VudCAqLw0K LQ0KLS8qDQotICogSW5jcmVtZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25k Lg0KLSAqIFRoaXMgaXMgZGVzaWduZWQgdG8gaW5jcmVtZW50IGF0IHRoZSBz dGFuZGFyZCAyNTAgS0IvcywNCi0gKiBidXQgd2l0aCBhIHJhbmRvbSBjb21w b25lbnQgYXZlcmFnaW5nIDEyOCBLQi4NCi0gKiBXZSBhbHNvIGluY3JlbWVu dCB0Y3BfaXNzIGJ5IGEgcXVhcnRlciBvZiB0aGlzIGFtb3VudA0KLSAqIGVh Y2ggdGltZSB3ZSB1c2UgdGhlIHZhbHVlIGZvciBhIG5ldyBjb25uZWN0aW9u Lg0KLSAqIElmIGRlZmluZWQsIHRoZSB0Y3BfcmFuZG9tMTgoKSBtYWNybyBz aG91bGQgcHJvZHVjZSBhDQotICogbnVtYmVyIGluIHRoZSByYW5nZSBbMC0w eDNmZmZmXSB0aGF0IGlzIGhhcmQgdG8gcHJlZGljdC4NCi0gKiANCi0gKiBU aGUgdmFyaWFibGUgdGNwX2lzcyBhbmQgdGNwX3JhbmRvbTE4KCkgYXJlIG9u bHkgdXNlZA0KLSAqIGJ5IHNlcXVlbmNlIG51bWJlciBnZW5lcmF0aW9uIHNj aGVtZSAwLg0KLSAqLw0KLSNpZm5kZWYgdGNwX3JhbmRvbTE4DQotI2RlZmlu ZQl0Y3BfcmFuZG9tMTgoKQkoYXJjNHJhbmRvbSgpICYgMHgzZmZmZikNCi0j ZW5kaWYNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgxMjIqMTAyNCArIHRjcF9y YW5kb20xOCgpKQ0KLQ0KLWV4dGVybiB0Y3Bfc2VxCXRjcF9pc3M7DQotI2Vs c2UNCi0jZGVmaW5lCVRDUF9JU1NJTkNSCSgyNTAqMTAyNCkJLyogaW5jcmVt ZW50IGZvciB0Y3BfaXNzIGVhY2ggc2Vjb25kICovDQogI2VuZGlmIC8qIF9L RVJORUwgKi8NCiAjZW5kaWYgLyogX05FVElORVRfVENQX1NFUV9IXyAqLw0K ZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3Bfc3Vici5jIG5ldGluZXQvdGNw X3N1YnIuYw0KLS0tIG5ldGluZXQub2xkL3RjcF9zdWJyLmMJVHVlIEp1bCAz MSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3Bfc3Vici5jCVRodSBB dWcgIDkgMDE6MjE6MTYgMjAwMQ0KQEAgLTk4LDYgKzk4LDcgQEANCiAjZW5k aWYgLypJUFNFQyovDQogDQogI2luY2x1ZGUgPG1hY2hpbmUvaW5fY2tzdW0u aD4NCisjaW5jbHVkZSA8c3lzL21kNS5oPg0KIA0KIGludCAJdGNwX21zc2Rm bHQgPSBUQ1BfTVNTOw0KIFNZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwgVENQ Q1RMX01TU0RGTFQsIG1zc2RmbHQsIENUTEZMQUdfUlcsIA0KQEAgLTEzOSw5 ICsxNDAsMTMgQEANCiBTWVNDVExfSU5UKF9uZXRfaW5ldF90Y3AsIE9JRF9B VVRPLCBpY21wX21heV9yc3QsIENUTEZMQUdfUlcsICZpY21wX21heV9yc3Qs IDAsIA0KICAgICAiQ2VydGFpbiBJQ01QIHVucmVhY2hhYmxlIG1lc3NhZ2Vz IG1heSBhYm9ydCBjb25uZWN0aW9ucyBpbiBTWU5fU0VOVCIpOw0KIA0KLXN0 YXRpYyBpbnQJdGNwX3NlcV9nZW5zY2hlbWUgPSAxOw0KLVNZU0NUTF9JTlQo X25ldF9pbmV0X3RjcCwgT0lEX0FVVE8sIHRjcF9zZXFfZ2Vuc2NoZW1lLCBD VExGTEFHX1JXLA0KLSAgICAmdGNwX3NlcV9nZW5zY2hlbWUsIDAsICJUQ1Ag SVNOIGdlbmVyYXRpb24gc2NoZW1lIik7DQorc3RhdGljIGludAl0Y3Bfc3Ry aWN0X3JmYzE5NDggPSAwOw0KK1NZU0NUTF9JTlQoX25ldF9pbmV0X3RjcCwg T0lEX0FVVE8sIHN0cmljdF9yZmMxOTQ4LCBDVExGTEFHX1JXLA0KKyAgICAm dGNwX3N0cmljdF9yZmMxOTQ4LCAwLCAiRGV0ZXJtaW5lcyBpZiBSRkMxOTQ4 IGlzIGZvbGxvd2VkIGV4YWN0bHkiKTsNCisNCitzdGF0aWMgaW50CXRjcF9p c25fcmVzZWVkX2ludGVydmFsID0gMDsNCitTWVNDVExfSU5UKF9uZXRfaW5l dF90Y3AsIE9JRF9BVVRPLCBpc25fcmVzZWVkX2ludGVydmFsLCBDVExGTEFH X1JXLA0KKyAgICAmdGNwX2lzbl9yZXNlZWRfaW50ZXJ2YWwsIDAsICJTZWNv bmRzIGJldHdlZW4gcmVzZWVkaW5nIG9mIElTTiBzZWNyZXQiKTsNCiANCiBz dGF0aWMgdm9pZAl0Y3BfY2xlYXJ0YW9jYWNoZSBfX1AoKHZvaWQpKTsNCiBz dGF0aWMgdm9pZAl0Y3Bfbm90aWZ5IF9fUCgoc3RydWN0IGlucGNiICosIGlu dCkpOw0KQEAgLTE4Niw3ICsxOTEsNiBAQA0KIHsNCiAJaW50IGhhc2hzaXpl ID0gVENCSEFTSFNJWkU7DQogCQ0KLQl0Y3BfaXNzID0gYXJjNHJhbmRvbSgp OwkvKiB3cm9uZywgYnV0IGJldHRlciB0aGFuIGEgY29uc3RhbnQgKi8NCiAJ dGNwX2NjZ2VuID0gMTsNCiAJdGNwX2NsZWFydGFvY2FjaGUoKTsNCiANCkBA IC0xMTEyLDgwICsxMTE2LDEwMSBAQA0KIH0NCiAjZW5kaWYgLyogSU5FVDYg Ki8NCiANCi10Y3Bfc2VxDQotdGNwX25ld19pc24oKQ0KLXsNCi0NCi0JaWYg KHRjcF9zZXFfZ2Vuc2NoZW1lID4gMSB8fCB0Y3Bfc2VxX2dlbnNjaGVtZSA8 IDApDQotCQl0Y3Bfc2VxX2dlbnNjaGVtZSA9IDE7DQotDQotCXN3aXRjaCAo dGNwX3NlcV9nZW5zY2hlbWUpIHsNCi0JY2FzZSAwOgkJCS8qIFJhbmRvbSBw b3NpdGl2ZSBpbmNyZW1lbnRzICovDQotCQl0Y3BfaXNzICs9IFRDUF9JU1NJ TkNSLzI7DQotCQlyZXR1cm4gdGNwX2lzczsNCi0JY2FzZSAxOgkJCS8qIE9w ZW5CU0QgcmFuZG9taXplZCBzY2hlbWUgKi8NCi0JCXJldHVybiB0Y3Bfcm5k aXNzX25leHQoKTsNCi0JZGVmYXVsdDoNCi0JCXBhbmljKCJjYW5ub3QgaGFw cGVuIik7DQotCX0NCi19DQotDQotI2RlZmluZSBUQ1BfUk5ESVNTX1JPVU5E UwkxNg0KLSNkZWZpbmUgVENQX1JORElTU19PVVQJNzIwMA0KLSNkZWZpbmUg VENQX1JORElTU19NQVgJMzAwMDANCi0NCi11X2ludDhfdCB0Y3Bfcm5kaXNz X3Nib3hbMTI4XTsNCi11X2ludDE2X3QgdGNwX3JuZGlzc19tc2I7DQotdV9p bnQxNl90IHRjcF9ybmRpc3NfY250Ow0KLWxvbmcgdGNwX3JuZGlzc19yZXNl ZWQ7DQotDQotdV9pbnQxNl90DQotdGNwX3JuZGlzc19lbmNyeXB0KHZhbCkN Ci0JdV9pbnQxNl90IHZhbDsNCi17DQotCXVfaW50MTZfdCBzdW0gPSAwLCBp Ow0KLSAgDQotCWZvciAoaSA9IDA7IGkgPCBUQ1BfUk5ESVNTX1JPVU5EUzsg aSsrKSB7DQotCQlzdW0gKz0gMHg3OWI5Ow0KLQkJdmFsIF49ICgodV9pbnQx Nl90KXRjcF9ybmRpc3Nfc2JveFsodmFsXnN1bSkgJiAweDdmXSkgPDwgNzsN Ci0JCXZhbCA9ICgodmFsICYgMHhmZikgPDwgNykgfCAodmFsID4+IDgpOw0K LQl9DQogDQotCXJldHVybiB2YWw7DQotfQ0KLQ0KLXZvaWQNCi10Y3Bfcm5k aXNzX2luaXQoKQ0KLXsNCi0Jc3RydWN0IHRpbWV2YWwgdGltZTsNCisvKg0K KyAqIEZvbGxvd2luZyBpcyB3aGVyZSBUQ1AgaW5pdGlhbCBzZXF1ZW5jZSBu dW1iZXIgZ2VuZXJhdGlvbiBvY2N1cnMuDQorICoNCisgKiBUaGVyZSBhcmUg dHdvIHBsYWNlcyB3aGVyZSB3ZSBtdXN0IHVzZSBpbml0aWFsIHNlcXVlbmNl IG51bWJlcnM6DQorICogMS4gIEluIFNZTi1BQ0sgcGFja2V0cy4NCisgKiAy LiAgSW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBpbiBTWU4t QUNLIHBhY2tldHMgaGF2ZSBubyBtb25vdG9uaWNpdHkgcmVxdWlyZW1lbnQs IA0KKyAqIGFuZCBzaG91bGQgYmUgYXMgdW5wcmVkaWN0YWJsZSBhcyBwb3Nz aWJsZSB0byBhdm9pZCB0aGUgcG9zc2liaWxpdHkNCisgKiBvZiBzcG9vZmlu ZyBhbmQvb3IgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBzYXRpc2Z5IHRo aXMNCisgKiByZXF1aXJlbWVudCwgU1lOLUFDSyBJU05zIGFyZSBnZW5lcmF0 ZWQgdmlhIHRoZSBhcmM0cmFuZG9tKCkNCisgKiBmdW5jdGlvbi4gIElmIGV4 YWN0IFJGQyAxOTQ4IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkIHZpYSBzeXNj dGwsDQorICogdGhlc2UgSVNOcyB3aWxsIGJlIGdlbmVyYXRlZCBqdXN0IGxp a2UgdGhvc2UgaW4gU1lOIHBhY2tldHMuDQorICoNCisgKiBUaGUgSVNOcyBp biBTWU4gcGFja2V0cyBtdXN0IGJlIG1vbm90b25pYzsgVElNRV9XQUlUIHJl Y3ljbGluZw0KKyAqIGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eS4gIEluIGFk ZGl0aW9uLCB0aGVzZSBJU05zIHNob3VsZCBiZQ0KKyAqIHVuZ3Vlc3NhYmxl IHNvIGFzIHRvIHByZXZlbnQgY29ubmVjdGlvbiBoaWphY2tpbmcuICBUbyBz YXRpc2Z5DQorICogdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNpdHVhdGlv biwgdGhlIGFsZ29yaXRobSBvdXRsaW5lZCBpbg0KKyAqIFJGQyAxOTQ4IGlz IHVzZWQgdG8gZ2VuZXJhdGUgc2VxdWVuY2UgbnVtYmVycy4NCisgKg0KKyAq IEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB0aGVvcnkgb2Ygb3BlcmF0 aW9uLCBwbGVhc2Ugc2VlDQorICogUkZDIDE5NDguDQorICoNCisgKiBJbXBs ZW1lbnRhdGlvbiBkZXRhaWxzOg0KKyAqDQorICogVGltZSBpcyBiYXNlZCBv ZmYgdGhlIHN5c3RlbSB0aW1lciwgYW5kIGlzIGNvcnJlY3RlZCBzbyB0aGF0 IGl0DQorICogaW5jcmVhc2VzIGJ5IG9uZSBtZWdhYnl0ZSBwZXIgc2Vjb25k LiAgVGhpcyBhbGxvd3MgZm9yIHByb3Blcg0KKyAqIHJlY3ljbGluZyBvbiBo aWdoIHNwZWVkIExBTnMgd2hpbGUgc3RpbGwgbGVhdmluZyBvdmVyIGFuIGhv dXINCisgKiBiZWZvcmUgcm9sbG92ZXIuDQorICoNCisgKiBUd28gc3lzY3Rs cyBjb250cm9sIHRoZSBnZW5lcmF0aW9uIG9mIElTTnM6DQorICoNCisgKiBu ZXQuaW5ldC50Y3AuaXNuX3Jlc2VlZF9pbnRlcnZhbCBjb250cm9scyB0aGUg bnVtYmVyIG9mIHNlY29uZHMNCisgKiBiZXR3ZWVuIHNlZWRpbmcgb2YgaXNu X3NlY3JldC4gIFRoaXMgaXMgbm9ybWFsbHkgc2V0IHRvIHplcm8sDQorICog YXMgcmVzZWVkaW5nIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5Lg0KKyAqDQor ICogbmV0LmluZXQudGNwLnN0cmljdF9yZmMxOTQ4IGNvbnRyb2xzIHdoZXRo ZXIgUkZDIDE5NDggaXMgZm9sbG93ZWQNCisgKiBzdHJpY3RseS4gIFdoZW4g c3RyaWN0IGNvbXBsaWFuY2UgaXMgcmVxdWVzdGVkLCByZXNlZWRpbmcgaXMN CisgKiBkaXNhYmxlZCBhbmQgU1lOLUFDS3Mgd2lsbCBiZSBnZW5lcmF0ZWQg aW4gdGhlIHNhbWUgbWFubmVyIGFzDQorICogU1lOcy4gIFN0cmljdCBtb2Rl IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuDQorICoNCisgKi8NCiANCi0JZ2V0 bWljcm90aW1lKCZ0aW1lKTsNCi0JcmVhZF9yYW5kb21fdW5saW1pdGVkKHRj cF9ybmRpc3Nfc2JveCwgc2l6ZW9mKHRjcF9ybmRpc3Nfc2JveCkpOw0KKyNk ZWZpbmUgSVNOX0JZVEVTX1BFUl9TRUNPTkQgMTA0ODU3Ng0KIA0KLQl0Y3Bf cm5kaXNzX3Jlc2VlZCA9IHRpbWUudHZfc2VjICsgVENQX1JORElTU19PVVQ7 DQotCXRjcF9ybmRpc3NfbXNiID0gdGNwX3JuZGlzc19tc2IgPT0gMHg4MDAw ID8gMCA6IDB4ODAwMDsgDQotCXRjcF9ybmRpc3NfY250ID0gMDsNCi19DQor dV9jaGFyIGlzbl9zZWNyZXRbMzJdOw0KK2ludCBpc25fbGFzdF9yZXNlZWQ7 DQorTUQ1X0NUWCBpc25fY3R4Ow0KIA0KIHRjcF9zZXENCi10Y3Bfcm5kaXNz X25leHQoKQ0KK3RjcF9uZXdfaXNuKHRwKQ0KKwlzdHJ1Y3QgdGNwY2IgKnRw Ow0KIHsNCi0JdV9pbnQzMl90IHRtcDsNCi0Jc3RydWN0IHRpbWV2YWwgdGlt ZTsNCisJdV9pbnQzMl90IG1kNV9idWZmZXJbNF07DQorCXRjcF9zZXEgbmV3 X2lzbjsNCiANCi0JZ2V0bWljcm90aW1lKCZ0aW1lKTsNCi0NCi0gICAgICAg IGlmICh0Y3Bfcm5kaXNzX2NudCA+PSBUQ1BfUk5ESVNTX01BWCB8fA0KLQkg ICAgdGltZS50dl9zZWMgPiB0Y3Bfcm5kaXNzX3Jlc2VlZCkNCi0gICAgICAg ICAgICAgICAgdGNwX3JuZGlzc19pbml0KCk7DQotCQ0KLQl0bXAgPSBhcmM0 cmFuZG9tKCk7DQotDQotCS8qICh0bXAgJiAweDdmZmYpIGVuc3VyZXMgYSAz Mjc2OCBieXRlIGdhcCBiZXR3ZWVuIElTUyAqLw0KLQlyZXR1cm4gKCh0Y3Bf cm5kaXNzX2VuY3J5cHQodGNwX3JuZGlzc19jbnQrKykgfCB0Y3Bfcm5kaXNz X21zYikgPDwxNikgfA0KLQkJKHRtcCAmIDB4N2ZmZik7DQorCS8qIFVzZSBh cmM0cmFuZG9tIGZvciBTWU4tQUNLcyB3aGVuIG5vdCBpbiBleGFjdCBSRkMx OTQ4IG1vZGUuICovDQorCWlmICgoKHRwLT50X3N0YXRlID09IFRDUFNfTElT VEVOKSB8fCAodHAtPnRfc3RhdGUgPT0gVENQU19USU1FX1dBSVQpKQ0KKwkg ICAmJiB0Y3Bfc3RyaWN0X3JmYzE5NDggIT0gMSkNCisJCXJldHVybiBhcmM0 cmFuZG9tKCk7DQorDQorCS8qIFNlZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3Qg dXNlLCByZXNlZWQgaWYgcmVxdWVzdGVkLiAqLw0KKwlpZiAoKGlzbl9sYXN0 X3Jlc2VlZCA9PSAwKSB8fA0KKwkgICAgKCh0Y3Bfc3RyaWN0X3JmYzE5NDgg IT0gMSkgJiYgKHRjcF9pc25fcmVzZWVkX2ludGVydmFsID4gMCkgJiYNCisJ ICAgICAoKCh1X2ludClpc25fbGFzdF9yZXNlZWQgKyAodV9pbnQpdGNwX2lz bl9yZXNlZWRfaW50ZXJ2YWwqaHopDQorCQk8ICh1X2ludCl0aWNrcykpKSB7 DQorCQlyZWFkX3JhbmRvbV91bmxpbWl0ZWQoJmlzbl9zZWNyZXQsIHNpemVv Zihpc25fc2VjcmV0KSk7DQorCQlpc25fbGFzdF9yZXNlZWQgPSB0aWNrczsN CisJfQ0KKwkJDQorCS8qIENvbXB1dGUgdGhlIG1kNSBoYXNoIGFuZCByZXR1 cm4gdGhlIElTTi4gKi8NCisJTUQ1SW5pdCgmaXNuX2N0eCk7DQorCU1ENVVw ZGF0ZSgmaXNuX2N0eCwgKHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmlucF9m cG9ydCwgc2l6ZW9mKHVfc2hvcnQpKTsNCisJTUQ1VXBkYXRlKCZpc25fY3R4 LCAodV9jaGFyICopICZ0cC0+dF9pbnBjYi0+aW5wX2xwb3J0LCBzaXplb2Yo dV9zaG9ydCkpOw0KKyNpZmRlZiBJTkVUNg0KKwlpZiAoKHRwLT50X2lucGNi LT5pbnBfdmZsYWcgJiBJTlBfSVBWNikgIT0gMCkgew0KKwkJTUQ1VXBkYXRl KCZpc25fY3R4LCAodV9jaGFyICopICZ0cC0+dF9pbnBjYi0+aW42cF9mYWRk ciwNCisJCQkgIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKTsNCisJCU1ENVVw ZGF0ZSgmaXNuX2N0eCwgKHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmluNnBf bGFkZHIsDQorCQkJICBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7DQorCX0g ZWxzZQ0KKyNlbmRpZg0KKwl7DQorCQlNRDVVcGRhdGUoJmlzbl9jdHgsICh1 X2NoYXIgKikgJnRwLT50X2lucGNiLT5pbnBfZmFkZHIsDQorCQkJICBzaXpl b2Yoc3RydWN0IGluX2FkZHIpKTsNCisJCU1ENVVwZGF0ZSgmaXNuX2N0eCwg KHVfY2hhciAqKSAmdHAtPnRfaW5wY2ItPmlucF9sYWRkciwNCisJCQkgIHNp emVvZihzdHJ1Y3QgaW5fYWRkcikpOw0KKwl9DQorCU1ENVVwZGF0ZSgmaXNu X2N0eCwgKHVfY2hhciAqKSAmaXNuX3NlY3JldCwgc2l6ZW9mKGlzbl9zZWNy ZXQpKTsNCisJTUQ1RmluYWwoKHVfY2hhciAqKSAmbWQ1X2J1ZmZlciwgJmlz bl9jdHgpOw0KKwluZXdfaXNuID0gKHRjcF9zZXEpIG1kNV9idWZmZXJbMF07 DQorCW5ld19pc24gKz0gdGlja3MgKiAoSVNOX0JZVEVTX1BFUl9TRUNPTkQg LyBoeik7DQorCXJldHVybiBuZXdfaXNuOw0KIH0NCi0NCiANCiAvKg0KICAq IFdoZW4gYSBzb3VyY2UgcXVlbmNoIGlzIHJlY2VpdmVkLCBjbG9zZSBjb25n ZXN0aW9uIHdpbmRvdw0KZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfdGlt ZXIuYyBuZXRpbmV0L3RjcF90aW1lci5jDQotLS0gbmV0aW5ldC5vbGQvdGNw X3RpbWVyLmMJVHVlIEp1bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5l dC90Y3BfdGltZXIuYwlUaHUgQXVnICA5IDAwOjQ1OjUwIDIwMDENCkBAIC0x MzMsOCArMTMzLDYgQEANCiANCiAJdGNwX21heGlkbGUgPSB0Y3Bfa2VlcGNu dCAqIHRjcF9rZWVwaW50dmw7DQogDQotCXRjcF9pc3MgKz0gVENQX0lTU0lO Q1IvUFJfU0xPV0haOw0KLQ0KIAlzcGx4KHMpOw0KIH0NCiANCmRpZmYgLXUg LXIgbmV0aW5ldC5vbGQvdGNwX3VzcnJlcS5jIG5ldGluZXQvdGNwX3VzcnJl cS5jDQotLS0gbmV0aW5ldC5vbGQvdGNwX3VzcnJlcS5jCVR1ZSBKdWwgMzEg MjE6NDM6MjEgMjAwMQ0KKysrIG5ldGluZXQvdGNwX3VzcnJlcS5jCVR1ZSBK dWwgMzEgMjE6NDU6NTggMjAwMQ0KQEAgLTc1OCw3ICs3NTgsNyBAQA0KIAl0 Y3BzdGF0LnRjcHNfY29ubmF0dGVtcHQrKzsNCiAJdHAtPnRfc3RhdGUgPSBU Q1BTX1NZTl9TRU5UOw0KIAljYWxsb3V0X3Jlc2V0KHRwLT50dF9rZWVwLCB0 Y3Bfa2VlcGluaXQsIHRjcF90aW1lcl9rZWVwLCB0cCk7DQotCXRwLT5pc3Mg PSB0Y3BfbmV3X2lzbigpOw0KKwl0cC0+aXNzID0gdGNwX25ld19pc24odHAp Ow0KIAl0Y3Bfc2VuZHNlcWluaXQodHApOw0KIA0KIAkvKg0KQEAgLTg0NCw3 ICs4NDQsNyBAQA0KIAl0Y3BzdGF0LnRjcHNfY29ubmF0dGVtcHQrKzsNCiAJ dHAtPnRfc3RhdGUgPSBUQ1BTX1NZTl9TRU5UOw0KIAljYWxsb3V0X3Jlc2V0 KHRwLT50dF9rZWVwLCB0Y3Bfa2VlcGluaXQsIHRjcF90aW1lcl9rZWVwLCB0 cCk7DQotCXRwLT5pc3MgPSB0Y3BfbmV3X2lzbigpOw0KKwl0cC0+aXNzID0g dGNwX25ld19pc24odHApOw0KIAl0Y3Bfc2VuZHNlcWluaXQodHApOw0KIA0K IAkvKg0KZGlmZiAtdSAtciBuZXRpbmV0Lm9sZC90Y3BfdmFyLmggbmV0aW5l dC90Y3BfdmFyLmgNCi0tLSBuZXRpbmV0Lm9sZC90Y3BfdmFyLmgJVHVlIEp1 bCAzMSAyMTo0MzoyMSAyMDAxDQorKysgbmV0aW5ldC90Y3BfdmFyLmgJVGh1 IEF1ZyAgOSAwMDo1NToxNiAyMDAxDQpAQCAtNDEwLDExICs0MTAsNyBAQA0K IGV4dGVybglzdHJ1Y3QgcHJfdXNycmVxcyB0Y3BfdXNycmVxczsNCiBleHRl cm4JdV9sb25nIHRjcF9zZW5kc3BhY2U7DQogZXh0ZXJuCXVfbG9uZyB0Y3Bf cmVjdnNwYWNlOw0KLXZvaWQJdGNwX3JuZGlzc19pbml0IF9fUCgodm9pZCkp Ow0KLXRjcF9zZXEJdGNwX3JuZGlzc19uZXh0IF9fUCgodm9pZCkpOw0KLXVf aW50MTZfdA0KLQl0Y3Bfcm5kaXNzX2VuY3J5cHQgX19QKCh1X2ludDE2X3Qp KTsNCi10Y3Bfc2VxIHRjcF9uZXdfaXNuIF9fUCgodm9pZCkpOw0KK3RjcF9z ZXEgdGNwX25ld19pc24gX19QKChzdHJ1Y3QgdGNwY2IgKikpOw0KIA0KICNl bmRpZiAvKiBfS0VSTkVMICovDQo= --0-1767808683-997421874=:93492-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Fri Aug 10 12:29:57 2001 Delivered-To: freebsd-arch@freebsd.org Received: from nagual.pp.ru (pobrecita.freebsd.ru [194.87.13.42]) by hub.freebsd.org (Postfix) with ESMTP id C8BFA37B406; Fri, 10 Aug 2001 12:29:44 -0700 (PDT) (envelope-from ache@nagual.pp.ru) Received: (from ache@localhost) by nagual.pp.ru (8.11.4/8.11.4) id f7AJTgx15085; Fri, 10 Aug 2001 23:29:42 +0400 (MSD) (envelope-from ache) Date: Fri, 10 Aug 2001 23:29:40 +0400 From: "Andrey A. Chernov" To: arch@freebsd.org Cc: bugs@freebsd.org Subject: CFR: fseek<0 + feof error (with fix) Message-ID: <20010810232939.A14964@nagual.pp.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.19i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG According to POSIX fseek{o}() description, it must return [EINVAL] The whence argument is invalid. The resulting file-position indicator would be set to a negative value. which expicetly disallows seek beyond beginning of a file. Currently we not implement this. But this situation is worse due to additional feof() bug in that case. Try following program with zero-sized "test" file: #include main() { FILE *f; int i, c; f = fopen("test", "r"); c = fgetc(f); printf("c %d\n", c); printf("feof %d\n", feof(f)); i = fseek(f, -30, 0); printf("fseek %d\n", i); printf("feof %d\n", feof(f)); c = fgetc(f); printf("c %d\n", c); printf("feof %d\n", feof(f)); } Currently it produce following output: c -1 feof 1 fseek 0 (must be -1, per POSIX) feof 0 (if prev. one is 0, can be 0, but must be 1 otherwise) c -1 feof 0 (true bug, must be 1 !!!) I.e. if someone use while (!feof(f)) { c = fgetc(f); ... } loop after occasional negative seek, it loops forever since feof(f) will be always 0 despite the fact that returned c == EOF. I.e. broken fseek() broke feof() too forever (this is real life example from ARC archiver). Here is a patch which fix this situation and makes fseek() POSIXed in some obvious cases like regular files (other types of files require much more work, but partial problem fix for 99% cases is much better than no fix at all). I plan to commit it. Please comment. --- fseek.c.old Fri Aug 10 23:11:10 2001 +++ fseek.c Fri Aug 10 23:07:28 2001 @@ -133,11 +133,19 @@ curoff += fp->_p - fp->_bf._base; offset += curoff; + if (offset < 0) { + errno = EINVAL; + return (EOF); + } whence = SEEK_SET; havepos = 1; break; case SEEK_SET: + if (offset < 0) { + errno = EINVAL; + return (EOF); + } case SEEK_END: curoff = 0; /* XXX just to keep gcc quiet */ havepos = 0; @@ -181,6 +189,10 @@ if (_fstat(fp->_file, &st)) goto dumb; target = st.st_size + offset; + if (target < 0) { + errno = EINVAL; + return (EOF); + } } if (!havepos) { -- Andrey A. Chernov http://ache.pp.ru/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Fri Aug 10 12:49:31 2001 Delivered-To: freebsd-arch@freebsd.org Received: from nagual.pp.ru (pobrecita.freebsd.ru [194.87.13.42]) by hub.freebsd.org (Postfix) with ESMTP id 3AA3437B405; Fri, 10 Aug 2001 12:49:25 -0700 (PDT) (envelope-from ache@nagual.pp.ru) Received: (from ache@localhost) by nagual.pp.ru (8.11.4/8.11.4) id f7AJnNT15358; Fri, 10 Aug 2001 23:49:24 +0400 (MSD) (envelope-from ache) Date: Fri, 10 Aug 2001 23:49:23 +0400 From: "Andrey A. Chernov" To: arch@FreeBSD.ORG Cc: bugs@FreeBSD.ORG Subject: Re: CFR: fseek<0 + feof error (with fix) Message-ID: <20010810234922.A15324@nagual.pp.ru> References: <20010810232939.A14964@nagual.pp.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20010810232939.A14964@nagual.pp.ru> User-Agent: Mutt/1.3.19i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Fri, Aug 10, 2001 at 23:29:40 +0400, Andrey A. Chernov wrote: > offset += curoff; > + if (offset < 0) { > + errno = EINVAL; > + return (EOF); > + } Correction. I just examine POSIX more carefully and found that EINVAL should be returned only if whence argument is negative for SEEK_SET since it is direct incorrect usage. For SEEK_CUR and SEEK_END there different errno supposed because they are computations: [EOVERFLOW] For fseek(), the resulting file offset would be a value which cannot be represented correctly in an object of type long. [EOVERFLOW] For fseeko(), the resulting file offset would be a value which cannot be represented correctly in an object of type off_t. I.e. one place of my patch stays errno = EINVAL; and two other places will be now errno = EOVERFLOW; -- Andrey A. Chernov http://ache.pp.ru/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Fri Aug 10 14: 0:16 2001 Delivered-To: freebsd-arch@freebsd.org Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [18.24.4.193]) by hub.freebsd.org (Postfix) with ESMTP id BF9D037B409; Fri, 10 Aug 2001 14:00:12 -0700 (PDT) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.11.4/8.11.4) id f7AL03x37506; Fri, 10 Aug 2001 17:00:03 -0400 (EDT) (envelope-from wollman) Date: Fri, 10 Aug 2001 17:00:03 -0400 (EDT) From: Garrett Wollman Message-Id: <200108102100.f7AL03x37506@khavrinen.lcs.mit.edu> To: "Andrey A. Chernov" Cc: arch@FreeBSD.ORG, bugs@FreeBSD.ORG Subject: Re: CFR: fseek<0 + feof error (with fix) In-Reply-To: <20010810234922.A15324@nagual.pp.ru> References: <20010810232939.A14964@nagual.pp.ru> <20010810234922.A15324@nagual.pp.ru> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG < said: > [EOVERFLOW] > [EOVERFLOW] No, [EOVERFLOW] is for Large File Summit support. -GAWollman To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Fri Aug 10 14: 8:40 2001 Delivered-To: freebsd-arch@freebsd.org Received: from nagual.pp.ru (pobrecita.freebsd.ru [194.87.13.42]) by hub.freebsd.org (Postfix) with ESMTP id 23D5237B405; Fri, 10 Aug 2001 14:08:35 -0700 (PDT) (envelope-from ache@nagual.pp.ru) Received: (from ache@localhost) by nagual.pp.ru (8.11.4/8.11.4) id f7AL8Qf16444; Sat, 11 Aug 2001 01:08:27 +0400 (MSD) (envelope-from ache) Date: Sat, 11 Aug 2001 01:08:22 +0400 From: "Andrey A. Chernov" To: Garrett Wollman Cc: arch@FreeBSD.ORG, bugs@FreeBSD.ORG Subject: Re: CFR: fseek<0 + feof error (with fix) Message-ID: <20010811010820.A16395@nagual.pp.ru> References: <20010810232939.A14964@nagual.pp.ru> <20010810234922.A15324@nagual.pp.ru> <200108102100.f7AL03x37506@khavrinen.lcs.mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200108102100.f7AL03x37506@khavrinen.lcs.mit.edu> User-Agent: Mutt/1.3.19i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Fri, Aug 10, 2001 at 17:00:03 -0400, Garrett Wollman wrote: > > No, [EOVERFLOW] is for Large File Summit support. Of course for it too, but it is the other end of the valid range. As it says, "the resulting file offset would be a value which cannot be represented correctly" and it cannot be, because range overflow occurse in the calculation process, not given directly in arguments, as for EINVAL. -- Andrey A. Chernov http://ache.pp.ru/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Fri Aug 10 14:33:13 2001 Delivered-To: freebsd-arch@freebsd.org Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [18.24.4.193]) by hub.freebsd.org (Postfix) with ESMTP id C1F9E37B405; Fri, 10 Aug 2001 14:32:58 -0700 (PDT) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.11.4/8.11.4) id f7ALWqg37835; Fri, 10 Aug 2001 17:32:52 -0400 (EDT) (envelope-from wollman) Date: Fri, 10 Aug 2001 17:32:52 -0400 (EDT) From: Garrett Wollman Message-Id: <200108102132.f7ALWqg37835@khavrinen.lcs.mit.edu> To: "Andrey A. Chernov" Cc: arch@FreeBSD.ORG, bugs@FreeBSD.ORG Subject: Re: CFR: fseek<0 + feof error (with fix) In-Reply-To: <20010811010820.A16395@nagual.pp.ru> References: <20010810232939.A14964@nagual.pp.ru> <20010810234922.A15324@nagual.pp.ru> <200108102100.f7AL03x37506@khavrinen.lcs.mit.edu> <20010811010820.A16395@nagual.pp.ru> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG < said: > As it says, "the resulting file offset would be a value which cannot be > represented correctly" and it cannot be, because range overflow occurse in > the calculation process, not given directly in arguments, as for EINVAL. I do not think your interpretation reflects the intent of the text. Perhaps this question should be raised on the Austin Group list. -GAWollman To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Fri Aug 10 14:33:48 2001 Delivered-To: freebsd-arch@freebsd.org Received: from nagual.pp.ru (pobrecita.freebsd.ru [194.87.13.42]) by hub.freebsd.org (Postfix) with ESMTP id C60F037B406; Fri, 10 Aug 2001 14:33:43 -0700 (PDT) (envelope-from ache@nagual.pp.ru) Received: (from ache@localhost) by nagual.pp.ru (8.11.4/8.11.4) id f7ALXek16840; Sat, 11 Aug 2001 01:33:40 +0400 (MSD) (envelope-from ache) Date: Sat, 11 Aug 2001 01:33:39 +0400 From: "Andrey A. Chernov" To: Garrett Wollman Cc: arch@FreeBSD.ORG, bugs@FreeBSD.ORG Subject: Re: CFR: fseek<0 + feof error (with fix) Message-ID: <20010811013339.A16759@nagual.pp.ru> References: <20010810232939.A14964@nagual.pp.ru> <20010810234922.A15324@nagual.pp.ru> <200108102100.f7AL03x37506@khavrinen.lcs.mit.edu> <20010811010820.A16395@nagual.pp.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20010811010820.A16395@nagual.pp.ru> User-Agent: Mutt/1.3.19i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Sat, Aug 11, 2001 at 01:08:22 +0400, Andrey A. Chernov wrote: > On Fri, Aug 10, 2001 at 17:00:03 -0400, Garrett Wollman wrote: > > > > No, [EOVERFLOW] is for Large File Summit support. > > Of course for it too, but it is the other end of the valid range. > > As it says, "the resulting file offset would be a value which cannot be > represented correctly" and it cannot be, because range overflow occurse in > the calculation process, not given directly in arguments, as for EINVAL. Well, from second thought, it will be better to leave EINVAL there, as in my initial variant. EINVAL describes exact negative offsets while my EOVERFLOW quoute is out of context which speak about ofsset representation fit in long or off_t space. Your interpretation of EOVERFLOW is not so right too, there is E2BIG for this reason in fseek errors descriptions. -- Andrey A. Chernov http://ache.pp.ru/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Fri Aug 10 14:35:27 2001 Delivered-To: freebsd-arch@freebsd.org Received: from nagual.pp.ru (pobrecita.freebsd.ru [194.87.13.42]) by hub.freebsd.org (Postfix) with ESMTP id 38D2F37B406; Fri, 10 Aug 2001 14:35:21 -0700 (PDT) (envelope-from ache@nagual.pp.ru) Received: (from ache@localhost) by nagual.pp.ru (8.11.4/8.11.4) id f7ALZI616871; Sat, 11 Aug 2001 01:35:18 +0400 (MSD) (envelope-from ache) Date: Sat, 11 Aug 2001 01:35:17 +0400 From: "Andrey A. Chernov" To: Garrett Wollman Cc: arch@FreeBSD.ORG, bugs@FreeBSD.ORG Subject: Re: CFR: fseek<0 + feof error (with fix) Message-ID: <20010811013517.B16759@nagual.pp.ru> References: <20010810232939.A14964@nagual.pp.ru> <20010810234922.A15324@nagual.pp.ru> <200108102100.f7AL03x37506@khavrinen.lcs.mit.edu> <20010811010820.A16395@nagual.pp.ru> <200108102132.f7ALWqg37835@khavrinen.lcs.mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200108102132.f7ALWqg37835@khavrinen.lcs.mit.edu> User-Agent: Mutt/1.3.19i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Fri, Aug 10, 2001 at 17:32:52 -0400, Garrett Wollman wrote: > < said: > > > As it says, "the resulting file offset would be a value which cannot be > > represented correctly" and it cannot be, because range overflow occurse in > > the calculation process, not given directly in arguments, as for EINVAL. > > I do not think your interpretation reflects the intent of the text. I agree at this point. See my answer message. > Perhaps this question should be raised on the Austin Group list. Why? EINVAL description is quite clear. -- Andrey A. Chernov http://ache.pp.ru/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message From owner-freebsd-arch Sat Aug 11 13:36:34 2001 Delivered-To: freebsd-arch@freebsd.org Received: from ringworld.nanolink.com (discworld.nanolink.com [217.75.135.248]) by hub.freebsd.org (Postfix) with SMTP id 8E1E637B403 for ; Sat, 11 Aug 2001 13:36:18 -0700 (PDT) (envelope-from roam@ringlet.net) Received: (qmail 691 invoked by uid 1000); 11 Aug 2001 20:34:52 -0000 Date: Sat, 11 Aug 2001 23:34:52 +0300 From: Peter Pentchev To: arch@FreeBSD.org Cc: audit@FreeBSD.org Subject: sysctl_register_oid() breakage at unload [PATCH] Message-ID: <20010811233452.A510@ringworld.oblivion.bg> Mail-Followup-To: arch@FreeBSD.org, audit@FreeBSD.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hi, Well, it seems that I broke things with the panic at attempts to register oid's higher than the first dynamic oid. Specifically, this broke the case of unregistering sysctl's, esp. at module unload. The algorithm described in the sysctl_ctx_free(9) manpage is indeed so very weird (I won't go so far as calling it 'stupid', because I cannot really suggest any way to improve it right now). So, if a sysctl context is freed, most of the time the first pass of freeing will fail, and sysctl_ctx_free() will attempt to reregister the sysctls with the same oid's; this, of course, causes a panic, because sysctl_register_oid() does not like so high a "static" oid :( I just noticed that on my -stable laptop, when I tried to MFC the patch - my sound driver is only available as a module, and the kernel panicked at shutdown after attempting to unload it. For various reasons I cannot run -current on this laptop (not least because this is the machine I'm using for developing an application that is supposed to run under -stable), and my -current box did not really have any need for loadable modules, so that's how this slipped in unnoticed :( So here's a proposed fix: add a "this is actually a re-registering, stay cool" flag to sysctl_register_oid(), and update all the calls to it that I could find under src/sys. This flag needs only be set in sysctl_ctx_free(), all the other callers put a 0. The funniest part is that the original problem that I tried to fix does not really exist under -stable - or at least, it is not all that bad. All dynamic sysctl oid's there are obtained by a search through the parent's subtree for an oid higher than 99, and registering the new one at one bigger. The 99 is still there, so the problem described in PR 29131 still *might* happen, it is just very, very much harder to reproduce. So I do not think that there should be any concern with MFC'ing this before 4.4-RELEASE. G'luck, Peter -- Nostalgia ain't what it used to be. Index: src/sys/kern/kern_linker.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_linker.c,v retrieving revision 1.64 diff -u -r1.64 kern_linker.c --- src/sys/kern/kern_linker.c 2001/07/31 03:51:07 1.64 +++ src/sys/kern/kern_linker.c 2001/08/11 19:29:59 @@ -209,7 +209,7 @@ return; for (oidp = start; oidp < stop; oidp++) - sysctl_register_oid(*oidp); + sysctl_register_oid(*oidp, 0); } static void Index: src/sys/kern/kern_sysctl.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_sysctl.c,v retrieving revision 1.112 diff -u -r1.112 kern_sysctl.c --- src/sys/kern/kern_sysctl.c 2001/07/25 17:21:15 1.112 +++ src/sys/kern/kern_sysctl.c 2001/08/11 19:29:59 @@ -88,7 +88,7 @@ */ void -sysctl_register_oid(struct sysctl_oid *oidp) +sysctl_register_oid(struct sysctl_oid *oidp, int rereg) { struct sysctl_oid_list *parent = oidp->oid_parent; struct sysctl_oid *p; @@ -121,7 +121,7 @@ oidp->oid_number = newoid++; if (newoid == 0x7fffffff) panic("out of oids"); - } else if (oidp->oid_number >= CTL_AUTO_START) { + } else if ((oidp->oid_number >= CTL_AUTO_START) && !rereg) { panic("static sysctl oid too high: %d", oidp->oid_number); } @@ -187,7 +187,7 @@ else e1 = TAILQ_LAST(clist, sysctl_ctx_list); while (e1 != NULL) { - sysctl_register_oid(e1->entry); + sysctl_register_oid(e1->entry, 1); e1 = TAILQ_PREV(e1, sysctl_ctx_list, link); } if (error) @@ -368,7 +368,7 @@ if (clist != NULL) sysctl_ctx_entry_add(clist, oidp); /* Register this oid */ - sysctl_register_oid(oidp); + sysctl_register_oid(oidp, 0); return (oidp); } @@ -383,7 +383,7 @@ struct sysctl_oid **oidp; SET_FOREACH(oidp, sysctl_set) - sysctl_register_oid(*oidp); + sysctl_register_oid(*oidp, 0); } SYSINIT(sysctl, SI_SUB_KMEM, SI_ORDER_ANY, sysctl_register_all, 0); Index: src/sys/kern/vfs_init.c =================================================================== RCS file: /home/ncvs/src/sys/kern/vfs_init.c,v retrieving revision 1.55 diff -u -r1.55 vfs_init.c --- src/sys/kern/vfs_init.c 2001/04/29 02:44:49 1.55 +++ src/sys/kern/vfs_init.c 2001/08/11 19:29:59 @@ -335,7 +335,7 @@ if (strcmp(oidp->oid_name, vfc->vfc_name) == 0) { sysctl_unregister_oid(oidp); oidp->oid_number = vfc->vfc_typenum; - sysctl_register_oid(oidp); + sysctl_register_oid(oidp, 0); } /* Index: src/sys/sys/sysctl.h =================================================================== RCS file: /home/ncvs/src/sys/sys/sysctl.h,v retrieving revision 1.98 diff -u -r1.98 sysctl.h --- src/sys/sys/sysctl.h 2001/07/25 17:21:18 1.98 +++ src/sys/sys/sysctl.h 2001/08/11 19:29:59 @@ -153,7 +153,7 @@ /* * These functions are used to add/remove an oid from the mib. */ -void sysctl_register_oid(struct sysctl_oid *oidp); +void sysctl_register_oid(struct sysctl_oid *oidp, int); void sysctl_unregister_oid(struct sysctl_oid *oidp); /* Declare a static oid to allow child oids to be added to it. */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message