summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInternet Software Consortium, Inc <@isc.org>2013-06-12 10:31:27 -0600
committerInternet Software Consortium, Inc <@isc.org>2013-06-12 10:31:27 -0600
commit813fc5c024368141854a18c4b60703374ad205d6 (patch)
tree9e89a29787da781f7e3761febaabe1ed2ca5c398
parentdb1583066debb94bbcfcece40e8d9ecbdb96aae4 (diff)
downloadbind9-813fc5c024368141854a18c4b60703374ad205d6.tar.gz
9.9.3b2
-rw-r--r--CHANGES109
-rw-r--r--HISTORY52
-rw-r--r--README24
-rw-r--r--REDIRECT-NOTES35
-rw-r--r--bin/confgen/keygen.c26
-rw-r--r--bin/confgen/rndc-confgen.c4
-rw-r--r--bin/dig/Makefile.in2
-rw-r--r--bin/dig/dig.c4
-rw-r--r--bin/dnssec/dnssec-signzone.c37
-rw-r--r--bin/dnssec/dnssectool.c118
-rw-r--r--bin/named/Makefile.in12
-rw-r--r--bin/named/bind9.ver3.xsl1033
-rw-r--r--bin/named/bind9.ver3.xsl.h832
-rw-r--r--bin/named/config.c4
-rw-r--r--bin/named/include/named/globals.h1
-rw-r--r--bin/named/include/named/server.h6
-rw-r--r--bin/named/main.c12
-rw-r--r--bin/named/named.810
-rw-r--r--bin/named/named.docbook10
-rw-r--r--bin/named/named.html23
-rw-r--r--bin/named/query.c107
-rw-r--r--bin/named/server.c372
-rw-r--r--bin/named/statschannel.c26
-rw-r--r--bin/named/xfrout.c22
-rw-r--r--bin/named/zoneconf.c22
-rw-r--r--bin/nsupdate/Makefile.in2
-rw-r--r--bin/tests/system/autosign/clean.sh5
-rw-r--r--bin/tests/system/autosign/tests.sh45
-rw-r--r--bin/tests/system/checkconf/bad-inline-slave.conf25
-rw-r--r--bin/tests/system/checkconf/good.conf8
-rw-r--r--bin/tests/system/dnssec/tests.sh26
-rwxr-xr-xbin/tests/system/ifconfig.sh2
-rw-r--r--bin/tests/system/lwresd/clean.sh3
-rw-r--r--bin/tests/system/lwresd/tests.sh15
-rw-r--r--bin/tests/system/nsupdate/tests.sh11
-rw-r--r--bin/tests/system/rpz/Makefile.in5
-rw-r--r--bin/tests/system/rpz/clean.sh9
-rw-r--r--bin/tests/system/rpz/ns1/named.conf5
-rw-r--r--bin/tests/system/rpz/ns1/root.db14
-rw-r--r--bin/tests/system/rpz/ns2/base-tld2s.db5
-rw-r--r--bin/tests/system/rpz/ns2/hints8
-rw-r--r--bin/tests/system/rpz/ns2/named.conf5
-rw-r--r--bin/tests/system/rpz/ns2/tld2.db5
-rw-r--r--bin/tests/system/rpz/ns3/base.db12
-rw-r--r--bin/tests/system/rpz/ns3/crash13
-rw-r--r--bin/tests/system/rpz/ns3/crash23
-rw-r--r--bin/tests/system/rpz/ns3/hints8
-rw-r--r--bin/tests/system/rpz/ns3/named.conf19
-rw-r--r--bin/tests/system/rpz/ns4/hints9
-rw-r--r--bin/tests/system/rpz/ns4/named.conf5
-rw-r--r--bin/tests/system/rpz/ns4/tld4.db5
-rw-r--r--bin/tests/system/rpz/ns5/hints8
-rw-r--r--bin/tests/system/rpz/ns5/named.args3
-rw-r--r--bin/tests/system/rpz/ns5/named.conf19
-rw-r--r--bin/tests/system/rpz/ns5/tld5.db67
-rw-r--r--bin/tests/system/rpz/qperf.sh5
-rw-r--r--bin/tests/system/rpz/rpz.c5
-rw-r--r--bin/tests/system/rpz/setup.sh45
-rw-r--r--bin/tests/system/rpz/test15
-rw-r--r--bin/tests/system/rpz/test25
-rw-r--r--bin/tests/system/rpz/test39
-rw-r--r--bin/tests/system/rpz/test43
-rw-r--r--bin/tests/system/rpz/test4a30
-rw-r--r--bin/tests/system/rpz/test53
-rw-r--r--bin/tests/system/rpz/tests.sh167
-rw-r--r--bin/tests/system/tkey/clean.sh5
-rw-r--r--bin/tests/system/tkey/ns1/example.db30
-rw-r--r--bin/tests/system/tkey/ns1/named.conf.in8
-rw-r--r--bin/tests/system/tkey/setup.sh4
-rw-r--r--bin/tests/system/tkey/tests.sh53
-rw-r--r--bin/tests/system/verify/tests.sh4
-rw-r--r--bin/tests/system/verify/zones/genzones.sh11
-rw-r--r--bin/tests/system/wildcard/clean.sh3
-rw-r--r--bin/tests/system/wildcard/ns1/dlv.db.in19
-rw-r--r--bin/tests/system/wildcard/ns1/named.conf4
-rw-r--r--bin/tests/system/wildcard/ns1/root.db.in1
-rwxr-xr-xbin/tests/system/wildcard/ns1/sign.sh16
-rw-r--r--bin/tests/system/wildcard/ns5/hints18
-rw-r--r--bin/tests/system/wildcard/ns5/named.conf36
-rw-r--r--bin/tests/system/wildcard/tests.sh20
-rw-r--r--bin/tests/system/xfer/clean.sh4
-rw-r--r--bin/tests/system/xfer/ns2/named.conf9
-rw-r--r--bin/tests/system/xfer/ns2/slave.db.in22
-rw-r--r--bin/tests/system/xfer/setup.sh5
-rw-r--r--bin/tests/system/xfer/tests.sh10
-rwxr-xr-xconfigure46
-rw-r--r--configure.in42
-rw-r--r--contrib/dlz/example/README15
-rw-r--r--contrib/dlz/example/dlz_example.c2
-rw-r--r--contrib/dlz/modules/bdbhpt/Makefile18
-rw-r--r--contrib/dlz/modules/bdbhpt/README.md89
-rw-r--r--contrib/dlz/modules/bdbhpt/dlz_bdbhpt_dynamic.c836
-rwxr-xr-xcontrib/dlz/modules/bdbhpt/testing/bdbhpt-populate.pl232
-rw-r--r--contrib/dlz/modules/bdbhpt/testing/dns-data.txt19
-rw-r--r--contrib/dlz/modules/dlz_minimal.h (renamed from contrib/dlz/example/dlz_minimal.h)37
-rw-r--r--doc/arm/Bv9ARM-book.xml223
-rw-r--r--doc/arm/Bv9ARM.ch04.html96
-rw-r--r--doc/arm/Bv9ARM.ch06.html356
-rw-r--r--doc/arm/Bv9ARM.ch07.html12
-rw-r--r--doc/arm/Bv9ARM.ch08.html16
-rw-r--r--doc/arm/Bv9ARM.ch09.html218
-rw-r--r--doc/arm/Bv9ARM.html124
-rw-r--r--doc/arm/Bv9ARM.pdf7606
-rw-r--r--doc/arm/man.arpaname.html6
-rw-r--r--doc/arm/man.ddns-confgen.html8
-rw-r--r--doc/arm/man.dig.html18
-rw-r--r--doc/arm/man.dnssec-dsfromkey.html14
-rw-r--r--doc/arm/man.dnssec-keyfromlabel.html12
-rw-r--r--doc/arm/man.dnssec-keygen.html14
-rw-r--r--doc/arm/man.dnssec-revoke.html8
-rw-r--r--doc/arm/man.dnssec-settime.html12
-rw-r--r--doc/arm/man.dnssec-signzone.html10
-rw-r--r--doc/arm/man.dnssec-verify.html8
-rw-r--r--doc/arm/man.genrandom.html8
-rw-r--r--doc/arm/man.host.html8
-rw-r--r--doc/arm/man.isc-hmac-fixup.html8
-rw-r--r--doc/arm/man.named-checkconf.html10
-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.html21
-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.html10
-rw-r--r--doc/misc/options12
-rw-r--r--lib/bind9/api2
-rw-r--r--lib/bind9/check.c19
-rw-r--r--lib/dns/Makefile.in8
-rw-r--r--lib/dns/acache.c17
-rw-r--r--lib/dns/acl.c9
-rw-r--r--lib/dns/adb.c23
-rw-r--r--lib/dns/api2
-rw-r--r--lib/dns/byaddr.c9
-rw-r--r--lib/dns/cache.c19
-rw-r--r--lib/dns/db.c7
-rw-r--r--lib/dns/dbtable.c9
-rw-r--r--lib/dns/diff.c12
-rw-r--r--lib/dns/dlz.c20
-rw-r--r--lib/dns/dst_api.c8
-rw-r--r--lib/dns/include/dns/acache.h12
-rw-r--r--lib/dns/include/dns/adb.h4
-rw-r--r--lib/dns/include/dns/cache.h12
-rw-r--r--lib/dns/include/dns/db.h10
-rw-r--r--lib/dns/include/dns/rpz.h23
-rw-r--r--lib/dns/include/dns/view.h3
-rw-r--r--lib/dns/include/dns/zone.h46
-rw-r--r--lib/dns/iptable.c7
-rw-r--r--lib/dns/journal.c9
-rw-r--r--lib/dns/keytable.c10
-rw-r--r--lib/dns/lookup.c11
-rw-r--r--lib/dns/message.c8
-rw-r--r--lib/dns/rbt.c9
-rw-r--r--lib/dns/rbtdb.c53
-rw-r--r--lib/dns/rdata/generic/naptr_35.c39
-rw-r--r--lib/dns/request.c8
-rw-r--r--lib/dns/resolver.c19
-rw-r--r--lib/dns/rpz.c37
-rw-r--r--lib/dns/spnego.c15
-rw-r--r--lib/dns/tests/dnstest.c6
-rw-r--r--lib/dns/tests/zonemgr_test.c43
-rw-r--r--lib/dns/tkey.c11
-rw-r--r--lib/dns/tsig.c20
-rw-r--r--lib/dns/view.c11
-rw-r--r--lib/dns/win32/libdns.def9
-rw-r--r--lib/dns/zone.c168
-rw-r--r--lib/export/dns/Makefile.in8
-rw-r--r--lib/export/isc/Makefile.in15
-rw-r--r--lib/export/isc/include/isc/Makefile.in4
-rw-r--r--lib/irs/api2
-rw-r--r--lib/irs/getnameinfo.c4
-rw-r--r--lib/isc/Makefile.in11
-rw-r--r--lib/isc/api2
-rw-r--r--lib/isc/include/isc/Makefile.in4
-rw-r--r--lib/isc/include/isc/pool.h149
-rw-r--r--lib/isc/include/isc/radix.h38
-rw-r--r--lib/isc/include/isc/regex.h39
-rw-r--r--lib/isc/include/isc/region.h11
-rw-r--r--lib/isc/log.c9
-rw-r--r--lib/isc/pool.c177
-rw-r--r--lib/isc/radix.c37
-rw-r--r--lib/isc/regex.c370
-rw-r--r--lib/isc/tests/Makefile.in14
-rw-r--r--lib/isc/tests/pool_test.c186
-rw-r--r--lib/isc/tests/regex_test.c1125
-rw-r--r--lib/isc/tests/symtab_test.c4
-rw-r--r--lib/isc/win32/libisc.def6
-rw-r--r--lib/isc/win32/libisc.dsp12
-rw-r--r--lib/isc/win32/libisc.mak49
-rw-r--r--lib/isccfg/api2
-rw-r--r--lib/isccfg/namedconf.c32
-rw-r--r--lib/lwres/api2
-rw-r--r--lib/lwres/getnameinfo.c4
-rw-r--r--srcid2
-rw-r--r--unit/atf-src/atf-c/macros_test.c8
-rw-r--r--version3
-rw-r--r--win32utils/makeversion.pl7
197 files changed, 11022 insertions, 6132 deletions
diff --git a/CHANGES b/CHANGES
index 2e98c781..4681c78e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,110 @@
+ --- 9.9.3b2 released ---
+
+3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777]
+
+3515. [port] '%T' is not portable in strftime(). [RT #32763]
+
+3514. [bug] The ranges for valid key sizes in ddns-confgen and
+ rndc-confgen were too constrained. Keys up to 512
+ bits are now allowed for most algorithms, and up
+ to 1024 bits for hmac-sha384 and hmac-sha512.
+ [RT #32753]
+
+3511. [doc] Improve documentation of redirect zones. [RT #32756]
+
+3509. [cleanup] Added a product line to version file to allow for
+ easy naming of different products (BIND
+ vs BIND ESV, for example). [RT #32755]
+
+3508. [contrib] queryperf was incorrectly rejecting the -T option.
+ [RT #32338]
+
+3507. [bug] Statistics channel XSL (when built with
+ --enable-newstats) had a glitch when attempting
+ to chart query data before any queries had been
+ received. [RT #32620]
+
+3505. [bug] When setting "max-cache-size" and "max-acache-size",
+ larger values than 4 gigabytes could not be set
+ explicitly, though larger sizes were available
+ when setting cache size to 0. This has been
+ corrected; the full range is now available.
+ [RT #32358]
+
+3503. [doc] Clarify size_spec syntax. [RT #32449]
+
+3501. [func] zone-statistics now takes three options: full,
+ terse, and none. "yes" and "no" are retained as
+ synonyms for full and terse, respectively. [RT #29165]
+
+3500. [port] Support NAPTR regular expression validation on
+ all platforms. [RT #32688]
+
+3499. [doc] Corrected ARM documentation of built-in zones.
+ [RT #32694]
+
+3498. [bug] zone statistics for zones which matched a potential
+ empty zone could have their zone-statistics setting
+ overridden.
+
+3496. [func] Improvements to RPZ performance. The "response-policy"
+ syntax now includes a "min-ns-dots" clause, with
+ default 1, to exclude top-level domains from
+ NSIP and NSDNAME checking. --enable-rpz-nsip and
+ --enable-rpz-nsdname are now the default. [RT #32251]
+
+3493. [contrib] Added BDBHPT dynamically-lodable DLZ module,
+ contributed by Mark Goldfinch. [RT #32549]
+
+3492. [bug] Fixed a regression in zone loading performance
+ due to lock contention. [RT #30399]
+
+3491. [bug] Slave zones using inline-signing must specify a
+ file name. [RT #31946]
+
+3489. [bug] --enable-developer now turns on ISC_LIST_CHECKINIT.
+ When cloning a rdataset do not copy the link contents.
+ [RT #32651]
+
+3488. [bug] Use after free error with DH generated keys. [RT #32649]
+
+3487. [bug] Change 3444 was not complete. There was a additional
+ place where the NOQNAME proof needed to be saved.
+ [RT #32629]
+
+3486. [bug] named could crash when using TKEY-negotiated keys
+ that had been deleted and then recreated. [RT #32506]
+
+3485. [cleanup] Only compile openssl_gostlink.c if we support GOST.
+
+3483. [bug] Corrected XSL code in use with --enable-newstats.
+ [RT #32587]
+
+3481. [cleanup] removed use of const const in atf
+
+3480. [bug] Silence logging noise when setting up zone
+ statistics. [RT #32525]
+
+3479. [bug] Address potential memory leaks in gssapi support
+ code. [RT #32405]
+
+3478. [port] Fix a build failure in strict C99 environments
+ [RT #32475]
+
+3474. [bug] nsupdate could assert when the local and remote
+ address families didn't match. [RT #22897]
+
+3473. [bug] dnssec-signzone/verify could incorrectly report
+ an error condition due to an empty node above an
+ opt-out delegation lacking an NSEC3. [RT #32072]
+
+3471. [bug] The number of UDP dispatches now defaults to
+ the number of CPUs even if -n has been set to
+ a higher value. [RT #30964]
+
+3470. [bug] Slave zones could fail to dump when successfully
+ refreshing after an initial failure. [RT #31276]
+
--- 9.9.3b1 released ---
3468. [security] RPZ rules to generate A records (but not AAAA records)
@@ -15,7 +122,7 @@
3464. [maint] Updates to PKCS#11 openssl patches, supporting
versions 0.9.8x, 1.0.0j, 1.0.1c [RT #29749]
-3463. [doc] Clarify managed-keys syntax in ARM. [RT 32232]
+3463. [doc] Clarify managed-keys syntax in ARM. [RT #32232]
3462. [doc] Clarify server selection behavior of dig when using
-4 or -6 options. [RT #32181]
diff --git a/HISTORY b/HISTORY
index e98f9b41..9a3b7599 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,5 +1,57 @@
Summary of functional enhancements from prior major releases of BIND 9:
+BIND 9.8.0
+
+ BIND 9.8.0 includes a number of changes from BIND 9.7 and earlier
+ releases. New features include:
+
+ - Built-in trust anchor for the root zone, which can be
+ switched on via "dnssec-validation auto;"
+ - Support for DNS64.
+ - Support for response policy zones (RPZ).
+ - Support for writable DLZ zones.
+ - Improved ease of configuration of GSS/TSIG for
+ interoperability with Active Directory
+ - Support for GOST signing algorithm for DNSSEC.
+ - Removed RTT Banding from server selection algorithm.
+ - New "static-stub" zone type.
+ - Allow configuration of resolver timeouts via
+ "resolver-query-timeout" option.
+ - The DLZ "dlopen" driver is now built by default.
+ - Added a new include file with function typedefs
+ for the DLZ "dlopen" driver.
+ - Made "--with-gssapi" default.
+ - More verbose error reporting from DLZ LDAP.
+
+BIND 9.7.0
+
+ BIND 9.7.0 includes a number of changes from BIND 9.6 and earlier
+ releases. Most are intended to simplify DNSSEC configuration.
+
+ New features include:
+
+ - Fully automatic signing of zones by "named".
+ - Simplified configuration of DNSSEC Lookaside Validation (DLV).
+ - Simplified configuration of Dynamic DNS, using the "ddns-confgen"
+ command line tool or the "local" update-policy option. (As a side
+ effect, this also makes it easier to configure automatic zone
+ re-signing.)
+ - New named option "attach-cache" that allows multiple views to
+ share a single cache.
+ - DNS rebinding attack prevention.
+ - New default values for dnssec-keygen parameters.
+ - Support for RFC 5011 automated trust anchor maintenance
+ - Smart signing: simplified tools for zone signing and key
+ maintenance.
+ - The "statistics-channels" option is now available on Windows.
+ - A new DNSSEC-aware libdns API for use by non-BIND9 applications
+ - On some platforms, named and other binaries can now print out
+ a stack backtrace on assertion failure, to aid in debugging.
+ - A "tools only" installation mode on Windows, which only installs
+ dig, host, nslookup and nsupdate.
+ - Improved PKCS#11 support, including Keyper support and explicit
+ OpenSSL engine selection.
+
BIND 9.6.0
Full NSEC3 support
diff --git a/README b/README
index 91c564c5..94390693 100644
--- a/README
+++ b/README
@@ -110,30 +110,6 @@ BIND 9.9.0
indicating their key ID, algorithm and function
- Simplified nsupdate syntax and added readline support
-BIND 9.8.0
-
- BIND 9.8.0 includes a number of changes from BIND 9.7 and earlier
- releases. New features include:
-
- - Built-in trust anchor for the root zone, which can be
- switched on via "dnssec-validation auto;"
- - Support for DNS64.
- - Support for response policy zones (RPZ).
- - Support for writable DLZ zones.
- - Improved ease of configuration of GSS/TSIG for
- interoperability with Active Directory
- - Support for GOST signing algorithm for DNSSEC.
- - Removed RTT Banding from server selection algorithm.
- - New "static-stub" zone type.
- - Allow configuration of resolver timeouts via
- "resolver-query-timeout" option.
- - The DLZ "dlopen" driver is now built by default.
- - Added a new include file with function typedefs
- for the DLZ "dlopen" driver.
- - Made "--with-gssapi" default.
- - More verbose error reporting from DLZ LDAP.
-
-
Building
BIND 9 currently requires a UNIX system with an ANSI C compiler,
diff --git a/REDIRECT-NOTES b/REDIRECT-NOTES
deleted file mode 100644
index fece4ba9..00000000
--- a/REDIRECT-NOTES
+++ /dev/null
@@ -1,35 +0,0 @@
-Redirect zones are used to find answers to queries when normal resolution
-would result in NXDOMAIN being returned. Only one redirect zone per view
-is currently supported.
-
-To redirect to 100.100.100.2 and 2001:ffff:ffff::100.100.100.2 on NXDOMAIN
-one would configure the redirect zone like this.
-
-zone "." {
- type redirect;
- file "redirect.db";
-};
-
-redirect.db:
-$TTL 300
-@ IN SOA ns.example.net hostmaster.example.net 0 0 0 0 0
-@ IN NS ns.example.net
-;
-; NS records do not need address records in this zone as it is not in the
-; normal namespace.
-;
-*. IN A 100.100.100.2
-*. IN AAAA 2001:ffff:ffff::100.100.100.2
-
-To redirect all Spanish names (under .ES) one would use entries like these:
-
-*.ES. IN A 100.100.100.3
-*.ES. IN AAAA 2001:ffff:ffff::100.100.100.3
-
-To redirect all commercial Spanish names (under COM.ES) one would use
-entries like these:
-*.COM.ES. IN A 100.100.100.4
-*.COM.ES. IN AAAA 2001:ffff:ffff::100.100.100.4
-
-The redirect zone supports all possible types. It is not limited to
-A and AAAA record.
diff --git a/bin/confgen/keygen.c b/bin/confgen/keygen.c
index 787a93f1..d0cdafed 100644
--- a/bin/confgen/keygen.c
+++ b/bin/confgen/keygen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2012, 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
@@ -126,29 +126,17 @@ generate_key(isc_mem_t *mctx, const char *randomfile, dns_secalg_t alg,
switch (alg) {
case DST_ALG_HMACMD5:
- case DST_ALG_HMACSHA512:
- if (keysize < 1 || keysize > 512)
- fatal("keysize %d out of range (must be 1-512)\n",
- keysize);
- break;
- case DST_ALG_HMACSHA256:
- if (keysize < 1 || keysize > 256)
- fatal("keysize %d out of range (must be 1-256)\n",
- keysize);
- break;
case DST_ALG_HMACSHA1:
- if (keysize < 1 || keysize > 160)
- fatal("keysize %d out of range (must be 1-160)\n",
- keysize);
- break;
case DST_ALG_HMACSHA224:
- if (keysize < 1 || keysize > 224)
- fatal("keysize %d out of range (must be 1-224)\n",
+ case DST_ALG_HMACSHA256:
+ if (keysize < 1 || keysize > 512)
+ fatal("keysize %d out of range (must be 1-512)\n",
keysize);
break;
case DST_ALG_HMACSHA384:
- if (keysize < 1 || keysize > 384)
- fatal("keysize %d out of range (must be 1-384)\n",
+ case DST_ALG_HMACSHA512:
+ if (keysize < 1 || keysize > 1024)
+ fatal("keysize %d out of range (must be 1-1024)\n",
keysize);
break;
default:
diff --git a/bin/confgen/rndc-confgen.c b/bin/confgen/rndc-confgen.c
index a9831b18..e2ac0792 100644
--- a/bin/confgen/rndc-confgen.c
+++ b/bin/confgen/rndc-confgen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -140,8 +140,6 @@ main(int argc, char **argv) {
keysize = strtol(isc_commandline_argument, &p, 10);
if (*p != '\0' || keysize < 0)
fatal("-b requires a non-negative number");
- if (keysize < 1 || keysize > 512)
- fatal("-b must be in the range 1 through 512");
break;
case 'c':
keyfile = isc_commandline_argument;
diff --git a/bin/dig/Makefile.in b/bin/dig/Makefile.in
index 07889b47..5bc4db0a 100644
--- a/bin/dig/Makefile.in
+++ b/bin/dig/Makefile.in
@@ -80,7 +80,7 @@ host@EXEEXT@: host.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS}
${FINALBUILDCMD}
nslookup@EXEEXT@: nslookup.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS}
- export BASEOBJS="${READLINE_LIB} nslookup.@O@ dighost.@O@ ${UOBJS}"; \
+ export BASEOBJS="nslookup.@O@ dighost.@O@ ${READLINE_LIB} ${UOBJS}"; \
${FINALBUILDCMD}
doc man:: ${MANOBJS}
diff --git a/bin/dig/dig.c b/bin/dig/dig.c
index 203ed4eb..32f0ea6d 100644
--- a/bin/dig/dig.c
+++ b/bin/dig/dig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -259,7 +259,7 @@ received(int bytes, isc_sockaddr_t *from, dig_query_t *query) {
time(&tnow);
tmnow = *localtime(&tnow);
if (strftime(time_str, sizeof(time_str),
- "%a %b %d %T %Z %Y", &tmnow) > 0U)
+ "%a %b %d %H:%M:%S %Z %Y", &tmnow) > 0U)
printf(";; WHEN: %s\n", time_str);
if (query->lookup->doing_xfr) {
printf(";; XFR size: %u records (messages %u, "
diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c
index 4965a661..83456a7d 100644
--- a/bin/dnssec/dnssec-signzone.c
+++ b/bin/dnssec/dnssec-signzone.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2013 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
@@ -2329,7 +2329,7 @@ nsec3ify(unsigned int hashalg, unsigned int iterations,
continue;
}
if (is_delegation(gdb, gversion, gorigin,
- nextname, nextnode, NULL))
+ nextname, nextnode, NULL))
{
zonecut = dns_fixedname_name(&fzonecut);
dns_name_copy(nextname, zonecut, NULL);
@@ -3481,23 +3481,6 @@ main(int argc, char *argv[]) {
else
set_nsec3params(update_chain, set_salt, set_optout, set_iter);
- if (IS_NSEC3) {
- isc_boolean_t answer;
- hash_length = dns_nsec3_hashlength(dns_hash_sha1);
- hashlist_init(&hashlist, dns_db_nodecount(gdb) * 2,
- hash_length);
- result = dns_nsec_nseconly(gdb, gversion, &answer);
- if (result == ISC_R_NOTFOUND)
- fprintf(stderr, "%s: warning: NSEC3 generation "
- "requested with no DNSKEY; ignoring\n",
- program);
- else if (result != ISC_R_SUCCESS)
- check_result(result, "dns_nsec_nseconly");
- else if (answer)
- fatal("NSEC3 generation requested with "
- "NSEC-only DNSKEY");
- }
-
/*
* We need to do this early on, as we start messing with the list
* of keys rather early.
@@ -3550,6 +3533,22 @@ main(int argc, char *argv[]) {
if (IS_NSEC3) {
unsigned int max;
+ isc_boolean_t answer;
+
+ hash_length = dns_nsec3_hashlength(dns_hash_sha1);
+ hashlist_init(&hashlist, dns_db_nodecount(gdb) * 2,
+ hash_length);
+ result = dns_nsec_nseconly(gdb, gversion, &answer);
+ if (result == ISC_R_NOTFOUND)
+ fprintf(stderr, "%s: warning: NSEC3 generation "
+ "requested with no DNSKEY; ignoring\n",
+ program);
+ else if (result != ISC_R_SUCCESS)
+ check_result(result, "dns_nsec_nseconly");
+ else if (answer)
+ fatal("NSEC3 generation requested with "
+ "NSEC-only DNSKEY");
+
result = dns_nsec3_maxiterations(gdb, NULL, mctx, &max);
check_result(result, "dns_nsec3_maxiterations()");
if (nsec3iter > max)
diff --git a/bin/dnssec/dnssectool.c b/bin/dnssec/dnssectool.c
index 0f987b65..7c8c6ce2 100644
--- a/bin/dnssec/dnssectool.c
+++ b/bin/dnssec/dnssectool.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2013 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
@@ -583,7 +583,7 @@ verifynsec(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
dns_name_format(name, namebuf, sizeof(namebuf));
dns_name_format(nextname, nextbuf, sizeof(nextbuf));
dns_name_format(&nsec.next, found, sizeof(found));
- fprintf(stderr, "Bad record NSEC record for %s, next name "
+ fprintf(stderr, "Bad NSEC record for %s, next name "
"mismatch (expected:%s, found:%s)\n", namebuf,
nextbuf, found);
goto failure;
@@ -594,7 +594,7 @@ verifynsec(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
check_result(result, "dns_nsec_buildrdata()");
if (dns_rdata_compare(&rdata, &tmprdata) != 0) {
dns_name_format(name, namebuf, sizeof(namebuf));
- fprintf(stderr, "Bad record NSEC record for %s, bit map "
+ fprintf(stderr, "Bad NSEC record for %s, bit map "
"mismatch\n", namebuf);
goto failure;
}
@@ -770,7 +770,7 @@ match_nsec3(dns_name_t *name, isc_mem_t *mctx,
len = dns_nsec_compressbitmap(cbm, types, maxtype);
if (nsec3.len != len || memcmp(cbm, nsec3.typebits, len) != 0) {
dns_name_format(name, namebuf, sizeof(namebuf));
- fprintf(stderr, "Bad record NSEC3 record for %s, bit map "
+ fprintf(stderr, "Bad NSEC3 record for %s, bit map "
"mismatch\n", namebuf);
return (ISC_R_FAILURE);
}
@@ -891,11 +891,64 @@ record_found(dns_db_t *db, dns_dbversion_t *ver, isc_mem_t *mctx,
return (ISC_R_SUCCESS);
}
+static isc_boolean_t
+isoptout(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
+ dns_rdata_t *nsec3rdata)
+{
+ dns_rdataset_t rdataset;
+ dns_rdata_t rdata = DNS_RDATA_INIT;
+ dns_rdata_nsec3_t nsec3;
+ dns_rdata_nsec3param_t nsec3param;
+ dns_fixedname_t fixed;
+ dns_name_t *hashname;
+ isc_result_t result;
+ dns_dbnode_t *node = NULL;
+ unsigned char rawhash[NSEC3_MAX_HASH_LENGTH];
+ size_t rhsize = sizeof(rawhash);
+ isc_boolean_t ret;
+
+ result = dns_rdata_tostruct(nsec3rdata, &nsec3param, NULL);
+ check_result(result, "dns_rdata_tostruct()");
+
+ dns_fixedname_init(&fixed);
+ result = dns_nsec3_hashname(&fixed, rawhash, &rhsize, origin, origin,
+ nsec3param.hash, nsec3param.iterations,
+ nsec3param.salt, nsec3param.salt_length);
+ check_result(result, "dns_nsec3_hashname()");
+
+ dns_rdataset_init(&rdataset);
+ hashname = dns_fixedname_name(&fixed);
+ result = dns_db_findnsec3node(db, hashname, ISC_FALSE, &node);
+ if (result == ISC_R_SUCCESS)
+ result = dns_db_findrdataset(db, node, ver, dns_rdatatype_nsec3,
+ 0, 0, &rdataset, NULL);
+ if (result != ISC_R_SUCCESS)
+ return (ISC_FALSE);
+
+ result = dns_rdataset_first(&rdataset);
+ check_result(result, "dns_rdataset_first()");
+
+ dns_rdataset_current(&rdataset, &rdata);
+
+ result = dns_rdata_tostruct(&rdata, &nsec3, NULL);
+ if (result != ISC_R_SUCCESS)
+ ret = ISC_FALSE;
+ else
+ ret = ISC_TF((nsec3.flags & DNS_NSEC3FLAG_OPTOUT) != 0);
+
+ if (dns_rdataset_isassociated(&rdataset))
+ dns_rdataset_disassociate(&rdataset);
+ if (node != NULL)
+ dns_db_detachnode(db, &node);
+
+ return (ret);
+}
+
static isc_result_t
verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
isc_mem_t *mctx, dns_name_t *name, dns_rdata_t *rdata,
- isc_boolean_t delegation, unsigned char types[8192],
- unsigned int maxtype)
+ isc_boolean_t delegation, isc_boolean_t empty,
+ unsigned char types[8192], unsigned int maxtype)
{
char namebuf[DNS_NAME_FORMATSIZE];
char hashbuf[DNS_NAME_FORMATSIZE];
@@ -907,6 +960,7 @@ verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
dns_dbnode_t *node = NULL;
unsigned char rawhash[NSEC3_MAX_HASH_LENGTH];
size_t rhsize = sizeof(rawhash);
+ isc_boolean_t optout;
result = dns_rdata_tostruct(rdata, &nsec3param, NULL);
check_result(result, "dns_rdata_tostruct()");
@@ -917,6 +971,8 @@ verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
if (!dns_nsec3_supportedhash(nsec3param.hash))
return (ISC_R_SUCCESS);
+ optout = isoptout(db, ver, origin, rdata);
+
dns_fixedname_init(&fixed);
result = dns_nsec3_hashname(&fixed, rawhash, &rhsize, name, origin,
nsec3param.hash, nsec3param.iterations,
@@ -936,16 +992,22 @@ verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_nsec3,
0, 0, &rdataset, NULL);
if (result != ISC_R_SUCCESS &&
- (!delegation || dns_nsec_isset(types, dns_rdatatype_ds))) {
+ (!delegation || (empty && !optout) ||
+ (!empty && dns_nsec_isset(types, dns_rdatatype_ds))))
+ {
dns_name_format(name, namebuf, sizeof(namebuf));
dns_name_format(hashname, hashbuf, sizeof(hashbuf));
fprintf(stderr, "Missing NSEC3 record for %s (%s)\n",
namebuf, hashbuf);
+ } else if (result == ISC_R_NOTFOUND &&
+ delegation && (!empty || optout))
+ {
+ result = ISC_R_SUCCESS;
} else if (result == ISC_R_SUCCESS) {
result = match_nsec3(name, mctx, &nsec3param, &rdataset,
types, maxtype, rawhash, rhsize);
- } else if (result == ISC_R_NOTFOUND && delegation)
- result = ISC_R_SUCCESS;
+ }
+
if (dns_rdataset_isassociated(&rdataset))
dns_rdataset_disassociate(&rdataset);
if (node != NULL)
@@ -957,8 +1019,8 @@ verifynsec3(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
static isc_result_t
verifynsec3s(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
isc_mem_t *mctx, dns_name_t *name, dns_rdataset_t *nsec3paramset,
- isc_boolean_t delegation, unsigned char types[8192],
- unsigned int maxtype)
+ isc_boolean_t delegation, isc_boolean_t empty,
+ unsigned char types[8192], unsigned int maxtype)
{
isc_result_t result;
@@ -969,7 +1031,7 @@ verifynsec3s(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
dns_rdataset_current(nsec3paramset, &rdata);
result = verifynsec3(db, ver, origin, mctx, name, &rdata,
- delegation, types, maxtype);
+ delegation, empty, types, maxtype);
if (result != ISC_R_SUCCESS)
break;
}
@@ -1114,8 +1176,8 @@ verifynode(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
if (nsec3paramset != NULL && dns_rdataset_isassociated(nsec3paramset)) {
tresult = verifynsec3s(db, ver, origin, mctx, name,
- nsec3paramset, delegation, types,
- maxtype);
+ nsec3paramset, delegation, ISC_FALSE,
+ types, maxtype);
if (result == ISC_R_SUCCESS && tresult != ISC_R_SUCCESS)
result = tresult;
}
@@ -1304,8 +1366,8 @@ verify_nsec3_chains(isc_mem_t *mctx) {
static isc_result_t
verifyemptynodes(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
- isc_mem_t *mctx, dns_name_t *name, dns_name_t *nextname,
- dns_rdataset_t *nsec3paramset)
+ isc_mem_t *mctx, dns_name_t *name, dns_name_t *prevname,
+ isc_boolean_t isdelegation, dns_rdataset_t *nsec3paramset)
{
dns_namereln_t reln;
int order;
@@ -1313,23 +1375,24 @@ verifyemptynodes(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
dns_name_t suffix;
isc_result_t result = ISC_R_SUCCESS, tresult;
- reln = dns_name_fullcompare(name, nextname, &order, &labels);
+ reln = dns_name_fullcompare(prevname, name, &order, &labels);
if (order >= 0)
return (result);
- nlabels = dns_name_countlabels(nextname);
+ nlabels = dns_name_countlabels(name);
if (reln == dns_namereln_commonancestor ||
reln == dns_namereln_contains) {
dns_name_init(&suffix, NULL);
for (i = labels + 1; i < nlabels; i++) {
- dns_name_getlabelsequence(nextname, nlabels - i, i,
+ dns_name_getlabelsequence(name, nlabels - i, i,
&suffix);
if (nsec3paramset != NULL &&
dns_rdataset_isassociated(nsec3paramset)) {
tresult = verifynsec3s(db, ver, origin, mctx,
&suffix, nsec3paramset,
- ISC_FALSE, NULL, 0);
+ isdelegation, ISC_TRUE,
+ NULL, 0);
if (result == ISC_R_SUCCESS &&
tresult != ISC_R_SUCCESS)
result = tresult;
@@ -1359,8 +1422,8 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
char algbuf[80];
dns_dbiterator_t *dbiter = NULL;
dns_dbnode_t *node = NULL, *nextnode = NULL;
- dns_fixedname_t fname, fnextname, fzonecut;
- dns_name_t *name, *nextname, *zonecut;
+ dns_fixedname_t fname, fnextname, fprevname, fzonecut;
+ dns_name_t *name, *nextname, *prevname, *zonecut;
dns_rdata_dnskey_t dnskey;
dns_rdata_t rdata = DNS_RDATA_INIT;
dns_rdataset_t keyset, soaset;
@@ -1572,6 +1635,8 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
name = dns_fixedname_name(&fname);
dns_fixedname_init(&fnextname);
nextname = dns_fixedname_name(&fnextname);
+ dns_fixedname_init(&fprevname);
+ prevname = NULL;
dns_fixedname_init(&fzonecut);
zonecut = NULL;
@@ -1638,8 +1703,13 @@ verifyzone(dns_db_t *db, dns_dbversion_t *ver,
vresult = ISC_R_SUCCESS;
if (vresult == ISC_R_SUCCESS && result != ISC_R_SUCCESS)
vresult = result;
- result = verifyemptynodes(db, ver, origin, mctx, name,
- nextname, &nsec3paramset);
+ if (prevname != NULL) {
+ result = verifyemptynodes(db, ver, origin, mctx, name,
+ prevname, isdelegation,
+ &nsec3paramset);
+ } else
+ prevname = dns_fixedname_name(&fprevname);
+ dns_name_copy(name, prevname, NULL);
if (vresult == ISC_R_SUCCESS && result != ISC_R_SUCCESS)
vresult = result;
dns_db_detachnode(db, &node);
diff --git a/bin/named/Makefile.in b/bin/named/Makefile.in
index 449cdca3..19bdb8e9 100644
--- a/bin/named/Makefile.in
+++ b/bin/named/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -21,6 +21,8 @@ top_srcdir = @top_srcdir@
@BIND9_VERSION@
+@BIND9_PRODUCT@
+
@BIND9_SRCID@
@BIND9_CONFIGARGS@
@@ -116,6 +118,7 @@ MANOBJS = ${MANPAGES} ${HTMLPAGES}
main.@O@: main.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
+ -DPRODUCT=\"${PRODUCT}\" \
-DSRCID=\"${SRCID}\" \
-DCONFIGARGS="\"${CONFIGARGS}\"" \
-DNS_LOCALSTATEDIR=\"${localstatedir}\" \
@@ -155,8 +158,11 @@ maintainer-clean::
bind9.xsl.h: bind9.xsl ${srcdir}/convertxsl.pl
${PERL} ${srcdir}/convertxsl.pl < ${srcdir}/bind9.xsl > bind9.xsl.h
-depend: bind9.xsl.h
-statschannel.@O@: bind9.xsl.h
+bind9.ver3.xsl.h: bind9.ver3.xsl ${srcdir}/convertxsl.pl
+ ${PERL} ${srcdir}/convertxsl.pl < ${srcdir}/bind9.ver3.xsl > bind9.ver3.xsl.h
+
+depend: bind9.xsl.h bind9.ver3.xsl.h
+statschannel.@O@: bind9.xsl.h bind9.ver3.xsl.h
installdirs:
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${sbindir}
diff --git a/bin/named/bind9.ver3.xsl b/bin/named/bind9.ver3.xsl
index af6c0ac5..22e5c45f 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 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2012, 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
@@ -15,357 +15,538 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
-<!-- $Id: bind9.xsl,v 1.21 2009/01/27 23:47:54 tbox Exp $ -->
+<!-- $Id$ -->
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml">
- <xsl:template match="isc/bind/statistics">
+<!-- %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;]">
<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) {
+ var data = google.visualization.arrayToDataTable(data);
+
+ var options = {
+ title: chart_title
+ };
+
+ var chart = new google.visualization.BarChart(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);
+ }
+ }
+ }
+
+ // 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>]});
+
+
+
+
+ </script>
+ </xsl:if>
<style type="text/css">
-body {
- font-family: sans-serif;
- background-color: #ffffff;
- color: #000000;
-}
-
-table {
- border-collapse: collapse;
-}
-
-tr.rowh {
- text-align: center;
- border: 1px solid #000000;
- background-color: #8080ff;
- color: #ffffff;
-}
-
-tr.row {
- text-align: right;
- border: 1px solid #000000;
- background-color: teal;
- color: #ffffff;
-}
-
-tr.lrow {
- text-align: left;
- border: 1px solid #000000;
- background-color: teal;
- color: #ffffff;
-}
-
-td, th {
- padding-right: 5px;
- padding-left: 5px;
-}
-
-.header h1 {
- background-color: teal;
- color: #ffffff;
- padding: 4px;
-}
-
-.content {
- background-color: #ffffff;
- color: #000000;
- padding: 4px;
-}
-
-.item {
- padding: 4px;
- align: right;
-}
-
-.value {
- padding: 4px;
- font-weight: bold;
-}
-
-div.statcounter h2 {
- text-align: center;
- font-size: large;
- border: 1px solid #000000;
- background-color: #8080ff;
- color: #ffffff;
-}
-
-div.statcounter dl {
- float: left;
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 0;
- margin-right: 0;
-}
-
-div.statcounter dt {
- width: 200px;
- text-align: center;
- font-weight: bold;
- border: 0.5px solid #000000;
- background-color: #8080ff;
- color: #ffffff;
-}
-
-div.statcounter dd {
- width: 200px;
- text-align: right;
- border: 0.5px solid #000000;
- background-color: teal;
- color: #ffffff;
- margin-left: 0;
- margin-right: 0;
-}
-
-div.statcounter br {
- clear: left;
-}
- </style>
- <title>BIND 9 Statistics</title>
+ body {
+ font-family: sans-serif;
+ background-color: #ffffff;
+ color: #000000;
+ font-size: 10pt;
+ }
+
+ .odd{
+ background-color: #f0f0f0;
+ }
+
+ .even{
+ background-color: #ffffff;
+ }
+
+ p.footer{
+ font-style:italic;
+ color: grey;
+ }
+
+ table {
+ border-collapse: collapse;
+ border: 1px solid grey;
+ }
+
+ table.counters{
+ border: 1px solid grey;
+ width: 500px;
+ }
+
+ table.counters th {
+ text-align: center;
+ border: 1px solid grey;
+ width: 120px;
+ }
+ table.counters td{
+ text-align:center;
+
+ }
+
+ table.counters tr:hover{
+ background-color: #99ddff;
+ }
+
+ .totals {
+ background-color: rgb(1,169,206);
+ color: #ffffff;
+ }
+
+ td, th {
+ padding-right: 5px;
+ padding-left: 5px;
+ border: 1px solid grey;
+ }
+
+ .header h1 {
+ color: rgb(1,169,206);
+ padding: 0px;
+ }
+
+ .content {
+ background-color: #ffffff;
+ color: #000000;
+ padding: 4px;
+ }
+
+ .item {
+ padding: 4px;
+ text-align: right;
+ }
+
+ .value {
+ padding: 4px;
+ font-weight: bold;
+ }
+
+
+ h2 {
+ color: grey;
+ font-size: 14pt;
+ 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 {
+ width:500px;
+ height: 500px;
+ }
+
+ </style>
+ <title>ISC BIND 9 Statistics</title>
</head>
<body>
- <div class="header">
- <h1>Bind 9 Configuration and Statistics</h1>
- </div>
-
- <br/>
-
- <table>
- <tr class="rowh"><th colspan="2">Times</th></tr>
- <tr class="lrow">
- <td>boot-time</td>
- <td><xsl:value-of select="server/boot-time"/></td>
- </tr>
- <tr class="lrow">
- <td>current-time</td>
- <td><xsl:value-of select="server/current-time"/></td>
- </tr>
- </table>
-
- <br/>
-
- <table>
- <tr class="rowh"><th colspan="2">Incoming Requests</th></tr>
- <xsl:for-each select="server/requests/opcode">
- <tr class="lrow">
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="counter"/></td>
- </tr>
- </xsl:for-each>
- </table>
-
- <br/>
-
- <table>
- <tr class="rowh"><th colspan="2">Incoming Queries</th></tr>
- <xsl:for-each select="server/queries-in/rdtype">
- <tr class="lrow">
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="counter"/></td>
- </tr>
- </xsl:for-each>
- </table>
-
- <br/>
-
- <xsl:for-each select="views/view">
- <table>
- <tr class="rowh">
- <th colspan="2">Outgoing Queries from View <xsl:value-of select="name"/></th>
- </tr>
- <xsl:for-each select="rdtype">
- <tr class="lrow">
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="counter"/></td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:for-each>
-
- <br/>
-
- <div class="statcounter">
- <h2>Server Statistics</h2>
- <xsl:for-each select="server/nsstat">
- <dl>
- <dt><xsl:value-of select="name"/></dt>
- <dd><xsl:value-of select="counter"/></dd>
- </dl>
- </xsl:for-each>
- <br/>
- </div>
-
- <div class="statcounter">
- <h2>Zone Maintenance Statistics</h2>
- <xsl:for-each select="server/zonestat">
- <dl>
- <dt><xsl:value-of select="name"/></dt>
- <dd><xsl:value-of select="counter"/></dd>
- </dl>
- </xsl:for-each>
- <br />
- </div>
-
- <div class="statcounter">
- <h2>Resolver Statistics (Common)</h2>
- <xsl:for-each select="server/resstat">
- <dl>
- <dt><xsl:value-of select="name"/></dt>
- <dd><xsl:value-of select="counter"/></dd>
- </dl>
- </xsl:for-each>
- <br />
- </div>
-
- <xsl:for-each select="views/view">
- <div class="statcounter">
- <h2>Resolver Statistics for View <xsl:value-of select="name"/></h2>
- <xsl:for-each select="resstat">
- <dl>
- <dt><xsl:value-of select="name"/></dt>
- <dd><xsl:value-of select="counter"/></dd>
- </dl>
- </xsl:for-each>
- <br />
- </div>
- </xsl:for-each>
-
- <br />
-
- <div class="statcounter">
- <h2>ADB Statistics (Common)</h2>
- <xsl:for-each select="server/adbstat">
- <dl>
- <dt><xsl:value-of select="name"/></dt>
- <dd><xsl:value-of select="counter"/></dd>
- </dl>
- </xsl:for-each>
- <br />
- </div>
-
- <xsl:for-each select="views/view">
- <div class="statcounter">
- <h2>ADB Statistics for View <xsl:value-of select="name"/></h2>
- <xsl:for-each select="adbstat">
- <dl>
- <dt><xsl:value-of select="name"/></dt>
- <dd><xsl:value-of select="counter"/></dd>
- </dl>
- </xsl:for-each>
- <br />
- </div>
- </xsl:for-each>
-
- <br />
-
- <xsl:for-each select="views/view">
- <table>
- <tr class="rowh">
- <th colspan="2">Cache Statistics for View <xsl:value-of select="name"/></th>
- </tr>
- <xsl:for-each select="cachestats/cachestat">
- <tr class="lrow">
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="value"/></td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:for-each>
-
- <xsl:for-each select="views/view">
- <table>
- <tr class="rowh">
- <th colspan="2">Cache DB RRsets for View <xsl:value-of select="name"/></th>
- </tr>
- <xsl:for-each select="cache/rrset">
- <tr class="lrow">
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="counter"/></td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:for-each>
-
- <div class="statcounter">
- <h2>Socket I/O Statistics</h2>
- <xsl:for-each select="server/sockstat">
- <dl>
- <dt><xsl:value-of select="name"/></dt>
- <dd><xsl:value-of select="counter"/></dd>
- </dl>
- </xsl:for-each>
- <br/>
- </div>
-
- <br/>
-
- <xsl:for-each select="views/view">
- <table>
- <tr class="rowh">
- <th colspan="10">Zones for View <xsl:value-of select="name"/></th>
+ <div class="header">
+ <h1>ISC Bind 9 Configuration and Statistics</h1>
+ </div>
+ <hr/>
+ <h2>Server Times</h2>
+ <table class="counters">
+ <tr>
+ <th>Boot time:</th>
+ <td>
+ <xsl:value-of select="server/boot-time"/>
+ </td>
+ </tr>
+ <tr>
+ <th>Sample 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"/>
+ <tr>
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
</tr>
- <tr class="rowh">
- <th>Name</th>
- <th>Class</th>
- <th>Serial</th>
- <th>Success</th>
- <th>Referral</th>
- <th>NXRRSET</th>
- <th>NXDOMAIN</th>
- <th>Failure</th>
- <th>XfrReqDone</th>
- <th>XfrRej</th>
+ </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>
+ </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 select="zones/zone">
- <tr class="lrow">
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="rdataclass"/>
- </td>
- <td>
- <xsl:value-of select="serial"/>
- </td>
- <td>
- <xsl:value-of select="counters/QrySuccess"/>
- </td>
- <td>
- <xsl:value-of select="counters/QryReferral"/>
- </td>
- <td>
- <xsl:value-of select="counters/QryNxrrset"/>
- </td>
- <td>
- <xsl:value-of select="counters/QryNXDOMAIN"/>
- </td>
+ </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 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}"/>
+ </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="counters/QryFailure"/>
+ <xsl:value-of select="."/>
</td>
+ </tr>
+ </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>
+ <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>
+ <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="counters/XfrReqDone"/>
+ <xsl:value-of select="."/>
</td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:for-each>
+ <h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
+ <xsl:for-each select="views/view">
+ <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="counters/XfrRej"/>
+ <xsl:value-of select="counter"/>
</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:variable>
+ <tr class="{$css-class7}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
<br/>
-
- <table>
- <tr class="rowh">
- <th colspan="7">Network Status</th>
- </tr>
- <tr class="rowh">
+ <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: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>
+ <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>
+ <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>
+ <h2>Network Status</h2>
+ <table class="counters">
+ <tr>
<th>ID</th>
- <th>Name</th>
+ <th>Name</th>
<th>Type</th>
<th>References</th>
<th>LocalAddress</th>
@@ -373,7 +554,14 @@ div.statcounter br {
<th>State</th>
</tr>
<xsl:for-each select="socketmgr/sockets/socket">
- <tr class="lrow">
+ <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>
@@ -401,56 +589,52 @@ div.statcounter br {
</xsl:for-each>
</table>
<br/>
- <table>
- <tr class="rowh">
- <th colspan="2">Task Manager Configuration</th>
- </tr>
- <tr class="lrow">
- <td>Thread-Model</td>
+ <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="lrow">
- <td>Worker Threads</td>
+ <tr class="odd">
+ <th>Worker Threads</th>
<td>
<xsl:value-of select="taskmgr/thread-model/worker-threads"/>
</td>
</tr>
- <tr class="lrow">
- <td>Default Quantum</td>
+ <tr class="even">
+ <th>Default Quantum</th>
<td>
<xsl:value-of select="taskmgr/thread-model/default-quantum"/>
</td>
</tr>
- <tr class="lrow">
- <td>Tasks Running</td>
+ <tr class="odd">
+ <th>Tasks Running</th>
<td>
<xsl:value-of select="taskmgr/thread-model/tasks-running"/>
</td>
</tr>
- <tr class="lrow">
- <td>Tasks Ready</td>
- <td>
- <xsl:value-of select="taskmgr/thread-model/tasks-ready"/>
- </td>
- </tr>
</table>
<br/>
- <table>
- <tr class="rowh">
- <th colspan="6">Tasks</th>
- </tr>
- <tr class="rowh">
+ <h2>Tasks</h2>
+ <table class="counters">
+ <tr>
<th>ID</th>
<th>Name</th>
<th>References</th>
<th>State</th>
<th>Quantum</th>
- <th>Events</th>
</tr>
<xsl:for-each select="taskmgr/tasks/task">
- <tr class="lrow">
+ <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>
@@ -466,77 +650,88 @@ div.statcounter br {
<td>
<xsl:value-of select="quantum"/>
</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>
<td>
- <xsl:value-of select="events"/>
+ <xsl:value-of select="."/>
</td>
</tr>
</xsl:for-each>
</table>
- <br />
- <table>
- <tr class="rowh">
- <th colspan="4">Memory Usage Summary</th>
- </tr>
- <xsl:for-each select="memory/summary/*">
- <tr class="lrow">
- <td><xsl:value-of select="name()"/></td>
- <td><xsl:value-of select="."/></td>
- </tr>
- </xsl:for-each>
- </table>
- <br />
- <table>
- <tr class="rowh">
- <th colspan="10">Memory Contexts</th>
+ <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>
- <tr class="rowh">
- <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">
- <tr class="lrow">
- <td>
- <xsl:value-of select="id"/>
- </td>
+ <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>
-
+ <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>
+ <hr/>
+ <p class="footer">Internet Systems Consortium Inc.<br/><a href="http://www.isc.org">http://www.isc.org</a></p>
</body>
</html>
</xsl:template>
diff --git a/bin/named/bind9.ver3.xsl.h b/bin/named/bind9.ver3.xsl.h
index 3992e9b4..c55714a6 100644
--- a/bin/named/bind9.ver3.xsl.h
+++ b/bin/named/bind9.ver3.xsl.h
@@ -1,11 +1,11 @@
/*
- * Generated by convertxsl.pl 1.14 2008/07/17 23:43:26 jinmei Exp
- * From bind9.xsl 1.21 2009/01/27 23:47:54 tbox Exp
+ * Generated by convertxsl.pl 1.14 2008/07/17 23:43:26 jinmei Exp
+ * From <!-- %Id: bind9.xsl 1.21 2009/01/27 23:47:54 tbox Exp %
*/
static char xslmsg[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!--\n"
- " - Copyright (C) 2006-2009, 2012 Internet Systems Consortium, Inc. (\"ISC\")\n"
+ " - Copyright (C) 2006-2009 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,356 +19,534 @@ 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"
"<!-- \045Id: bind9.xsl,v 1.21 2009/01/27 23:47:54 tbox Exp \045 -->\n"
- "\n"
- "<xsl:stylesheet version=\"1.0\"\n"
- " xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n"
- " xmlns=\"http://www.w3.org/1999/xhtml\">\n"
- " <xsl:template match=\"isc/bind/statistics\">\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"
" <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"
+ " google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});\n"
+ " google.setOnLoadCallback(loadGraphs);\n"
+ "\n"
+ " var graphs=[];\n"
+ " \n"
+ " function drawChart(chart_title,target,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"
+ " chart.draw(data, options);\n"
+ " }\n"
+ " \n"
+ " function loadGraphs(){\n"
+ " //alert(\"here we are!\");\n"
+ " var g;\n"
+ " \n"
+ " // Server Incoming query Types\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"
+ " }\n"
+ " }\n"
+ " }\n"
+ " \n"
+ " // Server Incoming Queries Types \n"
+ " graphs.push({\n"
+ " 'title' : \"Server Incoming Query Types\",\n"
+ " 'target': 'chart_incoming_qtypes',\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"
+ " 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"
+ " </script>\n"
+ " </xsl:if>\n"
" <style type=\"text/css\">\n"
- "body {\n"
+ " body {\n"
" font-family: sans-serif;\n"
" background-color: #ffffff;\n"
" color: #000000;\n"
- "}\n"
- "\n"
- "table {\n"
+ " font-size: 10pt;\n"
+ " }\n"
+ " \n"
+ " .odd{\n"
+ " background-color: #f0f0f0;\n"
+ " }\n"
+ " \n"
+ " .even{\n"
+ " background-color: #ffffff;\n"
+ " }\n"
+ " \n"
+ " p.footer{\n"
+ " font-style:italic;\n"
+ " color: grey;\n"
+ " }\n"
+ "\n"
+ " table {\n"
" border-collapse: collapse;\n"
- "}\n"
- "\n"
- "tr.rowh {\n"
+ " border: 1px solid grey;\n"
+ " }\n"
+ "\n"
+ " table.counters{\n"
+ " border: 1px solid grey;\n"
+ " width: 500px;\n"
+ " }\n"
+ " \n"
+ " table.counters th {\n"
" text-align: center;\n"
- " border: 1px solid #000000;\n"
- " background-color: #8080ff;\n"
- " color: #ffffff;\n"
- "}\n"
- "\n"
- "tr.row {\n"
- " text-align: right;\n"
- " border: 1px solid #000000;\n"
- " background-color: teal;\n"
- " color: #ffffff;\n"
- "}\n"
- "\n"
- "tr.lrow {\n"
- " text-align: left;\n"
- " border: 1px solid #000000;\n"
- " background-color: teal;\n"
+ " border: 1px solid grey;\n"
+ " width: 120px;\n"
+ " }\n"
+ " table.counters td{\n"
+ " text-align:center;\n"
+ " \n"
+ " }\n"
+ " \n"
+ " table.counters tr:hover{\n"
+ " background-color: #99ddff;\n"
+ " }\n"
+ " \n"
+ " .totals {\n"
+ " background-color: rgb(1,169,206);\n"
" color: #ffffff;\n"
- "}\n"
+ " }\n"
"\n"
- "td, th {\n"
+ " td, th {\n"
" padding-right: 5px;\n"
" padding-left: 5px;\n"
- "}\n"
+ " border: 1px solid grey;\n"
+ " }\n"
"\n"
- ".header h1 {\n"
- " background-color: teal;\n"
- " color: #ffffff;\n"
- " padding: 4px;\n"
- "}\n"
+ " .header h1 {\n"
+ " color: rgb(1,169,206);\n"
+ " padding: 0px;\n"
+ " }\n"
"\n"
- ".content {\n"
+ " .content {\n"
" background-color: #ffffff;\n"
" color: #000000;\n"
" padding: 4px;\n"
- "}\n"
+ " }\n"
"\n"
- ".item {\n"
+ " .item {\n"
" padding: 4px;\n"
- " align: right;\n"
- "}\n"
+ " text-align: right;\n"
+ " }\n"
"\n"
- ".value {\n"
+ " .value {\n"
" padding: 4px;\n"
" font-weight: bold;\n"
- "}\n"
- "\n"
- "div.statcounter h2 {\n"
- " text-align: center;\n"
- " font-size: large;\n"
- " border: 1px solid #000000;\n"
- " background-color: #8080ff;\n"
- " color: #ffffff;\n"
- "}\n"
- "\n"
- "div.statcounter dl {\n"
- " float: left;\n"
- " margin-top: 0;\n"
- " margin-bottom: 0;\n"
- " margin-left: 0;\n"
- " margin-right: 0;\n"
- "}\n"
- "\n"
- "div.statcounter dt {\n"
- " width: 200px;\n"
- " text-align: center;\n"
- " font-weight: bold;\n"
- " border: 0.5px solid #000000;\n"
- " background-color: #8080ff;\n"
- " color: #ffffff;\n"
- "}\n"
+ " }\n"
+ "\n"
+ "\n"
+ " h2 {\n"
+ " color: grey;\n"
+ " font-size: 14pt;\n"
+ " width:500px;\n"
+ " text-align:center;\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"
+ " width:500px;\n"
+ " height: 500px;\n"
+ " }\n"
"\n"
- "div.statcounter dd {\n"
- " width: 200px;\n"
- " text-align: right;\n"
- " border: 0.5px solid #000000;\n"
- " background-color: teal;\n"
- " color: #ffffff;\n"
- " margin-left: 0;\n"
- " margin-right: 0;\n"
- "}\n"
- "\n"
- "div.statcounter br {\n"
- " clear: left;\n"
- "}\n"
" </style>\n"
- " <title>BIND 9 Statistics</title>\n"
+ " <title>ISC BIND 9 Statistics</title>\n"
" </head>\n"
" <body>\n"
" <div class=\"header\">\n"
- " <h1>Bind 9 Configuration and Statistics</h1>\n"
+ " <h1>ISC Bind 9 Configuration and Statistics</h1>\n"
" </div>\n"
- "\n"
- " <br/>\n"
- "\n"
- " <table>\n"
- " <tr class=\"rowh\"><th colspan=\"2\">Times</th></tr>\n"
- " <tr class=\"lrow\">\n"
- " <td>boot-time</td>\n"
- " <td><xsl:value-of select=\"server/boot-time\"/></td>\n"
+ " <hr/>\n"
+ " <h2>Server Times</h2>\n"
+ " <table class=\"counters\">\n"
+ " <tr>\n"
+ " <th>Boot time:</th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\"server/boot-time\"/>\n"
+ " </td>\n"
" </tr>\n"
- " <tr class=\"lrow\">\n"
- " <td>current-time</td>\n"
- " <td><xsl:value-of select=\"server/current-time\"/></td>\n"
+ " <tr>\n"
+ " <th>Sample time:</th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\"server/current-time\"/>\n"
+ " </td>\n"
" </tr>\n"
" </table>\n"
- "\n"
" <br/>\n"
- "\n"
- " <table>\n"
- " <tr class=\"rowh\"><th colspan=\"2\">Incoming Requests</th></tr>\n"
- " <xsl:for-each select=\"server/requests/opcode\">\n"
- " <tr class=\"lrow\">\n"
- " <td><xsl:value-of select=\"name\"/></td>\n"
- " <td><xsl:value-of select=\"counter\"/></td>\n"
+ " <h2>Incoming Requests</h2>\n"
+ " <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <!-- Non Mozilla specific markup -->\n"
+ " <div class=\"pie\" id=\"chart_incoming_requests\">[graph incoming requests]</div>\n"
+ " </xsl:if>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;opcode&quot;]/counter\">\n"
+ " <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
+ " <tr>\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
+ " <tr>\n"
+ " <th class=\"totals\">Total:</th>\n"
+ " <td class=\"totals\">\n"
+ " <xsl:value-of select=\"sum(server/counters[@type=&quot;opcode&quot;]/counter)\"/>\n"
+ " </td>\n"
+ " </tr>\n"
" </table>\n"
- "\n"
" <br/>\n"
- "\n"
- " <table>\n"
- " <tr class=\"rowh\"><th colspan=\"2\">Incoming Queries</th></tr>\n"
- " <xsl:for-each select=\"server/queries-in/rdtype\">\n"
- " <tr class=\"lrow\">\n"
- " <td><xsl:value-of select=\"name\"/></td>\n"
- " <td><xsl:value-of select=\"counter\"/></td>\n"
+ " <h3>Incoming Queries by Type</h3>\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"
+ " </xsl:if>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;qtype&quot;]/counter\">\n"
+ " <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
+ " <xsl:variable name=\"css-class\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
+ " <tr>\n"
+ " <th class=\"totals\">Total:</th>\n"
+ " <td class=\"totals\">\n"
+ " <xsl:value-of select=\"sum(server/counters[@type=&quot;qtype&quot;]/counter)\"/>\n"
+ " </td>\n"
+ " </tr>\n"
" </table>\n"
- "\n"
" <br/>\n"
- "\n"
- " <xsl:for-each select=\"views/view\">\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"2\">Outgoing Queries from View <xsl:value-of select=\"name\"/></th>\n"
- " </tr>\n"
- " <xsl:for-each select=\"rdtype\">\n"
- " <tr class=\"lrow\">\n"
- " <td><xsl:value-of select=\"name\"/></td>\n"
- " <td><xsl:value-of select=\"counter\"/></td>\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"
+ " <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <!-- Non Mozilla specific markup -->\n"
+ " <script type=\"text/javascript\">\n"
+ " graphs.push({\n"
+ " 'title': \"Outgoing queries for view: <xsl:value-of select=\"@name\"/>\",\n"
+ " 'target': 'chart_outgoing_queries_view_<xsl:value-of select=\"@name\"/>',\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"
+ " </xsl:if>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"counters[@type=&quot;resqtype&quot;]/counter\">\n"
+ " <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
+ " <xsl:variable name=\"css-class1\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class1}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
" </xsl:for-each>\n"
- "\n"
- " <br/>\n"
- "\n"
- " <div class=\"statcounter\">\n"
" <h2>Server Statistics</h2>\n"
- " <xsl:for-each select=\"server/nsstat\">\n"
- " <dl>\n"
- " <dt><xsl:value-of select=\"name\"/></dt>\n"
- " <dd><xsl:value-of select=\"counter\"/></dd>\n"
- " </dl>\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"
+ " 'target': 'chart_server_nsstat_restype',\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"
+ " </xsl:if>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;nsstat&quot;]/counter[.&gt;0]\">\n"
+ " <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
+ " <xsl:variable name=\"css-class2\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class2}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
+ " </tr>\n"
" </xsl:for-each>\n"
+ " </table>\n"
" <br/>\n"
- " </div>\n"
- "\n"
- " <div class=\"statcounter\">\n"
" <h2>Zone Maintenance Statistics</h2>\n"
- " <xsl:for-each select=\"server/zonestat\">\n"
- " <dl>\n"
- " <dt><xsl:value-of select=\"name\"/></dt>\n"
- " <dd><xsl:value-of select=\"counter\"/></dd>\n"
- " </dl>\n"
+ " <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\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"
+ " });\n"
+ "\n"
+ " </script>\n"
+ " <!-- Non Mozilla specific markup -->\n"
+ " <div class=\"pie\" id=\"chart_server_zone_maint\"/>\n"
+ " </xsl:if>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;zonestat&quot;]/counter\">\n"
+ " <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
+ " <xsl:variable name=\"css-class3\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class3}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
+ " </tr>\n"
" </xsl:for-each>\n"
- " <br />\n"
- " </div>\n"
- "\n"
- " <div class=\"statcounter\">\n"
+ " </table>\n"
" <h2>Resolver Statistics (Common)</h2>\n"
- " <xsl:for-each select=\"server/resstat\">\n"
- " <dl>\n"
- " <dt><xsl:value-of select=\"name\"/></dt>\n"
- " <dd><xsl:value-of select=\"counter\"/></dd>\n"
- " </dl>\n"
- " </xsl:for-each>\n"
- " <br />\n"
- " </div>\n"
- "\n"
- " <xsl:for-each select=\"views/view\">\n"
- " <div class=\"statcounter\">\n"
- " <h2>Resolver Statistics for View <xsl:value-of select=\"name\"/></h2>\n"
- " <xsl:for-each select=\"resstat\">\n"
- " <dl>\n"
- " <dt><xsl:value-of select=\"name\"/></dt>\n"
- " <dd><xsl:value-of select=\"counter\"/></dd>\n"
- " </dl>\n"
- " </xsl:for-each>\n"
- " <br />\n"
- " </div>\n"
- " </xsl:for-each>\n"
- "\n"
- " <br />\n"
- "\n"
- " <div class=\"statcounter\">\n"
- " <h2>ADB Statistics (Common)</h2>\n"
- " <xsl:for-each select=\"server/adbstat\">\n"
- " <dl>\n"
- " <dt><xsl:value-of select=\"name\"/></dt>\n"
- " <dd><xsl:value-of select=\"counter\"/></dd>\n"
- " </dl>\n"
- " </xsl:for-each>\n"
- " <br />\n"
- " </div>\n"
- "\n"
- " <xsl:for-each select=\"views/view\">\n"
- " <div class=\"statcounter\">\n"
- " <h2>ADB Statistics for View <xsl:value-of select=\"name\"/></h2>\n"
- " <xsl:for-each select=\"adbstat\">\n"
- " <dl>\n"
- " <dt><xsl:value-of select=\"name\"/></dt>\n"
- " <dd><xsl:value-of select=\"counter\"/></dd>\n"
- " </dl>\n"
- " </xsl:for-each>\n"
- " <br />\n"
- " </div>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;restat&quot;]/counter\">\n"
+ " <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
+ " <xsl:variable name=\"css-class4\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class4}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
+ " </tr>\n"
" </xsl:for-each>\n"
- "\n"
- " <br />\n"
- "\n"
+ " </table>\n"
" <xsl:for-each select=\"views/view\">\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"2\">Cache Statistics for View <xsl:value-of select=\"name\"/></th>\n"
- " </tr>\n"
- " <xsl:for-each select=\"cachestats/cachestat\">\n"
- " <tr class=\"lrow\">\n"
- " <td><xsl:value-of select=\"name\"/></td>\n"
- " <td><xsl:value-of select=\"value\"/></td>\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"
+ " <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
+ " <xsl:variable name=\"css-class5\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class5}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
- " <br/>\n"
" </xsl:for-each>\n"
- "\n"
+ " <h3>Cache DB RRsets for View <xsl:value-of select=\"@name\"/></h3>\n"
" <xsl:for-each select=\"views/view\">\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"2\">Cache DB RRsets for View <xsl:value-of select=\"name\"/></th>\n"
- " </tr>\n"
+ " <table class=\"counters\">\n"
" <xsl:for-each select=\"cache/rrset\">\n"
- " <tr class=\"lrow\">\n"
- " <td><xsl:value-of select=\"name\"/></td>\n"
- " <td><xsl:value-of select=\"counter\"/></td>\n"
+ " <xsl:variable name=\"css-class6\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class6}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\"counter\"/>\n"
+ " </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
" </xsl:for-each>\n"
- "\n"
- " <div class=\"statcounter\">\n"
" <h2>Socket I/O Statistics</h2>\n"
- " <xsl:for-each select=\"server/sockstat\">\n"
- " <dl>\n"
- " <dt><xsl:value-of select=\"name\"/></dt>\n"
- " <dd><xsl:value-of select=\"counter\"/></dd>\n"
- " </dl>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"server/counters[@type=&quot;sockstat&quot;]/counter[.&gt;0]\">\n"
+ " <xsl:variable name=\"css-class7\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class7}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
+ " </tr>\n"
" </xsl:for-each>\n"
+ " </table>\n"
" <br/>\n"
- " </div>\n"
- "\n"
" <br/>\n"
- "\n"
- " <xsl:for-each select=\"views/view\">\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"10\">Zones for View <xsl:value-of select=\"name\"/></th>\n"
- " </tr>\n"
- " <tr class=\"rowh\">\n"
- " <th>Name</th>\n"
- " <th>Class</th>\n"
- " <th>Serial</th>\n"
- " <th>Success</th>\n"
- " <th>Referral</th>\n"
- " <th>NXRRSET</th>\n"
- " <th>NXDOMAIN</th>\n"
- " <th>Failure</th>\n"
- " <th>XfrReqDone</th>\n"
- " <th>XfrRej</th>\n"
- " </tr>\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"
+ " <xsl:variable name=\"thisview\">\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </xsl:variable>\n"
" <xsl:for-each select=\"zones/zone\">\n"
- " <tr class=\"lrow\">\n"
- " <td>\n"
- " <xsl:value-of select=\"name\"/>\n"
- " </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"rdataclass\"/>\n"
- " </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"serial\"/>\n"
- " </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"counters/QrySuccess\"/>\n"
- " </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"counters/QryReferral\"/>\n"
- " </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"counters/QryNxrrset\"/>\n"
- " </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"counters/QryNXDOMAIN\"/>\n"
- " </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"counters/QryFailure\"/>\n"
- " </td>\n"
+ " <xsl:if test=\"counters[@type=&quot;rcode&quot;]/counter[. &gt; 0]\">\n"
+ " <h4>Zone <xsl:value-of select=\"@name\"/></h4>\n"
+ " <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <!-- Non Mozilla specific markup -->\n"
+ " <script type=\"text/javascript\">\n"
+ " 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"
+ " '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"
+ " </script>\n"
+ " <xsl:variable name=\"target\">\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </xsl:variable>\n"
+ " <div class=\"pie\" id=\"chart_rescode_{$thisview}_{$target}\"/>\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"
+ " <xsl:sort select=\".\"/>\n"
+ " <xsl:variable name=\"css-class10\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class10}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
" <td>\n"
- " <xsl:value-of select=\"counters/XfrReqDone\"/>\n"
+ " <xsl:value-of select=\".\"/>\n"
" </td>\n"
+ " </tr>\n"
+ " </xsl:for-each>\n"
+ " </table>\n"
+ " </xsl:if>\n"
+ " </xsl:for-each>\n"
+ " </xsl:for-each>\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"
+ " <xsl:variable name=\"thisview2\">\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </xsl:variable>\n"
+ " <xsl:for-each select=\"zones/zone\">\n"
+ " <xsl:if test=\"counters[@type=&quot;qtype&quot;]/counter[count(.) &gt; 0]\">\n"
+ " <h4>Zone <xsl:value-of select=\"@name\"/></h4>\n"
+ " <xsl:if test=\"system-property('xsl:vendor')!='Transformiix'\">\n"
+ " <!-- Non Mozilla specific markup -->\n"
+ " <script type=\"text/javascript\">\n"
+ " 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"
+ " '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"
+ " </script>\n"
+ " <xsl:variable name=\"target\">\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </xsl:variable>\n"
+ " <div class=\"pie\" id=\"chart_qtype_{$thisview2}_{$target}\"/>\n"
+ " </xsl:if>\n"
+ " <table class=\"counters\">\n"
+ " <xsl:for-each select=\"counters[@type=&quot;qtype&quot;]/counter\">\n"
+ " <xsl:sort select=\".\"/>\n"
+ " <xsl:variable name=\"css-class11\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class11}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"@name\"/>\n"
+ " </th>\n"
" <td>\n"
- " <xsl:value-of select=\"counters/XfrRej\"/>\n"
+ " <xsl:value-of select=\".\"/>\n"
" </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
- " <br/>\n"
+ " </xsl:if>\n"
" </xsl:for-each>\n"
- "\n"
- " <br/>\n"
- "\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"7\">Network Status</th>\n"
- " </tr>\n"
- " <tr class=\"rowh\">\n"
+ " </xsl:for-each>\n"
+ " <h2>Network Status</h2>\n"
+ " <table class=\"counters\">\n"
+ " <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
" <th>Type</th>\n"
@@ -378,7 +556,14 @@ static char xslmsg[] =
" <th>State</th>\n"
" </tr>\n"
" <xsl:for-each select=\"socketmgr/sockets/socket\">\n"
- " <tr class=\"lrow\">\n"
+ " <xsl:sort select=\"id\"/>\n"
+ " <xsl:variable name=\"css-class12\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class12}\">\n"
" <td>\n"
" <xsl:value-of select=\"id\"/>\n"
" </td>\n"
@@ -406,56 +591,52 @@ static char xslmsg[] =
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"2\">Task Manager Configuration</th>\n"
- " </tr>\n"
- " <tr class=\"lrow\">\n"
- " <td>Thread-Model</td>\n"
+ " <h2>Task Manager Configuration</h2>\n"
+ " <table class=\"counters\">\n"
+ " <tr>\n"
+ " <th class=\"even\">Thread-Model</th>\n"
" <td>\n"
" <xsl:value-of select=\"taskmgr/thread-model/type\"/>\n"
" </td>\n"
" </tr>\n"
- " <tr class=\"lrow\">\n"
- " <td>Worker Threads</td>\n"
+ " <tr class=\"odd\">\n"
+ " <th>Worker Threads</th>\n"
" <td>\n"
" <xsl:value-of select=\"taskmgr/thread-model/worker-threads\"/>\n"
" </td>\n"
" </tr>\n"
- " <tr class=\"lrow\">\n"
- " <td>Default Quantum</td>\n"
+ " <tr class=\"even\">\n"
+ " <th>Default Quantum</th>\n"
" <td>\n"
" <xsl:value-of select=\"taskmgr/thread-model/default-quantum\"/>\n"
" </td>\n"
" </tr>\n"
- " <tr class=\"lrow\">\n"
- " <td>Tasks Running</td>\n"
+ " <tr class=\"odd\">\n"
+ " <th>Tasks Running</th>\n"
" <td>\n"
" <xsl:value-of select=\"taskmgr/thread-model/tasks-running\"/>\n"
" </td>\n"
" </tr>\n"
- " <tr class=\"lrow\">\n"
- " <td>Tasks Ready</td>\n"
- " <td>\n"
- " <xsl:value-of select=\"taskmgr/thread-model/tasks-ready\"/>\n"
- " </td>\n"
- " </tr>\n"
" </table>\n"
" <br/>\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"6\">Tasks</th>\n"
- " </tr>\n"
- " <tr class=\"rowh\">\n"
+ " <h2>Tasks</h2>\n"
+ " <table class=\"counters\">\n"
+ " <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
" <th>References</th>\n"
" <th>State</th>\n"
" <th>Quantum</th>\n"
- " <th>Events</th>\n"
" </tr>\n"
" <xsl:for-each select=\"taskmgr/tasks/task\">\n"
- " <tr class=\"lrow\">\n"
+ " <xsl:sort select=\"name\"/>\n"
+ " <xsl:variable name=\"css-class14\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class14}\">\n"
" <td>\n"
" <xsl:value-of select=\"id\"/>\n"
" </td>\n"
@@ -471,30 +652,33 @@ static char xslmsg[] =
" <td>\n"
" <xsl:value-of select=\"quantum\"/>\n"
" </td>\n"
- " <td>\n"
- " <xsl:value-of select=\"events\"/>\n"
- " </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
- " <br />\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"4\">Memory Usage Summary</th>\n"
- " </tr>\n"
+ " <br/>\n"
+ " <h2>Memory Usage Summary</h2>\n"
+ " <table class=\"counters\">\n"
" <xsl:for-each select=\"memory/summary/*\">\n"
- " <tr class=\"lrow\">\n"
- " <td><xsl:value-of select=\"name()\"/></td>\n"
- " <td><xsl:value-of select=\".\"/></td>\n"
+ " <xsl:variable name=\"css-class13\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class13}\">\n"
+ " <th>\n"
+ " <xsl:value-of select=\"name()\"/>\n"
+ " </th>\n"
+ " <td>\n"
+ " <xsl:value-of select=\".\"/>\n"
+ " </td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
- " <br />\n"
- " <table>\n"
- " <tr class=\"rowh\">\n"
- " <th colspan=\"10\">Memory Contexts</th>\n"
- " </tr>\n"
- " <tr class=\"rowh\">\n"
+ " <br/>\n"
+ " <h2>Memory Contexts</h2>\n"
+ " <table class=\"counters\">\n"
+ " <tr>\n"
" <th>ID</th>\n"
" <th>Name</th>\n"
" <th>References</th>\n"
@@ -507,7 +691,14 @@ static char xslmsg[] =
" <th>LoWater</th>\n"
" </tr>\n"
" <xsl:for-each select=\"memory/contexts/context\">\n"
- " <tr class=\"lrow\">\n"
+ " <xsl:sort select=\"total\" data-type=\"number\" order=\"descending\"/>\n"
+ " <xsl:variable name=\"css-class14\">\n"
+ " <xsl:choose>\n"
+ " <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
+ " <xsl:otherwise>odd</xsl:otherwise>\n"
+ " </xsl:choose>\n"
+ " </xsl:variable>\n"
+ " <tr class=\"{$css-class14}\">\n"
" <td>\n"
" <xsl:value-of select=\"id\"/>\n"
" </td>\n"
@@ -541,7 +732,8 @@ static char xslmsg[] =
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
- "\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"
" </html>\n"
" </xsl:template>\n"
diff --git a/bin/named/config.c b/bin/named/config.c
index 5626e118..b9b8dd81 100644
--- a/bin/named/config.c
+++ b/bin/named/config.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -201,7 +201,7 @@ options {\n\
sig-signing-signatures 10;\n\
sig-signing-type 65534;\n\
inline-signing no;\n\
- zone-statistics false;\n\
+ zone-statistics terse;\n\
max-journal-size unlimited;\n\
ixfr-from-differences false;\n\
check-wildcard yes;\n\
diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
index 56a30fe6..b7c78b31 100644
--- a/bin/named/include/named/globals.h
+++ b/bin/named/include/named/globals.h
@@ -67,6 +67,7 @@ EXTERN isc_timermgr_t * ns_g_timermgr INIT(NULL);
EXTERN isc_socketmgr_t * ns_g_socketmgr INIT(NULL);
EXTERN cfg_parser_t * ns_g_parser INIT(NULL);
EXTERN const char * ns_g_version INIT(VERSION);
+EXTERN const char * ns_g_product INIT(PRODUCT);
EXTERN const char * ns_g_srcid INIT(SRCID);
EXTERN const char * ns_g_configargs INIT(CONFIGARGS);
EXTERN in_port_t ns_g_port INIT(0);
diff --git a/bin/named/include/named/server.h b/bin/named/include/named/server.h
index 5fd2c85b..3ba0c64a 100644
--- a/bin/named/include/named/server.h
+++ b/bin/named/include/named/server.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -165,7 +165,9 @@ enum {
dns_nsstatscounter_updatefail = 34,
dns_nsstatscounter_updatebadprereq = 35,
- dns_nsstatscounter_max = 36
+ dns_nsstatscounter_rpz_rewrites = 36,
+
+ dns_nsstatscounter_max = 37
};
void
diff --git a/bin/named/main.c b/bin/named/main.c
index 74ca3a2e..e3c269ba 100644
--- a/bin/named/main.c
+++ b/bin/named/main.c
@@ -540,10 +540,10 @@ parse_command_line(int argc, char *argv[]) {
ns_g_username = isc_commandline_argument;
break;
case 'v':
- printf("BIND %s\n", ns_g_version);
+ printf("%s %s\n", ns_g_product, ns_g_version);
exit(0);
case 'V':
- printf("BIND %s <id:%s> built with %s\n",
+ printf("%s %s <id:%s> built with %s\n", ns_g_product,
ns_g_version, ns_g_srcid, ns_g_configargs);
#ifdef OPENSSL
printf("using OpenSSL version: %s\n",
@@ -597,7 +597,9 @@ create_managers(void) {
#ifdef WIN32
ns_g_udpdisp = 1;
#else
- if (ns_g_udpdisp == 0 || ns_g_udpdisp > ns_g_cpus)
+ if (ns_g_udpdisp == 0)
+ ns_g_udpdisp = ns_g_cpus_detected;
+ if (ns_g_udpdisp > ns_g_cpus)
ns_g_udpdisp = ns_g_cpus;
#endif
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,
@@ -806,8 +808,8 @@ setup(void) {
isc_result_totext(result));
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN,
- ISC_LOG_NOTICE, "starting BIND %s%s", ns_g_version,
- saved_command_line);
+ ISC_LOG_NOTICE, "starting %s %s%s", ns_g_product,
+ ns_g_version, saved_command_line);
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN,
ISC_LOG_NOTICE, "built with %s", ns_g_configargs);
diff --git a/bin/named/named.8 b/bin/named/named.8
index 0fdd7b7d..b27be318 100644
--- a/bin/named/named.8
+++ b/bin/named/named.8
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+.\" Copyright (C) 2004-2009, 2011, 2013 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
@@ -174,9 +174,11 @@ Use
\fI#listeners\fR
worker threads to listen for incoming UDP packets on each address. If not specified,
\fBnamed\fR
-will use all of the worker threads for this purpose; the
+will use the number of detected CPUs. If
+\fB\-n\fR
+has been set to a higher value than the number of CPUs, then
\fB\-U\fR
-option allows the number to be decreased but not increased.
+may be increased as high as that value, but no higher.
.RE
.PP
\-u \fIuser\fR
@@ -278,7 +280,7 @@ BIND 9 Administrator Reference Manual.
.PP
Internet Systems Consortium
.SH "COPYRIGHT"
-Copyright \(co 2004\-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+Copyright \(co 2004\-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
.br
Copyright \(co 2000, 2001, 2003 Internet Software Consortium.
.br
diff --git a/bin/named/named.docbook b/bin/named/named.docbook
index 3de97e6d..1f08e196 100644
--- a/bin/named/named.docbook
+++ b/bin/named/named.docbook
@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- - Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2009, 2011, 2013 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
@@ -44,6 +44,7 @@
<year>2008</year>
<year>2009</year>
<year>2011</year>
+ <year>2013</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
<copyright>
@@ -290,9 +291,10 @@
Use <replaceable class="parameter">#listeners</replaceable>
worker threads to listen for incoming UDP packets on each
address. If not specified, <command>named</command> will
- use all of the worker threads for this purpose; the
- <option>-U</option> option allows the number to be
- decreased but not increased.
+ use the number of detected CPUs. If <option>-n</option>
+ has been set to a higher value than the number of CPUs,
+ then <option>-U</option> may be increased as high as that
+ value, but no higher.
</para>
</listitem>
</varlistentry>
diff --git a/bin/named/named.html b/bin/named/named.html
index 6e1aa052..fc8de514 100644
--- a/bin/named/named.html
+++ b/bin/named/named.html
@@ -1,5 +1,5 @@
<!--
- - Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2004-2009, 2011, 2013 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
@@ -32,7 +32,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="id2543494"></a><h2>DESCRIPTION</h2>
+<a name="id2543497"></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
@@ -47,7 +47,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2543518"></a><h2>OPTIONS</h2>
+<a name="id2543522"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-4</span></dt>
<dd><p>
@@ -183,9 +183,10 @@
Use <em class="replaceable"><code>#listeners</code></em>
worker threads to listen for incoming UDP packets on each
address. If not specified, <span><strong class="command">named</strong></span> will
- use all of the worker threads for this purpose; the
- <code class="option">-U</code> option allows the number to be
- decreased but not increased.
+ use the number of detected CPUs. If <code class="option">-n</code>
+ has been set to a higher value than the number of CPUs,
+ then <code class="option">-U</code> may be increased as high as that
+ value, but no higher.
</p></dd>
<dt><span class="term">-u <em class="replaceable"><code>user</code></em></span></dt>
<dd>
@@ -237,7 +238,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2544005"></a><h2>SIGNALS</h2>
+<a name="id2544012"></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
@@ -258,7 +259,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2544053"></a><h2>CONFIGURATION</h2>
+<a name="id2544060"></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
@@ -275,7 +276,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2544089"></a><h2>FILES</h2>
+<a name="id2544233"></a><h2>FILES</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="filename">/etc/named.conf</code></span></dt>
<dd><p>
@@ -288,7 +289,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2544265"></a><h2>SEE ALSO</h2>
+<a name="id2544273"></a><h2>SEE ALSO</h2>
<p><em class="citetitle">RFC 1033</em>,
<em class="citetitle">RFC 1034</em>,
<em class="citetitle">RFC 1035</em>,
@@ -301,7 +302,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2544336"></a><h2>AUTHOR</h2>
+<a name="id2544343"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/bin/named/query.c b/bin/named/query.c
index 853b7955..5093cb24 100644
--- a/bin/named/query.c
+++ b/bin/named/query.c
@@ -877,12 +877,29 @@ query_getzonedb(ns_client_t *client, dns_name_t *name, dns_rdatatype_t qtype,
}
static void
-rpz_log_rewrite(ns_client_t *client, const char *disabled,
+rpz_log_rewrite(ns_client_t *client, isc_boolean_t disabled,
dns_rpz_policy_t policy, dns_rpz_type_t type,
- dns_name_t *rpz_qname) {
+ dns_zone_t *zone, dns_name_t *rpz_qname)
+{
+ isc_stats_t *zonestats;
char qname_buf[DNS_NAME_FORMATSIZE];
char rpz_qname_buf[DNS_NAME_FORMATSIZE];
+ /*
+ * Count enabled rewrites in the global counter.
+ * Count both enabled and disabled rewrites for each zone.
+ */
+ if (!disabled && policy != DNS_RPZ_POLICY_PASSTHRU) {
+ isc_stats_increment(ns_g_server->nsstats,
+ dns_nsstatscounter_rpz_rewrites);
+ }
+ if (zone != NULL) {
+ zonestats = dns_zone_getrequeststats(zone);
+ if (zonestats != NULL)
+ isc_stats_increment(zonestats,
+ dns_nsstatscounter_rpz_rewrites);
+ }
+
if (!isc_log_wouldlog(ns_g_lctx, DNS_RPZ_INFO_LEVEL))
return;
@@ -891,7 +908,7 @@ rpz_log_rewrite(ns_client_t *client, const char *disabled,
ns_client_log(client, DNS_LOGCATEGORY_RPZ, NS_LOGMODULE_QUERY,
DNS_RPZ_INFO_LEVEL, "%srpz %s %s rewrite %s via %s",
- disabled,
+ disabled ? "disabled " : "",
dns_rpz_type2str(type), dns_rpz_policy2str(policy),
qname_buf, rpz_qname_buf);
}
@@ -907,6 +924,9 @@ rpz_log_fail(ns_client_t *client, int level,
if (!isc_log_wouldlog(ns_g_lctx, level))
return;
+ /*
+ * bin/tests/system/rpz/tests.sh looks for "rpz.*failed".
+ */
dns_name_format(client->query.qname, namebuf1, sizeof(namebuf1));
dns_name_format(name, namebuf2, sizeof(namebuf2));
ns_client_log(client, NS_LOGCATEGORY_QUERY_EERRORS,
@@ -4131,6 +4151,8 @@ rpz_rewrite_rrset(ns_client_t *client, dns_rpz_type_t rpz_type,
rdatasetp, resuming);
switch (result) {
case ISC_R_SUCCESS:
+ case DNS_R_GLUE:
+ case DNS_R_ZONECUT:
result = rpz_rewrite_ip(client, *rdatasetp, rpz_type);
break;
case DNS_R_EMPTYNAME:
@@ -4315,26 +4337,32 @@ rpz_find(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qnamef,
result = DNS_R_CNAME;
}
break;
+ case DNS_R_NXRRSET:
+ policy = DNS_RPZ_POLICY_NODATA;
+ break;
case DNS_R_DNAME:
/*
* DNAME policy RRs have very few if any uses that are not
* better served with simple wildcards. Making the work would
* require complications to get the number of labels matched
* in the name or the found name to the main DNS_R_DNAME case
- * in query_find(). So fall through to treat them as NODATA.
+ * in query_find().
+ */
+ dns_rdataset_disassociate(*rdatasetp);
+ dns_db_detachnode(*dbp, nodep);
+ /*
+ * Fall through to treat it as a miss.
*/
- case DNS_R_NXRRSET:
- policy = DNS_RPZ_POLICY_NODATA;
- break;
case DNS_R_NXDOMAIN:
case DNS_R_EMPTYNAME:
/*
* If we don't get a qname hit,
* see if it is worth looking for other types.
*/
- dns_db_rpz_enabled(*dbp, client->query.rpz_st);
+ (void)dns_db_rpz_enabled(*dbp, client->query.rpz_st);
dns_db_detach(dbp);
dns_zone_detach(zonep);
+ result = DNS_R_NXDOMAIN;
policy = DNS_RPZ_POLICY_MISS;
break;
default:
@@ -4342,9 +4370,7 @@ rpz_find(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qnamef,
dns_zone_detach(zonep);
rpz_log_fail(client, DNS_RPZ_ERROR_LEVEL, rpz_type, qnamef,
"", result);
- policy = DNS_RPZ_POLICY_ERROR;
- result = DNS_R_SERVFAIL;
- break;
+ return (DNS_R_SERVFAIL);
}
*policyp = policy;
@@ -4410,6 +4436,9 @@ rpz_rewrite_name(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qname,
if (result == ISC_R_SUCCESS)
break;
INSIST(result == DNS_R_NAMETOOLONG);
+ /*
+ * Trim the name until it is not too long.
+ */
labels = dns_name_countlabels(prefix);
if (labels < 2) {
rpz_log_fail(client, DNS_RPZ_ERROR_LEVEL,
@@ -4433,7 +4462,6 @@ rpz_rewrite_name(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qname,
rdatasetp, &policy);
switch (result) {
case DNS_R_NXDOMAIN:
- case DNS_R_EMPTYNAME:
break;
case DNS_R_SERVFAIL:
rpz_clean(&zone, &db, &node, rdatasetp);
@@ -4456,13 +4484,45 @@ rpz_rewrite_name(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qname,
(st->m.type == rpz_type &&
0 >= dns_name_compare(rpz_qname, st->qname))))
continue;
-
+#if 0
+ /*
+ * This code would block a customer reported information
+ * leak of rpz rules by rewriting requests in the
+ * rpz-ip, rpz-nsip, rpz-nsdname,and rpz-passthru TLDs.
+ * Without this code, a bad guy could request
+ * 24.0.3.2.10.rpz-ip. to find the policy rule for
+ * 10.2.3.0/14. It is an insignificant leak and this
+ * code is not worth its cost, because the bad guy
+ * could publish "evil.com A 10.2.3.4" and request
+ * evil.com to get the same information.
+ * Keep code with "#if 0" in case customer demand
+ * is irresistible.
+ *
+ * We have the less frequent case of a triggered
+ * policy. Check that we have not trigger on one
+ * of the pretend RPZ TLDs.
+ * This test would make it impossible to rewrite
+ * names in TLDs that start with "rpz-" should
+ * ICANN ever allow such TLDs.
+ */
+ labels = dns_name_countlabels(qname);
+ if (labels >= 2) {
+ dns_label_t label;
+
+ dns_name_getlabel(qname, labels-2, &label);
+ if (label.length >= sizeof(DNS_RPZ_PREFIX)-1 &&
+ strncasecmp((const char *)label.base+1,
+ DNS_RPZ_PREFIX,
+ sizeof(DNS_RPZ_PREFIX)-1) == 0)
+ continue;
+ }
+#endif
/*
* Merely log DNS_RPZ_POLICY_DISABLED hits.
*/
if (rpz->policy == DNS_RPZ_POLICY_DISABLED) {
- rpz_log_rewrite(client, "disabled ",
- policy, rpz_type, rpz_qname);
+ rpz_log_rewrite(client, ISC_TRUE, policy,
+ rpz_type, zone, rpz_qname);
continue;
}
@@ -4593,7 +4653,7 @@ rpz_rewrite(ns_client_t *client, dns_rdatatype_t qtype, isc_result_t qresult,
rdataset = NULL;
if ((st->state & DNS_RPZ_DONE_QNAME) == 0) {
/*
- * Check rules for the query name if this it the first time
+ * Check rules for the query name if this is the first time
* for the current qname, i.e. we've not been recursing.
* There is a first time for each name in a CNAME chain.
*/
@@ -4635,7 +4695,7 @@ rpz_rewrite(ns_client_t *client, dns_rdatatype_t qtype, isc_result_t qresult,
dns_fixedname_init(&nsnamef);
dns_name_clone(client->query.qname, dns_fixedname_name(&nsnamef));
- while (st->r.label > 1) {
+ while (st->r.label > client->view->rpz_min_ns_labels) {
/*
* Get NS rrset for each domain in the current qname.
*/
@@ -4766,8 +4826,8 @@ cleanup:
st->m.policy == DNS_RPZ_POLICY_ERROR) {
if (st->m.policy == DNS_RPZ_POLICY_PASSTHRU &&
result != DNS_R_DELEGATION)
- rpz_log_rewrite(client, "", st->m.policy, st->m.type,
- st->qname);
+ rpz_log_rewrite(client, ISC_FALSE, st->m.policy,
+ st->m.type, st->m.zone, st->qname);
rpz_match_clear(st);
}
if (st->m.policy == DNS_RPZ_POLICY_ERROR) {
@@ -4782,7 +4842,7 @@ cleanup:
}
/*
- * See if response policy zone rewriting is allowed a lack of interest
+ * See if response policy zone rewriting is allowed by a lack of interest
* by the client in DNSSEC or a lack of signatures.
*/
static isc_boolean_t
@@ -4877,7 +4937,8 @@ rpz_add_cname(ns_client_t *client, dns_rpz_st_t *st,
fname, dns_trust_authanswer, st->m.ttl);
if (result != ISC_R_SUCCESS)
return (result);
- rpz_log_rewrite(client, "", st->m.policy, st->m.type, st->qname);
+ rpz_log_rewrite(client, ISC_FALSE, st->m.policy,
+ st->m.type, st->m.zone, st->qname);
ns_client_qnamereplace(client, fname);
/*
* Turn off DNSSEC because the results of a
@@ -5940,8 +6001,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
query_putrdataset(client, &sigrdataset);
rpz_st->q.is_zone = is_zone;
is_zone = ISC_TRUE;
- rpz_log_rewrite(client, "", rpz_st->m.policy,
- rpz_st->m.type, rpz_st->qname);
+ rpz_log_rewrite(client, ISC_FALSE, rpz_st->m.policy,
+ rpz_st->m.type, zone, rpz_st->qname);
}
}
diff --git a/bin/named/server.c b/bin/named/server.c
index 00436563..d74deb44 100644
--- a/bin/named/server.c
+++ b/bin/named/server.c
@@ -115,6 +115,10 @@
#define PATH_MAX 1024
#endif
+#ifndef SIZE_MAX
+#define SIZE_MAX ((size_t)-1)
+#endif
+
/*%
* Check an operation for failure. Assumes that the function
* using it has a 'result' variable and a 'cleanup' label.
@@ -162,7 +166,7 @@
* a cache. Only effective when a finite max-cache-size is specified.
* This is currently defined to be 8MB.
*/
-#define MAX_ADB_SIZE_FOR_CACHESHARE 8388608
+#define MAX_ADB_SIZE_FOR_CACHESHARE 8388608U
struct ns_dispatch {
isc_sockaddr_t addr;
@@ -1344,12 +1348,14 @@ check_dbtype(dns_zone_t **zonep, unsigned int dbtypec, const char **dbargv,
}
static isc_result_t
-setquerystats(dns_zone_t *zone, isc_mem_t *mctx, isc_boolean_t on) {
+setquerystats(dns_zone_t *zone, isc_mem_t *mctx, dns_zonestat_level_t level) {
isc_result_t result;
isc_stats_t *zoneqrystats;
+ dns_zone_setstatlevel(zone, level);
+
zoneqrystats = NULL;
- if (on) {
+ if (level == dns_zonestat_full) {
result = isc_stats_create(mctx, &zoneqrystats,
dns_nsstatscounter_max);
if (result != ISC_R_SUCCESS)
@@ -1397,7 +1403,7 @@ static isc_boolean_t
cache_sharable(dns_view_t *originview, dns_view_t *view,
isc_boolean_t new_zero_no_soattl,
unsigned int new_cleaning_interval,
- isc_uint32_t new_max_cache_size)
+ isc_uint64_t new_max_cache_size)
{
/*
* If the cache cannot even reused for the same view, it cannot be
@@ -1503,7 +1509,7 @@ dns64_reverse(dns_view_t *view, isc_mem_t *mctx, isc_netaddr_t *na,
dns_zone_setdialup(zone, dns_dialuptype_no);
dns_zone_setnotifytype(zone, dns_notifytype_no);
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS, ISC_TRUE);
- CHECK(setquerystats(zone, mctx, ISC_FALSE)); /* XXXMPA */
+ CHECK(setquerystats(zone, mctx, dns_zonestat_none)); /* XXXMPA */
CHECK(dns_view_addzone(view, zone));
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,
ISC_LOG_INFO, "dns64 reverse zone%s%s: %s", sep,
@@ -1516,39 +1522,57 @@ cleanup:
}
static isc_result_t
+configure_rpz_name(dns_view_t *view, const cfg_obj_t *obj, dns_name_t *name,
+ const char *str, const char *msg)
+{
+ isc_result_t result;
+
+ result = dns_name_fromstring(name, str, DNS_NAME_DOWNCASE, view->mctx);
+ if (result != ISC_R_SUCCESS)
+ cfg_obj_log(obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
+ "invalid %s '%s'", msg, str);
+ return (result);
+}
+
+static isc_result_t
+configure_rpz_name2(dns_view_t *view, const cfg_obj_t *obj, dns_name_t *name,
+ const char *str, const dns_name_t *origin)
+{
+ isc_result_t result;
+
+ result = dns_name_fromstring2(name, str, origin, DNS_NAME_DOWNCASE,
+ view->mctx);
+ if (result != ISC_R_SUCCESS)
+ cfg_obj_log(obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
+ "invalid zone '%s'", str);
+ return (result);
+}
+
+static isc_result_t
configure_rpz(dns_view_t *view, const cfg_listelt_t *element,
isc_boolean_t recursive_only_def, dns_ttl_t ttl_def)
{
- const cfg_obj_t *rpz_obj, *policy_obj, *obj;
+ const cfg_obj_t *rpz_obj, *obj;
const char *str;
dns_rpz_zone_t *old, *new;
- dns_zone_t *zone = NULL;
isc_result_t result;
+ rpz_obj = cfg_listelt_value(element);
+
new = isc_mem_get(view->mctx, sizeof(*new));
if (new == NULL) {
- result = ISC_R_NOMEMORY;
- goto cleanup;
+ cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
+ "no memory for response policy zones");
+ return (ISC_R_NOMEMORY);
}
memset(new, 0, sizeof(*new));
dns_name_init(&new->origin, NULL);
dns_name_init(&new->nsdname, NULL);
- dns_name_init(&new->cname, NULL);
dns_name_init(&new->passthru, NULL);
+ dns_name_init(&new->cname, NULL);
ISC_LIST_INITANDAPPEND(view->rpz_zones, new, link);
- rpz_obj = cfg_listelt_value(element);
- policy_obj = cfg_tuple_get(rpz_obj, "policy");
- if (cfg_obj_isvoid(policy_obj)) {
- new->policy = DNS_RPZ_POLICY_GIVEN;
- } else {
- str = cfg_obj_asstring(cfg_tuple_get(policy_obj,
- "policy name"));
- new->policy = dns_rpz_str2policy(str);
- INSIST(new->policy != DNS_RPZ_POLICY_ERROR);
- }
-
obj = cfg_tuple_get(rpz_obj, "recursive-only");
if (cfg_obj_isvoid(obj)) {
new->recursive_only = recursive_only_def;
@@ -1566,47 +1590,14 @@ configure_rpz(dns_view_t *view, const cfg_listelt_t *element,
}
str = cfg_obj_asstring(cfg_tuple_get(rpz_obj, "zone name"));
- result = dns_name_fromstring(&new->origin, str, DNS_NAME_DOWNCASE,
- view->mctx);
- if (result != ISC_R_SUCCESS) {
- cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
- "invalid zone '%s'", str);
- goto cleanup;
- }
-
- result = dns_name_fromstring2(&new->nsdname, DNS_RPZ_NSDNAME_ZONE,
- &new->origin, DNS_NAME_DOWNCASE,
- view->mctx);
- if (result != ISC_R_SUCCESS) {
- cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
- "invalid zone '%s'", str);
- goto cleanup;
- }
-
- result = dns_name_fromstring(&new->passthru, DNS_RPZ_PASSTHRU_ZONE,
- DNS_NAME_DOWNCASE, view->mctx);
- if (result != ISC_R_SUCCESS) {
- cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
- "invalid zone '%s'", str);
- goto cleanup;
- }
-
- result = dns_view_findzone(view, &new->origin, &zone);
- if (result != ISC_R_SUCCESS) {
+ result = configure_rpz_name(view, rpz_obj, &new->origin, str, "zone");
+ if (result != ISC_R_SUCCESS)
+ return (result);
+ if (dns_name_equal(&new->origin, dns_rootname)) {
cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
- "unknown zone '%s'", str);
- goto cleanup;
+ "invalid zone name '%s'", str);
+ return (DNS_R_EMPTYLABEL);
}
- if (dns_zone_gettype(zone) != dns_zone_master &&
- dns_zone_gettype(zone) != dns_zone_slave) {
- cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
- "zone '%s' is neither master nor slave", str);
- dns_zone_detach(&zone);
- result = DNS_R_NOTMASTER;
- goto cleanup;
- }
- dns_zone_detach(&zone);
-
for (old = ISC_LIST_HEAD(view->rpz_zones);
old != new;
old = ISC_LIST_NEXT(old, link)) {
@@ -1615,26 +1606,37 @@ configure_rpz(dns_view_t *view, const cfg_listelt_t *element,
cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
"duplicate '%s'", str);
result = DNS_R_DUPLICATE;
- goto cleanup;
+ return (result);
}
}
- if (new->policy == DNS_RPZ_POLICY_CNAME) {
- str = cfg_obj_asstring(cfg_tuple_get(policy_obj, "cname"));
- result = dns_name_fromstring(&new->cname, str,
- DNS_NAME_DOWNCASE, view->mctx);
- if (result != ISC_R_SUCCESS) {
- cfg_obj_log(rpz_obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
- "invalid cname '%s'", str);
- goto cleanup;
+ result = configure_rpz_name2(view, rpz_obj, &new->nsdname,
+ DNS_RPZ_NSDNAME_ZONE, &new->origin);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ result = configure_rpz_name(view, rpz_obj, &new->passthru,
+ DNS_RPZ_PASSTHRU_ZONE, "zone");
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ obj = cfg_tuple_get(rpz_obj, "policy");
+ if (cfg_obj_isvoid(obj)) {
+ new->policy = DNS_RPZ_POLICY_GIVEN;
+ } else {
+ str = cfg_obj_asstring(cfg_tuple_get(obj, "policy name"));
+ new->policy = dns_rpz_str2policy(str);
+ INSIST(new->policy != DNS_RPZ_POLICY_ERROR);
+ if (new->policy == DNS_RPZ_POLICY_CNAME) {
+ str = cfg_obj_asstring(cfg_tuple_get(obj, "cname"));
+ result = configure_rpz_name(view, rpz_obj, &new->cname,
+ str, "cname");
+ if (result != ISC_R_SUCCESS)
+ return (result);
}
}
return (ISC_R_SUCCESS);
-
- cleanup:
- dns_rpz_view_destroy(view);
- return (result);
}
/*
@@ -1668,10 +1670,10 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
in_port_t port;
dns_cache_t *cache = NULL;
isc_result_t result;
- isc_uint32_t max_adb_size;
unsigned int cleaning_interval;
- isc_uint32_t max_cache_size;
- isc_uint32_t max_acache_size;
+ size_t max_cache_size;
+ size_t max_acache_size;
+ size_t max_adb_size;
isc_uint32_t lame_ttl;
dns_tsig_keyring_t *ring = NULL;
dns_view_t *pview = NULL; /* Production view */
@@ -1703,6 +1705,7 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
dns_acl_t *clients = NULL, *mapped = NULL, *excluded = NULL;
unsigned int query_timeout, ndisp;
struct cfg_context *nzctx;
+ dns_rpz_zone_t *rpz;
REQUIRE(DNS_VIEW_VALID(view));
@@ -1776,18 +1779,18 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
max_acache_size = ISC_UINT32_MAX;
} else {
isc_resourcevalue_t value;
-
value = cfg_obj_asuint64(obj);
- if (value > ISC_UINT32_MAX) {
- cfg_obj_log(obj, ns_g_lctx, ISC_LOG_ERROR,
+ if (value > SIZE_MAX) {
+ cfg_obj_log(obj, ns_g_lctx,
+ ISC_LOG_WARNING,
"'max-acache-size "
- "%" ISC_PRINT_QUADFORMAT
- "d' is too large",
- value);
- result = ISC_R_RANGE;
- goto cleanup;
+ "%" ISC_PRINT_QUADFORMAT "u' "
+ "is too large for this "
+ "system; reducing to %lu",
+ value, (unsigned long)SIZE_MAX);
+ value = SIZE_MAX;
}
- max_acache_size = (isc_uint32_t)value;
+ max_acache_size = (size_t) value;
}
dns_acache_setcachesize(view->acache, max_acache_size);
}
@@ -1801,6 +1804,53 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
}
/*
+ * Make the list of response policy zone names for a view that
+ * is used for real lookups and so cares about hints.
+ */
+ obj = NULL;
+ if (view->rdclass == dns_rdataclass_in && need_hints &&
+ ns_config_get(maps, "response-policy", &obj) == ISC_R_SUCCESS) {
+ const cfg_obj_t *rpz_obj;
+ isc_boolean_t recursive_only_def;
+ dns_ttl_t ttl_def;
+
+ rpz_obj = cfg_tuple_get(obj, "recursive-only");
+ if (!cfg_obj_isvoid(rpz_obj) &&
+ !cfg_obj_asboolean(rpz_obj))
+ recursive_only_def = ISC_FALSE;
+ else
+ recursive_only_def = ISC_TRUE;
+
+ rpz_obj = cfg_tuple_get(obj, "break-dnssec");
+ if (!cfg_obj_isvoid(rpz_obj) &&
+ cfg_obj_asboolean(rpz_obj))
+ view->rpz_break_dnssec = ISC_TRUE;
+ else
+ view->rpz_break_dnssec = ISC_FALSE;
+
+ rpz_obj = cfg_tuple_get(obj, "max-policy-ttl");
+ if (cfg_obj_isuint32(rpz_obj))
+ ttl_def = cfg_obj_asuint32(rpz_obj);
+ else
+ ttl_def = DNS_RPZ_MAX_TTL_DEFAULT;
+
+ rpz_obj = cfg_tuple_get(obj, "min-ns-dots");
+ if (cfg_obj_isuint32(rpz_obj))
+ view->rpz_min_ns_labels = cfg_obj_asuint32(rpz_obj) + 1;
+ else
+ view->rpz_min_ns_labels = 2;
+
+ element = cfg_list_first(cfg_tuple_get(obj, "zone list"));
+ while (element != NULL) {
+ result = configure_rpz(view, element,
+ recursive_only_def, ttl_def);
+ if (result != ISC_R_SUCCESS)
+ goto cleanup;
+ element = cfg_list_next(element);
+ }
+ }
+
+ /*
* Configure the zones.
*/
zonelist = NULL;
@@ -1821,6 +1871,22 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
actx, ISC_FALSE));
}
+ for (rpz = ISC_LIST_HEAD(view->rpz_zones);
+ rpz != NULL;
+ rpz = ISC_LIST_NEXT(rpz, link))
+ {
+ if (!rpz->defined) {
+ char namebuf[DNS_NAME_FORMATSIZE];
+
+ dns_name_format(&rpz->origin, namebuf, sizeof(namebuf));
+ cfg_obj_log(obj, ns_g_lctx, DNS_RPZ_ERROR_LEVEL,
+ "'%s' is not a master or slave zone",
+ namebuf);
+ result = ISC_R_NOTFOUND;
+ goto cleanup;
+ }
+ }
+
/*
* If we're allowing added zones, then load zone configuration
* from the newzone file for zones that were added during previous
@@ -1911,15 +1977,17 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
} else {
isc_resourcevalue_t value;
value = cfg_obj_asuint64(obj);
- if (value > ISC_UINT32_MAX) {
- cfg_obj_log(obj, ns_g_lctx, ISC_LOG_ERROR,
+ if (value > SIZE_MAX) {
+ cfg_obj_log(obj, ns_g_lctx,
+ ISC_LOG_WARNING,
"'max-cache-size "
- "%" ISC_PRINT_QUADFORMAT "d' is too large",
- value);
- result = ISC_R_RANGE;
- goto cleanup;
+ "%" ISC_PRINT_QUADFORMAT "u' "
+ "is too large for this "
+ "system; reducing to %lu",
+ value, (unsigned long)SIZE_MAX);
+ value = SIZE_MAX;
}
- max_cache_size = (isc_uint32_t)value;
+ max_cache_size = (size_t) value;
}
/* Check-names. */
@@ -2249,9 +2317,9 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
* MAX_ADB_SIZE_FOR_CACHESHARE when the cache is shared.
*/
max_adb_size = 0;
- if (max_cache_size != 0) {
+ if (max_cache_size != 0U) {
max_adb_size = max_cache_size / 8;
- if (max_adb_size == 0)
+ if (max_adb_size == 0U)
max_adb_size = 1; /* Force minimum. */
if (view != nsc->primaryview &&
max_adb_size > MAX_ADB_SIZE_FOR_CACHESHARE) {
@@ -2828,7 +2896,7 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
const char *empty_dbtype[4] =
{ "_builtin", "empty", NULL, NULL };
int empty_dbtypec = 4;
- isc_boolean_t zonestats_on;
+ dns_zonestat_level_t statlevel;
dns_fixedname_init(&fixed);
name = dns_fixedname_name(&fixed);
@@ -2866,7 +2934,22 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
obj = NULL;
result = ns_config_get(maps, "zone-statistics", &obj);
INSIST(result == ISC_R_SUCCESS);
- zonestats_on = cfg_obj_asboolean(obj);
+ if (cfg_obj_isboolean(obj)) {
+ if (cfg_obj_asboolean(obj))
+ statlevel = dns_zonestat_full;
+ else
+ statlevel = dns_zonestat_terse; /* XXX */
+ } else {
+ const char *levelstr = cfg_obj_asstring(obj);
+ if (strcasecmp(levelstr, "full") == 0)
+ statlevel = dns_zonestat_full;
+ else if (strcasecmp(levelstr, "terse") == 0)
+ statlevel = dns_zonestat_terse;
+ else if (strcasecmp(levelstr, "none") == 0)
+ statlevel = dns_zonestat_none;
+ else
+ INSIST(0);
+ }
for (empty = empty_zones[empty_zone];
empty != NULL;
@@ -2891,7 +2974,6 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
*/
(void)dns_view_findzone(view, name, &zone);
if (zone != NULL) {
- CHECK(setquerystats(zone, mctx, zonestats_on));
dns_zone_detach(&zone);
continue;
}
@@ -2926,13 +3008,14 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
dns_zone_setview(zone, view);
CHECK(dns_view_addzone(view, zone));
CHECK(setquerystats(zone, mctx,
- zonestats_on));
+ statlevel));
dns_zone_detach(&zone);
continue;
}
}
- CHECK(dns_zone_create(&zone, mctx));
+ CHECK(dns_zonemgr_createzone(ns_g_server->zonemgr,
+ &zone));
CHECK(dns_zone_setorigin(zone, name));
dns_zone_setview(zone, view);
CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr,
@@ -2950,7 +3033,7 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
dns_zone_setnotifytype(zone, dns_notifytype_no);
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS,
ISC_TRUE);
- CHECK(setquerystats(zone, mctx, zonestats_on));
+ CHECK(setquerystats(zone, mctx, statlevel));
CHECK(dns_view_addzone(view, zone));
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
@@ -2960,49 +3043,6 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
}
}
- /*
- * Make the list of response policy zone names for views that
- * are used for real lookups and so care about hints.
- */
- obj = NULL;
- if (view->rdclass == dns_rdataclass_in && need_hints &&
- ns_config_get(maps, "response-policy", &obj) == ISC_R_SUCCESS) {
- const cfg_obj_t *recursive_only_obj;
- const cfg_obj_t *break_dnssec_obj, *ttl_obj;
- isc_boolean_t recursive_only_def;
- dns_ttl_t ttl_def;
-
- recursive_only_obj = cfg_tuple_get(obj, "recursive-only");
- if (!cfg_obj_isvoid(recursive_only_obj) &&
- !cfg_obj_asboolean(recursive_only_obj))
- recursive_only_def = ISC_FALSE;
- else
- recursive_only_def = ISC_TRUE;
-
- break_dnssec_obj = cfg_tuple_get(obj, "break-dnssec");
- if (!cfg_obj_isvoid(break_dnssec_obj) &&
- cfg_obj_asboolean(break_dnssec_obj))
- view->rpz_break_dnssec = ISC_TRUE;
- else
- view->rpz_break_dnssec = ISC_FALSE;
-
- ttl_obj = cfg_tuple_get(obj, "max-policy-ttl");
- if (cfg_obj_isuint32(ttl_obj))
- ttl_def = cfg_obj_asuint32(ttl_obj);
- else
- ttl_def = DNS_RPZ_MAX_TTL_DEFAULT;
-
- for (element = cfg_list_first(cfg_tuple_get(obj, "zone list"));
- element != NULL;
- element = cfg_list_next(element)) {
- result = configure_rpz(view, element,
- recursive_only_def, ttl_def);
- if (result != ISC_R_SUCCESS)
- goto cleanup;
- dns_rpz_set_need(ISC_TRUE);
- }
- }
-
result = ISC_R_SUCCESS;
cleanup:
@@ -3356,6 +3396,8 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
const char *zname;
dns_rdataclass_t zclass;
const char *ztypestr;
+ isc_boolean_t is_rpz;
+ dns_rpz_zone_t *rpz;
options = NULL;
(void)cfg_map_get(config, "options", &options);
@@ -3486,7 +3528,8 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
dns_zone_attach(pview->redirect, &zone);
dns_zone_setview(zone, view);
} else {
- CHECK(dns_zone_create(&zone, mctx));
+ CHECK(dns_zonemgr_createzone(ns_g_server->zonemgr,
+ &zone));
CHECK(dns_zone_setorigin(zone, origin));
dns_zone_setview(zone, view);
CHECK(dns_zonemgr_managezone(ns_g_server->zonemgr,
@@ -3516,6 +3559,21 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
INSIST(dupzone == NULL);
/*
+ * Note whether this is a response policy zone.
+ */
+ is_rpz = ISC_FALSE;
+ for (rpz = ISC_LIST_HEAD(view->rpz_zones);
+ rpz != NULL;
+ rpz = ISC_LIST_NEXT(rpz, link))
+ {
+ if (dns_name_equal(&rpz->origin, origin)) {
+ is_rpz = ISC_TRUE;
+ rpz->defined = ISC_TRUE;
+ break;
+ }
+ }
+
+ /*
* See if we can reuse an existing zone. This is
* only possible if all of these are true:
* - The zone's view exists
@@ -3523,6 +3581,7 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
* - The zone is compatible with the config
* options (e.g., an existing master zone cannot
* be reused if the options specify a slave zone)
+ * - The zone was and is or was not and is not a policy zone
*/
result = dns_viewlist_find(&ns_g_server->viewlist, view->name,
view->rdclass, &pview);
@@ -3536,6 +3595,9 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
if (zone != NULL && !ns_zone_reusable(zone, zconfig))
dns_zone_detach(&zone);
+ if (zone != NULL && is_rpz != dns_zone_get_rpz(zone))
+ dns_zone_detach(&zone);
+
if (zone != NULL) {
/*
* We found a reusable zone. Make it use the
@@ -3549,7 +3611,7 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
* We cannot reuse an existing zone, we have
* to create a new one.
*/
- CHECK(dns_zone_create(&zone, mctx));
+ CHECK(dns_zonemgr_createzone(ns_g_server->zonemgr, &zone));
CHECK(dns_zone_setorigin(zone, origin));
dns_zone_setview(zone, view);
if (view->acache != NULL)
@@ -3558,6 +3620,19 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
dns_zone_setstats(zone, ns_g_server->zonestats);
}
+ if (is_rpz) {
+ result = dns_zone_rpz_enable(zone);
+ if (result != ISC_R_SUCCESS) {
+ isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
+ NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
+ "zone '%s': incompatible"
+ " masterfile-format or database"
+ " for a response policy zone",
+ zname);
+ goto cleanup;
+ }
+ }
+
/*
* If the zone contains a 'forwarders' statement, configure
* selective forwarding.
@@ -3667,7 +3742,7 @@ add_keydata_zone(dns_view_t *view, const char *directory, isc_mem_t *mctx) {
}
/* No existing keydata zone was found; create one */
- CHECK(dns_zone_create(&zone, mctx));
+ CHECK(dns_zonemgr_createzone(ns_g_server->zonemgr, &zone));
CHECK(dns_zone_setorigin(zone, dns_rootname));
isc_sha256_data((void *)view->name, strlen(view->name), buffer);
@@ -3701,7 +3776,7 @@ add_keydata_zone(dns_view_t *view, const char *directory, isc_mem_t *mctx) {
dns_zone_setjournalsize(zone, 0);
dns_zone_setstats(zone, ns_g_server->zonestats);
- CHECK(setquerystats(zone, mctx, ISC_FALSE));
+ CHECK(setquerystats(zone, mctx, dns_zonestat_none));
if (view->managed_keys != NULL)
dns_zone_detach(&view->managed_keys);
@@ -7750,7 +7825,8 @@ ns_server_add_zone(ns_server_t *server, char *args) {
CHECK(isc_stdio_open(view->new_zone_file, "a", &fp));
/* Mark view unfrozen so that zone can be added */
- isc_task_beginexclusive(server->task);
+ result = isc_task_beginexclusive(server->task);
+ RUNTIME_CHECK(result == ISC_R_SUCCESS);
dns_view_thaw(view);
result = configure_zone(cfg->config, parms, vconfig,
server->mctx, view, cfg->actx, ISC_FALSE);
diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c
index b7abd194..a2a6ec1a 100644
--- a/bin/named/statschannel.c
+++ b/bin/named/statschannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008-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
@@ -206,6 +206,8 @@ init_desc(void) {
SET_NSSTATDESC(updatebadprereq,
"updates rejected due to prerequisite failure",
"UpdateBadPrereq");
+ SET_NSSTATDESC(rpz_rewrites, "response policy zone rewrites",
+ "RPZRewrites");
INSIST(i == dns_nsstatscounter_max);
/* Initialize resolver statistics */
@@ -882,7 +884,7 @@ opcodestat_dump(dns_opcode_t code, isc_uint64_t val, void *arg) {
#ifdef NEWSTATS
static isc_result_t
zone_xmlrender(dns_zone_t *zone, void *arg) {
-
+ isc_result_t result;
char buf[1024 + 32]; /* sufficiently large for zone name and class */
char *zone_name_only = NULL;
dns_rdataclass_t rdclass;
@@ -890,26 +892,26 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
xmlTextWriterPtr writer = arg;
isc_stats_t *zonestats;
dns_stats_t *rcvquerystats;
-
+ dns_zonestat_level_t statlevel;
isc_uint64_t nsstat_values[dns_nsstatscounter_max];
int xmlrc;
- isc_result_t result;
-
stats_dumparg_t dumparg;
+ statlevel = dns_zone_getstatlevel(zone);
+ if (statlevel == dns_zonestat_none)
+ return (ISC_R_SUCCESS);
+
dumparg.type = statsformat_xml;
dumparg.arg = writer;
-
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "zone"));
dns_zone_name(zone, buf, sizeof(buf));
zone_name_only = strtok(buf, "/");
- if(zone_name_only == NULL){
+ if(zone_name_only == NULL)
zone_name_only = buf;
- }
+
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "name",
ISC_XMLCHAR zone_name_only));
-
rdclass = dns_zone_getclass(zone);
dns_rdataclass_format(rdclass, buf, sizeof(buf));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "rdataclass",
@@ -924,7 +926,7 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
zonestats = dns_zone_getrequeststats(zone);
rcvquerystats = dns_zone_getrcvquerystats(zone);
- if (zonestats != NULL ) {
+ if (statlevel == dns_zonestat_full && zonestats != NULL) {
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "type",
ISC_XMLCHAR "rcode"));
@@ -939,7 +941,7 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
TRY0(xmlTextWriterEndElement(writer));
}
- if(rcvquerystats != NULL){
+ if (statlevel == dns_zonestat_full && rcvquerystats != NULL) {
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "type",
ISC_XMLCHAR "qtype"));
@@ -1140,7 +1142,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "type",
- ISC_XMLCHAR "opcode"));
+ ISC_XMLCHAR "opcode"));
dns_opcodestats_dump(server->opcodestats, opcodestat_dump, &dumparg,
0);
diff --git a/bin/named/xfrout.c b/bin/named/xfrout.c
index 6b333922..95e43029 100644
--- a/bin/named/xfrout.c
+++ b/bin/named/xfrout.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 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,8 @@ ixfr_rrstream_create(isc_mem_t *mctx,
s = isc_mem_get(mctx, sizeof(*s));
if (s == NULL)
return (ISC_R_NOMEMORY);
- s->common.mctx = mctx;
+ s->common.mctx = NULL;
+ isc_mem_attach(mctx, &s->common.mctx);
s->common.methods = &ixfr_rrstream_methods;
s->journal = NULL;
@@ -289,7 +290,7 @@ ixfr_rrstream_destroy(rrstream_t **rsp) {
ixfr_rrstream_t *s = (ixfr_rrstream_t *) *rsp;
if (s->journal != 0)
dns_journal_destroy(&s->journal);
- isc_mem_put(s->common.mctx, s, sizeof(*s));
+ isc_mem_putanddetach(&s->common.mctx, s, sizeof(*s));
}
static rrstream_methods_t ixfr_rrstream_methods = {
@@ -335,7 +336,8 @@ axfr_rrstream_create(isc_mem_t *mctx, dns_db_t *db, dns_dbversion_t *ver,
s = isc_mem_get(mctx, sizeof(*s));
if (s == NULL)
return (ISC_R_NOMEMORY);
- s->common.mctx = mctx;
+ s->common.mctx = NULL;
+ isc_mem_attach(mctx, &s->common.mctx);
s->common.methods = &axfr_rrstream_methods;
s->it_valid = ISC_FALSE;
@@ -413,7 +415,7 @@ axfr_rrstream_destroy(rrstream_t **rsp) {
axfr_rrstream_t *s = (axfr_rrstream_t *) *rsp;
if (s->it_valid)
dns_rriterator_destroy(&s->it);
- isc_mem_put(s->common.mctx, s, sizeof(*s));
+ isc_mem_putanddetach(&s->common.mctx, s, sizeof(*s));
}
static rrstream_methods_t axfr_rrstream_methods = {
@@ -455,7 +457,8 @@ soa_rrstream_create(isc_mem_t *mctx, dns_db_t *db, dns_dbversion_t *ver,
s = isc_mem_get(mctx, sizeof(*s));
if (s == NULL)
return (ISC_R_NOMEMORY);
- s->common.mctx = mctx;
+ s->common.mctx = NULL;
+ isc_mem_attach(mctx, &s->common.mctx);
s->common.methods = &soa_rrstream_methods;
s->soa_tuple = NULL;
@@ -497,7 +500,7 @@ soa_rrstream_destroy(rrstream_t **rsp) {
soa_rrstream_t *s = (soa_rrstream_t *) *rsp;
if (s->soa_tuple != NULL)
dns_difftuple_free(&s->soa_tuple);
- isc_mem_put(s->common.mctx, s, sizeof(*s));
+ isc_mem_putanddetach(&s->common.mctx, s, sizeof(*s));
}
static rrstream_methods_t soa_rrstream_methods = {
@@ -561,7 +564,8 @@ compound_rrstream_create(isc_mem_t *mctx, rrstream_t **soa_stream,
s = isc_mem_get(mctx, sizeof(*s));
if (s == NULL)
return (ISC_R_NOMEMORY);
- s->common.mctx = mctx;
+ s->common.mctx = NULL;
+ isc_mem_attach(mctx, &s->common.mctx);
s->common.methods = &compound_rrstream_methods;
s->components[0] = *soa_stream;
s->components[1] = *data_stream;
@@ -634,7 +638,7 @@ compound_rrstream_destroy(rrstream_t **rsp) {
s->components[0]->methods->destroy(&s->components[0]);
s->components[1]->methods->destroy(&s->components[1]);
s->components[2] = NULL; /* Copy of components[0]. */
- isc_mem_put(s->common.mctx, s, sizeof(*s));
+ isc_mem_putanddetach(&s->common.mctx, s, sizeof(*s));
}
static rrstream_methods_t compound_rrstream_methods = {
diff --git a/bin/named/zoneconf.c b/bin/named/zoneconf.c
index 5aa30c1f..839312c1 100644
--- a/bin/named/zoneconf.c
+++ b/bin/named/zoneconf.c
@@ -827,7 +827,7 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
#ifdef NEWSTATS
dns_stats_t *rcvquerystats;
#endif
- isc_boolean_t zonestats_on;
+ dns_zonestat_level_t statlevel;
int seconds;
dns_zone_t *mayberaw = (raw != NULL) ? raw : zone;
@@ -1009,13 +1009,29 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
obj = NULL;
result = ns_config_get(maps, "zone-statistics", &obj);
INSIST(result == ISC_R_SUCCESS && obj != NULL);
- zonestats_on = cfg_obj_asboolean(obj);
+ if (cfg_obj_isboolean(obj)) {
+ if (cfg_obj_asboolean(obj))
+ statlevel = dns_zonestat_full;
+ else
+ statlevel = dns_zonestat_terse; /* XXX */
+ } else {
+ const char *levelstr = cfg_obj_asstring(obj);
+ if (strcasecmp(levelstr, "full") == 0)
+ statlevel = dns_zonestat_full;
+ else if (strcasecmp(levelstr, "terse") == 0)
+ statlevel = dns_zonestat_terse;
+ else if (strcasecmp(levelstr, "none") == 0)
+ statlevel = dns_zonestat_none;
+ else
+ INSIST(0);
+ }
+ dns_zone_setstatlevel(zone, statlevel);
zoneqrystats = NULL;
#ifdef NEWSTATS
rcvquerystats = NULL;
#endif
- if (zonestats_on) {
+ if (statlevel == dns_zonestat_full) {
RETERR(isc_stats_create(mctx, &zoneqrystats,
dns_nsstatscounter_max));
#ifdef NEWSTATS
diff --git a/bin/nsupdate/Makefile.in b/bin/nsupdate/Makefile.in
index 54987244..09e6c140 100644
--- a/bin/nsupdate/Makefile.in
+++ b/bin/nsupdate/Makefile.in
@@ -74,7 +74,7 @@ nsupdate.@O@: nsupdate.c
-c ${srcdir}/nsupdate.c
nsupdate@EXEEXT@: nsupdate.@O@ ${UOBJS} ${DEPLIBS}
- export BASEOBJS="${READLINE_LIB} nsupdate.@O@ ${UOBJS}"; \
+ export BASEOBJS="nsupdate.@O@ ${READLINE_LIB} ${UOBJS}"; \
${FINALBUILDCMD}
doc man:: ${MANOBJS}
diff --git a/bin/tests/system/autosign/clean.sh b/bin/tests/system/autosign/clean.sh
index c02b23ff..b4f14d7d 100644
--- a/bin/tests/system/autosign/clean.sh
+++ b/bin/tests/system/autosign/clean.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009-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,7 +14,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id$
+# $Id: clean.sh,v 1.15 2012/02/06 23:46:45 tbox Exp $
rm -f */K* */dsset-* */*.signed */trusted.conf */tmp* */*.jnl */*.bk
rm -f active.key inact.key del.key unpub.key standby.key rev.key
@@ -49,6 +49,7 @@ rm -f ns3/prepub.example.db
rm -f ns3/prepub.example.db.in
rm -f ns3/secure-to-insecure2.example.db
rm -f ns3/nozsk.example.db ns3/inaczsk.example.db
+rm -f ns3/reconf.example.db
rm -f ns3/ttl*.db
rm -f signing.out.*
rm -f ns3/*.nzf
diff --git a/bin/tests/system/autosign/tests.sh b/bin/tests/system/autosign/tests.sh
index d15cc6bb..27522c64 100644
--- a/bin/tests/system/autosign/tests.sh
+++ b/bin/tests/system/autosign/tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009-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
@@ -168,11 +168,16 @@ echo "I:resetting nsec3param via rndc signing ($n)"
ret=0
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -clear all autonsec3.example. > /dev/null 2>&1
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -nsec3param 1 1 10 beef autonsec3.example. > /dev/null 2>&1
-sleep 1
-$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -list autonsec3.example. > signing.out.test$n 2>&1
-grep "Pending NSEC3 chain 1 1 10 BEEF" signing.out.test$n > /dev/null || ret=1
-num=`grep "Pending " signing.out.test$n | wc -l`
-[ $num -eq 1 ] || ret=1
+for i in 0 1 2 3 4 5 6 7 8 9; do
+ ret=0
+ $RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 signing -list autonsec3.example. > signing.out.test$n 2>&1
+ grep "Pending NSEC3 chain 1 1 10 BEEF" signing.out.test$n > /dev/null || ret=1
+ num=`grep "Pending " signing.out.test$n | wc -l`
+ [ $num -eq 1 ] || ret=1
+ [ $ret -eq 0 ] && break
+ echo "I:waiting ... ($i)"
+ sleep 2
+done
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
@@ -218,7 +223,7 @@ echo "I:checking that non-replaceable RRSIGs are logged only once ($n)"
ret=0
loglines=`grep "Key nozsk.example/NSEC3RSASHA1/$missing .* retaining signatures" ns3/named.run | wc -l`
[ "$loglines" -eq 1 ] || ret=1
-loglines=`grep "Key inaczsk.example/NSEC3RSASHA1/$missing .* retaining signatures" ns3/named.run | wc -l`
+loglines=`grep "Key inaczsk.example/NSEC3RSASHA1/$inactive .* retaining signatures" ns3/named.run | wc -l`
[ "$loglines" -eq 1 ] || ret=1
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
@@ -814,15 +819,21 @@ if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
echo "I:checking secure-to-insecure transition, nsupdate ($n)"
+ret=0
$NSUPDATE > /dev/null 2>&1 <<END || status=1
server 10.53.0.3 5300
zone secure-to-insecure.example
update delete secure-to-insecure.example dnskey
send
END
-sleep 2
-$DIG $DIGOPTS axfr secure-to-insecure.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
-egrep '(RRSIG|DNSKEY|NSEC)' dig.out.ns3.test$n > /dev/null && ret=1
+for i in 0 1 2 3 4 5 6 7 8 9; do
+ ret=0
+ $DIG $DIGOPTS axfr secure-to-insecure.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
+ egrep '(RRSIG|DNSKEY|NSEC)' dig.out.ns3.test$n > /dev/null && ret=1
+ [ $ret -eq 0 ] && break
+ echo "I:waiting ... ($i)"
+ sleep 2
+done
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
@@ -834,9 +845,14 @@ $SETTIME -I now -D now $file > /dev/null
file="ns3/`cat del2.key`.key"
$SETTIME -I now -D now $file > /dev/null
$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 sign secure-to-insecure2.example. 2>&1 | sed 's/^/I:ns3 /'
-sleep 2
-$DIG $DIGOPTS axfr secure-to-insecure2.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
-egrep '(RRSIG|DNSKEY|NSEC3)' dig.out.ns3.test$n > /dev/null && ret=1
+for i in 0 1 2 3 4 5 6 7 8 9; do
+ ret=0
+ $DIG $DIGOPTS axfr secure-to-insecure2.example @10.53.0.3 > dig.out.ns3.test$n || ret=1
+ egrep '(RRSIG|DNSKEY|NSEC3)' dig.out.ns3.test$n > /dev/null && ret=1
+ [ $ret -eq 0 ] && break
+ echo "I:waiting ... ($i)"
+ sleep 2
+done
n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
@@ -1136,7 +1152,8 @@ for i in 0 1 2 3 4 5 6 7 8 9; do
lret=0
rekey_calls=`grep "zone reconf.example.*next key event" ns3/named.run | wc -l`
[ "$rekey_calls" -gt 0 ] || lret=1
- if [ "$lret" = 0 ]; then break; fi
+ if [ "$lret" -eq 0 ]; then break; fi
+ echo "I:waiting ... ($i)"
sleep 1
done
n=`expr $n + 1`
diff --git a/bin/tests/system/checkconf/bad-inline-slave.conf b/bin/tests/system/checkconf/bad-inline-slave.conf
new file mode 100644
index 00000000..5979f628
--- /dev/null
+++ b/bin/tests/system/checkconf/bad-inline-slave.conf
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+ /*
+ * An inline-signing slave should be forced to have a file option
+ */
+
+ zone "." {
+ type slave;
+ inline-signing yes;
+ masters { 10.53.0.1; };
+ }; \ No newline at end of file
diff --git a/bin/tests/system/checkconf/good.conf b/bin/tests/system/checkconf/good.conf
index 4ff0c1a7..5444fdde 100644
--- a/bin/tests/system/checkconf/good.conf
+++ b/bin/tests/system/checkconf/good.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2010-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2005, 2007, 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
@@ -66,6 +66,8 @@ options {
serial-queries 10;
serial-query-rate 100;
server-id none;
+ max-cache-size 20000000000000;
+ zone-statistics none;
};
view "first" {
match-clients {
@@ -78,6 +80,7 @@ view "first" {
};
dnssec-lookaside auto;
dnssec-validation auto;
+ zone-statistics terse;
};
view "second" {
match-clients {
@@ -87,6 +90,7 @@ view "second" {
type master;
file "yyy";
update-policy local;
+ zone-statistics yes;
};
zone "example2" {
type static-stub;
@@ -94,7 +98,9 @@ view "second" {
forwarders {
10.53.0.4;
};
+ zone-statistics no;
};
dnssec-lookaside "." trust-anchor "dlv.isc.org.";
dnssec-validation auto;
+ zone-statistics full;
};
diff --git a/bin/tests/system/dnssec/tests.sh b/bin/tests/system/dnssec/tests.sh
index e250c8e3..efc3d7b2 100644
--- a/bin/tests/system/dnssec/tests.sh
+++ b/bin/tests/system/dnssec/tests.sh
@@ -1050,6 +1050,32 @@ n=`expr $n + 1`
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
+echo "I:checking NSEC3 signing with empty nonterminals above a delegation ($n)"
+ret=0
+zone=example
+key1=`$KEYGEN -K signer -q -r $RANDFILE -a NSEC3RSASHA1 -b 1024 -n zone $zone`
+key2=`$KEYGEN -K signer -q -r $RANDFILE -f KSK -a NSEC3RSASHA1 -b 1024 -n zone $zone`
+(
+cd signer
+cat example.db.in $key1.key $key2.key > example3.db
+echo "some.empty.nonterminal.nodes.example 60 IN NS ns.example.tld" >> example3.db
+$SIGNER -3 - -A -H 10 -o example -f example3.db example3.db > /dev/null 2>&1
+awk '/^IQF9LQTLK/ {
+ printf("%s", $0);
+ while (!index($0, ")")) {
+ if (getline <= 0)
+ break;
+ printf (" %s", $0);
+ }
+ printf("\n");
+ }' example.db | sed 's/[ ][ ]*/ /g' > nsec3param.out
+
+grep "IQF9LQTLKKNFK0KVIFELRAK4IC4QLTMG.example. 0 IN NSEC3 1 0 10 - ( IQF9LQTLKKNFK0KVIFELRAK4IC4QLTMG A NS SOA RRSIG DNSKEY NSEC3PARAM )" nsec3param.out > /dev/null
+) || ret=1
+n=`expr $n + 1`
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
echo "I:checking that dnsssec-signzone updates originalttl on ttl changes ($n)"
ret=0
zone=example
diff --git a/bin/tests/system/ifconfig.sh b/bin/tests/system/ifconfig.sh
index 11f80de4..6634010c 100755
--- a/bin/tests/system/ifconfig.sh
+++ b/bin/tests/system/ifconfig.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007-2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007-2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/bin/tests/system/lwresd/clean.sh b/bin/tests/system/lwresd/clean.sh
index 8425ec4b..0a04e4ef 100644
--- a/bin/tests/system/lwresd/clean.sh
+++ b/bin/tests/system/lwresd/clean.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2008, 2012, 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,3 +21,4 @@
#
rm -f */named.memstats
rm -f dig.out
+rm -f lwresd1/lwresd.run.resolv
diff --git a/bin/tests/system/lwresd/tests.sh b/bin/tests/system/lwresd/tests.sh
index e6a67d63..107a2104 100644
--- a/bin/tests/system/lwresd/tests.sh
+++ b/bin/tests/system/lwresd/tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2011-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
@@ -40,6 +40,11 @@ status=`expr $status + $ret`
echo "I:using resolv.conf"
ret=0
+for i in 0 1 2 3 4 5 6 7 8 9
+do
+ grep ' running$' lwresd1/lwresd.run > /dev/null && break
+ sleep 1
+done
./lwtest || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
@@ -48,11 +53,17 @@ status=`expr $status + $ret`
$PERL $SYSTEMTESTTOP/stop.pl . lwresd1
+mv lwresd1/lwresd.run lwresd1/lwresd.run.resolv
+
$PERL $SYSTEMTESTTOP/start.pl . lwresd1 -- "-m record,size,mctx -c lwresd.conf -d 99 -g"
echo "I:using lwresd.conf"
ret=0
-sleep 1 # allow lwresd to finish starting.
+for i in 0 1 2 3 4 5 6 7 8 9
+do
+ grep ' running$' lwresd1/lwresd.run > /dev/null && break
+ sleep 1
+done
./lwtest || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
diff --git a/bin/tests/system/nsupdate/tests.sh b/bin/tests/system/nsupdate/tests.sh
index d0eba640..b9a1c905 100644
--- a/bin/tests/system/nsupdate/tests.sh
+++ b/bin/tests/system/nsupdate/tests.sh
@@ -223,6 +223,17 @@ grep "status: NOERROR" dig.out.ns1.$n > /dev/null || ret=1
[ $ret = 0 ] || { echo I:failed; status=1; }
n=`expr $n + 1`
+echo "I:check that address family mismatch is handled ($n)"
+$NSUPDATE <<END > /dev/null 2>&1 && ret=1
+server ::1
+local 127.0.0.1
+update add 600 txt.example.nil in txt "test"
+send
+END
+[ $ret = 0 ] || { echo I:failed; status=1; }
+
+
+n=`expr $n + 1`
echo "I:check that unixtime serial number is correctly generated ($n)"
oldserial=`$DIG +short unixtime.nil. soa @10.53.0.1 -p 5300 | awk '{print $3}'` || ret=1
$NSUPDATE <<END > /dev/null 2>&1 || ret=1
diff --git a/bin/tests/system/rpz/Makefile.in b/bin/tests/system/rpz/Makefile.in
index 1fa844f1..4042217d 100644
--- a/bin/tests/system/rpz/Makefile.in
+++ b/bin/tests/system/rpz/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
@@ -12,7 +12,8 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: Makefile.in,v 1.3 2011/01/13 04:59:24 tbox Exp $
+# $Id$
+
srcdir = @srcdir@
VPATH = @srcdir@
diff --git a/bin/tests/system/rpz/clean.sh b/bin/tests/system/rpz/clean.sh
index 82cfcb29..d0c47976 100644
--- a/bin/tests/system/rpz/clean.sh
+++ b/bin/tests/system/rpz/clean.sh
@@ -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
@@ -12,13 +12,14 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: clean.sh,v 1.6 2012/01/07 23:46:53 tbox Exp $
+# $Id$
+
# Clean up after rpz tests.
-rm -f proto.* dsset-* random.data trusted.conf dig.out* nsupdate.tmp ns*/*tmp
+rm -f proto.* dsset-* random.data trusted.conf dig.out* nsupdate.tmp ns*/*tmp
rm -f ns*/*.key ns*/*.private ns2/tld2s.db
rm -f ns3/bl*.db ns*/*switch ns5/requests ns5/example.db ns5/bl.db ns5/*.perf
-rm -f */named.memstats */named.run */named.rpz */session.key
+rm -f */named.memstats */named.run */named.stats */session.key
rm -f */*.jnl */*.core */*.pid
diff --git a/bin/tests/system/rpz/ns1/named.conf b/bin/tests/system/rpz/ns1/named.conf
index 82de8029..9e627739 100644
--- a/bin/tests/system/rpz/ns1/named.conf
+++ b/bin/tests/system/rpz/ns1/named.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 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
@@ -14,7 +14,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.3 2011/01/13 04:59:24 tbox Exp $ */
+/* $Id$ */
+
controls { /* empty */ };
diff --git a/bin/tests/system/rpz/ns1/root.db b/bin/tests/system/rpz/ns1/root.db
index c8d8671c..32c14dba 100644
--- a/bin/tests/system/rpz/ns1/root.db
+++ b/bin/tests/system/rpz/ns1/root.db
@@ -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
@@ -12,13 +12,13 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: root.db,v 1.6 2012/01/07 23:46:53 tbox Exp $
+; $Id$
+
$TTL 120
-@ SOA ns. hostmaster.ns. ( 1 3600 1200 604800 60 )
-@ NS ns.
+. SOA ns. hostmaster.ns. ( 1 3600 1200 604800 60 )
+ NS ns.
ns. A 10.53.0.1
-. A 10.53.0.1
; rewrite responses from this zone
tld2. NS ns.tld2.
@@ -34,3 +34,7 @@ ns.tld3. A 10.53.0.3
; rewrite responses from this zone
tld4. NS ns.tld4.
ns.tld4. A 10.53.0.4
+
+; performance test
+tld5. NS ns.tld5.
+ns.tld5. A 10.53.0.5
diff --git a/bin/tests/system/rpz/ns2/base-tld2s.db b/bin/tests/system/rpz/ns2/base-tld2s.db
index 463f2cee..59eb5edb 100644
--- a/bin/tests/system/rpz/ns2/base-tld2s.db
+++ b/bin/tests/system/rpz/ns2/base-tld2s.db
@@ -1,4 +1,4 @@
-; Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+; Copyright (C) 2012, 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
@@ -12,7 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: base-tld2s.db,v 1.1.2.1 2012/02/24 17:22:37 vjs Exp $
+; $Id$
+
; RPZ rewrite responses from this signed zone
diff --git a/bin/tests/system/rpz/ns2/hints b/bin/tests/system/rpz/ns2/hints
index 849e2e3a..844529c7 100644
--- a/bin/tests/system/rpz/ns2/hints
+++ b/bin/tests/system/rpz/ns2/hints
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,8 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: hints,v 1.4 2011/10/13 01:32:33 vjs Exp $
+; $Id$
-. 0 NS ns1.
-ns1. 0 A 10.53.0.1
+. 120 NS ns.
+ns. 120 A 10.53.0.1
diff --git a/bin/tests/system/rpz/ns2/named.conf b/bin/tests/system/rpz/ns2/named.conf
index a2fcd825..c2235af2 100644
--- a/bin/tests/system/rpz/ns2/named.conf
+++ b/bin/tests/system/rpz/ns2/named.conf
@@ -1,5 +1,5 @@
/*
- * 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
@@ -14,7 +14,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.6 2012/01/07 23:46:53 tbox Exp $ */
+/* $Id$ */
+
controls { /* empty */ };
diff --git a/bin/tests/system/rpz/ns2/tld2.db b/bin/tests/system/rpz/ns2/tld2.db
index 932a1685..eeb43153 100644
--- a/bin/tests/system/rpz/ns2/tld2.db
+++ b/bin/tests/system/rpz/ns2/tld2.db
@@ -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
@@ -12,7 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: tld2.db,v 1.4.4.2 2012/02/24 17:22:37 vjs Exp $
+; $Id$
+
; RPZ rewrite responses from this zone
diff --git a/bin/tests/system/rpz/ns3/base.db b/bin/tests/system/rpz/ns3/base.db
index 18710f90..475257a6 100644
--- a/bin/tests/system/rpz/ns3/base.db
+++ b/bin/tests/system/rpz/ns3/base.db
@@ -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
@@ -12,7 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: base.db,v 1.6.4.1 2011/10/15 23:03:38 vjs Exp $
+; $Id$
+
; RPZ test
@@ -40,3 +41,10 @@ ns A 10.53.0.3
redirect A 127.0.0.1
*.redirect A 127.0.0.1
*.credirect CNAME google.com.
+
+
+; names in the RPZ TLDs that some say should not be rewritten.
+; This is not a bug, because any data leaked by writing 24.4.3.2.10.rpz-ip
+; (or whatever) is available by publishing "foo A 10.2.3.4" and then
+; resolving foo.
+32.3.2.1.127.rpz-ip CNAME walled.invalid.
diff --git a/bin/tests/system/rpz/ns3/crash1 b/bin/tests/system/rpz/ns3/crash1
index c241f75a..d0862edc 100644
--- a/bin/tests/system/rpz/ns3/crash1
+++ b/bin/tests/system/rpz/ns3/crash1
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: crash1,v 1.2 2011/10/13 04:53:06 marka Exp $
; a bad zone that caused a crash related to dns_rdataset_disassociate()
diff --git a/bin/tests/system/rpz/ns3/crash2 b/bin/tests/system/rpz/ns3/crash2
index cd613bce..25f4fcf6 100644
--- a/bin/tests/system/rpz/ns3/crash2
+++ b/bin/tests/system/rpz/ns3/crash2
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: crash2,v 1.3 2011/11/18 19:32:13 each Exp $
; a valid zone containing records that caused crashes
diff --git a/bin/tests/system/rpz/ns3/hints b/bin/tests/system/rpz/ns3/hints
index 849e2e3a..844529c7 100644
--- a/bin/tests/system/rpz/ns3/hints
+++ b/bin/tests/system/rpz/ns3/hints
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,8 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: hints,v 1.4 2011/10/13 01:32:33 vjs Exp $
+; $Id$
-. 0 NS ns1.
-ns1. 0 A 10.53.0.1
+. 120 NS ns.
+ns. 120 A 10.53.0.1
diff --git a/bin/tests/system/rpz/ns3/named.conf b/bin/tests/system/rpz/ns3/named.conf
index 0906e7b3..2acb9774 100644
--- a/bin/tests/system/rpz/ns3/named.conf
+++ b/bin/tests/system/rpz/ns3/named.conf
@@ -1,5 +1,5 @@
/*
- * 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
@@ -14,7 +14,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.5 2011/10/28 11:46:50 marka Exp $ */
+/* $Id$ */
+
/*
@@ -27,6 +28,7 @@ options {
transfer-source 10.53.0.3;
port 5300;
pid-file "named.pid";
+ statistics-file "named.stats";
session-keyfile "session.key";
listen-on { 10.53.0.3; };
listen-on-v6 { none; };
@@ -44,7 +46,7 @@ options {
zone "bl-cname" policy cname txt-only.tld2.;
zone "bl-wildcname" policy cname *.tld4.;
zone "bl-garden" policy cname a12.tld2.;
- };
+ } min-ns-dots 0;
};
key rndc_key {
@@ -55,17 +57,6 @@ controls {
inet 10.53.0.3 port 9953 allow { any; } keys { rndc_key; };
};
-logging {
- # change "-c named.conf -d 99 -g" to "-c named.conf -d 99 -f"
- # in ../start.pl to check the rpz log category
- channel rpz { severity debug 10;
- print-category yes; print-time yes; print-severity yes;
- file "named.rpz";};
- category rpz { default_stderr; rpz; };
- category queries { default_stderr; rpz; };
- category query-errors { default_stderr; };
-};
-
// include "../trusted.conf";
zone "." { type hint; file "hints"; };
diff --git a/bin/tests/system/rpz/ns4/hints b/bin/tests/system/rpz/ns4/hints
index cbcff7c9..844529c7 100644
--- a/bin/tests/system/rpz/ns4/hints
+++ b/bin/tests/system/rpz/ns4/hints
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: hints,v 1.2 2011/10/13 04:53:06 marka Exp $
+; $Id$
-. 0 NS ns1.
-ns1. 0 A 10.53.0.1
+
+. 120 NS ns.
+ns. 120 A 10.53.0.1
diff --git a/bin/tests/system/rpz/ns4/named.conf b/bin/tests/system/rpz/ns4/named.conf
index 6828e86e..174e7466 100644
--- a/bin/tests/system/rpz/ns4/named.conf
+++ b/bin/tests/system/rpz/ns4/named.conf
@@ -1,5 +1,5 @@
/*
- * 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
@@ -14,7 +14,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.2.6.1 2012/02/24 17:22:37 vjs Exp $ */
+/* $Id$ */
+
controls { /* empty */ };
diff --git a/bin/tests/system/rpz/ns4/tld4.db b/bin/tests/system/rpz/ns4/tld4.db
index 810189a0..1f26cb99 100644
--- a/bin/tests/system/rpz/ns4/tld4.db
+++ b/bin/tests/system/rpz/ns4/tld4.db
@@ -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
@@ -12,7 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: tld4.db,v 1.2.6.1 2012/02/24 17:22:37 vjs Exp $
+; $Id$
+
; RPZ rewrite responses from this zone
diff --git a/bin/tests/system/rpz/ns5/hints b/bin/tests/system/rpz/ns5/hints
index ae0e569e..7d20df05 100644
--- a/bin/tests/system/rpz/ns5/hints
+++ b/bin/tests/system/rpz/ns5/hints
@@ -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
@@ -12,8 +12,8 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: hints,v 1.1.2.1 2011/10/15 23:00:04 vjs Exp $
+; $Id$
-. 0 NS ns1.
-ns1. 0 A 10.53.0.1
+. 120 NS ns.
+ns. 120 A 10.53.0.1
diff --git a/bin/tests/system/rpz/ns5/named.args b/bin/tests/system/rpz/ns5/named.args
new file mode 100644
index 00000000..acf35aef
--- /dev/null
+++ b/bin/tests/system/rpz/ns5/named.args
@@ -0,0 +1,3 @@
+# run the performace test close to real life
+
+-c named.conf -g
diff --git a/bin/tests/system/rpz/ns5/named.conf b/bin/tests/system/rpz/ns5/named.conf
index 533dce82..82b6fded 100644
--- a/bin/tests/system/rpz/ns5/named.conf
+++ b/bin/tests/system/rpz/ns5/named.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2012, 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,7 +14,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.1.2.2 2012/02/24 17:22:38 vjs Exp $ */
+/* $Id$ */
+
/*
@@ -27,12 +28,13 @@ options {
transfer-source 10.53.0.5;
port 5300;
pid-file "named.pid";
+ statistics-file "named.stats";
session-keyfile "session.key";
listen-on { 10.53.0.5; };
listen-on-v6 { none; };
notify no;
- # Eventually turn rpz on.
+ # turn rpz on or off
include "rpz-switch";
};
@@ -40,12 +42,17 @@ key rndc_key {
secret "1234abcd8765";
algorithm hmac-md5;
};
-controls { inet 10.53.0.5 port 9953 allow { any; } keys { rndc_key; }; };
+controls {
+ inet 10.53.0.5 port 9953 allow { any; } keys { rndc_key; };
+};
include "../trusted.conf";
zone "." {type hint; file "hints"; };
-zone "example.com." {type master; file "example.db"; };
+zone "tld5." {type master; file "tld5.db"; };
+zone "example.tld5." {type master; file "example.db"; };
-zone "bl." {type master; file "bl.db"; };
+zone "bl0." {type master; file "bl.db"; };
+zone "bl1." {type master; file "bl.db"; };
+zone "bl2." {type master; file "bl.db"; };
diff --git a/bin/tests/system/rpz/ns5/tld5.db b/bin/tests/system/rpz/ns5/tld5.db
new file mode 100644
index 00000000..d20a5473
--- /dev/null
+++ b/bin/tests/system/rpz/ns5/tld5.db
@@ -0,0 +1,67 @@
+; 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.
+
+
+
+; RPZ preformance test
+
+$TTL 120
+@ SOA . hostmaster.ns.example.tld5. ( 1 3600 1200 604800 60 )
+ NS ns
+ NS ns1
+ NS ns2
+ NS ns3
+ NS ns4
+ NS ns5
+ NS ns6
+ NS ns7
+ NS ns8
+ NS ns9
+ NS ns10
+ NS ns11
+ NS ns12
+ NS ns13
+ NS ns14
+ NS ns15
+ NS ns16
+ NS ns17
+ NS ns18
+ NS ns19
+ns A 10.53.0.5
+ns1 A 10.53.0.5
+ns2 A 10.53.0.5
+ns3 A 10.53.0.5
+ns4 A 10.53.0.5
+ns5 A 10.53.0.5
+ns6 A 10.53.0.5
+ns7 A 10.53.0.5
+ns8 A 10.53.0.5
+ns9 A 10.53.0.5
+ns10 A 10.53.0.5
+ns11 A 10.53.0.5
+ns12 A 10.53.0.5
+ns13 A 10.53.0.5
+ns14 A 10.53.0.5
+ns15 A 10.53.0.5
+ns16 A 10.53.0.5
+ns17 A 10.53.0.5
+ns18 A 10.53.0.5
+ns19 A 10.53.0.5
+
+
+$ORIGIN example.tld5.
+example.tld5. NS ns
+ NS ns1
+ns A 10.53.0.5
+ns1 A 10.53.0.5
diff --git a/bin/tests/system/rpz/qperf.sh b/bin/tests/system/rpz/qperf.sh
index a823f1b6..cb0a29b0 100644
--- a/bin/tests/system/rpz/qperf.sh
+++ b/bin/tests/system/rpz/qperf.sh
@@ -1,6 +1,6 @@
#! /bin/sh
#
-# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2012, 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,7 +14,8 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: qperf.sh,v 1.1.2.1 2011/10/15 23:03:37 vjs Exp $
+# $Id$
+
for QDIR in `echo "$PATH" | tr : ' '` ../../../../contrib/queryperf; do
QPERF=$QDIR/queryperf
diff --git a/bin/tests/system/rpz/rpz.c b/bin/tests/system/rpz/rpz.c
index 8a357ddb..a1053a8d 100644
--- a/bin/tests/system/rpz/rpz.c
+++ b/bin/tests/system/rpz/rpz.c
@@ -1,5 +1,5 @@
/*
- * 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
@@ -14,7 +14,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: rpz.c,v 1.3.226.1 2011/10/15 23:03:37 vjs Exp $ */
+/* $Id$ */
+
#include <config.h>
diff --git a/bin/tests/system/rpz/setup.sh b/bin/tests/system/rpz/setup.sh
index 1bc879c7..5a0f9046 100644
--- a/bin/tests/system/rpz/setup.sh
+++ b/bin/tests/system/rpz/setup.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
@@ -14,7 +14,8 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: setup.sh,v 1.6 2012/01/07 23:46:53 tbox Exp $
+# $Id$
+
set -e
@@ -48,19 +49,22 @@ signzone ns2 tld2s. base-tld2s.db tld2s.db
# Performance checks.
-# First with rpz off.
cat <<EOF >ns5/rpz-switch
-response-policy {zone "bl";}
- recursive-only no
- max-policy-ttl 90
- break-dnssec yes;
+response-policy {
+ zone "bl0"; zone "bl1"; zone "bl2";
+ } recursive-only no
+ max-policy-ttl 90
+ # min-ns-dots 0
+ break-dnssec yes;
EOF
cat <<EOF >ns5/example.db
\$TTL 120
-@ SOA . hostmaster.ns.example. ( 1 3600 1200 604800 60 )
+@ SOA . hostmaster.ns.example.tld5. ( 1 3600 1200 604800 60 )
NS ns
+ NS ns1
ns A 10.53.0.5
+ns1 A 10.53.0.5
EOF
cat <<EOF >ns5/bl.db
@@ -71,31 +75,26 @@ ns A 10.53.0.5
; used only in failure for "recursive-only no" in #8 test5
a3-5.tld2 CNAME *.
-; for "break-dnssec" in #9 test5
+; for "break-dnssec" in #9 & #10 test5
a3-5.tld2s CNAME *.
-; for "max-policy-ttl 90" in test5
+; for "max-policy-ttl 90" in #17 test5
a3-17.tld2 500 A 17.17.17.17
-; dummy NSDNAME policies to trigger lookups
-ns-1.example.com.rpz-nsdname CNAME .
-ns-2.example.com.rpz-nsdname CNAME .
-ns-3.example.com.rpz-nsdname CNAME .
-ns-4.example.com.rpz-nsdname CNAME .
-ns-5.example.com.rpz-nsdname CNAME .
+; dummy NSDNAME policy to trigger lookups
+ns1.x.rpz-nsdname CNAME .
EOF
if test -n "$QPERF"; then
# do not build the full zones if we will not use them to avoid the long
# time otherwise required to shut down the server
$PERL -e 'for ($val = 1; $val <= 65535; ++$val) {
- printf("host-%d-%d\tA 192.168.%d.%d\n",
- $val/256, $val%256, $val/256, $val%256);
+ printf("host-%05d\tA 192.168.%d.%d\n", $val, $val/256, $val%256);
}' >>ns5/example.db
echo >>ns5/bl.db
echo "; rewrite some names" >>ns5/bl.db
$PERL -e 'for ($val = 2; $val <= 65535; $val += 69) {
- printf("host-%d.sub%d.example.com\tCNAME\t.\n", $val/256, $val%256);
+ printf("host-%05d.example.tld5\tCNAME\t.\n", $val);
}' >>ns5/bl.db
echo >>ns5/bl.db
@@ -103,13 +102,11 @@ if test -n "$QPERF"; then
$PERL -e 'for ($val = 3; $val <= 65535; $val += 69) {
printf("32.%d.%d.168.192.rpz-ip \tCNAME\t.\n",
$val%256, $val/256);
- printf("32.%d.%d.168.192.rpz-nsip\tCNAME\t.\n",
- ($val+1)%256, ($val+1)/256);
}' >>ns5/bl.db
fi
# some psuedo-random queryperf requests
-$PERL -e 'for ($cnt = $val = 1; $cnt <= 2000; ++$cnt) {
- printf("host-%d.sub%d.example.com A\n", $val%256, $val/256);
- $val = ($val * 9 + 32771) % 65536;
+$PERL -e 'for ($cnt = $val = 1; $cnt <= 3000; ++$cnt) {
+ printf("host-%05d.example.tld5 A\n", $val);
+ $val = ($val * 9 + 32771) % 65536;
}' >ns5/requests
diff --git a/bin/tests/system/rpz/test1 b/bin/tests/system/rpz/test1
index aa885c3e..95c1c0b1 100644
--- a/bin/tests/system/rpz/test1
+++ b/bin/tests/system/rpz/test1
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: test1,v 1.8 2012/01/07 00:19:59 each Exp $
; Use comment lines instead of blank lines to combine update requests into
@@ -31,7 +30,7 @@ update add a0-1.tld2.bl. 300 CNAME .
; 3, 21
update add a3-1.tld2.bl. 300 CNAME *.
; and no assert-botch
-; 5, 22
+; 4, 5, 22, 23
update add a3-2.tld2.bl. 300 DNAME example.com.
;
; NXDOMAIN for a4-2-cname.tld2 via its target a4-2.tld2.
diff --git a/bin/tests/system/rpz/test2 b/bin/tests/system/rpz/test2
index 2a467af9..ff231fa9 100644
--- a/bin/tests/system/rpz/test2
+++ b/bin/tests/system/rpz/test2
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: test2,v 1.6 2011/11/18 19:32:13 each Exp $
; Use comment lines instead of blank lines to combine update requests into
@@ -45,7 +44,7 @@ update add 32.3.4.168.192.rpz-ip.bl 300 CNAME *.
; 9
update add 128.1.zz.3.2.2001.rpz-ip.bl 300 CNAME .
;
-; apply the policy with the lexically smallest address of 192.168.5.1
+; apply the policy with the lexically smaller trigger address of 192.168.5.1
; to an RRset of more than one A RR
; 11
update add 32.1.5.168.192.rpz-ip.bl 300 A 127.0.0.1
diff --git a/bin/tests/system/rpz/test3 b/bin/tests/system/rpz/test3
index fa8575f1..75cb8c95 100644
--- a/bin/tests/system/rpz/test3
+++ b/bin/tests/system/rpz/test3
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: test3,v 1.5 2011/10/13 01:32:32 vjs Exp $
; Use comment lines instead of blank lines to combine update requests into
@@ -24,20 +23,24 @@
server 10.53.0.3 5300
+; 3, 4, 5
; NXDOMAIN for *.sub1.tld2 by NSDNAME
update add *.sub1.tld2.rpz-nsdname.bl. 300 CNAME .
;
+; 6
; walled garden for *.sub2.tld2
update add *.sub2.tld2.rpz-nsdname.bl. 300 CNAME a12-cname.tld2.
;
+; 7, 8
; exempt a3-2.tld2 and anything in 192.168.0.0/24
; also checks that IP policies are preferred over NSDNAME policies
update add a3-2.tld2.bl 300 CNAME a3-2.tld2.
update add 24.0.0.168.192.rpz-ip.bl 300 CNAME 24.0.0.168.192.
;
+; 9
; prefer QNAME policy to NSDNAME policy
update add a4-1.tld2.bl. 300 A 12.12.12.12
-;
+; 10
; prefer policy for largest NS name
update add ns.sub3.tld2.rpz-nsdname.bl. 300 A 127.0.0.1
update add ns.subsub.sub3.tld2.rpz-nsdname.bl. 300 A 127.0.0.2
diff --git a/bin/tests/system/rpz/test4 b/bin/tests/system/rpz/test4
index 40bd83fa..3140ee63 100644
--- a/bin/tests/system/rpz/test4
+++ b/bin/tests/system/rpz/test4
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: test4,v 1.5 2011/10/13 01:32:33 vjs Exp $
; Use comment lines instead of blank lines to combine update requests into
diff --git a/bin/tests/system/rpz/test4a b/bin/tests/system/rpz/test4a
new file mode 100644
index 00000000..f014978f
--- /dev/null
+++ b/bin/tests/system/rpz/test4a
@@ -0,0 +1,30 @@
+; 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.
+
+
+
+; Use comment lines instead of blank lines to combine update requests into
+; single requests
+; Separate update requests for distinct TLDs with blank lines or 'send'
+; End the file with a blank line or 'send'
+
+; walled-garden NSIP tests
+
+server 10.53.0.3 5300
+
+; rewrite all of tld2 based on its server IP address
+update add 32.2.0.53.10.rpz-nsip.bl. 300 A 41.41.41.41
+update add 32.2.0.53.10.rpz-nsip.bl. 300 AAAA 2041::41
+update add 32.2.0.53.10.rpz-nsip.bl. 300 TXT "NSIP walled garden"
+send
diff --git a/bin/tests/system/rpz/test5 b/bin/tests/system/rpz/test5
index a6510d30..42dbac8b 100644
--- a/bin/tests/system/rpz/test5
+++ b/bin/tests/system/rpz/test5
@@ -1,4 +1,4 @@
-; Copyright (C) 2011 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
@@ -12,7 +12,6 @@
; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
; PERFORMANCE OF THIS SOFTWARE.
-; $Id: test5,v 1.5.4.1 2012/02/24 17:22:37 vjs Exp $
; Use comment lines instead of blank lines to combine update requests into
diff --git a/bin/tests/system/rpz/tests.sh b/bin/tests/system/rpz/tests.sh
index a669ed4c..5b6c4bf5 100644
--- a/bin/tests/system/rpz/tests.sh
+++ b/bin/tests/system/rpz/tests.sh
@@ -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
@@ -12,7 +12,8 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: tests.sh,v 1.12 2012/01/07 23:46:53 tbox Exp $
+# $Id$
+
# test response policy zones (RPZ)
@@ -27,6 +28,8 @@ ns4=$ns.4 # another server that is rewritten
ns5=$ns.5 # check performance with this server
HAVE_CORE=
+SAVE_RESULTS=
+NS3_STATS=47
USAGE="$0: [-x]"
while getopts "x" c; do
@@ -43,11 +46,18 @@ fi
# really quit on control-C
trap 'exit 1' 1 2 15
+TS='%H:%M:%S '
+TS=
+comment () {
+ if test -n "$TS"; then
+ date "+I:${TS}$*"
+ fi
+}
RNDCCMD="$RNDC -c $SYSTEMTESTTOP/common/rndc.conf -p 9953 -s"
digcmd () {
- digcmd_args="+noadd +nosearch +time=1 +tries=1 -p 5300 $*"
+ digcmd_args="+noadd +time=1 +tries=1 -p 5300 $*"
expr "$digcmd_args" : '.*@' >/dev/null || \
digcmd_args="$digcmd_args @$ns3"
expr "$digcmd_args" : '.*+[no]*auth' >/dev/null || \
@@ -70,16 +80,17 @@ make_dignm () {
setret () {
ret=1
+ status=`expr $status + 1`
echo "$*"
}
# (re)load the reponse policy zones with the rules in the file $TEST_FILE
load_db () {
if test -n "$TEST_FILE"; then
- if $NSUPDATE -v $TEST_FILE; then : ; else
+ $NSUPDATE -v $TEST_FILE || {
echo "I:failed to update policy zone with $TEST_FILE"
exit 1
- fi
+ }
fi
}
@@ -122,10 +133,21 @@ ckalive () {
return 1
}
+# check that statistics for $1 in $2 = $3
+ckstats () {
+ $RNDCCMD $1 stats
+ CNT=`sed -n -e 's/[ ]*\([0-9]*\).response policy.*/\1/p' \
+ $2/named.stats`
+ CNT=`expr 0$CNT + 0`
+ if test "$CNT" -ne $3; then
+ setret "I:wrong $2 statistics of $CNT instead of $3"
+ fi
+}
+
# $1=message $2=optional test file name
start_group () {
ret=0
- test -n "$1" && echo "I:checking $1"
+ test -n "$1" && date "+I:${TS}checking $1"
TEST_FILE=$2
if test -n "$TEST_FILE"; then
GROUP_NM="-$TEST_FILE"
@@ -138,33 +160,25 @@ start_group () {
end_group () {
if test -n "$TEST_FILE"; then
+ # remove the previous set of test rules
sed -e 's/[ ]add[ ]/ delete /' $TEST_FILE | $NSUPDATE
TEST_FILE=
fi
ckalive $ns3 "I:failed; ns3 server crashed and restarted"
- if test "$status" -eq 0; then
- # look for complaints from rpz.c
- EMSGS=`grep -l 'invalid rpz' */*.run`
- if test -n "$EMSGS"; then
- setret "I:'invalid rpz' complaints in $EMSGS starting with:"
- grep 'invalid rpz' */*.run | sed -e '4,$d' -e 's/^/I: /'
- fi
- # look for complaints from rpz.c and query.c
- EMSGS=`grep -l 'rpz .*failed' */*.run`
- if test -n "$EMSGS"; then
- setret "I:'rpz failed' complaints in $EMSGS starting with:"
- grep 'rpz .*failed' */*.run | sed -e '4,$d' -e 's/^/I: /'
- fi
- fi
- status=`expr $status + $ret`
GROUP_NM=
}
+clean_result () {
+ if test -z "$SAVE_RESULTS"; then
+ rm -f $*
+ fi
+}
+
# $1=dig args $2=other dig output file
ckresult () {
#ckalive "$1" "I:server crashed by 'dig $1'" || return 1
if $PERL $SYSTEMTESTTOP/digcomp.pl $DIGNM $2 >/dev/null; then
- rm -f ${DIGNM}*
+ clean_result ${DIGNM}*
return 0
fi
setret "I:'dig $1' wrong; diff $DIGNM $2"
@@ -208,7 +222,7 @@ addr () {
digcmd $2 >$DIGNM
#ckalive "$2" "I:server crashed by 'dig $2'" || return 1
ADDR_ESC=`echo "$ADDR" | sed -e 's/\./\\\\./g'`
- ADDR_TTL=`sed -n -e "s/^[-.a-z0-9]\{1,\} *\([0-9]*\) IN A\{1,4\} ${ADDR_ESC}\$/\1/p" $DIGNM`
+ ADDR_TTL=`sed -n -e "s/^[-.a-z0-9]\{1,\} *\([0-9]*\) IN AA* ${ADDR_ESC}\$/\1/p" $DIGNM`
if test -z "$ADDR_TTL"; then
setret "I:'dig $2' wrong; no address $ADDR record in $DIGNM"
return 1
@@ -217,7 +231,7 @@ addr () {
setret "I:'dig $2' wrong; TTL=$ADDR_TTL instead of $3 in $DIGNM"
return 1
fi
- rm -f ${DIGNM}*
+ clean_result ${DIGNM}*
}
# check that a response is not rewritten
@@ -226,7 +240,7 @@ nochange () {
make_dignm
digcmd $* >$DIGNM
digcmd $* @$ns2 >${DIGNM}_OK
- ckresult "$*" ${DIGNM}_OK && rm -f ${DIGNM}_OK
+ ckresult "$*" ${DIGNM}_OK && clean_result ${DIGNM}_OK
}
# check against a 'here document'
@@ -248,8 +262,8 @@ start_group "QNAME rewrites" test1
nochange . # 1 do not crash or rewrite root
nxdomain a0-1.tld2 # 2
nodata a3-1.tld2 # 3
-nodata a3-2.tld2 # 4 no crash on DNAME
-nodata sub.a3-2.tld2
+nodata a3-2.tld2 # 4 nodata at DNAME itself
+nochange sub.a3-2.tld2 # 5 miss where DNAME might work
nxdomain a4-2.tld2 # 6 rewrite based on CNAME target
nxdomain a4-2-cname.tld2 # 7
nodata a4-3-cname.tld2 # 8
@@ -313,8 +327,9 @@ nochange a5-1-2.tld2
end_group
if ./rpz nsdname; then
+ # these tests assume "min-ns-dots 0"
start_group "NSDNAME rewrites" test3
- nochange a3-1.tld2
+ nochange a3-1.tld2 # 1
nochange a3-1.tld2 +dnssec # 2 this once caused problems
nxdomain a3-1.sub1.tld2 # 3 NXDOMAIN *.sub1.tld2 by NSDNAME
nxdomain a3-1.subsub.sub1.tld2
@@ -327,19 +342,31 @@ if ./rpz nsdname; then
addr 127.0.0.2 a3-1.subsub.sub3.tld2
nxdomain xxx.crash1.tld2 # 12 dns_db_detachnode() crash
end_group
+ NS3_STATS=`expr $NS3_STATS + 7`
else
- echo "I:NSDNAME not checked; named not configured with --enable-rpz-nsdname"
+ echo "I:NSDNAME not checked; named configured with --disable-rpz-nsdname"
fi
if ./rpz nsip; then
+ # these tests assume "min-ns-dots 0"
start_group "NSIP rewrites" test4
- nxdomain a3-1.tld2 # 1 NXDOMAIN for all of tld2 by NSIP
+ nxdomain a3-1.tld2 # 1 NXDOMAIN for all of tld2
nochange a3-2.tld2. # 2 exempt rewrite by name
nochange a0-1.tld2. # 3 exempt rewrite by address block
nochange a3-1.tld4 # 4 different NS IP address
end_group
+
+# start_group "walled garden NSIP rewrites" test4a
+# addr 41.41.41.41 a3-1.tld2 # 1 walled garden for all of tld2
+# addr 2041::41 'a3-1.tld2 AAAA' # 2 walled garden for all of tld2
+# here a3-1.tld2 TXT <<'EOF' # 3 text message for all of tld2
+# ;; status: NOERROR, x
+# a3-1.tld2. x IN TXT "NSIP walled garden"
+#EOF
+# end_group
+ NS3_STATS=`expr $NS3_STATS + 1`
else
- echo "I:NSIP not checked; named not configured with --enable-rpz-nsip"
+ echo "I:NSIP not checked; named configured with --disable-rpz-nsip"
fi
# policies in ./test5 overridden by response-policy{} in ns3/named.conf
@@ -377,6 +404,11 @@ for Q in RRSIG SIG ANY 'ANY +dnssec'; do
nocrash www.redirect -t$Q
nocrash www.credirect -t$Q
done
+
+# This is not a bug, because any data leaked by writing 24.4.3.2.10.rpz-ip
+# (or whatever) is available by publishing "foo A 10.2.3.4" and then
+# resolving foo.
+# nxdomain 32.3.2.1.127.rpz-ip
end_group
@@ -384,55 +416,56 @@ end_group
QPERF=`sh qperf.sh`
if test -n "$QPERF"; then
perf () {
- echo "I:checking performance $1"
- # don't measure the costs of -d99
- $RNDCCMD $ns5 notrace >/dev/null
- $QPERF -1 -l2 -d ns5/requests -s $ns5 -p 5300 >ns5/$2.perf
+ date "+I:${TS}checking performance $1"
+ # Dry run to prime everything
+ comment "before dry run $1"
+ $QPERF -c -1 -l30 -d ns5/requests -s $ns5 -p 5300 >/dev/null
+ comment "before real test $1"
+ PFILE="ns5/$2.perf"
+ $QPERF -c -1 -l30 -d ns5/requests -s $ns5 -p 5300 >$PFILE
+ comment "after test $1"
+ X=`sed -n -e 's/.*Returned *\([^ ]*:\) *\([0-9]*\) .*/\1\2/p' $PFILE \
+ | tr '\n' ' '`
+ if test "$X" != "$3"; then
+ setret "I:wrong results '$X' in $PFILE"
+ fi
ckalive $ns5 "I:failed; server #5 crashed"
}
trim () {
sed -n -e 's/.*Queries per second: *\([0-9]*\).*/\1/p' ns5/$1.perf
}
- # Dry run to prime disk cache
- # Otherwise a first test of either flavor is 25% low
- perf 'to prime disk cache' rpz
-
- # get queries/second with rpz
- perf 'with rpz' rpz
+ # get qps with rpz
+ perf 'with rpz' rpz 'NOERROR:2900 NXDOMAIN:100 '
+ RPZ=`trim rpz`
- # turn off rpz and measure queries/second again
- # Don't wait for a clean stop. Clean stops of this server need seconds
- # until the sockets are closed. 5 or 10 seconds after that, the
- # server really stops and deletes named.pid.
+ # turn off rpz and measure qps again
echo "# rpz off" >ns5/rpz-switch
- PID=`cat ns5/named.pid`
- test -z "$PID" || kill -9 "$PID"
- $PERL $SYSTEMTESTTOP/start.pl --noclean --restart . ns5
- perf 'without rpz' norpz
-
- # Don't wait for a clean stop. Clean stops of this server need seconds
- # until the sockets are closed. 5 or 10 seconds after that, the
- # server really stops and deletes named.pid.
- echo "# rpz off" >ns5/rpz-switch
- PID=`cat ns5/named.pid`
- test -z "$PID" || kill -9 "$PID" && rm -f ns5/named.pid
-
+ RNDCCMD_OUT=`$RNDCCMD $ns5 reload`
+ perf 'without rpz' norpz 'NOERROR:3000 '
NORPZ=`trim norpz`
- RPZ=`trim rpz`
- echo "I:$RPZ qps with RPZ versus $NORPZ qps without"
- # fail if RPZ costs more than 100%
- NORPZ2=`expr "$NORPZ" / 2`
- if test "$RPZ" -le "$NORPZ2"; then
- echo "I:rpz $RPZ qps too far below non-RPZ $NORPZ qps"
- status=`expr $status + 1`
+ PERCENT=`expr \( "$RPZ" \* 100 + \( $NORPZ / 2 \) \) / $NORPZ`
+ echo "I:$RPZ qps with rpz is $PERCENT% of $NORPZ qps without rpz"
+
+ MIN_PERCENT=30
+ if test "$PERCENT" -lt $MIN_PERCENT; then
+ setret "I:$RPZ qps with rpz or $PERCENT% is below $MIN_PERCENT% of $NORPZ qps"
+ fi
+
+ if test "$PERCENT" -ge 100; then
+ setret "I:$RPZ qps with RPZ or $PERCENT% of $NORPZ qps without RPZ is too high"
fi
+
+ ckstats $ns5 ns5 203
+
else
echo "I:performance not checked; queryperf not available"
fi
+ckstats $ns3 ns3 55
+
# restart the main test RPZ server to see if that creates a core file
if test -z "$HAVE_CORE"; then
$PERL $SYSTEMTESTTOP/stop.pl . ns3
@@ -441,6 +474,12 @@ if test -z "$HAVE_CORE"; then
test -z "$HAVE_CORE" || setret "I:found $HAVE_CORE; memory leak?"
fi
+# look for complaints from lib/dns/rpz.c and bin/name/query.c
+EMSGS=`egrep -l 'invalid rpz|rpz.*failed' ns*/named.run`
+if test -n "$EMSGS"; then
+ setret "I:error messages in $EMSGS starting with:"
+ egrep 'invalid rpz|rpz.*failed' ns*/named.run | sed -e '10,$d' -e 's/^/I: /'
+fi
echo "I:exit status: $status"
exit $status
diff --git a/bin/tests/system/tkey/clean.sh b/bin/tests/system/tkey/clean.sh
index 2ddd9c41..00a0c14d 100644
--- a/bin/tests/system/tkey/clean.sh
+++ b/bin/tests/system/tkey/clean.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -17,7 +17,6 @@
# $Id: clean.sh,v 1.8 2011/11/03 23:46:26 tbox Exp $
-rm -f dig.out.* random.data ns1/named.conf
+rm -f dig.out.* rndc.out.* random.data ns1/named.conf
rm -f K* ns1/K*
rm -f */named.memstats
-rm -f rndc.out
diff --git a/bin/tests/system/tkey/ns1/example.db b/bin/tests/system/tkey/ns1/example.db
new file mode 100644
index 00000000..34803638
--- /dev/null
+++ b/bin/tests/system/tkey/ns1/example.db
@@ -0,0 +1,30 @@
+; 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.
+
+$TTL 1D
+
+@ IN SOA ns hostmaster (
+ 1
+ 3600
+ 1800
+ 1814400
+ 3
+ )
+ NS ns
+ns A 10.53.0.1
+mx MX 10 mail
+a A 10.53.0.1
+ A 10.53.0.2
+txt TXT "this is text"
+
diff --git a/bin/tests/system/tkey/ns1/named.conf.in b/bin/tests/system/tkey/ns1/named.conf.in
index 7f235200..50600b78 100644
--- a/bin/tests/system/tkey/ns1/named.conf.in
+++ b/bin/tests/system/tkey/ns1/named.conf.in
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -47,3 +47,9 @@ key "tkeytest." {
algorithm hmac-md5;
secret "0123456789ab";
};
+
+zone example {
+ type master;
+ file "example.db";
+ allow-query { key tkeytest.; none; };
+};
diff --git a/bin/tests/system/tkey/setup.sh b/bin/tests/system/tkey/setup.sh
index 4a9ac56f..302ad823 100644
--- a/bin/tests/system/tkey/setup.sh
+++ b/bin/tests/system/tkey/setup.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -19,6 +19,8 @@
RANDFILE=random.data
+sh clean.sh
+
../../../tools/genrandom 100 $RANDFILE
cd ns1 && sh setup.sh
diff --git a/bin/tests/system/tkey/tests.sh b/bin/tests/system/tkey/tests.sh
index 1a51658e..f60fe7a2 100644
--- a/bin/tests/system/tkey/tests.sh
+++ b/bin/tests/system/tkey/tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -31,6 +31,7 @@ ret=0
dhkeyname=`$KEYGEN -T KEY -a DH -b 768 -n host -r $RANDFILE client` || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
+ status=`expr $status + $ret`
echo "I:exit status: $status"
exit $status
fi
@@ -43,6 +44,7 @@ do
keyname=`./keycreate $dhkeyname $owner` || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
+ status=`expr $status + $ret`
echo "I:exit status: $status"
exit $status
fi
@@ -84,6 +86,7 @@ ret=0
keyname=`./keycreate $dhkeyname bar.example.` || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
+ status=`expr $status + $ret`
echo "I:exit status: $status"
exit $status
fi
@@ -91,8 +94,17 @@ status=`expr $status + $ret`
echo "I:checking the key with 'rndc tsig-list'"
ret=0
-$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out
-grep "key \"bar.example.server" rndc.out > /dev/null || ret=1
+$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out.1
+grep "key \"bar.example.server" rndc.out.1 > /dev/null || ret=1
+if [ $ret != 0 ]; then
+ echo "I:failed"
+fi
+status=`expr $status + $ret`
+
+echo "I:using key in a request"
+ret=0
+$DIG $DIGOPTS -k $keyname txt.example txt > dig.out.3 || ret=1
+grep "status: NOERROR" dig.out.3 > /dev/null || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
fi
@@ -101,8 +113,39 @@ status=`expr $status + $ret`
echo "I:deleting the key with 'rndc tsig-delete'"
ret=0
$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-delete bar.example.server > /dev/null || ret=1
-$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out
-grep "key \"bar.example.server" rndc.out > /dev/null && ret=1
+$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out.2
+grep "key \"bar.example.server" rndc.out.2 > /dev/null && ret=1
+$DIG $DIGOPTS -k $keyname txt.example txt > dig.out.4 || ret=1
+grep "TSIG could not be validated" dig.out.4 > /dev/null || ret=1
+if [ $ret != 0 ]; then
+ echo "I:failed"
+fi
+status=`expr $status + $ret`
+
+echo "I:recreating the bar.example. key"
+ret=0
+keyname=`./keycreate $dhkeyname bar.example.` || ret=1
+if [ $ret != 0 ]; then
+ echo "I:failed"
+ status=`expr $status + $ret`
+ echo "I:exit status: $status"
+ exit $status
+fi
+status=`expr $status + $ret`
+
+echo "I:checking the new key with 'rndc tsig-list'"
+ret=0
+$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out.3
+grep "key \"bar.example.server" rndc.out.3 > /dev/null || ret=1
+if [ $ret != 0 ]; then
+ echo "I:failed"
+fi
+status=`expr $status + $ret`
+
+echo "I:using the new key in a request"
+ret=0
+$DIG $DIGOPTS -k $keyname txt.example txt > dig.out.5 || ret=1
+grep "status: NOERROR" dig.out.5 > /dev/null || ret=1
if [ $ret != 0 ]; then
echo "I:failed"
fi
diff --git a/bin/tests/system/verify/tests.sh b/bin/tests/system/verify/tests.sh
index b6ea42cf..66b705c0 100644
--- a/bin/tests/system/verify/tests.sh
+++ b/bin/tests/system/verify/tests.sh
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2012, 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
@@ -69,7 +69,7 @@ do
expect1="unexpected NSEC RRset at"
;;
*.nsec.broken-chain)
- expect1="Bad record NSEC record for.*, next name mismatch"
+ expect1="Bad NSEC record for.*, next name mismatch"
;;
*.bad-bitmap)
expect1="bit map mismatch"
diff --git a/bin/tests/system/verify/zones/genzones.sh b/bin/tests/system/verify/zones/genzones.sh
index d2fde9a4..59622b08 100644
--- a/bin/tests/system/verify/zones/genzones.sh
+++ b/bin/tests/system/verify/zones/genzones.sh
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2012, 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
@@ -170,12 +170,19 @@ $SIGNER -Px -Z nonsecify -O full -o ${zone} -f ${file}.tmp ${file} $zsk > s.out$
awk '$1 ~ /^ns.sub/ && $4 == "RRSIG" && $5 != "NSEC" { next; } { print; }' ${file}.tmp > ${file}
# missing NSEC3 record at empty node
+# extract the hash fields from the empty node's NSEC 3 record then fix up
+# the NSEC3 chain to remove it
setup ksk+zsk.nsec3.missing-empty bad
zsk=`$KEYGEN -3 -r $RANDFILE ${zone} 2> kg1.out$n` || dumpit kg1.out$n
ksk=`$KEYGEN -3 -r $RANDFILE -fK ${zone} 2> kg2.out$n` || dumpit kg2.out$n
cat unsigned.db $ksk.key $zsk.key > $file
$SIGNER -3 - -P -O full -o ${zone} -f ${file} ${file} $ksk > s.out$n 2>&1 || dumpit s.out$n
-awk '$4 == "NSEC3" && NF == 9 { next; } { print; }' ${file} > ${file}.tmp
+a=`awk '$4 == "NSEC3" && NF == 9 { split($1, a, "."); print a[1]; }' ${file}`
+b=`awk '$4 == "NSEC3" && NF == 9 { print $9; }' ${file}`
+awk '
+$4 == "NSEC3" && $9 == "'$a'" { $9 = "'$b'"; print; next; }
+$4 == "NSEC3" && NF == 9 { next; }
+{ print; }' ${file} > ${file}.tmp
$SIGNER -3 - -Px -Z nonsecify -O full -o ${zone} -f ${file} ${file}.tmp $zsk > s.out$n 2>&1 || dumpit s.out$n
# extra NSEC3 record
diff --git a/bin/tests/system/wildcard/clean.sh b/bin/tests/system/wildcard/clean.sh
index 4aa51d63..03b96a8f 100644
--- a/bin/tests/system/wildcard/clean.sh
+++ b/bin/tests/system/wildcard/clean.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2012, 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
@@ -22,6 +22,7 @@ rm -f ns1/K*
rm -f ns1/*.db
rm -f ns1/*.signed
rm -f ns1/dsset-*
+rm -f ns1/keyset-*
rm -f ns1/trusted.conf
rm -f ns1/private.nsec.conf
rm -f ns1/private.nsec3.conf
diff --git a/bin/tests/system/wildcard/ns1/dlv.db.in b/bin/tests/system/wildcard/ns1/dlv.db.in
new file mode 100644
index 00000000..95e68b97
--- /dev/null
+++ b/bin/tests/system/wildcard/ns1/dlv.db.in
@@ -0,0 +1,19 @@
+; 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$
+
+$TTL 120
+@ SOA a.root-servers.nil. hostmaster.root-servers.nil. 1 1800 900 604800 86400
+@ NS a.root-servers.nil.
diff --git a/bin/tests/system/wildcard/ns1/named.conf b/bin/tests/system/wildcard/ns1/named.conf
index 8ad4206b..0b30b9d3 100644
--- a/bin/tests/system/wildcard/ns1/named.conf
+++ b/bin/tests/system/wildcard/ns1/named.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2012, 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
@@ -33,6 +33,8 @@ options {
zone "." { type master; file "root.db.signed"; };
+zone "dlv" { type master; file "dlv.db.signed"; };
+
zone "nsec" { type master; file "nsec.db.signed"; };
zone "private.nsec" { type master; file "private.nsec.db.signed"; };
diff --git a/bin/tests/system/wildcard/ns1/root.db.in b/bin/tests/system/wildcard/ns1/root.db.in
index 54cf2d2e..102eea81 100644
--- a/bin/tests/system/wildcard/ns1/root.db.in
+++ b/bin/tests/system/wildcard/ns1/root.db.in
@@ -18,5 +18,6 @@ $TTL 120
@ SOA a.root-servers.nil hostmaster.root-servers.nil 1 1800 900 604800 86400
@ NS a.root-servers.nil
a.root-servers.nil A 10.53.0.1
+dlv NS a.root-servers.nil
nsec NS a.root-servers.nil
nsec3 NS a.root-servers.nil
diff --git a/bin/tests/system/wildcard/ns1/sign.sh b/bin/tests/system/wildcard/ns1/sign.sh
index 35269928..1ad5207a 100755
--- a/bin/tests/system/wildcard/ns1/sign.sh
+++ b/bin/tests/system/wildcard/ns1/sign.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2012, 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
@@ -22,6 +22,20 @@ SYSTEMTESTTOP=../..
RANDFILE=../random.data
dssets=
+zone=dlv.
+infile=dlv.db.in
+zonefile=dlv.db
+outfile=dlv.db.signed
+dssets="$dssets dsset-$zone"
+
+keyname1=`$KEYGEN -r $RANDFILE -a RSASHA1 -b 1024 -n zone $zone 2> /dev/null`
+keyname2=`$KEYGEN -f KSK -r $RANDFILE -a RSASHA1 -b 1024 -n zone $zone 2> /dev/null`
+
+cat $infile $keyname1.key $keyname2.key > $zonefile
+
+$SIGNER -r $RANDFILE -o $zone -f $outfile $zonefile > /dev/null 2> signer.err || cat signer.err
+echo "I: signed $zone"
+
zone=nsec.
infile=nsec.db.in
zonefile=nsec.db
diff --git a/bin/tests/system/wildcard/ns5/hints b/bin/tests/system/wildcard/ns5/hints
new file mode 100644
index 00000000..80a7e92f
--- /dev/null
+++ b/bin/tests/system/wildcard/ns5/hints
@@ -0,0 +1,18 @@
+; 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: hints,v 1.1.2.1 2010/06/01 03:55:02 marka Exp $
+
+. 0 NS ns.root-servers.nil.
+ns.root-servers.nil. 0 A 10.53.0.1
diff --git a/bin/tests/system/wildcard/ns5/named.conf b/bin/tests/system/wildcard/ns5/named.conf
new file mode 100644
index 00000000..121bf5f1
--- /dev/null
+++ b/bin/tests/system/wildcard/ns5/named.conf
@@ -0,0 +1,36 @@
+/*
+ * 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: named.conf,v 1.1.2.1 2010/06/01 03:55:02 marka Exp $ */
+
+controls { /* empty */ };
+
+options {
+ query-source address 10.53.0.5;
+ notify-source 10.53.0.5;
+ transfer-source 10.53.0.5;
+ port 5300;
+ pid-file "named.pid";
+ listen-on { 10.53.0.5; };
+ listen-on-v6 { none; };
+ recursion yes;
+ notify yes;
+ dnssec-lookaside . trust-anchor dlv;
+};
+
+include "../ns1/trusted.conf";
+
+zone "." { type hint; file "hints"; };
diff --git a/bin/tests/system/wildcard/tests.sh b/bin/tests/system/wildcard/tests.sh
index 8dc97720..ac55b843 100644
--- a/bin/tests/system/wildcard/tests.sh
+++ b/bin/tests/system/wildcard/tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2012, 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
@@ -53,6 +53,15 @@ if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
n=`expr $n + 1`
+echo "I: checking that NSEC wildcard non-existance proof is returned validating + CD ($n)"
+ret=0
+$DIG $DIGOPTS +cd a b.wild.nsec @10.53.0.5 > dig.out.ns5.test$n || ret=1
+grep -i 'a\.wild\.nsec\..*NSEC.*nsec\..*NSEC' dig.out.ns5.test$n > /dev/null || ret=1
+grep -i 'flags:.* ad[ ;]' dig.out.ns5.test$n > /dev/null && ret=1
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+n=`expr $n + 1`
+
echo "I: checking that returned NSEC wildcard non-existance proof validates ($n)"
ret=0
$DIG $DIGOPTS a b.wild.nsec @10.53.0.4 > dig.out.ns4.test$n || ret=1
@@ -106,6 +115,15 @@ if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
n=`expr $n + 1`
+echo "I: checking that NSEC3 wildcard non-existance proof is returned validating + CD ($n)"
+ret=0
+$DIG $DIGOPTS +cd a b.wild.nsec3 @10.53.0.5 > dig.out.ns5.test$n || ret=1
+grep -i 'O3TJ8D9AJ54CBTFCQCJ3QK49CH7SF6H9\.nsec3\..*V5DLFB6UJNHR94LQ61FO607KGK12H88A' dig.out.ns5.test$n > /dev/null || ret=1
+grep -i 'flags:.* ad[ ;]' dig.out.ns5.test$n > /dev/null && ret=1
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
+n=`expr $n + 1`
echo "I: checking that returned NSEC3 wildcard non-existance proof validates ($n)"
ret=0
$DIG $DIGOPTS a b.wild.nsec3 @10.53.0.4 > dig.out.ns4.test$n || ret=1
diff --git a/bin/tests/system/xfer/clean.sh b/bin/tests/system/xfer/clean.sh
index 9bfbb67e..061e1994 100644
--- a/bin/tests/system/xfer/clean.sh
+++ b/bin/tests/system/xfer/clean.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2011-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
@@ -24,7 +24,7 @@
rm -f dig.out.ns1 dig.out.ns2 dig.out.ns3 dig.out.ns4
rm -f dig.out.ns5 dig.out.ns6 dig.out.ns7
rm -f axfr.out
-rm -f ns1/slave.db
+rm -f ns1/slave.db ns2/slave.db
rm -f ns2/example.db ns2/tsigzone.db ns2/example.db.jnl
rm -f ns3/example.bk ns3/tsigzone.bk ns3/example.bk.jnl
rm -f ns3/master.bk ns3/master.bk.jnl
diff --git a/bin/tests/system/xfer/ns2/named.conf b/bin/tests/system/xfer/ns2/named.conf
index 53a64ab9..523672d2 100644
--- a/bin/tests/system/xfer/ns2/named.conf
+++ b/bin/tests/system/xfer/ns2/named.conf
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 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
@@ -59,3 +59,10 @@ zone "tsigzone" {
file "tsigzone.db";
allow-transfer { tzkey; };
};
+
+zone "slave" {
+ type slave;
+ file "slave.db";
+ masters { 10.53.0.1; };
+ masterfile-format text;
+};
diff --git a/bin/tests/system/xfer/ns2/slave.db.in b/bin/tests/system/xfer/ns2/slave.db.in
new file mode 100644
index 00000000..f25587d9
--- /dev/null
+++ b/bin/tests/system/xfer/ns2/slave.db.in
@@ -0,0 +1,22 @@
+; 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.
+
+$TTL 5
+
+@ IN SOA ns1 hostmaster 1 5 5 5 5
+@ NS ns1
+ns1 A 10.53.0.1
+a01 A 1.1.1.1
+a02 A 255.255.255.255
+
diff --git a/bin/tests/system/xfer/setup.sh b/bin/tests/system/xfer/setup.sh
index b9a97b44..8b1cc22e 100644
--- a/bin/tests/system/xfer/setup.sh
+++ b/bin/tests/system/xfer/setup.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001, 2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -32,3 +32,6 @@ rm -f ns4/*.db ns4/*.jnl
cp -f ns4/root.db.in ns4/root.db
$PERL -e 'for ($i=0;$i<10000;$i++){ printf("x%u 0 in a 10.53.0.1\n", $i);}' >> ns4/root.db
cp -f ns4/named.conf.base ns4/named.conf
+
+cp ns2/slave.db.in ns2/slave.db
+touch -t 200101010000 ns2/slave.db
diff --git a/bin/tests/system/xfer/tests.sh b/bin/tests/system/xfer/tests.sh
index 4b8cd066..3eaca5b8 100644
--- a/bin/tests/system/xfer/tests.sh
+++ b/bin/tests/system/xfer/tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2005, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2005, 2007, 2011-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
@@ -116,6 +116,14 @@ $RNDC -c ../common/rndc.conf -s 10.53.0.7 -p 9953 reload 2>&1 | sed 's/^/I:ns7 /
sleep 3
+echo "I:testing zone is dumped after successful transfer"
+$DIG $DIGOPTS +noall +answer +multi @10.53.0.2 -p 5300 \
+ slave. soa > dig.out.ns2 || tmp=1
+grep "1397051952 ; serial" dig.out.ns2 > /dev/null 2>&1 || tmp=1
+grep "1397051952 ; serial" ns2/slave.db > /dev/null 2>&1 || tmp=1
+if test $tmp != 0 ; then echo "I:failed"; fi
+status=`expr $status + $tmp`
+
echo "I:testing ixfr-from-differences yes;"
tmp=0
diff --git a/configure b/configure
index 4d3a34d4..27f1fa2d 100755
--- a/configure
+++ b/configure
@@ -1169,6 +1169,7 @@ SO
BIND9_CONFIGARGS
BIND9_SRCID
BIND9_VERSION
+BIND9_PRODUCT
BIND9_BIND9_BUILDINCLUDE
BIND9_LWRES_BUILDINCLUDE
BIND9_DNS_BUILDINCLUDE
@@ -1320,6 +1321,8 @@ OPENSSL_GOST
OPENSSL_ECDSA
OPENSSLLINKSRCS
OPENSSLLINKOBJS
+OPENSSLGOSTLINKSRCS
+OPENSSLGOSTLINKOBJS
DST_OPENSSL_INC
USE_OPENSSL
LWRES_PLATFORM_NEEDSYSSELECTH
@@ -2147,10 +2150,9 @@ Optional Features:
[default=autodetect]
--enable-fixed-rrset enable fixed rrset ordering
[default=no]
- --enable-rpz-nsip enable rpz-nsip rules [default=no]
- --enable-rpz-nsdname enable rpz-nsdname rules [default=no]
- --enable-filter-aaaa enable filtering of AAAA records over IPv4
- [default=no]
+ --disable-rpz-nsip disable rpz-nsip rules [default=enabled]
+ --disable-rpz-nsdname disable rpz-nsdname rules [default=enabled]
+ --enable-filter-aaaa enable filtering of AAAA records [default=no]
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -11856,11 +11858,10 @@ fi
case "$enable_developer" in
yes)
+ STD_CDEFINES="$STD_CDEFINES -DISC_LIST_CHECKINIT=1"
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${with_atf+set}" = set || with_atf=yes
test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
- test "${enable_rpz_nsip+set}" = set || enable_rpz_nsip=yes
- test "${enable_rpz_nsdname+set}" = set || enable_rpz_nsdname=yes
test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
case "$host" in
*-darwin*)
@@ -13293,20 +13294,18 @@ $as_echo_n "checking for static inline breakage... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-int
-main ()
-{
-
- foo1();
- }
-
static inline int foo1() {
return 0;
}
static inline int foo2() {
return foo1();
+ }
+int
+main ()
+{
+foo1();
;
return 0;
}
@@ -13981,12 +13980,16 @@ case "$use_openssl" in
$as_echo "no" >&6; }
DST_OPENSSL_INC=""
USE_OPENSSL=""
+ OPENSSLGOSTLINKOBJS=""
+ OPENSSLGOSTLINKSRS=""
OPENSSLLINKOBJS=""
OPENSSLLINKSRCS=""
;;
auto)
DST_OPENSSL_INC=""
USE_OPENSSL=""
+ OPENSSLGOSTLINKOBJS=""
+ OPENSSLGOSTLINKSRS=""
OPENSSLLINKOBJS=""
OPENSSLLINKSRCS=""
as_fn_error $? "OpenSSL was not found in any of $openssldirs; use --with-openssl=/path
@@ -14359,11 +14362,13 @@ fi
esac
case $have_gost in
yes)
- OPENSSL_GOST="yes"
+ OPENSSL_GOST="yes"
+ OPENSSLGOSTLINKOBJS='${OPENSSLGOSTLINKOBJS}'
+ OPENSSLGOSTLINKSRCS='${OPENSSLGOSTLINKSRCS}'
$as_echo "#define HAVE_OPENSSL_GOST 1" >>confdefs.h
- ;;
+ ;;
*)
;;
esac
@@ -14387,6 +14392,8 @@ esac
+
+
DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DNS_OPENSSL_LIBS"
#
@@ -18604,7 +18611,7 @@ esac
if test "${enable_rpz_nsip+set}" = set; then :
enableval=$enable_rpz_nsip; enable_nsip="$enableval"
else
- enable_nsip="no"
+ enable_nsip="yes"
fi
case "$enable_nsip" in
@@ -18626,7 +18633,7 @@ esac
if test "${enable_rpz_nsdname+set}" = set; then :
enableval=$enable_rpz_nsdname; enable_nsdname="$enableval"
else
- enable_nsdname="no"
+ enable_nsdname="yes"
fi
case "$enable_nsdname" in
@@ -19434,6 +19441,9 @@ $as_echo "#define ATF_TEST 1" >>confdefs.h
STD_CINCLUDES="$STD_CINCLUDES -I$atf/include"
ATFBIN="$atf/bin"
ATFLIBS="-L$atf/lib -latf-c"
+ if test "$want_openssl_hash" = yes; then
+ ATFLIBS="-L$atf/lib -latf-c $DNS_CRYPTO_LIBS"
+ fi
UNITTESTS=tests
fi
@@ -19499,6 +19509,8 @@ BIND9_MAKE_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes
BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
. $srcdir/version
+BIND9_PRODUCT="PRODUCT=\"${PRODUCT}\""
+
BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}${PATCHVER:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}"
diff --git a/configure.in b/configure.in
index 878dcc84..947362b2 100644
--- a/configure.in
+++ b/configure.in
@@ -66,11 +66,10 @@ esac
AC_ARG_ENABLE(developer, [ --enable-developer enable developer build settings])
case "$enable_developer" in
yes)
+ STD_CDEFINES="$STD_CDEFINES -DISC_LIST_CHECKINIT=1"
test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes
test "${with_atf+set}" = set || with_atf=yes
test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes
- test "${enable_rpz_nsip+set}" = set || enable_rpz_nsip=yes
- test "${enable_rpz_nsdname+set}" = set || enable_rpz_nsdname=yes
test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes
case "$host" in
*-darwin*)
@@ -386,17 +385,15 @@ AC_CHECK_FUNCS(setegid setresgid)
# is reported to not support "static inline" (RT #1212).
#
AC_MSG_CHECKING(for static inline breakage)
-AC_TRY_COMPILE(, [
- foo1();
- }
-
+AC_TRY_COMPILE([
static inline int foo1() {
return 0;
}
static inline int foo2() {
return foo1();
- ],
+ }
+ ], [foo1();],
[AC_MSG_RESULT(no)],
[AC_MSG_RESULT(yes)
AC_DEFINE(inline, ,[Define to empty if your compiler does not support "static inline".])])
@@ -471,7 +468,7 @@ AC_ARG_ENABLE(newstats,
[ --enable-newstats use the new statistics])
case "$enable_newstats" in
yes)
- AC_DEFINE(NEWSTATS, [], [Use the new XML schema for statistics])
+ AC_DEFINE(NEWSTATS, 1, [Use the new XML schema for statistics])
;;
*)
;;
@@ -629,12 +626,16 @@ case "$use_openssl" in
AC_MSG_RESULT(no)
DST_OPENSSL_INC=""
USE_OPENSSL=""
+ OPENSSLGOSTLINKOBJS=""
+ OPENSSLGOSTLINKSRS=""
OPENSSLLINKOBJS=""
OPENSSLLINKSRCS=""
;;
auto)
DST_OPENSSL_INC=""
USE_OPENSSL=""
+ OPENSSLGOSTLINKOBJS=""
+ OPENSSLGOSTLINKSRS=""
OPENSSLLINKOBJS=""
OPENSSLLINKSRCS=""
AC_MSG_ERROR(
@@ -882,10 +883,12 @@ int main() {
esac
case $have_gost in
yes)
- OPENSSL_GOST="yes"
- AC_DEFINE(HAVE_OPENSSL_GOST, 1,
- [Define if your OpenSSL version supports GOST.])
- ;;
+ OPENSSL_GOST="yes"
+ OPENSSLGOSTLINKOBJS='${OPENSSLGOSTLINKOBJS}'
+ OPENSSLGOSTLINKSRCS='${OPENSSLGOSTLINKSRCS}'
+ AC_DEFINE(HAVE_OPENSSL_GOST, 1,
+ [Define if your OpenSSL version supports GOST.])
+ ;;
*)
;;
esac
@@ -904,6 +907,8 @@ esac
AC_SUBST(USE_OPENSSL)
AC_SUBST(DST_OPENSSL_INC)
+AC_SUBST(OPENSSLGOSTLINKOBJS)
+AC_SUBST(OPENSSLGOSTLINKSRCS)
AC_SUBST(OPENSSLLINKOBJS)
AC_SUBST(OPENSSLLINKSRCS)
AC_SUBST(OPENSSL_ECDSA)
@@ -2956,9 +2961,9 @@ esac
# Enable response policy rewriting using NS IP addresses
#
AC_ARG_ENABLE(rpz-nsip,
- [ --enable-rpz-nsip enable rpz-nsip rules [[default=no]]],
+ [ --disable-rpz-nsip disable rpz-nsip rules [[default=enabled]]],
enable_nsip="$enableval",
- enable_nsip="no")
+ enable_nsip="yes")
case "$enable_nsip" in
yes)
AC_DEFINE(ENABLE_RPZ_NSIP, 1,
@@ -2974,9 +2979,9 @@ esac
# Enable response policy rewriting using NS name
#
AC_ARG_ENABLE(rpz-nsdname,
- [ --enable-rpz-nsdname enable rpz-nsdname rules [[default=no]]],
+ [ --disable-rpz-nsdname disable rpz-nsdname rules [[default=enabled]]],
enable_nsdname="$enableval",
- enable_nsdname="no")
+ enable_nsdname="yes")
case "$enable_nsdname" in
yes)
AC_DEFINE(ENABLE_RPZ_NSDNAME, 1,
@@ -3286,6 +3291,9 @@ if test "$atf" != no; then
STD_CINCLUDES="$STD_CINCLUDES -I$atf/include"
ATFBIN="$atf/bin"
ATFLIBS="-L$atf/lib -latf-c"
+ if test "$want_openssl_hash" = yes; then
+ ATFLIBS="-L$atf/lib -latf-c $DNS_CRYPTO_LIBS"
+ fi
UNITTESTS=tests
fi
AC_SUBST(ATFBIN)
@@ -3330,6 +3338,8 @@ AC_SUBST_FILE(BIND9_MAKE_RULES)
BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
. $srcdir/version
+BIND9_PRODUCT="PRODUCT=\"${PRODUCT}\""
+AC_SUBST(BIND9_PRODUCT)
BIND9_VERSION="VERSION=${MAJORVER}.${MINORVER}${PATCHVER:+.}${PATCHVER}${RELEASETYPE}${RELEASEVER}"
AC_SUBST(BIND9_VERSION)
diff --git a/contrib/dlz/example/README b/contrib/dlz/example/README
index 3468b6d8..eb99b48b 100644
--- a/contrib/dlz/example/README
+++ b/contrib/dlz/example/README
@@ -55,8 +55,8 @@ a particular name depending on the network from which the query arrived.)
IMPLEMENTATION NOTES:
The minimal set of type definitions, prototypes, and macros needed
-for implementing a DLZ driver is in dlz_minimal.h. Copy this header
-file into your source tree when creating an external DLZ module.
+for implementing a DLZ driver is in ../modules/dlz_minimal.h. Copy this
+header file into your source tree when creating an external DLZ module.
The DLZ dlopen driver provides a set of callback functions:
@@ -90,11 +90,12 @@ are mandatory, others optional).
Required for alL external DLZ modules, to indicate the version number
of the DLZ dlopen driver that this module supports. It should return
- the value DLZ_DLOPEN_VERSION, which is defined in dlz_minimal.h and
- is currently 2. 'flags' is updated to indicate capabilities
- of the module. In particular, if the module is thread-safe then it
- sets 'flags' to include DNS_SDLZFLAG_THREADSAFE. (Other capability
- flags may be added in the future.)
+ the value DLZ_DLOPEN_VERSION, which is defined in the file
+ contrib/dlz/modules/dlz_minimal.h and is currently 3. 'flags' is
+ updated to indicate capabilities of the module. In particular, if
+ the module is thread-safe then it sets 'flags' to include
+ DNS_SDLZFLAG_THREADSAFE. (Other capability flags may be added in
+ the future.)
- isc_result_t dlz_create(const char *dlzname,
unsigned int argc, char *argv[],
diff --git a/contrib/dlz/example/dlz_example.c b/contrib/dlz/example/dlz_example.c
index efd1f9c5..0ebc18e2 100644
--- a/contrib/dlz/example/dlz_example.c
+++ b/contrib/dlz/example/dlz_example.c
@@ -27,7 +27,7 @@
#include <stdarg.h>
#include <stdint.h>
-#include "dlz_minimal.h"
+#include "../modules/dlz_minimal.h"
#ifdef WIN32
#define STRTOK_R(a, b, c) strtok_s(a, b, c)
diff --git a/contrib/dlz/modules/bdbhpt/Makefile b/contrib/dlz/modules/bdbhpt/Makefile
new file mode 100644
index 00000000..76f590a8
--- /dev/null
+++ b/contrib/dlz/modules/bdbhpt/Makefile
@@ -0,0 +1,18 @@
+prefix = /usr
+libdir = $(prefix)/lib/bind9
+
+CFLAGS=-fPIC -g
+BDB_LIBS=-ldb
+
+all: dlz_bdbhpt_dynamic.so
+
+dlz_bdbhpt_dynamic.so:
+ $(CC) $(CFLAGS) -shared -o dlz_bdbhpt_dynamic.so \
+ dlz_bdbhpt_dynamic.c $(BDB_LIBS)
+
+clean:
+ rm -f dlz_bdbhpt_dynamic.so
+
+install: dlz_bdbhpt_dynamic.so
+ mkdir -p $(DESTDIR)$(libdir)
+ install dlz_bdbhpt_dynamic.so $(DESTDIR)$(libdir)
diff --git a/contrib/dlz/modules/bdbhpt/README.md b/contrib/dlz/modules/bdbhpt/README.md
new file mode 100644
index 00000000..10dd81e2
--- /dev/null
+++ b/contrib/dlz/modules/bdbhpt/README.md
@@ -0,0 +1,89 @@
+dlz-bdbhpt-dynamic
+==================
+
+A Bind 9 Dynamically Loadable BerkeleyDB High Performance Text Driver
+
+Summary
+-------
+
+This is an attempt to port the original Bind 9 DLZ bdbhpt_driver.c as
+found in the Bind 9 source tree into the new DLZ dlopen driver API.
+The goals of this project are as follows:
+
+* Provide DLZ facilities to OEM-supported Bind distributions
+* Support both v1 (Bind 9.8) and v2 (Bind 9.9) of the dlopen() DLZ API
+
+Requirements
+------------
+
+You will need the following:
+ * Bind 9.8 or higher with the DLZ dlopen driver enabled
+ * BerkeleyDB libraries and header files
+ * A C compiler
+
+This distribution have been successfully installed and tested on
+Ubuntu 12.04.
+
+Installation
+------------
+
+With the above requirements satisfied perform the following steps:
+
+1. Ensure the symlink for dlz_minimal.h points at the correct header
+ file matching your Bind version
+2. Run: make
+3. Run: sudo make install # this will install dlz_bdbhpt_dynamic.so
+ into /usr/lib/bind9/
+4. Add a DLZ statement similar to the example shown in
+ example/dlz.conf into your Bind configuration
+5. Ensure your BerkeleyDB home-directory exists and can be written to
+ by the bind user
+6. If you're running an AppArmor enabled Bind, consider adding content
+ included within example/apparmor.d-local-usr.sbin.named within
+ /etc/apparmor.d/local/usr.sbin.named
+7. Use the included testing/bdbhpt-populate.pl script to provide some
+ data for initial testing
+
+Usage
+-----
+
+Example usage is as follows:
+
+```
+dlz "bdbhpt_dynamic" {
+ database "dlopen /usr/lib/bind9/dlz_bdbhpt_dynamic.so T /var/cache/bind/dlz dnsdata.db";
+};
+```
+
+The arguments for the "database" line above are as follows:
+
+1. dlopen - Use the dlopen DLZ driver to dynamically load our compiled
+ driver
+2. The full path to your built dlz_bdbhpt_dynamic.so
+3. Single character specifying the mode to open your BerkeleyDB
+ environment:
+ * T - Transactional Mode - Highest safety, lowest speed.
+ * C - Concurrent Mode - Lower safety (no rollback), higher speed.
+ * P - Private Mode - No interprocess communication & no locking.
+ Lowest safety, highest speed.
+4. Directory containing your BerkeleyDB - this is where the BerkeleyDB
+ environment will be created.
+5. Filename within this directory containing your BerkeleyDB tables.
+
+A copy of the above Bind configuration is included within
+example/dlz.conf.
+
+Author
+------
+
+The person responsible for this is:
+
+ Mark Goldfinch <g@g.org.nz>
+
+The code is maintained at:
+
+ https://github.com/goldie80/dlz-bdbhpt-dynamic
+
+There is very little in the way of original code in this work,
+however, original license conditions from both bdbhpt_driver.c and
+dlz_example.c are maintained in the dlz_bdbhpt_dynamic.c.
diff --git a/contrib/dlz/modules/bdbhpt/dlz_bdbhpt_dynamic.c b/contrib/dlz/modules/bdbhpt/dlz_bdbhpt_dynamic.c
new file mode 100644
index 00000000..ecfa1018
--- /dev/null
+++ b/contrib/dlz/modules/bdbhpt/dlz_bdbhpt_dynamic.c
@@ -0,0 +1,836 @@
+/*
+ * Copyright (C) 2002 Stichting NLnet, Netherlands, stichting@nlnet.nl.
+ *
+ * Permission to use, copy, modify, and 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 STICHTING NLNET
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * STICHTING NLNET 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.
+ *
+ * The development of Dynamically Loadable Zones (DLZ) for Bind 9 was
+ * conceived and contributed by Rob Butler.
+ *
+ * Permission to use, copy, modify, and 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 ROB BUTLER
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * ROB BUTLER 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.
+ */
+
+/*
+ * Copyright (C) 2011 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$ */
+
+/*
+ * This is simply a merge of Andrew Tridgell's dlz_example.c and the
+ * original bdb_bdbhpt_driver.c
+ *
+ * This provides the externally loadable bdbhpt DLZ driver, without
+ * update support
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+#include <stdint.h>
+
+#include <db.h>
+
+#include "../dlz_minimal.h"
+
+#ifdef WIN32
+#define STRTOK_R(a, b, c) strtok_s(a, b, c)
+#elif defined(_REENTRANT)
+#define STRTOK_R(a, b, c) strtok_r(a, b, c)
+#else
+#define STRTOK_R(a, b, c) strtok(a, b)
+#endif
+
+/* should the bdb driver use threads. */
+#ifdef ISC_PLATFORM_USETHREADS
+#define bdbhpt_threads DB_THREAD
+#else
+#define bdbhpt_threads 0
+#endif
+
+/* bdbhpt database names */
+#define dlz_data "dns_data"
+#define dlz_zone "dns_zone"
+#define dlz_xfr "dns_xfr"
+#define dlz_client "dns_client"
+
+#define dlz_bdbhpt_dynamic_version "0.1"
+
+/*
+ * This structure contains all our DB handles and helper functions we
+ * inherit from the dlz_dlopen driver
+ *
+ */
+typedef struct bdbhpt_instance {
+ DB_ENV *dbenv; /* bdbhpt environment */
+ DB *data; /* dns_data database handle */
+ DB *zone; /* zone database handle */
+ DB *xfr; /* zone xfr database handle */
+ DB *client; /* client database handle */
+
+ /* Helper functions from the dlz_dlopen driver */
+ log_t *log;
+ dns_sdlz_putrr_t *putrr;
+ dns_sdlz_putnamedrr_t *putnamedrr;
+ dns_dlz_writeablezone_t *writeable_zone;
+} bdbhpt_instance_t;
+
+
+typedef struct bdbhpt_parsed_data {
+ char *host;
+ char *type;
+ int ttl;
+ char *data;
+} bdbhpt_parsed_data_t;
+
+/*
+ * Reverses a string in place.
+ */
+static char
+*bdbhpt_strrev(char *str) {
+ char *p1, *p2;
+
+ if (! str || ! *str)
+ return str;
+ for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2) {
+ *p1 ^= *p2;
+ *p2 ^= *p1;
+ *p1 ^= *p2;
+ }
+ return str;
+}
+
+/*
+ * Parses the DBT from the Berkeley DB into a parsed_data record
+ * The parsed_data record should be allocated before and passed into the
+ * bdbhpt_parse_data function. The char (type & data) fields should not
+ * be "free"d as that memory is part of the DBT data field. It will be
+ * "free"d when the DBT is freed.
+ */
+static isc_result_t
+bdbhpt_parse_data(log_t *log, char *in, bdbhpt_parsed_data_t *pd) {
+ char *endp, *ttlStr;
+ char *tmp = in;
+ char *lastchar = (char *) &tmp[strlen(tmp)];
+
+ /*
+ * String should be formatted as:
+ * replication_id
+ * (a space)
+ * host_name
+ * (a space)
+ * ttl
+ * (a space)
+ * type
+ * (a space)
+ * remaining data
+ *
+ * examples:
+ *
+ * 9191 host 10 A 127.0.0.1
+ * server1_212 host 10 A 127.0.0.2
+ * {xxxx-xxxx-xxxx-xxxx-xxxx} host 10 MX 20 mail.example.com
+ */
+
+ /*
+ * we don't need the replication id, so don't
+ * bother saving a pointer to it.
+ */
+
+ /* find space after replication id */
+ tmp = strchr(tmp, ' ');
+ /* verify we found a space */
+ if (tmp == NULL)
+ return ISC_R_FAILURE;
+ /* make sure it is safe to increment pointer */
+ if (++tmp > lastchar)
+ return ISC_R_FAILURE;
+
+ /* save pointer to host */
+ pd->host = tmp;
+
+ /* find space after host and change it to a '\0' */
+ tmp = strchr(tmp, ' ');
+ /* verify we found a space */
+ if (tmp == NULL)
+ return ISC_R_FAILURE;
+ /* change the space to a null (string terminator) */
+ tmp[0] = '\0';
+ /* make sure it is safe to increment pointer */
+ if (++tmp > lastchar)
+ return ISC_R_FAILURE;
+
+ /* save pointer to ttl string */
+ ttlStr = tmp;
+
+ /* find space after ttl and change it to a '\0' */
+ tmp = strchr(tmp, ' ');
+ /* verify we found a space */
+ if (tmp == NULL)
+ return ISC_R_FAILURE;
+ /* change the space to a null (string terminator) */
+ tmp[0] = '\0';
+ /* make sure it is safe to increment pointer */
+ if (++tmp > lastchar)
+ return ISC_R_FAILURE;
+
+ /* save pointer to dns type */
+ pd->type = tmp;
+
+ /* find space after type and change it to a '\0' */
+ tmp = strchr(tmp, ' ');
+ /* verify we found a space */
+ if (tmp == NULL)
+ return ISC_R_FAILURE;
+ /* change the space to a null (string terminator) */
+ tmp[0] = '\0';
+ /* make sure it is safe to increment pointer */
+ if (++tmp > lastchar)
+ return ISC_R_FAILURE;
+
+ /* save pointer to remainder of DNS data */
+ pd->data = tmp;
+
+ /* convert ttl string to integer */
+ pd->ttl = strtol(ttlStr, &endp, 10);
+ if (*endp != '\0' || pd->ttl < 0) {
+ log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: ttl must be a positive number");
+ return ISC_R_FAILURE;
+ }
+
+ /* if we get this far everything should have worked. */
+ return ISC_R_SUCCESS;
+}
+
+/*
+ * Return the version of the API
+ */
+int
+dlz_version(unsigned int *flags) {
+ UNUSED(flags);
+ return (DLZ_DLOPEN_VERSION);
+}
+
+/*
+ * Remember a helper function from the bind9 dlz_dlopen driver
+ */
+static void
+b9_add_helper(struct bdbhpt_instance *db,
+ const char *helper_name, void *ptr) {
+ if (strcmp(helper_name, "log") == 0)
+ db->log = (log_t *)ptr;
+ if (strcmp(helper_name, "putrr") == 0)
+ db->putrr = (dns_sdlz_putrr_t *)ptr;
+ if (strcmp(helper_name, "putnamedrr") == 0)
+ db->putnamedrr = (dns_sdlz_putnamedrr_t *)ptr;
+ if (strcmp(helper_name, "writeable_zone") == 0)
+ db->writeable_zone = (dns_dlz_writeablezone_t *)ptr;
+}
+
+/*
+ * Performs bdbhpt cleanup.
+ * Used by bdbhpt_create if there is an error starting up.
+ * Used by bdbhpt_destroy when the driver is shutting down.
+ */
+static void
+bdbhpt_cleanup(bdbhpt_instance_t *db) {
+ /* close databases */
+ if (db->data != NULL)
+ db->data->close(db->data, 0);
+ if (db->xfr != NULL)
+ db->xfr->close(db->xfr, 0);
+ if (db->zone != NULL)
+ db->zone->close(db->zone, 0);
+ if (db->client != NULL)
+ db->client->close(db->client, 0);
+
+ /* close environment */
+ if (db->dbenv != NULL)
+ db->dbenv->close(db->dbenv, 0);
+}
+
+/*
+ * Initialises, sets flags and then opens Berkeley databases.
+ *
+ */
+static isc_result_t
+bdbhpt_opendb(log_t *log, DB_ENV *db_env, DBTYPE db_type, DB **db, const char *db_name,
+ char *db_file, int flags) {
+ int result;
+
+ /* Initialise the database. */
+ if ((result = db_create(db, db_env, 0)) != 0) {
+ log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: could not initialize %s database. "
+ "BerkeleyDB error: %s",
+ db_name, db_strerror(result));
+ return ISC_R_FAILURE;
+ }
+
+ /* set database flags. */
+ if ((result = (*db)->set_flags(*db, flags)) != 0) {
+ log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: could not set flags for %s database. "
+ "BerkeleyDB error: %s",
+ db_name, db_strerror(result));
+ return ISC_R_FAILURE;
+ }
+
+ /* open the database. */
+ if ((result = (*db)->open(*db, NULL, db_file, db_name, db_type,
+ DB_RDONLY | bdbhpt_threads, 0)) != 0) {
+ log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: could not open %s database in %s. "
+ "BerkeleyDB error: %s",
+ db_name, db_file, db_strerror(result));
+ return ISC_R_FAILURE;
+ }
+
+ return ISC_R_SUCCESS;
+}
+
+
+/*
+ * Called to initialize the driver
+ */
+isc_result_t
+dlz_create(const char *dlzname, unsigned int argc, char *argv[],
+ void **dbdata, ...)
+{
+ isc_result_t result;
+ int bdbhptres;
+ int bdbFlags = 0;
+ bdbhpt_instance_t *db = NULL;
+
+ const char *helper_name;
+ va_list ap;
+
+ UNUSED(dlzname);
+
+ /* Allocate memory for our db structures and helper functions */
+ db = calloc(1, sizeof(struct bdbhpt_instance));
+ if (db == NULL)
+ return (ISC_R_NOMEMORY);
+
+ /* Fill in the helper functions */
+ va_start(ap, dbdata);
+ while ((helper_name = va_arg(ap, const char *)) != NULL) {
+ b9_add_helper(db, helper_name, va_arg(ap, void*));
+ }
+ va_end(ap);
+
+ /* verify we have 4 arg's passed to the driver */
+ if (argc != 4) {
+ db->log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: please supply 3 command line args. "
+ "You supplied: %s",
+ argc);
+ return (ISC_R_FAILURE);
+ }
+
+ switch((char) *argv[1]) {
+ /*
+ * Transactional mode. Highest safety - lowest speed.
+ */
+ case 'T':
+ case 't':
+ bdbFlags = DB_INIT_MPOOL | DB_INIT_LOCK |
+ DB_INIT_LOG | DB_INIT_TXN;
+ db->log(ISC_LOG_INFO,
+ "bdbhpt_dynamic: using transactional mode.");
+ break;
+
+ /*
+ * Concurrent mode. Lower safety (no rollback) -
+ * higher speed.
+ */
+ case 'C':
+ case 'c':
+ bdbFlags = DB_INIT_CDB | DB_INIT_MPOOL;
+ db->log(ISC_LOG_INFO,
+ "bdbhpt_dynamic: using concurrent mode.");
+ break;
+
+ /*
+ * Private mode. No inter-process communication & no locking.
+ * Lowest saftey - highest speed.
+ */
+ case 'P':
+ case 'p':
+ bdbFlags = DB_PRIVATE | DB_INIT_MPOOL;
+ db->log(ISC_LOG_INFO,
+ "bdbhpt_dynamic: using private mode.");
+ break;
+ default:
+ db->log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: operating mode must be set to P or C or T. "
+ "You specified '%s'",
+ argv[1]);
+ return (ISC_R_FAILURE);
+ }
+
+ /*
+ * create bdbhpt environment
+ * Basically bdbhpt allocates and assigns memory to db->dbenv
+ */
+ bdbhptres = db_env_create(&db->dbenv, 0);
+ if (bdbhptres != 0) {
+ db->log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: db environment could not be created. "
+ "BerkeleyDB error: %s",
+ db_strerror(bdbhptres));
+ result = ISC_R_FAILURE;
+ goto init_cleanup;
+ }
+
+ /* open bdbhpt environment */
+ bdbhptres = db->dbenv->open(db->dbenv, argv[2],
+ bdbFlags | bdbhpt_threads | DB_CREATE, 0);
+ if (bdbhptres != 0) {
+ db->log(ISC_LOG_ERROR,
+ "bdbhpt_dynamic: db environment at '%s' could not be opened. "
+ "BerkeleyDB error: %s",
+ argv[2], db_strerror(bdbhptres));
+ result = ISC_R_FAILURE;
+ goto init_cleanup;
+ }
+
+ /* open dlz_data database. */
+ result = bdbhpt_opendb(db->log, db->dbenv, DB_UNKNOWN, &db->data,
+ dlz_data, argv[3], DB_DUP | DB_DUPSORT);
+ if (result != ISC_R_SUCCESS)
+ goto init_cleanup;
+
+ /* open dlz_xfr database. */
+ result = bdbhpt_opendb(db->log, db->dbenv, DB_UNKNOWN, &db->xfr,
+ dlz_xfr, argv[3], DB_DUP | DB_DUPSORT);
+ if (result != ISC_R_SUCCESS)
+ goto init_cleanup;
+
+ /* open dlz_zone database. */
+ result = bdbhpt_opendb(db->log, db->dbenv, DB_UNKNOWN, &db->zone,
+ dlz_zone, argv[3], 0);
+ if (result != ISC_R_SUCCESS)
+ goto init_cleanup;
+
+ /* open dlz_client database. */
+ result = bdbhpt_opendb(db->log, db->dbenv, DB_UNKNOWN, &db->client,
+ dlz_client, argv[3], DB_DUP | DB_DUPSORT);
+ if (result != ISC_R_SUCCESS)
+ goto init_cleanup;
+
+ *dbdata = db;
+
+ db->log(ISC_LOG_INFO,
+ "bdbhpt_dynamic: version %s, started", dlz_bdbhpt_dynamic_version);
+ return(ISC_R_SUCCESS);
+
+ init_cleanup:
+ bdbhpt_cleanup(db);
+ return result;
+}
+
+/*
+ * Shut down the backend
+ */
+void
+dlz_destroy(void *dbdata) {
+ struct bdbhpt_instance *db = (struct bdbhpt_instance *)dbdata;
+
+ db->log(ISC_LOG_INFO,
+ "dlz_bdbhpt_dynamic (%s): shutting down", dlz_bdbhpt_dynamic_version);
+ bdbhpt_cleanup((bdbhpt_instance_t *) dbdata);
+ free (db);
+}
+
+
+/*
+ * See if we handle a given zone
+ */
+#if DLZ_DLOPEN_VERSION < 3
+isc_result_t
+dlz_findzonedb(void *dbdata, const char *name)
+#else
+isc_result_t
+dlz_findzonedb(void *dbdata, const char *name,
+ dns_clientinfomethods_t *methods,
+ dns_clientinfo_t *clientinfo)
+#endif
+{
+ isc_result_t result;
+ bdbhpt_instance_t *db = (bdbhpt_instance_t *) dbdata;
+ DBT key, data;
+
+ memset(&key, 0, sizeof(DBT));
+ memset(&data, 0, sizeof(DBT));
+ data.flags = DB_DBT_MALLOC;
+
+#if DLZ_DLOPEN_VERSION >= 3
+ UNUSED(methods);
+ UNUSED(clientinfo);
+#endif
+
+ key.data = strdup(name);
+
+ if (key.data == NULL)
+ return (ISC_R_NOMEMORY);
+
+ /*
+ * reverse string to take advantage of BDB locality of reference
+ * if we need futher lookups because the zone doesn't match the
+ * first time.
+ */
+ key.data = bdbhpt_strrev(key.data);
+ key.size = strlen(key.data);
+
+ switch(db->zone->get(db->zone, NULL, &key, &data, 0)) {
+ case DB_NOTFOUND:
+ result = ISC_R_NOTFOUND;
+ break;
+ case 0:
+ result = ISC_R_SUCCESS;
+ break;
+ default:
+ result = ISC_R_FAILURE;
+ }
+
+ /* free any memory duplicate string in the key field */
+ if (key.data != NULL)
+ free(key.data);
+
+ /* free any memory allocated to the data field. */
+ if (data.data != NULL)
+ free(data.data);
+
+ return result;
+}
+
+/*
+ * Look up one record in the database.
+ *
+ */
+#if DLZ_DLOPEN_VERSION == 1
+isc_result_t dlz_lookup(const char *zone, const char *name,
+ void *dbdata, dns_sdlzlookup_t *lookup)
+#else
+isc_result_t dlz_lookup(const char *zone, const char *name, void *dbdata,
+ dns_sdlzlookup_t *lookup,
+ dns_clientinfomethods_t *methods,
+ dns_clientinfo_t *clientinfo)
+#endif
+{
+
+ isc_result_t result = ISC_R_NOTFOUND;
+ bdbhpt_instance_t *db = (bdbhpt_instance_t *) dbdata;
+ DBC *data_cursor = NULL;
+ DBT key, data;
+ int bdbhptres;
+ int flags;
+
+ bdbhpt_parsed_data_t pd;
+ char *tmp = NULL;
+ char *keyStr = NULL;
+
+#if DLZ_DLOPEN_VERSION >= 2
+ UNUSED(methods);
+ UNUSED(clientinfo);
+#endif
+
+ memset(&key, 0, sizeof(DBT));
+ memset(&data, 0, sizeof(DBT));
+
+ key.size = strlen(zone) + strlen(name) + 1;
+
+ /* allocate mem for key */
+ key.data = keyStr = malloc((key.size + 1) * sizeof(char));
+
+ if (keyStr == NULL)
+ return ISC_R_NOMEMORY;
+
+ strcpy(keyStr, zone);
+ strcat(keyStr, " ");
+ strcat(keyStr, name);
+
+ /* get a cursor to loop through data */
+ if (db->data->cursor(db->data, NULL, &data_cursor, 0) != 0) {
+ result = ISC_R_FAILURE;
+ goto lookup_cleanup;
+ }
+
+ result = ISC_R_NOTFOUND;
+
+ flags = DB_SET;
+ while ((bdbhptres = data_cursor->c_get(data_cursor, &key, &data,
+ flags)) == 0) {
+
+ flags = DB_NEXT_DUP;
+ tmp = realloc(tmp, data.size + 1);
+ if (tmp == NULL)
+ goto lookup_cleanup;
+
+ strncpy(tmp, data.data, data.size);
+ tmp[data.size] = '\0';
+
+ if (bdbhpt_parse_data(db->log, tmp, &pd) != ISC_R_SUCCESS)
+ goto lookup_cleanup;
+
+ result = db->putrr(lookup, pd.type, pd.ttl, pd.data);
+
+ if (result != ISC_R_SUCCESS)
+ goto lookup_cleanup;
+ } /* end while loop */
+
+ lookup_cleanup:
+ /* get rid of cursor */
+ if (data_cursor != NULL)
+ data_cursor->c_close(data_cursor);
+
+ if (keyStr != NULL)
+ free(keyStr);
+ if (tmp != NULL)
+ free(tmp);
+
+ return result;
+}
+
+
+/*
+ * See if a zone transfer is allowed
+ */
+isc_result_t
+dlz_allowzonexfr(void *dbdata, const char *name, const char *client) {
+ isc_result_t result;
+ bdbhpt_instance_t *db = (bdbhpt_instance_t *) dbdata;
+ DBT key, data;
+
+ /* check to see if we are authoritative for the zone first. */
+#if DLZ_DLOPEN_VERSION >= 3
+ result = dlz_findzonedb(dbdata, name, NULL, NULL);
+#else
+ result = dlz_findzonedb(dbdata, name);
+#endif
+ if (result != ISC_R_SUCCESS)
+ return (ISC_R_NOTFOUND);
+
+ memset(&key, 0, sizeof(DBT));
+ key.flags = DB_DBT_MALLOC;
+ key.data = strdup(name);
+ if (key.data == NULL) {
+ result = ISC_R_NOMEMORY;
+ goto xfr_cleanup;
+ }
+ key.size = strlen(key.data);
+
+ memset(&data, 0, sizeof(DBT));
+ data.flags = DB_DBT_MALLOC;
+ data.data = strdup(client);
+ if (data.data == NULL) {
+ result = ISC_R_NOMEMORY;
+ goto xfr_cleanup;
+ }
+ data.size = strlen(data.data);
+
+ switch(db->client->get(db->client, NULL, &key, &data, DB_GET_BOTH)) {
+ case DB_NOTFOUND:
+ result = ISC_R_NOTFOUND;
+ break;
+ case 0:
+ result = ISC_R_SUCCESS;
+ break;
+ default:
+ result = ISC_R_FAILURE;
+ }
+
+ xfr_cleanup:
+
+ /* free any memory duplicate string in the key field */
+ if (key.data != NULL)
+ free(key.data);
+
+ /* free any memory allocated to the data field. */
+ if (data.data != NULL)
+ free(data.data);
+
+ return result;
+}
+
+/*
+ * Perform a zone transfer
+ *
+ * BDB does not allow a secondary index on a database that allows
+ * duplicates. We have a few options:
+ *
+ * 1) kill speed by having lookup method use a secondary db which
+ * is associated to the primary DB with the DNS data. Then have
+ * another secondary db for zone transfer which also points to
+ * the dns_data primary. NO - The point of this driver is
+ * lookup performance.
+ *
+ * 2) Blow up database size by storing DNS data twice. Once for
+ * the lookup (dns_data) database, and a second time for the zone
+ * transfer (dns_xfr) database. NO - That would probably require
+ * a larger cache to provide good performance. Also, that would
+ * make the DB larger on disk potentially slowing it as well.
+ *
+ * 3) Loop through the dns_xfr database with a cursor to get
+ * all the different hosts in a zone. Then use the zone & host
+ * together to lookup the data in the dns_data database. YES -
+ * This may slow down zone xfr's a little, but that's ok they
+ * don't happen as often and don't need to be as fast. We can
+ * also use this table when deleting a zone (The BDB driver
+ * is read only - the delete would be used during replication
+ * updates by a separate process).
+ */
+isc_result_t
+dlz_allnodes(const char *zone, void *dbdata, dns_sdlzallnodes_t *allnodes) {
+ isc_result_t result = ISC_R_NOTFOUND;
+ bdbhpt_instance_t *db = (bdbhpt_instance_t *) dbdata;
+ DBC *xfr_cursor = NULL;
+ DBC *dns_cursor = NULL;
+ DBT xfr_key, xfr_data, dns_key, dns_data;
+ int xfr_flags;
+ int dns_flags;
+ int bdbhptres;
+ bdbhpt_parsed_data_t pd;
+ char *tmp = NULL, *tmp_zone, *tmp_zone_host = NULL;
+
+ memset(&xfr_key, 0, sizeof(DBT));
+ memset(&xfr_data, 0, sizeof(DBT));
+ memset(&dns_key, 0, sizeof(DBT));
+ memset(&dns_data, 0, sizeof(DBT));
+
+ xfr_key.data = tmp_zone = strdup(zone);
+ if (xfr_key.data == NULL)
+ return (ISC_R_NOMEMORY);
+
+ xfr_key.size = strlen(xfr_key.data);
+
+ /* get a cursor to loop through dns_xfr table */
+ if (db->xfr->cursor(db->xfr, NULL, &xfr_cursor, 0) != 0) {
+ result = ISC_R_FAILURE;
+ goto allnodes_cleanup;
+ }
+
+ /* get a cursor to loop through dns_data table */
+ if (db->data->cursor(db->data, NULL, &dns_cursor, 0) != 0) {
+ result = ISC_R_FAILURE;
+ goto allnodes_cleanup;
+ }
+
+ xfr_flags = DB_SET;
+
+ /* loop through xfr table for specified zone. */
+ while ((bdbhptres = xfr_cursor->c_get(xfr_cursor, &xfr_key, &xfr_data,
+ xfr_flags)) == 0) {
+
+ xfr_flags = DB_NEXT_DUP;
+
+ /* +1 to allow for space between zone and host names */
+ dns_key.size = xfr_data.size + xfr_key.size + 1;
+
+ /* +1 to allow for null term at end of string. */
+ dns_key.data = tmp_zone_host = malloc(dns_key.size + 1);
+ if (dns_key.data == NULL)
+ goto allnodes_cleanup;
+
+ /*
+ * construct search key for dns_data.
+ * zone_name(a space)host_name
+ */
+ strcpy(dns_key.data, zone);
+ strcat(dns_key.data, " ");
+ strncat(dns_key.data, xfr_data.data, xfr_data.size);
+
+ dns_flags = DB_SET;
+
+ while ((bdbhptres = dns_cursor->c_get(dns_cursor, &dns_key,
+ &dns_data,
+ dns_flags)) == 0) {
+
+ dns_flags = DB_NEXT_DUP;
+
+ /* +1 to allow for null term at end of string. */
+ tmp = realloc(tmp, dns_data.size + 1);
+ if (tmp == NULL)
+ goto allnodes_cleanup;
+
+ /* copy data to tmp string, and append null term. */
+ strncpy(tmp, dns_data.data, dns_data.size);
+ tmp[dns_data.size] = '\0';
+
+ /* split string into dns data parts. */
+ if (bdbhpt_parse_data(db->log, tmp, &pd) != ISC_R_SUCCESS)
+ goto allnodes_cleanup;
+ result = db->putnamedrr(allnodes, pd.host,
+ pd.type, pd.ttl, pd.data);
+ if (result != ISC_R_SUCCESS)
+ goto allnodes_cleanup;
+
+ } /* end inner while loop */
+
+ /* clean up memory */
+ if (tmp_zone_host != NULL) {
+ free(tmp_zone_host);
+ tmp_zone_host = NULL;
+ }
+ } /* end outer while loop */
+
+ allnodes_cleanup:
+
+ /* free any memory */
+ if (tmp != NULL)
+ free(tmp);
+
+ if (tmp_zone_host != NULL)
+ free(tmp_zone_host);
+
+ if (tmp_zone != NULL)
+ free(tmp_zone);
+
+ /* get rid of cursors */
+ if (xfr_cursor != NULL)
+ xfr_cursor->c_close(xfr_cursor);
+
+ if (dns_cursor != NULL)
+ dns_cursor->c_close(dns_cursor);
+
+ return result;
+}
diff --git a/contrib/dlz/modules/bdbhpt/testing/bdbhpt-populate.pl b/contrib/dlz/modules/bdbhpt/testing/bdbhpt-populate.pl
new file mode 100755
index 00000000..909976a2
--- /dev/null
+++ b/contrib/dlz/modules/bdbhpt/testing/bdbhpt-populate.pl
@@ -0,0 +1,232 @@
+#!/usr/bin/perl -w
+use strict;
+use BerkeleyDB;
+use Getopt::Long;
+
+my $opt = {};
+if (!GetOptions($opt, qw/bdb|b:s input|i:s zones|z:s help|h/)) {
+ usage('GetOptions processing failed.');
+ exit 1;
+}
+
+if ($opt->{help}) {
+ usage();
+ exit 0;
+}
+
+my $db_file = $opt->{bdb};
+if (!defined $db_file || $db_file eq '') {
+ usage('Please specify an output BerkeleyDB filename.');
+ exit 1;
+}
+
+my $input_file = $opt->{input};
+if (!defined $input_file || $input_file eq '') {
+ usage('Please specify an input records file.');
+ exit 1;
+}
+
+my $zone_list = $opt->{zones};
+if (!defined $zone_list || $zone_list eq '') {
+ usage('Please specify a space seperated list of zones');
+ exit 1;
+}
+
+my $records = [];
+my $unique_names = [];
+populate_records(records=>$records, input_file=>$input_file, unique_names=>$unique_names);
+
+my $flags = DB_CREATE;
+
+my $dns_data = new BerkeleyDB::Hash
+ -Filename => $db_file,
+ -Flags => $flags,
+ -Property => DB_DUP | DB_DUPSORT,
+ -Subname => "dns_data"
+ || die "Cannot create dns_data: $BerkeleyDB::Error";
+
+my $replId = 0;
+my @zones = split(/\s+/, $zone_list);
+foreach my $zone (@zones) {
+ foreach my $r (@$records) {
+ my $name = $r->{name};
+ my $ttl = $r->{ttl};
+ my $type = $r->{type};
+ my $data = $r->{data};
+
+ $data =~ s/\%zone\%/$zone/g;
+ $data =~ s/\%driver\%/bdbhpt-dynamic/g;
+
+ my $row_name = "$zone $name";
+ my $row_value = "$replId $name $ttl $type $data";
+ if ($dns_data->db_put($row_name, $row_value) != 0) {
+ die "Cannot add record '$row_name' -> '$row_value' to dns_data: $BerkeleyDB::Error";
+ }
+ $replId++;
+ }
+}
+
+$dns_data->db_close();
+
+my $dns_xfr = new BerkeleyDB::Hash
+ -Filename => $db_file,
+ -Flags => $flags,
+ -Property => DB_DUP | DB_DUPSORT,
+ -Subname => "dns_xfr"
+ or die "Cannot create dns_xfr: $BerkeleyDB::Error";
+
+foreach my $zone (@zones) {
+ foreach my $name (@$unique_names) {
+ if ($dns_xfr->db_put($zone, $name) != 0) {
+ die "Cannot add record '$zone' -> '$name' to dns_xfr: $BerkeleyDB::Error";
+ }
+ }
+}
+
+$dns_xfr->db_close();
+
+my $dns_client = new BerkeleyDB::Hash
+ -Filename => $db_file,
+ -Flags => $flags,
+ -Property => DB_DUP | DB_DUPSORT,
+ -Subname => "dns_client"
+ or die "Cannot create dns_client: $BerkeleyDB::Error";
+
+foreach my $zone (@zones) {
+ my $ip = '127.0.0.1';
+ if ($dns_client->db_put($zone, $ip) != 0) {
+ die "Cannot add record '$zone' -> '$ip' to dns_client: $BerkeleyDB::Error";
+ }
+}
+
+$dns_client->db_close();
+
+my $dns_zone = new BerkeleyDB::Btree
+ -Filename => $db_file,
+ -Flags => $flags,
+ -Property => 0,
+ -Subname => "dns_zone"
+ or die "Cannot create dns_zone: $BerkeleyDB::Error";
+
+foreach my $zone (@zones) {
+ my $reversed_zone = reverse($zone);
+ if ($dns_zone->db_put($reversed_zone, "1") != 0) {
+ die "Cannot add record '$reversed_zone' -> '1' to dns_zone: $BerkeleyDB::Error";
+ }
+};
+
+$dns_zone->db_close();
+
+exit 0;
+
+sub usage {
+ my ($message) = @_;
+ if (defined $message && $message ne '') {
+ print STDERR $message . "\n\n";
+ }
+
+ print STDERR "usage: $0 --bdb=<bdb-file> --input=<input-file> --zones=<zone-list>\n\n";
+ print STDERR "\tbdb-file: The output BerkeleyDB file you wish to create and use with bdbhpt-dynamic\n\n";
+ print STDERR "\tinput-file: The input text-file containing records to populate within your zones\n\n";
+ print STDERR "\tzone-list: The space-seperated list of zones you wish to create\n\n";
+}
+
+sub populate_records {
+ my (%args) = @_;
+ my $records = $args{records};
+ my $input_file = $args{input_file};
+ my $unique_names = $args{unique_names};
+
+ my %unique;
+
+ open(RECORDS, $input_file) || die "unable to open $input_file: $!";
+ while (<RECORDS>) {
+ chomp;
+ s/\#.*$//;
+ s/^\s+//;
+ if ($_ eq '') {
+ next;
+ }
+ my ($name, $ttl, $type, $data) = split(/\s+/, $_, 4);
+ my $record = { name=>$name, ttl=>$ttl, type=>$type, data=>$data };
+ if (validate_record($record)) {
+ push @$records, $record;
+ $unique{$name} = 1;
+ }
+ }
+ close(RECORDS);
+
+ foreach my $name (sort keys %unique) {
+ push @$unique_names, $name;
+ }
+}
+
+# This could probably do more in-depth tests, but these tests are better than nothing!
+sub validate_record {
+ my ($r) = @_;
+
+ # http://en.wikipedia.org/wiki/List_of_DNS_record_types
+ my @TYPES = qw/A AAAA AFSDB APL CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SPF SRV SSHFP TA TKEY TLSA TSIG TXT/;
+ my $VALID_TYPE = {};
+ foreach my $t (@TYPES) {
+ $VALID_TYPE->{$t} = 1;
+ }
+
+ if (!defined $r->{name} || $r->{name} eq '') {
+ die "Record name must be set";
+ }
+
+ if (!defined $r->{ttl} || $r->{ttl} eq '') {
+ die "Record TTL must be set";
+ }
+
+ if ($r->{ttl} =~ /\D/ || $r->{ttl} < 0) {
+ die "Record TTL must be an integer 0 or greater";
+ }
+
+ if (!defined $r->{type} || $r->{type} eq '') {
+ die "Record type must be set";
+ }
+
+ if (!$VALID_TYPE->{$r->{type}}) {
+ die "Unsupported record type: $r->{type}";
+ }
+
+ # Lets do some data validation for the records which will cause bind to crash if they're wrong
+ if ($r->{type} eq 'SOA') {
+ my $soa_error = "SOA records must take the form: 'server email refresh retry expire negative_cache_ttl'";
+ my ($server, $email, $version, $refresh, $retry, $expire, $negative_cache_ttl) = split(/\s+/, $r->{data});
+ if (!defined $server || $server eq '') {
+ die "$soa_error, missing server";
+ }
+ if (!defined $email || $email eq '') {
+ die "$soa_error, missing email";
+ }
+ if (!defined $refresh || $refresh eq '') {
+ die "$soa_error, missing refresh";
+ }
+ if ($refresh =~ /\D/ || $refresh <= 0) {
+ die "$soa_error, refresh must be an integer greater than 0";
+ }
+ if (!defined $retry || $retry eq '') {
+ die "$soa_error, missing retry";
+ }
+ if ($retry =~ /\D/ || $retry <= 0) {
+ die "$soa_error, retry must be an integer greater than 0";
+ }
+ if (!defined $expire || $expire eq '') {
+ die "$soa_error, missing expire";
+ }
+ if ($expire =~ /\D/ || $expire <= 0) {
+ die "$soa_error, expire must be an integer greater than 0";
+ }
+ if (!defined $negative_cache_ttl || $negative_cache_ttl eq '') {
+ die "$soa_error, missing negative cache ttl";
+ }
+ if ($negative_cache_ttl =~ /\D/ || $negative_cache_ttl <= 0) {
+ die "$soa_error, negative cache ttl must be an integer greater than 0";
+ }
+ }
+
+ return 1;
+}
diff --git a/contrib/dlz/modules/bdbhpt/testing/dns-data.txt b/contrib/dlz/modules/bdbhpt/testing/dns-data.txt
new file mode 100644
index 00000000..7ad5be90
--- /dev/null
+++ b/contrib/dlz/modules/bdbhpt/testing/dns-data.txt
@@ -0,0 +1,19 @@
+# Name TTL Type Data
+@ 3600 SOA ns1.%zone%. root.%zone%. 2012071700 604800 86400 2419200 10800
+@ 3600 NS ns1.%zone%
+@ 3600 MX 5 mx1.%zone%
+@ 3600 MX 10 mx2.%zone%
+@ 3600 TXT This zone brought to you by %driver%!
+jabber 3600 A 127.0.0.1
+mx1 3600 A 127.0.0.2
+mx2 3600 A 127.0.0.3
+jabber 3600 A 127.0.0.4
+ns1 3600 A 127.0.0.5
+ns1 3600 AAAA ::1
+voip 3600 A 127.0.0.6
+www 3600 CNAME www1.%zone%
+www1 3600 A 127.0.0.7
+_sip._udp 3600 SRV 5 0 5060 voip.%zone%
+_jabber._tcp 3600 SRV 5 0 5269 jabber.%zone%
+_xmpp-client._tcp 3600 SRV 5 0 5222 jabber.%zone%
+_xmpp-server._tcp 3600 SRV 5 0 5269 jabber.%zone%
diff --git a/contrib/dlz/example/dlz_minimal.h b/contrib/dlz/modules/dlz_minimal.h
index b0f41e77..44fb37d4 100644
--- a/contrib/dlz/example/dlz_minimal.h
+++ b/contrib/dlz/modules/dlz_minimal.h
@@ -36,7 +36,12 @@ typedef unsigned int isc_result_t;
typedef int isc_boolean_t;
typedef uint32_t dns_ttl_t;
+/*
+ * Define DLZ_DLOPEN_VERSION to different values to use older versions
+ * of the interface
+ */
#define DLZ_DLOPEN_VERSION 2
+#define DLZ_DLOPEN_AGE 0
/* return this in flags to dlz_version() if thread safe */
#define DNS_SDLZFLAG_THREADSAFE 0x00000001U
@@ -70,12 +75,13 @@ typedef void *dns_sdlzlookup_t;
typedef void *dns_sdlzallnodes_t;
typedef void *dns_view_t;
+#if DLZ_DLOPEN_VERSION > 1
/*
* Method and type definitions needed for retrieval of client info
* from the caller.
*/
typedef struct isc_sockaddr {
- union {
+ union {
struct sockaddr sa;
struct sockaddr_in sin;
struct sockaddr_in6 sin6;
@@ -84,7 +90,7 @@ typedef struct isc_sockaddr {
#endif
} type;
unsigned int length;
- void * link;
+ void * link;
} isc_sockaddr_t;
#define DNS_CLIENTINFO_VERSION 1
@@ -104,6 +110,7 @@ typedef struct dns_clientinfomethods {
uint16_t age;
dns_clientinfo_sourceip_t sourceip;
} dns_clientinfomethods_t;
+#endif /* DLZ_DLOPEN_VERSION > 1 */
/*
* Method definitions for callbacks provided by the dlopen driver
@@ -129,7 +136,6 @@ typedef isc_result_t dns_dlz_writeablezone_t(dns_view_t *view,
* prototypes for the functions you can include in your module
*/
-
/*
* dlz_version() is required for all DLZ external drivers. It should
* return DLZ_DLOPEN_VERSION. 'flags' is updated to indicate capabilities
@@ -145,7 +151,7 @@ dlz_version(unsigned int *flags);
*/
isc_result_t
dlz_create(const char *dlzname, unsigned int argc, char *argv[],
- void **dbdata, ...);
+ void **dbdata, ...);
/*
* dlz_destroy() is optional, and will be called when the driver is
@@ -163,11 +169,17 @@ dlz_findzonedb(void *dbdata, const char *name);
/*
* dlz_lookup is required for all DLZ external drivers
*/
+#if DLZ_DLOPEN_VERSION == 1
+isc_result_t
+dlz_lookup(const char *zone, const char *name, void *dbdata,
+ dns_sdlzlookup_t *lookup);
+#else /* DLZ_DLOPEN_VERSION > 1 */
isc_result_t
dlz_lookup(const char *zone, const char *name, void *dbdata,
dns_sdlzlookup_t *lookup,
dns_clientinfomethods_t *methods,
dns_clientinfo_t *clientinfo);
+#endif /* DLZ_DLOPEN_VERSION */
/*
* dlz_allowzonexfr() is optional, and should be supplied if you want to
@@ -176,7 +188,6 @@ dlz_lookup(const char *zone, const char *name, void *dbdata,
isc_result_t
dlz_allowzonexfr(void *dbdata, const char *name, const char *client);
-
/*
* dlz_allnodes() is optional, but must be supplied if supply a
* dlz_allowzonexfr() function
@@ -197,7 +208,7 @@ dlz_newversion(const char *zone, void *dbdata, void **versionp);
*/
void
dlz_closeversion(const char *zone, isc_boolean_t commit, void *dbdata,
- void **versionp);
+ void **versionp);
/*
* dlz_configure() is optional, but must be supplied if you want to support
@@ -210,11 +221,10 @@ dlz_configure(dns_view_t *view, void *dbdata);
* dlz_ssumatch() is optional, but must be supplied if you want to support
* dynamic updates
*/
-
isc_boolean_t
dlz_ssumatch(const char *signer, const char *name, const char *tcpaddr,
- const char *type, const char *key, uint32_t keydatalen,
- uint8_t *keydata, void *dbdata);
+ const char *type, const char *key, uint32_t keydatalen,
+ uint8_t *keydata, void *dbdata);
/*
* dlz_addrdataset() is optional, but must be supplied if you want to
@@ -222,14 +232,15 @@ dlz_ssumatch(const char *signer, const char *name, const char *tcpaddr,
*/
isc_result_t
dlz_addrdataset(const char *name, const char *rdatastr, void *dbdata,
- void *version);
+ void *version);
-/* dlz_subrdataset() is optional, but must be supplied if you want to
+/*
+ * dlz_subrdataset() is optional, but must be supplied if you want to
* support dynamic updates
*/
isc_result_t
dlz_subrdataset(const char *name, const char *rdatastr, void *dbdata,
- void *version);
+ void *version);
/*
* dlz_delrdataset() is optional, but must be supplied if you want to
@@ -237,4 +248,4 @@ dlz_subrdataset(const char *name, const char *rdatastr, void *dbdata,
*/
isc_result_t
dlz_delrdataset(const char *name, const char *type, void *dbdata,
- void *version);
+ void *version);
diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml
index 1ef0cbc7..6eceb42c 100644
--- a/doc/arm/Bv9ARM-book.xml
+++ b/doc/arm/Bv9ARM-book.xml
@@ -3384,31 +3384,45 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
</entry>
<entry colname="2">
<para>
- A number, the word <userinput>unlimited</userinput>,
- or the word <userinput>default</userinput>.
+ A 64-bit unsigned integer, or the keywords
+ <userinput>unlimited</userinput> or
+ <userinput>default</userinput>.
</para>
- <para>
- An <varname>unlimited</varname> <varname>size_spec</varname> requests unlimited
- use, or the maximum available amount. A <varname>default size_spec</varname> uses
- the limit that was in force when the server was started.
+ <para>
+ Integers may take values
+ 0 &lt;= value &lt;= 18446744073709551615, though
+ certain parameters may use a more limited range
+ within these extremes. In most cases, setting a
+ value to 0 does not literally mean zero; it means
+ "undefined" or "as big as psosible", depending on
+ the context. See the expalantions of particular
+ parameters that use <varname>size_spec</varname>
+ for details on how they interpret its use.
</para>
<para>
- A <varname>number</varname> can optionally be
- followed by a scaling factor:
+ Numeric values can optionally be followed by a
+ scaling factor:
<userinput>K</userinput> or <userinput>k</userinput>
for kilobytes,
<userinput>M</userinput> or <userinput>m</userinput>
for megabytes, and
- <userinput>G</userinput> or <userinput>g</userinput> for gigabytes,
- which scale by 1024, 1024*1024, and 1024*1024*1024
- respectively.
+ <userinput>G</userinput> or <userinput>g</userinput>
+ for gigabytes, which scale by 1024, 1024*1024, and
+ 1024*1024*1024 respectively.
</para>
- <para>
- The value must be representable as a 64-bit unsigned integer
- (0 to 18446744073709551615, inclusive).
- Using <varname>unlimited</varname> is the best
- way
- to safely set a really large number.
+ <para>
+ <varname>unlimited</varname> generally means
+ "as big as possible", though in certain contexts,
+ (including <option>max-cache-size</option>), it may
+ mean the largest possible 32-bit unsigned integer
+ (0xffffffff); this distinction can be important when
+ dealing with larger quantities.
+ <varname>unlimited</varname> is usually the best way
+ to safely set a very large number.
+ </para>
+ <para>
+ <varname>default</varname>
+ uses the limit that was in force when the server was started.
</para>
</entry>
</row>
@@ -5162,7 +5176,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
<optional> pid-file <replaceable>path_name</replaceable>; </optional>
<optional> recursing-file <replaceable>path_name</replaceable>; </optional>
<optional> statistics-file <replaceable>path_name</replaceable>; </optional>
- <optional> zone-statistics <replaceable>yes_or_no</replaceable>; </optional>
+ <optional> zone-statistics <replaceable>full</replaceable> | <replaceable>terse</replaceable> | <replaceable>none</replaceable>; </optional>
<optional> auth-nxdomain <replaceable>yes_or_no</replaceable>; </optional>
<optional> deallocate-on-exit <replaceable>yes_or_no</replaceable>; </optional>
<optional> dialup <replaceable>dialup_option</replaceable>; </optional>
@@ -5339,7 +5353,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
<optional> policy given | disabled | passthru | nxdomain | nodata | cname <replaceable>domain</replaceable> </optional>
<optional> recursive-only <replaceable>yes_or_no</replaceable> </optional> <optional> max-policy-ttl <replaceable>number</replaceable> </optional> ;
} <optional> recursive-only <replaceable>yes_or_no</replaceable> </optional> <optional> max-policy-ttl <replaceable>number</replaceable> </optional>
- <optional> break-dnssec <replaceable>yes_or_no</replaceable> </optional> ; </optional>
+ <optional> break-dnssec <replaceable>yes_or_no</replaceable> </optional> <optional> min-ns-dots <replaceable>number</replaceable> </optional> ; </optional>
};
</programlisting>
@@ -6045,7 +6059,39 @@ options {
</listitem>
</varlistentry>
-
+ <varlistentry>
+ <term><command>zone-statistics</command></term>
+ <listitem>
+ <para>
+ If <userinput>full</userinput>, the server will collect
+ statistical data on all zones (unless specifically
+ turned off on a per-zone basis by specifying
+ <command>zone-statistics terse</command> or
+ <command>zone-statistics none</command>
+ in the <command>zone</command> statement).
+ The default is <userinput>terse</userinput>, providing
+ minimal statistics on zones (including name and
+ current serial number, but not query type
+ counters).
+ </para>
+ <para>
+ These statistics may be accessed via the
+ <command>statistics-channel</command> or
+ using <command>rndc stats</command>, which
+ will dump them to the file listed
+ in the <command>statistics-file</command>. See
+ also <xref linkend="statsfile"/>.
+ </para>
+ <para>
+ For backward compatibility with earlier versions
+ of BIND 9, the <command>zone-statistics</command>
+ option can also accept <userinput>yes</userinput>
+ or <userinput>no</userinput>, which have the same
+ effect as <userinput>full</userinput> and
+ <userinput>terse</userinput>, respectively.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
<sect3 id="boolean_options">
@@ -6544,25 +6590,6 @@ options {
</varlistentry>
<varlistentry>
- <term><command>zone-statistics</command></term>
- <listitem>
- <para>
- If <userinput>yes</userinput>, the server will collect
- statistical data on all zones (unless specifically turned
- off
- on a per-zone basis by specifying <command>zone-statistics no</command>
- in the <command>zone</command> statement).
- The default is <userinput>no</userinput>.
- These statistics may be accessed
- using <command>rndc stats</command>, which will
- dump them to the file listed
- in the <command>statistics-file</command>. See
- also <xref linkend="statsfile"/>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term><command>use-ixfr</command></term>
<listitem>
<para>
@@ -8232,8 +8259,10 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
approaches
the specified size, some of the oldest transactions in the
journal
- will be automatically removed. The default is
- <literal>unlimited</literal>.
+ will be automatically removed. The largest permitted
+ value is 2 gigabytes. The default is
+ <literal>unlimited</literal>, which also
+ means 2 gigabytes.
This may also be set on a per-zone basis.
</para>
</listitem>
@@ -9047,12 +9076,16 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
built-in view (see <xref linkend="view_statement_grammar"/>) of
class
<command>CHAOS</command> which is separate from the
- default view of
- class <command>IN</command>; therefore, any global
- server options
- such as <command>allow-query</command> do not apply
- the these zones.
- If you feel the need to disable these zones, use the options
+ default view of class <command>IN</command>. Most global
+ configuration options (<command>allow-query</command>,
+ etc) will apply to this view, but some are locally
+ overridden: <command>notify</command>,
+ <command>recursion</command> and
+ <command>allow-new-zones</command> are
+ always set to <userinput>no</userinput>.
+ </para>
+ <para>
+ If you need to disable these zones, use the options
below, or hide the built-in <command>CHAOS</command>
view by
defining an explicit view of class <command>CHAOS</command>
@@ -9620,14 +9653,15 @@ deny-answer-aliases { "example.net"; };
They are encoded as subdomains of
<userinput>rpz-nsdomain</userinput> relativized
to the RPZ origin name.
- </para>
-
- <para>
NSIP triggers match IP addresses in A and
AAAA RRsets for domains that can be checked against NSDNAME
policy records.
NSIP triggers are encoded like IP triggers except as subdomains of
<userinput>rpz-nsip</userinput>.
+ NSDNAME and NSIP triggers are checked only for names with at
+ least <command>min-ns-dots</command> dots.
+ The default value of <command>min-ns-dots</command> is 1 to
+ exclude top level domains.
</para>
<para>
@@ -9667,17 +9701,6 @@ deny-answer-aliases { "example.net"; };
</para>
<para>
- Authority verification issues and variations in authority data
- can cause inconsistent results for NSIP and NSDNAME policy records.
- Glue NS records often differ from authoritative NS records.
- So they are available
- only when <acronym>BIND</acronym> is built with the
- <userinput>--enable-rpz-nsip</userinput> or
- <userinput>--enable-rpz-nsdname</userinput> options
- on the "configure" command line.
- </para>
-
- <para>
RPZ record sets are sets of any types of DNS record except
DNAME or DNSSEC that encode actions or responses to queries.
<itemizedlist>
@@ -9701,7 +9724,7 @@ deny-answer-aliases { "example.net"; };
walled garden's authority DNS server.
</listitem>
<listitem>The <command>PASSTHRU</command> policy is specified
- by a CNAME whose target is <command>rpz_passthru.</command>
+ by a CNAME whose target is <command>rpz-passthru.</command>
It causes the response to not be rewritten
and is most often used to "poke holes" in policies for
CIDR blocks.
@@ -9815,20 +9838,26 @@ bzone.domain.com CNAME garden.example.com.
ns.domain.com.rpz-nsdname CNAME .
48.zz.2.2001.rpz-nsip CNAME .
</programlisting>
- <para>
- Note: RPZ may impact server performance. Each configured
- response policy zone requires the server to perform one to four
- additional database lookups before a query can be answered.
+ <para>
+ RPZ can affect server performance.
+ Each configured response policy zone requires the server to
+ perform one to four additional database lookups before a
+ query can be answered.
For example, a DNS server with four policy zones, each with all
- four kinds of response triggers &mdash; QNAME, IP, NSIP, and
- NSDNAME &mdash; requires a total of 17 times as many database
+ four kinds of response triggers, QNAME, IP, NSIP, and
+ NSDNAME, requires a total of 17 times as many database
lookups as a similar DNS server with no response policy zones.
A <acronym>BIND9</acronym> server with adequate memory and one
response policy zone with QNAME and IP triggers might achieve a
- maximum queries-per-second rate about 20% lower. A server with
- four response policy zones with QNAME and IP triggers might
- have a maximum QPS rate about 50% lower.
- </para>
+ maximum queries-per-second rate about 20% lower.
+ A server with four response policy zones with QNAME and IP
+ triggers might have a maximum QPS rate about 50% lower.
+ </para>
+
+ <para>
+ Responses rewritten by RPZ are counted in the
+ <command>RPZRewrites</command> statistics.
+ </para>
</sect3>
</sect2>
@@ -10476,7 +10505,7 @@ view "external" {
<optional> pubkey <replaceable>number</replaceable> <replaceable>number</replaceable> <replaceable>number</replaceable> <replaceable>string</replaceable> ; </optional>
<optional> notify-source (<replaceable>ip4_addr</replaceable> | <constant>*</constant>) <optional>port <replaceable>ip_port</replaceable></optional> ; </optional>
<optional> notify-source-v6 (<replaceable>ip6_addr</replaceable> | <constant>*</constant>) <optional>port <replaceable>ip_port</replaceable></optional> ; </optional>
- <optional> zone-statistics <replaceable>yes_or_no</replaceable> ; </optional>
+ <optional> zone-statistics <replaceable>full</replaceable> | <replaceable>terse</replaceable> | <replaceable>none</replaceable>; </optional>
<optional> sig-validity-interval <replaceable>number</replaceable> <optional><replaceable>number</replaceable></optional> ; </optional>
<optional> sig-signing-nodes <replaceable>number</replaceable> ; </optional>
<optional> sig-signing-signatures <replaceable>number</replaceable> ; </optional>
@@ -10541,7 +10570,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea
<optional> use-alt-transfer-source <replaceable>yes_or_no</replaceable>; </optional>
<optional> notify-source (<replaceable>ip4_addr</replaceable> | <constant>*</constant>) <optional>port <replaceable>ip_port</replaceable></optional> ; </optional>
<optional> notify-source-v6 (<replaceable>ip6_addr</replaceable> | <constant>*</constant>) <optional>port <replaceable>ip_port</replaceable></optional> ; </optional>
- <optional> zone-statistics <replaceable>yes_or_no</replaceable> ; </optional>
+ <optional> zone-statistics <replaceable>full</replaceable> | <replaceable>terse</replaceable> | <replaceable>none</replaceable>; </optional>
<optional> sig-validity-interval <replaceable>number</replaceable> <optional><replaceable>number</replaceable></optional> ; </optional>
<optional> sig-signing-nodes <replaceable>number</replaceable> ; </optional>
<optional> sig-signing-signatures <replaceable>number</replaceable> ; </optional>
@@ -10868,16 +10897,41 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea
</entry>
<entry colname="2">
<para>
- Provides a source of answers when the normal resolution
- returns NXDOMAIN. Only one redirect zone is supported
- per view. <command>allow-query</command> can be used
- to restrict which clients see these answers.
+ Redirect zones are used to provide answers to
+ queries when normal resolution would result in
+ NXDOMAIN being returned.
+ Only one redirect zone is supported
+ per view. <command>allow-query</command> can be
+ used to restrict which clients see these answers.
</para>
<para>
If the client has requested DNSSEC records (DO=1) and
the NXDOMAIN response is signed then no substitution
will occur.
</para>
+ <para>
+ To redirect all NXDOMAIN responses to
+ 100.100.100.2 and
+ 2001:ffff:ffff::100.100.100.2, one would
+ configure a type redirect zone named ".",
+ with the zone file containing wildcard records
+ that point to the desired addresses:
+ <literal>"*. IN A 100.100.100.2"</literal>
+ and
+ <literal>"*. IN AAAA 2001:ffff:ffff::100.100.100.2"</literal>.
+ </para>
+ <para>
+ To redirect all Spanish names (under .ES) one
+ would use similar entries but with the names
+ "*.ES." instead of "*.". To redirect all
+ commercial Spanish names (under COM.ES) one
+ would use wildcard entries called "*.COM.ES.".
+ </para>
+ <para>
+ Note that the redirect zone supports all
+ possible types; it is not limited to A and
+ AAAA records.
+ </para>
</entry>
</row>
<row rowsep="0">
@@ -14491,6 +14545,19 @@ HOST-127.EXAMPLE. MX 0 .
</para>
</entry>
</row>
+ <row rowsep="0">
+ <entry colname="1">
+ <para><command>RPZRewrites</command></para>
+ </entry>
+ <entry colname="2">
+ <para><command></command></para>
+ </entry>
+ <entry colname="3">
+ <para>
+ Response policy zone rewrites.
+ </para>
+ </entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
diff --git a/doc/arm/Bv9ARM.ch04.html b/doc/arm/Bv9ARM.ch04.html
index 78478d12..a85fbdc4 100644
--- a/doc/arm/Bv9ARM.ch04.html
+++ b/doc/arm/Bv9ARM.ch04.html
@@ -70,33 +70,33 @@
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609137">Converting from insecure to secure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563504">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563540">Fully automatic zone signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563643">Private-type records</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563681">DNSKEY rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563830">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563863">Automatic key rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563890">NSEC3PARAM rollovers via UPDATE</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571955">Converting from NSEC to NSEC3</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571964">Converting from NSEC3 to NSEC</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571977">Converting from secure to insecure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572083">Periodic re-signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572092">NSEC3 and OPTOUT</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609329">Converting from insecure to secure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563559">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563595">Fully automatic zone signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563904">Private-type records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563941">DNSKEY rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563954">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572042">Automatic key rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572069">NSEC3PARAM rollovers via UPDATE</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572078">Converting from NSEC to NSEC3</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572088">Converting from NSEC3 to NSEC</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572101">Converting from secure to insecure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572138">Periodic re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572148">NSEC3 and OPTOUT</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572262">Validating Resolver</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572284">Authoritative Server</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608840">Validating Resolver</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608862">Authoritative Server</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#pkcs11">PKCS #11 (Cryptoki) support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2653420">Prerequisites</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609754">Building BIND 9 with PKCS#11</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636298">PKCS #11 Tools</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636329">Using the HSM</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636528">Specifying the engine on the command line</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636573">Running named with automatic zone re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2611765">Prerequisites</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609810">Building BIND 9 with PKCS#11</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610003">PKCS #11 Tools</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610034">Using the HSM</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636515">Specifying the engine on the command line</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636561">Running named with automatic zone re-signing</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572842">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
<dd><dl>
@@ -1065,7 +1065,7 @@ options {
from insecure to signed and back again. A secure zone can use
either NSEC or NSEC3 chains.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2609137"></a>Converting from insecure to secure</h3></div></div></div></div>
+<a name="id2609329"></a>Converting from insecure to secure</h3></div></div></div></div>
<p>Changing a zone from insecure to secure can be done in two
ways: using a dynamic DNS update, or the
<span><strong class="command">auto-dnssec</strong></span> zone option.</p>
@@ -1091,7 +1091,7 @@ options {
well. An NSEC chain will be generated as part of the initial
signing process.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563504"></a>Dynamic DNS update method</h3></div></div></div></div>
+<a name="id2563559"></a>Dynamic DNS update method</h3></div></div></div></div>
<p>To insert the keys via dynamic update:</p>
<pre class="screen">
% nsupdate
@@ -1127,7 +1127,7 @@ options {
<p>While the initial signing and NSEC/NSEC3 chain generation
is happening, other updates are possible as well.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563540"></a>Fully automatic zone signing</h3></div></div></div></div>
+<a name="id2563595"></a>Fully automatic zone signing</h3></div></div></div></div>
<p>To enable automatic signing, add the
<span><strong class="command">auto-dnssec</strong></span> option to the zone statement in
<code class="filename">named.conf</code>.
@@ -1183,7 +1183,7 @@ options {
configuration. If this has not been done, the configuration will
fail.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563643"></a>Private-type records</h3></div></div></div></div>
+<a name="id2563904"></a>Private-type records</h3></div></div></div></div>
<p>The state of the signing process is signaled by
private-type records (with a default type value of 65534). When
signing is complete, these records will have a nonzero value for
@@ -1224,12 +1224,12 @@ options {
<p>
</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563681"></a>DNSKEY rollovers</h3></div></div></div></div>
+<a name="id2563941"></a>DNSKEY rollovers</h3></div></div></div></div>
<p>As with insecure-to-secure conversions, rolling DNSSEC
keys can be done in two ways: using a dynamic DNS update, or the
<span><strong class="command">auto-dnssec</strong></span> zone option.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563830"></a>Dynamic DNS update method</h3></div></div></div></div>
+<a name="id2563954"></a>Dynamic DNS update method</h3></div></div></div></div>
<p> To perform key rollovers via dynamic update, you need to add
the <code class="filename">K*</code> files for the new keys so that
<span><strong class="command">named</strong></span> can find them. You can then add the new
@@ -1251,7 +1251,7 @@ options {
<span><strong class="command">named</strong></span> will clean out any signatures generated
by the old key after the update completes.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563863"></a>Automatic key rollovers</h3></div></div></div></div>
+<a name="id2572042"></a>Automatic key rollovers</h3></div></div></div></div>
<p>When a new key reaches its activation date (as set by
<span><strong class="command">dnssec-keygen</strong></span> or <span><strong class="command">dnssec-settime</strong></span>),
if the <span><strong class="command">auto-dnssec</strong></span> zone option is set to
@@ -1266,27 +1266,27 @@ options {
completes in 30 days, after which it will be safe to remove the
old key from the DNSKEY RRset.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2563890"></a>NSEC3PARAM rollovers via UPDATE</h3></div></div></div></div>
+<a name="id2572069"></a>NSEC3PARAM rollovers via UPDATE</h3></div></div></div></div>
<p>Add the new NSEC3PARAM record via dynamic update. When the
new NSEC3 chain has been generated, the NSEC3PARAM flag field
will be zero. At this point you can remove the old NSEC3PARAM
record. The old chain will be removed after the update request
completes.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2571955"></a>Converting from NSEC to NSEC3</h3></div></div></div></div>
+<a name="id2572078"></a>Converting from NSEC to NSEC3</h3></div></div></div></div>
<p>To do this, you just need to add an NSEC3PARAM record. When
the conversion is complete, the NSEC chain will have been removed
and the NSEC3PARAM record will have a zero flag field. The NSEC3
chain will be generated before the NSEC chain is
destroyed.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2571964"></a>Converting from NSEC3 to NSEC</h3></div></div></div></div>
+<a name="id2572088"></a>Converting from NSEC3 to NSEC</h3></div></div></div></div>
<p>To do this, use <span><strong class="command">nsupdate</strong></span> to
remove all NSEC3PARAM records with a zero flag
field. The NSEC chain will be generated before the NSEC3 chain is
removed.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2571977"></a>Converting from secure to insecure</h3></div></div></div></div>
+<a name="id2572101"></a>Converting from secure to insecure</h3></div></div></div></div>
<p>To convert a signed zone to unsigned using dynamic DNS,
delete all the DNSKEY records from the zone apex using
<span><strong class="command">nsupdate</strong></span>. All signatures, NSEC or NSEC3 chains,
@@ -1301,14 +1301,14 @@ options {
<span><strong class="command">allow</strong></span> instead (or it will re-sign).
</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2572083"></a>Periodic re-signing</h3></div></div></div></div>
+<a name="id2572138"></a>Periodic re-signing</h3></div></div></div></div>
<p>In any secure zone which supports dynamic updates, named
will periodically re-sign RRsets which have not been re-signed as
a result of some update action. The signature lifetimes will be
adjusted so as to spread the re-sign load over time rather than
all at once.</p>
<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="id2572092"></a>NSEC3 and OPTOUT</h3></div></div></div></div>
+<a name="id2572148"></a>NSEC3 and OPTOUT</h3></div></div></div></div>
<p>
<span><strong class="command">named</strong></span> only supports creating new NSEC3 chains
where all the NSEC3 records in the zone have the same OPTOUT
@@ -1330,7 +1330,7 @@ options {
configuration files.</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2572262"></a>Validating Resolver</h3></div></div></div>
+<a name="id2608840"></a>Validating Resolver</h3></div></div></div>
<p>To configure a validating resolver to use RFC 5011 to
maintain a trust anchor, configure the trust anchor using a
<span><strong class="command">managed-keys</strong></span> statement. Information about
@@ -1341,7 +1341,7 @@ options {
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2572284"></a>Authoritative Server</h3></div></div></div>
+<a name="id2608862"></a>Authoritative Server</h3></div></div></div>
<p>To set up an authoritative zone for RFC 5011 trust anchor
maintenance, generate two (or more) key signing keys (KSKs) for
the zone. Sign the zone with one of them; this is the "active"
@@ -1415,7 +1415,7 @@ $ <strong class="userinput"><code>dnssec-signzone -S -K keys example.net</code><
Debian Linux, Solaris x86 and Windows Server 2003.</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2653420"></a>Prerequisites</h3></div></div></div>
+<a name="id2611765"></a>Prerequisites</h3></div></div></div>
<p>See the HSM vendor documentation for information about
installing, initializing, testing and troubleshooting the
HSM.</p>
@@ -1492,7 +1492,7 @@ $ <strong class="userinput"><code>patch -p1 -d openssl-0.9.8s \
when we configure BIND 9.</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2608870"></a>Building OpenSSL for the AEP Keyper on Linux</h4></div></div></div>
+<a name="id2609198"></a>Building OpenSSL for the AEP Keyper on Linux</h4></div></div></div>
<p>The AEP Keyper is a highly secure key storage device,
but does not provide hardware cryptographic acceleration. It
can carry out cryptographic operations, but it is probably
@@ -1524,7 +1524,7 @@ $ <strong class="userinput"><code>./Configure linux-generic32 -m32 -pthread \
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609417"></a>Building OpenSSL for the SCA 6000 on Solaris</h4></div></div></div>
+<a name="id2609541"></a>Building OpenSSL for the SCA 6000 on Solaris</h4></div></div></div>
<p>The SCA-6000 PKCS #11 provider is installed as a system
library, libpkcs11. It is a true crypto accelerator, up to 4
times faster than any CPU, so the flavor shall be
@@ -1546,7 +1546,7 @@ $ <strong class="userinput"><code>./Configure solaris64-x86_64-cc \
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609466"></a>Building OpenSSL for SoftHSM</h4></div></div></div>
+<a name="id2609590"></a>Building OpenSSL for SoftHSM</h4></div></div></div>
<p>SoftHSM is a software library provided by the OpenDNSSEC
project (http://www.opendnssec.org) which provides a PKCS#11
interface to a virtual HSM, implemented in the form of encrypted
@@ -1606,12 +1606,12 @@ $ <strong class="userinput"><code>./Configure linux-x86_64 -pthread \
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2609754"></a>Building BIND 9 with PKCS#11</h3></div></div></div>
+<a name="id2609810"></a>Building BIND 9 with PKCS#11</h3></div></div></div>
<p>When building BIND 9, the location of the custom-built
OpenSSL library must be specified via configure.</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609763"></a>Configuring BIND 9 for Linux with the AEP Keyper</h4></div></div></div>
+<a name="id2609818"></a>Configuring BIND 9 for Linux with the AEP Keyper</h4></div></div></div>
<p>To link with the PKCS #11 provider, threads must be
enabled in the BIND 9 build.</p>
<p>The PKCS #11 library for the AEP Keyper is currently
@@ -1627,7 +1627,7 @@ $ <strong class="userinput"><code>./configure CC="gcc -m32" --enable-threads \
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609795"></a>Configuring BIND 9 for Solaris with the SCA 6000</h4></div></div></div>
+<a name="id2609918"></a>Configuring BIND 9 for Solaris with the SCA 6000</h4></div></div></div>
<p>To link with the PKCS #11 provider, threads must be
enabled in the BIND 9 build.</p>
<pre class="screen">
@@ -1645,7 +1645,7 @@ $ <strong class="userinput"><code>./configure CC="cc -xarch=amd64" --enable-thre
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609831"></a>Configuring BIND 9 for SoftHSM</h4></div></div></div>
+<a name="id2609955"></a>Configuring BIND 9 for SoftHSM</h4></div></div></div>
<pre class="screen">
$ <strong class="userinput"><code>cd ../bind9</code></strong>
$ <strong class="userinput"><code>./configure --enable-threads \
@@ -1662,7 +1662,7 @@ $ <strong class="userinput"><code>./configure --enable-threads \
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2636298"></a>PKCS #11 Tools</h3></div></div></div>
+<a name="id2610003"></a>PKCS #11 Tools</h3></div></div></div>
<p>BIND 9 includes a minimal set of tools to operate the
HSM, including
<span><strong class="command">pkcs11-keygen</strong></span> to generate a new key pair
@@ -1680,7 +1680,7 @@ $ <strong class="userinput"><code>./configure --enable-threads \
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2636329"></a>Using the HSM</h3></div></div></div>
+<a name="id2610034"></a>Using the HSM</h3></div></div></div>
<p>First, we must set up the runtime environment so the
OpenSSL and PKCS #11 libraries can be loaded:</p>
<pre class="screen">
@@ -1768,7 +1768,7 @@ example.net.signed
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2636528"></a>Specifying the engine on the command line</h3></div></div></div>
+<a name="id2636515"></a>Specifying the engine on the command line</h3></div></div></div>
<p>The OpenSSL engine can be specified in
<span><strong class="command">named</strong></span> and all of the BIND
<span><strong class="command">dnssec-*</strong></span> tools by using the "-E
@@ -1789,7 +1789,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2636573"></a>Running named with automatic zone re-signing</h3></div></div></div>
+<a name="id2636561"></a>Running named with automatic zone re-signing</h3></div></div></div>
<p>If you want
<span><strong class="command">named</strong></span> to dynamically re-sign zones using HSM
keys, and/or to to sign new records inserted via nsupdate, then
diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html
index 20f0c473..f5234ce0 100644
--- a/doc/arm/Bv9ARM.ch06.html
+++ b/doc/arm/Bv9ARM.ch06.html
@@ -48,58 +48,58 @@
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#configuration_file_elements">Configuration File Elements</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#address_match_lists">Address Match Lists</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574642">Comment Syntax</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574711">Comment Syntax</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#Configuration_File_Grammar">Configuration File Grammar</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575302"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575371"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#acl"><span><strong class="command">acl</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575492"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575561"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#controls_statement_definition_and_usage"><span><strong class="command">controls</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575851"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575868"><span><strong class="command">include</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575921"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575938"><span><strong class="command">include</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575892"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575915"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576006"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576200"><span><strong class="command">logging</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575961"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575985"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576075"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576269"><span><strong class="command">logging</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578227"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578300"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578501"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578545"><span><strong class="command">masters</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578364"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578438"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578502"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578546"><span><strong class="command">masters</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578566"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578567"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#options"><span><strong class="command">options</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_grammar"><span><strong class="command">server</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_definition_and_usage"><span><strong class="command">server</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#statschannels"><span><strong class="command">statistics-channels</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590549"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590678"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#trusted-keys"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590757"><span><strong class="command">trusted-keys</strong></span> Statement Definition
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590886"><span><strong class="command">trusted-keys</strong></span> Statement Definition
and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590804"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590933"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#managed-keys"><span><strong class="command">managed-keys</strong></span> Statement Definition
and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#view_statement_grammar"><span><strong class="command">view</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591314"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591374"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zone_statement_grammar"><span><strong class="command">zone</strong></span>
Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593068"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593142"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596429">Zone File</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596658">Zone File</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them">Types of Resource Records and When to Use Them</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598728">Discussion of MX Records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598888">Discussion of MX Records</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#Setting_TTLs">Setting TTLs</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599344">Inverse Mapping in IPv4</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599470">Other Zone File Directives</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599675"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599435">Inverse Mapping in IPv4</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599562">Other Zone File Directives</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599904"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zonefile_format">Additional File Formats</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#statistics">BIND9 Statistics</a></span></dt>
@@ -409,31 +409,45 @@
</td>
<td>
<p>
- A number, the word <strong class="userinput"><code>unlimited</code></strong>,
- or the word <strong class="userinput"><code>default</code></strong>.
+ A 64-bit unsigned integer, or the keywords
+ <strong class="userinput"><code>unlimited</code></strong> or
+ <strong class="userinput"><code>default</code></strong>.
</p>
<p>
- An <code class="varname">unlimited</code> <code class="varname">size_spec</code> requests unlimited
- use, or the maximum available amount. A <code class="varname">default size_spec</code> uses
- the limit that was in force when the server was started.
+ Integers may take values
+ 0 &lt;= value &lt;= 18446744073709551615, though
+ certain parameters may use a more limited range
+ within these extremes. In most cases, setting a
+ value to 0 does not literally mean zero; it means
+ "undefined" or "as big as psosible", depending on
+ the context. See the expalantions of particular
+ parameters that use <code class="varname">size_spec</code>
+ for details on how they interpret its use.
</p>
<p>
- A <code class="varname">number</code> can optionally be
- followed by a scaling factor:
+ Numeric values can optionally be followed by a
+ scaling factor:
<strong class="userinput"><code>K</code></strong> or <strong class="userinput"><code>k</code></strong>
for kilobytes,
<strong class="userinput"><code>M</code></strong> or <strong class="userinput"><code>m</code></strong>
for megabytes, and
- <strong class="userinput"><code>G</code></strong> or <strong class="userinput"><code>g</code></strong> for gigabytes,
- which scale by 1024, 1024*1024, and 1024*1024*1024
- respectively.
+ <strong class="userinput"><code>G</code></strong> or <strong class="userinput"><code>g</code></strong>
+ for gigabytes, which scale by 1024, 1024*1024, and
+ 1024*1024*1024 respectively.
</p>
<p>
- The value must be representable as a 64-bit unsigned integer
- (0 to 18446744073709551615, inclusive).
- Using <code class="varname">unlimited</code> is the best
- way
- to safely set a really large number.
+ <code class="varname">unlimited</code> generally means
+ "as big as possible", though in certain contexts,
+ (including <code class="option">max-cache-size</code>), it may
+ mean the largest possible 32-bit unsigned integer
+ (0xffffffff); this distinction can be important when
+ dealing with larger quantities.
+ <code class="varname">unlimited</code> is usually the best way
+ to safely set a very large number.
+ </p>
+ <p>
+ <code class="varname">default</code>
+ uses the limit that was in force when the server was started.
</p>
</td>
</tr>
@@ -477,7 +491,7 @@
<a name="address_match_lists"></a>Address Match Lists</h3></div></div></div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574408"></a>Syntax</h4></div></div></div>
+<a name="id2574546"></a>Syntax</h4></div></div></div>
<pre class="programlisting"><code class="varname">address_match_list</code> = address_match_list_element ;
[<span class="optional"> address_match_list_element; ... </span>]
<code class="varname">address_match_list_element</code> = [<span class="optional"> ! </span>] (ip_address [<span class="optional">/length</span>] |
@@ -486,7 +500,7 @@
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574436"></a>Definition and Usage</h4></div></div></div>
+<a name="id2574573"></a>Definition and Usage</h4></div></div></div>
<p>
Address match lists are primarily used to determine access
control for various server operations. They are also used in
@@ -570,7 +584,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2574642"></a>Comment Syntax</h3></div></div></div>
+<a name="id2574711"></a>Comment Syntax</h3></div></div></div>
<p>
The <acronym class="acronym">BIND</acronym> 9 comment syntax allows for
comments to appear
@@ -580,7 +594,7 @@
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574657"></a>Syntax</h4></div></div></div>
+<a name="id2574726"></a>Syntax</h4></div></div></div>
<p>
</p>
<pre class="programlisting">/* This is a <acronym class="acronym">BIND</acronym> comment as in C */</pre>
@@ -596,7 +610,7 @@
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2574686"></a>Definition and Usage</h4></div></div></div>
+<a name="id2574756"></a>Definition and Usage</h4></div></div></div>
<p>
Comments may appear anywhere that whitespace may appear in
a <acronym class="acronym">BIND</acronym> configuration file.
@@ -850,7 +864,7 @@
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575302"></a><span><strong class="command">acl</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2575371"></a><span><strong class="command">acl</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">acl</strong></span> acl-name {
address_match_list
};
@@ -932,7 +946,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575492"></a><span><strong class="command">controls</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2575561"></a><span><strong class="command">controls</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">controls</strong></span> {
[ inet ( ip_addr | * ) [ port ip_port ]
allow { <em class="replaceable"><code> address_match_list </code></em> }
@@ -1056,12 +1070,12 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575851"></a><span><strong class="command">include</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2575921"></a><span><strong class="command">include</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">include</strong></span> <em class="replaceable"><code>filename</code></em>;</pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575868"></a><span><strong class="command">include</strong></span> Statement Definition and
+<a name="id2575938"></a><span><strong class="command">include</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p>
The <span><strong class="command">include</strong></span> statement inserts the
@@ -1076,7 +1090,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575892"></a><span><strong class="command">key</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2575961"></a><span><strong class="command">key</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">key</strong></span> <em class="replaceable"><code>key_id</code></em> {
algorithm <em class="replaceable"><code>string</code></em>;
secret <em class="replaceable"><code>string</code></em>;
@@ -1085,7 +1099,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2575915"></a><span><strong class="command">key</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2575985"></a><span><strong class="command">key</strong></span> Statement Definition and Usage</h3></div></div></div>
<p>
The <span><strong class="command">key</strong></span> statement defines a shared
secret key for use with TSIG (see <a href="Bv9ARM.ch04.html#tsig" title="TSIG">the section called &#8220;TSIG&#8221;</a>)
@@ -1132,7 +1146,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2576006"></a><span><strong class="command">logging</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2576075"></a><span><strong class="command">logging</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">logging</strong></span> {
[ <span><strong class="command">channel</strong></span> <em class="replaceable"><code>channel_name</code></em> {
( <span><strong class="command">file</strong></span> <em class="replaceable"><code>path_name</code></em>
@@ -1156,7 +1170,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2576200"></a><span><strong class="command">logging</strong></span> Statement Definition and
+<a name="id2576269"></a><span><strong class="command">logging</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p>
The <span><strong class="command">logging</strong></span> statement configures a
@@ -1190,7 +1204,7 @@
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2576252"></a>The <span><strong class="command">channel</strong></span> Phrase</h4></div></div></div>
+<a name="id2576322"></a>The <span><strong class="command">channel</strong></span> Phrase</h4></div></div></div>
<p>
All log output goes to one or more <span class="emphasis"><em>channels</em></span>;
you can make as many of them as you want.
@@ -1774,7 +1788,7 @@ category notify { null; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2577707"></a>The <span><strong class="command">query-errors</strong></span> Category</h4></div></div></div>
+<a name="id2577777"></a>The <span><strong class="command">query-errors</strong></span> Category</h4></div></div></div>
<p>
The <span><strong class="command">query-errors</strong></span> category is
specifically intended for debugging purposes: To identify
@@ -2002,7 +2016,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578227"></a><span><strong class="command">lwres</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2578364"></a><span><strong class="command">lwres</strong></span> Statement Grammar</h3></div></div></div>
<p>
This is the grammar of the <span><strong class="command">lwres</strong></span>
statement in the <code class="filename">named.conf</code> file:
@@ -2018,7 +2032,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578300"></a><span><strong class="command">lwres</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2578438"></a><span><strong class="command">lwres</strong></span> Statement Definition and Usage</h3></div></div></div>
<p>
The <span><strong class="command">lwres</strong></span> statement configures the
name
@@ -2069,7 +2083,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578501"></a><span><strong class="command">masters</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2578502"></a><span><strong class="command">masters</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting">
<span><strong class="command">masters</strong></span> <em class="replaceable"><code>name</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] { ( <em class="replaceable"><code>masters_list</code></em> |
<em class="replaceable"><code>ip_addr</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] [<span class="optional">key <em class="replaceable"><code>key</code></em></span>] ) ; [<span class="optional">...</span>] };
@@ -2077,7 +2091,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578545"></a><span><strong class="command">masters</strong></span> Statement Definition and
+<a name="id2578546"></a><span><strong class="command">masters</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p><span><strong class="command">masters</strong></span>
lists allow for a common set of masters to be easily used by
@@ -2087,7 +2101,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2578566"></a><span><strong class="command">options</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2578567"></a><span><strong class="command">options</strong></span> Statement Grammar</h3></div></div></div>
<p>
This is the grammar of the <span><strong class="command">options</strong></span>
statement in the <code class="filename">named.conf</code> file:
@@ -2117,7 +2131,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
[<span class="optional"> pid-file <em class="replaceable"><code>path_name</code></em>; </span>]
[<span class="optional"> recursing-file <em class="replaceable"><code>path_name</code></em>; </span>]
[<span class="optional"> statistics-file <em class="replaceable"><code>path_name</code></em>; </span>]
- [<span class="optional"> zone-statistics <em class="replaceable"><code>yes_or_no</code></em>; </span>]
+ [<span class="optional"> zone-statistics <em class="replaceable"><code>full</code></em> | <em class="replaceable"><code>terse</code></em> | <em class="replaceable"><code>none</code></em>; </span>]
[<span class="optional"> auth-nxdomain <em class="replaceable"><code>yes_or_no</code></em>; </span>]
[<span class="optional"> deallocate-on-exit <em class="replaceable"><code>yes_or_no</code></em>; </span>]
[<span class="optional"> dialup <em class="replaceable"><code>dialup_option</code></em>; </span>]
@@ -2294,7 +2308,7 @@ badresp:1,adberr:0,findfail:0,valfail:0]
[<span class="optional"> policy given | disabled | passthru | nxdomain | nodata | cname <em class="replaceable"><code>domain</code></em> </span>]
[<span class="optional"> recursive-only <em class="replaceable"><code>yes_or_no</code></em> </span>] [<span class="optional"> max-policy-ttl <em class="replaceable"><code>number</code></em> </span>] ;
} [<span class="optional"> recursive-only <em class="replaceable"><code>yes_or_no</code></em> </span>] [<span class="optional"> max-policy-ttl <em class="replaceable"><code>number</code></em> </span>]
- [<span class="optional"> break-dnssec <em class="replaceable"><code>yes_or_no</code></em> </span>] ; </span>]
+ [<span class="optional"> break-dnssec <em class="replaceable"><code>yes_or_no</code></em> </span>] [<span class="optional"> min-ns-dots <em class="replaceable"><code>number</code></em> </span>] ; </span>]
};
</pre>
</div>
@@ -2854,6 +2868,37 @@ options {
via dyanmic update; this is not yet implemented.)
</p>
</dd>
+<dt><span class="term"><span><strong class="command">zone-statistics</strong></span></span></dt>
+<dd>
+<p>
+ If <strong class="userinput"><code>full</code></strong>, the server will collect
+ statistical data on all zones (unless specifically
+ turned off on a per-zone basis by specifying
+ <span><strong class="command">zone-statistics terse</strong></span> or
+ <span><strong class="command">zone-statistics none</strong></span>
+ in the <span><strong class="command">zone</strong></span> statement).
+ The default is <strong class="userinput"><code>terse</code></strong>, providing
+ minimal statistics on zones (including name and
+ current serial number, but not query type
+ counters).
+ </p>
+<p>
+ These statistics may be accessed via the
+ <span><strong class="command">statistics-channel</strong></span> or
+ using <span><strong class="command">rndc stats</strong></span>, which
+ will dump them to the file listed
+ in the <span><strong class="command">statistics-file</strong></span>. See
+ also <a href="Bv9ARM.ch06.html#statsfile" title="The Statistics File">the section called &#8220;The Statistics File&#8221;</a>.
+ </p>
+<p>
+ For backward compatibility with earlier versions
+ of BIND 9, the <span><strong class="command">zone-statistics</strong></span>
+ option can also accept <strong class="userinput"><code>yes</code></strong>
+ or <strong class="userinput"><code>no</code></strong>, which have the same
+ effect as <strong class="userinput"><code>full</code></strong> and
+ <strong class="userinput"><code>terse</code></strong>, respectively.
+ </p>
+</dd>
</dl></div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
@@ -3263,20 +3308,6 @@ options {
<acronym class="acronym">BIND</acronym> 9 always allocates query
IDs from a pool.
</p></dd>
-<dt><span class="term"><span><strong class="command">zone-statistics</strong></span></span></dt>
-<dd><p>
- If <strong class="userinput"><code>yes</code></strong>, the server will collect
- statistical data on all zones (unless specifically turned
- off
- on a per-zone basis by specifying <span><strong class="command">zone-statistics no</strong></span>
- in the <span><strong class="command">zone</strong></span> statement).
- The default is <strong class="userinput"><code>no</code></strong>.
- These statistics may be accessed
- using <span><strong class="command">rndc stats</strong></span>, which will
- dump them to the file listed
- in the <span><strong class="command">statistics-file</strong></span>. See
- also <a href="Bv9ARM.ch06.html#statsfile" title="The Statistics File">the section called &#8220;The Statistics File&#8221;</a>.
- </p></dd>
<dt><span class="term"><span><strong class="command">use-ixfr</strong></span></span></dt>
<dd><p>
<span class="emphasis"><em>This option is obsolete</em></span>.
@@ -3738,7 +3769,7 @@ options {
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2584209"></a>Forwarding</h4></div></div></div>
+<a name="id2584253"></a>Forwarding</h4></div></div></div>
<p>
The forwarding facility can be used to create a large site-wide
cache on a few servers, reducing traffic over links to external
@@ -3782,7 +3813,7 @@ options {
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2584267"></a>Dual-stack Servers</h4></div></div></div>
+<a name="id2584449"></a>Dual-stack Servers</h4></div></div></div>
<p>
Dual-stack servers are used as servers of last resort to work
around
@@ -3999,7 +4030,7 @@ options {
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2584965"></a>Interfaces</h4></div></div></div>
+<a name="id2585010"></a>Interfaces</h4></div></div></div>
<p>
The interfaces and ports that the server will answer queries
from may be specified using the <span><strong class="command">listen-on</strong></span> option. <span><strong class="command">listen-on</strong></span> takes
@@ -4467,7 +4498,7 @@ avoid-v6-udp-ports {};
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2586250"></a>UDP Port Lists</h4></div></div></div>
+<a name="id2586227"></a>UDP Port Lists</h4></div></div></div>
<p>
<span><strong class="command">use-v4-udp-ports</strong></span>,
<span><strong class="command">avoid-v4-udp-ports</strong></span>,
@@ -4509,7 +4540,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2586310"></a>Operating System Resource Limits</h4></div></div></div>
+<a name="id2586286"></a>Operating System Resource Limits</h4></div></div></div>
<p>
The server's usage of many system resources can be limited.
Scaled values are allowed when specifying resource limits. For
@@ -4589,8 +4620,10 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
approaches
the specified size, some of the oldest transactions in the
journal
- will be automatically removed. The default is
- <code class="literal">unlimited</code>.
+ will be automatically removed. The largest permitted
+ value is 2 gigabytes. The default is
+ <code class="literal">unlimited</code>, which also
+ means 2 gigabytes.
This may also be set on a per-zone basis.
</p></dd>
<dt><span class="term"><span><strong class="command">host-statistics-max</strong></span></span></dt>
@@ -4671,7 +4704,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2586664"></a>Periodic Task Intervals</h4></div></div></div>
+<a name="id2586845"></a>Periodic Task Intervals</h4></div></div></div>
<div class="variablelist"><dl>
<dt><span class="term"><span><strong class="command">cleaning-interval</strong></span></span></dt>
<dd><p>
@@ -5280,12 +5313,16 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
built-in view (see <a href="Bv9ARM.ch06.html#view_statement_grammar" title="view Statement Grammar">the section called &#8220;<span><strong class="command">view</strong></span> Statement Grammar&#8221;</a>) of
class
<span><strong class="command">CHAOS</strong></span> which is separate from the
- default view of
- class <span><strong class="command">IN</strong></span>; therefore, any global
- server options
- such as <span><strong class="command">allow-query</strong></span> do not apply
- the these zones.
- If you feel the need to disable these zones, use the options
+ default view of class <span><strong class="command">IN</strong></span>. Most global
+ configuration options (<span><strong class="command">allow-query</strong></span>,
+ etc) will apply to this view, but some are locally
+ overridden: <span><strong class="command">notify</strong></span>,
+ <span><strong class="command">recursion</strong></span> and
+ <span><strong class="command">allow-new-zones</strong></span> are
+ always set to <strong class="userinput"><code>no</code></strong>.
+ </p>
+<p>
+ If you need to disable these zones, use the options
below, or hide the built-in <span><strong class="command">CHAOS</strong></span>
view by
defining an explicit view of class <span><strong class="command">CHAOS</strong></span>
@@ -5600,7 +5637,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2589157"></a>Content Filtering</h4></div></div></div>
+<a name="id2589152"></a>Content Filtering</h4></div></div></div>
<p>
<acronym class="acronym">BIND</acronym> 9 provides the ability to filter
out DNS responses from external DNS servers containing
@@ -5723,7 +5760,7 @@ deny-answer-aliases { "example.net"; };
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2589283"></a>Response Policy Zone (RPZ) Rewriting</h4></div></div></div>
+<a name="id2589346"></a>Response Policy Zone (RPZ) Rewriting</h4></div></div></div>
<p>
<acronym class="acronym">BIND</acronym> 9 includes a limited
mechanism to modify DNS responses for requests
@@ -5779,13 +5816,15 @@ deny-answer-aliases { "example.net"; };
They are encoded as subdomains of
<strong class="userinput"><code>rpz-nsdomain</code></strong> relativized
to the RPZ origin name.
- </p>
-<p>
NSIP triggers match IP addresses in A and
AAAA RRsets for domains that can be checked against NSDNAME
policy records.
NSIP triggers are encoded like IP triggers except as subdomains of
<strong class="userinput"><code>rpz-nsip</code></strong>.
+ NSDNAME and NSIP triggers are checked only for names with at
+ least <span><strong class="command">min-ns-dots</strong></span> dots.
+ The default value of <span><strong class="command">min-ns-dots</strong></span> is 1 to
+ exclude top level domains.
</p>
<p>
The query response is checked against all RPZs, so
@@ -5824,16 +5863,6 @@ deny-answer-aliases { "example.net"; };
and addresses.
</p>
<p>
- Authority verification issues and variations in authority data
- can cause inconsistent results for NSIP and NSDNAME policy records.
- Glue NS records often differ from authoritative NS records.
- So they are available
- only when <acronym class="acronym">BIND</acronym> is built with the
- <strong class="userinput"><code>--enable-rpz-nsip</code></strong> or
- <strong class="userinput"><code>--enable-rpz-nsdname</code></strong> options
- on the "configure" command line.
- </p>
-<p>
RPZ record sets are sets of any types of DNS record except
DNAME or DNSSEC that encode actions or responses to queries.
</p>
@@ -5858,7 +5887,7 @@ deny-answer-aliases { "example.net"; };
walled garden's authority DNS server.
</li>
<li>The <span><strong class="command">PASSTHRU</strong></span> policy is specified
- by a CNAME whose target is <span><strong class="command">rpz_passthru.</strong></span>
+ by a CNAME whose target is <span><strong class="command">rpz-passthru.</strong></span>
It causes the response to not be rewritten
and is most often used to "poke holes" in policies for
CIDR blocks.
@@ -5977,18 +6006,23 @@ ns.domain.com.rpz-nsdname CNAME .
48.zz.2.2001.rpz-nsip CNAME .
</pre>
<p>
- Note: RPZ may impact server performance. Each configured
- response policy zone requires the server to perform one to four
- additional database lookups before a query can be answered.
+ RPZ can affect server performance.
+ Each configured response policy zone requires the server to
+ perform one to four additional database lookups before a
+ query can be answered.
For example, a DNS server with four policy zones, each with all
- four kinds of response triggers &#8212; QNAME, IP, NSIP, and
- NSDNAME &#8212; requires a total of 17 times as many database
+ four kinds of response triggers, QNAME, IP, NSIP, and
+ NSDNAME, requires a total of 17 times as many database
lookups as a similar DNS server with no response policy zones.
A <acronym class="acronym">BIND9</acronym> server with adequate memory and one
response policy zone with QNAME and IP triggers might achieve a
- maximum queries-per-second rate about 20% lower. A server with
- four response policy zones with QNAME and IP triggers might
- have a maximum QPS rate about 50% lower.
+ maximum queries-per-second rate about 20% lower.
+ A server with four response policy zones with QNAME and IP
+ triggers might have a maximum QPS rate about 50% lower.
+ </p>
+<p>
+ Responses rewritten by RPZ are counted in the
+ <span><strong class="command">RPZRewrites</strong></span> statistics.
</p>
</div>
</div>
@@ -6201,7 +6235,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2590549"></a><span><strong class="command">statistics-channels</strong></span> Statement Definition and
+<a name="id2590678"></a><span><strong class="command">statistics-channels</strong></span> Statement Definition and
Usage</h3></div></div></div>
<p>
The <span><strong class="command">statistics-channels</strong></span> statement
@@ -6261,7 +6295,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2590757"></a><span><strong class="command">trusted-keys</strong></span> Statement Definition
+<a name="id2590886"></a><span><strong class="command">trusted-keys</strong></span> Statement Definition
and Usage</h3></div></div></div>
<p>
The <span><strong class="command">trusted-keys</strong></span> statement defines
@@ -6301,7 +6335,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2590804"></a><span><strong class="command">managed-keys</strong></span> Statement Grammar</h3></div></div></div>
+<a name="id2590933"></a><span><strong class="command">managed-keys</strong></span> Statement Grammar</h3></div></div></div>
<pre class="programlisting"><span><strong class="command">managed-keys</strong></span> {
<em class="replaceable"><code>name</code></em> <code class="literal">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-data</code></em> ;
[<span class="optional"> <em class="replaceable"><code>name</code></em> <code class="literal">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-data</code></em> ; [<span class="optional">...</span>]</span>]
@@ -6439,7 +6473,7 @@ ns.domain.com.rpz-nsdname CNAME .
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2591314"></a><span><strong class="command">view</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2591374"></a><span><strong class="command">view</strong></span> Statement Definition and Usage</h3></div></div></div>
<p>
The <span><strong class="command">view</strong></span> statement is a powerful
feature
@@ -6598,7 +6632,7 @@ view "external" {
[<span class="optional"> pubkey <em class="replaceable"><code>number</code></em> <em class="replaceable"><code>number</code></em> <em class="replaceable"><code>number</code></em> <em class="replaceable"><code>string</code></em> ; </span>]
[<span class="optional"> notify-source (<em class="replaceable"><code>ip4_addr</code></em> | <code class="constant">*</code>) [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; </span>]
[<span class="optional"> notify-source-v6 (<em class="replaceable"><code>ip6_addr</code></em> | <code class="constant">*</code>) [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; </span>]
- [<span class="optional"> zone-statistics <em class="replaceable"><code>yes_or_no</code></em> ; </span>]
+ [<span class="optional"> zone-statistics <em class="replaceable"><code>full</code></em> | <em class="replaceable"><code>terse</code></em> | <em class="replaceable"><code>none</code></em>; </span>]
[<span class="optional"> sig-validity-interval <em class="replaceable"><code>number</code></em> [<span class="optional"><em class="replaceable"><code>number</code></em></span>] ; </span>]
[<span class="optional"> sig-signing-nodes <em class="replaceable"><code>number</code></em> ; </span>]
[<span class="optional"> sig-signing-signatures <em class="replaceable"><code>number</code></em> ; </span>]
@@ -6663,7 +6697,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
[<span class="optional"> use-alt-transfer-source <em class="replaceable"><code>yes_or_no</code></em>; </span>]
[<span class="optional"> notify-source (<em class="replaceable"><code>ip4_addr</code></em> | <code class="constant">*</code>) [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; </span>]
[<span class="optional"> notify-source-v6 (<em class="replaceable"><code>ip6_addr</code></em> | <code class="constant">*</code>) [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; </span>]
- [<span class="optional"> zone-statistics <em class="replaceable"><code>yes_or_no</code></em> ; </span>]
+ [<span class="optional"> zone-statistics <em class="replaceable"><code>full</code></em> | <em class="replaceable"><code>terse</code></em> | <em class="replaceable"><code>none</code></em>; </span>]
[<span class="optional"> sig-validity-interval <em class="replaceable"><code>number</code></em> [<span class="optional"><em class="replaceable"><code>number</code></em></span>] ; </span>]
[<span class="optional"> sig-signing-nodes <em class="replaceable"><code>number</code></em> ; </span>]
[<span class="optional"> sig-signing-signatures <em class="replaceable"><code>number</code></em> ; </span>]
@@ -6750,10 +6784,10 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2593068"></a><span><strong class="command">zone</strong></span> Statement Definition and Usage</h3></div></div></div>
+<a name="id2593142"></a><span><strong class="command">zone</strong></span> Statement Definition and Usage</h3></div></div></div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2593076"></a>Zone Types</h4></div></div></div>
+<a name="id2593149"></a>Zone Types</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -6990,16 +7024,41 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
</td>
<td>
<p>
- Provides a source of answers when the normal resolution
- returns NXDOMAIN. Only one redirect zone is supported
- per view. <span><strong class="command">allow-query</strong></span> can be used
- to restrict which clients see these answers.
+ Redirect zones are used to provide answers to
+ queries when normal resolution would result in
+ NXDOMAIN being returned.
+ Only one redirect zone is supported
+ per view. <span><strong class="command">allow-query</strong></span> can be
+ used to restrict which clients see these answers.
</p>
<p>
If the client has requested DNSSEC records (DO=1) and
the NXDOMAIN response is signed then no substitution
will occur.
</p>
+ <p>
+ To redirect all NXDOMAIN responses to
+ 100.100.100.2 and
+ 2001:ffff:ffff::100.100.100.2, one would
+ configure a type redirect zone named ".",
+ with the zone file containing wildcard records
+ that point to the desired addresses:
+ <code class="literal">"*. IN A 100.100.100.2"</code>
+ and
+ <code class="literal">"*. IN AAAA 2001:ffff:ffff::100.100.100.2"</code>.
+ </p>
+ <p>
+ To redirect all Spanish names (under .ES) one
+ would use similar entries but with the names
+ "*.ES." instead of "*.". To redirect all
+ commercial Spanish names (under COM.ES) one
+ would use wildcard entries called "*.COM.ES.".
+ </p>
+ <p>
+ Note that the redirect zone supports all
+ possible types; it is not limited to A and
+ AAAA records.
+ </p>
</td>
</tr>
<tr>
@@ -7033,7 +7092,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2593585"></a>Class</h4></div></div></div>
+<a name="id2593813"></a>Class</h4></div></div></div>
<p>
The zone's name may optionally be followed by a class. If
a class is not specified, class <code class="literal">IN</code> (for <code class="varname">Internet</code>),
@@ -7055,7 +7114,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2593618"></a>Zone Options</h4></div></div></div>
+<a name="id2593846"></a>Zone Options</h4></div></div></div>
<div class="variablelist"><dl>
<dt><span class="term"><span><strong class="command">allow-notify</strong></span></span></dt>
<dd><p>
@@ -7966,7 +8025,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2596429"></a>Zone File</h2></div></div></div>
+<a name="id2596658"></a>Zone File</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="types_of_resource_records_and_when_to_use_them"></a>Types of Resource Records and When to Use Them</h3></div></div></div>
@@ -7979,7 +8038,7 @@ example.com. NS ns2.example.net.
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2596448"></a>Resource Records</h4></div></div></div>
+<a name="id2596812"></a>Resource Records</h4></div></div></div>
<p>
A domain name identifies a node. Each node has a set of
resource information, which may be empty. The set of resource
@@ -8716,7 +8775,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2598071"></a>Textual expression of RRs</h4></div></div></div>
+<a name="id2598299"></a>Textual expression of RRs</h4></div></div></div>
<p>
RRs are represented in binary form in the packets of the DNS
protocol, and are usually represented in highly encoded form
@@ -8919,7 +8978,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2598728"></a>Discussion of MX Records</h3></div></div></div>
+<a name="id2598888"></a>Discussion of MX Records</h3></div></div></div>
<p>
As described above, domain servers store information as a
series of resource records, each of which contains a particular
@@ -9175,7 +9234,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2599344"></a>Inverse Mapping in IPv4</h3></div></div></div>
+<a name="id2599435"></a>Inverse Mapping in IPv4</h3></div></div></div>
<p>
Reverse name resolution (that is, translation from IP address
to name) is achieved by means of the <span class="emphasis"><em>in-addr.arpa</em></span> domain
@@ -9236,7 +9295,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2599470"></a>Other Zone File Directives</h3></div></div></div>
+<a name="id2599562"></a>Other Zone File Directives</h3></div></div></div>
<p>
The Master File Format was initially defined in RFC 1035 and
has subsequently been extended. While the Master File Format
@@ -9251,7 +9310,7 @@ example.com. NS ns2.example.net.
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2599493"></a>The <span><strong class="command">@</strong></span> (at-sign)</h4></div></div></div>
+<a name="id2599585"></a>The <span><strong class="command">@</strong></span> (at-sign)</h4></div></div></div>
<p>
When used in the label (or name) field, the asperand or
at-sign (@) symbol represents the current origin.
@@ -9262,7 +9321,7 @@ example.com. NS ns2.example.net.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2599509"></a>The <span><strong class="command">$ORIGIN</strong></span> Directive</h4></div></div></div>
+<a name="id2599669"></a>The <span><strong class="command">$ORIGIN</strong></span> Directive</h4></div></div></div>
<p>
Syntax: <span><strong class="command">$ORIGIN</strong></span>
<em class="replaceable"><code>domain-name</code></em>
@@ -9291,7 +9350,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2599570"></a>The <span><strong class="command">$INCLUDE</strong></span> Directive</h4></div></div></div>
+<a name="id2599730"></a>The <span><strong class="command">$INCLUDE</strong></span> Directive</h4></div></div></div>
<p>
Syntax: <span><strong class="command">$INCLUDE</strong></span>
<em class="replaceable"><code>filename</code></em>
@@ -9327,7 +9386,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2599639"></a>The <span><strong class="command">$TTL</strong></span> Directive</h4></div></div></div>
+<a name="id2599867"></a>The <span><strong class="command">$TTL</strong></span> Directive</h4></div></div></div>
<p>
Syntax: <span><strong class="command">$TTL</strong></span>
<em class="replaceable"><code>default-ttl</code></em>
@@ -9346,7 +9405,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2599675"></a><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</h3></div></div></div>
+<a name="id2599904"></a><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</h3></div></div></div>
<p>
Syntax: <span><strong class="command">$GENERATE</strong></span>
<em class="replaceable"><code>range</code></em>
@@ -9770,7 +9829,7 @@ HOST-127.EXAMPLE. MX 0 .
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2600697"></a>Name Server Statistics Counters</h4></div></div></div>
+<a name="id2600857"></a>Name Server Statistics Counters</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -10322,12 +10381,25 @@ HOST-127.EXAMPLE. MX 0 .
</p>
</td>
</tr>
+<tr>
+<td>
+ <p><span><strong class="command">RPZRewrites</strong></span></p>
+ </td>
+<td>
+ <p><span><strong class="command"></strong></span></p>
+ </td>
+<td>
+ <p>
+ Response policy zone rewrites.
+ </p>
+ </td>
+</tr>
</tbody>
</table></div>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2602307"></a>Zone Maintenance Statistics Counters</h4></div></div></div>
+<a name="id2602567"></a>Zone Maintenance Statistics Counters</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -10481,7 +10553,7 @@ HOST-127.EXAMPLE. MX 0 .
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2602758"></a>Resolver Statistics Counters</h4></div></div></div>
+<a name="id2602950"></a>Resolver Statistics Counters</h4></div></div></div>
<div class="informaltable"><table border="1">
<colgroup>
<col>
@@ -10864,7 +10936,7 @@ HOST-127.EXAMPLE. MX 0 .
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2603780"></a>Socket I/O Statistics Counters</h4></div></div></div>
+<a name="id2603972"></a>Socket I/O Statistics Counters</h4></div></div></div>
<p>
Socket I/O statistics counters are defined per socket
types, which are
@@ -11019,7 +11091,7 @@ HOST-127.EXAMPLE. MX 0 .
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2604221"></a>Compatibility with <span class="emphasis"><em>BIND</em></span> 8 Counters</h4></div></div></div>
+<a name="id2604345"></a>Compatibility with <span class="emphasis"><em>BIND</em></span> 8 Counters</h4></div></div></div>
<p>
Most statistics counters that were available
in <span><strong class="command">BIND</strong></span> 8 are also supported in
diff --git a/doc/arm/Bv9ARM.ch07.html b/doc/arm/Bv9ARM.ch07.html
index 4456aa9d..6ae437bb 100644
--- a/doc/arm/Bv9ARM.ch07.html
+++ b/doc/arm/Bv9ARM.ch07.html
@@ -46,10 +46,10 @@
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604449"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604504"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604530">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604589">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604585">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604645">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt>
</dl>
@@ -114,7 +114,7 @@ zone "example.com" {
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2604449"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span>
+<a name="id2604504"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span>
</h2></div></div></div>
<p>
On UNIX servers, it is possible to run <acronym class="acronym">BIND</acronym>
@@ -140,7 +140,7 @@ zone "example.com" {
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2604530"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div>
+<a name="id2604585"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div>
<p>
In order for a <span><strong class="command">chroot</strong></span> environment
to
@@ -168,7 +168,7 @@ zone "example.com" {
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2604589"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div>
+<a name="id2604645"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div>
<p>
Prior to running the <span><strong class="command">named</strong></span> daemon,
use
diff --git a/doc/arm/Bv9ARM.ch08.html b/doc/arm/Bv9ARM.ch08.html
index 88e20140..65ab9421 100644
--- a/doc/arm/Bv9ARM.ch08.html
+++ b/doc/arm/Bv9ARM.ch08.html
@@ -45,18 +45,18 @@
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604669">Common Problems</a></span></dt>
-<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2604675">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604686">Incrementing and Changing the Serial Number</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604704">Where Can I Get Help?</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604930">Common Problems</a></span></dt>
+<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2604935">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604947">Incrementing and Changing the Serial Number</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604964">Where Can I Get Help?</a></span></dt>
</dl>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2604669"></a>Common Problems</h2></div></div></div>
+<a name="id2604930"></a>Common Problems</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2604675"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div>
+<a name="id2604935"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div>
<p>
The best solution to solving installation and
configuration issues is to take preventative measures by setting
@@ -68,7 +68,7 @@
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2604686"></a>Incrementing and Changing the Serial Number</h2></div></div></div>
+<a name="id2604947"></a>Incrementing and Changing the Serial Number</h2></div></div></div>
<p>
Zone serial numbers are just numbers &#8212; they aren't
date related. A lot of people set them to a number that
@@ -95,7 +95,7 @@
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2604704"></a>Where Can I Get Help?</h2></div></div></div>
+<a name="id2604964"></a>Where Can I Get Help?</h2></div></div></div>
<p>
The Internet Systems Consortium
(<acronym class="acronym">ISC</acronym>) offers a wide range
diff --git a/doc/arm/Bv9ARM.ch09.html b/doc/arm/Bv9ARM.ch09.html
index 0fcc6069..6de98201 100644
--- a/doc/arm/Bv9ARM.ch09.html
+++ b/doc/arm/Bv9ARM.ch09.html
@@ -45,31 +45,31 @@
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2604765">Acknowledgments</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605162">Acknowledgments</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#historical_dns_information">A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605142">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605334">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#ipv6addresses">IPv6 addresses (AAAA)</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bibliography">Bibliography (and Suggested Reading)</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#rfcs">Request for Comments (RFCs)</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#internet_drafts">Internet Drafts</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608285">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608546">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bind9.library">BIND 9 DNS Library Support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610974">Prerequisite</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610984">Compilation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608961">Installation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608992">Known Defects/Restrictions</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609888">The dns.conf File</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609914">Sample Applications</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611092">Library References</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611440">Prerequisite</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611449">Compilation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610040">Installation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610071">Known Defects/Restrictions</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610148">The dns.conf File</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610174">Sample Applications</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611147">Library References</a></span></dt>
</dl></dd>
</dl>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2604765"></a>Acknowledgments</h2></div></div></div>
+<a name="id2605162"></a>Acknowledgments</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="historical_dns_information"></a>A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym>
@@ -172,7 +172,7 @@
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id2605142"></a>General <acronym class="acronym">DNS</acronym> Reference Information</h2></div></div></div>
+<a name="id2605334"></a>General <acronym class="acronym">DNS</acronym> Reference Information</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="ipv6addresses"></a>IPv6 addresses (AAAA)</h3></div></div></div>
@@ -260,17 +260,17 @@
</p>
<div class="bibliography">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2605261"></a>Bibliography</h4></div></div></div>
+<a name="id2605522"></a>Bibliography</h4></div></div></div>
<div class="bibliodiv">
<h3 class="title">Standards</h3>
<div class="biblioentry">
-<a name="id2605272"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p>
+<a name="id2605532"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605296"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p>
+<a name="id2605556"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605319"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Implementation and
+<a name="id2605579"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names &#8212; Implementation and
Specification</i>. </span><span class="pubdate">November 1987. </span></p>
</div>
</div>
@@ -278,42 +278,42 @@
<h3 class="title">
<a name="proposed_standards"></a>Proposed Standards</h3>
<div class="biblioentry">
-<a name="id2605355"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym>
+<a name="id2605684"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym>
Specification</i>. </span><span class="pubdate">July 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605382"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym>
+<a name="id2605710"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym>
Queries</i>. </span><span class="pubdate">March 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605408"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p>
+<a name="id2605736"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605432"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p>
+<a name="id2605761"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605456"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p>
+<a name="id2605784"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605579"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p>
+<a name="id2605840"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605606"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p>
+<a name="id2605866"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605633"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p>
+<a name="id2605893"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605694"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2605955"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605724"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2605985"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605754"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p>
+<a name="id2606014"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605781"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret
+<a name="id2606041"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret
Key Transaction Authentication for DNS
(GSS-TSIG)</i>. </span><span class="pubdate">October 2003. </span></p>
</div>
@@ -322,19 +322,19 @@
<h3 class="title">
<acronym class="acronym">DNS</acronym> Security Proposed Standards</h3>
<div class="biblioentry">
-<a name="id2605863"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p>
+<a name="id2606123"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605890"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p>
+<a name="id2606150"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605926"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p>
+<a name="id2606186"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p>
</div>
<div class="biblioentry">
-<a name="id2605991"></a><p>[<abbr class="abbrev">RFC4034</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
+<a name="id2606251"></a><p>[<abbr class="abbrev">RFC4034</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606056"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS
+<a name="id2606316"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS
Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
</div>
</div>
@@ -342,146 +342,146 @@
<h3 class="title">Other Important RFCs About <acronym class="acronym">DNS</acronym>
Implementation</h3>
<div class="biblioentry">
-<a name="id2606130"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely
+<a name="id2606390"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely
Deployed <acronym class="acronym">DNS</acronym> Software.</i>. </span><span class="pubdate">October 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606155"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation
+<a name="id2606416"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation
Errors and Suggested Fixes</i>. </span><span class="pubdate">October 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606224"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p>
+<a name="id2606484"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606259"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym>
+<a name="id2606519"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym>
Queries for IPv6 Addresses</i>. </span><span class="pubdate">May 2005. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">Resource Record Types</h3>
<div class="biblioentry">
-<a name="id2606305"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p>
+<a name="id2606565"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606362"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p>
+<a name="id2606622"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606400"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using
+<a name="id2606660"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using
the Domain Name System</i>. </span><span class="pubdate">June 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606435"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the
+<a name="id2606695"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the
Domain
Name System</i>. </span><span class="pubdate">January 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606489"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the
+<a name="id2606749"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the
Location of
Services.</i>. </span><span class="pubdate">October 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606528"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to
+<a name="id2606788"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to
Distribute MIXER
Conformant Global Address Mapping</i>. </span><span class="pubdate">January 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606553"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p>
+<a name="id2606813"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606579"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606839"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606605"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606866"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606632"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606892"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606672"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606932"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606701"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2606962"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606731"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p>
+<a name="id2606992"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606774"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2607034"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606807"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p>
+<a name="id2607067"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606834"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p>
+<a name="id2607094"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606857"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP
+<a name="id2607117"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP
version 6</i>. </span><span class="pubdate">October 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606915"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p>
+<a name="id2607175"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">
<acronym class="acronym">DNS</acronym> and the Internet</h3>
<div class="biblioentry">
-<a name="id2606947"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names
+<a name="id2607207"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names
and Other Types</i>. </span><span class="pubdate">April 1989. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606972"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and
+<a name="id2607233"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and
Support</i>. </span><span class="pubdate">October 1989. </span></p>
</div>
<div class="biblioentry">
-<a name="id2606995"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p>
+<a name="id2607255"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607018"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p>
+<a name="id2607278"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607064"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p>
+<a name="id2607393"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607088"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p>
+<a name="id2607416"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">
<acronym class="acronym">DNS</acronym> Operations</h3>
<div class="biblioentry">
-<a name="id2607145"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p>
+<a name="id2607474"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607169"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File
+<a name="id2607497"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File
Configuration Errors</i>. </span><span class="pubdate">October 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607195"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and
+<a name="id2607524"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and
Configuration Errors</i>. </span><span class="pubdate">February 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607222"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p>
+<a name="id2607550"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607326"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for
+<a name="id2607587"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for
Network Services.</i>. </span><span class="pubdate">October 1997. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">Internationalized Domain Names</h3>
<div class="biblioentry">
-<a name="id2607372"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names,
+<a name="id2607633"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names,
and the Other Internet protocols</i>. </span><span class="pubdate">May 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607404"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
+<a name="id2607665"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607450"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p>
+<a name="id2607710"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607485"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode
+<a name="id2607746"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode
for Internationalized Domain Names in
Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
</div>
@@ -497,47 +497,47 @@
</p>
</div>
<div class="biblioentry">
-<a name="id2607530"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String
+<a name="id2607790"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String
Attributes</i>. </span><span class="pubdate">May 1993. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607553"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p>
+<a name="id2607813"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607578"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load
+<a name="id2607838"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load
Balancing</i>. </span><span class="pubdate">April 1995. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607604"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p>
+<a name="id2607864"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607627"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p>
+<a name="id2607888"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607673"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p>
+<a name="id2607933"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607697"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p>
+<a name="id2607957"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607723"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via
+<a name="id2607984"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via
Shared Unicast Addresses</i>. </span><span class="pubdate">April 2002. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607749"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p>
+<a name="id2608009"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p>
</div>
</div>
<div class="bibliodiv">
<h3 class="title">Obsolete and Unimplemented Experimental RFC</h3>
<div class="biblioentry">
-<a name="id2607793"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical
+<a name="id2608053"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical
Location</i>. </span><span class="pubdate">November 1994. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607850"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p>
+<a name="id2608110"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607877"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation
+<a name="id2608137"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation
and Renumbering</i>. </span><span class="pubdate">July 2000. </span></p>
</div>
</div>
@@ -551,39 +551,39 @@
</p>
</div>
<div class="biblioentry">
-<a name="id2607925"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p>
+<a name="id2608185"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607964"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p>
+<a name="id2608225"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p>
</div>
<div class="biblioentry">
-<a name="id2607991"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p>
+<a name="id2608251"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608021"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC)
+<a name="id2608281"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC)
Signing Authority</i>. </span><span class="pubdate">November 2000. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608046"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p>
+<a name="id2608307"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608073"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p>
+<a name="id2608333"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608109"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p>
+<a name="id2608370"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608146"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p>
+<a name="id2608406"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608172"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p>
+<a name="id2608433"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608199"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record
+<a name="id2608459"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record
(RR) Secure Entry Point (SEP) Flag</i>. </span><span class="pubdate">April 2004. </span></p>
</div>
<div class="biblioentry">
-<a name="id2608244"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p>
+<a name="id2608504"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p>
</div>
</div>
</div>
@@ -604,14 +604,14 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2608285"></a>Other Documents About <acronym class="acronym">BIND</acronym>
+<a name="id2608546"></a>Other Documents About <acronym class="acronym">BIND</acronym>
</h3></div></div></div>
<p></p>
<div class="bibliography">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2608295"></a>Bibliography</h4></div></div></div>
+<a name="id2608555"></a>Bibliography</h4></div></div></div>
<div class="biblioentry">
-<a name="id2608297"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p>
+<a name="id2608557"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p>
</div>
</div>
</div>
@@ -648,7 +648,7 @@
</ul></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2610974"></a>Prerequisite</h3></div></div></div>
+<a name="id2611440"></a>Prerequisite</h3></div></div></div>
<p>GNU make is required to build the export libraries (other
part of BIND 9 can still be built with other types of make). In
the reminder of this document, "make" means GNU make. Note that
@@ -657,7 +657,7 @@
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2610984"></a>Compilation</h3></div></div></div>
+<a name="id2611449"></a>Compilation</h3></div></div></div>
<pre class="screen">
$ <strong class="userinput"><code>./configure --enable-exportlib <em class="replaceable"><code>[other flags]</code></em></code></strong>
$ <strong class="userinput"><code>make</code></strong>
@@ -672,7 +672,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2608961"></a>Installation</h3></div></div></div>
+<a name="id2610040"></a>Installation</h3></div></div></div>
<pre class="screen">
$ <strong class="userinput"><code>cd lib/export</code></strong>
$ <strong class="userinput"><code>make install</code></strong>
@@ -694,7 +694,7 @@ $ <strong class="userinput"><code>make install</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2608992"></a>Known Defects/Restrictions</h3></div></div></div>
+<a name="id2610071"></a>Known Defects/Restrictions</h3></div></div></div>
<div class="itemizedlist"><ul type="disc">
<li><p>Currently, win32 is not supported for the export
library. (Normal BIND 9 application can be built as
@@ -734,7 +734,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2609888"></a>The dns.conf File</h3></div></div></div>
+<a name="id2610148"></a>The dns.conf File</h3></div></div></div>
<p>The IRS library supports an "advanced" configuration file
related to the DNS library for configuration parameters that
would be beyond the capability of the
@@ -752,14 +752,14 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2609914"></a>Sample Applications</h3></div></div></div>
+<a name="id2610174"></a>Sample Applications</h3></div></div></div>
<p>Some sample application programs using this API are
provided for reference. The following is a brief description of
these applications.
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2609923"></a>sample: a simple stub resolver utility</h4></div></div></div>
+<a name="id2610183"></a>sample: a simple stub resolver utility</h4></div></div></div>
<p>
It sends a query of a given name (of a given optional RR type) to a
specified recursive server, and prints the result as a list of
@@ -823,7 +823,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610013"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div>
+<a name="id2610274"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div>
<p>
Similar to "sample", but accepts a list
of (query) domain names as a separate file and resolves the names
@@ -864,7 +864,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610067"></a>sample-request: a simple DNS transaction client</h4></div></div></div>
+<a name="id2610327"></a>sample-request: a simple DNS transaction client</h4></div></div></div>
<p>
It sends a query to a specified server, and
prints the response with minimal processing. It doesn't act as a
@@ -905,7 +905,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610404"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div>
+<a name="id2610391"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div>
<p>
This is a test program
to check getaddrinfo() and getnameinfo() behavior. It takes a
@@ -922,7 +922,7 @@ $ <strong class="userinput"><code>make</code></strong>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2610419"></a>sample-update: a simple dynamic update client program</h4></div></div></div>
+<a name="id2610406"></a>sample-update: a simple dynamic update client program</h4></div></div></div>
<p>
It accepts a single update command as a
command-line argument, sends an update request message to the
@@ -1017,7 +1017,7 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
-<a name="id2611028"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div>
+<a name="id2611083"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div>
<p>
It checks a set
of domains to see the name servers of the domains behave
@@ -1074,7 +1074,7 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2611092"></a>Library References</h3></div></div></div>
+<a name="id2611147"></a>Library References</h3></div></div></div>
<p>As of this writing, there is no formal "manual" of the
libraries, except this document, header files (some of them
provide pretty detailed explanations), and sample application
diff --git a/doc/arm/Bv9ARM.html b/doc/arm/Bv9ARM.html
index faf59d7b..05cd8f4b 100644
--- a/doc/arm/Bv9ARM.html
+++ b/doc/arm/Bv9ARM.html
@@ -113,33 +113,33 @@
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609137">Converting from insecure to secure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563504">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563540">Fully automatic zone signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563643">Private-type records</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563681">DNSKEY rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563830">Dynamic DNS update method</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563863">Automatic key rollovers</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563890">NSEC3PARAM rollovers via UPDATE</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571955">Converting from NSEC to NSEC3</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571964">Converting from NSEC3 to NSEC</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571977">Converting from secure to insecure</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572083">Periodic re-signing</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572092">NSEC3 and OPTOUT</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609329">Converting from insecure to secure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563559">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563595">Fully automatic zone signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563904">Private-type records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563941">DNSKEY rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563954">Dynamic DNS update method</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572042">Automatic key rollovers</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572069">NSEC3PARAM rollovers via UPDATE</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572078">Converting from NSEC to NSEC3</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572088">Converting from NSEC3 to NSEC</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572101">Converting from secure to insecure</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572138">Periodic re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572148">NSEC3 and OPTOUT</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572262">Validating Resolver</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572284">Authoritative Server</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608840">Validating Resolver</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608862">Authoritative Server</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#pkcs11">PKCS #11 (Cryptoki) support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2653420">Prerequisites</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609754">Building BIND 9 with PKCS#11</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636298">PKCS #11 Tools</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636329">Using the HSM</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636528">Specifying the engine on the command line</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636573">Running named with automatic zone re-signing</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2611765">Prerequisites</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609810">Building BIND 9 with PKCS#11</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610003">PKCS #11 Tools</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610034">Using the HSM</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636515">Specifying the engine on the command line</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636561">Running named with automatic zone re-signing</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572842">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
<dd><dl>
@@ -157,58 +157,58 @@
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#configuration_file_elements">Configuration File Elements</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#address_match_lists">Address Match Lists</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574642">Comment Syntax</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574711">Comment Syntax</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#Configuration_File_Grammar">Configuration File Grammar</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575302"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575371"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#acl"><span><strong class="command">acl</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575492"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575561"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#controls_statement_definition_and_usage"><span><strong class="command">controls</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575851"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575868"><span><strong class="command">include</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575921"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575938"><span><strong class="command">include</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575892"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575915"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576006"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576200"><span><strong class="command">logging</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575961"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575985"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576075"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576269"><span><strong class="command">logging</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578227"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578300"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578501"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578545"><span><strong class="command">masters</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578364"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578438"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578502"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578546"><span><strong class="command">masters</strong></span> Statement Definition and
Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578566"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2578567"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#options"><span><strong class="command">options</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_grammar"><span><strong class="command">server</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_definition_and_usage"><span><strong class="command">server</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#statschannels"><span><strong class="command">statistics-channels</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590549"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590678"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#trusted-keys"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590757"><span><strong class="command">trusted-keys</strong></span> Statement Definition
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590886"><span><strong class="command">trusted-keys</strong></span> Statement Definition
and Usage</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590804"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590933"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#managed-keys"><span><strong class="command">managed-keys</strong></span> Statement Definition
and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#view_statement_grammar"><span><strong class="command">view</strong></span> Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591314"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591374"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zone_statement_grammar"><span><strong class="command">zone</strong></span>
Statement Grammar</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593068"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593142"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
</dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596429">Zone File</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596658">Zone File</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them">Types of Resource Records and When to Use Them</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598728">Discussion of MX Records</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598888">Discussion of MX Records</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#Setting_TTLs">Setting TTLs</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599344">Inverse Mapping in IPv4</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599470">Other Zone File Directives</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599675"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599435">Inverse Mapping in IPv4</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599562">Other Zone File Directives</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599904"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zonefile_format">Additional File Formats</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#statistics">BIND9 Statistics</a></span></dt>
@@ -217,41 +217,41 @@
<dt><span class="chapter"><a href="Bv9ARM.ch07.html">7. <acronym class="acronym">BIND</acronym> 9 Security Considerations</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604449"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604504"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604530">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604589">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604585">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604645">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="Bv9ARM.ch08.html">8. Troubleshooting</a></span></dt>
<dd><dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604669">Common Problems</a></span></dt>
-<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2604675">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604686">Incrementing and Changing the Serial Number</a></span></dt>
-<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604704">Where Can I Get Help?</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604930">Common Problems</a></span></dt>
+<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2604935">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604947">Incrementing and Changing the Serial Number</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2604964">Where Can I Get Help?</a></span></dt>
</dl></dd>
<dt><span class="appendix"><a href="Bv9ARM.ch09.html">A. Appendices</a></span></dt>
<dd><dl>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2604765">Acknowledgments</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605162">Acknowledgments</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#historical_dns_information">A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></a></span></dt></dl></dd>
-<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605142">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
+<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2605334">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#ipv6addresses">IPv6 addresses (AAAA)</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bibliography">Bibliography (and Suggested Reading)</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#rfcs">Request for Comments (RFCs)</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#internet_drafts">Internet Drafts</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608285">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608546">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bind9.library">BIND 9 DNS Library Support</a></span></dt>
<dd><dl>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610974">Prerequisite</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610984">Compilation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608961">Installation</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2608992">Known Defects/Restrictions</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609888">The dns.conf File</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2609914">Sample Applications</a></span></dt>
-<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611092">Library References</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611440">Prerequisite</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611449">Compilation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610040">Installation</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610071">Known Defects/Restrictions</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610148">The dns.conf File</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2610174">Sample Applications</a></span></dt>
+<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2611147">Library References</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="reference"><a href="Bv9ARM.ch10.html">I. Manual pages</a></span></dt>
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf
index 2cf83e99..c7eb5f28 100644
--- a/doc/arm/Bv9ARM.pdf
+++ b/doc/arm/Bv9ARM.pdf
@@ -2888,7 +2888,7 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1026 0 obj <<
-/Length 3275
+/Length 3273
/Filter /FlateDecode
>>
stream
@@ -2906,10 +2906,16 @@ Y¨–¦+9^-ÃH1^V>”x©MhI´Ú÷"[ˆ@³A†"X&
/|Âlý!¥Î ¥_"J?Ò{«ŸTÌÚ ùÄ'È‹k‡€[uù³»Ï­bó9³Elí( Q) wƒ ¤\·
Á¬ÒxH†‚›© T^®æ8 ‰È–RãDS"'â T&½CÝ »[.M+rs'qbeXºÏ'á`4…ÛO7dH¡ƒå£ÐIÄA¡CzoБÞ1ã¸oÑQ5:oovo¨­
Í÷çLÓÂ%˜zY¢oô‚ï  ä8 dH„5”Ý·Ì¥â 
-ÐýtÎØ‡¼L$æ%[sdHiŽóNižˆƒÒœôšKÇ´h§"^ùßÖ<®E5‚¦àlü믓fŸóE¨Õ¶ÿæe†TdËŒ )™qª)™qP2ïxçØ{ó5R’&„¬«îo,B.†ÐÄíœ;x9¾z¿üXVÿn­êÌ8aÜ/kÈ ÷Îû®³Ö}~;*[;^“•´‡‚çõrq½þ†‰ê[Eb¾ºÓÓ¼üëb´¸ åô,uøÜG¤/ûHB†Ô‘„塘HÄA±Az6„uQ{×°!66úèQŠŠç£rZMŸ¼Õûõ/’1™¹¤`C‚” ±RRq¤ìzO¹Âxæ´¯15͘»3Ô¶§rà ¦×oÊw墜]”Ý™ƒ7¿ïx‹ ˆñv#hÙ½Æ ¿•©¯ÉcJ[æ„­e2q¼M¦æÅz‹ÓÉzÝru?-·Ou¾Òɤ4ûÈB†Ô‘…%£8IÄAñBzošV¡4³ÞpÀ%~ÔNÓúj´¼xEù¦BÅX±ŸÓn¡éÌFR¨`¹T÷²T*¤÷xMHɬQº…e‹¬Î‡ÜΖ£?ŽúÒëýùðû€©ÌR `©(PqP Þ[PgV
-‡@ (Ï˪ÍÆmЧ¼ßÞŒ®ÊodQó׸4³”Í
-ÏlÁÛº"â}ûÓú)F íì~Ô Qtf£‚ )T°\*‰8(THïq¸àÞ2c¼jaÙוO%¦2lH€²!J*Ú{ ŠÓa–Ó,!ªAÙו] KÙ CЬ‚ê^Y›Šƒb€ôó[n%3Eœ°ˆûÍo¿[Œ¦ÓQuöÈÊýôv Èh6.ÈÂ+Fá’ˆƒÂ…ôÞ´!Üp¦Ã´°õˆµuÂFræ\¡‚ƒj¯ÑŤÙgcÒLðÐóÔû –£eÙ¶1‘.+ö_FÖæ<›'dHñ„5UÝëÄRqP<‘Þ'å™VÂFžÄ—àéîZæ<|ãä6›dHqƒµ£¸IÄAqCzn¤e:ΆªµÇwas1Ÿ-ÕúÔ]v¤g—⎱H»ÇùÅ%ø4)Φ§µ£àARììA¡C¹r„fÊú¶‚©/†Î=Zh-)ˆ@.³A†$X+Õ½5… é8á’)eÛʤïäd<»˜¬.Ë&†YÏïêvO«Q†gム)|°„>‰8(|Hï€OÁ™â&Òc¾=w2_û¢þg^±™Ì†¤µ£A:©îE±‰ (B(× Î3锌€Ø;©¾±9Ñø†
-ä¼ch‘ÒíOúBÊsIBvIXP‚¤DI¤køÕ!ˤíPã¾Iw3ºx|S(HmöϵvÔ¯!ábAP¿MD¹Ž¿À¤h'OþN`&ó««jY¢6wÆë»Îã|ë_Èõ™kV“àüŸ
+ÐýtÎØ‡¼L$æ%[sdHiŽóNižˆƒÒœôšKÇ´h§"^ùßÖ<®E5‚¦àlü믓fŸóE¨Õ¶ÿæe†TdËŒ )™qª)™qP2ïxçØ{ó5R’&„¬«îo,B.†ÐÄíœ;x9¾z¿üXVÿn­êÌ8aÜ/kÈ ÷Îû®³Ö}~;*[;^“•´‡‚çõrq½þ†‰ê[Eb¾ºÓÓ¼üëb´¸ åô,uøÜG¤/ûHB†Ô‘„塘HÄA±Az6„uQ{×°!66úèQŠŠç£rZMŸ¼Õûõ/’1™¹¤`C‚” ±RRq¤ìzO¹Âxæ´¯15͘»3Ô¶§rà ¦×oÊw墜]”Ý™ƒ7¿ïx‹ ˆñv#hÙ½Æ ¿•©¯ÉcJ[æ„­e2q¼M¦æÅz‹ÓÉzÝru?-·Ou¾Òɤ4ûÈB†Ô‘…%£8IÄAñBzošV¡4³ÞpÀ%~ÔNÓúj´¼xEù¦BÅX±ŸÓn¡éÌFR¨`¹T÷ª•T*¤÷xMHɬQº…e‹¬Î‡ÜΖ£?ŽúÒëýùðû€©ÌR `©(PqP Þ[PgV
+‡@ (Ï˪ÍÆmЧ¼ßÞŒ®ÊodQó׸4³”Í
+2¤PÁrQ¨$â P!½Çá‚{ËŒñª…e_W>”˜Ê\P°!ʆTª{Ue*Ú{ ŠÓa–Ó,!ªAÙו] KÙ CЬÅ@"ŠÒ;Ìo¹•ÌqÂ"î7¿ýn1šNGÕÙ#+÷ÓÛ-\ £Ù¸ C
+¬…K"
+Ò{Ó†pÙ>ÐÂÖ¥më„ä̹BÕ^£‹I³ÏƤ™à¡ç©÷,G˲mc"]V쿌¬Íy6OÈâ kªº×‰¥â x"½OÊ3­„<‰/ÁÓݵÌyþøÆ!Èm67ÈâkGq“ˆƒâ†ôÜHËtœ UkïÂæb>[.ªõ©»ìHÏ
+.Åc‘vó‹K:ñiRœMOkGÁƒTÝ« APèP®¡™²¾­`ê‹¡sZ‹‡@J'"ËlF! ÖŠ¢$… é8á’)eÛʤïäd<»˜¬.Ë&†YÏïêvO«Q†gム)|°„ª{Åc*
+Ò;àSp¦¸‰ô˜/EÏ݃Ì×¾¨ÿ™Wl@&³!ií(FN"»AP„P®@œgÒ)±wR}cs¢ñ È;yÇÐ"¥ÛŸô…”ç’„ì’° I‰ ’H×ð«C–I-Ú¡Æ} ’îftñø¦PÚìŸ'jí¨_'BÂÄ$‚ ~›ˆr+€IÑNžüÀLæWWÕ
+²Dm
+îŒ×wÇùÖ¿ë3׬&Áù?/
+Ì8×±ÎU¸‚i£uO†&]ÖÃéxL,<_ï…BÿÙëÒ’endstream
endobj
1025 0 obj <<
/Type /Page
@@ -3209,14 +3215,14 @@ endobj
1072 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 244.6405 511.2325 253.7462]
+/Rect [499.2773 244.7402 511.2325 253.7462]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.1.1) >>
>> endobj
1073 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 232.6088 511.2325 241.7146]
+/Rect [499.2773 232.7085 511.2325 241.7146]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.1.1.1) >>
>> endobj
@@ -3272,7 +3278,7 @@ endobj
1081 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 136.3554 511.2325 145.4611]
+/Rect [499.2773 136.4551 511.2325 145.4611]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.3) >>
>> endobj
@@ -3286,7 +3292,7 @@ endobj
1083 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 112.3917 511.2325 121.3978]
+/Rect [499.2773 112.292 511.2325 121.3978]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.5) >>
>> endobj
@@ -3326,22 +3332,20 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1090 0 obj <<
-/Length 3428
+/Length 3429
/Filter /FlateDecode
>>
stream
xÚíKSIÇï|
Ñʼn‘„óé·ZÝU• Õ)j×0 GØw*Sùÿ©YÕÕl@ý6°ŠPáäÀ8Iej0¾Ø¡ƒ3ÿovX{Í0\4„W½<ÙùÇkaŽ8Íõàäx/K¨µlprúëî«·G'G'ï÷~?ùqçà$¾)t̨¨ßñÏ_§ƒSïÿÇJ„³jðÅÿ@ sŽ.v¤DI!Âo¦;ïw~‰oþwmšû JX¢,7™OÂ9ø$ŒsbñÑ)G´àbýQ4á>ÔúƒøË¸\0b-•ÞG}Ùt~v6™µ×Á·†ít{ÝûÕhU]T³ÕÞ+º»_ýF)ŸMV“ù¬ùÍhvÚ¼ø°U{CÇÌ.Ù*JïçéÜÿbwMhÅ-Ñœ²”ËÊ,ÎÍ‹c¨U°BÛZÝ|ÿ:¹R߈#hŸ‹#õΔ$Æ70Ò­™¤¶ç¿:t÷ä¼Ê@£)¡Lš†ñùh6«¦9h,‘J…ëÞ/FKÏ‚è^Y¸NÊà é-†bð@ù0x2q`ð Þ<Bí¨‚ððx|Cr6_|ËÐ#)Ñö:<’ÚϽ´<!½Åð
-¤y‰ø£¥¦—“ÉbN€!Æ TJÑ~N2q`œ ÞÓX†1b¤o "'lóXæË¢ÊQÁýHÆ–ɼYŒ..F‹úý°Û™ïÒõÒò]L0Äh‚z*ÖOS&Œ&Ô{¤I;×4?‘&~74mKæ¶§¯Šy-¥"ÔttS¼—š\5¸÷D5ÄRЉÐ\Œ–«*Û5ÕÓ)Ù7ŠyèÐ÷¨Mq1?ÉÈÑs3 ÌubÇ(b…f yWðÜf.î+½„\S 1L V'™80PPï‰-ˆÕŠ'RÔFRæ—µØYR´‡“™ ÍŒeìi53!ÇÅCŒ ¨!FP&Œ Ô{"Hy8œu?}WÝ¢­1òQ·5!—Ť
-F˜çIdžÃbB€!FÔȨ~B2q`„ Þ#!Òy, ˜h ¹Å^Á¥9Ný˜1·Æ% õ¿¸±Ä%¬Ú.¸úȉ¹-%"ät´CÈÉŃ{OäXIeú“ 9ÇÇ˪P¼mV8|Ó 'íó¼"f®˜ `ˆq•1ýUË\¨÷Ä…áDˆN‚©ØåÐÝ«YC‚©ÃùÛºŸÎbV’†
- #åf(˜ëĉïH„¦ºÓ (/¯&ÓÕpÒ.”/Áte2û4_\ŒÒÖˆ¿æ³ºîßñQn ŽY(ÖbÃ,ÛþÚS.LbÔ{ÒXZ"¬ëÔ˜Éi|pq¹jKÖEõC(AÝKw’TŒ
-§õö”b:ŠÅ†˜Ø0ݶ¿ä‹õžÄæ’HiºE'׈]¯^Ç-n¯ýw¿
-!žòX0d¬˜`ˆñ
-Ät2@óê7ªèñ»þª•_“¦2-™|ð{øøÅâCL\˜^‹L
-™.æbA%mÿ>†\G¨÷È‘°Þ@HP‚²wÄÑæÕÖmCá)f´”hˆðÒQ á% î=ñb4Q (Ýf\<“åj2^Ûcr›ò­"RY·¡ ’ÜlÁÍ!‰Å„$;  ‘íß“ ÃsèÐ’(êOœÞ››åþFz1Ù*æ
- Á;ÇÏ‚Ž»½ «ŸKÃM‚¯%›µµ‚=©ÁEÐ+$¬˜`ˆñ
-™,åØ!˜@0J2Q  ¾ÓC+ áŽ9Àˆ,aÄO¦rûJ4±Òõða”zRÃááRv€ÂÔ1äáƒ7£Àž=ˆùç!‚³ˆŽnÇÁ/öÃL©~ê×õðÁ×U5«K5ÿôƒ`FwWYИўPvGþðæàèàøE]ê;É5IZJ…Ì#§ï©àÓ‡@›¨R’
+¤y‰ø£¥¦—“ÉbN€!Æ TJÑ~N2q`œ ÞÓX†1b¤o "'lóXæË¢ÊQÁýHÆ–ɼYŒ..F‹úý°Û™ïÒõÒò]L0Äh‚z*ÖOS&Œ&Ô{¤I;×4?‘&~74mKæ¶§¯Šy-¥"ÔttS¼—š\5¸÷D5ÄRЉÐ\Œ–«*Û5ÕÓ)Ù7ŠyèÐ÷¨Mq1?ÉÈÑs3 ÌubÇ(b…f yWðÜf.î+½„\S 1L V'™80PPï‰-ˆÕŠ'RÔFRæ—µØYR´‡“™ ÍŒeìi53!ÇÅCŒ ¨!FP&Œ Ô{"Hy8œu?}WÝ¢­1òQ·5!—Ť
+F˜çIdžÃbB€!FÔȨ~B2q`„ Þ#!Òy, ˜h ¹Å^Á¥9Ný˜1·Æ% õ¿¸±Ä%¬Ú.¸úȉ¹-%"ät´3ýÕë\9¸÷DŽ•DPÖ©?0Ùs|¼¬Ú ÅÛf…Ã÷7ÍpÒ>Ï+b抹
+™.æbA%mÿ>†\G¨÷È‘°Þ@HP‚²wÄÑæÕÖmCá)f´”hˆðÒQ á% î=ñb4Q (Ýf\<“åj2^Ûcr›ò­"RY·¡ ’ÜlÁÍ!‰Å„$;  ‘íß“ ÃsèÐ’(êOœÞ››åþFz1Ù*æ
+ 4D éÈæú1ÈÅ@ƒ{OÐXJŒw ñÍEÛz‰= 5nÓ)ÊÚ'¼¼Ó] 0Ä`‚rºþå¾\L¨÷“Xpo;·wÂÒæÈ(¶=½VÈj12É#hæú÷ f‚ÀxÁ\ÇÕ@®4±JÒœ c\»AíÛeµ¾ I<ÕMa½l„à 1: D™80>Pï )}[!9¤=,ãÕt´¾ƒõ‘œ‘ñ@6Æ„ã 1\ `®!(† ê=á"8qLˆ‹¸ÞžÄSvnF¢n!sÅ\
+^O¦õ:œr¾ yÃ×
+÷C– ƒ uç<ÌBi<°VÔ#XÆigàZÃ6ÿÔwíq5ž77Å,¯Ífþ}^µœÕ<Ìo°ø¼¾Ûñ€J¶­ 1#¥‚CCDðNÆ1Ás ‚ãîcoÂêçÒpg“àkÉÅfm­`Ojpô
+ +æb<@AP2`< îFZïI<ð–‡õ-µÕ×ÕUØÐ^}½ §ïÄÚElŽ×ó½­ý@ÌS1ÀÃ
endobj
1089 0 obj <<
/Type /Page
@@ -3424,7 +3428,7 @@ endobj
1102 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 638.7678 539.579 647.7241]
+/Rect [527.6238 638.7678 539.579 647.8735]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.1) >>
>> endobj
@@ -3466,7 +3470,7 @@ endobj
1108 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 566.9425 539.579 575.8988]
+/Rect [527.6238 567.0421 539.579 576.0482]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.7) >>
>> endobj
@@ -3487,7 +3491,7 @@ endobj
1111 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 531.0298 539.579 539.9861]
+/Rect [527.6238 531.1295 539.579 540.1356]
/Subtype /Link
/A << /S /GoTo /D (subsubsection.6.2.16.10) >>
>> endobj
@@ -3613,7 +3617,7 @@ endobj
1129 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [527.6238 315.5539 539.579 324.5102]
+/Rect [527.6238 315.5539 539.579 324.6596]
/Subtype /Link
/A << /S /GoTo /D (subsection.6.2.24) >>
>> endobj
@@ -6306,38 +6310,29 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1560 0 obj <<
-/Length 4062
+/Length 4323
/Filter /FlateDecode
>>
stream
-xÚÍ[[s#·±~ׯ`žB¹L,î—¤ò°q´>›c¯[©<8.Ÿ5’¦–äÈœáj•ÊO7nœ!ARŽ˜ªSªÝ1@hôåC£‡M(ü±‰ÒD;î&ÆI¢(S“ùò‚NîáÝ×,¶™¥F³a«?^_¼y'Ìħ¹ž\ß hYB­e“ëÛ§š0r èô«ï>¼{ÿõß¾{iäôúýw.g\Ñé»÷ß\…ÒÕ7Wß^}¸þ~Qá¦_ýÏÛ¿\_}ÞéHäï?ü)Ô¸ð8@õû«wWß_}øêêò§ë?_\]çÅ ̨À•ürñãOtr ëþó%ÂY5y‚”0çødy!• J
-‘j?\ü5¼õ]K ”’Í•˜Ì¬&ÜhuxØ0…acQ9bŒ²;£Î´%šQÜj çÛ-‘l°%FgÍÄ
-ÂÖ–Y2KgCŠû³s”(¾;½ÇvÝãß¼ã|Жq(C`«·+”;}ÿ|šA¯ÑÒ#¬ŽV›åM½.ŠX­Tl¢Æž^?ÔŠÄÆÊ“ qB¸Ø¬éÂdͲéëÛ0ã¾ •4þ|X_2;m7÷¡æ#Ô—H{2cRÌ#N)î©>5=6efú©Zlê.”oêEû„E;e”ËPÙ??6ój±x?ýHuׯ›y˜‹ÓêÍ%›vu(ßÄöajóºë`œOe} W«fu9TO«Ÿ* Ô¶=pTجUxݵË:4˜W@ñK(s:­V©s_¯›îchñªèÿ}ñ[x°ðzþP­+˜÷:þ„n£³sƒ(3Ýt¸@,ù9) ~>.ªyýÐ.n=!€Ï®^Ôó~Ôv]­nÛe(?4÷³¸ïÈÅÛ?PÉ®–IBÁˆûVc_g$è„
-Þz©^x÷m–X)“]Ùg0ŒX\çÙ8”)ž`‘€´è£G<ªnoKÖŒ \ð•a¨®àaïÚÅ¢cñäY,@káY8Ó-ªî!š/ï´«¨×ì7Q³%òr”$PèêU¨‚R(Dó¯Û»PwÓô](5«Ü16¯ûeÕ}»c¥^_:
-JÜ,Ð@ÔõŸA—[ÜKÃ<5|Ve‡â„“w”[Jœƒ.Ú(â¤f¯ÞÑLq6$¹¿£ÜÂ.Y@6¹Ù±5DSvtY=‡·àŸÀ#
-À hIó „â_ÉCQØäˆ£ËTY@
-´5[ËÒs¥ŽÓN¤Qx ìqô?O”p"}ÃK,’ÒŒ C˜ç,ñHžq3V¢ ‘ãqKûↃ&öÐãìQ ]öä²4‚6ðÂØ ­‚A°
-ø"Ìx¿ÿîÕ`r0³wÏOàï
-<âíïçð¢Y}jŸÆí˜îO:ôèæí£G8øUÁŸ.T$ñÛ±¾´<(nbÅVA xkû‡ª%Ä3©.v& 5OÍb‘è÷󇨬šœ•LÝwaOî‚‘Z†_Õê9ütƒ¡4Ø¢àä¯ ™<È!´¡,”ŒÇÑ•„³È–õóîšĘQÛv¯5½‰àlH±
-À… ÒžR©Üîl*5¤xX¥Fó[4]ÿ¥*Cc_BYBMÛU+Öá¹lƒP´wšŠäå
-ŒBƒóWî|œÉO°F ì
-⼜dêqPƒ8œßœ9[SJÃRaG1éBŠè®]ÍVõ}Õ7ŸP65
->ƒcMxÛ¬úúÞ‡'àž–RÜDkBdb{,Â7
-¯–ÍýCjï6k0äëPS— Ì6þ¥ÂqÑaoý¡0oa½Ÿûð£‰ùé¡™GájÒ«ˆ‡Ð °ÁÞ½Nþ«6šz!âÇ%Œûx† aŒªسÒpÊpÀãÜðÕV:œ )îÏQN¤…#Ðh†Ð
- íô—M ”1éˆÚ¤mÇꀖ±äczðŒ1=(ùè >Ãyƒ££P;3í6‰FÕlün
-Ó—ä07<›)‘ÃÑ Á…]9ëÑ‚R!¸„5Å€~iv¨…èðYéó­?Ò;±|î,Qˆ7hÿÄ“H‘„B~µááûx6
-€Å—¡Œ ·£Íℚ|Æ-DbPcxr®>2ù”†D?ã‡|j ;já–¹ƒ;
-:A·|"­$Z‹×Gh3ÅÙäþ®J´0Ìl>¶©ñ@žÞþBለ‹+½S±'Å€U(u N†C-½'г!É‚$cxÕ›šÔÌ+rûTZ3H†Ìqº~Ó£ @
-s–Ö*hîžm­™â‰µ
-°CŠÁ’FkÅ륓 þM*‘œ¤d|ÿpqÐÜ ²Ø" Ť¬D€S;†g9ÀT`$@#nÔFbdÀ
-ŒÔ”
-¬ð#ÂÒ Ó³÷³ £©X{ްܹÊw.&&ÐAbÖŽ|‡mbþôÇT炈y2 •Z±2<àHÝÜž>£'@
-ào6ž8Œ¶¾Úì&г!É‚Ù0ØÇÜì$@'OKÃsȹn+0~¥¨þ54s—Cç%n ÁÇÑãEôa"nþY<.¥†ç;. (;.fXý%Ç%=ÂNFúü0ˆóbª·ƒáÑ.ž6« ÚŒ¶qvà°rÚ¿`(0”‘C¼D©ïªÍ¢$–`©¬Ì™d{­Œ[†·E/
-’ríð"›pôŒ#f=ð{‘t£Š¥§ªRï‚¶Ì“òÄ»ö>uõúS½ÞéÞõÕºqÖÝpnqk@y¾‹9œ‰yYÂæUŒZ·xñwÈâsƒ½¯o} ÜN»yµCl ¸]ÿ®`8@6°?É’ýo.jE¤æ;²Ú®K‘ A8¸ÉtCT æˆ¥Ùˆù;Gaåôc³hožûº+a*
-ÚŒ8‹Áµñ.pÃ\bŸ®šîN N!‚š æP³‡yãKΨ ©ÐCËxMU›U×ܯ°ÔùÒ¨0 D¬x/DyHvkͬ”ÚHI0×¥™¿bjïJÚMÿÖÅ º½8‹A¼¤_âÛ5±ŒêmšSØQ-1ØÅÇüͦé¦î²]K×Fm4PÕ]½H©0u?º‡ ŒŒyÏh)ÓánŤ ÷JìøßLŸÁc®ã‡âÃr F×Ѐӟƒs)Ýõçvg»ëR<|×?š_0ÃéÁBm!3Î5¿LñÄ},Øh‚«¶–) '%’¹
-ÇÉ} ((º™dàâ^좀Ë*§2¤Ô™üuC{2
-
-›¬sì§¼h "”IŒ)%F*<zé“'â¡jÿÿÍ”àxÒ‡BvÉ
+xÚÍ;Ùrã8’ïõ~[¹£„Â}ìñÐÓ뚩ٙêÙnoìÃôD,-Ñ6£t¸Eª\ž¯ßL$@‘$¹×šˆ GA
+4íÕ4fµP¿dþÅ1µb…dƃ~?¥WlÌ«Ïè•~ÚÅôÊâq½2BïiSß7ß^§Y”âQ³(&«º{^o¾PgûTÏš_8—‘«`4r•ŠÌ{¨+„òÌkõÊ!”Ìã>/F¡â)8A6zD£j>/i3©€qÁVÒ6P\ÁÂÞ¯‹5(‹çH
+ j‹H
+¢L»¨ÚǤ¾0|°v,¢Q²?$ÉÖHË@Ò
+Ññi©#³ßž6ˆ¿Z’``ã.uìDqòg°·{¬:j¡?“ûRcièyn‹ ¿›=¦iÕìË´äÉÔ]KgrOJjIoÕê…ÝãÎÆÐŽ¿Í5Øydôo
+Rˆ'ÍU¶rÂ(eÁø›p9ÊôÏF¡Û&uL›²ºIìO»ˆq¶1ÀäOAwä¶ëä¶c÷²™­ëUKýÉ¡!R‚)°à#iªWóduùÀm¨²%P'DhÇœ—’ œÄy=Èü‹£$!~ îtnÍ +h}:!„#t0)zwëÕtU?T]óyÓò‰’Skh´YuõCLOÀ
+çÄÉI渗oçã q:YàdL¯FU“§EA^?—ö œ¡û<]Ÿ~Ãã \€œæ,íU 0 Ô½Ø^{ˆgöª@[íËKgì›6*I-äap‰q\YœAžbV , ¹»g}‚©@Hp¤3'‰™¯Òr4¿@N"CœA–r
+³r·òI¦Ñ†g>¬¹Rý/ØSÌ Æ"ÊÅöÜC<³geaÏΆñžO2Ï |c¢&N?+lT”“'åF;Á¸äör[ï!žÙºot‰~Íqcš,¶ÛSzË-Z{­A*Ö©¾¥Öj² DS »4¥v‹•=ÊÔyyŠ9°h™C5ƒ{»WÞCœA–˜KÈyÚ«5 Ì ºŒ•Üþ¸ò32ÍÎ0emط̨ìJë1Íé2‚åœ.6”*
+œi¥ ÑÕ÷&’:5w q|£°5ºJqEØšsöKZÍìåÚ
+ae9•Bº˜À°wt1!þ`w1_c˜±X“½‚•:é!u3?£<Np}88W ãYÀlë›Õn†8‚,¨]eÁ
+ügIÚ5H=™Õ›“$ð'èÀeÝE²à R¥ Ü¢nÕTàÁGŸŠo}ž_R¬‰ML4Ç’ŠFCƒ‘êè×˺-/Vf .å
+D"è¾lQPœ2&bàGŠƒ‚E“·@ÄédÁꡤàýá~Ú Õ)-H•賩ê8¯A\)‰+ñÒ&¥Ã_r
+˜ œúîv¹ï¤šæ!åžjú¼]‚§2ÃÛ›vt;oKÆÎõãîJh¼à
+w ¹f‰!
+X1z}¦;g¯®d)±›JÚý&¬Ý¢ìt5ÎÆk'¹Ðb}Ò¯DkoÛmbFA÷#cã.R[ÏU[Ó³­îkš/Ñ“¡ÎŠ_ëMšÝï"±eZ{|Ý’jÉà¼B¾NøÏÓÛY³lÛhztØÕy#Ir_•,Ûs•¦åÂï=y„³šºÓ9õõbèjëÍ×x*8\¥Ìf^}\†èÀ?9U,†so ÿ‘·ä N`
+;§¢N¡¡ Џóú^£t¥§Ÿw±+=CˆÇ¯ôŒð#ã5D6
+t…U.†_ñ ‚±ÖVt„àj]
+‰¹gÚ¨lo(kth…gÚÊliÒYìûˆ‚ApzÚRŒï4E£ÑM¼¿íEü€iª@žOEÛàIÑ¢Ðm¶õ‘ëâJ©ƒZË8lgƇŒå}µhTꀗ3åªõ!–ð ÔiÑ̲@¥ðöó ¤ù}ºr”<âÔèNÉ êqPY Ìóþ&¿(O8½>Å[Þ4
+z_ °<^„V—£ÎT‚˜P{ÐQ:÷ôžBò#ºLtèùî™P¥³¯ñsÔƒoFyè?amÕךºbhûºíµâŪãšo S.uOo÷%öÙO»á7Ž»½O»ÿo¿ê“Sàoxf"jˆ¡E~~ði¸À̽Æoq|éûqÞ ý›¿Vß}˯S~p9aÏà{¬DZ#¬xi”|K/À<+ÛÏ þ¿x¯õendstream
endobj
1559 0 obj <<
/Type /Page
@@ -6349,132 +6344,132 @@ endobj
1561 0 obj <<
/D [1559 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-370 0 obj <<
-/D [1559 0 R /XYZ 56.6929 165.9801 null]
->> endobj
-1557 0 obj <<
-/D [1559 0 R /XYZ 56.6929 136.242 null]
->> endobj
-374 0 obj <<
-/D [1559 0 R /XYZ 56.6929 136.242 null]
->> endobj
-1562 0 obj <<
-/D [1559 0 R /XYZ 56.6929 106.2766 null]
->> endobj
1558 0 obj <<
-/Font << /F37 1030 0 R /F41 1223 0 R /F22 965 0 R /F21 942 0 R /F48 1243 0 R >>
+/Font << /F37 1030 0 R /F41 1223 0 R /F22 965 0 R /F21 942 0 R /F48 1243 0 R /F11 1343 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1565 0 obj <<
-/Length 3065
+1564 0 obj <<
+/Length 3057
/Filter /FlateDecode
>>
stream
-xÚ¥ZÝsÛ6÷_¡>En,˜ø ^ŸR×iÝi“\âÎ=4”–`‹cŠTHÊŽ§wÿûíb’’(¹£
-éLxoŸNgIaåS¾ ú©ÈæÅ§2[Ù-â¾o±¨mÓ|Zeí|ù©È›–èÿ£âcs´Îùk1ÔaÆ5K%êª@iÎS§Zž3q:ã ýÎ~Œ"Qæm^•dî¬\På—&»³^¬ˆ&3‘0såä½ÝN¹™‚~0NË©S’ª¨©£ŠiFLD_×ù*«ó≚›Æ.¨ÖVT.lkëU^Z?x>ïÄÏ«²u²ª‚·UM•Ymü|­¬ï¨Ö¶Îp… øœÔéôz +õpÎÒ8n-%aÒ¢©¨¶9åS¯¢˜æ%•íÒŽØÜð¬\ÈÉÃõÛr¦Ý7£’,Jcí9ÑêûÒxÊb­¸çiªºu{¿/L*&¤ š6kíÊ–-­7Æõ’Ò¶ :µ—9íG«6mÞnÚ°x¿Êl{w…ß]´ÝŒÃ ä‘2Á†¼[39Ð<ó.ucƒk=Q¥º¥²]úžÛª(ªÇ¼¼ûסSž(ÎtªÓãamÈå%8io¥ªFd¡¾#®w'…UÁ ¥ÏÚqíO»µ9<‚ºJ¶§ ¶¹zçm³eèØêèê݃ò«ûCŽû¨™„`FjñŒ™\G̸ž7Ó±YfÚvÜLÃiwÍ´&#aÐúÒÛ)÷\¿Ÿ¿ JYµîÀ5U$™ÑÉ3å눩×ó¦:6ëÀT»ÓŽ›j8mFKwwŒ3ÙwgÞµ¼G-(Ö[ßožúC8z ö(ÅCì¹§€¹«G
-1ÌÈݰsÈâ±åñØ·øë°Å;®g-~tÖÞâ{ÓŽZ|kÚ.|ѽ=ŒlÁo÷Žu¸¡ÚGÊyÌÛå±½BÁ¶«8Üóblob&¸0zo’˜bøñ½pÙ›ÀõüÞ›u°7»ÓŽïÍpZJ 7ðâ¯ì…-çEÕ„1!²ÜÔ@º÷Àúi”$x‚ùÂe³Jé¯>¨¸«O
-Ðã.#E€è÷j…ÍpùQÃ~™Ù*óˆLâ•[ßSƺ߿zQ ϶L<Zƒ.òEÙÃ/)â †Ú´à=pcádhG)«Òi ù-„Ž¢šgŲjZ?P ?¹LyÏPÚ¶Á‘;8… ¹;Wh¢A³Ÿ«ž Í h.¬G…²…©½ ¿¬:3cåÆ÷ÝV› SÞ´cPoa›y¯{Ü»‡IðX¹JwvX'Èm¼v‚[Å ºW£/.â’—“)ìî¦ñÄU¶°;|!– tå Õš§²Íæm>§1Íù¾jeÓyÑ`pF¬«¼)¡Æ$Ë] fÚäå|Ô4oê¼õàôvÐOy§ÖÞ©¸]u¸ý!+òEF RmÁvôùjÓRƒ¶üŽücGDFºux¾õX¹“€¢ÃYFhî`®áÓ7àÄ`Ç&=·µ˜\xô€§á™¸@í¢A<"/¼slºPÑ.)-ÙÜù…iQÍ7¸WεGýè?K‹æ5d(îrXÛC :
-"è1þ(¹q$1o*?¾Íî­¹. Púù˱`’­IÓê 䀭ÅP
->}‹±;¼æÚm¾²øB Äô‡êÑ>t®+eJgIŠh HCÃhŸ7yUPÖ2kCÍ“(4b 
-Š"?GÊMVg0­Û_lnJØuªfcÞålæÏß
- –^P‘p»#r•!ø°/ü€‚ŒðÚ Õ…Ÿ¢Uº¤QïçKý³î(ÚxK žÀöÀBà ‹ xÃx€ !é¸+s¼ç!™
-¬_²Õº°n–Ô§X;‘LjÉRÓaXΓçB}ƒY™š~E•qùÍX|ë$Œ¤Ï\tc©ÕƒZN‰
-覷=èv/P>ÂQl­'æ^r) \œùòåË3ŠKU=ú”¸´Eq¾¶u÷”ú„ËÍïe‚€=éýƒqï!C§Pü°Sœ;bH›4†.¦•¤ÿ(|í:‚bƒŽkw_á(B™QAû‚µÎŸ\oà.©¼ ÁÒ¡ÈÁÁÝ9½2ú¹ÿˆ¥L
+xÚ¥Z_sÛ6÷§pŸ*_-„ À—¹‡4uZwÒ$—8sM'¥%Øâ˜"’²ã¹»ï~»ØHJ”ÜöF‹]ìb±ø-(yÀOž¦‘T¦O“L‹(Ñéb}œÞBß'’yæŽi>äúþêäÙ+•œf"‹Ãøôêf +AšÊӫ寳—?½xwuñþlFÁ,gó(fß_¾ù(=^¾}óêòÇï_œ%zvuùö ‘ß_¼ºxñæå¼‚h/Y¯.__PëâõÅ/o®>œývõóÉÅ•7fh° Zòåä×ß‚Ó%ØýóI T–F§ð™eáéúDGJDZ)G)O>œüÓ ôÚ¡SŒT*¢4L&<ÊS)EEáÈ…Q&b*ëB´ZžÍe³ËecÚ–lü%ï+j¾.Ú®E[­Ä~M‚Óy‹ I¢¼°U—¥QúȨœ”~^£¾Ï%¨:›Ç0þôØïþlJ³6³=G Þʹ7$ÿú”„çÄ „ ÆoVÖ|G˜<0Íñ<xº¬ó'Ð>>QPl>çν–ñYiªÛnÅ,ÿ!3‘©0›qg‰Ÿ‹¥ã'Ûåç*_›ñ߇ì&úý¤äÄšÎýt"â(KKòÒþ`>AX]QW!yµ¤ÆÇ6¿5,6<¼èig2Q´%j¶æhƒfi£ šá,'&¢ošb7EùH¯ÛÖ,©ÕÕô\šÎ4ë¢2<x±ðâuÕYYuI„›º¡Æ=ˆ¬·¬¯5ͽáŽzcš-l!:T’Í®V°¸JÁx}“¥e[Sk{&g<ÅpVTôìVfÂçi
+{?†Mnå¡ý¦šƒk÷ݨ•²(aNôú¾4™‰(Ñ’yÚºéìÚï SZ„*uÂÚ.ïl<“½ÚK“æ8g=¬
+Z)‰^m»¢ÛvÎx¶2¯nÈ«K› ² t:Þ]@‹œCêÚ¸Ðz¤F}CÏnÅ=7uYÖEuû÷Cy8Š"FizüàrÙ´)õÀK4S5…óýÈdW)Xƒtr\«çÚW;Z@[ÇcµÎ7—ïØ7#GG”i.ßÝköXãØïc·Ý'ݤbÑü”›\GÜ丞vÓ1­7íªvÓPí®›6ä$LZ_{?Ìõû³o©QÕÝðG]é1ÕñS®pq•ãzÚUÇ´\µ«vÚUCµ9™nÏë²Î9´8¢–”ë ç÷ëÇ~N¤È=ZK—{î(aîÎ#ƒ–ªÝ´sÈãÜ%uð„LJ\‡=ôøQ­½Ç÷ÔNz|¤Ö§/:·‡™ÍÅíÞ¶^÷X¬Ï”;+óPt«ck†Z¤‰ŽÜÙ±(§Ö’„]ôG×& „Vú©µpYÇõôÚÓ:X›]µÓk3TË»¡2p/ÿÌZ˜jQÖ­ã2Ëu“¡s¼ŸqŒ H‚ت»èV¥øäƒ†=ùTÓ¸Íi@äå…VNÒäK8ûèÅ|]”ù:g@¦ðÄmî¨ SÝïß|‹I ·¶Š¬A…¢êÑ—RÎ&ha|¶$íœÃø°2K©êÊiaGY/òrU·Ô!+W™ì*ÓµøBd¦ð…·t@& Ìì—ºgBo˜s¶ã(÷ì@5 b[°iÝŒk·nN…iÆ6JYšvÑ›öîAÜU¶á·Žð‚úu'dÅ\DÇ,-rÒb—•ã,î¶eâ:_š>—IœˆºŠ–Z-–a‹®XÐ_³Ø¾zm€ÓÑ`pN¬ë¢­€¡Á"Ø
+é¬-ª…™ZíÖ,¶MÑ14‡y[à§9¦Žéj×µßçe±Ì Bêhǯ·½ÐŠßRxìˆÈé‘FÜCh=Ôv# h·“˜[›ÊÙˆaðc J'ÃØ¯,–Œp3<‘(žm.h]@%ÇÆÖ'ŠnEEÉö– ÆÒ²^lq­ldO…Ñ¿V½›’àq[€i÷ŽhÑvŽæ
+ë4Ü…EÐS0Ç¢^ox#.‰b]2ÄŸêR
+Á€ádǑĢ­y|—ß¹)!K²þj²ÀÚÐLë¯P
+ÊZåk1‰#¶pŸ (
+s¤\»aMjíòâë¶‚E§f>•O¬Ïxû 0˜ ›˜Îw
+l˜MôÆ'AŠ¿ÇqÙ„{ûÁZaß P"ÌGÊ–©Di82:—T¡Ëµ>¤[n¤,ÍÆTË–èŽýaeìL-±sòÙ‡@*Z¢\k?’h[ ÑçHrÙ
+ŽÛªÀS
+‰¿Ò
+„€Ø*YjøÃ“ÐÓq½xùz¬Ê• ¹Øjp '!Ø“
+°³cŠ$ØÎçîƒišd;qî®+rw«Q÷å iû½à­Œ+h=óàâCxÇ þª`P‰8KBÿùÙ}|~Y¯û’hø'ƒcß›ù[¦v “ñ •/-‰£K%WÒ
+ÂÛmãn}ãÔ†H‰— *–³«³ Ûa”4ÒΞ8·M65-m¾Á%sßPÛŸÓ÷Þne¯( ›îõ Û^7Àó¶bg˜Xðt(¤€ðòœŸß}wNy©n&¯W¦,ŸmLãoQÑœ_T$ð¯1_Kÿ÷?pŸ1(ÀÒpús‚‚­ž†Yâ&…Ö软ˆþ¯:ûSÿ+/yÑendstream
endobj
-1564 0 obj <<
+1563 0 obj <<
/Type /Page
-/Contents 1565 0 R
-/Resources 1563 0 R
+/Contents 1564 0 R
+/Resources 1562 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1535 0 R
>> endobj
+1565 0 obj <<
+/D [1563 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+370 0 obj <<
+/D [1563 0 R /XYZ 85.0394 769.5949 null]
+>> endobj
+1557 0 obj <<
+/D [1563 0 R /XYZ 85.0394 752.0459 null]
+>> endobj
+374 0 obj <<
+/D [1563 0 R /XYZ 85.0394 752.0459 null]
+>> endobj
1566 0 obj <<
-/D [1564 0 R /XYZ 85.0394 794.5015 null]
+/D [1563 0 R /XYZ 85.0394 723.5337 null]
>> endobj
378 0 obj <<
-/D [1564 0 R /XYZ 85.0394 730.0812 null]
+/D [1563 0 R /XYZ 85.0394 642.6584 null]
>> endobj
1567 0 obj <<
-/D [1564 0 R /XYZ 85.0394 700.9798 null]
+/D [1563 0 R /XYZ 85.0394 613.9312 null]
>> endobj
382 0 obj <<
-/D [1564 0 R /XYZ 85.0394 216.5924 null]
+/D [1563 0 R /XYZ 85.0394 133.1977 null]
>> endobj
1568 0 obj <<
-/D [1564 0 R /XYZ 85.0394 187.7778 null]
->> endobj
-386 0 obj <<
-/D [1564 0 R /XYZ 85.0394 127.6814 null]
->> endobj
-1569 0 obj <<
-/D [1564 0 R /XYZ 85.0394 101.3894 null]
+/D [1563 0 R /XYZ 85.0394 104.7573 null]
>> endobj
-1563 0 obj <<
-/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R /F14 968 0 R /F39 1165 0 R >>
+1562 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F41 1223 0 R /F22 965 0 R /F14 968 0 R /F39 1165 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1572 0 obj <<
-/Length 2310
+1571 0 obj <<
+/Length 1991
/Filter /FlateDecode
>>
stream
-xÚ½koã6ò{~…~8{3|èÙ~Êf“\ŠÛ´—õâîÐ8EæÆBeɵäMÓ_3R¢låÑf{ñ1ç=c1áð'&aÄ¢T¦“8 XÈE8É×G|r{—GÂÂÌÐ܇z»8:¹Pñ$ei$£ÉⓇ+a<IÄd±üq1Éf€OϾ¿¾¸ºüxs:‹ƒéâêûëÙ\†|zqõs]Þœ¾z3›‹$Ó³¿Ÿþ°8¿¡­Èâx{uýŽVRú<‚ôæüâüæüúì|öó⻣óE÷ÿ½‚+|ȯG?þÌ'KxöwGœ©4 '÷0áL¤©œ¬‚P±0PÊ­”GŽþÙ!ôvÍÑQþ ΤŠä1ÆÀ0e‘’Ê0ð«Ù<â|ºX Ü7£±Gy½^몵»ºê7k;þx}õo5+]– 2 ( ÁÒ0”þµYµ¤ÁFoK„;¹>ÉpJ)&D'mò– BgÞéŸ8—UÑx3ÊÅ ÃÁÇ&»ÓŸâ“K|gô¤†­³‹f³ÑÙÖ¡|¸_éíL$SM+í*kit¿*ZÝl²\? p´Ñ§W±¼®þ»Ý6ë_€+¥fËb–*™±ó¦}(á*¥¤Fƒ35mÚlÛÒÆ}Ñ®h±]YØö¾¦•|•m³¼ÕÛ†6NÞÐúO<äM™5«c˜‡„ÖA¦"˜¦Ç›Z1àš‰C‚ ÚV˜Lßê<Û5z¨ $V §x<Í£qoÜ”ºÕ¥Ý\ê²XÇ—4µTðÏ7îL÷D$CÂãgbڡϳŠ·²ØÚº»”´'uåîÎ賩·$+³ûÉí(xYTV+j«x~Aa¬°×»²-6¥…ÃÍžäã¡äå@òR |QU·´sk!
-LHE(ãÍã{¦˜…“«µš¼«á‰ï•ïÜClùÖœdC¶ïŽùøÿÌD
-̽·%1SA$ýfŒ)‹Eœ¸n–ímœ5.
-—ú\n³õ:Û>ZÅÖ:Áö$™í:À(¥Ïaó!R¸Ø š
-Œ[†,Šñ6ËËãgÛ¸¸¤þ¥q¤QjÜ%ć*[›š V®~ ¥l¹$4tµùÊÈ ·K°Yìv¥)Hrk‘å9AÇ¦ÑØRñVŽéh×4­Û•ÞvSsè€ãsqÏŽ×ñ%Š(î z9Jwâ‘AQ”<#2òqh›†M5µ«Ÿ‘[^Z›hºVnÇaZXAŽ ËfØù»Õw-ËoúLþ°û-RŽÅ‡Ë£¶Õ2!*”ÕŽ€vmQíÃL1}\‚w^Çî¿P‚ DC!¢§%˜@ôLÛä
-ós.ÔÓ‹c–Šš¿è‡g¹Õlt^ w Ã"nË ¯Àݬ»ü“÷Áê·D¶î„o¶ ‡’7ï²×î²›õhøß¿{éÏ®éBÔâÃÕåã²òøð:Æ`[‰â È*bI”¨±ßßøäYÕé¯}}öÄ ­Dú…˜gñq‚¨!.dU JN÷³ …òHÿ’ Q>endstream
+xÚÅXmsã¶þ®_Á™ûPébÁ
+Dűô›Ñb+ž¶]±íhà±ìVÔÙ­o÷ØPÏrUl‹eg¶- œ¾¦þ_¸æmU´«hk‚ƒ>A\Ö¨Èfˆe¼>¥‹
+æR¦L¨ N#2gYFÕªdl*ƒ ZÎGt 90˜fí¤ Íb+8~Ã4ká|†¤&/+BªÞyØæ@Žñ|èU{#›ÕS;ßwS2x¹,*L‡‰M2˜ã vÁ¦EèôIi›±Ï-âžšÅÒÆxÓ¶ÔR¶Pð¾Œö; EiúVÅ'ÇÛÔŽ¨š‡aÎv¡a3äH´äË¢M±\ ½>»úlBI+L6vK4†hik&KÁ]²D<J–_“„ŽÏþ“Ô2Òb‹ŸÝ«Îˆ)¼ØƒÓZm÷O¨e>™Ú/ªÙ=¬ÜÜnÃm”¼/üBRÛlͧ²ÙµÏ£uä†!—æú=žèÃ@ñ;CsQS:¯jvŽƒªÏG³béßÅmï a¸Žl6œ ˜J §qwj}®L p‘!\y½[ßa³’ˇڭª?ž†NI2æ,‡îƒCQsà³Ænm܇#CøùpaQ´ûgP¼¸³'Ùç¿÷ûWÿ·õ?öúW/pú±ë¶Ì8KE"¾ê¾-$Ës­ÆïÛ°ÐL²4çê8Íã€åH?cjx×9ì°Ôép-—ýA\ ‘,†ÕG2IY,$Uú¿1¡p`„9:·¡ 8ÛÈé­ý¿1½îi9½:´Há)x™”póKsk«è7°B.”Š-SH[í«ØŽÓëu½m@Ç(PÓÏCd«ftž1àùJ0¡娿τ‚݇”£øP0‘¶ÅEÑ-„ˆÖ¬ËeSá5›˜þñÝŸ( ¨”Û„3ƒ¨£¤Cs7ïP@MxáäùêhyvXëìhKß§™´kqàGÔì*,ãZÙD€—³‚šÿš í
+2´èî‰]xBH&Žáì²¾‡«/vž.ˆÀ`oFÐáÄ 7]«¶»AÑE³3óÑR?E*É™Ìò,
+ýôe®A¦ó|x·zY`îG“–© ¹„b±JdøÊ%tîÌsÿLè^7ÎÇž.Kú¹Úëu±=R]3–¤yì£OB˜¹w rú<~HbìlËÖÖM`±…¾v›|=MÜ‹
endobj
-1571 0 obj <<
+1570 0 obj <<
/Type /Page
-/Contents 1572 0 R
-/Resources 1570 0 R
+/Contents 1571 0 R
+/Resources 1569 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1578 0 R
>> endobj
+1572 0 obj <<
+/D [1570 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+386 0 obj <<
+/D [1570 0 R /XYZ 56.6929 769.5949 null]
+>> endobj
1573 0 obj <<
-/D [1571 0 R /XYZ 56.6929 794.5015 null]
+/D [1570 0 R /XYZ 56.6929 749.9737 null]
>> endobj
390 0 obj <<
-/D [1571 0 R /XYZ 56.6929 730.9277 null]
+/D [1570 0 R /XYZ 56.6929 670.1208 null]
>> endobj
1574 0 obj <<
-/D [1571 0 R /XYZ 56.6929 704.9004 null]
+/D [1570 0 R /XYZ 56.6929 644.0935 null]
>> endobj
394 0 obj <<
-/D [1571 0 R /XYZ 56.6929 236.9993 null]
+/D [1570 0 R /XYZ 56.6929 176.1924 null]
>> endobj
1575 0 obj <<
-/D [1571 0 R /XYZ 56.6929 205.1553 null]
+/D [1570 0 R /XYZ 56.6929 144.3484 null]
>> endobj
1576 0 obj <<
-/D [1571 0 R /XYZ 56.6929 146.386 null]
+/D [1570 0 R /XYZ 56.6929 85.5791 null]
>> endobj
1577 0 obj <<
-/D [1571 0 R /XYZ 56.6929 134.4308 null]
+/D [1570 0 R /XYZ 56.6929 73.6239 null]
>> endobj
-1570 0 obj <<
-/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R /F62 1369 0 R >>
+1569 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F41 1223 0 R /F22 965 0 R /F62 1369 0 R >>
/XObject << /Im3 1520 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1581 0 obj <<
-/Length 2419
+/Length 2555
/Filter /FlateDecode
>>
stream
-xÚÍZ_sã¶÷§Ð[äNˆâ/$OŽÏ¾:sç¤>çérsCS”ÄEº"uªÛæ»w)ʦ$;Vgnü@`,»‹ÝßBf#
-ld¡ÂÊ‘¶’(ÊÔ(]œÐÑ ÆÞž°0'j'EýY?ÝžüõRè‘%6æñèvÚãe5†n'Çç;ûõöâæ4⊎cr©˜Žºº~ƒ‹Ÿó_®/¯Þþvsvªåøöê—k$ß\\^Ü\\Ÿ_œFÌ(ëyà°cÁåÕ» l½½9{ÿþìæôÓíÏ'·ÝYúçeT¸ƒüóäã':šÀ±>¡DX£FkèP¬å£Å‰T‚()DK)N>œü½cØõK‡ô'¹ œ[1Š%’±Ý»âv MXiœÛ›FŒ)"”p&‘’PK7&á¬gÆÑܪ‘V–Ä‚ o“¢šÍòrætóy>5„Iíöqëû,ͧ”g5hUèñzž4Øjæ™k˜q-¿fK$ãú{hJ:NÊI»F™g[ëü\d°ÈNÙ¸®“nbÆI˜âpVb•â(PV6ä±MÕÄhÊF}]¼N¿Âr¢X¬GQ;á˜&ã0ÓP~ÈdBAƒY4Ùz ê9h°´*¹f+Ta»¢Ï_‚#ı Êd‘Mø
-Ib-¤¦:DlÇIQ»–ë¦M Õá‹ô"ŸÍ›h¹AªÂ;‰£L’,ò¶Œ$ÂÇ41ŒEUâ þ*: ?WÄHnƒh^/ƒ Ä¡Â4àÅöøMÏ ÇõyL¿‰-ĿؚC~Ú4ŒÅ¨Í¤n²å3<g’9Ç)ÝZ¡=epOi9ùN‘× Î˜VK$åeZ¬êÜY»8^7«»À² œê"ù:x»ÿ]Áþß ØŒ)µj}v÷™„&BÚÖè ÙSVN9qÇÊytTVM>}`>£e7×¹ÞíD}ë|ÃÁ'ÖZöP¾ˆ&–2ÌÕ}v}^øiü…¯
-Ë­ÏŠê.)\Ûn2Ð7*i¼Ï¸ í>~&ëLSãø$›&«¢©‡|Çû¡ U3ÏB³n’&[@ÊØg¶ž>Že¶V®ç³lWì6[ W€JqÈl1Èf© ÉÒëûp–GƒÂÒlÙ$yˆ¿OMä´Û™Èu1ÁÏ=&ú¨³3Ðî’:ß§ýÞ±^§ªÿï¥1‘VR¾â
-b%C{1rŠ
-ÁÞ| m£Þv¸L Ú¯?/’&ö5¨Gx4ßþøqè` ƒωJsâôo^¾ÁXš@ã7÷j5`±G'ÝíJÌ´®äv üXØÇ¦wOlPP×u>óX\ú‚Ý}ê‡Å]Uä)öP«®å³ž›V†/¨q¦_½NqÌ)–@©NÍø*l5ÃZyÛØðžbÉ·Øä~™ƒ<`gUc½ I¸áfÛ¬Õ4¨uK&ïÚ(“¢˜ø
-®ýÆ×•ƒ
- Y÷û£{ˆ±ã²
-÷Ç‚³B¢xRQ¯± ÞŽk§–6uï»®SÕ:› êûv&M+7 Qt‘XÝ­ò¢‰òò‡Ç Ž1I´Ö|$¨K!
-¦
--ez»„t˨ޘ®Ìšúù¦cVúÀ á}IᎠQýÈ¿hS7ÖÙË‘§íøzž»\ê&xÓ8šfÈzs÷#gÁ ã»|!þPy(3IÓ&˪ÁÆ="…¯à.ù$¬Hð³ö( †u“ ¶Yäå£ß*XÏ¥¸ L}¦ÿRЬ&³f^cß;±£; `38=´¶œÞ£.6¾*q¬^yøÃQJ ¤I}?ø¤§I `²+Kv›:êænc°®xXô^wqZÙ¡dßl™ÿÝhÿð(!Û—!ØË]uÊè˺#¢H
-:nÑž[Û»¯»b›[û’:÷øÀ‚¹Ü®¸r`€Ä˜}ŸQæ2­ àç¬zÅOûÏLbS] $B ä¿Áßn^ZØÁÆ4¼m¸lê¹n9ÝGœ7¬Á–ÿÉi÷Ÿ½wùΑ›¥ „DK¥Õ_Â2í 8ЫÃ.÷Õ²éxo:Ÿ·þ°uÇ=–mO1NéP Š E.|— ëÝa‘ëA‰Ú—AkÐ!xñ~Búˆþ¹Jv‰Oe}…Žb¯çþãËæ¿‚@w˜o+s¡Ü™¤xr•Á#•áz@ôÿþ¬Žendstream
+xÚÍZ_sã6ϧð[™šÇÿ"Û§t7»—Înº—¤Om§£ØJ¬[YÊYò¦éÍ}÷J–ÙNwf'¦@¢
+Õ$óÔöZÎÈ;ªfž-i¸ª³š=vÃæ.F}¼NËhO#lÒîH¼@dû Û /M¬uû 'Z€ÊºªŠú9Ö›i4 )­¯g"ÌӲ̊8ÝTô{u:ŽŠ¿~ˆó,¾wc£ž3m•‰ï]–³éÀî$ ô>bZ5y‘7ÇBˆñ;öô:¥?¶£<¨à a÷ÙxGN—Ób5Ëö›12F¥ôƒç²Èv(®·£C)®=!Œ\Ö%Ìs¡ö)Ž+¦µ
+êøœ=ì×Y}—MsÔQP$\Šó Mˆ@òª¤™p¼(yœIWàîe“O[n`¢P'«ÉP´Zæv ð …(ˆÃ«Ë³÷Û-ÖWÅ¡BÖßk¬Ï÷å›xf”¤\ST··¨…šM%ãûyÚÐ# ܸΖ_B
+`™ö­ÍagÐÒ°íD¡COʪÉo†r¸L¢;^üæ·oœ¯8]ysoºÀÏâ‚ÒEu‡éóyѧ…³ʽßÕuŠØ*.Q
+8DŒ|ZOº¢î…¢±¬°X¬ÊòRW#âæfü½Í´u¼± N$P-G\±L:¾MÖ}׳öôõ5*­™VÔFÚeVí@ÆZ® ûÌ&P¿¼,«†j}yìÆa==¿=¿¼<}Cc¸C£½­~Å壑œéöe£,ã Ob:/ú?W£! ƒÆ’žö´GÔÐ3Jè™$¨×»†F«;š!8´ÉˆÒÖ„@¼x÷†† ù£Õ†;aÓy›y:›¬ÒŽ>@_C_óÑ
+ŸtåçÖN
+Ö"¶«EÍÊR¦«²·Ãl—Œó.¬mãÎC‹ÇŠv4®Z< áhφëvÖE¶tiɬ·àÒÊ0! 8ÆwãÍ„EÁ97AÞe»¡xe´L‹4OÝÿ^¼mÑÌk¡»+‰%I„!ôôßhÛ¨·ng3(÷ëßÃmÆï¡
+ „GÌÔHøß÷C{Ðà96æsü ¹çƒÞÒÉË×0¸»
+Ô›JÙ  ¤l^¡©NA8‡›ù&’I H]¬ê(ã:RÚ˜=#ò}Þ̇
endobj
1580 0 obj <<
/Type /Page
@@ -6487,61 +6482,50 @@ endobj
/D [1580 0 R /XYZ 85.0394 794.5015 null]
>> endobj
398 0 obj <<
-/D [1580 0 R /XYZ 85.0394 513.3136 null]
+/D [1580 0 R /XYZ 85.0394 433.214 null]
>> endobj
1583 0 obj <<
-/D [1580 0 R /XYZ 85.0394 488.974 null]
+/D [1580 0 R /XYZ 85.0394 408.8744 null]
>> endobj
402 0 obj <<
-/D [1580 0 R /XYZ 85.0394 420.2055 null]
+/D [1580 0 R /XYZ 85.0394 340.1059 null]
>> endobj
1584 0 obj <<
-/D [1580 0 R /XYZ 85.0394 390.0916 null]
+/D [1580 0 R /XYZ 85.0394 309.992 null]
>> endobj
1585 0 obj <<
-/D [1580 0 R /XYZ 85.0394 312.7536 null]
+/D [1580 0 R /XYZ 85.0394 232.654 null]
>> endobj
1586 0 obj <<
-/D [1580 0 R /XYZ 85.0394 300.7984 null]
->> endobj
-406 0 obj <<
-/D [1580 0 R /XYZ 85.0394 159.3 null]
->> endobj
-1587 0 obj <<
-/D [1580 0 R /XYZ 85.0394 131.3824 null]
+/D [1580 0 R /XYZ 85.0394 220.6988 null]
>> endobj
1579 0 obj <<
/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1590 0 obj <<
-/Length 4330
+1589 0 obj <<
+/Length 4374
/Filter /FlateDecode
>>
stream
-xÚ­[_sÛ¸÷§Ð[åŽÅÃ_‚HžÒ\rõM›»&¾™vîn:´D[œH¤+Rçs;ýîÝÅ )A–;ÉøA$
-lþö‡ﯿûéã›K£æ7×?|¸\Íæï¯ÿòŽž¾ûøæ¯}óñrÁ ÍçoÿüæÇ›w©+÷4þtýá[j±ôs‚èÇwïß}|÷áí»Ë_o¾¿xw×2^/gò¯‹Ÿe³,ûû –I[èÙ#¼°Œ[+fÛ ¥e¦•”¡esñéâo‘à¨×}š”g™¹HPñ‘
-Ó‰4-sû“Á13Ó½lAÏJ/ÃÜÌÛ;ü-ÜG®¡)·5uÕî7P,8ŠÎ$P~ï›LŠŸ «Ãn/
-ꢥá.-Lv¼’.0Ž„wÍj™Ø!3.ãvíûzS÷OD%BŒ7~Âe»Ý‚–x® ßÉE
-›IÅ´5jñÞïêê·ŠZš¶Y|ûáÓ¸»Ûoz¯§w$ˆ­WJÿ ‰žÆbÄéA)¹Í”…5à´oš„(¸Î
-àØ/²nª>!  b .ÆŠwDD}×b^wÔXÒëÍÛé½k—Ÿ«žžÑ&TMÝÜÓ˜Ò7“f@C÷P-k<ƒ°‰c¤r0†:°üph«¥²c…œÕÈ
-åÖZÀ
-‹"m«‘âbLÒâ©^iØekø03røÐîRB<c6h—;$/o .OŠ@ipSÆ_O‘â(m2žçf*‚rµÚ §ð
-.åüq]/×tzôk¦Š©YY–(«¢pM iþýúÇßµ´»Ø’Ó“cÀ¦LŒúÄi
-&Ó`ÙG£~aš•p€wu÷ž9IØ{}Ý@σ·lΣø;ú%õ†Qa¯Šùc½Y-ÉŠ¯ü~{õšA€Ó×LæS3
-v¨©–è`œ§ÓHÊ9&E¾ZÊå²zèÉßiwȰ·lž|Ãý:¶ð<á:GL::K*P^
-epc .ѯs±“YGþóêpŒÕr:q#"OÎr'tå-½ý"„JÈVÆr°‹ç¬¨Î€õ|bE‘¢£ ­i=k·ÕÀÑ ©„zÂ+ ?lžYSiàP&ùr (.Æ$ÈÂ3‡ÅÇaÏ` Þ…ÛáÔhÎÀ`ÎoyC*²Å·ˆ£±í½®»nïû$îL<"bºŽ&aŒð«£tÉçþ[Ÿ/£¹}¬{"°P`ïòx¦Êͦ}LÙ ‹»Ž †É` TØaZ'm§ÉU8ìî"ôÒÓ@âÄh¼;M¡%…2Zx[ Sx Þð!Þ‚L$Ô=yyx½-½Ö
-³H=8*l;š;oê&*œ
-¡ûW“A¤xFRÎñC¤†a™.
- œEa ÀLf
-¥ b¾b/ƺsÈãøås û_‹2U™ÆÄ4SÏX³<Q<Hl6ì Ö¶_¢8ù¯¾‰íc¬ˆ%ìÒ×¾úº7å?,4uÕ¤»²é³ÂR`í”`ñGºüöÂSqåë™k,W¸H F¯j?-hqFÅÉŰL(up¤Võ}ÝS‰&†7. ,3¾¤YxcÍÌp¨±u¨›ÀË,~y>ŒcúõÞ79î°Éq‡dòÜðd-Åd¹Rç+ ÌvÜ™<¶à®{"¾-?[¸o¯ øZ0ÚSq<´]WߺL—ô`[*Ácƒ»g"}ƒŸ$/ Ý~S ½ Ÿæ$ÍBƒµ§¾4îR*4ì”è=U,¥õ÷Ä ¦sÖ††=ªº9\¦Î€"ˆHD¼ÑöØî>û¥Ë
-9ѽ1W·.ýU¥Q^^‡«ltsiçÛ×þzÖ`šX°ÏxÀíQºº¢¶ª;Ïòxš!ºÄ¢W‘ƒpÇ€~1\Má™$¿ »à…Kq˜x•Ò/Lå6I“«“4ý­€ûdè»"ÃÞ¿N©+Žåã8èð?aR‹ÌXéÊ™T~oñ?b´ÿ@"›ýªJþCÌw»¤
-kþï%A\uWo*´>¯O¦—u†ÿ•HL²Èüÿ£Õ†xB…8‘i5EAƒ Láj”:â<üGÖ1ëÿnI”endstream
+xÚ­[Ýsã¶÷_¡·ê:C|Àåéz¹Ki/é3ÓN’ÉÐmqN"]‘Šã~üïÝÅ )A–;¾ñƒH
+nf‹È ü‰FÔMÕÓÓϹÊ}Ûý¯åjµ£—ÿ ¢Ð0ñ‚eZ
+åHüÑw!QXëФ}íg¹ow}¤=¼üâ,¤Î Ï‹)åfÓ>„U,‡_dªêº_·e¿\ÿº©»Þwü×ÑÉÒÎÏÕc”‚ûÿ¾ý÷ë Zg:7ÅeY6ù,OŽß7õï~Ýe¿öOÕnKOÍ~{Syá¶Mx7ßíÚýý¤y4É*Hœàúp•‹¤i§S5‰H“q£UTpùÿ¦ú9ÏyS÷uÛPKÙ¬èáÇ®¼«ü\ü´æ_¯«ÈÐ0ˆƒí*­aðÄ:Ž©I°cp4®˜…¯ªåŒ™yÜ íׂ 톆,×eÓTßÝ·ÔzSÑᆱVÔsóH-Ýc3P[¹ÚÖ lÙ®ìÛ]GýÂt"$MËœÁþdà6õtSZгÒ˰ÐóöûÈ54å¶¢¦®ÚýŠ®5Ù8ʯó}“Iñ³auØíEA]´4|Â¥…ÉŽ7Bä  ¹d^»fµLìq»ö}½©ûG"!Æ?Ჟج<WÐïä"¸Í„dfj'Q›ˆ÷~WW¿UÔÒ´Í⛟ÆÝÝ~Ó{=½%Al½RúOHŒð4cð ÿÖ¸Yß4 I0î®0~ι ‚Á£a|¬·qCxT7|1óº£Æ’^¯ßþ@ï]»üŒž ŸÑ%TMÝÜјÒ7“b@Cw_-k4AØÍ„Éb›
+,߆^!m–çFÌç™IŸ|9¬Ð˜tè]DŠ‹1ÉWGj¥`“­fÃÌÈ¡ 1 íbYnƒr9y¾4|k˜8)©
+GWÛ{÷[wÝÞ÷0Ü9x„Ã4tLr5 WGé›ûo½ 8_Æró8øöDV!%<G‹¢¢AÂkXܼ`0˜ $3EHyû¼:é9u!ƒ©CV¸wщ°`vÅ"N\ÆÛqÈäJP£¸÷DÐ0÷ØÁ= ’-èÁ*BÝSŒ‡×›Ò+-'4‹ÔÓY°sa×}åHƒ ð˜é™|Ä
+€d/Öà@q1&™Ð`®!¿ˆÃMWæ963Ìî¤ø‚LŠg˜”9‡øØy¤+µ$ÌLf ´vˆ6ñz]{ _|²˜wõö~ã7ùê‡`•9†iv°xVFÏ…ÞwƒNÔ¥yŠBîסœò˜BßRBóAéÐ7(uQä oXg\¼}Š‹1ÉúæY!-fvŽw•F"BŒ_Eµq¥/žÖ®´a°÷ܲ3†!`÷/&ƒHñŒ „c‡2H†Æ@Á—c2P<ǤÆÚ0ú1“§ R¯"BÏ‘slp×´ô¾
+q ‚½–JLk*)5KÉã6ºJfÂwóL V¤K*z\R)|IESIEÏüpõwêXµÛ²n¨u¨¯èi}¥ðõŠ zR\p#¨4Œ]œ[‡ï\z„$çó7[€*`5ò°üçb‹)BÒW ,åÓÅâ€hp…;ÿUÊE°Œ"l™+d'q¹Éc…è2AG6‰µW÷>¦" CæöÉ0 ÞC3ÆP¥<𭎹IŒÓ Ézþ¡í½t\ÐtRÚú–ûMÙƒSÞv$2ÄûŸöÍ÷Ÿ¨×s„ÙxT¸‰ô?µ›
+0·‰/vÀâbL2ဠ€zž-{62ÁL  :U
+°€VJ\’„‘£â3¼
+:õÆöº÷üɈAýØ»s£‹´Øõú5¥›_54¤w ì[–]uIð9Ò,7]KãÖî$ÆÈSàIÙŒÊ<ë†1¯aà"BêcÑLóåí7¦Nr~³÷«¶réªoZ—îôžÊ”Ês,({¦( /ŠPrŒ”¦A¦†Ùg Ò=1U4d¯ Ü{®]@â¨åÊ·¬ý2\‹/C*+]”v_n2p9Ü#á<K,¡œt¸4q>Q€+7ãk™Ç‡ñ'ÇMR¬HžuøUÕ'=K1.ËbÞDÎ/­íø­J¢(T¨oCƒÊÝbŽsL¿à°z4îÁe=:?H’ñ’Nf­zò±-tÞìëM~:£Ë:áÀû–¤Ÿ%Eß<(Þ„o:š.ôAbù´”!5Q<¸k—áÈÌ÷Aìf¬k0‡ˆ(‰/P>w¸0¼õµ(S‡ÒXµzêââê¼8>8Hì5l žj?GoŠ¡V} ÛÇD¯Kê=ÈÓŸxSñÃBSWMξáaW6]¸[f,¥…ÐNÕOpdÐåwžÌ¥?É\ãQ…Ë“`ôªöÓ’OçSè2ažq)íÔ?­ê»º§ÃI˜òݸ0ô±¹ö‡™Æûê\6­Ã™ ¼lÁá—wáÃ8¦_ï}“ã›wø@Ï Ož£è¬òüéGn7î<ÂZW=ß–Ÿ‰-\‡w×B-øì©Nß·]W߸2—ðP[h:|ÇwÃD ö†0IAºý¦@»¡Ÿä$ôP?ƒµ§¾Ôîv14ì”èV
+ë/ˆALçœ/ ;ztà~‹çò $‚|„Ç«líî³_jp¼X.eÒØzG \‚¾•©Š½Ë´Y؃ôÔ`k¹.ÆS;‘–Ä¿^Òk7ßâ Ä#µ¹‚ Œ¢Ä‡¤/CEE”c×Â!€3ˆàÿŸo±
+ "}9Dˆˆ¬jw>@³zæÛ‡†âëÛ gxß©[ñ>l^€7à&¥èÞvñ¬«^
+µp¬"©â¥€.LðÃÀë”za¨°IšLž¤éïÜ%ó~ضþë”¶fÒæÅ8 JrU†ÿ6–(æñÖä‹ÿ;m¨v‡”œŸ¨ij“@)d\Ê#Îÿ±³þ?tâbendstream
endobj
-1589 0 obj <<
+1588 0 obj <<
/Type /Page
-/Contents 1590 0 R
-/Resources 1588 0 R
+/Contents 1589 0 R
+/Resources 1587 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1578 0 R
/Annots [ 1592 0 R 1593 0 R ]
@@ -6549,55 +6533,55 @@ endobj
1592 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [55.6967 387.5149 256.3816 399.5745]
+/Rect [55.6967 314.0348 256.3816 326.0944]
/Subtype /Link
/A << /S /GoTo /D (rndc) >>
>> endobj
1593 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [268.5158 387.5149 332.4306 399.5745]
+/Rect [268.5158 314.0348 332.4306 326.0944]
/Subtype /Link
/A << /S /GoTo /D (admin_tools) >>
>> endobj
+1590 0 obj <<
+/D [1588 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+406 0 obj <<
+/D [1588 0 R /XYZ 56.6929 769.5949 null]
+>> endobj
1591 0 obj <<
-/D [1589 0 R /XYZ 56.6929 794.5015 null]
+/D [1588 0 R /XYZ 56.6929 752.2372 null]
>> endobj
410 0 obj <<
-/D [1589 0 R /XYZ 56.6929 692.9565 null]
+/D [1588 0 R /XYZ 56.6929 610.516 null]
>> endobj
1350 0 obj <<
-/D [1589 0 R /XYZ 56.6929 660.5438 null]
+/D [1588 0 R /XYZ 56.6929 579.8656 null]
>> endobj
-414 0 obj <<
-/D [1589 0 R /XYZ 56.6929 112.3379 null]
->> endobj
-1594 0 obj <<
-/D [1589 0 R /XYZ 56.6929 85.6994 null]
->> endobj
-1588 0 obj <<
-/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R /F48 1243 0 R /F14 968 0 R >>
+1587 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F41 1223 0 R /F22 965 0 R /F48 1243 0 R /F14 968 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1598 0 obj <<
-/Length 2374
+1597 0 obj <<
+/Length 2364
/Filter /FlateDecode
>>
stream
-xÚµËrã6òî¯ÐQ®
-<,Ÿ&ÛëìÆÙxœÓdjŠ&a‹>‘²W»É¿§)R¤,ﺶt`h4ºýB‹-(üØBKBE.TI™\¤å]<ÁÚõó8A‡ ±¾»?ûöJ¨ELâˆG‹ûÇ-M¨ÖlqŸ}^~üÛ‡Þ_Þ\ÒeDÎÑåw7·ßãLŒŸ?Ý^Ý\ÿr÷á\…Ëû›ŸnqúîòêòîòöãåyÀ´d°Ÿ{
-G6\Ýüã¡ë»?þøáîüËýg—÷½,CyVßÏ>¡‹ ÄþáŒk¹x%,Žù¢< ¥ 2¢›)Î>ýܬº­sú“B©¹šQ g ÆH,%iPÆ$\8 Z¡#P
-Îq³æ_I¹.Ì70âùrD÷ú±Dà’Š Wzg±óëMþ ˆ8øÍìÎÙ²éxIüÞÄÛ”‹Žo´“>y(¼÷ÕU±CèÁQU
-gRLöõ„ÝáÉC)’g~.™‘ R‹ë„zÎÍË\D€úQQy($-ËåßÍ®Á2x{Œ{ Çöˆ‘ÃU?–3ü‚¼Š:åN)"B®Ni<éDã RG•ð`ð qgÄ
-·Önꢙ+ƒ4x¿d»qÚ ÁH!>Èq;æÐ4$“j*A4„”SÝáà 3®4¡ûF‡– ZmH~êÐÖ).&ÔöaÒ²PnŸA|UÒ%,Ÿ=“ö ~AÀ¡ –8åÇ¢‚ö'¢)€sxE‘ ñ‘ŽÂ·¼Ã8‰µÖó¯° § I:eYƒz Œ¡êèÑ\-žÍy‘wS”âkÒ <£©âjù[U¿T& ~QvÍ•0<r• ÛÉña‘q%«Ë$÷û}½жÊßWXÂÂTÕæ;,¹y4>€1¶t®É—7-N£kðÐѳ®U:Ø!c|}^sT¸D!iWùBvÆK)¡ŒÏ=lÑ&}hÀdlºÇ`3AÇ‚ÜÎøSq¶F-Ø—?õ &Ü›û Õ©È©‹…QˆË2ä¥ñøeÒ¦+\@ôÈfÒal)rdžBŽ­—ÀÜŽŸC¦‚gG]úW’>ÖWɳÁµc*œë…Ø £]%i'К
-¢b-N‘Ò¤8gˆE·8½™/.££ÄäKLèYÎ kF}Yêýä€P…ò€ždü(½.ú‡#Ù]ÉTˆƒVÑÐb¶6îÏc
-q„Ìc–!l4+׬‘¢oT¸oFˆ'|7búz EF ˜öÉ],m“¨Ü–ˆTmË`aÁUÔr¢óþùêÈæ.~Áúçƒq\Á ™, c߉WÙaìÛÖ Ø½!OdFÙ1ÔÇLðC 4ѶbD‰®6´"ÈÍG¢Vy,ê3ö.B–`‰ `ΠryoÈêCŠÓ%lK0fz0fQ€f+b%µ„-«Y¼Ù˜: n¡ö7á×}?¸¿•Óvr Ú.æmµï·¸£m¡èÛbm_Jú…ÄœIc‚(Äm f"ÊøÖ¦Xì[CEýôä-úiŒaïhìûaLA½jÛóCa?#Fß0 ¾bÁ6 à÷<í$E¤Ç¼ðèë¤]áî£}8.Ô „„G{ZÇZøül«"/sw—!ôe.õ{úMþo³‡¾Úô6ÜÌŠälv hqõméÝ\Pèvµ™ÙlæXú£­(ö"\ ù`ó2[µ»½ŽRÛvN“b¤8µkì%ÙT½ t§×°ÓtSölcF²äÕc=Ú–™‡­'ä¹òM
-Ôåu7Ÿ§C‡7t ÎÒ6€›zqwÆÛF'[U_œ¾v¤4VÜ›)±)¥6ï<á•y‹úó <åîF§œ û}ä‹Ñe]'„¼“{K·ŽÃ ´ÅçþšðB³SÚËøî¿-÷ÿéBå(´æó½A#¨+cÕ1e9'mßþÿÍ)ë't‰endstream
+xÚµ]sã¶ñÝ¿BòLˆÃA€sO—‹}uÚ8©OyºÜÜÐ$,qÂE¤ìªmþ{X"EÊvëéè `±Ø]ìVlAáÇZ*âp¡âHÊä"-/èb kŸ.˜Ç :¤`ˆõýêâݵP‹˜Ä«‡-M¨Öl±Ê¾,?þåÃ/««»Ë€KºŒÈe #ºüþæöœ‰ñóñçÛë›O¿Þ}¸Táruóó-Nß]]_Ý]Ý~¼º ˜– ösOá̆뛿]!ôéîÃO?}¸»üºúñâjÕË2”—QaùãâËWºÈ@ì/(±–‹'PÂâ˜/Ê‹P
+"C!º™ââóÅß{‚ƒU·uNRh"5W3
+älÁ‰¥ä# ʘD‚ §A+´PJ—y•ûÌ ˆŸÛ¤5¥©Z/ñ.)Ëdg%~w²ÁÅÐ .¤r{"P|È S%¥yûÆüÀF!‰ÒT÷œD¯àäó¥¼ÊÛ¼®p&©2~m’µñGñó,®6¦ççˆÄbB9 y(Æ”˜ˆH†^3`NHØÖ˜]Ûà Ýš­Is˵±ŒŠhiáÂ/&í ö¶Î;rO³»dzip[;Ë85‰ÀoãÜ3mª´ÞW­?7#–\TÈ×L/‚þŸS¤¯aG&#5ÃŽVˇ$Í‹ÜÎY¾täÕ+IVæUÞ´»Ä[
+$hOÇb¬§]Ž4E.…ë®Kƒ3휽߷8YÕ-ÎÔp讘*µ¼†sܬùGRn óŒ8E¾Ñ£~,¸¤"ÕÞYìüv—?"~7‡K¶l:^¿7ñ6eÅ¢<P;é“ûÂ{_]„îýU€õl„ÀèÁb Z’WzºòžnY|S¼q"¤ô-Ïþ—“ Û0<º±¤X×pi›1ÁŽàŠÞu˜Iw¦¢'tQsž‹q¡"JD½àúÁÿ_áSp~{o³§O ŽTb&@@òYfȘu$;LðÓl¼5e~ Jsc¿Ë‰igß
+oó°
+,Oµ9ïÐ4$K3„@§¼àÐ~0Ü0ãJº¯th ¢…6° ÈOºÃz‰‹ µc˜´,”ûÆgÐ{_”t ËgϤ=)_Ðß
+RœØŸˆNlt¤
+´k®„á‘+ÝNŽÏ‹Œ+Y]&¹ßïËE€öUþÇÞ¸ºF¦ª68`ÅÍ£ñŒ±¥sM¾¼iq]€ûŽžum,ÒÁãcyÎQá…¤]YäëØ/¥„2>÷r²q #Dšô¡K ±éÞ‚Íëq;ãOÅÙzµ`_¾î'L¸7÷AªS‘S? £—eÈKãñˤM7>¸€è‘ͤÃ2¶È‘ex 9V´^op;~™^uéIúT`Xß$×î©p®`/Œv•¤@kÀ±ØSö¢jÕ[Y¬ŽE|7öåÐLÅ(é—_tk[(+ѹõñ¹pêܸ(Ž}KH¦o÷mO0RœqíH«ÁÁç][‚*Xÿ5†”YuÛ¾hÆ[ ÁÅ\§ÞŒ®YÑà\·Á@é’·‡wÉ<6õˆ#Ú© \ªªå-ÜUæ÷í·ÛÚöD¦O¹ Á­(ßÚ¦LÒ ÌäŒDð–Òœª>XMIB±'ûºÁQ‚
+›!%Q±/‘Ò'¤8gˆE·8½š/.£³ÄäKLèYÎ kF}Yêýä„P…ò„ždü,½.ú‡#Ù]ÉT=+C‹!ØÙX]Æâ<+˜Ç,BØh6®W#Eß§p ÞŒOøfÄôíŠ4Œ0í“»XÚQ¹/©Ú—÷.À‚«¨å1DçýóÕ‘Í]ü‚õ-Îsq%5Xƾ);¯²Ã Ø·°{CÖdFÙ1ÔÇLðS 4ѶbD‰®6´"ÈÍg¢Vy,ê3¶.NB–`‰ `¶¥½=buô‚ÁiÀ¶3Ý‹)ÔEŸÙrXI-1˪¯5f£ö‚[¨ý5øu_ä.Æo¥Ãœ](õ„ ¸£öP×lqGÛ*Ñ·ÄÚ¾Žô ‰¯6“ÆQˆÛ<Í:D”ñµ ±Ø÷…Šz½öæü¿7Åz"ÇfSP­Ú †Ò~AŒ¾]0|Ãrm@Àïùµ}Š[ým“vƒ»Ï6áü¹PY4iuþjáãg_y™»K𸠡¯sêé7ù?Íúf“ÛpS0+’?°94 Å!üÍ÷¤s'v»ÚÌìvÏ Tû¢8Šð~ÈóÑÉ`lýÕŽ:JmÏ9MŠ‘~àÔz¬±§dWõ6Ð^ÃNÓMÙ³}„9©—êѶÌÜï=!Ï•oQ .G¨¸ù<Š8ÔøÜqžä¼¥ l*
endobj
-1597 0 obj <<
+1596 0 obj <<
/Type /Page
-/Contents 1598 0 R
-/Resources 1596 0 R
+/Contents 1597 0 R
+/Resources 1595 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1578 0 R
/Annots [ 1603 0 R 1604 0 R 1605 0 R ]
@@ -6605,79 +6589,78 @@ endobj
1603 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [406.6264 524.1437 456.8481 536.2033]
+/Rect [406.6264 463.8552 456.8481 475.9148]
/Subtype /Link
/A << /S /GoTo /D (tsig) >>
>> endobj
1604 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [140.5805 512.856 196.7992 524.2481]
+/Rect [140.5805 452.5676 196.7992 463.9596]
/Subtype /Link
/A << /S /GoTo /D (controls_statement_definition_and_usage) >>
>> endobj
1605 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.6195 470.0794 159.8382 482.1391]
+/Rect [103.6195 409.8565 159.8382 421.9162]
/Subtype /Link
/A << /S /GoTo /D (controls_statement_definition_and_usage) >>
>> endobj
+1598 0 obj <<
+/D [1596 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+414 0 obj <<
+/D [1596 0 R /XYZ 85.0394 769.5949 null]
+>> endobj
1599 0 obj <<
-/D [1597 0 R /XYZ 85.0394 794.5015 null]
+/D [1596 0 R /XYZ 85.0394 752.3146 null]
>> endobj
418 0 obj <<
-/D [1597 0 R /XYZ 85.0394 769.5949 null]
+/D [1596 0 R /XYZ 85.0394 717.6455 null]
>> endobj
1600 0 obj <<
-/D [1597 0 R /XYZ 85.0394 749.3189 null]
+/D [1596 0 R /XYZ 85.0394 688.3332 null]
>> endobj
422 0 obj <<
-/D [1597 0 R /XYZ 85.0394 679.8163 null]
+/D [1596 0 R /XYZ 85.0394 619.0499 null]
>> endobj
1601 0 obj <<
-/D [1597 0 R /XYZ 85.0394 652.1211 null]
+/D [1596 0 R /XYZ 85.0394 591.4512 null]
>> endobj
426 0 obj <<
-/D [1597 0 R /XYZ 85.0394 573.4726 null]
+/D [1596 0 R /XYZ 85.0394 513.0222 null]
>> endobj
1602 0 obj <<
-/D [1597 0 R /XYZ 85.0394 542.9681 null]
+/D [1596 0 R /XYZ 85.0394 482.614 null]
>> endobj
430 0 obj <<
-/D [1597 0 R /XYZ 85.0394 335.1831 null]
+/D [1596 0 R /XYZ 85.0394 275.2452 null]
>> endobj
1606 0 obj <<
-/D [1597 0 R /XYZ 85.0394 307.4879 null]
+/D [1596 0 R /XYZ 85.0394 247.6465 null]
>> endobj
-1596 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F53 1318 0 R >>
+1595 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F41 1223 0 R /F22 965 0 R /F53 1318 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1609 0 obj <<
-/Length 3489
+/Length 3170
/Filter /FlateDecode
>>
stream
-xÚ­Z_“ã¶ ßO±“'ïÌYÿJê=]’½tÓæ’^6Óé$™ŒlË»êYÒÖ’ooÛéw/@€”ä¥ïÜöÆ"A
-@ø²¸Lá'.Ml!‹Ë¬Ð‰I…¹\7éåŒ}{!xÎÒOZNg}u{ñåk•]Ia¥½¼ÝNxåIšçâòvóËÂ&2¹éâëÞ¼¾ùöç·¯®2½¸½ùáÍÕRštñúæÏ×Ôúöí«ï¿õöj)r#_ÿñÕ·×oiÈ2¯nÞ|C”‚'˜¾½~}ýöúÍ××W¿Ý~wq}t™ê+R…Šüãâ—ßÒË ¨ýÝEš¨"7—ÐIQò²¹ÐF%F+å)»‹Ÿ.þNFÝ«Qû‰4‘Êʈ¥¸")Œ‘3 š"±Jª`A‘‚UÒ4]캻»º½#-Ê¡jªv î7Õ¯i*Ûz¨»–(e»¡ÆÏ}yW¡-`E9Ù²ô†“ãò°Ôí½Ÿ$&“dš¤*30çx ž3S9hYž×Â)•-Ö]‹ÒÝöW"_T=RóEIƒõ¦¢Öûr_WÃuº-Í
-J;âê×SgÛí©1ÜW4·-fÕWû÷Õý'“‹›¡h§ÀÖ*‹½¾/Û¶ÚEÔ[j‘%&ËÕå2l¼ðp¿/{XR*°wßwëôî±/Ýax8 4ÖTÃ}·é_`O£àMÉ#A#|…¶ ¨}Ò×h
-ìí ·ã)õ•
-09¤ …@Ã&tž™‰è¯øìÜáÀV¸ÚÕ½ .v`+ð…Ý­½od”O¸/yUÌfÆãZî{çÁ&ÍH3a¼fÂ.rÔLÉE=ÐÈ£ãsi@fÑwNŽ %Ï$z/¦í3r[*U$µÁ~™%ÃÁø
-›0©j‡òµ«½ìöüJÝÒ“ó¨Šl*Œ†M…ö]Çot³7u8\‘}öQŽƒ&ïYR ð±ÔD bR·ÞE•_¥Ô‘P!¬ •ûýZÆvÔËES#êa’JÎ4ýCµ®Q{Î0Gn´™N¬Á¸ª
-¨}ùÔ ‚¡Ë«Ä{Ä"8Éš
-Žú†šbƒ#ω³
-‡H¿nêˆ$'ÐØÎD¢âœP±ŸN°7÷8h+~©\¯«‡ÁA2_=-0îPMMFNÀ‘ºÂÆ<)„)øDÔí¶‹Åš<ÉEbMjÄ ro­³$SFÌ]ÃÁ?%²Ñß°ã-<ƒ'c§Œ!7a’\ûœ†•Á&v’Ó¤(” !²j+õ¯<Ô ¯
-Ð]’Fâ$F˜ü]¡PÐ^"…<­˜Æ1¤vDtþ ýÙƒ «dê6q(/@¡‹€Îy y˜
-’˜ÈT&ya—~&[a‹Ë7há¶Àtú,[¼vQÈÕïc€©ÀF*í4Ö÷]G§Nòq’‹wUõàסµyB·ÛPc¢’·A*l¨Y˜áöôøè4À(Áý|¾ ¦H²,@QÜXñM—’ùâïùakUm»P®B¿fº+´àIþ«"`§m–†+ úçò@P™÷AÏ<ìK¬@ºÈJІ,²ŽŒ­I‰ ösf (Ôœ™Ïð.Ø~~^q¡4æçš 8…ÒâH¡ô´BPNÈ3-7×̤\œ{Îê!‹b§Ÿv¨
-0sÈèi.AëÆò9¤}kÂé e5ð¬=Lò×å’oŸG\d¹Ø-ÆRˆoÍÒĤG †o¹=
-ˆÒ†–/º°µáúØpˆD ;&9^UÌÅúHáÈÕ‡uUmú£ëvS¯Y!˜„–Á{Y™-Þt4Ãg
-
-̉ˆµ·üƹ|Aƒ*ŒEN ( #Ëì§Ñ0Ai‡(ö*›•Ã~èÐx!”J´qН|½…„°Ð†X
-íISÓkè K¿ q:Ö©J”ÍåÜF‘#%ón·#w‘|×+±vXïëU ¯º÷üWÖÒ•ðh«Gj€¢‚ØJ8ñw‡Ã`aØ©äôs
-vk^)úåDa%“…KåãVYH13ø ŠmG+4ÝtÝM9”\k
-ü“Ål7·5Ú'}Á¯"´ú‚HcÀÀž¢í¶dÚ¼Œ~?Ú×í°¤jç=U}ô#Í›ª s—QqÏùw2Eš<\{ðõl$a@Z)ĉ+&9¹b’ók$0L’Óë#Ép2
-kî²Úc¯0¹¿C8_Pø;v! ¹(Éï3S|µŒ@x"BÉ_– IJ,Ç÷xc$†âÖ•Æ'Ëý н.ô' &
+xÚ­]sܶñ]¿â&O§‹Á’Õ““È©2:Êt:qÆÃ»ÃéXIõȳ¬vúß»‹]€ä‰g{¦=p±
+‹®Æ«¾»»øö•ÎERXewÛ­<y.w›ß—6QÉ%PËïß¼~uûãoo_^féòîöÍëË+eÄòÕí_núñíËŸ~ùöòJæF.¿ÿóË_înÞÒ”eßݾþ0}Î}{óêæíÍëïo.ÿ¸ûéâæ.Þe|_)4^䟿ÿ!¸öO"ÑEn0‰,
+µ¨/R£“j0û‹_/þ ŽfýÖYùI‘(mÕŒ
+8dßÞßWÍ=©è×¾ì]íšž†?¸wB¨¦ê«¶!LÙlø­+Fâ‚£”I¤ÌRÔÝÎE††EJ$BgãšÀÁsb:’×usZgËuÛ w÷Çå̗®Cl¾,iò±Ú8‚>–‡ÊõO4h·´*^Ú#ð~ ¶í€~çh-éQ;|t4j´üL-oûnæv,E ™1Ûl 3×»JA‡&ËõTûCÙÁ‘Jƒ¼»®]WpïÇrÙû‡cOsµëwí¦{£¯Kž‰7Â-¤2Àv¸¯P8ÚÃhÏK«K æõ4O×F¨ß]¹\—M@9†VަŽÛLÍ• ò±òtß3'¬"FQÁEïÛÃÓŒ¬R‘Ø<ˆ4JɶôíÜÞ­Ùnwí#¨üöØÑ`½i: %à·vZ2cK²% ‘¸ {[V$`Ò]Enô¦Ù£,ÓtÙ6sWKUR¤‘çÏXy–h™æÏ­IWÈYjH¾ã/ ˜ 9§#lÉëê²a¦ØîOV€h’qåÂDÇâÕùX6=^ýJ‹|y»%$(pXã9ó’É!ŽZm¦6Ü´3‘:ÉTž~•@laNòb°£¨Ÿ¹†hPÑê±Úï Z¹?ÑA“ØI EV½š c>ÿÛ_RIžûu£;Fkõ 7n[÷}Ø5ƽïž: z=EnÜêp¶OCýô€cþ½Þ¡ŒŽhŽûý”ÈÕ ³'‰á$XkÅ"Ëýš[ž:BÈ2(C@ ÏdŽH4Xü¶Þ;r ÁÕ¾ê<ëˆxôÑ¡HÔ[ã:K1{^°+ùœ•b3Â{(7a#2º™4áfÒ.s¼™V˪§™GO&¦Ü‚&̲k=#Ì|DSh¾Xu|EvJÏ$78â1œ1¹ÆßHp0ßCÀö²˜Óé>3Iª¤™*ßërrè9ï¥ËãÊÀ@@/ÑZÓb:ŠŒ8"åÜS”ØÄEÝSÓ—Ÿv?ÙxKÕЗ3©žQ*ÌF¥|ßòŽv²3Î5ç$æ8:`úž¤…"sM˜È& «íIXy§T:+¤UP¥æA_Ws |ÑOˆ˜zŤ’sM÷àÖÞžs̉A}—&Ö``ÕPÍʼÕn‰äêí.pª ?ø…ò㫳—!<‚â™ÓP_
+i
+v‰ªÙ¶sÁ&OrYÄ`#Œ|AöB¯—é¡©¤à @-³ÁÞpà#-|£%ã œ«Ý¤Iò4$5l6s®,’¢Ð6ÆH×8ˆõŽOO
+Á bòðÔ&¹ÎíÔBÁcØç
+â>o+àf›3YûlýœÇ$xÞrkN-
+C£3Wh UF–Ù/—ÒÄKûò€‚¯¶‰ÑÙIyØõ-ƒ3„v‰4§ù) ô\ˆˆ‚TàSÃlè™YÅ`˜*õ…ø•²§.‹dÇ®ª£«âëaï~01`*Z8À£(¦ÇO0@›~14ãä×B'ÚæjêØ#Q -%9z»ß“¹(~ðUØ=¬Õ*¢WíGÞÁݵòM|÷H
+MK'ÔíøÜMÙ—Üm@”fâ¤&ärTPe_´«ÞWE‚š
+ÿÝñ,y
+üW‘‰>·ÕžÿÛâÞŠÕÕ7„BŽ4}H)Q_ϵ‡ªé¯¨cÅuO®»>÷ÿ+ÐMá?Ìü·‰ˆ? üÏÿÛ2üãOš%:ÏUü·•©b³<Is ÂLá]RûŒóðO0ÏYÿ/.ˆÅendstream
endobj
1608 0 obj <<
/Type /Page
@@ -6690,35 +6673,46 @@ endobj
/D [1608 0 R /XYZ 56.6929 794.5015 null]
>> endobj
434 0 obj <<
-/D [1608 0 R /XYZ 56.6929 769.5949 null]
+/D [1608 0 R /XYZ 56.6929 696.3453 null]
>> endobj
1611 0 obj <<
-/D [1608 0 R /XYZ 56.6929 749.2381 null]
+/D [1608 0 R /XYZ 56.6929 666.0554 null]
>> endobj
438 0 obj <<
-/D [1608 0 R /XYZ 56.6929 540.3599 null]
+/D [1608 0 R /XYZ 56.6929 459.1977 null]
>> endobj
1612 0 obj <<
-/D [1608 0 R /XYZ 56.6929 517.4049 null]
+/D [1608 0 R /XYZ 56.6929 436.7104 null]
>> endobj
1607 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F39 1165 0 R >>
+/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R /F39 1165 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1615 0 obj <<
-/Length 3318
+/Length 3640
/Filter /FlateDecode
>>
stream
-xÚ¥ZYoãF~÷¯ò220êôÁ£9ó4™µ“ 6“]Çû”-Q‰THÊŠv±ÿ}«ºªyÈm{‚…a°/v×ùUUSj&áOÍl,¤É¢YšE"–*ž-÷Wr¶¹o¯¯YøE‹ñªo¾5é,Y¢“Ùýz´—ÒZ5»_ý<ÿøÝ‡ÜßÜ]/t,牸^ĉœóéóßh$£ÇÇ?ß~úö_w®Óh~ÿéÇÏ4|ws{swóùãÍõBÙXÁûšwxæ…ÛO¿¡Ö·w~øáÃÝõ¯÷ß_ÝÜ÷¼ŒùUÒ #\ýü«œ­€íﯤ0™g'èH¡²LÏöWQlDãGvW?]ý³ßp4ë^ É/6VÄV§j`œ‰ÄhãXÕp”©y¾ÛQc/Ë]Ù•EË͵²ó‚:íñp¨›®XQ·®&/Ëy}(š¼+« /?·]±oAªÀÃü»ú„²Ôˆ,Æ"†0ƒÁ+»zÃëÆä%+ý²SééÝæÕjÇäí‹¶Í7žò¶¨˜¹®æç¶lqëÙÂÈTè4«SJdq¬Ý®Ìû•læ%îGóUÑ.›òÁ1Ã=»m`G©X¨46vIJ®Öž@»©V)¯Ýç¼óx
-eÓô¯É =UšùöÀÞ‘¬ž9 ŽðGù¹+ò–›õšÖ Õ»Þ0xåc±£æ¦|,˜„$ª4
-³ÒÔàÁbØžÛbW, Á¡·®›ÁÕÈöALU±{O½¢¢¯é¹á߯'zŽH^Í=:;_¢õx—‘SWA¨‹TFV^pØ9^ ‡Õ–n
-Ò‘'ö±ÌƒKÄÚD_fL„ˆÞZÉxf–ŒÔ#ßÄ ôM½ˆ&S|SrD¿iY­ëŸ(aMoòaÕ@
-$mR_
-8”\Rá°y3œC@6 5›c“/zõó¬)pÇL ”Yr êÒp,þéµå#¯Ó]¸fïí
-Sÿ&t«&b_­À’‰ÌG)MœJH•œÃBÇe^0CÉóèXè ùÂlÂd 0—AÎÚ¢#h-Jʯ‚£Î4^Ñ0FBï¹*YC g’×±Pº/“HÞ=¤»Sûý£IJ(!†Å> Y„öÆ:]Kþ`¨&g’×õnWŸÊÆlåô8Ô~œÁa½¤½ÙÄÙ0éß¹a ÂÖÀ˜h¨pÈ7šjµd
-ˆü"Ф{'BEc„LåEiÇ3¢å Y=ˆ&Òñü¹D6u;iÖXûÖŽp5ów/ÖÂÙÁg¸:sNjYR0ß×Iµ|à†ÀË¢9¡\ˆy˜° õB^î|­ÝáØ¡æ•œ¤àå/Pú«—öP,Ë5Wgùh ¡yIýÞ@FÕœRjþö¢Fdôp¸ ïCi"= åò7wÎolƒ8óÇ«6‡]jw]b˜ÁE_­ëú«÷¡
-au–z¢³(½¤¼ÿµÕSÒÿ:[)Žendstream
+xÚ­Z[“Û¶~ß_±“kg,Wtž×Nœ6NëlŸ’L†+Q'©’”•m§ÿ½çà
+k®ðÀ™(
+y½»ÒF1£•
+=Û«Ÿ®þºWSü3Ê2cež` #
+nY¡‹ü:7Ë”TŽƒû®n†ù¢ªuÛÝßÌ3Îg÷Uÿ5íz.+ð s!XaŒt¯ü× ¾x+åhu~=Wœ¡iÎí¦ò“&$@ifa2Îéïûm»N¬¥Ë
+¡ü´eÕuSuÛ
+àAcï¼>÷ÕŸ­Úîdj¤û”}MO#DE;^Ñï˜_ua½H$<9"ýlÑ£½ËjO0>5„:-
+lDÆáÃR¥ bMW€îŸÏu&¼õãi¬°ÙÉRGsÃT=ÔÉ|h}â†;—3 g[VCÕíêÆŸñè
+[ÀÅf8€[½§ç}Ù#pЀx•†(ebÃÆq«=¬7˜½Y1{‹¢U¹›-wûm…'æöDiœ†4 ­'ÅÌN~Ÿ00qSO¢vÝ}‚_Š &¸•ŸÊ–4ÇäóñÐr!SðSFw¸Æn2?ëî0uärjØÜ;ýBC0ÅÍÔBÖi­‚D#·E19;–]sš>&äÄ~¬Ë¤ãbF*ý4eÒãüŒ”afA>@q9²M@ÛÄÞ3o2Å7)˜‹ÖͪM§æVE•¿•b5ˆ©UJ4C¶À„i$ôΓ¿$…Ýï£ U6g…²v*Ÿwî`†
+} ¦A•|<V'ÏfÔÆÈ¦Z‚Æ+x:Ö1ÕžœÁ@[˜pЦÜUËÔ!4ã*àÁ9¹Ç0^
+yFéCâxëm{W¢6ÙÌ;/hæ1Œƒ^’S6[{-H€yUaèßn­„ É
+L™°<s”ÒÀ‹ÊÎ^áÁ^0\BÆóуø £I
+³…ù¬Nž¬¯BÖª¦ðZ ØêžúÀ(:‘ðt)I–Á©ìÓÐ ³$âwDt·k\rk‘spa&!óÔÚ˜¦KÀôT•žäU»Ý¶GWj«¤Ÿ} ÞÇ)>¡ñ·×'`V†Û#+L$Øâ¥Ïœ®Y.<þteÒ·jÍ2ЈQ¢2/Yx+JÏKÖØ(Y»Òc#Åæ–„:F¾±êA¤ì¢@œ8Ö<˜æ5_<tMåœ!²ò9åÝ=õ>Ê
+püLk°Þ±€@Q)Æsþ°ru50$+O¬ÑÒÌ^‘ISñcf-ဠ¨oíV‹Pz±–
+„Bþ g·@CYoƒmÃþ0 äŸ½&ßê'±òÒï«E½òÉY9êCd^ÐsTQ2'„˜=?K=ø¿LÜÀ£#Å{A¢ ^üæ¶ùÍ« ŽüÇ5y[¸ªÑÉयVmûÕ×SÓ²‰›çMõgï!}´mвjŒ´FEÞÓ‹ûàן ›Êt4{ :F=esO¡ÞU¾µñp¾è„}î¢ï|{álÑ&ñîÚG!§¨œ÷ÀåºÍ¬Š
+¬}²u.Bc×1ú êwåýx“º„ ~¦ešÙÌœe©DÒÀL˜'ÜäñÞÀcŽKŽ„/p_½-°äç«)ø°oáxd*øØ×Í"¥ä‚q‘?â_ø„ua¶ßÁ…FÃ1à2ú(“§ÕJ¨ŒåÊNE?½xHM–3‘ÛàEÃ}‡ÖÓ’Ÿ9 _rÙ2Fõ^Í
+¦d,‹Ñ/¤»<íSœÞQÞO·¥²;¶œ3Á LÐvw>O~îq3ƒL¹KŒ±‰:]…ÐÖ "Ír{,ï{êu‚†>Gn姺HJ-Q
+«)î¢(Ù@»—TB3@Ñ@’Õ-¨„²ÓÀ„Q©ç»êTY7$aøuq-ìwJU‘ðÍhnæêIïH“’¢ìR™ù¤d€…,Î%sºçªÂX*Œš…¥l=õ6ÒÎßVwsp³œa^ró›)êYWMÕ•[à%x=î+rá©›„ÜòbØv;bR¦FôfX+8tÔ½÷×^TFvâ†ÞÅ)þÌdˆ?§‹¨p-ï¨?¤…/>•rV1y¤b «ò°ˆ
+Átž¹/íh°[_SãÃèÓ¼8>~Á}š7Í`¬‹þT-BÝ‹»gòœ$pËLqa'$=øF0Îú!W£¼+¡ßÂ
endobj
1614 0 obj <<
/Type /Page
@@ -6731,7 +6725,7 @@ endobj
1617 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [173.6261 273.4719 242.2981 282.8815]
+/Rect [173.6261 190.3209 242.2981 199.7305]
/Subtype /Link
/A << /S /GoTo /D (the_category_phrase) >>
>> endobj
@@ -6739,24 +6733,18 @@ endobj
/D [1614 0 R /XYZ 85.0394 794.5015 null]
>> endobj
1613 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
+/Font << /F37 1030 0 R /F41 1223 0 R /F22 965 0 R /F21 942 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1621 0 obj <<
-/Length 2400
+/Length 2058
/Filter /FlateDecode
>>
stream
-xÚ­]sÛ6òÝ¿BÓ—H3B€ ^žÒÔιÓ$=ŸûpÓv2´IœR¤JRqÕ›ûï·‹]ðC¦ß%ã‹Åb¿?`9 àOÎt,âT¥³$„¤ž­öÁl {o/$ã,=ÒrˆõÝíÅË«0™¥"U<»Ý h#g·ë_æ±Pb‚ù›ﯮßþ|óz‘DóÛëïK¥ƒùÕõ—´z{óúÝ»×7‹¥4ZÎßüýõO·—7´3ï®ßO”~!zsyuysùþÍåâ·Û..o;Y†òÊ DAþ¸øå·`¶±¸D˜=»‡@È4U³ýE¤C¡£0ôââŸÿèvÝÑIýÉ@¨0V
-Ί@&q
-NØ5©q»°)$x ë±Ìöv-êc9¡qÈAʘ”1ó’/Ýñc¹‰¹ªþÝ~¬s'Ž]µU}ZH)ç‚´±ˆ’$öžž8úWÐRitWG
-kü"YS•Í· <Ê&À=b¿*MÈ*£P˜TJ–`yœÒ[ˆP!GrUí÷.áG‘—î& ^Ôæ_ïL¿ÇÆ®oÚq4Á‡Ë“±~žÎ•úhí,:¸mÅiíšYB×%Å&J(©¢±ße›–òçy^PÂH£†LM…” m¼
-]¤)¸øÛ:´a?L¼k˜yiï òóõ÷ßÒŠt {- ÒŃé" Á[[Úš¥Ópy1•Õ@Û"2iò?±Ÿ3÷M›Õ-;ª™¬¾HªHž©Ï1NÞ´9–\Ö 8U–D¾VvÖªBI’nè:oV™ÛZƒÝÁQŒš_ohïTiQZË÷8mÂï*;´G26Ñ£:‚[¤/Ô¬ zûcÓùcrÎ(È?Ç+®ïóv7®BTܺà~$¢”„”ú”°Ü>7 €b9:ðÎpt÷™‚3K ¬1‚@gáT[?‘ø|v …Š´ìË(²ñ¡\q
-ù§ÿ0ó½KBî›G¡ž7m8Y×)!Ô³"ˆJ?€@s òU†í®ÚжËØ÷ž#†N1šßÓ ¯%‹€_ÐÕÊsê\¥*_´CzÎ%SÊ4°ËhIÆm’sÔÎ&RmF±Â¹¡:ÝáwÖ!ç„Àq
-* Ø$´½mšlk™ç¼œ’Û2e&U
-*ÁÄ‹pŒ>„P“§e€´“½¯Œ4t
-ª÷ .k}ü “sgó'í—<œ_÷§^G4ΞÅÄñÛ+‡ôÍð8‚¿yõ5§î!±×õæû ¯ò½šª†ç.;ÁÁ™O ðôÜ=4­³ªŸzºfKeÁ“Þ bœ–£æ<5LzÇD/µHÂ~šÃŒ‡ìB׎çæ)Ïù ±'2ÄŸ[/±< S½] ’À¹AÆ4 rb=Eáé4r5ÈŠAÔ×vü 0Bè§,/²».†ŒºÄpm(,î
-;Ízm×c?Ú¾@´€Ú6âÁÃOB¤3Ç"ÔÐÚ?ãéê–H‚äì¥ñÿ;åÁ^ju¬õãй
+xÚ¥X_“Û6ßOáéK䙘!©Ôõi›îæ¶sIz{îÃMÛÉhmÚÖT–|’œ­ïæ¾û(K¶²ÍMǦ@
+VØ5¹qTaR(c¼û‚7áq¨äÚ˜Œ9‹Š•îXÅxßd\Ýüæ €ëÂmÇ®ºº9Í•R ï„2Qš&>×S'ÿ¾Y:‹@.”Mlü"y[Wíë9.åà™ƒ_´Ž&öª¢P˜L)ÞÁâ8±I!bq‚œÈU½ß»*„eQ9M1dQWÔ¬Þ…þ­];ÛbgÑ„î´Iâ¯óyª3Ø>¢m+öHg×l¦.96ÕB+}QúòMGô²4ha”ÑC£¦`‡ol¼ Òtœ:üm±á<L}j˜ ²ÏDùéáû×4"_ÂÔK¢ôx0=¼µ•mxw1OçkëÁÛ"2Yú™_°õm—7'ª Žv_"u¤Æ¥— ‡$o»6sXUU$¾WRNֺƤ!iêºhW¹›ZCÜ!QŒ64wª4¨¬e=Λð¿ÊÝ‘‚Mòè$Á)òzÖȳˆý±í†ö±8´ŸñŠãç¢ÛMC=¸¿€(­ $d¾$,¶_ (Ø#'–>$£û\)¸²tÀÀ#
+vèÚæ…Âç«K(t«óAŠf|¬V `\’%çói­ƒ’*F3H_oÍã'KØr¿ÂE ÂG–EQ-N‚¼ìì\ }qù™Ç¢ì®Àâ2­%¦³oJ*¢¯§š¡§#»ŽÔº€}½¯×ÅætQ»}'@§Q½ÝöUû‰YuQu=u€ÜB§æOžœ—l*ßåŸ{E½ƒ®1,]´”\d°‡ë‰„vi¹³#ålØ»&oíÚ¡Hd‘Š|?äÁfPÎ&Ø»"„äóÆ æQmMn/Èë‰êZ‘DG?Às-‘˜êUŽ Žºš¦ZËÜÏÞ"ëUl
+ù¦.Ëú¹Ç!–Óvùã\f}?‰MÉ_&*¸Æó^WE _O-óÛ1ÑáL{ñŽ’fNÝ-ÂECFLé$°¿çûCi/ Í²Ý«–&ÚüDœìèÄ Hò˜rË1÷#’^UÇb<kNŸtP°6W3G*ò²e~¯, ~³öÀjê4È¢K„ŽK©…:÷[|8ážþŸóLÃéýе3þ†Å¹ù‹ñK¯o°ûÓ'ïŠO£‰Éë¾¾|ü.GòåÈŸ»w©ã¬;‡ïž&&ö7)þ2e_`áþ£–묂hé¢êo=}³ÇGeÉ7½ADœV£æ²4LfÇD¯b‘†çÛ>a\› ][8¾7Oeì?…3l«ß7¶Yàñ4,ôz1(/ÇÚ!·­—$¼\FîUQFç³?FHýœeþTBÃÅ”Qƒ® …ÁÐ64\ÛvÕ®We®z3 }øé`/æè˜ƒâ®ëÜêÒªk¯«./*1å ÷u¿…‰nkŸŸ|Eá¤Y¯ízœG›ãà²ßq‰ZÂÚ¶âêíGfЀÉlf´HÒ0ýš·8¶D*Ó/<×.b-"ef‹(…F\¦Sïµ²¿%üé×áóÓ9è Ñç·¦R×ÅPãA²Ð鑹z»öÏÈÌ50ý¾%+endstream
endobj
1620 0 obj <<
/Type /Page
@@ -6769,36 +6757,36 @@ endobj
/D [1620 0 R /XYZ 56.6929 794.5015 null]
>> endobj
442 0 obj <<
-/D [1620 0 R /XYZ 56.6929 520.4669 null]
+/D [1620 0 R /XYZ 56.6929 436.7807 null]
>> endobj
1618 0 obj <<
-/D [1620 0 R /XYZ 56.6929 495.6849 null]
+/D [1620 0 R /XYZ 56.6929 411.9988 null]
>> endobj
1623 0 obj <<
-/D [1620 0 R /XYZ 56.6929 178.7136 null]
+/D [1620 0 R /XYZ 56.6929 95.0274 null]
>> endobj
1624 0 obj <<
-/D [1620 0 R /XYZ 56.6929 166.7584 null]
+/D [1620 0 R /XYZ 56.6929 83.0722 null]
>> endobj
1619 0 obj <<
/Font << /F37 1030 0 R /F41 1223 0 R /F22 965 0 R /F21 942 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1628 0 obj <<
-/Length 2566
+/Length 2918
/Filter /FlateDecode
>>
stream
-xÚÍZKsã6¾ûW¨j+W"‚çæØò¬S3ö¬­­ÚÝ$Z¤%ÖP¤"’ö8¿>Ýh¢dJÌ”=UcâÙøºÑý5(1âð/FF3®Bo„Ó\èÑ|uÂG h{"\ŸIÓiÒíõóìä§KŒBúÒÍ:sÆ£Yüëøü_gŸfÓÛÓ‰Ô|ì³Ó‰öùøç«ë ª éq~s}yõþ?·g§7ž]Ý\Sõíôrz;½>ŸžN„ÑÆK7×W¦Tz{öñãÙíéï³_N¦³v/Ýý
-®p#œüú;Űí_N8S¡Ñ£'xáL„¡­N<­˜ö”jj²“»“·vZíÐ>ü<.˜Z&Ê0OksxYZ‚ò®( µÞ_u"T
-O` P†¯˜’F˜#xJ Ê c YèùEë|Uó%„ª!H?–Ñ"ÁØ'$î¨ÑBw9ÈBC0fõM¬€”„žt½ž"7gG÷H{ìü=ã¤J6«4oªáP`´ºQà¯v¢î<‹J˜L9mÛ'8å…©âi™bÄWä¡È
-§ôv ¼ùã¦öÕ”tþ Î
- ψZâ U¨/Û¹Š“¥;?b…!–âä!ª37eZõ±°N´qÞ.è‚ÓK„4ðK¥Dc¾u–õÁ#˜jÀYFyžóÄ#ùºcþm=±L5艅ÏDÀÉçIõTl>úk×|0pf›èó¶a¾çÐÏ9ó¥"V>÷˜ît×ëŽÆpÆò ž3d4æ^A¾c¼´1¼)5€—%“: ;xMJLÂÒj˜3­AzŒ²½Œ9Nò´©l˜€SÇW0î&Þ.Ÿñ¦äëj;Ä;Œ6„/6xe¡ ¬Á=Ê«`ë›ÂûÆwëdŽüÕ¢ö´ øÚÌANwYÔYܤ¾ôlƒ•uŬÏgŸ§ö”¿mªz Nß30­jɶÚä m¬é‰w>=_4Îúð•a<-IÁíÛ¹muO2¥¤Þ5q„E!Î~*ƦC»O"žðRçp§>eÀ¤'MGÀgÙ#!h,ðš¸T¬ÝU̽Œ,!€¨˜$¹£Fg¡Qf—XX
-*¢,¶
-jИ6¶=`œp½šfšl Î.o‡¤‹Ü;¨Ä5ïÚ üñïÇzd£Á(gNϺL¨€3L›¸" ~vþ‰
-íPoÇÌÚ1²sq³mAî¦ç4çÍgìܧ.Âx4b
-CcÝÜØ`™>Ôãø~~±íw¾LæŸíÉÄ–‹´ÄÛµlŸýÙC…ú½ÕCe¯6¬uÓböRViÞÜìBËîiØš´Üš´pðA]Ó-±?Bo·–ë÷O—^×Ïì!Ø$À@Æè‚8ü‹øR+ÿ‘>==±äK´Zg ›+„ãÝéDHN>ÿù]¯í¢¯®éyTúánÚ§ç®”ïÞ‘|½îK”Ó‰è‰G²î :$Ñ„$ÚóÁ=°X§©<m— ¦7ø²Ž6¶äQêigX². +J§Ñd}ƒ±ò‰¬ÒsG Û mœŽýDžS©°ñœ¶l= œaÙvò•ʇóÁÊŠÔZOÔ ¡›Õý G%Fæú¾D¦Ô'… hXµWXMóf4-6S²×Ú<LDwÚP"!mŠÙœû^þµ¥5¯dJß”ê*(ùºˆQž`J{[;@¦[l†9ØUŽß¿¨E÷xUk‹[&]ÓØ’3H˜­: Æúu^¦°Z€š‡(Íjêx˜w7÷RR(÷†Ò3%C `>Yxœ–k¼òNÐ\G¢x`Ò6£P+ÁѹZŽ`þ9©ÊÖ…ïzüöZÊ«"®3â¦/¼è.ņáÍW¢êb—hw>º˜Ð¯ÌJßñw"Åðßp(wT\K×”;Æ9l}þw¾éè&‹³»«÷//Ü¿îÓkWæ·:'J3ãë¯ÑV3â ´@ ™Álá8´2TLXÌ2ðÛ2ßa_õÁ:yЊ3ø¯AU€ Gé¢í-l8^¥å|÷£8Æ)Ÿ[…¨óª ‹”ýãâÁ´Qúx¢çÅc²%è¡°÷‡ø¤ßH`)¤œ´œJíP4ÆrAO
-Q=±¸ZåΗ.ÇÊâzÓ~{Øýô|ØhºÚx†¿­Ñ(àŒÂ G©¦…SLœdÉÂêsRäÙð]ÎEÛóF5¶ƒèz¢ ±üP,JjÙF¼@5JËè1¡’Ím ¿€&æta®ðêëÿ^Ü|<»²?y ìï¤ö›ï™A'”Ò;]'ôÙÞ±QÛö§ûJ`vÒGèz®
+xÚÍ]sã¶ñÝ¿B3}=|
+®ð žüöÍàØ¿œp¦âHáƒ3Çr´< µb:TªéÉOnOþÙ.Øu }ô ¹`Bj5«EÖxŶ*Œ˜åö…m9¬¥a-­_^‹à8¬å› ÄîRc¡, µEþJŬ1QË_):ü¡b‘Rzdµ`Ò
+&ŽY¤M8$
+Bã&DõyZ¤ë$(ˆ8DÞLã$ÏA«e,‚IñD#õø]Q»ª³<§fB¬+~¨ýyRUŽméŒz²¢.ÛÅÇ}²á¥áGâXR̨Âöä»p7l¤ÍØfE¿è¼ÌÝ.Ù¾ûÜUGå®Õ,‰உ #“¢'ur—€Z ±÷cZUÉõMiÅrТS c'òÈý¢$(¶‹{ M…üÄàgº.€%O4r÷Ô¯ï)q¨H–¾U¥ë`ñ¶ô}uÙè>~þ¯,Ò=)˜&Óf)Dé
+cW@p‹ }¾"Õ¤ n$ñ°X+@G”Ÿç•\q¸ñgxÈÒÇžƒJÉ„2±ŸɯáqpF'2dQ¡øÎ ÈšZäYÓª6Ëe‚•üp~“¼*ýÄr>w±†%ª¹ßEÚƒ³°ŠÙ¨¥û‹ª„уnxØn„r
+¬~²®7+0ùaÄ©hÿä¯Tsa ¶ž¦ÇÛÈ ŒhLõËTãV´Ñˆ«AãÚÎÅz'™RRïú»Ô‡+ÒÆ¸ú©ÈIÇÛk üØ9DN}JËd(£‚O
+¡viË“üX%k×
+) µ l9“Š%%Ó(²&B_ùHR6We¡îägû§êÈÑOd9•ŠËéÚÎbà –'[ ™€Wt¥VzRp¤„*«Ïöt—¥è™7wFJp’›€e[ Àîö:ÐÙ
+0Ó/i]µ&|×â·Uqh/ËÙ&O«^·bw/ìt—»vç‚ðЕ.•Ž{OtT…±es 0“ ¦°yYÀɧ¯¹¤˜£›+Nn¯><¯¶ÝÍkåc©É¼F°ð ¬ˆb¦,§L1³=&é6U¿:¯tìå½Â¨²˜oT~ Ù–`ã`™U{²ÐMîÌN ÉË’ª(ûÚâ7Á¬QTèiùnãóX¸â!þÒËDlÅôŠVP ’rÆØ.é—<TO”ã mï¹|P6Û¬Û‹‡Ý›çBÓáÆ±^Œ½…ÐHÃ8†ÔQàƒI®½mMótîø9.‹|¸”sÑÎÇ´Qˆ*Ðcyå¯å¼¢‘­Ã³ªqxÐZ$)µü£=hÝÓ£ )UËÕ³°šdèúߟ>ž]¹‡¦Ö= Ú4·™¶ãI雪I–níͳƒº±æý‘ ö_1’%=Õ ¶mjÃÔ³! CÞÔ:²bç%8*_ý.×Íû¨ÍÝþÓ¨Y
+4éÜíðþÛä)äœYi@DcδժïE- º“×¾ßÝ>n-SQÔyu°S â†E2¶ˆvˆWHÏ0Þ'ˆVÓ‘ÜNë ÿr3Çkendstream
endobj
1627 0 obj <<
/Type /Page
@@ -6962,15 +6950,17 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1654 0 obj <<
-/Length 1107
+/Length 1123
/Filter /FlateDecode
>>
stream
-xÚ½X]s£6}÷¯à1~åÃØ0}ʦNšn¶uݧ4ã‘AØš‰•Dlïvÿ{…ü‘ÁØ»“É
-c‚´)…r9£0A¿êç—œ­ضxžÓt3
-^Ñæb€ÜCÕÃ;þö HÚ¦nÇr™ÌpÔ"„%BB‰…ġЦ 3Æg”ëÞ^Æ‹G'€£0ãÓE× ¼4ô¯Œ"p‰~0“K@×K ¦ç»GÂB(Pi€ÖX¶Âhpˆ0$YZ¿Ÿ±Tª´j1~ _À_2Ä7ç#.Á‚dèü c’‰%Èå9s±ÌdÄV\B@"Œ¨ì0ƒK&ä¹)`¿
-iÂ%RªÔªþŽß©òѰ”›N-ÎÒ©d Í”‚˜4 xAG§Ø¼}È(ÊRµ!†ŒG¼.ÜzGÇdý[a…Õz=§^hµ+¡…ú­Ð¡w+Ùê~á'rüíÇŽyD'çDýÈèÐÝ«æ|(ZéNµQúö¶ÀïíájV•õSp–@ÕQÏ.‹s›Ò¨Ak-|7Lç&(·ý+ÆPÍÍA#_?lÉ!qYN¯»×_M‹
-÷úJd©j;Ìݱ3'×3óƒ¢#'DVµÝ^|µ;¬ŒL×÷ê¨ÉqjGM®54}'•AåÄ=w?òêàê0ôÿÀ$dÝendstream
+xÚ½X[s£6~÷¯àÑ~åbl˜>eS'ÍN7ÛºîSšñÈ lM„ÄJ"¶w»ÿ½Â ¾d0ñîd2À1çÓ9ß¹è Û°ÔŸmøži¹ÁÐCÓ³lÏ“že,Õo÷=»x”/ú[f½_îܱ˜Áȳ¸†å›–ïÛÆ,zêßþ~óçl2
+°öëNõžë›žïŒO8´kÚ–oÃ`lŒ½À¹Ž»cði
+eÉñ6%Š)N ‰”QÕ2:TyF$N a^¼ Lâø0 6)Áa™¡…0BÕŽ
+!Ù¶ï¬Cœy:®å¹M‘}¹{™Py”1Ò\UÛRý¼‰9X@.ÇØ©Æœ% ÂqŒ8¢a¦-Ï:M¹f·!¾"¥a·é T¨ý
+¤ƒÉ…ú+$8‚²ŠÚysU3dçM;…M{Gh½‡*±sÛLåݸé'm¼s°R½'Kž©"…4\±‚Îú¯G6ƒÃåNÙžä µ¹äIŽQ/êá†!J¥ÚRÌQÔ¡#3¾†<:$3¯ÎF bÌ…<ãû›Èj›ÔÏßô¥Lît£¨`ö)e\VòüáY?˘¦Y®·»|oÃO¦Ú£ê±á‹¢›¿Vfœ]ëÛÌqÍ ŸwíyÑњﻳpej”\;ßsšKŠ k`io+jšœ€“~Ô„+¤X©uý½çÚGCRn:5;[P§’6S
+âæH…—”qt®Ààíc¢,UbÈxtä×;·Þà1ÙüÄÅÖ˜DaU¯—ô ­¯v%´T_f·Ò[=/üDŸý±kžàIàQŸ —³”çk@ÑZOªÖw°~oW›´
+¬¼¨ÅyÕD='¸lÎmZ£­ðÝ03˜ Üö¯ B›A‚F¾¾Ù’C*â²^ ö`$¾îõ™ÈR5vˆÝ©)×3óc¤çGVµÝ¾û´j”7›®ï;ÕA”ãÔ¢\kdúN0.Ê÷ÜCË«c­cÓÿ…FkÞendstream
endobj
1653 0 obj <<
/Type /Page
@@ -7043,22 +7033,19 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1667 0 obj <<
-/Length 2554
+/Length 2564
/Filter /FlateDecode
>>
stream
-xÚ½]sÛ6òÝ¿BÓ—Ê3!€?š';µsé´ÉëÞ=¤ž $A'©”çîþûíbˆ¤hûÒû=`¹X,‹ý„øŒÁÏd&¹Ègi‡’q9[nOØìæÞœpK8¢ Ou~}òò2Jgy˜'"™]¯{¼²eŸ]¯>Ì“P„§ÀÍ_¿wùöÍoWg§i<¿~ûþÝi $›_¾ýù‚ 7Wg¿ürvuðLòùë?ýùú⊦Ëãüí» “ÓðÓ«‹Ë‹«‹w¯/No®:¹¸ög韗³òùäà ›­àØ?°0Ê39»‡ò<³íI,£PÆQä0åɯ'ñ {³fé¤þ8 E”ˆ Ƽ§ÀŒ… V©ÌÃ$‘Qà‡Ó alþU7uPÕA[« ëJB>èöcÝ|¬jú|Eà v8s)Ål‚¥ZnôeÖè¶.ït|Þëæ!芭®÷ÍUûíB7O±â}V+]=ªjï›Z­€s«[šú; ûq«ºåæcY´v£Ò`ùè/K½ë‚uSo«+µÕGkn^=uºHe¡ÆM²üÞÕU«ƒ]]ˇ»¯u¥?"O³^DaŽ6=¥ßþâÛâNWþõhÕ¢Ô«r§Ú¶Û4û²ú²ª·ª.¯ê•êÔ
-¥ºg“ãhsÎظäOïî©&¶ï_HþÄÃýÏʲ¾GÝgÉ| Ú)v¥¦¯»B» £`ÛòF’‘‘!¶¨nÝ"›äÄ@½€T†–š ºC˘ 2¤ææ ¦¾¯úŒÌmFêd|™–;Psr0í£‰|¾À
-ÑÅšÆÞáËÀº³ÈncÖd„ê&÷A¯G„Ëp¯ë†€ÊÓ“Š ^ÙCß´ò
-Ž>XãpÂÊF4YÚ×>â•Å¢öO9aSwH`âR˜Ã!f«·uó`—“ )œ¦m‹EiÑÅvg6©ï,ÃçO£×H‚QeYè
-cÜêÁ¹H`G1Oºtzn'2[„>Ë¡LM˜‹Ñc§YºÌˆÉxž`ß<§àa‰W¶5¡ÐýÓîô²ÀC˜  E5%G ¾ƒocÊÇ@nâbõZ´J.LˆFþ÷›Âx–0ÆÍ¦ þ¦)VX"Aç|AÄ1äã,Þ€MIÇâŠ<Lešÿ›jƒTÏýÑúWdi(SäÓ7%£aÖ…ÖÃÅü鸱0Ët4
+xÚ½]sÛ6òÝ¿BÓ—Ê3!€?š';µsé\“;×½{H=H‚,N(R!);ÎÝý÷ÛÅIÑvÓû=`¹X,‹ý„øŒÁÏd&¹Ègi‡’q9[nOØìæÞœpK8¢ Ou~}òò2Jgy˜'"™]¯{¼²eŸ]¯>Ì“P„§ÀÍ_¿wùöͯWg§i<¿~ûþÝi $›_¾ýóAo®Î~þùìê4à™äó×:ûËõÅM%–ÇùÛw?&§á¦W—Wï^_œÞ\ÿtrqíÏÒ?/gäóɇ6[Á±:aa”grv,äy.fÛ“XF¡Œ£ÈaÊ“_NþêöfÍÒIýqŠ(
+ŒyO ¬R™‡I$"£À§AÂØü«nê ªƒ¶VAו„|ÐíǺùXÕôùІ<4ìpæRŠ'ØKµÜè?ʬÑm]Þé&ø¼×ÍCÐ[]ï;š«öÛ…nžbÅû¬VºzTÕÞ7µZçV·4õ,öãVuËÍDzhíFÿ¢ÁòÑ_–z×ë¦ÞVWj«Öܼzêt‘ÊBšdùß½««V»º,–v_ëJDžf½ˆÂmzJ¿ýÅ·Å®ü§=jѪE©WäNµm·iödõeUoU1\^Õ+Õ©ji¤"æ½Ot¹oZ-¨«òaÒ&oJÞª/V)è›Ý³>Ü3i‡¶ÞÚÿ@‚çîeÑhõ)XU`îËß³aQU¬ê®}â¼½½ƒ8 3ÁÒѱN^^
+>óè5^ P‹ˆ§>ró¢1nõ®+À
+)ºþÒ©NouÕÑçú7ÆDU aTµ"à×VÝj»—èE:ØJÈñ˜ä¹Þh/Јgažç)#“à˜Y1=ŠbK×ö„‹¢y«QUíw4Þ–õB•Ž]c<_h» E@hñ@#¦ŸÀëMa—6Ü*K¬v;­»±'‚–ä­”(6Þ :J”$s…C:_Öêövß(Ò.Î!¦Ô G"óùÛ5!» ˜Ï暢pˆ3šPl’…Yžóç5›Ȳ±f_
+¥ºgóèhsÎظäOïî©&¶ï_HþÄÃýÏʲ¾GÝgÉ| Ú)v¥¦¯»B» £`ÛòF’‘‘!¶¨nÝ"[ ˆ1}Y -…5t‡–1Ae6HÍÍL}_õ™ÛŒ$”FÉø2-w æä`8Ú+Fù|Å¢‹5½—; €ug‘ÝÆ­I@Õ;Mîƒ^— ^× •§'Ai³7¶:‘±(¾1:%hä}°Æá„•h0*²´¯}Ä+‹EíŸr¦îÀÄ#¤0‡CÌVoëæÁ.'R8MÛ‹Ò¢‹íÎlRßY†ÏŸF¯‘£Ê²Ð*ƸՃs+ÀŽbžté ôÜ Nd¶^}$–CE›0£ÇN3²t™…“ñ <Á¾yNÁ5Âj°lkB¡û#¦Ýée‡0A&ŠjJŽ|='&ÞÆ”€ÜÄÅ8êµh•\˜üï7…ñ¬vŒ!›M;AýMS¬°dD‚Îù‚ˆcÈÇY2¼›’ŽÅy˜Ê4ÿjƒTÏýÑúWdi(SäÓ7%£aÖ….ÅÅü鸱0Ë4?
E!D¾ü°3
-éÊÚñ-&!>yyó@vBÀ}:ã¶
-<ãHŒÅÈÚ¯÷b§êtú²Ÿî
-në.
-ÇÚÕg9ÈÇİÔ~Ww¦´ˆë‘غ4àá
-:@ Á€‰]…%ñ¾µ Á¿Öû–H¨þÁEúá¨ô6«êù£™ÆþhÂ1W…5½Øµ¸¯á½XX¯÷«ø˜ªxyxã;”ðAœ
-[¸òP¸E°ØnØRn¶¢;ñˆpôðŽ)d(‚ÇþhdˆÿŽN¼‘2_müÇÂþ¡†š-Ê21ýØ*Ò,Œ3`b…Â[Éñë²ý·öXô
+é*àñ-&!>yyó@vBÀ}:ã¶
+<ãHŒÅÈÚ¯÷b§êtú²Ÿî
+YF‡Šà±ÿd#â©o¤ÌWÿñÿµ‡?³¡f‹²LL?¶Š4 ã ˜X¡ðdrüºlÿØ=ýßC'endstream
endobj
1666 0 obj <<
/Type /Page
@@ -7219,317 +7206,318 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1687 0 obj <<
-/Length 3442
+/Length 3704
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ¸ñÝ¿Â}:yæ„
-‚_~NÄìúó™S“¡|«+{,—KjÝ4–Óü¬-æ4°¨7ÔhïeM(¿F‘úÊC5}i¤~(猚|•­×euÇ Ò
-e
-Y‰T%a:šÑb>&c'dlU_ƸÉ·hŠ%0œ÷e#üòóCÌÄÌçlB›¢¡Áý‚Ž·%€wËý=-$h›D‚.«ƒ‹<b¥<cß| ·óE}øÓê ŒQZû?¨ƒJÐÖ©¡:\Õ›•wºRÊ ¨§#øîê HªãdòXW?´ÔyßòX¢î¼^eÈ‘Æ_I¯Ѽ!Œ<5‚6XÕÝ5„Þ þhœ/Λ×
-ÿÞ”d‰­áxhØÃ0k[GÞˆxoƒ,íñWÕnpóŽtapk÷äF!d@ß úÆ{D\*RÙïQ»€wtÓy˪à˪µQØn¼Iòœz)ÒX™Î@{¿F¾Ôš;e’~ä…ËgËïwBÖ!={…`ý ޹â„Ò»Wm²rIá(Î¸ç•ØÎú6Ykîé, á: ĸɛqÄF"I Ýz_â#JαuðM¦Cõ"'ÁÒ=ájÁlˆ•™çç#, ›Ë
-Y v£ÛVbŠÐæ÷t|ÙåÑa®!9¥ÌégügmÛðnC¤
-ª[“9ó¿z4ΉÚ#¥ip›"ßnˆi¦uµÜ…íV¤¬Gè¥7ðŠ9ˎÃ-´*‘!ÜcÐ ® ØWâ,Üù$Ùå6¼%›yð”zØ=0¬WQQ—’>h°mð'Ãq‚þ±-6¥ë5^šcµSöµS9ï¹›‘SÆZĶñ ªz\ ¥‡\{c‹*}ZRÀù$ ‚ºÝÙïSØš"“„¨<íIIɈ¤„q)Å’]û¼”Ri3®l9î±—vÙó@ eƒ‚Á6d;>jtävd´_ŠÕXÚã![–sLèþXo—!rS ¨¢ØÄòlKŃ4€Ì/o ÄË‘†þìÖ–6G…
-«ÐgjH|´âx(‡’v^äÒIKÓGF¯ìknBr"ûJ&"à•TÜÿÏë`J)¼Ö½LÉ#$ñùû÷îÍùù+—„]p‘u`Ÿ»\´GæöêÏ .¢7å/|ª×/­ ñI‰>Ù<ùü|çüùÿö#ã„Aœ±(¿†¹„2=6ÍÔ*!b‘2Ä>KeŸ(-δ‡D…E9R™ H,°‹Óí-ÆtUSlÖß_šH¤Æ=O@‡tLÁàƒ OãhH‚7Úó¡ÍÞ|@;ÀèÚjέp å‘}Œ°VÛ‚WYŒ\iëRº.Å.«ãÝck<•Ɔ²[Éädôá’ªæ|ÉÚ­‹‘ý §„ mŸÑ7íhÕ²7HýS©†Új3hÿ} 3˜æiy •.Cˆcy]aät·í¦ò©£ÔŠç;íËœà${^­jS)AAo NvÊË—7w§Ô¸îéC‡?íO8VˆãuñØ_°Zä
-&’³5•ˆT'n¨Ý™w]ÎM*_ñ…†¯2Ã7¿Ïª;ŸÇBç8_u¡LíÜþûn™µ¬ÿŒº«’Ï…ß^0ÆXÅÜïqWTÅÎàÝ=@½ã'bÄÈ?_ ª£“ÇÞužRÌ—áh¬d´âëºÜptå“iñS)ÉTË5½ ÚÞ8À·ã›Ç¬ÇìŸ÷Í]‰±ª§›"ÈéÐ
-‹L6J' Ì2²¬‘´ã^iAaU,óO
-Fjê_<bf _&Ò=O@‡5BÁ jöï=ZI•a‰.JjýRiÂiÕWT+9ÁÔ†"ïN W< ¿ `Mz>'lü»-~7gnq[úW ˜Žº3öâAx¥»âY5Ï»½Þf@î.3È `°¿,Ú@Ãø^0®”ìoEù–™ðÏ}ƒrÕò ´.ÝÞ ð›óà-jXæÈ"ñÛ™Ê\ƒjéjlPZê絸‡ô´$¶2÷Óê+ü5"¶XIùìÞÒñæCý•"ŽT<Ø}T}D‰ÇŸÓ^ÛÓ^ÕiodC1ç°âh„Úÿ„b6/«šD”[|rÔWð½tù˜í¸M©(¾äV¸úç»Og—WÔÛ?z6EÃRÏ/¸ /Gæ¶ûñïÆ?®B¥ö 6@6ÕBð›·[
-³}äXo€` —’Ùc•²¦Âø^S­×TiÆKÉ÷«êëÀmoï-¥§žúP´F[v?
+xÚ¥]sÛ6òÝ¿Â÷Ty&b€ çÉIœœ;­›s|smhŠŠy•HU¤ì¨ûï·‹]@$EÛé3ác ,ö{§1ü§:R+íif“HÇBŸë“øô Ì}< 3÷@ó>ÔÛÛ“×Tvj#›ÊôôvÙ[ËD±1âôvñó,dt+ijw?]¸úøÏ›‹³,™Ý^ýt}6—:ž}¸úá’Zo.~üñâæl.Œ³w¿øt{yCS)¯ñöêú=Xúybћ˗7—×ï.Ï~½ýþäò6œ¥^+<Èï'?ÿŸ.àØßŸÄ‘²FŸ>B'Ž„µòt}’héD)?²:ù|ò°`oÖ}:I?GR¥r‚€RöhD¤­Õ§™¶Qª¤r¼X,ª®jê|µÚŸÍ•´³Ìl{&̬|(·mIãWŸÒèâæÓ™•³ ù£©yî±Z­¨uWÒ\Aßç]¹ ‰e³¥FwÏ ù%ŽåWžjè—fš‡jÁ 9¯óͦª¿ð‚´F
+D}õÂuÓMíÔÔ K?›Ò}3Š7ÎÜåmE’àxo#‘¦Äû˼¸Ÿà§uÎdÖçç¥L¢¨Ým6ͶkY—5¥üQóÕÄ6T뱬ª²†¯wQ*:NîâÝ^›‘иǢìÊíºªKÞûñ¾‚C¹)¿*áäIŠ3ù;˲vânO3Ý}Õ²DYeÔH]*Z§èª‡’wµ1jáÈ_—‹WÔ¯Âø2ß­:æ=È·;obúº”¦@|%ƒÂíßLÑP*#lã(1 «ßÄc)é—xl¢TfæˆÉ2Γelže²Œ2™úÏÑŒ–‹)º‰‘}ãÄcÜ¢-W@pÞ—ŒãWŸFf±`Ú–-Mt:Ζ
+þûP`’G!vÖS—C
+;²ä0e¸šœEB¥£E°¥ t¦gì¥IØðíÝ96}Ò†m`uN®xf¨®ë–ÙÝ­«ÎÝã`¤¿á%i€øŽ­‡Š‡û¼^^Œ°à«ÃíÏÈzE 9ɾôõfU®!²íqžê‰hïu¤z‡h·õt´ üå¼í€®-¶=
+ue¬Á<‹@€šÀ`êJí.ýø’Å ¸´˜Åf¹[­^¼¶xå‹×%5Â-.´uì¢Y­œ Zαsže1yÉÞÜU.5Q}võÊ%n§ –¾}mÞ9z‡‰»+àåèÂÄ;ÃÚîXº)û¦;©Ãu¬¬Ò5,7÷Ä7ÛlyŽÌÄÎ6èÆ|v uîÄ1e!ì–*|Úl'­q”
+›>·:Ö§§Ç«C¥ú)„L}ÕáØƒÆqbz»LÉA¥Â-c‡i§”1Laup˜ƒº¡®5LÀ¹r¬4¦Wª3&”ê†R™â­§wþOQo¶Mf{ri³Þã6Zf¶®êjíD:}âaß  É‚ÜÊBªò°_I@‹- „;¾g¬;_äeKô¨êQå¾T²[ß¼e‰/ã`Ì04XTé¡8 s:¾ÒÜÕH"æ„ï¿õ%v18Ÿ=MÜ1
endobj
1686 0 obj <<
/Type /Page
/Contents 1687 0 R
/Resources 1685 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1690 0 R
-/Annots [ 1689 0 R ]
+/Parent 1691 0 R
+/Annots [ 1689 0 R 1690 0 R ]
>> endobj
1689 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [406.7896 321.0872 476.0457 333.1468]
+/Rect [406.7896 315.5729 476.0457 327.6326]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_policies) >>
>> endobj
+1690 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [303.3452 98.0762 367.0359 107.5057]
+/Subtype /Link
+/A << /S /GoTo /D (statsfile) >>
+>> endobj
1688 0 obj <<
/D [1686 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-474 0 obj <<
-/D [1686 0 R /XYZ 56.6929 184.982 null]
->> endobj
-1378 0 obj <<
-/D [1686 0 R /XYZ 56.6929 159.4803 null]
->> endobj
1685 0 obj <<
/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F48 1243 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1693 0 obj <<
-/Length 3336
+1694 0 obj <<
+/Length 3396
/Filter /FlateDecode
>>
stream
-xÚÍËrã6òî¯Ð-rÕ‹Ið8I<³Nmf6ŽS©T’-Rw$R);Þ¯ßntƒ‰’œl¶vJ¶€Ðè73?9³Q(tjfIjÂHÈh¶Ø\‰Ù#ô½¿’Œx¤`ˆõåýÕßÞéd–†i¬âÙýr0— …µrvŸÿ<ÿêïoÿysw¨HÌãð:ˆb1ÿòöÃ×Ô’Òç«Þݾÿáîíubæ÷·?PóÝÍ»›»›_Ý\ÒFÆ+žáÄ€w·ÿ¸!èýÝÛo¿}{wýëý7W7÷Ý^†û•BãF~»úùW1ËaÛß\‰P§6š=ÃÊ4U³Í•‰t­}Ëúêû«ïº ½nèÿLdÃH™xD*´BM3Y„"¦‰‘aœ¦=“•œb²ÇB&çE¶^׋¬-‚º
-ŠßËöpß2ŽB«¢t6œýˆ†k‚5 B&ö‘¨1÷«²!æ×Û¶¬+‚Ÿ3×(çû¦È©©ä®^ ,¡´×r^XTÙú ÞŪX|*«Gú·¬wlŠM½{!ôu‘}ò‹óìÈÐ-%-™1K[•aEÊÎJX>V0µ´ó‚gjWÅñ~²Šw‘­Ÿ³ÆÜ; ks8ÎÞ„GJȢ΅6ŠÍy}bÖ‡ 7œiÚ¬-›¶\4Gª`â0Mcs~ùkbý‘*DÀÈ$IÆüˆf¹+[äC= XüÐæþ{±#¸â!¿¡œüS3o¶Å¢Ä§@Ðùð‚›:à„6´H±8æAÀÓѨ!ýV…Qj,ÊZZÀ™œƒúþÅ•Ël¿n‰ª²¡é`p?] 5ø¥Ò±†UõÄÒÒ„Æ€±ÑÒûj]4¬@_H¤–ù¬§Œ5fË@ó{ý«7›N_×eUŒíïyU.VŒ™5¾³íV9ÞžkŒh~)š©}%aªUÂ8§µ¼¢Z_ÐþÖí÷XΖÙz¿=R{`w*Ág]·ÃšXx´G ÚŽþ~´òír‚g6ŒºÌ1¯„o@
-ÚÀ‚ÆÔ»ò±¬ÀìqCˆ³¤I6<Â…(„˜•à¦ÀÈA ½°k•54Y^ºé ŽY•‹ª ¤‘iŒ³@Ahi€SÞ^‰hjkúw]ËË–!gŸZÂþëjkì ŠóLNîãq›¬¬Zˆ€J MíqÑw!Tò×)«l»-*žmW˦öÒ¬ê35ÇevOÙú ý­Ý‚À¶)÷‹–cTgö«"Ûµ žŸiÊùjÆÛ{*5_ÕÛb¹_¯_èo¾ßqðWÞµ!A ,`Ÿ.ÌÇó[¦Ö’Ž1ø§Ùo·Õ2>Ø3d¨*IôXE›zããýòÀ‘Bb°YÌ&‚ ÈP¨Ž(ÁÁ:ûàqÊ»ªX‡IâÝÀtÌ`z¾u¨$
-­Ñ}±#¡t¬˜SÆÆú Ó»Êƒu4$ªò:BëòŸÔ¦]°v,†¦‡‚¾qÚR a6A
-¸Nk¿ÈSY<OP¢"HÔm4БÉMYm5ã8MLg—XxýÄܠ؀½5oHNžV|Џ‘–¾õù‚€aÊÄx2ZÑ®Ì2ÈÇuýЙÀtȤMb’WÈCÇv,–¾(+­¼ôŠÀÁrB…
--î$ ߦÝ?ô£0äÆàhNo€“º î`
- üùC©… …ðšPü¾-û“=¬SòzYž—l¸zM_ôhh,îk^%ƒ¡¦\õ§¾øœ¼Ð»¨t¨òÜà²^
-hœ€¹ô#ÆSݦ#àÄì‰"‡ÂcÌcD‚|F'ywªs—´™è<§µš)@M:%aõ.m(ðÈ¡Vàà‡;øï¸‚ü721ÿFkÈ`’T&Óe¬ŽÑ: ѱúlÑPJo
-òg¬1VÀÙfð`ÄSM2pHÙ_Ë@ù—2­CÇñ%Z¥Õ™b[j¤Oê:õ\ãaÓÜñ9«[œ€C•æ· çW{>uókB¹Îòk@ÈçÌ/@)ä¼—ø¥a$9ã?\Ô°sæ8 äs6G£Ã4‘òÃLIS’\ë'ö*÷5 äsV0­BÁý¿tÆBEÃtúϳí¬aú«øÖ_ÿ?2$™B’’@ ÌáP2ºà9ºèÑÎöhá|—„ÉH“GáV
-¸d'm|IÇXgtÌc¹]»XçÁb]âæ‘g¦7Zö<Öã_1ì6•cø.‰;ÏŒ°{ü‡@y-ç¸(Ö¤Ö±}³]»kXWðÆIFo#ø>Á¡ø9»÷zÜñ
-ªIº§!Ý}ùP÷¨ðÞWFànøó‚ë¬ýcú_/§” ²ycº4mB8*[púÒüGU˜ÐEîË—’ÛçÚW…·>'aZ\&­Ã`ùUzýÍöí*¨~Ïk|ß0ùÆ-–¡HLwšl%°c^q#çcén¹PZØ
+xÚÍ]sã¶ñÝ¿Bo‘gŽ ¾‚Ó''±Sg_â8Óf’<Ðe±'‘ŠHÙq}w J”äKo¦7zÀZ`‹ýÀ' ~|b’˜ÉLMÒLÅ ãÉd¶¾`“'øïÛ N8‘GŠB¬¯.¾¼‘é$‹3-ôäaÌebf Ÿ<Ì~ý÷«®ï/#‘°©Ž/£D³éW·w߸žÌ5_¿¿»¹ýöçû«ËTMnßß¹îûë›ëû뻯¯/#nãÍpdÀÍí?®ôíýÕ÷ß_Ý_þþðÝÅõC·–p½œI\È¿þÎ&sXöw,–™I&/ðÁbžeb²¾P‰Œ%¥ïY]ütñc7að¯:&¿Dš81" àcL²XK!­
+±Nðä±§|µª_¢ªx‰þSWÅ}®¬Ò¨Ó tX#ˆ€®ÓX™,²p»@ª_Þ(¢²XpÜ ‹òê8ÛŸ.3) á¼»Œ¤áÓvY€He¢§nA
+Fíåã"n½š;›üæî'4õ¢}¡éÞ¹.G€uþꀪ(h\[Ó°ÂwÛý1"5 iÆ|ŒÓ=næ"º¼Óf`0så|†¬YÞQ]EÅŸ°¢ƒ˜•ÄF$Ùi:¬&†ëg©rñàô$YÛÀíà—ÜvrØc¿%ýÕçIÆ¡ v×,ªüqE®x¶,fœ‚À×C…ÝÛb]o_:$ <qšÅ`:w„¬Ni`\s149ÊÒʧª&³&…ð± \O^Ñ*¼³@xSl­õþ8ËxsTØL`^žÖ‡ë¸>tX¸ LÓ‚›hÚrv˜¾(g™V§ÉwX#ô‡n™¦ébÞ
+å%Àl,m|¼Ùo¿í.iÈoŒ »ÿ™š6›bVb‡U øóñuÄý ÿ9f‡2ˆhºCÓ§˜dÊ›.æ=HÀšÇœ@)EN6K' \:ÙHJH˜…Èöú˜×P±R‰Ï?vÕªhH¾ˆÖpê8sj9ÿ¢KFœˆ%Ðü^ÿêõºÓ×UYCû{Y–³%aæM1ô†£ËƒpKÅÄGïãÚ¯d Þ]œÑþ
+ŽÔ#zúè(îž–Tøñ`þ¶ˆ‚60sc Ez*+0{\âôy‰aCB$JpS`ä° ½ð¯eÞ¸Éæ¥„`…UÙ¨
+›4ÈG
+™áFH®@RÞ^Ð…)¶Nº¶çuCµOÉaýu5[ˆâ4“Ëã0o!6ªëhjkk6€Jj­B °Ì7›¢¢9Ñö‘Z>\‹Û¤RLkþbŠd¶Ïùêû¬-A„
+Ÿ íW€èÎDgöË"ß¶ ž‘ŸiÌùÊØ$ÊÛy*1]Ö›b±s©/|Îw[
+þ»6dˆ€¬Ó†yÈ1‰w Å­`ð£Ùm6Õ›ÂgÞ™Ì;•{«¯×>Þ/ö)$k˜ÕÂd"6¹ 6Ãâ‡
+ùñ¥Ð2NSs>Aç¡oD"M ¢’è¾Èõºt¬-Ôc­Œ:½«Ü¯ElTæ‹´.ÿÉ eÔèVVÄÐõX¸v/NhȰ’˜XõôsY¼Œp"’˜3“:2º(#»ýH¹/ ‘×Ìë'æÅìÍoœu¼ú ìSPÄ…´®­Ÿ/ˆHð¦”Æ£ÃP¶åü ƒ|ZÕ „¬C&­R•¾a?¤6Ãý Ýç ÷JŠáîc½% %TÈú9ƒ.À6ë¼imiJH Å3_m‡StE,À/¥u/¶×z0€ê];˜ùîýÃíÍ/v&øÇ®hÇúDÄõóôdVù3Yêžú%ŒÌ@Žž[±Îsgè¿vXJ¶X>=Yn5í$mci‰&pµ[?zT›³»é¬¯ G[Έ¬8¿R?—äéµËž,&x𥣫pbÁøBbU¿tåM§2D,,YAúåÍOe=^ï@u}ɤ€U±©+_|ò˜ÏèaࣺšØ{@·åMX ïÀ ‹ô>ÈR1nRŽI<<ö¼¹,¦^­|;šÚóŒÇ2íÒΪnQ #VÂb®õY_!“ÔW èÄ¢£ó© J•îyÛ ¨àAWäÓ6ooBû
+C®NÈ
+ÁE¬àã£R 3æ5¡øsSö•=Ð)‰^>Ÿ—dH½v-z4´GÚnwb¨ô¡¦®ÍÕúVRnÜ@å…ÞEd¡ÊS‡Íz°Y¯DÃ\–cÍ©÷Õµî€läx*Mc¡ÕyËÈ@g»2×gÝ0±Û„pÕ;Ç ð´*Â3Î1ê,–FéuŠÒè8ÍúÓx'·MÞ4àwÆl-‰…ì2Ï¡b_Š÷|)ÖñåþqY´bûéžýÓùoÕ§qØé:%v¤Àck…1q’t!x CqØáBV.ÂñìGìó¬!|ÀvR°™ÁªÖè,ÊÎèdttpg˜øñB…%;bnRá}^—ü½ÉÜ¢nÐ`Ñá½ëÏ…›$±1™ÏJO(‰Š¥”éPIpÚïŠ2ó²Á“Ãæ0q?Œ=¹ˆõà°‚ X ƒÔZ2³Lgo¹R•)ä£OvÂ+Õ¿6Ê38ߣ¸q æ"ÐNu‹Â³wð üØÕ¤À2 晈Saä ’·P=·I›JNK¤'"E¨IG°x*Ó¬Þ¥…û9–|¸‚ÿM*(˜HõëS
+ü47úÈÝ]/h(( .=}hȹ7€½|oZ Æ3¦È0¨}a† #šj\€gŸV€ŸVS5ƮΠP0"s⬠/•úœ®“P/´×Ãÿ^XŸ³° âÐ✰MIÊÑÔa(°å:)0ljüܦ_ÎÏ âOÆÒôLpVÅN™cÀÉç,0e”N²s“&É™°~D`or_#Ÿ³¼ Pœ¥çä%Xœe© Óé¿.¶“†é2ŸRný±ÿG†Ä³4Œ cE̵àáÏÁEäPÛ<†rÞ$ìØ=
+ž
+¼rŠ|W·Ý1KŸ¦ôéOXî§íáш{êIqw‡pòD@uðÙÃB0 ÓŸ#½€ãJÆ ÊÛÓp!Öñ ¸Ëž 䊨Ěã oãMeéiâÖõa2$cžð!õ[¬æ! òoPÔÔ¼s7¶þ!KÒhÿî¥ÁÜýÑ”ëÝŠ®„?”D¬ú±©ñešëvoO
+B#Û+˜ªÂð`!Sû"&˜Ï©“t<º·`çÕ%gö6À:±·ËîmÑΖÑÓjWn-ø.­ÍiÚÖñÁÖâë<®$xb¢M¿ƒ:v}´Gxª©¥Sè&ÁdF1 øTFúCŒ`‘fìH %¾Lºç޳œ·hãÏÞÒà°ÎÐÉ’™æm[¬7mxÜdE:lÒiläÞթ㯨Tªw˜ zý¥c3¼±˜—óê ‚—îà :qÃ;ŽºjZûÌsFZŸù5
endobj
-1692 0 obj <<
+1693 0 obj <<
/Type /Page
-/Contents 1693 0 R
-/Resources 1691 0 R
+/Contents 1694 0 R
+/Resources 1692 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1690 0 R
->> endobj
-1694 0 obj <<
-/D [1692 0 R /XYZ 85.0394 794.5015 null]
+/Parent 1691 0 R
>> endobj
1695 0 obj <<
-/D [1692 0 R /XYZ 85.0394 428.0557 null]
+/D [1693 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+474 0 obj <<
+/D [1693 0 R /XYZ 85.0394 769.5949 null]
+>> endobj
+1378 0 obj <<
+/D [1693 0 R /XYZ 85.0394 750.0533 null]
>> endobj
1696 0 obj <<
-/D [1692 0 R /XYZ 85.0394 416.1006 null]
+/D [1693 0 R /XYZ 85.0394 313.4506 null]
>> endobj
-1691 0 obj <<
+1697 0 obj <<
+/D [1693 0 R /XYZ 85.0394 301.4954 null]
+>> endobj
+1692 0 obj <<
/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F48 1243 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1699 0 obj <<
-/Length 3638
+1700 0 obj <<
+/Length 3536
/Filter /FlateDecode
>>
stream
-xÚ­]sÛ¸ñÝ¿BoGÏœxø @pú”KœÔ7ÓÚîC{½š¢,NhR©ø|¿¾»X
-Ä€.d¬—c®d=‘ù‘zúMÕQ«lò‡ºìhøsYn«æ‘FÚ5ýö`ÖíÎMýZî^¨‰›¥Ñ~“÷~’ºšü©t¨ÊÌ¡vÕôå./zË83ÁSÜrœ)%ìž«~b&9‹nZ·@õ´­Ë§f¯\GC¿AŒdÌdÊÓXªäµÓ@9m…”>å°ø[V¿¯w—ÜDˇ¼+=a±æé+t¨cBd6<ôDÅ*3JîÝÑ&Q»í«¶¡6õɨ}èÚºì-e2 )Ë€Dƒl<ºîiþsîî;â{âøž¾'‘¡5ú–>W°Îî©jJ‡bS‚Hìè#§Ÿ~—7Á%ȃ'µnI$¸H‘œÈ„¥$á ¬ÛžZ$‘иn
-Ë|+yMÿn- ‹î/3áŠk Œî‘¥~
-«¼Ïi¤+­uÔï6(­¿ðHˆ,ê¦ö—}Eü‡)VÆVÇÐÒÔåcn±"¥µÂï¯%AxSy<§“Þr20
-º*7ä =´ XI‡Ï¼®ÛgפŸU‹N€ \ü½~“u=ž ùöæÍÇ+R`Y"R3–°cu’¨"úZµuîöÝVž ›ä :ÞÝÜQdÍ*w8¬„FÁæ8Ís>Z(¯Ÿó—ÎãØUEo팔͚h*Ên²êaKA[¸Û‹‰ö!r|hûÍ8{Ê»žlme"€’‰@5xÎV…óU[°ewRŒ•Jb Qýy1Bã
-j‘]¶
-–$I¹Ähêݧ7ÔøhímÚ õÊ‹7&›o7¿yó2\®£°ùÉJDZñ$"Èë®] ÄäðÐê$J9M$;ë¿K nàLˆhRˆ%™Ë"‘aK¨¯§Uœ*™BE)3k¾,cp¯b(½QćÝNN„K–°+œt¢ +==a™°8c˜HÊß·uUTý •IÁÒo ÒÓ&½”lÄÇZŠñ±„ÃEÇáI©]Èæ› —™K¬L=+ÏsU…tÉÅróLJàÔ¿%WryZÓúß—¬§ q°"Óì¤K0 þNŒ¥ë~V AaµàI éÄ%0ÆG¢ …Æ†ÂØ@&Q롤ßn[-vqÌëùi Åú“÷¦b%¥gÖžl² œJ¤+<oªbCÍë,¶Uõô Áún6¦;G ¤ê6ôäc[F[Gþ›ì4»tá $¢Õš*&0ù¹Ý×+jºÄËË:‹¹,ЦÛò|Ú¸†ûý®qSÖxôk7L.vû@€+7Z¹‹ÜE¼0ÖÕ¡v¹•"z¤HÅ.ï6'C®„+*œ ¹†P§C®
-"cU˜¸jŸ6h«xo„jqÒFI VMp~ÞF ¡NÛ¨
-[ÙõA¹àŸðcÈ+‚§#ÊÄ¡ÌS\™WêÁÚÒ|Æ]ÅD­ÄA‚â$Ïíî³ šñ6/5Ó2ÃQùQ¼/ KÉ›îÙRÀo'·5Î9*½ÈlDkFÛ"V·aèàoYâ˜æ3$ì ;ÅbckE†á‡ 5¡ÎW/4ò¹±õ¤!UŽTgh¸Œ(zž*“ã£0ŽZÀw>ì^Cˆ“
-F°EUªô¸ ŽSóºõDã‚âÔU–˜žÌõ.ó$Ífj•tYn•l!-z÷í·;\ARÂC®ñ¿Üî€5UxÎ"þLý™W3ÒØG@fþÕ Ãç±fZŸÆEóàrMš¡&¨–žº%—"–‰ݤ΂OHc-¡+cÄÜëÍ€J'ÜÆ• šûér©ytÿ‹èè9‘%OAÈx¢!fR6òZ|Y€÷I²LРm÷zàíøéúI,Þµ°£ÅpSñrˆÙnJ=Å‘™r…or2R%z¾‚qú¥`Qé>ÆoY¾»ÎÖñ[–Dg4ff1dî÷—„ƒÐ¾´8<™ú>i‚¸ /ê24<@¤zåÞ†³%æ•
+xÚ­ZÝoã¸Ï_á·s€³Žú Ð§½½ì6E7Û&)Šö…U$¯%Ç›þõá iI–.®È!9$çã7#É™€?9KÒ(ÍU>Ëò8J„LfËç 1{‚¾’yžiÑçúùþâ§:›åQžªtvÿØ›ËDÂ9»_ý:O#] bþþó͇ëÿ¸}w™ÅóûëÏ7— •ˆù‡ë¿^õñöݧOïn/Ò$rþþÏïþvuK])ÏñóõÍ/Ô’ÓωIo¯>\Ý^ݼ¿ºüýþ/W÷a/ýýJ¡q#_/~ý]ÌV°í¿\ˆHç&™íáAD2ÏÕìù"Nt”ÄZû–êâîâïaÂ^¯:u~qb¢DÅél¡ãÈÀúÓ§,£LJ`Ê’<JµÒᔕœ:eÏ…§ü›z×®ÿijÛ.šzÑ®wݪÙ×ãýËLE&OãY‘#Qׄ,ª'‹Ì²Èd™
+óϵ­/Zëy·¶H¨y]<ÛÖn_ì–:ì·²»”ó–žV;KÄöRš¹]Úò¥¬ŸhäÝõGЂO?žlÕð"M7䂽Ï9h`flJFy’('bQ¿’¢ll½rkážQûmÙÙ”NK1¿_sëÊ>»ª£‡²ÅùG—ƒ¢$jÃÛ×òÓ‡Øô‡J+Z7<ýà¼y Ä)7kP&u”)ó–šõ¸Î¨™çÂ×ì¢Z-–Uië®=R.¥A d|^€À5!Á`³
+Dªl(ÂýºD­ÉÒy³éʦ&z_pc ZU/›-kRW½rûó¦²Ï ´]q$‚”‹EºáYüœOuCó¹Ždþð:›ƒª¤ÆÌï/sÐKR¼8‹„Ôr¤xËui_@Ÿd.È<(A®z…Óã“}ÄÅAzzn§4 N'ŽÓŒuaâfFú•šÈà©ÿ«m§ô+‹r­üœpJ¨y»±Ëòñu$r·oˆhí¦Ø7Ó¥LšFœD¼ò»n½¨¿­šç¢œ2‡…Ne$ò‘ÝN‹­D+í·†÷7±|é$ó†¹}\*-Ì¢{ÝX9uXàÿÂYM›b ÇŸäÌRÖmg‹ÕI‹LØ|jòóÙç:m‘ËÝ{Óv‹¶+º²íÊå±E¢SÑy~^€À5!ÁÐ"ÁrÁ½ E¸®Ñ!Ê^lFK–ÎÙ*R¶.*ÛR÷k7ìs%*·ûííÁ1=¢wwC!h¼‰›¥Þn]t~ vÎbx*4H£em‹%YØ¤Š„’ÙP©öe·fWÓxïÞ÷®¡¦ß9}ÛÏ êüm÷¸ÎܶçBIÑV:ø_”ßGZ<­=ºôX€ãÌÞ#p ¢ó‘Ý&¹IrÏW7Œ4µéyóÐ6•íì„Ý€B™ÈC[h%ç×wn‰]Kçó¹ÇáÜ㹡5º†W°Îö¹¤È S¬-¨Ä–
+úé¶EÝ‚@l¢VÍ©„LJ¤G:á$‰%(ë¦#Š4ˆëzIá
+o
+êií’ˆkç j/ü$$5ýuW ‡,¿‰DØèÉÙzšÊ>nV<A€Yáó‹%îÁYÁP mR<§
+Þ4;}‚fÒ'høåæŽZ
+¢È#;j €­=¡b”
+JÆ‘{G‘€ü®3cumàZÓBÏ—ë¢aP`‰1ë.C2£Ò8žÅ
+r:-¦ÎíÓŒˆÛ¾7ñü‹þ€ wr4/ÊugÛ¡lq$ÇÒ@ÆMõÄþäGz¸Þáx6FÝqj(R ½ ½¸ˆ]|a‚ð6vwëÐ…·ÓÒC¹›+
+·®
++ì×årMä+,Ž*;ú˜¾Ý‚iÏIIº£ú¯¯.”ÉOWšEAy‚ˆèµUJµ¼ovÕŠHN¹ŒqGçf¶Kôé®pQBw·ÛÖ<„jÌÜM›=Äæ’{K^pY0Ö…¾¶lÚ†ÉÖЃÝ.·E»> ¶”A5ËßHÕû\§áVà:¨á¢kmS—DãÈ€ g—\ëí-2“dC&­×Àñäò<ö‘©Çgø^K CïµX®íò ’9#gì oÖZjpÈ~‡ôð{{ÛÚŽFOXwêFŒ.&"ábbÄ£1ý¬(^À§ŸÕøey‘fDA%£}ÚGˆûbÅ2
+w•™W£lpBÐÜ_ÞÝp´U‹  Tgbõ™¸<í0‹ª•B†¦0
+Õ>a ÜÎ,ðS4‹Ó>JÄ ñù/nú\g|”çr‰­]î¶-:ÛÑÊ9$sBeçWöL+¼ô*W>#’ï«!ºdÁ]_®¨¢!¹|
+Œ0„ Œ¸RñÐåsɵE¾;‰K&Ù7Û/ šñŽÌŒ G…?Ax_A–RÔíÞI bï'cÞš”^åѺŽÁ¶hgÛÐuˆ·"æCó¶„b™±qªÝìøa@ES«WêùR»JR_*•ÔsBÏccâsT†¥eH
+nnÛÝr=¹5޵`HY­X×}
endobj
-1698 0 obj <<
+1699 0 obj <<
/Type /Page
-/Contents 1699 0 R
-/Resources 1697 0 R
+/Contents 1700 0 R
+/Resources 1698 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1690 0 R
-/Annots [ 1701 0 R ]
+/Parent 1691 0 R
+/Annots [ 1702 0 R ]
>> endobj
-1701 0 obj <<
+1702 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [154.2681 538.8935 203.5396 550.9531]
+/Rect [154.2681 420.6261 203.5396 432.6857]
/Subtype /Link
/A << /S /GoTo /D (notify) >>
>> endobj
-1700 0 obj <<
-/D [1698 0 R /XYZ 56.6929 794.5015 null]
+1701 0 obj <<
+/D [1699 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1697 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F39 1165 0 R /F48 1243 0 R /F62 1369 0 R >>
-/XObject << /Im2 1358 0 R >>
+1698 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F48 1243 0 R /F39 1165 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1704 0 obj <<
-/Length 3995
+1705 0 obj <<
+/Length 3701
/Filter /FlateDecode
>>
stream
-xÚ­]sÛ6òÝ¿ÂòLÄ
-Æ™xöVïi‚ªpr -§
-~­Bk „µ ‰ðÆÓ²î
-è•çÍÍë´¹ XS<29
-Œ‰W~võ€5±üÈ™ƒ×4´a´~8}ç ±±,ÚESt¥^Mè¡Í¢X&æÑÃcÝ1û%ìh£ç¤Ìã_Øòñ¼ßª{ÚF©žÕ¤òy¬KdÍv^Öà m’ ²6À:#kËVÅ_û¢íNÈ„2)8¤³«¬‰åDz¦"‘ˆñò¨nâPÔÒHCØzZÔbŒ¼’ñ>ωšÇ¿°ããy¿YÔt$2yáØÖ%2Žf;/jüB§Dm€uFÔ<®Ø5EÞÍÍ0³yÞÎÛ]¾(Ždì‚1©>OFÀš c$sZFFk;&„B*™ˆÞýCû5gàÞ%'2qƒp*-C †ð¹Í¿ qò›Äñ0ÐívM¯‹¼iÊü™GP_·ox‘?€¾?¤LH€E2<Aˆ U',ÁÕ„B$‘CîõaB Ä–©b\ÖL×:oòÅœ"2e4DSfuÃn¦yŸY6kómA WÌð°á]9½Òùº&†ƒØÓåO %aZL!:”FS¡o•/ÊM ÞÔù“D7XüO]q7åS¼´;L$…¿~ºÿÉ}ƒ në¶û½‘ïÖt>°‘‚΄ޞ‹ªhòŽd!¥™œóóÓ#=ÝÖàùáçÏÔØæ‹uYIÅfvÏè^„ô̾£çSÝ­©ÅTBëÔùcB
-]Åó>,ˆýeåÜNPöÄ×,pOïz†ábUZÑYŒ"V æƒVÜmÞNµHìx*¦DÃy´£ÐZ
-B¬áJ©ñº
-±¼í þ††-:Ø&ÏêN‚æd,ÜQó%Oʵª@S12´g$¤î™ª UºöÄ} .îµg8À¶õ²Äó-øýéöhñ;ß\uð ®àV´Vh=»Ý´5J'DOùK]r|¤ýj”H²ŽÑ𾪛©³á³3r,ÜFx!ƒ–W€µ;W.Dà~GÏï4C1±`à”=‰(@ØÕm[ºâ"‚‹¯»¢j¹ËÕ2Øé)Úë¡zµõæ…õí•B:lÕû ;s§¯e[ÕsÏi
-¡Í"v²YÄfÞ~i©µª±„ÊЊž?ýFOíÚKεòK­ë¶cã> ¤RQf¬¯
- ‚¾TõkŰâÅÙ\wéUïŸÑPgQßxš`‡á¥ª;j”a ÷ …ÊÐ&Fä>]Ç|xýD90@.Š‘ZöQŒÔ*Ä+£X8“‘22¤õ”$$ä´þÞ/3ZZ€ÌÞGšgë¬\>p ‚‡V·;èмJRFì è`3ªž îב–=|4ÃÆ¦XÊΧ#%qÖáö¤ññ·Rƒˆ^úˆP!]Q9QÁ7G76ömèÇç8ÜÃTÌióØÕßꨔü(Bi ‡a”š½”Åë ÊÈÀm¹ù®Ã-ʔ̺Ôº:€»¤å®‰«â8‰2,vŸ“
-L<ƒy-QàyvwÅA îŠE¹z;q! «@3 %Çži)äƒI&MM”ÁÁ¹c6.Iǰ eôfà+’AæeÙ˜‹½ú sØMýÌöˆySQ´
-’>‹Á6*ä͉J}»
-uœk0äFàyÿËKÂûD€E€f”a.‡
-*J0»C:Xù•ìù£èE*áÓ€ä/ #–à+—Ñ¡ÅÎв4ÆÏñÒ®¤Û@ŽZÉþÛÊ‘—™«½ ŸÏ‹
-W›¯Jä’ÿf@ÉÈÚT¨ü¦ÊY:2*Üe‡Ýá…?¹ZŸ¸høàÚ†o®Ý5âvË÷ø¶+9%Ýw¢‹ƒdPïps×ô\›ÝÁjÎÌ”=9û‘ÄÛmë‹Sì«4¯ì'dþ±rýßó÷ÿÓ!É"eŒ<ýñ‘‘6óD!³õÑדá«ÿcÒÿ ·,y-endstream
+xÚ­]sÛ6òÝ¿BòLÄ
+Tg2Jr­ö†"Fâ@ÀByn[;+³uÓTG& 2 «òIŸìÑÞëxw
+J©³»¬‘íi=Cà ƒýƒöÑÝÜdaÛù¦ìùJ³ñCÈܱLÌÿã‡Ç¾fñK䃃ž³2ÿÆ‘éþ¨ïi¨ÝD_W£Îç±ÞbãˆÚy[Ó&J¥oØZ댭y,Üqc!÷¶Ý [3‘H!!Ý=`l?´5‰D ·ÿ{Líð‡¦%9Ôï§M-Ö€› ÏyÎÔ<þ'>¦ûæ¦#‘É7Ô°ÞbãˆÚySƒÒ¤qú†©õ°Î˜šÇ»-ºÙÜ•u³¢µëbnlâ‚1©>ÏFÀác`sZB ×ù®s±Oÿ0ß „j—$¦Æ \ÊÂÌЀÅŽ«â«eˆ³ß$抇î¬pjzœ›MY<ñ´Öm7¼Éqÿ!eB,’¾¡2Tqì{ÅzÄ!hÏ„Gsµeª÷ýóõ\lŠùŒ*2e4TSÆd’T5vnšÏ™eÓ¶XYAUO'@X*è‘ôë¦XâJW<€¶²x5Õ¡4Š„
+kËb^VeÝ=WM±(ë'¢
+ ¿ÞÞüÆì¾¶]¹#Æg{&ýÀA,鄞žlm75±IJ”\ðxû@£;Œ¾ÜÓdUÌŸËÚb%›é £{ÒÓüM÷L3æf§ô/0Yææ-ý«„¾þA«&“=ýûã,üy~â#¤§ØÈÒHe"ÿQ.6c'A+LþÞs8³M$”n)4µÝU  ßtõv£ó¹]ƒ¦ßñ£“I?)õÃåSÝÁÅÉXšdŠ ©ÎÇÒ>ÖéX°ð`ÅbQ"KE5[nšÕ¬ØvÏžûƒ¥9ØãQ˜•h,Ïs°FXö3Z ¡‡<><Ûû½<aùµô0oj
+ŒM…
+ò8ö8)Ð
+°ví® ¸]Óê]ƒa+&6 $ÙÑHLºiÛÒ]."Ø~_Ûºå%§ª#6dˆÓc•[Ów¯¶©^ØßvTÒá¬ÙVœÌsìÊÖ×£eò
+¹bû„B¸ˆúÊdB†‡Ú}ëƒIÞᕾQ9
+õÊ Îd¤Œ íA3f I=mÊ(ü1£¥ 8Øõ}¥‰pŽÎÊõó×,8ä°v9ÜAûáU’3â XÀ‡Q­øâ ê~i9"
+.û‚¥ì|;‚UÒÁW±Ñàã+n¥z!<ì+B…lt¶v¦‚OŽoœlÛ°Žã°Ü†Àdgtx\ÚÕQ)åQ„Ò‹jXz„·Ôô¥´»^•Û³û«zóu‡G”)…u©©tu€g»
+KÇF!â$Êð²ûœU`ãÌ®Dƒgêîm¸¶órùÊö:² L³på8ßnZ*ù€Èè¦)¨?t\@žNظ%©`ÁÊzØw˜AìH…—Ä{÷é÷°Uó4ø‚º+65U ð°‚ðW<ÙQcº?'ÄDFhߌ·œPëÊÚY$´ðñ±˜C=YQu,û.›x7„ ‰,‘\]÷V»uŒT{rä˜ ;&2ù&µ:òû.rX¥QtÍ×í}(…B í¡d/8£š“º
+A zi7›¢¢›;%éWÉZ<ZÓð¶¡›Ág1}Üáê’(ºoäPÜV*Èf®| éš³JÝѳ£â'N|ïSTÚ~’MïËzn0½ËI6iIòÐØeôe€¾,e‡åÅÞíV!\øEhuÊ$û.稕'*®ÔB
+†Œ7¿¼$|HäÐŒÒïâ໣œd㠽콇T•ÔDƒÝI ½ä¾q¥°qΛwìS VPLa4{: Åž#\(x>NÔñÞKö  LÝ%™Üb;'S̓?îšÍWB'C§¾W
+¾ÚMm+ï²%aó-cnùÜÖî']EÇÈù3áEÀNÛžú±J#üåïˆÍÅáw³ùÆû__'tˆFžþ odžy¦PÖúèE©2Qjd6Âúÿ
endobj
-1703 0 obj <<
+1704 0 obj <<
/Type /Page
-/Contents 1704 0 R
-/Resources 1702 0 R
+/Contents 1705 0 R
+/Resources 1703 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1690 0 R
-/Annots [ 1706 0 R 1707 0 R 1708 0 R 1709 0 R 1710 0 R ]
->> endobj
-1706 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [208.7944 746.5016 272.4851 755.9311]
-/Subtype /Link
-/A << /S /GoTo /D (statsfile) >>
+/Parent 1691 0 R
+/Annots [ 1707 0 R 1708 0 R 1709 0 R 1710 0 R ]
>> endobj
1707 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [293.8042 701.4984 355.0043 713.558]
+/Rect [293.8042 626.0628 355.0043 638.1224]
/Subtype /Link
/A << /S /GoTo /D (server_statement_definition_and_usage) >>
>> endobj
1708 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [395.8905 701.4984 444.6373 713.558]
+/Rect [395.8905 626.0628 444.6373 638.1224]
/Subtype /Link
/A << /S /GoTo /D (incremental_zone_transfers) >>
>> endobj
1709 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [309.3157 671.0806 370.5157 683.1402]
+/Rect [309.3157 595.3901 370.5157 607.4498]
/Subtype /Link
/A << /S /GoTo /D (server_statement_definition_and_usage) >>
>> endobj
1710 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [305.9683 640.6627 367.1684 652.7223]
+/Rect [305.9683 564.7175 367.1684 576.7771]
/Subtype /Link
/A << /S /GoTo /D (server_statement_definition_and_usage) >>
>> endobj
-1705 0 obj <<
-/D [1703 0 R /XYZ 85.0394 794.5015 null]
+1706 0 obj <<
+/D [1704 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1702 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F39 1165 0 R /F14 968 0 R /F48 1243 0 R /F41 1223 0 R >>
+1703 0 obj <<
+/Font << /F37 1030 0 R /F22 965 0 R /F62 1369 0 R /F21 942 0 R /F39 1165 0 R /F14 968 0 R /F48 1243 0 R /F41 1223 0 R >>
+/XObject << /Im2 1358 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1714 0 obj <<
-/Length 3788
+/Length 3805
/Filter /FlateDecode
>>
stream
-xÚ¥Mwã¶ñî_á[å÷"†
-™NÕ>"·Iš÷Å Eݵ­JúvåºÂÅaØQ5Ú„Ê£,Ï ÷T•ÏJdi™¥ŒÔõE_îYJ`âžWnŸÊáÚðútþ
-D] A<·‡/Ô˜å
-`ÏÉ"—MˆÛ‡ž¶{.cFþwNoV^V=î,›€rG'© xS!ôuç‘ÈÁ¯†S7BZޱ(sÔ×cá^«?(ŒYní~¹ƒ
- ò =½–¼©«m2Œ=ÃäšD ;™dL‰ ÏpÌX‘À M ›Èµ(›Pï‡p,f#tžš¾ †±ô#Ô”Ohõ09‚+k]Ôëc I÷Ó§+{þÁ–¾ƒœÚ)QV1܃ØêÞ­@á9‡ Ϊ[ˆ7W%²q›[×ÿ¶ÇCS /VÆ3]&ô×;‚Ø&)ÃF<A#\46t€^²G »rDÃÃÙW=e ÛnØ´ÏM×ýÅž×Á3ç™ÐObŸÚ12¦È–Hôb9?§‘HMÿwh UJn…Bh®¡4 »Y;n¶ô]ñ0ø· AdAá·èä7/yWkÁÉlþ¦r#A¯¯=
-DiÚÞsµÁèOÅŠbøòñBÆðÇcI™gœ°Œ©acEGr¡ï~þ…gh¸g_îÛà Á*vÇ=“X'qæÃ2¤¼c‚šõ
-þ gçÔIÚÊÒ3^±Ñné[Ї‚KYøE¥Æ¤ŠüšôäÆRÿ©q~ëj LÕØ®ÙØ$iŒd5v G…Õ¬¹ (ŵ†'0´!YýŸv gë„©P€ã”
-4p*7xUe‰™Õ{έbˆMõ8Ê“99v‰>•|¥—"Ê?liŒ”€ "Ž£DäâëØ [  f¶­‚ï¦êÜÛ(¨ãÄQTûMREß¼| M¤ý*‹b”‹i¬gŒ “ažDiNÛ •ó`tx~a°êr“/Ž]¿,šõÎÖã
-襇%ÃKŽŠgo9‰À(ݰ“lÁÀà€Äì‡è4RÁ5b%Fú¯Dø —™‰´Žõü†íkža¡¸|.û>pÁ;~8´ÀÄû¤³ž#‘Ê9¹º´ÁS €ì_çoJžŽuSúÒÚPz"6>Öþ©Wßë/Ýy©ý8íe©a]Z‡…âÕû ¦`³…Mé47—vH…'çËH'`I'+Æ·lÛ*¥ƒò3eˆ&êÇ».›!aUøÁª|uÿÙßxÍò8,"Åâõ“Syœ æêÐÛÄ Ÿ;nCV6í«<cFΟpÁÄ©l+¾Z ·
+xÚ¥Mwã6îž_‘Û:ï¹"©/Ói¦Mßv:;“¾=´=ÈkG–\KNšþúP_–fk‚ ‚
+E¬’ˆ‰š6k펵½,Ï\Ã9q(rë}/e½Êʹ¹ÃDA¿Y0I$Œ ÍȬ»‡4ZÇ„ÉT„À4YÊff“‚máA^l3·É‰0Zyá¼#q 7D6ƒ
+<÷zÎ" é‚0ÜxÑÜ<6
+^KÍòFèDÞˆìäNÞZª<÷Ž€ØppÁ#ÐY£ìMº¸els||´MËQï#w5õgîðŠ%ï%ÄÔD¢æÄ¡à w—}µÍˆPNؽê6ºÀrÿ<Ôʺ8z2W§»€äp³­×uI?yNã;9HgÝÎ)“…³»Ì
+Å‹]o³ªh\XA€_ü§c¡²õ±!Šžm ¬ïa{€5òx¤´‘×Gwþ[‚ØÐ óÔк7‰<2{3È–0¾V°™s) v<P~»Ê,̱@«ÚC¨ˆ Hu‘@<ׇ¯Ô
+
+ì¿ñvÓ‹ò²é1Ò‚<òã>›ü‡*2ŠâËÉÿê|òßQáZ‹?(ŒYnõn™ƒC€ÆÆlµ¦¨dTˆ”’P_f§£šágÒFtcÿð¦L3r#R¯_Š‘•„¤Ý‡)lF˜é(í,‘e¹€Ða*H7\ÅÙ4b±|3 ÚeMë‡àztö â/E´#pÁ†Ä¤Á±ºX‡à8u5±x¨ õdÔAìA»g°Ž½ž¨)]2Œ˜~ð˜T ‘Ì2¦Ä\b¤bHø&":Z´K¨wû> Ø ç†KÓ0–^òA}*ÀªÃìHÞ¬
+_w$­}•Ù¹ïqù ê';¾:»Ÿd5‰‡Wýâ“\W/?&ƒCJFær˜<¤:&wTNh0k±ìE7ŠŠeDpqöŽjfúQT¬¡•NÆó?tÕ§f[K.ÿ¬¸†DÞ
+×°/}Ë­¥!"R Ø\ø`·×9ºXõ¥®éÕMWýÚ8÷«îª ú*œ\´Nrž`d½Þ‚³v…#Ï”!SȺK¹Kuò¤«?Îx¡e7ȹ[b0à$R^…¹Ú’øk­ˆGXä‰÷'‰+ˆ™á¸[9¹
endobj
1713 0 obj <<
/Type /Page
/Contents 1714 0 R
/Resources 1712 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1690 0 R
+/Parent 1691 0 R
>> endobj
1715 0 obj <<
/D [1713 0 R /XYZ 56.6929 794.5015 null]
>> endobj
1712 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F48 1243 0 R /F21 942 0 R >>
+/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F48 1243 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1718 0 obj <<
-/Length 3464
+/Length 3503
/Filter /FlateDecode
>>
stream
-xÚÅZÝsÛ8Ï_áGg&≤(QwOÙ4ífw›öœÜÝÞ~<¨¶œhjK©%×›ýë @}زÓÎvæš™Š!~
-cU2¢@¥z
-”!´£x’˜TÄZi§Àm=ä°¦$œf›si§y:Љš¾®6¸<DöIB˜!Ž`füzÕMîÙúsi-¤Jfû³*óš&iÝlrºÈ—ÙvÕµ¨G¦²V¨ÈHc™«‘‰¤Q*ýDNtyDt¥E’&žµ^eŸó‘•©Ží7”|—mʱ‰40©ÉÝ$YYïò|€<¤FM)Ej Ÿ¹æyñ9_*—ŽT­é†F™7»jó‘^~ M8"²TJcSg“×OUY)(rPTÌÃɽé:ý˜#ú‰0Z{eµ5E*´N; 9](“«CÔ…àµÖuÞ»ÉcJ±ÓíÊÙ,ÖÓ¥S'WùC¶"ÚcU7e¶&Š^}
-Ÿš,Š„jW‚—;kÎQ—ô¼¼ ®KøG·r$½ý™ ÕÊ=5€=¶rzÓW¶ª+þ°C³‘Ùދ<Ð Æxá°éIìµf:{EÁÿ»$.
-¶ôW(ºŽõû³kóV†Mu’‚ { ØjcŸ#szà€ãz™Q,±gÉ,ùc [ø|u{ww}Eó}
-/ªKgˆÊãÒ¤ËSßS"D ¸U{YZ;6FC†¹ÂÌo ¶!÷[ð»ì¹æWÏBöŽåšDñݑ߶Mû!<·%äìuCiœòŽþЉ²ÎšùcQ>xѪMÑ<®iLe0É_ Ð(Ý` féRÌþÈLøšñ69opiiÚíÎÐévçv„œºÐ
-7¥Ø·|LxÍõe…¿¶Ã’ †ô‚:eÁ»Ç
-4)E€¾=[C×
-1î:DKȪ³Ñ Ôêät,NøšºœóÃÓƒû=ˆÐn*€£ûJúd¨n£ƒ'{†l rbÜÆvôÀ¡—-jÙßÿ´VÓ _Q³·ç+"ø’š]ðÄš‘ðˆ_ŒN@Ťö²cëa…pctˆü¢æO ×Ky<Àdv¤Új½DG26&Ù„5„®$êa]Ué2Wè.Ê€Í
-äþØ.èsÖrµô Æ–~þjÛÕ²&é 3•¶õh²™ˆPJ¿ãÇ‹ÀÍèF=ŒF •éḚӈµJ(žñ9b;ìäõC·_.?ä«jGÔ¦zbÆ%xqÐê”ÊžR §S
-~ØSŠCnjE*uzXbútÆ%¶æUY@òrÎ'-­Ç@û˜#‹ùkŠÔ2ôyà—›%RDV~E¤?^ÃPuì<¾ ¯=®áÕsõsû`îªúƒê76‚zõäü-׈
-Rx‘˜TŸUŸë8¨Z®Î`õæóIT™Ó´\#Œ ÊE8‚* û× 
- )û¨Š-£*N=ª€äQ•h* ÒI¶¢
->ë6!è<„VìÏsºn‚ÎXù
-ê* šfu˜Øƒû§Òž å‘`hK‰–CØ–Òg¡ÍŠȇ%€šm›G¬)³¦øŒÊ—x5÷оùÏèæ­&’óQ`¼{wI„OÛ|C÷ @¥àl<àýýODq•ô×r@À(·7"U‰<•Û“[w«ðWQþX¾½ëóKâÄ©†â–Ž% W•ðü“†«¯OxdYÊ|›”GEè~ö…вÏuxžkxÁ<›?îQX
-ÌË|Žáb4^²ÏînÞpZ³ôwŠYݺ3FCç4¢­½{7ïï(Še¶) 
-~Èé™ñ¼«<ó]Í®â¾9%Øï£”áVh ¯<Soï2{hʧÀWœVDéþag(`z²lD»†õ{4¼kcÛ¹ößσ?Lhˆæe†¦3'6(ZZÿ¥~×/¾ëÉfÛžØ
+xÚÅZÝsÛF÷_¡GyÆb÷“sO®ã¤n''ûîzÓö–(™‰tEÊŽû×X`ù!QRrÍÌÅ3Ñ .°Ø°À.åHÀŸÅ6:1£(1ÒŽfë31ZBß»3É<Ï4ér}öÝ[’ U8º_tÆŠÇrt?ÿu|õÃåÇûëéùDY1ƒó‰ Åøû›Û7DIèçêÃíÛ›wÿš^žGf|óá–ÈÓë·×ÓëÛ«ë󉌭„÷pà…·7?_SëÝôòýûËéùï÷?ž]ß7séÎW
+ùãì×ßÅhÓþñL:‰íèD “DÖgÆêÀ­=euvwöÏfÀN¯{uÈ~ÆÆU&M€Y…R[Y‚Õ&‘‘2B5VVrÈÊž ­üÇ6Û¼®Êåît¥
+!l‡{HrÃ5 ZuDK-‚$£¾ì»§l–/^ÁìFŒ_³ú1ÛÀƒNH+¢ƒn˼X½z,·«9u<dL«ÓMÍ›Q
+œÊÎÔ•ó%õFÁEº†ˆ­«¦ÖŽ…a.7p°Ñ"ß,†Õq`ÂP1×”;ƒxmUÄŒyEÊeÍS
+~çYmÖyáìϯ;<mÎe<Ϊ¬˜1¥\ì°ôž¥u¶,Aæ€UBÄZ›ŽYò¬6wdµ7_°çq ë¢Bv9Žý.×aì7\(qö˜Í>M ÕüaÅÂ89!¼áÞƒ¿‰ƒ0;âïqu´IÆåS—°¤šW iÛ
+)uI^¡z“ÏjîÁ¥Á®ÙcºIg5ºÒ«ì\Ž™'-æÄS½uú™ˆ¸¶î½lS§9Kž—kjC…*™q)c<0É…×iERu8FŒ®Ü[ð
+
+]¼4‡ ”/…‹q@óq© ú½¼ ®KøG
+¹@zÿ §0¥c9¾©‰+]U%¿Øª¡Y ãÔp ïUîÊmY¯6=‰]ÖŽ§o(áÅÿ.‰ä6xø½½» ÆÝ‡Kn½ÿ…´†Ø7=·vüozØŸŽ­›{ÇÍGE!Î6"š>×åi5€‡÷X˜=ÑD|ÁÄ‘QjüðÐà…Ã&Ú†Zy1Ï1{™{æ´æÿË£¦]‰ÏŠx€UY~Ú>±„E×û=a ÙÑ¥75Ù$£„묘sº–s~ws;¹|óf\N?ž'ÊAÍ‘?†»$çèÜus{Qé`Be!‘JØã U—ëpBÕpµ.7ß>M6¸Dóý´*L‰5ÏQ®z;_¥VG=%®P t¸ÍN Íû6]T„,lLØK€ÀVú™s×Ëüó|= †`Á/cÔÂ_H~HÞxö¦¶œ\&ÅaóU¶N‹°ºZaTvœý±uQ\…„ =­RßIuÒn
+3¿5$ ؆ÜoÊ¿¤¯?zúaïáX®Ißmø¶M
+¤Øáw[@Ê^Õ”Æ)ïèÐèΘ(ë´ž=ÒùŽSmYnòúqM0•Áü{ ‘BJ7ð¸ÒŸjHI0ùムxLy›œÕ8µ$iwgèt»s3BF mh€‡U›Òì[>&¼æúÒ‰Ñq¿`ƒ!½¢ÎXIÒ`š”"±»ÖÐÕÊ/ÉTJ»³èdtWV[Ž,)ý`ìSôa¤Ä‰ÓÞÓaöL­çE-ai_÷=X!øÚQé Ó¾ø¾ÿB:¡Á ºò?f°«C”Àˆë° õA™Î‰†( V«¤cqšWÔåÜ~=|°ßÃWŒƒp´oIŸæÕmqŠư˗6ä¾ wî¬ä~ž¨ewçÓZk
+Ÿ~ÉqY$˯ˆñ‡+ Úª‘µÃu$´z®nV?™¹z~¯îAl R=*¿áP 7W¼`Q6ék0xC•V _° Äÿ‘Ñж©svæ*Ãʼn­¿x&ä.'?eulãÙ–ãG8)80ǶWJÄ|Xä«ÛË÷×w|ø)uÄ6Ö}”„Ë‘¢°ÉË¿°–8
+4\  *î«p
+RvQÆŒª0ñ¨’GU¤=ª€HGØqUðZ» Aç>´B’Óv´PbIä=hY¹›¹ÿ¿¡¥ ^›Ðêp–çê@ j^Lù÷n?C,mÃãâ®ùý\¢
+dÎ}þC«nÂñ¥…Tz˜¨—ûÎ ª êã³ehùdÝ4!ˆ~>ŽÌû]Dù¡//€Ú®(0î;:„bNÆú[ì<J˜
+²,e¿MÊ#Cı8ñùD—ë0ð®àMféìqŠ EÇÕh¸ôèM96ˆ#ÙW„à'!AœÿËÄ ­E>u‘Fl¸ZØÃìoHçOjæÐ† ·üØéÐæ(üvg­U"i­‘î×Úï+ŒÜà
+ýcTŸ.ìè@ ¯5¯Ö–nMµñߘî"|%Aô’#w>Ô‰lxÂï¢ ÑÍÖ·¿‡ðväTð¢ºû‰9ËÏYÝ pJ­OÙk_ñæK->ZRQ`ñƒ¹f]ÙGn‰ü'r–?‘£RŽ)/ͧcˬÈ6àþƒ®éôîæ§5 ›˜6Ñ­=]´tN4µw{åþÁp“nr¨%ß ºíÂ7 ÛXô1ŽÕ¨pE-º&uGî
+à‚.ÎZ†—bí–ûɺРëBƒ¬
endobj
1717 0 obj <<
/Type /Page
/Contents 1718 0 R
/Resources 1716 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1690 0 R
+/Parent 1691 0 R
>> endobj
1719 0 obj <<
/D [1717 0 R /XYZ 85.0394 794.5015 null]
>> endobj
1716 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1722 0 obj <<
-/Length 3725
+/Length 3680
/Filter /FlateDecode
>>
stream
-xÚ¥]sã6î=¿Âoç̬Y‰_’¦Oén¶—öºÝ˦sÓkû Xr¢‰,¹–œlî×@€´$+Ionv6¦A
-›Él‘dZ˜(6‹õö,ZÜÁÜ÷g1ã¬<ÒjˆõÝÍÙ7U²ÈDf¥]Ül´R¥i¼¸)~[Z!Å9Pˆ–ïþôñêû_®/ν¼¹úùÓùJšhùñê—4úþúâ§Ÿ.®ÏWqjâåû¿_|¾¹¼¦)Ë4¾»úô }¼@ôúòãåõå§÷—çÜüpvyö2Üo)ÜÈŸg¿ý-
-Øög‘PYjOð%q–ÉÅöL%ŒVÊCê³/gÿ ³néœþ´I…‘Ú.VJ‹øÏk9IRb2a•TAË2žÓ²ÇB-Mוë|<”Ï«‡î¡mêçéÞc«E¤2»28#`ÍÈ!rÄ6H6’ã_÷e' ì²¿¯:™e»ë«–¡yS T“-e‰0‰öHâ°+ò¾\­ïËõî„ñ‡¬S%bib^ïÏãtYƒÛ¶¿'¶]Ù³$-‘ÐC–V‰T¦ “x.»6q"2%SÆy‡Ô²¥S¬c€šîª»¦jîp1n&Ò4‹ÌéVª!1Ëß#õ÷9
-¦ZuH/O•Fý}Iƒ¿üHè·UOØŠýŠºæy^pèÊ‚i´¼
-»ÈE“îÀaÀ ðKF¼yÿ™˜÷pî—
-jŸª¡ñii'Eš@Yûª(kF–qi—ˆÔ$v,ÌE]·O3WÜIèž›|ëÂ(ÀØ`ä ¦û}Þ@P¥ p2¡vK³n#ܨ‡UðÉ[ô3€‰Þ_‰Rà¹CûŽ+¥/ñ« ò¥™$’CC˜Ô=ª4YÞºÂ/ã¨KªœšcK‰—`šl
-,A 4KÉ'´½R…ûºûÉÉ
-GËÃo~w“âøØ]çÜÕ=•u}¼åtÈW®œ·¼SðZí.\:‚¡Ø
-÷§B‚ºk üì?¯»– M¹.».ß?3m“¢Fü Ñþ|žÉåÅõÅO4éO†ƒýžH9sçó-š‚os•õjÅÑ:‡MÑ\ÃTœ3’søÌêvÏ)c×6y›¥ÃTCC—‚šÛyûUO$‹†VgW‚o­]k‚
-Yž•ÌF·|Üe ÷=˜.¸¹ÏécsèC8: u™w¥ðõ÷Ô@>µ½«—4²ä\uÆ‘7¸> AÔ‡!h¦I†ùšd %ºÑ™šm’£c“<Û#CQE>P ˆŒ¯¢ír·¯s¿êU|¼PóI
-p4)®ò5Ztu[ãzQ!íïÏ@­8 &5xÈòš=g´Š5#¶Q>K„àæ·XÛS3Ž /ðHïr'€¹¦üÚ3h«fô;ñÈye1×@A‘ê“Û¨>ß÷\NNèB‰&TAåKS(ÄÂûH ÎWp8FOù¾à†~Â$“FHkÍñâgã9·"ǃÃÛäk*¡Æ:gK»å%têξe:>}Kvk–5¾c(œX¹zª
-6‘u¾öB´ÍÈÞ7xãáV@{Wʎ%7 j±lØ `=çÚ×±XÔîZ󡣡“Ze* }l\T(ž˜+>%ÙÒ€’`@aG·¼
-µD¸QÉâe€Ñéd[æøª³9Ô4ãòYæ[A
-¯N‡É
-º+×ê‰:ƒð>÷âøõFx
- æóQ|ºöÑRèDËqœÏ˾®`qjâ7|}€õН{¬¯£iL;ùÈ
-¡¿¿Æ;`Í0w“1̢ǹ Zvo±ÞœÀá®> /
-.Þ»€Ó
-=¼Æáá5f›ÉâIÙ6¢4¿&fƒ{RÉÑ`Ä™¢ƒQÌÀö óÝPŸ°ò·yèÞjlïætAÍ ²ÈNÞ8§I ¢'8àžLî(çêq„¶Ÿ>v%IX´®0&yG/ûŠ‹‡À´&½§Áà®noó:ÌžÈGá¹ãUíì[µ Ê•Hûª(œƒC,sâ`wF9¤a§n˜s/áØðåÏXa!ü+v–íà¤@¤ö ;(i«õÞ³á;m¸#,ŠŠîažg+WÎmH;Ô‡Y=qAs-=rY=SqGÁIþ„äÌmH"pŸ&8¹Ò .o|4žyV–Qÿþ~[‚0X)A3ÂoÁ¾p Æ`/\_øJ¥®ßù‚æäÒ
-AgàœqéØóÖë‘Ç_ ̼ÐuNEex·Æ&òÏT ,:‚X9¤úŠæ±Þã„Z¸D6B
-‚4ÄRå;!=ì„wBy½‚vjý@{øÂµö›mÑp¡»@Ä…˜Ñ:ú~/„_¸‚r$ïè„k蚀uîêå_‘»vßÓ 5"fùÔî†ôÛ=–@Oí²)‚ 3Þ2×–*ßYCšßúv ˆï…»«:hÅy3ÚÛa·s2Jí²êï}Ý{õùQí Ö{Ȥ`†žimA¶ªy¹>N°,ûFÊ ½òƒ6Fr¥Y8ÃUw<÷QâT™ˆ•z•¿Ç9å?¾#Õ"†?#F9SiÃÁÆËwO
+xÚ¥]sÛ6òÝ¿Âo•g"”ø ^ŸÜÔɹ¹¦9Ç›~=ÐesB‘ªHÅQýíbIQrnn:)¡Åb±Xì7,/#øO^ƉH2•]¦™q$ãËÅú"º|„¹·’qæiÞÇúþþâÛ7:½ÌD–¨äò~Õ£eEd­¼¼_þ>K„W@!š½þùý›Û·¿Ü]_¥fvûóû«¹Š£Ù›ÛÝÐèíÝõO?]ß]Í¥åìõ?¯?ÜßÜÑTÂ4¾¿}ÿA2úœ zwóææîæý뛫?X¹géŸWFò×ÅïF—K8ö‘Й/ŸáG$d–©Ëõ…‰µˆÖR]|¼øw Ø›uK'å'#¡t¢&¨TO€VŠ8ËâË4ÎD¢•vÌ[8’Ngå
+¿É¬{*öy.¶WÒÎ
+‚ÿöñcæõ’@ùa>íÚbI£®¡é¶|¬òÄDŠº+û‹þnêD¯£xvÿTzNZ¿~]V°Ç€(’™ÃÉdïdÚh¡¬L@x¦eݶÅbŽ àDaþ7/ì‹dVÎ¥Y+G`Ѭ×tL¸ìªt$`Ôlº²©ÒæèX›¹ÿy*à°:ŽC<€Ž £”`ñ¬-:š„9vLÿRE"NbŽ}ÑNð,S‘i•2Î+ g%ÊÅ ©¯wmG>ôÍyߪÈýT÷ÜðÜ¢+?óÊOÅžY]5[Ÿ‹ížfóê±Ù–ÝÓšfhËÍÜId.µ&³z(KÂiáêQA´5³²¦¯S üðþã»›_i|w"ú˜cj‰g{à†î:qðîã;¸{Lýæ§6Å–q<Û l©T³ÛUà H k=É}¸cwò5½Ã£68ùààù©\<Ñ.GD÷¯ëûÎO¡n°.ºWãÕ^uù²ªhôÀzzÝÙ刕î)gª½#}”©OR)¬Öö„O!¤y‹\ŠœðÉ«g~ðešj?5uµs!#"½ÀFÀšàc`I&"àlÀÙ$y r*ñA°è¿@sŽ}I–Š8Ul]»Í2ïŠùâ©X|“L˜£ÕBªXò‚¼ï3šî‰¶ufï8™2ûD «lúVoV¯t6s‚u ¤Ñß•õ#£6™°vhŠdÛ*gDqĺ’¢Þ#=ð"„çÒ±žÆì¼aà,ÑÊŽ p* $ý
+§¦8Ï 8$ †PHHͪ·};Û§ù¼íÎŽFù¦ø"¦ìó7@ B˜«LûóÀ|ø…§kvý -`@„‡ºEî€8Ï ø€H£átÀ>U¶ÿ¼¬—èŽÔ¬F8x¸WÃ#Ñ=캑· 50‚Ã|‡TF>ö<Í!âúæ@çXù¨Y”iy2ÂÊù—)+
+©ìYVÖ/Ãt.6N“!3×UÕ<£GÌ\B§ &Ø×ùÚ¹Q€±"ÀÈ)LwÛ¼§JNà¤BÍšfÝA|³Ç¯‚/ÑÏ
+÷Î}L—**ŸÖ_Î3ˆ•ñ(ìj¤ŠQÛtöà’= ÊQ”-!4Ç2.<À4÷ÁÒ^,e+XPf¿Ä *ÅAÀ‘D}»àߓ*§#)¬µ_Q"éC‰„ÛP,ån%²ØLi48Ö$´J¾F£_a÷nÜRÓ¿Á´4h‚îI–‚O(u•=ºâ`€
+kŽ:P]¾í8ÑÇVè,‚ÌE0‹mxA•ð¿«9\N„‰Ñs¾]r?Ú8ƒD9K¤=4ëðzVn‘3+2<¸¼U¾ Êa,rÖ´^B½Sw÷ £Ð¥ðí'¤·ñ¬" …+æÏå’Ud‘/<M=Ð÷v9Ü
+(ïŠ-WÙ!åfFLVDXL¹+ðë˜,×ÊüÔÒÐq­3pP>ÖÎ+ïŠF¼+>,§ÙÌ9€’LÄnG¼
+zô@¢M=剻§¦e×dvú½®ðÛ­»åÉ:0ò'|LËé™Ô|w{Ùctn¦õÉCbúÈûþmÇ ŸLö¥µàçMv>ÙïcNöʉŒö¨»”gUq|~_4±ï °·BE‰îKr‰ÐQÉä,Àèv².r|ÉYí*šqñ,ó¥
+dü¢VïGxcY ÚÖuñ‡R)Hu*–‰HÎH¨Ìõ7Çcíï{·xi“¯U„eã×ÖøüÇÆ>)…ùœ%£´ña­Û<!ÃÁJŠj…=0iÂÓ¾YÅ"UAôþ±y|?‰HM2ˆ–Èè¦X”('ª ›ÜÉ3ð‹+Œð€Íý}jû%LjÔP2Ãë9mëJ
+™¾Ôëéc±uÕ³uTq%%"ŽÐÞÏí°&6V“’´øþÝû«W'0¸ÛÈ—KNÞÛ€Ó
+=¶ÊðØ*Yg29J;PG´áĬ×'Uì ;“7p0ò8ÂZ æ}WT'Ì}7Í{ô§-½Í©AÍ ²(½kŽƒxOJpÀ5™Š¹¢œÊÇÚx|úlèWæËÆ%ÆD oé5_sòv#©)oi0x¬š‡¼
+³Gü‘{nyU3ù>íÜ‚v)Ò¶\.'ô'>Ïéó9‡0ìÄ sîõ ¾|é&¿beÙìNbD*/²”¶\ìè ~Ó[Â"¯èãy¶téÜŠÿ´ÇÕa‰™ ó¹ =l%f"?â?ùá Dr¢’ŠLć ®ôj Nã[ï'ž’•€BÔ¿¹?À fJPŒðû¯O\B†Ñ; çá¯~ªW>¡9jÚA"(dÆ™ÄBï/<yìù}âÕhDÓ™;¤“á•Ë ˆ<cV²L˜¼äöñ«™Ç9ÏÀˆÒtã”}¢Žþ-åÄnQxyÿ¿ÿdóð÷¬ ÚÚMO•Zp•@„™rµXrøo;Yÿ/_nêendstream
endobj
1721 0 obj <<
/Type /Page
/Contents 1722 0 R
/Resources 1720 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1729 0 R
+/Parent 1728 0 R
/Annots [ 1724 0 R 1725 0 R 1727 0 R ]
>> endobj
1724 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [226.1733 647.7874 304.5885 659.8471]
+/Rect [226.1733 556.3193 304.5885 568.379]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-keygen) >>
>> endobj
1725 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [325.208 647.7874 403.623 659.8471]
+/Rect [325.208 556.3193 403.623 568.379]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-settime) >>
>> endobj
1727 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [339.2005 174.8193 400.4005 186.7195]
+/Rect [339.2005 61.6747 400.4005 73.5749]
/Subtype /Link
/A << /S /GoTo /D (zone_statement_grammar) >>
>> endobj
@@ -7537,104 +7525,108 @@ endobj
/D [1721 0 R /XYZ 56.6929 794.5015 null]
>> endobj
478 0 obj <<
-/D [1721 0 R /XYZ 56.6929 407.676 null]
+/D [1721 0 R /XYZ 56.6929 304.566 null]
>> endobj
1726 0 obj <<
-/D [1721 0 R /XYZ 56.6929 379.9387 null]
->> endobj
-482 0 obj <<
-/D [1721 0 R /XYZ 56.6929 160.1112 null]
->> endobj
-1728 0 obj <<
-/D [1721 0 R /XYZ 56.6929 137.3154 null]
+/D [1721 0 R /XYZ 56.6929 274.1334 null]
>> endobj
1720 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R >>
+/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1733 0 obj <<
-/Length 2834
+1732 0 obj <<
+/Length 2780
/Filter /FlateDecode
>>
stream
-xÚÕZßsÛ6~÷_¡·“gB¿NŸÜÄɹÓ:=Ç÷Ôö–(‹‰tD:®ï¯¿],@‘¥¸M3s7™‰@X,»ß~ šÏüã3§S&35³™J5ãz¶Øž±Ù=¼{wÆÃ˜$Jú£~¸=ûî­´³,ÍŒ0³ÛUO–K™s|v»üuþúŸ¿Ü^Þœ'B³¹IÏmØü‡«ë7Ô“ÑÏë÷×o¯ÞýûæâܪùíÕûkê¾¹|{ysyýúò<áNs˜/‚„#Þ^ýtI­w7?ÿ|qsþûíg—·Ý^úûåLâF>ýú;›-aÛ?ž±TfNÏžà¥<ËÄl{¦´Lµ’2ölÎ>œý«Ø{ë§NÙOK—j'ì„…è3h+3³:KÒ°ÝåUóPïZØ—ó2ü®óL¡˜_­¨§]ÔØæ‹uY…‡²¡ßåc¾Á–œ7m¾øX,_ÁSÆpVµŸÖxO'°ešI'`'¨ ŠI¼„¤)vŸ‹]戡#Íe˜²Î?]ªš~‹Õ9wóU±{y¬6EãÍ)MÊ]¦g çi¦µð2òÅGø“mkúÍÃcÏ>ðv¡Æ]á7­eÙäw›bIOuè%sAcQo·yÞnÈpÐúiV¤÷é”Mœe6l°Ê·Qx¢&Ì¡xjäa4ÈåSB©M* ƒ0“*\k?]ž›TA0Ææ=C¼®«vWo&Vd3*!•—ÑMR‚¬§xØ>tÐ1R{‘Wôö.¼ÜáAM»+­ß#ôÝå 59ÙR‰½°«_èE¾\†©aÙz5ɃäO ¼¬îƒ*ÏM[lÁ­%¸õ‡¢¯r*U2“3ã
- W'ˆÍÀR°à¥Í¸£ÓÇÄ)- Ò®\¢Éñ±=çóI5­H­Éâöë<0ç †#scìXuÀ5cõü*èQauµy¦Ö¶È+ÀÂÕãŸ9ž_~¼#Qå­¨ Ô¡ís‹Ûˆ¡¿ôéÕ(.‹Uþ¸ ù³eÙ õ>ëtÎí-ôæä½•6¡E“¶ƒD:ÿ# %ÅX9
-CÚf6µ9 CýQÇa¨µw{È<» Ÿw\^¼5±ú…4$t
-aTÕ¡³ùHµº,«|÷L¯Þ\ W”_Áq'iL<ÍtÔnd—Ñf´NbD DDŠ:Hnã|èvžHÀ10;<ÔÁï4F8²TöˆP
-urŠ/Œ
-bÖ—|˜“⨠9 Y3f¨Á0'É}N‚æ¦^ø›iû…DH£$xh©=JHÐC DôTyf~KôY"ký…–AÎCÝ$”šailF”¦„ªþ²¸’Bî [-b¿§É*‹PˆÍ
-ñ+)ü…lü¾ØUù&Yå _’R?tBG÷ØR/ö2ÁÕ·CÅAšß
-q…›CŽ\uä_Èš%ã}$Ù*åN—OÔMÅ-4öÙ †xE|÷žÁÃC±Û–m¸…0ó»ç)F°É,×/c41JDU½?ºùIïæž
-±qT¾È•­ÑG¨[|;8‰oÎÜâÅOÇÙ#|Š»‰ ÁXù?ÊÝ„)`Ã/p7 õÀÍLö·r7!Mª˜È¾wë‹>ÁÝ`¬bVþÜíÓµþ‰ý_Ó5;R4æ8[‹ƒÆ°A†;–q©Îô~Ö$]‹ƒ°5`õw Á€¬IÙ]cb3\ `³Kžþ!&') d°ó¾hÃÛªyÂ/9þa_â]/BÃï?¾i‰0wˆÀÀæ Ÿš‰Ü›ÄkLlí¨Øíl8NbB¹ž[KM—\¾Ñ¡á¿_jc,~gÞtîŠÅã®)§Á^ÏdÙh9Š"l•«n]Ï,ÁB°òî©l&³
-ó“Kw_&^¡@;(„!¼O6Ç+´cɆCÝ Ya"Ùø/í§’W«û¤BɦBÓi%D—Ô)þÕÑD¤°®vúê?nÚÿå—²)˜ñÈ¥"R?'2•ò·bþµÄ¡êÿÓ¯y
-endstream
+xÚÕZÝsÛ¸÷_¡·Ê3ßçž|‰“úæÎI÷éî(‰²9¡HŸHÅuÿúîb
+¤(ÛÓ¤v2B‹Åb±Ø
+>e@%F
+é ˆkæ&‘`ÆØüÝ>¯m—¯¾Ð:?»¯Å®Åu‚4Ic3`H¬Ö©“”ÒÌ[xÎç0ÖýÎwçÜÎ ú±o‹5¶ô<o#vâÕófCÄ*o;¢Ðà¶ÙuÔÓ5Dlv_bù;^ÓïœÛ‘–U±õ³”5}I\¾ºÏ—eUvO$l½÷êu÷.—Èy’i-Ü«Þ*¨ ~ÛýÃƒÓ lš5ŠøöÕ§¯Ê9PŒ§ÔôÅé\ã¾i½¬-èVÖErä_,a\ßd<‘œóéxòL‹˜ë´;ô\¸Æu¿‹ö°õ±
+ܤ‰J3ý¼=ׄ±ñT$Ê0;ÔâóC±*gL¸qJ{ËHeæu¾ D´(~óõÚûGK]†<º¼ý€GØêÏW+à&ªó% -êÕ~ÓœhçNÐév }baD¢¹²C×èvyÝ¢+´@Lü¨@jç9~2§?jNIJ%*†Á›ó…âœ|
+9.4¼™=K_t%lɹó'·T‘9w¯ã)±Ä~ þŸdÒ
+Pë´GŽÜ|Yh.ýûü«×¥nè[lÐL›båײ¯+Ü·¡ñ ·èªdrÁà!.@úæþgdŒÚܳ-‹ÂGôºlq§Ö'â|Õl·Î³ðGE†ƒÖïL³"¹K¦lb!e§,õ Ä­õÃjŠ'©•Üsƒ\>%t!5$~öÁ+‚òá"2ÄÛ¦îvMõr5è)AÖSÞÅ‘\Û«¼¦Þ¥ïôþÜíÊUçÖ´eÞR““-•8»úDQ —£œ¾îAxYßyUžÚ®Ø‚[KpëÏE1NvʪDÉLÎ4TVi3‹YŒ:ww3jÜDi¯ç_ÄŽÓÞ±\—öÀ?˰BpÊ„õéK},þ@ð¼¡
+!"r³®×¥ó=J‰&ÑB¨QYÀŠcC‰ÄÖ€$æ©$`=K3Ÿ‰Æû12¢Ë¥öÌÛü‰¤çUë§^úùÚÞ®k"8`çu;ÖK‘0þM‚ÞdzCþRºg‚Š™¡¨;,Ð` 0ƒßAl® -y{A¾L3žKHéŠ7d"ؤ]¹v(~vPŠ'Õ(”š,,¿yÀýðc^0™“ŽUG,’œñz”^X
+Õ«MiQUÿ7b×iFMT¯ :
+Ϫ:xag°HÄJdI*_u‰‚®À¬µÓ—(
+±í¼Ž®5 ¡tG$üQ¿¨‰ëpˆÈGS¬Ì+h‚¬#ßRYš KŠ·ïÛ<BZ™1Àü‡;ºoóW8&'Ø ç
+\
+ J‚:vh0,IòP’ Y5+wq ÓñÍöÒQ’<tÔÕ# P=Q=‚Cž™ßz–Z¿¡¥—óд Ê“šáÉØŒM ‡ú7~”‡J
+¡'äØzèt›”…LˆÍ>â<Há×ÝÈ
+ƨY”rŒéɧ­cÕÿ‹ï|endstream
endobj
-1732 0 obj <<
+1731 0 obj <<
/Type /Page
-/Contents 1733 0 R
-/Resources 1731 0 R
+/Contents 1732 0 R
+/Resources 1730 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1729 0 R
+/Parent 1728 0 R
/Annots [ 1736 0 R ]
>> endobj
1736 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [483.4431 684.2326 539.579 696.2922]
+/Rect [483.4431 590.5841 539.579 602.6437]
/Subtype /Link
/A << /S /GoTo /D (address_match_lists) >>
>> endobj
+1733 0 obj <<
+/D [1731 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+482 0 obj <<
+/D [1731 0 R /XYZ 85.0394 769.5949 null]
+>> endobj
1734 0 obj <<
-/D [1732 0 R /XYZ 85.0394 794.5015 null]
+/D [1731 0 R /XYZ 85.0394 752.1525 null]
>> endobj
486 0 obj <<
-/D [1732 0 R /XYZ 85.0394 728.913 null]
+/D [1731 0 R /XYZ 85.0394 635.9912 null]
>> endobj
1735 0 obj <<
-/D [1732 0 R /XYZ 85.0394 706.1198 null]
+/D [1731 0 R /XYZ 85.0394 612.7657 null]
>> endobj
-1731 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F63 1372 0 R /F62 1369 0 R >>
+1730 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F63 1372 0 R /F62 1369 0 R >>
/XObject << /Im2 1358 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1739 0 obj <<
-/Length 3193
+/Length 3311
/Filter /FlateDecode
>>
stream
-xÚ­ZKsã6¾ûWhO+W¼AVN“Ä“8•™$oí!É’¨+鈔íÖþ÷m ¤(yR»3Í&Ðh|ý„ÙŒÂ6Sšèœç3“K¢(S³Õþ†Î>Á»oo˜çY¦EÊõÕãÍï„™å$×\Ï7É\¡YÆfë_æšpr 3Ðù×?~xwÿí?ÞÞ9¼ÿñÃí‚+:wÿÃ޾}xûþýÛ‡ÛË›ýÝÛŸïð•ös|uÿá¤äøsaÒ‡»www¾¾»ýíñû›»Ç¸—t¿Œ
-»‘?n~ùÎÖ°íïo(y¦f/ð@ Ës>ÛßH%ˆ’BÊîæãÍÏqÂä­ûtJReDq©A“œä<ãÓZfÄ0LF2¢ŒQËœMi9pY-»]ó²8”«ã¡­šzÑÔã3)e™œ¥³ŸÉ¹&„à‰L’ç¹Jññ©\U¿RÊËöv!¸™¿l«ÕÖõ|׬ŠR‹õúp˲yٶȨ竢öïV«ò©C"2¹-=—øúcy¨ÊÖ¢AÒùýë¦Ã×m`ý(RÏ»mi51[hM$¥v‹ŒäJq'ðºÜÇ]‡˜©Züíüu:ÅáHKò’à¨;|âéÉýIë<'šŠü:R®Ëpˆ\=ŽOë¢+Ï€À ¡TËë«G®‰å@à Î̘áú pš pjæÛ¦í<µ@ù+s¹F&w@lË}Õáø›S]ì«2|óá#Rq“-R7Í©û¢íJ?þWS;Äð\Ï$˜k†x:G8x^—õ )ý’@Þ¸=4{|…
-šýòUÕÚü
-ŠaTûO*¿…c{}žðaÕk@ó†£õqåÁ!hFØÜ3UjyŒÍ(YU¯ìÙæÁ2
-ñ¸Å,YÍ›'B0~)Q<»èŽøà%êhò0h÷Mãü€% Va*=È®Õü-üó|§hü-êõè,úá™”Ckú•sYWKŒnðÉ®X–»ÖRñç6óeU‡SÊcÃd–Ï¿ƒ§wL<ë}(p.ý^´—MÙ¦&ÄñKe\ÅZ#ÿº|ò…'8$(h'<^· }<
-£mú–]‡jÊuª‘Ëå
-¡Äu"ׄ cÈ
-¦õPˆaKÆþ d]"°¹x’ÁèÑ1N¸;ÍHÆc€8Ûð¢©ÏrâhŒ‚£‘yRŸ: žžvجÿ‹x`4'
-2 ¨êÓÄšÍç"Vç—á
-Ös½óÐ’3t؛ǔûª®öGß|XbƒFu‰€F§ $‰±i'ïÂÚûâO¿
-Þ œ¯’ƒoRyðMbr¿ýØ¡:ƒÊ¶ëâ-@åïº[6o&Q91F«˜Z#Å6‘;P¼ì€µµ ÙTW¡íM±¾–Z,˘ëC`ZOå—6åT[s²w¢TÆ `¦‰ºÏG!·±]ªM±*Û ù¡º ›qïìððs›ÑÅ\—^<5×…†¡ï˜æ<4“XŒÇv죘û¸} Ôþ’ è:Q'$/}kj˜É‹c‹*q‹O¥’AZh³A<ë£Ëp7;Úù"òÎ3ÎÉdÞ@f*ÕgL-É àxήøÝ¥Ò¦ø‹‹¸ÛY©œJÃûud<G# ˜m6ÜØ®Ò¸KnZdJÎ8øZEóüsnÜ9ɳ,›¾o_Äé”ÎOäPÓ #y¿2V*†¾
-Ê?ÿ?!ÃŒ¯ ©àpdf†Bº`þz´P¹wöúf£¾F Î5žpü‚àŒ€½Ž070¶PD„ôny9‰³F#j8&%£’Ƨ+²aïáb­Ó3+1NIC&}Ò¨ñûXõ´›´NJ`”Žq’™XìÆj-è'ízeù]¿ MÃòÏbR¼™°£EÎ’ªl v/»ð—P¾C²Á=ȸW<úugGPYËÁlcà™‘~:xú‚ékw,°’ öÖ‹õñ–ìïŠLèä±.öžÝ0P±±'™Å© w @ˆ3¸^6¼BÌ~‚z°ð0!˜œ÷li.+JQ_˜?–çW ÜûÕ¶ªËa¤¬KKÐ]0‹â®½¶§@Ú×û0…üÅö ÿ*JÃúWZñ\<FzÏpngñrÿÓ³ Ú þƒÄ.¬±íé–§û-9ø#y¶Ùųžºƒ<˜ 9èÍøoÑñÊCúÊ't£6'O܆žPêñD@Tä
+xÚ­ZKsã6¾ûWxO+Wâ Ôœ&‰'™Ôf’x¼§L”D[¬H¤"Rv¼[ûß·À§äIíÚ‚@h4¾~Bô:ƒz-Q–Ùkm‘•×ëýUvýcß]Ñ@³ŒDË>Õ×÷W_½çúÚ«˜º¾èÍeHf ½¾ßüºP„‘˜![|óÓÇ÷¾ûçÝ»-÷~úx³d2[¼ÿð[l}w÷îÇßÝÝ,©‘tñÍ÷ï~¾¿½Ã!æøúÃÇo±Çâã̤w·ïoïn?~s{óÛýW·÷i/ýýÒŒ»üqõëoÙõ¶ýÃUF¸5òú^2B­e×û+!9‘‚󨳻útõKš°7ê?“Ÿ†H&H’+›—2%šR Ò"ƒ)%ORftNÊ‘ÊI9ßíêçå§âø²\çëm±¬«ñÖ©”°f®ûóO¸HT3l°T8´ C>>Šuù9ËXÑÀAdzñ¼-×[×T‹]½ÎwØ›o6ÇjEÓ ¡Z¬ó
+Ç˧»òªy.Ža¢ÿA½Ç¡v[`·ß,€ƒYµøð€ƒUÝâ`“¸Ù¼qÒ€=ÁAhw”ÂAHæ™ÆÉ
+¤ÕKhtûô ŒŽ’qJ¨È HÞñáTmHûâŒml Ì«ÍÌtÔ.5ï϶­›vn¶ŒX¡h $% HTVÃÑšËhík$ê°z,Ö§cSÎÀ”õÐB^\=M—€”s’I9\€Q®LĨk:y…ÞO.¼8ž‹ ¾8D¸ç>ÿ= #©ßÐSèJÀð_l½§Çmì(ÃPSŸŠ£³^€b¥¤Cñôh¸…T<—ž“äH
+M¬µzÈÅPeYr+œ%·âzGnÅz·âÇÖëâÐbçX]a8¨« 3Dæ=‰#ôŠâ†ždÉz '¥ˆ˜ÀéK=Ɉ“óe·›xÇí8HkAx†_†CŸê<U‡Óa“·ÅT“,Sâòê‰jfùˆÓh=\_˜.¾ÐÑv»Þd»ýK´ÝŽÈŸt6§Õ¾l±ýíK•ïË5|ûñöâ&côQ±wŸ7mÚÿª+{ÜG8€k Ɔºƒƒ²Á48Àû¦ðáôtKBw/àÑ
+ ‚e$“ÊyHÁ¾îËûµ0A0ŽU¾R–éSUgIŸÔ²y©
+“Ý‹Cœ{†*|yÁu¸
+”a”ÐêÄN»x+–¸½scÜFÀAËǘðìc°£¬ðÙng«ˆŒ«ceÐ `º:Y
+¸ÖT”ó¢øl¦ÅxQ/¢>V´ÎW:/¯z
+•»PþT´mªÿ—áV ½¡‹zfi‰Ö<jÅÜ”ÊDþ@ñšÖV<Ewá ;U¬.…«"Åúérs|ï ŽÈfʇñŸ…ŠºûM‘»i½Ë—AlãªTùº˜ûáDæŒ"°ªljf]D—>òU"<"8ÔG_…¶4VL-‹Å$šü±k/æ?v¿TÁÞîþ^zNÑW¢^°{JSÃHÖºëj‰_|.|ÂB™®¹.â­ìhçËD;ðâqÎó"S!¿`jÁ]ª)Ûüwv—˜âñ÷²Bz‘ÆñM"œ¢‘Ž*j ¸WUW‰ÀLs#…¯¦rõe?âbÄ@ÏìO¸–iÆeJo'üqÈ鸬[3•]߀I 韴öÿÈdœñ5&]‰I=dÒ;ó× ¥´Á@ºCêŠ*Úrh!0Â9WxÂy´ œQú:ÂÜ@ÙbûÕËÈHL
+(ᔌRš® Ȇµ‡³¹NG,ù8$‘h²I©ðlÈ`ÁÊÃnV=3-û%*4øAWJ×¢€úÁ ­°í÷±jXü™ï‹73Š´4œÈLšAÁºãÆ_
+„[È߉&fp2¾ì}‰Âs-H­Å`¶¿Q0Íœˆ0¼}EÕ`î¹crIÜ/(gB˜,ù¸ÿù‡šÝ¯X…Æ+úù+\ÈÏ·È”÷7f
+f„qÅfXÿ/#ÀÄendstream
endobj
1738 0 obj <<
/Type /Page
/Contents 1739 0 R
/Resources 1737 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1729 0 R
+/Parent 1728 0 R
/Annots [ 1741 0 R 1742 0 R ]
>> endobj
1741 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [184.7318 673.1632 233.4785 683.9475]
+/Rect [184.7318 573.1576 233.4785 583.942]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_security) >>
>> endobj
1742 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [369.8158 552.0837 418.5625 564.1433]
+/Rect [369.8158 450.0223 418.5625 462.0819]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update_security) >>
>> endobj
@@ -7642,140 +7634,140 @@ endobj
/D [1738 0 R /XYZ 56.6929 794.5015 null]
>> endobj
490 0 obj <<
-/D [1738 0 R /XYZ 56.6929 303.8415 null]
+/D [1738 0 R /XYZ 56.6929 194.2299 null]
>> endobj
1743 0 obj <<
-/D [1738 0 R /XYZ 56.6929 281.3448 null]
+/D [1738 0 R /XYZ 56.6929 170.2232 null]
>> endobj
1737 0 obj <<
/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F48 1243 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1747 0 obj <<
-/Length 3398
+/Length 2890
/Filter /FlateDecode
>>
stream
-xÚ­ËrãÆñ®¯PN¦RKóÂc÷$¯µŽ\±¼V䪤l QK4JVRù÷ôk@
-EÞÛ1ùÄF&Í_<$âIœOH‚›Ñ”1†ØO„4{û‰`‰ƒ„]ü%âä& äâg
-^æ“c–€$Ç-Ï@$ä”ÛfPfzl×Ëò®€ðÎ6
-þ÷×}ÙJ™bRGi-‚E¨Œ€Ìâ’†³ „JØéùhCR€ú82º7o¢4o›ýnQ<ïÑÇiS¯:x)‰TR&qccÄ40KÌÆíž=˜D†ªóíÄ¥œK ‚€»¬…TÃ☤Ά óÀ8•çÄ/>¤ƒÇ2<åP6a撚¤éØûE|ASµª{sÜS˜ÚRÙL œÐ1¥<J­s‚ñ×kQlç ƒhv¸«ÚOí `53ÊÓàK^.
-œÃú?Û¥è ιe4dÎ)9wý¾Tò\ý+Ô¢Ðlz©’XàâHk—Mbdz£9gU%›ywêËð)G*Jsó’š@8‹ó>…ë‰ÉSßJ!€²š4Ê݃FPYÇ“;0éfÃ[(C¹Œ…êýæ¶
-w¤MVJÂ7_45:ûý¡$ {_Ž÷ßVà-¶ß
-­Z
-fk™Ý¬„©Î›ø¢î†˜NÏ`ê i€ŒKED©=JÌ \d²Ä09°óýr;ÇCN!‹# %ÓÀ¢ïüuaíîyKI@,ÁÂ93Ü/™‹Øtey2¤/±r޵uSVŒV䆙£µ¯QLõàb½_R#
-'9fÀpËÀIR¢¸ Ø1:â™õ
-^<4Õòs‚̱{h½äÃÒ‰ÄIžŽÉöò«Êµ™4û^X™Òz\Ixî®z(×^y'Y7.KMÊu& ‡° 2¥N©×EýüJœ½( •GÆ¥6@ïÙHélj%pl)߆ºØB6‰vã*hÄ=Wï‡Pzª CsÜâNsð|§þº}ƒSçQ–¥y`v¦¡nÀ¹1W©‰Z ‚’8fÏšÈ&ZöqÏqç^âÎ=Ã;p7ÍãT®"MO(“:0yœÊÔïrL ¤ƒÐiÕ×(â|^O“û›8Ö£b2àä’¡S}¶T1P»õo F€übU.>á0á¦uæ|ÏÕšè0ß·}aŠ£Z#΄ yÇÔ9<TKòpÆQj|ó£¹ß› »Dã¨Öˆ*o¡Ê
-çs4±ÍǦß<Öc¿üö¥†Ž ›×°©# 51!Þò(qθ›¡Gæõh¾Ü>ºj:ð×7$Ò3ø ¶ï‹®8ó½ÐìÜñM`íþQ顨‚ZnýÄð5Ç‚{¡(mQÀ/û]ÕµÌÒ³¾Ö•-šÄÎwa¹úwéç¶e½”½¹ûšÍŠ]Õì¸-æ! ‚M– Õ¡­šÝîéÝ-Ÿ=Ê‹Ú}Yƒ7à.
-Cûu«fïwâ Âo¿ÝUàçHÇÀ£Òï)
+xÚ­ZKs#·¾ëW0'S©Ï°{’wµŽ\^y­(•JÙ>ŒÈ‘8%r†æ’·Rùïi yzlœÒ`£4>ô[d3
+lf¡ÂÊ™¶’(ÊÔl±9¡³;˜ûþ„ž,2eC®ï®O¾ý(ôÌ›ó|v};ØËj ›]/™¿ÿÛÙçëó«ÓŒ+:ÏÉi¦r:ÿîâòR,~¼ÿéòãÅ÷ÿ¸:;Õr~}ñÓ%’¯Î?ž__¾??͘Q Öó°Ã >^üxŽ£ï¯Î>}:»:ýíú‡“óëî.Ãû2*ÜE~?ùå7:[µ8¡DX£fð…f-ŸmN¤DI!"e}ò÷“Ÿ» ³~i
+?% Q†ë€œ§
+¨Êª@uªîÑ ÉZ›±ªUõ¢ÙTõ‚ùû¡ÜUe|˲Ïph;
+{a„@áf2lv\…íšm ‚¢ Â×ö ÀµÁñªû”us¸ r}¾œ‡­÷¥£Ã-\ÂÐù¯TÑÎÆàj¿ ‡—Ç}î‘oÑÔ°zÓ"ÕÃÔ«
+”.á9%xNðU¯öœšuÌè9ƒtþ9½\eŒñåÒÙƒò¡ÃñÂéþ›Dtͬ&B
+3ï#y||?øïRîèx!—a^=Øì/œRövycÞ¾ýVðwéŽs
+:Üp9('U]9!h(Ë Gêt¨^-†¢9ŠËOÅkž#€8¶sS[‚Içi«ý*0 ÑåXQ‘_ÃY¯çÎq:º÷¬Aª„] ŒÌª
+ÿª1û}Ê€½œÿ>i uS—_¡¿>ŒIöd §©z½È97Ge CG&j:ÉcõÁzaÜWˆ%:,»:†,e‡¥d“t ¦õ:äêÓ¼‘IbhL³Ô}8H«ä°.u‚â€Ï÷$… ÖŒÝÐcWÄŒÕÄ
+È£qOç–‰“…$\)=8CáCsï]«’½Ûñö¹$BÛg/‰xNídëQpÜgŒ)ñ¡ðÓL›W‰Ÿ®à á”øˆî
+V1÷y|z/—C€ßTû=zi„ËMŽs Çæ[ù´- wJÊýÑœ°Þ§^\ž}øpÔRVÔe˜žqcˆÌ!þÙ6E·c6ÜûÅCñãDAÀëOöUÏå¿R]
+ÑAêU‚àÊÕ¤9Ö·)ÇYrº©šzã\šèQc%>•ˆmÅsšÚ.‹O«Š°:vS¼R@eí•*Þ^)|e‡“;°êfƒ [¨D±’…/õasS†n½vD¶°2ä|Ù¢©ÿ¸;ôU0Á¾wåøüm9Þi‡mØ«„€0nB#‚‚†F†:«6öK¬Ž5З2¸X®TÂ7{QÖp-rùG°žN@ki Œ«EÇRG–2™("Lí„ÌdvXn3ìß?”¡¾¤õm|.W¾GÙ´(‘((BµÃóò,ÀÆ)16ëïs¢
endobj
1746 0 obj <<
/Type /Page
/Contents 1747 0 R
/Resources 1745 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1729 0 R
+/Parent 1728 0 R
>> endobj
1748 0 obj <<
/D [1746 0 R /XYZ 85.0394 794.5015 null]
>> endobj
494 0 obj <<
-/D [1746 0 R /XYZ 85.0394 473.991 null]
+/D [1746 0 R /XYZ 85.0394 356.0631 null]
>> endobj
1749 0 obj <<
-/D [1746 0 R /XYZ 85.0394 446.3538 null]
+/D [1746 0 R /XYZ 85.0394 328.0517 null]
>> endobj
1745 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F41 1223 0 R /F21 942 0 R >>
+/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1752 0 obj <<
-/Length 2411
+/Length 2554
/Filter /FlateDecode
>>
stream
-xÚµ]sã¶ñÝ¿Bo¥f"ß$›'çξ:ÓØWŸòЦy )ÈæEêDÊ®¯ÓÿÞ],H‘6åKjw<c®€Åb±Øoˆ‡?13–ÙT¦³8ÕÌpafùæ„ÏnaîÉ8‹i1Äúqyòý¹Šg)K­´³åz@+a<IÄl¹ú5²L²9PàÑ»«Ëó‹¿\ŸÎc-/®.ç ixt~ñ×3‚>\Ÿþüóéõ|!#¢w9ý¸<»¦)hüxqùžFRú!z}v~v}vùîlþÛò§“³e–áyWx/'¿þÆg+8öO'œ©41³øÁ™HS9Ûœh£˜ÑJu#åɧ“¿õ³~é¤ügRY9!@)§hRf•T^€EYΊÇÑ:+Êï
-¡Ö˜ P–Å—½Û="GÀV]N0“rp]q:[Ø£&Všý Ð`Fcž˜ðÊßfŸßÑÜn´ÞШ—Åw'Ñ;õ²[H¥˜4J?µ
-k;µÚMÐ[h !É&v¬CÂ`R´cÈŽ ý‡àƒo]yÑv~$”Ý”®yâ3Iu.Žt·øÚ¹Ñ €ªýæÆíö,¾
- ag`îLH‰‡„´bQ8á°Ç:nÅCÈÖ‰—yè±&˜#'±8VfÌÅ’¬ÓG–`(æn,åQé›2 îéeé ±ŽK§Çêµ¥—Ì!6Œäc$Óz¸rR>Ö#ù˜˜i0Ó1¯•J˜âêÚ3ÄzA>Ö„|öÛUÖ:ˆ(nwŸ=W¤Ô2a’äevz¬ ~†‚’\0¡¹3ô¿
-ª;7,MÁgüž<VHÀ5z:Ç ¡ßj•§Eë8Ð
-`·bLêP/h)!oÑñP"½s¯³1ܤN%‹mBªs9pqÆBv‚JÆ™Q²K® ›ÑþËèY‚4y,ã™Ö äР—°õìËL0®ÓTÒ
-<ˆ}q TâE‡¹„\¹[6
-=1ÔÚ<ÉhüvÊ¢qd=WÜ—øã¦nïúåýG É)ä, Ì‰ÑOr–å;À“‰îxƒ|b |0’'5 “{Œ I—g
-µö-hÅ`ý±´à¤ÝŠcnDQ-’~Ã`F{È·t#
-œµÄåoîF†”»e8“Œ9þTû4UP *0A Ú¦\À+ÚÑȪvß'ðPÓÙqmh&Äi(Ùq”2ZÚ¡s^ø£wøn¢lê-þ3þsm°Òc2¼ä×éÍÿÑBÞ&ÐÆP X¡ÿÈIÊc"%¨¶Mô7,œp–ê·´.,±F¿½… )·¨ÐX°ùOΑCÎʦžˆ €i”ŠÃéZ¨nš5zxç£çËaª,¥û
-®ïÒŒ#tÊTÒ‘SƒZó±…«.6·áõ¾NcÞÞ6ÆJ(lš¾œ ðÒÚð¤ï ËbLd8þQW¡]úž¤¿!(3§»F`’Z+êQ«HYÝe —ßeUÑlÂoß …ï¶Ì¼Gз--öGób.Àc¶Yëhè«gÅ#õ\øŸäg n&
-µÕ­ðá!I‚ù\ ï –;P9œ~ ÜÜŠ0ºõ£ýþvºü4e ÄzNÏ+ÐKˆ&ÎʘèΕÛ
+xÚµY_sÛ6÷§ÐÛQ3'ÿ’Í“›89wZ'u”™Î´} DÈæT"‘´ë»¹ï~»X@"-ÊÉÕÎxÆ‹Åb±ûÛ]JL8ü‰Il˜Éd6I2Íb.âÉrsÆ'70÷îLxžY`šõ¹~˜Ÿ}÷V%“ŒeFšÉ|Õ“•2ž¦b2/~‹ “l
+xôúýÕÛËwŸ®Ï§‰Žæ—ﯦ3óèíåO4zw}þóÏç×Ó™Hc½þ×ù‡ùÅ5M/ã‡Ë«7DÉèqBèõÅÛ‹ë‹«×Ó?æ?ž]Ì÷géŸWp…ù|öÛ|RÀ±<ãLei<¹‡ÎD–ÉÉæLÇŠÅZ©@YŸ}<ûe/°7ë–ŽÚOp&•‘#”rÌ€qÆŒ’Êðªní÷Ó™–&ÚäÚéLñ$jºÝT¤‘{K£öÖvyuc/<­éVÈú;çrYÚª]?};7^âªÞy~»ìveû0BD`vê蜦
+Û”S»,ÖAxùoæ¶¶*üÞuEÏ»|WÖ'nóÞ˜d&ËâXºóíòmí®ù'ܜѢka ²èÞâ¬ì._£ÚH¦s/ëͶ#ŽÒ¯XÖU›—½ä-M®mÞøyaTªi¸­wmC ¿s¸O^”DÍ¢zE³`0·c½}
+k:³8ŸW`¸¶ÓW4\j—BDt¹ògî–·daS
+•ö‰Ÿ˜f}.êðÅH‡¿ç:Å} ¸Áuâiö\#JȈdÌ$*j1§èt™ÅG'š9Ð|Pž¶„¼ÆHÚ:=®'¬¸öÞ²·Ì!7 ì²ëþÊQû®5ö‰¦!L‡z<Ó>*ËIü´}ú\§í³ç±O·-òÖBF±»»üØ‘2hâ4}Z=׈>rÐ$
+¨»¹*ôw g Å¥
+xPâÎQlë?&$þ–£REK;ð—=Tà ÝH5õ#þOüg[¥§"¤ÉÏó›o!éËDtF¨ÿç¤n…>! g 磻ñ
endobj
1751 0 obj <<
/Type /Page
/Contents 1752 0 R
/Resources 1750 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1729 0 R
+/Parent 1728 0 R
>> endobj
1753 0 obj <<
/D [1751 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-498 0 obj <<
-/D [1751 0 R /XYZ 56.6929 197.6053 null]
->> endobj
-1379 0 obj <<
-/D [1751 0 R /XYZ 56.6929 174.7834 null]
->> endobj
1750 0 obj <<
/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R /F62 1369 0 R /F63 1372 0 R >>
/XObject << /Im2 1358 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1756 0 obj <<
-/Length 3504
+/Length 3570
/Filter /FlateDecode
>>
stream
-xÚÝË’ã¶ñ>_¡[4U‚_¨œÖö¬3®x×Ù”+~(‰3b™"Ç¢´ãÉ×§Ý€@ŠÒÌÆ‡T¹t4€F¿»5“ðS³"ÒØd–ÛD¤R¥³ÕöJÎ`ì›+Å0 ´ˆ¡¾¼»úë[“Ϭ°™Îfw÷ÑZ…E¡fwëŸæ_ýýÍ÷w7®:•óL\/ÒLο¼}÷5õXúûêý»··ßüëÛë<™ßݾGÝnÞÞ|¸y÷ÕÍõB©‚ùšW83áíí?n¨õ͇7ß}÷æÃõ/wß^ÝÜ…³ÄçUÒàA~»úé9[ñ¿½’ÂØ"=Á‡ÊZ=Û^%©ibŒïi®>^ý3,º©SôKM!ÒBçÔ:" ’ÐN²YžZ‘mW塯àL:Ÿï7Üh»}}ÿLímÕ÷åCÕ3HGÿK†ì뇶Zÿ >Lók[•íö¸?4Ô~ÚT<ÚWíºnŽ›þ,¥oµ=4ûú±á…>ÕÕS/ìpö…R¦©v¹m‰3M¹ª¨ÙÝÓõûcS¯ê=}•ëõîZs8XÕÁ­Ÿ²£ÿmG0ôÕ–Ûj›EUDQ­¬(2äŽCa[öûj×3`Lz“ “،ᚺß÷´2Q
-KÞ
-(µ¦óÁg.´ÒÎi…”)Ï$ÍæMáƒì×¼MÙôÝ‚yyŠRª„Î ¡D ;ÂÿCýÉñ »ø¿œØ2+Dˆò2ÿABžî¥È”ödê÷å¾ÚV퉯ôÜ1F&󧺹Vó†>ºOÕnW¯+ÚEótoe¤Ðºðëvûºkýˇ/rD(#Ä„7…2…uöÉ­¦pX¥ILzžü)ˆ,c@³࿯¸”átËB#é=ÛnbÀZž@@o#ÖsXõö{>O¬Œ;jûÐt˲™d‚*ÉÒ× *OÓ¡ÐÁêÀú&Œ™ƒ™7Æz&½÷jÒ­ õîýÝíÛ³Ö|Ý{eÞoJFÆ€‰7JÎï6¼Ôºº/ÁÆÐGÝû)<Zm÷ÏÔdt¡õ³LeÛQ› Cv‚mتDI<Îx%N|…D!S³,7¢*›ö ´ˆ¡È´« ß Èý¾Øïʶ¿¯{ûz[-êvŒˆJ[%—1 P¨ D”ÇʼârÛ.»C»Ò «¶<z=~šùÚÖùnºöp'Ð šJjÕ=µ¶eûL3·u{ØWÜMÒ„­¥ß§Úmë  e3U •»ý[¿J2”–,l~K/šš›î°ë‰ãÃå€õö°¥Oes¨†+ë‚·-Ÿ£UiF;^–&°‰ø¤¤)‚º MjRšêu3-MXÂÌ^Æ$@M 2”&%”75Àå(M*H“J“Béø•$ Ú¨­øÿèpï¼½£^´vn’,$K¥Žèà–H¸à›…K±p©‘pºNð?
-WvN¶ÔQ¶þo¢•‚×´¹º,YÐyÁò@ç­TwØŸV‘ð3ÙE<Ð)"C±²"I@übLÞö,V:SÞ‡C++üŒ~7ˆÙ)íìµjžBÒäZ±ðÁ^ZK¿U,J‚9iÿ¤v*M@R/KSuAœ<Ôy;5)O'¸ŒJ€šÀe(Q™Èò|„ÌQ¤Œô"e¤X*©Ž–
-ÚÎRÁÿ„¥‚‰ÎRI/[4×Y*©†–Jzñ–³TÒ‰—# X&r°_CƒEþ$ÖJB¬™Èä‹ .˜‡r±zµ«ËfñÛ¡Ú=/v@¬ÁÊ -±_D!@Mà0¬,…D â©›òRÍhÄç'L
-t?šÝº^•MóLcc¤L•º£ùš²nøÇ(ÖYB
-ý%ð‚G¨è øðRG&BzÉ"îñôRùlP:©÷]«®] Êbïèlpp 9 F1s'm›–GAˆª/x“cÆ\sŠg¸TeŠ9ì¸'«Ý4_UƒóZß¿á.Ç´{6ñê<ž –<òFê¾?TkÆ`?Å-›B¬òÏcW¦¥‰²wZ?:Kïr‰JOÈ“ùtX_cJ‚´:Q½˜£—q™í˜ÔI:vËn¿ñžƒíNuö §±–s~ߟu Æja¬}Á%ÄPç]B€97öI–þâþj?
-â´ªC¶"±1‰™ÿ~dB)&ïˆÁþA´‚^b¾ÔÓ?GçÒDTuH?üg1
-ÙÐwõŠé¾»ç®®ÓdhÝ=ñE)Þm3=£lÉÁ#BbâôÀÎ<³É˧W/¢ß\æ±Éí…^ɪϵ©I˜²-Ÿ‡Wí|ż®Zÿ€c ~HÀ«í)L-{Ÿ .Ÿ_‚h0w&x'^m‚
-ea/éJN_Û»µ½2,’<hœ”¹*ÄM(D-Òd# ñl<}âs£H7ãþ±rI4Ñsì
-´gˆ€Ó DE™8~x J4=ŒÂ¾.\Oà©¶"BpR!p*„%CÆ*„ gTˆŸÕ•g#×ÿcxzL:Փܨ…§Ruë_s­ÜuHüÂëÈ.Îbý‰Já‘Áçr=±ºp¿1¼’8Õ`“H±Ã;«W©ð9)Ô˜­g/ä1Ô)ôPC)ô~¬=-LAè›6»ŒE€š@cxQ¡DžK;ă Ðñ¥|+º\RòhÎñƒ¯ÔàªÌ}Ò[ɲˆ]K†<‘½ÁüÍÙ"¬ÇqYTq´ÀŸg½ìl;Wæ°ô$ZìÑÁB»ë ËG¶±PÙ£PÙ3B¥“B©P»ÕS6[Ø<Ï"¯`䫼PËžx…¡XŒ§œ\‘"'<ªó¬Ì|w>ŠïœÏP\Ç7JOø E5| ½:ú |4ê|Þ
-ì Ž¼öŸÂ7ƒïm©Ø; P׎°‰™ˆÄD‡JÄÄSŽnƒ^KDp±i»§Jšß$™Aø‰ýÿ—4<?ÝT
-?]“>qø‰]gÂÏrÞ
+xÚÝ]ã¶ñ}žŠÄ,?ôA¡O—dïºE³—Þm´Id[»N–K¾Íæ×w†3¤>,ûîÚ?pL Éáp¾Iu-á§®m,¤É¢ë4‹D,U|½Þ]Éë'øöæJ1ÎÒ#-‡Xß<\ýéµI¯3‘%:¹~xÌe…´V]?l~Z|û—W?<ܾ»YêX.q³Œ¹øæîþ;êɨùöíýë»7ÿx÷ê&woï©ûÝíëÛw·÷ßÞÞ,•Œ×<Ù¯ïþvKЛw¯¾ÿþÕ»›_þzuûö2ܯ’7òëÕO¿Èë lû¯WR˜ÌÆ×ÏðG
+•eúzwÅFÄ‘1¾§ºzõ÷0áà«:Ç¿ØX[Î0P«9Æ™HŒ6ޏg•ˆX ¥\ü«© ÚáÃRjqÈëö±8´¸Q˜N¦“×K
+¹iˆå&IÛ¼%`W¬·y]¶;þ_ÖÔî«|]Ø5ئ‹Ç|]Þ¨EUvyWP×hpózC@[tTå®ìøkËt[ïšc͈Í#hò ­Òm󷆛QJdq¬Ývk"/˜dqlÝ´/mWì@nŒ¦ùÞǦªšç²~âQû®ljž-ß﫞¥¡ö÷Àö°²8‘-)d bŸØL-“y]b¤åë¼(,Üt^µÍ²nºòñeº¶2‘ÐYô‰ÅÖÌêCÉQ&:'ËWü,¥® <Im96éâ©jVyE]UÙv¹“„¯w?0òfs¸QvQ´­ïQê|WPO[>’i>yK#ùð€Ú¢f„û·w¯ÿIðVÈŸ
+§ ÿH>Z®¡ì<o‹º€…P¤ÛF¢LÞ–z×Íþ… ’IåVÁ—‹²¥O(®Åækøc-k‘Ä—(Sôi0K¿Wøƒ|+6„áÇÖûŠWº?V²±Dúºqís™èDÝÑÇ‹mQítt@[Ôí1°û‰Û
+cCs Ça6â ØÌ í:?¶8­Su£
+QjWŒÙ–Ou±ù3ü1Èè’шö¬ñx¬F½çÑpFdúyQ·§ÉR;àe¹¯x¢eñ</®wõ©z¤¶øm_•ë²c·2´_{o凨Ý5^-ñÚÆÍœàªLØÄxÁÝå \³1€I…‰²˜ñÐΰãS–|¶9µ^ S¡•¶°O°Ÿ‰¢â7% ø÷Y‚0®ÑŸ«H:µj@MìÚ§ò£;(ìâ6ŸY2±Â‚xñ4Î*Ÿ®¥H”ö|j1|Ùß@î+½p'#ÑPTÝП Ó¡Ü´2ÊæéÚÊH¡µõóöÑÒzqó6E‚â)AÌyc †z¬*?’àfó|€#VÁ,qœ¨çÙCä›DS
+h”;h]ì†
+ÐgúFé-"ÌŠaÛÏ8,p¸­p9À˜;„L¨(‰?Oè ŠNãx,t0;¹1fB
+ù‹1ÙXͽžPØ;œÚöÖÊ—„æ]@NcÐÁ¦`b·»}ÇQ(“ ÐÏ2–5Ǥ>òr†‚Ø:§˜Ã|u6P…¼EH ê}1PbT٣ߖ>NÆã]vå®X–õIÔ
+œÎt]¦$`Í29PžL¦vLË]½‚ƒ+ùØ  aÒb „Pvq¬kçðsÕÔO.BDTçj r!•Åà£~¡‘»²>vwsPd)(qCŠÃ®\’`¥@_¢ìX®jпÍgI†Ò’…Í/é%B¸mއ–N|<œG¹;îèÏǼ:㙵åeó—Á¬‘4“/JS”e"Õ¼\”¦!Öyi
+X³ÒTnªyiJÀ&ÙeJÖ )ciRB0Å#ZziRAšÔXšJÇ’$…Áµ{G{óÔÇFØë¢}$KÉR±c:¸%."nÅÂ¥&ÂäfZÿ§Â•œ“-ÕËÖÿO´âDDàê/KVtA°鼕jŽÝ‰`ÙH€ŸI.ÒN ‹U&¢…t@ÉÛcÇb¥!ÉcŽÙâ Ê‡FJ»¼ăì”æ”ÀA%!irP8XøÃ^ •_j(Js2û£Ú)e„‚àùÒ4Àº N뼚•'ŽÀ\&%`ÍÐ2–¨D$i:!¦)#½H)G–JªÞRì,´3–
+:K%½lÑXg©¤[*éÅ !g©¤/ǰD¤`¿Æ“ü1¬•Iàp 0½,`C¬ó°\¬^ʼZþz,/ËVb§‚•@Z’AD|‘„€5CÃH°’5ˆ§FD¼¯òÈ5£û–6Á¤@÷Èl6åÚUpÜ7G1}¤T•ºã5¥Ýкã†Pw\gùHlií2çëãnÅé/Ĉ±0fdm‰f›-°äýä¤,ÒÉâ–ªÐß=ä‰ðHY @95tüÜÅ…km¹Ú}¼ãtUX‘vy³L£ÅW<[]tÏÍáýYåõæ¹Üt[1W&y¸ÉôYîÞÕÑäŠö*
+6tyîžÉ„^OC<ëéÛfnOK@ÒFŸ)àsU¸ÁØçëL»{Ï+º|œâ¥DƒâE“€é”v­Òéãê̹Ý7m[®*F…è¹áïÔ0ĬjŒ?Wê­Êø`¿äÕw¡ð¯pjì.9J¾ÂÓf±r)"ǃšÚe
+žÌáO߬ø‘©‚,ß"‘‰˜:›ú9ïŸrD"ΫºÉ2°Q6d1Ÿ¿ÿ2£³·Ä`m­ —˜0µÔrt.Í€«îò[£}_®)n›Gîúñ&ŽA†6Í3ß”âívxÒ%‡ÛgFDÄÌîá8Ó$‹þ»‡è7•éÐäNÖŠEœfêKmj†ÐS•Áe;ß1oŠzüh-ç§<{oOahÞú qõò™!ˆsg‚wâÙf …J’ù;é¹ÈÂ1êÔÒù¸Ã#žôÍ]íÀ%²ËKK¤ÓµGÑF¤E Þn¸¶“;TèAàŸKëˆ_«á…/«êp¤Ç@:
+×"
+VX1æè¦F) ¿yÂ$Àè¾z`´HLz¦x`¤/²8ÐkK¤ÆâhMäe\Éù{7·Wƒe”F‡“¹“µÕ€xEšd¢þ OŸÄø„v Hq»/\úàq?x)€Ã÷dõš;Ýaà@¶Ë’_¦¡ÅLç+øFâ=¼KǦ߿o’½~–ýv‹Éu<½I}aZ5kyvlbo…g¤Wþÿ×O’û÷Ú×kõ¼™‹÷šL²$USÊÃÛåSÒÿ …ïÍeendstream
endobj
1755 0 obj <<
/Type /Page
/Contents 1756 0 R
/Resources 1754 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1729 0 R
+/Parent 1728 0 R
>> endobj
1757 0 obj <<
/D [1755 0 R /XYZ 85.0394 794.5015 null]
>> endobj
+498 0 obj <<
+/D [1755 0 R /XYZ 85.0394 769.5949 null]
+>> endobj
+1379 0 obj <<
+/D [1755 0 R /XYZ 85.0394 751.7744 null]
+>> endobj
1754 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1760 0 obj <<
-/Length 2706
+/Length 3118
/Filter /FlateDecode
>>
stream
-xÚÝ]oÛ8ò=¿Bo§
-xþöãåû‹Ÿ¯ÎNί/>^žN¤áùû‹_Ï úpuöÛogW§áÈßþýìÓõù-ÙHãç‹Ëw4SÐã ¢WçïϯÎ/ßžŸþyýËÉùõî,ýó
-®ð üñ'Ïfpì_N8S…7Ù= 8E!³å‰6Š­TšYœü~òÁÞjxuL~Úxf¤¶ÙDiæaÿq) æ„
-f•T;)K1&å„…Rî6åªW›SáóIÛl7ÓjÿäBÂÝ9g³>ù&vXÏp!dÁŒyðªì½ê@ŽÎ;Øß™U]µYÖ«ª…›S<¿¿­§·.ši¹@Päål¨VmB« ‚nªøl¶«aw M]|ºÓ]¿ýDÀ´Y­ªiW7«Yƒ Ï„ò!V#WÛ¶BZÆ-xΫ.ðà¿âW㉉¹øJ½J¼˜"¿yˆ˜·mµ¹º‚N+¥ó‹ŽÊE÷Èdð.ÈwšÆq< lÓЛp0><PIüؼYãáËÅâÆ‘¶Ë?¿ûD3ëfÓ½¡¹$—Ï›Í
-î!ÌÖ«¸Ïm¤5¤­ößÚh¾}ËWÂ2#lí„ÓÜOv–hîÖ1Í¥Žè¤~´êT°Aå+D¡†¢ !+ì !”½úJ“Èwh|¨Êæõœv/Õ-M´ëjZá\V(4ÅuZXë@—Õª£W@Çâ21".™•&žéÅnOr!ã;dO°AI~L’Wyâ$óÒÊ¡æßlñ…ɧ%JPØ 8Ñ€GÙÔ³YµŠã¸^Òpy»««ûˆ°!„´B"Æ•›² š„à!Õ«éb; ’ÇérT) lÈ`\Ú¤WuÂ@\õÅP'îëî5cüøÕhÇœáIÌáć;C³Ò%n›ÍØÕ[“˜ ò¥Ã]a#Ò ¬oÄ[ŸÇ
-“Y-˜4ÀÕ ’åCÎåÇ“p2Ò\?I‹Þã@+‚é!©Iâò1LŠÇdD³»«yæ“⪕À™.ˆè²'Dx_IsfÔÎA|<X‘_ÙdoÞ²2·Ì€ÃðÞ9Ü:û+=Ò¸€ÔƒÃYe&~ºXÊì]'Êú‡Š„'}ÊáPV²ÙŽV™) óF™Àòïͽ*˜F°[ä’& A*â,êjC3³¦ŠøêÐn×k´M ªgª®#Óƒ9kœ%›¢Àᓳ‡Áü’œèW÷B å@³ˆé©äù7ü‡Ž˜:ÐAm &}á³þ-ÿ˜â(Ð[@Î=yL•L­'„ÂeŽ)Ô±£yµQ.­x&¯Þa=áÈ&wö µVžialÖßá0µNX#Œ ”L+„2rI[.#TŽEg8¤æßå†!@{¯S>þ†ˆWÿšVëŽàÑE‚mä€"/ ”@P[R‚Ç!o¢PmBn,ÝŠáP?Ùg.n‡säÚ‡R’nò’‚HPÌaa‡sÀÃðÆ4Ó…ô}&Î0;‡ÌT›U²*g¯$,öóycî‚O²s@§° 3‹ÒØYÄZ\<h?³ÖùïÀV¥Wæe½h#Óà´FB+$=…NŽjƒ J:†k¨§}¡ô^
-÷ÒÌH9£"Ý:*8¾'#£†[/÷¯Áã[­Šïppé§"£rŠIk‹g"£C·ž›×ŒŒª€×µ5¯û”DF õ4äm:°Œ¥œâ<ÀPÓli0kð)bÐãXËcùˆé=
-üÀóÿ1úWendstream
+xÚÅZKsÛF¾ëWð¶P• Ïûqt9«ÔÆö:Êa7É"A `PŠòë·{zH’Ë®ÚR•0ž™žžoú5ä3|¦Mn¼ð3ëU®׳ſ‚Í>Cß<ÒÌÑ|HõÝÍÅëwÒÎ|î0³›Õ`.—3çøìfùkfr‘_ ,{ûáý»ë~ùôæÒªìæúÃû˹Ð,{wý¯+*ýðéÍO?½ùt9çNóìí?ß|¼¹úD]&ÎñÝõûï©ÅÓçĤŸ®Þ]}ºzÿöêò÷›/®nú½ ÷Ë™Äüyñëïl¶„mÿxÁréž=@…åÜ{1Û\(-s­¤L-닟/þÝO8è C§ä§´ËµP$)s«@h“Ræ¹åˆ¬b¹ÕÖõR|Jʉ
+¥Ü튺]•»vÞì»Ã=s®rدš '>Z¾§šX_ ÖçÜçºÇ ÜÜ•—sÅ}¶)þª6û Uêýæ¶ÜAY°¬YQ0xÛìë%Õþnê8°ß‘wwEG‹¢¦Âm¤Ü]ºl_×Uý™HM½Øïv—ÜeeÝ­/9çYŽR˜Í¥Ë¹5a{¹×š0ùß°(â$-J5šâÏ}Ùv-µT5}Ë¿eÛp#aì]œd]mªŽŠÕzM¥Ûr8çjß–KÀ°äŒD…]ËrUì×qä}±ÞÇöªEÞ_¿SÃc—
+{ª1
+·eØ÷¼nÀ(\® 8ËEO5ÁÆhÇRæJ(=æƒ$ ¢îÁˆ•FÁ<!ÇóXÄ
+aK,†jÀ"Ž XĦÛHy„½Ñøb4àÄê„ò ‡"ð¹
+ãäϳ¬ Ïç꾬©HÓnš®¤z]lb©-w÷°Ðy9޷쇠òO ò'@%Üy§Mˆ˜Ò VkzHÍ•dÙu½ ÖŠ6nð:iù8ê,V²*7Ò¹8hS<Æ­nËr™.3˵³RÜoñ^qº’ <“{ZèsY/JêÅÇÎv]ÜÇ&<ïö”…ÍnAm†Æª#ºbÝ6Ô8Á¦êiÛåhIž­›bIDM}ÀÍð±ƒ1°28Äc²±Îz©u®µWC!J'\¥“Ys \.aØÞÄoAÝiêÈ …Cncñ‘ÈöáØCnó˜w@z®¥‘‡
+ ðIÙCeu NNÔ«¦…| ‹^ÄâR°ìü‡Š˜: 2>λÙð”¿8a<-ÿ”Ôú:XC$—»¹ÁEt°Í³nµb<…"λÕ=Õ =6¿7GžµtpOµ™ W8ö¬Õ##ŒAì‚ò1ÒgwZ
+Ö¡TLgØxæ_¤…Á>;§’;þê)3µ9¤¿òZ1eE.]ìK6mCþKÁÁI5'#" fÑhoÎÝêôÑõTä—tó—DEçú<#=Õ'ã³S¹ò XyƒÖØZd©ÜÕEp°¬d ±sèÚcÝüÒ•r²Ðв®À£]Fªz*NæpÑŒu_jŒLCVEµn#ÓõrÊÊ‚ÿƒY]–¢¥9Ê;Zn—ÑK5Ö>/v’¤Õ)n¯"Ð@ž4’ô“rŒ#é0m ¾@Õ…ÒŸ´‘å¤áÏØHÉe.”·ßÒF
+Ðà
+ Ûg»Øà¬TzSíFo®“Kræ­èsåÔ³\N%UÊKüÆ4‹y×áo\Ê(l¶EWÝVëª{R~…R@°jžy™RAa¢"uÕêñî`3ì¹ÕÑ3«sÇäáæž_þ0²¨jÃ'0ù³½’éôЀ­#7ºFyõ¹ä.ô@:̤c=$ÐqLL #1呱÷¶Œöq ¥Ÿzo†L.~Û’6{ÿáæúݨu|ŸCªÜ™²¾Ð1Îú"%e}±+e}£¬¯IQ..Mÿ01·*›Nü¢Û'ÄÓ+ hûÉÇ7‰¿K‘â u†úìµÒf¼õź؇Ç9©(- ßÀ&&G§¬°¡ž^—)ÿLP˜zhÆŸ•Èt£h­ð«ž„Ë ²¿¡²¿XšN1r´ïŸý^
+Ë…„
endobj
1759 0 obj <<
/Type /Page
@@ -7788,29 +7780,27 @@ endobj
/D [1759 0 R /XYZ 56.6929 794.5015 null]
>> endobj
1758 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F62 1369 0 R /F63 1372 0 R >>
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F62 1369 0 R /F63 1372 0 R >>
/XObject << /Im2 1358 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1765 0 obj <<
-/Length 3147
+/Length 3249
/Filter /FlateDecode
>>
stream
-xÚ¥]sã¶ñÝ¿Âo•g"–ø ôž.ÉÝõ2ÉÝÕvžÒ<Pm³‘HE¤ìS:ýïÝÅ.HP¢ìx2ÁÅ»Xì7%.Sø—6KRåôeît’¥"»\n.ÒË{˜ûp!gæ1Ö··¯òK—8#Íåí]´—MRkÅåíê—Ùwÿ|ûåöÝõÕ\féÌ$Wó̤³o?~úž Žß}þôþ㇟¯ß^åzvûñó'_¿{ÿîúݧïÞ]ͬͅ—¼Ã™ï?þøŽF®ßþôÓÛë«_o¸xwÛŸ%>¯Hä÷‹_~M/Wpì.ÒD9›]>ÁKšçäåæBg*É´R²¾¸¹øW¿a4ë—NÉ/S6ɬÌ'(Å”
-Þ¨mö»+agË’0"wayÏÀ¦lÛâ¾lÁ–Tªf7eyl&:¥Î\æô:уÂÒäîþ’ב†÷øóxix,êÓ}QX7岫šš˜c}7Ç,õFSxÎÔže¤7µÔ&*7æ/mÑìÙ¦š't% ŠÇ¢Z‹5¿㌗<ÃWeWî6U]®Pº\’?Ì”_‹Ív]~CoOU÷pDá®Y¯›§ª¾§×eSÿ;Måý~WxéxÅÕ±®ƒ¹+ÞgÚŒæÜÅé±+êû’†JæÆÒÐd™ÊÞÐøo‚!5–çì'ÞVƒGJßœÈÌ$" "qt|åH¼Ž*ÙËWIámAdJ
-Lð¶¬;‚ßù›h6~Aä XÖ)¶òºØ”« v„k%Ò@£D
-UMïM]Ž™ó·èyná^,í?®æâËѺ†æáàÎ}C®DŠ4ÑyfÆw€B¬* =5-"íóž&#Qáù N&¤×ìÀP´}…[wàÖmÍ´÷6±¹2¯ô¾°mˆËÝ@*È ¦2¸º”$†-™Û#Þú)Î%2³ö¥kV H+ðÙ«§³|h𖬍y ÐÊ[;
-t…ayS¯™²¿Ši'îOd‹6MŒìó°3 š„ÉÿBr§”æ«y¸ŠãR&VʱŸ™2s8žaëfëU›öíƒ6¾°Ø÷õªðz ïèEÈвmË7|½åa¼9ð ø‚£Œlƒ®¦y¬Vå*zN Åò·'Úa‚þf ¸¨ÖUw8rðÁ«o›¶­kžn+È*(a“‰m_ø„ÕLûL8€¼Éh-ã’ÃqÉñy[b
-ò’›CÛ•.ÐJ´êe
-‘M5yÅ}]Bûß>pŠÌj¸¿µ!ë-îyÖçÚËnŠúÀø4ŒYá{§Âë)€À ¤Ñkdв1Ìu—Å:äÎÅz– 9¾`',7{z(yG® PÎᘤ'‰:&ÚÚJ“>œˆ šD&C<&Ä)0•ÉU2‘Ö‚i’“ÇQUƒ¼
-~qNKe¢r,I¤¹Êµ°ROEå–i°&ïá`Û¾^—":5ÕçGH½fîî«ûbqèÊ)= j˜Ê#ÏTó%N0¥ó$®™)ºpº­×P° kéµõ ¸â¢
- d10Ø_«Í~C/q¶¯›f_wS,K# ˜Õ3°*ïŠýº›Î,µÙàÛ#ú,4‚<z*­ª9åÐ:ÉŒÊÇ>=JÈ8°¸ ýA05?]påÒvÅ®ë+¬Ç‹ $-wÕ–‹3
-@Ž7?)ˆ{¬x8Ý yHXéÀôEžeãªÜ¸R£Â^û8+!·e C×Þ•ÃøÔuâJrÂŽ] I¹Q`Í(ÇZˆÔÜг›&à Lxobs ™XSÿ Ý—…Do¿å<à­ß GÞ‘ÃÓG&ÄónΆlÎFŽ?O³Ùçš7Ø/xDôÀiH B*PSáˆ/T{Z*…RµíÞ{vGô&޳¯™ñrçÊÃDrÒ…ì-³ ê&KRëìt?˜‘æ1Öùvfå£U³+§<„üš|r5Az!¥Á®ìíÛà×Wï¨?ÊÞ»QÆr±Qcg¿Ù²£¼ü#yû ×Ó†SkÍ‹áACÑJ0Þù{QØn~ñ^"¬gî%`yΊ®˜¾ìØAD~–r5Az|/y’:‘i“<ˆî^(æÒØßŒK=—ŒZn¬¬pÜ…õ½+ð{ñ,è9æ_Jt†{ƒ—É{Cþr—¿þÞ€BÞÈúÍ1È$·æ(±ñgÉ lìK
-J˜ù6 ão¨¿Cߪ‚96BØ êû„š=¶é l«ZÔ'P-꺞.‚¼ò
-Ì{ýK– YiÎ jNêúÅ[_¡ÁhÙÔpmä;꼇bæu<˜ìRáNƬ\A¡Býò\Õœatë¿Àž½Vá,èìK×c¿ÖË{£®Xþ6nd‰ÃO Ï’î±&h.nÔeƉO§½+ˆAÏ&ã¯p®¨¦K¦¼úõy"~I°Cíùª<ñ¸‰¢Á-dÆèÐÔqSO¤ÜÕ»‰xmO rTÒ?yÙ¨Ï*Õ8åœÇ¨ Ö…Ž
-E!({ÔRƒ 0˜rqŽÀ2|æÀÑÐÔ•hM}WdEÓUÝ•»âÊÞ‡©H9y»àÂèwWšq‹”BàY³².‘J¨ç­*B:oT)D”ê+}Ëš¯›ûù¤}yhêžå¡G:eb܆4In
-Rš̞=WgÂqÊúÿ4¡¶vendstream
+xÚ¥ZÝsÛF÷_¡·“g*v¿?.OiâäÒi“\â>õú@I´Í‰Dª"e×½¹ÿý€Å.?$ÊNÚv&\.±
+1ã<óZ 4/ç:3BÙ™UpˆÌŠ`ß÷xÂÔãb(Y¦¥PÀ)>\. Ÿ_ÿb~uld*…v3ËXæ¬ä(|öûŒgLy/‰j0»íO!L|ÿn+f¯kØÓl¸­Äy1döeÄÀk¹†-:p‘9é|Pús½É÷àuz^6—`6?™Î8 ójMƒ"ÒlÊbO3뺈ôUÝÒ 9ìv5|Vlžfж-«[ziïŠ8[ö«8Î×ë}ÑDN7—’;3 ¨yýê#¸»u°xu)Øü þS´Í%(•ŸµòÝPΆ†þ{¾#°ôG‹Þýÿžg/„ÏðãB¨Ìsð¶I@bCË ñ¤¹í=–OàQG…'f)otØ‹{sâÚg‚1=ò>Q £šPaä\`Æq7Öá§òKÃf¨¯à™Åc9Õsc‰ØÀÑ
+É#õwzËCKƒ|·Ÿl襭éI,i¼ïÊoESTí˜öÝG8b®xÉÝM6¡ö‚{“:À›²–"±š›ÌA€0Ææ¿¼þHü>Öû(ë§²O^-`)7´ôЀeÔâ°Þ- rˆæhûÖfÊ@¬¦íŸª¥2gœˆù}]®Ÿã ¾¬W_Ë3hi¾IË…„ÆWêHß§¹;ŸYÏL\Ò슙WšyN œ0Žô¼¾¡°«
+G¶Ò™÷L%@¡t M—@øh9˜"=°½Ë[=”› Ñ- šs‰<õð IúOyd„þÞµ*ˆb ã&-ïHN 5€drþ¹(N ΂Óqof N1
+Kú¸¿ãÓ03'úÅpÁiŸò I¢Xµe]‘rÑßO
+0‰½8¡q:ŠPˆ#Sí"x©Ý KÁCÔáÎô¸‹ó„»8lQo'Cî.Ô?!1äÛb=¡ŽÄLc…%ÊÀ°D eEïuUŒ•£uèíˆóáXšBá•w<{$Ãߥ‡ÿ¾#0Pò)«ÍØxÈ|œW-"ÿ X£é¨è‚§² šÙe^Zñ ÀޱâÒÑLã/0…Ñ|#þÛ”/V9㄃L$°ctb8³£€»G«ŸjࡤÐ}þ?gf µwúÛ9«»ºn(AZ€X˜-C¼ÃtMž ®Ë„·cƒÐXÓŠrƒ‰˜`„2>—›zõ%l—4ùˆÃ1öÿ‡”sb€:?wÊ=žæ€u Žy‡rgà¦y×Ý ÷óßÅþqŒ”ð(¤ÈC˜q8•Ócx,H@zâ—nÏáåq°Êmø»aµDUóš?ԇ͚Q×
+„´¼®6Qr0Å4 v÷õ"t Ft•Ø™ Cºô¿^ÞI©¢)¸M¦8.!¡ÉbŒ3SaÛS<±®wÁµ‰o—¶ñ%û¡ZçÁa*
+áLÙ4‡€ì8È›HF‡**žJŽ.0,cðcš8¹Ý¦;a>R@L;õÄÅ1Þ2¨ÎßwT![Õûb
+!¸ÀÛtñŒäŽjBô(CB¹¡•<’}p­‡úP@ýYtèFWªÅFW;‡í.åu„öé\O/i(Ìœ3ϦiDu7ÑçíÂ8$Hß±Ë€ê »$ª YÞæÓvÁ;;ÈÈOJî¨&Díb3æ¹˦óô|`x¡œKã`Ï‚–‘´ØÖØYá¸Më;(¼âWðs¬¿¤èåôvƒ—I»I(ì·ßn7$AP²Ž9¦‘YgŽ
+›° mc×ø¾€a@xöûRƒk*–Q&4¯ïnh.ÆpÔ/- Í‰Tuü
++FHÑ´kh”DÌp4NsûØB„¦Û„*üæ€nd¸D¹œy¤ YÃÄdËL9Éc I“‰¢ˆ5 X‚iixæî"tZñ”åÝ~Ï(㓚'¨6Cóñ¾HÆã„/û¼lâG"6ãÌ®™Ý¤x…QDÙakº:×PRÂÊ·®#ý–î·`®ªà[ ÂØ úûÄ6ë^ÓAÛV6èOàZtoè;¹8œæ:Œa±Ý„¹.X÷+ Ì.–Ž”[¤íI&ªd¯2+}B
+€ºÅ*_Ý‹„ºÇ×"P÷JnõJ¥Fp_¬û¦¼/s”È\˱w¯6eQMvé*¥înbû*s5’gÓ’÷Â>•Dç“R"BðÒbS4')‰Á¾”³OJíˆNÅŽsÔºC©±¬µÃ†ÐΫÃvIU¦?ÚN¿ðÒ¦e}=j#–A·I7ƒañ.ôf0ZÕŒP£j78çóàݺW¢OUÀ¥„ÌVVB!SçòT¿¬1¯u¿¾ž5¨qà}ì™òo@ôÄß D¢
endobj
1764 0 obj <<
/Type /Page
@@ -7823,14 +7813,14 @@ endobj
1768 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [471.1233 716.5032 539.579 728.5628]
+/Rect [471.1233 577.5961 539.579 589.6557]
/Subtype /Link
/A << /S /GoTo /D (query_address) >>
>> endobj
1770 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [389.4645 436.3192 438.2112 448.3788]
+/Rect [389.4645 302.4726 438.2112 314.5322]
/Subtype /Link
/A << /S /GoTo /D (configuration_file_elements) >>
>> endobj
@@ -7838,50 +7828,46 @@ endobj
/D [1764 0 R /XYZ 85.0394 794.5015 null]
>> endobj
502 0 obj <<
-/D [1764 0 R /XYZ 85.0394 769.5949 null]
+/D [1764 0 R /XYZ 85.0394 635.9015 null]
>> endobj
1767 0 obj <<
-/D [1764 0 R /XYZ 85.0394 751.6696 null]
+/D [1764 0 R /XYZ 85.0394 612.1148 null]
>> endobj
506 0 obj <<
-/D [1764 0 R /XYZ 85.0394 520.134 null]
+/D [1764 0 R /XYZ 85.0394 384.6884 null]
>> endobj
1769 0 obj <<
-/D [1764 0 R /XYZ 85.0394 492.9252 null]
->> endobj
-510 0 obj <<
-/D [1764 0 R /XYZ 85.0394 176.8701 null]
->> endobj
-1771 0 obj <<
-/D [1764 0 R /XYZ 85.0394 152.132 null]
+/D [1764 0 R /XYZ 85.0394 358.431 null]
>> endobj
1763 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R >>
+/Font << /F37 1030 0 R /F22 965 0 R /F62 1369 0 R /F21 942 0 R /F41 1223 0 R >>
+/XObject << /Im2 1358 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1774 0 obj <<
-/Length 3541
+1773 0 obj <<
+/Length 3384
/Filter /FlateDecode
>>
stream
-xÚ¥]“Û¶ñý~ŽU71ø" >Ú®:“8îùÒ<¤y $èŽ5Eª"åóå×w»
-bñæ—ïÞÿðëý«»Ü,Þÿòán©R±x÷þ§·ýpÿêçŸ_Ýß-¥MåâÍß^}|x{OKÓxýþÃ_i¦ Ç¢÷oß½½ûáÍÛ»?~¼yûÏ2>¯òï›ßÿ·8ö7"Ñ…MoŸa YêvwcR¤Fë0Sß|ºù{$8Zõ¯ÎÉϤ6I•Én—Ú$öŸ—²Lr))O‹$ÓJG)+9'倅RÞ•_—ÿj‡¦¬—]õ§;=¶Ô:iv;&}Æ@@ša@®WçzÊÁ'×wwp>±(é,U»ãŽž'mÛ®\?ÄŒÓàŸB¨Ú8;;Œ66‘
-„2æ“·ÜÎñ¿q°sºt°u_µ qd@›å)?FèD™4½.݈õ .Ω!
-‰6`Åâ·'ÇÜôOî²I8º’IfR0])“"M•'Vî÷‡;i-\ƒ[SyN´èön]! ·á ¸»ï
-i§šM1ƒƒgbƒRÖ’>N+AãÏUÝ®^z×U­Óð^¾øRÖÇ@bKS¸F™ˆÍZðÂ"c‰Ì*ï‰ ó<±©
-~»Ýs`––1îõT~áÝѸqfÅã[“\Ë­ÖŠE¡2HS3}bäèDº cýë#‡
-RñA¸­=- „ä’‚híc¬ËÖ±üM­÷írˆ\dêúækf÷‰ ›d6O§Û“ÙÈÎaí`¯‚ð<±s˜‰Ê ðÛ<Ù6‹ILôOe ¿W>Ø=L²ÝT®×ÞqÓ]æX|LoòÈ 2•¤Ö¤ƒ-Ϩ¡Ì“B+MùÒͧ"1FØoÜüëÊÍ,2/‡Í²kןݼ›/Òëû3ÎÌö§.¾ÐRO÷÷â„*Þ¶‘tÛ8x„!%\ª}ß:š $îé5_àêTz)vý¦jNó…ë×à/­È8óò[;·a Ÿ+G$WÕ#»þ4ÑúÔÁ¹¦=>¢1CñßhP=Ò*œòª@ÔdX÷š süö\»nÖŸ©¤(òàšr7›QB‘e””ŒUCnâ¼Âù¶ùn†®Èbà8±úÓâ¡ ["Ü’é>;o)p0C7 ®¾TG4nw\>H°%ä4xú+S®üØ?¶¡t0d
-ö¸ÈÙ4¢S6 f†(“ð23U õÙ…eÕaT>¯ó N
-‘å ¤6Efã÷S™%RÞ-±±¸øµU»©Öd‘¾÷TvŸiøëSpwÝ%;UPÀäÒ×ítŒuÙN#²¹®)SXV̹¡8ãWYˆX3<¨“–«4ZN™x`V‹Èxvc|r“íªkk‡ •lñ‘”æKÕ»:¶N}§BãI"üÜë C]ÄÆÌdCojt6Ut(-¥‘kïUŠ™¬
-&GYS
-3VNÙbǦÈú0ýÙ®×Çë–h‹Da_ýª!Ž.Ûa@òŸ¥CúŠBÈòô*霃©
-)ÖNXà
-¢5[ÉÀìššEpf9\5ùgÂŒ' 5̸ º×¤ö©)Bw^çM¦ö,®iMù;µ¾s‘è4Ÿ*@4(Yø–´¢Aás ¤ wôrãÏc²ˆGǯ£fã“4¡‘fè†.-ÐFÍÆ¯Ù f#y¯Ùà™|(‚Ä”ûy'‡Œ”oÇÜrQEÐ`?IÝ„èÊ
+xÚ¥]“Û¶ñý~…ÞÊ›‰Xà8}²];½Œã¸g¥yHó@QÄš"‘º³ò볋]@¤ŽÒµÓñœµ
+Q¤25¦à‹±ö"¶,à ©ÚwÔ°4Yˆä
+~Ù¦†,òZÍQR„iœäcÕ)ö{«›-\AAÏ2¶Ž
+jr,"Ì h4x3k£°ùTÔGFE#†]’š›jS,O½éÆKŠ`eÖűîý$kCâ¡VÊ\‚÷Ž6"ÇÆzPØò¥¹Ø‚%ɘÈY öy[¡:àfEݵí ð‘/„!–:_¤$ƒ3¤[…dÐqdWœØŽÑ¢
+dMä¯Ýè
+|·†…n’à±&h;ª4VÅc". <_$þ’P!ÖÞéƒÒia‘ÕáCRݶ_ûnbŠQ4ÊÖT C B¡ØÎ‡Yªôؼ-Ͷ¨‘ -ˆ°ûÌ3¸p| è>Û&À´MBå¡ÎEÌŠ ³$U˜‹È!Ù]dð֔ű3´8yl„|°Q´§Ž†aFGPAƒë¢:PDzꇧB·köY'£=cDªB =ð+t^–ˆrY rHØ-#j­êÖÚDXU©ÄÍËœù·K¬©«ßš‰8Rh –£”92)¼—‘d‘$H}4ŒPíVÖã^Ûâ‰wGåÆž%·W¦$¾ šñPÌ
+™BB˜ª %G#Ò9ë·,ìwHÄÏ̽ªíqšƒ6iu[Û‡X×µÝcÙ›*÷Wõbœ,‚ˆþæækb÷‘žG:Lu–Œ·'ÉÓžCÃë9ÀVá÷BÏ¡Ç 3À‹wŸ¹³mãƒè T– Cƒ×{èd½ˆr¤ï2Ã:Éø&½M:+sr%ÐHe˜è89ëò„Š,Ì!©öª|íæ%JUöÚͰnܼÃ"U±|XÍ»¶üj¦Í<Xã›û3ÎÄö—&>WB÷·ì„<×ßv,è¶±Ï%CÈZª}ß:êà:†¥ž¦Ù|‡P„ÌÑJa³ëWU‹p’¦/Á^ê(åÈËnmÌŠATtü]ZrYmØô'¡R—Î4íqƒÊÇäÿcL‘Iª°ËŠ
+
+è){Ç›yUY³³ß…,â¼ PÄÆ .sQÙô~îOc1–(!õ”¿0ˆRî*,bgÊâ¡ÙŒÏ;ÇÉ•C䟤æ¿Ù±6]ç¶´%:ÚÓ™ ÛÆÀü 羸9g60äœ+M;°dÚÙ!uTÍùt\D 9Ù…î­ý‘æ†>éÌC‰AÀ¹PF%Äsh[tÎõö}͆ܬq™5ø‹q’õË},lVíóõŒ
+Lwe‘¼m—‡X×í²ÇrU¢sþé‘„H4zs5AÀH¬%H„Ô阪BÇzXʃb×ÑÝâ€ÉB;n#%賑(\Dr5i蹬IC—=)F™²÷}.KNAÇ\%?K…-
+@²C6LÀ7MÎS}ô
+°lq_ É¨¹Ù·ÏqÎ`*/\i
+ÔÑTïQ“8”ÑåÓåè-¥c½•?lI£oeϹ:a ‘ïDˆjÙAJÞ“®ylÛ>°+šA6îgìsOKLy[„¬ZiMü[Q_ÕL ¼;=Vê­Îø\Tü¶ JE^Nð-B!a«µ748²4~Þ¾è:÷^Ñók€«"ØBÿP)Ønà GÓˆNÑ4@Š ¢HÂnÈÄT5ägWVŠªC¯ü2σ
+Ö…¾ðÚZàÞ𫪠̓?¾–ÿûã­ó—mq†åâ+ ¬ÌtkX„‰B6fñKÃÅ_y½$ýOÅììendstream
endobj
-1773 0 obj <<
+1772 0 obj <<
/Type /Page
-/Contents 1774 0 R
-/Resources 1772 0 R
+/Contents 1773 0 R
+/Resources 1771 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1762 0 R
/Annots [ 1776 0 R ]
@@ -7889,40 +7875,52 @@ endobj
1776 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [347.1258 755.8266 404.2417 767.8862]
+/Rect [347.1258 642.7661 404.2417 654.8258]
/Subtype /Link
/A << /S /GoTo /D (journal) >>
>> endobj
+1774 0 obj <<
+/D [1772 0 R /XYZ 56.6929 794.5015 null]
+>> endobj
+510 0 obj <<
+/D [1772 0 R /XYZ 56.6929 769.5949 null]
+>> endobj
1775 0 obj <<
-/D [1773 0 R /XYZ 56.6929 794.5015 null]
+/D [1772 0 R /XYZ 56.6929 751.8451 null]
>> endobj
514 0 obj <<
-/D [1773 0 R /XYZ 56.6929 282.0597 null]
+/D [1772 0 R /XYZ 56.6929 159.0114 null]
>> endobj
1777 0 obj <<
-/D [1773 0 R /XYZ 56.6929 254.912 null]
+/D [1772 0 R /XYZ 56.6929 132.173 null]
>> endobj
-1772 0 obj <<
+1771 0 obj <<
/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F48 1243 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1780 0 obj <<
-/Length 2594
+/Length 2502
/Filter /FlateDecode
>>
stream
-xÚ­YKoÜ8¾ûWhO+‘§ÈÉ“83Ì8»Ž{˜™ƒÜͶ…¨%GRÇ1ûß·ŠEª©nÙI pD‹Åbñc=Ø<bðG…N™,U”—*ÕŒëhµ=aÑ-Œý|ÂOâ™’ë§ë“—oe•i™‰,ºÞ²Š”®×į9û×õùÕi"4‹³ô4Ñ‹º¸|C”’>¯ß]¾½øù?Wg§¹Š¯/Þ]ùêüíùÕùåëóÓ„šÃ|á$<1áíÅoçÔúùêì÷ßÏ®NÿºþõäüzÚK¸_Î$näãɱh Ûþõ„¥²,tô
-avM=Œ¦M@[b ·L¼ çi©µ°SV]û'câv×WcmÍ_ÐÙVíšuÓPk»{jÑJÖjØEûà7Ü7öÇ»j¤Ö]õÉPë¶k]«z¨O9çqz –2 ØÎy–æ¥\¾/Ž' ˜è´ùÒuqL¸ça„½c½«ð§ª9T€gæeÏk01«0\7•çs.«-7+â0½kOša?w¦Ç‘ÇÝt··Ð60ïq¼ÔpMDáPñÄv´,xÊ2é‘´­ÛÝhðªñõ[}m6Õ®qz„NµÈs(rEµ;úŒÁdÉMFʶú\ow[ê€;G÷3DAßuõè(xm“‚9¤bÔɾØ8`³±£/s n;ܽa瘾qZaè½E–‹Të’/Û®¹Xöe á’f,Ëž–EóÈrMš¡D%^»$c Ž@Ì\ÞtÍ\§™Py”Ó“¢È ƒ t¦8yÇTK¡ Þ&¯áŸ™„J¡‹(ƒ/A:,}Œ
-g@|ê±)ÀçCXˆ|clˆ@²ù¸«¸•
-2Œ‡;ÓzfCœÞ "qu×uƒq"*ú´Ö_âèž“ÛëŽ4 ÖDÚP˜Ý³… WNÑ Q¬<tclIú
-ƒ‚æ.@¡¾à
-&~ ’^â—”T2Í2#3%-<Ï’çi.÷§ÑÚ”0§$Ë!rmôcøÍ÷Øîͪ®êì³­Dç<>¯À0v
-f®€i}9ôèSÊ
-Íó*èÃþ‡"—^§D.SÎò¯{ž‚p]–Z=[Ò ®¿±@À™Äô (OUEÐrIW²4çTtEž•?¢¢™Šƒj Vš+Qþ°‚Î NBÉ õœÈSÑ€z²)>Èn
-±ð‘#-§çŠyBœ$Ä…äž±ów+§¸Šß¶û!5bx^ß›.áH¿¡F| sT±"ÿÂk¾l)å³QúÑ_êr—}ð{?UÏ”yऊ]¿ïÚÁR¨(Â‘Šºo.ßSßUxØÜV4¸‚i´<>Ñnˆ¸7SÃ9Îèv¶±šQWý®šˆ~óêʾ.צë·ô £Õ·È[¬+QÏRùeÌèž±”rïk8HU.¶|•‹mqT¢j{®Øõ-õ)ˆ”:ù~&Vã³QÛÕ©éÇlNk(ÛµŒvÇIT·/Pg!Âá~nv(A½a 5–Ÿ«aÃ…Ö¾<í{Ð#éz'ø
-†N|^ c„¢íÞý¾qß×pT˜bä™ÿϱ~²¤<Þ t§pŽÍ€±±Oæ“GNÚçrаqš­ñBS*â×"vr焹„þp)̲¡ùCW™¼Xº»  `©ì=„FhØH+{‡ ±ÆEm©R»!›Äãt_åXþÎåX«ÑÞgKò¿ÅPò…ê±2þ¯}-³HòtÄÊ1øz³z®b2˜
-KÂ^7§ºpœ¸p±iCEN/äð½7=ºDÊ¡é©A™Ï¶óƒU
-ºDA¦üTkŸÂÃôã®v¼NÒd5²@¸Ê—_ù¨¢§4ÖWiÆ—n¨æ>•CJ*)ùÒÝf‘·æwÿü¹ß*OeQˆ'œËÒB”ù¤n5ׇºO?”.(ÿϳ‹endstream
+xÚ­Y_sÛ8ϧð½)3•Ê¿’8}ÊvÓ^vnÓ»\îiw›Ž5•¥ÔRšfwî»@2eËioÚé¤"AÈ@€æ ÿø¢Ô“F-
+£2͸^,·glqcïϸçISsýt{öú,&3¹È·ëHV™±²ä‹ÛÕoÉÛ¿_üóöòæ<š%yvžêœ%?]]ÿLCŸ·®ß]½ÿÏÍÅy¡’Û«×D¾¹|wysyýöò<奿0_x '&¼»úÇ%µÞß\üúëÅÍù·¿œ]ÞŽ¶Äör&ÑOg¿ýÁ+0û—3–ISêÅtXÆ‹í™Ò2ÓJÊ@iÎþ}ö¯Q`4ê¦ÎíŸÒe¦…Ê©V™Ê >¿Ë,cv--´¤Rã. >·Ë wyc«Ýpg«!­ÛÁî>WÍ¡á<Ï3YÊrK?ÒaäšQBDJð‚g2×|ªÅíÆž§Š•I*ض‹ä©n¢>ØÝºÛm‰üg×zæm…:·U»´44TýǞƀŸhU‚óz¢m«ÝG»"rÕ£Á[%e‘I8° Õ[ÕUóøàùbkRàÉ
+]Ø
+âmOíŠÄÓt0€Ôéèˉ¼ªžÑ0°Ô›@Þ÷;wU
+–…K‘ò²,HU7T}©·[ìä´8ÑQk$‰’ú°Ž§ hŤ8!;O®ÖÄØÛXPe$°Wð-EÒvD'(àH …‰5t  èÜÃÆö–šØ$¤a«[.w²#ÿ÷N–"˹6/{bÌuÚG.ÔÑc]-í ž(]½¬B`šQaâ‡9D£åT:UmF?ù~w€º¬Zj ±µÃS·ûHœ£ 4ÖÔý@-t†ç?’A 4¹÷³ù-8мä×Á3÷¾ eéÔÇÓ`CPÕù[Ž^ÅMîð‰_ô*üî% #h#9À››"À;žŽðÆ/Á[¼#¹Þ(á#ÞØ@x£xoOõ9Oö;‰#¸ñmÝÞÏyª?žÒ$]Û<ãÆŽˆ±ˆZtfÐXvíûÇ]5Ô]KSÒxç»ðmºjeW ¶er±ìî@êJKÆ"Z€.>êvgïk¿¶霟¢‰p’šŸí®vñLªuEbÕ>S£µOo®ê~ÙáÂñVDñÔSæÁqtŸëq)ÔÜËØÇKì4M÷$ÝyŽvx]”e&ÜáJo h;wcÞ‰áG‚hyE©jW‡AªºjÑJn×\ôjéÛMQ¯¨µ©>ûðwO±Wx‚+€s~:æi#Ag°ãŘsŽy#šÝ`n?ÔËþÅ Çdþ%F®-ÃãÅ×Õ=Ê?\{Tû!Á‘;ÏÝt÷÷!Ð>â¸Ñ߉°NX|ãX.õQS¥ôIÛ' ñ$$Ø¢(üÉ g!9 žE×6tµÐñ3ܵ _mk6¹¶QÀôÚÙîÚFxZ6wm×y(·]Àï~c§È¾óZÐÆá‘3Ø"Ȇµ*1=û¦$ý jŠr> ‡ø iÎr}ZÍc Ë7ÃŒ©¨4h—ª"Ï
+ GAp<@×Y.T±ÐRC)A7ïu„+îár”By|€|'·ð¿H.vdJ×¢2,3…r·þâÓp¤ l”ãŠÚÎØý&8Âë«­XüÜI‹Øª 9E;³ò‰gLÉPt1ã=«s)\™<Ÿ –Xß©·ÝZÀÿÊZúúòZæèð•)²\æroï÷$²Yn ˜K÷5Ø÷ái
+pJùr4T2‡º.w{…5*Ï3.àÎgp£Þº Ü=tà Ï3A°+ L) ª¡.\¡ƒ3à’Â⇠,=ÚûžÈwÖÝH¶Ÿ«œRAeLù1[â‹0 .7]×[/¢¢OëÂ%Žî9¹óv¤áýL¤5ݵÛh¶ðY¡StM'o& é=&†'5–C€}ºÀíF Ioq7Q*Ï\ÚÆz ·ú3 -4lãžèm³ÆÒJéäáeÏ
+9Šûò~=HñªÖkWµ3ë
+*¥Üð©’žÇgÉ Œ9<œFëò‚2-È¡÷´!Œá7GÜc·°ËÚÕþÐÙ§\©.xrYÁƸ€SÚ@.ÑÐ\r°M€ŠöKU}_ß·Ö+ã‚LxÀB8#À`Êy9u­ë®M[{_¹ vñ(õ=Fj$WÔ"‰xWõašËÈ…Ëþ둺¾¦²Ü&
+Á“SÅ Öaòæ9ögb¼½”ºaß銧‚0 V«•ÇòÜÞ ò@2„ÍH3ø´©qâ,tý¸£ËÌW1m¨‰žCFÁ8DÔò€>¬¢¶N Œ…y>½}Þì—
+ó—W%Ÿ^Éò7S”Ó»!Íá>ÿË-dfðýxb:g¯Ë7s{ò7I|-Ô›98üE‚ç5ÏßPG¢$×ú/ÍIgW¤ÁãŒ"V?Tï<ºs©ïofzsU'÷OAÐጾþY@$ÛÎy¾¬»PZ#–ÖøÝ
+€ï|ùN6²F§9–~ã3Õh¢ÞïŽA½ÇÏ ÐvŸ¦ƒü
+·çMÔûû "ç~Uá
+öLˆoûY’ c´z±¢üÿ­èpÆA&±ÿùŠec§
+:¨‹
+^B*#LÆ ÿ!ÈTXD•
+–)~\9䦑à™b
+ V( |.á#€œMPƒÅï™_*¦Ép~ —’Æ.ø•ÿ}¿m÷CÊÃ謾ïôgÚà#ò·W‡_Ŧ„mÈÍì#[„ØþÝ¿-î‘«°B,O¼†I–g¥0P è dÑ1úpkµ,3]Š=[¤üÿ
endobj
1779 0 obj <<
/Type /Page
@@ -7930,88 +7928,83 @@ endobj
/Resources 1778 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1762 0 R
-/Annots [ 1784 0 R ]
->> endobj
-1784 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [242.0197 109.336 315.2448 121.3956]
-/Subtype /Link
-/A << /S /GoTo /D (rrset_ordering) >>
>> endobj
1781 0 obj <<
/D [1779 0 R /XYZ 85.0394 794.5015 null]
>> endobj
518 0 obj <<
-/D [1779 0 R /XYZ 85.0394 578.0515 null]
+/D [1779 0 R /XYZ 85.0394 452.263 null]
>> endobj
1782 0 obj <<
-/D [1779 0 R /XYZ 85.0394 552.7977 null]
->> endobj
-522 0 obj <<
-/D [1779 0 R /XYZ 85.0394 178.5847 null]
->> endobj
-1783 0 obj <<
-/D [1779 0 R /XYZ 85.0394 155.8016 null]
+/D [1779 0 R /XYZ 85.0394 426.0265 null]
>> endobj
1778 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F62 1369 0 R /F41 1223 0 R /F63 1372 0 R >>
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F62 1369 0 R /F41 1223 0 R /F63 1372 0 R >>
/XObject << /Im2 1358 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1787 0 obj <<
-/Length 2457
+1785 0 obj <<
+/Length 3019
/Filter /FlateDecode
>>
stream
-xÚÅZÝoÜ6÷_±2ÐeÄOQÈSš³[­Óº¾§¶ò®l ÑJîJŽýßo†Cj)­vm\|8‡äp8üq8ZóE
-ÿøBfr‘/²\1r½XmNÒÅÌýpÂ=Ï20-c®ï¯OÞœËl‘³Ü³¸¾dY–ZË×ë?Ã; iòþÃåùÅÿ¾zwš©äúâÃåéRè49¿øùŒ¨®ÞýòË»«Ó%·š'ï|÷ëõÙM/ãû‹ËÑHNÍ¡WgçgWg—ïÏNÿºþéäìz8K|^žJ<Èß'ü•.ÖpìŸNR&s«OÐIÏs±Øœ(-™VR†‘úä÷“ßѬ[:‹O™FÌ
-ã7â
-6;Ñ££’îJ¸q¯ÆzdmÒ“ºEO
- "¼µ–ÉoƒaÿÄ0;2LèÔx “Ü¡é¤;ã #4gîc8®ÔY°I ¢ƒ¹~K¨"95yMwˆS>MÑÙX¬K5tˆˆzzN¨‹­zz!T |fÔß¡¥ó)ZzôŒwG 3ë†F¼bù°»ò»‡ji†EO¤é
-›\¸¯_ƚʒ®ÚTu±¥A÷ÙBåôHyèQÁMO¾”bI®+·`$üzkÅröÙkqåú¸Œj¾Hƒ¡dAYCf3c6>ùËŽH†qÈP$dGÅ'—ÞÀ U8Òl”ùNÆZ‰² ìÆùkfâcà,ÃIl©ÝU^ЉÓYÒbæº|ò)¬îÞ
-º{*¨™˜
+xÚÅ]oÜ6òÝ¿bßN²Šø%QÈSš:©‹Öiî¡íƒ¼+ÛB´’»ÒÆ Šþ÷›á µ”Vkû.9 ƒCr8‡ó¥‹þĤqšË|‘å:6‰0‹Õæ$YÜÂÜ»Á8K´ ±¾»:yùVe‹<ÎS™.®nZ6N¬‹«õoQËø($Ñ›÷oÏßýóòõi¦£«ó÷§Ki’èíùOg½»|ýóϯ/O—½ùáõ/Wg—4•2ïÎ/¾§‘œš#D/ÏÞž]ž]¼9;ýãêÇ“³«á,áyE¢ð žüöG²Xñ<Ib•[³x€N‹<—‹Í‰6*6Z)?RŸ|8ùu ̺¥³òI,U*g(Åœ
+!·”Ë‘¾'ÏJ
+§inY’Æ™2NÁir{» à2xþ2\@/"dã.²ó¡\õUÛ3þ}螬‰ó$nqð6¬§89 ÆâG-’yÊZ ­êj”WØš´ gÛ5ãuwí®^‡xÅv[4·Á:
+ ÷íC‰ðÅœ–7-î§mT¸§@(ØŽ†Vî°ÆMuœW<Õny9-cüvË–£wOÚ 5¿'‰¼%ûR®‘½$þuW2é‚(W C~/VeÈöÄyc.Њã£E²Yt]R{_nÑ*–kê:áÛ”iÙl² èäuÑyä–i Èt†tÔ n­¢D?Su~©“õjúç®b\¦4H$îâLê¬AFVJ‚ó¢û€î€Þ{9b˜b"2‰S›êÁ‘š9Î3ÕÞÌ ^òÐÆ)ðŦ‡6N›EÃêì)v®Ëº}`×”Ãåñì8S4s(Û¬QFÙ‚\çì“TÀQ
+èRZýœ`D‚·v>Y—!ÉÃ8CZœû‘ËMѯî¦<*°¬Újûíx(>Á£‚kÔ™JÇL¹I‘Å*UÂË»YÓåT ¸R6M=_XÕÓ‚½ihdÓz«€½î¾\U¨Î+çéÉðZ8‹Vv¬Â`ZñM¥âˆ»E%ÐyÆLõí}[··_f¸×*Ç2çköºuÏ,•N#ý.<‡Ü‚Iðƒ™ROú]Æ_† æüî”îØïcÞïÊC½–psã†[Ìø]ÆzŠ“jßUZGg¨-]C{O@ —[“Ð&Ò¬½1¡Araže:„Òq³ë<ý¾+ëÒ
+ â·cÒS|ŠÉ<‰­´jÌä13yk68ŒÞé®Ú¦¤ËÂ8ú‡–€²vÊ…>3Í Å€ˆˆd‹J ù“<ÜU+&í²)®y%é…ŒÎ!-FB$®'1ßÞ[ƒU¸e&Çe®e«‡||ž ¼~ó”î äÎm…ð®ë!n8ÔH Þ×`ìû¨J*!ÁG«i"Á.CBûõNƒ).C’sNÃÄi¦÷wl`ts•ÙoÈ£§ø:s™¦c&i$(mfr–7E îÂn¨-ñCÈ?Øø9J§…ÐÁhÛÕ]¹úH· L'_%ùÄF·EÕøÂB¿¯7i7Æj{%¤WWøª€»¦¯8´+¨¡kq`ÅnÚ]³žDzdïß»ŒBiNGÙQZŽÙA'£p³ƒÈw#]—.
endobj
-1786 0 obj <<
+1784 0 obj <<
/Type /Page
-/Contents 1787 0 R
-/Resources 1785 0 R
+/Contents 1785 0 R
+/Resources 1783 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1762 0 R
-/Annots [ 1789 0 R ]
+/Annots [ 1788 0 R 1789 0 R ]
+>> endobj
+1788 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [213.6732 702.9298 286.8984 714.9895]
+/Subtype /Link
+/A << /S /GoTo /D (rrset_ordering) >>
>> endobj
1789 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [209.702 743.8714 283.4678 755.9311]
+/Rect [209.702 622.4676 283.4678 634.5272]
/Subtype /Link
/A << /S /GoTo /D (topology) >>
>> endobj
-1788 0 obj <<
-/D [1786 0 R /XYZ 56.6929 794.5015 null]
+1786 0 obj <<
+/D [1784 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1785 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
+522 0 obj <<
+/D [1784 0 R /XYZ 56.6929 769.5949 null]
+>> endobj
+1787 0 obj <<
+/D [1784 0 R /XYZ 56.6929 751.153 null]
+>> endobj
+1783 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1792 0 obj <<
-/Length 2907
+/Length 2603
/Filter /FlateDecode
>>
stream
-xÚÅ]sã¶ñÝ¿BsOr'Âá›Dòä\ìÔ™Ä×úÔét.y %Úæ„"‘:Ÿ“éï EÙ¾:NæBX,vû ³…ÿØ,U„
-#g‰‘DQ¦f«Í ÝÁÚ÷'ÌÃ,Ð"†úvyòöB$3CŒæz¶¼p¥„¦)›-×çïþzö·åùõé‚+:×ät¡4{yõÎü¼{uqùý?®ÏN9_^¾¿Âéëó‹óëó«wç§ –*û¹ÇpdÃÅåç8úþú짟ήOYþpr¾ìx‰ùeTXF~;ùø ­íN(&U³øA 3†Ï6'R ¢¤a¦<ùpò÷a´ê¶NÉO‰”¨”'älJ€Ê-¸p´<3M˜P
-2¹nòy|¿[绢º³L*¡¢³—ÄH&’ÞçìÑj¾Ù—m±-sûKÏw§,ç«Ú}× ‚d8C´û]•¯q¹¨p%ó³ªyÈw~­ÅµMöˆ7;Éo÷%ε5~Wuõ3¥ünŸ×Þç¸êiBÌz^ßúÍ÷GHX®#F)î¸Þ–ÙÊQ-P펕Òc€)ÄÐlëªÉA­MçKXCaÆ÷Â#\éð[´»ÜÀ¢¶ÂŸ¼¢D%ÜxئÍÚ|“W-¹Íw›¢mžÿ¬-ê
-!Ÿðí¨ìä`/Úí;
-%‰NÔ,a”$)uf„k»»®#» à‹Ínpø«%âC¾ò—âüÚ $¹&B¨t@ÑýwPÏrˆÍRBð>…%4¼0KˆàMìâY5%wmýHâÅÙ)jL8ãìDNR™¤/ñ„œ˜4M§ýà¢Ã¸ˆQ:9Æ ÜµìvW¾ÍWjÁ9‘T»+¼unÍý‘ÕB?}[—eýÐ|âÒ JC;iá1WeÖ4xñAš@Taþ j 1É!ªY‰%àXØÓ«%0.b”Nb☄¸Èþ`Kc•mò)‰
-cæãc‚*’a<ZÚÊü.+qø)+÷yç¤wÄ¥)`Pây¥„˜˜.¹ò‰ê×®Z$D*ë1­ {Qš/dJšŒÒüÿnW ÄfáÞ5¥
-ÄE9;^¥ )$3M¡0ÑþZ¬þ|†€y(Q­09D‰^jI£Z@²q-
-j{R‡÷ÑþÞÁ>ër"­z¦öÊß·’þA‹iCDÂP댲¸¦=¨mÕ¾Í MB¡Ô¶¡·„pWsQïPÊùçl³-1’¿½lØÉbH¿%n¾,4¥ó?܇dpó>7µP—WøuEŽáÓ0;zs_7-ñ”Ðà78…Îñ›)-‹ Ðœ¿ñiÒ043ݲ§ö¶,Œ×l­ç«lßä¡çöw¿°-ãÚv‰K­°…æx´£³£]>ݵñ¼ìÐ
-Ébjï3ßÇ»Ï>yT}Z9¸U¼HXHÝÆ"œ`Ó(¨ëº Þ©XÖ<~šý­¥Öy ë9fû†>O†(Ïø(OÎʇìѻߛg=ïaÎõ¸ÎJŸ¼ÖàvSí±/óô±‹?âÉ#%wž<nϦÌÒ@í._Ü’ÔÖöFíµÀÁv›gŽ–¾¾xœ`®ª}¥÷
-Q)p7˜Œ¼'hT;r¹pHYä¯ T­TòÀ46º¿}T5_…cùzé¿<© nÊ¿F±•ý’AÅn”<Z¤[/aÇ(Dt1¶;"hÂc_ÛØ% KX'¸dN±r¿Š4C bUH”àA3Þƒÿbó%üŸÏÏÇ’œ’ÙŒÙ>x¤Úe{³ßfŒPiŒ@ hìxíeà&Þ^nøì»8šELÄ‹³cJóAß0±]0 á
-¸RÃ:×|õ~9Õ£•T§'±{‘r^h¯‰mÚaV³<Ö9<Lì˜Ä¤Ýù×N5:é e\1ê3—¢Ú·yƒG»H]­GYÂ&û\lö›¨Gø9IB¸-ð(–NÓ£Á XDŽ8$'<§)H †Y×AYÝ+«ÜÄwÚ‹ñÒÝXx„¶@(ÕÛøYVŸ£ï®>|8‡c`°Xwï¼j~›¥/ÇýspÔ!“¨€ëþU:^+Âļ‹©’¤níÓÉ ^å»Ì,\ŽϽÉüD0[£ŠÐÇ-nr¾NxQ3ºûS…€l¢ ;³j’,rÌKYH4{ÚIE@Oü…rRÊ>/*Çæ¤£…‘ܘ'ï€O¸)êÉ ô‰_žðE¶…¡¼á®÷+×çó*oêݯ¸Øî²®"Zá:Ú·a|…{]âcg¶ùêAˆ‡+×wá&tOTï¿
-æ®§Õø9Ïþ(ªn=œä%ª"8ì)m Ä!¦ôΞm¿ô¯‹úD@Ú·¡c°kÂx¢¬p“dLy÷gH‡¤ÿ¯Søendstream
+xÚÅÛrÛÆõ]_ÁñÙ1×{Çnò$;’«L#723Žãˆ„$LA€!@ËJ¦ÿÞsvà%¹J§ã±±\œ={î7˜M(üa£VN+‰¢LM–ë:¹…wïOX€™·@óêíâä͹H&–XÍõdqá2„Ã&‹Õ§é»¿žþ}qv5›sE§šÌæJÓéÛ‹ËüŽõw.Ï/Þÿru:KätqñáÒo_Ÿ]]¾;›Í™Q Îó€áÈó‹¿ùÕû«ÓŸ~:½š}^üxr¶èx‰ùeT #¿|úL'+`ûÇJ„5jr?(aÖòÉúD*A”¢Ý)N>žüÜ!ŒÞº£còSÂex2"@ÉÆ¨,Ñ‚ 'ÀºÚ6E^7³¹¦tú24ÑŠ$J€B#V)î
+¯®ê¬ñú°]eÛ¼¼ Hx —ÄJ&’Üe%œÑjºÞM¾)2ü¥§Û3ÓlY¹çªö ©ß!šÝ¶ÌVþu^ú7iÀ˜–õ}¶ ïÿn>øë€fWg7»Âï5•.«òWJùí.¾¯¹ËüÛ@“Ǭ§ÕM8|w„ô•lŠt騖¨v×J0À–ÇPoª²ÎÀ)5Ó¼;ÔŒp¥ àG´Û-h`^¡ðG$¯(Q ·¶nÒ&[geã¯ÜdÛuÞÔž=ÿi“W¥‡p|³£²“*Ú;
+)'©GcTz:iÝþôòŸã¡A[ÙÚ.ñè<q&gÁ¤¤MÖÝå^¥ÍÆ´™#´%‚HÞå³ÇhÓÓæ¬3º¹R¦ûLŸÜ6Ó†@ÈÅmtü<lŒpjÀR:ùËÙ8ƒòÔ84!U4­°“ú_°f!1&ˆ "éGØEK[‘ݦ…_~I‹]ÖéíqÆ
+}¨rRË (0ÄN0¨fpá’"ÏêÐ9@0TòÏoz-ÍëvºX¼\öÏ/hÚiÊ7pÏù°Á ]·Jm
+з„D ÞÆˆ^lº€ùôl(À)Öm d;A]1<ùmtHk…ŠÖŽ×½ ÜÆ›‹5ŸüPG“ˆ©ñ<Æì˜Ò¼73LpXœòPð€†%ÃXèàj›YŠÑ`Ý€O_áÊ‚]Ii÷³jÝŸ³QB¹¶WÍàˆ÷¬§ûyJ2%AÚ]¯Íúñ¾U•œûà¢Þm6©±Ûñ;®æÂ87ƒz&[µ‘Db7@Œf†_a°@Òvzä=ø58âA'ÂXÍÕy0{€‘óKÿdžO5vŠåâ,ÚC>!ب®ƒM¾Î pÅÕÍCè߇y2.0ý óˆ÷^¡™@õ[ú§-°ÀWûb6ÛCakðsÿ£€ø„º;¬Úl±”\H¿Ü+Ñÿ•£ù†ªíñ˜;:„n´ciÁ“ÄàP$þT¨Â§ÂÅŒAm¼+ƒ:zѬ]Aœ
+
+H¢{ÌšÐõt]M¹[_û_Î8ø5Ø‘rÿ9û¤téÏpW‡À›ÂÕ‡þÀöK‹$/WùÒ}±  ©ß_å5öM+bƒ$Ħ·
+'i‹»¶)/
+kÖåË‹±Ñ¬¤Šx ‰ªÊ6G®!þ¬²ÁY¯fdž‡ƒÔgMw?Ô³cóMÚ›WŒ†’%/wMVû«]Ž.Wƒò`~Í×»u4|ŒÔ,Ðá*fÆéÑDvoqHÎÑd/À†„3C:yrôóÜÿà°÷iláG>C¶ÍT
+ùI’!åÝÿ„8$ý?÷!.Qendstream
endobj
1791 0 obj <<
/Type /Page
@@ -8024,7 +8017,7 @@ endobj
1794 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [353.6787 706.9749 427.332 719.0345]
+/Rect [353.6787 626.0361 427.332 638.0957]
/Subtype /Link
/A << /S /GoTo /D (the_sortlist_statement) >>
>> endobj
@@ -8032,47 +8025,44 @@ endobj
/D [1791 0 R /XYZ 85.0394 794.5015 null]
>> endobj
526 0 obj <<
-/D [1791 0 R /XYZ 85.0394 769.5949 null]
+/D [1791 0 R /XYZ 85.0394 696.6262 null]
>> endobj
1309 0 obj <<
-/D [1791 0 R /XYZ 85.0394 749.9737 null]
+/D [1791 0 R /XYZ 85.0394 669.0349 null]
>> endobj
1795 0 obj <<
-/D [1791 0 R /XYZ 85.0394 624.285 null]
+/D [1791 0 R /XYZ 85.0394 543.3462 null]
>> endobj
1796 0 obj <<
-/D [1791 0 R /XYZ 85.0394 612.3298 null]
+/D [1791 0 R /XYZ 85.0394 531.391 null]
>> endobj
530 0 obj <<
-/D [1791 0 R /XYZ 85.0394 204.3723 null]
+/D [1791 0 R /XYZ 85.0394 129.3358 null]
>> endobj
1797 0 obj <<
-/D [1791 0 R /XYZ 85.0394 179.2767 null]
+/D [1791 0 R /XYZ 85.0394 105.0044 null]
>> endobj
1790 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F53 1318 0 R /F41 1223 0 R /F62 1369 0 R /F63 1372 0 R >>
+/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R /F53 1318 0 R /F62 1369 0 R /F63 1372 0 R >>
/XObject << /Im2 1358 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1800 0 obj <<
-/Length 3249
+/Length 3296
/Filter /FlateDecode
>>
stream
-xÚ½]sÛ6òÝ¿BoGÏ” >IàÑMœœ{­sg»7sÓö¢`‹ŠTHÊŽúëo(R¢ì›fæ’X,‹Å~‚¢ ÿéB¦Iª™^dZ$’P¹(6dñsŸ.¨Ç‰R<ÆúñáâÝGž-t¢S–.G´TB”¢‹‡ÕoQš°ä(èýçÛ7Ÿ~½»ºÌDôpóùö2f’Do~¾ÆÞ§»«_~¹º»Œ©’4zÿ÷«>\ßáTêiüxsû!›3Dï®?^ß]ß¾¿¾üãá§‹ë‡á,ãóRÂíA¾^üöY¬àØ?]„k%/0 Õš-6BòD
-Τº¸¿ø×@p4ë–ÎÊ’„ñ”ͱ‘
-yÞî‰N,
-g½™*ôt,ÓõGÞxõdWu´kƒ(Ko„L$\a^f >ÙZ,%á¸ddœÖ#‡ð¦&òJ%3å › 5"œ(NˆÔ)áUú¿ä\¹´HÍçÄúÑDf0q–®#@ËwÊ)©8pKN•j1ÖšA‚}³„eŠ-¤†ü„*”êíH2…¬ÀÉ+‘œ /Ï—qJ£øË¢“KAT€,g!x{%Üi_4!BkŽH£¾;ëAðîfÃ8Ñb|(O8Sv‡J§á†Cî$øBÚ¬ˆPt·NË2PâͶ2îNo- ÆÖg–ÐÓ'· •0¥Õb,Ïï»"²O5$ ñ!oü>Š™N”Ê KgHó7œ™—‘e™xÝ™ X.Ã+ŸbˆWåªì÷±óþ0:ql"‹ Ùb¼Á©c X3|LnSBŽ ‰ð„û­)Êß a.òe!Ȳƒo ómÙXnæ@r±ƒ8é<Ž_Ö¦F”·÷÷×ï
-¯ó€Øá|¾ë›MÞ—1:¨Œ$ŠÌ'¡§€@m£7QÑ“©MëHÚxèZl<etZÄûehWû:ß”vÛð mx==Rðg!4‡sÕ N¶OÞ¼îF—0àÇã§—pJ3¸Â…\ÇŽHØ17œC…•Ê 3'zÞàà„–eÀgn°»Ïü g¾m}X‚ ÀtjƒÂp¿ÄÇ0+wÏw³µgÈýj,a|ÄÍ“©”Óã´®²¹ ¡!!µÝn¬’°n^°S5õö–æ± ¼Ø±ãu}Œ²ØóÓÇJçvtEbØâô ]6¹Lyt󈳮<
-üÅs©2½‚œË,¤U§Ϲ ›ÃìÒcmŽhî 0Iß ì`¾«òÎ Jð®¨Ï0p»]Qþ®´]Ðy„AÌ«œMù‚ÉK¬Ç õ/=n*80ùÓÍù§+0•as Þ
-JÔÞäm‡Æ˜²„rÛ¢$<MÉ¡^œÜ4D:©F™0cS½FPYÛ,= }ái':l¡ò­,ÑQ8θ/ð-~ƒ-б·‹½±Á;ÔÀE±k^÷Ç›r°“õ v+KdFü‹BUnÊá]"ß4»Ú'¾Š(ª¦øâ_%¾˜—KÍ¢³2:}  &yxâ9—
-&6` %äjݸRÑ¡xPÑýç+„\>Ž‘/¨í¥PK H>Q
-Îò‰©D}…B¼Öç\ø²òE…#›‡çÞŠz¨óý µÇsÞ–ÍοÙkõ$]Ák;Áë£ÎB<?[”By›ÎùëyÜë|7`…kô×ÍÊœ§Mž±×Y°fx˜ºž
-Éì„ —Ä=ZAÐѱ‡ £lúîþùÅE ¶K¿Ö|ƒ\©v¦
- Èö'<tK ̈Ü~ùŒª
-Ü{8“Ää‡íÌ*…‚@Lâßý ÌXÉ¿J^'ösíðÔacqìî¨ò‚ l›ÖÞ~^äp(IØÑçÅ|?ýxЊ!yìÌxj¬V
-Nml'|«„Xñ7_×2¥¸:þ®±4ëü¹tÅç‘ógТj<†Ìíà96Þê9~s„òÇ~Ü{,ákÀú :Å:¯ŸŒÿ¶æ6jÇõÃb¨@ó²r>ú}›×Ý£ÿNJdôk·sµ–+Œ¹8õ4x&ÜVëQÙ¯=S:|ˆ?ôFOÚ…NûDÙÎr×#,XÍÍÉSVé
-oÝ4. §/‡áW"3ž:T÷PÍédÈã¿û‡N‡_‰,áJ±3 2e“˜²¢ÊÔiŒñ¿ˆ:eý¿RÞ¡,endstream
+xÚ½]sÛ6òÝ¿BoGÏ” $ðè&NϽֹ³Ý›¹éõ¦`‹‰THÊŽûëo]ðK”Òig.ž –ÀX,öb«þØJ¦Qª¹^e:‰dÌäªØ]Ä«gûá‚Nè‘Â1Ö÷ï>Šl¥#òtõð4ZKE±Rlõ°þ5H#]Â
+qðþÓíÇ›~¹»ºÌ’àáæÓíeÈe|¼ùé¡î®~þùêî2dJ²àý߯þùp}‡C)­ñýÍíìÑØœXôîúãõÝõíûëËß~¼¸~èÏ2>/‹…=È—‹_‹Wk8öq$´’«Wøˆ#¦5_í.)"™á{¶÷ÿ꺩‹ücqÄEÊÈùˆŠERk¹Ê¤ŽRÁ…càOù΄]·…ƒ%IoÛ¡¢®ºæ’© Þ¶¶GÝÆÒ®>TÂõ¶]¹£Ñ·÷÷×ï~É·å:ïʺÂ%žòr{p«š–ÖÂ/Ú3/6f w!b<lÌx¬ôp¥]Y•¡å>° d,ÒRrwžÝa‡wä(ƒVÄØ¶Ž´nñ#ßï·¥YãGWcû˜S‡£A\( Í*iÉÎnæÙáÖïÔMÞš¶õ3ój‘¬èH’X”1–®2–Fqœ²7Há /ž-iŽÇrŒÊ¿†•;©;Ál{Æ(™ç÷ï±Kã ²i¢¦<\jXqàU¯…å,O‚Êt¯uó»&²ãÿc^àx^­q¬¬
+œ›·{ö¦yª›]^æ;Û£é¾`¨5Í H•[¡íêAa¬2Ï ©/„™Wí«iðZfÜ “4JR)frwÄÎR¥L$À8‹îd…‹àÐ:)È ´(=
+R
+ªsnßéxã‰zÅ2ÒI–Mv&Ÿ¡\äF:¥ƒê°{DeQ°§k´¢šÔ©Å!Ÿ:„0ÖòÌþr()€ÀQRP…6nÀ2m7C µÕ“]Õl×QIýx‰d®~yQ˜}‡Ñ+‹ýqã‘Zb„ˆŽMMØ•FJfŠ\_p2Í"‰Œë¥
+á€cW$÷qÔ§Ë0eI†)޲1î
+ŽÖ²PÈ»SÈùº'¯>ëtRшɅY¾ÝõÞž!§Ù˜»ÃÉ“©œÝ¨“º­ Zbæ#Q ¶c‘´›úm]=#ôhžjO‹ýv´¾!ŒN!ž ÛÑÇ{é²Qe*‚›'uy‘§o±tƒD¯!2óñﱀ !ýæ0úHX³ÍÍÙ» a–«Xo;\0C¿ívEþ;xà´ÐBÏfÂ*«¥ÀÕ«¼ÄD,óu4
+:#ô ©|¸”‡v*’ðÁb\êÍäMK1¡Ó¹.ÊX¤i<$ß}yÁñMƒ§#Sp>•kì*+DRi‡÷¥Nå"nS~Ê …³çCňS ‰SÖ€½]„Æ
+ïP=Å¡Áþª›oê—ƒ¬ñ%¦Y R¶ܕ}A¢¯j±Å¶.>S9â³yµõ¿tÏ£ãÊ `p)|mçT
+ô1¥ç6÷yR»û5 ×²ÛL†*óŠ
+À,',õ^R‘,ȯ*Œä
endobj
1799 0 obj <<
/Type /Page
@@ -8085,7 +8075,7 @@ endobj
1802 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [286.8324 490.0166 335.1613 502.0762]
+/Rect [286.8324 422.4801 335.1613 434.5397]
/Subtype /Link
/A << /S /GoTo /D (dynamic_update) >>
>> endobj
@@ -8098,24 +8088,24 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1806 0 obj <<
-/Length 3880
+/Length 3952
/Filter /FlateDecode
>>
stream
-xÚ¥Zmoã6þž_á°Vù"ê8°Ýf{[\Ó^6=àÐöƒbщneÉkÉÉfýÍp†”äÈ·
-1¤›36ÞŠÊé.Ô²àíÈÉÀA "ðâmMDÛ´8½ÉáÒ6 ØC…‚.©Ñm~m³npâ–ª]EëŒ(Ps¾pÓƒ­öCëHŸ_.?n '] `“ %Òl7ùW?9Ÿ”h’Žî
-Ôõ¤µætÇ~YÛ®Hšqè¸àd ¿·ï~½”*_žÄ1“ë(W&9ccªÓ8¨<,Ÿ†±$ŠM–ž_=PÍ,?…1 ®Ätu1 R, †B«¼=l©N'‚$t]¡°Yº³ÇÊÈÒ7«øÆBÆ|NÞ²8JŸ‹Î×Íj›’ÖGf*ò…^¥BŽñ
-éwÈúe*ŠÓÔœ0:‰é†èÄM„B1,Q ëŹC1lfÃ"s ¥;& [ Â~%†Ñû‚ÁÇ
-|,Ò2†kÒhi<~aqŒ_Xwø……3ø¥Ò(KAyĬ6à &5#üÂÙ ú™à6øíHCÛ‘& qö ¤S8 ãׄÌ!•;SðÅ£X'êÑÆø…Þο”ˆ_â~9rÂ",Žñ GHÂN_“1±÷êô”x˜~@, #ÖŒ…:_ 0Pä>AkømJ»ƒ[<OmAFcwê#W;£ìÙÏè[¦é·ú8à-Ü ÁÁÕ9’*IÇàû‘“÷{#á¢L*xC†1Å"ÜuYõUÛõ`ÚiÒ}á¶‹:±ž®D†f
-°ä†aüI4ˆs_áfžGƒ1Õi4TtÿÀPì‘ÃÚ®àúnÉš€B¢£Déì<j†‹ ($% ÐÁ wv]!΂ÌXx5—™?WFåÃ߯m3¡ì|ňξ
-@ÓIDô†?•Dà-Läé¡Z£÷3èÀ/v ¸Ñƒå#+Vr,Gx2(;öÅÀ(ß7ˆ\™s¹v=A¡«‹GKEÔ”ŽiÑ{ö/ÌÃ!c3á)áÍI*2Yîáj_<ÍJ¦Q®•Ïz <ƒ­~_‘æÆž5Pp`hOEÒ{ן’ÝžYZË(S¹|å”R0„‰7¬ƒ‡‹ôÏ»j ˜õLUû®$WØÙÒïßÛÆî îN8˜ìá”gfò€âÎ3[±‰ÎãH£o8‘íºÝî@ îjϘ{Déà´5'¥ZF•ò°ÝyÎ^2”¥Q‹W=E
-Ÿ²ä8ÝJ°ë“˜ëÞ3“îñc ÎnÑØöÀæ‚…FÝtƒ¡P4ÏT¸‡¡ Iœá)†”JNl¾û¦!)÷·¹WÀ(ž?£õ{ó|Qø¿®9s4i¡Tðóï§æLG~Ab{ëž/9övw>aC,¢XÇj
-Åš eÐFÉøç|YRh·ãäBv”b}œ†%Bg¯#€IBVÄç#`¥ÌÊ®§ÃÑÊ×*õ‡Æú\5å;²!¯‘±NAïú3ŒáAG@()¼‹!rg}¦äþßù8gĭë’ÃËžÓ')†ÇdnCê1¸× d2 \C±{`_Ê4'  5=¸ŽÄ‹âôJ¨¬ôä! F<‘³nðKŠ.é~¼šC±)މI}°P….^¹/>Yf×Eà¯këG{"ç$%ÝBN”jùaCMlt¥¿ä£Ä›m *þRÔ#G‰-'²9'of–Mƒ²y‹ó£t9®
-äSæ`ª39U†Ñu3¦4hÖ_¯Q¢½¦|«Œ¥ˆ1“1’q¬2’q¬R'clɼ_¯z*Ë«~‚¦¥ñ‡6ݵ”9©E㋆H«í®uoŽx.ab4
-&Òq€ßÇáuÉ8’&ã/»2|Q쟬 ]MÉŸ¤>n„}0ðÞ¨Ÿhù“BSh.è·ûV 3䨄¯`iœé&”BBGÓ°K7|(6ë6ø'wpð
-ÙöΜò÷ŒZ׿Ü~xÿކm»+]ˆÜ6>Ó¦uaíô¹lô U}6©‰ÓÔx¿¿Ì(jº¶+ÇîŒR›H[ýšRƒÒ¹HÏëôˆè´J{¢ð]_W¬ì@HÉü—àÒf&ÉÏòˆ^21QìâW© t¼ù8‚ÊÍÇ·XH—ž9jF1ó/8MwUßqkBŠœ’FøK>¿;?ì'„ùñK€¢ç46Äù`cŽÞŠáâ`jLæ“O
-Ì}^ŒßÛêÙXZ,ü$ÿ÷§ÇÃwÙqé,S'^çD‚o#©g
-™OócÎÃ7Ê/Yÿμ˜endstream
+xÚ¥]oܸñÝ¿Âk «ã§DE\.¹¦è%×ÄW ¸»y%Ûj´Òf¥µãüúÎp†\I«uR¼CrH‡óMÉKòÒÙDèÜ\f¹I¬ör³½—w0öó…dœu@Z±~¼¾øáÎ.ó$OUzy};ZË%Â9yy]þ¾zõ·—¿^¿þpµVV¬ÒäjmS±úñí»Ÿ¨'§ŸWïß½yûóo^^efuýöý;êþðúÍë¯ß½z}µ–ÎJ˜¯x…3Þ¼ýÇk‚~þðò—_^~¸úóúﯯãYÆç•BãA>_üþ§¸,áØ¿‰Î½|„†Hdž«Ëí…±:±FëÐÓ\|¼øg\p4ê§.ñÏj—X§²*5b 
+éÕÙêã¶ðÜ6š
+Ñxbtªæ9Ñȃa¼3ö`J˜S†HäÁ<:y#Ç gF§„ƒÁƒMæ˜×é)òqù£Ïä±ÏZLïÎy0à(
+  7þ¶eµ-š§¶,¦u“€4f„>ä Æá(Çö 2éV’ƒB}o”ñrô›1=¸DqN¤J³à~c =°Ï‰aâ(G-¸Â…‡˜™rúÁÎ@L½ž»¬1K/š£q§E÷…?0JÅæL.Œ†Š‹0™9ïŒ è¦yÞŒ±ÎûƒˆEˆ…"¤°©Ö À[
+‡&n!ÕIª´{žˆˆµ@ÅÄ-¤)  cIÀ«$—Ì43¯a˜éó0ŠþRIíˆÙ‡†}uââ4dW©¨ÉYhpwIÀ‡Ñ©"þ7Nuº. Ûƒ(J…æô
+úáâ¿ÖѦao=E*ëIÔòbÁòñK€i¸1´:'
+ˆ‚‘}‹U:Ñ"•1ª{¢e»mÍ4÷Ý–Ïëíbæ™ÆPOÕks_m>!uJ%ºWÝ¡)©×Wp”¯¹#w*î¦2Š"†ª¯ö¼Vú(¦SJáfäÍyBæd™îÅ׉äê-/¿+ Úš‚`N¹šƒ±±ZìϺö‘À²¸»ÔåcÜ[ç9db©*O‰ªj3J²µM¹8îûÈ,Úì r›¤N©gÍ—‚¬ÎY7?ªCЈËo«Â¿âX_qÀvÓÐ:ôz[w–™iðú§‡‰ÀRžßò†·;Z-â°Í{Õ‰wª”5^ít¶ê ^GܧΦz¨ê-ú0T4›½phÇZž3ÒàSbþZ–ŠpÔM×âw‰Rûs½<ÚÄC7¸Õ¡Ú²5ñï†ýsô¬•Aã¦g¬9+.¼¸<;^æ#rE%¡ŽÏPñµF7>Àk5üâ3â¾.ËŠ Õô3~hã {Bœ¼·Ñ’Eïù€àýÖí¦9”œ¢ú
+ˆ3Ï8De`<8ªn¿”wCpÚàñ<o×IUtÓ!ñô¹ß,k9•=+¢ìIa”K'3ù|
+3Æ:ŸÂD,¯MoËëpóŸÕþ‰C,0,ŽÏ©„D1q‰<OfÄZ sf)Õù”Ðð®+R~¹¡À*¨ÀJÕUK؉ ?ec Oãôê
+£ñ9ía{ÃÙþŸ
+\z,¼ä|C9ssØsÒ?„l!è-Úª;°Ñ`¾Ñ0é1
+ÿ7 ×ef‹o!É^ô¯çÖÌFµ~MbC>˜Ð£!àà>Ó'a ÒfV*6”h(‹1r&<ä«’*B»ܬ<ÙºøP 'J…vßö6õ‘P—€0.»a\G[ßÜ4Ú*T­©îáŽõ ^òsprXkŒ;RJiçN2ÔBnªP1¹»Ã7?®qïñ…)¾òsÍdü¼"Åì[)Äìc
+äé–i¤ÀþžcB€iU0Drêº÷¥‰ªâ% Wzþs ^È[9ø%Q—ôX?AÐl‹92 uâ‡âSÅäúˈôõ]óP)Êy^I¿‘g¦Z½½¥.6¾2¨ù¨'GG‚&”ÿÈQ‰Ë³l)EÝtnšž-KÉg¥sÜtó°­Ân_vÍ©™¦²*V b,_o#){©Ñ…Íž‰Ú5sl×µÁT¥1‘ÊXb ‹É® €Ô?Q>¯>¡H<k5ß˜ÆøÌ]½Ž÷…»‡oégªƒ¼ú‹¥:î;Sj„€x¶öß=…ï¶°¯êAŽ FÀWëH‘Æýã5xbK7<ÖtÇ74ð16 (Amp&ÿ|†øP葘º{Œe=q~‰mQ·-ÏDõÐ’™(¿ÚÆ.Ä2 Äg1z=ç”O£É‘'i2ì>­f+gV_i™Î»}ËlÁ_D ¦FÇZž×Ô”¢ÂPwœÁ8QÏ ë™ùDKŸvy ø?¾»¢(¶ÌÁX»ÙãøH]Å‚1’uÂ^wž½R$9°jô²ò½<–Â`McÄc£øãB£2Ïcìñ¢à zÊyŒÍ°@ÛÑüÃÎ3
+»nºòA.oÑü¢%Ôz»ëüûG^*Ý
endobj
1805 0 obj <<
/Type /Page
@@ -8128,7 +8118,7 @@ endobj
1808 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [353.2799 491.604 410.176 503.6636]
+/Rect [353.2799 426.6037 410.176 438.6633]
/Subtype /Link
/A << /S /GoTo /D (zonefile_format) >>
>> endobj
@@ -8140,24 +8130,26 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1812 0 obj <<
-/Length 3047
+/Length 3245
/Filter /FlateDecode
>>
stream
-xÚ­Zmsã¶þî_¡o•gN,^¾4Ÿœ³ïªLâKmµ“i’´DÛœ£IE¤ì¸¿¾»X€iˆ<O;¹ p¹‹g±û`™/üÇ*
-¢T¤‹8 ŸZlŸÎØâÞ}>ãFfe…V®Ô÷›³¿~’ñ" ÒHD‹Í½£+ X’ðÅf÷ë2
-DpØòã—ëOëÏÿ¼¹8Ãåfýåú|%[~ZÿxE­Ï7?ýtqs¾â‰âË¿øysuC¯"£ãûõõ%¤ô8¡ôæêÓÕÍÕõÇ«óß7?œ]m:,.^Î$ùãì×ßÙb°8cLµx xšŠÅÓY¨d B)íHyv{öN¡óVêõg‘ð8PpŸUDRÈÎ<‚àÆÀÇ¢lWEE@›üðœ¨]T÷õá)k‹Ú¼üO]å z
-Þæ[Š<ÕQ,Ôx6œ«@¥2LçMútR3³x« §Žà4ô>µë=«(Ó@ÆI4³Œ •p©—ÇbûHj‹†žM‹•µ°pB°å=ÿ½ÓÑŠ]~ŸË–:´jÝá«SS, Bˆ]c}}í™ ¾ˆCaD¾ë S8Arêç4-³ê•Êú.+u†­¤J‚XòØf1yG5)àÙãÒ6ÔiŽÚi¼Ì|s按HlºeeY¿¬þ8æ‡WÏäÁ²dì®& UÝR#ÛïËW²E®„±–²›:{ ©€”—ë{{­Ô¸Ïó²û‚tTy¾3CÆÒ®h²»r Y»„GÀþ2ކä£í'e”,:…ÃÐ04:'ÉP-ïr€}žŠ¥‡4>Ðø#ìè».¥=ë/B\™dŽjxÀTl£Äj~%£»ü7ÆDUT4žUôÌÿܗŶh©g¿SÄ90r*,W"RAœ¤jèž &ä¸ù0ÃàYKûìÛG¤?ì@œPc[yÕÂ²Ž©Œ1çÑ"
-Ã@™žØzIhåJÞy;)í·üÐ ì¦,ÕŒY#ã±êú!…MXÆrhUïÆ"N:óºÓÚÑ. ±ýX˵)«÷5núë"£†yPÂé¦&Wg•=åž}RÄ"PRZB4ó Nì—1V6LY^,ÚGcåuïÛ2CH™Z–Úü²ñ14¥Õø1P …£<<I—!nôbŽÑã ÝÆ ôó2E4:¦Ær<>[û–Üž•Ôë– ;]}m@ú;«Á¬#T­`0–ÑòvŸo‹ûWÌIÏÖÄñh)Œ !*$%¨`¤²¸!8“d¦ÊÛæM£É
-yk§„å·©<AâþXéZ²ÔÄ|°?O™ìûZW2¡áh4µU˜Ø,¤áÂ<uÙ/¡ˆ¨Z`µE)éñš0aæ`¶§®¶ O¨ ·YÓR‡ü‚æXBfQbÛa~µòÍ ÌMót¡à:P«#¨¦æbK$Bbœô Ã}çÛrd«ÄÒ{ÇlTæ2`!‹‡Àÿ?|6‹¢p†ï© ¾³RN… 3\»7eG¤jòIëVÈc]ŒKr(ÀÖ)*“x¹¾¤gk:®Ã¶åºdÄu Æ]^¹o¶yñLn†¡Œ×´ªÐºu´®uübQjG0®o×—&‰`„˜“sŽÔƒÕ{}°šõŠ ˆTŽJPC·<¥;žšuÆt‹ü©¸eÐõep{uó¯«ßaEÁ"FÃ’Ÿ*y$O»ªüÛ(Õ¬nbŒðo£Ø¨§XT¹!°žp´c |Cîâ†pÄ2y;‚š5L£!;jâf‚¨ž=/aÏð65YÃ3£‡ÃDƒ·–‰°Ó1‘Vlž=‘|ÇDØ%&ÂVÏDa4ÃD#ªæ$ÐJ|šŽB8u1>¦#ý͘xpŒŠÂØ“±3ËX‰éY
-ÁÔmœžIZõMΑH»°-Kúd››5‚  †àCÏ v_ý!Cà ÐÆ°Ž„44ÇãTZ´¡»{ÃpÖШÙ_qHŸVS{0†ïþª?ê÷×8d¶v»Úݳ߄Nhièu çÄÂé?µITxÏÀ¡àâãzûDu.PG˜tYéÓ‰Ë8”àPÁ¢ámpì½ ¾zÚ·¯Ôü÷·Ýý^ëE\I%—z Th/zaȹ\„^NÚQÄ^SÂ(®Äí— Ï*£ìú–žf# K§1PWå+.,W$Xwý âý'tîõÉÐ]èYÒFä©n*¼¦êÊŽ»œžÄ ZýŽFÊzkÅÍGmñ”FNÉ•:E>´Í}T¯¼š£]$){Ç-×U›ª¼ý‹ÑCD`RCb‚jmC·Ë= Š!
-Ž7ºLl }Ôd‰Ë†IO¬ér[?çç|y ž¹CÌšfŸmsó ¹¢=*ê_ÿrùå§‹õµû¶Ù×Uc? Nèth5 ) ìiWÞëúb{,3}îýÐ~tÑ =w}¤’öLd¡!
-è(ÁF¶Û™Y7ôN¸—¯ póé# ö–ëfL.1#†cb©bÝ::Œ¬H¥‰>½H\C}ÏÉP65µŠj[w9u̵K8‚«½'dÐXÿüQK‡, ;pé&bÒhöš‡*ßaª!´„¹šŠê+)"ž°8ôèH6š UÖõþ.Û~5×vƒiá€vÿÓcõµª_ª7_Ýt’@(óK¢¡*!¤Ù³°•µ-ÒutîÁs—CÊ=é£v }©ê
-T¸¤†=䣪4—9»WÈÿ,<{b[/ê2}¨;Šgó!:žB×’‹ ÍË1
-kùBi±[!ýù‚È‘é'»ª¿ƒþ5ÍT®K EŒ„·¥D›[YzæýÖ` ë_ íÒØ+X(·ò‘÷Ã
-d¡2_”EÓR#S&Šæo§~Œ‚¤ 8dÐôÏ®”>ÒÀÞè_<ˆdäè¢ß~`£A‡Cã¤Q+ôÖèðªvü4UC£œëëÕÅååMpqó3^ù_œ{|
-sϔHM
-ö>ðØà\΀w¤&À[©YðSF{ðc£~ð®Q8ð½ ¼L8ÃÌw¤&À[©YðSF{ðc£~ð®Q!Þ"…¥PéLƒw¤&À[©YðSF{ðc£~ð®Q!ßï[eÌgÀ;Rà­Ô,ø)£=ø±Q?xרß>‘ŠÓiè½ÌiàFfö„¹ôÈœ²cN¨wŽT ÅÌZ÷2§™9Àæ:À#s^ÀŽ9ñ¾JNâß1xþ7œÿù-{ßAÍ)“äDºŠ´%fR'aoÊ1‘ùvêÿC»f endstream
+xÚ­ZKsã6¾ûWè¶rÕˆ‹'AfOÎŒ'ëTÆ“µµ©Ô&9Ðm±B‘ŠHÙq~ýv£”(ɮݚ©Í~
+Wyý9Û6Ù,ÿsSWyÕΚâ¯|ßvŽjp¦&¡€5:ª=D e¤Rž ™¯rØ4FŠõnM»û+l˜©×†QÉ—3É’iQÑÐCÑ6n¨]eŽî¥(K7í¸g‹E¾ió¥›_åñÎÊb™µ34}2Kx”¤ ôŒó(Õš²¨žÀ™bžNºLÅ?
+ØÆÃE&†KGdU)(îpçD @Z"\üz?ÂP1€–ÄS-ʬA×ÔFà4Î
+o²LGë²mK-»T8MÝ`Å ÷\ä/4®Üäù1x¥ŠŒè ¹íÓ„wc‰%¤?„š®há}¾pN ¸õb¡
+rÀ £„#‰ˆñˆPbýTÖYI£‹ºrH,ˆ’rÄ ¸~eL<í¶>˜…œÖl[K…õ±%ØûuÌʲ~™ý±Ë·¯#ÊjÉNWÌ+ŠOóvá7M¸Ô‚¢³Í¦|¥¦z˜lW´è’–²…cñ°k‰Â–3tÊzz½M  ·-–˼úflÉ!II“p§cU·Åãë8^ÄF§)#ø® ‚`Z˜a¾Ûæ‹Ý¶Áq6 E8²[ʨp–FR9Xî*™CMvÛã—FV¾d¯Ï,-5(‰†&!Ø7'Ý¢Œù¡s$ï‡ÖÏ„„"Š¥P¼ð$‚€¥¢äæEñék½£F•ÛÒ¤Û‘eÑdeN–
+·)ž³¿Ç ƒ3Gž¼Ö8O½¹ÒØB&_¬òÆûGé…Pä4ÑAzq%²Ö 2B¬O×Ñ!Õñ:º£²«˜w¡ÊMY¤ô±ŽfDj¸©Ž”„hH¥¢Ù$xÛiýhW„a{UïÊ%µ)´65¦nûu‘QÃý(Ú¦ÝÅg•­ó‘ÚE
+SX|‰3î(MEç´˜ÄRá
+UhôÙ:6¤ÂåVhвÛ½n˰Ó՜ж¹6í’´Ü>ÂAOï7ùÐÞEè>
+0 ÙÛ
+'PiĪ@&T•°~ƒ à°Í™«¼yÓ àAwÀ†®SäÇPÁÃp¥N`Hu<
+C8ð@<%ZêMñß꣡'añ“ï=`9§ Ib{ ÛJ é n Ó¹®›ÖN«¢
+h­‹Hü×qpÕÓ¬qWI¤5\™Çz‡'q¡ åVåqžòÖ«„å*–Hñ¸«ìù dîz
+­û€ëõ_,QýÐíýÍ'D0BÈÉ9·5uj¨¦¶œ©Üg‘HûtGîà–§tÞå©Ûg8·ˆŸš{½ùÝ_ßýt}7~ ´e[ˆµÈøXÉ##8 ™÷”<–ÝÑêÆ ‡¿ bãb‘åœÖ€õ„£á -w„#hµc Ș{÷©ÕLTÃoKØóÌDð›ÑO€DƒYDØéÈ2v¿=}‡DØ%$ÂVD*>ƒD{w~ØX1ÇáHÁ‰›ñ}8²ßìŽQQh|1i-§µœ©Kœ#JzSÎq«D—ðÉ"ÃCíh #¨!øpeûXý!`ò>l=!Ut^PöÖª0{ÃpÖШ˯8„ù‡Ür<¿Úúüjóµ»êj÷‘|ƒp:U£ 8rbU—©¢¢½qøô±_o©Î…
+,%‚ íâlô ¥XìÊÌž{?t§[ôÆÂênTÒŸ‰¼¡©Ž(´ ¬—`#[.Ö Í‰àB î>¤aHk‰“îÆäTñTÇÄTioëŽÇˆY±N{z‘¸‡öžE¹§<lÕ¢ÜÙ‹?£üµ‹Ú3ÍèÞ4š'Ë qóãsL-ë²D˜Ksˆ½K£|È5OU¾ÄPCÓr*ªß‰ñ;%„ úa¯Hvœ UÖõæ![üî®íjá@µ<úé®ú½ª_ªƒ/£NàâÖA•Ò¿ãM{Û",QÇÆžÀWW¹µ=úa·À_([ŠÔ°‡ØâX•î2gùJùŸEƒgOlÛ­ôúj‰!ß<»qáÉu=¸J^PØË
+‹å áỏšîp²Ì¡ú£GW ‡KêÖZ„Hx[êŒhý5»¿ÒíSƒ3Ù¾âú­ñW°Pn士?÷»·ØmIDå>)‹¦ž¤öd9G(šo޽r,‹Oÿ‡“Êži 9Õb¼èQ 2åžPcï¨Åi¡žèPèð®R~šê¡P΢›ÛÙÕ§OwÑÕÝøpuÔp8B¤Gž"{»{¢f;¢³VŸØ½'qÜæ@¢-IÄÛ͆C‰IÌ9»ª†{ª³–ŸÚ›¾/tÜöP(7ï3Îx±aÉãªÆ{ª³ÆŸÚ¿/tÜøP(bÄ{ŒgÀD+qÆø€ê„ñžê¬ñ§„öÆï 7>
+ ñãᥤ9ƒrÑqÓ=Ñ9ËOIì ß—8jw(Q°w™ëHÂÑæ¤Õ=Íq£Í9›OˆëLÞ7jq Nvï1X⻞Ó€u/Õÿóÿ5ì׊2IŽø­0x‰ LœRhN¯6Y$d,FTÿ/µ"^}endstream
endobj
1811 0 obj <<
/Type /Page
@@ -8170,7 +8162,7 @@ endobj
1815 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [55.6967 706.497 116.59 718.5566]
+/Rect [55.6967 630.9447 117.601 643.0044]
/Subtype /Link
/A << /S /GoTo /D (view_statement_grammar) >>
>> endobj
@@ -8178,30 +8170,35 @@ endobj
/D [1811 0 R /XYZ 56.6929 794.5015 null]
>> endobj
534 0 obj <<
-/D [1811 0 R /XYZ 56.6929 769.5949 null]
+/D [1811 0 R /XYZ 56.6929 701.8294 null]
>> endobj
1814 0 obj <<
-/D [1811 0 R /XYZ 56.6929 752.2918 null]
+/D [1811 0 R /XYZ 56.6929 676.5981 null]
>> endobj
538 0 obj <<
-/D [1811 0 R /XYZ 56.6929 436.1631 null]
+/D [1811 0 R /XYZ 56.6929 343.2503 null]
>> endobj
1816 0 obj <<
-/D [1811 0 R /XYZ 56.6929 408.2731 null]
+/D [1811 0 R /XYZ 56.6929 315.5681 null]
>> endobj
1810 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F14 968 0 R >>
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F48 1243 0 R /F14 968 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1820 0 obj <<
-/Length 1319
+/Length 1318
/Filter /FlateDecode
>>
stream
-xÚ¥šKsGF÷üŠY‚N¿K,!W,Û¯l¯âJ6ñ"«üý4F=|4wîuWÊ¥2’s8S-æÎ fÒõŸ™rPÚ?¥âUÐ&L|_éé¯ú»ç•ye¶ Ú"õæ´úåÉ¥©¨mœN¶²Ò9›éôíóúá×݇Óþ¸ÙÚ ×Qm¶!êõ›ÃËãå'åòßÃû—§Ãó§ãn“üútxÿrùñqÿ´?î_ö›­ÉÁÔçÛ×-,<áéðÛþòèù¸{÷nwÜ|=½]íOs öíÎ!ÿ¬>ÕÓ·šýv¥•+9LÿÖo´2¥Øéûʧ‚w®ýäïÕï«óá·?žJí¿™Ù:¯r¬Ûà÷r(*:ëæ½l<ìåRfW uÞË_´I}ªÑ¾>ɧ ·wg©{­µ 5º>öñVk“2ɪÃËv÷øxT»ã‡M±ëÝâN÷F¹¨‹“ß(9Ÿ³B~¯¥óQkóX¾uõï¢D!(&¿Qr>g…ü^Kç£Ö–±üêÊ&K‹(&¿Qr>g…ü^Kç£Öé¡ü˜c}ˆÂâGj9¦Ä|ÖzͿӒù7ZgÆòcV6á
-ù½–ÎGm²Cù¾>Q˜z
-ñ½–®Gm›÷¼/J›â„| ˜üFÉùœò{-Ú46ïùzr˜¼pÀˆ‰…ävF é“.g›ô¼±Ê§(\ã@ŠIo”ÜÎY!¾×Òõ¨Mc“^ýRVaÙ#µœ?Sb>k½æßiÉüm›ô\ý3)Î ×8bò%çsVÈïµt>jÓØ¤çBRñ¼=>(&¿Qr>g…ü^Kç£6Mzu¯)WŒp°GŠÉo”œÏY!¿×Òù¨Íc“ž³•7EZü@1ù’ó9+ä÷Z:µylÒsÚªì³p‰)&¿Qr>g…ü^Kç£6Í{6{R?RËù3%æ³Ökþ–Ì¿Ñæ±yÏÆ¨œÂă“ß(9Ÿ³B~¯¥óQ›Çæ=ës}à…Å“ß(9Ÿ³B~¯¥óQ›Ç¦>k‹JÑ —8bò%çsVÈïµt>jóØÔgQ¾iñÅä7JÎç¬ßké|Ôæ±©¯ž#)kµp‰©åü™óYë5ÿNKæßhóØÔgê©q©ûNÈŠÉo”œÏY!¿×Òù¨-cSŸ QÅ”„ H1ù’ó9+ä÷Z:µelê3.+¯£´øbò%çsVÈïµt>jËØÔgl]-N8îÄÄ¿Br;£„ôÎI—ƒ³ŒÍ{F•£“–=PLz£ävÎ
-ñ½–®Gm›÷êtŠ®s
+xÚ¥šKsGF÷üŠY‚›~?–XB
+®X¶ ^Ù^Å•lâEVùûiŒzøhzîuWÊ¥2B‡9œ©®™;zR埞’'e³›bvä•öÓßWjú«üíy¥_™m…¶H½9­~y²qÊ”ƒ ÓéOØV"•’žNß>¯~Ý}8í›­ñjh³õA­ß^/ÏäËï_žÏŸŽ»MtëÓáýËåéãþiÜ¿<ì7[¼.¯7¯[XxÁÓá·ýåÑóq÷îÝî¸ùzz»ÚŸæìÕÊžCþY}þª¦o%ûíJ‘ÍÉOÿ–_éœÍô}å¼%שּׂÏü½ú}õqÞ üõÇK{ûof¶ÖQ
+eü^ö™‚5vÞËÚÁ^Îåa²¥ Rç½üE騦jåÊ‹\œp{wÖ™º×Z­ÊcnµÆŽ†/ÛÝãã‘vÇ›lÖ»Åî4Ù ²“_)9Ÿ³B~«íç£Öرü«”ƒ“_)9Ÿ³B~«íç£Ö¸±üâJ:I‹(&¿Rr>g…üVÛÏG­ñCù!…rÂâGj9¦Ä|ÖzÍ¿Óvóo´&Œå‡D&zდ_)9Ÿ³B~«íç£Öı|¯H)',~¤˜üJÉùœò[m?µ&å[MÑš$äÅäWJÎç¬ßjûù¨5y,_[rAš®bò+%çsVÈoµý|ÔZ5”ïs9Tf¥ù|¤–ógJÌg­×ü;m7ÿF[VÂP~ ”u?RL~¥ä|Î
+ù­¶ŸZ]Žƒ:ôûDÅå„~ ˜þJÉýœú[m¿µá|é ~>ß•Kƒ¤Õ“_)9Ÿ³B~«íç£6ø±üóE‚*.>(&¿Rr>g…üVÛÏGmcùÊR²VZü@1ù•’ó9+ä·Ú~>jCÊwåÂØÐr|…ÄvNyMoÝrtžz#áeG™¬„e“^)¹³B|«í×£6ä±|—Iél…| ˜üJÉùœò[m?µQå— ):áŒÿ
+ÉíŒÒg¿œQ…kC.áRLz¥ävÎ
+ñ­¶_Úh†òËå…eÔrþL‰ù¬õš§íæßh£Ëž²µÂ=¤˜üJÉùœò[m?µqlÒ³>R8oϊɯ”œÏY!¿ÕöóQÇ&½²×Èf-œì‘bò+%çsVÈoµý|ÔÆ±IÏšr¨ÔYZü@1ù•’ó9+ä·Ú~>jãØ¤g•¡ä’p)&¿Rr>g…üVÛÏGm›÷Lräc?RËù3%æ³Ökþ¶›£cóž)—EVyaâAŠÉ¯”œÏY!¿ÕöóQ›Ææ=ãRyà„Å“_)9Ÿ³B~«íç£6M}ÆdŠÁ
+·8bò+%çsVÈoµý|Ô¦±©ÏhM.kiñÅäWJÎç¬ßjûù¨McS_¹F"c”p‹©åü™óYë5ÿNÛͿѦ±©O—)1—}'äÅäWJÎç¬ßjûù¨McSŸöBŒÂ¤˜üJÉùœò[m?µilêÓ6‘SAZü@1ù•’ó9+ä·Ú~>jÓØÔ§M9QZá¼ÿ
+ÉíŒÒg¿œilÞÓJS
+VZö@1é•’Û9+Ä·Ú~=jÓØ¼WN>á>@ËñÛ9å5½uvËÑ™Ç&½à©\%IãW†ûÿóá/úðüáÂÇ÷³0ëÁÛtþòZç-”MÙ{óÿ¿G7#Ù´ôM«%“c}S—aµ}ç¾Ñ|2±óÖÿƒÑb+endstream
endobj
1819 0 obj <<
/Type /Page
@@ -8218,20 +8215,15 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1824 0 obj <<
-/Length 1362
+/Length 1342
/Filter /FlateDecode
>>
stream
-xÚ¥šMsÛ6@ïú<J¡ØÅ÷Q±åT™ÆqUõ”æÔL{i=õïŒ b»Âd<ž8Ö Ÿ‰KR0éü“óÊ'LSHV9 núóÛFOçÇÞoàÙhO©w—ÍOO&LI%~ºüE¶•ަË×Ï[¯PíòôöáÓóÓéýïçÃ.Øíåôéy·G§·O§_ޝ?½?>~<œw{ˆ¶?^.ÇóëCþmïNϯ¿I¯¬lô||:žÏÇݗˇÍñ²´Ð^Ðfùwóù‹ž¾æì­LŠnú/ÿE+H §oëŒrÖ˜ò›6¿m~]6HýþO{ûoaöƪ˜ýÂ^vIyƒfÙË`É^ô¹ Pó^þCChSCÞDœèæn¤º•"iåRr×Òò.Ôêô¼?<>žÕáü²K¸=¬îr Êx„xB1ñ…ã9io¥ýx*Ík|(M~M$/ÄЉ/”ÏIk|+íÇSiJcñ:/ûÙÅÇЉ/”ÏIk|+íÇSé\>Rï£Ï¯~/¬{J­×/”TÏJ—úi·þJ
-Æê}Tœp`¡S_(±ž“ÖúVÚ¯§RÐ8Vï´ÒÚ
-+ŸRL}¡ÄzNZë[i¿žJós¬Þ€
-£PO(¦¾Pb='­õ­´_O¥ íX=e½4RQŠ©/”XÏIk}+í×S)h7TïR擾žRëõ %Õ³Ò¥þFÚ­¿’‚öcõY–
-+ŸRL}¡ÄzNZë[i¿žJAMzÎEåm°B=¡˜úB‰õœ´Ö·Ò~=•‚õœÍ§ÁK+ŸPL}¡ÄzNZë[i¿žJAÍzç#¤ B=¡˜úB‰õœ´Ö·Ò~=•ŒÍz.!£1ÒÊ'S_(±ž“ÖúVÚ¯§R€±YÏF§œ†­·HJçŒKykì†S#ÀØ”g}P˜´°æ)Å”JL礵½•öã©`lʳ6) Éõ„bê %ÖsÒZßJûõT
-06åY£U°Âž@Lû$¦3ÆZÞûáÄ06ßÙü±Á 4(Å”JL礵½•öã©`l¾3É*ÔNXó”Z¯_(©ž•.õ7Òný•`l¾3Á©dŒpEƒRL}¡ÄzNZë[i¿žJÆæ;ã‚òóùzB1õ…ë9i­o¥ýz*›ïò^S&p§S_(±ž“ÖúVÚ¯§RÀ±ùÎ`žˆ I+ŸPL}¡ÄzNZë[i¿žJÇæ;£QE…+”bê %ÖsÒZßJûõT
-86åa´Ê… ¬|J­×/”TÏJ—úi·þJ
-86å¡÷Êh' :”bê %ÖsÒZßJûõT
-86å¡J+¬|J1õ…ë9i­o¥ýz*›õ“
-ÞW4(ÅÔJ¬ç¤µ¾•öë©plÖÃ|lH+ŸPL}¡ÄzNZë[i¿žJÇf½|^¤µpEƒRëõ %Õ³Ò¥þFÚ­¿’t«RÞkB7¡˜îB‰Ýœ´v·Ò~7•Îÿëw—Ï?„ \Í S^(±œ“ÖòVÚ/§RtùÞ§ûëMTV{i½Š©/”XÏIk}+í×S)ªùC+xý<á0G ¦ý Óc-oŒýpbœßá\nS¼?]ƒŠÞHËžPL|¡ÄzNZó[i¿ŸJç‹x:Ÿá›»û£É›AáŠÖë $ÅsÆ¥½5vÓ©Sôûþ[õ*ŸI7ê ÃݦÿÎÈ7éWuäý•nåý¢ÓêǾN/þŽ‹jþ [çiçoPÉ9üñÏÔ‘ë‡A™¸öé ù.,OjÞož9ä×ñØyêÿå°eendstream
+xÚ¥šMsÛ6@ïú<J¡ØÅ÷Q±eW™FITõ”æÔL{i=õï´ b»Át2™ØÖ3Ÿ‰KR0éü&ç•O˜¦¬rÜôÇ÷žþÊ=oàÙhO©w×ÍOO&LI%~ºþI¶•ަë·/[¯PíòôöáãùéôüÛå° v{=}<ïöèôöéôËñõ«çËáÇÃe·‡è`ûðóáÓõxy}È¿mãÝéüøú“ôúÏÊF/ǧãåx~8î¾^ßoŽ×¥…ö‚6sÈ?›/_õô-g¿ßheRtÓ¿ù­ %œ¾o¬3ÊYcÊOþÞüºù¼l<úò«½ý·0{cUÌ~a/»¤¼A³ìe°d/Èú\P¨y/ÿ®!´©!o"NtswÒÝK‰4‚r)¹[i¼ µ:÷‡ÇÇ‹:\>ín«»Ü‚2^'!žPL|¡ÄxNZã[i?žJ“‹G“_É ñ„bâ %ÆsÒßJûñTúòâˆ×yÙÏ.>žPL|¡ÄxNZã[i?žJ“Š÷Ñç¿–=¥ÖãJŠg¥Kü´#M~,ÞG…Á ‡J1ñ…ã9io¥ýx*Ma,Þi¥µ–=¥˜øB‰ñœ´Æ·Ò~<•æƒúP¼ F!žPL|¡ÄxNZã[i?žJS‹£¬—¦)J1ñ…ã9io¥ýx*ËGêÝü™4ðõ”Z¯_(©ž•.õwÒný4ŒÕgY‚(,|J1õ…ë9i­o¥ýz*=6ä9•·Á
+õ„bê %ÖsÒZßJûõTšÏÆêm> ^Zù„bê %ÖsÒZßJûõT
+zlÌs8¯„zB1õ…ë9i­o¥ýz*=6ç¹¼V¢1ÒÊ'S_(±ž“ÖúVÚ¯§RÐcƒžN9/Œ:Zo/”ΗòÖØ §FÐc3žõAaÒš§S^(1“ÖöVÚ§RÐcCžµIiHF¨'S_(±ž“ÖúVÚ¯§RÐcSž5Z+è Ä´¿Ab:c¬å±NŒ
+06ßÌ洛O(¦¾Pb='­õ­´_O¥
+ÞW4(ÅÔJ¬ç¤µ¾•öë©plÖÃ<ÚÒÊ'S_(±ž“ÖúVÚ¯§RÀ±Y/Ÿ)D-\Ñ ÔzýBIõ¬t©¿“vëo¤€c³«RÞwB=¡˜úB‰õœ´Ö·Ò~=•ŽÍz0‚p]ƒRL}¡ÄzNZë[i¿žJÇf=0QYí¥•O(¦¾Pb='­õ­´_O¥€c³ÞË1Â<1ío˜Îkycì‡#àØ”7ßé‰ÞHkžPLy¡ÄtNZÛ[i?žJ¼;šüë(\Ð Ðzu¤hθ4·Æn25Îÿß?~o^åó!éÎ|a¸ûò/Œ|W~UGîÉßèVîÈ/:tùݧkjþZç)ä¿ ’søÿ? G.ÿeâÚçj0ä·§h°<©¹'âÝ3­Ðxì<õÿ
endobj
1823 0 obj <<
/Type /Page
@@ -8248,17 +8240,21 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1828 0 obj <<
-/Length 2656
+/Length 2586
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ¸ñÝ¿Bs/¥f"„ @lŸœØN}ÓsRÇ>\˜3©ˆ”}¾_ß],@‚%%Ídæ´\,°ØÅ~øø,„|¦bŠLÎÒL²8äñ¬X_„³¯°öá‚[š…#ZøTï.ÞÞˆt–±,‰’ÙÃÊ;K±P)>{Xþ¼ÿç姇ëûù"ŠÃ aóEœ„Á»Û»+ÂdôóþãÝÍí‡ÿÜ_ÎS<Ü~¼#ôýõÍõýõÝûëù‚«˜ÃþÈžpdÃÍí¿® úpùÛo—÷ó?~½¸~èuñõå¡@E¾]üþG8[‚Ú¿^„Ld*ž½ÀGÈx–E³õ…Œ‹¥S]|¾øw ·j¶NÙ¯§YÉTgœ¶rœ±DD¢·2—ž•3
-t'ÛEßgƒhc~ÆÑ X¢ó8ÁÒÓç´úÏ+vƒš~ŸÖ!Ø' ŵ=ªz;ªóŠŸâêi¾ÏvZuŸ­b×? }¢B&“,=­½Ou\ûžê¬ö'¹Ú°Ô~Ä6û1í“%ivÆå}ªÚ;ªóÚŸâêi¿ÏvZ{Ÿíåi/C¦”’g´÷¨Nhï¨ÎkŠ«§ý>Ûií}¶ïŽj?[Dpn˜$À!c)@fÃõzÓ½B"çqðWSëAäÛ9W&|«».¬ìWÞI÷dÏ¥~!¨ÒϺ²ÔKÂ5ueÏ7ao3lm-ÝŠ–Š*o-êöŽpU¶ÈIzB⸗5 AEβ8ŽŒŠVeý¤·egNI°2{š5-6›®lê––Ê!AËÞ€ìkuCÈå `x°àÄl»ÑEù% #ÇÛ˜‘šQX3‚ê"Œƒ¼?˧yÖÛm¹ÜÓ‘¼žŽjlÐ>ª²í,zE¿ž¬ðe|Cðk³# Èë-}ô ÈfM7œ@PÞíZ…P TȲY5[ôŸùzSé¿£6oo$÷<;å, ~eœ­0 cÞ±MÂ0ø…ýò:b‹ñÊœq‹FÈ«jæ_g»¶¬¿žt@‚å’HŒOb›×_µ… ¼³º$„ó•7xwéÀ¦}jv•¥É+¢É—¯Äö)¶ÌhÎl-Âùã5’o <iqŸˆ%É€À®ÕàRI$‚Ûš0›m^te¡é«{*íˆSoíF*þÖxá<zë·ˆ(òÖB/e÷DÐ:¯_ ú¶±0Úh@Kísˆu¢à-ëÕ6o»í\»¢Ûõ–rx—¶h,ú ¿ Î×ÚâÊš~áèÖíÙÌyºÅøJEð¹!<IìoZuÜöÜBm^lMe^Mñ¢}ùj­—Æ5ðŒfJ¹G*K½©šW•æuÄ@|ÊëÚ<¨~X¡E_m\5¹Ý’¿äç½iþ®cf„%«;–"e"Y¢2õ]X–Årºƒíôg©ŒŽŸEûB8Ë‚nÇø¨!7 Åçñ¨1èm É9d)WØ=ro eÉ;ïňx{L:e±ˆ@rCñb…Ãë \ï[ΔD“aÊD›ü<û6ƒ>Cf™ "6º60ˆ··ëhvÕ€F3O)wðÂ?Ù(•Œ2”²m"#èÓã”2ùƒ¹ëT[MΙ›|«ëްpÍø,Ïó’y¬
-Vs@QèdCœ¨à¯¹ÉÝÚ’õ/P™—xá³N‹yUàR¹ý´°«—zKà‘0ï%U±¿WÑ»
-W ˆ;xèQ ‰§OjÇaÃ#N‹ÄMã½×w<_€ë[ƒ
-<êBD4AÄ¿þð„q5_ðšìËå²Ä±Bnýë³.:ÿ¢”OØ×6áPA¥š¤¡W 
-cŸÚ'¤„gÃÅŽ3t‚•eÛI¾ ª*À•d<RÂÖí¹Ù>!K9+…G•Èìù¦åEjâRÖÞZ±¬$´`šT@•ë õWÏV•ÎQØÆ{ÓÔ­]‚JlEïèÂÎ߸da•üèæ ó,4ÍfH£ú?Ú&CïÈTð_z!a mîÑ߆
-óáŽÂÞ†YAÊ–@ζÐõ8Ðˡӑ¹=s0‹a÷Ôl»E±ë&çPX‰F©Í5
+xÚ½ZÝsÛ¸÷_¡¹—R3‚‚Û''–SßôœÔv§—{ )*æŒD*"e×÷×wHP¢H§™éx-v÷‡Å~Pb3
+l¦$¡" gqI™œeÛ :ûsŸ.˜åY8¦…Ïõááâýµˆg I"ÍÖÞ^ŠP¥Øìaõ{ðñï—_–wó—4ˆÈ|!#|¸¹½Â‘?>~¾½¾ùô¯»Ëy7Ÿoqøny½¼[Þ~\ÎLIë¹ÝáÌ‚ë›,‘útwùÛo—wó?~½X>´¶øö2*´!ß/~ÿƒÎV`ö¯”ˆDÉÙ <PÂ’„϶¡D†B¸‘ÍÅýÅ?Û ½Y³t¿–g!B¢"Øce™HpÑ¢ÌBåH%ÀÇ¥QþJY|l*£!,
+㙿߉ԖëT,çžXF£¾XN4&œÜÜ..¯®îÈåÝ—yƒ˳¨‡ŒD2Qö{\#ö;®iûǤzö‹¶ßË(%’êípA"‹ <®×4cR=ŽÅCà‹eL€p*ÞŽ
+îp¹²ÂÁU§Œ:õ`©£õ.ÏŠ¯”r'ÛÀˆpÀÂ(,Œ`º 2xÐçgåTÏù~_¬ŽlÄ·¦¶³6EÝØá5~zºÂ“QðÒ¯Õ‰,-{¼øÐ
+@̪¦Û©´9b´i5´AV̺Ú#‘ÿ'Ýî6ù_µ5ï¯Cæyv ©\ÀMà0Äctl«ÌÂÀ»@±¥Á/ä—¿á½Ë±ÚãFƒDÖÔÄ?ÎD‡º(¿á8Ú V+d1> û´ü–[:ÓbfW8à|å>»¸S?U‡åI7È“®^QìSúl…áìYÛç?NVO¿G÷´Õë„ QMê\*â"¸)qd·O³¦Èr|jž
+»îižî탾©ú³Ô®‰GÃoýVdim©—¢yBj›–¯H}?€ÚN™ÇÜX€«Ü— OmBÇ.Êõ>­›ý\‡¬9´3ˆK{ > _Q¦ÛÜŽ%~ÂÖµ[³›³ ÍòZ߯X÷Ž£Æþ¢5 ã–§–ªÓlonqV¤›%^r_¿2ÏWÆ5ôÕÐ=Ú«²Êw›êÕÝJõE|JËÒTÿZiD_í½ªR»$}Ií˜ÓüUç`„)k9—"Eí;UÑ›^„1N’D†Ã/ÂÀz%ˆ„vðü^¸ŽÂ^–t+ú[u¹Y@ EúI²Å’3…6\±™€!ŽÖ‡·^ÄÄ“N‰47Ÿá®0ˆ¾pc‚å12°gÈ@5!$‰ÂÐT¦³ï3è6Â$ÈäÑÆÖ3ðþfËgWX4óŒr/üQQ/óó˜P Ü
+žç’z¬
+Ös«“t÷DÎMîÎ-[Á€ËDâ9×a'ÓÍ —ú€É­Ç‰C¹Ê÷Hž ]­¦JúkÆöŠO}+4£¾ÈQ\·†(—T°Ph
+SÖÉ
+ý~yÂ':¦—°LGdUÙèRàÄ%Âù„ì–éTxÏ! Œsz$½õ}Ðt¨qê˜a  [ÀTØ:„¦]¨²ñ0<r=e¢›êBObQ¥ºž Hç!´bÎ!Àñyp/äý˜C|åОêÿþ7 ŒNù„x\#.à¸:06/t¼Þä'ŽGÐV‡á¸-×€=WPŒ(%ã¾˲kÄ\ÿÔëÎR‡–;(×Üéì™âë+4×éaÓtèÛñÔ/ÑÎó`3è­DÂå8Ø>×y°[®3=Þ Ø’ðFã:´\JôÁ¦p=YÒ×âªVèn`U<«ƒ)#à¹íîY‡/ _óð5/J»÷Þ€µ=¸Y+\i ¸îÝ¡;ö±‡X2-bP7–Iÿšõß,ÀñmAb×öíÅ6ÇÚþèº×A‚ŽdÅõ×ç,"LÍŒB{}¹Zú…Bjýë>ÏTP%ŸfOº£;m¿)nŸØ7’¦4¡Ôj»Ýìvz2ƒíLïéš²®%ßÓN `*$Œ+a+öÔ,Ð…C¶ŠãIJÙýM³«*QJQ6ùÞªe5Á ÓžÂP±ÝagõlMi‡m¹wUYÛ)¨ÁÖGöÍ ¡…‚¾wrÐsf9–ËæõŒjõ
+µÍ»mý¥Aø|'/‰þ‰É@ȤmËüÓ¿vé:ó0&B©3‰NЈ(ñÁ*e¾¶ÇšK¡ˆT<Pý¿ÖØendstream
endobj
1827 0 obj <<
/Type /Page
@@ -8271,10 +8267,10 @@ endobj
/D [1827 0 R /XYZ 85.0394 794.5015 null]
>> endobj
542 0 obj <<
-/D [1827 0 R /XYZ 85.0394 201.4944 null]
+/D [1827 0 R /XYZ 85.0394 141.3493 null]
>> endobj
1286 0 obj <<
-/D [1827 0 R /XYZ 85.0394 173.9833 null]
+/D [1827 0 R /XYZ 85.0394 116.509 null]
>> endobj
1826 0 obj <<
/Font << /F37 1030 0 R /F14 968 0 R /F22 965 0 R /F41 1223 0 R /F62 1369 0 R /F21 942 0 R >>
@@ -8282,119 +8278,116 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1832 0 obj <<
-/Length 4090
+/Length 4009
/Filter /FlateDecode
>>
stream
-xÚ­[[wã¶~÷¯Ð[äs,w’½gãMÝ&›ÔqÚ‡&”D[ìR¤"R–Ý_ß
-g"Ëäd}¡bF+Zª‹ï/þ özÝÔQù Τ²rD€RŽ ÐdÌ*©œ
-ƒÓ²ÌdB~ÂaY#ü¨u±XåuÙ¢Ž%)ˆU/ɦó‚PQæ•“,Ôæ/Ô{Þˆ„³TgC&fEDFx±–i®Õ«^D0m¹yÕ‹¥@…‘ÞvijÓFà9¯Ú†Z6MÛ–È«ußÓ¦X”/¾‘$7™)ž1“+Ðn³ÁÓFëÊuydäQoÍѹ;›nüļg½s?z׎KUÁŒR6Zþ<ó’mËÿÉ5QŒ+“D‰Ð^$„6›©¡ƒ¸î»$¥{.IÅ(B=^‚мÊ[ßDõuY“}êiñ€Jü
-GâœþêBÂÍSjñúòqÔÈú°# ï ‡ ÜŽY}Æ„54¼À@'
-öD$K¥3!²ìºa‰Ì|˜’ªñÀ©)4ZNõáœÛê%؀ᣡŽb‘UÑÕô—Ípžxõ7M•¡j÷îO}ßb±sÑî¬Îj“0ŒT¯ªloÐy ƒÎ\†®)c‰L__=:]~p.J³„gÃõ 6pÕKxA%_7;—±2…Ru¸-C™bèãKGaSQ6 ~w­'è²
-YE;
-çí<tw‰D, nÔÔË6cßsH¶ æ‘ZøÆ:l€sÅÖ%¾ÇòW/§‰%K’`` A}ü%UH’xsÅÆÞý?ͦßcÎ7G€NÓA˜TÑ…1±!¡Rÿ¥¼].ƒ)Ñ
-?DÊ«2o±@M5%H`i´ª’Ì™er˜Ô[ØÍíó NãI¾ÝÍÛ®ìvtg´|úó®p—L—´bºt· Ë)¦X¿#oÇ”«÷ñ9äýqÖYC²pj|'ÂeÎ(€áL %ú
-àQ€„%&ËÎ)
-*ƒƒOí'ia¦ÓQ8׆@Y,©Á¸S½LÀ‰é¨ìˆ 7{[I㓹8¤”qn±UãP»PÁb±Õ«”ЋĊG2ší™u98˜>÷ò“¶iŽóÓùùuÎAËñô©–d™Ú߰ဎ°æ“©î…!~]~,öe[\Ñœòxnp^PôJ\èÜS<˜ÈaýÃaX„ Œ ‡ÿE!VŸq)Z2£¬þU.EÆÔYOàý•Ć{‚%ÿòG,'>½½ÅsŽïîž¿âÉ¥ía°ô£›qc.áFP°E³ö±ÂzaÁØŠbRƒÚ‹aŸr(ž_°_°<ŸÒ®Flm† 2Ÿûýžù}â@?,q ‹ÏÏÏ㸾O’N½Ûmë ¹O¶EÁ ¤æRráBÆ{Y†yÞÉFS¸îj§Í ~,µ‡÷±qÜ(
-DŠoÈWA¯äÀÚ@¾î¾ô–|ñ…f$ 1%Dzv«d¡åï©í‘â[ÕìVØ£­n¶ÅCù<öeG
-áÁµåñBÔn0øºÐ÷škÊ`>ìª?¿3¦ ‰f
-ü:*¾‡óð:€_õp5§ïðûèžš¸vHÍ]LzŽ ®û_8rüàtéIRn)
- Zªf‡…SqéE€{ÔŸuÔ>÷”\Zס‡±mÖô•„ȸg k ìn‹·"÷€î (¨Ãí ›Ü} ç¦>åeåžÅ©ÚÑïªë6øüóM³íòŠå‹5#ûøù¢¤wÙâaý×rùg¡ÀÍkÃÜo–’s£_·¶ýé8<Ytþ%
-ù›ÿ àð7.i*Ç_1á*Ìt
-D<SȪOmýß œ²þÔ¡áendstream
+xÚ­[IwãÆ¾ëWèê½a§w
+j^U³TèHf‹]G˼Ƃ›•ëMX»ùÌSXo [6Åö©Ù®ózYÐä¶„­>×å¤Ô@±«7J©(˜‘nvÏk•-ÞäÛ®\îª| ã&öT<áŠO¸“ÀLjgû—ùL]ÔVh˨!_¢ð°!o¹¥æú®{i¶e—G:Àh±ý\l©¶Àã¨ïMÍ«u/yGm/9ӆͨiUTÅsŽBæ®}Ù½PW4ÚÙësµ+؆ZÑ@‹ÎhÄ}Ð={<ªv 7/º¼ä!¬7ÈÒk¹Þ­©2:lœçštŸ¨‰çä#+p¤;pd.¨Œ•ØÛu¨•À=˜˜˜ØE•œ?m›õÉ<mh™JZá­É`>Nƒ½ž“VZx•¥<¤n¦È8á\‡ Ž™Ì±Ò.›5l~U¬pFž’|²(F¹ÜmipR,¡
+2ËÙ'Àh°Âsæ´M œ%¼t~i£Æˆý" c ¡GA]˜[’Úµ¦åíæË`© :èðwdñPï}VÊ:hÁ±áxâX#›†Â_?þ@â9Wy—O*çwÁ.Œ5ü\6»–*«²ÍWŸÁØóçØ=%$e¤È¬6o
+Iƒ;—zpŒH’-J%ÿÒYý¼+Ù-Qëz·|á™PA~n]@ý@=dï(3\Ö]±e×éI+Þ\/‹¹òF¨äôp_ví;ôÌɬDíY¸ÆÅè[§ïÊ‹ašàÔº`÷PÎëõFþ±J»[oX)¡¡d´ù@£ß|˜
+{X€&VCÁêë²&ó´ƒðO]D©$Ž
+MlkƒEÉùÊë9φ0•,KGС33kóuAM'<gˆ'+¦²à1ŸÂ¥KA»‘þn¹,Š¢µ8muZ^˜ÚžsZ£*Ú–}ñc{o{ßyÛ-L™7[ÔÄsµ©P¶ÇdxÏÕx$=ò#7*¡+ŽÂ¸ÔZ
+*ì×±žqzKµœ~ÚuN•ÌêÝzAÄ›†_à
+x?d«JˆYø¥kG ·DUþ% ÃVE\…/Câû—€Ã„&ãZ'€ñÔ´"„ÁR€0!j1„ e
+)w•wZ ³S±_ƒ»–Ê$¿Î]‹³‡g­<h6ŒsÙ¥œ šGQJBM¤$úQ“0g¸ºÒR@èU_^¾5±þëh'À;Ø1÷SVŸ å]Ä 8ð ädß›cœ{û’2ðäÇc§¯…š^IVÅS¾«X¿>çýEºl§ÎÚCÌQ6û5@ïÒ9;ræsŒúÂ9ÇQƒs^V`æúyî °±³#÷‰
+VÝjFÂ-Î{¥þ8#Á78„°ë-³!‡UÙvS7'2m"(
+ÍG4 }¼ìÝͪ¨sVo8ë9Ó$\ÎaS•œ¤º6lüKÈ{â&½¤©˜·KåXÿ¡þþãí·wT¤ç4|[è›Îuƒ®§ñn‰/£€òªÌ[,PSMùXí©…™' s‡<¨óÀÅO*»EÛ•ÝŽ®Œ^Î~ÞáŽéû%½š­Â%ÃK
+&žwÄL™zÌ1ë³.š#ûW"\æ‚8)¬2j¨
+àK–Q6FeÉïöÈ=Åùä¹GÆ$D W¾á&l¢ÿ@™à[,zƒ¯Õé˜ÅKAà ãÜ3æ2Xï~ fTïœôIâ'fÖÓ#Ĺ8‡éôèLÊÍ ¯¡Uúª@Oñ ùš ­ÖFò ÷¤·ä‹Ï3w$£Ò‹[µ «ÿHmï)¾±UëR@”þd«›mñT¾N}Õ‘Â [Îxð¡•B|ZúÌ5¥/ŸvÕWÑïLéBb@Õ(ÄOÅáÌÔ€½TÃ-“]óïGh=Åù䄱9 °.Cý°p†«éw å]œ;Ͷ¬Šðå#e‰žkθ­âwDJ
+çí8(\—†ôþœ~Eª@Äm>°ÂJ
endobj
1831 0 obj <<
/Type /Page
/Contents 1832 0 R
/Resources 1830 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1836 0 R
-/Annots [ 1835 0 R ]
->> endobj
-1835 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[0 1 1]
-/Rect [63.4454 74.7158 382.2499 85.5301]
-/Subtype/Link/A<</Type/Action/S/URI/URI(http://portal.acm.org/citation.cfm?id=1315245.1315298)>>
+/Parent 1835 0 R
>> endobj
1833 0 obj <<
/D [1831 0 R /XYZ 56.6929 794.5015 null]
>> endobj
546 0 obj <<
-/D [1831 0 R /XYZ 56.6929 405.0017 null]
+/D [1831 0 R /XYZ 56.6929 354.284 null]
>> endobj
1834 0 obj <<
-/D [1831 0 R /XYZ 56.6929 376.7704 null]
+/D [1831 0 R /XYZ 56.6929 326.6224 null]
>> endobj
1830 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R /F11 1343 0 R >>
+/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1839 0 obj <<
-/Length 3581
+1838 0 obj <<
+/Length 3420
/Filter /FlateDecode
>>
stream
-xÚ¥ZÝsÛ8Ï_‘Ù—SfbUI}lŸœ6ÙËÎ6ͦ¹ÉÍ~<È6mk*K^KŽ“ÞÜÿ~
-Ô©ÉPZÞT;Ø‘L=ó’m¶…¹„š
-½|IÜ×jODu(±%ð2ª/ªM–—D—ÙÆ,ˆü- KòKÓ`•‡•‹V"Ϙ—Ù•YÁBLs¨v_©÷¾65±3žãöþ™%mw"ñÌoA¾ þA !üTëÐîH¤¡€%ƒw¡º$kÑ.€Øä«uCd½5ó|ùJ•fmˆXVEQòrEÕÝEâí S½»Q¢§Nœ‘˜ÚY¦|de}0»I¶XìLm·÷*úëzO¬ÿRa^æfÛL–»j3ñ]O“ß¹!ïÇö<˜½È³ã¹ß–t„+?PŠäÞ DX+`i^œÉ,·i²ùW³£ZaššùTÌŒˆ™µXu¨]לÅìàj@ ~ÅÔ~;\
-Âr@Ý5Ï_ñª}íá ûN ójƒm—cªl¡Ðí†þ£&æÇ»/ ³{Æ6¤Õ¾X8ÀàBšý®d!}v½­Êš¥ùWã°—ÿ |¹Õô÷à“!§C|‰q³’,òš¨G´W$:D×fÞäU‰Â“Äû’—ssÔÛîf‘5UQÝÔž×½f^QGâýè •@Ƴ3wƃ™±·ÉšùÚÔGÓÚ‹ÇÞ°È·=xËÐÇMrÈ‹‚¨sòUI{0 ¿ §ÇÏhå0fÌ
-mioZ³@²ÎÀB¨ñܵ‚ÅGÌu´`X ·ä´†Ä> õ 3 -vÑ)ù¨ZLA;Á°±:Ÿ†‡íˆ»¨ìIFƒU,q“}åÉjC˜ÖïaÓ´SÖ†ÃA·BixÉs‚=ßÊ@dw*‘AbŒÌ¾M°nÁív}È8äxJˆÙŠ4ùD=‹|éj–— ˜‡‘ }ÜQÆn›}Í‚·;˜v—#Œ°:c9lÜ7˜eˆÖ§Ä.&ămù<Ã,õ¸>œø÷{ÓÒ‘Ew•˜²*h)2;õʷ΂¦öÖÕÁ<÷ì±Ýá½1cñ ˆÎ “ˆùþ„6Ä'‹ýíñä6@1#6ìm‘žñY¬ ÎØS!Á97âìø>
-[r§´äàƒíÊl S>çìM1¶¼ÇíŨ±‘ѹ t8WìS¬ë9¸ÇlE'Ó©JJ…ÊY±dôÐÛ—…õÈ£ B£Ý3TÀ‚,¾Þ÷ùmïuö̬’§s óu•ÏâlÆ“v$ˆÀÕ¾lî\dâzãî‹»öŠéPÏô£ñöC·I [[»Ûƒà¼•íš|¾|[ý§§Si³Ií´
-»ˆÄ­>q¨[ËŒáùut[¼ôŒ%¨ø ýH”ŒãØ€ÿ¸W? n÷È⇔_ª’¹xß{¸ÿ….uöµÍv¹`w£I;¤Ä"&0ÑcLJäæÅ~a8fóMnÓw¥Ì.\y½¡6›²a­ö‡C ýû ‹\RumìMݸÙ
-tÝ— } •ÃhA58ùdì\ÔÛlƒÛw(ÔÊ›àxŠ&@´„ºÕfMílKÍÞ@{¸3ò«Z1 µ}ñ!Šsl ×
-k2t“NµäÎ6ñÄ vp÷ïŸ?MoïÐ.—=Qöb;©K l¾kÁtìEzn‘gî q÷ù#=ªâÓvçFð)`&»ó?Ÿ­,k²QÛáU!ÄmÂ+Òß
-ß¸Ê ¸r%B*¾žíx¦ Or
-õX†ƒ˜û;·Œ0C—µIÊó-Ë5e›ŠÂ^¯UQͲ‚ûmù*µ1Žà‚=€£s£2æÞdp×’œg@iª·);® (’ z7D8–ÛE”Aþ//3è%R$Ø0Hü"Œzx¨ñ©q±6.§¢”C*0àHïr{ˆð‰±Úm8xàkä’ºføê/=%^ª¨µ¦r_»+”•Zs³=iûHÒìò¹kYWÖCBwšœa„%
-ÃŒ»ÑB/û$8ê‹™%®r‚]Bõ b?‘¡C×rD\ì«8ävûê
-ËlÞˆRÚOá’Â]W#¢
-÷b¤ËœºxÁ 5kѦh°.ÉîŒûŒmbe …sæ©ÌsþíÍWH˜h40ÐeX%øè]YÝý5'*&¥*, œ)mÅÞÈUló@¬Û÷(‡ï?Šñ©îã+&UyÂ)ü!êäá\ÅíèÆ­uz÷å ?yòº­Á¢U{Yµ§Ñ±Ù”Š)¤¦ÑQz Œîà…©î¹lhjVl˜N£‘t…°3ŽÜ5 D9|
-w%'dN+ëJp? zRŲ§QžïJQ‹u‚_Ä‘X˜y¾Éx1ÏY±g¾õ9að–÷-Lf'•Ú«óUi¿‡Íí
+xÚ¥Zësã¶ÿî¿Â“/¡g,š$ÀW®±ïìÔiOw±Ýi'I?P$qL‘ŠHYçtú¿w_ H‰N2mn&\,€°ûÛ`ùçüóÏ“ÐõTªÏãT»¡ç‡çùúÌ;_Bß·g¾Œ™ØA“þ¨›§³«;Ÿ§nÑùÓ¢'+q½$ñÏŸæ?:ïÿrýùéöáb„ž¹“0òœ›û鿤üyÿizwÿíß®/bí<Ýš2ûáöîöávúþöbâ'¡ó‘ðÆ„»û¿Ý2õíÃõÇ×ÿzúîìö©;Kÿ¼¾§ð ?Ÿýø/ï|ÇþîÌsUš„ç{hx®Ÿ¦ÁùúL‡Ê µR–Sž=ž}ß ìõÒÔ1ý…*qÃ$ˆGc
+ S7R"n¶~âÔ_^/|ßw.át¾v²²¬÷Eµ„–§ve¬m³üÙl¹ÕÖü]š–ÇeynšfØ™UÜWT­ÙVYÉܪž‹ÈzÁý¯õNÄ–uÞ 3í¾Þ>‹ÄU&ëäõ®œW_·ÌŸ‰$óVÀ³LÐ( ™‰ï»itLXº|3§žlÓ̹UÃé¶û¢1`ù
+–I4˜…=¡q;¨¥’"ÞË®¨™­7¥AŸÒS,˜ Hg¢Þ£oh€·çõ:+*¦«l
+žÌ2DŠ)±Í ±ïÀ±Ê"§{™í±c¤ôïæ­#‹o+1—UÐSf|u5ÌmŠ–¡:«zo^zvÄîpÈ^™˜‰ø9dg‚ED¾»
+Ð3ñÅò y…SÒ‰«—OÄÀMiÕÆÀ(vìÈS§­+vì„· ß•)7L‹Â‘¬—V2b0팪`˜ê¥hйå/FŒýÆ¥ƒ_IL!-69„ÇlÉžiÕ_®…*D±lôÀÙU%?Á
+{ÈCá (ãÞ£ü
+F%¡óýôúãí%€hâ©sɧÃ6•‹8lúø'¹Ì&‡¥FÂýIbWø7I>¿#²ËÎ^¹‹ÍH$F™@×|uœŒ´l eÚ«O+Ñ‹çhç½ìÑÓ㛜Ö%Tξc¥Õü增o–ú­×Á~D'œ'›)ì‹¶t:ä )¨E‹T ÁEöáÁ¸ÿÈØ¥!QÖP¸”~P˼¿¼ù
+ &¾ ë½kÒ-ÐÏS1+U[`aMI º‘ë˜
+AlÓû|‡ï?Zð©ã#&7eÁkø©“‡sw³[»×ëéã?ðg²o
+Ã#v"µ§©=ŽÍ¦uÌ)5ŽêK`/HÃ^Ȇ®Îñ°Ai:FêY"Á8²×4eñLÁûpä`©f7³åÃøñø 9égãÀõtœÚd¼ùeRlFâ’J]?Œlä:R !¥|Ѻ¬"QƒrÈ&ÊâDZ1Å
+bš Ž¹ä³´ÈP\¹Œt@‚ÐüŒ?ð}ûÇÜ,-ù=ô¡×Á0ü,Y¹ú¤HJû÷±ÔFùûI×)¶¨Æg¹­j(ΣÔfÍÖ,Š/¥©–íʽÑîro÷ÆwßÔ·Ÿ„®‚R¯Ë
endobj
-1838 0 obj <<
+1837 0 obj <<
/Type /Page
-/Contents 1839 0 R
-/Resources 1837 0 R
+/Contents 1838 0 R
+/Resources 1836 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1836 0 R
+/Parent 1835 0 R
+/Annots [ 1840 0 R ]
>> endobj
1840 0 obj <<
-/D [1838 0 R /XYZ 85.0394 794.5015 null]
+/Type /Annot
+/Border[0 0 0]/H/I/C[0 1 1]
+/Rect [91.7919 733.1616 410.5963 743.9759]
+/Subtype/Link/A<</Type/Action/S/URI/URI(http://portal.acm.org/citation.cfm?id=1315245.1315298)>>
+>> endobj
+1839 0 obj <<
+/D [1837 0 R /XYZ 85.0394 794.5015 null]
>> endobj
550 0 obj <<
-/D [1838 0 R /XYZ 85.0394 363.2766 null]
+/D [1837 0 R /XYZ 85.0394 297.003 null]
>> endobj
1841 0 obj <<
-/D [1838 0 R /XYZ 85.0394 338.265 null]
+/D [1837 0 R /XYZ 85.0394 270.5256 null]
>> endobj
-1837 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F41 1223 0 R /F21 942 0 R /F14 968 0 R /F48 1243 0 R >>
+1836 0 obj <<
+/Font << /F37 1030 0 R /F22 965 0 R /F11 1343 0 R /F41 1223 0 R /F21 942 0 R /F14 968 0 R /F48 1243 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1844 0 obj <<
-/Length 3670
+/Length 3932
/Filter /FlateDecode
>>
stream
-xÚ¥]sÛ6òÝ¿Âo'w*”
-(“ë÷ïîÞÿú0»J£ÉÓÝÇû«©ŠƒÉ»»Ÿo©õþaöáÃìáj*³XN®ÿ9ûôtû@] Óøñîþ† 9ýŒ}¸}wûp{}{õÇÓO·Ov-îzeâBþ¼øíàrËþé"ažÅ—oð™çêrsÅ¡ˆ£04õÅãÅ/– Ó«‡zå'¡ÂDy¨”O€q.’P…Z€÷7÷³ ¢0Ê'í¾Z.Ë}C_›¢¯¨¹-6%Cëø‡vUï«¶h«+9y- Ú”ûWKà¥Þ3ÝUI?åþkGò{h‚` ‚ìŠý•Ì&å¶u8ÙÑ@œFƒÈaÝS)EÇJ/‚i©\!-•E“kZ6õ,°Á̱é 0½<Ð~ã$œn  «ýp+èóiU2EFåv^/Ê÷4ôÛžõ¦¨¶¥ Kùá]”9:ŠêÔ­×µß}›êõN ¼¿ì†¾®Á^¤´tôÜÖ ª×ꛞH³­ùÅ«­úÓ©j]UÝFI šƒ¡ $Tû¹ûÚÉ×xàË4 !‹M¤iJbCPd„X3ú)¶ þ†?ÔzxhÊ–É’IÁ0+JÍzU´ÔšLî¹dÀªœ.<ƒ%Ži}&ÔùR“]½®æh§*dÙÍký»h0R¨Ô,úeÃHkØeÍ
-EŽñŠh°¾ õé¾'팡õ&l²Vwõ¶áÎ
-'ÆŽôh¤Oë55ÀêŒq<ijµoÜÐÊ2›ÚŠ V;–µÕÉ ñÌ#XÒ—'óü•H}cŽ¿Ð‚@áI[C9/zy°nî±öó”™[œ7•mÉ]ÅÜ̸Ú. ½µ!ʦ֒H½e®vÝéÐ*A~Q@qð º.}FÞ…αJOC
-Š-A‹y[Õ[‚ýÄA QbO]àl&âHÇ„d’Á–VE6ts÷8ûñçÛ_lŠE’D9#§˜H¢¿9àÊ‘ñsIùªnÊ­ ŸxºÊƒ‰õD«íÄJO»e»ÃN“TöeCÎjCâ†Z]X‡šµM|´Ñó¥^¯ë7$ÆPͼÜÿ},GH”AÈÓ9‘‹¥·t9¢L%¸xâЕüÈtÈ4z2S§™¤c¦=ýeRÄy÷™^¯êº)2ø‚ŽMÐ#ËoÚæ T´¬‰Ý®,Hå,1Pû¦îzåÔxVÊmMŒj$P`QzF#Ö ¬³9Å´ÓÈ©_#.ÓO$†òÛ`ò §DÎÖ;‘ûm7Á>Т9n׉½ Ž:V£R޳HDI–²‹5.e‹uNÊ'™Z)1õJ¹Çt¶©µËËÄ‘žŒ­¬0Ë„¨µs•ÝÚV¥Íš T[»äô ·CȰAn`Û,ÆÁÔŒà‡í‚H$aØ£o¯}»€ M ±q-Å‘P2ËÏhÉÁ:¡%ƒuVK§˜vZ2õkÉej´äØ|½3ïïés7🣨¦?Þªv5è_¯Ò'¦‚ë˸°ÃXäP¶ƒuBØ묰O1í„=dê¶Ë”…-s79Æ/’•„¢KË
-A¶alYq¡ïu¹]¶+Ôd6®.4]¯´6PsiÓamø¡c!Ø:–C&ìËã.Æ<œòÅ$ȑȃ$éDÿ^é,/I¹nM2ž}=‡‘”ïA§.n¡¯ ÏA
- :…îzÚbßêÜ ׄÂ]õZWßÐaJèÓ©3€® (õäÊÈËD ž+m—ÿOò˜äPî·ÔXé*Æok†<—:UJò~€
-M9ýG|Lÿ ­KµðkjÎA&‡µ^<~R9Ÿð±
-kõ,Ì­KYµA_§3>ëÀä;N'¯:Ñ¡ç%Éaœ€ºšƒ. ŸdŠˆÅ¾Ò8 #m¡OoQ´!Pñ
-ŸJ͉ÑýÇ›ÙäjOøßÌcUQ*TĽs#L'$ZH5_QR¦Â0õù4•͉ӂAå‹3‹üoÖ/f÷×½ú‡a b¨3æä`0'ƒuÖœN1íÌiÈÔoN.Ó‘ˆj°J~®çÅšîLi<*ÌEGª§BP5ôKÚà|¿”Ãv`xtÁƒ?:ó”tC©Åž1ôÒÑrr·pö(ü€t‹¡öu÷¶y3õƒ÷/§I&¶ðž…ýB(?'dÁñqÂxÏæΖCãxØ Œ:wÒa„ò\Ìùu`s•`h¥‚€3¦†žˆ:áIm¨¥‹
-ÈCðÌâÊ]K8㎺QÐóÂJ+-ìÝ~Ï4<É£‰)2Ø=5)0 ¬Ê¥ùL:ÆqˆƒOªw ÁeNjT½[s½£¥ölÀ¥iî Ss³†ñŠ.UT*'»Ã~WãÝS±£ TÌШԣ#R°»-vúTb¹´§ÓGG¦oXÿòF¼dU•Û¿1§^ÁOÊÐìm/ÚÝhTI$Â<:]¬ñ(h±ÎEÁ“Lm<bê‚=¦þ(¨ NfÊ$ðŸ´>>>ýóáWßídYIbm Æ!»ísA€gF(èÇø`n·t„ö|¨yfª"e¹sY8aH¡Ò,éÉðÜ%ò,Ëü/¦–¢GàîÜ¢ *I£¾ÄwEÓ´«ýAøw„&½ã…ëÒ™EɉfR¤©LÇ3} ~9­À/æœnñàwx‹ä\TCC+~ùÎ.ÈmA MZm,¹võg&¼ª×eCUX(É3¬ ƒ÷ó’×w7<1ÞŸã
-gY«0]Iã.ÄÅ6ýëì¥ÐE±ÅœJCC\èB¿vž¥ºFÃ-¨ß¶7csmÉEt™ˆHÏ ,²å^kÞæøD£¼t3ðDêO:'dŸ¢sUr)åÄ&õæD.õ\Yë·!¶ö×éyö꘨÷}ú¥J0çòÌtjzûj±(ÎqP ŸÏÅ©H•ŠûlÍ¡2 "F›¯é¨›™I£cÈÁ"{ïºÜ{óI#‘E6
+xÚ¥]sã6î=¿"oçt6¬H}wæÜ$Û¦ÓÍn³éåæÚ>(²bkÖ–\KN6ûë @вi{n®;]S 
+Îg°ì_ÎæY|þ
+y®ÎWgQŠ8
+CYž}>ûÍtzõP¯üd T˜(
+ÓÁY¬7ÕsýuY5ó~!3ñ˜ŠÇD<Æâ1¡xTâQ
+=ýK;r´ŒÍúÛe½&F#†±È’8f> Ö(Q“›¢\€hI: ‚ÉcöNñîQ¸îè· Þ¶©èå‚¿ÏívC]³z^÷\T_‹YUÖ«bI€f»zªoO4u3',™ÐïSÝwÌ-˜­–µ^½Y/žvøŽu…l]!ÛAh,2ÚQ£îÒÊÖ_yÔG¦Z{ Çöø`q4yÚŽH½T›®šùfyìÝc›Óå-,ždôóJv<ëð3𬶏-±ã©¢_gò¨¾–ÕšÛ¯‹ª¡eÛtU¹íë÷­Ò[g›á iY”¸2]÷ ‡IšŠŒ‹oß„Ç:U*d2NÑËvÞn™/Ø©<OE¤;?k·OËŠ|mÙ.aEÔþ3ˆƒ~€¿Ñ’e Žð 80ZÚ‹€ev‚F?,˜K]ßW‚Ðf¥¶ÑDÀšÀßþµª˜·¤˜
+Ò!$cˆ¤€|µF Á‹…Öx’Ãbác-N­Y¾˜T¤"öZ—2ÁÝ ¾”ŒW»prQ½qn˜òÑÔå8? Òœg¾ªXâå¬%KÙM%S¡ÿH»>uV=Û%s|)–[†éŽ8K ÒMAcÿ;ﺹa½ÙÐ×-—ÛYe€k³ò—jÉó#•›¼+K„ÌÂdä²Lba¼)4y·­1Ȥæ„Õ*J§ÄfèŒôØ€OÙäÚ-úWnhdVíøFvÇ ¬Ë!~#PoEl<ñ6%Ë“yz3 ³g¸ &œ‚ª²ØêåA̸¾ûŒp„؈˜§ÌÜâ¼B´ê+î*J3cÊ Kç™ð‹öˆ(«VK* 9Mu[¢†
+È/
+(”^D!Q­K:ë2£(52
+•™JÍQùîãõK"º.â¿>SAÌèH%ZH].¸j"ÃÔç¶ñö¡êŽ“vR~œwñ¯é8_šÞ]}üýîáŸò°G€ü8RÙ‰ßÅ:bNë¤9c:˜Ó.S¿9¹Lx„ Pƒ„Uòk[b3ë¢/üWâi©‘
+i@ÝÑï^1Ýv {T\Às%Õè©Ø0†#-'Ô»9©ðcÛF¨}ÝÝt¯&qr½ÿùeA1в±…ýF(TȤªK°ÎGG>lê<!4”KäN"ê›z=sq˜„+œ25܉T•Õ“Z¹uVLÑKÓ9C…éVÝùB£® ‰4Ù`Óu'aÄY[”šAcg‚nKU­”ê£0ä;Q}-Vëe%Êv…—Xýí §fÒÑ0
+zž™Ce¥…½ áLÓòߘ‚€Ÿ{}”Ic@X9[÷…>´cŸ”é¥IðÒ`·BšÚC‘KÓÔ¿R[ÕÅ7㩜¬·›u{y}Sš§ ÔÌШԳR° ;}›ÏíµÜÞ]Ñ+&þˆç¬ªªù“1uF&Eyš­4¢Ýô‚*Jd'^÷¸X‡½ Å:å2µ^p©× Ž˜ú½ 
+
+ýhOÓktâ(ö½*GZílhâ;>ô”2¾”UYÆ©@ìì Óõ¥û†Òk–±{§j¯ÉµÜ¥/÷†:¶â™é+UHlùO摘óŒ(?ê!‹Ïc‡QsæÊ×ÜIuî¡Þikæòw·h·KF¡R*µ¹’ú޾žÌ+®§3L™ü›¼#[¦ÇDÛÌÏ'šý,@æý
+e™%{37ÿPbêÿBü¦åendstream
endobj
1843 0 obj <<
/Type /Page
/Contents 1844 0 R
/Resources 1842 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1836 0 R
+/Parent 1835 0 R
>> endobj
1845 0 obj <<
/D [1843 0 R /XYZ 56.6929 794.5015 null]
@@ -8404,35 +8397,25 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1848 0 obj <<
-/Length 2629
+/Length 2540
/Filter /FlateDecode
>>
stream
-xÚ¥kÛ6òûþ
-£¸¼EÍÔ;Asö‘l/Y§».phÓ²E¯…È’#ÉûÈ¡ÿýf8#Y²µIî.A¢á3œ7‡´Iø«F¡'¤¹£ r…'•7ZnNäèæÞœ(^3iMº«^ÏO^\:Á(‘¯ýÑ|Õá
-†j4OþŸ½~˜_ÜœN´'Ǿ8x¾¿¾º>'LDŸ³ÙõåÕ›ßn¦§;ž_Í® }sqyqsq}vq:Q¡§€^3‡g.¯Þ]ôæfúþýôæôÏù/'óV—®¾J:¨Èç“?þ”£ÔþåD
-'
-½Ñ ¤PQ¤G›×s„ç:NƒÉNnO~mvf-éýÚ5Ç¡<¾ne/¾£ÖÊÊíX90t@ƒfZù£TÁ¡ªJº@ä£.¿£]ÛUÇÛjÕÙVI€]¿¿íõì|zéñÿ›¢
-—÷¦,ÓÄT䢇´^T¯ –!zÿ›n[déòéYGºJÈÀù–I;«¾bÒfÕ·Múµ];&=ÜvؤÝmÏ®§ï9„“b§ù€UƒH(W7V]Æ»ª1iœeœ9~ïYÏÂå©
-ÇfYØoÂ$uÁ¤ËšžHW­s˜þÁ}ÔÚ]æñÆt¥Eäàfõ ÛH]¢Báy‘Õà5ðwÜ`œ˜U¼ËêŸ`(
-
-ÇõQ²´È+Zcòe‘˜„`Z‘ÓØj@Üjg·Û,mHŠ<ãÝPqœþ¼3ej˜}½ŽkfQ}¢ù¨`1¬Ñ®¬@B}”ž¼9ÿYÁW‘†4S"ò<rçÜòÓ:l”ÃA
-éÅj—Ž|
-ÔÑi^A"lœ'„,vuKÈ›Ë3B¨H…-³bÇ$L€˜(Ï€ë9%dˆÉLmŽó
-²©âtjüP첄 ±)ÒŠ –E^Çï’E€Eè>Îv†ùy׉ÍcmÊÂ䉶¹O!Šªt‘Û,P­mJÊç‚¿6” ÜïÃ}ŸÈÓ¬]])Ç Ü)Š:)í:!›ÐmJãÚ6Yí MVXFQ‡èšùž_ßÒÑ@îV5³!+"dR´ À„yÁ“–åíÅÙúSÇI\cÁq„¹~>ûYb®#Æ#“ÀÌÃÚä„É Â0O W]XØêŒ+âû8Íbë œ[5|{¢ZöTmaÊæ7|éä´²¤w)¸˜Ð”ˆG©Q÷õ(<‡÷©¶àÆ4§ÂÈ‹êÛÄ%å³h+lEC`Á,ÚŠ†Ê_TKb¨T!”2aL*UQ©¢©R9"Ûš³(Müi’äUe–TnÚ½ródªú¥ OÑÒ?ª_‘?¾²–Ž8¼ZÆ•€Ö¡ÇÇlÐ h;Ø;7Ú´B¶ô-H <1E±¢/Å Åó5³hܾ_ÇnYTžÜ¢ |βB=‡ÓîP³¬«ƒÖkÕ6
-dÿD§½(±[Ym¬ÊÓ1+ŒÒšW7ƨv¡ `Óž
-î:½¡¹l!óo¶™ÍB=;6éÝšƒÄµÑœr,r~X¸ªãÚlL^“ên×TÚÞ »;—\'G}89þM*¶ý°ˆ“,­ê^Ñø¯W–ð§ºdû‰¾¼\Äÿi$b‰ë§-Ïlâ
-št•f á_hu»x˜`«ÜèžÃ¯þúïíÞúŽ5¥®m@Í~ üÍ&(î¬Þ¥Ò?N'Ê aúv6¥uïfgÓwog·sAc¬©ÉdsW
-Ž%±ÄpÅ)<2s_ó×ã9G&èµípoå:Ðýêþ9ƒ}ŠÒý©27«É:®]Ífü•.vã¬Äê‚W(â ^²·âÀÆÃ’A-°ÉhÔ®ØÅ«»"_rÕG xÈZ¤:¸Ä.ù#] 4|[Uhj/Bërý¯óÙûéÕuOWå¶X=Ö®nY[ûFJèÐÞDà:ž%ûÑNy"
-ÔÁƒ¡Û‘bv>Od˜¨(Ú·±Ù‘‚¾'ˆúLY %þcºá~ƒÒ$)ø§f»²bú<@Ú8ô“?0Sø9€²Ãnê¥~ùR};b’¢ñÝȃ§³ÙÀ‡éííüíÍoû8˜ýSkÄÙìý¿‹O}+øž.·_&Û¸ªêu¹k¦+Üžu=—†<ÈÝä;àätÕì[ùQoеþñ¼8Þ®UÜ~úÏé3°Ÿã÷c4ô„æu¿Îî9å;aéx"ô=¯k„«Ï–†&«ã¡(°=·šK§-ùç½ÒÁ‹@ó¸4ÛºEs¼DH(8`FCºíY¤)éîh¡ŽIå÷GX/.®oÏ÷%Ó¡„ýš©†jPÕÜ<¯êºUø=Z¹¡øòEh™Ëô¨W§uˆŽI`åHá)—X]µy‰7S~ÎÒQgõéfKm:ÜlÛË9à¡ìƒ?7q¾Ä.Ð….ð"^®iݲÈñT½ãG–„(úw>Ë£éU†ävÝç]Ê„¥vx/ÄÐí’_=X´æe‚_êShï \»’E’$Å o±öÁ†Eܼ€dEñi·å'Ž…Yû7>[p‘7(öÁ$Λ¥Ý'²þŠ*ê'é¤é'Ÿ¯›‡!o_tìíúM3¬âZ;†ôUa—
-ICéQÑË]üSšÛG@Ú^8 Z_¡ÍÈ]€¬áÂg³GµˆÞö?Ò@éhÌ#›4ð5 Úçôÿ ß@ B`펓uQÓÓ_Ú`F1]nÚÅ¡ NŸÚ{ç[ãTÜß¡‚«P—„#_ ¶ñÀÖªƒ Ú_E|çm<¢;,×Qö‡‡ˆ~¥ŠÜçZû³E"&`¸fn³)JæFÆŒ8à¿owây¬…·†ÚWÌ
+xÚ¥koÛ8ò{~…±¸ΡfIêÝbsóh³×ÆÝÄ v»d‹Ž…Ê’+ÉqÒÃþ÷›áŒdÙV’Þ]‹–Ãáp8oe5ðW BOH'rAä
+O*o0_ÈÁ¬½?QL3jˆF]ªwÓ“×—N0ˆDäk0]tx…B†¡L“?†gÆŸ§7§#íÉ¡/NGž/‡ï®®Ï Ñp6¹¾¼zÿÛÍø4p‡Ó«É5¡o../n.®Ï.NG*ôì×Ìበ—W/z3þôi|súçô—“‹i«KW_%TäÛÉÊAjÿr"……Þ` )TéÁêÄõṎÓ`²“Û“_[†U»µÏ~-ÍÈqEèç­ìEÂw´ÓZY¹+G
+DØ8OYlê.–7—g„P‘
+ šgņ·ðÞ
+ç{xVNP–®ÒÚª†è‚Ƙ†Uü®6+šØòÌ=ÏÚñ8_T¨E$¡ï¥‡Ý#nT×Y߃ ·Ü¿Òé,ÊìVV,‡òtÌ
+³´fê¦dØÕ.ô±ºg„‚ÛN¯7F.›kÈ<Ä«ufófņ€Uz·äp#ym<§œ!ôŽ«ãÚ¬L^“în×V‹ðïÞm%ÈQãRîŽÓ@塟fq’¥UýÓ[šÿõ¶Ç´£>þ¶¡Ø—«øÿ l@,pý¸æ•U\AWÀr.Ò¬Ù@ø×Š@á.¶#ì•Õs8ãí_ÿµžÝWß±¢Ôµõhy³ Š'«}©ôÓ‘rBX¾Œ‰îãälüñÃäv*hŽE5­îJÁ¡$殸„w¦bîK=^sdB€^ÚF
+ü ÆtÃÝ¥IRðOÍve7Ä4l!m  Üú‰ÉŸ˜1ü$@Ùá4õF¿y£^Ž˜¤hü_7òàõlvðy|{;ýpóÛ.&ÿäq6ùÔçïâë¾üO—ëï£u\Uõ²Ü´Ónfïº=—†<ÈÝäëåÔkåq|@×úÇëâø¸VqGøQ<TÇç9þ~Œ†žpÀÂ?£O)ß KÇ¡ïy]#\}~²44Y÷Emº-м:mÉ/8ï•^‡š‡¹Y×-šã½'BBÁÉ
+0_Å-Ý·MÊK}ð¶3Ý Ó[RìwÍ_C°ñ.6%aâ$I±/ÃÇ+Îñ:˜ÅÓgEñu³®hÓÌ,Šö[‘¶enK‚Þ¡€›5$6æÉ
endobj
1847 0 obj <<
/Type /Page
/Contents 1848 0 R
/Resources 1846 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1836 0 R
+/Parent 1835 0 R
>> endobj
1849 0 obj <<
/D [1847 0 R /XYZ 85.0394 794.5015 null]
@@ -8442,93 +8425,77 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1852 0 obj <<
-/Length 2753
+/Length 2819
/Filter /FlateDecode
>>
stream
-xÚµZQoä6~ϯ˜—œÃŽjK–-¡OÛ6ÛKq»m·)pÀ6(œÏŒ±kj{’Mïúß)Ïxâ4IE,SER$õÑ™dÃ_2әȬ´³Ü¦Bljž-¶gñl sßž%Ì3Lóc®¯®Î¾x£ò™6“Ùìju$ˈؘdvµüeBŠsG_ÿîÍå·?¿}ž§ÑÕå÷ïÎçRÇÑ›Ë_ÐèÛ÷¯ß¾}ýþ|žD_ÿëõWïi*c_]¾û†(–}ñæâýÅ»¯/ί¯¾;»¸l9¶7‰òÛÙ‡ëx¶³¿;‹…²FÏîà%‰µr¶=Kµ:U*P곟Î~Íú¥“þKb!U&'(唵™’Ê;ð®ê7`TžG+·oiÔž'&*»kº)&Ú¹ºZÜÓìï®);ÿøîõÛ â-š%Ñ. gßVëuÙòšmµÞô4Ü·,¿à¹âSµÝoYä?±:EØnܾGŸƒáó$Vké­Ðñ?èdjwW¶xXÙÀÉlà[á*• ­m>O’C@Äque{[¶$å§¶Ü–MÏ‘ÓÛmÑ’Ä49r)”Zè<'AFòªÝ¯ÅrÙ~øb×–«êS]6×4ñ_o€TÂ&q:6ãqܸõ¾£á}ÙýêÚ_G¯_Òãzʼx׺ÛjYΫO«ö2’cmùÛ¾ìú—ÊéQ.›îsÖÎ÷Ëݼ«~/‰Ôì·7ÁµÏ°
-€
-U }W.*\[._!EGý¦D—+é7
-.=P6r-  ¡²ìÏ¢Ðb7–>…
-›¶<™ˆÂ\E‹¢¡[,¨ñRQÁsd7DLïvD©ËÛ²fþÕˆ $¹a½‡F‰Ò ˆH©™Á±øªé 3 ÉÅ„Y*Ñ"Ñʰ·Uy7•[©0Ú<°
-C&·ÜÈŸ+c…‰ó“ûçñ}òºÔ‡ÞÓ9ÚÜvRÄÓDö–aK3yvi,L®Ÿsx2Mlßa–i [úÔ€½úëx{ õ@uDâ6d%qQ%ÄNùž™ÜnN'Ì€F “œ€CêºU Q¶ù­Ö;$mšÇþ<1ÜVPLpk|9¸ 9 #›ðOžCí4úþɬ‘SþQIN¶á&#ÛN÷JR@n©ü«{MøÊÎ’ÉySiD±ö¤-X–«b_÷ê&½¦[λ0ÕѽÛÓ`YuTý[¿ÁDUiæ} „ãâï¡â«+>×Õ­ï¸pŒ_1üú›bÉ}žË,tídzêéY°þ4€Ã»ª®iÄ7ȭϻڷwíp@Ä@Õê()ÔSŸ½Iì˧°{è°Ä>âÕdJB€¼æó!'O1ɲÀUu’àÚN†ú3„§…Œ€‘:)ÝŒï+NqºvËX¤éÞ£¯%–é°[¸Õ°Î-Ë/Ëh[Q^énSz¯ûŸ÷*7QíÅv@pÔ)¸`4LúþmÑõGLI8g` ßå`[‡5ÄoêˆÐ3 ÇŽÑ‰c¸Ð,8H!H¼>qæ¿äÑ(tÇø¦Ñ†éf€è ´Q°ÃûÈ*•X*<@¯‹ÛI2æ5þ£RG³>äRüJ¸
-bzÞsª*)Õnl@ÙS¡‘
- ½óðΧ†SI€›KiÇ>:8/Kr»Ì%a@ PšùxY28ª¼ +v®ëª›ºt—|O{ÃPΤaRåBÇqúü˜ÅßBkÆG_ªü«Á9F¦^ŸööÔHÅFnuÍœ›hÅ™åãkèÄŸxˆ2![MŽŸh
-.ªÅ¨‚Žï—'@ejT¸äFŸ`'¬ÖÂBb€ÛFRaâª$Mr¨J8É®HBUBÚ(¥=T%äóFj%—sZbÇÈãì¦U“I§šÆVÉJ̳qëhEɶåI
-fêÒÆq­Oì`ïPP11MƉ™q°ú•ý«cÿÀ\V˜u«ƒ… â/•Ãõô±™L?V^qõÈ Èª“Òäõ’:„°Ì(„2„0Ò††‰Â’0Î8BJÁ”‚^‡`…
-,£Ëž¨Ûâž¹êαPÖƒŠšÌ(ɤ†KåD€¼¯¨¬V'|pâI¾š‚+C6D pÈ-µ1ˆ``Ü@Ý"á†Üø¥¢ç˜†—U˜'‡#Tz þç þP¥'W”
-æרu·¯QK
+xÚ½]sã6î=¿Â/7ãܬT‘”Drú”¶Ù½tn?š¦37M3Å–ÍÊ¢+ÉÎfïúß$@Yr˜ÝìÞôÆ‚@@
+9Ó±Îy>»Zx©8QŠÍ®–×ó<æñ)pHæß¿}óòâÕ/—g§2_]¼}sñ,™¿¼øç9B¯.Ï^¿>»<˜ÊØüûœ½»:¿Ä¡œx|wñæÄh|<Áôòüåùåù›ïÏOo®~<9¿tëËaùãäú&™-AíO’Xh•Íîá%‰™Ö|¶9I3g©SŸü|òÓÀp4ê¦íÇ’˜‹œ ÈyÈ€™ŽsÁ…3àGÓ”¨/’t~Ú æ¬`õ|Þ•í¾l}_õwËò]Ñ—H³)7¦} ‘f‰HàŠ˜ö”©yÙmMÓfkêjñ€dº÷ŸÞœ½>ÇabÇæïÑ·Õ:²FÍ#ÆbeÜ©±.ÛHˆS­ïz ‚4‹»ªÜ—ˆ/h¸øPmv|ùcW¶UÙEÛÒ‰uå¸%ar‹
+Ú™·f×#È“¿!P›{˜N¦K“Ì™& öÒ •Ùnb€ƒmÀÉÜÎ H¬
+²°>JoU‡ÝS·-•[._XLf+ë†Z,jÓŠfM˜YÑ,'S‡džÕÂì±W*—Ô4¾mjjþl¹î€éú£•ûÉE]ì|OXl·uUvã–qýÁ²v9Åõ”«P àªà3é½³Añ¸‡nZË\Óž[û/chùV÷€&YB§L¤1¥HPÈ+ßü¨O¹¡¶-{ú97¶³—,à†RÌEƒ€Y,\ `Ac¨8¸Lo¶ˆ©¡Ù­‰~5!N¦±û°ÞA—‡ñH‹©‰Àûªé 5@ÎE@-Á ;Ê„"÷Uy
+®4V™z¤•õ©Ñ»Ÿà ¥¡i“GÐÓëÈ„‹€õ2iuq=©¢+ @;M±1Ôö.Mbè
+S¡àˆÌ6¦Š&‹;ªñÊ@$âÐ]Û­Ö9Dm*·Ž öd»´}9˜ÍR@K°”<Uö ûäZñ}“¨›]d¢ÛñZ,…Ò-å_»VÀw–„îК"³e¬>ê –åªØÕ}¼òp&L³ùƒÙ!°¬:Lî­¿³*ÒÜÙãìoß}.´°M¯ö¹®ö®å²°»‚±óo‹%-Pô…µ\®¡ lß”UÏ‚¸ÐÝ€﫺FˆŽ½‹ËvµkÁïÚPå@÷bt c(¡ºèe‰KwCæÁ(&v>¯‚!¥â âšöe î"ËsOUuNpn³!ÿ îÉ'.$Žr·åËÑ.^=qǧéàÞ“ë’ÀIŠå™_Ík6Ï-ËÞž–óM…q ¨û»ÒYݽ¸¸RÍk³°µ˜ÅJØêÌ uî4 ºúMÑõ#"æ÷Hü#,ëî2Ý¢®q 44Ù‰5â´^hä¤à$Nž$§+Z ùöؾeV‘†ðwD
+ñÌû0Ïч3ø°Å > Þ‡9!v«#‹)Sàëà­‚ùü¢Gì¦x ªº3Ä”äÀ¬ÆsŒ2žy ý©r$
+›[êT‹;GÊ«±†zÐPû½j<>´ôË›þ[€RvÁа©BJR;;T‡¦Ê5­³OV Ñ@5±Ewgvµ•*ð¢¾/ì§ ß›ö½Š<§âpÛ]»Åž/טrýÔY¦xœ
+‘=û,K%÷²µZð”ÈÒ!ƒ|>ÝH­'‡éUÑÓí´ë:Þ;…FœÕ’Ê™î‰?DˆÌjúûB2Ü$þÏ–8ü“$•±PЇÿ…‘=C…ʪ­Ô#Éý¿*‹þ_' ‹endstream
endobj
1851 0 obj <<
/Type /Page
/Contents 1852 0 R
/Resources 1850 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1836 0 R
+/Parent 1835 0 R
>> endobj
1853 0 obj <<
/D [1851 0 R /XYZ 56.6929 794.5015 null]
>> endobj
554 0 obj <<
-/D [1851 0 R /XYZ 56.6929 731.3165 null]
+/D [1851 0 R /XYZ 56.6929 699.7175 null]
>> endobj
1854 0 obj <<
-/D [1851 0 R /XYZ 56.6929 703.6905 null]
+/D [1851 0 R /XYZ 56.6929 675.3442 null]
>> endobj
558 0 obj <<
-/D [1851 0 R /XYZ 56.6929 406.3248 null]
+/D [1851 0 R /XYZ 56.6929 379.3506 null]
>> endobj
1711 0 obj <<
-/D [1851 0 R /XYZ 56.6929 375.5746 null]
+/D [1851 0 R /XYZ 56.6929 349.2029 null]
>> endobj
1850 0 obj <<
/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1857 0 obj <<
-/Length 3538
+/Length 3408
/Filter /FlateDecode
>>
stream
-xÚÅ]sã¶ñÝ¿BrçÄâ“ 'O—œïâLs¹úœv:I&CK´ÍEêDÊ>§Íï.vA‘åä¡£ `ýÄîr&à'g‰„NÍÌ¥&²BÚÙr}"f7Ð÷îDò˜E´èúúòä¯oµ›¥Q«xvyÝÕD"IäìrõÓü›o_¸<»8](+æqtº°±˜}þþ ARúûæ‡÷oÏßýxñúÔ™ùåùï |qööìâìý7g§ ™X óc82áíùßΨõîâõ÷ß¿¾8ýåò»“³ËŽ–>½Rh$äóÉO¿ˆÙ
-ÈþîDD:Mìì>D$ÓTÍÖ'ÆêÈ­¤<ùxò÷a¯×OâŸÕIdå&¨ÔmÅZiÏÀËÛ‰€¡²7T¦QbdøqL¾ªÔǧL䌶<hYf»&?]h™ÌWy›o×E•7øíæ÷·y{›o©Z-ëeV¬É·w¡ÿ¾(Kµm¾Þ´<­¦^ÄÍÏÞ¼ÿÈ3nóŠ`Ëz½ÞUÅ2k‹ê·<[`Ibõl!e”Z«üfï‹ö–éwƒí)`Ê×uËß¼%„¸…ç”ïYå×Ù®lé£h¦Ø»H(i˜5ùû¤‰R£SÑne»ŒývA¨±I‰È¨4í i±[mMñ[>±l)ñèzÓ52Í9 ´E9¹˜Eã:ÞèÇ7x¢õ­ö6k©³h’­€UmÑä+ú¾z˜Ú.HBÇ6(U•­aøá>5jU¬y‹p~ÞåÛ”j·SÏ0 tŽb ß¾0µL‡Â´
-8˜PîÍÙC3ÞiNßÏÅ- ¨#…ï¶CFvSÖWY ¼‘RÎ_ìºÞR#ÿ’­7eÎ`¢–-;H’ Õÿgô÷³Šºï3…ïjŸò Eh‘ ôñ^;ûäõ¿JÒ¢›¢MYäÍ^šÞÀÕã^|uð"ëìË£öÍ®dß" ö-™0®b½[ÓGp¤‚ûó¦ÉnxpoÁ=kIcÝÓö,\gõ¬÷~WÕ
-ŒÑ$ÉÐE0F2o N.Qf¨ü‰*¥ÈD•’^@&Š6QöM»:ÅNÒ\³‰"¶êÑ0do¢š(Ð$Ù(=zæ?N+x Á(±ŸÕ G,àSUßUíåýÇÕ”ÌCêõ”ø´5ê)ñ‹(Mu<<å´ˆ#m\rxÊ-t¢÷îۻͦÞzN̼½¯ ü[]ñàDÖ\‡ák4êÙÂ…#Áž7Mûj’Y ­Øpª|ïá!1VEÖ©0<Ž˜cGNVéöDå·ì>6„ÈW:’NNYM½ó%J$– ]Öþ…0ÑQL}«hÊs(ް稘¨©@$N"†n²å§†–ÎZg÷7óøG“7uÓW%-*o£ØÏ¸‰?S$,dªÁýÙ!—ž&EÅ!"ò*o@ug5FÍs¢¡B, °f<6Œ™_íZL“ÈÒÛ9@Ð+úÝèŠqíª죭ëÃÎ @RÆ¿‡$цeÕŠ†o²vyKÖ3[0 g
-ÒH¥{Ê‚ÇRU·t
-yŽ¡šä«W“™#„&)æbåÞB´Ô¢pZ®ç4X¶1ƒs~Ê´ƒŒ±ãÓfKQ
-“þE =w {j|¦VIß&!ÆŸÚ
-òI—Žm¨YlX'µÌ™H™Îð‚¡rè&#‘¦ò™©¬´*ðëSþp¤Þ`E¬ÆõiÏ
-TxÔ$›²T™ý^a‘qõFA°¢ „4h§ö9õ¥I’LWoÆE%•f†±4ôj-÷+{c™
-¨¤Š’½˜V9R]y×aØu˜ôˆ„áhI´1`Ìd¾)» tNsª—RÒ
-ÿdÆØ¢³—FÅÉ–œ~ ôÁ^AMåüTCéá‡úåÇów¯ÆR‘2†2Žg† ®XHÛ›5.zå°nü¢?á°vˆ·ñ1[Oœ«ö`7±¤ÔƒÍTä §v0ÆÅ|´:'îI<o³’bv{à?·nXì€Ñÿ唘ÿ“9w3>C2ÔÀŸ~~jÕ>º
-H1,äz ½"É& XÁþ0YƒÁ6­i1­¼©²v×U[lWú³¬`ð“WùtpEŸ»†Ø`C5&¡ÂÁA
-€}º„_>ÜòÍrÏ0³ L÷aé"Önþzªþ2 j½-nŠŠ
-ÃÜéYuÆ÷AÈ~ðç]Á±þÐ_ue‰›*ôùÔ†b ¶?X7Èê^—ÿín ”3‚7‰›m¶^Cnè?ðä ½SG]¹ØÆOøn ÙUõ‚ïF¬«Ö÷ µ½ÁÆzW¶Å¦ä!ˆ“- ì¬@\™á“ìFè ¥žZÔËüÅvÁU›È%rföŠ’¹ÈÙ'Acæ­ÚHHì§"BL–SÅÈAµJƒ×EMÄ«ÁgÇ»¸‹'PCD-1¾ësÞç8vŸ(õ_„ž¸3âŃbžÒOþpÈjÅY!ã¤)æÉÒ ALOV G¥:7„ ½°ýŒàœh œªWfèð £ï‡ü…
-œè(™÷¢°Ó…‘—’bÂëö/¡2¶–Û£÷É<÷˜×…x
-øf_¦o¶»Ù]†­L’Böö,´TÏÌÌu,‚gò—°šS*Dü¨9Bkºüµð(uNwgkgM:Tn|Q3Á»á<w‚#~è#©ø)=kòCúÖäÑÔÔqÅzñKâwn§â{J
-º>u!°Ç§‡‡0~ï s˜cdc6 œB÷¨q P»#HCÀb,1^Ýu^òi©Úxx ãbWy¨ŠA0-’Q0ý4 …þ×Ùçk˜¹Æò¹öã—ëHÅ@Ž,i1íÕ.R"%øs3=]HIH ‰aÓËf±¼Íª*/99û¸¯ËúgEœwùęâ
-9Të®.s€/†…þãe"ñ­Ç¸Pù(*¬b +. Ûüê Áü—PHYg°˜¯|¨6ñî¢3¤×AE œÍ«`ÖÔáÞü¦¤X•Ž*@<Õ'„*ÈJÁB]ãEɯe9·ïøÑ~ÕG/ž ;Š¢¯†Ûñì=!ùý«)anFÌŲ/òªÙû‹Ž}hüèo Ut(ý㯒î¦uj3q'θ‰K© ”^òý0½sQýçU¾Dv¼§Ð+ÅZT¨JÉ—jÞ<4°µ³Õº¨`“ÛlÁ‚@¤MFµÚzÛ 7½"7ÅA½Î=å\T©è"¦Ÿ s¼»>|ô5™ðû¢ŠŒû¬ÂÏ¢jójÅ}~#Ò‘o¶Î¿ð-hׇâ}ì+ø5b4‚6TNjëe]6aUFè ¯w¡žöŠе&>Œ#øâx)‹‹Ά«Oh}{yùZ£¡]ð¯8‚ÉìüÜÇŒñ¸hÅ£ù)´ø.Z)ýyFÁ?P½)Jº†±á´Êâê˺T`´*9vßh¤Àª?ŸR¡˜m7 £#e”<4 •ÐÃ7…Ж‰
-éJÒñλG²‡[ÿBt‹dendstream
+xÚÅËrã6òî¯Ð‘Þ²°xdå4ÉxfÚL²g•¤R´DËÜ¡HHÙQvóïÛ(’¢üH[:l
+¦¶« ®{½Çnõü°ü¸ó8Ɖ|Ìщ…ÕÑ&„ê‘qÔø Kž>{ˆÇó.è\_¬'qÔf%åévrÇJhí°Á«1ËJýÃ#²îòîv|†¨%€»ñÜÖª}òÐ\8Èöº m& L þ°@ƒÅ&i°”\UY»ë:,¦k÷oTð¿Ê«| v·¤Ç]Cb0¡ƒ
+õiýØÐجwe[lJ¿qb¥@œvÛ÷w…N£Mô–Ò
+¯Ë¼Yl‹Ðq3.zM-ÈÑðèkÔý¬“«~‡“J¡ê¢ç¼˜L”©j.Õ3™O·~Þßpœãd?ôÞZB
+äf^go¦{›»¤L²BþþÌ•/¬ÆUÌCdr/^Ÿt§”óøIw„Fw5káIî¬êîÖΛTèÖ¸Ff’wËÃ}ný×8GZq[zÞä–ô½É¡©iâÖ/èå/‰£|äD”¿¨ØqRÐ+Sê(
+â»,¶ùÙ9‚{ø/¡Š«±‘_öSòS/{Ô´ÀÝþúhÊã><üä] ÊA#ÓQ×Çouaà–ròRðÐŸ×øräç²ÀšÛMüæÑ~ÑGÏŸá›1öÅ'®Ñg#¿}1¥lŽ_´1ˆÑ²Ó²ä¯Ôò[êÓ‡«ûÌë{÷†ðØDGê?ý‰@Ò½^¢f"ñ„›Àj;ñf@HÈ¥þ¥0}Ü"ûßT¹î8òU\@ŸÆHÿ%‹ MA!ü› 5ûΠq¶\¹Íæ^ܰÄ$#Ãhëð‰\è|¬zmJ„z“Î}W¥¢·/ý’`X4à ëã/½N|>© Ão'²]ÞYÊþ´òðÝ©¶L%‰œN›ñåy"SˆBi%é˜òîÌcÒÿª€endstream
endobj
1856 0 obj <<
/Type /Page
/Contents 1857 0 R
/Resources 1855 0 R
/MediaBox [0 0 595.2756 841.8898]
-/Parent 1836 0 R
+/Parent 1835 0 R
/Annots [ 1859 0 R 1860 0 R ]
>> endobj
1859 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [116.0003 507.6087 166.1092 519.6683]
+/Rect [116.0003 469.7843 166.1092 481.8439]
/Subtype /Link
/A << /S /GoTo /D (tsig) >>
>> endobj
1860 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [399.2874 398.7574 467.9594 410.817]
+/Rect [399.2874 358.4967 467.9594 370.5563]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
@@ -8536,33 +8503,37 @@ endobj
/D [1856 0 R /XYZ 85.0394 794.5015 null]
>> endobj
562 0 obj <<
-/D [1856 0 R /XYZ 85.0394 298.1561 null]
+/D [1856 0 R /XYZ 85.0394 252.6024 null]
>> endobj
1861 0 obj <<
-/D [1856 0 R /XYZ 85.0394 272.8949 null]
+/D [1856 0 R /XYZ 85.0394 225.5517 null]
>> endobj
566 0 obj <<
-/D [1856 0 R /XYZ 85.0394 178.1175 null]
+/D [1856 0 R /XYZ 85.0394 126.6995 null]
>> endobj
1862 0 obj <<
-/D [1856 0 R /XYZ 85.0394 147.082 null]
+/D [1856 0 R /XYZ 85.0394 93.8745 null]
>> endobj
1855 0 obj <<
/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1865 0 obj <<
-/Length 3156
+/Length 3116
/Filter /FlateDecode
>>
stream
-xÚ½ZOwÛ¸¿ûSè¶tŸÅH
-]¿ûðþtNÓ$zóîïH½½<ÿå—óËÓ9‘)‰^ÿtþñúâ_eNÆ«wïÄ…G„^^¼¹¸¼xÿúâôËõÏ'×ýZÂõ’„™…üvòéK2[²>Ib¦d:»‡F¥èlsÂS§œ1ßS\ü£¼µC'íG’˜²ŒNÒ)¦*ÎeÖ€çµYp’€“¤±¤™ñ†¥¬uç˜BqHI¨c*šºÛ5؈ª¨Xçu­mCFe‹96¯_ÄvÛ· ÜÒUÙvº.ëòä®»[kìh·º(?' ÕË •)Ï`é©Wy{¸3Œ«8I$VÿŒ½¡°B)§wfÞKœ‡"Ñì¡f,%±R‚Œí¾mvSF¥$N”p«hê?ec%aš€§à”BÈïg‚^â&ੈI–‰± òår÷ˆ q«8ƒ…3ݯËbmxaNxŸ&æ$`×4¥è~¹±•”јJ‚§¹ö»w{š]ß“!e
-­tay5± à1±TL¹%äUÕÜO Á< UÛkü-áÑë#í´Í0½5c`‡L°1¶Ž–§¤[Þ)‰*l#ˆillõnSv¸B%¢EŽÞolZ]n¶Ã–$± }˜2è
-q÷Yžxb¸û¼Ç½#AG×l‘¨ô½2rúÖ—®ˆ$ ˶Ìq3¡M©=—ý'н¿²V7zàã®Ô÷æêÞ~[­Bwé´µÉS¨>WÑ¢éÖØ³­œÙŬõƒCnsõ¤ Œš{{5ðÂ`ð€st”ræLF½É¨7LFǒ˯ÒÁ4Å[F#¨rÌfÕ¨2s¹ ÌOÝš)š ÍÉ»'ÒÅáv¹7¿õçÜùç°Ó%ÛQ]Ì\ɶÉk8zߣ.K:¬‹‚¨ñ;Çô™0¹Ñ›¥)óÊHù{n*€:$·;D9lõ ‡M1Ç´h¢x&añü˜ü‘
-›ý·6îvý/+ì4í)Ðb7
-K›.¹$îsÇR4—ílÊÖ~G4‚1»×îû0÷5«ùt|_k§ Ö{†­™\ý]skFœ·R¹ÿäd#và4ö>ÿO¥2—
-iªå ÍÞ­“x,8OŸ}Õ%S>‘âZ­š½Ÿz¡û/Kc󪉋 ¤Ç¬oþŸÖð'6( %¾Q¢æ“†!N)³&•iîÿÐu¬ú
+xÚ½ËrÛFò®¯à-ЖˆÅ<
+^_ýã¡7×/ýõåõù’©˜¯~zùîöò—ÂñÃÕÛqFãçÒëË×—×—o_]ž¼ýùìò¶çeÌ/‹„eä³÷£ÅØþù,
+…VñâQÈ´æ‹í™ŒEK!üLyvsöÏáhÕ•‹B.>#@Îçë0\8ÞnL L±$h»¬+¶EÕáÐT]Q­i­«í7 VŽ?D‘(>›UYŒ×Ç~·«°ݗÙù-y½Ýî+“g©+œÚ5çLuWçuÙú[ á¦ÀïöÝÞm+.`‚ó`µïp%Çù¥ÕbÉX¨ã˜;®ðDÕ•O°7ƒºòÐO··ïÊò¼h[„ }‰þb !T\Ù»Ò„ðý±7Ðîn“u‘á
+òª þvn—ו².ognÿšô9èêB0‘Ä€¼Nn-`.ðXï)ÀÿYÓýз qÕ9a7q‡_G–Ú'àkû]‹ûH‡g ©°”(H”Î5j\G‡†§ð–R´B"pàuÐÙ M¼æ½ú¾-z7l® ˜Dšžö„L€§L!J02páßl­=Æåå±µ2¡Ã8aépó—­5†tèkå2õaêûïç‚ ·`\2x5±†Ì’"!¦ƒWw(ÔªÆ/es
+Ð>¤|J¤ HsOB†‡tÿ$ ­è AIà gL,PrþœªP2¥'ˆàž §Œ …Jìb.¡±‚*ÛöiïøHÜxKÈš'ÆŠQÞ]ÄFYŽéEÓê.[ZsÕ˜Æ)8j´¦Ê \Ä—
+ÀôQ0°„§þÎ.3t!°ØšÎ<¸Có!û¼Ý¢©¬Ã=UÐo]Û€Ž9Is¿qõ=ÀH¬m6ÕÚ»ò®/¢×¡uÚÛ 9k
+„¡õ(þغ=ÛQcר¨K,ogëÌQtyóÜúíãbÿ ½ŠC+5SФóŒ}Á‹OcÏØ—€p«¤/«¨wœÐm6ø|ìÉ‹nÚñ™Ä|OH¯d°a.$¤FŠÛš*¶¬ö->©4‹"ÐW³‡ô`½üT<{7S®ß4Ùv›53)ƒÕ…y1íÐN1%€û?Ne¶@`ðÞœ~ãœÝVí·«¢ù2<Þÿb.Ÿ}¼ïÇë>ïÃ0üø‘ª9Úÿ|1'l êQ!9™­,lX™A±YEOí÷6»/f ¨—¾êÓŠ™"v$}.;!c&³Ó@±ŠçºYQ°F
+]§†?¾½¹¹|…p[äûÆtO8§[w®øØd§i=²6oÌ
+K¶Èö(“>xJ*±iÆ6‡‚€„‹ÍýëQǶ߿8îØ㵬Þôþˆ‘¡:¢RAñxBÍQ׸ßõ GØ|€KyéEê[’šy¤ËQ/oÁzyãÓAÖ«Ëe‚Qð¸qÎDøÀn¿*MŽ0XU
+¢uùPP%;JŸâ‘‡˜îîcï$}Ôtªµ
+žÞ·ÕÅŠ¬uŒé°.>¢ÖîhÓ&$äF+[f¥Åò'ÎÜ•àêÜ5èåpÔ;9‰%¦E3Å3Ïÿ‡ËOTØbªU¬°çþHÄ¡ýç™ú+ê5ûÍÿ#4ü•„Š^)>_ÈqÛIT€„ˆ²”ëèˆrÿÏDǤÿSì–§endstream
endobj
1864 0 obj <<
/Type /Page
@@ -8575,7 +8546,7 @@ endobj
1869 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [432.8521 453.8406 481.8988 465.9003]
+/Rect [432.8521 366.7304 481.8988 378.79]
/Subtype /Link
/A << /S /GoTo /D (DNSSEC) >>
>> endobj
@@ -8583,54 +8554,47 @@ endobj
/D [1864 0 R /XYZ 56.6929 794.5015 null]
>> endobj
570 0 obj <<
-/D [1864 0 R /XYZ 56.6929 612.4969 null]
+/D [1864 0 R /XYZ 56.6929 542.828 null]
>> endobj
1867 0 obj <<
-/D [1864 0 R /XYZ 56.6929 584.2 null]
+/D [1864 0 R /XYZ 56.6929 511.0131 null]
>> endobj
574 0 obj <<
-/D [1864 0 R /XYZ 56.6929 504.1811 null]
+/D [1864 0 R /XYZ 56.6929 422.9836 null]
>> endobj
1868 0 obj <<
-/D [1864 0 R /XYZ 56.6929 473.0747 null]
+/D [1864 0 R /XYZ 56.6929 388.3593 null]
>> endobj
578 0 obj <<
-/D [1864 0 R /XYZ 56.6929 265.3403 null]
+/D [1864 0 R /XYZ 56.6929 165.4299 null]
>> endobj
1870 0 obj <<
-/D [1864 0 R /XYZ 56.6929 234.3933 null]
->> endobj
-582 0 obj <<
-/D [1864 0 R /XYZ 56.6929 154.3745 null]
->> endobj
-1487 0 obj <<
-/D [1864 0 R /XYZ 56.6929 123.2681 null]
+/D [1864 0 R /XYZ 56.6929 130.9649 null]
>> endobj
1863 0 obj <<
/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1874 0 obj <<
-/Length 3657
+/Length 3926
/Filter /FlateDecode
>>
stream
-xÚ¥ZÝsܶ×_¡ÇÓŒ%
-†²¯Èßv;a¤"=ðÁaf?KYÀÊív}ucøDù(Ð8@»—Êñª@àUaå
-öˆáCêø|— sé³ýÂ&Ôæd“0ûUEW
-68ŠB7 êCÙvu_‡–èÝ.„þÆøVÁ›ƒ¹ FwX+­V/{"OÖ,›.L÷¶ 7mý©âeoËžä1ÓËBÎ-&®§¤Y…ɤ%kAJ H¹ªPôHšÉn­
-CúÁG›ªìxªcW·7ôi\=yZKÁ“à+qžœ´ãYwu[ïêO<I\ÚÕ¶Ü.…BZiQ6a·‡]Ý¥ÐFΟ’
-G¶ —gÖn.N« › Ò*^IåàÆ@ކkÙðá
-šëkPí§(pxá:¦šéL?ç¹<à>#µÞaÂSN@ÂãBÝb:³ŽOwU¶ô|s<3mŸ>éŽû}8ôÕI¤(ðs®s *w$áÜ3ŠBŠÏl–Ã+‚Ô¬Óbj
-
-Êw’#îòrY}>¼z,Üö™ãÒ¤0€É£'Á5z’‡JçpáVGÁ@O…ƒÐôž9|nØ/ÂGúD¬®9±.(¡)⌠‚Ê€Ÿëe¦­Õnbr9,Ì"9 2@ ž26sÚsY¸^3ž…ë’\ A}õø°Z…_*cb†ˆWNX˜›£h/Ä*)Š{?Ã"3Ú&äØeN°=/ÓK$7£Dй›W¥DwÉ”šùêË“X²%‹†£¸O;§›>X‰{=÷]@jåUDx˜•Ã
-`Ûµ PˆT¼䌛8î ­ÇöXáNð,–ÜéêþÄ!‡ •¼qt¸¡oÅßÖíÉ·_ã¨Të îþ[Ïšå¤fÐAœzDCJÉÏ’Î[^÷±<Â!¯ “Ðè6uÅ¢(àŠ™áÊ.ð`2)¦¹E?`LEžù£ßaÏß,8¿4~lœm·Ö +*ˆRŸÙÂ*JXvHx0º«›†FWL™C_ë§³)×Á`´ë†f‰¬
-4m‚I]èø¬“Ù‡=k6ñ„ë%¸©s(¼‹¯C›>Âä€&:&k@&€3Ó¹ †'ôɹLÄu&¹£™v舀éªÚq%võ"¾ÌÇ/FG2&9Œ&ÎÂÔYpÆÇô2ÍÕõœ¨JäpM,+šÄjÙ4ÕR[á¤[4SÙUÝ.9‡È¡ÎCﲯþgÄŠ*©ViÁyx’.è.¦JìRß–-÷vmꃙO(‡E:¿ã…žòçÜŽ%Û=½Hݲ¨ÂÉy©wvSoÐ)é(ô åXb¥#:ÅIÅ.4RußÇíÁ „€@£’.¿„ã!Õà ýÉRï@ÛL
-½ü£¤³_ÚfIÚJzé夗cb/çž™H½ •Çc”œÌl¡O´‹ÛØr‹+ÌZ]>ÙS$&ӉݷԚ ±Á.ý@Ù‡®«¯†÷0ß;[ tÆr?Íý´ Ÿ¤p‹zÚjC§ôéHe–cTáìrrnsX«ÁÖïé&lÀGi8x=ŒUNWjÒu(S©W¯~Jo¿T=H%@8Bs¦hHœQR†ayìYlè–²£sS yÁ ‡®J]6)Ÿ‹¹I÷wR,鬣”º‰¦!ÕûUõ`á>åp:Ù@jM‡\µZ?&ý»pø0 ˆ±¾‡±î uÃ鄵gIíÃÀl”;jèÀ£è¤c^Í«-èv¾6¥“Ûñ„+¥˜²¹+>M4t\>®$d¼
-!ÀR˜v0ä¹LëOXã^"â
-ï–ÎⓉ©Ò7“Yqà ˆýP=Üž·Ô®Žu“ºlí ÷™d
-ƒ˜F>*T™9úÚÚ”&1ª¿Ã¡ÞnS«o~üqÒ;ƒ¢¶ðɵ |Y3\XP@v¡ô ž4å ¡k,b]¦¬Æ.&˜¾qñUüŸÔ
-˜ø_úÏ%¼Ž”\ø‡d>ØÌÿýÌñϪ…Å£\¹üWK•›ÌLL!ç^œr>üqósÖÿ ”g[7endstream
+xÚ¥ZÝsܶ×_¡·žf| _Í“ãH©ÛÄi%§N’ÉPw”ŘG^Ž<ËJ§ÿ{w± ~‰J.îÜq ,öó· ˆó~âÜé$U>;·>Kt*ôùfw–ž¿ƒw_ ³ŽƒÖãQ_¼=ûìJÙsŸx#ÍùÛ»Ñ\.Iço·ß¯^ýååßß^^_¬¥NW&¹Xk“®¾xýæKêñôxõ훫×_}wýòÂf«·¯¿}CÝ×—W—×—o^]^¬…Ó¾—<Ã3\½þú’Z_]¿üæ›—×?¾ýëÙåÛ~/ãýŠTáF~9ûþÇô| ÛþëYš(ïôùüIá½<ßeZ%:S*öTg7gÿè'½ Ÿ.ñO+—h'í¥8"ñZË µOŒ’*p7-3à@š¦«]^çïŠíú}ñØÒFoº¼+vEÝÑß/‹ÒTÖeW65õäõ–ßµð)2–•#¹¥çð:ñ.£õÞÞÇAb4Hø$ÓÆâ O'4.1Yšñà6øÈpfU•ï—06QB þ¨;Ûîù´I2e=扷´õcýêË777—¯¨Ý›ã¡ìñŸ[.„[5Mׂ2)oÎðmy‡¯îŠ0¢¨7}Pò”Ý}Þ-¾– C—9°^˜'qIiTœ0x“³¸n z¾/ö,Òãžž]CÏ-ð“E{ìš]Þ•›¼ª/„ðâ¡ìî›#_Ö]qø
+ÍbÄÖ;CúW•-íÚ¨¦ø\RSaD’ZeNiÚëôx¿aX2ßò² ´²±csCúèÛnG„W¤Úœ˜êÃRf°r½]ß>b>QžlÁù*Ç«B¯
+­ÀxæÛ9„Œd‰Vx°–wXç»b»ÀP°‘È6œºE¥c) 1D„[E‚bcÈ~è ž?l廲ΫáCbMjmS9µÿà~¥ÉF.ıÂE"}¯¶¿±I#µ™mf‘žäl°˜n@Ô‡¼n#¤þvÑûÆ0н?6ÈL6öϳV¯;ê­™Wm3ÞÛ¦øókÁËr¸?_ló2“S!. {piÙƒCyyè¹-õØ5á8]Ã^mŠ¼å©Ž-E?ø”Ã%tò´–œ/tŒœ¯ÄyZ0Ò–gÝ•u¹+åiL¤ÒlØ1þ›»BZiâQfvð.ü–ˆ`¤Iú)G€àå’ˆD)íOt €73ç"—IƒïÎÁ/пœ蚨ÕÜÑ“¶ná<6pÐÊÂ'S¼s´¡ l3ÑËb«¬Ï ÊBí ëÝ"´
+záÒÄð›²Ü*ÂŨVñúØ•÷f ÝAq-+><K„í Ú_Ãa@
+C½(Y¦ÙX r‰1é[³ó™Ë_'V«˜CÀ.3§cX‡ùwE^3-Ë×ZhfÙÉñÇ+m” æßƒ^Á¢¬vÔǾýcÏÂP)dqÞ¹g!õH,ÁB±gì¥ Â!Ÿ¯ŽÝ±×S…~¢¥ž]þH €þAßh"~K©k–žk¾_Cĺ<cÐö½(*ð"5¨N¤2@¼gaó/Ç’È·$èÁ‚Wx…`í—#iG*•ÙEa³D*y²³Ò-ÉO‚ öû"?´ô§…]UùaìNÝ2€ÁœÝ§òóQÜÕM²3v„쥋NÙ­ö 2C®Iê +7W2¸øaj1£mBü€Nt
+Eœèk)­9|âP=FlŒàI"Ñ—}¢u*òA¸ÐRýeË$>Üó«¼m‹=5t1Ò$XbT’*7‹¿wy¹,>^©“³$5ø¥Qb
+RJ> j8o~×…ô›¼&LB­ûX ¬\€+R$b€+c¸@ƒI¤ìiÇýŒ2ei’¥'¿ÃcG³t"güP8Û4\XG¬¨ÀK=Ñ…=d°lð õPVµn‹ÑA[}­oÌÆXA ¬ë‹%®×‚p¾ÇÇ<ØO( Œ’lŒ–Ö³«ôÂŒ¼æ5: ˜¿ ¨2C™ŒÜÌR¡w¦ª¿áýÙÆì'Ï…­Xb€Tx]q
+Õsjš,EN¡µ+ƒ ëiž-1YyæðU ™háͧe» h21ÞΓwÒ©,u‰ÂNEñÌJð´ƒ’GGSG8ÅÕƒŽ'•Ì®áãÓ
+6ñ4wKpS§xgŸ†6|4£šèè˜|(™
+XQEÑ*-8Âý ¡«Ô÷y͵]ëàÐÍ'”ý@Ïïx¡—ü9W€CÊöH©ZDØ9MõAoÊ %…¾ K¤´ÔO~[¡
+=‡²ëÂö฀†Z9=~nއpTƒˆé/–jÚ&Rè%à8ü\WKÜ–ÒK/Gµj9LD¬e¨4 ÄÐàdb³Y¦»Ãml¹ÄÕLJ]>êS茪ªo±4ׄ»ô}ϾiÛò¶‡±øÈÙ¢£3–ëi~¨§mø$…KÔãRÛà:¥G*“£2·Påä#0Šmsµc¸mþ4°QjöVm•Ò“ŠtxÍ$“zuƒðSzû[ÙƒT¤qš3™AC¢Œ‚24û‹!ô—¢£sc hÁ 7m«l:Q>‹v …X’ß„¡ë*}¨÷«â#`á.Æp:ÙÀÞ’+8kµ~úÍá}"†üº9 Õpo¨NÇ ,0K,6LF¾£‚¼
+FÚ2fèâÕž¸Ú ˜®Máä~8áŠ!&¯òˆOc.W2^
+úZBˆH­wS`™9¼±ÏÝ6ÈÆ)è¶nAלàYÐÓåÁš•ó1ø5{>2‚Ç…å+,ßžçã¦aFÚ·̽诅-Á† Í~_ùÅP‚dú¦—¡ˆö>…ä!øGIÁg¶Ø œ7ðÃt–d^‹…&{O7о!Ǻ¡³…äJuÈ=¥Ä Åc§’ªšæ}Þ–Û¥ò¦=Ñ}VØ
+( ‚‚•HP>{FP D©8EPê7ñVú„¼ÊK;Ð5”×cAñ!ˆ€,Ô”ó9]!¹
+EšÒXÁž¡¤ï7UÞ¶?Òøÿ,VŸòns¿ÞT%PÒÆqá‘o·ìOaÄOtåûÿûùs7¼ž¼p/9íÙôß‚®ˆgO/åpÁyª9&q€€"Q¸W/æ”÷×¥Ÿ’þ?ŠÚDKendstream
endobj
1873 0 obj <<
/Type /Page
@@ -8642,36 +8606,41 @@ endobj
1875 0 obj <<
/D [1873 0 R /XYZ 85.0394 794.5015 null]
>> endobj
+582 0 obj <<
+/D [1873 0 R /XYZ 85.0394 769.5949 null]
+>> endobj
+1487 0 obj <<
+/D [1873 0 R /XYZ 85.0394 749.1107 null]
+>> endobj
586 0 obj <<
-/D [1873 0 R /XYZ 85.0394 206.3383 null]
+/D [1873 0 R /XYZ 85.0394 133.0413 null]
>> endobj
1817 0 obj <<
-/D [1873 0 R /XYZ 85.0394 180.0241 null]
+/D [1873 0 R /XYZ 85.0394 107.6589 null]
>> endobj
1872 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R /F39 1165 0 R /F48 1243 0 R >>
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F39 1165 0 R /F48 1243 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1878 0 obj <<
-/Length 2929
+/Length 2938
/Filter /FlateDecode
>>
stream
-xÚ­ZYsã6~÷¯Påeéªì<9‰'qjÇÉ:ÎnÕ&y %hĉTDÊŽw+ÿ}»Ñ 2e;GùM
-á˜k;füP¶ëúÐzMÄX‡uqOl
-àûÕwüñrIÒ4ôåˆu<׌Î!Éb©´a# üü( jˆ9°RÎÒÌÆ27ùkB¢Š­w÷©€8ï8·,}´ɧ!È)“ö£”^¯'2æ6δLÿBÇ—d´*Δ0c!7eÓNa:³ b;Ù»^õ‡ã Äïßš ‡;d©¾à-bRq’Ø|
-bÍ„ZÇB§A‚Ŧ€p‚
-Ê8€XóK‡XÃkørk hžt;ŸÄZ •f³4Í0«¤Ö˜ã|Èr
-kP’È$íw~l9¦hõ
-8¾$¤•±±cOA-‹Efå
-eÒ:ªê–ˆfç%Æu·|#‰‰îêv*H-±š#!Oc>…B.µY@à|"%ÁÁäɘ㠪YüDZþdéVäEÒ³&>=Ì¥Þ€àw±QZ}µØøBǽÊaÑ:®ªn®«Û,'eÏ->qª¶” ŽùL©
-é7Ë¡²}¥õtl´PÏZJ@c’ä÷X/ÇOTˆŠ è¦aåÚâÓTµ U ÝkdÅOî±9Qv&&Àïa]‚7Ã9˜hçMTß—KtˆTG(
+xÚ­ZYsÛF~ׯ`ùe¡*s<®Y?ɉœ(+Y[Ù­Ú$å‚È¡‰20(E»µÿ}»§{pP ©ì¦ø€ž===__ª™„Ÿš%©H­¶³ÌÆ"‘*™-îÎäìŒ}s¦xÎ<Lšg½¹9{õÖd3+lªÓÙÍjÀ+2ÏÕìfùs”
+-΃Œ¾úáúíÕ7?½¿8Ïâèæê‡ëó¹NdôöêûK¢¾yñîÝÅûó¹Ê}õíÅ7—ïi(eo®®¿¦K#Lß_¾½|yýÕåù¯7ß]Þt{îWIƒùíìç_ål ÛþîL
+códö
+mR=¡ÀX hµH’<že‰©ÑÆ+ð®hëùÒ5mYmYWÍù<•2ú7=Šårçšæ£ŸöqS6-õÿç5nÖŸ+%l’è³[ìwMyïæuµy¤ù®ùXï>V55'ßþ™ÆîK÷ð±Þ¢,¯©Gñëø5|á_uå>6mѺ;Wµ‡ïÌM"ò4IÆk‘ü¯Þj5ëºWÈ?Î…5¹îÀ¥S
+—_9/Åœ,6ª̎Ï6…XÒY-ÝÖU˲úDM¯ux>¬k"ü¶áY4Ÿa˜¶±&ºjǃÛb×–‹ý¦Ø¶ûÆ‘r€^Õ;ž~·ÝxvË5ÛMɼhGØçÚý–?”íºÞ·S
+¹ šÊ9
2
-[’ÎHݱ0Oà%S9Ú’¬¿w‹Ã¾)ïݼ® rœ@/¤à®ƒ5aì£2 f€Ê˜H®©3yV~Œ
-{9£^å˜B>)8ê\b¥aB¡ëÔ'Ô!Üb¬O¢¢»áX, ÷*srÀÆ '<¢ÇkK~ð*i†ÓW×ãe0qغ%ó½®[Þ=$¹”»¿Y5Ÿß÷Bo¾‚A) )¦‚ƒ,ÄޱIåMÙŸ…
-𣨃Û×Mxëy¢ÞÑÌÆÝ» aJ,’‰{¾ÊÂY²4ÑÝÉóê¦\22–¡¤Îâ,9êÛ}u˜ J±ðÄ›z¢è^Qì Ÿ‘™õê ÝÓR²ÌOE ™)ˆ@öU¹CX;õ ðæ²¨rsÑiÀ÷AÌs
-hð­ÍþL`GxfØ›Pm¢&ì9Zý
-ª“½éw€ÃÛðþê”c¨W:ÆÔÄ
+KÒž‘ºea–ÀS¦rvwº¶™@/„à.‰)aô£3j(ª†HΩ3Q™„}0^bØ9sÓò‹+Òñs ¶àY¼ù!J½ºIƒe½Ý°¨£]”kdâ+“¹6ITû5—>¥Ç択ídåz£'+—8ËÓІø–ülÊO•?08Ô–º~Ñ:C*öyttyÐeQ«
+\(i•×ÿ¬}Þ9S—Æã¥ñ%‰ß¤D¥M¸©á,ÌéRS¥i<Qj[Ö3,Æ`–du~ÉÅ|fyë I^û{¬Ê8lYš«2>/ 5z–ÆÙ qµPX#Ð$À³†úáÍ#­Á
+êC8¿$ö†tÊß/ %)ܧ¡ü¢ñÅ/UL)'ìé«9ìE) ¿PBŒ«^özý:*ZmALØ™qñŸÀ1pyI5Í®s~MëîDIê~/°Â}É †VöwU±Aúà:»À.†ûcD¼†+®a¹XÆk*ÿ%Ë“Uí»¢ò÷†/"L0/èØòÝ6XH–U?qØq*TÛ L&Ò÷TäFë©k‚¨é‚¨!hò®%Qá¼)Q ÎòLŸvI—€urøã‰ÃAøÝV!÷I!Ðj않íÖ¡µÁzX{¥Õ»@ŠÐ…w2¥w8ö‚T¬ú!N²è3¼Ò æ]€]pg±Ù;"Kfîïåàáp^5…Ó#ç u_ÜÙøŽ7ƒzwâpmÌbÅá$­Ï èIN@qß±Ž.
+&õݶܸå<a_^lúNÒ«/Á«?×ß)«úa T;Q8cù ÏÇv*_¾$jp(ÐZãýD-$9ÈiÒšîJw—û]V}ýE¾D‘IõÙ&®÷m ³Ëœê#!3ϱr;È'¤
+Ì]Y[YŽ»®®Õãdª ˆ
+ÿ{•¿>üð¬ñ3¡4#é~ÜñÕ6výEŠ—×íîË7Úú@È ©Ó‘\LÅT0æÕÐòïIãã’¼PPi]ÿœ×\±Ðkbh
+xaJ”°e¨´ÍÅfOŸL_õ]3æ?>1ÈåÚéãêù¾HrC`5.॥^O ¿*7ÌçA.±¼}ñúäGý/
endobj
1877 0 obj <<
/Type /Page
@@ -8684,24 +8653,27 @@ endobj
/D [1877 0 R /XYZ 56.6929 794.5015 null]
>> endobj
590 0 obj <<
-/D [1877 0 R /XYZ 56.6929 769.5949 null]
+/D [1877 0 R /XYZ 56.6929 683.3585 null]
>> endobj
1880 0 obj <<
-/D [1877 0 R /XYZ 56.6929 749.1193 null]
+/D [1877 0 R /XYZ 56.6929 652.4223 null]
>> endobj
1876 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R >>
+/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1883 0 obj <<
-/Length 1201
+/Length 1264
/Filter /FlateDecode
>>
stream
-xÚµX[s£6~÷¯`ö),.Ó§lêl³ÓͶY÷)õxŽ@¬$oœ­ûß+Ø,xÓñx
- ÈZÄ×'g¿žþ¾˜_MƒíNöì“w—¿˜‘Ð<Î>]ž_¼ÿóêtêÏNŸ.ÍðÕü|~5¿<›O
-0ÒôNð ÁùÅosóöþêôãÇÓ«érña2_ìeiË‹l·äËäzi[±ûÃĆn`ë^Ø…¡ce“v!ž¹n3’N>Oþضf+Ò>ýa7€8püÎPKÛÐÀòq=×q+ ª‡‚NgÛ'‘ŠŠŸK™40@†;Õ¢„¥õ¢7tK²"¥€nõ✤0¾ych€ ðÃ.é¿õ¤‹aàaÜL¢ÖäÛsY{š¤Ü|ækA|ÃaiÇ×6²õþßxN >+¢hFsU[D,#ÂàuäÖp†ÈÅÎ x5Ö*'Yýy¥DÊ¥ùø§âÚqaXÚ±#Ñw4f$»6+Hšò{ðeCÅCƒkÆãXP)WQÑí*eR™q­ê¹ì³ÂSLÀóW†U‚ä2¡âG`{4°)bm­WãÕÀè–FwàNÞ™Ñ*W\¬r>
-Ù‰¿×Ÿ~E°m"À ‘Ç™´¢NÏ@Ì].h5ñ7Æ·+•`ŒouÄTB©@‰tlhdDG—þƒG:9ik@R¾n¹—©£|´©Ã€Å:løF EržER,;©])é¥.Ot[èŠÄTgЄ>8×â›­@LSRéËóXŽd($'ã½²ØÜèbþTMϽtÙš;©³PDi„³VÈï*
+xÚµX[Sã6~ϯðìtF—ø6<±4Pvºì6›>ÑLÆØrP±-¯¤²Mÿ{%KJœ` féd2ºXçÓ¹êèȱlñs¬È‡¶­0Bßv|+-¶5ß.Ž^Ì"Ð^õq28¹ðB+†qàÖ$oaEÐŽ"Çšd7Gç¿}ŒÆÇÀõí£
+t\Æö0¶B?†çzË„§w -0ª8;mý£š¤ZªÞ¿§RP±p=;ö°¡<9Q_Ç(_0¤ú¥ Êðƒ2Dpªœ¨=rD«¤P#½34;8Œ}_YW£‘J-­È‹||¥ägz³ÄðÃ8Å)G™?`´T=’k®îa+)ëÁ””]¼˜]~J¤¤â ®p5׈U±R½zq[àÔŒ’4EŒáÛBÓÝöD^·Ùc‹ý¡ÅÍcIáÆ0ŠÂx—ޝjMW&L(÷´K€{àÀXf· èÄ×öž£À÷»>ž\¸Žµ™ÎåæÃP8c¨¼L†–Š8³7*”aô'•Âþ:ªhR– Ux;¾+MîCÇó½=EÉÞ¬JJ=¼I‹„±éŽÆWñv•ñŠÆ”d7Ú~EA–àûÑÕn|d™p/6k"hV`Æ7ÑÒ´ÓÃ0qï·Á:Oa9M*–#úÎÜ.êLXëÝ@HïPzîÙ½š]!6#t&CýUi³Š1”ÑÜ£•„ØFà+0nLA’Là0€+áæ|ªå­ôC婉}ÍEAR³ÞÑ›Z;Skgta"óB8ícnF@E8Îw=×3iYÊ7ór wP>y0ˆ·S¤CqšF°n8î
+nö6“6Ô9%%Èp.ÒªR}Nᆗ5x³oQ$!ã@"õ=ŸÀÍm ìé¤Iïj@
+2o¹—ʽ|Ôäa€36dÁ‰ã²ÒŽdíL±§—µ¹×"#a¾3©Bl“ëL«­@†ŠdeJq_ÎX_N
+™òF#¸¶B~Ý
+ˆû#Nµ‹ä‹b÷ê$|ÐõÚX¡lÅðˆëÎDæí¼ÜiIÔ`z°H\ñ— ¸„eæìì”mÙ&|A‡z–¡móH×»…(ðäcCÇ+ƒ½)î~úMcûà#*D/ŠÜÍs…ë¶J>Ï`䯡aJ
+{ûœo?ž²þ8Sܯendstream
endobj
1882 0 obj <<
/Type /Page
@@ -8714,25 +8686,26 @@ endobj
/D [1882 0 R /XYZ 85.0394 794.5015 null]
>> endobj
594 0 obj <<
-/D [1882 0 R /XYZ 85.0394 696.3167 null]
+/D [1882 0 R /XYZ 85.0394 600.6754 null]
>> endobj
-1730 0 obj <<
-/D [1882 0 R /XYZ 85.0394 668.9738 null]
+1729 0 obj <<
+/D [1882 0 R /XYZ 85.0394 573.3325 null]
>> endobj
1881 0 obj <<
/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1887 0 obj <<
-/Length 1228
+/Length 1208
/Filter /FlateDecode
>>
stream
-xÚåX[sâ6~çWø1tFª%ß'OÙ”¤Ùéf[JŸ(Ã8¶HÔø¶–HBÊþ÷# 1ĆÍS‡a,YÖ§s޾ïèB4~D³ll{ÔÓÏÄ–N,-ˆ{ºvm×=R~ƒªPý«O£ÞÏW†£yس©­f5,ë®K´Q8>³1Å}@ÐÏ.¿Þ^Ý\ÿ5¼è;æÙèæëmQK?»ºùm J×Ë/_.†}D\‹œ]þzñûh0TMv‰ñéæöõÆS= ÃÁÕ`8¸½ô'£Ï½ÁhíKÝ_¢…#ßz㉮…àö瞎 ϵ´g¨è˜xÕâžiØ2 £zõþìý±¬µ®º6Æè˜6m Ijtulë
-†­F%–…MâÐp4 Òd#ÄZ}…Ɇ9[ácŒ'MüE»co9®8Ud8±q Ä’,g>–ÀÔ4go;8¹ŸçY½<M3É«”Ñb2f<ª²§Ì×¢mÑQMEѽ<Èzã’d/r™ûÏ\ù'çIÅîζ¼ ²?üµrJS‘± MTÖÚøPhv9ã¹¼(q€£[ o³ô0ëËa€cÕx­3%™åèÎÇMéª÷,Ocò,, *¦¾£oòFÆ:[*£º'«2aü¿òL!‡Uä¢ô¾¦µd´¦rRmAçÕúú>= ”ÎåéHÅ®³ƒIä0б&Õ×±z–”a/YľÍ#E0´Ù´
-…,òÕ=H“P´v»D«“A÷…;›ß­Y[Ó¾rGÕ¯'D@*j{<ž™µ¼¹Tâs<lPÇ$옆¹úiÕdaÏql­ö~#¬÷’n%/×ÂtjŒâŽèÉ®›j¿5Õs0…³ZiªµÇTë8S©nÀyÑñölµ$êÖÚ‡Øêa
-©«­­ï†–R‚‰£ÛíY°²Ãq°£»öû‰»‰¦‡Mó}˜ †öƼ‹ÔJ¥¶R‚í`áæ¾X§)Á1°azÞ¡|ÒVQ}
-«MWÇ¥¨ŽR<} §¼Ó¡6÷+Y8GûGïEcØý•'ÌÕ}Ø‚¦[;vH†ÑtÇÿrÀ“oô6×&¨Ðuéú²ŽÒÚeu\lº
+xÚåX[s£6~÷¯à1îŒT÷ÉS6uÒìt³[×}r="Qˆ•ä$N½ÿ½mœ€>u<  ïܾst,CÓåÏÐl:>ò5×· ­¶¦]»—ï®Fõ ¨?ͯ>M?_™®æCßAŽ6‰XÔ=ÏÐ&ÑôÌ%‚~vùõöêæúÏñÅеÎ&7_o‡
+† §8«EF^
+goÁdBßЭmå~œ×²ÔkEâWšU‘*F¥ŸÕt&ç35ù§\Ú
++–yMý$xÂçoø¥ †tŒ ñ²ÆU/¢H’—ÏÓ@„ó„p¡žÿèòôû³“0ÑL@³†,Èx\çćy ¢ILÙsÀ¢5o?@m•OkÒ¨Š÷_º­×‰¯òKÍVUæSY ŠZmtVI pøùc§ì3ZÔ•·¢˜Hš%ËþI\Á$4ˆ$ÒBÌž‚¤YÖºÃÈkÁ0Õ‰dj|lU(Ëk˜×¿¿aAÂéVNsÊ*:|^Lf[ÜiÆ™K'ðVëuÃJ©†mCËpÑŽð!mFJ_¯w‚Ù†9[î™Bgmüd«o§Š
+Ç7†ÉdÉVq@’•d*exOØ›Á•õy‘7Çsš R—ŒÑŒIrdãP†¢X^¤¼LëI¿ˆ ž{™ò7]°¬f÷ûº»û~µ^nš¯µAr4ç9;H¯ªÖƆ"gW1a\ô²¢Â‘Ýbðt›¥o³¾#9VËë\‰ÉKÌÀѽ`¹:f4•P,7œ…5Sûäw #ÒôáÖN<U9;öt*V-,åÿ¯:S¤C鹄Þ7òáˆfºn
+}kOóúm_õ2’ endstream
endobj
1886 0 obj <<
/Type /Page
@@ -8749,16 +8722,19 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1891 0 obj <<
-/Length 1059
+/Length 1104
/Filter /FlateDecode
>>
stream
-xÚÍX[sÚ8~çWø1ìŒ],Ûš<¥Y’¥³¥»,ûÄ2ŒƒEðÔj‰¦4俯|ÁØÔÛéÃX>òùÎ9ŸŽ¤#aé6å¦as2„™1 ;ÈxÒ}\|¶êWïFë{jr‹XÆh^Ár rlŒ¼ñÕÝo·ŒzÃ. ]Y° ˜…®Þõ¿æž?î>îûo»¶y5êäâaï¾7ì îz]€†µ>)(Ü÷ïå­‡á퇷Ãîdô¾Ó•±Tãň¦|îŒ'ÈðtØï;Rî0ãY¿ ˆ9'FØ1…̤t+ :uþ,+½™jŒ:9Än ÐÄ1r 7¹mØŒC‹š18î ¡«Ðý
-1O„\
-”BWªmä¥vk.¿‰$Q d쥂ã0€PÈÓ¼­¡½Þlml»Sé·8*†'me保ãYàJ9É_^2ÕFXµ^ ÍìMs?(>‘*)i¼y#dOâÉU~8
-Öç27[ˆÙ'Æ$sÁ?ˆ¡g7‰6s×6zPãDhÞCÌ××ùs«¼Ñ—E¤„yÆ<›—òŒ÷x–jõøyY¢ƒÏ+±6/…Üóôº §¡«f‹iàË"®×6³i‡©GäXü_ Йã»ÁjYmOãešHíÎνZh‡’¾ÅÒ™.©:˜Ç‰fuÇŒ_Õ&qŸObDƒhF½JÕfî'RÃÁ 8"‘µáß.”Ëiš…l'ª”§/“šamª½¶¦E1ð² ³¦VÉËMÝáÔ"f šØ&{†Œ4Ñ£7ªrÇš”öëÄŽuÈÁ‚¶wÛ¨JÜHÎE|O§„½—@é–|P- –«Ç2Þªê¡ö‰É_ú(ãU2»Ñô—f%Á6ù°ÙRb3m“² è—¬‹AnÛ–Q‘ï†äXvnFWT+µñ|±ª®Zß»ÊmH¬lMO]2¸jî\Í|°mh#ÇÚ‰–þáôÀz®ÀI\D!¡6ÿ1\Ä!Ñ3¡­¯Gù&Cl#ëD¾
--Ç"çñmRhZÍóx%8Hù‘z²^ Æi5ªôö$•?“çnNž«ÜGWž¹AeǃKÏgTðÿâ BίñZѨsf~Fí(EòE§|!Ž—§U ¸ÁV¥¢¬ÛI;vÞŸP~œ<ñ~Ð!¬éš‚ê
-‚Ò¦Ký/Œ_|…±»ß1mH‡”·„Tn'(² C¸½u* ³}ÏË»Žï]ÿ¸ÄÃendstream
+xÚÍX[s›8~÷¯à1Þ)º @“§4ëdÓÙ¦»®÷É›ñ#¦\\$šºqþ{Ølc'™Ýñxôéœs“°ôƒˆrÓ°¹ Â̘F=dÜëgW=¼|¬^õ·>Œz§—Ô68䱌‘_Ãr rlŒ¼ñÉÅçÃ> X°˜…N>\ßü^Jx9\|¾¹¼¾úgxÞ·Í“Ñõç›R<\†ƒ›‹A`‡a=Ÿ,vL¸¼þsP^] Ï?}:öoG{ƒQeKÝ^ŒhnÈ·Þøž6ûcAÊf<ê1çĈz&£™”®$aïKïï
+°ö´˜ÚÆ£d±[4q@ŒÈMn6ãТ„ ŽûÀBè$NTàÏL²t*Àw«”þ‹
+fÖÄõ¼´”,r“ M¤ˆéÅ1´MÊ
+¤ßŠG rÛ¶Œš\ƒàròx–¤ª¼ f“üæ¶¼;+‡Û`Ž!) ÂrÆH]ÑŸI,€T®
+¦²úY®ô+%R)’XÏk,ƒZáep¾»aàj‚Xãè»%B݉% ãò¦Mý
+oâêÄ÷ N<!·1;j·BÉGWeé@©ùLtiXå¹Ê½sWLK•j´ÎDA Rák€
+"q”‘ûã(¼­‰Jç¯ÕãU_ÅxA*¦*Iç¥h檇IìF¢ƒn¦àÅRŠéR†Éã"rµëÿ"ñýJqäVzF)› 9IÒIœtá! U
+~ãÊa=þ;5mÇ.TWJÛIô¹ø«dÖçU¦ ©ãê´…Úi Et·WJåæq¶©yuv³­ú/™€üendstream
endobj
1890 0 obj <<
/Type /Page
@@ -8775,23 +8751,15 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1895 0 obj <<
-/Length 1942
+/Length 2011
/Filter /FlateDecode
>>
stream
-xÚ¥X_s7÷§Ðôi51$÷ÿäÉIíœ;·ç¨/M=JKY{·ÚU—”ݵßý
-xôîÇÛë›÷?ß]Nó$šßüx;É”G×7¿"êýÝ凗wÓ™(R½ûÛåOó«;šÊ¼Ž·7·ß§¤Ï Jï®®¯î®nß]Mïç?\\͇½œîWð7òÛŧ{>©`Û?\p—E:ÙÀ3Q–r²¹HÒ˜¥INsññâƒÂ“Y·t4~‚3gr$€‰8 `ÁYÆAUž–,‹eìh[=eœG«®ß«¾zƒ{Å3!X™¦ÒI}:¡Á¯<å]Û~_Õ½±0ÄCŸûÿ­G÷†Æÿ¡Ÿ­·ªªzÏÛv½ø8¸?3à öÜçqóâÔ|¥ý¨lݵ3Ü
-žœoæ!T4Mýw×ú€~Ǿó{X6ʘû°W\4ªð˜‹^Wu¯—v4«ºñbÆöuû~yÃe¬îqÝ B¿Qö˜A«?Ûß{µÿKùSMÓíg¿ít8K ¦Mó
-]ƒÊáòØydÝ„{ç¨5|´Êên- ¿×¿r.ÛÍGµ?õ¨;Ç2Å$¬LDrb‡ oé—ÁÒ|Zj·Ú<oB…`Y–CïÈÇ\ü_]ˆCŸ)Óó&ôU‹‚'‰|Ñ>­ã Ê“aŹªYØÑ,I9KDYŒ78!0nÐØ’,&ôA ßZžˆCxrÔÅØ|q…Ý?¼£×
-:”,ÊHÑØërô²ÛˆêV$dƒŠJY¿
-¬Öì]‡ÅùDmÙs¼$EŠ,Î&§Ñý¶„!2D™¥€‘õ—0àW¼„§LÊìE 䬌ì*‘ zuÓ¨'=ÁòXx\bZr/ëÈ«"ª q}\øõ¶©—Šæ Ãü€¯ΨDJ‡±/ ^ò’åP¬Þ ZkF¼s–Ëà-uWçðV/ë™ogIÎ’¬xÖ±i‡„<òý\éh74ºù‰fÝ Œlc†•+¿ lĨX¼€]+(o$xKh¼cè¶jiƒï,Úm¡‚ü²š&³Poƒ#Y°2„š]ôÁGÏ øô~lÊA•j‰­ÓsP‡³B‹ç!º/Xí‘,†L9>Ú2àd(z{ ^¥WjרW”}ÛCI®†*„=v€©ôèYO…¾wsÑ]Hæ2Jcâ¸S¾
- |BÞ 4ÀäÚø´eX¹ð‚˵juEj@(׉@ì˜Xà.c‰s¸[Ü $NÄ~œ¤ÞId´»ÍÂÅ
-¸ ½p†sÎaœ !ËE8A§ï‚Ã8#Ð:Ù–dÕXжڭ› <M¢…2.@ª• \ ÄÃþÌ&
-ry •ÎðÄãôdùñŒyî‹‹{,2‚š£¸ Ã•"röµ]õÜuäÍ?Þ¼'ê_ú€n¥¼ŒnV^-éÂ
-o¼6Ü'~]~\éW¯F ö’aHœõµ8ýÑ„S /²‡SÆ » ÀjpƒMÛ85B]©ÚŒ†Œ‰)’1—Þ·¦ƒJñœcqàÈû
-3+/»îv|3ô9N ‡CR[—Á¡ÙáÛ[,>-MŒk¡é8ˆ}Ëhg41í¾›5
-w^0*ÉkŠ#ýy4mj³mô«ãõÚõpõ8°É\º|áíº Âùå'¬€—ƒ¿"èÏÎXŽÜ&²‚¥i!í£~\[²²mÔR‡óCû{…„«a
-Wë³€úJ†¾ ‡»¥óGuëPŠ>CE¢(œ1PÁ#Þã-—éàýë?ß@‘3è2™߯µ?_¾Ô Pœ$GÅ#Ú$Ü/ÁK/ã„A`ðîÊÏ÷ýÏt'ʸÃ~àî;"š)®õ»ú;]æB‡á+ peô¡ Ê:€;œ=‡04¨æCÔB¯U¸ý?¹·9RÞê§ë}ÝÎ?$v¾ÚñqÉ9Ñ”-ß=(—¡¹ >p%¼GªÚ7>Û9-¹Ê}é…qzwÿ¶ç@‚oâÜ%¦„ësçcÿñIˆÏ7ÿwü›®Øpû“ÃûãFyÁ’”ÀNA%¦Ì¾ø£0ügÄNœÿ/8±Yƒendstream
+xÚÅXÝ“Û6ß¿ÂÓ'y&bHQŸ³O›t7ÝN³m7îË¥;;²E¯u'K®$¯ã~üï lo´IÚÜÌ‚ ?
+¸ªS;МÀ·í 1r÷»Æ¯
+=2xÄú02 ¢Áú—Ÿ>@š¨21‹ïV†ûËÇšµÅaxP<¢-€û%XÉ2 t‚€wWrºo- :QD€À¶w×QM!q{¾ÀØæßñ2P¯€Ô¦ÑÛÆ)k
+áØ rx¿õ?®‡¿£áŠ ·¿`xœÂÝa
+Jt$PÆ%‹?ú?Øý5ËRG¦ÿBcÚÜendstream
endobj
1894 0 obj <<
/Type /Page
@@ -8804,22 +8772,22 @@ endobj
/D [1894 0 R /XYZ 56.6929 794.5015 null]
>> endobj
598 0 obj <<
-/D [1894 0 R /XYZ 56.6929 541.2091 null]
+/D [1894 0 R /XYZ 56.6929 445.5677 null]
>> endobj
1897 0 obj <<
-/D [1894 0 R /XYZ 56.6929 511.0952 null]
+/D [1894 0 R /XYZ 56.6929 415.4538 null]
>> endobj
602 0 obj <<
-/D [1894 0 R /XYZ 56.6929 511.0952 null]
+/D [1894 0 R /XYZ 56.6929 415.4538 null]
>> endobj
1898 0 obj <<
-/D [1894 0 R /XYZ 56.6929 486.6838 null]
+/D [1894 0 R /XYZ 56.6929 391.0424 null]
>> endobj
1899 0 obj <<
-/D [1894 0 R /XYZ 56.6929 486.6838 null]
+/D [1894 0 R /XYZ 56.6929 391.0424 null]
>> endobj
1900 0 obj <<
-/D [1894 0 R /XYZ 56.6929 474.7286 null]
+/D [1894 0 R /XYZ 56.6929 379.0873 null]
>> endobj
1893 0 obj <<
/Font << /F37 1030 0 R /F41 1223 0 R /F21 942 0 R /F22 965 0 R >>
@@ -8864,22 +8832,22 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1908 0 obj <<
-/Length 3094
+/Length 3021
/Filter /FlateDecode
>>
stream
-xÚµZKsã6¾ûWè¹jÄàI‡=8ÏŒS9±Úìfr %ÊfV"’²ãüúíFƒ)RÔdg¶\.6F£ ˆ|ÂàOt„V؉±*ÐŒëÉbsÆ&Ð÷þŒ{žYÍ4ks}wöí;i&6°¡'÷«–¬(`QÄ'÷Ë_§a ‚sÀ¦—7ów×ï¾½87jz}3?Ÿ ͦ﮸"êýíÅÇ·ç3i>½üpñãýÕ-u…^Æw×ó·ÔbéqDèíÕ»«Û«ùåÕùo÷ߟ]Ý7¶´íåL¢!œýú›,ÁìïÏX m¤'/ðÂn­˜lΔ–VRÖ-ë³»³Ÿ­^7tÈJD-Pà!¹9>-MÁ`ZOÉ&E<CDhÁÁ¡šˆ(ÞŠ,° fb´ B)¤ ÉSšUè—oß Ñb£À(“#ÓýS®ä|šfi•Ækz)“Šˆ|…O1-Îy4Ísߚś¤f,ž“¢ô"ü³Ü&‹ôc"YRîL³GSË'!”ÓϽý•g ¶¨.(6ã<°Z §á?Ÿ’ Ùì´"]­ŸÕÓU\T%Ñ»í „ž¦•o(“ò`lÛë|TsäôDų%ÑñÐgý€¢Va8 'C퀖M^VD9±É"Éüû:­{œÛaPkbhõnÊ»V‹Ôfz½òý9=ëÀï¤5ŠnFÿHŠ<»‘bºÊ êY¬ãÒ3]ÏßA&à°ÚR ½‹…Gæ›mºN–³4£†e²ŠwëjØe`š gøÜŒo º$ä*°8Trz‰Ú%¥ zDVOqFÔõÜŠŸjAïàóa—®+Tn@¯jIÙÅÏxZT¤‚(”᤽&¿h•+&¡;Ôx©ÿë¥ XSZFÇÒ‹€VR‚ ,ã”6Šd™Éb(uD ²ªQ>uüHÁzN— Í$"
-4ÑOqI首ÎcØôv~wwu‰´®“]îžK?æÓìíÍ?8<9µ¸ÄÙ™lþË`Ä)È´P½[¶y†¦bKê—p™>f.~@W´‘
-ÐP”DÖèáA §¤˜„< ¸aÒgÁuò£Sf9®ž>p9ñ<²MAþöKž]¤Ü¶
-Ï$[åMVºÞM çp:×ÛzµóÂÜnˆÂ³UøÏ£énQQŽ܉q)ãXÆÂ’s> 1X•äÇ7Ô5¿ºÇøº76½¹}( ¨ï"{¥fÊYÔ»KE­©—^ïàé3Lá,†Æ—´zÊwƒûÛ”™&n×é«© …ÔšnÚ­{·ø^ÿ¤… ñæ)Òê•ÚKÈdž9ò8Ææ‡d¨¨HóØ-U¹ W1·²=±™"‹Ô2O<K†Û³³Ýb¸Ä(cŸS(›Wò§ó='iCe
-¸ÒÑþtÉ-­ÒoJ¢éƒÔ&~%"ß"b Xòïža•cýD9
-Z}oLwDq™…¹å°‹È´ž•²kŸy\êž»ŸA$ìÖVðÐg¨6vB ž4u ‡» ®ï¾,޶0µ¨¬JŠ,ª±• "ÁÌ^ C™BÁ椬ÐÝTP:`Án“,ñDÈY³!ï !(¼Zå.&%wÒ£²ˆˆç¸ô}›øw¿±¸JhU'›2iå#¨ ߇yÀd ™®½ehš/ –6`VFuL‘ÃÂ/õOÄ‹/
-ÒT&z¬*6õ. xdL¾tl%^xûx}ÿé.¿S&‡† ,c¼}‚úþºê*@ÅŒ+Js*f˧¸U}Ì4œ£¬U‘i«†°*pás\¤¹+o¯P1oJêYÆUü€ŽlJ(&Ê–÷n¸ç
-êeÓG²c·­Ù·EŠÐò’鯔9=ó LT’ûkhùOòúâkòÓ{臻¡ …ëuñè+ì×,Ï^7#,”fõx(ëÄ\dþT/"CBÁ†øœ¬óí†nL ÇÍÏ˧8/a=Ⴖ?\ÌiÜ–ÜTå‹|M]‹výã$eÄJ«6éÒ…a˜aWÓÓñz0DÄLEþ¾ ÅÆÙPµU—2Ýëwܨžö«°ï¨4«]{ùáâf(
-·HŠmÆ
-·šÿ„Å}¹dòbo⃪W¹i´8ø†ë„"}iƒ•[6 \è°q°µ¸FÀVs ÜÏt±&&•Ÿ¼á˜½‹5Àewú¯ ¶£—LPPȦòš XÈMÇÎQ¬yþ÷å~>Ö” ŒâbÜõ × EúÒÆ±µ´âüÖZ\#X«¹Âg£ÜDXEãó7\
-tËRX_!ã] ¾:ܼ“†G'aÍXõRÛ†Ä5ü'ŒîËý|Ä„â”÷®SŠô¤"ÊŒ
-xc÷{.ó²!_‹¹{iæ?IsÔþ“)„?GÔ_G¹¡îÚ¼-d[¤›¸÷QcR‚Sä`­
+xÚ­ZKsã6¾ûW¨ö:5Bð" ÌÖgâTÆÎÚÞÚTZ¢,f%R);Þ_¿Ýh€¢$H“ìÄSc6  Ñ ÐbÄ៥ˬ´£Üj–r‘Ž&Ë3>z‚¶gÂËŒƒÐx(õõÃÙWïU>²Ìf2=ÌcÆ£‡éOIÆ$;‡xry{óþúÿî.Îs<\ßÞœeÊ“÷×ß]õáîâãÇ‹»ó±0©H.¿¹øþáꎚ2?Æ××7ïˆcéqdл«÷WwW7—Wç¿<|{võЯe¸^Á.ä·³Ÿ~á£),ûÛ3Δ5éè^8ÖÊÑòL§Š¥Z©ÀYœÝŸý³pÐêºÆì§¥aifËH%òãÓÒ¦õd.X®ÄÞ¤c#X–å@d œYÓ{D‹G„äÌÂ0£<µ,SR9—Ì«ºC»|õ^ÊpfX®%NŽBóL)DRÕUW ziËŽˆf†O™¬Ï…IšÆsëbYÁõs¹nýþÙ®ÊIõ3粜cÓVõ Tçg)µÓϽý·©Kä0T ÁlšJ§á¿çeb6éHWëgõtW¬»–èÍê 2MªÎ3Ú²Ýë;\‰u6
+ =QñzJtëãVQ´×*Ë’Â
+´7±$×bÏf¹ªåt\ÕĘ–³b³èâ&ƒ¥©Œâ ŸÛã[]
+0Á¹
+Vœi•\¢veëû‚^k"»yQu}ã{Ï%qÐ:ø|ÜT‹•‹èãUm ]üŒ{Тf&SÙh˜“Ÿ•åš+hÎÒ„W
+”ú#†Ç€CÅóìpp´Îrf¹ àX—Ój]Nbàa8àj®=xÜ¡ 1†¨M]ˆ¡õ,¤
+ž=µÁ©Ìå_¦6üEA ?ôëíáJ ðçÖˆ?²/ÀýœdÏŒ&¢R1@G®KD$îWE]µszÁðl‰DÚÔSW§À+»º÷p/–@ølArÓz^[-«„c$
+îSUGØ,gímåN/Û˜pÅpft–[R§Ùðp6“îèúâ1ùð4@öº§‡ ß‹p¦ 3ûª i
+#¶|ÿþèf Û £€ë[ z¸;8‡,Ü÷›ˆ¬Â¬„Z|x©ç _zéCQ9䜙G¨·#;¡bFçá–wÌïÈQ/d8\×]¹®ËØ’ΙA×ôŠ7„6'meº á” +Ø,éâEð~Cޞ¡ž^²p•™ò°óä¹h}Û²øÕo,®®œ°iËYˆHŸqèæÈ’äi°ÞNwÍ4²`©k• w/ä9¼u¨ü3ctJÓ…—ÁªbvI`àh5ñ÷à…·×_ø!¿§†_}u®“ ¼™(°˜W2¹îv bÆÝˆ4t“Ò΋Aõ1N ³Öê=Ï UÃ-±*pás±®WÞ`@¾Â cÙRË´èŠG4ô¼BP»û#ìî%@›5µòä‰Ö±YñÕºÂÐò#Su }Ú†žM KÔJøïÀùOùúâKÝOï¡ßÜÇ2@3­Óà¿>ýõÎkÝԯ˽£XgJßßGÍtQûkkiRt6ÄçrѬ–ôI
+– ÀD!sºéˆ~*õBã¡Ôñ¦—ÚÞÔ‚ÿ«ÙAù
+òÃj¨‹¶úŸ¯^úär÷ÇüãÁ•[–ÉÓïeN«°7R<²Â!
+OœÑHæýûgÿõÍöO“àô Œ‘G23
endobj
1907 0 obj <<
/Type /Page
@@ -8887,61 +8855,33 @@ endobj
/Resources 1906 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1901 0 R
-/Annots [ 1910 0 R 1913 0 R 1914 0 R 1915 0 R 1916 0 R 1917 0 R 1918 0 R 1919 0 R ]
+/Annots [ 1910 0 R 1913 0 R 1914 0 R 1915 0 R ]
>> endobj
1910 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [251.8681 527.9012 347.399 540.6384]
+/Rect [251.8681 384.4392 347.399 397.1764]
/Subtype /Link
/A << /S /GoTo /D (root_delegation_only) >>
>> endobj
1913 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [284.2769 283.6598 352.9489 295.7195]
+/Rect [284.2769 123.81 352.9489 135.8697]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
1914 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [282.0654 253.6328 350.7374 265.6924]
+/Rect [282.0654 92.6626 350.7374 104.7223]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
1915 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [311.9531 223.6057 380.6251 235.6654]
-/Subtype /Link
-/A << /S /GoTo /D (access_control) >>
->> endobj
-1916 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [299.7586 193.5787 368.4306 205.6383]
-/Subtype /Link
-/A << /S /GoTo /D (access_control) >>
->> endobj
-1917 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [292.0084 163.5516 360.6804 175.6112]
-/Subtype /Link
-/A << /S /GoTo /D (access_control) >>
->> endobj
-1918 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [330.7921 133.5246 399.4641 145.5842]
-/Subtype /Link
-/A << /S /GoTo /D (dynamic_update_policies) >>
->> endobj
-1919 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [401.5962 103.4975 470.2682 115.5571]
+/Rect [311.9531 61.5153 380.6251 73.5749]
/Subtype /Link
/A << /S /GoTo /D (access_control) >>
>> endobj
@@ -8949,244 +8889,266 @@ endobj
/D [1907 0 R /XYZ 56.6929 794.5015 null]
>> endobj
606 0 obj <<
-/D [1907 0 R /XYZ 56.6929 485.332 null]
+/D [1907 0 R /XYZ 56.6929 335.882 null]
>> endobj
1911 0 obj <<
-/D [1907 0 R /XYZ 56.6929 460.007 null]
+/D [1907 0 R /XYZ 56.6929 308.9113 null]
>> endobj
610 0 obj <<
-/D [1907 0 R /XYZ 56.6929 339.8289 null]
+/D [1907 0 R /XYZ 56.6929 182.7451 null]
>> endobj
1912 0 obj <<
-/D [1907 0 R /XYZ 56.6929 314.9222 null]
+/D [1907 0 R /XYZ 56.6929 156.1927 null]
>> endobj
1906 0 obj <<
/Font << /F37 1030 0 R /F41 1223 0 R /F22 965 0 R /F21 942 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1923 0 obj <<
-/Length 3306
+1919 0 obj <<
+/Length 3207
/Filter /FlateDecode
>>
stream
-xÚ­[Ysã6~÷¯påeåª!âxœ$žY§63Yó°•ä–(›eŠTHzå×oã/žŠkjJ ÐìøÐh°Ûø2øR¦(¡Š]
-ÅPšàôr³¿H.`ìÃv4kO´îS}wñÝ{*.RœðË»]—D‰”øònûÛꇿûåîúöjMÒdÅÑÕ:åÉêû›?Úe~øôñý͇_oß] ¶º»ùôÑvß^¿¿¾½þøÃõÕËÃûÄq8óÂû›ÿ\ÛÖ‡Ûw?ÿüîö껟.®ï‚-}{qBµ!^üöGr¹³ºHU2½|‡a¥Èåþ‚¥¥ŒRßS^|¾øo`Ø5¯ÎÍ_J%J%3HHoqmÆ/Eª§„š Ügm—7¿')¾ZSFV»º±î1× ºú»®rÛu(Ÿ[Ûʪ£mÜüâ:¶Ûæ
-ËUÞ¶ykßkù¦ø=IH¾µ4/E÷¨' ÔÂ=µ'ˆ¤\‚1Z¡¬lëuUwÅîèˆû60´L8Z½ZR¬Þ9õ꦳­}æÔ»Ï{º\á•Sø^®)Æ(Å0Ykh¨4%†¥QrM[åÙfN]K¬Tú*mSŒ¸J°§=Í‘•ÐÕú7]µyµu=zÒu—ci:÷ðBö·vľÄV™}´FëŽ^n<›¬rÔ–![mó]ö\v¶·ÞÙN
-˜X÷±Ï³ª¨vÏ¥}6»N7ÚîùÞ¶ô¶kõòàdug €ÎÓ*ÂCÑÚßÎæûCw´Í²h;4ñN JRpœ\Q„9›wÆŽfÝ#²®ÏøbO¤Û<æ›§u•\Ç‚1£ˆK—ˆ¦¢^ŒIÄE2”}÷X¯£Võ¡+jXcê&H÷ð¶¶G£E÷¸}Ø5Ŧs#ÖÝ)0#k²M§·’îÌ╣ɪ­¥iU—ýe;õ^2ïåM—Nò¶ÞÛ6 ر
-UÎõH$`ÿ ÷™õÄ@H¹ñS¥y @ìwµøñãgÛpêªõt¶k“È·¶ggºê½}²&B£Ê»—ºy2g´àÒÝ\úáKÖAͦ6œ¶€YÇ«6–$C|»£BÀt9ðç\­ÞûÓ=&̶anÛ8Ûg6;œ£XRGfö„`´ö'­Eâ¶ßH”"údåŽÇ.+ÊA8ELáÞÁr^u"H‰÷m™}ÉgŽUo¨ùKÖTs‚("ŒŒ4¿9±5²´çqУŽ$5Ä^±?”ù>¯:ã:CšY4áñ®÷±¨º9}0¬×y7SÄU*üP*âˆ<ÕÉíÿš¸!"a>‰KT3¢ˆ¡à„äCÙŸó|ä•·y»i
-ç–ˆõ3K-PB˜‚úŒ# q&ÃyS$Rè)‘#í`ópi·=sý‚¹S¾ÖÜÍÉ0?cŽðX%
-q†ÀŠÆç=P-(2åfqe)5‰‚x!в>Õy”ªÓ½åv“5Û ÖR†i\~ šQ`èœR5xK¬õí Ú Iyq”ÁÕ…%d`jq~Áè)ßW#Ž%IØÄñÙT ŠL¹ÅÇõYboÄõ¨"ˆóT§•¯›?4EwœB¨.4QÕŒCÈI}K”CÞrCƘÓ樀»,}#b˜óô VOù~æâDˆøôªE¦Ü☃@IJÁ0×£Š`ÎS–ª-îKûMâzŽƒ#0*>PÍÈ"#F”*ðϧˆë™1’Í)’J©óx#ú; ZÛ§_°yÊ÷õ§ªJfѹ÷DKjŒyÅÁØ$’-n}ªØ<•‰óFß´×m­»®œ:¸V ˸jFƒ!ÜR$ÅCÞn3†Œ'e4âß쩦Fý›£_0zÊ÷+ð¦À'KŸý@µ¤È„[rLèd!ŠëS‡\ ÒŸÛ¬Ë×Ö?<µOÌû•˜/h¨fT`N$H(1ÒámÕ9KFâáîG¸`çQ§?ÅŠ¾z ¨óô fOù¾þT…Û˜J¹ŠÏ ZPdÊ-Ž:FQ"Ô—²>UužJKÜVm›oÖnÉöõ6ŸàNèýÁtT3J p'J¤iñ6¸›·e¤
-6¡«.o6Ue² ”ÈUæ3û£“—¶eæ^‹.oÙ&_oó²ØîU±òRtª.ÒÎbÐ)´Æóé²Í«®X»L­Ó{1 l^U¹
-hœÊtÃB~«³çÊæuŸ)‹Ðöù¾Íÿ|1ö9héè¬ýöáµfÍÀ€àáY§d¼u\7|Ÿs.¿3žub³‘æ7³?/™Ë‡þÆùÊzì3O’SŸêóB%âú{¶MÊšÚܯ=À!ÑñcÏ_B,ŸÃú¦¹ï¾™Ë,)ýqÂ{áo5?ê‹}€³ú×^µ¶]e]ñʼn/ªõ>ß×ÍÑ>ÚYØ®ïË .J}ôš:ËLY„pie2ؤ†¬Î½ŸW3©:9*è²'7IƒÍ–=Ž?Ùò JÙêKV>ÛÜ+=AEêVÂÊíP±³½Ùv[hŸ•¶¿ïPØjÛÀD4ŽÛ£ÎUšîû\WBè¾²¨žl˜iœÔ¶×9,¶jóÞ×uP&_ŒWŸëý,ÆÚL'B¼Ð“í¹ݦ|Þzºj›¸
-í«îŸOG´m£2.nÂÒÐÇôýqP0qöä!úû›¾GOž>Õù“'POYÀ"&çfàU‰Ë T3‚çøh©«Â’ß(´úO¾XB8Ë?òbL6ûºÇòž~ÁØ)ß×Ç6D œª…YT ŠL¹Ec}ORЉ8ÂúTç¨Ì
-åeþië׳·¸”#%U\¾'š‘?
-/Ý9ýºÿ›S¾Z«¦®»õB çˆK.M ¨fôú‡1·ø¶„«’°‹ãÛ²GÙ–žÊÔÕÍË\=€. UTp š‘<¼qèïi”E2¸¡4Ôšs}gûÝ©ž†Ûƒ µ]™ý±ú›hÕ… ÌUÂéÏ̦Ÿ)‰‚K¹H¸àÎ|†)±ðåC&ʱ2Mm¨“T,ëú N «wm}ñÀBaÆãá6Ìv¦„Žè2«æh®8pó ÉÄ8=h >ä]^©jÛ™Uí‹ t¼)¸¾Š”óS€¡TÍ_?ffÁ”rûYx©ŸK'?Ó×2§“í©êf¯£:Ýå§ÃØVÛ> (‘œ /kFåÛ³@¸ªò…+wè<ü=QýzrÇ@§a™br=ÍTî°ðJÍð÷ÿjïPØÝ„tÙ#D  \õ\ï£kØË¥n™*h•—õ½™eèiׯìYƒ…{Ñøp ±å¼Ð1,zÖ•¥Èì£;Y‚L{{œ5u>Ü×ö|É$£‚RJx8Ó\Ñ1?ŒãqÑq(éó¦Y”÷N£mˆ¬C%rˆÿ>EÝÕv4¦N•&Àœ‹ùCÙ³þ˜ÎýÍM‘þC‡\À·ÇÿñßSœþØ„ D¥<ã_©®øë´WJÏ£RcÍÃ^LUÿ?C_yendstream
+xÚµ[Ksã6¾ûW¨rY¹*Bˆ'É̬S›™¬í¶29Ðm³,‘
+IãýõÛ |€Š·¦¦‚û|l4Ø0^%ð¯$G Ul%C<Á|µ=\$«¸÷ñ[ÌÆ6CÔ÷·ß} b¥JIºº½È’(‘¯nw¿­øç»_nß__nOÖ)ºÜð4YõéGÓ£ÌÏŸ?}¸úøëõ»KÁÖ·WŸ?™îë÷Þ_¿ÿôÃûË –ÃóÄJ8óÀ‡«½7­×ï~þùÝõåï·?]¼¿õ¾ ýÅ ÕŽüqñÛïÉjnÿt‘ ª$_=ÃE‚°Rdu¸`œ"Î(u=û‹›‹{ƒ»Ý£sãǸDœ°tµ0N¡1;Ê J8ŒÚF0Œ(M•e‚çFÙ¡ô(gû}õ¼ië¬lîózê4f
+"WCÁzšQOê1gˆ$ŠŽõßä¹ööÑ6vy³­‹c[T¥é¨îµYg”@ a,˜÷b¢<MQ*@·åÔQJÌ*¦#OÍÍúaeן=~ÁéP®qzÛ»§©‰SÄ“GB& ƒïQK†Ò´!(`¹¥’ÀÞÄ”-ðm€ŠðÍ¡ú™:wY›‡lãˆr¢âÚ=jFý˜oðbQFÆúß’o½S¶$Ð|žm0‡9Ê6‹_p9”ûz¶I½4IãcïQK†Ò¢lK¡!)Wq¶ QçÙæQZ£™¡Í±ÚÛ—naBX\½GÍèÓêuAŒ ¸9æÛâK’¼1㟙Ÿ/ ñ¦8÷–„0G§ú˵½þµ3\£Ìµõ
+©–b Ê=jFûhÊ)äw‚OÔ.÷/0ìD­yVYîO{s]Ìñ \€Ùã–6½ÙS’C“ åØÕ‰Lò×Ü´¦Ñ>ºÛÿ­Ê\GÅ„®o-¬É[Ó
+=$rädd7çñ î†rÏíæpð•’ »G-J‹îæL“bdd=(Â1 ê'v"»-l¼¢q†<ªÜƒBíãÀ¤`±r¤þ-Y6tb¢[èø#åù¯¢LIÈÐÏØ×+{H}5ÑX¢¿6)wŠ[ÈŠ³,ôE«©yš Pž9T?Gió‡ºhÃïð2¤°Q<jÆ‚1× ¹¢DŽMxK²™² CîM"l£&’¡1º9ü‚סܿ@8†R"D|ø=jÁPZ”sTPÄ`¥Ü
+•Ɇ#J´ÿ=®©×>L«=I¥T¤Ú£ ½däf´Øcáq‡©¯_@U‚ÈŠºÃ,Ø0‘'ìɰJ‚Ú¡˜Cuya^ë}õ¦©²MÛîà–Àü`7À£f,óŒ#)(›ð6D›qdJ5‰@o$¦x ¤¹i¿àt(÷/MÀ%‹¾G-H‹SˆÅ „ó˜Ý fPQ41á©y
+Ø–?pÕí1òÓD‚„#ío³xÎù0Qû:’
+vžiú[«è[*4ZtÔá©Ìׯ›°ÇR<U±1÷˜¨ SIQvIôG¦…€6Dg˜Gi»²iò­+Ǫ]xRBè÷ ]°Á£fŒ1M2”H1±âm¸6ïËÄ
+ëóq @çùæ@]\ÈÚì.kÂå”0Hꕌªõ PïˆebJŠÉHqw 쾫%»OöTue ÓeÊ>Io ¹_™Þ;‹²•'fë|Ò´UmÊ(^0K\åîk]q;q•ýLÿÈ}¥OþŒ$„\‡‘œŒË3ÃÁ Îê@Þ‘¸
endobj
-1922 0 obj <<
+1918 0 obj <<
/Type /Page
-/Contents 1923 0 R
-/Resources 1921 0 R
+/Contents 1919 0 R
+/Resources 1917 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1901 0 R
-/Annots [ 1925 0 R 1926 0 R 1927 0 R 1928 0 R 1929 0 R 1930 0 R 1931 0 R 1932 0 R 1933 0 R 1934 0 R 1935 0 R ]
+/Annots [ 1921 0 R 1922 0 R 1923 0 R 1924 0 R 1925 0 R 1926 0 R 1927 0 R 1928 0 R 1929 0 R 1930 0 R 1931 0 R 1932 0 R 1933 0 R 1934 0 R ]
+>> endobj
+1921 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [328.1051 737.5313 396.7771 749.5909]
+/Subtype /Link
+/A << /S /GoTo /D (access_control) >>
+>> endobj
+1922 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [320.3548 707.2808 389.0268 719.3404]
+/Subtype /Link
+/A << /S /GoTo /D (access_control) >>
+>> endobj
+1923 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [359.1386 677.0302 427.8106 689.0899]
+/Subtype /Link
+/A << /S /GoTo /D (dynamic_update_policies) >>
+>> endobj
+1924 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [429.9426 646.7797 498.6146 658.8394]
+/Subtype /Link
+/A << /S /GoTo /D (access_control) >>
>> endobj
1925 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [286.0435 622.8901 354.7155 634.9497]
+/Rect [286.0435 460.3869 354.7155 472.4465]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1926 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [339.144 592.2874 407.816 604.347]
+/Rect [339.144 430.1364 407.816 442.196]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1927 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [336.952 561.6846 405.624 573.7443]
+/Rect [336.952 399.8859 405.624 411.9455]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1928 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [322.5463 531.0819 391.2183 543.1415]
+/Rect [322.5463 369.6354 391.2183 381.695]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1929 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [331.4327 500.4792 400.1047 512.5388]
+/Rect [331.4327 339.3849 400.1047 351.4445]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1930 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [361.2812 469.8764 429.9532 481.9361]
+/Rect [361.2812 309.1343 429.9532 321.194]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1931 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [387.8612 439.2737 449.0612 451.3333]
+/Rect [387.8612 278.8838 449.0612 290.9435]
/Subtype /Link
/A << /S /GoTo /D (options) >>
>> endobj
1932 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [414.4213 408.6709 483.0933 420.7306]
+/Rect [414.4213 248.6333 483.0933 260.693]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1933 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [330.3165 378.0682 398.9885 390.1278]
+/Rect [330.3165 218.3828 398.9885 230.4425]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1934 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [259.4835 219.7917 328.1555 231.8514]
+/Rect [259.4835 61.5153 328.1555 73.5749]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1935 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [172.152 158.7457 267.6829 170.5463]
-/Subtype /Link
-/A << /S /GoTo /D (root_delegation_only) >>
->> endobj
-1924 0 obj <<
-/D [1922 0 R /XYZ 85.0394 794.5015 null]
+1920 0 obj <<
+/D [1918 0 R /XYZ 85.0394 794.5015 null]
>> endobj
-1921 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R /F48 1243 0 R >>
+1917 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F48 1243 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-1938 0 obj <<
-/Length 3119
+1937 0 obj <<
+/Length 3166
/Filter /FlateDecode
>>
stream
-xÚµZ[sÛ6~÷¯ÐÛÊ3J
-βlDÓòŒŠ/oÿwsǨjY¨ˆ…ÐP=ÕñÙRƒQÍŽtÅF?Ôº©ÛÃþR/ëÃð2›ÐøN_ZóçLÃŽ‡W+`·+뢪ŸèçÏBÄhÙW7q—@±L%@äÈÈÈxßj­§èýµÞÐ}¤,“BÛŒu8­¦4'Þ¨cº]¿7µ­‘%l©6”N™Œ‡ÌG Az¡rØîVÖ‹Ñ\ ã$$ÛC†Â{~âŠi¡ºÒ}¤ åyMå±.šõq[ÖŒã.G¨W¶<å> <”<ZÞzÚsÐlÞ¯ è¤x|ƵTÀ»e8ci:«3¦3X‚rhBn×±¼5dð¾Ü«Í¦y«µ -–Eù˜7jµŠý£¥Ÿ4÷–¢€5ì…ö‡’ÊæS¹ßWEQÖàî8J–÷϶§7jÕÚÇ]/2{NÆKux¶ÉF2‘fY?ÙÌE,ŸÄ.^§cRH–á‚6ŒIÊ ea)sÿ\Yò¹
-– åR &¼‰±2XiR§i»É?•Sö$Œ¥ˆ>mç©Ìx.MÏP¹ƒ
-PÙ¡ÈÎÏ+ËšU[ý>NR²(9£€M(ÐKvMüÒÓàCYgQ¶ë}ÕÉZÇNÎR‰XûùÛ1ŸjØ™ÀvŽ€D20U„
-*Ø'¼orˆ‚Æüñ¸sL‡*ÅVxÉEx<êŒ"ãÑ úDYtæm¢‹
-0С&ç¬*6“ „UAó( kâQªôY(Xšá4tuù›XرhÈBÉT¤Å< “˜).ÒžÑ!:üóÇãþ r&2-8uF‘ñhaiaêÎð
-pЂæÓFs<Œ³ <Ä!TBzxÐX‘‡UùÜÑäïLƒÖž‰wìŒÃkÃ,S˜!õl1ÐÁÃÖFýãü“ðBea.xPX‹ÑXAòŰf.ϼÄtQóôó¨ù„1É?É$<VÅ£&téç@ͤŒÊü5
-fÁ8MÁ,c¶e`)NÀi¼gtp%&øëG£þ 
-Ø;@ägÁ£Îè1-LB¨4Îΰƒ
-СPbÝðëØðE:fRië@b»–j|ƒï‰ý2t;)?œeØm)•ÌrKˆ”¥ÞÈåñgl;û¦1R)‹Yé,ìs:§Èh´0½$ì‹¥’gèÕAèåP§Zå&,É„K÷¨ ñýa)KÒ˜÷噕uhÅ@4&TÜÃ̲ "…§iÜ34Ä6‡?còxÜY¶%ã-fï° :ߣÎh2-L·PÙ¹)]T€nÕ™¨C³j›|Ì·˜é(–añ5!¿Ï·Œ¥:Iû
-|Q¾ÌȆ—I  œ
-¿>¯ó“Hsè¶zªó•ý³,–ºÿúp<f :ÇÃòÛw>\¿¥:Žat¤‡…¾<— AöJµœ£›&/ÜstÓléWQµñ+u䨠1³}
-þ¹A(Œ2W´}¿q9ÊÏùv·Áàøö‘îyàѧíaëfK'¡¯ìý”1µºÛ+¹½™üºäKO1l£åkdÖx&X„Û*ûtm‡_¾.ô×_s!ã©É¥€|êˆTã] —FçÂrx‚ïXJ»„CÓüf0U ’Óž‚\ì&Êj¥ËPžæ÷Ðklâœ/ ¡e¾:“Ô…-ª¡ –½ž ÚŸ¼¢âäõ?ö”áÖÆÓ2pâ€k÷Ïe ‘©t1K[…¢¥F¿µÁ]—áoº…5L%§1 È?ÙGðf€ê{À½…?›nØ× ;‰NÚMÚ•f $øZ¯1â(ÆP˜ s¿Ö`ÝZUBj©%§SÝ+UMÁ
-ÆÒËË ^aa£C
-ŠŽRhw—IØÖ\ï]Yêı}ì+—‘úœ™]•9—ŒÃê^•»¨ùUÙ£áOt½:ã©¡ÊÂxÔ„
-ýí lޏ}hE–*ê­ÈR9r@GoEÆ·"+˜IZ‘±•ÊÈÐ
-Zª¤½î†-E³Í17b› ÙnÛd<b—á¦ëtÈõÜpM/óµ«~§Ëüxxnöjk¢ºÜx懥åf:0 z\FÒçhuºBÕ1X›l*»«û'“pø†JÜ€õŠÕÍû»¡èk¼b(<»Ñîƒ=êRL}z•LıG•eaG5a ”‹¡:QÒé>¹B$Îgf3"–÷˜,h›,¼²´Ç$ ¼áf¶öÐ2V3•ø]T 5ØQ×k°gvù‘W"‹œÏ±º=š=66¶ò`Q9íñÁq š`æÖFlØWO®ÓÞØêÀúÎ,r,ˆ%^ªÊ­Èª}3•zé­XFýÝI]lêĜ܉ìUWlpê˜ú#•9}FFvgÂÍûx…×+æ$ÂäB„c“½Â Ê(•Ï\™– Ã{ÎÉþÛ ûËשOwÍã”I­g¾Àˆ4að°rJ¡“ys3$‰}Fºÿï/­endstream
+xÚµZ[sÛ6~÷¯ÐÛÊ3Š;Á¾¹©Ýug›vwvgÚ>Ð"e³¡IU”⸿~®âl·i<BÀGœ >
+a¥Èê>ÿi-E—Ð^¿ýþÝÍí7?Þ]]&|}ûý»Ë x}sû¯k[úæîê»ï®î.7D ²~ûÏ«î¯ïl“t}|uûîk[“ÚÇL§w×7×w×ïÞ^_þrÿíÅõ}°¥k/ÁLòÛÅO¿àUf{K•X½ÀŒHšÒÕó Θ¯©.Þ_ü;tØi5¯Nù …å<É‘P˜ô2A !
+šÌH~_8Ä6ûò½ØzÄΑÂD­€r0Y%×Cm+[¸ërÃã7ÝÆì÷«µ:4Íq³ÀQÊbÓžF#ŽÔ„´G…aoZ4
+nÎI…‘b"OÌ.j~b”–¸k/Ù!ÊM¢Tˆ¸\šÛ5¢-ÅRõå~oHØX?Y]Ö»S¥sCA]oˆ® –èºéIÓTWeöa•×T΋Ck1UÙM0æfÆÛùÕuð %X&n‚ù¡R$!ô1«NN›mvj '+¨X5͇ÓÞéÝØÆ]VVvÒ” ÂéÏÁlw,@ÿæÍá< ËÄÍo¨§m‚ÆÇâx ¯Ô­Ìêöº„…æ®ë—§²švAR)欃€HíqÊ fÑð^xiN•“ŸUUóât²5usxÎ*[åÝalklH4¡–ïÎĤ²ÈçÙOº @ãìï "ì÷¨ûµ‡ñKØIè“PÂ{1låJÏ®ô[~Ib#Ý|,‡2/\í“+hNÛR³³ÀǪy0Þ†º>QŽÿ©] ±t/š@ºqí¾Ø–zä½em™ýé–— 3±Ñ}L&˜Ñ(¡’:’tÊÀ |Ũ ›¡,ç°$ÊþÔ¨ÝZӱ̒½³"åV?‹rËÏSgõq«UÚ‚ç Üìu´÷Kœ]íë&(ÀdŸç¥Pq™ò8/»¨y^”v@ùig´Ù<dm1ŠÍ1ÁÒ¸tšÞ#&Ö;$p{Oü.Sj¶v'ÃR’rÃ]c7¹º¤lƒ¦¯þi8µ{µ?ŒÇuk=¶J3©Ó…Ĭl«GÁb«æÑ¶üŒþµ9ꬂ"ñ•˜V®W3êº2åÖ)»ÏaSc©E€—L$ƒ¨k!Éúö¿7wÈݦ]ÚM;T”Í Z[aÙ#=cleèj ‚•ZŸ¶Çá Öx]e¦Ñ¹‰¬yçMÓ ¯NÀ~_ÔŽùðógJ¹ÛTv Ä)ER¤~þ!?¯\m/ÌþZW‹;N#ÆÎ™f0wœ1zæìf§œµd~Î0XS`X˜3TdÎxToΟ÷çÎaP_(.”¨ -úA]"Eå@0wløqQ¤Î›í鹨Æ;Éî~Íó|xTÀLFðú61Ÿƒ¦óžÆa¡VÍ.*âi2,rÄÈU)Rz³•ëAr{{Fإø/÷Êm:”ŸDŠÂ’·ËNÕÑÖ:ÅþÑÚŸ–Ž´€5|Vf+bžnµÍ‹ZŸâ°pGDhéõjVýºoÕ\Ÿ“ñRŸ\øÝq’¦ýð37‡ø„û<=KaGšê/ÃYj£„^¥ eîŸü
+Înúd»Íª"Lëñ*Nx‚¤ä^‡ç¬Õ»Ó‰Eœ¢ô¼Øë8ÑW
+kOâ5m+8éMÙ# <3/Цg¨ÌE‚”  m5O倲v~Ú8ÖlÚò÷qÄ` ø· €M(Ðÿ,¡fà—žá@Bi^´ÛCÙ‰lÇNN„)Wa¼Æv Ä'
+„2쟸 ð+éÙ9qü‚Ùã~­ÙÛ³úS‚G:Á6&‘\ÄýPKšŒz‹ž¹9…)É™»‹ŠÎ£ü`™Ï®p+Vù\l&¾ÀIU¨¸3¡FzB ! ëëñù¨7gÍ0ªÃ¦4I"”Aú&Ç(èñ æû£`2TIŸO#4>
+µ È¸·(xš ²öº¨yÔ䘕y5É@XÁ"®I@M¨Òg!EI
+ÃÐÓåobaÇ¢! ¸^Ñy
+Ž$¡IÏè =~Áüq¿‚…Ñz‹ŽC@-(2î-ÎB™@hÆ q°‹Š°Ð£æ#Gs:Ž!,$%qUjB— %Ñ­¢¯Ìß Igï”Àùa–ˆ ŒÃ}³cDôøŒûýãDdpVÄé)jA‘qoq"2ˆž/…Ã*BDš“DdˆñtA•€šÐ¥b ”ùkDL£ñpšˆ©¾•
+ûõ©eY€ÓHÏèèªlá Özý$¤°Ð86
+µ Ç¸·8 õ'ß4U $ì "$ô(ûÑó¨¿ Õ1©T\¬MˆíZªô¹LOû®ØÏC·³òÃQ†—”b–[6B …“~Wõ¹~ÁÖq¿³§Ž‘J)G«4îó€ZRdÔ[”^4‘:v°8½º¨yzÔy„ô%g6¾~'T£*.= &Ä÷¿‹%H$œôåžõuhÅ@´¨)–ólƒ™B’„÷ ±ÍãL÷;Ë61Þn
+8À~4êü€ZÐdÜ[œn\Úô€8Ý:¨Ý<ª3PÇfÓ6Ù˜oúž³¸ø€šßç[Š%’¾Ÿ•og3²á`)1%Â)
+lT„i¥%îOŠQHK ’Æ¥:Ì„ÐÁG Áï ½ÕNN¸ÿ%õÆ™6ß]¡&|â‡òKæ*Ëúh¾Öê_Â]]Bµ»9sWúÜ^ªsm[¥¯¶tÙݰÀ[Ú\S^ÿXÌ]î6;‹4W4€nËÇ:Û¸oÒ¥œ “Nç».joùôóëwïß_¿µe݇љZ=ôÅf%Q“ ñjKçkTª¯ó²Ü¿gogšgû+/Ûú‹5×oP™º¶Æ °×°Ô¸{=+“•öIFk.?´øÁ=pÿj¯ìpÍòWŸ¥JDœ¿]Ô<ÊùÞ´G¹öXnlj#%IW  &4èÅJªIÌúÜî&rÕRB§þ¯L5Ÿ
+wøh\ |ÎPûP{ŸHçLÎ\SYït‰c0TXz›œ·²='½AJ'·lŸlí6«CÖ›yæ§ç}‘[ÎÃaWa<H¾é^mNäÇ$:[ÃoZÏcÓ¹Vn<RÄEx#/4°^Úªלsæy«Wda…î¢"¼ó(c–UBŸ ³<?m[ŒÉÇ@@‚U\‹€šP£‡9AI_› FU?Œ*?þÐ`F`»q©—ª“zI¤¿ð˜}J<á§Ëš
+
+¡æöûÔöÚ`R¹4ÄÞ ŠÀ*¨úíAǘ ,uDPÑgQûä2¢xb©϶0)£\Úa‡+j{:´åÇ¢[Õ6Õɱ'ÎZîg—.‰R§p®¯lSíÁÅóþøj‹ÎL.»=W@)¬APv“'fÒWE6óm=·M­éûxê&Äîfûâ“-½{ïr™]´¹útÙ¤m³-ÏÙ¥&{N—®éù¯àŸï¤ä‹ÚsøOó(>eÏûJO~Š¥IÔY úÔµ móloE5¼tÙ+cr[ës[2—·üº$ë@1]g—[bÒkµ]ºDRаÞV¹·k×…øòeþ ¾ü’PÆû>¥~gè²g'®K•ÎÔðatnZoóàŒ%•8v˜ß †j×è ó9.öU¹¨‡ÂG¨@›œ;ðšKSgéÜò‰¨
+CÈ`ß7Öý€[_endstream
endobj
-1937 0 obj <<
+1936 0 obj <<
/Type /Page
-/Contents 1938 0 R
-/Resources 1936 0 R
+/Contents 1937 0 R
+/Resources 1935 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1901 0 R
-/Annots [ 1940 0 R 1941 0 R 1942 0 R 1943 0 R 1944 0 R 1945 0 R 1946 0 R 1947 0 R ]
+/Annots [ 1939 0 R 1940 0 R 1941 0 R 1942 0 R 1943 0 R 1944 0 R 1945 0 R 1946 0 R 1947 0 R ]
+>> endobj
+1939 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [143.8055 707.4402 239.3365 719.2408]
+/Subtype /Link
+/A << /S /GoTo /D (root_delegation_only) >>
>> endobj
1940 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [324.1075 612.162 397.7608 624.2217]
+/Rect [324.1075 454.0467 397.7608 466.1063]
/Subtype /Link
/A << /S /GoTo /D (server_resource_limits) >>
>> endobj
1941 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [359.1555 582.2234 427.8275 594.2831]
+/Rect [359.1555 423.7962 427.8275 435.8558]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1942 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [353.6164 552.2849 422.2884 564.3445]
+/Rect [353.6164 393.5457 422.2884 405.6053]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1943 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [370.2338 522.3463 438.9058 534.406]
+/Rect [370.2338 363.2952 438.9058 375.3548]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1944 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [364.6948 492.4078 433.3668 504.4674]
+/Rect [364.6948 333.0447 433.3668 345.1043]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1945 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [226.7331 462.4692 295.4051 474.5288]
+/Rect [226.7331 302.7942 295.4051 314.8538]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1946 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [283.1811 432.5306 356.8344 444.5903]
+/Rect [283.1811 272.5437 356.8344 284.6033]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
1947 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [287.6042 402.5921 356.2762 414.6517]
+/Rect [287.6042 242.2932 356.2762 254.3528]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1939 0 obj <<
-/D [1937 0 R /XYZ 56.6929 794.5015 null]
+1938 0 obj <<
+/D [1936 0 R /XYZ 56.6929 794.5015 null]
>> endobj
-1936 0 obj <<
-/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F41 1223 0 R /F48 1243 0 R >>
+1935 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F48 1243 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1950 0 obj <<
-/Length 3122
+/Length 2716
/Filter /FlateDecode
>>
stream
-xÚµ[]sÛ6}÷¯Ð[噊OÜ>¥‰ÓM§u»Ž÷e›>Ðe³+‘®HÙqý^
-¼ÌÐùJdxùý‡Ëw¶&·o¹|ÿá‡ÿ\½9—|yýá—K[}uñþâêâòíÅùŠ(A =í-œhðþÃO¶ôÃÕ›Ÿ~suþûõg×Þ—¡¿3íÈŸg¿ýŽpûÇ3ŒX®Äâ0"yNû3.œ1W³;ûxöoopðÖ4Ÿ`
- Eed
-ÍÍVÞðMË#K”Ke‡ñ  H¾¬ œâe¹¿ïžlqWµ}»m¶ª»«Z[eÝ·µ½ DyWêb·ëM<32>Yå o‹ûò³­ºühk®®ìócÕݹûVáôÂ3MÏ> 佦Ë$th§†œ¼¬¶ºVš9r´növ‚4\û¦?G¬7¶¶èßÖJÛÁ ¯Wmw¼±õ5uiK–½.Y9©Œ!@„½mC#‚Ù¬úY-¢Š¦ˆfB|‘¢3 k¬hŸEµmv»æ±ªoûÐsÕÚB?éPº)·Áä‹ÉäoeÀ‡œAÒåVU ÊÁô@`Ë06
-ÑŸ£ÑŒÎª5´ Ø¢ðĘ0¶®ïÊVû'I¿.×ùÜ´¶²ðʆ‡`àùرB©k†6Úf÷Ð7±ScÑõ¦<ôð»þu 2]¡U†´~˜•¹í`õº4¡E;#Áè¡.ÀKé\*«C"7êÖ/þ<–‡'[´‹?·ëæñññ<§K4Y?ºm¿jjùCáêý¼©:‹1c8† ùTuÕUEWZlÏîxh_l¢ýh{å², ‡˜q–X„ðá·&\pzzåi žAýùá×¾áfÓ÷Ô–mßµ ê|WÖ¶Ô–ñU®¸*ûµdÔŸŸ°À&Šè3ìð¹o¼Ätí@įѶ¯Ø ÉîŽpðP àQü4ÓƒVC”ÝŒIä4ãQFSÕíê¡ØU›ª{Z™U
-$•¢iá
-à­ÌrùX–£øµ)Ûõ¡ºÞ›m$væaÊ• §ÜqÈ¢,wbóÈc¦ "S"íËÃí®¾{üŒïS»Ö÷õ³—úHH2DĘ“>˜ÁðŠô,xÔ “©5Íä´
-1ù¨„ðj<[ú³èއˆú K®dš‡GEˆêË ¢*äñz/îÍäJÆ<ø8¼¦œ†þ&ôçñ3žOí~þ¤>i±.95Çdb-©?žÃ=®1iý Q§õçQãëžîˉòàÎLrœ¥xT„B0ípZ'’†^_zΑQï2C'‰¨Çs°˜…¾¦¢žÃÏx=µûªydJòôø{Ô “©µ´ê2@)5õ†¨„êÊ|åp(êvÛß.ÛæxXG„GQNù а„'àvˆÅˆÆë(ï„3cñA¿œËÏ! I‰Ïág<ŸÚ=%>‹ÂD²ô 8Ð ‰­´ðF\ð¹p7@%„çP'æjõÅ{2£3<<*Bd|Ø“œ˜|5íõþŒO|QÂòÓ‘Y_‡†¾$O|=~Æù©Ý—ËZ(hœš¡1±•–Ÿþn—’¹¸7@%äçPºÇb×­^û2‰”PiáªÂY?g!‘×Q_±üb8g ùÁÅ)#,p9)¿?ãýÔîÈ!̱LÏ‚GÍ™ZK*Áv!”œ €CÔizTbÊbAP”åYšŠE¨„_¶ÀÑKBø¸|UÆÃ`çT.:Ì9 ÚèŒ~f
- ¼N$œ¸ùš0u:øQwÌOSÁÏág|žÚ}±Þàª
-9|ÉÅ·\ý­‹ *ý­ ÏXàìÜ·.?ãöÔîË£ ¡ÒãïQ3D¦ÖÒªƒ¡›‰rCTBu¥{ÜWõêPne{·êª}ÙÿR¿/>G« º;<M±®rºX *í‚GE|™rÆiè„‘-É{ÙêB []ÙH¡K ˆ¥6R‡Ÿ¡8µHL“9ùÅžÈtþÜL’ƒåQ3L¦ÖÒ£åÏE¶*¡1‡2ËûóÖžz¶‡f¿ÚT[ý
-Ð~àRòšÑãgÆ`j7¤v× rz̀ʌ²ôdxÔ ‘©5«ÇœòLšÂeÓù™):;5ñD»À™è€?LCyÁ”À.ì[JÒ~FöEÛÁñ|:q ÆOdÖgX,‘0þÙØa‹Q8óøÃýú®©Ö.]£&dÀÚ×>Õ®¸Ù¹ŒŒn´=ÿå3;våC¹C&ãÄú&È`ÓM®ï!êôúö(íÇÿÊ'ëª9<ÅNÊf®“Ý{T¤ÿñI9Çð6 ð:Ç–‰ã“2ƒÉ#2qR¦î4ð4yRîñ3>Oíž8³L·^ý= “é¡÷¨9kÉÝ„è“V®ØŒÚ¨„Úʬ¿c׬6uÛ–ë‰Ö`¥J,UºsŠôh3”©œ„ÝÿVœNÚ„Ié„Z“Ú¦ ›§ºØWkûðNg 2! Ê<Ùšb×6¶tÔ Wº`3auÉeÂšÚÆ5Ø5¶øPžLö¤¶¸;'K½ø[ûh•® Ò?00CLÞ^gÿYÝ
-"UwgŸúÇû¦m+®Ú²ë€fûÏÈÚ¥ g¨3ëíw±oÊ2Ÿu_öU×Ú6à‚)õc5:Tï7…É|6¦MFãýþ5}š-”¶G“h©ßZÇÌïÇ®åã]Y—&±P?ùæÇÖî ìž\0èUÛ}VÞs^õ~ï·’0*AÓÌŸõ¦Ÿ,MÄÂ…îª)JÜxhOtúgdà¸Ô©æ.~¡Ø®JGÎDbn(% ªîàÿwÑ/° L`ò|ÌYïŽã=%ƒ,í›æÁܨìóÜá­]¦ädúœõ]lþ8¶]hÇf®~ÓWz1Sl•`ÓÛŸ`Jl–9]¶ë»rsÜ9*ÅÚeâÚÜd@tMÐ%5¦¿é몽ÇíË®
-ÅæÃ‚Ð?=åÎ`ÖFºg.~Yk[›Ø6L1› N—»¦ØØ’кdêÍÞ>uλ ù¤vØO*s3/íß· |ŽýµˆUÿ‰Pd
-áþö_"=ÿ™DU¦3‹ã+sÄXN)=(¦úëÿfiÊýÿŽ®
+xÚµZ[wÛ6~÷¯Ð£|N…à"oiêdÓ³MºŽ÷©é-Ñ1w%Ê©8Þ_¿3¸P¼ tN“öä? ¿| h±…ÿÙ"S„
++ÆJ¢(S‹õî‚.>ó·,`V´ê¢~¾¹xñF˜…%Vs½¸¹ëØÊÍ2¶¸Ùü±|ýW¿ß\]_®¸¢KM.WJÓåÏïÞÿâ{¬¿¼þðþÍ»·ÿ¾~uiäòæÝ‡÷¾ûúêÍÕõÕû×W—+–)ãy°pfÀ›wÿ¼ò­·×¯~ûíÕõåŸ7¿^\Ý´¾týeT #]üñ']lÀí_/(6S‹G¸¡„YË» ©QRˆØ³½øxñ¯Ö`ç©:?%2¢2n&(Y'€ŒB[ê…Q–hÁ… `ñ5ß=l ²ÞïÀwMéòýGí=?áe+ƈUŠŸùÊ_˜å„B(Ù3GÁ¾Å)e/7·ÙË—Œ ‰£_¼á¼ãÚ²„JæmÝÜuq¹F,—,[ë½»njß™û^SVMq¨òíöÉßëbã[;k£Þo¿„!U¾+‚©cµ)~ïËeÝäÍ%[–ëUÝo}ßÿöU~»|³?Ä7²Z?]®$•Ëòn*.Þªd˺8|q¯‚vðª(¿8ГûË_Çâðä›wû
+R„–¦ÏáCå IkWäUY}¾;âé¨ x€B=©ž Jk”)ÌäÍ}YûÞÄš¹¸-ëÆwìï|Ïf¿ËËÊ÷ÅåÝþqèrAq±X€à g™é ¤¹Ïܲe¾Ž §o³ÌÍýþP"a·
+áQ´çnÜ‹àäi¾Á“¸©hóôF®ÐŒ"Ζ·ÁFgáo‚ù½¿¾û=ÐÛ¬¦í&Œ¬f¹^>ÞUÈ[]ñÀ|q‘qŽ£Ëf"» A¸”2¢Šb¬º•
+nY =†
+˜pÎLÏcÿððyá×ß[üŒïc»Þ÷õÉKü²Ã4ajÈ ¿¯@xUzZÔ “±5drV€"3PñSž`u^€-*ÎüÃÓàªÚo&¦Z‘ ¦Ð¢&8ôÄgZÚ>‰¿'>ÛßÈ•Áû3ˆºhGL
+E¨ðúÞ¦„ñ3~í~ƒðLœ2=-j†ÉØZZx
+xI‘ͯƒJ/¢†³…×¼9&Ô—Á›™45A¤§> §ë¬Ïãû%¾io†¨ æ|â“Oö¼ïoB-~Æó±ÝoПÁJS¨ô´¨9&#kiýq(#gô×A%ôQÃkžŠ‘ò”%ÌRfТ&(ô¦ªufxŸÂ÷—^tdðv£‰–,‘õ$!¸îûšÊz?ãõØî7¨ŽS¢3#ÓñoQ3LÆÖ’ªãVgRtÐyÍEûÞpÈ«ú.-ëýñ°žP'–Ë4ƒ4¦Ðÿl`¥©>‡ï£¹3ž eG‰0Jž—ÐDZH7Rª‹ð´Û#«ç4g¦’/3"ûˆIsZJ‹ j®äÌᢋJÈ-¢ÎÌÒꋞ*ðŒæ3<ZÔ‘ag¤0ùaª þ «<ˆ: áa6Æ#P×—d•ð3Îí>_{‚’
+Óä$DÐ ‘­´üœ‰T6s´è¢ò‹(|c¾mVÏIyÚLei4Á£¯>õ½}"ßG} w†òSDP+òƒÃ’f¢çrR~?ãýØî7ÈO*©IÏB‹š!2¶–V …²\³™3F•P`D%¦l* fŒh«ÓT"h‚Jÿ ”[³—Ëát´P›J“Ð!ìNTt‰Îè0âg0¶û|jJ ,öôD´¨"ckI2(X¸V3g.ê¼[¾ñX«çfC†Ø%É´¨ 6ï–™îÓù>Ÿ[fœ{akÚÉ“¯5ÖöŸ9ù:üLÆvŸ/F¡Uw2§¾5Gdd--Fa5óC”(!Å
+âgÜÛ}~fcŠÀ€,ÿ5Cdl-©:c
endobj
1949 0 obj <<
/Type /Page
@@ -9194,210 +9156,210 @@ endobj
/Resources 1948 0 R
/MediaBox [0 0 595.2756 841.8898]
/Parent 1901 0 R
-/Annots [ 1952 0 R 1953 0 R 1954 0 R 1955 0 R 1956 0 R 1957 0 R 1958 0 R 1959 0 R 1960 0 R 1961 0 R 1962 0 R 1963 0 R 1964 0 R 1965 0 R 1966 0 R 1967 0 R ]
+/Annots [ 1952 0 R 1953 0 R 1954 0 R 1955 0 R 1956 0 R 1957 0 R 1958 0 R 1959 0 R 1960 0 R 1961 0 R 1962 0 R 1963 0 R ]
>> endobj
1952 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [381.2254 576.3168 454.8788 588.3764]
+/Rect [381.2254 414.431 454.8788 426.4906]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
1953 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [362.4163 546.3833 436.0696 558.4429]
+/Rect [362.4163 383.4346 436.0696 395.4942]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
1954 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [402.2465 516.4498 475.8998 528.5094]
+/Rect [402.2465 352.4381 475.8998 364.4978]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
1955 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [348.0303 486.5163 421.6837 498.5759]
+/Rect [348.0303 321.4417 421.6837 333.5014]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
1956 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [335.4973 456.5828 404.1693 468.6424]
+/Rect [335.4973 290.4453 404.1693 302.5049]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1957 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [363.1733 426.6493 431.8453 438.7089]
+/Rect [363.1733 259.4489 431.8453 271.5085]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1958 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [365.365 396.7158 434.037 408.7754]
+/Rect [365.365 228.4525 434.037 240.5121]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1959 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [393.041 366.7823 461.713 378.8419]
+/Rect [393.041 197.4561 461.713 209.5157]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1960 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [402.9837 336.8488 471.6557 348.9084]
+/Rect [402.9837 166.4597 471.6557 178.5193]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1961 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [320.374 306.9153 389.046 318.9749]
+/Rect [320.374 135.4633 389.046 147.5229]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1962 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [348.05 276.9818 416.722 289.0414]
+/Rect [348.05 104.4669 416.722 116.5265]
/Subtype /Link
/A << /S /GoTo /D (zone_transfers) >>
>> endobj
1963 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [488.512 247.0483 561.5676 259.1079]
+/Rect [488.512 73.4705 561.5676 85.5301]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
-1964 0 obj <<
+1951 0 obj <<
+/D [1949 0 R /XYZ 85.0394 794.5015 null]
+>> endobj
+1948 0 obj <<
+/Font << /F37 1030 0 R /F41 1223 0 R /F22 965 0 R /F21 942 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1966 0 obj <<
+/Length 3639
+/Filter /FlateDecode
+>>
+stream
+xÚ­]sã6î=¿ÂoufÖ:’â‡Ô{Ún³{é´i/›ÎÝ\ÛÅVbÝÚRjÉIÓ_
+„@€ø
+òûÅ/¿±Ù
+Äþî‚%iž©Ù <°„繘m/¤J%ÓÔC6Ÿ/þöfí«Sû'U–(!õl‘Ê$ƒõ§w™'†s@2*Ot*Ò°Ë‚Oí²ÇÂ]®þxØ]òl¾xØ5ÛŪzÀ‡‡rWÖ˲îW"aF¦³þB#vÖ?¢ÇW&aJ阡Ïey¹Hµšwk;óUÙ.wÕSW55Í4ÈØ@:Îx¢r ,¼I¬/yž0,»·ë¡ä©Ü\òHršÜ=ÎhpÛÛƒ€fÆti–iѸNø%™š$ã*;­Œ€u†‘15dœG+9ÿ•)vÓtA1EGšA5±HÁÒ×`
+…e¼¤‡ºéô¹¨6ÅýÆÁ ¶v‹ƒ?›Ú6ås¹I`GJô®k@ÃF‹¢Á¿{X'üÛc¡_ÊWØëT³{ù37‰2òôêibõÈ›…H”Ri¼¼õæhW"oFÀ¤7ƒò™
+'ûSiÒÓ;°Î°1¦F¾{ÄÖt¦’L¨ü´­õ±ŽÛZÀ²Þ·ïšÅªnÛr9¶48å4OO/°&Vl+Xèxùÿ€¿Ã¦°–Mý+câqOŽ»"èC³£Áêµ.¶Õ’¾½ùŒ1æ• Å¦mh´oKtëÊ‘nüA„ÐÆ¿°i^hø\ì^«ú‘(n.ù]¿¥G²tÐkšÀñÈãðˆ›·-:ä
+í¸ú|õÆ`þ4ØuñXn˺ƒÀœr6¿[—ýÐÅ©nMOîñ©iÛ*«¶ì:`³ýzÂ÷0–%¹ar¤U`=%iÿ>á†Y–h+ç†Oån[u-½"Ø‘Û3€Ü—ô»ZÕ’®Wkí¦)ˆâèa¿Ù¼Ò, ¶h«ÇÚ¿ù².kØê=…×A;ÚtÏ\|&µíÞù¡–Ív’8*Á«:d »zå”…ŒºRý3r6Áý~ $`vSG„£N0ã“©3•g2ÑL«º‚ƒ…TuÿSêÁ I3~Hr–›ýÊJ/’ôlè¾y.ßáØÌï÷Í’GØ‘7ÓÂjþ±úï¾íb:ÜŠû•cŒ,Áj$ð©ÄN!æír]®öÏJ±\6Ví+ë]ˆÑ5Ñ’Â’þÊÁªmÀÛ–]6VÐæ2mYŽ"rÊ‘C(ײWžŸ;"þ¢ÿÂDlÑE!Ie `ø±¬‘£l*9 ¹2âiœáy¬3œH†“‚•Eœ8C–P…1ÈË߸ÿ#º½­°i[Ý Ådøé½XgXSCVpÝ„lSB6“‰l.q"DhHž™8DÀÇB„J„ÊÄù¡‚¹§», °µ˧Fî« ¤µšJuá
+ÌS®ß¦Ãó·h$KÕ4"eiDèÞ&P*\äLb(Êé C=!Œ[uµƒwìYÒC}F
+ìÏËX²ø‘»@òðRYK‡Ñ}HÎȾQ-±œØÜd]Ô>c «jVî(F±ßœVy$"«MÙ¶¡Ò¢×e·Õtd¬"‡º+ç£ 'v˜¸øÂˆw(¾ÜZà +KÓ\%R²|*–nAÖå Õíž ·)žàªÄ½®ýŽÜ¿Nù;zC|Ò-ž÷E <‘ñ4‘iꥵ:„. GW&N¼îåìC±ßtQVŸÈ !%d©ßß8}# aSdj—óDè<마SµÌ±›(ÎôúXÇk»€el­Ø,([_@JµnVãö ä¨êN2á‘&˜ˆ›ƒy¢±‡qáJ<ž³‰¡ÖQpJ<|°%l‰‡[Øá€
+;ùÂÎBú…z4‡Oਅ]€
+r®Í0û¦ÐØÉÑAÎ=Ñ9¢mw§ýö¾Üy¼òùÇ÷‘;¹d9 Q¨g¼ÿº„b”ZȬ]ú¬{¦ Ѓ)ÃÌtÕk0IémyÒ@,)(4v¶h,J$ÔeÜx—Å–†”Þ8±,?n#€°
+<aF7<¬Y•é rªsëñÏH>¦{ÔðÔ¸sËÁLzZë 'cj§¿«àÙ™oEúX'ŒÏcE­Úå~W. t­jLŽ·Ì@ñv’•€5ÁK|Ê›$SFÇÌü5&xR¤Q
+rØÜè':ÓŸÝp ™·l{Kë*È©ã|ÉÑw31Åè»WŒ>¡n&?ÂP û
+ê¦D Éö©´úУ¥ò\¥I†…ð½6É ôsòÙOB¼³.7]å33iv_ZRÞ ƒ[ü4k?€AáplÎôü‰„ÀlÔ͸TÚ=Ù\~Ñ"^wôkÍÊ¡=ÂÔ4ôÆE×Ói
+”}|×éÝVmüÊñC7Ê^þׯS ¸õì¥Æt+éO_…{G´‚ëB½ÝJ˜ÎÒ^xž“BÑO 2l_Sá 5~°UM¾=¤£ògC€Æ^þãË/¶ë†°à{–~Ÿ¤] [6 ‘§ó÷ô¢ëöÙ††ýÝ]B%·)*‚– ¿ @jÞ>á·Ë
+y¥z l¦W"Žk+åÒvàÊvãí„7„7¶*ëªt°ƒ!´4IÍCĶ])€xÀaŠúv4¬ñ
+endobj
+1965 0 obj <<
+/Type /Page
+/Contents 1966 0 R
+/Resources 1964 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/Parent 1975 0 R
+/Annots [ 1968 0 R 1969 0 R 1970 0 R 1971 0 R 1972 0 R 1973 0 R 1974 0 R ]
+>> endobj
+1968 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [397.3443 217.1148 467.1586 229.1744]
+/Rect [368.9978 755.8266 438.8121 767.8862]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1965 0 obj <<
+1969 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [321.49 175.2261 382.69 187.2858]
+/Rect [293.1435 712.9458 354.3435 725.0055]
/Subtype /Link
/A << /S /GoTo /D (options) >>
>> endobj
-1966 0 obj <<
+1970 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [357.6499 73.4705 436.0651 85.5301]
+/Rect [329.3035 608.2138 407.7186 620.2735]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-keygen) >>
>> endobj
-1967 0 obj <<
+1971 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [455.3558 73.4705 533.7708 85.5301]
+/Rect [427.0093 608.2138 505.4243 620.2735]
/Subtype /Link
/A << /S /GoTo /D (man.dnssec-settime) >>
>> endobj
-1951 0 obj <<
-/D [1949 0 R /XYZ 85.0394 794.5015 null]
->> endobj
-1948 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R /F48 1243 0 R /F55 1326 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-1970 0 obj <<
-/Length 3529
-/Filter /FlateDecode
->>
-stream
-xÚ­]sä¶íÝ¿bߺž±t¢(ŠTîɹÜ]ÜiœÔv¦æò ]ɶæ´Òf¥µãtúß  ¾V»v§g)
-–Ÿ®þö‘FŸo.øáòæÜF‰å‡ï/ºûxC¯b¦ñíÕõwIèçÑ›Ÿ>Þ|¼þðñü×»¿ž}¼ëdÊ+‰‚üvö˯Á"±ÿzø21jñ /’$\lÎ"%}Ié åÙíÙß;‚ƒ·vê¬þDà‡2g†á«$Q ­?–¡´
-lsIÇË?êŠGÏEûH£´,q —_ó—†@ícÚòËݹ0Kž“®Ûâ)÷Q°ª¬*bã‡:Œ€W\oWekšRÖiféÚ9J æÄ±ŸHóä¬J79Ф_i‘0â:Ý7y3þ4ÒÑCZÙ 1)}E†±Úºg“F½î­èõ‰,< \$A$ž~¢TØ+Vª§Ñ€ôµ­›¢­w K«ŒÍú1ÏöåtÎ&-ª¤¯Öü&Ê«¶¡1²ˆ¿õz½ßѰ¨ø•[ý~ßîiá
-‰}ApZåˆdeÞ0~}Ï+>æÀßnÎXÃÄÂDŒ¦Œfdºà0‘Ît ^ ¼!óÙFåGQŒwöî1r ²®¿
-ƒŸ¯¯þ‰£Æõ# QrÒ¹5BuŒãØ1€ FLKÚù4{!À?·„‰¤ÒŠF5CòßöޤÍi©;½áèØçc|~,œ­¬ÓÆF;6¦ØlË7‘Íóˆ íŠû´{2²Žv‡dÏëª,ªÜÃ< Ý}ÑCáGarzñépõ‘u†6Q­~Å%,)´;ê^ò¹¤ChÈÒCÓ[º4Šc¹Tz Y몤ÔÒ,¿„a´Úo¶ôвTã²TVOûh„â”a_cÒ„À”Ñûy¹gÌ¡¨  ì+œnSH
-rW£?sIãŸê²X³)¤!ì „/K‘ûåQlûåðÓì·Ûz‡ýÉ0‚\ð¹&pZB¤©Rl€ª©†lK ~ k‹s±´%/
-ñ¾…ã´z™ëýŒ›¾’½Î˜o"ýáêÏiãÈ®@TŒCõv+ b#'û"’„6ý"æv5¾¡–¯j,*jñ%è!-•?%ê'Ûˆ°O[‚u¾géIÚŰYã…‰\^ÒDîóÙV†ýÝC%WæýAH3ã-²%I¢–ÍÂF¾.Wª—Àfµ!âpC)‰a¶o_8SAxͰ,¯Šœa½!4ô’Ú†ˆmûQ
-á—a¼Œ­{mÙww7i5ngy‹›ZiÞXôÂXî;á£)[bòãX;„Ç‹ôÛÝTc›¦¿ÿ$â}X×Üg˜0‡ie›\1neŠ”û}IÏd«ø‚ŠL‹Ž´­ÙĂڤÔDÔÎ'eãáÜý.¤eAôvÉ,ä¸ÅÚò†Ú&&{3Úû^\“Œ”ûƒ:ål €Ü±ÒÂ#‰mŽíLV$É›Ï5Çbž}ëÙ°Ð*ç;7ÛØ·™È§²¡ÚÁIæãº2Ptˆÿáô×I×Àò¥CgZ.óßS4õ†àdï ˆ|O°”9¼'/ïgÔ”­sBK³Œåj¡à5Ü•²'Bé'ø}ÃȤhR™?¥U{ìÐë¬Ûp Ê´ÿS¦×ßKÎT‰o¢î†ä Š4ƒºƒÂô]f㢈á(¿ÍsÑòM±Á2Ï ûãbά7›ùt/ ±Îèn?Å;ÜÀâ`òAY¯Órî&èq¢ºÛJp¤dyk¥K%täT$ܵEH/2<Ø &ŒU·0.á¾ûÒBhå‡Q”¼þ©ø‘~jTr0C:›úEùˆ€¬È9pl¿°h6 Â`[¦kÇw;Ë?õ:.8ó•¡1¹’"jJpŽ'( 0ˆo/Î_`  Ï»»Á™œ'…´§æ·/æFéSpØÄݵõ¨%jð ÑõÛß=¥»w»}õÎêø+ÇGÖfŠg¥ü*þÁ­sjuI¬ÇŠ>A.W•BPW Ø¥·fçePÁsÏ^Üù®£-DO$-ê¸Ã†¥ï¸üàÝ~ª“6¼A´Ÿ§ [3ÀÐÞùðŒî°Còƒø¿*ó¹ƒ]ðhÙ&?P²»ñ³:ô€kÞ™
-¼æ ¥`tHÔ:ÿBï‚”34GjAL§\)œ˜8šÔ‚˜œkÅÕmˆ¨èv&´ŸõÐ/ŸŠB ›È566It @Ýfj™n)†×Û]ÁYé(Ͷ3Cúf€Ö¦»E·bÊ<uÞƒ4Ý2¶¸qœÍ¹q¤º>}鄣Ρ±á@'–6O¶ÙRð×'€Šnþ—f: ¤ ÐmÇ|« £¥[ÝÁÚ.ÐDX0:à¾=â¶šììJΙJ~¤Ò´^uÙ4ûM÷ÕL‡ÁqnT¯ò%Ða è²r‡Ò)`0 jܹ»‰jëofBÝ$ Ÿ…^ Åâ¿éÇl4왡g›ÙîWô
-endobj
-1969 0 obj <<
-/Type /Page
-/Contents 1970 0 R
-/Resources 1968 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 1975 0 R
-/Annots [ 1972 0 R 1973 0 R 1974 0 R ]
->> endobj
1972 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [288.6803 484.3495 357.3523 496.4092]
+/Rect [288.6803 315.0637 357.3523 327.1233]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
1973 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [328.5503 453.0511 402.2036 465.1107]
+/Rect [328.5503 284.1381 402.2036 296.1977]
/Subtype /Link
/A << /S /GoTo /D (tuning) >>
>> endobj
1974 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [403.748 421.7526 472.42 433.8122]
+/Rect [403.748 253.2125 472.42 265.2721]
/Subtype /Link
/A << /S /GoTo /D (boolean_options) >>
>> endobj
-1971 0 obj <<
-/D [1969 0 R /XYZ 56.6929 794.5015 null]
+1967 0 obj <<
+/D [1965 0 R /XYZ 56.6929 794.5015 null]
>> endobj
614 0 obj <<
-/D [1969 0 R /XYZ 56.6929 404.2557 null]
+/D [1965 0 R /XYZ 56.6929 236.59 null]
>> endobj
1332 0 obj <<
-/D [1969 0 R /XYZ 56.6929 377.4017 null]
+/D [1965 0 R /XYZ 56.6929 210.2837 null]
>> endobj
-1968 0 obj <<
-/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F55 1326 0 R /F41 1223 0 R >>
+1964 0 obj <<
+/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F48 1243 0 R /F55 1326 0 R /F41 1223 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1978 0 obj <<
-/Length 3372
+/Length 3402
/Filter /FlateDecode
>>
stream
-xÚÍZ[sÛ¸~÷¯ðìôAîX\\ °O›ÝuÒì%iwv:»û@K´Å†"“Š“N|ÏÁ P¦,gÎt<árp
-ËxQˆÓõ‰Ò2ÓJÊÐÒœ¼=ù{d˜ôº¡SòÓÒfÚ
-3!@!¦¨‹,—B:^®*ÚÑ¢[¯Ëv‰;‚q<—묰æBú¶ßn–åàÍOŸÎKÎsX+ è«vÙu:òöŒÛYõ~[õƒï:úmºEÙ¬º~8§:.Êúú¦ ´«jíyöu{=aÕ÷u×Rå]õéŒs>Ëp¥§sÎaóši(™¬ÂºE¾†±·aav¶m<§eõc¢­`ׇåuï|©~W…™ëþ/$ •JŽÎE‘Yk
-7ËoL³³yÎØìæ¶l*þ‡~–Uû‰J@Å©TCãP¾½-×ÕðiSQí×]#•~µ#a:îÑÞÂ.ÊÅ
-v’çÉî¡âVÙS¹Cñä×YW¾ms[¨›ê¦êáÚHmg¯Û…ZÒÏN¢¼©hèªôãúíb×Û¦ùäéÊa±ª–£±~)ˆ²©nËŽ˜Ö½;W†'›Z ·¡z½®–5€ÍM` ÚŠ›ÀZÚ 4º½,©L(ƒBÛÑïõöçä3Oì—Ó{rÂ/Uªåºn«%HA‰|öl4€*uOSï6
-w«ª¥í
-ˆq@âÄ–h$²QÆÓ+›@›¬U³<§¾HD A‚„Iì7±ßÔ\·ÔX.Û󅾻zXMp!|&œüR¼bÙ퉴w¼±~”v+Lo´‡³»Ü›jQ;î^-Ôí1•ü"²8wrå_uˆY$eáN Û‚rª©°¤Þëî–®’–ÉUâ\gVm7,6ó¾j®§Ô"ϤàÆNó™5:äC§23™@kA”«î®ú@›à$\o?€Ø ¨Ët_@Ù{’u¹Ù8ý‰½_Óφ¨PvIg
-i2)y>>¼E×"§¨h×Û~HÎpïP 9˜Ë)l)4må’ˆvHvwZJªÞÕÍre.ª-Î
-·ëuÚ‰s‡*Ý/c|]F“\ïu]¾}ùb<?4 ÚgN«O\k4OsÉ
-0dgPBCˆËBdúw¤Hä-(– ŠŠ”Ë/NŸ`_I?—?^ü“JÕÇŪloüP§‰qŠ+Tpngû+€ßͧôlûU¹»¸ÐÊ‚É>tË¥J1€5þÆî[•²õÃ{?
-f½¨é D[SŸÃ¶÷‡nâ=F¸¹§o츞yHÚseh³ç•?E㨬°QM¶Æ9Âá™yüâ³s §ƒ¬G@>aõï®­±˜×šPÎ
-B-–_}ªÛ¶lî3îÐ^&’C̦´Q§JCPÉEñ˜\¤T63Ììå"ÿب°L5y-tp4Ž/_ #ƬæqSs%lV0DÈtŽ„È•„˜”£Ràª)%Ò‘`ü !Ž/>–‹aî#Xi$Ü÷u‰±
-“ï»VWUÌ_Rp²}7/ÐíN“¤Ã.mÛUr¨©m»o¡L,v†úÍ
-wÀ5xÂyj.0Qmê\˜Ôµo XœÀŽWV!3B¦Ô‘yH½¡Zç.Y*\R³ñº¸ªË·`Ò!ðDYL¦êq€•!Ÿ!­Øaoü Å3ޝ\$2ZÊ|Ó5õb*ÔÈóÌy
-¯6²œB<„ûµ‡\\ø¬EºÕÃxLúiàÙ7®âKWÁ üÓJÁ£
-u@AåEÞ¹yT
-©Bî;Ws-Å‹@W6¦¶_<.‹{Ö[ûõ×7mçŸgν’/Tf‘óÂW[w9Á®§Û«ñ ~C8„trMï6ù¡ü=Wàëø1É‘Ü"J~_0¹V;ÁŒƒ÷"ã,¦6à ,øb÷ø)Æé=¸|”ƺëj‹t½mÆ
-üø¦éàáÓ$!÷
-ÿƒ< k•:õðBfÒj{$Õ:6ç#§Î*“F=ØhŸ8P ÞI|Œ9”'§n÷l¢$£$äc?uw=1çåÿÇôÅ""Ç¿3º0»´Ïa¨¤gðœbá($D¾G âžé´>–LŸÂŠd©cƼ3¿+X™Æ
-„sZ«£X)`³{Xq<V°ÔµÍ'?i‚×3…$UV-÷¶ƒ5F 3GJr_
-)  ›ýx–aÄA¤àDZÚÇ€¢ Í>kLáĦÙYkàøÊw•o/égô~ˆ$ñ{“°Šª]Χl¡ô§oÞ\<ûéçðå&}*¹ãŠ­h#°ÑS“ ü±-ÀkœLñ}¨n+É•KêH™gÉ'v'^ hŽKÁŠ7ÜXŒß9šÉ¹÷¦AwÓpúPKJöÀ#¯Drø¤Ù}ïˆw[áwd®‘ËIsÀÜ“øç~hpøº$8|´c™9Þ e§¾Ó†¿‹'¾ûdœ{i­˜þà[2|L*8†tÀ‹Ä—}_ ñò@—¬þ¿ãŠå(endstream
+xÚµZÝsÛ6÷_á¹—“g,†ø"Áë˹©“¦½&w‰o:7mh‰¶y¥HE¤âä>þ÷ÛÅ. P¢l§éÇC\,‹Åo? qšÂŸ8µ&IU¡OóB'&æt±:IOoáÛËÁ4sO4©¾¾:yöBå§ERd2;½º‰xÙ$µVœ^-š=ÿöâ¯W—oÏæÒ¤³,9››,}ýêõ7ÔSÐãù›×/^½üûÛ‹³\Ï®^½yMÝo/_\¾½|ýüòl.¬0^2‡#^¼úË%µ^¾½øá‡‹·g¿\}wryÖ¯W¤
+òþä§_ÒÓ%,û»“4Q…5§÷ð’&¢(äéêD•­”ïiNÞü-0Œ¾º¡Sú3Ê&ÆÊ|BRN)ÐI¦¤r
+\o΄U}Õ°v•糫»
+—ƒE4ØØD¦äp£¶ëe9Tóu×Ô‹OLO•™$/ò‚©ûˆW0è.—³®m>aKͪåªn«žú˜Øu÷õm[m˜ø†úJz]U}_ÞV_Á›ÕшnëÖ±¨ˆ¬\.y]=Ô<GÛ (îé\H•¨ï¹IaŒt’Ò ¦úP¢:0‚<)”´Ž
+›˦T"²,gª¡#®·˜!¬z4éÕ»W/©3öµ—ø×ꓵKj¬›ráå&åG#iªsÒ¦T2ÑVˆ±A7À&'<˦éî¹ë®¨E“¨h·<7P]xÆ…‚™Múõ'ê^V7å¶Ιƒ§&á¨]³jõÈ@ò"QBzyö¡Ü<ÛlÛgNÇÏX9 Šv¨oaL¢E.yìùNR§ ­ÀöÔXnJ¤n±åÄr=?ƒ­:³›/—moÔ ·(˜”Ím·ã°¢WÏéÛ.žÏß}{!M2)™Í®·CàÑWÔüP6ÛŠG”ý¢kQm·ÛMyÝT?¢ÓÁGФ~±{öªŠ$5eY‡sšwc r@üLE²ÔIaÅK§ÇC†6M œ¦ŸÆ;or}ÈÔ:%c‘ìŽ`·€¸?'-0J¯«ÅP¨X§ Äf:ð⸙-ššý‰!ˆh[xwGžì A5ûO=¸"œÜ
+>\ÐË»­rMÞ­75 è\W›UíÖèĶà†ÊO~n”¿\úK–)œäé§ÙöÕN² ã c¬ cx¢#¤V8Ð:ã9ÏÄì=XáÐã‘N ç¶)ó?öûÃ`Ý®}_7 µ®™i_ ã¹=Ðè°,hH¸¸+Û[ž l?Å.:÷\ŽW*Ã1p`h¼/‚FÀ§tvÑ÷ÛmhLÁ8ç1
+Aî÷YcØD» L)z؇€zab¬›À´
+Y-­:ÝZ–Ô&#ƒFÛÑóf»a›°!Pì™v¥>ÍX‚
+4¸ô ê‚é‚y­:ï殺Z/>5™
+Æ.háñ(§Ñ‰5zý:‹ÊXñ’!Eánß2`9k«Ûn¨½#ÃÓX wÝ’Ú$¶®9÷~ùîÝí‹i_ž&X
+³«®Œ kYRèTD">À77‰ÊÃ&O2зδ}‚! ̳=Cà’hÖävlxc?Ç?ž8Oí²»ç/çncäÚ¥™eÃÙ¢sÚ1«U‰b~¹®š®½ éèdèxä8ØÄäA­!žÆ¡²C¬IÉ1cC(zR)p*¯´:‘2ÄGŠmx ÷DÇ­ /t‚>ddùOfÅà5U ×ybeš?Y¨éDKÓŸÃË#¿å$0ÂÅ}ùÂÇ™‡´=×¹„È÷¢ò/AœQ%÷³ç~áŒHò§ ÷@šõ”Mˆ8=˜d=Áä#V¾÷¸êCMkœ5¤ZÖ‹_}ªM[6G×™…phï¦X@Φ±†.­I´NÍS¶Ižæ{wÅ¿m”ëLŒBG% q)ðâ¦1f5‹šËL$F¥2ÜD”(´‚œÀQæy’æò!ˆß_HåÍøòc¹æœÀ*¼ù­V%¦XßÊ,$
+Ä̳-éá$šO}<Üݜ㡠:ÿÖ&©¿ø}L(Ú›ßË„¼oz:K?⨠°B©ü1’E{¥ñS¤³èæ_|g_¯êAx¡‹z×éÍöÓ‰ˆj=Ð7ºPCêš{¼-NÝ•ZùÊ6ø
+Ü(´Ì3°Ô[z ƹ+–JWÂjc8.îÕÕ[°èàyºSL˜®`•¯g(+\]ÒüÒØ’%¶÷ÖÑ/„p.ȇ«rƒž§ÖC:ôw×ê¹ÿýXz^ìÿ\bp/}•UbÇ)DÒθ§«?ˆè—$ØÅªÅ÷õ JñÕvV-Þì÷4êà—„ k^m¸üh¨ÆiÆõÞCý+Ìrižþà #õÔ/¬´á›øb˜K$xDáŽÍÞº­/wK—Ù-\l²ìð#cf|É:ºšóX,;·D‘wj>·Æu«zªÀ,F‰/Cž˜)“ØÌ˜Ï`éG3HVÓÌ>> V…Ý;šÑí£ÙdôòêpýqlrÈ¡Íþ¨Œªðø %3•QÉ ;]É ã’öÄ%3Uäá&
+Ò'ð!Y¾_ª¦"³Œ¢;GwZz¼Ô/uÀK­¼'ÇÎXF ›p8†î×lrAð#U‹x©Øc´Ñ_f<:M“\fè\e’¢OýVþY›_üËÔÝÏva§”luü˺&Àiy¡!4ØWHø +“E²ÿ¢ïGendstream
endobj
1977 0 obj <<
/Type /Page
@@ -9410,31 +9372,33 @@ endobj
/D [1977 0 R /XYZ 85.0394 794.5015 null]
>> endobj
1980 0 obj <<
-/D [1977 0 R /XYZ 85.0394 465.1666 null]
+/D [1977 0 R /XYZ 85.0394 297.7942 null]
>> endobj
1981 0 obj <<
-/D [1977 0 R /XYZ 85.0394 453.2114 null]
+/D [1977 0 R /XYZ 85.0394 285.8391 null]
>> endobj
1976 0 obj <<
/Font << /F37 1030 0 R /F22 965 0 R /F21 942 0 R /F41 1223 0 R /F53 1318 0 R /F48 1243 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1984 0 obj <<
-/Length 1619
+/Length 2360
/Filter /FlateDecode
>>
stream
-xÚÍXKsÛ6¾ëWðÐu Œ' ܪØrª´V\E’(‰Ž8‘HE¤íúßwEÆ¢ãx¢Ìd4#,‹÷÷í.È
-?¨˜Ä†› 1’(ÊT°Ühð Ú^˜·‰£¨kõj>8»I`ˆ‰yÌo:ciBµfÁ|õ>Œ 'C†ço§—“×ÿÌFÃD†óÉÛé0⊆—“¿Æ(½ž®®F³aÄ´báù£ëùx†M±ãÕdzƒÅƒÎÆ—ãÙxz>~œ¿Œç‡½t÷˨°ù2xÿ‘+Øö›%ÂhÜC…f ¶©QRˆF³¼ü}°ÓêºöŸ¤Œ0®Di8Ž$VOO‹SP˜Ö‹Ê$QúѬ£†0øƒ;¡špÞ^‰d+aL©“ abÁ…»’mU·‹U¹MóžÏÙ%ç> %† »k<_çÕ0Ò‰÷CÞn2[áa~μ>Åâß¡Ra^¬Êû
-M¶ér¶îöy±Ìw髨¢Û4²³Ã<cÄ(ÅÝ„®Óo¿ÏÆ£¿®ÀŒ #ÁYxSî­@ÛQ­ÖïJgŒbZ¬ÐpYwÙ¾®¼ee]öÍé%û!Óa–n¶€¢Ø„éfSÞçÅ'¬Õë …Ãœ¶Äòv·Jk¯;œnõõdȈòÆbTO
-‚ÉghàweE7‹JÂEÖô­—ël…J{AVYí²eþRŽ :Äë}¼Y»wë
-Àʘð†nºÍŠ<æ™T ‘Ì
--9¹ ó! =欉eR|`°¾Á æÆŽQ Co±¥e“­96u:xm‰åí®×74KúÉ3O0hÈ"RÔ“ÇõmÈ{ò@Ù%OÏÁZOcK?y8€Ý€[?5yº°<-{Ì)Ù£´&q"Ä3ì‘ÒwØóÂ(ô“)Ä>…L-s8YæpΦí¸_#hî#0Â`Ô]EwŒzv× MŒ{ù¤$E>YƒCˆE>YÕ"Ãzçžé04ÑÇ¡‰>çD“Äyr>uz*>1a§ê%îÐåIF鉌ýmF) “P©1¬/wߎFHÀÓ$-–$Æzä´Fõ:½ËPZdY­Üêîò…ùù5
-.$X#Ç «¹_çË5Šþ†€XC¯ÔÁÍBBX$ïvˆo¨Ü ·XC´Cn”y§õÁlreºZ!r«
-yá¸ÐöÛioL]\ÌÈhv=4<!(Ý~¬0¹Ž»MÒ„EºÍª]ºÌ<°ö[(;ÁÚxUÙGÿ…oÅÓ?†+ƒW‚d°'xLó]¯Î%``ÒûJ$ðòç÷˜6=£´Y^$•´á‰P
-¨;-ÀÔpû4b äMÆm~ÚÁ'¤RÌR¢oèþvÙ@ÿ<<z¿1ÃÀ52$Á¬2øÀ)Icštd·Õöœâl²åÁE 
-º{Âa£Î¸nCq—FœÛh¬© „Ϥ¶/Sá<ìÇ¢ Ügu¾ý€M»²ªòÅÞ$6lYŦ-«]YÞ<‘£W%‰F–Y¡pç%8n¦Âcg( ø)''¸g‹(
-énµOÛC!Oàv¨%Qš›¸ÌŸè‡íèpª<æÏ$6R¶ìxî{G]Êùa¡˜O†íwèªú3ÒþóF%Ú¸° õæÅiåŶ¥Å*j¬
+xÚÕZKsã6¾ûWð°i+‚ñ&x[elÏ:Éx¼Š·öÍ’èk$Réqüï· R”DùQÖTeËUÐh¼¿¯»JDþDd,³‰L¢8ÑÌpa¢ÙêŒG_ îã™:£FiÔÕúñîìüJÅQÂ+mtwßéË1îœˆîæ¿ ,“l=ðÁ‡Ï7W×ÿ=c=¸»þ|3IÃW׿\RîãdüéÓx2 gÄàÃ?Ç·w—ª²¡¯o.H’Pr¤ÓÉåÕåäòæÃåð÷»ŸÎ.ïÚµt×+¸Â…üqöÛï<šÃ²:ãL%ÎDPàL$‰ŒVgÚ(f´RdyöëÙ¿Ú;µ¾ißþi.˜FE#! gÝñqi ㆬSÌ:»?ìHð„Aop(Öi¦„ŽÛCÑ¢s(B¦]Å&aVIå¥Ê–÷¸3çWRvtcΩptTº[äœE6C7xXfX°ƒUZÏY¨y\dåêE¨/ÒUF¢i–_Hø°ž§u6'ùNØfcÂæ°Ä韕E5()©å=¥Aùü
+ör;m›0)D¦Ï¡]^?õ¬ÏÆu¢‚â9—ÙrŽÈRVÛ×µŽaótÓÂ/í°[3¡’Ý^i¾y˜þ¥(7CáÙü¿ZXºf{ÞYõô¡†Ö ªEùà;ü4ÔO•~‡1—V”öï‹Ðœ°zÍÆhœÃþÆX£·³+ èãq³è#xIÀ¶Y¥h·±~Zã´ =Òr°*«š$Uvÿ°$) ¥érY>z@‘NÈÊAY„ž¾fO$Yg›>L2•ƒ­,1U–? GZx,ÓEÈP· ½ðÛÝ­
+'uÛ¾»JG'!•ÔC1(); ¢‡5È<S`ó·GP)„ËÝ+Œˆm˜ñH˜òÂ8aÌjÍrä¾Îƒêð¼Ë·x,ÖJûþþÞ{ä`g¸Ñ-Ñ’ exZmN«:ÛäÕW ’䡦ös³´ÊؾíÖØ6#êZ¼÷YQ¥Sà«`ÞŠ%‚ë7tI-Ô3†Ùr¦¹VÏf–h+Z"UÓWÚf ±µÍ°ñƒFXå«|™nH`ï9OT9ù<¥e:±ýÈþœe뚨iM½Ãlçå*Í‹0tyß3š·ÿ­æ"¸‚8˪¤œç ¤Á­<ƒ”μïX÷‘¢NŠ…;­_
+sÆè‘’ÀR÷âûôHÁ\Y,ŸÂ Ìøš>ÌŒ„Ô,‰Íž‹|ª\„ñ[ļ'Û8LÀƱyK¤×´8
+[ `íó8‘£M²Ñ«jô†`ÏÅj Ãé¥_³ O)ùÏÐ0Øóò±"•U:[äEFµëM^Ìòuº¤"šýU:ê ð°Ñßþ1¹ÿò‰<$ÜC˜µí 9x«‚²^ŸtÓbN²6AãÞXdU¿eI
+ˆÄŒ¢íŸ‘ÇO—+ªî D~Äíl°ü6f WÎñun‡Áh3Þ¯”rÍz”Š)(Q1Å{ª “çTð|…tÇ[cè;}ëÞHao2ÏG
+JˆƒØøaºP|¼÷“œ”1 “–/¸`ca
+àéZÆ4öéÿ6J
+¢’¼Tzh@Ú` ²ž*¨TiXš5¥ä
+^ZRÚóëß³@¼êIãň8ÜÓ¼BXfý(&æÞm™ƒB
+)Ý^œk<szÆ?r•²ˆQûª€ûM4êàó´4:©ãÁù
+kÍ 4⎙XQÄÿu35oq=pYí„(¾XäóiHÎ6Sº¦•MU 8_ÚR©ÉH¬Ü3ÏC›.œTÄ#ÌlÙ‰·wr?˜  C¤R~ˆa0¿àD~çÖÐõŠjº®Ç5®Çu]Ó‡u¯qh8÷³Ç¿ƒ
+ {l8Øc;~ t£Øõ;=»½Áõ±GÆÝ{ÄéØÓ…å_˜=*‰¡5áNÃâ$N:ìy£úÎ’ߟB¢yû Ì‘ „Ì‘RLeoä†Õo$Cä&»³èv¼QÏêvn&2¶—OFóÇBëcC'éQË Ÿz†kž;ö|O1"Eé“ó© ÔSñI¨„Inìú MÌqFûfø‘àyF)—0.%ªž­_çŽÆ$|›n¢ÿPíÂEÅ‹ô[F¹iFÏß]Àì[žRæîÃ-e¼K@%Ï ”<.òÙ‚²Gž «Z¥nþY‘¼^¾¡pOü]Q‰ÐÁQ^äužÖ­Úõ-¥é|NÈ­*ä…ç¶-èÞôú”ñÅÅ„'·ÃDÆá¦(½¾µÝ*ø×Íjβ
endobj
1983 0 obj <<
/Type /Page
@@ -9986,21 +9950,24 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
2070 0 obj <<
-/Length 2524
+/Length 2542
/Filter /FlateDecode
>>
stream
-xÚÍ›[Sã8€ßùy4Uc­î—}£˜ejº³Õ5—‡˜Æ³‰Žhö×ï9–+äâÒU)"˺}::G:2¬Gáõ¬"T8Ù3NE™ê ''´÷Þý|Âê2qS(K}¸;ùÇ¥0=Gœæºw÷´e µ–õîFDÿuöéî¢sE#MNc¥iôáêúÜç8ÿóñæúòêçßúg§FFwW7×>»qyÑ¿¸þxq;g9Ô—A uÝÛ;¬T×¼½»úx{ú×Ý/'w‹„ƒdT ôßNþø‹öF0Ö_N(ΪÞ3<Pœã½É‰T‚()D“3>¹=ù¼h0x[U]MJ ¬¸éÅŒsÂ$ßÜ­ï‚B·uÒ)¢%¯z®½XN„rí,pÌ‚HJ³žQŽhÁE5 Ÿg/ç³|:MFÈjð ³$>´*ÛO†óY‘>%§±04ú6OfiRø‡‡|† =?¦ÃGŸW>Ö%‹dö”Ì|z”ߘ ÓªÎ ÃΡ—˜1â”âUwÉ÷aRÔÝ eóÉ}Õˆ`Qþàó’ïiQ¦ÙWÿäÛle„‚­ŒðÞË lM‡Å`Õ×Q©Ÿ éTT¾LëÌA6ò‰áxP¯òžëù§b~_$ÐwVŽ_–{òº?ª
-WØAmw)¶ „šß
-&š‘cGŽ¿A ˜ÑŽt͸Fó„ˆÊýø« /ó È3ÿ"ù>Ò ÛÄ×ÏiùØÖðújÓ‚-jõŽSpO=Š%zY£UqSmIH$¹ÚgÄr¦ë&ƒïñ®½0*‰ãÕêÁªù´Ló ÈJg¢?©¢E’àƒõ00w”ÃY:+„0)š…«*œ8lˆ@µÁ}>/_Û!$‘––¶†8Ê*‹â_ξö|¢˜‚Eù8¬°ºtWÛÝ
-<I2° ÔÙ%‘VmRSj !ÕÕÖP@@T²Vc4Ìg^½ŠižêÌJk諳]AR¾RÑF%áB5s<ÌçY‰ ?.üz!žÒ|^ø0>…×…°\àyÈk†J°ÓBõBû>‹ ƒ$TC“qSàPN@P\fùv' a :G]ã.éx>KºÀ LšQ­"¯oÔÑCUÝO7X4­t­ XnE°j¾\¯ œQb´tu§¥‹%—Tf¡
-à‹«)–`ö—Uß´ª€ï}9Q«æ€*ÀÇF×y™ü†ePÞ´XgÒ=¢C«Fnšó§tÔ¸º ˜×ñ‹»ð™÷ƒáŸUÙ‘5Ì'ÓA™Þ§ãxEOKl‚ÉÚBcÊ;[H,R°v”¸C¢3› Æãº…ÿ™äÿ§?)åY²¶ë¯³ÆAÓ ºðOÅ=?¦Å:o¶T¯Q¤³yùŠ×Oþ^3­°EáÔšºèzßÀ`Ãj7'[‹™c°œŒ~eÌ%.y=çóqåó€Ç¸È}æ@òyiVÖy¥7oJ…Æ*5ððM8é?a–n°²áÀ5@›V1Õj]H…É,/}â>ñ¿Õ~'sAu”ž²¨ª[­´²ÎÌ|±él0\;e:L6ۻЖÊÞ5½ïÞdScƒ½Ó €Ønî”¶àXœ®ÆüåaÖO¾çY²Ëž¬\Qúþ‡•ªT9dŃ×}xÄ;NJÜÏm„Ù
-ú¾ÿ@–ŠK퀩ÀK;)+@¿MGƒ2L—Ï;!|iÌkj…·†±1ƒ[AR-II‰…£@I û:áøÉbúF”è^‹dO–œ‡eÉÇ’[bé8Ö*Á‰´’p€#îkºYž¿À‰/zró
-æpÚ4Lt¹e\¥l‰ß>*¸7¿P°#Ö?nà@£l—Cæ–ã}­wÈWoп«½ù‚3?ØïY*º\17Љuf‰ß>ú·?¿@°c^¿°Ó³g:®,‘B.nunçCüd¨“ßï+·8›n$
-l1m%ÚŠzÌ
- ›>ëx'Q©‰4N6D7D,ߊsC
-Àzo€z€pG«Õw…ªãJ’1î¹úË ß*%©6Q¿¿®¹2ß jq¢-N
-Uí¸¡dT'êë—N½Ný^œ¨ÇŠÓZüÞÅm§é  ˼+¾þr~óëÙÕ5~n.UÔ‡çn˜m¥ÝéU’õÊ6¿péø¢ÈBY®kÏ{ÑÇÿØøÏå©RÑÙÕ¿ñ»b+£þn—çXêAmü׬½;Ì@Ôc¥©%~ãÒᨵ%Ô0ï§/oú¿^ÀRŽe¥ˆ—³Y7ÄE¥ÝÙ‚½—ì—¨äÕ†™*¦×}¯N{`wýö˜¤³xøÝtHHPI„p¬'Á¶¸£U–(ËMS,ýÿüŽÿendstream
+xÚÍ›KsâH€ïþåˆQm½{sû1ËÄŽÝ™Žž™ƒ r[³ ÑHØíùõ›¥’PMÇ> •ê‘õUVfVJ&= ¤§ÂÌðž2 LDo4=ý¯ðìç3RÕ ëJ¡_ëÃðì7Lõ 2’ÊÞðÑëK#¬5é Ç¿—ÿºø8¼œ‡Tà@¢óPH|èß^¹ã~.ïnoú?ÿ6¸8W<öïn]ñàúæzp}{y}£)´ç^UÛû¡mTµ¼ö/ïÏÿþrv=\NÀŸ$ÁÌJÿíì÷?qo sýå #f´è½À FÄÚ›žqÁàŒÕ%“³û³O˽§eÓ6hœk`EU/$”"Âéöa݆­.@’¶6jh0pí…RQÄ„iVo @’ô”0H2ÊÊUø4½šg³Y<¶l õZm@RàƒËºƒx´˜çÉs|2…ƒo‹xžÄ¹»yÌæö‚/OÉèÉ•OUÍ<ž?Çsw=NòQfïˆ`вM”ÚÁa”d„ åpñ÷QœWÃ1¤‹éCÙ #AöèÊâïI^$éWwçúld„ŠŒðÜÉV°–óh
+͕A
+W?Á¥Añ:«
+£tì.F“(Ï×Ê^ª¹»|ñÇ0vZL^WGrº?.+—ØAm çÄö „êߟ½¨gn¯íÌí¯×ƒ-hfÚ2¯ñ"¶‚EfÝüË's”g©{ŸM¢$µ}ÚÇ/IñÔ´púák‘ 1É*õM˜pΊÐJôÚ¢UaÝlEHKrsJ¦DV#L£ïᾣ̑¡åî±M³Y‘d)åF`ó8¶7ÚÁ°¥ã8Í“YX"„E‘H »«ü…³
+öI£
+ö¹«Ç*U°% 
+ãèà6+â´”•7ÉÛLúrDëÐÊ™«zÄì9×®n
+æuòêž.}æC4úïKTÖ»G£l:‹Šä!™„m=)l„WÚ^9g «³d¤™¥0…Ȩ́ÑdRõ¹ŸiVû/{÷Æ4[‡þ:¯„Rõ¤sw—/¬ç·WQÞæ-Àv€êÕŠt±(ž@ññ_-Ë
+!
+ÅZUUÛ}0†*Ñ'[{ ‰!°”\3æOQa·¼^²Å¤ôyÀc’g®ð ¹²$-ª²Â™7!|cjxö‰¿è?Ù"YO`#à°{
+Š4Vº¦
+É|öF”Ö½æñ,=9Ë’%ÕHÕq¬Œ"®9ñà
+éAlÏB®1Lá4T¾ºÜÎѪ;86ž²2ˆ$)Ó]‰F”àʹÞ]êM ‰»X¾óÝÃ(z¢2AL!×.FZ'v+‚‡læ7ôD;á­Láì£ëòÊÐ0ŒW¾ø|3ÄßRBÛf#»¹k û‚°RA¹Ð]n™jjßßš~‡¨àáü<ÁN™„{³.‡L ¢sÈý7è_ÿ`~ž`§¼!ÞӼ˅P¡g\®à;DýÇ×ÈuÊÚqž6´—ˆ+Ãë—d÷‹‘ý«“ß——bÛ^ðä¶Çx¼“¨'ë)#…¨Ï0Õå’)ãHÀ”j¤[2Àoå¹%!ÜÀô¤<Ìýh?"ÿC¤A¬übÊ¥Ðäž)4Š1¬»ShD*ðÆÕ§‘.…ƪÚ Î³És½ûfÍ\Ê•À”ûÿÉ:âã§ ƒH“Ùž/«SÈ„ð-”n¦Ëì6º"Y•3Ø%»ÒhURXöü±’–ÇcI(GTâŽ7–„*pÊE›ŸìÇTÖ !epó2þÔjowÈÞ
+ƒC4°å„Ù §'ê©âÔÚ~ñbvÓ4Ð…®Þ¿,aÊÃ`ÊwÂ,=é­­¤ýä¥ãí£†ºTºHôöóÕݯý[ûí>Á
endobj
2069 0 obj <<
/Type /Page
@@ -10021,52 +9988,47 @@ endobj
/D [2069 0 R /XYZ 85.0394 794.5015 null]
>> endobj
690 0 obj <<
-/D [2069 0 R /XYZ 85.0394 447.7394 null]
+/D [2069 0 R /XYZ 85.0394 435.7843 null]
>> endobj
2073 0 obj <<
-/D [2069 0 R /XYZ 85.0394 422.6188 null]
+/D [2069 0 R /XYZ 85.0394 410.6637 null]
>> endobj
2074 0 obj <<
-/D [2069 0 R /XYZ 85.0394 422.6188 null]
+/D [2069 0 R /XYZ 85.0394 410.6637 null]
>> endobj
2075 0 obj <<
-/D [2069 0 R /XYZ 85.0394 410.6637 null]
+/D [2069 0 R /XYZ 85.0394 398.7085 null]
>> endobj
694 0 obj <<
-/D [2069 0 R /XYZ 85.0394 197.6003 null]
+/D [2069 0 R /XYZ 85.0394 185.6451 null]
>> endobj
2076 0 obj <<
-/D [2069 0 R /XYZ 85.0394 172.4796 null]
+/D [2069 0 R /XYZ 85.0394 160.5245 null]
>> endobj
2077 0 obj <<
-/D [2069 0 R /XYZ 85.0394 172.4796 null]
+/D [2069 0 R /XYZ 85.0394 160.5245 null]
>> endobj
2078 0 obj <<
-/D [2069 0 R /XYZ 85.0394 160.5245 null]
+/D [2069 0 R /XYZ 85.0394 148.5693 null]
>> endobj
2068 0 obj <<
/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F39 1165 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2082 0 obj <<
-/Length 3512
+/Length 3448
/Filter /FlateDecode
>>
stream
-xÚÍ\[oÛ8~ϯðÛ*Ø5Ë;EìbN.³ì&mâY`13Š­4Bmɵì¤ý÷{ŽHI´#[ÎØ-‚j‰"Éï|<’6 ð(M´åv`¬$Š25ÏNèà|ûù„ù:úÒ0¬õÓèäÝ¥0K¬æz0zdÅ„Æ1Œ&¿EšHr
-hôÓÕõ¹=rE£»Ñ©‘Ñ{ügtu7º:»;Zóèì_ï?Œ.n]-4t%¾ùÙÍõåÕÏ¿Þz7×®øöâòâöâúìâôÑ/'£fá$8ú/'¿ýA˜ë/'”«Á3¼P¬åƒÙ‰T‚()D]2=¹;ùØ ¾VM»@“2¬
-E g¶ç?Y9K–ãG ¥U&º=_Íoû!m[qÃ<Ëy‘—)²Ól²s( F©ûêpí®ÎÿöRÀ_Jìúñ<sê. §£1Ê,J&ߨDBEI>ywÊ"\`XaùèknÈ®Ê6¥Í‹ÅÒ=MŠt£^õŸXA먞6<>?&¾ð9)ÝCúužŽ—nÊ*ŽunÚðÍw‚2V¥º¯¾™H ÷^,º:¯¤[MÒß)åy:ÁWÝsÅ8U§±PÛÆ†^À)¬êü¥Z90‡‰r•Šù2+râ–‰4FYéúš%¾³jÄð›äîC–O²q2¬†=d”K©\×
-uk­xp¿‰û'ã
-xœYYäYþÉWX.ÓÙ|¹}=†L?lñ|O»¦ 'BÙ»¦"VjÖè”wX¬òq<ê_‰£S‹«-ŽêshWäÞþ"ñÛõZS"©=¸jA¬¥ÎÎý;™Õ E×[=÷"ëZ t“tš~JƯÃ2åq±dÇÄ%)-ïÁRqBÁ¤UÈܦKôž˜wà0>öƒù±u¸¼å"«™9OÅb¶Ê`o˜–Âm˜òn$%…ðœê–÷÷ÝÆ¹Â³ÛÔ«}²òD]uxS,k[äK8NwÀÛüXèBŒkõ;R·ØŠ.8Íã>cÊá+ÙÂ{WŒ?ï(^¡  GÑ»¹ßbžzçDÛà‘b 1þœ.!n_(£›<uÅãb6+|S'/ïÖåÚ0^aVDå
-fùZ@ê¾e¥û’¸× ‚+G·ŠšQ•óôÙ½»¡ºB$LGUÓÇSgšÍ²exoÿ‹AÈ´1åx‘Í—–ì W ¹ÃÈð=W¯ŠcH/DSQ–®¬mù5:U*Êfi±Z¾Ê.]›¸…#z»D AdÜã@T ]PéÈÏÓUz™B ý$172º»ûVîáF®>` D¯Ê!«m"àó9”[›É,*>ïr,áàß®cQ†«û˜ BZ½°~5Âú¸·cÃ
-ê1Ì>ýúbö³l:ÍÊt  ÷s•Ñ¥;L¦­c²–h*͆cJ>#Ó´;ßÄ_ò”æ™÷VPðìëÜ.K'A¡Úèíd„>µÔ$ø—‡“±–8 Ev‘Aä(ahM5!í4uªn'ã¤ïýä)À
-Tr°`š”Kp¬FglØ4¯Î™D,¢ò±XM'ø,<(sk|îC ¨œú
-IÙ‰¯$¼u;]øÂ, W‰§Øh™Ç×K†"»ð…5¦ahMµÊ•üµk!Ó›ˆ| 4K˜áîB2K“ÜÛWf$šq¾±ÅïÜãÆ¾‚÷Çòqk_±ÐÛW,_·¯ø±±¯øâ²dêÊÝ BìnaàïSºèÐÅæåŠºàÁf`]Œ˜_îÕ‰ÃPäK]pHÀô4•¶9u?øìšMëÆc[*¦¦-m.ÔÞë½Tm Ä_èO5jÔÄÀµKH‹ éÀ´È„Wñ^\Éã&†é @6‚u« ¾/(Àkq¥š{ŒŒÈS¼bB£;–…ùçÕ»«ϪÊe6ö›~gE-ÓEÙ¡<ภë³~×yqøPâð}\‹«Þ’öümí^¾ÎÓ…È]~›§ÕU%ÊëÊéˆM,þèÚñþzþAv]ౘñ°ÀµAÅw¸ÕŒž­+¢V VXÕŠÕ¯«·‰KÙ¡0ñúÒuÛ@ÖmL *î¶.Ô.*ë×HÕ{Iý5ϾvI¦è8„ë 98šób–d¹^åßÝ!”eÄĵW¼<®®u¤Eâd#ƒžüñ²ë Ow«|^-Ël’º—6mæ1o^«‹ŠfÅd5­‚ q¸®Ro®tíTôPL§Å³¿ˆ¥ýE5V¶æMÑœª&,üG×40 qÛè.:Äpˆ¿µ¬­è?»#W
-ë;™ßN[>nœ¬gá±{:}¹Óƨ% þ`FÅ÷sbjÄë|Aw«zôˆÍœ†œsÜ|h½µ°k^Ø%pˆd!ˆtæüÛ쾘b¬iytÀ¸ðÁê—Ìbë¶ÃÆ ŠµÛ–‡o·P0ð0ÞöÐg}EÖP
-¡Þ¡ü@Rm9žX'Öúµ-A­ß0¢í…(,lïj[òäÂJ ¹°Ræ%Tä¯o•\ÖŽE®£LäÒ0w%{¸¥5aÒ߈üAä:›bv»¿É›”Ød²C%í\åD¾ƒ?e
-·cÛ£éVìs¯¤’Ÿ²|ò'Ö{øw÷™?nj#²r‡Â(Ž«±ã®!›¦Gc’.èuûgEž¨±1ˆHÇËW(-@ã-+k¢ã¸'Vc°qócÝ**­Wag^-MÚ’–˜ fåc¯tm[U`q,•ízy«2ˆpâà"P·Â €ùÛ¿?HaïǘAþ‰u¦„¬Ö™"J*!Õ2Ãâ,³æmÜhÛ½7çôå²û
-Ì™¬‚§S¹àÞërœ3áâ§:T‚U¨åÝ¡SšX«e»;Õ½!õ¨wº·\@OÖÊþ˜ /ô®äF~_eðÛÝRå0ò}W>ƒ ·ÊôX ˜©üÖÊç^._5ÕÂ-± nì¯2AU¡cyõç—LVršuþ5iòKãB~ü­(‹!eñ)[ýn¡,ío»›²xW ¹9ÓMYÎÌ!þN” ØpàŸ`@ï†kt›–(.;ÿüžz}ê¾ìßþï¤!€Op†¶¾÷«`ÅÃ3 eU§áL¿8‹ÁýD<óÕ‚±ÿõ
+xÚÍ[ëoÛ8ÿž¿"ßNÁ­Y¾¸ÃÝ<ö²¸MÚÄ{Àaw?(¶²jK®e'í3"eÑŽl9·
+ÔE9¿΋ ;¦ð+M´ãîØ8Ieêx4=¢Ç·ŸŽXè3h: â^?Þ]sìˆÓ\ï#Z–PkÙñpü[¢‰$'@&?^^¹“W4¹ž™¼Çÿ†—·ÃËÓÛ“s–'§ÿ~ÿax~ã{éh o ÃO¯¯..úõ&¸¾òÍ7çç7çW§ç' >:®ˆ™dTàê?ýö=¯?Q"œUÇOðB sŽO¤DI!š–ÉÑíÑÇÁèk=´ 4)-`È „%R)»}Z?…iÃ#cÄ)µ9ë@3b„
+å!q„ f`—½€¤a·â¨ 'B¹>Åä‚­m Î/y5M£PK§Lrs¶œÝôCÚŽâ†U¬feQe¨fS;Âðdøùo ?îòì‡çþVáô0ÏJÏpªô2! Á’t<ƒ*¤!T’ãw',Á †¡çíºm“Ú¬œ/üÓ¸Ì:ç/Jì uÒ° Oih|J+ÿ}™e£…gYٵγ ßÂ$HcY…§»ú›I”ðïå|}ro<jêŽ&ãìwJy‘ñ•%w_}3²ê%KÛ8ÂÐzÕ“?+Ía`ã}§r¶ÈË‚øm"áC^ù¹¦i˜¬^1ü¦…ÿã|”êe¥ÄQ*×±C¢~¯•÷þ7õ?£tTƒ³2¯Ê"/þ ‹l:[lß±¦¿nó|K»¦5%’Ê»¦µ ÎQo׆' ¼Ã|YŒRУþ8<q¸ÛlÒŒˆœC»#÷öñŠë/Ø!q…èHJÇ{pUœP؆5NÿI§ j†¢ë­Ÿ{‘õ#ºq6ÉþLQ_†e´Ê·ë{µ€ ÛÉ(%… œê˜›lγÆòüÅÇ~,?¶þÖc·˜çbβù}9ŸîD²]ã’Cz#¬íA’Ç@bËû»nÛÜá
+³Ç4›}¼ zº(›è¦\4&¶,>nœì€7Zù¡ð…XÍjõû܌؆¯²âiÑgL™&ÌPÞâ{[Ž>í(^D¡ ÀGÑ»ùßr–çDÛà‘b 1ú”- n_(“ë"óÍ£r:-ÃPO/ïÖåÚï1^aN$ÕÃ
+æøZ@ê¿å•ÿ’úרƒoG·ŠV«Œ:Ù“÷Kõ¨1AN£?Aw&ù4_¤‘÷¿„LV¦±ÍóÙÒ’íúKîuÊð-÷¯2‚!Ëvë—²0•¦Õ¯á‰RI>ÍÊåâE†páÇìÂͯè;¥a¹ºg[*xÒyòÓd™]dG?JL „Lno¿V{¸‘Ë8Á«STÕ6éÒmÌd^<–Ÿv9–hío`ˆc,5=ŽE) SH¹°~1Âú°G‹ÃC|c ²b)‰Žo*ñ~Þe_åmË;qVüvuÑŽu¦§ ¡'ÒJ¶©º{㪈k´â7¬¯å8ÉûŒ.§øñ‰åëÄ2¼÷©u?®gW··ç§µÇt’£P äç;Œ–ø†„å:kúœ>µDaÖ€¼þô: !âeÙx'†~u
+ÞðyŘCt£WÅàn†Dñ€ºïRͲQŽÙ .KÀªë¢»`ày[‚×9)~¿_
+¨!]Ì2ÐIívnš[r8nŠ}Ü‚Gs”ºuv§ìBH©´Yg×ï©Ñœ.w©´ _†o
+dør—-ž²¬è²y`Ѥ5;ÀUÄp™¬£µF
+P“xÎjvåû*cCq“ìPF&A`i«n¸BÚiêTË”‘é»À<XA•üU
endobj
2081 0 obj <<
/Type /Page
@@ -10079,41 +10041,29 @@ endobj
/D [2081 0 R /XYZ 56.6929 794.5015 null]
>> endobj
698 0 obj <<
-/D [2081 0 R /XYZ 56.6929 328.1878 null]
+/D [2081 0 R /XYZ 56.6929 316.2326 null]
>> endobj
2084 0 obj <<
-/D [2081 0 R /XYZ 56.6929 303.0671 null]
+/D [2081 0 R /XYZ 56.6929 291.112 null]
>> endobj
2085 0 obj <<
-/D [2081 0 R /XYZ 56.6929 246.6387 null]
+/D [2081 0 R /XYZ 56.6929 234.6836 null]
>> endobj
2086 0 obj <<
-/D [2081 0 R /XYZ 56.6929 234.6836 null]
+/D [2081 0 R /XYZ 56.6929 222.7284 null]
>> endobj
2080 0 obj <<
/Font << /F37 1030 0 R /F21 942 0 R /F22 965 0 R /F11 1343 0 R /F39 1165 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
2089 0 obj <<
-/Length 1362
+/Length 1521
/Filter /FlateDecode
>>
stream
-xÚ½XmoÛ6þî_¡60±|§ ÒÔn] y±]`C׊Ì$Âɵäý÷;Š”,Ù²³,à "¥ç^x÷Ü`ø!A$fšJs$0Aò4ÀÁ|û8 Ö °z¿¼›0h¤%•Áâ¾¥+B8ŠH°X~^~º¸YŒg£
-<”h
-‰‡ï§WÜí—×W“éǯ³‹‘âÃÅôúʽž'ãÙøêr<
-µŽ(Èó–/;_X!/9_L/ç£ï‹Ïƒñ¢9@û3ëýÁ·ï8XÂY?0b:Á6­ið4à‚!Á«ß¬óÁm£°õµí Ç*X
-Œ8!§­: ¬ú%eH[?»FCÂâBÙ<pްÆû<€ú}g(bLJh$eU"~µQy7¡m¤BŠG
-´[Àâ›±Ãt´Q¸ä̃~;¥%ò€¹É–ãÍÆÃh 1Sšj³ óM1
-™bÃ4³O>,òä/Sºwèr«|m6q™æYù—.S/˜äÛ¬4'äN­ ­`*$i!he³XçÙ²p¬)óž“p8+­rQ¥ÿ”B:EµÆ¼Ušß÷)UˆIRǧ¢~RÈnR¡C
-sà°’’íÔ¿NŒGˆAÂJ HŠ×¨¬%N3GˆÒ
-z%úÿ$èÌ$ϯ%(ÅŽ Ó† öãZbÒgã>vxJ5÷<uòÉj»4~göÚ{ˆ
-<>)_
-jgaåeú'Æ@“®OßýtŽ3÷œ^~¹q«ÆU·}2E?˜3 ݧþmlÚtßf_êÛVFauзÿTí‘1m4¤
-aÕí÷G}Ÿa‰"ªU`û”%^SNÖ3IB{T»°ó 1
- Æ0ó§5äü.]¥¥ÏÎ.-se{òpÌ&ò¨Åtê$B‚ÀÒ·?x]û*zÊ!$B",™„ss¤9á•à—¼°í™B%”à]Q¦‰íĔԭ°p_ËÇØãvÆÕ‰CÅÏqºŠïVÆ}„²êqÛž)ÅùžÉ •”îÏcÕÅS«"÷®n×ë|SÕÇI£Ç9£¯0ª½Q€â1ßeSU›NÐYÔ-ôø.¯Z‡H6&¶m0‚‡ŸšU5ÙÞ@?Ã@z[úɆ|îÓP©­Ò`W˼QàÅ×k{¡4«á¦8pèð2…p¹°ˆ¸àý7F
-Û¨ÓEРª=Ù-g¿ÌíïCÛD€
-¡´d\w¹¹‹7Ë4{èsRœÕc9.úNKÔ’¼êÒãiš.OsŽiŒ½À¹ê çjTŹ‹ß'Çl#Ð÷%æçÍ6¨»¶Aeœ¨®a?Ø—­/Ǻ“ÆmZu˃2õc:Kò'›¥jw»5›´î\€§ƒ‰5"„¿TÀ-Ô™`Ö¨*˜ÓÛ£Pbè~XÊóFTÕN(á+‹”îšýoC93?¶¦(ÿa,¹Òpç‘â|,Û¨Ó±lPU,¯×eqLL ’€{ÊY³ ªÇn'š–Àö®á¢Ù ‘Vÿ³Û3ýnQõš– ëÉeÍ&™Ø„Sk…þXß–{rmïÁ›Â‹¬Wqr|Ÿ­Ó—Sû—~O„qP·Ë7ÿCaÿ/û×bÑþT1(Æ4©²1"Dº× 5U=¾ÿ 2>.Ïendstream
+xÚ½XÛnÛ8}÷WèÑV,ïÅij·.Ð4u\`Ý>(2ÓëHª%×èßïP¤dÉ–íͶ(D·Ã™áÌ™ M $ˆÂLó@iŽ&"HžF8øß^ˆÇ„ (ì¢^.G/fLiIe°|èÈŠŽ",WŸÆ×o®n—ÓÅ$¤%š„BâñËùÍ+÷F»Ëõû›ÙüõÇÅÕDññrþþƽ^LgÓÅôæz: µŽ(¬ç ~íÝÒ.ò+ï–óë»ÉçåÛÑtÙn »I‚™µþëèÓg¬`¯oG1‰`­ið4â‚!ÁkÞ¬Gw£­ÀÎ×zéÓ8&ˆPÁ‚PRĤ¤§Õ:Ôú[&P$…8ЦʂQD˜`m é‚p†"ÆD „F’QVGâwë–3ÚE*¤x¤@º,ÿº:LOˆKÎ<èSR"¸JSTE;(ð™ÒT{Ø<Kò§4û2 %Sã$Ï2“Tiž•öE4.· ¦,&d¼]¯¿»—q-Ú¬€„+:^>¦¥U"CB‚Ö²“|›Uf3 ¹Òc€Ô×,¯ÜM\ë4‰ïׯ=W¹¿>š½AÂQcöÇW·[£i,¥ÇÄÙj@%ŠÖK³W»¸Jd…cD]ý=Uß S¢Cfs ¶²ÜêâÇHÆx„¤/Â>›.G"›§y‹#D©¸D[»Š~%mïL¶šn6yk1$ç SlœföÊÇežüc*÷®Yî./Ì&®i œ•v”­?µ$µ«“܉5áŸË"ÏV¥«vÀÖãpØ+­CQoex”"NDãµV½š? UP¶H㟺d…ƒÛPDgºü‘iÏφÀ?±®JµZèK•Z£HHþ+ º0É·ç”bGPŠiKPûÎq-1é7ã>öxJ5÷<uë“õveü“ÙKïÕ5{àðIù Bv»/yæ®±»øºo<ÚVW' 1î¡p§cLÍj(7î¿;
+Ç™»Î¯ßݺ»ÖT÷øí$þbN3´ûŸUB÷óÁ¥Ã®QX ÿoUc‘1(¦Pʪ?¨ , KQ­ 8GQÔ)Ó=V6Ó”„0(€Öa°“A3Æ0ÎåODý>]§•Ï.­|·“Ý™‘€e–=GE¦—)„6í5ò#£+`åP %B",™„s¤9q6¾ËK[ )äBÖ•UšØZLIS K÷µzŒ=ng\¦8Tü-N×nn°!±LŶjJq¾j2ˆ%¥ûýXqqOպ̽©Û¢È7u†œTJ rœ3ú ¥Ú+õ(ó]Öjð^¨Ç¡Àö'¨Ž,êç]|Ÿ×Åö$ë[8Áã7­Ëê¬ì>@"ßÅ`õ¶ò½ù݇¡[‡ÁÞ­òV€_^&ö‹Ò¬›òÀ Ãc
+˜Kí¯SþÅAS(øG°ýÏ‚ö¤óâp¤¤cš4FY¢M‡\MÕ€íÿÇÔendstream
endobj
2088 0 obj <<
/Type /Page
@@ -10126,10 +10076,10 @@ endobj
/D [2088 0 R /XYZ 85.0394 794.5015 null]
>> endobj
702 0 obj <<
-/D [2088 0 R /XYZ 85.0394 665.5626 null]
+/D [2088 0 R /XYZ 85.0394 629.6971 null]
>> endobj
2094 0 obj <<
-/D [2088 0 R /XYZ 85.0394 637.9713 null]
+/D [2088 0 R /XYZ 85.0394 602.1058 null]
>> endobj
2087 0 obj <<
/Font << /F37 1030 0 R /F11 1343 0 R /F21 942 0 R /F22 965 0 R /F67 2093 0 R /F39 1165 0 R >>
@@ -12687,16 +12637,20 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
2622 0 obj <<
-/Length 3011
+/Length 3062
/Filter /FlateDecode
>>
stream
-xÚÅZmÛ6þ¾¿Â@?œˆ¾‰q‡6É6Ø¢ÙÛk6¸m?hey­D–KÊ&÷ëoÈ!eÉ–íÉ¡-Säp8œ—g†ä²…ÿÙ,VDnfÚHSϲõ=ÂØë æiæh>¤zqñüG¡g†ÅÕì~9à•š$lv¿ø-zA'—À‚F·Wo®_]ι0BEWww×·¯n~…ï˜P½¹º}wõ3öÝ]]½¾~{ùÇýO×÷½<C™V˜¿ýAg ý§ J„IâÙ|PÂŒá³õ…Œ‰¥¡§¼x{ñïžá`ÔMÒŒs©@Âê ™Ö#š1 Ò’cŒî5ÅÙ”¦•ÕÔüq£*±Œš ™,ˆ&–äƒ%5%± {KþÒU¨ëv•c£É·Ÿò-¶‹ýÁe½½dI”?ºŸº«ØŸ††'È<}Z–Ø(ëÇÇ¢zôìj»Ïç?Ê¡F8hŽª8†=YÁšv‘o·H7Ú†ˆI²##®áõ¯%’ñ36Ú0‘'rZ£D°þŽI¢”4^¢e™˜ÑÄ„+‡SBšC¡†»g”.IuihÔmÁXBЍv¿2Zçëzûûº&}̱¹È:o Kõ;¥"}llô“»ºiŠ‡Ò“ú1üHÑò~ÿbh9eHÌ„ò
-Àµ Ç IÔôl‚‘"LölÚmše“|-—mžÕÛÅY7:˧)þ;)Œ †Q9ä@ÁíTp/ƈ‰c´‘Ã5˜!"ÖÂÏ_gí磋ˆÞãç‚Ñè~•7>È`‡h›fS‡8„GîÍÛ—û^Écp\cf
-ÐZÆÊ| Œrbœö§@t·}˜Çš¨D'»…í¾Þ\¿90„sö=% ω˜(ÂÕc_]¿x÷úWøUÚ‡‡ýXäM¶-òEœ‡þd… >õ¢ÉžC”’Õ?'¬¨®cqç”ÒàȆº!Õq¤ë©ÔUSPÇHbâàŠ?d›®9À:P˜Vü´`hB°1Ú Ð¾ŽÇ’½DoOÛ)0vËRïK¸ý‚PF¹§zª·lÊL@Àxî ‹{LºHré‡{Òŧ´jPa ^âïº+ÛbSz¢—wï_ÒÜx‚ªnq¬ÙäYÞÃó…ž‘9³™°—®J×ù‚Í…8’‚ Aí<.çb·ý]Â`ý"oóíº¨rß½òª[?¸”/q7–ÖÊ=.yÕb&{hd;C¸9õŽsP¢g¸W‚´7Kì)<Ó¯ÖU©Ë?–ëPÃI‡»"\¿ h»]À¯ÝÅ3_Šøò2_ég»#›Èv¬¥ËC€Ù~·‹ãÑÈÐ:ªÑ¨\4nÎFã¦Þ¶Áȉ4ɹф\Co“ÚìÉõsÑ´yµ«ý\ãc—o‹ÜcíGƒxûª'¾ ÅÕ‰<ëSà7²‹+gÛa\c‘/SˆOÎÍ@$ׂŠþ˜Iã„yÚ¤Cªã&í©œI SIgäô’hbÉQú0P$Œ–üÏ¥–Ѷh½RB…hÛ¾BtjlÓÌZd͉rÉÀ‡ïªõº›2œH ÀQ,øBþ¹hž0Ï☒„Ò¯Jö"qÍ#é€CD*u℈ó(ðòÍ0c¯rÒÍ¥„ (ïjïái9K4á:á³XhkªÜ¾oš‰èÑå68ŽñàÒÿº„èƒB~®xt} E ugÒ@:Ê-=û8ƒ,!H4h»½îtà:žß¬ùìU ;š 7åχœÝ¦Ô( Cø)8ÌbªˆTù÷+ #Õ›¶@ËjZ*Z§EU~ñãK?VpçM‹_X¡êèÅÍí+œc°c‘_
-}ºäq”—5¤¿Œ?cjàm ¾à$Dg …þº¾d±Ÿ·˜Jž4NWiõè
-5øpG\øMñgÙµÝ6Çö6/óŠlàzà¬â‹'&™ ÝáÛ<L€ë(uþ|w ñmþ?G.ȦD1z&-I™ÆÕi DÁÞž/×éçySgÀŽq€ ƒed뉅9(ÔsBÆr$ÝUYÖOå(EïΡǪ+à(¶ŽS]8su›16Žrƒ„èÏ–cìÃ4‡S¿ê/=€*o›£Ð(™;”Æß™€¡¹üžÛO9Ž\ƒ›ìUà()$%XÅ'¥ p†š‡*þÊÁâ/îß[”7}›G¯Á¥€³@Âpƒ
-Ožò¾«²0MGOE»Â–õ¦‰§Pˆ4nxx'˜w`¦2`¯p±â„zfñœA9ˆÌ³Õ²÷g°,á;wÆ}¥x5½ÙºÈÂDz¨Bñ‘zÒ0Rã6uÞTk±;¯ ¡eþ:¼É³nPƒºòÊßןVów[ÓÑ …ƒJÉæ_ûM(‰Ju¸Y½þNcÊá6¡0@–XÒþœ5u ™Í†l…·6á–Xĸa…·ñN=öÃ[Z¨$À*Êü1÷“Ý¡QÛÜš¥Ü!T) …{oƒá^"0L¢÷iQO‰Ã@ý¶ØÿË3b[8‘‹†wS—‚ÄqÈ?”îRÚžwö¢
+xÚÅZ_Û6ßOa §j†Ew8`“lƒ-š½½fƒ+ÐöA+Ëk%²äXR6¹OC)K¶l'Hm˜"‡Ãápæ73ä²…ÿÙLÅ$6ÜÌ´‘DQ¦fÙú‚ÎaìÕó4ó@4R=¿¿xö“Ð3CLÌãÙýrÀ+!4IØì~ñ{ôœ0N.n¯^_¿¼œsaD]ÝÝ]ß¾¼ù ¾* ¡4z}uûöêì»»4<ºzuýæòÏûŸ/®ï{y†23*¬0.~ÿ“Î úÏ”“¨Ù|PÂŒá³õ…T‚()Dè)/Þ\ü»g8uS§t UB—1hCX$ÓšbD3DZRbŒÑ½¦8›ÒT ²šš?îo4V –‰gCfK¢‰%ù`IM‰toÉ_»
+uÝ®rl4ùöc¾Åv±?¸¬·—,‰òG÷SwÕûÓÐð™§OËeýøXTž]m÷ùì'9ÔÍÑX)Ø“¬iùv‹t£mE’90 ¯Í(‘ŒŸ9£щ#òDî„Ö(¬¿#d’ı4^¢e™£Q„Çà§„
+4‡B wÏ(%\9’êþÒШÛÂa )¢ÚýÊh¯ëígìëšô1Çæ"èüYXª?(écc½˜ÜÕMS<”žÔáGŠ'ï÷/†'¢˜ˆ½p­Ãƒã†$‰júq‚QL˜ìÙ´Û4;Ê&ùR.Û<«·‹³ft–OSüwRA £rÈ€‚Û©`^Œ£ž‘õÃ5˜!Biá篳öÓÑEDoñsÁht¿Êïd°C<›fS?{îÍ›ûVÉ®1³ÐZªØ| Œrbœö§@t·m˜+MâD'»…í¾^_¿>0„sö=% ω˜Ä„3ªÇ"¾¼~þöÕoðª´wû±È›l[<ä‹9!ìÉ
+lêE“=/%«Nœ: ºVâ,ÎűC6ì4Ð ©Ž#]Oå ®š‚:F£‚)þmºæ
+Í#á€CDÆñ‰
+çQàå›aÆ^椛K-Þ ÔÞÃÓr–hÂuÂgJh¢4ݾošQ1èÑÅ6(Çx0é]‚÷A"?yt} ™˜(ugÒ@8±[zöaQB#hÐv{ÝéÀu<»YóÙËv4nÊ3ž9»MÅ£0 îC 0S4&2FÏ¿_¡é¨Þ´ž¬ö®Gë´¨ÊÏ~|éÇ*
+’¹¢T}hdB„æò+,·Ÿr ¹3ÙË &ÀQRJ°ŠJà 5Yü•ƒÅ_Ý¿·(oú6^ƒKµ@Âpƒ
+x˜ ¼ýâ©=?p5œÃaÛºZ»rÐR:û€Á÷• ÀOv»ºº›n³±F)iä'ôkŒh+»¢/ãœË©s”´b¼·ÿ
+ª>
+£ÉÊÁ*°~ȶí®s¿}|`SΑágU<®‚x]‹
endobj
2621 0 obj <<
/Type /Page
@@ -13471,10 +13425,10 @@ endobj
2079 0 obj
[934 0 R /Fit]
endobj
-1920 0 obj
+1916 0 obj
[934 0 R /Fit]
endobj
-1595 0 obj
+1594 0 obj
[934 0 R /Fit]
endobj
2769 0 obj <<
@@ -13491,7 +13445,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
@@ -13514,7 +13468,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
2111 0 obj <<
/Type /Font
@@ -13523,14 +13477,14 @@ endobj
/FirstChar 67
/LastChar 85
/Widths 2770 0 R
-/BaseFont /PSTDJS+URWPalladioL-Bold-Slant_167
+/BaseFont /XTSTDE+URWPalladioL-Bold-Slant_167
/FontDescriptor 2109 0 R
>> endobj
2109 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /PSTDJS+URWPalladioL-Bold-Slant_167
+/FontName /XTSTDE+URWPalladioL-Bold-Slant_167
/ItalicAngle -9
/StemV 123
/XHeight 471
@@ -13554,32 +13508,25 @@ 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¸
-x»_jø¢H™ùEeWí èU“×ø¶óåª2ÛZo™#s{2d/ʇžõ}>Ñ<Ó;!öµ@°i1~ÚW½(ïý1•LCAnݵ¥~Íg¦E÷€ƒïø\±÷OYýéÝóýINœ |­RÞ¾zÐBX{‹¸ª`û+SÂæé sWßÇžîöûïW)Ù³_á0йcâ3Eú»dS>1Ô)•+«v;.ï‰Õ‰¿Rð|y-ÿ€un¤‰^,eç= NäY&~œpíà“ÜV¸F5ûNµPŠÏ½°4ä™R°ä›¾/ÙÉÆNAë«ÿÛ$–ÞËÖ·ˆwi̬SŒwOÆFwmUd™ë*³­+F3ñ/š®‹v
-è¤MQHeðxœu1<lÏäô}`\vx{eâðô\$–R‹˜¾Ž‘ð6j$èªw$©b*;.¸X*Ò/Ö~ ÜnÅñGµ™¿¥qÝä©
-€·í+*Âè
-Œd§]Ñ ÔýÞûzõp,¬}¾!%wa~ê|<ŒÏä;í¶~œõ
-@fþš°+ˆu~„mæ-q–Ð]S…!X7.-£þéC'ÌhkAq,2+ö5˜Å?Ò#~ vRU*¥$özªéì®>/êÒ;¥¼\W#$õ²zé.V€z½¬®½šØXߔ̊P¶8»F-Ë7O.ÄGÊùNžŒ
-•\4 Oõ¨Š×/ÅÕ4"š ÜwF3düãîm
-Ÿ2‘(Ä£ Ù½íZñçõòJŸÏÎ>R:«W²| £yZÂ;lˆL")Ÿîî#0nq’*ï
-áH³J–tB-[€dŽäšôAhPßÔ½¡€[º×Uê×JçÔ
-M €)2CTLkh¶VU^('mç Þ~pnŒ
-£§RÔ÷z¸y¡Wv£ÑÞ ÙšÊ H.ùY¤<gP¼Çziöé]P%ëS×ýŒµ„è} ²j&'¿T ¾ýÑÈ*J¸œV8e¡Ñ‡7;/—S22yD÷Âçrš =n¿C%zQ3)ã Nœ¾œ#LÛÇJúF`ü~fpM4̦î¾d:8»Â$jßb>•PžÃ]çÇPý@¡@”{»žQû(Ì—ªV³ax1¢¶v§”íÊÏ@ÁmEÐ’ý‰Õ³Â[)þ_HÏrÓ¯87ÊšX) Qƒ–1Õ <¥ þŽ,Tå˜Y¤©9°ÝrÉ­Jë C_ñ»Ú¨‹Åø¥M%ÔhK/™æ>œòGsn8 ÷ð0°iPR¶ç$uš«•@¢’§iÄ£ð ?m2ÔïhÕôùRu¨2In¹{•ojªû#-)ñ£ c>ìÇsƽ˜Ì›‰âÌþ
-w)×ù'Àp2ɯ˜:«Ê¶ùÔÍÙªØè>'²ùrw‰Øf¬G{š;¥çÐÚ]"_8ñ–îY
-˜¨et4‘&Éó§»þÞçÝés õBo+RÙŸRÂùN„kßÌé&šH¹£(Âϼž 2¬2bZ¦pÀ¾f ˆº—õKl„ÖŰäP‡éRÃT¦5°ua’y+;=êÞiãß%PSòR¶ÎĘLSˆ”ˆÄ5 ïUÒ©%Õ?eÔ%VÁ“î¿Ä¥N!.Wo}Ü(Þ¾EÓC˜zyRgjDIdš’º+î2éÉçDQÅÄyö­Ž…-‰¨FÙmE²@¹Œ’=
-‡æëðs©Æº“Jõ¤g)T
-Øê3=æHÂÀŒÒ;ôjP°®£øø
-FßË
-yn£­Žz°Ü_^P53&“­ÀeÑ¢ÓnEoÍ“Ëm’~XnKŒ¸8­é3-Ôëýð ³úŠ|0ʪœw(îø7¼ûVdÖIl›áÞÇâ+ãµ®3Å(·ˆ˜·g}„Mª/…ò–Ô÷€(sq%£Êª$¦Ì±lvá3_‡ìäÁUGÑ8{ÃDUOÓ7¿éç=åÕUcQQZ¨c¾­(§ó†64†\\L\Æn^·¸’ÇÎéŒâ曛ьh\}Cëõv…ì=^ÞQ¡7°ç¹‹2].Fè‡!Ö‹5·›\ƒj+ØSŠ7B ‚äÔή˜ °w>Nnád¥
-ecŽ¡ñ³b2•ßÃÄ’¯ ît¸âËI"!8mÕjÛ;÷8èÓ#Ó“]1;AYÒ­vü‘‡¦ý ¢Â{'ˆÈ‚1N ;¤ŽF_<tïy ˜ã.›yw`¸`GÐÉ¥½¢‘öâÈwxúÎÂ-çs¬û³B£¼!ç?7p>Õ~@
-ÈËùäPÀ[Ö¤7œàÀfIŸJ iÍPŽêbFDt¨'Sc<ØCÞ±‰¤_¥}#㈎~áß\°ÕÃfC¾35𮾌ŠóÖEf˜Ô÷q}ÔUp¬;Ú¿•×çyD*÷*ݷ÷î@êQŒÞ7¬â¢¾yçã,£êìª%©0îš¹î³È6͸½}ˆŸ^½÷sîÃ´ÔøÛ<j{B€79»#|¸ùߣf²sË©W½øsÄ)€Dâ^Ð*!|üÙÀøä¹ª“Ðzܹ™N~ ê×jÍr¬ ¤Õè§$üî¥IM€©õONIÀgÆC”kìþ‡•
-œ\>À\& 5ÅÅ2•K¸ á lÒÏ1#^Ù|ûÔ‘ÏøÖ#î¤=Ѱç®™ph°%ŽÔ;úb²fÛÎ&ô¢Ù‹§I<v%,râЛ)‹qÅ«ïuÿ°æÚö¨ÏD<NbQU\¥ª¸ž&ry}”Ù¦âEéé\ †„bù
-/-Põ~ SøŒí5
-16q0ÆæÂhV TózüªvW>ÔàU˜q¦'WM:¡¡ËŽï~hY’àì·o:ÞÊCGz—ëãî|ûÊø•øE5ß«ðÙ8ÿ»¤ÎÛ"™°u…{>œ×Bo¡ç—”v8ë³pt„\dË=ᇸa
-LêÕ]±P«Ë-æ”wd*SÁ!YG~•Eþ%þÃèì×ÈîϸÄÓØ]^QÊw©n¥¼Ï[’g_Jt#"ù>2ïçO9â®äê~˜MÑœ#Õÿxoèå «¼œ—t(Jˆ_ì6ƒ>oàÐc˜·éžÜhr±WÀß/¥à@glŠ»sKtÄw+ ^oaœM¦î"Ô¤¬[‡JF8œ¼R·3—ꦟ!òXŠ‹>ã<LP)Æå p~U-”÷ˆ˜Ž˜qz«¨Ú´kØÊªšlrm¼¥mBZV‚í?'nm_¨P îêrÊ8¢,Ó1Âí9 :t”Ú4wiö¾úìýœ ƒŸÖèµ­wkO{›ØáûÚ+6Ü“ea3%â€'×Á‚W-wk:ÇÓí¯[ɶ"J–M¯ï·š,ƒ‡F¾M ¨¸´UîâT»3^E!°Ï(1ï«%<9À!IdȾ»šù\óæ'r|ÑRØG“&ÒîâóK"ô@uê©»g` –ô® "Æ|åÛzöõgqꘅéVùÚ46v«L6c)Ýö€Ëæ#Ęz°öóT<Â零ðEŒ4< >Ô®O6ytµóšo˜iÀêrOÑ
-ß7©NJßBÛ¯áÕ+‡{Rd.zW§ë³ÌSsäÈ
-³6|ãžÁÁ¼å¤7®š ¡YõXÙ½Æ×·{>†òs#SÝ:¾Û‘£(ÓŽk¤ÿި鑷‚úæ6
-ÛtÍ~h&{—%uA>%9䟚`¬(kL±¥*4ƒ ¦ŽqH<ö½2Í¥ë(9ãþ7?€ÿ'ø?A`å±pEÂ,\
+³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*¹
+·³®pBk¾j0ĵ¹Žjœßç]ZÙŸB dŠÌÓš­U•
+ÂIÛ9ä‚·œãƒÂè©õß½n^(Á•Ýh´7C¶¦2„K~V')Ïï±^š}zTÉúÔu?£F-!z_‚¬šÉÉ/U‚og4²Š’.§N™EhôáÍÎËåÔŒL^ѽð¹œfCÛïPI†^ÔLʸðˆ§/çÓö±’¾¿Ÿ\S ³©»ï™ή0‰Ú·˜O%”çp×ù1ÔA?P(åÞ.¤gÔ>
+ó¥ªÕl^Œ¨­Ý)e»ò3Pp[´dbõ¬ðVŠÿÒ³Ü4Å+β&VÊBÔ eŒCuOé‚¿# U9fiêCl·\r«ÒzÃÐWü®6êb1~i“EÉ5ÚÒ A¦¹§üÑœNƒÇ=< l””íyIæj%‡¨äÄiñ(<ÈO› õ;Zõ}¾TªL’[î^åÛA€Z…êþHKJühØûñœq/fóÄf¢8³?€æ¢%K]TkcÑøKEÄL1‡•·FÆîšÃºåØ KCÂCkÇxG®ï[v“
+‰ÌÙd%JWܽóµÈT¿È$ÿ$H~@²&jM¤Iòüé.‡¿÷ywúÜB½ÐÛŠFög„”p¾áÚÀ7sº‰&RDî(ŠpÅ3¯ƒgƒL«Œ˜–)\°¯b„îeý¡u1ì9ÔaºÔ0•i l]˜dÞÊNºwÚøw T甼T ­31&Óãâå"q è{•tjIõOÙ#u‰Uð¤û/qA©SˆËÕ[7Š·oÑ4Ʀ^žÔ™Q™¦¤îŠ»Lzò9QT1q†}«caK"ªQv[‘,P.£d¡ù:üœFª±î¤R=éY@A
+‡¶úL9’00#†ô}à…Ú¬ëè¾>€à)…fbˆû†7sÓ¿×ÄÅ}ä׊³ÒgÍ¿?FІæIP›˜ké÷2è´à2|Ö§™¥£[¶WBMåtè³<èù:28¢Ä;Xf1S§³EŠ&´×å0Ä0d—5ŤÐ4|ylæ©@Är˜léË@È}±}µ\"òSÐd5ŒÓkùp ü3ʇÏÎ
++˜^h€&9I‰òÝ3¥–\—qaâ)&J™NBb0šNí`Ò.'39ë4^€îg(}*v–õ
+d ¯òˆ¦:ôw
+ýL¡T÷Æ{ši®G3È¥ã"y+â3’§[cͽ<å†Q@òæì+}·÷¼Íñ0þ’Dâ%ßéfL¹7®‡SìD nŸe‹ïãF cé¯ÿäφ=jýúÑ…fìÁµAÌ^He±œÆÌ€PP‹@Sò˜ÈÈ5D7Âþ˃¯íãìoÎ64ÒŽY›]l_o%а¤ÒÉSŽšŒæ©óAüŸhöUù»ÐyèvíS¬ÐD=ËOÃxýa“²I;ÊÃÖ‰do“LÈÁd<±~ŒÞg®¨ÙÏØÃîpðzÕ±5õ*¨2Ò1·2BÏ`«ùñG8nå^{bh…Þƒ1K÷©éVZ˜gí"2eF˜ˆA4”ÈTøxzrA¤ÚØ?ß]íÝÇKÚ
+ö”bÇЃ 9µ³+&ì“[8Y)
+ ‘x£´J60>y®ê$´7An¦“_ƒúµZ³+i5ºÅ‡Á) ¿{iR`FªFý“Sð™ñå»ÿa%€ðeå÷uì†Ò*à§œÅÊÎ9 |ÀÑå|,´­Hƒèn_ÙË%i·˜³¼Ã'µ+c% ü麖‘Ý@;¶zu@ Ëf#[2aPàØÄë üSÑò“ëùIý1›„túÉb¯Mˆ·gÃÞç+kÚ:ÙîSRc;¦ EKZªâ¤ØjU¡ª†z­iRûRž2ã ­¾~æ9 ¶hKI<üORdÑ*ãAŸYëêà“ºñp0Ÿéj<°÷8KgQ»$`¹dÌù4à|ÐÈ¥ñ„î±ÃäÂñœð*S
+(Z¢`‘®~VpùEaAzy÷UwJ­s÷Œ?´½‹š|: }ÒH»a‚º¾g)o}³=‹rrµM3v-ï€Ä@ Ùì'pÅXßÒ–×
+Õ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
endobj
2093 0 obj <<
/Type /Font
@@ -13588,14 +13535,14 @@ endobj
/FirstChar 66
/LastChar 78
/Widths 2771 0 R
-/BaseFont /CKKHDH+URWPalladioL-BoldItal
+/BaseFont /ULTOIA+URWPalladioL-BoldItal
/FontDescriptor 2091 0 R
>> endobj
2091 0 obj <<
/Ascent 728
/CapHeight 669
/Descent -256
-/FontName /CKKHDH+URWPalladioL-BoldItal
+/FontName /ULTOIA+URWPalladioL-BoldItal
/ItalicAngle -9.9
/StemV 114
/XHeight 469
@@ -13611,24 +13558,19 @@ endobj
/Length1 1199
/Length2 2269
/Length3 544
-/Length 3057
+/Length 3059
/Filter /FlateDecode
>>
stream
-xÚíWi<Tm2ed‰,âe„Yì¦ìƒô„ÑØ©Œ™3ã0f˜Å¾EO¶²´I–<²iµ$ZLY£=¥¢ Y¢§Þ£žê}z}{¿½¿÷œ羯ÿuý¯ëúß×ýᨫIºVT–?hÇbruqh,p‚‚ýy™¹UwHç9pÉ
-{ ²á©‹¾DÙ–
-qÛP\nƒ ¡‘A؆æÐÐL‹Ñ‚‹µeRmXÁ‹ä¢~ˆ RàÆ"1KiÄd…3£—„h“úµ=*/ãÆ„By áï
-ÙxVÔ×ÑÖþÉïÄâB@ý#_¬!ž øƒ[r¼þ/9d¿æ°ã1_•A}“€5á
-‹
-1é
-rh€EÙ¸;°nwãÜi+…pÝç·õÛŒÜf¾ð” é ´`«“\ÐIƒ¢i“ÜñV€yÏrÇå)Y
-¶éÆáA¦ÖMè•’RÉ’‚›Så_£Ïlr¯~¿
-Õ=m“ÏÞ'—_øÊ&òúæw*•3^êæ6’¤–tüº9ï/C
-J•%ÕÂÎ/´Leæß:ofĹà}üf60qO¾È–Ëçî|ÔÜâ-rîõ¬Tu“¤_ÿÀUkQÃø¾{$·î½¿‚×Ic|sçe½ù€ŠÚüi~H‰áýí!÷tºÎx Òß%6[kZ{š÷âµ\’ç®JÕÖÒØŠÒ·-åŠ:Ïj©ãžk(Ý]hÙÓ"*9ÔÔ"$ ¨É—êË<åÚRæ¬c †›¬æ­óÑz¤üS'|OÈQú_ˆU² T)è°kÏlWã\p³?O¢.¼•ßkqUçhÏ“qÏuޫէ…/{‘ÖŽ©¸Kyˆ‰8s\?òz•6%TA,¹ìÖè—!MW²½#Ý(gøÌDª(UõV]ý¡–öÃQ“rM»?‹H ¤Ž{a«E+}EÜf’Ü[“ßÜõÙ„ü¬%à±áõj£ý¹™ñæ2÷Vë"ì/])C׬ÁˆèWxåaš(Íýa䔢«­ÊDck¹ç1ãÅî&Cï·‰EÁ˜Þ¢4±[ÂÄ}üÞìHœ2?ÖCøÃÈN£Ò--ÿ@Àé ‡íûˆNåçžf¿Ø5ý $óÕÙ¡£­~‘YÚc»}¯¿æs†»ö¹‡\jìPŽ!œ©]#«·é³Ÿ§ç+‹óy¥–ϰrW»^ÚMÜ8zs…Ìh½]Uç:¡Ò²Äý)Ü“?j…¢ß*#‡ÆQ‡‡v?ŠKÓœ4èP/ɸ[(w{y³‘í¬wƒHñÀÍ=vÇ?‚r/ÁjR§³u¦Ÿâ±O…f[™Îím´½®÷¬TÔ›’—ÎmÔ5— ×ëZè\Y¤*?¶°/¡uÅ«Ve&œ_ñד=‡¬ {¸
-÷gê h:ªÉä7Ç«ˆ“séøœgžšÞâèH/ý¸Y”Ñ[½¦bµâS…Ù¬úº5õRáÈW/ðv—˜’N¤ù–J*üù§Šã°½ D¬¿ôr°‘eipýÜæ)­±á{ 7üg{ë8ŸåûâW¢!ŠöYÜX"® "sð퇤èDo±ebçר"¡B“·£MI:öUvEÞq¯'Ã’ÊûíÙÊSúGåí³À1Öà‰4;†?ö–wfrRîd](Éï`‚õžaá;·^7¢6¢$zÒ”î-¨xîõÇ=s]Ë Ë?LÛPjFÕùË(÷ðšxÙ`zNb¢Ñ:ÊéÎ9«²ð£\ƒ—Ärå²AêúÀœ&Õƒ•á~¡i–¢Ñ¿m ·t×NcM–p7«uÈ®(:oX‚*½è”ðÄç2ÿÜjªd!C„:½0²ÃW¢ØßÝ›-ŸTSÈ”2
-?žløý)Kôñ›kxòo$Xó`ÄpWéw'Úæy«ÆÖå¤{>Ôé›TåGs‹Cîwy¯œžC$Õ¦í¬To¾áô+«¯˜nLwñ²6
-óx†l—¦è¿Kcë:« —3Ïùæ\- äZ‚ÒV»ù‡óꦰӲ,é]²ýwG ²­ûƒS’w&S°SônóÉûËSÝF½®iá Tº—hÅôØ âBKÊc{v¹ùtOœÃžäÕ}|t'¿—•±vŸ2&Ã>7M9Œ®QUô î¥//áfu^ýTã–¯.“òôƒc‰kûKÏ~þ’¯÷î<S±‹uRZ(âDåÖvvì«#½¢>=ä|ò‹¸ðŠ›Fc⦊ñci’Î T Á œváH‰Öb<u<ÅE>í÷÷o
-mÅ[d»’zí/¾$m›[ÕÝwy}ÐñøI;ѱJ—Bò{¿ñ.Îô@Za±Œ@"![Ë„S“—ãxع6¹¿Æ{™Ky ÍȆ©âxÝK ¦BÎ{ƒbvªÌ-‰{EFª%Ò]kÕ‚ŠÖÎÔ¬‰5sÕ¼±Š¾&{,ÓʵHžÜ;Lu)ôI¸Ûpl^PÈõú3ê´ú´ÏÁsªSµl‘ÌŒwåútí¿8Ožäµ ñÍÆìRŽ„U)Ü—¾o|®×‡Þ¯q®XÔ|5²‚·j}V¹ðYâÍA• ¡þ¢Yìù ÿOð?A@a€d6—Lf!£Ù þ¡\ü7Cþ ”r@¢endstream
+xÚíWi<Tm2e$ûò YF3vSYÇÖFc§2fΌØaK¶"Š'[YJ$K{¥h±$ZL)"4”¥¢²DO½G=ÕûôöíýöþÞs>œû¾þ×õ¿®ë_÷‡£¡J êYS˜ =“ÁÑâ18À
+ 䲉$ƽ­ ëÄ!Ñ0&!54Ü!ü¥ Ú²@b2ð$ìãÄœI,À
+⃾ÎÎ7¹)_.(H`²¡¥+‡cÂ܃ rd³áCù ÊOIíd&bÐ
+¯¯?c_{s­PyEâ΢Ù§„b^« ù“¨þžBñiZÓ&Ý“ew‹åo-o3±›óm)¼¾×þØPþ9XG¼éj“ ˆxèb©ÕY¡{k+uŸûˆóè t´’Á;™Ü= ÙHÝ5=‹½Á+KÔ&÷óĵ/ùœRäUÿõhïakã>Žâ½Ù3x4 Õjö›óeDÕ|:.牷–ïûxÒëó
+wV¢ƒ!ŠúIÌT<¾¨:sèõû¤˜Dß5ËÖx•PCBÅf¯Ç[“tƒïï¯éÙY°}¤+ËãKåýödå ÃB‡,p‚9t<Ížˆ¹á›™œ”»ÙN 8´Ëfï°ðí/[PPâ}iÊ#‹ªÞû±OÜ¥‘¯yÔõå›ãº™äH$È…ÒvaŧZlvºÜn²®ˆ,äí¸°&7XA Ô¥¬ ÎiUÛ>Tžf%óÛ†H+O4ætÇQ½[nEÉYã2Tùy—]ÌõãÝžZ¿+[Ì¡Ì,Žm÷/µÁõö§Æ($Õ3¤Œ€7gúäÂWwÝ»´!{u<Ó¼M2úQÝù²lb]šßóŽF&ñÒA¥„«•’›äo䩼pèg-/LD@Ý]§ï$Åù“ðz;ÇÜ--®t:õ‰n9ß<ª×霅Q/±õn6Ä•„É£<ÕFæíüeͳ³úÃ3 @mò ŽgÄ|”a·÷òÀØÐÁ¶0Ëk«f;&2mxw†ëßaøµg“‹¤OXš<Ø14æç‰[ú lJ½r:ëÏÖZä:¥gJŽoÍe_@·3-E8è^›·Uó÷cÛÚ2T„(…ÿ?âòücã9\.ózþN¯ƒ¹›r1ûÕw¾dçÓŸÀ—«Cš‚¶\Óßî Úl8ì}m&d¨
+™™ïÖõ±«û‚Dÿ¾Žggµë-Œ–Ôt¯û£Ú|Æ «¤î£”÷H‚Ø
+_­› o*BÑăÃ%ËÚXIæÃö¯J>}°{œQ˜|©ø7ðfp)b†Ø–WïÔ&•åœI#i¬íI;(88cÑ;à×§ÚÇV¬ñê⥡?–”ÈImê?rU,ˆ(AwªŸ³ÒÐ"8úÞ=Þ¦.Bvظ}ýcuåô*»CJ$~eÖVÍÚ͸EU¢–ˆÒ諨æ¨|%ÞîLžÃÝ|¢Àø£¶cš¤£ÊÍჲnSŠîVêÍ:œ-Ý€Wx`iÕ]~´yLFõU†æÃSÄcŸõ]}æü]ÅŒËEˆG^[/ñEöYõïx xÛ]
+Ü­¹e­õ¹‹™Mþ9—D+‚¹ÅV Œõù^^A^Ã;ÌŒSf·Ü€¾§³&ÉÎóþ ÉÛÓ)˜w´g É*S=Æ}®hc›U{VŽiÇöÙ¢âÃ[Ê*ãúv{~pKœÇTq><¸ßÏÊÊÞ¯¢Ÿá›¦A3Œª­î!MFÒ——q²n^þXï‘• !›òøÜý£‰Òåïe>ç¼9ËPêaVÉE¯ÙÒÅŠ{q$£_Ô¯”OzY}ÝÈdBÌ\)a"MÒÒuE\p}»KxR¼£TG™LqSHûýí«b[A±v¹ž¤~‡–óωŽkæWõÞ¹¸.äØ`´½èD[1émÀd{f0­¸TV Ÿ­mÆŠ­Ïˉu.p=•<Pï»Ì­2Øvlý»Ò½"+K†bÎ[£RVªì ñ‘“C£ê…šû)õéÙz‰¸MîZ·¢VÑ$²'2­ \Ëäé}á·rA¿Ô©»ÍG…¼Üë>¡NjÜG ùñžR\êäJdg}kÖ¥ëüÅ~ô(¯ó ‘·iÂ>åHD­rÐ=™{¦Mý~´ͦRQ‹ÕÈjîªuY•„ëCªB%Ýr˜ÿòAþŸà‚€LI,3”Ä
+Aư@6üC¹ôo†üh˜@²endstream
endobj
1448 0 obj <<
/Type /Font
@@ -13637,14 +13579,14 @@ endobj
/FirstChar 97
/LastChar 110
/Widths 2772 0 R
-/BaseFont /JADXIU+NimbusSanL-ReguItal
+/BaseFont /QCXTQD+NimbusSanL-ReguItal
/FontDescriptor 1446 0 R
>> endobj
1446 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /JADXIU+NimbusSanL-ReguItal
+/FontName /QCXTQD+NimbusSanL-ReguItal
/ItalicAngle -12
/StemV 88
/XHeight 523
@@ -13660,49 +13602,51 @@ endobj
/Length1 1608
/Length2 7939
/Length3 532
-/Length 8789
+/Length 8790
/Filter /FlateDecode
>>
stream
-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àùü€ÿ'
+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èß¹,¡
+r\¿MÿDiݪŽÖsw¼%ö_u¨# ÿ\üÆ•E¸<y€"‚
+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ÒŽàÿ
endobj
1372 0 obj <<
/Type /Font
@@ -13711,14 +13655,14 @@ endobj
/FirstChar 36
/LastChar 121
/Widths 2773 0 R
-/BaseFont /IGPUZF+NimbusSanL-Bold
+/BaseFont /RJGBEC+NimbusSanL-Bold
/FontDescriptor 1370 0 R
>> endobj
1370 0 obj <<
/Ascent 722
/CapHeight 722
/Descent -217
-/FontName /IGPUZF+NimbusSanL-Bold
+/FontName /RJGBEC+NimbusSanL-Bold
/ItalicAngle 0
/StemV 141
/XHeight 532
@@ -13742,7 +13686,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
@@ -13772,7 +13716,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
1369 0 obj <<
/Type /Font
@@ -13781,14 +13725,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2774 0 R
-/BaseFont /GBTYSH+NimbusSanL-Regu
+/BaseFont /PCBTGR+NimbusSanL-Regu
/FontDescriptor 1367 0 R
>> endobj
1367 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /GBTYSH+NimbusSanL-Regu
+/FontName /PCBTGR+NimbusSanL-Regu
/ItalicAngle 0
/StemV 85
/XHeight 523
@@ -13804,16 +13748,16 @@ endobj
/Length1 771
/Length2 1151
/Length3 532
-/Length 1713
+/Length 1712
/Filter /FlateDecode
>>
stream
-xÚíRiTSבª¡¬2©¤j=,ŒiF !¡€ˆEd˜{CnI $eq ’ª,‹Øè’QT”
-«Š@Pj‰Uh'Ò*Â#,Ÿ©Z§wÁººJ¾÷ë­wΟ³¿ý½¿óMóˆ3D¶–`(Áà09B,“I9l@žÙl
-ŒÃJÁÐ% G ð+Óµ€» °ùBÞ2!O¡`,Õ€#ÉxÓ'H| ÒÁ8¢R¢@¦$4°Ž¬¡RjS!0a`‘V ÖMÜHëà4Ï€!&…â"ÀF8A)¬ MRTþ[JO}—Ê€ñ4Rðš”I¤HCµ
-k5FvƒI-ÿ YS‹KÒµÚÕJÝDùI§þ–Wê­á¦KM'`È0ÆÑ©Ôhø­8 !麩Y)¡Ô"*š¬…ƒ³œÉ^þGÒ$ˆ†"B¥j¥6 žÄašª„ôoR+T! ŽYãýÇ×N&#”JDRaÀþ“=sþŒI“pDâØL6›CÉýî”0¥™Ua‚&.Ï(q\i CDF<Å
-Áz
-q­-˜ž`n’Hª5ÍÄz‚æz¸Î÷›í$Š·FÍ.ËÅn}Ñ͹lÞøØ‚ãBŸƒÝ/ý.‰27ñYk?¸e^Ê.æƒÈ¥Y¾¿Ù¯M2túÖž4ÿ8gÉ>(2›±v_Êñšðší:ÃcÁ¬½Çõ8våÙ瞊š~P—áE Î+|Ó³¥ô6Ú†+µ §¢ˆ•IL<6ðlK+Š£ÖcYܳk6ðüâ“_wYw¨:k÷¦‡o-_°cEèÐß3  ¦Š?/É}³u¤'4ÝÁYÜÔgAï3Ýù± l9wÈ9ÝÓ?æ›Å-Ôº ÿ]±–ÁuVGf±µ±Þ…¶ýã4¨¹RWëFƒÜ¬—ƒ”É^w³Ìõ{éSwÔÜœjÜ.!h‡_¬*Q°r­=+Nùx«F+…¨|±ô´v©Í´;ÓGŸ”¸[Ÿá›^ ã7”ï‚oWD¬©÷¿Û5žžçze¸°ã×3ËdjÙ›8ùÞ¤¹êLƒ¾sNfSWé<§r}0Ãkë™5Y_r¿:mlÜl3_-€¾³Õ´o¿îz5Lá¨ãl‰è¹ÏÆtäÛ½ŸS¸’Jý 5.®Õï¯ +µöÝy)3êÃó]/…{©¸äµm¬¢n°Ý¶,þ0WèÒ¨j¬7î¹XYìø‰BŒ—Fæ«Ún'nY9$«k8±Ûaç&»¸kvAóŒù;7ÿâöxI†¼âëõçùùŠs^_à¬ï=i(1çä`‘¸ú`ò=qOXöóÀ>€Þ³Yô$ú¬©°à…UÓ{Æ·¼X:t¥St«u­¶KÛT]Z°G6»ÆeÃ{¡N‡Û¯¯9ùïn/nç}Ö6F]B¼|wj©Û·†¤"NH·ñQh˪L=Ò‚…8®îmti dæå‰JƒºnìÖ$6t\/Ëû’7PÇÛªöÏâDå±Úfà v3ît5öóï’ªù£Ä- ×z¾Y»“ÿÒ’À¢'1”ÄŠnÞËÆ§™‡ó«¨µýìÿpQþ_ࢀJ +qÓ)ñÊ¿ËúŒendstream
+xÚíRkTSW‘ª¡¬òRIÕzX%2yj   b(žò˜{CnIH@Ä•TeYÄF—<EE©°ªÔJ-±
+SÀiaËqªUð5¬««ôç̯YsΟ³¿ý½¿óMóˆ’1D¶ÅP‚Áar„ X*•pØ€<³Ù-‡å‚¡!rŽ@àVkÕ€»°ùBÞ
+!O¡`,C#i*xÓ'I| ÒÀ8¢£@*'T°†¬¡« S 0¡g‘Z ÖMÞÈëàLÏ‚!&…â ÀF8 A)¬IMT‰þ[Òf¼KeÁx&)
+xMɤR$„¡j=€`%…‰‘Ý`RËCÖôâ¡Zµ:R®™,?åÔ_òr ¢ÖÿÎÀ4Zƃ`NƒßŠ“Â¢ÕLÏJ¹QˆÐ45 œ•LöÊ·8’Šè`(
+!* ”«3á)F¡éJHÿ¦t°âÄÁá‘bïß¿v*%GP"ZŸö쩘óGLš„#:Èf²Ù’Hîw§äiÍĨƒ4 py>@Žãr=…"2â (ë
+¼]µ~´rÂÿn÷„6ßõÊHQç/gVH•Ò7‰²½©ó•Ùz]×¼ìæî²Nº`†×Ö3Ÿ¾ä~uÚØ´Ùf)‰‚¾³Uul¿îz5<ÖQÃÙ'ÐqŸï,°{?·h5•új\Z?¦Û_^fí?ºóRv̇…æ»^±îeâÒ×¶ ±õC¶åI‡¹B—&ESƒqÏŪÇcÕÁxYt¢ývÊ–ÕÃÒúÆ»vp©rJºç¶ÌZ¸sóÏn—eÉ*¿^pž_{.”×8ç{ÏÅÅ*JÉ=9T,®9˜vOÜžó<ð‡ ÷ìCF—<‰;k**|aUõñ­(‘ _éÝjÛC«ëV7×”î‘έuÙð^˜ÓáŽ+ÂkNþ»;J:xŸµS—/_'žZîö­>µ˜Òc|Öº&B´b!Ž‘}M.íÌü|QYP÷]#ª”ÆÎëåù¿ 1²FêD{õþ9œ˜|V@û,|±ÀnÖý®&|þ]j p삸5ùZï—£kwò_Z’Yôäb†œXÕÛgÙø4;êpA5µn€ý.Êÿ üOP¨a9N`9žNù7:rŒŠendstream
endobj
1343 0 obj <<
/Type /Font
@@ -13822,14 +13766,14 @@ endobj
/FirstChar 60
/LastChar 62
/Widths 2776 0 R
-/BaseFont /GVFCXO+CMMI10
+/BaseFont /WECHNE+CMMI10
/FontDescriptor 1341 0 R
>> endobj
1341 0 obj <<
/Ascent 694
/CapHeight 683
/Descent -194
-/FontName /GVFCXO+CMMI10
+/FontName /WECHNE+CMMI10
/ItalicAngle -14.04
/StemV 72
/XHeight 431
@@ -13859,7 +13803,7 @@ xÚíweP\í–.n ÁIã.Kp'¸kH 4Ö¸»×àîîAƒk‚»î ù¾{æL;¿fί[wWõ®ý®g­gù[Õ4*ê,b¦Pc
ù“š#ë —˜#
ÃÙbkþϘ`sƒ©5ØÑñ…æ…ûOuþ™'à¿d²³³vÿËú—ÖÆ
ÄÉÄ`²~©Ö_rM[S°ƒ5ÄüÒÕ¿
-úbÄÎþ/˜†ÄÄÊöOù¹ÿ†À¶¦ÿûK£þŠœMB[]FBœé¿»[ÿÒTy™' w;0àÿ¸ÑV„šþçá¸8Ô àɰpðòø¸Ø|¼@ïÿÆã_4ÀžAN7€>;+;;ðòþÇïŸ'ᑲ5šþ™u'­é˘ý§àlâìàðÒÝ¿6ÿ%éœÿx0Ø l‚¶85 ²LIOuª!È“ÔïíÂÛ×käùUA»|S>mð—|¨fm˜xjuŸýi÷¸#ϸ;ÔýÆš®+ |œKêMÅГ‡½JÛÎË´Àö¡=õP;ÒódFaA‡]kwsLUíCÑÙD;§ÊÉ5ƒ•Kžõ•†Ir] ~V NMþÏCÚ„ýë+º¯Ãƒý]¿{vH˜²bPi]Ði#üì³HDô4Ë=è…¥†G±_$ˆMP.{¢û„¹ðþ]æR͹ÄþVJn]•¾‹,Œe0¢Lß9$KrC½Òó›õ’ý4í|zÚÙ9¥½••"ŠX­/=ÉbðM‚|@Ag@çêð™éÑ-Ûð~oPˆûpÛ@bòµ²œ†«ëîK”À'æé³ÀœÏÀx}ˆd¼GþVvþC'ýs\m°¥fÍ9Kô4I¿læoÙL­ßzð✂J%EI“¾Ï‰:yeNšÕ<>ϳ–;ÕÄ’Ž[ö$áwiµðmչ ƒW1¨Ý $Ld5Ôú— Ÿ¥Å½bÓ©íßJ—xuüJxD(Q¦`¥ª8-ID'BÞÖµw‘¡GìiGá¹p¸éb|ÄkYÞÃ7S 1ˆ–Tš‘ .[Ÿ$-ë=û ožyÜÀËÛÐV±X¡®QŽÒ’ÆŠEº×TsMCN:¯£èÐve–
+úbÄÎþ/˜†ÄÄÊöOù¹ÿ†À¶¦ÿûK£þŠœMJ^JUUšé¿»[ÿÒTy™' w;0àÿ¸ÑV„šþçá¸8Ô àɰpðòø¸Ø|¼@ïÿÆã_4ÀžAN7€>;+;;ðòþÇïŸ'ᑲ5šþ™u'­é˘ý§àlâìàðÒÝ¿6ÿ%éœÿx0Ø l‚¶85 ²LIOuª!È“ÔïíÂÛ×käùUA»|S>mð—|¨fm˜xjuŸýi÷¸#ϸ;ÔýÆš®+ |œKêMÅГ‡½JÛÎË´Àö¡=õP;ÒódFaA‡]kwsLUíCÑÙD;§ÊÉ5ƒ•Kžõ•†Ir] ~V NMþÏCÚ„ýë+º¯Ãƒý]¿{vH˜²bPi]Ði#üì³HDô4Ë=è…¥†G±_$ˆMP.{¢û„¹ðþ]æR͹ÄþVJn]•¾‹,Œe0¢Lß9$KrC½Òó›õ’ý4í|zÚÙ9¥½••"ŠX­/=ÉbðM‚|@Ag@çêð™éÑ-Ûð~oPˆûpÛ@bòµ²œ†«ëîK”À'æé³ÀœÏÀx}ˆd¼GþVvþC'ýs\m°¥fÍ9Kô4I¿læoÙL­ßzð✂J%EI“¾Ï‰:yeNšÕ<>ϳ–;ÕÄ’Ž[ö$áwiµðmչ ƒW1¨Ý $Ld5Ôú— Ÿ¥Å½bÓ©íßJ—xuüJxD(Q¦`¥ª8-ID'BÞÖµw‘¡GìiGá¹p¸éb|ÄkYÞÃ7S 1ˆ–Tš‘ .[Ÿ$-ë=û ožyÜÀËÛÐV±X¡®QŽÒ’ÆŠEº×TsMCN:¯£èÐve–
ÿØ×@”U:W*­6=F>ŽHv ;¹ÓòRUK \µþ$y¶_beXO>j®’Zݲ<ýÑã›0Œž‘Ñë9¾‰¶ö/UŠzŸ –¿72?¿y¸=Á_RJò¦+z˜ú¥Iaã_†J8²ˆ¥àØÑ¤Ñš%`G¶ï¹¶›âxHt —: ¥,¬ä“~2 üÒ€7¤64ú5¢&¦¬?p3–¨ËP¥¬T12·íu™“È~·«mÇxŸ ´`?tƒ~èÎï{k–:šQN—ÌßZ%´’»¨²qª„÷-.—çnª—‘àm| 'ùR­PŠ­ë,WoÕOýL° 
ï`~óêå=Y2þÀ¸$R÷Òþ¼Sòñý*+ÿ0¥ß9¢ç<9Ã[|ÇCJÜ…šP{¼úÜ~ûÙ®H9êhèè‚»NîÝ*7®HØ¥/jSk­H–z´ ¶–ú‚|LxGï‰n–T”DÊËÏÖY¢º>$À a°Ÿ’Ü?åž
7v2Åh·dy¡¶hð&Jܾ“Ú iùÙ34h+k«ù ý”µÂ;™­&æÕ9?[ AD•Z’ÔŠF‡_í¾QC廯}êw€Ë.ñPQØ t•ɻŨo}åBjF6ÅhœÌ c‘Ò& `Ìä6ÔÛÅØx Å!CzH•º{”ƒl*íí%2®y®k AÝ÷‡z‰‡*5µMb+$3%ÆŽU+”_ðì}QŸ(Ԇس»s&!ÒiÏcIïlbRìb_ÜÛ”O„ üú
@@ -13896,7 +13840,7 @@ Pó,h‰*Ë!A–üF×âJ ¹/D“—
Ð+_?üÐ_MC}c§¡‚)vŸtéuênÉA×§Q]1V/' ‹‡g^Œƒ¹¬CNöTcˆÐós»R@Êäbë#έ¯ñ–2,ÂttæFùrx‚9¦iœþø aÅÌ.|«fíqjëT¢A"… ’U2GÜÑÎM!͇R…Ç6Öì->žÁ¼ì`¨äY“ Ûò[ÃÏùÞiæž8¦¢«Ð‘lïÛ D™ñ÷Iøáëå÷œ%f3²
Á‚ºùëI·ÀF»šamlÉ 7itœsÇ2? +ÜSGï˵ؓê²M½ï[! Ù_? ,#)cŽïQz0iwbÍAŠÂHÙ­ïÏ«‰ä ¦ÜM ²Zp¯&a+ ËÙõVfäÀÆ×ÛÆ6=‰1ÊÎð3kË’éÒÖ13©Oå»8“¨$~[bY$¦T¡\ÇoÉã¿{£R „L÷~õt¬g+­í;'N}þöN¿¤MýX$|è‘Åì¡ ÑŒP-<â[U¿óƒ+Uýö¨GžAA
C×ìÖ›P6üM˜rzÞ §®-.æB[&í=pí°*^‡`G$1¨9åiÙ¢\ÑÞì“)¾ ­Ã‡¬¥¹l$Éhœ"ɼðV/—aJ…pbÓ²éö™4Ъ˂y9÷G2,¦+`+µ…mZ@Z.Mæ»q畟qäݯ92¯›Šà1Íc/šë
-_Ö˜…ßó:œ.Rk+í3ÒíF¢×‘|uÎûGÚQç'ÑÐ~>1ιtÂS–®Pº±WiSHA«ëŒîêËß“a¨ê» ÙÎâF³~â÷J¥.™\ˆñ¢9ßëó7¶¿àà™?—¡YîºF0îÓfŸmbÑQR³J^8|? éÀÒS¦xP¡кpƒ”ª®Û35Ø\Jr¤¨aÒ]É—Z½¶˜À@D’Þ(þm×Ë)ü-ÖUä;Kà´yFäDýS}_çê «œ
+_Ö˜…ßó:œ.Rk+í3ÒíF¢×‘|uÎûGÚQç'ÑÐ~>1ιtÂS–®Pº±WiSHA«ëŒîêËß“a¨ê» ÙÎâF³~â÷J¥.™\ˆñ¢9ßëó7¶¿àà™?—¡YîºF0îÓfŸmbÑQR³J^8|? éÀÒS¦xP¡кpƒ”ª®Û35Ø\Jr¤¨aÒ]É—Z½¶˜À@D’Þ(þm×Ë)ü-ÖUä;Kà´yFäDýS}_çê «œ
endobj
1326 0 obj <<
/Type /Font
@@ -13905,14 +13849,14 @@ endobj
/FirstChar 35
/LastChar 122
/Widths 2777 0 R
-/BaseFont /CWSGCB+NimbusMonL-BoldObli
+/BaseFont /EJEQQF+NimbusMonL-BoldObli
/FontDescriptor 1324 0 R
>> endobj
1324 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /CWSGCB+NimbusMonL-BoldObli
+/FontName /EJEQQF+NimbusMonL-BoldObli
/ItalicAngle -12
/StemV 103
/XHeight 439
@@ -13937,7 +13881,7 @@ xÚíveTœÝ’.îwk‚».Á=¸Ó@ã4C€àîÜÝ‚; îîÁ݃C.ßwfæÌ:w~Í̯»n¯Õ½Þ]OÕSUû©½ß¦¡TQg3w0
˜ƒœmM<Þr¿‘9‚A—áâ ²·ügÌ
ÿ½AôÍ Ã[&æö¶
›’ä-%€þ¿§2ëÿžÈÿ ÿ¯ü¿"ïÿLÜÕè?âÿéyþWji[[%»·øÇ%x»e
-€¿î[0௻ÆÉø…™Øl=þ‹ÀuÔþ£ØãûWXbò¶)bö–o°pp²²ÿà r–¹ÍU@3+€…‰íÛžým×´7‚mAöÀ7mÿÞÖ· vöÁ4¬@f6ö‰ðáÐÞü_Ë“ëïâÙ¤u$•™þ«öoO•·I€hx8ÿ–FKÑÁü?ñˆ‹;¸¼Xx8
+€¿î[0௻ÆÉø…™Øl=þ‹ÀuÔþ£ØãûWXbò¶)bö–o°pp²²ÿà r–¹ÍU@3+€…‰íÛžým×´7‚mAöÀ7mÿÞÖ· vöÁ4¬@f6ö‰ðáÐÞü_Ë“ëïâÙ4t•%t™þ«öoO•·I€hx8ÿ–FKÑÁü?ñˆ‹;¸¼Xx8
pº<ìŸwªª=#·q‘Îïü¨\óüp©oß}1Kùƒ×ŽY…]“tL›ppwK×7ôs ¿ë¾g‡„)+™FÐ6ÂÏ)‹DDW³Ü+Œi¦v—"º'>›ÇÛâLú!)Ì?u¶,GÕNSãŠçK{–w†</lQR‡Ú>R‘áïLk¼¶tB±ëðjϾ-š/RkÜ‹F[Þ&ÑÝñRE©Ò$‘°>)”·– ~g6Àü~I±,ƒô·mGÄnK–&ø=È«ºŒóîqZ¸yÓ .·h¬æèú‡t~Z ÖFX­ÓÝü8ê#؃qØ[×ò¨BÊB ³-nÁžìtLàß÷móE¡zÍ•Hy.Jl§¼²[–ê™hT¸®ªõ£r#0‰¼ŠW³N»4È!øv(Õ²î)I-ÚVš©À²©`ž!ˆä… ÞŠ›©NÊÞYqv›6¢á äc¸©+ÂÆÁ C5 Š“«Ñ¤^p½PûÚ¶@VÛåÁ%Â@šº+žæ›Z§Ey˰cÑÛzl7ƒõ"n§h·‚¢Î)v½Œ<Ã,JðM"iúnïð‹¦2ô1sþ”p5]p\mÇþJ*haû:¯^ëbaþºg‚çŽâvÃû!ü^A:€c±%ónìO©µ°©#ÿœSµî‡+w+žÉe*£vÅàjYDÑLg_éë9wêB'³=º
9À ;Û>s¸ÞdþN+3ü”粋c›æÅƒä ší‚(WñV9º±5 ±õ‹„̈Ökc2“*+vÒ÷tƒ¿­‘Ä
<A½ë\)»g5x´K ÄÂøpLXÆÏ«?йáÎÆÌmI² qr»ãŸøRì| Œ¿I5JL8*tô<FÙD)l•k0°P­ˆ-éóØ$ùÁ Ó@%÷º!×R]9HÈ©Ìì@“!aÎv=ÒïkÞ˜:ì9Bi‡Ù6YÁx—ˆÓ
@@ -13987,7 +13931,7 @@ kì¨|ýñÜË„!¯‹ðn® |KâæÞþ¿êô­È^†}âI¢jŒ›eð÷.½¤â·J|ùN’°àaäúë²<f¼77Úð”ú«¬G
rUêŸ=²ñ;Afþz®ªIÈ¿¬ñCëù‘:̾íp<ÌA0Áùâ‚©„‘ÙYQü3
´lÓ)OݧOP¨|ª ”îSEzé*ÜF+¾ó)˜¢»"3Ò™m{鮪ð¿·?NüÜ÷Í€±B$mŒàpÓºí“ŠŽ¡\y!iºdì×Oäpl£u)$Ç4li­þ?&q}JÂ×ã­=ßh0‹‘¹ ɉ§…jM¢?ì^8Å%Ê /´CøÆž+ù©’†‡?ºÝ
$íòºG–6tÓ™K
-¥í>;¨Üe™Át¨¹éþ¿Ãæ2ó‡gê[¨òf—wœ€úæÏµ4œEyý‡íŽè`ý¯ sç—‰Y†¤ ÉÙ’Z/ÔB¦é—Q–¹g¹×Täe1"¾¶`M{¬BŠÆ’Z’ëõñê:+ê©5Jy¨”ëÄN ®ú\Ú>J¶R·ÕäÞ»5²ÿ?(ÿŸàÿ 3[  â`g¶Aù?Ø\¢Qendstream
+¥í>;¨Üe™Át¨¹éþ¿Ãæ2ó‡gê[¨òf—wœ€úæÏµ4œEyý‡íŽè`ý¯ sç—‰Y†¤ ÉÙ’Z/ÔB¦é—Q–¹g¹×Täe1"¾¶`M{¬BŠÆ’Z’ëõñê:+ê©5Jy¨”ëÄN ®ú\Ú>J¶R·ÕäÞ»5²ÿ?(ÿŸàÿ 3[  â`g¶Aù?Ù^¢lendstream
endobj
1318 0 obj <<
/Type /Font
@@ -13996,14 +13940,14 @@ endobj
/FirstChar 34
/LastChar 122
/Widths 2778 0 R
-/BaseFont /FYLDOM+NimbusMonL-ReguObli
+/BaseFont /TYMOCZ+NimbusMonL-ReguObli
/FontDescriptor 1316 0 R
>> endobj
1316 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /FYLDOM+NimbusMonL-ReguObli
+/FontName /TYMOCZ+NimbusMonL-ReguObli
/ItalicAngle -12
/StemV 43
/XHeight 426
@@ -14023,76 +13967,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¸þjÈ|¼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
1243 0 obj <<
/Type /Font
@@ -14101,14 +14043,14 @@ endobj
/FirstChar 34
/LastChar 125
/Widths 2779 0 R
-/BaseFont /DFKZLS+NimbusMonL-Bold
+/BaseFont /XUXRJB+NimbusMonL-Bold
/FontDescriptor 1241 0 R
>> endobj
1241 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /DFKZLS+NimbusMonL-Bold
+/FontName /XUXRJB+NimbusMonL-Bold
/ItalicAngle 0
/StemV 101
/XHeight 439
@@ -14132,7 +14074,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ü¸
@@ -14207,7 +14149,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ç…¤üñ6q8endstream
endobj
1223 0 obj <<
/Type /Font
@@ -14216,14 +14158,14 @@ endobj
/FirstChar 33
/LastChar 125
/Widths 2780 0 R
-/BaseFont /ZQZTHE+NimbusMonL-Regu
+/BaseFont /LLRHGI+NimbusMonL-Regu
/FontDescriptor 1221 0 R
>> endobj
1221 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /ZQZTHE+NimbusMonL-Regu
+/FontName /LLRHGI+NimbusMonL-Regu
/ItalicAngle 0
/StemV 41
/XHeight 426
@@ -14243,7 +14185,7 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬ºct¤]·.Ûv*I§cul'ÛFÅNÅFǶmÛ¶ÍŽí¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ú%ìí@ ,ŒÌ<
+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ÔÊ
@@ -14327,7 +14269,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
1165 0 obj <<
/Type /Font
@@ -14336,14 +14278,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2781 0 R
-/BaseFont /IWCCUZ+URWPalladioL-Ital
+/BaseFont /ZFYKKY+URWPalladioL-Ital
/FontDescriptor 1163 0 R
>> endobj
1163 0 obj <<
/Ascent 722
/CapHeight 693
/Descent -261
-/FontName /IWCCUZ+URWPalladioL-Ital
+/FontName /ZFYKKY+URWPalladioL-Ital
/ItalicAngle -9.5
/StemV 78
/XHeight 482
@@ -14368,75 +14310,61 @@ xÚ¬¹eTœm“-Œ»kðÆÝ‚{pwׯ¥qwwwBpwwwwn‚÷/Ïûž™9kÎùu¾ùÕ÷U»jW]µë®^½š’TI•QÄÌÁÄ\ÒÁÄÈ
R
ššÛ»˜Ó,œ¶ÿ>
üfîajîøÄ
-hjcÿOó9ÿ ™Û›ý÷úÿÊô¯ê™ÕÔU•¿)Ñÿ{•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‹²¹
+hjcÿOó9ÿ ™Û›ý÷úÿÊô¯ê™u4´´¤èÿ½Ê¨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Ù\
endobj
1030 0 obj <<
/Type /Font
@@ -14445,14 +14373,14 @@ endobj
/FirstChar 35
/LastChar 90
/Widths 2782 0 R
-/BaseFont /TUSQJP+URWPalladioL-Roma-Slant_167
+/BaseFont /ZVXXGN+URWPalladioL-Roma-Slant_167
/FontDescriptor 1028 0 R
>> endobj
1028 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /TUSQJP+URWPalladioL-Roma-Slant_167
+/FontName /ZVXXGN+URWPalladioL-Roma-Slant_167
/ItalicAngle -9
/StemV 84
/XHeight 469
@@ -14468,21 +14396,22 @@ endobj
/Length1 862
/Length2 1251
/Length3 532
-/Length 1860
+/Length 1861
/Filter /FlateDecode
>>
stream
xÚíUkTgnõJÀ+Å€€¸
-æ2@ Š&X4-.*(R’ $˜$  (‚€`P¡r¨´RZ/Àåb°¢à©¡ 7‚ V®º‚î
-1à ‹a4æq pøl óE8Ò‚#¦ˆ‹
-°ÂL~`9ˆH p`.Žä`{Á˜“ÿ†©åÍ]¥$\h¿˜Ò_xHÈD¾Q Â0©Fw„£¢åR_xÉœ;ÌáK…ËY¦ðÙtQ°
-Dƒ
-‚°Ìá?Ad
-†¡ÀÜ?öoॡ¿Ãí1BßXÀ 1oþkp "‹&P‚£=ö# h88Pþ›-EQX$Y<›Xüok. Ë`6®§ a;%†äV%•Ç|vîö÷t^´Vhz´›üjbòøœ£>Ô³^fÁ’’‘"Õ•ã
-|¨Òðs¶ÓI}ô²QºGÚ—SÅú®¤–ùeÆQ‰Ý>øÈ„TùªW6–#LEøþSù_«ŒièÃ3ßlÙÚ3µ%¶Uï,GÍ8x®av Kw½µ÷ kó=çµûß߀ìܱy¢&6÷úvöø­{nLO¼Ø5ÕRÉuÖ š‚fá¸J¥×0½ù®ZuÄ3·–•Öè/{bšbžlñ¬Å§L6cýûÍ0mü”Ñô¢é¯X:¸FSƵþÛŠÄë*RFÜîS7“Ö‡¶¼—<ä“lW\®1j y´ïçJ0ùµZ{ciÌó2(4¿:Çtד¨ðïê¶Ïîç%~QuêÀÓ’:…nW¨¿ãnKÆ‹v­TŠ»ôÊŒ¼†w|”„³kﺽ»äaœð==£o¿ò
-¨Æ¥³ ×WZéÍCÇ®…QtÌå&–_îÉ\Y¶Z\lµA\|1n4Öw¬¼ÑÑ ÞW¥ÊŽaN0S r‚¯ÆÃ8rœc¥uÓzy­Awõ¹¢WÏT»O•e 4“WHùÜÓº3iéž^~_hÅjÊM `<ÓhzŸ—?-EÎlÝ?ê«Iboy10n3)óÑ¥]ì,ñK6¶Œ„/Ö;ÛMçkÓËάU3•HvÛ †ß…½¼‚¤,^ÔdÊÙßÌ_Äü1ñÝúÂÂÑÖƒãZÈÍ=YÓ±ÃîF'JyÏT¬Z§ªRS3bã˜CbwHΕ'¶©V=Áß° ì8¸ç>Å4<6ópø¨™§–>«L~ÙI7>^¨á¹m¢Ìgt…އfÿ³B9%j1¡~ì™®êÙ¼m×ćº—ò½‡OnûQC±–¶|[½—xªj߆×ûŸµ3 s>
-ý‡þŒŸæexîÜá!Í15KÞ«¸„{?¯Aö½ð¿ –L„¯Í»zSqUAt%´Œ·ôÝ,´§*<˜P]«¸>*­¿ád)'©nQöÅŸÎäø—äú^øAÊd_V[=ªllè®KχAw••ÓæPîS×±r§‰ŠÚ§>{~¥J¸'èÏ9IzÐõ\«¶EfRê˨Lžœ*Öiy½Ù3³m5` Ÿµ±fPªVI÷4€TÇ}ÆÛvqgÏÿ.sl^3æ«LˆvÔónpÁY¨÷ä§;M;_ñòžÓŠNV 2ð küï©W¨5§LÂh÷å£ÄÚ‚Ôó¿zì(P%'ÍElʼÖP¾c.³É§ùñu3/¬ÔßdTzš¯4-ê/®
-ä£nêÑÚ½Fúw:\KGô[æk8;›o8‡ Ò¯êHƒ­Ú?ÍË6€„ƒ¾¹iÚÓvë³ì´€±®ü­†Æk²Lv“¸|Xãþ1õÁÌf¯û±É,=¯ñS¨|}Î쇯£«‡ýW‡üÜÛl¨®­=|ª£3É7ÆÍ|¶M–|Z5¹~{[áøŽ,Ö#æ‰ÞÏn§µúf:+Ëb8í!uvhìi÷Ñ,o­9/u`ON9÷==òøàþßà¢vuC¨Bh(î_m•þEendstream
+æ2@ Š&X4© É„’ L P
+A@0¨P¹TZ)­`åb°¢àY#BAn¬\uÝôØ¥?wíÙ™?ó>Ïó½ß3ÏûóY˜yúè$vEDHi€‹»ÏA €D2ÎÂÂ…! í‚$0
+—³L $à³é¢` @;"Ù–ºDðÅ®|ÌñäKØ<€ Äð"‹8Ë­`ñ-!Ñýözû±lÞÎu‘ô„ø"ɾÈ0 ¿W/ÖàûK åË
+X¶Ù"6Âá‹‚
+Õ€PŠÄa'«¨@4ðEXÀ2Ì1‰(B$Ø
+±aÌý#lû^ú{ÜÃ!ô=€e€ìP±
+ÓÆßMM/šþš¥ƒk4e\ï¿£H¼¡"eÄín0u3i}dË{µ±ÕÆCþI0yÀvť᣶Çû©“ߨµ7–Ƽ(ƒBó«sLw=
+ÿ¾nûì~|ú1âÞªÓŸ•Ô)t»ê @ý÷z\2^èx´k¥RÜ¥Wgä5¼£$üИ]{×Ý%â„è}÷µW@5.¹¾ÖJo8~=Œ¢c.ït0±üêÀ+æÊ²Õâb« ââKq£ ´¾£`åÍŽNðz,ýpv s‚™j|-Æ‘ã+­›ÖËk º«Ïʽz¦Ú}ªÌ(¥™¼BÈçžÑÉHK÷ ððòÛ«{¸)71€ð\£é}Qþ¬9»mtSü¨¯&‰y¢ååÀ¸Í¤xÌG—v©³Ä/ÙØ2¾Tïl7¯M/;»VÍT"Ùm7~÷uò
+’²xQ“)çþaþ2và÷‰ï׆~ж×BníÉšŽv7:YÊ{®bÕ:U•šš{Ç»C"pΨ<±Mµê)þ¦m`Ç¡=(¦á±™GÂGÍ<µôYeò+NºññB Ïme>£+t<4ûŸÊ)Q‹ õSÏtpUÏæm»&>Ö½œï=|jÛOе´å»ê}œÀSUû7¼É8ð¼a˜óIèßôgü4¯ÂsçŽ iŽ«Yò^Åe܇y ²„¿ÿe°d"|mÞµ[Šk
+¢+¡e¼¥ïV¡=Uyôá„êzÅQiýM'K9Iu›²?þL&Ç¿$×÷âV$ûŠÚêqecCwí\rà€x> º§¬ü”6‡rŸ¹Ž•;MT”øÓ>÷Ùók,UÂ=Iñ÷S¤7 ]/´j[d&¥¾ŒÊäÉ©b–7›=3ÛYòYk¥j•tOHuÜÙg¼mwöÂo2Çæ5c¾Ê„hG=ïàœõÇzO¾Û´ó5/ïÙq­èdÅP!Ÿ°Æÿ¾z…ZsÚ$Œv_P>J¬-H½ð«ÇŽUrÒ\Ħ¼Áë å;ä2›|š:_7Óø*ÁJýmF¥§ùJÓ¢Þùâ
+€±e¨H“ßÿI²µ´ß=Ü0Bc^_ßîÙ?Û)ͮωÏöP\‰"g<)AŠüZìôÊðEÝÑ—Å]ëà(“Öêú€;Mq>Ú¹fúî=8¥®@>ê¦^­Ýk¤·ÃµtD¿e¾†³³ùöˆsÈ ýšŽ4HЪýó¼üPc
endobj
968 0 obj <<
/Type /Font
@@ -14491,14 +14420,14 @@ endobj
/FirstChar 13
/LastChar 110
/Widths 2784 0 R
-/BaseFont /COBAIR+CMSY10
+/BaseFont /AXKRXO+CMSY10
/FontDescriptor 966 0 R
>> endobj
966 0 obj <<
/Ascent 750
/CapHeight 683
/Descent -194
-/FontName /COBAIR+CMSY10
+/FontName /AXKRXO+CMSY10
/ItalicAngle -14.035
/StemV 85
/XHeight 431
@@ -14522,7 +14451,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Ó€
@@ -14625,7 +14554,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
965 0 obj <<
/Type /Font
@@ -14634,14 +14563,14 @@ endobj
/FirstChar 2
/LastChar 216
/Widths 2785 0 R
-/BaseFont /ELJSDK+URWPalladioL-Roma
+/BaseFont /ZNAQGV+URWPalladioL-Roma
/FontDescriptor 963 0 R
>> endobj
963 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /ELJSDK+URWPalladioL-Roma
+/FontName /ZNAQGV+URWPalladioL-Roma
/ItalicAngle 0
/StemV 84
/XHeight 469
@@ -14664,7 +14593,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
@@ -14764,8 +14693,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#å
-þìendstream
+½¨©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
942 0 obj <<
/Type /Font
@@ -14774,14 +14702,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2786 0 R
-/BaseFont /UNKRQK+URWPalladioL-Bold
+/BaseFont /OXGQVQ+URWPalladioL-Bold
/FontDescriptor 940 0 R
>> endobj
940 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /UNKRQK+URWPalladioL-Bold
+/FontName /OXGQVQ+URWPalladioL-Bold
/ItalicAngle 0
/StemV 123
/XHeight 471
@@ -14839,13 +14767,13 @@ endobj
/Type /Pages
/Count 6
/Parent 2788 0 R
-/Kids [1528 0 R 1538 0 R 1545 0 R 1549 0 R 1559 0 R 1564 0 R]
+/Kids [1528 0 R 1538 0 R 1545 0 R 1549 0 R 1559 0 R 1563 0 R]
>> endobj
1578 0 obj <<
/Type /Pages
/Count 6
/Parent 2788 0 R
-/Kids [1571 0 R 1580 0 R 1589 0 R 1597 0 R 1608 0 R 1614 0 R]
+/Kids [1570 0 R 1580 0 R 1588 0 R 1596 0 R 1608 0 R 1614 0 R]
>> endobj
1625 0 obj <<
/Type /Pages
@@ -14859,23 +14787,23 @@ endobj
/Parent 2788 0 R
/Kids [1657 0 R 1662 0 R 1666 0 R 1670 0 R 1674 0 R 1681 0 R]
>> endobj
-1690 0 obj <<
+1691 0 obj <<
/Type /Pages
/Count 6
/Parent 2788 0 R
-/Kids [1686 0 R 1692 0 R 1698 0 R 1703 0 R 1713 0 R 1717 0 R]
+/Kids [1686 0 R 1693 0 R 1699 0 R 1704 0 R 1713 0 R 1717 0 R]
>> endobj
-1729 0 obj <<
+1728 0 obj <<
/Type /Pages
/Count 6
/Parent 2789 0 R
-/Kids [1721 0 R 1732 0 R 1738 0 R 1746 0 R 1751 0 R 1755 0 R]
+/Kids [1721 0 R 1731 0 R 1738 0 R 1746 0 R 1751 0 R 1755 0 R]
>> endobj
1762 0 obj <<
/Type /Pages
/Count 6
/Parent 2789 0 R
-/Kids [1759 0 R 1764 0 R 1773 0 R 1779 0 R 1786 0 R 1791 0 R]
+/Kids [1759 0 R 1764 0 R 1772 0 R 1779 0 R 1784 0 R 1791 0 R]
>> endobj
1803 0 obj <<
/Type /Pages
@@ -14883,11 +14811,11 @@ endobj
/Parent 2789 0 R
/Kids [1799 0 R 1805 0 R 1811 0 R 1819 0 R 1823 0 R 1827 0 R]
>> endobj
-1836 0 obj <<
+1835 0 obj <<
/Type /Pages
/Count 6
/Parent 2789 0 R
-/Kids [1831 0 R 1838 0 R 1843 0 R 1847 0 R 1851 0 R 1856 0 R]
+/Kids [1831 0 R 1837 0 R 1843 0 R 1847 0 R 1851 0 R 1856 0 R]
>> endobj
1871 0 obj <<
/Type /Pages
@@ -14899,13 +14827,13 @@ endobj
/Type /Pages
/Count 6
/Parent 2789 0 R
-/Kids [1894 0 R 1903 0 R 1907 0 R 1922 0 R 1937 0 R 1949 0 R]
+/Kids [1894 0 R 1903 0 R 1907 0 R 1918 0 R 1936 0 R 1949 0 R]
>> endobj
1975 0 obj <<
/Type /Pages
/Count 6
/Parent 2790 0 R
-/Kids [1969 0 R 1977 0 R 1983 0 R 1987 0 R 1997 0 R 2003 0 R]
+/Kids [1965 0 R 1977 0 R 1983 0 R 1987 0 R 1997 0 R 2003 0 R]
>> endobj
2018 0 obj <<
/Type /Pages
@@ -14995,13 +14923,13 @@ endobj
/Type /Pages
/Count 36
/Parent 2793 0 R
-/Kids [1494 0 R 1535 0 R 1578 0 R 1625 0 R 1660 0 R 1690 0 R]
+/Kids [1494 0 R 1535 0 R 1578 0 R 1625 0 R 1660 0 R 1691 0 R]
>> endobj
2789 0 obj <<
/Type /Pages
/Count 36
/Parent 2793 0 R
-/Kids [1729 0 R 1762 0 R 1803 0 R 1836 0 R 1871 0 R 1901 0 R]
+/Kids [1728 0 R 1762 0 R 1803 0 R 1835 0 R 1871 0 R 1901 0 R]
>> endobj
2790 0 obj <<
/Type /Pages
@@ -16701,7 +16629,7 @@ endobj
/Count -4
>> endobj
2795 0 obj <<
-/Names [(Access_Control_Lists) 2104 0 R (Bv9ARM.ch01) 1235 0 R (Bv9ARM.ch02) 1279 0 R (Bv9ARM.ch03) 1297 0 R (Bv9ARM.ch04) 1363 0 R (Bv9ARM.ch05) 1541 0 R (Bv9ARM.ch06) 1552 0 R (Bv9ARM.ch07) 2103 0 R (Bv9ARM.ch08) 2128 0 R (Bv9ARM.ch09) 2143 0 R (Bv9ARM.ch10) 2404 0 R (Configuration_File_Grammar) 1575 0 R (DNSSEC) 1429 0 R (Doc-Start) 939 0 R (Setting_TTLs) 2025 0 R (acache) 1286 0 R (access_control) 1735 0 R (acl) 1584 0 R (address_match_lists) 1557 0 R (admin_tools) 1319 0 R (appendix.A) 750 0 R (appendix.B) 842 0 R (bibliography) 2151 0 R (bind9.library) 2360 0 R (boolean_options) 1378 0 R (builtin) 1814 0 R (chapter*.1) 973 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) 706 0 R (chapter.8) 730 0 R (cite.RFC1033) 2279 0 R (cite.RFC1034) 2164 0 R (cite.RFC1035) 2166 0 R (cite.RFC1101) 2261 0 R (cite.RFC1123) 2263 0 R (cite.RFC1183) 2223 0 R (cite.RFC1464) 2301 0 R (cite.RFC1535) 2209 0 R (cite.RFC1536) 2211 0 R (cite.RFC1537) 2281 0 R (cite.RFC1591) 2265 0 R (cite.RFC1706) 2225 0 R (cite.RFC1712) 2321 0 R (cite.RFC1713) 2303 0 R (cite.RFC1794) 2305 0 R (cite.RFC1876) 2227 0 R (cite.RFC1912) 2283 0 R (cite.RFC1982) 2213 0 R (cite.RFC1995) 2171 0 R (cite.RFC1996) 2173 0 R (cite.RFC2010) 2285 0 R (cite.RFC2052) 2229 0 R (cite.RFC2065) 2333 0 R (cite.RFC2136) 2175 0 R (cite.RFC2137) 2335 0 R (cite.RFC2163) 2231 0 R (cite.RFC2168) 2233 0 R (cite.RFC2181) 2177 0 R (cite.RFC2219) 2287 0 R (cite.RFC2230) 2235 0 R (cite.RFC2240) 2307 0 R (cite.RFC2308) 2179 0 R (cite.RFC2317) 2267 0 R (cite.RFC2345) 2309 0 R (cite.RFC2352) 2311 0 R (cite.RFC2535) 2337 0 R (cite.RFC2536) 2237 0 R (cite.RFC2537) 2239 0 R (cite.RFC2538) 2241 0 R (cite.RFC2539) 2243 0 R (cite.RFC2540) 2245 0 R (cite.RFC2671) 2181 0 R (cite.RFC2672) 2183 0 R (cite.RFC2673) 2323 0 R (cite.RFC2782) 2247 0 R (cite.RFC2825) 2291 0 R (cite.RFC2826) 2269 0 R (cite.RFC2845) 2185 0 R (cite.RFC2874) 2325 0 R (cite.RFC2915) 2249 0 R (cite.RFC2929) 2271 0 R (cite.RFC2930) 2187 0 R (cite.RFC2931) 2189 0 R (cite.RFC3007) 2191 0 R (cite.RFC3008) 2339 0 R (cite.RFC3071) 2313 0 R (cite.RFC3090) 2341 0 R (cite.RFC3110) 2251 0 R (cite.RFC3123) 2253 0 R (cite.RFC3225) 2197 0 R (cite.RFC3258) 2315 0 R (cite.RFC3445) 2343 0 R (cite.RFC3490) 2293 0 R (cite.RFC3491) 2295 0 R (cite.RFC3492) 2297 0 R (cite.RFC3596) 2255 0 R (cite.RFC3597) 2257 0 R (cite.RFC3645) 2193 0 R (cite.RFC3655) 2345 0 R (cite.RFC3658) 2347 0 R (cite.RFC3755) 2349 0 R (cite.RFC3757) 2351 0 R (cite.RFC3833) 2199 0 R (cite.RFC3845) 2353 0 R (cite.RFC3901) 2317 0 R (cite.RFC4033) 2201 0 R (cite.RFC4034) 2203 0 R (cite.RFC4035) 2205 0 R (cite.RFC4074) 2215 0 R (cite.RFC974) 2168 0 R (cite.id2513476) 2358 0 R (clients-per-query) 2079 0 R (configuration_file_elements) 1553 0 R (controls_statement_definition_and_usage) 1350 0 R (diagnostic_tools) 1267 0 R (dnssec.dynamic.zones) 1449 0 R (dynamic_update) 1373 0 R (dynamic_update_policies) 1332 0 R (dynamic_update_security) 1744 0 R (empty) 1816 0 R (historical_dns_information) 2145 0 R (id2466570) 1236 0 R (id2466594) 1237 0 R (id2467262) 1499 0 R (id2467400) 1500 0 R (id2467484) 1238 0 R (id2467494) 1239 0 R (id2467734) 1249 0 R (id2467755) 1250 0 R (id2467789) 1251 0 R (id2467874) 1254 0 R (id2467966) 1247 0 R (id2470272) 1261 0 R (id2470295) 1264 0 R (id2470393) 1265 0 R (id2470414) 1266 0 R (id2470444) 1272 0 R (id2470480) 1273 0 R (id2470574) 1274 0 R (id2470609) 1280 0 R (id2470635) 1281 0 R (id2470716) 1282 0 R (id2470742) 1285 0 R (id2470753) 1291 0 R (id2470785) 1299 0 R (id2470801) 1300 0 R (id2470823) 1305 0 R (id2470840) 1306 0 R (id2471245) 1314 0 R (id2471251) 1315 0 R (id2473610) 1355 0 R (id2473622) 1356 0 R (id2474049) 1388 0 R (id2474135) 1394 0 R (id2474636) 1410 0 R (id2474653) 1411 0 R (id2474692) 1412 0 R (id2474710) 1413 0 R (id2474721) 1414 0 R (id2474825) 1419 0 R (id2474883) 1420 0 R (id2474932) 1422 0 R (id2474946) 1423 0 R (id2474995) 1428 0 R (id2475200) 1430 0 R (id2475347) 1435 0 R (id2475428) 1436 0 R (id2475581) 1450 0 R (id2475619) 1451 0 R (id2475928) 1456 0 R (id2476100) 1465 0 R (id2476137) 1466 0 R (id2476150) 1467 0 R (id2476251) 1468 0 R (id2476278) 1473 0 R (id2476288) 1474 0 R (id2476297) 1475 0 R (id2476310) 1476 0 R (id2476347) 1477 0 R (id2476357) 1478 0 R (id2476462) 1484 0 R (id2476485) 1486 0 R (id2476724) 1493 0 R (id2477211) 1505 0 R (id2477430) 1510 0 R (id2477438) 1511 0 R (id2477470) 1512 0 R (id2477507) 1513 0 R (id2477555) 1514 0 R (id2477586) 1519 0 R (id2477852) 1525 0 R (id2478035) 1526 0 R (id2478157) 1531 0 R (id2478219) 1533 0 R (id2478241) 1534 0 R (id2478274) 1542 0 R (id2478489) 1554 0 R (id2479450) 1562 0 R (id2479478) 1567 0 R (id2479616) 1568 0 R (id2479630) 1569 0 R (id2479797) 1574 0 R (id2479872) 1576 0 R (id2480276) 1583 0 R (id2480318) 1585 0 R (id2480534) 1587 0 R (id2480962) 1594 0 R (id2480979) 1600 0 R (id2481002) 1601 0 R (id2481094) 1602 0 R (id2481185) 1606 0 R (id2481310) 1611 0 R (id2481431) 1612 0 R (id2482124) 1623 0 R (id2482749) 1634 0 R (id2482880) 1635 0 R (id2483269) 1641 0 R (id2483342) 1646 0 R (id2483475) 1649 0 R (id2483518) 1650 0 R (id2483540) 1651 0 R (id2487161) 1695 0 R (id2489251) 1726 0 R (id2489514) 1728 0 R (id2490007) 1743 0 R (id2491224) 1767 0 R (id2491284) 1769 0 R (id2491843) 1777 0 R (id2492277) 1795 0 R (id2494131) 1834 0 R (id2494325) 1841 0 R (id2495659) 1862 0 R (id2495799) 1868 0 R (id2495982) 1870 0 R (id2496288) 1880 0 R (id2498042) 1897 0 R (id2498050) 1898 0 R (id2498055) 1899 0 R (id2498695) 1911 0 R (id2498728) 1912 0 R (id2500876) 1980 0 R (id2501608) 1990 0 R (id2501626) 1991 0 R (id2501715) 1994 0 R (id2501952) 2000 0 R (id2503053) 2006 0 R (id2503181) 2012 0 R (id2503339) 2013 0 R (id2503634) 2015 0 R (id2503770) 2017 0 R (id2503788) 2023 0 R (id2504261) 2026 0 R (id2504386) 2028 0 R (id2504401) 2029 0 R (id2504513) 2035 0 R (id2504535) 2036 0 R (id2504551) 2037 0 R (id2504680) 2038 0 R (id2504749) 2043 0 R (id2504786) 2044 0 R (id2504930) 2045 0 R (id2505441) 2056 0 R (id2505876) 2064 0 R (id2505881) 2065 0 R (id2507349) 2073 0 R (id2507355) 2074 0 R (id2507800) 2076 0 R (id2507805) 2077 0 R (id2508754) 2084 0 R (id2508786) 2085 0 R (id2509264) 2094 0 R (id2509422) 2112 0 R (id2509504) 2113 0 R (id2509632) 2114 0 R (id2509712) 2129 0 R (id2509717) 2130 0 R (id2509729) 2131 0 R (id2509746) 2132 0 R (id2509944) 2144 0 R (id2510116) 2150 0 R (id2510440) 2155 0 R (id2510442) 2162 0 R (id2510451) 2167 0 R (id2510474) 2163 0 R (id2510498) 2165 0 R (id2510534) 2176 0 R (id2510561) 2178 0 R (id2510586) 2170 0 R (id2510611) 2172 0 R (id2510634) 2174 0 R (id2510690) 2180 0 R (id2510716) 2182 0 R (id2510743) 2184 0 R (id2510805) 2186 0 R (id2510835) 2188 0 R (id2510865) 2190 0 R (id2510891) 2192 0 R (id2510966) 2195 0 R (id2510973) 2196 0 R (id2511000) 2198 0 R (id2511036) 2200 0 R (id2511101) 2202 0 R (id2511166) 2204 0 R (id2511232) 2207 0 R (id2511240) 2208 0 R (id2511266) 2210 0 R (id2511334) 2212 0 R (id2511369) 2214 0 R (id2511410) 2221 0 R (id2511415) 2222 0 R (id2511473) 2224 0 R (id2511510) 2232 0 R (id2511545) 2226 0 R (id2511600) 2228 0 R (id2511638) 2230 0 R (id2511664) 2234 0 R (id2511689) 2236 0 R (id2511716) 2238 0 R (id2511742) 2240 0 R (id2511782) 2242 0 R (id2511812) 2244 0 R (id2511842) 2246 0 R (id2511884) 2248 0 R (id2511917) 2250 0 R (id2511944) 2252 0 R (id2511968) 2254 0 R (id2512025) 2256 0 R (id2512050) 2259 0 R (id2512057) 2260 0 R (id2512083) 2262 0 R (id2512105) 2264 0 R (id2512129) 2266 0 R (id2512174) 2268 0 R (id2512198) 2270 0 R (id2512248) 2277 0 R (id2512256) 2278 0 R (id2512279) 2280 0 R (id2512306) 2282 0 R (id2512332) 2284 0 R (id2512369) 2286 0 R (id2512409) 2289 0 R (id2512414) 2290 0 R (id2512446) 2292 0 R (id2512492) 2294 0 R (id2512528) 2296 0 R (id2512691) 2299 0 R (id2512709) 2300 0 R (id2512731) 2302 0 R (id2512757) 2304 0 R (id2512782) 2306 0 R (id2512806) 2308 0 R (id2512852) 2310 0 R (id2512875) 2312 0 R (id2512902) 2314 0 R (id2512928) 2316 0 R (id2512965) 2319 0 R (id2512971) 2320 0 R (id2513029) 2322 0 R (id2513056) 2324 0 R (id2513092) 2331 0 R (id2513104) 2332 0 R (id2513143) 2334 0 R (id2513170) 2336 0 R (id2513200) 2338 0 R (id2513225) 2340 0 R (id2513252) 2342 0 R (id2513288) 2344 0 R (id2513324) 2346 0 R (id2513351) 2348 0 R (id2513378) 2350 0 R (id2513422) 2352 0 R (id2513464) 2355 0 R (id2513474) 2357 0 R (id2513476) 2359 0 R (id2513563) 2365 0 R (id2513573) 2366 0 R (id2513666) 2367 0 R (id2513697) 2368 0 R (id2513773) 2373 0 R (id2513800) 2375 0 R (id2513809) 2376 0 R (id2513899) 2382 0 R (id2513953) 2383 0 R (id2514153) 2384 0 R (id2514168) 2389 0 R (id2514368) 2394 0 R (id2514432) 2395 0 R (incremental_zone_transfers) 1385 0 R (internet_drafts) 2354 0 R (ipv6addresses) 1536 0 R (journal) 1384 0 R (lwresd) 1543 0 R (man.arpaname) 2729 0 R (man.ddns-confgen) 2718 0 R (man.dig) 2405 0 R (man.dnssec-dsfromkey) 2453 0 R (man.dnssec-keyfromlabel) 2472 0 R (man.dnssec-keygen) 1459 0 R (man.dnssec-revoke) 2515 0 R (man.dnssec-settime) 1460 0 R (man.dnssec-signzone) 2542 0 R (man.dnssec-verify) 2571 0 R (man.genrandom) 2735 0 R (man.host) 2442 0 R (man.isc-hmac-fixup) 2746 0 R (man.named) 2615 0 R (man.named-checkconf) 2582 0 R (man.named-checkzone) 2594 0 R (man.named-journalprint) 2637 0 R (man.nsec3hash) 2758 0 R (man.nsupdate) 2648 0 R (man.rndc) 2673 0 R (man.rndc-confgen) 2702 0 R (man.rndc.conf) 2685 0 R (managed-keys) 1487 0 R (notify) 1364 0 R (options) 1331 0 R (page.1) 938 0 R (page.10) 1323 0 R (page.100) 1939 0 R (page.101) 1951 0 R (page.102) 1971 0 R (page.103) 1979 0 R (page.104) 1985 0 R (page.105) 1989 0 R (page.106) 1999 0 R (page.107) 2005 0 R (page.108) 2011 0 R (page.109) 2022 0 R (page.11) 1336 0 R (page.110) 2034 0 R (page.111) 2042 0 R (page.112) 2050 0 R (page.113) 2054 0 R (page.114) 2062 0 R (page.115) 2071 0 R (page.116) 2083 0 R (page.117) 2090 0 R (page.118) 2098 0 R (page.119) 2102 0 R (page.12) 1340 0 R (page.120) 2108 0 R (page.121) 2119 0 R (page.122) 2123 0 R (page.123) 2127 0 R (page.124) 2138 0 R (page.125) 2142 0 R (page.126) 2149 0 R (page.127) 2160 0 R (page.128) 2219 0 R (page.129) 2275 0 R (page.13) 1348 0 R (page.130) 2329 0 R (page.131) 2364 0 R (page.132) 2372 0 R (page.133) 2381 0 R (page.134) 2388 0 R (page.135) 2393 0 R (page.136) 2399 0 R (page.137) 2403 0 R (page.138) 2412 0 R (page.139) 2419 0 R (page.14) 1354 0 R (page.140) 2424 0 R (page.141) 2428 0 R (page.142) 2432 0 R (page.143) 2441 0 R (page.144) 2449 0 R (page.145) 2461 0 R (page.146) 2468 0 R (page.147) 2480 0 R (page.148) 2484 0 R (page.149) 2492 0 R (page.15) 1362 0 R (page.150) 2500 0 R (page.151) 2505 0 R (page.152) 2510 0 R (page.153) 2520 0 R (page.154) 2531 0 R (page.155) 2538 0 R (page.156) 2547 0 R (page.157) 2555 0 R (page.158) 2559 0 R (page.159) 2563 0 R (page.16) 1383 0 R (page.160) 2568 0 R (page.161) 2579 0 R (page.162) 2589 0 R (page.163) 2601 0 R (page.164) 2607 0 R (page.165) 2612 0 R (page.166) 2623 0 R (page.167) 2627 0 R (page.168) 2634 0 R (page.169) 2647 0 R (page.17) 1393 0 R (page.170) 2655 0 R (page.171) 2660 0 R (page.172) 2664 0 R (page.173) 2672 0 R (page.174) 2681 0 R (page.175) 2693 0 R (page.176) 2698 0 R (page.177) 2710 0 R (page.178) 2716 0 R (page.179) 2726 0 R (page.18) 1399 0 R (page.180) 2740 0 R (page.181) 2754 0 R (page.182) 2767 0 R (page.19) 1404 0 R (page.2) 962 0 R (page.20) 1409 0 R (page.21) 1418 0 R (page.22) 1427 0 R (page.23) 1434 0 R (page.24) 1440 0 R (page.25) 1445 0 R (page.26) 1455 0 R (page.27) 1464 0 R (page.28) 1472 0 R (page.29) 1482 0 R (page.3) 1260 0 R (page.30) 1491 0 R (page.31) 1498 0 R (page.32) 1504 0 R (page.33) 1509 0 R (page.34) 1518 0 R (page.35) 1524 0 R (page.36) 1530 0 R (page.37) 1540 0 R (page.38) 1547 0 R (page.39) 1551 0 R (page.4) 1271 0 R (page.40) 1561 0 R (page.41) 1566 0 R (page.42) 1573 0 R (page.43) 1582 0 R (page.44) 1591 0 R (page.45) 1599 0 R (page.46) 1610 0 R (page.47) 1616 0 R (page.48) 1622 0 R (page.49) 1629 0 R (page.5) 1278 0 R (page.50) 1633 0 R (page.51) 1640 0 R (page.52) 1645 0 R (page.53) 1655 0 R (page.54) 1659 0 R (page.55) 1664 0 R (page.56) 1668 0 R (page.57) 1672 0 R (page.58) 1676 0 R (page.59) 1683 0 R (page.6) 1290 0 R (page.60) 1688 0 R (page.61) 1694 0 R (page.62) 1700 0 R (page.63) 1705 0 R (page.64) 1715 0 R (page.65) 1719 0 R (page.66) 1723 0 R (page.67) 1734 0 R (page.68) 1740 0 R (page.69) 1748 0 R (page.7) 1296 0 R (page.70) 1753 0 R (page.71) 1757 0 R (page.72) 1761 0 R (page.73) 1766 0 R (page.74) 1775 0 R (page.75) 1781 0 R (page.76) 1788 0 R (page.77) 1793 0 R (page.78) 1801 0 R (page.79) 1807 0 R (page.8) 1304 0 R (page.80) 1813 0 R (page.81) 1821 0 R (page.82) 1825 0 R (page.83) 1829 0 R (page.84) 1833 0 R (page.85) 1840 0 R (page.86) 1845 0 R (page.87) 1849 0 R (page.88) 1853 0 R (page.89) 1858 0 R (page.9) 1313 0 R (page.90) 1866 0 R (page.91) 1875 0 R (page.92) 1879 0 R (page.93) 1884 0 R (page.94) 1888 0 R (page.95) 1892 0 R (page.96) 1896 0 R (page.97) 1905 0 R (page.98) 1909 0 R (page.99) 1924 0 R (page.i) 972 0 R (page.ii) 1027 0 R (page.iii) 1091 0 R (page.iv) 1154 0 R (page.v) 1216 0 R (pkcs11) 1492 0 R (proposed_standards) 1389 0 R (query_address) 1749 0 R (rfc5011.support) 1483 0 R (rfcs) 1256 0 R (rndc) 1595 0 R (root_delegation_only) 1920 0 R (rrset_ordering) 1309 0 R (sample_configuration) 1298 0 R (section*.10) 2288 0 R (section*.100) 2617 0 R (section*.101) 2618 0 R (section*.102) 2619 0 R (section*.103) 2628 0 R (section*.104) 2629 0 R (section*.105) 2630 0 R (section*.106) 2635 0 R (section*.107) 2636 0 R (section*.108) 2638 0 R (section*.109) 2639 0 R (section*.11) 2298 0 R (section*.110) 2640 0 R (section*.111) 2641 0 R (section*.112) 2642 0 R (section*.113) 2649 0 R (section*.114) 2650 0 R (section*.115) 2651 0 R (section*.116) 2656 0 R (section*.117) 2665 0 R (section*.118) 2666 0 R (section*.119) 2667 0 R (section*.12) 2318 0 R (section*.120) 2668 0 R (section*.121) 2674 0 R (section*.122) 2675 0 R (section*.123) 2676 0 R (section*.124) 2677 0 R (section*.125) 2682 0 R (section*.126) 2683 0 R (section*.127) 2684 0 R (section*.128) 2686 0 R (section*.129) 2687 0 R (section*.13) 2330 0 R (section*.130) 2688 0 R (section*.131) 2694 0 R (section*.132) 2699 0 R (section*.133) 2700 0 R (section*.134) 2701 0 R (section*.135) 2703 0 R (section*.136) 2704 0 R (section*.137) 2705 0 R (section*.138) 2706 0 R (section*.139) 2711 0 R (section*.14) 2356 0 R (section*.140) 2712 0 R (section*.141) 2717 0 R (section*.142) 2719 0 R (section*.143) 2720 0 R (section*.144) 2721 0 R (section*.145) 2722 0 R (section*.146) 2727 0 R (section*.147) 2728 0 R (section*.148) 2730 0 R (section*.149) 2731 0 R (section*.15) 2406 0 R (section*.150) 2732 0 R (section*.151) 2733 0 R (section*.152) 2734 0 R (section*.153) 2736 0 R (section*.154) 2741 0 R (section*.155) 2742 0 R (section*.156) 2743 0 R (section*.157) 2744 0 R (section*.158) 2745 0 R (section*.159) 2747 0 R (section*.16) 2407 0 R (section*.160) 2748 0 R (section*.161) 2749 0 R (section*.162) 2755 0 R (section*.163) 2756 0 R (section*.164) 2757 0 R (section*.165) 2759 0 R (section*.166) 2760 0 R (section*.167) 2761 0 R (section*.168) 2762 0 R (section*.169) 2763 0 R (section*.17) 2408 0 R (section*.170) 2768 0 R (section*.18) 2413 0 R (section*.19) 2414 0 R (section*.2) 2154 0 R (section*.20) 2420 0 R (section*.21) 2433 0 R (section*.22) 2434 0 R (section*.23) 2435 0 R (section*.24) 2436 0 R (section*.25) 2437 0 R (section*.26) 2443 0 R (section*.27) 2444 0 R (section*.28) 2445 0 R (section*.29) 2450 0 R (section*.3) 2161 0 R (section*.30) 2451 0 R (section*.31) 2452 0 R (section*.32) 2454 0 R (section*.33) 2455 0 R (section*.34) 2456 0 R (section*.35) 2462 0 R (section*.36) 2463 0 R (section*.37) 2464 0 R (section*.38) 2469 0 R (section*.39) 2470 0 R (section*.4) 2169 0 R (section*.40) 2471 0 R (section*.41) 2473 0 R (section*.42) 2474 0 R (section*.43) 2475 0 R (section*.44) 2476 0 R (section*.45) 2485 0 R (section*.46) 2486 0 R (section*.47) 2487 0 R (section*.48) 2488 0 R (section*.49) 2493 0 R (section*.5) 2194 0 R (section*.50) 2494 0 R (section*.51) 2495 0 R (section*.52) 2496 0 R (section*.53) 2506 0 R (section*.54) 2511 0 R (section*.55) 2512 0 R (section*.56) 2513 0 R (section*.57) 2514 0 R (section*.58) 2516 0 R (section*.59) 2521 0 R (section*.6) 2206 0 R (section*.60) 2522 0 R (section*.61) 2523 0 R (section*.62) 2524 0 R (section*.63) 2525 0 R (section*.64) 2526 0 R (section*.65) 2527 0 R (section*.66) 2532 0 R (section*.67) 2533 0 R (section*.68) 2534 0 R (section*.69) 2539 0 R (section*.7) 2220 0 R (section*.70) 2540 0 R (section*.71) 2541 0 R (section*.72) 2543 0 R (section*.73) 2548 0 R (section*.74) 2549 0 R (section*.75) 2550 0 R (section*.76) 2564 0 R (section*.77) 2569 0 R (section*.78) 2570 0 R (section*.79) 2572 0 R (section*.8) 2258 0 R (section*.80) 2573 0 R (section*.81) 2574 0 R (section*.82) 2575 0 R (section*.83) 2580 0 R (section*.84) 2581 0 R (section*.85) 2583 0 R (section*.86) 2584 0 R (section*.87) 2585 0 R (section*.88) 2590 0 R (section*.89) 2591 0 R (section*.9) 2276 0 R (section*.90) 2592 0 R (section*.91) 2593 0 R (section*.92) 2595 0 R (section*.93) 2596 0 R (section*.94) 2602 0 R (section*.95) 2603 0 R (section*.96) 2608 0 R (section*.97) 2613 0 R (section*.98) 2614 0 R (section*.99) 2616 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) 618 0 R (section.6.4) 674 0 R (section.7.1) 710 0 R (section.7.2) 714 0 R (section.7.3) 726 0 R (section.8.1) 734 0 R (section.8.2) 742 0 R (section.8.3) 746 0 R (section.A.1) 754 0 R (section.A.2) 762 0 R (section.A.3) 770 0 R (section.A.4) 786 0 R (section.B.1) 846 0 R (section.B.10) 882 0 R (section.B.11) 886 0 R (section.B.12) 890 0 R (section.B.13) 894 0 R (section.B.14) 898 0 R (section.B.15) 902 0 R (section.B.16) 906 0 R (section.B.17) 910 0 R (section.B.18) 914 0 R (section.B.19) 918 0 R (section.B.2) 850 0 R (section.B.20) 922 0 R (section.B.21) 926 0 R (section.B.22) 930 0 R (section.B.3) 854 0 R (section.B.4) 858 0 R (section.B.5) 862 0 R (section.B.6) 866 0 R (section.B.7) 870 0 R (section.B.8) 874 0 R (section.B.9) 878 0 R (server_resource_limits) 1771 0 R (server_statement_definition_and_usage) 1711 0 R (server_statement_grammar) 1854 0 R (statistics) 2055 0 R (statistics_counters) 2063 0 R (statschannels) 1861 0 R (statsfile) 1679 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) 554 0 R (subsection.6.2.18) 558 0 R (subsection.6.2.19) 562 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 566 0 R (subsection.6.2.21) 570 0 R (subsection.6.2.22) 574 0 R (subsection.6.2.23) 578 0 R (subsection.6.2.24) 582 0 R (subsection.6.2.25) 586 0 R (subsection.6.2.26) 590 0 R (subsection.6.2.27) 594 0 R (subsection.6.2.28) 598 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) 622 0 R (subsection.6.3.2) 634 0 R (subsection.6.3.3) 638 0 R (subsection.6.3.4) 642 0 R (subsection.6.3.5) 646 0 R (subsection.6.3.6) 666 0 R (subsection.6.3.7) 670 0 R (subsection.6.4.1) 682 0 R (subsection.7.2.1) 718 0 R (subsection.7.2.2) 722 0 R (subsection.8.1.1) 738 0 R (subsection.A.1.1) 758 0 R (subsection.A.2.1) 766 0 R (subsection.A.3.1) 774 0 R (subsection.A.3.2) 778 0 R (subsection.A.3.3) 782 0 R (subsection.A.4.1) 790 0 R (subsection.A.4.2) 794 0 R (subsection.A.4.3) 798 0 R (subsection.A.4.4) 802 0 R (subsection.A.4.5) 806 0 R (subsection.A.4.6) 810 0 R (subsection.A.4.7) 838 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.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) 602 0 R (subsubsection.6.2.28.2) 606 0 R (subsubsection.6.2.28.3) 610 0 R (subsubsection.6.2.28.4) 614 0 R (subsubsection.6.3.1.1) 626 0 R (subsubsection.6.3.1.2) 630 0 R (subsubsection.6.3.5.1) 650 0 R (subsubsection.6.3.5.2) 654 0 R (subsubsection.6.3.5.3) 658 0 R (subsubsection.6.3.5.4) 662 0 R (subsubsection.6.4.0.1) 678 0 R (subsubsection.6.4.1.1) 686 0 R (subsubsection.6.4.1.2) 690 0 R (subsubsection.6.4.1.3) 694 0 R (subsubsection.6.4.1.4) 698 0 R (subsubsection.6.4.1.5) 702 0 R (subsubsection.A.4.6.1) 814 0 R (subsubsection.A.4.6.2) 818 0 R (subsubsection.A.4.6.3) 822 0 R (subsubsection.A.4.6.4) 826 0 R (subsubsection.A.4.6.5) 830 0 R (subsubsection.A.4.6.6) 834 0 R (table.1.1) 1240 0 R (table.1.2) 1248 0 R (table.3.1) 1307 0 R (table.3.2) 1357 0 R (table.6.1) 1555 0 R (table.6.10) 1995 0 R (table.6.11) 2001 0 R (table.6.12) 2007 0 R (table.6.13) 2014 0 R (table.6.14) 2016 0 R (table.6.15) 2024 0 R (table.6.16) 2027 0 R (table.6.17) 2030 0 R (table.6.18) 2046 0 R (table.6.19) 2057 0 R (table.6.2) 1577 0 R (table.6.20) 2066 0 R (table.6.21) 2075 0 R (table.6.22) 2078 0 R (table.6.23) 2086 0 R (table.6.3) 1586 0 R (table.6.4) 1624 0 R (table.6.5) 1636 0 R (table.6.6) 1696 0 R (table.6.7) 1796 0 R (table.6.8) 1900 0 R (table.6.9) 1981 0 R (the_category_phrase) 1618 0 R (the_sortlist_statement) 1783 0 R (topology) 1782 0 R (trusted-keys) 1867 0 R (tsig) 1405 0 R (tuning) 1797 0 R (types_of_resource_records_and_when_to_use_them) 1255 0 R (view_statement_grammar) 1817 0 R (zone_statement_grammar) 1730 0 R (zone_transfers) 1379 0 R (zonefile_format) 1809 0 R]
+/Names [(Access_Control_Lists) 2104 0 R (Bv9ARM.ch01) 1235 0 R (Bv9ARM.ch02) 1279 0 R (Bv9ARM.ch03) 1297 0 R (Bv9ARM.ch04) 1363 0 R (Bv9ARM.ch05) 1541 0 R (Bv9ARM.ch06) 1552 0 R (Bv9ARM.ch07) 2103 0 R (Bv9ARM.ch08) 2128 0 R (Bv9ARM.ch09) 2143 0 R (Bv9ARM.ch10) 2404 0 R (Configuration_File_Grammar) 1575 0 R (DNSSEC) 1429 0 R (Doc-Start) 939 0 R (Setting_TTLs) 2025 0 R (acache) 1286 0 R (access_control) 1735 0 R (acl) 1584 0 R (address_match_lists) 1557 0 R (admin_tools) 1319 0 R (appendix.A) 750 0 R (appendix.B) 842 0 R (bibliography) 2151 0 R (bind9.library) 2360 0 R (boolean_options) 1378 0 R (builtin) 1814 0 R (chapter*.1) 973 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) 706 0 R (chapter.8) 730 0 R (cite.RFC1033) 2279 0 R (cite.RFC1034) 2164 0 R (cite.RFC1035) 2166 0 R (cite.RFC1101) 2261 0 R (cite.RFC1123) 2263 0 R (cite.RFC1183) 2223 0 R (cite.RFC1464) 2301 0 R (cite.RFC1535) 2209 0 R (cite.RFC1536) 2211 0 R (cite.RFC1537) 2281 0 R (cite.RFC1591) 2265 0 R (cite.RFC1706) 2225 0 R (cite.RFC1712) 2321 0 R (cite.RFC1713) 2303 0 R (cite.RFC1794) 2305 0 R (cite.RFC1876) 2227 0 R (cite.RFC1912) 2283 0 R (cite.RFC1982) 2213 0 R (cite.RFC1995) 2171 0 R (cite.RFC1996) 2173 0 R (cite.RFC2010) 2285 0 R (cite.RFC2052) 2229 0 R (cite.RFC2065) 2333 0 R (cite.RFC2136) 2175 0 R (cite.RFC2137) 2335 0 R (cite.RFC2163) 2231 0 R (cite.RFC2168) 2233 0 R (cite.RFC2181) 2177 0 R (cite.RFC2219) 2287 0 R (cite.RFC2230) 2235 0 R (cite.RFC2240) 2307 0 R (cite.RFC2308) 2179 0 R (cite.RFC2317) 2267 0 R (cite.RFC2345) 2309 0 R (cite.RFC2352) 2311 0 R (cite.RFC2535) 2337 0 R (cite.RFC2536) 2237 0 R (cite.RFC2537) 2239 0 R (cite.RFC2538) 2241 0 R (cite.RFC2539) 2243 0 R (cite.RFC2540) 2245 0 R (cite.RFC2671) 2181 0 R (cite.RFC2672) 2183 0 R (cite.RFC2673) 2323 0 R (cite.RFC2782) 2247 0 R (cite.RFC2825) 2291 0 R (cite.RFC2826) 2269 0 R (cite.RFC2845) 2185 0 R (cite.RFC2874) 2325 0 R (cite.RFC2915) 2249 0 R (cite.RFC2929) 2271 0 R (cite.RFC2930) 2187 0 R (cite.RFC2931) 2189 0 R (cite.RFC3007) 2191 0 R (cite.RFC3008) 2339 0 R (cite.RFC3071) 2313 0 R (cite.RFC3090) 2341 0 R (cite.RFC3110) 2251 0 R (cite.RFC3123) 2253 0 R (cite.RFC3225) 2197 0 R (cite.RFC3258) 2315 0 R (cite.RFC3445) 2343 0 R (cite.RFC3490) 2293 0 R (cite.RFC3491) 2295 0 R (cite.RFC3492) 2297 0 R (cite.RFC3596) 2255 0 R (cite.RFC3597) 2257 0 R (cite.RFC3645) 2193 0 R (cite.RFC3655) 2345 0 R (cite.RFC3658) 2347 0 R (cite.RFC3755) 2349 0 R (cite.RFC3757) 2351 0 R (cite.RFC3833) 2199 0 R (cite.RFC3845) 2353 0 R (cite.RFC3901) 2317 0 R (cite.RFC4033) 2201 0 R (cite.RFC4034) 2203 0 R (cite.RFC4035) 2205 0 R (cite.RFC4074) 2215 0 R (cite.RFC974) 2168 0 R (cite.id2513531) 2358 0 R (clients-per-query) 2079 0 R (configuration_file_elements) 1553 0 R (controls_statement_definition_and_usage) 1350 0 R (diagnostic_tools) 1267 0 R (dnssec.dynamic.zones) 1449 0 R (dynamic_update) 1373 0 R (dynamic_update_policies) 1332 0 R (dynamic_update_security) 1744 0 R (empty) 1816 0 R (historical_dns_information) 2145 0 R (id2466570) 1236 0 R (id2466594) 1237 0 R (id2467262) 1499 0 R (id2467400) 1500 0 R (id2467484) 1238 0 R (id2467494) 1239 0 R (id2467734) 1249 0 R (id2467755) 1250 0 R (id2467789) 1251 0 R (id2467874) 1254 0 R (id2467966) 1247 0 R (id2470272) 1261 0 R (id2470295) 1264 0 R (id2470393) 1265 0 R (id2470414) 1266 0 R (id2470444) 1272 0 R (id2470480) 1273 0 R (id2470574) 1274 0 R (id2470609) 1280 0 R (id2470635) 1281 0 R (id2470716) 1282 0 R (id2470742) 1285 0 R (id2470753) 1291 0 R (id2470785) 1299 0 R (id2470801) 1300 0 R (id2470823) 1305 0 R (id2470840) 1306 0 R (id2471245) 1314 0 R (id2471251) 1315 0 R (id2473610) 1355 0 R (id2473622) 1356 0 R (id2474049) 1388 0 R (id2474135) 1394 0 R (id2474636) 1410 0 R (id2474653) 1411 0 R (id2474692) 1412 0 R (id2474710) 1413 0 R (id2474721) 1414 0 R (id2474825) 1419 0 R (id2474883) 1420 0 R (id2474932) 1422 0 R (id2474946) 1423 0 R (id2474995) 1428 0 R (id2475200) 1430 0 R (id2475347) 1435 0 R (id2475428) 1436 0 R (id2475581) 1450 0 R (id2475619) 1451 0 R (id2475928) 1456 0 R (id2476100) 1465 0 R (id2476137) 1466 0 R (id2476150) 1467 0 R (id2476251) 1468 0 R (id2476278) 1473 0 R (id2476288) 1474 0 R (id2476297) 1475 0 R (id2476310) 1476 0 R (id2476347) 1477 0 R (id2476357) 1478 0 R (id2476462) 1484 0 R (id2476485) 1486 0 R (id2476724) 1493 0 R (id2477211) 1505 0 R (id2477430) 1510 0 R (id2477438) 1511 0 R (id2477470) 1512 0 R (id2477507) 1513 0 R (id2477555) 1514 0 R (id2477586) 1519 0 R (id2477852) 1525 0 R (id2478035) 1526 0 R (id2478157) 1531 0 R (id2478219) 1533 0 R (id2478241) 1534 0 R (id2478274) 1542 0 R (id2478489) 1554 0 R (id2479520) 1566 0 R (id2479547) 1567 0 R (id2479753) 1568 0 R (id2479768) 1573 0 R (id2479866) 1574 0 R (id2479941) 1576 0 R (id2480345) 1583 0 R (id2480388) 1585 0 R (id2480603) 1591 0 R (id2481031) 1599 0 R (id2481048) 1600 0 R (id2481072) 1601 0 R (id2481163) 1602 0 R (id2481254) 1606 0 R (id2481380) 1611 0 R (id2481500) 1612 0 R (id2482125) 1623 0 R (id2482819) 1634 0 R (id2482949) 1635 0 R (id2483338) 1641 0 R (id2483412) 1646 0 R (id2483544) 1649 0 R (id2483588) 1650 0 R (id2483609) 1651 0 R (id2487313) 1696 0 R (id2489296) 1726 0 R (id2489559) 1734 0 R (id2489984) 1743 0 R (id2491269) 1767 0 R (id2491397) 1769 0 R (id2491888) 1777 0 R (id2492458) 1795 0 R (id2494262) 1834 0 R (id2494388) 1841 0 R (id2495720) 1862 0 R (id2495928) 1868 0 R (id2495975) 1870 0 R (id2496348) 1880 0 R (id2498116) 1897 0 R (id2498123) 1898 0 R (id2498129) 1899 0 R (id2498855) 1911 0 R (id2498888) 1912 0 R (id2501173) 1980 0 R (id2501836) 1990 0 R (id2501854) 1991 0 R (id2501875) 1994 0 R (id2502043) 2000 0 R (id2503213) 2006 0 R (id2503410) 2012 0 R (id2503431) 2013 0 R (id2503725) 2015 0 R (id2503862) 2017 0 R (id2503880) 2023 0 R (id2504353) 2026 0 R (id2504546) 2028 0 R (id2504561) 2029 0 R (id2504673) 2035 0 R (id2504695) 2036 0 R (id2504711) 2037 0 R (id2504772) 2038 0 R (id2504841) 2043 0 R (id2504877) 2044 0 R (id2504953) 2045 0 R (id2505601) 2056 0 R (id2506036) 2064 0 R (id2506041) 2065 0 R (id2507473) 2073 0 R (id2507479) 2074 0 R (id2507924) 2076 0 R (id2507929) 2077 0 R (id2509014) 2084 0 R (id2509046) 2085 0 R (id2509456) 2094 0 R (id2509614) 2112 0 R (id2509764) 2113 0 R (id2509824) 2114 0 R (id2509904) 2129 0 R (id2509909) 2130 0 R (id2509921) 2131 0 R (id2509938) 2132 0 R (id2510068) 2144 0 R (id2510444) 2150 0 R (id2510564) 2155 0 R (id2510566) 2162 0 R (id2510574) 2167 0 R (id2510598) 2163 0 R (id2510621) 2165 0 R (id2510658) 2176 0 R (id2510684) 2178 0 R (id2510710) 2170 0 R (id2510734) 2172 0 R (id2510758) 2174 0 R (id2510813) 2180 0 R (id2510840) 2182 0 R (id2510867) 2184 0 R (id2510929) 2186 0 R (id2510958) 2188 0 R (id2510988) 2190 0 R (id2511015) 2192 0 R (id2511090) 2195 0 R (id2511097) 2196 0 R (id2511124) 2198 0 R (id2511160) 2200 0 R (id2511225) 2202 0 R (id2511290) 2204 0 R (id2511355) 2207 0 R (id2511364) 2208 0 R (id2511389) 2210 0 R (id2511458) 2212 0 R (id2511493) 2214 0 R (id2511533) 2221 0 R (id2511539) 2222 0 R (id2511596) 2224 0 R (id2511634) 2232 0 R (id2511669) 2226 0 R (id2511723) 2228 0 R (id2511762) 2230 0 R (id2511787) 2234 0 R (id2511813) 2236 0 R (id2511840) 2238 0 R (id2511866) 2240 0 R (id2511906) 2242 0 R (id2511936) 2244 0 R (id2511965) 2246 0 R (id2512008) 2248 0 R (id2512041) 2250 0 R (id2512068) 2252 0 R (id2512091) 2254 0 R (id2512149) 2256 0 R (id2512173) 2259 0 R (id2512181) 2260 0 R (id2512206) 2262 0 R (id2512229) 2264 0 R (id2512252) 2266 0 R (id2512298) 2268 0 R (id2512322) 2270 0 R (id2512372) 2277 0 R (id2512379) 2278 0 R (id2512403) 2280 0 R (id2512429) 2282 0 R (id2512456) 2284 0 R (id2512492) 2286 0 R (id2512533) 2289 0 R (id2512538) 2290 0 R (id2512638) 2292 0 R (id2512684) 2294 0 R (id2512720) 2296 0 R (id2512746) 2299 0 R (id2512764) 2300 0 R (id2512787) 2302 0 R (id2512812) 2304 0 R (id2512838) 2306 0 R (id2512861) 2308 0 R (id2512907) 2310 0 R (id2512931) 2312 0 R (id2512957) 2314 0 R (id2512983) 2316 0 R (id2513020) 2319 0 R (id2513027) 2320 0 R (id2513084) 2322 0 R (id2513111) 2324 0 R (id2513147) 2331 0 R (id2513159) 2332 0 R (id2513198) 2334 0 R (id2513225) 2336 0 R (id2513255) 2338 0 R (id2513281) 2340 0 R (id2513307) 2342 0 R (id2513344) 2344 0 R (id2513380) 2346 0 R (id2513406) 2348 0 R (id2513433) 2350 0 R (id2513478) 2352 0 R (id2513520) 2355 0 R (id2513529) 2357 0 R (id2513531) 2359 0 R (id2513619) 2365 0 R (id2513628) 2366 0 R (id2513789) 2367 0 R (id2513820) 2368 0 R (id2513965) 2373 0 R (id2513992) 2375 0 R (id2514001) 2376 0 R (id2514160) 2382 0 R (id2514281) 2383 0 R (id2514345) 2384 0 R (id2514360) 2389 0 R (id2514628) 2394 0 R (id2514692) 2395 0 R (incremental_zone_transfers) 1385 0 R (internet_drafts) 2354 0 R (ipv6addresses) 1536 0 R (journal) 1384 0 R (lwresd) 1543 0 R (man.arpaname) 2729 0 R (man.ddns-confgen) 2718 0 R (man.dig) 2405 0 R (man.dnssec-dsfromkey) 2453 0 R (man.dnssec-keyfromlabel) 2472 0 R (man.dnssec-keygen) 1459 0 R (man.dnssec-revoke) 2515 0 R (man.dnssec-settime) 1460 0 R (man.dnssec-signzone) 2542 0 R (man.dnssec-verify) 2571 0 R (man.genrandom) 2735 0 R (man.host) 2442 0 R (man.isc-hmac-fixup) 2746 0 R (man.named) 2615 0 R (man.named-checkconf) 2582 0 R (man.named-checkzone) 2594 0 R (man.named-journalprint) 2637 0 R (man.nsec3hash) 2758 0 R (man.nsupdate) 2648 0 R (man.rndc) 2673 0 R (man.rndc-confgen) 2702 0 R (man.rndc.conf) 2685 0 R (managed-keys) 1487 0 R (notify) 1364 0 R (options) 1331 0 R (page.1) 938 0 R (page.10) 1323 0 R (page.100) 1938 0 R (page.101) 1951 0 R (page.102) 1967 0 R (page.103) 1979 0 R (page.104) 1985 0 R (page.105) 1989 0 R (page.106) 1999 0 R (page.107) 2005 0 R (page.108) 2011 0 R (page.109) 2022 0 R (page.11) 1336 0 R (page.110) 2034 0 R (page.111) 2042 0 R (page.112) 2050 0 R (page.113) 2054 0 R (page.114) 2062 0 R (page.115) 2071 0 R (page.116) 2083 0 R (page.117) 2090 0 R (page.118) 2098 0 R (page.119) 2102 0 R (page.12) 1340 0 R (page.120) 2108 0 R (page.121) 2119 0 R (page.122) 2123 0 R (page.123) 2127 0 R (page.124) 2138 0 R (page.125) 2142 0 R (page.126) 2149 0 R (page.127) 2160 0 R (page.128) 2219 0 R (page.129) 2275 0 R (page.13) 1348 0 R (page.130) 2329 0 R (page.131) 2364 0 R (page.132) 2372 0 R (page.133) 2381 0 R (page.134) 2388 0 R (page.135) 2393 0 R (page.136) 2399 0 R (page.137) 2403 0 R (page.138) 2412 0 R (page.139) 2419 0 R (page.14) 1354 0 R (page.140) 2424 0 R (page.141) 2428 0 R (page.142) 2432 0 R (page.143) 2441 0 R (page.144) 2449 0 R (page.145) 2461 0 R (page.146) 2468 0 R (page.147) 2480 0 R (page.148) 2484 0 R (page.149) 2492 0 R (page.15) 1362 0 R (page.150) 2500 0 R (page.151) 2505 0 R (page.152) 2510 0 R (page.153) 2520 0 R (page.154) 2531 0 R (page.155) 2538 0 R (page.156) 2547 0 R (page.157) 2555 0 R (page.158) 2559 0 R (page.159) 2563 0 R (page.16) 1383 0 R (page.160) 2568 0 R (page.161) 2579 0 R (page.162) 2589 0 R (page.163) 2601 0 R (page.164) 2607 0 R (page.165) 2612 0 R (page.166) 2623 0 R (page.167) 2627 0 R (page.168) 2634 0 R (page.169) 2647 0 R (page.17) 1393 0 R (page.170) 2655 0 R (page.171) 2660 0 R (page.172) 2664 0 R (page.173) 2672 0 R (page.174) 2681 0 R (page.175) 2693 0 R (page.176) 2698 0 R (page.177) 2710 0 R (page.178) 2716 0 R (page.179) 2726 0 R (page.18) 1399 0 R (page.180) 2740 0 R (page.181) 2754 0 R (page.182) 2767 0 R (page.19) 1404 0 R (page.2) 962 0 R (page.20) 1409 0 R (page.21) 1418 0 R (page.22) 1427 0 R (page.23) 1434 0 R (page.24) 1440 0 R (page.25) 1445 0 R (page.26) 1455 0 R (page.27) 1464 0 R (page.28) 1472 0 R (page.29) 1482 0 R (page.3) 1260 0 R (page.30) 1491 0 R (page.31) 1498 0 R (page.32) 1504 0 R (page.33) 1509 0 R (page.34) 1518 0 R (page.35) 1524 0 R (page.36) 1530 0 R (page.37) 1540 0 R (page.38) 1547 0 R (page.39) 1551 0 R (page.4) 1271 0 R (page.40) 1561 0 R (page.41) 1565 0 R (page.42) 1572 0 R (page.43) 1582 0 R (page.44) 1590 0 R (page.45) 1598 0 R (page.46) 1610 0 R (page.47) 1616 0 R (page.48) 1622 0 R (page.49) 1629 0 R (page.5) 1278 0 R (page.50) 1633 0 R (page.51) 1640 0 R (page.52) 1645 0 R (page.53) 1655 0 R (page.54) 1659 0 R (page.55) 1664 0 R (page.56) 1668 0 R (page.57) 1672 0 R (page.58) 1676 0 R (page.59) 1683 0 R (page.6) 1290 0 R (page.60) 1688 0 R (page.61) 1695 0 R (page.62) 1701 0 R (page.63) 1706 0 R (page.64) 1715 0 R (page.65) 1719 0 R (page.66) 1723 0 R (page.67) 1733 0 R (page.68) 1740 0 R (page.69) 1748 0 R (page.7) 1296 0 R (page.70) 1753 0 R (page.71) 1757 0 R (page.72) 1761 0 R (page.73) 1766 0 R (page.74) 1774 0 R (page.75) 1781 0 R (page.76) 1786 0 R (page.77) 1793 0 R (page.78) 1801 0 R (page.79) 1807 0 R (page.8) 1304 0 R (page.80) 1813 0 R (page.81) 1821 0 R (page.82) 1825 0 R (page.83) 1829 0 R (page.84) 1833 0 R (page.85) 1839 0 R (page.86) 1845 0 R (page.87) 1849 0 R (page.88) 1853 0 R (page.89) 1858 0 R (page.9) 1313 0 R (page.90) 1866 0 R (page.91) 1875 0 R (page.92) 1879 0 R (page.93) 1884 0 R (page.94) 1888 0 R (page.95) 1892 0 R (page.96) 1896 0 R (page.97) 1905 0 R (page.98) 1909 0 R (page.99) 1920 0 R (page.i) 972 0 R (page.ii) 1027 0 R (page.iii) 1091 0 R (page.iv) 1154 0 R (page.v) 1216 0 R (pkcs11) 1492 0 R (proposed_standards) 1389 0 R (query_address) 1749 0 R (rfc5011.support) 1483 0 R (rfcs) 1256 0 R (rndc) 1594 0 R (root_delegation_only) 1916 0 R (rrset_ordering) 1309 0 R (sample_configuration) 1298 0 R (section*.10) 2288 0 R (section*.100) 2617 0 R (section*.101) 2618 0 R (section*.102) 2619 0 R (section*.103) 2628 0 R (section*.104) 2629 0 R (section*.105) 2630 0 R (section*.106) 2635 0 R (section*.107) 2636 0 R (section*.108) 2638 0 R (section*.109) 2639 0 R (section*.11) 2298 0 R (section*.110) 2640 0 R (section*.111) 2641 0 R (section*.112) 2642 0 R (section*.113) 2649 0 R (section*.114) 2650 0 R (section*.115) 2651 0 R (section*.116) 2656 0 R (section*.117) 2665 0 R (section*.118) 2666 0 R (section*.119) 2667 0 R (section*.12) 2318 0 R (section*.120) 2668 0 R (section*.121) 2674 0 R (section*.122) 2675 0 R (section*.123) 2676 0 R (section*.124) 2677 0 R (section*.125) 2682 0 R (section*.126) 2683 0 R (section*.127) 2684 0 R (section*.128) 2686 0 R (section*.129) 2687 0 R (section*.13) 2330 0 R (section*.130) 2688 0 R (section*.131) 2694 0 R (section*.132) 2699 0 R (section*.133) 2700 0 R (section*.134) 2701 0 R (section*.135) 2703 0 R (section*.136) 2704 0 R (section*.137) 2705 0 R (section*.138) 2706 0 R (section*.139) 2711 0 R (section*.14) 2356 0 R (section*.140) 2712 0 R (section*.141) 2717 0 R (section*.142) 2719 0 R (section*.143) 2720 0 R (section*.144) 2721 0 R (section*.145) 2722 0 R (section*.146) 2727 0 R (section*.147) 2728 0 R (section*.148) 2730 0 R (section*.149) 2731 0 R (section*.15) 2406 0 R (section*.150) 2732 0 R (section*.151) 2733 0 R (section*.152) 2734 0 R (section*.153) 2736 0 R (section*.154) 2741 0 R (section*.155) 2742 0 R (section*.156) 2743 0 R (section*.157) 2744 0 R (section*.158) 2745 0 R (section*.159) 2747 0 R (section*.16) 2407 0 R (section*.160) 2748 0 R (section*.161) 2749 0 R (section*.162) 2755 0 R (section*.163) 2756 0 R (section*.164) 2757 0 R (section*.165) 2759 0 R (section*.166) 2760 0 R (section*.167) 2761 0 R (section*.168) 2762 0 R (section*.169) 2763 0 R (section*.17) 2408 0 R (section*.170) 2768 0 R (section*.18) 2413 0 R (section*.19) 2414 0 R (section*.2) 2154 0 R (section*.20) 2420 0 R (section*.21) 2433 0 R (section*.22) 2434 0 R (section*.23) 2435 0 R (section*.24) 2436 0 R (section*.25) 2437 0 R (section*.26) 2443 0 R (section*.27) 2444 0 R (section*.28) 2445 0 R (section*.29) 2450 0 R (section*.3) 2161 0 R (section*.30) 2451 0 R (section*.31) 2452 0 R (section*.32) 2454 0 R (section*.33) 2455 0 R (section*.34) 2456 0 R (section*.35) 2462 0 R (section*.36) 2463 0 R (section*.37) 2464 0 R (section*.38) 2469 0 R (section*.39) 2470 0 R (section*.4) 2169 0 R (section*.40) 2471 0 R (section*.41) 2473 0 R (section*.42) 2474 0 R (section*.43) 2475 0 R (section*.44) 2476 0 R (section*.45) 2485 0 R (section*.46) 2486 0 R (section*.47) 2487 0 R (section*.48) 2488 0 R (section*.49) 2493 0 R (section*.5) 2194 0 R (section*.50) 2494 0 R (section*.51) 2495 0 R (section*.52) 2496 0 R (section*.53) 2506 0 R (section*.54) 2511 0 R (section*.55) 2512 0 R (section*.56) 2513 0 R (section*.57) 2514 0 R (section*.58) 2516 0 R (section*.59) 2521 0 R (section*.6) 2206 0 R (section*.60) 2522 0 R (section*.61) 2523 0 R (section*.62) 2524 0 R (section*.63) 2525 0 R (section*.64) 2526 0 R (section*.65) 2527 0 R (section*.66) 2532 0 R (section*.67) 2533 0 R (section*.68) 2534 0 R (section*.69) 2539 0 R (section*.7) 2220 0 R (section*.70) 2540 0 R (section*.71) 2541 0 R (section*.72) 2543 0 R (section*.73) 2548 0 R (section*.74) 2549 0 R (section*.75) 2550 0 R (section*.76) 2564 0 R (section*.77) 2569 0 R (section*.78) 2570 0 R (section*.79) 2572 0 R (section*.8) 2258 0 R (section*.80) 2573 0 R (section*.81) 2574 0 R (section*.82) 2575 0 R (section*.83) 2580 0 R (section*.84) 2581 0 R (section*.85) 2583 0 R (section*.86) 2584 0 R (section*.87) 2585 0 R (section*.88) 2590 0 R (section*.89) 2591 0 R (section*.9) 2276 0 R (section*.90) 2592 0 R (section*.91) 2593 0 R (section*.92) 2595 0 R (section*.93) 2596 0 R (section*.94) 2602 0 R (section*.95) 2603 0 R (section*.96) 2608 0 R (section*.97) 2613 0 R (section*.98) 2614 0 R (section*.99) 2616 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) 618 0 R (section.6.4) 674 0 R (section.7.1) 710 0 R (section.7.2) 714 0 R (section.7.3) 726 0 R (section.8.1) 734 0 R (section.8.2) 742 0 R (section.8.3) 746 0 R (section.A.1) 754 0 R (section.A.2) 762 0 R (section.A.3) 770 0 R (section.A.4) 786 0 R (section.B.1) 846 0 R (section.B.10) 882 0 R (section.B.11) 886 0 R (section.B.12) 890 0 R (section.B.13) 894 0 R (section.B.14) 898 0 R (section.B.15) 902 0 R (section.B.16) 906 0 R (section.B.17) 910 0 R (section.B.18) 914 0 R (section.B.19) 918 0 R (section.B.2) 850 0 R (section.B.20) 922 0 R (section.B.21) 926 0 R (section.B.22) 930 0 R (section.B.3) 854 0 R (section.B.4) 858 0 R (section.B.5) 862 0 R (section.B.6) 866 0 R (section.B.7) 870 0 R (section.B.8) 874 0 R (section.B.9) 878 0 R (server_resource_limits) 1775 0 R (server_statement_definition_and_usage) 1711 0 R (server_statement_grammar) 1854 0 R (statistics) 2055 0 R (statistics_counters) 2063 0 R (statschannels) 1861 0 R (statsfile) 1679 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) 554 0 R (subsection.6.2.18) 558 0 R (subsection.6.2.19) 562 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 566 0 R (subsection.6.2.21) 570 0 R (subsection.6.2.22) 574 0 R (subsection.6.2.23) 578 0 R (subsection.6.2.24) 582 0 R (subsection.6.2.25) 586 0 R (subsection.6.2.26) 590 0 R (subsection.6.2.27) 594 0 R (subsection.6.2.28) 598 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) 622 0 R (subsection.6.3.2) 634 0 R (subsection.6.3.3) 638 0 R (subsection.6.3.4) 642 0 R (subsection.6.3.5) 646 0 R (subsection.6.3.6) 666 0 R (subsection.6.3.7) 670 0 R (subsection.6.4.1) 682 0 R (subsection.7.2.1) 718 0 R (subsection.7.2.2) 722 0 R (subsection.8.1.1) 738 0 R (subsection.A.1.1) 758 0 R (subsection.A.2.1) 766 0 R (subsection.A.3.1) 774 0 R (subsection.A.3.2) 778 0 R (subsection.A.3.3) 782 0 R (subsection.A.4.1) 790 0 R (subsection.A.4.2) 794 0 R (subsection.A.4.3) 798 0 R (subsection.A.4.4) 802 0 R (subsection.A.4.5) 806 0 R (subsection.A.4.6) 810 0 R (subsection.A.4.7) 838 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.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) 602 0 R (subsubsection.6.2.28.2) 606 0 R (subsubsection.6.2.28.3) 610 0 R (subsubsection.6.2.28.4) 614 0 R (subsubsection.6.3.1.1) 626 0 R (subsubsection.6.3.1.2) 630 0 R (subsubsection.6.3.5.1) 650 0 R (subsubsection.6.3.5.2) 654 0 R (subsubsection.6.3.5.3) 658 0 R (subsubsection.6.3.5.4) 662 0 R (subsubsection.6.4.0.1) 678 0 R (subsubsection.6.4.1.1) 686 0 R (subsubsection.6.4.1.2) 690 0 R (subsubsection.6.4.1.3) 694 0 R (subsubsection.6.4.1.4) 698 0 R (subsubsection.6.4.1.5) 702 0 R (subsubsection.A.4.6.1) 814 0 R (subsubsection.A.4.6.2) 818 0 R (subsubsection.A.4.6.3) 822 0 R (subsubsection.A.4.6.4) 826 0 R (subsubsection.A.4.6.5) 830 0 R (subsubsection.A.4.6.6) 834 0 R (table.1.1) 1240 0 R (table.1.2) 1248 0 R (table.3.1) 1307 0 R (table.3.2) 1357 0 R (table.6.1) 1555 0 R (table.6.10) 1995 0 R (table.6.11) 2001 0 R (table.6.12) 2007 0 R (table.6.13) 2014 0 R (table.6.14) 2016 0 R (table.6.15) 2024 0 R (table.6.16) 2027 0 R (table.6.17) 2030 0 R (table.6.18) 2046 0 R (table.6.19) 2057 0 R (table.6.2) 1577 0 R (table.6.20) 2066 0 R (table.6.21) 2075 0 R (table.6.22) 2078 0 R (table.6.23) 2086 0 R (table.6.3) 1586 0 R (table.6.4) 1624 0 R (table.6.5) 1636 0 R (table.6.6) 1697 0 R (table.6.7) 1796 0 R (table.6.8) 1900 0 R (table.6.9) 1981 0 R (the_category_phrase) 1618 0 R (the_sortlist_statement) 1787 0 R (topology) 1782 0 R (trusted-keys) 1867 0 R (tsig) 1405 0 R (tuning) 1797 0 R (types_of_resource_records_and_when_to_use_them) 1255 0 R (view_statement_grammar) 1817 0 R (zone_statement_grammar) 1729 0 R (zone_transfers) 1379 0 R (zonefile_format) 1809 0 R]
/Limits [(Access_Control_Lists) (zonefile_format)]
>> endobj
2796 0 obj <<
@@ -16720,7 +16648,7 @@ endobj
>> endobj
2799 0 obj <<
/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
-/CreationDate (D:20130110202858Z)
+/CreationDate (D:20130307024041Z)
/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
>> endobj
xref
@@ -16731,932 +16659,932 @@ xref
0000000004 00000 f
0000000000 00000 f
0000000009 00000 n
-0000348959 00000 n
-0001207637 00000 n
+0000348957 00000 n
+0001209066 00000 n
0000000054 00000 n
0000000086 00000 n
-0000349086 00000 n
-0001207565 00000 n
+0000349084 00000 n
+0001208994 00000 n
0000000133 00000 n
0000000173 00000 n
-0000349214 00000 n
-0001207479 00000 n
+0000349212 00000 n
+0001208908 00000 n
0000000221 00000 n
0000000273 00000 n
-0000349342 00000 n
-0001207393 00000 n
+0000349340 00000 n
+0001208822 00000 n
0000000321 00000 n
0000000377 00000 n
-0000353628 00000 n
-0001207283 00000 n
+0000353626 00000 n
+0001208712 00000 n
0000000425 00000 n
0000000478 00000 n
-0000353755 00000 n
-0001207209 00000 n
+0000353753 00000 n
+0001208638 00000 n
0000000531 00000 n
0000000572 00000 n
-0000353883 00000 n
-0001207122 00000 n
+0000353881 00000 n
+0001208551 00000 n
0000000625 00000 n
0000000674 00000 n
-0000354010 00000 n
-0001207035 00000 n
+0000354008 00000 n
+0001208464 00000 n
0000000727 00000 n
0000000757 00000 n
-0000358307 00000 n
-0001206911 00000 n
+0000358305 00000 n
+0001208340 00000 n
0000000810 00000 n
0000000861 00000 n
-0000358435 00000 n
-0001206837 00000 n
+0000358433 00000 n
+0001208266 00000 n
0000000919 00000 n
0000000964 00000 n
-0000358563 00000 n
-0001206750 00000 n
+0000358561 00000 n
+0001208179 00000 n
0000001022 00000 n
0000001062 00000 n
-0000358691 00000 n
-0001206676 00000 n
+0000358689 00000 n
+0001208105 00000 n
0000001120 00000 n
0000001162 00000 n
-0000361676 00000 n
-0001206552 00000 n
+0000361674 00000 n
+0001207981 00000 n
0000001215 00000 n
0000001260 00000 n
-0000361804 00000 n
-0001206491 00000 n
+0000361802 00000 n
+0001207920 00000 n
0000001318 00000 n
0000001355 00000 n
-0000361932 00000 n
-0001206417 00000 n
+0000361930 00000 n
+0001207846 00000 n
0000001408 00000 n
0000001463 00000 n
-0000364879 00000 n
-0001206292 00000 n
+0000364877 00000 n
+0001207721 00000 n
0000001509 00000 n
0000001556 00000 n
-0000365007 00000 n
-0001206218 00000 n
+0000365005 00000 n
+0001207647 00000 n
0000001604 00000 n
0000001648 00000 n
-0000365135 00000 n
-0001206131 00000 n
+0000365133 00000 n
+0001207560 00000 n
0000001696 00000 n
0000001735 00000 n
-0000365263 00000 n
-0001206044 00000 n
+0000365261 00000 n
+0001207473 00000 n
0000001783 00000 n
0000001825 00000 n
-0000365390 00000 n
-0001205957 00000 n
+0000365388 00000 n
+0001207386 00000 n
0000001873 00000 n
0000001936 00000 n
-0000366467 00000 n
-0001205883 00000 n
+0000366465 00000 n
+0001207312 00000 n
0000001984 00000 n
0000002034 00000 n
-0000368126 00000 n
-0001205755 00000 n
+0000368124 00000 n
+0001207184 00000 n
0000002080 00000 n
0000002126 00000 n
-0000368253 00000 n
-0001205642 00000 n
+0000368251 00000 n
+0001207071 00000 n
0000002174 00000 n
0000002218 00000 n
-0000368381 00000 n
-0001205566 00000 n
+0000368379 00000 n
+0001206995 00000 n
0000002271 00000 n
0000002323 00000 n
-0000368509 00000 n
-0001205489 00000 n
+0000368507 00000 n
+0001206918 00000 n
0000002377 00000 n
0000002436 00000 n
-0000370958 00000 n
-0001205398 00000 n
+0000370956 00000 n
+0001206827 00000 n
0000002485 00000 n
0000002523 00000 n
-0000374296 00000 n
-0001205281 00000 n
+0000374294 00000 n
+0001206710 00000 n
0000002572 00000 n
0000002618 00000 n
-0000374424 00000 n
-0001205163 00000 n
+0000374422 00000 n
+0001206592 00000 n
0000002672 00000 n
0000002739 00000 n
-0000374552 00000 n
-0001205084 00000 n
+0000374550 00000 n
+0001206513 00000 n
0000002798 00000 n
0000002842 00000 n
-0000374681 00000 n
-0001205005 00000 n
+0000374679 00000 n
+0001206434 00000 n
0000002901 00000 n
0000002949 00000 n
-0000392718 00000 n
-0001204926 00000 n
+0000392716 00000 n
+0001206355 00000 n
0000003003 00000 n
0000003036 00000 n
-0000397946 00000 n
-0001204793 00000 n
+0000397944 00000 n
+0001206222 00000 n
0000003083 00000 n
0000003126 00000 n
-0000398075 00000 n
-0001204714 00000 n
+0000398073 00000 n
+0001206143 00000 n
0000003175 00000 n
0000003205 00000 n
-0000398204 00000 n
-0001204582 00000 n
+0000398202 00000 n
+0001206011 00000 n
0000003254 00000 n
0000003292 00000 n
-0000402713 00000 n
-0001204517 00000 n
+0000402711 00000 n
+0001205946 00000 n
0000003346 00000 n
0000003388 00000 n
-0000402842 00000 n
-0001204424 00000 n
+0000402840 00000 n
+0001205853 00000 n
0000003437 00000 n
0000003496 00000 n
-0000402971 00000 n
-0001204292 00000 n
+0000402969 00000 n
+0001205721 00000 n
0000003545 00000 n
0000003578 00000 n
-0000406889 00000 n
-0001204227 00000 n
+0000406887 00000 n
+0001205656 00000 n
0000003632 00000 n
0000003681 00000 n
-0000409903 00000 n
-0001204095 00000 n
+0000409901 00000 n
+0001205524 00000 n
0000003730 00000 n
0000003758 00000 n
-0000412683 00000 n
-0001203977 00000 n
+0000412681 00000 n
+0001205406 00000 n
0000003812 00000 n
0000003881 00000 n
-0000412812 00000 n
-0001203898 00000 n
+0000412810 00000 n
+0001205327 00000 n
0000003940 00000 n
0000003988 00000 n
-0000412940 00000 n
-0001203819 00000 n
+0000412938 00000 n
+0001205248 00000 n
0000004047 00000 n
0000004092 00000 n
-0000413069 00000 n
-0001203726 00000 n
+0000413067 00000 n
+0001205155 00000 n
0000004146 00000 n
0000004214 00000 n
-0000413198 00000 n
-0001203633 00000 n
+0000413196 00000 n
+0001205062 00000 n
0000004268 00000 n
0000004338 00000 n
-0000416867 00000 n
-0001203540 00000 n
+0000416865 00000 n
+0001204969 00000 n
0000004392 00000 n
0000004455 00000 n
-0000416996 00000 n
-0001203447 00000 n
+0000416994 00000 n
+0001204876 00000 n
0000004509 00000 n
0000004564 00000 n
-0000417124 00000 n
-0001203368 00000 n
+0000417122 00000 n
+0001204797 00000 n
0000004618 00000 n
0000004650 00000 n
-0000417252 00000 n
-0001203275 00000 n
+0000417250 00000 n
+0001204704 00000 n
0000004699 00000 n
0000004727 00000 n
-0000421021 00000 n
-0001203182 00000 n
+0000421019 00000 n
+0001204611 00000 n
0000004776 00000 n
0000004808 00000 n
-0000421150 00000 n
-0001203050 00000 n
+0000421148 00000 n
+0001204479 00000 n
0000004857 00000 n
0000004887 00000 n
-0000421279 00000 n
-0001202971 00000 n
+0000421277 00000 n
+0001204400 00000 n
0000004941 00000 n
0000004982 00000 n
-0000425077 00000 n
-0001202878 00000 n
+0000425075 00000 n
+0001204307 00000 n
0000005036 00000 n
0000005078 00000 n
-0000425206 00000 n
-0001202799 00000 n
+0000425204 00000 n
+0001204228 00000 n
0000005132 00000 n
0000005177 00000 n
-0000430529 00000 n
-0001202666 00000 n
+0000430527 00000 n
+0001204095 00000 n
0000005226 00000 n
0000005294 00000 n
-0000430658 00000 n
-0001202587 00000 n
+0000430656 00000 n
+0001204016 00000 n
0000005348 00000 n
0000005408 00000 n
-0000430787 00000 n
-0001202494 00000 n
+0000430785 00000 n
+0001203923 00000 n
0000005462 00000 n
0000005513 00000 n
-0000435054 00000 n
-0001202401 00000 n
+0000435052 00000 n
+0001203830 00000 n
0000005567 00000 n
0000005621 00000 n
-0000438036 00000 n
-0001202308 00000 n
+0000438034 00000 n
+0001203737 00000 n
0000005675 00000 n
0000005721 00000 n
-0000438165 00000 n
-0001202215 00000 n
+0000438163 00000 n
+0001203644 00000 n
0000005775 00000 n
0000005817 00000 n
-0000438294 00000 n
-0001202122 00000 n
+0000438292 00000 n
+0001203551 00000 n
0000005871 00000 n
0000005922 00000 n
-0000438423 00000 n
-0001202029 00000 n
+0000438421 00000 n
+0001203458 00000 n
0000005976 00000 n
0000006025 00000 n
-0000441182 00000 n
-0001201936 00000 n
+0000441180 00000 n
+0001203365 00000 n
0000006079 00000 n
0000006136 00000 n
-0000441311 00000 n
-0001201843 00000 n
+0000441309 00000 n
+0001203272 00000 n
0000006190 00000 n
0000006245 00000 n
-0000441440 00000 n
-0001201750 00000 n
+0000441438 00000 n
+0001203179 00000 n
0000006300 00000 n
0000006356 00000 n
-0000441568 00000 n
-0001201657 00000 n
+0000441566 00000 n
+0001203086 00000 n
0000006411 00000 n
0000006472 00000 n
-0000441696 00000 n
-0001201564 00000 n
+0000441694 00000 n
+0001202993 00000 n
0000006527 00000 n
0000006573 00000 n
-0000441825 00000 n
-0001201485 00000 n
+0000441823 00000 n
+0001202914 00000 n
0000006628 00000 n
0000006671 00000 n
-0000445689 00000 n
-0001201353 00000 n
+0000445687 00000 n
+0001202782 00000 n
0000006721 00000 n
0000006777 00000 n
-0000445818 00000 n
-0001201274 00000 n
+0000445816 00000 n
+0001202703 00000 n
0000006832 00000 n
0000006878 00000 n
-0000445947 00000 n
-0001201195 00000 n
+0000445945 00000 n
+0001202624 00000 n
0000006933 00000 n
0000006980 00000 n
-0000449349 00000 n
-0001201063 00000 n
+0000449347 00000 n
+0001202492 00000 n
0000007030 00000 n
0000007087 00000 n
-0000449478 00000 n
-0001200945 00000 n
+0000449476 00000 n
+0001202374 00000 n
0000007142 00000 n
0000007182 00000 n
-0000452146 00000 n
-0001200866 00000 n
+0000452144 00000 n
+0001202295 00000 n
0000007242 00000 n
0000007315 00000 n
-0000452275 00000 n
-0001200773 00000 n
+0000452273 00000 n
+0001202202 00000 n
0000007375 00000 n
0000007448 00000 n
-0000454992 00000 n
-0001200694 00000 n
+0000454990 00000 n
+0001202123 00000 n
0000007508 00000 n
0000007565 00000 n
-0000457384 00000 n
-0001200562 00000 n
+0000457382 00000 n
+0001201991 00000 n
0000007620 00000 n
0000007678 00000 n
-0000457513 00000 n
-0001200483 00000 n
+0000457511 00000 n
+0001201912 00000 n
0000007738 00000 n
0000007815 00000 n
-0000457642 00000 n
-0001200390 00000 n
+0000457640 00000 n
+0001201819 00000 n
0000007875 00000 n
0000007952 00000 n
-0000457771 00000 n
-0001200311 00000 n
+0000457769 00000 n
+0001201740 00000 n
0000008012 00000 n
0000008071 00000 n
-0000457900 00000 n
-0001200218 00000 n
+0000457898 00000 n
+0001201647 00000 n
0000008126 00000 n
0000008170 00000 n
-0000460532 00000 n
-0001200125 00000 n
+0000460530 00000 n
+0001201554 00000 n
0000008225 00000 n
0000008265 00000 n
-0000463341 00000 n
-0001200032 00000 n
+0000463339 00000 n
+0001201461 00000 n
0000008320 00000 n
0000008388 00000 n
-0000463470 00000 n
-0001199953 00000 n
+0000463468 00000 n
+0001201382 00000 n
0000008443 00000 n
0000008514 00000 n
-0000467531 00000 n
-0001199835 00000 n
+0000467529 00000 n
+0001201264 00000 n
0000008564 00000 n
0000008611 00000 n
-0000467660 00000 n
-0001199756 00000 n
+0000467658 00000 n
+0001201185 00000 n
0000008666 00000 n
0000008727 00000 n
-0000467789 00000 n
-0001199677 00000 n
+0000467787 00000 n
+0001201106 00000 n
0000008782 00000 n
0000008852 00000 n
-0000470274 00000 n
-0001199544 00000 n
+0000470272 00000 n
+0001200973 00000 n
0000008899 00000 n
0000008952 00000 n
-0000470403 00000 n
-0001199465 00000 n
+0000470401 00000 n
+0001200894 00000 n
0000009001 00000 n
0000009057 00000 n
-0000470532 00000 n
-0001199386 00000 n
+0000470530 00000 n
+0001200815 00000 n
0000009106 00000 n
0000009155 00000 n
-0000474802 00000 n
-0001199253 00000 n
+0000474800 00000 n
+0001200682 00000 n
0000009202 00000 n
0000009254 00000 n
-0000474931 00000 n
-0001199135 00000 n
+0000474929 00000 n
+0001200564 00000 n
0000009303 00000 n
0000009354 00000 n
-0000479623 00000 n
-0001199017 00000 n
+0000483353 00000 n
+0001200446 00000 n
0000009408 00000 n
0000009453 00000 n
-0000479751 00000 n
-0001198938 00000 n
+0000483482 00000 n
+0001200367 00000 n
0000009512 00000 n
0000009546 00000 n
-0000483344 00000 n
-0001198859 00000 n
+0000483611 00000 n
+0001200288 00000 n
0000009605 00000 n
0000009653 00000 n
-0000483473 00000 n
-0001198741 00000 n
+0000483740 00000 n
+0001200170 00000 n
0000009707 00000 n
0000009747 00000 n
-0000483602 00000 n
-0001198662 00000 n
+0000486273 00000 n
+0001200091 00000 n
0000009806 00000 n
0000009840 00000 n
-0000486454 00000 n
-0001198583 00000 n
+0000486402 00000 n
+0001200012 00000 n
0000009899 00000 n
0000009947 00000 n
-0000486583 00000 n
-0001198450 00000 n
+0000486531 00000 n
+0001199879 00000 n
0000009996 00000 n
0000010046 00000 n
-0000489689 00000 n
-0001198371 00000 n
+0000489772 00000 n
+0001199800 00000 n
0000010100 00000 n
0000010147 00000 n
-0000489817 00000 n
-0001198278 00000 n
+0000489900 00000 n
+0001199707 00000 n
0000010201 00000 n
0000010261 00000 n
-0000490076 00000 n
-0001198185 00000 n
+0000495257 00000 n
+0001199614 00000 n
0000010315 00000 n
0000010367 00000 n
-0000495258 00000 n
-0001198092 00000 n
+0000495386 00000 n
+0001199521 00000 n
0000010421 00000 n
0000010486 00000 n
-0000495387 00000 n
-0001197999 00000 n
+0000498856 00000 n
+0001199428 00000 n
0000010540 00000 n
0000010591 00000 n
-0000498866 00000 n
-0001197906 00000 n
+0000498985 00000 n
+0001199335 00000 n
0000010645 00000 n
0000010709 00000 n
-0000498995 00000 n
-0001197813 00000 n
+0000499114 00000 n
+0001199242 00000 n
0000010763 00000 n
0000010810 00000 n
-0000499124 00000 n
-0001197720 00000 n
+0000499243 00000 n
+0001199149 00000 n
0000010864 00000 n
0000010924 00000 n
-0000499253 00000 n
-0001197627 00000 n
+0000499371 00000 n
+0001199056 00000 n
0000010978 00000 n
0000011029 00000 n
-0000503271 00000 n
-0001197495 00000 n
+0000503070 00000 n
+0001198924 00000 n
0000011084 00000 n
0000011149 00000 n
-0000503400 00000 n
-0001197416 00000 n
+0000503199 00000 n
+0001198845 00000 n
0000011209 00000 n
0000011256 00000 n
-0000510221 00000 n
-0001197323 00000 n
+0000510000 00000 n
+0001198752 00000 n
0000011316 00000 n
0000011364 00000 n
-0000516777 00000 n
-0001197244 00000 n
+0000516906 00000 n
+0001198673 00000 n
0000011424 00000 n
0000011478 00000 n
-0000520004 00000 n
-0001197151 00000 n
+0000520133 00000 n
+0001198580 00000 n
0000011533 00000 n
0000011583 00000 n
-0000522904 00000 n
-0001197058 00000 n
+0000523033 00000 n
+0001198487 00000 n
0000011638 00000 n
0000011701 00000 n
-0000523033 00000 n
-0001196965 00000 n
+0000523162 00000 n
+0001198394 00000 n
0000011756 00000 n
0000011808 00000 n
-0000523162 00000 n
-0001196872 00000 n
+0000523291 00000 n
+0001198301 00000 n
0000011863 00000 n
0000011928 00000 n
-0000523291 00000 n
-0001196779 00000 n
+0000523420 00000 n
+0001198208 00000 n
0000011983 00000 n
0000012035 00000 n
-0000530879 00000 n
-0001196646 00000 n
+0000531034 00000 n
+0001198075 00000 n
0000012090 00000 n
0000012155 00000 n
-0000547964 00000 n
-0001196567 00000 n
+0000552342 00000 n
+0001197996 00000 n
0000012215 00000 n
0000012259 00000 n
-0000574250 00000 n
-0001196474 00000 n
+0000574340 00000 n
+0001197903 00000 n
0000012319 00000 n
0000012358 00000 n
-0000574378 00000 n
-0001196381 00000 n
+0000577821 00000 n
+0001197810 00000 n
0000012418 00000 n
0000012465 00000 n
-0000577914 00000 n
-0001196288 00000 n
+0000577950 00000 n
+0001197717 00000 n
0000012525 00000 n
0000012568 00000 n
-0000582036 00000 n
-0001196195 00000 n
+0000582190 00000 n
+0001197624 00000 n
0000012628 00000 n
0000012667 00000 n
-0000585963 00000 n
-0001196102 00000 n
+0000585609 00000 n
+0001197531 00000 n
0000012727 00000 n
0000012769 00000 n
-0000588888 00000 n
-0001196009 00000 n
+0000592691 00000 n
+0001197438 00000 n
0000012829 00000 n
0000012872 00000 n
-0000599997 00000 n
-0001195916 00000 n
+0000600381 00000 n
+0001197345 00000 n
0000012932 00000 n
0000012975 00000 n
-0000600126 00000 n
-0001195823 00000 n
+0000600510 00000 n
+0001197252 00000 n
0000013035 00000 n
0000013096 00000 n
-0000600254 00000 n
-0001195730 00000 n
+0000604627 00000 n
+0001197159 00000 n
0000013157 00000 n
0000013209 00000 n
-0000604485 00000 n
-0001195637 00000 n
+0000604756 00000 n
+0001197066 00000 n
0000013270 00000 n
0000013323 00000 n
-0000607789 00000 n
-0001195544 00000 n
+0000607786 00000 n
+0001196973 00000 n
0000013384 00000 n
0000013422 00000 n
-0000607918 00000 n
-0001195451 00000 n
+0000611723 00000 n
+0001196880 00000 n
0000013483 00000 n
0000013535 00000 n
-0000614606 00000 n
-0001195358 00000 n
+0000615030 00000 n
+0001196787 00000 n
0000013596 00000 n
0000013640 00000 n
-0000614864 00000 n
-0001195265 00000 n
+0000615288 00000 n
+0001196694 00000 n
0000013701 00000 n
0000013737 00000 n
-0000627021 00000 n
-0001195172 00000 n
+0000627765 00000 n
+0001196601 00000 n
0000013798 00000 n
0000013861 00000 n
-0000627150 00000 n
-0001195079 00000 n
+0000627894 00000 n
+0001196508 00000 n
0000013922 00000 n
0000013972 00000 n
-0000633759 00000 n
-0001194986 00000 n
+0000634426 00000 n
+0001196415 00000 n
0000014033 00000 n
0000014089 00000 n
-0000638644 00000 n
-0001194893 00000 n
+0000639005 00000 n
+0001196322 00000 n
0000014150 00000 n
0000014197 00000 n
-0000642754 00000 n
-0001194814 00000 n
+0000643165 00000 n
+0001196243 00000 n
0000014258 00000 n
0000014326 00000 n
-0000653145 00000 n
-0001194721 00000 n
+0000653809 00000 n
+0001196150 00000 n
0000014381 00000 n
0000014432 00000 n
-0000653274 00000 n
-0001194628 00000 n
+0000653938 00000 n
+0001196057 00000 n
0000014487 00000 n
0000014551 00000 n
-0000657670 00000 n
-0001194535 00000 n
+0000658205 00000 n
+0001195964 00000 n
0000014606 00000 n
0000014670 00000 n
-0000657799 00000 n
-0001194442 00000 n
+0000658334 00000 n
+0001195871 00000 n
0000014725 00000 n
0000014802 00000 n
-0000661644 00000 n
-0001194349 00000 n
+0000662137 00000 n
+0001195778 00000 n
0000014857 00000 n
0000014914 00000 n
-0000661770 00000 n
-0001194256 00000 n
+0000662265 00000 n
+0001195685 00000 n
0000014969 00000 n
0000015039 00000 n
-0000661899 00000 n
-0001194163 00000 n
+0000662394 00000 n
+0001195592 00000 n
0000015094 00000 n
0000015151 00000 n
-0000662028 00000 n
-0001194070 00000 n
+0000666835 00000 n
+0001195499 00000 n
0000015206 00000 n
0000015276 00000 n
-0000666200 00000 n
-0001193977 00000 n
+0000666964 00000 n
+0001195406 00000 n
0000015331 00000 n
0000015380 00000 n
-0000669672 00000 n
-0001193884 00000 n
+0000670445 00000 n
+0001195313 00000 n
0000015435 00000 n
0000015497 00000 n
-0000671388 00000 n
-0001193791 00000 n
+0000672224 00000 n
+0001195220 00000 n
0000015552 00000 n
0000015601 00000 n
-0000676878 00000 n
-0001193673 00000 n
+0000677808 00000 n
+0001195102 00000 n
0000015656 00000 n
0000015718 00000 n
-0000677007 00000 n
-0001193594 00000 n
+0000677937 00000 n
+0001195023 00000 n
0000015778 00000 n
0000015817 00000 n
-0000685800 00000 n
-0001193501 00000 n
+0000685959 00000 n
+0001194930 00000 n
0000015877 00000 n
0000015911 00000 n
-0000685927 00000 n
-0001193408 00000 n
+0000686087 00000 n
+0001194837 00000 n
0000015971 00000 n
0000016012 00000 n
-0000707214 00000 n
-0001193329 00000 n
+0000707694 00000 n
+0001194758 00000 n
0000016072 00000 n
0000016124 00000 n
-0000716968 00000 n
-0001193197 00000 n
+0000718231 00000 n
+0001194626 00000 n
0000016173 00000 n
0000016206 00000 n
-0000717097 00000 n
-0001193079 00000 n
+0000718360 00000 n
+0001194508 00000 n
0000016260 00000 n
0000016332 00000 n
-0000717226 00000 n
-0001193000 00000 n
+0000718489 00000 n
+0001194429 00000 n
0000016391 00000 n
0000016435 00000 n
-0000727828 00000 n
-0001192921 00000 n
+0000729091 00000 n
+0001194350 00000 n
0000016494 00000 n
0000016547 00000 n
-0000728217 00000 n
-0001192828 00000 n
+0000729480 00000 n
+0001194257 00000 n
0000016601 00000 n
0000016651 00000 n
-0000732071 00000 n
-0001192735 00000 n
+0000733334 00000 n
+0001194164 00000 n
0000016705 00000 n
0000016743 00000 n
-0000732330 00000 n
-0001192642 00000 n
+0000733593 00000 n
+0001194071 00000 n
0000016797 00000 n
0000016846 00000 n
-0000735103 00000 n
-0001192510 00000 n
+0000736366 00000 n
+0001193939 00000 n
0000016900 00000 n
0000016952 00000 n
-0000735228 00000 n
-0001192431 00000 n
+0000736491 00000 n
+0001193860 00000 n
0000017011 00000 n
0000017056 00000 n
-0000735357 00000 n
-0001192338 00000 n
+0000736620 00000 n
+0001193767 00000 n
0000017115 00000 n
0000017167 00000 n
-0000735486 00000 n
-0001192245 00000 n
+0000736749 00000 n
+0001193674 00000 n
0000017226 00000 n
0000017279 00000 n
-0000737938 00000 n
-0001192166 00000 n
+0000739201 00000 n
+0001193595 00000 n
0000017338 00000 n
0000017387 00000 n
-0000738067 00000 n
-0001192073 00000 n
+0000739330 00000 n
+0001193502 00000 n
0000017441 00000 n
0000017521 00000 n
-0000742382 00000 n
-0001191994 00000 n
+0000743645 00000 n
+0001193423 00000 n
0000017575 00000 n
0000017624 00000 n
-0000745887 00000 n
-0001191876 00000 n
+0000747150 00000 n
+0001193305 00000 n
0000017673 00000 n
0000017713 00000 n
-0000746146 00000 n
-0001191797 00000 n
+0000747409 00000 n
+0001193226 00000 n
0000017772 00000 n
0000017819 00000 n
-0000749578 00000 n
-0001191679 00000 n
+0000750841 00000 n
+0001193108 00000 n
0000017873 00000 n
0000017918 00000 n
-0000749707 00000 n
-0001191600 00000 n
+0000750970 00000 n
+0001193029 00000 n
0000017977 00000 n
0000018036 00000 n
-0000753062 00000 n
-0001191507 00000 n
+0000754343 00000 n
+0001192936 00000 n
0000018095 00000 n
0000018159 00000 n
-0000753321 00000 n
-0001191414 00000 n
+0000754602 00000 n
+0001192843 00000 n
0000018218 00000 n
0000018274 00000 n
-0000757478 00000 n
-0001191321 00000 n
+0000758695 00000 n
+0001192750 00000 n
0000018333 00000 n
0000018391 00000 n
-0000759499 00000 n
-0001191242 00000 n
+0000760874 00000 n
+0001192671 00000 n
0000018450 00000 n
0000018512 00000 n
-0000761667 00000 n
-0001191109 00000 n
+0000763042 00000 n
+0001192538 00000 n
0000018559 00000 n
0000018611 00000 n
-0000761795 00000 n
-0001191030 00000 n
+0000763170 00000 n
+0001192459 00000 n
0000018660 00000 n
0000018704 00000 n
-0000765594 00000 n
-0001190898 00000 n
+0000766969 00000 n
+0001192327 00000 n
0000018753 00000 n
0000018794 00000 n
-0000765723 00000 n
-0001190819 00000 n
+0000767098 00000 n
+0001192248 00000 n
0000018848 00000 n
0000018896 00000 n
-0000765852 00000 n
-0001190740 00000 n
+0000767227 00000 n
+0001192169 00000 n
0000018950 00000 n
0000019001 00000 n
-0000765980 00000 n
-0001190661 00000 n
+0000767355 00000 n
+0001192090 00000 n
0000019050 00000 n
0000019097 00000 n
-0000770240 00000 n
-0001190528 00000 n
+0000771615 00000 n
+0001191957 00000 n
0000019144 00000 n
0000019181 00000 n
-0000770369 00000 n
-0001190410 00000 n
+0000771744 00000 n
+0001191839 00000 n
0000019230 00000 n
0000019269 00000 n
-0000770498 00000 n
-0001190345 00000 n
+0000771873 00000 n
+0001191774 00000 n
0000019323 00000 n
0000019401 00000 n
-0000770627 00000 n
-0001190252 00000 n
+0000772002 00000 n
+0001191681 00000 n
0000019450 00000 n
0000019517 00000 n
-0000770756 00000 n
-0001190173 00000 n
+0000772131 00000 n
+0001191602 00000 n
0000019566 00000 n
0000019611 00000 n
-0000774197 00000 n
-0001190040 00000 n
+0000775572 00000 n
+0001191469 00000 n
0000019659 00000 n
0000019691 00000 n
-0000774326 00000 n
-0001189922 00000 n
+0000775701 00000 n
+0001191351 00000 n
0000019740 00000 n
0000019779 00000 n
-0000774455 00000 n
-0001189857 00000 n
+0000775830 00000 n
+0001191286 00000 n
0000019833 00000 n
0000019894 00000 n
-0000778137 00000 n
-0001189725 00000 n
+0000779512 00000 n
+0001191154 00000 n
0000019943 00000 n
0000020000 00000 n
-0000778266 00000 n
-0001189660 00000 n
+0000779641 00000 n
+0001191089 00000 n
0000020054 00000 n
0000020103 00000 n
-0000778395 00000 n
-0001189528 00000 n
+0000779770 00000 n
+0001190957 00000 n
0000020152 00000 n
0000020214 00000 n
-0000778524 00000 n
-0001189449 00000 n
+0000779899 00000 n
+0001190878 00000 n
0000020268 00000 n
0000020323 00000 n
-0000803366 00000 n
-0001189356 00000 n
+0000804741 00000 n
+0001190785 00000 n
0000020377 00000 n
0000020418 00000 n
-0000803495 00000 n
-0001189277 00000 n
+0000804870 00000 n
+0001190706 00000 n
0000020472 00000 n
0000020524 00000 n
-0000803884 00000 n
-0001189159 00000 n
+0000805259 00000 n
+0001190588 00000 n
0000020573 00000 n
0000020623 00000 n
-0000806705 00000 n
-0001189080 00000 n
+0000808080 00000 n
+0001190509 00000 n
0000020677 00000 n
0000020715 00000 n
-0000806834 00000 n
-0001188987 00000 n
+0000808209 00000 n
+0001190416 00000 n
0000020769 00000 n
0000020806 00000 n
-0000806963 00000 n
-0001188894 00000 n
+0000808338 00000 n
+0001190323 00000 n
0000020860 00000 n
0000020898 00000 n
-0000807092 00000 n
-0001188801 00000 n
+0000808467 00000 n
+0001190230 00000 n
0000020952 00000 n
0000021004 00000 n
-0000810328 00000 n
-0001188708 00000 n
+0000811703 00000 n
+0001190137 00000 n
0000021058 00000 n
0000021101 00000 n
-0000810456 00000 n
-0001188576 00000 n
+0000811831 00000 n
+0001190005 00000 n
0000021155 00000 n
0000021200 00000 n
-0000810584 00000 n
-0001188497 00000 n
+0000811959 00000 n
+0001189926 00000 n
0000021259 00000 n
0000021325 00000 n
-0000813570 00000 n
-0001188404 00000 n
+0000814945 00000 n
+0001189833 00000 n
0000021384 00000 n
0000021472 00000 n
-0000813699 00000 n
-0001188311 00000 n
+0000815074 00000 n
+0001189740 00000 n
0000021531 00000 n
0000021606 00000 n
-0000813828 00000 n
-0001188218 00000 n
+0000815203 00000 n
+0001189647 00000 n
0000021665 00000 n
0000021750 00000 n
-0000816736 00000 n
-0001188125 00000 n
+0000818111 00000 n
+0001189554 00000 n
0000021809 00000 n
0000021890 00000 n
-0000819197 00000 n
-0001188046 00000 n
+0000820572 00000 n
+0001189475 00000 n
0000021949 00000 n
0000022033 00000 n
-0000819326 00000 n
-0001187967 00000 n
+0000820701 00000 n
+0001189396 00000 n
0000022087 00000 n
0000022131 00000 n
-0000822226 00000 n
-0001187847 00000 n
+0000823601 00000 n
+0001189276 00000 n
0000022179 00000 n
0000022213 00000 n
-0000822355 00000 n
-0001187768 00000 n
+0000823730 00000 n
+0001189197 00000 n
0000022262 00000 n
0000022289 00000 n
-0000844742 00000 n
-0001187675 00000 n
+0000846117 00000 n
+0001189104 00000 n
0000022338 00000 n
0000022366 00000 n
-0000848433 00000 n
-0001187582 00000 n
+0000849808 00000 n
+0001189011 00000 n
0000022415 00000 n
0000022455 00000 n
-0000854517 00000 n
-0001187489 00000 n
+0000855892 00000 n
+0001188918 00000 n
0000022504 00000 n
0000022547 00000 n
-0000864964 00000 n
-0001187396 00000 n
+0000866339 00000 n
+0001188825 00000 n
0000022596 00000 n
0000022633 00000 n
-0000875468 00000 n
-0001187303 00000 n
+0000876843 00000 n
+0001188732 00000 n
0000022682 00000 n
0000022719 00000 n
-0000878133 00000 n
-0001187210 00000 n
+0000879508 00000 n
+0001188639 00000 n
0000022768 00000 n
0000022806 00000 n
-0000885163 00000 n
-0001187117 00000 n
+0000886538 00000 n
+0001188546 00000 n
0000022855 00000 n
0000022894 00000 n
-0000902783 00000 n
-0001187024 00000 n
+0000904158 00000 n
+0001188453 00000 n
0000022943 00000 n
0000022980 00000 n
-0000906117 00000 n
-0001186931 00000 n
+0000907492 00000 n
+0001188360 00000 n
0000023030 00000 n
0000023070 00000 n
-0000908927 00000 n
-0001186838 00000 n
+0000910302 00000 n
+0001188267 00000 n
0000023120 00000 n
0000023160 00000 n
-0000918702 00000 n
-0001186745 00000 n
+0000920077 00000 n
+0001188174 00000 n
0000023210 00000 n
0000023240 00000 n
-0000927789 00000 n
-0001186652 00000 n
+0000929215 00000 n
+0001188081 00000 n
0000023290 00000 n
0000023333 00000 n
-0000932077 00000 n
-0001186559 00000 n
+0000933503 00000 n
+0001187988 00000 n
0000023383 00000 n
0000023416 00000 n
-0000946014 00000 n
-0001186466 00000 n
+0000947440 00000 n
+0001187895 00000 n
0000023466 00000 n
0000023495 00000 n
-0000949244 00000 n
-0001186373 00000 n
+0000950670 00000 n
+0001187802 00000 n
0000023545 00000 n
0000023579 00000 n
-0000955158 00000 n
-0001186280 00000 n
+0000956584 00000 n
+0001187709 00000 n
0000023629 00000 n
0000023666 00000 n
-0000961918 00000 n
-0001186187 00000 n
+0000963344 00000 n
+0001187616 00000 n
0000023716 00000 n
0000023753 00000 n
-0000964275 00000 n
-0001186094 00000 n
+0000965701 00000 n
+0001187523 00000 n
0000023803 00000 n
0000023836 00000 n
-0000964729 00000 n
-0001186001 00000 n
+0000966155 00000 n
+0001187430 00000 n
0000023886 00000 n
0000023920 00000 n
-0000967495 00000 n
-0001185908 00000 n
+0000968921 00000 n
+0001187337 00000 n
0000023970 00000 n
0000024009 00000 n
-0000970105 00000 n
-0001185829 00000 n
+0000971531 00000 n
+0001187258 00000 n
0000024059 00000 n
0000024093 00000 n
0000024466 00000 n
@@ -17665,10 +17593,10 @@ xref
0000024146 00000 n
0000289263 00000 n
0000289326 00000 n
-0001179909 00000 n
-0001153767 00000 n
-0001179735 00000 n
-0001180955 00000 n
+0001181338 00000 n
+0001155196 00000 n
+0001181164 00000 n
+0001182384 00000 n
0000025897 00000 n
0000026090 00000 n
0000026170 00000 n
@@ -17688,12 +17616,12 @@ xref
0000290644 00000 n
0000289489 00000 n
0000290766 00000 n
-0001152531 00000 n
-0001125912 00000 n
-0001152357 00000 n
-0001125227 00000 n
-0001123083 00000 n
-0001125063 00000 n
+0001153960 00000 n
+0001127341 00000 n
+0001153786 00000 n
+0001126656 00000 n
+0001124511 00000 n
+0001126492 00000 n
0000302580 00000 n
0000293880 00000 n
0000290914 00000 n
@@ -17749,1789 +17677,1789 @@ xref
0000301987 00000 n
0000302143 00000 n
0000302299 00000 n
-0000316090 00000 n
-0000306021 00000 n
+0000316087 00000 n
+0000306019 00000 n
0000302665 00000 n
-0000316025 00000 n
-0001122495 00000 n
-0001105074 00000 n
-0001122309 00000 n
-0000306671 00000 n
-0000306835 00000 n
-0000306998 00000 n
-0000307162 00000 n
-0000307321 00000 n
-0000307485 00000 n
-0000307649 00000 n
-0000307813 00000 n
-0000307977 00000 n
-0000308141 00000 n
-0000308305 00000 n
-0000308469 00000 n
-0000308633 00000 n
-0000308797 00000 n
-0000308962 00000 n
-0000309127 00000 n
-0000309292 00000 n
-0000309457 00000 n
-0000309617 00000 n
-0000309782 00000 n
-0000309946 00000 n
-0000310106 00000 n
-0000310271 00000 n
-0000310441 00000 n
-0000310611 00000 n
-0000310781 00000 n
-0000310945 00000 n
-0000311114 00000 n
-0000311284 00000 n
-0000311454 00000 n
-0000311618 00000 n
-0000311783 00000 n
-0000311948 00000 n
-0000312113 00000 n
-0000312273 00000 n
-0000312438 00000 n
-0000312603 00000 n
-0000312760 00000 n
-0000312919 00000 n
-0000313078 00000 n
-0000313234 00000 n
-0000313393 00000 n
-0000313557 00000 n
-0000313726 00000 n
-0000313895 00000 n
-0000314059 00000 n
-0000314228 00000 n
-0000314397 00000 n
-0000314556 00000 n
-0000314720 00000 n
-0000314884 00000 n
-0000315048 00000 n
-0000315212 00000 n
-0000315376 00000 n
-0000315540 00000 n
-0000315702 00000 n
-0000315863 00000 n
-0000330246 00000 n
-0000319699 00000 n
-0000316190 00000 n
-0000330181 00000 n
-0000320367 00000 n
-0000320531 00000 n
-0000320700 00000 n
-0000320869 00000 n
-0000321037 00000 n
-0000321201 00000 n
-0000321365 00000 n
-0000321529 00000 n
-0000321693 00000 n
-0000321857 00000 n
-0000322020 00000 n
-0000322189 00000 n
-0000322358 00000 n
-0000322526 00000 n
-0000322695 00000 n
-0000322864 00000 n
-0000323033 00000 n
-0000323202 00000 n
-0000323371 00000 n
-0000323539 00000 n
-0000323709 00000 n
-0000323879 00000 n
-0000324049 00000 n
-0000324219 00000 n
-0000324389 00000 n
-0000324559 00000 n
-0000324729 00000 n
-0000324899 00000 n
-0000325068 00000 n
-0000325238 00000 n
-0000325407 00000 n
-0000325571 00000 n
-0000325735 00000 n
-0000325899 00000 n
-0000326063 00000 n
-0000326227 00000 n
-0000326390 00000 n
-0000326554 00000 n
-0000326718 00000 n
-0000326881 00000 n
-0000327045 00000 n
-0000327209 00000 n
-0000327373 00000 n
-0000327542 00000 n
-0000327711 00000 n
-0000327879 00000 n
-0000328048 00000 n
-0000328206 00000 n
-0000328368 00000 n
-0000328536 00000 n
-0000328703 00000 n
-0000328866 00000 n
-0000329029 00000 n
-0000329192 00000 n
-0000329355 00000 n
-0000329523 00000 n
-0000329690 00000 n
-0000329856 00000 n
-0000330021 00000 n
-0000343434 00000 n
-0000333860 00000 n
-0000330346 00000 n
-0000343369 00000 n
-0000334492 00000 n
-0000334655 00000 n
-0000334813 00000 n
-0000334981 00000 n
-0000335144 00000 n
-0000335312 00000 n
-0000335480 00000 n
-0000335648 00000 n
-0001104183 00000 n
-0001082849 00000 n
-0001104007 00000 n
-0000335815 00000 n
-0000335982 00000 n
-0000336138 00000 n
-0000336295 00000 n
-0000336453 00000 n
-0000336616 00000 n
-0000336779 00000 n
-0000336937 00000 n
-0000337093 00000 n
-0000337251 00000 n
-0000337414 00000 n
-0000337572 00000 n
-0000337730 00000 n
-0000337887 00000 n
-0000338045 00000 n
-0000338208 00000 n
-0000338365 00000 n
-0000338527 00000 n
-0000338685 00000 n
-0000338848 00000 n
-0000339011 00000 n
-0000339174 00000 n
-0000339332 00000 n
-0000339495 00000 n
-0000339658 00000 n
-0000339821 00000 n
-0000339984 00000 n
-0000340147 00000 n
-0000340310 00000 n
-0000340478 00000 n
-0000340646 00000 n
-0000340813 00000 n
-0000340980 00000 n
-0000341148 00000 n
-0000341316 00000 n
-0000341479 00000 n
-0000341635 00000 n
-0000341793 00000 n
-0000341951 00000 n
-0000342109 00000 n
-0000342267 00000 n
-0000342425 00000 n
-0000342583 00000 n
-0000342741 00000 n
-0000342899 00000 n
-0000343055 00000 n
-0000343212 00000 n
-0000346477 00000 n
-0000344429 00000 n
-0000343548 00000 n
-0000346412 00000 n
-0000344666 00000 n
-0000344825 00000 n
-0000344984 00000 n
-0000345142 00000 n
-0001081870 00000 n
-0001061743 00000 n
-0001081695 00000 n
-0000345301 00000 n
-0000345460 00000 n
-0000345619 00000 n
-0000345778 00000 n
-0000345937 00000 n
-0000346095 00000 n
-0000346254 00000 n
-0001181076 00000 n
-0000349600 00000 n
-0000348833 00000 n
-0000346578 00000 n
-0000349021 00000 n
-0000349149 00000 n
-0000349277 00000 n
-0000349405 00000 n
-0000349470 00000 n
-0000349535 00000 n
-0001060901 00000 n
-0001042201 00000 n
-0001060726 00000 n
-0000354137 00000 n
-0000352996 00000 n
-0000349728 00000 n
-0000353498 00000 n
-0000353563 00000 n
-0000353690 00000 n
-0000353818 00000 n
-0000353946 00000 n
-0000353152 00000 n
-0000353346 00000 n
-0000354072 00000 n
-0000717161 00000 n
-0000778588 00000 n
-0000358819 00000 n
-0000357761 00000 n
-0000354265 00000 n
-0000358242 00000 n
-0000358370 00000 n
-0000357917 00000 n
-0000358080 00000 n
-0000358498 00000 n
-0000358626 00000 n
-0000358754 00000 n
-0000374616 00000 n
-0000362060 00000 n
-0000361485 00000 n
-0000358947 00000 n
-0000361611 00000 n
-0000361739 00000 n
-0000361867 00000 n
-0000361995 00000 n
-0000365518 00000 n
-0000364352 00000 n
-0000362174 00000 n
-0000364814 00000 n
-0000364942 00000 n
-0000365070 00000 n
-0000365198 00000 n
-0000365326 00000 n
-0000364508 00000 n
-0000364661 00000 n
-0000365453 00000 n
-0000633823 00000 n
-0000366595 00000 n
-0000366276 00000 n
-0000365604 00000 n
-0000366402 00000 n
-0000366530 00000 n
-0001181201 00000 n
-0000368638 00000 n
-0000367935 00000 n
-0000366695 00000 n
-0000368061 00000 n
-0000368189 00000 n
-0000368316 00000 n
-0000368444 00000 n
-0000368573 00000 n
-0000371217 00000 n
-0000370587 00000 n
-0000368738 00000 n
-0000370893 00000 n
-0000371022 00000 n
-0000371087 00000 n
-0000371152 00000 n
-0000370734 00000 n
-0000614670 00000 n
-0000374810 00000 n
-0000374105 00000 n
-0000371331 00000 n
-0000374231 00000 n
-0000374360 00000 n
-0000374487 00000 n
-0001041495 00000 n
-0001028946 00000 n
-0001041316 00000 n
-0000374745 00000 n
-0000379465 00000 n
-0000378575 00000 n
-0000374938 00000 n
-0000379400 00000 n
-0001028365 00000 n
-0001017099 00000 n
-0001028186 00000 n
-0000378749 00000 n
-0000378904 00000 n
-0000379074 00000 n
-0000379229 00000 n
-0000530943 00000 n
-0000707278 00000 n
-0000383066 00000 n
-0000382875 00000 n
-0000379634 00000 n
-0000383001 00000 n
-0000387285 00000 n
-0000387094 00000 n
-0000383221 00000 n
-0000387220 00000 n
-0001016744 00000 n
-0001014745 00000 n
-0001016579 00000 n
-0001181326 00000 n
-0000391413 00000 n
-0000391014 00000 n
-0000387455 00000 n
-0000391348 00000 n
-0000391161 00000 n
-0000495322 00000 n
-0000392976 00000 n
-0000392527 00000 n
-0000391541 00000 n
-0000392653 00000 n
-0000392782 00000 n
-0000392846 00000 n
-0000392911 00000 n
-0000395743 00000 n
-0000398333 00000 n
-0000395578 00000 n
-0000393090 00000 n
-0000397881 00000 n
-0000398010 00000 n
-0000398139 00000 n
-0000397386 00000 n
-0000397548 00000 n
-0001013839 00000 n
-0001003819 00000 n
-0001013665 00000 n
-0001003255 00000 n
-0000994169 00000 n
-0001003080 00000 n
-0000398268 00000 n
-0000397710 00000 n
-0000397215 00000 n
-0000397273 00000 n
-0000397363 00000 n
-0000548027 00000 n
-0000588952 00000 n
-0000403100 00000 n
-0000402164 00000 n
-0000398504 00000 n
-0000402648 00000 n
-0000402777 00000 n
-0000402906 00000 n
-0000402320 00000 n
-0000402486 00000 n
-0000403035 00000 n
-0000782619 00000 n
-0000407018 00000 n
-0000406509 00000 n
-0000403256 00000 n
-0000406824 00000 n
-0000406953 00000 n
-0000406656 00000 n
-0000408166 00000 n
-0000407975 00000 n
-0000407159 00000 n
-0000408101 00000 n
-0001181451 00000 n
-0000410032 00000 n
-0000409712 00000 n
-0000408267 00000 n
-0000409838 00000 n
-0000409967 00000 n
-0000413327 00000 n
-0000412492 00000 n
-0000410146 00000 n
-0000412618 00000 n
-0000412747 00000 n
-0000412876 00000 n
-0000413004 00000 n
-0000413133 00000 n
-0000413262 00000 n
-0000417381 00000 n
-0000416485 00000 n
-0000413469 00000 n
-0000416802 00000 n
-0000416931 00000 n
-0000417059 00000 n
-0000416632 00000 n
-0000417187 00000 n
-0000417316 00000 n
-0000421408 00000 n
-0000420830 00000 n
-0000417522 00000 n
-0000420956 00000 n
-0000421085 00000 n
-0000421214 00000 n
-0000421343 00000 n
-0000425335 00000 n
-0000424886 00000 n
-0000421550 00000 n
-0000425012 00000 n
-0000425141 00000 n
-0000425270 00000 n
-0000427648 00000 n
-0000427457 00000 n
-0000425463 00000 n
-0000427583 00000 n
-0001181576 00000 n
-0000430916 00000 n
-0000430338 00000 n
-0000427792 00000 n
-0000430464 00000 n
-0000993894 00000 n
-0000990536 00000 n
-0000993715 00000 n
-0000430593 00000 n
-0000430722 00000 n
-0000430851 00000 n
-0000435183 00000 n
-0000434504 00000 n
-0000431087 00000 n
-0000434989 00000 n
-0000435118 00000 n
-0000434660 00000 n
-0000434824 00000 n
-0000865028 00000 n
-0000878197 00000 n
-0000438549 00000 n
-0000437845 00000 n
-0000435311 00000 n
-0000437971 00000 n
-0000438100 00000 n
-0000438229 00000 n
-0000438358 00000 n
-0000438485 00000 n
-0000441954 00000 n
-0000440991 00000 n
-0000438663 00000 n
-0000441117 00000 n
-0000441246 00000 n
-0000441375 00000 n
-0000441503 00000 n
-0000441632 00000 n
-0000441760 00000 n
-0000441889 00000 n
-0000446076 00000 n
-0000445317 00000 n
-0000442082 00000 n
-0000445624 00000 n
-0000445753 00000 n
-0000445882 00000 n
-0000445464 00000 n
-0000446011 00000 n
-0000662092 00000 n
-0000449607 00000 n
-0000449158 00000 n
-0000446190 00000 n
-0000449284 00000 n
-0000449413 00000 n
-0000449542 00000 n
-0001181701 00000 n
-0000452403 00000 n
-0000451955 00000 n
-0000449777 00000 n
-0000452081 00000 n
-0000452210 00000 n
-0000452338 00000 n
-0000455121 00000 n
-0000454801 00000 n
-0000452560 00000 n
-0000454927 00000 n
-0000455056 00000 n
-0000458029 00000 n
-0000457193 00000 n
-0000455235 00000 n
-0000457319 00000 n
-0000457448 00000 n
-0000457577 00000 n
-0000457706 00000 n
-0000457835 00000 n
-0000457964 00000 n
-0000460661 00000 n
-0000460341 00000 n
-0000458143 00000 n
-0000460467 00000 n
-0000460596 00000 n
-0000466379 00000 n
-0000463599 00000 n
-0000463150 00000 n
-0000460775 00000 n
-0000463276 00000 n
-0000463405 00000 n
-0000463534 00000 n
-0000467918 00000 n
-0000466232 00000 n
-0000463727 00000 n
-0000467466 00000 n
-0000467595 00000 n
-0000467305 00000 n
-0000467724 00000 n
-0000467853 00000 n
-0001181826 00000 n
-0000778330 00000 n
-0000470661 00000 n
-0000470083 00000 n
-0000468089 00000 n
-0000470209 00000 n
-0000470338 00000 n
-0000470467 00000 n
-0000470596 00000 n
-0000471102 00000 n
-0000470911 00000 n
-0000470761 00000 n
-0000471037 00000 n
-0000475189 00000 n
-0000474423 00000 n
-0000471144 00000 n
-0000474737 00000 n
-0000474866 00000 n
-0000474994 00000 n
-0000475059 00000 n
-0000475124 00000 n
-0000474570 00000 n
-0000479687 00000 n
-0000479879 00000 n
-0000479432 00000 n
-0000475289 00000 n
-0000479558 00000 n
-0000479814 00000 n
-0000483731 00000 n
-0000483153 00000 n
-0000480007 00000 n
-0000483279 00000 n
-0000483408 00000 n
-0000483537 00000 n
-0000483666 00000 n
-0000486841 00000 n
-0000486263 00000 n
-0000483872 00000 n
-0000486389 00000 n
-0000486518 00000 n
-0000486647 00000 n
-0000486712 00000 n
-0000486776 00000 n
-0001181951 00000 n
-0000490202 00000 n
-0000489498 00000 n
-0000486998 00000 n
-0000489624 00000 n
-0000489753 00000 n
-0000489881 00000 n
-0000489946 00000 n
-0000490011 00000 n
-0000490137 00000 n
-0000495515 00000 n
-0000494727 00000 n
-0000490316 00000 n
-0000495193 00000 n
-0000494883 00000 n
-0000495034 00000 n
-0000495451 00000 n
-0000971515 00000 n
-0000499382 00000 n
-0000498111 00000 n
-0000495656 00000 n
-0000498801 00000 n
-0000498930 00000 n
-0000499059 00000 n
-0000499188 00000 n
-0000498276 00000 n
-0000498428 00000 n
-0000498614 00000 n
-0000499317 00000 n
-0000503529 00000 n
-0000503080 00000 n
-0000499510 00000 n
-0000503206 00000 n
-0000503335 00000 n
-0000503464 00000 n
-0000507435 00000 n
-0000507056 00000 n
-0000503657 00000 n
-0000507370 00000 n
-0000507203 00000 n
-0000510285 00000 n
-0000510480 00000 n
-0000510030 00000 n
-0000507549 00000 n
-0000510156 00000 n
-0000510350 00000 n
-0000510415 00000 n
-0001182076 00000 n
-0000513432 00000 n
-0000513241 00000 n
-0000510594 00000 n
-0000513367 00000 n
-0000517032 00000 n
-0000516586 00000 n
-0000513546 00000 n
-0000516712 00000 n
-0000516839 00000 n
-0000516904 00000 n
+0000316022 00000 n
+0001123923 00000 n
+0001106502 00000 n
+0001123737 00000 n
+0000306669 00000 n
+0000306833 00000 n
+0000306996 00000 n
+0000307160 00000 n
+0000307319 00000 n
+0000307483 00000 n
+0000307647 00000 n
+0000307811 00000 n
+0000307975 00000 n
+0000308139 00000 n
+0000308303 00000 n
+0000308467 00000 n
+0000308631 00000 n
+0000308795 00000 n
+0000308960 00000 n
+0000309125 00000 n
+0000309290 00000 n
+0000309455 00000 n
+0000309615 00000 n
+0000309780 00000 n
+0000309944 00000 n
+0000310104 00000 n
+0000310269 00000 n
+0000310439 00000 n
+0000310609 00000 n
+0000310779 00000 n
+0000310943 00000 n
+0000311112 00000 n
+0000311282 00000 n
+0000311452 00000 n
+0000311616 00000 n
+0000311781 00000 n
+0000311946 00000 n
+0000312111 00000 n
+0000312271 00000 n
+0000312436 00000 n
+0000312601 00000 n
+0000312758 00000 n
+0000312917 00000 n
+0000313076 00000 n
+0000313232 00000 n
+0000313391 00000 n
+0000313555 00000 n
+0000313724 00000 n
+0000313893 00000 n
+0000314057 00000 n
+0000314226 00000 n
+0000314395 00000 n
+0000314554 00000 n
+0000314718 00000 n
+0000314882 00000 n
+0000315046 00000 n
+0000315210 00000 n
+0000315373 00000 n
+0000315537 00000 n
+0000315699 00000 n
+0000315860 00000 n
+0000330244 00000 n
+0000319697 00000 n
+0000316187 00000 n
+0000330179 00000 n
+0000320365 00000 n
+0000320529 00000 n
+0000320698 00000 n
+0000320867 00000 n
+0000321035 00000 n
+0000321199 00000 n
+0000321363 00000 n
+0000321527 00000 n
+0000321691 00000 n
+0000321855 00000 n
+0000322018 00000 n
+0000322187 00000 n
+0000322356 00000 n
+0000322524 00000 n
+0000322693 00000 n
+0000322862 00000 n
+0000323031 00000 n
+0000323200 00000 n
+0000323369 00000 n
+0000323537 00000 n
+0000323707 00000 n
+0000323877 00000 n
+0000324047 00000 n
+0000324217 00000 n
+0000324387 00000 n
+0000324557 00000 n
+0000324727 00000 n
+0000324897 00000 n
+0000325066 00000 n
+0000325236 00000 n
+0000325405 00000 n
+0000325569 00000 n
+0000325733 00000 n
+0000325897 00000 n
+0000326061 00000 n
+0000326225 00000 n
+0000326388 00000 n
+0000326552 00000 n
+0000326716 00000 n
+0000326879 00000 n
+0000327043 00000 n
+0000327207 00000 n
+0000327371 00000 n
+0000327540 00000 n
+0000327709 00000 n
+0000327877 00000 n
+0000328046 00000 n
+0000328204 00000 n
+0000328366 00000 n
+0000328534 00000 n
+0000328701 00000 n
+0000328864 00000 n
+0000329027 00000 n
+0000329190 00000 n
+0000329353 00000 n
+0000329521 00000 n
+0000329688 00000 n
+0000329854 00000 n
+0000330019 00000 n
+0000343432 00000 n
+0000333858 00000 n
+0000330344 00000 n
+0000343367 00000 n
+0000334490 00000 n
+0000334653 00000 n
+0000334811 00000 n
+0000334979 00000 n
+0000335142 00000 n
+0000335310 00000 n
+0000335478 00000 n
+0000335646 00000 n
+0001105611 00000 n
+0001084277 00000 n
+0001105435 00000 n
+0000335813 00000 n
+0000335980 00000 n
+0000336136 00000 n
+0000336293 00000 n
+0000336451 00000 n
+0000336614 00000 n
+0000336777 00000 n
+0000336935 00000 n
+0000337091 00000 n
+0000337249 00000 n
+0000337412 00000 n
+0000337570 00000 n
+0000337728 00000 n
+0000337885 00000 n
+0000338043 00000 n
+0000338206 00000 n
+0000338363 00000 n
+0000338525 00000 n
+0000338683 00000 n
+0000338846 00000 n
+0000339009 00000 n
+0000339172 00000 n
+0000339330 00000 n
+0000339493 00000 n
+0000339656 00000 n
+0000339819 00000 n
+0000339982 00000 n
+0000340145 00000 n
+0000340308 00000 n
+0000340476 00000 n
+0000340644 00000 n
+0000340811 00000 n
+0000340978 00000 n
+0000341146 00000 n
+0000341314 00000 n
+0000341477 00000 n
+0000341633 00000 n
+0000341791 00000 n
+0000341949 00000 n
+0000342107 00000 n
+0000342265 00000 n
+0000342423 00000 n
+0000342581 00000 n
+0000342739 00000 n
+0000342897 00000 n
+0000343053 00000 n
+0000343210 00000 n
+0000346475 00000 n
+0000344427 00000 n
+0000343546 00000 n
+0000346410 00000 n
+0000344664 00000 n
+0000344823 00000 n
+0000344982 00000 n
+0000345140 00000 n
+0001083298 00000 n
+0001063171 00000 n
+0001083123 00000 n
+0000345299 00000 n
+0000345458 00000 n
+0000345617 00000 n
+0000345776 00000 n
+0000345935 00000 n
+0000346093 00000 n
+0000346252 00000 n
+0001182505 00000 n
+0000349598 00000 n
+0000348831 00000 n
+0000346576 00000 n
+0000349019 00000 n
+0000349147 00000 n
+0000349275 00000 n
+0000349403 00000 n
+0000349468 00000 n
+0000349533 00000 n
+0001062329 00000 n
+0001043629 00000 n
+0001062154 00000 n
+0000354135 00000 n
+0000352994 00000 n
+0000349726 00000 n
+0000353496 00000 n
+0000353561 00000 n
+0000353688 00000 n
+0000353816 00000 n
+0000353944 00000 n
+0000353150 00000 n
+0000353344 00000 n
+0000354070 00000 n
+0000718424 00000 n
+0000779963 00000 n
+0000358817 00000 n
+0000357759 00000 n
+0000354263 00000 n
+0000358240 00000 n
+0000358368 00000 n
+0000357915 00000 n
+0000358078 00000 n
+0000358496 00000 n
+0000358624 00000 n
+0000358752 00000 n
+0000374614 00000 n
+0000362058 00000 n
+0000361483 00000 n
+0000358945 00000 n
+0000361609 00000 n
+0000361737 00000 n
+0000361865 00000 n
+0000361993 00000 n
+0000365516 00000 n
+0000364350 00000 n
+0000362172 00000 n
+0000364812 00000 n
+0000364940 00000 n
+0000365068 00000 n
+0000365196 00000 n
+0000365324 00000 n
+0000364506 00000 n
+0000364659 00000 n
+0000365451 00000 n
+0000634490 00000 n
+0000366593 00000 n
+0000366274 00000 n
+0000365602 00000 n
+0000366400 00000 n
+0000366528 00000 n
+0001182630 00000 n
+0000368636 00000 n
+0000367933 00000 n
+0000366693 00000 n
+0000368059 00000 n
+0000368187 00000 n
+0000368314 00000 n
+0000368442 00000 n
+0000368571 00000 n
+0000371215 00000 n
+0000370585 00000 n
+0000368736 00000 n
+0000370891 00000 n
+0000371020 00000 n
+0000371085 00000 n
+0000371150 00000 n
+0000370732 00000 n
+0000615094 00000 n
+0000374808 00000 n
+0000374103 00000 n
+0000371329 00000 n
+0000374229 00000 n
+0000374358 00000 n
+0000374485 00000 n
+0001042923 00000 n
+0001030374 00000 n
+0001042744 00000 n
+0000374743 00000 n
+0000379463 00000 n
+0000378573 00000 n
+0000374936 00000 n
+0000379398 00000 n
+0001029793 00000 n
+0001018527 00000 n
+0001029614 00000 n
+0000378747 00000 n
+0000378902 00000 n
+0000379072 00000 n
+0000379227 00000 n
+0000531098 00000 n
+0000707756 00000 n
+0000383064 00000 n
+0000382873 00000 n
+0000379632 00000 n
+0000382999 00000 n
+0000387283 00000 n
+0000387092 00000 n
+0000383219 00000 n
+0000387218 00000 n
+0001018172 00000 n
+0001016174 00000 n
+0001018007 00000 n
+0001182755 00000 n
+0000391411 00000 n
+0000391012 00000 n
+0000387453 00000 n
+0000391346 00000 n
+0000391159 00000 n
+0000495449 00000 n
+0000392974 00000 n
+0000392525 00000 n
+0000391539 00000 n
+0000392651 00000 n
+0000392780 00000 n
+0000392844 00000 n
+0000392909 00000 n
+0000395741 00000 n
+0000398331 00000 n
+0000395576 00000 n
+0000393088 00000 n
+0000397879 00000 n
+0000398008 00000 n
+0000398137 00000 n
+0000397384 00000 n
+0000397546 00000 n
+0001015268 00000 n
+0001005248 00000 n
+0001015094 00000 n
+0001004684 00000 n
+0000995597 00000 n
+0001004509 00000 n
+0000398266 00000 n
+0000397708 00000 n
+0000397213 00000 n
+0000397271 00000 n
+0000397361 00000 n
+0000552406 00000 n
+0000592755 00000 n
+0000403098 00000 n
+0000402162 00000 n
+0000398502 00000 n
+0000402646 00000 n
+0000402775 00000 n
+0000402904 00000 n
+0000402318 00000 n
+0000402484 00000 n
+0000403033 00000 n
+0000783994 00000 n
+0000407016 00000 n
+0000406507 00000 n
+0000403254 00000 n
+0000406822 00000 n
+0000406951 00000 n
+0000406654 00000 n
+0000408164 00000 n
+0000407973 00000 n
+0000407157 00000 n
+0000408099 00000 n
+0001182880 00000 n
+0000410030 00000 n
+0000409710 00000 n
+0000408265 00000 n
+0000409836 00000 n
+0000409965 00000 n
+0000413325 00000 n
+0000412490 00000 n
+0000410144 00000 n
+0000412616 00000 n
+0000412745 00000 n
+0000412874 00000 n
+0000413002 00000 n
+0000413131 00000 n
+0000413260 00000 n
+0000417379 00000 n
+0000416483 00000 n
+0000413467 00000 n
+0000416800 00000 n
+0000416929 00000 n
+0000417057 00000 n
+0000416630 00000 n
+0000417185 00000 n
+0000417314 00000 n
+0000421406 00000 n
+0000420828 00000 n
+0000417520 00000 n
+0000420954 00000 n
+0000421083 00000 n
+0000421212 00000 n
+0000421341 00000 n
+0000425333 00000 n
+0000424884 00000 n
+0000421548 00000 n
+0000425010 00000 n
+0000425139 00000 n
+0000425268 00000 n
+0000427646 00000 n
+0000427455 00000 n
+0000425461 00000 n
+0000427581 00000 n
+0001183005 00000 n
+0000430914 00000 n
+0000430336 00000 n
+0000427790 00000 n
+0000430462 00000 n
+0000995322 00000 n
+0000991962 00000 n
+0000995143 00000 n
+0000430591 00000 n
+0000430720 00000 n
+0000430849 00000 n
+0000435181 00000 n
+0000434502 00000 n
+0000431085 00000 n
+0000434987 00000 n
+0000435116 00000 n
+0000434658 00000 n
+0000434822 00000 n
+0000866403 00000 n
+0000879572 00000 n
+0000438547 00000 n
+0000437843 00000 n
+0000435309 00000 n
+0000437969 00000 n
+0000438098 00000 n
+0000438227 00000 n
+0000438356 00000 n
+0000438483 00000 n
+0000441952 00000 n
+0000440989 00000 n
+0000438661 00000 n
+0000441115 00000 n
+0000441244 00000 n
+0000441373 00000 n
+0000441501 00000 n
+0000441630 00000 n
+0000441758 00000 n
+0000441887 00000 n
+0000446074 00000 n
+0000445315 00000 n
+0000442080 00000 n
+0000445622 00000 n
+0000445751 00000 n
+0000445880 00000 n
+0000445462 00000 n
+0000446009 00000 n
+0000666899 00000 n
+0000449605 00000 n
+0000449156 00000 n
+0000446188 00000 n
+0000449282 00000 n
+0000449411 00000 n
+0000449540 00000 n
+0001183130 00000 n
+0000452401 00000 n
+0000451953 00000 n
+0000449775 00000 n
+0000452079 00000 n
+0000452208 00000 n
+0000452336 00000 n
+0000455119 00000 n
+0000454799 00000 n
+0000452558 00000 n
+0000454925 00000 n
+0000455054 00000 n
+0000458027 00000 n
+0000457191 00000 n
+0000455233 00000 n
+0000457317 00000 n
+0000457446 00000 n
+0000457575 00000 n
+0000457704 00000 n
+0000457833 00000 n
+0000457962 00000 n
+0000460659 00000 n
+0000460339 00000 n
+0000458141 00000 n
+0000460465 00000 n
+0000460594 00000 n
+0000466377 00000 n
+0000463597 00000 n
+0000463148 00000 n
+0000460773 00000 n
+0000463274 00000 n
+0000463403 00000 n
+0000463532 00000 n
+0000467916 00000 n
+0000466230 00000 n
+0000463725 00000 n
+0000467464 00000 n
+0000467593 00000 n
+0000467303 00000 n
+0000467722 00000 n
+0000467851 00000 n
+0001183255 00000 n
+0000779705 00000 n
+0000470659 00000 n
+0000470081 00000 n
+0000468087 00000 n
+0000470207 00000 n
+0000470336 00000 n
+0000470465 00000 n
+0000470594 00000 n
+0000471100 00000 n
+0000470909 00000 n
+0000470759 00000 n
+0000471035 00000 n
+0000475187 00000 n
+0000474421 00000 n
+0000471142 00000 n
+0000474735 00000 n
+0000474864 00000 n
+0000474992 00000 n
+0000475057 00000 n
+0000475122 00000 n
+0000474568 00000 n
+0000483417 00000 n
+0000479882 00000 n
+0000479691 00000 n
+0000475287 00000 n
+0000479817 00000 n
+0000483869 00000 n
+0000483162 00000 n
+0000480024 00000 n
+0000483288 00000 n
+0000483546 00000 n
+0000483675 00000 n
+0000483804 00000 n
+0000486788 00000 n
+0000486082 00000 n
+0000484010 00000 n
+0000486208 00000 n
+0000486337 00000 n
+0000486466 00000 n
+0000486595 00000 n
+0000486660 00000 n
+0000486724 00000 n
+0001183380 00000 n
+0000490157 00000 n
+0000489581 00000 n
+0000486945 00000 n
+0000489707 00000 n
+0000489835 00000 n
+0000489964 00000 n
+0000490028 00000 n
+0000490092 00000 n
+0000495514 00000 n
+0000494726 00000 n
+0000490271 00000 n
+0000495192 00000 n
+0000495321 00000 n
+0000494882 00000 n
+0000495033 00000 n
+0000972941 00000 n
+0000499500 00000 n
+0000498100 00000 n
+0000495655 00000 n
+0000498791 00000 n
+0000498920 00000 n
+0000499049 00000 n
+0000499178 00000 n
+0000499307 00000 n
+0000498265 00000 n
+0000498417 00000 n
+0000498604 00000 n
+0000499435 00000 n
+0000503328 00000 n
+0000502879 00000 n
+0000499628 00000 n
+0000503005 00000 n
+0000503134 00000 n
+0000503263 00000 n
+0000507556 00000 n
+0000507177 00000 n
+0000503456 00000 n
+0000507491 00000 n
+0000507324 00000 n
+0000510064 00000 n
+0000510257 00000 n
+0000509809 00000 n
+0000507670 00000 n
+0000509935 00000 n
+0000510129 00000 n
+0000510193 00000 n
+0001183505 00000 n
+0000513561 00000 n
+0000513370 00000 n
+0000510371 00000 n
+0000513496 00000 n
+0000517161 00000 n
+0000516715 00000 n
+0000513675 00000 n
+0000516841 00000 n
0000516968 00000 n
-0000520133 00000 n
-0000519813 00000 n
-0000517146 00000 n
-0000519939 00000 n
+0000517033 00000 n
+0000517097 00000 n
+0000520262 00000 n
+0000519942 00000 n
+0000517275 00000 n
0000520068 00000 n
-0000523420 00000 n
-0000522379 00000 n
-0000520247 00000 n
-0000522839 00000 n
+0000520197 00000 n
+0000523549 00000 n
+0000522508 00000 n
+0000520376 00000 n
0000522968 00000 n
-0000522535 00000 n
-0000522688 00000 n
0000523097 00000 n
+0000522664 00000 n
+0000522817 00000 n
0000523226 00000 n
0000523355 00000 n
-0000524913 00000 n
-0000524722 00000 n
-0000523534 00000 n
-0000524848 00000 n
-0000526506 00000 n
-0000526315 00000 n
-0000525014 00000 n
-0000526441 00000 n
-0001182201 00000 n
-0000527952 00000 n
-0000527761 00000 n
-0000526607 00000 n
-0000527887 00000 n
-0000531008 00000 n
-0000530688 00000 n
-0000528053 00000 n
-0000530814 00000 n
-0000535222 00000 n
-0000535031 00000 n
-0000531136 00000 n
-0000535157 00000 n
-0000539635 00000 n
-0000539088 00000 n
-0000535364 00000 n
-0000539570 00000 n
-0000539244 00000 n
-0000539400 00000 n
-0000746210 00000 n
-0000543916 00000 n
-0000543517 00000 n
-0000539763 00000 n
-0000543851 00000 n
-0000543664 00000 n
-0000548092 00000 n
-0000547581 00000 n
-0000544058 00000 n
-0000547899 00000 n
-0000547728 00000 n
-0001182326 00000 n
-0000551958 00000 n
-0000551637 00000 n
-0000548220 00000 n
-0000551763 00000 n
-0000551828 00000 n
-0000551893 00000 n
-0000556157 00000 n
-0000555791 00000 n
-0000552072 00000 n
-0000556092 00000 n
-0000555938 00000 n
-0000561536 00000 n
-0000560404 00000 n
-0000556328 00000 n
-0000561471 00000 n
-0000560587 00000 n
-0000560744 00000 n
-0000560928 00000 n
-0000561101 00000 n
-0000561286 00000 n
-0000653338 00000 n
-0000565751 00000 n
-0000565560 00000 n
-0000561691 00000 n
-0000565686 00000 n
-0000569601 00000 n
-0000569410 00000 n
-0000565865 00000 n
-0000569536 00000 n
-0000574507 00000 n
-0000573521 00000 n
-0000569715 00000 n
-0000574185 00000 n
-0000573686 00000 n
-0000573851 00000 n
-0000574313 00000 n
-0000574015 00000 n
-0000574442 00000 n
-0001182451 00000 n
-0000671452 00000 n
-0000578042 00000 n
-0000577536 00000 n
-0000574621 00000 n
-0000577849 00000 n
-0000577977 00000 n
-0000577683 00000 n
-0000582165 00000 n
-0000581473 00000 n
-0000578199 00000 n
-0000581971 00000 n
-0000581629 00000 n
-0000581800 00000 n
-0000582100 00000 n
-0000766044 00000 n
-0000586091 00000 n
-0000585772 00000 n
-0000582293 00000 n
-0000585898 00000 n
-0000586026 00000 n
-0000589017 00000 n
-0000588697 00000 n
-0000586205 00000 n
-0000588823 00000 n
-0000592964 00000 n
-0000592773 00000 n
-0000589188 00000 n
-0000592899 00000 n
-0000596056 00000 n
-0000595865 00000 n
-0000593078 00000 n
-0000595991 00000 n
-0001182576 00000 n
-0000600382 00000 n
-0000599441 00000 n
-0000596213 00000 n
-0000599932 00000 n
-0000600061 00000 n
-0000599597 00000 n
-0000600189 00000 n
-0000599757 00000 n
-0000600318 00000 n
-0000604613 00000 n
-0000604118 00000 n
-0000600496 00000 n
-0000604420 00000 n
-0000604265 00000 n
-0000604549 00000 n
-0000608047 00000 n
-0000607416 00000 n
-0000604741 00000 n
-0000607724 00000 n
-0000607853 00000 n
-0000607982 00000 n
-0000607563 00000 n
-0000611123 00000 n
-0000610756 00000 n
-0000608218 00000 n
-0000611058 00000 n
-0000610903 00000 n
-0000614993 00000 n
-0000614225 00000 n
-0000611237 00000 n
-0000614541 00000 n
-0000614372 00000 n
-0000614735 00000 n
-0000614799 00000 n
-0000614928 00000 n
-0000618882 00000 n
-0000618508 00000 n
-0000615178 00000 n
-0000618817 00000 n
-0000618655 00000 n
-0001182701 00000 n
-0000623387 00000 n
-0000623014 00000 n
-0000619053 00000 n
-0000623322 00000 n
-0000623161 00000 n
-0000742446 00000 n
-0000627279 00000 n
-0000626643 00000 n
-0000623515 00000 n
-0000626956 00000 n
-0000627085 00000 n
-0000626790 00000 n
-0000627214 00000 n
-0000666264 00000 n
-0000628997 00000 n
-0000628806 00000 n
-0000627406 00000 n
-0000628932 00000 n
-0000630731 00000 n
-0000630540 00000 n
-0000629097 00000 n
-0000630666 00000 n
-0000633888 00000 n
-0000633568 00000 n
-0000630831 00000 n
-0000633694 00000 n
-0000638773 00000 n
-0000638229 00000 n
-0000634058 00000 n
-0000638579 00000 n
-0000638708 00000 n
-0000638376 00000 n
-0001182826 00000 n
-0000642882 00000 n
-0000642563 00000 n
-0000638901 00000 n
-0000642689 00000 n
-0000642818 00000 n
-0000646965 00000 n
-0000646774 00000 n
-0000643023 00000 n
-0000646900 00000 n
-0000649993 00000 n
-0000649802 00000 n
-0000647092 00000 n
-0000649928 00000 n
-0000653403 00000 n
-0000652954 00000 n
-0000650120 00000 n
-0000653080 00000 n
-0000653209 00000 n
-0000657927 00000 n
-0000657136 00000 n
-0000653517 00000 n
-0000657605 00000 n
-0000657292 00000 n
-0000657444 00000 n
-0000657734 00000 n
-0000657863 00000 n
-0000662157 00000 n
-0000661278 00000 n
-0000658041 00000 n
-0000661579 00000 n
-0000661708 00000 n
-0000661834 00000 n
-0000661425 00000 n
-0000661963 00000 n
-0001182951 00000 n
-0000666329 00000 n
-0000666009 00000 n
-0000662271 00000 n
-0000666135 00000 n
-0000669801 00000 n
-0000669481 00000 n
-0000666471 00000 n
-0000669607 00000 n
-0000669736 00000 n
-0000671517 00000 n
-0000671197 00000 n
-0000669915 00000 n
-0000671323 00000 n
-0000673131 00000 n
-0000672940 00000 n
-0000671631 00000 n
-0000673066 00000 n
-0000674563 00000 n
-0000674372 00000 n
-0000673232 00000 n
-0000674498 00000 n
-0000677266 00000 n
-0000676687 00000 n
-0000674664 00000 n
-0000676813 00000 n
-0000676942 00000 n
-0000677071 00000 n
-0000677136 00000 n
-0000677201 00000 n
-0001183076 00000 n
-0000680926 00000 n
-0000680735 00000 n
-0000677380 00000 n
-0000680861 00000 n
-0000686056 00000 n
-0000684215 00000 n
-0000681040 00000 n
-0000685735 00000 n
-0000684425 00000 n
-0000685863 00000 n
-0000685991 00000 n
-0000684592 00000 n
-0000684754 00000 n
-0000684916 00000 n
-0000685078 00000 n
-0000685240 00000 n
-0000685402 00000 n
+0000523484 00000 n
+0000525058 00000 n
+0000524867 00000 n
+0000523663 00000 n
+0000524993 00000 n
+0000526651 00000 n
+0000526460 00000 n
+0000525159 00000 n
+0000526586 00000 n
+0001183630 00000 n
+0000528097 00000 n
+0000527906 00000 n
+0000526752 00000 n
+0000528032 00000 n
+0000531163 00000 n
+0000530843 00000 n
+0000528198 00000 n
+0000530969 00000 n
+0000535377 00000 n
+0000535186 00000 n
+0000531291 00000 n
+0000535312 00000 n
+0000539790 00000 n
+0000539243 00000 n
+0000535519 00000 n
+0000539725 00000 n
+0000539399 00000 n
+0000539555 00000 n
+0000747473 00000 n
+0000544071 00000 n
+0000543672 00000 n
+0000539918 00000 n
+0000544006 00000 n
+0000543819 00000 n
+0000548546 00000 n
+0000547998 00000 n
+0000544213 00000 n
+0000548481 00000 n
+0000548154 00000 n
+0000548325 00000 n
+0001183755 00000 n
+0000552601 00000 n
+0000552151 00000 n
+0000548674 00000 n
+0000552277 00000 n
+0000552471 00000 n
+0000552536 00000 n
+0000556698 00000 n
+0000556332 00000 n
+0000552715 00000 n
+0000556633 00000 n
+0000556479 00000 n
+0000561576 00000 n
+0000560608 00000 n
+0000556826 00000 n
+0000561511 00000 n
+0000560782 00000 n
+0000560967 00000 n
+0000561141 00000 n
+0000561326 00000 n
+0000654002 00000 n
+0000565851 00000 n
+0000565660 00000 n
+0000561774 00000 n
+0000565786 00000 n
+0000569740 00000 n
+0000569549 00000 n
+0000565965 00000 n
+0000569675 00000 n
+0000574468 00000 n
+0000573615 00000 n
+0000569854 00000 n
+0000574275 00000 n
+0000573780 00000 n
+0000573944 00000 n
+0000574403 00000 n
+0000574107 00000 n
+0001183880 00000 n
+0000672288 00000 n
+0000578079 00000 n
+0000577443 00000 n
+0000574582 00000 n
+0000577756 00000 n
+0000577885 00000 n
+0000578014 00000 n
+0000577590 00000 n
+0000582319 00000 n
+0000581628 00000 n
+0000578236 00000 n
+0000582125 00000 n
+0000581784 00000 n
+0000581954 00000 n
+0000582254 00000 n
+0000767419 00000 n
+0000585738 00000 n
+0000585418 00000 n
+0000582447 00000 n
+0000585544 00000 n
+0000585673 00000 n
+0000588678 00000 n
+0000588487 00000 n
+0000585852 00000 n
+0000588613 00000 n
+0000592820 00000 n
+0000592500 00000 n
+0000588849 00000 n
+0000592626 00000 n
+0000596324 00000 n
+0000596133 00000 n
+0000592934 00000 n
+0000596259 00000 n
+0001184005 00000 n
+0000600638 00000 n
+0000599825 00000 n
+0000596495 00000 n
+0000600316 00000 n
+0000600445 00000 n
+0000599981 00000 n
+0000600574 00000 n
+0000600141 00000 n
+0000604884 00000 n
+0000604260 00000 n
+0000600795 00000 n
+0000604562 00000 n
+0000604691 00000 n
+0000604407 00000 n
+0000604820 00000 n
+0000607914 00000 n
+0000607595 00000 n
+0000605012 00000 n
+0000607721 00000 n
+0000607849 00000 n
+0000611851 00000 n
+0000611185 00000 n
+0000608085 00000 n
+0000611658 00000 n
+0000611787 00000 n
+0000611341 00000 n
+0000611503 00000 n
+0000615417 00000 n
+0000614649 00000 n
+0000611965 00000 n
+0000614965 00000 n
+0000614796 00000 n
+0000615159 00000 n
+0000615224 00000 n
+0000615352 00000 n
+0000619353 00000 n
+0000618979 00000 n
+0000615602 00000 n
+0000619288 00000 n
+0000619126 00000 n
+0001184130 00000 n
+0000623931 00000 n
+0000623557 00000 n
+0000619524 00000 n
+0000623866 00000 n
+0000623704 00000 n
+0000743709 00000 n
+0000628023 00000 n
+0000627385 00000 n
+0000624059 00000 n
+0000627700 00000 n
+0000627829 00000 n
+0000627532 00000 n
+0000627958 00000 n
+0000667028 00000 n
+0000629754 00000 n
+0000629563 00000 n
+0000628164 00000 n
+0000629689 00000 n
+0000631468 00000 n
+0000631277 00000 n
+0000629854 00000 n
+0000631403 00000 n
+0000634554 00000 n
+0000634235 00000 n
+0000631568 00000 n
+0000634361 00000 n
+0000639133 00000 n
+0000638814 00000 n
+0000634724 00000 n
+0000638940 00000 n
+0000639068 00000 n
+0001184255 00000 n
+0000643293 00000 n
+0000642748 00000 n
+0000639247 00000 n
+0000643100 00000 n
+0000642895 00000 n
+0000643228 00000 n
+0000647652 00000 n
+0000647461 00000 n
+0000643448 00000 n
+0000647587 00000 n
+0000650591 00000 n
+0000650400 00000 n
+0000647779 00000 n
+0000650526 00000 n
+0000654067 00000 n
+0000653618 00000 n
+0000650718 00000 n
+0000653744 00000 n
+0000653873 00000 n
+0000658462 00000 n
+0000657670 00000 n
+0000654181 00000 n
+0000658140 00000 n
+0000657826 00000 n
+0000657978 00000 n
+0000658269 00000 n
+0000658398 00000 n
+0000662523 00000 n
+0000661773 00000 n
+0000658576 00000 n
+0000662072 00000 n
+0000662200 00000 n
+0000662329 00000 n
+0000661920 00000 n
+0000662458 00000 n
+0001184380 00000 n
+0000667093 00000 n
+0000666644 00000 n
+0000662637 00000 n
+0000666770 00000 n
+0000670574 00000 n
+0000670254 00000 n
+0000667235 00000 n
+0000670380 00000 n
+0000670509 00000 n
+0000672353 00000 n
+0000672033 00000 n
+0000670688 00000 n
+0000672159 00000 n
+0000673947 00000 n
+0000673756 00000 n
+0000672467 00000 n
+0000673882 00000 n
+0000675424 00000 n
+0000675233 00000 n
+0000674048 00000 n
+0000675359 00000 n
+0000678196 00000 n
+0000677617 00000 n
+0000675525 00000 n
+0000677743 00000 n
+0000677872 00000 n
+0000678001 00000 n
+0000678066 00000 n
+0000678131 00000 n
+0001184505 00000 n
+0000681856 00000 n
+0000681665 00000 n
+0000678310 00000 n
+0000681791 00000 n
+0000686216 00000 n
+0000685072 00000 n
+0000681970 00000 n
+0000685894 00000 n
+0000685246 00000 n
+0000686022 00000 n
+0000686151 00000 n
+0000685413 00000 n
0000685573 00000 n
-0000971482 00000 n
-0000691643 00000 n
-0000689557 00000 n
-0000686170 00000 n
-0000691578 00000 n
-0000689794 00000 n
-0000689957 00000 n
-0000690117 00000 n
-0000690278 00000 n
-0000690441 00000 n
-0000690604 00000 n
-0000690767 00000 n
-0000690922 00000 n
-0000691085 00000 n
-0000691248 00000 n
-0000691411 00000 n
-0000696542 00000 n
-0000694971 00000 n
-0000691771 00000 n
-0000696477 00000 n
-0000695181 00000 n
-0000695350 00000 n
-0000695512 00000 n
-0000695674 00000 n
-0000695835 00000 n
-0000695997 00000 n
-0000696160 00000 n
-0000696314 00000 n
-0000702755 00000 n
-0000699873 00000 n
-0000696670 00000 n
-0000702690 00000 n
-0000700155 00000 n
-0000700309 00000 n
-0000700463 00000 n
-0000700617 00000 n
-0000700771 00000 n
-0000700933 00000 n
-0000701095 00000 n
-0000701255 00000 n
-0000701415 00000 n
-0000701577 00000 n
-0000701737 00000 n
-0000701896 00000 n
-0000702049 00000 n
-0000702212 00000 n
-0000702363 00000 n
-0000702526 00000 n
-0000707343 00000 n
-0000706507 00000 n
-0000702897 00000 n
-0000707149 00000 n
-0000706672 00000 n
-0000706835 00000 n
-0000706989 00000 n
-0001183201 00000 n
-0000711245 00000 n
-0000710924 00000 n
-0000707471 00000 n
-0000711050 00000 n
-0000711115 00000 n
-0000711180 00000 n
-0000713278 00000 n
-0000713087 00000 n
-0000711387 00000 n
-0000713213 00000 n
-0000717485 00000 n
-0000716415 00000 n
-0000713436 00000 n
-0000716903 00000 n
-0000717032 00000 n
-0000717290 00000 n
-0000716571 00000 n
-0000716741 00000 n
-0000717355 00000 n
-0000717420 00000 n
-0000720936 00000 n
-0000720616 00000 n
-0000717613 00000 n
-0000720742 00000 n
-0000720807 00000 n
-0000720871 00000 n
-0000724425 00000 n
-0000724104 00000 n
-0000721037 00000 n
-0000724230 00000 n
-0000724295 00000 n
-0000724360 00000 n
-0000728346 00000 n
-0000727637 00000 n
-0000724540 00000 n
-0000727763 00000 n
-0000727892 00000 n
-0000727957 00000 n
-0000728022 00000 n
-0000728087 00000 n
-0000728152 00000 n
-0000728281 00000 n
-0001183326 00000 n
-0000732587 00000 n
-0000731750 00000 n
-0000728460 00000 n
-0000731876 00000 n
-0000731941 00000 n
-0000732006 00000 n
-0000732135 00000 n
-0000732200 00000 n
-0000732265 00000 n
-0000732394 00000 n
-0000732459 00000 n
-0000732523 00000 n
-0000735614 00000 n
-0000734912 00000 n
-0000732715 00000 n
-0000735038 00000 n
-0000735165 00000 n
-0000735292 00000 n
-0000735421 00000 n
-0000735549 00000 n
-0000738324 00000 n
-0000737747 00000 n
-0000735813 00000 n
-0000737873 00000 n
-0000738002 00000 n
-0000738131 00000 n
-0000738196 00000 n
-0000738260 00000 n
-0000742511 00000 n
-0000742191 00000 n
-0000738509 00000 n
-0000742317 00000 n
-0000746275 00000 n
-0000745515 00000 n
-0000742638 00000 n
-0000745822 00000 n
-0000745951 00000 n
-0000746016 00000 n
-0000746081 00000 n
-0000745662 00000 n
-0000749966 00000 n
-0000749387 00000 n
-0000746389 00000 n
-0000749513 00000 n
-0000749642 00000 n
-0000749771 00000 n
-0000749836 00000 n
-0000749901 00000 n
-0001183451 00000 n
-0000753580 00000 n
-0000752685 00000 n
-0000750080 00000 n
-0000752997 00000 n
-0000752832 00000 n
-0000753126 00000 n
-0000753191 00000 n
-0000753256 00000 n
-0000753385 00000 n
-0000753450 00000 n
-0000753515 00000 n
-0000971449 00000 n
-0000757737 00000 n
-0000757287 00000 n
-0000753694 00000 n
-0000757413 00000 n
-0000757542 00000 n
-0000757607 00000 n
-0000757672 00000 n
-0000759628 00000 n
-0000759308 00000 n
-0000757865 00000 n
-0000759434 00000 n
-0000990255 00000 n
-0000982971 00000 n
-0000990075 00000 n
-0000759563 00000 n
-0000760111 00000 n
-0000759920 00000 n
-0000759770 00000 n
-0000760046 00000 n
-0000761923 00000 n
-0000761476 00000 n
-0000760153 00000 n
-0000761602 00000 n
-0000761731 00000 n
-0000761858 00000 n
-0000766109 00000 n
-0000765403 00000 n
-0000762037 00000 n
-0000765529 00000 n
-0000982650 00000 n
-0000973437 00000 n
-0000982464 00000 n
-0000765658 00000 n
-0000765787 00000 n
-0000765915 00000 n
-0001183576 00000 n
-0000767142 00000 n
-0000766951 00000 n
-0000766336 00000 n
-0000767077 00000 n
-0000767570 00000 n
-0000767379 00000 n
-0000767229 00000 n
-0000767505 00000 n
-0000770884 00000 n
-0000769658 00000 n
-0000767612 00000 n
-0000770175 00000 n
-0000770304 00000 n
-0000770433 00000 n
-0000770562 00000 n
-0000770691 00000 n
-0000770820 00000 n
-0000769814 00000 n
-0000769986 00000 n
-0000771339 00000 n
-0000771148 00000 n
-0000770998 00000 n
-0000771274 00000 n
-0000774584 00000 n
-0000774006 00000 n
-0000771381 00000 n
-0000774132 00000 n
-0000774261 00000 n
-0000774390 00000 n
-0000774519 00000 n
-0000778781 00000 n
-0000777562 00000 n
-0000774670 00000 n
-0000778072 00000 n
-0000778201 00000 n
-0000778459 00000 n
-0000777718 00000 n
-0000777897 00000 n
-0000778653 00000 n
-0000778717 00000 n
-0001183701 00000 n
-0000785671 00000 n
-0000781843 00000 n
+0000685734 00000 n
+0000972908 00000 n
+0000692216 00000 n
+0000689618 00000 n
+0000686330 00000 n
+0000692151 00000 n
+0000689882 00000 n
+0000690044 00000 n
+0000690206 00000 n
+0000690377 00000 n
+0000690539 00000 n
+0000690702 00000 n
+0000690862 00000 n
+0000691023 00000 n
+0000691185 00000 n
+0000691348 00000 n
+0000691510 00000 n
+0000691665 00000 n
+0000691827 00000 n
+0000691990 00000 n
+0000697341 00000 n
+0000695591 00000 n
+0000692344 00000 n
+0000697276 00000 n
+0000695810 00000 n
+0000695978 00000 n
+0000696148 00000 n
+0000696310 00000 n
+0000696472 00000 n
+0000696634 00000 n
+0000696796 00000 n
+0000696959 00000 n
+0000697113 00000 n
+0000702468 00000 n
+0000700266 00000 n
+0000697469 00000 n
+0000702403 00000 n
+0000700512 00000 n
+0000700665 00000 n
+0000700819 00000 n
+0000700973 00000 n
+0000701127 00000 n
+0000701289 00000 n
+0000701451 00000 n
+0000701611 00000 n
+0000701771 00000 n
+0000701933 00000 n
+0000702093 00000 n
+0000702252 00000 n
+0000707821 00000 n
+0000706302 00000 n
+0000702582 00000 n
+0000707629 00000 n
+0000706503 00000 n
+0000706666 00000 n
+0000706821 00000 n
+0000706986 00000 n
+0000707152 00000 n
+0000707315 00000 n
+0000707469 00000 n
+0001184630 00000 n
+0000711767 00000 n
+0000711446 00000 n
+0000707963 00000 n
+0000711572 00000 n
+0000711637 00000 n
+0000711702 00000 n
+0000714541 00000 n
+0000714350 00000 n
+0000711909 00000 n
+0000714476 00000 n
+0000718748 00000 n
+0000717678 00000 n
+0000714699 00000 n
+0000718166 00000 n
+0000718295 00000 n
+0000718553 00000 n
+0000717834 00000 n
+0000718004 00000 n
+0000718618 00000 n
+0000718683 00000 n
+0000722199 00000 n
+0000721879 00000 n
+0000718876 00000 n
+0000722005 00000 n
+0000722070 00000 n
+0000722134 00000 n
+0000725688 00000 n
+0000725367 00000 n
+0000722300 00000 n
+0000725493 00000 n
+0000725558 00000 n
+0000725623 00000 n
+0000729609 00000 n
+0000728900 00000 n
+0000725803 00000 n
+0000729026 00000 n
+0000729155 00000 n
+0000729220 00000 n
+0000729285 00000 n
+0000729350 00000 n
+0000729415 00000 n
+0000729544 00000 n
+0001184755 00000 n
+0000733850 00000 n
+0000733013 00000 n
+0000729723 00000 n
+0000733139 00000 n
+0000733204 00000 n
+0000733269 00000 n
+0000733398 00000 n
+0000733463 00000 n
+0000733528 00000 n
+0000733657 00000 n
+0000733722 00000 n
+0000733786 00000 n
+0000736877 00000 n
+0000736175 00000 n
+0000733978 00000 n
+0000736301 00000 n
+0000736428 00000 n
+0000736555 00000 n
+0000736684 00000 n
+0000736812 00000 n
+0000739587 00000 n
+0000739010 00000 n
+0000737076 00000 n
+0000739136 00000 n
+0000739265 00000 n
+0000739394 00000 n
+0000739459 00000 n
+0000739523 00000 n
+0000743774 00000 n
+0000743454 00000 n
+0000739772 00000 n
+0000743580 00000 n
+0000747538 00000 n
+0000746778 00000 n
+0000743901 00000 n
+0000747085 00000 n
+0000747214 00000 n
+0000747279 00000 n
+0000747344 00000 n
+0000746925 00000 n
+0000751229 00000 n
+0000750650 00000 n
+0000747652 00000 n
+0000750776 00000 n
+0000750905 00000 n
+0000751034 00000 n
+0000751099 00000 n
+0000751164 00000 n
+0001184880 00000 n
+0000754861 00000 n
+0000753966 00000 n
+0000751343 00000 n
+0000754278 00000 n
+0000754113 00000 n
+0000754407 00000 n
+0000754472 00000 n
+0000754537 00000 n
+0000754666 00000 n
+0000754731 00000 n
+0000754796 00000 n
+0000972875 00000 n
+0000758953 00000 n
+0000758504 00000 n
+0000754975 00000 n
+0000758630 00000 n
+0000758759 00000 n
+0000758823 00000 n
+0000758888 00000 n
+0000761003 00000 n
+0000760683 00000 n
+0000759081 00000 n
+0000760809 00000 n
+0000991681 00000 n
+0000984397 00000 n
+0000991501 00000 n
+0000760938 00000 n
+0000761486 00000 n
+0000761295 00000 n
+0000761145 00000 n
+0000761421 00000 n
+0000763298 00000 n
+0000762851 00000 n
+0000761528 00000 n
+0000762977 00000 n
+0000763106 00000 n
+0000763233 00000 n
+0000767484 00000 n
+0000766778 00000 n
+0000763412 00000 n
+0000766904 00000 n
+0000984076 00000 n
+0000974863 00000 n
+0000983890 00000 n
+0000767033 00000 n
+0000767162 00000 n
+0000767290 00000 n
+0001185005 00000 n
+0000768517 00000 n
+0000768326 00000 n
+0000767711 00000 n
+0000768452 00000 n
+0000768945 00000 n
+0000768754 00000 n
+0000768604 00000 n
+0000768880 00000 n
+0000772259 00000 n
+0000771033 00000 n
+0000768987 00000 n
+0000771550 00000 n
+0000771679 00000 n
+0000771808 00000 n
+0000771937 00000 n
+0000772066 00000 n
+0000772195 00000 n
+0000771189 00000 n
+0000771361 00000 n
+0000772714 00000 n
+0000772523 00000 n
+0000772373 00000 n
+0000772649 00000 n
+0000775959 00000 n
+0000775381 00000 n
+0000772756 00000 n
+0000775507 00000 n
+0000775636 00000 n
+0000775765 00000 n
+0000775894 00000 n
+0000780156 00000 n
0000778937 00000 n
-0000781969 00000 n
-0000782034 00000 n
-0000782099 00000 n
-0000782164 00000 n
-0000782229 00000 n
-0000782294 00000 n
-0000782359 00000 n
-0000782424 00000 n
-0000782489 00000 n
-0000782554 00000 n
-0000782684 00000 n
-0000782749 00000 n
-0000782814 00000 n
-0000782879 00000 n
-0000782944 00000 n
-0000783009 00000 n
-0000783074 00000 n
-0000783139 00000 n
-0000783204 00000 n
-0000783269 00000 n
-0000783334 00000 n
-0000783399 00000 n
-0000783464 00000 n
-0000783529 00000 n
-0000783594 00000 n
-0000783659 00000 n
-0000783724 00000 n
-0000783789 00000 n
-0000783854 00000 n
-0000783919 00000 n
-0000783984 00000 n
-0000784049 00000 n
-0000784114 00000 n
-0000784179 00000 n
-0000784243 00000 n
-0000784308 00000 n
-0000784373 00000 n
-0000784438 00000 n
-0000784503 00000 n
-0000784568 00000 n
-0000784633 00000 n
-0000784698 00000 n
-0000784763 00000 n
-0000784828 00000 n
-0000784893 00000 n
-0000784958 00000 n
-0000785023 00000 n
-0000785088 00000 n
-0000785153 00000 n
-0000785218 00000 n
-0000785283 00000 n
-0000785348 00000 n
-0000785413 00000 n
-0000785478 00000 n
-0000785543 00000 n
-0000785607 00000 n
-0000792319 00000 n
-0000788755 00000 n
-0000785785 00000 n
-0000788881 00000 n
-0000788946 00000 n
-0000789011 00000 n
-0000789076 00000 n
-0000789141 00000 n
-0000789206 00000 n
-0000789271 00000 n
-0000789336 00000 n
-0000789401 00000 n
-0000789466 00000 n
-0000789531 00000 n
-0000789596 00000 n
-0000789660 00000 n
-0000789725 00000 n
-0000789790 00000 n
-0000789855 00000 n
-0000789920 00000 n
-0000789985 00000 n
-0000790050 00000 n
-0000790115 00000 n
-0000790180 00000 n
-0000790245 00000 n
-0000790310 00000 n
-0000790375 00000 n
-0000790439 00000 n
-0000790504 00000 n
-0000790569 00000 n
-0000790634 00000 n
-0000790699 00000 n
-0000790764 00000 n
-0000790829 00000 n
-0000790894 00000 n
-0000790959 00000 n
-0000791024 00000 n
-0000791089 00000 n
-0000791154 00000 n
-0000791219 00000 n
-0000791284 00000 n
-0000791349 00000 n
-0000791414 00000 n
-0000791478 00000 n
-0000791542 00000 n
-0000791606 00000 n
-0000791671 00000 n
-0000791736 00000 n
-0000791801 00000 n
-0000791866 00000 n
-0000791931 00000 n
-0000791996 00000 n
-0000792061 00000 n
-0000792126 00000 n
-0000792191 00000 n
-0000792255 00000 n
-0000798494 00000 n
-0000795056 00000 n
-0000792433 00000 n
-0000795182 00000 n
-0000795247 00000 n
-0000795312 00000 n
-0000795377 00000 n
-0000795442 00000 n
-0000795507 00000 n
-0000795572 00000 n
-0000795637 00000 n
-0000795702 00000 n
-0000795767 00000 n
-0000795832 00000 n
-0000795897 00000 n
-0000795962 00000 n
-0000796027 00000 n
-0000796092 00000 n
-0000796157 00000 n
-0000796222 00000 n
-0000796287 00000 n
-0000796352 00000 n
-0000796417 00000 n
-0000796482 00000 n
-0000796547 00000 n
-0000796612 00000 n
-0000796677 00000 n
-0000796742 00000 n
-0000796807 00000 n
-0000796872 00000 n
-0000796937 00000 n
-0000797002 00000 n
-0000797067 00000 n
-0000797132 00000 n
-0000797197 00000 n
-0000797262 00000 n
-0000797327 00000 n
-0000797391 00000 n
-0000797456 00000 n
-0000797521 00000 n
-0000797586 00000 n
-0000797651 00000 n
-0000797716 00000 n
-0000797781 00000 n
-0000797846 00000 n
-0000797911 00000 n
-0000797976 00000 n
-0000798041 00000 n
-0000798106 00000 n
-0000798171 00000 n
-0000798236 00000 n
-0000798301 00000 n
-0000798366 00000 n
-0000798430 00000 n
-0000804013 00000 n
-0000801617 00000 n
-0000798608 00000 n
-0000801743 00000 n
-0000801808 00000 n
-0000801873 00000 n
-0000801938 00000 n
-0000802003 00000 n
-0000802068 00000 n
-0000802133 00000 n
-0000802198 00000 n
-0000802263 00000 n
-0000802328 00000 n
-0000802393 00000 n
-0000802458 00000 n
-0000802523 00000 n
-0000802587 00000 n
-0000802652 00000 n
-0000802717 00000 n
-0000802782 00000 n
-0000802847 00000 n
-0000802912 00000 n
-0000802977 00000 n
-0000803042 00000 n
-0000803107 00000 n
-0000803172 00000 n
-0000803237 00000 n
-0000803302 00000 n
-0000803430 00000 n
-0000803559 00000 n
-0000803624 00000 n
-0000803689 00000 n
-0000803754 00000 n
-0000803819 00000 n
-0000803948 00000 n
-0000807221 00000 n
-0000806514 00000 n
-0000804140 00000 n
-0000806640 00000 n
-0000806769 00000 n
-0000806898 00000 n
-0000807027 00000 n
-0000807156 00000 n
-0000810713 00000 n
-0000809956 00000 n
-0000807348 00000 n
-0000810263 00000 n
-0000810392 00000 n
-0000810103 00000 n
-0000810520 00000 n
-0000810648 00000 n
-0001183826 00000 n
-0000813957 00000 n
-0000813379 00000 n
-0000810840 00000 n
-0000813505 00000 n
-0000813634 00000 n
-0000813763 00000 n
-0000813892 00000 n
-0000816865 00000 n
-0000816545 00000 n
-0000814071 00000 n
-0000816671 00000 n
-0000816800 00000 n
-0000819455 00000 n
-0000819006 00000 n
-0000817035 00000 n
-0000819132 00000 n
-0000819261 00000 n
-0000819390 00000 n
-0000819896 00000 n
-0000819705 00000 n
-0000819555 00000 n
-0000819831 00000 n
-0000822679 00000 n
-0000822035 00000 n
-0000819938 00000 n
-0000822161 00000 n
-0000822290 00000 n
-0000822419 00000 n
-0000822484 00000 n
-0000822549 00000 n
-0000822614 00000 n
-0000827013 00000 n
-0000826692 00000 n
-0000822793 00000 n
-0000826818 00000 n
-0000826883 00000 n
-0000826948 00000 n
-0001183951 00000 n
-0000830776 00000 n
-0000830520 00000 n
-0000827169 00000 n
-0000830646 00000 n
-0000830711 00000 n
-0000834067 00000 n
-0000833876 00000 n
-0000830918 00000 n
-0000834002 00000 n
-0000837586 00000 n
-0000837395 00000 n
-0000834195 00000 n
-0000837521 00000 n
-0000840867 00000 n
-0000840352 00000 n
-0000837728 00000 n
-0000840478 00000 n
-0000840543 00000 n
-0000840608 00000 n
-0000840673 00000 n
-0000840738 00000 n
-0000840803 00000 n
-0000845066 00000 n
-0000844551 00000 n
-0000841023 00000 n
-0000844677 00000 n
-0000844806 00000 n
-0000844871 00000 n
-0000844936 00000 n
-0000845001 00000 n
-0000848755 00000 n
-0000848047 00000 n
-0000845194 00000 n
-0000848173 00000 n
-0000848238 00000 n
-0000848303 00000 n
-0000848368 00000 n
-0000848497 00000 n
-0000848561 00000 n
-0000848626 00000 n
-0000848691 00000 n
-0001184076 00000 n
-0000851851 00000 n
-0000851465 00000 n
-0000848897 00000 n
-0000851591 00000 n
-0000851656 00000 n
-0000851721 00000 n
-0000851786 00000 n
-0000854905 00000 n
-0000854131 00000 n
-0000851993 00000 n
-0000854257 00000 n
-0000854322 00000 n
-0000854387 00000 n
-0000854452 00000 n
-0000854581 00000 n
-0000854645 00000 n
-0000854710 00000 n
-0000854775 00000 n
-0000854840 00000 n
-0000858401 00000 n
-0000858210 00000 n
-0000855061 00000 n
-0000858336 00000 n
-0000861684 00000 n
-0000861234 00000 n
-0000858529 00000 n
-0000861360 00000 n
-0000861425 00000 n
-0000861490 00000 n
-0000861555 00000 n
-0000861620 00000 n
-0000865353 00000 n
-0000864773 00000 n
-0000861839 00000 n
-0000864899 00000 n
-0000865093 00000 n
-0000865158 00000 n
-0000865223 00000 n
-0000865288 00000 n
-0000869052 00000 n
-0000868861 00000 n
-0000865495 00000 n
-0000868987 00000 n
-0001184201 00000 n
-0000872680 00000 n
-0000872424 00000 n
-0000869180 00000 n
-0000872550 00000 n
-0000872615 00000 n
-0000875661 00000 n
-0000875017 00000 n
-0000872808 00000 n
-0000875143 00000 n
-0000875208 00000 n
-0000875273 00000 n
-0000875338 00000 n
-0000875403 00000 n
-0000875532 00000 n
-0000875597 00000 n
-0000878392 00000 n
-0000877618 00000 n
-0000875816 00000 n
-0000877744 00000 n
-0000877809 00000 n
-0000877874 00000 n
-0000877939 00000 n
-0000878003 00000 n
-0000878068 00000 n
-0000878262 00000 n
-0000878327 00000 n
-0000882072 00000 n
-0000881686 00000 n
-0000878548 00000 n
-0000881812 00000 n
-0000881877 00000 n
-0000881942 00000 n
-0000882007 00000 n
-0000885356 00000 n
-0000884777 00000 n
-0000882200 00000 n
-0000884903 00000 n
-0000884968 00000 n
-0000885033 00000 n
-0000885098 00000 n
-0000885227 00000 n
-0000885292 00000 n
-0000889008 00000 n
-0000888623 00000 n
-0000885498 00000 n
-0000888749 00000 n
-0000888814 00000 n
-0000888879 00000 n
-0000888944 00000 n
-0001184326 00000 n
-0000893176 00000 n
-0000892985 00000 n
-0000889150 00000 n
-0000893111 00000 n
-0000896784 00000 n
-0000896593 00000 n
-0000893304 00000 n
-0000896719 00000 n
-0000900380 00000 n
-0000900125 00000 n
-0000896912 00000 n
-0000900251 00000 n
-0000900316 00000 n
-0000903171 00000 n
-0000902462 00000 n
-0000900536 00000 n
-0000902588 00000 n
-0000902653 00000 n
-0000902718 00000 n
-0000902847 00000 n
-0000902912 00000 n
-0000902976 00000 n
-0000903041 00000 n
-0000903106 00000 n
-0000906440 00000 n
-0000905796 00000 n
-0000903327 00000 n
-0000905922 00000 n
-0000905987 00000 n
-0000906052 00000 n
-0000906181 00000 n
-0000906245 00000 n
-0000906310 00000 n
-0000906375 00000 n
-0000909183 00000 n
-0000908476 00000 n
-0000906596 00000 n
-0000908602 00000 n
-0000908667 00000 n
-0000908732 00000 n
-0000908797 00000 n
-0000908862 00000 n
-0000908988 00000 n
-0000909053 00000 n
-0000909118 00000 n
-0001184451 00000 n
-0000912713 00000 n
-0000912392 00000 n
-0000909339 00000 n
-0000912518 00000 n
-0000912583 00000 n
-0000912648 00000 n
-0000915985 00000 n
-0000915730 00000 n
-0000912827 00000 n
-0000915856 00000 n
-0000915921 00000 n
-0000919091 00000 n
-0000918381 00000 n
-0000916113 00000 n
-0000918507 00000 n
-0000918572 00000 n
-0000918637 00000 n
-0000918766 00000 n
-0000918831 00000 n
-0000918896 00000 n
-0000918961 00000 n
-0000919026 00000 n
-0000922530 00000 n
-0000922339 00000 n
-0000919247 00000 n
-0000922465 00000 n
-0000925689 00000 n
-0000925304 00000 n
-0000922743 00000 n
-0000925430 00000 n
-0000925495 00000 n
-0000925560 00000 n
-0000925625 00000 n
-0000928241 00000 n
-0000927468 00000 n
-0000925930 00000 n
-0000927594 00000 n
-0000927659 00000 n
-0000927724 00000 n
-0000927853 00000 n
-0000927917 00000 n
-0000927982 00000 n
-0000928047 00000 n
-0000928112 00000 n
-0000928177 00000 n
-0001184576 00000 n
-0000932401 00000 n
-0000931886 00000 n
-0000928397 00000 n
-0000932012 00000 n
-0000932141 00000 n
-0000932206 00000 n
-0000932271 00000 n
-0000932336 00000 n
-0000936617 00000 n
-0000936361 00000 n
-0000932529 00000 n
-0000936487 00000 n
-0000936552 00000 n
-0000939936 00000 n
-0000939745 00000 n
-0000936745 00000 n
-0000939871 00000 n
-0000942554 00000 n
-0000942104 00000 n
-0000940064 00000 n
-0000942230 00000 n
-0000942295 00000 n
-0000942360 00000 n
-0000942425 00000 n
-0000942490 00000 n
-0000946403 00000 n
-0000945823 00000 n
-0000942709 00000 n
-0000945949 00000 n
-0000946078 00000 n
-0000946143 00000 n
-0000946208 00000 n
-0000946273 00000 n
-0000946338 00000 n
-0000949568 00000 n
-0000948858 00000 n
-0000946545 00000 n
-0000948984 00000 n
-0000949049 00000 n
-0000949114 00000 n
-0000949179 00000 n
-0000949308 00000 n
-0000949373 00000 n
-0000949438 00000 n
-0000949503 00000 n
-0001184701 00000 n
-0000952289 00000 n
-0000952033 00000 n
-0000949724 00000 n
-0000952159 00000 n
-0000952224 00000 n
-0000955545 00000 n
-0000954772 00000 n
-0000952417 00000 n
-0000954898 00000 n
-0000954963 00000 n
-0000955028 00000 n
-0000955093 00000 n
-0000955222 00000 n
-0000955287 00000 n
-0000955352 00000 n
-0000955416 00000 n
-0000955481 00000 n
-0000958835 00000 n
-0000958516 00000 n
-0000955701 00000 n
-0000958642 00000 n
-0000958707 00000 n
-0000958772 00000 n
-0000962305 00000 n
-0000961662 00000 n
-0000958991 00000 n
-0000961788 00000 n
-0000961853 00000 n
-0000961982 00000 n
-0000962046 00000 n
-0000962111 00000 n
-0000962176 00000 n
-0000962240 00000 n
-0000964921 00000 n
-0000963954 00000 n
-0000962447 00000 n
-0000964080 00000 n
-0000964145 00000 n
-0000964210 00000 n
-0000964339 00000 n
-0000964404 00000 n
-0000964469 00000 n
-0000964534 00000 n
-0000964599 00000 n
-0000964664 00000 n
-0000964792 00000 n
-0000964857 00000 n
-0000967814 00000 n
-0000966979 00000 n
-0000965077 00000 n
-0000967105 00000 n
-0000967170 00000 n
-0000967235 00000 n
-0000967300 00000 n
-0000967365 00000 n
-0000967430 00000 n
-0000967558 00000 n
-0000967621 00000 n
-0000967685 00000 n
-0000967750 00000 n
-0001184826 00000 n
-0000970558 00000 n
-0000969719 00000 n
-0000967956 00000 n
-0000969845 00000 n
-0000969910 00000 n
-0000969975 00000 n
-0000970040 00000 n
-0000970169 00000 n
-0000970234 00000 n
-0000970299 00000 n
-0000970364 00000 n
-0000970429 00000 n
-0000970494 00000 n
-0000971349 00000 n
-0000971093 00000 n
-0000970700 00000 n
-0000971219 00000 n
-0000971284 00000 n
-0000971548 00000 n
-0000982892 00000 n
-0000990481 00000 n
-0000994114 00000 n
-0001003554 00000 n
-0001014289 00000 n
-0001016991 00000 n
-0001016960 00000 n
-0001028675 00000 n
-0001041898 00000 n
-0001061396 00000 n
-0001082462 00000 n
-0001104612 00000 n
-0001122868 00000 n
-0001125714 00000 n
-0001125484 00000 n
-0001153132 00000 n
-0001180461 00000 n
-0001184924 00000 n
-0001185049 00000 n
-0001185175 00000 n
-0001185301 00000 n
-0001185427 00000 n
-0001185553 00000 n
-0001185642 00000 n
-0001185752 00000 n
-0001207747 00000 n
-0001232256 00000 n
-0001232297 00000 n
-0001232337 00000 n
-0001232471 00000 n
+0000776045 00000 n
+0000779447 00000 n
+0000779576 00000 n
+0000779834 00000 n
+0000779093 00000 n
+0000779272 00000 n
+0000780028 00000 n
+0000780092 00000 n
+0001185130 00000 n
+0000787046 00000 n
+0000783218 00000 n
+0000780312 00000 n
+0000783344 00000 n
+0000783409 00000 n
+0000783474 00000 n
+0000783539 00000 n
+0000783604 00000 n
+0000783669 00000 n
+0000783734 00000 n
+0000783799 00000 n
+0000783864 00000 n
+0000783929 00000 n
+0000784059 00000 n
+0000784124 00000 n
+0000784189 00000 n
+0000784254 00000 n
+0000784319 00000 n
+0000784384 00000 n
+0000784449 00000 n
+0000784514 00000 n
+0000784579 00000 n
+0000784644 00000 n
+0000784709 00000 n
+0000784774 00000 n
+0000784839 00000 n
+0000784904 00000 n
+0000784969 00000 n
+0000785034 00000 n
+0000785099 00000 n
+0000785164 00000 n
+0000785229 00000 n
+0000785294 00000 n
+0000785359 00000 n
+0000785424 00000 n
+0000785489 00000 n
+0000785554 00000 n
+0000785618 00000 n
+0000785683 00000 n
+0000785748 00000 n
+0000785813 00000 n
+0000785878 00000 n
+0000785943 00000 n
+0000786008 00000 n
+0000786073 00000 n
+0000786138 00000 n
+0000786203 00000 n
+0000786268 00000 n
+0000786333 00000 n
+0000786398 00000 n
+0000786463 00000 n
+0000786528 00000 n
+0000786593 00000 n
+0000786658 00000 n
+0000786723 00000 n
+0000786788 00000 n
+0000786853 00000 n
+0000786918 00000 n
+0000786982 00000 n
+0000793694 00000 n
+0000790130 00000 n
+0000787160 00000 n
+0000790256 00000 n
+0000790321 00000 n
+0000790386 00000 n
+0000790451 00000 n
+0000790516 00000 n
+0000790581 00000 n
+0000790646 00000 n
+0000790711 00000 n
+0000790776 00000 n
+0000790841 00000 n
+0000790906 00000 n
+0000790971 00000 n
+0000791035 00000 n
+0000791100 00000 n
+0000791165 00000 n
+0000791230 00000 n
+0000791295 00000 n
+0000791360 00000 n
+0000791425 00000 n
+0000791490 00000 n
+0000791555 00000 n
+0000791620 00000 n
+0000791685 00000 n
+0000791750 00000 n
+0000791814 00000 n
+0000791879 00000 n
+0000791944 00000 n
+0000792009 00000 n
+0000792074 00000 n
+0000792139 00000 n
+0000792204 00000 n
+0000792269 00000 n
+0000792334 00000 n
+0000792399 00000 n
+0000792464 00000 n
+0000792529 00000 n
+0000792594 00000 n
+0000792659 00000 n
+0000792724 00000 n
+0000792789 00000 n
+0000792853 00000 n
+0000792917 00000 n
+0000792981 00000 n
+0000793046 00000 n
+0000793111 00000 n
+0000793176 00000 n
+0000793241 00000 n
+0000793306 00000 n
+0000793371 00000 n
+0000793436 00000 n
+0000793501 00000 n
+0000793566 00000 n
+0000793630 00000 n
+0000799869 00000 n
+0000796431 00000 n
+0000793808 00000 n
+0000796557 00000 n
+0000796622 00000 n
+0000796687 00000 n
+0000796752 00000 n
+0000796817 00000 n
+0000796882 00000 n
+0000796947 00000 n
+0000797012 00000 n
+0000797077 00000 n
+0000797142 00000 n
+0000797207 00000 n
+0000797272 00000 n
+0000797337 00000 n
+0000797402 00000 n
+0000797467 00000 n
+0000797532 00000 n
+0000797597 00000 n
+0000797662 00000 n
+0000797727 00000 n
+0000797792 00000 n
+0000797857 00000 n
+0000797922 00000 n
+0000797987 00000 n
+0000798052 00000 n
+0000798117 00000 n
+0000798182 00000 n
+0000798247 00000 n
+0000798312 00000 n
+0000798377 00000 n
+0000798442 00000 n
+0000798507 00000 n
+0000798572 00000 n
+0000798637 00000 n
+0000798702 00000 n
+0000798766 00000 n
+0000798831 00000 n
+0000798896 00000 n
+0000798961 00000 n
+0000799026 00000 n
+0000799091 00000 n
+0000799156 00000 n
+0000799221 00000 n
+0000799286 00000 n
+0000799351 00000 n
+0000799416 00000 n
+0000799481 00000 n
+0000799546 00000 n
+0000799611 00000 n
+0000799676 00000 n
+0000799741 00000 n
+0000799805 00000 n
+0000805388 00000 n
+0000802992 00000 n
+0000799983 00000 n
+0000803118 00000 n
+0000803183 00000 n
+0000803248 00000 n
+0000803313 00000 n
+0000803378 00000 n
+0000803443 00000 n
+0000803508 00000 n
+0000803573 00000 n
+0000803638 00000 n
+0000803703 00000 n
+0000803768 00000 n
+0000803833 00000 n
+0000803898 00000 n
+0000803962 00000 n
+0000804027 00000 n
+0000804092 00000 n
+0000804157 00000 n
+0000804222 00000 n
+0000804287 00000 n
+0000804352 00000 n
+0000804417 00000 n
+0000804482 00000 n
+0000804547 00000 n
+0000804612 00000 n
+0000804677 00000 n
+0000804805 00000 n
+0000804934 00000 n
+0000804999 00000 n
+0000805064 00000 n
+0000805129 00000 n
+0000805194 00000 n
+0000805323 00000 n
+0000808596 00000 n
+0000807889 00000 n
+0000805515 00000 n
+0000808015 00000 n
+0000808144 00000 n
+0000808273 00000 n
+0000808402 00000 n
+0000808531 00000 n
+0000812088 00000 n
+0000811331 00000 n
+0000808723 00000 n
+0000811638 00000 n
+0000811767 00000 n
+0000811478 00000 n
+0000811895 00000 n
+0000812023 00000 n
+0001185255 00000 n
+0000815332 00000 n
+0000814754 00000 n
+0000812215 00000 n
+0000814880 00000 n
+0000815009 00000 n
+0000815138 00000 n
+0000815267 00000 n
+0000818240 00000 n
+0000817920 00000 n
+0000815446 00000 n
+0000818046 00000 n
+0000818175 00000 n
+0000820830 00000 n
+0000820381 00000 n
+0000818410 00000 n
+0000820507 00000 n
+0000820636 00000 n
+0000820765 00000 n
+0000821271 00000 n
+0000821080 00000 n
+0000820930 00000 n
+0000821206 00000 n
+0000824054 00000 n
+0000823410 00000 n
+0000821313 00000 n
+0000823536 00000 n
+0000823665 00000 n
+0000823794 00000 n
+0000823859 00000 n
+0000823924 00000 n
+0000823989 00000 n
+0000828388 00000 n
+0000828067 00000 n
+0000824168 00000 n
+0000828193 00000 n
+0000828258 00000 n
+0000828323 00000 n
+0001185380 00000 n
+0000832151 00000 n
+0000831895 00000 n
+0000828544 00000 n
+0000832021 00000 n
+0000832086 00000 n
+0000835442 00000 n
+0000835251 00000 n
+0000832293 00000 n
+0000835377 00000 n
+0000838961 00000 n
+0000838770 00000 n
+0000835570 00000 n
+0000838896 00000 n
+0000842242 00000 n
+0000841727 00000 n
+0000839103 00000 n
+0000841853 00000 n
+0000841918 00000 n
+0000841983 00000 n
+0000842048 00000 n
+0000842113 00000 n
+0000842178 00000 n
+0000846441 00000 n
+0000845926 00000 n
+0000842398 00000 n
+0000846052 00000 n
+0000846181 00000 n
+0000846246 00000 n
+0000846311 00000 n
+0000846376 00000 n
+0000850130 00000 n
+0000849422 00000 n
+0000846569 00000 n
+0000849548 00000 n
+0000849613 00000 n
+0000849678 00000 n
+0000849743 00000 n
+0000849872 00000 n
+0000849936 00000 n
+0000850001 00000 n
+0000850066 00000 n
+0001185505 00000 n
+0000853226 00000 n
+0000852840 00000 n
+0000850272 00000 n
+0000852966 00000 n
+0000853031 00000 n
+0000853096 00000 n
+0000853161 00000 n
+0000856280 00000 n
+0000855506 00000 n
+0000853368 00000 n
+0000855632 00000 n
+0000855697 00000 n
+0000855762 00000 n
+0000855827 00000 n
+0000855956 00000 n
+0000856020 00000 n
+0000856085 00000 n
+0000856150 00000 n
+0000856215 00000 n
+0000859776 00000 n
+0000859585 00000 n
+0000856436 00000 n
+0000859711 00000 n
+0000863059 00000 n
+0000862609 00000 n
+0000859904 00000 n
+0000862735 00000 n
+0000862800 00000 n
+0000862865 00000 n
+0000862930 00000 n
+0000862995 00000 n
+0000866728 00000 n
+0000866148 00000 n
+0000863214 00000 n
+0000866274 00000 n
+0000866468 00000 n
+0000866533 00000 n
+0000866598 00000 n
+0000866663 00000 n
+0000870427 00000 n
+0000870236 00000 n
+0000866870 00000 n
+0000870362 00000 n
+0001185630 00000 n
+0000874055 00000 n
+0000873799 00000 n
+0000870555 00000 n
+0000873925 00000 n
+0000873990 00000 n
+0000877036 00000 n
+0000876392 00000 n
+0000874183 00000 n
+0000876518 00000 n
+0000876583 00000 n
+0000876648 00000 n
+0000876713 00000 n
+0000876778 00000 n
+0000876907 00000 n
+0000876972 00000 n
+0000879767 00000 n
+0000878993 00000 n
+0000877191 00000 n
+0000879119 00000 n
+0000879184 00000 n
+0000879249 00000 n
+0000879314 00000 n
+0000879378 00000 n
+0000879443 00000 n
+0000879637 00000 n
+0000879702 00000 n
+0000883447 00000 n
+0000883061 00000 n
+0000879923 00000 n
+0000883187 00000 n
+0000883252 00000 n
+0000883317 00000 n
+0000883382 00000 n
+0000886731 00000 n
+0000886152 00000 n
+0000883575 00000 n
+0000886278 00000 n
+0000886343 00000 n
+0000886408 00000 n
+0000886473 00000 n
+0000886602 00000 n
+0000886667 00000 n
+0000890383 00000 n
+0000889998 00000 n
+0000886873 00000 n
+0000890124 00000 n
+0000890189 00000 n
+0000890254 00000 n
+0000890319 00000 n
+0001185755 00000 n
+0000894551 00000 n
+0000894360 00000 n
+0000890525 00000 n
+0000894486 00000 n
+0000898159 00000 n
+0000897968 00000 n
+0000894679 00000 n
+0000898094 00000 n
+0000901755 00000 n
+0000901500 00000 n
+0000898287 00000 n
+0000901626 00000 n
+0000901691 00000 n
+0000904546 00000 n
+0000903837 00000 n
+0000901911 00000 n
+0000903963 00000 n
+0000904028 00000 n
+0000904093 00000 n
+0000904222 00000 n
+0000904287 00000 n
+0000904351 00000 n
+0000904416 00000 n
+0000904481 00000 n
+0000907815 00000 n
+0000907171 00000 n
+0000904702 00000 n
+0000907297 00000 n
+0000907362 00000 n
+0000907427 00000 n
+0000907556 00000 n
+0000907620 00000 n
+0000907685 00000 n
+0000907750 00000 n
+0000910558 00000 n
+0000909851 00000 n
+0000907971 00000 n
+0000909977 00000 n
+0000910042 00000 n
+0000910107 00000 n
+0000910172 00000 n
+0000910237 00000 n
+0000910363 00000 n
+0000910428 00000 n
+0000910493 00000 n
+0001185880 00000 n
+0000914088 00000 n
+0000913767 00000 n
+0000910714 00000 n
+0000913893 00000 n
+0000913958 00000 n
+0000914023 00000 n
+0000917360 00000 n
+0000917105 00000 n
+0000914202 00000 n
+0000917231 00000 n
+0000917296 00000 n
+0000920466 00000 n
+0000919756 00000 n
+0000917488 00000 n
+0000919882 00000 n
+0000919947 00000 n
+0000920012 00000 n
+0000920141 00000 n
+0000920206 00000 n
+0000920271 00000 n
+0000920336 00000 n
+0000920401 00000 n
+0000923956 00000 n
+0000923765 00000 n
+0000920622 00000 n
+0000923891 00000 n
+0000927115 00000 n
+0000926730 00000 n
+0000924169 00000 n
+0000926856 00000 n
+0000926921 00000 n
+0000926986 00000 n
+0000927051 00000 n
+0000929667 00000 n
+0000928894 00000 n
+0000927356 00000 n
+0000929020 00000 n
+0000929085 00000 n
+0000929150 00000 n
+0000929279 00000 n
+0000929343 00000 n
+0000929408 00000 n
+0000929473 00000 n
+0000929538 00000 n
+0000929603 00000 n
+0001186005 00000 n
+0000933827 00000 n
+0000933312 00000 n
+0000929823 00000 n
+0000933438 00000 n
+0000933567 00000 n
+0000933632 00000 n
+0000933697 00000 n
+0000933762 00000 n
+0000938043 00000 n
+0000937787 00000 n
+0000933955 00000 n
+0000937913 00000 n
+0000937978 00000 n
+0000941362 00000 n
+0000941171 00000 n
+0000938171 00000 n
+0000941297 00000 n
+0000943980 00000 n
+0000943530 00000 n
+0000941490 00000 n
+0000943656 00000 n
+0000943721 00000 n
+0000943786 00000 n
+0000943851 00000 n
+0000943916 00000 n
+0000947829 00000 n
+0000947249 00000 n
+0000944135 00000 n
+0000947375 00000 n
+0000947504 00000 n
+0000947569 00000 n
+0000947634 00000 n
+0000947699 00000 n
+0000947764 00000 n
+0000950994 00000 n
+0000950284 00000 n
+0000947971 00000 n
+0000950410 00000 n
+0000950475 00000 n
+0000950540 00000 n
+0000950605 00000 n
+0000950734 00000 n
+0000950799 00000 n
+0000950864 00000 n
+0000950929 00000 n
+0001186130 00000 n
+0000953715 00000 n
+0000953459 00000 n
+0000951150 00000 n
+0000953585 00000 n
+0000953650 00000 n
+0000956971 00000 n
+0000956198 00000 n
+0000953843 00000 n
+0000956324 00000 n
+0000956389 00000 n
+0000956454 00000 n
+0000956519 00000 n
+0000956648 00000 n
+0000956713 00000 n
+0000956778 00000 n
+0000956842 00000 n
+0000956907 00000 n
+0000960261 00000 n
+0000959942 00000 n
+0000957127 00000 n
+0000960068 00000 n
+0000960133 00000 n
+0000960198 00000 n
+0000963731 00000 n
+0000963088 00000 n
+0000960417 00000 n
+0000963214 00000 n
+0000963279 00000 n
+0000963408 00000 n
+0000963472 00000 n
+0000963537 00000 n
+0000963602 00000 n
+0000963666 00000 n
+0000966347 00000 n
+0000965380 00000 n
+0000963873 00000 n
+0000965506 00000 n
+0000965571 00000 n
+0000965636 00000 n
+0000965765 00000 n
+0000965830 00000 n
+0000965895 00000 n
+0000965960 00000 n
+0000966025 00000 n
+0000966090 00000 n
+0000966218 00000 n
+0000966283 00000 n
+0000969240 00000 n
+0000968405 00000 n
+0000966503 00000 n
+0000968531 00000 n
+0000968596 00000 n
+0000968661 00000 n
+0000968726 00000 n
+0000968791 00000 n
+0000968856 00000 n
+0000968984 00000 n
+0000969047 00000 n
+0000969111 00000 n
+0000969176 00000 n
+0001186255 00000 n
+0000971984 00000 n
+0000971145 00000 n
+0000969382 00000 n
+0000971271 00000 n
+0000971336 00000 n
+0000971401 00000 n
+0000971466 00000 n
+0000971595 00000 n
+0000971660 00000 n
+0000971725 00000 n
+0000971790 00000 n
+0000971855 00000 n
+0000971920 00000 n
+0000972775 00000 n
+0000972519 00000 n
+0000972126 00000 n
+0000972645 00000 n
+0000972710 00000 n
+0000972974 00000 n
+0000984318 00000 n
+0000991907 00000 n
+0000995542 00000 n
+0001004983 00000 n
+0001015718 00000 n
+0001018419 00000 n
+0001018388 00000 n
+0001030103 00000 n
+0001043326 00000 n
+0001062824 00000 n
+0001083890 00000 n
+0001106040 00000 n
+0001124296 00000 n
+0001127143 00000 n
+0001126913 00000 n
+0001154561 00000 n
+0001181890 00000 n
+0001186353 00000 n
+0001186478 00000 n
+0001186604 00000 n
+0001186730 00000 n
+0001186856 00000 n
+0001186982 00000 n
+0001187071 00000 n
+0001187181 00000 n
+0001209176 00000 n
+0001233685 00000 n
+0001233726 00000 n
+0001233766 00000 n
+0001233900 00000 n
trailer
<<
/Size 2800
/Root 2798 0 R
/Info 2799 0 R
-/ID [<EA1F38E6B05D5ACF325408BFBA2168A5> <EA1F38E6B05D5ACF325408BFBA2168A5>]
+/ID [<914B735BF71059180CCD862926A70AED> <914B735BF71059180CCD862926A70AED>]
>>
startxref
-1232729
+1234158
%%EOF
diff --git a/doc/arm/man.arpaname.html b/doc/arm/man.arpaname.html
index 2ea97596..b444e4ea 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="id2619485"></a><h2>DESCRIPTION</h2>
+<a name="id2619344"></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="id2619500"></a><h2>SEE ALSO</h2>
+<a name="id2619358"></a><h2>SEE ALSO</h2>
<p>
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619514"></a><h2>AUTHOR</h2>
+<a name="id2619372"></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 f1618160..42d11a7e 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="id2654254"></a><h2>DESCRIPTION</h2>
+<a name="id2653157"></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="id2654342"></a><h2>OPTIONS</h2>
+<a name="id2653244"></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="id2654542"></a><h2>SEE ALSO</h2>
+<a name="id2654810"></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="id2654649"></a><h2>AUTHOR</h2>
+<a name="id2657648"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dig.html b/doc/arm/man.dig.html
index 9954460e..824ae82f 100644
--- a/doc/arm/man.dig.html
+++ b/doc/arm/man.dig.html
@@ -52,7 +52,7 @@
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2611217"></a><h2>DESCRIPTION</h2>
+<a name="id2610862"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dig</strong></span>
(domain information groper) is a flexible tool
for interrogating DNS name servers. It performs DNS lookups and
@@ -99,7 +99,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2611319"></a><h2>SIMPLE USAGE</h2>
+<a name="id2610965"></a><h2>SIMPLE USAGE</h2>
<p>
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
</p>
@@ -152,7 +152,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2611445"></a><h2>OPTIONS</h2>
+<a name="id2611842"></a><h2>OPTIONS</h2>
<p>
The <code class="option">-b</code> option sets the source IP address of the query
to <em class="parameter"><code>address</code></em>. This must be a valid
@@ -256,7 +256,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2664080"></a><h2>QUERY OPTIONS</h2>
+<a name="id2664340"></a><h2>QUERY OPTIONS</h2>
<p><span><strong class="command">dig</strong></span>
provides a number of query options which affect
the way in which lookups are made and the results displayed. Some of
@@ -607,7 +607,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665150"></a><h2>MULTIPLE QUERIES</h2>
+<a name="id2665411"></a><h2>MULTIPLE QUERIES</h2>
<p>
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
supports
@@ -653,7 +653,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665236"></a><h2>IDN SUPPORT</h2>
+<a name="id2665496"></a><h2>IDN SUPPORT</h2>
<p>
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
@@ -667,14 +667,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665265"></a><h2>FILES</h2>
+<a name="id2665525"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
<p><code class="filename">${HOME}/.digrc</code>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665286"></a><h2>SEE ALSO</h2>
+<a name="id2665614"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
@@ -682,7 +682,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2665323"></a><h2>BUGS</h2>
+<a name="id2665652"></a><h2>BUGS</h2>
<p>
There are probably too many query options.
</p>
diff --git a/doc/arm/man.dnssec-dsfromkey.html b/doc/arm/man.dnssec-dsfromkey.html
index 176037be..b016901a 100644
--- a/doc/arm/man.dnssec-dsfromkey.html
+++ b/doc/arm/man.dnssec-dsfromkey.html
@@ -51,14 +51,14 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> {-s} [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-s</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-A</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] {dnsname}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2612688"></a><h2>DESCRIPTION</h2>
+<a name="id2613289"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-dsfromkey</strong></span>
outputs the Delegation Signer (DS) resource record (RR), as defined in
RFC 3658 and RFC 4509, for the given key(s).
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2612974"></a><h2>OPTIONS</h2>
+<a name="id2613303"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-1</span></dt>
<dd><p>
@@ -135,7 +135,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2613209"></a><h2>EXAMPLE</h2>
+<a name="id2614084"></a><h2>EXAMPLE</h2>
<p>
To build the SHA-256 DS RR from the
<strong class="userinput"><code>Kexample.com.+003+26160</code></strong>
@@ -150,7 +150,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2613245"></a><h2>FILES</h2>
+<a name="id2614120"></a><h2>FILES</h2>
<p>
The keyfile can be designed by the key identification
<code class="filename">Knnnn.+aaa+iiiii</code> or the full file name
@@ -164,13 +164,13 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2613287"></a><h2>CAVEAT</h2>
+<a name="id2614162"></a><h2>CAVEAT</h2>
<p>
A keyfile error can give a "file not found" even if the file exists.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2613297"></a><h2>SEE ALSO</h2>
+<a name="id2614171"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -180,7 +180,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2613336"></a><h2>AUTHOR</h2>
+<a name="id2614211"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-keyfromlabel.html b/doc/arm/man.dnssec-keyfromlabel.html
index ab985840..21be7b50 100644
--- a/doc/arm/man.dnssec-keyfromlabel.html
+++ b/doc/arm/man.dnssec-keyfromlabel.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-keyfromlabel</code> {-l <em class="replaceable"><code>label</code></em>} [<code class="option">-3</code>] [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-k</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-y</code>] {name}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2614922"></a><h2>DESCRIPTION</h2>
+<a name="id2615182"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-keyfromlabel</strong></span>
gets keys with the given label from a crypto hardware and builds
key files for DNSSEC (Secure DNS), as defined in RFC 2535
@@ -63,7 +63,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2614942"></a><h2>OPTIONS</h2>
+<a name="id2615203"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
@@ -192,7 +192,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2616772"></a><h2>TIMING OPTIONS</h2>
+<a name="id2616964"></a><h2>TIMING OPTIONS</h2>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
@@ -239,7 +239,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2668411"></a><h2>GENERATED KEY FILES</h2>
+<a name="id2617130"></a><h2>GENERATED KEY FILES</h2>
<p>
When <span><strong class="command">dnssec-keyfromlabel</strong></span> completes
successfully,
@@ -278,7 +278,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2668505"></a><h2>SEE ALSO</h2>
+<a name="id2668629"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -286,7 +286,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2668538"></a><h2>AUTHOR</h2>
+<a name="id2668662"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-keygen.html b/doc/arm/man.dnssec-keygen.html
index 124a931d..73b46b93 100644
--- a/doc/arm/man.dnssec-keygen.html
+++ b/doc/arm/man.dnssec-keygen.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-keygen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-3</code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-C</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-k</code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-q</code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S <em class="replaceable"><code>key</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] {name}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2615758"></a><h2>DESCRIPTION</h2>
+<a name="id2616155"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-keygen</strong></span>
generates keys for DNSSEC (Secure DNS), as defined in RFC 2535
and RFC 4034. It can also generate keys for use with
@@ -64,7 +64,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2615779"></a><h2>OPTIONS</h2>
+<a name="id2616176"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
<dd>
@@ -274,7 +274,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2670308"></a><h2>TIMING OPTIONS</h2>
+<a name="id2669066"></a><h2>TIMING OPTIONS</h2>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
@@ -345,7 +345,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2670429"></a><h2>GENERATED KEYS</h2>
+<a name="id2669256"></a><h2>GENERATED KEYS</h2>
<p>
When <span><strong class="command">dnssec-keygen</strong></span> completes
successfully,
@@ -391,7 +391,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2670810"></a><h2>EXAMPLE</h2>
+<a name="id2669500"></a><h2>EXAMPLE</h2>
<p>
To generate a 768-bit DSA key for the domain
<strong class="userinput"><code>example.com</code></strong>, the following command would be
@@ -412,7 +412,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2670867"></a><h2>SEE ALSO</h2>
+<a name="id2669557"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 2539</em>,
@@ -421,7 +421,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2670898"></a><h2>AUTHOR</h2>
+<a name="id2669588"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-revoke.html b/doc/arm/man.dnssec-revoke.html
index bb502d90..095251af 100644
--- a/doc/arm/man.dnssec-revoke.html
+++ b/doc/arm/man.dnssec-revoke.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-revoke</code> [<code class="option">-hr</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f</code>] [<code class="option">-R</code>] {keyfile}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2616051"></a><h2>DESCRIPTION</h2>
+<a name="id2617267"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-revoke</strong></span>
reads a DNSSEC key file, sets the REVOKED bit on the key as defined
in RFC 5011, and creates a new pair of key files containing the
@@ -58,7 +58,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2616065"></a><h2>OPTIONS</h2>
+<a name="id2617281"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-h</span></dt>
<dd><p>
@@ -96,14 +96,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2616185"></a><h2>SEE ALSO</h2>
+<a name="id2617401"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 5011</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2616210"></a><h2>AUTHOR</h2>
+<a name="id2617426"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-settime.html b/doc/arm/man.dnssec-settime.html
index 160f8441..0fcfe0df 100644
--- a/doc/arm/man.dnssec-settime.html
+++ b/doc/arm/man.dnssec-settime.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-settime</code> [<code class="option">-f</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-h</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] {keyfile}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2616924"></a><h2>DESCRIPTION</h2>
+<a name="id2617594"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-settime</strong></span>
reads a DNSSEC private key file and sets the key timing metadata
as specified by the <code class="option">-P</code>, <code class="option">-A</code>,
@@ -76,7 +76,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2616983"></a><h2>OPTIONS</h2>
+<a name="id2617721"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-f</span></dt>
<dd><p>
@@ -118,7 +118,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2617582"></a><h2>TIMING OPTIONS</h2>
+<a name="id2617843"></a><h2>TIMING OPTIONS</h2>
<p>
Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS.
If the argument begins with a '+' or '-', it is interpreted as
@@ -197,7 +197,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2617721"></a><h2>PRINTING OPTIONS</h2>
+<a name="id2618050"></a><h2>PRINTING OPTIONS</h2>
<p>
<span><strong class="command">dnssec-settime</strong></span> can also be used to print the
timing metadata associated with a key.
@@ -223,7 +223,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619371"></a><h2>SEE ALSO</h2>
+<a name="id2618198"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -231,7 +231,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619404"></a><h2>AUTHOR</h2>
+<a name="id2619255"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-signzone.html b/doc/arm/man.dnssec-signzone.html
index 5037c71c..fb15d894 100644
--- a/doc/arm/man.dnssec-signzone.html
+++ b/doc/arm/man.dnssec-signzone.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-P</code>] [<code class="option">-p</code>] [<code class="option">-R</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S</code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-T <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-t</code>] [<code class="option">-u</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-X <em class="replaceable"><code>extended end-time</code></em></code>] [<code class="option">-x</code>] [<code class="option">-z</code>] [<code class="option">-3 <em class="replaceable"><code>salt</code></em></code>] [<code class="option">-H <em class="replaceable"><code>iterations</code></em></code>] [<code class="option">-A</code>] {zonefile} [key...]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619104"></a><h2>DESCRIPTION</h2>
+<a name="id2614380"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-signzone</strong></span>
signs a zone. It generates
NSEC and RRSIG records and produces a signed version of the
@@ -61,7 +61,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619123"></a><h2>OPTIONS</h2>
+<a name="id2614400"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-a</span></dt>
<dd><p>
@@ -464,7 +464,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2672163"></a><h2>EXAMPLE</h2>
+<a name="id2674539"></a><h2>EXAMPLE</h2>
<p>
The following command signs the <strong class="userinput"><code>example.com</code></strong>
zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span>
@@ -494,14 +494,14 @@ db.example.com.signed
%</pre>
</div>
<div class="refsect1" lang="en">
-<a name="id2672242"></a><h2>SEE ALSO</h2>
+<a name="id2674618"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
<em class="citetitle">RFC 4033</em>.
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2672266"></a><h2>AUTHOR</h2>
+<a name="id2674643"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.dnssec-verify.html b/doc/arm/man.dnssec-verify.html
index 27cf1266..2e1436cd 100644
--- a/doc/arm/man.dnssec-verify.html
+++ b/doc/arm/man.dnssec-verify.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">dnssec-verify</code> [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-x</code>] [<code class="option">-z</code>] {zonefile}</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619656"></a><h2>DESCRIPTION</h2>
+<a name="id2619848"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">dnssec-verify</strong></span>
verifies that a zone is fully signed for each algorithm found
in the DNSKEY RRset for the zone, and that the NSEC / NSEC3
@@ -58,7 +58,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619670"></a><h2>OPTIONS</h2>
+<a name="id2619862"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt>
<dd><p>
@@ -120,7 +120,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2619819"></a><h2>SEE ALSO</h2>
+<a name="id2620080"></a><h2>SEE ALSO</h2>
<p>
<span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
@@ -128,7 +128,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2619845"></a><h2>AUTHOR</h2>
+<a name="id2620105"></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 462bbad1..3a1b1a31 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="id2656816"></a><h2>DESCRIPTION</h2>
+<a name="id2657015"></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="id2656830"></a><h2>ARGUMENTS</h2>
+<a name="id2657030"></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="id2656891"></a><h2>SEE ALSO</h2>
+<a name="id2657091"></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="id2656918"></a><h2>AUTHOR</h2>
+<a name="id2657117"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/arm/man.host.html b/doc/arm/man.host.html
index a5d42cab..d2dafedf 100644
--- a/doc/arm/man.host.html
+++ b/doc/arm/man.host.html
@@ -50,7 +50,7 @@
<div class="cmdsynopsis"><p><code class="command">host</code> [<code class="option">-aCdlnrsTwv</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>] [<code class="option">-R <em class="replaceable"><code>number</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-W <em class="replaceable"><code>wait</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] {name} [server]</p></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2611754"></a><h2>DESCRIPTION</h2>
+<a name="id2612492"></a><h2>DESCRIPTION</h2>
<p><span><strong class="command">host</strong></span>
is a simple utility for performing DNS lookups.
It is normally used to convert names to IP addresses and vice versa.
@@ -202,7 +202,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2612268"></a><h2>IDN SUPPORT</h2>
+<a name="id2612938"></a><h2>IDN SUPPORT</h2>
<p>
If <span><strong class="command">host</strong></span> has been built with IDN (internationalized
domain name) support, it can accept and display non-ASCII domain names.
@@ -216,12 +216,12 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2612365"></a><h2>FILES</h2>
+<a name="id2612967"></a><h2>FILES</h2>
<p><code class="filename">/etc/resolv.conf</code>
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2612379"></a><h2>SEE ALSO</h2>
+<a name="id2612981"></a><h2>SEE ALSO</h2>
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
</p>
diff --git a/doc/arm/man.isc-hmac-fixup.html b/doc/arm/man.isc-hmac-fixup.html
index bc21ff6c..17e97f26 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="id2620237"></a><h2>DESCRIPTION</h2>
+<a name="id2620573"></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="id2620265"></a><h2>SECURITY CONSIDERATIONS</h2>
+<a name="id2620601"></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="id2656940"></a><h2>SEE ALSO</h2>
+<a name="id2620617"></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="id2656957"></a><h2>AUTHOR</h2>
+<a name="id2657703"></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 467d8227..38a367f4 100644
--- a/doc/arm/man.named-checkconf.html
+++ b/doc/arm/man.named-checkconf.html
@@ -50,7 +50,7 @@
<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>
<div class="refsect1" lang="en">
-<a name="id2619945"></a><h2>DESCRIPTION</h2>
+<a name="id2620205"></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="id2620016"></a><h2>OPTIONS</h2>
+<a name="id2620276"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-h</span></dt>
<dd><p>
@@ -109,21 +109,21 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2620696"></a><h2>RETURN VALUES</h2>
+<a name="id2620478"></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="id2620710"></a><h2>SEE ALSO</h2>
+<a name="id2620492"></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="id2620740"></a><h2>AUTHOR</h2>
+<a name="id2620522"></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 099daf55..019579b2 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">-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="id2637155"></a><h2>DESCRIPTION</h2>
+<a name="id2639804"></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="id2637205"></a><h2>OPTIONS</h2>
+<a name="id2639854"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-d</span></dt>
<dd><p>
@@ -281,14 +281,14 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2677408"></a><h2>RETURN VALUES</h2>
+<a name="id2677531"></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="id2677421"></a><h2>SEE ALSO</h2>
+<a name="id2677545"></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>,
@@ -296,7 +296,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2677454"></a><h2>AUTHOR</h2>
+<a name="id2677578"></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 1192948c..9e20b773 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="id2617302"></a><h2>DESCRIPTION</h2>
+<a name="id2615453"></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="id2640490"></a><h2>SEE ALSO</h2>
+<a name="id2615499"></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="id2640521"></a><h2>AUTHOR</h2>
+<a name="id2640311"></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 d2f86dbf..ac327485 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="id2637285"></a><h2>DESCRIPTION</h2>
+<a name="id2637214"></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="id2637316"></a><h2>OPTIONS</h2>
+<a name="id2637245"></a><h2>OPTIONS</h2>
<div class="variablelist"><dl>
<dt><span class="term">-4</span></dt>
<dd><p>
@@ -201,9 +201,10 @@
Use <em class="replaceable"><code>#listeners</code></em>
worker threads to listen for incoming UDP packets on each
address. If not specified, <span><strong class="command">named</strong></span> will
- use all of the worker threads for this purpose; the
- <code class="option">-U</code> option allows the number to be
- decreased but not increased.
+ use the number of detected CPUs. If <code class="option">-n</code>
+ has been set to a higher value than the number of CPUs,
+ then <code class="option">-U</code> may be increased as high as that
+ value, but no higher.
</p></dd>
<dt><span class="term">-u <em class="replaceable"><code>user</code></em></span></dt>
<dd>
@@ -255,7 +256,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2642474"></a><h2>SIGNALS</h2>
+<a name="id2677838"></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
@@ -276,7 +277,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2642524"></a><h2>CONFIGURATION</h2>
+<a name="id2677889"></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
@@ -293,7 +294,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2677662"></a><h2>FILES</h2>
+<a name="id2677938"></a><h2>FILES</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="filename">/etc/named.conf</code></span></dt>
<dd><p>
@@ -306,7 +307,7 @@
</dl></div>
</div>
<div class="refsect1" lang="en">
-<a name="id2677706"></a><h2>SEE ALSO</h2>
+<a name="id2677981"></a><h2>SEE ALSO</h2>
<p><em class="citetitle">RFC 1033</em>,
<em class="citetitle">RFC 1034</em>,
<em class="citetitle">RFC 1035</em>,
@@ -319,7 +320,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2677777"></a><h2>AUTHOR</h2>
+<a name="id2678052"></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 0de0e6dc..4d261577 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="id2620414"></a><h2>DESCRIPTION</h2>
+<a name="id2657819"></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="id2657089"></a><h2>ARGUMENTS</h2>
+<a name="id2657834"></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="id2657150"></a><h2>SEE ALSO</h2>
+<a name="id2657896"></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="id2657168"></a><h2>AUTHOR</h2>
+<a name="id2657913"></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 39ffd667..ffa56fa3 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="id2640849"></a><h2>DESCRIPTION</h2>
+<a name="id2640912"></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="id2641251"></a><h2>INPUT FORMAT</h2>
+<a name="id2678109"></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="id2678907"></a><h2>EXAMPLES</h2>
+<a name="id2679243"></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="id2678957"></a><h2>FILES</h2>
+<a name="id2679293"></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="id2679177"></a><h2>SEE ALSO</h2>
+<a name="id2679377"></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="id2679235"></a><h2>BUGS</h2>
+<a name="id2679502"></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 c3f61164..4c47247a 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="id2644443"></a><h2>DESCRIPTION</h2>
+<a name="id2644643"></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="id2644509"></a><h2>OPTIONS</h2>
+<a name="id2644709"></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="id2649265"></a><h2>EXAMPLES</h2>
+<a name="id2650693"></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="id2655738"></a><h2>SEE ALSO</h2>
+<a name="id2657303"></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="id2655777"></a><h2>AUTHOR</h2>
+<a name="id2657341"></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 432445df..1f4123c9 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="id2618902"></a><h2>DESCRIPTION</h2>
+<a name="id2618350"></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="id2643854"></a><h2>EXAMPLE</h2>
+<a name="id2643917"></a><h2>EXAMPLE</h2>
<pre class="programlisting">
options {
default-server localhost;
@@ -209,7 +209,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2644044"></a><h2>NAME SERVER CONFIGURATION</h2>
+<a name="id2644244"></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="id2644070"></a><h2>SEE ALSO</h2>
+<a name="id2644269"></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="id2644108"></a><h2>AUTHOR</h2>
+<a name="id2644308"></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 1058b84b..3f6fe5da 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="id2642969"></a><h2>DESCRIPTION</h2>
+<a name="id2642759"></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="id2643019"></a><h2>OPTIONS</h2>
+<a name="id2642809"></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>
@@ -151,7 +151,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2643313"></a><h2>LIMITATIONS</h2>
+<a name="id2643034"></a><h2>LIMITATIONS</h2>
<p><span><strong class="command">rndc</strong></span>
does not yet support all the commands of
the BIND 8 <span><strong class="command">ndc</strong></span> utility.
@@ -165,7 +165,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2643344"></a><h2>SEE ALSO</h2>
+<a name="id2643065"></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>,
@@ -175,7 +175,7 @@
</p>
</div>
<div class="refsect1" lang="en">
-<a name="id2643672"></a><h2>AUTHOR</h2>
+<a name="id2643121"></a><h2>AUTHOR</h2>
<p><span class="corpauthor">Internet Systems Consortium</span>
</p>
</div>
diff --git a/doc/misc/options b/doc/misc/options
index 8a238766..9ba89d31 100644
--- a/doc/misc/options
+++ b/doc/misc/options
@@ -206,7 +206,7 @@ options {
| passthru | no-op | nxdomain | nodata | cname <quoted_string>
) ] [ recursive-only <boolean> ] [ max-policy-ttl <integer> ];
... } [ recursive-only <boolean> ] [ break-dnssec <boolean> ] [
- max-policy-ttl <integer> ];
+ max-policy-ttl <integer> ] [ min-ns-dots <integer> ];
rfc2308-type1 <boolean>; // not yet implemented
root-delegation-only [ exclude { <quoted_string>; ... } ];
rrset-order { [ class <string> ] [ type <string> ] [ name
@@ -253,7 +253,7 @@ options {
version ( <quoted_string> | none );
zero-no-soa-ttl <boolean>;
zero-no-soa-ttl-cache <boolean>;
- zone-statistics <boolean>;
+ zone-statistics <zonestat>;
};
server <netprefix> {
@@ -417,7 +417,7 @@ view <string> <optional_class> {
| passthru | no-op | nxdomain | nodata | cname <quoted_string>
) ] [ recursive-only <boolean> ] [ max-policy-ttl <integer> ];
... } [ recursive-only <boolean> ] [ break-dnssec <boolean> ] [
- max-policy-ttl <integer> ];
+ max-policy-ttl <integer> ] [ min-ns-dots <integer> ];
rfc2308-type1 <boolean>; // not yet implemented
root-delegation-only [ exclude { <quoted_string>; ... } ];
rrset-order { [ class <string> ] [ type <string> ] [ name
@@ -553,9 +553,9 @@ view <string> <optional_class> {
] <rrtypelist>; ... };
use-alt-transfer-source <boolean>;
zero-no-soa-ttl <boolean>;
- zone-statistics <boolean>;
+ zone-statistics <zonestat>;
};
- zone-statistics <boolean>;
+ zone-statistics <zonestat>;
};
zone <string> <optional_class> {
@@ -641,6 +641,6 @@ zone <string> <optional_class> {
| zonesub | external ) [ <string> ] <rrtypelist>; ... };
use-alt-transfer-source <boolean>;
zero-no-soa-ttl <boolean>;
- zone-statistics <boolean>;
+ zone-statistics <zonestat>;
};
diff --git a/lib/bind9/api b/lib/bind9/api
index a6ac8011..6e3228f6 100644
--- a/lib/bind9/api
+++ b/lib/bind9/api
@@ -4,5 +4,5 @@
# 9.8: 80-89
# 9.9: 90-109
LIBINTERFACE = 90
-LIBREVISION = 6
+LIBREVISION = 7
LIBAGE = 0
diff --git a/lib/bind9/check.c b/lib/bind9/check.c
index 3186a90a..91f8bff1 100644
--- a/lib/bind9/check.c
+++ b/lib/bind9/check.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2001-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1785,20 +1785,27 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
/*
* If the zone type is rbt/rbt64 then master/hint zones
* require file clauses.
+ * If inline signing is used, then slave zones require a
+ * file clause as well
*/
obj = NULL;
tresult = cfg_map_get(zoptions, "database", &obj);
if (tresult == ISC_R_NOTFOUND ||
(tresult == ISC_R_SUCCESS &&
(strcmp("rbt", cfg_obj_asstring(obj)) == 0 ||
- strcmp("rbt64", cfg_obj_asstring(obj)) == 0))) {
+ strcmp("rbt64", cfg_obj_asstring(obj)) == 0)))
+ {
+ isc_result_t res1;
obj = NULL;
tresult = cfg_map_get(zoptions, "file", &obj);
- if (tresult != ISC_R_SUCCESS &&
- (ztype == MASTERZONE || ztype == HINTZONE)) {
+ obj = NULL;
+ res1 = cfg_map_get(zoptions, "inline-signing", &obj);
+ if ((tresult != ISC_R_SUCCESS &&
+ (ztype == MASTERZONE || ztype == HINTZONE)) ||
+ (ztype == SLAVEZONE && res1 == ISC_R_SUCCESS)) {
cfg_obj_log(zconfig, logctx, ISC_LOG_ERROR,
- "zone '%s': missing 'file' entry",
- znamestr);
+ "zone '%s': missing 'file' entry",
+ znamestr);
result = tresult;
}
}
diff --git a/lib/dns/Makefile.in b/lib/dns/Makefile.in
index a0063388..b712ab1c 100644
--- a/lib/dns/Makefile.in
+++ b/lib/dns/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -46,8 +46,9 @@ LIBS = @LIBS@
# Alphabetically
+OPENSSLGOSTLINKOBJS = opensslgost_link.@O@
OPENSSLLINKOBJS = openssl_link.@O@ openssldh_link.@O@ openssldsa_link.@O@ \
- opensslecdsa_link.@O@ opensslgost_link.@O@ \
+ opensslecdsa_link.@O@ @OPENSSLGOSTLINKOBJS@ \
opensslrsa_link.@O@
DSTOBJS = @DST_EXTRA_OBJS@ @OPENSSLLINKOBJS@ \
@@ -76,8 +77,9 @@ DNSOBJS = acache.@O@ acl.@O@ adb.@O@ byaddr.@O@ \
OBJS= ${DNSOBJS} ${OTHEROBJS} ${DSTOBJS}
# Alphabetically
+OPENSSLGOSTLINKSRCS = opensslgost_link.c
OPENSSLLINKSRCS = openssl_link.c openssldh_link.c openssldsa_link.c \
- opensslecdsa_link.c opensslgost_link.c opensslrsa_link.c
+ opensslecdsa_link.c @OPENSSLGOSTLINKSRCS@ opensslrsa_link.c
DSTSRCS = @DST_EXTRA_SRCS@ @OPENSSLLINKSRCS@ \
dst_api.c dst_lib.c dst_parse.c \
diff --git a/lib/dns/acache.c b/lib/dns/acache.c
index 702fb984..d8d5535c 100644
--- a/lib/dns/acache.c
+++ b/lib/dns/acache.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2012, 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
@@ -73,10 +73,10 @@
* (XXX simply derived from definitions in cache.c There may be better
* constants here.)
*/
-#define DNS_ACACHE_MINSIZE 2097152 /* Bytes. 2097152 = 2 MB */
-#define DNS_ACACHE_CLEANERINCREMENT 1000 /* Number of entries. */
+#define DNS_ACACHE_MINSIZE 2097152U /* Bytes. 2097152 = 2 MB */
+#define DNS_ACACHE_CLEANERINCREMENT 1000 /* Number of entries. */
-#define DEFAULT_ACACHE_ENTRY_LOCK_COUNT 1009 /*%< Should be prime. */
+#define DEFAULT_ACACHE_ENTRY_LOCK_COUNT 1009 /*%< Should be prime. */
#if defined(ISC_RWLOCK_USEATOMIC) && defined(ISC_PLATFORM_HAVEATOMICSTORE)
#define ACACHE_USE_RWLOCK 1
@@ -1769,19 +1769,18 @@ dns_acache_setcleaninginterval(dns_acache_t *acache, unsigned int t) {
* function for more details about the logic.
*/
void
-dns_acache_setcachesize(dns_acache_t *acache, isc_uint32_t size) {
- isc_uint32_t lowater;
- isc_uint32_t hiwater;
+dns_acache_setcachesize(dns_acache_t *acache, size_t size) {
+ size_t hiwater, lowater;
REQUIRE(DNS_ACACHE_VALID(acache));
- if (size != 0 && size < DNS_ACACHE_MINSIZE)
+ if (size != 0U && size < DNS_ACACHE_MINSIZE)
size = DNS_ACACHE_MINSIZE;
hiwater = size - (size >> 3);
lowater = size - (size >> 2);
- if (size == 0 || hiwater == 0 || lowater == 0)
+ if (size == 0U || hiwater == 0U || lowater == 0U)
isc_mem_setwater(acache->mctx, water, acache, 0, 0);
else
isc_mem_setwater(acache->mctx, water, acache,
diff --git a/lib/dns/acl.c b/lib/dns/acl.c
index 2906e7ad..3221d30c 100644
--- a/lib/dns/acl.c
+++ b/lib/dns/acl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011, 2013 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,10 @@ dns_acl_create(isc_mem_t *mctx, int n, dns_acl_t **target) {
acl = isc_mem_get(mctx, sizeof(*acl));
if (acl == NULL)
return (ISC_R_NOMEMORY);
- acl->mctx = mctx;
+
+ acl->mctx = NULL;
+ isc_mem_attach(mctx, &acl->mctx);
+
acl->name = NULL;
result = isc_refcount_init(&acl->refcount, 1);
@@ -467,7 +470,7 @@ destroy(dns_acl_t *dacl) {
dns_iptable_detach(&dacl->iptable);
isc_refcount_destroy(&dacl->refcount);
dacl->magic = 0;
- isc_mem_put(dacl->mctx, dacl, sizeof(*dacl));
+ isc_mem_putanddetach(&dacl->mctx, dacl, sizeof(*dacl));
}
void
diff --git a/lib/dns/adb.c b/lib/dns/adb.c
index ad60539d..e6af1180 100644
--- a/lib/dns/adb.c
+++ b/lib/dns/adb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -89,7 +89,7 @@
#define DNS_ADB_INVALIDBUCKET (-1) /*%< invalid bucket address */
-#define DNS_ADB_MINADBSIZE (1024*1024) /*%< 1 Megabyte */
+#define DNS_ADB_MINADBSIZE (1024U*1024U) /*%< 1 Megabyte */
typedef ISC_LIST(dns_adbname_t) dns_adbnamelist_t;
typedef struct dns_adbnamehook dns_adbnamehook_t;
@@ -518,7 +518,9 @@ grow_entries(isc_task_t *task, isc_event_t *ev) {
isc_event_free(&ev);
- isc_task_beginexclusive(task);
+ result = isc_task_beginexclusive(task);
+ if (result != ISC_R_SUCCESS)
+ goto check_exit;
i = 0;
while (nbuckets[i] != 0 && adb->nentries >= nbuckets[i])
@@ -646,6 +648,7 @@ grow_entries(isc_task_t *task, isc_event_t *ev) {
done:
isc_task_endexclusive(task);
+ check_exit:
LOCK(&adb->lock);
if (dec_adb_irefcnt(adb))
check_exit(adb);
@@ -670,7 +673,9 @@ grow_names(isc_task_t *task, isc_event_t *ev) {
isc_event_free(&ev);
- isc_task_beginexclusive(task);
+ result = isc_task_beginexclusive(task);
+ if (result != ISC_R_SUCCESS)
+ goto check_exit;
i = 0;
while (nbuckets[i] != 0 && adb->nnames >= nbuckets[i])
@@ -794,6 +799,7 @@ grow_names(isc_task_t *task, isc_event_t *ev) {
done:
isc_task_endexclusive(task);
+ check_exit:
LOCK(&adb->lock);
if (dec_adb_irefcnt(adb))
check_exit(adb);
@@ -4122,19 +4128,18 @@ water(void *arg, int mark) {
}
void
-dns_adb_setadbsize(dns_adb_t *adb, isc_uint32_t size) {
- isc_uint32_t hiwater;
- isc_uint32_t lowater;
+dns_adb_setadbsize(dns_adb_t *adb, size_t size) {
+ size_t hiwater, lowater;
INSIST(DNS_ADB_VALID(adb));
- if (size != 0 && size < DNS_ADB_MINADBSIZE)
+ if (size != 0U && size < DNS_ADB_MINADBSIZE)
size = DNS_ADB_MINADBSIZE;
hiwater = size - (size >> 3); /* Approximately 7/8ths. */
lowater = size - (size >> 2); /* Approximately 3/4ths. */
- if (size == 0 || hiwater == 0 || lowater == 0)
+ if (size == 0U || hiwater == 0U || lowater == 0U)
isc_mem_setwater(adb->mctx, water, adb, 0, 0);
else
isc_mem_setwater(adb->mctx, water, adb, hiwater, lowater);
diff --git a/lib/dns/api b/lib/dns/api
index 6194e2bb..6192a53f 100644
--- a/lib/dns/api
+++ b/lib/dns/api
@@ -3,6 +3,6 @@
# 9.7: 60-79
# 9.8: 80-89, 120-129
# 9.9: 90-109
-LIBINTERFACE = 97
+LIBINTERFACE = 98
LIBREVISION = 0
LIBAGE = 0
diff --git a/lib/dns/byaddr.c b/lib/dns/byaddr.c
index 6a3a6036..eb05f9f8 100644
--- a/lib/dns/byaddr.c
+++ b/lib/dns/byaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -224,7 +224,8 @@ dns_byaddr_create(isc_mem_t *mctx, isc_netaddr_t *address, dns_view_t *view,
byaddr = isc_mem_get(mctx, sizeof(*byaddr));
if (byaddr == NULL)
return (ISC_R_NOMEMORY);
- byaddr->mctx = mctx;
+ byaddr->mctx = NULL;
+ isc_mem_attach(mctx, &byaddr->mctx);
byaddr->options = options;
byaddr->event = isc_mem_get(mctx, sizeof(*byaddr->event));
@@ -277,7 +278,7 @@ dns_byaddr_create(isc_mem_t *mctx, isc_netaddr_t *address, dns_view_t *view,
isc_task_detach(&byaddr->task);
cleanup_byaddr:
- isc_mem_put(mctx, byaddr, sizeof(*byaddr));
+ isc_mem_putanddetach(&mctx, byaddr, sizeof(*byaddr));
return (result);
}
@@ -310,7 +311,7 @@ dns_byaddr_destroy(dns_byaddr_t **byaddrp) {
DESTROYLOCK(&byaddr->lock);
byaddr->magic = 0;
- isc_mem_put(byaddr->mctx, byaddr, sizeof(*byaddr));
+ isc_mem_putanddetach(&byaddr->mctx, byaddr, sizeof(*byaddr));
*byaddrp = NULL;
}
diff --git a/lib/dns/cache.c b/lib/dns/cache.c
index 7ba944b7..d0f05b9a 100644
--- a/lib/dns/cache.c
+++ b/lib/dns/cache.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -50,7 +50,7 @@
* DNS_CACHE_MINSIZE is how many bytes is the floor for dns_cache_setcachesize().
* See also DNS_CACHE_CLEANERINCREMENT
*/
-#define DNS_CACHE_MINSIZE 2097152 /*%< Bytes. 2097152 = 2 MB */
+#define DNS_CACHE_MINSIZE 2097152U /*%< Bytes. 2097152 = 2 MB */
/*!
* Control incremental cleaning.
* CLEANERINCREMENT is how many nodes are examined in one pass.
@@ -136,7 +136,7 @@ struct dns_cache {
char *db_type;
int db_argc;
char **db_argv;
- isc_uint32_t size;
+ size_t size;
/* Locked by 'filelock'. */
char *filename;
@@ -1028,9 +1028,8 @@ water(void *arg, int mark) {
}
void
-dns_cache_setcachesize(dns_cache_t *cache, isc_uint32_t size) {
- isc_uint32_t lowater;
- isc_uint32_t hiwater;
+dns_cache_setcachesize(dns_cache_t *cache, size_t size) {
+ size_t hiwater, lowater;
REQUIRE(VALID_CACHE(cache));
@@ -1038,7 +1037,7 @@ dns_cache_setcachesize(dns_cache_t *cache, isc_uint32_t size) {
* Impose a minimum cache size; pathological things happen if there
* is too little room.
*/
- if (size != 0 && size < DNS_CACHE_MINSIZE)
+ if (size != 0U && size < DNS_CACHE_MINSIZE)
size = DNS_CACHE_MINSIZE;
LOCK(&cache->lock);
@@ -1055,7 +1054,7 @@ dns_cache_setcachesize(dns_cache_t *cache, isc_uint32_t size) {
* water().
*/
- if (size == 0 || hiwater == 0 || lowater == 0)
+ if (size == 0U || hiwater == 0U || lowater == 0U)
/*
* Disable cache memory limiting.
*/
@@ -1068,9 +1067,9 @@ dns_cache_setcachesize(dns_cache_t *cache, isc_uint32_t size) {
isc_mem_setwater(cache->mctx, water, cache, hiwater, lowater);
}
-isc_uint32_t
+size_t
dns_cache_getcachesize(dns_cache_t *cache) {
- isc_uint32_t size;
+ size_t size;
REQUIRE(VALID_CACHE(cache));
diff --git a/lib/dns/db.c b/lib/dns/db.c
index 77547268..bf4a5b37 100644
--- a/lib/dns/db.c
+++ b/lib/dns/db.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-2013 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
@@ -1007,11 +1007,12 @@ dns_db_resigned(dns_db_t *db, dns_rdataset_t *rdataset,
(db->methods->resigned)(db, rdataset, version);
}
-void
+isc_result_t
dns_db_rpz_enabled(dns_db_t *db, dns_rpz_st_t *st)
{
if (db->methods->rpz_enabled != NULL)
- (db->methods->rpz_enabled)(db, st);
+ return ((db->methods->rpz_enabled)(db, st));
+ return (ISC_R_SUCCESS);
}
void
diff --git a/lib/dns/dbtable.c b/lib/dns/dbtable.c
index 57bbfc1e..20092209 100644
--- a/lib/dns/dbtable.c
+++ b/lib/dns/dbtable.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -89,7 +89,8 @@ dns_dbtable_create(isc_mem_t *mctx, dns_rdataclass_t rdclass,
goto clean3;
dbtable->default_db = NULL;
- dbtable->mctx = mctx;
+ dbtable->mctx = NULL;
+ isc_mem_attach(mctx, &dbtable->mctx);
dbtable->rdclass = rdclass;
dbtable->magic = DBTABLE_MAGIC;
dbtable->references = 1;
@@ -105,7 +106,7 @@ dns_dbtable_create(isc_mem_t *mctx, dns_rdataclass_t rdclass,
dns_rbt_destroy(&dbtable->rbt);
clean1:
- isc_mem_put(mctx, dbtable, sizeof(*dbtable));
+ isc_mem_putanddetach(&mctx, dbtable, sizeof(*dbtable));
return (result);
}
@@ -129,7 +130,7 @@ dbtable_free(dns_dbtable_t *dbtable) {
dbtable->magic = 0;
- isc_mem_put(dbtable->mctx, dbtable, sizeof(*dbtable));
+ isc_mem_putanddetach(&dbtable->mctx, dbtable, sizeof(*dbtable));
}
void
diff --git a/lib/dns/diff.c b/lib/dns/diff.c
index db665d95..ff60d462 100644
--- a/lib/dns/diff.c
+++ b/lib/dns/diff.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -73,7 +73,8 @@ dns_difftuple_create(isc_mem_t *mctx,
t = isc_mem_allocate(mctx, size);
if (t == NULL)
return (ISC_R_NOMEMORY);
- t->mctx = mctx;
+ t->mctx = NULL;
+ isc_mem_attach(mctx, &t->mctx);
t->op = op;
datap = (unsigned char *)(t + 1);
@@ -105,10 +106,15 @@ dns_difftuple_create(isc_mem_t *mctx,
void
dns_difftuple_free(dns_difftuple_t **tp) {
dns_difftuple_t *t = *tp;
+ isc_mem_t *mctx;
+
REQUIRE(DNS_DIFFTUPLE_VALID(t));
+
dns_name_invalidate(&t->name);
t->magic = 0;
- isc_mem_free(t->mctx, t);
+ mctx = t->mctx;
+ isc_mem_free(mctx, t);
+ isc_mem_detach(&mctx);
*tp = NULL;
}
diff --git a/lib/dns/dlz.c b/lib/dns/dlz.c
index c039dd5a..19c600c9 100644
--- a/lib/dns/dlz.c
+++ b/lib/dns/dlz.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2005, 2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2005, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -142,6 +142,7 @@ dns_dlzcreate(isc_mem_t *mctx, const char *dlzname, const char *drivername,
{
dns_dlzimplementation_t *impinfo;
isc_result_t result;
+ dns_dlzdb_t *db = NULL;
/*
* initialize the dlz_implementations list, this is guaranteed
@@ -180,30 +181,31 @@ dns_dlzcreate(isc_mem_t *mctx, const char *dlzname, const char *drivername,
}
/* Allocate memory to hold the DLZ database driver */
- (*dbp) = isc_mem_get(mctx, sizeof(dns_dlzdb_t));
- if ((*dbp) == NULL) {
+ db = isc_mem_get(mctx, sizeof(dns_dlzdb_t));
+ if (db == NULL) {
RWUNLOCK(&dlz_implock, isc_rwlocktype_read);
return (ISC_R_NOMEMORY);
}
/* Make sure memory region is set to all 0's */
- memset((*dbp), 0, sizeof(dns_dlzdb_t));
+ memset(db, 0, sizeof(dns_dlzdb_t));
- (*dbp)->implementation = impinfo;
+ db->implementation = impinfo;
/* Create a new database using implementation 'drivername'. */
result = ((impinfo->methods->create)(mctx, dlzname, argc, argv,
impinfo->driverarg,
- &(*dbp)->dbdata));
+ &db->dbdata));
/* mark the DLZ driver as valid */
if (result == ISC_R_SUCCESS) {
RWUNLOCK(&dlz_implock, isc_rwlocktype_read);
- (*dbp)->magic = DNS_DLZ_MAGIC;
- isc_mem_attach(mctx, &(*dbp)->mctx);
+ db->magic = DNS_DLZ_MAGIC;
+ isc_mem_attach(mctx, &db->mctx);
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_DEBUG(2),
"DLZ driver loaded successfully.");
+ *dbp = db;
return (ISC_R_SUCCESS);
} else {
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
@@ -213,7 +215,7 @@ dns_dlzcreate(isc_mem_t *mctx, const char *dlzname, const char *drivername,
/* impinfo->methods->create failed. */
RWUNLOCK(&dlz_implock, isc_rwlocktype_read);
- isc_mem_put(mctx, (*dbp), sizeof(dns_dlzdb_t));
+ isc_mem_put(mctx, db, sizeof(dns_dlzdb_t));
return (result);
}
diff --git a/lib/dns/dst_api.c b/lib/dns/dst_api.c
index 9ad58dc0..98607246 100644
--- a/lib/dns/dst_api.c
+++ b/lib/dns/dst_api.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004-2013 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
@@ -1135,7 +1135,7 @@ dst_key_free(dst_key_t **keyp) {
isc_buffer_free(&key->key_tkeytoken);
}
memset(key, 0, sizeof(dst_key_t));
- isc_mem_put(mctx, key, sizeof(dst_key_t));
+ isc_mem_putanddetach(&mctx, key, sizeof(dst_key_t));
*keyp = NULL;
}
@@ -1255,7 +1255,7 @@ dst_key_dump(dst_key_t *key, isc_mem_t *mctx, char **buffer, int *length) {
REQUIRE(length != NULL && *length == 0);
REQUIRE(VALID_KEY(key));
- if (key->func->isprivate == NULL)
+ if (key->func->dump == NULL)
return (ISC_R_NOTIMPLEMENTED);
return (key->func->dump(key, mctx, buffer, length));
}
@@ -1334,10 +1334,10 @@ get_key_struct(dns_name_t *name, unsigned int alg,
isc_mem_put(mctx, key, sizeof(dst_key_t));
return (NULL);
}
+ isc_mem_attach(mctx, &key->mctx);
key->key_alg = alg;
key->key_flags = flags;
key->key_proto = protocol;
- key->mctx = mctx;
key->keydata.generic = NULL;
key->key_size = bits;
key->key_class = rdclass;
diff --git a/lib/dns/include/dns/acache.h b/lib/dns/include/dns/acache.h
index 28990c2a..37cf31f5 100644
--- a/lib/dns/include/dns/acache.h
+++ b/lib/dns/include/dns/acache.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2006, 2007, 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
@@ -25,7 +25,7 @@
/*
* Acache
- *
+ *
* The Additional Cache Object
*
* This module manages internal caching entries that correspond to
@@ -131,7 +131,7 @@
* - 76 bytes for each additional cache entry
* - if the entry has a DNS name and associated RRset,
* * 44 bytes + size of the name (1-255 bytes)
- * * 52 bytes x number_of_RRs
+ * * 52 bytes x number_of_RRs
* - 28 bytes for each DB related to this module
*
* Using the additional cache also requires extra memory consumption in
@@ -238,7 +238,7 @@ dns_acache_setcleaninginterval(dns_acache_t *acache, unsigned int t);
*/
void
-dns_acache_setcachesize(dns_acache_t *acache, isc_uint32_t size);
+dns_acache_setcachesize(dns_acache_t *acache, size_t size);
/*
* Set the maximum additional cache size. 0 means unlimited.
*/
@@ -415,7 +415,7 @@ dns_acache_attachentry(dns_acacheentry_t *source, dns_acacheentry_t **targetp);
*
* *targetp is attached to 'source'.
*/
-
+
void
dns_acache_detachentry(dns_acacheentry_t **entryp);
/*
@@ -429,7 +429,7 @@ dns_acache_detachentry(dns_acacheentry_t **entryp);
*
* *entryp is NULL.
*
- * If '*entryp' is the last reference to the entry,
+ * If '*entryp' is the last reference to the entry,
* cache does not have an outstanding task, all resources used by the
* entry (including the entry object itself) will be freed.
*/
diff --git a/lib/dns/include/dns/adb.h b/lib/dns/include/dns/adb.h
index d3a243b8..a5a31240 100644
--- a/lib/dns/include/dns/adb.h
+++ b/lib/dns/include/dns/adb.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -607,7 +607,7 @@ dns_adb_flush(dns_adb_t *adb);
*/
void
-dns_adb_setadbsize(dns_adb_t *adb, isc_uint32_t size);
+dns_adb_setadbsize(dns_adb_t *adb, size_t size);
/*%<
* Set a target memory size. If memory usage exceeds the target
* size entries will be removed before they would have expired on
diff --git a/lib/dns/include/dns/cache.h b/lib/dns/include/dns/cache.h
index 419111b9..f7140aa7 100644
--- a/lib/dns/include/dns/cache.h
+++ b/lib/dns/include/dns/cache.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -245,12 +245,6 @@ dns_cache_getcleaninginterval(dns_cache_t *cache);
* Get the periodic cache cleaning interval to 'interval' seconds.
*/
-isc_uint32_t
-dns_cache_getcachesize(dns_cache_t *cache);
-/*%<
- * Get the maximum cache size.
- */
-
const char *
dns_cache_getname(dns_cache_t *cache);
/*%<
@@ -258,12 +252,12 @@ dns_cache_getname(dns_cache_t *cache);
*/
void
-dns_cache_setcachesize(dns_cache_t *cache, isc_uint32_t size);
+dns_cache_setcachesize(dns_cache_t *cache, size_t size);
/*%<
* Set the maximum cache size. 0 means unlimited.
*/
-isc_uint32_t
+size_t
dns_cache_getcachesize(dns_cache_t *cache);
/*%<
* Get the maximum cache size.
diff --git a/lib/dns/include/dns/db.h b/lib/dns/include/dns/db.h
index a5edbce2..66bc3e34 100644
--- a/lib/dns/include/dns/db.h
+++ b/lib/dns/include/dns/db.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -172,7 +172,7 @@ typedef struct dns_dbmethods {
dns_dbversion_t *version);
isc_boolean_t (*isdnssec)(dns_db_t *db);
dns_stats_t *(*getrrsetstats)(dns_db_t *db);
- void (*rpz_enabled)(dns_db_t *db, dns_rpz_st_t *st);
+ isc_result_t (*rpz_enabled)(dns_db_t *db, dns_rpz_st_t *st);
void (*rpz_findips)(dns_rpz_zone_t *rpz,
dns_rpz_type_t rpz_type,
dns_zone_t *zone, dns_db_t *db,
@@ -1542,11 +1542,11 @@ dns_db_getrrsetstats(dns_db_t *db);
* dns_rdatasetstats_create(); otherwise NULL.
*/
-void
+isc_result_t
dns_db_rpz_enabled(dns_db_t *db, dns_rpz_st_t *st);
/*%<
- * See if a policy database has DNS_RPZ_TYPE_IP, DNS_RPZ_TYPE_NSIP, or
- * DNS_RPZ_TYPE_NSDNAME records.
+ * Mark a database for response policy rewriting
+ * or find which RPZ data is available.
*/
void
diff --git a/lib/dns/include/dns/rpz.h b/lib/dns/include/dns/rpz.h
index 03db8d33..e1d50a53 100644
--- a/lib/dns/include/dns/rpz.h
+++ b/lib/dns/include/dns/rpz.h
@@ -1,5 +1,5 @@
/*
- * 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
@@ -14,7 +14,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: rpz.h,v 1.5 2011/10/28 11:46:50 marka Exp $ */
+/* $Id$ */
+
#ifndef DNS_RPZ_H
#define DNS_RPZ_H 1
@@ -27,10 +28,11 @@
ISC_LANG_BEGINDECLS
-#define DNS_RPZ_IP_ZONE "rpz-ip"
-#define DNS_RPZ_NSIP_ZONE "rpz-nsip"
-#define DNS_RPZ_NSDNAME_ZONE "rpz-nsdname"
-#define DNS_RPZ_PASSTHRU_ZONE "rpz-passthru"
+#define DNS_RPZ_PREFIX "rpz-"
+#define DNS_RPZ_IP_ZONE DNS_RPZ_PREFIX"ip"
+#define DNS_RPZ_NSIP_ZONE DNS_RPZ_PREFIX"nsip"
+#define DNS_RPZ_NSDNAME_ZONE DNS_RPZ_PREFIX"nsdname"
+#define DNS_RPZ_PASSTHRU_ZONE DNS_RPZ_PREFIX"passthru"
typedef isc_uint8_t dns_rpz_cidr_bits_t;
@@ -75,6 +77,7 @@ struct dns_rpz_zone {
dns_ttl_t max_policy_ttl;
dns_rpz_policy_t policy; /* DNS_RPZ_POLICY_GIVEN or override */
isc_boolean_t recursive_only;
+ isc_boolean_t defined;
};
/*
@@ -169,12 +172,6 @@ const char *
dns_rpz_policy2str(dns_rpz_policy_t policy);
void
-dns_rpz_set_need(isc_boolean_t need);
-
-isc_boolean_t
-dns_rpz_needed(void);
-
-void
dns_rpz_cidr_free(dns_rpz_cidr_t **cidr);
void
@@ -184,7 +181,7 @@ isc_result_t
dns_rpz_new_cidr(isc_mem_t *mctx, dns_name_t *origin,
dns_rpz_cidr_t **rbtdb_cidr);
void
-dns_rpz_enabled(dns_rpz_cidr_t *cidr, dns_rpz_st_t *st);
+dns_rpz_enabled_get(dns_rpz_cidr_t *cidr, dns_rpz_st_t *st);
void
dns_rpz_cidr_deleteip(dns_rpz_cidr_t *cidr, dns_name_t *name);
diff --git a/lib/dns/include/dns/view.h b/lib/dns/include/dns/view.h
index 0634dceb..d0c1931d 100644
--- a/lib/dns/include/dns/view.h
+++ b/lib/dns/include/dns/view.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -165,6 +165,7 @@ struct dns_view {
ISC_LIST(dns_rpz_zone_t) rpz_zones;
isc_boolean_t rpz_recursive_only;
isc_boolean_t rpz_break_dnssec;
+ unsigned int rpz_min_ns_labels;
/*
* Configurable data for server use only,
diff --git a/lib/dns/include/dns/zone.h b/lib/dns/include/dns/zone.h
index 0cab1fff..326d920f 100644
--- a/lib/dns/include/dns/zone.h
+++ b/lib/dns/include/dns/zone.h
@@ -35,6 +35,7 @@
#include <dns/master.h>
#include <dns/masterdump.h>
#include <dns/rdatastruct.h>
+#include <dns/rpz.h>
#include <dns/types.h>
#include <dns/zt.h>
@@ -49,6 +50,12 @@ typedef enum {
dns_zone_redirect
} dns_zonetype_t;
+typedef enum {
+ dns_zonestat_none = 0,
+ dns_zonestat_terse,
+ dns_zonestat_full
+} dns_zonestat_level_t;
+
#define DNS_ZONEOPT_SERVERS 0x00000001U /*%< perform server checks */
#define DNS_ZONEOPT_PARENTS 0x00000002U /*%< perform parent checks */
#define DNS_ZONEOPT_CHILDREN 0x00000004U /*%< perform child checks */
@@ -1441,6 +1448,18 @@ dns_zonemgr_setsize(dns_zonemgr_t *zmgr, int num_zones);
*/
isc_result_t
+dns_zonemgr_createzone(dns_zonemgr_t *zmgr, dns_zone_t **zonep);
+/*%<
+ * Allocate a new zone using a memory context from the
+ * zone manager's memory context pool.
+ *
+ * Require:
+ *\li 'zmgr' to be a valid zone manager.
+ *\li 'zonep' != NULL and '*zonep' == NULL.
+ */
+
+
+isc_result_t
dns_zonemgr_managezone(dns_zonemgr_t *zmgr, dns_zone_t *zone);
/*%<
* Bring the zone under control of a zone manager.
@@ -1691,9 +1710,13 @@ dns_zone_setstats(dns_zone_t *zone, isc_stats_t *stats);
void
dns_zone_setrequeststats(dns_zone_t *zone, isc_stats_t *stats);
+
+void
+dns_zone_setrcvquerystats(dns_zone_t *zone, dns_stats_t *stats);
/*%<
- * Set an additional statistics set to zone. It is attached in the zone
- * but is not counted in the zone module; only the caller updates the counters.
+ * Set additional statistics sets to zone. These are attached to the zone
+ * but are not counted in the zone module; only the caller updates the
+ * counters.
*
* Requires:
* \li 'zone' to be a valid zone.
@@ -2056,6 +2079,25 @@ dns_zone_synckeyzone(dns_zone_t *zone);
* maintenance timer.
*/
+isc_result_t
+dns_zone_rpz_enable(dns_zone_t *zone);
+/*%
+ * Set the response policy associated with a zone.
+ */
+
+isc_boolean_t
+dns_zone_get_rpz(dns_zone_t *zone);
+
+void
+dns_zone_setstatlevel(dns_zone_t *zone, dns_zonestat_level_t level);
+
+dns_zonestat_level_t
+dns_zone_getstatlevel(dns_zone_t *zone);
+/*%
+ * Set and get the statistics reporting level for the zone;
+ * full, terse, or none.
+ */
+
ISC_LANG_ENDDECLS
#endif /* DNS_ZONE_H */
diff --git a/lib/dns/iptable.c b/lib/dns/iptable.c
index e960d5c4..70195053 100644
--- a/lib/dns/iptable.c
+++ b/lib/dns/iptable.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2009 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007-2009, 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
@@ -36,7 +36,8 @@ dns_iptable_create(isc_mem_t *mctx, dns_iptable_t **target) {
tab = isc_mem_get(mctx, sizeof(*tab));
if (tab == NULL)
return (ISC_R_NOMEMORY);
- tab->mctx = mctx;
+ tab->mctx = NULL;
+ isc_mem_attach(mctx, &tab->mctx);
isc_refcount_init(&tab->refcount, 1);
tab->radix = NULL;
tab->magic = DNS_IPTABLE_MAGIC;
@@ -184,5 +185,5 @@ destroy_iptable(dns_iptable_t *dtab) {
isc_refcount_destroy(&dtab->refcount);
dtab->magic = 0;
- isc_mem_put(dtab->mctx, dtab, sizeof(*dtab));
+ isc_mem_putanddetach(&dtab->mctx, dtab, sizeof(*dtab));
}
diff --git a/lib/dns/journal.c b/lib/dns/journal.c
index f8f1a979..022a3e28 100644
--- a/lib/dns/journal.c
+++ b/lib/dns/journal.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2011 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -568,7 +568,8 @@ journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write,
if (j == NULL)
return (ISC_R_NOMEMORY);
- j->mctx = mctx;
+ j->mctx = NULL;
+ isc_mem_attach(mctx, &j->mctx);
j->state = JOURNAL_STATE_INVALID;
j->fp = NULL;
j->filename = filename;
@@ -679,7 +680,7 @@ journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write,
}
if (j->fp != NULL)
(void)isc_stdio_close(j->fp);
- isc_mem_put(j->mctx, j, sizeof(*j));
+ isc_mem_putanddetach(&j->mctx, j, sizeof(*j));
return (result);
}
@@ -1244,7 +1245,7 @@ dns_journal_destroy(dns_journal_t **journalp) {
if (j->fp != NULL)
(void)isc_stdio_close(j->fp);
j->magic = 0;
- isc_mem_put(j->mctx, j, sizeof(*j));
+ isc_mem_putanddetach(&j->mctx, j, sizeof(*j));
*journalp = NULL;
}
diff --git a/lib/dns/keytable.c b/lib/dns/keytable.c
index 309e9dd2..c49847f3 100644
--- a/lib/dns/keytable.c
+++ b/lib/dns/keytable.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2010, 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
@@ -67,7 +67,8 @@ dns_keytable_create(isc_mem_t *mctx, dns_keytable_t **keytablep) {
if (result != ISC_R_SUCCESS)
goto cleanup_lock;
- keytable->mctx = mctx;
+ keytable->mctx = NULL;
+ isc_mem_attach(mctx, &keytable->mctx);
keytable->active_nodes = 0;
keytable->references = 1;
keytable->magic = KEYTABLE_MAGIC;
@@ -82,7 +83,7 @@ dns_keytable_create(isc_mem_t *mctx, dns_keytable_t **keytablep) {
dns_rbt_destroy(&keytable->table);
cleanup_keytable:
- isc_mem_put(mctx, keytable, sizeof(*keytable));
+ isc_mem_putanddetach(&mctx, keytable, sizeof(*keytable));
return (result);
}
@@ -137,7 +138,8 @@ dns_keytable_detach(dns_keytable_t **keytablep) {
isc_rwlock_destroy(&keytable->rwlock);
DESTROYLOCK(&keytable->lock);
keytable->magic = 0;
- isc_mem_put(keytable->mctx, keytable, sizeof(*keytable));
+ isc_mem_putanddetach(&keytable->mctx,
+ keytable, sizeof(*keytable));
}
*keytablep = NULL;
diff --git a/lib/dns/lookup.c b/lib/dns/lookup.c
index d5fc7aae..9387a955 100644
--- a/lib/dns/lookup.c
+++ b/lib/dns/lookup.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2013 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
@@ -356,7 +356,7 @@ static void
levent_destroy(isc_event_t *event) {
dns_lookupevent_t *levent;
isc_mem_t *mctx;
-
+
REQUIRE(event->ev_type == DNS_EVENT_LOOKUPDONE);
mctx = event->ev_destroy_arg;
levent = (dns_lookupevent_t *)event;
@@ -393,7 +393,8 @@ dns_lookup_create(isc_mem_t *mctx, dns_name_t *name, dns_rdatatype_t type,
lookup = isc_mem_get(mctx, sizeof(*lookup));
if (lookup == NULL)
return (ISC_R_NOMEMORY);
- lookup->mctx = mctx;
+ lookup->mctx = NULL;
+ isc_mem_attach(mctx, &lookup->mctx);
lookup->options = options;
ievent = isc_event_allocate(mctx, lookup, DNS_EVENT_LOOKUPDONE,
@@ -452,7 +453,7 @@ dns_lookup_create(isc_mem_t *mctx, dns_name_t *name, dns_rdatatype_t type,
isc_task_detach(&lookup->task);
cleanup_lookup:
- isc_mem_put(mctx, lookup, sizeof(*lookup));
+ isc_mem_putanddetach(&mctx, lookup, sizeof(*lookup));
return (result);
}
@@ -491,7 +492,7 @@ dns_lookup_destroy(dns_lookup_t **lookupp) {
DESTROYLOCK(&lookup->lock);
lookup->magic = 0;
- isc_mem_put(lookup->mctx, lookup, sizeof(*lookup));
+ isc_mem_putanddetach(&lookup->mctx, lookup, sizeof(*lookup));
*lookupp = NULL;
}
diff --git a/lib/dns/message.c b/lib/dns/message.c
index e0ba4cff..721fd3f7 100644
--- a/lib/dns/message.c
+++ b/lib/dns/message.c
@@ -732,7 +732,9 @@ dns_message_create(isc_mem_t *mctx, unsigned int intent, dns_message_t **msgp)
for (i = 0; i < DNS_SECTION_MAX; i++)
ISC_LIST_INIT(m->sections[i]);
- m->mctx = mctx;
+
+ m->mctx = NULL;
+ isc_mem_attach(mctx, &m->mctx);
ISC_LIST_INIT(m->scratchpad);
ISC_LIST_INIT(m->cleanup);
@@ -786,7 +788,7 @@ dns_message_create(isc_mem_t *mctx, unsigned int intent, dns_message_t **msgp)
if (m->rdspool != NULL)
isc_mempool_destroy(&m->rdspool);
m->magic = 0;
- isc_mem_put(mctx, m, sizeof(dns_message_t));
+ isc_mem_putanddetach(&mctx, m, sizeof(dns_message_t));
return (ISC_R_NOMEMORY);
}
@@ -815,7 +817,7 @@ dns_message_destroy(dns_message_t **msgp) {
isc_mempool_destroy(&msg->namepool);
isc_mempool_destroy(&msg->rdspool);
msg->magic = 0;
- isc_mem_put(msg->mctx, msg, sizeof(dns_message_t));
+ isc_mem_putanddetach(&msg->mctx, msg, sizeof(dns_message_t));
}
static isc_result_t
diff --git a/lib/dns/rbt.c b/lib/dns/rbt.c
index eb95d14f..7381b4a3 100644
--- a/lib/dns/rbt.c
+++ b/lib/dns/rbt.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-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -248,7 +248,8 @@ dns_rbt_create(isc_mem_t *mctx, void (*deleter)(void *, void *),
if (rbt == NULL)
return (ISC_R_NOMEMORY);
- rbt->mctx = mctx;
+ rbt->mctx = NULL;
+ isc_mem_attach(mctx, &rbt->mctx);
rbt->data_deleter = deleter;
rbt->deleter_arg = deleter_arg;
rbt->root = NULL;
@@ -259,7 +260,7 @@ dns_rbt_create(isc_mem_t *mctx, void (*deleter)(void *, void *),
#ifdef DNS_RBT_USEHASH
result = inithash(rbt);
if (result != ISC_R_SUCCESS) {
- isc_mem_put(mctx, rbt, sizeof(*rbt));
+ isc_mem_putanddetach(&rbt->mctx, rbt, sizeof(*rbt));
return (result);
}
#endif
@@ -299,7 +300,7 @@ dns_rbt_destroy2(dns_rbt_t **rbtp, unsigned int quantum) {
rbt->magic = 0;
- isc_mem_put(rbt->mctx, rbt, sizeof(*rbt));
+ isc_mem_putanddetach(&rbt->mctx, rbt, sizeof(*rbt));
*rbtp = NULL;
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c
index af7cddb3..74b41796 100644
--- a/lib/dns/rbtdb.c
+++ b/lib/dns/rbtdb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -1550,15 +1550,16 @@ delete_node(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node)
DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_CACHE,
ISC_LOG_WARNING,
- "delete_nsecnode(): "
+ "delete_node(): "
"dns_rbt_deletenode(nsecnode): %s",
isc_result_totext(result));
}
}
- result = dns_rbt_deletenode(rbtdb->tree, node, ISC_FALSE);
#ifdef BIND9
- dns_rpz_cidr_deleteip(rbtdb->rpz_cidr, name);
+ if (rbtdb->rpz_cidr != NULL)
+ dns_rpz_cidr_deleteip(rbtdb->rpz_cidr, name);
#endif
+ result = dns_rbt_deletenode(rbtdb->tree, node, ISC_FALSE);
break;
case DNS_RBT_NSEC_NSEC:
result = dns_rbt_deletenode(rbtdb->nsec, node, ISC_FALSE);
@@ -1572,7 +1573,7 @@ delete_node(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node)
DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_CACHE,
ISC_LOG_WARNING,
- "delete_nsecnode(): "
+ "delete_cnode(): "
"dns_rbt_deletenode: %s",
isc_result_totext(result));
}
@@ -4547,19 +4548,29 @@ find_coveringnsec(rbtdb_search_t *search, dns_dbnode_t **nodep,
}
/*
- * Mark a database for response policy rewriting.
+ * Mark a database for response policy rewriting
+ * or find which RPZ data is available.
*/
#ifdef BIND9
-static void
-get_rpz_enabled(dns_db_t *db, dns_rpz_st_t *st)
+static isc_result_t
+rpz_enabled(dns_db_t *db, dns_rpz_st_t *st)
{
dns_rbtdb_t *rbtdb;
+ isc_result_t result;
+ result = ISC_R_SUCCESS;
rbtdb = (dns_rbtdb_t *)db;
REQUIRE(VALID_RBTDB(rbtdb));
RWLOCK(&rbtdb->tree_lock, isc_rwlocktype_read);
- dns_rpz_enabled(rbtdb->rpz_cidr, st);
+ if (st != NULL) {
+ dns_rpz_enabled_get(rbtdb->rpz_cidr, st);
+ } else {
+ result = dns_rpz_new_cidr(rbtdb->common.mctx,
+ &rbtdb->common.origin,
+ &rbtdb->rpz_cidr);
+ }
RWUNLOCK(&rbtdb->tree_lock, isc_rwlocktype_read);
+ return (result);
}
/*
@@ -6863,7 +6874,7 @@ loadnode(dns_rbtdb_t *rbtdb, dns_name_t *name, dns_rbtnode_t **nodep,
noderesult = dns_rbt_addnode(rbtdb->tree, name, nodep);
#ifdef BIND9
- if (noderesult == ISC_R_SUCCESS)
+ if (noderesult == ISC_R_SUCCESS && rbtdb->rpz_cidr != NULL)
dns_rpz_cidr_addip(rbtdb->rpz_cidr, name);
#endif
@@ -7450,7 +7461,7 @@ static dns_dbmethods_t zone_methods = {
isdnssec,
NULL,
#ifdef BIND9
- get_rpz_enabled,
+ rpz_enabled,
rpz_findips,
#else
NULL,
@@ -7688,24 +7699,6 @@ dns_rbtdb_create
return (result);
}
-#ifdef BIND9
- /*
- * Get ready for response policy IP address searching if at least one
- * zone has been configured as a response policy zone and this
- * is not a cache zone.
- * It would be better to know that this database is for a policy
- * zone named for a view, but that would require knowledge from
- * above such as an argv[] set from data in the zone.
- */
- if (type == dns_dbtype_zone && !dns_name_equal(origin, dns_rootname)) {
- result = dns_rpz_new_cidr(mctx, origin, &rbtdb->rpz_cidr);
- if (result != ISC_R_SUCCESS) {
- free_rbtdb(rbtdb, ISC_FALSE, NULL);
- return (result);
- }
- }
-#endif
-
/*
* In order to set the node callback bit correctly in zone databases,
* we need to know if the node has the origin name of the zone.
@@ -7984,7 +7977,9 @@ rdataset_clone(dns_rdataset_t *source, dns_rdataset_t *target) {
dns_dbnode_t *cloned_node = NULL;
attachnode(db, node, &cloned_node);
+ INSIST(!ISC_LINK_LINKED(target, link));
*target = *source;
+ ISC_LINK_INIT(target, link);
/*
* Reset iterator state.
diff --git a/lib/dns/rdata/generic/naptr_35.c b/lib/dns/rdata/generic/naptr_35.c
index 451ed449..83439a59 100644
--- a/lib/dns/rdata/generic/naptr_35.c
+++ b/lib/dns/rdata/generic/naptr_35.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-2013 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
@@ -25,9 +25,8 @@
#define RDATA_GENERIC_NAPTR_35_C
#define RRTYPE_NAPTR_ATTRIBUTES (0)
-#ifdef HAVE_REGEX_H
-#include <regex.h>
-#endif
+
+#include <isc/regex.h>
/*
* Check the wire format of the Regexp field.
@@ -35,18 +34,15 @@
*/
static inline isc_result_t
txt_valid_regex(const unsigned char *txt) {
-#ifdef HAVE_REGEX_H
- regex_t preg;
- unsigned int regflags = REG_EXTENDED;
unsigned int nsub = 0;
char regex[256];
char *cp;
-#endif
isc_boolean_t flags = ISC_FALSE;
isc_boolean_t replace = ISC_FALSE;
unsigned char c;
unsigned char delim;
unsigned int len;
+ int n;
len = *txt++;
if (len == 0U)
@@ -65,11 +61,7 @@ txt_valid_regex(const unsigned char *txt) {
return (DNS_R_SYNTAX);
}
-#ifdef HAVE_REGEX_H
- memset(&preg, 0, sizeof(preg));
cp = regex;
-#endif
-
while (len-- > 0) {
c = *txt++;
if (c == 0)
@@ -88,18 +80,13 @@ txt_valid_regex(const unsigned char *txt) {
if (flags) {
switch (c) {
case 'i':
-#ifdef HAVE_REGEX_H
- regflags |= REG_ICASE;
-#endif
continue;
default:
return (DNS_R_SYNTAX);
}
}
-#ifdef HAVE_REGEX_H
if (!replace)
*cp++ = c;
-#endif
if (c == '\\') {
if (len == 0)
return (DNS_R_SYNTAX);
@@ -110,7 +97,6 @@ txt_valid_regex(const unsigned char *txt) {
if (replace)
switch (c) {
case '0': return (DNS_R_SYNTAX);
-#ifdef HAVE_REGEX_H
case '1': if (nsub < 1) nsub = 1; break;
case '2': if (nsub < 2) nsub = 2; break;
case '3': if (nsub < 3) nsub = 3; break;
@@ -120,30 +106,17 @@ txt_valid_regex(const unsigned char *txt) {
case '7': if (nsub < 7) nsub = 7; break;
case '8': if (nsub < 8) nsub = 8; break;
case '9': if (nsub < 9) nsub = 9; break;
-#endif
}
-#ifdef HAVE_REGEX_H
if (!replace)
*cp++ = c;
-#endif
}
}
if (!flags)
return (DNS_R_SYNTAX);
-#ifdef HAVE_REGEX_H
*cp = '\0';
- if (regcomp(&preg, regex, regflags))
- return (DNS_R_SYNTAX);
- /*
- * Check that substitutions in the replacement string are consistant
- * with the regular expression.
- */
- if (preg.re_nsub < nsub) {
- regfree(&preg);
+ n = isc_regex_validate(regex);
+ if (n < 0 || nsub > (unsigned int)n)
return (DNS_R_SYNTAX);
- }
- regfree(&preg);
-#endif
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/request.c b/lib/dns/request.c
index 58c0103f..1316e699 100644
--- a/lib/dns/request.c
+++ b/lib/dns/request.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-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
@@ -894,13 +894,15 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message,
REQUIRE(action != NULL);
REQUIRE(requestp != NULL && *requestp == NULL);
REQUIRE(timeout > 0);
- if (srcaddr != NULL)
- REQUIRE(isc_sockaddr_pf(srcaddr) == isc_sockaddr_pf(destaddr));
mctx = requestmgr->mctx;
req_log(ISC_LOG_DEBUG(3), "dns_request_createvia");
+ if (srcaddr != NULL &&
+ isc_sockaddr_pf(srcaddr) != isc_sockaddr_pf(destaddr))
+ return (ISC_R_FAMILYMISMATCH);
+
if (isblackholed(requestmgr->dispatchmgr, destaddr))
return (DNS_R_BLACKHOLED);
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index 97676b22..54539184 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -4502,13 +4502,12 @@ findnoqname(fetchctx_t *fctx, dns_name_t *name, dns_rdatatype_t type,
isc_boolean_t optout = ISC_FALSE, unknown = ISC_FALSE;
isc_boolean_t setclosest = ISC_FALSE;
isc_boolean_t setnearest = ISC_FALSE;
- char namebuf[DNS_NAME_FORMATSIZE];
next = ISC_LIST_NEXT(nrdataset, link);
if (nrdataset->type != dns_rdatatype_nsec &&
nrdataset->type != dns_rdatatype_nsec3)
continue;
- dns_name_format(nsec, namebuf, sizeof(namebuf));
+
if (nrdataset->type == dns_rdatatype_nsec &&
NXND(dns_nsec_noexistnodata(type, name, nsec,
nrdataset, &exists,
@@ -4736,6 +4735,22 @@ cache_name(fetchctx_t *fctx, dns_name_t *name, dns_adbaddrinfo_t *addrinfo,
if (sigrdataset != NULL)
sigrdataset->trust = trust;
if (!need_validation || !ANSWER(rdataset)) {
+ if (ANSWER(rdataset) &&
+ rdataset->type != dns_rdatatype_rrsig) {
+ isc_result_t tresult;
+ dns_name_t *noqname = NULL;
+ tresult = findnoqname(fctx, name,
+ rdataset->type,
+ &noqname);
+ if (tresult == ISC_R_SUCCESS &&
+ noqname != NULL) {
+ tresult =
+ dns_rdataset_addnoqname(
+ rdataset, noqname);
+ RUNTIME_CHECK(tresult ==
+ ISC_R_SUCCESS);
+ }
+ }
addedrdataset = ardataset;
result = dns_db_addrdataset(fctx->cache, node,
NULL, now, rdataset,
diff --git a/lib/dns/rpz.c b/lib/dns/rpz.c
index 65c94baf..2d689e7b 100644
--- a/lib/dns/rpz.c
+++ b/lib/dns/rpz.c
@@ -1,5 +1,5 @@
/*
- * 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
@@ -16,6 +16,7 @@
/* $Id$ */
+
/*! \file */
#include <config.h>
@@ -123,8 +124,6 @@ struct dns_rpz_cidr {
dns_name_t nsdname_name; /* RPZ_NSDNAME_ZONE.origin */
};
-static isc_boolean_t have_rpz_zones = ISC_FALSE;
-
const char *
dns_rpz_type2str(dns_rpz_type_t type) {
switch (type) {
@@ -267,21 +266,6 @@ dns_rpz_view_destroy(dns_view_t *view) {
}
/*
- * Note that we have at least one response policy zone.
- * It would be better for something to tell the rbtdb code that the
- * zone is in at least one view's list of policy zones.
- */
-void
-dns_rpz_set_need(isc_boolean_t need) {
- have_rpz_zones = need;
-}
-
-isc_boolean_t
-dns_rpz_needed(void) {
- return (have_rpz_zones);
-}
-
-/*
* Start a new radix tree for a response policy zone.
*/
isc_result_t
@@ -293,12 +277,6 @@ dns_rpz_new_cidr(isc_mem_t *mctx, dns_name_t *origin,
REQUIRE(rbtdb_cidr != NULL && *rbtdb_cidr == NULL);
- /*
- * Only if there is at least one response policy zone.
- */
- if (!have_rpz_zones)
- return (ISC_R_SUCCESS);
-
cidr = isc_mem_get(mctx, sizeof(*cidr));
if (cidr == NULL)
return (ISC_R_NOMEMORY);
@@ -340,7 +318,7 @@ dns_rpz_new_cidr(isc_mem_t *mctx, dns_name_t *origin,
* See if a policy zone has IP, NSIP, or NSDNAME rules or records.
*/
void
-dns_rpz_enabled(dns_rpz_cidr_t *cidr, dns_rpz_st_t *st) {
+dns_rpz_enabled_get(dns_rpz_cidr_t *cidr, dns_rpz_st_t *st) {
if (cidr == NULL)
return;
if (cidr->root != NULL &&
@@ -433,6 +411,9 @@ static void
badname(int level, dns_name_t *name, const char *str1, const char *str2) {
char printname[DNS_NAME_FORMATSIZE];
+ /*
+ * bin/tests/system/rpz/tests.sh looks for "invalid rpz".
+ */
if (level < DNS_RPZ_DEBUG_QUIET
&& isc_log_wouldlog(dns_lctx, level)) {
dns_name_format(name, printname, sizeof(printname));
@@ -957,8 +938,7 @@ dns_rpz_cidr_addip(dns_rpz_cidr_t *cidr, dns_name_t *name) {
dns_rpz_cidr_bits_t tgt_prefix;
dns_rpz_type_t type;
- if (cidr == NULL)
- return;
+ REQUIRE(cidr != NULL);
/*
* No worries if the new name is not an IP address.
@@ -986,6 +966,9 @@ dns_rpz_cidr_addip(dns_rpz_cidr_t *cidr, dns_name_t *name) {
{
char printname[DNS_NAME_FORMATSIZE];
+ /*
+ * bin/tests/system/rpz/tests.sh looks for "rpz.*failed".
+ */
dns_name_format(name, printname, sizeof(printname));
isc_log_write(dns_lctx, DNS_LOGCATEGORY_RPZ,
DNS_LOGMODULE_RBTDB, DNS_RPZ_ERROR_LEVEL,
diff --git a/lib/dns/spnego.c b/lib/dns/spnego.c
index 601511b5..0c1c8583 100644
--- a/lib/dns/spnego.c
+++ b/lib/dns/spnego.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006-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
@@ -630,8 +630,10 @@ gss_accept_sec_context_spnego(OM_uint32 *minor_status,
sizeof(mechbuf),
&init_token.mechTypes.val[i],
&mech_len);
- if (ret)
+ if (ret) {
+ free_NegTokenInit(&init_token);
return (GSS_S_DEFECTIVE_TOKEN);
+ }
if (mech_len == GSS_KRB5_MECH->length &&
memcmp(GSS_KRB5_MECH->elements,
mechbuf + sizeof(mechbuf) - mech_len,
@@ -650,8 +652,10 @@ gss_accept_sec_context_spnego(OM_uint32 *minor_status,
}
}
- if (!found)
+ if (!found) {
+ free_NegTokenInit(&init_token);
return (send_reject(minor_status, output_token));
+ }
if (i == 0 && init_token.mechToken != NULL) {
ibuf.length = init_token.mechToken->length;
@@ -669,12 +673,14 @@ gss_accept_sec_context_spnego(OM_uint32 *minor_status,
time_rec,
delegated_cred_handle);
if (GSS_ERROR(major_status)) {
+ free_NegTokenInit(&init_token);
send_reject(&minor_status2, output_token);
return (major_status);
}
ot = &obuf;
}
ret = send_accept(&minor_status2, output_token, ot, pref);
+ free_NegTokenInit(&init_token);
if (ot != NULL && ot->length != 0U)
gss_release_buffer(&minor_status2, ot);
@@ -865,6 +871,8 @@ der_get_oid(const unsigned char *p, size_t len,
int n;
size_t oldlen = len;
+ data->components = NULL;
+ data->length = 0;
if (len < 1U)
return (ASN1_OVERRUN);
@@ -1696,6 +1704,7 @@ spnego_reply(OM_uint32 *minor_status,
ret = decode_NegTokenResp(buf + taglen, len, &resp, NULL);
if (ret) {
+ free_NegTokenResp(&resp);
*minor_status = ENOMEM;
return (GSS_S_FAILURE);
}
diff --git a/lib/dns/tests/dnstest.c b/lib/dns/tests/dnstest.c
index e4030834..f06f526e 100644
--- a/lib/dns/tests/dnstest.c
+++ b/lib/dns/tests/dnstest.c
@@ -1,5 +1,5 @@
/*
- * 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
@@ -212,7 +212,9 @@ dns_test_makezone(const char *name, dns_zone_t **zonep, dns_view_t *view,
else if (!keepview)
keepview = ISC_TRUE;
- CHECK(dns_zone_create(&zone, mctx));
+ zone = *zonep;
+ if (zone == NULL)
+ CHECK(dns_zone_create(&zone, mctx));
isc_buffer_constinit(&buffer, name, strlen(name));
isc_buffer_add(&buffer, strlen(name));
diff --git a/lib/dns/tests/zonemgr_test.c b/lib/dns/tests/zonemgr_test.c
index bed8ed4f..7decde0c 100644
--- a/lib/dns/tests/zonemgr_test.c
+++ b/lib/dns/tests/zonemgr_test.c
@@ -1,5 +1,5 @@
/*
- * 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
@@ -110,6 +110,46 @@ ATF_TC_BODY(zonemgr_managezone, tc) {
dns_test_end();
}
+ATF_TC(zonemgr_createzone);
+ATF_TC_HEAD(zonemgr_createzone, tc) {
+ atf_tc_set_md_var(tc, "descr", "create and release a zone");
+}
+ATF_TC_BODY(zonemgr_createzone, tc) {
+ dns_zonemgr_t *zonemgr = NULL;
+ dns_zone_t *zone = NULL;
+ isc_result_t result;
+
+ UNUSED(tc);
+
+ result = dns_test_begin(NULL, ISC_TRUE);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ result = dns_zonemgr_create(mctx, taskmgr, timermgr, socketmgr,
+ &zonemgr);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ /* This should not succeed until the dns_zonemgr_setsize() is run */
+ result = dns_zonemgr_createzone(zonemgr, &zone);
+ ATF_REQUIRE_EQ(result, ISC_R_FAILURE);
+
+ result = dns_zonemgr_setsize(zonemgr, 1);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ /* Now it should succeed */
+ result = dns_zonemgr_createzone(zonemgr, &zone);
+ ATF_CHECK_EQ(result, ISC_R_SUCCESS);
+ ATF_CHECK(zone != NULL);
+
+ if (zone != NULL)
+ dns_zone_detach(&zone);
+
+ dns_zonemgr_shutdown(zonemgr);
+ dns_zonemgr_detach(&zonemgr);
+ ATF_REQUIRE_EQ(zonemgr, NULL);
+
+ dns_test_end();
+}
+
ATF_TC(zonemgr_unreachable);
ATF_TC_HEAD(zonemgr_unreachable, tc) {
atf_tc_set_md_var(tc, "descr", "manage and release a zone");
@@ -182,6 +222,7 @@ ATF_TC_BODY(zonemgr_unreachable, tc) {
ATF_TP_ADD_TCS(tp) {
ATF_TP_ADD_TC(tp, zonemgr_create);
ATF_TP_ADD_TC(tp, zonemgr_managezone);
+ ATF_TP_ADD_TC(tp, zonemgr_createzone);
ATF_TP_ADD_TC(tp, zonemgr_unreachable);
return (atf_no_error());
}
diff --git a/lib/dns/tkey.c b/lib/dns/tkey.c
index 0112f7ec..161c1880 100644
--- a/lib/dns/tkey.c
+++ b/lib/dns/tkey.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 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
@@ -991,8 +991,13 @@ dns_tkey_builddhquery(dns_message_t *msg, dst_key_t *key, dns_name_t *name,
ISC_LIST_INIT(namelist);
RETERR(add_rdata_to_list(msg, &keyname, rdata, 0, &namelist));
- dns_message_addname(msg, ISC_LIST_HEAD(namelist),
- DNS_SECTION_ADDITIONAL);
+ name = ISC_LIST_HEAD(namelist);
+ while (name != NULL) {
+ dns_name_t *next = ISC_LIST_NEXT(name, link);
+ ISC_LIST_UNLINK(namelist, name, link);
+ dns_message_addname(msg, name, DNS_SECTION_ADDITIONAL);
+ name = next;
+ }
return (ISC_R_SUCCESS);
diff --git a/lib/dns/tsig.c b/lib/dns/tsig.c
index cc781993..c7768f4c 100644
--- a/lib/dns/tsig.c
+++ b/lib/dns/tsig.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -239,7 +239,9 @@ adjust_lru(dns_tsigkey_t *tkey) {
* We may have been removed from the LRU list between
* removing the read lock and aquiring the write lock.
*/
- if (ISC_LINK_LINKED(tkey, link)) {
+ if (ISC_LINK_LINKED(tkey, link) &&
+ tkey->ring->lru.tail != tkey)
+ {
ISC_LIST_UNLINK(tkey->ring->lru, tkey, link);
ISC_LIST_APPEND(tkey->ring->lru, tkey, link);
}
@@ -625,8 +627,7 @@ restore_key(dns_tsig_keyring_t *ring, isc_stdtime_t now, FILE *fp) {
}
static void
-dump_key(dns_tsigkey_t *tkey, FILE *fp)
-{
+dump_key(dns_tsigkey_t *tkey, FILE *fp) {
char *buffer = NULL;
int length = 0;
char namestr[DNS_NAME_FORMATSIZE];
@@ -634,6 +635,9 @@ dump_key(dns_tsigkey_t *tkey, FILE *fp)
char algorithmstr[DNS_NAME_FORMATSIZE];
isc_result_t result;
+ REQUIRE(tkey != NULL);
+ REQUIRE(fp != NULL);
+
dns_name_format(&tkey->name, namestr, sizeof(namestr));
dns_name_format(tkey->creator, creatorstr, sizeof(creatorstr));
dns_name_format(tkey->algorithm, algorithmstr, sizeof(algorithmstr));
@@ -1764,11 +1768,15 @@ static void
free_tsignode(void *node, void *_unused) {
dns_tsigkey_t *key;
- UNUSED(_unused);
-
REQUIRE(node != NULL);
+ UNUSED(_unused);
+
key = node;
+ if (key->generated) {
+ if (ISC_LINK_LINKED(key, link))
+ ISC_LIST_UNLINK(key->ring->lru, key, link);
+ }
dns_tsigkey_detach(&key);
}
diff --git a/lib/dns/view.c b/lib/dns/view.c
index 51b50a60..cff61865 100644
--- a/lib/dns/view.c
+++ b/lib/dns/view.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -916,6 +916,7 @@ dns_view_find2(dns_view_t *view, dns_name_t *name, dns_rdatatype_t type,
#ifndef BIND9
UNUSED(use_hints);
UNUSED(use_static_stub);
+ UNUSED(zone);
#endif
/*
@@ -940,11 +941,11 @@ dns_view_find2(dns_view_t *view, dns_name_t *name, dns_rdatatype_t type,
/*
* Find a database to answer the query.
*/
- zone = NULL;
db = NULL;
node = NULL;
is_staticstub_zone = ISC_FALSE;
#ifdef BIND9
+ zone = NULL;
result = dns_zt_find(view->zonetable, name, 0, NULL, &zone);
if (zone != NULL && dns_zone_gettype(zone) == dns_zone_staticstub &&
!use_static_stub) {
@@ -1192,11 +1193,14 @@ dns_view_findzonecut2(dns_view_t *view, dns_name_t *name, dns_name_t *fname,
dns_rdataset_t zrdataset, zsigrdataset;
dns_fixedname_t zfixedname;
+#ifndef BIND9
+ UNUSED(zone);
+#endif
+
REQUIRE(DNS_VIEW_VALID(view));
REQUIRE(view->frozen);
db = NULL;
- zone = NULL;
use_zone = ISC_FALSE;
try_hints = ISC_FALSE;
zfname = NULL;
@@ -1212,6 +1216,7 @@ dns_view_findzonecut2(dns_view_t *view, dns_name_t *name, dns_name_t *fname,
* Find the right database.
*/
#ifdef BIND9
+ zone = NULL;
result = dns_zt_find(view->zonetable, name, 0, NULL, &zone);
if (result == ISC_R_SUCCESS || result == DNS_R_PARTIALMATCH)
result = dns_zone_getdb(zone, &db);
diff --git a/lib/dns/win32/libdns.def b/lib/dns/win32/libdns.def
index e1a8e3d5..e3351f33 100644
--- a/lib/dns/win32/libdns.def
+++ b/lib/dns/win32/libdns.def
@@ -643,11 +643,9 @@ dns_rpz_cidr_deleteip
dns_rpz_cidr_find
dns_rpz_cidr_free
dns_rpz_decode_cname
-dns_rpz_enabled
-dns_rpz_needed
+dns_rpz_enabled_get
dns_rpz_new_cidr
dns_rpz_policy2str
-dns_rpz_set_need
dns_rpz_str2policy
dns_rpz_type2str
dns_rpz_view_destroy
@@ -807,6 +805,7 @@ dns_zone_flush
dns_zone_forcereload
dns_zone_forwardupdate
dns_zone_fulldumptostream
+dns_zone_get_rpz
dns_zone_getadded
dns_zone_getchecknames
dns_zone_getclass
@@ -840,6 +839,7 @@ dns_zone_getserialupdatemethod
dns_zone_getsigresigninginterval
dns_zone_getsigvalidityinterval
dns_zone_getssutable
+dns_zone_getstatlevel
dns_zone_getstatscounters
dns_zone_gettask
dns_zone_gettype
@@ -870,6 +870,7 @@ dns_zone_nscheck
dns_zone_refresh
dns_zone_rekey
dns_zone_replacedb
+dns_zone_rpz_enable
dns_zone_setacache
dns_zone_setadded
dns_zone_setalsonotify
@@ -925,6 +926,7 @@ dns_zone_setsigresigninginterval
dns_zone_setsigvalidityinterval
dns_zone_setssutable
dns_zone_setstatistics
+dns_zone_setstatlevel
dns_zone_setstats
dns_zone_settask
dns_zone_settype
@@ -941,6 +943,7 @@ dns_zone_unload
dns_zonekey_iszonekey
dns_zonemgr_attach
dns_zonemgr_create
+dns_zonemgr_createzone
dns_zonemgr_detach
dns_zonemgr_forcemaint
dns_zonemgr_getcount
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
index 9d3897f7..47a9df58 100644
--- a/lib/dns/zone.c
+++ b/lib/dns/zone.c
@@ -25,6 +25,7 @@
#include <isc/file.h>
#include <isc/hex.h>
#include <isc/mutex.h>
+#include <isc/pool.h>
#include <isc/print.h>
#include <isc/random.h>
#include <isc/ratelimiter.h>
@@ -305,6 +306,7 @@ struct dns_zone {
* Optional per-zone statistics counters. Counted outside of this
* module.
*/
+ dns_zonestat_level_t statlevel;
isc_boolean_t requeststats_on;
isc_stats_t *requeststats;
dns_stats_t *rcvquerystats;
@@ -344,9 +346,9 @@ struct dns_zone {
isc_boolean_t added;
/*%
- * whether a rpz radix was needed when last loaded
+ * whether this is a response policy zone
*/
- isc_boolean_t rpz_zone;
+ isc_boolean_t is_rpz;
/*%
* Serial number update method.
@@ -465,6 +467,7 @@ struct dns_zonemgr {
isc_taskpool_t * zonetasks;
isc_taskpool_t * loadtasks;
isc_task_t * task;
+ isc_pool_t * mctxpool;
isc_ratelimiter_t * rl;
isc_rwlock_t rwlock;
isc_mutex_t iolock;
@@ -902,6 +905,7 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
zone->statelist = NULL;
zone->stats = NULL;
zone->requeststats_on = ISC_FALSE;
+ zone->statlevel = dns_zonestat_none;
zone->requeststats = NULL;
zone->rcvquerystats = NULL;
zone->notifydelay = 5;
@@ -913,7 +917,7 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) {
zone->nodes = 100;
zone->privatetype = (dns_rdatatype_t)0xffffU;
zone->added = ISC_FALSE;
- zone->rpz_zone = ISC_FALSE;
+ zone->is_rpz = ISC_FALSE;
ISC_LIST_INIT(zone->forwards);
zone->raw = NULL;
zone->secure = NULL;
@@ -1505,6 +1509,31 @@ dns_zone_isdynamic(dns_zone_t *zone, isc_boolean_t ignore_freeze) {
}
+/*
+ * Set the response policy index and information for a zone.
+ */
+isc_result_t
+dns_zone_rpz_enable(dns_zone_t *zone) {
+ /*
+ * Only RBTDB zones can be used for response policy zones,
+ * because only they have the code to load the create the summary data.
+ * Only zones that are loaded instead of mmap()ed create the
+ * summary data and so can be policy zones.
+ */
+ if (strcmp(zone->db_argv[0], "rbt") != 0 &&
+ strcmp(zone->db_argv[0], "rbt64") != 0)
+ return (ISC_R_NOTIMPLEMENTED);
+
+ zone->is_rpz = ISC_TRUE;
+
+ return (ISC_R_SUCCESS);
+}
+
+isc_boolean_t
+dns_zone_get_rpz(dns_zone_t *zone) {
+ return (zone->is_rpz);
+}
+
static isc_result_t
zone_load(dns_zone_t *zone, unsigned int flags) {
isc_result_t result;
@@ -1582,8 +1611,7 @@ zone_load(dns_zone_t *zone, unsigned int flags) {
* "rndc reconfig", we are done.
*/
if (!isc_time_isepoch(&zone->loadtime) &&
- (flags & DNS_ZONELOADFLAG_NOSTAT) != 0 &&
- zone->rpz_zone == dns_rpz_needed()) {
+ (flags & DNS_ZONELOADFLAG_NOSTAT) != 0) {
result = ISC_R_SUCCESS;
goto cleanup;
}
@@ -1592,8 +1620,7 @@ zone_load(dns_zone_t *zone, unsigned int flags) {
if (result == ISC_R_SUCCESS) {
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADED) &&
!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_HASINCLUDE) &&
- isc_time_compare(&filetime, &zone->loadtime) <= 0 &&
- zone->rpz_zone == dns_rpz_needed()) {
+ isc_time_compare(&filetime, &zone->loadtime) <= 0) {
dns_zone_log(zone, ISC_LOG_DEBUG(1),
"skipping load: master file "
"older than last load");
@@ -1601,7 +1628,6 @@ zone_load(dns_zone_t *zone, unsigned int flags) {
goto cleanup;
}
loadtime = filetime;
- zone->rpz_zone = dns_rpz_needed();
}
}
@@ -1961,8 +1987,15 @@ zone_startload(dns_db_t *db, dns_zone_t *zone, isc_time_t loadtime) {
isc_result_t tresult;
unsigned int options;
- options = get_master_options(zone);
+#ifdef BIND9
+ if (zone->is_rpz) {
+ result = dns_db_rpz_enabled(db, NULL);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+ }
+#endif
+ options = get_master_options(zone);
if (DNS_ZONE_OPTION(zone, DNS_ZONEOPT_MANYERRORS))
options |= DNS_MASTER_MANYERRORS;
@@ -8856,6 +8889,7 @@ dns_zone_dump(dns_zone_t *zone) {
static void
zone_needdump(dns_zone_t *zone, unsigned int delay) {
+ const char me[] = "zone_needdump";
isc_time_t dumptime;
isc_time_t now;
@@ -8865,6 +8899,7 @@ zone_needdump(dns_zone_t *zone, unsigned int delay) {
REQUIRE(DNS_ZONE_VALID(zone));
REQUIRE(LOCKED_ZONE(zone));
+ ENTER;
/*
* Do we have a place to dump to and are we loaded?
@@ -9567,9 +9602,9 @@ notify_send_toaddr(isc_task_t *task, isc_event_t *event) {
dns_message_destroy(&message);
cleanup:
UNLOCK_ZONE(notify->zone);
+ isc_event_free(&event);
if (result != ISC_R_SUCCESS)
notify_destroy(notify, ISC_FALSE);
- isc_event_free(&event);
}
static void
@@ -13223,6 +13258,8 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
* won't hurt with an AXFR.
*/
if (zone->masterfile != NULL || zone->journal != NULL) {
+ unsigned int delay = DNS_DUMP_DELAY;
+
result = ISC_R_FAILURE;
if (zone->journal != NULL)
result = isc_file_settime(zone->journal, &now);
@@ -13230,14 +13267,16 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
zone->masterfile != NULL)
result = isc_file_settime(zone->masterfile,
&now);
- /* Someone removed the file from underneath us! */
- if (result == ISC_R_FILENOTFOUND &&
- zone->masterfile != NULL) {
- unsigned int delay = DNS_DUMP_DELAY;
- if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NODELAY))
- delay = 0;
+
+ if ((DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NODELAY) != 0) ||
+ result == ISC_R_FILENOTFOUND)
+ delay = 0;
+
+ if ((result == ISC_R_SUCCESS ||
+ result == ISC_R_FILENOTFOUND) &&
+ zone->masterfile != NULL)
zone_needdump(zone, delay);
- } else if (result != ISC_R_SUCCESS)
+ else if (result != ISC_R_SUCCESS)
dns_zone_log(zone, ISC_LOG_ERROR,
"transfer: could not set file "
"modification time of '%s': %s",
@@ -13895,6 +13934,7 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
zmgr->socketmgr = socketmgr;
zmgr->zonetasks = NULL;
zmgr->loadtasks = NULL;
+ zmgr->mctxpool = NULL;
zmgr->task = NULL;
zmgr->rl = NULL;
ISC_LIST_INIT(zmgr->zones);
@@ -13963,6 +14003,33 @@ dns_zonemgr_create(isc_mem_t *mctx, isc_taskmgr_t *taskmgr,
}
isc_result_t
+dns_zonemgr_createzone(dns_zonemgr_t *zmgr, dns_zone_t **zonep) {
+ isc_result_t result;
+ isc_mem_t *mctx = NULL;
+ dns_zone_t *zone = NULL;
+ void *item;
+
+ REQUIRE(DNS_ZONEMGR_VALID(zmgr));
+ REQUIRE(zonep != NULL && *zonep == NULL);
+
+ if (zmgr->mctxpool == NULL)
+ return (ISC_R_FAILURE);
+
+ item = isc_pool_get(zmgr->mctxpool);
+ if (item == NULL)
+ return (ISC_R_FAILURE);
+
+ isc_mem_attach((isc_mem_t *) item, &mctx);
+ result = dns_zone_create(&zone, mctx);
+ isc_mem_detach(&mctx);
+
+ if (result == ISC_R_SUCCESS)
+ *zonep = zone;
+
+ return (result);
+}
+
+isc_result_t
dns_zonemgr_managezone(dns_zonemgr_t *zmgr, dns_zone_t *zone) {
isc_result_t result;
@@ -14128,6 +14195,8 @@ dns_zonemgr_shutdown(dns_zonemgr_t *zmgr) {
isc_taskpool_destroy(&zmgr->zonetasks);
if (zmgr->loadtasks != NULL)
isc_taskpool_destroy(&zmgr->loadtasks);
+ if (zmgr->mctxpool != NULL)
+ isc_pool_destroy(&zmgr->mctxpool);
RWLOCK(&zmgr->rwlock, isc_rwlocktype_read);
for (zone = ISC_LIST_HEAD(zmgr->zones);
@@ -14141,21 +14210,54 @@ dns_zonemgr_shutdown(dns_zonemgr_t *zmgr) {
RWUNLOCK(&zmgr->rwlock, isc_rwlocktype_read);
}
+static isc_result_t
+mctxinit(void **target, void *arg) {
+ isc_result_t result;
+ isc_mem_t *mctx = NULL;
+
+ UNUSED(arg);
+
+ REQUIRE(target != NULL && *target == NULL);
+
+ result = isc_mem_create(0, 0, &mctx);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+ isc_mem_setname(mctx, "zonemgr-pool", NULL);
+
+ *target = mctx;
+ return (ISC_R_SUCCESS);
+}
+
+static void
+mctxfree(void **target) {
+ isc_mem_t *mctx = *(isc_mem_t **) target;
+ isc_mem_detach(&mctx);
+ *target = NULL;
+}
+
+#define ZONES_PER_TASK 100
+#define ZONES_PER_MCTX 1000
+
isc_result_t
dns_zonemgr_setsize(dns_zonemgr_t *zmgr, int num_zones) {
isc_result_t result;
- int ntasks = num_zones / 100;
+ int ntasks = num_zones / ZONES_PER_TASK;
+ int nmctx = num_zones / ZONES_PER_MCTX;
isc_taskpool_t *pool = NULL;
+ isc_pool_t *mctxpool = NULL;
REQUIRE(DNS_ZONEMGR_VALID(zmgr));
/*
* For anything fewer than 1000 zones we use 10 tasks in
* the task pools. More than that, and we'll scale at one
- * task per 100 zones.
+ * task per 100 zones. Similarly, for anything smaller than
+ * 2000 zones we use 2 memory contexts, then scale at 1:1000.
*/
if (ntasks < 10)
ntasks = 10;
+ if (nmctx < 2)
+ nmctx = 2;
/* Create or resize the zone task pools. */
if (zmgr->zonetasks == NULL)
@@ -14194,6 +14296,16 @@ dns_zonemgr_setsize(dns_zonemgr_t *zmgr, int num_zones) {
isc_taskpool_setprivilege(zmgr->loadtasks, ISC_TRUE);
#endif
+ /* Create or resize the zone memory context pool. */
+ if (zmgr->mctxpool == NULL)
+ result = isc_pool_create(zmgr->mctx, nmctx, mctxfree,
+ mctxinit, NULL, &mctxpool);
+ else
+ result = isc_pool_expand(&zmgr->mctxpool, nmctx, &mctxpool);
+
+ if (result == ISC_R_SUCCESS)
+ zmgr->mctxpool = mctxpool;
+
return (result);
}
@@ -14787,8 +14899,6 @@ dns_zone_setrequeststats(dns_zone_t *zone, isc_stats_t *stats) {
REQUIRE(DNS_ZONE_VALID(zone));
- dns_zone_log(zone, ISC_LOG_INFO, "Setting zone query stats");
-
LOCK_ZONE(zone);
if (zone->requeststats_on && stats == NULL)
zone->requeststats_on = ISC_FALSE;
@@ -14807,8 +14917,6 @@ dns_zone_setrcvquerystats(dns_zone_t *zone, dns_stats_t *stats) {
REQUIRE(DNS_ZONE_VALID(zone));
- dns_zone_log(zone, ISC_LOG_INFO, "Setting received query stats");
-
LOCK_ZONE(zone);
if (zone->requeststats_on && stats != NULL) {
if (zone->rcvquerystats == NULL) {
@@ -16529,3 +16637,17 @@ dns_zone_setnsec3param(dns_zone_t *zone, isc_uint8_t hash, isc_uint8_t flags,
UNLOCK_ZONE(zone);
return (result);
}
+
+void
+dns_zone_setstatlevel(dns_zone_t *zone, dns_zonestat_level_t level) {
+ REQUIRE(DNS_ZONE_VALID(zone));
+
+ zone->statlevel = level;
+}
+
+dns_zonestat_level_t
+dns_zone_getstatlevel(dns_zone_t *zone) {
+ REQUIRE(DNS_ZONE_VALID(zone));
+
+ return (zone->statlevel);
+}
diff --git a/lib/export/dns/Makefile.in b/lib/export/dns/Makefile.in
index 6df36fe8..f575f867 100644
--- a/lib/export/dns/Makefile.in
+++ b/lib/export/dns/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009-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
@@ -43,8 +43,9 @@ LIBS = @LIBS@
# Alphabetically
+OPENSSLGOSTLINKOBJS = opensslgost_link.@O@
OPENSSLLINKOBJS = openssl_link.@O@ openssldh_link.@O@ openssldsa_link.@O@ \
- opensslecdsa_link.@O@ opensslgost_link.@O@ opensslrsa_link.@O@
+ opensslecdsa_link.@O@ @OPENSSLGOSTLINKOBJS@ opensslrsa_link.@O@
DSTOBJS = @OPENSSLLINKOBJS@ \
dst_api.@O@ dst_lib.@O@ dst_parse.@O@ dst_result.@O@ \
@@ -71,8 +72,9 @@ OBJS= ${DNSOBJS} ${OTHEROBJS} ${DSTOBJS} ${PORTDNSOBJS}
# Alphabetically
+OPENSSLGOSTLINKSRCS = opensslgost_link.c
OPENSSLLINKSRCS = openssl_link.c openssldh_link.c openssldsa_link.c \
- opensslecdsa_link.c opensslgost_link.c opensslrsa_link.c
+ opensslecdsa_link.c @OPENSSLGOSTLINKSRCS@ opensslrsa_link.c
DSTSRCS = @OPENSSLLINKSRCS@ \
dst_api.c dst_lib.c dst_parse.c \
diff --git a/lib/export/isc/Makefile.in b/lib/export/isc/Makefile.in
index 86726ab3..c04a9073 100644
--- a/lib/export/isc/Makefile.in
+++ b/lib/export/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2009, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009, 2010, 2012, 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
@@ -67,12 +67,11 @@ OBJS = @ISC_EXTRA_OBJS@ \
error.@O@ event.@O@ \
hash.@O@ hex.@O@ hmacmd5.@O@ hmacsha.@O@ \
inet_aton.@O@ iterated_hash.@O@ lex.@O@ lfsr.@O@ log.@O@ \
- md5.@O@ mutexblock.@O@ \
- netaddr.@O@ netscope.@O@ \
- ondestroy.@O@ \
- parseint.@O@ portset.@O@ radix.@O@ \
- random.@O@ refcount.@O@ region.@O@ result.@O@ rwlock.@O@ \
- serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ stats.@O@ string.@O@ \
+ md5.@O@ mutexblock.@O@ netaddr.@O@ netscope.@O@ \
+ ondestroy.@O@ parseint.@O@ portset.@O@ radix.@O@ \
+ random.@O@ refcount.@O@ region.@O@ regex.@O@ result.@O@ \
+ rwlock.@O@ serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ \
+ stats.@O@ string.@O@ \
symtab.@O@ \
version.@O@ \
${APIOBJS} ${ISCDRIVEROBJS} \
@@ -94,7 +93,7 @@ SRCS = @ISC_EXTRA_SRCS@ \
netaddr.c netscope.c \
ondestroy.c \
parseint.c portset.c radix.c \
- random.c refcount.c region.c result.c rwlock.c \
+ random.c refcount.c region.c regex.c result.c rwlock.c \
serial.c sha1.c sha2.c sockaddr.c stats.c string.c symtab.c \
version.c \
${APISRCS} ${ISCDRIVERSRCS}
diff --git a/lib/export/isc/include/isc/Makefile.in b/lib/export/isc/include/isc/Makefile.in
index 91f538c4..8c7eff8e 100644
--- a/lib/export/isc/include/isc/Makefile.in
+++ b/lib/export/isc/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009, 2012, 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
@@ -35,7 +35,7 @@ HEADERS = app.h assertions.h base64.h bitstring.h boolean.h \
magic.h md5.h mem.h msgcat.h msgs.h \
mutexblock.h namespace.h netaddr.h ondestroy.h os.h parseint.h \
print.h quota.h radix.h random.h ratelimiter.h \
- refcount.h region.h resource.h \
+ refcount.h regex.h region.h resource.h \
result.h resultclass.h rwlock.h serial.h sha1.h sha2.h \
sockaddr.h socket.h stdio.h stdlib.h string.h \
symtab.h \
diff --git a/lib/irs/api b/lib/irs/api
index a45a6bff..59e4f66c 100644
--- a/lib/irs/api
+++ b/lib/irs/api
@@ -4,5 +4,5 @@
# 9.8: 80-89
# 9.9: 90-109
LIBINTERFACE = 90
-LIBREVISION = 0
+LIBREVISION = 1
LIBAGE = 0
diff --git a/lib/irs/getnameinfo.c b/lib/irs/getnameinfo.c
index 982e8ecf..526ad091 100644
--- a/lib/irs/getnameinfo.c
+++ b/lib/irs/getnameinfo.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 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
@@ -147,7 +147,7 @@ getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
IRS_GETNAMEINFO_BUFLEN_T hostlen, char *serv,
IRS_GETNAMEINFO_BUFLEN_T servlen, IRS_GETNAMEINFO_FLAGS_T flags)
{
- struct afd *afd;
+ struct afd *afd = NULL;
struct servent *sp;
unsigned short port = 0;
#ifdef IRS_PLATFORM_HAVESALEN
diff --git a/lib/isc/Makefile.in b/lib/isc/Makefile.in
index ff500ffd..e68290cd 100644
--- a/lib/isc/Makefile.in
+++ b/lib/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -58,9 +58,10 @@ OBJS = @ISC_EXTRA_OBJS@ \
httpd.@O@ inet_aton.@O@ iterated_hash.@O@ \
lex.@O@ lfsr.@O@ lib.@O@ log.@O@ \
md5.@O@ mem.@O@ mutexblock.@O@ \
- netaddr.@O@ netscope.@O@ ondestroy.@O@ \
+ netaddr.@O@ netscope.@O@ pool.@O@ ondestroy.@O@ \
parseint.@O@ portset.@O@ quota.@O@ radix.@O@ random.@O@ \
- ratelimiter.@O@ refcount.@O@ region.@O@ result.@O@ rwlock.@O@ \
+ ratelimiter.@O@ refcount.@O@ region.@O@ regex.@O@ result.@O@ \
+ rwlock.@O@ \
serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ stats.@O@ \
string.@O@ strtoul.@O@ symtab.@O@ task.@O@ taskpool.@O@ \
timer.@O@ version.@O@ ${UNIXOBJS} ${NLSOBJS} ${THREADOBJS}
@@ -74,9 +75,9 @@ SRCS = @ISC_EXTRA_SRCS@ \
httpd.c inet_aton.c iterated_hash.c \
lex.c lfsr.c lib.c log.c \
md5.c mem.c mutexblock.c \
- netaddr.c netscope.c ondestroy.c \
+ netaddr.c netscope.c pool.c ondestroy.c \
parseint.c portset.c quota.c radix.c random.c \
- ratelimiter.c refcount.c region.c result.c rwlock.c \
+ ratelimiter.c refcount.c region.c regex.c result.c rwlock.c \
serial.c sha1.c sha2.c sockaddr.c stats.c string.c strtoul.c \
symtab.c symtbl-empty.c task.c taskpool.c timer.c version.c
diff --git a/lib/isc/api b/lib/isc/api
index 3798ef6b..34e00d4d 100644
--- a/lib/isc/api
+++ b/lib/isc/api
@@ -3,6 +3,6 @@
# 9.7: 60-79
# 9.8: 80-89
# 9.9: 90-109
-LIBINTERFACE = 94
+LIBINTERFACE = 95
LIBREVISION = 0
LIBAGE = 0
diff --git a/lib/isc/include/isc/Makefile.in b/lib/isc/include/isc/Makefile.in
index b8acdb5d..8afcfa73 100644
--- a/lib/isc/include/isc/Makefile.in
+++ b/lib/isc/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2009, 2012, 2013 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
@@ -36,7 +36,7 @@ HEADERS = app.h assertions.h base64.h bind9.h bitstring.h boolean.h \
magic.h md5.h mem.h msgcat.h msgs.h mutexblock.h \
namespace.h netaddr.h ondestroy.h os.h parseint.h \
print.h quota.h radix.h random.h ratelimiter.h \
- refcount.h region.h resource.h \
+ refcount.h regex.h region.h resource.h \
result.h resultclass.h rwlock.h serial.h sha1.h sha2.h \
sockaddr.h socket.h stdio.h stdlib.h string.h \
symtab.h \
diff --git a/lib/isc/include/isc/pool.h b/lib/isc/include/isc/pool.h
new file mode 100644
index 00000000..7b33c37b
--- /dev/null
+++ b/lib/isc/include/isc/pool.h
@@ -0,0 +1,149 @@
+/*
+ * 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.
+ */
+
+#ifndef ISC_OBJPOOL_H
+#define ISC_OBJPOOL_H 1
+
+/*****
+ ***** Module Info
+ *****/
+
+/*! \file isc/pool.h
+ * \brief An object pool is a mechanism for sharing a small pool of
+ * fungible objects among a large number of objects that depend on them.
+ *
+ * This is useful, for example, when it causes performance problems for
+ * large number of zones to share a single memory context or task object,
+ * but it would create a different set of problems for them each to have an
+ * independent task or memory context.
+ */
+
+
+/***
+ *** Imports.
+ ***/
+
+#include <isc/lang.h>
+#include <isc/mem.h>
+#include <isc/types.h>
+
+ISC_LANG_BEGINDECLS
+
+/*****
+ ***** Types.
+ *****/
+
+typedef void
+(*isc_pooldeallocator_t)(void **object);
+
+typedef isc_result_t
+(*isc_poolinitializer_t)(void **target, void *arg);
+
+typedef struct isc_pool isc_pool_t;
+
+/*****
+ ***** Functions.
+ *****/
+
+isc_result_t
+isc_pool_create(isc_mem_t *mctx, unsigned int count,
+ isc_pooldeallocator_t free,
+ isc_poolinitializer_t init, void *initarg,
+ isc_pool_t **poolp);
+/*%<
+ * Create a pool of "count" object pointers. If 'free' is not NULL,
+ * it points to a function that will detach the objects. 'init'
+ * points to a function that will initialize the arguments, and
+ * 'arg' to an argument to be passed into that function (for example,
+ * a relevant manager or context object).
+ *
+ * Requires:
+ *
+ *\li 'mctx' is a valid memory context.
+ *
+ *\li init != NULL
+ *
+ *\li poolp != NULL && *poolp == NULL
+ *
+ * Ensures:
+ *
+ *\li On success, '*poolp' points to the new object pool.
+ *
+ * Returns:
+ *
+ *\li #ISC_R_SUCCESS
+ *\li #ISC_R_NOMEMORY
+ *\li #ISC_R_UNEXPECTED
+ */
+
+void *
+isc_pool_get(isc_pool_t *pool);
+/*%<
+ * Returns a pointer to an object from the pool. Currently the object
+ * is chosen from the pool at random. (This may be changed in the future
+ * to something that guaratees balance.)
+ */
+
+int
+isc_pool_count(isc_pool_t *pool);
+/*%<
+ * Returns the number of objcts in the pool 'pool'.
+ */
+
+isc_result_t
+isc_pool_expand(isc_pool_t **sourcep, unsigned int count, isc_pool_t **targetp);
+
+/*%<
+ * If 'size' is larger than the number of objects in the pool pointed to by
+ * 'sourcep', then a new pool of size 'count' is allocated, the existing
+ * objects are copied into it, additional ones created to bring the
+ * total number up to 'count', and the resulting pool is attached to
+ * 'targetp'.
+ *
+ * If 'count' is less than or equal to the number of objects in 'source', then
+ * 'sourcep' is attached to 'targetp' without any other action being taken.
+ *
+ * In either case, 'sourcep' is detached.
+ *
+ * Requires:
+ *
+ * \li 'sourcep' is not NULL and '*source' is not NULL
+ * \li 'targetp' is not NULL and '*source' is NULL
+ *
+ * Ensures:
+ *
+ * \li On success, '*targetp' points to a valid task pool.
+ * \li On success, '*sourcep' points to NULL.
+ *
+ * Returns:
+ *
+ * \li #ISC_R_SUCCESS
+ * \li #ISC_R_NOMEMORY
+ */
+
+void
+isc_pool_destroy(isc_pool_t **poolp);
+/*%<
+ * Destroy a task pool. The tasks in the pool are detached but not
+ * shut down.
+ *
+ * Requires:
+ * \li '*poolp' is a valid task pool.
+ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* ISC_OBJPOOL_H */
diff --git a/lib/isc/include/isc/radix.h b/lib/isc/include/isc/radix.h
index 6b413a23..47512c72 100644
--- a/lib/isc/include/isc/radix.h
+++ b/lib/isc/include/isc/radix.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007, 2008, 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
@@ -54,13 +54,14 @@
} while(0)
typedef struct isc_prefix {
- unsigned int family; /* AF_INET | AF_INET6, or AF_UNSPEC for "any" */
- unsigned int bitlen; /* 0 for "any" */
- isc_refcount_t refcount;
- union {
+ isc_mem_t *mctx;
+ unsigned int family; /* AF_INET | AF_INET6, or AF_UNSPEC for "any" */
+ unsigned int bitlen; /* 0 for "any" */
+ isc_refcount_t refcount;
+ union {
struct in_addr sin;
struct in6_addr sin6;
- } add;
+ } add;
} isc_prefix_t;
typedef void (*isc_radix_destroyfunc_t)(void *);
@@ -90,12 +91,13 @@ typedef void (*isc_radix_processfunc_t)(isc_prefix_t *, void **);
#define ISC_IS6(family) ((family) == AF_INET6 ? 1 : 0)
typedef struct isc_radix_node {
- isc_uint32_t bit; /* bit length of the prefix */
- isc_prefix_t *prefix; /* who we are in radix tree */
- struct isc_radix_node *l, *r; /* left and right children */
- struct isc_radix_node *parent; /* may be used */
- void *data[2]; /* pointers to IPv4 and IPV6 data */
- int node_num[2]; /* which node this was in the tree,
+ isc_mem_t *mctx;
+ isc_uint32_t bit; /* bit length of the prefix */
+ isc_prefix_t *prefix; /* who we are in radix tree */
+ struct isc_radix_node *l, *r; /* left and right children */
+ struct isc_radix_node *parent; /* may be used */
+ void *data[2]; /* pointers to IPv4 and IPV6 data */
+ int node_num[2]; /* which node this was in the tree,
or -1 for glue nodes */
} isc_radix_node_t;
@@ -103,12 +105,12 @@ typedef struct isc_radix_node {
#define RADIX_TREE_VALID(a) ISC_MAGIC_VALID(a, RADIX_TREE_MAGIC);
typedef struct isc_radix_tree {
- unsigned int magic;
- isc_mem_t *mctx;
- isc_radix_node_t *head;
- isc_uint32_t maxbits; /* for IP, 32 bit addresses */
- int num_active_node; /* for debugging purposes */
- int num_added_node; /* total number of nodes */
+ unsigned int magic;
+ isc_mem_t *mctx;
+ isc_radix_node_t *head;
+ isc_uint32_t maxbits; /* for IP, 32 bit addresses */
+ int num_active_node; /* for debugging purposes */
+ int num_added_node; /* total number of nodes */
} isc_radix_tree_t;
isc_result_t
diff --git a/lib/isc/include/isc/regex.h b/lib/isc/include/isc/regex.h
new file mode 100644
index 00000000..3cf6aa4c
--- /dev/null
+++ b/lib/isc/include/isc/regex.h
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+#ifndef ISC_REGEX_H
+#define ISC_REGEX_H 1
+
+/*! \file isc/regex.h */
+
+#include <isc/types.h>
+#include <isc/lang.h>
+
+ISC_LANG_BEGINDECLS
+
+int
+isc_regex_validate(const char *expression);
+/*%<
+ * Check a regular expression for syntactic correctness.
+ *
+ * Returns:
+ *\li -1 on error.
+ *\li the number of groups in the expression.
+ */
+
+ISC_LANG_ENDDECLS
+
+#endif /* ISC_REGEX_H */
diff --git a/lib/isc/include/isc/region.h b/lib/isc/include/isc/region.h
index 43d8f8f2..ccca272a 100644
--- a/lib/isc/include/isc/region.h
+++ b/lib/isc/include/isc/region.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -23,6 +23,7 @@
/*! \file isc/region.h */
#include <isc/types.h>
+#include <isc/lang.h>
struct isc_region {
unsigned char * base;
@@ -81,12 +82,14 @@ struct isc_consttextregion {
} while (0)
/*@}*/
+ISC_LANG_BEGINDECLS
+
int
isc_region_compare(isc_region_t *r1, isc_region_t *r2);
/*%<
- * Compares the contents of two regions
+ * Compares the contents of two regions
*
- * Requires:
+ * Requires:
*\li 'r1' is a valid region
*\li 'r2' is a valid region
*
@@ -96,4 +99,6 @@ isc_region_compare(isc_region_t *r1, isc_region_t *r2);
*\li > 0 if r1 is lexicographically greater than r2
*/
+ISC_LANG_ENDDECLS
+
#endif /* ISC_REGION_H */
diff --git a/lib/isc/log.c b/lib/isc/log.c
index f1c925cd..024d97c6 100644
--- a/lib/isc/log.c
+++ b/lib/isc/log.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -275,7 +275,8 @@ isc_log_create(isc_mem_t *mctx, isc_log_t **lctxp, isc_logconfig_t **lcfgp) {
lctx = isc_mem_get(mctx, sizeof(*lctx));
if (lctx != NULL) {
- lctx->mctx = mctx;
+ lctx->mctx = NULL;
+ isc_mem_attach(mctx, &lctx->mctx);
lctx->categories = NULL;
lctx->category_count = 0;
lctx->modules = NULL;
@@ -286,7 +287,7 @@ isc_log_create(isc_mem_t *mctx, isc_log_t **lctxp, isc_logconfig_t **lcfgp) {
result = isc_mutex_init(&lctx->lock);
if (result != ISC_R_SUCCESS) {
- isc_mem_put(mctx, lctx, sizeof(*lctx));
+ isc_mem_putanddetach(&mctx, lctx, sizeof(*lctx));
return (result);
}
@@ -493,7 +494,7 @@ isc_log_destroy(isc_log_t **lctxp) {
lctx->mctx = NULL;
lctx->magic = 0;
- isc_mem_put(mctx, lctx, sizeof(*lctx));
+ isc_mem_putanddetach(&mctx, lctx, sizeof(*lctx));
*lctxp = NULL;
}
diff --git a/lib/isc/pool.c b/lib/isc/pool.c
new file mode 100644
index 00000000..509abcb4
--- /dev/null
+++ b/lib/isc/pool.c
@@ -0,0 +1,177 @@
+/*
+ * 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 <string.h>
+
+#include <isc/mem.h>
+#include <isc/random.h>
+#include <isc/pool.h>
+#include <isc/util.h>
+
+/***
+ *** Types.
+ ***/
+
+struct isc_pool {
+ isc_mem_t * mctx;
+ unsigned int count;
+ isc_pooldeallocator_t free;
+ isc_poolinitializer_t init;
+ void * initarg;
+ void ** pool;
+};
+
+/***
+ *** Functions.
+ ***/
+
+static isc_result_t
+alloc_pool(isc_mem_t *mctx, unsigned int count, isc_pool_t **poolp) {
+ isc_pool_t *pool;
+
+ pool = isc_mem_get(mctx, sizeof(*pool));
+ if (pool == NULL)
+ return (ISC_R_NOMEMORY);
+ pool->count = count;
+ pool->free = NULL;
+ pool->init = NULL;
+ pool->initarg = NULL;
+ pool->mctx = NULL;
+ isc_mem_attach(mctx, &pool->mctx);
+ pool->pool = isc_mem_get(mctx, count * sizeof(void *));
+ if (pool->pool == NULL) {
+ isc_mem_put(mctx, pool, sizeof(*pool));
+ return (ISC_R_NOMEMORY);
+ }
+ memset(pool->pool, 0, count * sizeof(void *));
+
+ *poolp = pool;
+ return (ISC_R_SUCCESS);
+}
+
+isc_result_t
+isc_pool_create(isc_mem_t *mctx, unsigned int count,
+ isc_pooldeallocator_t free,
+ isc_poolinitializer_t init, void *initarg,
+ isc_pool_t **poolp)
+{
+ isc_pool_t *pool = NULL;
+ isc_result_t result;
+ unsigned int i;
+
+ INSIST(count > 0);
+
+ /* Allocate the pool structure */
+ result = alloc_pool(mctx, count, &pool);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ pool->free = free;
+ pool->init = init;
+ pool->initarg = initarg;
+
+ /* Populate the pool */
+ for (i = 0; i < count; i++) {
+ result = init(&pool->pool[i], initarg);
+ if (result != ISC_R_SUCCESS) {
+ isc_pool_destroy(&pool);
+ return (result);
+ }
+ }
+
+ *poolp = pool;
+ return (ISC_R_SUCCESS);
+}
+
+void *
+isc_pool_get(isc_pool_t *pool) {
+ isc_uint32_t i;
+ isc_random_get(&i);
+ return (pool->pool[i % pool->count]);
+}
+
+int
+isc_pool_count(isc_pool_t *pool) {
+ REQUIRE(pool != NULL);
+ return (pool->count);
+}
+
+isc_result_t
+isc_pool_expand(isc_pool_t **sourcep, unsigned int count,
+ isc_pool_t **targetp)
+{
+ isc_result_t result;
+ isc_pool_t *pool;
+
+ REQUIRE(sourcep != NULL && *sourcep != NULL);
+ REQUIRE(targetp != NULL && *targetp == NULL);
+
+ pool = *sourcep;
+ if (count > pool->count) {
+ isc_pool_t *newpool = NULL;
+ unsigned int i;
+
+ /* Allocate a new pool structure */
+ result = alloc_pool(pool->mctx, count, &newpool);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ newpool->free = pool->free;
+ newpool->init = pool->init;
+ newpool->initarg = pool->initarg;
+
+ /* Copy over the objects from the old pool */
+ for (i = 0; i < pool->count; i++) {
+ newpool->pool[i] = pool->pool[i];
+ pool->pool[i] = NULL;
+ }
+
+ /* Populate the new entries */
+ for (i = pool->count; i < count; i++) {
+ result = pool->init(&newpool->pool[i], pool->initarg);
+ if (result != ISC_R_SUCCESS) {
+ isc_pool_destroy(&pool);
+ return (result);
+ }
+ }
+
+ isc_pool_destroy(&pool);
+ pool = newpool;
+ }
+
+ *sourcep = NULL;
+ *targetp = pool;
+ return (ISC_R_SUCCESS);
+}
+
+void
+isc_pool_destroy(isc_pool_t **poolp) {
+ unsigned int i;
+ isc_pool_t *pool = *poolp;
+ for (i = 0; i < pool->count; i++) {
+ if (pool->free != NULL && pool->pool[i] != NULL)
+ pool->free(&pool->pool[i]);
+ }
+ isc_mem_put(pool->mctx, pool->pool, pool->count * sizeof(void *));
+ isc_mem_putanddetach(&pool->mctx, pool, sizeof(*pool));
+ *poolp = NULL;
+}
diff --git a/lib/isc/radix.c b/lib/isc/radix.c
index ac211efb..35088788 100644
--- a/lib/isc/radix.c
+++ b/lib/isc/radix.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007-2009, 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
@@ -34,7 +34,7 @@ _new_prefix(isc_mem_t *mctx, isc_prefix_t **target, int family,
void *dest, int bitlen);
static void
-_deref_prefix(isc_mem_t *mctx, isc_prefix_t *prefix);
+_deref_prefix(isc_prefix_t *prefix);
static isc_result_t
_ref_prefix(isc_mem_t *mctx, isc_prefix_t **target, isc_prefix_t *prefix);
@@ -70,6 +70,8 @@ _new_prefix(isc_mem_t *mctx, isc_prefix_t **target, int family, void *dest,
}
prefix->family = family;
+ prefix->mctx = NULL;
+ isc_mem_attach(mctx, &prefix->mctx);
isc_refcount_init(&prefix->refcount, 1);
@@ -78,7 +80,7 @@ _new_prefix(isc_mem_t *mctx, isc_prefix_t **target, int family, void *dest,
}
static void
-_deref_prefix(isc_mem_t *mctx, isc_prefix_t *prefix) {
+_deref_prefix(isc_prefix_t *prefix) {
int refs;
if (prefix == NULL)
@@ -88,7 +90,8 @@ _deref_prefix(isc_mem_t *mctx, isc_prefix_t *prefix) {
if (refs <= 0) {
isc_refcount_destroy(&prefix->refcount);
- isc_mem_put(mctx, prefix, sizeof(isc_prefix_t));
+ isc_mem_putanddetach(&prefix->mctx, prefix,
+ sizeof(isc_prefix_t));
}
}
@@ -109,7 +112,7 @@ _ref_prefix(isc_mem_t *mctx, isc_prefix_t **target, isc_prefix_t *prefix) {
isc_result_t ret;
ret = _new_prefix(mctx, target, prefix->family,
&prefix->add, prefix->bitlen);
- return ret;
+ return (ret);
}
isc_refcount_increment(&prefix->refcount, NULL);
@@ -146,7 +149,8 @@ isc_radix_create(isc_mem_t *mctx, isc_radix_tree_t **target, int maxbits) {
if (radix == NULL)
return (ISC_R_NOMEMORY);
- radix->mctx = mctx;
+ radix->mctx = NULL;
+ isc_mem_attach(mctx, &radix->mctx);
radix->maxbits = maxbits;
radix->head = NULL;
radix->num_active_node = 0;
@@ -168,7 +172,6 @@ _clear_radix(isc_radix_tree_t *radix, isc_radix_destroyfunc_t func) {
REQUIRE(radix != NULL);
if (radix->head != NULL) {
-
isc_radix_node_t *Xstack[RADIX_MAXBITS+1];
isc_radix_node_t **Xsp = Xstack;
isc_radix_node_t *Xrn = radix->head;
@@ -178,7 +181,7 @@ _clear_radix(isc_radix_tree_t *radix, isc_radix_destroyfunc_t func) {
isc_radix_node_t *r = Xrn->r;
if (Xrn->prefix != NULL) {
- _deref_prefix(radix->mctx, Xrn->prefix);
+ _deref_prefix(Xrn->prefix);
if (func != NULL && (Xrn->data[0] != NULL ||
Xrn->data[1] != NULL))
func(Xrn->data);
@@ -209,11 +212,10 @@ _clear_radix(isc_radix_tree_t *radix, isc_radix_destroyfunc_t func) {
void
-isc_radix_destroy(isc_radix_tree_t *radix, isc_radix_destroyfunc_t func)
-{
+isc_radix_destroy(isc_radix_tree_t *radix, isc_radix_destroyfunc_t func) {
REQUIRE(radix != NULL);
_clear_radix(radix, func);
- isc_mem_put(radix->mctx, radix, sizeof(*radix));
+ isc_mem_putanddetach(&radix->mctx, radix, sizeof(*radix));
}
@@ -221,8 +223,7 @@ isc_radix_destroy(isc_radix_tree_t *radix, isc_radix_destroyfunc_t func)
* func will be called as func(node->prefix, node->data)
*/
void
-isc_radix_process(isc_radix_tree_t *radix, isc_radix_processfunc_t func)
-{
+isc_radix_process(isc_radix_tree_t *radix, isc_radix_processfunc_t func) {
isc_radix_node_t *node;
REQUIRE(func != NULL);
@@ -461,8 +462,8 @@ isc_radix_insert(isc_radix_tree_t *radix, isc_radix_node_t **target,
*target = node;
return (ISC_R_SUCCESS);
} else {
- result =
- _ref_prefix(radix->mctx, &node->prefix, prefix);
+ result = _ref_prefix(radix->mctx,
+ &node->prefix, prefix);
if (result != ISC_R_SUCCESS)
return (result);
}
@@ -623,7 +624,7 @@ isc_radix_remove(isc_radix_tree_t *radix, isc_radix_node_t *node) {
* make sure there is a prefix associated with it!
*/
if (node->prefix != NULL)
- _deref_prefix(radix->mctx, node->prefix);
+ _deref_prefix(node->prefix);
node->prefix = NULL;
node->data[0] = node->data[1] = NULL;
@@ -632,7 +633,7 @@ isc_radix_remove(isc_radix_tree_t *radix, isc_radix_node_t *node) {
if (node->r == NULL && node->l == NULL) {
parent = node->parent;
- _deref_prefix(radix->mctx, node->prefix);
+ _deref_prefix(node->prefix);
isc_mem_put(radix->mctx, node, sizeof(*node));
radix->num_active_node--;
@@ -680,7 +681,7 @@ isc_radix_remove(isc_radix_tree_t *radix, isc_radix_node_t *node) {
parent = node->parent;
child->parent = parent;
- _deref_prefix(radix->mctx, node->prefix);
+ _deref_prefix(node->prefix);
isc_mem_put(radix->mctx, node, sizeof(*node));
radix->num_active_node--;
diff --git a/lib/isc/regex.c b/lib/isc/regex.c
new file mode 100644
index 00000000..279bcdc4
--- /dev/null
+++ b/lib/isc/regex.c
@@ -0,0 +1,370 @@
+/*
+ * 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.
+ */
+
+#include <config.h>
+
+#include <isc/file.h>
+#include <isc/regex.h>
+#include <isc/string.h>
+
+#if VALREGEX_REPORT_REASON
+#define FAIL(x) do { reason = (x); goto error; } while(0)
+#else
+#define FAIL(x) goto error
+#endif
+
+/*
+ * Validate the regular expression 'C' locale.
+ */
+int
+isc_regex_validate(const char *c) {
+ enum {
+ none, parse_bracket, parse_bound,
+ parse_ce, parse_ec, parse_cc
+ } state = none;
+ /* Well known character classes. */
+ const char *cc[] = {
+ ":alnum:", ":digit:", ":punct:", ":alpha:", ":graph:",
+ ":space:", ":blank:", ":lower:", ":upper:", ":cntrl:",
+ ":print:", ":xdigit:"
+ };
+ isc_boolean_t seen_comma = ISC_FALSE;
+ isc_boolean_t seen_high = ISC_FALSE;
+ isc_boolean_t seen_char = ISC_FALSE;
+ isc_boolean_t seen_ec = ISC_FALSE;
+ isc_boolean_t seen_ce = ISC_FALSE;
+ isc_boolean_t have_atom = ISC_FALSE;
+ int group = 0;
+ int range = 0;
+ int sub = 0;
+ isc_boolean_t empty_ok = ISC_FALSE;
+ isc_boolean_t neg = ISC_FALSE;
+ isc_boolean_t was_multiple = ISC_FALSE;
+ unsigned int low = 0;
+ unsigned int high = 0;
+ const char *ccname = NULL;
+ int range_start = 0;
+#if VALREGEX_REPORT_REASON
+ const char *reason = "";
+#endif
+
+ if (c == NULL || *c == 0)
+ FAIL("empty string");
+
+ while (c != NULL && *c != 0) {
+ switch (state) {
+ case none:
+ switch (*c) {
+ case '\\': /* make literal */
+ ++c;
+ switch (*c) {
+ case '1': case '2': case '3':
+ case '4': case '5': case '6':
+ case '7': case '8': case '9':
+ if ((*c - '0') > sub)
+ FAIL("bad back reference");
+ have_atom = ISC_TRUE;
+ was_multiple = ISC_FALSE;
+ break;
+ case 0:
+ FAIL("escaped end-of-string");
+ default:
+ goto literal;
+ }
+ ++c;
+ break;
+ case '[': /* bracket start */
+ ++c;
+ neg = ISC_FALSE;
+ was_multiple = ISC_FALSE;
+ seen_char = ISC_FALSE;
+ state = parse_bracket;
+ break;
+ case '{': /* bound start */
+ switch (c[1]) {
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ case '8': case '9':
+ if (!have_atom)
+ FAIL("no atom");
+ if (was_multiple)
+ FAIL("was multiple");
+ seen_comma = ISC_FALSE;
+ seen_high = ISC_FALSE;
+ low = high = 0;
+ state = parse_bound;
+ break;
+ default:
+ goto literal;
+ }
+ ++c;
+ have_atom = ISC_TRUE;
+ was_multiple = ISC_TRUE;
+ break;
+ case '}':
+ goto literal;
+ case '(': /* group start */
+ have_atom = ISC_FALSE;
+ was_multiple = ISC_FALSE;
+ empty_ok = ISC_TRUE;
+ ++group;
+ ++sub;
+ ++c;
+ break;
+ case ')': /* group end */
+ if (group && !have_atom && !empty_ok)
+ FAIL("empty alternative");
+ have_atom = ISC_TRUE;
+ was_multiple = ISC_FALSE;
+ if (group != 0)
+ --group;
+ ++c;
+ break;
+ case '|': /* alternative seperator */
+ if (!have_atom)
+ FAIL("no atom");
+ have_atom = ISC_FALSE;
+ empty_ok = ISC_FALSE;
+ was_multiple = ISC_FALSE;
+ ++c;
+ break;
+ case '^':
+ case '$':
+ have_atom = ISC_TRUE;
+ was_multiple = ISC_TRUE;
+ ++c;
+ break;
+ case '+':
+ case '*':
+ case '?':
+ if (was_multiple)
+ FAIL("was multiple");
+ if (!have_atom)
+ FAIL("no atom");
+ have_atom = ISC_TRUE;
+ was_multiple = ISC_TRUE;
+ ++c;
+ break;
+ case '.':
+ default:
+ literal:
+ have_atom = ISC_TRUE;
+ was_multiple = ISC_FALSE;
+ ++c;
+ break;
+ }
+ break;
+ case parse_bound:
+ switch (*c) {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ if (!seen_comma) {
+ low = low * 10 + *c - '0';
+ if (low > 255)
+ FAIL("lower bound too big");
+ } else {
+ seen_high = ISC_TRUE;
+ high = high * 10 + *c - '0';
+ if (high > 255)
+ FAIL("upper bound too big");
+ }
+ ++c;
+ break;
+ case ',':
+ if (seen_comma)
+ FAIL("multiple commas");
+ seen_comma = ISC_TRUE;
+ ++c;
+ break;
+ default:
+ case '{':
+ FAIL("non digit/comma");
+ case '}':
+ if (seen_high && low > high)
+ FAIL("bad parse bound");
+ seen_comma = ISC_FALSE;
+ state = none;
+ ++c;
+ break;
+ }
+ break;
+ case parse_bracket:
+ switch (*c) {
+ case '^':
+ if (seen_char || neg) goto inside;
+ neg = ISC_TRUE;
+ ++c;
+ break;
+ case '-':
+ if (range == 2) goto inside;
+ if (!seen_char) goto inside;
+ if (range == 1)
+ FAIL("bad range");
+ range = 2;
+ ++c;
+ break;
+ case '[':
+ ++c;
+ switch (*c) {
+ case '.': /* collating element */
+ if (range) --range;
+ ++c;
+ state = parse_ce;
+ seen_ce = ISC_FALSE;
+ break;
+ case '=': /* equivalence class */
+ if (range == 2)
+ FAIL("equivalence class in range");
+ ++c;
+ state = parse_ec;
+ seen_ec = ISC_FALSE;
+ break;
+ case ':': /* character class */
+ if (range == 2)
+ FAIL("character class in range");
+ ccname = c;
+ ++c;
+ state = parse_cc;
+ break;
+ }
+ seen_char = ISC_TRUE;
+ break;
+ case ']':
+ if (!c[1] && !seen_char)
+ FAIL("unfinished brace");
+ if (!seen_char)
+ goto inside;
+ ++c;
+ range = 0;
+ have_atom = ISC_TRUE;
+ state = none;
+ break;
+ default:
+ inside:
+ seen_char = ISC_TRUE;
+ if (range == 2 && *c < range_start)
+ FAIL("out of order range");
+ if (range != 0)
+ --range;
+ range_start = *c;
+ ++c;
+ break;
+ };
+ break;
+ case parse_ce:
+ switch (*c) {
+ case '.':
+ ++c;
+ switch (*c) {
+ case ']':
+ if (!seen_ce)
+ FAIL("empty ce");
+ ++c;
+ state = parse_bracket;
+ break;
+ default:
+ if (seen_ce)
+ range_start = 256;
+ else
+ range_start = '.';
+ seen_ce = ISC_TRUE;
+ break;
+ }
+ break;
+ default:
+ if (seen_ce)
+ range_start = 256;
+ else
+ range_start = *c;
+ seen_ce = ISC_TRUE;
+ ++c;
+ break;
+ }
+ break;
+ case parse_ec:
+ switch (*c) {
+ case '=':
+ ++c;
+ switch (*c) {
+ case ']':
+ if (!seen_ec)
+ FAIL("no ec");
+ ++c;
+ state = parse_bracket;
+ break;
+ default:
+ seen_ec = ISC_TRUE;
+ break;
+ }
+ break;
+ default:
+ seen_ec = ISC_TRUE;
+ ++c;
+ break;
+ }
+ break;
+ case parse_cc:
+ switch (*c) {
+ case ':':
+ ++c;
+ switch (*c) {
+ case ']': {
+ unsigned int i;
+ isc_boolean_t found = ISC_FALSE;
+ for (i = 0;
+ i < sizeof(cc)/sizeof(*cc);
+ i++)
+ {
+ unsigned int len;
+ len = strlen(cc[i]);
+ if (len !=
+ (unsigned int)(c - ccname))
+ continue;
+ if (strncmp(cc[i], ccname, len))
+ continue;
+ found = ISC_TRUE;
+ }
+ if (!found)
+ FAIL("unknown cc");
+ ++c;
+ state = parse_bracket;
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ default:
+ ++c;
+ break;
+ }
+ break;
+ }
+ }
+ if (group != 0)
+ FAIL("group open");
+ if (state != none)
+ FAIL("incomplete");
+ if (!have_atom)
+ FAIL("no atom");
+ return (sub);
+
+ error:
+#if VALREGEX_REPORT_REASON
+ fprintf(stderr, "%s\n", reason);
+#endif
+ return (-1);
+}
diff --git a/lib/isc/tests/Makefile.in b/lib/isc/tests/Makefile.in
index b209ecb4..89e11576 100644
--- a/lib/isc/tests/Makefile.in
+++ b/lib/isc/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,12 +37,13 @@ LIBS = @LIBS@ @ATFLIBS@
OBJS = isctest.@O@
SRCS = isctest.c taskpool_test.c socket_test.c hash_test.c \
sockaddr_test.c symtab_test.c task_test.c queue_test.c \
- parse_test.c
+ parse_test.c pool_test.c regex_test.c
SUBDIRS =
TARGETS = taskpool_test@EXEEXT@ socket_test@EXEEXT@ hash_test@EXEEXT@ \
sockaddr_test@EXEEXT@ symtab_test@EXEEXT@ task_test@EXEEXT@ \
- queue_test@EXEEXT@ parse_test@EXEEXT@
+ queue_test@EXEEXT@ parse_test@EXEEXT@ pool_test@EXEEXT@ \
+ regex_test@EXEEXT@
@BIND9_MAKE_RULES@
@@ -78,6 +79,13 @@ sockaddr_test@EXEEXT@: sockaddr_test.@O@ isctest.@O@ ${ISCDEPLIBS}
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
sockaddr_test.@O@ isctest.@O@ ${ISCLIBS} ${LIBS}
+pool_test@EXEEXT@: pool_test.@O@ isctest.@O@ ${ISCDEPLIBS}
+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
+ pool_test.@O@ isctest.@O@ ${ISCLIBS} ${LIBS}
+
+regex_test@EXEEXT@: regex_test.@O@ ${ISCDEPLIBS}
+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \
+ regex_test.@O@ ${ISCLIBS} ${LIBS}
unit::
sh ${top_srcdir}/unit/unittest.sh
diff --git a/lib/isc/tests/pool_test.c b/lib/isc/tests/pool_test.c
new file mode 100644
index 00000000..9f7c1564
--- /dev/null
+++ b/lib/isc/tests/pool_test.c
@@ -0,0 +1,186 @@
+/*
+ * 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 <isc/mem.h>
+#include <isc/pool.h>
+
+#include "isctest.h"
+
+static isc_result_t
+poolinit(void **target, void *arg) {
+ isc_result_t result;
+
+ isc_taskmgr_t *mgr = (isc_taskmgr_t *) arg;
+ isc_task_t *task = NULL;
+ result = isc_task_create(mgr, 0, &task);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+
+ *target = (void *) task;
+ return (ISC_R_SUCCESS);
+}
+
+static void
+poolfree(void **target) {
+ isc_task_t *task = *(isc_task_t **) target;
+ isc_task_destroy(&task);
+ *target = NULL;
+}
+
+/*
+ * Individual unit tests
+ */
+
+/* Create a pool */
+ATF_TC(create_pool);
+ATF_TC_HEAD(create_pool, tc) {
+ atf_tc_set_md_var(tc, "descr", "create a pool");
+}
+ATF_TC_BODY(create_pool, tc) {
+ isc_result_t result;
+ isc_pool_t *pool = NULL;
+
+ UNUSED(tc);
+
+ result = isc_test_begin(NULL, ISC_TRUE);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ result = isc_pool_create(mctx, 8, poolfree, poolinit, taskmgr, &pool);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ ATF_REQUIRE_EQ(isc_pool_count(pool), 8);
+
+ isc_pool_destroy(&pool);
+ ATF_REQUIRE_EQ(pool, NULL);
+
+ isc_test_end();
+}
+
+/* Resize a pool */
+ATF_TC(expand_pool);
+ATF_TC_HEAD(expand_pool, tc) {
+ atf_tc_set_md_var(tc, "descr", "expand a pool");
+}
+ATF_TC_BODY(expand_pool, tc) {
+ isc_result_t result;
+ isc_pool_t *pool1 = NULL, *pool2 = NULL, *hold = NULL;
+
+ UNUSED(tc);
+
+ result = isc_test_begin(NULL, ISC_TRUE);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ result = isc_pool_create(mctx, 10, poolfree, poolinit, taskmgr, &pool1);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ ATF_REQUIRE_EQ(isc_pool_count(pool1), 10);
+
+ /* resizing to a smaller size should have no effect */
+ hold = pool1;
+ result = isc_pool_expand(&pool1, 5, &pool2);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ ATF_REQUIRE_EQ(isc_pool_count(pool2), 10);
+ ATF_REQUIRE_EQ(pool2, hold);
+ ATF_REQUIRE_EQ(pool1, NULL);
+ pool1 = pool2;
+ pool2 = NULL;
+
+ /* resizing to the same size should have no effect */
+ hold = pool1;
+ result = isc_pool_expand(&pool1, 10, &pool2);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ ATF_REQUIRE_EQ(isc_pool_count(pool2), 10);
+ ATF_REQUIRE_EQ(pool2, hold);
+ ATF_REQUIRE_EQ(pool1, NULL);
+ pool1 = pool2;
+ pool2 = NULL;
+
+ /* resizing to larger size should make a new pool */
+ hold = pool1;
+ result = isc_pool_expand(&pool1, 20, &pool2);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ ATF_REQUIRE_EQ(isc_pool_count(pool2), 20);
+ ATF_REQUIRE(pool2 != hold);
+ ATF_REQUIRE_EQ(pool1, NULL);
+
+ isc_pool_destroy(&pool2);
+ ATF_REQUIRE_EQ(pool2, NULL);
+
+ isc_test_end();
+}
+
+/* Get objects */
+ATF_TC(get_objects);
+ATF_TC_HEAD(get_objects, tc) {
+ atf_tc_set_md_var(tc, "descr", "get objects");
+}
+ATF_TC_BODY(get_objects, tc) {
+ isc_result_t result;
+ isc_pool_t *pool = NULL;
+ void *item;
+ isc_task_t *task1 = NULL, *task2 = NULL, *task3 = NULL;
+
+ UNUSED(tc);
+
+ result = isc_test_begin(NULL, ISC_TRUE);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+
+ result = isc_pool_create(mctx, 2, poolfree, poolinit, taskmgr, &pool);
+ ATF_REQUIRE_EQ(result, ISC_R_SUCCESS);
+ ATF_REQUIRE_EQ(isc_pool_count(pool), 2);
+
+ item = isc_pool_get(pool);
+ ATF_REQUIRE(item != NULL);
+ isc_task_attach((isc_task_t *) item, &task1);
+
+ item = isc_pool_get(pool);
+ ATF_REQUIRE(item != NULL);
+ isc_task_attach((isc_task_t *) item, &task2);
+
+ item = isc_pool_get(pool);
+ ATF_REQUIRE(item != NULL);
+ isc_task_attach((isc_task_t *) item, &task3);
+
+ isc_task_detach(&task1);
+ isc_task_detach(&task2);
+ isc_task_detach(&task3);
+
+ isc_pool_destroy(&pool);
+ ATF_REQUIRE_EQ(pool, NULL);
+
+ isc_test_end();
+}
+
+
+/*
+ * Main
+ */
+ATF_TP_ADD_TCS(tp) {
+ ATF_TP_ADD_TC(tp, create_pool);
+ ATF_TP_ADD_TC(tp, expand_pool);
+ ATF_TP_ADD_TC(tp, get_objects);
+
+ return (atf_no_error());
+}
+
diff --git a/lib/isc/tests/regex_test.c b/lib/isc/tests/regex_test.c
new file mode 100644
index 00000000..e7976793
--- /dev/null
+++ b/lib/isc/tests/regex_test.c
@@ -0,0 +1,1125 @@
+/*
+ * 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.
+ */
+
+#include <config.h>
+
+#include <atf-c.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#ifdef HAVE_REGEX_H
+#include <regex.h>
+#endif
+
+#include <isc/regex.h>
+#include <isc/util.h>
+
+ATF_TC(regex_validate);
+ATF_TC_HEAD(regex_validate, tc) {
+ atf_tc_set_md_var(tc, "descr", "check isc_regex_validate()");
+}
+ATF_TC_BODY(regex_validate, tc) {
+ /*
+ * test regex were generated using http://code.google.com/p/regfuzz/
+ * modified to use only printable characters
+ */
+ struct {
+ const char * expression;
+ int expect;
+ int exception; /* regcomp accepts but is disallowed. */
+ } tests[] = {
+ { "", -1, 0 },
+ { "*", -1, 0 },
+ { ".*", 0, 0 },
+ { ".**", -1, 0 },
+ { ".*\?", -1, 0 },
+ { ".*+", -1, 0 },
+ { "+", -1, 0 },
+ { ".+", 0, 0 },
+ { ".++", -1, 0 },
+ { ".+\?", -1, 0 },
+ { ".+*", -1, 0 },
+ { "\?", -1, 0 },
+ { ".\?", 0, 0 },
+ { ".\?\?", -1, 0 },
+ { ".\?*", -1, 0 },
+ { ".\?+", -1, 0 },
+ { "(", -1, 0 },
+ { "()", 1, 0 },
+ { "(|)", -1, 0 },
+ { "(a|)", -1, 0 },
+ { "(|b)", -1, 0 },
+ { ".{", 0, 0 },
+ { ".{1", -1, 0 },
+ { ".\\{1", 0, 0 },
+ { ".{1}", 0, 0 },
+ { ".\\{1}", 0, 0 },
+ { ".{,", 0, 0 },
+ { ".{,}", 0, 0 },
+ { ".{1,}", 0, 0 },
+ { ".\\{1,}", 0, 0 },
+ { ".{1,\\}", -1, 0 },
+ { ".{1,", -1, 0 },
+ { ".\\{1,", 0, 0 },
+ { ".{1,2}", 0, 0 },
+ { ".{1,2}*", -1, 0 },
+ { ".{1,2}+", -1, 0 },
+ { ".{1,2}\?", -1, 0 },
+ { ".{1,2", -1, 0 },
+ { ".{2,1}", -1, 0 },
+ { "[", -1, 0 },
+ { "[]", -1, 0 },
+ { "[]]", 0, 0 },
+ { "[[]", 0, 0 },
+ { "[^]", -1, 0 },
+ { "[1-2-3]", -1, 0 },
+ { "[1-22-3]", 0, 0 },
+ { "[+--23]", 0, 0 },
+ { "[+--]", 0, 0 },
+ { "[-1]", 0, 0 },
+ { "[1-]", 0, 0 },
+ { "[[.^.]]", 0, 0 },
+ { "[^]]", 0, 0 },
+ { "[^^]", 0, 0 },
+ { "[]]\?", 0, 0 },
+ { "[[]\?", 0, 0 },
+ { "[[..]]", -1, 0 },
+ { "[[...]]", 0, 0 },
+ { "[[..5.]--]", -1, 0 },
+ { "[[.+.]--]", 0, 0 },
+ { "[[..+.]--]", -1, 0 },
+ { "[[.5.]--]", -1, 0 },
+ { "[1-[=x=]]", -1, 0 },
+ { "[[:alpha:]]", 0, 0 },
+ { "[[:alpha:]", -1, 0 },
+ { "[[:alnum:]]", 0, 0 },
+ { "[[:alnum:]", -1, 0 },
+ { "[[:digit:]]", 0, 0 },
+ { "[[:digit:]", -1, 0 },
+ { "[[:punct:]]", 0, 0 },
+ { "[[:punct:]", -1, 0 },
+ { "[[:graph:]]", 0, 0 },
+ { "[[:graph:]", -1, 0 },
+ { "[[:space:]]", 0, 0 },
+ { "[[:space:]", -1, 0 },
+ { "[[:blank:]]", 0, 0 },
+ { "[[:blank:]", -1, 0 },
+ { "[[:upper:]]", 0, 0 },
+ { "[[:upper:]", -1, 0 },
+ { "[[:cntrl:]]", 0, 0 },
+ { "[[:cntrl:]", -1, 0 },
+ { "[[:print:]]", 0, 0 },
+ { "[[:print:]", -1, 0 },
+ { "[[:xdigit:]]", 0, 0 },
+ { "[[:xdigit:]", -1, 0 },
+ { "[[:unknown:]]", -1, 0 },
+ { "\\[", 0, 0 },
+ { "(a)\\1", 1, 0 },
+ { "(a)\\2", -1, 1 },
+ { "\\0", 0, 0 },
+ { "[[][:g(\?(raph:][:alnu)(\?{m:][:space:]h]<Z3})AAA)S[:space:]{176,}", 0, 0 },
+ { "(()IIIIIIII(III[[[[[[[[[[[[[[[[[[^[[[[[[[[ [^ fX][:ascii:].)N[:a(\?<!lpha:])][:punct:]e*y+)a{-124,223}", 3, 0 },
+ { "(pP\\\\\\(\?<!\\\\\\\\\\\\\\\\\\\\\\lRRRRRRRRRRRRRRRRBBBBBBBBBBBBBBBB))kkkkkkkkkkkkkkkkkkkkk|^", 1, 0 },
+ { "[^[^[{111}(\?=(\?:(\?>/r(\?<(\?=!(\?(\?!<!Q(\?:=0_{Meqipm`(\?((\?{x|N)))))|))+]+]Z)O{,-215}])}))___________________{}", 0, 0 },
+ { "[C{,-218(\?=}E^< ]PP-Ga)t``````````````````````````{138}", 0, 0 },
+ { "[^h(\?<!(\?>Nn(\?#])))", 0, 0 },
+ { "[(\?!(\?<=[^{,37}AAAA(AAAAAAAAAAAAA])", 0, 0 },
+ { "[^((\?(\?:ms(\?<!xims:A{}(\?{*</H(\?=xL $(\?<!,[})))*)qqqqqqqqqqqqqqqqqq)]33333333333333333333333333333{[:graph:]p)-+( oqD]){-10,}-{247}_______________________X-e[:alpha:][:upperword:]_(______wwwwwwwww /c[:upperword:][:alnum:][:alnum:][:pun(\?{ct:])[:blankcntrl:]})*_*", 2, 0 },
+ { "[(\?<!:lowerprin(\?{t:]{}}){113,})[:punct:]IIIIIIIIIIIIIIIIIIIIIIII", 0, 0 },
+ { "PP)", 0, 0 },
+ { "(([^(\?<!((\?>\?=[])p.]}8X[:blankcntrl:],{-119,94})XmF1.{)-)[:upperword:])[:digit:]{zg-q", 2, 0 },
+ { "[^[({(\?#254}))Z[l][x50]=444444444444(4444444444u[:punct:]\?[:punct:(\?!])])", 1, 0 },
+ { "[^[^[^([^((*4[(^((\?<=])Ec)", 0, 0 },
+ { "(0)Y:8biiiiiiiiiiiiiiiiiii", 1, 0 },
+ { "[^w(\?!)P::::::::::::::(\?#::(\?<=:::::::::]\"\"{}[3333333333333333(\?<=33333(\?!)9Xja][:alph(\?<=a:])xB1)(PX8Cf\?4444)qq[:digit:])", 1, 0 },
+ { "([U[^[^].]^m]/306KS7JJJJJJJJ{})", 1, 0 },
+ { "[^[^([^[(\?!(\?>8j`Wg2(\?{,(\?>!#N++++(\?<![++++++)+44444444bA:K(\?<!O3([:digit:]3]}}}}}}}}}}}}}}}}}}}}}}}}LP})S", 0, 0 },
+ { "[({(\?{,(\?(=213}*))})]WWWWWWWWWWWWWWW[:alnum:])", 0, 0 },
+ { "[:(\?<=ascii:])", 0, 0 },
+ { "[U(\?#)(\?<=+HzE])[:punct:]{-207,170}\?s.!", 0, 0 },
+ { "{}z=jU75~n#soD\"&\?UL`X{xxxxxxxxxxxxxxxxxxxx(xxxxxx${-246,27}[:graph:]g\"{_bX)[:alnum:][:punct:]{-79,}-", 1, 0 },
+ { "[^{,-186}@@@@[^(\?{@@(\?>@+(\?>l.]}))*\\BCYX]^W{52,123}(lXislccccccccccccccccc)-*)", 1, 0 },
+ { "(x42+,)7=]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", 1, 0 },
+ { "[^(*[:graph:]q/TH\?B(\?{P)]})uZn[:digit:]+2", 0, 0 },
+ { "([XXXXXXXXXXXXXXXXXXXXX[(:alnum:][:space:]i%[:upperw(\?=o(\?#rd:])) ", 1, 0 },
+ { "(@@@@)", 1, 0 },
+ { "{-18,}[:as[(\?>^[cii:]]{}>+{-46,}{,95}[:punct:]{}99999999999999])-{-134}'sK$wCKjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", 0, 0 },
+ { "(l[:alpha:(\?!]))", 1, 0 },
+ { "[[^(\?{]|JJ[:alph(a:]X{})B^][:lowerprint:]n-219{-32}{19,105}k4P}){,-144}", 0, 0 },
+ { "[[^]P[:punct:][:alpha:][:xdigit:]syh]|W#JS*(m<2,P-RK)cA@", 1, 0 },
+ { "([^((\?({\?<=)}){[^}^]{}])^P4[:punct:[]$)]", 1, 0 },
+ { "([(\?#:(\?{space:]}):{}{-242,}n)F[:alpha:]3$)d4H3up6qS[:blankcntrl:]B:C{}[:upperword:]r", 1, 0 },
+ { "([(\?:]))[:digit:]mLV.{}", 1, 0 },
+ { "[^PPP-[]{[,50}{128,}]111111111111111]p", 0, 0 },
+ { "[^([^([^([[^[([^[^[[2[[[[[[[[[[[[[^[[[[(\?(\?{:[[[[[[(\?([-[:ascii:]--*)", -1, 0 },
+ { ")!F^DA/ZZZZZZZZZZZZZZZZZZ", 0, 0 },
+ { "[[[[[[[((\?=\?(\?>([[[[[[[^[[[[(\?()[[[K(\?#))])))]7Y[:space:]{,-96}pP)[:ascii:]u{-88}:N{-251}uo", 0, 0 },
+ { "t[:x(\?<=digit:])eYYYYYYYYYYYYYYYYYY{,-220}A", 0, 0 },
+ { "[[({10,}[:graph:]Pdddddd(\?#X)])[:alnum:(]]L-C){,50}[:blankcntrl:]p[:gra(ph:]){66,}", 0, 0 },
+ { "[^[^]*4br]w[:digit(\?::]n99999999999999999)P[:punct:]pP", 0, 0 },
+ { "[:digit:]{67,247}!N{122})VrXe", 0, 0 },
+ { "[:xdigit:]^[:xdigit:]Z[:alnum:]^^^^1[:upperword:(\?=])[:lowerprint:]*JJ-", 0, 0 },
+ { "[[(\?imsximsx:^*e(){,3[6}](V~\?^[:asc(\?!ii:]I.dZ))]$^AAAAAAAAAAAAAAAAAAAAAAAA[:space:]k)]", 1, 0 },
+ { "W{,112}[:lowerp(\?<!rint:]$#GT>R7~t'\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"9,O).", 0, 0 },
+ { "[^{6((\?>\?:4}(\?<=G))f)KKKKKKKKKKKKKKKKKKKKKKKKKKKKKpppppppp(\?=ppppp]{,-101}|[:blankcntrl:]Z{-182})", 0, 0 },
+ { "([:punct:]@^,,,,,,,,,,,,,,,,,,,,,,,,,,0\?:-o8NPIIIIIIIII)pPKKKKKKKKKKKKKKKKKKKK", 1, 0 },
+ { "([^[[^[^]]]])", 1, 0 },
+ { "[([^[(333\"(\?#\\\\[)(\?isx-x:\"Tx]')", 0, 0 },
+ { "[[n>^>T%.zzzzzzzzzzzzzzzzz$&|Fk.1o7^o, ^8{202,-12}$[:alnum:]]G[:upperword:]V[:xdigit:]L|[:upperword:]KKKKKKKKKKKKYX\"\")xJ ~B@[{,-68}/][:upperword:]QI.", 0, 0 },
+ { "[^[]tN^hy3\"d@v T[GE\?^~{124,10(\?{2}]})\?[:upperword:]O", 0, 0 },
+ { "d.``````````````````````````[:up(\?=perword:]RRRRRRRRRRRRRRR)", 0, 0 },
+ { "[Z{{{{{{{{{{{{{(\?={(\?<!{{{{{{{{{(\?>{{J6N:H[tA+mN3Zmf:p\?]\?){-181,82}S4n.b[:lowerpri(\?{nt:]|ggggggggggggggggggggggggggggggg}))4)", 0, 0 },
+ { "[^((/////[^////[^/////////[(^/////]fI{240}{-120}+]R]GA)", 0, 0 },
+ { "[-(\?#.)(\?())[:alpha:](\?={(\?#}r)[:space:]PPW]o)", 0, 0 },
+ { "[:lowerp(\?{rint:]})201{46,}[:a[^scii:]0Q{37,}][:blankcntrl:]1331", 0, 0 },
+ { "[^(\?!(\?#)\\GIwxKKKKKKKKKK'$KKKKKKKK]l)bbb^&\?", 0, 0 },
+ { "[:ascii:]*[:sp(\?<=ace:])", 0, 0 },
+ { "({-66,}Z{})0I{-111,}[:punct(\?():])", 1, 0 },
+ { "[[^(\?!()%%%%%%%%%%%%%(\?:%%%%%%%%%%%%%%%%)t(\?{VX>B#6sUU(\?<!UUUUUU(\?=UUU[^UUUUUUUUUUUU(\?((\?:UPPPPPPPPPPP)PPPPPPPPPPPPPPP]ffffffffffffffffffffffff)^[:space:]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{243}9[:lowerprint:]Dv[:graph:])][:blankcntrl:]V%E[:graph:]})[:space:]{-83,}cQZ{}4{-23,135}", 0, 0 },
+ { "({,-76[}]O[:xdi(\?<!git:])\?5))))))))\?d[:lowerprint:]b666666[:graph:]c", 1, 0 },
+ { "{}{-145,}[:(\?(spa)ce:])f", 0, 0 },
+ { "[([^].{116,243}]T*[[^:punct(\?[{[^:(\?<!]]8()])[:alnum:])})]N{}{,243}*[n]][:graph:]", 1, 0 },
+ { "[^w]8888888888888888_________(__________[:ascii:]BdqTE$^0|MNto*i#############[^#################])", 1, 0 },
+ { "[^[[[<[()\?]GGG{,26[}[:alnum:]SSSSS.gggggggg[:graph:]CCCCCCCCCCC{79,}{138,191}][:di(git:]u]@]JJJJJJJJJJJJJJJJJJJJJJJ[:graph:(\?:][:alnum:]])[:alnum:])]", 0, 0 },
+ { "[^(((BBBBBBBBBB(\?>BBBZvvvvvvvvvv(\?m(sximsx:vvv)iiiiiiii)))j>Rs:Sm]0MMMMMMMMMMM|@F)Y]*^#EEEEEEE)*", 0, 0 },
+ { "([^([(U(\?!)<<<<<<<<<<(\?#<<<<(\?<!<<<)(\?=L.{73,})+]n9U}fk%Jn}'b Na<%yyyyyyyyyyyy)){-198,}]))[:space:].pP361U]3s@u_9AU Te/{s`6=IMZdL1|.ySRo", 1, 0 },
+ { "[[((\?<=\?>(\?#){}]{}`){1,82}){-143[,}]^G", 0, 0 },
+ { "[:digit:]W|[:up(\?<!perword:]{,-101}llllllllllllllllll[:upperword:])mmYYYYYYYYYYYYYYYYYYYYYYY*", 0, 0 },
+ { "@NHy)", 0, 0 },
+ { "([^[^]][:alnum:]222[^22222222(\?{2222222222222222][:lo(\?:werprint:][:xdigit:]^[:blankcntrl:]s+N)[:alpha:]-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWxxxxxxxxxxxxxxxxxxxxxxxxxxD[:space:]U)TTTTTTTTTTfffffffffffzzzzzzzzzzzzzzzzzzzzzzzzz})", 1, 0 },
+ { "[^[^[[^[][^[]pP([^\?[^<=(\?=]){158,})]]]][:digit:]]K22222222222p^dUKJ`\">@]", 1, 0 },
+ { "[^[^[(\?imsximsx::p(\?{unct:][(\?>:ascii:]5w)]{159}\\Q\?@C]4(44444444}[^)|)[:graph:]]C:b)", 1, 0 },
+ { "[^[[(tYri[W<8%1(\?='yt][:lowerprint:[]))1r]][:alnum:][:digit:]{48}{-52,-183}+][:alpha:]r][:upperword:]\?{-105,155}{-55,-87}pPN#############################{63,232}]", 0, 0 },
+ { "[*(\?>L(\?<(\?>=))]&&&&&&&(&&&&&&&&&&&&&&&&&&))[|WIX]{-62,-114}S K=HW60XE<2+W", 1, 0 },
+ { "(00000000000)z\\\\*t{}R{88}[:alnum:]*", 1, 0 },
+ { "(([^(\?=\?gggggg[gLw)]{-250,}[:xdigit:]yZ[:g(raph:]8QNr[:space:][:blankcntrl:]A)][:digit:]D)[:xdigit:])", 2, 0 },
+ { "[^([^,(\?<!]*))]", 0, 0 },
+ { "[^(\?{[:alnum:]]}}}}}}}}}}}}}}}}}}}}}}}){-83}", 0, 0 },
+ { "WWWWWWWW[:alnum(\?<=(\?#:]{,-1})@OSSS)[:digit:]", 0, 0 },
+ { "[^(\?!*]+G)", 0, 0 },
+ { "[LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL>s8.>[^{}$(\?(]]XXXXXXX)XXXXXXXXXXXXXX[:alpha:]Whii\?p[:xdigit:])+", 0, 0 },
+ { "(7777[:blankcntrl:])", 1, 0 },
+ { "[^C[:digit:]]{}YYYY(YYYYYYYYYYYYYYYY)", 1, 0 },
+ { "on|,#tve%F(w-::::::::::::::::::::::::::::*=->)", 1, 0 },
+ { "([((\?=(\?!((\?=')))27(<{})S-vvvvvvvvvv(\?=vvvvvvvvvvvvvvvvv[:punct:][:alnum:]}}}}}}}}}}}}}}}}}}}}}}}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPgggggggggggggggggggggggggg(\?#(\?#gggggg<X){}]{-164,61})>+))uQ)W>[:punct:][:xdigit:][:digit:][:punct:]{}[:digit:][:space:]){,-105}=xiAyf}o[:alpha:]akZSYK+sl{", 1, 0 },
+ { "[^[^]/S:Hq<[:upperword:(\?<=]W[:alnum:]X])1973", 0, 0 },
+ { "[[^[[^([^VVVV(\?!(VVVVVVVVVVVVVVVVVVVVV[VVVVX][^]2))98ppppppppppppppppppppppppppppppp/////////////////////b.]G{-101,}[:[ascii:]P].=~])AAAAAAAAAAAAA2{-153,}]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][:alnum:][:lowerprint:]WN/D!rD]|4444{180}]V_@3lW#lat]", 0, 0 },
+ { "[^[^([^TTTTT(\?:T(\?:T7777{,59}])[:graph:][:ascii(\?<=:]))f]AD{,-43}%%%%%%%%%%%%%%%%)S|[:digit:]FZm<[:blankcntrl:]QT&xj*{-114,}$[:xdigit:]042][:xdig[it:]{-180}027[:alpha:][:ascii:][:lowerprint:][:xdigit:]^|[:alnum:][^Mi]z!suQ{-44,-32}[:digit:]]", 0, 0 },
+ { ")", 0, 0 },
+ { "''''''''''[:a(\?imsxisx:lnum:])P", 0, 0 },
+ { "(([{20(\?<=8}[:alnum:]pP$`(\?#N)wRH[:graph:]aaaaaaaaaaaaaa(\?=aaaaaaaaaaaaaaaaP]a)))[:punct:]-\?)A^", 2, 0 },
+ { "[^(.//[:punct:]&-333333333333333333333333333(\?<!33)LLLLLLLLLLLLLLLLL[:alnum:]$1]~8]|^\"A[:xdigit:]\?[:ascii:]{128,}{,-74}[:graph:]{157}3N){-196,184}D", 0, 0 },
+ { "[^($(\?{(\?<=)[#)]})[:space:]]nWML0D{}", 0, 0 },
+ { ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,[^]x{213,-93}(\?{A7]V{}})", 0, 0 },
+ { "[k(\?=*)+^[f(])r_H6", 0, 0 },
+ { "[(\?#(\?{)]q})", 0, 0 },
+ { "([GLLLLLLLLLL(\?!((\?:LLLLLLLL]))C#T$Y))^|>W90DDDDDDDDDDD[^DDDDDDDDDDDDDDDDDDDD]B[:punct:]c/", 1, 0 },
+ { "[^(\?<!)(\?{b}){,199}A[:space:]+++++++(\?!++++++++{36}Tn])", 0, 0 },
+ { "()[:alpha:]a", 1, 0 },
+ { "[(\?(:blan)kcntrl:])lUUUUUUUUUUUUUUUUUUUUUUU", 0, 0 },
+ { "[^[^(s[[[[[[[[[[[[[[(\?#[[[[[[[)\?`````][:blankcntrl:(\?>]|)p1EmmmmmmmmmmmmmmmmmmmmmmmmmmmmL{-241}666666666666666666666)]^bLDDDDDDDDDDDDD]", 0, 0 },
+ { "[nn(\?<!nnnnn(\?#n8)=````````````````````{41,}]U,cb*%Y[:graph:]).[:alnum:]\\\\\\\\\\gt", 0, 0 },
+ { "()\?5{,-195}lm*Ga[:space:]Y", 1, 0 },
+ { "[(\?:].di)c", 0, 0 },
+ { "([([^([\?{})Za,$S(\?!p(\?{++(\?##V(\?<!Evuil.2(\?<![^[h|[^']C)*\"]5]", 1, 0 },
+ { "[((^24(\?#4[^Kkj{}))]]{232}47)077[:alpha:]zzzzzzzz{}", 0, 0 },
+ { "[^(\?:[^F]o$h)-iV%]", 0, 0 },
+ { "[[^[([((([^(\?{[^((\?=)kaSx(\?imsximsx:w3A[`%+A$I{,62}ns&Y!#ay o9YAo{Y>1((\?>\?#45)Z{,108}{}11111111111111111111111111qqqq)\?][:lowerprint:]mbo#)@", 0, 0 },
+ { "[^iii8(888888(\?<!8^]))s", 0, 0 },
+ { "([[(\?(\?:({^]}[)[(r)])G]{,-87}", 1, 0 },
+ { "([[^{249,}(\?>(\?=)]]T()[:bl(\?!ankcntrl:]=jjjjjjjjjjjjjjjj-)))t{}[:alpha:]-\":i! Gn[A4Ym7<<<<<<<<<<<<<<<<]", 2, 0 },
+ { "^{}{[^,241(\?#}(\?m(\?ixim:sximsx:]t))+oD)", 0, 0 },
+ { "5[(\?#:xdigit:])", 0, 0 },
+ { "[^f{(\?>,22(9}[^[^])6KKKKKKKKKKKKK)]RRRRRRRRfuK99999999C}osnNR]BgCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC[:blankcntrl:]", 0, 0 },
+ { "[^(\?=U){24,}W-{,17(\?:3[^}]q.nQ#PU_|i$$$$$$$$$$$$$$+)[:dig(\?<!it:]){-98}\?[:upperword:]]", -1, 0 },
+ { "[(\?<=[0(\?!72])euE.]{,-159}[:alnum:]t-:l\?)$yyyyyyyyyyyyyyyyyyyyyyyyyyfffffffffffffffffffffffffff", 0, 0 },
+ { "[^[^]q[:asc(\?imsxmsx:ii:]JJJJJJJJJJJJJJJJJJJJ[:graph:]]$)`#DdY^qqqqqqqqqqqqqqqqqqqqqqqqqqqu>4^4ta[:alpha:]", 0, 0 },
+ { "(((b0HN)q))p5<T())`7JJv{'cv'#L8BNz", 4, 0 },
+ { "[pFp2VttBg(\?<=7777777777777|TTTTTTTTTTTTTTT[:space:]Z]^p\"[:blankcntrl:])", 0, 0 },
+ { ")aM@@@@@@@@@@@@@", 0, 0 },
+ { "([^[(\?<![^])", 1, 0 },
+ { "()Z[:ascii:]", 1, 0 },
+ { "(fuPPo)..........................[:xdigit:]{}{,4}*kkkkkkkCx#,_=&~)|.2x", 1, 0 },
+ { "[+(\?<=){}++++++[:alnum:](\?=+]s)[:alnum:]~~~~~~XXXXXXXXXXXXXXX.[:digit:]", 0, 0 },
+ { "[{}[^^(\?(]))CCCCCCCCCCCCCCCCCCCCEg2cF]{}3", 0, 0 },
+ { "([[[^[^[^([[^[^([(\?<=G[[)=(\?!===(\?isximsx:==(\?#==[^=====(\?{==================$T[[^^u_TiC.Fo.02>X)uH]$})354b[:alnum:]]]EVVVVVVVVVVVVVVVVVVVVVVVVVVVVVz[:digi(\?(t:][:upperword:])", 1, 0 },
+ { "([:blankcntrl:]t-){121,}[:ascii:]444444{}[:graph:]E040", 1, 0 },
+ { "[^{134,}]DzQ\?{-30,191})z,\?1Vfq!z}cgv)ERK)1T/=f\?>'", 0, 0 },
+ { "@v)<yN]'l-/KKKKKKKBBBBBBBBBBBBBMa2eLA[:digit(\?<!:])\"\"e|l$&m`_yn[:blankcntrl:]uuuuuuuuuuuuuuuuuuu[:punct:]", 0, 0 },
+ { "[[999999999999999(\?<=(\?:(\?ixmx:(\?>))])Y]|){,10}\?{}", 0, 0 },
+ { "([[[(\?!^]P-AA[AAAAAA[A[^A)r]+B]])", 1, 0 },
+ { "3}|[:ascii:][:punct:]()", 1, 0 },
+ { "()dw", 1, 0 },
+ { "[N]{})))))))))))))))))))))))", 0, 0 },
+ { "[[[^([[(\?()(\?#)++([^\?{+++[^+++++++++++(\?!+(\?=+++++++r9/n]N7{-219}{-91}pP[:punct:]T]mROm+~[:digit:][:digit:])Y:", 0, 0 },
+ { "[^'Pu[(\?<!D&]_a[:alnum:]E<,F%4&[:xdigit:])][:lowerprint:]", 0, 0 },
+ { "tttt(tttttttttt*uKKUUUUU)", 1, 0 },
+ { "([:ascii:]GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG)+kX______________{}GGGGG\?TUH3,{67,77}|[:graph:]C{,-136}{}[:upperword:[]{,-6}&]T84]n={C", 1, 0 },
+ { "[:upperword:]DC[:u(\?<=pperword:]*d`H0\?m>~\?N|z#Ar--SO{,-141}076)G\?{,-110}M+-[:alpha:]", 0, 0 },
+ { "{,-214}{,10(9})", 1, 0 },
+ { "([^xxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMXW])].[:punct:]Q`{-63,63}Uua[:alnum:]\?OQssb#L@@@@@@@@(@@@)[:graph:]", 2, 0 },
+ { "[[^(\?!```[^``````````````(\?<=``(\?>````````M/////(\?!////////////////////[^GD!|#li]~)*.$]))Tq!]C[:lowerprint:]Qk[{}]]JJJJJJJJJJJJJJJJJJJJJJJ{e])c", 0, 0 },
+ { "$[5(7ES])[:xdigit:]%{MRMtYD&aS&g6jp&ghJ@:!I~4%{P\?0vvvvvvvvvvvvvvvvvvvv\\\\\\\\\\\\\\\\\\\\\\\\x54[:lowerprint:][:upperword:]", 0, 0 },
+ { "[((([(\?((\?>[:alnum:][):as(\?<!cii:(\?:]Re))K|)|^){-28,89}l<H.<H:N)QKuuuuuuuuw8E136P)^)[:ascii:]][:xdigit:]-", 0, 0 },
+ { "(pjvA'x]=D\"qUby\\+'R)r\?C22[:ascii:]", 1, 0 },
+ { "[]*b~y C=#P\"6(gD%#-[^FBt{}]${-244}", 0, 0 },
+ { "[:up(\?!pe(\?=rword:])lA-'yb\"Xk|K_V\"/@}:&zUA-)W#{-178,-142}(){-202,}", 1, 0 },
+ { "()1.WldRA-!!!!!!!!!!!!!!!!!", 1, 0 },
+ { "lZZZZZZZZZZZZZZZ(Z[:al(\?:num:])ttttttttttttttttttttttttttttttg.)6$yyy", 1, 0 },
+ { "[([^([^[^(([([^[^(([[$(\?{P(\?=(\?<(\?!=(\?#P[^Y])<GA[:ascii:][(\?#(\?<!:alpha:](B{100,})]}))\?)XU=", 1, 0 },
+ { "[[dVw{6(\?{9,}2222kkkkkkkkkkkkkkkkkkkkkkkkkk|{}*E]]{}SB{35}-w%{eh})<{-178,}", 0, 0 },
+ { "(D(~))", 2, 0 },
+ { "[(:alpha:]{,90}Z|)[:ascii:]Du\?[:grap[^h:]^w+|{}][:ascii:]", 0, 0 },
+ { "[:p(\?<=unct:]kkkkkkkkkkkkkkkkkkkk)", 0, 0 },
+ { "{}[:((\?<!dig((\?#it(\?#:]())p))ZZZZZZZZZZ[:blankcntrl:]){}{-124,})[:ascii:]", 1, 0 },
+ { "[[:graph:]{168}lRRRRRRRRRRRRR(\?#RRRRRRRRRRRRRRRRR)rrrr(\?(rrrrrr)rrrrrrrS[(\?<!@f)6>{,-49})q${98,}J\?]){", 0, 0 },
+ { "([:pu(\?(nc)t:]F{-32,-102}+)\?cpP[:lowerprint:].^)", 1, 0 },
+ { "([{}{210,-238}]1:h)", 1, 0 },
+ { "([]QQQQ[QQQQQQQQQQQQQQQQQQ][:digit:]Z{-20,}Slllllll[:space:]C^(@{-174,-156}fx{cf2c}{-242,}rBBBBBBBBBBBBBBBBBBc[:alpha:]N\?))$[:graph:][:ascii:]P+nnnnnnnnnnnnnnnnnnnnnnn1N$r>>>>>>>>>>>>>>>>>>>>>>>>(>>{,88}{,-234}__________)[:upperword:]R.[:alnum:][:lowerprint:]^}\"", 3, 0 },
+ { "([^(\?=]-))$", 1, 0 },
+ { "([:ascii:]\?,D[:upperword:][:xdigit:]tttttttttttt[^tt(\?<!ttttttttt21f|.(pP[:punct:])])rrrrrrrr)", 1, 0 },
+ { "([{1(\?=16}iiiiiiiiii((\?<=iiiiiiiiiiiiiiiiii|ZZZZZZZZZZZ(\?(\?#{ZZZZZZZ))c}))<<<<<(\?#<<<<<<<<<<<d7CVq8]w{-148,-168}\\Gp){-230,}D3", 1, 0 },
+ { "[^8888(88888888888EX].[:alnum:]){}", 0, 0 },
+ { "([^][^)2]-[:lower(\?=print:]{,79}[:graph:]n)", 1, 0 },
+ { "[bSi\?x_mp(C)0{64}[:space:]hhh(\?(hhh)hhL){5,130}'w\"$l&[:xdigit:][:alpha:]IIIIIIIIIIIIIIIIIIIIIII+-SOOOOOOOOOOOO (\?( ) ]f)ed", 0, 0 },
+ { "[[^[(^(C.Jl[^X&Rb64a+Sd])'m[:alpha:])]]]{134,}", 0, 0 },
+ { "()L", 1, 0 },
+ { "[[(({224,(\?#88})@======(\?!=========(\?{=)PPP)i^@p(\?([:punct:]})^^[^^^^^^^^^^^^^^^^^^^^^@)m]|{CS{,-3}168)-[:xdigit:][:upperword:]hnD=Bns)z)AAAAAAAAAAAAAAAAAAAAAAA[^A{}ccccccccccc)SZ]Q-p.sD]]+P", 0, 0 },
+ { "[[^[^]{135,}66666666666666666666[6(666i2M9.!uhmT\?JMm.*(\?!+)[:alpha:]eeeeeeeeeeeeeeeeeeeeeeeeeee]]])ZZ[:blankcntrl:][:ascii:]", 0, 0 },
+ { "(13[3Ux>{,10}[(\?<=:xdigit:]))PL9{-89,-181}F'''''''''", 1, 0 },
+ { "[^.|(\?{af]})^$XE!$", 0, 0 },
+ { "(WWWWWWWWWWWWWWWWWWWWWWWWWWWW#J)", 1, 0 },
+ { "({}}M7we-216)L[:digit:][:upperword:]", 1, 0 },
+ { "([:aln[^u(\?=m:]))].z", 1, 0 },
+ { "([:alpha:]{(92})%6{41,136})Vij@[:alnum:][:lowerprint:]", 2, 0 },
+ { "[[[++(\?{+++{}})n{{137,}{51,-177}Z[]M*[:ascii:]{(-29,-47}2)$e^{,-195}{-156,}^]{}{-225,69}A]{-222,}{,20}m[:blankcntrl:]", 1, 0 },
+ { ")l)[:alnum:][:graph:]g8TTTTTTTTTTTTTTTTLLLLLLLLLLLLLLLLL", 0, 0 },
+ { "[([(\?<=.(\?{)/})mmmmmmmm(\?(mmmmm]{-154,-176}*S)I]", 0, 0 },
+ { "[(([{(\?(\?<!im(\?imsix:sim(sx:,141}])D)l{,42}ttttt[(\?::punct:])){-162,-141}{-26,})dU@@@@@@@@@@@@@@@ S)\\A\?w|VVVVVVVVV)X.kN{,21}{-208,-52}>[:lowerprint:][:ascii:]e-]]]]]]]]]]]]]]]]]]]]]", 0, 0 },
+ { "[^({}(){(66(\?=,}[^]'''''QQQQQQQQQ).P#>^){86,168}Z[(\?<!:lowerprint:]{-166,-70}<k", 0, 0 },
+ { "APP[:alpha:][:alnum:]nd[:upperword:(\?(]^xxxxxxxxxxxxxxxxxxx)xxxxxxxxx{-70}[:punct:]l)U-", 0, 0 },
+ { "[^(.\"od~(6({[^(\?<!228}\?)\?)######(\?:#########z )c(\?<!aQ`(\?{UKSwu[})][^-17]{11,}}][:ascii:]))^RiH+WyspP[qi&)=p6])[:space:]{-221,}]6p", 0, 0 },
+ { "{-78}()[:xdigit:]{155}{,-92}", 1, 0 },
+ { "[(\?>Q{,147}_____________(\?!______uuuuuuuuuuuuuTr]){74,179}{}){,103}{-209,16}*RRRRRRRRRRRRRRRRw{,87}9{144}[:ascii:]'<Ab", 0, 0 },
+ { "([666c] {-171}yc,8-k_)EEEEEEEEEEEEEEEEEEEEE<", 1, 0 },
+ { "[^(\?>(\?<!)2(\?imim:)6HwN)^|fc!(\?(d]75))065)G", 0, 0 },
+ { "[[^xDB[:alnum:][:xdigit:]][:digit:]jW]([:alpha:])", 1, 0 },
+ { "[ds~T+[x55[:digit:]X[JJJJJJJ.[(\?::upperword:]){,-14}][:xdigit:]bbbbbbbbbbb", 0, 0 },
+ { "[qqqqq(\?<=qqqq(\?(qqq)^G[):ascii:]])W", 0, 0 },
+ { "[:space:]JJJJJJ[:alph(\?<!a:]|[:ascii:(\?(])[:x)digit:]- XSstG[:g(\?>raph:])^)Ny6RF_ndoU9@*rxW{4,41}4{}", 0, 0 },
+ { "[:punct:]{162,}j[:aln(um:].....................[^...]\?>z[:l[owerprint:]){55,222}]", 0, 0 },
+ { "(>vWa)OXcccccccccccccccccccccccc[:alpha:]C{,-10}81|m1D^T)[:lowerprint:]''''[:alpha:]l", 1, 0 },
+ { "(XZcgM/UI-/mZq-222){-85,-196}[:alpha:]{114}rrrrrrrrrrrrrrrrrrrrrrrr{,157}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZLkD-&&&&&&&&&&&&&&&-][:alnum:]{}{,111}[:digit:]", 1, 0 },
+ { "[^(\?:]MMMMMMMMMMMMMMMMMMMMMMMMMMM)cK[KKKKKKKKKKKKKKKKKKKKKKKK]P{146}", 0, 0 },
+ { "([^[^wqesa)n\?L(\?<=FH+G[^rCGmfD]w)m1D\"%}]])", 1, 0 },
+ { "[((\?:[^.HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|S)xd)*[:space:](])[:xdigit:]ngr'G#/B]-----------------------------", 0, 0 },
+ { ")[:lowerprint(\?<=(:]l))G p", 0, 0 },
+ { "[^[^(\?<(\?<(=(\?imsximx:![(((\?<!\?(^))\?]^)[:xdigit:][:graph:]{-104,})Gf+GD*qc)c]f))])", 0, 0 },
+ { "[^([\?())P[:alnum:]w]{-186,-139}-[:space:]RN3w[Fmvpl[:space:][:digit:]&&&&&&&&&&&&}(\?#}}}}}}}}}}}}}}}}}}}])z", 0, 0 },
+ { "([[^^*C[()f][(\?=:punct([\?#:]o)]V)]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[^x{1f948})]]", 1, 0 },
+ { "[(:xdigit:])zE", 0, 0 },
+ { "[:pu(\?(nc)t:])(a*){-51}", 1, 0 },
+ { "[^(.NKKKKKKKKKKKKKKKKKKKKKKKK-[:upperword:][:space:]`MPi>", -1, 0 },
+ { "Nvvv[vv.][:alnu[^m:]+|Crrrrrrrrrrrrrrrrrrrrr[:xdigit:]j1n)v#]", 0, 0 },
+ { "[^#}[(\?>:alnum:]).QQQQ[^QQQQQQ!!![!!!!!!!-s.n]se]{-238,}Tf]p4721", 0, 0 },
+ { "([((\?#\?<=)+)Hr:-H]z[:graph:].{}oooooo(ooooooooo][:punct:]k<gXG@@@@@@@@@@@@@@@@@@@{,-176}){}L`)$", 2, 0 },
+ { "({,249}{-73,}Z&&&&&&&&Ds35MB<v)qqqqqqqqqqqqqqqqqqqqqqqqq", 1, 0 },
+ { "[^.N][:blankcntrl:]))))))))))))))))))))))))))))))", 0, 0 },
+ { "(()*){198,}", 2, 0 },
+ { "{-237,}220{}[:ascii:]```````(`````````````\?{-115,185}){,-18}[:punct:]'|Kk", 1, 0 },
+ { "[(\?()])", 0, 0 },
+ { "([(\?#[:alnum:]CQ)}}}}}}}}(\?>}}}}}}}(}}}}}\?310[|))xA5r][[^:ascii:]^{,-156}{])CCCCCCCCCCC-145]FzwOD_u\?", 1, 0 },
+ { "[^[^[]{-163}{(-203}[(\?!:upperword:]PPGjZ[:xdi(\?=git(\?#:]{-73}s)qqqq(qqqqqqqqqqqqqqqqqq{173,210}[:xdigit:(\?<(\?>=]WW[^WWWWWWW\?*O)))Q){}08)[(\?(\?<=#:blankcntrl:]{90,}]U)])L)ooooooooooooooooooooooooooox--^c[:ascii:]])s)", 2, 0 },
+ { "[(\?!:punc(\?imximx:t[^:]4F<}!)]'M-)tKKKa4904", 0, 0 },
+ { "[^^{}\\(\?<!\\\\\\\\\\\\\\\\\\(\?#\\\\\\\\[:punct:](\?>)T000000000(\?(000)00000))+])", 0, 0 },
+ { "L[:p(\?#unct:])", 0, 0 },
+ { "[:upperw(\?<!ord:])", 0, 0 },
+ { "@$\"\"\"\"\"\"\"[\"\"\"\"\"\"\"\"\"\"[^(\"\"\"\"\"(\"\"][]))*U{223,138}*o```````````````(\?=[```````````````]{238}mmmPPPPPPPPPPPPPPP&&&&&&&&&&&&&&&&&&)sF$[:digit:[]]", 0, 0 },
+ { "[^#Txx[xxxlPB(\?><[^U/)]]{}X3333333333(3333333f*])", 1, 0 },
+ { "<<<<<<<<<<<<<<<[^<<<<<<<<<.][(\?#:ascii:])[:xdigit:]|^", 0, 0 },
+ { "([:punct:]{}){-167,}{-59,}Pd\"", 1, 0 },
+ { "[((\?#{,214})t$)VVV[:xdigit:]{104(\?<=}D][:graph:])|H){1,}{-176,}", 0, 0 },
+ { "[[([[^N,,,,,(\?=,,(\?#(\?:,,,,,,,,,,,[^,,,,,,,,,,]<,~4::_.A]){-52,}-[:alnum:]Pnnnnnnnnnnnnnnnnnn)d", 0, 0 },
+ { "{-18(3,})uT{4,}", 1, 0 },
+ { "[^[^[(p+c(\?<!b$))(\?:EU(\?(.][^{}]3[:xdigi[^t):][:punct(\?>:])[])][:s[^pace:]][:alnum:][:alpha:]]kw06E", 0, 0 },
+ { "[^^^^^^JJJJJJJJ(JJ(\?=JJ(.6[:space:]H]{231,}A^eqqq)[:ascii:(\?>(])[(\?>:spa(\?:ce:]xxxxxxxxx)@_t-))138GNNNNNNNNNNNNNNNNNNNNNNNNNN[:digit:]no!`#E\?&[:lowerprint:].)[:graph:]{86,}[:digit:][:alnum:]", 0, 0 },
+ { "[:g(\?<=raph:]a{114,146}(){}0Y[:bl(ankcntrl:])D)\?", 1, 0 },
+ { "[^[^]*H{-192,96}S|]G)6B-kLB", 0, 0 },
+ { "[[^[^][/NS8`um(\?{82&{((\?{\?<!-[110,-88}]m)})kkkkkkkk$$$$$$$$$$$$[^$$$$$@n%BuK@X!P)y0v!^]YY[YYY[YYYYYYYYYYYYYYYYYY///////{}{{{{{{{{{{{{{oiiii})]8{-2[53}w{82,}]{,245}]{-134}]fffffffffffffffffff]\"I>DW>9tN%{113}{unE", 0, 0 },
+ { "[:(\?(alpha:]`))Y2sCqWQ104", 0, 0 },
+ { "(([^()Wcccccccc(\?{cccccccccccccccccc(\?<!c(ccccc[:space:]$)(\?>)FZ{}{}`|||||||||||||*````````````````````````````'=dLQmx/Y.A7j'o}jn{}:})][:punct:]$|,-)!&Y:Ys#ykL7JJJJJJJJJJJJJJJJJJJJJJJJJ8yex>#mv[:punct:](x@)$[:uppe(\?<!rword:])_)", 3, 0 },
+ { "[[(^HHHHHHHHHHHH(\?imsximx:HH(HHHHHH(\?{HH[HH])qjR>9))i})]a!lBW3p{A=or)ShE%[:punct:]{}]5r", 0, 0 },
+ { "[:pu[nc[^t:]]]}}}}}}}[}}}}}}}(\?#}])@@@@@@@@@@@@@@@@@@DDDDDDDDDDDDDDDDDDD\?]xA2\?", 0, 0 },
+ { "(.[:alpha:]xB7[:alnu(\?{m:]})RRRRRRRRRRRRRRRRRRRRRRRRRRRL)[:space:]G\?", 1, 0 },
+ { "[:blan(\?<!(\?=kcntrl:]){71,})!ooooooooooooN", 0, 0 },
+ { "()e$$$$$$$$$$$$$$$$$$$$iiiiiiii", 1, 0 },
+ { "(b[:ascii:]67777777777777777777777777)({-106}kkk^F-------------------------------{13}A)f00000000sBAddddd{-66}kd!D'", 2, 0 },
+ { "(Q ^])[^lf][:space:][:lowerprint:]\?", 1, 0 },
+ { "[[^]\\S{152}W![:digit:][[^:space:(\?(]=pEhwY][:alnum:][:digit):][:graph:]])QQIC9h-oowf[:xdigit:]{-52}{,190}1111111111111111111fX{-189,226}W", 0, 0 },
+ { "[^(\?!(\?<=)]).h[:as(\?>cii:])[:alnum:]$$$$$[:space:]3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$1", 0, 0 },
+ { "[[$zQ================(\?<!=(\?>=========(\?====D[^))|i{}\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?)][:s(pace:]]))]", 0, 0 },
+ { "[^{,-[15(\?#6}]Vwjjjjjjjj[jjjjjjjjjjjjjjjjjjS9999)]q]rWWWWWWWWWWWWWWWW[:punct:]@@@@@@@@@@@@@@@@@@@@@@@@gO[:blankcntrl:]>L[:ascii:]:::::::::::::::::::x11uuuuuuuuuuuuuuuuuuuuuuuuuuuuu{-124,114}[:graph:]C#{tcg[:xdigit:]gZZZZ[:lowerprint:]nA(_{{{{{{{{{{{{{{{{{{{{SS)\\D[:alpha:]", 1, 0 },
+ { "[^(\?())]!T\?[:asc[^ii:]E:4},,]I[^b(\?:n4(njj~+{\?'k{7}{189,-194}{ig.[[[[[[(\?#[[[_bs6,JD`1(\?<!WBo]F+{d*VO22z2K1][:xdigit:]))Suuuuuuuuuuu[^u{,117}\?YYYYYYYYYYYYYYYYYYYYYYYYB^]|q]:eY1GGGGGGGGGGGGGGGGGGGGGGGGGGGGe\?)bU[:punct:]", 0, 0 },
+ { "[\?UA(\?:]\?)[:xdigit:]A^mmmmmmmmmmmmmm>>>>>>>>>>>>>>>>>>>>>>>>>>>>[^>>>(\?(>)){,-165}]", 0, 0 },
+ { "([^[][^n(\?{[[p]#})|][^]L|66666666666[:graph:]][:graph:]2[:xdigit:][:space:]9b})[:digit(\?imsximsx::]+PZ):{}|E)[:xdigit[^:]|>]^[:alpha:]::::::::[:ascii:]````[:ascii:]:", 1, 0 },
+ { "[:lowerprint(\?<!:])", 0, 0 },
+ { "[[^[]{-47}[:lowerprint:][:punct:]L[(\?::g(raph:]lY[:alnum:])qWYU)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}[c%$dp5[:alnum:]DDDDDDDD^^%&{,-94}E]{-8,175}[:alpha:]-.^[:digi(t:]CCCC(CCCCCCCCC]).ax72)", 1, 0 },
+ { "[[^($$$$$$$$$$$$$$$$$$[^$I((\?{\?(u)\"YuK ZpOHq[!(\?>t|LQT(|)L[(:ascii:])", 0, 0 },
+ { "[^[^([:graph:](QpPdyDQ`[:alpha:](.X[:digit:]wwwwwwwwwwwwww(\?imxims:wwwwwwwe(\?<!z)ONNN(\?#)[^])[:space:](KKKKKKKKK{113,}327[:xdigit:]k)]CeeeeeeeeeeeeeeeeeMMMMMMMMMMMMMMMMM)[:lowerprint:]]HHHHHHHHHHHHHHHHHHH]]]]]]]]]]]]]", 1, 0 },
+ { "[Q(r(\?=)v]dm[:alnum:][:b(\?{lankcntrl:][:xdigit(\?=:])})P[:graph:]bd/Rx){50}{-150,-172}", 0, 0 },
+ { "[(\?(im(\?:sxims:))9]))L", 0, 0 },
+ { "[[^[(\?{^Z][^0[:alpha:]]\\XB*{-151}t})][:alnum:]]", 0, 0 },
+ { "[([(D\?/////////////////////.'yvYysU&5AU-]kV)*){,123}z]", 0, 0 },
+ { "[:alnu(\?{m:][:a(\?=lpha:][:alpha:])n}))7[:ascii:][:xdigit:][:punct:]-", 0, 0 },
+ { "[^[:graph:]IIIIIIIIIIIIIIIIIIIIIII][:sp(\?<!ace:])", 0, 0 },
+ { "[[[(\?=[[[cDD(\?<!D(\?:DDDDDDDDDDDD(\?<=DDD(DDDDDD(\?:DDDDDDD(\?<=D(\?()])rvp{243,}D$<[:space:]([:lowerpr)int:])])Ea{}U[:upperword:][:xdigit(\?#:]or}Z+34gD{/P NJ", 1, 0 },
+ { "[^(,H>)*d2K0DNX5)T(].)[:digit:].", 0, 0 },
+ { "([:punct:(\?#])})JJJJJJJJ[:xdigit:]PPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU.......................0hSk{,89}[:xdigit:].[:xdigit:]Z", 1, 0 },
+ { "(LGTTTTTTTTTTTTTTTTTTTTTTTTTT[:alpha:]){-106,113}[:punct:]d|[:digit:]kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk\?wP", 1, 0 },
+ { "([^[^<N_-k\?{(\?#18}]i]::::::::::::::::::::::::::)1+LLLLn{}/){-198}", 1, 0 },
+ { "([[^(AAAAAAAAAA(\?(AAAAA)AAAAf).LzHHHHHHHHHHHHHHHHHHHHH(\?#HHHHH|)[ZEEEEE(\?#EEEEEEEEE(\?<!EEEEEEEEsG)q[:punct:]{}][:upperword:]D)[:space:][:digit:]+e[:ascii:]].i|JJJJJJJJ+n][:xdigit:]Se)P[:lowerprint:]_______________________________.[:punct:]pP{-172,86}iiiiiiiiiiiiiiiiiiiiiiiii){,-178}", 1, 0 },
+ { "([\?=[[^,BDRRPZ{129}*D-[:punct:]]])([:upperword:]ud)\?][:punct:]A", -1, 0 },
+ { "(([(\?#((\?{\?=^])c-)C[:lowerprint:]xvkR}k\")ccccccccccccccccccccNNNNNNN[:alp[ha:]{,93}vhlX:|A]2})nSw)]N.", 2, 0 },
+ { "()g/qzyiV(x3d|A0wllllll){162}[:space:]", 2, 0 },
+ { "qqqqqqqqqqqqqqqqqqqqvvvvvvvvvvvv8[:x(\?imsxmsx:digit:][:alpha:]''''''''''''''''''''''''''')", 0, 0 },
+ { "({,226}nf^W=vs$xK^=A=M#b,)V", 1, 0 },
+ { "(_T 2BC9N'cccccccccc-87EF#&^eQfDDDn._,m&c`tjAwR #~A)[:(\?imsimx:alpha:])/yHYL6|{-40,47}", 1, 0 },
+ { "[[^]{-8(4,138})z[:xdigit:]{180,}]", 1, 0 },
+ { "[([^T____________________(\?:__C(\?<=]-)])+[:ascii:])r[:graph:].----------", 0, 0 },
+ { "[f{}LLLL(LLp((((\?<!((((((((((((((({,56}]BR`{,52}){-22,}\?[:space:]h>Sow", 0, 0 },
+ { "{-179}^[:alpha:(\?!].a'5wacA3\\\\\\\\AAAAAAAA)~^]wC", 0, 0 },
+ { ">[:digit:]{,-212}+(`)LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL[:ascii:][:digit:][:space:]", 1, 0 },
+ { "[[^[[^RBW{,255(}(\?(\?>=(W)_]uu][:blankcntrl:])O)]]", 0, 0 },
+ { "(C_______________________________)2", 1, 0 },
+ { "([/ntf_a3].)", 1, 0 },
+ { "[:space:]+[(:upperword:],c7[:asci(\?<=i:]ggggggggggg)[:ascii:]/1$$$$$$$$$$$$$$$$$$$$$$$$$$)", 0, 0 },
+ { "Xq{109}~EEEEEEEE[:upper[^word:]lgB:X(h[:alpha:]B[:space:]].)IkaH@3}}H'yK~\?[:upperw(\?#ord:(\?:]){=================[:blankcntrl:])", 1, 0 },
+ { "(([[^]]$3Xr^$%%%%%%%%%%%%%%%%%%%%%================U[:ascii:])X).FFFFFFFFFFgO[:punct:]oooooooooooooooooooBC[:blankcntrl:]mmmmmmmmmmmmmmmmmmmm[:lowerprint:]rBM~<HAc#Sb&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Cy", 2, 0 },
+ { "([([([^(\?:)D]-{M#H >rERRRRRRR[^RRRRR(\?>RRRRR])[(\?=^)X]{207,}U])))Z[:blankcntrl:]]yyyyyyyyyyyyyyyy\?", 1, 0 },
+ { "[Q(\?{*[^(\?(\?!!])[:graph:]]})[:alnum:]iE)dGGGGGGG[^GGGGGGGGGG[:xdigit:]w]", 0, 0 },
+ { "[^Z(\?!6(\?(\?><=)[:graph:])]BBBBBBBBBBBBBBBB^)", 0, 0 },
+ { "[[^([^[^][[[[[[[(\?({[[(\?(\?imsxmsx(\?imsi[ms:::[[[[[[[[[}))]$)){12,})|:::::::::::::::::::[:lowerprint:]{}{-96,-147}){13,}`[:digit:]]\"^Ca%%%%%%%%%%%%%%%%%%%%%%%%%%UUUUUUUUUUUUUUUUUU]]9", 0, 0 },
+ { "[^(\?(\?(\?#!<=))JLBS\"zi)'''''''''''['''''''''''''piiiiiiiiiiiii(\?<=iiii]])ZZZZZZZZZZZZZZZZZZ[:space:]", 0, 0 },
+ { "({})[:punct:]", 1, 0 },
+ { "E9[:blankc(\?{ntrl:]})N", 0, 0 },
+ { "[:alph(\?#a:]){198,}sq\?X0B7", 0, 0 },
+ { "[^\\\\\\\\(\\\\\\[\\\\\\\\\\\\[(\?<(\?isximsx:={11(\?(9,}\?0])]]))\?FN3M\?{-128,}Z444444)444fbLiVN8)", 0, 0 },
+ { "[[^[^([[[[[[[[[(\?>[[[[[[[[[[[[[[[[[[[[[{53(\?<=,-175(\?>}ggggggggggggggggg%))[:alnum:])[:punct:]kkkkkkkkkkkkkkkkkkkkkkkkk)+Soooooooooooooooooooooooooooooooo](WR+--)x36+llllllllllll{,35}]Fqb^=F]KKKKKKaaaaa{,131}", 1, 0 },
+ { "(g\"Ssqw<&{Cl{82,}Mdf|9cIlmCW{}[:digit:]4C{}[:alnum:]PP)", 1, 0 },
+ { "OOOOOOOU[*evVIIIIIIIIIIIIIIIII(\?#(\?#IIII)]PP[:xdigit:]2222222222222222[:xdigit:]Kx)p[:digit:]", 0, 0 },
+ { "([[{248,16(\?=5(\?#}][:alpha:])|[:p(\?!unct:(\?(]", 1, 0 },
+ { "[pP((\?=S)(\?#)]$[:aln(\?(um:)]2\?)$GGGGGGGGGGGGGGGGG({-U:c){-61,}[:ascii:]{-202}G", 1, 0 },
+ { "()$D[:alnum:]", 1, 0 },
+ { "[(\?#^]){}[:ascii:]", 0, 0 },
+ { "[uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu]FFFFFFFFFFFFFFFFFFFFFF&2e\?)%oP'mc@z2b}n{<b4_Laz^0LLLLLLLLLLLLLLLLLLLLLLL,,,d", 0, 0 },
+ { "{}(^________________''|$)RRRRRRRRRRRRRRRRRRR", 1, 0 },
+ { "(H)####################bbbbbbbbbbbbbbbbVSSSSSSSSSSS|tdU\"goeAbPP{-248,81}", 1, 0 },
+ { "[^[(\?ims(\?>xisx:)UHpP*n{}]{}fx14<7OEpE>n2150)8888888888888888]^GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGS", 0, 0 },
+ { "(d)+", 1, 0 },
+ { "[^.(\?(>)(\?=e)])al[:space:]x", 0, 0 },
+ { "[^256c(\?!]){-19,}", 0, 0 },
+ { "Q)", 0, 0 },
+ { "[^s\?\?(\?{\?\?\?(\?#\?(\?<!\?\?\?\?\?\?\?\?\?\?\?(\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?{}]F\?j(jjjjjjjjjjjjjjjjjjn)kTI1f[{1|(\?<=^[^+[:digit:]{}^s^))})))T]{-17}{CCCCCCCCCCa{-21,}{,-146}^uZQB]YuLu-|tUGRMz^^", 1, 0 },
+ { "([^.{}.EE[EEEEEEEE(\?<=EEEEEEEEEEEEEEEU]]-@s))$", 1, 0 },
+ { "[^([((\?#[#])|a)])[cccccccccccccccc][:digit:]LLLLLLL[:alnum:]}[P%vzl{}^]&", 0, 0 },
+ { "({}[:space:]E)101+A{-35,11}", 1, 0 },
+ { "(va:7)u[:alpha:]", 1, 0 },
+ { "([^[[rrrrrrrrrr(\?:rrrrrrrrrr(\?<!rrrrrrrrry|D'*AH@a{}\?[:space:][:alpha:]^]$ {-225}[(\?(:as)(\?(>cii:])){-107,-139}6/{^[:upperw(\?imsxmsx:ord:]{,-47} ]wuH#nAn)GGGGGGGGGGGGGGGGGr[)]T{91}lJ))[:lowerprint:][:xdigit:][:lowerprint:])]*", 1, 0 },
+ { "()[:space:]~!$[:alnum:]JJJJ[:ascii:]", 1, 0 },
+ { "[^(\?<=)-]()k", 1, 0 },
+ { "(()W){,8}ea", 2, 0 },
+ { "({,-56}5G&&&&rrrrrrrrrrrrrrrrrrrrrrrrrrk.8) hWJ,TM)0Yd-", 1, 0 },
+ { "(Z-fddddddddddddddddddddddd)-{9}", 1, 0 },
+ { "[^<[(\?!:asc(\?:i(\?<!i:])F])[:alp(ha:]b))-}Wwx8B", 0, 0 },
+ { "[^[^[^([(\?{}(\?=)(\?())-CCCCCCCCCCC(\?=CCCCCCCC(CCCCC(\?:CCCCCCCC(\?{l[(\?!:space:]})[:upperwor(\?:d:]{-27}[:al[^pha:][:xdigit:]^f", 0, 0 },
+ { "[[^]G@>2!+[:punct:(\?<!]{,189}6ZF[:blankcntrl:][:digit:]{,214}){-115,-14}l[:upperword:]{101,}Z[:ascii:]Ld&02|c]<0~<bc", 0, 0 },
+ { "(Q)[:digit:]x", 1, 0 },
+ { "hT[[:alnum:]\?]O[OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOxFF%^(\?(_LN 8uXQT\"*/L)+l)>qQ[^]e[:ascii:]PP()[:digit:]NQ8%6d=&2I{-62,-142}w]].e{}*", 1, 0 },
+ { "{,-219}xxxtEEEEEEEEEEEEEEEE[:pun(\?(ct:])qqq)nnnnnnnnnnnnnnnnnnnnnnnnnnn", 0, 0 },
+ { "[:di(\?>git:])W4", 0, 0 },
+ { "([^y])Fkvto$", 1, 0 },
+ { "[^($$$$$$(\?!$$$$$(\?{$$$$$$(\?<=$$$$$$$$$$$+===)[:alnum:]MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM)Z]{}^[:blankcntrl:]--xxxxxxxxxxxxxxx[^xxxxxxx)\?tVG\?{232,81}{121,}xn{,-226}})tttttttttttttttttttttttmu(\?<!&&&&&&&&&&&&&&&&&&&&&&0b]z)$87{,-192}{}{-242,}", 0, 0 },
+ { "l[:dig(\?(it:]|s*)aA[:digit(\?<=:].^.))x[:digit:]", 0, 0 },
+ { "[:grap[^(\?#h:]').]Z", 0, 0 },
+ { "[:gra[^ph:]t[:digit:]222222222222(22222222222222222H qM]pWZr[:ascii:]-hRb_.)Q{-228,-204}{}", 1, 0 },
+ { "AAAAAAAAAAAAAAA(AA)YeX", 1, 0 },
+ { "(!dqqqF*^){(,-79}s!!!!!!!!!!!!)", 2, 0 },
+ { "[^(\?msxm(\?#sx:]|)ZHYup)j{95}0L:vXB#')d'DX\?m.T034\\\\\\\\\\\\\\\\\\\\\\y5rV{}S", 0, 0 },
+ { "(W*O+yl([\?!P(\?:)I]${}{-195,-14}[:upperword:]{}[:xdi[^git:][:space:]X[:grap[^h:]~]zzzzzzzzzzzzzzzzzzzzzzzL)+)Y b.-=jf{-216,}${/!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|]", 2, 0 },
+ { "[^\\\\\\\\\\(\?<=\\\\\\\\\\\\\\\\m]{-48,234}[:alpha:]s)", 0, 0 },
+ { "[(\?{U}(\?<!)])LLLLLLLLLLLLLLsssssssssssssssssssssssssss[:ascii:][:blankcntrl:]---------b", 0, 0 },
+ { "[^[^[(\?#)(\?imsxims[x:)<<<<[<<<<<<<<<<(\?<!<<<<<<<([^\?(<<<<<<<<<<z(\?(zu(\?<=~83}aZpIE)[:alnum:](\?imsximsx:(\?!jrE6(\?<!\?V(SzDU)000[000000000((\?=\?)=0])L|lOYuWXk", 0, 0 },
+ { "$o[:dig(it:]nnnnnnnnnnnnnnn{-94}|G)[:alpha(\?!:] {,-108}D=\?>[:digit:]S[:space:]t", 0, 0 },
+ { "()n", 1, 0 },
+ { "[:upp(erword:]$)<}.vZM<lEY5Y*", 0, 0 },
+ { "[^([^\?>)rCD&{5(\?msxisx:7,}qqqqqqqqqqqqqqqqqq{31,}@w#W:(@(\?:zp$YYYYA[:alpha:]{1}A)*dZJ\"5OG|\?(\?#a])]|){-150}[:xdigit:]", 0, 0 },
+ { "[($)gwo{`\"]{-160,}\\\\\\\\\\\\\\\\\\\\\\\\\\66666666666666888888888888", -1, 1 },
+ { "((}DA+Rc000000000000000000)%vvvvvvvvvvvvvvvvvvvvv%C&emZ*[:alnum:]#m/D[:graph:][:blank[^cntrl:]E{,168})kkkkkkkkkk000000000000000]", 2, 0 },
+ { "[^[u*(\?#x01234)oxGGGGG(\?([GGGG)GGGGGGGGG]^U)!!CCCCBM`4QB^XEN]{,-60}[:upperword:]G]", 0, 0 },
+ { "(%)~t{S,K^MI3PMo)=b", 1, 0 },
+ { "[[[^]{}eU([:xdigit:]&&&&&&&&&&&&&&&&&)\"W|43[:alpha:][:graph:]J8b[:blankcntrl:]gggggQ{,183}{,-254}\?[:ascii(:]{,134}", 1, 0 },
+ { "[[([^[^([^(\?=)1RRRRRRRRRRRRRRRRRRRRRR(\?:(\?(\?(\?!=#RRRRR(\?=RRRR(\?<[^!Ru)])]o[:[graph:[^]{,7})[:digit(\?::]{-215,}e[:space:]]", 0, 0 },
+ { "({{{{{{{{{{{{{{{{{{KKKKKKKKKKKKKKKKKKKKKKKKKKKKBBBBBBBBBBBB)[:space:]0[:alnum:]HcctQA", 1, 0 },
+ { "[^(pP7(HsN[^g{186,-87}\?\?]EQ%u:-Y)+>>>>>>>>>>>>>>>>>>>>>pP][:alpha:]", 0, 0 },
+ { "[(.{141}h|)((\?:\?=@Q} ghcC{+*(R)D+][:lo(\?#werprint:]zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz))", 0, 0 },
+ { "[^({}S)PPFl(])-216", 0, 0 },
+ { "[([[^(((([(\?#^[^[^\?4[(:[dig[^it(\?(:]{122,})y\?", 0, 0 },
+ { "[[2${188}u{1(4(\?(1,1(\?{98}e{&tbaoI]q)[:punct:])d}))Nqffffffffffffffffffffffffffff[:ascii:]+]", 0, 0 },
+ { "()K-", 1, 0 },
+ { "[[{2(2((\?(\?!()2})])[:alpha:]fVVVVVVVVV{-47}):::::::::::)\?vwyyyyyyyyyyyyyyyyyyyyyyyyy-]{}", 0, 0 },
+ { "ivcs)g", 0, 0 },
+ { "(hhhh[^hhhh(\?{h\?]})%%%%%%%%%%%%%%%)\"+38mbY:s9{/d# zaNnbQb)b:*zpKI{-26,-189}", 1, 0 },
+ { "S*(#)[:graph:]lllllllll&G)t", 1, 0 },
+ { "([^[(([\?=\?<!)]]___{-63,})]nt", 1, 0 },
+ { "[:b(lankcntrl:][:alpha:]*[:pu[^[nct:][:alpha:]A]$aaaaaaaaaaaa*)A[:digit:]U][:alnum:]", 0, 0 },
+ { "[^f[^p000{68(\?isxmx:,}(\?!vvvvvv)$)]PP#*{(})[:punct:]&&&&&&&&&&&&&[:punct:]\?][:blankcntrl:]", 1, 0 },
+ { "[^(((\?(\?(()))GGGGGGGGG{(\?!($)))((\?!)V^{228,145}))]{-229}Qjjjjj[:punct:]R)", 0, 0 },
+ { "[(Q[^((\?{(\?:]~z)})gE(.<){}|)Kuuuuu$*222222222222222222222D]", -1, 0 },
+ { "([^`(\?<=`````[^`````````M]\?)=L74A[:upperword:]]P", 1, 0 },
+ { "(({}[:space:]qv-T){,-192}{-45}{65}9\?X).d", 2, 0 },
+ { "_[(:upperword:]mU(P}qX>\?%)$Lwq[:alpha:]{-115,}================================{127,}", 1, 0 },
+ { "e)", 0, 0 },
+ { "[{,2[5}Klen+D0'YX(\?<=|_H]I,Y\"*/<3sM[:digit:]])#.", 0, 0 },
+ { "[:(xdigit:]){[:digit(\?mxmsx::][:as(\?<=cii:]d!{135})#)pP[:space:]Syyyyyyyyyyyyyyyyyyyy\"Gg8", 0, 0 },
+ { "[(\?()])", 0, 0 },
+ { "[^([^[^[[^[:alpha:]SIus[^f<f]}}}}}}}}}}][:xdigit(\?=:]Z{-13}*]_[]LLLL)]E[:alnum:]b$)]]]]]]]]]]]]]]]]]]]]]]]]][:lowerprint:][:ascii:]{,40}{86,}333333333999999999999999999999999999*fffffffffffffffffffffffff99999999U9|[:digit:][:upperword:]oowwwwwwww[wwwwwwwwww{195}[:xdigit:]]H{-73,153}R+zAz{}r/////////////{232,}kAoffffffffff[:blankcntrl:]xxxxxxxxxxxxxxx]KKKKKl0,[:alpha:]|{,-165}Qc{96}CCCCCCCCCCCCCCCCCCCC/", 0, 0 },
+ { "{}:V(7O-)[:ascii:][:graph:]PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP#", 1, 0 },
+ { "[^(\?<[^=CC(CC$)]* c)BBBBBBBBBBBBBBBBBBBBBBB]z{-18,}", 0, 0 },
+ { "[[qqqqqqqqqqq(\?(qq235|ttttttttttttttttttttttttttttt[[ttt<<<<(\?{<<<<<<<<<<<<)<<<<<<<<p)/S9(\?{OOOOOOO(\?<!OOOk)})]nIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIb]Z})", 0, 0 },
+ { "[^[^(\?>][^((\?<!C(\?!+(\?=)]^8)6nx).)){,-13}[:blankcntrl:]\"(L{}){,29}nnnnn{-83}]l[:upperword:])", 1, 0 },
+ { "[(ZZ\"#(\?#Nb(\?<!:U)oRRRR])Zei${Ec/)s", 0, 0 },
+ { "[^[^[(\?(t(\?:3```````)`````)|#CB)/////////////////////////////*!liB#|CCCCCCCCCCCCCC(\?=CCCCCCa7N]weTTTTTTTTTTTTTTTT1{}o\?{}BBBBBBBBBBBBBBBBBBBBBBBB.])u{-218,126}.,[:space:]]", 0, 0 },
+ { "[[([:alnum:])yyy(\?!yyyyyyyyyy(\?!yyyyyyyyyyyyyyyyyyy[:graph:]I])Uw*X.^[:ascii:]{,-63}[:digit:]{-88})&&&&&&&&&&&&&&]*", 0, 0 },
+ { "[[[^K(\?=KKKKKKKKKKKK(\?:KKKKKKKKK[KKKKKK]]U[:digit:])]dd)({,16})xy+Pu)JJJJJJJJJJJJJJJ[:space:][:ascii:][:upperword:]ql_jywmt4B+]{-30,}^555555555Xza[:punct:]", 1, 0 },
+ { "[[^^XXX(\?:XXX((XXXXXXXXXXXXXXXXXXXX)v)$N9$r\"\"\"\"\"\"\"\"\"\"\"\"\"].{,239}$[:punct:]\"9999][:alpha:]{}c){,55}s[:upperword:][:xdigit:]310", 0, 0 },
+ { "[@([^I8oNl)]-{-203,-224}{-78,}KKKKKKKKc{-66}[:xdi(\?=git:]==========){}f{-124,}[:upperword:][:lowerprint:]]{}--------l+", 0, 0 },
+ { "[^]ozp+0(\?#\"[(\?()X]))[:blankcntrl:][^e{99,222}JJJJJJJJJJJJJJJ3F]\?[:blankcntrl:]l$ot", 0, 0 },
+ { "[[^[[((\?isximx:)2222222222(\?=22222[:graph:])+U)((\?{\?<=(\?()iYv8qc@#y)G])+}))FvnP\"7OZ-b273[:ascii:]Ak6*`S[:digit:][:graph:]]{2}^G{79,}DDDDDbbbbbbbbbbbbbbbbbbbbbbbb(bbbbbbb)|tP48y{wNJ_S hJbY]]dc", 1, 0 },
+ { "[:alph(\?{a:]p1[:lowerprint:]}){163,}", 0, 0 },
+ { "W()", 1, 0 },
+ { "()``````````````````````````[:ascii:][:alnum:]{,26}[:graph:]", 1, 0 },
+ { "[:al(\?<!num:]|byyy,*)U5%u${190}-{-221,-33}k7777777777777777777777777777777+eXXXXXXXXXXXXXXXXX[X(\?(XX)XX)S'vEAa]*e", -1, 0 },
+ { "[^(([R_AC[lE'{2(\?{28(]8LTt[]b[:punct:]]O)|2[:graph:][:space:]}) x3C[:alpha:])uI+dddddddddddddddddddddddd{-165,}FFFFFFFFFFFFFFFFFFFFFFF)cccc*[:upperword:]]G{,-38}{24,}555555555555555555555555555VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVZ[:blankcntrl:][:ascii:]", 0, 0 },
+ { "[^QQQQQQQ(\?#QQ(QQQQQQ[:punct:][:space:]){(\?(\?:!}[:graph:]t}}[^}}(}}}}}444444[^444444444444444444444]\?]G)E)L{,-103}{84,}r$ii]-[:alp(\?<=ha:]S5G~9>n*)P<3tttttttttttttttttttttttttt)n{}[:graph:]eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee{,83}[:digit:])0BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB[:alpha:]{-155,}{151,}", 0, 0 },
+ { "Ue{,254}+f[:lowerp(\?<=rint:]U.fff)", 0, 0 },
+ { "QQQQQQQQQQQQQQQQQQQQQQQQAY<J)'MPi_u%#2doopqU7/{103}[:graph:]e!7{GOr", 0, 0 },
+ { "[^({,[^233}[^d)BBBBBBBBBBBBBBB=======(\?>===========[^=S|[^[:alpha:]G/]qqqqqqqqq{}[:xdigit:])..k", 0, 0 },
+ { "[([^[[:space:]ffffff(\?=ff]M]))[:xdigit:]UbCI,CzalLU*y5I[:digit:]r{-30,180}{-209,-45}Paf]", 0, 0 },
+ { "[^[h(\?{hhhhhhhhhhhhhhhhhhhhh})]{,143}[:lowerprint:][:ascii:((\?(\?=])[:asc)ii:])zp]", 0, 0 },
+ { "[[(\?{]})]", 0, 0 },
+ { "[[1\"3m^,(\?<!2((\?!\?#t```````````````````````````)\?)|c^)A^~]{61}W\\\\\\vvvvrrrrrrrrrrr[:digit(\?#:])]F[:upperword:]dX\\\\", 0, 0 },
+ { "([${144,}(\?<!)-RAk_F(\?imsxisx:=9]z/))", 1, 0 },
+ { "[[^[[[^([[^[^[^([[^([[Uiiiii#####(\?(\?{(\?<!#########(\?=#####).^)(.|>2m[M/2222222222222222222222222222(\?:22222222222(\?#22(\?:(\?=22222{,243}]x68+I/K)11111111111]\\pP[:graph:]$[:space:]^{}A)[:xdigit:]-={>", 0, 0 },
+ { "[(\?>[(^()Vty2vvvvvvvvvvvvvvvvz^])ZZZZZZZZZZZZZZZZZZZ----------------5\\dVLSp8UE2m+z3X/Sd", 0, 0 },
+ { "[}}}}}}}}}}}}}}}}}}}(\?#}}(\?<=)|*C ]*29JW7O9mEB]pE_OoxN)[:alpha:]", 0, 0 },
+ { "([^((\?<=\?)D{,200}.[(\?#:ascii:])[:space:].)[:alpha:]D|[:graph:]{,-41}*LLUUUUUUUUUUUUU{-189,-131}]qHR<k2@P{27}<^e,ub%\?/4){-243}+[:digit:]%*x9lA^", 1, 0 },
+ { "([:alpha:]bT&+_)$Z{,212}x26`", 1, 0 },
+ { "[^([^(A{[^}g(\?()A9p#54b]-------------------------------).wzD#=f\\)A)8a]]DNNNNNNNNNNNNNNNNNNNNNNNNNN", 0, 0 },
+ { "(W000000000000000000000000000000)", 1, 0 },
+ { "www(wwwwwwwwwwwww)", 1, 0 },
+ { "()555555555555{18}i+[:alnum:]E {}U", 1, 0 },
+ { "SqbHoooooooooooo[^oooooo([^ooooooo])\\N[:xdigit:]]oooo`", 0, 0 },
+ { "[999999999999999999uE{193,0}lx{7917}[:punct:]4&d]{221,}[:digit:]{49,156}[:lowe(\?<=rprint:])[:space:]{-33}w+", 0, 0 },
+ { "[^(\?{})<{220,-193}[(\?=:xdigit:]UUUUUUUUUUUUUUUUUUU'{-18}])", 0, 0 },
+ { "b[(\?<=:upperw(\?{ord:][:digit:]})EEEEEEEEEEEEEEEEEEEEE//////////////////){177}C", 0, 0 },
+ { "(^).[:alnum:][^[(\?=[(\?{[})DA5{)[[I~y&O\?9>])]][:blankcntrl:]M[:alpha:]x9[:upperword:]|[:xdigit:]b", 1, 0 },
+ { "()[:digit:][^[U}-]]{,206}V*WJ@R]\?", 1, 0 },
+ { "[^](\?#{}(\?[<=)yv)]r", 0, 0 },
+ { "({,-192}//////////////////////7!eW_0eoL){}", 1, 0 },
+ { "^[:punct:(]+)IIIIIIIII[:punct:]P$pP", 0, 0 },
+ { "[(\?=|U)^-]{-52,-72}[:digit:]*6666666666\?{{{", 0, 0 },
+ { "([^f(\?:+{1((\?=34,}]))^)s0bux7\?5`Bwr[:upperword:])Dy+", 1, 0 },
+ { "AL{}:::::::::::::::::::::::::::::::{,(104}~@,Ysey@h).", 1, 0 },
+ { "[^((.)))(\?()))))))))))))))))))))(\?msxims:))))))))))[)][:upperword:][:alpha:])", 0, 0 },
+ { "[^(()f])G^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^T{}N*nK[G]{,61}^^^^^^^^]", 0, 0 },
+ { "[(N::(\?<=[:digit:][:graph:][:space:]xB5[(:xdigit:]|Yv{}HHHHHHHHHHHHHHHHHHHHHHHHd).[:g(\?<=raph:])[:digit:]<<)[:digit:])[:space:]Q[:punct:]x7C]", 0, 0 },
+ { "[^((\?(\?(())a)(\?!){})W)pP3333333333(33333333333333333333hhh]{})", 0, 0 },
+ { "[^ [ a*FFFFF[^FFFFFFFFFFF(\?<[^!FFFF(\?=FF])])L1]{,-52}{B-bxsPKg{,8}[:digit:][:punct:][:upperword:]DD${,-131}", 0, 0 },
+ { "($$$$$$$$$$$$$$$$$$$$$$$$$$$$$^pP),,,,,,,,,,,,,(,,,,,,,,,,,,)QQQQQQQQQQQQQQQQQQQQQQQQ", 2, 0 },
+ { "[:lowerprint:]|l{(,-54}C{}*-)IIIIIIIIIIIIIIIII", 1, 0 },
+ { "()+", 1, 0 },
+ { "[(([(\?{[:punct:]]|))[[[[[[[[[[})]WWWWWWWW&$$$$$$$[:graph:]", 0, 0 },
+ { "[^(\?{}){(107[(^,}][:space:[]))^w,&aPPPPPP[^PPPPP{117,-213}s\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?]]]222222[:d(\?(igit:]NNNNNN)NNNNNNNNNNNNN8)I", 0, 0 },
+ { "[^(\?<!$)|TTTTTTTTTTTTTTTTTTTTTT(TTTT]a8)2<", 0, 0 },
+ { "([^[]%[^[^]-][:alpha:]37*:[:space:]]lQvu)[:xdigit:][:blankcntrl:]", 1, 0 },
+ { "[[Bl_>9C^:\?X_KK]2sw@hHZT!],uuuuuuut|lFW()'''''''''''''''''''''[:graph:]<~v{-251}0[:digit:]C[{222,}]{,41}{}*g^UuS/{-114}", 1, 0 },
+ { "(D{,-79}[:gra(ph:(\?(]C[:ascii:]))I[tC.%tkllll[^llllllllllllllll]&&&&&&)&&&&&&&&&&&&&&&&&&&&&&)]10435", 1, 0 },
+ { "[:al(\?{[^num:]]})}x'[:(\?#xdigit:])xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxKKKKKKKKKKKKKKKKKKKKKKKKKKKKTTTr*%{~f", 0, 0 },
+ { "[ZQKEEEEEEEEEEEEEEEEE(\?<!]3|.~~~~~~~~~~~~~~303)33333333333333333", 0, 0 },
+ { "(-62([:ascii:]5555){-230,}<<<<<<SM[:punct:]{72}|E{160,})Pfqba!{,-188}DS{ +2tRu\"0JG$", 2, 0 },
+ { "([^(\?:(Ea00000000000000[:punct:][:graph:]{}]))[:xdigit:]{-65}t){164,}", 1, 0 },
+ { "[\?$$$$$$$$$$$$$$$$$$$$$$$$$F......(\?(.).q#R:j6%TTLCdtuM|8*54<GHoqEh9FBW0:W]L0)o][:upperword:]", 0, 0 },
+ { "[(\?>[:alnum:]W[:space:]]D)|L", 0, 0 },
+ { "(M(MM)[:alnum:]|[:lowerprint:]4)", 2, 0 },
+ { "[[^(\?:{}{2[2(\?>0,})]]]Etu)-)", 0, 0 },
+ { "([^[^^z[:graph:]]#{-144,96}[:punct:]!4LY//////////////////SSSSSSSSSSSSSSSSSSSSSSSSS[[^:xdigit:]\?`-!L#p0{52}]%{-121,}[:graph:]]WqJ>$6UBg{,7}[:blankcntrl:])[:upperword:]y2wW!A[:blankcntrl:]0CN\?", 1, 0 },
+ { "[[^(\?:|+bII(IIIIIII(\?(\?>!)275SIIIIIIIIII(IIIIIII(\?=IIIIII[:graph:]|)`]S\?.}A)[:alnum:]Jgggggggggg{-150,}{-89,})[:alpha:]Q)|07be5:j)]", 0, 0 },
+ { "([(\?i(ms(\?=x-x(\?>:))C)]){})>eIqm~lFb[:upperword:][:blankcntrl:]w=[:digit:][:graph:]", 1, 0 },
+ { "([HHHHHHHHHHHHHHHHHHHHHHHHHH[^HHH(\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?!!!!!!!!!!!!!!!!!!!!{23}]~J=[:ascii:]tttttttttttttttt])-216", 1, 0 },
+ { "B{[^-32,246}{13(\?!0}q>GVQw*[:digit:][:punct:].77777777777777777777`T(-t01odD]\?${}{-247}+gV{131})+[:lowerprint:]m/z~d", 0, 0 },
+ { "[t[$FV+(\?=E=[^])]-$U{-22[5,}{253,}08g]$[{}][:xdigit:][:punct:]{-18}{-173,}]{,-191}V_|90", 0, 0 },
+ { "()$", 1, 0 },
+ { "[^[^((((((((((((((W[(\?::blankcntrl:]&-JH]J){93}LLLLLLL|r{,221}tY/172]-AS", 0, 0 },
+ { "[^()(\?{qqqq(\?msimsx:qqqqqqqqqq3999999999999GGGGG|S*W%{,128}][:xdigit:]AJt]}\"Zf!lRpr{>){,36}})", 0, 0 },
+ { "[([]^]^)", 0, 0 },
+ { "([.(\?#){}[:alpha:]\?S{2}P%Gw]nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnYiq5)>i*r<", 1, 0 },
+ { "[ggggggggggg$PPP:S (:]N{239,}|A[:lowerprint:]vvvvvvvvvv[:lower(print:]{-184}({-133,}+)[:punct:]P/Q.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", 1, 0 },
+ { "(RRRRRRR[^RRRRR[RRRRRRRRR])]", 1, 0 },
+ { "[(\?:^])D%", 0, 0 },
+ { "()[]#C[+[j]{,29}-]", 1, 0 },
+ { "(([(\?(((\?{\?!(\?=\?=#[Es*){02$r'}(\?:3pz)uPPPPPPPPPPPPPPPP(\?(\?>:PPPP][:graph:][:ascii:]`.)[:punct:][:a(\?mxi:lnum:])r)$)[:xdigit:]$[:(\?=digit:])aa[^]a)\?])sQQQQQQQQQQQQQQQQQQQQQQQQQQ^|$)-}))", 2, 0 },
+ { "z@@@@@@@y${}[:(\?:upperword:]l\?{,144}-)", 0, 0 },
+ { "[:aln(\?:(\?>um:(\?imximsx:]){})FGGGGGGGGGG|-p){,105}", 0, 0 },
+ { "[[{17}llllllllllllllll(\?:lllllllll{,(\?#-94}OUUUUUUU(\?#UUUUUUUUUUUUUAA]p[:digit:]{-1(57,}5yyyyyyyyyyyyyyyyyyyyy[:alnum:]v{-185}^^^^^^^^^^^^^)d[[[p)]))", 1, 0 },
+ { "()|[:digit:].E2o", 1, 0 },
+ { "()3[:lowerprint:]", 1, 0 },
+ { "[(\?{(\?#(\?>SN}[^)z+r^t[:digit:]seP[:alnum:]$b1ZY[U(\?<!U4IIIIIIIIIIIII(\?<=IIIIIIIIII]m)]))]4)", 0, 0 },
+ { "{,74} qkk[^p]kbi6>{}000000000000000000000000000000$|)", 0, 0 },
+ { "[:(\?=digit:])v{164}", 0, 0 },
+ { "[:graph:]h[:upper(\?(wo(\?{rd:)])00000[^000000000000}).4OEVf{,-46}]A", 0, 0 },
+ { "[](((((((((((((((N{{{{{{{{{{{{{{{{,-1}e]a{-166,-44}", 0, 0 },
+ { "([[^[^[(^[]]YYYYYYYYYYY]D.cQ{}[:alpha:]ttttttt000000[^0000(\?<!0000000000000000N::::::::].][:alpha:]#5\?{}{-253,-193}]\\[:ascii:]tS{,35}B)ffffffffffffffffffffffff))/", 1, 0 },
+ { "(G)[:alpha:(\?#])W{-197,-220}w8", 1, 0 },
+ { "{-2[^00,(\?#-([84}ig+)]]l[:graph:][:graph:][:space:])aaaaaaaaaaaaaaaaaaa{-208,}ea{,224}", 0, 0 },
+ { "[^[W(\?<=[B[:xdigit:]{255,}FAAAAAAAAAAAAAAAAAAAPP])[:xdigit:]+][:lowerprint:]${-195}", 0, 0 },
+ { "[v{104,}BB].HHHHHHHHHHHH[:ascii:]bbbbbbbbbbbbbbbbbbbbbbbbbbbb(btttttttttttttttttttttttttt){180}", 1, 0 },
+ { "[^(i[^iiiiiiiiiiiiiiiiii(ii)n])#######################]", 0, 0 },
+ { "(([:space:])[:g(\?>raph:])[:punct:][:upperword:]LV\"t+t!)[:ascii:][:lowerprint:]q", 2, 0 },
+ { "[[[^([7(\?[<!)\\PP~D7L (\?imsimsx:(\?= $GS26L3-J(\?()!)]]{-178}%$[:p(\?!unct:]))yyyyyyyyyyyyyy@w,[11!R86:)G*[(\?(:blankcntrl:]267$~L\?{-108}k[:alnum:]So\?Y/eq]-|[:xdigit:]555555555555555555555555555)55555........W*O))][:alnum:]]I{,-126}[:lowerprint:]8\?[:xdigit:]u%wHc6\?:Pc...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,]", 0, 0 },
+ { "((3pPp))QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ", 2, 0 },
+ { "[[^]{-244[}(\?([^|W0E4]UUUUUUUUUUUUUU[:upper)word:][:space:]{-57,})+L>R]]$PeFuufcBA`qr!!!!!!!!!!!!!!!!!!!!!!!!!", 0, 0 },
+ { "[[(\?#F^(\?<!)|)fff(\?!fffffffffffffffff(\?{ffffff(\?:ffffff[:alnum:])]]c.\?-}))", 0, 0 },
+ { "[^[^((\?:)ww[wwww(\?>wwwww)3z/57z){34}]/(/////////////[^//////////////////)]E%)L{-133}]*$]", 1, 0 },
+ { "(!)GS[:ascii:][:punct:]{235}T'&-_h\"", 1, 0 },
+ { "(){}", 1, 0 },
+ { "[[^((\?!(\?<=)*QF[:alpha:])([^[^\?<!x60t(\?<!UUUUUUUUUUUUUUUUUUUU)K&d{118}z7nM.G)```````````````````````````E:(\?(){31,}){}]k]){,109}[:space:]]ZZ[:xdigit:]]{-68,}`{}{}e\?[:alnum:]", 0, 0 },
+ { "[^{223}.^,-qqqqqqqqq((\?!\?>qqqqqqqqqqqqqqqqqqqqqqqP6W0_'O)Bur*'6&*t)]{65})+", 0, 0 },
+ { "([(\?=)]wr$7f5ru){100,}[:xdigit:]y{}[:digit:]{}2n@P|9#mru~97{-189,73}$a", 1, 0 },
+ { "({-113,213}){-172,221}B[:ascii:]{,-48}", 1, 0 },
+ { "[^[[Xf`````((\?{(\?<=\?imsmsx:`````````(\?!`````````[```(\?mximsx:``(\?(&|o{xIaO][:)space:]3))\?])+)*<|@@@@@@@@@@@@@@@@@@@@@@){-251,}{}]*[:graph:]1!azE\?|-120u*][:lowerprint:]})", 0, 0 },
+ { "[[[^##(\?################(\?>(\?(##t)][:punct:])b))<<<<<<<<<<<<<<<<<<<<<<<<<<[:alnum:]y >u=l:rp8i3Ci#]46%NIO-W[:space:]IIIIIIIIIIIIIIIIII]W[:space:]f]l{-253}", 0, 0 },
+ { "[:graph:]L{-136,175}{[^}h(\?=t)Q]ooooooooo(ooooooooooooooooo_)[:space:]q\?", 1, 0 },
+ { "()$.", 1, 0 },
+ { "[(\?<!^$.\?{197}B]$)", 0, 0 },
+ { "[:di(git:])[:low(erprint:])qqqqqqqqqqqqqqqq[:digit:]", 0, 0 },
+ { "((zzzzzzzzzzzzAUUUU)l$]VD z~)n", 2, 0 },
+ { "([^[(\?<=^[]{}][.WWWW)044444444444(\?=44(\?{444(\?{(444444444444e{(\?=}}))..t]+[:(\?<!xdigit:]P]-N}))))|)", 1, 0 },
+ { "\\ce[:(\?#asc(\?{ii:])})[:upperword:]`^", 0, 0 },
+ { "[:graph:(\?<=])[:alpha:]", 0, 0 },
+ { "([:upp(\?=erword:])pC)lp\?", 1, 0 },
+ { "(oooooooooooooo\?fN)-[:alpha:]{-213}[:alnum:]qHEu", 1, 0 },
+ { "[:punct:]TTTTTTTTTTTTTTTTTTT[:d(\?#igit:])[:alpha:]", 0, 0 },
+ { "([^[^[^J4(+++++++++++++++++++++SgDE(\?>\"y8].]:::::::::::::::)pP5-]p)O{,199}xxxxxxxxxxxxxxxxxxxxxx[:ascii:]%", 1, 0 },
+ { "([:alpha:]Fs)Z", 1, 0 },
+ { "[()]{209}[:alpha:]hhhhhhhhh(hhhhhhhhhhhhhhhhhhhhh)pP<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", 1, 0 },
+ { "-{-8,}.[:(\?imsxx:ascii(\?<!:]{-231}aa*{}K^UQL\?)d\?[:lowerprint:]W)q>D9'", 0, 0 },
+ { "[#(\?msximsx:#########################-IIIIIIIIIIIIII(IIII(\?#IIIII((\?#[^III{})N.[(\?=:lowerprint:]))CwT,,,,,,,,,,,,,,,,,,,,Sq]$CCCCCCCCCCCCCCCCCCCCCCCuuuuuuuu])))", 0, 0 },
+ { "[:xdigit:][(\?#]){13}{,75}lllllllll", 0, 0 },
+ { "[c]QQQQQQQQ1+{-252[(\?#}33333])[:upperword:]", 0, 0 },
+ { "P@i #>>PF!@8G<[(\?:^P]-)D", 0, 0 },
+ { "uZZZZZZZZZZZZZZ[^ZZZZZl*-211{199}(\?!p])EEEEEEEEEEEEEEEEEEEEEEEEEEED[:lowerp(\?msximsx:rint:])", 0, 0 },
+ { "[(\?!^])021[:graph:]'", 0, 0 },
+ { "\\(\?>[(\?<=:ascii:]{}[:alpha:]d8}G))", 0, 0 },
+ { "[^[((\?!1)[^,a|]\?{,242}[:alnum:])X\"a", 0, 0 },
+ { "pP[((\?simx::a(\?!lnum:]vvvvvvvvvvvvvvvvvvvvvvvvv)|O0)[:digit:]ooooooooooooooooooooo)\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"", 0, 0 },
+ { "_ L:8J-~ Y$[:uppe(rword:]{,-184}]{}6.A)", 0, 0 },
+ { "{,105}.(9]]{-12})N@0nOOE", 1, 0 },
+ { "HHHHHHHHHH[:xdigit:]uuuuuuuuuuuu{}E^X\\\\\\12601", -1, 1 },
+ { "( o)=\"OU7h{V>", 1, 0 },
+ { "[[:xdigit:])))))$[:xdigit:]+{152}{,-50}(c),,,,,,!!!!!!!!!!!!!!(\?>!!!!!!!!!!!!!.[:digit:]i>\"O'i9])-175d_", 0, 0 },
+ { "[([^[^[^([[Eeee[^eeeeeee(\?(\?<!(eeeeeeeeeeeeeeeeeef|]][:alph()\?>(\?!(\?>a:]a{,166})/////////////////////[:gr[^aph:])Gpu", 0, 0 },
+ { "(7)NNNNNNNNNNN132", 1, 0 },
+ { "[([\?#^[]{QKm$v])][:alp[^ha:]]", 0, 0 },
+ { "(:{86})7{K|[:alpha:]{O", 1, 0 },
+ { "([Y(\?{[[^:alnum:][:alnum:][:digit:][:a(\?(lpha(\?(:].})", 1, 0 },
+ { "[[({29,-30}([[^:digit:])Y]]J=~{,220}[:blankcntrl:])0ooooooooooooooooooooooooooooooo[:punct:]&]", 0, 0 },
+ { "[^1Dx32[:alnum:]]{[(\?::punct:]MMMMMMMMMM)12759", 0, 0 },
+ { "([[[]]*|(_])[:u(\?{pperword:]})", 2, 0 },
+ { "[:upper(\?(wo)rd:]){-16,250}", 0, 0 },
+ { "([^{194}i(\?({161)}PP\\S{}{,-14}]))z{208,225}BpPEt", 1, 0 },
+ { "[(\?m-ms:)}&!@29k0sUqzt9}<-x|A$!+G>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>CCCCCCCCCC-][[:space:]][:space:]El", 0, 0 },
+ { "()[:digit:(\?isx(\?>ix:]K^WQQQQQQQQQQQQQQs)[:lowerprint:])", 1, 0 },
+ { "[a|(\?imix:S(\?(SSSS)SS(\?>S)]W)8t[:ascii:]f$)[:alnum:]111111111111111111111[^[:space:]x{12729}+'''''''''''''''']", 0, 0 },
+ { "[^(\?!(\?(\?#=)a)[:punct:]=2)(){}$$$$$$$$$(\?ims(\?#-isx:$$$$$$$$$$$$$$$$(\?#$$s)x{294b}##############################slllll)]){,209}333333333333333333G:v2/K", 0, 0 },
+ { "[^]ub(\?<=)vQ6(\?#Z\"3.)[:space:]u[[:digit:]]7777777777777777U'{}sssssssssss", 0, 0 },
+ { "(([(])`[:ascii:]b)", 2, 0 },
+ { "[[[^[^([^[^(\?=(\?imxisx:[[^w])", 0, 0 },
+ { "pppp(pppppppppp-{-175}Nb>k&)sssss{-190,-54}", 1, 0 },
+ { "()OJ@`'%[:(as(\?!cii(\?#:]))+pffffffffffffffffffffffffffff{,162}[:ascii:]5)s-[:graph:]", 1, 0 },
+ { "[(M{}Ux5{jaW/{}[^u[:alpha:]s^{84,}PPb@Wt$(\?>nha<Yf41a)]{}[:lowerprint:])*[:lowerprint:]][:upperword:]^1gS.^=pp{}FFFFFFFFFFFFFFFFFFFFFFFFFFF33333333333{}", 0, 0 },
+ { ")\?L9~h4BQnNp F\\Q{}", 0, 0 },
+ { "($)[:upperwor(\?:d:])N[:alnum:]bcccccccc5555555555555555555555555.N[:blankcntrl:]", 1, 0 },
+ { "2222222222222222222ppppppppppppppppp[:lowerprint:]))[^B\\e{{{{{f]6#+{,-104}{{{{{{{{{{{{{", 0, 0 },
+ { "<[(\?>:al[^pha:]])\"O\"vN", 0, 0 },
+ { "[(\?>d8E@b.{(\?<=,-250}(\?=mx48[:punct:]^&)]nAeYY)W)-13272", 0, 0 },
+ { "22222222222222222222222222///////////////////[:digi(\?#t:]eM)[:lowerprint:][:alpha:][:alpha:]EEEEEEEEEEE", 0, 0 },
+ { "[(\?={38,223})^\\\\\\\\\\\\\\\\L(\?:{,-50}3|)}r]aW\\x70U{-110,}8LUf)w]4+oav", 0, 0 },
+ { "G[:upperword:]v[:lowerprint:]-tu)j8CK", 0, 0 },
+ { "[([([^().(\?(\?><=c)'(\?<(='(\?<!''''''''(\?(\?<!!'''''''''''(\?=''''''/(|dHj(P>L\?q!G))|)(\?=n(\?(^tk)T-z$q!D|2<rc[^{,53})]jZy))))6)[:bla)nkcntrl:])010])7pE`l[:space:]([:lowerprint:]eXXXXXXXXXXXXXXXXXXXTTTrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr]+[:alph(\?!a:]7)444444444444444444444444l{34,}]J{}yyyyyyyyyyyyyyyyyyyyyyyyyyy)\?'z9~9s.mA", 1, 0 },
+ { "().", 1, 0 },
+ { "{-205(,}[:al(ph(\?>[^a:]W,[4DLR[^^8THMtVv~KKw(\?>)pPF)].{-245,}]))fffffffffd[:alpha:]zzzzzzzzzzzzzzzzzzzzzzzzzzzzz", 1, 0 },
+ { "[^[[^]{-[1(\?imximx:83,}{,182}][:graph:]]^])-bTO X0P", 0, 0 },
+ { "[11111111111(\?#11111111]U[:asc([\?!ii:]{,37}+{-89}){-170,218}{-21,})f[:xdigit:]]P.[:xdig(\?:it:]145)YYYYYY$S@:@@@@@@@@@{-150,-109}", 0, 0 },
+ { "{-40}<o][^D[(:graph:]]d).Q", 0, 0 },
+ { "()APPLn[:xdigit:]", 1, 0 },
+ { "[([^\?+++++++++++ [ (\?> (\?( (\?{ (\?!]E{-29})pP)})ZpP", 0, 0 },
+ { "(t|{}c[^z^\?(@YLD]bSSSSSSSSSSSSSSS)+{{{{{{{{{{{{{{{[:xdigit:]n>1)WkF}7", 1, 0 },
+ { "W22[0Q[^d-d{}PPPPPPPPPPPPPPP<^FZ(\?<=\"[U]Yo}9H'cYy]S[:alnum:]^8wTDH)^u", 0, 0 },
+ { "([^[(\?:(\?>((\?#$)(\?{^(\?>))///////////(\?>/ggggggggggggggggg{1(\?!90,-13}\\D)Dyyyyyyyyyyyy(\?!y(\?<!yyyyyyy)})]]$)[:xdigit:]|{}-)#a))nPpP[:lowerprint:]AA)V+q^[:blankcntrl:]", 1, 0 },
+ { "([^(\?!]))D{,97}", 1, 0 },
+ { "(c){,141}", 1, 0 },
+ { "nn[:s(\?<=pace:])[:upperword:]ooooooooooooooooooo*^[:space:]`{-188,129}mmmmmmmmmmmmm^.", 0, 0 },
+ { "[[G{(\?imsximsx:2(49}{,-46}r(\?(\?=#Gw]u))[:bl(\?>ankcntrl:]))(^m+)zSiZ F4[!]VV$E{-9,-100}''''('''''''''\?DEOOOOOOOOOOOO###############[:space:])HHHH)[:digit:]'////////////", 2, 0 },
+ { "[^*}(\?>)(\?:7Q=#+]KKKKKKKKKKKKKKKKKKKKKKKKKKKG)]]]]]]]]]]]]]]]]]]]]]]]]]][:alpha:]-{}", 0, 0 },
+ { "[n(\?<(\?#!nnnnnn55555{205,}!)[:alnum:]^]!!!!!!!!!!!!!!!!!!!!!!![:punct:])[:x(\?(digit:]vr)|'n6W5 D&jk[:punct:]5)", 0, 0 },
+ { "[^P(P{(\?i(msxisx:235,}))***])[:alpha:]^", 0, 0 },
+ { "[([t(\?<!(\?<!4])[:u(\?=pperword:]))-])}}}}}}}}}}}}}}}}}c{-39,}[:digit:]$-", 0, 0 },
+ { "([^)]{241}[:xdigit:][:upp(\?=erwo(\?(rd:]-xF5b{})q[:ascii:])T4U{185}9999999999)()X&Ny[:alpha:]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{69,}[:alnum:]x{d7f8}p-[:digit:]", 2, 0 },
+ { "(f)(${,111}{25,}!\\d{,94}[:blankcntrl:]@[:space:][:ascii:])-237{,232}DQVVVVVVVVVVVVVV)-", 2, 0 },
+ { "PP[:g(\?!raph:]){}", 0, 0 },
+ { "([[^-][^4[:digit:]NNNNNNNNNNN]TVU:])[:ascii:]", 1, 0 },
+ { "(([^(\?[[^<=)][:graph:]+iiiiiiiiiiiiiiiiiiiiiiiiii0INFX[:xdigi(\?(t:][:blankcntrl:]][:graph:]qM6A[:alpha:][:graph:])1*]eFvvvvvvvvvv)v-)U))t{89}", 2, 0 },
+ { "[^ZZZZZZZZZZZZZZZiiiiiiiiiiiii(iiiiiiiiiiiiiii{}))))))))))))))))))]))))))))))))))))))))))))[:digit:]-", 0, 0 },
+ { "ddddddddd+zzzzzzzzzzzz[:graph(:])ssssssM{-223}[:graph:]", 0, 0 },
+ { "[:alph(\?>a:])x11{-144,45}.", 0, 0 },
+ { "[]{#y.^(\?{{}&&&&(\?:[^&&&&&&&&)[:punct:]n{190}OylBQ{(\?!-73})2u',x(\?#Ds(\?#{})j(\?{-})})u0(((((((\?{(((([:alnum:])MC})b=71TncyE>[:xdigit:]*\\f]{}]\"p#!8twZT\")[:punct:][:space:]", 0, 0 },
+ { "[^(Z6]8)|'@p8{}[:upperword:]MMMMMMMMMMMMMMMMMMMMMMMMMMMM{}7c", 0, 0 },
+ { "$0)@#vp,VcJ.Bdh", 0, 0 },
+ { "[[^(-])nnnn+s`[:alpha:][:blankcnt[^rl:][:upperword:]{-15,}][:g(raph:]c]){,-177}6[:upperword:]##################{,-14}", 0, 0 },
+ { "[[(5C{86(,}PPrrrrrrrrrrrrrrrrrrrrr{150,182})N{}LSC|)-[:alnum:]{}KKKKKKKKKKKKKKKK<4=~7K3PPPPPPPPPPPPPPPPPPPPPPP[:lowerprint:]]]", -1, 0 },
+ { "([^(x{145b[5}^hfc.0)+]z@_&lA{-34,}])X\?", 1, 0 },
+ { "([(\?<=)(\?!])l)L", 1, 0 },
+ { "({-104,}DrPPDF4444444444444[:space:])[:space:]", 1, 0 },
+ { "())))", 1, 0 },
+ { "[[^((\?>\?(\?[{})q5v}r7t(P)xtffffffffffff))]{,-66}kdExX&-SCeCzzzzzzzzzEc)E,\"^I]x{e629}|{}]", 0, 0 },
+ { "[h[:punct:]p\\[\\\\(\?:\\\\[^\\\\)Eo#:C$u[^T/ysA[*%nM:f]{,221}[:lowerprin[^t:]{]bx{f285}E]E[:alnum:]+]1oe3B][:alp(ha:]]fh7}M$l)D{17}", 0, 0 },
+ { "IIIIIIII[^IIIIIIX]-_S[:digit(\?#:])33333333333333333333333333[:punct:]iiiiiiiiiiiiiiiiii", 0, 0 },
+ { "[^[[:punct:](\?((\?:^ #Q_po(\?=[:alpha:]{}z()(\?!======'wq$Q2)LLLLLLLLLLLLLLLe(C9gggggggggggggggggg[(\?<=:alnum:]()\?<!{-85,}W[[[[[[[[[[[[[[[[(\?{[[[[[[^)(]\?])|uuu[uuuuuuuuuuuuuuuuuu{,-20}p${}]MHI&7s:\?$[:digit:]-:)_V`*{-52,}{250}$:ME9izF/uP[:blankcntrl:]})''''''''''''''''''''''''''''')CCCCCCCCCCCCCCCCCCCCCCCCdd[:ascii:][:lowerprint:].Mcccccccccc2B{-230,}$[:digit:]", 1, 0 },
+ { "()|mOAuK~P144[:space:]^9dddddddddddddddddddddddddddddd[:blankcntrl:]", 1, 0 },
+ { "[^[^[^.L[^-vEUl(\?>(\?=a!Ib1P]])])~~~~~~~]xE9", 0, 0 },
+ { "X()", 1, 0 },
+ { "[^()(\?#G(\?<!)(\?=^r])*,XXXXXXXXXXXXXXXXX@)444444444", 0, 0 },
+ { "([[((\?<=({,-70})-[:xd(\?=igit:]{,138})", -1, 0 },
+ { "[(^]{62,67})", 0, 0 },
+ { "([((])[:space:]))", 1, 0 },
+ { "(a{(109,})[:alpha:]{,-121}{})]RRRRRRRRRRRRRRRRRRRRRRRR{}{125,}ttttttttt{46,}`[:space:]", 2, 0 },
+ { "[^[^([q[8]~.IPmiBSspP)]QpX[pT==8@lulANS]]{,-98}]", 0, 0 },
+ { "[^77777777777777777777777(\?>777777])", 0, 0 },
+ { "(),e<^X~{[:alpha:]{}G{70}", 1, 0 },
+ { "({-211,}'){}", 1, 0 },
+ { "[^(\?imsxsx:{}[*])cccccccccccccccccccccccccccccccc<z0W8]$", 0, 0 },
+ { "(){2,89}$z", 1, 0 },
+ { "((050[^\"\"\"\"\"\"\"\"z]8|j{}{,-112}$).pP)qq1~hW}L", 2, 0 },
+ { "[[^[(+xx(\?<!xxxxxxxx(\?!xxxxxxxxxx(\?#(\?>[x))(\?:]r.]]]))[:graph(\?<=:])))", 0, 0 },
+ { "[^([(\?#)(\?(\?(<=)l|\?(\?!])kkkkkkkkkkkkkkkkkkkkkkkkkk", 0, 0 },
+ { "[:xdigit:]K(KKKKKKK)^3c.OOO{-240,-10}2{-97,-139}*{-34,}[:xdigit:]", 1, 0 },
+ { "[([^66666666F(\?>FFFFFFFFFFwpP)LLLLLDeDA&Am$l[:xdigit:]!T5#]n[:alpha:]U*)))))))))))))PP]", 0, 0 },
+ { "[[[:punct:]u^[:xdigit:]L(\?:[:xdigit:][[:graph:]PP{21}A[:alpha:]8%I(M%b<eE~#C@r=uG~~~~~~~~~~~~~~~~~~~~~~~~~~~~+w]pP)T]]$$$$$$$$$$$$$$${-121,}|l", 0, 0 },
+ { "([(107{,-4(\?=}~[^D)])f]{,46}+ri<)", 1, 0 },
+ { "[(\?<=]{,208}+~)", 0, 0 },
+ { "[^444(\?<=4444444[:alnum:]&[,i]0)[:alpha:][:upperword:]", 0, 0 },
+ { "[^([^(\?()*+)SS(\?>SSSSSSSSSSSSSSSSSSSSSS]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]{,-1}])[:blankcntrl:]===============================[:punct:][:blankcntrl:]Z[:space:][:ascii:]$|$[:blankcntrl:] JR.{,133}[:alpha:]$\?)<]", -1, 0 },
+ { "(OL[:u[pperword(:][:s[^pace:].[:spac(e:],,,,]*])$)\?)", 1, 0 },
+ { "(VI[:digit:][:alpha:]6)EG", 1, 0 },
+ { "({}){-2,-40}rrrrrrrrrrrrrrrrrrrrrrr[:punct:]", 1, 0 },
+ { "()q", 1, 0 },
+ { "[^([^[([^C|])]{,-56}[:xdigit:]{-144,}V])fYv{-[40,-58}$@@@@@@@@@@@@@]|Y(-]-.]h-[:dig(it:])>>>dddddddddddddddddddddddddd{101,}", 1, 0 },
+ { "([P,{1(\?(\?(<=28,-218[^)}LoZX)])!!!!!!!!!!!!!!*[:blank(\?!cntrl:]ed)\\\\\\\\\\\\\\\\\\\\[\\L\?][:graph:]:*Y{-108,120}xCC)]", 1, 0 },
+ { "(A[:space:]PP{185}a^!!!!!!lllllll)*db\?$Pfr", 1, 0 },
+ { "{-21,-118}kG[(\?{:xdigit:]})[:punct:]{69}Qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy5{}TTTTTTTTTTTTTTTTTTTTT", 0, 0 },
+ { "[[^[P(\?<=P$X>0^d.[:punct:](\?#ccccccccccccccccccccccccc{}3N000(\?>00000000000000000000000000000]f[:punct:]5)).R================{,222}^wwwwwwww$)]-{} ]{,-22}CjP{242,}", 0, 0 },
+ { "[(\?#^]{})", 0, 0 },
+ { "[^([[([([[([^[^(\?:(\?(\?(!)]\"))h>\"RRRRRRRRRRRRRRRR[^RRRRR{68,-65}7Q(\?{]", 0, 0 },
+ { "(P{}){175,}PP{}rttttttttttt", 1, 0 },
+ { "[:bla(\?{nkcntrl(\?#:]})))))))))))))))))))))))!!!!sR{})", 0, 0 },
+ { " [:digit:]dAAAAAAAAAAAAA^[:ascii(:]55)^", 0, 0 },
+ { "($*)dZY", -1, 0 },
+ { "[:graph:][:lowerprint:]S[:gr(\?=aph:]{-128,}666666666666666666666{}[:upperword:]|nnnnnnnnnnnnnnnnnnnnnnnnnnB)c[:xdigit:]{-225,}{-4,}{-192,}QQQQQQQQQQQQQQQ@@@@@@@@@@@@@@@@@@@@@@.", 0, 0 },
+ { "([:digit:]s{44,}{}{-31,}c{,-130}pP){-241,}UeN", 1, 0 },
+ { "([^)((\?>\?#{}hK\"V2\?d][KKK(\?imsxim:KKKKKKKKKKKKKKKKKKKK[^KKKKKKKKKWWWW[WWWWWWWWWWWWWWWWW)B])_l_3", 1, 0 },
+ { "[(^[(\?!*){[^,91}].j]*]L)*c|[:alpha:]&", 0, 0 },
+ { "[^[[[^[777GGG(\?:W_U(\?imsxms:[:punct:]A]-)[:digit:][:blankcntrl(\?(:]][:alnum:)])]WRRRRRRRRRRRRRRRRRRRRRRRRRRR]{31,}[:xdigit:]][:xdigit:]))))))))))))))))))))))$[:xdigit:]", 0, 0 },
+ { "[:ascii:]m*[:punct:]#[(\?<!:punct:][:alpha:]-,7vyXeeeeeeeeeeeeeeeeeeeeeeeee^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%%%%%%%%%%%%%%%%%%%%%%%%%%%%[:digit:]''''''''''''''''')", 0, 0 },
+ { "([^*[(:punct:]9999999999999999999{147,}]j{,193}{171}Z-)){208}0[:graph:]yDt", 1, 0 },
+ { "(dw[[:alpha:]U]ttt[tttttttttttttttttttt]Q^171e)[:xdigit:]/", 1, 0 },
+ { "[[^((\?#)Tqqqqqqqqqqqqqqqqqqqqqqqqq105++++++++++++++++++++++++++b7V+7dit]])|D", 0, 0 },
+ { "{}P7.Ajh[:xdigit:]^[:blankc((\?(\?<=nt[rl:]FFF)-]){}o|a[:grap(\?!h:]))PsssssssssssssssssssssssssssssssN^{-60,}Kb", 0, 0 },
+ { "[:alpha(\?(:]$!_+777777777777777777777777O)666)lll[^llllll[^l{{{{{{{{{{{{{{{{{{{{{{|]{-217,}MoEl`7)^)LlU[:alph[a:]({-241,27})]]{-212}{,249}n)X", 1, 0 },
+ { "[U|ajP[:alnum:]n[(:digit:]]W)[:graph:]b[:xdigit:].P", 0, 0 },
+ { "(([:low(\?-imsx:erprint:]|{}[:ascii:][:gr(\?:aph:])>>>>>>>>>>>>>{,-129}))\?{-226,}^P)R", 2, 0 },
+ { "[^[[nnnnnnnnnn(\?=nnnn(\?!nnnnnnnnnnnn(\?#nnnnnn{,-38}N){202,}]$[:alnum:])]t][:alnum:[]^=w){237}][:alpha:]-[:alpha:]+e", 0, 0 },
+ { "()[(\?(:digit):]+qc)O88888888{,151}aJ", 1, 0 },
+ { "([^([(\?!sv(\?=)d]{-200,})N))]Z{-73,15}", 1, 0 },
+ { "([\?\?\?\?|||||||||||(\?{||(\?=||||||||-}[))Ehhhhhhhhhhhhh{,202}&TcfL((\?:>)((\?!\?>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$8[:alpha:]\\d])]C[:graph:]h*,\"\?u{|mU,a)[:blankcntrl:][:lowerp(\?>rint:])PPnP+9.[:xdigit:]*PPjjjjjjjjjj~y<#*scf_\"^e[:xdig(\?(i)t(:])~$y)^){-131,77}^L%", 1, 0 },
+ { "[^[(((\?>)$}h9$B5+yhU/Nqh$YYYYYYYYYYYYYYYYYYYYYShK)3WHw1vMMMMMMMMMMMMM(\?=MMMMMMMMMMMM[:alnum:]/)dddddddddddd(dddddd\"e5zLW)+![:space:]+BHGHfAS]\?IIIIIIIIIIIIIIII*&&&&&&&&&&&&&&&&&&)NNvwDteepjdm<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<${61,219}D][:digit:]0", -1, 0 },
+ { "[:punct:][{177,(\?=234}]ix9*)", 0, 0 },
+ { "([^K{,3(\?<=4}]I)\?U)", 1, 0 },
+ { "[([^[[[^([([^[^(\?=])X", 0, 0 },
+ { "[:blankcntrl:(])qd_R\?{\?r[=\"[^[^6]vX8)a+{C%H84CK6Uy#E]sE{208}", 0, 0 },
+ { "PPPPPPPPPPPPPPPPPPPPPPPPPPnnnnnnnnnn()[:upperword:]us", 1, 0 },
+ { "x{,46}[:graph:]LU{}CU)", 0, 0 },
+ { "()-t|[^W{}][:lo[^werprint:]{}]\?b5", 1, 0 },
+ { "()x5A", 1, 0 },
+ { "[([^]-217)]s{-47,135}0000000000000000000000000000000{,-108}", 0, 0 },
+ { "[^((\?{[^L\?u]})f", 0, 0 },
+ { "()[[^^(\?{y(\?=VF_(\?<=]D}))]-= {46,})^5bIEQ{,-96}Z", 1, 0 },
+ { "([^{}f[:punct:]\"X%%%%%%%%%%%%%%%%%%%%]5{-194}A[:punct:]mnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn+AAAAAAAAAA-)", 1, 0 },
+ { "(CCCCCCCCCCCCCCCCCCCC{-230}352{-182,-68}O4{})", 1, 0 },
+ { "([^[^\?[:space:]$TTTTTTTTTTTTLLLLL[^LLLLLLLLLL[^({}{4,-179}]]J] C]){}C{}{-224,})QQQQQQQQQQQQQQQQQ^", 1, 0 },
+ { "([[:alnum:]].){-155,-82}dzI{55,}^", 1, 0 },
+ { "([[:alnum:](\?#{88,-178})[:graph:]NC\"pI[:punct:]rmWd5y^p+gUP]YYYYYYYYYYYYYYYYYYYY~{,-62}{,200}{-109}{}+333333333333333333333333333333{}p)^.hhhhhhhhhhhhhhh", 1, 0 },
+ { "[000000(\?mmsx:00000000000000000000000)M]]]]2*`[^]QQQQQQQQ(\?<=QQQQQQQQQQQQQQQQQQQQQQQ])\"<h\?", 0, 0 },
+ { "[^((<g(\?>5j[bbbbbbb(\?{bb)o{}3(\?imxisx:E]g})YYYYY[:blankcntr(\?#l:].(()w264[:ascii:]^)[:ascii:]G)&(n {^PGn[:xdigit:])nv_e|]{-103,30}", 3, 0 },
+ { "[^(([(\?!{}@[^HCO[[^^D[|]{,-49}][:xdigit:]]c`4[:ascii(\?<!:])$66666666666)*)]PP$Z[:alpha:]{,-235}UK],(aT/+6rbMqs60EloA)[:g(\?isx:raph:]!)]z$o{-24,}x1E[:blankcntrl:]ZDFvk", 1, 0 },
+ { "[:blank(\?=cntrl:]US@.!\"[:digit:]*E)$16182", 0, 0 },
+ { "[-{}x{3772[}][:(\?<=xdigit:][:u(\?#pperword:].W)aD)<pfN<b=C|-{-38}EZdOP|!>ggggggggggggggg\\\\\\\\\\\\\\\\\\\\\\\\\\Ef[:space:]\?][:ascii:]{21,}", 0, 0 },
+ { "([:xdigit:]W[:u(pperword(\?::]jS [:upperword:]*)[:alpha:]nnnnnnnnnnn))-148}SSu", 1, 0 },
+ { "([^(\?!\?)[(:upperword:])Bx^x$~lCr6*)6", 1, 0 },
+ { "[{,-78}Y[:xdigit:][^s(\?>]P[:space:])]YYYYYYYYY[:punct:][:alnum:][:blankcntrl:]", 0, 0 },
+ { "([MMMMMM(\?(MMM)M(\?<=MMMMMMMMMMMMMMM[^M)]en][:punct:]-[:alpha:]))Nr[:space:]", 1, 0 },
+ { "~=1([^(\?=(\?:l){}])j{-44}{-18}[^u[:graph:]]{-187,}[:xdigit:]w[:alpha:])", 1, 0 },
+ { "[ccccc(\?>c(\?{cccc[ccccwetoCei+)w&-+{,-142}[:alpha:]PP66io4(|zkA=],,,,,,,,,,,,,,,,,,,,,Lx5Cx{d2bb}]{188}U~~~~~~~~~~~~~~~~~~~~~~~})", 0, 0 },
+ { "Q|0\"[:d(\?:igit:]^{,-174})", 0, 0 },
+ { "[^[(\?>rh])]", 0, 0 },
+ { "[ees{{{{{{{{{{{{{{{{{bbbbbbb4`ml******(\?=****+])", 0, 0 },
+ { "((hdG[((\?<=:dig(it:])[^[:alpha:]$(\?sxi:)x{11390}[(\?{:upperword:]~)i 8[:blankcn[trl:(])]+{,-183}Zqp", 2, 0 },
+ { "Dd{D8`+DW={-[53,1(\?<=71}])", 0, 0 },
+ { "[:(\?(alpha:][:punct:])", 0, 0 },
+ { ".LLLLLLLLLLLLLLLLLLLLLLLLLLLL{}pP[:punct:]x0CZ{30,}!!!(!!!!!!!!!!!!!!!!!!!!!!!!!==@77.%[:graph:]D)", 1, 0 },
+ { "[^[^[[r(\?#]){-237,}RRRRRRRRRRRRRRRRRRRRRRRR[^Rll(\?!(\?{lllll]", 0, 0 },
+ { "()*ooooooooooooooooooooyyyyyyyyyyyyyyy", 1, 0 },
+ { "{,4(}D)JJJJJJJJJJJJJJJJJJJJJJJJJ", 1, 0 },
+ { "((b.D{}[:al[pha:]{64}]{})==========================[:alnum:]h>77b)!Ab", 2, 0 },
+ { "([^[^[^oooooooooooooooooooooo][:space:][:punct:]PeniKe*~$g\?${>[:lowerprint:]w))))))))))))))){}yyyyyyyyyyyyyyyyyy]pP.|QhZ]{,190})sssssssssssssr+=[:blankcntrl:]WWWWWWWWWWWWWWWWWWWWW", 1, 0 },
+ { "([*(\?{})hhhhhhhhhhhhhhhh]G{,-170}QdErrrrrrrc-jjjjjjjjjjjjjjjjjjjjn+{-130,-10})PpDS@Bee", 1, 0 },
+ { "([:b(\?=lankcntrl:]))T[:alnum:]{-224}ywt", 1, 0 },
+ { "([633(\?<=333(\?<=3333333333(333333)^\?]aGA)[:digi(\?>(\?{t:])$[[:space:][:xdigit:])|8T\?',_{171}{}{113}b\?5kAv0/7{})`huh>xM]C8pYRz]s$Eu08)", 1, 0 },
+ { "-(pP)[:alnum:]$^", 1, 0 },
+ { "[^x(\?{{17681}]P*)U(_t/8E_\"iN})3333333", 1, 0 },
+ { "(([^([[r(\?=[[^^*kx$][:alpha:]:::[:::::[^[^::::::::((\?{\?{::]).^p[:space:]}){52}{}]W{}fn", 2, 0 },
+ { "[:(\?>punct:]Ef[:xdigit:]x{c07b}{-50}Z{129,}YL1T`\\A)x[:punc(\?=t:]e[:xdigit:]2c6E46Y)+n ", 0, 0 },
+ { "[^(\?!{,-79}[:punct:]'|}>,)][:blankcntrl:]{-118,-231}{-119,-50}:XXXXXXXXXXXXXXXXX-~{}$txlB)3KFL", 0, 0 },
+ { "[^(([^fccccccccccccccccccc(\?<!ccccgQeKMfKzz]X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$[:l(\?<=(\?<=owerprint:]))s{-97}{}))EUi${,-132}'{79}---------{,-93}77777777777777777[:lowerprint:].:H)[:punct:]nnnnnncP\?s1:dGed{186}N@pppppppppppppppppppppP{-212,-110}[:space:][:lowerprint:]$S}7{-112,164}-*.{-184,}OOOOOOOOOO]f\?", 0, 0 },
+ { "(([\?#(\?>)])qcU$Q7|82\?{})", 2, 0 },
+ { "[^yyyyyyyyyyyyyyyyyyyy(\?#yyyyyyyyyyya][:ascii:]\?)", 0, 0 },
+ { "(([((\?{)EEEE(\?<!EEEEE(\?:EEEEEE~)}){244,}QQQQQQQQQQQQQQQQQQQ(\?>QQQQQQ(\?!QQQQQ][:digit:]\?))99999999999999)[:digit:][:upperword:]b))PP{}{}", 2, 0 },
+ { "(K(c=B))", 2, 0 },
+ { "(G`*s\?b[:g(raph:]))", 1, 0 },
+ { "[^[([[[*QQQQQQQQQQQQQQQQ(\?=(\?=QQQQQQ(\?<!QQQQQQQQZddddddddd((\?{\?>ddddddddddc{22,}iiiiiiiii(iiiiiiiiiiiiiii(\?#iiiiiii[^i))\?\?\?\?\?\?]WWW)[:lowerprint:])]{-60,202}+[:upperword:]f[:xdigit:][:alnum:]{,-214})1~~~~~~~MMMMMMMMMMMMMMMMMM.", 0, 0 },
+ { "({-102,})A.", 1, 0 },
+ { "[((((\?<!(\?[^>(\?#\?()))p\"JD.{}(\?>)))((\?{l(\?<=).'053][:xdigit:]N+)})]WWWW%[:asc(\?{ii:]}))B[:alnum:]X){}s[:digit:]", 0, 0 },
+ { "x7&{139}WWWWWWWWWWWWWW[:blankcntr[^(\?<!l:]-71]\"{-167}cqkI)[:dig[^it:]{}{}[:digit:]*[:punct:]-[l11111111111111111(\?(111111111{175,-216}~[:alnum:]`+X1F)vCpWSp(\?>~[^n@f`````````````)````````P])Y,N{}{}]{}pXF@)", 0, 0 },
+ { "G[([(\?(^)$])P]^[:alnum:]){,-48}[:blankcntrl:]{}", 0, 0 },
+ { "[[^[^f(\?=f(\?<=fffffff[^fffffffff[^fffffffff(\?<=fff]){-194,150}fx{e5a4}V", 0, 0 },
+ { "9[:xdigit(\?{:]})", 0, 0 },
+ { "[^([[(\?>()$xxxxxxxxxxxxxx[xxxxxxxxxxxxxxxx((\?=aA)s13]])pp[(\?>pppppppppppppppp|{}){20,}]b)]{-179,183}{-204,}[:ascii:])]-11111111{}{,132}qooooooooooooooooooo{}${}|9t", 0, 0 },
+ { "([^[{}]\"[^6]*-{,-106}{}u]BR~8WG,U-)[:blankcntrl:]", 1, 0 },
+ { "[''''''''(''''''''''z])c", 0, 0 },
+ { "[^[(\?>])[:alnum:]r[:alnum:]+{,215}D]", 0, 0 },
+ { "([({,127}7Qr(\?:z)pPNev%}(\?msximsx:4(\?<!){}&.D5555(\?<=55555555555555555555i$[:xdigit:]){,-157}[:graph:]U[:punct:]nn(\?=nnnnnnnnnnnn(\?>nn(\?:nnnnnnnn_U{}]E)):^oooooooooooooooooooooooooooo)", 1, 0 },
+ { "[^(\?#)(\?<!k2z]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]BW[:alnum:][:graph:]{157}Y]s$C)[:graph:]{,-189}", 0, 0 },
+ { "$+CCCCCCCCC[^CCCCCC(\?<=Ca=]r{-81}[:alpha:][:alpha:])E=", -1, 0 },
+ { "[(((\?=\?{([^(\?<=)])>!(([:alnum:]{252}{}})ffffffffffffl){}A2r\?~ImE\"[:punct:]){}[:digit:]", 2, 0 },
+ { "([:blank[cntrl:]].t^P)", 1, 0 },
+ { "[^[(\?:X])|rrrrrrrrrrrrrrrrrrrrrrrrrr*P]Q", 0, 0 },
+ { "[[[^(\?{((\?<!))s})(\?<!A){14}(\?:L*+TTTTTTT]U{[^-12([\?!,}\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?)Y`Y)L]|]]|]", 0, 0 },
+ { "hkXzf',]yP$+[:u(pperword:])", -1, 0 },
+ { "(#[:blankcnt(\?iximsx:rl:])$QQQQQQ{}[:digit:])\?A", 1, 0 },
+ { "(B{-34,})*{,106}", 1, 0 },
+ { "[(\?{:graph:]})", 0, 0 },
+ { "((){}{,63}[:punct:]^t[:space:])^17737", 2, 0 },
+ { "([^[SSSSSSSSS[SSSSSSSSSSSSSSS[([[[{38,}]Jn][:alpha:]])])$'", 1, 0 },
+ { "[^({}{95})B{1(\?>15}]x{f779}ZZ,Wo)O[:alpha:][:lowerprint:]{81,228}Q[:upperword:]", 0, 0 },
+ { "[[^[^()n[[[[[[[[[[[[^[[[[[[[[[[(\?: G)(\?{K![^m) j(\?:C|((\?:n*Xlaa908:n$m,))[:xdigit:]x(\?{{1a5cd}pppppppppppppp(\?(pppp)p(pQ)))ddddddddddddddddddddddddddddddd]q[:alnum:(\?{]Ga})\?})@[:lowerprint:]{,169}[:blankcntrl:][:graph:]]n{-76,}|U\"{,-54}t]I{}{-64,-232}]\?].\?{-111,227}) @hFp\?j=H$Wbu<{,209}De{,145}{206}-})[:blankcntrl:]", 0, 0 },
+ { "[^[^(LLLLLLLLLLLLLL[^L[L[:alpha:]3{,189}(\?#(\?>n){}^EXXXXXXXXXXXXXXXXXXXXXXXXX]c*)^r=$WWWWWWWWWWWWW", 0, 0 },
+ { ")w###################", 0, 0 },
+ { "{,121}[:d(\?(i)git:])E\?[:punct:]LLLLLLLLL[:ascii:]+", 0, 0 },
+ { "([]]]]]]]]]]]]][:space:]Jrt3o.]b)pwwwwwwwwwwwQfm~", 1, 0 },
+ { "[+-{,-120}*(\?!()t*(\?(\?{>G)F)yd]V{}f<\?}){245}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[:upperword:]", 0, 0 },
+ { "(DDDDDDDDDDDDDDDDDDDDDDDDDDDDDc[:space:][:pu[^nct:]{-11,12}[:ascii:][:alpha:]{,155}P])", 1, 0 },
+ { "()ggggggg{-136,-21}", 1, 0 },
+ { "([^((\?<=U\?)(\?=^^^^^^^^^^^[^^^^^^^^^^^^^///(\?#//[////////////////////(\?()#######b+]$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$^[:digit:])\\U]Q8@}4d)\\U", 1, 0 },
+ { "A[:graph(\?::])-mo=U[:upperword:]ttttttttttttttttttttttttttt", 0, 0 },
+ { "[^(((\?=\?im-m(sx:)c~~[^~~~~~~~~~~~~~(\?>~~~~~~~~~~~~~SSSSSSSSSSSSSSSSSSSS]{51,}[:digit:]{,-179}N))kk[kkkkkkkkkkkkkkg$)[(\?::punct:]zWl)]|)*", 0, 0 },
+ { "[((\?=()+A)][:graph:]x0B)[:graph:]", 0, 0 },
+ { "(nR%B[:blankcntrl:]C=|en-[:digit:]n[:graph:]HHHH[HH]D\?%[:digit:]MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.z(oF9zW8A7cfff(f))-[:blankcntrl:][:blankcntrl:]A[:digit:])D{,-243}", 3, 0 },
+ { "([[()]]{,-251(})\?L)uw@", 2, 0 },
+ { "\"|{(,-144})A.ooooooooo(ooooooFFFFFFFFFFFFF\?)n{,-18}", 2, 0 },
+ { "([^([(([[^([000000[0(0(\?!0(\?=0000000])45|E]", 1, 0 },
+ { "[B[[[[[[[[[[[|{}*oKqv%(\?<=wsQ{1pMeK1^6%nLNqi<@ge][:punct:]= M@* D|NwL\\-117\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"~Qnd]h.O\"01x:[:alpha:]^){}D}\"", 0, 0 },
+ { "([[RRRRRRRRRRRRRRRRRRRRRRRRRRRRxpSrx{7d79}*oJ2`Ft{n1,3g:1H@bT$D &[n/Cg)=ld@Ir{Fk>*4*`(\?>````````````````````(\?:`````.....................]]{,246})7 \"F4[^F|/g)]+e`rw@{,-69}H)", 1, 0 },
+ { "([(\?<=)X[:digit:]PP.[(\?#:((\?#\?#graph:])[:digit:][Q+)(N][:alpha:]]f)[:graph:])+Elllllllllllllllll[:digit:]=)pP{uU-20bzY|ZKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKt<c", 1, 0 },
+ { "[^(([^$(\?:(\?#w)[(\?::punct:]]d{-149,}[:ascii:])[:blankcntrl:]@@@@@[@@@@@@@@@@@@@@[:graph:][:xdigit:]O[:alpha:]2$-[:graph:])[:lowerprint:]-\?#S[:blankcntrl:][:alnum:]){-77,}]d[:digit:]N5v+Sqqqqqqq^% -I4]*.)^[:alnum:]JDfjMRU7ttttttttttttjjjjjjjjjjjjjjjjjjjjjjCCCCCCCCCCCCCCCCCCCD{,21}{0,67}[:graph:]{,208}B", -1, 0 },
+ { "(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[:ascii:])i{}[:lowerprint:]epxxxxxxxxxxxxxx[:lowerprint:]r-", 1, 0 },
+ { "([(^w(\?!)()])-s", 1, 0 },
+ { "[aIIIIIIIIIIIII(\?imsxims(\?=x:IIIIIIIm^NXXXXX(\?!(\?isximsx:XXXXXXXXXXXXXS0]F)z))+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr{,-237})ZZZZZZZZZZZZZZZZZZZZZZ", 0, 0 },
+ { "(Z)[:alpha:]", 1, 0 },
+ { "U#Z(=)", 1, 0 },
+ { "([:lowerprint:][:punct:])1cVb*[:xdigit:]&&&&&&&&&&&&&&&&&&&&&&&&O", 1, 0 },
+ { "()~K`3/[^*h[]G6[:upperw(\?()ord:]w)[:punct:]]{}", 1, 0 },
+ { "[[[]V[:digit(\?>:])|l*KKKKKKKKKKKKKKKKK,,,,,,,[,,,s.{148,}P33333][:lo(\?<!werprin(\?!t:]ZZZZZZZZZZZZZZZZZZZZZZZ]{,-229}{-160,}){,-211}XPPP].{}z[:alnum:][:alpha:(\?=]t{166,}uuuuu6]i*p(m))[:space:]E|S", 1, 0 },
+ { "[^(h(\?(\?({#2})(\?(\?#>Q){,57}%[:digit:]\?\?\?\?\?\?\?\?\?\?.[)]]d{)-49,}f)^O{,68})\?C", 0, 0 },
+ { "(}u])18621", 1, 0 },
+ { "[:as(\?=cii:][^(\?=)(S-{.F-[:punct:]3-105^[:lowerprint:]111111111111111111111111---)][:alnum:][:ascii:]JJJJJwHSk", -1, 0 },
+ { "[^3>>>>>>-sZ^^^^(\?>]Y[:di(\?(\?imxim:#git:]{-158,-102}[:punct:]{}{87,})))[:upperword:]", 0, 0 },
+ { "[(\?<!^r]$W){}*[:alpha:].[:digit:]", 0, 0 },
+ { "[:ascii(\?::[^])X]-", 0, 0 },
+ { "[([^]Z)[:upperword:]N{}*[:graph:]*^", 0, 0 },
+ { "([[(\?#^[(:graph:]]){205,}[:gr(aph:]T%]^MMMMMMMMMMMMMMMMMMMM){) <v\\[:digit:])", 1, 0 },
+ { "[^Y.h~b(\?<=~P{(\?=169,65}\?[^\?\?\?\?\?\?\?\?\?[\?\?\?\?\?\?\?\?\?K\"s`[yT7oP[:alpha:]{})]zrrrrrrrrrrrrrr)]KKKKKKKKKKKKKKK[:digit:]S][:lowerprint:][:digit:]", 0, 0 },
+ { "(s)", 1, 0 },
+ { "[u(\?!uuuuuuuuuuuuuuuuuuuu[:digit:]{,48}[:graph:]WL[:alnum:]]v=_)VN>{AjBBBBBBBBBBBBBBBBBBBBBBB[:upperword:]`'W)", 0, 0 },
+ { "[^([[()DN1[^][|]\?]{-104,}])[:space:]][:lowerprint:]r[:alpha:].DU", 0, 0 },
+ { "[^((33333333333333333333333(\?<=3333333D))kkkkkkkkkkkkkkkkkkkkkkk[k[:alpha:]])]X+", 0, 0 },
+ { "[({,-17})[@e{220,(\?#41}])]]{-213,-225}", 0, 0 },
+ { "[[^(\?#[(\?:^[[(\?(^]))]])]vvvvvvvvvvvvvvvvvvvvv{,96}|m]{-79,248}[:alpha:])", 0, 0 },
+ { "([[(\?imsisx:^}$,-[:al(\?>num:]Xqqqqqqqqqqqq{-185,154}]b#+T){-241,})A{-27}[(\?<!:lowerprint:]X)[:punct:]ME-]+BBBBBBBBBBBBBBBBa|{-40}M8mhgD 0HU]{16})", -1, 0 },
+ { "[^(\?>([\?()(\?#))]--R1rk^UnP.[(\?!:digit:]])^)[:upperword:]{}0000000000000000000000000000000~U{-139,-19}z<L-228", 0, 0 },
+ { "()-:=3uE$[:alnum:]bP%{-210,}", 1, 0 },
+ { "(U)7777]]]]]]]]]]]]]]]]]]]]]]]]]]]]]c::AA[:alpha:]{,3}f1{NzH@3lTf{}{", 1, 0 },
+ { "[C{(\?>})RR(\?=R<]p'N~&.-})6]", 0, 0 },
+ { "[^\?[^(\?(lFt]).[^7Q-])kkkkkkkkkkkk]XTFy\"1Deiv!,'xVK", 0, 0 },
+ { "[^$[^[:xdigit:](\?{*{245,99}h8v(\?!)]]u)Z[:punct:]})[:alnum:]+|[:blankcntrl:]u{}[:lowerprint:]+bBJ4+k-v{-116}", 0, 0 },
+ { "S)f{,180}[:graph:]&{12,244}", 0, 0 },
+ { "(([[(.()[^^{80(\?>(\?<=,235})ddddddddd[^ddddddddd(\?<=d.__B{36}````````````````(\?:```(\?>```````,,,,,,,(\?:,,)P$U,[:xdigit:])zzzzzzzzzzzzz]UUUU[uB]n<&[(:ascii:].][:alnum:])\?S]{})d{138,}s9========[:lowerprint:]]OOOOOOOOOOOOOOO|yyyyyyyyyyyyyyy$LZ[:lowerprint:]EEEEEEE[:ascii:][:punct:]VpP^{-48}D){,46}x))2P))a[:lowerprint:]r", 2, 0 },
+ { "[^(((\?<!):())PPPPPPPPPPPPPPP(\?=[PPPPPPP(\?{PPPPPPPP$)})77777777777777777]{,-57}::::::::::::(::::::::::::::::)]g{89}__________________[:xdigit:]l[:punct:])N", 1, 0 },
+ { ":02-k\?p3I7aEhJ\\265-[:space:]pP[:space:]x0F[:alnum:]aM4[:lowerprint:]sA@@@@@@@@@@@@@@@@@@@@@@@@@@@@", -1, 1 },
+ { "a[:upper(\?{word:]})X{-173,}-2F[:lowerprint:]", 0, 0 },
+ { "u,w<g*Q002S{,130}{239}[:lower(print:]cr{-165,}#$k<L/&)[:blankcntrl:]aaaaaaaaaaaaaaaaaaaaaa[:ascii:]", 0, 0 },
+ { "(xFA^{-161,93})U[:xdigit:]", 1, 0 },
+ { "[^(\?=]{})mE`", 0, 0 },
+ { "[[((\?(\?#:alnum:]])x6CS[:digit:]{-197,}.)N", 0, 0 },
+ { "[^(\?![])C*[:upp(erword:])-176]", 0, 0 },
+ { "[[^[[^[55555555555555555555555555(\?>555(\?<!555)S][]]A[:l(\?>owerp(rint:]])]*", 0, 0 },
+ { "Au)khgzAfXIZoZ=g[:digit:]){,186}Upvf=x<]Tbd5Rq\?.", 0, 0 },
+ { "b{-176,}B^[:bla(\?(<!nkcntrl:]{-6,133}#B :)<<<<<<<<<<<<<<<<<<<)[:alnum:]$}}}}}}}}}}}}}}}}}}}}}}}[:xdigit:]tw", 0, 0 },
+ { "(4IIIII(IIIIIIIIIIIIIIIII{})W{-152,-238}){,-56}^{-142,}", 2, 0 },
+ { "[^([[(\?(\?(!)>>>>>>>>>>>>>(>>>>>>>>D)Ix{(1(\?imxmsx:762)c}))A)[[[[[[[[[[[[[[5Rp]DDDDDDDDDDDDDDDDDDDD]Us+\\w[:digit:]{-47}[:xdigit:][:blankcntrl:])ddddddddddddddd[^ddddddddddddd[:digit:]|]]*{-165,-230}{-212}{53,}]\?", 0, 0 },
+ { "[^[^]]|[:(\?:alnum:])}}}}}}}}}}}}}}}}}}}}", 0, 0 },
+ { "VVVVVVVVVVVVVVVVVVVVVVVVVVVV[:d(i(\?#git:])){{{{{{[:digit:]ZfQ55555555{}Z", 0, 0 },
+ { "[L][:blankcnt(\?((\?=rl:(\?=]){-35,[^}){)eJb>>>>>>>>>>>>>>>>>>>>>>$ [:xdigit:]l0Tv2Tw2@C[:space:]Zc/{*)>]N3j~.dMBBBB", 0, 0 },
+ { "[[^(\?>(([]))])[:graph:]]{65,}as#Q:lQ", 0, 0 },
+ { "[^[fPPUUUUUUUUUUU(\?#UUU[^UUUUUU(\?<=UUUUUUUUUGGGGGGGGGGGGGGGGGGG((\?{\?=GGGGGG.MK))+]+)&UxFW)rwv\?@D.", 0, 0 },
+ { "{-(60,})m", 1, 0 },
+ { "b[(])^w", 0, 0 },
+ { "[][^qVs(\?:(p])X)\?'", 0, 0 },
+ { "()8", 1, 0 },
+ { "(t[:punc[^t:(\?{][:blankcntrl:])})[^8\?]z*]", 1, 0 },
+ { "[:lowerprint:])[:graph:]lppppppppppppppppppppppppppppf", 0, 0 },
+ { "[:alph(a:])[:ascii:]g +z-Bc-U{,%Gk", 0, 0 },
+ { "u[:graph:(\?=]*)W:::", 0, 0 },
+ { "([:alnum(:])l)", 1, 0 },
+ { "[[[}}}}}}}}(\?<!}}}}}}}+(\?{),,,,,,,,,,,,,,(\?!,,,,,,,,]99999999999&R[:ascii:]ZZZZ-{-10,}{96}Ed*][:graph:])]}){}{}G{-9,}", 0, 0 },
+ { "([^[{}]]Z[[^:graph:]{-47}55555555555555555555555555555[:ascii:]s]6,$:3qAew1Y)+)[:punct:]", 1, 0 },
+ { "[[[[[([[[[[[[[[[[[[[[[[[[[[[[[8!1i]')", 0, 0 },
+ { "([((\?(\?#>)(\?{,)At]%M9FSq5)EB", 1, 0 },
+ { "(}````````````````(``{210,})[:(\?#space:]P[:digit:])PP.{-227,}$pK~mm ImR|{,51}[:alnum:]<)[:alpha:]", 2, 0 },
+ { "[^(\?<=])[:digit:]", 0, 0 },
+ { "[^'''''''{(\?:178,}e{,16}$QQQQQQQQQQQQQQQQQQQQQQQ$])", 0, 0 },
+ { "[^(\?>@K*)(\?#d18]{78,}B)[:digit:]{-193,}=wg{,59}", 0, 0 },
+ { "[^.{156,}!(\?<=!!!!!!!!!!!!!!(\?{!(\?(!!!!!!!!!!!!!)})TTTTTTTTTTTTTTTTTTTTTTTTTTTTT[^}}}}}}}}}}}})}}}}}}}}}}}}}]]){}^L#%-{}FC", 0, 0 },
+ { "(eeeee{-169,-100}-fa[:upperword:]N)$Nellllllllllllll", 1, 0 },
+ { "[[(\?!())\?[(\?!:alnum:]e{,28}M])[:punct:]CCCCCCCCCCCCCCCCCCCC]{-150,}{-167}", 0, 0 },
+ { "[[@[@(\?#@[@]P]Z{')]{-186,117}]+)7f-", 0, 0 },
+ { "\\Q+kD}]AEM)u ", 0, 0 },
+ { "([(\?{(\?=:::::::::::::&){,210}]^})P{-31,}8[:space:]C[:alnum:][:a(scii:]z|[:upperword:])[:alnum:][:graph:])zr~Zk", 1, 0 },
+ { ".[:space:]e[:g(\?{(\?{raph:]})})@@@@@@@@@@@@@wb|~k", 0, 0 },
+ { "()ooooooooo\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"[:graph:]", 1, 0 },
+ { "[^64h(\?(@Eyw][:xdi[git:]pP%%%%%u(uuu[:up[perword:]`8Utdh{)}]]))lW[:punct:]W.hhhhhhhhhhhhhhhhhhhhhhhh'm<<}O8`ZXtG.$", 1, 0 },
+ { "BPP[:digit:]bbbbbbbbbbb(bb)S+[:alnum:]", 1, 0 },
+ { "um.[:ascii((\?#\?!:])*)+KKKKKKKKKKKKKKKKKKKKKKKKKS.=<Bf", 0, 0 },
+ { "", -1, 0 },
+ { "(()$[:lowerprint:][:s[pace:]2]bbbbbbbbbyoooooooooooooooooo*{39,}$')qV`AcH>,eDl", -1, 0 },
+ { "(()[^])e{-241,}", -1, 0 },
+ { "()[:alpha:]rliiiiiiii[:alnum:]Mb*QW9N.>\?{115,}&u*j", -1, 0 },
+ { "()[]p", -1, 0 },
+ { "(I[^]pfL)$[:punct:]", -1, 0 },
+ { "([])>>>>>>>>>>[:alnum:]", -1, 0 },
+ { "([])O\\\\\\\\\\\\\\fffffffffffffffffffffff=s6jCZy/b+ir2'*{151,}", -1, 0 },
+ { "([])nnnnnnnnnnnnnnnnnnnnnnnnnn[:xdigit:]^N$f", -1, 0 },
+ { "([]M)[:lowerprint:]a(pg$Z[:punct:])77777777777.", -1, 0 },
+ { "([]XXXXXXXXXXXXXXXXXXXXXX-===========)", -1, 0 },
+ { "([]lkX{-224}[:blankcntrl:]$gPKIZlSC#F@XX I'^}{234}yZm)uuuuuuuuuuuuuuuuuuuuuurS", -1, 0 },
+ { "([^0kYkg9])IIIIIIIIIIIIIIIIIIIIII/{(192,-118}l+FoSD6\?A)c[:xdigit:]`````````````````e-{-4,-170}x{4620}Z[:upperword:]", -1, 0 },
+ { "([^[^[^()(\?>){}B]XYF+#[:alpha:]{-85((,-55[^}t]n).{,-33}]](bQJ!|O+{175,})RFh)Z+^.{137,}:VpP[:alpha:]-MceqVVkkkk(kkkkkkkkkkkkkkkkkk)\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?{-115,-67})``````````````````````````````", -1, 0 },
+ { "([^]EzU[:alnum:]+^^^^^^^^^^^^^^^^^^^)[:xdigit:]HHHHHHHH$66666666666666666666666666666666UUUUUUUUUUUUUUUUUUUUL{}iiii{-76}X", -1, 0 },
+ { "([^]~~~~~~~~~~{240,})]NOp", -1, 0 },
+ { "(sb)[:digit:]VVVVVVVVx{9569}52,|]", -1, 0 },
+ { "(x{19762}){}", -1, 0 },
+ { "-[:xdigit:][]", -1, 0 },
+ { "121|", -1, 0 },
+ { "141[:xdigit:][:lowerprint:]{24}{59,191}[:digit:]/", -1, 0 },
+ { "G[^],,,,,,,,,,,,,+\"DiX", -1, 0 },
+ { "Gm(ho9:\"8{-188,-200}Z[:blankcntrl:]{,171}\?\?\?\?\?\?\?\?\?\?\?[:blankcntrl:]LLLLLLLLLLLLLLLLLLLLLLL{}^[:graph:][:blankc(\?#ntrl:])w", -1, 0 },
+ { "N\"\"\"\"\"\"\"-------------------------|[:alnum:]AAAAAAAAAAAAAAAAAAAAf\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?", -1, 0 },
+ { "U{-30,}^\?\?\?", -1, 0 },
+ { "W^*04rAY(Ee*>[^o3[]]_)", -1, 0 },
+ { "X[^]}*C[:alnum:]", -1, 0 },
+ { "[${,-3}]+^\?[|x8A|][:space:]'''''['''''JJJJJJJJJJJJJJJJJJJJJJJJJJJJJyl}.Y7G]", -1, 0 },
+ { "[()&[&&&]\?\?[\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?pg%k8ug`Wqk4|NR{h[CK5Ez=]jHpQw&`{:]{,91}D", -1, 0 },
+ { "[(\?#(\?:)[)([\?>)(\?>(\?:[:alnum:])]G]{85}[^)w]N]gYrUs|", -1, 0 },
+ { "[(\?<=)[:digit:]\?]{152,}VR|", -1, 0 },
+ { "[****(\?>**********(\?<!*******Q)Vr){[^25,}*:FFFFFFFFFFFFFFFFFFFFFFFF(\?{FFFF(({}D]|", -1, 0 },
+ { "[:ascii:]+{124,}:*]\?$-{92}D[:lowerprint:]`````````````````````", -1, 0 },
+ { "[:ascii:]\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?A<", -1, 0 },
+ { "[:blankcntrl:]p\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?$\?TTTTTTTTTTTTTTTTT[:ascii:][:upperword:]", -1, 0 },
+ { "[:punct:]{254}DDDDDDDDDDDDDDD@[:alpha:]Z\?\?-----R", -1, 0 },
+ { "[:upperword:]J\?\?nqCAdfyW5", -1, 0 },
+ { "[:upperword:]{-39}|", -1, 0 },
+ { "[:xdigit:]^\?", -1, 0 },
+ { "[Z*e ]NdmP\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?\?", -1, 0 },
+ { "[[:punct:]q]ex{15625}-", -1, 0 },
+ { "[[[^([^L((\?{b(\?=C\?]-134{,-207}[:ascii:]Hz}XIz}|", -1, 0 },
+ { "[[^V(\?:(\?<!(\?>))TTTTTTTTTTTTTTTTTTTTTTT)[:punct:][:digit:]]GGGGGGGGGGGGGGGGGGGGG,]|.{-224}{96}{239,}1", -1, 0 },
+ { "[[^^PP]{,-222}{182}{141}]zFD}-.", -1, 0 },
+ { "[] Hn&[:xdigit:][:upperword:]f", -1, 0 },
+ { "[]$.B", -1, 0 },
+ { "[]&&&&&&&&&&&&&&&&&&&&&&&", -1, 0 },
+ { "[]()[:xdigit:]er063{132,140}$", -1, 0 },
+ { "[]+1434", -1, 0 },
+ { "[]-", -1, 0 },
+ { "[]-#yyK", -1, 0 },
+ { "[]-(S$5)AxbdTKO[:alnum:]", -1, 0 },
+ { "[]2883", -1, 0 },
+ { "[]2dhd-[:alpha:]sssssssssssssssss55555555555555555555555555555555Z[:punct:]", -1, 0 },
+ { "[]4", -1, 0 },
+ { "[]44444444444444444G", -1, 0 },
+ { "[]\?", -1, 0 },
+ { "[]A", -1, 0 },
+ { "[]Gap8bc", -1, 0 },
+ { "[]OOOO", -1, 0 },
+ { "[]PP", -1, 0 },
+ { "[]QQ", -1, 0 },
+ { "[]WaFaGO,o", -1, 0 },
+ { "[]Z", -1, 0 },
+ { "[][:alpha:]|[:digit:]Ls$I-Ff~+xA3e", -1, 0 },
+ { "[][:ascii:]-218", -1, 0 },
+ { "[][:ascii:]N}}}}}}}}}}}}}}}-{137,}8682", -1, 0 },
+ { "[][:lowerprint:]Ur", -1, 0 },
+ { "[][:space:]15097", -1, 0 },
+ { "[][:xdigit:]", -1, 0 },
+ { "[]dpSSSSSSSS", -1, 0 },
+ { "[]e13768", -1, 0 },
+ { "[]gT", -1, 0 },
+ { "[]h", -1, 0 },
+ { "[]n", -1, 0 },
+ { "[]vvvvvvvvvvvvvvvvvvvvvvvvvv*[:xdigit:]", -1, 0 },
+ { "[]{,-212}1111111111111111111C3821", -1, 0 },
+ { "[]{-128,}hc", -1, 0 },
+ { "[]{-181,}&[:xdigit:].\?}}}}}}}}}}}}}}}}}}}}}}", -1, 0 },
+ { "[]{}F&}i`7|ZAH", -1, 0 },
+ { "[^(\?())u{196,}pP][r^ndddddddddddddddddddddd]{31,246}\?J", -1, 0 },
+ { "[^.ii.1-S]lwwwwwwwwwwwwwwwwww[^wwwwwwwwwwwwww[:alnum:]DOpP+<N][^]44{179}{-194,56}", -1, 0 },
+ { "[^2[:alnum:]]\?t\?\?", -1, 0 },
+ { "[^[((\?{[^^<<<<(\?(\?<!{)})(\?<!]{,184}{-213}|", -1, 0 },
+ { "[^[^[]\?{89,}PPsvf{[:space:]]]vd{161,}", -1, 0 },
+ { "[^[^].]+{0}s", -1, 0 },
+ { "[^]${}", -1, 0 },
+ { "[^]([:punct:]),%[:xdigit:]w^0\?{-233}", -1, 0 },
+ { "[^]-", -1, 0 },
+ { "[^].^", -1, 0 },
+ { "[^]6743", -1, 0 },
+ { "[^]JD", -1, 0 },
+ { "[^]N=[:upperword:]zzzzzzzzzzzzzzzzz.", -1, 0 },
+ { "[^]OLz_6", -1, 0 },
+ { "[^]PP[:digit:]0eBEx=", -1, 0 },
+ { "[^]SHzuKp", -1, 0 },
+ { "[^][:upperword:]{111}-TpmXw", -1, 0 },
+ { "[^]^''''''''z{-73,}", -1, 0 },
+ { "[^]^{,141}e", -1, 0 },
+ { "[^]aaaaaaaaaaaaaaaaaaa{-98,43}", -1, 0 },
+ { "[^]f", -1, 0 },
+ { "[^]l", -1, 0 },
+ { "[^]n\"Wt", -1, 0 },
+ { "[^]pPZ\?q+m0LJ+", -1, 0 },
+ { "[^]p[:upperword:]L:", -1, 0 },
+ { "[^]q\?{,-18}-", -1, 0 },
+ { "[^]s[:space:(\?<=]$", -1, 0 },
+ { "[^]{,58}t", -1, 0 },
+ { "[^]{255,}JJJJJJJJJJJJJJJJJJJJJJJJJJ", -1, 0 },
+ { "[^]{45}", -1, 0 },
+ { "[^]{W", -1, 0 },
+ { "[^]{}{-22}", -1, 0 },
+ { "[^]{}{}{}[:xdigit:]+", -1, 0 },
+ { "[^]|9{,-108}{}.LVIJJJJJJJJJJJJJJJPP", -1, 0 },
+ { "[^{,-254}]|", -1, 0 },
+ { "[o(\?{(\?<=}[))f++++++++++++++++777777777777777777777777yzPPs]\?\?dRRRRRRRRRRRRRRRRRRRRRRRRRRRR&]>%fffffffffff", -1, 0 },
+ { "aW|", -1, 0 },
+ { "cT{}[]C^r2``tm", -1, 0 },
+ { "kkkkkkkkkkkkkkkkkkkkkkk[:blankcntrl:]|{}3{26,}{151,}[:punct:]JJJlH$gP%(2WUE%%%%%%%%%%%%%%%%%%%%a){ibf{}\?", -1, 0 },
+ { "lZ\?\?\?\?\?\?\?\?\?\?\?-P2eZt[:punct:]", -1, 0 },
+ { "vF3qn[^]N.", -1, 0 },
+ { "wwwwwwwwwwwwww{-176,}275[^]>.UUUUUUUUUUUUUUUUUUUUeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2$Yd", -1, 0 },
+ { "{-197,223}bf]]]]]]]]]]\?&}/s\?\?~c", -1, 0 },
+ { "{-37,}EpP|", -1, 0 },
+ { "{}@]a[][:xdigit:]z{a", -1, 0 },
+ { "}02|", -1, 0 },
+ { "}}}}}}}}}(}}){}[llll]^N|", -1, 0 },
+ };
+ unsigned int i;
+ int r;
+
+ UNUSED(tc);
+
+#ifdef HAVE_REGEX_H
+ /*
+ * Check if we get the expected response.
+ */
+ for (i = 0; i < sizeof(tests)/sizeof(*tests); i++) {
+ regex_t preg;
+
+ memset(&preg, 0, sizeof(preg));
+ r = regcomp(&preg, tests[i].expression, REG_EXTENDED);
+ if (((r != 0 && tests[i].expect != -1) ||
+ (r == 0 && tests[i].expect == -1)) && !tests[i].exception)
+ fprintf(stderr, "regcomp(%s) -> %s expected %s\n",
+ tests[i].expression, r != 0 ? "bad" : "good",
+ tests[i].expect == -1 ? "bad" : "good");
+ else if (r == 0 &&
+ preg.re_nsub != (unsigned int)tests[i].expect &&
+ !tests[i].exception) {
+ fprintf(stderr, "%s preg.re_nsub %lu expected %d\n",
+ tests[i].expression,
+ (unsigned long)preg.re_nsub, tests[i].expect);
+ tests[i].expect = preg.re_nsub;
+ }
+ if (r == 0)
+ regfree(&preg);
+ }
+#endif
+
+ /*
+ * Check if we get the expected response.
+ */
+ for (i = 0; i < sizeof(tests)/sizeof(*tests); i++) {
+ r = isc_regex_validate(tests[i].expression);
+ if (r != tests[i].expect)
+ fprintf(stderr, "%s -> %d expected %d\n",
+ tests[i].expression, r, tests[i].expect);
+ ATF_CHECK_EQ(r, tests[i].expect);
+ }
+}
+
+/*
+ * Main
+ */
+ATF_TP_ADD_TCS(tp) {
+ ATF_TP_ADD_TC(tp, regex_validate);
+ return (atf_no_error());
+}
+
diff --git a/lib/isc/tests/symtab_test.c b/lib/isc/tests/symtab_test.c
index 21444b4c..39abd783 100644
--- a/lib/isc/tests/symtab_test.c
+++ b/lib/isc/tests/symtab_test.c
@@ -1,5 +1,5 @@
/*
- * 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
@@ -107,7 +107,7 @@ ATF_TC_BODY(symtab_grow, tc) {
snprintf(str, sizeof(str), "%04x", i);
result = isc_symtab_lookup(st, str, 0, &value);
ATF_CHECK_EQ(result, ISC_R_SUCCESS);
- ATF_CHECK_STREQ(str, value.as_pointer);
+ ATF_CHECK_STREQ(str, (char *)value.as_pointer);
}
/*
diff --git a/lib/isc/win32/libisc.def b/lib/isc/win32/libisc.def
index ccc9d5c5..8b698683 100644
--- a/lib/isc/win32/libisc.def
+++ b/lib/isc/win32/libisc.def
@@ -415,6 +415,11 @@ isc_os_ncpus
isc_parse_uint16
isc_parse_uint32
isc_parse_uint8
+isc_pool_count
+isc_pool_create
+isc_pool_destroy
+isc_pool_expand
+isc_pool_get
isc_portset_add
isc_portset_addrange
isc_portset_create
@@ -448,6 +453,7 @@ isc_ratelimiter_setinterval
isc_ratelimiter_setpertic
isc_ratelimiter_shutdown
isc_refcount_init
+isc_regex_validate
isc_region_compare
isc_resource_getcurlimit
isc_resource_getlimit
diff --git a/lib/isc/win32/libisc.dsp b/lib/isc/win32/libisc.dsp
index 6620613e..0d3131a8 100644
--- a/lib/isc/win32/libisc.dsp
+++ b/lib/isc/win32/libisc.dsp
@@ -463,6 +463,10 @@ SOURCE=..\include\isc\refcount.h
# End Source File
# Begin Source File
+SOURCE=..\include\isc\regex.h
+# End Source File
+# Begin Source File
+
SOURCE=..\include\isc\region.h
# End Source File
# Begin Source File
@@ -711,6 +715,10 @@ SOURCE=..\parseint.c
# End Source File
# Begin Source File
+SOURCE=..\pool.c
+# End Source File
+# Begin Source File
+
SOURCE=..\portset.c
# End Source File
# Begin Source File
@@ -735,6 +743,10 @@ SOURCE=..\refcount.c
# End Source File
# Begin Source File
+SOURCE=..\regex.c
+# End Source File
+# Begin Source File
+
SOURCE=..\region.c
# End Source File
# Begin Source File
diff --git a/lib/isc/win32/libisc.mak b/lib/isc/win32/libisc.mak
index 4bd5d1a7..cd0267e2 100644
--- a/lib/isc/win32/libisc.mak
+++ b/lib/isc/win32/libisc.mak
@@ -162,12 +162,14 @@ CLEAN :
-@erase "$(INTDIR)\ondestroy.obj"
-@erase "$(INTDIR)\os.obj"
-@erase "$(INTDIR)\parseint.obj"
+ -@erase "$(INTDIR)\pool.obj"
-@erase "$(INTDIR)\portset.obj"
-@erase "$(INTDIR)\quota.obj"
-@erase "$(INTDIR)\radix.obj"
-@erase "$(INTDIR)\random.obj"
-@erase "$(INTDIR)\ratelimiter.obj"
-@erase "$(INTDIR)\refcount.obj"
+ -@erase "$(INTDIR)\regex.obj"
-@erase "$(INTDIR)\region.obj"
-@erase "$(INTDIR)\resource.obj"
-@erase "$(INTDIR)\result.obj"
@@ -286,7 +288,9 @@ LINK32_OBJS= \
"$(INTDIR)\taskpool.obj" \
"$(INTDIR)\timer.obj" \
"$(INTDIR)\parseint.obj" \
+ "$(INTDIR)\pool.obj" \
"$(INTDIR)\portset.obj" \
+ "$(INTDIR)\regex.obj" \
"$(INTDIR)\region.obj"
"..\..\..\Build\Release\libisc.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
@@ -403,6 +407,8 @@ CLEAN :
-@erase "$(INTDIR)\os.sbr"
-@erase "$(INTDIR)\parseint.obj"
-@erase "$(INTDIR)\parseint.sbr"
+ -@erase "$(INTDIR)\pool.obj"
+ -@erase "$(INTDIR)\pool.sbr"
-@erase "$(INTDIR)\portset.obj"
-@erase "$(INTDIR)\portset.sbr"
-@erase "$(INTDIR)\quota.obj"
@@ -415,6 +421,8 @@ CLEAN :
-@erase "$(INTDIR)\ratelimiter.sbr"
-@erase "$(INTDIR)\refcount.obj"
-@erase "$(INTDIR)\refcount.sbr"
+ -@erase "$(INTDIR)\regex.obj"
+ -@erase "$(INTDIR)\regex.sbr"
-@erase "$(INTDIR)\region.obj"
-@erase "$(INTDIR)\region.sbr"
-@erase "$(INTDIR)\resource.obj"
@@ -555,7 +563,9 @@ BSC32_SBRS= \
"$(INTDIR)\taskpool.sbr" \
"$(INTDIR)\timer.sbr" \
"$(INTDIR)\parseint.sbr" \
+ "$(INTDIR)\pool.sbr" \
"$(INTDIR)\portset.sbr" \
+ "$(INTDIR)\regex.sbr" \
"$(INTDIR)\region.sbr"
"$(OUTDIR)\libisc.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
@@ -643,7 +653,9 @@ LINK32_OBJS= \
"$(INTDIR)\taskpool.obj" \
"$(INTDIR)\timer.obj" \
"$(INTDIR)\parseint.obj" \
+ "$(INTDIR)\pool.obj" \
"$(INTDIR)\portset.obj" \
+ "$(INTDIR)\regex.obj" \
"$(INTDIR)\region.obj"
"..\..\..\Build\Debug\libisc.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
@@ -1690,6 +1702,24 @@ SOURCE=..\parseint.c
!ENDIF
+SOURCE=..\pool.c
+
+!IF "$(CFG)" == "libisc - Win32 Release"
+
+
+"$(INTDIR)\pool.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF "$(CFG)" == "libisc - Win32 Debug"
+
+
+"$(INTDIR)\pool.obj" "$(INTDIR)\pool.sbr" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF
+
SOURCE=..\portset.c
!IF "$(CFG)" == "libisc - Win32 Release"
@@ -1798,6 +1828,25 @@ SOURCE=..\refcount.c
!ENDIF
+SOURCE=..\regex.c
+
+!IF "$(CFG)" == "libisc - Win32 Release"
+
+
+"$(INTDIR)\regex.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF "$(CFG)" == "libisc - Win32 Debug"
+
+
+"$(INTDIR)\regex.obj" "$(INTDIR)\regex.sbr" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF
+
+
SOURCE=..\region.c
!IF "$(CFG)" == "libisc - Win32 Release"
diff --git a/lib/isccfg/api b/lib/isccfg/api
index 6ed2ee97..4da80590 100644
--- a/lib/isccfg/api
+++ b/lib/isccfg/api
@@ -4,5 +4,5 @@
# 9.8: 80-89
# 9.9: 90-109
LIBINTERFACE = 90
-LIBREVISION = 3
+LIBREVISION = 4
LIBAGE = 0
diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c
index 541f078b..854d1b4e 100644
--- a/lib/isccfg/namedconf.c
+++ b/lib/isccfg/namedconf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -54,6 +54,9 @@ static isc_result_t
parse_enum_or_other(cfg_parser_t *pctx, const cfg_type_t *enumtype,
const cfg_type_t *othertype, cfg_obj_t **ret);
+static void
+doc_enum_or_other(cfg_printer_t *pctx, const cfg_type_t *type);
+
static isc_result_t
parse_keyvalue(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret);
@@ -559,6 +562,23 @@ static cfg_type_t cfg_type_updatemethod = {
&cfg_rep_string, &updatemethods_enums
};
+/*
+ * zone-statistics: full, terse, or none.
+ *
+ * for backward compatibility, we also support boolean values.
+ * yes represents "full", no represents "terse". in the future we
+ * may change no to mean "none".
+ */
+static const char *zonestat_enums[] = { "full", "terse", "none", NULL };
+static isc_result_t
+parse_zonestat(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
+ return (parse_enum_or_other(pctx, type, &cfg_type_boolean, ret));
+}
+static cfg_type_t cfg_type_zonestat = {
+ "zonestat", parse_zonestat, cfg_print_ustring, doc_enum_or_other,
+ &cfg_rep_string, zonestat_enums
+};
+
static cfg_type_t cfg_type_rrsetorder = {
"rrsetorder", cfg_parse_bracketed_list, cfg_print_bracketed_list, cfg_doc_bracketed_list,
&cfg_rep_list, &cfg_type_rrsetorderingelement
@@ -1030,10 +1050,9 @@ static cfg_type_t cfg_type_masterformat = {
* response-policy {
* zone <string> [ policy (given|disabled|passthru|
* nxdomain|nodata|cname <domain> ) ]
- * [ recursive-only yes|no ]
- * [ max-policy-ttl number ] ;
- * } [ recursive-only yes|no ] [ break-dnssec yes|no ]
- * [ max-policy-ttl number ] ;
+ * [ recursive-only yes|no ] [ max-policy-ttl number ] ;
+ * } [ recursive-only yes|no ] [ max-policy-ttl number ] ;
+ * [ break-dnssec yes|no ] [ min-ns-dots number ] ;
*/
static void
@@ -1235,6 +1254,7 @@ static cfg_tuplefielddef_t rpz_fields[] = {
{ "recursive-only", &cfg_type_boolean, 0 },
{ "break-dnssec", &cfg_type_boolean, 0 },
{ "max-policy-ttl", &cfg_type_uint32, 0 },
+ { "min-ns-dots", &cfg_type_uint32, 0 },
{ NULL, NULL, 0 }
};
static cfg_type_t cfg_type_rpz = {
@@ -1515,7 +1535,7 @@ zone_clauses[] = {
{ "update-check-ksk", &cfg_type_boolean, 0 },
{ "use-alt-transfer-source", &cfg_type_boolean, 0 },
{ "zero-no-soa-ttl", &cfg_type_boolean, 0 },
- { "zone-statistics", &cfg_type_boolean, 0 },
+ { "zone-statistics", &cfg_type_zonestat, 0 },
{ NULL, NULL, 0 }
};
diff --git a/lib/lwres/api b/lib/lwres/api
index e34aa945..6ed2ee97 100644
--- a/lib/lwres/api
+++ b/lib/lwres/api
@@ -4,5 +4,5 @@
# 9.8: 80-89
# 9.9: 90-109
LIBINTERFACE = 90
-LIBREVISION = 2
+LIBREVISION = 3
LIBAGE = 0
diff --git a/lib/lwres/getnameinfo.c b/lib/lwres/getnameinfo.c
index 92a34a15..08ebf937 100644
--- a/lib/lwres/getnameinfo.c
+++ b/lib/lwres/getnameinfo.c
@@ -1,5 +1,5 @@
/*
- * Portions Copyright (C) 2004, 2005, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Portions Copyright (C) 2004, 2005, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -161,7 +161,7 @@ int
lwres_getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
size_t hostlen, char *serv, size_t servlen, int flags)
{
- struct afd *afd;
+ struct afd *afd = NULL;
struct servent *sp;
unsigned short port;
#ifdef LWRES_PLATFORM_HAVESALEN
diff --git a/srcid b/srcid
index ce7a1bf4..43256b51 100644
--- a/srcid
+++ b/srcid
@@ -1 +1 @@
-SRCID=1c59cea1
+SRCID=aa7c2590
diff --git a/unit/atf-src/atf-c/macros_test.c b/unit/atf-src/atf-c/macros_test.c
index b11b207d..30c29463 100644
--- a/unit/atf-src/atf-c/macros_test.c
+++ b/unit/atf-src/atf-c/macros_test.c
@@ -442,8 +442,8 @@ H_CHECK_STREQ_MSG(2_1, "2", "1", "2 does not match 1");
H_CHECK_STREQ_MSG(2_2, "2", "2", "2 does not match 2");
#define CHECK_STREQ_VAR1 "5"
#define CHECK_STREQ_VAR2 "9"
-const const char *check_streq_var1 = CHECK_STREQ_VAR1;
-const const char *check_streq_var2 = CHECK_STREQ_VAR2;
+const char *check_streq_var1 = CHECK_STREQ_VAR1;
+const char *check_streq_var2 = CHECK_STREQ_VAR2;
H_CHECK_STREQ(vars, check_streq_var1, check_streq_var2);
ATF_TC(check_streq);
@@ -630,8 +630,8 @@ H_REQUIRE_STREQ_MSG(2_1, "2", "1", "2 does not match 1");
H_REQUIRE_STREQ_MSG(2_2, "2", "2", "2 does not match 2");
#define REQUIRE_STREQ_VAR1 "5"
#define REQUIRE_STREQ_VAR2 "9"
-const const char *require_streq_var1 = REQUIRE_STREQ_VAR1;
-const const char *require_streq_var2 = REQUIRE_STREQ_VAR2;
+const char *require_streq_var1 = REQUIRE_STREQ_VAR1;
+const char *require_streq_var2 = REQUIRE_STREQ_VAR2;
H_REQUIRE_STREQ(vars, require_streq_var1, require_streq_var2);
ATF_TC(require_streq);
diff --git a/version b/version
index d0c5a361..ebb36208 100644
--- a/version
+++ b/version
@@ -3,8 +3,9 @@
# This file must follow /bin/sh rules. It is imported directly via
# configure.
#
+PRODUCT=BIND
MAJORVER=9
MINORVER=9
PATCHVER=3
RELEASETYPE=b
-RELEASEVER=1
+RELEASEVER=2
diff --git a/win32utils/makeversion.pl b/win32utils/makeversion.pl
index afae0fe5..de812b41 100644
--- a/win32utils/makeversion.pl
+++ b/win32utils/makeversion.pl
@@ -92,11 +92,16 @@ print OUTVERSIONFILE '
';
+if ($Versions{'PATCHVER'} != "") {
$Version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}.$Versions{'PATCHVER'}";
+} else {
+ $Version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
+}
$Version = "$Version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
print "BIND Version: $Version\n";
-print OUTVERSIONFILE "#define VERSION \"$Version\"\n\n";
+print OUTVERSIONFILE "#define VERSION \"$Version\"\n";
+print OUTVERSIONFILE "#define PRODUCT \"$Versions{'PRODUCT'}\"\n\n";
foreach $dir (@dirlist) {
$apifile = "../lib/$dir/api";