summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInternet Software Consortium, Inc <@isc.org>2014-02-11 09:00:42 -0700
committerInternet Software Consortium, Inc <@isc.org>2014-02-11 09:00:42 -0700
commit8af21b710f34092dcd08abdc13e7971553b616d2 (patch)
treef88f42a2ea6576f512958360ee049636e18046b0
parent892b23e1710e6770b12c3aa952eb2cdc9ab4bc1b (diff)
downloadbind9-8af21b710f34092dcd08abdc13e7971553b616d2.tar.gz
9.9.5rc1
-rw-r--r--CHANGES43
-rw-r--r--COPYRIGHT2
-rw-r--r--Makefile.in5
-rw-r--r--README4
-rw-r--r--bin/check/named-checkconf.814
-rw-r--r--bin/check/named-checkconf.c16
-rw-r--r--bin/check/named-checkconf.docbook19
-rw-r--r--bin/check/named-checkconf.html24
-rw-r--r--bin/confgen/ddns-confgen.c4
-rw-r--r--bin/confgen/rndc-confgen.c4
-rw-r--r--bin/dig/dighost.c17
-rw-r--r--bin/dig/include/dig/dig.h3
-rw-r--r--bin/dnssec/dnssec-signzone.c6
-rw-r--r--bin/dnssec/dnssectool.c8
-rw-r--r--bin/named/bind9.ver3.xsl1110
-rw-r--r--bin/named/bind9.ver3.xsl.h245
-rw-r--r--bin/named/builtin.c14
-rw-r--r--bin/named/config.c14
-rw-r--r--bin/named/controlconf.c12
-rw-r--r--bin/named/lwaddr.c10
-rw-r--r--bin/named/lwdgnba.c6
-rw-r--r--bin/named/lwdgrbn.c10
-rw-r--r--bin/named/named.conf.56
-rw-r--r--bin/named/named.conf.docbook5
-rw-r--r--bin/named/named.conf.html26
-rw-r--r--bin/named/query.c25
-rw-r--r--bin/named/server.c4
-rw-r--r--bin/named/statschannel.c76
-rw-r--r--bin/named/zoneconf.c8
-rw-r--r--bin/nsupdate/nsupdate.c13
-rw-r--r--bin/pkcs11/openssl-1.0.0l-patch (renamed from bin/pkcs11/openssl-1.0.0k-patch)38
-rw-r--r--bin/pkcs11/openssl-1.0.1f-patch (renamed from bin/pkcs11/openssl-1.0.1e-patch)44
-rw-r--r--bin/rndc/rndc.c6
-rw-r--r--bin/tests/hash_test.c48
-rw-r--r--bin/tests/names/t_names.c4
-rw-r--r--bin/tests/rdata_test.c4
-rw-r--r--bin/tests/system/checkconf/clean.sh3
-rw-r--r--bin/tests/system/checkconf/good.conf6
-rw-r--r--bin/tests/system/checkconf/tests.sh28
-rw-r--r--bin/tests/system/checkconf/warn-keydir.conf28
-rw-r--r--bin/tests/system/dlvauto/tests.sh4
-rw-r--r--bin/tests/system/dnssec/ns2/example.db.in6
-rw-r--r--bin/tests/system/dnssec/ns2/insecure.secure.example.db8
-rw-r--r--bin/tests/system/dnssec/ns3/secure.example.db.in12
-rw-r--r--bin/tests/system/dnssec/ns4/named4.conf83
-rw-r--r--bin/tests/system/dnssec/tests.sh16
-rw-r--r--bin/tests/system/ixfr/clean.sh3
-rw-r--r--bin/tests/system/ixfr/ns3/named.conf48
-rw-r--r--bin/tests/system/ixfr/setup.sh4
-rw-r--r--bin/tests/system/ixfr/tests.sh13
-rw-r--r--bin/tests/system/resolver/clean.sh2
-rw-r--r--bin/tests/system/resolver/ns7/named1.conf (renamed from bin/tests/system/resolver/ns7/named.conf)13
-rw-r--r--bin/tests/system/resolver/ns7/named2.conf46
-rw-r--r--bin/tests/system/resolver/setup.sh3
-rwxr-xr-xbin/tests/system/resolver/tests.sh18
-rwxr-xr-xconfigure11
-rw-r--r--configure.in6
-rw-r--r--doc/arm/Bv9ARM.pdf2660
-rw-r--r--doc/arm/man.arpaname.html6
-rw-r--r--doc/arm/man.ddns-confgen.html8
-rw-r--r--doc/arm/man.genrandom.html8
-rw-r--r--doc/arm/man.isc-hmac-fixup.html8
-rw-r--r--doc/arm/man.named-checkconf.html22
-rw-r--r--doc/arm/man.named-checkzone.html10
-rw-r--r--doc/arm/man.named-journalprint.html6
-rw-r--r--doc/arm/man.named.html14
-rw-r--r--doc/arm/man.nsec3hash.html8
-rw-r--r--doc/arm/man.nsupdate.html12
-rw-r--r--doc/arm/man.rndc-confgen.html10
-rw-r--r--doc/arm/man.rndc.conf.html10
-rw-r--r--doc/arm/man.rndc.html12
-rw-r--r--lib/bind9/api2
-rw-r--r--lib/bind9/check.c34
-rw-r--r--lib/dns/acl.c6
-rw-r--r--lib/dns/adb.c6
-rw-r--r--lib/dns/api2
-rw-r--r--lib/dns/diff.c6
-rw-r--r--lib/dns/dispatch.c30
-rw-r--r--lib/dns/dns64.c16
-rw-r--r--lib/dns/dnssec.c14
-rw-r--r--lib/dns/gssapi_link.c4
-rw-r--r--lib/dns/hmac_link.c32
-rw-r--r--lib/dns/journal.c8
-rw-r--r--lib/dns/keydata.c6
-rw-r--r--lib/dns/masterdump.c10
-rw-r--r--lib/dns/message.c8
-rw-r--r--lib/dns/name.c38
-rw-r--r--lib/dns/nsec.c4
-rw-r--r--lib/dns/nsec3.c20
-rw-r--r--lib/dns/opensslecdsa_link.c6
-rw-r--r--lib/dns/opensslgost_link.c8
-rw-r--r--lib/dns/opensslrsa_link.c4
-rw-r--r--lib/dns/portlist.c14
-rw-r--r--lib/dns/rbt.c8
-rw-r--r--lib/dns/rbtdb.c29
-rw-r--r--lib/dns/rcode.c4
-rw-r--r--lib/dns/rdata.c16
-rw-r--r--lib/dns/rdata/ch_3/a_1.c6
-rw-r--r--lib/dns/rdata/generic/afsdb_18.c6
-rw-r--r--lib/dns/rdata/generic/eui48_108.c4
-rw-r--r--lib/dns/rdata/generic/eui64_109.c4
-rw-r--r--lib/dns/rdata/generic/ipseckey_45.c8
-rw-r--r--lib/dns/rdata/generic/l32_105.c4
-rw-r--r--lib/dns/rdata/generic/l64_106.c4
-rw-r--r--lib/dns/rdata/generic/nid_104.c4
-rw-r--r--lib/dns/rdata/generic/opt_41.c4
-rw-r--r--lib/dns/rdata/generic/rt_21.c6
-rw-r--r--lib/dns/rdata/generic/soa_6.c6
-rw-r--r--lib/dns/rdata/generic/spf_99.c4
-rw-r--r--lib/dns/rdata/generic/txt_16.c4
-rw-r--r--lib/dns/rdata/hs_4/a_1.c8
-rw-r--r--lib/dns/rdata/in_1/a6_38.c6
-rw-r--r--lib/dns/rdata/in_1/a_1.c8
-rw-r--r--lib/dns/rdata/in_1/aaaa_28.c10
-rw-r--r--lib/dns/rdata/in_1/apl_42.c6
-rw-r--r--lib/dns/rdata/in_1/wks_11.c6
-rw-r--r--lib/dns/rdataslab.c14
-rw-r--r--lib/dns/resolver.c26
-rw-r--r--lib/dns/rpz.c4
-rw-r--r--lib/dns/rrl.c10
-rw-r--r--lib/dns/spnego.c12
-rw-r--r--lib/dns/ssu.c4
-rw-r--r--lib/dns/tests/Makefile.in44
-rw-r--r--lib/dns/tests/db_test.c86
-rw-r--r--lib/dns/time.c4
-rw-r--r--lib/dns/tkey.c12
-rw-r--r--lib/dns/tsig.c18
-rw-r--r--lib/dns/ttl.c4
-rw-r--r--lib/dns/zone.c8
-rw-r--r--lib/export/samples/nsprobe.c4
-rw-r--r--lib/export/samples/sample-request.c4
-rw-r--r--lib/export/samples/sample-update.c6
-rw-r--r--lib/export/samples/sample.c4
-rw-r--r--lib/irs/api2
-rw-r--r--lib/irs/getaddrinfo.c18
-rw-r--r--lib/irs/resconf.c12
-rw-r--r--lib/isc/api4
-rw-r--r--lib/isc/base32.c6
-rw-r--r--lib/isc/base64.c6
-rw-r--r--lib/isc/buffer.c6
-rw-r--r--lib/isc/hash.c8
-rw-r--r--lib/isc/heap.c6
-rw-r--r--lib/isc/hex.c6
-rw-r--r--lib/isc/hmacmd5.c4
-rw-r--r--lib/isc/hmacsha.c32
-rw-r--r--lib/isc/httpd.c122
-rw-r--r--lib/isc/include/isc/buffer.h6
-rw-r--r--lib/isc/include/isc/httpd.h24
-rw-r--r--lib/isc/include/isc/platform.h.in7
-rw-r--r--lib/isc/include/isc/radix.h6
-rw-r--r--lib/isc/include/isc/string.h9
-rw-r--r--lib/isc/include/isc/types.h4
-rw-r--r--lib/isc/inet_pton.c6
-rw-r--r--lib/isc/lex.c8
-rw-r--r--lib/isc/log.c4
-rw-r--r--lib/isc/md5.c12
-rw-r--r--lib/isc/mem.c10
-rw-r--r--lib/isc/netaddr.c8
-rw-r--r--lib/isc/radix.c6
-rw-r--r--lib/isc/sha1.c8
-rw-r--r--lib/isc/sha2.c40
-rw-r--r--lib/isc/sockaddr.c6
-rw-r--r--lib/isc/stats.c6
-rw-r--r--lib/isc/string.c58
-rw-r--r--lib/isc/tests/Makefile.in12
-rw-r--r--lib/isc/tests/hash_test.c14
-rw-r--r--lib/isc/tests/time_test.c51
-rw-r--r--lib/isc/unix/file.c4
-rw-r--r--lib/isc/unix/ifiter_getifaddrs.c4
-rw-r--r--lib/isc/unix/ifiter_ioctl.c20
-rw-r--r--lib/isc/unix/ifiter_sysctl.c10
-rw-r--r--lib/isc/unix/include/isc/time.h12
-rw-r--r--lib/isc/unix/interfaceiter.c18
-rw-r--r--lib/isc/unix/socket.c26
-rw-r--r--lib/isc/unix/time.c46
-rw-r--r--lib/isc/win32/include/isc/platform.h.in8
-rw-r--r--lib/isc/win32/include/isc/time.h52
-rw-r--r--lib/isc/win32/interfaceiter.c18
-rw-r--r--lib/isc/win32/libisc.def.in4
-rw-r--r--lib/isc/win32/socket.c23
-rw-r--r--lib/isc/win32/strptime.c392
-rw-r--r--lib/isc/win32/time.c70
-rw-r--r--lib/isccc/api2
-rw-r--r--lib/isccc/include/isccc/util.h38
-rw-r--r--lib/isccc/sexpr.c6
-rw-r--r--lib/isccfg/api6
-rw-r--r--lib/isccfg/include/isccfg/cfg.h12
-rw-r--r--lib/isccfg/include/isccfg/grammar.h7
-rw-r--r--lib/isccfg/namedconf.c6
-rw-r--r--lib/isccfg/parser.c54
-rw-r--r--lib/isccfg/win32/libisccfg.def1
-rw-r--r--lib/lwres/api2
-rw-r--r--lib/lwres/context.c14
-rw-r--r--lib/lwres/getaddrinfo.c18
-rw-r--r--lib/lwres/gethost.c4
-rw-r--r--lib/lwres/getipnode.c70
-rw-r--r--lib/lwres/getrrset.c10
-rw-r--r--lib/lwres/lwbuffer.c38
-rw-r--r--lib/lwres/lwconfig.c8
-rw-r--r--lib/lwres/lwinetpton.c6
-rw-r--r--lib/lwres/lwresutil.c46
-rw-r--r--srcid2
-rw-r--r--version2
-rw-r--r--win32utils/Configure8
-rw-r--r--win32utils/build.txt14
205 files changed, 4479 insertions, 2898 deletions
diff --git a/CHANGES b/CHANGES
index 78e3ae60..fc36de2b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,46 @@
+ --- 9.9.5rc1 released ---
+
+3701. [func] named-checkconf can now obscure shared secrets
+ when printing by specifying '-x'. [RT #34465]
+
+3699. [bug] Improvements to statistics channel XSL stylesheet:
+ the stylesheet can now be cached by the browser;
+ section headers are omitted from the stats display
+ when there is no data in those sections to be
+ displayed; counters are now right-justified for
+ easier readability. (Only available with
+ configure --enable-newstats.) [RT #35117]
+
+3698. [cleanup] Replaced all uses of memcpy() with memmove().
+ [RT #35120]
+
+3697. [bug] Handle "." as a search list element when IDN support
+ is enabled. [RT #35133]
+
+3696. [bug] dig failed to handle AXFR style IXFR responses which
+ span multiple messages. [RT #35137]
+
+3695. [bug] Address a possible race in dispatch.c. [RT #35107]
+
+3694. [bug] Warn when a key-directory is configured for a zone,
+ but does not exist or is not a directory. [RT #35108]
+
+3693. [security] memcpy was incorrectly called with overlapping
+ ranges resulting in malformed names being generated
+ on some platforms. This could cause INSIST failures
+ when serving NSEC3 signed zones. [RT #35120]
+
+3692. [bug] Two calls to dns_db_getoriginnode were fatal if there
+ was no data at the node. [RT #35080]
+
+3690. [bug] Iterative responses could be missed when the source
+ port for an upstream query was the same as the
+ listener port (53). [RT #34925]
+
+3689. [bug] Fixed a bug causing an insecure delegation from one
+ static-stub zone to another to fail with a broken
+ trust chain. [RT #35081]
+
--- 9.9.5b1 released ---
3688. [bug] loadnode could return a freed node on out of memory.
diff --git a/COPYRIGHT b/COPYRIGHT
index 525c2228..e69ebd3c 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,4 +1,4 @@
-Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 1996-2003 Internet Software Consortium.
Permission to use, copy, modify, and/or distribute this software for any
diff --git a/Makefile.in b/Makefile.in
index 5bde3dfd..2c5985f8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -90,5 +90,8 @@ FAQ: FAQ.xml
LC_ALL=C ${W3M} -T text/html -dump -cols 72 >$@.tmp
mv $@.tmp $@
+unit::
+ sh ${top_srcdir}/unit/unittest.sh
+
clean::
rm -f FAQ.tmp
diff --git a/README b/README
index 8b9b6675..e0e7b5f6 100644
--- a/README
+++ b/README
@@ -63,6 +63,10 @@ BIND 9.9.5
- When re-signing a zone, the new "dnssec-signzone -Q" option
drops signatures from keys that are still published but are
no longer active.
+ - "named-checkconf -px" will print the contents of configuration
+ files with the shared secrets obscured, making it easier to
+ share configuration (e.g. when submitting a bug report)
+ without revealing private information.
BIND 9.9.4
diff --git a/bin/check/named-checkconf.8 b/bin/check/named-checkconf.8
index 67a8f4a3..909184ef 100644
--- a/bin/check/named-checkconf.8
+++ b/bin/check/named-checkconf.8
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
.\" Copyright (C) 2000-2002 Internet Software Consortium.
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
@@ -33,7 +33,7 @@
named\-checkconf \- named configuration file syntax checking tool
.SH "SYNOPSIS"
.HP 16
-\fBnamed\-checkconf\fR [\fB\-h\fR] [\fB\-v\fR] [\fB\-j\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] {filename} [\fB\-p\fR] [\fB\-z\fR]
+\fBnamed\-checkconf\fR [\fB\-h\fR] [\fB\-v\fR] [\fB\-j\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] {filename} [\fB\-p\fR] [\fB\-x\fR] [\fB\-z\fR]
.SH "DESCRIPTION"
.PP
\fBnamed\-checkconf\fR
@@ -84,6 +84,14 @@ Print out the
and included files in canonical form if no errors were detected.
.RE
.PP
+\-x
+.RS 4
+When printing the configuration files in canonical form, obscure shared secrets by replacing them with strings of question marks ('?'). This allows the contents of
+\fInamed.conf\fR
+and related files to be shared \(em for example, when submitting bug reports \(em without compromising private data. This option cannot be used without
+\fB\-p\fR.
+.RE
+.PP
\-z
.RS 4
Perform a test load of all master zones found in
@@ -113,7 +121,7 @@ BIND 9 Administrator Reference Manual.
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
-Copyright \(co 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000\-2002 Internet Software Consortium.
.br
diff --git a/bin/check/named-checkconf.c b/bin/check/named-checkconf.c
index 6f52a662..fd3795a5 100644
--- a/bin/check/named-checkconf.c
+++ b/bin/check/named-checkconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -482,10 +482,11 @@ main(int argc, char **argv) {
isc_entropy_t *ectx = NULL;
isc_boolean_t load_zones = ISC_FALSE;
isc_boolean_t print = ISC_FALSE;
+ unsigned int flags = 0;
isc_commandline_errprint = ISC_FALSE;
- while ((c = isc_commandline_parse(argc, argv, "dhjt:pvz")) != EOF) {
+ while ((c = isc_commandline_parse(argc, argv, "dhjt:pvxz")) != EOF) {
switch (c) {
case 'd':
debug++;
@@ -512,6 +513,10 @@ main(int argc, char **argv) {
printf(VERSION "\n");
exit(0);
+ case 'x':
+ flags |= CFG_PRINTER_XKEY;
+ break;
+
case 'z':
load_zones = ISC_TRUE;
docheckmx = ISC_FALSE;
@@ -534,6 +539,11 @@ main(int argc, char **argv) {
}
}
+ if (((flags & CFG_PRINTER_XKEY) != 0) && !print) {
+ fprintf(stderr, "%s: -x cannot be used without -p\n", program);
+ exit(1);
+ }
+
if (isc_commandline_index + 1 < argc)
usage();
if (argv[isc_commandline_index] != NULL)
@@ -574,7 +584,7 @@ main(int argc, char **argv) {
}
if (print && exit_status == 0)
- cfg_print(config, output, NULL);
+ cfg_printx(config, flags, output, NULL);
cfg_obj_destroy(parser, &config);
cfg_parser_destroy(&parser);
diff --git a/bin/check/named-checkconf.docbook b/bin/check/named-checkconf.docbook
index 9535e284..485dc42a 100644
--- a/bin/check/named-checkconf.docbook
+++ b/bin/check/named-checkconf.docbook
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -36,6 +36,7 @@
<year>2005</year>
<year>2007</year>
<year>2009</year>
+ <year>2014</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -60,6 +61,7 @@
<arg><option>-t <replaceable class="parameter">directory</replaceable></option></arg>
<arg choice="req">filename</arg>
<arg><option>-p</option></arg>
+ <arg><option>-x</option></arg>
<arg><option>-z</option></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -130,6 +132,21 @@
</varlistentry>
<varlistentry>
+ <term>-x</term>
+ <listitem>
+ <para>
+ When printing the configuration files in canonical
+ form, obscure shared secrets by replacing them with
+ strings of question marks ('?'). This allows the
+ contents of <filename>named.conf</filename> and related
+ files to be shared &mdash; for example, when submitting
+ bug reports &mdash; without compromising private data.
+ This option cannot be used without <option>-p</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>-z</term>
<listitem>
<para>
diff --git a/bin/check/named-checkconf.html b/bin/check/named-checkconf.html
index aa80c7cb..1c5ebc12 100644
--- a/bin/check/named-checkconf.html
+++ b/bin/check/named-checkconf.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2002 Internet Software Consortium.
-
- Permission to use, copy, modify, and/or distribute this software for any
@@ -29,10 +29,10 @@
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
-<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-z</code>]</p></div>
+<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-x</code>] [<code class="option">-z</code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543396"></a><h2>DESCRIPTION</h2>
+<a name="id2543403"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named-checkconf</strong></span>
checks the syntax, but not the semantics, of a
<span><strong class="command">named</strong></span> configuration file. The file is parsed
@@ -52,7 +52,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543445"></a><h2>OPTIONS</h2>
+<a name="id2543452"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-h</span></dt>
<dd><p>
@@ -74,6 +74,16 @@
Print out the <code class="filename">named.conf</code> and included files
in canonical form if no errors were detected.
</p></dd>
+<dt><span class="term">-x</span></dt>
+<dd><p>
+ When printing the configuration files in canonical
+ form, obscure shared secrets by replacing them with
+ strings of question marks ('?'). This allows the
+ contents of <code class="filename">named.conf</code> and related
+ files to be shared &#8212; for example, when submitting
+ bug reports &#8212; without compromising private data.
+ This option cannot be used without <code class="option">-p</code>.
+ </p></dd>
<dt><span class="term">-z</span></dt>
<dd><p>
Perform a test load of all master zones found in
@@ -91,21 +101,21 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543569"></a><h2>RETURN VALUES</h2>
+<a name="id2543596"></a><h2>RETURN VALUES</h2>
<p><span><strong class="command">named-checkconf</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543580"></a><h2>SEE ALSO</h2>
+<a name="id2543608"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543610"></a><h2>AUTHOR</h2>
+<a name="id2543638"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/bin/confgen/ddns-confgen.c b/bin/confgen/ddns-confgen.c
index d655145e..e2a86283 100644
--- a/bin/confgen/ddns-confgen.c
+++ b/bin/confgen/ddns-confgen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2011, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -101,7 +101,7 @@ main(int argc, char **argv) {
result = isc_file_progname(*argv, program, sizeof(program));
if (result != ISC_R_SUCCESS)
- memcpy(program, "ddns-confgen", 13);
+ memmove(program, "ddns-confgen", 13);
progname = program;
isc_commandline_errprint = ISC_FALSE;
diff --git a/bin/confgen/rndc-confgen.c b/bin/confgen/rndc-confgen.c
index e2ac0792..2f65f4b0 100644
--- a/bin/confgen/rndc-confgen.c
+++ b/bin/confgen/rndc-confgen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -120,7 +120,7 @@ main(int argc, char **argv) {
result = isc_file_progname(*argv, program, sizeof(program));
if (result != ISC_R_SUCCESS)
- memcpy(program, "rndc-confgen", 13);
+ memmove(program, "rndc-confgen", 13);
progname = program;
keyname = DEFAULT_KEYNAME;
diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c
index b7d231fd..56d763c2 100644
--- a/bin/dig/dighost.c
+++ b/bin/dig/dighost.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -448,7 +448,7 @@ static isc_result_t
append(const char *text, int len, char **p, char *end) {
if (len > end - *p)
return (ISC_R_NOSPACE);
- memcpy(*p, text, len);
+ memmove(*p, text, len);
*p += len;
return (ISC_R_SUCCESS);
}
@@ -2330,6 +2330,7 @@ setup_lookup(dig_lookup_t *lookup) {
query->rr_count = 0;
query->msg_count = 0;
query->byte_count = 0;
+ query->ixfr_axfr = ISC_FALSE;
ISC_LIST_INIT(query->recvlist);
ISC_LIST_INIT(query->lengthlist);
query->sock = NULL;
@@ -2982,6 +2983,9 @@ check_for_more_data(dig_query_t *query, dns_message_t *msg,
isc_boolean_t ixfr = query->lookup->rdtype == dns_rdatatype_ixfr;
isc_boolean_t axfr = query->lookup->rdtype == dns_rdatatype_axfr;
+ if (ixfr)
+ axfr = query->ixfr_axfr;
+
debug("check_for_more_data()");
/*
@@ -3030,7 +3034,7 @@ check_for_more_data(dig_query_t *query, dns_message_t *msg,
query->second_rr_rcvd = ISC_TRUE;
query->second_rr_serial = 0;
debug("got the second rr as nonsoa");
- axfr = ISC_TRUE;
+ axfr = query->ixfr_axfr = ISC_TRUE;
goto next_rdata;
}
@@ -3941,7 +3945,7 @@ output_filter(isc_buffer_t *buffer, unsigned int used_org,
fromlen = isc_buffer_usedlength(buffer) - used_org;
if (fromlen >= MAXDLEN)
return (ISC_R_SUCCESS);
- memcpy(tmp1, (char *)isc_buffer_base(buffer) + used_org, fromlen);
+ memmove(tmp1, (char *)isc_buffer_base(buffer) + used_org, fromlen);
end_with_dot = (tmp1[fromlen - 1] == '.') ? ISC_TRUE : ISC_FALSE;
if (absolute && !end_with_dot) {
fromlen++;
@@ -3970,7 +3974,7 @@ output_filter(isc_buffer_t *buffer, unsigned int used_org,
return (ISC_R_NOSPACE);
isc_buffer_subtract(buffer, isc_buffer_usedlength(buffer) - used_org);
- memcpy(isc_buffer_used(buffer), tmp1, tolen);
+ memmove(isc_buffer_used(buffer), tmp1, tolen);
isc_buffer_add(buffer, (unsigned int)tolen);
return (ISC_R_SUCCESS);
@@ -3990,7 +3994,8 @@ append_textname(char *name, const char *origin, size_t namesize) {
if (namelen + 1 + originlen >= namesize)
return idn_buffer_overflow;
- name[namelen++] = '.';
+ if (*origin != '.')
+ name[namelen++] = '.';
(void)strcpy(name + namelen, origin);
return idn_success;
}
diff --git a/bin/dig/include/dig/dig.h b/bin/dig/include/dig/dig.h
index 00466391..0150d11d 100644
--- a/bin/dig/include/dig/dig.h
+++ b/bin/dig/include/dig/dig.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -202,6 +202,7 @@ struct dig_query {
isc_uint32_t second_rr_serial;
isc_uint32_t msg_count;
isc_uint32_t rr_count;
+ isc_boolean_t ixfr_axfr;
char *servname;
char *userarg;
isc_bufferlist_t sendlist,
diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c
index fb347e3c..0a13d9fa 100644
--- a/bin/dnssec/dnssec-signzone.c
+++ b/bin/dnssec/dnssec-signzone.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -730,7 +730,7 @@ hashlist_add(hashlist_t *l, const unsigned char *hash, size_t len)
fatal("unable to grow hashlist: out of memory");
}
memset(l->hashbuf + l->entries * l->length, 0, l->length);
- memcpy(l->hashbuf + l->entries * l->length, hash, len);
+ memmove(l->hashbuf + l->entries * l->length, hash, len);
l->entries++;
}
@@ -2668,7 +2668,7 @@ set_nsec3params(isc_boolean_t update_chain, isc_boolean_t set_salt,
"Use -u to update it.");
} else if (!set_salt) {
salt_length = orig_saltlen;
- memcpy(saltbuf, orig_salt, orig_saltlen);
+ memmove(saltbuf, orig_salt, orig_saltlen);
salt = saltbuf;
}
diff --git a/bin/dnssec/dnssectool.c b/bin/dnssec/dnssectool.c
index 5f5f7d88..74698e1b 100644
--- a/bin/dnssec/dnssectool.c
+++ b/bin/dnssec/dnssectool.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -725,11 +725,11 @@ record_nsec3(const unsigned char *rawhash, const dns_rdata_nsec3_t *nsec3,
element->next_length = nsec3->next_length;
element->iterations = nsec3->iterations;
cp = (unsigned char *)(element + 1);
- memcpy(cp, nsec3->salt, nsec3->salt_length);
+ memmove(cp, nsec3->salt, nsec3->salt_length);
cp += nsec3->salt_length;
- memcpy(cp, rawhash, nsec3->next_length);
+ memmove(cp, rawhash, nsec3->next_length);
cp += nsec3->next_length;
- memcpy(cp, nsec3->next, nsec3->next_length);
+ memmove(cp, nsec3->next, nsec3->next_length);
result = isc_heap_insert(chains, element);
if (result != ISC_R_SUCCESS) {
fprintf(stderr, "isc_heap_insert failed: %s\n",
diff --git a/bin/named/bind9.ver3.xsl b/bin/named/bind9.ver3.xsl
index 22e5c45f..699bcb48 100644
--- a/bin/named/bind9.ver3.xsl
+++ b/bin/named/bind9.ver3.xsl
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- - Copyright (C) 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2012-2014 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@@ -20,60 +20,61 @@
<!-- %Id: bind9.xsl,v 1.21 2009/01/27 23:47:54 tbox Exp % -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output method="html" indent="yes" version="4.0"/>
- <xsl:template match="statistics[@version=&quot;3.0&quot;]">
+ <xsl:template match="statistics[@version=&quot;3.3&quot;]">
<html>
<head>
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<!-- Non Mozilla specific markup -->
<script type="text/javascript" src="https://www.google.com/jsapi"/>
<script type="text/javascript">
-
+
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(loadGraphs);
var graphs=[];
-
- function drawChart(chart_title,target,data) {
+
+ function drawChart(chart_title,target,style,data) {
var data = google.visualization.arrayToDataTable(data);
var options = {
title: chart_title
};
-
- var chart = new google.visualization.BarChart(document.getElementById(target));
- chart.draw(data, options);
+
+ var chart;
+ if (style == "barchart") {
+ chart = new google.visualization.BarChart(document.getElementById(target));
+ chart.draw(data, options);
+ } else if (style == "piechart") {
+ chart = new google.visualization.PieChart(document.getElementById(target));
+ chart.draw(data, options);
+ }
}
-
+
function loadGraphs(){
- //alert("here we are!");
var g;
-
- // Server Incoming query Types
+
while(g = graphs.shift()){
// alert("going for: " + g.target);
if(g.data.length > 1){
- drawChart(g.title,g.target,g.data);
+ drawChart(g.title,g.target,g.style,g.data);
}
}
}
-
- // Server Incoming Queries Types
- graphs.push({
- 'title' : "Server Incoming Query Types",
- 'target': 'chart_incoming_qtypes',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
-
- // Server Incoming Requests
- graphs.push({
- 'title' : "Server Incoming Requests",
- 'target': 'chart_incoming_requests',
- 'data': [['Requests','Counter'],<xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]});
-
-
-
-
+
+ // Server Incoming Query Types
+ graphs.push({
+ 'title' : "Server Incoming Query Types",
+ 'target': 'chart_incoming_qtypes',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+
+ // Server Incoming Requests by opcode
+ graphs.push({
+ 'title' : "Server Incoming Requests by DNS Opcode",
+ 'target': 'chart_incoming_opcodes',
+ 'style': 'barchart',
+ 'data': [['Opcode','Counter'],<xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]});
</script>
</xsl:if>
<style type="text/css">
@@ -83,15 +84,15 @@
color: #000000;
font-size: 10pt;
}
-
+
.odd{
background-color: #f0f0f0;
}
-
+
.even{
background-color: #ffffff;
}
-
+
p.footer{
font-style:italic;
color: grey;
@@ -106,21 +107,101 @@
border: 1px solid grey;
width: 500px;
}
-
table.counters th {
+ text-align: right;
+ border: 1px solid grey;
+ width: 150px;
+ }
+ table.counters td {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.counters tr:hover{
+ background-color: #99ddff;
+ }
+
+ table.info {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.info th {
text-align: center;
border: 1px solid grey;
- width: 120px;
- }
- table.counters td{
- text-align:center;
-
- }
-
- table.counters tr:hover{
+ width: 150px;
+ }
+ table.info td {
+ text-align: center;
+ }
+ table.info tr:hover{
background-color: #99ddff;
- }
-
+ }
+
+ table.tasks {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.tasks th {
+ text-align: center;
+ border: 1px solid grey;
+ width: 150px;
+ }
+ table.tasks td {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.tasks td:nth-child(2) {
+ text-align: center;
+ }
+ table.tasks td:nth-child(4) {
+ text-align: center;
+ }
+ table.tasks tr:hover{
+ background-color: #99ddff;
+ }
+
+ table.netstat {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.netstat th {
+ text-align: center;
+ border: 1px solid grey;
+ width: 150px;
+ }
+ table.netstat td {
+ text-align: center;
+ }
+ table.netstat td:nth-child(4) {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.netstat td:nth-child(7) {
+ text-align: left;
+ }
+ table.netstat tr:hover{
+ background-color: #99ddff;
+ }
+
+ table.mctx {
+ border: 1px solid grey;
+ width: 500px;
+ }
+ table.mctx th {
+ text-align: center;
+ border: 1px solid grey;
+ }
+ table.mctx td {
+ text-align: right;
+ font-family: monospace;
+ }
+ table.mctx td:nth-child(-n+2) {
+ text-align: left;
+ width: 100px;
+ }
+ table.mctx tr:hover{
+ background-color: #99ddff;
+ }
+
.totals {
background-color: rgb(1,169,206);
color: #ffffff;
@@ -160,20 +241,18 @@
width:500px;
text-align:center;
}
-
+
h3 {
color: #444444;
font-size: 12pt;
width:500px;
text-align:center;
-
}
h4 {
color: rgb(1,169,206);
font-size: 10pt;
width:500px;
text-align:center;
-
}
.pie {
@@ -190,7 +269,7 @@
</div>
<hr/>
<h2>Server Times</h2>
- <table class="counters">
+ <table class="info">
<tr>
<th>Boot time:</th>
<td>
@@ -198,97 +277,142 @@
</td>
</tr>
<tr>
- <th>Sample time:</th>
+ <th>Current time:</th>
<td>
<xsl:value-of select="server/current-time"/>
</td>
</tr>
</table>
<br/>
- <h2>Incoming Requests</h2>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <div class="pie" id="chart_incoming_requests">[no incoming requests]</div>
- </xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:if test="server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0]">
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <h2>Incoming Requests by DNS Opcode</h2>
+ <!-- Non Mozilla specific markup -->
+ <div class="pie" id="chart_incoming_opcodes">
+ [cannot display chart]
+ </div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <tr>
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
<tr>
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
+ <th class="totals">Total:</th>
+ <td class="totals">
+ <xsl:value-of select="sum(server/counters[@type=&quot;opcode&quot;]/counter)"/>
</td>
</tr>
- </xsl:for-each>
- <tr>
- <th class="totals">Total:</th>
- <td class="totals">
- <xsl:value-of select="sum(server/counters[@type=&quot;opcode&quot;]/counter)"/>
- </td>
- </tr>
- </table>
- <br/>
- <h3>Incoming Queries by Type</h3>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <div class="pie" id="chart_incoming_qtypes">[no incoming queries]</div>
+ </table>
+ <br/>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
+ <xsl:if test="server/counters[@type=&quot;qtype&quot;]/counter">
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <h3>Incoming Queries by Query Type</h3>
+ <div class="pie" id="chart_incoming_qtypes">
+ [cannot display chart]
+ </div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="server/counters[@type=&quot;qtype&quot;]/counter">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <tr>
+ <th class="totals">Total:</th>
+ <td class="totals">
+ <xsl:value-of select="sum(server/counters[@type=&quot;qtype&quot;]/counter)"/>
</td>
</tr>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]">
+ <h2>Outgoing Queries per view</h2>
+ <xsl:for-each select="views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
+ graphs.push({
+ 'title': "Outgoing Queries for view: <xsl:value-of select="@name"/>",
+ 'target': 'chart_outgoing_queries_view_<xsl:value-of select="@name"/>',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_outgoing_queries_view_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class1">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class1}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
</xsl:for-each>
- <tr>
- <th class="totals">Total:</th>
- <td class="totals">
- <xsl:value-of select="sum(server/counters[@type=&quot;qtype&quot;]/counter)"/>
- </td>
- </tr>
- </table>
- <br/>
- <h2>Outgoing Queries per view</h2>
- <xsl:for-each select="views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]">
- <h3>View <xsl:value-of select="@name"/></h3>
+ </xsl:if>
+ <xsl:if test="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">
+ <h2>Server Statistics</h2>
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<!-- Non Mozilla specific markup -->
<script type="text/javascript">
- graphs.push({
- 'title': "Outgoing queries for view: <xsl:value-of select="@name"/>",
- 'target': 'chart_outgoing_queries_view_<xsl:value-of select="@name"/>',
- 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_outgoing_queries_view_{$target}"/>
+ graphs.push({
+ 'title' : "Server Counters",
+ 'target': 'chart_server_nsstat_restype',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
+ <div class="pie" id="chart_server_nsstat_restype">[no data to display]</div>
</xsl:if>
<table class="counters">
- <xsl:for-each select="counters[@type=&quot;resqtype&quot;]/counter">
+ <xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">
<xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class1">
+ <xsl:variable name="css-class2">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
<xsl:otherwise>odd</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <tr class="{$css-class1}">
+ <tr class="{$css-class2}">
<th>
<xsl:value-of select="@name"/>
</th>
@@ -299,104 +423,53 @@
</xsl:for-each>
</table>
<br/>
- </xsl:for-each>
- <h2>Server Statistics</h2>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title' : "Server Counters",
- 'target': 'chart_server_nsstat_restype',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <div class="pie" id="chart_server_nsstat_restype"/>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class2">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class2}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Zone Maintenance Statistics</h2>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <script type="text/javascript">
- graphs.push({
- 'title' : "Zone Maintenance Stats",
- 'target': 'chart_server_zone_maint',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <!-- Non Mozilla specific markup -->
- <div class="pie" id="chart_server_zone_maint"/>
+ <xsl:if test="server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]">
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <h2>Zone Maintenance Statistics</h2>
+ <script type="text/javascript">
+ graphs.push({
+ 'title' : "Zone Maintenance Stats",
+ 'target': 'chart_server_zone_maint',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
+ <!-- Non Mozilla specific markup -->
+ <div class="pie" id="chart_server_zone_maint">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class3">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class3}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;zonestat&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class3">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class3}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <h2>Resolver Statistics (Common)</h2>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;restat&quot;]/counter">
- <xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class4">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class4}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <xsl:for-each select="views/view">
- <h3>Resolver Statistics for View <xsl:value-of select="@name"/></h3>
+ <xsl:if test="server/counters[@type=&quot;resstat&quot;]/counter[.&gt;0]">
+ <h2>Resolver Statistics (Common)</h2>
<table class="counters">
- <xsl:for-each select="counters[@type=&quot;resstats&quot;]/counter[.&gt;0]">
+ <xsl:for-each select="server/counters[@type=&quot;resstat&quot;]/counter">
<xsl:sort select="." data-type="number" order="descending"/>
- <xsl:variable name="css-class5">
+ <xsl:variable name="css-class4">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
<xsl:otherwise>odd</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <tr class="{$css-class5}">
+ <tr class="{$css-class4}">
<th>
<xsl:value-of select="@name"/>
</th>
@@ -406,330 +479,375 @@
</tr>
</xsl:for-each>
</table>
+ </xsl:if>
+ <xsl:for-each select="views/view">
+ <xsl:if test="counters[@type=&quot;resstats&quot;]/counter[.&gt;0]">
+ <h3>Resolver Statistics for View <xsl:value-of select="@name"/></h3>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;resstats&quot;]/counter[.&gt;0]">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:variable name="css-class5">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class5}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
</xsl:for-each>
- <h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
+
<xsl:for-each select="views/view">
+ <xsl:if test="cache/rrset">
+ <h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
+ <table class="counters">
+ <xsl:for-each select="cache/rrset">
+ <xsl:variable name="css-class6">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class6}">
+ <th>
+ <xsl:value-of select="name"/>
+ </th>
+ <td>
+ <xsl:value-of select="counter"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:if test="server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]">
+ <h2>Socket I/O Statistics</h2>
<table class="counters">
- <xsl:for-each select="cache/rrset">
- <xsl:variable name="css-class6">
+ <xsl:for-each select="server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]">
+ <xsl:variable name="css-class7">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
<xsl:otherwise>odd</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <tr class="{$css-class6}">
+ <tr class="{$css-class7}">
<th>
- <xsl:value-of select="name"/>
+ <xsl:value-of select="@name"/>
</th>
<td>
- <xsl:value-of select="counter"/>
+ <xsl:value-of select="."/>
</td>
</tr>
</xsl:for-each>
</table>
<br/>
- </xsl:for-each>
- <h2>Socket I/O Statistics</h2>
- <table class="counters">
- <xsl:for-each select="server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]">
- <xsl:variable name="css-class7">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
+ </xsl:if>
+ <xsl:if test="views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]">
+ <h2>Response Codes per view/zone</h2>
+ <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:variable name="thisview">
+ <xsl:value-of select="@name"/>
</xsl:variable>
- <tr class="{$css-class7}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- <br/>
- <h2>Response Codes per view/zone</h2>
- <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]">
- <h3>View <xsl:value-of select="@name"/></h3>
- <xsl:variable name="thisview">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <xsl:for-each select="zones/zone">
- <xsl:if test="counters[@type=&quot;rcode&quot;]/counter[. &gt; 0]">
- <h4>Zone <xsl:value-of select="@name"/></h4>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title': "Response Codes for zone <xsl:value-of select="@name"/>",
- 'target': 'chart_rescode_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
- 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_rescode_{$thisview}_{$target}"/>
+ <xsl:for-each select="zones/zone">
+ <xsl:if test="counters[@type=&quot;rcode&quot;]/counter[. &gt; 0]">
+ <h4>Zone <xsl:value-of select="@name"/></h4>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
+ graphs.push({
+ 'title': "Response Codes for zone <xsl:value-of select="@name"/>",
+ 'target': 'chart_rescode_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+
+ </script>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_rescode_{$thisview}_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">
+ <xsl:sort select="."/>
+ <xsl:variable name="css-class10">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class10}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">
- <xsl:sort select="."/>
- <xsl:variable name="css-class10">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class10}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
+ </xsl:for-each>
</xsl:for-each>
- </xsl:for-each>
- <h2>Received QTYPES per view/zone</h2>
- <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]">
- <h3>View <xsl:value-of select="@name"/></h3>
- <xsl:variable name="thisview2">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <xsl:for-each select="zones/zone">
- <xsl:if test="counters[@type=&quot;qtype&quot;]/counter[count(.) &gt; 0]">
- <h4>Zone <xsl:value-of select="@name"/></h4>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title': "Query Types for zone <xsl:value-of select="@name"/>",
- 'target': 'chart_qtype_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
- 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
-
- </script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_qtype_{$thisview2}_{$target}"/>
+ </xsl:if>
+ <xsl:if test="views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]">
+ <h2>Received QTYPES per view/zone</h2>
+ <xsl:for-each select="views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:variable name="thisview2">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:for-each select="zones/zone">
+ <xsl:if test="counters[@type=&quot;qtype&quot;]/counter[count(.) &gt; 0]">
+ <h4>Zone <xsl:value-of select="@name"/></h4>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
+ graphs.push({
+ 'title': "Query Types for zone <xsl:value-of select="@name"/>",
+ 'target': 'chart_qtype_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+
+ </script>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_qtype_{$thisview2}_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter">
+ <xsl:sort select="."/>
+ <xsl:variable name="css-class11">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class11}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
</xsl:if>
- <table class="counters">
- <xsl:for-each select="counters[@type=&quot;qtype&quot;]/counter">
- <xsl:sort select="."/>
- <xsl:variable name="css-class11">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class11}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
+ </xsl:for-each>
</xsl:for-each>
- </xsl:for-each>
- <h2>Network Status</h2>
- <table class="counters">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>Type</th>
- <th>References</th>
- <th>LocalAddress</th>
- <th>PeerAddress</th>
- <th>State</th>
- </tr>
- <xsl:for-each select="socketmgr/sockets/socket">
- <xsl:sort select="id"/>
- <xsl:variable name="css-class12">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class12}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="type"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="local-address"/>
- </td>
- <td>
- <xsl:value-of select="peer-address"/>
- </td>
- <td>
- <xsl:for-each select="states">
- <xsl:value-of select="."/>
- </xsl:for-each>
- </td>
+ </xsl:if>
+ <xsl:if test="socketmgr/sockets/socket">
+ <h2>Network Status</h2>
+ <table class="netstat">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>Type</th>
+ <th>References</th>
+ <th>LocalAddress</th>
+ <th>PeerAddress</th>
+ <th>State</th>
</tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Task Manager Configuration</h2>
- <table class="counters">
- <tr>
- <th class="even">Thread-Model</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/type"/>
- </td>
- </tr>
- <tr class="odd">
- <th>Worker Threads</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/worker-threads"/>
- </td>
- </tr>
- <tr class="even">
- <th>Default Quantum</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/default-quantum"/>
- </td>
- </tr>
- <tr class="odd">
- <th>Tasks Running</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/tasks-running"/>
- </td>
- </tr>
- </table>
- <br/>
- <h2>Tasks</h2>
- <table class="counters">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>References</th>
- <th>State</th>
- <th>Quantum</th>
- </tr>
- <xsl:for-each select="taskmgr/tasks/task">
- <xsl:sort select="name"/>
- <xsl:variable name="css-class14">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class14}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="state"/>
- </td>
+ <xsl:for-each select="socketmgr/sockets/socket">
+ <xsl:sort select="id"/>
+ <xsl:variable name="css-class12">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class12}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="type"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="local-address"/>
+ </td>
+ <td>
+ <xsl:value-of select="peer-address"/>
+ </td>
+ <td>
+ <xsl:for-each select="states">
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="taskmgr/thread-model/type">
+ <h2>Task Manager Configuration</h2>
+ <table class="counters">
+ <tr>
+ <th class="even">Thread-Model</th>
<td>
- <xsl:value-of select="quantum"/>
+ <xsl:value-of select="taskmgr/thread-model/type"/>
</td>
</tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Memory Usage Summary</h2>
- <table class="counters">
- <xsl:for-each select="memory/summary/*">
- <xsl:variable name="css-class13">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class13}">
- <th>
- <xsl:value-of select="name()"/>
- </th>
+ <tr class="odd">
+ <th>Worker Threads</th>
<td>
- <xsl:value-of select="."/>
+ <xsl:value-of select="taskmgr/thread-model/worker-threads"/>
</td>
</tr>
- </xsl:for-each>
- </table>
- <br/>
- <h2>Memory Contexts</h2>
- <table class="counters">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>References</th>
- <th>TotalUse</th>
- <th>InUse</th>
- <th>MaxUse</th>
- <th>BlockSize</th>
- <th>Pools</th>
- <th>HiWater</th>
- <th>LoWater</th>
- </tr>
- <xsl:for-each select="memory/contexts/context">
- <xsl:sort select="total" data-type="number" order="descending"/>
- <xsl:variable name="css-class14">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class14}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="total"/>
- </td>
- <td>
- <xsl:value-of select="inuse"/>
- </td>
- <td>
- <xsl:value-of select="maxinuse"/>
- </td>
- <td>
- <xsl:value-of select="blocksize"/>
- </td>
- <td>
- <xsl:value-of select="pools"/>
- </td>
+ <tr class="even">
+ <th>Default Quantum</th>
<td>
- <xsl:value-of select="hiwater"/>
+ <xsl:value-of select="taskmgr/thread-model/default-quantum"/>
</td>
+ </tr>
+ <tr class="odd">
+ <th>Tasks Running</th>
<td>
- <xsl:value-of select="lowater"/>
+ <xsl:value-of select="taskmgr/thread-model/tasks-running"/>
</td>
</tr>
- </xsl:for-each>
- </table>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="taskmgr/tasks/task">
+ <h2>Tasks</h2>
+ <table class="tasks">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>References</th>
+ <th>State</th>
+ <th>Quantum</th>
+ </tr>
+ <xsl:for-each select="taskmgr/tasks/task">
+ <xsl:sort select="name"/>
+ <xsl:variable name="css-class14">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class14}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="state"/>
+ </td>
+ <td>
+ <xsl:value-of select="quantum"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="memory/summary">
+ <h2>Memory Usage Summary</h2>
+ <table class="counters">
+ <xsl:for-each select="memory/summary/*">
+ <xsl:variable name="css-class13">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class13}">
+ <th>
+ <xsl:value-of select="name()"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="memory/contexts/context">
+ <h2>Memory Contexts</h2>
+ <table class="mctx">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>References</th>
+ <th>TotalUse</th>
+ <th>InUse</th>
+ <th>MaxUse</th>
+ <th>BlockSize</th>
+ <th>Pools</th>
+ <th>HiWater</th>
+ <th>LoWater</th>
+ </tr>
+ <xsl:for-each select="memory/contexts/context">
+ <xsl:sort select="total" data-type="number" order="descending"/>
+ <xsl:variable name="css-class14">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class14}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="total"/>
+ </td>
+ <td>
+ <xsl:value-of select="inuse"/>
+ </td>
+ <td>
+ <xsl:value-of select="maxinuse"/>
+ </td>
+ <td>
+ <xsl:value-of select="blocksize"/>
+ </td>
+ <td>
+ <xsl:value-of select="pools"/>
+ </td>
+ <td>
+ <xsl:value-of select="hiwater"/>
+ </td>
+ <td>
+ <xsl:value-of select="lowater"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
<hr/>
<p class="footer">Internet Systems Consortium Inc.<br/><a href="http://www.isc.org">http://www.isc.org</a></p>
</body>
diff --git a/bin/named/bind9.ver3.xsl.h b/bin/named/bind9.ver3.xsl.h
index c55714a6..371e69c7 100644
--- a/bin/named/bind9.ver3.xsl.h
+++ b/bin/named/bind9.ver3.xsl.h
@@ -5,7 +5,7 @@
static char xslmsg[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!--\n"
- " - Copyright (C) 2006-2009 Internet Systems Consortium, Inc. (\"ISC\")\n"
+ " - Copyright (C) 2012-2014 Internet Systems Consortium, Inc. (\"ISC\")\n"
" -\n"
" - Permission to use, copy, modify, and/or distribute this software for any\n"
" - purpose with or without fee is hereby granted, provided that the above\n"
@@ -19,63 +19,67 @@ static char xslmsg[] =
" - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n"
" - PERFORMANCE OF THIS SOFTWARE.\n"
"-->\n"
+ "\n"
+ "<!-- $Id$ -->\n"
+ "\n"
"<!-- \045Id: bind9.xsl,v 1.21 2009/01/27 23:47:54 tbox Exp \045 -->\n"
"<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns=\"http://www.w3.org/1999/xhtml\" version=\"1.0\">\n"
" <xsl:output method=\"html\" indent=\"yes\" version=\"4.0\"/>\n"
- " <xsl:template match=\"statistics[@version=&quot;3.0&quot;]\">\n"
+ " <xsl:template match=\"statistics[@version=&quot;3.3&quot;]\">\n"
" <html>\n"
" <head>\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
" <!-- Non Mozilla specific markup -->\n"
" <script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"/>\n"
" <script type=\"text/javascript\">\n"
- " \n"
+ "\n"
" google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});\n"
" google.setOnLoadCallback(loadGraphs);\n"
"\n"
" var graphs=[];\n"
- " \n"
- " function drawChart(chart_title,target,data) {\n"
+ "\n"
+ " function drawChart(chart_title,target,style,data) {\n"
" var data = google.visualization.arrayToDataTable(data);\n"
"\n"
" var options = {\n"
" title: chart_title\n"
" };\n"
- " \n"
- " var chart = new google.visualization.BarChart(document.getElementById(target));\n"
+ "\n"
+ " var chart;\n"
+ " if (style == \"barchart\") {\n"
+ " chart = new google.visualization.BarChart(document.getElementById(target));\n"
+ " chart.draw(data, options);\n"
+ " } else if (style == \"piechart\") {\n"
+ " chart = new google.visualization.PieChart(document.getElementById(target));\n"
" chart.draw(data, options);\n"
" }\n"
- " \n"
+ " }\n"
+ "\n"
" function loadGraphs(){\n"
- " //alert(\"here we are!\");\n"
" var g;\n"
- " \n"
- " // Server Incoming query Types\n"
+ "\n"
" while(g = graphs.shift()){\n"
" // alert(\"going for: \" + g.target);\n"
" if(g.data.length > 1){\n"
- " drawChart(g.title,g.target,g.data);\n"
+ " drawChart(g.title,g.target,g.style,g.data);\n"
" }\n"
" }\n"
" }\n"
- " \n"
- " // Server Incoming Queries Types \n"
+ "\n"
+ " // Server Incoming Query Types \n"
" graphs.push({\n"
" 'title' : \"Server Incoming Query Types\",\n"
" 'target': 'chart_incoming_qtypes',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;qtype&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
"\n"
- "\n"
- " // Server Incoming Requests \n"
+ " // Server Incoming Requests by opcode\n"
" graphs.push({\n"
- " 'title' : \"Server Incoming Requests\",\n"
- " 'target': 'chart_incoming_requests',\n"
- " 'data': [['Requests','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]});\n"
- " \n"
- " \n"
- " \n"
- " \n"
+ " 'title' : \"Server Incoming Requests by DNS Opcode\",\n"
+ " 'target': 'chart_incoming_opcodes',\n"
+ " 'style': 'barchart',\n"
+ " 'data': [['Opcode','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]});\n"
" </script>\n"
" </xsl:if>\n"
" <style type=\"text/css\">\n"
@@ -85,15 +89,15 @@ static char xslmsg[] =
" color: #000000;\n"
" font-size: 10pt;\n"
" }\n"
- " \n"
+ "\n"
" .odd{\n"
" background-color: #f0f0f0;\n"
" }\n"
- " \n"
+ "\n"
" .even{\n"
" background-color: #ffffff;\n"
" }\n"
- " \n"
+ "\n"
" p.footer{\n"
" font-style:italic;\n"
" color: grey;\n"
@@ -108,21 +112,101 @@ static char xslmsg[] =
" border: 1px solid grey;\n"
" width: 500px;\n"
" }\n"
- " \n"
" table.counters th {\n"
- " text-align: center;\n"
+ " text-align: right;\n"
" border: 1px solid grey;\n"
- " width: 120px;\n"
+ " width: 150px;\n"
" }\n"
- " table.counters td{\n"
- " text-align:center;\n"
- " \n"
+ " table.counters td {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
" }\n"
- " \n"
" table.counters tr:hover{\n"
" background-color: #99ddff;\n"
" }\n"
- " \n"
+ "\n"
+ " table.info {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.info th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " width: 150px;\n"
+ " }\n"
+ " table.info td {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.info tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
+ " table.tasks {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.tasks th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " width: 150px;\n"
+ " }\n"
+ " table.tasks td {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
+ " }\n"
+ " table.tasks td:nth-child(2) {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.tasks td:nth-child(4) {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.tasks tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
+ " table.netstat {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.netstat th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " width: 150px;\n"
+ " }\n"
+ " table.netstat td {\n"
+ " text-align: center;\n"
+ " }\n"
+ " table.netstat td:nth-child(4) {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
+ " }\n"
+ " table.netstat td:nth-child(7) {\n"
+ " text-align: left;\n"
+ " }\n"
+ " table.netstat tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
+ " table.mctx {\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " table.mctx th {\n"
+ " text-align: center;\n"
+ " border: 1px solid grey;\n"
+ " }\n"
+ " table.mctx td {\n"
+ " text-align: right;\n"
+ " font-family: monospace;\n"
+ " }\n"
+ " table.mctx td:nth-child(-n+2) {\n"
+ " text-align: left;\n"
+ " width: 100px;\n"
+ " }\n"
+ " table.mctx tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ "\n"
" .totals {\n"
" background-color: rgb(1,169,206);\n"
" color: #ffffff;\n"
@@ -162,20 +246,18 @@ static char xslmsg[] =
" width:500px;\n"
" text-align:center;\n"
" }\n"
- " \n"
+ "\n"
" h3 {\n"
" color: #444444;\n"
" font-size: 12pt;\n"
" width:500px;\n"
" text-align:center;\n"
- " \n"
" }\n"
" h4 {\n"
" color: rgb(1,169,206);\n"
" font-size: 10pt;\n"
" width:500px;\n"
" text-align:center;\n"
- " \n"
" }\n"
"\n"
" .pie {\n"
@@ -192,7 +274,7 @@ static char xslmsg[] =
" </div>\n"
" <hr/>\n"
" <h2>Server Times</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"info\">\n"
" <tr>\n"
" <th>Boot time:</th>\n"
" <td>\n"
@@ -200,20 +282,23 @@ static char xslmsg[] =
" </td>\n"
" </tr>\n"
" <tr>\n"
- " <th>Sample time:</th>\n"
+ " <th>Current time:</th>\n"
" <td>\n"
" <xsl:value-of select=\"server/current-time\"/>\n"
" </td>\n"
" </tr>\n"
" </table>\n"
" <br/>\n"
- " <h2>Incoming Requests</h2>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0]\">\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <h2>Incoming Requests by DNS Opcode</h2>\n"
" <!-- Non Mozilla specific markup -->\n"
- " <div class=\"pie\" id=\"chart_incoming_requests\">[graph incoming requests]</div>\n"
+ " <div class=\"pie\" id=\"chart_incoming_opcodes\">\n"
+ " [cannot display chart]\n"
+ " </div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
- " <xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter[. &gt; 0 or substring(@name,1,3) != 'RES']\">\n"
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
" <tr>\n"
" <th>\n"
@@ -232,10 +317,14 @@ static char xslmsg[] =
" </tr>\n"
" </table>\n"
" <br/>\n"
- " <h3>Incoming Queries by Type</h3>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;qtype&quot;]/counter\">\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
" <!-- Non Mozilla specific markup -->\n"
- " <div class=\"pie\" id=\"chart_incoming_qtypes\">[graph incoming qtypes]</div>\n"
+ " <h3>Incoming Queries by Query Type</h3>\n"
+ " <div class=\"pie\" id=\"chart_incoming_qtypes\">\n"
+ " [cannot display chart]\n"
+ " </div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;qtype&quot;]/counter\">\n"
@@ -263,6 +352,8 @@ static char xslmsg[] =
" </tr>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]\">\n"
" <h2>Outgoing Queries per view</h2>\n"
" <xsl:for-each select=\"views/view[count(counters[@type=&quot;resqtype&quot;]/counter) &gt; 0]\">\n"
" <h3>View <xsl:value-of select=\"@name\"/></h3>\n"
@@ -270,16 +361,16 @@ static char xslmsg[] =
" <!-- Non Mozilla specific markup -->\n"
" <script type=\"text/javascript\">\n"
" graphs.push({\n"
- " 'title': \"Outgoing queries for view: <xsl:value-of select=\"@name\"/>\",\n"
+ " 'title': \"Outgoing Queries for view: <xsl:value-of select=\"@name\"/>\",\n"
" 'target': 'chart_outgoing_queries_view_<xsl:value-of select=\"@name\"/>',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"counters[@type=&quot;resqtype&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
- " \n"
" </script>\n"
" <xsl:variable name=\"target\">\n"
" <xsl:value-of select=\"@name\"/>\n"
" </xsl:variable>\n"
- " <div class=\"pie\" id=\"chart_outgoing_queries_view_{$target}\"/>\n"
+ " <div class=\"pie\" id=\"chart_outgoing_queries_view_{$target}\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;resqtype&quot;]/counter\">\n"
@@ -302,18 +393,20 @@ static char xslmsg[] =
" </table>\n"
" <br/>\n"
" </xsl:for-each>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]\">\n"
" <h2>Server Statistics</h2>\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
" <!-- Non Mozilla specific markup -->\n"
" <script type=\"text/javascript\">\n"
" graphs.push({\n"
- " 'title' : \"Server Response Types\",\n"
+ " 'title' : \"Server Counters\",\n"
" 'target': 'chart_server_nsstat_restype',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
- " \n"
" </script>\n"
- " <div class=\"pie\" id=\"chart_server_nsstat_restype\"/>\n"
+ " <div class=\"pie\" id=\"chart_server_nsstat_restype\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]\">\n"
@@ -335,18 +428,20 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
- " <h2>Zone Maintenance Statistics</h2>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]\">\n"
" <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <h2>Zone Maintenance Statistics</h2>\n"
" <script type=\"text/javascript\">\n"
" graphs.push({\n"
" 'title' : \"Zone Maintenance Stats\",\n"
" 'target': 'chart_server_zone_maint',\n"
- " 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;zonestat&quot;]/counter\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
+ " 'style': 'barchart',\n"
+ " 'data': [['Type','Counter'],<xsl:for-each select=\"server/counters[@type=&quot;zonestat&quot;]/counter[.&gt;0]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
- "\n"
" </script>\n"
" <!-- Non Mozilla specific markup -->\n"
- " <div class=\"pie\" id=\"chart_server_zone_maint\"/>\n"
+ " <div class=\"pie\" id=\"chart_server_zone_maint\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;zonestat&quot;]/counter\">\n"
@@ -367,9 +462,11 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"server/counters[@type=&quot;resstat&quot;]/counter[.&gt;0]\">\n"
" <h2>Resolver Statistics (Common)</h2>\n"
" <table class=\"counters\">\n"
- " <xsl:for-each select=\"server/counters[@type=&quot;restat&quot;]/counter\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;resstat&quot;]/counter\">\n"
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
" <xsl:variable name=\"css-class4\">\n"
" <xsl:choose>\n"
@@ -387,7 +484,9 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
" <xsl:for-each select=\"views/view\">\n"
+ " <xsl:if test=\"counters[@type=&quot;resstats&quot;]/counter[.&gt;0]\">\n"
" <h3>Resolver Statistics for View <xsl:value-of select=\"@name\"/></h3>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;resstats&quot;]/counter[.&gt;0]\">\n"
@@ -408,9 +507,12 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
" </xsl:for-each>\n"
- " <h3>Cache DB RRsets for View <xsl:value-of select=\"@name\"/></h3>\n"
+ "\n"
" <xsl:for-each select=\"views/view\">\n"
+ " <xsl:if test=\"cache/rrset\">\n"
+ " <h3>Cache DB RRsets for View <xsl:value-of select=\"@name\"/></h3>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"cache/rrset\">\n"
" <xsl:variable name=\"css-class6\">\n"
@@ -430,7 +532,10 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
" </xsl:for-each>\n"
+ "\n"
+ " <xsl:if test=\"server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]\">\n"
" <h2>Socket I/O Statistics</h2>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]\">\n"
@@ -451,7 +556,8 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
- " <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]\">\n"
" <h2>Response Codes per view/zone</h2>\n"
" <xsl:for-each select=\"views/view[zones/zone/counters[@type=&quot;rcode&quot;]/counter &gt;0]\">\n"
" <h3>View <xsl:value-of select=\"@name\"/></h3>\n"
@@ -467,6 +573,7 @@ static char xslmsg[] =
" graphs.push({\n"
" 'title': \"Response Codes for zone <xsl:value-of select=\"@name\"/>\",\n"
" 'target': 'chart_rescode_<xsl:value-of select=\"../../@name\"/>_<xsl:value-of select=\"@name\"/>',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
"\n"
@@ -474,7 +581,7 @@ static char xslmsg[] =
" <xsl:variable name=\"target\">\n"
" <xsl:value-of select=\"@name\"/>\n"
" </xsl:variable>\n"
- " <div class=\"pie\" id=\"chart_rescode_{$thisview}_{$target}\"/>\n"
+ " <div class=\"pie\" id=\"chart_rescode_{$thisview}_{$target}\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;rcode&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]\">\n"
@@ -498,6 +605,8 @@ static char xslmsg[] =
" </xsl:if>\n"
" </xsl:for-each>\n"
" </xsl:for-each>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]\">\n"
" <h2>Received QTYPES per view/zone</h2>\n"
" <xsl:for-each select=\"views/view[zones/zone/counters[@type=&quot;qtype&quot;]/counter &gt;0]\">\n"
" <h3>View <xsl:value-of select=\"@name\"/></h3>\n"
@@ -513,6 +622,7 @@ static char xslmsg[] =
" graphs.push({\n"
" 'title': \"Query Types for zone <xsl:value-of select=\"@name\"/>\",\n"
" 'target': 'chart_qtype_<xsl:value-of select=\"../../@name\"/>_<xsl:value-of select=\"@name\"/>',\n"
+ " 'style': 'barchart',\n"
" 'data': [['Type','Counter'],<xsl:for-each select=\"counters[@type=&quot;qtype&quot;]/counter[.&gt;0 and @name != &quot;QryAuthAns&quot;]\">['<xsl:value-of select=\"@name\"/>',<xsl:value-of select=\".\"/>],</xsl:for-each>]\n"
" });\n"
"\n"
@@ -520,7 +630,7 @@ static char xslmsg[] =
" <xsl:variable name=\"target\">\n"
" <xsl:value-of select=\"@name\"/>\n"
" </xsl:variable>\n"
- " <div class=\"pie\" id=\"chart_qtype_{$thisview2}_{$target}\"/>\n"
+ " <div class=\"pie\" id=\"chart_qtype_{$thisview2}_{$target}\">[no data to display]</div>\n"
" </xsl:if>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"counters[@type=&quot;qtype&quot;]/counter\">\n"
@@ -544,8 +654,10 @@ static char xslmsg[] =
" </xsl:if>\n"
" </xsl:for-each>\n"
" </xsl:for-each>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"socketmgr/sockets/socket\">\n"
" <h2>Network Status</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"netstat\">\n"
" <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
@@ -591,6 +703,8 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"taskmgr/thread-model/type\">\n"
" <h2>Task Manager Configuration</h2>\n"
" <table class=\"counters\">\n"
" <tr>\n"
@@ -619,8 +733,10 @@ static char xslmsg[] =
" </tr>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"taskmgr/tasks/task\">\n"
" <h2>Tasks</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"tasks\">\n"
" <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
@@ -656,6 +772,8 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"memory/summary\">\n"
" <h2>Memory Usage Summary</h2>\n"
" <table class=\"counters\">\n"
" <xsl:for-each select=\"memory/summary/*\">\n"
@@ -676,8 +794,10 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
+ " </xsl:if>\n"
+ " <xsl:if test=\"memory/contexts/context\">\n"
" <h2>Memory Contexts</h2>\n"
- " <table class=\"counters\">\n"
+ " <table class=\"mctx\">\n"
" <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
@@ -732,6 +852,7 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
+ " </xsl:if>\n"
" <hr/>\n"
" <p class=\"footer\">Internet Systems Consortium Inc.<br/><a href=\"http://www.isc.org\">http://www.isc.org</a></p>\n"
" </body>\n"
diff --git a/bin/named/builtin.c b/bin/named/builtin.c
index d6d7538a..e55e9542 100644
--- a/bin/named/builtin.c
+++ b/bin/named/builtin.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -117,7 +117,7 @@ dns64_rdata(unsigned char *v, size_t start, unsigned char *rdata) {
rdata[j++] = decimal[c];
}
}
- memcpy(&rdata[j], "\07in-addr\04arpa", 14);
+ memmove(&rdata[j], "\07in-addr\04arpa", 14);
return (j + 14);
}
@@ -320,7 +320,7 @@ put_txt(dns_sdblookup_t *lookup, const char *text) {
if (len > 255)
len = 255; /* Silently truncate */
buf[0] = len;
- memcpy(&buf[1], text, len);
+ memmove(&buf[1], text, len);
return (dns_sdb_putrdata(lookup, dns_rdatatype_txt, 0, buf, len + 1));
}
@@ -502,11 +502,11 @@ builtin_create(const char *zone, int argc, char **argv,
isc_mem_put(ns_g_mctx, empty, sizeof (*empty));
} else {
if (strcmp(argv[0], "empty") == 0)
- memcpy(empty, &empty_builtin,
- sizeof (empty_builtin));
+ memmove(empty, &empty_builtin,
+ sizeof (empty_builtin));
else
- memcpy(empty, &dns64_builtin,
- sizeof (empty_builtin));
+ memmove(empty, &dns64_builtin,
+ sizeof (empty_builtin));
empty->server = server;
empty->contact = contact;
*dbdata = empty;
diff --git a/bin/named/config.c b/bin/named/config.c
index 92cf7bf7..27827208 100644
--- a/bin/named/config.c
+++ b/bin/named/config.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -573,7 +573,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (listcount != 0) {
- memcpy(new, lists, oldsize);
+ memmove(new, lists, oldsize);
isc_mem_put(mctx, lists, oldsize);
}
lists = new;
@@ -608,7 +608,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (stackcount != 0) {
- memcpy(new, stack, oldsize);
+ memmove(new, stack, oldsize);
isc_mem_put(mctx, stack, oldsize);
}
stack = new;
@@ -635,7 +635,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (addrcount != 0) {
- memcpy(new, addrs, oldsize);
+ memmove(new, addrs, oldsize);
isc_mem_put(mctx, addrs, oldsize);
}
addrs = new;
@@ -647,7 +647,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
if (new == NULL)
goto cleanup;
if (keycount != 0) {
- memcpy(new, keys, oldsize);
+ memmove(new, keys, oldsize);
isc_mem_put(mctx, keys, oldsize);
}
keys = new;
@@ -695,7 +695,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
new = isc_mem_get(mctx, newsize);
if (new == NULL)
goto cleanup;
- memcpy(new, addrs, newsize);
+ memmove(new, addrs, newsize);
} else
new = NULL;
isc_mem_put(mctx, addrs, oldsize);
@@ -708,7 +708,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
new = isc_mem_get(mctx, newsize);
if (new == NULL)
goto cleanup;
- memcpy(new, keys, newsize);
+ memmove(new, keys, newsize);
} else
new = NULL;
isc_mem_put(mctx, keys, oldsize);
diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c
index c46a6e15..509a113b 100644
--- a/bin/named/controlconf.c
+++ b/bin/named/controlconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -367,7 +367,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
secret.rstart = isc_mem_get(listener->mctx, key->secret.length);
if (secret.rstart == NULL)
goto cleanup;
- memcpy(secret.rstart, key->secret.base, key->secret.length);
+ memmove(secret.rstart, key->secret.base, key->secret.length);
secret.rend = secret.rstart + key->secret.length;
result = isccc_cc_fromwire(&ccregion, &request, &secret);
if (result == ISC_R_SUCCESS)
@@ -784,8 +784,8 @@ register_keys(const cfg_obj_t *control, const cfg_obj_t *keylist,
free_controlkey(keyid, mctx);
break;
}
- memcpy(keyid->secret.base, isc_buffer_base(&b),
- keyid->secret.length);
+ memmove(keyid->secret.base, isc_buffer_base(&b),
+ keyid->secret.length);
}
}
}
@@ -864,8 +864,8 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
"out of memory", keyid->keyname);
CHECK(ISC_R_NOMEMORY);
}
- memcpy(keyid->secret.base, isc_buffer_base(&b),
- keyid->secret.length);
+ memmove(keyid->secret.base, isc_buffer_base(&b),
+ keyid->secret.length);
ISC_LIST_APPEND(*keyids, keyid, link);
keyid = NULL;
result = ISC_R_SUCCESS;
diff --git a/bin/named/lwaddr.c b/bin/named/lwaddr.c
index ed7880ac..aecccce2 100644
--- a/bin/named/lwaddr.c
+++ b/bin/named/lwaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -41,11 +41,11 @@ lwaddr_netaddr_fromlwresaddr(isc_netaddr_t *na, lwres_addr_t *la) {
if (la->family == LWRES_ADDRTYPE_V4) {
struct in_addr ina;
- memcpy(&ina.s_addr, la->address, 4);
+ memmove(&ina.s_addr, la->address, 4);
isc_netaddr_fromin(na, &ina);
} else {
struct in6_addr ina6;
- memcpy(&ina6.s6_addr, la->address, 16);
+ memmove(&ina6.s6_addr, la->address, 16);
isc_netaddr_fromin6(na, &ina6);
}
return (ISC_R_SUCCESS);
@@ -77,11 +77,11 @@ lwaddr_lwresaddr_fromnetaddr(lwres_addr_t *la, isc_netaddr_t *na) {
if (na->family == AF_INET) {
la->family = LWRES_ADDRTYPE_V4;
la->length = 4;
- memcpy(la->address, &na->type.in, 4);
+ memmove(la->address, &na->type.in, 4);
} else {
la->family = LWRES_ADDRTYPE_V6;
la->length = 16;
- memcpy(la->address, &na->type.in6, 16);
+ memmove(la->address, &na->type.in6, 16);
}
return (ISC_R_SUCCESS);
}
diff --git a/bin/named/lwdgnba.c b/bin/named/lwdgnba.c
index dfc2ad65..2de5287d 100644
--- a/bin/named/lwdgnba.c
+++ b/bin/named/lwdgnba.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -226,12 +226,12 @@ ns_lwdclient_processgnba(ns_lwdclient_t *client, lwres_buffer_t *b) {
client->na.family = AF_INET;
if (req->addr.length != 4)
goto out;
- memcpy(&client->na.type.in, req->addr.address, 4);
+ memmove(&client->na.type.in, req->addr.address, 4);
} else if (req->addr.family == LWRES_ADDRTYPE_V6) {
client->na.family = AF_INET6;
if (req->addr.length != 16)
goto out;
- memcpy(&client->na.type.in6, req->addr.address, 16);
+ memmove(&client->na.type.in6, req->addr.address, 16);
} else {
goto out;
}
diff --git a/bin/named/lwdgrbn.c b/bin/named/lwdgrbn.c
index bbb4fbc5..3e7b15bb 100644
--- a/bin/named/lwdgrbn.c
+++ b/bin/named/lwdgrbn.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -124,8 +124,8 @@ iterate_node(lwres_grbnresponse_t *grbn, dns_db_t *db, dns_dbnode_t *node,
lens = isc_mem_get(mctx, size * sizeof(*lens));
if (lens == NULL)
goto out;
- memcpy(rdatas, oldrdatas, used * sizeof(*rdatas));
- memcpy(lens, oldlens, used * sizeof(*lens));
+ memmove(rdatas, oldrdatas, used * sizeof(*rdatas));
+ memmove(lens, oldlens, used * sizeof(*lens));
isc_mem_put(mctx, oldrdatas,
oldsize * sizeof(*oldrdatas));
isc_mem_put(mctx, oldlens, oldsize * sizeof(*oldlens));
@@ -158,8 +158,8 @@ iterate_node(lwres_grbnresponse_t *grbn, dns_db_t *db, dns_dbnode_t *node,
newlens = isc_mem_get(mctx, used * sizeof(*lens));
if (newlens == NULL)
goto out;
- memcpy(newrdatas, rdatas, used * sizeof(*rdatas));
- memcpy(newlens, lens, used * sizeof(*lens));
+ memmove(newrdatas, rdatas, used * sizeof(*rdatas));
+ memmove(newlens, lens, used * sizeof(*lens));
isc_mem_put(mctx, rdatas, size * sizeof(*rdatas));
isc_mem_put(mctx, lens, size * sizeof(*lens));
grbn->rdatas = newrdatas;
diff --git a/bin/named/named.conf.5 b/bin/named/named.conf.5
index 26edc4a6..0f5662c3 100644
--- a/bin/named/named.conf.5
+++ b/bin/named/named.conf.5
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
.\"
.\" Permission to use, copy, modify, and/or distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
@@ -323,7 +323,7 @@ options {
zone\-statistics \fIboolean\fR;
key\-directory \fIquoted_string\fR;
managed\-keys\-directory \fIquoted_string\fR;
- auto\-dnssec \fBallow\fR|\fBmaintain\fR|\fBcreate\fR|\fBoff\fR;
+ auto\-dnssec \fBallow\fR|\fBmaintain\fR|\fBoff\fR;
try\-tcp\-refresh \fIboolean\fR;
zero\-no\-soa\-ttl \fIboolean\fR;
zero\-no\-soa\-ttl\-cache \fIboolean\fR;
@@ -596,5 +596,5 @@ zone \fIstring\fR \fIoptional_class\fR {
\fBrndc\fR(8),
BIND 9 Administrator Reference Manual.
.SH "COPYRIGHT"
-Copyright \(co 2004\-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004\-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
.br
diff --git a/bin/named/named.conf.docbook b/bin/named/named.conf.docbook
index 35cd6276..b4d0c38e 100644
--- a/bin/named/named.conf.docbook
+++ b/bin/named/named.conf.docbook
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@@ -45,6 +45,7 @@
<year>2010</year>
<year>2011</year>
<year>2013</year>
+ <year>2014</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>
@@ -366,7 +367,7 @@ options {
zone-statistics <replaceable>boolean</replaceable>;
key-directory <replaceable>quoted_string</replaceable>;
managed-keys-directory <replaceable>quoted_string</replaceable>;
- auto-dnssec <constant>allow</constant>|<constant>maintain</constant>|<constant>create</constant>|<constant>off</constant>;
+ auto-dnssec <constant>allow</constant>|<constant>maintain</constant>|<constant>off</constant>;
try-tcp-refresh <replaceable>boolean</replaceable>;
zero-no-soa-ttl <replaceable>boolean</replaceable>;
zero-no-soa-ttl-cache <replaceable>boolean</replaceable>;
diff --git a/bin/named/named.conf.html b/bin/named/named.conf.html
index b8b1247b..58474667 100644
--- a/bin/named/named.conf.html
+++ b/bin/named/named.conf.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@@ -31,7 +31,7 @@
<div class="cmdsynopsis"><p><code class="command">named.conf</code> </p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543357"></a><h2>DESCRIPTION</h2>
+<a name="id2543361"></a><h2>DESCRIPTION</h2>
<p><code class="filename">named.conf</code> is the configuration file
for
<span><strong class="command">named</strong></span>. Statements are enclosed
@@ -50,14 +50,14 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543385"></a><h2>ACL</h2>
+<a name="id2543388"></a><h2>ACL</h2>
<div class="literallayout"><p><br>
acl <em class="replaceable"><code>string</code></em> { <em class="replaceable"><code>address_match_element</code></em>; ... };<br>
<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543401"></a><h2>KEY</h2>
+<a name="id2543404"></a><h2>KEY</h2>
<div class="literallayout"><p><br>
key <em class="replaceable"><code>domain_name</code></em> {<br>
algorithm <em class="replaceable"><code>string</code></em>;<br>
@@ -66,7 +66,7 @@ key <em class="replaceable"><code>domain_name</code></em> {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543420"></a><h2>MASTERS</h2>
+<a name="id2543424"></a><h2>MASTERS</h2>
<div class="literallayout"><p><br>
masters <em class="replaceable"><code>string</code></em> [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
( <em class="replaceable"><code>masters</code></em> | <em class="replaceable"><code>ipv4_address</code></em> [<span class="optional">port <em class="replaceable"><code>integer</code></em></span>] |<br>
@@ -75,7 +75,7 @@ masters <em class="replaceable"><code>string</code></em> [<span class="optional"
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543466"></a><h2>SERVER</h2>
+<a name="id2543469"></a><h2>SERVER</h2>
<div class="literallayout"><p><br>
server ( <em class="replaceable"><code>ipv4_address[<span class="optional">/prefixlen</span>]</code></em> | <em class="replaceable"><code>ipv6_address[<span class="optional">/prefixlen</span>]</code></em> ) {<br>
bogus <em class="replaceable"><code>boolean</code></em>;<br>
@@ -97,7 +97,7 @@ server ( <em class="replaceable"><code>ipv4_address[<span class="optional">/pref
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543534"></a><h2>TRUSTED-KEYS</h2>
+<a name="id2543538"></a><h2>TRUSTED-KEYS</h2>
<div class="literallayout"><p><br>
trusted-keys {<br>
<em class="replaceable"><code>domain_name</code></em> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key</code></em>; ... <br>
@@ -105,7 +105,7 @@ trusted-keys {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543560"></a><h2>MANAGED-KEYS</h2>
+<a name="id2543563"></a><h2>MANAGED-KEYS</h2>
<div class="literallayout"><p><br>
managed-keys {<br>
<em class="replaceable"><code>domain_name</code></em> <code class="constant">initial-key</code> <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key</code></em>; ... <br>
@@ -113,7 +113,7 @@ managed-keys {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543589"></a><h2>CONTROLS</h2>
+<a name="id2543592"></a><h2>CONTROLS</h2>
<div class="literallayout"><p><br>
controls {<br>
inet ( <em class="replaceable"><code>ipv4_address</code></em> | <em class="replaceable"><code>ipv6_address</code></em> | * )<br>
@@ -125,7 +125,7 @@ controls {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543624"></a><h2>LOGGING</h2>
+<a name="id2543627"></a><h2>LOGGING</h2>
<div class="literallayout"><p><br>
logging {<br>
channel <em class="replaceable"><code>string</code></em> {<br>
@@ -143,7 +143,7 @@ logging {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543662"></a><h2>LWRES</h2>
+<a name="id2543666"></a><h2>LWRES</h2>
<div class="literallayout"><p><br>
lwres {<br>
listen-on [<span class="optional"> port <em class="replaceable"><code>integer</code></em> </span>] {<br>
@@ -156,7 +156,7 @@ lwres {<br>
</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2543704"></a><h2>OPTIONS</h2>
+<a name="id2543707"></a><h2>OPTIONS</h2>
<div class="literallayout"><p><br>
options {<br>
avoid-v4-udp-ports { <em class="replaceable"><code>port</code></em>; ... };<br>
@@ -331,7 +331,7 @@ options {<br>
zone-statistics <em class="replaceable"><code>boolean</code></em>;<br>
key-directory <em class="replaceable"><code>quoted_string</code></em>;<br>
managed-keys-directory <em class="replaceable"><code>quoted_string</code></em>;<br>
- auto-dnssec <code class="constant">allow</code>|<code class="constant">maintain</code>|<code class="constant">create</code>|<code class="constant">off</code>;<br>
+ auto-dnssec <code class="constant">allow</code>|<code class="constant">maintain</code>|<code class="constant">off</code>;<br>
try-tcp-refresh <em class="replaceable"><code>boolean</code></em>;<br>
zero-no-soa-ttl <em class="replaceable"><code>boolean</code></em>;<br>
zero-no-soa-ttl-cache <em class="replaceable"><code>boolean</code></em>;<br>
diff --git a/bin/named/query.c b/bin/named/query.c
index cf215755..c357f83e 100644
--- a/bin/named/query.c
+++ b/bin/named/query.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -4983,12 +4983,12 @@ rdata_tonetaddr(const dns_rdata_t *rdata, isc_netaddr_t *netaddr) {
switch (rdata->type) {
case dns_rdatatype_a:
INSIST(rdata->length == 4);
- memcpy(&ina.s_addr, rdata->data, 4);
+ memmove(&ina.s_addr, rdata->data, 4);
isc_netaddr_fromin(netaddr, &ina);
return (ISC_R_SUCCESS);
case dns_rdatatype_aaaa:
INSIST(rdata->length == 16);
- memcpy(in6a.s6_addr, rdata->data, 16);
+ memmove(in6a.s6_addr, rdata->data, 16);
isc_netaddr_fromin6(netaddr, &in6a);
return (ISC_R_SUCCESS);
default:
@@ -5261,8 +5261,7 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
dns_fixedname_t fixed;
dns_hash_t hash;
dns_name_t name;
- int order;
- unsigned int count;
+ unsigned int skip = 0, labels;
dns_rdata_nsec3_t nsec3;
dns_rdata_t rdata = DNS_RDATA_INIT;
isc_boolean_t optout;
@@ -5277,6 +5276,7 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
dns_name_init(&name, NULL);
dns_name_clone(qname, &name);
+ labels = dns_name_countlabels(&name);
dns_clientinfomethods_init(&cm, ns_client_sourceip);
dns_clientinfo_init(&ci, client);
@@ -5310,13 +5310,14 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
dns_rdata_reset(&rdata);
optout = ISC_TF((nsec3.flags & DNS_NSEC3FLAG_OPTOUT) != 0);
if (found != NULL && optout &&
- dns_name_fullcompare(&name, dns_db_origin(db), &order,
- &count) == dns_namereln_subdomain) {
+ dns_name_issubdomain(&name, dns_db_origin(db)))
+ {
dns_rdataset_disassociate(rdataset);
if (dns_rdataset_isassociated(sigrdataset))
dns_rdataset_disassociate(sigrdataset);
- count = dns_name_countlabels(&name) - 1;
- dns_name_getlabelsequence(&name, 1, count, &name);
+ skip++;
+ dns_name_getlabelsequence(qname, skip, labels - skip,
+ &name);
ns_client_log(client, DNS_LOGCATEGORY_DNSSEC,
NS_LOGMODULE_QUERY, ISC_LOG_DEBUG(3),
"looking for closest provable encloser");
@@ -5334,7 +5335,11 @@ query_findclosestnsec3(dns_name_t *qname, dns_db_t *db,
ns_client_log(client, DNS_LOGCATEGORY_DNSSEC,
NS_LOGMODULE_QUERY, ISC_LOG_WARNING,
"expected covering NSEC3, got an exact match");
- if (found != NULL)
+ if (found == qname) {
+ if (skip != 0U)
+ dns_name_getlabelsequence(qname, skip, labels - skip,
+ found);
+ } else if (found != NULL)
dns_name_copy(&name, found, NULL);
return;
}
diff --git a/bin/named/server.c b/bin/named/server.c
index e6c6ca6d..057dac1b 100644
--- a/bin/named/server.c
+++ b/bin/named/server.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -8609,7 +8609,7 @@ ns_server_signing(ns_server_t *server, char *args, isc_buffer_t *text) {
ptr = next_token(&args, " \t");
if (ptr == NULL)
return (ISC_R_UNEXPECTEDEND);
- memcpy(keystr, ptr, sizeof(keystr));
+ memmove(keystr, ptr, sizeof(keystr));
} else if (strcasecmp(ptr, "-nsec3param") == 0) {
const char *hashstr, *flagstr, *iterstr;
char nbuf[512];
diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c
index 37e98a8e..8ec08d7b 100644
--- a/bin/named/statschannel.c
+++ b/bin/named/statschannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -27,6 +27,7 @@
#include <isc/print.h>
#include <isc/socket.h>
#include <isc/stats.h>
+#include <isc/string.h>
#include <isc/task.h>
#include <dns/cache.h>
@@ -1057,7 +1058,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
ISC_XMLCHAR "type=\"text/xsl\" href=\"/bind9.ver3.xsl\""));
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "statistics"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "version",
- ISC_XMLCHAR "3.0"));
+ ISC_XMLCHAR "3.3"));
/* Set common fields for statistics dump */
dumparg.type = statsformat_xml;
@@ -1093,9 +1094,9 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
if (dumparg.result != ISC_R_SUCCESS)
goto error;
}
+else fprintf(stderr, "WTF WHERE'S RESQUERYRSTATS\n");
TRY0(xmlTextWriterEndElement(writer));
- /* <resstats> */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "type",
ISC_XMLCHAR "resstats"));
@@ -1109,7 +1110,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
if (result != ISC_R_SUCCESS)
goto error;
}
- TRY0(xmlTextWriterEndElement(writer)); /* </resstats> */
+ TRY0(xmlTextWriterEndElement(writer));
cacherrstats = dns_db_getrrsetstats(view->cachedb);
if (cacherrstats != NULL) {
@@ -1156,7 +1157,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
ISC_XMLCHAR "opcode"));
dns_opcodestats_dump(server->opcodestats, opcodestat_dump, &dumparg,
- 0);
+ ISC_STATSDUMP_VERBOSE);
if (dumparg.result != ISC_R_SUCCESS)
goto error;
@@ -1370,10 +1371,10 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "server"));
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "boot-time"));
TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR boottime));
- TRY0(xmlTextWriterEndElement(writer));
+ TRY0(xmlTextWriterEndElement(writer)); /* boot-time */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "current-time"));
TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR nowstr));
- TRY0(xmlTextWriterEndElement(writer));
+ TRY0(xmlTextWriterEndElement(writer)); /* current-time */
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "requests"));
dumparg.result = ISC_R_SUCCESS;
@@ -1461,7 +1462,8 @@ wrap_xmlfree(isc_buffer_t *buffer, void *arg) {
}
static isc_result_t
-render_index(const char *url, const char *querystring, void *arg,
+render_index(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers, void *arg,
unsigned int *retcode, const char **retmsg, const char **mimetype,
isc_buffer_t *b, isc_httpdfree_t **freecb,
void **freecb_args)
@@ -1472,7 +1474,9 @@ render_index(const char *url, const char *querystring, void *arg,
isc_result_t result;
UNUSED(url);
+ UNUSED(urlinfo);
UNUSED(querystring);
+ UNUSED(headers);
result = generatexml(server, &msglen, &msg);
@@ -1495,22 +1499,56 @@ render_index(const char *url, const char *querystring, void *arg,
#endif /* HAVE_LIBXML2 */
static isc_result_t
-render_xsl(const char *url, const char *querystring, void *args,
- unsigned int *retcode, const char **retmsg, const char **mimetype,
- isc_buffer_t *b, isc_httpdfree_t **freecb,
- void **freecb_args)
+render_xsl(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers,
+ void *args, unsigned int *retcode, const char **retmsg,
+ const char **mimetype, isc_buffer_t *b,
+ isc_httpdfree_t **freecb, void **freecb_args)
{
+ isc_result_t result;
+
UNUSED(url);
UNUSED(querystring);
UNUSED(args);
+ *freecb = NULL;
+ *freecb_args = NULL;
+ *mimetype = "text/xslt+xml";
+
+ if (urlinfo->isstatic) {
+ isc_time_t when;
+ char *p = strcasestr(headers, "If-Modified-Since: ");
+
+ if (p != NULL) {
+ time_t t1, t2;
+ p += strlen("If-Modified-Since: ");
+ result = isc_time_parsehttptimestamp(p, &when);
+ if (result != ISC_R_SUCCESS)
+ goto send;
+
+ result = isc_time_secondsastimet(&when, &t1);
+ if (result != ISC_R_SUCCESS)
+ goto send;
+
+ result = isc_time_secondsastimet(&urlinfo->loadtime,
+ &t2);
+ if (result != ISC_R_SUCCESS)
+ goto send;
+
+ if (t1 < t2)
+ goto send;
+
+ *retcode = 304;
+ *retmsg = "Not modified";
+ return (ISC_R_SUCCESS);
+ }
+ }
+
+ send:
*retcode = 200;
*retmsg = "OK";
- *mimetype = "text/xslt+xml";
isc_buffer_reinit(b, xslmsg, strlen(xslmsg));
isc_buffer_add(b, strlen(xslmsg));
- *freecb = NULL;
- *freecb_args = NULL;
return (ISC_R_SUCCESS);
}
@@ -1647,11 +1685,11 @@ add_listener(ns_server_t *server, ns_statschannel_t **listenerp,
#endif /* NEWSTATS */
#endif
#ifdef NEWSTATS
- isc_httpdmgr_addurl(listener->httpdmgr, "/bind9.ver3.xsl", render_xsl,
- server);
+ isc_httpdmgr_addurl2(listener->httpdmgr, "/bind9.ver3.xsl", ISC_TRUE,
+ render_xsl, server);
#else /* OLDSTATS */
- isc_httpdmgr_addurl(listener->httpdmgr, "/bind9.xsl", render_xsl,
- server);
+ isc_httpdmgr_addurl2(listener->httpdmgr, "/bind9.xsl", ISC_TRUE,
+ render_xsl, server);
#endif /* NEWSTATS */
*listenerp = listener;
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
diff --git a/bin/named/zoneconf.c b/bin/named/zoneconf.c
index 7f36b143..3369c42d 100644
--- a/bin/named/zoneconf.c
+++ b/bin/named/zoneconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -462,7 +462,7 @@ configure_staticstub_serveraddrs(const cfg_obj_t *zconfig, dns_zone_t *zone,
if (rdata == NULL)
return (ISC_R_NOMEMORY);
region.base = (unsigned char *)(rdata + 1);
- memcpy(region.base, &na.type, region.length);
+ memmove(region.base, &na.type, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
rdatalist->type, &region);
@@ -490,7 +490,7 @@ configure_staticstub_serveraddrs(const cfg_obj_t *zconfig, dns_zone_t *zone,
}
region.length = sregion.length;
region.base = (unsigned char *)(rdata + 1);
- memcpy(region.base, sregion.base, region.length);
+ memmove(region.base, sregion.base, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
dns_rdatatype_ns, &region);
@@ -554,7 +554,7 @@ configure_staticstub_servernames(const cfg_obj_t *zconfig, dns_zone_t *zone,
return (ISC_R_NOMEMORY);
region.length = sregion.length;
region.base = (unsigned char *)(rdata + 1);
- memcpy(region.base, sregion.base, region.length);
+ memmove(region.base, sregion.base, region.length);
dns_rdata_init(rdata);
dns_rdata_fromregion(rdata, dns_zone_getclass(zone),
dns_rdatatype_ns, &region);
diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c
index 0a5cc508..9923f891 100644
--- a/bin/nsupdate/nsupdate.c
+++ b/bin/nsupdate/nsupdate.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -840,13 +840,16 @@ setup_system(void) {
if (servers == NULL)
fatal("out of memory");
for (i = 0; i < ns_total; i++) {
- if (lwconf->nameservers[i].family == LWRES_ADDRTYPE_V4) {
+ if (lwconf->nameservers[i].family == LWRES_ADDRTYPE_V4)
+ {
struct in_addr in4;
- memcpy(&in4, lwconf->nameservers[i].address, 4);
+ memmove(&in4,
+ lwconf->nameservers[i].address, 4);
isc_sockaddr_fromin(&servers[i], &in4, dnsport);
} else {
struct in6_addr in6;
- memcpy(&in6, lwconf->nameservers[i].address, 16);
+ memmove(&in6,
+ lwconf->nameservers[i].address, 16);
isc_sockaddr_fromin6(&servers[i], &in6,
dnsport);
}
@@ -2580,7 +2583,7 @@ start_gssrequest(dns_name_t *master) {
if (userserver == NULL)
get_address(namestr, dnsport, kserver);
else
- (void)memcpy(kserver, userserver, sizeof(isc_sockaddr_t));
+ (void)memmove(kserver, userserver, sizeof(isc_sockaddr_t));
dns_fixedname_init(&fname);
servname = dns_fixedname_name(&fname);
diff --git a/bin/pkcs11/openssl-1.0.0k-patch b/bin/pkcs11/openssl-1.0.0l-patch
index 7a6a1fa7..0d6aeefa 100644
--- a/bin/pkcs11/openssl-1.0.0k-patch
+++ b/bin/pkcs11/openssl-1.0.0l-patch
@@ -1,7 +1,7 @@
Index: openssl/Configure
-diff -u openssl/Configure:1.9.2.1.2.1.4.1 openssl/Configure:1.11.2.1
---- openssl/Configure:1.9.2.1.2.1.4.1 Tue May 14 15:37:45 2013
-+++ openssl/Configure Tue May 14 15:49:01 2013
+diff -u openssl/Configure:1.9.2.1.2.1.4.1.2.1 openssl/Configure:1.11.2.2
+--- openssl/Configure:1.9.2.1.2.1.4.1.2.1 Tue Jan 7 09:25:41 2014
++++ openssl/Configure Tue Jan 7 09:28:47 2014
@@ -10,7 +10,7 @@
# see INSTALL for instructions.
@@ -150,7 +150,7 @@ diff -u openssl/Makefile.org:1.5.2.1.2.1 openssl/Makefile.org:1.6
Index: openssl/README.pkcs11
diff -u /dev/null openssl/README.pkcs11:1.7.4.1
---- /dev/null Fri Oct 4 14:35:09 2013
+--- /dev/null Tue Jan 7 11:13:25 2014
+++ openssl/README.pkcs11 Fri Oct 4 14:33:56 2013
@@ -0,0 +1,266 @@
+ISC modified
@@ -610,7 +610,7 @@ diff -u openssl/crypto/engine/Makefile:1.8.2.1 openssl/crypto/engine/Makefile:1.
tb_asnmth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
Index: openssl/crypto/engine/cryptoki.h
diff -u /dev/null openssl/crypto/engine/cryptoki.h:1.4
---- /dev/null Fri Oct 4 14:35:09 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/cryptoki.h Thu Dec 18 00:14:12 2008
@@ -0,0 +1,103 @@
+/*
@@ -754,7 +754,7 @@ diff -u openssl/crypto/engine/engine.h:1.5.2.1 openssl/crypto/engine/engine.h:1.
#endif
Index: openssl/crypto/engine/hw_pk11.c
diff -u /dev/null openssl/crypto/engine/hw_pk11.c:1.30.4.2
---- /dev/null Fri Oct 4 14:35:09 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11.c Fri Oct 4 14:33:56 2013
@@ -0,0 +1,4116 @@
+/*
@@ -4875,7 +4875,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11.c:1.30.4.2
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/hw_pk11_err.c
diff -u /dev/null openssl/crypto/engine/hw_pk11_err.c:1.5
---- /dev/null Fri Oct 4 14:35:09 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11_err.c Tue Jun 14 00:43:26 2011
@@ -0,0 +1,288 @@
+/*
@@ -5168,7 +5168,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_err.c:1.5
+}
Index: openssl/crypto/engine/hw_pk11_err.h
diff -u /dev/null openssl/crypto/engine/hw_pk11_err.h:1.12.4.1
---- /dev/null Fri Oct 4 14:35:09 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11_err.h Fri Oct 4 14:33:56 2013
@@ -0,0 +1,440 @@
+/*
@@ -5613,7 +5613,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_err.h:1.12.4.1
+#endif /* HW_PK11_ERR_H */
Index: openssl/crypto/engine/hw_pk11_pub.c
diff -u /dev/null openssl/crypto/engine/hw_pk11_pub.c:1.38.2.3
---- /dev/null Fri Oct 4 14:35:09 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11_pub.c Fri Oct 4 14:33:56 2013
@@ -0,0 +1,3556 @@
+/*
@@ -9174,7 +9174,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_pub.c:1.38.2.3
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/hw_pk11ca.h
diff -u /dev/null openssl/crypto/engine/hw_pk11ca.h:1.4
---- /dev/null Fri Oct 4 14:35:10 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11ca.h Wed Jun 15 21:12:20 2011
@@ -0,0 +1,32 @@
+/* Redefine all pk11/PK11 external symbols to pk11ca/PK11CA */
@@ -9211,7 +9211,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11ca.h:1.4
+#define ENGINE_load_pk11 ENGINE_load_pk11ca
Index: openssl/crypto/engine/hw_pk11so.c
diff -u /dev/null openssl/crypto/engine/hw_pk11so.c:1.7.4.1
---- /dev/null Fri Oct 4 14:35:10 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11so.c Fri Oct 4 14:33:56 2013
@@ -0,0 +1,1775 @@
+/*
@@ -10991,7 +10991,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so.c:1.7.4.1
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/hw_pk11so.h
diff -u /dev/null openssl/crypto/engine/hw_pk11so.h:1.4
---- /dev/null Fri Oct 4 14:35:10 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11so.h Wed Jun 15 21:12:20 2011
@@ -0,0 +1,32 @@
+/* Redefine all pk11/PK11 external symbols to pk11so/PK11SO */
@@ -11028,7 +11028,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so.h:1.4
+#define ENGINE_load_pk11 ENGINE_load_pk11so
Index: openssl/crypto/engine/hw_pk11so_pub.c
diff -u /dev/null openssl/crypto/engine/hw_pk11so_pub.c:1.8.2.2
---- /dev/null Fri Oct 4 14:35:10 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/hw_pk11so_pub.c Fri Oct 4 14:33:56 2013
@@ -0,0 +1,1642 @@
+/*
@@ -12675,11 +12675,11 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so_pub.c:1.8.2.2
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/pkcs11.h
diff -u /dev/null openssl/crypto/engine/pkcs11.h:1.1.1.1
---- /dev/null Fri Oct 4 14:35:10 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/pkcs11.h Wed Oct 24 23:27:09 2007
@@ -0,0 +1,299 @@
+/* pkcs11.h include file for PKCS #11. */
-+/* $Revision$ */
++/* $Revision: 1.1.1.1 $ */
+
+/* License to copy and use this software is granted provided that it is
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
@@ -12979,11 +12979,11 @@ diff -u /dev/null openssl/crypto/engine/pkcs11.h:1.1.1.1
+#endif
Index: openssl/crypto/engine/pkcs11f.h
diff -u /dev/null openssl/crypto/engine/pkcs11f.h:1.1.1.1
---- /dev/null Fri Oct 4 14:35:10 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/pkcs11f.h Wed Oct 24 23:27:09 2007
@@ -0,0 +1,912 @@
+/* pkcs11f.h include file for PKCS #11. */
-+/* $Revision$ */
++/* $Revision: 1.1.1.1 $ */
+
+/* License to copy and use this software is granted provided that it is
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
@@ -13896,11 +13896,11 @@ diff -u /dev/null openssl/crypto/engine/pkcs11f.h:1.1.1.1
+#endif
Index: openssl/crypto/engine/pkcs11t.h
diff -u /dev/null openssl/crypto/engine/pkcs11t.h:1.2
---- /dev/null Fri Oct 4 14:35:10 2013
+--- /dev/null Tue Jan 7 11:13:26 2014
+++ openssl/crypto/engine/pkcs11t.h Sat Aug 30 11:58:07 2008
@@ -0,0 +1,1885 @@
+/* pkcs11t.h include file for PKCS #11. */
-+/* $Revision$ */
++/* $Revision: 1.2 $ */
+
+/* License to copy and use this software is granted provided that it is
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
diff --git a/bin/pkcs11/openssl-1.0.1e-patch b/bin/pkcs11/openssl-1.0.1f-patch
index 3b8b29c3..f492a11a 100644
--- a/bin/pkcs11/openssl-1.0.1e-patch
+++ b/bin/pkcs11/openssl-1.0.1f-patch
@@ -1,7 +1,7 @@
Index: openssl/Configure
-diff -u openssl/Configure:1.9.2.1.2.1.2.1.2.1 openssl/Configure:1.13
---- openssl/Configure:1.9.2.1.2.1.2.1.2.1 Wed May 15 11:46:59 2013
-+++ openssl/Configure Wed May 15 11:57:36 2013
+diff -u openssl/Configure:1.9.2.1.2.1.2.1.2.1.2.1 openssl/Configure:1.14
+--- openssl/Configure:1.9.2.1.2.1.2.1.2.1.2.1 Tue Jan 7 09:44:50 2014
++++ openssl/Configure Tue Jan 7 09:46:34 2014
@@ -10,7 +10,7 @@
# see INSTALL for instructions.
@@ -135,9 +135,9 @@ diff -u openssl/Configure:1.9.2.1.2.1.2.1.2.1 openssl/Configure:1.13
s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/;
s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/;
Index: openssl/Makefile.org
-diff -u openssl/Makefile.org:1.5.2.1.2.1.2.1.2.1 openssl/Makefile.org:1.8
---- openssl/Makefile.org:1.5.2.1.2.1.2.1.2.1 Wed May 15 11:46:59 2013
-+++ openssl/Makefile.org Wed May 15 11:57:36 2013
+diff -u openssl/Makefile.org:1.5.2.1.2.1.2.1.2.1.2.1 openssl/Makefile.org:1.9
+--- openssl/Makefile.org:1.5.2.1.2.1.2.1.2.1.2.1 Tue Jan 7 09:44:51 2014
++++ openssl/Makefile.org Tue Jan 7 09:46:34 2014
@@ -26,6 +26,9 @@
INSTALL_PREFIX=
INSTALLTOP=/usr/local/ssl
@@ -150,7 +150,7 @@ diff -u openssl/Makefile.org:1.5.2.1.2.1.2.1.2.1 openssl/Makefile.org:1.8
Index: openssl/README.pkcs11
diff -u /dev/null openssl/README.pkcs11:1.8
---- /dev/null Fri Oct 4 14:27:29 2013
+--- /dev/null Tue Jan 7 11:14:50 2014
+++ openssl/README.pkcs11 Fri Oct 4 14:16:43 2013
@@ -0,0 +1,266 @@
+ISC modified
@@ -611,7 +611,7 @@ diff -u openssl/crypto/engine/Makefile:1.8.2.1.4.1 openssl/crypto/engine/Makefil
tb_asnmth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
Index: openssl/crypto/engine/cryptoki.h
diff -u /dev/null openssl/crypto/engine/cryptoki.h:1.4
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/cryptoki.h Thu Dec 18 00:14:12 2008
@@ -0,0 +1,103 @@
+/*
@@ -755,7 +755,7 @@ diff -u openssl/crypto/engine/engine.h:1.5.2.1.4.1 openssl/crypto/engine/engine.
#endif
Index: openssl/crypto/engine/hw_pk11.c
diff -u /dev/null openssl/crypto/engine/hw_pk11.c:1.33
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11.c Fri Oct 4 14:07:41 2013
@@ -0,0 +1,4010 @@
+/*
@@ -4770,7 +4770,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11.c:1.33
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/hw_pk11_err.c
diff -u /dev/null openssl/crypto/engine/hw_pk11_err.c:1.5
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11_err.c Tue Jun 14 00:43:26 2011
@@ -0,0 +1,288 @@
+/*
@@ -5063,7 +5063,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_err.c:1.5
+}
Index: openssl/crypto/engine/hw_pk11_err.h
diff -u /dev/null openssl/crypto/engine/hw_pk11_err.h:1.13
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11_err.h Fri Oct 4 14:04:20 2013
@@ -0,0 +1,440 @@
+/*
@@ -5508,7 +5508,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_err.h:1.13
+#endif /* HW_PK11_ERR_H */
Index: openssl/crypto/engine/hw_pk11_pub.c
diff -u /dev/null openssl/crypto/engine/hw_pk11_pub.c:1.42
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11_pub.c Fri Oct 4 14:27:06 2013
@@ -0,0 +1,3556 @@
+/*
@@ -9069,7 +9069,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11_pub.c:1.42
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/hw_pk11ca.h
diff -u /dev/null openssl/crypto/engine/hw_pk11ca.h:1.4
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11ca.h Wed Jun 15 21:12:20 2011
@@ -0,0 +1,32 @@
+/* Redefine all pk11/PK11 external symbols to pk11ca/PK11CA */
@@ -9106,7 +9106,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11ca.h:1.4
+#define ENGINE_load_pk11 ENGINE_load_pk11ca
Index: openssl/crypto/engine/hw_pk11so.c
diff -u /dev/null openssl/crypto/engine/hw_pk11so.c:1.8
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11so.c Fri Oct 4 14:05:16 2013
@@ -0,0 +1,1775 @@
+/*
@@ -10886,7 +10886,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so.c:1.8
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/hw_pk11so.h
diff -u /dev/null openssl/crypto/engine/hw_pk11so.h:1.4
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11so.h Wed Jun 15 21:12:20 2011
@@ -0,0 +1,32 @@
+/* Redefine all pk11/PK11 external symbols to pk11so/PK11SO */
@@ -10923,7 +10923,7 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so.h:1.4
+#define ENGINE_load_pk11 ENGINE_load_pk11so
Index: openssl/crypto/engine/hw_pk11so_pub.c
diff -u /dev/null openssl/crypto/engine/hw_pk11so_pub.c:1.10
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/hw_pk11so_pub.c Fri Oct 4 14:05:38 2013
@@ -0,0 +1,1642 @@
+/*
@@ -12570,11 +12570,11 @@ diff -u /dev/null openssl/crypto/engine/hw_pk11so_pub.c:1.10
+#endif /* OPENSSL_NO_HW */
Index: openssl/crypto/engine/pkcs11.h
diff -u /dev/null openssl/crypto/engine/pkcs11.h:1.1.1.1
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/pkcs11.h Wed Oct 24 23:27:09 2007
@@ -0,0 +1,299 @@
+/* pkcs11.h include file for PKCS #11. */
-+/* $Revision$ */
++/* $Revision: 1.1.1.1 $ */
+
+/* License to copy and use this software is granted provided that it is
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
@@ -12874,11 +12874,11 @@ diff -u /dev/null openssl/crypto/engine/pkcs11.h:1.1.1.1
+#endif
Index: openssl/crypto/engine/pkcs11f.h
diff -u /dev/null openssl/crypto/engine/pkcs11f.h:1.1.1.1
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/pkcs11f.h Wed Oct 24 23:27:09 2007
@@ -0,0 +1,912 @@
+/* pkcs11f.h include file for PKCS #11. */
-+/* $Revision$ */
++/* $Revision: 1.1.1.1 $ */
+
+/* License to copy and use this software is granted provided that it is
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
@@ -13791,11 +13791,11 @@ diff -u /dev/null openssl/crypto/engine/pkcs11f.h:1.1.1.1
+#endif
Index: openssl/crypto/engine/pkcs11t.h
diff -u /dev/null openssl/crypto/engine/pkcs11t.h:1.2
---- /dev/null Fri Oct 4 14:27:30 2013
+--- /dev/null Tue Jan 7 11:14:51 2014
+++ openssl/crypto/engine/pkcs11t.h Sat Aug 30 11:58:07 2008
@@ -0,0 +1,1885 @@
+/* pkcs11t.h include file for PKCS #11. */
-+/* $Revision$ */
++/* $Revision: 1.2 $ */
+
+/* License to copy and use this software is granted provided that it is
+ * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
diff --git a/bin/rndc/rndc.c b/bin/rndc/rndc.c
index ba2c3f6d..33802db2 100644
--- a/bin/rndc/rndc.c
+++ b/bin/rndc/rndc.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -725,7 +725,7 @@ main(int argc, char **argv) {
result = isc_file_progname(*argv, program, sizeof(program));
if (result != ISC_R_SUCCESS)
- memcpy(program, "rndc", 5);
+ memmove(program, "rndc", 5);
progname = program;
admin_conffile = RNDC_CONFFILE;
@@ -857,7 +857,7 @@ main(int argc, char **argv) {
p = args;
for (i = 0; i < argc; i++) {
size_t len = strlen(argv[i]);
- memcpy(p, argv[i], len);
+ memmove(p, argv[i], len);
p += len;
*p++ = ' ';
}
diff --git a/bin/tests/hash_test.c b/bin/tests/hash_test.c
index 73d397b0..2b9165c6 100644
--- a/bin/tests/hash_test.c
+++ b/bin/tests/hash_test.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -66,35 +66,35 @@ main(int argc, char **argv) {
s = "abc";
isc_sha1_init(&sha1);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_sha1_update(&sha1, buffer, strlen(s));
isc_sha1_final(&sha1, digest);
print_digest(s, "sha1", digest, ISC_SHA1_DIGESTLENGTH/4);
s = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
isc_sha1_init(&sha1);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_sha1_update(&sha1, buffer, strlen(s));
isc_sha1_final(&sha1, digest);
print_digest(s, "sha1", digest, ISC_SHA1_DIGESTLENGTH/4);
s = "abc";
isc_sha224_init(&sha224);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_sha224_update(&sha224, buffer, strlen(s));
isc_sha224_final(digest, &sha224);
print_digest(s, "sha224", digest, ISC_SHA224_DIGESTLENGTH/4);
s = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
isc_sha224_init(&sha224);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_sha224_update(&sha224, buffer, strlen(s));
isc_sha224_final(digest, &sha224);
print_digest(s, "sha224", digest, ISC_SHA224_DIGESTLENGTH/4);
s = "abc";
isc_md5_init(&md5);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_md5_update(&md5, buffer, strlen(s));
isc_md5_final(&md5, digest);
print_digest(s, "md5", digest, 4);
@@ -105,7 +105,7 @@ main(int argc, char **argv) {
s = "Hi There";
memset(key, 0x0b, 16);
isc_hmacmd5_init(&hmacmd5, key, 16);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacmd5_update(&hmacmd5, buffer, strlen(s));
isc_hmacmd5_sign(&hmacmd5, digest);
print_digest(s, "hmacmd5", digest, 4);
@@ -113,7 +113,7 @@ main(int argc, char **argv) {
s = "what do ya want for nothing?";
strcpy((char *)key, "Jefe");
isc_hmacmd5_init(&hmacmd5, key, 4);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacmd5_update(&hmacmd5, buffer, strlen(s));
isc_hmacmd5_sign(&hmacmd5, digest);
print_digest(s, "hmacmd5", digest, 4);
@@ -125,7 +125,7 @@ main(int argc, char **argv) {
"\335\335\335\335\335\335\335\335\335\335";
memset(key, 0xaa, 16);
isc_hmacmd5_init(&hmacmd5, key, 16);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacmd5_update(&hmacmd5, buffer, strlen(s));
isc_hmacmd5_sign(&hmacmd5, digest);
print_digest(s, "hmacmd5", digest, 4);
@@ -136,7 +136,7 @@ main(int argc, char **argv) {
s = "Hi There";
memset(key, 0x0b, 20);
isc_hmacsha1_init(&hmacsha1, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha1_update(&hmacsha1, buffer, strlen(s));
isc_hmacsha1_sign(&hmacsha1, digest, ISC_SHA1_DIGESTLENGTH);
print_digest(s, "hmacsha1", digest, ISC_SHA1_DIGESTLENGTH/4);
@@ -144,7 +144,7 @@ main(int argc, char **argv) {
s = "what do ya want for nothing?";
strcpy((char *)key, "Jefe");
isc_hmacsha1_init(&hmacsha1, key, 4);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha1_update(&hmacsha1, buffer, strlen(s));
isc_hmacsha1_sign(&hmacsha1, digest, ISC_SHA1_DIGESTLENGTH);
print_digest(s, "hmacsha1", digest, ISC_SHA1_DIGESTLENGTH/4);
@@ -156,7 +156,7 @@ main(int argc, char **argv) {
"\335\335\335\335\335\335\335\335\335\335";
memset(key, 0xaa, 20);
isc_hmacsha1_init(&hmacsha1, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha1_update(&hmacsha1, buffer, strlen(s));
isc_hmacsha1_sign(&hmacsha1, digest, ISC_SHA1_DIGESTLENGTH);
print_digest(s, "hmacsha1", digest, ISC_SHA1_DIGESTLENGTH/4);
@@ -167,7 +167,7 @@ main(int argc, char **argv) {
s = "Hi There";
memset(key, 0x0b, 20);
isc_hmacsha224_init(&hmacsha224, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha224_update(&hmacsha224, buffer, strlen(s));
isc_hmacsha224_sign(&hmacsha224, digest, ISC_SHA224_DIGESTLENGTH);
print_digest(s, "hmacsha224", digest, ISC_SHA224_DIGESTLENGTH/4);
@@ -175,7 +175,7 @@ main(int argc, char **argv) {
s = "what do ya want for nothing?";
strcpy((char *)key, "Jefe");
isc_hmacsha224_init(&hmacsha224, key, 4);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha224_update(&hmacsha224, buffer, strlen(s));
isc_hmacsha224_sign(&hmacsha224, digest, ISC_SHA224_DIGESTLENGTH);
print_digest(s, "hmacsha224", digest, ISC_SHA224_DIGESTLENGTH/4);
@@ -187,7 +187,7 @@ main(int argc, char **argv) {
"\335\335\335\335\335\335\335\335\335\335";
memset(key, 0xaa, 20);
isc_hmacsha224_init(&hmacsha224, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha224_update(&hmacsha224, buffer, strlen(s));
isc_hmacsha224_sign(&hmacsha224, digest, ISC_SHA224_DIGESTLENGTH);
print_digest(s, "hmacsha224", digest, ISC_SHA224_DIGESTLENGTH/4);
@@ -198,7 +198,7 @@ main(int argc, char **argv) {
s = "Hi There";
memset(key, 0x0b, 20);
isc_hmacsha256_init(&hmacsha256, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha256_update(&hmacsha256, buffer, strlen(s));
isc_hmacsha256_sign(&hmacsha256, digest, ISC_SHA256_DIGESTLENGTH);
print_digest(s, "hmacsha256", digest, ISC_SHA256_DIGESTLENGTH/4);
@@ -206,7 +206,7 @@ main(int argc, char **argv) {
s = "what do ya want for nothing?";
strcpy((char *)key, "Jefe");
isc_hmacsha256_init(&hmacsha256, key, 4);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha256_update(&hmacsha256, buffer, strlen(s));
isc_hmacsha256_sign(&hmacsha256, digest, ISC_SHA256_DIGESTLENGTH);
print_digest(s, "hmacsha256", digest, ISC_SHA256_DIGESTLENGTH/4);
@@ -218,7 +218,7 @@ main(int argc, char **argv) {
"\335\335\335\335\335\335\335\335\335\335";
memset(key, 0xaa, 20);
isc_hmacsha256_init(&hmacsha256, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha256_update(&hmacsha256, buffer, strlen(s));
isc_hmacsha256_sign(&hmacsha256, digest, ISC_SHA256_DIGESTLENGTH);
print_digest(s, "hmacsha256", digest, ISC_SHA256_DIGESTLENGTH/4);
@@ -229,7 +229,7 @@ main(int argc, char **argv) {
s = "Hi There";
memset(key, 0x0b, 20);
isc_hmacsha384_init(&hmacsha384, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha384_update(&hmacsha384, buffer, strlen(s));
isc_hmacsha384_sign(&hmacsha384, digest, ISC_SHA384_DIGESTLENGTH);
print_digest(s, "hmacsha384", digest, ISC_SHA384_DIGESTLENGTH/4);
@@ -237,7 +237,7 @@ main(int argc, char **argv) {
s = "what do ya want for nothing?";
strcpy((char *)key, "Jefe");
isc_hmacsha384_init(&hmacsha384, key, 4);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha384_update(&hmacsha384, buffer, strlen(s));
isc_hmacsha384_sign(&hmacsha384, digest, ISC_SHA384_DIGESTLENGTH);
print_digest(s, "hmacsha384", digest, ISC_SHA384_DIGESTLENGTH/4);
@@ -249,7 +249,7 @@ main(int argc, char **argv) {
"\335\335\335\335\335\335\335\335\335\335";
memset(key, 0xaa, 20);
isc_hmacsha384_init(&hmacsha384, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha384_update(&hmacsha384, buffer, strlen(s));
isc_hmacsha384_sign(&hmacsha384, digest, ISC_SHA384_DIGESTLENGTH);
print_digest(s, "hmacsha384", digest, ISC_SHA384_DIGESTLENGTH/4);
@@ -260,7 +260,7 @@ main(int argc, char **argv) {
s = "Hi There";
memset(key, 0x0b, 20);
isc_hmacsha512_init(&hmacsha512, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha512_update(&hmacsha512, buffer, strlen(s));
isc_hmacsha512_sign(&hmacsha512, digest, ISC_SHA512_DIGESTLENGTH);
print_digest(s, "hmacsha512", digest, ISC_SHA512_DIGESTLENGTH/4);
@@ -268,7 +268,7 @@ main(int argc, char **argv) {
s = "what do ya want for nothing?";
strcpy((char *)key, "Jefe");
isc_hmacsha512_init(&hmacsha512, key, 4);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha512_update(&hmacsha512, buffer, strlen(s));
isc_hmacsha512_sign(&hmacsha512, digest, ISC_SHA512_DIGESTLENGTH);
print_digest(s, "hmacsha512", digest, ISC_SHA512_DIGESTLENGTH/4);
@@ -280,7 +280,7 @@ main(int argc, char **argv) {
"\335\335\335\335\335\335\335\335\335\335";
memset(key, 0xaa, 20);
isc_hmacsha512_init(&hmacsha512, key, 20);
- memcpy(buffer, s, strlen(s));
+ memmove(buffer, s, strlen(s));
isc_hmacsha512_update(&hmacsha512, buffer, strlen(s));
isc_hmacsha512_sign(&hmacsha512, digest, ISC_SHA512_DIGESTLENGTH);
print_digest(s, "hmacsha512", digest, ISC_SHA512_DIGESTLENGTH/4);
diff --git a/bin/tests/names/t_names.c b/bin/tests/names/t_names.c
index 4b710e67..1982e5ec 100644
--- a/bin/tests/names/t_names.c
+++ b/bin/tests/names/t_names.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -296,7 +296,7 @@ hname_to_tname(char *src, char *target, size_t len) {
*/
if (srclen >= len)
return (1);
- memcpy(target, src, srclen + 1);
+ memmove(target, src, srclen + 1);
return (0);
}
diff --git a/bin/tests/rdata_test.c b/bin/tests/rdata_test.c
index 51cc406a..21352905 100644
--- a/bin/tests/rdata_test.c
+++ b/bin/tests/rdata_test.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1193,7 +1193,7 @@ main(int argc, char *argv[]) {
dns_rdata_init(&last);
region.base = malloc(region.length = rdata.length);
if (region.base) {
- memcpy(region.base, rdata.data, rdata.length);
+ memmove(region.base, rdata.data, rdata.length);
dns_rdata_fromregion(&last, class, type, &region);
lasttype = type;
first = 0;
diff --git a/bin/tests/system/checkconf/clean.sh b/bin/tests/system/checkconf/clean.sh
index 94f09d9b..dde87131 100644
--- a/bin/tests/system/checkconf/clean.sh
+++ b/bin/tests/system/checkconf/clean.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -17,3 +17,4 @@
# $Id: clean.sh,v 1.2 2011/05/07 05:55:17 each Exp $
rm -f good.conf.in good.conf.out badzero.conf
+rm -rf test.keydir
diff --git a/bin/tests/system/checkconf/good.conf b/bin/tests/system/checkconf/good.conf
index 5444fdde..defbab47 100644
--- a/bin/tests/system/checkconf/good.conf
+++ b/bin/tests/system/checkconf/good.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2010-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005, 2007, 2010-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -104,3 +104,7 @@ view "second" {
dnssec-validation auto;
zone-statistics full;
};
+key "mykey" {
+ algorithm "hmac-md5";
+ secret "qwertyuiopasdfgh";
+};
diff --git a/bin/tests/system/checkconf/tests.sh b/bin/tests/system/checkconf/tests.sh
index 2f945bf8..d47addee 100644
--- a/bin/tests/system/checkconf/tests.sh
+++ b/bin/tests/system/checkconf/tests.sh
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2007, 2010-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2005, 2007, 2010-2014 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -34,6 +34,16 @@ cmp good.conf.in good.conf.out || ret=1
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
+echo "I: checking that named-checkconf -x removes secrets"
+ret=0
+# ensure there is a secret and that it is not the check string.
+grep 'secret "' good.conf.in > /dev/null || ret=1
+grep 'secret "????????????????"' good.conf.in > /dev/null 2>&1 && ret=1
+$CHECKCONF -p -x good.conf.in | grep -v '^good.conf.in:' > good.conf.out 2>&1 || ret=1
+grep 'secret "????????????????"' good.conf.out > /dev/null 2>&1 || ret=1
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
for bad in bad*.conf
do
ret=0
@@ -120,5 +130,21 @@ n=`$CHECKCONF inline-bad.conf 2>&1 | grep "missing 'file' entry" | wc -l`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
+echo "I: checking for missing key directory warning"
+ret=0
+rm -rf test.keydir
+n=`$CHECKCONF warn-keydir.conf 2>&1 | grep "'test.keydir' does not exist" | wc -l`
+[ $n -eq 1 ] || ret=1
+touch test.keydir
+n=`$CHECKCONF warn-keydir.conf 2>&1 | grep "'test.keydir' is not a directory" | wc -l`
+[ $n -eq 1 ] || ret=1
+rm -f test.keydir
+mkdir test.keydir
+n=`$CHECKCONF warn-keydir.conf 2>&1 | grep "key-directory" | wc -l`
+[ $n -eq 0 ] || ret=1
+rm -rf test.keydir
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
echo "I:exit status: $status"
exit $status
diff --git a/bin/tests/system/checkconf/warn-keydir.conf b/bin/tests/system/checkconf/warn-keydir.conf
new file mode 100644
index 00000000..c537a3a2
--- /dev/null
+++ b/bin/tests/system/checkconf/warn-keydir.conf
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * key-directory defined but doesn't exist.
+ */
+options {
+ directory ".";
+};
+
+zone dummy {
+ type master;
+ file "xxxx";
+ key-directory "test.keydir";
+};
diff --git a/bin/tests/system/dlvauto/tests.sh b/bin/tests/system/dlvauto/tests.sh
index 25bb8e30..a6866980 100644
--- a/bin/tests/system/dlvauto/tests.sh
+++ b/bin/tests/system/dlvauto/tests.sh
@@ -1,4 +1,4 @@
-# Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -31,7 +31,7 @@ then
ret=0
$PERL $SYSTEMTESTTOP/stop.pl . ns2 || ret=1
sleep 1
- (cd ns2; $NAMED -f -d 100 -c named.conf >> named.run 2>&1 & )
+ (cd ns2; $NAMED -g -d 100 -c named.conf >> named.run 2>&1 & )
sleep 2
$DIG $DIGOPTS soa . @10.53.0.2 > dig.out.ns2.test$n || ret=1
grep "status: NOERROR" dig.out.ns2.test$n > /dev/null || ret=1
diff --git a/bin/tests/system/dnssec/ns2/example.db.in b/bin/tests/system/dnssec/ns2/example.db.in
index 7be10442..db66cc66 100644
--- a/bin/tests/system/dnssec/ns2/example.db.in
+++ b/bin/tests/system/dnssec/ns2/example.db.in
@@ -1,4 +1,4 @@
-; Copyright (C) 2004, 2007-2012 Internet Systems Consortium, Inc. ("ISC")
+; Copyright (C) 2004, 2007-2013 Internet Systems Consortium, Inc. ("ISC")
; Copyright (C) 2000-2002 Internet Software Consortium.
;
; Permission to use, copy, modify, and/or distribute this software for any
@@ -54,8 +54,8 @@ dname2 DNAME dname2-target
foo.dname2-target TXT "testing dname"
; A secure subdomain
-secure NS ns.secure
-ns.secure A 10.53.0.3
+secure NS ns3.secure
+ns3.secure A 10.53.0.3
; An insecure subdomain
insecure NS ns.insecure
diff --git a/bin/tests/system/dnssec/ns2/insecure.secure.example.db b/bin/tests/system/dnssec/ns2/insecure.secure.example.db
index f16a2cf8..b25af847 100644
--- a/bin/tests/system/dnssec/ns2/insecure.secure.example.db
+++ b/bin/tests/system/dnssec/ns2/insecure.secure.example.db
@@ -1,4 +1,4 @@
-; Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+; Copyright (C) 2004, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
; Copyright (C) 2000, 2001 Internet Software Consortium.
;
; Permission to use, copy, modify, and/or distribute this software for any
@@ -13,8 +13,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: insecure.secure.example.db,v 1.9 2007/06/19 23:47:02 tbox Exp $
-
$TTL 300 ; 5 minutes
@ IN SOA mname1. . (
2000042407 ; serial
@@ -23,8 +21,8 @@ $TTL 300 ; 5 minutes
1814400 ; expire (3 weeks)
3600 ; minimum (1 hour)
)
- NS ns
-ns A 10.53.0.3
+ NS ns2
+ns2 A 10.53.0.2
a A 10.0.0.1
b A 10.0.0.2
diff --git a/bin/tests/system/dnssec/ns3/secure.example.db.in b/bin/tests/system/dnssec/ns3/secure.example.db.in
index c9de3e5b..0d2fa4f4 100644
--- a/bin/tests/system/dnssec/ns3/secure.example.db.in
+++ b/bin/tests/system/dnssec/ns3/secure.example.db.in
@@ -1,4 +1,4 @@
-; Copyright (C) 2004, 2007, 2008, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+; Copyright (C) 2004, 2007, 2008, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
; Copyright (C) 2000, 2001 Internet Software Consortium.
;
; Permission to use, copy, modify, and/or distribute this software for any
@@ -13,8 +13,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: secure.example.db.in,v 1.16 2010/07/15 01:17:45 jinmei Exp $
-
$TTL 300 ; 5 minutes
@ IN SOA mname1. . (
2000042407 ; serial
@@ -23,8 +21,8 @@ $TTL 300 ; 5 minutes
1814400 ; expire (3 weeks)
3600 ; minimum (1 hour)
)
- NS ns
-ns A 10.53.0.3
+ NS ns3
+ns3 A 10.53.0.3
a A 10.0.0.1
b A 10.0.0.2
@@ -36,8 +34,8 @@ x CNAME a
private NS ns.private
ns.private A 10.53.0.2
-insecure NS ns.insecure
-ns.insecure A 10.53.0.2
+insecure NS ns2.insecure
+ns2.insecure A 10.53.0.2
nosoa NS ns.nosoa
ns.nosoa A 10.53.0.7
diff --git a/bin/tests/system/dnssec/ns4/named4.conf b/bin/tests/system/dnssec/ns4/named4.conf
new file mode 100644
index 00000000..1afde2d6
--- /dev/null
+++ b/bin/tests/system/dnssec/ns4/named4.conf
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+// NS4
+
+controls { /* empty */ };
+
+options {
+ query-source address 10.53.0.4;
+ notify-source 10.53.0.4;
+ transfer-source 10.53.0.4;
+ port 5300;
+ pid-file "named.pid";
+ listen-on { 10.53.0.4; };
+ listen-on-v6 { none; };
+};
+
+key rndc_key {
+ secret "1234abcd8765";
+ algorithm hmac-sha256;
+};
+
+controls {
+ inet 10.53.0.4 port 9953 allow { any; } keys { rndc_key; };
+};
+
+key auth {
+ secret "1234abcd8765";
+ algorithm hmac-sha256;
+};
+
+include "trusted.conf";
+
+view rec {
+ match-recursive-only yes;
+ recursion yes;
+ acache-enable yes;
+ dnssec-validation yes;
+ dnssec-accept-expired yes;
+
+ zone "." {
+ type hint;
+ file "../../common/root.hint";
+ };
+
+ zone secure.example {
+ type static-stub;
+ server-addresses { 10.53.0.4; };
+ };
+
+ zone insecure.secure.example {
+ type static-stub;
+ server-addresses { 10.53.0.4; };
+ };
+};
+
+view auth {
+ recursion no;
+ allow-recursion { none; };
+
+ zone secure.example {
+ type slave;
+ masters { 10.53.0.3; };
+ };
+
+ zone insecure.secure.example {
+ type slave;
+ masters { 10.53.0.2; };
+ };
+};
diff --git a/bin/tests/system/dnssec/tests.sh b/bin/tests/system/dnssec/tests.sh
index f6499a43..4a012af3 100644
--- a/bin/tests/system/dnssec/tests.sh
+++ b/bin/tests/system/dnssec/tests.sh
@@ -2336,5 +2336,21 @@ n=`expr $n + 1`
if test "$before" = "$after" ; then echo "I:failed"; ret=1; fi
status=`expr $status + $ret`
+cp ns4/named4.conf ns4/named.conf
+$RNDC -c ../common/rndc.conf -s 10.53.0.4 -p 9953 reconfig 2>&1 | sed 's/^/I:ns4 /'
+sleep 3
+
+echo "I:check insecure delegation between static-stub zones ($n)"
+ret=0
+$DIG $DIGOPTS ns insecure.secure.example \
+ @10.53.0.4 > dig.out.ns4.1.test$n || ret=1
+grep "SERVFAIL" dig.out.ns4.1.test$n > /dev/null && ret=1
+$DIG $DIGOPTS ns secure.example \
+ @10.53.0.4 > dig.out.ns4.2.test$n || ret=1
+grep "SERVFAIL" dig.out.ns4.2.test$n > /dev/null && ret=1
+n=`expr $n + 1`
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
echo "I:exit status: $status"
exit $status
diff --git a/bin/tests/system/ixfr/clean.sh b/bin/tests/system/ixfr/clean.sh
index a4457453..ac5b8279 100644
--- a/bin/tests/system/ixfr/clean.sh
+++ b/bin/tests/system/ixfr/clean.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -22,3 +22,4 @@ rm -f ns3/*.jnl ns3/mytest.db ns3/subtest.db
rm -f ns4/*.jnl ns4/*.db
rm -f */named.memstats
rm -f dig.out
+rm -f ns3/large.db
diff --git a/bin/tests/system/ixfr/ns3/named.conf b/bin/tests/system/ixfr/ns3/named.conf
index c01ce546..52a5719f 100644
--- a/bin/tests/system/ixfr/ns3/named.conf
+++ b/bin/tests/system/ixfr/ns3/named.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -17,37 +17,41 @@
/* $Id: named.conf,v 1.3 2011/09/07 23:46:27 tbox Exp $ */
options {
- query-source address 10.53.0.3;
- notify-source 10.53.0.3;
- transfer-source 10.53.0.3;
+ query-source address 10.53.0.3;
+ notify-source 10.53.0.3;
+ transfer-source 10.53.0.3;
allow-transfer { any; };
- port 5300;
- pid-file "named.pid";
- listen-on { 10.53.0.3; };
- listen-on-v6 { none; };
- recursion no;
- notify yes;
+ port 5300;
+ pid-file "named.pid";
+ listen-on { 10.53.0.3; };
+ listen-on-v6 { none; };
+ recursion no;
+ notify yes;
};
key rndc_key {
- secret "1234abcd8765";
- algorithm hmac-md5;
+ secret "1234abcd8765";
+ algorithm hmac-md5;
};
controls {
- inet 10.53.0.3 port 9953 allow { any; } keys { rndc_key; };
+ inet 10.53.0.3 port 9953 allow { any; } keys { rndc_key; };
};
view "primary" {
- ixfr-from-differences yes;
+ ixfr-from-differences yes;
request-ixfr yes;
- zone "test" IN {
- type master;
- file "mytest.db";
- };
+ zone "test" IN {
+ type master;
+ file "mytest.db";
+ };
zone "sub.test" IN {
- type master;
- file "subtest.db";
- request-ixfr no;
- };
+ type master;
+ file "subtest.db";
+ request-ixfr no;
+ };
+ zone "large" IN {
+ type master;
+ file "large.db";
+ };
};
diff --git a/bin/tests/system/ixfr/setup.sh b/bin/tests/system/ixfr/setup.sh
index 7e68ebcc..d8155c12 100644
--- a/bin/tests/system/ixfr/setup.sh
+++ b/bin/tests/system/ixfr/setup.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -45,3 +45,5 @@ EOF
# Setup initial db files for ns3
cp ns3/mytest0.db ns3/mytest.db
cp ns3/subtest0.db ns3/subtest.db
+sh ../genzone.sh 3 > ns3/large.db
+awk 'END { for (i = 0; i < 10000; i++) printf("record%d 10 IN TXT this is record %d\n", i, i) }' < /dev/null >> ns3/large.db
diff --git a/bin/tests/system/ixfr/tests.sh b/bin/tests/system/ixfr/tests.sh
index 4bccd763..c6049ad5 100644
--- a/bin/tests/system/ixfr/tests.sh
+++ b/bin/tests/system/ixfr/tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -237,6 +237,17 @@ else
echo "I: success: IXFR it was"
fi
+echo "I:testing DiG's handling of a multi message AXFR style IXFR response"
+(
+(sleep 10 && kill $$) 2>/dev/null &
+sub=$!
+$DIG ixfr=0 large -p 5300 @10.53.0.3 > dig.out
+kill $sub
+)
+lines=`grep hostmaster.large dig.out | wc -l`
+test ${lines:-0} -eq 2 || { echo "I:failed"; status=1; }
+messages=`sed -n 's/^;;.*messages \([0-9]*\),.*/\1/p' dig.out`
+test ${messages:-0} -gt 1 || { echo "I:failed"; status=1; }
echo "I:exit status: $status"
exit $status
diff --git a/bin/tests/system/resolver/clean.sh b/bin/tests/system/resolver/clean.sh
index c5bd75ed..108a49df 100644
--- a/bin/tests/system/resolver/clean.sh
+++ b/bin/tests/system/resolver/clean.sh
@@ -29,6 +29,6 @@ rm -f ns6/K*
rm -f ns6/example.net.db.signed ns6/example.net.db
rm -f ns6/dsset-example.net. ns6/example.net.db.signed.jnl
rm -f ns6/to-be-removed.tld.db ns6/to-be-removed.tld.db.jnl
-rm -f ns7/server.db ns7/server.db.jnl
+rm -f ns7/server.db ns7/server.db.jnl ns7/named.conf
rm -f random.data
rm -f sample.out
diff --git a/bin/tests/system/resolver/ns7/named.conf b/bin/tests/system/resolver/ns7/named1.conf
index a41afd0e..a40a14a6 100644
--- a/bin/tests/system/resolver/ns7/named.conf
+++ b/bin/tests/system/resolver/ns7/named1.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2010, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -14,8 +14,6 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.5 2011/07/28 03:18:17 each Exp $ */
-
// NS4
controls { /* empty */ };
@@ -33,6 +31,15 @@ options {
disable-empty-zone 20.172.in-addr.arpa;
};
+key rndc_key {
+ secret "1234abcd8765";
+ algorithm hmac-md5;
+};
+
+controls {
+ inet 10.53.0.7 port 9953 allow { any; } keys { rndc_key; };
+};
+
zone "." {
type hint;
file "root.hint";
diff --git a/bin/tests/system/resolver/ns7/named2.conf b/bin/tests/system/resolver/ns7/named2.conf
new file mode 100644
index 00000000..47622e32
--- /dev/null
+++ b/bin/tests/system/resolver/ns7/named2.conf
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+// NS4
+
+controls { /* empty */ };
+
+options {
+ query-source address 10.53.0.7 port 5300;
+ notify-source 10.53.0.7;
+ transfer-source 10.53.0.7;
+ port 5300;
+ pid-file "named.pid";
+ listen-on { 10.53.0.7; };
+ listen-on-v6 { none; };
+ recursion yes;
+ empty-zones-enable yes;
+ disable-empty-zone 20.172.in-addr.arpa;
+};
+
+key rndc_key {
+ secret "1234abcd8765";
+ algorithm hmac-md5;
+};
+
+controls {
+ inet 10.53.0.7 port 9953 allow { any; } keys { rndc_key; };
+};
+
+zone "." {
+ type hint;
+ file "root.hint";
+};
diff --git a/bin/tests/system/resolver/setup.sh b/bin/tests/system/resolver/setup.sh
index 5567d359..fc124f1d 100644
--- a/bin/tests/system/resolver/setup.sh
+++ b/bin/tests/system/resolver/setup.sh
@@ -1,6 +1,6 @@
#!/bin/sh -e
#
-# Copyright (C) 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2010-2013 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -21,4 +21,5 @@
cp ns4/tld1.db ns4/tld.db
cp ns6/to-be-removed.tld.db.in ns6/to-be-removed.tld.db
cp ns7/server.db.in ns7/server.db
+cp ns7/named1.conf ns7/named.conf
(cd ns6 && sh keygen.sh)
diff --git a/bin/tests/system/resolver/tests.sh b/bin/tests/system/resolver/tests.sh
index 9323f255..4dd98545 100755
--- a/bin/tests/system/resolver/tests.sh
+++ b/bin/tests/system/resolver/tests.sh
@@ -379,13 +379,27 @@ done
[ $ret = 0 ] && ret=$foo;
if [ $ret != 0 ]; then echo "I:failed"; status=1; fi
-echo "I:check for improved error message with SOA mismatch"
+n=`expr $n + 1`
+echo "I:check for improved error message with SOA mismatch ($n)"
ret=0
$DIG @10.53.0.1 -p 5300 www.sub.broken aaaa > dig.out.${n} || ret=1
grep "not subdomain of zone" ns1/named.run > /dev/null || ret=1
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
-echo "I:exit status: $status"
+#HERE <<<
+cp ns7/named2.conf ns7/named.conf
+$RNDC -c ../common/rndc.conf -s 10.53.0.7 -p 9953 reconfig 2>&1 | sed 's/^/I:ns7 /'
+n=`expr $n + 1`
+echo "I:check resolution on the listening port ($n)"
+ret=0
+$DIG +tcp +tries=2 +time=5 mx example.net @10.53.0.7 -p 5300 > dig.ns7.out.${n} || ret=2
+grep "status: NOERROR" dig.ns7.out.${n} > /dev/null || ret=1
+grep "ANSWER: 1" dig.ns7.out.${n} > /dev/null || ret=1
+if [ $ret != 0 ]; then echo "I:failed"; ret=1; fi
+status=`expr $status + $ret`
+#HERE >>>
+
+echo "I:exit status: $status"
exit $status
diff --git a/configure b/configure
index b69ba4d4..ab2397bb 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1996-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -1229,6 +1229,7 @@ ISC_PLATFORM_NEEDVSNPRINTF
LWRES_PLATFORM_NEEDSPRINTF
ISC_PLATFORM_NEEDSPRINTF
READLINE_LIB
+ISC_PLATFORM_NEEDSTRCASESTR
ISC_PLATFORM_NEEDSTRLCAT
ISC_PLATFORM_NEEDSTRLCPY
GENRANDOMLIB
@@ -17614,6 +17615,14 @@ fi
+ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr"
+if test "x$ac_cv_func_strcasestr" = xyes; then :
+ ISC_PLATFORM_NEEDSTRCASESTR="#undef ISC_PLATFORM_NEEDSTRCASESTR"
+else
+ ISC_PLATFORM_NEEDSTRCASESTR="#define ISC_PLATFORM_NEEDSTRCASESTR 1"
+fi
+
+
diff --git a/configure.in b/configure.in
index a2679244..58782dda 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -2419,6 +2419,10 @@ AC_CHECK_FUNC(strlcat,
[ISC_PLATFORM_NEEDSTRLCAT="#define ISC_PLATFORM_NEEDSTRLCAT 1"])
AC_SUBST(ISC_PLATFORM_NEEDSTRLCAT)
+AC_CHECK_FUNC(strcasestr,
+ [ISC_PLATFORM_NEEDSTRCASESTR="#undef ISC_PLATFORM_NEEDSTRCASESTR"],
+ [ISC_PLATFORM_NEEDSTRCASESTR="#define ISC_PLATFORM_NEEDSTRCASESTR 1"])
+AC_SUBST(ISC_PLATFORM_NEEDSTRCASESTR)
AC_SUBST(READLINE_LIB)
AC_ARG_WITH(readline,
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf
index 139143b8..e8b38986 100644
--- a/doc/arm/Bv9ARM.pdf
+++ b/doc/arm/Bv9ARM.pdf
@@ -4211,18 +4211,13 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚíÚKsÓ0
-vç°tÃg=UO^(W¬´õì å¹ðêÙâäèٛ׳ç¯gÇÍéìUõ|–ʼnA¨~ÄÏÕÉ©¨1ÿ«Jp¼©¿Å‡d½ª´QÜh¥Ò+Ÿªãêm½{Zº£<7^ºÂ•H‰®$ÄC‡r&p«¤º½’§ aZ…£E·Ù,[öu¹¾<ûÑ0éõo˜âýÑ!üû(¿™0RÅéöînÞ÷š¸>¯·ïp[SÃûmÝ¿ï+XµWHrR*„RE¦Ïª´ãÖ9HªäVU7_-¬½X¶Û«î¬aÖȉÐ_J“<š
-¤á&‚ÕÄ
-…P„Èô™2ÜI‰Ú#ôóª[ÆÍtú{Bi’GB!ÜD°f˜P¡Š™>Še8k}"¤¡†ù`ßšv
-¤ˆá&ƒuÃÄ
-…PÄÈô™
-R¨p[ÁËaT…B(TdúŒÊH.”I»I)vOJÝæ•·nÒô@šÒ|Ö„)M¸Ÿà‡Ÿ–
-¡4‘é³&-¸ð"måî¹û|}=ï7 “vú$vÐ05`4/Hñ O|+Bñ"Óg^Òs&m,åî|¼G­çÝâjÕ/vòuXiêGÃB,ÜZV¡
-™>Ã÷‘"m)åî±üå¦e«yËÞ !¿ß\G_&Q$*ÍùhQ(…{
-Þ‹*B‰"ÓgQBÇåϤM£LOé7ËV]Ì7 JM·ªƒÀJS?
-¤`áÖ‚~6_*dVþú3Ösçeé ñx0Û¡þíëw_
-ÑŽ+¿Í·µJø¸{°®V†Ç±¶ûuðRÓY¨ö_á¶(endstream
+xÚíÚKsÓ0
+R¨p[ÁËaT…B(TdúŒÊH.”I»I)öOJÝæ•·nÒtOšÒ|Ö„)M¸Ÿà‡Ÿ–
+¡4‘é³&-¸ð"måþ¹û|}=ï7 “vú$vÔ05`4/Hñ O|+Bñ"Óg^Òs&m,åþ|¼G­çÝâjÕ/vòuXiêGÃB,ÜZV¡
+™>Ã÷‘"m)åþ±üå¦e«yËÞ !¿ß\G_&Q÷$*ÍùhQ(…{
+Þ‹*B‰"ÓgQBÇåϤM£LOé7ËV]Ì7 JM·ª£ÀJS?
+¤`áÖ‚wð
+…ÀÊ_`Æzî¼,}"þf7Ôݾnqû¥í¸ò»|‡W«„»ëjexkw±_/5…jÿùŶ)endstream
endobj
1226 0 obj <<
/Type /Page
@@ -12549,17 +12544,17 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
2625 0 obj <<
-/Length 2001
+/Length 2210
/Filter /FlateDecode
>>
stream
-xÚ¥YÛrÛ6}×WèQž‰Ü ôÍuœÖmc»±3íL’š‚,¦éŠTç뻸Q¤ÉÎt2àvqö‚LÆþ‘±HjªÇ™æH`"ÆÅj„Ç÷ðí— ˜iMû¨ŸoG¯ß²l¬‘–TŽoç½µÂJ‘ñíìãägD(:%ðäòôÝù›éÙ¯çg¿Ÿ]]¾=™’Œ0>9½¾>¿|sñ÷É”
- x
-mW§X#J„Ž6+צ€
-ôyJ¨%0ø\]Ý:Xb5hj1we5³‹5©Õ‚ºˆu§§Ó5÷›õêÚÈôV&íÑ8°r¾iëPniŽªžmïî)a
-IÈ:š’—sG¡ ò<þ1oüÚà‘…išùf‰R!Buì…D¥Š<làΖ ûócuø ±Ÿ;‹ØqóíaYe þDñ%­S€¶Œf‘?_Ç/êG`k}ÓÐ ŠŠ+wÒíì¡"
-5¦;SmcÓä÷±>Û¬Vù:dXwLÙ†ùVú<›dªOaåg§‡:ÂND9vBŽ–ýICöYª<êëF ÕI"õqå:TB»Áet¡ªw¶ðÅ•(XÛ˜MœŽ Õ]CvʹaÊ•HeÝ}¨©Ã¢ö¤r­p’û,ä²iÑ–_]Ʋ
-‰”±áåæ@
+xÚ¥Y[sÛ¶~÷¯Ð[å™Á…ÁórÆuœÖmcûÄêœÎ$y )Èb"‘ªHú’_ß]\(R‚dg:™‰p±»ØË· ˆ(üc£X™òt”¤‰)‹Gùê„ŽîáÛ/'ÌÑL<ѤOõóôäí{‘ŒR’J.GÓy—"T)6šÎ>&Œ“S`AÇWg.ÞMν8ÿýüúêýé„%LDã³››‹«w—NxLˆ)8»úóì»vsšòñÙ/·§_¦¿\L;ÍúÚ3*P­¿O>}¡£â·JDªâÑ#L(aiÊG«“($Ž„ð+Ë“Û“ÿu {_ÍÖ 5%\H0g#ÆHÇ|`8%Rpaìq{qauöÇí5žvñžé¾ÁÒÈÏʺÖù¤.îËïU©?Ó˜*ø½±[EÚÛªQi¬€…1üåÕ;+)ug«¢,êf“5ÕÆ.}Ôs½9ej¬Ë\Û¥YÙfË€bL*Â¥”Ž}Hˆ¤Š Gðñý¹åQ!ü"Fx3GMÅÀ€AJ)Å$M7´gN½þø²í.ËFoJÝX5nŸëF¯j;9¯ÊºÚ4E»Úʈˆ$w|@;Æ£¨ aV
+QYf+=›ä Ë«rŽ›‘´£"J õÐ-%4Nìv­>sžØ‘ùl‡ðù3¥ü¾¿Ué(aeé<V?—Mö䈑aQÞÛYSUË]©·§ Éç²Z×E½›]‚‘DI1Š©$1W²Á yŒ>§
+I“0è±0™±
+-þgmðøw¦çY»lˆæwN˜‚ªia®jôàœBõmA,eM ZJhÄ^ŽÆ©WÐ+æ¥ý[kpvÖh;3Žwž…c7ú©1ŽÄ`nó…%Êê€i™JHu:mÊYN¾éç€Z1…ˆK| cx¸Á0žæ®(gȬq$Ñ•Q£kfkÕż´>f
+IÀœ”³×ÛŽÃäYúǬ¶¼!"s]×óvIB) = â…x¥òÌàÛ‚D¸óÙµÊýuÁÏGp]?­—E^4OŒ1ÛÛa÷fKx2„ÚEõÖÚœÂ6òŠæâÚÔ¹ýÎÝuZhÊ ömúT¾ÑÞo:*”;Y슔’Ð4yA¤'
+ˆä;¾JÔŽÈ›MQºfÓTT´uvïû´vµÊ6_M‘Â~*,Ê­ƒýƒL’¬Ó£:bOe¬ã0Zö¥Ð7NBmR_7P'™L+×Q´Ü* œÇ©âCõÎQLƒBSÌÙ@mŒI¬ºûÈN[7„\ITÒ]ŒêÊ1ÅJeF®ŽÛ 02hš7ŃA,$€†¡ô»Ý~+‹]‰‡ñÓa²¶Âô·X&‚DrÜ]U.æ¾:»,îÕæÌÅS±*–Ùfùì[o3s°ÍÀÁØâ0‰x!¶zTGbËS™ØzØË<ð4DÇEz¢€H>l$b0èPd(ó
+I!&Æð…âÕ§:âAOe<ø´çAì@˜:.ÒD ÃD°¡Èÿ/°ƒp_š7¹|Âå}¼‹zæGŠÂ1è™iÐüØæJèCîê¼í`¾Õ ‡’3»µÖ¹7µ%0—*ø`W×Ë,wš™[«y½ÁæNÔÞݸJÆuºG+i
endobj
2624 0 obj <<
/Type /Page
@@ -12572,46 +12567,43 @@ endobj
/D [2624 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2627 0 obj <<
-/D [2624 0 R /XYZ 56.6929 751.9599 null]
+/D [2624 0 R /XYZ 56.6929 752.2879 null]
>> endobj
2628 0 obj <<
-/D [2624 0 R /XYZ 56.6929 687.3022 null]
+/D [2624 0 R /XYZ 56.6929 690.9973 null]
>> endobj
894 0 obj <<
-/D [2624 0 R /XYZ 56.6929 647.2215 null]
+/D [2624 0 R /XYZ 56.6929 653.2561 null]
>> endobj
2629 0 obj <<
-/D [2624 0 R /XYZ 56.6929 613.7105 null]
+/D [2624 0 R /XYZ 56.6929 620.7725 null]
>> endobj
2630 0 obj <<
-/D [2624 0 R /XYZ 56.6929 577.6482 null]
+/D [2624 0 R /XYZ 56.6929 585.7377 null]
>> endobj
2631 0 obj <<
-/D [2624 0 R /XYZ 56.6929 510.0688 null]
+/D [2624 0 R /XYZ 56.6929 521.5252 null]
>> endobj
2632 0 obj <<
-/D [2624 0 R /XYZ 56.6929 448.376 null]
+/D [2624 0 R /XYZ 56.6929 463.1995 null]
>> endobj
2633 0 obj <<
-/D [2624 0 R /XYZ 56.6929 305.0531 null]
+/D [2624 0 R /XYZ 56.6929 323.943 null]
>> endobj
2623 0 obj <<
/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2636 0 obj <<
-/Length 1860
+/Length 1904
/Filter /FlateDecode
>>
stream
-xÚÕYYsÛ6~ׯУ4S¢8IâQ±ÕÖmb»¶Òvšæ!› ‡¤âª¿¾‹ƒEQVâh:íxÆå»Ø%cø#ãP Ì$’#‰/³ßÃÚ÷#âh¼†ÈëR½ZŒ¾ýŽc‰¤OýñbÕá"†d¼ˆßMf××óËó‹ß¦xò
-M=ñäÍìòíìµ»žJ:™}?¿z$ ”
-,næë¢H‡ Ç=§ÛäÅc•TýðâCŒ`pÐ9ƒsp6XO…öŸÁȉ ½. *8ˆœ-Õ
-Ògº8±’OƒB^—‡vvüÚž·£_äøã/8š:¤ç3O]WÊ@L'ʯÈ@]‡3PKÕÉ@ÝLÝÏA/È<‚hÄË2ÏÙ‰ãã¿“É
-õ&®+µZ§VîÊ”¾0èÄ Ù¡
-óUgÃÒô®£_*r½~ïÙøCáºÁ¡rÚõ×u¹­§TæúCy]¸®Ï¶ªw]%UB> x§Ý±ãvîâ¾<tÅØ·^
-8E~s–-¸ &É’42Ö(ôDA )—Ÿ2isüu·" 'wëÚÊ3M3¥OÑÆ鯳G7´® ë ô¦Q«¼n
-÷¾SÿQ-Øæ¬W$zgtkaÑ6Böz;ÙGÍh‡ÖÞ*´3ÁdÇIy”¦›)!D›Åˆ4Ö&i¢ÝðªËdYÃÞ™%•]HÕ'•VvúnccµŠÖi­ùQ½¦¦ ú-NÓ<êZV¬ëG*#pª’4µ£;eÁ»c;Š*÷›»ße­»lflQÖ£bOfóöÝfÀ%(dˆâH0`Iɶ];O`:ùÕ
+xÚÕYKsÛ6¾ëWèHÍTž$xTl¥u›Ø©­´&9Ð"d³¡H•¤âª¿¾‹)’¢ìÄÑtÚÑŒ‹}|XìK2Æð#c)f!!G1^®Gx|c߈£™ÖDÓ6ÕËÅèÅ+ŒCúÔ/V-^a)Éx¿÷foßÎ/Ï/~›L©ÀÞK4™
+Œ½7³Ëw³×¶ïí$¤ÞìûùÍdJB ¦é|ì]ÎÞÌϧg?ÌÏ~úýêr>ù¸øq4_4šµµ'˜iµþ½ÿˆÇ1ñã#J1~€ŒHÒñzÄC‚3V÷¤£›ÑÏ ÃÖ¨™:„ Êýñˆ™†!à €`p‚ç{È(‚¬¦Ò}À˜¦*‹Öªo/¡1FÂq›ëì†j@8m '4DŒ0Ú•¾¸W°.,ðŒÐ’^¾²=Õ½ëXæ™Vòn[DU’gvÔªm ªÜöÝÖîÕò“ŠaUÞÅÊöfyeÉÊZ&z¾Š¿ƒŽ½¤²$±ZEÛ´*¹FäÅ+ÞÆqX3âkóµþ/Tµ|¡ui@<ž2Ÿ")aM§„ PjÈÀ„•eÖÁ„2Ì/ä(
+@"Iͦ–Ýõ|ñîúÒ:ô/@Ö›½~.]ÏßKÀc Bð3Ñh:5øQIRPðT«R1!ÒSÕ¶ÈJ+-ÊìSýe0ƒVYEÕÖš¥ƒ'±Ä½ªÂðÉ Gö ,_û«J-+×\;–àÅCRªatju;ðÜÌçvòìõÍÕ€C |ÀKø#ßÙ©-¤þÎ3Õ6üXØvmð Øõ:¾¼¸<·LB§F¼N²¤¬ÀóÂv]«•![:ÞDÙ6JÔ%¾DÔ÷ýGÝ„Á‹eˆÙ»ÅW×O#p‘UªÈ”[Ñ›]Y©µ[«³<+ó¢J¶ë½XØðܧŽ§ˆPðac9ÄRˆ«àg6P3x@­v—.æ è"ò—ÕŒºË“¯7IªŒ
+0»×šóùÍÙõÅÛÅÅÕåW•êK_¿¼À§AscДæ¢É\¹Gp¯ÜeUô—ítÕ
+L½_M
endobj
2635 0 obj <<
/Type /Page
@@ -12624,55 +12616,47 @@ endobj
/D [2635 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2638 0 obj <<
-/D [2635 0 R /XYZ 85.0394 752.0628 null]
+/D [2635 0 R /XYZ 85.0394 684.7381 null]
>> endobj
2639 0 obj <<
-/D [2635 0 R /XYZ 85.0394 688.4621 null]
+/D [2635 0 R /XYZ 85.0394 622.0142 null]
>> endobj
2640 0 obj <<
-/D [2635 0 R /XYZ 85.0394 624.8614 null]
+/D [2635 0 R /XYZ 85.0394 559.2902 null]
>> endobj
898 0 obj <<
-/D [2635 0 R /XYZ 85.0394 585.5151 null]
+/D [2635 0 R /XYZ 85.0394 520.5531 null]
>> endobj
2641 0 obj <<
-/D [2635 0 R /XYZ 85.0394 552.3266 null]
+/D [2635 0 R /XYZ 85.0394 487.6322 null]
>> endobj
2642 0 obj <<
-/D [2635 0 R /XYZ 85.0394 516.5868 null]
+/D [2635 0 R /XYZ 85.0394 452.16 null]
>> endobj
2643 0 obj <<
-/D [2635 0 R /XYZ 85.0394 450.0643 null]
+/D [2635 0 R /XYZ 85.0394 386.5142 null]
>> endobj
2644 0 obj <<
-/D [2635 0 R /XYZ 85.0394 299.0276 null]
+/D [2635 0 R /XYZ 85.0394 236.5364 null]
>> endobj
2645 0 obj <<
-/D [2635 0 R /XYZ 85.0394 156.9811 null]
+/D [2635 0 R /XYZ 85.0394 95.5488 null]
>> endobj
2634 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F53 1333 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F39 1178 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2648 0 obj <<
-/Length 3019
+/Length 2943
/Filter /FlateDecode
>>
stream
-xÚÝZY“ÛÆ~ß_Á7s«ÄÉÜGRyX˲#ÛÚ(Ñ&vÅö–—°IbM€Z+¿>=.@®¬J¥¢­ƒÆLO÷×'HfþÈLH$ 53e8˜ˆÙrw…gðì«+h‘hÑ¥úüîê_253ÈH*gwëÎZa­ÉìnõÃüsDº†%ðüöæÍ«//ÿòêå7ÿúëí«ëQ„’ùÍÛ·¯n¿xýýõ‚
- ô@ŒñüÍÍí?n¾õso¯ ß|õêÝõOw__½ºk8ërO0³lýzõÃOx¶‚C|}…3ZÌžà#b í®¸`HpÆâÌöêÝÕßš;OÝ«)ip¡‘ \‚\`W8fRd)B€FqXŠâVd”¤D©¬Èï‡ç”¸2rÖ]ìdËH”Ø’v¶T †[¾=ûÚ »Þä~ð>?TE¹÷7åº}
-Ì Ž²Gœc ŒØÕöÙ._-–›|ùË¿Ë}|¡Ë„æ _FýãášèyùpÈv~—l¿òƒü·¢F'Z²UØ ,˜<£€Õ„"•SÀÏ'
-` +e¦·ŒD‰-»g—üYËï6yô¶ÌVÅþa  'G7úcº c'·<[ ˆ.‡}¶õ7EÐ\Q7"­êjT¨R)¤´TÓBíR µ¡rB]zHÖ¢ ü‰ÇÁr›UÕ1#‘&”O3‰ŒÑÞvp
-‹_ƒEÀ
-/xáÚA¸ž"«RiÑ”ÌÍi^7í¶ÀGè ò/þQn>:Ô5uñ>“ `©Ákj ~©Þ)ᦀÒ[MúJ©NÌßçþ#õ‡E0>S>uˆÆ«§H䊧u²x’šÅö‡-bÀÐ\Låt’«HsÊU¿ŠUˆšzl¥‹ØÀÊxÛí)GÚQí
-±b/£ Ðá¸é
-An@»ED$˜A€ gºx]ª ˜D*‡“/Sý‚oÌp ( ,ô4k U‚·>X AÔ
-Eå÷]•y¹Ö‹,³c¢%c
-i¨JûŽ4ÛÉ×ÈkðhÙÇý6ížØ)[wÕ¨Í,Ë}ïC'­|¡•Ñ6"4kmÈÞŒÛá )N/3!†!Ñ“|̆ÜNI’Öc s‘ Á&†5%ÕJ"ëþr¾YÄE³ è”s&ËrU—1ŒÚ[>Ý´`äRJ{8¹/öÙáƒ×9U rˆä½ä·qJÚ±²Çbå‡m¿U ›a&ŽH9RLÐ.rG„ešê¥D1˜ªKE ¦QO­•UžmH¦æ|mË^y îQÂn~@ #oÈYJj;Å^ŽXÚ\KômçÞ0ܧƒpÅÖ qðv¯nxÛ †ñ2ÛûÁ}¤j;ÖPw¸„f½] =
-×’Ñ4º#Òy~bÛc빈èSaÞ‹¤iJÃrSMiJw`wáÜe
-Áêø3_,»Tã&ÚP9ýö¬‰BM_dÛÓdòvÁô4k U‚·~²i?@àí1ç¿m2*çW.ÚÚÛÌ_b›S†¶©œÁä3;Œ9é ß
-¯ò:nÂVUéMoæüIý÷6{ÿ>óm+ûÁûðä¾iÛî¾qÛ„i&Í´ží»¬ožw÷=gnÁ|·iz(UìÊØb:.;C÷Áï«øäñPì²C»Pë¦?”Wuóøñxx,«¼BÓcÈ#P%Î ¯C5¼Hå·K!#)¹™
-Q õý$_‘(ÁWuªfÃûŒµ%&¶Ïe;2ö†ú98Õ²„ÉjSmcËŽ­Bì έäaÒ¡Äæá©Í*܃MvkZAî¦í”Úö‚Ë^H€|HðM>¨‘¸1}ÄÇ "/‹àÍ ífÏùð÷ÞúùÕû>•Ÿó©D;JœAv—jÙ •Cö›²Rª)w’Ȇ,êìi¾"Q‚¯áïÀñ>c/-ýwm‡=î«!¸øÏ”4ñ…‘µíèðIܦl^}i…üëÝÏèìÂÏè¶Èô³ðÈ'ð(aJ\ˆGÐÅf´æc¥ð‚)Œ8Vì´ÝúIɨšü 2;TÈŒT™ûß•OòÕ$ä§|¥ò_m’1çr¯ÉÜy]{ï>›0–ølÂhãu-Á}è7^×uÐË@˜‡Nº«å ^÷¤?ôº¶¾ë46Yôº½7S y´Æ<ÑŸ@·B†‹OÍ~ª,Ü<ï óÿŸ†kcuƦí²C4n–‘ÈYey¾á ê´":ÉÂ-Ì$6“œ5D§¬õbÅHsB—·ïlJz(êÜwQCÆÍpÛÕe.³qས¤„J´ùÔ=À°_É2ÅmûkÖbwº$û†Ÿ_t‡Ž CQ¥ÖNš@±HÙ ¢ŠDP×¾Ã>EiøüÛNU5€0kb&Ì€tÂA|o©‹*0`]²]¢.¦lFJÄ5&mìhìwÐ`ÁöÇË ôàYäòwÿFºý98¨œiMÓ8¤²ÀË22e'RžÚ¤ý ¨¤ ÞÿǺQ6endstream
+xÚÝZ[sÛÆ~ׯà[¨s»÷K;}P9u©J­¶ž&y€HPDB2AZq}ÏÞpã¤Ï´SkÆX,vÏžó+H&þÈDH$ 5e8˜ˆÉ|s'ðìë hf‘hÖ¦úòþâo˜šd$•“ûek-°Ödr¿øaú%" ]Âxz{usýÕìõ_®_û¯¿Þ^_Έ"”L¯îî®o¿zûþrFz Æxzsuû÷«ïüÜÝ¥¡Ó«¯¯ß]þtÿÍÅõ}ÍY›{‚™eëÃÅ?áÉñÍFÌh1y†Œˆ1t²¹à‚!Á‹3ë‹wß× ¶žºWSÒàB#A¹¹0¤ Ói™¤"Å1RX©Zf”¤d©¬Ìf«þA¥DØ(9i/v´e$JlI[[*‚°Ò½-ïvÅv諒_å~p¨²Ç0¬›M¶ûäo²íÂò_‹=:ÒI8¸ÂizJ8 шl‘͇AÑŒì×H¦¿_R0­ý¾?y˦\iÌšãûѼ~Tnן. !ÓA¹H¥‘áš ¦M5,™šÊ‰æã‘h€ÙœØ2%¶ì#ÁpoËj>滪(·AËæ)0×;˜,âK`Ä®¶Í6ùb6_åó_þ]nã m&4³d$Ð?í.‰ž–»ló`JîIw£€Õˆ"•SÀÏG
+`ˆQeÆ·ŒD‰-Ûg—üYwË®ò éu™-ŠícONŽnô#ÆtÆNny¶èÿ\vÛlíoŠ ¹qiµ¯†…J"ZŸ0÷6ÕˆP#•êÜã@²pe†<æ묪úŒ‰4¡|œ±H”`Œv¶#ÖÑ«.gïžòy±üÔ¢gæüµ6 ¼1‚§oómä[ÙÕ¬’òÅ« 1JùÛ[ûÐDXÖ?€¡ ªBhi‘BÆUѦVEMåTQ$Ta¡BM8ÙcK¤¨6ãlE¢[mE@˜W6ÎwغËwËr.€q6}*«ýÌÚ‚¿õøgœOÁQå»bÿÉ?p^¦²¹†6Ó»²ªŠ‡u ´‡¨<Uæ-%Ẩ’ÈÃÃÁ­––‡õÚiëØoQ*ñú#x‘/³ÃzCò*±<çA±wWŸY.ÁÈv‘†*zÇÔ²3N%"6u!@+­—_—ólˆ{F BÔÖ–dMÚܺåN±kg&²k}w"BÄ„j¯¼ñI‘*ªÄÙT(½´G†ÀE¹÷›7¨}­š…¢ç+µ€Ç“E
+±n.¦ Üá¸îYÝîó_÷c¸%éZªéïi/Ô`m3ßeÏC{€pˆ¦íR" .AèX€J‹j*‘ÊAåMªëAãµ1a…!ƒ…g­¦JðÖE ¤‰Â`‡¹-Œˆ£E;¶hé<„LãéÆN”·º®ï/¦o ˜%N@
+fÎï‚Ä´©YgŒÙŒ¡¨ü¾‹2#×€±ƒyv¨BÌdL! µi×fÛ` ùÒy ~- û°]ç±éûe‹Ãæ©´™y¹ÝçÛÐOëÇ¿V;B³Æ†ìÍ° šâô<bÒ=ɇlÈí”´!iý¶0gÙlbXÍQR­„!b°î.÷çÛ9A\Ô ‚N9‘1s²,Wû2S{ëÁ§ë&Œ\biç/ÅÖ~Ôp:§ŠA¦
+9L @ÚglÚ7Š¼6Õ0òj*‡¼M
+yIÉÍXpˆJ¨òGùŠD ¾º¨ÃPÙÞe¬)q0±Ý.Û—±7ÔÒÁ©Æ%LV«ò`Û[vlb_pn%“%–0OmVá¬ò°[Ýr7M¿Ôö±g\vB,àC‚oõAxã¦_µ Æ "Ï‹àÍ íf/ùü÷¼õË«÷3|*?åS ÅPèŸøTÞ"Áu r°¾IÁœšªk$¬!ÅWœŒ2iŽ™êÿ`|ïpõÚÑ×v¨ã¾‚‹ÿLI_YÓŽŸÄýgÊúÕ×öG}È¿ÞþŒÎÎüŒnL¿‰|‰¦Ä™HÍQl‹`>TϘˆcźéùç¤Rª«˜lüp.9LnW>ÆT†1•ÊÂÛL5}GÆœ›½$Sçií½û`ÂX⃠£µ§µ¡7^{Z×;/azè®~c4xÚ£Ö{ßÓÚš®ÕÌdÑÓvÞLµâÒóchŒáZÙÈó2ØÏ•y›øraþSïØ›ÇÃ’?ŸÄ“l÷o›ŸYs…˜Ö4mGT /ËÈ”eœHyìMìoä$MðþBòÈendstream
endobj
2647 0 obj <<
/Type /Page
@@ -12685,29 +12669,23 @@ endobj
/D [2647 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2646 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R /F41 1238 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2652 0 obj <<
-/Length 2425
+/Length 2564
/Filter /FlateDecode
>>
stream
-xÚÕYK“㶾ϯÐ!UÑTY0Þ³ópÖµ;;iWÙ>p$jÅ
-EŽùØñäקŠÔPÔ&Î%¥° 4_Ý ±…›E¨ˆå,Š%Q”©ÙzAg_àÝÌË,‚Т/õnuñýˆf1‰5׳ն7—!Ô6[m~™_=<ÜÞß¼ÿùrÁ¿#— EéüãÕýç«nìá2æó«n—бРÄ$Êi:¿¿úx{sùÛêÇ‹ÛU§O_gF*óûÅ/¿ÑÙTÿñ‚5{%,Žùl!• J
-Fò‹åÅß» {oí§c6ÊÅ¥ž-„$Fã–¢„*Øù"R1Ñ‚‹ÎRœY*H¡¥nôû;-z’ðÞ“£Ä¾Ü¤ÇÆ`ÌÀ {Å7zuR#ŠñÞrŒ ¢ìr Ùõ.]ÿNÎi[VØóê’™yº.ísS»·Í.iÜëĽ÷î“4éÆ $µ“Úd[|³M@Ѹ×O¯îys¿\Þ^;ѧֿìÍ,æuºOŠ&['ù%›ç¯n0ý½…¾Î
-7ôœ'ÐÓ)`‡Úh´ ‰•âv‡°ñh,ë:{ÊS×C‹×®Öµg48MÆ8‘&âþ”~å\n“,ǧ—+"•”^ø»‘ù$‰ ½Ù^’ª81›PDÇ:ÈRE7é6ióšÌë]lFÖ€ãbÅz‹d_Š²JO-AyPš¼ñHûˆE°9jÎøFOjÂ7‚”õzÄ7%\°àuóš¿õ°6SÆLkÖI¨6ðô!)ê¶|N×Ù±gbð
-M‰Š¨ƒÉ«4Ošìë)øHIx$t>À¨\¤ïˆ.\¬ÐFB
-f,¾¸±¤mJ˜ Ù©‡žü3ñ“¥ÏI4å{ë*{n0Ejþ©pƒMP°„–elØÕ€Kv`´ï@F± L=[:¹‘î˜ß²Mà6ݵÀm O›°GçЃϚ][»‘ºÈìÁ‚=è<Ýd7ó»¦VSÜžâó»²9è£É>Ý,Ö ,lß´‘¯h`Âf‡*ò(žoÊÔ·Šy<2óuÒÖ©KŠW×H}8X7^º-
-eÄÄJLåœ#Õ´^AhD¯av¡ˆáúH1Ÿ]@!ÚŸ‰{,/•šÿä:ÄÇBéCídšrðý5¦Äµq{>®[ÙÓdj4¡Œëÿ$®‹‰¸® W].w.®k1âf«ø(7/DY,ÃÃè»î7Fxq.«8"œs5 ϾÔixvRžÍhö FØdCY½¾¨Œà Hn'•ë¤F´€TqKˆKõ®w.   #Ò¬ºr¸)¢ŒÕ÷h¥‰‰º!5ÙImúŒ­¬Xçí&u˜Èa£Gí€è‹ð•—êÃâK !,+ý[—U¸v—:c§!ÓOaR³!r’zÈwÕ¥Zví'OŒ‰{ÔÙ>Ë“*÷£ëÎf6ÙA
-€!;ƒ­žÔ¶‚”ÅÖjŒú iW‚OR–âñ´bÔˆfCòÓDɇªò“Ú‘<—i±I+×~(ólýêÚwX塞¼ø› ‘(V?¯°£|¢€3>ÜyÚ€Î$.®•þ‘Ù,
-šeuürSmzr˜'Äf~å‘¢‰†‘‚tv6u݆ãï…L¿Š ®I³Þ!Y³ÿªã`U¥!‡ÿÓeÓhIœÀü—K
-0hè1 øžÔàƒ”üËàñ¶ä<™vô7¥\'5¢ÝLt¹j·Þ!£Aþ/OÐ(Ôu† ‹Væ=µsZÅÖ0ëÆdžHC5({A€/öIݤU_ȵÿòþþúÃç›[×;bbOš×>öðSæÕîà žôÎP呇Ep׎IsŸ,ã$ňÉ8…Ãå,ö¦p< ñ`;f5(ý#Ÿ§„<BGæÌ=W_ê48;) Î7z±vEëä’AhdÉâ(TÀ".y%ƒ³ž/ NÙÛÔÙ9)ÊÂÞ&õ²ø“ǘä/É«o¦€¯6Ýw£µ¹!ïàh¿˜*÷ÏYžž(§bˆQœ›³G#;S3ô¥&Ž*HÙ£úÇ(À5“S’ˆS5­X'5¢Ù0p`)¼¨Öݺ`•÷²Km5n;¶€çÚ‡Ö8òe0ŒÁñ.ÀÏ÷Ygl?ÍòÍ:ñAŽ:’f~?-å†É,äöF¨«À¿ee‡ɽ§ËPÒÔw\ß^I[¾à‹¶»í”®¼Ág‹ BÝØø>˜°¯¦±QÕeœ8ÿRVY³Û».¾Ç»k×aTH wj!xä†ã›2¤Û†Qùÿx) ðLÉiêKö§N
-WD7G¿ã0‚%¤™^¹“YzxM©‰bš ×^uñ¥Ü'ð¬2îöâø:ãÀ”Oi—ÕYŸšHá6ÔÄgRø¾Ô„å‚”ÃDÜcd#°ÂäÚÔÈâÇd#”ƒÕ;Û}“½ÂEn€kç:[¤:¼ Å#„¬R
-;ýãíêóã½ûø§KPa~õáóírüBï Žøö 9‹à ÎY›¶*‚ûz@ŠïÓp •¦­‡{dÃô=­\]Wy±—´#)„WÚ@êB¡ã(hP?%òôKVŸ0OPw`žåí­ûøêÃòÓÈÇŒ‚b\6¨<¥0-꽶ó‰x(3À€ ’cH4jìr›ªM8øCçÝûû7_ìwµ@Tí¥Ï Óî/±µ7ëǤÀµÞ.Ï´!\ëÁåú»
-¨Ž ³ðïöêóêoŸÏ[ô}Ñ°H=B–¯*ïýÙ_—E]VMÖîëÂJÍý<hKPÃm0y¹`”úó±Eàß/n©{ïá#
-Å„EZŽØ;ç‘k µg¹:­¾º[û±?”îyôTÚYóOÿÙ|ø7"¤0§òXA‘°b”Âm3«®„!ÊðhD÷B2° endstream
+xÚÕZKsã6¾ûWè°UKUEÞŽ[N&;㙵4Ij“h‰±V"’Šãüúm¼(R†¨Éf/[>
+f2la¨Â =úgæ'ËŸ²:kýdͪ.žlpJEò¡tƒmP°‚–elØ•ß‚Kí¶`´¯@F Œ=[:¹‘ã®HÂÞ¾
+ÜfF·඙§ÎuØ£sèÁgíöÐøèz
+fÆwž6 ó‰‹kå¿6‹‚fUŸ¾\WåßÛžœÉ´J®=R ºfê$t:;†Ç
+
+Rö¨~ˆñˆ
+Éõ»OóEü*ŽÂ‘
+@ï_Å1Í‚k87mu×ã
+Q)×ê¯ìÊ .RÄÀ¿oØëOËo?<\¶èÛâ`™{„,^ IÞû³¿©Ê¦ªÛâ°?÷ï@êæ"N‰;ÿò¿&ÿ SŠÆ½›aÚ¥ÌæˆLOUL!¡hÑý?à±7endstream
endobj
2651 0 obj <<
/Type /Page
@@ -12720,79 +12698,77 @@ endobj
/D [2651 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2654 0 obj <<
-/D [2651 0 R /XYZ 85.0394 312.4643 null]
+/D [2651 0 R /XYZ 85.0394 225.6507 null]
>> endobj
2655 0 obj <<
-/D [2651 0 R /XYZ 85.0394 250.7835 null]
+/D [2651 0 R /XYZ 85.0394 155.4035 null]
>> endobj
2656 0 obj <<
-/D [2651 0 R /XYZ 85.0394 189.1027 null]
->> endobj
-902 0 obj <<
-/D [2651 0 R /XYZ 85.0394 151.0905 null]
->> endobj
-2657 0 obj <<
-/D [2651 0 R /XYZ 85.0394 118.4878 null]
->> endobj
-2658 0 obj <<
-/D [2651 0 R /XYZ 85.0394 83.3339 null]
+/D [2651 0 R /XYZ 85.0394 85.1564 null]
>> endobj
2650 0 obj <<
/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2661 0 obj <<
-/Length 2826
+2659 0 obj <<
+/Length 2707
/Filter /FlateDecode
>>
stream
-xÚÝ]oÛÈñÝ¿B@*æ†ûÉ%PHl'ð5qÜÈéËMQ2a‰Ô‰¤÷×wö‹"©%•¢×—&-‡3³³ó½Æ³þãHÄ$žE1C<Ä|–nÏÂÙÞ½?Ã'pHAëíýÙëw4šÅ(DÌîWZ…RâÙýòëü- ‰p~ûæãõÕy@hLÅüÍÝÝõíÕÍo𛇀(a8ÿøæöË›fíî<&ó7ï¯çßî9»¾oåéÊŒCª„ùãìë·p¶Ñ9 %Ÿ}‡!ÂqLfÛ3Æ)âŒR·²9[œý£%Øy«?õê
-ÄÿÞ
-Øÿ‘€Ô‚vÂ
-:XVà°´à¶Ö½Z_õ<˜ûKý®xÚ
-Eñ´|-–GÀž¾h„‡6­'¡2O‰I)Ǻ‘¡-
-É]•¨Z#消Ùq"Rom"Òp^@œWéAaëj¢û¹Mj>[Ãòr,Ž“–ë,”ë”ôÓÑHBë—âPHÁæ÷ªY.ÏF949UãlLý®“ZAÌ&¸M™,óbí^Z¬£Ý«E·{õ1 ÔyÑd•ýÐrû^îŸ B²ª¡òêSµå˜†“Êl×í W§I±VE
-¥P±Ô•u-«úµ¾Þ€©÷ÍR“@‰Ó}&æ±+«*ðV„†(Cáo$z*çªm+örgÍC jŸÆ
-¨§šQ‹Fó ˆ”(Œ>>ú ;–ˆ0æ"WåÜÆV"™+Mìó¡*7MmWwIý¨Ìn4ºP†2a2ºt±Æ£K‹¥£ËÒ]0’1§þŽ¿]ÂÑ´|-–GÀ~tˆMh_ÀE¦KlRË$Û–Å_*ûKIg@#b@¡ùcó HG4ÆcƒŒþIöàËP'ͯÔ'kmõZ¢}’*§S ÛvÄS©c‚p,èéJò±‹—YàºbéY\²Üº4Uv“xôCéRxR ’´S•*ŒªLÚòº²E±×
- …Õ)MÖ•º‚SñÒUÌÕ¾3?’èsØ…AkÅ1íL[ñò´.½[ _=,f-]ùŒ‘‘?KÊúr¿<iL'éTFÛ16˜/õ©è'Ëv~Ð/{óƒmZÿø™žOE°ûÇÌa°C›7v¥óF—0Zÿ½Y\ “¨+’ŒlXªÎü'îR Šµö}7©#t)1jBÈH«}}¼þx$ ¤ˆügJè(žQ
-DpõE¼º~ûåýoðÏ¥ë¦ð­Ò}þ-Ûøé™1ª„s6õ×¼J_ƒ—¢Ç¿v'£†1!èt´ëbG»KG»âdÑÜÞ?öÂD,dZ0‡ä¬îà-x_²KÛKÔ¾`¤.Õ1‹ŽoH‡PˆC7 Rs•ø(Vå²»Pq33SP/’§Ì¬$Ë礨M@…zÏ-T~ùnc‘.ï¾Töïn,‚.6Ô»j—¥¹ dKßµ Å*¶Ò5sPà‚1:˜ØûˆØµŠþPÁ€©!Uí·frÊlg €¢Ù>èÄÏÌn®’߬ì\QZÔfÁ¤|¦:Šö ô7årç6E‘pÔ*2¸7+³’[¢¹åÖvŠË˜­…;±EöaÝ×î¢3ÿU»p6¶ÈÌç¦ÄîÜ ™þ»Æ:ŒU»]Ž{#‘ê®ô”7v°&¼ÑaioÜôF×Íôœ‘ Ër9$\]{kcQ<ëÃÄíWÿ¾s¤ÙÂ`ÉÁXyÖ¦À›Õ ˆïùÕp.Ñ^:® 43 q:z¤±@)&O´ƒ4~ IŸgå¹wa”ÊI~ç˜ß`ÒÍ0t¹]~¿ªKñ}6T°­ µ뤆ÍÓj¢\W#.ÁÈ¡ZWÊž+¡´ÍYAö#¯ÑØßtAM¦þ˳ó°½@ý¯ÿÞëðmLÝnË‘A!‰8‚…Jm yl%ö/ÃŽeÿ7 Beendstream
+xÚÝZ[oÛÊ~÷¯‡Ê€¹á^¹Š‰í>çÄq#§=@’š¢$©Ë÷×wöF“ÔRJÑÓ—&\ígfgg¿¹ÐxÂ<㉘ij(fˆ‡˜ÏÒÝY8[ÃÚû3liGô©ÞÞŸ½~G£YŒbAÄì~Õã%Q(%žÝ/¿Ìß"ÌÐ9°ç·o>\_„ÆTÌßÜÝ]ß^Ýü¿yT@†óon?¿ùÍÌÝÇdþæýõâüÛý/g×÷>}qH•2œ}ùΖ ú/g!¢±ä³ïð#D8ŽÉlwÆ8EœQêf¶g‹³¿w {«úU¯ pˆÄc‚g°GÊ`±o#"#ÒYá<À!l±HvÙRm øTÀ$Ó4·° æ!éYUQÖ4”šÊ¼® ô•ÈŒnŠ&«Š¬1¿–å.É 3VäfTgÕSVY 1F1çÄIˆai ‹ç¢Ü×y=6;Å(’‚Α`‰˜ùÌ„AoÂÁ6DÆbôYh2ìñ£Žª·oü°on$ºQj¶Â_8aЇsxÅ#-‹U¾VùÖz VpqÊ,mÇwéáK9’‚sKºÌÚu°Íž²íϳ½>É6+Öy‘Eç¶|ÌvõM»8E‚
+6 ºƒ²/Áº£Üy€{
+žÏB‡&€€þ<1+‹ºj¬¡\Ïp ;3þòðêvl&,$Gl~Q8ß'àÐz©\™g³±ŒÞÞÜ^™QlK8à*h›¼´RWÕ9–óÒJ»Y\"3zWVf°+5Ef!Âîf€y±*«]b˜ª°ážZ5€\¸ˆb§>½»¬Í®½è†Ì“bÙÍqäb–+lTûç&ÓrbPà©|4Nοçͦl³’hå×í.+šúÂsŠÀ•‘°ç3yŠì£Ð9Ñ÷|»5üm+Úî7t_%íÖê
+©HäQMÆHê.æ…›!'£ƒêk«,üly‘7y²µ‰@Ò$ã#0¸`Æ+åjðG›UyV££Ù9©úæd6´3“ðãñ¿OåR¨ÃøßQ)¹‹ Å1–ÇE:"Ⱦá #Š‡"?×Ö¿o» [khˆöÖŠùjtC6em3±€ÄpKgïHšì“‡­,W|ÐÊ9Šeä₱ÂHy¬.rçê¤=®#Ê#²˜dãîEb¡Âì£mÚdÛmýGºmëü)CS^@Á‘CŸð‚>Õ´tT/Šû¼à¨ÈÎ Eú¼` ²ïâïìÿÈ ¸D8¢§¼ GuÄ •VÜæúbë«ú sªßWS‚DÅÇõë¨<
+ìE#$8”” •ÓxR´XJ9UŒ}QHî²ìDå1·é@Ì‘ZµHóp^…E­³‰þë6¨]ø|  ƒ–«,¤ë” ÃÑD@¦âHÁæ÷ª°/ÏF99uë|Lýn6I£F̸m™,óbí-ÕÁîÕ¤Û½zš¼h³Ú¾h¥}/«GC¬ bqµé˜o’Úl×í`§›¤X«$…RÈXšÚ w­«ú¹¾Þ€É÷ÍT›™R§ÿLÌc_ÖuþàÍ$ Q†Â_H LIŽºŒ½Ü[÷PŠÚ§ñêÉfÔ¤1ã…Ç}"%
+#þˆC ϘC®Ò¹­ÍD2—šØçC]nÛÆÎî“f£Ün]HŒ!¹"ÇÁ¥G4-ŽHCËÒ-ɘS¹?„ÕÂÑQå:¢Cí†À`Mè@»…nñÄöÕ`™d»²øKm)ÕÌÐèP(»ÀÍ<­Æ¡àÁS-ŒáZp‹æWꕵöw­Q•¤êº)]!âÉÑ1A8ôtŽ‘Ø!åC¸z˜£¦GþçZ\]}£Á]~(]ðNêQxv¦R)±1•IŸS›X×6öº“êYyÂ÷zTGœÏQiï»>é}£®ßûŽé×s¿½þ×WP'C0«!‹
+gF4í!€~¡l\ÔÖMR¤Š½tu^Pçë 5Ì©BÓŒöUþ”4–ô1{®Í¨W[Ç¡Þ=LÖYÚ/Knë‰pW"ÙòV­€³î(—±Àñî×ËÅ+Œ»Ú¸lìV}ͨwq̦ú…GpØÆw)J‹¹iñÅè¦d»}ó<î&›íÕ™c‘7CV…}¥&oŽ)’
+X•éˆ<"GÆ”"ÂC‘ŸÚq«Ä%YF‹+ë"kãY­+ÐÕ…É‘òŠU/ßÙÓ5÷5àçÿÒ7hÚ®¤ÅTž²kêˆ]•¶ëúÀ®qŸéˆ<"ûvBÄi8ù'Ùµë€X‚ÔE†­Åþm鉙£2 £ð¥Z7ˬª|ÑkÐ4>$(1BANRêÈ!9*}H;_aHzû}½bŽˆø¸^ŽÈ£× z„PŽ1À¦bù‡ó¶ÒýJ:7}K6ßGëæÚ:Ygf¸|I0ä¥4Y×êC¡ÂK—+kR»f~$/MÎqýEÇTtÝl%ËS´ ¾Gø2a0ëØèÌgŠüY.ЗÕò¤3äS4LblÔY$êU1 –]ç`˜.:»´ùñ3ÕžB°ûMæ’0Ø¡ûÒÝF0ºû{³¸;&QGbpr( qýÔ_
+D`y¨âÕõÛÏï‡.¤Øëaß:­ò÷9/|}"F•rΧþš×ék¸¥hó·Éêà$ÚÉXõgèq°ëMc#ÒPWœÌ˜»ÏŽ¬“ˆE‚ÕÊÑj5D:Š âµ.mÑø`H}HÇ,:ü*:.Bºê-¨સæ¿B<ÌLA-$™™I–OIÑ(…Ýÿçr¾|¿µD—wŸkûw7–@§j­Þgi®ZÙÒ÷©…b ;í¦Ê8Hmá1:êØo.€ÕÂ}=P0ÀTcªÉªé–2[¨AÑîtÈgf7ŠVéofö.-3a‚=SµDwúò…sï Šbá¸WdhoVf&·Ls+­-lç–1›'ŒSöþ.úØÖí¢×óU»pilz1Ïu†Ý¹6Ã>îÓÕK+åe·K4õW3OÔŸºx>ì>ûü×Qóò'CL}““=q/ §”²òBìßÞêþo21Îtendstream
endobj
-2660 0 obj <<
+2658 0 obj <<
/Type /Page
-/Contents 2661 0 R
-/Resources 2659 0 R
+/Contents 2659 0 R
+/Resources 2657 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 2666 0 R
>> endobj
+2660 0 obj <<
+/D [2658 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+902 0 obj <<
+/D [2658 0 R /XYZ 56.6929 769.5949 null]
+>> endobj
+2661 0 obj <<
+/D [2658 0 R /XYZ 56.6929 747.8192 null]
+>> endobj
2662 0 obj <<
-/D [2660 0 R /XYZ 56.6929 794.5015 null]
+/D [2658 0 R /XYZ 56.6929 711.7108 null]
>> endobj
2663 0 obj <<
-/D [2660 0 R /XYZ 56.6929 748.7291 null]
+/D [2658 0 R /XYZ 56.6929 643.9803 null]
>> endobj
2664 0 obj <<
-/D [2660 0 R /XYZ 56.6929 660.3963 null]
+/D [2658 0 R /XYZ 56.6929 558.2262 null]
>> endobj
2665 0 obj <<
-/D [2660 0 R /XYZ 56.6929 549.6423 null]
+/D [2658 0 R /XYZ 56.6929 450.5864 null]
>> endobj
-2659 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R /F22 977 0 R /F63 1385 0 R >>
+2657 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2669 0 obj <<
-/Length 2851
+/Length 2542
/Filter /FlateDecode
>>
stream
-xÚÅ]oÛFòÝ¿‚@J»Ÿ\.îÉir‹Öõ56´´¶˜P¤*Rqüï;³³¤H‰’/p‚"€µ;;;;;;ß üãQ¦&­ŠŒU‰f\GóÕ‹`íÝ8³i6Äz}söÿ¥‰lbS‘F7÷ZY²ŒG7‹ßã‹ëë·Wo.ÿw>šÅ¯“ó™f,þåâêöâg‚]Ÿ[_¼{û¦ÒʸB¼”ÅW¿¼}sþçÍOgooz~†<s&‘™¿Î~ÿ“E `ý§3–H›éè&,áÖŠhu¦´L´’²ƒ”gïÏþÓ¬ú­S2P"KR™šxN$Óüÿ9Vf^Ùô± j’4MO\ö1 †ÝŽ1©gð*f©å‰–Œ÷O$DÄybµøFœë$ÊDFkx¸”é
-EìQm¢SÅ=&:ByÄøõ|–òøþŠøíþƒ Q)t8)“Âýñ„)k%a Æþ¶;)xÀ—+½©áNÑðZåÙ´¿WʪÇ5\1cÀPIWðLß,‹uÌÄõº-êŠÆKãU^TåSX¿kUë6®iiÖÖôûúòê í±X¸sÉâOçBÇ®¬×nŽÉ« V9"<Ѧ;GÀ[Õç\‡} ”"ê
-OÜ®îðI<÷S<‚£D6>âp˜A© à_Õ­HʦÆšJÞ,<:,ÎÛ-^ ÇàŸ‹K€!8§·x´9/1½ñtè§,Ú¶tSoíŸÕ!ŸHI
-/€¼êFŽ#QEg tŽ ñPà5ndÂ¥1‡Qmä—¤‚€Ê¤cŽü Ùnø¨W£N…p<T!2½™`&ÉTföÔÇë—O§zw…©VÛt9WëHŒ^§´}.φ•†ª8ÑR©M¸°òt¢ÕcùD«H´p]w¯½(6nr:„ÊÀ(¿†Ç¦YÖw£4K ˆòæGìý¸'­Æ
-ý9‡tˆÏ—0Ì^¥8E±¯ÑÂ$d-ë7.š§‡,ÔÛBònź„ìfQ»¦ú¾%°«  ÍM7ßrPù¬~WuvP†Õü s:ÖIá S¸r¿ !SeFÐ]ÿ`š øÃ'ÎE+Ö…?ÿšFCdC«­¨'€·¤$Æ/§ÔÐ;ñà$¼ŒH„@7þT”îÁ…;n4[çùšnY
-paäÁ#Pw¢#˜Åò¢<‡¶ú2óÿ‡#¢dàòÍ3‡ÉÛÂíTãìYw5ýweºUaµsÐwÈi”ˆ§N´Ò!o㮃L Ê×#æn»ìlþx–kô${û žd"íBåc½ùè# ¯ºÕ
-ƒAòúj¢çb@OLß:Õs‘}Ïå±(K"N]PðÅsCvŽã:ð²p-¤ÞŒaöãõ-\^0Cf}ÏxÂ3Ûe³j‚p°Òêeé*¾s^Úxk®ïŸBioÆð³,–{Ÿ|Kî×BÞdA„#JÍv¹E=S•ù ½êñª©+w‡ðÖYAg'ûWRªGYåODñ. Z”ŒB€ü­áï4†PY…#ÇÀ%Xx‰z·.cÔa‚O>€G®0\pèUXÇ]E5Š›Ç›”Ø9pY2¥OóÕ!Mð5’¸ÐhÑ{Œ½wí¶ðI‚8’1‹Ä€³ßcr¶H“ŒÛýlH‚í¯K×’ýÃ|½ q)‰¥½O[Ÿ0`‰î]
-TCN¦ÇŠ¡¬‚e§‹!0P&ø¨"š}3rð—ÌÔÄ2Üã#>§°Ô¡=ÔZ( ·êy­•™Èe’ìJ*œeTtOiQ$rB@ÆVæèܵ$(KŸ `€L¬­7NÒÍ-„<&Ä^CÅâˆ43qSP%Ç0nPo¿¨· !ï  Œe¸Á'„¾íÊ(š ýa¾À|ãÚ¼ð…˜§àÃÙ¡6ì·‚}$=Yö¡Ïͺx¼¤øð†…o^R¥§¿æ¢ûæÏ|Ë%oOŸöEQ*³ ù;Bgu(‡ ó›%™1£Ã~sé÷òÝOP õ=´aò>ûƒÆ}.ÚäØWƒÃÿc2Á&ë£ð‹ÿ+Ëîÿê(ž‰é+K†A‹SxgžÚ}ÖµÌ 3ÁûßAŽ•endstream
+xÚÅYÝoã6Ï_! '5—ŸúÀ=e»HѦ¹Û,ŠÍÄÚ•%¯%mvÿû›áŠdËÞÒ¢SäœÎüf8‡?e†q•ë(Í53\˜hµ½àÑŒ½½žfˆ–cª—·/Þ¨4ÊYžÈ$º½­•1že"º]ÿ_Þܼ¾~uõßÅR¿d‹¥á<þùòúýåOÔw³Èe|ùöõ;øT¹J€Hh¤Kx|}ùóëW‹ßo¼x};ð3æYp…Ì|ºøõw­õ/8Syf¢GøàL乌¶Ú(f´R¡§ºxwñ¯aÁѨ›:§m2f¤N¢%4r#’yMqÆ H¾L•%ó|Дsš
+T¨©å}ñ&Q#J!X–àÌ‘ìš}w¨ !9Ë´‰Æ;ñˆfø’ãݤa™Lû©l;[ÓaÝ7{j|êí¾´-}4~4ð÷â™
+¡™\Hq°¹T,Çã$"0
+“·ýTe×U³NäŽÕ"Ÿ¸*.)Š:´,5&ª Šà`t–z‚óPØää)À)`ïqL›à’ÂD/¤äŒYÂòÝÖóÑl=GÁ„°=6!r½¥ä)¤¹Yz`>ξ\25À&Z]2®Î’MaWÿ­,kTž¨þæ4Kiˆß¹TçӬʥYÝLš•3¸”‡Ó^—{»êð>wu
+3”ŠÆÛ'Yj†»I’e$Äxòö~Ø
+4ƒ:°YW„×Æá¡1)—]R0–t( +»¨¡ìòXV-N…hPÆ}}ŠŽíÆó²¶äΗá뇛÷-¾ð ™©dg‚‰,éƲžáPVå&l²ÂÒwÖi¥¶^|wÚ8_†ŸMù° ì}vWYÂàr·ÜÈ)ûûÀøÝb_Rü{
+ôô¾Qω1.8Bp•C‘´H¶…¸óƒÕx#£8]…@™¦=t·Â–“Ñ3GY–{ yš¤:>ùÚ"Àƒ!0|ãmLu.Õ$xž®SbiäÔ ÚY¾†´c¾f_Ð&Œ½³]_ºLAžH›%Kñ˜<| K GÉSfX|WÙŽü¾w{œü–x¿w¹kë²¼§;€!ÊTì n `ÔXû€»>-§\©¯¦§õ–
endobj
2668 0 obj <<
/Type /Page
@@ -12805,24 +12781,23 @@ endobj
/D [2668 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2667 0 obj <<
-/Font << /F37 1042 0 R /F22 977 0 R /F60 1366 0 R /F21 954 0 R /F63 1385 0 R /F53 1333 0 R /F61 1369 0 R /F41 1238 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F53 1333 0 R /F41 1238 0 R /F60 1366 0 R /F61 1369 0 R >>
/XObject << /Im2 1355 0 R /Im3 1524 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2673 0 obj <<
-/Length 1917
+/Length 2389
/Filter /FlateDecode
>>
stream
-xÚ½X[oÛ8~÷¯Ð£ ŒÞ)bŸÜ6ÉxºÝÄY`f‹ŽµcKKJ›ýõ{(RŠdÉN."š<:<üÎå; 0ü‘@H$5ÕÒ LD°ÞOpðk·âefЬ+õn5¹ºa*ÐHK*ƒÕ¦£+B8ŠH°J~ß!ÂÑTàp9ÿxýa:£L3Î?¾^~Xü ~ R ‚qøq¾ü2¿ssŸ§š†óÛë‡éŸ«_&׫֞®Í3kÌß“ßÿÄA¦ÿ2ÁˆéH_áFDkì'\0$8cÍÌnò0ùg«°³Z¿:†”K@ƒƒeãH¤!Åa' ;5HQ2†T#e‘šýzzP©’„]eƒ-¡‘-igKE‘â0ìmyoù±tp—[ãÏæX¤yæ~dÕþÑÝ8Î7x¬Òæ‡d‹ŸN$Ì·´D¿ypŽdä
-ELŸWå^àÊý }E³Æ´™Ð
-i¢».!i!¨)Ï©ˆÐbê5V¿uÐ’“Úy OQåÑœOg’†÷õÿ%ü'á¢Óðv€“DŠR I„(­Ã#øЄÖV¦;®þŠH=qµØ³àC' º‡ôzgÅõ!%îÆen bQ.x}„Õ6-¦3&”OU7ÞO «¢t¿²Ü{V…IlEŽàÀ~©Õ’í^ühãW²ÒÓ%C~vöÝbùÁ´{$fÊ Æ¦T„f— ÈXøl(´~s]QQ¸­ø‹ûaí²Ï£ÙçS"¼/™Ýs½³§f2ÍÜ3vMUVÇVÉÎÄ…±z‘Î¥F4ÒQÐ §ŠO‘'5Ôì•[~,wú!/(ÝÙ‰ù¦H
-;ˆ„®ñ}XÜ.çw#uaë›R¢\X
-žë<+Ý;÷Ž+L°’Å{S˜#pÑ?¼­ÝúÏÀRE#îÓô˜%ë‘Q <(^èÕ´¡E6ˆ‹ÒÄÉYÎâ6¦—I«+užµZ)|>Ý$°&äò¶Ðȶ=>ÂaEyß›¼~í‰ÀSR=éÙÕ€0œO¦Š‡ç¡’qárçT© P5RªÅreÊ·0±º¾ÿ8 s.Ž¿lI+5bJ>E[B6ömÙVž5“ükv$ð‡Ä‚ œ`Ê|a6]Ì‹–†Ì “%iöÔtV/~vñýØkæÙÍóq#êqê…ª,1`L3ã"ý´d@ €ö71òþÓòfqûå~n1_->-ß.öTÃ|…cK UÕe¢ÍídDãI›¦'Ϭ©O•«6@"˜…vfgI
-sÇH0W湬óýag¾¹ÕÒO&¦XÓÇ欙-ãtçÆOë <®°å|+锕¦«åðjˆÛœ‡W¾fÎÏpP6¸»Œöœ&ÆgSÚ ”úøÀ˜ˆÛFÞßñ§•Öî1Oöi–%À‘{·Þ›·=kòøcœUñn\"#Û'6Õx
-!ØOU?NÏz îLX°¶ïÓ²Ž3úz@ÞKjŠ8i›Újé…M·-ûXàÆéVóÚׇ„Ùç‰_³
-Až¸_mwÝZbXé¼צ(
-C<âM@÷âb¤TÎŽRÀ ¾dº{ÞÍân䃅'=Ê9"RG—™±+UÓF˜±•²»^™r}UŸ AÙÜ Q­GªË´RC N‘ Æ¢¾«Ñå †ÛI³gÛJ(œðÜ—¨¤ŽÔ©¤çøxu¬2”‡ë&§†P }·àú²%­ÔД~Š"L²¾-ãpubn–&´†!È#·IÞgí‡ëkÏwŸFx愱ïoÞO¡Þã`ÆFÒTK.£n±:Qh¿ 2âºêøÿVøuàê2|¶Þšõ_6,‡D–†ËÿÉ3sºlo§s»¯¾KKF•¡fáV†‡š[ô¡…ì³ÿË÷¦ê…ÍüËêçO÷ßs1„ë~f|È>¼À½iïÛË÷@(ù±L«ý¹O¶ z6úé·&þðçÜ×ïÕ\!¸LŸ¹AG4 co”=QxX—0¢ ÚÒ¡íÿ(ªyBendstream
+xÚµYÝsÛ¸÷_Á·R3ƒ æžœÆIu“8i¢\;sw´Ùl$R'’þøﻋiR¢ä^ÓŽgL\ì7v€xÀà‰Š”&Ð&ŽÆ“`µ½`Á-|{Á=ͼ#š©Þ,/^¿“:0‘QBËõ€W±4åÁ2ÿ5|ñ8š ^_~¼z;› i¤
+/?¾º~»ø'¼' ¨€„±ðãåõ·Ë4÷yfDxùþêëì÷åÏWË^Ÿ¡ÎœITæ‹_gAªÿ|Á"iÒ$x€qcD°½ˆ%±”ÝÌæâëÅß{†ƒ¯né”b‘FJ*€n‘d ÿOÄÊÔy"Ë‚9ç*’é9f´3?ì—Œ™ÍS%Æ$Á\%"J9—}.ŠL’ŒRª#¡Sè$È)ŠÒ5úØQš(Q1GB΢DŠ¸#ŧÙ\ñp ÿExu‘TE¢(£¢Ø$E<b±1’ˆcgì³ÜÄëÅVo+°(åχœQŠ 2 Á‰e %Ø.µ"•ËÙ\Æ*üP”3ÎÂöñY 6?/,P©·²Ì¶6÷TC2‰’DkOÕÖ¶&ÖÍ¥Á÷™`¡Ýc憥Ýüe ìiVÙ.»)6EóDï[»ºËÊ¢Þâ«›Š¦ó}µ£Q¶ÙÐ`_U *~q‚ ã jì@OÂâ¾ØØ[§‘JC;“,|\Ù]C嵐2á³8[‘‘ñÐ\BjÈXx+oŠ2ÿ%LÀ?>á“|Ây—Î àœÑc¬[N*ì*˜YèUËÊœµmºUÕœ æ`±Ž5¶xek03†ò±·uÕîWßt¸)¶ESÏ@ Ô‘”›ð[¹F?tòÚ2kìæ ²€…¯`J'à—¢¦Å[›•žks—5ÝÈNxH(Ø,UÞæy;áÜžLpOR횢*‰gU‚
+Î:¡!ë8Óu´ 0K+rÜw §0áÃ-'²J`ÌMürÖÊTt¹]x–$ ÅÍ!Ò°*iö 飈DÄS"@Åpn®Ücz¿Â$ýü ddÌ|··’,7<J”™QX ÆǬ™ë¢Äƒ;!3\bßU[ñ<?›9-(«†f`7U˜ôz¼i`Ò%/,º±ô¾·MV”.m‘ÃÕ:Î6¶²¸-Îîh3Ð¥GtXEce"‘š4Vðì
+ʽ2Ð$çϽíǺÖ\˜(MµqJr: x¤A'(ÜJ8®Û‚O †ŽÈmªûC¿((4±QÁ€Õ‘¼ŽæXžÈÓØÒØXÞ e©!ÈáŠ%îí¾vû_Êv{C‰Æ¨fáÀ>ÍQ;«®ÚrÞ5CªÓ¾é©œs~9rŽŽ´‚T9+²#š9rÖ\¡Æ"ÿKÿÜ´ÅÆ©Ö¯þ”MàîŒTg<ØQ9>ú)‡5›E:ìDs•­îì| âP;. C&°ƒÏª×SMè'Fýê«4j¬à‡*óʳ&£Ñz?ãPª·¤z"Ç)­t¬&U?§@œR•E‰UoU·ÚÇl}ð-·ë¬Ýø<¸/ì¢ó£ðu 4‘ 9Hÿ_€d­¢™?Q ý‚S
+×-á p8Çó[
+&ûO=„<4Zû/%4SK¼5^˜}³¸~K#CœÚý š»ÝT;(7?´\ª%: ·’?Ñ ê…ϽݺÎO\<%b |"¿í&‹’ž=ÖmÓî{&›Õ–°å©†=̨ÊÑÿC»¤= 
+ÚÍ í»jsG5;]¼¿¾üðu¢˜0D±°Q.Ѓp¹+Tmè‰&0v¦–ÉÓÝ–¢5üXßU­ë§NÞø•˜V4r…
+ž«ªlHÀ†ÖPu‚/ˆ€k»‡¶ô“×uØ$hªEÚÁå}™¯&,Ðý >z¢gÕŽ5Â,®›å'Û—„„
endobj
2672 0 obj <<
/Type /Page
@@ -12835,141 +12810,144 @@ endobj
/D [2672 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2675 0 obj <<
-/D [2672 0 R /XYZ 56.6929 548.7164 null]
+/D [2672 0 R /XYZ 56.6929 404.0791 null]
>> endobj
2676 0 obj <<
-/D [2672 0 R /XYZ 56.6929 398.5292 null]
+/D [2672 0 R /XYZ 56.6929 253.9299 null]
>> endobj
2677 0 obj <<
-/D [2672 0 R /XYZ 56.6929 275.4329 null]
->> endobj
-2678 0 obj <<
-/D [2672 0 R /XYZ 56.6929 164.2918 null]
->> endobj
-2679 0 obj <<
-/D [2672 0 R /XYZ 56.6929 84.6289 null]
+/D [2672 0 R /XYZ 56.6929 130.862 null]
>> endobj
2671 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R /F53 1333 0 R /F60 1366 0 R /F39 1178 0 R /F41 1238 0 R /F48 1258 0 R >>
-/XObject << /Im3 1524 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F60 1366 0 R /F61 1369 0 R /F41 1238 0 R /F21 954 0 R /F63 1385 0 R /F53 1333 0 R /F39 1178 0 R /F48 1258 0 R >>
+/XObject << /Im2 1355 0 R /Im3 1524 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2682 0 obj <<
-/Length 1512
+2680 0 obj <<
+/Length 1417
/Filter /FlateDecode
>>
stream
-xÚ­XIsÛ6¾ëWè(Í„(‚s“c5µ'‘]KžéŒã,BŠtIÊ®:ýñ}Ø(ʦâLÚÑXÞò½"C ?2a–„Ã8 Ç„—Û®aïã€8šÀ]ª³Åà—_Y<LPÑh¸Xux „… ÃEz7š\_OgçŒÊñè Žñèódv;ùd×®Ç M>Nçã€ð8â@D¸¦‹ðh6ù<=.¯nof“O×7³Åø~q9˜.ZåºÌ´fîîñ0;.±Dðá3L0"IB‡ÛAÈâ!c~%Ì¿· ;»æh œ Ä{¡dHBĈAÂDEL $Ú>°…ܪ4øZîªBæUV4Ú>h q™3 ÒëÀvðÖTñ$±H÷ð2ø~¡4¶£Îâße¡ìÈ°“¬°ßÍn+‹ 1R2•¹#^•ÕÖiv”pN*a¦FV•ù¾(ë¬~é¬g
-$"B¾«Ò‘ŸŠ¢„ÄN#CU[w4ç—eY4ª].Wö+¿ëë/SïWïwù¶û‘‰ÐÀ+PŒ"ì̹ôüY˜8þµHËLOÄHîšr+›l)ó|o÷—NX£R»ð°ïA¨,‰÷¯/¢0¯ç*œŒ,Ö½
-meªìrSÚoºîÙÒN4€µ7Šc…ÖèLcÖ¯e@)¤%Ob".\´ºõî1{4)D5õv õ/L¢Ñb£4@„Ž¬ºËÒ|S»¦ärcG2M³&+ ;"óMU®:«+GÛeXƒÇô`©úÄh+il¢Co>d…¬œ>:dcÀ¡y^>gÅÚné¨41âÍr0Øi½@¡¾k¸)o+;·âùø˜g:Zš¨ öÄÇ3,Yß6aP«êIU–0«»\ëFVg*W§’îàfפå³ã§!Ôße%ë 8ƒ±dt¶·k©ZÉ]¶»RÝu²Õœzä²VÚ­C¤ÍB 4úšÆÖ(
-ㇽÝHT‘Œ˜©¿ ñkídVGU
-}'ÆÌÅúZä=ÁG9jSÊ`}`[3Èk3 H°%h6›×ÖïŒ@•& ÷šC²6£å±SO~¬<2”`9  ‚ÿu%d± E38H=3©ÛT€,^gO¦FÀJë=ñ¾Ñc]vÑÞiD‚GìȦˆ¯—NË£\˜šÖA˜g…ò©°Î
-SÈÅè9kÜ>\â!$¹þØ…²:l@žëÏ;ž¤Í© œ²ÔõÆÌ U
-]Xž]ÌÎíéÄÉO·Y‘ÕM% .ݨ•µM‹Ï²Øɾ¤%‘@4Š|Ô÷šИ! =±CÀ:dr»øíêæmÓ/ aªB¹~q¾à·Î•Ê¢.«&ÛuzÁCÏ«O óÝnä»ÝÎ ø“=®çð¢³=÷×µ™ÌævÐ¥Ý5Yž5ûÿ¡yMàa@¡•ÿùÞµÃátëꉎ͎
-/½ž{/¹V?®2UŸä*^r½y“kEºÜ¦ê©iW-§/™>9ÌY[Ïc®½¦CâþÔSÐïçžÀmÚýçgúáO Ð’ qȦã·
+xÚÅW[oÛ6~÷¯Ð£ T/¢.Nãv Z'‹]`@ÛÆ¢cu2•Ir3ï×ïð&K±Òۀ€EžëÇC`ø‘ å³,
+’,Blö<ÀÚÛ q<¡g
+û\ëÉ/oXd(‹i¬·=Y)ÂiJ‚uþq:¿½],/¯~Ÿ…”ãéš…ãéûùòÃü¥ÝÎ2:¿]¬f!áỈpÍãérþ~q^ß|¸[ÎßÝÞ]-׳ÏëëÉbÝ)×7€`¦5ûsòñ3r°ãz‚ËR<Á#’e4ØO"Îó”r²šüÖ ì­š­cá,E<¥ÉˆG( Açtàž¡˜Qf\²Z,¬åów«mø1ëù!Q”ÑÌ°ß½y žÉðÌc–Ò{„QÅ)lÓܯFjq }qÑÿ+Žÿ€¸b:Ub/óp³“›?6•Ú~§ðGΗÿ®”|¾\«|óœV>Õ3’Ne“
+CþnWÎ
+ Ã(‹âF>~ ðÅÕòÒ+s1Ë÷…*š¶mU[ÒÜJ{ºÚHKz/ÔA”#î qŠh §X Ç2Hš°c
+!ÏâˆÅ¶’>¬½¹‘ù,_®T+k%[«ÉêØ´rßØÉëJ5U݇ýéܱ(¦NNÄP’ʼn5ÊB‹¡\m@¾T‡Z‰ò±.T«÷ë ,F§‘Ù°®qõÀµ”a«Þˆ,£Û'J;êuøíÈm°“BÙïî°*´¾¹¸/ó¶ª÷cžÅÞ£ÜâQUMÑ<Ç”€AuG)$oÂÙ0òÆ£ˆ‰怀a_„Á‡ˆŒ fÇõ‚ƒŒ)°ÜË#(•D¾
+½wF³É³²ér±z}wu»¾ºYv»^L©—TÄ9£(ÎHâ42\.íÚ‹ Ta+;rµµ_ñÍX˜ú¸ú¸‹ï‡ßTVz¥B’¢,M­9×^>‹2'¿±a…éI:‡¶Ú‹¶Øˆ²<Úõ;¬•¹%ÜG¼GR¸
+#Ïe><Í ŠÌÝIB¹eíÝB…°&¤»”¼-½[ë‚NÔ¾N§ûi/šÖ¶„aÿúêyú{Éùá[-ŸIÀAã [=÷èçm/ÁJX¹´ü)í.MÂðtûÙÝnì»ÝÞ ø/{\/áYg{é¯k3Y®ì Ï{h‹²h/½rGúi:ÒrâÎ¥ÿù|zïG biJOÛAÿ©÷ ñJiÃIBž«Þ½•Ïuÿ$Ö)Æendstream
endobj
-2681 0 obj <<
+2679 0 obj <<
/Type /Page
-/Contents 2682 0 R
-/Resources 2680 0 R
+/Contents 2680 0 R
+/Resources 2678 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 2666 0 R
>> endobj
+2681 0 obj <<
+/D [2679 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+2682 0 obj <<
+/D [2679 0 R /XYZ 85.0394 751.9132 null]
+>> endobj
2683 0 obj <<
-/D [2681 0 R /XYZ 85.0394 794.5015 null]
+/D [2679 0 R /XYZ 85.0394 674.8216 null]
>> endobj
906 0 obj <<
-/D [2681 0 R /XYZ 85.0394 769.5949 null]
+/D [2679 0 R /XYZ 85.0394 634.4081 null]
>> endobj
2684 0 obj <<
-/D [2681 0 R /XYZ 85.0394 743.4733 null]
+/D [2679 0 R /XYZ 85.0394 597.1931 null]
>> endobj
2685 0 obj <<
-/D [2681 0 R /XYZ 85.0394 708.4545 null]
+/D [2679 0 R /XYZ 85.0394 564.5425 null]
>> endobj
2686 0 obj <<
-/D [2681 0 R /XYZ 85.0394 632.6354 null]
+/D [2679 0 R /XYZ 85.0394 496.4842 null]
>> endobj
2687 0 obj <<
-/D [2681 0 R /XYZ 85.0394 562.703 null]
+/D [2679 0 R /XYZ 85.0394 434.3126 null]
>> endobj
2688 0 obj <<
-/D [2681 0 R /XYZ 85.0394 376.8726 null]
+/D [2679 0 R /XYZ 85.0394 259.4673 null]
>> endobj
2689 0 obj <<
-/D [2681 0 R /XYZ 85.0394 303.9754 null]
+/D [2679 0 R /XYZ 85.0394 194.3308 null]
>> endobj
910 0 obj <<
-/D [2681 0 R /XYZ 85.0394 258.1694 null]
+/D [2679 0 R /XYZ 85.0394 153.9173 null]
>> endobj
2690 0 obj <<
-/D [2681 0 R /XYZ 85.0394 218.7009 null]
+/D [2679 0 R /XYZ 85.0394 116.8171 null]
>> endobj
2691 0 obj <<
-/D [2681 0 R /XYZ 85.0394 183.5674 null]
->> endobj
-2692 0 obj <<
-/D [2681 0 R /XYZ 85.0394 107.7483 null]
+/D [2679 0 R /XYZ 85.0394 84.0518 null]
>> endobj
-2680 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F39 1178 0 R >>
+2678 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F39 1178 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2695 0 obj <<
-/Length 4018
+2694 0 obj <<
+/Length 3962
/Filter /FlateDecode
>>
stream
-xÚ¥Ùrã6òÝ_á·Ð•‡8x oÎx’Ì&3ñÆžÊî&y DÚbD*"eGIåß·Ý
-‹5€`â`ݶypwÒlù`úù³©ùœÇª[7‡Ž:Û¼>
-.Iº[X¾)©Íì¶í/°Êkn4u—Wõ“i-A
-\gš½ˆõJeýÖåž|ì]ñE¹<ÜóqMüŒµqn€;27@p†tû|E6Ýns×ì·9ã,Aà—ä
-pâšÅGhWÔcâž°æ­··¬ëùÐ o󢜨7ñÑo²ÛTÎ0×ÊÊ*BzO6ZI^غ›‰~)“E’: [\Í1Y‡ZÇÙ„Ét£L–´½H¿Áhé¶f"4ûλ¹
-söÕòûÞò»#þ±]œ» 
-3=/ÆÌZšÂö^é$Œâ,û¿“TT‘qºøažŠ°™žR1ÑÎ!@˺é$†›uå½µ(´d¹?lÉÄZøý³$‘`螯«ûµ[Û–V&¡EòMãHÖ \¶)Ê Ú¬Xï&¼Ânæ—y€¬&1ã(¨bé-ª6_nÊùâö€|çu›¯X÷ ˜Úê¾Î»;*‚Ù°ÖÌÃ/Áв
-i¤-7¥¿3Ž±‘ïà$ŽvûŠ:ÂÄÆnK¿¥Å#Ë<Äïô‰ÎAš–5¯ê Y[Ä/·ÏÍHT4$Ðß
-þd‹—9>£8,mc$6rœ™àø€îÃeL˧+â$Ì´–½•¹«6³è ˜§„ÁþˆüŽ´3£Iâ +>€žå/"òØ0~äØ®êA¾–ˆ±Âló®ý
-c1iå"ýÓ'´½X$Â=prÕb&
-轫y[t~3nm1È«‰—¡úz¼„s#ÿTA©º}”£_<÷P½d¾ŠüÂL
-}vÉ+É`£+°J†Uü›ÓϦC±
-¥ñšªÈzGÞ¾áelc$9œ„¾Ûf
-êT¼±y*Œ¸æ¹/•g€ÏÃᘓߋK¥^Ä[¥’oGôð[ySì¢ÌÕ4Kç>H¥lõ8.×R±¼óµt)-?îõÉï2ïVëqÉøùƒúãŠòÿFg÷Ù"0»éa ÔW
-ñvþ›ú°]–ûñg…þ‹Ã;—ô¯F®mø!êsß ÙOaogp„ˆUxêËoÈØð]pæ;íȯóÞý®SHY2Ùð=2Îi <‚6#…4—øu÷ýøSÜÿ Q*T;endstream
+xÚ¥]sÛ6òÝ¿Âo¥§C|$úæÆi›k“æbwzwi(‘¶8‘HU¤ìª½þ÷ÛÅ.øeÊñÌgL`,‹ý†Äyâ<6¡±Òž'V‡q$âóÕö,:¿ƒ±ïÏÏYøI‹á¬ooÎ^~§’sZ#ÍùÍí
+kåùöLÇ*ŒµR²9»>ûg‡p0ê–βBD¡TFÎðBŠs!BÇrČ؆FIå˜q}¬ê]S6Ó£(&©Qç‰Ò¡FÏm-€Ñ2âNÐ&B k€Â‘¥ÅÜùYHUÕvyÖ ¼ÿ¸È?ùÖU׺£Æ鳨ÇÝ͸{Äó½üˆíw–2 …N%‹{~\o³Õ7Ÿ>Ç*Ûß4Åj_´´lD°
+å·\ÑÀÕ»k‚þÂú„Àý…Hƒâ÷CÑ´ fŒ9/~‹"Yú$(+þðÝ+H¡Ìx猺È&¥Øß{4©! 2Ÿa$Ç7kwa‚l³©¸M„5õÁ5VźªÝ7ç©nø.ݤ8ÈòÜQ ˜8X·­ïýÀ­ƒÔ[Þ˜>ÖïóP¶k”p×ÙfÕH;R¯È˶¬îxëu1XŠgŒÆƒ<Ü!NŠ‚Kò ,åwmoÛ°=¸ ¬²ŠuÕfeõhZCd
+z²z8D_”9 -Ñ` Ÿp¥ G» Þ¾»|ûššnž“%˜PߎȞŒ‘A"k{ýóå3”:éäd&èÁ¦òŠ¸ÈgîG 
+
+ï…kj¼ (ûì]üèî‚Ð/IŸuõJ¥=êbO¾ p—¼G^,w¼]ã}ÆÚz7À™›{`8CÚ}¶"›îÐÜÖûmÆ4Kø%¹œ¸fñZãõ˜¹'¬yÓÙ[Öõlh†·Y^LÔ›î±C²Û”Þð­¥S&„ôžl´’¼°s7/üÜK&ñ¶¸š»djÝÅzþ’éD'.YB*ô,ýC ¥GÍL¨÷mçæJÜÌÛWwßwîþ°;º?¶‹sT
+Óllx£O[(D «-n­¼VÞü>öüiðê°'â«èB¨GZ÷‹‰p·ø°C»W0ú¢ZíÞD@?ÛÜÕ{0[êÞÖmcDÁ…
+~x{ùjÁI“>:êÛ«ØQ‘ër…v\&-N‡© v]"¢YP°!Dnx8ü\¹¤€uKæš™ŒoL=BÎgHÝ^Ù<àêÔÞð¡ÜlhfUùœœºà,µÀµæÐí˜::ÒHSl
+§#b#ÛÁN#ìö%9t„˜Ý†¾…£#M;H‡é3íƒ<-*^Õ&²¶H_æžzž‘¨hH ¿«÷s–¦¬š6F¿À´2!)[4«xš6Å+tÜg:
+ ÖŽ
+ ."SÝf‡MKã”m`Ëéat§>ËÁâVC><ƒÎöÐRñ{Æi¬6àœî‹Ù|îW
+z¸,5#ÄšV<):T¦KÀ»ä¸+šI§}/F_Ž3Æñdc\^TN ÷qî1 †é’s÷(8CåèiïÓÜ£T¨D÷oƒGE®2pŽÊ„6IõàÝgÀRÐ^…¯Å°dœ¹KK­Ä—¡1pÖ2±.ðyL1¸ {U>ŽhSi§Ñˆ4ر…ðyÍ»/³¦0š6†ä¥vJ„C…ÃÁ^á#IüÒ0½t
+ý†/MþqŠŸ"€ãØÒ˜/ –î)kê3»½Á€"°¯Øy6kH°æ Œó³ÎSJuÚû?é6 ÚJÒqóÅ\ô§Â8±òYÁŸìßÀ}¤×ôTºÆHlä83Áñ߇˘—5VÄ&Lµ–s¿0“7zøwöG@äw$ÌL&‰4œø
+³ÍÚæŒÅ¤“ #ú§Ohwba„àä$ªÅÜ- ï4¦ ¿ŸŠ…Ç¿CXPAxîRãÐ(#z¦Í ˆ eԕ»úWi¹\b¼ÎªKâwèoŒ+JÖX—fžÉX„25“€ŸÒ°®º<ÎQœ„Bybò¼Âµº…f(74)ϯìö„Ü]ˆ vYÉ
+_®± ~d…o³+Våí±^Ø´6`}©aÁ¤H/Á®ë¸Ú¼èƒ]lƒ]¬U@ïMÅh×åì‹ç
+b/Cõô.xˆîÍ5Žº§
+JÕÝ£}}ðÜ# zÉ|ù™™úí“W’!ÁFW`•  +ù›ÑgSƒ¡X€v¶Ôç’1´8ù†×°y*x`&¥÷‹Í¼{Œ’äQ~-mê£ ¡ü{’ðŽJt¥¢yX)s³êÁ)Ü!È"š(Œ¤JÇ÷‡EGœ Ž3}CNA¡»¨Õ0µFaÜ?5£œJ÷8ëËwêŽ`§G
endobj
-2694 0 obj <<
+2693 0 obj <<
/Type /Page
-/Contents 2695 0 R
-/Resources 2693 0 R
+/Contents 2694 0 R
+/Resources 2692 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 2666 0 R
>> endobj
+2695 0 obj <<
+/D [2693 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
2696 0 obj <<
-/D [2694 0 R /XYZ 56.6929 794.5015 null]
+/D [2693 0 R /XYZ 56.6929 749.2922 null]
>> endobj
2697 0 obj <<
-/D [2694 0 R /XYZ 56.6929 751.4437 null]
+/D [2693 0 R /XYZ 56.6929 666.7399 null]
>> endobj
-2693 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
+2692 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R /F22 977 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2700 0 obj <<
-/Length 3328
+/Length 3285
/Filter /FlateDecode
>>
stream
-xÚ¥ZÝsÛ6÷_¡·“g*Ÿ$poîÄͤsqÓØ™»¹¶”DÙ¼H¢*Rn¿þØJ”œÞ `±¿],Å' ~|btƤU“ªL3®'‹Í›<ÂØ»+N4³@4K©¾¸zóƒ,&6³¹È'«d-“1cøäaùËôæãÇÛ»·ïÿu=šM¿Ï®gš±é‡›»Ï7ÿÀ¾×VLoÞÝÞëP2"ž;ºœMïî?|{s]¨éÃíõo?^Ý>D¶RÖ9“Ž§ß¯~ùM–p‚¯X&­Ñ“?à…eÜZ1Ù\)-3­¤ =ë«û«Ÿã‚ɨŸ:&
--M¦(Fd!Ę,´Ír)¤—ÅÃSåñæÅRn3&Œ€õͬC’Áj\e’åœHš]W7[Ȫ­º[,î›òÏzsØPo½¡î’fv˲£¾ý57Óê÷CÕvرT]ù…hæÕªA:|¯‰´öûêi9oö]µ…‹þˆ~xY­ÊÃz@›O%cît“™”™”JNfœgVkáÏÕV‹f»lÝJœMÿ]ù]4d ó
-Ÿ‡¶Zb«#’eÝ–ó5 £4\кÌïË`C ÊuR=¯“`ˆA‡q}0ÆÔ±>˜ú`AÐõùíGl »ý ¾ÖÛ®Ú?—k8¯°š$ÇRÉ9¢Ÿ2,D$l>}¿ÂÞ¯$ªïà•«~ç°®ûG½^cÿœÆÍfw
-w×BOïço®—voñ­ é™|ê’5ì]nÀ§ÚÎÁæ3ÍÛö»¦õñÌ-èÍßõ7à-ûHVÓªv#ØÑ
-Ù‚…¯Á ÎøÚ¡o‰(QÉ9aqâ[ÝÖ~ÈðOÕâK‹TNXîéÝÖ(
-‡Ó!ÜÇ•–5²Ik”‘ @¡Ìï´ï§ f ’Ls
-ϯÕ5eu ìñ¹‰×)7yŒkZÉã‹£ùZ®“Ö)ˆCçÙ¹±ü"ëuóÇè¹KG
-w
-×ãpq&Dq7µ–.g[zû8X/èåîžnÚÁããµ-x|rùŽ7CJ
-ýF{p W»9{?Á«} ¥ðn½)»öè* «×t“ÜT%eŠŽ "SrœUãMþï'õ"–1 ™°4*³\©ñRÍR*,ïð‘òN¤BMû'‡ï…ñË®Ùw¿³Ä­Î
- Wº‹<Eª¦&ÅXVp¥‡\ÝW˜(@VX:ÈueP´{‰þK^¿~ŽB‡Œ¼Ð Pé‹þ¼§)˜€4N+®¢DYŒ\"áÎQhC¤Î =ý'`Ýyáì8å«[Ç\|‚Ä}»ƒSlædî™\—ßx+W&S®ŒÇ^ÍMu& œbüB&<NCëœ{éˆG46eÛEfÆ1Õ³=!``G¢•®4#‡Ž°K…ª›Í§în>Üâ Á#­¿A@¿O[¬—èq³ÿÖbïýO7Ø9Ä^ :Ÿ‚!2¬^ÂR´g8—ëŒ.
-?¹?#kÛ &Ødéq‡Ð*õ™ hN+c‡®å ÜT_g\äÅ7  ä¼2æœd£°AÙ3»_–¤*ºÌÙp³²ƒ”Ëwa9šŸÞ¡=/±øl,VùÒ¥¡hOi#:ãdî©çQ™ïŒûp#3ñj€M©Î»O¤òàµ.CTõÍs¤ %/s©FØ8q ­ó!Þ|by6oñüѧá÷”¤Œ,—2³6øžðÔZ\è+Œ$“ßžD%r«ÛQà&Ǥåßß}¨$g®xN÷èDn^Ñ}BuA÷Ê׺u¸ªúoÊ'z9*U¨ËDª§¼T˜!½Þà Ó5Àé ŒÐžk_Îv_7ð†¯­iÝ5¡_»!@'ŸOª“o=CØsWhacVs÷4èPð!æ¸ëëªÜŸ9¥^6“'y=¨ä¼0“åBÚWì ¡º`Š¾cVn{,
+xÚ¥ZÝsÛ6÷_á·“gj–ø$qoîÅí¤sqs±3½¹¶”HE¼ˆ¤*RIœ¿þØJ”âÎ.–Àb?~»X™]§ðÇ®s•¤ÂÈëÌÈD¥L]¯š«ôúÌýtňçÖ3ÝÆ\?<]}ÿ£È®Mb4××Oëh­<Ióœ]?•¿-îÞ¾½xõúß7·\¥‹’›[•¦‹7wïïþ‰´·7†/î~º„W.…&¦-ŸNïß¾º»Éäâéþ槟¯îŸ‚X±è,V¦?¯~û#½.á?_¥‰0¹ºþ /iÂŒá×Í•T"QROÙ^=^ý+,ͺOçT¡Dž¨œg3ºà|NÊ$ZpátñÃ31Õ‹²Z‡íð=|Ç¢ï¤eOívöƒ¶?ìÊb¨ˆ1Þ@ÚCAŒ‡¾êqí÷¯ÞÚA¶:$ôU["…ÖrÔý ËÕŸ‡ªú)ÿ°©ÐMå—تö´H»­ú>°>#µÀõˆÜuHÝ"ùC ãó÷4åƒ=Òõ­Iæ<‹±Ä(ÅÝaêÖz‚Yð)Þ#™‘à?oêÕ™WE_!ñéôÙçz»ÅѲB&ÐV &R±xÚrel.t’1““vo?̀Ʉ‹`€n7Ô‰ÓÁ§¶Õ,ÑFˆÙVÙv¢p°U׶ÕÊî› 6…Ò‰ÉólªÎ§MÝc¤5Å3œ"à¹C•®«}±Üíó¦jqTs18í°[ã3xŒ< (ãve…’¥ ‘ ²ÇsÍ)8˜ÎŒ×ùn^çR*o–¾ò;¢Ï€"‹N×íiÔš¥s`ËÛÑzúfÝÑ̨Ï~ÊJŠ €€À’u#–º
+à¸B‰f"{¡6Ržs¯a^"ÕìØ…öš>šaÐ_êæеnˆ\ÐÁ¢BÅVžk
+Uë
+—<åS½ª¬ ïwŽêý>™(ÞR€iT
+Òkz~¬ž—Ö[%rBuÄ;¹£ ™4ˆyÉœ·Â˜$“
+Š„SHëq›ª¯p:^Ò}X©¬©ÖÇ5ŠXP¡Ìün§ýøù b`• È5'Э%QWX/;·ÖßS•¾{ëÁ€!É«Õ¿ÔxŸ‚ï;¢Õôi±ì1“À\T‰Á •0Â+B¨Ô+ÂRã3Û÷æÐÓ2KâhªöZãÄ€õ±aÿ:”ÿFŒ5‹G5‹!¹áé°žýaµªfIaïݧÄBå Œ–“Õþ ÷2A†D3þ°v@WOâ].žœw4;icæ„ë¢ÞÎÖ ÷póƒ°ÙxiY6=µ„å{´¡v®
+Ï¯Õ UuMìñÙ„ë”ýxNjZÉá‹åùZ®£'ëø–lJn‘í¶ûÜϹra ”:ÔÜ›ÜAÁã O0¹MX%2ŒgçÇgGKÛ ª¸¬µ‘P¯‘b,ã“\-Çýà$†,ëJa¯
+CÃ~ÒíçìÚÔ}5EžÇÑoè30ð0`x‡”å¶h?âÐ盜ÐÚl4;×£eN³ç<Rëлhçj[–ÉÐT"@'„€¥W5úbi‹Õê
+–smx&óDÚæþ·{µ*<õ’bþB!NÃèàœ}HFT š¢‚°‘àXꙑ°@zçÌ6Ï9ÓÀöØ%}×ÍèÅ›‡»7÷xCpHën@we‹Qþòûõßz¤>þr‡Ä)öâ¤OÔz*„Ì°~öKÑžþ\–B
+û8’ÃÊ[ßUWÇ¿Ì2‰@ÊÄ74ç‰dæE0ʲlŠ¢° ¡(Š2éf‡E‹óVX
+ŸØ¯²#L©Âýzˆ£Ó´»Â²æÆÊÕ­í+|·"Ú\ Kj»qŠ(çv\ûšÑâLÃïIƶkèO»Â«¯?´¡–< ,SI¾y&b®ó0¸|&ÄííÈ#ù”J4“ò² kFˆ 4輊–‰“F©yîÖZ¾m_ÆêÕ2wñý\¹¾~<ã³ °¸ãÎà…`P „_GbU‡`–ä<Í"ÀP”„´KB3k›>0ÑÒó¡d`ë1„°œ’¹™†–K/p_ý¸(0®³ý nD¨<ÉGaƒb
+u9@7¡’9ƒu
+¬ÇÙgìOê۪؟9•[&QEϽ=’sÿõ&TbÿUmÆip¢ÿû?âÆÿüƒä òœÏÛJ“NÀ¼PVv–‰cÑÃÿÎÊþ?Qje¤endstream
endobj
2699 0 obj <<
/Type /Page
@@ -12982,30 +12960,34 @@ endobj
/D [2699 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2702 0 obj <<
-/D [2699 0 R /XYZ 85.0394 569.8662 null]
+/D [2699 0 R /XYZ 85.0394 507.1706 null]
>> endobj
2698 0 obj <<
-/Font << /F37 1042 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F21 954 0 R >>
+/Font << /F37 1042 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2705 0 obj <<
-/Length 2767
+/Length 2952
/Filter /FlateDecode
>>
stream
-xÚÍZ[oܶ~÷¯Xà<œ5ey•¨—.’)Ò 'vЮä]Ùª•6+­Ÿ_†R« ¥uš¢80`Qä,9œË73¤Ø‚Â[¨ˆD Oq"‰¢L-ÖÛ3º¸‡±·gÌѬ<ѪKõÓÕÙ?‹x‘$âÑâê®3—&Tk¶¸Ú\/","ç0]~¸üüñõÅy,—WoÎWœK-/>~|óáõ»ßá]Q JJ—¿^|ø|ñû>ž'|yñöÍåùÍÕ/go®Z¶º¬3* O_ήoèb;ø匑hµx‚JX’ðÅöL*A”Â÷g—gÿi'ìŒÚŸ†D!•&ŠË„"* Œ‘˜1 Š%#"Rºg!y*#°ªØÜ×uSç÷à 3ÊIÄ)_tg­ÝRçÅIdtÙ[ýsØ¥\6¶¡–¿+µÌËMõT㧔âÐc¶¯óªÄîê;ß^^®®.ß½uÓTØ Û)v›´É6 rAõòê!wóãS-³/‡ü1-²²LµËÖùÊg±â¡”e2F¥¸ÝÃÝs^Záýð³ìŠ›+¢4X,µT«
-IúB‘D‚Š‰Ý˜ ² uµÝ¦å¦ÈËŒŒÌÑé<J´Næ £K5m-•áfŸ¥Åù¸ÆöÐ>˜"Œ Þcá”Kp’h­Ã±jg<Á/cš0Æûü–é6»ñ(#"Ä )y¢Àª=e4‹eÙß2P›ry¨@³k”8¡î•èNÇ9Ñ”I§ü ˆ•à4Rý}"ngo¶Ç
-̳’¢$†‘ÈÈ:0¡àDĶqBÈðBéAB Ý— ‡|h Ì*!`Jnóüy*ȪmÞ@ý
-ßÞ}À§ñ¼¼l²}™5ÆüûÁæ?lgŸ’|+:QÖt©f|ÂS… ñ»}B$ÊϲÛRøú„ˆë3Œ‰à‘³ñ®‡;1ãi—¬ë ÇÞ£ƒ˜Ÿ§0c˜‚Aã”S"#¨è^àbÞ)"ÂLíŠ>ÁþYŸÐ“Jæh·‡ÚiߢŜ‹˜€”¨ÿ¡”p•œ¨ïºT3⩾ßC.mRBF¬CJ1ݸËï-U€ù~q
-¡ªÏüÕC6aš·öÜ… „Á”Wðu”Êäì1‡ì}ý`Zl‰²€.ç¡c‡žÕ:g7Æ5»$ ž)@Ï]µßºäAÚÓ"Ù õCºÇb1RÖŸ#i‹ýª ìJǦȉ¾×#"©>…üÆ´Ž“v(±Ä„3‚Ç/sF£å§uåî¶}›—¦†2B0‡.¦×
-Ðö¤ØaõaÌ ÿÓ§¼8R‘³6—IpP“I‚j‚'ü •}M×MñlŽ†èr›6Ö
- Ë<hLObñÄêÒ¼Ùì»ûÃÿڌӴ,|SzºÏ³¾…„<Z«ø{®LϾYáŒM(|%¡"`ñ ÇùÆÌDR1á¼2Ê8a'7¦#;âš-Ÿö{K|ÉÝe º=¥>(Ú¡ì«Q©ö9¥óï:+›´ÁSF ²êîN4ŽºÇ^uÿíÌÑSAR}}rgÒæßÅ$ìK53‹Õ<ìw©¦a¿¥²°ç Ë7YqßF¸ß4ÅM \cÀµ 7£³7e?
-ì`˜X&ØUo k¼ 3™‡y”Ù6vŸ°QÁeúð”Ñ´\°g§J.
-aXj9k9
-Óéêi¸¨f„š;‰ÙE=Q`ÑîþtD(É÷}×»"}¶¿«­Mc}Ø£IØ{DèØfuÞgÆ­µ0— ø‚)Œ¦ ¡EDg¢É‚#rØ
-3t4½î¢1„ߘ%ó‹z¢À¢=õ (aÓ½E/aÑzxßÚÓt8ݵ ßµ{öîŒÍLî)3¡ ulp·EZþ‰ÍÙ]n¾ `”Ÿs‡jFΞ
-=¼~{:
-x8dåóËz¢À²]I'’ÞÝÂÀQºÂvÜ@<-
+xÚÍZ[oÛ¸~ϯðÛq€šË;¥Ç,Ú-ºèÝ&Å.̓b+‰P[r%9iί?ÛLI”œm÷àˆ(jLçòÍ I²ÀðGB"™Òt¡RŽ&b±ÞáÅ=|{{FÍÊ­BªŸ¯Î~ú…©EŠRIåâê.+A8IÈâjs½ü‰Îa¼üpùùãë‹sÅ—WoÎW”r&—?¾ùðúÝŸð.0%ÆËß.>|¾xoû>ž§tyñöÍåùÍÕ¯go®:¶BÖ fš§¯g×7x±üz†K±x‚ŒHšÒÅîŒ †gÌ÷lÏ.Ï~ï ¾šŸÆDÁE‚år±b%0\`)B€H‰IFY'0JbóTZ`_òg»ð2Ûå¶Õäë:o‡ë'4…U`¹'±ÒQEx¡/ÖC0s¹Ï×Å_Ó¼V¼l²Ö¶²íÖ6ûMÖúïY}N’eîˆ+û¼uïW—ïÞ®šâ¾Ì7î§MQÞûs½ÀŸ~,àŠ
+h¢RX‹““
+ü^Ž‚®D)&îwû¬¨µÝ!M
+JÄ)(˜ÌŠ”
+A Ñ•ç §#â“*92› †KæhÖÕn—•«ºê1¯ëbcįYé”Ûi¹é$ìQÚ§ˆiôÆÛ¥ë~,2Ë
+Ù¥ &ž—U”]Ž8ر#©êÈ0 —D
+îGùʼnΒ ‘w:PD!.`¨y? ¨füÄSé[Λ($•dóóz¢È¼áSŠ¤Pª?ïçÆ)àíååJ[´SWåô æ=P u `#à…3ÿÌ¿ŠÇl›—í`(mwÏÚE"ŠN¨HJ¯¢ûÓŠž0,mR“ê“ *ÊX2¯¾jZ}•áf»™Ð Á vŠéüÜUdò>€®uÈêÍn•È¹Ë?Î…Xå¦zjìŠ1¶ŸÀ…›ÂHº«;Ûh_SÙ^§ýpà@û8ñÚû}í‡Cií¯,`Q‰0lîáÕ¤e$ÌÎ0ªÿ’ap°é èf ÃSinê<Ûî,׶=´"¡ŒöX8ù)J“$‰ÇýU7â ~ I!´Ï¯H7#¹DŒ’'ŠÌÚSH“ÅûÓþñƒÚã>ˆ2¥ý ©„R”`â±=*b†98 ÿœˆ»Ç‹íqÇÀ]E
+9ØHÆ3¦àÑü¸’ ¸¶K‡4¥´"1F­»6ù]vضöÅf)ÆÐ4QQÆb p óû¥¾.€µ#ÅÕ÷ÇuUÞŘd(Õé©“&¼»s9žƒú€Ÿ02Œ’ƒÎE›ìÑ÷Müv½Í]2¶™vb
+ˆo¶ýT´nŠÎ”û‰®T
+l(_o³¦¹9²<2@Û”5ÏnGá·g£”2ÒgøŸuýÐ< |Ö¹#ÞÎ yWÔ'`^ÑÈáÍîUdœ×Õ=–ÃH¤eQÄ„m; ®)#éAŠ˜Pü»pȇ¶È¨&÷è6ÏŸ§ò¬Ú-$ЯìÛ»ö©=¯(Û¼.óV›?øÁø‡ÝLàãI‚ %Qó>RMûDGƒÆö –B*?ËnGáwèL ÒgØ$ŒJg㡇0ªœ‡èïYH:ȱ÷è ú§Ú)ô7›‚Aã”S0Ä!T¿Ä)ؼSHDôÝÿÄ'ÈI¹ßxÚ§}ƒs.¢R*þ<ŠBÕ‰ú.¤šñOõãbé²6ChÄ:¤„Óµ»ÌñÞQE˜ï ,úÌ_Ew)µ}$´³à.f¸ "¼‚T:gW²÷õƒn‘¥•t™8{ëYs6…Ýk HZ»§
+ãÏ’›b¿*#«J”.r亣D'§ÂXrÜæC@›pFcŠ•z™3jÅ?l·7­W˾-ÌF´‚ÞtѽF€¦'³FºaÀ ú?}jÀ‹¥à9;aS>HÔ¬&ÓÔª žðKÛp 
+º€'[á„L(|Å¡" ªËqÈ÷d&³ ç¥Qª”œt^…GvD²|ª5ö–ö¥pO+kh4-¬)óAÑ|Ê¿¹;Šóï&/Û¬µ»Œ@eÔ4ŽºÇ^uÿåÌQoSA}{üäŽÞô¿‹IØgRŸÝ 1û!Õ4ìwTöí>¨ÃòM¾½Îo#ÜoÛíM$\cÀµ 7£½7e?f
+›~¢èÔ!̉oõä— ‘²;,ØrÝÛ¢}>'
+\ªpñTcpÉ6› \Ñ¢ùÎÄ2M™_@GYÁ0±L%ØUo c¼)Ñ™‡~”ù“mDì>%£‚K÷Ù]FÝrÁžœ*¹0„ažðYË
+êA:¨8ÐÚnB ³e '‘ËU[XþÆŸ>DèãòýÁESñB—ßÁ~\ûâÂNcß27NA²è#‘‡'øà.·A«©†“g–úÞ.ñ°7KÃý„ß¹û+MÄÊš3³.¿õÉŸ¾[X¬Ã;[áû×CÞ à¶Ã”D²¼_Û¬}o—.bGS7Z™6ßèuNÜyÄßv=Þêå
+±d
+ZAö~,=SZÎDñ1tB Â
endobj
2704 0 obj <<
/Type /Page
@@ -13018,29 +13000,21 @@ endobj
/D [2704 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2707 0 obj <<
-/D [2704 0 R /XYZ 56.6929 161.4147 null]
+/D [2704 0 R /XYZ 56.6929 107.2827 null]
>> endobj
2703 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R >>
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F53 1333 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2711 0 obj <<
-/Length 1990
+/Length 1792
/Filter /FlateDecode
>>
stream
-xÚíY_sÛ¸קÐL_¤9Æ‚_:ãØNê»ÄM#]§\h’8¡HE¤ìèÛß Ò$EËi›ÇŽgŒ¸øa±»Ø]@lJáM•$TDþ4Œ|")“Ód;¡Ó5|{7aŽÇk˜¼.×›åäò­§‰L—«–"T)6]¦ŸgW?ÞÞßÜýkîqIgoÈÜ“”Î>\Ýÿ~õÇ>Î#>»zw»€®¯"˜Xhø:ûts=ÿ²üur»lÅéŠÌ¨0²|›|þB§)Hþë„)9}‚%,Šøt;ñ¥ Ò¢É'‹É?ZÀÎW;uLR("Gtà³1Ȉ‚ «ƒ¿Î½
-zV
-õUçг+lös¦f:)m›VfÏVе_Ë<Ý”UMô÷x»Ë5IÊ-~ˆqvRëZ§ S?P°BêxŠÎJ|°~j*ôÓøBOY½1›2Û`ŒDRr»»hÝ8M¸ªp€…œ°€0°ŸU-£Q0:[n4²ùѳŸp`(¤ÛÄ „[›4>"±\:OûƒJªŸRìV€S¤Œ2‚v陲o—¿  ‹ê°KãZ÷·ÌºfÞíõ^sìßÓrg…ëeÉ×"ÞêžGtç€ÜJ–œÁ°_ÜÎ y}õáÖ9]¹Õ'–{yÍW|4Œ,3Ú' `¯ÖøÿÛ!«²Ú~‘3£Ú¬ÎÊ׺®ª›¹fÈ[éý#`àçÛd£“¯ÍŒ¸FF˜Ûøµùw;…›è¼­<X"qKœ#ÃZ®Ž9sv¥ãN)Ç.Õ¨öÏ
-vgÀdÔ“f8/ ñ 7Ãm ÝhOW5¬â,¯,¬t°
-fâAQÞ€JKÝŒ•nªþžUµ[,FÐ^Ü•‚#X»¶Â¶9Š>e`êfTƒï;å″ POm쬘۠j]ðÖȦT»d(»¡ËâJE–4¨&´¸•4Âçe±öª:ß*Öcgp?Ýæ†;fæÜ™öÓÛk$ ]øH9ÙŠ±qZj{¨Ü'” «UÇ^¹Öú ¥5¸%O‚Sà\
-¥Y¹¶ Z P±±Ê#H› …çÍ®€Û±¦‚"à³mŒa(t2ʃ&”ÃèÍýbq{tæ8­† Á¥H™ƒhÚ8ÏË'„°bUýÏ›øQ;ŒO‹»wí¿ÝþÛN‚{³ìˆäƒ³IL@v1ˆM[F B X`g½½{%ð6 „J¨<|å«ñjÆñx&Läj$‘7LfÉK]'—{ˆ-ù#üb5\t hxvù–édý^Äe @ðÞú‡ªIƒ6Jšä™ê¢ÎV.Ñ¥zòÚ¥N&h^_R• žóšjyÎ(
-y¬žãýåþP\ÒË
-r?$òU‡BpŸ˜œ“¢åŠÑÓ÷%ñM~êÈQaÒ‘mܨh ‹”Í.ÒS£k§âÛ¼LâÜ+‹ÜqnËT¿¨SNÈ_Ój‡ëŒ^.³£ßð\0¿Ã(I†`Û˜î
-™.’O"Å„c°nq
-‰L1Lë—P|Ç@~a2$¿Œ
-³’Yu3z{¸Y,]™“=ìãý°ÊšB*Ùwu¹ÞÇ»M–¸<·Ó :xÕ…{†)\FÛ6/0É&.Öƒzju¨Ïåæe'×઎Õ|"ü ±šñŸ B‰Í+!0Jaj‘&ͦ – †åò}›~Nì*E»ÚÉø<ÄyøB팻(‹ÚJYæ®F¬³<«?àb‹cQî*0Þ e@.`‚‡ÓPA&£|,a0œK“ Ï&ø™WIÇô¼oóæóÙ{À-HÑ=Ø‚„‘â÷”D›—¸½yÉ;}-Sn5AÃþ¥ANFûéÖòlí­²\ÀB ¥ð‡°__……³ù¦Åi8Ĭ^Å|¾H ÁÔêÃ!ânÜ:!•ÞùÛ•ûz¸_*µÀÿl©ãÈ}ÆLæl
-žJññÊMPZ6ê„2»`¡ŠÞþ¤p*ûŸJJ-&endstream
+xÚíX_oÛ6÷§0°R%êe@š?]Ö&ËjØÐöA‘èX¨,¹¦œ4ß~G¥H²âvkæ‘<w?ÞÅÆ~l,¡<òÇaäA™'ëßÁÜ›s<³šiÖæz½_ðp‘(ð‚ñbÙ’% •’éÇÉÉÍÍùõÙå_Ó™'èä5™Î¥“«“ë'ïpìfy““7çsèú2ò‰…†/ “÷×g§ÓÏ‹ßGç‹F¶ÊŒr£Ë×ÑÇÏtœ‚æ¿(á‘ãèP¢È¯G¾àDøœ×#ùh>ú³ØšµK‡L ¸$Bzဠ|6d?$A¢ ~™Î8t¡w›4®”9H1F"!<Ëò+²8K§*W5]æéªÔQßâõ&W$)×8qÒÆž§©SB= K’Oi-Ô6,ô #ì€ÆZ©™>¾ð¼–€™3Â¥éӧ܈6ÍvÊäD%¥mSm½Éºvvð´f"ÆuØAû¤€?°CêxŠÖN^o'œj64†™xȪÕС/o³`N¬5´leû™n­ŠœÑÉb¥p¶Ígv
+úJš±U\‹p;`“ÆH,îþ|¢‚:ç™®9Eªa”tL =Ç„fM›­Úª¯Žý[Z®ã¬p½,ùRÄkÕ1ãaü –C2ú¸<½>¹:w°+×jÏu?‹RtPÀY­Cðÿë.ÓYegÄÄØ6«²²@Æ;Ui¤ªz­9òjµ½8]b›¬Tò¥^WÈkk`›‰¸Ý)ÜB·rg‰Äm±w k¹trÌ¥³;=nƒŽ½žƒÖ7 åþäÒQGGXát<‚„i<< ×¾5tm=¥+XÆY®­XáÄJX‰7EÖv*-U=Vº¥ê[¦+·YŒ
+!ðŠ§’p+×jlë»èS®®G`ßœ_€zX)ãgÉÜeÁ=±F7)›-“¸@Ý ]Ÿ(åYRK5±Åí¤P|^w3]Å€­ânÈSÛ)Ø67ÜA01÷δï/N‘€,è#åt*ÆÆY¨õN»)Ô kUÇ®]k1Dinɽè8H¡6K׶…êžTl¬ñÒ&já}³;àñNnà ¼É­2Î0‚ÌÄò Žå0zv=ŸŸŸ"9Nk!Cx‚ ¤ÌE4mœç劰jéîô*¾WNÆûù団f·ç;…ÓàÚl;€ÃÞÝ$&"»ÄÆÍmò¡.1¥ŒYvqùJ¡~ÍC PQùœˆr¸LsL³6–(r Di¸Ì®ÇªJŽ·_ò{¸üŲ¯
+± ÒæYØ7/ŒÛlÍ7 ;ºÓ˜ŽÌ®«Áïgó…«o²Ûm¼í—AY]A%ÛÇMUÞmãÍ*K\‚Û(Pê;}ä¾É.•­ëÏ1É*.îz…ÔrWížÍõgž\A|Ó-¯ù„ûAã5A¼€ ôa!Ä/Jai‘&õ¡ TJá>Y\7¹gïÔ֡aJ0«ñc‘ç…ÏTÐxŒ²¨¬šeîªÃ*˳êñ¹°ÜT£|(ÐŽ?ýöé´BV‘ϔƜ‚%yÄj¥ÌÉY(úª7Ÿr÷uÿrž›endstream
endobj
2710 0 obj <<
/Type /Page
@@ -13053,82 +13027,92 @@ endobj
/D [2710 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2713 0 obj <<
-/D [2710 0 R /XYZ 85.0394 516.9709 null]
+/D [2710 0 R /XYZ 85.0394 462.0323 null]
>> endobj
2714 0 obj <<
-/D [2710 0 R /XYZ 85.0394 351.7832 null]
+/D [2710 0 R /XYZ 85.0394 288.682 null]
>> endobj
2715 0 obj <<
-/D [2710 0 R /XYZ 85.0394 277.6094 null]
+/D [2710 0 R /XYZ 85.0394 209.4795 null]
>> endobj
914 0 obj <<
-/D [2710 0 R /XYZ 85.0394 227.2683 null]
+/D [2710 0 R /XYZ 85.0394 155.6441 null]
>> endobj
1341 0 obj <<
-/D [2710 0 R /XYZ 85.0394 194.5015 null]
+/D [2710 0 R /XYZ 85.0394 121.3428 null]
>> endobj
2716 0 obj <<
-/D [2710 0 R /XYZ 85.0394 159.1835 null]
->> endobj
-2717 0 obj <<
-/D [2710 0 R /XYZ 85.0394 94.0431 null]
+/D [2710 0 R /XYZ 85.0394 84.4903 null]
>> endobj
2709 0 obj <<
-/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F14 980 0 R /F39 1178 0 R /F53 1333 0 R >>
+/Font << /F37 1042 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F14 980 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2720 0 obj <<
-/Length 3136
+2719 0 obj <<
+/Length 3156
/Filter /FlateDecode
>>
stream
-xÚÝZKsÛȾëWð¶T•9ž÷`rÓÚÎF[±ì¬äTª6>@$H¢ Z”¢üútÏ/‚¤·vO)
-3³Äj®g믄Ð$a³‡Õ¯ó 3äXÐù/wïß]/¸L¬œß|þüáîýí¿àYQ 
-Jçoî¾ÜüÝ}¾¶|~óÓ‡ûë¯?_}xhÅé‹Ì¨@Y~»úõ+­@òŸ¯(6Q³x „YËg»+©QRˆ8R\Ý_ý£eØ›u¯Nª€QÂ…æ:àlƱJñ”%Zpá”ðþÃý»_n??Ü~ºÃ¯qïtz£3ø`¢•u´ûrµ D¼GÄ9QL&@ŒD˪lö×,™WE ê¢jÞl3S=eû´É«2<®ý5õ—2ݺ:Û?gûk#ç |[rÛ„‰p¨³UÖã|,4—´¥ƒ<Ó2³T`e 94y‘7¯‘i–{IÃ:OþƒžóU¶ò#yü†" üx{÷×…YJ”¢°­îQwÈ!+²´Îjø*)’ùízBxEI"yþ”ÆITxŽBZ"=Wßœ|`/y³õÃeåG–Õn—–+?Xäe懫'ÜÀ¢Úûkê¤ÝvYÙÔo®‚ûÆ¿ð´Ïa0ÐùK½­öa¶>À*û×Àní5b$(ÕC…x«
-£‚ÂñÎI*ŒCÁ Ý}ÕÞ¥þòðÏ)³e“_³yU‚Ö%5ðf¹Ê˧ìTã^?ÀJeã„XÓ BMAÎWù&oÒ@¦|S¦ÍÁÛ¥3I)æ·¥§ôÚªåaï)ÊÆÏ€ôu4vxìx¢åE–TG…âÎsb–D+Ge®&ØJ¬Ñ_œ­ê(¾=¯þ®oev <ŒGÁq5‘‰©/-6ÕT¸ÖZ8oÃëß>Þ¼[||¯pEËæ/Û|¹õ3‡: 4©¿Ô[oƒ¸¶{Ζþ¹ñÏñš¥‘EV:RéB$x›‚›h#U ;¦¥?l£D½ U»¢ñC|º{¸¿ýiQ7¯…c•ŒUàÆÖ„6qÁ¤ øàÅþíÕMàgZú`ôÚ´Faü‡ºÿ~ýö“¡üð…7E1Xh$ºßƒÚ›º»c9Ëm
-:)üÃîPÊÇ^ÀÎcly| 1Á_¾e¯ã Î!7*mÍLKA0ÆïHáœØ£ñT_´ =Ž>9¼ACUÀ9R¹ÈÄþVV/eøêjôõý\yì@˜šH¢•Ž1N\Hä6O ½Œ•úHìc½Â4Rþ›R¾9´™æpÄd$óUÖdûÏ30¼­^ü¸ŸwŒštÙ„Ám @‰Ö|p4Äudºóö÷/>Oãtë¢ÞÃg Ý8¦Ütw“Cìu(Âäí2ª±À…&FJã˜}rxéþ1bÓ3%, LPú4\óD‹>UDkLjµ¥Âu^8ˆQ½ ÉHbU ¤uuØ/³EºZí³ºKÈ„føŒó"¶T2@”2„+e†B~©(S})9%RjuRÊëÄ
-†”ƒs—/{¶àŽYÝý!ˆl.Jמ>Oœà²oÂëêNî+ ðK ¨Oufg#•ÛÚŽ—„c4D̳KF¢‰%‰b4–üPvg¥à’UtÅ¢Úl ö8©f@cç•Ð§:­„–Ê)áuÚ¾…lqõÄÁL¢!oS3ëÌD†ÇŸ0,±D)«‡Ÿ¯Ž“(Ã&ˆ9¯¶–jBoÌJÁ¬fÃU¿¸­Ó±¡7-ôøš’ KªNë’pFý'ê22<þ¬¼æD€6§”9Ö€$ õ°×Þ¥w£Ï?Žç0èã9™ŒA°<³æ´b„Àˆ'þ<ÅD†Ûð
-ÐòïUL8î„Ï~Œ&Î
-q‘¾Ö1‹ãPèhÕåqDÄ&±l˜Èëp§úçßîÑç58ÅvÏÍ>e„Ü€bå‘€ò‡2x3ŠÒj¾H—nŠÏi‘¯Ú ­BŽÁîßr™a:†8è‘Ž:ÞjaašóÓ[-‚[{
-g;?±n‚¹î8ÆCÅŽBT•…HxÔ‹upŽqÙ$ŒŒÇÿÑ °/)õ
+xÚ­ZKsÛF¾ëWðªÊÏ{0{Sl'«ÔZöFJj«²9@$(¢L
+JÑþú힀AÊ)§xÀ`Ðèiôôãëi²…›)M´åvf¬$Š25[î.èìžýxÁÍ"-†Tßß]¼ýA˜™%Vs=»[xe„f›Ý­~›O˜!—À‚ξyÿîrÁefåüêóç7ï¯ÿ÷ŠPP:ÿxuóËÕ¿üÜçKËçW?~¸½üýw8C‘(Ë¿ýNg+ü§ J„ÍÔìn(aÖòÙîB*A”"Îl/n/þÝ1<u¯Nª€QÂ…æ:àlƱJñD Ê-¸pJ¸}©êǦlÆŸ"1™3#$¼EíÔÒ ÌwB.bÓ Ö€…K²©­‰T(Õ¾Z-/ôþÛâE{û¬3xIØJ\©›ú°_‹|µÚMãÉ“52Atòä¿GÎË ÎB‘L+H—uµ.ër[L°ÕŠ%ä˜í—WÙ~)^Nñ”†dœš1ÏæUžM±*ö…&œK6æø8Áq!4Ü®f‹ÎnàÇzßN0æ‚X´òã_»ÑËÄ©Î@cÃc™…½ÙÌpNŒPæk¼ˆ›eÙ´-:Ž‹!Kg‰‰hÌÂÓ ÆŠX®&>q"”Ðé§/ëÝ.¯yêz &3"Ñ‘`æà§Ú½øþÃí»Ÿ¯?ß]ºéÞê¡3ˆHÄJ&{ŸðT|¸ œ(àÞl»¿dÙ¼Þ6¬¨š·›ÂêÇbŸ·e]…Ûµ¿æþRå»@ ÉÈ9„>ñº À¡)VÅ€ó±Ô\ZØ ¨ši™YÈF#8´å¶l_"Ó<,÷œ‡uý=•«bågÊø Û0ñýõÍ{\4f)QŠòÔ‚‡b[äMÑÀWI‘ͯ×Â+J2É£ð§4.ˆÈ¢ÂKÒ
+é©þâäƒÜð\¶?]Õ~&Ú†›Ü–Uá§ëGÜÀ¢Þûkî¤}8슪mÞ\.ö­áq_Âd ó—fƒîéž6XeÿØ­½FŒ„ô@uTˆÏ}Þ* —Á¦¢{;ÉUgÿóà#ÏŸòr›ßoÃm/ÿˆºÜ‡¹á·i#‡,lÏΪ¾1Ñùnw¨ÊeÞ¢)
+£‚Âqä$FƒÆ©`Ðn\w£Ü_îÞ}öôà9U±lËK6¯+к¤Þ¬Veõà){ոװRÕ:!VÁô‚‰¢£)Èùª|(Û|‹7 SùPåíÁÛ¥3I)æו§ôÚªåaï)ªÖ?é›h0*ìðØÿ ðLËWmXR:ŒZÃxH¢•£2Wl%ÖvqÐÙªŽâKÐãöņVfåa<
+Ž«‰DÄ‘8n¾}¨÷ Â°ÖÂy^ÿùñêÝâã{…+Z6Þ”ËrhŠ@“ûK³ñ6ˆk»ûbéï[ñ¯EY•#•.Dâ„·)D©+Ø1-íün%)—«a>äîöúÇEÓ¾l«l¬7·Æ ´‰ f}ØÀ/ö‡¢iø¤£F¯MgôÆ¿k†ï7`?Ê_xµÝ& DgY8óCww,“€°Üä “­¿Ùš@yà ØyŒ-÷/!&øËDîç€L•¶f¦ ÄX°«oMýÃÅ€£‡Æ‰7hH¢
+8Gªø½œUý\…¯®G_?Ì•Ç„© !šþº‡_b#Hõ›•ûHìc½Â4Rý—Rþpè29<ÃyPÌWE[ìw>ÏÀô¦~öóþ¹cÔæË6LnY
+B³‘ò¼ˆÕ„Œ ˆR†p(5ò—¦˜@ÝœúÔêL½”°Î ‹Ü¥<S+wï£y. ÿ
+DÎÀ«Œ< Q;¤¨,“©!}<lÛò1²jÚ¼ZÍl„ghÿml¢ëæÛ­÷tÞ¶uÙÝ…¶uRµË×C'¿þü$G¦t`2Ð…#éuQxÀ3i£”Í $9o£ª36©œ.§l؉š61PÁ‰6Æž—¯£š01PaˆV
+ § + Åÿ‰²;á«­6r`P¹ùíbv"FâdŒ‘8F«Èêopß™ýë«bƒ‘½™*x)%Ô°(åÛ¢]¾Å`NPÞ)7JŽN²åê5cP1†HåŒáË«kx‘X4F3{^¸ŽjBºÄ8ƒÌ EY"ÞIK°FòÉ“’„)ÔjT;0Î#væ"d˜éÒ#ýÖãçò<¦?˜8³õLe$ã6;Úú€bF²C Ít·ó€‹€Å°N Å™XJ±FWò°1StvF
+¨ÄmÆ¢ÌÏ%‚=ÎŒgp…|»ò#á:¬jpF Bf"¼á•ÇzÀ‰ãrÝ?œHF
+Ÿö®bÏúÓM˜¥;
+QV"áQkrô1ÇÐlIÆn@4lS
+FýÿFG÷°¢o]a±LwƒMþ¦ŠªØçaáØåÐ2T+Ïåâq*š¦™ì
+¸?GPÌuÃæÀ»O?^ݼ¿p°Ñÿ)®ú*›Q­“jcÔ ¿™ê”âYUÙ_*„òjÔ*+Š*m”í/a£«
+ÝnbM* ïÏ¿¾jML:õ¡=ÕšŸ¡Ÿ†14¬ü_`ÞõmèíË×ümÀSÿã …^À·œ…³=ÿËX6fûüb[竉bL©Lž[0’ŒbJ
+ij$Eð/BbÒÎð¿ù/…ý_&%vy2~¢%j—u
+¿™}¼¥áχDzÿà<‰endstream
endobj
-2719 0 obj <<
+2718 0 obj <<
/Type /Page
-/Contents 2720 0 R
-/Resources 2718 0 R
+/Contents 2719 0 R
+/Resources 2717 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 2708 0 R
>> endobj
+2720 0 obj <<
+/D [2718 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
2721 0 obj <<
-/D [2719 0 R /XYZ 56.6929 794.5015 null]
+/D [2718 0 R /XYZ 56.6929 749.4437 null]
>> endobj
2722 0 obj <<
-/D [2719 0 R /XYZ 56.6929 752.1794 null]
+/D [2718 0 R /XYZ 56.6929 680.7174 null]
>> endobj
2723 0 obj <<
-/D [2719 0 R /XYZ 56.6929 569.247 null]
+/D [2718 0 R /XYZ 56.6929 501.4297 null]
>> endobj
2724 0 obj <<
-/D [2719 0 R /XYZ 56.6929 193.0777 null]
+/D [2718 0 R /XYZ 56.6929 130.8593 null]
>> endobj
-2718 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F63 1385 0 R /F53 1333 0 R /F41 1238 0 R /F48 1258 0 R >>
+2717 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F41 1238 0 R /F53 1333 0 R /F22 977 0 R /F63 1385 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2727 0 obj <<
-/Length 3371
+/Length 3076
/Filter /FlateDecode
>>
stream
-xÚÝZßoã6~Ï_á·s€š‹èSÚÝ-¶wÝn7)îŠí>(¶œ¨kK©%'Mÿú›á”dËÞz8ôŠ 0E Éáó}3¤ø,ƒ?>Ë5ˤS3ëÓ׳åö"›ÝÁ»¯/xYD¡ÅPêË›‹Ï_I;sÌaf7ëA_9ËòœÏnVïçWoß¾|óâõ¿.Bgó/ÙåBgÙüÛ«7?\ýƒêÞ^:1¿úúå5<ªÜ)âåL6÷æÅW—n¾¹xy“ÔªÌ3‰ºürñþC6[æß\dLº\Ïžà!cÜ91Û^(-™VRÆšÍÅõÅ÷©ÃÁ[ßtÊJçL ef ¶‚OÛ)c™†y/¬Ê˜Í³ÞN*Ÿ²S”B;íÊnWÔíºÜá|?eä …ÑÌj©`ý­©Ku+Ësë‚Ðû‰n4sÖš °Üm;ÑÔ,7ZÿÞn«òiJÉ. }øp¸ˆÂ(&q³¡©Ž š¤Ž-*Äp4ã˜T¹›ô]oR¿Ñºû’
-wÕcYS±Ý¡Ö›Õ—Ö»KžÏ›íA³mÑv±¯¶Ü=BÙª9éÍ\;¦2ÐjÁs–kž{^¯/2“Ôh,U-ý.›ú§,—|~·÷㖫Ц¡ß}Vv]?e®86˃…«zSÕ墭îꪾ òC%­46ˆ]sÓ«…íâ¸0¯¶jjzhÆXUí²ðš¯ÊÕP'³y±îJ˜ÑŽl#2òÌj° gNkáu »1§YÖÊp?.¾KBû:êˆOIG”EE°rÙl6eW~†:6åó Åü©ÚlHäv¤Ê]Y—»¢‹mžªîžJÈ㌲ñLjpÚ0RÑ…elÙr|0Æ2Á¹:"C©Ó ’¤PÂaÇÈ𗀑#©ó¦LRǶÇ” ÐÃŽùªì–¸îÚøu‡‚ž¿xs}ýò+ªüX>·TZ7;z Âô£¬˜¬˜(«±ªYU´q–]³ U?e:kË2@ XE£¹Ñ<à2 C, ÷Ðó8Àüµ‹‹Ö<tä"Ú®ÐoÐ6ŸùúÍ ªrôsµÚVuÕ‚ûvdÀ‹~ŒS©—¡Ù·E½/60Î!¬GÆÐñ3‰†”T>7»
-Hba“j-ð°¿ÝTË"(-Ýü¡ÜUÍ
-a@ñù–T¹+ét¶¥RU#†:*àZý­¥2,õß_þHåwïÚ²CÅ3CŠ †îC?Ëû¢¾+A›pð¸võÉô,ä;€ßbß5[˜Ývá3U‘¥ Ø *€Ô°«Ka‡!ku,é1 ©›{ÂPƒº-ê=Ð0¿ìþl#®½?±õì&å"’ ú‹Uݶårbçiا<íÓ0yè:íA(8ë9™Çmd ‡…hPh lÕ<MŒ'¸Žº5»‰Ž¸`Àã ¶ìøŸèKY–‹l@©ÀÇód¼bÓ6´ien 4Èøx×N·÷3—öAîã
-g±iŠ•÷ î‚àßAœùi&Í?Å€úÏA¤Z0Ź=oÍ$ulÎ1‘Â[é$Û3i¦‘B!)”‘B‰vÈ  ‰ŠÁ#P¬'Ò¡,ÁÆDÊ9OA:¸¬R–QØéÒ*BrJT„Õ‘ŠðQ‘¯±¾K¬#Á¬ºÞ’±N¨£Bd|Éë#ëh€• ¾ÿ8…¶¸«WàÈÒÊA,8-ˆ!´r=h)0Ø}óT†tÆ×Äxߦ„ņx~ë¦ áo·åªÀ@fºfªÛð*uéy ¸ða¼Û}7ÅãXì¢ H•M¹ª—4궤žâHªhS"XmË3<(3×ó >C5ÖRiš53™á¿—­JΓ,—xË·¡Îó w’lxÊ ÿú’BÍÓœ=}MÏžHM¦s-&s:3`rOLÆ7Sô•¤L¢/hÐÓÔú2f@_ø0¢/h”è ^ÐÔTu¸xqOX‹©ÐìÅbJåLªO( ¥N³X’ ¬weù(b²l’=ÆËÿÿ˜ž&³³FíÉìȪÓd62ëõ¾}(}Œë¼÷»­¥¿…á· Ÿ~ûš×çåPU7ý+*U¡#`Y¡”>‡šò„I1ÚEÚ!·k©Øs<´¤u¹%Œ°ètp¸PÞ†-e€õ.T{ÂÒ‡KHX·Åª¿)úÑ©T7»-A1>‘™V¡—ç)wKÖ’"š™OéùëŽ* AiYì[?K³«–^x–†_b(üÜìwµŸ< E7%5ëBW·A°}¿^Å^âÛÐK'}7A¹«é¡Aä…Ù„\®ëÊíC×Æœm
-±± 7\Šü³ýŒÊþ( «†~ý%†ñ#60§Š>ÞÚÒCùsosqZœ>Rp±tï¿(áÎFÂƃ+'BÀ‹ñw ‘Ú5•
-j¼ÞSnyxªè,³Yt‡Ífâž+ÃÏ=¢Ø“£ f„ž^Kcšù¦H§ÖøXï··Q¿&Ì3€6º-}äŒ# SÂX§ x÷ØT«öè~2f¹ty…¡ L}˜ïn›•ÇÖtÅŽpCþS‘C‡j‡Ðé/1¸Î`‚²gÝk(uÚ½’”'„®èÚ#ßâŠ9aåùa“Ôñ¸cßâP¶üO<ÄßUñÀ!¦Q¾ :á†_¶c«'Ã
-Dš>e<™ËOo uÆxQ
-çð˾Ü=oš»‰íS•œG ß„ƒm@˜áÁ;sJFfúy*MaÖØø9]CYÉgpã ÿÍÄùy&©ã‰ŽWË*¦,×ã™öy¾ÅËhÿ Ik_éMAE0È€F(<óÇà¯b“Ûbùñ)|ƒE5˜|ÂbÞV›ª£+0Œ$†}”ñÛÁ>äŒbZh}x¾Ø6ãÜapBUu÷Í>úy=Œoîöx%s°Ù`1% “Ãb˜\ðèØK¤Ó°Dé ýðÞæûØw´$}xš
+xÚåZmsã¶þî_¡o•g" Þˆé''w—¹´¹\Ïδ™ä>Ð"e³IG¤ì8¿¾»X
+-¡µ=ïÐhuìÑi8h›™¥S—~\zr±»mþx/›Ý%Ï–m}ðXw}h«+w ¹t¡²XqeÉ`T+nà áíær%˜ 6P NPª:ú]·ÍŒ¥—|y·wý–…¦¥ß}çW;å£)s ‚¢ß{¸j¶US®ºê®©š;o?vxÒå3hšëaXø\èæÕUmCítéÌŠª[çnäEYüt‚-óM_ÂŒvä›”é„1`Éç‰U*uc ¿êtI³­•æ®_¼öM#^Å1¢-•ë¶~Ø–}ù^ªð(_žx0]>UÛ-™ÜN†rW6å.ïÃ3OUORö8#6I)@Q=å½_Æî4ˆ0žˆÔ¼"#«3 ¬p ØÿLÂN‘á“€4ÃÊSžwe´:öå>„H
+º n~Þû¸ì®æ=Ý?z¢IÚ€$8üUÑt]¹ž‰<qÊcœúÉCÓ1A&pVKr-öÛzÈw Û¿TÉ@pà«öi¦?‘B
+©0¶v7ÓOàñ
+ÎË·]KA+2(jãÓµŸqîg6ÆAæê
+`>ºù¾…¼ªÊŽá`&ž°€cóXpP‰×íþ * ðù¶K0N±¨´°}Ï ç³,:¶:Í¢Ñ
+g[Eî3Ü%c¡Î|™I³—Pý>ˆT¥°‘âæ¼7£Õ±;¶ehGð©?‘2鉄H¤ {"‰¢J‘‚è3Í"ÛÌ0%RÎy,Ò!e¥4™èŠt¡=!9E*Bu "¼ATäÔÖÁ{‘u¤Ñˆu|Ó5Yëx uðv ÔÖQ
+
+ьͲÇÿþãi2;ëÔÌŽ¼:Of·^ﻇÒÕx°Î{m]¸†ßœ~†ð… :S„tb´
+jÉ—ß‚r÷Tá¸W"šÙLl¬ãSèú™ðŒ'‰D%ß蔿@­Š/}ÜUœ%^„Yž#›öEÅIÚHSŒ}ᇱÕiÚˆVîU0®§Õz[æÍÇÓ$’ÙDkaþ§.¿¡ÓÊì¼£Õ±ƒ§bm’BàL=|í< m 1šZEdñ (†ˆmŒ¸A»ëȯ0²ñ4ƪ¸9ç°L©Ž9G;B€„Q eÆ5ĨŒ–¸_£˜ êâ>d<wèHœ–Ê°'ZÕ~fTûb<ø ¥™&ÂdL·ð¹IOÏàïAÉNÕš?wÈCÞy^tºñ6‘ŠÏ“)È5~e•½P¹­N§`´r¯-Û¾Ú<ÿ}ctÖ™CÍväÍùšmâÎeGCXÒwßÞ¼}ó½?(».¿ +üéÉÙïM¸Ha-Œ|añGVg?XÑ÷&ë¶ÙTw‡;#Í^è9Zw=ñîòƒ¾ã×XÒg}*ÇçBáMžòe*=@kÿ†KR~vŸ‘ìŽQ(Zúu–(ŒëG||Äœ2äøÐkGåcØ{§0«äÁ9 ·áð¥{÷E ·&6\ÙÔ¼h~7éù¼!)§‡7{Ú[ž*Z“Òaü™àô=ÃÏ=‚Ù“#?Ì
+ÿ>9þíïp‡ïŒ¥I b>ñÎI0™ayº‚s8t%²Dá7Çcÿ6±)Yendstream
endobj
2726 0 obj <<
/Type /Page
@@ -13141,26 +13125,25 @@ endobj
/D [2726 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2725 0 obj <<
-/Font << /F37 1042 0 R /F48 1258 0 R /F63 1385 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R /F14 980 0 R >>
+/Font << /F37 1042 0 R /F48 1258 0 R /F63 1385 0 R /F22 977 0 R /F21 954 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2731 0 obj <<
-/Length 3032
+/Length 3112
/Filter /FlateDecode
>>
stream
-xÚÕZK“Û6¾Ï¯Ð-šª&^qt<vv²Y—73[•-ÇJ¤FÜH¤"RžÌV~ü6žø’³É¶\®h|ý¡^$ð/xŠRIäBH†x‚ùbs¸IOÐöí ¶2+'´
-¥¾y¼yõŽŠ…D2%éâqŒ•¡$Ëðâ±ø¸üanaˆdùÃû»7·+Â2É–¯?|xûþîþGøæ D’,ÿöúý?^oê>ÜJ²|ýíÛ‡ÛOßݼ}ôÓ §ŒªæòËÍÇOÉ¢€™w“ *3¾x†a)ÉâpÃ8EœQêjö77÷­ºë˜ Ï',c0D9eã†ÂH` B‚&&p†bÙ˜¡œ”2Tq>‹õí*;|\åûýo«M¾Ù•¿­þÝÔå'Û Œñê]JƒÑp*„ÁÔ8Ÿ«òÙ#„Œx¤œ ”‘$µÒŸúÖ%ÚSÊá õRÕ(#AýÑRï`©ËnWª‚\¶åésyº…á–_µ¦M¯Þ–JxR”Ûü¼ï ˆMŸ¼.^5'# lÔšê®Qk‚9&ØÛÅ
-c$97ºFÀWa&¥Ÿ’„ìmíV/×ËM¥DÊÂT(·
-N“˜Ìë÷Rà ÄPÁ1Ax<ƒ=šp³s4IT
-¬ÆñqÈú)EŒ‚e篎F&ÞpØLb+RµFOè-¦O8.'Hfpè˜>`1/ŽL$%u´ó•ùh,¾)[»ÆÊZT»¦‰„³Ø]»ó©V~¡9ÿqçüü©ñ~T›¿å¯`Ò:·ŽiÕÇŠuꢱCU[Ç{Þ•õÈ‚I*á_[1˜;cÔJír{PmšÃq_vîÜRNv
-O½êw¨µîPŽ;t¹6/Ü¡†Œï[ÌXÇPù2B
-ÇŸÁ'Ê«géÌ&`‡y: ¤fèÄIéþ”oʾÖ,E<K²y­Nh¨5Z¿Äˆ§Pi½¯MàW 'D9‚zë¨}}~zÒ‘‚úÜ—ŸK{¬m|çç¤Õ˜ÊO9Ÿ·Z(5m5/Y­ÓS™w‡ª™mŸ¡ AŒA¯ÙÉy©áìb?%œNˆxz¥ W{V½Ä곶uëå>î«Mewês¾?ÏØ<U™Jz%® ¥flî¤,aN&N¯¨µ2C­±-Š84VûgÙ2™¶MÍ®¤ ÐŒ½¬š÷vnwSŽ=§Òûu_å¨[‡*ß)•åXKßFLÛ#aH2qÍ ÔŒEœ”7‰âé±l<…:“™†ˆ%îÜËé! ‚ì9LéG¡Hâ„Mfò¦J’‘y3x©¡z¹<´&’dž¸l•v£ ðT}VQ‡*êõC) B—H¶¿©Pu÷þÁôîšb^뤿jkkŽ@%·„ÖûR·‘‹—ÇÓÞy<‡%5U~*Î*
-9×Ì»|·v—¾¯óbv›‡$Mîœ^!µPj’^ÊC²;•ÿœ5Ã’;ŒC22„‡$e½P°TEµ~Š ¢PeêôŒ*èþV![¶çuÑòªÖá»Àa*èJuU8ž¢E‰N]ß7]é¨.÷AŒKg‹¦l¥©ìeT)óY7¤$£±·‰‹ó­šø¶ÜX3®ð¿>ÎæÙ•È3”š¾“2÷TywnÇ9Ldl^­ªÏ(Ǿ±Ú»ª=îs<âæ
-àÔ,ÍÑ«û÷#êI‚€>ì*Ó뉘ÛÖ­×Þ‘:oѹùtÄéî`û£nšZe£Oöþpú²•¨\-etÄ¡Ô4ˆ½”ιÕ]q«â¾©‹˜YÕ—‹˜îñ‹˜Hùuñ¹¯Zk¥ÆZü—syªE[‹“ ÉLþ¾Öí,Û½îöáM¹·‡MΦ·„½’+©Y 4³!VHpù¾Ö«šÚÜ‘©·.Sr5¿ÙÏí6ú
-Üüìûà™B`’&ôw½Ûˆ©£•‚ƒ
-ŽÙ¬9¼ÐÀñFa‚%Yd·µ ´hº,ªÖ sPê–®Š6¾£áöš
-ËÖºÜlí£ ÅS8À#vóóáí8#‰¶C]qC¨ùsŠÀ ›uÛ–›U©§>‚HHÏÍÜx¾o£­.Ë¢5ÅÎVé+:ñ@Ùù†á&á„ ”w,¿xw‰Hë¯áÁv#ÃÀ(”º€-?;]ñ0¨Ú߬ÅóËÒŸöùh›‘å}go5Á-ÒLöÞ`-u÷®Äí¦ gIÁ¯¼¼‡RÓþç¥ô‚Úêi¥YhŠgU_q {œ#åßöËäåR§¦N3"ü5/wÐöøpÿ­©ú¹|iM]Èk¼ØÚÞAczÙÊdyÖ!Ô¬_Ƣ대;^jQ—Ö©cŠª6#–œ%ši$Ñ÷é€èÇ»ìæ JD?R½ë¦Û¹G pÅ ,ÿeüø4µÖú0¶U—{xøxüëÛªy¬êò©éª¼ ;NŽ1u­ ¯
+xÚÕÛ’Û¶õ}¿BoÑÎD0®1}r¼vºiêI²Û™t\?P"¥eL‘Ê’²£N>¾WâENã>tvv‚8œ;HþÈB$(QT-¤âH`"›ý ^ìàÝ·7ÄÁ¬<Ð*†úæñæÅ&
+©„&‹Çm´WŠpš’Åcþnù "ÝÂxùÓÛ»W·+ÊSÅ—/øáõÛ»ûŸáY`
+HÄdÐÔeñÉ#„œ¸bä\¢”†Søj*ὶYFÔÓ¾PSýð÷X½VMÌ6šÇüü±
+  {r½ª€¦è„¨å>û`’ Õ½ÜôSVŸì—ä˜\M¿ÐéÅN;&ý°ÏòÂã°GtÜ=Ùuù âV¹±o‡;6y)
+ äWn烕ø¦h¥“JÙ:¹Bæ$AúÆhåÚŸkmÆç?>y;{j‚¹L»ø DZgÎÐzXãä=/
+Nšs²üÉY² –¬×ZK¶ÛE–¬'‚%ëoÉzMãpK6#o´cfmµ¯nŒaÁŠ1·V SÎO±³ÃØYñ×®˜=ºåŸJíùõêµ[d©®*»+Ó1"*{pk!öÈ~iŽV»#lvQá>°±~íÌ ÷ý–•@Ûeϱ¯„áq—"R„)#W<ŠÀ*‰=Š×<
+XŽnÀ|ŽG‘±Gû&ŒGI@}á;4oÖwè—Þw˜qmϾCo3Øß'¶D@%%H_U>Ï¡HŽ$KÓ/âO´UϹ®£À¼/ ÓŽÄ‚˜Ìý9Û—È †‹ŠÊidâYaEH`æŒì¾¶i^õ]BE`ÔºõŽ|}Œú$Uñ±p¾}ò=˜bZF Ž0ÁòŠ˜"¨Iy¨ž°.2x& n>„Zj/ý1¥BêYâÔº¾UBÙÏ¡\ì“÷PøäôBªçÌ|V¶>Œž£®m7¹ô6«Ž32Ç :Õ•2 fdî¡œ·SQ•"ÝÏšEë`†Xû²Ä "Yí—’%ž”ƒ4§ôJ{:†š–X€Ò¤o«cû4eÒ³XƒU°Žvëµø ™™Ä´T˜„ê^©Ãc¨©x¨ í›Ç*ðÒæTE|4mDûX9VÇ3éˆËø‘Mzý°aÖU4¥óbPC9\Ôï)¬D_çƒbÊ våGiè¡áFi”®ô`/¦îÞ>Ø9];ÌjSHCÊWnÝÌÊ­n9¯«Â¼£g¾vgd¢·4¢KšÔrjÏ•ç.ùñšuÙ:kݾd_gù*^6¯’Uê6È•¨CM«d€
+*Ù=ÿ*9+†³Jä0®’=A•d\ºDN%õPó¯ÓoIí¥‹ž3}=0u5ü–Ù!]¶ÇuÞì³²6)»$qÚ#¸P(½Tëñ”":-1åêÛ¦+¼«ËB*ãKؼ)\ž©‹** ×)º Í·¥Ä>+ÎìÅR±q(fLá£ú£T\Óü3ÐŒâ; ۘʺc;ˆè 
+1‡Óà pöã“„¸¯dç]ÙªL'$À Ì£V ýk= Q“
+é¢Rùã&Âw ]÷k#ΰ•s˜*ëMuÌí“ð«ô´+K†ɸBA±.ëüÅ«¿Ž( §ˆ$‰/´4N«¼k/’‹[R]yîÖÛæÿ `Î< ^èÅý۱ˌÀqxÏñTúœÞb{«Û€1îˆz;1•øtÆé;®—»nšZמ;×-œn­RêJRCÍ(°‡2¶î ·îÂo´í2‹úÜvào»ôß…;–pUÙvá*:Ü]—Þ õ¯jqŠTªþX¹êO ضB¯Ã%´ëÎ:y¸âlòHˆL¦øJÖCMI€2Ñ-«JpyæVS7Åôå–ù™ßÝãvÛ{ÿ·ùÖ™+Að+4Áì]ÔÈ©¸ÊàH¥ |^"j(’þiŠ$£i_&öó h±Ä·ažì×”1ϽºüŽÅ‡l'œÃ6c{[ š •'aŒö} Äχׯ FRˆnkCh¼èˆB‚9‹5¯Û¶Ø¬ì÷c—ã` ,õ]pûá„ÆVEÞÚaç¦L[ŽB>PtáÅðœ¦(Ô‡åS1v}NÙÐzÙl»°ðUOvô¸úÛHpØ¡›Ö§S.‹í!ó12£ËûÎu2Á6’T±~§Ï9ð‹6¸ûvdÚµÀ%N®Ø`5cƒÊ0Ô–»•ñESnqõÙ-p»Åòï­LÕù^Ò”vÎøEøµ·uðîñáþ[;õ¡8µv.ön!œÜìE¸±«Ü¥¤ùÔÈάOcÙuJ£×¯Wt£:|na>ù€ HÎ,ãl5=tÐèÇ'ßà†ËËLõÖM÷ä/*À7Àþi<ˆÚY'‹øã¦sïÿöúŸšŽU]욮̺xá¤ÂIpœ2!W>Ä;Í|‡ç€‚¶å…nžŽxë$…ú‚ûâÈ›¨¡8GŒ…6ôd•|NÅ&‹(¥PJ€î9I (.².Ž¤’¼'‹;+†cprÚ›„Š^ÏŒžš~b±ƒ¨B¢ÊßPâ~",¸2QÕµÛ™«sÌÈ3ÚrxJyy“
+…ÿ©ï¤>O•zóØ}dÊÀ)°Ñ áßÇŸþ
endobj
2730 0 obj <<
/Type /Page
@@ -13173,24 +13156,31 @@ endobj
/D [2730 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2729 0 obj <<
-/Font << /F37 1042 0 R /F48 1258 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F21 954 0 R /F39 1178 0 R /F53 1333 0 R >>
+/Font << /F37 1042 0 R /F48 1258 0 R /F21 954 0 R /F14 980 0 R /F22 977 0 R /F41 1238 0 R /F63 1385 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2735 0 obj <<
-/Length 3097
+/Length 3324
/Filter /FlateDecode
>>
stream
-xÚÝZmoÛFþî_!T¬-¹/ä²ýä&ië"qr±‹; p´D[D)R'RvÜ»ûï7³3K-¥MÒâ¾] „û2œyff©t–À_:³F$ªÐ³¼ÐÂ$©™-7gÉìæ~<K™fá‰!Õ÷7gßü òY!ŠLf³›»€—‰µéìfõ~~ñöíË«—¶&™/ž-L’Ì__\ýrñŠÆÞ>+äüâÇ—×ÐÕ¶Ð@”æH—%ówW/ž?ûpóóÙË›QœPä4Q(Ë?ÏÞHf+üç³D¨ÂšÙ#t‘…œmδQÂh¥üHsv}öבa0ë^©À(+Œ•yDR:Hhël–›BdJ*§ƒ›u{Ëí|Ùµ¿&‰|–Îï÷»r¨»–Æëžž}ù
-^«Û¯˜à?ß}Ùù‚e™Èükb’«n¨ŽÔp»+—¿Uøx:}µ©Ë®éؤJòá}=)2¿©Q3]õq°tz;‘ˆL˜HfuwL´©ÔOTïãÐH…û]UÍÁŠ²u.¬L<l¦ò”…°6/˜è}„ÍäÀ—MÙ÷6€Ä63æ²qÀf
-&´{@äÁA‡º)BïÛ¶nïÚu‘Ìß´ÍÓYïY Ö!Ç Æ„‚<:+ÌL»]}_·†ŸNñ¡.#àU¤pþzêªüâ'`,Ó˜­ø£ö0{;" j†—¬½á
-‡ñ2×sñ)'0E.¤“ù¬„TŸv‚‘
-eíë{T6Å{„
-’LÞÔFªS[‹æÖŒN–
-Ÿ¦î{—aí
-N5_Õý¶)Ÿ¸R\KFƒ¥¯\Ñø\-Î/[š« z»ì ¦—e_ùW)(4¶œ×xÌÕ›G%‰ÊÐÀžÂ)ïkœÁñžŽ<-ôš°Ôå‚Õ6Ö%›fÛ1ÅSÅ©[„¨¯V¨¬Ó8’w
-ªðs®×*:;é
-ØÛÆHÃ…¸s˜Xàd8gƒ9÷¹::eœb'Àe`OVŠ$Q÷ûË«ôbÁ;Ymj(ëм×ܻꎽ£]²®^—íô9güššeÙ <…~«M‚DÅT™¿ÜüôæÝ—µxÙ˜·¾ž¿~ê‡jçú
+xÚÝZmoÜ6þî_aèð²¤Hê¥ýä6i/Eâæjî€4ÀÉ»²W¨VÚ®´vÜ»ûï7ÃJÔ.ôpßß4ä¼=3C­:—ð§Îs+¤.ÌyVa¥²ç«í™<¿‡¹ïϯYúEËpÕ77g_~§³óBi’žßÜ´r!ó\߬ß/.ß½{uõòõ?^,+߈K+åâíåÕß.ßÐØ»E²¸üþÕ5tM^X¤2\—ÊÅOW/¿}ñá懳W7ãqÂ#+©ñ,¿ž½ÿ Ï×pòΤÐEnÏ¡#…*Šä|{f¬ÖhíGš³ë³¿ŽƒY÷jLÆæÂ&&=_Z 4¬‰ J
+iñe¦ ¡eªFA™<&(¿
+U®×¿um…Ü~ù]ªƒå&y"3Ø×M‹f4“BäyVð¢÷2VY–ò‚USö}„Œ¶"O­ý½dêê1v-
+T -úð!BT\è$÷ÇéÚ»úþ°/‡ºk®5¨-r¡TOd?®:~’„‹Jªt.ýËõúÅR'rQÒÃIÙµ7uƒMU,† õÕþ¡ÚS»î鹑/m[·÷h»0p³©_¨…òù2I`WkÁ~”…µ ³½Ý–-@@å‹ê×CMžFqO'½D…Ò“Hn_Ù4Ýã²­—xnÖëŒë\‰DjëvNδAGÏ[ä-Ë€·aœ8Õlž cMÂtž¢{‘j½½‚4Ò¼
+µÓWÛz¹êšŽMª$>´QM‘ù·„€­ÕI2Ë£Má°Æ|&­ W=ŸVŽ«ßuÕü¡ÓÊP˜Ÿ £Íg¤9®:ç<,XH7 g›ËóeÕTƒ‹Ý”+ª1WTA®(}ê ¦\Qq®¨ŽrESÈÅ-å#Ö Ê%Ô„uLÀ‰I ;Ón_ßC†Ñ ¡#D|¨Ëx
+ôoæ®Ê/>c©ÁòÉ«ÚÃìíˆ$(Þ²ö†?‚(@ËÌP^u‚D‰L‚µ}Ú ‚UŸp¿Ê%‚õ=
+›Àâ=B
+œ<R¯
++SóiSWÚڼБвðÌ°ÃM߀IA&ct¶¨ÖµoB
+ù˜Ö b8Éœˆi€3¿îà«Š¦itÅÅZ?×e&‘IJ«<KÇ’´¾_²$–Á¡Íd€¡v„¡ Ñ)–a9ŒCÀ©%¤Ù:¨§!ô Ì
+È©†UVðùl^CSZ±Òf0© ù’(”ëòÖÕ0Žò¾ fÝ®ëëûÑ^° ¸Ù3¹)}W‹ÕaOÝv ø¥~mâ,ÊmŽÕ¨k¡Ñ·u¿¡€3-XÂ,I»8ÊðƳIož.‰sææ|>O¬øL°†e0Ƽnèãë˜~å<‰& ë<à;a š©¶L3Fa\ öKO³½oxdO çÂ3äȹ<ÉÓðUªJsR­KEÜt9D˜‚²an¶§L±¥¥ à¦Îç–öŒI«LØ¢ðiê¡wÙVÏ®ÚÔ‹uÝïšò‰‹Ð!űd4¸¢ôe+Ÿ+¤ÕâuKsDoºÉ3 ˾ò¯R>  ÐØq^ãI0Uo8¨J¢=…SÞ×8ƒcžff:÷š°Ôå‚Õé›’M³íxÅSŹ[„¨¯V¨¦Ó8:ï
+âDIò¬ä’k^ÌS¯Q<ça·ëð®ƒuáÏ2Sƶ
+“(úR€ñKA¸³Ñ"ïiDRÆP@
+¨eü'‰}ô¢KØLªÿA^&5 ·]Xêh8ÞÁàóqSÖcç©;ðhd.B¶β‘ÂnXvfö¶æFÍtÇe ØtùƒˆÝ¤AñfUqä“ñÇP)Ç‚Ï¥Ã7‡ ö°½u¬°t‹ cPÉ×Hµlxq½ßëhi¹ÛA™@Ðh'j¡5¥VÒ; ñ‡›_x»â?ŸªÂ9Š@s¶Ïj¡…±©óèóñ›z“[ÞÔ[º©‡-ø{ri;Œ­Ë¡¤‘ê£w žbcÁw9IË5@è¶l0;Lgr#åÍÓÎ
+«íQýd‚ô;³»P´ä?qËè äàIžœ\Œ|âc¿, (‡@Úñ‰*fØW°˜# “é£Ï$£¨9Á#QcGY¾m› 7,oÚÎÂpA”--.¸B¤*-Nîg)ä\px„ùƒ´ŒÞ %øùVÿ©™OÔÇ^êç&ÕQŸ?pßW#Œëª)¡? гúeÊHý¸d<’>GnüÄÛ{Mù¼{ªÎ‰ÍQïÀ'(Chc k¡TJ÷Ïo^¿}íŒèÿ»yýãÕu„Äœ¤Í_{Ç"6)ƒày\u'Œbð|,y`àBÏî¡^;"œ0áL¿)Ç+ׯŠê;ÜÂFK‰ðë´´ét­zòë1If-ØO&’Dæ¿ç?P_æ˜wÇ~î³).C’t•žM§©HR£§­£Ö#í™@Ý’¿Ó ´N”^b§Ÿˆ`¾´
+ÿ!Ù
+“Ê£ö×Õø9×kéÎ_:@dïË{of«é«¢0tŸ€z™²ãc““ÞÖ,í÷ê½{ùæúÇOYÙäî— #-âÎ `b‰=à\̹oÕÑÁ() ,vG¸ ì)O„”#ê~óúê%½X0'ëm eÝ
endobj
2734 0 obj <<
/Type /Page
@@ -13203,193 +13193,207 @@ endobj
/D [2734 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2737 0 obj <<
-/D [2734 0 R /XYZ 85.0394 251.1652 null]
+/D [2734 0 R /XYZ 85.0394 177.3318 null]
>> endobj
2738 0 obj <<
-/D [2734 0 R /XYZ 85.0394 158.1355 null]
->> endobj
-2739 0 obj <<
-/D [2734 0 R /XYZ 85.0394 85.6263 null]
+/D [2734 0 R /XYZ 85.0394 85.432 null]
>> endobj
2733 0 obj <<
-/Font << /F37 1042 0 R /F22 977 0 R /F53 1333 0 R /F41 1238 0 R /F21 954 0 R /F48 1258 0 R /F63 1385 0 R /F39 1178 0 R >>
+/Font << /F37 1042 0 R /F48 1258 0 R /F63 1385 0 R /F22 977 0 R /F21 954 0 R /F53 1333 0 R /F41 1238 0 R /F39 1178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2742 0 obj <<
-/Length 2931
+2741 0 obj <<
+/Length 2959
/Filter /FlateDecode
>>
stream
-xÚ¥ËnãFò‡Ðɨ§ßlΞ<'qqfcä@K´MD"‘²cìÏoUW7_¢Æ,|P³ºX]]ï*Z,8ü‰…±Ìf2[¤™f† ³XmOøâö¾;g‘–C¬÷7'o¿Ué"c™•vqs7 åwN,nÖ¿%ï™pìô›Þ~kÔ
-!pb+dró@÷âÎEò`Ž¬Ä¸d<Óf±ì¤l5å¶Üäx˜4IG¹d¿j÷þÈ‚ yµÛ/U›ÿM붞ыÐ\Æêpe¼Ñú¨b2–¦ÆT GÊ$×mÞÛ¢j›pô¢Zmê¦ðÌ褬z»ËWE3á´-vÛ²Záù¹l¢8³8 R ÊÁË2ü¶\®êM]?Zéä|“ï¤.!4≈åUˆ€fÀ-ntÜú‡MS´Žjx¿c.œr î›}¾!¤U½Eʯöe¹ˆ‡àmøD—ûÇÇztßu»ŽIkÉ¥Î)’xZï@,‚'o¿&Ø×og_øæ›™WÞ¬­é·@‘㢾£ßMYsÔ~©Ê¿Éýë ©€!í×nç„è'R»d»_=à*CûÜ ³!¸}È«™Ó2Ôëhü3«V< ú…â{âYÁ®
-¤äùs"Ú1=q9=ÙOv';JÉ÷ k°·&ÉP¢CC¸ø*œ”žHô€I(HJcëÒiªx„M16M¸¦Øhé‰kbé1#™TcF<ðMnC€5£
-æœ0¯ ®.ägÝêGé$â{s^hK3'¥¦L£˜d¬ëä°|w’>m¶{,·¥UãhIÚµ:hA¾a…ßœ~¨²#}à ~†ÐSP¡%d4©¹‰PŠg¸ªöÛ[o—H ‡êÍfB%â—H— =^¸¼››Ì6½B1n»ÁÙg%mA'Ù4ÃKIUþâ`bSú¨CUwDG¢
-$Ðm!KaÀ›:GqØðÑísÛD–Z=1è869[NE³Ì7÷õn³Ÿ£ ¡º9Zßúb~Q!)%qJ»{‰u.lôDýã‘yz
-%“ëú§cÃé=’¯æ”/gþuNVûYFÕn^h³®h%“ï?ž/?~0aN–¨¾Ôd LÙÛöƒÔn€G;i‡Ñ÷,Åž¡9=6ÅŠøh Ü…DXwµÂpÐ…¡b
-ÀNøÈBGv¿Ë·3¦1n`ªãͤ‡ÄA1°?ßépÞ}Ê¥´¥àmÐm¦š¤€¿½¼î ¸ƒZoiõû†©ÚLû
-zìsèˆw]!~n
-ªmâÁuQLõůg?ýx1ÝFÞÃ<4Ç(ñÓuOÄO7͹€ZŒ½þõ7;“° ‘°ØA¢\*G––óä¿Çþ{Aác5÷Q›wœüßÿÙÐÿχFìÿiaÜêÈÚÈÞB8~ÀzüˆCÞÿ¼hç^endstream
+xÚ¥ÛRä¶ò¯˜ªó“0Z],YÞóIJlB*Ër¶*UIÌŒWfl2¶!ü}ºÕ’oãa7uŠ‡‘[íV«ïÝF,8ü‰…6̤2]$iÌ4z±ÚñÅ=ìýx$<Î2 -‡XïnŽÞ|PÉ"e©‘fqs7 e·V,nÖ¿Eìø›Ÿß|Ðj€,Yp  ÖçË÷gììÓå‘•I¡Rzzuu~ùþâ×ã¥ÔÈ/5çÑÇÓË/§¿ìê8•Ñéç×Hìèü¦»Èð²‚+¼Å_G¿ýÁk¸óÏGœ©ÔêÅ3<p&ÒT.¶G±VLÇJÈæèúèÁÁ®{uVx‚3©Œœ‘ž !Xªµ‰O§Ì(©è¶_n~úô™¤"å@*|weVjëð.Ê&ß•yC¸~©›|[ÓÃYUÖÕ®)Ú­'§ÆLÅFz:±d cÓ©‹Ðb;D‹³q’xìÊõŠ­ªònŽâ2à.•éºÈe¶Í=a1¹FÊ´Ï–có’Ö3ø]Ê„î‡ïÐ
+^üsyß¨J"d“÷Œö_ŠK•0!cí_¿”Õc]ÔSãQ‚%Ö(`C±8QfNÙ¸•`æü€%€ ƒçö$œ!ŒDì Ã: ñþ"||ƒ÷ç×gŸ/®n.>]øÀp^•xÂdʃÄA$ Q59.fÄ»^Üá®ÚuìöTO¦7[š9[r¼¼Ç9z‰éO~wqùžŽK P¢u9@ïžò]Ç`³;6ª6´Ù6Ŧh^Ž…#dtó@÷âÎEôy`†¬Ä¸d<ù.IìÛêb[l2<Lꨆ£lÔ®šÖ™4+×~û¥l²¿iÝT3z1·1±¿2Þh}P1)KP ¡bT:ºn2pú¼ljô¼\mª:wÌÄQQôv—­òzÂ)’mQ-ÿü\4A
+œ œ,;ãƒã3ð³¿-–«jS•ÀO¬âèl“µ5R—ŽñDÄr*D@=à7:nÝæ®<ZGÕ¿ß1çO¹ ÛºÍ6„´ª¶HÙóÕ¼lá¼ ߢn!Jæë·Ý®eZÅä%gK­· Á£7ßìû7³/üðÃÌ+oÖTô›£ÈqQÝÑï¦(ó9j_Êâï}rÿùFjû`Hûk!·sBôÛhÛ®p•¢ý?nÐÙÜ<dåÌi©fÊv4þU+žzýÂaÁ=ñ,oW
+ñ`½&5×5ÐÄÝýøð/1
+‹È±›Ä.0JB<ì>TuC«çb³¡Õ­³õÑöòÒÓ­ð—èûôë@õ¾x
+/d”…gÇö}ë5ûåÔ%&÷-)ï는 ³‰´=¢yîS5)ãR›©¥õ÷K‡J¨S¢L½„“z­XÒŠ%w@øóC!cH³XƒD
+4Ð)Ýlî>©`"1Éù‹HÁ$Ó¡c,ɸb(1 ÌPÊäŸKcLtŒ‹úÞ?‚ Tþª?»XÏœ® ЩÖJ&©üx*À*×î¦
+Z
+;®„÷'ŒŠAø1Ãbi9Rë½ö½<T)j¾ >4Ôb¸A1 ¯Ð
+ý•
+u¨êãÈá@Àquë‘|¼BzeÝä™pE¼;%¸0¬Q1®ûVÑyæÔ6>T}ƒˆùÄÙ(^JeögN+‚hÌß5 …»)
+ͲËpüà³ ¾2Ì.ˆ2±ÍÿE9Ù9ôR±|½×ŒóÔîÏ(bŽ¦yï&¸v³E(ó¹3„Pcx÷â(Y` RB)xà
+Uº-dÉxk).¡.ºã¢y®B›ÈO :ŒMöÅ–UÁ,³Í}µƒÛlççèB¨nŽÖ·¾˜_”EJIœÒî^B =Q÷x`žž@Éd»þéÐð
endobj
-2741 0 obj <<
+2740 0 obj <<
/Type /Page
-/Contents 2742 0 R
-/Resources 2740 0 R
+/Contents 2741 0 R
+/Resources 2739 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2749 0 R
+/Parent 2748 0 R
+>> endobj
+2742 0 obj <<
+/D [2740 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2743 0 obj <<
-/D [2741 0 R /XYZ 56.6929 794.5015 null]
+/D [2740 0 R /XYZ 56.6929 752.1262 null]
>> endobj
918 0 obj <<
-/D [2741 0 R /XYZ 56.6929 769.5949 null]
+/D [2740 0 R /XYZ 56.6929 713.2318 null]
>> endobj
2744 0 obj <<
-/D [2741 0 R /XYZ 56.6929 748.4709 null]
+/D [2740 0 R /XYZ 56.6929 680.2418 null]
>> endobj
2745 0 obj <<
-/D [2741 0 R /XYZ 56.6929 713.3233 null]
+/D [2740 0 R /XYZ 56.6929 644.7005 null]
>> endobj
2746 0 obj <<
-/D [2741 0 R /XYZ 56.6929 648.7414 null]
+/D [2740 0 R /XYZ 56.6929 578.8284 null]
>> endobj
2747 0 obj <<
-/D [2741 0 R /XYZ 56.6929 590.0462 null]
->> endobj
-2748 0 obj <<
-/D [2741 0 R /XYZ 56.6929 95.4174 null]
+/D [2740 0 R /XYZ 56.6929 518.8431 null]
>> endobj
-2740 0 obj <<
-/Font << /F37 1042 0 R /F53 1333 0 R /F21 954 0 R /F48 1258 0 R /F41 1238 0 R /F22 977 0 R >>
+2739 0 obj <<
+/Font << /F37 1042 0 R /F53 1333 0 R /F21 954 0 R /F22 977 0 R /F48 1258 0 R /F41 1238 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2752 0 obj <<
-/Length 1730
+2751 0 obj <<
+/Length 1703
/Filter /FlateDecode
>>
stream
-xÚ¥X[w›8~÷¯ðÉËâ³EE´=}ps«ÛæÒÄíéé倳‹!5¸n²Ûÿ¾# Ø¡Mrzx@æ&}3tèÁC‡‘ —þ0”>Ãd1ð†—°v8 –Çm˜Ü.׋éà釒ȀÃé¬#+"^Ñá4ýäŒOO÷÷&F.žó‚Œ\áyÎÑøøÝø ÒNG’9ãÃýs˜2? €‰Fdôeúêéàù\JúB›¥%Ÿïí’Ý“ãÍ:ØŸ¶öv}¢×Æ~|úâ SpíÕÀ#\Fb¸†‰G¨”l¸ø‚ásÞPòÁùàm+°³j¶öÅHðˆˆˆ…=AòiÇ Ê‰C!IÀ7¾¤j¯òÚ­Ôò›ZŽ\Ê Hy™Äù¼¬êgÚCPãRJ¤lcË?êzärø«xq•+˜#˽±íG+Ìç„{&Mmô]µ8ý×ð÷Ê2ªÃè~ÕôªkUÕÝù}º™o7µš·‚§éRU•ªy}^•K;\ðg8üñxOŒIA7÷zç—å2«ç‹‘ëë#Ÿ/âÄ]¤¢×™J%K…–zÎNpp4ûÛç'ÕŸ__0ÿd¢Xv¸#óÍóW'æ7;¿áƒêc<ê€9¶3þr/^¯åÇõ‡õ1ÿñõêíóç°úécL¹\
-É+¤Ô·IfY¤IF RX¦u–ç(÷âUYp"qUYР4wÜXe¹:—R“?{CXH<x(L(rÅEº%
-ì(ÇGûè÷ùþÙªò{x™¹þv›¾;ëhN''Çý ÖM´ÂLå4°E™SÑfOMÅ.B.ìêmé7'⪼ã$QW5rbñÐT›¤¡S¨,[‘"O³…%åe‘ÝXƒ‰Àƒßc@©®T’iåÖ¬è«ñ¶Ù†L@$äCrpÒðN.âL6‚SÞ˜Ç}Ú|@Cét*zš½æ
+xÚ­XYsÛ6~ׯÐø¥Ô4Dˆ‹G3yPlÙq±L&ÇMB[ŠtD*ŠÝæ¿w)J¦ãxÚÑÅbO|‹…èЃ†’x<à DzT“ùÀ^ÁÚÁ€Z·ar»\/.O÷y0ŒHä3x1íÈ
+‰†tx‘~rƧ§“ã½Ã#—IÏyAF®ô<çh|ünüi§£ˆ9ãƒÉ9L™|`¢!}¹xõt_òŽ|E$R›¥%Ÿïí’Ý“ã}Í:˜\´öv}¢×Æ~|úâ SpíÕÀ#<
+åpÐ(bÃù@HN¤à¼¡äƒóÁÛV`gÕlí‹‘ä!‘! z‚ÄèRIÉ6¢$#âsÆ/“ã£Ó7tZЮӒ„¾”CWxDÐHöòºÎÊ¢¹>Äòo½«Õàâ
+lÏUjÄs×F‘Q"/Ú £=ž”R‡˜êáì–ó9¯tmgN]Ú¯ÑÂè†u@o€%ë=PÑÑî¶4½ÑùDOg5Ë’®Ì—(šÂª¬òK+$UŸ=Æ7 gÅZIï!CÓáü¦½ ') -áj¹ˆu9ÖÄÐÑ”\!Ã
+0ŽÐrXËíbÑŽ0øzòˆ†ŽªuôàV¼˜YtU³Ôq­æª¨‘ži–
+OÛ´\ô÷V¿š.Öé}ió¡;ðý†£Õv¼u`t½ÈtH,h8 å}$hÖô1¨ñáaÖ<(¼ªÇ‘²ðgˆ¡‘O„~ÛlØ­’Y‰}ÚÎ_E¹*lÿ›ÇÚåï¶ Öa6ƒØv³¦kÛÁÉ?øÙ2nãݤ;JAcø:MÐïóÉÙnå÷ð1sý$<<xw6ÖѼ8<9¾Ä!¾ÀãkîYN}{)s*Ûê©©ØEèÑ¥]]_ý&)®øÀ7Nu]#'^šj‹4>Ü [‘"O³…%åU‘ÝZƒ‰Àƒï1 T×*É´òFkVôÝ‘¶Ù†ŒO"îG¿R‹€“wjgQsCpÊó8¢O›¯h(NEO³¢×8E2üÁkn¾Ær¨4"Šœs¥¶ì¨:ææÚk–ûê%ÁÃß’ &›}H§ë4xmê;÷págœÎ³"«j
endobj
-2751 0 obj <<
+2750 0 obj <<
/Type /Page
-/Contents 2752 0 R
-/Resources 2750 0 R
+/Contents 2751 0 R
+/Resources 2749 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2749 0 R
+/Parent 2748 0 R
+>> endobj
+2752 0 obj <<
+/D [2750 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2753 0 obj <<
-/D [2751 0 R /XYZ 85.0394 794.5015 null]
+/D [2750 0 R /XYZ 85.0394 751.3734 null]
>> endobj
2754 0 obj <<
-/D [2751 0 R /XYZ 85.0394 175.5261 null]
->> endobj
-2755 0 obj <<
-/D [2751 0 R /XYZ 85.0394 84.5049 null]
+/D [2750 0 R /XYZ 85.0394 109.3471 null]
>> endobj
-2750 0 obj <<
-/Font << /F37 1042 0 R /F53 1333 0 R /F41 1238 0 R /F22 977 0 R /F21 954 0 R /F48 1258 0 R /F39 1178 0 R >>
+2749 0 obj <<
+/Font << /F37 1042 0 R /F53 1333 0 R /F21 954 0 R /F41 1238 0 R /F22 977 0 R /F48 1258 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-2758 0 obj <<
-/Length 2513
+2757 0 obj <<
+/Length 2475
/Filter /FlateDecode
>>
stream
-xÚ¥ZYsÛF~ׯà#UNæ>jŸä#^¥6²×’«¶ÊñE‚"Ê$À å×oÏ €J¥üÀÑ ÙÓèã믇& ÿÈDH$ 5e8˜ˆÉb{…'Oðìà 2³(4ëK½y¸úù¦&IåäaÕÓ¥ÖšL–_§o1èTàéç»wogo?ÞýòáýÝõŒ®øôæÓ§÷wïnÿw=£ƒ0Hb<ýíæîËÍüÞ§kC§7Þß_{øõêýC2«o:ÁÌÚôÇÕ×ox²„7øõ
-#f´˜<Ãl0t²½â‚!Á‹;›«û«ÿ&…½§î«YWŒ(“4ã J&„ #8C$eÎ7_þýñ³}§=×áÉŒJ$ŒVNî¶j‹}U´Þ÷/M[lÿÇÛºjê}[¶A œÊã’=œ#Ì”LÎOcpé¾Z.f‹ºZ=•ý¦e1©½›o‹¼a ÜÁ¤W8ÐâìùRåWö™_}/^ü¤Šý¼-ë ÜÖõ¦3»s–=E#­¹p§Ü¿Tõ®)›ãˆ3‚”–l"À¹^8 H6C„p$zH"aÑip±ã$“ÇQèôÅ%8ôëlþ-®ýKÁ¹Ö
-, œl€Ošò¯àâÁqœ Í rIç"£“ 0HˆNåªÜü •ë´úžQ.R‚ñNy•Râ5ÊwíÝAÞfôQ†Œ­ß#}ûŒ¾3P¢Rv–²Çg^-ëíˆ/ þ”úX}sÑÜùr¹/šæõh/ª\¬÷uÝ.Ë}ÎN@1‘Ò%)=\TzhŠœ>Êí©ËTÝŒ
-€§cñq'úîýýÛÏ·Ÿn?Þ¥/Õ1ª¡‡dˆbS* Aa‘L›)|íwŒéÓ!!lÚM”XÕûŒ „3¤0 7N&dŽ¦q“
-§jzÛ†“çá´Ç‚ —~5GÏ“?Šª,ªðÍùÆ3Øû#|³­ýçó¾lgWg
-š]ï°wô
-‰# ôC  Ë$ÖÃÚy¶]‹
-9”KëK*å)BÁô=Vyy´™™ŒL…ùtYØ¿*—¬X¸du»«ùaÓú?õvë Уªb㟤]¨±k2…ðA™EžÛ~IJ‚›MýœïìŒ
-¬Rɯ—˜#À”rÈ ª”5|A·+{¬$žnkï\¿YlæµvüŸ§³lÐv«Ök‰3ÒÒ?x|ÉU‡‘Ö †…~†šñ Õ*æŽë© êmþãPúÅÒ†DÒ˜ðη»MÄ
-Ÿµ­CáSã²(<°n€Â–̆Éø+”t}ϯ|{2ñ7+yÌQƒe&È7îp¶?ÈĽçþãÇ|ã.Ì`¹¬·ó²ê,@Yöê!æÕ1g†V×t­\êü£ŠbK0Ú³YÓOš(ärfw1gâ¯A}£ EÜèóFE™S£úooâÊ 6ìpïig¦7‡Û'ÎJ·z¶C¦#ø™‚ÆÀÞhºhx92,MH˜bŠ*˜â·7_t±æ¬ü ·ÍM\ #‚ÉðŠ_B ·Å ‘ÉŒcŠ0%ü¤
+xÚ¥Y[oÛÆ~÷¯Ð£ TÛ½_Ð'7qs\4N;À’<Ðe‘HU¤âúüú3{I­,÷°VËáììÌ7ßÌ®ÈÙ‰¤¡f¢ G1™o.ðäž½» Af…f}©_ï/~þ©‰AFR9¹_öti„µ&“ûŗ鯈t *ðôÓíÛ7³7n{w}{9#†+>½úøñúöíÍ¿/gT`IŒ§ï¯n?_ýáç>^:½zw}wùíþ÷‹ëûdVßt‚™µé¯‹/ßðd;øý#f´˜<Á 6:Ù\pÁàŒÅ™õÅÝÅŸIaï©{5ë
+‚e’f|AÉ„d„ gƒ$£Ì9ãîúÚoêê»v?ðíyOà)F'¾«ó¯X` ÿÈOþM;7›7õò±¬ÇÏ6›²ž7‹ÒÎ?ïÖ`¦·Q
+ cìãssûÖ¿m‚i‹MUWm·+ºfç§>•ËrwIôÔ—~ê}Qï‹uf DjD¥ŒêQøfƸ@šA
+vfà ©h¨
+,0ÄÔÜÒVÿ ^¬1Óœ‘ —tÎ3:!fZ
+qP¹¬Öÿ@å*¾g”KØaü ¼N¨xòíY{·
+‘«v»fÝfVfq©"ìíjmiBèDr%Ô ðJÔÓv
+Ò˜0:†bмîšÇ6¾»„N>ßé¬g lÀ¡}wô¡aX@ùb—Ò—Š øq—’¤¸ê/)92†è——ŒB™%™CÅÈpÉ·Ž
+Çꚥ#@€HÉüsÙÍóÈUÒK`—.`ãÓ
+Ìþ‘-ÚЬh&"·Ï­M‹Ô/ ôà4´XyìÉV0E Ý–óʺ櫈žV¶…µ#6rsñáþZwöhå¿v`ª;ÊN« ütZzuŸ ðßqà©€žRRr&òq’ˆïD]½bmú —Ιƒûš°MHë]·ß"[ (`(ëK*å1[ÁIê­yùdaƒÆÈŒÙ
+ó©=³bZ;°báÀêf—Å~Ýù/óf³ñ¤s¨Wu¹öOÒ,äØ%™Bø ÍbÏÓþÄe×ëæ)_åž‘q6›.Wv‚eûÚ.YŸ@5cT‰!ƒ»˜Á
+¶ûTÞ®‹yê¿àE_Õ{¶ª©Ž-GXËQ*œì™Hýw~DÂABEýéTPm.<–m¼D!£ü»j;ß\Û ¶tÛ£s´­À*•üz®>ƒ\¢ö†ÉŒ t³´ëúƒƒÄÓMã½ë'ËuñÐØ£ÿz|òI ÚèóZâ‰iá<<çò‹Ã× Ž}ˆšÓÕ*‚ÇUUõ6ÿµ¯ü`ac"i„ìãïb³]G
+höGçð£:\Ù‘Un?mèì§E¨ý„›-‚¸[pÓt½î›q=}nö^ ]5ûuvwÆööòPJΟN…IÍ¥^ëmÍvñPÍØ‹<´R¨Qoõ9
+wÛ(Ã
+¶…wO28…ÛdìÚ3§BªSéI9És’ÿsô!ùs@$:ÕÜmoÙ™æ¶/uº¹MRÎåá–M²¡ËµIï]²õM#
+ÎÙ™h÷¤^ˆv”rÑžç¢mN2÷ŸƒhÑLIèN^´-IeŒF›ÙþodÝçP]ûõ*Ïp¶b*íɃ¿N­Y:ø÷ªëå—Ïñ䛎§îÆ¢×"ÞLWgCÐpÈzň+膱êÿÆ‘ >VHLÏ¿'õBð£”sÓêè+6êÌ’Q(³ä öAOgËö`É»*´@ØÕpëõ•½°öÃ=4绀f9êA|ÈÚñÅ„#ËÇ}ê­\<óœRª^Y´0´ÞŒ ´(TIòrdzB§…\\¾¿†‚ãïY
+~É°Y–%à¾iþµ}lˆŽŒ?HIWñüÈG°'¾’G”5Øžù’n!àÁfïÏ"2µÝ…ÿøQ¬ÝÅ ͦ¨êƒ(K¿~÷QcÎXᨦӱÊæËåx>eYªÄéÂëÿþúðK;·wäúD‚ÂÑÁË2e 'šc=üV}lûE}Î6endstream
endobj
-2757 0 obj <<
+2756 0 obj <<
/Type /Page
-/Contents 2758 0 R
-/Resources 2756 0 R
+/Contents 2757 0 R
+/Resources 2755 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2749 0 R
+/Parent 2748 0 R
+>> endobj
+2758 0 obj <<
+/D [2756 0 R /XYZ 56.6929 794.5015 null]
>> endobj
2759 0 obj <<
-/D [2757 0 R /XYZ 56.6929 794.5015 null]
+/D [2756 0 R /XYZ 56.6929 752.1993 null]
>> endobj
2760 0 obj <<
-/D [2757 0 R /XYZ 56.6929 751.8794 null]
+/D [2756 0 R /XYZ 56.6929 689.9994 null]
>> endobj
922 0 obj <<
-/D [2757 0 R /XYZ 56.6929 711.2251 null]
+/D [2756 0 R /XYZ 56.6929 651.6264 null]
>> endobj
2761 0 obj <<
-/D [2757 0 R /XYZ 56.6929 673.9044 null]
+/D [2756 0 R /XYZ 56.6929 615.3075 null]
>> endobj
2762 0 obj <<
-/D [2757 0 R /XYZ 56.6929 641.148 null]
+/D [2756 0 R /XYZ 56.6929 583.553 null]
>> endobj
2763 0 obj <<
-/D [2757 0 R /XYZ 56.6929 572.743 null]
+/D [2756 0 R /XYZ 56.6929 518.4312 null]
>> endobj
2764 0 obj <<
-/D [2757 0 R /XYZ 56.6929 498.2696 null]
+/D [2756 0 R /XYZ 56.6929 447.241 null]
>> endobj
2765 0 obj <<
-/D [2757 0 R /XYZ 56.6929 396.921 null]
+/D [2756 0 R /XYZ 56.6929 349.1756 null]
>> endobj
-2756 0 obj <<
-/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
+2755 0 obj <<
+/Font << /F37 1042 0 R /F21 954 0 R /F22 977 0 R /F39 1178 0 R /F41 1238 0 R /F53 1333 0 R /F63 1385 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2768 0 obj <<
-/Length 2085
+/Length 2199
/Filter /FlateDecode
>>
stream
-xÚ¥XßoÛ6~Ï_áG˜Yþù˜®i—¡M³%t}P-9*‹®$7H±?~G‘”%™N "Š<“ǻᄏY`ø# %fš/RÍ‘ÀD,Ö» ¼x€µwÄˬ‚Ðj,õúþâÕ[–.4Ò’ÊÅýf´—BX)²¸Ï?'—··W7o®ÿZ®¨ÀÉk´\ Œ“—7Ÿ.ß»¹Û¥¦É廫»åŠh!(Qlå$NÞ¼¹¹[ýúñæí»«›å—ûß/®îµÆª̬Nß/>Á‹nðûFL+±x„ŒˆÖt±»à‚!Á 3ÕÅÝÅÆ£Õþ§1Sp¡ \.V‚#¥‰Œ #,À
-·OmW€TÒ$7Vk*IR›ÎMí{­Í2/ÜDæìÏÇž"D&´wÀ«¼øñÊß«—˜M‚¨ÄÁYöžv×âû¡ü‘UEݹóa‹r]üb_ü¥{ýŠMv¨¼ÈØ¢vÑZÔ>ÝÉuѶîÖDI”
--µ]à•ö¢B&ߊ§¯&ë7ÊÝLYïŠÜRYüS2è¹£ˆñ4Ø£Cžàîƒ:ÛùQ¯<<3÷Xo³&[w…µŽFo /Ù¸§Ý°òskSwYY÷(±ïGãÃ¥JO}î€fØûÄÉ×½Ú"w3e ¸Èr7íl‹ƒ'Hð
-ñ³Ê"^ÇÑT×›½EŒßÒ¸gOf›'÷bùR¿”ÎYëÎ4~åYÄC4aÂÉˈ×)¡^걬*·u³TÉÁk–ïql:ËRPiÉäÒ/eùÊ¡’QlK— Û—önŽ•ÄÇþiœ0ÙÑ„Ól´©R:
- <{†¤Ù®^yØÖ¥–<6e·º.j÷îŒUA]òÃK¸$décÅ&ú™™a±„í³¤ôO8öŸº1‡žìÔÓ1”gÖÂrlàˆ+EŠRI_ä.Œ´frL±€ ­ÁãÏFðXê|R=Ô±lB Á ÍF/pœâây½‚PD¯I`Q>*gŠùØíÝÕÇ®äçb—£4äÙØ+S¢ç±;@‰'mÑÁÝÌcÝ—Sv¸™?-f…zëÿ†|€¾
-28Á—í}¤2ÀTæ§Mt‹8`%pïä
-íõyèD¢ OÃìîêÊsùþî㋱f7ÿ ¬à
-ÄØ1Zèï:’î7 M» ¢D€Ôëë›7î§Úë”ï {m;%ã‰äÏbã˪zí#󃋾ˆß¥m(å$랃¤Á Ì›ÅùõòÓýoÿ|Ñ×5ôâuáùð®ÿdâÉïWh4LÓ•‡cƒA8´ÿrðB
-$=FsDñ
-žçu;öŸ…^-¥
-ýè…N/n™ós N1í¤ ’D…`˪õèv `U8OŠ¾„]·Ãè[dè4R1t`èzðÛ” ãŒÌ7o"[2¨Ÿ¤ˆÎœ«Ü3‰šïÚ¾¸ë-)4ÿ*l÷ÏH?#»­˜¶d ÅÝ„&š:º-XÖ~ƒž©ù=Œ¬6_Î}ÀÅíWç|ð
+xÚ¥YÛnÛH}÷Wè‘F¾³ùèLœl‰ã;À
+IÅp°¿Õ7š¤ZÒ,Â&Yê®Ë©SU4Y`øGJ Ì2¾H3Ž&b±Þ]áÅ#¼{wE¼Ì*­ÆR¯®^½eé"C™¤rñ°í¥VŠ,Š/ÉõÝÝÍí›÷-WTàä5Z®ÆÉÇëÛÏ×ܳ»eF“ëw7÷ËÉ„  D±‘“8yóæö~õû§Û·ïnn—_þ¸ºyÔ«N03:ý¸úò/
+°à+ŒX¦Äâ n0"YF»+.œ±ð¤¾º¿ú÷°áè­ýiÌ\($(—‹•V$; # /Áa£Œdjp%1‡)ã°ÕÞúê­d#IBÊhfEöºíçÞ à3ÅÅb|â‘^A(¢ŸFRTλߗëêoŒiÙ-W,“I¿-Ýb­w»¼)ÌHÖÛ¼iÊÚ½±šÚÕÓ¶l—D%¥³nâŠ1‚e0¯ÉweáÅÆj1Ž2–©ºêú²ñªltTÃ×}¥Ý‘lì©z9–0€æÜoØ6Å:r*¸Œ‡,S®’‡­5à€)”@j@„ x­TQnòCÝ;xW»BøЄ=N$d ÍRrLc©Ó`¤,˜Ú˜2$ÁjœÞmªº<B”àˆgJ×nŠ¨7Á”ÈW˜Lõ›bJð$7‘tú`ã¶.Ýc½qW§­“)ò>wO]ôañX6e›÷UóèDBͶ‡~«ÛêWnA””%ïýž^H$z~ìb›!Á8™†¶{ÔTÒ¤ÐFk*IÒèÞ=Ú;´ý¬ŠÒ=ÈÿùwDÁd>
+÷¤jö‡E¬T†L)™À ôŒØ($b< þèÆ0'8{`axÁ­¬òpÍÝ(§Í×}i¼c€a½á%[w5ÖþpDŸWE‰¹q>Í2`Ú`¼©šqb¯Í'ßJwèÊÂ=©ÀE^¸Çη8D‚„H
+1…âHè4ƒb­¬Ð:…€­·­Ö}QµGHä)üúÌsš BǪMË*E׎uûìh)Ë’§ªßºU¿aLB£ÇTÈœU‰'„Œ¦2]ï Vü–Ú]-mžÝaÊ ˜¥raZ÷ºõoÎbºL8¹Œu託zªêÚmÝ.UrðZÛ-‚uoø v™\ûWy±rxd„Aþš¦eÂó•±Íñ1ƒÌØ?K%{qá´Îaª”Ž’Þ g6$ªW¶uÅ„%OmÕ/¨ËÆÝ;gÕБüô®üEl–˜?s3¼ì!Gø,©üŽ„ýg§nôÁƒyôüRÇjš®CBŽ ¥HQ*éEÖ‚Á"crLÑÜ¥I¬.4Æc©3Ù¤,Ô§,(pí©)ë¬^Ôu¬WtÊš(æs׆Ëæ®ä§r—£4älî‚—)Éæ¹;@‰']Ù¿€Û.ôSc)³ÜÌΟ¶±ŒB§ˆ³†|€¾Z18Á7ì6S` zòcCSÆ+x''dðrÐ%Kòº V•¹ð Ls³)ÄuS?ϪÏKßhz¼ÙË—LðÅÉ%cî/QUïÁµÂáGß@Ys=6ЄÁ ‹%”KèFÒ@ê7]¼ûps±ÃO$ÂJ¦®°š*Ú«T×ú)âSì!ÍÉ…RNM
+©ÜëãЭ<RaÕxè6–H…m1Œ­¾~sO=e;X©Ñ¡+ ¦†}XOÅ á
+vÚ<z”ÇïøÄ KÍ*3.™eî.]¾Û×QJ'ˆ± ®ÍÉñÉEñ9®í ök6³Fëû•½††ÜÍ–óâ‡R„Þ1ãI«ë.Æš€Ú”†Zl‰ìK"GãBŒ2$EöézÈÀ “Ó¹÷ûæqÁ4©aîª&QJLS7ëê€4û€ p¸Ž¸kŽù¸@œôof(.Dâ"r†Â•fÙèDÒ OóìþæÆsýáþÓ¹dSÃîcüG‚†2æ…½°ÆŽ¤íédA”˜zýþöÿ|ä•*v0¹v=ä’öTòg¹ñU³ö©ùÑ¥_$ðÒ “rRwè‡AÙà¼7ñËõç‡}úó²CÞ70ˆ7¥§Ä{û½Äóßï0e趯/Óá0ûË0^ÁÎtDñB
+©^M7Ž  OLæn͇¸b0žQîhq²‹#wJS?‚×Ñ$Œ]„oI:°¾Öõ?Ïs£÷]u4~JC¸Ð¥
+(ÓXã`2—
+“ç¿)¿ì`›
+ý¤ì…Ž 7Üù%§˜ŽÑI¢Bºåõ£†–t»‹¤°€Fœ§F_îÛaõ=²? ©ÆGpt3ÄmÊІqFæ›·‘-
+¤ˆËœ«l¹DÍwí.îzBK-¶û¯I¿"»­XfèÆ– QþÒMt[ð¬ùkÆLÍae´ùzêO! ¸ùûE>x€ìÿýg’—?ÁˆÊ”¢ñö–anª( JsˆbsÕSZ·4¢ûd¦bendstream
endobj
2767 0 obj <<
/Type /Page
/Contents 2768 0 R
/Resources 2766 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2749 0 R
+/Parent 2748 0 R
>> endobj
2769 0 obj <<
/D [2767 0 R /XYZ 85.0394 794.5015 null]
>> endobj
2770 0 obj <<
-/D [2767 0 R /XYZ 85.0394 497.7321 null]
+/D [2767 0 R /XYZ 85.0394 465.3449 null]
>> endobj
2771 0 obj <<
-/D [2767 0 R /XYZ 85.0394 355.5987 null]
+/D [2767 0 R /XYZ 85.0394 333.447 null]
>> endobj
2772 0 obj <<
-/D [2767 0 R /XYZ 85.0394 285.4875 null]
+/D [2767 0 R /XYZ 85.0394 269.6416 null]
>> endobj
926 0 obj <<
-/D [2767 0 R /XYZ 85.0394 241.6173 null]
+/D [2767 0 R /XYZ 85.0394 230.1531 null]
>> endobj
2773 0 obj <<
-/D [2767 0 R /XYZ 85.0394 202.8843 null]
+/D [2767 0 R /XYZ 85.0394 193.3443 null]
>> endobj
2774 0 obj <<
-/D [2767 0 R /XYZ 85.0394 168.7156 null]
+/D [2767 0 R /XYZ 85.0394 161.0999 null]
>> endobj
2775 0 obj <<
-/D [2767 0 R /XYZ 85.0394 95.6826 null]
+/D [2767 0 R /XYZ 85.0394 94.3727 null]
>> endobj
2766 0 obj <<
/Font << /F37 1042 0 R /F21 954 0 R /F63 1385 0 R /F22 977 0 R /F41 1238 0 R /F48 1258 0 R /F39 1178 0 R /F53 1333 0 R >>
@@ -13418,7 +13422,7 @@ endobj
/Contents 2778 0 R
/Resources 2776 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2749 0 R
+/Parent 2748 0 R
>> endobj
2779 0 obj <<
/D [2777 0 R /XYZ 56.6929 794.5015 null]
@@ -13453,7 +13457,7 @@ endobj
/Contents 2786 0 R
/Resources 2784 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 2749 0 R
+/Parent 2748 0 R
>> endobj
2787 0 obj <<
/D [2785 0 R /XYZ 85.0394 794.5015 null]
@@ -13630,7 +13634,7 @@ endobj
stream
xÚíte\Ôí¶6Ò ˆtÃÐÝÝÝÝ¡Ä0 00Ì ÝÝÝÝ’‚R"‚´t ÒÈ‹>ïÞûüž³?³?½¿w¾Ìÿ^×Z׺î7¶‡Œ5Ü
¬‡¹rðpr‹ t´P(ÐWç…C­fL9g0ЇÉ]Á¢
-Äü{fXE
+Äü{fXE
0Üú÷äè¹aÖÃöOÃoäæìüØã?ûÿxýœÿŒ=ì a.ÌÁAb¡ö™9Y® Ä£ò/z{xÂœ*Þè—ÖÁ»2#×Dj,ïêÃ8›ÇEµyÍî;Ýoª²n öA™ºÓÁß‹(üèX>ã.3v±ms™W`gÅúϨ¯"›
rn­êèš—ß¡RŽwð9£_²Ò¹Ð_8=óe4%v>oFÀk(Ù?`LÙ½¼`êú4ð±ûåÃ&9[~ƒ˜;26cLà«|r)Sƒj…×Íl(ßÛ
b¬Å7ÎßÊçÏVð™h9Žù,¢I‚°RÊ• e®äß·RÆ%=²ìÙ êt›œ(†Ì%³LÇî)®Ž>1Ù¥‘„µ…^Ñ2¼éˆO£Ý %õ‰>•pjÕr{2–ÂwÍ<–g¬™-j—!3cäáakIè,AŒ$ÁLˆÇÆ‹J¯³nöùU»Ïm›Þ‰D3
@@ -13653,7 +13657,7 @@ $OíœàÅ€DÈ
t‡Í=žÝbóÆÃwî6ß"£“˵?”JËOP2RÐ oQo+†â1)©w†¦ÜèådîI½ÈZ¿VÍ­(e÷åû È"QÔüFØs(úF$'‘qL ®/¶!õÔ ¤HvkÖ‰Œh¼È‰¬ê؉á¶o?Ùa:Šÿ±qêcŒ° gã!_QÇ~ÏWê¡1üaœ¯UÝGmã§Yñmn%ìRãr9÷¬ß0qˆ5†/‚E…(êÚ“†,W‚˜$Ù½ï¶åçLxËÎÔ|ú奕£w†Z|ÂV€ãž÷,éOd
ÞyŠGÝ ŽÎ¨Ý3lÍ4©¿Î\×T2Zª½Ag—.7Ù#ÏPæï™v¼eŦQLÞ»±Oþ¼Ô\’ ¬ÿĵJÅñ¾(š3Ç].Å*,MÎ>ÛBx(ÃSÃó|D³uû‚Þ¡ï†{:Ò‘Á¨2G9¡Cê{É•<|?ÒK áéá@F)Ø,êw÷ó?È ¸¢Ëa„Çh%Ù±o^Œñ{‹6™Ý @¥-«ä%Å~jÉwXjz1îi´·î¬%uÕ3^¿±g¸`d+ÎK[ŽDe—„]âò†YèÖýÇ?Ï>£³HjË,èkѸÍhÔ8Š” ™v_Å [ªJÖ®²9m=·âú?\‹k>¼à¬‡¤*³Ñ³ž,Y ê<‹ý¹uÓ Z/ZV$S·é#ƒmNOš¨5M@¿§rãÝ0Hõ7¬&7[àçŽAØñêOõƧÈêÚ5±pE6~d»Ž^.x¨T1¬µ¤$£Í7¿ÿ4òÆêüj§‹G1¬èípoóÌ3³QýÐZ:œNÍÆéç,0½‹Š‡Zg‹ðâ£à)‹Q©¯³‹X""œÛÆ0ÏÁ¾äBvFA‚)Y9(ÎYÖý…ì¬S…|¸Ôü¾“qbæÇN.LÔX§…_ï‚¿œ%%½¥åŒìé|°D>W²7}C–Í#—ZR¸­$º`bÛGο…a¿9gÝS%\”Á/œîñhC|?s§ Ø…šg¯ÎÙÈ)ª¬m}ÐvÖËk†Ÿ.bÉ&O
üõí+uqfº`Îa‡„°£â,I§ã¯½/‘˜÷ÇÝ›Á¤'P6ߢH‚Ú?÷›½šÙ¹˜Žà9¦ŠmHr7:pMRYŸ#£ 'æW¥¿ðKCß|-¡mWÝ躖nᲶË0–«ÞÐ3äÛÙ=j’¸Ë-,n–³e±€¢üb½iÙ;‘˜Hâ°l<)žL.ßÐYÖÿ°Ú·)wL=(‚Œ£± L|)=å'ÀÆ-Å@²öò¾µ<ÃNrä³6îµEôʃ3±d¶kÓ»¬ÿ‹%ôµøü·(kD~ô(¬_yñ‡Í; ¯åä²fùOî{&*‰äyÒ¯9ÛB±T¨d>è.<Sâ¢éX3p7«Á~ª"럽Ÿ“lË´ÍÔDQÿfŒ°Ì
-*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}
+*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}
endobj
2131 0 obj <<
/Type /Font
@@ -13662,14 +13666,14 @@ endobj
/FirstChar 67
/LastChar 85
/Widths 2825 0 R
-/BaseFont /DTQKKM+URWPalladioL-Bold-Slant_167
+/BaseFont /BILQGW+URWPalladioL-Bold-Slant_167
/FontDescriptor 2129 0 R
>> endobj
2129 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /DTQKKM+URWPalladioL-Bold-Slant_167
+/FontName /BILQGW+URWPalladioL-Bold-Slant_167
/ItalicAngle -9
/StemV 123
/XHeight 471
@@ -13693,7 +13697,7 @@ xÚíVuTÔí¶VA!¤†n†n”.IéΆ˜f(‘N)én$†FJ Á!¤[:%•$.úÝï|g}÷üuÏùë®;kͬ߻Ÿ½Ÿýìø½
Òy¦§aáèha …«pJí•Ž H
±@Bá0Y $D¤±ÉB¬@¼¼ 
µµC‚XnxXÙÙ9þ²ürYzý‰ÜD" ¶0Ó̓;Äîì!o(þ×ZiÙ@! u %5‹‚šHƒ¸Þ¡áf鵩@­ 0„dw9þq
-³rt³þ%àÆnÿ-ÈÙ~ãátƒÝiÀH„•+Ô ºÉª!+ÿ‡N¤òWnôÁmn<­áVn¿JúÝÐÜ H ( BB<‘¿rYB@ÖP„³£…×Mî2gWèon(Ìö/ Wˆ­…«µ#¸¡¹áþÕ¿êýSõÎÎŽ^¿£á¿½þ¡ŠD@m¸
+³rt³þ%àÆnÿ-ÈÙ~ãátƒÝiÀH„•+Ô ºÉª!+ÿ‡N¤òWnôÁmn<­áVn¿JúÝÐÜ H ( BB<‘¿rYB@ÖP„³£…×Mî2gWèon(Ìö/ Wˆ­…«µ#¸¡¹áþÕ¿êýSõÎÎŽ^¿£á¿½þ¡ŠD@m¸
ÿóü{é!Oˆ`zn%lŸš‘†¬"Ïéé—5úÐÁƒÑâ\\£ý:ß¿Þî—¾(Rf~QÂU;(zÕä5¾í|¹ªÌ¶ÖÛAæÈÜž ÙË£ò¡g}ŸO4ÏôNˆ}-lZŒŸöU/Ê{LeÓP[wm©_ó™iÑÅ=àà;>WìýSVz÷|R†g_«”·¯´ÖÞ"®*ØþÊ”°yzÂÜÕ÷±§»ýðîûUJöìW8Œbî˜øL‘þ.Ù”O uJåÊߪݎË;BbubÁï<_^Ë¿Å`i¢KÙÅy¨yc@–‰Ÿ'\;ø$·®Q;S-”âs/, 9D¦Ô#,9ƦïKv²±SÐúê¿»èçö‰%…÷²õ-âÁ]3ëãÝ“±Ñ][™CæºÊlëŠÑLü‹¦ëÀ¢€5‘ؽrô›ìç3üÜ°˜üDÑSjÛðôä)Wï8Ž*öÜŸèž“3@'}~+ÏÝ6‘žˆ•Ø\Žpµ<züuÚ>AbåPóبLbZ÷a3ÒYÍEœVÁ= ¾‹­{·^®2<¿}5aq€©ÿ_5¹Ûðòµ÷>›À¥´ê$C}ÀXŠ¹­œÕ÷ji—û­€G‡/§Œdû-!j¹;Ë6#ÔÜŠ.Oé­×ôÎc´¼$z¾I(ñØÇ/ Wj®½"¹ßKÒÿ¾ð{Lš¿ÞH¥hԻí:iÓFRF<g] Û39}—ÞÞF™8|à0­‰å
b݇a›yKÜ£%t×TcaÖËF˨?B:äÐ 3ÚZP ‚ÌÆŠ} fñφôˆƒTU‡J鉽žj:»«Ï‹ºôN)/ÂÕ äE½¬^gº‹ ^/«k¯&6Ö7%³"”-ήQËòÍ“ ñÆ‘r¾“'#
ñÀèHvo»Vüy½¼Òç³³”ÎjÁÕŸ,_Âh^§–p³/â#Ó„HÊÀç„»ûÄŒ[‡¤Ê»B8Ò¬’%PË ™#¹&}Ô7uo(à–îu•úµÒ95ÀŒ¾?ËêcÕ8—ÄñâθÑ,™ê:f”†.‡Ðà¡ÝõÁ41hÀ›3):«;Ícƒ·ú‘¶Þ,èðY½:Nç5u…QEð ‰rŸ–²ÌûŠ!&.ÜYâü×É ú;á$¤`×yme~b©@{•3*¹
@@ -13711,7 +13715,7 @@ d ¯òˆ¦:ôw
ÕB¾ª\h~8©$‰¼¼·ý˜7!g;É¥ƒ\®cf>}7›ùâžÐÙZسãÁÖ–Ü^-Už&(
ÖËÓ»ÜIFÙØS­˜õOV_ºhýÐn-®
X{$¢½‰¼û£@–rlZ™âɞˊ1o(­¶¨mèö¡Ðé»÷ÝõäIŒ]Œ_-ô‹ ¸Þû ò'zŸT¶n76Gت–·& úìIĆ‹7ÎÔ‰‰f¾<B‡›&ª½úŒ×ž´)„Æc+¤ œ?µÆ(_¹à™ñ0áNZ¬/ˆ_c24íŒË¢—'{.ö¥dÖî§Çz̓¯ÛKÃ{u`‡:s±¹ Á<º'—0— HMq±LåRnC@x›ôs̈W6ß>uä3¾õˆ;)EO4,Źk&l‰#õŽ¾„˜¬Ù¶³ ½höâiF] ‹œx'´ÅfÊb\ñê{Ý?¬¹¶=ê3¤XTÕW©*®§‰\Ee¶©x‘@†Dz:ƒ!¡X¾ÂK ”G½èß>c{BŒÍCŒ±¹0šUÕ¼ƒ¿ªÝ•5xfœéÉU“Nhèòã»Z–$8û훎·òБÞåú¸;ß¾2~%~QÍ÷*|6οÀ.©ó¶H&l]ážçµÐ[èù%¥κƬ!ÙrOxÆ!.B˜“zuW,Ôêr‹9å™ÊT°CHÖ‘_e‘‰ÿð:û5r€û3.ñ4v—W”ò]ª[)ïó–äÙÀ—݈H¾ÌûùSŽ¸+¹ºfS4çHõ¿ÞzyàÂ*/ç%Šâ׻͠Ï8ôæãmº'7…\ì°Å÷K)8ÐÁ@£bÅî\ç±ÄÝÊ‚×[g“©»5é«ÅÖ¡’'¯ÔíÌ¥ºégˆ<‚â¢Ï8TŠqùœ_U å=¢¦#fœÞ*ª6í¶²*æ›\oi›–•`ûlj[ÛW*ˆ»ºœ2Ž(ËtŒp{ˆ¥6Í]š†}„¯>{?'CÆà§5zíEëÝÚÓÞ&vø¾öŠ ÷dYcØL‰8àÇÉu°à•GËÝšÎñtûëV²­ˆ’eÓëû­&KÅàჃ‘oS*.m•»8ÕîŒWQì3ÊDÌûj OpHY²ï®f>×¼ù‰_ôŸö‘Ƥ‰´»ø|EÀ’=PzêîXDƒ%½+C£ˆ1_ù¶‡=AýYœ:&Aaú;æ¬U¾öÝ*“ÍXJ·=à²ùˆ1¦¬ý<ð»©,|# O'Cƒµë“M]í¼æf°ºÜS4‡AÇ÷Mj€“Ò·ÐökxõÊáž™ËG‡ÞÕéú,óÔ92‚¬ ߸gp0o9)ÁM£«&ChVF=Vv¯ñõ­Åž¡üÜÈT·Žïvä(Ê´ãé¿7jzä­ ¾¹Â6]E³ÚŸÉÞeIGOIùç…&˜+ÊZ Sl©
-Í`ƒ©c½G¯Lsé:JθÿÍàÿ þOX9B,\‘p' WÀ'¥y±endstream
+Í`ƒ©c½G¯Lsé:JθÿÍàÿ þOX9B,\‘p' WÀ'yžendstream
endobj
2117 0 obj <<
/Type /Font
@@ -13720,14 +13724,14 @@ endobj
/FirstChar 66
/LastChar 78
/Widths 2826 0 R
-/BaseFont /ONFMSU+URWPalladioL-BoldItal
+/BaseFont /DTDQDT+URWPalladioL-BoldItal
/FontDescriptor 2115 0 R
>> endobj
2115 0 obj <<
/Ascent 728
/CapHeight 669
/Descent -256
-/FontName /ONFMSU+URWPalladioL-BoldItal
+/FontName /DTDQDT+URWPalladioL-BoldItal
/ItalicAngle -9.9
/StemV 114
/XHeight 469
@@ -13743,21 +13747,20 @@ endobj
/Length1 771
/Length2 1151
/Length3 532
-/Length 1712
+/Length 1711
/Filter /FlateDecode
>>
stream
-xÚíRkTSW‘ª¡¬òRIÕzX%2yj  @ÄP4<å!1÷†Ü’ÜK/74€ˆ*©Ê²ˆ.yŠŠRaU¨”Zb¦€/Ò*Â
-ŒÃ
-ÁÐ G ð«uÀ]Ø|!o…ǧÐ@0–nÀ‘T5¼‚é“$>iaQ*P SjXKÖP*4@Ž)˜00H£ë&od€upŒg“Âá
-M<…Ã(4] éß”V„Däýû×N%#JDÒaÀþƒ=sþˆI“pDØL6›CÉýî”4­™Ub‚¦.Ï(p\a CDF<`ä
- É* §Lþ«°4pFÆ$úàVêäì‘îMb}ZP¦72VpƒË#[±Wú>ó'¢R‡ã0JLiлX…žÂ°VR¬71¥ßÖO÷Þ^“+®ê<fOÏXh>²µýü¶Sf?æp¯ŸËu¼ñ§(ø£ßœ·9Šw* ÿ†©x}ÔÓ¢l‹QÎÚÖãlqt£Wì—Ïz¨NLžq¹¬­õíÁ÷¬‹Ó½þìùìnæyûº5÷9üJêHáÌš[7_=ÉMÛÔÑguøò*¡$•Y³ŽùçÝ¢«B±*ÌZ}y~âþg®¯­ÔÖ;Ýi·ÍS™Ìî†Ùÿå6]¯êï p¤-¶Æ•
-VË…³ú\)7›ý=ÌqÍMá²_gtÑæ÷»¥ù9%a±ÒèÑÇ*\”5 4þ¡ÕT[¸¾u}‹6
- ëuXejÓþ=°?»yLâ7òÜnýÂÓʥ܎k÷•ÿM¶ÞûÛ&ËžD±ÞF ý¸¿òÑ¿.µ˜p“%Á ½)g£ny_®m¸PâZ[03ÉÒ$‘T-išõ Í÷p]è7×I”8Ô»¬»õEÔç²]xã‹Ž }v¿ôú©$ÚÒ8rÄgQ®ýЖi»˜¢–}µ;^›bèô­=iùqÞ²}PT6cí¾´ã5á5Ûµ†Ç‚9{ êqìʳÏ=5ý *Ë@Wø¦gËém´ WjNE‘/*S˜x|àÙ–VGOŒ3¹g?ÙÀóKL}ÝpdÝ¡jãîMßZ¹hNJС¿g@@M^’ûfëhO¨ÎÁYÜÔž`Eï3ßù± l9wÈYçé÷ÍÒ€jÝ…Œ­ZËà:«¢ŒlM¼w¡mÿ j®ÔÖºÑ ·ÁËAŠT/«»Eæú½ô©;jiN7m—´Ã¯NV•Ä°r{Vòñ ÖŒU
-QùRéiÍr›wfŽ=)q|†o>x-ŒßP¾
-¼]¹~´bÂÿnׄ.ÏõÊHaÇ/gVÈT²7 ò½)óUY}缬¦®ÒNåú`†×Ö3Ÿ¿ä~uÚÔ¸Ùf!„¾³U·o¿îz5,ÆQËÙ+ÐsŸëÈ·{?§p5•újZZ7¦ß_V:Øwt祬è ,w½bÜKÅ%¯mãcê†ÚmËs….ÊÆzÓž‹•ÅŽÇh‚ñÒ¨|eÛíä-«‡eu 'v;ìàRgwÍ-hžµpçæŸÝ/Ë”W|½>à<??3朄×8ç{ÏÅEjJÎ99T$®>˜zOÜ–ý<ð‡ ÷ìCF—<‰=k.,x1¨î=ã[^,¾Ò)ºÕº‡VÛ¥iª.-Ø#›[ã²á½P§ÃíW„לüw··ó>k§.#^¾N8µÜí[CJ'¤Ûô(´eM„iÁB#z]Ú™yy¢Ò ®»FÔÉ ×Ëò~A£å Ô‰¶ªýs8Ñy¬€¶Yøbݬû]ÿü»”jþÀØqKÒµž/G×îä¿´&±èIE ±ª›7ϺñiVäáü*jm?û?\”ÿøŸ( ÔÀ
-œÀ´
-<òo2©Œ‰endstream
+xÚíRiTSבª¡¬2©¤j=,Œy5„„0 ó$1÷†Ü’ÜK/7”AÄJª²,b£KFQQ*¬*u@©%Váp"­"<ÂòY¤jUœzÁººJ¶¿Þzçü9ûÛßÙû;ßÙ4·Caà` %&G¥R ‡ È3›M¡ÑqXN $'`!à^ L«Ü€ÍòVy|
+ bézIUÀ#>Iâ‘Æ…R9¡‚5d …\ d˜ =ˆÔj°nòFXgÀx& 1)€6À©JaMj’ J ðßÀ6ým*Æ3HQÀcJ&"! Uë+)¬5Ù &µü²¦ÖªÕkäšÉòSNý%/× jýï L“®%`H1ÆÑéÔø8) !ZÍô¬„«…MUÀÁYÉd¯|ƒ#Áˆ†"B¡J¹:žÂaš®„ôoJKæùû×N%#äJDêÓaÀþƒ=sþˆI“pDØL6›CÉýö”4­™U`‚¦.Ï Èq\®§CDF<Í
+Á:
+-ŽÃ(15>¤Aoc%Bz
+Ã:XA1ßÀ>[>Þ{j[mž¸ºë¨-=c¡ñð–Žs[O}˜Ã}>N×ð¦"á~uÜêø1rÌ¡t$ü+¤äõSO‰rLÙ2ÖÖ^G“½ ½rŸlÖÅpbòŒKåímïil¿k^lIoò|ð£ûÓ;™çlëWßãð«¨#E3koÞxù8/mcg¿ÙîKÈ}¨”’T~zõ8ú¿wŠ¯LÜÁª1sÍ¥ù‰ûž:¿2SÛn÷¤Ý²7
+ åR›ëFßsØtr “ÂÙŸ¶Ø[&“ g/ôº]aVïûºcýZšÃ¥¿Ìì¦ ÝŒïöH
+rKCc$Q£ ŽV:)j¨}Cj¨ÖpC[|«Æ½PhiX[à”ÖÐÅõ-á¤7í¡­KIûuÉŽ™O’ž?ï{öÚ@m} Èv³r=>#ÆÓ{¿¦‡ç0½ƒMµ½ú™É-N®úâ.!òí³[eh×üÛ §eL
+b×ó]nùÌÝ̥܎köVüKïùu³iw¢Xg%ˆ»ˆ~8Põðç‹­†ýÜäàÀ„¾”3‘7=/Õ5ž¯r®+œ™dj®^Ò<ë ˜ïæç¼Ðg®ƒ(Ñ T;ÍztÅ÷Ugsœxã‹Ž ½ô¼ðú¡4ÊÔ4rØkQžíÐæi;™÷#—g{ÿbs.¼.Eßå]wÂôý¼e{¡ÈÆÚ½iÇjÃk·iôsö4<äØTäœ}"jþNYŽƒzðO—ÓÛië/×="Š#žW¥0ñ8ÿ3­m(ŽZŽggrÏ|´žç“˜úªÇïðºƒ5Ù»6>xtså¢íë)B»ÞA5]üiiÞë-£½!Z;GqsG‚½{Ôxûû~D0¸ùìAG­»oìWKýZ©õçÿ3¶j-ƒë¨ŒÌf«ã<‹¬&hPK•¦Î…¹X.ÈS=Ì®&©ó·’'®¨©%Ý°-˜ zy¢º4š•gé]uÒËX=V%DeK%§ÔË­fÜž9ö¸ÔÕòßtàj(¿±b'ä«2"~´rÂ÷N÷„6ßùòHQçO§WH•Ò× ²=)ó•Yz]×¼¬æ@†Ç–ÓeÎý┡i“Õ<|$úÆZÕ±íšó•Ðh{ gsŒ@Ç}v$¶³ÀæÝÜ¢0*õÔ°´~L·¯>´ÌÒdÇŬ¨÷ Mw<¢]ËÄ¥¯¬ã¢ë‡:¬Ëq…NMŠ¦Ãî U%öF«ñ²ÈEû­äÍaÃÒúÆã»ì¶sªrJºç¶ÌZ¸cÓ.–eÊ*¿Œ÷;Ç/ÈŒ>Ìë÷Ÿó­ûâb%çž*×H½+î ÍyæÿÝ{Ð;¶A£KÇœ1>·¨úN{W”H†/w‰n¶í¦Õu«›kÊ
+wKçÖ:­'ÄáPÇeáUß]%¼OÚǩˈ¯N.wùZŸRÌ ê1< i]¡‡[± û5}MNíþÌü|QY@÷õ#ªäÆÎkåù?¡Q²FêD{õ¾9œ¨|–_û,|±ÀfÖ½®Ä}úMJ p켸5éjïç£kwð_˜“Xô¤b†œXÕÛgÞð$+âPA5µn€ý7åÿþ'
+(Ô°'0O£ü*ÊŒˆendstream
endobj
1459 0 obj <<
/Type /Font
@@ -13766,14 +13769,14 @@ endobj
/FirstChar 60
/LastChar 62
/Widths 2828 0 R
-/BaseFont /NFAKWB+CMMI10
+/BaseFont /EBCJZJ+CMMI10
/FontDescriptor 1457 0 R
>> endobj
1457 0 obj <<
/Ascent 694
/CapHeight 683
/Descent -194
-/FontName /NFAKWB+CMMI10
+/FontName /EBCJZJ+CMMI10
/ItalicAngle -14.04
/StemV 72
/XHeight 431
@@ -13793,21 +13796,15 @@ endobj
/Length1 1199
/Length2 2269
/Length3 544
-/Length 3059
+/Length 3058
/Filter /FlateDecode
>>
stream
-xÚíWi<Tm2e$"˃8daÌØMe[Oʘ93c†Y,Y#Š'[YÚ$KÙ*EeK´˜("4”%QŠ²DO½G=ÕûôöíýöþÞs>œû¾þ×õ¿®ë_÷‡£¦L êXR˜þ -“ÁÑÁ¢18À
-ö粉$Æ6í ëÀ!Ñ0$!ÕÔ\!ü¥ Z³@b2ð$ìãÀI,@`18Œ Î
-^ZGÞ°£\1ë¥ff}[‚˜Ì”Š[?ïýb,Ô!¯XQ\%ì<Ö¯i*½0élOuÁ!îñšñ˜À„}y"[¯ÔÝý ±Õ[¤îÕœdU“„__ÿ5+Qø{ÉvHNÍ[y¯ÓƸæÛWôʨ gy!ņ[õw„ iw÷@¥½Ih¶Ò:²î,÷Å+ÙDÏ=*­%1å%“-e o×jªaŸ«+Þ_lÙ×"*Áoj’‚Ôäóµež²mÉóV1xÃÍ– Vyh=bÞ™S¾§d)¾Ï+@„*Z*çwÚ¶g´«²/¹ÇÚ]$R'åö›_Ó>ÞódÂs½ãjµá+^Äuã*
-éÑ ¶•·× •”&Læ,šüqNØ!jR ÉŸ@åï}$›ª1m$Щ6Qœ~¿@öÎòf#›9ï‘¢þ[ûlO~
-L&G›µ¨èÚ}tçPVšÇ—ÌýíÙÊ3úÇåì2ÁqæÀ©T[º?¦Ã;#)1g'²&”èw8Þjß ðÝŽW¨M(ñžTÅ¡EeÏýþØg®ëᓼ£Ô%[£Úå]'L‹ÇŠO5Zívº[gY~œc°«~MN œ@¨M٘ݤ²s "Ü/4ÕB4ê·MáîZ©ÌébŽ½j§ÌŠÂ‹†Å¨’ËNñOLuc]ž[¾+^L¡Ì,Žìô/²Âu÷¦DÉ%V0$ €7zdÂ7â\ Ø”µŸ:šé Ü!ù¤êrq–/±*Õg¬µ–I¼zH!îF™ÄÙ#›yJ/íZÅYË' ³Îöó÷c|IxÝ#®æf×ÛzD·]n Öé wÌĨš ‹zÖ
-â
-ÂäažÚj?S»þ²†ÙYÝÁ™ 2©ƒã6¡ßé¹Ü?:¸¿9Äü檅ÙÖñ kÞ½Áêw~åÂÄ•üugÌíórÅÍ}¶¤<:ŸùgS%rƒÂ û·µ¦ROëÑ-LsºÛêíéù‡ÑÍÍéJB”°ÂŒž
-rûX{ÐI`—ü•·ÛãPŽ™Ú–ÌÕÝG®ÚxõÆñeªÆ 5×ø·‚V›ŽxÞÜ‚ 8ÌÈsiÿØÞY¿¶÷ _˽­ÜùFCrºÛŒýQe>ýŒ™Ebç Ê{$Al…·Æí…7¥Áhâ¡ÖÁÂeͬDÓAÛ×…Ÿ>Ø<M?žtµà0×ÿv`b†êßœ[íÐ,™é˜A#©­ïJ=$Ø?cÖ=à7¦ØF—®ñèžâ¥¢?ÊHné=vC,€(D·©^²PÓ Ø{ß?Õ¬*B¶Û¼sãSUÅ´Ó6‡!¥püÊÌíê•[Kq‹ÊD …á× +Py
-¼=<»ûyDÑ'Í'ÕI'Bû¥]¦ä]?>Õ/Ó9‘y$K=¼ /÷È\/³³äDÈ”òëtõÇçˆ'?ë:{Íù:‹–ˆºCxl¿ÊÙoÑ»ë‘à]WHK:·ëJ{¶i@ð¼½.ïc÷6¢Än¡vø‰e_Š_pàúN(f ¸¼Œt¹~òn#oå|iZŠrÒ.Uó Ãg]»F4/ÅWŽóQ6Rò»NF£äŠ9áÇÓ ¿?eŠ>¾d}GzíK¢_ôhÎ*ýî›\o•˜šì4Ïaí{Ó*¼(NQȃ./ã•3óˆ$£s©»*Ôšoú0lK/”Ï7&…;‹xÙ…y<C¶‰É=Sðߣ¾m½å¥+u¾ÙWEK¹ ”åånÞÑÜšw˜¦Ô™>]wGu’ûÃ3w§“1ïh/Ü’–¥¸
-z]×Ä6(w?.ÑŒî±Fņ6—Åôìqóÿà*–09Í­ùðèn^/+3}Ý%Ýt»œT¥0š~Dep/
-Hoý&ºØ3ý©EÒ ø,MVtunv´ãQçsI}ÕÞË\Ê­G6¾+ŠÓÉ·0gÈg¿5(b¥HwˆV=N ¹žS *\7[½6f‹«ÆˆU´µYãPŽyÒôþÁ`ŠK‰ OÊÔý† ‚B®UŸPgÕ¢…|øÏ)NU2…Ò³ÞÒ´þb?y’ÛvˆÈÛ2n›|,¬R1àÔãº^ZŸz]‘¨Ùjd9wÕ†Ì2áZ­åt¡¾ÂNÌù ÿOð?A@¦ƒ$‡Lb!£X þ¡\ú7Cþ E\@œendstream
+xÚíWi<”k2e$ûrYF˜Ån*ëØ:a;•1óÌÆ ³X²Qœlei“,9ö"T¶D‹)E„F¥E©h£,Ñ©÷¡S½§·oï·÷÷>χ羯ÿuý¯ëúß×ýáÑPÅô¬ÈÌ@ÐŽÉàèah,àL ä² DÆ6=7Êuäé
+(WWW7_õÿÝÓÚš ÑêaLL=}SC
+â™lÚÒ‡BŒ0?aîA4Rd³¡CY†@ù§¤¶ “LcPQ"‹üÝ°“¸,¤ÓòIA±ßöT"F$8ˆIÚ´7¸~oëü+ÅH½g· ºŒ=f¿pU áét1¤`§³|H…¢aÑŒin#ȼÖo¥ÓJ”,EÛt“È3ë6äjI©dIA‡T…Wȳ›±kß­AôM¡»²Èç¾´‰¾êðVµjÖGÃÜæ¦$!…)“°~Þ÷ù‹p˜¢rUI°Ë‹!m3Ù…Ä7.ôxW,쯇NÜ—/²õbÓíZ[}Eš^ÍIÕ´I ]¶5J¸“bçÔ¿ Tô©0Á¶ß¼¨¿TÙBY8à +1Új°=ìžnïY/DúÛÄvk#Òg¸Ï_É'yï©Rë,«,}ÓQþ èf£¶晦òÝÅŽ}¢’ü¶!è@M¿|ÔXá-ïØ•2o‡3Úlµ`Ô'äŸ>åJþ˜ò‡üBX¸²e°jA]wf·:û¼g¼ý9yñÂ~‹ËºÇûOz¯wZ«1#|ч =¡`šó`Sñ掘AøÕjR¸âºä²ã_øZîD{'ªqÎÈÙ}°TQ²Úú†#ÝGwMË·íý,"5”:郮­òñ˜MòìL~}×o3ü³b–€×ÆWkæf&˜ËÞ[«³o¾T:¬•@‰Ôøä¡ÚHíƒÄ”¢Ë*xkùg±“Åž¦üwn뢎¡ÌnQ‡ÚX­Â~¯w$¾7?ÑûÃØN³Ê#-ÿPЙ)ÇíðÎåMO²Ÿï™y–ù²‘¼3 :Kgjb¯ÿÕW<öHï~¾gDAskJ,îl„œþæÏÞ†Þ/-Îå•Z>EË_î}a7uíøõU²ã vÕ7× •–%Lá,šþQ'ìóFΟDåï}(Ÿ¦5m,У1Y’q·PþÖÊvcÛ9ß‘â¡ëûìN~å_€5„›.Ö™Š°G~!Z]eº·Ü(ûÝï9IG+é¿WÉmÕ3—Ô]׻ؼºHMabñ
+–øÚ–ƾ豜5}‰¶y¾jqõ9éÞ£ºw¦Õx1œâ°û½>&«gæaÉÆui;«4Ú¯ù1ìÊ*çÆ„[“#]D|ìC#¼žÂ»Äž*îÑܶÞêüÅÌ&ÿœK¢eÁÜBKPÆêBïh^ý{ôŒSfÜ ÊÓI“hëùà´äíéô{ês…äƒå©ã‚>W´1F-ª}ÊÇ´cûmñá­%åqý{<?º‹%Σ+¸õÞÎ`eeHPAeØ禩DP ¢ªË;Apã{é+K8Y7/ªõÈJÐMyrþÁ‰DéÁÒÆ2_òõßžc(õ2+d„¢NUmëfŽ<–1 ê×OÌ'>¬¼nh<!f¦”0‘&iá²›,.¸±€Ý-¼ .ÞY¬ˆ%O¦¸*¤ýþîu¡ X‡\oÒ€}ë…‡uókúî\Ürr(aÚNt¢Êµø.`²—=3”VX,+ˆËÖ6eÅÖæåÄ:u©K¬õ]áZl3¶ñ}q‚^¥C1ça1+Uö†ø½"ããêÇñT÷:õ"éÙZ‰¸-îZ·¢ÖP%²'2-i¹ÉÓûGBÉ®¥‚~©Sw[N,
+y¹×|FœÑx€òã>#;×ÈÉÎúVmH×ù‹ýøq^×!oË„]ʱˆjå û2÷Mšü¨ƒšMÅ¢æká•Ü5²Ê…ñׇU3„‹zäÐÿåÿ?Áÿ‰Yf(‘alè‡réß þ/~@¾endstream
endobj
1448 0 obj <<
/Type /Font
@@ -13816,14 +13813,14 @@ endobj
/FirstChar 97
/LastChar 110
/Widths 2829 0 R
-/BaseFont /YDHODG+NimbusSanL-ReguItal
+/BaseFont /QYCQQR+NimbusSanL-ReguItal
/FontDescriptor 1446 0 R
>> endobj
1446 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /YDHODG+NimbusSanL-ReguItal
+/FontName /QYCQQR+NimbusSanL-ReguItal
/ItalicAngle -12
/StemV 88
/XHeight 523
@@ -13847,7 +13844,7 @@ xÚíxePœë¶& ¸Ú¸;Á‚[p—à4Ð85 îîîîNpwwww A‡½Ïœ{n¹¿æÞ_SÓUÝõ½ëYëYú®ª¯©È”T™DLl
fkçê`afЪ«hÒ100þKò—
ÀÈõŸÈ›¥£…@ýöà ²¶µ³!oÿ׆ª 
_
-0™"±(ØBÞ\hÿïºÌü?×äÿÿ4ø¤½ÿ½æþ{þÓ%þïÞ秖t²¶V
+0™"±(ØBÞ\hÿïºÌü?×äÿÿ4ø¤½ÿ½æþ{þÓ%þïÞ秖t²¶V
¤/k`T\§§‹íÝ@€]QZ~®w¥m§Wrðo™áSU
ºî\ÌUêVn†]_ý"Ô”cÍp÷ó¹uXm.VÝÍQeýÂ'xâ_­ç¿é¼)œs½q(ïìÐ<“j£pÛ0ê¡°ªóŽŽ©ã~ßÑô ôw^Âuï2dF!R}v†E¥ó¶Ï$ÒV/s¡”ÁDÖùE¾ìŽêâÌ MºÌ©œ}‹9YBb]™ºý^C÷§"mÇá åPÛ{ö»XPð´Ó1ðegçB˜ú”žpDØj]Éy&W¢…>**g›çL·V醤¯‡¬oöÓŸz ƒ—•å4Lm¯`o¼.W¯9ú|Þʆ¿Ñv. ©Ô¼~íkLMÀWrôêk¦ÈiÂ~©ŒK© Kíw¢ÏŸŠ ŸÇ}½^ã¿æ²—BÔ«¸<_g-wªðÄ·ì ŸCRkÞµTå³u‘£»ÒéðŸðˆ«)unG%E="Ó)­“%KÜ_½‹¹„È& %*9, …’Ö¶v£†íkEà8³»haøâ4-ï㊚*êFŠ+̈”®•„I÷\é˘eœÕss×·”¯ø•«ª•!´¦2cí7Ôaý¦"!šÿªáçÐ…tgšòî¹·þc|LDÉ\‰¤ÈäìýYX’sÈùƒÆwe•x¿µëSñ«ƒb+½:’3¥”ª¦åiC·IA(Om”9ž_-­í•òÚÁ¶–— žþœã®°‘‹s§É»™x§J¢àÞ‰9²úŠ$cÙQ¥R›Æa†·îk5Árk (q€O^XÉ#
Ö%o¯ÇRé «Ž*í÷ÛŒþØ©§TZ"žÓr‚¸ÌñÑ~÷FËO,£àBŽ¯ýÐ=ê±+¯×ïˆhÓ”‘ô2š$ÞæJ•œE¥ œÉ˜®‡‰z<ÒX?w’¥n°@2øÛ,g7wå‘Nè3™ëýmäƒS ¯yèøN½¢Ø¯K>™G
@@ -13885,7 +13882,7 @@ eïÏùѦÈ4Øk’ØÞ±Ô×äÖ¢HH ÝÞ+†¤fÝå¯Íc –«<}³ö^ñâi“ó”RÇR×z.©ÙAeJo¿tW 1¶
”7LãH¨žÿmÒtƒüûÔÏÅ.Û`–_Dgç3—Þ¨ÍÜ®®,=P:>ãËt—sÕuL*$Ýs¯¿i¡ÁyÂi®6#9š3}3ôŠ$ÍÜ<>UÇótôf¯­œ'HF ­#ÖÕKw$©ÏbùBeáù([Ó85=¥†Š£üä
ÖY9Îü`ÉÝ4Á’k;÷¶îæø`ȃ#vÔ5*r>c¢œ¥ö³hòwNkCÅ÷3çé.èÔS©Ã|©ÄõÂ0dAEóÄ\ÍH,vYíÉs_‚ÒÂé>˹fPwË&B;lû…f‹ñÝ6{¸ùíÄ¥¾ÿ ¼Çg\7›-jÿÔ°·†i~>ú™›Îuù6¢ÿå×r®›-i°ÿçÅhÏp 4u{ýËXnÒEô¨Y†l<Þ«`[Mèø÷MgšŽ]‚½³¼_Kοywø¸Á÷A´J’T놰§—Nµ™DŽ;f£¿ØûüP2 y•Xm#±6jÅ;`ÔV_ÚAéÀi@g>GëÍÌSòK̶UÐó¤á¨-ReŽM‘Ž\ýè¦)›L¨³ï-šÝI†:»lŸ^>k²“ú¼œ¼Ågä<\F-U:üDˆ‡Úû³qEùÅQæü›¦UBw18„²¥àÉŒ–žyJßÊ
ª²´Æõ÷>Ö눎í•Eâx¹èµäW<X1é‰þ¬'®†{¥#Óxјt¨LUÒÒŸ3”Ï´„6¹wrøxÍwÃò†¤k²Ä͔׋–è:NÓë¸OKî¤bôÊêFmH¤ã\Œ»Ð€&1nÒ^M<úJiÜC+W˜‡D- 'X,þr¢T ßÛek)}sÊKI‡£à"ç¾›OzÕ¯
-c•|z{Ù†B ¨À‡·íA?̓9¨„&Þ¯žg¯ƒQÞl6…²t1£ Â[€DÕÙ°| $–,㞸. yj;ˆO<<¡u«"Vù!C‡ÛÆî7+cÌ.™ ÔHý‡H¯F'®¯lšöÝ) I³…ÕŽ"î…µÄÛ¨¿w ù££ÍŠ(É¥ØKhùŸaP{‹jáÁQ.’OHÔÃñ<ˆìŽ¥>Þ¤0á¸mïÜ„ÏuìTyí"›Æ£]C;žë­kXÿ›¤ÿOðÿ±5è
+c•|z{Ù†B ¨À‡·íA?̓9¨„&Þ¯žg¯ƒQÞl6…²t1£ Â[€DÕÙ°| $–,㞸. yj;ˆO<<¡u«"Vù!C‡ÛÆî7+cÌ.™ ÔHý‡H¯F'®¯lšöÝ) I³…ÕŽ"î…µÄÛ¨¿w ù££ÍŠ(É¥ØKhùŸaP{‹jáÁQ.’OHÔÃñ<ˆìŽ¥>Þ¤0á¸mïÜ„ÏuìTyí"›Æ£]C;žë­kXÿ›¤ÿOðÿ±5è
endobj
1385 0 obj <<
/Type /Font
@@ -13894,14 +13891,14 @@ endobj
/FirstChar 35
/LastChar 122
/Widths 2830 0 R
-/BaseFont /HSBKPD+NimbusMonL-BoldObli
+/BaseFont /YIUPMF+NimbusMonL-BoldObli
/FontDescriptor 1383 0 R
>> endobj
1383 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /HSBKPD+NimbusMonL-BoldObli
+/FontName /YIUPMF+NimbusMonL-BoldObli
/ItalicAngle -12
/StemV 103
/XHeight 439
@@ -13917,50 +13914,49 @@ endobj
/Length1 1608
/Length2 7939
/Length3 532
-/Length 8790
+/Length 8789
/Filter /FlateDecode
>>
stream
-xÚívgPTݶ-HPPÉIhrM‘œirNlèZº›,Q@¢ 9G%#A2HÎ9ƒäŒd âC¿{ιõ½óëÞóëÕÛU»j¯9çsÌ9æZµY´tyd K¨"ÂÍäåЀÙ[:£tÁj<²8pk&`a‘CBÁhÂAŒ†>B!
- ³‚:  
-uû €¡
- sDn³jÉ+þÅm Fÿ΂ݺëÛHÂÊùwI|·0·^4怠¡nèß¹,¡
-a%ð21% ]F‘Ñ5 ÿ¼­ˆÕè˜÷Iï}¶ïGD³Obð²hÑ‹ëÒ@ÞÊ¡g7uî“;Ž?×U87zZÈálÍñЃ,Z/&ŽÖìG ¬ "\þ|æy„I»†áž‡jKØ&Oø 6V´uÌs¯ï>jDâ~çðerÉö%e>w$ò¶J¨ˆ$k|X‰A\–³³Ëóõû9[GowWgó1Në: Wz$>‹˜ 6!k˜¯S:”‰~‘g„e.0¦ãclKP«>»àÂÌ1yÕ’ Àd ÿS¡Õ¬çn9´éçï©|e>·'ëC‹›f§—ЛÙq€úYšµ«„8ë$fÚõSëÁ·RÞoÛ@*¾« ʹAÔguG…*|«eB‰;}ƒv©¢]ùßÖÒï6”‡yÛ}sx/Gj¢T«$Jñ£•H âQ–®‹B~RlEÛ1w.ì*Çbr|¬½}$nÖ‡·Gs]> Ã?V1òx£+w¿³\õ9’e‡Ð†ŠØ¥ÍäÊv””7œœ¸äN­Ñ÷«/ùŠö.‹ú…&Ð)âá0äPùÝÚ…k¥ èé¹éÛR§ö
-^8³÷&sݱ­|&éŸî#6cÕ¯‡‹úœ‚ œEë=öÚÊÔïƒ.Œ}(pÚéc8hXÔêëeM±¸ÄÈpefI­|š
-8xÏŽo‚¹ Lœ¸
-R!ß1Âr<;Þâ$ûg2³£§Ä¯Cǥs‹©Ï¹å‹E#‡„2‰ó9[ª«eÖb äBñÇ›;qäë4‹¦y,'XÈ.ó¹^Ûû¾çm}l3S@+'éY“W[ZTç¤ay þR#ÁWeôùì¯w<Ààø!ËêHô‘ªÝ°a2Y'ŸxVc[ЃÖ̺«P‘|m÷L¨3X´•¢|FSp õ6!wˆ¥qi­ÍÖ)/)y4ž^ÉdÏ—“¦'»À+Oð+Wë³Ã/HŽõ°8³:̨%¾0€°nô™¦RºNSX)šÄ©wo¸Vá"n®¡U®uë.ýe‡°ƒ5­†âÁ„v0äÓ=Ì­²Ðµ”ž²­ÔÂtwï‡tKy…‰ ö €À›Á²Ãí/hÆnfÔÛYÏß35|\Ã)͹b€½^s$QÛ<.'DÑ
-(^‹òp߬h7š” ~Ý¢ñí‚…Ë.^,°‰ðzÈî§D€×û3ÊZú’|JRA.KÞ&[å/0õî¼2³–ÛOy«óCúÒB«e€öžt‹:¹ïäCA2µÅËV‘ÀP½'Ûz”êÅŒ~,ÁÑ’ØAkQè
-Çö7=s`[šzþáÞ•MåME÷¿€uG–h‰+÷ÜKI•9º¶Z¶ý3h#`+]¥J¢æ·šõ¬¥¸¦4 G‹Æä5ÍɦŸñ ¨/„~ 2…°ëIš%ƒR*µÈ¹ï¥‚CSž[çm•&ê,œ^ˆ®ül™ò‰0¼3F£!âù2°gáȺÝYzñ‚Ä^˜X@°æ¨Í›#díQ¿¸ ˜ßÈ?'ty…Š,ÿˆbx_¸Âæ••ÌDC«½¬}F0j|{¯Õ\þ˜ßsžù¬—}8$QŒáinúAµ$o<½öR•eµ#"Uòe¥rÞ‰Kÿ ñÃ=Û`GS"“H®bʘ#6W?³æ—å‰ÖÎ+ëíø ·¯ô– -ÝI{ˆQeY:BøÂb¢÷‘>:_/!€ÐéË@íáÞÑȬýu¢‡3èµ+òLn¯óqŠq`Uúmò'ÄaeG-
-óŠW¯C鶰€®ô
-„©ÊìiÝÇ.h™³ 6'¢È6
-VÍŠ2Û71sz8o+VPÚ^­M£õ‚¨‰J®ÆÕe/ýéœGÎ>Î
-òÎqE„¹¯øç*+nû…Æ—²;OeŸöY:«*š“ïgœò'\Ý7"µkûl‡ÉqèËÑÌ'ð9‘Tgeix¿qVV^­ÐÅnOiêlÄ&Àh1ÿ¥n† Šo-R’È!î±~x“ýè‘·ÞøyoÏõÏ4íÙ{¦Å\4X ²‰¤÷•Ï´±ÝÈ/åµ½¸N%{’;4u)Ç!‹=íè¡ç"Â3¬¶Ðœš®`¬õ<xö¡Øà
- 1±#-@ëÓóÄ<ì¾âæ©)[‰Ø“9QuC—̨é-ûFæÉ€?›ëþYû|96£àj’òÖåUNºnî…XÓ°‰Ä·ÏGÑÅk'uÁêFd×É>0¼f»åæ6ç -#vƒl|¯göÕšŽùí:qÄÔyN¿3-y„¨Å–UÇâ${Læ6¬ÆÚRøÉ™¼ó¥?"áZ¾þþË\øQ>È” §{õîû7l]
-™mÜtW?e‡ÌŠØÇRXÝŸ¶« qÐNøb%2t)( æß-Ö§9¢A¸‰Éš2žŠŸ±;Njf:¯ƒ9NÃïÊœT)š…ùïš=l“'v!V‚»ú7?êÑš\“Äk=ò†º¦ù^š-2~ë‰Uïs‘.»o¨ËªüaMfsÍ%W2b+¯ø¾
-(Ì°?ø6|Kú‘œ™µÁ86<6zlDÌ)®VésF¢¹¦GfôZ¸èøJü P!HlÆ<¼H›8ºîeg©õ/¶D-¾ú‰¤÷ ã›UêYœqáÕ±Ç øË
-*Ïp›Â¤A wÓ'v•ù7Vš4¶¨ž+jÙÚN9dB<o¬L©oÝÌ#%p áÔn³òäAH41ס tö. Zm½0ë¼r˜$‰®XrJJ&¼è ¢—Ë™¯`¾eM¹»3µ¤¯û_ê÷ðö}d½)(A=À_D‰ÔôÛòbN¿Ø}® ÆÿÄ5,¢Óc9A7!ô{•K*J^ŸÀ~™j'÷%U­Y Ü{ñ•Ý‡å]ä"Lžïxiå2¬Ž/ïb…U¸ƒjå×)4§"ò§ªÓ
-?Uôü¬Ë÷
-žä²5Äõv!.[7$›\ÉÌù ö)%Ü-DÇ9øÓ\¯äͯø7F Oâ×ÏžÅÚÅ8i“£òÅf&\†
--â×6™…ÈXÓØø,ï¾ÆÇ„Ék}YÆð”êA±<‘‹?qâoYêLÁoȯü¸"‚˜‰œñµŠýVw$€ÇÞ5-M¶Ãú&š{ ŸQ}2Ñ»5ãùáö¶xĽuéBÿ;¤»¥ªïÕ\rþhüæx¿Í?‚^iºÇ&‹ ÕCžËQµb\¸THüe%¤¼®QÕE²üO¥}¿:y´ÀJ ÛAHù åP¤-´á€[kNÔ/ˆ<Í©ÁEÁ‹zHÃ('¿8/ÖÈ><ï·NZN,±$íŽÝ\ë|.ʳ4
-Úu&IFlµPÈ‹˜<>ê¼çO}ö•>ݧ·ðgžF±;YuQTˆ §ÿæ‡ ¬ßôtD¤ûfP˜{s“cÞ·+J .>xi¾’²È¦{¹3Åš®Þ~—ÛãŒd@ãa‚äÄ·Ž„kï887Kp¥ôRXŠCãóÑ°áTîEQæü^w~@³ßG±¸½Kë3rÎN¡ÀK’jùÚ
-}~ÏLcÄçt>í ÔN$c÷¬¤úœ ú=nÆ©ngþõžå ÆIE^ÕÖŠ
-!dÌF æö/¨˜õpŽI^ø©Ý©²‰µ([|«Fv/f»H/>_!üËê¹ocG¥%ÅÉ s5“•ŽnÇ5¾Z‚ÏÝŸ¤±ðJ©ýšžÇÝ\UËúö¡ î[Ÿ2Êíß2û²Qx„úûs‘½¯Ø«PU XäxŠnO
-IÇäœ÷îÍóÍè v ó4ýð CihTðÞ²° ÇÒf%’2Ž
-Oyâ|g܇;Òðh¬Ù#1|éôë6Ög²›œ·UëáÇ rk_‹öw€º«¹j!:/œ*¼È_Ô¦ ¶S+³(#>û­pKÕs%ìÛø“hj£ê·ßN
-\O–ˆuõ–.½½h8¤Ëµ[%-n&í—o{Ø,OJ‹ä k ƒ$4Œsz!¼¢‡bÃ7Ú‡vçˆemÝÊ5Hcý™’W¤uÊTãO³‰³7 †³Ê;B¥È†“ŸÌõáõý"¡dËUŒtúÀóñ[í¹0!Ã<Ú—(U½›È>ä9íÁ;˜Ö€7¤ÊÞ­:À¤Õ²y £7À­ÔÁT}I”C¶–‘Qîì¹È\·ÞWõ3›Ã½ZÆ™&ÝhÄlÊÞK\o`~~çt!•†ó(à'¤§tq Y†¶bëÑ4r3ÛDZëòa[ö_ó> (ÁÔE7 bO;8<0¹8Ô4;Õª>*ËVëu?+«h–H½~šq»x/·}$ãºÊá+¡V8|ýƒ!Ù‘`Ç©³Mò×ÎàåÇøQÝ'ï³eò^JYõžâ7:¯?¾kñs”ÛqWç®fa Š’Œý4>§ ÇZ'úy]Ü;_GdRÁú È•†bn¥æf§çƒ\Qù²1³7›
-3ú·<Ȉ› h¥=¯`·C-ãZ*¾•‘Û3ØJ`+>…p˜;w cÁ¿ù\åµdf؆:îÉVÂÊ£QÏ
-Ló¶Ú±{i C¤üD8þúñ7.4ß=£Nƒ~ØA·™Y¼ŸíQíì
-;dÕÚÞùYÌú.ëÅ3¬m
-Œ·Ò'OܧZM•ÈkÚEä»óÔAøV¿F+áÖØ\7H”ÕÁ¬–ÞÙ‹s±
-A7µ¢¿ï?å151"yUF„I×íòÏfwÊ*Q;1WG¬ä‡üÖWG9
-dòú“¢Ï¡ã6–±hò¶þ|áç RÖ/?‚jïVÈttf=]«­mîXCh-»E²`?|(“躃Øçw¹©”]“RÉÆè·¸¿½ú‚[O÷^Üä'^m[ñ™4]aÄ‘þÖ9ö5QºÄ”ÔbcÅ‘n"¾ÿ]½GF&<ç ¤3dRµ°%‘ ”Ê.Óµ­ÉÂÆWòQmw)‡GÒDa™e¹ÔÖlNA|¦Z–ýÒ½‹Lýƒ÷ÛE}b\ÝîL» &épƒ·gr[‹÷šßžz÷ìòdÈÄ º‚íüë£-« ‡Z‹ÎîpnöŒ´Ð|˨) 2xqô¦S=w¶Æß jIž6a›6Ä.OSy]ÆñþS§oa¶Ô«ˆÌ±â£Š51r»%ob2üpȈEÐ&â§ÜÈÕöIòÊp¤ì‚è¯ôV²í­NæçiX¯Ô²»Í æá‡A$­Ñe$D{òD¾Ÿû‡‡';,Ög¦•k\Ü Gái3¼q¸Qþ¥L
-Xæ"¢Úbò3¸ý]ub7¾‚夨õù-ÅsÅK>ˆ<– !!’=j‰Á bê÷](åÏi·t9ù
-KÆ.Ha½+-Ε[åòÿÑÒñx Ciif|-is \‹¦ÿ€|6±m¦ÍñŠ =“1ä`K^!y9ÊÌßIjX÷žXHO~ûLýì«œÈF7v—")òï@µW™[zb™®ÕÚ4“*ý÷L´ªŽœ0–¯z$¹Š/‚„à{>UiO³ýE©²5êæ÷”t¦=Ä;î
-€¯À4?œt€sTeù›!4J%h¹‰¸—ŽQÏ:µ¿yÓ´(kY¸³½M>X‹– sôqÀirÐÀ³8!ÂùÕÏS€¤Sì$óÅ­$R÷Ñ•amPÍ$?çÔg•ËŸ˜Vd[ƒ1ËiÇO°<Ø_¥¶%yÐœáZ.›eˆô¤Xþ*Iò{()õŠ_¼¾êW÷ºÛ £x}kã¾ããVÔ³Ö–I͵'EÜöGi‚õÂV;áåÏ¿Ø×6™+Ý$Éž {ýTö"1Ðœä5v-V$ÍlÂÞ¯«ª›bݦ´³ã)º§ÊoS6”hLGñ…îÇ,v%¹u©I~®]%¾)Ñ}ú‚¸2¸  âoJ°]^¯ÿRÓ HmØ;Âúž
-8>Ô
-²©
-3ã½+ôÞÊ•÷aˆlª Ïn×–OBw:ëÌDöƒ^ቃ€¸Rn¹šd¢¯ÅÓò;SÓtd®ÌA~z M“èRVt}õÚ+'˜ †4~}µ÷°}³íÚš[T:áµ%|Å’Q"èXê³ÚÎÝ9"áòç0Tw³È‹d·¿Pô@åÉ@ÅìÓEâòxOæî¹à åÏIXUb_4²üQ ¨:ù©^\õ47ãÇU¸µ& ²ðc óŒA«`á0Ôýµ˜—™žÌ‘¥ˆß·%¢y†.Sz¾M²hàž·ãý°óg #$SÿçÅOÁëÏàBø[yã¦5åž Šq(OÜâƒL#‘'Þ/ãØ«*ûü©¯ð5X1œæ)ol×Ós[2L&³d´/øÿ—ÁÿøÀ
-#Ñ{0ÒŽàÿ
+xÚívgPTݶ-HPPÉ™&çÐÉ™–œƒº–††î&K(HÎQÉH ’sÎ 9#$ˆ€øÐïžsn}ïüº÷üzõvÕ®ÚkιÆsŽ¹VmVF-]^Yª„p@óùž4`ö–Î(]°ƒ¯ÜEXYå‘P0†pP
+G8ÚCзÿãºP(
+²BÂÑ€Û¬Z
+JñDÛ‚Ñ¿s£`·n
+œ6B†NšVµúz9S,nq2BÙYÒ_+Ÿ¦Þsà›`n'.@b%iî§ZüwœJ¯îsúð {^¥’¸úCHW —Z “èŒÁv,!ieí1«¥O˜–©í[oF‹£‡y‚öƒÛ¢Aùx@”SÜeMIƒZ|
+úˆJý€•<.%sõ JŽÅ?ANïÝy¯2}oÁ[+B”z1’áž ‚`Ïtf¶¢tÈwŒ°ÏŽ·xÀ©þ™Ììè)‰ë{çqéœÅâêsn¹ÁâÑÈ!áLâ|®Å–êjÙµXùPüðáæN…:ÍâŸiËÉ#V
+.¡Þ&ä± .­µÙ:á%%¯ÆƒÀ+Ùì£àrÒôdxå ~åj}vøñÅ
+E“õî ÷*\ÔíÀ5´Êµ³nÝ¥¿ìv°¦Õ°“@<˜ÐÀÁæ„|º‡¹Uº–ÒSCö¡•Z„þîýÐni¯0q¡~‘
+5¿Õ¬g-Í=¥á`8Z4~  iN6ý”@}!ôk °)„COÊ,”úP¹EÞ}/šòÜ:o«4QßФháôBlågË”O„á1 QÏ—= GÖíÎ2‹$ö"Ä‚B5GmÞœ!kÊ€ÅÁFþ9¡Ë+TdùGô“Àû"6®ld&Zíeí{4BQãÛ£x­æ
+Çžó,g½Ã!‰âŒOòpÓª¥øℱ—ê¨,«镨’/+U²ðN\ú_øHîÙ;š2™´@r•zPÆœ±¹ú™5¿,Oì°v^=³ŽÐŽrûÊ`ÉØÒd±‡U”£'„/,&z‰â£óõ¾ Ôá­ÌÚ_'z8ƒ^»‚!OUáö:§˜VeÞö¨|BVvÔ0ó+·–0ûÖÓ¶Ú,V¿š J,â^´S´+kNï¯s¥8¡ËÐ f´“[„wO¹¹Ržáè.ÁFFM„l-¿?®f$i½*Z§g´É-@$ˆð‰´…G©3ªV;eW„ôÆwœÃðÇkÝüÓï«Ï0¾B¸9lZàâèàø3 x?Üßj¼¼ß· E=_a^ñêu(ýv
+-gھ蟖¤§I„²kZKéä”ð
+›û,¥ñ­º“Ûý ÙU@žXÒÖrÝ}Â;´w`D­.à™Œ«ž¥ÅÇ3\™»ølð­…Ébñƒ¥‚U³¢ÌöMÌœÞÎÛJ”…¶WkÓhý j¢’«qµD¹Kz瑳³B|óG\Caî+þ¹*ÊÛ~¡ñ¥ÎGÙ§}–ΪJæÄäû§ W÷HíÚ>ÛÀaòœúò4ó üN$ÕYYšžÇï_œ••W+vqƒÛSš:± 0ZÌ©„›a‚â[‹”%sˆ{¬Þd?zä­7~ÞÛsý3M{öži17ÍÖ‚\"éýGeã3mì7
+Kygm/®SÉçÍÄ\ÊqÈbO;z¸‰ð «-4'¤§€+k=ž~(6¸hLìÈÒúô<6»¯´yjÊ^"þxNLÝ°Ç%3jz˾‘e2 ÃÏfĺEÎ>_žÝ(¸š¤²uy•“®ƒ›{!Þ4l"ùíóQtñÚIÝE°ºÙu² ¯‡Ån¹¹ÄùÂGˈÃÄ ›
+?y“w¾ G$ÜË×ß™‹<Ê™2ãtÏ¢Þ}ÿ†­ @´yIGbc‚²Kê·HŸ|ëÖ x°–Ñx½Ùþ2—€_M”+=‘Û~d˜„“•/tŸ†ò³vLFd*°Ä¾ù±b«&} ¢¥çË/à¥2 ?‘©"B¾,|BÊ1û楛æŽÈkf}°¿Åø«þŒ„g“IÆÞyã8‚© .ͲmhïF`”ÜN‚”ƺʨjÊéž=wþ¼æuußÆ?ÀTÓˆ½~.%º·2¢_½¥’()“5”ôe-èÍÜhxlšŒS+é\d®ýÞ¢Ïd=ºñbfýFÇO¹!3‚"Ž±6÷'íjCœ´¾X‰Œ]Š*ÅÂBùwK‡õiŽ€hn"d²¦…Œ·âg쎓š™Îë`ÎÓp¦»²'UJfaþ»f[Ĉ]ˆ•á®þÍz´&—À$ñZ¼¡®i¾—fG‹LßÇzbÕû\dÊÅï격|X“Ý\sÉ•ŠØÊ+¾ÿ fÜŸ|>„%ýHÎÌÚ`=6"æ’P«ô9#Ñ\ Ó#3z-Rô|%ñ¨$¾Gc^¤‹M]÷²³Ôú{'¢_ýDÊû1éÍ*õ,θÈêÝþ²â³Gƒg¸LMa2B Æ»é»*+M[TÏ•´lm§2!ž7V¦Ôˆ·nŠæ‘’¸†pj7ŒÙ>ò"$›XêÐ:{—­¶^˜u^9Ì’„‡DW¬9%%^ ÑËå,W0ß²¦ÜÝ™ZÒ×ý/õ{øúÆ>²Ý” à/"ŽDkúmù0§_ì>WTxìÑéƹœ ‹›
+zƒ½Ê-%¯Oà¸L5“‡û’ªV,î½øÊáÃz‡>ò&ïw¼´rY6Ç—ÆJwŽGƒ ±Â*ÜA5ƒ
+ëšSùSÕi…Ÿ*z~Öå{OrÛÎâ¿z»—­’M®læ|Pû„î"‡ãüi®WêæˆOâ›Ð'ñëgÏbíbœŒÉQùb³ 3.ã…ñk›ÌBd¬ilüÖw_ãcÂŒ´¾,ã Ž
+¢&tG÷ü©Ï¾2¤ûôþÌÓ(v'«.Š
+òôÿÑü0íû¾€Žˆtß
+sožbrÌûvE ²ÁÅ/ÍWRÙu/w¦ØÒÕÛïòxœ‘ h<LšøÖ‘píÇâa ®”Y
+Kqh|>6œÊ³(æÀ’ßë.
+ a‰ñµoWkrŸÔgÔÅÖº›Ð˜wÜ6îÂÞN¾Ùö i± XüÐ~ýÅ´á´ÙÞVó Þ³6÷³Ý>EŽ
+‹^±Šî±nl#šñ‰65%,ç_°Oê”+µNý%Ùz¯>W7¶]•fzã}A}H›ÎÀSÝÀ~ƒQrNÉ)îs¬þr]Lf¸á“
+<á¼ØËûò Aê)¡³k¯×ývuSøGlVªs#Nu¥¬·OŠE•?.j?ø ÿ©ÓwGä“øݺ23oªkvSÛë>Ñ=¶ Ðz¸^"èÁ8¡-òo*N¡žº3Xl‰eÓk‹þœ %¿_>
+Ý‘o•~~æHj¦ä=ß‚§§Øç÷üÁ4fA|Nç“ž@íD2ÏJªÏ ªßãfœêvæ_ïùQÎ`œTäUí`­Ø@–¶Y™i"Çø¡Ñ=¸M×g•Õ´1š:Uпƒfèò©ü¢hçˆ Šl`‡N¤·èç«s¼„klbhL˜:g6(皊…KQ}ÈÞ]Ÿjƒ+ÅÁ7„,IL$¥<³ Àãyª1ÕÓ¬^Ubó¥s¼=õ¤¯æ-_ãº"/·ÒøìX¸¶å¤)"<XŠxÜ*%Å•€,Kß‹?¯‘¬’ÿ„Ç#8,Gi§ñ
+D¯°4Õ4øO‰h§ª‚Ã*÷)É›%ŠØb~ø-GÈs“I»øNà9-ŽSqÈÓºD {Ú½S\pzùÃuyjD¡«†k!ÈÅ¡ùð4yªQemˆÿÉX‡Fiomß­¿»jÑÄŒŸ*m—­´Ã”8Fèc…ךÆàAÔÉÜî°’Z¼5è篫a¸”dñF~²á)ž!“F³ò±Ëâ7£gªØjB}X€‰/‘'™“š"ZtÍCöEqË’¼R7ö¿Õð®ÒÂö@.)¨F…t ‘½uŸ¬®%Qò«§µEp˜Çd€™ÑÛkï#ÝýFø‡‰0A³KE*3Æ€F ‚é®0BÖLqÄ`nÿ‚Š%P爉䅟Ú*›X‹²Å·jÔi÷b¶‹ôRáó"¿¬žû6vTZRœÌ°T3 Séèv\ã«%øÜýI ¯”Þ¯é¡ëæ®ZÖ·mpßú”Qn?ø&Å—Â#Ôߟ›ì}ÅÀ^í° ª"Á"çt{RH:†×¼woŽ¸ÏhFO°™§éç€oÊC£B÷~”…
+ sœçã¸!q?Oƒ¶•G¯îW̳ŒÔ)HænÉøoÌF–A£Êå{Ç‘æä8£jýäUu;W+Aà¢ïóÇ;X;{¥ð”ÇÎwÆ}x" Æš=×N¿nc}& ±Éy[µ~œ ¿öµh¨»š«¢³ñ©"Ì‹üEmÊ`;µ
+Lj
+â³ß
+Ì Q=w¾?‰¦6ª~ûá¤àõd‰xW/aéÒÛ‹†Cú\»UÒâàfÒ~…¶‡Í
+¤´HNú2HBÃ8—GÂ+zq(6|£}h`wŽXn‘ÉÖ­\ƒd0ÖŸ9yEúQ§lõ8þ4»G“‘Èh(1›‚#Tšl8ùñ\^ß/Jö\¥H§¼¿Õž‹r2Σ}‰RÕ»Y€|áCžÓ|ƒi xCªݪÌZ-›Çð0ÜJLÕ—D9dkùåΞ‹üÀu !!‘}U?³9Ü«eŒiÒF̦ì½Äõ–çwNRi¸Ž~ÑqÂzÊ—eh )¶M# ±M¤µ.?¶%aÿ5ßóÀ€L]t“ö´ƒÓÈÙ‹CM³S­ê£²lµ^÷³²ÚfÉÔë'7±‹÷bqÛG2®K œ¾’j…Ã×?“ vœ:Û¤~í ^~ŒÓ}ü>[6ï¥Ô‘Uïi!~£óú“á{±±?Gywuîj>S–µ¿ƒÆçò8CëD?¯‹{ÇéëˆLŠ"X?¹ÒPÌ­ÔÜìô|/*_6fñfw
+=ÂRŸó>ÍjóðÔv)Ùyÿ¹[G¼Ü5)­…ðwÃä¼Ar«òqsV
+…üЦ^o{<´p–…p¤(„¬Ý¡òž#%
+o– ›.%§ª¿ƒàêÕÎ*4Z®÷„&§xás=G‡ü<ṼǕoÜRŠÂò7ð|lä”güâ(l€Â(Ù‘(8Å|)ÿ¿wÆô/þQL™ uG«ØâÐÏœÎÎ~N*{cÀt(û6HÝB=viˆÀ%ŒÐ/ÌÐà>^P䶊ŧ¡¯ÕrȈ=ÂÆé2¾ldÔD4“kêœÐw§3\Wd†@$B}vÓmwÝK&à#ýÁ?¡e6êœÿ¸¥*IÖÔ*Àií¨²Q„É¿åAFÜd@+íy‡íj¡×Ré­¬üž±àV{ñ)„ÓÜy¸K þÍç*ï¬%3Ã6ÄÐqO®Vîz
+Pdž·ÕŽÝKcì" ÂñקÃ߸Ð|÷”: úaAÞffñ~þµGµ³+ìMk{çg1Û»tîO±¶)0ÞÊœ<vŸj5Uq"¯}h‘ïÎ[ ã^ý­ŒwXcsÝX YVW³Zxg/ÁÍ& YÜÔŠþ6¾ÿ„×ÔĈäUu&S·+0›Ý)§LI4îÄR°vò[_•(ÉëOJ¼‡ŽÛXÄbÉÛú󅟃HÙ¾üª½[!+ØÑ™õd­¶¶¹c ¡µìÉŠaüð L²ëb_Àå¦RnMúY6F¿ÅýíÕ<úx*¸÷â&?ñiÛJÌ¤éŠ Žô·Î±¯‰Ò%§¤+Ž pñýïê=Ú02á=o !“®…-‰NØ ží2_Ûš,l|%ÕvW”v¨q$M1‘]–OmÍöèÂg®eÝ/Ý»ÈÔß1x±]Ô'ÎÝíÎ<± úa’'0x{&¿µx¯ùí©wÏ.o†l¬AÁ +Øο>Ú²Ê.ÔZlvp‡k³g¤…æ[FMIÁ‹£÷0ê¹³ÕvœøæhPKò´ ûäx´!vyÚ³×eœï?uúfK¿ŠÈ+>ªX'·[ò&&ÇŒÈSm"~Ê\mŸ$¯ GÊ-ˆýJo%ÛÞêdyž†õJ-»Û¼`~DÒ]FB´§Aäû¹xx²Ãò`}fZ%±ÆÈr™6³Á‡å_Êf
+í&2PƒóuíIŸ[^|uÊàïíŽl«0x¦ŸøpÙ(ÈÅ%mé…ÆÃð½/¯ ±sqØo
+ŠÉËQfþNÒúðÄCzòÛgêg_åD6ºq¸I“ª¸ÊFØ2Ëv­Ö¦™˜¤Pé¿g¦Uu䂱~Õ#ÉUz$¼
+ÇHÄ•vËÕ$«x-‘–ß™š¦#{eöòÓ`ÐhšDŸâ°º ë«×^9ÁB0¤ñ뫽‡í»˜m×ÖÜ¢Ò ¯-‘+ÖŒ!ÇBPŸÕvî¦è ·?§¡ºƒ¼E^$‡ý…’*O*n˜.—Çw2wÏ5N¨°xNÂø,†éõG#ËÕ€ª“ŸêÅUOr3~\Å[kÒ¸! 9×0ϵ
+CÝ_‹{™éÉYŠúð["šgì2eàß$‹îy;Þ;Ú
+_ƒ ÃižòÆv==·%!Ãd2KVûBàùü€ÿ'
endobj
1369 0 obj <<
/Type /Font
@@ -13969,14 +13965,14 @@ endobj
/FirstChar 36
/LastChar 121
/Widths 2831 0 R
-/BaseFont /NJLCSF+NimbusSanL-Bold
+/BaseFont /IFSUVN+NimbusSanL-Bold
/FontDescriptor 1367 0 R
>> endobj
1367 0 obj <<
/Ascent 722
/CapHeight 722
/Descent -217
-/FontName /NJLCSF+NimbusSanL-Bold
+/FontName /IFSUVN+NimbusSanL-Bold
/ItalicAngle 0
/StemV 141
/XHeight 532
@@ -14000,7 +13996,7 @@ xÚízU\\kö%‚»înA‚»»;PHî®!x 8 îîîîîÁƒ<$ýý¿ÝÓ·{žæm~Sõp¾o­}ÖÞ{}ûœz)
U 1Kˆ9Pveá`e
„8
l)qøCÀùÏ$AÎ@‹×¦¼Øþî›âöùØ
-¶ü³%K7G6-0ÈÉ ('ù?Á¯ò¿0k +€‡“Ÿ
+¶ü³%K7G6-0ÈÉ ('ù?Á¯ò¿0k +€‡“Ÿ
qýñ$X8x8þÆiÚ€,ìÀ@—׳ø“‚-ÿ–R
l±­®¯SiælùOàÚÂÍÙùÕž?èõÞ¿öV ×@O òÊ"ÄB0Ô¶6´ý¡ZŒØƒe’«Wëî·97rŒ=ô7V˜^e»bîÜÛwŸ³$UÇl„+ `•`¡Ã㉥bø<ìøÅ;X°°Ã°`d#‰NYë„”P/駯Øûˆ¢ R¾Kx Ê^P”ÝéÑKL`i„CpHôœTà‰ÉÊò+TŽøñž‚ÏUdíýÕàçG:%Ùmƒ#RPä»géäõQOï±+:°LûÅÑxæÃe]k/͉õJø:'º8ŸlJÛ¬žªGóy乌טòQK6‡ Ñ+íLvþ˜ð‰Å16(ÎñkX„Éßš†+…¨pœº–QÄ´Ôß^î)RêÔ[W,,¨Þ‘õÉ»ãp%n×)iuGYÖǚπñZ¬Õˆv4¹›îµ:®uľõ­«GZýÖ:„<=Ÿ@‡ª˜yÝ—l:GBÎÚOAs½À:rÁUuiw™ª¨,w‘ʽVç±ÌwZ6ç]ºš½žWßÆe ͹„縤h£öÙ8âØYWÑtÔ¸c}ü5æ?°5&Jt”ùËÞ¨—OÉËÛòÁHÌîZ‚pr_‘\OœÅ±„4šß²~òIÝbâí‡y"ûÊ“¬4òŽZ¦¿;‚Àždz™RÑ t[^cíÆ=ðàæ÷Ÿ‘øÜÏ•ä =X}§^ÍóâÓÌ:Ë;}ß %[µ, ýÉЛ>µÞܱ^4AXç%ä#¬wÛ±W:eÅNã¥S¶SÈ“H f÷ÖϦŠKuP ·}.óF!Ö§•"k¯“/ågö«ÉФÁ
 ê2³Õ°"Ý ÝkÇÃñJ
@@ -14030,7 +14026,7 @@ g~nM"up^ÅÃÓíÓêè” ,{!5ÿ8¿UËn
Ðú‡ä9¬PjK¢!zóÙ!ñHaŸ´Þãïÿ¼£êOß,?€úVÐz¾’¢Œ¤ñ¸gTW-Š«XÑèƒðN¨PÊ94X}chAc~‡^ÅûI8Y½-°Ji ¾á.˜<®¯ÇIâšo,¦ÙNì¥#ÊͽÊûÊàùk¤lùnýh2³ÒþÝu<Aíâ$FŒþ¦ÏD!þ:ƒêj%FDõŠ‚QúPÀ„´èÖ#מbG¡³°ï\ùe%mËf›‘g'CÕ䦨 Ñ)Ê$‰‡x`A%*›H«¶#Ì'å;…p‘ûÚ9ß/iÔ¤N…ï#‰yàE×Óz˜8ƒÄÛ¼êpXe€N®Ñ †µ§r%ç˜û7¯¼Çé&ï`Foùª’׬ó›}tW™ë',4Ó‘õÊ™‘8‘À`Z*\-šðú[Ü‚JåÕ®{i!Ux„T û•ˆ¼‘‡ômÙ85û)îÛ¼e¢ý¾KµÔÌ;¨žè{ÜÈ¡¾è{´Ñe¼Žò»~!–±l˜×R¡^n`žTG?ÂŽÎCMž—û[©s¬ ;ZWÀá¤ì`±3iSw-iUÉCW
ÚVâ>xj„E‹ŒwêIo³}‚üH—ã
Örú ãkÑnT‚e¿S< ¢x K»«- 1…‹54ËÆa«÷-ÕÜ@ÚUóªîÐsL/}8ÀѶ›Ñl¡ò‰ó9È+ß©O¹È¨qD‹£RKˆ7hëÀûÚë,l³Ž[‹x³#‹³ÆÒ4
-¶ÿÚ®½–ZJS•ñ~´õÓp+S!¨yWC6Æjy.Lä“X5­ ^g˜Â£˜ýÿòƒüÿþŸ°°š9»BÌœí}œ.®ç?þ€‡ü¿
+¶ÿÚ®½–ZJS•ñ~´õÓp+S!¨yWC6Æjy.Lä“X5­ ^g˜Â£˜ýÿòƒüÿþŸ°°š9»BÌœí}œ.®ç?þ€‡ü¿
endobj
1366 0 obj <<
/Type /Font
@@ -14039,14 +14035,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2832 0 R
-/BaseFont /RBGZYO+NimbusSanL-Regu
+/BaseFont /GREUDF+NimbusSanL-Regu
/FontDescriptor 1364 0 R
>> endobj
1364 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /RBGZYO+NimbusSanL-Regu
+/FontName /GREUDF+NimbusSanL-Regu
/ItalicAngle 0
/StemV 85
/XHeight 523
@@ -14069,58 +14065,56 @@ stream
xÚíueTœí’-îîNãîîNÐ ÁÝ¡±†Æàî‚[ ¸$¸Cp‚»{pw¸|ß™™3ëÜù53¿îº½V÷zŸÚU»ªž]o5 …ê' ™¥,ÈÑ•…ƒ•]ðè`ææ¢ rTbQ·´vS1³Þ$)°¥©+ä(mêj)ж´
 ×T×f`bbþ§å/€™×¿#ï‘.@kG
˜`KkS°…½¥‹Ë;Í;÷_·óÏ>ÿ©{S''{¯¿£A{ýG @WK{+V$Î÷œæ®ï¹­ŽHl ‹¼£ÀÁþ»…›Ó¿cî–à¿/ˆþ¯™ax/ÂÔähï°°´Bbûr}O  ÿï©Ìú¿'òÿ‚Äÿ+ÿ¯Èû?÷_5úO/ñÿô}þWjY7{û¦ïð%xß2 €à¯=co
-üµkœÝ,ÿ¯0S ½×ø¯ŽÚ–ÿ(ößøþ–w5}¿ GëwaX88YÙÿaºÈ=--T®æ6
-zôÙYÙÙ9
-G–f1–A‰°9áZm|vjeÅNÖž^X¥-‚¤a‘7°w+}÷ôqâ¡—vqžÈ• )
-šQk¥§”æLpÌž8;¿+é‰?ÝÁÂä‹Ì© 'üöîÇX»X•¢¢­ï ,TË‹¼v©°¢4)a½%ˆµT— é"ÕéHRDæÜa÷?}M»‚“‡ÝÚ ÖÃL—ÑÑR°¡Ïò5å7…ø^{E®êÄ~užv dR ÌÌU\.¬}¶`!Ø•[üˆÅ=%Ѹ3m4©$¢t¬ »Ôñì_È ëB«{J‰ƒÏU—¦®NBÈzN¸œ
-wôr®rl`¡©.Ê*Q\ÔâŸ7:’Y’µ›q:¾/-G›1Âèù#ëÀ•(¥jå 0©{ôšª_Ú’gÅ|
-l»>ÏÊÂôóí›QöMóð6$H3–k Aãm5Šk‰t}1»ü–’¦ÈdcÂ’txv³~
-kÉ8y!®løÅ‘Ðdª$ÂvQH?"ËŠfìSN2óõ%­0ºÖ÷fÜKF^N,G;¦‰K:ÄÇ’Çv¶/Á,¨*¶¥s‘ÆWùUD•M½p‰:
-¦¢‘H†©~J'O=é“«=/èWñ³<]º&r©õ\a:áwÎúÒ§/„YÛP˜8áiFOýßÓ"`e di¸ÏpzOŽãªÏsekrýv~›D…0!4*^¼C;† M˺Æô¤ü~ᘹu¸±7`èó3^r9Æpáóvýˆ±'™Ósóõx+I'|²1¨®®Érò*?+”0½©ÈýñÛžYL¡ú¥}ѵÒȼjW.½dfÛHû ~“õ=~# ÆR•ãÄÃR{±ˆÀTèq£ÝáÚ g *¯<©
-OYS0Xµm¡„sˆÅ»ŠC&?ÐEƒUtÚ¾BiÑþrDm–0;{¼ADwm;€N5žz bÀLˆmª=° ÄÅÁiuѧ‡Ž£Ÿ=^r)ê¥Îý³w•M'ƒ"ÀÈû  €™š>‰,(víkâüsÎ\æˆ<}z‘eCx± 朮äyXé쳈
->‘sB+)±°¦pšô(;¤v“–±eMÎE¢Ä~.¶áC¿zØ“2ûgÞëiIoÒ‹ÑÇ2Aò´{!±d:X\Âjá´…¦0ibb¬¯‡Îi8½ÝIç9m7™"A9;‘G勇¨Z?qq3:,´ŒwyÍ%ɱµø(­M¸0l
-GTtл¾ïGÃ9ˆ/¹MÈH£F±ŠËûÝaÎŒÄ7­såL¤Q°=þæ—PfšÇŒªfdjœ_Œ“‹ÂYõ§iwV"œQ0XáRyöÑÞah!e5Ŷ'Ê^”¼ŠV­Ȉæ¡Î=±L>ŽåÛËê =_ϧHUáï+"W-6 „ƒÕc’)õ””ãˆWaÌiÝÝÃì}¤2©ëe§c tMÐsÛ#&Ix²Ñ Z ªÚÚ™O¹¹JÍMç…e=WCŸ£T*bå4ÈËü_–­3š)¹á'†8Ý­„›HÖã\Ÿ$`}[ŸçÅ5Óyô©Ó¸7Ú¹4ÕÃýÙL;N5–œ§ã<G¢bŒPfÚQÁ§”`ÿðµÃó…a”x¬¡!²0HQ7ÜŸKEô–nŠS‡¦OƒÉ"n7™£8S£»xuìkeñ(¬ç{ŒÝ5{±ç.i÷?Ðd¾“دèñýÐ_nm×q€=ŠLîV5¥­ò5æeh;ö|éõ ­Ù¨ÏøÖ -¦½(­£*LˆçÏ׋æø¦‡õv[=†q;æú߃} .~à¶Oš«Ek.}Áqá¦|e˜íK¢"ïÆï¾Ü§PWÛÅ¥þ‚滆p7§¡þØ4òbEÑ&Ç_JHïÀêýÖ¿¯ õ9GâO5­‘Dz_úÞ.ÿr«ƒœþ§xäÜyåø_­Â²/#XnÒ÷ ïW˜ ò¢æ”J?‡†™ßœ¼cNµÎ~lî͆MÉ=µ‹Ðn¿Lø9“VÈ\
- ª~º`Ù`}ô•×rÜj¥Ìg‰¾öB}Š,'E/¼‰AàkÆðæ!r9KŸ.¥Ü\~B˾£ÅO¥I#
-2Ç—Ž.vŽBglI¯Ë—:€‹ËÑA
-ŒlÌLC{ ¯ÚÆ1*4þ³u«Ha1½‚6CÞ¹å ê^$•>äN™-¡OsÃÀH«iËb³—¤õOþÑ:”ZÛ„ôeŠ%,0XÈîÛ™óMas*ý¹±K–%„]¨ë ò½&é@¾¯®
-–»Ñ«¤ße+©Æv}%Dý!BÛórãÓAT^°üUé„脲ì@È7”ˆÙ~åGè]Ìd×Ä)ãÍ$ƆJ
-ÝÑ+¸TÉ)©ÔýPí)ˆ¥æÒ —–€¦Ä’ÛEÇØ:(«„>ÿ½­ïÏÚªÎòžÛê×ÓÍ6qî'z¥-ǹMîÔ-E2Á×½:åR%¿¥?5袪*ôIü¼ Fµv¾PeH`_ ÈtðÞ• ÏX@+€ÜÐÚ"03|7Ú¢®ÒÁI”W?_éq0Õk¡¼}ñ؆ƒˆK]e_cgòð ä1WêF) …‘ž¡hc¢ˆr;ºhíLÆkÜ“td20Õø±_
-üFùA³‹F-ªè+ú¡ÛïïÈPŒYº«Ã¾$m7 LŒQð(xsQ v²–DÚHϦƒû3Ø"Å·ôT¬Ò¸FAØ ‘K4öFJïlJ,*¯¼F†§ Ççêk‘}¡nªE§}NOëG|1Š¸sÒb®hÓh½KÙÔ† Ì-%Û°1ë"­m½ÚÒÁéçš2Ì·åTó­ËYÙ
-ŒeaBÂY tLü,WæFOÄ̓ÊüÕ=e[¦™ÉЭ9
-dçSk3Ä7ìj¾s>—Íw¡l×h‹Oœ\L 4€wéد¶¯„˜‹¾+Zz ùv#Æ-}ÅúlWüê+îÐo€þöh˹}ä¨s!¬íÍJl|ê³Îìx{fYý*0#Os¬tmn"ð¬¨üN^ÆÖ0V£@›_ªë²=ƒXñ¹£uö¥N`Î%„ûS¯ ÎœE¦ý‡zBá•ü»qµ[<­îqBýE¡%oDU±Sw¤˜ÀïE#-´Ÿ‘½ ¼•Œë²9mpòbû¸ú[‡yím÷ôµ¶ðüÁ;>
-Å8ÏJ;¯xð²r~ýI
-Dƒ2=7´þ\}Åf{2vÍχ{­¦óÚ!YDž©j 4íÐáÎÆ)JƒT’Ž4a ˆJÊ„Ë ãÇÖE0á/U
-ÔÕbìÔkJ~,ZLøAÒ‚´*éjô»XåÖìþQh{5íAN<ø•|é1*¶—T‰þ ¡©DM€ÚA2•qQ.©'÷ ø›§ÅðÉ>ļtÆH×8åŸ äÔ€ŒN
-ÌC=Üa·Þ±û
-zÄ}µ:á?Qãô‹ÙX£ŽS+83¦u6Dx@±[–èï‚[-^ˆâßëIÔ¸²z€Z«BP‡»‰EÍÍ»f䧓Hø#?ézߥMóÃœòÛ©Œ'oLH‹ð„ö)²^¹±à/˜²Ÿ‘¼F"xAà,e(ôk°.¼^¤Ÿd4Z&ª€&ŒÓîHgCGrZHÅ„o=ô¥’+nø›
-(«ÅQl¼™½ezžmÒ*ÁRYòþA2óé»pŒþÌÑþS•òÓvëÁâqhtøð™ô
-+{M%¡„÷É-ghѤí¸Ê~hT”«ïÛ¾¬¶ÓÙÀ,
-ɇÈ
-à ¿v’d®oì@Ç;‡cM».VÍŸÓsd\«Püˆ
-%ž‚qýJNþd=øˆ"áQß$ò7JQ‚¶KEK[†üPn#¦ÕÛ5¼Nž{î/M]²õ{oú³Š›‡M%3Ÿž~nEãFäü…Ÿ[cƒ¶º U»Mw~”–pM3’âJA©OlÍ?Yö
-éi<ÆNÉßOê.s}Ëï°–<rnCœ ÍñÎçÌ`ñì¼rG7.ÔsG_í›#6¦ðêþz"D¨:mÔÀ~±ÑBsFš?'µŒÎÛîudÆz¸n.çÚIh¶4„–*=®—FåÓü@3ÛœõÆ kÆæ]tiÿÚ1êòÍ\…óùãj+3e¿ý“a
-Œ²ñ¯„1*Ýê-§ˆu«¸²ÝñÑà¡õnËí}ÇXA×–¥ È¾J[³W™Ðžúœg(DœYT¢¨¤%•Gvç[Žbª±³ú>|Í}vk´åÙeñ¹Ÿó\\Žã¹Wúö°? ‰§ºùâwDS~18¤”ÒÝÙ>
-üà¿#pîpÄ—°¬–s…¶’¸ky¸Ê£³»šzÚ ]Zî$sŸpÿì¯vUý­'tŽ¦c“è1B¤#ìÖ¬K¶Èö8̲©McÀG¬ò²èÆÙ=ÖD´fKßy2Ô ×l=kMuâ˪ÉYÔQûQi8ñr>Ãħû™†]­ëóõšãâà&óP€;„rW¨z]t}B ã깬>GûÑ[qCÝsTE-f+Jy:#ȺÊ'a ¹ø1VŸ8Ê‘°èÙGPòµ!"Š‡Ýw§0Ãv¨3‰Ìäþ„Ã=÷ã[i<:}dÈÖ!9?›:ôrj775b“2î«Ò+(W{Sù§‡Ð…Äe¯=áz1O¦)?^t7Tª»RX:%äDèW…6O8c$IÁ±xýá³nÆ·|õTÕYCitJòº[èF8 È!}—á²Ù´-(* –™ˆÇ†£ÉNIOK½ÏDÙS¡£X{ØqÌI`ghˆ‚·j.©¯sX÷ã—³”OIb»Ð\È tYfÚ²Cßh}m’¼™zwó=·>vÕö4Þ0 ÔÈ<wfºCéŠßäïƦ¯™ñ?Ñ´a+&¹Z2*ø'ÏGrŠ\ÇØ—Ùž× }‹òq~ç¢[!
-!øã
-ó(]ÝLœäªõ…ðC!àá?’H{'1ƒÙ$‹ÌœÌXO7 Œ®ÙLûX¯E´ïà äã1÷ˆûYº‘Ý®ìŽj#7™¹!a|Jã×ã?‰pÃo;óLsÒÏû:_­M.•uÀ²%bßy É<Yõ_ɲj–KDVÖ«„i0&|‹ûT‘þ¸â MŸ¨ #”(¨RæÖ®--“3?ÚŒµ.ò“Ÿ Å*ù\;õr°ca¦ò­””¬²7ÿý¡|ð,ûcé¬n Á"É·3Cu0üw|ÄÍÂG%¢p|ë_2—;\^µfEô¿Â¥uXÓŒñ·p3+MxKÅ>بY _ù¯Öe$gOÎë$Æ⻈3•MÏf™;oŠ-›‡D h¹¸êQ
-j*c#$Š•ø¾}Aú¿bLˆªïLŒ¿¢wž³£ ÕŸ–½z§­ZëŸÓœà"í!u½S“Š‹÷áÉÇ+ºzs»Ö÷’ ®Ÿ .c=å¤H!‚Ȇ?&73Éìl–Aµ*¾­ #]dàJ4ÂhÍOúá•]ápq3\zr˜Mj&šDØSø³XyöÃD HÙÞÑÚó:º Çæe´‰`}1K-‡$\ÛÌÎr^I—z¨M$9ÑgP¶BC… ʆË?ëz¦´ƒ™>,êÔnùŒÌ¿th^ôWàéìs¹ÖÇ°ŒÇ
-!à÷'wM¦è–ÎèP½ðûkð&&ÐûQËØÙ¢÷¶§ }Qvf/S:K¦\o¿hŸ4‹ÚïˆP°¼Q¤sûb÷×–úõÙ<(¯sU8¶tËB{üKæØiFÆêÛÄ›±Ò)d¸:uò½ÁÖÓ5NócáÏ6ÍÁóSDôO§)•’­WÙQjç×øÆu±U0~®ZrIÚ4*ÎÝü9ˆ¤š/kÁ[C¢Šç#¶ YíD½j„õ¥×8ª#J85¸LbE»ºå‡'›vÞ~]TžÑ•‰³²<IIwÛª“àsø*F Vx¨:χÓ5¼?¤ ³·ÝI͆–3ÆCŒK·*6WÒÙ
-½£Øé• ésûãA úIÕ #2»ÓŠ’„?eZF¨›íêp½µ¿hã—F‡<=éz梴|ÿi ™
-sÒ-çvŸš"ç«ñ¢q2À¢ªšäÁvƒ8¹„ÇW?ºI/4jûé-&;S>Øx«æZ—Eª6¼l9 ÐŽy:¸íV"ëow
-÷8˜6Ö¯!u˜Ø¡±ž@}Y_¦ŒW$5bìüyá}{ÄaÇ`Œ9ñ¤õ"®2ç÷´(/³èD8ˆÿªÒUì»@ØÒ]Ú!nµy(ãûEÎõÈ
-ÇJÏbì^*@vEÈXcæk3¤ÒWË3F„°0í;Æ·:™œd»Ïã°×²‹Š2Q¥"ÝW”ïê[b£î°)瘙{I³b-ÜükÈá¼J ûJ WJÔ}U[j×ì«tž¦#¥y`ÌpžÒûïÈòYb4èP¢zç íûrú\7øBcäqRItb‡ŸëNÌC¡£þÏ èþÔ¾œJ²W)o5q?#ëÆ–íú¢ ùÞšÜ=”«@UZ—š(7‘ìŒçÛêß¾ag¨¢” –Fâ¶Çí–*âìÇ&f"bü ä×ÓÐI1ðÊb ¼É5(+pGhß¾¬Ã¡®ÿU«n4P®48•@š!LnÆÇnàxsÜ8®dŸAÆ7ÏË‘© D¹Ó2…+oåqeSŸùð+û˜ˆüÓñV5¦‡K"­„ž¶”%Æ<FÙ‰*(ùWpÌÝô·û²ÍúÕ`u)ð8š2¹UB÷ÚÅ*lïdInÙÝÜÐ4Ük”ôÀnòíššLœâpzæÍ ÅøL›9àÄ¡]`QÐ,8óô}ël™ñè =ƒ¾ ?°ÞðxéVgS¿úÅ®ùE˜˜ÓmnÓÅ
-úÆmGž4ñ 8WÁHë0Ž ºNãR¯´4o©ÙØ_Oéë|Ï‚ªôÓ‡rÙÇjÔO8˽²¿€…þ”Ë#”¶«µ‰$ ýX&3³Fn“±wmãÈØGœô4Uu‡°‚•ÛÔîi¯/eÆ«Ô4Âm’ÇÆÏãé#\­Ã'ßÚup9‹;øôÈžb™Ž™0Ií¸³´ÏV>Gl0:?¾1 ±ZŸþ ;¶Ë¸ßb~ó¯E®âòðH›ê=!?öŠ§sƒò»|*þsMÔ;s&/€¥òñ£òè
-€Ÿö’_
-°>:%tÝÿ’hàÜåA®(E,FKrùÁò#5>©²"E÷èó9»¼úÌ$ÖdfGp±&â/yT/öËsš½ öÊmS;+æñd„}Ñ%ã ¯ø»Î¥Õ²ZTÎR:cí‘àÆ×e¼â•ŽËf_úy+§úŒ‚9Žr£Òþu!Îi¦’õ¸<¶“Ÿoö„b†™­Ò ¦€Ò‚7ö?$¢˜`ôBï
-j •Ûœ k3¦¼ï™F²žÚ2ð‘Ö¦Íú¦N†.!‘GÛt?×½U‰`Ùˆk«¾vØGn­aq9G´—• o‹ÃC"¢¾.œ\ýaÃ4Ù œ¶X~8uSÝs›]`ÉDš£ºžoñð•À•Øº)<8–v\гcê¶ã¤’”àôzÛ.”¸¹;ù\ªÓE`BFP墬ý&M azÍY""”݈ú v¤(´ëïü8ùœâŒeë¶ Q*ÍÅ£þ³GIçRh¯¿×øO{Š— ·?:û }ƒôÁ~ÿéi²>¹}Íì̦¾A25_6…½ÄŠZ*ÑÑž4ÆGD
-»¡Î¿FÍÓ8ø©oc¾°ü$¶<;¯ÍÔl"’±*³¨Ðf°„SÞuwÏ$ðÑ(Á‡Âé+8ï’ÛèTÍ•oÙ­Uîák,„ÒU8‹ÝLboº¯Îr§ô‹D ‹´<(Lêcv°\xš˜ncÅEÈÍk‰zh?Œï¥.Àí{Ê(·IipIw®M9FJÛQ¹rg"ˆP×ËgÝxO˜ËÚÛêp8…Ýk¸Û‡6 ’K(Ãùœc4ê‰MñÉ´²¯ÞÒ¬“É*C-ëa‡’y™Y0DÊ#×iPZ³;ñhäî3¬é×ç’ø]&?"4ÞÕ<Ò×ùùg›¾ýš45É©Xÿ-ªße¶UNOàΨíÆå•õ…@bŽþ¦½DÛš¶D¿ñ91š¸M’úÓÌ>gÐ5ÕOZ'ÇÔÍ2gµî_uØE(lü #È:=Ÿ~ô¹Vþê”ïô[ƒž×jE%zJéçÛX»8Ÿ7ZKØŸÎÀffך¢7«í×wÉp#–J R«‰»3øzˆúðþ`ÆÁŠºÀ:M Hdk#Äp‡Dê«l¿’‡béð«P[FÐǹ!;@ò×eüJ£Fw8 qì5ØÕZË‘òÉ’;4þùÁ¾µ”{í.æê~؉³™KB ¤T¦yxÓY‚¸!e{®«E¼…[.ˆœ€±’9UÇW)\ÇÉSÜî”O6^OX8û­ë©¶Öt1¯›Cé‰4ƒbþ¡ÝwfÛLq®0ó#üu~ä„ ¡Èr°¶ñBwÕ\¥,K›1q¿0V ®•¹ë_g_Œ³Þµq°û[2"iÝJ¨¤,¡ÙìêWgµÍ¹øÝU¬r•]ˆÉƈŽ§ËÜu¿2Î5öHÁfáÙüÕÏ¡^bÉj¯ðÁjÝÕ5tûñÎ2vljè¼üU€?~á4›‚eÀ¯ñ~.¬Ðfv–¤ÊO½“gß@Úé—W´/À…)‰Ã( )r¼Îyr2’LƒžÕº’‰cEòšª«®à[±6 JfHïÌÎ$å ¤/íüWj3ÈÒW<íõå¥7b#ô}EÖgÂ=g Rº‚JÅe×LÛƒ¬3 _ö6„J}᧘~[IûÜžQKxÍmJíB2)GMGìûñ{´ín~LSW2Ââ&­?®/ßÁ}Ò-Ÿ1ÛØ«ÄüXÝÕm^©“•Ç“ŠNÄ( >¶­å_¨Ì•
-5”0;vVÊ­‡‰\Û=¥Ç‡ÐÅ»/8n¦”².ÜÔRzÚD"‰‘$é»$3mXiB%ˆ#öùÓnà„u²|#Á?¬ 8¨‚ßK¬Š-Íf¡k®XÓ“ 2+ÀªtÙ¬c xJKÕUtêôÑL,qúòÑÏt/(d¹j¸ãyÿÏ÷Óáû$˜Ôq3-]ZëGœ|ø":R`/‘ Û¨B¸,ÑU8 ÀknϾ8JÓáÜÔ†]iÅ&ÑÎ8ÚÈ>kÆCÒnÙéØD0¥O K|ö,ØKùPëcú¸ÿÓ~§¶´5%D5=¸ÍžgP7“l† r]™¬%¥®Ê!EŠ]âþŒçH(FŒÿµµH?pˆpî8‰(3žG goaô9Ë×òÛót «Zø²&Œ¿,…Øç¼tÑöÐôD΀ qP(8XÝÚÓ‰‹½DÉO'69bA»
-üFÓ}UZ6²ðlRÛ
-ßB÷,øìõôàÞtKÊA ‚Uö…úØ€Ã7Ú—”‡¢ê¸då|%Qß´“¸6ÂqoÙãWí.Š,}U/)¤ÏÚ Ò°= PjcaÌé}V_[ÎQ`9Ó¿‘ #Ù ­Ú„é½Á6|-Iû}„ýþ—¶jl£¶%"åh/ã6s ï%F¯‹k/€¯¢‚BÔpÔÉ]¿O•Ø{I…O”æ‘»üéæ"ã¦8Éð uÛœ ýOÌŸoÊ8ÛÑ·MðTt8JbD?ÌOÚ…Í(󸢔s%<…ÌlGåšžÚĸº¸1}˜ž¡uæØ"
-ñ… ‡òÐæbð½¶õŸÝjSÔüCàâäC*œ­`E_™[‰ä,%R•X™«b¨!-áêS?ø ­$´^GªíëvH¡²ûI\PM_ø)c#!#Π¯¹ž=³6Ú°ú ?Ç`k}RƒÁŒfC©È¤“ïÌ{5ùµ<Eû»á°DçàÀÇóÊÍ›ï#üb ë× É¸‰ç¼§˜ém.ÍEì­ g:†´
-Œ:n/wùªb:¾D‰§ƒ˜­Þöª…%¼&z[C÷¼cÛ+Ô(Žö=7ÇöCtmÖ“OHÀbÞ0j],G6!µèik|GÐ÷é°ÚÊ~Øfóf~´ˆHn‚§§:vƒCÙ˜9žnͺ¬ÎO‰Ž’§&esþY¼ZµL†¾AE?íz¹¾è™AvX
-;ñŸ*Êí" þ:»,RñŵJ&¯‘JîWå¯ÔžøÙÉÇÈó<ƒ8 Ù!rÆ
-äwÞ8!¼w§š–³à0an‡Æþ?ü ý‚ÿ'Ìí-MÁ® S°ÒÿZ ßendstream
+üµkœÝ,ÿ¯0S ½×ø¯ŽÚ–ÿ(ößøþ–w5}¿ GëwaX88YÙÿaºÈ=--T®æ6
+Œ»ƒ]xöti–§ù$~T ݘ«´­|L»AlF¥¨™GÚ1>g3Jë0z¼ìZ»›£jêF%Ïp¤ã­\`„³;†@*÷‚@ê['4óôºxÜ6Œ¬šÂ?G´Éw·t}C¿ú;/`»wˆ™râi„ÜaPi£sˆÅô4¿ûD2mCÕî’Çu'åòšbYÊ>¤†à}Θ)ÏSsÐÔ¸äõoËñýªÈ]’Ú®¾Pbt“m‹ÛšE qUíÝ·E“çCb‹sþÞï€I|w¼LY¦ìAŒÚ/ýMek ÿ&»êæ%ëźܵ¿u;Ú0‘`[º,9ð ŸXQÍmœoßò»™›/Ëðb‹Æf–®~è@/ù—Í@Hm´ÍÝuÏŸ>²è=(ÐÞš¶W0Br¤}i3ÖDH‡S²À~@k
+¶™f‚yø_eš×¼¥©Å[˲•X6”,¾
+!ø`€·§«Ssw–]<¦ŒiøCø®ë¿aacK ›‡&*ÔhRÏ»Ÿ«µ®GÖvzq‰1dìJfdÔkSÜ2ìXu'´9 Æc¾HÁ(;,#}┸ZBœÃfÇÿ"‡0u·w诩yÄ\8)ZM–XÛíµ¿Ü‡ œÛ¾*hÐ>ŸŸB„½êEÄžà=A¥#¿]÷}ˆº7€“ æoξ{ûIb+jæ„@‡)0ã\­ÇséiÃû{‰Ê¸M9¬Z^¼‡é4(„Þ¥s§>âw¼Wg‘¨qg/â7‹ãKúÙyyZ€âL~alâTJ$T¿Éa ”bew…£ K³Ë DØœp­6>;µ²b'kO/¬ÎÒAÒ°Èػƕ¾{ú8ñPƒK»8OäJ…ͨµÒSÊ s&8faOœ‰ß•ôÄŸîàaòEæ‡Ô„“
+~{÷c¬]¬JQÑÖw ªe‰E^»Ô@XQˆ”°^ÄZªKt‘‚êô$)¢?sî°ûƒ¾¦]ÁÉÃî?HmPëa¦Ëèh)ØÐgùšò›B|¯½"Wub¿:O
+»2)Pfæ*.—ÖŒ>[°ìÊ-~Äâž’ˆhÜ™6šTQ:V†]êxö/dÐu¡Õ½ ¥ƒÄÁ狪KSW'!d='\N€.u×gÆ/I:?¯~%nw¢çrÌ'¤ÞçMS}Þ®Û0a6Mhh5û&¨ô¸^àë!9u;êý›õÔ6¿,†šßzáé„ä%?>bTÐåûφc£LqØêÉØGºSïi,5{ÒGÛ!ä_MüxÞ«³ÎLUçLH,FŽÉ£…Ƚ[i.³Û lÌ/ÃëQM®5Ú~+còq(m+‘Én¹ ±Í]¾"¡Ó9Ò9…;z9W96°ÐTe•(.jqŠÏÉ,ÉÚMˆ8ß—–£ˆÍaôü‘uàJ”Rµò˜Ô=zMÕ/mɳb>¶ÝŸgå aúùöÍ(û¦ùGx¤˵ ñ¶ŵDº¾˜]~Ë ISd²1aI:<;‡Y?…Œµdœ¼W¶ üâHh2Ua»(¤‘eE3ö)'™ùú’Ö ]ëû3î%#/'–£ÓÄ%âã@Éã ;Û—`TÛÒ¹NHc Œ«ü*"ˆÊ¦^8„D€$ŒÑñJ|Ùü’Në„»)°-9¯j³õM¼ZSÑH$ÃT?%“§žôÉÕžô«øYž.ÝF¹Ôz®0ð;g}éÓ¬m (Lœð4£§þïi°²²4Üg8½'ÇqÕç¹²5 9ˆ~;?ÈM ¢B˜?•/Þ¡Ħe]czR~¿ð@ÌÜ:ÜØ 0ôù/¹c¸ðGy »~DŽ„Ø“
+‡,¦PýR¾èÚid^µŠ+—^2³m¤}P¿ÉúGŒŽžG¿‹‘…Fc©Êqâa©½XD`*ô‹¸Ñîð튆³•×žT…§¬),‰Ú¶Pƒ9Äâ]ÅÆ!“Ÿ?è¢Á*:m_¡´h9¢6K˜=Þ ¢»¶@§š O=P±`&Ä6ÕXââà´ºh‰ÎÓCÇÑÏ¿/¹õƒRçþٻʦ“A`ä}PÀLMŸD»ö5 qþ‹¹ g.sDž>½È²!¼XsNWò<,„töYDŸÈ¹G¡•”XXS8Mz ”R» „IËز&ç"Qb?Ûð¡_=ìI™ý3ïõ´¤7éÅèc™ @yÚˆ½X²
+‹Í”ÜðCœîVBƒM$ëq®O°¾‚­ÏÆóâšé< úÔiÜí\šêáþl¦§KÎÓñžŒ#Q 1F(3튨ÎàSJ°øÚáùÂ0J<ÖÐY¤¨îÏ¥"zK7Å©ŠCÓ§ÁÇd·›ÌQœ©Ñ]¼:öµ²xÖó=Æîš½Øs—´ûh2ßIìWôø~è/·¶ë8À‰ž E&w«šÒVùs2´{¾ôz†ÖlÔg|ë…‚SÞ”ÖQ&ÄóçëEóF|ÓÃz;È­øsýïÁ>—?p Û‰'ÍÕ¢5—¾à‰¸p S¾2Ìö%Q‘÷Gãw_îÓŠ¨«í‡âRAsƒ]C¸›ÓPly±¢h“ã/%¤w`õ~ëß׆úœ# ñ§šÖÀH"½/}o—ˆ9ŽÕANÿÓ <rî¼rü¯VaÙ—,7é{w„‡+L„yQóJ¥ŸCÃÌoNÞ±?§Zg?6÷fæäžZÈEh·_&üœI+ä .U?]°l°>úʉk9nµRf‹³D_ûÇ ¡>E–“¢^ˆÄ ð5cx󹈥O—Rn.?¡eßÑâ§Ò¤€¡qm¸8¡S™Ø¹!>¿À# д°þ¨&¯¾>Œ¥±·P½qQµ^èº"‘ÉèbUwS†˜?"Þ¥"ë8mžlá-ô×±õååŽÉ3‰T;ߢ‡L¥ ÎGº uaÙ I(ǃ
+ÖžCJ‘²—G„ÐM"&ï‰4<ë#`üDöY÷­áW
+i¬¨ŸKUì=\žýk\dóhYúÃÇo;gh+ÖR¯‘M^£ ÛaHi61›ƒ£P'&iÓ jÎ:‚ÓU¬ªºKØ;uÅe˜R)`kG€î´nwÄýÜÍÜ\Àc> ¨2]/{¢¦¨øáÙE¡ãΊR üÑwm}RN¾žJÓ$ÃҲ8D< 6µêƒªg‰C4YÏÜ…ñü$mÁ]2]XT Æ…õŠÞÝäèø ¹pƒ|3Áo³4øÓþ9ïyã*(ö~ûÞûEÂ]:|›YU"ú+JºRôU7.æ
+VSfgw-4ð‘ä
+E„Üž‚›†¨÷QÀ§aˆYnk\Ï=­:Ÿ,)õøöBºLßö ›‡ìb”Ð3†’(€&ä2±kvwr/F—Õ
+aN‰×jêg!rÕ§(YBî5 “lœ+”^ÆIQçJÁÜøÔ›x#êèXX“„”I¬®hÉ©‘aäBA*åqk½Ô3/ èi5—#nšpþ”O¸ §ÖiãOÄÒ‘‡sªA-\×.v! rÛݨ½É§ÕW(+íhRzÄM }qàú—3Q¢H-T:iüc\8¼¶I.è‚»gàž§=Æuƒ@¿a}îÜ4Ñ°.Ïy
+g*ÿÈÕ=\
+°+,B4Úfð{5á#“Re_‘›S1Ù‡ú„iëÜ>|§¦6=«ªÌp9DuTà¸Ñ}b²ïT·-¸k¤èÔg‹AúÃ76Œ­Çp§Þ¨ÿŒÞl<Œ¦7y>G–QØ…Æ£Ö&sÞK4ßD‘9Çâs¡uˆÿmùU&©‚t,Á—¥‰„b½±ªÆ\ÙHH%2ÓJƹÍ=O°î—áö¹¹2›~ ÎßíÌHß,+'Ï‘¦ÅT^ Ð΄lÒ~_EÞìá)•¬w¦Ð»2;òç1̪,G͉Ò#ý¹ºjfšÓº*9áµpm‡êÈ}ÎÓwtS(`‚žZ¶Õò¼_r²¨ª}døm fÔW’ e=]¬¸À½iÓ€x˜êÕûxžÍkúåýN’îær3àéUd:~£ü ÙE £UôýPí÷÷@d(Æ,ÝÕa
+_’¶›&Æ(x¼¹(;YK¢Œm ¤gÓÁýl‘â[z*Vi\£ l†È%{#¥w¶%Œ‚•W^#ÃÓ„ŠãsõµÈ¾P7Õ¢Ó>§Š§õ#¾EÜ9i1W´i´Þ¥ljÃæ–’mؘu‘Ö¶^méàôsMæÛrªy‰Öå¬lƲ0¡ á¬:&~–« s£'âæAeþ‚êž²-ÓÌÆdèÖ²ó©µâ ƒv5ß9ŸKæ»P¶k´Å'N.¦À»tìWÛWBÌEß-=Ј|»‡c‡–¾b}¶+~õwè7@ÿ
+ Ü)mÝ“Ä';©Ûp4OïugE…bœg¥W<xY9¿þ$¢A™žÚ®¾b³=»æçýVÓyí,"ÏT5švèpgã¥A*IGš0D%eÂe†ñcë"˜ð‰—*êj1vê5%?-&ü iAZ•t5ú]¬rkvÿ(´=Œšö 'üJ¾ôÛKªÀDÿ…ÐT¢&@í ™Æʸ¿(—ŽÔ“Ç{PüÍÓbødb^ºc¤kœòOrj@F§æ¡î°[ïØ}…@=â¾ZðŸ¨qúÅl¬QÇ©Ó:¢
+< Ø-KôwÁ-‹/Dñïõ¤Fj\ÙN=@­U!¨Ã‡ÝÄÈ¢ææƒ]3òÓÉ
+‹aÎ@ùíTÆ“7&¤Eø BûY¯ÜXðLÙÏH^#¼ p–2úÀ5X—
+^/ÒO2-U@“‡ Æiw¤³¡#9-¤b·úRÉ7üM”Õâ(6ÞÌ^ ²ƒ =Ï6i•`©¿,yÿ ™ùô]8FfŒhÿ©Jùi»õà
+؈¹5nÙ±òÉCd½Û/¾Â×aOE¨±_Ç–îÉÑüqÕŒë@†€«¸€æŽ½óX•EÅwy…‚Œ•½¦’PÂûä–3´hÒv\e?4*ÊÕ÷m_VÛél`…dáÃd
+Ùú½7ýYE„Íæ’™‹OO?·¢q #rþÂÏ­±A[]P‡ªÝ¦;?J˸¦Iq¥ Ô'¶æŸ, {
+h¯Vwž^Ä7Éß8åp©+ö`ûr`G. f9¶Ið¼kPÜÆ“ÙOMÖú–w]¬£´Ï Xò¬w ¯2Ωìfvƒ^=$M†Ú:ô%›á¨LļKO†ðàx,ˆQê&:.`€ºÙ§ŠÊ™€õ#ªÞƒ½ŠEzd’f9ÁK09UDJ?ú»ûùF‡º¹‚áàzÖµŸ?ªLIF/u†ó&êà}âS;¢é^S@M~䋧©I¢ eÚl²¡˜Úˆ”pöžþÑDë‚ç"Ä€Ò}ri&­„~à“”nª*À¯ó8G|°cf @tï:Úolÿª¸uƒ¯ ø†ï0w:\E-ó;áâ×÷OAçw-©)$æ"ÏFßñ²œ ?—áI¹8Ö%-«f?Ž)¦[ž5å@MÛáÐ1CÐLæë‚8û EÝÍ\J†Ô*,/y™?ɺdñŸ%–‘²›µ’“½+…ô4c§äï'u—¹Š¾åwXK9·!Næøçsf°xv^¹£ê¹£¯öÍÓ xu="T6j`?ƒØh¡9#ÍŸ“ZNFçm÷:²@c=\7—sí$4[BK•×K£òi~ ™mÎzã„5có® º´Š¿m€uùf®Âùüqµ‡™²ßþÉ0FHÙ@ ƒøW‚nõ–SĺUÜNÙîøè ðÐz·åö¾ã¬ kËRPd_¥­Ù«LhO}Î3” "Î,ª
+V˹BÛFIܵ<\åÑÙ]M=톮 -w’¹ŒO¸öW»ªþÖ:GÓ±Iô!ÒvkÖ%[d{fÙÔ¦1à#VyYtãìk"aZ³¥ï<ê„k¶žµ¦:q
+‚eÕä,ê¨ý¨4œx9 ŸaâˆÓýLîÖõùzÍqqp“y(ÀB¹+T½.º> ¡…qõ\VŸ£ýè­8‹¡î9
+ª¢³¥Æ<d ]å“0Ð\ü«OåHØôì#(ùÚÅÃî»S˜Ša;Ô™DfrÂážûñ­´N>2d뜟Mz¹?5ƒ››š1I÷U锂ƒ«½©ÆüÓCèBb‚²×žp½˜Î'Ó‡”¯ º*Õ]),ò"ô«B›'œ1’¤àX¼þðY7ã[¾zªê¬¡´ :%yÝ-t#ä¾ËpÙl Ú
+ËÇLÄcÃÑd§¤§¥^g¢ì)ˆÐQ¬‹=ì8æ$°3´DÁ[5—Ô×9¬ûñËYÊ'‹$±]h.äº,3mÙ¡o´¾6IÞL½»ùž[ ;j{o˜jdž;3Ý!ÈtÅoòwãÓ×ÌøŸhÚ°“\­ ™ü“ç#9E®cìËlÏ넾Eù8¿sÑ­…üq…y”®n&NrÕúBø¡ððŠI¤½“˜Ál’EfNf¬§PF×l&È}¬×"Úwðòñ˜{Äý,]ÈnWvGµ‘›ÌÜ0>¥ñëqˆŸD¸aŠ·y¦9éç}¯Ö&—Ê:`ٱ%dž¬úƯ‰dY?5Ë¥@¢+ëUÂ4¾Å}ªH\ñ„¦OTJT)sk×– ‡É™ŸŠ mÆZùÉÏ‚†b•¿ˆ|®z9ر0SùVJJVÙ›ÿþP>x„ý±tÖˆ7`‘äÛ™¡:þ;>âfá£Q8¾õ/™Ë®‰ ¯Z³"ú_áÒ:¬ÇiÆø[8™•&¼¥bì@Ô,Ð/ŠüWë2’³Æ'çucñ]Ä™Ê&g³Ì·NÅ–ÍC"P
+´\\õ(€kúºEã(3Å!S)Ö‘“HWÊ°z3Ô!5•±’ÅJ|_‹¾ ý_1&DÕw&Æ_Ñ;ÏÙQЃêOË^½ÓV­õÏiNp‘öºÞ‚©IÅÅÀûpÈäã]½¹]ë{É×O—±žrRH¤AdÓ›™dv6Ë ‚ZßV‘.2p%a´æ'ýðÊ®p¸¸.=9̦5M"ì)üY¬<ûa"¤lïÆhíy?݆cóβFÚÄ°¾˜¥–ÎC’®ƒífg9¯¤Ë=Ô&’œè3([¡¡ÂŽeÃåŸu=SÚÁLuj·|Fæ_:4/z‡+ðtö¹\ëcXFc…ðû“»&StKgt¨^øý5xèý¨eìlQÈ{ÛSо(;³—)%S®·_
+´ŽOšƒEíŒwD(HXÞ(
+Ò¹}±ûkKýÇúl”×¹*[
+ºe¡‚=~ˆ%sì4#cõí
+âÍXé2\:ùÞ`ëé'‡ù±ðg›æàù)"ú§Ó”JÉÎÖ«ì(µók|ãºØ*?W-¹$
+mgnþDRÍ—µà­!QÅó‘ [Ьv"È^5ÂúÒŽëÕƒ¥Fœ\&±¢À]ÝŠŒòÓljM;o¿.*ÏèÊÄYYž¤¤»mÕIð9|#+<T‹ŠçÃéÞÒ†ÙÛî¤fCËã! Æ¥[›+él…€^ áQìôÊ †ô¹ýñ ý¤ê…™ÝiEI Ÿ‰2-#ÔÍvu¸ÞÚƒ_´ñK£Cƒžt=sQZ¾ÿ4ƒ†L…9é–s»OM‘óÕxÑ8`QUMò`»Aœ\Âã«ݤ5Žýô© l¼Us­Ë"U^¶‡‹œƒŒGhÇ<Üv+‘õ·;
+…c¥g± ö / »"d¬±?óµRé«å#BX˜ö ã[L N²Ý‰çqØkÙEE™¨R‘î« Êwõ-±QwØ”sÌÌ=‰¤Y±–nþ€5äp^%}¥†+%꾪-µköÕ:OÓ‘Ò<0f8OéŽýwdù,1t(Q½ó…ö}9}®|¡1ò8©$:±ÃÏu'fŽ€¡ÐQˆçtj_N%Ù«‡”·š8Ÿ‘uã Ëv}ц|oM î‰ÊU *­‚KM”›HvÆómõoß°3TQÊK#qÛãvKqöc 31þòëiè¤xe1‡Þä” ¸#4o_Öá‰P×ÿªU7(WœJ ÍŒ&7ãc7p¼9nW²Ï ã›çåÈÔ¢Üi™Â•·‹ò¸²)
+ÈÏ|ø•}LDþéøN«ÓÃ%‘VBO[ʈc£ìD”ü+8ænúÛ} Ùfýj°ºxM™Ü*¡{íb¶w²$·ìnnhî5Jzà7ùvMM&Nq8=ófâN|¦ÍpâÐ. °(èœyú¾Œu¶Ìxô†žA_Xox¼t«³©À_ýb×ü"LÌé6·éb€ô5ai*”²xl‚g¸§vœí£›Ü¸$ô+\øìüxè¾ô-ž¡$³ÊÖðs;úº#[Âíй/ù¤ó-‚äÝ—mrÂ{(ËýôÙƒ5qòâ(¹?åNtæJüÞÓ#ºÇø=›³°GžLÇ·CøÐm5ƒÞé¢>»lvOûû,Œ[8ºV¡M‚×?ÇóEd¯Ü ýã¶#Ošx†Gœ+`¤uÇ]§q©WZš·Ôl쯧ôu¾gAUúéC¹ìc5ê'œå^Ù_ÀBÊåJ ÛÕÚDŽ†~,“™Y#·ÉØ»¶qdì#NzšªºCXAˆÊmj÷´×—2ãUjaŒ‹6Écãçñô‘®Öaˆ“oí‚:¸œÅ| zdO±LÇ‚L˜¤vÜYÚç+Ÿ#6ßX­Oÿ„ÛeÜo± ¿ùÆWŒ"Wqyx¤MõžŸ {ÅÓ¹ÁGù]>ÿ¹&ê9“‚
+ŒÀRùøQytÀOû@É/€¶6XºîI 4pîrŒ‹ W”" #%¹ü`ù‘ŸT Y‘¢{ôù]^}æ k2³#
+¸Xñ—<ªûå9Í^{e„¶©óx2¾è„q †Wü]gÈÒjY­
+*g)‹±öHpãë2^ñÊÇe³/ýƼ•S}FÁG¹Qiÿºç4SÉz\ÛÉÏ7{B1ÃÌViPS@iÁûQL0z¡wµ‹†ÊmN†µSÞ÷L#YOmøHkSf}S'C—È£mºŸëÞªD°lĵU_;ì#·Öˆ°¸œ#ÚËJ·Åá!Qß N.‡Æþ°ašlN[,?œº©î¹Í.°d"ÍQ]Ï·xøJàJl݃K;.èÙ1uÛqRIJpz=‰mJÜÜ|.Õé"°!#(‰rQÖ~ƒ&†° ½æ, ÊnDýG;RÚõw~œ|ÎGqƲuÛ„(•æ‡âˆQÿÙ£¤s)´×ßkü‚§=ÅKÐÛ}‚¾Aú`¿ÿô4YŸÜ¾ƒfvfSß ™š/›Â^bE-•hƒhÏ@ã# "…‰ÝPçß £æiüÔ·1_Ø ~[ž×fj6 ÉX•YTh3XÂ)ïÀº»g’x‹h”àCáôœwÉmtªæÊ·ìÖ*÷ð5Bé*œŽÅn&±7Ý×g¹Sz‹E"†EZ¦
+õ1;X.<ML·±â"äæµDH=´Æ÷R
+àö=e”Û¤4¸¤;צ#¥í¨\¹À³@D¨ëå³n¼'Ìeímu8œÂî5ÜíC›IŠŽ%„á|Î1õĦødZÙWoiÖÉd•¡–õ°Cɼ̬ "å‘ë4(-ŒÎÙx4r÷ÖôësIü. “‘ïjéëüü³Mß~MššäT¬ÿÕï2Û*§'pgÔöGãòÊÇúB 1GÓ^¢mM[¢ßøœMÜ&IýifŸ3èšê'­“cêf™3Z÷¯:ì"6þ†džO?zÈ\+uÊwú­AÏkµÎÆ¢=¥ô‚óm¬]œbÜ­%ìOg`³³kMÑ›Õöë»d¸K%)ƒÕÄÝ|=D}x0ã`E]`Š&$²µb¸C"õU¶_ÉC±ŽtøU¨-#h‡ãÜ ùë2~¥Q£;
+8öìj­åHùdÉÿü`ßÚ Ê½vsu?lÄY‡Ì%!R*Ó<¼é,Aܲ=×Õ"ÞÂ-DNÀXIƒœªã«®Îãä)nwÊ'¯'¬NœˆýÖõT[kº˜×Í¡ôDšA1ÿÐî;³Œm¦8W˜ù ƒþ:?rBÐÀPd9XÛx¡‹»‚j®R–¥Í˜¸_«‡×ÀÊÜõ¯³/ÆÙ
+fg’òÒ—ö
+;+åÖÃD®ížÒãÃèâÝœN7SJYnj)=m"‘ÄH’ô]’™6¬4¡Äûüi7pÂ:Y>‚‘àÖœ TÁï%VÅ–f³ÐŒ5W¬éÉ™à?Uº‚lÖ1<¥¥ê*:uúh&–8}ùègº²Ü5Üñ<Ž„ç{éðý‰GL j¸™–.­õ#N>|)°Š—H†mT!Ü –è*œ„ˆGàŽ5·g_¥épnjî´b“hgmdŸµ@ã!i·ì¿Œtl"˜Ò'%>{ì¥|¨õ1}Üÿi¿S[Úš’ ¢šÜæÏ3¨›I6ù®LÖ’RWå"Å.qÆs$#ÆÿÚZ$È8D8wœD”Ï#³7Œ0úœ‡å‰Çkùíyº†U-|Y Æ_–Bìs
+^ºh{hz¢gÀ„¸(” ¬níéÄÅ^¢ä§›± ]
+¨î0Έ#œ ™ŸQÅ8Û§¥Ï«œTMð ÀɉI!®ƒé¦wîC|7# ƒ,á¤38Š¾ñ´.sßùMÚ ð÷œÒÓ8Ñ?úDÕ$‡È³+ê%M»H(ˆB(Šüö §Ö¯Ê)Çd‡…Cž;yêÙD>‰¥êÞR8ööElºœ•Ëü,¤†G­¡í¤’²w6k©™ê÷†Üeµa$íÍé!iE²¹´ ÍÓþdç­`WÓgÌ‘G¯jMnóh*µŠÛ ɧ’ƒ!Gñ6ˆ#p Ÿ£uóUTËk~£é¾*-Yx 6©m€ ºáP¤Î§]ñ#2 ‚±G±p*PÍæIrkh+kVË@>ÚjÞ$Êt?~n 9U:AŒ“0% $Àr“ÀÎ]Ðc陶û3Ìî¶)Úro$YÕu:‚Ò«S m «žŸiþCl»wi̪6±îÇlUúÅÄ!ýàí}©5ƒr% Ç‘ä<%RÆîê¹ k·  EX˜Ë#“°5SH…o¡{|özzpoºÎ%å Á*ûB}lÀáíKÊCQuÜF²r¾’‰(‚oHÚÉ\ḷìñ«vE–¾ª—ÒgmiX‚(µ±0æô>«¯-ç(°œéßH‘ì†VmÂôÞ`¾–¤ý>BÈ~ÿK[5¶QÛ‘r´—q›9Ð÷#×EˆµÀWQA!j8ê‚ä®ß§J콤Â'JóÈ]þts‘qSœdx†ºmN†þ'æÏ7eœíèÛ&x*:œ %1¢f„'‚íÂf”y\QÊ9ˆžBf¶£ò
+MOíNâ \]ܘ>LÏÐ:sl…ŒøÂŒCyhs1ø^ÛúÏnµ)jþ!pqò!ÎV°¢¯Ì€­Dr–©Ê‡ ,ŽÌU1 Ô–põ©ˆ|‡†VZ¯£Õ‹öu;¤PÙý$.¨¦/ü”±‘gÐ×\ÏžYmXý†Ÿã
+°µ>©Á`F³¡TdÒÉw潚üZž¢ýÝpX
+¢spàãyåæŒÍ÷~±†õkdÜÄsÞSÌô6—æ"öV3CZ€Î þìý]ìX'EBàø /Õ~>Ïgq"óÕ§t~U̶½5¢IáwSõDÕ£õaÐ8’#Øwyúªýˆê@†<y=ª‹Ž>ÛylF·—»|U1_¢ÄÓAÌVo{ÕÂÞ
+™–D¾£DÐ#fjæK÷+a§µHCò; oœ^Œ»SMËYp˜0·Ccÿ~þ?Áÿæö–¦`Wƒ)Øéÿ
endobj
1333 0 obj <<
/Type /Font
@@ -14129,14 +14123,14 @@ endobj
/FirstChar 34
/LastChar 122
/Widths 2833 0 R
-/BaseFont /FTHQGV+NimbusMonL-ReguObli
+/BaseFont /QCLRFJ+NimbusMonL-ReguObli
/FontDescriptor 1331 0 R
>> endobj
1331 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /FTHQGV+NimbusMonL-ReguObli
+/FontName /QCLRFJ+NimbusMonL-ReguObli
/ItalicAngle -12
/StemV 43
/XHeight 426
@@ -14156,76 +14150,74 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬µcx¦]Ó%ÛfçŠm›ÛöÛ¶mÛ¤c;éضmwœô×÷óÌÌ;Çóͯ™÷Çy箪½jU­Ú{“+ªÐ ›ÚÅíí\虘x
-ŠZRò
- þÞuû[T9Pƒæ¸‘WÅЯçøÅxqD¹ædªw^sÄM]SÏx .¯‰¹í9I1X0ô®-ƒHG¹æ ê¢[UØ—DgŸ‡ãµË V«å0çÛ8æ£\¼Ý þZ¯a®¿fm×àaÀ5jî(!ò8þ
-ƒþ¶­¡^€èÍ{[„ïÃ÷ˆ’<ev99Iò¨"…6‘
-†9ŒÍÈÜ—Ñà£o©¸(J‘Ô«‡¢£Ú>áØÒû§Ÿæ¿òç‚F.“@mô¤…{ *üàYa^’>#‘»È^™éµ]M»ñ!O>Ú6:ì௽µ©ß¿Øüäi:.C³ªwtã~êËRþÚÐxùܳð›A£^ë€3w=¨ÄËM¶ï9Ïqºx+ïˆäš§(·%Ìß2U‘ÂÙ‚q·¸«H.¿ž°Mý¥Óæ[ÔÞ»V›éïx"æk“­Ú«öþÕ—n:™C -cšÈá7Ÿ¥íß)ß ÂëÜùšï‰–PdÊû<€‡2¨O»ðK4ÿDí€ó]ë&²A–
-K0É¡R6uÙ ]Þ ½ÚIoï»f€^êØ‘é­?rËÈÒhéN¿³MzK¾3üºí±å8?•…ð51"AAžiꘫL’æ2=­Fæ–=éû&û-¯uuY#RæýÁ)„ã`î„ •H1KwJ,b#DÌÔ*S³=œ2èqvÚD‚„ŽQ§nî÷ßáB0$fúî‘UMpšà¯š¦tD6•“ÿ1ºµ…ðÇ9Ÿ’®„÷x¬Y \Â,áüº§Òç5qí'
-!ªU Ïš(6ŸN{=GÑZœbIPÔ×â·ß¼<O™-¸œÕÿ²r‘›ÄªAhøCÎ1HltÌÇâÚ6TŒ,XÇF¥Ên¾ýF6
-»Ý¬;öh_j%Ûº†@ßs ãµ×Y—K ­áÛ ¼ù[Äv—ªÞ`½¤ˆv¨Ñ7‡+}œ¡HŸÒ|v™ùËÛ¬Ð,!J<¶ÑSqÿ9f°Àï£î˜•]>hß#SlîLŸôq6q 3H;îÉ¢–ÄÆUTt=¶kxR©MTIßý4#Ææ|Î*_ ̤QkJ„Á܉?Ø?DñÞ<Ý fKhÁß­wl£1Š¸‰2O}zzqÀ¤&~”zÞr,R p·Šœžq—<%@‹ \Âß ‡ñªco‡?ÜÞ/ú×Ñljçù®ý„¨²ÒÅ¡s7X Gä:ö£°çZe²\é9`¶õkò$4•D™—3¶ÑHb²ý2HôüQ\`­„mÛhf*“sbóà'ý©ÌJ&?ý(d0îæmè…MùÐÁ¶å̯L³Ö.KÔgZj‹¸¿°äQc»ÊÎ Úˆy\•°‡3À44ž•Æ‰×O8SÀÊ›ó‘Ëm¸4"Ñ6yøâÙí
-vJ‘ß¿p鯛l›:d_gB÷áú Ó~»t
-Fê^4½¾sŠ5%Bw/k~Ýw½ªˆ˜;ÿ\'’¶a†òñ͇ñ· .’µèN~T1”t?9¼lxffÌóÌÀ— ¶ÕAÐX-^ØðÙa–ë|“Så;(Ÿô¶JN­m;~@‹°°a-ö{»Š+eü2·mÀ3yK¢<’æÞ`ê
-Òõ涆‰Ÿ 1ÿª¥û<âÇh^ü„áÀ*dÄé~êX”+Voºñe¡âÔÖåқÔæÕ%
-IðN-ú˜cÊu¿5“‰¶>¡ü•Ûˆ¢…[0tÛòÝí%÷ÚRçœÐÕEïñù[#û{Rñâ"+Q ¨Q˜JšzAgXʦݼ™Wú-cJyû(ƒ›K’êD½9Bº<¬䤒¹.Ÿk§EE˜¬Ûæà]¯@w×O.4~Z¢ÜFµÒEibK<kMâ;(¬Ð0‘P×’ h#Ž;·Å›œuN9À)ƒÃð9˜t§˜¯*YPgb@É:óÏYpè?ž}3¡“ÑìÑ QÊR¤'Ã9íû!ëÎ|óNU²¦[£2É0©„ üà{¯ Ñ©#Öû<…Áü4Êþýùa©?ü¼Ú¾A·¸—KƱ¡i}l}‹M¦ú(vr«P"fôŠ*^ }YÞ£K®ðË™p&nä.—þ5FU‚ñF4žkò]a£µDb]6ÓìD#0Úõ+¹«ˆb{”^™R£Âj>7 @ÆÆ=óYZ[åTmWZ2JîQ2²Qeì£r›+®¦~"þ•»Íá i)ÃL3œºØj/:ïñÙÒòЧDx:sIßmšÝ?W\„¤˜0¼<ai-hT. ‡¿¯g’A–öŠ~Юo…7keEEÓ—’!LðU’û.µ|§1Ð9Ÿ ?Z¾ê¶M®2_n4è 66å0¹H0 ÌôoÈøa[ôcñåï˨¶Ë®JÏÛXµ2åwdíÞÔ Äí}îîÕÓÜŒ¦µ
-ã{õ{;ŒÛ±Ña"_Ç/„°KÛUàŠè¸Kh¶kj‡w•7ÛÁʤ§^JóÏjVJM¿Úí$å(žDЄ¨³ZÇÒéy>‰|GZ5÷tp4.\P,5¿
-.üRø#.c+g÷¯ð”ãlkÑ´Eò-P›æO&ûïÓ ³ŽfsYÎ5‘²p™¯ë"Aå?©ëÊqf¯²¦+„ÓÿÄà
-Á´2ߘŒk”¸CéÅTÐô‡²£‚:˜ó˜¿8
-{½1Odyh¥Ø€TùJ^:–Èæ c6±×µB
-íP¾æ~ê=‹âAzò˜3æµvtG4pE9#.‰PUº†Ü»zCçÇ}Æâ LP
-L÷a.„º¤ƒ­ ÒîBœn]×qÀ~æ‹yçÿ)‹'•üD#s‘&Ç>1˜`ðÀ/kY'c´¡èƳE ‘1K±ï{ø<Ùâé§}ô¹ø*i›µ#ÝRüÈ}bÃ1™$ýøsX?üU+·¦‚áæª2|Ų[°*}¿Ïþ5Ô®z`oA'å|³âÎP‘
-7Gjƒ}> >ˆ‘òø—´iÌè@6¤«ÛðkÐÚ­L¤…¢×úN<üŸYghi­†ªKí[JA³†sl1œÎ£aÞWsö£ÛWT˶)À¢BT»[¸(µ–‰…ý HKŠru*'ì:¯½ˆ=d1lÃQ“–+»PÔQmÆÕQùDZ$!—è´9£ l˜YñŸ]œ•dq…ÝL+½|q£7(Ÿ2ìd»²GàR"‹5—ãtí )ï]J)táê[ c2¨º.#ãý—åï`ì Óö°d+(sEK¸r¦›% ØÝÏ? g'×±j×ýtòišïÒ——ýß
-iÉmYÁ5ñÑCÀÓLí¯Wù )É'³…BO  š‘¨Li¨¬3Œë†*¼ õás3OzU¶Û”`…J#€©xÃ!Ç
-LáCZ±ÿòLZå$’mÿ†ÏÓ×=O€–Pt®|ø:²ðj?âWˆõfm×?n®8!ùC·"ê5<SJ¯“²OfY
-Rp>9,±4 %¢£¼ÈoJLú¥N®yæ¡oSj› ­åÑ úŒé남xM·qCoŽ¥K¹=¬ÝxmPE»‘– × vWÂILE³ùu³bÖ[â*°…ë9x÷wµÇØwá‘”}M’V2Cßçñ¾"ò÷ħʉåÖ]B>¦ÆeëækBz
-ÊX û´0 MßÎU»Èœ ˜‹8&ŒSÿùnärKx3{+ÞÛnàá
-0ʬpÂt)ÿNðˤ—zÆŠ@̳k^=]©õnuœ§ ü…¤eyÍ„j‰8ÙÂH¤i…”]LäKjOÔ”*Ó…kê†k[„Ÿ¿[@Z\;'“tÐÅaÅ[)a»8¦cm÷ˆÏt£Pp+MDL×bû|¨b1y¾#4&ƒ¯âw”qi+è!‡hæÖïxQ»Ðý"¾;e¹ƒO­8Âz©Ñ¢æCq5®Í¥+ÔæôFŸ´ù~A×¹1×óbÄÆËüšN)«¶I;Rñ€”@xùL,ç(S= ÷}¹‚Χ®–¸Ã1}Éqœ|¤å8»5‘þ·×úÚç¥!€ñ5®Y®
-îJêÞ5t*¹D³ã9ŒþÁÔ)AV)ýK\Žd@ æ0Æ[‚‰00¿ÔÛI”eIõ Ž¹¥ ŒaØ&oäx¹—ö°ÌëÝñ‡þî…\¼%½š.²™{!µ£ 54\ß!µÆ?`wÒ¬E»œSѬ(› uѺ?^|êƒßvkižGäZ³6ž€Ï6Å*Öí…y hŽÈõ›\OôÜ`&;\ô­(áü­:Ç©Ýân´v(Døâô<i®ŠÄ²Ç_ïbÙÑ!dá*7 b¬écñ™GŠÙÖÇŠ´Ùå›licÈÓ©ÄKVµõ/Jw
-,J•zíÖï´YíRú˜W™ö<ooÑñ+L]rÃÄ3¿Ò°¿C\½±bc·ªd€ßúÌp¸àR‡;ž×Ç7I†s±=*/¾2»v8òžV|—ê½Wèz¡IqïâciŒæÔqœ÷-XùtZE•WÉü xA¸[p±Ç÷I켜…8 ƒÄð«Ofû’J½É4?¢°!Þš¢T7áD,XG’\…›¦© asY~ãˆÔ¨ò‘^b¬çOH݃7’¥âÿ„)Zs;šRMâ¬,Û…ÅÑÜÄ¡Q½ðØœI˜K?L.!Ç+Åîí¾ž7صª]äàðÀE>dˆaÖgÙÛ’ñFþ148¹¢ßŒÇ%‰»13#r¨MÔ°4â8‰ÜéTÃÛŽ bbÅiïй$Üꢙo¦žRk¢l&ÃÆ«zëKB{¦k&×;ô­Ü"di“ óGîÞÏèô•D§S5}¾ÒØ’Å*ØóNFoï@Š'}è/矓§¶Rf}b ‰hæBds@hé1
-7`Q'YBô¥Í]ľ²†kï×Zü{Ùïç‘á ³’çÐgð!ã’ Nn¼–¬îTâžÇ6™!x~Áx¾¾†]¢ìñ$nR“ê
-ÜQÍàæÃÁ«ñX±Ø%ZxNç¨ç”tºðà‡Um½_a°H R¶3Õ"Dd¯q½›$»! º[êуA±Ë;]3Ž=ßcR|ëù’”ŸÆ_Ý™ö6æ-þÄ{–2¨2ÏRu6›ããžVX~V ±üÖ
- o»˜š=ªk¤íѳ€ú倥¨ûü
-Åq\`Þ³ ,‡­1ólw:)*Ü F Ï_ÁÓ+øªÑ"¡8cöFÀ5L¼{ÂrsH¦ D"('²—çReLüƨ“sFòZ«ƒg[>¸´b‹¤wW,¼@•© tNlÔÄ{=ãÝ|üS/³Ì?!7vw¾¡Q@ØÒ¢lÎAµÅöö&N¼ÍÈ
-o”ã©J<ÛíŸSš ¤i˜Ê§~Ĭu;àÍbg8³L¥w}²­³,'2iiæýäzºk×Ûº„–~NûºõåßÚø±Ôuʫ Œ½NÄ·Ã,Ñ/YÔèO”Û’ïÆ19øC00eÁEc•æ¹v\¿MÛEÂÄk%À'½‰´ëžd6$kŽŸüHLب¥fà"°ÆèQŽºüqwÞ¨Âõ–ØßHªU-^?P‰1r;Õ0›,9ˆ¢
-#ÞqÔ¹¯WgŠ"=‘H;n&¾³ö–2Y‰BÙ³ç²)î?ÕçŸ}4‹Á]=F5úË—nÜŒîôwçá,tµ¯kΉœU¾k£ó‡s“VKZsÕ‘/d?‚ÛÛ;î:êzpµúíÀ´""BÛý`“ô†v℉eÌ"¦>‰~6„¥ï'YRVfåŒY½’Ÿ–óTîèæ‚tÚ«úåÞ,
-R¥G”þSÂ[ñ¨E«ïäß:—’LO-í;¯®It• ñDR¬\$ò³Ï;•&ë÷ã€^j£nŒüî£?æ}8Î=dÐÉ…¥ç…„
-¬sÉ«t“J¿çî‰ñ&K"’Ý™¬ñ3b¡ùm)pògõÞ¨Ò@7ZðbùZëë3 $‡–}ÉR?Vô]×s³ëhœHª'H¯œhaVþ|£
-fi§b…¢ÃlùK§Í…ý`èñüªÅÆÒ?ÿ à9;¤Kg±'¹ ‘[3£!<£n“7ó˛̆¬C<²ý|1&‚»ù£ßÛÝN|«‹ù¤qµñKµŠ§nÞÃlo,Á
-§n ªþØü‘¨n9Ñ羘cá*ý®Vó,CêpÍ›„H hí&.ö}EMÄ¢]زÊ:³š/5C¸À7‡‰å ”Ûñè™7º5¤:êÇÔ‡õ¥k¼Žjs‹f&1¬KÆZLsØv¬ÀqUµ¢RÌÎZñ5¨¤¦|ßCú£•Ø8ú¼Ÿ÷&d‰ç›š ¹¯õ2¥/Ô>)kY­õà¸s†Öå¡©½LÐÝ(^øYv 1«­À,Út˜•IpÀéÌž8™? ÐÓø~!OÓ¤[gàUbw³´ úT:Áh­Ê­Ë²sMZþ÷œ‰Òb–= ;[¥$´ËZÅ_WHÂA¯:LÊÚ¢9ÈGÑYì¥b›Ï
-× zeRhPzj#‚N ú˜yújtA‹Š‹¦§e’²É°‚ÄÙºèÄé‚;§g†•Dê¹S,ºQ­€]>TÃ.X »”ÄüU›B]8÷‰­k÷¡²ìè HÛa¢Ùk^ì‘þ'í}ƒE%·š«Ïòâ[ÅRÅÙ, VQ…€Ãù®:Wì ò1x˜ÅÉ„ŽÌ:ÏÃŽ]é%·{²Èï<v»Ã¾A¦1¹²ð›È9Äîªl«ðËc¯{0;§°,ÆıÝò[sèñSü¬št pb‚¿ˆÛí”&æ¢Aã©Äõ-!_/‚BPfÌÃѯjcîͺ¥¼uß°ÓÀî‹çìÉö7«üÝ%DŸÒF
-ÔÚ½#š4ikíóTF yžÖÎø AŠI½–ëÈÀJ7 )‘Lkè„·~ÇÒB¸KØs3ì֤̾ÕB{6é=]óÎÙéyʵ üÂÑQû
-÷§@_8èm¡çö? ¢Ç¦‘]ะ×É ^Â¥ÇWs®ŠN¼â óy‡è0 Óà-\—¡`fo¹÷Þ¢³Ò&S
-Šp׳Xxçý3SËŸ²Öî´©–´…Wë¦v¸þ¶_úÙ"d–üSe¡ýYêíÃI íB}¤ÈÜ`”¹ü.E÷§íÖì
-‚HåéBÙ+~²¸Yé"ÑY^ºÈ‹]¶a{P!>h¬Wáæ,@a&##€)E+6R]¡L˜q“Ëó§G8ëBçŸsJйSjú
-–%ˆß®5[/ty§åVëÚËè©2—f&,b0C”¼qbÜ*ÚÕæWÒ©=n7]7Çm2ÔÚ$Ú7/5^õÔ?S¶ý®„žÈòNòvÍOéC¥ÜC½‡:R×j1ÉK–pùÁÕ¸´î*ÓŠŒl È:á4Ñ¿„0L5‘ð3[j¶]Gp¾€Œ¤Jpïz t(23/L@öcEƒ¶‡Iüy{I6£4ýÃÒDò95‰ÌâaÅÞÖg¸ÆaWž‚i…^››J<Þ&ØÀ© ¿Îèug P:¦ì<}vSs¯j8 À+$f¸”~`ŸAN0ÍÎy¸ê=(­­UHyJ³þ|²õ™(À¹³o–X³Û§™E –:b¢Ó”u³ñTÃzÐ4}qƒü£ý
-á_>ÃkØDG£c’§8²Ï1|°
-‚XXÒ§ßz¤•tCo¡Æg$‚>½Q'µ/ÓÚ.÷#SŒ[âa¹ëÎsœa§½ØM Wå³l¦ækÌîØ5>=Ä)ËwôæJ9Wvg«ÞkËŽ2|–‡‚{‚µ='æà9§/[ ÙÌT‚Dó†çʳŠ–žyÂϤF¯õÙ]eÿ¾Ød^"„þ J¶ÔÇ:ÅÄzê9âMÂh³#P7œ¢»£…ÀÙkšžò7(P‘ÅÈP€òaÒ•éÀ}ÝöëŠ,$ê&€×VÖ@b)]‚níòÔgê?Î. X½VÖz°bŸžãÛøà3у¿[B!¬¸à‹0|ù¬°1¾Ì%Y¶RhÇæüÅõ¼LçÝbÍ”lsœRK'äîP ÷ÕJò5äÐ:^¼lµþ¨æ/-"H:%§`#¾èµKv’cdò¦d aYŠòTaØ ÃløK.»VµÖ"ÔÇ”Ýè ËF0QÃ7šÑájR°šðð:?­
- {ó×Zû0'æ^­^TK‰)—&ž×aj ¨%ùìczÉ€a÷ô…¦‰^n¸¾‘³:òÉï&/_!•Æ½:0~¾î»ãÉ„G su©“4ûºVÔn:-}5Ä} ŠRúãmïåªàªskŽÌÛd‰…(U¡\ÂzµMÄ© ÑEÅnDµº“o,zŠþJH0ÿ\™Úkõ»mqWE)×¼ÈîÐÖ̺þâîocé» Ž[œI“QW$JÛJj¸ºÂ)'Ÿ%Õ)A3uñFéж۵
-õÇ*"Åô»ß8~¡¸à~†‹!‰zךb§Êg´‹æ¯}oÔý¢àÐæaiCÇn/‡‘?,ÊÊ­æm»Iƒ¬~©§à¯áâñZyó§ú™Š‡úx®ãª)§øÆRtpÄÌÌUÎz+ö$ÎÖÌÇOŠ¯ÏLªh’€¹eÒKÛ¡IâGhÒ˜åS” $¾5(D[ Vx±Ò/¡Ê‘…kTzÏJë À.Ç_N¸wKÍ:4bu‚jðtg¥+û”HåbÐÊhªôŠð%ªÔ™Á,–ĵ½A¼jŸŸr‚SÛ ôözF¼ëDÈN Ø£ô¨1©þÁVG ÒÑœD¥ˆ}™’ˆFV†#s¹RI)­p¿ÎwŽÂ/Pcé×ßט½<ŸjØtVmÇÈ¿®’RŠTC°p¢íßj]ºç²ç` ¾@ËÁÛƒ…Ô ð ÷åΚó"v#ڬ͡F«
-ø©,_ëgi%}
-‡ÛÖ+·ž"- ´é¨Zî.K–ع®ÓúÖàp¾W
-%ø>U£ {ü~èð¡É`8~}B¾-Z×=üé«XêBù ùùðž^Q@e¼tœ»|ìלPC
-,ùÒ’j¯þ¹òÁ;çlñ{ªýö„—¯K»pNÀk)Óè²É ÷Y«2Ýœ z¯9ó%Þ¥ì7þL³ {¿_­…~¹9Lé>¦œaO*x¢¹Ô¨ÏL¿’ñÅWÄi¸žUÑ3l%Ø"pM|C³FvËØAØeˆÜѬ!^íüõñ h¤^¢Ü(
-¡/ÍÂaIú ]€á?êù=à"»Ñ¾Èß ¬_ikS?ýsQÈù/ ¶2>ÀTá’¬s.ªÃää; v€)íÛ¢ñ“Ùqoh±
-JO­›ó0#‚ÆÙ±âI ýÚÒ®®lÜŠ7£QâxÛ˜ËZeŽü&è?—Ž;þT4ù©Ü4Þû†ÚVyª»jÞqƒi1EY–ËÝ»&µ­6BØ内êÝÒ1ñ!„c41ïýÖº Ў锉WŠAkxg}¸ƒQ0w}+õ¤ì/ÙO)O ⊞t$màVg†CÊ\?/iÑwi5ô¶_W.ó®í$gÁušã´a•F&;ÂÌY… ÊðrÉ"ÌË–#¹<¯•”å,N1Ä«2n´Íõn³§ªG¯ˆ&‹a y‚sº‰ËÖíŠ
-¬C@º6¥_ž¼6<K6ÆvÔ
-v÷wÛ8Áß×ý¨iù1=ÕàË[cw<Iz7»„ÆËeÀ´°Ùf.Ý“Õ;jÇB†#ê¨ •ãL”2^ßw%éøh„¹›UùuºJ5 =«6âA5{¨½]OøŬ]c2œ³>4®‚ŒÑêÈÁž˜iê;©žsU±weÚëâQ«TqïëìñÖɱ?~ÜËô&Ø!骮¶¦¿®ˆ2™Q¿ôƒÊ²¦ˆê ÝJ_®x¬[9Ÿˆï%ßÏÃÿXTUµês‰›$½H£7Š¯
-å+P¨7ùuW­@Ùò9ÿƒÖ«œm®z5åqÔüGš{ÜEÈOÔæJä4걨ÇN3ôÊ{¢&¸GOo’G
-MP()Ò$š×Ž·Ý/F†jÖÖ*¿L¼ °DüÑJ,Æ@¨£¬!,Zf92X>À~Њz'0E–œSL<Šp¯”¯Cºå}ýšà]²ß¤`ŸðJß®¹‘JÄšTß(ÂT&
-î€þT·bgJÂÿ\[!; ‡Nµ`ÔhH:óƒËž$)úµJÐßù‘ëBXѸq•©eÝ÷ÛpÌc¹Û ²
-ñlF»ÄË´“î‰Yi RÔtõ«= :tIBd•Îͼz54fsÁ¯jÃ-0D¥êÙ›Ö½üpë¨Õ¥œ$2Í…Š¿u ËÞðSëu€¬’.ï¨Ñ†6oîjŒ&r#ùÀ²(º)
-34‹>úË—âl¸ê)8•C7ðÒƒ¤kUǸ¹€//É×`rHRôHåý5KÅMOÚ9ýà{/*ƒæ,¼HÂƶ‡©gþxvç’†"²
-²¦!<]ƒ±Ë¿í‰HYFù•èŽ^KshšQ’b½Ž=GÕ-=²&‡æéï¹z¡ÉwZÕ–W¦$¥­é,ÿŸ‹’óé¿ßým¨½™4Ý(‡.ÈVÞgØ â…#“¾™û½ ¬Æ±nùêN íæóuŽÁÃBØÕÕpÃDÉ«[5“+£H5?¼üÆ.ÙÆùT¨41ººí1Åú%ÎáØ¡*#å±?ª DúÐaó‰ú00wÛkÇ­Nó ´ß9ÒÁ¡ÂC
-ïåIÐ}¾ËûÈd–@OBrÎ"ˆÉã,#’Ë$OoÞ
-w | »âÂöÛ ´Týrˆ/ºËè8ˆÙãÐ8m-,ªŒ£ÛÃå éíZ{[„ðKšçß%[M"
-ú"Aîû˜ƒs†#X}æÌ—¸~6³1*5Å-:X¦r½U\‹EˆföŸ
-æåS=¼ÒÖP9û; ¶R>Eã¥4ä ñ¥DöLå«ß"­ZìÆ .5à‘Î/è‡û"îØèMÄK²ea°gýç(E :¿µ#7­‡
-kµ·¡¶Â 3íÇTIøᮿR­´ xÞä¤~À2KY¸7§FtP‹õ*ZÌÃÀ“ï}Ô÷á…÷`âðER߶@¦Æø"ê^3H*ÍcéZG¥~?ŠîÖcÐw¥¶7αÎ_zkB â½ÈþvÕ¼[Š"e'ä ±ï¡¯‚º&Õ‰ï¶/¾à~áãCºƒÑW ÀÆÇŒ~¶ê E—ì v¥÷‡ß?Æ&*Ï“âsÀlÕHú”í,ôœà×›CâܗWJûmð3º^LrŠt›ì4?æ÷bÙ†Æ`’Ôi(„%|H%"JmŠŠÆ,6#9“w§Œ{ñŠŸ‚×ÂþÈÝ=óæüçس¹ÌÑÉB²$²î4ªÂ»ôöòƒçž+mÂá¨ÿ•%§:¿ÞܧþwLÑ9­ å¾HeV˜zcÎVN
-îÛ7ü‡×û
-²VÄÒ`.à›W—û·ëŒÓ²{9?Š/ÄB/‚@ñ9RW~ÑÀ¥ŽJûáÞ¹¨ÇÓoÚ1À³‹0zhIÊ$@¤¦>Z¸3W\pnŽóî|#~PWþó&¶ÞUõ§<”s‰,ÊØh>„ªÇ-WôÙjäkËom=8_
-Í6Ë<dÿvÐ7Äëx.#r ]ª’ÆP’}ÀÏ,˜z¤*†—ä&½ò-€MX=¶©¤'UÍs5rbƒú#&Š;~Xûª «´ Û;sÇÉ­'³zY#Ûf²‰t¤RW'u% 7ÙÅÀħ¸ÇòåOËÔ.ª‰™ë21ûZ©lT·B3KÈz_zcŸ{ÞHÅ&e‚ó¶ˆÆ{Á”ñE½¼»Üš‘ê‚FÚ±AGB¯Þ-åùçÂèmmz“åïáNQÅ¢6—3poÄõ0òb[×¾«ê´&gtN&=ëõšÀ­çøö^Ëê&×).•
-4…)Ö ºÐ1/ÀÞŸwu­ZFpd÷KñÛ IÄàŸÊŽ¼°<Ý0’]ù{ÁO èp¦C×¥âHv¿ù7í¤š~JµbìIú zÇYŽí;7@VäÓñ»Í-åpª·~½‰*xÔPdlÕã£?•`ù8n‰’^;+SÄSÐáÐdJŸz“8(ö=XX–Á†h\.›Ãá+ÞŸ…xCÖž²JSæmÄ[ h}*;ò­bj»IÐ#ö\[¦Ü.?3ßø– ÀÕ,úIީПk ó‹Húê,­¹>0æÉ2Æ]IÓOÌ v]²H—Îy©JÞ$"ÿþz¢19¤ÍƒƒWÁˤyù@\Éö’‚Zö‡+‡M4ë4¤´èXù–ç´$êø?G;ŠáÖM÷£ûdŽEß‘R´5ÏRÒ»¾tµwÙØ~ó+ûýyVQBÂââ±ÆIz½ØŽ'4t™gOóIbJ¥‚œÍ ~¹Šôá—K¤²ÌÃî<ó;Õc–ÎŽ“–n÷…Ùn•am1®ö~`–`?“-Çë~-" £¤oåí£6•vtQŽ¿CêV‰>j†ŸÍkÖn§tAîp¶üálæUÔ ÀØPRtZ”kkDV‹9Ñl¿÷˜Ï…pÖþ£æ™i‘¬²UÑMñÁØ¥†jY ÜÔðBîšu¾rš#P®É9•8®TÎ…ž›v3˜p#œ;@í¿Äõÿà"ð €GFG„Á#C¸þˆ;|Àendstream
+xÚ¬µcx¦]Ó%Ûv®Ø¶Ù±m_±mÛ¶ÝI:¶“Ží¤cul»¿¾ŸgfÞ9žo~ͼ?Îã8wUíU«jÕÞ›‚DI•AÄÌÁ(á`ïÊÀÂÈÌ P°²3qs‘w°—cu°5ü5rÀQPˆ9]­ìÅ]¼
+`e°ðððÀQ
+ôtý'— `fåâhkìõ7÷_0Gg«Ñps±²·ø/ô
+ĬsÍXŸë%¹Nfß{SÊ*åP„3]lÎ0×Ï4dîÅäOŽHþ¦ ˜Ý(Í hõ%gç”)'ÏOTCã£#Ã}·‡øtù °|1NùøB:êÕ>Q´ËGÙS¶XÂçÌ}#ÒÜXœ‘,‘|[Õ#~WØw'Š„ªð£Ê#$n6ÎÞÁ)óýxCÉ]ûAÍæ”=$w?º>1$S®ÝdÎ ÖÙPN< 3±ÌWêGâ¤Ý£âò
+ã@]á~?ÅñïVìÁ¢ˆJM†³„‚ô_G)|æ¦jœ:ªSÛbÈ ~,˜(£ÜÖº“£xõdñÔ¤3ÂW¢säbÖûº.Ÿ†Ç“Xœ¡f-TûnÝö†hRâ/2z}•wKª{ ?…†|ëþ÷(¦¤I{Ôħjäß{ôb²4ªR{È2Ý· 5ꮋ®¥o ¼WÐÂÜöš¢ª
+¡s,ÀñÙ燨×qZðoñS-Ýì…|­7€°4\±uhò2â·t–û
+C…Cmkj"úðÝãûò? ¤L›_LM‘>¨J£M&ÂÃ¥¹Ö›Bnv“EREŸÇæ« ÀZ§*ŒVXpÈqí$~Wóÿ˜\¶œÌÊòz¬©«TX¿Â4›÷T#x0E òÄ‚ùäNÕœjÛEƒ²¾ñâÈø¡Î¥7µ<t“[ß|šytl"†‹÷|ÊÍ6g"„¤jèŸe¿âûežU~¤ÍúƒŠö!8—q7¢rDìúøÁ‡~Y*ž÷3ó²ô½6"’E/ 3A~uâ„E9«X¾9y½L45˜>ZÇú~Vr—Ž!^Qê#®¨çS{„«;B¥9NG
+Y 'B
+MüWVM¸òØšSöÏsˆÊQ;ôà#tîWôÕd°±ÌêÐãFþY[G5Ó»ÒÝÏtãâ_± ;!µK°æ¾3’ØmÐð¼]ˆÂ:c
+Fú¼ªF&/0R=5;|¿ê°yöo1ð„­-ÓkÕG#w©V·‡Â6 ùQ®ÇÊæ [Hd/w’#B G8MÌÉ=VÐácn¨¹)Ë4j†c¢ Û?áØ3fž¾òçƒG/’Am eDz!*ýáY‘’áÞR¾£Q»ÈÞYuÝÍ» ¡O¾:¶ºà¯}uiß¾Øýh;/²kvôâ¿“ÈQýÜÔ¼ýܳôŸE£ùÕ gá2vP…——&âÐ{–ë|þVÑŽ@YaJX°e>(§*³ãay!^™Rq5i—öS·Ý¯¸£ïW]V€Ó±¸ŸmŽZŸúûW†Ùf. ´¬%h§ÿB¶N@—B£(ŸK×koZb±3ìó ÊÝâO±‚cõ®wíë¨F9j,¡dÇ*¹´ dà Ã:ôgý½oZúi`Gg|e¶þȯ Ë eX:?æ˜ö•~#3úºéµã<;‘ƒð35&EAžmJ–á6;©Aæ‘;î '’#ÊoÛD]Ñ,À£’}¿wá<˜?&HA%VÅGŒÇÒ›Ü7³„ÊÒjE 
+~˜›ñÑ $¡ØAÔ­Ÿü;\F$Ìß<³kNÔÒ5‘~“Oç|ŒmýŠFøãR@E_Êw4Þ"X!ižøNqÝ[åûÄôë'ˆ
+}ìD"`ž,èÛ˜AfU·oÚà·¨TÛ[³'œM£L²Î;òèeñ UU=O¤­ÃZÞ4@Z3uò7­ÈñyßÓªsÔÚR0’ö¥1¼7/‚¹R:ðw›@»Œbâ¬ßÞ>0éÀ©ßŠ‚ß˼n8—¨9KÚ$>NÎŒyJŸ¡ÀE/àoGÂù4°·#îoî–êi7uòý~ý€¨¶Öá÷0\‹@x:ò§tà^c¶Zí=`±óoö"´“BY7±ÕLf¶û2HöþQZd«‚mßha.—wf÷ û¡ÂF®0ó l8áîcä
+…Mußɾå" Bû«CŽ¸ß¬Ìqq/سÖn%Œƒ´û°&è
+ÉFl§?Xº„×Jf€^."+«^öyvðKÛú x¬/|äô0“Ëm¡Ù¹ê”_f[5·Î®?°UÄظ‰÷­CÕ*a…Ç.ð™¢5I^Yko(mOq†!<]ÖÏÐÖFßôd„š@SÜuýÒ¸íÝ7$PâÀ¹ƒßZ<RÕîÜ7†vzC3¡,oÁbø§¾˜¢æ\o, fôüÇ7û5Ž_‡Ý7í¼ »'h³P{Ê@sn­½»éõ@‘åe¹}Ø£<WõÁO’XÁñö7ÇbUd¶äFÛqÊn—ú ¯E‘¯ÊX*IÈÎØTØ„èûòÚÇÂ%N…Y~ÖÑþÀhYú„áÄ*bÂéyê\’/ Ñh¾öc¥æÒÑãÖŸÇ”áÓ#MôI+þ˜gÎs[¸1—±9¥ú™×„¢[8|×úÍí%÷ÊJ÷ŒÐÍUÿᙨ‰ã=¹di‘¸Ô8L5]£°+<õóî Þì+Ö •‚C´áõ…fiMŽþ<!}>ÖÆHJré|·ï•ó’’*Lö‡]KÈ®wÛ'7/š
+“OÆèïb”£»$„ß#´ï_åË^BYUÕò£b z•âÁ¾M«Ø)E r)àÆÀQ¨¾i—¯J× >¨F;.@.Œ
+œ¹Ëì™J‘Œ?±¸Â0í ,×fƒš¥‚®Pú±•´a¨ Ž¦&¼/N"Þo,SÙžÚ©¶ Õ~2FN¥r¹#˜Íõm€o¬æCðfÓT…ÉPé¾IÁ~#ˆ)oÛå´\s=QÕ â/=¤4{ PÎ`ÏYuJN•¼JÄ/à
+%¦j ý–Ïy´c땘ï,ÅàŠ3ž“þc3c$a²…{s†¶Ïƒ¢Òë6ùßÜ@¤c™2Ù½’ "Ód—§$ºNŒî%З¤K÷"#w>RdÝ<4O‹ñoÞªÏ'¯>{´C=ÑåØ?”>WFƒ{ ËÁúydlõ«0U})¸Úl‘pì)¬ýα˜žIÙ<°¤kñÊG!å tˆ­ ?ÚmÈP¢Í8z‘—uw¡Ðêaî¦ß³)ïe¦Ž¸bQëÆvÄ‚VU2㓆ÔÔ k)|j6t¿ße. ÙË"èŒQƒMWP[ÿ\òHÙõd<½C– Î!›ÉIÉuô ê»Üƒ }cr$¼´`’“†¦PöX‰¾è—–X-Xü³5V~ºÞVâµF;«ó#ìGÍD¯€ÎàKêM õ yû`ÊÂcð…º¿¸´6†çÏ®ß4õìÎfl?£i!e5¿bßg>Õ{û9A ® ”rÁ
+Ù*¬×'5 öƺiz®„‰Ýf
++Hê!± ®Ëö'Óä
+ÄŠ§h÷„Ü{É=Âݶ¡øU^–ÀàžèUS­œíê±¼ÛgéE¦oDs?X™W ß^®‹ B¾Óÿ…X÷Y(6ËCÊqZnÁëà¹Ïë-ú1ÿžæxñ˜²[ö©÷VŠ¨d­m1i0½ûùPšÒNövHûs úat=§
+©gÖ<L®CRÁÐöŠn,ÆXcñµ;W«`S¶"Sÿ·ˆò¥“O‡˜E
+eð5²v'úå„a(»¤Æ#r)†‰çðøË6-E£Í5øÊ÷5†ßý+f¨] ¾Â.ª…¥ábAðó³òþ7_†« ¡Å=ÚEÎ_k•-ó%AQIH„¦Æ.%í‚Dêä\n4[*37]ÈÉr4é*–› V7m‡n¿‚òF#²À›ô,y*oö#¨“÷©$Î9f¬ÒÏRÒÙþ\ͪL0¥Ü¦Ò>6 1ðòê/6]³äv®µZ
+_¸¨Àé«ì1ßRmþåEÆ„üPñsKªP=.¸#`@—ˆ>Qô›ð»Â¯_ƶ„íd¢ôN3×'M˜.ÆFrÔQ?žI$µ_«°ú ã¸åÓ1æOÊÊ; "ŽÀîÈ?²îwó:FÅ“|/{;þ¯º”ðE*´V÷$ ÷PŸ†¼ï'E›£u!¾$Hù+BŽ:´æô ˆŠ25íøµhÖ¦2Â1¿úO€¼ŸÙ§hémFƒjË[ÊÁsFó…ì±\.cá>—ócÛ—Ô+v©Àâ"Tû¸hõÖÉÅýLQH+VÊ
+ jgìzï½È=dql£1ÓÖYkû^PÔ1¦\µU1…$:$a^טôNyãLl˜9‰“Ý\Uäñ’E=Ì«}üñc×(Ÿ²ä»r¿Á¥E—j/&è;»Rß»•Sé#4¶ÇeQõ\G'.*ÞÁ8@g` ÉWQ>æ‹—qåÍ6K±{ž0BÏM­c×­ûëжÜf¬¬¼ÑQر!kᣇ‚§›-9\:­ R‘ Må‡C¶ Q›ÒRÛdšÔ$9WzC&Àç=²LƒzWuØ–`…IL €© úÀ!Ç NãCZsüôJ^ã"–ë ÂçíïY @ËA(>S9|]|u À+‹~³±ïL˜°Pš”ú®W ‘€
+õ‘%­ßÅ Ù/»" )´žTŽÑÙ^ì¿%.óR/ß2{ß¿)½†ÍŒÖúà ýÆìuQ̼¶Ç¤±/×ÊWŸµÂÖ~¢®¨ªÓDGë »+é,®ªÕòºY9ç#yÔÊý²ûX£Ì9þMd4u_‹´ÜÁïy¢¿˜¢Ñ#é©jr¥m—Ÿ¹iŦ—劒*Ã!=C˯ëCÍ>*78ö<žã$`V!”¹äÞÜÁš¯Ä®x8ˆ"‡cÍúÆâB“ˆYíHu›ö( Áz ¢
+ïà`íír⺰¹ò4r–ú¥ÍÃ_»øf¤¤ï§cžç¢&ô˜BoÂÕ¤7YÜ;ôXæëõsb‹W…«L9 ž:=\Þ«jö¾2–œÐÍ¡§³T®n1‡VtÈÓ¾LÌCôŽÕì=Ë÷ù”°tT¥×ÕÖz…ñ$YZ<*4<†¯i¤&A&Ùõ.˜n•ÇDÿ,égüáHÄ|‡ñ¶™µ“EÙ:O¹™6§ª ŸHÚVW̨VˆS­Lĺð˜ÖH9%Ä®qdÄÍi²Ý¸faîxqvÅøw»…d%uó¢0ÉÝœÖ|U’vKãº6öøÌ@!wJE÷²t!Ä möˆ ûjVÓç[Brøj'Y×öÂNY
+ˆƒ÷ÎÁõs½/’ÛÖ[0ø´ÊßxÃ/¢µÚô"ü(Nc&uy âEB:\>è³€v¿/èzw–>Œ¸¸ÙŸ3©å5¶é¿U@<!%^>ÓÁ£*8Ë•ÇN#ü^.¡ èFj$eoq`Ì^r¦è8OoLe¾À´¿öùh `üLêEW*«
+uóÁBˆ‹Ûª–õ›ãðü†Ké|^ŸØ$ÉÃö¬:ÿÊêÞYdäÌZõ[nðIZ¥ïƒ&ýMp‰£5ž×@ÄqÙ·dsá×mSY#Oô‡àáiÅÅžØ'u0övFä„ùžP( 1•}äG&ý&Ûrô€ÂŽXtc†BZsÔŒ¹h Mvi1ž¡!„ÍcýI‚#Z«ÆOv5„±^0)ùû¼™T8 ÿLñ/÷ßÓª"cÉ\Uå»°8Z›8´ŠÂcçÞ
+Î(ÒÚO¨²?1ÐDµò r8!´õ™D±h’­ úÓM~ϟǽ²…ë†î~µôqÜEÌ Ã7)e§Ì£ÏâCÆ'C_{/[ߪÆ>O
+º íää
+ŸNvYÞb¡‘±#Æ™uiÃØþáòD„Jº õJÌ)±ùQ'óŽéE½•+lx—.U!’o4Pe†»> ½güÏ/ hß÷ VŽO~^ÔÌðåHàj!Ï_®!‰7¡†:£L[‘xs¡°öJƒu-{—mR” ãÜ>1]ÃdKFq¸7}æ@,¶¼-Ç¢ÎÀCþ¨Ù³GìA YJ§øÕöú (Í¥ãX¶2À{ÅõÚ¬Çú=A$ÓbPI²4¯‰x¾V„÷c½áÄUŒì‚ü¸Úº»H!õ
+.ø@úo‰.Aµˆ¤l”é
+ZC¾“üxŠ>èï‡P‡ˆ%<ý`TTþ<¸¹Ã¨ò~ROI¯Hµ•·?}ñ7lymþÕ‘¼%-€†|~‘@˜†l
+û¬D¤AôùÙL—[€EfZæTVû=ÞžWðó‹OõtG 6ódìøÒfÜ_J‡ÁöR*iÖƒ¶_Yx}|!.ü9l½~ÓËöžû–4)¾ÜS¿4ØX½½ïü1Xš¹•.Ä!O 8×û…m^üÞ£ql1. ü‘B&xdûÎ !<ÏH›?©³Kì›ÇAà’°ü‰‡3ÌXo²°2fËÔáê.•I¹Fÿqš.ÜJ’ŽŽý¨Ï;µä€Ø”ue½ãVX ä¯u¢èLJ{BÖ´Æ ±ˆèŒ×°ìÇíç&íò-MÁÏÌ b²á—“­Udf»[{¯â…LˆÌCü¬¸"ƒƒ‹ '‘‡x’cEµõ]G¶ò¦‘îi­æs*Íd&„ç­•ÝÖskÍ6ÓåøQsèNíË°k—ËìÉ_ßoQƒ.ßaÌ/ÁsœSè×òy® ëW žc.©h–C>½t>! |x 4oÊ°úÀ׃Õ,o-LaºA7Í°Í7)äó3̆VfŽ$0T¸Ÿ9
+ÚŸ¸\@!#^dcÉqæ’ù-$ õR‹ÛGÐÑ‚ÄOL!¢köæV¡Rî6æÎrMˆã'¨_dœjÜõŽ­»¢'Š@z£æìôü,–NÌüua„¥¤|a¬hž~"^$6Â^°|ÒR4€†ž 0©Vb"óãÏ ž‹#A†L6G²»0… Â3ê6ùD ¿‰‚9È\Dá:ÄûR(¸ë?}=$7zOª ‘—?…!<تyë<Í÷Æ Qš?ab{¹F
+Mp.Þý©\B„$–AìÔ‡‡}Õ»X¤ ñé£×B?¢)ÚãŸ@´Æï 4pÒSËý
+±5Á¿Z¶&
+Æ<H)]Ì{Á}꺽î¡›0<aÔÔ.’mWâ#ªš,)=Îܘ’)nÞ ˆ=@öõÕ<jÔÜId¶QГörº+ž¸7rªXb D¡jºçÆœùaŽG¨¸Y/°kÀµl"%¢´™º:ô7“ˆucË©èÎi½ÔzZãß'W‚Qn&Z¡gßè!ÕÓ<¤Ý¯/Ú€àuÖXž·0‹ f_6ÕaZÀv`M¨¹ª—1bvÕIü‚Jn.ðK5bø½ÏÿãΔ<élS+1ïµÁQ¶ì…Æ7õWv[¸!MEXZ3tŠ·`~¶ý¢fìZp‹.fõ»c2p&«7^ö#ô ¾èÓ ÙÖ)xµ¸åí]££Áµnešc›JÛŠÜ|g³v$BÀ!W’Œ ¸U¯èÎViÝ
+§vÉ×%’Hð«.3„ŠŽX.òï˜ÀlŽ²HñÍgÅ«ÊFýri4(}õÑH!çDCOÌ|Iuúà%%Î%³“r)¹X!’=t’ ¡“S£*b¼iV½è6À.?ªQ7¬¦}jRÁšm‘œÇäÖ•ÇpyNL0¤ÝñÜöè@­³Î¾áµ’2רcíågE*ÉR™Ò\'›˜bàáÂw½v0Å8<'Ì÷’B'Ýg‚§ îŒÁÒ›=¹Bäw^ûÝ¿`³Ø<9øMä\5ö5ø•ÂñWÈ=˜XV’¸…­yô„i 6-úDA8qN!ÍŸ$öÊ“ó1  ÔV¯çÁ¡(³h—µM±wæ=Ò>zoØMé`w%óäû›ÕR÷bO飅Žê>‘ÍZtuùª£F&¼O¿NAJȼWêÉïÁJƒ6‹¨ÌjéE¶~‚ÇÑAxH:ð0î֦̽×A{5ë?]ñ-|Ùë{É·"|ÆÑQÿŠ D™X<èkeà 8êª=§fÀ¦•[ä<wÐÍ$YÆeÀWw©Ž…Nƺä ÷}‡è4×ä+Z—¥dáh½óÙ¢·Ö!WŽt×…³\|çû3[ÇÍÊ´ú«ÃyÓ
+6 eœn&`±Òj¿ŠäzM’äÙõDè.TbaY˜‚ì!Ɖo36ðõ‘nFk„§‹pi›ÇýÄŠ»iÈt‹Ç®:Ó5º²0“¼/ºI´„SyÕïɤrJÝyúì¡áùU4¤éB,¯˜”éZö}
+Y4=ÊB<7ïm覯üë÷¯Ji/¶Ov¾“…8·-’¿láöiEçh¤3Ókɹ[x)ŠcÝk™½¸CþÑy…Œ ¨Ÿå3j¦§Õ5͈WÝç9XÁ,­2n<ÓK{ (¶P2“ÀŸ^Ši’;VèìVúJ)'¬ð°<ô¸O±Ó_ì'Ñ« FX7Ó
+4çv웞îãU:ûò¤]ªzrÔîtäÆ?+ÂÀ½ÀÚŸ“rñ\2V,†mg«@bøÂBòØÄ*†N½àgÓb~õÛ_æ<žo²,Bÿ§X``âN¿aÕ)`Ѧàt8hOÐ=Ð ‰CálC4ƒÌN©Éce)Aù1éËua‹¿nôDW“ôÁëªj!±”/À·vy²ôI¾å”®Ý‰¨hß[sÌÌóo|ð›êÃß.£VƒžóG½|VÚš\ä‘®X+¶J`sEsߧ¬Ðû´Ú0§Ø¥‚ÔÑ {8–À}µ‘~ ;¶M”¬A­?¨Ȉ
+‘MËÂ)ÚJìyï’盾°+ÛAX•¡<UuÆEÁ°ý”Ï©S«³ óõå0þ
+èP…ÃR œüZþ¸» ÈÚ—F*þ/\<>c43‰0ÿB¯u!u•ŒA¿8ÊNÎØÙùªycPÏ¢/’­ü䄆¬äÊfI˜vÐi}°´ù 1Úd„fÍ9~%Ù ’Ã"´ÕÅkƒR†à<Q9˜ñ&å÷ìôNJì
+ü•Ä;÷´ìCc6g¨FÏ 6Z¸ñOÉ4nFíÌæ@Ÿ(’j½9ÌRi|ûÄ«ÎÙ 8-J_ŸW䛉n¤ÜLá J¯:³Úl j]­)Tʸ—iÉd8r×KÕT˜²†÷A«—h,‰BuÖƒ}͹‹Sðé€mWõv¬Âë•h +Úþö…G«I.& â ´<¼Xh
+¿ˆi_þ´° z`?ªÃÖRf|°¦ˆŸÆúµ~š^Ú¯x¸m)h³zã%ÚºH—ªíAéºl…Ý”ç68c`Gàw©XŠï[=Ƹç(àï–†ãß/ìת}ÅÙ+¹†¥!\
+ÒTÅË£A}f–ü™‚Ï$±*AËý¬zï„ži'ɉkê–8º[ÎÂ!w@ìfsñjàd€‡XH+ýèNY}aK:Pä
+ Š€øÞ à ÕƒöEñnhóJ×T—öД‡B!p±•ù¦—l“{^.¯Ð ±LíìØK˜Ê9ˆGxC‹€U¼VX–ììÆ©škð*û}¡óŽÌTÝF[|¨ÔõÙa—UÃÔÆöIœ¯ÁVÔæé„7½&$¡N‰pˆ®Ç}E÷År{U­chX•è'Mí¶Ì—ä$,ŸëeÞ·ž1ÍK™•aFïá{, -ÓÀ‹*øg•ŸÚ6`F…LÎsîã$’tdÜÜØy”®Ç¢%šð¶1W´ËL Ñ,uþ©löW' ¸nºó ³«öÒpÓºåÓfŽ¶ª¿sKn?]j‚°Ï Ó¿¡gæGˆÀhfÙ{Ô¾ Ô‰í’MPŽEoødx€Q²t•y Q ”î§V¤óMÇL9‘5òh°À!e­Ÿ•¶¸¶ù8¬«”{†ÔuQ°b‰¹BM‹sÙ²É “ÿÆÌ]ƒ ÎôvÍ&Ì‹Ï‘'½8«“’ã*I5«6i²Ë iw ®š@¯Œ!e$}‚s¾{‰ÏÑëŽ!!cPGÛD<À-€s_|ùbò´ùAðËQó‡ú-š"ñŽÓ&”­Ø5‚µ3~‚Šz½òh!Îi‚é!ƒ³ÈÒ"s‡¹;o˜n¨Ë¼ 8þßÆ”$'U©
+v.Z[våe±àÞ¦§°†`G‡·^—‘žÄR…ÒǺOƒò^ØÔ bŽeõþ™ŠÄÀ.2¿AÏ»bÁ²¨¹zYÛbÛÙR8ÕohrZG’Äý2
+’k­~ºk ´,x™-­å®¬¬HÖìFÉÞ NžŒ„_ ð3¡¬yÀ=ΑYÄCç­²(/ï?çïIþÝRˆ²¨è‹[_³r'Ÿ‰T™'´7”X‡€ *ÿ|xÖrlŒIìèUFìžovñBW¨é±½5à+[™ƒã·¼Éú×»„&+åœÀ´±Ùg/<R4:ë&ŒCG"ëiŒTâM•3_ßw¥èùiExZÔt»ËŽ´Š<«7@µzi|ÜŽÄmÜb3]²?4¯ƒMÐê)ÀžX~j8«'Œ½sWst’g9èáѨVóìëî À–Ës<|ÚËò!Ø!í®©±¡–¸ªŒ6Õ¸ð‡Ê…²¡ŒîÛÊX©|¨_=›Lè£ØÏÇÿ\RS³îwŸ";Og0N¨ã/Tl0ýu[£HÕú¹ðλœ}¾f-õaÌâ{ºGüyèQÔïÊ‚´q¨Gγ *{b¦¸¿ŸÞ¤~+6C¡¤Ê:j]9Ýô¼w©Ûبþ4õ6Ä^ @+µ¡‰¶°l;âÌdýdRCúN'æ“DÀUzF9ù ʳ>XJ²éžÿõs.noÙa“’cÒ;c»öZ:ckJc£S…
+Ò§ôSëÓ&áî` âìð2«oÜ“ýÛ²z6µÚÚ±]9̲MŒ¸#úSýª½©@Âs]¥`Þt:õ¢q“ÙtìwnÒä˜×j¡
+Ò¨tWj¶q,£Oí×Aò*úüßMî´tùó—ã´Q)VÅ1Íѽ»y§ÑÁL™¸Áì$Ó~ݯãvÔå\ƒóû ÝÓTùœJ̹`¿ÅŸ
+ÛÎØ,kc4Üò9¨3~`"Q€p ¶¥Î6…y»L3ñ|hk$XÀ­MÁ=3Èš„ƒÆ8¯ó÷øúãÁWæ§ËH‘þ#9Lñ>Àü‹tú“ïüú†Çåħ­ Ù§=Gß™nÚ[ù²kcñ>þþci˜˜0±½ýÖ$dï4ï–7ƒIÉ=&ß’(LaË­<ü;±! O$caf%ïâõžvefÁþc›k?2H·Dâ"V•Áó §›#„M韤ãب—ý™Å¨A·”€JJmu`UßK±ýj”ùŠ÷Þ£Êä€ÛïÖ/ÊÞ?H_]x3áÂýsÞV
+v£–%·;®ÄÙùÈ[Úãèß( v~݆¥À¹&=/{±¡MJ‡³ã™#ªCò¤›SOæÈ :I»ñ£WX{Ì5ö%{›ñp2‚D{j)Ë©‰ë8tT˜FËûU56…¸×¤à 6ž]¼Æ˜6sÃ2ôk£ªXÙ?"Wª¨T&ãUÖÒÊŽU&iÃÓØKwzK‘^ :àra‚_Ò‡mJ¯Hd—&—q̪·Ïöz—7QÑÂÅ'ø ¡‘Ô”|w»Xõ­©·>uC·Óè/™¾¨öƒ¦»Úéî–÷üoýËYtpqSù¡l¥®qõãõª9¿"Mq†ï³€xºôEÅŸK·š‚¸ x÷O¢&Sƒ:À!ÏbÖñP|iÁSG³hlÌ0Ðl†˜/?Êg°‘ê§4F ½  OÒ
+¬5]“–Bþüd?Ã!Èa)±Ÿ UwW¬•×½é·@LôƒoÑ|p¨ôÞŒú˜Ë°Ôð¢‰OØžfŠ\ãà9]ËšJȪÈZ¾P„ðôùPŒ&†®_vǢ噗b;ú­-aéÆÉJ ºœÕ7 ÈZœZ'ó¥ ÂSïtj‹¬¯ÌÉÊ[3Ù?–¤2ßli|˜µ…Ü©†ÏÉWßg9D‘ÉÞÌŽüß×âÙ¶üô&‹÷‹òBø»&‚áa!ìëky`¢4¬[(TP¤[î_±K"b·q>ë†L/ozÍ°~ŠFp@8uªÉJ;EFn$Œ©
+€­^A%CÛåÜLrjùY¢žÜn\4ìZàT2'c6ê
+½‡?„i¬yè-†ÇŹ(Tv–lè4Ä¢TÁÀô>\Jf>jϘøaøÀ1•Ü< m§afæ»'Nê8¹kðèRž;|(¦b.@nz# g[Á°½™­nÙ¸œLz¤Zõ’Êáa+ÿ|ÿ)\ØÇKΰ‰b0ÕªcÓ,îó5Q5²Fg:Ë$nÅáÕÒõÎ €Ð<‹OŠsº²ÝÙÿDÃO´0yw·„¥ÇÊ2ø½= Ó{ú¾í‰±Áh%‡òRsÛUc"g×>ÈZô3MÃà^ÒË«gÔQ™¯£—k½5ÖCÍôòíyÇtÛÔ¨Ù`X¼’ã$’¦½$85Éi7ÍdWꙩ/ABI±Õ燷Ö\šÃbEPE «Î~øxâ;p6Ú5´£„ÂÄ|öÊ~Û`¶­\3þ'q¤ÃsáÖZwüÈé.4v/'Áxjµ¾%Y3† #óÇ6¬æìy|^Aj¯ä–Û4ÒÆÕˆÉé
+V®ØäÊÕtßJ¿Ú™\z?K*¸6¥!ÑH³Á½Ù¥‹Lº|_‹MœMI¹$Ö›­»Zƒ¼ ¡¹ ’uºKÅ“ž
+·ìÛû'ãD¸Ø“²x};èþÓ–‡úŒ4D'P{”òeéø÷ÊÏÍùøëjˆ¬“q~½©ýë¼ñ<ZxàM>Ê€·ÅV¥V˜OëüÃwK,-èÄJ„¨Ôq®ÐÍ°î
+sþo§ý™
+#¶cër!¡W= „´*¯g±+¡‘À#es_‹,2™ÊãœP+ÒpuMYÖP/ºÈ˜ü‰‰;°>Û[¼”ZDñ½"ºßoÅq™Ü
+èEHÁU 1u”mLz‘ìåÃh p;ÞAåO‚¼ïw2}íÞ–!F¦†Ÿ’)fmûì‚Àü M½ÿÌ{<ÇRÚÖ[…§—Ëu Íc_Tž†t¾Ö“Þ©Û÷ŠUé„òPZÜ~›…–nX õCg›
+ÌãR7ù†æ9`ŠÌy8”5bX%2Z}ššÖ<.Ÿ3 9‹o§œgéJ€’Ï Âá·‡GæõÙI°g Ù[ããÅ)d½ T¥1vÙÍÅï<wú¤ãïWÖLœš‚ œ†ÇØâ3:Wª}ѪìpH¦Ü­|œ@l¯÷ŸS8±åëz,††ý;x âMJšÎH#œxå8Ÿˆ„‘Þ¬ÝçÎQøù—ÈÞyK|8aç*Asabvª†ž˜L)"Ù ÷¾¤B,ƒšqe>>þ$h(O®Ó=Æòè:ià·ãa(×ÆÞc1}œSBª=9›öÁï‰âòí§ÇØã®LYÛÃ%¸ö9¶Z³cçÔ%ו<7oø÷¯÷pn=¢+‚t³@wFQ´-Zå§;VIÿòÉòœ›¯ÀémÂYªíÎ)[HZe4;ä]æIÚ1Ô
+ë¶ÓÍeÖåW[v»óœ ¨ý³®èM6W(Js:L9þfzoÇÕÊåÄôq7ùX›§¥å;#=)GMjÓ§§°ó>7W7WB±Ú[·ùÿz¨w&"L>bq\½·„Ѫ~yQÕák Í«.·úû˜¿W?¬>¥¢¡@#r’ô-”‹Ea]eãò£»JÅ™|šŒ3’ÞR£ˆÉ½ÕÐüJåñDáÃhºÂ’ð‹²wíª[*Øà©r‚kº4\¾`fÜ^î ?d:ÍûEËf™³¤‹M”ÖCÓ„osCü>Kñ•¹4ÉÀOõ62|3ÑÎyõž=¹»ú1¿¾^ž®´—Ÿ5x´ !'„ú÷On,‡ÒoÝy€ùbº…q²{m Ì±ÓOkÏx†E+ÆÖÒ7ó!xìòŒF™³0¬·«H{¨˜þMû¾É^Ù^ÍIösìëôòC¨Ÿ/`u¨QwO¸øˆ”zŠãDÆFgÃî43ö¼š…¨{ÑÐ÷ É`²lAoÄšCÅôìc #sˆƒ6>Êjv*AjNeMx‰@³ÓÆÅ£4ìæh7ÀP­–gÂýÿµ3çÿL0
+Áiz“æÚæ†Á‰²ÍÕ²Ïm7ZÄUé×4(ê6•…zÌŒ¢PMpêÑýה¤ù†Ô(Y«»kªWÀî!`Ê£mbÄ¥„qgˆœíF2X3ó£æo_ÞdõÍd¥:»T˹’E€-ä{.1ëÉ
+dÜp®ÈVã _¨¦1³å{?î:Wõß~Šœ©"LùQjƒÖ±:KY5bx„6Úb ÿÃÖëlƒx¢¥ ~¥,£Y§Ê½I|çȨ!VÃ3µÓÂzG#•¦n4’£Ç¦ßÒù»oôu¶Ô~«Ó
+7Ÿ+ó²Vï„(a=ÔÅ>\M!†rµmè÷È%
+^&ÍËâJ€°—Ô²?\9¼h¢Y§!¥EÇÊ·<§ý#QÇÿ9ÚQ ·nºÝ's,ÂøŽ”¢­y–’Þõ¥«½ËÆð›_ÙïϳŠ5NÒë%Àv<¡¡ûÈ<{šOS*%älõËU¤¿\"•e†tçù›ß©s°tvܘ´t»Ç(Ìv« k‹qµ÷³ƒø™l9^÷k%}+oµ©´£‹rüR·JôQ3ül^{´v;¥ r‡³°åg3¯¢Ɔ’¢Ó¢\[#²Z̉ˆfû½Ç|(„›°ö5ÏL‹d•­ŠîhŠÆ.5TËúé䦆zp׬ó•ÓrMΩÄq¥r.œðÜ´›‘À4€áÜjÿ%®ÿÿh
endobj
1258 0 obj <<
/Type /Font
@@ -14234,14 +14226,14 @@ endobj
/FirstChar 34
/LastChar 125
/Widths 2834 0 R
-/BaseFont /LQBWQK+NimbusMonL-Bold
+/BaseFont /NSVSXZ+NimbusMonL-Bold
/FontDescriptor 1256 0 R
>> endobj
1256 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /LQBWQK+NimbusMonL-Bold
+/FontName /NSVSXZ+NimbusMonL-Bold
/ItalicAngle 0
/StemV 101
/XHeight 439
@@ -14265,7 +14257,7 @@ xÚ¬¶eTœÝÖ%ŠCpw),¸www÷
wNpww÷
økd‡§¤u»€ìíÄŒ]€<
`e°pssÃSDí<@–.
-tøÇEp
+tøÇEp
ÐÖ¿¶qÒí2”"¥ŸjFy_ÎÉmBép0kìo)«”¼ÁM´}s‚»|¤ñ'w+ðǤxp@ö5Mý‹ÕŽÚ†^Wxrú5ñèñêÏðà@×5tÏ]NìJ^7(¤¯‘þŽ9‚:ê•Þá40éMˆ×­—$šÞy”ø¶r/Jù+v­roIÐé­‚|‰òNR-{UZØW3‘|‰ÜÓ¹Ÿ«®”âÎ8|M„ãA½7SÖA“™°?‰î!®¨{üëlkh_zsg'•ÛKº7ÃìQ23 †»V!‹¶88Szé-ŠÈZßʲÃìb“ÿ<Ìišð·uO[מʙåê;Õeâ*1žü
=Æ:nâ(4n¼ë—jºÒQ•"/>Uöló½ˆtë% ˆ/÷€{`‰ÔÒE¨N»cj,Uoo–›U{Lê,þòÛ’`>8[œÂ—;1Œ"ŽÛd6k$T÷ó¤ï0ÃcÃ=­ò8Àëø‡ël2ø©ÙB ÿ-NE>…°­VQ?SÛ׊Û_ZßjcxÊSH£k‹_G–‘'²Âøøc±£ ~´½ Àë5ر3ìä=Í’ù9õC[¿êŽX? Cz!‹YÀGóµgàÝzŽD7 8’(GD¹‚Hñ%.fjM
ýÈ#§:Ð YœƒN o‰ÓûFp=)I%ú&Ç.½Ù™£J©³k´ ¾< ý6K†#„Rcxü¸
@@ -14340,7 +14332,7 @@ M¡„£ÉãB¤&vIA{}ɨüØ?òXcçR&YØÜ„*3cµ,;S˜©fKnLXӌȊeL§KSü,‘Ó.ýï)•òýX©"pnüÁúþ
î_æ7KbËͤ\Þâ?MÃòõ¬Î±Iž9ˆSïfâúó’Í¢qÖcU…D”R&ºP8ÐÌÉq‘púÛS¦™¾ì­§Ó@K¹¥í2y4,à nzñ~†ŠùÝB‡âw¡8²X7Õ…VËƶê ÿ/HñÛ‡8ž4ŸŒ[½‰;[ ]άT ¼HŠ¢oŒRUÚ÷q§X ‘ôö}‘÷S·‡¨õ`Yœød2¦ÐyÔ¾õ\¼Ã1?a#ò£uÄT!šÃZG=Q’›ü×Î]ÐÖc›9/±§dÒœ…i¬¬
õZ§¯‘6’4Lv+åÆË È/¾{Vsü¡æ;¥5Þ‹ÉÙ“÷°KqÐ@-Âú¥˜UJð¹;ÑÓn ïŽéU/"%ó<ÄÝ{ŸÉÖéFq+£¿
ªÎòêžëÍxì¯÷ŸQg›a+q%²½[ƒFe$™Mí%¸³År@]CÆ"pI“:%?0F»X¸_¥fÌN1¶Î®HŒ¹\Y2¾{Íï!"¹´èÊ­6fB®“»Åõè¤ÑO0–0¿Hú^˜4WíagUv;Ö—FñIôüzçõYˆØýÂè`²ËÁ¬€óÈ5è”CPWžà¾2‰ssFHâzS汕˳ŒÍ¤ }<.ëÙiµD{ä\Ì£º9! özד!î0Š²÷V;Ö&Ké¯(MœV}îüøQècL“ÈÒÎ3ïAT‹ëêןÌ&Ê'g®çÅVÆ´FÚÞùÊy¢tc¬óºøÒ-yfgA‘zTz¼ì®øŽ-:y@ƒ¥±ÿ\¸"•?PVÏWÕE†È3Ê lDK\$UÔw¬>rß©Dè%<»ÕìÚW”åv\ÏÓŒ ø¿€§Jœ‹ê¸
-A}Ü[®L¼«#²GŽ_aâÍ¿KH¤ŸŸ‰‚h ¼ª»,_&½òîoy£pB7vKŽ£¬NhÄO1û_¦¾¶®rD™91Üð)ÍÞºsùTAÍöæ÷Ý¥éëc5?Í‚ÒÚ.îçþy;4Ûú/¡üà"€ps°óòñxeç…¤üŠóq:endstream
+A}Ü[®L¼«#²GŽ_aâÍ¿KH¤ŸŸ‰‚h ¼ª»,_&½òîoy£pB7vKŽ£¬NhÄO1û_¦¾¶®rD™91Üð)ÍÞºsùTAÍöæ÷Ý¥éëc5?Í‚ÒÚ.îçþy;4Ûú/¡üà"€ps°óòñxeç…¤üªnqsendstream
endobj
1238 0 obj <<
/Type /Font
@@ -14349,14 +14341,14 @@ endobj
/FirstChar 33
/LastChar 125
/Widths 2835 0 R
-/BaseFont /CHWROA+NimbusMonL-Regu
+/BaseFont /ZJYZZL+NimbusMonL-Regu
/FontDescriptor 1236 0 R
>> endobj
1236 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /CHWROA+NimbusMonL-Regu
+/FontName /ZJYZZL+NimbusMonL-Regu
/ItalicAngle 0
/StemV 41
/XHeight 426
@@ -14376,76 +14368,66 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬ºct¤]·.Ûv*I§cul'ÛFÅNÅFǶm۶͎í¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ú%ìí@ ,ŒÌ<
-…ü5Òß1‡PP[­B¼ªùÕy{Ju ¡glŸÏßüC(»ƒ¢ÈrÓÛFÁ÷jð§fÌÁpC`¶
-f†é”/–é„ÐaÆ)¹–ìÉT_ÄAÇDÆ@G’_²V ú¿IÂ>^"òœ’£\žpÖk×Ñí HNZl¸Š”»Ào{ö«OŠ—©™}½ŽÈïqM gÀÁõ@‰Î
-vÌó™\Ÿäsi‹ ø'o0=ÆK‘ wnÕÉÙë)ÕiÞ8©dÆî¦uË͈âL8{8yŸì'!HÄ`9õ'žz6±VÁ‹Ã Dp.µh4ÇÛÛ8ôÌÊv]ÊB‡ºŒŒžš¿ØKÕËËÃÙÏ£€_ë%ç=ùäÚâô%N¥¡[é ¡Zß—”Ž8¸³OÊÖÚvAÔÊ
-ųÎ:]Ní®¯jï‚?Ú1Ü¡}ú߬Eþ·ß™ã…°ä]x‰©9
-¾@£dJî'¾T¨×
-z õÊøjØNE'·M¼¼² _ÉHËq zÎ9W±O´à¼¢\Y`Gà^ùa“ñóQýÕùÒ^mš¿RDÓyYÕãľ¤w§fküV¥_d•ôúÁï¡qUåM»n<%ò„é±D}^õ…ï9ÜÚ™/˜zšâ.Øè×)ú/…0×Ο· ×rþ¦›§›Ü:;Òé:of\ÛsG§ys÷ÌäxQåç!X[EsèAm®¿NB(^WÄÌoÑÎÉ…qeQoP½'“ÀäŠÛ±vÅTäŠËÔ›Ê`Þ£>G}òxeVÈ#E²Á¯¶b@:4ÖëOØ,Û“œÖ˜ w÷Ý@)Æ óeîG£J (P å[ývÞ²zž¹<ú JŠ ÔÂY­CµŸÐÝ^R°¼k eMÒ]@KòB ™ŽtF ò°…&eð
-îïø`—÷¹K³†>E9‰ú¢%óeKšb¥6$O÷Àw¯sjºN«–'šuYv™ÁuC0=õOS‘GQ‰þ¯Âì{êMüqûÊ¿ûw^³4)pD^W¾i 22øQæBæeëðÄø8Ü+Î(ä€#x2dßë~r%³õç:9ÿ8¯%è5.Ý‹IáÊ9ƒnò )6Ý(€É7ÇÅåÑ Ú:T÷ ¼$Ó­jæÏI,n›Ýƒ0C5r ¦Ð{Ûôù4uJS·1Q¾àIÞ[°šùq™B·ã§ThBŒ¢$¹*3„
-j)ÔˆÀ9”‰©P͸\‘<«Cz„ w$;48™un¤£Üó
-yÍ:
-Þäâ¨Mœj‚ñí*Ã;øí3ÈñÈmľÎV¤>û¢{Ž'ûh„³vÁ›¤ÊŒ=N(ßÔ™Þ‡RÆÇâ-ë-U¸Õ¡AÉ^³Ø1!>•…k;oI ™&Z£Åó²A`þH¤Žš“´¹žÞù=&¬;îõ4vŸ ]Â÷žå·£Ë Z±ÔNnbáÓ1¦[^ÏÂëMᬯij ç_ÓTô²È§šl`îS ñö—›.²XˆGe(p¤.¿¡ CžFêJ)ËÂÀ€z®Œæ×Ô9øè¹'ÆÂ-ÉÆÞGܶ• [|ÛþTÿÞ l©5· BZ«àà"—䬩¹9£ÈµÿT*qq„ÏÏ4dG<éZS{Ëèœz 2T$g€ E‡úÅ3P&¶ãäQ,À‹é$‡(YÐF¥›Ýúg¾ÙþËœ;HGŸ€UÏ0/ˆF®A¶¢ºhÝÂüÏɬSŠ›?…ð.zì$ƒþ¾‰OøBw F9.é»°{IÛÖ]µYÎÙÛö>….¹©i>Öª®¤Á¹º·t’ÞѱûªÜI r<Xh[_lÒíÅU1î¤â(ÛŸŒÙÂp—)^ðC7¾è£½k¡ú»¥FÑ…ÝL”ŽˆÃSù8Ø'ȸŽô‹òôÝ´àvÛ\ûƒªH(dÎWs<eúJR˜)[ÈùÒ;.ŒÛ=õM"%Z
-H;\æ ¦oyd÷5/‚ZY¦ØßY‚x/ ÜI(ê_SVò÷O”ßmÛQ(±Ò´È{u½î}"ƒª7àú(˜"äa-/ÅGSkA˜M™É~¥S/D+âˆä5‘<šèaŒÒeÍž€RŠÕªµ«™£Ö½KxfÕ%S_olË+ÇééG~Žá^׎ÉñHž‹cCñ ûKÅ r„i/©ÁX¨ Eå[-6áËM*µÖ‡ßQ‘ÒY 3œœüÎ$c;¸™îÎôœóð!¢¸†„À×Ü—Ç+šž\[²7¸¹7ÚÆȈ€Cà[VZÉŽ6|íd›®y>vWL«Ýa%´§AX™ée‹ÇXço^´¡€KE-éÍBòŸ’Þ®ü1Ò^Þ€8ä„áU„4‡Ü46
-`YzY,lsÿtψSòé’üZQ”²8 !Êó@¨`öžnBîàñÃ`N€¥Nw§©Ç!ô$ÕæõÎ%¢ˆ(­Ùâ ÐκÒC$‚é‹Q
-=öRþ÷y:×S¨‡ÎG~.Ílñõ¤1Õß«Øg½ ?o!==çxQWP8?®~|˜Üÿ¸¾x¿¾tW õ/ŸU®kdY¸Åã–„ ¯iHxºâñ¸l±˜“¾ž?b™qé®yx@cÏ·è£P(&—.!ÕGÑ‚¢™þ=Wc7Ü1WÏ28'ƒ;2[.ˆxý‘×µèÀw,ÔE h@¡3§>WYˆ}ðùaæNy´59ƒ‚Oà
-Û#ñ=X6µÈøÌý/ùj¨5§äÕ‰X¦NëxþU¢lµÅ•¬A2fNyë BåK@z«1ÅÓÅ¿fÍÈnÿÙÒ©ê¹4mmÒmyŸ;þ-áu
-¶Šy­ŒØœX6$ XbLÖ¯Æë6SÅGó´»k%¾PjãdÉ\c_¼œMMâ›7IJÑ1è‡ÛÒŒÆî C¡oÖ)ëÆ
-‰} âx†Ü²t¼Væ–67Î5¥ðž)‹ôÇ“‚õ\æb—qå‘!̸øglnëNò4ü ˆ
-/ô Ä@þåí‰e2bƆwU†ŽUöq`æïâðÅFŽÓ⊂™¼ná{™š¢5¿áPƒ
-\ÅT»à^7–4N’’Ÿ»$$Tƒ-L3éΚ¹¼Ìè-h’T8 @½Okè#ÁMÁ[¯/³xO:"¨4áxüåäL—<kcèyÇÛb¢q¯ÐRÐŒñyn–yÍ Õ4ë1qÑŽ{¦í¾1'.ämŽNèÇ!Êâhkjìšû?nP:±³4¸§†ÅÜ9´mºAº‰=¥“º,fÂêhI­ ôNÖ»ïü'hä<Vk
-Á³‰Ek-˜B©äöVZq*ÜO³«ișꓛê¬ïžŽð°Á©ôÄÄ ;Òª_俽Qì˜ÎcNµ{pÝïbÔNÏ£….Öï³J–Þ­†+–½º5©jµÊâ?ÁGtiÉBs¸¯vëÔm)«[™ïE»yŒãn6Ägî¹ÖªÐR“?Áµ7ßûx ãcå«B55Ö°0§¾ê cu Çð'}
-
-ä+N‰Ø5ÞNj4xÐ]›€¨áàݵmï+Zf;ˆ?Çåe³ÝöPà·oŸÒÃüµ—¢I¹ë¼“F<{½*-5 …)ôcÚ
-#oÓÂíç ç‚
-
-8À#D=ÐÚ–'¼ËÆ€7aî^MXÛsänjã„h1B–¤ÖÑØÞt\§´äŠúã=/t2K(¦­H÷±X į̀W2­ál“åÇ W÷íÀyŠ|¸`¡ïì¹Æî§È…çÁ™kÙYÔë:½ |â­±ôÈìÓDáw E)³*j³sý«‹ÛV]öŠSl|œf&EÔô5L‘VÑ V ºZ™ÜŠ2Mù…%VÐ`ß¿1¹¦²¿‡T@@jLªPèȘ֨s*ô½§ Ëâå®è
-I³ÙêéœÆ–T©-˜Q§5߇[„þÚ@ÂÇŒçoT§÷sa‘‚‚Ÿ£;?®IÖB,$Êq®G¶qÞâ¯PIJ •£Æ»¨(¡àœ•SÕ`RHáRp”·Í/i¼™É6vÁ³ªÈ»ÚôÎvñoU;]äW¸é­ysQ†$Z k›oÀëãõO„ö¤Î£ýÁË2Uø˜>¼sUàtO?úp '@úÂÜdÛ¹KuŸCí½ìe½oÄÜóÏrž‹ëéEÓ3ŒžÈèÎ#$ûYjŒ²äØyÇúÚIÂOÁu )–8 Çúƒ}Ú |þ84G'.«2c2´GÂdL¡ÌàŽ6(­1¥²ò&µÂgùð‘ôrœP$A€+ÒádˆÐíçÁ¼_äÓôèä8\áä'wÇT`S^JkÊ_HÿΡ ÇÐïK”.±®:¤vìÓîÓcˆä"AŽ¥Øm¤.l¬È¤÷4³å)¸
-4=_A€ï CÎyëºnlT÷SIÆlBŽãÇD‰gÿ¸e‡Ýl‚È¢s›y|œRJ¥sáŸÆ%÷›oßú§gªDT+êg&Ÿ‡
-ÀáRLæÃ2–6çW0*¯bö"QÛ 8Òœ3,´~~ý¨yܵ±®ƒ!èk÷}“IU?û
-^ºö.ÕÊ;â˜<\éæjB† :æ‹ãk‡o™ùžËýta˜A=«(ÓÔ'ŸÔÐH•ÄN!z^“kðw¢ëKËŽÌ´«öߪ&ZÎØS³_­ž!¡ÑÐ9†˜mx,by5À,Ù{Ô´9s†s_=ªŒBÑ3ú§ÉÅé7˜MgðRSÙ aÅL4äÆÍœdä’¶î¡ÁZ’Ô§q½ ¸‚’6ˆõA3†Švbwq]o§æö§%¡×+DðXÚ2ˆPvêð7?³Í®=Dø"EL‰ÁÀ} §Û#WYççÕ"ú­Cø(øºÕèa ,Ù`­}Ta¼R›L΋ÜW’ï“9Ž˜oÖ”c/9ŠÈÀ°º·‹*£ÈpOˆjêû‹ ª`= à^SVnæ¶ô@&2†4.Ê0h-5zPÖz.Îxúƒ)Ë+™ÆÁ·ÙÃ!îˆF°²VóöqÓA#õ:ãF½À=Ca祥…1‰d1xýº¿ìø2ï«9Œ)Cí$§øV„" Æ1‰F¢rnêOèó$9žíÞŠòZ «>’qXøŒúÑú‡¶úIÛ¦Q!yˆ|¨(wàÌh"¾n£K²ñúB©
-/5ˆÝï9éŠ1)ëM÷çY¤Ò\Þ5ö £yLU!?䡳ìšýõÀªi›Ž}Ìn‹‘f^;àQb ù¸RÿBr Ï¿I-9:5Å·À2>ÁÐ3d±†Fˆc,<oäæ£Ocî1ü±St~»|Yù51DP!£í¶“°P ¾¢®tþkºô¡ßk˜8Á¦ÌØ$õc°ã9­•Qæ3EåŠü±¹ÙÞ–q«¿tÔîÙÛCCY^"fLzJ
-ÛnÊ÷Ù'Î{ü®ÒÿŒŒ®AiL–Xg…¸N
-£2„‡Œ°±hdw,}ýåÒps9KuN4ÒÝœ°T×£bK؆F–i$Ÿ‹‹'p‘}¾Ÿt¥™´ðÞɨ"3±Ut¢¡úx²Ø&x4D K¬ZógÜVú‘xC¶‹]äÂØý9¦yóï³t¶Úxæ‘…HÞ#ü¡ æh
-ø>_@[›cQƒY«]®Á²´%!
-ÚÕìΨwtŠÓ ?oAZdævò6I‡¼)’þ‰èRUÇÜ (Á@Ú”µ²âi·¦Ð£ñ ÛåºÛšÖ/ì¢ó&Å%é±ACF÷Àa¾šƒ;öùZjûâ×QBÙŒãωÎYIN«ä{Ïy|—hT®t²RML‡WK&q¨aMPjÍ–_ê›Í2ÖÝmYL¡£Ý§ÎŒrîgs7¨NãÚ‹+Aׇ²‚·`¨ëÞÊN óoé…%¦~aÝ–o¥­~F¼».û#3{9D«Áä9;â ´æÍôQ¤m£ÆgsHœ;“¯0C[µÐñû8Z¹Ô€î>¿œáƒ¨ÃY„Üá€ø¨e{MA\\ˆbi©O»‚›îöŽÁAø¡Ö3
-'ˆqqµi½á¢C°z³(†Jœ=ã€àˆœý]ÔÞ8§š¶±×†3`žbµ^0Ï »©uDA"e‰57 "jÍLLÇXÝ'N-ëZnˆhK$%JrrÛ­‹y¬ewyä¬ÏÖlv-‡åƒÑ‚ûvô¿L‡|ä‹N*<‹c)u4¢×é²=hIë&a‰ ét•ÎÉV¢z*ºìÃfÞaJž¿+uÍçWâèÚK}¤¦
-cþ1α¼ZÞÃbi÷cžç„ Š¢c;Ï\ºFý‚I ¤Ø-óÒF ¡Ù¡·ŒhÌ$‹™òjLjÚ¹ÕTãŸLàIHJ+øæö‡dPßÜlvÈåAÞñ GΓ[ãŽ`Ñ#&ûîR…j—ܬ'VuUÎÔ‡íëÌÒ†·r€"˜Ž†(¾WwPßSè¤u‚3ØRUê·€¥~²ýbæ³u«jJäþnÏ×íºÁëi¯™ê'‡¹IÀ&JIÔô0>e¾dÞ>#Ç<®å³Ü±éúÞv‘¹‚ΪçñæWêÕ‰½˜¥‹ÞÛd ³ªÐçÄsFÞLÖ÷ÍÝ">nfhx¬ºqŠ~K~áåÔZçW
-D9ÐÄ×ý«ÌNc­ü
-4Æg÷ÎüôL¬¾¾Ò?Âlœá¶_±Ã؈õ†ëî$àÝ-:ÇDpBÝu£Cbî›#13º;Ï
-*‡Kò·¶‡;¾-’"+ܦ˳-ý<ÎÈôXüöYëÁ’áJÁ‚¡$üé¥Ò.&>Ùe¸R¸¡3ŸÁÿ]u7üaÂõñ.R8‹zAµÓã~nTLûçpYTÓìª[7ÒøUÒð=|¹üº*ÚÂ_AŒ/–*CØ¿?CÞúh67÷ Wáïx,V[ýªŽ?RÆò^oH–èÈ;Ǩ=käàkáÕÊu3®ÉẇNbnN’²‹Y)êctž-yá¬JHÇd`‹“mó®úí}KÕ4¬½9«–øWù… YÚá•M3 |•Ð§D N¿"æµdYDé@ÖáÄúÑ¥õÇ*1öEÒ.úMµü–r± ÒüØ
-Á4õ5’+Äó}†#‘.ç­¤‹R‹ë
-õS׸­oïÖ‚•fx{ì—?]Ž{øjA}øé{v$õFBÇÃh¾/oF"U¹»ý´P‡SkwUŽçî0€8â…lù9|2öêlá˜,RºÆ,;?…Y¦y$…䯠‰+aÍB•¨ì5šEÇ婳Ž÷õ¾Ióþ†n$ŸJ±šÿHbN±ãHÿ­^Ù’Ÿ¨aêºV§hÞšW>#žµºra·‰áWvdyóEúC ‰ÙãÃ/c7>+΄É6¸ôªû,,V>'$úÒµe P¹…'›ð3f3
-J̺6I>ìß $‘–HåÇ(ÃÈ;LØAB¿ªƒKéíqrm”ü¼Ëµ˜+ู؂۾Ó&§døäNÃ0I¿r!7%tj[®†ð¼¸ ‡¿¬e°¢zñ÷pöZù¹Üvi3l*.p.&€Ñ· Kóâd¹¨É
-ÃŽ¿N õÆç*匶ölIUQ8(± J 8a•˜· 5«X~+Õøëam:Êœ·jP¤^Jœ§î‘¸ÃsÀÿ‰û‡FmA@ [r«@æ [¼¼'O24ö‰¨-ç¯Ô‰Qy"ð빟z¿–2¯\ÅC ]õõtQŸ;G@
-ƒmÕR¯ Ö$õì ÔÛ6Áò´K·8} bS5Û €UÞXÈs^ƒ=$Bÿ©†Þ‚€`õ©£X&ýµ§=²w3ØÔ]ö§ã^êÌNóÊ»Aøðc0ÎäÚ5¯uÈòtœ) ¼Ã؆Fê|ZEò‹Vjê¹Cç‚¡þË€y·rûÌÂqëBªUèü õÉK%©BIhs”¨ƒr¾‰Ÿc\už…L}dþlùÅ#œsþµÝ
-­­Ûä¾xP1S'¢Ä”ÀÏ/m*5blð•šZh—E5Ú°ZÊ‚?7/ ö®Ê¼¢¾Ø‡ç]Ï|Ö;ŠÔBùúéíôý'rUS”ÂŒ,ù³Ç?»FöÌ’±ÛõÚ$Ämk¥kˆ"ƒVa+±<•šºa¶>Sû%­äù‡¸’øVî™ÏáEü4¬:ÀðÊT?ëðÎhx®‘ÕÓéUDÂãÚ%†è(
-Djà&$ >g÷5«d(
-x­áO¶S.eƒ›»NÄÑűn5wÔÖ‹IêÞ(ˆÂ8ãÞ×Àn†hºkͬ½P#éQ'ÕíîaT¿£þ$RyÉà–&S(v±8m`iʽ]rþù¦³<zlVlÉ—œÂ`5”ËR¼Ï>íJùQ5x9–Bgaàž}x’2ÍDÑÔ1 IÐÏ4—ÆÇûèr¶
-´¡é LŠ.Ô»4,›æË…Ü)]Ã*Vi}¾I&È éà1ƒs¸g´YÄ1Rë}}ã$¬Ë¶Ò|>”OÙ‰@½)Ûá`LÓïËñyŒoãwk5±ÈVð…SŠËm‘í ¬Í‡Ÿê)"q%U æ#}VíÈ·ŽGØlxR×{häYÏøç%»Œk#’–ñ
-°û€‚ß_7ÖˆýõƯ¤øÖe÷®eßêT\qÓýÖ®Épswþ
-Ü$( Wgœî‘·xeµ§²Þ¢Q«:p¶ÐšaBš³·ØÄ ô¥7'‡Îò Ì[H›†{ ±_‡*ºŸñ´í!NTúû[ìD_lïñ (bÂ/Ý}¤)mR¼™~pÁþØL®†PèK¶ M5”ð?Æ®*äQF2±g™#ªûغà>~‚;H°‹¨-ƒô9ü·—5ûÎG 9„õKƒ[Óc÷­~@H"…°Î–E(Mõˆ@å4/”š0ù{oNcáKC¹¶un˜íÌ——*ÕˆÏh1+(¸Ôýd04—DËÓ`IRïÐðý„ã‚çNÝÝ45öH3‚-]º5û`EJd>¯3Ãæ B­gÍR™n"éK`~[›J:4qð7v®`=RŽ}EñŽ:è¼süôŒÍ˜4¹nÏñÈôQr,É¢ï°ÍkÄêãÉÌ^Iö-ûØLƒÙ£1#iÕ³q{ÁðÅÔ#…·¦˜&#¹–æÆÌ0žpk+«£
-†é68û½3¿âØ €ÙAehD¡–~ØioÔQbØFÈöyÍpR<‰˜ÈfÏâŒ&a›æ(z
-YìT”ÄÐ_ïCŽÆ} _zA-nuò®Z˜ÄögúvXPô‹•5tº ÁúOÌ]šÛæÞÄUhN'u6V‹3án[ }¶ŽMïm9¤‚Ü.QÒ(Æ‚Ølšõ3EȽ¹²FÕ7CÇ¡¥ŸµÂü‹›¸¡• Ò†Ô·X>År­V¤«´þœùÈ87‹Ðæ^’Ü#ž³Ä…*[Ã00Άºª\-zÂ0³•CÄx:M«»ÄãVNcÇICÃOgUÛ¼¬*¶@ÚU·ae’+b˜ÀèÌ¥¯é¶QñóP/Anžóu–ÇúeÙM"èzpJ™Ïò®­"U‰ ñ+“ãé?§ÙÂf%%íl¿çkíæ¿„òLO^‰ªãÃFÒò’Âiú,ÞTõg1ª
-l•"\\â„o8½²b¯‰{åIPwví ËQæH¶$ÜÉ´¦ÕL`e·©ѲÂJ»ýT‚Ε^jr˜²:ª×»‹¾n
-¼ë0åà®ÏØÿîZŸÜªc~;Qwµê4è©HšñqÇÔø°7ò=­³ž‰’ ç™òÆú˜“duˆ?.Õ+rÞ9kÃf6q§œaÞÎ^bÁ;ÐÞ“ªC=?JÅЕd›dg‡|ÜÔúˆËz@øeaªCšs5ú QoFÐé­Dú÷8È«âX²DÛíŽO@Ñ% U÷Méd>kZ|èdü%Î0 ,cYÎ]o5ÊÓÓˆP|øTëZBŒåæxM~`Ôä×P
-Ïoé†-«ûç²`¹ Y¶ñ­Î±‹èÞÛ°ëÙC¼aßèß7åv¸×^
-뜻%CÁÌ‚¬UÖ´‰Maü€¤Ï¹uñçó„áÜê :œð؃C»(|cºÉ& §ëéòɼ¯È8'Ùx被 Šóp<]BÌý «›[¤„
-¡à£"Ð<‘gÏ[îD~^ººÓÂÙ?Zn\Æ$ÿM­Œù–1Äœ)Á×Bň£EGâcQóh¨X*úêÊÊ_>(”ëw+ÇœðaÚ¨F~¶zñyþþ{ ‡>gS(êá9‡&IdÑX2)Fžb¡8ÚËp¤«PX,Gæ(xõš2œsPº% fajU‰ªh.,w¤Ñ«
-cLÇý2 Ža®
-L­ysN<q›Žé;u %ý¡xCߥi67k]ýÔ•ðÓ*‰I
-Ñ\‚°îÙª [ˆ|¾[4Ã_ÆvNy|ü(—æl²½Fï·ïÊ»i¤ºõ–l
-]ë4PH§rüIbÕä-àIæ<Œf)$Ü=¼ð~WÝ>Rú?]œã|DuVò=Â+÷œõç°üdË,󴵋¨t}ïæBÖ 9Q’Ž¹¡¥PÖ•g$±»ÖùW7‡È0‰dÐs`Å/]N˜Cñh¿5÷‹$YlÄžìžvÌ6èëZü¾Žñ:á3~|±‰Q¤ãïÛ_6tºs´“WÛïµÈßFgùè`æ} |5*¦
-…3© ¤ 0.aõÃ’ AÜÿJ&ªƒ0C|R*ü(ô¯[ \eZ¢¬ ÏÑZ àú½á´sÅ%¶_,sEjâ’ñƒ]]¹QÙÄäã¤Óoxé{×ùÒT¬ ¬>ÔDu±:eƒ„Ž¬‹C5áj¬QjCìé÷¤›ìÐ̆£Y•Ãé²{G ·$7wA”_sïâPs±¢Sš˜=ÍêïxEJI7z˜³LYò>‚Ý'ò.ä?4û™36L®PæØi¸Êfá]Y­IÍuÅSÛÁý²n’YWºjRdúAùú†ÄMw¼NÆÒ`´­Š&'"—cxŒ?¦¾©Žd[ºhxB{ü¼ãXæ}•£689®ªíV3*àV,´NÃIæ®ÎúÄ’Ÿ]ñ]Ì&ßkÏ—Ê­!ØEø>µBGD“ÊÚ DÄ`ŽÀzë†ÿD9ÜD•^ãP¹¹¡ÒC`pÞ¸q¶SÏ/@j»_»;Æ),H¿¥ÌNeÊ„cwLˆ^ŒM\Ú‘/Q„Ýr½Î«D¦F¡CzmbÍ$cÁïW %—õÛà”\Ù’æ’.îrËäU+ôŠÖ½U©+A´5ŸJ¤Ï)ªãÿä;z_{®ðø– ©ŒJ !uêˆÉ3e|Yüê*¹ˆcËûõ);ß.†úðò#ãDhö€ö‹G¸èFyç;u=2_–\?c«î¤~‘
-ƒÅÊ~Ïz_úà)ë¨R÷Ãfæ4Vf™k+{Çc–®ŸSxéüýpŸÀ–éò¢Žú‘›B6Uß\•AM{ƒo—áŧÜùþ1÷¹ž ƒG‹KÕeºd´fÙà&ö÷- ¹÷ŸÞ ŸLHÁ¹‰àT­Lq> ã3ïçÙuÐ3õ.°ó»ÏDkr%[’û V! =?(F‹V>Då†TÜ'LÞ»tðþDì0åœjiJWù¦¯:•º?˜ákÅtð·Dt,e¹Cëàì8´­~¶^Wìh÷ðá²› ó&pÀs–K‘v£yª¤}ÜYhÇû/q˜š\—1άÄ.5HLUcß|{¨8óŠò^ß4à`äô·ÅPß½Q5ãŽèz”=ûý¯`ôô«î½A$äÆô¥=ÿ7<‰†ÐZLLSXëNŠ}Db6¶Ð,èÿv;=›#˜‡Ãc“(í„FrEƒÎUA7Á¾ºñ°¤‘ïÁ¼ Ÿ³ËÔ 0
-·•—Vh/†¸MƒD:•ÄÇNñú°•:#Þþ>PLÇÒwðQ5GbÌñ Ò禪ð@` Ìf(iVþÉOëµ6 ‘
-’Yý”:®”èAèÂûXqQ¾®ãÜþŸœß,è'ì-¦E“qàO¹)• ìG³VÍ4ºf,§œR¢X=ÒÄ"Æ œVpÕŽà"ç¸Éü 4¥^Ëdw3{ñ¾T ¨Œþ)þ1²ðùfäI>EÄ ÷ó…>W¹;A©jæG’òÛB¿¶ä®.L)y{kÂ^×ö ,”K@[ âŸdOÜŲÝ_t NÖm,b
-É´ C™Ñ.ïðÖJ®{Ò¦sŽyZÍÊ;±êÈÂìÄk´3ѤFÈZ‰FÝmp ÷:%•Ùd
-Ü)„lk2'¨ á"”Öë±âµ|syùͱÕu€\çÊZ'YýMªI­‘_£ƒ~Æ)bfÓíÝt=–ÙáÅbSÅ#Uk.`«
-S­‚DÍ( »(ë%ªUÎ)7%g:F—°ÞÆ {¡ßk·1SÊ» „]«
-G7üæôÆn}Ò{«óef‚‰@ƃÚZt'ˆD©Ñuèb ÕËáÿkŸ,Ûš
+xÚ¬ºct¤]·.Ûv*I§cul'[£b§bÛ¶mÛ¶­Ží¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ø%ìlA ,ŒÌ<
+šþô­¯œtGLz¥ÈéQž7K²;P?8˜Õö¦””õJ>`ˆg:Yánžiü(\
+ü°¾<Ù£ø§6Äbw¡5aÔž_|M<}~¢î½…î?$¤Ë‰…§äuBþéçC(øC­B¼ªùÕi{Ju ¡glŸÏÏìC(»ƒ¢ÈbÓËZÁçjð§fÌÁpC@¶
+¦éÂú”/é„ÐaF)¹ìÉT_Äü AÇDF@’_²– z¿IÂ>^"ò“£œŸpÖj×Ñm¡HNZ¬¹Šù—;Ão{ô«OŠ—©š}¾ŽÈïqM gÀÁõ@‰Î
+vÌó_ŸäsýðKÞ`zŒ—6$Aïܪ“³ÖUª Ô¼qTÉŒ!ÝNë”›Å/˜4ú#pöpò>ÙMBˆÁrêM<õlb®‚‡é‹à\jÑhŽ!··qèš–í:—… u>5±“ª——‡³›G¿:×MÎ{òεÁéKœJC·Ò@µ¾/)qpgŸ”­µí‚ ¨•Šgý´»Û]^ÕÞƒÛ1Ü ½û߬Dþµß™á…°ä]xŠ©9
+b¤H#øÕV h@û€€Æjý)ûƒe{’Ó
+3 á"Å8a¶ÌýhC©Š‚¡|«ßÎ[ÖGÏ3“GDBI‘Z8«µ¯öºÛK
+’wi¡ ´NºóoI^0Õ–ÎÈ!C6פ  AÅjc›a˜LÁýäü>wiúÁЧ('Q_´d¶lAS¬Ôæ‡äaíøîyNM×iÙòD³."KÂ.38°n
+ݱÍAïOÇ4å|cå žä½Ë™à˺_…¤Bcbœp%ÉU™xíŒ`#Ë}Cºûð¥H"¹ºå)çØÑYi#,ج¿ßÁ;QÝqç·Äjí(^&+ MÌøkRÐ,7÷u¾!+o­¹-}iC¼HBbÛ*1'O. Íþ~6'jïý˜ñ+gt5û¢PVÔÿ¤˜¿T?ÚãÔR¨s(S¡šq¹"yV‡ôî@v¨„3ëÔHG¹çòšu´ÉÅQ›8 Ô%âÛV†w>ðÛeã‘[‹}­H}öA÷4OöÖgí
+„7N•{œP¾©3¹¥Œ/Ä[Ö]ªp­Cƒ’½f±eB8|* ÿá´%Q0d’hyŽÏË9€œH7þ5'i}=½ó{LXwÜëaä6Aº„ï5Ëo7F—Aµbñ#¹‰…O[?ˆny= ¯7…³¾ÏÆ_žMSÑÓ<Ÿj²¹O-ÄËOrlºÈ|!•¡ÀºüV„, y©+¥, ßê¹2š_Sûà£#üåž ·${qÛF2<üm=àmûS}ü{/°¥ÖÌ:i­‚ƒ‹\’³¦ææŒ"×îS©ÄÙM>?gЀñ¤kMí!,£sê-Ð@‘œm
+ï™°H¯Ñq<)XÍe.vUÀŒ‹Ææ6¼j÷(OóÈŠ¨ð"AÏ@ ä_ÞžX$#–alxUeh[fdþ.Þ_lÔæ8-®(˜ÙÉë¾—©)ZóÕŸ
+Ôû´Þܼõz2‹÷¤#‚JÇ_N‚aºäYCÏ>\z…„–gĈÏs³Ìjd¨¦!X¸ˆÓ wÜ2mö8Ùp!os´C?yTÿ@[Qc×Üÿq…ÒŽ¥Á=5(æΡm³× ÔIìÑ/Ôa1VGKj]Ø w´Ú}oä¿8A#çÁ°\SêœM,ZkyÀºHí(¨ ·³ÔŠSñçöš]MC~ÌTŸÜ¤Pg}÷p€‡€ J¥'Þ fØ‘Vý"‡øíbÇdsªÝë~£vz-t±~ŸU²ôn5\±ìÕµIýS«Uÿ >¢KóHšÃmµ[»nKYݼ øËÈ|(ÚÍs@w³™ >sϽ°V…–šü ®ÙÞÇ+×Xª‰‘†€9õUW«K8†?é `(zšŒÜ›×Io_eîÁ‘Í>&p×$ÏoLòŠJß´/õý…›R-“ÃOÃÄ,Á‰ þØFáÒÓýâùu.Í­Ž©X€²£ÝF:ûL@¥å߸‰+¸CVçD§›î$2ܘ±­¤‚Tô¦:‡4Oòü?ŒÙì7ØC *™VBÆò6Vjó­šÛ¾§ ÷fÝÆ1÷ídž ¿ô |ÒÞÞ@OBG À§˜«T ˜Ã1=Úuø1&\ÛTĉº(Ð64Ï›§¼ì¥—¿ž6ÇnÚ4~ÆcÅÛ[zFbÆ’RJ»žƒ.¶¡ÖkŽãÃÞDþÈÉ+GâzƒîÔ¹m_C|øþ0/–­Xµ³-`_1+Rå¬Ë¸ƒðžM*&`*ó|ÜTF-ò\<óãT¢
+
+
+à+N‰Ø5ÚNjÔÐY›€¨áàݵiï+Zf;ˆ?Çåe³ÙvWà·kŸÒÅüµ—¢I¹ë´“F4{½*-5 …)<m‰‘·iîúó…sA€fÌTljò‰¹^›]¿w›H.’îŠI†m¸_|óÚ»b \ÝÛè#Úžƒð ž1Êê ×åã–μmœh³fË]­Ú¸¤„ž¯\ÇišÒ}EK¶ õ»›õx}3sŵÈûÔM¿=i‹ƒ)»o)=26¢QžÉªËC†;ß5T]hQ€Ð^šŸmúà|‰Z›!ç˜8ºs±S°È¾J¬f?Ý ëÞìoåCˆ€ßlOŒ‰¯¸1 ]§Uxœ<Šzæ᥀•áç=ˆÎmòò‰¿½PÓ1ú”¢>2x¤iÎ#§·5ž.‰©sV ñº^ñ¼ëÓýªÀ›`õVÙÅ¢UR¸¼ûpœ“åæ41$ûFÐ8ªŸ8 lV{v”ƒîÞw©³î~¯ìýý«&À꾃~èôÓEKå½ây­ Dj”¹÷-vá'†H=~€Œøä“þܦð!UMÌÆ‚qzÝKs"œÏòçžNIZÇ&s™/í}‡•‚ðQE´¶åï¼1àE˜»×AÖö¹›€Ú8!ZŒ%©u4¶7×)-¹¢þxÏ ÌŠi#Ò},V{ 3ê™Lk0Ûd±À1èÙýåÇN@ˆ<E¾=\Ðwö\#·Sä‡ó Ìµì¬ j‰um‚Þ>ñ€ÖXzdöi¢ð»†¢”YµÇÙ¹þÕ‚ÅmË.»ÎÅ)6>NSã"jú¦HËèË­LnE™ƒ¦üÂKh°ï_ŽÆˆ\RÙßC* 5¦ T(´eLjÔ9úÞÓ…eñrWtA…¤ÙlõtŽcKª¿ÔL©ÓšïÃÍCm á‚cÆó7ªÓû:³HAÁÏÑ×$k!å8Õ#[;mñW¨$¥„ÊQã]T”PpÎÊ©j0)¤p)8H‹Ûä—4ÞÌd9ãYVä]mze;ûµª.ò+ÜôÖƼ9+C­…ŒµÍ7ÈÀaÀõñú%B{PçÑó²ŒG>¦ï\8ÞÓ>\ùë
+¾07ÙtîRÝçP{myZí2÷<ijœçâzxÒô £'2ºñÉþD–£,9tÞ±¾vR§ðSpCŠ%è²³O»¢‘χæhÇeUfL†öH)”éßѦ"¥2¦TVÞ¤Vx/>’^Ž³Š$pEÚŸ ºþ<˜÷|š‡+œüäî˜j
+º.F5|EKÖ_kßU­†Ä&“ó"÷•€äûdÎ…#æ›5åØK"20¬.Fí¢Jà(2\࢚z~"‚*X¸×”•›¹-=‰Œ!‹2 ZK …‹3…~`ÊòJ&qðmvpˆ;¢¬¬Õ¼}ÜtЈD½N¸Q/pÏÐ@Øy)diDÿD¡
+ÛIX¨_QW:ÿµ ]úÐÀï9Lœ`]fd„ú1ØñœÖʨó™¢r
+EþØÜlgøÕ_:jûìe ‚¡¡¬
+M q‚8IoÜ•ªÅö›ÍL-Ô…`€ToÞ½*Pvz:N“x ›ÝžÜ™3*IŸeÀ4µô
+;S9Á%]9Ao¢ÁN©‡’p6/€ôJš6:7õ"élÈ2îqœÞ܃A«ñ)Û«Â!F—?+Íõ­ÙV³d$7ÁÌ&áýWW(Þg0 ÎÜ#Úž8¤;ßJì­¯ý‰Ù¡L¹ŒÙOÝ5 oYÖá˜
+AÒà}…a™5‚>ÂÃNFØX4²–€žÞri¸™½‹…:'é‹NÎXªËQ±lC#Ë4’w‰ùŸÈ>ßOºÒLZx¯dTH‘™‡Ø*:ÑP=<Ylc<¢„%V­ù3nË ½H¼!›Å.raìþ“¼ù÷Y:›Îxf‘…H^#ü¡ æh
+ø>@[›CQƒi«m®þ²´!
+ÚÕìΨWtŠã ?oAZdævò6I›¼)’þ‰èRUÛÌ(Á@Ú”µ²âa»¦Ð£ñ Ûå²ÛšÖ/ì¬ý&Å%é¾ACF÷êÏa¶šƒ;öùZjûâÛQBÙ„ãljÎYIN«ä…{Ïy|—hX®t²RML‡WK&q¨aEPjÍ–_ê›Í2ÒÙmYL¡£Ý§ÎŒrêgsÓ¯NãÚ‹+A׃²„7g¨ëÞÊN óké…%¦~aÝ–o¥­~F¼».û#3{9D«Áä1;â´æ ÍôQôÃZÏú8w&_a†¶j¡ã÷q ´r©>Ý}~9ÃQ‡“¹ýñQËöš‚¸¸ÅÒRß
+nº_Ø;úáW„ZÏ(œd ÆÅÕ>¤õ„‹ÁêÍ¢*qöŒ‚#röwQ;£œjÚÆ^kNÿyŠÕzÁ<S€\ìæ¬#
+) ¬¹YQkfb
+<Æê> tjY×rCD[")Q’£#˜Øn]Ìcõ(ð(»CÈ=g}¶F`³k940Œܧk¤ÿe:ä#_tRáY L©£½N‡íAKZ' KLH§£tvH¶ÐSÑe6óSò<ø]©k>¿2 GÇNê#u0UóQŽÅÕòK»/ó<'\`ÛyæÒ5êLZ íèÄn™çšz‹ˆÆL²˜)ÏvŒX¡[M5þÉž„¤´‚o®HõÌLg‡œQäzä<¸±5î6Ýc²±ï.U¨vÉM{bUWåL¼Ù¾Î,mxÙ*û+‚ikX‚â{uõ<„NZ'8ƒ,T¥~ Xè%{2Ñ/f>[µª¦Dîïö|Ý¡±šöœ©.q´Ÿ›l¢”„AMãSæKæí3r,ÁãZ<Ë›¬ïám)œ+h¯zìÏa~¥^Ø‹Yºxà½M67­
+}¾Q@<gäÍd}ßÜ-âãf††Çª§è·à^.@­uz¥@”M|Ý°Ìì4ÒÊ
+à™<=²!>°ë_Â! ¡nÒ q£^c7Nh?–Dbk]z‘Zøù·Íà[ÛX=mÅ›P :žž‰ÍW½G°tC#<áß×V Â'¦ŠÒyÞÄ1ò\ðÎòˆ¿ƒˆ§9&åŒÂT«âÞ°;¯oQ
+Äd²’Ø[EÜ­°¿ÈÇ`n—ÅædþǦiBŠFtù£¿ mŽ<{ töJD|Ï;±Æ&G‚iþco§Àå²-çaA3©±W(æ‚2MYÕô(mò¤ œFã³{gþz&V__éa6ÎÇp›¯ØalĺÃuwðnæc"8¡n‡:Ñ!1w‡Í‘˜Ý¿g•Ã ˆ%ù[ÛÃÞI‘nÓåÙ–~gdº/~û¬ugÉp¡`ÁPþôTiHŸì2\)ÜЙÍàÿ®ºþ0æ‡zx)œE½ Úéq;7,¦ýs¸ƒ,ª‡izÕ­éü*ið¾\~]•mî§Æ Æ K•!ì†ß!ou4›¿›û‹†«ðw<«^UG‰/)cy¯$Ë‹> täCÔž•6rеð‚jåº)×ä; æC'17'IÙŬõ1:Ï–¼pV%¤»Ã
+2°ÅѦyWýö¾¥jÖÎŒUËü«üÂ@¹,íðÊ&©¾JèS"§oóZ²,¢t
+’ú C¡ãa4Ÿ—7C‘ªÜ݃~Z¨‹ˆÃ©µ»*‡‚s· @qp![~_£Œ¿:[8&‹”ŽËNp€0ËtÃ"¤ü4q%¬i¨•F³høð¡<uÖñ¾î7iÞßÐäS)–óãIÌ)¶é¿Õ+[ò5L\Ö*ãÍZóÊgDسö@WÎìÖ1üÊ,o>HÁ81äј=Þü2¶ã³âL˜lƒK¯:ÏÂiåsB¢/]ûP6
+Q+ª''a¯¥¯óm@6úâçòg}»°4ï N–³š¬0ìHñëà´Po|®RÎhkÏ–T…£¿» ”àá€#V‰Y R³ŠÅ·Rßx°îV&£Ìy«úEê¥Äyêî‰;|0üŸ¸Opˆ`Ôæ:5 ×
+dž°Åû€{ò$#ïˆÚrþ÷øúø
+Ažˆ+‰o徑ù^ÄWòó
+þ¤a;åR6¨¹;áD]ëVsGm½˜¤îý‚(Œ3î} ìfˆ¦»ÖÔÊËÅ!’uÒPPÝöF5ñ;êO"•— ni2õˆbg+€ã–¦ÜÛ%çŸoÚˣǦÅ|É) –C¹,Å‹ñìSÑ.”Qƒ—#l )tæúnÙ‡')ó×LMšýLsi|¼n°Q!g ZŠƒp2Äòf;|d·sJ5[èOú»·r•
+¹0>“Q80ƒÁ˜jU¥9Ãüró5½C£öñ²·Ëä—A<Õ¦¡1RÁgó[¼X- ?¼§µebÑ×k^6*Ù J ¬(І¦7Ü1)ºPïNଛ/r§t ªX¥õø&™ ¥ƒÆôÏážµÓfÇH­öõŒ’°.ÛJó9øP>µe't§l†ƒì1M¾#,Çä1¾#Ü­ÕÄš#[ÀN).·E¶/°6~ª§ˆÄ•T1˜ôY¶#ß:a³áI]ï¡‘g=㟗ì26®HZÄ+ØÃîk
+z|~ÝX!ö×½’F`à[m”Ý»”}«SqÁM÷]»&ÃÍÝùԛꚥ‘ü…@ÏHÈúû Ónê
+c—™XúAÒœü.; ®¯˜›'·Œ©½C›ˆ^zºnõâ塳ýæzI‡•
+RÐ%åØWÔ糖Î;ÇOÏØŒI“ëöL%Ç’,úÛ¼F¬>žÜÁ|á™ôaײÍ4˜m?3’V=·_L=Rx;`‚i<’kav`Ä óè·¶²ú0
+pºs*Å"øVŸûå¦ä!¥`˜nƒ³ß+ó+ŽµÐ
+çøx£ƒ®Ñãz#ú€½ãJÿy‘ÃEäºF•“Róª»ÿø†D¯11tü@Ct´Y$Á¼šGj™¯%?¼äX+å•?L¤ÔÛ˜‡Í”_´Ò#(?Êô\˜ã@¨nw"àYl™À<”w„ÙY)ª5avQÿÊ%éömŒ—êÆ5=–AâŒ*$$–-Ò{OcŒËüŒÖ3n¡÷j¦&•3ì£Ç€ÄY+÷U&‡Zg\'ãMnÿ@÷W¢4’: zvlAÚ”‘…‡’>é„Üo¦˜Vü_Ù¹šÇ};*ˆux’ÆC,(¨ƒ|ýÜñ¹Ú÷zw¹
+£fÍ6•9í]ØTÉ°bµ÷áú1K/š&‘9€‡e×¢hœj4Šß.Î[)Z
+dCŽREm46¬8Ó¥N¸ «Ô6<É,ÆÐÍÉÎæi:ýx(¥Ët8ÐËn ÿ`’®!
+¼ë0å ®ÏØ¿îZïܪc~[Q7µê4è©Hšñq‡Ôø°7ò=­³ž‰’ §™òÆú˜“duˆ?ÎÕ+r^9kæÖq槜a^NžbÁ:ÐÞ“ªC=>JÅЕd›dg‡¼]ÕúˆËz@øeaªCšs5z Q/FÐé­Dú÷8È«âX²D›íŽO@Ñ% U÷Méd>kZ|èdü%ÎÐ?,cYÎMw5ÊÃÃP|øTëZBŒåæxM~`Ô•ä×P
+Ïoé†-Ë»ç² ¹ Y¶ñ­Î±‹èÞÛ°ëÙC¼aŸèß7嶸מ
+뜻%CAÌ‚¬UV´‰Maü€¤Ï¹uñçó„áÜêÀ:œð؃CÛ(|#ºÉ& ÇëéòɼÏÈ8GÙx被 Š³p<BÌýÀ«›[¤Êñ+ÇÕ˳ž8b׈×[ÍT|­¥#NùæQߧCW;Gˆ|SmÿFÞÖil±^õãþ™ef C¹‡¸·á¢y JòëL;˜L]¸îÙÙeÂAÚbˆPAIÛdðIÔPîÅ
+×·³÷ŒAÿÞ]ÿ¹:#¥µIä
+ÑÅÛ±åprkBÙûCzÆaÑÓ3ëÌ"!²2ö]3¾v{ÌÆY­»G «Œs» Oå×náR¤C2¾&`ñNƒ§Eƒ“\ÙÍ9È&Bê.üŒ¶Ù· nRV'“BV’äýáú%h:¾.l¶CÑy%4KÉÂTÙfÝ4„T·:ùÔÖ4_'áULšj€žXËÜý¤öiû ÃÆûêç”´c§=`²¨øqªe˜ßC´Ü¥îóÚlméòù
+H¦Ö¼9Gž¸M‡ôº„þP¼¡ïÒ4Š›µ.¾êJøiˆG•Ä$ …hÎX÷lÕ-DÞßÍ›á/c;§Ü?‚Ë¥9‡l®Ñ{Ä­Æ»òni†n½$›B×:õÒ©~’Xv
+ w/¼ÞU·O§”~EÁÏAç8Q•|ðŒGÇ=gý9,?YÁ2Ë<må,*]ß»¹5HN”¤mf`!”uåIì¦uþÕÕ>2L"ôÄEñK‡æPüÚ÷AÍí"I1„'{†§³ úº¿¯c¼NøŒß_lbéøûö— m„nĜɫí÷Zäo£‚³|t0ó>ú>S‹Â™ÔRú—°zaI¿ î%ÕA˜">© •N~ú‚×-† ®2-QVçh-‰úó ýÞpܹâÛ/–¹"5vÎf—GWnT66þ8éô^úÞu¾4+k‹O
+ Òo)³S™2áØ¢c—¶FäKa·\®ó*‡©‘@èž›XsIÅXðûh‰ðeýÖ8%W6¤¹¤‹»Ü²yÕŠ½¢uoUêJP'mͧésŠêø?¹ÄÆŽÞמ+Ü¿eB*£HH:`rÀL]¿ºH.âØð~}Êη¡>¼üHÇ8š½D ýâ.ºQÞùÎ_]Ì—%×Ïت3©W$@2?d…°Õã¾Â`¾²ß³Þ׆>xÊ:ªÔý°™9•YæÒÊßÞñ˜¥ãë^:?Ü'°‡eIº¼¨-„~ä˦MÕ7W¥_ÓÞàÁ¥MxqÅß)w¾€Ì}®+È Á‘ÄâGu™.­Y6¸D£‰ý}KCîý§WçRPn"8U+Sœ÷ÂøÌûyvÝôL½3ìüî3QÁš\É–ä>¨UHC{ϊѼ•€Q¹!÷Å“÷.¼?;L9§ZšÒE¾é«v¥Ž}03|­˜6þ–ˆ¶9£,whœ-ÇËŸ­×;?zøpÙÍ„y8àŽ9Ë¥H»Ñ<TÒ>HîÍÄû-q˜˜\—1άÄ.5HLUcß|{¨8óŒòZßÔç`äô³ÁPß½Q5åŽèz”=ûŒW0zúU÷Þ r còRˆžÿžDCh-&¦)¬u#Å>"1™k–ôÿ »žÍÌÃá±N”vD#¹¢A窠›`_ÝxXÒÈwgÞ„ÏÙå 솋ÛÈK+´CܦA"Ê
+âc§x~XÃJo(¦cé;‚÷ÿ¨š#1âŽøé}SUx °f=”4+ÿ䎧õZ›…H
+—€_úØî*Ý– ·£ý7<³Y6ªãvl¤ÎݱæŒú‹Ù¸™‡ÈÈc?m·Ò†h¡ˆÕ©Åç•¥RäÍ×”»L|âÊLwõø Ρò°¤¼AçYKr¼Ï¹ÙÖJÑkW½b%òyQ·ŠTæ9æ‹Ló"$N¬½ôž‡9ȯòL¡åùö;û¿ZÆMú›¦Ýj{wAÆILTI¨£%èÔ&ëö…ôâÞ %§½(1ã:«/h•¶µôÕ9óUÖô”‘­Í¡i¬rÝxUæ¸ÂÝPÂ#á61”#,*@Š –üb±·Tx8ÙÄç{ëG79yçÐê°ÀCþ“væ$Põ`Ò匀V–ƒÿþu6®%…Ùqc†¬Ó:†wtÎì•NôwØÒPÄv©*û&<û'ývýЊâ¹!ÔA"OýMBð¼"ðÛQܸ…ÍK) z²>Ç'áØóô-oâŠÌ#°±ÛÓ­ÀD/&Ësg k7/;ô^D÷‡ÞKÉÁ¤ ŸCH-²oS<ÛõCoõšÂÛw˜´øŒª"ØK–_Š­"H‘¬ûVpÆsáõpa¡£_Ì×SÈÚua¯õ°Ü±l|ÚV±{+ wókÎ:¤6= s÷(HfUôRê¸zP¢[E  ïcYÄEùºŽsûr~3§Ÿ°3ŸMÆ?å¦T‚°ÍZ5ÕèR˜±˜rL‰buO[ˆ`×w\ÁU·?‚‹œWà&ó+Дzu(“ Ø!ÌìÅûR% 2ú§8xdßÿó <ÌЃ|Šˆîç }®rw‚RÕ:Mp’òÛBÿÉ]˜RòöÖ„½®íX((gÿ¶Ä?ɸ‹e»¿è­ÚXÄ
+ܯ*ù V}ÒD¦ÿôð¥ÎÈ
+}ˆÒçq=G/¦8õ6ÙüÍ/]Z?ó{P>yêU•œµú}éË2&@žÊå:Þä®þ;TÆ
+݂Ư9ÎÖïSftt7,-–‘hV©©< ®ÙÒ]+,àŒA‡Ø  •;…ÔzEå]þ<Ïßý‹Ìɤ C™Ñ6ïðÖR®{ÒºsŽyZÍÒ+±êÈÜôÄk´ѤFÈZ‰!FÝmP€×:%•éd
+Ü)„lk2'¨ á"€”Öó±âµ|syùͱÕe€\ûÊJ;YýMªI­‘_£ƒ~Æ1bfÓõÝd=–ÙþÅ|SÅ=UkΫ
+S­‚DÍ0
+G7ôæøÆnuÒ{«ýef‚‰@ÆÚJt'D©Ñeèb ÕÓþÿkŸ,Ûš
ÅGÕkX:gׂ še£¤xu®ôØ\CùqKå1¦g ¡lø 7[Ù²Ì4Òÿ¹[PÞÿøç¥ÏFÔ´²ÿšûI#pŒ"­ªºóöWwxN¥&ÿÊYGúéÆ„¾åoK?\aùt@½=¥¢D#UŠ&ÐmÂ΃:Kó#˜´ÏÙf`ÃN¯Ú¬5}=ÿúfy$V·‹Id”-é%#©¾¯{z²5…رF’oö¾!²’»÷ØIáMØïä†H}ØÝÖR´x`î/Æ]è›Òª^3±Í7é¶ûñâ¬Â^µñŠ
·(FLH³~å¶ÞÖ@Õ6Jäó¾xÌ0V?K£ÈÕJÑ}gy,‹¨†/ã©$þ¸Ì~“Æp\!#…þö/»-ñæ –Ú3Uv+l•EM ´Dýý_O‰uò!÷¶:) G‚·Ñ é91¬ÄdÐ~í@§q&±ÑŸ<¹¥ËŠ)üÁžjÄÆpîp ãO`6ÿÓaÌ€“Ê ‰bœ›³ƒø*Ln<rüME‰J¬#Å<ÝþŽð»Z–êÞ§é
Ö/y³¤¥6f,¹yK@ðcõÏ’bÖ3Jca~Äï¬]+)T!¿hê (ò‹gÙ׺Ñ9QÀî/LÆ. |ºy‹ÔOIûè{£dç*ÇU6j—áÅ+”S•ÙÏ=¡ …–› öHL
@@ -14460,7 +14442,7 @@ K› ÀöYt^¬evQ&57Ñ„t9Æ©‘;ØQLV2²ûËI2­U^¹¨%Ô~ŸŒ×ˆzW
p
íSß»bò7+֘ߠáænÍwˆ'£#µE°nx‹¢PšL~|ö4KQ¦–!¯jn£ÕªîØãVBGE”}œœ Žý­Ð{ƒéV³”Vã0¾ô.¶Tv‚Ì|` °SU[¸U!&ýø7 >hI£YÉì0…òÇ*껪¦úݳj€í¨ž¨ß`Ù?8sGx9g3ÎîèñÙt÷:n:—SúluHx‹œ›ÍÉPo·«ÃJAüÕh€ß¾ÅW'ˆÃô´B ¶q…¡Jˆ`“ý kaæ®´bg>–MO”¶æB8uk—ÄþÙ7)Çê®Ü¿5GVQ(ë¿P­m-FG*åTA¸¡WK2z)· Ž×?3Ì›QOl
-¹ƒ%ÔÕÝÙêjý,âendstream
+¹ƒ%ÔÕÝÙêjý ®áðendstream
endobj
1178 0 obj <<
/Type /Font
@@ -14469,14 +14451,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2836 0 R
-/BaseFont /RZOXXD+URWPalladioL-Ital
+/BaseFont /DATUIL+URWPalladioL-Ital
/FontDescriptor 1176 0 R
>> endobj
1176 0 obj <<
/Ascent 722
/CapHeight 693
/Descent -261
-/FontName /RZOXXD+URWPalladioL-Ital
+/FontName /DATUIL+URWPalladioL-Ital
/ItalicAngle -9.5
/StemV 78
/XHeight 482
@@ -14501,61 +14483,75 @@ xÚ¬¹eTœm“-Œ»kðÆÝ‚{pw×Æ¥qwwwBpwwwwn‚÷/Ïûž™9kÎùu¾ùÕ÷U»jW]µë®^½š’TI•QÄÌÁÄ\ÒÁÄÈ
R
ššÛ»˜Ó,œ¶ÿ>
üfîajîøÄ
-hjcÿOó9ÿ ™Û›ý÷úÿÊô¯ê™EÄÄÕ%éÿ½Ê¨jûw¾ Y¹¸ÿ¡ôw@jžŽæ€ÿ•NSÞÁì?ÿð‰Š:x
-2¶7û;nÿiø6uuvþ«ò¿6ÀßëÿÇù_ƒonîanŠ°¾â`Êb‘ ªÃÍ™×èc… u,mT+* ¨qèõψØå­4z« ejšáûh÷\>s|?üFw4Ö‡cKÝ›f~ùЗœ¶¿ý'U'7ýQ³A)ræ¹fŒ÷Õ’Ü”‹ÆÑÞ”²ŠAÉ ÑL'»3ÜÕ#m
-‰ªV¶ý^]n?É÷oŠ üÐìæÇÕQÿÑŠ´Këñ¯0AÙ¬ŒÚ#Ûõ½ü¶Sz_“Ò¶Âæ°Â¯£Z¬4¦×âÚpj~¿H]c}jÇyŒ{ì|yz0Òä$·‘×ù³›'È úKåWµ0wïèåóä»÷ ¦¤†®ßëÓôäNg@«ÔËfR~7øX3X¯§º<†ž‡:;D݇Y‹’‡±ÇƲ ¾qv"©Î.嶱8Á[Ö†¸gÛyŽ
-‡Ø
-œQdÓžˆo¥j›*÷ú*yèõA®È›ŠØùÞ*9Ö¤û¸·ÂÃmÈŒ¿Åû ×táú9ÂÌ¿×jŒîuÊOà7¬ä'½£[»÷HsHs¢4xÅÈé ývÞh÷»&N™3ï²,ä¯òàÞ¼«»PøÛÖ……Ì\!nÊ—Iž‘Ýù™,dsa‹™2,ÉÜïéÏé›_Ôn8Zr烹ªv{ˆW1óLN¡¦‹JD¼¥"eéUMäãëj“µB‹ND·ó›^ÖåÓܦÙv‰çxD‹ú)MènÁ Œ;Õ×`xÞý¤ŒAhàI%Üú áG`¦‡SØÉň,ø,^‡QXÒ<5µ[OtÂ×{ù…Žö„F×Ï+N•W¾¤Tær U Œ€´q^¾tÆ^?Ø|%uÂŽ¯B_µ÷Åás-™^±`Ö¹Ðü|ñ.ù½„õœÏ¡-eýËÅÌ…£×ïO©èOÕRÁ]k¯þ)¿ÒÃú çøbU'þ÷˜ÀÁ±CŽÊ|Øo‹VÀ,÷QYáŽeƒTÅ€4ù`hõhÃÌ"ÎÕ
-¾•Qÿfí2FZ Ys“^É2ç1›èŒ}´x•oøLÅ~êú¼Sr6Ã,f“Å$ÖÁ~¸!’Åu£Ã¾¹fu[¨½$|8GŠ XP&k©:Ä0[gIJõ„ç)C‘ ŒÄ«é3TûÂü‘ë8‹( Ù‚.àu6s v>ñ±=ei™t„à cþ9
-ËžŸÜxªÄ®»~dÿ|°ƒÝ{ú볩P¤ˆC{TÃÂb ~3˜˜ Ô¶q-ÖTkþWBµRè1
-œ^Å}÷b"áŸÙ÷?'q ‰–Å/F?®ÊD¨%·ŽÐrm‡6ÓÃȈWw[ ØÊ.K.¼€–X¸¢¶ei—ùy¦ ÚI‰sÁÙÛ èFCëšˉ°Áº¬Âì§4{ô_ju5§qWb¡â:‚F®¹‘
-£MQùžÑéÄ›—\Jo£c ÚSAЧÏñ`K¡ˆC%oÝ«ü°¢’N½`ž¾VDÚº‘´^álmÌb'OŠ žQS‚sxCþíº7pážÄ!Jà wF‘›UíG7íoY{º³ÕãbžÕ\Û."{Š~ï!x¹Î+~SÆeT•±ZЯÆ7
-«ˆbÉ4‡\·L0<Vö†GÉ'e÷Ôß6ˆ'„ )©oè–¿aŠC!*uȨÈ9ý$JÄêpêütÏröýr–™·j«œ'“°ˆâd§Í,=~è»EÔúò#¯ùI/­r˜íÓúY«hu=}þú]%HÇ*»a4W(¾‹uó2§ÊÏ}5›z—”í»¹8NÒ7“;ðѨ
-›ˆu61j&všQÌ/‚·bénx;Á8G̾
-Xþ®qp…rÆm`‘ /Iï¨ë‚‘;ýR¨•å)’Ô`m ^f©>¬OÛÎ3[~½›ÍÄŠ
-x¯°&ù.±óh|-ö¤² K¶ÉÉ6 N¿È¿ð.·ÐøSýAH×ú¤ÅÌÞ°—‘,ŠeV®D’R¹ÏÎ_ƒ¢‡):?¨\)Ì/
-ásÆ#ûÝaØü¾C-(^Ÿ¼,•}3Ûð–VG¼:Žˆpöø ‡~fê"¡€«ËöDñqšû„\ãL={,Y6èsÓö&ÿRžéã ÎvøüÆ’ ©—2[<Â]*ŽUÍö~Fº*Äe¤A¬
-‰&$_׉<%@v©Ç1‰4~å¢få¶_±Eû´½ó*`,ÇÂÍ“)‡D7^[#¨eNÄî]›Ä|ccÌ.g‰æRuõ~êP„¨ö­þ²øwâ¯Ú ¬9ˆÆo Dà{éøk JPÔ箫¾<àØ¡{ÒŽƒ£H ˆš9Û¾>,v§ßÚˆ37ïegiZØÃÎ’~92ïc¾q`¼„¹WËmÞ/ŸªÈ"Ëùtþù¡Î T¼ 1¨3
-ŸáG®o4± ÖQÓo$øµì;ÑbV!ûykAžÔ^¶ª¡/©ƒÁ7ÙÈS÷ƒœÔdíMèSAˆ2xî^vΨÊXdºo{g@½ËZǃ¤ÃMp¦|€…¤}øí«š
-¹˜%AÇ©OOûØ+VÄ‹~{HŠ¹l…¥mß,+?(òÖÜþòHaöjZ<Dgº¢(ˆSN÷jÖI€µž„*m÷5eÉ ø;ë'{ª´äú\U·®¿nâ8¬÷Ó‘àfä
-,"õRbzR_'Ï4\ÎG-M
-ælSŒNÃ Ëù}ì3½ÿÚ»~¾-ÇÓ]–Í
-ÑÙÜôW3>Çz¶P\üõº"kw5·D
-(ÙüՅ'•±²ò±—gÊ1HðḶ Ýœœò*ãN_RÓýÈõ´Ùž®Svt¤/wpõL;AÔÑ8—šåÄx{K³íeS”Áñ9UMe›ŽˆÍ×ßÉ¥al‘Âèi×N~¾Î3±ÙpYbdÕŽðéa/å…8•H þÐeý%‚BÒØdÎö¬/~.¯mŒ“Óø5­ÝÑ„ßÓIÆk´í0ùX,ãHKKÙ©qä6ç¡•ø;~¿Éo Šœç”÷-mzË9é‹.òÕºû+Ó·œª7ÆÔ¹ D´!úÅA±´âë9œ¶a¤<Ïë­á_í°Á‚L=€@°ù¶NM¹•íô™gFNó®äìS!à{ù²gâA}*ßZ¬¾"L;¡!&{SºGÚõvÿáIt˜h<Êo`Ð W•˜÷¨º=áp¬ ]3#"ŒBŸtª”‚¥‡˜QðëÿDŸ°Xüù§—K`!6ïH©/ôyþËZ»ùc¥ÏÇÖ™„ÚÝ"ØÑ6Ølšä–ãNdn>‘W¨f4Ý…ÊðB÷=Iâ¹²ÞDŠ¡éóñL—eMåu/÷r5ÒÄØù?¶ßíž;> #ØŸ#J¬ïíýwÅ\á0NJ]þî\wL‰ËW) á«jû콪:‚ÄŒq˾t/eÖ’Ÿn…‡þàObë·¶tóÅ@Ý—†v9p%Z§ P4n¦khÛ%ý®äÇ=v±¯l8E45)ÂcŸfÕ‡³QùâïsÊ9 YbÜ„ƒlï^ë)ý—$ÕŽþ9%AÊf|(—À»‚††î^müu¹ƒŸŽC©¢p°°ð(3ïû{TªÓýᓘï,îÍÔ}»ŸÇ4¼ékv× Ð·5™\Å«ñNKå'®ÌhüMÁüúîVµü~¦@Œ1ÙYЯx¹éœI¶ä¹O¹˜ N‡6õqéà/ð¸7^–@€OÜslDåÓîjßËVS!V6U%áÇÔaDšò“£u»7Z3c‚8p€È3˜£Iº¾œˆ²#>‘¿ŒRý­Š˜–—œ-¤®ÐáZhOÑŒfuð4± wCóÀ:t²YÆ
-àé nرn¢YoIêŸ<vIS Y°ÆÒŽ5G­æå0Mö½Aˆß„«ÿ/kZâ üÂz×bAdð)9Å’6Îö‘Ðk¿Ý§Ä7#ÀjhD(ÅêùÒÓ|[Cªé¶w€áàrÏxéÈsCptE’÷$eŸ‘ƒcö2o¬ÝœSaTS¹/]v¶Ag`æÆ¡¦Á§GlÀ¢?væͶuŽ+¨Î_¸¤ k1¡v=œ°úš§¼›:ܵÍ2¯·^&,ˆ(:˜Kw²´.Ðf‚fr:=P]_ðµW2Vƒ4‹"úCñSðåÙâ­°¬Ø «õÏR ,{zvþÉ ûÕ™€”{uuVœ¬už‡ìNŸûâˆl,
-_… Q×G×züù²žxZ5„3&° S&áŠT›D«HÎÓMn@gl"º7÷qÔEÔÓÔ´´¥!e†j³7·_ßÛ*
-«4èÑ?jú9‘`¸âQ[è)µF¬j,>.¡ÿžByù˜únŸ‚)L©uwŽ6 f
-(ëI0r/*•6#ˆ,º¨YCYæɧàIfðcWζ{À`Œ" ίí+¸6¶qÔ…Æ*zcÑêZ ô,
-keFüŸÒù
-d§'¬ö ¬Âõ=¹»+¢Ûžß›-°6Ç´mQ@hbQîÀ@¾<˜õJšBHçJÑ#ëµmVi¸×0®*YEáœ
-ÒÇ™¼ïw±w9=rž„%É÷¿´á …ˆÛaçE„Ì|ÔÝîÄOÜå!ƒî8$á[¢ôbIe©93«•ìƒUëÔ8Ÿà% !U ÒRÓAšx®PöÔ™JØkóÇ×ng"¼Ð+7tF|…;þí|PvùçÆg/CD?Aæ`CFF9€”’Ò󮋇ùã9#H…Kà{p”¦§ó×XzƒÐhÃƧ ×´;{ØÉ…OÅY“óç"÷
-ãÊÅF_ÕXƒÖw_¡ØKèJVDËXcïEhÛ‹Ô— –ÙR¡pŠÔ€V§éêÆÎ~'%œjeö¯´!ç˜ö: cf f(æ’"äËèÁØ\ûÖôùiÁ<„îvÔÏ:¥•F²,ÎÒ$£ÞzvbsÓÚqÂQ V-/°í-2vŃäƒHì£ ß¬«&ÍÀµÓ©ê^; çÞÇóó~ì/ŒŸ ðþh¿ÂÞ Á†ž^tW÷´]þ¿À·Õw2tIW1‹*íàNk-ûÈȯÃîoÕ8çâ•<ÿfZÑÛu1¤u“&LÑßÂZ*4|Qdù ˆêó½ë½Sý0z'D%4•cŠHÆ#Gmqu ÜFu7â¨pq³ì~zS•>¦…¶˜¢¥‡EíØ^þ®Hj×-Þˆ-11e ±%ɾYö^‰Á†ÚÍÝïx௰éý"ûcÑ®žêön=F8^£GônW?&L1wñWþ“—¾Í؆ŸÏêÆ€#§R·¼ÚR룸þæ
-EÚªVMo·Œ$yg@;”¦ñ4] „逵PØWJ]¥0îNÚ”}0ý?ÜwüÄ
-"¯RÊ*×Qú(­À4ö³)FO›’ ‚äêàþ(ÇÀN-ÅBÁÚc·}2«Õëé¢~ÒR¯ÛûÇDã]ÛÁ›75ÑâÛ?}’^¸Ã/T89B"j':up·ýÁÀËuŠwX¨ôN,[œZÕz¡jð^[éÐÒÊB¬ ?ùéˆ&µ_8èè¯\¿T~+¯þzF¹­õ ã+¹6sÕétäïøë÷’ç6é¢MLqý/V‰{k˜ÖtᎭ 5Â3r;þªOé‹-ò°Yüeå‰4Š\uÔ®¾O½ÜlMÀ¢€rº%bABõ΢8ò1âGÝð+kLiyûƒ7õ;3»à%h#üï[)ÍápµÄsÙHObgÐô»ÑŽ¹?§Çe×ĵ{ ì«þ&ÄqKZÖ¦ ¿ðÒ;qÛª47·‘)<´ 2‰Ç-Ò¸6,éó}›‰Êá]Â?…®ù6Çœb„5ÂxÀ ž^èvíÙœþÉ ã…~È’Õ*Epב~솳ŸP§Í!ðœÚ ^*ŽÒ¹\ÝMÙàvu¸2ÈL].ÍàE´”NDJösö–êä*\Ðqeùšß±œ²ƒ¯êrýrxÍ!¸ï%ծΟÖòÄͱœ·qšZ%ªæé»V7äÌ¿%þ_ÿVš*Ý\„ÊÒ$ǬÇ™Va ÖÃVáÙàYú#gXõÜ¿Œ²ÕÞ·èêµÁ),|d œ¢Û¶†ñ;îìSJh"¬t§?ßyiKYLÚ´pØŠG?'â{âÁ:ì&~&¨*Ir‰OŽŠÜô«þaÀäOÀÝ 0ØÔ››Uñ@t°'Âÿ}û¨ÃšA0IùúL{—p.ðZ¦{xyYOÛ–©Äï´+Ü sHuOŒ¨ÎU G£–@¬Èo`ñý"qà‘±îø•¢†>MÅ€žQg¯¦ün(Nß_äz[ òô:ÕK œ­²S—|vîc50ð>rá*˜RLZr§±æ¨F÷ÓËÅRè¯%ùdÏÌnw°GAš¤’€\êÌp½{ë;îÿ©£1ö§¤Z…(Œ£ŸâÓlXzøÓ£g®éË7âE–$M@òŠŒ!‘ø„~!Óm¡.YAuõdOÉP)$0+17`´¦>‹Sºšà`Ù|ÃùõZ+iÌ%‰Õ-Ž­Lf„1®Á]L?ç©Žý²ødµ§jÄaš›ý ’«+}W¸½C…÷ .ìñHÖ¯b sú =l!î‚0Q­ %— ̤¥¥®.©Q0cÑ…2¡ùÄr*Û>ŸÙ8ðrõÜôÎGùÓ%'§Â5æ+)Éñ;wF$ö’/=Ô=†1Ñ¡*^À½”»ÑœäJû¢œ%uÅ,ºs+§ItO¸’ýôí^êÓqVÆ/õø­˜¸èc è¬æ²ao¼¸=¦ªò^y#et…Ëõêj‡sKÆÝ{%&é³ ˜P ÅFU1ÂäÿÈ8Lˇ™§”ÁW‚e¾Sî3_×ÐR…%«~Þ¶‡ª­R¹¼0Ö¡|!GZ¬7™D¡ÂmlÉ« û¬ÅÚ›å'û!ªXÌ Æ¥Ð‡Ÿ$Ûn¬ßi¶cNÖT{·d­ìD§Xw¿§ÄšU ~pÌßíÛ/“8
-—[«R^i52)úIí 8Ž?œðí•(Hù%‚¶§q‹©[&H…U½3È’PǃjÞX¡(ìÁõJ[Ú(y4\9{1¯€kÒ‰X)×'Ùʱiüƒ²{æxŠH.ž?–… Ý®CÚS‹|¦iŸÎ+—^Pcª(¿œ($&:W§||RÏä|ó­„Ñgx^­ˆI4¿,]…ѧ <‘å ãÜ5u@܉Ü Š4
-î~%³€8Áj·ÌÓ¥í©ªf‰¾„ö§Ï‰óçô$zƒ1Ž¤PP9*'+p9øx3T.Œh“öJ™¿Âõæbo¸ó¾4¯íò¯ý ~µbàÜÄÆÅëº
-ÅïBú¦·bF3‘¿Rm«v—¾NhŽµŸSs-©®Ø Vû$ß±:ÆMÏÇa£é¬¥Òžwu¸`†>I2"m)pŸ†¬)LJ-sE¤wBÆ\ûàx¼uÁ ìàà)†ý®?w-þÄÛóS*‡Û×wün>òîº佇1©úìIn\@Áû‚#–ÊI£óþmü€Êå^MåQ5Û†ì+fÌÉ)sm%$¥®2AÁ*r¾¯i`ƒÿë÷/Éf×(’eŽpý
-’EbŠøÒò÷³órrx¿Ùî…Ía"”æ$çÆ:O[½D—ÏMmî”ó¯åŽŒlº7›ßÔÁ¬„dp‰e=ãvÏA6ä“Ûc4ªÙ ž)ÊÏÓŒMëU—)Å#ãùp¥)~Ø߇gºte © wuÃ^-Ù†œ3m6vxÐ.ú»Cd&ÏÌ ]ˆ
-%"ë»­µ 4-ÎøYmº¬<ÄÕàÈVTøEʦl'‡U3ž,3îÔ€K6:á…Á ز0ÒöuXêçùpƒ$ó¶žÅûšR™=?ì¿3OZ0œ‡‹œ$%fÅ5•.," ÅÕIKfL&Ýd«ÒÛ¶
-Ò*Ñz>~|åÄ!á“;Tÿ¼°wc8Â
-Ÿ(*mBÊp‘77cq²¯„#eµˆ½eñ”æ¦KN84e
-þ&mÕõ­1Û™P·£SÓ<òÊVµ}÷Zê§@ÞMë€<€¬åË&ûqÝA_ÁXRz½–¬X;w3ª¹BË?#,d?¥®‹#{œhï1»D‰LÄшÔ]Lª0‹G€~8îK‹žo H]¤äë®ü²þ“’Bö¾w€Ö:8Y2Ÿo¸È£Ç}ÜÕV%$Á½ôK”t³ 15^@$N5k›¿W²àéîJXɺÝh‡ŒqÇ^èð ^—ÛÁîHú¸5<ºL~_ÜOùoÝ#ãP ÷C(oqZo~„Øq}·wy™søÈ
-Îs!V •ãrMLñ<'šP¾ÔŸ@¸WYÒ‘wçÿò¾Òç–Ö–V.wÚº7qËw ¾y2obW}ËÐë£ ~W·Àg¸sbj„ȳBMt èi(\­ùê“í&×ÙzzÁð4#C®­x@åHCK‚[ÐÚ¤[Þ#Ç©rÖ{°“ÈÕ84S’cmáË“áôÚ¤È*§6MM*sËY$:_Îñ¤C“Ø“›Ó¬ªc¾ìi'õs1z³vØhæ:¬—µ¼ÙùÆLå†Ò–³i]¨W@†–M˶ڧ‰I܉U¡€G‡•
-ª'>Ûf4C¸MvtrZnàyTÉZÕ$KËýaGåEìÝ¿krÀ‡~fµŽúî„ÙGé¦éåGa5ÜÓ1ƒÌZ[\ U¶…\Ðר·ü¥ÀæêÛ‚Rèmà>ñº4ëµ÷VyG~ü½m4ø0QÍÏ<5&6,Å*Ô" €öºàÏ`]M$¥¹¼$ûË«>Sîy
-i¢§£ !㺲”ÐÙmPžY1áÈU—¬h…øƒß'p¿X²0«Åû×N¿”UVÀzÔvƒÜšýâ„å®ðÕæjæ–Ä9Þr`òٷ…Zî¢ôÃ5†Q¯„ÿÖež&Zç:€âÜ3ùO7î•r+B«(ô]gþÒ¦ÈÑH=Fˆez u±!DÓÆQfl³C%q§Kõ¯ÏÖZ®^®¹Nˆ;–¤ßÀ¨ZÕS¡…ÄñÎ_\‘닼‹óDo®Fø>¦R°ÝÍj‘~É÷¯[÷oìÄæò n?[Œá)m’@©—‘Œ1´bÖ9Í­n8-MŠÝšá_jÂå­êÀ:BÝ{8J4 4q†ea: ý>F‘-¼ªø¬Oð…àŽóMA1bÒvBŽ0{«i~n"É(ãUeAqò`Z(سRl8ì|–½v:øŸ”‚'Š’^ÄÏlÇ7…·}¡…4íKœç:©ú,X…¥­­¡bt‡~Wî¥öÕcE«ÃÝS‹†=@å ´Ê×æåóÞ=hj3áRe*ý¸
-Cà ê8ÎÉ]Özá·}6ù\ø*ø1B%[3DŽG
-ŸH¡ó5q¤Ã·i±‚”p³×S“š¡¬p£“ ¿ EûÙc¡ó,ßlÁ5Á²È¬íŽÏl©-fͿ궘SOpø¼5Sy˃øú¶(û
-.3Ÿ– §ï¢Uí,?H-ýÖÒzÆ¥¨>#uQ4ŸÕÃJE,°NN•SONãó‚©;0ãb°^‰Uåª<& ²Nåð I[•Æ«çº´ÉQì\ïåºÞïñ8+ìNH‰\¶¥S‰)½0@ÌJ,yßÙ ?3FçÐi®“©
-X%Ž…¾‡¸ÝëÄìk|ßâðmbØ|¶®¶LïÄì†Ùû¸ä¡›¿å4žUt§Í-Ú'ÏxñwÓƒhÜ£¬N¦ú€·$:–©<©?æÌ"7{•åQιv – YRÀ¯Téœ'Ob­²)7_ùÖÊ$ùÐGDËky—Ý·¢ÉŠ†Ý¡í¸ sx¸ ìqŽ#cßê©Ê±•góf©õÏ)mé¼³_«´`—¦„j?ùÁ“³Û)„„)F'ÏÔJL%%›«Éw‚¦¤‰¡g¸ ¢̪Bé±¢W>"BYÉ:VS=e=X|ùÁ±¨Þw ö¼Ž”ò°=èäÚD¢z*•(J":“–ÝæÜ\ÒËâ¦òUàñ+º¡îîñ,XbAeL¼Ásg]ÔPŠûÕ!‘I´+SdDÞÀð®¼b–ŠÇêqüÆŽ·ß0º¯¬÷Y®M»®¡J±˜|‡à6RBÃðšÍØøæU÷¹¨E— 9Ò­êÿ„l™– ÅÚÎÔƒ™­GÝê™ "âX[zq3H³Üé[‹ãq»©¦-ÚÞ,ÈŒ3:I{r¼â:Ü?#©+²÷%g² X6F~“K0'Òöé½0r=ŸËH“¢“éÞiŒúR7a´Böj»å¸’CêOm‹FE „m&V”'TKõœ
-
-¿*,‰Hç[`öR{w…ÝƸ5¹¾ŠÇŸÉz¼ÃWDgãX°+>BÃ]‹BámƒéIÜ_<©œ+V§UžÌGT Æ‚(ø‡Þv9N{ Óü
-Óúš"ýSz×âת 2\Ö´ÝõØŽHhKÌ´¥sšùíio=¶ïÇ·‡¾Ü⪧–AL!¾ëø ãt¾tblkMÀé¹7AÑ|e·šáfa$|”?²Å0ËvœÁ×°(Õ‚î)=í†þ ±T1ß<” î³ PÔÚƒÞzçäu™»Óƶ»]÷so›w~ª°äƒ]ÛG…,¡ñó!XúÆ‘ŽÝo-*d~}áóÖö2 §Cv¿*ìiëÕÎøˆIXrg]é‡ ³Yèîã`"ùÞW×·sÔ¿A^nÒÕùIÖÇZˆ‹ÕúMºpnc1à€ôC…M¯³ùmlU”Ø—Xz ­ìS;ÒÁ’½yXžMÈð›’]h|¹ ˆü¬a^6ÕévH£ÊšÈØDuöGÑwdp7™õñàéÖd“ó?¢Ñ>;ô¥:žu ôÍáS>3ÞÒ÷“ÉU·ák&½þ½e|‘ÝÛZuFÒ0  ¬±üÕ¸¢
-iÑ$Œ.ÞoŠárò"~ÖùôÕ³zUF•=GÉÝ©‚~éRÜ×h4ÖÀeiâw±žRü/dRÁŒTkÍ#wƒ0&§šžh,Gë±Ãñ°`¿pLsî'úm¯=±çɱe—~–¯#\‡zó,ªÊÃã•ì9»^Bü¹“ÿC=u°cDk þD8œ/'V¶4¥? a¶d»Ø\ñQ­mÓõ:F,ÇÇÔ²\ñÎ<šr9oâ\è‰ñÓ­b]Å»¦f;Uˆ#e2S> xV¥˜ÃŽ­ˆ†ê§—jŠP™­¸¡.!‘#È÷©voÔ`ÒSº’ûþž}°S
-T S!õ\¶ZãÒJ)¡#¢:sÌæÀŽ_îR·è¢#Ô¦Bò
-êOqÚô¡9U¤ $Ö=6Ððü|Hò‹°s%nS,{¨üˆ&õÊ’—8$²cå’6¿p[Žx7íj£\k@?®ð¶ "Ü<4s=3Ña½BÚ_Z¼–âç0h^×IÓ¡gÀDFÌû"O,v}V%t ïæûüH¦¼¯¸Êi¹ò¢Œ
-Vº<3ÿiúü`+zв±ƒõ¤âBy¿e5m¨á^[ÄyaS©aŠ€()ÞŸíÆÜ=7w3ÔV³Md& ðÑÈå’½Teöä´þe¢QŽh¬õ äØîαÿ”øg´>»6¹”¼g´(>\PóÔkºßo†‘vÝ8‹¥‡HZR¯±˜(rÔs•Ì7R¶s×»LíªøŠæüz!ÁÈ U[–Õ²69§QŽƒ.[¿’6çÏhüS—Wse®÷±dßbfïyîI‡dÁFbNþ%ÕgÔÆGœ¢,bœrü(šÙÂ%+'‹ Òl£g"îuªrC`Wro¦1€5ÇCÈ…çpû¶šÍÄ]sG¹ÑOnäàrqœìZI=…M}…)äCQÊ~ ê!µŸ¾Dz9·%eÞ!­û©ÆÁ”,Ý,>׿¿âb‰lGûrs RøV0' uV·ƒÔ) É ²;^%!#úㆹå"à÷È“µ‚i4Í p#Öo·¤_Œä%±!¥Óæ`…(`¢ix¸ü={Pìr {[£3þÝɶ*\ÔvµvÈÆe~0{zŠJ"É®Ñc
-µÄÀ‹í_~ …U¢÷íýwõœÅ6o¸JÚè¨OÊÿ7E®Õ?ÿm]~»úàD¾?œñŽ¹,à¾$ôƒc2‹™‹ãé¸æß‹M|&ìšp{³×Ó\Ì «e •Œ¤·Æý:®s”CrªÞr±[G^…_x[´?ÒØæå'®Öܬž ¥Škv5‰GlŸ뽺>QÄè5ó†…¼~šÒÙŽÝ  ÙvnÂ|*ÑÐaòÝ¥ÉÿÞ^á=tønÚÖ•_ÎïxPðdòùCß•b­RæwWbgÖJ?~årοþC¬[BýädƯ{ñ h§úÍwÓ‰Ï'}2~Ñ]Ø6å°âÙŒ9û ²&ÜÔîNÖñûö¡î±`luî‹)G2O=ßùEßCùä”Õùù[
-¹ÓÏ™wŸ˜sìÇÆâ@•»¯M·åöMXvºóEÿÿu9~Û¤k²¹¶…ê¼ ª?yÉg“º”òÌÜ{ç;OÛ«YŸ$3iÕæ#ÛÏn•8²oväóŽ7¯ã}ËÏëÕýÜá?÷þ¹ësÿ„æÕäÈ©Ù÷pö.Õ`¹fýO©a›K<­ÛNîêè=|ˆuÖïD©â¹µßýÝ^Ú(šDªM?T¹CÂxÝ;)ñ´g¥ÙENÓ/Û¾}õ%×ÊÛJ®Q†…É9©‰E%ù¹‰EÙ\
+hjcÿOó9ÿ ™Û›ý÷úÿÊô¯ê™•¿©*ˆ‰Ñÿ{•QÕöï|²rqÿ;Béï$€Ô<Íÿ+¦¼ƒÙþáuð
+9êXÚ¨VTPãÐ럱Ë[iôVÊÔ4Ã÷Ñî¹|æø~øîh¬Ç–º7Íüò;¡/9m!úOªNnú£ fƒRäÌsÍï«%¹(.£½)eƒ’7¢™Nvg¸«GÚ
+ð±(f°^Ouy =5uv0ˆº;² )$5beA|ãìDR]Ê'lcq‚·¬ q#ζó`Èznª*—äpzGHzl—Žü•ü¡ÙéçXì#œ!qµ¿Í:ƒèÄï”g'EñƒÖ×Zò³
+:Ì•#î8Õ|0x6>Xõ£èRoÂÑX ä0ÎEäÖöj¿qè^Ÿ^vJußÌbõK.X) LÚðªSŒÂí¯&ãsÉ,êA0ªB_‰¤– ¯ÒóFºÖÕ‚`¥¹òß+sUd˜1‘ÇvÇ\Ü7lIo¶Es°+’3ÜÃBŒ -C›«ÏÒÙþä^q%Õª\‚§¦˜©8c‘Òüø«ï:·×lã4ýrmÆl?fGŠO°ç‡'L ýÖºù˜5²Õ°ª+ØÄ2âÛ
+l‹²O¿k€uÒ¥²‚ß¡ú¾ÕPo¯ûR&?¼?H¡_xÑdVetÇFx–ü¦ÒbË”ã¯Ø›'Kœ„Nƒh çs+È#¤>ÝÚZóÿàßóÝÅ—rùJ¿JžÅÖâÀC5׎@«©Î}ú~йPÃ.Ý?þ%ÿ·†Ø…|8V¸+.Äe«iÖtÀ•"¬}g_~ÆI;>aäHb/ÏŒ(o=!!r–M˜”ê>T_×$¼ f~®1Ôtȃ IØQïþ®Ô»JTdc8Cøc q^Wùì
+çüˆ“!Ò£àÆ<y[¬‚-êš^ب8gïÄ~ ½^µæ:~¶¸K‚”ph3» Œ­]ί”…Fö;Çj¶Å.šF`¶×1½UÎ2Òþ’–q× Ë tÞV!c>öäô—Ií¾_F h[ÄyCˆ%‰Šù­©„MË/ß9û}õͦC¢ØFñõBmÇÇ)ZÆkCeƒÝq<úêšFŠÖût¶G}’éáÊ7DtKÅpSÆsV!+%°¤'þ}n€þ-ò
+Y¸_Þº‹’¶Vé0j’æ’w™ýˆ½Ý³˜
+DÄmXÆàÁ–â-fºêgsêÈžG‡æh5˜CPa}f'£³™²§ÛaÎ
+Wá*os¦ ƒ¸È )†V²…úaKVk$×FhÌJÆ-‹ä=Á–¤†(ñFÝRe¼Η ›6Α38î¦ ãÎwò.X0m¢;h¾­³µ‡“V \#ߥÑÄKþ!éWƈô
+‚À@ŸCðPdUÒa"Üd+ŽBCÍ¥×£°œ•j$öuݵA2âIþЦÉßÇB•E3¢³’»Áp=â.Nêþ¡U_»iÛ¢ñ‰&^e=ìü:raó™”÷„ºCñ‡md-ÛÙ£MšOR\ºÏ1MGMe˜×ÅãNäè1¶ñ»Òu‘èËçOœuZ›°Y†ôRÚ|pµÖl ¦»V}ðuX²Kþ5‹S
+:S RK"‚°óhy{
+îõUòÐëƒ\‘7±ò½U<r¬I÷qo…‡Û‹ ö®éÂõs.„™¯ÕÝ딟Ào2XÉOzG·6vï‘ææDiðŠ‘ÓAûí6¼ÑîvMœ2fÞeYÈ_åÁ½y/W)v¡ð·­ ™¹BÜ”/“<#»ò3YÈæÂ3eX’¹ßÓ!žÓ7¿¨Ýp´ä"ÏsU1ìö¯b晜$B'Lÿ”ˆxKEÊÒ«š<ÈÇ×Õ&k…ˆnç7½¬Ë§¹M³íÏñˆõSšÐÝ‚wª¯Áð¼úIƒ>ÐÀ ’
+J¸õÂÀL§°“‹YðY¼£°¤yjj·:Ÿè„¯÷ò í ® žVœ*¯|I©Ì1ä@ª@iã¼|錽~°ùJ8ê„_…¾jï‹Ãç"Z2½8bÁ¬s¡+ø øâ]ò{ ë9ŸC[Êú—‹™ G¯ßŸRÑŸª¥0ƒ»Ö^üS~¥‡õA,ÎñŪNýï1ƒc,†•$ø°ß0,­€Yî9¢²ÂË©Ši"òÁÐêц™Eœ«|+£þÍÚ1dŒ´²æ&&½’eÎc6Ñûh!ñ*ßð™Š'ü†=Tõy§äl†YÌ&‹I¬=‚ýpC$‹ëF‡}1rÍê¶P{IøpŽ::± LÖRuˆa¶Î’”"ê 9ÎS†"‰WÓg¨ö…ù#×qQ²]Àëlæì|â!c{ÊÒ2é7:‡Æüs
+3,‹_Œ~\•‰4PK8n¡äÚm¦'†‘¯î¶°•]–\x-±pEmËÒ:.óóLA´“炳·ІÖ59–5`ƒuY…ÙOiöè¿ÔêjNã®ÄBÅu:]s#F›¢ò=£Ó‰7/¹”ÞFÇ´§:‚ OŸãÁ–B‡JÞºW1øaE%zÁ<}­ˆ´u#i½ÂÙÚ˜Å,NžA:<£¦çð†üÛuoàÂ=‰C:•ÀîŒ"7«ÚnÚß²ötg«ÇÅ<«¹¶]DöýÞCðrWü¦ŒË¨*cµ _oVÅ’i¹n™`x¬ì ’OÊî©¿mO*RRßÑ-Ãÿ†B"TêQ‘súI”ˆÕáÔùéžåìûå,3oÕ3V9O4&aÅÉN›YzüÐw‹¨õåG^ó“^Zå0 Ú§õ#²VÑêz.úüõ»JŽUvÂh®P|ëæeN•Ÿûj6õ.)Ûwsqœ<¤o&w†a£Q´éUâÈcË%õ[§ƒWZEáÝõç­2[â³Êqd¥z÷¿&³äëº6{Çtø’_}ðÒ¾,6¬#¸ÖjMÉÍhk6|ýEJÜ ú
+ùÖ6ëlbÔLì4£˜_#n+ÄÒÝðv‚qŽ˜}°ü]ãà
+åŒÛÀ"A_&’ÞQ+Ö#?vþú¥P+
+ÊS2$©ÁÚþ¼ÌR}XŸ¶g<4¶üz7›‰ÿ¸!Öë®í(!\ø ãÅpÀÿiçžm.¢EÔ*®…ð^aMò]bçÑø*ZìIe–l““mœ~‘á]"n¡ñ§úƒ®õI‹™½a/#Yˬ\‰$¥rŸ¿E18St~P¹R˜_ÂçŒGþö»Ã:°ù}‡ZP¼>yY*ûf¶á-­Žxu áìñýÌÔE"BW—í‰âã4÷ ¹Æ™zöX²mÐç¦íMþ¥<%ÒÇœí0ðø%AR/e¶x4„»T)ª,šíýŒtUˆËHƒ:YZÅ¥¡÷âîC©Ô(Â_åTˆ¢,¡Ýp¬cù¯½ÔÝkDµ=º–š
+cž†äG¡¼ð<%lyAôP­jº<TwåLH¾®yJ€ìRci8>üÊEÍÊm¿b‹öi{çU8ÀXŽ…›'S‰n¼¶GPËœˆÜ7º6‰ùÆƘ]ÎÍ¥8êêýÔ¡Qí[ýeñïÄ_1´6Xs߈À÷Òñ×” ¨Ï)\W}yÀ±C÷¤G‘5s¶}}XìN¿µgnÞËÎÒ´°‡-œ%1ürd0ÞÇ|ãÀx s¯–Û¼_>U‘E–óéüóCA©xbPg
+Ú|÷xêQ"î^ì*µÓÁì[ƒt9Дz%r1K‚6Ž…S;žžö±W¬ˆýösÙ
+JÛ¾YV~&Pä­¹ýå‘ÂìÕ´xˆÎtEQ§œîÕ¬/’
+Zš
+üz±±§yÌÙ¦†–óûØgz;þµwü|[Ž§»,›¢³¹é¯f|Žõm¡¸øëuEÖîjn‰.>P²ê˜« O*beåc/Ï”càÃqm/º99åUÆ œ¾¤¦û‘ëi³=]§ìèH_îàê)˜v‚¨£q.5ˉ+ðö–fÛ˦(ƒãsþ «$šÊ6›¯.¾“K ÂØ0"5„ÑÓ®ü}gc³á²ÄÈ(«áÓÿÂ^Ê q*‘ü¡ËúK…¤±7È8œíY_ü\^Û'§ñkZ»£ ¿§“Œ×hÛaò±X(Æ‘––²SâÈmÎC+% ñwü ~“ß9Ï7(ï[Úô–sÒ;]ä ªu÷W¦o9UoŒ©rˆhCô‹ƒbiÅ×s8mÃH xž#Ö[ÿÚaƒ™z
+ýÁŸÄ×omé拺/ íràJ´1N hÜ4L×жKú]É{ìb_ÙpŠhjR„Ç>ͪg£>òÅßç”s²Ä¹7ÙÞ½ÖSú/IªýsJ‚”ÍøP.=v ! ;ݽÚøër?9‡REá`a þàQfÞ÷÷¨T§ûÃ'1ßYÜ'š©ûv?%Ži.xÓ×ì® ok2¹Š#*Vã–ÊO\™Ñø›‚ùõÝ­jÿøýLc²³ %^ñrÓ9“lÉsŸr1œmê?âÒÁ_àqo8¼,
+fÊP<ãö®•n|~š¸¯|b„'h®ÅI;èËL
+}º FÜâlóž¼Ò Œz-FÞ÷ûðˆâ>µÙ^é°íJmD&k…L]úÀïˆÔÃgßF’“O“"‰fY·?೶~;¶ZÍK1énÑ X˜ED
+ê‹#DgLÛ‰ST[…DZȡïeÿN”‚~§/ìàuÍ?°aŒñên#2ÎDÝl>•Ù ÖLÏ|¦ìõH§_*ß Ð©dªîL#•z8\ úÿø‘µx¼Ÿºwl{Êì-êc³Û’Å…Yybèaç;›?S_D¡ö')Àߣ²mÍKy¦Ì½xÇþ®˜|V X¹GÓ8ÏaŒ×©è¦Æ6áv /vE¡jB™l*â©¡l¤¸BŠs»ø¾icí9
+ã‰b›…GÊ¡•¯fÄò#¿ÿbÆ©ÒÒ4¯+.ë(¤Ã‰„¨*…Ã*©0iL¿—B*èÿ‡¦%êÚOEˆ£‰}uƒÄTÚ|ÃÞ`U™øKô=îÈX+ …o$¡~ ò°
+¢®®õøóe=ñ ´jgL`A#¦L©.6‰
+V‘œ§›Ü€ÎØDtoî㨋¨§©iiKCÊ Õf;nn¿¾·UVi†Q£Ôô'r"ÁpÅ£¶<ÐSj4XÕX}\Bÿ=…òò1õ'Ü4>S˜R/êîm@Í,PÖ“`ä^T*m8FYtQ³†²Ì“O=À“ÌàÇ®œm;÷€ÁE@œ_ÛWpml㨠UôÆ¢Õµ@éYÖÊŒø?¥ó¿¯¡S>+iÞ”X=bz!qÄK b^A¬Êqb„¬A¼ ‰jb¦—0?8{ v Ÿ¦ÍÖ
+[Hz¶…Œ;Ö¼Ð\¿WÆ0ÎQeq9IÎÉè5?°0x?Dveav
+¥.åÞ÷{O³t'Ü ËèȨ­W‚)Z0öàámn›Xƒ}´5 Ò:cùæuãæ ä£sjJÇÍ
+>6Âäý1˜žáô™œ"ÞíòcÕÌPŒ1nKùÄs~⧵Xâ}çÍ®ø‰¢˜ºQ&Ñ•ý˜ƒÊl Å˜¦t¬!\Mo‡úÇ õ^wü}±áDcÄÔÝݾ£áþuG©n\¾¸ÈÝ7Àcå¬U‚Y–ƒ¼eÅjx_ûÏgu¼¤jO‘œ+Ø#rtŒîPdºC¤Ö–ï%DT,fî€é‹¸ˆIØžÇÓɾ2•–Ž¨ ‹Ô(@¹ˆÛëìøïy<ýÄKÑ;e«T
+·Ã΋™ù&¨»Ý‰Ÿ¸ËCÝqH·DéÅ’ÊRsfV+Ù«Ö©q>ÁK@Bª@¥¥¦ƒ4ñ\¡ì©3•°×æ¯ÝÎD$x¡VnèŒø
+wüÛù ìòÏÏ^†ˆ~‚ÌÁ†ŒŒr
+—À÷à(MO篱ô¡Ñ†O®iwö°“ Ÿ:‹³&çÏEîÆ3”‹¾ª±þ­=î¾B±—Ð7<”¬ˆ–±Æދж©/,³¥Cá©­NÓÕ ŒýNJ8ÕÊì_;hCÎ1í't
+ ÆÌÌPÌ%Eȗу±¹ö¬éóÓ‚y5Üí¨ŸuJ+dY,œ¥IF½õì<Ä榵â„£¬Z^`Û[0dìŠ?È‘ØG¾YWM,šk¦SÕ½vν!&ŽççýØ_)>àýÑþ~…½A‚ =½è®îi»ü1~ €o«ïdè’®b5TÚ-ÀÖZö‘‘_‡Ý;ÞªqÎÅ+yþÍ´¢·ÿê0bHë&M˜¢¿…µ.Thø¢È&òAÕç{×{§úaô2NˆJh*;Æ"‘ŒGŽÚâê@¸+ŒênÄQáâ8fÙýô4¦+}M m1EK‹Ú±½ü]'þÔ>*®[¼)Z4b:cÊ@cK“}³ì½ƒ µ›»ßñÀ_aÓûEöÆ¢]=ÕíÝzŒp¼FþéÝ®~L˜bîâ¯ü'#.}›± ?ŸÕG*N¥nyµ¥.ÖGqý=ÌŠ´U­šÞnIò΀v$()LãiºÓk¡°¯”ºJ `Ü´)9ú<`ú¸ïø‰D.^¥”U2®£6ôPZiìgSŒž6%É/ÔÁýQŽZŠ…‚µÇnûdV«×ÓEý¤¥^·÷‰Æ%º¶?‚7oj¢Å·ú$½p‡_¨pr„D ÔNtêànû‚€—7ëï.°PéX¶8µªõB-ÔྲྀÓ¡¥•…X~òÓMj¿pÐÑ_¹~©üV^ýõ40Œr[ëAÆWr!læªÓéÈßñ×ï%ÏmÒE›˜âú_¬÷Ö0­?èÂ[j0&„gävüUŸÒ[äa³øËÊi¹ê¨\1|Ÿz¹Ùš"€EåtKÄ‚„êEq:äcĺáWÖ˜Òòöoê%vfvÁKÐ:Gøß ¶RšÃáj‰ 沑žÄΠéw£s/~NÿŽË®‰k÷:Ù-VýMˆã–´¬#L7@~á¥wâ¶;Tinn#Sxhd[¤q%lXÒçû6•»„
+3 5\'òmŽ9Å<k„ñ€<½ÐÿìÚ³9ý“Æ ý0%«3"TŠà®#ýØ g?¡N›Cà?8µ¼T¥s¹º›²Áíêp1d™º\šÁ‹h)ˆ”ìçì-ÕÉ/T¸ ãÊò5¿c9e_ÕåúåðšCpßKª]?­å‰›c9oã4µJTÍÓw%+¬nÈ™Kü¿þ%*8¬4Uº,¸>•¥IŽYŽ3­Â¬‡­Â³Á³ôGΰê¹e«½oÑÕkƒSXøÈ@97D·m ãwÜÙ§”ÐDXéN
+~¾óÒ–²˜´iá°Ž~NÄ÷Ä‚u.ØMüLP1T’䟹éWýÀ9ÈŸ€»`°©77«âè`O„ þûöQ‡5ƒ`’òõ™ö.á\àµL÷ðò²ž¶-,S5ˆßiW¸æêžQ«ŽF-X‘ßÀâûEâ"À#+bÝñ+E9: }>šŠ?
+Q;G? ħØ°ôð§GÏ\Ó—oÄ‹,I6š€†eC"ñ ý.B¦ÛB]²‚êêÉž’¡RH`VboÀhM}§t5ÁÁ²ù†óëµVÒ˜K!ª[Z™Ìc\ƒ»˜~ÎSûeñÉjOÕˆÃ47û;$WWú®p{‡
+ï\Øã‘&¬_Å@æôzØBÝ)„a¢ZJ."˜IKK]]R£`Æ¢ eBó‰åT¶}>³pàåê¹éò§KNN…kÌWR’ãwîŒHì)$_z¨{þ c¢CU¼€{)w£9É•öE9KêŠYtçVN“èžp%ûè- Ú+¼Ô§ã¬Œ_ ëñ[1qÑÇ@ÑYÍeÃÞxq{LUå½òF2$Êè
+—ëÕÔç–Œ»÷J LÒg0¡Šªb2„Éÿ‘q˜–3O)1‚¯Ë|§Üg¾®!¡¥
+KVý¼mU[¥rya¬CùBŽ´Xo2‰"B…!ÛØ’9VöY‹µ7':ÊOöC„U±˜ŒK¡?I¶ÝX¿Ó2lÇœ¬©önÉ>ZÙ‰N±î ~O‰5+ª@ýà˜¿5Ú·_&q(
+«zg :$ ŽÕ¼±BQ0؃땶´Q$òh¸röb^%Ö¤±R®O²•cÓøe÷Ìñ‘\<, +@º]! †´§ùLÓ>Vþ.½ 4Æ$TQ~9QHLt®N%øø¤žÉùæ[ ?†#Ïð¼Z“h~Yº
+£ÿNx"5ÊAǹjꀸ¹?i
+Çjø-Å~…Ÿaó¥èáE¨šnµéøôξÝ4I°åúnpÙ1v1¬«¨Ì©¼zp¡‘ð¨53c=2f2¾b¾J"«AÂ5…øœýÆ/Ü;D(#?iÎâ²u
+/ÏÀ2ãë;‡êF·Ì€pmÞ‘¡L €AV\dÐË‘b@º:’]ì¹:Q©,¿e1’f—"4T9ˆ­§>ý×+¨‘Ê…¦0B#G³íźـ£eƉ‘F+¨_ÁŠ\ÖH-ùŠ‘™è{3…UѳyÝ«h ‡”Vq¹Œm|´ÑÍñ][¾ÙÁrÜgò’ËECåÆmÒ饑ÅM<ÔÕ³ñ2²z!F i\NBÄ'¿q+—ŸÏ¯û|À¥ÛŒÑdtZíj¾}}rÑY“H¥XçKÚ]yÆ ²»§Z±ÎG¯éóBCò™+ŸÉ‰M\™¿Zú*ñ¹™Á\ ŽÊk’¬
+"¥ ÚV-ì2.'|Ðj?§æZR]±¬6öI¾cuŒ›žÃ$FÓYK¥=ïêpÁ }’dDÚ Rà> XSŽ[æŠHï„Œ¹öÀñxë‚ØÁÁ;S û]î 9Zü‰·ç§T¶¯ïøÝ|äÝ…uÉ{cRõܸٓ€‚÷G,•“FçýÛø•Ë#¼šÊ£j&*¶ ÙW̘“SæÚJHJ]e‚‚Uä|_Ó$Àÿ×ï_’Í®Q$!Êáú$‹Äñ¥åïgç5ääð~³Ý ›ÃD(ÍIÎuž¶z‰.Ÿ›ÚÜ)!ç_Ë+Ùto6¿©ƒY +ÈàËzÆ힃lÈ'·ÇhT³A<5(R•Ÿ§›*Ö«.SŠGÆóáJSü°¿Ït/èÊRAïꆽZ² 9g&Úl<ìð ]ôw‡ÈLž™º(!JDÖw[khZœñ³ ÛtYyˆªÁ‘­¨ð‹”MÙN«f6<YfÜ©—ltÂ/
+ƒ°ea6¤íë°ÔÏóáIæm=‹÷=þ4¥2{~Ø~gž´`839IJ$ÌŠk*]XD,Š«“–̘L0ºÉV¥·m¤U¢õ|ü<øʉCÂ'w¨þyaïÆp„>QTÚ„”á"onÆâd_ GÊ,j{Ëâ)ÍM—œph ËüMÚª‡k[c¶31 nG§¦yä ”#¬jûîµÔO¼›Ö=4x
+Ü"÷€,ºïy ,½M
+ÍÏi£ÁK¿ADÅ "(æñÙËïOÓZp‰L3j2R¾Ç[çg\þÉÜFœçB¬@+Ç嚘ây$N4¡|©?p-®²>¤#ïÎÿå}¥Ï-­-­\î´uoâ–ï@|ód ÞÄ®0ú–¡×GAü®nÏpçÄÔ‘g…šèÐÓP¸ZóÕ'ÛM '®³õô‚áiF†\[ñ€Ê‘†– · µI·¼GŽSå¬÷`'‘«qh¦$ÇÚÂ!–'Â;èµI‘U$NmššTæ–³Ht¾>œãI‡&±'7¦YUÇ|ÙÓ*N>êçbôf;í°ÑÌuX/3jy/²ó™Ê ¥-gÓºP¯€ -›–mµO“¸«B5*TO|¶Íh†p›ìèä´ÜÀó¨’7 ´ªI––'úÃŽÊ‹Ø»×ä€ý:Íjõ!Ü ³ÒMÓËÂj¸§c™µ¶¸ ªl ¹ ¯QoùJÍÕ·¥ÐÛÀ}âuiÖ/j-î­òŽüø{Ûh;ñ+`¢šŸykLlXŠU¨E.
+ñ¿Oà~±daV‹÷ ®~)«¬€õ¨í7¸5ûÅ Ë]á«ÍÕÌ-‰s¼åÀ†e³o µÜEé‡k £>^ ÿ­Ë*<M2´Îu
+„º÷
+6p”hþ*hâ ËÂt@û!|Œ"[xUñYŸ4þà Áß1盂bĤí„aöVÓüÜD’ 4PÆ«Ê‚âäÁ´P°g¥Ø qØù,{ítð?)/N%¼ˆŸÙŽo
+oûB iÚ—8ÏuRõY°
+K[[CÅèý®ÜKí«ÇŠV‡»§ {€Êh•¯ÍËç½{ÐÔfÂ'¤ÊTúq†ÀAÕqœ“»¬õ†Coûlò¹ðUð5þb„J¶fˆþ
+ó)f.Æš‰Íµ‘,­T6ã>‘BækâH‡oÓb)áf¯§&5C XáF'~A‹ö ²ÇBæY¾?Ø‚k‚e‘YÛŸÙR[Ì$šÕm1§ž,àðyk¦ò–ñ%ômQö\f>-NßE«ÚY~Zú­¥õŒKQ}Fê¢h>«7†•ŠX`œ*§žœÆçSw`ÆÅ`½=ªÊUyL@dÊáA’¶*WÏui“£Ø'¸ÞË<t½ßã pVعlK§Sza€˜•Xò.¾³~fŒÎ¡;Ò\7&…)R%°J } !p»×‰Ù× ø<¾Å5àÛÄ°ùl]m™Þ‰5Ø ³÷qÉC7Ë):i<«èN1š[´Nžñâï¦Ѹ?FY#œ6LõoI
+t,SyR0Ì™Enö*Ë?¢œsí
+A,A²0¤€_©&Ò9OžÄ Ze3Rn¾ò­•Iò¡ˆ–×ò.»oE)’ »CÛqæðpØãGƾ9ÔS•c+ÏæÍRëŸ'RÚÒyg¿ViÁ.M Õ~òƒ'g·S SŒNž©)”˜JJ6W“ï MICÏpD ˜U…ÒcE¯|D„²’u¬¦zÊz°øòƒcP½ïìy)åa{Ðɵ‰DõT*Q”Dt&-»Íÿ¸¹¤—ÅM7ä«ÁãWtCÝÝãY2°Ä‚:˘x%‚çκ¨¡÷«C";“hW¦Èˆ¼á]yÅ,9þÔãø)o¿at_Y)î³\›v]C•b1ùÁm¤„†;á5›±ñÍ«îsQ‹.r¤[Õÿ Ù2-A‹µ©3[-ŽºÕ3D0ı¶ôâff¹Ó·Çãv1RMZ´½Ygt’öäxÅt¸FRWdïKÎd°lŒü&&—.`N¤íÓ{a.äz>—‘&E'Ó½Óõ¥nÂh „ìÕ>vËq%‡ÔŸÚŠ@ ÛL¬(O¨–ê9
+» pkr}?“õx‡+®ˆÎƱ`W|„†)º…ÂÛÓ“¸¿xR?8;W¬N«<™¨ŒPð½írœö@§ù¦!õ5Eú§ôþ®Å¯UAe¸¬i»ë±? Ж˜iKç4óÛÓÞ:{lßo}¹ÅUO-ƒ˜B|×;ðÆé|éÄØÖš€Óso‚¢ùÊn5ÃÍÂH&ø(d‹a0–í8‚¯aQªÝSzÚ ýAb5¨b8¾y(ÜgA ¨µ½õÎÉë22w§mw»îçÞ{ß6ïüTaÉ»¶
+YB%âçC°ô# ºßZTÈüúÂç­íeN‡ì~UØÓÖ«ñ“°&äκÒf³2Ð;ÜÇ/ÀDò½¯®o稃¼Ü¤«ó“¬µ«ô›&táÜÇbÀé‡
+›2^góÛت(±!.±ô"ZÙ§v¤ƒ%{%ò°<›á7%»ÐørA4ùYülªÓ3ìF•5‘±‰êì¢ïÈàn2ëãÁÓ­É&çD£}vèKu<ë@/è›Ã§"|f¼¥ï'“ªnÃ×Lzý{Ëø"»·µêŒ¤a@Xcù«pEÒ¢I]†=ßÃåäEü¬óé«gõªŒ*{Ž’»:R$üÒ¥¸¯Ñh¬;ËÒÄïb;„=¥,ø_0Ȥ:ƒ©ÖšGîaLN5=ÑXŽ†W?b‡ãaÁ~á˜æÜOôÛ_{bÏ“cË.ü,_G¸õæYT•‡Ç+Ù rv½„øs'ÿ#†zê`LjÖü‰p83^ O¬liJ4ÂlÉv±¹â£ZÛ¦ëuŒXŽ©e¹â/x4årÞĹÐã§[źŠ/vMÍvªGÊd¦|&@ñ¬J0‡[# ÕO/Õ&¡2[qC?6\B"Gï Rí:Þ¨ÿÀ¤§t%÷ý<û`§
+†ô†Diôc\2°> ›!-O––0LÓôuõF¤]Äí;ÿ2:º<O®©_¤¿°¾`1üñhá‹—gGHÉEV¡r-Õ@,£1,…²Úqn ôD’ž¤ñÂç°Ù>c7“áÖn–<àƒÎ_’‘ò›p <m¨@§Bê¹lµÆ¥•RBGDuæ˜Í¿Ü¥nÑEG¨M…ä>tý:g˜¢qɤ(²µ0£Š#ŸÈïß”ºXøT˜bâ„N>RŽ™*0dIœ]2ÇHƒûdhÉ/ÔÅãôŠpÓ¸Q
+•iÊ_-ùÜ­ž\œ¿mYÞŸâ…ž{¯ë=ÙÈ°ù€!­Ø– ¢eÄ­§‡AœˆÐ÷: ä…ØÂó.­¨6g¤ ‹,^>êÀïõ¹~ou¹Ï<Ønb—7¢EºEfB}dQ†Ç=Ë>7¡ ¤ä®>WE†¡KI³°Úóã‰<°²lÐÔŸâ´éCsªHH¬{l áùùäaçJܦXö"PùMê•%".q HdÆÊ%m~?à¶"ñnÚÕF¹Ö€~\álD¸yhæzf¢Ãz…´¿´x-Å)Îaм®“¦CÏ€‰Œ˜÷E ŸXìú
+¬Jè0ÞÍ÷ù‘Ly_q•+ÒråE'
+›ú
+3Rȇ¢”ýÔCj?} ˆ.ôrnKʼCZ(ö3Rƒ)Y"ºY|®ÅÅÙŽöåæ¤&ð­`Nê¬n ¨S’Aew¼JB<Fô'Æ sËEÀï‘'k?ÓhšA/àF¬ßnI¿ÉKbCJ§ÍÁ
+QÀDÓðpù{ö Øåö¶Fgü»“l3T¸!-¨íj+ì&8Ëü`öô•$&D’]£Çj‰Û¿ü@
+«DïÛûïê8‹mÞp•´ÑQž”ÿoŠ\ªþÛºüvõÁ‰|8ã?sYÀ}IèÇd3ÇÓqÍ¿›øLØ5áöf¯§¹˜WË*Ioûu\ç(‡äT½åb·Ž¼
+¿ð¶8h¤±ÍËO\­¹Y=J×ìjØ>=Ö{u}¢ˆÑkæ y9ü4¥-²»²íÜþ"„ùT¢¡Ãä»K“ÿ½½Â{èðÝ´­+¿œßñ. àÉäó‡¾+ÅZ¥Ìï>®Äά•~üÊåœý‡2X·„úÉÉ_÷âAÑNõ› Oúd"ü¢»°mÊaųs'ödM¸©Ý¬ã÷íCÝcÁØêÜSŽd&ž z¾ó‹¾‡òÉ)ÿªóó·r§Ÿ3ï>1çØ5ŽÅ*w_›nËí›°2ìtç‹þþërü¶I×dsm ÕyT;ò’Ï&u)噸÷Î-v>"Ÿ¶W³>IfÒªÍG¶ŸÝ*qdßìÈço^Çû–Ÿ×;«û¹Ãîýs×çþÍ«É‘S9²ïáì]ªÁ rÍúŸRÃ6—xZ·ÜÕÑ{øë¬ß‰RÅsk¿ûº½´Q4‰T›~¨r‡„ñºwRâiÏ6J³‹<œ¦_¶}ûêK®•·• (\£ ’sR‹Jòs‹²¹
endobj
1042 0 obj <<
/Type /Font
@@ -14564,14 +14560,14 @@ endobj
/FirstChar 35
/LastChar 90
/Widths 2837 0 R
-/BaseFont /ACCOUF+URWPalladioL-Roma-Slant_167
+/BaseFont /QJSNCC+URWPalladioL-Roma-Slant_167
/FontDescriptor 1040 0 R
>> endobj
1040 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /ACCOUF+URWPalladioL-Roma-Slant_167
+/FontName /QJSNCC+URWPalladioL-Roma-Slant_167
/ItalicAngle -9
/StemV 84
/XHeight 469
@@ -14587,18 +14583,20 @@ endobj
/Length1 862
/Length2 1251
/Length3 532
-/Length 1861
+/Length 1860
/Filter /FlateDecode
>>
stream
xÚíUkTgnõJÀ+Å€€¸
-æ2@ Š,Ë© É„’ L P. (‚€`P¡r¨´RZ/ÀËÅÄŠ‚g¹iL@°rÕtÐc—þÜýµggþÌû<Ï÷~Ï<ïwÎgfâéCpb!Á° "@"HœÝ|d
-å†pD€…óg‹";À‰£\&$
- DKg‹ÿ]Íæb#ƒa ÌÄõv#L‡äÐüš”ʸ/Îßùá#’Ö˶*u¯f‹]\—ëC=çe"*-Q^=!Ç)ô÷3Né¢W 2Ý3¾š.Õ½x5½¸Â?;ÚLìñÁG%¥K×¼¶2eÈ"ž.üFiHkFývÛöÞémñm:çX*úáóMsƒÝÚ-½OZšn¶ë½ 9ðá&|ÔÀ“έ“uñù7v2'nßwexâ….éæ
-¶£vð44ûÈŽT(¬¼FœZï©”ÇôYóë=2š$OÓLSÍžË}*$3éq†1¿Ý
-×ÄßMË,™ùÚC ×lL¿>pG–|CIÊJØÛdìjÔöÈšójs›•»ô“ò õªK#uí¡}©Sߨ47—ǽ¨€Â
-kóŒ÷<Žø¾açœ/>3–øeÍéCÏÊdÚÝ z î®{½ÎY/‹´Ü;4Ò)n⫳Ò:Ή1~xܦ£ûÎÞ²G üt ¾ûÚ+°—é¹¼ÖÈl<~=œ¢e*í²32ÿêà+ÆꊵÂR‹MÂÒK cI´þc`õÍÎ.ðj<óHnc’‘®—r-Æ‘ì«-[6JëõzjÏJe}:ÆšýÊìh=…‰´JÄeŸÑžÍÊÈô t÷òÿR#þHK~r GàsµºïEå³rä쎱-‰c~êÆ ùËÁ «)á¸6íRW™ª¡y|©ÑÑf¦PÓ©âìzCä¶ß¤û_<ÐÅ)JÉáDO¥û‡éËøÁß'¿ßXJø)ÆrhB¹µ/g&~ÄÍàd9ç¹Ò£Þ¡¦ÜØ„Øk?n—܉sD¥ÉíÊ5Oñ7­ƒ:ï{@1ŽˆÏ>1fâ©¡ëQ!½â ˜ÈWs\·P²ºÃ&ÂrÿY¥˜ȨŸzf‚kz·îØ3ù±öåBï‘S;~RS,Åòïj°‚L×ønz“uðy]?ï“°¿éÎú«_EäÏVWyHûd—q4I~àÿþ—¡²Éˆõ×nɮɈ.ù„¼ÿV±-Uqìá¤òzÕ1qãMs)Iy›â›x&›P–ïwñGµGóŠÊâqusSOý|jРp!º§¨þ”6²Ÿ¹ŒW:LV•Ð>÷Ù÷k<UÄ>éôâï§Ho’º_hÔË%Få~ôêÔ©éR-ù›­žÙíCƒzÒ9+K:¥fx_ H·ßÝo¸c{îÂoûÖuã~Š¤{ï&gœåÇ:O¾Û²û5§àÙq˜TÙp1Ÿ´.à¾j•J}Ú(œv_X9F¬/J¿ð«û®"ejÊ|ä–‚¡ëM•»æ3Z|ZÚß0Ûü*ÉBõmVµ§éjã’¾…Ò*€¾m¸D]8ðI´½|À-BŸ0JcN|^œØØá90×%ÎmÌKÌu—]‰&g=)CJüå6:ø’ž˜ËÂî p´Q[mc࿦9ëZ7s÷œÖP$sU­ŠÑì3нÛéR>ª+_¨cín½=ê:ätMKÌkÓüyAz¸9$öËÏÐœ±Ù„˜äfŽwn×7\—c´—ÄæàÛçñO¨g·z ÚŽOåÐœ
-š0øŠ'!1çM~ü&ú¨j$`mÄè/}­úªúú£§;»Rüâ\MçÚ%©g”Sw¶wNìÊñxÌ8Ù·ŸîzF£N¦µ:¹"ŽÕÚ`ƒÆ÷ÄæxkôJ9…kƒzó*ÙèÿÃ÷ÿÿ °«BEBÃpÿƒêþfendstream
+æ2@ Š&X4-wDP¤2$H20I0@¹,P ‚A…ÊE ÒJi½
+& X¹ê
+ºè±KîþÚ³3æ}žç{¿gž÷;ç33ñð&ÐÙHìŒÅÒ
+Cb"܉a
+WJ}áes®0›'¬d™bˆÏcÑ…Á| €6D²5u™à‰œyR˜íÁ³¸
+±`>Ìù3lý^ú;ÜÃ!ô€e€¬Pq—à¿Ç` ÒhÅ ØÛb?‚¶€5æß„, ŠÂBñÒÙÄâ[sxØÈ`X
+³p½ÝË!)$¯:¹"ö³s·¿ÿ€¤õ¢­RÝ«ÙìW›ÏcÇxSÏzš‹KG‹•WŽËñ¡
+ýÏY'uÑËné_N—è^¸’VTî—Om"öxã#Ódk^Y™2åáN|­4¤5¡Ï|³m{ïô¶¸6³lãйƹÁní–^',M7Ûõž×x>ràqçÖÉÚ¸¼ë;Y·î¹0=ð"ç4sÇQ;hš}„ àD(Vž#ô–»*åQ}öüz÷ô&éãTÓ³g­ÞåÒ™´XÃèßo†iâ癩eÏ|å®…k2f\¸-Oº®$eÆïm4v1j{hÍ}¹¹ÍÊMöQ0yÐzÕÅ‘ZƒöG>?W)¯Uš›ËbŸ—C¡5¹Æ{žD…W¿sΟCü¢úÔÁ§¥õríîz=Pw×Ý^§Ì…ZniWÉ•YY-÷ø ?<nÓÑ}{oéÃxÁ{:ß~åPƒËp‡œ_id´ »FÑ2•uÙ™yà%suùZQ‰Å&QÉÅø±DZÿQ°êFgx_5žq8'–9ÉLÓË ¾š
+•)Éó[ò‡®5Vì:Çlöny`wlÃlÓËD Õ7™U¦«‹ûJ*ƶábuÁÀ$ñö²×p}Â(5ñiQBCG¸ÇÀ\—$§!7!ÇM~9Šœù¸)ökµÑ)Ç÷D_uo€£ŒÚjnÿ=Õñh׺™;wáÔúBÙ˜‹jU´fŸîNç²QÝÖ…Zöî–[£Ž!Cô«Z’ ~›æO ²CM áo^ºæŒÍ†DÄ$'=`¼»`»¾áºl£½$ßÖ4L}0»ÕsÐv|*›FÏo:Ì(GŸ3ùáë¨#ªÿµá£?÷µè«êꎜêìJöu1k—¦œVNmÜÙÞM8¾+ÛýóDßç —Óýsr­ÕIå±ìŽz4î ¤'&ÛK£WÆ-XØ›[ÁyO‡ü>¸ÿ7øŸh€]Ý*FŠûËþZendstream
endobj
980 0 obj <<
/Type /Font
@@ -14607,14 +14605,14 @@ endobj
/FirstChar 13
/LastChar 110
/Widths 2839 0 R
-/BaseFont /LGYUJF+CMSY10
+/BaseFont /LSCUAM+CMSY10
/FontDescriptor 978 0 R
>> endobj
978 0 obj <<
/Ascent 750
/CapHeight 683
/Descent -194
-/FontName /LGYUJF+CMSY10
+/FontName /LSCUAM+CMSY10
/ItalicAngle -14.035
/StemV 85
/XHeight 431
@@ -14638,7 +14636,7 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬ºc”¤]°%\]î²,Û¶mÛvuÙ¶mÛ¶»lW—mÛúú}ïܹ³î̯ùæG®õœˆ8;vÄ>'Öz2“„@^‰FÀØÎÐDÔÎÖ‰†–ž ¢¨&o`mm`la'M£hgc
+xÚ¬ºc”¤]°%\]î²,Û¶mÛvuÙ¶mÛ¶»lW—mÛúú}ïܹ³î̯ùæG®õœˆ8;vÄ>'Öz2“„@^‰FÀØÎÐDÔÎÖ‰†–ž ¢¨&o`mm`la'M£hgc
áàUûZ­RR Ž_&½þ’ÞŸfx¯%Ê3® ôEþsÈC®” ô“‘Bå0²TU’?…šÜ¡ˆhÍÒVùòýåm»T úÃ8Z§ä‚Û°ý ³:I?Ôöz"6›Èbœ^%
yá×h}×¹­Z  ypÓ‚u=jëé 3\xœa(74nŠïRýƒ&cx£aYKÜ¿‰~ػբÉI·XiêS¨“2ø ú›G²¨†lkÕ›$ñé³øI ñƒ<½*­;:̽¤PœT1]š«ÚowŽ0~,A¸ÕO˜Ó%/‡ìdccÅ÷‹k×{GKÌ‘›j™(+ÔBUÞD# ¡6ª:Mð%¿s¾†I¼;v #wïRUèB&%Ô øªÕ(cÊïZB™ª³/7í¿ '|8¾—}Z£6Ã*DLi´¯kâ'/rn¶èXÐ60µ!~Èaïގا*\Dxc(uè³?^NWù ±CVØñ Áá´ÅÚQ[´¬5üŠvȈ0Kïø^•vµÚ*V¦°cœ (p3“¸µMÖiÒ|#Óƒ}5ãByE¦Ç•yÖÌÞ¢º<^×<;>3ý
ÎÈ;V<g5j‡ùôIH›C„ÿæaTÓ€
@@ -14741,7 +14739,7 @@ PÔ3)lmŒ;œ¸—ü“5|—î”+ÀTÅv‰¼Ô_òF^›b QãLT?yÇ¥ðb²èewïA© !ÅdYò]mÝ ÏÈÍ[Ÿ
‡)Í1p’}l‹ÈÙ¤û¨¯šð1ônQ“Öü:”ƒ‘96êì(…+õƒ<“4Ã7Q|ÿF1°²¨üñ#\õl1ï,äÝ?7Âeì7®Œ½nØ<É„3ÄÓ›rhNBRòÂÑC
^[ÜÀ!ÄŠxMcOÝ—ÙPFt>l¿‹JF¢‡ßÂöð1’£†°åïxDÑv hÇÚ
¥åã—r¢fY—òU·zifÁUÆz*JfU¤ËÞ ½ ýä|ÿ:Ð(Pk<’¥WÝìo*Á]ö…gP³Šþ,ÚFjî¶%™;ɘ¹á9L9.DœÇǦÝ@sOµhòÚ³BãtÑsÒ~ˆ®›×)-ÉA
-ÇГöÞVMýͲ:“®³m›ÓWBÖþü/ùÁÿ ±©¡“‹½­¡“5Ìÿ
+ÇГöÞVMýͲ:“®³m›ÓWBÖþü/ùÁÿ ±©¡“‹½­¡“5Ìÿ
endobj
977 0 obj <<
/Type /Font
@@ -14750,14 +14748,14 @@ endobj
/FirstChar 2
/LastChar 216
/Widths 2840 0 R
-/BaseFont /BGPINQ+URWPalladioL-Roma
+/BaseFont /JTEWKS+URWPalladioL-Roma
/FontDescriptor 975 0 R
>> endobj
975 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /BGPINQ+URWPalladioL-Roma
+/FontName /JTEWKS+URWPalladioL-Roma
/ItalicAngle 0
/StemV 84
/XHeight 469
@@ -14780,7 +14778,7 @@ stream
xÚ¬zceß³eÙU]¶ÕeÛ¶m[·lÛv—mÛ¶m³ËìrMÿþOoæÓÌûp"ÎÎ̽re®Ü;î8dD
Ê´‚&
CF&ìhjèl °1t6å"T75!15&db"däää„!#Ø{8Zš[8RüÅ ¤¦¦ù/Ë?!„Fÿáù»ÓÉÒÜŽüï‹«© ÀÞÖÔÎù/ÄÿóFeSSBg SB3KSBayMI9qB
-q9UBqS;SGCB#KcBKcS;'SJB3€#¡Í¿-v&–ÿ”æD÷KЉÐÐÉÞÔØòï6SwcSû\4„ö¦Ž¶–NNß -Í íœÿöÀ@higlãbò¿v3À¿Ù;þFØþõýS
+q9UBqS;SGCB#KcBKcS;'SJB3€#¡Í¿-v&–ÿ”æD÷KЉÐÐÉÞÔØòï6SwcSû\4„ö¦Ž¶–NNß -Í íœÿöÀ@higlãbò¿v3À¿Ù;þFØþõýS
fH{ð 1Ycgl
ñi0–Wä¯}Ã4¿ ðtóE&Åt¶Z \&—Ešà’º››¹š#/(/25©â¾î‚C‡ã{»ò-o8J<îqæÔ§ -
㼑a1Š¯@x×" ÙÍÕƒHQzHÈÈH<àtáŒË{â,ȸ†ÍÊ·K3”’/Y”Ôty®žˆW"So¼¥¯Úh‰í}oSOw½MOY%9
@@ -14880,7 +14878,7 @@ _ÏfZYX/JÿŠPžUºÐ±;Äó™Ã¾¨5ÃÎ~¢M~;-5”äÖ$„€`3’’˜à0ßnpöã¤ÒE›­ðÆúb89qÄZ¥| ž
!µãmYgKà”‹ù÷ÿ•£B}ôçüÂÛZ = U³W¯Û䉊ù¥tàC½^¦W
QŒÝ›îl6;¹E& ˆÈš.®*·Kcî):+©†¸uó‘=t‹b'´á":
EúPjAõ¶Õ ª±E@ ûõo`¦iqKQ`_`+§|,33yºGÖÿÚæa#^¸“¯™ÆÀ¤Çð—àBÝ®éãó8OÝòUÐÇ3&]¥§J°Æ$h ‹YH<(|í HhtÊc­µ YjCorpôaá‘Ögnj/#;ÌèâCŠ7±]c¥£ÿ|I4aü½ï¯kÅ3|M&ïæ†Àh¿}®²L¸­¿‚fµÝ¤TíR8g¤=Œë&í‰A¬ >ª¢Ûd÷C{z‰-6ð7Tœçܧž p"ÿ²±(¯Ÿûº`h/áw»7¢»ªîÈ” û½U6´‹°ÚS +ÑT~¯Tç°Ç&µÖªñ˜ü¶×êI z {çNÊ€‘±6qZü(úX(ø¢ZyÁ´~´ãÅ¥ÙÛا°ÞÊ›H#æ
-½¨©5¯O3þU¬–.œ) @X±®Kàð`ç0’’A©2ã?Â’§¤1à*\Ü& Ï×ò•Es”òœ³e»`Ž-Ä_ø£½—†›}t`òC;]t:ü#?=*rež‡¾ZNžÿµ×Þ ÞÏ-aæ:-ƒ;ž""·È¶ êÝ'(ž¶b—PÝò$&¦‰É&ŸydÌG­<‡#{BŸí’Tdõ/úYýþª·Áè`þÜ(JæsmjžãdàѦÞ#¶«âÝ]¹CÑdH€ Aþ–/“6óN#å
+½¨©5¯O3þU¬–.œ) @X±®Kàð`ç0’’A©2ã?Â’§¤1à*\Ü& Ï×ò•Es”òœ³e»`Ž-Ä_ø£½—†›}t`òC;]t:ü#?=*rež‡¾ZNžÿµ×Þ ÞÏ-aæ:-ƒ;ž""·È¶ êÝ'(ž¶b—PÝò$&¦‰É&ŸydÌG­<‡#{BŸí’Tdõ/úYýþª·Áè`þÜ(JæsmjžãdàѦÞ#¶«âÝ]¹CÑdH€ Aþ–/“6óN#å
endobj
954 0 obj <<
/Type /Font
@@ -14889,14 +14887,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2841 0 R
-/BaseFont /ZHLVXX+URWPalladioL-Bold
+/BaseFont /WIWHEG+URWPalladioL-Bold
/FontDescriptor 952 0 R
>> endobj
952 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /ZHLVXX+URWPalladioL-Bold
+/FontName /WIWHEG+URWPalladioL-Bold
/ItalicAngle 0
/StemV 123
/XHeight 471
@@ -15086,19 +15084,19 @@ endobj
/Type /Pages
/Count 6
/Parent 2846 0 R
-/Kids [2660 0 R 2668 0 R 2672 0 R 2681 0 R 2694 0 R 2699 0 R]
+/Kids [2658 0 R 2668 0 R 2672 0 R 2679 0 R 2693 0 R 2699 0 R]
>> endobj
2708 0 obj <<
/Type /Pages
/Count 6
/Parent 2847 0 R
-/Kids [2704 0 R 2710 0 R 2719 0 R 2726 0 R 2730 0 R 2734 0 R]
+/Kids [2704 0 R 2710 0 R 2718 0 R 2726 0 R 2730 0 R 2734 0 R]
>> endobj
-2749 0 obj <<
+2748 0 obj <<
/Type /Pages
/Count 6
/Parent 2847 0 R
-/Kids [2741 0 R 2751 0 R 2757 0 R 2767 0 R 2777 0 R 2785 0 R]
+/Kids [2740 0 R 2750 0 R 2756 0 R 2767 0 R 2777 0 R 2785 0 R]
>> endobj
2812 0 obj <<
/Type /Pages
@@ -15140,7 +15138,7 @@ endobj
/Type /Pages
/Count 14
/Parent 2848 0 R
-/Kids [2708 0 R 2749 0 R 2812 0 R]
+/Kids [2708 0 R 2748 0 R 2812 0 R]
>> endobj
2848 0 obj <<
/Type /Pages
@@ -16843,7 +16841,7 @@ endobj
/Count -4
>> endobj
2850 0 obj <<
-/Names [(Access_Control_Lists) 2124 0 R (Bv9ARM.ch01) 1250 0 R (Bv9ARM.ch02) 1294 0 R (Bv9ARM.ch03) 1312 0 R (Bv9ARM.ch04) 1360 0 R (Bv9ARM.ch05) 1544 0 R (Bv9ARM.ch06) 1556 0 R (Bv9ARM.ch07) 2123 0 R (Bv9ARM.ch08) 2148 0 R (Bv9ARM.ch09) 2163 0 R (Bv9ARM.ch10) 2424 0 R (Configuration_File_Grammar) 1579 0 R (DNSSEC) 1430 0 R (Doc-Start) 951 0 R (Setting_TTLs) 2049 0 R (acache) 1301 0 R (access_control) 1743 0 R (acl) 1587 0 R (address_match_lists) 1561 0 R (admin_tools) 1334 0 R (appendix.A) 754 0 R (appendix.B) 846 0 R (bibliography) 2171 0 R (bind9.library) 2380 0 R (boolean_options) 1375 0 R (builtin) 1817 0 R (chapter*.1) 985 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 350 0 R (chapter.6) 362 0 R (chapter.7) 710 0 R (chapter.8) 734 0 R (cite.RFC1033) 2299 0 R (cite.RFC1034) 2184 0 R (cite.RFC1035) 2186 0 R (cite.RFC1101) 2281 0 R (cite.RFC1123) 2283 0 R (cite.RFC1183) 2243 0 R (cite.RFC1464) 2321 0 R (cite.RFC1535) 2229 0 R (cite.RFC1536) 2231 0 R (cite.RFC1537) 2301 0 R (cite.RFC1591) 2285 0 R (cite.RFC1706) 2245 0 R (cite.RFC1712) 2341 0 R (cite.RFC1713) 2323 0 R (cite.RFC1794) 2325 0 R (cite.RFC1876) 2247 0 R (cite.RFC1912) 2303 0 R (cite.RFC1982) 2233 0 R (cite.RFC1995) 2191 0 R (cite.RFC1996) 2193 0 R (cite.RFC2010) 2305 0 R (cite.RFC2052) 2249 0 R (cite.RFC2065) 2353 0 R (cite.RFC2136) 2195 0 R (cite.RFC2137) 2355 0 R (cite.RFC2163) 2251 0 R (cite.RFC2168) 2253 0 R (cite.RFC2181) 2197 0 R (cite.RFC2219) 2307 0 R (cite.RFC2230) 2255 0 R (cite.RFC2240) 2327 0 R (cite.RFC2308) 2199 0 R (cite.RFC2317) 2287 0 R (cite.RFC2345) 2329 0 R (cite.RFC2352) 2331 0 R (cite.RFC2535) 2357 0 R (cite.RFC2536) 2257 0 R (cite.RFC2537) 2259 0 R (cite.RFC2538) 2261 0 R (cite.RFC2539) 2263 0 R (cite.RFC2540) 2265 0 R (cite.RFC2671) 2201 0 R (cite.RFC2672) 2203 0 R (cite.RFC2673) 2343 0 R (cite.RFC2782) 2267 0 R (cite.RFC2825) 2311 0 R (cite.RFC2826) 2289 0 R (cite.RFC2845) 2205 0 R (cite.RFC2874) 2345 0 R (cite.RFC2915) 2269 0 R (cite.RFC2929) 2291 0 R (cite.RFC2930) 2207 0 R (cite.RFC2931) 2209 0 R (cite.RFC3007) 2211 0 R (cite.RFC3008) 2359 0 R (cite.RFC3071) 2333 0 R (cite.RFC3090) 2361 0 R (cite.RFC3110) 2271 0 R (cite.RFC3123) 2273 0 R (cite.RFC3225) 2217 0 R (cite.RFC3258) 2335 0 R (cite.RFC3445) 2363 0 R (cite.RFC3490) 2313 0 R (cite.RFC3491) 2315 0 R (cite.RFC3492) 2317 0 R (cite.RFC3596) 2275 0 R (cite.RFC3597) 2277 0 R (cite.RFC3645) 2213 0 R (cite.RFC3655) 2365 0 R (cite.RFC3658) 2367 0 R (cite.RFC3755) 2369 0 R (cite.RFC3757) 2371 0 R (cite.RFC3833) 2219 0 R (cite.RFC3845) 2373 0 R (cite.RFC3901) 2337 0 R (cite.RFC4033) 2221 0 R (cite.RFC4034) 2223 0 R (cite.RFC4035) 2225 0 R (cite.RFC4074) 2235 0 R (cite.RFC974) 2188 0 R (cite.id2513574) 2378 0 R (clients-per-query) 2103 0 R (configuration_file_elements) 1557 0 R (controls_statement_definition_and_usage) 1342 0 R (diagnostic_tools) 1282 0 R (dnssec.dynamic.zones) 1449 0 R (dynamic_update) 1370 0 R (dynamic_update_policies) 1377 0 R (dynamic_update_security) 1753 0 R (empty) 1825 0 R (historical_dns_information) 2165 0 R (id2466570) 1251 0 R (id2466594) 1252 0 R (id2467484) 1253 0 R (id2467494) 1254 0 R (id2467734) 1264 0 R (id2467755) 1265 0 R (id2467789) 1266 0 R (id2467874) 1269 0 R (id2467966) 1262 0 R (id2470272) 1276 0 R (id2470295) 1279 0 R (id2470393) 1280 0 R (id2470414) 1281 0 R (id2470444) 1287 0 R (id2470480) 1288 0 R (id2470574) 1289 0 R (id2470609) 1295 0 R (id2470635) 1296 0 R (id2470716) 1297 0 R (id2470742) 1300 0 R (id2470753) 1306 0 R (id2470785) 1314 0 R (id2470801) 1315 0 R (id2470823) 1320 0 R (id2470840) 1321 0 R (id2471245) 1329 0 R (id2471251) 1330 0 R (id2472304) 1347 0 R (id2472315) 1348 0 R (id2472878) 1389 0 R (id2472897) 1395 0 R (id2473330) 1410 0 R (id2473347) 1411 0 R (id2473453) 1412 0 R (id2473472) 1413 0 R (id2473482) 1414 0 R (id2473518) 1420 0 R (id2473576) 1421 0 R (id2473625) 1423 0 R (id2473639) 1424 0 R (id2473688) 1429 0 R (id2473893) 1431 0 R (id2473972) 1436 0 R (id2474121) 1437 0 R (id2474548) 1450 0 R (id2474585) 1451 0 R (id2474758) 1456 0 R (id2474861) 1469 0 R (id2474967) 1470 0 R (id2474980) 1471 0 R (id2475081) 1472 0 R (id2475108) 1477 0 R (id2475117) 1478 0 R (id2475127) 1479 0 R (id2475140) 1480 0 R (id2475245) 1481 0 R (id2475255) 1482 0 R (id2475361) 1488 0 R (id2475383) 1490 0 R (id2475485) 1497 0 R (id2475650) 1502 0 R (id2475719) 1503 0 R (id2475836) 1508 0 R (id2475987) 1514 0 R (id2475995) 1515 0 R (id2476027) 1516 0 R (id2476064) 1517 0 R (id2476112) 1518 0 R (id2476142) 1523 0 R (id2476546) 1529 0 R (id2476728) 1530 0 R (id2476782) 1535 0 R (id2476844) 1537 0 R (id2476866) 1538 0 R (id2476899) 1545 0 R (id2477114) 1558 0 R (id2478008) 1570 0 R (id2478036) 1571 0 R (id2478310) 1572 0 R (id2478325) 1577 0 R (id2478423) 1578 0 R (id2478498) 1580 0 R (id2478902) 1586 0 R (id2478945) 1588 0 R (id2479092) 1594 0 R (id2479588) 1603 0 R (id2479605) 1604 0 R (id2479628) 1605 0 R (id2479652) 1606 0 R (id2479742) 1610 0 R (id2479868) 1615 0 R (id2479921) 1616 0 R (id2480617) 1627 0 R (id2481560) 1637 0 R (id2481690) 1643 0 R (id2482148) 1649 0 R (id2482290) 1650 0 R (id2482354) 1653 0 R (id2482397) 1654 0 R (id2482419) 1655 0 R (id2486036) 1704 0 R (id2488549) 1735 0 R (id2488676) 1737 0 R (id2489237) 1752 0 R (id2490386) 1771 0 R (id2490514) 1777 0 R (id2490936) 1786 0 R (id2491438) 1804 0 R (id2493310) 1843 0 R (id2493436) 1849 0 R (id2494139) 1859 0 R (id2495348) 1880 0 R (id2495587) 1892 0 R (id2495702) 1894 0 R (id2496144) 1899 0 R (id2497924) 1921 0 R (id2497931) 1922 0 R (id2497937) 1923 0 R (id2498608) 1934 0 R (id2498709) 1935 0 R (id2500878) 2004 0 R (id2501474) 2014 0 R (id2501492) 2015 0 R (id2501512) 2018 0 R (id2501749) 2024 0 R (id2502987) 2030 0 R (id2503115) 2037 0 R (id2503273) 2038 0 R (id2503568) 2040 0 R (id2503704) 2042 0 R (id2503722) 2047 0 R (id2504195) 2050 0 R (id2504320) 2052 0 R (id2504334) 2053 0 R (id2504446) 2059 0 R (id2504469) 2060 0 R (id2504485) 2061 0 R (id2504546) 2062 0 R (id2504615) 2067 0 R (id2504720) 2068 0 R (id2504864) 2069 0 R (id2505306) 2080 0 R (id2505673) 2089 0 R (id2505678) 2090 0 R (id2507379) 2097 0 R (id2507385) 2098 0 R (id2507762) 2100 0 R (id2507767) 2101 0 R (id2508852) 2108 0 R (id2508952) 2109 0 R (id2509293) 2118 0 R (id2509521) 2132 0 R (id2509670) 2133 0 R (id2509730) 2134 0 R (id2509810) 2149 0 R (id2509815) 2150 0 R (id2509963) 2151 0 R (id2509980) 2152 0 R (id2510042) 2164 0 R (id2510146) 2170 0 R (id2510470) 2175 0 R (id2510472) 2182 0 R (id2510481) 2187 0 R (id2510504) 2183 0 R (id2510528) 2185 0 R (id2510564) 2196 0 R (id2510590) 2198 0 R (id2510616) 2190 0 R (id2510641) 2192 0 R (id2510664) 2194 0 R (id2510720) 2200 0 R (id2510746) 2202 0 R (id2510773) 2204 0 R (id2510835) 2206 0 R (id2510865) 2208 0 R (id2510894) 2210 0 R (id2510921) 2212 0 R (id2510996) 2215 0 R (id2511003) 2216 0 R (id2511030) 2218 0 R (id2511066) 2220 0 R (id2511131) 2222 0 R (id2511196) 2224 0 R (id2511261) 2227 0 R (id2511270) 2228 0 R (id2511296) 2230 0 R (id2511364) 2232 0 R (id2511399) 2234 0 R (id2511440) 2241 0 R (id2511445) 2242 0 R (id2511502) 2244 0 R (id2511540) 2252 0 R (id2511575) 2246 0 R (id2511629) 2248 0 R (id2511736) 2250 0 R (id2511762) 2254 0 R (id2511787) 2256 0 R (id2511814) 2258 0 R (id2511841) 2260 0 R (id2511880) 2262 0 R (id2511910) 2264 0 R (id2511940) 2266 0 R (id2511982) 2268 0 R (id2512016) 2270 0 R (id2512042) 2272 0 R (id2512066) 2274 0 R (id2512123) 2276 0 R (id2512148) 2279 0 R (id2512155) 2280 0 R (id2512181) 2282 0 R (id2512203) 2284 0 R (id2512227) 2286 0 R (id2512273) 2288 0 R (id2512296) 2290 0 R (id2512346) 2297 0 R (id2512354) 2298 0 R (id2512377) 2300 0 R (id2512404) 2302 0 R (id2512430) 2304 0 R (id2512467) 2306 0 R (id2512507) 2309 0 R (id2512513) 2310 0 R (id2512545) 2312 0 R (id2512659) 2314 0 R (id2512694) 2316 0 R (id2512721) 2319 0 R (id2512739) 2320 0 R (id2512829) 2322 0 R (id2512855) 2324 0 R (id2512881) 2326 0 R (id2512904) 2328 0 R (id2512950) 2330 0 R (id2512973) 2332 0 R (id2513000) 2334 0 R (id2513026) 2336 0 R (id2513063) 2339 0 R (id2513069) 2340 0 R (id2513127) 2342 0 R (id2513154) 2344 0 R (id2513190) 2351 0 R (id2513202) 2352 0 R (id2513241) 2354 0 R (id2513268) 2356 0 R (id2513298) 2358 0 R (id2513323) 2360 0 R (id2513350) 2362 0 R (id2513386) 2364 0 R (id2513422) 2366 0 R (id2513449) 2368 0 R (id2513476) 2370 0 R (id2513521) 2372 0 R (id2513562) 2375 0 R (id2513572) 2377 0 R (id2513574) 2379 0 R (id2513730) 2385 0 R (id2513739) 2386 0 R (id2513764) 2387 0 R (id2513863) 2388 0 R (id2513940) 2393 0 R (id2513966) 2395 0 R (id2513975) 2396 0 R (id2514134) 2402 0 R (id2514187) 2403 0 R (id2514251) 2404 0 R (id2514266) 2409 0 R (id2514466) 2414 0 R (id2514530) 2415 0 R (incremental_zone_transfers) 1386 0 R (internet_drafts) 2374 0 R (ipv6addresses) 1539 0 R (journal) 1382 0 R (lwresd) 1546 0 R (man.arpaname) 2788 0 R (man.ddns-confgen) 2773 0 R (man.dig) 2425 0 R (man.dnssec-checkds) 2473 0 R (man.dnssec-coverage) 2485 0 R (man.dnssec-dsfromkey) 2500 0 R (man.dnssec-keyfromlabel) 2514 0 R (man.dnssec-keygen) 1463 0 R (man.dnssec-revoke) 2561 0 R (man.dnssec-settime) 1464 0 R (man.dnssec-signzone) 2589 0 R (man.dnssec-verify) 2618 0 R (man.genrandom) 2794 0 R (man.host) 2462 0 R (man.isc-hmac-fixup) 2805 0 R (man.named) 2657 0 R (man.named-checkconf) 2629 0 R (man.named-checkzone) 2641 0 R (man.named-journalprint) 2684 0 R (man.nsec3hash) 2817 0 R (man.nsupdate) 2690 0 R (man.rndc) 1341 0 R (man.rndc-confgen) 2761 0 R (man.rndc.conf) 2744 0 R (managed-keys) 1491 0 R (notify) 1361 0 R (options) 1672 0 R (page.1) 950 0 R (page.10) 1338 0 R (page.100) 1943 0 R (page.101) 1961 0 R (page.102) 1975 0 R (page.103) 1992 0 R (page.104) 2003 0 R (page.105) 2009 0 R (page.106) 2013 0 R (page.107) 2023 0 R (page.108) 2029 0 R (page.109) 2036 0 R (page.11) 1346 0 R (page.110) 2046 0 R (page.111) 2058 0 R (page.112) 2066 0 R (page.113) 2074 0 R (page.114) 2078 0 R (page.115) 2087 0 R (page.116) 2095 0 R (page.117) 2107 0 R (page.118) 2114 0 R (page.119) 2122 0 R (page.12) 1353 0 R (page.120) 2128 0 R (page.121) 2139 0 R (page.122) 2143 0 R (page.123) 2147 0 R (page.124) 2158 0 R (page.125) 2162 0 R (page.126) 2169 0 R (page.127) 2180 0 R (page.128) 2239 0 R (page.129) 2295 0 R (page.13) 1359 0 R (page.130) 2349 0 R (page.131) 2384 0 R (page.132) 2392 0 R (page.133) 2401 0 R (page.134) 2408 0 R (page.135) 2413 0 R (page.136) 2419 0 R (page.137) 2423 0 R (page.138) 2432 0 R (page.139) 2439 0 R (page.14) 1381 0 R (page.140) 2444 0 R (page.141) 2448 0 R (page.142) 2452 0 R (page.143) 2461 0 R (page.144) 2469 0 R (page.145) 2481 0 R (page.146) 2492 0 R (page.147) 2499 0 R (page.148) 2508 0 R (page.149) 2520 0 R (page.15) 1394 0 R (page.150) 2526 0 R (page.151) 2533 0 R (page.152) 2543 0 R (page.153) 2547 0 R (page.154) 2552 0 R (page.155) 2558 0 R (page.156) 2569 0 R (page.157) 2580 0 R (page.158) 2586 0 R (page.159) 2597 0 R (page.16) 1400 0 R (page.160) 2601 0 R (page.161) 2605 0 R (page.162) 2609 0 R (page.163) 2616 0 R (page.164) 2626 0 R (page.165) 2637 0 R (page.166) 2649 0 R (page.167) 2653 0 R (page.168) 2662 0 R (page.169) 2670 0 R (page.17) 1404 0 R (page.170) 2674 0 R (page.171) 2683 0 R (page.172) 2696 0 R (page.173) 2701 0 R (page.174) 2706 0 R (page.175) 2712 0 R (page.176) 2721 0 R (page.177) 2728 0 R (page.178) 2732 0 R (page.179) 2736 0 R (page.18) 1409 0 R (page.180) 2743 0 R (page.181) 2753 0 R (page.182) 2759 0 R (page.183) 2769 0 R (page.184) 2779 0 R (page.185) 2787 0 R (page.186) 2802 0 R (page.187) 2816 0 R (page.19) 1419 0 R (page.2) 974 0 R (page.20) 1428 0 R (page.21) 1435 0 R (page.22) 1441 0 R (page.23) 1445 0 R (page.24) 1455 0 R (page.25) 1468 0 R (page.26) 1476 0 R (page.27) 1486 0 R (page.28) 1495 0 R (page.29) 1501 0 R (page.3) 1275 0 R (page.30) 1507 0 R (page.31) 1513 0 R (page.32) 1522 0 R (page.33) 1528 0 R (page.34) 1534 0 R (page.35) 1543 0 R (page.36) 1550 0 R (page.37) 1555 0 R (page.38) 1565 0 R (page.39) 1569 0 R (page.4) 1286 0 R (page.40) 1576 0 R (page.41) 1585 0 R (page.42) 1593 0 R (page.43) 1602 0 R (page.44) 1614 0 R (page.45) 1620 0 R (page.46) 1626 0 R (page.47) 1632 0 R (page.48) 1636 0 R (page.49) 1642 0 R (page.5) 1293 0 R (page.50) 1648 0 R (page.51) 1659 0 R (page.52) 1663 0 R (page.53) 1667 0 R (page.54) 1671 0 R (page.55) 1677 0 R (page.56) 1681 0 R (page.57) 1687 0 R (page.58) 1692 0 R (page.59) 1697 0 R (page.6) 1305 0 R (page.60) 1703 0 R (page.61) 1710 0 R (page.62) 1720 0 R (page.63) 1724 0 R (page.64) 1728 0 R (page.65) 1732 0 R (page.66) 1742 0 R (page.67) 1749 0 R (page.68) 1757 0 R (page.69) 1762 0 R (page.7) 1311 0 R (page.70) 1766 0 R (page.71) 1770 0 R (page.72) 1776 0 R (page.73) 1785 0 R (page.74) 1790 0 R (page.75) 1798 0 R (page.76) 1803 0 R (page.77) 1810 0 R (page.78) 1815 0 R (page.79) 1823 0 R (page.8) 1319 0 R (page.80) 1830 0 R (page.81) 1834 0 R (page.82) 1838 0 R (page.83) 1842 0 R (page.84) 1848 0 R (page.85) 1854 0 R (page.86) 1858 0 R (page.87) 1863 0 R (page.88) 1867 0 R (page.89) 1872 0 R (page.9) 1328 0 R (page.90) 1877 0 R (page.91) 1890 0 R (page.92) 1898 0 R (page.93) 1903 0 R (page.94) 1907 0 R (page.95) 1911 0 R (page.96) 1915 0 R (page.97) 1920 0 R (page.98) 1928 0 R (page.99) 1932 0 R (page.i) 984 0 R (page.ii) 1039 0 R (page.iii) 1103 0 R (page.iv) 1166 0 R (page.v) 1228 0 R (pkcs11) 1496 0 R (proposed_standards) 1390 0 R (query_address) 1758 0 R (rfc5011.support) 1487 0 R (rfcs) 1271 0 R (rndc) 1598 0 R (root_delegation_only) 1939 0 R (rrset_ordering) 1324 0 R (sample_configuration) 1313 0 R (section*.10) 2308 0 R (section*.100) 2633 0 R (section*.101) 2638 0 R (section*.102) 2639 0 R (section*.103) 2640 0 R (section*.104) 2642 0 R (section*.105) 2643 0 R (section*.106) 2644 0 R (section*.107) 2645 0 R (section*.108) 2654 0 R (section*.109) 2655 0 R (section*.11) 2318 0 R (section*.110) 2656 0 R (section*.111) 2658 0 R (section*.112) 2663 0 R (section*.113) 2664 0 R (section*.114) 2665 0 R (section*.115) 2675 0 R (section*.116) 2676 0 R (section*.117) 2677 0 R (section*.118) 2678 0 R (section*.119) 2679 0 R (section*.12) 2338 0 R (section*.120) 2685 0 R (section*.121) 2686 0 R (section*.122) 2687 0 R (section*.123) 2688 0 R (section*.124) 2689 0 R (section*.125) 2691 0 R (section*.126) 2692 0 R (section*.127) 2697 0 R (section*.128) 2702 0 R (section*.129) 2707 0 R (section*.13) 2350 0 R (section*.130) 2713 0 R (section*.131) 2714 0 R (section*.132) 2715 0 R (section*.133) 2716 0 R (section*.134) 2717 0 R (section*.135) 2722 0 R (section*.136) 2723 0 R (section*.137) 2724 0 R (section*.138) 2737 0 R (section*.139) 2738 0 R (section*.14) 2376 0 R (section*.140) 2739 0 R (section*.141) 2745 0 R (section*.142) 2746 0 R (section*.143) 2747 0 R (section*.144) 2748 0 R (section*.145) 2754 0 R (section*.146) 2755 0 R (section*.147) 2760 0 R (section*.148) 2762 0 R (section*.149) 2763 0 R (section*.15) 2426 0 R (section*.150) 2764 0 R (section*.151) 2765 0 R (section*.152) 2770 0 R (section*.153) 2771 0 R (section*.154) 2772 0 R (section*.155) 2774 0 R (section*.156) 2775 0 R (section*.157) 2780 0 R (section*.158) 2781 0 R (section*.159) 2782 0 R (section*.16) 2427 0 R (section*.160) 2783 0 R (section*.161) 2789 0 R (section*.162) 2790 0 R (section*.163) 2791 0 R (section*.164) 2792 0 R (section*.165) 2793 0 R (section*.166) 2795 0 R (section*.167) 2796 0 R (section*.168) 2797 0 R (section*.169) 2798 0 R (section*.17) 2428 0 R (section*.170) 2803 0 R (section*.171) 2804 0 R (section*.172) 2806 0 R (section*.173) 2807 0 R (section*.174) 2808 0 R (section*.175) 2809 0 R (section*.176) 2810 0 R (section*.177) 2811 0 R (section*.178) 2818 0 R (section*.179) 2819 0 R (section*.18) 2433 0 R (section*.180) 2820 0 R (section*.181) 2821 0 R (section*.182) 2822 0 R (section*.183) 2823 0 R (section*.19) 2434 0 R (section*.2) 2174 0 R (section*.20) 2440 0 R (section*.21) 2453 0 R (section*.22) 2454 0 R (section*.23) 2455 0 R (section*.24) 2456 0 R (section*.25) 2457 0 R (section*.26) 2463 0 R (section*.27) 2464 0 R (section*.28) 2465 0 R (section*.29) 2470 0 R (section*.3) 2181 0 R (section*.30) 2471 0 R (section*.31) 2472 0 R (section*.32) 2474 0 R (section*.33) 2475 0 R (section*.34) 2476 0 R (section*.35) 2482 0 R (section*.36) 2483 0 R (section*.37) 2484 0 R (section*.38) 2486 0 R (section*.39) 2487 0 R (section*.4) 2189 0 R (section*.40) 2488 0 R (section*.41) 2493 0 R (section*.42) 2494 0 R (section*.43) 2495 0 R (section*.44) 2501 0 R (section*.45) 2502 0 R (section*.46) 2503 0 R (section*.47) 2504 0 R (section*.48) 2509 0 R (section*.49) 2510 0 R (section*.5) 2214 0 R (section*.50) 2511 0 R (section*.51) 2512 0 R (section*.52) 2513 0 R (section*.53) 2515 0 R (section*.54) 2516 0 R (section*.55) 2521 0 R (section*.56) 2522 0 R (section*.57) 2527 0 R (section*.58) 2528 0 R (section*.59) 2534 0 R (section*.6) 2226 0 R (section*.60) 2535 0 R (section*.61) 2536 0 R (section*.62) 2537 0 R (section*.63) 2538 0 R (section*.64) 2539 0 R (section*.65) 2548 0 R (section*.66) 2553 0 R (section*.67) 2554 0 R (section*.68) 2559 0 R (section*.69) 2560 0 R (section*.7) 2240 0 R (section*.70) 2562 0 R (section*.71) 2563 0 R (section*.72) 2564 0 R (section*.73) 2565 0 R (section*.74) 2570 0 R (section*.75) 2571 0 R (section*.76) 2572 0 R (section*.77) 2573 0 R (section*.78) 2574 0 R (section*.79) 2575 0 R (section*.8) 2278 0 R (section*.80) 2581 0 R (section*.81) 2582 0 R (section*.82) 2587 0 R (section*.83) 2588 0 R (section*.84) 2590 0 R (section*.85) 2591 0 R (section*.86) 2592 0 R (section*.87) 2593 0 R (section*.88) 2610 0 R (section*.89) 2611 0 R (section*.9) 2296 0 R (section*.90) 2617 0 R (section*.91) 2619 0 R (section*.92) 2620 0 R (section*.93) 2621 0 R (section*.94) 2622 0 R (section*.95) 2627 0 R (section*.96) 2628 0 R (section*.97) 2630 0 R (section*.98) 2631 0 R (section*.99) 2632 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.10) 274 0 R (section.4.11) 286 0 R (section.4.12) 338 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 354 0 R (section.5.2) 358 0 R (section.6.1) 366 0 R (section.6.2) 394 0 R (section.6.3) 622 0 R (section.6.4) 678 0 R (section.7.1) 714 0 R (section.7.2) 718 0 R (section.7.3) 730 0 R (section.8.1) 738 0 R (section.8.2) 746 0 R (section.8.3) 750 0 R (section.A.1) 758 0 R (section.A.2) 766 0 R (section.A.3) 774 0 R (section.A.4) 790 0 R (section.B.1) 850 0 R (section.B.10) 886 0 R (section.B.11) 890 0 R (section.B.12) 894 0 R (section.B.13) 898 0 R (section.B.14) 902 0 R (section.B.15) 906 0 R (section.B.16) 910 0 R (section.B.17) 914 0 R (section.B.18) 918 0 R (section.B.19) 922 0 R (section.B.2) 854 0 R (section.B.20) 926 0 R (section.B.21) 930 0 R (section.B.22) 934 0 R (section.B.23) 938 0 R (section.B.24) 942 0 R (section.B.3) 858 0 R (section.B.4) 862 0 R (section.B.5) 866 0 R (section.B.6) 870 0 R (section.B.7) 874 0 R (section.B.8) 878 0 R (section.B.9) 882 0 R (server_resource_limits) 1779 0 R (server_statement_definition_and_usage) 1716 0 R (server_statement_grammar) 1868 0 R (statistics) 2079 0 R (statistics_counters) 2088 0 R (statschannels) 1879 0 R (statsfile) 1683 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.10.1) 278 0 R (subsection.4.10.2) 282 0 R (subsection.4.11.1) 290 0 R (subsection.4.11.2) 306 0 R (subsection.4.11.3) 322 0 R (subsection.4.11.4) 326 0 R (subsection.4.11.5) 330 0 R (subsection.4.11.6) 334 0 R (subsection.4.12.1) 342 0 R (subsection.4.12.2) 346 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.10) 258 0 R (subsection.4.9.11) 262 0 R (subsection.4.9.12) 266 0 R (subsection.4.9.13) 270 0 R (subsection.4.9.2) 226 0 R (subsection.4.9.3) 230 0 R (subsection.4.9.4) 234 0 R (subsection.4.9.5) 238 0 R (subsection.4.9.6) 242 0 R (subsection.4.9.7) 246 0 R (subsection.4.9.8) 250 0 R (subsection.4.9.9) 254 0 R (subsection.6.1.1) 370 0 R (subsection.6.1.2) 382 0 R (subsection.6.2.1) 398 0 R (subsection.6.2.10) 434 0 R (subsection.6.2.11) 450 0 R (subsection.6.2.12) 454 0 R (subsection.6.2.13) 458 0 R (subsection.6.2.14) 462 0 R (subsection.6.2.15) 466 0 R (subsection.6.2.16) 470 0 R (subsection.6.2.17) 558 0 R (subsection.6.2.18) 562 0 R (subsection.6.2.19) 566 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 570 0 R (subsection.6.2.21) 574 0 R (subsection.6.2.22) 578 0 R (subsection.6.2.23) 582 0 R (subsection.6.2.24) 586 0 R (subsection.6.2.25) 590 0 R (subsection.6.2.26) 594 0 R (subsection.6.2.27) 598 0 R (subsection.6.2.28) 602 0 R (subsection.6.2.3) 406 0 R (subsection.6.2.4) 410 0 R (subsection.6.2.5) 414 0 R (subsection.6.2.6) 418 0 R (subsection.6.2.7) 422 0 R (subsection.6.2.8) 426 0 R (subsection.6.2.9) 430 0 R (subsection.6.3.1) 626 0 R (subsection.6.3.2) 638 0 R (subsection.6.3.3) 642 0 R (subsection.6.3.4) 646 0 R (subsection.6.3.5) 650 0 R (subsection.6.3.6) 670 0 R (subsection.6.3.7) 674 0 R (subsection.6.4.1) 686 0 R (subsection.7.2.1) 722 0 R (subsection.7.2.2) 726 0 R (subsection.8.1.1) 742 0 R (subsection.A.1.1) 762 0 R (subsection.A.2.1) 770 0 R (subsection.A.3.1) 778 0 R (subsection.A.3.2) 782 0 R (subsection.A.3.3) 786 0 R (subsection.A.4.1) 794 0 R (subsection.A.4.2) 798 0 R (subsection.A.4.3) 802 0 R (subsection.A.4.4) 806 0 R (subsection.A.4.5) 810 0 R (subsection.A.4.6) 814 0 R (subsection.A.4.7) 842 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.11.1.1) 294 0 R (subsubsection.4.11.1.2) 298 0 R (subsubsection.4.11.1.3) 302 0 R (subsubsection.4.11.2.1) 310 0 R (subsubsection.4.11.2.2) 314 0 R (subsubsection.4.11.2.3) 318 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 374 0 R (subsubsection.6.1.1.2) 378 0 R (subsubsection.6.1.2.1) 386 0 R (subsubsection.6.1.2.2) 390 0 R (subsubsection.6.2.10.1) 438 0 R (subsubsection.6.2.10.2) 442 0 R (subsubsection.6.2.10.3) 446 0 R (subsubsection.6.2.16.1) 474 0 R (subsubsection.6.2.16.10) 510 0 R (subsubsection.6.2.16.11) 514 0 R (subsubsection.6.2.16.12) 518 0 R (subsubsection.6.2.16.13) 522 0 R (subsubsection.6.2.16.14) 526 0 R (subsubsection.6.2.16.15) 530 0 R (subsubsection.6.2.16.16) 534 0 R (subsubsection.6.2.16.17) 538 0 R (subsubsection.6.2.16.18) 542 0 R (subsubsection.6.2.16.19) 546 0 R (subsubsection.6.2.16.2) 478 0 R (subsubsection.6.2.16.20) 550 0 R (subsubsection.6.2.16.21) 554 0 R (subsubsection.6.2.16.3) 482 0 R (subsubsection.6.2.16.4) 486 0 R (subsubsection.6.2.16.5) 490 0 R (subsubsection.6.2.16.6) 494 0 R (subsubsection.6.2.16.7) 498 0 R (subsubsection.6.2.16.8) 502 0 R (subsubsection.6.2.16.9) 506 0 R (subsubsection.6.2.28.1) 606 0 R (subsubsection.6.2.28.2) 610 0 R (subsubsection.6.2.28.3) 614 0 R (subsubsection.6.2.28.4) 618 0 R (subsubsection.6.3.1.1) 630 0 R (subsubsection.6.3.1.2) 634 0 R (subsubsection.6.3.5.1) 654 0 R (subsubsection.6.3.5.2) 658 0 R (subsubsection.6.3.5.3) 662 0 R (subsubsection.6.3.5.4) 666 0 R (subsubsection.6.4.0.1) 682 0 R (subsubsection.6.4.1.1) 690 0 R (subsubsection.6.4.1.2) 694 0 R (subsubsection.6.4.1.3) 698 0 R (subsubsection.6.4.1.4) 702 0 R (subsubsection.6.4.1.5) 706 0 R (subsubsection.A.4.6.1) 818 0 R (subsubsection.A.4.6.2) 822 0 R (subsubsection.A.4.6.3) 826 0 R (subsubsection.A.4.6.4) 830 0 R (subsubsection.A.4.6.5) 834 0 R (subsubsection.A.4.6.6) 838 0 R (table.1.1) 1255 0 R (table.1.2) 1263 0 R (table.3.1) 1322 0 R (table.3.2) 1349 0 R (table.6.1) 1559 0 R (table.6.10) 2019 0 R (table.6.11) 2025 0 R (table.6.12) 2031 0 R (table.6.13) 2039 0 R (table.6.14) 2041 0 R (table.6.15) 2048 0 R (table.6.16) 2051 0 R (table.6.17) 2054 0 R (table.6.18) 2070 0 R (table.6.19) 2081 0 R (table.6.2) 1581 0 R (table.6.20) 2091 0 R (table.6.21) 2099 0 R (table.6.22) 2102 0 R (table.6.23) 2110 0 R (table.6.3) 1589 0 R (table.6.4) 1628 0 R (table.6.5) 1644 0 R (table.6.6) 1705 0 R (table.6.7) 1805 0 R (table.6.8) 1924 0 R (table.6.9) 2005 0 R (the_category_phrase) 1622 0 R (the_sortlist_statement) 1792 0 R (topology) 1791 0 R (trusted-keys) 1891 0 R (tsig) 1405 0 R (tuning) 1806 0 R (types_of_resource_records_and_when_to_use_them) 1270 0 R (view_statement_grammar) 1826 0 R (zone_statement_grammar) 1738 0 R (zone_transfers) 1376 0 R (zonefile_format) 1819 0 R]
+/Names [(Access_Control_Lists) 2124 0 R (Bv9ARM.ch01) 1250 0 R (Bv9ARM.ch02) 1294 0 R (Bv9ARM.ch03) 1312 0 R (Bv9ARM.ch04) 1360 0 R (Bv9ARM.ch05) 1544 0 R (Bv9ARM.ch06) 1556 0 R (Bv9ARM.ch07) 2123 0 R (Bv9ARM.ch08) 2148 0 R (Bv9ARM.ch09) 2163 0 R (Bv9ARM.ch10) 2424 0 R (Configuration_File_Grammar) 1579 0 R (DNSSEC) 1430 0 R (Doc-Start) 951 0 R (Setting_TTLs) 2049 0 R (acache) 1301 0 R (access_control) 1743 0 R (acl) 1587 0 R (address_match_lists) 1561 0 R (admin_tools) 1334 0 R (appendix.A) 754 0 R (appendix.B) 846 0 R (bibliography) 2171 0 R (bind9.library) 2380 0 R (boolean_options) 1375 0 R (builtin) 1817 0 R (chapter*.1) 985 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 350 0 R (chapter.6) 362 0 R (chapter.7) 710 0 R (chapter.8) 734 0 R (cite.RFC1033) 2299 0 R (cite.RFC1034) 2184 0 R (cite.RFC1035) 2186 0 R (cite.RFC1101) 2281 0 R (cite.RFC1123) 2283 0 R (cite.RFC1183) 2243 0 R (cite.RFC1464) 2321 0 R (cite.RFC1535) 2229 0 R (cite.RFC1536) 2231 0 R (cite.RFC1537) 2301 0 R (cite.RFC1591) 2285 0 R (cite.RFC1706) 2245 0 R (cite.RFC1712) 2341 0 R (cite.RFC1713) 2323 0 R (cite.RFC1794) 2325 0 R (cite.RFC1876) 2247 0 R (cite.RFC1912) 2303 0 R (cite.RFC1982) 2233 0 R (cite.RFC1995) 2191 0 R (cite.RFC1996) 2193 0 R (cite.RFC2010) 2305 0 R (cite.RFC2052) 2249 0 R (cite.RFC2065) 2353 0 R (cite.RFC2136) 2195 0 R (cite.RFC2137) 2355 0 R (cite.RFC2163) 2251 0 R (cite.RFC2168) 2253 0 R (cite.RFC2181) 2197 0 R (cite.RFC2219) 2307 0 R (cite.RFC2230) 2255 0 R (cite.RFC2240) 2327 0 R (cite.RFC2308) 2199 0 R (cite.RFC2317) 2287 0 R (cite.RFC2345) 2329 0 R (cite.RFC2352) 2331 0 R (cite.RFC2535) 2357 0 R (cite.RFC2536) 2257 0 R (cite.RFC2537) 2259 0 R (cite.RFC2538) 2261 0 R (cite.RFC2539) 2263 0 R (cite.RFC2540) 2265 0 R (cite.RFC2671) 2201 0 R (cite.RFC2672) 2203 0 R (cite.RFC2673) 2343 0 R (cite.RFC2782) 2267 0 R (cite.RFC2825) 2311 0 R (cite.RFC2826) 2289 0 R (cite.RFC2845) 2205 0 R (cite.RFC2874) 2345 0 R (cite.RFC2915) 2269 0 R (cite.RFC2929) 2291 0 R (cite.RFC2930) 2207 0 R (cite.RFC2931) 2209 0 R (cite.RFC3007) 2211 0 R (cite.RFC3008) 2359 0 R (cite.RFC3071) 2333 0 R (cite.RFC3090) 2361 0 R (cite.RFC3110) 2271 0 R (cite.RFC3123) 2273 0 R (cite.RFC3225) 2217 0 R (cite.RFC3258) 2335 0 R (cite.RFC3445) 2363 0 R (cite.RFC3490) 2313 0 R (cite.RFC3491) 2315 0 R (cite.RFC3492) 2317 0 R (cite.RFC3596) 2275 0 R (cite.RFC3597) 2277 0 R (cite.RFC3645) 2213 0 R (cite.RFC3655) 2365 0 R (cite.RFC3658) 2367 0 R (cite.RFC3755) 2369 0 R (cite.RFC3757) 2371 0 R (cite.RFC3833) 2219 0 R (cite.RFC3845) 2373 0 R (cite.RFC3901) 2337 0 R (cite.RFC4033) 2221 0 R (cite.RFC4034) 2223 0 R (cite.RFC4035) 2225 0 R (cite.RFC4074) 2235 0 R (cite.RFC974) 2188 0 R (cite.id2513574) 2378 0 R (clients-per-query) 2103 0 R (configuration_file_elements) 1557 0 R (controls_statement_definition_and_usage) 1342 0 R (diagnostic_tools) 1282 0 R (dnssec.dynamic.zones) 1449 0 R (dynamic_update) 1370 0 R (dynamic_update_policies) 1377 0 R (dynamic_update_security) 1753 0 R (empty) 1825 0 R (historical_dns_information) 2165 0 R (id2466570) 1251 0 R (id2466594) 1252 0 R (id2467484) 1253 0 R (id2467494) 1254 0 R (id2467734) 1264 0 R (id2467755) 1265 0 R (id2467789) 1266 0 R (id2467874) 1269 0 R (id2467966) 1262 0 R (id2470272) 1276 0 R (id2470295) 1279 0 R (id2470393) 1280 0 R (id2470414) 1281 0 R (id2470444) 1287 0 R (id2470480) 1288 0 R (id2470574) 1289 0 R (id2470609) 1295 0 R (id2470635) 1296 0 R (id2470716) 1297 0 R (id2470742) 1300 0 R (id2470753) 1306 0 R (id2470785) 1314 0 R (id2470801) 1315 0 R (id2470823) 1320 0 R (id2470840) 1321 0 R (id2471245) 1329 0 R (id2471251) 1330 0 R (id2472304) 1347 0 R (id2472315) 1348 0 R (id2472878) 1389 0 R (id2472897) 1395 0 R (id2473330) 1410 0 R (id2473347) 1411 0 R (id2473453) 1412 0 R (id2473472) 1413 0 R (id2473482) 1414 0 R (id2473518) 1420 0 R (id2473576) 1421 0 R (id2473625) 1423 0 R (id2473639) 1424 0 R (id2473688) 1429 0 R (id2473893) 1431 0 R (id2473972) 1436 0 R (id2474121) 1437 0 R (id2474548) 1450 0 R (id2474585) 1451 0 R (id2474758) 1456 0 R (id2474861) 1469 0 R (id2474967) 1470 0 R (id2474980) 1471 0 R (id2475081) 1472 0 R (id2475108) 1477 0 R (id2475117) 1478 0 R (id2475127) 1479 0 R (id2475140) 1480 0 R (id2475245) 1481 0 R (id2475255) 1482 0 R (id2475361) 1488 0 R (id2475383) 1490 0 R (id2475485) 1497 0 R (id2475650) 1502 0 R (id2475719) 1503 0 R (id2475836) 1508 0 R (id2475987) 1514 0 R (id2475995) 1515 0 R (id2476027) 1516 0 R (id2476064) 1517 0 R (id2476112) 1518 0 R (id2476142) 1523 0 R (id2476546) 1529 0 R (id2476728) 1530 0 R (id2476782) 1535 0 R (id2476844) 1537 0 R (id2476866) 1538 0 R (id2476899) 1545 0 R (id2477114) 1558 0 R (id2478008) 1570 0 R (id2478036) 1571 0 R (id2478310) 1572 0 R (id2478325) 1577 0 R (id2478423) 1578 0 R (id2478498) 1580 0 R (id2478902) 1586 0 R (id2478945) 1588 0 R (id2479092) 1594 0 R (id2479588) 1603 0 R (id2479605) 1604 0 R (id2479628) 1605 0 R (id2479652) 1606 0 R (id2479742) 1610 0 R (id2479868) 1615 0 R (id2479921) 1616 0 R (id2480617) 1627 0 R (id2481560) 1637 0 R (id2481690) 1643 0 R (id2482148) 1649 0 R (id2482290) 1650 0 R (id2482354) 1653 0 R (id2482397) 1654 0 R (id2482419) 1655 0 R (id2486036) 1704 0 R (id2488549) 1735 0 R (id2488676) 1737 0 R (id2489237) 1752 0 R (id2490386) 1771 0 R (id2490514) 1777 0 R (id2490936) 1786 0 R (id2491438) 1804 0 R (id2493310) 1843 0 R (id2493436) 1849 0 R (id2494139) 1859 0 R (id2495348) 1880 0 R (id2495587) 1892 0 R (id2495702) 1894 0 R (id2496144) 1899 0 R (id2497924) 1921 0 R (id2497931) 1922 0 R (id2497937) 1923 0 R (id2498608) 1934 0 R (id2498709) 1935 0 R (id2500878) 2004 0 R (id2501474) 2014 0 R (id2501492) 2015 0 R (id2501512) 2018 0 R (id2501749) 2024 0 R (id2502987) 2030 0 R (id2503115) 2037 0 R (id2503273) 2038 0 R (id2503568) 2040 0 R (id2503704) 2042 0 R (id2503722) 2047 0 R (id2504195) 2050 0 R (id2504320) 2052 0 R (id2504334) 2053 0 R (id2504446) 2059 0 R (id2504469) 2060 0 R (id2504485) 2061 0 R (id2504546) 2062 0 R (id2504615) 2067 0 R (id2504720) 2068 0 R (id2504864) 2069 0 R (id2505306) 2080 0 R (id2505673) 2089 0 R (id2505678) 2090 0 R (id2507379) 2097 0 R (id2507385) 2098 0 R (id2507762) 2100 0 R (id2507767) 2101 0 R (id2508852) 2108 0 R (id2508952) 2109 0 R (id2509293) 2118 0 R (id2509521) 2132 0 R (id2509670) 2133 0 R (id2509730) 2134 0 R (id2509810) 2149 0 R (id2509815) 2150 0 R (id2509963) 2151 0 R (id2509980) 2152 0 R (id2510042) 2164 0 R (id2510146) 2170 0 R (id2510470) 2175 0 R (id2510472) 2182 0 R (id2510481) 2187 0 R (id2510504) 2183 0 R (id2510528) 2185 0 R (id2510564) 2196 0 R (id2510590) 2198 0 R (id2510616) 2190 0 R (id2510641) 2192 0 R (id2510664) 2194 0 R (id2510720) 2200 0 R (id2510746) 2202 0 R (id2510773) 2204 0 R (id2510835) 2206 0 R (id2510865) 2208 0 R (id2510894) 2210 0 R (id2510921) 2212 0 R (id2510996) 2215 0 R (id2511003) 2216 0 R (id2511030) 2218 0 R (id2511066) 2220 0 R (id2511131) 2222 0 R (id2511196) 2224 0 R (id2511261) 2227 0 R (id2511270) 2228 0 R (id2511296) 2230 0 R (id2511364) 2232 0 R (id2511399) 2234 0 R (id2511440) 2241 0 R (id2511445) 2242 0 R (id2511502) 2244 0 R (id2511540) 2252 0 R (id2511575) 2246 0 R (id2511629) 2248 0 R (id2511736) 2250 0 R (id2511762) 2254 0 R (id2511787) 2256 0 R (id2511814) 2258 0 R (id2511841) 2260 0 R (id2511880) 2262 0 R (id2511910) 2264 0 R (id2511940) 2266 0 R (id2511982) 2268 0 R (id2512016) 2270 0 R (id2512042) 2272 0 R (id2512066) 2274 0 R (id2512123) 2276 0 R (id2512148) 2279 0 R (id2512155) 2280 0 R (id2512181) 2282 0 R (id2512203) 2284 0 R (id2512227) 2286 0 R (id2512273) 2288 0 R (id2512296) 2290 0 R (id2512346) 2297 0 R (id2512354) 2298 0 R (id2512377) 2300 0 R (id2512404) 2302 0 R (id2512430) 2304 0 R (id2512467) 2306 0 R (id2512507) 2309 0 R (id2512513) 2310 0 R (id2512545) 2312 0 R (id2512659) 2314 0 R (id2512694) 2316 0 R (id2512721) 2319 0 R (id2512739) 2320 0 R (id2512829) 2322 0 R (id2512855) 2324 0 R (id2512881) 2326 0 R (id2512904) 2328 0 R (id2512950) 2330 0 R (id2512973) 2332 0 R (id2513000) 2334 0 R (id2513026) 2336 0 R (id2513063) 2339 0 R (id2513069) 2340 0 R (id2513127) 2342 0 R (id2513154) 2344 0 R (id2513190) 2351 0 R (id2513202) 2352 0 R (id2513241) 2354 0 R (id2513268) 2356 0 R (id2513298) 2358 0 R (id2513323) 2360 0 R (id2513350) 2362 0 R (id2513386) 2364 0 R (id2513422) 2366 0 R (id2513449) 2368 0 R (id2513476) 2370 0 R (id2513521) 2372 0 R (id2513562) 2375 0 R (id2513572) 2377 0 R (id2513574) 2379 0 R (id2513730) 2385 0 R (id2513739) 2386 0 R (id2513764) 2387 0 R (id2513863) 2388 0 R (id2513940) 2393 0 R (id2513966) 2395 0 R (id2513975) 2396 0 R (id2514134) 2402 0 R (id2514187) 2403 0 R (id2514251) 2404 0 R (id2514266) 2409 0 R (id2514466) 2414 0 R (id2514530) 2415 0 R (incremental_zone_transfers) 1386 0 R (internet_drafts) 2374 0 R (ipv6addresses) 1539 0 R (journal) 1382 0 R (lwresd) 1546 0 R (man.arpaname) 2788 0 R (man.ddns-confgen) 2773 0 R (man.dig) 2425 0 R (man.dnssec-checkds) 2473 0 R (man.dnssec-coverage) 2485 0 R (man.dnssec-dsfromkey) 2500 0 R (man.dnssec-keyfromlabel) 2514 0 R (man.dnssec-keygen) 1463 0 R (man.dnssec-revoke) 2561 0 R (man.dnssec-settime) 1464 0 R (man.dnssec-signzone) 2589 0 R (man.dnssec-verify) 2618 0 R (man.genrandom) 2794 0 R (man.host) 2462 0 R (man.isc-hmac-fixup) 2805 0 R (man.named) 2661 0 R (man.named-checkconf) 2629 0 R (man.named-checkzone) 2641 0 R (man.named-journalprint) 2684 0 R (man.nsec3hash) 2817 0 R (man.nsupdate) 2690 0 R (man.rndc) 1341 0 R (man.rndc-confgen) 2761 0 R (man.rndc.conf) 2744 0 R (managed-keys) 1491 0 R (notify) 1361 0 R (options) 1672 0 R (page.1) 950 0 R (page.10) 1338 0 R (page.100) 1943 0 R (page.101) 1961 0 R (page.102) 1975 0 R (page.103) 1992 0 R (page.104) 2003 0 R (page.105) 2009 0 R (page.106) 2013 0 R (page.107) 2023 0 R (page.108) 2029 0 R (page.109) 2036 0 R (page.11) 1346 0 R (page.110) 2046 0 R (page.111) 2058 0 R (page.112) 2066 0 R (page.113) 2074 0 R (page.114) 2078 0 R (page.115) 2087 0 R (page.116) 2095 0 R (page.117) 2107 0 R (page.118) 2114 0 R (page.119) 2122 0 R (page.12) 1353 0 R (page.120) 2128 0 R (page.121) 2139 0 R (page.122) 2143 0 R (page.123) 2147 0 R (page.124) 2158 0 R (page.125) 2162 0 R (page.126) 2169 0 R (page.127) 2180 0 R (page.128) 2239 0 R (page.129) 2295 0 R (page.13) 1359 0 R (page.130) 2349 0 R (page.131) 2384 0 R (page.132) 2392 0 R (page.133) 2401 0 R (page.134) 2408 0 R (page.135) 2413 0 R (page.136) 2419 0 R (page.137) 2423 0 R (page.138) 2432 0 R (page.139) 2439 0 R (page.14) 1381 0 R (page.140) 2444 0 R (page.141) 2448 0 R (page.142) 2452 0 R (page.143) 2461 0 R (page.144) 2469 0 R (page.145) 2481 0 R (page.146) 2492 0 R (page.147) 2499 0 R (page.148) 2508 0 R (page.149) 2520 0 R (page.15) 1394 0 R (page.150) 2526 0 R (page.151) 2533 0 R (page.152) 2543 0 R (page.153) 2547 0 R (page.154) 2552 0 R (page.155) 2558 0 R (page.156) 2569 0 R (page.157) 2580 0 R (page.158) 2586 0 R (page.159) 2597 0 R (page.16) 1400 0 R (page.160) 2601 0 R (page.161) 2605 0 R (page.162) 2609 0 R (page.163) 2616 0 R (page.164) 2626 0 R (page.165) 2637 0 R (page.166) 2649 0 R (page.167) 2653 0 R (page.168) 2660 0 R (page.169) 2670 0 R (page.17) 1404 0 R (page.170) 2674 0 R (page.171) 2681 0 R (page.172) 2695 0 R (page.173) 2701 0 R (page.174) 2706 0 R (page.175) 2712 0 R (page.176) 2720 0 R (page.177) 2728 0 R (page.178) 2732 0 R (page.179) 2736 0 R (page.18) 1409 0 R (page.180) 2742 0 R (page.181) 2752 0 R (page.182) 2758 0 R (page.183) 2769 0 R (page.184) 2779 0 R (page.185) 2787 0 R (page.186) 2802 0 R (page.187) 2816 0 R (page.19) 1419 0 R (page.2) 974 0 R (page.20) 1428 0 R (page.21) 1435 0 R (page.22) 1441 0 R (page.23) 1445 0 R (page.24) 1455 0 R (page.25) 1468 0 R (page.26) 1476 0 R (page.27) 1486 0 R (page.28) 1495 0 R (page.29) 1501 0 R (page.3) 1275 0 R (page.30) 1507 0 R (page.31) 1513 0 R (page.32) 1522 0 R (page.33) 1528 0 R (page.34) 1534 0 R (page.35) 1543 0 R (page.36) 1550 0 R (page.37) 1555 0 R (page.38) 1565 0 R (page.39) 1569 0 R (page.4) 1286 0 R (page.40) 1576 0 R (page.41) 1585 0 R (page.42) 1593 0 R (page.43) 1602 0 R (page.44) 1614 0 R (page.45) 1620 0 R (page.46) 1626 0 R (page.47) 1632 0 R (page.48) 1636 0 R (page.49) 1642 0 R (page.5) 1293 0 R (page.50) 1648 0 R (page.51) 1659 0 R (page.52) 1663 0 R (page.53) 1667 0 R (page.54) 1671 0 R (page.55) 1677 0 R (page.56) 1681 0 R (page.57) 1687 0 R (page.58) 1692 0 R (page.59) 1697 0 R (page.6) 1305 0 R (page.60) 1703 0 R (page.61) 1710 0 R (page.62) 1720 0 R (page.63) 1724 0 R (page.64) 1728 0 R (page.65) 1732 0 R (page.66) 1742 0 R (page.67) 1749 0 R (page.68) 1757 0 R (page.69) 1762 0 R (page.7) 1311 0 R (page.70) 1766 0 R (page.71) 1770 0 R (page.72) 1776 0 R (page.73) 1785 0 R (page.74) 1790 0 R (page.75) 1798 0 R (page.76) 1803 0 R (page.77) 1810 0 R (page.78) 1815 0 R (page.79) 1823 0 R (page.8) 1319 0 R (page.80) 1830 0 R (page.81) 1834 0 R (page.82) 1838 0 R (page.83) 1842 0 R (page.84) 1848 0 R (page.85) 1854 0 R (page.86) 1858 0 R (page.87) 1863 0 R (page.88) 1867 0 R (page.89) 1872 0 R (page.9) 1328 0 R (page.90) 1877 0 R (page.91) 1890 0 R (page.92) 1898 0 R (page.93) 1903 0 R (page.94) 1907 0 R (page.95) 1911 0 R (page.96) 1915 0 R (page.97) 1920 0 R (page.98) 1928 0 R (page.99) 1932 0 R (page.i) 984 0 R (page.ii) 1039 0 R (page.iii) 1103 0 R (page.iv) 1166 0 R (page.v) 1228 0 R (pkcs11) 1496 0 R (proposed_standards) 1390 0 R (query_address) 1758 0 R (rfc5011.support) 1487 0 R (rfcs) 1271 0 R (rndc) 1598 0 R (root_delegation_only) 1939 0 R (rrset_ordering) 1324 0 R (sample_configuration) 1313 0 R (section*.10) 2308 0 R (section*.100) 2633 0 R (section*.101) 2638 0 R (section*.102) 2639 0 R (section*.103) 2640 0 R (section*.104) 2642 0 R (section*.105) 2643 0 R (section*.106) 2644 0 R (section*.107) 2645 0 R (section*.108) 2654 0 R (section*.109) 2655 0 R (section*.11) 2318 0 R (section*.110) 2656 0 R (section*.111) 2662 0 R (section*.112) 2663 0 R (section*.113) 2664 0 R (section*.114) 2665 0 R (section*.115) 2675 0 R (section*.116) 2676 0 R (section*.117) 2677 0 R (section*.118) 2682 0 R (section*.119) 2683 0 R (section*.12) 2338 0 R (section*.120) 2685 0 R (section*.121) 2686 0 R (section*.122) 2687 0 R (section*.123) 2688 0 R (section*.124) 2689 0 R (section*.125) 2691 0 R (section*.126) 2696 0 R (section*.127) 2697 0 R (section*.128) 2702 0 R (section*.129) 2707 0 R (section*.13) 2350 0 R (section*.130) 2713 0 R (section*.131) 2714 0 R (section*.132) 2715 0 R (section*.133) 2716 0 R (section*.134) 2721 0 R (section*.135) 2722 0 R (section*.136) 2723 0 R (section*.137) 2724 0 R (section*.138) 2737 0 R (section*.139) 2738 0 R (section*.14) 2376 0 R (section*.140) 2743 0 R (section*.141) 2745 0 R (section*.142) 2746 0 R (section*.143) 2747 0 R (section*.144) 2753 0 R (section*.145) 2754 0 R (section*.146) 2759 0 R (section*.147) 2760 0 R (section*.148) 2762 0 R (section*.149) 2763 0 R (section*.15) 2426 0 R (section*.150) 2764 0 R (section*.151) 2765 0 R (section*.152) 2770 0 R (section*.153) 2771 0 R (section*.154) 2772 0 R (section*.155) 2774 0 R (section*.156) 2775 0 R (section*.157) 2780 0 R (section*.158) 2781 0 R (section*.159) 2782 0 R (section*.16) 2427 0 R (section*.160) 2783 0 R (section*.161) 2789 0 R (section*.162) 2790 0 R (section*.163) 2791 0 R (section*.164) 2792 0 R (section*.165) 2793 0 R (section*.166) 2795 0 R (section*.167) 2796 0 R (section*.168) 2797 0 R (section*.169) 2798 0 R (section*.17) 2428 0 R (section*.170) 2803 0 R (section*.171) 2804 0 R (section*.172) 2806 0 R (section*.173) 2807 0 R (section*.174) 2808 0 R (section*.175) 2809 0 R (section*.176) 2810 0 R (section*.177) 2811 0 R (section*.178) 2818 0 R (section*.179) 2819 0 R (section*.18) 2433 0 R (section*.180) 2820 0 R (section*.181) 2821 0 R (section*.182) 2822 0 R (section*.183) 2823 0 R (section*.19) 2434 0 R (section*.2) 2174 0 R (section*.20) 2440 0 R (section*.21) 2453 0 R (section*.22) 2454 0 R (section*.23) 2455 0 R (section*.24) 2456 0 R (section*.25) 2457 0 R (section*.26) 2463 0 R (section*.27) 2464 0 R (section*.28) 2465 0 R (section*.29) 2470 0 R (section*.3) 2181 0 R (section*.30) 2471 0 R (section*.31) 2472 0 R (section*.32) 2474 0 R (section*.33) 2475 0 R (section*.34) 2476 0 R (section*.35) 2482 0 R (section*.36) 2483 0 R (section*.37) 2484 0 R (section*.38) 2486 0 R (section*.39) 2487 0 R (section*.4) 2189 0 R (section*.40) 2488 0 R (section*.41) 2493 0 R (section*.42) 2494 0 R (section*.43) 2495 0 R (section*.44) 2501 0 R (section*.45) 2502 0 R (section*.46) 2503 0 R (section*.47) 2504 0 R (section*.48) 2509 0 R (section*.49) 2510 0 R (section*.5) 2214 0 R (section*.50) 2511 0 R (section*.51) 2512 0 R (section*.52) 2513 0 R (section*.53) 2515 0 R (section*.54) 2516 0 R (section*.55) 2521 0 R (section*.56) 2522 0 R (section*.57) 2527 0 R (section*.58) 2528 0 R (section*.59) 2534 0 R (section*.6) 2226 0 R (section*.60) 2535 0 R (section*.61) 2536 0 R (section*.62) 2537 0 R (section*.63) 2538 0 R (section*.64) 2539 0 R (section*.65) 2548 0 R (section*.66) 2553 0 R (section*.67) 2554 0 R (section*.68) 2559 0 R (section*.69) 2560 0 R (section*.7) 2240 0 R (section*.70) 2562 0 R (section*.71) 2563 0 R (section*.72) 2564 0 R (section*.73) 2565 0 R (section*.74) 2570 0 R (section*.75) 2571 0 R (section*.76) 2572 0 R (section*.77) 2573 0 R (section*.78) 2574 0 R (section*.79) 2575 0 R (section*.8) 2278 0 R (section*.80) 2581 0 R (section*.81) 2582 0 R (section*.82) 2587 0 R (section*.83) 2588 0 R (section*.84) 2590 0 R (section*.85) 2591 0 R (section*.86) 2592 0 R (section*.87) 2593 0 R (section*.88) 2610 0 R (section*.89) 2611 0 R (section*.9) 2296 0 R (section*.90) 2617 0 R (section*.91) 2619 0 R (section*.92) 2620 0 R (section*.93) 2621 0 R (section*.94) 2622 0 R (section*.95) 2627 0 R (section*.96) 2628 0 R (section*.97) 2630 0 R (section*.98) 2631 0 R (section*.99) 2632 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.10) 274 0 R (section.4.11) 286 0 R (section.4.12) 338 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 354 0 R (section.5.2) 358 0 R (section.6.1) 366 0 R (section.6.2) 394 0 R (section.6.3) 622 0 R (section.6.4) 678 0 R (section.7.1) 714 0 R (section.7.2) 718 0 R (section.7.3) 730 0 R (section.8.1) 738 0 R (section.8.2) 746 0 R (section.8.3) 750 0 R (section.A.1) 758 0 R (section.A.2) 766 0 R (section.A.3) 774 0 R (section.A.4) 790 0 R (section.B.1) 850 0 R (section.B.10) 886 0 R (section.B.11) 890 0 R (section.B.12) 894 0 R (section.B.13) 898 0 R (section.B.14) 902 0 R (section.B.15) 906 0 R (section.B.16) 910 0 R (section.B.17) 914 0 R (section.B.18) 918 0 R (section.B.19) 922 0 R (section.B.2) 854 0 R (section.B.20) 926 0 R (section.B.21) 930 0 R (section.B.22) 934 0 R (section.B.23) 938 0 R (section.B.24) 942 0 R (section.B.3) 858 0 R (section.B.4) 862 0 R (section.B.5) 866 0 R (section.B.6) 870 0 R (section.B.7) 874 0 R (section.B.8) 878 0 R (section.B.9) 882 0 R (server_resource_limits) 1779 0 R (server_statement_definition_and_usage) 1716 0 R (server_statement_grammar) 1868 0 R (statistics) 2079 0 R (statistics_counters) 2088 0 R (statschannels) 1879 0 R (statsfile) 1683 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.10.1) 278 0 R (subsection.4.10.2) 282 0 R (subsection.4.11.1) 290 0 R (subsection.4.11.2) 306 0 R (subsection.4.11.3) 322 0 R (subsection.4.11.4) 326 0 R (subsection.4.11.5) 330 0 R (subsection.4.11.6) 334 0 R (subsection.4.12.1) 342 0 R (subsection.4.12.2) 346 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.10) 258 0 R (subsection.4.9.11) 262 0 R (subsection.4.9.12) 266 0 R (subsection.4.9.13) 270 0 R (subsection.4.9.2) 226 0 R (subsection.4.9.3) 230 0 R (subsection.4.9.4) 234 0 R (subsection.4.9.5) 238 0 R (subsection.4.9.6) 242 0 R (subsection.4.9.7) 246 0 R (subsection.4.9.8) 250 0 R (subsection.4.9.9) 254 0 R (subsection.6.1.1) 370 0 R (subsection.6.1.2) 382 0 R (subsection.6.2.1) 398 0 R (subsection.6.2.10) 434 0 R (subsection.6.2.11) 450 0 R (subsection.6.2.12) 454 0 R (subsection.6.2.13) 458 0 R (subsection.6.2.14) 462 0 R (subsection.6.2.15) 466 0 R (subsection.6.2.16) 470 0 R (subsection.6.2.17) 558 0 R (subsection.6.2.18) 562 0 R (subsection.6.2.19) 566 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 570 0 R (subsection.6.2.21) 574 0 R (subsection.6.2.22) 578 0 R (subsection.6.2.23) 582 0 R (subsection.6.2.24) 586 0 R (subsection.6.2.25) 590 0 R (subsection.6.2.26) 594 0 R (subsection.6.2.27) 598 0 R (subsection.6.2.28) 602 0 R (subsection.6.2.3) 406 0 R (subsection.6.2.4) 410 0 R (subsection.6.2.5) 414 0 R (subsection.6.2.6) 418 0 R (subsection.6.2.7) 422 0 R (subsection.6.2.8) 426 0 R (subsection.6.2.9) 430 0 R (subsection.6.3.1) 626 0 R (subsection.6.3.2) 638 0 R (subsection.6.3.3) 642 0 R (subsection.6.3.4) 646 0 R (subsection.6.3.5) 650 0 R (subsection.6.3.6) 670 0 R (subsection.6.3.7) 674 0 R (subsection.6.4.1) 686 0 R (subsection.7.2.1) 722 0 R (subsection.7.2.2) 726 0 R (subsection.8.1.1) 742 0 R (subsection.A.1.1) 762 0 R (subsection.A.2.1) 770 0 R (subsection.A.3.1) 778 0 R (subsection.A.3.2) 782 0 R (subsection.A.3.3) 786 0 R (subsection.A.4.1) 794 0 R (subsection.A.4.2) 798 0 R (subsection.A.4.3) 802 0 R (subsection.A.4.4) 806 0 R (subsection.A.4.5) 810 0 R (subsection.A.4.6) 814 0 R (subsection.A.4.7) 842 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.11.1.1) 294 0 R (subsubsection.4.11.1.2) 298 0 R (subsubsection.4.11.1.3) 302 0 R (subsubsection.4.11.2.1) 310 0 R (subsubsection.4.11.2.2) 314 0 R (subsubsection.4.11.2.3) 318 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 374 0 R (subsubsection.6.1.1.2) 378 0 R (subsubsection.6.1.2.1) 386 0 R (subsubsection.6.1.2.2) 390 0 R (subsubsection.6.2.10.1) 438 0 R (subsubsection.6.2.10.2) 442 0 R (subsubsection.6.2.10.3) 446 0 R (subsubsection.6.2.16.1) 474 0 R (subsubsection.6.2.16.10) 510 0 R (subsubsection.6.2.16.11) 514 0 R (subsubsection.6.2.16.12) 518 0 R (subsubsection.6.2.16.13) 522 0 R (subsubsection.6.2.16.14) 526 0 R (subsubsection.6.2.16.15) 530 0 R (subsubsection.6.2.16.16) 534 0 R (subsubsection.6.2.16.17) 538 0 R (subsubsection.6.2.16.18) 542 0 R (subsubsection.6.2.16.19) 546 0 R (subsubsection.6.2.16.2) 478 0 R (subsubsection.6.2.16.20) 550 0 R (subsubsection.6.2.16.21) 554 0 R (subsubsection.6.2.16.3) 482 0 R (subsubsection.6.2.16.4) 486 0 R (subsubsection.6.2.16.5) 490 0 R (subsubsection.6.2.16.6) 494 0 R (subsubsection.6.2.16.7) 498 0 R (subsubsection.6.2.16.8) 502 0 R (subsubsection.6.2.16.9) 506 0 R (subsubsection.6.2.28.1) 606 0 R (subsubsection.6.2.28.2) 610 0 R (subsubsection.6.2.28.3) 614 0 R (subsubsection.6.2.28.4) 618 0 R (subsubsection.6.3.1.1) 630 0 R (subsubsection.6.3.1.2) 634 0 R (subsubsection.6.3.5.1) 654 0 R (subsubsection.6.3.5.2) 658 0 R (subsubsection.6.3.5.3) 662 0 R (subsubsection.6.3.5.4) 666 0 R (subsubsection.6.4.0.1) 682 0 R (subsubsection.6.4.1.1) 690 0 R (subsubsection.6.4.1.2) 694 0 R (subsubsection.6.4.1.3) 698 0 R (subsubsection.6.4.1.4) 702 0 R (subsubsection.6.4.1.5) 706 0 R (subsubsection.A.4.6.1) 818 0 R (subsubsection.A.4.6.2) 822 0 R (subsubsection.A.4.6.3) 826 0 R (subsubsection.A.4.6.4) 830 0 R (subsubsection.A.4.6.5) 834 0 R (subsubsection.A.4.6.6) 838 0 R (table.1.1) 1255 0 R (table.1.2) 1263 0 R (table.3.1) 1322 0 R (table.3.2) 1349 0 R (table.6.1) 1559 0 R (table.6.10) 2019 0 R (table.6.11) 2025 0 R (table.6.12) 2031 0 R (table.6.13) 2039 0 R (table.6.14) 2041 0 R (table.6.15) 2048 0 R (table.6.16) 2051 0 R (table.6.17) 2054 0 R (table.6.18) 2070 0 R (table.6.19) 2081 0 R (table.6.2) 1581 0 R (table.6.20) 2091 0 R (table.6.21) 2099 0 R (table.6.22) 2102 0 R (table.6.23) 2110 0 R (table.6.3) 1589 0 R (table.6.4) 1628 0 R (table.6.5) 1644 0 R (table.6.6) 1705 0 R (table.6.7) 1805 0 R (table.6.8) 1924 0 R (table.6.9) 2005 0 R (the_category_phrase) 1622 0 R (the_sortlist_statement) 1792 0 R (topology) 1791 0 R (trusted-keys) 1891 0 R (tsig) 1405 0 R (tuning) 1806 0 R (types_of_resource_records_and_when_to_use_them) 1270 0 R (view_statement_grammar) 1826 0 R (zone_statement_grammar) 1738 0 R (zone_transfers) 1376 0 R (zonefile_format) 1819 0 R]
/Limits [(Access_Control_Lists) (zonefile_format)]
>> endobj
2851 0 obj <<
@@ -16862,7 +16860,7 @@ endobj
>> endobj
2854 0 obj <<
/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
-/CreationDate (D:20131212011436Z)
+/CreationDate (D:20140110170939Z)
/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
>> endobj
xref
@@ -16874,943 +16872,943 @@ xref
0000000000 00000 f
0000000009 00000 n
0000349948 00000 n
-0001232895 00000 n
+0001233137 00000 n
0000000054 00000 n
0000000086 00000 n
0000350075 00000 n
-0001232823 00000 n
+0001233065 00000 n
0000000133 00000 n
0000000173 00000 n
0000350203 00000 n
-0001232737 00000 n
+0001232979 00000 n
0000000221 00000 n
0000000273 00000 n
0000350331 00000 n
-0001232651 00000 n
+0001232893 00000 n
0000000321 00000 n
0000000377 00000 n
0000354617 00000 n
-0001232541 00000 n
+0001232783 00000 n
0000000425 00000 n
0000000478 00000 n
0000354744 00000 n
-0001232467 00000 n
+0001232709 00000 n
0000000531 00000 n
0000000572 00000 n
0000354872 00000 n
-0001232380 00000 n
+0001232622 00000 n
0000000625 00000 n
0000000674 00000 n
0000354999 00000 n
-0001232293 00000 n
+0001232535 00000 n
0000000727 00000 n
0000000757 00000 n
0000359296 00000 n
-0001232169 00000 n
+0001232411 00000 n
0000000810 00000 n
0000000861 00000 n
0000359424 00000 n
-0001232095 00000 n
+0001232337 00000 n
0000000919 00000 n
0000000964 00000 n
0000359552 00000 n
-0001232008 00000 n
+0001232250 00000 n
0000001022 00000 n
0000001062 00000 n
0000359680 00000 n
-0001231934 00000 n
+0001232176 00000 n
0000001120 00000 n
0000001162 00000 n
0000362665 00000 n
-0001231810 00000 n
+0001232052 00000 n
0000001215 00000 n
0000001260 00000 n
0000362793 00000 n
-0001231749 00000 n
+0001231991 00000 n
0000001318 00000 n
0000001355 00000 n
0000362921 00000 n
-0001231675 00000 n
+0001231917 00000 n
0000001408 00000 n
0000001463 00000 n
0000365868 00000 n
-0001231550 00000 n
+0001231792 00000 n
0000001509 00000 n
0000001556 00000 n
0000365996 00000 n
-0001231476 00000 n
+0001231718 00000 n
0000001604 00000 n
0000001648 00000 n
0000366124 00000 n
-0001231389 00000 n
+0001231631 00000 n
0000001696 00000 n
0000001735 00000 n
0000366252 00000 n
-0001231302 00000 n
+0001231544 00000 n
0000001783 00000 n
0000001825 00000 n
0000366379 00000 n
-0001231215 00000 n
+0001231457 00000 n
0000001873 00000 n
0000001936 00000 n
0000367456 00000 n
-0001231141 00000 n
+0001231383 00000 n
0000001984 00000 n
0000002034 00000 n
0000369115 00000 n
-0001231013 00000 n
+0001231255 00000 n
0000002080 00000 n
0000002126 00000 n
0000369242 00000 n
-0001230900 00000 n
+0001231142 00000 n
0000002174 00000 n
0000002218 00000 n
0000369370 00000 n
-0001230824 00000 n
+0001231066 00000 n
0000002271 00000 n
0000002323 00000 n
0000369498 00000 n
-0001230747 00000 n
+0001230989 00000 n
0000002377 00000 n
0000002436 00000 n
0000371947 00000 n
-0001230656 00000 n
+0001230898 00000 n
0000002485 00000 n
0000002523 00000 n
0000375285 00000 n
-0001230539 00000 n
+0001230781 00000 n
0000002572 00000 n
0000002618 00000 n
0000375413 00000 n
-0001230421 00000 n
+0001230663 00000 n
0000002672 00000 n
0000002739 00000 n
0000375541 00000 n
-0001230342 00000 n
+0001230584 00000 n
0000002798 00000 n
0000002842 00000 n
0000375670 00000 n
-0001230263 00000 n
+0001230505 00000 n
0000002901 00000 n
0000002949 00000 n
0000382656 00000 n
-0001230184 00000 n
+0001230426 00000 n
0000003003 00000 n
0000003036 00000 n
0000388281 00000 n
-0001230051 00000 n
+0001230293 00000 n
0000003083 00000 n
0000003126 00000 n
0000388410 00000 n
-0001229972 00000 n
+0001230214 00000 n
0000003175 00000 n
0000003205 00000 n
0000388539 00000 n
-0001229840 00000 n
+0001230082 00000 n
0000003254 00000 n
0000003292 00000 n
0000393048 00000 n
-0001229775 00000 n
+0001230017 00000 n
0000003346 00000 n
0000003388 00000 n
0000393177 00000 n
-0001229682 00000 n
+0001229924 00000 n
0000003437 00000 n
0000003496 00000 n
0000393306 00000 n
-0001229550 00000 n
+0001229792 00000 n
0000003545 00000 n
0000003578 00000 n
0000397225 00000 n
-0001229485 00000 n
+0001229727 00000 n
0000003632 00000 n
0000003681 00000 n
0000400239 00000 n
-0001229353 00000 n
+0001229595 00000 n
0000003730 00000 n
0000003758 00000 n
0000403019 00000 n
-0001229235 00000 n
+0001229477 00000 n
0000003812 00000 n
0000003881 00000 n
0000403148 00000 n
-0001229156 00000 n
+0001229398 00000 n
0000003940 00000 n
0000003988 00000 n
0000403276 00000 n
-0001229077 00000 n
+0001229319 00000 n
0000004047 00000 n
0000004092 00000 n
0000403405 00000 n
-0001228984 00000 n
+0001229226 00000 n
0000004146 00000 n
0000004214 00000 n
0000403534 00000 n
-0001228891 00000 n
+0001229133 00000 n
0000004268 00000 n
0000004338 00000 n
0000407203 00000 n
-0001228798 00000 n
+0001229040 00000 n
0000004392 00000 n
0000004455 00000 n
0000407332 00000 n
-0001228705 00000 n
+0001228947 00000 n
0000004509 00000 n
0000004564 00000 n
0000407460 00000 n
-0001228626 00000 n
+0001228868 00000 n
0000004618 00000 n
0000004650 00000 n
0000407588 00000 n
-0001228533 00000 n
+0001228775 00000 n
0000004699 00000 n
0000004727 00000 n
0000411357 00000 n
-0001228440 00000 n
+0001228682 00000 n
0000004776 00000 n
0000004808 00000 n
0000411486 00000 n
-0001228308 00000 n
+0001228550 00000 n
0000004857 00000 n
0000004887 00000 n
0000411615 00000 n
-0001228229 00000 n
+0001228471 00000 n
0000004941 00000 n
0000004982 00000 n
0000415413 00000 n
-0001228136 00000 n
+0001228378 00000 n
0000005036 00000 n
0000005078 00000 n
0000415542 00000 n
-0001228057 00000 n
+0001228299 00000 n
0000005132 00000 n
0000005177 00000 n
0000420866 00000 n
-0001227924 00000 n
+0001228166 00000 n
0000005226 00000 n
0000005294 00000 n
0000420995 00000 n
-0001227845 00000 n
+0001228087 00000 n
0000005348 00000 n
0000005408 00000 n
0000421124 00000 n
-0001227752 00000 n
+0001227994 00000 n
0000005462 00000 n
0000005513 00000 n
0000425392 00000 n
-0001227659 00000 n
+0001227901 00000 n
0000005567 00000 n
0000005621 00000 n
0000428374 00000 n
-0001227566 00000 n
+0001227808 00000 n
0000005675 00000 n
0000005721 00000 n
0000428503 00000 n
-0001227473 00000 n
+0001227715 00000 n
0000005775 00000 n
0000005817 00000 n
0000428632 00000 n
-0001227380 00000 n
+0001227622 00000 n
0000005871 00000 n
0000005922 00000 n
0000428761 00000 n
-0001227287 00000 n
+0001227529 00000 n
0000005976 00000 n
0000006025 00000 n
0000431520 00000 n
-0001227194 00000 n
+0001227436 00000 n
0000006079 00000 n
0000006136 00000 n
0000431649 00000 n
-0001227101 00000 n
+0001227343 00000 n
0000006190 00000 n
0000006245 00000 n
0000431778 00000 n
-0001227008 00000 n
+0001227250 00000 n
0000006300 00000 n
0000006356 00000 n
0000431906 00000 n
-0001226915 00000 n
+0001227157 00000 n
0000006411 00000 n
0000006472 00000 n
0000432034 00000 n
-0001226822 00000 n
+0001227064 00000 n
0000006527 00000 n
0000006573 00000 n
0000432163 00000 n
-0001226743 00000 n
+0001226985 00000 n
0000006628 00000 n
0000006671 00000 n
0000436027 00000 n
-0001226611 00000 n
+0001226853 00000 n
0000006721 00000 n
0000006777 00000 n
0000436156 00000 n
-0001226532 00000 n
+0001226774 00000 n
0000006832 00000 n
0000006878 00000 n
0000436285 00000 n
-0001226453 00000 n
+0001226695 00000 n
0000006933 00000 n
0000006980 00000 n
0000439687 00000 n
-0001226321 00000 n
+0001226563 00000 n
0000007030 00000 n
0000007087 00000 n
0000439816 00000 n
-0001226203 00000 n
+0001226445 00000 n
0000007142 00000 n
0000007182 00000 n
0000442484 00000 n
-0001226124 00000 n
+0001226366 00000 n
0000007242 00000 n
0000007315 00000 n
0000442613 00000 n
-0001226031 00000 n
+0001226273 00000 n
0000007375 00000 n
0000007448 00000 n
0000445330 00000 n
-0001225952 00000 n
+0001226194 00000 n
0000007508 00000 n
0000007565 00000 n
0000447722 00000 n
-0001225820 00000 n
+0001226062 00000 n
0000007620 00000 n
0000007678 00000 n
0000447851 00000 n
-0001225741 00000 n
+0001225983 00000 n
0000007738 00000 n
0000007815 00000 n
0000447980 00000 n
-0001225648 00000 n
+0001225890 00000 n
0000007875 00000 n
0000007952 00000 n
0000448109 00000 n
-0001225569 00000 n
+0001225811 00000 n
0000008012 00000 n
0000008071 00000 n
0000448238 00000 n
-0001225476 00000 n
+0001225718 00000 n
0000008126 00000 n
0000008170 00000 n
0000450869 00000 n
-0001225383 00000 n
+0001225625 00000 n
0000008225 00000 n
0000008265 00000 n
0000453677 00000 n
-0001225290 00000 n
+0001225532 00000 n
0000008320 00000 n
0000008388 00000 n
0000453806 00000 n
-0001225211 00000 n
+0001225453 00000 n
0000008443 00000 n
0000008514 00000 n
0000457867 00000 n
-0001225093 00000 n
+0001225335 00000 n
0000008564 00000 n
0000008611 00000 n
0000457996 00000 n
-0001225014 00000 n
+0001225256 00000 n
0000008666 00000 n
0000008727 00000 n
0000458125 00000 n
-0001224935 00000 n
+0001225177 00000 n
0000008782 00000 n
0000008852 00000 n
0000460610 00000 n
-0001224802 00000 n
+0001225044 00000 n
0000008899 00000 n
0000008952 00000 n
0000460739 00000 n
-0001224723 00000 n
+0001224965 00000 n
0000009001 00000 n
0000009057 00000 n
0000460868 00000 n
-0001224644 00000 n
+0001224886 00000 n
0000009106 00000 n
0000009155 00000 n
0000465138 00000 n
-0001224511 00000 n
+0001224753 00000 n
0000009202 00000 n
0000009254 00000 n
0000465267 00000 n
-0001224393 00000 n
+0001224635 00000 n
0000009303 00000 n
0000009354 00000 n
0000473691 00000 n
-0001224275 00000 n
+0001224517 00000 n
0000009408 00000 n
0000009453 00000 n
0000473820 00000 n
-0001224196 00000 n
+0001224438 00000 n
0000009512 00000 n
0000009546 00000 n
0000473949 00000 n
-0001224117 00000 n
+0001224359 00000 n
0000009605 00000 n
0000009653 00000 n
0000474078 00000 n
-0001223999 00000 n
+0001224241 00000 n
0000009707 00000 n
0000009747 00000 n
0000476611 00000 n
-0001223920 00000 n
+0001224162 00000 n
0000009806 00000 n
0000009840 00000 n
0000476740 00000 n
-0001223841 00000 n
+0001224083 00000 n
0000009899 00000 n
0000009947 00000 n
0000476869 00000 n
-0001223708 00000 n
+0001223950 00000 n
0000009996 00000 n
0000010046 00000 n
0000480110 00000 n
-0001223629 00000 n
+0001223871 00000 n
0000010100 00000 n
0000010147 00000 n
0000480238 00000 n
-0001223536 00000 n
+0001223778 00000 n
0000010201 00000 n
0000010261 00000 n
0000485595 00000 n
-0001223443 00000 n
+0001223685 00000 n
0000010315 00000 n
0000010367 00000 n
0000485724 00000 n
-0001223350 00000 n
+0001223592 00000 n
0000010421 00000 n
0000010486 00000 n
0000489194 00000 n
-0001223257 00000 n
+0001223499 00000 n
0000010540 00000 n
0000010591 00000 n
0000489323 00000 n
-0001223164 00000 n
+0001223406 00000 n
0000010645 00000 n
0000010709 00000 n
0000489452 00000 n
-0001223071 00000 n
+0001223313 00000 n
0000010763 00000 n
0000010810 00000 n
0000489581 00000 n
-0001222978 00000 n
+0001223220 00000 n
0000010864 00000 n
0000010924 00000 n
0000489709 00000 n
-0001222885 00000 n
+0001223127 00000 n
0000010978 00000 n
0000011029 00000 n
0000493408 00000 n
-0001222753 00000 n
+0001222995 00000 n
0000011084 00000 n
0000011149 00000 n
0000493537 00000 n
-0001222674 00000 n
+0001222916 00000 n
0000011209 00000 n
0000011256 00000 n
0000500377 00000 n
-0001222581 00000 n
+0001222823 00000 n
0000011316 00000 n
0000011364 00000 n
0000507238 00000 n
-0001222502 00000 n
+0001222744 00000 n
0000011424 00000 n
0000011478 00000 n
0000513667 00000 n
-0001222409 00000 n
+0001222651 00000 n
0000011533 00000 n
0000011583 00000 n
0000513796 00000 n
-0001222316 00000 n
+0001222558 00000 n
0000011638 00000 n
0000011701 00000 n
0000513925 00000 n
-0001222223 00000 n
+0001222465 00000 n
0000011756 00000 n
0000011808 00000 n
0000514054 00000 n
-0001222130 00000 n
+0001222372 00000 n
0000011863 00000 n
0000011928 00000 n
0000514183 00000 n
-0001222037 00000 n
+0001222279 00000 n
0000011983 00000 n
0000012035 00000 n
0000520931 00000 n
-0001221904 00000 n
+0001222146 00000 n
0000012090 00000 n
0000012155 00000 n
0000541866 00000 n
-0001221825 00000 n
+0001222067 00000 n
0000012215 00000 n
0000012259 00000 n
0000567381 00000 n
-0001221732 00000 n
+0001221974 00000 n
0000012319 00000 n
0000012358 00000 n
0000567509 00000 n
-0001221639 00000 n
+0001221881 00000 n
0000012418 00000 n
0000012465 00000 n
0000570958 00000 n
-0001221546 00000 n
+0001221788 00000 n
0000012525 00000 n
0000012568 00000 n
0000575288 00000 n
-0001221453 00000 n
+0001221695 00000 n
0000012628 00000 n
0000012667 00000 n
0000579035 00000 n
-0001221360 00000 n
+0001221602 00000 n
0000012727 00000 n
0000012769 00000 n
0000581953 00000 n
-0001221267 00000 n
+0001221509 00000 n
0000012829 00000 n
0000012872 00000 n
0000589425 00000 n
-0001221174 00000 n
+0001221416 00000 n
0000012932 00000 n
0000012975 00000 n
0000593613 00000 n
-0001221081 00000 n
+0001221323 00000 n
0000013035 00000 n
0000013096 00000 n
0000593741 00000 n
-0001220988 00000 n
+0001221230 00000 n
0000013157 00000 n
0000013209 00000 n
0000597768 00000 n
-0001220895 00000 n
+0001221137 00000 n
0000013270 00000 n
0000013323 00000 n
0000601352 00000 n
-0001220802 00000 n
+0001221044 00000 n
0000013384 00000 n
0000013422 00000 n
0000601480 00000 n
-0001220709 00000 n
+0001220951 00000 n
0000013483 00000 n
0000013535 00000 n
0000604708 00000 n
-0001220616 00000 n
+0001220858 00000 n
0000013596 00000 n
0000013640 00000 n
0000608315 00000 n
-0001220523 00000 n
+0001220765 00000 n
0000013701 00000 n
0000013737 00000 n
0000616760 00000 n
-0001220430 00000 n
+0001220672 00000 n
0000013798 00000 n
0000013861 00000 n
0000620505 00000 n
-0001220337 00000 n
+0001220579 00000 n
0000013922 00000 n
0000013972 00000 n
0000627454 00000 n
-0001220244 00000 n
+0001220486 00000 n
0000014033 00000 n
0000014089 00000 n
0000632152 00000 n
-0001220151 00000 n
+0001220393 00000 n
0000014150 00000 n
0000014197 00000 n
0000636382 00000 n
-0001220058 00000 n
+0001220300 00000 n
0000014258 00000 n
0000014326 00000 n
0000643421 00000 n
-0001219979 00000 n
+0001220221 00000 n
0000014387 00000 n
0000014439 00000 n
0000652184 00000 n
-0001219886 00000 n
+0001220128 00000 n
0000014494 00000 n
0000014545 00000 n
0000656910 00000 n
-0001219793 00000 n
+0001220035 00000 n
0000014600 00000 n
0000014664 00000 n
0000662275 00000 n
-0001219700 00000 n
+0001219942 00000 n
0000014719 00000 n
0000014783 00000 n
0000662404 00000 n
-0001219607 00000 n
+0001219849 00000 n
0000014838 00000 n
0000014915 00000 n
0000666004 00000 n
-0001219514 00000 n
+0001219756 00000 n
0000014970 00000 n
0000015027 00000 n
0000666133 00000 n
-0001219421 00000 n
+0001219663 00000 n
0000015082 00000 n
0000015152 00000 n
0000666262 00000 n
-0001219328 00000 n
+0001219570 00000 n
0000015207 00000 n
0000015264 00000 n
0000666391 00000 n
-0001219235 00000 n
+0001219477 00000 n
0000015319 00000 n
0000015389 00000 n
0000670697 00000 n
-0001219142 00000 n
+0001219384 00000 n
0000015444 00000 n
0000015493 00000 n
0000670826 00000 n
-0001219049 00000 n
+0001219291 00000 n
0000015548 00000 n
0000015610 00000 n
0000673452 00000 n
-0001218956 00000 n
+0001219198 00000 n
0000015665 00000 n
0000015714 00000 n
0000681437 00000 n
-0001218838 00000 n
+0001219080 00000 n
0000015769 00000 n
0000015831 00000 n
0000681566 00000 n
-0001218759 00000 n
+0001219001 00000 n
0000015891 00000 n
0000015930 00000 n
0000688820 00000 n
-0001218666 00000 n
+0001218908 00000 n
0000015990 00000 n
0000016024 00000 n
0000688948 00000 n
-0001218573 00000 n
+0001218815 00000 n
0000016084 00000 n
0000016125 00000 n
0000710733 00000 n
-0001218494 00000 n
+0001218736 00000 n
0000016185 00000 n
0000016237 00000 n
0000721255 00000 n
-0001218362 00000 n
+0001218604 00000 n
0000016286 00000 n
0000016319 00000 n
0000721384 00000 n
-0001218244 00000 n
+0001218486 00000 n
0000016373 00000 n
0000016445 00000 n
0000721513 00000 n
-0001218165 00000 n
+0001218407 00000 n
0000016504 00000 n
0000016548 00000 n
0000732115 00000 n
-0001218086 00000 n
+0001218328 00000 n
0000016607 00000 n
0000016660 00000 n
0000732504 00000 n
-0001217993 00000 n
+0001218235 00000 n
0000016714 00000 n
0000016764 00000 n
0000736346 00000 n
-0001217900 00000 n
+0001218142 00000 n
0000016818 00000 n
0000016856 00000 n
0000736605 00000 n
-0001217807 00000 n
+0001218049 00000 n
0000016910 00000 n
0000016959 00000 n
0000739380 00000 n
-0001217675 00000 n
+0001217917 00000 n
0000017013 00000 n
0000017065 00000 n
0000739505 00000 n
-0001217596 00000 n
+0001217838 00000 n
0000017124 00000 n
0000017169 00000 n
0000739634 00000 n
-0001217503 00000 n
+0001217745 00000 n
0000017228 00000 n
0000017280 00000 n
0000739763 00000 n
-0001217410 00000 n
+0001217652 00000 n
0000017339 00000 n
0000017392 00000 n
0000742206 00000 n
-0001217331 00000 n
+0001217573 00000 n
0000017451 00000 n
0000017500 00000 n
0000742335 00000 n
-0001217238 00000 n
+0001217480 00000 n
0000017554 00000 n
0000017634 00000 n
0000746657 00000 n
-0001217159 00000 n
+0001217401 00000 n
0000017688 00000 n
0000017737 00000 n
0000750163 00000 n
-0001217041 00000 n
+0001217283 00000 n
0000017786 00000 n
0000017826 00000 n
0000750422 00000 n
-0001216962 00000 n
+0001217204 00000 n
0000017885 00000 n
0000017932 00000 n
0000753851 00000 n
-0001216844 00000 n
+0001217086 00000 n
0000017986 00000 n
0000018031 00000 n
0000753980 00000 n
-0001216765 00000 n
+0001217007 00000 n
0000018090 00000 n
0000018149 00000 n
0000757319 00000 n
-0001216672 00000 n
+0001216914 00000 n
0000018208 00000 n
0000018272 00000 n
0000757578 00000 n
-0001216579 00000 n
+0001216821 00000 n
0000018331 00000 n
0000018387 00000 n
0000761762 00000 n
-0001216486 00000 n
+0001216728 00000 n
0000018446 00000 n
0000018504 00000 n
0000763934 00000 n
-0001216407 00000 n
+0001216649 00000 n
0000018563 00000 n
0000018625 00000 n
0000765719 00000 n
-0001216274 00000 n
+0001216516 00000 n
0000018672 00000 n
0000018724 00000 n
0000765847 00000 n
-0001216195 00000 n
+0001216437 00000 n
0000018773 00000 n
0000018817 00000 n
0000769646 00000 n
-0001216063 00000 n
+0001216305 00000 n
0000018866 00000 n
0000018907 00000 n
0000769775 00000 n
-0001215984 00000 n
+0001216226 00000 n
0000018961 00000 n
0000019009 00000 n
0000769904 00000 n
-0001215905 00000 n
+0001216147 00000 n
0000019063 00000 n
0000019114 00000 n
0000770032 00000 n
-0001215826 00000 n
+0001216068 00000 n
0000019163 00000 n
0000019210 00000 n
0000774292 00000 n
-0001215693 00000 n
+0001215935 00000 n
0000019257 00000 n
0000019294 00000 n
0000774421 00000 n
-0001215575 00000 n
+0001215817 00000 n
0000019343 00000 n
0000019382 00000 n
0000774550 00000 n
-0001215510 00000 n
+0001215752 00000 n
0000019436 00000 n
0000019514 00000 n
0000774679 00000 n
-0001215417 00000 n
+0001215659 00000 n
0000019563 00000 n
0000019630 00000 n
0000774808 00000 n
-0001215338 00000 n
+0001215580 00000 n
0000019679 00000 n
0000019724 00000 n
0000778249 00000 n
-0001215205 00000 n
+0001215447 00000 n
0000019772 00000 n
0000019804 00000 n
0000778378 00000 n
-0001215087 00000 n
+0001215329 00000 n
0000019853 00000 n
0000019892 00000 n
0000778507 00000 n
-0001215022 00000 n
+0001215264 00000 n
0000019946 00000 n
0000020007 00000 n
0000782189 00000 n
-0001214890 00000 n
+0001215132 00000 n
0000020056 00000 n
0000020113 00000 n
0000782318 00000 n
-0001214825 00000 n
+0001215067 00000 n
0000020167 00000 n
0000020216 00000 n
0000782447 00000 n
-0001214693 00000 n
+0001214935 00000 n
0000020265 00000 n
0000020327 00000 n
0000782576 00000 n
-0001214614 00000 n
+0001214856 00000 n
0000020381 00000 n
0000020436 00000 n
0000807418 00000 n
-0001214521 00000 n
+0001214763 00000 n
0000020490 00000 n
0000020531 00000 n
0000807547 00000 n
-0001214442 00000 n
+0001214684 00000 n
0000020585 00000 n
0000020637 00000 n
0000807936 00000 n
-0001214324 00000 n
+0001214566 00000 n
0000020686 00000 n
0000020736 00000 n
0000810757 00000 n
-0001214245 00000 n
+0001214487 00000 n
0000020790 00000 n
0000020828 00000 n
0000810886 00000 n
-0001214152 00000 n
+0001214394 00000 n
0000020882 00000 n
0000020919 00000 n
0000811015 00000 n
-0001214059 00000 n
+0001214301 00000 n
0000020973 00000 n
0000021011 00000 n
0000811144 00000 n
-0001213966 00000 n
+0001214208 00000 n
0000021065 00000 n
0000021117 00000 n
0000814380 00000 n
-0001213873 00000 n
+0001214115 00000 n
0000021171 00000 n
0000021214 00000 n
0000814508 00000 n
-0001213741 00000 n
+0001213983 00000 n
0000021268 00000 n
0000021313 00000 n
0000814636 00000 n
-0001213662 00000 n
+0001213904 00000 n
0000021372 00000 n
0000021438 00000 n
0000817622 00000 n
-0001213569 00000 n
+0001213811 00000 n
0000021497 00000 n
0000021585 00000 n
0000817751 00000 n
-0001213476 00000 n
+0001213718 00000 n
0000021644 00000 n
0000021719 00000 n
0000817880 00000 n
-0001213383 00000 n
+0001213625 00000 n
0000021778 00000 n
0000021863 00000 n
0000820788 00000 n
-0001213290 00000 n
+0001213532 00000 n
0000021922 00000 n
0000022003 00000 n
0000823249 00000 n
-0001213211 00000 n
+0001213453 00000 n
0000022062 00000 n
0000022146 00000 n
0000823378 00000 n
-0001213132 00000 n
+0001213374 00000 n
0000022200 00000 n
0000022244 00000 n
0000826274 00000 n
-0001213012 00000 n
+0001213254 00000 n
0000022292 00000 n
0000022326 00000 n
0000826403 00000 n
-0001212933 00000 n
+0001213175 00000 n
0000022375 00000 n
0000022402 00000 n
0000848974 00000 n
-0001212840 00000 n
+0001213082 00000 n
0000022451 00000 n
0000022479 00000 n
0000852607 00000 n
-0001212747 00000 n
+0001212989 00000 n
0000022528 00000 n
0000022566 00000 n
0000855811 00000 n
-0001212654 00000 n
+0001212896 00000 n
0000022615 00000 n
0000022654 00000 n
0000862214 00000 n
-0001212561 00000 n
+0001212803 00000 n
0000022703 00000 n
0000022743 00000 n
0000864940 00000 n
-0001212468 00000 n
+0001212710 00000 n
0000022792 00000 n
0000022835 00000 n
0000875077 00000 n
-0001212375 00000 n
+0001212617 00000 n
0000022884 00000 n
0000022921 00000 n
0000888727 00000 n
-0001212282 00000 n
+0001212524 00000 n
0000022970 00000 n
0000023007 00000 n
0000892108 00000 n
-0001212189 00000 n
+0001212431 00000 n
0000023056 00000 n
0000023094 00000 n
0000898633 00000 n
-0001212096 00000 n
+0001212338 00000 n
0000023144 00000 n
0000023184 00000 n
0000916435 00000 n
-0001212003 00000 n
+0001212245 00000 n
0000023234 00000 n
0000023272 00000 n
-0000919368 00000 n
-0001211910 00000 n
+0000919577 00000 n
+0001212152 00000 n
0000023322 00000 n
0000023362 00000 n
-0000922239 00000 n
-0001211817 00000 n
+0000922492 00000 n
+0001212059 00000 n
0000023412 00000 n
0000023452 00000 n
-0000929081 00000 n
-0001211724 00000 n
+0000932500 00000 n
+0001211966 00000 n
0000023502 00000 n
0000023532 00000 n
-0000940697 00000 n
-0001211631 00000 n
+0000940973 00000 n
+0001211873 00000 n
0000023582 00000 n
0000023625 00000 n
-0000941150 00000 n
-0001211538 00000 n
+0000941427 00000 n
+0001211780 00000 n
0000023675 00000 n
0000023708 00000 n
-0000955516 00000 n
-0001211445 00000 n
+0000955679 00000 n
+0001211687 00000 n
0000023758 00000 n
0000023787 00000 n
-0000973909 00000 n
-0001211352 00000 n
+0000974104 00000 n
+0001211594 00000 n
0000023837 00000 n
0000023871 00000 n
-0000979576 00000 n
-0001211259 00000 n
+0000979694 00000 n
+0001211501 00000 n
0000023921 00000 n
0000023958 00000 n
-0000982656 00000 n
-0001211166 00000 n
+0000982902 00000 n
+0001211408 00000 n
0000024008 00000 n
0000024045 00000 n
-0000988340 00000 n
-0001211073 00000 n
+0000988586 00000 n
+0001211315 00000 n
0000024095 00000 n
0000024128 00000 n
-0000988794 00000 n
-0001210980 00000 n
+0000989040 00000 n
+0001211222 00000 n
0000024178 00000 n
0000024212 00000 n
-0000991506 00000 n
-0001210887 00000 n
+0000991752 00000 n
+0001211129 00000 n
0000024262 00000 n
0000024301 00000 n
-0000993619 00000 n
-0001210808 00000 n
+0000993865 00000 n
+0001211050 00000 n
0000024351 00000 n
0000024385 00000 n
0000024758 00000 n
@@ -17819,10 +17817,10 @@ xref
0000024438 00000 n
0000289555 00000 n
0000289618 00000 n
-0001204762 00000 n
-0001178620 00000 n
-0001204588 00000 n
-0001205808 00000 n
+0001205004 00000 n
+0001178862 00000 n
+0001204830 00000 n
+0001206050 00000 n
0000026189 00000 n
0000026382 00000 n
0000026462 00000 n
@@ -17842,12 +17840,12 @@ xref
0000290936 00000 n
0000289781 00000 n
0000291058 00000 n
-0001177384 00000 n
-0001150765 00000 n
-0001177210 00000 n
-0001150080 00000 n
-0001147935 00000 n
-0001149916 00000 n
+0001177626 00000 n
+0001151007 00000 n
+0001177452 00000 n
+0001150322 00000 n
+0001148178 00000 n
+0001150158 00000 n
0000302898 00000 n
0000294171 00000 n
0000291206 00000 n
@@ -17907,9 +17905,9 @@ xref
0000306338 00000 n
0000302983 00000 n
0000316340 00000 n
-0001147347 00000 n
-0001129926 00000 n
-0001147161 00000 n
+0001147590 00000 n
+0001130169 00000 n
+0001147404 00000 n
0000306988 00000 n
0000307152 00000 n
0000307316 00000 n
@@ -18043,9 +18041,9 @@ xref
0000335807 00000 n
0000335975 00000 n
0000336142 00000 n
-0001129035 00000 n
-0001107701 00000 n
-0001128859 00000 n
+0001129278 00000 n
+0001107944 00000 n
+0001129102 00000 n
0000336309 00000 n
0000336477 00000 n
0000336633 00000 n
@@ -18103,9 +18101,9 @@ xref
0000345813 00000 n
0000345972 00000 n
0000346131 00000 n
-0001106722 00000 n
-0001086595 00000 n
-0001106547 00000 n
+0001106965 00000 n
+0001086838 00000 n
+0001106790 00000 n
0000346290 00000 n
0000346449 00000 n
0000346607 00000 n
@@ -18113,7 +18111,7 @@ xref
0000346924 00000 n
0000347083 00000 n
0000347242 00000 n
-0001205929 00000 n
+0001206171 00000 n
0000350589 00000 n
0000349822 00000 n
0000347567 00000 n
@@ -18123,9 +18121,9 @@ xref
0000350394 00000 n
0000350459 00000 n
0000350524 00000 n
-0001085753 00000 n
-0001067053 00000 n
-0001085578 00000 n
+0001085996 00000 n
+0001067296 00000 n
+0001085821 00000 n
0000355126 00000 n
0000353985 00000 n
0000350717 00000 n
@@ -18174,7 +18172,7 @@ xref
0000366593 00000 n
0000367391 00000 n
0000367519 00000 n
-0001206054 00000 n
+0001206296 00000 n
0000369627 00000 n
0000368924 00000 n
0000367684 00000 n
@@ -18198,9 +18196,9 @@ xref
0000375220 00000 n
0000375349 00000 n
0000375476 00000 n
-0001066331 00000 n
-0001052954 00000 n
-0001066152 00000 n
+0001066574 00000 n
+0001053197 00000 n
+0001066395 00000 n
0000375734 00000 n
0000380671 00000 n
0000380110 00000 n
@@ -18208,7 +18206,7 @@ xref
0000380606 00000 n
0000380266 00000 n
0000380420 00000 n
-0000955580 00000 n
+0000955743 00000 n
0000485787 00000 n
0000382913 00000 n
0000382465 00000 n
@@ -18221,7 +18219,7 @@ xref
0000383191 00000 n
0000383041 00000 n
0000383317 00000 n
-0001206179 00000 n
+0001206421 00000 n
0000386078 00000 n
0000388668 00000 n
0000385913 00000 n
@@ -18231,12 +18229,12 @@ xref
0000388474 00000 n
0000387721 00000 n
0000387883 00000 n
-0001052048 00000 n
-0001042028 00000 n
-0001051874 00000 n
-0001041464 00000 n
-0001032377 00000 n
-0001041289 00000 n
+0001052291 00000 n
+0001042271 00000 n
+0001052117 00000 n
+0001041707 00000 n
+0001032621 00000 n
+0001041532 00000 n
0000388603 00000 n
0000388045 00000 n
0000387550 00000 n
@@ -18250,9 +18248,9 @@ xref
0000388839 00000 n
0000392983 00000 n
0000393112 00000 n
-0001031776 00000 n
-0001019355 00000 n
-0001031597 00000 n
+0001032020 00000 n
+0001019599 00000 n
+0001031841 00000 n
0000393241 00000 n
0000392655 00000 n
0000392821 00000 n
@@ -18282,7 +18280,7 @@ xref
0000403340 00000 n
0000403469 00000 n
0000403598 00000 n
-0001206304 00000 n
+0001206546 00000 n
0000407717 00000 n
0000406821 00000 n
0000403805 00000 n
@@ -18313,9 +18311,9 @@ xref
0000420675 00000 n
0000418128 00000 n
0000420801 00000 n
-0001019080 00000 n
-0001015720 00000 n
-0001018901 00000 n
+0001019324 00000 n
+0001015965 00000 n
+0001019145 00000 n
0000420930 00000 n
0000421059 00000 n
0000421188 00000 n
@@ -18324,12 +18322,12 @@ xref
0000421424 00000 n
0000425327 00000 n
0000425456 00000 n
-0001015365 00000 n
-0001013367 00000 n
-0001015200 00000 n
+0001015610 00000 n
+0001013613 00000 n
+0001015445 00000 n
0000424998 00000 n
0000425162 00000 n
-0001206429 00000 n
+0001206671 00000 n
0000875141 00000 n
0000892172 00000 n
0000428887 00000 n
@@ -18376,7 +18374,7 @@ xref
0000442898 00000 n
0000445265 00000 n
0000445394 00000 n
-0001206554 00000 n
+0001206796 00000 n
0000448367 00000 n
0000447531 00000 n
0000445573 00000 n
@@ -18418,7 +18416,7 @@ xref
0000461247 00000 n
0000461097 00000 n
0000461373 00000 n
-0001206679 00000 n
+0001206921 00000 n
0000465525 00000 n
0000464759 00000 n
0000461480 00000 n
@@ -18464,8 +18462,8 @@ xref
0000485659 00000 n
0000485220 00000 n
0000485371 00000 n
-0001206804 00000 n
-0000994346 00000 n
+0001207046 00000 n
+0000994592 00000 n
0000489838 00000 n
0000488438 00000 n
0000485993 00000 n
@@ -18505,7 +18503,7 @@ xref
0000504051 00000 n
0000507173 00000 n
0000507302 00000 n
-0001206929 00000 n
+0001207171 00000 n
0000510891 00000 n
0000510570 00000 n
0000507495 00000 n
@@ -18540,7 +18538,7 @@ xref
0000518962 00000 n
0000520866 00000 n
0000520995 00000 n
-0001207054 00000 n
+0001207296 00000 n
0000524632 00000 n
0000524441 00000 n
0000521174 00000 n
@@ -18573,7 +18571,7 @@ xref
0000545624 00000 n
0000545689 00000 n
0000545753 00000 n
-0001207179 00000 n
+0001207421 00000 n
0000550885 00000 n
0000549757 00000 n
0000545946 00000 n
@@ -18612,7 +18610,7 @@ xref
0000570893 00000 n
0000571022 00000 n
0000570726 00000 n
-0001207304 00000 n
+0001207546 00000 n
0000575417 00000 n
0000574726 00000 n
0000571244 00000 n
@@ -18648,7 +18646,7 @@ xref
0000593220 00000 n
0000593805 00000 n
0000593394 00000 n
-0001207429 00000 n
+0001207671 00000 n
0000597895 00000 n
0000597577 00000 n
0000593984 00000 n
@@ -18685,7 +18683,7 @@ xref
0000616695 00000 n
0000616532 00000 n
0000616824 00000 n
-0001207554 00000 n
+0001207796 00000 n
0000746721 00000 n
0000620634 00000 n
0000620124 00000 n
@@ -18717,7 +18715,7 @@ xref
0000632409 00000 n
0000636317 00000 n
0000636446 00000 n
-0001207679 00000 n
+0001207921 00000 n
0000640643 00000 n
0000640452 00000 n
0000636652 00000 n
@@ -18753,7 +18751,7 @@ xref
0000661676 00000 n
0000661856 00000 n
0000662032 00000 n
-0001207804 00000 n
+0001208046 00000 n
0000666519 00000 n
0000665638 00000 n
0000662661 00000 n
@@ -18783,7 +18781,7 @@ xref
0000677982 00000 n
0000676894 00000 n
0000678108 00000 n
-0001207929 00000 n
+0001208171 00000 n
0000681825 00000 n
0000681246 00000 n
0000678274 00000 n
@@ -18806,7 +18804,7 @@ xref
0000688274 00000 n
0000688434 00000 n
0000688595 00000 n
-0000994313 00000 n
+0000994559 00000 n
0000695084 00000 n
0000692484 00000 n
0000689205 00000 n
@@ -18855,7 +18853,7 @@ xref
0000704990 00000 n
0000705152 00000 n
0000705313 00000 n
-0001208054 00000 n
+0001208296 00000 n
0000710861 00000 n
0000709343 00000 n
0000705644 00000 n
@@ -18899,7 +18897,7 @@ xref
0000728514 00000 n
0000728579 00000 n
0000728644 00000 n
-0001208179 00000 n
+0001208421 00000 n
0000732633 00000 n
0000731924 00000 n
0000728824 00000 n
@@ -18950,7 +18948,7 @@ xref
0000750292 00000 n
0000750357 00000 n
0000749938 00000 n
-0001208304 00000 n
+0001208546 00000 n
0000754239 00000 n
0000753660 00000 n
0000750665 00000 n
@@ -18970,7 +18968,7 @@ xref
0000757642 00000 n
0000757707 00000 n
0000757772 00000 n
-0000994280 00000 n
+0000994526 00000 n
0000762020 00000 n
0000761571 00000 n
0000757950 00000 n
@@ -18982,9 +18980,9 @@ xref
0000763743 00000 n
0000762148 00000 n
0000763869 00000 n
-0001013086 00000 n
-0001005802 00000 n
-0001012906 00000 n
+0001013332 00000 n
+0001006048 00000 n
+0001013152 00000 n
0000763998 00000 n
0000765975 00000 n
0000765528 00000 n
@@ -18996,13 +18994,13 @@ xref
0000769455 00000 n
0000766089 00000 n
0000769581 00000 n
-0001005481 00000 n
-0000996268 00000 n
-0001005295 00000 n
+0001005727 00000 n
+0000996514 00000 n
+0001005541 00000 n
0000769710 00000 n
0000769839 00000 n
0000769967 00000 n
-0001208429 00000 n
+0001208671 00000 n
0000771194 00000 n
0000771003 00000 n
0000770388 00000 n
@@ -19043,7 +19041,7 @@ xref
0000781949 00000 n
0000782705 00000 n
0000782769 00000 n
-0001208554 00000 n
+0001208796 00000 n
0000789723 00000 n
0000785895 00000 n
0000782989 00000 n
@@ -19264,7 +19262,7 @@ xref
0000814155 00000 n
0000814572 00000 n
0000814700 00000 n
-0001208679 00000 n
+0001208921 00000 n
0000818009 00000 n
0000817431 00000 n
0000814892 00000 n
@@ -19302,7 +19300,7 @@ xref
0000830866 00000 n
0000830931 00000 n
0000830996 00000 n
-0001208804 00000 n
+0001209046 00000 n
0000834824 00000 n
0000834568 00000 n
0000831217 00000 n
@@ -19344,7 +19342,7 @@ xref
0000852736 00000 n
0000852801 00000 n
0000852866 00000 n
-0001208929 00000 n
+0001209171 00000 n
0000856135 00000 n
0000855427 00000 n
0000853072 00000 n
@@ -19396,7 +19394,7 @@ xref
0000872057 00000 n
0000872122 00000 n
0000872187 00000 n
-0001209054 00000 n
+0001209296 00000 n
0000875466 00000 n
0000874756 00000 n
0000872378 00000 n
@@ -19443,7 +19441,7 @@ xref
0000892302 00000 n
0000892367 00000 n
0000892432 00000 n
-0001209179 00000 n
+0001209421 00000 n
0000895878 00000 n
0000895557 00000 n
0000892653 00000 n
@@ -19479,7 +19477,7 @@ xref
0000913445 00000 n
0000913510 00000 n
0000913575 00000 n
-0001209304 00000 n
+0001209546 00000 n
0000916823 00000 n
0000916179 00000 n
0000913809 00000 n
@@ -19490,245 +19488,245 @@ xref
0000916629 00000 n
0000916694 00000 n
0000916759 00000 n
-0000919756 00000 n
-0000919047 00000 n
+0000919965 00000 n
+0000919256 00000 n
0000916965 00000 n
-0000919173 00000 n
-0000919238 00000 n
-0000919303 00000 n
-0000919432 00000 n
-0000919497 00000 n
-0000919562 00000 n
-0000919627 00000 n
-0000919691 00000 n
-0000922628 00000 n
-0000921853 00000 n
-0000919912 00000 n
-0000921979 00000 n
-0000922044 00000 n
-0000922109 00000 n
-0000922174 00000 n
-0000922303 00000 n
-0000922368 00000 n
-0000922433 00000 n
-0000922498 00000 n
-0000922563 00000 n
-0000926061 00000 n
-0000925870 00000 n
-0000922770 00000 n
-0000925996 00000 n
-0000929274 00000 n
-0000928695 00000 n
-0000926189 00000 n
-0000928821 00000 n
-0000928886 00000 n
-0000928951 00000 n
-0000929016 00000 n
-0000929145 00000 n
-0000929210 00000 n
-0000932709 00000 n
-0000932323 00000 n
-0000929416 00000 n
-0000932449 00000 n
-0000932514 00000 n
-0000932579 00000 n
-0000932644 00000 n
-0001209429 00000 n
-0000935974 00000 n
-0000935783 00000 n
-0000932851 00000 n
-0000935909 00000 n
-0000938700 00000 n
-0000938185 00000 n
-0000936187 00000 n
-0000938311 00000 n
-0000938376 00000 n
-0000938441 00000 n
-0000938506 00000 n
-0000938571 00000 n
-0000938636 00000 n
-0000941409 00000 n
-0000940506 00000 n
+0000919382 00000 n
+0000919447 00000 n
+0000919512 00000 n
+0000919641 00000 n
+0000919706 00000 n
+0000919771 00000 n
+0000919836 00000 n
+0000919901 00000 n
+0000922878 00000 n
+0000922106 00000 n
+0000920121 00000 n
+0000922232 00000 n
+0000922297 00000 n
+0000922362 00000 n
+0000922427 00000 n
+0000922556 00000 n
+0000922621 00000 n
+0000922684 00000 n
+0000922749 00000 n
+0000922814 00000 n
+0000926235 00000 n
+0000926044 00000 n
+0000923020 00000 n
+0000926170 00000 n
+0000929379 00000 n
+0000928994 00000 n
+0000926349 00000 n
+0000929120 00000 n
+0000929185 00000 n
+0000929250 00000 n
+0000929315 00000 n
+0000932889 00000 n
+0000932309 00000 n
+0000929521 00000 n
+0000932435 00000 n
+0000932564 00000 n
+0000932629 00000 n
+0000932694 00000 n
+0000932759 00000 n
+0000932824 00000 n
+0001209671 00000 n
+0000935845 00000 n
+0000935654 00000 n
+0000933031 00000 n
+0000935780 00000 n
0000938913 00000 n
-0000940632 00000 n
-0000940761 00000 n
-0000940826 00000 n
-0000940891 00000 n
-0000940956 00000 n
-0000941020 00000 n
-0000941085 00000 n
-0000941214 00000 n
-0000941279 00000 n
-0000941344 00000 n
-0000945906 00000 n
-0000945650 00000 n
-0000941551 00000 n
-0000945776 00000 n
-0000945841 00000 n
-0000949699 00000 n
-0000949443 00000 n
-0000946034 00000 n
-0000949569 00000 n
-0000949634 00000 n
-0000952931 00000 n
-0000952675 00000 n
-0000949827 00000 n
-0000952801 00000 n
-0000952866 00000 n
-0001209554 00000 n
-0000955774 00000 n
-0000955130 00000 n
-0000953059 00000 n
-0000955256 00000 n
-0000955321 00000 n
-0000955386 00000 n
-0000955451 00000 n
-0000955645 00000 n
-0000955710 00000 n
-0000959545 00000 n
-0000959160 00000 n
-0000955943 00000 n
-0000959286 00000 n
-0000959351 00000 n
-0000959416 00000 n
-0000959480 00000 n
-0000963344 00000 n
-0000963153 00000 n
-0000959701 00000 n
-0000963279 00000 n
-0000966803 00000 n
-0000966612 00000 n
-0000963499 00000 n
-0000966738 00000 n
-0000970536 00000 n
-0000970151 00000 n
-0000966973 00000 n
-0000970277 00000 n
-0000970342 00000 n
-0000970407 00000 n
-0000970472 00000 n
-0000974297 00000 n
-0000973718 00000 n
-0000970706 00000 n
-0000973844 00000 n
-0000973973 00000 n
-0000974038 00000 n
-0000974103 00000 n
+0000938528 00000 n
+0000936058 00000 n
+0000938654 00000 n
+0000938719 00000 n
+0000938784 00000 n
+0000938849 00000 n
+0000941620 00000 n
+0000940652 00000 n
+0000939154 00000 n
+0000940778 00000 n
+0000940843 00000 n
+0000940908 00000 n
+0000941037 00000 n
+0000941102 00000 n
+0000941167 00000 n
+0000941232 00000 n
+0000941297 00000 n
+0000941362 00000 n
+0000941491 00000 n
+0000941556 00000 n
+0000946126 00000 n
+0000945805 00000 n
+0000941762 00000 n
+0000945931 00000 n
+0000945996 00000 n
+0000946061 00000 n
+0000949876 00000 n
+0000949620 00000 n
+0000946254 00000 n
+0000949746 00000 n
+0000949811 00000 n
+0000953293 00000 n
+0000953037 00000 n
+0000950004 00000 n
+0000953163 00000 n
+0000953228 00000 n
+0001209796 00000 n
+0000955872 00000 n
+0000955294 00000 n
+0000953421 00000 n
+0000955420 00000 n
+0000955485 00000 n
+0000955550 00000 n
+0000955614 00000 n
+0000955808 00000 n
+0000959715 00000 n
+0000959264 00000 n
+0000956027 00000 n
+0000959390 00000 n
+0000959455 00000 n
+0000959520 00000 n
+0000959585 00000 n
+0000959650 00000 n
+0000963219 00000 n
+0000963028 00000 n
+0000959871 00000 n
+0000963154 00000 n
+0000966745 00000 n
+0000966554 00000 n
+0000963361 00000 n
+0000966680 00000 n
+0000970638 00000 n
+0000970319 00000 n
+0000966914 00000 n
+0000970445 00000 n
+0000970510 00000 n
+0000970575 00000 n
+0000974428 00000 n
+0000973848 00000 n
+0000970808 00000 n
+0000973974 00000 n
+0000974039 00000 n
0000974168 00000 n
0000974233 00000 n
-0001209679 00000 n
-0000976570 00000 n
-0000976250 00000 n
-0000974439 00000 n
-0000976376 00000 n
-0000976441 00000 n
-0000976506 00000 n
-0000979962 00000 n
-0000979320 00000 n
-0000976726 00000 n
-0000979446 00000 n
-0000979511 00000 n
-0000979640 00000 n
-0000979705 00000 n
-0000979769 00000 n
-0000979833 00000 n
-0000979898 00000 n
-0000982914 00000 n
-0000982270 00000 n
-0000980104 00000 n
-0000982396 00000 n
-0000982461 00000 n
-0000982526 00000 n
-0000982591 00000 n
-0000982720 00000 n
-0000982785 00000 n
-0000982850 00000 n
-0000986636 00000 n
-0000986186 00000 n
-0000983084 00000 n
-0000986312 00000 n
-0000986377 00000 n
-0000986442 00000 n
-0000986507 00000 n
-0000986572 00000 n
-0000989181 00000 n
-0000988149 00000 n
-0000986792 00000 n
-0000988275 00000 n
-0000988404 00000 n
-0000988469 00000 n
-0000988534 00000 n
-0000988599 00000 n
-0000988664 00000 n
-0000988729 00000 n
-0000988857 00000 n
-0000988922 00000 n
-0000988987 00000 n
-0000989052 00000 n
-0000989117 00000 n
-0000992024 00000 n
-0000991185 00000 n
-0000989337 00000 n
-0000991311 00000 n
-0000991376 00000 n
-0000991441 00000 n
-0000991570 00000 n
-0000991635 00000 n
-0000991700 00000 n
-0000991765 00000 n
-0000991830 00000 n
-0000991895 00000 n
-0000991960 00000 n
-0001209804 00000 n
-0000994138 00000 n
-0000993428 00000 n
-0000992166 00000 n
-0000993554 00000 n
-0000993683 00000 n
-0000993748 00000 n
-0000993813 00000 n
-0000993878 00000 n
-0000993943 00000 n
-0000994008 00000 n
-0000994073 00000 n
-0000994379 00000 n
-0001005723 00000 n
-0001013312 00000 n
-0001015612 00000 n
-0001015581 00000 n
-0001019300 00000 n
-0001032096 00000 n
-0001041763 00000 n
-0001052498 00000 n
-0001066742 00000 n
-0001086248 00000 n
-0001107314 00000 n
-0001129464 00000 n
-0001147720 00000 n
-0001150567 00000 n
-0001150337 00000 n
-0001177985 00000 n
-0001205314 00000 n
-0001209893 00000 n
-0001210018 00000 n
-0001210144 00000 n
-0001210270 00000 n
-0001210396 00000 n
-0001210522 00000 n
-0001210621 00000 n
-0001210731 00000 n
-0001233005 00000 n
-0001258088 00000 n
-0001258129 00000 n
-0001258169 00000 n
-0001258303 00000 n
+0000974298 00000 n
+0000974363 00000 n
+0001209921 00000 n
+0000976675 00000 n
+0000976354 00000 n
+0000974570 00000 n
+0000976480 00000 n
+0000976545 00000 n
+0000976610 00000 n
+0000980081 00000 n
+0000979373 00000 n
+0000976817 00000 n
+0000979499 00000 n
+0000979564 00000 n
+0000979629 00000 n
+0000979758 00000 n
+0000979823 00000 n
+0000979887 00000 n
+0000979952 00000 n
+0000980016 00000 n
+0000983160 00000 n
+0000982517 00000 n
+0000980237 00000 n
+0000982643 00000 n
+0000982708 00000 n
+0000982773 00000 n
+0000982837 00000 n
+0000982966 00000 n
+0000983031 00000 n
+0000983096 00000 n
+0000986882 00000 n
+0000986432 00000 n
+0000983330 00000 n
+0000986558 00000 n
+0000986623 00000 n
+0000986688 00000 n
+0000986753 00000 n
+0000986818 00000 n
+0000989427 00000 n
+0000988395 00000 n
+0000987038 00000 n
+0000988521 00000 n
+0000988650 00000 n
+0000988715 00000 n
+0000988780 00000 n
+0000988845 00000 n
+0000988910 00000 n
+0000988975 00000 n
+0000989103 00000 n
+0000989168 00000 n
+0000989233 00000 n
+0000989298 00000 n
+0000989363 00000 n
+0000992270 00000 n
+0000991431 00000 n
+0000989583 00000 n
+0000991557 00000 n
+0000991622 00000 n
+0000991687 00000 n
+0000991816 00000 n
+0000991881 00000 n
+0000991946 00000 n
+0000992011 00000 n
+0000992076 00000 n
+0000992141 00000 n
+0000992206 00000 n
+0001210046 00000 n
+0000994384 00000 n
+0000993674 00000 n
+0000992412 00000 n
+0000993800 00000 n
+0000993929 00000 n
+0000993994 00000 n
+0000994059 00000 n
+0000994124 00000 n
+0000994189 00000 n
+0000994254 00000 n
+0000994319 00000 n
+0000994625 00000 n
+0001005969 00000 n
+0001013558 00000 n
+0001015857 00000 n
+0001015826 00000 n
+0001019544 00000 n
+0001032340 00000 n
+0001042006 00000 n
+0001052741 00000 n
+0001066985 00000 n
+0001086491 00000 n
+0001107557 00000 n
+0001129707 00000 n
+0001147963 00000 n
+0001150809 00000 n
+0001150579 00000 n
+0001178227 00000 n
+0001205556 00000 n
+0001210135 00000 n
+0001210260 00000 n
+0001210386 00000 n
+0001210512 00000 n
+0001210638 00000 n
+0001210764 00000 n
+0001210863 00000 n
+0001210973 00000 n
+0001233247 00000 n
+0001258330 00000 n
+0001258371 00000 n
+0001258411 00000 n
+0001258545 00000 n
trailer
<<
/Size 2855
/Root 2853 0 R
/Info 2854 0 R
-/ID [<38055C2328A3A5667FC85425EA8116AC> <38055C2328A3A5667FC85425EA8116AC>]
+/ID [<DB6819CF1D7B70E7D9B9B8FCBDCACBFF> <DB6819CF1D7B70E7D9B9B8FCBDCACBFF>]
>>
startxref
-1258561
+1258803
%%EOF
diff --git a/doc/arm/man.arpaname.html b/doc/arm/man.arpaname.html
index 87c9822a..8f823ab0 100644
--- a/doc/arm/man.arpaname.html
+++ b/doc/arm/man.arpaname.html
@@ -50,20 +50,20 @@
<div class="cmdsynopsis"><p><code class="command">arpaname</code> {<em class="replaceable"><code>ipaddress </code></em>...}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2617623"></a><h2>DESCRIPTION</h2>
+<a name="id2617724"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">arpaname</strong></span> translates IP addresses (IPv4 and
IPv6) to the corresponding IN-ADDR.ARPA or IP6.ARPA names.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2617638"></a><h2>SEE ALSO</h2>
+<a name="id2617739"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2617652"></a><h2>AUTHOR</h2>
+<a name="id2659054"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.ddns-confgen.html b/doc/arm/man.ddns-confgen.html
index 9f966efc..ddaa199a 100644
--- a/doc/arm/man.ddns-confgen.html
+++ b/doc/arm/man.ddns-confgen.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">ddns-confgen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [ -s <em class="replaceable"><code>name</code></em> | -z <em class="replaceable"><code>zone</code></em> ] [<code class="option">-q</code>] [name]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2650617"></a><h2>DESCRIPTION</h2>
+<a name="id2650650"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">ddns-confgen</strong></span>
generates a key for use by <span><strong class="command">nsupdate</strong></span>
and <span><strong class="command">named</strong></span>. It simplifies configuration
@@ -77,7 +77,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2650705"></a><h2>OPTIONS</h2>
+<a name="id2650738"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd><p>
@@ -144,7 +144,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2657186"></a><h2>SEE ALSO</h2>
+<a name="id2658994"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">nsupdate</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -152,7 +152,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2657224"></a><h2>AUTHOR</h2>
+<a name="id2659032"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.genrandom.html b/doc/arm/man.genrandom.html
index 1408e3cc..2052cb6b 100644
--- a/doc/arm/man.genrandom.html
+++ b/doc/arm/man.genrandom.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">genrandom</code> [<code class="option">-n <em class="replaceable"><code>number</code></em></code>] {<em class="replaceable"><code>size</code></em>} {<em class="replaceable"><code>filename</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2617748"></a><h2>DESCRIPTION</h2>
+<a name="id2659150"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">genrandom</strong></span>
generates a file or a set of files containing a specified quantity
@@ -59,7 +59,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2658928"></a><h2>ARGUMENTS</h2>
+<a name="id2659165"></a><h2>ARGUMENTS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-n <em class="replaceable"><code>number</code></em></span></dt>
<dd><p>
@@ -77,14 +77,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2659057"></a><h2>SEE ALSO</h2>
+<a name="id2659294"></a><h2>SEE ALSO</h2>
<p>
<span class="citerefentry"><span class="refentrytitle">rand</span>(3)</span>,
<span class="citerefentry"><span class="refentrytitle">arc4random</span>(3)</span>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659083"></a><h2>AUTHOR</h2>
+<a name="id2659321"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.isc-hmac-fixup.html b/doc/arm/man.isc-hmac-fixup.html
index 810c1942..6b60d3b2 100644
--- a/doc/arm/man.isc-hmac-fixup.html
+++ b/doc/arm/man.isc-hmac-fixup.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">isc-hmac-fixup</code> {<em class="replaceable"><code>algorithm</code></em>} {<em class="replaceable"><code>secret</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2659478"></a><h2>DESCRIPTION</h2>
+<a name="id2618278"></a><h2>DESCRIPTION</h2>
<p>
Versions of BIND 9 up to and including BIND 9.6 had a bug causing
HMAC-SHA* TSIG keys which were longer than the digest length of the
@@ -76,7 +76,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659506"></a><h2>SECURITY CONSIDERATIONS</h2>
+<a name="id2660972"></a><h2>SECURITY CONSIDERATIONS</h2>
<p>
Secrets that have been converted by <span><strong class="command">isc-hmac-fixup</strong></span>
are shortened, but as this is how the HMAC protocol works in
@@ -87,14 +87,14 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659522"></a><h2>SEE ALSO</h2>
+<a name="id2660988"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 2104</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659539"></a><h2>AUTHOR</h2>
+<a name="id2661005"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named-checkconf.html b/doc/arm/man.named-checkconf.html
index 1a054692..ca13940f 100644
--- a/doc/arm/man.named-checkconf.html
+++ b/doc/arm/man.named-checkconf.html
@@ -47,10 +47,10 @@
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
-<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-z</code>]</p></div>
+<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-x</code>] [<code class="option">-z</code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2633938"></a><h2>DESCRIPTION</h2>
+<a name="id2633915"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named-checkconf</strong></span>
checks the syntax, but not the semantics, of a
<span><strong class="command">named</strong></span> configuration file. The file is parsed
@@ -70,7 +70,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2634008"></a><h2>OPTIONS</h2>
+<a name="id2633986"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-h</span></dt>
<dd><p>
@@ -92,6 +92,16 @@
Print out the <code class="filename">named.conf</code> and included files
in canonical form if no errors were detected.
</p></dd>
+<dt><span class="term">-x</span></dt>
+<dd><p>
+ When printing the configuration files in canonical
+ form, obscure shared secrets by replacing them with
+ strings of question marks ('?'). This allows the
+ contents of <code class="filename">named.conf</code> and related
+ files to be shared &#8212; for example, when submitting
+ bug reports &#8212; without compromising private data.
+ This option cannot be used without <code class="option">-p</code>.
+ </p></dd>
<dt><span class="term">-z</span></dt>
<dd><p>
Perform a test load of all master zones found in
@@ -109,21 +119,21 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2634211"></a><h2>RETURN VALUES</h2>
+<a name="id2634210"></a><h2>RETURN VALUES</h2>
<p><span><strong class="command">named-checkconf</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2634225"></a><h2>SEE ALSO</h2>
+<a name="id2634224"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2634254"></a><h2>AUTHOR</h2>
+<a name="id2634253"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named-checkzone.html b/doc/arm/man.named-checkzone.html
index 864dad04..159f005a 100644
--- a/doc/arm/man.named-checkzone.html
+++ b/doc/arm/man.named-checkzone.html
@@ -51,7 +51,7 @@
<div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-T <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2637443"></a><h2>DESCRIPTION</h2>
+<a name="id2637408"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named-checkzone</strong></span>
checks the syntax and integrity of a zone file. It performs the
same checks as <span><strong class="command">named</strong></span> does when loading a
@@ -71,7 +71,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2670193"></a><h2>OPTIONS</h2>
+<a name="id2637458"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-d</span></dt>
<dd><p>
@@ -288,14 +288,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2671033"></a><h2>RETURN VALUES</h2>
+<a name="id2670998"></a><h2>RETURN VALUES</h2>
<p><span><strong class="command">named-checkzone</strong></span>
returns an exit status of 1 if
errors were detected and 0 otherwise.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2671047"></a><h2>SEE ALSO</h2>
+<a name="id2671080"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>,
<em class="citetitle">RFC 1035</em>,
@@ -303,7 +303,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2671148"></a><h2>AUTHOR</h2>
+<a name="id2671113"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named-journalprint.html b/doc/arm/man.named-journalprint.html
index f7fe072f..e391a407 100644
--- a/doc/arm/man.named-journalprint.html
+++ b/doc/arm/man.named-journalprint.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">named-journalprint</code> {<em class="replaceable"><code>journal</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2614838"></a><h2>DESCRIPTION</h2>
+<a name="id2614871"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">named-journalprint</strong></span>
prints the contents of a zone journal file in a human-readable
@@ -76,7 +76,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2614884"></a><h2>SEE ALSO</h2>
+<a name="id2641882"></a><h2>SEE ALSO</h2>
<p>
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">nsupdate</span>(8)</span>,
@@ -84,7 +84,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2641812"></a><h2>AUTHOR</h2>
+<a name="id2641913"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.named.html b/doc/arm/man.named.html
index 450a118f..dc9ebe4e 100644
--- a/doc/arm/man.named.html
+++ b/doc/arm/man.named.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine-name</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-S <em class="replaceable"><code>#max-socks</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-U <em class="replaceable"><code>#listeners</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2641173"></a><h2>DESCRIPTION</h2>
+<a name="id2640387"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">named</strong></span>
is a Domain Name System (DNS) server,
part of the BIND 9 distribution from ISC. For more
@@ -65,7 +65,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2641204"></a><h2>OPTIONS</h2>
+<a name="id2641442"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-4</span></dt>
<dd><p>
@@ -256,7 +256,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2666437"></a><h2>SIGNALS</h2>
+<a name="id2666470"></a><h2>SIGNALS</h2>
<p>
In routine operation, signals should not be used to control
the nameserver; <span><strong class="command">rndc</strong></span> should be used
@@ -277,7 +277,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2666487"></a><h2>CONFIGURATION</h2>
+<a name="id2673074"></a><h2>CONFIGURATION</h2>
<p>
The <span><strong class="command">named</strong></span> configuration file is too complex
to describe in detail here. A complete description is provided
@@ -294,7 +294,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2673090"></a><h2>FILES</h2>
+<a name="id2673123"></a><h2>FILES</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="filename">/etc/named.conf</code></span></dt>
<dd><p>
@@ -307,7 +307,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2673133"></a><h2>SEE ALSO</h2>
+<a name="id2673166"></a><h2>SEE ALSO</h2>
<p><em class="citetitle">RFC 1033</em>,
<em class="citetitle">RFC 1034</em>,
<em class="citetitle">RFC 1035</em>,
@@ -320,7 +320,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2673204"></a><h2>AUTHOR</h2>
+<a name="id2673237"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.nsec3hash.html b/doc/arm/man.nsec3hash.html
index d65d0fbd..9f6215c3 100644
--- a/doc/arm/man.nsec3hash.html
+++ b/doc/arm/man.nsec3hash.html
@@ -48,7 +48,7 @@
<div class="cmdsynopsis"><p><code class="command">nsec3hash</code> {<em class="replaceable"><code>salt</code></em>} {<em class="replaceable"><code>algorithm</code></em>} {<em class="replaceable"><code>iterations</code></em>} {<em class="replaceable"><code>domain</code></em>}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2618282"></a><h2>DESCRIPTION</h2>
+<a name="id2661050"></a><h2>DESCRIPTION</h2>
<p>
<span><strong class="command">nsec3hash</strong></span> generates an NSEC3 hash based on
a set of NSEC3 parameters. This can be used to check the validity
@@ -56,7 +56,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2618297"></a><h2>ARGUMENTS</h2>
+<a name="id2661065"></a><h2>ARGUMENTS</h2>
<div class="variablelist"><dl>
<dt><span class="term">salt</span></dt>
<dd><p>
@@ -80,14 +80,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2659660"></a><h2>SEE ALSO</h2>
+<a name="id2661127"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 5155</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659677"></a><h2>AUTHOR</h2>
+<a name="id2661144"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.nsupdate.html b/doc/arm/man.nsupdate.html
index 4a1ad3c0..03c5f554 100644
--- a/doc/arm/man.nsupdate.html
+++ b/doc/arm/man.nsupdate.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [<code class="option">-D</code>] [[<code class="option">-g</code>] | [<code class="option">-o</code>] | [<code class="option">-l</code>] | [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-R <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-v</code>] [filename]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2642071"></a><h2>DESCRIPTION</h2>
+<a name="id2642172"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">nsupdate</strong></span>
is used to submit Dynamic DNS Update requests as defined in RFC 2136
to a name server.
@@ -210,7 +210,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2642610"></a><h2>INPUT FORMAT</h2>
+<a name="id2642574"></a><h2>INPUT FORMAT</h2>
<p><span><strong class="command">nsupdate</strong></span>
reads input from
<em class="parameter"><code>filename</code></em>
@@ -498,7 +498,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2674327"></a><h2>EXAMPLES</h2>
+<a name="id2674292"></a><h2>EXAMPLES</h2>
<p>
The examples below show how
<span><strong class="command">nsupdate</strong></span>
@@ -552,7 +552,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2674377"></a><h2>FILES</h2>
+<a name="id2674342"></a><h2>FILES</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="constant">/etc/resolv.conf</code></span></dt>
<dd><p>
@@ -575,7 +575,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2674460"></a><h2>SEE ALSO</h2>
+<a name="id2674425"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">RFC 2136</em>,
<em class="citetitle">RFC 3007</em>,
@@ -590,7 +590,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2674518"></a><h2>BUGS</h2>
+<a name="id2674483"></a><h2>BUGS</h2>
<p>
The TSIG key is redundantly stored in two separate files.
This is a consequence of nsupdate using the DST library
diff --git a/doc/arm/man.rndc-confgen.html b/doc/arm/man.rndc-confgen.html
index c490d072..d394e083 100644
--- a/doc/arm/man.rndc-confgen.html
+++ b/doc/arm/man.rndc-confgen.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc-confgen</code> [<code class="option">-a</code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-c <em class="replaceable"><code>keyfile</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [<code class="option">-s <em class="replaceable"><code>address</code></em></code>] [<code class="option">-t <em class="replaceable"><code>chrootdir</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2648657"></a><h2>DESCRIPTION</h2>
+<a name="id2647597"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">rndc-confgen</strong></span>
generates configuration files
for <span><strong class="command">rndc</strong></span>. It can be used as a
@@ -66,7 +66,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2649952"></a><h2>OPTIONS</h2>
+<a name="id2649916"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a</span></dt>
<dd>
@@ -173,7 +173,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2650338"></a><h2>EXAMPLES</h2>
+<a name="id2650507"></a><h2>EXAMPLES</h2>
<p>
To allow <span><strong class="command">rndc</strong></span> to be used with
no manual configuration, run
@@ -190,7 +190,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659337"></a><h2>SEE ALSO</h2>
+<a name="id2650564"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -198,7 +198,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2659376"></a><h2>AUTHOR</h2>
+<a name="id2659545"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.rndc.conf.html b/doc/arm/man.rndc.conf.html
index 140f16ec..9dcb4516 100644
--- a/doc/arm/man.rndc.conf.html
+++ b/doc/arm/man.rndc.conf.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc.conf</code> </p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2615606"></a><h2>DESCRIPTION</h2>
+<a name="id2644379"></a><h2>DESCRIPTION</h2>
<p><code class="filename">rndc.conf</code> is the configuration file
for <span><strong class="command">rndc</strong></span>, the BIND 9 name server control
utility. This file has a similar structure and syntax to
@@ -135,7 +135,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2645132"></a><h2>EXAMPLE</h2>
+<a name="id2644551"></a><h2>EXAMPLE</h2>
<pre class="programlisting">
options {
default-server localhost;
@@ -209,7 +209,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2646073"></a><h2>NAME SERVER CONFIGURATION</h2>
+<a name="id2645014"></a><h2>NAME SERVER CONFIGURATION</h2>
<p>
The name server must be configured to accept rndc connections and
to recognize the key specified in the <code class="filename">rndc.conf</code>
@@ -219,7 +219,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2646099"></a><h2>SEE ALSO</h2>
+<a name="id2645040"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">mmencode</span>(1)</span>,
@@ -227,7 +227,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2646137"></a><h2>AUTHOR</h2>
+<a name="id2645078"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.rndc.html b/doc/arm/man.rndc.html
index 307603a1..3a22cb1a 100644
--- a/doc/arm/man.rndc.html
+++ b/doc/arm/man.rndc.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">rndc</code> [<code class="option">-b <em class="replaceable"><code>source-address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key-file</code></em></code>] [<code class="option">-s <em class="replaceable"><code>server</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y <em class="replaceable"><code>key_id</code></em></code>] {command}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2643909"></a><h2>DESCRIPTION</h2>
+<a name="id2642850"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">rndc</strong></span>
controls the operation of a name
server. It supersedes the <span><strong class="command">ndc</strong></span> utility
@@ -79,7 +79,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2643959"></a><h2>OPTIONS</h2>
+<a name="id2643856"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-b <em class="replaceable"><code>source-address</code></em></span></dt>
<dd><p>
@@ -145,7 +145,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2644305"></a><h2>COMMANDS</h2>
+<a name="id2644201"></a><h2>COMMANDS</h2>
<p>
A list of commands supported by <span><strong class="command">rndc</strong></span> can
be seen by running <span><strong class="command">rndc</strong></span> without arguments.
@@ -498,7 +498,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2677836"></a><h2>LIMITATIONS</h2>
+<a name="id2677869"></a><h2>LIMITATIONS</h2>
<p>
There is currently no way to provide the shared secret for a
<code class="option">key_id</code> without using the configuration file.
@@ -508,7 +508,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2677854"></a><h2>SEE ALSO</h2>
+<a name="id2677888"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
@@ -518,7 +518,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2677910"></a><h2>AUTHOR</h2>
+<a name="id2677943"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/lib/bind9/api b/lib/bind9/api
index 1a861f8b..0adc934e 100644
--- a/lib/bind9/api
+++ b/lib/bind9/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 90
-LIBREVISION = 8
+LIBREVISION = 9
LIBAGE = 0
diff --git a/lib/bind9/check.c b/lib/bind9/check.c
index 61574e81..af1b87ae 100644
--- a/lib/bind9/check.c
+++ b/lib/bind9/check.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -25,6 +25,7 @@
#include <isc/base64.h>
#include <isc/buffer.h>
+#include <isc/file.h>
#include <isc/log.h>
#include <isc/mem.h>
#include <isc/netaddr.h>
@@ -1145,7 +1146,7 @@ validate_masters(const cfg_obj_t *obj, const cfg_obj_t *config,
void *ptr;
DE_CONST(stack, ptr);
- memcpy(new, stack, oldsize);
+ memmove(new, stack, oldsize);
isc_mem_put(mctx, ptr, oldsize);
}
stack = new;
@@ -1776,6 +1777,35 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
}
/*
+ * Warn if key-directory doesn't exist
+ */
+ obj = NULL;
+ tresult = cfg_map_get(zoptions, "key-directory", &obj);
+ if (tresult == ISC_R_SUCCESS) {
+ const char *dir = cfg_obj_asstring(obj);
+ tresult = isc_file_isdirectory(dir);
+ switch (tresult) {
+ case ISC_R_SUCCESS:
+ break;
+ case ISC_R_FILENOTFOUND:
+ cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
+ "key-directory: '%s' does not exist",
+ dir);
+ break;
+ case ISC_R_INVALIDFILE:
+ cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
+ "key-directory: '%s' is not a directory",
+ dir);
+ break;
+ default:
+ cfg_obj_log(obj, logctx, ISC_LOG_WARNING,
+ "key-directory: '%s' %s",
+ dir, isc_result_totext(tresult));
+ result = tresult;
+ }
+ }
+
+ /*
* Check various options.
*/
tresult = check_options(zoptions, logctx, mctx, optlevel_zone);
diff --git a/lib/dns/acl.c b/lib/dns/acl.c
index 3221d30c..dbc6f9cb 100644
--- a/lib/dns/acl.c
+++ b/lib/dns/acl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -291,8 +291,8 @@ dns_acl_merge(dns_acl_t *dest, dns_acl_t *source, isc_boolean_t pos)
return (ISC_R_NOMEMORY);
/* Copy in the original elements */
- memcpy(newmem, dest->elements,
- dest->length * sizeof(dns_aclelement_t));
+ memmove(newmem, dest->elements,
+ dest->length * sizeof(dns_aclelement_t));
/* Release the memory for the old elements array */
isc_mem_put(dest->mctx, dest->elements,
diff --git a/lib/dns/adb.c b/lib/dns/adb.c
index ef7875dc..10d51bc4 100644
--- a/lib/dns/adb.c
+++ b/lib/dns/adb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -852,12 +852,12 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset,
dns_rdataset_current(rdataset, &rdata);
if (rdtype == dns_rdatatype_a) {
INSIST(rdata.length == 4);
- memcpy(&ina.s_addr, rdata.data, 4);
+ memmove(&ina.s_addr, rdata.data, 4);
isc_sockaddr_fromin(&sockaddr, &ina, 0);
hookhead = &adbname->v4;
} else {
INSIST(rdata.length == 16);
- memcpy(in6a.s6_addr, rdata.data, 16);
+ memmove(in6a.s6_addr, rdata.data, 16);
isc_sockaddr_fromin6(&sockaddr, &in6a, 0);
hookhead = &adbname->v6;
}
diff --git a/lib/dns/api b/lib/dns/api
index d43a04be..1bf8d3fa 100644
--- a/lib/dns/api
+++ b/lib/dns/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 102
-LIBREVISION = 0
+LIBREVISION = 1
LIBAGE = 2
diff --git a/lib/dns/diff.c b/lib/dns/diff.c
index 20f8e3c0..4517dade 100644
--- a/lib/dns/diff.c
+++ b/lib/dns/diff.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -79,7 +79,7 @@ dns_difftuple_create(isc_mem_t *mctx,
datap = (unsigned char *)(t + 1);
- memcpy(datap, name->ndata, name->length);
+ memmove(datap, name->ndata, name->length);
dns_name_init(&t->name, NULL);
dns_name_clone(name, &t->name);
t->name.ndata = datap;
@@ -87,7 +87,7 @@ dns_difftuple_create(isc_mem_t *mctx,
t->ttl = ttl;
- memcpy(datap, rdata->data, rdata->length);
+ memmove(datap, rdata->data, rdata->length);
dns_rdata_init(&t->rdata);
dns_rdata_clone(rdata, &t->rdata);
t->rdata.data = datap;
diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c
index 5063914a..77010414 100644
--- a/lib/dns/dispatch.c
+++ b/lib/dns/dispatch.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -706,8 +706,8 @@ destroy_disp_ok(dns_dispatch_t *disp)
/*
* Called when refcount reaches 0 (and safe to destroy).
*
- * The dispatcher must not be locked.
- * The manager must be locked.
+ * The dispatcher must be locked.
+ * The manager must not be locked.
*/
static void
destroy_disp(isc_task_t *task, isc_event_t *event) {
@@ -832,6 +832,7 @@ socket_search(dns_qid_t *qid, isc_sockaddr_t *dest, in_port_t port,
{
dispsocket_t *dispsock;
+ REQUIRE(VALID_QID(qid));
REQUIRE(bucket < qid->qid_nbuckets);
dispsock = ISC_LIST_HEAD(qid->sock_table[bucket]);
@@ -1076,6 +1077,7 @@ entry_search(dns_qid_t *qid, isc_sockaddr_t *dest, dns_messageid_t id,
{
dns_dispentry_t *res;
+ REQUIRE(VALID_QID(qid));
REQUIRE(bucket < qid->qid_nbuckets);
res = ISC_LIST_HEAD(qid->qid_table[bucket]);
@@ -1428,8 +1430,8 @@ udp_recv(isc_event_t *ev_in, dns_dispatch_t *disp, dispsocket_t *dispsock) {
}
/*
- * If both dispatches are bound to an address then fail as
- * the addresses can't be equal (enforced by the IP stack).
+ * If each dispatch is bound to a different address
+ * then fail.
*
* Note under Linux a packet can be sent out via IPv4 socket
* and the response be received via a IPv6 socket.
@@ -1444,7 +1446,8 @@ udp_recv(isc_event_t *ev_in, dns_dispatch_t *disp, dispsocket_t *dispsock) {
}
isc_sockaddr_anyofpf(&a1, isc_sockaddr_pf(&resp->disp->local));
isc_sockaddr_anyofpf(&a2, isc_sockaddr_pf(&disp->local));
- if (!isc_sockaddr_eqaddr(&a1, &resp->disp->local) &&
+ if (!isc_sockaddr_eqaddr(&disp->local, &resp->disp->local) &&
+ !isc_sockaddr_eqaddr(&a1, &resp->disp->local) &&
!isc_sockaddr_eqaddr(&a2, &disp->local)) {
free_buffer(disp, ev->region.base, ev->region.length);
goto unlock;
@@ -2647,8 +2650,7 @@ dispatch_allocate(dns_dispatchmgr_t *mgr, unsigned int maxrequests,
* MUST be unlocked, and not used by anything.
*/
static void
-dispatch_free(dns_dispatch_t **dispp)
-{
+dispatch_free(dns_dispatch_t **dispp) {
dns_dispatch_t *disp;
dns_dispatchmgr_t *mgr;
int i;
@@ -3311,17 +3313,17 @@ dns_dispatch_addresponse2(dns_dispatch_t *disp, isc_sockaddr_t *dest,
*/
LOCK(&qid->lock);
id = (dns_messageid_t)dispatch_random(DISP_ARC4CTX(disp));
- bucket = dns_hash(qid, dest, id, localport);
ok = ISC_FALSE;
- for (i = 0; i < 64; i++) {
+ i = 0;
+ do {
+ bucket = dns_hash(qid, dest, id, localport);
if (entry_search(qid, dest, id, localport, bucket) == NULL) {
ok = ISC_TRUE;
break;
}
id += qid->qid_increment;
id &= 0x0000ffff;
- bucket = dns_hash(qid, dest, id, localport);
- }
+ } while (i++ < 64);
UNLOCK(&qid->lock);
if (!ok) {
@@ -3331,9 +3333,9 @@ dns_dispatch_addresponse2(dns_dispatch_t *disp, isc_sockaddr_t *dest,
res = isc_mempool_get(disp->mgr->rpool);
if (res == NULL) {
- UNLOCK(&disp->lock);
if (dispsocket != NULL)
destroy_dispsocket(disp, &dispsocket);
+ UNLOCK(&disp->lock);
return (ISC_R_NOMEMORY);
}
@@ -3708,7 +3710,7 @@ dns_dispatch_importrecv(dns_dispatch_t *disp, isc_event_t *event) {
isc_event_free(ISC_EVENT_PTR(&newsevent));
return;
}
- memcpy(buf, sevent->region.base, sevent->n);
+ memmove(buf, sevent->region.base, sevent->n);
newsevent->region.base = buf;
newsevent->region.length = disp->mgr->buffersize;
newsevent->n = sevent->n;
diff --git a/lib/dns/dns64.c b/lib/dns/dns64.c
index 78eff579..7d47c669 100644
--- a/lib/dns/dns64.c
+++ b/lib/dns/dns64.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2010, 2011, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -83,10 +83,10 @@ dns_dns64_create(isc_mem_t *mctx, isc_netaddr_t *prefix,
if (new == NULL)
return (ISC_R_NOMEMORY);
memset(new->bits, 0, sizeof(new->bits));
- memcpy(new->bits, prefix->type.in6.s6_addr, prefixlen / 8);
+ memmove(new->bits, prefix->type.in6.s6_addr, prefixlen / 8);
if (suffix != NULL)
- memcpy(new->bits + nbytes, suffix->type.in6.s6_addr + nbytes,
- 16 - nbytes);
+ memmove(new->bits + nbytes, suffix->type.in6.s6_addr + nbytes,
+ 16 - nbytes);
new->clients = NULL;
if (clients != NULL)
dns_acl_attach(clients, &new->clients);
@@ -155,7 +155,7 @@ dns_dns64_aaaafroma(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
struct in_addr ina;
isc_netaddr_t netaddr;
- memcpy(&ina.s_addr, a, 4);
+ memmove(&ina.s_addr, a, 4);
isc_netaddr_fromin(&netaddr, &ina);
result = dns_acl_match(&netaddr, NULL, dns64->mapped, env,
&match, NULL);
@@ -168,7 +168,7 @@ dns_dns64_aaaafroma(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
nbytes = dns64->prefixlen / 8;
INSIST(nbytes <= 12);
/* Copy prefix. */
- memcpy(aaaa, dns64->bits, nbytes);
+ memmove(aaaa, dns64->bits, nbytes);
/* Bits 64-71 are zeros. draft-ietf-behave-address-format-04 */
if (nbytes == 8)
aaaa[nbytes++] = 0;
@@ -180,7 +180,7 @@ dns_dns64_aaaafroma(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
aaaa[nbytes++] = 0;
}
/* Copy suffix. */
- memcpy(aaaa + nbytes, dns64->bits + nbytes, 16 - nbytes);
+ memmove(aaaa + nbytes, dns64->bits + nbytes, 16 - nbytes);
return (ISC_R_SUCCESS);
}
@@ -268,7 +268,7 @@ dns_dns64_aaaaok(const dns_dns64_t *dns64, const isc_netaddr_t *reqaddr,
if (aaaaok == NULL || !aaaaok[i]) {
dns_rdataset_current(rdataset, &rdata);
- memcpy(&in6.s6_addr, rdata.data, 16);
+ memmove(&in6.s6_addr, rdata.data, 16);
isc_netaddr_fromin6(&netaddr, &in6);
result = dns_acl_match(&netaddr, NULL,
diff --git a/lib/dns/dnssec.c b/lib/dns/dnssec.c
index 2a4ab4f6..d7addc68 100644
--- a/lib/dns/dnssec.c
+++ b/lib/dns/dnssec.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -295,7 +295,7 @@ dns_dnssec_sign(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
* Create an envelope for each rdata: <name|type|class|ttl>.
*/
isc_buffer_init(&envbuf, data, sizeof(data));
- memcpy(data, r.base, r.length);
+ memmove(data, r.base, r.length);
isc_buffer_add(&envbuf, r.length);
isc_buffer_putuint16(&envbuf, set->type);
isc_buffer_putuint16(&envbuf, set->rdclass);
@@ -501,10 +501,10 @@ dns_dnssec_verify3(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
if (labels - sig.labels > 0) {
isc_buffer_putuint8(&envbuf, 1);
isc_buffer_putuint8(&envbuf, '*');
- memcpy(data + 2, r.base, r.length);
+ memmove(data + 2, r.base, r.length);
}
else
- memcpy(data, r.base, r.length);
+ memmove(data, r.base, r.length);
isc_buffer_add(&envbuf, r.length);
isc_buffer_putuint16(&envbuf, set->type);
isc_buffer_putuint16(&envbuf, set->rdclass);
@@ -1040,14 +1040,14 @@ dns_dnssec_verifymessage(isc_buffer_t *source, dns_message_t *msg,
/*
* Extract the header.
*/
- memcpy(header, source_r.base, DNS_MESSAGE_HEADERLEN);
+ memmove(header, source_r.base, DNS_MESSAGE_HEADERLEN);
/*
* Decrement the additional field counter.
*/
- memcpy(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
+ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
addcount = htons((isc_uint16_t)(ntohs(addcount) - 1));
- memcpy(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
+ memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
/*
* Digest the modified header.
diff --git a/lib/dns/gssapi_link.c b/lib/dns/gssapi_link.c
index fab12153..2927b676 100644
--- a/lib/dns/gssapi_link.c
+++ b/lib/dns/gssapi_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -216,7 +216,7 @@ gssapi_verify(dst_context_t *dctx, const isc_region_t *sig) {
buf = isc_mem_allocate(dst__memory_pool, sig->length);
if (buf == NULL)
return (ISC_R_FAILURE);
- memcpy(buf, sig->base, sig->length);
+ memmove(buf, sig->base, sig->length);
r.base = buf;
r.length = sig->length;
REGION_TO_GBUFFER(r, gsig);
diff --git a/lib/dns/hmac_link.c b/lib/dns/hmac_link.c
index 1f1a0ca6..d99c5fb0 100644
--- a/lib/dns/hmac_link.c
+++ b/lib/dns/hmac_link.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -228,9 +228,8 @@ hmacmd5_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_md5_update(&md5ctx, r.base, r.length);
isc_md5_final(&md5ctx, hkey->key);
keylen = ISC_MD5_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -505,9 +504,8 @@ hmacsha1_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha1_update(&sha1ctx, r.base, r.length);
isc_sha1_final(&sha1ctx, hkey->key);
keylen = ISC_SHA1_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -784,9 +782,8 @@ hmacsha224_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha224_update(&sha224ctx, r.base, r.length);
isc_sha224_final(hkey->key, &sha224ctx);
keylen = ISC_SHA224_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -1063,9 +1060,8 @@ hmacsha256_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha256_update(&sha256ctx, r.base, r.length);
isc_sha256_final(hkey->key, &sha256ctx);
keylen = ISC_SHA256_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -1342,9 +1338,8 @@ hmacsha384_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha384_update(&sha384ctx, r.base, r.length);
isc_sha384_final(hkey->key, &sha384ctx);
keylen = ISC_SHA384_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
@@ -1621,9 +1616,8 @@ hmacsha512_fromdns(dst_key_t *key, isc_buffer_t *data) {
isc_sha512_update(&sha512ctx, r.base, r.length);
isc_sha512_final(hkey->key, &sha512ctx);
keylen = ISC_SHA512_DIGESTLENGTH;
- }
- else {
- memcpy(hkey->key, r.base, r.length);
+ } else {
+ memmove(hkey->key, r.base, r.length);
keylen = r.length;
}
diff --git a/lib/dns/journal.c b/lib/dns/journal.c
index 47b64922..2d0b3f5f 100644
--- a/lib/dns/journal.c
+++ b/lib/dns/journal.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -357,7 +357,7 @@ journal_pos_encode(journal_rawpos_t *raw, journal_pos_t *cooked) {
static void
journal_header_decode(journal_rawheader_t *raw, journal_header_t *cooked) {
INSIST(sizeof(cooked->format) == sizeof(raw->h.format));
- memcpy(cooked->format, raw->h.format, sizeof(cooked->format));
+ memmove(cooked->format, raw->h.format, sizeof(cooked->format));
journal_pos_decode(&raw->h.begin, &cooked->begin);
journal_pos_decode(&raw->h.end, &cooked->end);
cooked->index_size = decode_uint32(raw->h.index_size);
@@ -371,7 +371,7 @@ journal_header_encode(journal_header_t *cooked, journal_rawheader_t *raw) {
INSIST(sizeof(cooked->format) == sizeof(raw->h.format));
memset(raw->pad, 0, sizeof(raw->pad));
- memcpy(raw->h.format, cooked->format, sizeof(raw->h.format));
+ memmove(raw->h.format, cooked->format, sizeof(raw->h.format));
journal_pos_encode(&raw->h.begin, &cooked->begin);
journal_pos_encode(&raw->h.end, &cooked->end);
encode_uint32(cooked->index_size, raw->h.index_size);
@@ -528,7 +528,7 @@ journal_file_create(isc_mem_t *mctx, const char *filename) {
return (ISC_R_NOMEMORY);
}
memset(mem, 0, size);
- memcpy(mem, &rawheader, sizeof(rawheader));
+ memmove(mem, &rawheader, sizeof(rawheader));
result = isc_stdio_write(mem, 1, (size_t) size, fp, NULL);
if (result != ISC_R_SUCCESS) {
diff --git a/lib/dns/keydata.c b/lib/dns/keydata.c
index 822bd467..cb1ed38d 100644
--- a/lib/dns/keydata.c
+++ b/lib/dns/keydata.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -51,7 +51,7 @@ dns_keydata_todnskey(dns_rdata_keydata_t *keydata,
dnskey->data = isc_mem_allocate(mctx, dnskey->datalen);
if (dnskey->data == NULL)
return (ISC_R_NOMEMORY);
- memcpy(dnskey->data, keydata->data, dnskey->datalen);
+ memmove(dnskey->data, keydata->data, dnskey->datalen);
}
return (ISC_R_SUCCESS);
@@ -82,7 +82,7 @@ dns_keydata_fromdnskey(dns_rdata_keydata_t *keydata,
keydata->data = isc_mem_allocate(mctx, keydata->datalen);
if (keydata->data == NULL)
return (ISC_R_NOMEMORY);
- memcpy(keydata->data, dnskey->data, keydata->datalen);
+ memmove(keydata->data, dnskey->data, keydata->datalen);
}
return (ISC_R_SUCCESS);
diff --git a/lib/dns/masterdump.c b/lib/dns/masterdump.c
index 9d2f0a38..01f797cb 100644
--- a/lib/dns/masterdump.c
+++ b/lib/dns/masterdump.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -247,7 +247,7 @@ indent(unsigned int *current, unsigned int to, int tabwidth,
int n = t;
if (n > N_TABS)
n = N_TABS;
- memcpy(p, tabs, n);
+ memmove(p, tabs, n);
p += n;
t -= n;
}
@@ -268,7 +268,7 @@ indent(unsigned int *current, unsigned int to, int tabwidth,
int n = t;
if (n > N_SPACES)
n = N_SPACES;
- memcpy(p, spaces, n);
+ memmove(p, spaces, n);
p += n;
t -= n;
}
@@ -358,7 +358,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -475,7 +475,7 @@ rdataset_totext(dns_rdataset_t *rdataset,
isc_buffer_availableregion(target, &r);
if (r.length < length)
return (ISC_R_NOSPACE);
- memcpy(r.base, ttlbuf, length);
+ memmove(r.base, ttlbuf, length);
isc_buffer_add(target, length);
column += length;
diff --git a/lib/dns/message.c b/lib/dns/message.c
index e58ec186..901c6b6d 100644
--- a/lib/dns/message.c
+++ b/lib/dns/message.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1675,8 +1675,8 @@ dns_message_parse(dns_message_t *msg, isc_buffer_t *source,
msg->saved.base = isc_mem_get(msg->mctx, msg->saved.length);
if (msg->saved.base == NULL)
return (ISC_R_NOMEMORY);
- memcpy(msg->saved.base, isc_buffer_base(&origsource),
- msg->saved.length);
+ memmove(msg->saved.base, isc_buffer_base(&origsource),
+ msg->saved.length);
msg->free_saved = 1;
}
@@ -1748,7 +1748,7 @@ dns_message_renderchangebuffer(dns_message_t *msg, isc_buffer_t *buffer) {
* Copy the contents from the old to the new buffer.
*/
isc_buffer_add(buffer, r.length);
- memcpy(rn.base, r.base, r.length);
+ memmove(rn.base, r.base, r.length);
msg->buffer = buffer;
diff --git a/lib/dns/name.c b/lib/dns/name.c
index 4fcabb11..fd768d0f 100644
--- a/lib/dns/name.c
+++ b/lib/dns/name.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -971,8 +971,8 @@ dns_name_clone(const dns_name_t *source, dns_name_t *target) {
DNS_NAMEATTR_DYNOFFSETS);
if (target->offsets != NULL && source->labels > 0) {
if (source->offsets != NULL)
- memcpy(target->offsets, source->offsets,
- source->labels);
+ memmove(target->offsets, source->offsets,
+ source->labels);
else
set_offsets(target, target->offsets, NULL);
}
@@ -1001,7 +1001,7 @@ dns_name_fromregion(dns_name_t *name, const isc_region_t *r) {
len = (r->length < r2.length) ? r->length : r2.length;
if (len > DNS_NAME_MAXWIRE)
len = DNS_NAME_MAXWIRE;
- memcpy(r2.base, r->base, len);
+ memmove(r2.base, r->base, len);
name->ndata = r2.base;
name->length = len;
} else {
@@ -1985,8 +1985,8 @@ dns_name_towire(const dns_name_t *name, dns_compress_t *cctx,
if (gf) {
if (target->length - target->used < gp.length)
return (ISC_R_NOSPACE);
- (void)memcpy((unsigned char *)target->base + target->used,
- gp.ndata, (size_t)gp.length);
+ (void)memmove((unsigned char *)target->base + target->used,
+ gp.ndata, (size_t)gp.length);
isc_buffer_add(target, gp.length);
go |= 0xc000;
if (target->length - target->used < 2)
@@ -1997,8 +1997,8 @@ dns_name_towire(const dns_name_t *name, dns_compress_t *cctx,
} else {
if (target->length - target->used < name->length)
return (ISC_R_NOSPACE);
- (void)memcpy((unsigned char *)target->base + target->used,
- name->ndata, (size_t)name->length);
+ (void)memmove((unsigned char *)target->base + target->used,
+ name->ndata, (size_t)name->length);
isc_buffer_add(target, name->length);
dns_compress_add(cctx, name, name, offset);
}
@@ -2082,8 +2082,8 @@ dns_name_concatenate(dns_name_t *prefix, dns_name_t *suffix, dns_name_t *name,
memmove(ndata + prefix_length, suffix->ndata,
suffix->length);
else
- memcpy(ndata + prefix_length, suffix->ndata,
- suffix->length);
+ memmove(ndata + prefix_length, suffix->ndata,
+ suffix->length);
}
/*
@@ -2092,7 +2092,7 @@ dns_name_concatenate(dns_name_t *prefix, dns_name_t *suffix, dns_name_t *name,
* copy anything.
*/
if (copy_prefix && (prefix != name || prefix->buffer != target))
- memcpy(ndata, prefix->ndata, prefix_length);
+ memmove(ndata, prefix->ndata, prefix_length);
name->ndata = ndata;
name->labels = labels;
@@ -2166,7 +2166,7 @@ dns_name_dup(const dns_name_t *source, isc_mem_t *mctx,
if (target->ndata == NULL)
return (ISC_R_NOMEMORY);
- memcpy(target->ndata, source->ndata, source->length);
+ memmove(target->ndata, source->ndata, source->length);
target->length = source->length;
target->labels = source->labels;
@@ -2175,8 +2175,8 @@ dns_name_dup(const dns_name_t *source, isc_mem_t *mctx,
target->attributes |= DNS_NAMEATTR_ABSOLUTE;
if (target->offsets != NULL) {
if (source->offsets != NULL)
- memcpy(target->offsets, source->offsets,
- source->labels);
+ memmove(target->offsets, source->offsets,
+ source->labels);
else
set_offsets(target, target->offsets, NULL);
}
@@ -2208,7 +2208,7 @@ dns_name_dupwithoffsets(dns_name_t *source, isc_mem_t *mctx,
if (target->ndata == NULL)
return (ISC_R_NOMEMORY);
- memcpy(target->ndata, source->ndata, source->length);
+ memmove(target->ndata, source->ndata, source->length);
target->length = source->length;
target->labels = source->labels;
@@ -2218,7 +2218,7 @@ dns_name_dupwithoffsets(dns_name_t *source, isc_mem_t *mctx,
target->attributes |= DNS_NAMEATTR_ABSOLUTE;
target->offsets = target->ndata + source->length;
if (source->offsets != NULL)
- memcpy(target->offsets, source->offsets, source->labels);
+ memmove(target->offsets, source->offsets, source->labels);
else
set_offsets(target, target->offsets, NULL);
@@ -2398,7 +2398,7 @@ dns_name_tostring(dns_name_t *name, char **target, isc_mem_t *mctx) {
isc_buffer_usedregion(&buf, &reg);
p = isc_mem_allocate(mctx, reg.length + 1);
- memcpy(p, (char *) reg.base, (int) reg.length);
+ memmove(p, (char *) reg.base, (int) reg.length);
p[reg.length] = '\0';
*target = p;
@@ -2474,7 +2474,7 @@ dns_name_copy(dns_name_t *source, dns_name_t *dest, isc_buffer_t *target) {
ndata = (unsigned char *)target->base + target->used;
dest->ndata = target->base;
- memcpy(ndata, source->ndata, source->length);
+ memmove(ndata, source->ndata, source->length);
dest->ndata = ndata;
dest->labels = source->labels;
@@ -2486,7 +2486,7 @@ dns_name_copy(dns_name_t *source, dns_name_t *dest, isc_buffer_t *target) {
if (dest->labels > 0 && dest->offsets != NULL) {
if (source->offsets != NULL)
- memcpy(dest->offsets, source->offsets, source->labels);
+ memmove(dest->offsets, source->offsets, source->labels);
else
set_offsets(dest, dest->offsets, NULL);
}
diff --git a/lib/dns/nsec.c b/lib/dns/nsec.c
index 8821311f..5d1197d0 100644
--- a/lib/dns/nsec.c
+++ b/lib/dns/nsec.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -115,7 +115,7 @@ dns_nsec_buildrdata(dns_db_t *db, dns_dbversion_t *version,
memset(buffer, 0, DNS_NSEC_BUFFERSIZE);
dns_name_toregion(target, &r);
- memcpy(buffer, r.base, r.length);
+ memmove(buffer, r.base, r.length);
r.base = buffer;
/*
* Use the end of the space for a raw bitmap leaving enough
diff --git a/lib/dns/nsec3.c b/lib/dns/nsec3.c
index 2e25729c..3724118c 100644
--- a/lib/dns/nsec3.c
+++ b/lib/dns/nsec3.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2008-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006, 2008-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -98,11 +98,11 @@ dns_nsec3_buildrdata(dns_db_t *db, dns_dbversion_t *version,
*p++ = iterations;
*p++ = (unsigned char)salt_length;
- memcpy(p, salt, salt_length);
+ memmove(p, salt, salt_length);
p += salt_length;
*p++ = (unsigned char)hash_length;
- memcpy(p, nexthash, hash_length);
+ memmove(p, nexthash, hash_length);
p += hash_length;
r.length = (unsigned int)(p - buffer);
@@ -591,7 +591,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
flags = nsec3.flags;
next_length = nsec3.next_length;
INSIST(next_length <= sizeof(nexthash));
- memcpy(nexthash, nsec3.next, next_length);
+ memmove(nexthash, nsec3.next, next_length);
dns_rdataset_disassociate(&rdataset);
/*
* If the NSEC3 is not for a unsecure delegation then
@@ -688,7 +688,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
rdataset.ttl, &rdata, &tuple));
CHECK(do_one_tuple(&tuple, db, version, diff));
INSIST(old_length <= sizeof(nexthash));
- memcpy(nexthash, old_next, old_length);
+ memmove(nexthash, old_next, old_length);
if (!CREATE(nsec3param->flags))
flags = nsec3.flags;
dns_rdata_reset(&rdata);
@@ -809,7 +809,7 @@ dns_nsec3_addnsec3(dns_db_t *db, dns_dbversion_t *version,
&tuple));
CHECK(do_one_tuple(&tuple, db, version, diff));
INSIST(old_length <= sizeof(nexthash));
- memcpy(nexthash, old_next, old_length);
+ memmove(nexthash, old_next, old_length);
if (!CREATE(nsec3param->flags))
flags = nsec3.flags;
dns_rdata_reset(&rdata);
@@ -958,7 +958,7 @@ dns_nsec3param_toprivate(dns_rdata_t *src, dns_rdata_t *target,
REQUIRE(DNS_RDATA_INITIALIZED(target));
- memcpy(buf + 1, src->data, src->length);
+ memmove(buf + 1, src->data, src->length);
buf[0] = 0;
target->data = buf;
target->length = src->length + 1;
@@ -1097,7 +1097,7 @@ dns_nsec3param_deletechains(dns_db_t *db, dns_dbversion_t *ver,
dns_rdata_reset(&rdata);
dns_rdataset_current(&rdataset, &rdata);
INSIST(rdata.length <= sizeof(buf));
- memcpy(buf, rdata.data, rdata.length);
+ memmove(buf, rdata.data, rdata.length);
/*
* Private NSEC3 record length >= 6.
@@ -1361,7 +1361,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
if (result == ISC_R_SUCCESS) {
next_length = nsec3.next_length;
INSIST(next_length <= sizeof(nexthash));
- memcpy(nexthash, nsec3.next, next_length);
+ memmove(nexthash, nsec3.next, next_length);
}
dns_rdataset_disassociate(&rdataset);
if (result == ISC_R_NOMORE)
@@ -1464,7 +1464,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name,
if (result == ISC_R_SUCCESS) {
next_length = nsec3.next_length;
INSIST(next_length <= sizeof(nexthash));
- memcpy(nexthash, nsec3.next, next_length);
+ memmove(nexthash, nsec3.next, next_length);
}
dns_rdataset_disassociate(&rdataset);
if (result == ISC_R_NOMORE)
diff --git a/lib/dns/opensslecdsa_link.c b/lib/dns/opensslecdsa_link.c
index 2a76c852..40081c2d 100644
--- a/lib/dns/opensslecdsa_link.c
+++ b/lib/dns/opensslecdsa_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2012-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -371,7 +371,7 @@ opensslecdsa_todns(const dst_key_t *key, isc_buffer_t *data) {
cp = buf;
if (!i2o_ECPublicKey(eckey, &cp))
DST_RET (dst__openssl_toresult(ISC_R_FAILURE));
- memcpy(r.base, buf + 1, len);
+ memmove(r.base, buf + 1, len);
isc_buffer_add(data, len);
ret = ISC_R_SUCCESS;
@@ -414,7 +414,7 @@ opensslecdsa_fromdns(dst_key_t *key, isc_buffer_t *data) {
return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
buf[0] = POINT_CONVERSION_UNCOMPRESSED;
- memcpy(buf + 1, r.base, len);
+ memmove(buf + 1, r.base, len);
cp = buf;
if (o2i_ECPublicKey(&eckey,
(const unsigned char **) &cp,
diff --git a/lib/dns/opensslgost_link.c b/lib/dns/opensslgost_link.c
index 74d86464..b0578661 100644
--- a/lib/dns/opensslgost_link.c
+++ b/lib/dns/opensslgost_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2010-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -253,7 +253,7 @@ opensslgost_todns(const dst_key_t *key, isc_buffer_t *data) {
len = i2d_PUBKEY(pkey, &p);
INSIST(len == sizeof(der));
INSIST(memcmp(gost_prefix, der, 37) == 0);
- memcpy(r.base, der + 37, 64);
+ memmove(r.base, der + 37, 64);
isc_buffer_add(data, 64);
return (ISC_R_SUCCESS);
@@ -272,8 +272,8 @@ opensslgost_fromdns(dst_key_t *key, isc_buffer_t *data) {
if (r.length != 64)
return (DST_R_INVALIDPUBLICKEY);
- memcpy(der, gost_prefix, 37);
- memcpy(der + 37, r.base, 64);
+ memmove(der, gost_prefix, 37);
+ memmove(der + 37, r.base, 64);
isc_buffer_forward(data, 64);
p = der;
diff --git a/lib/dns/opensslrsa_link.c b/lib/dns/opensslrsa_link.c
index d3454a5e..8421c640 100644
--- a/lib/dns/opensslrsa_link.c
+++ b/lib/dns/opensslrsa_link.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -481,7 +481,7 @@ opensslrsa_sign(dst_context_t *dctx, isc_buffer_t *sig) {
INSIST(prefixlen + digestlen <= sizeof(digest));
memmove(digest + prefixlen, digest, digestlen);
- memcpy(digest, prefix, prefixlen);
+ memmove(digest, prefix, prefixlen);
status = RSA_private_encrypt(digestlen + prefixlen,
digest, r.base, rsa,
RSA_PKCS1_PADDING);
diff --git a/lib/dns/portlist.c b/lib/dns/portlist.c
index 5bc89f48..754eef66 100644
--- a/lib/dns/portlist.c
+++ b/lib/dns/portlist.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -80,7 +80,7 @@ dns_portlist_create(isc_mem_t *mctx, dns_portlist_t **portlistp) {
portlist = isc_mem_get(mctx, sizeof(*portlist));
if (portlist == NULL)
return (ISC_R_NOMEMORY);
- result = isc_mutex_init(&portlist->lock);
+ result = isc_mutex_init(&portlist->lock);
if (result != ISC_R_SUCCESS) {
isc_mem_put(mctx, portlist, sizeof(*portlist));
return (result);
@@ -111,7 +111,7 @@ find_port(dns_element_t *list, unsigned int len, in_port_t port) {
for (;;) {
if (list[xtry].port == port)
return (&list[xtry]);
- if (port > list[xtry].port) {
+ if (port > list[xtry].port) {
if (xtry == max)
break;
min = xtry;
@@ -164,8 +164,8 @@ dns_portlist_add(dns_portlist_t *portlist, int af, in_port_t port) {
goto unlock;
}
if (portlist->list != NULL) {
- memcpy(el, portlist->list,
- portlist->allocated * sizeof(*el));
+ memmove(el, portlist->list,
+ portlist->allocated * sizeof(*el));
isc_mem_put(portlist->mctx, portlist->list,
portlist->allocated * sizeof(*el));
}
@@ -215,7 +215,7 @@ isc_boolean_t
dns_portlist_match(dns_portlist_t *portlist, int af, in_port_t port) {
dns_element_t *el;
isc_boolean_t result = ISC_FALSE;
-
+
REQUIRE(DNS_VALID_PORTLIST(portlist));
REQUIRE(af == AF_INET || af == AF_INET6);
LOCK(&portlist->lock);
@@ -227,7 +227,7 @@ dns_portlist_match(dns_portlist_t *portlist, int af, in_port_t port) {
if (af == AF_INET6 && (el->flags & DNS_PL_INET6) != 0)
result = ISC_TRUE;
}
- }
+ }
UNLOCK(&portlist->lock);
return (result);
}
diff --git a/lib/dns/rbt.c b/lib/dns/rbt.c
index 7381b4a3..d97fcce2 100644
--- a/lib/dns/rbt.c
+++ b/lib/dns/rbt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1479,8 +1479,8 @@ create_node(isc_mem_t *mctx, dns_name_t *name, dns_rbtnode_t **nodep) {
OLDOFFSETLEN(node) = OFFSETLEN(node) = labels;
ATTRS(node) = name->attributes;
- memcpy(NAME(node), region.base, region.length);
- memcpy(OFFSETS(node), name->offsets, labels);
+ memmove(NAME(node), region.base, region.length);
+ memmove(OFFSETS(node), name->offsets, labels);
#if DNS_RBT_USEMAGIC
node->magic = DNS_RBTNODE_MAGIC;
@@ -1841,7 +1841,7 @@ dns_rbt_deletefromlevel(dns_rbtnode_t *delete, dns_rbtnode_t **rootp) {
* information, which will be needed when linking up
* delete to the successor's old location.
*/
- memcpy(tmp, successor, sizeof(dns_rbtnode_t));
+ memmove(tmp, successor, sizeof(dns_rbtnode_t));
if (IS_ROOT(delete)) {
*rootp = successor;
diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c
index ebf04050..013bf34a 100644
--- a/lib/dns/rbtdb.c
+++ b/lib/dns/rbtdb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1121,8 +1121,8 @@ newversion(dns_db_t *db, dns_dbversion_t **versionp) {
version->hash = rbtdb->current_version->hash;
version->salt_length =
rbtdb->current_version->salt_length;
- memcpy(version->salt, rbtdb->current_version->salt,
- version->salt_length);
+ memmove(version->salt, rbtdb->current_version->salt,
+ version->salt_length);
} else {
version->flags = 0;
version->iterations = 0;
@@ -1706,8 +1706,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
nodelock = &rbtdb->node_locks[bucket];
+#define KEEP_NODE(n, r) \
+ ((n)->data != NULL || (n)->down != NULL || (n) == (r)->origin_node)
+
/* Handle easy and typical case first. */
- if (!node->dirty && (node->data != NULL || node->down != NULL)) {
+ if (!node->dirty && KEEP_NODE(node, rbtdb)) {
dns_rbtnode_refdecrement(node, &nrefs);
INSIST((int)nrefs >= 0);
if (nrefs == 0) {
@@ -1776,12 +1779,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
isc_refcount_decrement(&nodelock->references, &refs);
INSIST((int)refs >= 0);
- /*
- * XXXDCL should this only be done for cache zones?
- */
- if (node->data != NULL || node->down != NULL)
+ if (KEEP_NODE(node, rbtdb))
goto restore_locks;
+#undef KEEP_NODE
+
if (write_locked) {
/*
* We can now delete the node.
@@ -2127,8 +2129,8 @@ setnsec3parameters(dns_db_t *db, rbtdb_version_t *version) {
if (nsec3param.flags != 0)
continue;
- memcpy(version->salt, nsec3param.salt,
- nsec3param.salt_length);
+ memmove(version->salt, nsec3param.salt,
+ nsec3param.salt_length);
version->hash = nsec3param.hash;
version->salt_length = nsec3param.salt_length;
version->iterations = nsec3param.iterations;
@@ -4626,12 +4628,12 @@ rpz_findips(dns_rpz_zone_t *rpz, dns_rpz_type_t rpz_type,
switch (rdata.type) {
case dns_rdatatype_a:
INSIST(rdata.length == 4);
- memcpy(&ina.s_addr, rdata.data, 4);
+ memmove(&ina.s_addr, rdata.data, 4);
isc_netaddr_fromin(&netaddr, &ina);
break;
case dns_rdatatype_aaaa:
INSIST(rdata.length == 16);
- memcpy(in6a.s6_addr, rdata.data, 16);
+ memmove(in6a.s6_addr, rdata.data, 16);
isc_netaddr_fromin6(&netaddr, &in6a);
break;
default:
@@ -7278,7 +7280,8 @@ getnsec3parameters(dns_db_t *db, dns_dbversion_t *version, dns_hash_t *hash,
*hash = rbtversion->hash;
if (salt != NULL && salt_length != NULL) {
REQUIRE(*salt_length >= rbtversion->salt_length);
- memcpy(salt, rbtversion->salt, rbtversion->salt_length);
+ memmove(salt, rbtversion->salt,
+ rbtversion->salt_length);
}
if (salt_length != NULL)
*salt_length = rbtversion->salt_length;
diff --git a/lib/dns/rcode.c b/lib/dns/rcode.c
index 9dc80d50..69007f88 100644
--- a/lib/dns/rcode.c
+++ b/lib/dns/rcode.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -194,7 +194,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata.c b/lib/dns/rdata.c
index f3ed6259..5bdd1255 100644
--- a/lib/dns/rdata.c
+++ b/lib/dns/rdata.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -281,7 +281,7 @@ locator_pton(const char *src, unsigned char *dst) {
}
if (tp != endp)
return (0);
- memcpy(dst, tmp, NS_LOCATORSZ);
+ memmove(dst, tmp, NS_LOCATORSZ);
return (1);
}
@@ -322,7 +322,7 @@ mem_maybedup(isc_mem_t *mctx, void *source, size_t length) {
return (source);
new = isc_mem_allocate(mctx, length);
if (new != NULL)
- memcpy(new, source, length);
+ memmove(new, source, length);
return (new);
}
@@ -589,7 +589,7 @@ dns_rdata_towire(dns_rdata_t *rdata, dns_compress_t *cctx,
isc_buffer_availableregion(target, &tr);
if (tr.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, rdata->data, rdata->length);
+ memmove(tr.base, rdata->data, rdata->length);
isc_buffer_add(target, rdata->length);
return (ISC_R_SUCCESS);
}
@@ -1268,7 +1268,7 @@ txt_fromwire(isc_buffer_t *source, isc_buffer_t *target) {
return (ISC_R_NOSPACE);
if (tregion.base != sregion.base)
- memcpy(tregion.base, sregion.base, n);
+ memmove(tregion.base, sregion.base, n);
isc_buffer_forward(source, n);
isc_buffer_add(target, n);
return (ISC_R_SUCCESS);
@@ -1418,7 +1418,7 @@ multitxt_fromwire(isc_buffer_t *source, isc_buffer_t *target) {
return (ISC_R_NOSPACE);
if (tregion.base != sregion.base)
- memcpy(tregion.base, sregion.base, n);
+ memmove(tregion.base, sregion.base, n);
isc_buffer_forward(source, n);
isc_buffer_add(target, n);
isc_buffer_activeregion(source, &sregion);
@@ -1469,7 +1469,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -1595,7 +1595,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
if (length > tr.length)
return (ISC_R_NOSPACE);
if (tr.base != base)
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/ch_3/a_1.c b/lib/dns/rdata/ch_3/a_1.c
index e3f98106..d25fcb50 100644
--- a/lib/dns/rdata/ch_3/a_1.c
+++ b/lib/dns/rdata/ch_3/a_1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -117,7 +117,7 @@ fromwire_ch_a(ARGS_FROMWIRE) {
if (tregion.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 2);
+ memmove(tregion.base, sregion.base, 2);
isc_buffer_forward(source, 2);
isc_buffer_add(target, 2);
@@ -149,7 +149,7 @@ towire_ch_a(ARGS_TOWIRE) {
if (tregion.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 2);
+ memmove(tregion.base, sregion.base, 2);
isc_buffer_add(target, 2);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/afsdb_18.c b/lib/dns/rdata/generic/afsdb_18.c
index 279f86c6..af95fa12 100644
--- a/lib/dns/rdata/generic/afsdb_18.c
+++ b/lib/dns/rdata/generic/afsdb_18.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -113,7 +113,7 @@ fromwire_afsdb(ARGS_FROMWIRE) {
return (ISC_R_NOSPACE);
if (sr.length < 2)
return (ISC_R_UNEXPECTEDEND);
- memcpy(tr.base, sr.base, 2);
+ memmove(tr.base, sr.base, 2);
isc_buffer_forward(source, 2);
isc_buffer_add(target, 2);
return (dns_name_fromwire(&name, source, dctx, options, target));
@@ -134,7 +134,7 @@ towire_afsdb(ARGS_TOWIRE) {
dns_rdata_toregion(rdata, &sr);
if (tr.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tr.base, sr.base, 2);
+ memmove(tr.base, sr.base, 2);
isc_region_consume(&sr, 2);
isc_buffer_add(target, 2);
diff --git a/lib/dns/rdata/generic/eui48_108.c b/lib/dns/rdata/generic/eui48_108.c
index 3e52fec0..b25a7b7e 100644
--- a/lib/dns/rdata/generic/eui48_108.c
+++ b/lib/dns/rdata/generic/eui48_108.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -142,7 +142,7 @@ tostruct_eui48(ARGS_TOSTRUCT) {
eui48->common.rdtype = rdata->type;
ISC_LINK_INIT(&eui48->common, link);
- memcpy(eui48->eui48, rdata->data, rdata->length);
+ memmove(eui48->eui48, rdata->data, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/eui64_109.c b/lib/dns/rdata/generic/eui64_109.c
index 245994fd..33d2f637 100644
--- a/lib/dns/rdata/generic/eui64_109.c
+++ b/lib/dns/rdata/generic/eui64_109.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -147,7 +147,7 @@ tostruct_eui64(ARGS_TOSTRUCT) {
eui64->common.rdtype = rdata->type;
ISC_LINK_INIT(&eui64->common, link);
- memcpy(eui64->eui64, rdata->data, rdata->length);
+ memmove(eui64->eui64, rdata->data, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/ipseckey_45.c b/lib/dns/rdata/generic/ipseckey_45.c
index 1d2508c4..230d0d1e 100644
--- a/lib/dns/rdata/generic/ipseckey_45.c
+++ b/lib/dns/rdata/generic/ipseckey_45.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -87,7 +87,7 @@ fromtext_ipseckey(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
break;
@@ -97,7 +97,7 @@ fromtext_ipseckey(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 16)
return (ISC_R_NOSPACE);
- memcpy(region.base, addr6, 16);
+ memmove(region.base, addr6, 16);
isc_buffer_add(target, 16);
break;
@@ -364,7 +364,7 @@ tostruct_ipseckey(ARGS_TOSTRUCT) {
break;
case 2:
- memcpy(ipseckey->in6_addr.s6_addr, region.base, 16);
+ memmove(ipseckey->in6_addr.s6_addr, region.base, 16);
isc_region_consume(&region, 16);
break;
diff --git a/lib/dns/rdata/generic/l32_105.c b/lib/dns/rdata/generic/l32_105.c
index 763ddb95..d191624e 100644
--- a/lib/dns/rdata/generic/l32_105.c
+++ b/lib/dns/rdata/generic/l32_105.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -51,7 +51,7 @@ fromtext_l32(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/l64_106.c b/lib/dns/rdata/generic/l64_106.c
index ff206633..d811d29a 100644
--- a/lib/dns/rdata/generic/l64_106.c
+++ b/lib/dns/rdata/generic/l64_106.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -155,7 +155,7 @@ tostruct_l64(ARGS_TOSTRUCT) {
dns_rdata_toregion(rdata, &region);
l64->pref = uint16_fromregion(&region);
- memcpy(l64->l64, region.base, region.length);
+ memmove(l64->l64, region.base, region.length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/nid_104.c b/lib/dns/rdata/generic/nid_104.c
index c96b0bf9..39f16ed6 100644
--- a/lib/dns/rdata/generic/nid_104.c
+++ b/lib/dns/rdata/generic/nid_104.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -155,7 +155,7 @@ tostruct_nid(ARGS_TOSTRUCT) {
dns_rdata_toregion(rdata, &region);
nid->pref = uint16_fromregion(&region);
- memcpy(nid->nid, region.base, region.length);
+ memmove(nid->nid, region.base, region.length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/opt_41.c b/lib/dns/rdata/generic/opt_41.c
index b64a6234..bd2adb5f 100644
--- a/lib/dns/rdata/generic/opt_41.c
+++ b/lib/dns/rdata/generic/opt_41.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -162,7 +162,7 @@ fromwire_opt(ARGS_FROMWIRE) {
isc_buffer_availableregion(target, &tregion);
if (tregion.length < total)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, total);
+ memmove(tregion.base, sregion.base, total);
isc_buffer_forward(source, total);
isc_buffer_add(target, total);
diff --git a/lib/dns/rdata/generic/rt_21.c b/lib/dns/rdata/generic/rt_21.c
index 8f71a2af..86fe2480 100644
--- a/lib/dns/rdata/generic/rt_21.c
+++ b/lib/dns/rdata/generic/rt_21.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -109,7 +109,7 @@ fromwire_rt(ARGS_FROMWIRE) {
return (ISC_R_NOSPACE);
if (sregion.length < 2)
return (ISC_R_UNEXPECTEDEND);
- memcpy(tregion.base, sregion.base, 2);
+ memmove(tregion.base, sregion.base, 2);
isc_buffer_forward(source, 2);
isc_buffer_add(target, 2);
return (dns_name_fromwire(&name, source, dctx, options, target));
@@ -130,7 +130,7 @@ towire_rt(ARGS_TOWIRE) {
dns_rdata_toregion(rdata, &region);
if (tr.length < 2)
return (ISC_R_NOSPACE);
- memcpy(tr.base, region.base, 2);
+ memmove(tr.base, region.base, 2);
isc_region_consume(&region, 2);
isc_buffer_add(target, 2);
diff --git a/lib/dns/rdata/generic/soa_6.c b/lib/dns/rdata/generic/soa_6.c
index ac0a38f7..fe67d76f 100644
--- a/lib/dns/rdata/generic/soa_6.c
+++ b/lib/dns/rdata/generic/soa_6.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -186,7 +186,7 @@ fromwire_soa(ARGS_FROMWIRE) {
if (tregion.length < 20)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 20);
+ memmove(tregion.base, sregion.base, 20);
isc_buffer_forward(source, 20);
isc_buffer_add(target, 20);
@@ -224,7 +224,7 @@ towire_soa(ARGS_TOWIRE) {
if (tregion.length < 20)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 20);
+ memmove(tregion.base, sregion.base, 20);
isc_buffer_add(target, 20);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/spf_99.c b/lib/dns/rdata/generic/spf_99.c
index 492e315d..c7cdfc9f 100644
--- a/lib/dns/rdata/generic/spf_99.c
+++ b/lib/dns/rdata/generic/spf_99.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -103,7 +103,7 @@ towire_spf(ARGS_TOWIRE) {
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/txt_16.c b/lib/dns/rdata/generic/txt_16.c
index e1bce6a0..76109251 100644
--- a/lib/dns/rdata/generic/txt_16.c
+++ b/lib/dns/rdata/generic/txt_16.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -110,7 +110,7 @@ towire_txt(ARGS_TOWIRE) {
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, rdata->length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/hs_4/a_1.c b/lib/dns/rdata/hs_4/a_1.c
index 50ae25d5..5f8a8750 100644
--- a/lib/dns/rdata/hs_4/a_1.c
+++ b/lib/dns/rdata/hs_4/a_1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -48,7 +48,7 @@ fromtext_hs_a(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
@@ -87,7 +87,7 @@ fromwire_hs_a(ARGS_FROMWIRE) {
if (tregion.length < 4)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 4);
+ memmove(tregion.base, sregion.base, 4);
isc_buffer_forward(source, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
@@ -106,7 +106,7 @@ towire_hs_a(ARGS_TOWIRE) {
isc_buffer_availableregion(target, &region);
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/in_1/a6_38.c b/lib/dns/rdata/in_1/a6_38.c
index 8619f8a2..b6ef6887 100644
--- a/lib/dns/rdata/in_1/a6_38.c
+++ b/lib/dns/rdata/in_1/a6_38.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -122,7 +122,7 @@ totext_in_a6(ARGS_TOTEXT) {
if (prefixlen != 128) {
octets = prefixlen/8;
memset(addr, 0, sizeof(addr));
- memcpy(&addr[octets], sr.base, 16 - octets);
+ memmove(&addr[octets], sr.base, 16 - octets);
mask = 0xff >> (prefixlen % 8);
addr[octets] &= mask;
ar.base = addr;
@@ -347,7 +347,7 @@ tostruct_in_a6(ARGS_TOSTRUCT) {
if (a6->prefixlen != 128) {
octets = 16 - a6->prefixlen / 8;
INSIST(r.length >= octets);
- memcpy(a6->in6_addr.s6_addr + 16 - octets, r.base, octets);
+ memmove(a6->in6_addr.s6_addr + 16 - octets, r.base, octets);
isc_region_consume(&r, octets);
}
diff --git a/lib/dns/rdata/in_1/a_1.c b/lib/dns/rdata/in_1/a_1.c
index 902932e0..fcdcaae0 100644
--- a/lib/dns/rdata/in_1/a_1.c
+++ b/lib/dns/rdata/in_1/a_1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -50,7 +50,7 @@ fromtext_in_a(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
@@ -89,7 +89,7 @@ fromwire_in_a(ARGS_FROMWIRE) {
if (tregion.length < 4)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 4);
+ memmove(tregion.base, sregion.base, 4);
isc_buffer_forward(source, 4);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
@@ -108,7 +108,7 @@ towire_in_a(ARGS_TOWIRE) {
isc_buffer_availableregion(target, &region);
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, 4);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/in_1/aaaa_28.c b/lib/dns/rdata/in_1/aaaa_28.c
index 5aa59b2c..3f88c4db 100644
--- a/lib/dns/rdata/in_1/aaaa_28.c
+++ b/lib/dns/rdata/in_1/aaaa_28.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -51,7 +51,7 @@ fromtext_in_aaaa(ARGS_FROMTEXT) {
isc_buffer_availableregion(target, &region);
if (region.length < 16)
return (ISC_R_NOSPACE);
- memcpy(region.base, addr, 16);
+ memmove(region.base, addr, 16);
isc_buffer_add(target, 16);
return (ISC_R_SUCCESS);
}
@@ -90,7 +90,7 @@ fromwire_in_aaaa(ARGS_FROMWIRE) {
if (tregion.length < 16)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, 16);
+ memmove(tregion.base, sregion.base, 16);
isc_buffer_forward(source, 16);
isc_buffer_add(target, 16);
return (ISC_R_SUCCESS);
@@ -109,7 +109,7 @@ towire_in_aaaa(ARGS_TOWIRE) {
isc_buffer_availableregion(target, &region);
if (region.length < rdata->length)
return (ISC_R_NOSPACE);
- memcpy(region.base, rdata->data, rdata->length);
+ memmove(region.base, rdata->data, rdata->length);
isc_buffer_add(target, 16);
return (ISC_R_SUCCESS);
}
@@ -165,7 +165,7 @@ tostruct_in_aaaa(ARGS_TOSTRUCT) {
dns_rdata_toregion(rdata, &r);
INSIST(r.length == 16);
- memcpy(aaaa->in6_addr.s6_addr, r.base, 16);
+ memmove(aaaa->in6_addr.s6_addr, r.base, 16);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/in_1/apl_42.c b/lib/dns/rdata/in_1/apl_42.c
index eb927b92..94133bae 100644
--- a/lib/dns/rdata/in_1/apl_42.c
+++ b/lib/dns/rdata/in_1/apl_42.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -148,7 +148,7 @@ totext_in_apl(ARGS_TOTEXT) {
INSIST(len <= 4);
INSIST(prefix <= 32);
memset(buf, 0, sizeof(buf));
- memcpy(buf, sr.base, len);
+ memmove(buf, sr.base, len);
RETERR(inet_totext(AF_INET, &ir, target));
break;
@@ -156,7 +156,7 @@ totext_in_apl(ARGS_TOTEXT) {
INSIST(len <= 16);
INSIST(prefix <= 128);
memset(buf, 0, sizeof(buf));
- memcpy(buf, sr.base, len);
+ memmove(buf, sr.base, len);
RETERR(inet_totext(AF_INET6, &ir, target));
break;
diff --git a/lib/dns/rdata/in_1/wks_11.c b/lib/dns/rdata/in_1/wks_11.c
index 12cd4a13..4587c813 100644
--- a/lib/dns/rdata/in_1/wks_11.c
+++ b/lib/dns/rdata/in_1/wks_11.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -98,7 +98,7 @@ fromtext_in_wks(ARGS_FROMTEXT) {
RETTOK(DNS_R_BADDOTTEDQUAD);
if (region.length < 4)
return (ISC_R_NOSPACE);
- memcpy(region.base, &addr, 4);
+ memmove(region.base, &addr, 4);
isc_buffer_add(target, 4);
/*
@@ -222,7 +222,7 @@ fromwire_in_wks(ARGS_FROMWIRE) {
if (tr.length < sr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, sr.base, sr.length);
+ memmove(tr.base, sr.base, sr.length);
isc_buffer_add(target, sr.length);
isc_buffer_forward(source, sr.length);
diff --git a/lib/dns/rdataslab.c b/lib/dns/rdataslab.c
index c53c24c2..1c02b602 100644
--- a/lib/dns/rdataslab.c
+++ b/lib/dns/rdataslab.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -318,7 +318,7 @@ dns_rdataslab_fromrdataset(dns_rdataset_t *rdataset, isc_mem_t *mctx,
*rawbuf++ |= (x[i].rdata.flags & DNS_RDATA_OFFLINE) ?
DNS_RDATASLAB_OFFLINE : 0;
}
- memcpy(rawbuf, x[i].rdata.data, x[i].rdata.length);
+ memmove(rawbuf, x[i].rdata.data, x[i].rdata.length);
rawbuf += x[i].rdata.length;
}
@@ -711,7 +711,7 @@ dns_rdataslab_merge(unsigned char *oslab, unsigned char *nslab,
tstart = isc_mem_get(mctx, tlength);
if (tstart == NULL)
return (ISC_R_NOMEMORY);
- memcpy(tstart, nslab, reservelen);
+ memmove(tstart, nslab, reservelen);
tcurrent = tstart + reservelen;
#if DNS_RDATASET_FIXED
offsetbase = tcurrent;
@@ -790,7 +790,7 @@ dns_rdataslab_merge(unsigned char *oslab, unsigned char *nslab,
#if DNS_RDATASET_FIXED
tcurrent += 2; /* fill in later */
#endif
- memcpy(tcurrent, data, length);
+ memmove(tcurrent, data, length);
tcurrent += length;
oadded++;
if (oadded < ocount) {
@@ -817,7 +817,7 @@ dns_rdataslab_merge(unsigned char *oslab, unsigned char *nslab,
#if DNS_RDATASET_FIXED
tcurrent += 2; /* fill in later */
#endif
- memcpy(tcurrent, data, length);
+ memmove(tcurrent, data, length);
tcurrent += length;
nadded++;
if (nadded < ncount) {
@@ -949,7 +949,7 @@ dns_rdataslab_subtract(unsigned char *mslab, unsigned char *sslab,
tstart = isc_mem_get(mctx, tlength);
if (tstart == NULL)
return (ISC_R_NOMEMORY);
- memcpy(tstart, mslab, reservelen);
+ memmove(tstart, mslab, reservelen);
tcurrent = tstart + reservelen;
#if DNS_RDATASET_FIXED
offsetbase = tcurrent;
@@ -1005,7 +1005,7 @@ dns_rdataslab_subtract(unsigned char *mslab, unsigned char *sslab,
#if DNS_RDATASET_FIXED
offsettable[order] = tcurrent - offsetbase;
#endif
- memcpy(tcurrent, mrdatabegin, length);
+ memmove(tcurrent, mrdatabegin, length);
tcurrent += length;
}
dns_rdata_reset(&mrdata);
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index 8aae371e..2e60cd84 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -3615,12 +3615,14 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type,
*/
if (dns_rdatatype_atparent(fctx->type))
findoptions |= DNS_DBFIND_NOEXACT;
- result = dns_view_findzonecut(res->view, name, domain,
- 0, findoptions, ISC_TRUE,
+ result = dns_view_findzonecut(res->view, fwdname,
+ domain, 0, findoptions,
+ ISC_TRUE,
&fctx->nameservers,
NULL);
if (result != ISC_R_SUCCESS)
goto cleanup_name;
+
result = dns_name_dup(domain, mctx, &fctx->domain);
if (result != ISC_R_SUCCESS) {
dns_rdataset_disassociate(&fctx->nameservers);
@@ -5444,11 +5446,11 @@ is_answeraddress_allowed(dns_view_t *view, dns_name_t *name,
dns_rdataset_current(rdataset, &rdata);
if (rdataset->type == dns_rdatatype_a) {
INSIST(rdata.length == sizeof(ina.s_addr));
- memcpy(&ina.s_addr, rdata.data, sizeof(ina.s_addr));
+ memmove(&ina.s_addr, rdata.data, sizeof(ina.s_addr));
isc_netaddr_fromin(&netaddr, &ina);
} else {
INSIST(rdata.length == sizeof(in6a.s6_addr));
- memcpy(in6a.s6_addr, rdata.data, sizeof(in6a.s6_addr));
+ memmove(in6a.s6_addr, rdata.data, sizeof(in6a.s6_addr));
isc_netaddr_fromin6(&netaddr, &in6a);
}
@@ -7312,9 +7314,12 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
* NXDOMAIN, NXRDATASET, or referral.
*/
result = noanswer_response(fctx, NULL, 0);
- if (result == DNS_R_CHASEDSSERVERS) {
- } else if (result == DNS_R_DELEGATION) {
- force_referral:
+ switch (result) {
+ case ISC_R_SUCCESS:
+ case DNS_R_CHASEDSSERVERS:
+ break;
+ case DNS_R_DELEGATION:
+ force_referral:
/*
* We don't have the answer, but we know a better
* place to look.
@@ -7339,7 +7344,8 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
fctx->adberr = 0;
result = ISC_R_SUCCESS;
- } else if (result != ISC_R_SUCCESS) {
+ break;
+ default:
/*
* Something has gone wrong.
*/
@@ -8849,7 +8855,7 @@ dns_resolver_disable_algorithm(dns_resolver_t *resolver, dns_name_t *name,
}
memset(new, 0, len);
if (algorithms != NULL)
- memcpy(new, algorithms, *algorithms);
+ memmove(new, algorithms, *algorithms);
new[len-1] |= mask;
*new = len;
node->data = new;
diff --git a/lib/dns/rpz.c b/lib/dns/rpz.c
index 2d689e7b..f617fe7b 100644
--- a/lib/dns/rpz.c
+++ b/lib/dns/rpz.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -1115,7 +1115,7 @@ dns_rpz_cidr_find(dns_rpz_cidr_t *cidr, const isc_netaddr_t *netaddr,
* one could cast netaddr->type.in6 to dns_rpz_cidr_key_t *,
* but there are objections.
*/
- memcpy(src_ip6.w, &netaddr->type.in6, sizeof(src_ip6.w));
+ memmove(src_ip6.w, &netaddr->type.in6, sizeof(src_ip6.w));
for (i = 0; i < 4; i++) {
tgt_ip.w[i] = ntohl(src_ip6.w[i]);
}
diff --git a/lib/dns/rrl.c b/lib/dns/rrl.c
index 96c55fef..02554e9a 100644
--- a/lib/dns/rrl.c
+++ b/lib/dns/rrl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -439,8 +439,8 @@ make_key(const dns_rrl_t *rrl, dns_rrl_key_t *key,
break;
case AF_INET6:
key->s.ipv6 = ISC_TRUE;
- memcpy(key->s.ip, &client_addr->type.sin6.sin6_addr,
- sizeof(key->s.ip));
+ memmove(key->s.ip, &client_addr->type.sin6.sin6_addr,
+ sizeof(key->s.ip));
for (i = 0; i < DNS_RRL_MAX_PREFIX/32; ++i)
key->s.ip[i] &= rrl->ipv6_mask[i];
break;
@@ -776,7 +776,7 @@ add_log_str(isc_buffer_t *lb, const char *str, unsigned int str_len) {
return;
str_len = region.length;
}
- memcpy(region.base, str, str_len);
+ memmove(region.base, str, str_len);
isc_buffer_add(lb, str_len);
}
@@ -863,7 +863,7 @@ make_log_buf(dns_rrl_t *rrl, dns_rrl_entry_t *e,
snprintf(strbuf, sizeof(strbuf), "/%d", rrl->ipv6_prefixlen);
cidr.family = AF_INET6;
memset(&cidr.type.in6, 0, sizeof(cidr.type.in6));
- memcpy(&cidr.type.in6, e->key.s.ip, sizeof(e->key.s.ip));
+ memmove(&cidr.type.in6, e->key.s.ip, sizeof(e->key.s.ip));
} else {
snprintf(strbuf, sizeof(strbuf), "/%d", rrl->ipv4_prefixlen);
cidr.family = AF_INET;
diff --git a/lib/dns/spnego.c b/lib/dns/spnego.c
index b6c9e2a3..2da79f8b 100644
--- a/lib/dns/spnego.c
+++ b/lib/dns/spnego.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -463,7 +463,7 @@ code_NegTokenArg(OM_uint32 * minor_status,
free(buf);
return (GSS_S_FAILURE);
}
- memcpy(*outbuf, buf + buf_size - buf_len, buf_len);
+ memmove(*outbuf, buf + buf_size - buf_len, buf_len);
*outbuf_size = buf_len;
free(buf);
@@ -856,7 +856,7 @@ der_get_octet_string(const unsigned char *p, size_t len,
data->data = malloc(len);
if (data->data == NULL)
return (ENOMEM);
- memcpy(data->data, p, len);
+ memmove(data->data, p, len);
} else
data->data = NULL;
if (size)
@@ -1217,7 +1217,7 @@ der_put_octet_string(unsigned char *p, size_t len,
p -= data->length;
len -= data->length;
POST(len);
- memcpy(p + 1, data->data, data->length);
+ memmove(p + 1, data->data, data->length);
*size = data->length;
return (0);
}
@@ -1397,7 +1397,7 @@ gssapi_mech_make_header(u_char *p,
p += len_len;
*p++ = 0x06;
*p++ = mech->length;
- memcpy(p, mech->elements, mech->length);
+ memmove(p, mech->elements, mech->length);
p += mech->length;
return (p);
}
@@ -1430,7 +1430,7 @@ gssapi_spnego_encapsulate(OM_uint32 * minor_status,
gss_release_buffer(minor_status, output_token);
return (GSS_S_FAILURE);
}
- memcpy(p, buf, buf_size);
+ memmove(p, buf, buf_size);
return (GSS_S_COMPLETE);
}
diff --git a/lib/dns/ssu.c b/lib/dns/ssu.c
index 49a777a6..7adb769c 100644
--- a/lib/dns/ssu.c
+++ b/lib/dns/ssu.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2010, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2010, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -217,7 +217,7 @@ dns_ssutable_addrule(dns_ssutable_t *table, isc_boolean_t grant,
result = ISC_R_NOMEMORY;
goto failure;
}
- memcpy(rule->types, types, ntypes * sizeof(dns_rdatatype_t));
+ memmove(rule->types, types, ntypes * sizeof(dns_rdatatype_t));
} else
rule->types = NULL;
diff --git a/lib/dns/tests/Makefile.in b/lib/dns/tests/Makefile.in
index db474763..fb4452af 100644
--- a/lib/dns/tests/Makefile.in
+++ b/lib/dns/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -37,17 +37,36 @@ DNSDEPLIBS = ../libdns.@A@
LIBS = @LIBS@ @ATFLIBS@
OBJS = dnstest.@O@
-SRCS = dnstest.c master_test.c dbiterator_test.c time_test.c \
- private_test.c update_test.c zonemgr_test.c zt_test.c \
- dbdiff_test.c dispatch_test.c nsec3_test.c \
- rdataset_test.c rdata_test.c
+SRCS = db_test.c \
+ dbdiff_test.c \
+ dbiterator_test.c \
+ dispatch_test.c \
+ dnstest.c \
+ master_test.c \
+ nsec3_test.c \
+ private_test.c \
+ rdata_test.c \
+ rdataset_test.c \
+ time_test.c \
+ update_test.c \
+ zonemgr_test.c \
+ zt_test.c
SUBDIRS =
-TARGETS = master_test@EXEEXT@ dbiterator_test@EXEEXT@ time_test@EXEEXT@ \
- private_test@EXEEXT@ update_test@EXEEXT@ zonemgr_test@EXEEXT@ \
- zt_test@EXEEXT@ dbversion_test@EXEEXT@ dbdiff_test@EXEEXT@ \
- dispatch_test@EXEEXT@ nsec3_test@EXEEXT@ \
- rdataset_test@EXEEXT@ rdata_test@EXEEXT@
+TARGETS = db_test@EXEEXT@ \
+ dbdiff_test@EXEEXT@ \
+ dbiterator_test@EXEEXT@ \
+ dbversion_test@EXEEXT@ \
+ dispatch_test@EXEEXT@ \
+ master_test@EXEEXT@ \
+ nsec3_test@EXEEXT@ \
+ private_test@EXEEXT@ \
+ rdata_test@EXEEXT@ \
+ rdataset_test@EXEEXT@ \
+ time_test@EXEEXT@ \
+ update_test@EXEEXT@ \
+ zonemgr_test@EXEEXT@ \
+ zt_test@EXEEXT@
@BIND9_MAKE_RULES@
@@ -123,6 +142,11 @@ dispatch_test@EXEEXT@: dispatch_test.@O@ dnstest.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
dispatch_test.@O@ dnstest.@O@ ${DNSLIBS} \
${ISCLIBS} ${LIBS}
+db_test@EXEEXT@: db_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
+ db_test.@O@ ${DNSLIBS} \
+ ${ISCLIBS} ${LIBS}
+
unit::
sh ${top_srcdir}/unit/unittest.sh
diff --git a/lib/dns/tests/db_test.c b/lib/dns/tests/db_test.c
new file mode 100644
index 00000000..fc4b3c87
--- /dev/null
+++ b/lib/dns/tests/db_test.c
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id$ */
+
+/*! \file */
+
+#include <config.h>
+
+#include <atf-c.h>
+
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <dns/db.h>
+#include <dns/dbiterator.h>
+#include <dns/name.h>
+#include <dns/journal.h>
+
+#include "dnstest.h"
+
+/*
+ * Helper functions
+ */
+
+#define BUFLEN 255
+#define BIGBUFLEN (64 * 1024)
+#define TEST_ORIGIN "test"
+
+/*
+ * Individual unit tests
+ */
+
+ATF_TC(getoriginnode);
+ATF_TC_HEAD(getoriginnode, tc) {
+ atf_tc_set_md_var(tc, "descr",
+ "test multiple calls to dns_db_getoriginnode");
+}
+ATF_TC_BODY(getoriginnode, tc) {
+ dns_db_t *db = NULL;
+ dns_dbnode_t *node = NULL;
+ isc_mem_t *mctx = NULL;
+ isc_result_t result;
+
+ result = isc_mem_create(0, 0, &mctx);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ result = isc_hash_create(mctx, NULL, 256);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ result = dns_db_create(mctx, "rbt", dns_rootname, dns_dbtype_zone,
+ dns_rdataclass_in, 0, NULL, &db);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ result = dns_db_getoriginnode(db, &node);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ dns_db_detachnode(db, &node);
+
+ result = dns_db_getoriginnode(db, &node);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ dns_db_detachnode(db, &node);
+
+ dns_db_detach(&db);
+ isc_mem_detach(&mctx);
+}
+
+/*
+ * Main
+ */
+ATF_TP_ADD_TCS(tp) {
+ ATF_TP_ADD_TC(tp, getoriginnode);
+ return (atf_no_error());
+}
diff --git a/lib/dns/time.c b/lib/dns/time.c
index 0f245a24..d331ca3b 100644
--- a/lib/dns/time.c
+++ b/lib/dns/time.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -98,7 +98,7 @@ dns_time64_totext(isc_int64_t t, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, buf, l);
+ memmove(region.base, buf, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/tkey.c b/lib/dns/tkey.c
index 161c1880..11b4f49e 100644
--- a/lib/dns/tkey.c
+++ b/lib/dns/tkey.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -152,7 +152,7 @@ add_rdata_to_list(dns_message_t *msg, dns_name_t *name, dns_rdata_t *rdata,
dns_rdata_toregion(rdata, &r);
RETERR(isc_buffer_allocate(msg->mctx, &tmprdatabuf, r.length));
isc_buffer_availableregion(tmprdatabuf, &newr);
- memcpy(newr.base, r.base, r.length);
+ memmove(newr.base, r.base, r.length);
dns_rdata_fromregion(newrdata, rdata->rdclass, rdata->type, &newr);
dns_message_takebuffer(msg, &tmprdatabuf);
@@ -252,12 +252,12 @@ compute_secret(isc_buffer_t *shared, isc_region_t *queryrandomness,
if (r.length < sizeof(digests) || r.length < r2.length)
return (ISC_R_NOSPACE);
if (r2.length > sizeof(digests)) {
- memcpy(r.base, r2.base, r2.length);
+ memmove(r.base, r2.base, r2.length);
for (i = 0; i < sizeof(digests); i++)
r.base[i] ^= digests[i];
isc_buffer_add(secret, r2.length);
} else {
- memcpy(r.base, digests, sizeof(digests));
+ memmove(r.base, digests, sizeof(digests));
for (i = 0; i < r2.length; i++)
r.base[i] ^= r2.base[i];
isc_buffer_add(secret, sizeof(digests));
@@ -534,7 +534,7 @@ process_gsstkey(dns_name_t *name, dns_rdata_tkey_t *tkeyin,
goto failure;
}
tkeyout->keylen = isc_buffer_usedlength(outtoken);
- memcpy(tkeyout->key, isc_buffer_base(outtoken),
+ memmove(tkeyout->key, isc_buffer_base(outtoken),
isc_buffer_usedlength(outtoken));
isc_buffer_free(&outtoken);
} else {
@@ -544,7 +544,7 @@ process_gsstkey(dns_name_t *name, dns_rdata_tkey_t *tkeyin,
goto failure;
}
tkeyout->keylen = tkeyin->keylen;
- memcpy(tkeyout->key, tkeyin->key, tkeyin->keylen);
+ memmove(tkeyout->key, tkeyin->key, tkeyin->keylen);
}
tkeyout->error = dns_rcode_noerror;
diff --git a/lib/dns/tsig.c b/lib/dns/tsig.c
index c7768f4c..00ab570d 100644
--- a/lib/dns/tsig.c
+++ b/lib/dns/tsig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1370,21 +1370,21 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg,
* Extract the header.
*/
isc_buffer_usedregion(source, &r);
- memcpy(header, r.base, DNS_MESSAGE_HEADERLEN);
+ memmove(header, r.base, DNS_MESSAGE_HEADERLEN);
isc_region_consume(&r, DNS_MESSAGE_HEADERLEN);
/*
* Decrement the additional field counter.
*/
- memcpy(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
+ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
addcount = htons((isc_uint16_t)(ntohs(addcount) - 1));
- memcpy(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
+ memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
/*
* Put in the original id.
*/
id = htons(tsig.originalid);
- memcpy(&header[0], &id, 2);
+ memmove(&header[0], &id, 2);
/*
* Digest the modified header.
@@ -1609,16 +1609,16 @@ tsig_verify_tcp(isc_buffer_t *source, dns_message_t *msg) {
* Extract the header.
*/
isc_buffer_usedregion(source, &r);
- memcpy(header, r.base, DNS_MESSAGE_HEADERLEN);
+ memmove(header, r.base, DNS_MESSAGE_HEADERLEN);
isc_region_consume(&r, DNS_MESSAGE_HEADERLEN);
/*
* Decrement the additional field counter if necessary.
*/
if (has_tsig) {
- memcpy(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
+ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2);
addcount = htons((isc_uint16_t)(ntohs(addcount) - 1));
- memcpy(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
+ memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2);
}
/*
@@ -1627,7 +1627,7 @@ tsig_verify_tcp(isc_buffer_t *source, dns_message_t *msg) {
/* XXX Can TCP transfers be forwarded? How would that work? */
if (has_tsig) {
id = htons(tsig.originalid);
- memcpy(&header[0], &id, 2);
+ memmove(&header[0], &id, 2);
}
/*
diff --git a/lib/dns/ttl.c b/lib/dns/ttl.c
index d33f0b4d..c7948590 100644
--- a/lib/dns/ttl.c
+++ b/lib/dns/ttl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -68,7 +68,7 @@ ttlfmt(unsigned int t, const char *s, isc_boolean_t verbose,
isc_buffer_availableregion(target, &region);
if (len > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, tmp, len);
+ memmove(region.base, tmp, len);
isc_buffer_add(target, len);
return (ISC_R_SUCCESS);
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
index f4dd2a3d..01ff97b1 100644
--- a/lib/dns/zone.c
+++ b/lib/dns/zone.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -2517,7 +2517,7 @@ isspf(const dns_rdata_t *rdata) {
INSIST(tl <= rdl);
if (len > sizeof(buf) - i - 1)
len = sizeof(buf) - i - 1;
- memcpy(buf + i, data, len);
+ memmove(buf + i, data, len);
i += len;
data += tl;
rdl -= tl;
@@ -2874,7 +2874,7 @@ zone_addnsec3chain(dns_zone_t *zone, dns_rdata_nsec3param_t *nsec3param) {
nsec3chain->nsec3param.iterations = nsec3param->iterations;
nsec3chain->nsec3param.flags = nsec3param->flags;
nsec3chain->nsec3param.salt_length = nsec3param->salt_length;
- memcpy(nsec3chain->salt, nsec3param->salt, nsec3param->salt_length);
+ memmove(nsec3chain->salt, nsec3param->salt, nsec3param->salt_length);
nsec3chain->nsec3param.salt = nsec3chain->salt;
nsec3chain->seen_nsec = ISC_FALSE;
nsec3chain->delete_nsec = ISC_FALSE;
@@ -4979,7 +4979,7 @@ set_addrkeylist(unsigned int count,
newaddrs = isc_mem_get(mctx, count * sizeof(*newaddrs));
if (newaddrs == NULL)
return (ISC_R_NOMEMORY);
- memcpy(newaddrs, addrs, count * sizeof(*newaddrs));
+ memmove(newaddrs, addrs, count * sizeof(*newaddrs));
newnames = NULL;
if (names != NULL) {
diff --git a/lib/export/samples/nsprobe.c b/lib/export/samples/nsprobe.c
index 1d7ed3b4..795b1ca4 100644
--- a/lib/export/samples/nsprobe.c
+++ b/lib/export/samples/nsprobe.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -1101,7 +1101,7 @@ main(int argc, char *argv[]) {
(long)res->ai_addrlen);
exit(1);
}
- memcpy(&sa.type.sa, res->ai_addr, res->ai_addrlen);
+ memmove(&sa.type.sa, res->ai_addr, res->ai_addrlen);
sa.length = res->ai_addrlen;
freeaddrinfo(res);
ISC_LINK_INIT(&sa, link);
diff --git a/lib/export/samples/sample-request.c b/lib/export/samples/sample-request.c
index 07baf395..8d36a2ce 100644
--- a/lib/export/samples/sample-request.c
+++ b/lib/export/samples/sample-request.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -221,7 +221,7 @@ main(int argc, char *argv[]) {
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa.type));
- memcpy(&sa.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa.type, res->ai_addr, res->ai_addrlen);
freeaddrinfo(res);
sa.length = res->ai_addrlen;
ISC_LINK_INIT(&sa, link);
diff --git a/lib/export/samples/sample-update.c b/lib/export/samples/sample-update.c
index 2c35baa6..758e02eb 100644
--- a/lib/export/samples/sample-update.c
+++ b/lib/export/samples/sample-update.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2010, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -188,7 +188,7 @@ main(int argc, char *argv[]) {
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa_auth.type));
- memcpy(&sa_auth.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa_auth.type, res->ai_addr, res->ai_addrlen);
freeaddrinfo(res);
sa_auth.length = res->ai_addrlen;
ISC_LINK_INIT(&sa_auth, link);
@@ -210,7 +210,7 @@ main(int argc, char *argv[]) {
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa_recursive.type));
- memcpy(&sa_recursive.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa_recursive.type, res->ai_addr, res->ai_addrlen);
freeaddrinfo(res);
sa_recursive.length = res->ai_addrlen;
ISC_LINK_INIT(&sa_recursive, link);
diff --git a/lib/export/samples/sample.c b/lib/export/samples/sample.c
index b121a0db..7de9a8f1 100644
--- a/lib/export/samples/sample.c
+++ b/lib/export/samples/sample.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -197,7 +197,7 @@ addserver(dns_client_t *client, const char *addrstr, const char *port,
exit(1);
}
INSIST(res->ai_addrlen <= sizeof(sa.type));
- memcpy(&sa.type, res->ai_addr, res->ai_addrlen);
+ memmove(&sa.type, res->ai_addr, res->ai_addrlen);
sa.length = res->ai_addrlen;
freeaddrinfo(res);
ISC_LINK_INIT(&sa, link);
diff --git a/lib/irs/api b/lib/irs/api
index 298e96a8..343e4aaf 100644
--- a/lib/irs/api
+++ b/lib/irs/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 90
-LIBREVISION = 1
+LIBREVISION = 2
LIBAGE = 0
diff --git a/lib/irs/getaddrinfo.c b/lib/irs/getaddrinfo.c
index 1de540f2..24d35bf6 100644
--- a/lib/irs/getaddrinfo.c
+++ b/lib/irs/getaddrinfo.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -409,7 +409,7 @@ getaddrinfo(const char *hostname, const char *servname,
* Convert to a V4 mapped address.
*/
struct in6_addr *a6 = (struct in6_addr *)abuf;
- memcpy(&a6->s6_addr[12], &a6->s6_addr[0], 4);
+ memmove(&a6->s6_addr[12], &a6->s6_addr[0], 4);
memset(&a6->s6_addr[10], 0xff, 2);
memset(&a6->s6_addr[0], 0, 10);
goto inet6_addr;
@@ -446,7 +446,7 @@ getaddrinfo(const char *hostname, const char *servname,
ai_list = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy((char *)ai->ai_addr + addroff, abuf, addrsize);
+ memmove((char *)ai->ai_addr + addroff, abuf, addrsize);
if ((flags & AI_CANONNAME) != 0) {
#ifdef IRS_HAVE_SIN6_SCOPE_ID
if (ai->ai_family == AF_INET6)
@@ -789,8 +789,8 @@ process_answer(isc_task_t *task, isc_event_t *event) {
RUNTIME_CHECK(result == ISC_R_SUCCESS);
SIN(ai->ai_addr)->sin_port =
resstate->head->ai_port;
- memcpy(&SIN(ai->ai_addr)->sin_addr,
- &rdata_a.in_addr, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr,
+ &rdata_a.in_addr, 4);
dns_rdata_freestruct(&rdata_a);
break;
case AF_INET6:
@@ -800,8 +800,8 @@ process_answer(isc_task_t *task, isc_event_t *event) {
RUNTIME_CHECK(result == ISC_R_SUCCESS);
SIN6(ai->ai_addr)->sin6_port =
resstate->head->ai_port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr,
- &rdata_aaaa.in6_addr, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr,
+ &rdata_aaaa.in6_addr, 16);
dns_rdata_freestruct(&rdata_aaaa);
break;
}
@@ -1130,7 +1130,7 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
return (0);
}
@@ -1153,7 +1153,7 @@ add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN6(ai->ai_addr)->sin6_port = port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
return (0);
}
diff --git a/lib/irs/resconf.c b/lib/irs/resconf.c
index 88bdac16..15a46baf 100644
--- a/lib/irs/resconf.c
+++ b/lib/irs/resconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -224,7 +224,7 @@ add_server(isc_mem_t *mctx, const char *address_str,
v4 = &((struct sockaddr_in *)res->ai_addr)->sin_addr;
if (memcmp(v4, zeroaddress, 4) == 0)
- memcpy(v4, loopaddress, 4);
+ memmove(v4, loopaddress, 4);
}
address = isc_mem_get(mctx, sizeof(*address));
@@ -238,7 +238,7 @@ add_server(isc_mem_t *mctx, const char *address_str,
goto cleanup;
}
address->length = res->ai_addrlen;
- memcpy(&address->type.ss, res->ai_addr, res->ai_addrlen);
+ memmove(&address->type.ss, res->ai_addr, res->ai_addrlen);
ISC_LINK_INIT(address, link);
ISC_LIST_APPEND(*nameservers, address, link);
@@ -258,14 +258,14 @@ create_addr(const char *buffer, isc_netaddr_t *addr, int convert_zero) {
unsigned char zeroaddress[] = {0, 0, 0, 0};
unsigned char loopaddress[] = {127, 0, 0, 1};
if (memcmp(&v4, zeroaddress, 4) == 0)
- memcpy(&v4, loopaddress, 4);
+ memmove(&v4, loopaddress, 4);
}
addr->family = AF_INET;
- memcpy(&addr->type.in, &v4, NS_INADDRSZ);
+ memmove(&addr->type.in, &v4, NS_INADDRSZ);
addr->zone = 0;
} else if (inet_pton(AF_INET6, buffer, &v6) == 1) {
addr->family = AF_INET6;
- memcpy(&addr->type.in6, &v6, NS_IN6ADDRSZ);
+ memmove(&addr->type.in6, &v6, NS_IN6ADDRSZ);
addr->zone = 0;
} else
return (ISC_R_BADADDRESSFORM); /* Unrecognised format. */
diff --git a/lib/isc/api b/lib/isc/api
index a161d8d0..07c646d6 100644
--- a/lib/isc/api
+++ b/lib/isc/api
@@ -4,6 +4,6 @@
# 9.8: 80-89, 120-129
# 9.9: 90-109
# 9.9-sub: 130-139
-LIBINTERFACE = 98
+LIBINTERFACE = 99
LIBREVISION = 0
-LIBAGE = 3
+LIBAGE = 4
diff --git a/lib/isc/base32.c b/lib/isc/base32.c
index f595cf14..ad0b0da5 100644
--- a/lib/isc/base32.c
+++ b/lib/isc/base32.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -355,7 +355,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -367,7 +367,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_availableregion(target, &tr);
if (length > tr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/base64.c b/lib/isc/base64.c
index 00d00d4b..6b4cb1bf 100644
--- a/lib/isc/base64.c
+++ b/lib/isc/base64.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -234,7 +234,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -246,7 +246,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_availableregion(target, &tr);
if (length > tr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/buffer.c b/lib/isc/buffer.c
index e37af159..2d15e248 100644
--- a/lib/isc/buffer.c
+++ b/lib/isc/buffer.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -420,7 +420,7 @@ isc__buffer_putstr(isc_buffer_t *b, const char *source) {
REQUIRE(l <= isc_buffer_availablelength(b));
cp = isc_buffer_used(b);
- memcpy(cp, source, l);
+ memmove(cp, source, l);
b->used += l;
}
@@ -439,7 +439,7 @@ isc_buffer_copyregion(isc_buffer_t *b, const isc_region_t *r) {
available = isc_buffer_availablelength(b);
if (r->length > available)
return (ISC_R_NOSPACE);
- memcpy(base, r->base, r->length);
+ memmove(base, r->base, r->length);
b->used += r->length;
return (ISC_R_SUCCESS);
diff --git a/lib/isc/hash.c b/lib/isc/hash.c
index fc4e4f33..f70e7943 100644
--- a/lib/isc/hash.c
+++ b/lib/isc/hash.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -270,7 +270,7 @@ isc_hash_ctxinit(isc_hash_t *hctx) {
else
copylen = hctx->vectorlen - i;
- memcpy(p, &pr, copylen);
+ memmove(p, &pr, copylen);
}
INSIST(p == (unsigned char *)hctx->rndvector +
hctx->vectorlen);
@@ -324,9 +324,9 @@ destroy(isc_hash_t **hctxp) {
DESTROYLOCK(&hctx->lock);
- memcpy(canary0, hctx + 1, sizeof(canary0));
+ memmove(canary0, hctx + 1, sizeof(canary0));
memset(hctx, 0, sizeof(isc_hash_t));
- memcpy(canary1, hctx + 1, sizeof(canary1));
+ memmove(canary1, hctx + 1, sizeof(canary1));
INSIST(memcmp(canary0, canary1, sizeof(canary0)) == 0);
isc_mem_put(mctx, hctx, sizeof(isc_hash_t));
isc_mem_detach(&mctx);
diff --git a/lib/isc/heap.c b/lib/isc/heap.c
index 4edaface..9d4fd28a 100644
--- a/lib/isc/heap.c
+++ b/lib/isc/heap.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2010-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2010-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1997-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -32,7 +32,7 @@
#include <isc/heap.h>
#include <isc/magic.h>
#include <isc/mem.h>
-#include <isc/string.h> /* Required for memcpy. */
+#include <isc/string.h> /* Required for memmove. */
#include <isc/util.h>
/*@{*/
@@ -132,7 +132,7 @@ resize(isc_heap_t *heap) {
if (new_array == NULL)
return (ISC_FALSE);
if (heap->array != NULL) {
- memcpy(new_array, heap->array, heap->size * sizeof(void *));
+ memmove(new_array, heap->array, heap->size * sizeof(void *));
isc_mem_put(heap->mctx, heap->array,
heap->size * sizeof(void *));
}
diff --git a/lib/isc/hex.c b/lib/isc/hex.c
index 60addf5c..00903c73 100644
--- a/lib/isc/hex.c
+++ b/lib/isc/hex.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -183,7 +183,7 @@ str_totext(const char *source, isc_buffer_t *target) {
if (l > region.length)
return (ISC_R_NOSPACE);
- memcpy(region.base, source, l);
+ memmove(region.base, source, l);
isc_buffer_add(target, l);
return (ISC_R_SUCCESS);
}
@@ -195,7 +195,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_availableregion(target, &tr);
if (length > tr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, base, length);
+ memmove(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/hmacmd5.c b/lib/isc/hmacmd5.c
index 4c4046df..b26a336e 100644
--- a/lib/isc/hmacmd5.c
+++ b/lib/isc/hmacmd5.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -83,7 +83,7 @@ isc_hmacmd5_init(isc_hmacmd5_t *ctx, const unsigned char *key,
isc_md5_update(&md5ctx, key, len);
isc_md5_final(&md5ctx, ctx->key);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_md5_init(&ctx->md5ctx);
memset(ipad, IPAD, sizeof(ipad));
diff --git a/lib/isc/hmacsha.c b/lib/isc/hmacsha.c
index 38709637..ac2b70c5 100644
--- a/lib/isc/hmacsha.c
+++ b/lib/isc/hmacsha.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005-2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -63,7 +63,7 @@ isc_hmacsha1_sign(isc_hmacsha1_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -94,7 +94,7 @@ isc_hmacsha224_sign(isc_hmacsha224_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -125,7 +125,7 @@ isc_hmacsha256_sign(isc_hmacsha256_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -156,7 +156,7 @@ isc_hmacsha384_sign(isc_hmacsha384_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -187,7 +187,7 @@ isc_hmacsha512_sign(isc_hmacsha512_t *ctx, unsigned char *digest, size_t len) {
HMAC_Final(ctx, newdigest, NULL);
HMAC_CTX_cleanup(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -213,7 +213,7 @@ isc_hmacsha1_init(isc_hmacsha1_t *ctx, const unsigned char *key,
isc_sha1_update(&sha1ctx, key, len);
isc_sha1_final(&sha1ctx, ctx->key);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha1_init(&ctx->sha1ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -260,7 +260,7 @@ isc_hmacsha1_sign(isc_hmacsha1_t *ctx, unsigned char *digest, size_t len) {
isc_sha1_update(&ctx->sha1ctx, newdigest, ISC_SHA1_DIGESTLENGTH);
isc_sha1_final(&ctx->sha1ctx, newdigest);
isc_hmacsha1_invalidate(ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -281,7 +281,7 @@ isc_hmacsha224_init(isc_hmacsha224_t *ctx, const unsigned char *key,
isc_sha224_update(&sha224ctx, key, len);
isc_sha224_final(ctx->key, &sha224ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha224_init(&ctx->sha224ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -326,7 +326,7 @@ isc_hmacsha224_sign(isc_hmacsha224_t *ctx, unsigned char *digest, size_t len) {
isc_sha224_update(&ctx->sha224ctx, opad, sizeof(opad));
isc_sha224_update(&ctx->sha224ctx, newdigest, ISC_SHA224_DIGESTLENGTH);
isc_sha224_final(newdigest, &ctx->sha224ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -347,7 +347,7 @@ isc_hmacsha256_init(isc_hmacsha256_t *ctx, const unsigned char *key,
isc_sha256_update(&sha256ctx, key, len);
isc_sha256_final(ctx->key, &sha256ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha256_init(&ctx->sha256ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -392,7 +392,7 @@ isc_hmacsha256_sign(isc_hmacsha256_t *ctx, unsigned char *digest, size_t len) {
isc_sha256_update(&ctx->sha256ctx, opad, sizeof(opad));
isc_sha256_update(&ctx->sha256ctx, newdigest, ISC_SHA256_DIGESTLENGTH);
isc_sha256_final(newdigest, &ctx->sha256ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -413,7 +413,7 @@ isc_hmacsha384_init(isc_hmacsha384_t *ctx, const unsigned char *key,
isc_sha384_update(&sha384ctx, key, len);
isc_sha384_final(ctx->key, &sha384ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha384_init(&ctx->sha384ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -458,7 +458,7 @@ isc_hmacsha384_sign(isc_hmacsha384_t *ctx, unsigned char *digest, size_t len) {
isc_sha384_update(&ctx->sha384ctx, opad, sizeof(opad));
isc_sha384_update(&ctx->sha384ctx, newdigest, ISC_SHA384_DIGESTLENGTH);
isc_sha384_final(newdigest, &ctx->sha384ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
@@ -479,7 +479,7 @@ isc_hmacsha512_init(isc_hmacsha512_t *ctx, const unsigned char *key,
isc_sha512_update(&sha512ctx, key, len);
isc_sha512_final(ctx->key, &sha512ctx);
} else
- memcpy(ctx->key, key, len);
+ memmove(ctx->key, key, len);
isc_sha512_init(&ctx->sha512ctx);
memset(ipad, IPAD, sizeof(ipad));
@@ -524,7 +524,7 @@ isc_hmacsha512_sign(isc_hmacsha512_t *ctx, unsigned char *digest, size_t len) {
isc_sha512_update(&ctx->sha512ctx, opad, sizeof(opad));
isc_sha512_update(&ctx->sha512ctx, newdigest, ISC_SHA512_DIGESTLENGTH);
isc_sha512_final(newdigest, &ctx->sha512ctx);
- memcpy(digest, newdigest, len);
+ memmove(digest, newdigest, len);
memset(newdigest, 0, sizeof(newdigest));
}
#endif /* !ISC_PLATFORM_OPENSSLHASH */
diff --git a/lib/isc/httpd.c b/lib/isc/httpd.c
index 16a8c9fe..46dab296 100644
--- a/lib/isc/httpd.c
+++ b/lib/isc/httpd.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2008, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-2008, 2010-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -26,6 +26,7 @@
#include <isc/socket.h>
#include <isc/string.h>
#include <isc/task.h>
+#include <isc/time.h>
#include <isc/util.h>
#include <string.h>
@@ -58,20 +59,6 @@
#define HTTP_SENDGROW 1024
#define HTTP_SEND_MAXLEN 10240
-/*%
- * HTTP urls. These are the URLs we manage, and the function to call to
- * provide the data for it. We pass in the base url (so the same function
- * can handle multiple requests), and a structure to fill in to return a
- * result to the client. We also pass in a pointer to be filled in for
- * the data cleanup function.
- */
-struct isc_httpdurl {
- char *url;
- isc_httpdaction_t *action;
- void *action_arg;
- ISC_LINK(isc_httpdurl_t) link;
-};
-
#define HTTPD_CLOSE 0x0001 /* Got a Connection: close header */
#define HTTPD_FOUNDHOST 0x0002 /* Got a Host: header */
@@ -87,6 +74,7 @@ struct isc_httpd {
*/
char recvbuf[HTTP_RECVLEN]; /*%< receive buffer */
isc_uint32_t recvlen; /*%< length recv'd */
+ char *headers; /*%< set in process_request() */
unsigned int method;
char *url;
char *querystring;
@@ -217,20 +205,12 @@ static isc_result_t process_request(isc_httpd_t *, int);
static void httpdmgr_destroy(isc_httpdmgr_t *);
static isc_result_t grow_headerspace(isc_httpd_t *);
static void reset_client(isc_httpd_t *httpd);
-static isc_result_t render_404(const char *, const char *,
- void *,
- unsigned int *, const char **,
- const char **, isc_buffer_t *,
- isc_httpdfree_t **, void **);
-static isc_result_t render_500(const char *, const char *,
- void *,
- unsigned int *, const char **,
- const char **, isc_buffer_t *,
- isc_httpdfree_t **, void **);
+
+static isc_httpdaction_t render_404;
+static isc_httpdaction_t render_500;
static void
-destroy_client(isc_httpd_t **httpdp)
-{
+destroy_client(isc_httpd_t **httpdp) {
isc_httpd_t *httpd = *httpdp;
isc_httpdmgr_t *httpdmgr = httpd->mgr;
@@ -321,8 +301,7 @@ isc_httpdmgr_create(isc_mem_t *mctx, isc_socket_t *sock, isc_task_t *task,
}
static void
-httpdmgr_destroy(isc_httpdmgr_t *httpdmgr)
-{
+httpdmgr_destroy(isc_httpdmgr_t *httpdmgr) {
isc_mem_t *mctx;
isc_httpdurl_t *url;
@@ -379,8 +358,7 @@ httpdmgr_destroy(isc_httpdmgr_t *httpdmgr)
#define BUFLENOK(s) (httpd->recvbuf - (s) < HTTP_RECVLEN)
static isc_result_t
-process_request(isc_httpd_t *httpd, int length)
-{
+process_request(isc_httpd_t *httpd, int length) {
char *s;
char *p;
int delim;
@@ -390,6 +368,7 @@ process_request(isc_httpd_t *httpd, int length)
httpd->recvlen += length;
httpd->recvbuf[httpd->recvlen] = 0;
+ httpd->headers = NULL;
/*
* If we don't find a blank line in our buffer, return that we need
@@ -494,6 +473,8 @@ process_request(isc_httpd_t *httpd, int length)
p = s + 1;
s = p;
+ httpd->headers = s;
+
if (strstr(s, "Connection: close") != NULL)
httpd->flags |= HTTPD_CLOSE;
@@ -513,8 +494,7 @@ process_request(isc_httpd_t *httpd, int length)
}
static void
-isc_httpd_accept(isc_task_t *task, isc_event_t *ev)
-{
+isc_httpd_accept(isc_task_t *task, isc_event_t *ev) {
isc_result_t result;
isc_httpdmgr_t *httpdmgr = ev->ev_arg;
isc_httpd_t *httpd;
@@ -609,8 +589,8 @@ isc_httpd_accept(isc_task_t *task, isc_event_t *ev)
}
static isc_result_t
-render_404(const char *url, const char *querystring,
- void *arg,
+render_404(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers, void *arg,
unsigned int *retcode, const char **retmsg,
const char **mimetype, isc_buffer_t *b,
isc_httpdfree_t **freecb, void **freecb_args)
@@ -618,7 +598,9 @@ render_404(const char *url, const char *querystring,
static char msg[] = "No such URL.";
UNUSED(url);
+ UNUSED(urlinfo);
UNUSED(querystring);
+ UNUSED(headers);
UNUSED(arg);
*retcode = 404;
@@ -633,8 +615,8 @@ render_404(const char *url, const char *querystring,
}
static isc_result_t
-render_500(const char *url, const char *querystring,
- void *arg,
+render_500(const char *url, isc_httpdurl_t *urlinfo,
+ const char *querystring, const char *headers, void *arg,
unsigned int *retcode, const char **retmsg,
const char **mimetype, isc_buffer_t *b,
isc_httpdfree_t **freecb, void **freecb_args)
@@ -642,7 +624,9 @@ render_500(const char *url, const char *querystring,
static char msg[] = "Internal server failure.";
UNUSED(url);
+ UNUSED(urlinfo);
UNUSED(querystring);
+ UNUSED(headers);
UNUSED(arg);
*retcode = 500;
@@ -657,8 +641,7 @@ render_500(const char *url, const char *querystring,
}
static void
-isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
-{
+isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev) {
isc_region_t r;
isc_result_t result;
isc_httpd_t *httpd = ev->ev_arg;
@@ -710,8 +693,9 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
url = ISC_LIST_NEXT(url, link);
}
if (url == NULL)
- result = httpd->mgr->render_404(httpd->url, httpd->querystring,
- NULL,
+ result = httpd->mgr->render_404(httpd->url, NULL,
+ httpd->querystring,
+ NULL, NULL,
&httpd->retcode,
&httpd->retmsg,
&httpd->mimetype,
@@ -719,14 +703,18 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
&httpd->freecb,
&httpd->freecb_arg);
else
- result = url->action(httpd->url, httpd->querystring,
+ result = url->action(httpd->url, url,
+ httpd->querystring,
+ httpd->headers,
url->action_arg,
&httpd->retcode, &httpd->retmsg,
&httpd->mimetype, &httpd->bodybuffer,
&httpd->freecb, &httpd->freecb_arg);
if (result != ISC_R_SUCCESS) {
- result = httpd->mgr->render_500(httpd->url, httpd->querystring,
- NULL, &httpd->retcode,
+ result = httpd->mgr->render_500(httpd->url, url,
+ httpd->querystring,
+ NULL, NULL,
+ &httpd->retcode,
&httpd->retmsg,
&httpd->mimetype,
&httpd->bodybuffer,
@@ -739,9 +727,19 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
isc_httpd_addheader(httpd, "Content-Type", httpd->mimetype);
isc_httpd_addheader(httpd, "Date", datebuf);
isc_httpd_addheader(httpd, "Expires", datebuf);
- isc_httpd_addheader(httpd, "Last-Modified", datebuf);
- isc_httpd_addheader(httpd, "Pragma: no-cache", NULL);
- isc_httpd_addheader(httpd, "Cache-Control: no-cache", NULL);
+
+ if (url != NULL && url->isstatic) {
+ char loadbuf[32];
+ isc_time_formathttptimestamp(&url->loadtime,
+ loadbuf, sizeof(loadbuf));
+ isc_httpd_addheader(httpd, "Last-Modified", loadbuf);
+ isc_httpd_addheader(httpd, "Cache-Control: public", NULL);
+ } else {
+ isc_httpd_addheader(httpd, "Last-Modified", datebuf);
+ isc_httpd_addheader(httpd, "Pragma: no-cache", NULL);
+ isc_httpd_addheader(httpd, "Cache-Control: no-cache", NULL);
+ }
+
isc_httpd_addheader(httpd, "Server: libisc", NULL);
isc_httpd_addheaderuint(httpd, "Content-Length",
isc_buffer_usedlength(&httpd->bodybuffer));
@@ -766,8 +764,7 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev)
}
void
-isc_httpdmgr_shutdown(isc_httpdmgr_t **httpdmgrp)
-{
+isc_httpdmgr_shutdown(isc_httpdmgr_t **httpdmgrp) {
isc_httpdmgr_t *httpdmgr;
isc_httpd_t *httpd;
httpdmgr = *httpdmgrp;
@@ -794,8 +791,7 @@ isc_httpdmgr_shutdown(isc_httpdmgr_t **httpdmgrp)
}
static isc_result_t
-grow_headerspace(isc_httpd_t *httpd)
-{
+grow_headerspace(isc_httpd_t *httpd) {
char *newspace;
unsigned int newlen;
isc_region_t r;
@@ -816,8 +812,7 @@ grow_headerspace(isc_httpd_t *httpd)
}
isc_result_t
-isc_httpd_response(isc_httpd_t *httpd)
-{
+isc_httpd_response(isc_httpd_t *httpd) {
isc_result_t result;
unsigned int needlen;
@@ -869,8 +864,7 @@ isc_httpd_addheader(isc_httpd_t *httpd, const char *name,
}
isc_result_t
-isc_httpd_endheaders(isc_httpd_t *httpd)
-{
+isc_httpd_endheaders(isc_httpd_t *httpd) {
isc_result_t result;
while (isc_buffer_availablelength(&httpd->headerbuffer) < 2) {
@@ -912,8 +906,7 @@ isc_httpd_addheaderuint(isc_httpd_t *httpd, const char *name, int val) {
}
static void
-isc_httpd_senddone(isc_task_t *task, isc_event_t *ev)
-{
+isc_httpd_senddone(isc_task_t *task, isc_event_t *ev) {
isc_httpd_t *httpd = ev->ev_arg;
isc_region_t r;
isc_socketevent_t *sev = (isc_socketevent_t *)ev;
@@ -976,8 +969,7 @@ out:
}
static void
-reset_client(isc_httpd_t *httpd)
-{
+reset_client(isc_httpd_t *httpd) {
/*
* Catch errors here. We MUST be in RECV mode, and we MUST NOT have
* any outstanding buffers. If we have buffers, we have a leak.
@@ -988,6 +980,7 @@ reset_client(isc_httpd_t *httpd)
httpd->recvbuf[0] = 0;
httpd->recvlen = 0;
+ httpd->headers = NULL;
httpd->method = ISC_HTTPD_METHODUNKNOWN;
httpd->url = NULL;
httpd->querystring = NULL;
@@ -1002,6 +995,14 @@ isc_result_t
isc_httpdmgr_addurl(isc_httpdmgr_t *httpdmgr, const char *url,
isc_httpdaction_t *func, void *arg)
{
+ return (isc_httpdmgr_addurl2(httpdmgr, url, ISC_FALSE, func, arg));
+}
+
+isc_result_t
+isc_httpdmgr_addurl2(isc_httpdmgr_t *httpdmgr, const char *url,
+ isc_boolean_t isstatic,
+ isc_httpdaction_t *func, void *arg)
+{
isc_httpdurl_t *item;
if (url == NULL) {
@@ -1021,6 +1022,9 @@ isc_httpdmgr_addurl(isc_httpdmgr_t *httpdmgr, const char *url,
item->action = func;
item->action_arg = arg;
+ item->isstatic = isstatic;
+ isc_time_now(&item->loadtime);
+
ISC_LINK_INIT(item, link);
ISC_LIST_APPEND(httpdmgr->urls, item, link);
diff --git a/lib/isc/include/isc/buffer.h b/lib/isc/include/isc/buffer.h
index 72b85605..5aff01c2 100644
--- a/lib/isc/include/isc/buffer.h
+++ b/lib/isc/include/isc/buffer.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2010, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -787,7 +787,7 @@ ISC_LANG_ENDDECLS
#define ISC__BUFFER_PUTMEM(_b, _base, _length) \
do { \
- memcpy(isc_buffer_used(_b), (_base), (_length)); \
+ memmove(isc_buffer_used(_b), (_base), (_length)); \
(_b)->used += (_length); \
} while (0)
@@ -797,7 +797,7 @@ ISC_LANG_ENDDECLS
unsigned char *_cp; \
_length = strlen(_source); \
_cp = isc_buffer_used(_b); \
- memcpy(_cp, (_source), _length); \
+ memmove(_cp, (_source), _length); \
(_b)->used += (_length); \
} while (0)
diff --git a/lib/isc/include/isc/httpd.h b/lib/isc/include/isc/httpd.h
index ba7f9001..06ce90f3 100644
--- a/lib/isc/include/isc/httpd.h
+++ b/lib/isc/include/isc/httpd.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-2008, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -26,6 +26,23 @@
#include <isc/types.h>
#include <isc/mutex.h>
#include <isc/task.h>
+#include <isc/time.h>
+
+/*%
+ * HTTP urls. These are the URLs we manage, and the function to call to
+ * provide the data for it. We pass in the base url (so the same function
+ * can handle multiple requests), and a structure to fill in to return a
+ * result to the client. We also pass in a pointer to be filled in for
+ * the data cleanup function.
+ */
+struct isc_httpdurl {
+ char *url;
+ isc_httpdaction_t *action;
+ void *action_arg;
+ isc_boolean_t isstatic;
+ isc_time_t loadtime;
+ ISC_LINK(isc_httpdurl_t) link;
+};
#define HTTPD_EVENTCLASS ISC_EVENTCLASS(4300)
#define HTTPD_SHUTDOWN (HTTPD_EVENTCLASS + 0x0001)
@@ -50,6 +67,11 @@ isc_httpdmgr_addurl(isc_httpdmgr_t *httpdmgr, const char *url,
isc_httpdaction_t *func, void *arg);
isc_result_t
+isc_httpdmgr_addurl2(isc_httpdmgr_t *httpdmgr, const char *url,
+ isc_boolean_t isstatic,
+ isc_httpdaction_t *func, void *arg);
+
+isc_result_t
isc_httpd_response(isc_httpd_t *httpd);
isc_result_t
diff --git a/lib/isc/include/isc/platform.h.in b/lib/isc/include/isc/platform.h.in
index 8c5bd1d8..07553e36 100644
--- a/lib/isc/include/isc/platform.h.in
+++ b/lib/isc/include/isc/platform.h.in
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2010, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -199,6 +199,11 @@
*/
@ISC_PLATFORM_NEEDMEMMOVE@
+/*
+ * Define if this system needs strcasestr.
+ */
+@ISC_PLATFORM_NEEDSTRCASESTR@
+
/***
*** Miscellaneous.
***/
diff --git a/lib/isc/include/isc/radix.h b/lib/isc/include/isc/radix.h
index 47512c72..1c1887f1 100644
--- a/lib/isc/include/isc/radix.h
+++ b/lib/isc/include/isc/radix.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007, 2008, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -41,10 +41,10 @@
(pt).family = (na)->family; \
(pt).bitlen = (bits); \
if ((pt).family == AF_INET6) { \
- memcpy(&(pt).add.sin6, &(na)->type.in6, \
+ memmove(&(pt).add.sin6, &(na)->type.in6, \
((bits)+7)/8); \
} else \
- memcpy(&(pt).add.sin, &(na)->type.in, \
+ memmove(&(pt).add.sin, &(na)->type.in, \
((bits)+7)/8); \
} else { \
(pt).family = AF_UNSPEC; \
diff --git a/lib/isc/include/isc/string.h b/lib/isc/include/isc/string.h
index b49fdbc3..585ef928 100644
--- a/lib/isc/include/isc/string.h
+++ b/lib/isc/include/isc/string.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -226,6 +226,13 @@ isc_string_strlcat(char *dst, const char *src, size_t size);
#define strlcat isc_string_strlcat
#endif
+char *
+isc_string_strcasestr(const char *big, const char *little);
+
+#ifdef ISC_PLATFORM_NEEDSTRCASESTR
+#define strcasestr isc_string_strcasestr
+#endif
+
ISC_LANG_ENDDECLS
#endif /* ISC_STRING_H */
diff --git a/lib/isc/include/isc/types.h b/lib/isc/include/isc/types.h
index 8dbf67ed..a1edadd1 100644
--- a/lib/isc/include/isc/types.h
+++ b/lib/isc/include/isc/types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -103,7 +103,9 @@ typedef int (*isc_sockfdwatch_t)(isc_task_t *, isc_socket_t *, void *, int);
/* The following cannot be listed alphabetically due to forward reference */
typedef isc_result_t (isc_httpdaction_t)(const char *url,
+ isc_httpdurl_t *urlinfo,
const char *querystring,
+ const char *headers,
void *arg,
unsigned int *retcode,
const char **retmsg,
diff --git a/lib/isc/inet_pton.c b/lib/isc/inet_pton.c
index ac4defde..4c60f825 100644
--- a/lib/isc/inet_pton.c
+++ b/lib/isc/inet_pton.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1996-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -114,7 +114,7 @@ inet_pton4(const char *src, unsigned char *dst) {
}
if (octets < 4)
return (0);
- memcpy(dst, tmp, NS_INADDRSZ);
+ memmove(dst, tmp, NS_INADDRSZ);
return (1);
}
@@ -210,6 +210,6 @@ inet_pton6(const char *src, unsigned char *dst) {
}
if (tp != endp)
return (0);
- memcpy(dst, tmp, NS_IN6ADDRSZ);
+ memmove(dst, tmp, NS_IN6ADDRSZ);
return (1);
}
diff --git a/lib/isc/lex.c b/lib/isc/lex.c
index a4bfcd1e..aa3a6c9f 100644
--- a/lib/isc/lex.c
+++ b/lib/isc/lex.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -75,7 +75,7 @@ grow_data(isc_lex_t *lex, size_t *remainingp, char **currp, char **prevp) {
new = isc_mem_get(lex->mctx, lex->max_token * 2 + 1);
if (new == NULL)
return (ISC_R_NOMEMORY);
- memcpy(new, lex->data, lex->max_token + 1);
+ memmove(new, lex->data, lex->max_token + 1);
*currp = new + (*currp - lex->data);
if (*prevp != NULL)
*prevp = new + (*prevp - lex->data);
@@ -173,7 +173,7 @@ isc_lex_getspecials(isc_lex_t *lex, isc_lexspecials_t specials) {
REQUIRE(VALID_LEX(lex));
- memcpy(specials, lex->specials, 256);
+ memmove(specials, lex->specials, 256);
}
void
@@ -185,7 +185,7 @@ isc_lex_setspecials(isc_lex_t *lex, isc_lexspecials_t specials) {
REQUIRE(VALID_LEX(lex));
- memcpy(lex->specials, specials, 256);
+ memmove(lex->specials, specials, 256);
}
static inline isc_result_t
diff --git a/lib/isc/log.c b/lib/isc/log.c
index d8262fb9..2cf584b4 100644
--- a/lib/isc/log.c
+++ b/lib/isc/log.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1130,7 +1130,7 @@ sync_channellist(isc_logconfig_t *lcfg) {
if (lcfg->channellist_count != 0) {
bytes = lcfg->channellist_count *
sizeof(ISC_LIST(isc_logchannellist_t));
- memcpy(lists, lcfg->channellists, bytes);
+ memmove(lists, lcfg->channellists, bytes);
isc_mem_put(lctx->mctx, lcfg->channellists, bytes);
}
diff --git a/lib/isc/md5.c b/lib/isc/md5.c
index 7c6419b2..5d212502 100644
--- a/lib/isc/md5.c
+++ b/lib/isc/md5.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -217,11 +217,11 @@ isc_md5_update(isc_md5_t *ctx, const unsigned char *buf, unsigned int len) {
t = 64 - (t & 0x3f); /* Space available in ctx->in (at least 1) */
if (t > len) {
- memcpy((unsigned char *)ctx->in + 64 - t, buf, len);
+ memmove((unsigned char *)ctx->in + 64 - t, buf, len);
return;
}
/* First chunk is an odd size */
- memcpy((unsigned char *)ctx->in + 64 - t, buf, t);
+ memmove((unsigned char *)ctx->in + 64 - t, buf, t);
byteSwap(ctx->in, 16);
transform(ctx->buf, ctx->in);
buf += t;
@@ -229,7 +229,7 @@ isc_md5_update(isc_md5_t *ctx, const unsigned char *buf, unsigned int len) {
/* Process data in 64-byte chunks */
while (len >= 64) {
- memcpy(ctx->in, buf, 64);
+ memmove(ctx->in, buf, 64);
byteSwap(ctx->in, 16);
transform(ctx->buf, ctx->in);
buf += 64;
@@ -237,7 +237,7 @@ isc_md5_update(isc_md5_t *ctx, const unsigned char *buf, unsigned int len) {
}
/* Handle any remaining bytes of data. */
- memcpy(ctx->in, buf, len);
+ memmove(ctx->in, buf, len);
}
/*!
@@ -271,7 +271,7 @@ isc_md5_final(isc_md5_t *ctx, unsigned char *digest) {
transform(ctx->buf, ctx->in);
byteSwap(ctx->buf, 4);
- memcpy(digest, ctx->buf, 16);
+ memmove(digest, ctx->buf, 16);
memset(ctx, 0, sizeof(isc_md5_t)); /* In case it's sensitive */
}
#endif
diff --git a/lib/isc/mem.c b/lib/isc/mem.c
index f2a3adba..f45a077e 100644
--- a/lib/isc/mem.c
+++ b/lib/isc/mem.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2010, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1997-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -553,9 +553,9 @@ more_basic_blocks(isc__mem_t *ctx) {
return (ISC_FALSE);
}
if (ctx->basic_table_size != 0) {
- memcpy(table, ctx->basic_table,
- ctx->basic_table_size *
- sizeof(unsigned char *));
+ memmove(table, ctx->basic_table,
+ ctx->basic_table_size *
+ sizeof(unsigned char *));
(ctx->memfree)(ctx->arg, ctx->basic_table);
}
ctx->basic_table = table;
@@ -1603,7 +1603,7 @@ isc___mem_reallocate(isc_mem_t *ctx0, void *ptr, size_t size FLARG) {
oldsize -= ALIGNMENT_SIZE;
}
copysize = (oldsize > size) ? size : oldsize;
- memcpy(new_ptr, ptr, copysize);
+ memmove(new_ptr, ptr, copysize);
isc__mem_free(ctx0, ptr FLARG_PASS);
}
} else if (ptr != NULL)
diff --git a/lib/isc/netaddr.c b/lib/isc/netaddr.c
index 5cce1bc1..0940df17 100644
--- a/lib/isc/netaddr.c
+++ b/lib/isc/netaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2010-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -340,7 +340,7 @@ isc_netaddr_fromsockaddr(isc_netaddr_t *t, const isc_sockaddr_t *s) {
t->zone = 0;
break;
case AF_INET6:
- memcpy(&t->type.in6, &s->type.sin6.sin6_addr, 16);
+ memmove(&t->type.in6, &s->type.sin6.sin6_addr, 16);
#ifdef ISC_PLATFORM_HAVESCOPEID
t->zone = s->type.sin6.sin6_scope_id;
#else
@@ -349,7 +349,7 @@ isc_netaddr_fromsockaddr(isc_netaddr_t *t, const isc_sockaddr_t *s) {
break;
#ifdef ISC_PLATFORM_HAVESYSUNH
case AF_UNIX:
- memcpy(t->type.un, s->type.sunix.sun_path, sizeof(t->type.un));
+ memmove(t->type.un, s->type.sunix.sun_path, sizeof(t->type.un));
t->zone = 0;
break;
#endif
@@ -429,6 +429,6 @@ isc_netaddr_fromv4mapped(isc_netaddr_t *t, const isc_netaddr_t *s) {
memset(t, 0, sizeof(*t));
t->family = AF_INET;
- memcpy(&t->type.in, (char *)&src->type.in6 + 12, 4);
+ memmove(&t->type.in, (char *)&src->type.in6 + 12, 4);
return;
}
diff --git a/lib/isc/radix.c b/lib/isc/radix.c
index 35088788..82090d1f 100644
--- a/lib/isc/radix.c
+++ b/lib/isc/radix.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -62,11 +62,11 @@ _new_prefix(isc_mem_t *mctx, isc_prefix_t **target, int family, void *dest,
if (family == AF_INET6) {
prefix->bitlen = (bitlen >= 0) ? bitlen : 128;
- memcpy(&prefix->add.sin6, dest, 16);
+ memmove(&prefix->add.sin6, dest, 16);
} else {
/* AF_UNSPEC is "any" or "none"--treat it as AF_INET */
prefix->bitlen = (bitlen >= 0) ? bitlen : 32;
- memcpy(&prefix->add.sin, dest, 4);
+ memmove(&prefix->add.sin, dest, 4);
}
prefix->family = family;
diff --git a/lib/isc/sha1.c b/lib/isc/sha1.c
index cce96036..aca90b43 100644
--- a/lib/isc/sha1.c
+++ b/lib/isc/sha1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -209,7 +209,7 @@ transform(isc_uint32_t state[5], const unsigned char buffer[64]) {
INSIST(state != NULL);
block = &workspace;
- (void)memcpy(block, buffer, 64);
+ (void)memmove(block, buffer, 64);
/* Copy context->state[] to working vars */
a = state[0];
@@ -301,7 +301,7 @@ isc_sha1_update(isc_sha1_t *context, const unsigned char *data,
context->count[1] += (len >> 29) + 1;
j = (j >> 3) & 63;
if ((j + len) > 63) {
- (void)memcpy(&context->buffer[j], data, (i = 64 - j));
+ (void)memmove(&context->buffer[j], data, (i = 64 - j));
transform(context->state, context->buffer);
for (; i + 63 < len; i += 64)
transform(context->state, &data[i]);
@@ -310,7 +310,7 @@ isc_sha1_update(isc_sha1_t *context, const unsigned char *data,
i = 0;
}
- (void)memcpy(&context->buffer[j], &data[i], len - i);
+ (void)memmove(&context->buffer[j], &data[i], len - i);
}
diff --git a/lib/isc/sha2.c b/lib/isc/sha2.c
index db2e3496..5f3554fa 100644
--- a/lib/isc/sha2.c
+++ b/lib/isc/sha2.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005-2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -560,8 +560,8 @@ isc_sha224_init(isc_sha224_t *context) {
if (context == (isc_sha256_t *)0) {
return;
}
- memcpy(context->state, sha224_initial_hash_value,
- ISC_SHA256_DIGESTLENGTH);
+ memmove(context->state, sha224_initial_hash_value,
+ ISC_SHA256_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA256_BLOCK_LENGTH);
context->bitcount = 0;
}
@@ -580,7 +580,7 @@ void
isc_sha224_final(isc_uint8_t digest[], isc_sha224_t *context) {
isc_uint8_t sha256_digest[ISC_SHA256_DIGESTLENGTH];
isc_sha256_final(sha256_digest, (isc_sha256_t *)context);
- memcpy(digest, sha256_digest, ISC_SHA224_DIGESTLENGTH);
+ memmove(digest, sha256_digest, ISC_SHA224_DIGESTLENGTH);
memset(sha256_digest, 0, ISC_SHA256_DIGESTLENGTH);
}
@@ -590,7 +590,7 @@ isc_sha256_init(isc_sha256_t *context) {
if (context == (isc_sha256_t *)0) {
return;
}
- memcpy(context->state, sha256_initial_hash_value,
+ memmove(context->state, sha256_initial_hash_value,
ISC_SHA256_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA256_BLOCK_LENGTH);
context->bitcount = 0;
@@ -803,7 +803,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
if (len >= freespace) {
/* Fill the buffer completely and process it */
- memcpy(&context->buffer[usedspace], data, freespace);
+ memmove(&context->buffer[usedspace], data, freespace);
context->bitcount += freespace << 3;
len -= freespace;
data += freespace;
@@ -811,7 +811,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
(isc_uint32_t*)context->buffer);
} else {
/* The buffer is not yet full */
- memcpy(&context->buffer[usedspace], data, len);
+ memmove(&context->buffer[usedspace], data, len);
context->bitcount += len << 3;
/* Clean up: */
usedspace = freespace = 0;
@@ -822,7 +822,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
}
while (len >= ISC_SHA256_BLOCK_LENGTH) {
/* Process as many complete blocks as we can */
- memcpy(context->buffer, data, ISC_SHA256_BLOCK_LENGTH);
+ memmove(context->buffer, data, ISC_SHA256_BLOCK_LENGTH);
isc_sha256_transform(context, (isc_uint32_t*)context->buffer);
context->bitcount += ISC_SHA256_BLOCK_LENGTH << 3;
len -= ISC_SHA256_BLOCK_LENGTH;
@@ -830,7 +830,7 @@ isc_sha256_update(isc_sha256_t *context, const isc_uint8_t *data, size_t len) {
}
if (len > 0U) {
/* There's left-overs, so save 'em */
- memcpy(context->buffer, data, len);
+ memmove(context->buffer, data, len);
context->bitcount += len << 3;
}
/* Clean up: */
@@ -900,7 +900,7 @@ isc_sha256_final(isc_uint8_t digest[], isc_sha256_t *context) {
}
}
#else
- memcpy(d, context->state, ISC_SHA256_DIGESTLENGTH);
+ memmove(d, context->state, ISC_SHA256_DIGESTLENGTH);
#endif
}
@@ -916,8 +916,8 @@ isc_sha512_init(isc_sha512_t *context) {
if (context == (isc_sha512_t *)0) {
return;
}
- memcpy(context->state, sha512_initial_hash_value,
- ISC_SHA512_DIGESTLENGTH);
+ memmove(context->state, sha512_initial_hash_value,
+ ISC_SHA512_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA512_BLOCK_LENGTH);
context->bitcount[0] = context->bitcount[1] = 0;
}
@@ -1122,7 +1122,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
if (len >= freespace) {
/* Fill the buffer completely and process it */
- memcpy(&context->buffer[usedspace], data, freespace);
+ memmove(&context->buffer[usedspace], data, freespace);
ADDINC128(context->bitcount, freespace << 3);
len -= freespace;
data += freespace;
@@ -1130,7 +1130,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
(isc_uint64_t*)context->buffer);
} else {
/* The buffer is not yet full */
- memcpy(&context->buffer[usedspace], data, len);
+ memmove(&context->buffer[usedspace], data, len);
ADDINC128(context->bitcount, len << 3);
/* Clean up: */
usedspace = freespace = 0;
@@ -1141,7 +1141,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
}
while (len >= ISC_SHA512_BLOCK_LENGTH) {
/* Process as many complete blocks as we can */
- memcpy(context->buffer, data, ISC_SHA512_BLOCK_LENGTH);
+ memmove(context->buffer, data, ISC_SHA512_BLOCK_LENGTH);
isc_sha512_transform(context, (isc_uint64_t*)context->buffer);
ADDINC128(context->bitcount, ISC_SHA512_BLOCK_LENGTH << 3);
len -= ISC_SHA512_BLOCK_LENGTH;
@@ -1149,7 +1149,7 @@ void isc_sha512_update(isc_sha512_t *context, const isc_uint8_t *data, size_t le
}
if (len > 0U) {
/* There's left-overs, so save 'em */
- memcpy(context->buffer, data, len);
+ memmove(context->buffer, data, len);
ADDINC128(context->bitcount, len << 3);
}
/* Clean up: */
@@ -1224,7 +1224,7 @@ void isc_sha512_final(isc_uint8_t digest[], isc_sha512_t *context) {
}
}
#else
- memcpy(d, context->state, ISC_SHA512_DIGESTLENGTH);
+ memmove(d, context->state, ISC_SHA512_DIGESTLENGTH);
#endif
}
@@ -1239,8 +1239,8 @@ isc_sha384_init(isc_sha384_t *context) {
if (context == (isc_sha384_t *)0) {
return;
}
- memcpy(context->state, sha384_initial_hash_value,
- ISC_SHA512_DIGESTLENGTH);
+ memmove(context->state, sha384_initial_hash_value,
+ ISC_SHA512_DIGESTLENGTH);
memset(context->buffer, 0, ISC_SHA384_BLOCK_LENGTH);
context->bitcount[0] = context->bitcount[1] = 0;
}
@@ -1277,7 +1277,7 @@ isc_sha384_final(isc_uint8_t digest[], isc_sha384_t *context) {
}
}
#else
- memcpy(d, context->state, ISC_SHA384_DIGESTLENGTH);
+ memmove(d, context->state, ISC_SHA384_DIGESTLENGTH);
#endif
}
diff --git a/lib/isc/sockaddr.c b/lib/isc/sockaddr.c
index 91a949b6..cee6d700 100644
--- a/lib/isc/sockaddr.c
+++ b/lib/isc/sockaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2010-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -332,7 +332,7 @@ isc_sockaddr_v6fromin(isc_sockaddr_t *sockaddr, const struct in_addr *ina,
#endif
sockaddr->type.sin6.sin6_addr.s6_addr[10] = 0xff;
sockaddr->type.sin6.sin6_addr.s6_addr[11] = 0xff;
- memcpy(&sockaddr->type.sin6.sin6_addr.s6_addr[12], ina, 4);
+ memmove(&sockaddr->type.sin6.sin6_addr.s6_addr[12], ina, 4);
sockaddr->type.sin6.sin6_port = htons(port);
sockaddr->length = sizeof(sockaddr->type.sin6);
ISC_LINK_INIT(sockaddr, link);
@@ -386,7 +386,7 @@ isc_sockaddr_fromnetaddr(isc_sockaddr_t *sockaddr, const isc_netaddr_t *na,
#ifdef ISC_PLATFORM_HAVESALEN
sockaddr->type.sin6.sin6_len = sizeof(sockaddr->type.sin6);
#endif
- memcpy(&sockaddr->type.sin6.sin6_addr, &na->type.in6, 16);
+ memmove(&sockaddr->type.sin6.sin6_addr, &na->type.in6, 16);
#ifdef ISC_PLATFORM_HAVESCOPEID
sockaddr->type.sin6.sin6_scope_id = isc_netaddr_getzone(na);
#endif
diff --git a/lib/isc/stats.c b/lib/isc/stats.c
index 8b624b2d..89e34b37 100644
--- a/lib/isc/stats.c
+++ b/lib/isc/stats.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -275,8 +275,8 @@ copy_counters(isc_stats_t *stats) {
}
#else
UNUSED(i);
- memcpy(stats->copiedcounters, stats->counters,
- stats->ncounters * sizeof(isc_stat_t));
+ memmove(stats->copiedcounters, stats->counters,
+ stats->ncounters * sizeof(isc_stat_t));
#endif
#ifdef ISC_RWLOCK_USEATOMIC
diff --git a/lib/isc/string.c b/lib/isc/string.c
index cba517c5..aa49e32f 100644
--- a/lib/isc/string.c
+++ b/lib/isc/string.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,7 +15,38 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id$ */
+/*
+ * Copyright (c) 1990, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
/*! \file */
@@ -188,7 +219,7 @@ isc_string_regiondup(isc_mem_t *mctx, const isc_region_t *source) {
target = (char *) isc_mem_allocate(mctx, source->length + 1);
if (target != NULL) {
- memcpy(source->base, target, source->length);
+ memmove(source->base, target, source->length);
target[source->length] = '\0';
}
@@ -269,3 +300,24 @@ isc_string_strlcat(char *dst, const char *src, size_t size)
return(dlen + (s - src)); /* count does not include NUL */
}
+
+char *
+isc_string_strcasestr(const char *str, const char *search) {
+ char c, sc, *s;
+ size_t len;
+
+ if ((c = *search++) != 0) {
+ c = tolower((unsigned char) c);
+ len = strlen(search);
+ do {
+ do {
+ if ((sc = *str++) == 0)
+ return (NULL);
+ } while ((char) tolower((unsigned char) sc) != c);
+ } while (strncasecmp(str, search, len) != 0);
+ str--;
+ }
+ DE_CONST(str, s);
+ return (s);
+
+}
diff --git a/lib/isc/tests/Makefile.in b/lib/isc/tests/Makefile.in
index 66d0b152..a3121601 100644
--- a/lib/isc/tests/Makefile.in
+++ b/lib/isc/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2011-2014 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -38,14 +38,16 @@ OBJS = isctest.@O@
SRCS = isctest.c taskpool_test.c socket_test.c hash_test.c \
lex_test.c \
sockaddr_test.c symtab_test.c task_test.c queue_test.c \
- parse_test.c pool_test.c regex_test.c safe_test.c
+ parse_test.c pool_test.c regex_test.c safe_test.c \
+ time_test.c
SUBDIRS =
TARGETS = taskpool_test@EXEEXT@ socket_test@EXEEXT@ hash_test@EXEEXT@ \
lex_test@EXEEXT@ \
sockaddr_test@EXEEXT@ symtab_test@EXEEXT@ task_test@EXEEXT@ \
queue_test@EXEEXT@ parse_test@EXEEXT@ pool_test@EXEEXT@ \
- regex_test@EXEEXT@ safe_test@EXEEXT@
+ regex_test@EXEEXT@ safe_test@EXEEXT@ \
+ time_test@EXEEXT@
@BIND9_MAKE_RULES@
@@ -97,6 +99,10 @@ safe_test@EXEEXT@: safe_test.@O@ ${ISCDEPLIBS}
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
safe_test.@O@ ${ISCLIBS} ${LIBS}
+time_test@EXEEXT@: time_test.@O@ ${ISCDEPLIBS}
+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
+ time_test.@O@ ${ISCLIBS} ${LIBS}
+
unit::
sh ${top_srcdir}/unit/unittest.sh
diff --git a/lib/isc/tests/hash_test.c b/lib/isc/tests/hash_test.c
index 836d7b67..84548081 100644
--- a/lib/isc/tests/hash_test.c
+++ b/lib/isc/tests/hash_test.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -963,7 +963,7 @@ ATF_TC_BODY(isc_hmacsha1, tc) {
hash_test_key_t *test_key = test_keys;
while (testcase->input != NULL && testcase->result != NULL) {
- memcpy(buffer, test_key->key, test_key->len);
+ memmove(buffer, test_key->key, test_key->len);
isc_hmacsha1_init(&hmacsha1, buffer, test_key->len);
isc_hmacsha1_update(&hmacsha1,
(const isc_uint8_t *) testcase->input,
@@ -1126,7 +1126,7 @@ ATF_TC_BODY(isc_hmacsha224, tc) {
hash_test_key_t *test_key = test_keys;
while (testcase->input != NULL && testcase->result != NULL) {
- memcpy(buffer, test_key->key, test_key->len);
+ memmove(buffer, test_key->key, test_key->len);
isc_hmacsha224_init(&hmacsha224, buffer, test_key->len);
isc_hmacsha224_update(&hmacsha224,
(const isc_uint8_t *) testcase->input,
@@ -1289,7 +1289,7 @@ ATF_TC_BODY(isc_hmacsha256, tc) {
hash_test_key_t *test_key = test_keys;
while (testcase->input != NULL && testcase->result != NULL) {
- memcpy(buffer, test_key->key, test_key->len);
+ memmove(buffer, test_key->key, test_key->len);
isc_hmacsha256_init(&hmacsha256, buffer, test_key->len);
isc_hmacsha256_update(&hmacsha256,
(const isc_uint8_t *) testcase->input,
@@ -1458,7 +1458,7 @@ ATF_TC_BODY(isc_hmacsha384, tc) {
hash_test_key_t *test_key = test_keys;
while (testcase->input != NULL && testcase->result != NULL) {
- memcpy(buffer, test_key->key, test_key->len);
+ memmove(buffer, test_key->key, test_key->len);
isc_hmacsha384_init(&hmacsha384, buffer, test_key->len);
isc_hmacsha384_update(&hmacsha384,
(const isc_uint8_t *) testcase->input,
@@ -1627,7 +1627,7 @@ ATF_TC_BODY(isc_hmacsha512, tc) {
hash_test_key_t *test_key = test_keys;
while (testcase->input != NULL && testcase->result != NULL) {
- memcpy(buffer, test_key->key, test_key->len);
+ memmove(buffer, test_key->key, test_key->len);
isc_hmacsha512_init(&hmacsha512, buffer, test_key->len);
isc_hmacsha512_update(&hmacsha512,
(const isc_uint8_t *) testcase->input,
@@ -1770,7 +1770,7 @@ ATF_TC_BODY(isc_hmacmd5, tc) {
hash_test_key_t *test_key = test_keys;
while (testcase->input != NULL && testcase->result != NULL) {
- memcpy(buffer, test_key->key, test_key->len);
+ memmove(buffer, test_key->key, test_key->len);
isc_hmacmd5_init(&hmacmd5, buffer, test_key->len);
isc_hmacmd5_update(&hmacmd5,
(const isc_uint8_t *) testcase->input,
diff --git a/lib/isc/tests/time_test.c b/lib/isc/tests/time_test.c
new file mode 100644
index 00000000..caddec2b
--- /dev/null
+++ b/lib/isc/tests/time_test.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC")
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <config.h>
+#include <stdlib.h>
+
+#include <atf-c.h>
+
+#include <isc/time.h>
+#include <isc/result.h>
+
+ATF_TC(isc_time_parsehttptimestamp);
+ATF_TC_HEAD(isc_time_parsehttptimestamp, tc) {
+ atf_tc_set_md_var(tc, "descr", "parse http time stamp");
+}
+ATF_TC_BODY(isc_time_parsehttptimestamp, tc) {
+ isc_result_t result;
+ isc_time_t t, x;
+ char buf[100];
+
+ setenv("TZ", "PST8PDT", 1);
+ result = isc_time_now(&t);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ isc_time_formathttptimestamp(&t, buf, sizeof(buf));
+ result = isc_time_parsehttptimestamp(buf, &x);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ ATF_REQUIRE_EQ(isc_time_seconds(&t), isc_time_seconds(&x));
+}
+
+/*
+ * Main
+ */
+ATF_TP_ADD_TCS(tp) {
+ ATF_TP_ADD_TC(tp, isc_time_parsehttptimestamp);
+ return (atf_no_error());
+}
+
diff --git a/lib/isc/unix/file.c b/lib/isc/unix/file.c
index d88ca29a..c6b9a29e 100644
--- a/lib/isc/unix/file.c
+++ b/lib/isc/unix/file.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -489,7 +489,7 @@ isc_file_progname(const char *filename, char *buf, size_t buflen) {
if (len > buflen)
return (ISC_R_NOSPACE);
- memcpy(buf, base, len);
+ memmove(buf, base, len);
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/unix/ifiter_getifaddrs.c b/lib/isc/unix/ifiter_getifaddrs.c
index 637450aa..cf1c0c18 100644
--- a/lib/isc/unix/ifiter_getifaddrs.c
+++ b/lib/isc/unix/ifiter_getifaddrs.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -159,7 +159,7 @@ internal_current(isc_interfaceiter_t *iter) {
namelen = sizeof(iter->current.name) - 1;
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, ifa->ifa_name, namelen);
+ memmove(iter->current.name, ifa->ifa_name, namelen);
iter->current.flags = 0;
diff --git a/lib/isc/unix/ifiter_ioctl.c b/lib/isc/unix/ifiter_ioctl.c
index 38c34fd6..f0026c28 100644
--- a/lib/isc/unix/ifiter_ioctl.c
+++ b/lib/isc/unix/ifiter_ioctl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -398,7 +398,7 @@ isc_interfaceiter_create(isc_mem_t *mctx, isc_interfaceiter_t **iterp) {
static void
get_inaddr(isc_netaddr_t *dst, struct in_addr *src) {
dst->family = AF_INET;
- memcpy(&dst->type.in, src, sizeof(struct in_addr));
+ memmove(&dst->type.in, src, sizeof(struct in_addr));
}
static isc_result_t
@@ -454,7 +454,7 @@ internal_current4(isc_interfaceiter_t *iter) {
ifrp = (struct ifreq *)((char *) iter->ifc.ifc_req + iter->pos);
memset(&ifreq, 0, sizeof(ifreq));
- memcpy(&ifreq, ifrp, sizeof(ifreq));
+ memmove(&ifreq, ifrp, sizeof(ifreq));
family = ifreq.ifr_addr.sa_family;
#if defined(ISC_PLATFORM_HAVEIPV6)
@@ -469,7 +469,7 @@ internal_current4(isc_interfaceiter_t *iter) {
INSIST(sizeof(ifreq.ifr_name) <= sizeof(iter->current.name));
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, ifreq.ifr_name, sizeof(ifreq.ifr_name));
+ memmove(iter->current.name, ifreq.ifr_name, sizeof(ifreq.ifr_name));
get_addr(family, &iter->current.address,
(struct sockaddr *)&ifrp->ifr_addr, ifreq.ifr_name);
@@ -524,8 +524,8 @@ internal_current4(isc_interfaceiter_t *iter) {
#if !defined(ISC_PLATFORM_HAVEIF_LADDRREQ) && defined(SIOCGLIFADDR)
memset(&lifreq, 0, sizeof(lifreq));
- memcpy(lifreq.lifr_name, iter->current.name, sizeof(lifreq.lifr_name));
- memcpy(&lifreq.lifr_addr, &iter->current.address.type.in6,
+ memmove(lifreq.lifr_name, iter->current.name, sizeof(lifreq.lifr_name));
+ memmove(&lifreq.lifr_addr, &iter->current.address.type.in6,
sizeof(iter->current.address.type.in6));
if (ioctl(iter->socket, SIOCGLIFADDR, &lifreq) < 0) {
@@ -599,7 +599,7 @@ internal_current4(isc_interfaceiter_t *iter) {
* Get the network mask.
*/
memset(&ifreq, 0, sizeof(ifreq));
- memcpy(&ifreq, ifrp, sizeof(ifreq));
+ memmove(&ifreq, ifrp, sizeof(ifreq));
/*
* Ignore the HP/UX warning about "integer overflow during
* conversion. It comes from its own macro definition,
@@ -637,7 +637,7 @@ internal_current6(isc_interfaceiter_t *iter) {
ifrp = (struct LIFREQ *)((char *) iter->lifc.lifc_req + iter->pos6);
memset(&lifreq, 0, sizeof(lifreq));
- memcpy(&lifreq, ifrp, sizeof(lifreq));
+ memmove(&lifreq, ifrp, sizeof(lifreq));
family = lifreq.lifr_addr.ss_family;
#ifdef ISC_PLATFORM_HAVEIPV6
@@ -652,7 +652,7 @@ internal_current6(isc_interfaceiter_t *iter) {
INSIST(sizeof(lifreq.lifr_name) <= sizeof(iter->current.name));
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, lifreq.lifr_name, sizeof(lifreq.lifr_name));
+ memmove(iter->current.name, lifreq.lifr_name, sizeof(lifreq.lifr_name));
get_addr(family, &iter->current.address,
(struct sockaddr *)&lifreq.lifr_addr, lifreq.lifr_name);
@@ -739,7 +739,7 @@ internal_current6(isc_interfaceiter_t *iter) {
* Get the network mask. Netmask already zeroed.
*/
memset(&lifreq, 0, sizeof(lifreq));
- memcpy(&lifreq, ifrp, sizeof(lifreq));
+ memmove(&lifreq, ifrp, sizeof(lifreq));
#ifdef lifr_addrlen
/*
diff --git a/lib/isc/unix/ifiter_sysctl.c b/lib/isc/unix/ifiter_sysctl.c
index 9d5bf6d9..102ecc1f 100644
--- a/lib/isc/unix/ifiter_sysctl.c
+++ b/lib/isc/unix/ifiter_sysctl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -37,7 +37,7 @@
sizeof(__uint64_t))
#else
#define ROUNDUP(a) ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) \
- : sizeof(long))
+ : sizeof(long))
#endif
#define IFITER_MAGIC ISC_MAGIC('I', 'F', 'I', 'S')
@@ -58,9 +58,9 @@ struct isc_interfaceiter {
static int mib[6] = {
CTL_NET,
PF_ROUTE,
- 0,
+ 0,
0, /* Any address family. */
- NET_RT_IFLIST,
+ NET_RT_IFLIST,
0 /* Flags. */
};
@@ -171,7 +171,7 @@ internal_current(isc_interfaceiter_t *iter) {
namelen = sizeof(iter->current.name) - 1;
memset(iter->current.name, 0, sizeof(iter->current.name));
- memcpy(iter->current.name, sdl->sdl_data, namelen);
+ memmove(iter->current.name, sdl->sdl_data, namelen);
iter->current.flags = 0;
diff --git a/lib/isc/unix/include/isc/time.h b/lib/isc/unix/include/isc/time.h
index d81d854a..2a83f099 100644
--- a/lib/isc/unix/include/isc/time.h
+++ b/lib/isc/unix/include/isc/time.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -315,6 +315,16 @@ isc_time_formathttptimestamp(const isc_time_t *t, char *buf, unsigned int len);
*
*/
+isc_result_t
+isc_time_parsehttptimestamp(char *input, isc_time_t *t);
+/*%<
+ * Parse the time in 'input' into the isc_time_t pointed to by 't',
+ * expecting a format like "Mon, 30 Aug 2000 04:06:47 GMT"
+ *
+ * Requires:
+ *\li 'buf' and 't' are not NULL.
+ */
+
void
isc_time_formatISO8601(const isc_time_t *t, char *buf, unsigned int len);
/*%<
diff --git a/lib/isc/unix/interfaceiter.c b/lib/isc/unix/interfaceiter.c
index af2b06d0..7272f718 100644
--- a/lib/isc/unix/interfaceiter.c
+++ b/lib/isc/unix/interfaceiter.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -79,14 +79,14 @@ get_addr(unsigned int family, isc_netaddr_t *dst, struct sockaddr *src,
dst->family = family;
switch (family) {
case AF_INET:
- memcpy(&dst->type.in,
- &((struct sockaddr_in *) src)->sin_addr,
- sizeof(struct in_addr));
+ memmove(&dst->type.in,
+ &((struct sockaddr_in *) src)->sin_addr,
+ sizeof(struct in_addr));
break;
case AF_INET6:
sa6 = (struct sockaddr_in6 *)src;
- memcpy(&dst->type.in6, &sa6->sin6_addr,
- sizeof(struct in6_addr));
+ memmove(&dst->type.in6, &sa6->sin6_addr,
+ sizeof(struct in6_addr));
#ifdef ISC_PLATFORM_HAVESCOPEID
if (sa6->sin6_scope_id != 0)
isc_netaddr_setzone(dst, sa6->sin6_scope_id);
@@ -105,8 +105,8 @@ get_addr(unsigned int family, isc_netaddr_t *dst, struct sockaddr *src,
if (IN6_IS_ADDR_LINKLOCAL(&sa6->sin6_addr)) {
isc_uint16_t zone16;
- memcpy(&zone16, &sa6->sin6_addr.s6_addr[2],
- sizeof(zone16));
+ memmove(&zone16, &sa6->sin6_addr.s6_addr[2],
+ sizeof(zone16));
zone16 = ntohs(zone16);
if (zone16 != 0) {
/* the zone ID is embedded */
@@ -252,7 +252,7 @@ isc_interfaceiter_current(isc_interfaceiter_t *iter,
isc_interface_t *ifdata)
{
REQUIRE(iter->result == ISC_R_SUCCESS);
- memcpy(ifdata, &iter->current, sizeof(*ifdata));
+ memmove(ifdata, &iter->current, sizeof(*ifdata));
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c
index 4237af40..d1ac96f5 100644
--- a/lib/isc/unix/socket.c
+++ b/lib/isc/unix/socket.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1261,8 +1261,8 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
&& cmsgp->cmsg_type == IPV6_PKTINFO) {
pktinfop = (struct in6_pktinfo *)CMSG_DATA(cmsgp);
- memcpy(&dev->pktinfo, pktinfop,
- sizeof(struct in6_pktinfo));
+ memmove(&dev->pktinfo, pktinfop,
+ sizeof(struct in6_pktinfo));
dev->attributes |= ISC_SOCKEVENTATTR_PKTINFO;
socket_log(sock, NULL, TRACE,
isc_msgcat, ISC_MSGSET_SOCKET,
@@ -1280,7 +1280,7 @@ process_cmsg(isc__socket_t *sock, struct msghdr *msg, isc_socketevent_t *dev) {
&& cmsgp->cmsg_type == SCM_TIMESTAMP) {
struct timeval tv;
timevalp = CMSG_DATA(cmsgp);
- memcpy(&tv, timevalp, sizeof(tv));
+ memmove(&tv, timevalp, sizeof(tv));
dev->timestamp.seconds = tv.tv_sec;
dev->timestamp.nanoseconds = tv.tv_usec * 1000;
dev->attributes |= ISC_SOCKEVENTATTR_TIMESTAMP;
@@ -1406,7 +1406,7 @@ build_msghdr_send(isc__socket_t *sock, isc_socketevent_t *dev,
cmsgp->cmsg_type = IPV6_PKTINFO;
cmsgp->cmsg_len = cmsg_len(sizeof(struct in6_pktinfo));
pktinfop = (struct in6_pktinfo *)CMSG_DATA(cmsgp);
- memcpy(pktinfop, &dev->pktinfo, sizeof(struct in6_pktinfo));
+ memmove(pktinfop, &dev->pktinfo, sizeof(struct in6_pktinfo));
#if defined(IPV6_USE_MIN_MTU)
/*
* Set IPV6_USE_MIN_MTU as a per packet option as FreeBSD
@@ -1421,7 +1421,7 @@ build_msghdr_send(isc__socket_t *sock, isc_socketevent_t *dev,
cmsgp->cmsg_level = IPPROTO_IPV6;
cmsgp->cmsg_type = IPV6_USE_MIN_MTU;
cmsgp->cmsg_len = cmsg_len(sizeof(use_min_mtu));
- memcpy(CMSG_DATA(cmsgp), &use_min_mtu, sizeof(use_min_mtu));
+ memmove(CMSG_DATA(cmsgp), &use_min_mtu, sizeof(use_min_mtu));
#endif
}
#endif /* USE_CMSG && ISC_PLATFORM_HAVEIPV6 */
@@ -3863,10 +3863,10 @@ watcher(void *uap) {
cc = ioctl(manager->devpoll_fd, DP_POLL, &dvp);
#elif defined(USE_SELECT)
LOCK(&manager->lock);
- memcpy(manager->read_fds_copy, manager->read_fds,
- manager->fd_bufsize);
- memcpy(manager->write_fds_copy, manager->write_fds,
- manager->fd_bufsize);
+ memmove(manager->read_fds_copy, manager->read_fds,
+ manager->fd_bufsize);
+ memmove(manager->write_fds_copy, manager->write_fds,
+ manager->fd_bufsize);
maxfd = manager->maxfd + 1;
UNLOCK(&manager->lock);
@@ -5849,9 +5849,9 @@ isc__socketmgr_waitevents(isc_socketmgr_t *manager0, struct timeval *tvp,
swait_private.nevents = ioctl(manager->devpoll_fd, DP_POLL, &dvp);
n = swait_private.nevents;
#elif defined(USE_SELECT)
- memcpy(manager->read_fds_copy, manager->read_fds, manager->fd_bufsize);
- memcpy(manager->write_fds_copy, manager->write_fds,
- manager->fd_bufsize);
+ memmove(manager->read_fds_copy, manager->read_fds, manager->fd_bufsize);
+ memmove(manager->write_fds_copy, manager->write_fds,
+ manager->fd_bufsize);
swait_private.readset = manager->read_fds_copy;
swait_private.writeset = manager->write_fds_copy;
diff --git a/lib/isc/unix/time.c b/lib/isc/unix/time.c
index e820afb1..9039b06a 100644
--- a/lib/isc/unix/time.c
+++ b/lib/isc/unix/time.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -23,6 +23,7 @@
#include <errno.h>
#include <limits.h>
+#include <stdlib.h>
#include <syslog.h>
#include <time.h>
@@ -407,6 +408,49 @@ isc_time_formathttptimestamp(const isc_time_t *t, char *buf, unsigned int len) {
INSIST(flen < len);
}
+static time_t
+timetfromtm(struct tm *tm) {
+ time_t ret;
+ int i, yday = 0, leapday;
+ int mdays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };
+
+ leapday = ((((tm->tm_year + 1900 ) % 4) == 0 &&
+ ((tm->tm_year + 1900 ) % 100) != 0) ||
+ ((tm->tm_year + 1900 ) % 400) == 0) ? 1 : 0;
+ mdays[1] += leapday;
+
+ yday = tm->tm_mday - 1;
+ for (i = 1; i <= tm->tm_mon; i++)
+ yday += mdays[i - 1];
+ ret = tm->tm_sec +
+ (60 * tm->tm_min) +
+ (3600 * tm->tm_hour) +
+ (86400 * (yday +
+ ((tm->tm_year - 70) * 365) +
+ ((tm->tm_year - 69) / 4) -
+ ((tm->tm_year - 1) / 100) +
+ ((tm->tm_year + 299) / 400)));
+ return (ret);
+}
+
+isc_result_t
+isc_time_parsehttptimestamp(char *buf, isc_time_t *t) {
+ struct tm t_tm;
+ time_t when;
+ char *p;
+
+ REQUIRE(buf != NULL);
+ REQUIRE(t != NULL);
+ p = strptime(buf, "%a, %d %b %Y %H:%M:%S", &t_tm);
+ if (p == NULL)
+ return (ISC_R_UNEXPECTED);
+ when = timetfromtm(&t_tm);
+ if (when == -1)
+ return (ISC_R_UNEXPECTED);
+ isc_time_set(t, when, 0);
+ return (ISC_R_SUCCESS);
+}
+
void
isc_time_formatISO8601(const isc_time_t *t, char *buf, unsigned int len) {
time_t now;
diff --git a/lib/isc/win32/include/isc/platform.h.in b/lib/isc/win32/include/isc/platform.h.in
index cb33d0e4..1abbbc01 100644
--- a/lib/isc/win32/include/isc/platform.h.in
+++ b/lib/isc/win32/include/isc/platform.h.in
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -104,6 +104,12 @@
@ISC_PLATFORM_HAVECMPXCHG@
/*
+ * If the strcasestr() operation is not available on this platform,
+ * ISC_PLATFORM_NEEDSTRCASESTR will be defined.
+ */
+@ISC_PLATFORM_NEEDSTRCASESTR@
+
+/*
* Set up a macro for importing and exporting from the DLL
*/
diff --git a/lib/isc/win32/include/isc/time.h b/lib/isc/win32/include/isc/time.h
index 7db1da38..fe842ab9 100644
--- a/lib/isc/win32/include/isc/time.h
+++ b/lib/isc/win32/include/isc/time.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2006-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2006-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -224,6 +224,16 @@ isc_time_microdiff(const isc_time_t *t1, const isc_time_t *t2);
* The difference of t1 - t2, or 0 if t1 <= t2.
*/
+isc_result_t
+isc_time_parsehttptimestamp(char *input, isc_time_t *t);
+/*%<
+ * Parse the time in 'input' into the isc_time_t pointed to by 't',
+ * expecting a format like "Mon, 30 Aug 2000 04:06:47 GMT"
+ *
+ * Requires:
+ *\li 'buf' and 't' are not NULL.
+ */
+
isc_uint32_t
isc_time_nanoseconds(const isc_time_t *t);
/*
@@ -269,6 +279,16 @@ isc_time_formathttptimestamp(const isc_time_t *t, char *buf, unsigned int len);
*
*/
+isc_result_t
+isc_time_parsehttptimestamp(char *input, isc_time_t *t);
+/*%<
+ * Parse the time in 'input' into the isc_time_t pointed to by 't',
+ * expecting a format like "Mon, 30 Aug 2000 04:06:47 GMT"
+ *
+ * Requires:
+ *\li 'buf' and 't' are not NULL.
+ */
+
void
isc_time_formatISO8601(const isc_time_t *t, char *buf, unsigned int len);
/*%<
@@ -285,6 +305,36 @@ isc_time_formatISO8601(const isc_time_t *t, char *buf, unsigned int len);
isc_uint32_t
isc_time_seconds(const isc_time_t *t);
+/*%<
+ * Return the number of seconds since the epoch stored in a time structure.
+ *
+ * Requires:
+ *
+ *\li 't' is a valid pointer.
+ */
+
+isc_result_t
+isc_time_secondsastimet(const isc_time_t *t, time_t *secondsp);
+/*%<
+ * Ensure the number of seconds in an isc_time_t is representable by a time_t.
+ *
+ * Notes:
+ *\li The number of seconds stored in an isc_time_t might be larger
+ * than the number of seconds a time_t is able to handle. Since
+ * time_t is mostly opaque according to the ANSI/ISO standard
+ * (essentially, all you can be sure of is that it is an arithmetic type,
+ * not even necessarily integral), it can be tricky to ensure that
+ * the isc_time_t is in the range a time_t can handle. Use this
+ * function in place of isc_time_seconds() any time you need to set a
+ * time_t from an isc_time_t.
+ *
+ * Requires:
+ *\li 't' is a valid pointer.
+ *
+ * Returns:
+ *\li Success
+ *\li Out of range
+ */
ISC_LANG_ENDDECLS
diff --git a/lib/isc/win32/interfaceiter.c b/lib/isc/win32/interfaceiter.c
index c7a9cbb2..7d1dc1b9 100644
--- a/lib/isc/win32/interfaceiter.c
+++ b/lib/isc/win32/interfaceiter.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007-2009, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007-2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -88,14 +88,14 @@ get_addr(unsigned int family, isc_netaddr_t *dst, struct sockaddr *src) {
dst->family = family;
switch (family) {
case AF_INET:
- memcpy(&dst->type.in,
- &((struct sockaddr_in *) src)->sin_addr,
- sizeof(struct in_addr));
+ memmove(&dst->type.in,
+ &((struct sockaddr_in *) src)->sin_addr,
+ sizeof(struct in_addr));
break;
case AF_INET6:
- memcpy(&dst->type.in6,
- &((struct sockaddr_in6 *) src)->sin6_addr,
- sizeof(struct in6_addr));
+ memmove(&dst->type.in6,
+ &((struct sockaddr_in6 *) src)->sin6_addr,
+ sizeof(struct in6_addr));
dst->zone = ((struct sockaddr_in6 *) src)->sin6_scope_id;
break;
default:
@@ -425,7 +425,7 @@ internal_next(isc_interfaceiter_t *iter) {
return (ISC_R_NOMORE);
memset(&(iter->IFData), 0, sizeof(INTERFACE_INFO));
- memcpy(&(iter->IFData), iter->pos4, sizeof(INTERFACE_INFO));
+ memmove(&(iter->IFData), iter->pos4, sizeof(INTERFACE_INFO));
iter->numIF++;
return (ISC_R_SUCCESS);
@@ -443,7 +443,7 @@ isc_result_t
isc_interfaceiter_current(isc_interfaceiter_t *iter,
isc_interface_t *ifdata) {
REQUIRE(iter->result == ISC_R_SUCCESS);
- memcpy(ifdata, &iter->current, sizeof(*ifdata));
+ memmove(ifdata, &iter->current, sizeof(*ifdata));
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/win32/libisc.def.in b/lib/isc/win32/libisc.def.in
index 56c4c254..f03fd879 100644
--- a/lib/isc/win32/libisc.def.in
+++ b/lib/isc/win32/libisc.def.in
@@ -302,6 +302,7 @@ isc_hmacsha512_sign
isc_hmacsha512_update
isc_hmacsha512_verify
isc_httpdmgr_addurl
+isc_httpdmgr_addurl2
isc_httpdmgr_create
isc_httpdmgr_shutdown
isc_interfaceiter_create
@@ -546,6 +547,7 @@ isc_string_printf
isc_string_printf_truncate
isc_string_regiondup
isc_string_separate
+isc_string_strcasestr
isc_string_strlcat
isc_string_strlcpy
isc_string_touint64
@@ -580,6 +582,8 @@ isc_time_microdiff
isc_time_nanoseconds
isc_time_now
isc_time_nowplusinterval
+isc_time_parsehttptimestamp
+isc_time_secondsastimet
isc_time_seconds
isc_time_set
isc_time_settoepoch
diff --git a/lib/isc/win32/socket.c b/lib/isc/win32/socket.c
index 40ba86a4..d1bee78c 100644
--- a/lib/isc/win32/socket.c
+++ b/lib/isc/win32/socket.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -955,7 +955,7 @@ build_msghdr_send(isc_socket_t *sock, isc_socketevent_t *dev,
memset(msg, 0, sizeof(*msg));
- memcpy(&msg->to_addr, &dev->address.type, dev->address.length);
+ memmove(&msg->to_addr, &dev->address.type, dev->address.length);
msg->to_addr_len = dev->address.length;
buffer = ISC_LIST_HEAD(dev->bufferlist);
@@ -977,7 +977,7 @@ build_msghdr_send(isc_socket_t *sock, isc_socketevent_t *dev,
"alloc_buffer %p %d %p %d", cpbuffer, sizeof(buflist_t),
cpbuffer->buf, write_count);
- memcpy(cpbuffer->buf,(dev->region.base + dev->n), write_count);
+ memmove(cpbuffer->buf,(dev->region.base + dev->n), write_count);
cpbuffer->buflen = (unsigned int)write_count;
ISC_LIST_ENQUEUE(lpo->bufferlist, cpbuffer, link);
iov[0].buf = cpbuffer->buf;
@@ -1017,7 +1017,7 @@ build_msghdr_send(isc_socket_t *sock, isc_socketevent_t *dev,
"alloc_buffer %p %d %p %d", cpbuffer, sizeof(buflist_t),
cpbuffer->buf, write_count);
- memcpy(cpbuffer->buf,(used.base + skip_count), uselen);
+ memmove(cpbuffer->buf,(used.base + skip_count), uselen);
cpbuffer->buflen = uselen;
iov[iovcount].buf = cpbuffer->buf;
iov[iovcount].len = (u_long)(used.length - skip_count);
@@ -1220,8 +1220,8 @@ fill_recv(isc_socket_t *sock, isc_socketevent_t *dev) {
if (sock->type == isc_sockettype_udp) {
dev->address.length = sock->recvbuf.from_addr_len;
- memcpy(&dev->address.type, &sock->recvbuf.from_addr,
- sock->recvbuf.from_addr_len);
+ memmove(&dev->address.type, &sock->recvbuf.from_addr,
+ sock->recvbuf.from_addr_len);
if (isc_sockaddr_getport(&dev->address) == 0) {
if (isc_log_wouldlog(isc_lctx, IOEVENT_LEVEL)) {
socket_log(__LINE__, sock, &dev->address, IOEVENT,
@@ -1247,8 +1247,10 @@ fill_recv(isc_socket_t *sock, isc_socketevent_t *dev) {
REQUIRE(ISC_BUFFER_VALID(buffer));
if (isc_buffer_availablelength(buffer) > 0) {
isc_buffer_availableregion(buffer, &r);
- copylen = min(r.length, sock->recvbuf.remaining);
- memcpy(r.base, sock->recvbuf.consume_position, copylen);
+ copylen = min(r.length,
+ sock->recvbuf.remaining);
+ memmove(r.base, sock->recvbuf.consume_position,
+ copylen);
sock->recvbuf.consume_position += copylen;
sock->recvbuf.remaining -= copylen;
isc_buffer_add(buffer, copylen);
@@ -1258,7 +1260,8 @@ fill_recv(isc_socket_t *sock, isc_socketevent_t *dev) {
}
} else { // Single-buffer receive
copylen = min(dev->region.length - dev->n, sock->recvbuf.remaining);
- memcpy(dev->region.base + dev->n, sock->recvbuf.consume_position, copylen);
+ memmove(dev->region.base + dev->n,
+ sock->recvbuf.consume_position, copylen);
sock->recvbuf.consume_position += copylen;
sock->recvbuf.remaining -= copylen;
dev->n += copylen;
@@ -2061,7 +2064,7 @@ internal_accept(isc_socket_t *sock, IoCompletionInfo *lpo, int accept_errno) {
sizeof(SOCKADDR_STORAGE) + 16, sizeof(SOCKADDR_STORAGE) + 16,
(LPSOCKADDR *)&localaddr, &localaddr_len,
(LPSOCKADDR *)&remoteaddr, &remoteaddr_len);
- memcpy(&adev->address.type, remoteaddr, remoteaddr_len);
+ memmove(&adev->address.type, remoteaddr, remoteaddr_len);
adev->address.length = remoteaddr_len;
nsock->address = adev->address;
nsock->pf = adev->address.type.sa.sa_family;
diff --git a/lib/isc/win32/strptime.c b/lib/isc/win32/strptime.c
new file mode 100644
index 00000000..10dcec1e
--- /dev/null
+++ b/lib/isc/win32/strptime.c
@@ -0,0 +1,392 @@
+/*-
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code was contributed to The NetBSD Foundation by Klaus Klein.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+/*
+ * We do not implement alternate representations. However, we always
+ * check whether a given modifier is allowed for a certain conversion.
+ */
+#define ALT_E 0x01
+#define ALT_O 0x02
+#define LEGAL_ALT(x) { if (alt_format & ~(x)) return (0); }
+
+#ifndef TM_YEAR_BASE
+#define TM_YEAR_BASE 1900
+#endif
+
+static int conv_num(const char **, int *, int, int);
+
+static const char *day[7] = {
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
+ "Friday", "Saturday"
+};
+static const char *abday[7] = {
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+};
+static const char *mon[12] = {
+ "January", "February", "March", "April", "May", "June", "July",
+ "August", "September", "October", "November", "December"
+};
+static const char *abmon[12] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+};
+static const char *am_pm[2] = {
+ "AM", "PM"
+};
+
+static char *
+strptime(const char *buf, const char *fmt, struct tm *tm) {
+ char c;
+ const char *bp;
+ size_t len = 0;
+ int alt_format, i, split_year = 0;
+
+ bp = buf;
+
+ while ((c = *fmt) != '\0') {
+ /* Clear `alternate' modifier prior to new conversion. */
+ alt_format = 0;
+
+ /* Eat up white-space. */
+ if (isspace(c)) {
+ while (isspace(*bp))
+ bp++;
+
+ fmt++;
+ continue;
+ }
+
+ if ((c = *fmt++) != '%')
+ goto literal;
+
+
+again: switch (c = *fmt++) {
+ case '%': /* "%%" is converted to "%". */
+literal:
+ if (c != *bp++)
+ return (0);
+ break;
+
+ /*
+ * "Alternative" modifiers. Just set the appropriate flag
+ * and start over again.
+ */
+ case 'E': /* "%E?" alternative conversion modifier. */
+ LEGAL_ALT(0);
+ alt_format |= ALT_E;
+ goto again;
+
+ case 'O': /* "%O?" alternative conversion modifier. */
+ LEGAL_ALT(0);
+ alt_format |= ALT_O;
+ goto again;
+
+ /*
+ * "Complex" conversion rules, implemented through recursion.
+ */
+ case 'c': /* Date and time, using the locale's format. */
+ LEGAL_ALT(ALT_E);
+ if (!(bp = strptime(bp, "%x %X", tm)))
+ return (0);
+ break;
+
+ case 'D': /* The date as "%m/%d/%y". */
+ LEGAL_ALT(0);
+ if (!(bp = strptime(bp, "%m/%d/%y", tm)))
+ return (0);
+ break;
+
+ case 'R': /* The time as "%H:%M". */
+ LEGAL_ALT(0);
+ if (!(bp = strptime(bp, "%H:%M", tm)))
+ return (0);
+ break;
+
+ case 'r': /* The time in 12-hour clock representation. */
+ LEGAL_ALT(0);
+ if (!(bp = strptime(bp, "%I:%M:%S %p", tm)))
+ return (0);
+ break;
+
+ case 'T': /* The time as "%H:%M:%S". */
+ LEGAL_ALT(0);
+ if (!(bp = strptime(bp, "%H:%M:%S", tm)))
+ return (0);
+ break;
+
+ case 'X': /* The time, using the locale's format. */
+ LEGAL_ALT(ALT_E);
+ if (!(bp = strptime(bp, "%H:%M:%S", tm)))
+ return (0);
+ break;
+
+ case 'x': /* The date, using the locale's format. */
+ LEGAL_ALT(ALT_E);
+ if (!(bp = strptime(bp, "%m/%d/%y", tm)))
+ return (0);
+ break;
+
+ /*
+ * "Elementary" conversion rules.
+ */
+ case 'A': /* The day of week, using the locale's form. */
+ case 'a':
+ LEGAL_ALT(0);
+ for (i = 0; i < 7; i++) {
+ /* Full name. */
+ len = strlen(day[i]);
+ if (strncasecmp(day[i], bp, len) == 0)
+ break;
+
+ /* Abbreviated name. */
+ len = strlen(abday[i]);
+ if (strncasecmp(abday[i], bp, len) == 0)
+ break;
+ }
+
+ /* Nothing matched. */
+ if (i == 7)
+ return (0);
+
+ tm->tm_wday = i;
+ bp += len;
+ break;
+
+ case 'B': /* The month, using the locale's form. */
+ case 'b':
+ case 'h':
+ LEGAL_ALT(0);
+ for (i = 0; i < 12; i++) {
+ /* Full name. */
+ len = strlen(mon[i]);
+ if (strncasecmp(mon[i], bp, len) == 0)
+ break;
+
+ /* Abbreviated name. */
+ len = strlen(abmon[i]);
+ if (strncasecmp(abmon[i], bp, len) == 0)
+ break;
+ }
+
+ /* Nothing matched. */
+ if (i == 12)
+ return (0);
+
+ tm->tm_mon = i;
+ bp += len;
+ break;
+
+ case 'C': /* The century number. */
+ LEGAL_ALT(ALT_E);
+ if (!(conv_num(&bp, &i, 0, 99)))
+ return (0);
+
+ if (split_year) {
+ tm->tm_year = (tm->tm_year % 100) + (i * 100);
+ } else {
+ tm->tm_year = i * 100;
+ split_year = 1;
+ }
+ break;
+
+ case 'd': /* The day of month. */
+ case 'e':
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_mday, 1, 31)))
+ return (0);
+ break;
+
+ case 'k': /* The hour (24-hour clock representation). */
+ LEGAL_ALT(0);
+ /* FALLTHROUGH */
+ case 'H':
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_hour, 0, 23)))
+ return (0);
+ break;
+
+ case 'l': /* The hour (12-hour clock representation). */
+ LEGAL_ALT(0);
+ /* FALLTHROUGH */
+ case 'I':
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_hour, 1, 12)))
+ return (0);
+ if (tm->tm_hour == 12)
+ tm->tm_hour = 0;
+ break;
+
+ case 'j': /* The day of year. */
+ LEGAL_ALT(0);
+ if (!(conv_num(&bp, &i, 1, 366)))
+ return (0);
+ tm->tm_yday = i - 1;
+ break;
+
+ case 'M': /* The minute. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_min, 0, 59)))
+ return (0);
+ break;
+
+ case 'm': /* The month. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &i, 1, 12)))
+ return (0);
+ tm->tm_mon = i - 1;
+ break;
+
+ case 'p': /* The locale's equivalent of AM/PM. */
+ LEGAL_ALT(0);
+ /* AM? */
+ if (strcasecmp(am_pm[0], bp) == 0) {
+ if (tm->tm_hour > 11)
+ return (0);
+
+ bp += strlen(am_pm[0]);
+ break;
+ }
+ /* PM? */
+ else if (strcasecmp(am_pm[1], bp) == 0) {
+ if (tm->tm_hour > 11)
+ return (0);
+
+ tm->tm_hour += 12;
+ bp += strlen(am_pm[1]);
+ break;
+ }
+
+ /* Nothing matched. */
+ return (0);
+
+ case 'S': /* The seconds. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_sec, 0, 61)))
+ return (0);
+ break;
+
+ case 'U': /* The week of year, beginning on sunday. */
+ case 'W': /* The week of year, beginning on monday. */
+ LEGAL_ALT(ALT_O);
+ /*
+ * XXX This is bogus, as we can not assume any valid
+ * information present in the tm structure at this
+ * point to calculate a real value, so just check the
+ * range for now.
+ */
+ if (!(conv_num(&bp, &i, 0, 53)))
+ return (0);
+ break;
+
+ case 'w': /* The day of week, beginning on sunday. */
+ LEGAL_ALT(ALT_O);
+ if (!(conv_num(&bp, &tm->tm_wday, 0, 6)))
+ return (0);
+ break;
+
+ case 'Y': /* The year. */
+ LEGAL_ALT(ALT_E);
+ if (!(conv_num(&bp, &i, 0, 9999)))
+ return (0);
+
+ tm->tm_year = i - TM_YEAR_BASE;
+ break;
+
+ case 'y': /* The year within 100 years of the epoch. */
+ LEGAL_ALT(ALT_E | ALT_O);
+ if (!(conv_num(&bp, &i, 0, 99)))
+ return (0);
+
+ if (split_year) {
+ tm->tm_year = ((tm->tm_year / 100) * 100) + i;
+ break;
+ }
+ split_year = 1;
+ if (i <= 68)
+ tm->tm_year = i + 2000 - TM_YEAR_BASE;
+ else
+ tm->tm_year = i + 1900 - TM_YEAR_BASE;
+ break;
+
+ /*
+ * Miscellaneous conversions.
+ */
+ case 'n': /* Any kind of white-space. */
+ case 't':
+ LEGAL_ALT(0);
+ while (isspace(*bp))
+ bp++;
+ break;
+
+
+ default: /* Unknown/unsupported conversion. */
+ return (0);
+ }
+
+
+ }
+
+ /* LINTED functional specification */
+ return ((char *)bp);
+}
+
+static int
+conv_num(const char **buf, int *dest, int llim, int ulim) {
+ int result = 0;
+
+ /* The limit also determines the number of valid digits. */
+ int rulim = ulim;
+
+ if (**buf < '0' || **buf > '9')
+ return (0);
+
+ do {
+ result *= 10;
+ result += *(*buf)++ - '0';
+ rulim /= 10;
+ } while ((result * 10 <= ulim) &&
+ rulim && **buf >= '0' && **buf <= '9');
+
+ if (result < llim || result > ulim)
+ return (0);
+
+ *dest = result;
+ return (1);
+}
diff --git a/lib/isc/win32/time.c b/lib/isc/win32/time.c
index ff25c4d3..6c38e25a 100644
--- a/lib/isc/win32/time.c
+++ b/lib/isc/win32/time.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2006-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2006-2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -91,8 +91,8 @@ isc_time_set(isc_time_t *t, unsigned int seconds, unsigned int nanoseconds) {
SystemTimeToFileTime(&epoch, &temp);
- i1.LowPart = t->absolute.dwLowDateTime;
- i1.HighPart = t->absolute.dwHighDateTime;
+ i1.LowPart = temp.dwLowDateTime;
+ i1.HighPart = temp.dwHighDateTime;
i1.QuadPart += (unsigned __int64)nanoseconds/100;
i1.QuadPart += (unsigned __int64)seconds*10000000;
@@ -243,6 +243,26 @@ isc_time_seconds(const isc_time_t *t) {
return ((isc_uint32_t)i3);
}
+isc_result_t
+isc_time_secondsastimet(const isc_time_t *t, time_t *secondsp) {
+ time_t seconds;
+
+ REQUIRE(t != NULL);
+
+ seconds = (time_t)isc_time_seconds(t);
+
+ INSIST(sizeof(unsigned int) == sizeof(isc_uint32_t));
+ INSIST(sizeof(time_t) >= sizeof(isc_uint32_t));
+
+ if (isc_time_seconds(t) > (~0U>>1) && seconds <= (time_t)(~0U>>1))
+ return (ISC_R_RANGE);
+
+ *secondsp = seconds;
+
+ return (ISC_R_SUCCESS);
+}
+
+
isc_uint32_t
isc_time_nanoseconds(const isc_time_t *t) {
ULARGE_INTEGER i;
@@ -298,6 +318,50 @@ isc_time_formathttptimestamp(const isc_time_t *t, char *buf, unsigned int len) {
}
}
+static time_t
+timetfromtm(struct tm *tm) {
+ time_t ret;
+ int i, yday = 0, leapday;
+ int mdays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };
+
+ leapday = ((((tm->tm_year + 1900 ) % 4) == 0 &&
+ ((tm->tm_year + 1900 ) % 100) != 0) ||
+ ((tm->tm_year + 1900 ) % 400) == 0) ? 1 : 0;
+ mdays[1] += leapday;
+
+ yday = tm->tm_mday - 1;
+ for (i = 1; i <= tm->tm_mon; i++)
+ yday += mdays[i - 1];
+ ret = tm->tm_sec +
+ (60 * tm->tm_min) +
+ (3600 * tm->tm_hour) +
+ (86400 * (yday +
+ ((tm->tm_year - 70) * 365) +
+ ((tm->tm_year - 69) / 4) -
+ ((tm->tm_year - 1) / 100) +
+ ((tm->tm_year + 299) / 400)));
+ return (ret);
+}
+
+#include "strptime.c"
+isc_result_t
+isc_time_parsehttptimestamp(char *buf, isc_time_t *t) {
+ struct tm t_tm;
+ time_t when;
+ char *p;
+
+ REQUIRE(buf != NULL);
+ REQUIRE(t != NULL);
+ p = strptime(buf, "%a, %d %b %Y %H:%M:%S", &t_tm);
+ if (p == NULL)
+ return (ISC_R_UNEXPECTED);
+ when = timetfromtm(&t_tm);
+ if (when == -1)
+ return (ISC_R_UNEXPECTED);
+ isc_time_set(t, when, 0);
+ return (ISC_R_SUCCESS);
+}
+
void
isc_time_formatISO8601(const isc_time_t *t, char *buf, unsigned int len) {
SYSTEMTIME st;
diff --git a/lib/isccc/api b/lib/isccc/api
index 51898234..864bdc90 100644
--- a/lib/isccc/api
+++ b/lib/isccc/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 90
-LIBREVISION = 5
+LIBREVISION = 6
LIBAGE = 0
diff --git a/lib/isccc/include/isccc/util.h b/lib/isccc/include/isccc/util.h
index 2e36b6e3..4b8c7ad9 100644
--- a/lib/isccc/include/isccc/util.h
+++ b/lib/isccc/include/isccc/util.h
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -52,37 +52,37 @@
#define GET16(v, w) \
do { \
v = (unsigned int)w[0] << 8; \
- v |= (unsigned int)w[1]; \
+ v |= (unsigned int)w[1]; \
w += 2; \
} while (0)
#define GET24(v, w) \
do { \
- v = (unsigned int)w[0] << 16; \
- v |= (unsigned int)w[1] << 8; \
- v |= (unsigned int)w[2]; \
+ v = (unsigned int)w[0] << 16; \
+ v |= (unsigned int)w[1] << 8; \
+ v |= (unsigned int)w[2]; \
w += 3; \
} while (0)
#define GET32(v, w) \
do { \
v = (unsigned int)w[0] << 24; \
- v |= (unsigned int)w[1] << 16; \
- v |= (unsigned int)w[2] << 8; \
- v |= (unsigned int)w[3]; \
+ v |= (unsigned int)w[1] << 16; \
+ v |= (unsigned int)w[2] << 8; \
+ v |= (unsigned int)w[3]; \
w += 4; \
} while (0)
#define GET64(v, w) \
do { \
v = (isc_uint64_t)w[0] << 56; \
- v |= (isc_uint64_t)w[1] << 48; \
- v |= (isc_uint64_t)w[2] << 40; \
- v |= (isc_uint64_t)w[3] << 32; \
- v |= (isc_uint64_t)w[4] << 24; \
- v |= (isc_uint64_t)w[5] << 16; \
- v |= (isc_uint64_t)w[6] << 8; \
- v |= (isc_uint64_t)w[7]; \
+ v |= (isc_uint64_t)w[1] << 48; \
+ v |= (isc_uint64_t)w[2] << 40; \
+ v |= (isc_uint64_t)w[3] << 32; \
+ v |= (isc_uint64_t)w[4] << 24; \
+ v |= (isc_uint64_t)w[5] << 16; \
+ v |= (isc_uint64_t)w[6] << 8; \
+ v |= (isc_uint64_t)w[7]; \
w += 8; \
} while (0)
@@ -91,7 +91,7 @@
GET8(v, w); \
if (v == 0) \
d = ISCCC_TRUE; \
- else { \
+ else { \
d = ISCCC_FALSE; \
if (v == 255) \
GET16(v, w); \
@@ -101,7 +101,7 @@
#define GETC32(v, w) \
do { \
GET24(v, w); \
- if (v == 0xffffffu) \
+ if (v == 0xffffffu) \
GET32(v, w); \
} while (0)
@@ -109,7 +109,7 @@
#define GET_MEM(v, c, w) \
do { \
- memcpy(v, w, c); \
+ memmove(v, w, c); \
w += c; \
} while (0)
@@ -193,7 +193,7 @@
#define PUT_MEM(s, c, w) \
do { \
- memcpy(w, s, c); \
+ memmove(w, s, c); \
w += c; \
} while (0)
diff --git a/lib/isccc/sexpr.c b/lib/isccc/sexpr.c
index e96536df..df11a930 100644
--- a/lib/isccc/sexpr.c
+++ b/lib/isccc/sexpr.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -112,7 +112,7 @@ isccc_sexpr_frombinary(const isccc_region_t *region)
}
sexpr->value.as_region.rend = sexpr->value.as_region.rstart +
region_size;
- memcpy(sexpr->value.as_region.rstart, region->rstart, region_size);
+ memmove(sexpr->value.as_region.rstart, region->rstart, region_size);
/*
* NUL terminate.
*/
@@ -311,7 +311,7 @@ isccc_sexpr_tostring(isccc_sexpr_t *sexpr)
REQUIRE(sexpr != NULL &&
(sexpr->type == ISCCC_SEXPRTYPE_STRING ||
sexpr->type == ISCCC_SEXPRTYPE_BINARY));
-
+
if (sexpr->type == ISCCC_SEXPRTYPE_BINARY)
return ((char *)sexpr->value.as_region.rstart);
return (sexpr->value.as_string);
diff --git a/lib/isccfg/api b/lib/isccfg/api
index a27437f4..7e580435 100644
--- a/lib/isccfg/api
+++ b/lib/isccfg/api
@@ -4,6 +4,6 @@
# 9.8: 80-89, 120-129
# 9.9: 90-109
# 9.9-sub: 130-139
-LIBINTERFACE = 90
-LIBREVISION = 7
-LIBAGE = 0
+LIBINTERFACE = 91
+LIBREVISION = 0
+LIBAGE = 1
diff --git a/lib/isccfg/include/isccfg/cfg.h b/lib/isccfg/include/isccfg/cfg.h
index b21a3d86..a99c7637 100644
--- a/lib/isccfg/include/isccfg/cfg.h
+++ b/lib/isccfg/include/isccfg/cfg.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2010, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -380,10 +380,20 @@ void
cfg_print(const cfg_obj_t *obj,
void (*f)(void *closure, const char *text, int textlen),
void *closure);
+void
+cfg_printx(const cfg_obj_t *obj, unsigned int flags,
+ void (*f)(void *closure, const char *text, int textlen),
+ void *closure);
+
+#define CFG_PRINTER_XKEY 0x1 /* '?' out shared keys. */
+
/*%<
* Print the configuration object 'obj' by repeatedly calling the
* function 'f', passing 'closure' and a region of text starting
* at 'text' and comprising 'textlen' characters.
+ *
+ * If CFG_PRINTER_XKEY the contents of shared keys will be obscured
+ * by replacing them with question marks ('?')
*/
void
diff --git a/lib/isccfg/include/isccfg/grammar.h b/lib/isccfg/include/isccfg/grammar.h
index 2d7080c2..ee76ff29 100644
--- a/lib/isccfg/include/isccfg/grammar.h
+++ b/lib/isccfg/include/isccfg/grammar.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2011, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -86,6 +86,7 @@ struct cfg_printer {
void (*f)(void *closure, const char *text, int textlen);
void *closure;
int indent;
+ int flags;
};
/*% A clause definition. */
@@ -266,6 +267,7 @@ LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_uint64;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_qstring;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_astring;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_ustring;
+LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_sstring;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_sockaddr;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_netaddr;
LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_netaddr4;
@@ -314,6 +316,9 @@ isc_result_t
cfg_parse_astring(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret);
isc_result_t
+cfg_parse_sstring(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret);
+
+isc_result_t
cfg_parse_rawaddr(cfg_parser_t *pctx, unsigned int flags, isc_netaddr_t *na);
void
diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c
index be28ea71..f11e2938 100644
--- a/lib/isccfg/namedconf.c
+++ b/lib/isccfg/namedconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -370,7 +370,7 @@ parse_updatepolicy(cfg_parser_t *pctx, const cfg_type_t *type,
isc_mem_put(pctx->mctx, obj, sizeof(*obj));
return (ISC_R_NOMEMORY);
}
- memcpy(obj->value.string.base, "local", 5);
+ memmove(obj->value.string.base, "local", 5);
obj->value.string.base[5] = '\0';
*ret = obj;
return (ISC_R_SUCCESS);
@@ -1709,7 +1709,7 @@ static cfg_type_t cfg_type_dynamically_loadable_zones_opts = {
static cfg_clausedef_t
key_clauses[] = {
{ "algorithm", &cfg_type_astring, 0 },
- { "secret", &cfg_type_astring, 0 },
+ { "secret", &cfg_type_sstring, 0 },
{ NULL, NULL, 0 }
};
diff --git a/lib/isccfg/parser.c b/lib/isccfg/parser.c
index de0fa31e..1708344e 100644
--- a/lib/isccfg/parser.c
+++ b/lib/isccfg/parser.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -183,14 +183,22 @@ cfg_print(const cfg_obj_t *obj,
void (*f)(void *closure, const char *text, int textlen),
void *closure)
{
+ cfg_printx(obj, 0, f, closure);
+}
+
+void
+cfg_printx(const cfg_obj_t *obj, unsigned int flags,
+ void (*f)(void *closure, const char *text, int textlen),
+ void *closure)
+{
cfg_printer_t pctx;
pctx.f = f;
pctx.closure = closure;
pctx.indent = 0;
+ pctx.flags = flags;
obj->type->print(&pctx, obj);
}
-
/* Tuples. */
isc_result_t
@@ -702,7 +710,7 @@ create_string(cfg_parser_t *pctx, const char *contents, const cfg_type_t *type,
isc_mem_put(pctx->mctx, obj, sizeof(*obj));
return (ISC_R_NOMEMORY);
}
- memcpy(obj->value.string.base, contents, len);
+ memmove(obj->value.string.base, contents, len);
obj->value.string.base[len] = '\0';
*ret = obj;
@@ -762,6 +770,22 @@ cfg_parse_astring(cfg_parser_t *pctx, const cfg_type_t *type,
return (result);
}
+isc_result_t
+cfg_parse_sstring(cfg_parser_t *pctx, const cfg_type_t *type,
+ cfg_obj_t **ret)
+{
+ isc_result_t result;
+ UNUSED(type);
+
+ CHECK(cfg_getstringtoken(pctx));
+ return (create_string(pctx,
+ TOKEN_STRING(pctx),
+ &cfg_type_sstring,
+ ret));
+ cleanup:
+ return (result);
+}
+
isc_boolean_t
cfg_is_enum(const char *s, const char *const *enums) {
const char * const *p;
@@ -819,6 +843,18 @@ print_qstring(cfg_printer_t *pctx, const cfg_obj_t *obj) {
}
static void
+print_sstring(cfg_printer_t *pctx, const cfg_obj_t *obj) {
+ cfg_print_chars(pctx, "\"", 1);
+ if ((pctx->flags & CFG_PRINTER_XKEY) != 0) {
+ unsigned int len = obj->value.string.length;
+ while (len-- > 0)
+ cfg_print_chars(pctx, "?", 1);
+ } else
+ cfg_print_ustring(pctx, obj);
+ cfg_print_chars(pctx, "\"", 1);
+}
+
+static void
free_string(cfg_parser_t *pctx, cfg_obj_t *obj) {
isc_mem_put(pctx->mctx, obj->value.string.base,
obj->value.string.length + 1);
@@ -855,6 +891,15 @@ cfg_type_t cfg_type_astring = {
};
/*
+ * Any string (quoted or unquoted); printed with quotes.
+ * If CFG_PRINTER_XKEY is set when printing the string will be '?' out.
+ */
+cfg_type_t cfg_type_sstring = {
+ "string", cfg_parse_sstring, print_sstring, cfg_doc_terminal,
+ &cfg_rep_string, NULL
+};
+
+/*
* Booleans
*/
@@ -1631,7 +1676,7 @@ parse_token(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
goto cleanup;
}
obj->value.string.length = r.length;
- memcpy(obj->value.string.base, r.base, r.length);
+ memmove(obj->value.string.base, r.base, r.length);
obj->value.string.base[r.length] = '\0';
*ret = obj;
return (result);
@@ -2480,5 +2525,6 @@ cfg_print_grammar(const cfg_type_t *type,
pctx.f = f;
pctx.closure = closure;
pctx.indent = 0;
+ pctx.flags = 0;
cfg_doc_obj(&pctx, type);
}
diff --git a/lib/isccfg/win32/libisccfg.def b/lib/isccfg/win32/libisccfg.def
index 98abbcf8..95cdcc78 100644
--- a/lib/isccfg/win32/libisccfg.def
+++ b/lib/isccfg/win32/libisccfg.def
@@ -42,6 +42,7 @@ cfg_parser_create
cfg_parser_destroy
cfg_parser_setcallback
cfg_print
+cfg_printx
cfg_tuple_get
; Exported Data
diff --git a/lib/lwres/api b/lib/lwres/api
index 864bdc90..a27437f4 100644
--- a/lib/lwres/api
+++ b/lib/lwres/api
@@ -5,5 +5,5 @@
# 9.9: 90-109
# 9.9-sub: 130-139
LIBINTERFACE = 90
-LIBREVISION = 6
+LIBREVISION = 7
LIBAGE = 0
diff --git a/lib/lwres/context.c b/lib/lwres/context.c
index e16bc0aa..0dc5199b 100644
--- a/lib/lwres/context.c
+++ b/lib/lwres/context.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -303,8 +303,8 @@ context_connect(lwres_context_t *ctx) {
int domain;
if (ctx->confdata.lwnext != 0) {
- memcpy(&ctx->address, &ctx->confdata.lwservers[0],
- sizeof(lwres_addr_t));
+ memmove(&ctx->address, &ctx->confdata.lwservers[0],
+ sizeof(lwres_addr_t));
LWRES_LINK_INIT(&ctx->address, link);
} else {
/* The default is the IPv4 loopback address 127.0.0.1. */
@@ -318,16 +318,16 @@ context_connect(lwres_context_t *ctx) {
}
if (ctx->address.family == LWRES_ADDRTYPE_V4) {
- memcpy(&sin.sin_addr, ctx->address.address,
- sizeof(sin.sin_addr));
+ memmove(&sin.sin_addr, ctx->address.address,
+ sizeof(sin.sin_addr));
sin.sin_port = htons(lwres_udp_port);
sin.sin_family = AF_INET;
sa = (struct sockaddr *)&sin;
salen = sizeof(sin);
domain = PF_INET;
} else if (ctx->address.family == LWRES_ADDRTYPE_V6) {
- memcpy(&sin6.sin6_addr, ctx->address.address,
- sizeof(sin6.sin6_addr));
+ memmove(&sin6.sin6_addr, ctx->address.address,
+ sizeof(sin6.sin6_addr));
sin6.sin6_port = htons(lwres_udp_port);
sin6.sin6_family = AF_INET6;
sa = (struct sockaddr *)&sin6;
diff --git a/lib/lwres/getaddrinfo.c b/lib/lwres/getaddrinfo.c
index 7d5f2fb0..1ebafd85 100644
--- a/lib/lwres/getaddrinfo.c
+++ b/lib/lwres/getaddrinfo.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* This code is derived from software contributed to ISC by
@@ -392,7 +392,7 @@ lwres_getaddrinfo(const char *hostname, const char *servname,
* Convert to a V4 mapped address.
*/
struct in6_addr *a6 = (struct in6_addr *)abuf;
- memcpy(&a6->s6_addr[12], &a6->s6_addr[0], 4);
+ memmove(&a6->s6_addr[12], &a6->s6_addr[0], 4);
memset(&a6->s6_addr[10], 0xff, 2);
memset(&a6->s6_addr[0], 0, 10);
goto inet6_addr;
@@ -427,7 +427,7 @@ lwres_getaddrinfo(const char *hostname, const char *servname,
ai_list = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy((char *)ai->ai_addr + addroff, abuf, addrsize);
+ memmove((char *)ai->ai_addr + addroff, abuf, addrsize);
if (flags & AI_CANONNAME) {
#if defined(LWRES_HAVE_SIN6_SCOPE_ID)
if (ai->ai_family == AF_INET6)
@@ -579,7 +579,7 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr, v4_loop, 4);
} else {
lwres = lwres_getaddrsbyname(lwrctx, hostname,
LWRES_ADDRTYPE_V4, &by);
@@ -597,8 +597,8 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN(ai->ai_addr)->sin_port = port;
- memcpy(&SIN(ai->ai_addr)->sin_addr,
- addr->address, 4);
+ memmove(&SIN(ai->ai_addr)->sin_addr,
+ addr->address, 4);
if (flags & AI_CANONNAME) {
ai->ai_canonname = strdup(by->realname);
if (ai->ai_canonname == NULL)
@@ -643,7 +643,7 @@ add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN6(ai->ai_addr)->sin6_port = port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr, v6_loop, 16);
} else {
lwres = lwres_getaddrsbyname(lwrctx, hostname,
LWRES_ADDRTYPE_V6, &by);
@@ -661,8 +661,8 @@ add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
*aip = ai;
ai->ai_socktype = socktype;
SIN6(ai->ai_addr)->sin6_port = port;
- memcpy(&SIN6(ai->ai_addr)->sin6_addr,
- addr->address, 16);
+ memmove(&SIN6(ai->ai_addr)->sin6_addr,
+ addr->address, 16);
if (flags & AI_CANONNAME) {
ai->ai_canonname = strdup(by->realname);
if (ai->ai_canonname == NULL)
diff --git a/lib/lwres/gethost.c b/lib/lwres/gethost.c
index 60d9d5ee..e36fc188 100644
--- a/lib/lwres/gethost.c
+++ b/lib/lwres/gethost.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -331,7 +331,7 @@ copytobuf(struct hostent *he, struct hostent *hptr, char *buf, int buflen) {
*/
hptr->h_addr_list = ptr;
for (i = 0; he->h_addr_list[i]; i++, ptr++) {
- memcpy(cp, he->h_addr_list[i], n);
+ memmove(cp, he->h_addr_list[i], n);
hptr->h_addr_list[i] = cp;
cp += n;
}
diff --git a/lib/lwres/getipnode.c b/lib/lwres/getipnode.c
index 300376ef..85c396df 100644
--- a/lib/lwres/getipnode.c
+++ b/lib/lwres/getipnode.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -420,7 +420,7 @@ lwres_getipnodebyaddr(const void *src, size_t len, int af, int *error_num) {
/*
* Restore original address.
*/
- memcpy(he2->h_addr, src, len);
+ memmove(he2->h_addr, src, len);
return (he2);
}
@@ -595,7 +595,7 @@ scan_interfaces6(int *have_v4, int *have_v6) {
for (cp = buf;
(*have_v4 == 0 || *have_v6 == 0) && cp < cplim;
cp += cpsize) {
- memcpy(&lifreq, cp, sizeof(lifreq));
+ memmove(&lifreq, cp, sizeof(lifreq));
#ifdef LWRES_PLATFORM_HAVESALEN
#ifdef FIX_ZERO_SA_LEN
if (lifreq.lifr_addr.sa_len == 0)
@@ -620,10 +620,10 @@ scan_interfaces6(int *have_v4, int *have_v6) {
switch (lifreq.lifr_addr.ss_family) {
case AF_INET:
if (*have_v4 == 0) {
- memcpy(&in4,
- &((struct sockaddr_in *)
- &lifreq.lifr_addr)->sin_addr,
- sizeof(in4));
+ memmove(&in4,
+ &((struct sockaddr_in *)
+ &lifreq.lifr_addr)->sin_addr,
+ sizeof(in4));
if (in4.s_addr == INADDR_ANY)
break;
n = ioctl(s, SIOCGLIFFLAGS, (char *)&lifreq);
@@ -636,10 +636,10 @@ scan_interfaces6(int *have_v4, int *have_v6) {
break;
case AF_INET6:
if (*have_v6 == 0) {
- memcpy(&in6,
- &((struct sockaddr_in6 *)
- &lifreq.lifr_addr)->sin6_addr,
- sizeof(in6));
+ memmove(&in6,
+ &((struct sockaddr_in6 *)
+ &lifreq.lifr_addr)->sin6_addr,
+ sizeof(in6));
if (memcmp(&in6, &in6addr_any,
sizeof(in6)) == 0)
break;
@@ -760,7 +760,7 @@ scan_interfaces(int *have_v4, int *have_v6) {
for (cp = buf;
(*have_v4 == 0 || *have_v6 == 0) && cp < cplim;
cp += cpsize) {
- memcpy(&u.ifreq, cp, sizeof(u.ifreq));
+ memmove(&u.ifreq, cp, sizeof(u.ifreq));
#ifdef LWRES_PLATFORM_HAVESALEN
#ifdef FIX_ZERO_SA_LEN
if (u.ifreq.ifr_addr.sa_len == 0)
@@ -775,7 +775,7 @@ scan_interfaces(int *have_v4, int *have_v6) {
cpsize = sizeof(u.ifreq.ifr_name) + u.ifreq.ifr_addr.sa_len;
#endif /* HAVE_MINIMUM_IFREQ */
if (cpsize > sizeof(u.ifreq) && cpsize <= sizeof(u))
- memcpy(&u.ifreq, cp, cpsize);
+ memmove(&u.ifreq, cp, cpsize);
#elif defined SIOCGIFCONF_ADDR
cpsize = sizeof(u.ifreq);
#else
@@ -787,10 +787,10 @@ scan_interfaces(int *have_v4, int *have_v6) {
switch (u.ifreq.ifr_addr.sa_family) {
case AF_INET:
if (*have_v4 == 0) {
- memcpy(&in4,
- &((struct sockaddr_in *)
- &u.ifreq.ifr_addr)->sin_addr,
- sizeof(in4));
+ memmove(&in4,
+ &((struct sockaddr_in *)
+ &u.ifreq.ifr_addr)->sin_addr,
+ sizeof(in4));
if (in4.s_addr == INADDR_ANY)
break;
n = ioctl(s, SIOCGIFFLAGS, (char *)&u.ifreq);
@@ -803,10 +803,10 @@ scan_interfaces(int *have_v4, int *have_v6) {
break;
case AF_INET6:
if (*have_v6 == 0) {
- memcpy(&in6,
- &((struct sockaddr_in6 *)
- &u.ifreq.ifr_addr)->sin6_addr,
- sizeof(in6));
+ memmove(&in6,
+ &((struct sockaddr_in6 *)
+ &u.ifreq.ifr_addr)->sin6_addr,
+ sizeof(in6));
if (memcmp(&in6, &in6addr_any,
sizeof(in6)) == 0)
break;
@@ -908,13 +908,13 @@ copyandmerge(struct hostent *he1, struct hostent *he2, int af, int *error_num)
* Convert to mapped if required.
*/
if (af == AF_INET6 && he1->h_addrtype == AF_INET) {
- memcpy(*npp, in6addr_mapped,
- sizeof(in6addr_mapped));
- memcpy(*npp + sizeof(in6addr_mapped), *cpp,
- INADDRSZ);
+ memmove(*npp, in6addr_mapped,
+ sizeof(in6addr_mapped));
+ memmove(*npp + sizeof(in6addr_mapped), *cpp,
+ INADDRSZ);
} else {
- memcpy(*npp, *cpp,
- (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
+ memmove(*npp, *cpp,
+ (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
}
cpp++;
npp++;
@@ -931,13 +931,13 @@ copyandmerge(struct hostent *he1, struct hostent *he2, int af, int *error_num)
* Convert to mapped if required.
*/
if (af == AF_INET6 && he2->h_addrtype == AF_INET) {
- memcpy(*npp, in6addr_mapped,
- sizeof(in6addr_mapped));
- memcpy(*npp + sizeof(in6addr_mapped), *cpp,
- INADDRSZ);
+ memmove(*npp, in6addr_mapped,
+ sizeof(in6addr_mapped));
+ memmove(*npp + sizeof(in6addr_mapped), *cpp,
+ INADDRSZ);
} else {
- memcpy(*npp, *cpp,
- (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
+ memmove(*npp, *cpp,
+ (af == AF_INET) ? INADDRSZ : IN6ADDRSZ);
}
cpp++;
npp++;
@@ -1060,7 +1060,7 @@ hostfromaddr(lwres_gnbaresponse_t *addr, int af, const void *src) {
he->h_addr_list[0] = malloc(he->h_length);
if (he->h_addr_list[0] == NULL)
goto cleanup;
- memcpy(he->h_addr_list[0], src, he->h_length);
+ memmove(he->h_addr_list[0], src, he->h_length);
he->h_addr_list[1] = NULL;
return (he);
@@ -1140,7 +1140,7 @@ hostfromname(lwres_gabnresponse_t *name, int af) {
he->h_addr_list[i] = malloc(he->h_length);
if (he->h_addr_list[i] == NULL)
goto cleanup;
- memcpy(he->h_addr_list[i], addr->address, he->h_length);
+ memmove(he->h_addr_list[i], addr->address, he->h_length);
addr = LWRES_LIST_NEXT(addr, link);
i++;
}
diff --git a/lib/lwres/getrrset.c b/lib/lwres/getrrset.c
index 16af741d..cd37abcd 100644
--- a/lib/lwres/getrrset.c
+++ b/lib/lwres/getrrset.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -228,8 +228,8 @@ lwres_getrrsetbyname(const char *hostname, unsigned int rdclass,
result = ERRSET_NOMEMORY;
goto fail;
}
- memcpy(rrset->rri_rdatas[i].rdi_data, response->rdatas[i],
- rrset->rri_rdatas[i].rdi_length);
+ memmove(rrset->rri_rdatas[i].rdi_data, response->rdatas[i],
+ rrset->rri_rdatas[i].rdi_length);
}
rrset->rri_nsigs = response->nsigs;
rrset->rri_sigs = sane_calloc(rrset->rri_nsigs,
@@ -246,8 +246,8 @@ lwres_getrrsetbyname(const char *hostname, unsigned int rdclass,
result = ERRSET_NOMEMORY;
goto fail;
}
- memcpy(rrset->rri_sigs[i].rdi_data, response->sigs[i],
- rrset->rri_sigs[i].rdi_length);
+ memmove(rrset->rri_sigs[i].rdi_data, response->sigs[i],
+ rrset->rri_sigs[i].rdi_length);
}
lwres_grbnresponse_free(lwrctx, &response);
diff --git a/lib/lwres/lwbuffer.c b/lib/lwres/lwbuffer.c
index 49aaeb7b..787bc3c9 100644
--- a/lib/lwres/lwbuffer.c
+++ b/lib/lwres/lwbuffer.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -23,7 +23,7 @@
* These functions provide bounds checked access to a region of memory
* where data is being read or written. They are based on, and similar
* to, the isc_buffer_ functions in the ISC library.
- *
+ *
* A buffer is a region of memory, together with a set of related
* subregions. The used region and the available region are disjoint, and
* their union is the buffer's region. The used region extends from the
@@ -31,7 +31,7 @@
* region extends from one byte greater than the last used byte to the
* end of the buffer's region. The size of the used region can be changed
* using various buffer commands. Initially, the used region is empty.
- *
+ *
* The used region is further subdivided into two disjoint regions: the
* consumed region and the remaining region. The union of these two
* regions is the used region. The consumed region extends from the
@@ -39,14 +39,14 @@
* any). The remaining region the current pointer to the end of the used
* region. The size of the consumed region can be changed using various
* buffer commands. Initially, the consumed region is empty.
- *
+ *
* The active region is an (optional) subregion of the remaining region.
* It extends from the current offset to an offset in the remaining
* region. Initially, the active region is empty. If the current offset
* advances beyond the chosen offset, the active region will also be
* empty.
- *
- *
+ *
+ *
* \verbatim
* /------------entire length---------------\\
* /----- used region -----\\/-- available --\\
@@ -54,54 +54,54 @@
* | consumed | remaining | |
* +----------------------------------------+
* a b c d e
- *
+ *
* a == base of buffer.
* b == current pointer. Can be anywhere between a and d.
* c == active pointer. Meaningful between b and d.
* d == used pointer.
* e == length of buffer.
- *
+ *
* a-e == entire length of buffer.
* a-d == used region.
* a-b == consumed region.
* b-d == remaining region.
* b-c == optional active region.
* \endverbatim
- *
+ *
* lwres_buffer_init() initializes the lwres_buffer_t *b and assocates it
* with the memory region of size length bytes starting at location base.
- *
+ *
* lwres_buffer_invalidate() marks the buffer *b as invalid. Invalidating
* a buffer after use is not required, but makes it possible to catch its
* possible accidental use.
- *
+ *
* The functions lwres_buffer_add() and lwres_buffer_subtract()
* respectively increase and decrease the used space in buffer *b by n
* bytes. lwres_buffer_add() checks for buffer overflow and
* lwres_buffer_subtract() checks for underflow. These functions do not
* allocate or deallocate memory. They just change the value of used.
- *
+ *
* A buffer is re-initialised by lwres_buffer_clear(). The function sets
* used , current and active to zero.
- *
+ *
* lwres_buffer_first() makes the consumed region of buffer *p empty by
* setting current to zero (the start of the buffer).
- *
+ *
* lwres_buffer_forward() increases the consumed region of buffer *b by n
* bytes, checking for overflow. Similarly, lwres_buffer_back() decreases
* buffer b's consumed region by n bytes and checks for underflow.
- *
+ *
* lwres_buffer_getuint8() reads an unsigned 8-bit integer from *b and
* returns it. lwres_buffer_putuint8() writes the unsigned 8-bit integer
* val to buffer *b.
- *
+ *
* lwres_buffer_getuint16() and lwres_buffer_getuint32() are identical to
* lwres_buffer_putuint8() except that they respectively read an unsigned
* 16-bit or 32-bit integer in network byte order from b. Similarly,
* lwres_buffer_putuint16() and lwres_buffer_putuint32() writes the
* unsigned 16-bit or 32-bit integer val to buffer b, in network byte
* order.
- *
+ *
* Arbitrary amounts of data are read or written from a lightweight
* resolver buffer with lwres_buffer_getmem() and lwres_buffer_putmem()
* respectively. lwres_buffer_putmem() copies length bytes of memory at
@@ -339,7 +339,7 @@ lwres_buffer_putmem(lwres_buffer_t *b, const unsigned char *base,
REQUIRE(b->used + length <= b->length);
cp = (unsigned char *)b->base + b->used;
- memcpy(cp, base, length);
+ memmove(cp, base, length);
b->used += length;
}
@@ -357,5 +357,5 @@ lwres_buffer_getmem(lwres_buffer_t *b, unsigned char *base,
cp += b->current;
b->current += length;
- memcpy(base, cp, length);
+ memmove(base, cp, length);
}
diff --git a/lib/lwres/lwconfig.c b/lib/lwres/lwconfig.c
index e9a86710..62630238 100644
--- a/lib/lwres/lwconfig.c
+++ b/lib/lwres/lwconfig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -455,16 +455,16 @@ lwres_create_addr(const char *buffer, lwres_addr_t *addr, int convert_zero) {
unsigned char zeroaddress[] = {0, 0, 0, 0};
unsigned char loopaddress[] = {127, 0, 0, 1};
if (memcmp(&v4, zeroaddress, 4) == 0)
- memcpy(&v4, loopaddress, 4);
+ memmove(&v4, loopaddress, 4);
}
addr->family = LWRES_ADDRTYPE_V4;
addr->length = NS_INADDRSZ;
- memcpy((void *)addr->address, &v4, NS_INADDRSZ);
+ memmove((void *)addr->address, &v4, NS_INADDRSZ);
} else if (lwres_net_pton(AF_INET6, buffer, &v6) == 1) {
addr->family = LWRES_ADDRTYPE_V6;
addr->length = NS_IN6ADDRSZ;
- memcpy((void *)addr->address, &v6, NS_IN6ADDRSZ);
+ memmove((void *)addr->address, &v6, NS_IN6ADDRSZ);
} else {
return (LWRES_R_FAILURE); /* Unrecognised format. */
}
diff --git a/lib/lwres/lwinetpton.c b/lib/lwres/lwinetpton.c
index 65a8998c..efeb21b7 100644
--- a/lib/lwres/lwinetpton.c
+++ b/lib/lwres/lwinetpton.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1996-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -116,7 +116,7 @@ inet_pton4(const char *src, unsigned char *dst) {
}
if (octets < 4)
return (0);
- memcpy(dst, tmp, NS_INADDRSZ);
+ memmove(dst, tmp, NS_INADDRSZ);
return (1);
}
@@ -210,6 +210,6 @@ inet_pton6(const char *src, unsigned char *dst) {
}
if (tp != endp)
return (0);
- memcpy(dst, tmp, NS_IN6ADDRSZ);
+ memmove(dst, tmp, NS_IN6ADDRSZ);
return (1);
}
diff --git a/lib/lwres/lwresutil.c b/lib/lwres/lwresutil.c
index 3bf5660f..0d1e5aaf 100644
--- a/lib/lwres/lwresutil.c
+++ b/lib/lwres/lwresutil.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -27,7 +27,7 @@
* given by *len. The buffer's current pointer is advanced to point at
* the character following the string length, the encoded string, and
* the trailing NULL character.
- *
+ *
* lwres_addr_parse() extracts an address from the buffer b. The
* buffer's current pointer b->current is presumed to point at an
* encoded address: the address preceded by a 32-bit protocol family
@@ -36,10 +36,10 @@
* the address that was copied. b->current is advanced to point at the
* next byte of available data in the buffer following the encoded
* address.
- *
+ *
* lwres_getaddrsbyname() and lwres_getnamebyaddr() use the
* lwres_gnbaresponse_t structure defined below:
- *
+ *
* \code
* typedef struct {
* lwres_uint32_t flags;
@@ -54,45 +54,45 @@
* size_t baselen;
* } lwres_gabnresponse_t;
* \endcode
- *
+ *
* The contents of this structure are not manipulated directly but
- * they are controlled through the \link lwres_gabn.c lwres_gabn*\endlink functions.
- *
+ * they are controlled through the \link lwres_gabn.c lwres_gabn*\endlink functions.
+ *
* The lightweight resolver uses lwres_getaddrsbyname() to perform
* foward lookups. Hostname name is looked up using the resolver
- * context ctx for memory allocation. addrtypes is a bitmask
+ * context ctx for memory allocation. addrtypes is a bitmask
* indicating which type of addresses are to be looked up. Current
* values for this bitmask are #LWRES_ADDRTYPE_V4 for IPv4 addresses
* and #LWRES_ADDRTYPE_V6 for IPv6 addresses. Results of the lookup are
* returned in *structp.
- *
- * lwres_getnamebyaddr() performs reverse lookups. Resolver context
+ *
+ * lwres_getnamebyaddr() performs reverse lookups. Resolver context
* ctx is used for memory allocation. The address type is indicated by
* addrtype: #LWRES_ADDRTYPE_V4 or #LWRES_ADDRTYPE_V6. The address to be
- * looked up is given by addr and its length is addrlen bytes. The
- * result of the function call is made available through *structp.
- *
+ * looked up is given by addr and its length is addrlen bytes. The
+ * result of the function call is made available through *structp.
+ *
* \section lwresutil_return Return Values
- *
+ *
* Successful calls to lwres_string_parse() and lwres_addr_parse()
- * return #LWRES_R_SUCCESS. Both functions return #LWRES_R_FAILURE if
- * the buffer is corrupt or #LWRES_R_UNEXPECTEDEND if the buffer has
+ * return #LWRES_R_SUCCESS. Both functions return #LWRES_R_FAILURE if
+ * the buffer is corrupt or #LWRES_R_UNEXPECTEDEND if the buffer has
* less space than expected for the components of the encoded string
* or address.
- *
+ *
* lwres_getaddrsbyname() returns #LWRES_R_SUCCESS on success and it
* returns #LWRES_R_NOTFOUND if the hostname name could not be found.
- *
+ *
* #LWRES_R_SUCCESS is returned by a successful call to
* lwres_getnamebyaddr().
- *
+ *
* Both lwres_getaddrsbyname() and lwres_getnamebyaddr() return
* #LWRES_R_NOMEMORY when memory allocation requests fail and
* #LWRES_R_UNEXPECTEDEND if the buffers used for sending queries and
- * receiving replies are too small.
- *
+ * receiving replies are too small.
+ *
* \section lwresutil_see See Also
- *
+ *
* lwbuffer.c, lwres_gabn.c
*/
@@ -390,7 +390,7 @@ lwres_getnamebyaddr(lwres_context_t *ctx, lwres_uint32_t addrtype,
request.flags = 0;
request.addr.family = addrtype;
request.addr.length = addrlen;
- memcpy(request.addr.address, addr, addrlen);
+ memmove(request.addr.address, addr, addrlen);
pkt.pktflags = 0;
pkt.serial = serial;
pkt.result = 0;
diff --git a/srcid b/srcid
index 74e28ea4..e5e037af 100644
--- a/srcid
+++ b/srcid
@@ -1 +1 @@
-SRCID=a51a5739
+SRCID=f7a59390
diff --git a/version b/version
index a7c59591..92e82f50 100644
--- a/version
+++ b/version
@@ -8,6 +8,6 @@ DESCRIPTION="(Extended Support Version)"
MAJORVER=9
MINORVER=9
PATCHVER=5
-RELEASETYPE=b
+RELEASETYPE=rc
RELEASEVER=1
EXTENSIONS=
diff --git a/win32utils/Configure b/win32utils/Configure
index a2e6b68b..cf9e0b53 100644
--- a/win32utils/Configure
+++ b/win32utils/Configure
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
-# Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -332,6 +332,7 @@ my @substdefp = ("ISC_PLATFORM_HAVEATOMICSTORE",
"ISC_PLATFORM_HAVECMPXCHG",
"ISC_PLATFORM_HAVEXADD",
"ISC_PLATFORM_HAVEXADDQ",
+ "ISC_PLATFORM_NEEDSTRCASESTR",
"ISC_PLATFORM_OPENSSLHASH",
"ISC_PLATFORM_USEBACKTRACE");
@@ -563,7 +564,7 @@ foreach (@ARGV) {
} elsif (/^disable-(.*)$/i) {
appargs($_);
myenable($1, "no");
- } elsif (/^enable-(.$)$/i) {
+ } elsif (/^enable-(.*)$/i) {
appargs($_);
myenable($1, "yes");
} elsif (/^without-(.*)$/i) {
@@ -1057,6 +1058,9 @@ if ($msc_ver >= 1700) {
$configdefp{"ISC_PLATFORM_USEBACKTRACE"} = 1;
}
+# no version of MSVS supports strcasestr() yet
+$configdefp{"ISC_PLATFORM_NEEDSTRCASESTR"} = 1;
+
# warn when cross compiling
if ($cross_compile eq "yes") {
diff --git a/win32utils/build.txt b/win32utils/build.txt
index ff3208e7..b2fe812e 100644
--- a/win32utils/build.txt
+++ b/win32utils/build.txt
@@ -1,4 +1,4 @@
-Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC")
+Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
BIND 9.10 for Win32 Source Build Instructions. 11-Jul-2013
@@ -41,15 +41,15 @@ Step 1: Download and build OpenSSL
Download and untar the OpenSSL sources from http://www.openssl.org/.
Extract them at in the same directory in which you extracted the BIND 9
source: If BIND 9 is in \build\bind-9.10.0, for instance, OpenSSL should
- be in \build\openssl-1.0.1e (subject to version number changes).
+ be in \build\openssl-1.0.1f (subject to version number changes).
Note: Building OpenSSL requires that you install Perl as it uses it
during its build process. The following commands work as of
- openssl-1.0.1e, but you should check the OpenSSL distribution to see
+ openssl-1.0.1f, but you should check the OpenSSL distribution to see
if the build instructions in the INSTALL.W32 (or INSTALL.W64) file
have changed, in particular for the assembler options:
- cd openssl-1.0.1e
+ cd openssl-1.0.1f
perl Configure --prefix=c:/openssl enable-static-engine VC-WIN32
ms\do_ms
nmake /f ms\ntdll.mak
@@ -62,7 +62,7 @@ Step 1: Download and build OpenSSL
If you wish to use PKCS #11 to control a cryptographic hardware
service module, please see "PKCS #11 (Cryptoki) support" in chapter 4
of the BIND 9 Administrator Reference Guide. You will need to apply
- the patch in bind9\bin\pkcs11\openssl-1.0.1e-patch (this can be done
+ the patch in bind9\bin\pkcs11\openssl-1.0.1f-patch (this can be done
using the Cygwin 'patch' utility) and add --pk11-libname and
--pk11-flavor to the Configure command above.
@@ -74,12 +74,12 @@ Step 2: Download and build LibXML2
Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2.
Extract them in the same directory in which you extracted the BIND 9
source: If BIND 9 is in \build\bind-9.10.0, for instance, libxml2 should
- be in \build\libxml2-2.7.7 (subject to version number changes).
+ be in \build\libxml2-2.9.1 (subject to version number changes).
Now build libxml2, and copy the resulting files into the include and lib
directories:
- cd libxml2-2.7.7\win32
+ cd libxml2-2.9.1\win32
cscript configure.js compiler=msvc vcmanifest=yes static=yes \
debug=no iconv=no
nmake /f Makefile.msvc libxml