...
 
Commits (634)
*.o
bind
doc/html
.deps
Makefile
autom4te.cache
client/dhclient
client/tests/
common/tests/alloc_unittest
common/tests/dns_unittest
common/tests/misc_unittest
config.log
config.report
config.status
dhcpctl/cltest
dhcpctl/omshell
doc/devel/doxyfile
dst/libdst.a
includes/.dhcpd.h.swp
includes/stamp-h1
omapip/svtest
relay/dhcrelay
server/dhcpd
server/tests/dhcpd_unittests
server/tests/hash_unittests
server/tests/legacy_unittests
server/tests/leaseq_unittests
server/tests/load_bal_unittests
server/tests/test-suite.log
tests/libt_api.a
minires/libres.a
common/tests/ns_name_unittest
tests/unittest.sh
# Copyright (c) 2004-2008 by Internet Systems Consortium, Inc. ("ISC")
# Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
# Copyright (c) 1995-2003 by Internet Software Consortium
#
# Permission to use, copy, modify, and distribute this software for any
......@@ -17,4 +17,7 @@
# 950 Charter Street
# Redwood City, CA 94063
# <info@isc.org>
# http://www.isc.org/
# https://www.isc.org/
See the specific source files for any additional copyright or
license statements.
......@@ -15,7 +15,13 @@ EXTRA_DIST = RELNOTES LICENSE \
doc/References.txt doc/References.xml doc/api+protocol \
doc/ja_JP.eucJP/dhclient-script.8 doc/ja_JP.eucJP/dhclient.8 \
doc/ja_JP.eucJP/dhclient.conf.5 doc/ja_JP.eucJP/dhclient.leases.5 \
doc/ja_JP.eucJP/dhcp-eval.5 doc/ja_JP.eucJP/dhcp-options.5
doc/ja_JP.eucJP/dhcp-eval.5 doc/ja_JP.eucJP/dhcp-options.5 \
doc/examples/dhclient-dhcpv6.conf doc/examples/dhcpd-dhcpv6.conf
doc/examples/dhclient-dhcpv6.conf doc/examples/dhcpd-dhcpv6.conf \
doc/devel/arch.dox doc/devel/atf.dox doc/devel/contrib.dox \
doc/devel/debug.dox doc/devel/isc-logo.jpg doc/devel/mainpage.dox \
doc/devel/omapi.dox doc/devel/qa.dox \
common/tests/Atffile server/tests/Atffile
SUBDIRS = includes tests common minires dst omapip client dhcpctl relay server
......
This diff is collapsed.
Internet Systems Consortium DHCP Distribution
Version 4.1.0
5 December 2008
Internet Systems Consortium DHCP Distribution
Version 4.1-ESV-R15
31 July 2017
README FILE
README FILE
You should read this file carefully before trying to install or use
the ISC DHCP Distribution.
......@@ -33,10 +33,14 @@ the ISC DHCP Distribution.
5.6 FreeBSD
5.7 NeXTSTEP
5.8 SOLARIS
5.8.1 Solaris 11
5.8.2 Solaris 11 and ATF
5.8.3 Other Solaris Items
5.9 AIX
5.10 MacOS X
6 SUPPORT
6.1 HOW TO REPORT BUGS
7 HISTORY
WHERE TO FIND DOCUMENTATION
......@@ -55,8 +59,8 @@ DHCP server documentation is in the dhcpd man page. Information about
the DHCP server lease database is in the dhcpd.leases man page.
Server configuration documentation is in the dhcpd.conf man page as
well as the dhcp-options man page. A sample DHCP server
configuration is in the file server/dhcpd.conf. The source for the
dhcpd, dhcpd.leases and dhcpd.conf man pages is in the server/ sub-
configuration is in the file server/dhcpd.conf.example. The source for
the dhcpd, dhcpd.leases and dhcpd.conf man pages is in the server/ sub-
directory in the distribution. The source for the dhcp-options.5
man page is in the common/ subdirectory.
......@@ -94,8 +98,12 @@ directory, it may not have up-to-date information).
RELEASE STATUS
This is ISC DHCP 4.1.0, which adds new DHCPv6 features omitted from
ISC DHCP 4.0.0.
This is ISC DHCP 4.1-ESV-R15, an extended support (ESV) release that
provides patches for several bugs.
ESVs are intended for users who have longer upgrade constraints
Please see our web page http://www.isc.org/downloads/software-support-policy/
for more information on ESVs
In this release, the DHCPv6 server should be fully functional on Linux,
Solaris, or any BSD. The DHCPv6 client should be similarly functional
......@@ -131,12 +139,12 @@ information. On Digital Unix, type ``man pfilt''.
To build the DHCP Distribution, unpack the compressed tar file using
the tar utility and the gzip command - type something like:
gunzip dhcp-4.1.0.tar.gz
tar xvf dhcp-4.1.0.tar
gunzip dhcp-4.1-ESV-R15.tar.gz
tar xvf dhcp-4.1-ESV-R15.tar
CONFIGURING IT
Now, cd to the dhcp-4.1.0 subdirectory that you've just created and
Now, cd to the dhcp-4.1-ESV-R15 subdirectory that you've just created and
configure the source tree by typing:
./configure
......@@ -147,6 +155,11 @@ system; otherwise, it will complain. If it can't figure out what
system you are using, that system is not supported - you are on
your own.
Several options may be enabled or disabled via the configure command.
You can get a list of these by typing:
./configure --help
DYNAMIC DNS UPDATES
A fully-featured implementation of dynamic DNS updates is included in
......@@ -262,7 +275,7 @@ we completely bypass the Linux IP stack, but on old versions of Linux
DHCP clients connected to the same network as the ISC DHCP server or
ISC relay agent will not see messages from the DHCP server. It *is*
possible to run into trouble with this on Linux 2.2 and later if you
are running a verson of the DHCP server that was compiled on a Linux
are running a version of the DHCP server that was compiled on a Linux
2.0 system, though.
It is possible to work around this problem on some versions of Linux
......@@ -407,6 +420,51 @@ must install this extension in order to get dhcpd or dhclient to work.
SOLARIS
Solaris 11
We have integrated a patch from Oracle to use sockets instead of
DLPI on Solaris 11. This functionality was written for use with
Solaris Studio 12.2 and requires the system/header package.
By default this code is disabled in order to minimize disruptions
for current users. In order to enable this code you will need to
enable both USE_SOCKETS and USE_V4_PKTINFO as part of the
configuration step. The command line would be something like:
./configure --enable-use-sockets --enable-ipv4-pktinfo
Solaris 11 and ATF
We have reports that ATF 0.15 and 0.16 do not build on Solaris 11. The
following changes to the ATF source code appear to fix this issue:
diff -ru atf-0.15/atf-c/tp_test.c atf-0.15-patched/atf-c/tp_test.c
--- atf-0.15/atf-c/tp_test.c 2011-12-06 06:31:11.000000000 +0100
+++ atf-0.15-patched/atf-c/tp_test.c 2012-06-19 15:54:57.000000000 +0200
@@ -28,6 +28,7 @@
*/
#include <string.h>
+#include <stdio.h>
#include <unistd.h>
#include <atf-c.h>
diff -ru atf-0.15/atf-run/requirements.cpp atf-0.15-patched/atf-run/requirements.cpp
--- atf-0.15/atf-run/requirements.cpp 2012-01-13 20:44:25.000000000 +0100
+++ atf-0.15-patched/atf-run/requirements.cpp 2012-06-19 15:41:51.000000000 +0200
@@ -29,7 +29,7 @@
extern "C" {
#include <sys/param.h>
-#include <sys/sysctl.h>
+//#include <sys/sysctl.h>
}
#include <cerrno>
Other Solaris Items
One problem which has been observed and is not fixed in this
patchlevel has to do with using DLPI on Solaris machines. The symptom
of this problem is that the DHCP server never receives any requests.
......@@ -449,10 +507,26 @@ server and relay will work only on a single interface. (They do work
on multi-interface machines if configured to listen on only one of the
interfaces.)
We have reports of Windows XP clients having difficulty retrieving
addresses from a server running on an AIX machine. This issue
was traced to the client requiring messages be sent to the all ones
broadcast address (255.255.255.255) while the AIX server was sending
to 192.168.0.255.
You may be able to solve this by including a relay between the client
and server with the relay configured to use a broadcast of all-ones.
A second option that worked for AIX 5.1 but doesn't seem to work for
AIX 5.3 was to:
create a host file entry for all-ones (255.255.255.255)
and then add a route:
route add -host all-ones -interface <local-ip-address>
The ISC DHCP distribution does not include a dhclient-script for AIX--
AIX comes with a DHCP client. Contribution of a working dhclient-script
for AIX would be welcome.
MacOS X
The MacOS X system uses a TCP/IP stack derived from FreeBSD with a
......@@ -462,20 +536,23 @@ this text is only about the DHCPv6 client (``dhclient -6 ...''). The DNS
configuration (domain search list and name servers' addresses) is managed
by a System Configuration agent, not by /etc/resolv.conf (which is a link
to /var/run/resolv.conf, which itself only reflects the internal state;
the System Configuration agent's Dynamic Store).
the System Configuration framework's Dynamic Store).
This means that modifying resolv.conf directly doesn't have the
intended effect, instead the macos script sample creates its own
resolv.conf.dhclient6 in /var/run, and inserts the contents of this
file into the Dynamic Store.
This means that modifying resolv.conf directly doesn't have the intended
effect, so the macos script sample uses its own resolv.conf.dhclient6 in
/var/run, and inserts the contents of this file into the System
Configuration agent. Because the System Configuration agent expects the
prefix along with the configured address, and a default router, this is
not usable (the DHCPv6 protocol does not today deliver this information).
Instead, ifconfig is directly used for address configuration.
When updating the address configuration the System Configuration
framework expects the prefix and a default router along with the
configured address. As this extra information is not available via
the DHCPv6 protocol the System Configuration framework isn't usable
for address configuration, instead ifconfig is used directly.
Note the Dynamic Store (from which /var/run/resolv.conf is built) is
recomputed from scratch when the current location/set is changed, for
instance when a laptop is resumed from sleep. In this case running the
dhclient-script could reinstall the resolv.conf.dhclient6 configuration.
recomputed from scratch when the current location/set is changed.
Running the dhclient-script reinstalls the resolv.conf.dhclient6
configuration.
SUPPORT
......@@ -485,7 +562,7 @@ sponsors. ISC now also offers commercial quality support contracts for
ISC DHCP, more information about ISC Support Contracts can be found at
the following URL:
http://www.isc.org/sw/support/
https://www.isc.org/services/support/
Please understand that we may not respond to support inquiries unless
you have a support contract. ISC will continue its practice of always
......@@ -589,6 +666,22 @@ bug reports are more likely to get handled more quickly overall.
This assumes that it's the dhcp server you're debugging, and
that the core file is in dhcpd.core.
Please see http://www.isc.org/sw/dhcp/ for details on how to subscribe
Please see https://www.isc.org/software/dhcp/ for details on how to subscribe
to the ISC DHCP mailing lists.
HISTORY
ISC DHCP was originally written by Ted Lemon under a contract with
Vixie Labs with the goal of being a complete reference implementation
of the DHCP protocol. Funding for this project was provided by
Internet Systems Consortium. The first release of the ISC DHCP
distribution in December 1997 included just the DHCP server.
Release 2 in June 1999 added a DHCP client and a BOOTP/DHCP relay
agent. DHCP 3 was released in October 2001 and included DHCP failover
support, OMAPI, Dynamic DNS, conditional behaviour, client classing,
and more. Version 3 of the DHCP server was funded by Nominum, Inc.
The 4.0 release in December 2007 introduced DHCPv6 protocol support
for the server and client.
This product includes cryptographic software written
by Eric Young (eay@cryptsoft.com).
This diff is collapsed.
This diff is collapsed.
dist_sysconf_DATA = dhclient.conf
dist_sysconf_DATA = dhclient.conf.example
sbin_PROGRAMS = dhclient
dhclient_SOURCES = clparse.c dhclient.c dhc6.c \
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
......@@ -10,9 +10,9 @@ man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
EXTRA_DIST = $(man_MANS)
dhclient.o: dhclient.c
$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
-DLOCALSTATEDIR='"$(localstatedir)"' -c dhclient.c
dhc6.o: dhc6.c
$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
-DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
.\" dhclient-script.8
.\"
.\" Copyright (c) 2012,2014,2016 by Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (c) 2009-2010 by Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (c) 2004-2005 by Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (c) 1996-2003 by Internet Software Consortium
.\"
......@@ -19,16 +21,12 @@
.\" 950 Charter Street
.\" Redwood City, CA 94063
.\" <info@isc.org>
.\" http://www.isc.org/
.\" https://www.isc.org/
.\"
.\" This software has been written for Internet Systems Consortium
.\" by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
.\" To learn more about Internet Systems Consortium, see
.\" ``http://www.isc.org/''. To learn more about Vixie Enterprises,
.\" see ``http://www.vix.com''. To learn more about Nominum, Inc., see
.\" ``http://www.nominum.com''.
.\" Support and other services are available for ISC products - see
.\" https://www.isc.org for more information or to learn more about ISC.
.\"
.\" $Id: dhclient-script.8,v 1.11 2006/02/24 23:16:27 dhankins Exp $
.\" $Id: dhclient-script.8,v 1.11.762.3 2010/07/02 23:37:06 sar Exp $
.\"
.TH dhclient-script 8
.SH NAME
......@@ -70,7 +68,7 @@ On after defining the make_resolv_conf function, the client script checks
for the presence of an executable
.B ETCDIR/dhclient-enter-hooks
script, and if present, it invokes the script inline, using the Bourne
shell '.' command. The entire environment documented under OPERATION
shell \'.\' command. The entire environment documented under OPERATION
is available to this script, which may modify the environment if needed
to change the behaviour of the script. If an error occurs during the
execution of the script, it can set the exit_status variable to a nonzero
......@@ -82,7 +80,7 @@ After all processing has completed,
.B CLIENTBINDIR/dhclient-script
checks for the presence of an executable
.B ETCDIR/dhclient-exit-hooks
script, which if present is invoked using the '.' command. The exit
script, which if present is invoked using the \'.\' command. The exit
status of dhclient-script will be passed to dhclient-exit-hooks in the
exit_status shell variable, and will always be zero if the script
succeeded at the task for which it was invoked. The rest of the
......@@ -122,10 +120,18 @@ The DHCP client has done an initial binding to a new address. The
new ip address is passed in $new_ip_address, and the interface name is
passed in $interface. The media type is passed in $medium. Any
options acquired from the server are passed using the option name
described in \fBdhcp-options\fR, except that dashes ('-') are replaced
by underscores ('_') in order to make valid shell variables, and the
described in \fBdhcp-options\fR, except that dashes (\'-\') are replaced
by underscores (\'_\') in order to make valid shell variables, and the
variable names start with new_. So for example, the new subnet mask
would be passed in $new_subnet_mask.
would be passed in $new_subnet_mask. Options from a non-default
universe will have the universe name prepended to the option name, for
example new_dhcp6_server_id. The options that the client
explicitly requested via a PRL or ORO option are passed with the same
option name as above but prepended with requested_ and with a value of 1,
for example requested_subnet_mask=1. No such variable is defined for
options not requested by the client or options that don't require a
request option, such as the ip address (*_ip_address) or expiration
time (*_expiry).
.PP
Before actually configuring the address, dhclient-script should
somehow ARP for it and exit with a nonzero status if it receives a
......@@ -152,13 +158,13 @@ address not be used if it is identical to the bound IP address
in this case.
.SH RENEW
When a binding has been renewed, the script is called as in BOUND,
except that in addition to all the variables starting with $new_,
there is another set of variables starting with $old_. Persistent
settings that may have changed need to be deleted - for example, if a
local route to the bound address is being configured, the old local
route should be deleted. If the default route has changed, the old default
route should be deleted. If the static routes have changed, the old
ones should be deleted. Otherwise, processing can be done as with
except that in addition to all the variables starting with $new_, and
$requested_ there is another set of variables starting with $old_.
Persistent settings that may have changed need to be deleted - for
example, if a local route to the bound address is being configured,
the old local route should be deleted. If the default route has changed,
the old default route should be deleted. If the static routes have changed,
the old ones should be deleted. Otherwise, processing can be done as with
BOUND.
.SH REBIND
The DHCP client has rebound to a new DHCP server. This can be handled
......@@ -224,11 +230,6 @@ dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and
dhclient.leases(5).
.SH AUTHOR
.B dhclient-script(8)
has been written for Internet Systems Consortium
by Ted Lemon in cooperation with Vixie
Enterprises. To learn more about Internet Systems Consortium,
To learn more about Internet Systems Consortium,
see
.B http://www.isc.org.
To learn more about Vixie
Enterprises, see
.B http://www.vix.com.
.B https://www.isc.org.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
send host-name "andare.fugue.com";
send host-name "andare.example.com";
send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
send dhcp-lease-time 3600;
supersede domain-name "fugue.com home.vix.com";
supersede domain-search "example.com", "isc.org";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name;
......@@ -25,7 +25,7 @@ lease {
interface "ep0";
fixed-address 192.33.137.200;
medium "link0 link1";
option host-name "andare.swiftmedia.com";
option host-name "andare.example.com";
option subnet-mask 255.255.255.0;
option broadcast-address 192.33.137.255;
option routers 192.33.137.250;
......
.\" $Id: dhclient.leases.5,v 1.4 2005/03/17 20:14:56 dhankins Exp $
.\" $Id: dhclient.leases.5,v 1.4.786.3 2010/07/02 23:37:06 sar Exp $
.\"
.\" Copyright (c) 2009-2010 by Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (c) 1997-2003 by Internet Software Consortium
.\"
......@@ -19,15 +20,12 @@
.\" 950 Charter Street
.\" Redwood City, CA 94063
.\" <info@isc.org>
.\" http://www.isc.org/
.\" https://www.isc.org/
.\"
.\" This software has been written for Internet Systems Consortium
.\" by Ted Lemon in cooperation with Vixie
.\" Enterprises. To learn more about Internet Systems Consortium,
.\" see ``http://www.isc.org/isc''. To learn more about Vixie
.\" Enterprises, see ``http://www.vix.com''.
.\" Support and other services are available for ISC products - see
.\" https://www.isc.org for more information or to learn more about ISC.
.\"
.\" $Id: dhclient.leases.5,v 1.4 2005/03/17 20:14:56 dhankins Exp $
.\" $Id: dhclient.leases.5,v 1.4.786.3 2010/07/02 23:37:06 sar Exp $
.\"
.TH dhclient.leases 5
.SH NAME
......@@ -49,8 +47,5 @@ dhclient(8), dhcp-options(5), dhclient.conf(5), dhcpd(8),
dhcpd.conf(5), RFC2132, RFC2131.
.SH AUTHOR
.B dhclient(8)
was written by Ted Lemon
under a contract with Vixie Labs. Funding
for this project was provided by Internet Systems Consortium.
Information about Internet Systems Consortium can be found at
.B http://www.isc.org.
.B https://www.isc.org.
......@@ -24,7 +24,14 @@ make_resolv_conf() {
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
fi
for nameserver in ${new_dhcp6_name_servers} ; do
echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
# If the nameserver has a link-local address
# add a <zone_id> (interface name) to it.
case $nameserver in
fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";;
*) zone_id="";;
esac
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
done
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
......@@ -72,6 +79,12 @@ fi
if [ x$alias_subnet_mask != x ]; then
alias_subnet_arg="netmask $alias_subnet_mask"
fi
if [ x$new_interface_mtu != x ]; then
mtu_arg="mtu $new_interface_mtu"
fi
if [ x$IF_METRIC != x ]; then
metric_arg="metric $IF_METRIC"
fi
if [ x$reason = xMEDIUM ]; then
eval "ifconfig $interface $medium"
......@@ -133,7 +146,7 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
eval "ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium"
$new_broadcast_arg $mtu_arg $metric_arg $medium"
route add $new_ip_address 127.1 >/dev/null 2>&1
for router in $new_routers; do
route add default $router >/dev/null 2>&1
......@@ -145,6 +158,19 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
shift; shift
done
fi
else
# we haven't changed the address, have we changed other options
# that we wish to update?
if [ x$new_routers != x ] && [ x$new_routers != x$old_routers ] ; then
# if we've changed routers delete the old and add the new.
$LOGGER "New Routers: $new_routers"
for router in $old_routers; do
route delete default $router >/dev/null 2>&1
done
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
fi
fi
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
then
......@@ -190,7 +216,7 @@ if [ x$reason = xTIMEOUT ]; then
route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1
fi
eval "ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium"
$new_broadcast_arg $mtu_arg $metric_arg $medium"
sleep 1
if [ "$new_routers" != "" ]; then
set $new_routers
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -33,9 +33,9 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
fi
if [ x"$new_domain_name_servers" != x ]; then
cat /dev/null > /etc/resolv.conf.dhclient
if [ "x$new_domain_search != x ]; then
if [ "x$new_domain_search" != x ]; then
echo search $new_domain_search >> /etc/resolv.conf.dhclient
elif [ "x$new_domain_name != x ]; then
elif [ "x$new_domain_name" != x ]; then
# Note that the DHCP 'Domain Name Option' is really just a domain
# name, and that this practice of using the domain name option as
# a search path is both nonstandard and deprecated.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.