diff options
author | Rob Austein <sra@hactrn.net> | 2007-07-07 17:04:37 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-07-07 17:04:37 +0000 |
commit | ed43d040bf72c2b8eb9d2cec3444556761b3c606 (patch) | |
tree | 57d47ba90cd2c6672f32f0a514c47058e23e3f90 | |
parent | 2d5c53975e6ddaec9ac3d49a70278fcdd584273d (diff) |
Add pow
svn path=/pow/POW-0.7/PKG-INFO; revision=722
-rw-r--r-- | pow/POW-0.7/PKG-INFO | 10 | ||||
-rw-r--r-- | pow/POW-0.7/POW.c | 7110 | ||||
-rw-r--r-- | pow/POW-0.7/README | 116 | ||||
-rwxr-xr-x | pow/POW-0.7/cfgparse.py | 120 | ||||
-rw-r--r-- | pow/POW-0.7/docs/POW.pdf | 17436 | ||||
-rw-r--r-- | pow/POW-0.7/docs/POW_pdf.dsl | 112 | ||||
-rwxr-xr-x | pow/POW-0.7/docs/doc.py | 52 | ||||
-rwxr-xr-x | pow/POW-0.7/docs/doc.sh | 13 | ||||
-rw-r--r-- | pow/POW-0.7/docs/doc.xsl | 188 | ||||
-rw-r--r-- | pow/POW-0.7/dumpasn1.cfg | 5276 | ||||
-rw-r--r-- | pow/POW-0.7/lib/__init__.py | 2 | ||||
-rw-r--r-- | pow/POW-0.7/lib/_der.py | 2281 | ||||
-rw-r--r-- | pow/POW-0.7/lib/_objects.py | 5944 | ||||
-rw-r--r-- | pow/POW-0.7/lib/_oids.py | 7102 | ||||
-rwxr-xr-x | pow/POW-0.7/lib/_simpledb.py | 55 | ||||
-rwxr-xr-x | pow/POW-0.7/lib/pkix.py | 1685 | ||||
-rw-r--r-- | pow/POW-0.7/setup.py | 38 | ||||
-rwxr-xr-x | pow/POW-0.7/test/test.py | 2128 | ||||
-rw-r--r-- | pow/README | 22 |
19 files changed, 49690 insertions, 0 deletions
diff --git a/pow/POW-0.7/PKG-INFO b/pow/POW-0.7/PKG-INFO new file mode 100644 index 00000000..e77ce266 --- /dev/null +++ b/pow/POW-0.7/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: POW +Version: 0.7 +Summary: Python OpenSSL Wrappers +Home-page: http://www.sourceforge.net/projects/pow +Author: Peter Shannon +Author-email: peter_shannon@yahoo.com +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN diff --git a/pow/POW-0.7/POW.c b/pow/POW-0.7/POW.c new file mode 100644 index 00000000..f1bdf4f4 --- /dev/null +++ b/pow/POW-0.7/POW.c @@ -0,0 +1,7110 @@ +/*****************************************************************************/ +/* */ +/* Copyright (c) 2001, 2002, Peter Shannon */ +/* All rights reserved. */ +/* */ +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ +/* */ +/* * Redistributions of source code must retain the above */ +/* copyright notice, this list of conditions and the following */ +/* disclaimer. */ +/* */ +/* * Redistributions in binary form must reproduce the above */ +/* copyright notice, this list of conditions and the following */ +/* disclaimer in the documentation and/or other materials */ +/* provided with the distribution. */ +/* */ +/* * The name of the contributors may be used to endorse or promote */ +/* products derived from this software without specific prior */ +/* written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS */ +/* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ +/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, */ +/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY */ +/* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */ +/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */ +/* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*****************************************************************************/ + +#include <Python.h> + +#include <openssl/crypto.h> +#include <openssl/rand.h> +#include <openssl/asn1.h> +#include <openssl/x509.h> +#include <openssl/x509v3.h> +#include <openssl/pem.h> +#include <openssl/ssl.h> +#include <openssl/evp.h> +#include <openssl/err.h> +#include <openssl/md5.h> +#include <openssl/md2.h> +#include <openssl/sha.h> +#include <openssl/hmac.h> + +#include <time.h> + +// semetric ciphers +#define DES_ECB 1 +#define DES_EDE 2 +#define DES_EDE3 3 +#define DES_CFB 4 +#define DES_EDE_CFB 5 +#define DES_EDE3_CFB 6 +#define DES_OFB 7 +#define DES_EDE_OFB 8 +#define DES_EDE3_OFB 9 +#define DES_CBC 10 +#define DES_EDE_CBC 11 +#define DES_EDE3_CBC 12 +#define DESX_CBC 13 +#define RC4 14 +#define RC4_40 15 +#define IDEA_ECB 16 +#define IDEA_CFB 17 +#define IDEA_OFB 18 +#define IDEA_CBC 19 +#define RC2_ECB 20 +#define RC2_CBC 21 +#define RC2_40_CBC 22 +#define RC2_CFB 23 +#define RC2_OFB 24 +#define BF_ECB 25 +#define BF_CBC 26 +#define BF_CFB 27 +#define BF_OFB 28 +#define CAST5_ECB 29 +#define CAST5_CBC 30 +#define CAST5_CFB 31 +#define CAST5_OFB 32 +#define RC5_32_12_16_CBC 33 +#define RC5_32_12_16_CFB 34 +#define RC5_32_12_16_ECB 35 +#define RC5_32_12_16_OFB 36 + +// SSL connection methods +#define SSLV2_SERVER_METHOD 1 +#define SSLV2_CLIENT_METHOD 2 +#define SSLV2_METHOD 3 +#define SSLV3_SERVER_METHOD 4 +#define SSLV3_CLIENT_METHOD 5 +#define SSLV3_METHOD 6 +#define TLSV1_SERVER_METHOD 7 +#define TLSV1_CLIENT_METHOD 8 +#define TLSV1_METHOD 9 +#define SSLV23_SERVER_METHOD 10 +#define SSLV23_CLIENT_METHOD 11 +#define SSLV23_METHOD 12 + +// SSL connection states + +// PEM encoded data types +#define RSA_PUBLIC_KEY 1 +#define RSA_PRIVATE_KEY 2 +#define DSA_PUBLIC_KEY 3 +#define DSA_PRIVATE_KEY 4 +#define DH_PUBLIC_KEY 5 +#define DH_PRIVATE_KEY 6 +#define X509_CERTIFICATE 7 +#define X_X509_CRL 8 //X509_CRL already used by OpenSSL library + +// asymmetric ciphers +#define RSA_CIPHER 1 +#define DSA_CIPHER 2 +#define DH_CIPHER 3 +#define NO_DSA +#define NO_DH + +// digests +#define MD2_DIGEST 1 +#define MD5_DIGEST 2 +#define SHA_DIGEST 3 +#define SHA1_DIGEST 4 +#define RIPEMD160_DIGEST 5 + +//object format +#define SHORTNAME_FORMAT 1 +#define LONGNAME_FORMAT 2 + +//output format +#define PEM_FORMAT 1 +#define DER_FORMAT 2 + +//object check functions +#define X_X509_Check(op) ((op)->ob_type == &x509type) +#define X_X509_store_Check(op) ((op)->ob_type == &x509_storetype) +#define X_X509_crl_Check(op) ((op)->ob_type == &x509_crltype) +#define X_X509_revoked_Check(op) ((op)->ob_type == &x509_revokedtype) +#define X_asymmetric_Check(op) ((op)->ob_type == &asymmetrictype) +#define X_symmetric_Check(op) ((op)->ob_type == &symmetrictype) +#define X_digest_Check(op) ((op)->ob_type == &digesttype) +#define X_hmac_Check(op) ((op)->ob_type == &hmactype) +#define X_ssl_Check(op) ((op)->ob_type == &ssltype) + +static char pow_module__doc__ [] = +"<moduleDescription>\n" +" <header>\n" +" <name>POW</name>\n" +" <author>Peter Shannon</author>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This third major release of POW addresses the most critical missing\n" +" parts of functionality, X509v3 support. Initially I thought adding\n" +" support via the OpenSSL code would be the easiest option but this\n" +" proved to be incorrect mainly due to the way I have chosen to handle\n" +" the complex data such as <classname>directoryNames</classname> and\n" +" <classname>generalNames</classname>. It is easier in python to\n" +" construct complex sets of data using lists and dictionaries than\n" +" coordinate large numbers of objects and method calls. This is no\n" +" criticism, it is just extremely easy. Coding complex data such as the\n" +" <classname>certificatePolicies</classname> coding coding routines in C\n" +" to handle the data proved laborous and ultimately error prone.\n" +" </para>\n" +" <para>\n" +" PKIX structures are supported by a few operations on the relevant POW\n" +" objects and through a Python library which is modelled on the DER\n" +" encoding rules. Modeling DER does expose some of the complexities of\n" +" the ASN1 specifications but avoids coding many assumptions into the\n" +" data structures and the interface for the objects. For an example of\n" +" overly complex definitions take a look at the\n" +" <classname>Name</classname> object in RFC3280. It is equally\n" +" important that modeling DER in the way leads to a library which is\n" +" trivial to extend to support new objects - simple objects are one\n" +" liners and complex objects only require the definition of a new\n" +" constructor.\n" +" </para>\n" +" <para>\n" +" functionality have been plugged. The <classname>Ssl</classname> class has received\n" +" several new features relating to security. Other areas have been\n" +" improved: PRNG support, certificate and CRL signing, certificate chain\n" +" and client verification. Many bugs have been fixed, and certain\n" +" parts of code re-written where necessary. I hope you enjoy using POW \n" +" and please feel free to send me feature requests and bug reports.\n" +" </para>\n" +" </body>\n" +"</moduleDescription>\n" +; + +/*========== Pre-definitions ==========*/ +static PyObject *SSLErrorObject; +static PyTypeObject x509type; +static PyTypeObject x509_storetype; +static PyTypeObject x509_crltype; +static PyTypeObject x509_revokedtype; +static PyTypeObject asymmetrictype; +static PyTypeObject symmetrictype; +static PyTypeObject digesttype; +static PyTypeObject hmactype; +static PyTypeObject ssltype; +/*========== Pre-definitions ==========*/ + +/*========== C stucts ==========*/ +typedef struct { + PyObject_HEAD + X509 *x509; +} x509_object; + +typedef struct { + PyObject_HEAD + X509_STORE *store; +} x509_store_object; + +typedef struct { + PyObject_HEAD + X509_CRL *crl; +} x509_crl_object; + +typedef struct { + PyObject_HEAD + X509_REVOKED *revoked; +} x509_revoked_object; + +typedef struct { + PyObject_HEAD + void *cipher; + int key_type; + int cipher_type; +} asymmetric_object; + +typedef struct { + PyObject_HEAD + EVP_CIPHER_CTX cipher_ctx; + int cipher_type; +} symmetric_object; + +typedef struct { + PyObject_HEAD + EVP_MD_CTX digest_ctx; + int digest_type; +} digest_object; + +typedef struct { + PyObject_HEAD + HMAC_CTX hmac_ctx; +} hmac_object; + +typedef struct { + PyObject_HEAD + int ctxset; + SSL *ssl; + SSL_CTX *ctx; +} ssl_object; +/*========== C stucts ==========*/ + +/*========== helper funcitons ==========*/ + +/* + Simple function to install a constant in the module name space. +*/ +static void +install_int_const( PyObject *d, char *name, int value ) +{ + PyObject *v = PyInt_FromLong( (long)value ); + if (!v || PyDict_SetItemString(d, name, v) ) + PyErr_Clear(); + + Py_XDECREF(v); +} + +int +docset_helper_add(PyObject *set, char *v) +{ + PyObject *value=NULL; + + if ( !(value = PyString_FromString(v) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( PyList_Append( set, value ) != 0) + goto error; + + return 1; + +error: + + Py_XDECREF(value); + return 0; +} + +/* + Generate an encrypion envelope. Saves a lot of space having thie case + statement in one place. +*/ +static EVP_CIPHER * +evp_cipher_factory(int cipher_type) +{ + switch(cipher_type) + { +#ifndef NO_DES + case DES_ECB: return EVP_des_ecb(); + case DES_EDE: return EVP_des_ede(); + case DES_EDE3: return EVP_des_ede3(); + case DES_CFB: return EVP_des_cfb(); + case DES_EDE_CFB: return EVP_des_ede_cfb(); + case DES_EDE3_CFB: return EVP_des_ede3_cfb(); + case DES_OFB: return EVP_des_ofb(); + case DES_EDE_OFB: return EVP_des_ede_ofb(); + case DES_EDE3_OFB: return EVP_des_ede3_ofb(); + case DES_CBC: return EVP_des_cbc(); + case DES_EDE_CBC: return EVP_des_ede_cbc(); + case DES_EDE3_CBC: return EVP_des_ede3_cbc(); + case DESX_CBC: return EVP_desx_cbc(); +#endif +#ifndef NO_RC4 + case RC4: return EVP_rc4(); + case RC4_40: return EVP_rc4_40(); +#endif +#ifndef NO_IDEA + case IDEA_ECB: return EVP_idea_ecb(); + case IDEA_CFB: return EVP_idea_cfb(); + case IDEA_OFB: return EVP_idea_ofb(); + case IDEA_CBC: return EVP_idea_cbc(); +#endif +#ifndef NO_RC2 + case RC2_ECB: return EVP_rc2_ecb(); + case RC2_CBC: return EVP_rc2_cbc(); + case RC2_40_CBC: return EVP_rc2_40_cbc(); + case RC2_CFB: return EVP_rc2_cfb(); + case RC2_OFB: return EVP_rc2_ofb(); +#endif +#ifndef NO_BF + case BF_ECB: return EVP_bf_ecb(); + case BF_CBC: return EVP_bf_cbc(); + case BF_CFB: return EVP_bf_cfb(); + case BF_OFB: return EVP_bf_ofb(); +#endif +#ifndef NO_CAST5 + case CAST5_ECB: return EVP_cast5_ecb(); + case CAST5_CBC: return EVP_cast5_cbc(); + case CAST5_CFB: return EVP_cast5_cfb(); + case CAST5_OFB: return EVP_cast5_ofb(); +#endif +#ifndef NO_RC5_32_12_16 + case RC5_32_12_16_CBC: return EVP_rc5_32_12_16_cbc(); + case RC5_32_12_16_CFB: return EVP_rc5_32_12_16_cfb(); + case RC5_32_12_16_ECB: return EVP_rc5_32_12_16_ecb(); + case RC5_32_12_16_OFB: return EVP_rc5_32_12_16_ofb(); +#endif + default: return NULL; + } +} + +static PyObject * +ssl_err_factory(int err) +{ + switch(err) + { + case SSL_ERROR_NONE: + return Py_BuildValue( "(is)", SSL_ERROR_NONE, "SSL_ERROR_NONE" ); + case SSL_ERROR_ZERO_RETURN: + return Py_BuildValue( "(is)", SSL_ERROR_ZERO_RETURN, "SSL_ERROR_ZERO_RETURN" ); + case SSL_ERROR_WANT_READ: + return Py_BuildValue( "(is)", SSL_ERROR_WANT_READ, "SSL_ERROR_WANT_READ" ); + case SSL_ERROR_WANT_WRITE: + return Py_BuildValue( "(is)", SSL_ERROR_WANT_WRITE, "SSL_ERROR_WANT_WRITE" ); + case SSL_ERROR_WANT_X509_LOOKUP: + return Py_BuildValue( "(is)", SSL_ERROR_WANT_X509_LOOKUP, "SSL_ERROR_WANT_X509_LOOKUP" ); + case SSL_ERROR_SYSCALL: + return Py_BuildValue( "(is)", SSL_ERROR_SYSCALL, "SSL_ERROR_SYSCALL" ); + case SSL_ERROR_SSL: + return Py_BuildValue( "(is)", SSL_ERROR_SSL, "SSL_ERROR_SSL" ); + + default: + return Py_BuildValue( "(is)", err, "UNKOWN_SSL_ERROR" ); + } +} + +static PyObject * +X509_object_helper_set_name(X509_NAME *name, PyObject *name_sequence) +{ + PyObject *pair = NULL; PyObject *type = NULL; PyObject *value = NULL; + int no_pairs = 0, i = 0, str_type = 0, nid; + char *valueptr = NULL, *typeptr = NULL; + + no_pairs = PySequence_Size( name_sequence ); + for (i=0; i < no_pairs; i++) + { + if ( ( pair = PySequence_GetItem( name_sequence, i ) ) == NULL ) + return NULL; + + if ( !( PyTuple_Check(pair) || PyList_Check(pair) ) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + if ( PySequence_Size(pair) != 2 ) + { PyErr_SetString( SSLErrorObject, "each name entry must have 2 elements" ); goto error; } + + if ( !(type = PySequence_GetItem( pair, 0 ) ) ) + { PyErr_SetString( PyExc_TypeError, "could not get type string" ); goto error; } + + if ( !PyString_Check(type) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + if ( !( value = PySequence_GetItem( pair, 1 ) ) ) + { PyErr_SetString( PyExc_TypeError, "could not get value string" ); goto error; } + + if ( !PyString_Check(value) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + typeptr = PyString_AsString(type); + valueptr = PyString_AsString(value); + + str_type = ASN1_PRINTABLE_type( valueptr, -1 ); + if ( !(nid = OBJ_ln2nid(typeptr)) ) + if ( !(nid = OBJ_sn2nid(typeptr)) ) + { PyErr_SetString( SSLErrorObject, "unknown ASN1 object" ); goto error; } + + if ( !X509_NAME_add_entry_by_NID( name, nid, str_type, valueptr, strlen(valueptr), -1, 0 ) ) + { PyErr_SetString( SSLErrorObject, "unable to add name entry" ); goto error; } + + Py_DECREF(pair); + Py_DECREF(type); + Py_DECREF(value); + pair = NULL; + type = NULL; + value = NULL; + } + return name_sequence; + +error: + + Py_XDECREF(pair); + Py_XDECREF(type); + Py_XDECREF(value); + + return NULL; +} + +static PyObject * +X509_object_helper_get_name(X509_NAME *name, int format) +{ + int no_entries=0, no_pairs=0, i=0, j=0, value_len=0, nid=0; + X509_NAME_ENTRY *entry=NULL; + char *value=NULL, long_name[512]; + const char *short_name; + + PyObject *result_list = NULL; + PyObject *pair = NULL; + PyObject *py_type = NULL; + PyObject *py_value = NULL; + + no_entries = X509_NAME_entry_count( name ); + + if ( !(result_list = PyTuple_New( no_entries ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + for(i=0; i<no_entries; i++) + { + if ( !(entry = X509_NAME_get_entry( name, i ) ) ) + { PyErr_SetString( SSLErrorObject, "could not get certificate name" ); goto error; } + + if (entry->value->length + 1 > value_len) + { + if (value) + free(value); + + if ( !(value = malloc( entry->value->length + 1 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + value_len = entry->value->length + 1; + } + memcpy( value, entry->value->data, entry->value->length ); + value[ entry->value->length ] = 0; + + if ( !(i2t_ASN1_OBJECT(long_name, sizeof(long_name), entry->object) ) ) + { PyErr_SetString( SSLErrorObject, "could not object name" ); goto error; } + + if ( format == SHORTNAME_FORMAT ) + { + nid = OBJ_ln2nid( long_name ); + short_name = OBJ_nid2sn( nid ); + py_type = PyString_FromString(short_name); + } + else if ( format == LONGNAME_FORMAT ) + py_type = PyString_FromString(long_name); + else + { PyErr_SetString( SSLErrorObject, "unkown name format" ); goto error; } + + py_value = PyString_FromString(value); + + if ( !(pair = PyTuple_New( 2 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + PyTuple_SetItem( pair, 0, py_type ); + PyTuple_SetItem( pair, 1, py_value ); + PyTuple_SetItem( result_list, i, pair ); + } + + if (value) + free(value); + + return result_list; + +error: + + if (value) + free(value); + + if (result_list) + { + no_pairs = PyTuple_Size( result_list ); + for (i=0; i < no_pairs; i++) + { + pair = PyTuple_GetItem( result_list, i ); + no_entries = PyTuple_Size( result_list ); + for (j=0; j < no_entries; j++) + { + py_value = PyTuple_GetItem( pair, i ); + Py_DECREF( py_value ); + } + } + } + + Py_XDECREF(py_type); + Py_XDECREF(py_value); + Py_XDECREF(result_list); + return NULL; +} +/*========== helper funcitons ==========*/ + +/*========== X509 code ==========*/ +static x509_object * +X509_object_new(void) +{ + x509_object *self; + + self = PyObject_New( x509_object, &x509type ); + if (self == NULL) + goto error; + + self->x509 = X509_new(); + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +/* + This function is pretty dumb. Most of the work is done by the module + function pow_module_pem_read(). +*/ +static x509_object * +X509_object_pem_read(BIO *in) +{ + x509_object *self; + + if ( !(self = PyObject_New( x509_object, &x509type ) ) ) + goto error; + + if( !(self->x509 = PEM_read_bio_X509( in, NULL, NULL, NULL ) ) ) + { PyErr_SetString( SSLErrorObject, "could not load PEM encoded certificate" ); goto error; } + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static x509_object * +X509_object_der_read(char *src, int len) +{ + x509_object *self; + unsigned char *ptr = src; + + if ( !(self = PyObject_New( x509_object, &x509type ) ) ) + goto error; + + self->x509 = X509_new(); + + if( !(d2i_X509( &self->x509, &ptr, len ) ) ) + { PyErr_SetString( SSLErrorObject, "could not load PEM encoded certificate" ); goto error; } + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +/* + Unlike the previous function this creates the BIO itself. The BIO_s_mem + is used as a buffer which the certificate is read into, from this buffer + it is read into a char[] and returned as a string. +*/ +static PyObject * +X509_object_write_helper(x509_object *self, PyObject *args, int format) +{ + int len=0; + char *buf=NULL; + BIO *out_bio=NULL; + PyObject *cert=NULL; + + if (!PyArg_ParseTuple(args, "")) + return NULL; + + out_bio = BIO_new(BIO_s_mem()); + + if (format == DER_FORMAT) + { + if (!i2d_X509_bio(out_bio, self->x509) ) + { PyErr_SetString( SSLErrorObject, "unable to write certificate" ); goto error; } + } + else if (format == PEM_FORMAT) + { + if (!PEM_write_bio_X509(out_bio, self->x509) ) + { PyErr_SetString( SSLErrorObject, "unable to write certificate" ); goto error; } + } + else + { PyErr_SetString( SSLErrorObject, "internal error, unkown output format" ); goto error; } + + if ( !(len = BIO_ctrl_pending(out_bio) ) ) + { PyErr_SetString( SSLErrorObject, "unable to get bytes stored in bio" ); goto error; } + + if ( !(buf = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( BIO_read( out_bio, buf, len ) != len ) + { PyErr_SetString( SSLErrorObject, "unable to write out cert" ); goto error; } + + cert = Py_BuildValue("s#", buf, len); + + BIO_free(out_bio); + free(buf); + return cert; + +error: + + if (out_bio) + BIO_free(out_bio); + + if (buf) + free(buf); + + Py_XDECREF(cert); + return NULL; +} + +static char X509_object_pem_write__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>pemWrite</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a PEM encoded certificate as a\n" +" string.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_pem_write(x509_object *self, PyObject *args) +{ + return X509_object_write_helper(self, args, PEM_FORMAT); +} + +static char X509_object_der_write__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>derWrite</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a DER encoded certificate as a\n" +" string.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_der_write(x509_object *self, PyObject *args) +{ + return X509_object_write_helper(self, args, DER_FORMAT); +} + +/* + Currently this function only supports RSA keys. +*/ +static char X509_object_set_public_key__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>setPublicKey</name>\n" +" <parameter>key</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets the public key for this certificate object. The\n" +" parameter <parameter>key</parameter> should be an instance of\n" +" <classname>Asymmetric</classname> containing a public key.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + + +static PyObject * +X509_object_set_public_key(x509_object *self, PyObject *args) +{ + EVP_PKEY *pkey=NULL; + asymmetric_object *asym; + + if (!PyArg_ParseTuple(args, "O!", &asymmetrictype, &asym)) + goto error; + + if ( !(pkey = EVP_PKEY_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !(EVP_PKEY_assign_RSA(pkey, asym->cipher) ) ) + { PyErr_SetString( SSLErrorObject, "EVP_PKEY assignment error" ); goto error; } + + if ( !(X509_set_pubkey(self->x509,pkey) ) ) + { PyErr_SetString( SSLErrorObject, "could not set certificate's public key" ); goto error; } + + return Py_BuildValue(""); + +error: + + if (pkey) + EVP_PKEY_free(pkey); + + return NULL; + +} + +static char X509_object_sign__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>sign</name>\n" +" <parameter>key</parameter>\n" +" <parameter>digest=MD5_DIGEST</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method signs a certificate with a private key. See the\n" +" example for the methods which should be invoked before signing a\n" +" certificate. <parameter>key</parameter> should be an instance of\n" +" <classname>Asymmetric</classname> containing a private key.\n" +" The optional parameter <parameter>digest</parameter> indicates \n" +" which digest function should be used to compute the hash to be \n" +" signed, it should be one of the following:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>MD2_DIGEST</constant></member>\n" +" <member><constant>MD5_DIGEST</constant></member>\n" +" <member><constant>SHA_DIGEST</constant></member>\n" +" <member><constant>SHA1_DIGEST</constant></member>\n" +" <member><constant>RIPEMD160_DIGEST</constant></member>\n" +" </simplelist>\n" +" </body>\n" +"</method>\n" +; + + +static PyObject * +X509_object_sign(x509_object *self, PyObject *args) +{ + EVP_PKEY *pkey=NULL; + asymmetric_object *asym; + int digest=MD5_DIGEST; + + if (!PyArg_ParseTuple(args, "O!|i", &asymmetrictype, &asym, &digest)) + goto error; + + if ( !(pkey = EVP_PKEY_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if (asym->key_type != RSA_PRIVATE_KEY) + { PyErr_SetString( SSLErrorObject, "cannot use this type of key" ); goto error; } + + if ( !(EVP_PKEY_assign_RSA(pkey, asym->cipher) ) ) + { PyErr_SetString( SSLErrorObject, "EVP_PKEY assignment error" ); goto error; } + + switch (digest) + { + case MD5_DIGEST: + { + if (!X509_sign(self->x509, pkey, EVP_md5() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case MD2_DIGEST: + { + if (!X509_sign(self->x509, pkey, EVP_md2() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case SHA_DIGEST: + { + if (!X509_sign(self->x509, pkey, EVP_sha() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case SHA1_DIGEST: + { + if (!X509_sign(self->x509, pkey, EVP_sha1() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case RIPEMD160_DIGEST: + { + if (!X509_sign(self->x509, pkey, EVP_ripemd160() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + } + + return Py_BuildValue(""); + +error: + + if (pkey) + EVP_PKEY_free(pkey); + + return NULL; + +} + +static char X509_object_get_version__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>getVersion</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns the version number from the version field of\n" +" this certificate. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + + +static PyObject * +X509_object_get_version(x509_object *self, PyObject *args) +{ + long version=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( !(version = X509_get_version( self->x509 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not get certificate version" ); goto error; } + + return Py_BuildValue("l", version); + +error: + + return NULL; +} + +static char X509_object_set_version__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>setVersion</name>\n" +" <parameter>version</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets the version number in the version field of\n" +" this certificate. <parameter>version</parameter> should be an\n" +" integer.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_set_version(x509_object *self, PyObject *args) +{ + long version=0; + + if (!PyArg_ParseTuple(args, "l", &version)) + goto error; + + if ( !X509_set_version( self->x509, version ) ) + { PyErr_SetString( SSLErrorObject, "could not set certificate version" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_object_get_serial__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>getSerial</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method get the serial number in the serial field of\n" +" this certificate.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_get_serial(x509_object *self, PyObject *args) +{ + long serial=0; + ASN1_INTEGER *asn1i=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( !(asn1i = X509_get_serialNumber( self->x509 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not get serial number" ); goto error; } + + if ( (serial = ASN1_INTEGER_get(asn1i) ) == -1 ) + { PyErr_SetString( SSLErrorObject, "could not convert ASN1 Integer to long" ); goto error; } + + return Py_BuildValue("l", serial); + +error: + + return NULL; +} + +static char X509_object_set_serial__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>setSerial</name>\n" +" <parameter>serial</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets the serial number in the serial field of\n" +" this certificate. <parameter>serial</parameter> should ba an\n" +" integer.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_set_serial(x509_object *self, PyObject *args) +{ + long serial=0; + ASN1_INTEGER *asn1i=NULL; + + if (!PyArg_ParseTuple(args, "l", &serial)) + goto error; + + if ( !(asn1i = ASN1_INTEGER_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !ASN1_INTEGER_set( asn1i, serial ) ) + { PyErr_SetString( SSLErrorObject, "could not set ASN1 integer" ); goto error; } + + if ( !X509_set_serialNumber( self->x509, asn1i ) ) + { PyErr_SetString( SSLErrorObject, "could not set certificate serial" ); goto error; } + + ASN1_INTEGER_free(asn1i); + + return Py_BuildValue(""); + +error: + + if (asn1i) + ASN1_INTEGER_free(asn1i); + + return NULL; +} + +static char X509_object_get_issuer__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>getIssuer</name>\n" +" <parameter>format=SHORTNAME_FORMAT</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a tuple containing the issuers name. Each\n" +" element of the tuple is a tuple with 2 elements. The first tuple\n" +" is an object name and the second is it's value. Both issuer and\n" +" subject are names distinguished normally composed of a small\n" +" number of objects:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>c</constant> or <constant>countryName</constant></member>\n" +" <member><constant>st</constant> or <constant>stateOrProvinceName</constant></member>\n" +" <member><constant>o</constant> or <constant>organizationName</constant></member>\n" +" <member><constant>l</constant> or <constant>localityName</constant></member>\n" +" <member><constant>ou</constant> or <constant>organizationalUnitName</constant></member>\n" +" <member><constant>cn</constant> or <constant>commonName</constant></member>\n" +" </simplelist>\n" +" <para>\n" +" The data type varies from one object to another, however, all the\n" +" common objects are strings. It would be possible to specify any\n" +" kind of object but that would certainly adversely effect\n" +" portability and is not recommended.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_get_issuer(x509_object *self, PyObject *args) +{ + PyObject *result_list = NULL; + X509_NAME *name = NULL; + int format=SHORTNAME_FORMAT; + + if (!PyArg_ParseTuple(args, "|i", &format)) + goto error; + + if ( !(name = X509_get_issuer_name( self->x509 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not get issuers name" ); goto error; } + + if ( !(result_list = X509_object_helper_get_name(name, format) ) ) + { PyErr_SetString( SSLErrorObject, "failed to produce name list" ); goto error; } + + return result_list; + +error: + + return NULL; +} + +static char X509_object_get_subject__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>getSubject</name>\n" +" <parameter>format=SHORTNAME_FORMAT</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a tuple containing the subjects name. See\n" +" <function>getIssuer</function> for a description of the returned\n" +" object's format.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_get_subject(x509_object *self, PyObject *args) +{ + PyObject *result_list = NULL; + X509_NAME *name = NULL; + int format=SHORTNAME_FORMAT; + + if (!PyArg_ParseTuple(args, "|i", &format)) + goto error; + + if ( !(name = X509_get_subject_name( self->x509 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not get issuers name" ); goto error; } + + if ( !(result_list = X509_object_helper_get_name(name, format) ) ) + { PyErr_SetString( SSLErrorObject, "failed to produce name list" ); goto error; } + + return result_list; + +error: + + return NULL; +} + +static char X509_object_set_subject__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>setSubject</name>\n" +" <parameter>name</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to set the subjects name.\n" +" <parameter>name</parameter> can be comprised of lists or tuples in\n" +" the format described in the <function>getIssuer</function> method.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_set_subject(x509_object *self, PyObject *args) +{ + PyObject *name_sequence = NULL; + X509_NAME *name = NULL; + + if (!PyArg_ParseTuple(args, "O", &name_sequence)) + goto error; + + if ( !( PyTuple_Check( name_sequence ) || PyList_Check(name_sequence) ) ) + { PyErr_SetString( PyExc_TypeError, "Inapropriate type" ); goto error; } + + if ( !(name = X509_NAME_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !X509_object_helper_set_name(name, name_sequence) ) + { PyErr_SetString( SSLErrorObject, "unable to set new name" ); goto error; } + + if ( !X509_set_subject_name(self->x509,name) ) + { PyErr_SetString( SSLErrorObject, "unable to set name" ); goto error; } + + X509_NAME_free(name); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_object_set_issuer__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>setIssuer</name>\n" +" <parameter>name</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to set the issuers name.\n" +" <parameter>name</parameter> can be comprised of lists or tuples in\n" +" the format described in the <function>getissuer</function> method.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_set_issuer(x509_object *self, PyObject *args) +{ + PyObject *name_sequence = NULL; + X509_NAME *name = NULL; + + if (!PyArg_ParseTuple(args, "O", &name_sequence)) + goto error; + + if ( !( PyTuple_Check( name_sequence ) || PyList_Check(name_sequence) ) ) + { PyErr_SetString( PyExc_TypeError, "Inapropriate type" ); goto error; } + + if ( !(name = X509_NAME_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !X509_object_helper_set_name(name, name_sequence) ) + { PyErr_SetString( SSLErrorObject, "unable to set new name" ); goto error; } + + if ( !X509_set_issuer_name(self->x509,name) ) + { PyErr_SetString( SSLErrorObject, "unable to set name" ); goto error; } + + X509_NAME_free(name); + + return Py_BuildValue(""); + +error: + + if (name) + X509_NAME_free(name); + + return NULL; +} + +static char X509_object_get_not_before__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>getNotBefore</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this function returns a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" + +; + +static PyObject * +X509_object_get_not_before (x509_object *self, PyObject *args) +{ + ASN1_UTCTIME *time; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + return Py_BuildValue("s", self->x509->cert_info->validity->notBefore->data); + +error: + + return NULL; +} + +static char X509_object_get_not_after__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>getNotAfter</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this function returns a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_get_not_after (x509_object *self, PyObject *args) +{ + ASN1_UTCTIME *time=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + return Py_BuildValue("s", self->x509->cert_info->validity->notAfter->data); + +error: + + return NULL; +} + +static char X509_object_set_not_after__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>setNotAfter</name>\n" +" <parameter>time</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this accepts one parameter, a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_set_not_after (x509_object *self, PyObject *args) +{ + //int new_time = 0; + char *new_time=NULL; + + if (!PyArg_ParseTuple(args, "s", &new_time)) + goto error; + + if ( !ASN1_UTCTIME_set_string(self->x509->cert_info->validity->notAfter, new_time) ) + { PyErr_SetString( SSLErrorObject, "could not set time" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_object_set_not_before__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>setNotBefore</name>\n" +" <parameter>time</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this accepts one parameter, a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_set_not_before (x509_object *self, PyObject *args) +{ + //int new_time = 0; + char *new_time=NULL; + + if (!PyArg_ParseTuple(args, "s", &new_time)) + goto error; + + if ( !ASN1_UTCTIME_set_string(self->x509->cert_info->validity->notBefore, new_time) ) + { PyErr_SetString( SSLErrorObject, "could not set time" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_object_add_extension__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>addExtension</name>\n" +" <parameter>extensionName</parameter>\n" +" <parameter>critical</parameter>\n" +" <parameter>extensionValue</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method adds an extension to this certificate.\n" +" <parameter>extensionName</parameter> should be the of the\n" +" extension. <parameter>critical</parameter> should an integer, 1\n" +" for true and 0 for false. <parameter>extensionValue</parameter>\n" +" should be a string, DER encoded value of the extension. The name\n" +" of the extension must be correct according to OpenSSL and can be\n" +" checked in the <constant>objects.h</constant> header file, part of\n" +" the OpenSSL source distribution. In the majority of cases they\n" +" are the same as those defined in <constant>POW._oids</constant>\n" +" but if you do encounter problems is may be worth checking.\n" +" </para>\n" +" <example>\n" +" <title><function>addExtension</function> method usage</title>\n" +" <programlisting>\n" +" basic = POW.pkix.BasicConstraints()\n" +" basic.set([1,5]) \n" +" serverCert.addExtension( 'basicConstraints', 0, basic.toString())\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_add_extension(x509_object *self, PyObject *args) +{ + int critical=0, nid=0; + char *name=NULL, *buf=NULL; + ASN1_OCTET_STRING *octetString=NULL; + X509_EXTENSION *extn=NULL; + + if (!PyArg_ParseTuple(args, "sis", &name, &critical, &buf)) + goto error; + + if ( !(octetString = M_ASN1_OCTET_STRING_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !ASN1_OCTET_STRING_set(octetString, buf, strlen(buf)) ) + { PyErr_SetString( SSLErrorObject, "could not set ASN1 Octect string" ); goto error; } + + if ( NID_undef == (nid = OBJ_txt2nid(name) ) ) + { PyErr_SetString( SSLErrorObject, "extension has unknown object identifier" ); goto error; } + + if ( !( extn = X509_EXTENSION_create_by_NID(NULL, nid, critical, octetString) ) ) + { PyErr_SetString( SSLErrorObject, "unable to create ASN1 X509 Extension object" ); goto error; } + + if (!self->x509->cert_info->extensions) + if ( !(self->x509->cert_info->extensions = sk_X509_EXTENSION_new_null() ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( !sk_X509_EXTENSION_push(self->x509->cert_info->extensions, extn) ) + { PyErr_SetString( SSLErrorObject, "unable to add extension" ); goto error; } + + return Py_BuildValue(""); + +error: + + if(extn) + X509_EXTENSION_free(extn); + + return NULL; +} + +static char X509_object_clear_extensions__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>clearExtensions</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method clears the structure which holds the extension for\n" +" this certificate.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_clear_extensions(x509_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (self->x509->cert_info->extensions) + { + sk_X509_EXTENSION_free(self->x509->cert_info->extensions); + self->x509->cert_info->extensions=NULL; + } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_object_count_extensions__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>countExtensions</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns the size of the structure which holds the\n" +" extension for this certificate.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_count_extensions(x509_object *self, PyObject *args) +{ + int num=0; + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (self->x509->cert_info->extensions) + { + num = sk_X509_EXTENSION_num(self->x509->cert_info->extensions); + return Py_BuildValue("i", num); + } + else + return Py_BuildValue("i", 0); + +error: + + return NULL; +} + +static char X509_object_get_extension__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>getExtension</name>\n" +" <parameter>index</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a tuple equivalent the parameters of\n" +" <function>addExtension</function>.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_object_get_extension(x509_object *self, PyObject *args) +{ + int num=0, index=0, ext_nid=0; + char const *ext_ln=NULL; + char unknown_ext [] = "unkown"; + X509_EXTENSION *ext; + if (!PyArg_ParseTuple(args, "i", &index)) + goto error; + + if (self->x509->cert_info->extensions) + { + num = sk_X509_EXTENSION_num(self->x509->cert_info->extensions); + } + else + num = 0; + + if (index >= num) + { PyErr_SetString( SSLErrorObject, "certificate does not have that many extensions" ); goto error; } + + if ( !(ext = sk_X509_EXTENSION_value(self->x509->cert_info->extensions, index) ) ) + { PyErr_SetString( SSLErrorObject, "could not get extension" ); goto error; } + + if ( NID_undef == (ext_nid = OBJ_obj2nid(ext->object) ) ) + { PyErr_SetString( SSLErrorObject, "extension has unknown object identifier" ); goto error; } + + if ( NULL == (ext_ln = OBJ_nid2sn(ext_nid) ) ) + ext_ln = unknown_ext; + + return Py_BuildValue("sis", ext_ln, ext->critical, ext->value->data ); + +error: + + return NULL; +} + +static char x509_object_pprint__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" <name>pprint</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a formatted string showing the information\n" +" held in the certificate.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_object_pprint(x509_object *self, PyObject *args) +{ + int len=0, ret=0; + char *buf=NULL; + BIO *out_bio=NULL; + PyObject *cert=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + out_bio = BIO_new(BIO_s_mem()); + + if (!X509_print(out_bio, self->x509) ) + { PyErr_SetString( SSLErrorObject, "unable to write crl" ); goto error; } + + if ( !(len = BIO_ctrl_pending(out_bio) ) ) + { PyErr_SetString( SSLErrorObject, "unable to get bytes stored in bio" ); goto error; } + + if ( !(buf = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( (ret = BIO_read( out_bio, buf, len ) ) != len ) + { PyErr_SetString( SSLErrorObject, "unable to write out cert" ); goto error; } + + cert = Py_BuildValue("s#", buf, len); + + BIO_free(out_bio); + free(buf); + return cert; + +error: + + if (out_bio) + BIO_free(out_bio); + + if (buf) + free(buf); + + return NULL; + +} + +static struct PyMethodDef X509_object_methods[] = { + {"pemWrite", (PyCFunction)X509_object_pem_write, METH_VARARGS, NULL}, + {"derWrite", (PyCFunction)X509_object_der_write, METH_VARARGS, NULL}, + {"sign", (PyCFunction)X509_object_sign, METH_VARARGS, NULL}, + {"setPublicKey", (PyCFunction)X509_object_set_public_key, METH_VARARGS, NULL}, + {"getVersion", (PyCFunction)X509_object_get_version, METH_VARARGS, NULL}, + {"setVersion", (PyCFunction)X509_object_set_version, METH_VARARGS, NULL}, + {"getSerial", (PyCFunction)X509_object_get_serial, METH_VARARGS, NULL}, + {"setSerial", (PyCFunction)X509_object_set_serial, METH_VARARGS, NULL}, + {"getIssuer", (PyCFunction)X509_object_get_issuer, METH_VARARGS, NULL}, + {"setIssuer", (PyCFunction)X509_object_set_issuer, METH_VARARGS, NULL}, + {"getSubject", (PyCFunction)X509_object_get_subject, METH_VARARGS, NULL}, + {"setSubject", (PyCFunction)X509_object_set_subject, METH_VARARGS, NULL}, + {"getNotBefore", (PyCFunction)X509_object_get_not_before, METH_VARARGS, NULL}, + {"getNotAfter", (PyCFunction)X509_object_get_not_after, METH_VARARGS, NULL}, + {"setNotAfter", (PyCFunction)X509_object_set_not_after, METH_VARARGS, NULL}, + {"setNotBefore", (PyCFunction)X509_object_set_not_before, METH_VARARGS, NULL}, + {"addExtension", (PyCFunction)X509_object_add_extension, METH_VARARGS, NULL}, + {"clearExtensions",(PyCFunction)X509_object_clear_extensions, METH_VARARGS, NULL}, + {"countExtensions",(PyCFunction)X509_object_count_extensions, METH_VARARGS, NULL}, + {"getExtension", (PyCFunction)X509_object_get_extension, METH_VARARGS, NULL}, + {"pprint", (PyCFunction)x509_object_pprint, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +X509_object_getattr(x509_object *self, char *name) +{ + return Py_FindMethod(X509_object_methods, (PyObject *)self, name); +} + +static void +X509_object_dealloc(x509_object *self, char *name) +{ + X509_free( self->x509 ); + PyObject_Del(self); +} + +static char x509type__doc__[] = +"<class>\n" +" <header>\n" +" <name>X509</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides access to a significant proportion of X509 \n" +" functionality of OpenSSL.\n" +" </para>\n" +"\n" +" <example>\n" +" <title><classname>x509</classname> class usage</title>\n" +" <programlisting>\n" +" privateFile = open('test/private.key', 'r')\n" +" publicFile = open('test/public.key', 'r')\n" +" certFile = open('test/cacert.pem', 'w')\n" +"\n" +" publicKey = POW.pemRead(POW.RSA_PUBLIC_KEY, publicFile.read())\n" +" privateKey = POW.pemRead(POW.RSA_PRIVATE_KEY, privateFile.read(), 'pass')\n" +"\n" +" c = POW.X509()\n" +"\n" +" name = [ ['C', 'GB'], ['ST', 'Hertfordshire'], \n" +" ['O','The House'], ['CN', 'Peter Shannon'] ]\n" +"\n" +" c.setIssuer( name )\n" +" c.setSubject( name )\n" +" c.setSerial(0)\n" +" t1 = POW.pkix.time2utc( time.time() ) \n" +" t2 = POW.pkix.time2utc( time.time() + 60*60*24*365) \n" +" c.setNotBefore(t1)\n" +" c.setNotAfter(t2)\n" +" c.setPublicKey(publicKey)\n" +" c.sign(privateKey)\n" +"\n" +" certFile.write( c.pemWrite() )\n" +"\n" +" privateFile.close()\n" +" publicFile.close()\n" +" certFile.close()\n" +" </programlisting>\n" +" </example>\n" +"\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject x509type = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "X509", /*tp_name*/ + sizeof(x509_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)X509_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)X509_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + x509type__doc__ /* Documentation string */ +}; +/*========== X509 Code ==========*/ + +/*========== x509 store Code ==========*/ +static x509_store_object * +x509_store_object_new(void) +{ + x509_store_object *self=NULL; + + self = PyObject_New( x509_store_object, &x509_storetype ); + if (self == NULL) + goto error; + + self->store = X509_STORE_new(); + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static char x509_store_object_verify__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Store</memberof>\n" +" <name>verify</name>\n" +" <parameter>certificate</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" The <classname>X509Store</classname> method\n" +" <function>verify</function> is based on the\n" +" <function>X509_verify_cert</function>. It handles certain aspects\n" +" of verification but not others. The certificate will be verified\n" +" against <constant>notBefore</constant>, \n" +" <constant>notAfter</constant> and trusted certificates.\n" +" It crucially will not handle checking the certificate against\n" +" CRLs. This functionality will probably make it into OpenSSL\n" +" 0.9.7.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_store_object_verify(x509_store_object *self, PyObject *args) +{ + X509_STORE_CTX csc; + x509_object *x509=NULL; + int result=0; + + if (!PyArg_ParseTuple(args, "O!", &x509type, &x509)) + goto error; + + X509_STORE_CTX_init( &csc, self->store, x509->x509, NULL ); + result = X509_verify_cert( &csc ); + + X509_STORE_CTX_cleanup( &csc ); + + return Py_BuildValue("i", result); + +error: + + return NULL; +} + +static char x509_store_object_verify_chain__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Store</memberof>\n" +" <name>verifyChain</name>\n" +" <parameter>certificate</parameter>\n" +" <parameter>chain</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" The <classname>X509Store</classname> method <function>verifyChain</function> \n" +" is based on the <function>X509_verify_cert</function> but is initialised \n" +" with a <classname>X509</classname> object to verify and list of \n" +" <classname>X509</classname> objects which form a chain to a trusted \n" +" certificate. Certain aspects of the verification are handled but not others. \n" +" The certificates will be verified against <constant>notBefore</constant>, \n" +" <constant>notAfter</constant> and trusted certificates. It crucially will \n" +" not handle checking the certificate against CRLs. This functionality will \n" +" probably make it into OpenSSL 0.9.7.\n" +" </para>\n" +" <para>\n" +" This may all sound quite straight forward but determining the \n" +" certificate associated with the signature on another certificate\n" +" can be very time consuming. The management aspects of\n" +" certificates are addressed by various V3 extensions which are not\n" +" currently supported.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_store_object_verify_chain(x509_store_object *self, PyObject *args) +{ + PyObject *x509_sequence=NULL; + X509_STORE_CTX csc; + x509_object *x509=NULL, *tmpX509=NULL; + STACK_OF(X509) *x509_stack=NULL; + int result=0, size=0, i=0; + + if (!PyArg_ParseTuple(args, "O!O", &x509type, &x509, &x509_sequence)) + goto error; + + if ( !( PyTuple_Check( x509_sequence ) || PyList_Check(x509_sequence) ) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + size = PySequence_Size( x509_sequence ); + + if (!(x509_stack = sk_X509_new_null() ) ) + { PyErr_SetString( SSLErrorObject, "could not create new x509 stack" ); goto error; } + + for (i=0; i < size; i++) + { + if ( !( tmpX509 = (x509_object*)PySequence_GetItem( x509_sequence, i ) ) ) + goto error; + + if ( !X_X509_Check( tmpX509 ) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + if (!sk_X509_push( x509_stack, tmpX509->x509 ) ) + { PyErr_SetString( SSLErrorObject, "could not add x509 to stack" ); goto error; } + Py_DECREF(tmpX509); + tmpX509 = NULL; + } + + X509_STORE_CTX_init( &csc, self->store, x509->x509, x509_stack ); + result = X509_verify_cert( &csc ); + + X509_STORE_CTX_cleanup( &csc ); + sk_X509_free(x509_stack); + return Py_BuildValue("i", result); + +error: + + if(x509_stack) + sk_X509_free(x509_stack); + + Py_XDECREF(tmpX509); + + return NULL; +} + +static char x509_store_object_add_trust__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Store</memberof>\n" +" <name>addTrust</name>\n" +" <parameter>cert</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method adds a new certificate to the store to be used in the\n" +" verification process. <parameter>cert</parameter> should be an\n" +" instance of <classname>X509</classname>. Using trusted certificates to manage\n" +" verification is relatively primitive, more sophisticated systems\n" +" can be constructed at an application level by by constructing\n" +" certificate chains to verify. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_store_object_add_trust(x509_store_object *self, PyObject *args) +{ + x509_object *x509=NULL; + + if (!PyArg_ParseTuple(args, "O!", &x509type, &x509)) + goto error; + + X509_STORE_add_cert( self->store, x509->x509 ); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char x509_store_object_add_crl__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Store</memberof>\n" +" <name>addCrl</name>\n" +" <parameter>crl</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method adds a CRL to a store to be used for verification.\n" +" <parameter>crl</parameter> should be an instance of\n" +" <classname>X509Crl</classname>.\n" +" Unfortunately, the current stable release of OpenSSL does not\n" +" support CRL checking for certificate verification.\n" +" This functionality will probably make it into OpenSSL 0.9.7, until\n" +" it does this function is useless and CRL verification must be\n" +" implemented by the application.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_store_object_add_crl(x509_store_object *self, PyObject *args) +{ + x509_crl_object *crl=NULL; + + if (!PyArg_ParseTuple(args, "O!", &x509_crltype, &crl)) + goto error; + + X509_STORE_add_crl( self->store, crl->crl ); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static struct PyMethodDef x509_store_object_methods[] = { + {"verify", (PyCFunction)x509_store_object_verify, METH_VARARGS, NULL}, + {"verifyChain", (PyCFunction)x509_store_object_verify_chain, METH_VARARGS, NULL}, + {"addTrust", (PyCFunction)x509_store_object_add_trust, METH_VARARGS, NULL}, + {"addCrl", (PyCFunction)x509_store_object_add_crl, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +x509_store_object_getattr(x509_store_object *self, char *name) +{ + return Py_FindMethod(x509_store_object_methods, (PyObject *)self, name); +} + +static void +x509_store_object_dealloc(x509_store_object *self, char *name) +{ + X509_STORE_free( self->store ); + PyObject_Del(self); +} + +static char x509_storetype__doc__[] = +"<class>\n" +" <header>\n" +" <name>X509Store</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides preliminary access to OpenSSL X509 verification\n" +" facilities.\n" +" </para>\n" +"\n" +" <example>\n" +" <title><classname>x509_store</classname> class usage</title>\n" +" <programlisting>\n" +" store = POW.X509Store()\n" +"\n" +" caFile = open( 'test/cacert.pem', 'r' )\n" +" ca = POW.pemRead( POW.X509_CERTIFICATE, caFile.read() )\n" +" caFile.close()\n" +"\n" +" store.addTrust( ca )\n" +"\n" +" certFile = open( 'test/foocom.cert', 'r' )\n" +" x509 = POW.pemRead( POW.X509_CERTIFICATE, certFile.read() )\n" +" certFile.close()\n" +"\n" +" print x509.pprint()\n" +" \n" +" if store.verify( x509 ):\n" +" print 'Verified certificate!.'\n" +" else:\n" +" print 'Failed to verify certificate!.'\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject x509_storetype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "X509Store", /*tp_name*/ + sizeof(x509_store_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)x509_store_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)x509_store_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + x509_storetype__doc__ /* Documentation string */ +}; +/*========== x509 store Code ==========*/ + +/*========== x509 crl Code ==========*/ +static x509_crl_object * +x509_crl_object_new(void) +{ + x509_crl_object *self=NULL; + + self = PyObject_New( x509_crl_object, &x509_crltype ); + if (self == NULL) + goto error; + + self->crl = X509_CRL_new(); + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static x509_crl_object * +x509_crl_object_pem_read(BIO *in) +{ + x509_crl_object *self; + + self = PyObject_New( x509_crl_object, &x509_crltype ); + if (self == NULL) + goto error; + + if( !(self->crl = PEM_read_bio_X509_CRL( in, NULL, NULL, NULL ) ) ) + { PyErr_SetString( SSLErrorObject, "could not load certificate" ); goto error; } + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static x509_crl_object * +x509_crl_object_der_read(char *src, int len) +{ + x509_crl_object *self; + unsigned char* ptr = src; + + if ( !(self = PyObject_New( x509_crl_object, &x509_crltype ) ) ) + goto error; + + self->crl = X509_CRL_new(); + + if( !(d2i_X509_CRL( &self->crl, &ptr, len ) ) ) + { PyErr_SetString( SSLErrorObject, "could not load PEM encoded CRL" ); goto error; } + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static char x509_crl_object_get_version__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>getVersion</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns the version number from the version field of\n" +" this CRL. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_get_version(x509_crl_object *self, PyObject *args) +{ + long version=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( (version = ASN1_INTEGER_get( self->crl->crl->version ) ) == -1 ) + { PyErr_SetString( SSLErrorObject, "could not get crl version" ); goto error; } + + return Py_BuildValue("l", version); + +error: + + return NULL; +} + +static char x509_crl_object_set_version__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>setVersion</name>\n" +" <parameter>version</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets the version number in the version field of\n" +" this CRL. <parameter>version</parameter> should be an\n" +" integer.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_set_version(x509_crl_object *self, PyObject *args) +{ + long version=0; + ASN1_INTEGER *asn1_version=NULL; + + if (!PyArg_ParseTuple(args, "i", &version)) + goto error; + + if ( !(asn1_version = ASN1_INTEGER_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !ASN1_INTEGER_set( asn1_version, version ) ) + { PyErr_SetString( SSLErrorObject, "could not get set version" ); goto error; } + + self->crl->crl->version = asn1_version; + + return Py_BuildValue(""); + +error: + + if (asn1_version) + ASN1_INTEGER_free(asn1_version); + + return NULL; +} + +static char x509_crl_object_get_issuer__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>getIssuer</name>\n" +" <parameter>format=SHORTNAME_FORMAT</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a tuple containing the issuers name. See the\n" +" <function>getIssuer</function> method of\n" +" <classname>X509</classname> for more details.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_get_issuer(x509_crl_object *self, PyObject *args) +{ + PyObject *result_list = NULL; + int format=SHORTNAME_FORMAT; + + if (!PyArg_ParseTuple(args, "|i", &format)) + goto error; + + if ( !(result_list = X509_object_helper_get_name(self->crl->crl->issuer, format) ) ) + { PyErr_SetString( SSLErrorObject, "failed to produce name list" ); goto error; } + + return result_list; + +error: + + return NULL; +} + +static char x509_crl_object_set_issuer__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>setIssuer</name>\n" +" <parameter>name</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to set the issuers name.\n" +" <parameter>name</parameter> can be comprised of lists or tuples in\n" +" the format described in the <function>getIssuer</function> method\n" +" of <classname>X509</classname>.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_set_issuer(x509_crl_object *self, PyObject *args) +{ + PyObject *name_sequence = NULL; + X509_NAME *name = NULL; + + if (!PyArg_ParseTuple(args, "O", &name_sequence)) + goto error; + + if ( !( PyTuple_Check( name_sequence ) || PyList_Check(name_sequence) ) ) + { PyErr_SetString( PyExc_TypeError, "Inapropriate type" ); goto error; } + + if ( !(name = X509_NAME_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !X509_object_helper_set_name(name, name_sequence) ) + { PyErr_SetString( SSLErrorObject, "unable to set new name" ); goto error; } + + if ( !X509_NAME_set(&self->crl->crl->issuer,name ) ) + { PyErr_SetString( SSLErrorObject, "unable to set name" ); goto error; } + + X509_NAME_free(name); + + return Py_BuildValue(""); + +error: + + if (name) + X509_NAME_free(name); + + return NULL; +} + +static char x509_crl_object_set_this_update__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>setThisUpdate</name>\n" +" <parameter>time</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this accepts one parameter, a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_set_this_update (x509_crl_object *self, PyObject *args) +{ + //int new_time = 0; + char *new_time=NULL; + + if (!PyArg_ParseTuple(args, "s", &new_time)) + goto error; + + if ( !ASN1_UTCTIME_set_string(self->crl->crl->lastUpdate,new_time) ) + { PyErr_SetString( SSLErrorObject, "could not set time" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char x509_crl_object_get_this_update__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>getThisUpdate</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this function returns a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_get_this_update (x509_crl_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + return Py_BuildValue("s", self->crl->crl->lastUpdate->data); + +error: + + return NULL; +} + +static char x509_crl_object_set_next_update__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>setNextUpdate</name>\n" +" <parameter>time</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this accepts one parameter, a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_set_next_update (x509_crl_object *self, PyObject *args) +{ + //int new_time = 0; + char *new_time=NULL; + ASN1_UTCTIME *time=NULL; + + if (!PyArg_ParseTuple(args, "s", &new_time)) + goto error; + + if (self->crl->crl->nextUpdate == NULL) + if ( !(time = ASN1_UTCTIME_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + self->crl->crl->nextUpdate = time; + + if (!ASN1_UTCTIME_set_string(time, new_time) ) + { PyErr_SetString( SSLErrorObject, "could not set next update" ); goto error; } + + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char x509_crl_object_get_next_update__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>getNextUpdate</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this function returns a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_get_next_update (x509_crl_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + return Py_BuildValue("s", self->crl->crl->nextUpdate->data); + +error: + + return NULL; +} + +static char x509_crl_object_set_revoked__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>setRevoked</name>\n" +" <parameter>revoked</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets the sequence of revoked certificates in this CRL.\n" +" <parameter>revoked</parameter> should be a list or tuple of \n" +" <classname>X509Revoked</classname>.\n" +" </para>\n" +" <example>\n" +" <title><function>setRevoked</function> function usage</title>\n" +" <programlisting>\n" +" privateFile = open('test/private.key', 'r')\n" +" publicFile = open('test/public.key', 'r')\n" +" crlFile = open('test/crl.pem', 'w')\n" +"\n" +" publicKey = POW.pemRead(POW.RSA_PUBLIC_KEY, publicFile.read())\n" +" privateKey = POW.pemRead(POW.RSA_PRIVATE_KEY, privateFile.read(), 'pass')\n" +"\n" +" crl = POW.X509Crl()\n" +"\n" +" name = [ ['C', 'GB'], ['ST', 'Hertfordshire'], \n" +" ['O','The House'], ['CN', 'Peter Shannon'] ]\n" +"\n" +" t1 = POW.pkix.time2utc( time.time() ) \n" +" t2 = POW.pkix.time2utc( time.time() + 60*60*24*365) \n" +" crl.setIssuer( name )\n" +" rev = [ POW.X509Revoked(3, t1),\n" +" POW.X509Revoked(4, t1),\n" +" POW.X509Revoked(5, t1) ]\n" +"\n" +" crl.setRevoked( rev )\n" +" crl.setThisUpdate(t1)\n" +" crl.setNextUpdate(t2)\n" +" crl.sign(privateKey)\n" +"\n" +" crlFile.write( crl.pemWrite() )\n" +"\n" +" privateFile.close()\n" +" publicFile.close()\n" +" crlFile.close()\n" +" </programlisting>\n" +" </example>\n" +"\n" +" </body>\n" +"</method>\n" +; + +// added because we don't already have one! +static X509_REVOKED * +X509_REVOKED_dup(X509_REVOKED *rev) +{ + return((X509_REVOKED *)ASN1_dup((int (*)())i2d_X509_REVOKED, + (char *(*)())d2i_X509_REVOKED,(char *)rev)); +} + +static PyObject * +x509_crl_object_set_revoked(x509_crl_object *self, PyObject *args) +{ + PyObject *revoked_sequence = NULL; + x509_revoked_object *revoked = NULL; + STACK_OF(X509_REVOKED) *revoked_stack = NULL; + X509_REVOKED *tmp_revoked = NULL; + int i=0,size=0; + + if (!PyArg_ParseTuple(args, "O", &revoked_sequence)) + goto error; + + if ( !( PyTuple_Check( revoked_sequence ) || PyList_Check(revoked_sequence) ) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + revoked_stack = self->crl->crl->revoked; + + size = PySequence_Size( revoked_sequence ); + for (i=0; i < size; i++) + { + if ( !( revoked = (x509_revoked_object*)PySequence_GetItem( revoked_sequence, i ) ) ) + goto error; + + if ( !X_X509_revoked_Check( revoked ) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + if ( !(tmp_revoked = X509_REVOKED_dup( revoked->revoked ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if (!sk_X509_REVOKED_push( revoked_stack, tmp_revoked ) ) + { PyErr_SetString( SSLErrorObject, "could not add revokation to stack" ); goto error; } + + Py_DECREF(revoked); + revoked = NULL; + } + + return Py_BuildValue(""); + +error: + + Py_XDECREF(revoked); + + return NULL; +} + +static PyObject * +x509_crl_object_helper_get_revoked(STACK_OF(X509_REVOKED) *revoked) +{ + int no_entries=0, inlist=0, i=0; + X509_REVOKED *revoke_tmp=NULL; + x509_revoked_object *revoke_obj=NULL; + PyObject *item=NULL, *result_list=NULL, *result_tuple=NULL; + + no_entries = sk_X509_REVOKED_num( revoked ); + + if ( !(result_list = PyList_New(0) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + for(i=0; i<no_entries; i++) + { + if ( !(revoke_obj = PyObject_New( x509_revoked_object, &x509_revokedtype ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !(revoke_tmp = sk_X509_REVOKED_value( revoked, i ) ) ) + { PyErr_SetString( SSLErrorObject, "could not get revocation" ); goto error; } + + revoke_obj->revoked = revoke_tmp; + + if ( PyList_Append( result_list, (PyObject*)revoke_obj ) != 0) + goto error; + + revoke_obj = NULL; revoke_tmp = NULL; + } + + result_tuple = PyList_AsTuple( result_list ); + Py_DECREF(result_list); + + return Py_BuildValue("O", result_tuple); + +error: + + if (result_list) + { + inlist = PyList_Size( result_list ); + for (i=0; i < inlist; i++) + { + item = PyList_GetItem( result_list, i ); + Py_DECREF(item); + } + Py_DECREF(result_list); + } + + return NULL; +} + +static char x509_crl_object_get_revoked__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>getRevoked</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a tuple of <classname>X509Revoked</classname>\n" +" objects described in the CRL.\n" +" </para>\n" +" <example>\n" +" <title><function>getRevoked</function> function usage</title>\n" +" <programlisting>\n" +" publicFile = open('test/public.key', 'r')\n" +" crlFile = open('test/crl.pem', 'r')\n" +"\n" +" publicKey = POW.pemRead(POW.RSA_PUBLIC_KEY, publicFile.read())\n" +"\n" +" crl = POW.pemRead( POW.X509_CRL, crlFile.read() )\n" +"\n" +" print crl.pprint()\n" +" if crl.verify( publicKey ):\n" +" print 'signature ok!'\n" +" else:\n" +" print 'signature not ok!'\n" +"\n" +" revocations = crl.getRevoked()\n" +" for revoked in revocations:\n" +" print 'serial number:', revoked.getSerial()\n" +" print 'date:', time.ctime( revoked.getDate()[0] )\n" +"\n" +" publicFile.close()\n" +" crlFile.close()\n" +" </programlisting>\n" +" </example>\n" +"\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_get_revoked(x509_crl_object *self, PyObject *args) +{ + PyObject *revoked = NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + revoked = x509_crl_object_helper_get_revoked( X509_CRL_get_REVOKED(self->crl) ); + + return revoked; + +error: + + return NULL; +} + +static char X509_crl_object_add_extension__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>addExtension</name>\n" +" <parameter>extensionName</parameter>\n" +" <parameter>critical</parameter>\n" +" <parameter>extensionValue</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method adds an extension to this CRL.\n" +" <parameter>extensionName</parameter> should be the of the\n" +" extension. <parameter>critical</parameter> should an integer, 1\n" +" for true and 0 for clase. <parameter>extensionValue</parameter>\n" +" should be a string, DER encoded value of the extension. The name\n" +" of the extension must be correct according to OpenSSL and can be\n" +" checkd in the <constant>objects.h</constant> header file, part of\n" +" the OpenSSL source distrobution. In the majority of cases they\n" +" are the same as those defined in <constant>POW._oids</constant>\n" +" but if you do encounter problems is may be worth checking.\n" +" </para>\n" +" <example>\n" +" <title><function>addExtension</function> method usage</title>\n" +" <programlisting>\n" +" oids = POW.pkix.OidData()\n" +" o2i = oids.obj2oid\n" +"\n" +" n1 = ('directoryName', ( (( o2i('countryName'), ('printableString', 'UK') ),), \n" +" (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), \n" +" (( o2i('organizationName'), ('printableString', 'The House') ),),\n" +" (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) ) \n" +"\n" +" n2 = ('rfc822Name', 'peter_shannon@yahoo.com')\n" +" n3 = ('uri', 'http://www.p-s.org.uk') \n" +" n4 = ('iPAddress', (192,168,100,51)) \n" +"\n" +" issuer = POW.pkix.IssuerAltName()\n" +" issuer.set([n1,n2,n3,n4]) \n" +" crl.addExtension( 'issuerAltName', 0, issuer.toString() )\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_crl_object_add_extension(x509_crl_object *self, PyObject *args) +{ + int critical=0, nid=0; + char *name=NULL, *buf=NULL; + ASN1_OCTET_STRING *octetString=NULL; + X509_EXTENSION *extn=NULL; + + if (!PyArg_ParseTuple(args, "sis", &name, &critical, &buf)) + goto error; + + if ( !(octetString = M_ASN1_OCTET_STRING_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !ASN1_OCTET_STRING_set(octetString, buf, strlen(buf)) ) + { PyErr_SetString( SSLErrorObject, "could not set ASN1 Octect string" ); goto error; } + + if ( NID_undef == (nid = OBJ_txt2nid(name) ) ) + { PyErr_SetString( SSLErrorObject, "extension has unknown object identifier" ); goto error; } + + if ( !( extn = X509_EXTENSION_create_by_NID(NULL, nid, critical, octetString) ) ) + { PyErr_SetString( SSLErrorObject, "unable to create ASN1 X509 Extension object" ); goto error; } + + if (!self->crl->crl->extensions) + if ( !(self->crl->crl->extensions = sk_X509_EXTENSION_new_null() ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( !sk_X509_EXTENSION_push(self->crl->crl->extensions, extn) ) + { PyErr_SetString( SSLErrorObject, "unable to add extension" ); goto error; } + + return Py_BuildValue(""); + +error: + + if(extn) + X509_EXTENSION_free(extn); + + return NULL; +} + +static char X509_crl_object_clear_extensions__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>clearExtensions</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method clears the structure which holds the extension for\n" +" this CRL.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_crl_object_clear_extensions(x509_crl_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (self->crl->crl->extensions) + { + sk_X509_EXTENSION_free(self->crl->crl->extensions); + self->crl->crl->extensions=NULL; + } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_crl_object_count_extensions__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>countExtensions</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns the size of the structure which holds the\n" +" extension for this CRL.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_crl_object_count_extensions(x509_crl_object *self, PyObject *args) +{ + int num=0; + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (self->crl->crl->extensions) + { + num = sk_X509_EXTENSION_num(self->crl->crl->extensions); + return Py_BuildValue("i", num); + } + else + return Py_BuildValue("i", 0); + +error: + + return NULL; +} + +static char X509_crl_object_get_extension__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>getExtension</name>\n" +" <parameter>index</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a tuple equivalent the parameters of\n" +" <function>addExtension</function>.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_crl_object_get_extension(x509_crl_object *self, PyObject *args) +{ + int num=0, index=0, ext_nid=0; + char const *ext_ln=NULL; + char unknown_ext [] = "unkown"; + X509_EXTENSION *ext; + if (!PyArg_ParseTuple(args, "i", &index)) + goto error; + + if (self->crl->crl->extensions) + { + num = sk_X509_EXTENSION_num(self->crl->crl->extensions); + } + else + num = 0; + + if (index >= num) + { PyErr_SetString( SSLErrorObject, "certificate does not have that many extensions" ); goto error; } + + if ( !(ext = sk_X509_EXTENSION_value(self->crl->crl->extensions, index) ) ) + { PyErr_SetString( SSLErrorObject, "could not get extension" ); goto error; } + + if ( NID_undef == (ext_nid = OBJ_obj2nid(ext->object) ) ) + { PyErr_SetString( SSLErrorObject, "extension has unknown object identifier" ); goto error; } + + if ( NULL == (ext_ln = OBJ_nid2sn(ext_nid) ) ) + ext_ln = unknown_ext; + + return Py_BuildValue("sis", ext_ln, ext->critical, ext->value->data ); + +error: + + return NULL; +} + +static char x509_crl_object_sign__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>sign</name>\n" +" <parameter>key</parameter>\n" +" <parameter>digest=MD5_DIGEST</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" <parameter>key</parameter> should be an instance of\n" +" <classname>Asymmetric</classname> and contain a private key.\n" +" <parameter>digest</parameter> indicates \n" +" which digest function should be used to compute the hash to be \n" +" signed, it should be one of the following:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>MD2_DIGEST</constant></member>\n" +" <member><constant>MD5_DIGEST</constant></member>\n" +" <member><constant>SHA_DIGEST</constant></member>\n" +" <member><constant>SHA1_DIGEST</constant></member>\n" +" <member><constant>RIPEMD160_DIGEST</constant></member>\n" +" </simplelist>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_sign(x509_crl_object *self, PyObject *args) +{ + EVP_PKEY *pkey=NULL; + asymmetric_object *asym; + int digest=MD5_DIGEST; + + if (!PyArg_ParseTuple(args, "O!|i", &asymmetrictype, &asym, &digest)) + goto error; + + if ( !(pkey = EVP_PKEY_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if (asym->key_type != RSA_PRIVATE_KEY) + { PyErr_SetString( SSLErrorObject, "cannot use this type of key" ); goto error; } + + if ( !(EVP_PKEY_assign_RSA(pkey, asym->cipher) ) ) + { PyErr_SetString( SSLErrorObject, "EVP_PKEY assignment error" ); goto error; } + + switch (digest) + { + case MD5_DIGEST: + { + if (!X509_CRL_sign(self->crl, pkey, EVP_md5() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case MD2_DIGEST: + { + if (!X509_CRL_sign(self->crl, pkey, EVP_md2() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case SHA_DIGEST: + { + if (!X509_CRL_sign(self->crl, pkey, EVP_sha() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case SHA1_DIGEST: + { + if (!X509_CRL_sign(self->crl, pkey, EVP_sha1() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + case RIPEMD160_DIGEST: + { + if (!X509_CRL_sign(self->crl, pkey, EVP_ripemd160() ) ) + { PyErr_SetString( SSLErrorObject, "could not sign certificate" ); goto error; } + break; + } + } + + return Py_BuildValue(""); + +error: + + if (pkey) + EVP_PKEY_free(pkey); + + return NULL; + +} + +static char x509_crl_object_verify__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>verify</name>\n" +" <parameter>key</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" The <classname>X509Crl</classname> method\n" +" <function>verify</function> is based on the\n" +" <function>X509_CRL_verify</function> function. Unlike the\n" +" <classname>X509</classname> function of the same name, this\n" +" function simply checks the CRL was signed with the private key\n" +" which corresponds the parameter <parameter>key</parameter>.\n" +" <parameter>key</parameter> should be an instance of\n" +" <classname>Asymmetric</classname> and contain a public key.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_verify(x509_crl_object *self, PyObject *args) +{ + int result=0; + EVP_PKEY *pkey=NULL; + asymmetric_object *asym; + + if (!PyArg_ParseTuple(args, "O!", &asymmetrictype, &asym)) + goto error; + + if ( !(pkey = EVP_PKEY_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !(EVP_PKEY_assign_RSA(pkey, asym->cipher) ) ) + { PyErr_SetString( SSLErrorObject, "EVP_PKEY assignment error" ); goto error; } + + result = X509_CRL_verify(self->crl,pkey); + + return Py_BuildValue("i", result); + +error: + + if (pkey) + EVP_PKEY_free(pkey); + + return NULL; + +} + +static PyObject * +x509_crl_object_write_helper(x509_crl_object *self, PyObject *args, int format) +{ + int len=0, ret=0; + char *buf=NULL; + BIO *out_bio=NULL; + PyObject *cert=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + out_bio = BIO_new(BIO_s_mem()); + + if (format == DER_FORMAT) + { + if (!i2d_X509_CRL_bio(out_bio, self->crl) ) + { PyErr_SetString( SSLErrorObject, "unable to write certificate" ); goto error; } + } + else if (format == PEM_FORMAT) + { + if (!PEM_write_bio_X509_CRL(out_bio, self->crl) ) + { PyErr_SetString( SSLErrorObject, "unable to write certificate" ); goto error; } + } + else + { PyErr_SetString( SSLErrorObject, "internal error, unkown output format" ); goto error; } + + if ( !(len = BIO_ctrl_pending(out_bio) ) ) + { PyErr_SetString( SSLErrorObject, "unable to get bytes stored in bio" ); goto error; } + + if ( !(buf = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( (ret = BIO_read( out_bio, buf, len ) ) != len ) + { PyErr_SetString( SSLErrorObject, "unable to write out cert" ); goto error; } + + cert = Py_BuildValue("s#", buf, len); + + BIO_free(out_bio); + free(buf); + return cert; + +error: + + if (out_bio) + BIO_free(out_bio); + + if (buf) + free(buf); + + return NULL; +} + +static char x509_crl_object_pem_write__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>pemWrite</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a PEM encoded CRL as a\n" +" string.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_pem_write(x509_crl_object *self, PyObject *args) +{ + return x509_crl_object_write_helper(self, args, PEM_FORMAT); +} + +static char x509_crl_object_der_write__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>derWrite</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a DER encoded CRL as a string.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_der_write(x509_crl_object *self, PyObject *args) +{ + return x509_crl_object_write_helper(self, args, DER_FORMAT); +} + +static char x509_crl_object_pprint__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Crl</memberof>\n" +" <name>pprint</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a formatted string showing the information\n" +" held in the CRL.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_crl_object_pprint(x509_crl_object *self, PyObject *args) +{ + int len=0, ret=0; + char *buf=NULL; + BIO *out_bio=NULL; + PyObject *crl=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + out_bio = BIO_new(BIO_s_mem()); + + if (!X509_CRL_print(out_bio, self->crl) ) + { PyErr_SetString( SSLErrorObject, "unable to write crl" ); goto error; } + + if ( !(len = BIO_ctrl_pending(out_bio) ) ) + { PyErr_SetString( SSLErrorObject, "unable to get bytes stored in bio" ); goto error; } + + if ( !(buf = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( (ret = BIO_read( out_bio, buf, len ) ) != len ) + { PyErr_SetString( SSLErrorObject, "unable to write out cert" ); goto error; } + + crl = Py_BuildValue("s#", buf, len); + + BIO_free(out_bio); + free(buf); + return crl; + +error: + + if (out_bio) + BIO_free(out_bio); + + if (buf) + free(buf); + + return NULL; + +} + +static struct PyMethodDef x509_crl_object_methods[] = { + {"sign", (PyCFunction)x509_crl_object_sign, METH_VARARGS, NULL}, + {"verify", (PyCFunction)x509_crl_object_verify, METH_VARARGS, NULL}, + {"getVersion", (PyCFunction)x509_crl_object_get_version, METH_VARARGS, NULL}, + {"setVersion", (PyCFunction)x509_crl_object_set_version, METH_VARARGS, NULL}, + {"getIssuer", (PyCFunction)x509_crl_object_get_issuer, METH_VARARGS, NULL}, + {"setIssuer", (PyCFunction)x509_crl_object_set_issuer, METH_VARARGS, NULL}, + {"getThisUpdate", (PyCFunction)x509_crl_object_get_this_update, METH_VARARGS, NULL}, + {"setThisUpdate", (PyCFunction)x509_crl_object_set_this_update, METH_VARARGS, NULL}, + {"getNextUpdate", (PyCFunction)x509_crl_object_get_next_update, METH_VARARGS, NULL}, + {"setNextUpdate", (PyCFunction)x509_crl_object_set_next_update, METH_VARARGS, NULL}, + {"setRevoked", (PyCFunction)x509_crl_object_set_revoked, METH_VARARGS, NULL}, + {"getRevoked", (PyCFunction)x509_crl_object_get_revoked, METH_VARARGS, NULL}, + {"addExtension", (PyCFunction)X509_crl_object_add_extension, METH_VARARGS, NULL}, + {"clearExtensions",(PyCFunction)X509_crl_object_clear_extensions, METH_VARARGS, NULL}, + {"countExtensions",(PyCFunction)X509_crl_object_count_extensions, METH_VARARGS, NULL}, + {"getExtension", (PyCFunction)X509_crl_object_get_extension, METH_VARARGS, NULL}, + {"pemWrite", (PyCFunction)x509_crl_object_pem_write, METH_VARARGS, NULL}, + {"derWrite", (PyCFunction)x509_crl_object_der_write, METH_VARARGS, NULL}, + {"pprint", (PyCFunction)x509_crl_object_pprint, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +x509_crl_object_getattr(x509_crl_object *self, char *name) +{ + return Py_FindMethod(x509_crl_object_methods, (PyObject *)self, name); +} + +static void +x509_crl_object_dealloc(x509_crl_object *self, char *name) +{ + X509_CRL_free( self->crl ); + PyObject_Del(self); +} + +static char x509_crltype__doc__[] = +"<class>\n" +" <header>\n" +" <name>X509Crl</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides access to OpenSSL X509 CRL management\n" +" facilities.\n" +" </para>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject x509_crltype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "X509Crl", /*tp_name*/ + sizeof(x509_crl_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)x509_crl_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)x509_crl_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + x509_crltype__doc__ /* Documentation string */ +}; +/*========== x509 crl Code ==========*/ + +/*========== revoked Code ==========*/ +x509_revoked_object* x509_revoked_object_new(void) +{ + x509_revoked_object *self=NULL; + + if ( !(self = PyObject_New( x509_revoked_object, &x509_revokedtype ) ) ) + goto error; + + self->revoked = X509_REVOKED_new(); + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static char x509_revoked_object_set_serial__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>setSerial</name>\n" +" <parameter>serial</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets the serial number in the serial field of\n" +" this object. <parameter>serial</parameter> should be an\n" +" integer.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_revoked_object_set_serial(x509_revoked_object *self, PyObject *args) +{ + int serial=0; + + if (!PyArg_ParseTuple(args, "i", &serial)) + goto error; + + if (!ASN1_INTEGER_set( self->revoked->serialNumber, serial ) ) + { PyErr_SetString( SSLErrorObject, "unable to set serial number" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char x509_revoked_object_get_serial__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>getSerial</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method gets the serial number in the serial field of\n" +" this object.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_revoked_object_get_serial(x509_revoked_object *self, PyObject *args) +{ + int serial=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( (serial = ASN1_INTEGER_get( self->revoked->serialNumber ) ) == -1 ) + { PyErr_SetString( SSLErrorObject, "unable to get serial number" ); goto error; } + + return Py_BuildValue("i", serial); + +error: + + return NULL; +} + +static char x509_revoked_object_get_date__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>getDate</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this function returns a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_revoked_object_get_date(x509_revoked_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + return Py_BuildValue("s", self->revoked->revocationDate->data); + +error: + + return NULL; +} + +static char x509_revoked_object_set_date__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>setDate</name>\n" +" <parameter>time</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" In a change from previous releases, for reasons of portability\n" +" and to avoid hard to fix issues with problems in unreliable time\n" +" functions, this accepts one parameter, a UTCTime string. You\n" +" can use the function <function>time2utc</function> to convert to a\n" +" string if you like and <function>utc2time</function> to back.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +x509_revoked_object_set_date(x509_revoked_object *self, PyObject *args) +{ + char *time=NULL; + + if (!PyArg_ParseTuple(args, "s", &time)) + goto error; + + if (!ASN1_UTCTIME_set_string( self->revoked->revocationDate, time )) + { PyErr_SetString( PyExc_TypeError, "could not set revocationDate" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_revoked_object_add_extension__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>addExtension</name>\n" +" <parameter>extensionName</parameter>\n" +" <parameter>critical</parameter>\n" +" <parameter>extensionValue</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method adds an extension to this revocation.\n" +" <parameter>extensionName</parameter> should be the of the\n" +" extension. <parameter>critical</parameter> should an integer, 1\n" +" for true and 0 for clase. <parameter>extensionValue</parameter>\n" +" should be a string, DER encoded value of the extension. The name\n" +" of the extension must be correct according to OpenSSL and can be\n" +" checkd in the <constant>objects.h</constant> header file, part of\n" +" the OpenSSL source distrobution. In the majority of cases they\n" +" are the same as those defined in <constant>POW._oids</constant>\n" +" but if you do encounter problems is may be worth checking.\n" +" </para>\n" +" <example>\n" +" <title><function>addExtension</function> method usage</title>\n" +" <programlisting>\n" +" reason = POW.pkix.CrlReason()\n" +" reason.set(1) \n" +" revocation.addExtension( 'CRLReason', 0, reason.toString() )\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_revoked_object_add_extension(x509_revoked_object *self, PyObject *args) +{ + int critical=0, nid=0; + char *name=NULL, *buf=NULL; + ASN1_OCTET_STRING *octetString=NULL; + X509_EXTENSION *extn=NULL; + + if (!PyArg_ParseTuple(args, "sis", &name, &critical, &buf)) + goto error; + + if ( !(octetString = M_ASN1_OCTET_STRING_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !ASN1_OCTET_STRING_set(octetString, buf, strlen(buf)) ) + { PyErr_SetString( SSLErrorObject, "could not set ASN1 Octect string" ); goto error; } + + if ( NID_undef == (nid = OBJ_txt2nid(name) ) ) + { PyErr_SetString( SSLErrorObject, "extension has unknown object identifier" ); goto error; } + + if ( !( extn = X509_EXTENSION_create_by_NID(NULL, nid, critical, octetString) ) ) + { PyErr_SetString( SSLErrorObject, "unable to create ASN1 X509 Extension object" ); goto error; } + + if (!self->revoked->extensions) + if ( !(self->revoked->extensions = sk_X509_EXTENSION_new_null() ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( !sk_X509_EXTENSION_push(self->revoked->extensions, extn) ) + { PyErr_SetString( SSLErrorObject, "unable to add extension" ); goto error; } + + return Py_BuildValue(""); + +error: + + if(extn) + X509_EXTENSION_free(extn); + + return NULL; +} + +static char X509_revoked_object_clear_extensions__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>clearExtensions</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method clears the structure which holds the extension for\n" +" this revocation.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_revoked_object_clear_extensions(x509_revoked_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (self->revoked->extensions) + { + sk_X509_EXTENSION_free(self->revoked->extensions); + self->revoked->extensions=NULL; + } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char X509_revoked_object_count_extensions__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>countExtensions</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns the size of the structure which holds the\n" +" extension for this revocation.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_revoked_object_count_extensions(x509_revoked_object *self, PyObject *args) +{ + int num=0; + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (self->revoked->extensions) + { + num = sk_X509_EXTENSION_num(self->revoked->extensions); + return Py_BuildValue("i", num); + } + else + return Py_BuildValue("i", 0); + +error: + + return NULL; +} + +static char X509_revoked_object_get_extension__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <name>getExtension</name>\n" +" <parameter>index</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a tuple equivalent the parameters of\n" +" <function>addExtension</function>.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +X509_revoked_object_get_extension(x509_revoked_object *self, PyObject *args) +{ + int num=0, index=0, ext_nid=0; + char const *ext_ln=NULL; + char unknown_ext [] = "unkown"; + X509_EXTENSION *ext; + if (!PyArg_ParseTuple(args, "i", &index)) + goto error; + + if (self->revoked->extensions) + { + num = sk_X509_EXTENSION_num(self->revoked->extensions); + } + else + num = 0; + + if (index >= num) + { PyErr_SetString( SSLErrorObject, "certificate does not have that many extensions" ); goto error; } + + if ( !(ext = sk_X509_EXTENSION_value(self->revoked->extensions, index) ) ) + { PyErr_SetString( SSLErrorObject, "could not get extension" ); goto error; } + + if ( NID_undef == (ext_nid = OBJ_obj2nid(ext->object) ) ) + { PyErr_SetString( SSLErrorObject, "extension has unknown object identifier" ); goto error; } + + if ( NULL == (ext_ln = OBJ_nid2sn(ext_nid) ) ) + ext_ln = unknown_ext; + + return Py_BuildValue("sis", ext_ln, ext->critical, ext->value->data ); + +error: + + return NULL; +} + +static struct PyMethodDef x509_revoked_object_methods[] = { + {"getSerial", (PyCFunction)x509_revoked_object_get_serial, METH_VARARGS, NULL}, + {"setSerial", (PyCFunction)x509_revoked_object_set_serial, METH_VARARGS, NULL}, + {"getDate", (PyCFunction)x509_revoked_object_get_date, METH_VARARGS, NULL}, + {"setDate", (PyCFunction)x509_revoked_object_set_date, METH_VARARGS, NULL}, + {"addExtension", (PyCFunction)X509_revoked_object_add_extension, METH_VARARGS, NULL}, + {"clearExtensions",(PyCFunction)X509_revoked_object_clear_extensions, METH_VARARGS, NULL}, + {"countExtensions",(PyCFunction)X509_revoked_object_count_extensions, METH_VARARGS, NULL}, + {"getExtension", (PyCFunction)X509_revoked_object_get_extension, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +x509_revoked_object_getattr(x509_revoked_object *self, char *name) +{ + return Py_FindMethod(x509_revoked_object_methods, (PyObject *)self, name); +} + +static void +x509_revoked_object_dealloc(x509_revoked_object *self, char *name) +{ + X509_REVOKED_free( self->revoked ); + PyObject_Del(self); +} + +static char x509_revokedtype__doc__[] = +"<class>\n" +" <header>\n" +" <name>X509Revoked</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides a container for details of a revoked\n" +" certificate. It normally would only be used in association with\n" +" a CRL, its not much use by itself. Indeed the only reason this\n" +" class exists is because in the future POW is likely to be extended\n" +" to support extensions for certificates, CRLs and revocations.\n" +" <classname>X509Revoked</classname> existing as an object in its\n" +" own right will make adding this support easier, while avoiding\n" +" backwards compatibility issues.\n" +" </para>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject x509_revokedtype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "X509Revoked", /*tp_name*/ + sizeof(x509_revoked_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)x509_revoked_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)x509_revoked_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + x509_revokedtype__doc__ /* Documentation string */ +}; +/*========== x509 revoked Code ==========*/ + +/*========== ssl Code ==========*/ +static char ssl_object_use_certificate__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>useCertificate</name>\n" +" <parameter>cert</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" The parameter <parameter>cert</parameter> must be an\n" +" instance of the <classname>X590</classname> class and must be\n" +" called before <function>setFd</function>. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_use_certificate(ssl_object *self, PyObject *args) +{ + x509_object *x509=NULL; + + if (!PyArg_ParseTuple(args, "O!", &x509type, &x509)) + goto error; + + if (self->ctxset) + { PyErr_SetString( SSLErrorObject, "cannont be called after setFd()" ); goto error; } + + if ( !SSL_CTX_use_certificate(self->ctx, x509->x509) ) + { PyErr_SetString( SSLErrorObject, "could not use certificate" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char ssl_object_use_key__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>useKey</name>\n" +" <parameter>key</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" The parameter <parameter>key</parameter> must be an\n" +" instance of the <classname>Asymmetric</classname> class and\n" +" must contain the private key. This function cannot be called \n" +" after <function>useKey</function>.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_use_key(ssl_object *self, PyObject *args) +{ + asymmetric_object *asym=NULL; + EVP_PKEY *pkey=NULL; + + if (!PyArg_ParseTuple(args, "O!", &asymmetrictype, &asym)) + goto error; + + if (self->ctxset) + { PyErr_SetString( SSLErrorObject, "cannont be called after setFd()" ); goto error; } + + if ( !(pkey = EVP_PKEY_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if (asym->key_type != RSA_PRIVATE_KEY) + { PyErr_SetString( SSLErrorObject, "cannot use this type of key" ); goto error; } + + if ( !EVP_PKEY_assign_RSA(pkey, asym->cipher) ) + { PyErr_SetString( SSLErrorObject, "EVP_PKEY assignment error" ); goto error; } + + if ( !SSL_CTX_use_PrivateKey(self->ctx, pkey) ) + { PyErr_SetString( SSLErrorObject, "ctx key assignment error" ); goto error; } + + return Py_BuildValue(""); + +error: + + if(pkey) + EVP_PKEY_free(pkey); + + return NULL; +} + +static char ssl_object_check_key__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>checkKey</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This simple method will return 1 if the public key, contained in\n" +" the X509 certificate this <classname>Ssl</classname> instance is using,\n" +" matches the private key this <classname>Ssl</classname> instance is using.\n" +" Otherwise it will return 0.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_check_key(ssl_object *self, PyObject *args) +{ + if ( SSL_CTX_check_private_key(self->ctx) ) + return Py_BuildValue("i", 1); + else + return Py_BuildValue("i", 0); +} + +static char ssl_object_set_fd__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>setFd</name>\n" +" <parameter>descriptor</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function is used to associate a file descriptor with a\n" +" <classname>Ssl</classname> object. The file descriptor should\n" +" belong to an open TCP connection. Once this function has\n" +" been called, calling <function>useKey</function> or\n" +" <function>useCertificate</function> will, fail rasing exceptions.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_set_fd(ssl_object *self, PyObject *args) +{ + int fd=0, self_index=0; + + if (!PyArg_ParseTuple(args, "i", &fd)) + goto error; + + if ( !(self->ssl = SSL_new( self->ctx ) ) ) + { PyErr_SetString( SSLErrorObject, "unable to create ssl sturcture" ); goto error; } + + if ( !SSL_set_fd( self->ssl, fd ) ) + { PyErr_SetString( SSLErrorObject, "unable to set file descriptor" ); goto error; } + + if ( (self_index = SSL_get_ex_new_index(0, "self_index", NULL, NULL, NULL) ) != -1 ) + SSL_set_ex_data(self->ssl, self_index, self); + else + { PyErr_SetString( SSLErrorObject, "unable to create ex data index" ); goto error; } + + self->ctxset = 1; + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char ssl_object_accept__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>accept</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function will attempt the SSL level accept with a\n" +" client. The <classname>Ssl</classname> object must have been\n" +" created using a <constant>XXXXX_SERVER_METHOD</constant> or\n" +" a <constant>XXXXX_METHOD</constant> and this function should only be\n" +" called after <function>useKey</function>,\n" +" <function>useCertificate</function> and\n" +" <function>setFd</function> functions have been called.\n" +" </para>\n" +"\n" +" <example>\n" +" <title><function>accept</function> function usage</title>\n" +" <programlisting>\n" +" keyFile = open( 'test/private.key', 'r' )\n" +" certFile = open( 'test/cacert.pem', 'r' )\n" +"\n" +" rsa = POW.pemRead( POW.RSA_PRIVATE_KEY, keyFile.read(), 'pass' )\n" +" x509 = POW.pemRead( POW.X509_CERTIFICATE, certFile.read() )\n" +"\n" +" keyFile.close()\n" +" certFile.close()\n" +"\n" +" sl = POW.Ssl( POW.SSLV23_SERVER_METHOD )\n" +" sl.useCertificate( x509 )\n" +" sl.useKey( rsa )\n" +"\n" +" s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )\n" +" s.bind( ('localhost', 1111) )\n" +" s.listen(5)\n" +" s2, addr = s.accept()\n" +"\n" +" s.close()\n" +"\n" +" sl.setFd( s2.fileno() )\n" +" sl.accept()\n" +" print sl.read(1024)\n" +" sl.write('Message from server to client...')\n" +"\n" +" s2.close() \n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_accept(ssl_object *self, PyObject *args) +{ + int ret=0, err=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + Py_BEGIN_ALLOW_THREADS + ret = SSL_accept( self->ssl ); + Py_END_ALLOW_THREADS + + if (ret <= 0) + { + err = SSL_get_error( self->ssl, ret ); + PyErr_SetObject(SSLErrorObject, ssl_err_factory( err ) ); + goto error; + } + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char ssl_object_connect__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>connect</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function will attempt the SSL level connection with a\n" +" server. The <classname>Ssl</classname> object must have been\n" +" created using a <constant>XXXXX_CLIENT_METHOD</constant> or\n" +" a <constant>XXXXX_METHOD</constant> and this function should only be\n" +" called after <function>setFd</function> has already been\n" +" called.\n" +" </para>\n" +"\n" +" <example>\n" +" <title><function>connect</function> function usage</title>\n" +" <programlisting>\n" +" s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )\n" +" s.connect(('localhost', 1111))\n" +"\n" +" sl = POW.Ssl( POW.SSLV23_CLIENT_METHOD )\n" +" sl.setFd( s.fileno() )\n" +" sl.connect()\n" +" sl.write('Message from client to server...')\n" +" print sl.read(1024)\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_connect(ssl_object *self, PyObject *args) +{ + int ret, err=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + Py_BEGIN_ALLOW_THREADS + ret = SSL_connect( self->ssl ); + Py_END_ALLOW_THREADS + + if (ret <= 0) + { + err = SSL_get_error( self->ssl, ret ); + PyErr_SetObject(SSLErrorObject, ssl_err_factory( err ) ); + goto error; + } + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char ssl_object_write__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>write</name>\n" +" <parameter>string</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method writes the <parameter>string</parameter> to the\n" +" <classname>Ssl</classname> object, to be read by it's peer. This\n" +" function is analogous to the <classname>socket</classname>\n" +" classes <function>write</function> function.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_write(ssl_object *self, PyObject *args) +{ + char *msg; + int length=0, ret=0, err=0; + + if (!PyArg_ParseTuple(args, "s#", &msg, &length)) + goto error; + + Py_BEGIN_ALLOW_THREADS + ret = SSL_write( self->ssl, msg, length ); + Py_END_ALLOW_THREADS + + if (ret <= 0) + { + err = SSL_get_error( self->ssl, ret ); + PyErr_SetObject(SSLErrorObject, ssl_err_factory( err ) ); + goto error; + } + return Py_BuildValue("i", ret); + +error: + + return NULL; +} + +static char ssl_object_read__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>read</name>\n" +" <parameter>amount=1024</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method reads up to <parameter>amount</parameter> characters from the\n" +" <classname>Ssl</classname> object. This\n" +" function is analogous to the <classname>socket</classname>\n" +" classes <function>read</function> function.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_read(ssl_object *self, PyObject *args) +{ + PyObject *data; + char *msg=NULL; + int len = 1024, ret=0, err=0; + + if (!PyArg_ParseTuple(args, "|i", &len)) + goto error; + + if ( !(msg = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + Py_BEGIN_ALLOW_THREADS + ret = SSL_read( self->ssl, msg, len ); + Py_END_ALLOW_THREADS + + if (ret <= 0) + { + free(msg); + err = SSL_get_error( self->ssl, ret ); + PyErr_SetObject(SSLErrorObject, ssl_err_factory( err ) ); + goto error; + } + else + data = Py_BuildValue("s#", msg, ret); + + free(msg); + return data; + +error: + + if (msg) + free(msg); + + return NULL; +} + +static char ssl_object_peer_certificate__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>peerCertificate</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns any peer certificate presented in the initial\n" +" SSL negotiation or <constant>None</constant>. If a certificate is\n" +" returned, it will be an instance of <classname>X509</classname>.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_peer_certificate(ssl_object *self, PyObject *args) +{ + X509 *x509=NULL; + x509_object *x509_obj=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( !(x509_obj = X509_object_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not create x509 object" ); goto error; } + + x509 = SSL_get_peer_certificate( self->ssl ); + + if (x509) + { + X509_free( x509_obj->x509 ); + + if ( !(x509_obj->x509 = x509 ) ) + { PyErr_SetString( SSLErrorObject, "could not create x509 object" ); goto error; } + return Py_BuildValue("O", x509_obj); + } + else + { + Py_XDECREF( x509_obj ); + return Py_BuildValue(""); + } + +error: + + if (x509) + X509_free(x509); + + Py_XDECREF( x509_obj ); + return NULL; +} + +static char ssl_object_clear__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>clear</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method will clear the SSL session ready for\n" +" a new SSL connection. It will not effect the underlying socket.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_clear(ssl_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (!SSL_clear( self->ssl ) ) + { PyErr_SetString( SSLErrorObject, "failed to clear ssl connection" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char ssl_object_shutdown__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>shutdown</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method will issue a <constant>shutdown</constant> signal to it's peer. \n" +" If this connection's peer has already initiated a shutdown this call\n" +" will succeed, otherwise it will raise and exception. In order to\n" +" check the shutdown handshake was successful,\n" +" <function>shutdown</function> must be called again. If no\n" +" exception is raised, the handshake is complete. \n" +" </para>\n" +" <para>\n" +" The odd\n" +" implementation of this function reflects the underlying OpenSSL\n" +" function, which reflects the SSL protocol. Although rasing an\n" +" exception is a bit annoying, the alternative, returning true all\n" +" false will not tell you why the call failed and the exception\n" +" will, at least that is the theory. Look up the exact meaning\n" +" of the exceptions in the OpenSSL man page SSL_get_error.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_shutdown(ssl_object *self, PyObject *args) +{ + int ret=0, err=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + ret = SSL_shutdown(self->ssl); + + if (ret <= 0) + { + err = SSL_get_error( self->ssl, ret ); + PyErr_SetObject(SSLErrorObject, ssl_err_factory( err ) ); + goto error; + } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char ssl_object_get_shutdown__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>getShutdown</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function returns an integer indicating the state of the\n" +" SSL connection. <constant>SSL_RECIEVED_SHUTDOWN</constant>\n" +" will be set the if it's peer sends a <constant>shutdown</constant>\n" +" signal or the underlying socket\n" +" receives a close notify . The possible values are:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>SSL_NO_SHUTDOWN</constant></member>\n" +" <member><constant>SSL_SENT_SHUTDOWN</constant></member>\n" +" <member><constant>SSL_RECIEVED_SHUTDOWN</constant></member>\n" +" <member><constant>SSL_SENT_SHUTDOWN</constant> | <constant>SSL_RECIEVED_SHUTDOWN</constant></member>\n" +" </simplelist>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_get_shutdown(ssl_object *self, PyObject *args) +{ + int state=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + state = SSL_get_shutdown(self->ssl); + + return Py_BuildValue("i", state); + +error: + + return NULL; +} + +static char ssl_object_get_ciphers__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>getCiphers</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function returns a list of available ciphers ordered from\n" +" most favored to least. This function must be called after\n" +" <function>setFd</function>. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_get_ciphers(ssl_object *self, PyObject *args) +{ + int inlist=0, i=0; + const char *cipher=NULL; + PyObject *list=NULL, *name=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (!self->ctxset) + { PyErr_SetString( SSLErrorObject, "cannont be called before setFd()" ); goto error; } + + list = PyList_New(0); + + cipher = SSL_get_cipher_list(self->ssl, 0); + while (cipher) + { + if ( !(name = PyString_FromString(cipher) ) ) + goto error; + if ( PyList_Append( list, name ) != 0) + goto error; + cipher = SSL_get_cipher_list(self->ssl, ++i); + } + return Py_BuildValue("O", list); + +error: + + if (list) + { + inlist = PyList_Size( list ); + for (i=0; i < inlist; i++) + { + name = PyList_GetItem( list, i ); + Py_DECREF(name); + } + Py_DECREF(list); + } + + return NULL; +} + +static char ssl_object_set_ciphers__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>setCiphers</name>\n" +" <parameter>ciphers</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" <function>setCiphers</function>\n" +" can help protect against certain types of attacks which try to\n" +" coerce the server, client or both to negotiate a weak cipher. \n" +" <parameter>ciphers</parameter> should be a list of strings, as\n" +" produced by <function>getCiphers</function> and described in the\n" +" OpenSSL man page ciphers. <function>setCiphers</function> should\n" +" only be called after <function>setFd</function>.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_set_ciphers(ssl_object *self, PyObject *args) +{ + PyObject *ciphers=NULL; + PyObject *cipher=NULL; + int size=0, cipherstrlen=0, nextstrlen=0, i=0; + char *cipherstr=NULL; + + if (!PyArg_ParseTuple(args, "O", &ciphers)) + goto error; + + if ( !(PyList_Check(ciphers) || PyTuple_Check(ciphers)) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + if (!self->ctxset) + { PyErr_SetString( SSLErrorObject, "cannont be called before setFd()" ); goto error; } + + cipherstr = malloc(8); //very bogus, realloc dosn't work with out some + //previously allocated memory! Really should. + memset(cipherstr, 0, 8); + size = PySequence_Size(ciphers); + for (i=0; i < size; i++) + { + if ( !( cipher = PySequence_GetItem( ciphers, i ) ) ) + goto error; + + if ( !PyString_Check(cipher) ) + { PyErr_SetString( PyExc_TypeError, "inapropriate type" ); goto error; } + + cipherstrlen = strlen(cipherstr); + nextstrlen = strlen( PyString_AsString(cipher) ); + + if ( !(cipherstr = realloc( cipherstr, cipherstrlen + nextstrlen + 2)) ) + { PyErr_SetString( PyExc_TypeError, "could allocate memory" ); goto error; } + + if (cipherstrlen) + strcat( cipherstr, ":\0" ); + + strcat( cipherstr, PyString_AsString(cipher) ); + Py_DECREF(cipher); + cipher = NULL; + } + SSL_set_cipher_list( self->ssl, cipherstr ); + free(cipherstr); + return Py_BuildValue(""); + +error: + + if (cipherstr) + free(cipherstr); + + Py_XDECREF(cipher); + + return NULL; +} + +static char ssl_object_get_cipher__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>getCipher</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function returns the current cipher in use.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_get_cipher(ssl_object *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + if (!self->ctxset) + { PyErr_SetString( SSLErrorObject, "cannont be called before setFd()" ); goto error; } + + return Py_BuildValue("s", SSL_get_cipher( self->ssl )); + +error: + + return NULL; +} + +static int stub_callback(int preverify_ok, X509_STORE_CTX *ctx) +{ + return 1; +} + +static char ssl_object_set_verify_mode__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <name>setVerifyMode</name>\n" +" <parameter>mode</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function sets the behavior of the SSL handshake. The\n" +" parameter <parameter>mode</parameter> should be one of the\n" +" following:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>SSL_VERIFY_NONE</constant></member>\n" +" <member><constant>SSL_VERIFY_PEER</constant></member>\n" +" </simplelist>\n" +" <para>\n" +" See the OpenSSL man page <function>SSL_CTX_set_verify</function> \n" +" for details. This function must be called after <function>setfd</function> \n" +" has been called.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +ssl_object_set_verify_mode(ssl_object *self, PyObject *args) +{ + int mode=0; + + if (!PyArg_ParseTuple(args, "i", &mode)) + goto error; + + if (self->ctxset) + { PyErr_SetString( SSLErrorObject, "cannont be called after setfd()" ); goto error; } + + SSL_CTX_set_verify( self->ctx, mode, stub_callback ); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static struct PyMethodDef ssl_object_methods[] = { + {"useCertificate", (PyCFunction)ssl_object_use_certificate, METH_VARARGS, NULL}, + {"useKey", (PyCFunction)ssl_object_use_key, METH_VARARGS, NULL}, + {"checkKey", (PyCFunction)ssl_object_check_key, METH_VARARGS, NULL}, + {"setFd", (PyCFunction)ssl_object_set_fd, METH_VARARGS, NULL}, + {"connect", (PyCFunction)ssl_object_connect, METH_VARARGS, NULL}, + {"accept", (PyCFunction)ssl_object_accept, METH_VARARGS, NULL}, + {"write", (PyCFunction)ssl_object_write, METH_VARARGS, NULL}, + {"read", (PyCFunction)ssl_object_read, METH_VARARGS, NULL}, + {"peerCertificate", (PyCFunction)ssl_object_peer_certificate, METH_VARARGS, NULL}, + {"clear", (PyCFunction)ssl_object_clear, METH_VARARGS, NULL}, + {"shutdown", (PyCFunction)ssl_object_shutdown, METH_VARARGS, NULL}, + {"getShutdown", (PyCFunction)ssl_object_get_shutdown, METH_VARARGS, NULL}, + {"getCiphers", (PyCFunction)ssl_object_get_ciphers, METH_VARARGS, NULL}, + {"setCiphers", (PyCFunction)ssl_object_set_ciphers, METH_VARARGS, NULL}, + {"getCipher", (PyCFunction)ssl_object_get_cipher, METH_VARARGS, NULL}, + {"setVerifyMode", (PyCFunction)ssl_object_set_verify_mode, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static ssl_object * +newssl_object(int type) +{ + ssl_object *self; + SSL_METHOD *method; + + + if ( !(self = PyObject_NEW(ssl_object, &ssltype) ) ) + goto error; + + self->ctxset = 0; + self->ssl = NULL; + + switch(type) + { + case SSLV2_SERVER_METHOD: method = SSLv2_server_method(); break; + case SSLV2_CLIENT_METHOD: method = SSLv2_client_method(); break; + case SSLV2_METHOD: method = SSLv2_method(); break; + case SSLV3_SERVER_METHOD: method = SSLv3_server_method(); break; + case SSLV3_CLIENT_METHOD: method = SSLv3_client_method(); break; + case SSLV3_METHOD: method = SSLv3_method(); break; + case TLSV1_SERVER_METHOD: method = TLSv1_server_method(); break; + case TLSV1_CLIENT_METHOD: method = TLSv1_client_method(); break; + case TLSV1_METHOD: method = TLSv1_method(); break; + case SSLV23_SERVER_METHOD: method = SSLv23_server_method(); break; + case SSLV23_CLIENT_METHOD: method = SSLv23_client_method(); break; + case SSLV23_METHOD: method = SSLv23_method(); break; + + default: + { PyErr_SetString( SSLErrorObject, "unkown ctx method" ); goto error; } + + } + + if ( !(self->ctx = SSL_CTX_new( method ) ) ) + { PyErr_SetString( SSLErrorObject, "unable to create new ctx" ); goto error; } + + return self; + +error: + + Py_XDECREF( self ); + return NULL; +} + +static PyObject * +ssl_object_getattr(ssl_object *self, char *name) +{ + return Py_FindMethod(ssl_object_methods, (PyObject *)self, name); +} + +static void +ssl_object_dealloc(ssl_object *self) +{ + SSL_free( self->ssl ); + SSL_CTX_free( self->ctx ); + PyObject_Del(self); +} + +static char ssltype__doc__[] = +"<class>\n" +" <header>\n" +" <name>Ssl</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides access to the Secure Socket Layer\n" +" functionality of OpenSSL. It is designed to be a simple as\n" +" possible to use and is not designed for high performance\n" +" applications which handle many simultaneous connections. The\n" +" original motivation for writing this library was to provide a\n" +" security layer for network agents written in Python, for this\n" +" application, good performance with multiple concurrent connections\n" +" is not an issue. \n" +" </para>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject ssltype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "Ssl", /*tp_name*/ + sizeof(ssl_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)ssl_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)ssl_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + ssltype__doc__ /* Documentation string */ +}; +/*========== ssl Object ==========*/ + +/*========== asymmetric Object ==========*/ +static asymmetric_object * +asymmetric_object_new(int cipher_type, int key_size) +{ + asymmetric_object *self=NULL; + + self = PyObject_New( asymmetric_object, &asymmetrictype ); + if (self == NULL) + goto error; + + if (cipher_type != RSA_CIPHER) + { PyErr_SetString( SSLErrorObject, "unsupported cipher" ); goto error; } + + if ( !(self->cipher = RSA_generate_key(key_size,RSA_F4,NULL,NULL) ) ) + { PyErr_SetString( SSLErrorObject, "could not generate key" ); goto error; } + + self->key_type = RSA_PRIVATE_KEY; + self->cipher_type = RSA_CIPHER; + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static asymmetric_object * +asymmetric_object_pem_read(int key_type, BIO *in, char *pass) +{ + asymmetric_object *self=NULL; + + self = PyObject_New( asymmetric_object, &asymmetrictype ); + if (self == NULL) + goto error; + + switch (key_type) + { + case RSA_PUBLIC_KEY: + { + if( !(self->cipher = PEM_read_bio_RSA_PUBKEY( in, NULL, NULL, NULL ) ) ) + { PyErr_SetString( SSLErrorObject, "could not load public key" ); goto error; } + self->key_type = RSA_PUBLIC_KEY; + self->cipher_type = RSA_CIPHER; + break; + } + case RSA_PRIVATE_KEY: + { + if( !(self->cipher = PEM_read_bio_RSAPrivateKey( in, NULL, NULL, pass) ) ) + { PyErr_SetString( SSLErrorObject, "could not load private key" ); goto error; } + self->key_type = RSA_PRIVATE_KEY; + self->cipher_type = RSA_CIPHER; + break; + } + default: + { PyErr_SetString( SSLErrorObject, "unkown key type" ); goto error; } + } + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static asymmetric_object * +asymmetric_object_der_read(int key_type, char *src, int len) +{ + asymmetric_object *self=NULL; + unsigned char *ptr = src; + + self = PyObject_New( asymmetric_object, &asymmetrictype ); + if (self == NULL) + goto error; + + switch (key_type) + { + case RSA_PUBLIC_KEY: + { + if( !(self->cipher = d2i_RSAPublicKey( NULL, &ptr, len ) ) ) + { PyErr_SetString( SSLErrorObject, "could not load public key" ); goto error; } + + self->key_type = RSA_PUBLIC_KEY; + self->cipher_type = RSA_CIPHER; + break; + } + case RSA_PRIVATE_KEY: + { + if( !(self->cipher = d2i_RSAPrivateKey( NULL, &ptr, len ) ) ) + { PyErr_SetString( SSLErrorObject, "could not load private key" ); goto error; } + + self->key_type = RSA_PRIVATE_KEY; + self->cipher_type = RSA_CIPHER; + break; + } + default: + { PyErr_SetString( SSLErrorObject, "unkown key type" ); goto error; } + } + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static char asymmetric_object_pem_write__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <name>pemWrite</name>\n" +" <parameter>keytype</parameter>\n" +" <parameter>ciphertype=None</parameter>\n" +" <parameter>passphrase=None</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to write <classname>Asymmetric</classname>\n" +" objects out as strings. The first argument should be either\n" +" <constant>RSA_PUBLIC_KEY</constant> or\n" +" <constant>RSA_PRIVATE_KEY</constant>. Private keys are often\n" +" saved in encrypted files to offer extra security above access\n" +" control mechanisms. If the <parameter>keytype</parameter> is\n" +" <constant>RSA_PRIVATE_KEY</constant> a\n" +" <parameter>ciphertype</parameter> and\n" +" <parameter>passphrase</parameter> can also be specified. The\n" +" <parameter>ciphertype</parameter> should be one of those listed in\n" +" the <classname>Symmetric</classname> class section.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +asymmetric_object_pem_write(asymmetric_object *self, PyObject *args) +{ + int key_type=0, cipher=0, len=0, ret=0; + char *kstr=NULL, *buf=NULL; + BIO *out_bio=NULL; + PyObject *asymmetric=NULL; + + if (!PyArg_ParseTuple(args, "|iis", &key_type, &cipher, &kstr)) + goto error; + + if (key_type == 0) + key_type = self->key_type; + + if ( !(out_bio = BIO_new(BIO_s_mem()) ) ) + { PyErr_SetString( SSLErrorObject, "unable to create new BIO" ); goto error; } + + if ( (kstr && !cipher) || (cipher && !kstr) ) + {PyErr_SetString(SSLErrorObject,"cipher type and key string must both be supplied");goto error;} + + + switch( key_type ) + { + case RSA_PRIVATE_KEY: + { + if (kstr && cipher) + { + if (!PEM_write_bio_RSAPrivateKey(out_bio, self->cipher, evp_cipher_factory(cipher), NULL, 0, NULL, kstr) ) + { PyErr_SetString( SSLErrorObject, "unable to write key" ); goto error; } + } + else + { + if (!PEM_write_bio_RSAPrivateKey(out_bio, self->cipher, NULL, NULL, 0, NULL, NULL) ) + { PyErr_SetString( SSLErrorObject, "unable to write key" ); goto error; } + } + break; + } + case RSA_PUBLIC_KEY: + { + if (kstr && cipher) + { PyErr_SetString( SSLErrorObject, "public keys should not encrypted" ); goto error; } + else + { + if (!PEM_write_bio_RSA_PUBKEY(out_bio, self->cipher) ) + { PyErr_SetString( SSLErrorObject, "unable to write key" ); goto error; } + } + break; + } + default: + { PyErr_SetString( SSLErrorObject, "unsupported key type" ); goto error; } + } + + if ( !(len = BIO_ctrl_pending(out_bio) ) ) + { PyErr_SetString( SSLErrorObject, "unable to get number of bytes in bio" ); goto error; } + + if ( !(buf = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "unable to allocate memory" ); goto error; } + + if ( (ret = BIO_read( out_bio, buf, len ) ) != len ) + { PyErr_SetString( SSLErrorObject, "unable to write out key" ); goto error; } + + asymmetric = Py_BuildValue("s#", buf, len); + + BIO_free(out_bio); + free(buf); + return asymmetric; + +error: + + if (out_bio); + BIO_free(out_bio); + + if (buf) + free(buf); + + return NULL; +} + +static char asymmetric_object_der_write__doc__[] = +"<method>" +" <header>" +" <memberof>Asymmetric</memberof>" +" <name>derWrite</name>" +" <parameter>keytype</parameter>" +" </header>" +" <body>" +" <para>" +" This method is used to write <classname>Asymmetric</classname>" +" objects out as strings. The first argument should be either" +" <constant>RSA_PUBLIC_KEY</constant> or " +" <constant>RSA_PRIVATE_KEY</constant>." +" </para>" +" </body>" +"</method>" +; + +static PyObject * +asymmetric_object_der_write(asymmetric_object *self, PyObject *args) +{ + int len=0, key_type=0; + unsigned char *buf=NULL, *p=NULL; + PyObject *asymmetric=NULL; + + if (!PyArg_ParseTuple(args, "|i", &key_type)) + goto error; + + if (key_type == 0) + key_type = self->key_type; + + switch( key_type ) + { + case RSA_PRIVATE_KEY: + { + len = i2d_RSAPrivateKey(self->cipher, NULL); + if ( !(buf = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + p = buf; + if (!i2d_RSAPrivateKey(self->cipher, &buf) ) + { PyErr_SetString( SSLErrorObject, "unable to write key" ); goto error; } + break; + } + case RSA_PUBLIC_KEY: + { + len = i2d_RSAPublicKey(self->cipher, NULL); + if ( !(buf = malloc(len) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + p = buf; + if (!i2d_RSAPublicKey(self->cipher, &buf) ) + { PyErr_SetString( SSLErrorObject, "unable to write key" ); goto error; } + break; + } + default: + { PyErr_SetString( SSLErrorObject, "unsupported key type" ); goto error; } + } + + asymmetric = Py_BuildValue("s#", p, len); + + free(p); + return asymmetric; + +error: + + if (p) + free(p); + + return NULL; +} + +static char asymmetric_object_public_encrypt__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <name>publicEncrypt</name>\n" +" <parameter>plaintext</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to encrypt the <parameter>plaintext</parameter>\n" +" using a public key. It should be noted; in practice this\n" +" function would be used almost exclusively to encrypt symmetric cipher\n" +" keys and not data since asymmetric cipher operations are very slow.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +asymmetric_object_public_encrypt(asymmetric_object *self, PyObject *args) +{ + char *plain_text=NULL, *cipher_text=NULL; + int len=0, size=0; + PyObject *obj=NULL; + + switch( self->cipher_type ) + { + case RSA_CIPHER: + { + if (!PyArg_ParseTuple(args, "s#", &plain_text, &len)) + goto error; + + size = RSA_size(self->cipher); + if ( len > size ) + { PyErr_SetString( SSLErrorObject, "plain text is too long" ); goto error; } + + if ( !(cipher_text = malloc( size + 16 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( (len = RSA_public_encrypt( len, plain_text, cipher_text, self->cipher, RSA_PKCS1_PADDING ) ) < 0 ) + { PyErr_SetString( SSLErrorObject, "could not encrypt plain text" ); goto error; } + break; + } + default: + { PyErr_SetString( SSLErrorObject, "unsupported cipher type" ); goto error; } + } + + obj = Py_BuildValue("s#", cipher_text, len); + free( cipher_text ); + return obj; + +error: + + if (cipher_text) + free(cipher_text); + + return NULL; +} + +static char asymmetric_object_private_encrypt__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <name>privateEncrypt</name>\n" +" <parameter>plaintext</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to encrypt the <parameter>plaintext</parameter>\n" +" using a private key. It should be noted; in practice this\n" +" function would be used almost exclusively to encrypt symmetric cipher\n" +" keys and not data since asymmetric cipher operations are very slow.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +asymmetric_object_private_encrypt(asymmetric_object *self, PyObject *args) +{ + char *plain_text=NULL, *cipher_text=NULL; + int len=0, size=0; + PyObject *obj=NULL; + + if ( !(self->key_type == RSA_PRIVATE_KEY) ) + { PyErr_SetString( SSLErrorObject, "cannot perform private encryption with this key" ); goto error; } + + if (!PyArg_ParseTuple(args, "s#", &plain_text, &len) ) + goto error; + + size = RSA_size(self->cipher); + if ( len > size ) + { PyErr_SetString( SSLErrorObject, "plain text is too long" ); goto error; } + + if ( !(cipher_text = malloc( size + 16 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( (len = RSA_private_encrypt( len, plain_text, cipher_text, self->cipher, RSA_PKCS1_PADDING ) ) < 0 ) + { PyErr_SetString( SSLErrorObject, "could not encrypt plain text" ); goto error; } + + obj = Py_BuildValue("s#", cipher_text, len); + free( cipher_text ); + return obj; + +error: + + if (cipher_text) + free(cipher_text); + + return NULL; +} + +static char asymmetric_object_public_decrypt__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <name>publicDecrypt</name>\n" +" <parameter>ciphertext</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to decrypt the\n" +" <parameter>ciphertext</parameter> which has been encrypted\n" +" using the corresponding private key and the\n" +" <function>privateEncrypt</function> function. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +asymmetric_object_public_decrypt(asymmetric_object *self, PyObject *args) +{ + char *plain_text=NULL, *cipher_text=NULL; + int len=0, size=0; + PyObject *obj=NULL; + + switch( self->cipher_type ) + { + case RSA_CIPHER: + { + if (!PyArg_ParseTuple(args, "s#", &cipher_text, &len)) + goto error; + + size = RSA_size(self->cipher); + if ( len > size ) + { PyErr_SetString( SSLErrorObject, "cipher text is too long" ); goto error; } + + if ( !(plain_text = malloc( size + 16 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( (len = RSA_public_decrypt( len, cipher_text, plain_text, self->cipher, RSA_PKCS1_PADDING ) ) < 0 ) + { PyErr_SetString( SSLErrorObject, "could not decrypt cipher text" ); goto error; } + break; + } + default: + { PyErr_SetString( SSLErrorObject, "unsupported cipher type" ); goto error; } + } + + obj = Py_BuildValue("s#", plain_text, len); + free( plain_text ); + return obj; + +error: + + if (plain_text) + free(plain_text); + + return NULL; +} + +static char asymmetric_object_private_decrypt__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <name>privateDecrypt</name>\n" +" <parameter>ciphertext</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to decrypt ciphertext which has been encrypted\n" +" using the corresponding public key and the\n" +" <function>publicEncrypt</function> function. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +asymmetric_object_private_decrypt(asymmetric_object *self, PyObject *args) +{ + char *plain_text=NULL, *cipher_text=NULL; + int len=0, size=0; + PyObject *obj=NULL; + + if ( !(self->key_type == RSA_PRIVATE_KEY) ) + { PyErr_SetString( SSLErrorObject, "cannot perform private decryption with this key" ); goto error; } + + if (!PyArg_ParseTuple(args, "s#", &cipher_text, &len)) + goto error; + + size = RSA_size(self->cipher); + if ( len > size ) + { PyErr_SetString( SSLErrorObject, "cipher text is too long" ); goto error; } + + if ( !(plain_text = malloc( size + 16 ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( (len = RSA_private_decrypt( len, cipher_text, plain_text, self->cipher, RSA_PKCS1_PADDING ) ) < 0 ) + { PyErr_SetString( SSLErrorObject, "could not decrypt cipher text" ); goto error; } + + obj = Py_BuildValue("s#", plain_text, len); + free( plain_text ); + return obj; + +error: + + if (plain_text) + free(plain_text); + return NULL; +} + +static char asymmetric_object_sign__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <name>sign</name>\n" +" <parameter>digesttext</parameter>\n" +" <parameter>digesttype</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to produce a signed digest text. \n" +" This instance of\n" +" <classname>Asymmetric</classname> should be a private key used for\n" +" signing. The parameter\n" +" <parameter>digesttext</parameter> should be a digest of the \n" +" data to protect against alteration and\n" +" finally <parameter>digesttype</parameter> should be one of the\n" +" following:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>MD2_DIGEST</constant></member>\n" +" <member><constant>MD5_DIGEST</constant></member>\n" +" <member><constant>SHA_DIGEST</constant></member>\n" +" <member><constant>SHA1_DIGEST</constant></member>\n" +" <member><constant>RIPEMD160_DIGEST</constant></member>\n" +" </simplelist>\n" +" <para>\n" +" If the procedure was successful, a string containing the signed\n" +" digest is returned. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +asymmetric_object_sign(asymmetric_object *self, PyObject *args) +{ + char *digest_text=NULL, *signed_text=NULL; + int digest_len=0, digest_type=0, digest_nid=0, signed_len=0; + PyObject *obj=NULL; + + if (!PyArg_ParseTuple(args, "s#i", &digest_text, &digest_len, &digest_type)) + goto error; + + if (self->key_type != RSA_PRIVATE_KEY) + { PyErr_SetString( SSLErrorObject, "unsupported key type" ); goto error; } + + if ( !(signed_text = malloc( RSA_size(self->cipher) ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + switch(digest_type) + { + case MD2_DIGEST: + { digest_nid = NID_md2; digest_len = MD2_DIGEST_LENGTH; break; } + case MD5_DIGEST: + { digest_nid = NID_md5; digest_len = MD5_DIGEST_LENGTH; break; } + case SHA_DIGEST: + { digest_nid = NID_sha; digest_len = SHA_DIGEST_LENGTH; break; } + case SHA1_DIGEST: + { digest_nid = NID_sha1; digest_len = SHA_DIGEST_LENGTH; break; } + case RIPEMD160_DIGEST: + { digest_nid = NID_ripemd160; digest_len = RIPEMD160_DIGEST_LENGTH; break; } + default: + { PyErr_SetString( SSLErrorObject, "unsupported digest" ); goto error; } + } + if ( !(RSA_sign( digest_nid, digest_text, digest_len, signed_text, &signed_len, self->cipher ) ) ) + { PyErr_SetString( SSLErrorObject, "could not sign digest" ); goto error; } + + obj = Py_BuildValue("s#", signed_text, signed_len); + free(signed_text); + return obj; + +error: + + if (signed_text) + free(signed_text); + + return NULL; +} + +static char asymmetric_object_verify__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <name>verify</name>\n" +" <parameter>signedtext</parameter>\n" +" <parameter>digesttext</parameter>\n" +" <parameter>digesttype</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to verify a signed digest text. \n" +" </para>\n" +" <example>\n" +" <title><function>verify</function> method usage</title>\n" +" <programlisting>\n" +" plain_text = 'Hello World!'\n" +" print '\tPlain text:', plain_text\n" +" digest = POW.Digest( POW.RIPEMD160_DIGEST )\n" +" digest.update( plain_text )\n" +" print '\tDigest text:', digest.digest()\n" +"\n" +" privateFile = open('test/private.key', 'r')\n" +" privateKey = POW.pemRead( POW.RSA_PRIVATE_KEY, privateFile.read(), 'pass' )\n" +" privateFile.close()\n" +" signed_text = privateKey.sign(digest.digest(), POW.RIPEMD160_DIGEST)\n" +" print '\tSigned text:', signed_text\n" +"\n" +" digest2 = POW.Digest( POW.RIPEMD160_DIGEST )\n" +" digest2.update( plain_text )\n" +" publicFile = open('test/public.key', 'r')\n" +" publicKey = POW.pemRead( POW.RSA_PUBLIC_KEY, publicFile.read() )\n" +" publicFile.close()\n" +" if publicKey.verify( signed_text, digest2.digest(), POW.RIPEMD160_DIGEST ):\n" +" print 'Signing verified!'\n" +" else:\n" +" print 'Signing gone wrong!'\n" +" </programlisting>\n" +" </example>\n" +" <para>\n" +" The parameter <parameter>signedtext</parameter> should be a \n" +" signed digest text. This instance of\n" +" <classname>Asymmetric</classname> should correspond to the private\n" +" key used to sign the digest. The parameter\n" +" <parameter>digesttext</parameter> should be a digest of the same\n" +" data used to produce the <parameter>signedtext</parameter> and\n" +" finally <parameter>digesttype</parameter> should be one of the\n" +" following:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>MD2_DIGEST</constant></member>\n" +" <member><constant>MD5_DIGEST</constant></member>\n" +" <member><constant>SHA_DIGEST</constant></member>\n" +" <member><constant>SHA1_DIGEST</constant></member>\n" +" <member><constant>RIPEMD160_DIGEST</constant></member>\n" +" </simplelist>\n" +" <para>\n" +" If the procedure was successful, 1 is returned, otherwise 0 is\n" +" returned.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; +static PyObject * +asymmetric_object_verify(asymmetric_object *self, PyObject *args) +{ + char *digest_text=NULL, *signed_text=NULL; + int digest_len=0, digest_type=0, digest_nid=0, signed_len=0, result=0; + + if (!PyArg_ParseTuple(args, "s#s#i", &signed_text, &signed_len, &digest_text, &digest_len, &digest_type)) + goto error; + + switch(digest_type) + { + case MD2_DIGEST: + { digest_len = MD2_DIGEST_LENGTH; digest_nid = NID_md2; break; } + case MD5_DIGEST: + { digest_len = MD5_DIGEST_LENGTH; digest_nid = NID_md5; break; } + case SHA_DIGEST: + { digest_len = SHA_DIGEST_LENGTH; digest_nid = NID_sha; break; } + case SHA1_DIGEST: + { digest_len = SHA_DIGEST_LENGTH; digest_nid = NID_sha1; break; } + case RIPEMD160_DIGEST: + { digest_len = RIPEMD160_DIGEST_LENGTH; digest_nid = NID_ripemd160; break; } + default: + { PyErr_SetString( SSLErrorObject, "unsupported digest" ); goto error; } + } + result = RSA_verify( digest_nid, digest_text, digest_len, signed_text, signed_len, self->cipher ); + + return Py_BuildValue("i", result); + +error: + + return NULL; +} + +static struct PyMethodDef asymmetric_object_methods[] = { + {"pemWrite", (PyCFunction)asymmetric_object_pem_write, METH_VARARGS, NULL}, + {"derWrite", (PyCFunction)asymmetric_object_der_write, METH_VARARGS, NULL}, + {"publicEncrypt", (PyCFunction)asymmetric_object_public_encrypt, METH_VARARGS, NULL}, + {"privateEncrypt",(PyCFunction)asymmetric_object_private_encrypt, METH_VARARGS, NULL}, + {"privateDecrypt",(PyCFunction)asymmetric_object_private_decrypt, METH_VARARGS, NULL}, + {"publicDecrypt", (PyCFunction)asymmetric_object_public_decrypt, METH_VARARGS, NULL}, + {"sign", (PyCFunction)asymmetric_object_sign, METH_VARARGS, NULL}, + {"verify", (PyCFunction)asymmetric_object_verify, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +asymmetric_object_getattr(asymmetric_object *self, char *name) +{ + return Py_FindMethod(asymmetric_object_methods, (PyObject *)self, name); +} + +static void +asymmetric_object_dealloc(asymmetric_object *self, char *name) +{ + switch( self->cipher_type ) + { + case RSA_CIPHER: + { + RSA_free( self->cipher ); + break; + } + } + PyObject_Del(self); +} + +static char asymmetrictype__doc__[] = +"<class>\n" +" <header>\n" +" <name>Asymmetric</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides access to RSA asymmetric ciphers in OpenSSL.\n" +" Other ciphers will probably be supported in the future but this is\n" +" not a priority.\n" +" </para>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject asymmetrictype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "Asymmetric", /*tp_name*/ + sizeof(asymmetric_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)asymmetric_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)asymmetric_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + asymmetrictype__doc__ /* Documentation string */ +}; +/*========== asymmetric Code ==========*/ + +/*========== symmetric Code ==========*/ +static symmetric_object * +symmetric_object_new(int cipher_type) +{ + symmetric_object *self=NULL; + + self = PyObject_New( symmetric_object, &symmetrictype ); + if (self == NULL) + goto error; + + self->cipher_type = cipher_type; + EVP_CIPHER_CTX_init( &self->cipher_ctx ); + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static char symmetric_object_encrypt_init__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Symmetric</memberof>\n" +" <name>encryptInit</name>\n" +" <parameter>key</parameter>\n" +" <parameter>initialvalue=''</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets up the cipher object to start encrypting a stream\n" +" of data. The first parameter is the key used to encrypt the\n" +" data. The second, the <parameter>initialvalue</parameter> serves\n" +" a similar purpose the the salt supplied to the Unix\n" +" <function>crypt</function> function.\n" +" The <parameter>initialvalue</parameter> is normally chosen at random and \n" +" often transmitted with the encrypted data, its purpose is to prevent \n" +" two identical plain texts resulting in two identical cipher texts.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +symmetric_object_encrypt_init(symmetric_object *self, PyObject *args) +{ + char *key=NULL, *iv=NULL, nulliv [] = ""; + EVP_CIPHER *cipher=NULL; + + if (!PyArg_ParseTuple(args, "s|s", &key, &iv)) + goto error; + + if (!iv) + iv = nulliv; + + if ( !(cipher = evp_cipher_factory( self->cipher_type ) ) ) + { PyErr_SetString( SSLErrorObject, "unsupported cipher" ); goto error; } + + if ( !EVP_EncryptInit( &self->cipher_ctx, cipher, key, iv ) ) + { PyErr_SetString( SSLErrorObject, "could not initialise cipher" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char symmetric_object_decrypt_init__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Symmetric</memberof>\n" +" <name>decryptInit</name>\n" +" <parameter>key</parameter>\n" +" <parameter>initialvalue=''</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method sets up the cipher object to start decrypting a stream\n" +" of data. The first value must be the key used to encrypt the\n" +" data. The second parameter is the <parameter>initialvalue</parameter> \n" +" used to encrypt the data.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +symmetric_object_decrypt_init(symmetric_object *self, PyObject *args) +{ + char *key=NULL, *iv=NULL, nulliv [] = ""; + EVP_CIPHER *cipher=NULL; + + if (!PyArg_ParseTuple(args, "s|s", &key, &iv)) + goto error; + + if (!iv) + iv = nulliv; + + if ( !(cipher = evp_cipher_factory( self->cipher_type ) ) ) + { PyErr_SetString( SSLErrorObject, "unsupported cipher" ); goto error; } + + if ( !EVP_DecryptInit( &self->cipher_ctx, cipher, key, iv ) ) + { PyErr_SetString( SSLErrorObject, "could not initialise cipher" ); goto error; } + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char symmetric_object_update__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Symmetric</memberof>\n" +" <name>update</name>\n" +" <parameter>data</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method is used to process the bulk of data being encrypted\n" +" or decrypted by the cipher object. <parameter>data</parameter>\n" +" should be a string.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +symmetric_object_update(symmetric_object *self, PyObject *args) +{ + int inl=0, outl=0; + char *in=NULL, *out=NULL; + PyObject *py_out=NULL; + + if (!PyArg_ParseTuple(args, "s#", &in, &inl)) + goto error; + + if ( !(out = malloc( inl + EVP_CIPHER_CTX_block_size( &self->cipher_ctx) ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !EVP_CipherUpdate( &self->cipher_ctx, out, &outl, in, inl ) ) + { PyErr_SetString( SSLErrorObject, "could not update cipher" ); goto error; } + + if ( !(py_out = Py_BuildValue("s#", out, outl) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + free(out); + return py_out; + +error: + + if (out) + free(out); + + return NULL; +} + +static char symmetric_object_final__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Symmetric</memberof>\n" +" <name>final</name>\n" +" <parameter>size=1024</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" Most ciphers are block ciphers, that is they encrypt or decrypt a block of\n" +" data at a time. Often the data being processed will not fill an\n" +" entire block, this method processes these half-empty blocks. A\n" +" string is returned of a maximum length <parameter>size</parameter>. \n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +symmetric_object_final(symmetric_object *self, PyObject *args) +{ + int outl=0, size=1024; + char *out=NULL; + PyObject *py_out=NULL; + + if (!PyArg_ParseTuple(args, "|i", &size)) + goto error; + + if ( !(out = malloc( size + EVP_CIPHER_CTX_block_size( &self->cipher_ctx) ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + if ( !EVP_CipherFinal( &self->cipher_ctx, out, &outl ) ) + { PyErr_SetString( SSLErrorObject, "could not update cipher" ); goto error; } + + if ( !(py_out = Py_BuildValue("s#", out, outl) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + free(out); + return py_out; + +error: + + if (out) + free(out); + + return NULL; +} + +static struct PyMethodDef symmetric_object_methods[] = { + {"encryptInit", (PyCFunction)symmetric_object_encrypt_init, METH_VARARGS, NULL}, + {"decryptInit", (PyCFunction)symmetric_object_decrypt_init, METH_VARARGS, NULL}, + {"update", (PyCFunction)symmetric_object_update, METH_VARARGS, NULL}, + {"final", (PyCFunction)symmetric_object_final, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +symmetric_object_getattr(symmetric_object *self, char *name) +{ + return Py_FindMethod(symmetric_object_methods, (PyObject *)self, name); +} + +static void +symmetric_object_dealloc(symmetric_object *self, char *name) +{ + PyObject_Del(self); +} + +static char symmetrictype__doc__[] = +"<class>\n" +" <header>\n" +" <name>Symmetric</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides access to all the symmetric ciphers in OpenSSL.\n" +" Initialisation of the cipher structures is performed late, only\n" +" when <function>encryptInit</function> or\n" +" <function>decryptInit</function> is called, the\n" +" constructor only records the cipher type. It is possible to reuse\n" +" the <classname>Symmetric</classname> objects by calling\n" +" <function>encryptInit</function> or <function>decryptInit</function>\n" +" again.\n" +" </para>\n" +" <example>\n" +" <title><classname>Symmetric</classname> class usage</title>\n" +" <programlisting>\n" +" passphrase = 'my silly passphrase'\n" +" md5 = POW.Digest( POW.MD5_DIGEST )\n" +" md5.update( passphrase )\n" +" password = md5.digest()[:8]\n" +"\n" +" plaintext = 'cast test message'\n" +" cast = POW.Symmetric( POW.CAST5_CFB ) \n" +" cast.encryptInit( password )\n" +" ciphertext = cast.update(plaintext) + cast.final()\n" +" print 'Cipher text:', ciphertext\n" +"\n" +" cast.decryptInit( password )\n" +" out = cast.update( ciphertext ) + cast.final()\n" +" print 'Deciphered text:', out\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject symmetrictype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "Symmetric", /*tp_name*/ + sizeof(symmetric_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)symmetric_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)symmetric_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + symmetrictype__doc__ /* Documentation string */ +}; +/*========== symmetric Code ==========*/ + +/*========== digest Code ==========*/ +static digest_object * +digest_object_new(int digest_type) +{ + digest_object *self=NULL; + + self = PyObject_New( digest_object, &digesttype ); + if (self == NULL) + goto error; + + switch(digest_type) + { + case MD2_DIGEST: + { self->digest_type = MD2_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_md2() ); break; } + case MD5_DIGEST: + { self->digest_type = MD5_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_md5() ); break; } + case SHA_DIGEST: + { self->digest_type = SHA_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_sha() ); break; } + case SHA1_DIGEST: + { self->digest_type = SHA1_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_sha1() ); break; } + case RIPEMD160_DIGEST: + { self->digest_type = RIPEMD160_DIGEST; EVP_DigestInit( &self->digest_ctx, EVP_ripemd160() ); break; } + default: + { PyErr_SetString( SSLErrorObject, "unsupported digest" ); goto error; } + } + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static char digest_object_update__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Digest</memberof>\n" +" <name>update</name>\n" +" <parameter>data</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method updates the internal structures of the \n" +" <classname>Digest</classname> object with <parameter>data</parameter>.\n" +" <parameter>data</parameter> should be a string.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +digest_object_update(digest_object *self, PyObject *args) +{ + char *data=NULL; + int len=0; + + if (!PyArg_ParseTuple(args, "s#", &data, &len)) + goto error; + + EVP_DigestUpdate( &self->digest_ctx, data, len ); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char digest_object_copy__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Digest</memberof>\n" +" <name>copy</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a copy of the <classname>Digest</classname>\n" +" object.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +digest_object_copy(digest_object *self, PyObject *args) +{ + digest_object *new=NULL; + + if ( !(new = PyObject_New( digest_object, &digesttype ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + new->digest_type = self->digest_type; + memcpy( &new->digest_ctx, &self->digest_ctx, sizeof(EVP_MD_CTX) ); + + return (PyObject*)new; + +error: + + Py_XDECREF(new); + return NULL; +} + +static char digest_object_digest__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Digest</memberof>\n" +" <name>digest</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns the digest of all the data which has been\n" +" processed. This function can be called at any time and will not\n" +" effect the internal structure of the <classname>digest</classname>\n" +" object.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +digest_object_digest(digest_object *self, PyObject *args) +{ + char digest_text[EVP_MAX_MD_SIZE]; + void *md_copy=NULL; + int digest_len=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( !(md_copy = malloc( sizeof(EVP_MD_CTX) ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + memcpy( md_copy, &self->digest_ctx, sizeof(EVP_MD_CTX) ); + EVP_DigestFinal( md_copy, digest_text, &digest_len ); + + free(md_copy); + return Py_BuildValue("s#", digest_text, digest_len); + +error: + + if (md_copy) + free(md_copy); + + return NULL; +} + +static struct PyMethodDef digest_object_methods[] = { + {"update", (PyCFunction)digest_object_update, METH_VARARGS, NULL}, + {"digest", (PyCFunction)digest_object_digest, METH_VARARGS, NULL}, + {"copy", (PyCFunction)digest_object_copy, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +digest_object_getattr(digest_object *self, char *name) +{ + return Py_FindMethod(digest_object_methods, (PyObject *)self, name); +} + +static void +digest_object_dealloc(digest_object *self, char *name) +{ + PyObject_Del(self); +} + +static char digesttype__doc__[] = +"<class>\n" +" <header>\n" +" <name>Digest</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides access to the digest functionality of OpenSSL.\n" +" It emulates the digest modules in the Python Standard Library but\n" +" does not currently support the <function>hexdigest</function>\n" +" function.\n" +" </para>\n" +" <example>\n" +" <title><classname>digest</classname> class usage</title>\n" +" <programlisting>\n" +" plain_text = 'Hello World!'\n" +" sha1 = POW.Digest( POW.SHA1_DIGEST )\n" +" sha1.update( plain_text )\n" +" print '\tPlain text: Hello World! =>', sha1.digest()\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject digesttype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "Digest", /*tp_name*/ + sizeof(digest_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)digest_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)digest_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + digesttype__doc__ /* Documentation string */ +}; +/*========== digest Code ==========*/ + +/*========== hmac Code ==========*/ +static hmac_object * +hmac_object_new(int digest_type, char *key, int key_len) +{ + hmac_object *self=NULL; + EVP_MD *md=NULL; + + self = PyObject_New( hmac_object, &hmactype ); + if (self == NULL) + goto error; + + switch(digest_type) + { + case MD2_DIGEST: + { md = EVP_md2(); break; } + case MD5_DIGEST: + { md = EVP_md5(); break; } + case SHA_DIGEST: + { md = EVP_sha(); break; } + case SHA1_DIGEST: + { md = EVP_sha1(); break; } + case RIPEMD160_DIGEST: + { md = EVP_ripemd160(); break; } + default: + { PyErr_SetString( SSLErrorObject, "unsupported digest" ); goto error; } + } + + HMAC_Init( &self->hmac_ctx, key, key_len, md ); + + return self; + +error: + + Py_XDECREF(self); + return NULL; +} + +static char hmac_object_update__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Hmac</memberof>\n" +" <name>update</name>\n" +" <parameter>data</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method updates the internal structures of the \n" +" <classname>Hmac</classname> object with <parameter>data</parameter>.\n" +" <parameter>data</parameter> should be a string.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +hmac_object_update(hmac_object *self, PyObject *args) +{ + char *data=NULL; + int len=0; + + if (!PyArg_ParseTuple(args, "s#", &data, &len)) + goto error; + + HMAC_Update( &self->hmac_ctx, data, len ); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char hmac_object_copy__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Hmac</memberof>\n" +" <name>copy</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns a copy of the <classname>Hmac</classname>\n" +" object.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +hmac_object_copy(hmac_object *self, PyObject *args) +{ + hmac_object *new=NULL; + + if ( !(new = PyObject_New( hmac_object, &hmactype ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + memcpy( &new->hmac_ctx, &self->hmac_ctx, sizeof(HMAC_CTX) ); + + return (PyObject*)new; + +error: + + Py_XDECREF(new); + return NULL; +} + +static char hmac_object_mac__doc__[] = +"<method>\n" +" <header>\n" +" <memberof>Hmac</memberof>\n" +" <name>mac</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This method returns the MAC of all the data which has been\n" +" processed. This function can be called at any time and will not\n" +" effect the internal structure of the <classname>Hmac</classname>\n" +" object.\n" +" </para>\n" +" </body>\n" +"</method>\n" +; + +static PyObject * +hmac_object_mac(hmac_object *self, PyObject *args) +{ + char hmac_text[EVP_MAX_MD_SIZE]; + void *hmac_copy=NULL; + int hmac_len=0; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( !(hmac_copy = malloc( sizeof(HMAC_CTX) ) ) ) + { PyErr_SetString( SSLErrorObject, "could not allocate memory" ); goto error; } + + memcpy( hmac_copy, &self->hmac_ctx, sizeof(HMAC_CTX) ); + HMAC_Final( hmac_copy, hmac_text, &hmac_len ); + + free(hmac_copy); + return Py_BuildValue("s#", hmac_text, hmac_len); + +error: + + if (hmac_copy) + free(hmac_copy); + + return NULL; +} + + +static struct PyMethodDef hmac_object_methods[] = { + {"update", (PyCFunction)hmac_object_update, METH_VARARGS, NULL}, + {"mac", (PyCFunction)hmac_object_mac, METH_VARARGS, NULL}, + {"copy", (PyCFunction)hmac_object_copy, METH_VARARGS, NULL}, + + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +hmac_object_getattr(hmac_object *self, char *name) +{ + return Py_FindMethod(hmac_object_methods, (PyObject *)self, name); +} + +static void +hmac_object_dealloc(hmac_object *self, char *name) +{ + PyObject_Del(self); +} + +static char hmactype__doc__[] = +"<class>\n" +" <header>\n" +" <name>Hmac</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This class provides access to the HMAC functionality of OpenSSL.\n" +" HMAC's are a variant on digest based MACs, which have the\n" +" interesting property of a provable level of security. HMAC is\n" +" discussed further in RFC 2104.\n" +" </para>\n" +" </body>\n" +"</class>\n" +; + +static PyTypeObject hmactype = { + PyObject_HEAD_INIT(0) + 0, /*ob_size*/ + "Hmac", /*tp_name*/ + sizeof(hmac_object), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)hmac_object_dealloc, /*tp_dealloc*/ + (printfunc)0, /*tp_print*/ + (getattrfunc)hmac_object_getattr, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)0, /*tp_compare*/ + (reprfunc)0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + (hashfunc)0, /*tp_hash*/ + (ternaryfunc)0, /*tp_call*/ + (reprfunc)0, /*tp_str*/ + 0, + 0, + 0, + 0, + hmactype__doc__ /* Documentation string */ +}; +/*========== hmac Code ==========*/ +/*========== module functions ==========*/ +static char pow_module_new_ssl__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>Ssl</memberof>\n" +" <parameter>protocol=SSLV23METHOD</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor creates a new <classname>Ssl</classname> object which will behave as a client\n" +" or server, depending on the <parameter>protocol</parameter> value passed. The\n" +" <parameter>protocol</parameter> also determines the protocol type\n" +" and version and should be one of the following:\n" +" </para>\n" +"\n" +" <simplelist>\n" +" <member><constant>SSLV2_SERVER_METHOD</constant></member>\n" +" <member><constant>SSLV2_CLIENT_METHOD</constant></member>\n" +" <member><constant>SSLV2_METHOD</constant></member>\n" +" <member><constant>SSLV3_SERVER_METHOD</constant></member>\n" +" <member><constant>SSLV3_CLIENT_METHOD</constant></member>\n" +" <member><constant>SSLV3_METHOD</constant></member>\n" +" <member><constant>TLSV1_SERVER_METHOD</constant></member>\n" +" <member><constant>TLSV1_CLIENT_METHOD</constant></member>\n" +" <member><constant>TLSV1_METHOD</constant></member>\n" +" <member><constant>SSLV23_SERVER_METHOD</constant></member>\n" +" <member><constant>SSLV23_CLIENT_METHOD</constant></member>\n" +" <member><constant>SSLV23_METHOD</constant></member>\n" +" </simplelist>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_ssl (PyObject *self, PyObject *args) +{ + ssl_object *ssl=NULL; + int ctxtype=SSLV23_METHOD; + + if (!PyArg_ParseTuple(args, "|i", &ctxtype)) + goto error; + + if ( !(ssl = newssl_object(ctxtype) ) ) + goto error; + + return (PyObject*)ssl; + +error: + + return NULL; +} + +static char pow_module_new_x509__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>X509</memberof>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor creates a skeletal X509 certificate object.\n" +" It won't be any use at all until several structures \n" +" have been created using it's member functions. \n" +" </para>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_x509 (PyObject *self, PyObject *args) +{ + x509_object *x509=NULL; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + if ( !(x509 = X509_object_new() ) ) + { PyErr_SetString( SSLErrorObject, "could not create new x509 object" ); goto error; } + + return (PyObject*)x509; + +error: + + return NULL; +} + +static char pow_module_new_asymmetric__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>Asymmetric</memberof>\n" +" <parameter>ciphertype=RSA_CIPHER</parameter>\n" +" <parameter>keylength=1024</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor builds a new cipher object. Only RSA ciphers\n" +" are currently support, so the first argument should always be\n" +" <constant>RSA_CIPHER</constant>. The second argument,\n" +" <parameter>keylength</parameter>,\n" +" is normally 512, 768, 1024 or 2048. Key lengths as short as 512\n" +" bits are generally considered weak, and can be cracked by\n" +" determined attackers without tremendous expense.\n" +" </para>\n" +" <example>\n" +" <title><classname>asymmetric</classname> class usage</title>\n" +" <programlisting>\n" +" privateFile = open('test/private.key', 'w')\n" +" publicFile = open('test/public.key', 'w')\n" +"\n" +" passphrase = 'my silly passphrase'\n" +" md5 = POW.Digest( POW.MD5_DIGEST )\n" +" md5.update( passphrase )\n" +" password = md5.digest()\n" +"\n" +" rsa = POW.Asymmetric( POW.RSA_CIPHER, 1024 )\n" +" privateFile.write( rsa.pemWrite( \n" +" POW.RSA_PRIVATE_KEY, POW.DES_EDE3_CFB, password ) )\n" +" publicFile.write( rsa.pemWrite( POW.RSA_PUBLIC_KEY ) )\n" +"\n" +" privateFile.close()\n" +" publicFile.close()\n" +" </programlisting>\n" +" </example>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_asymmetric (PyObject *self, PyObject *args) +{ + int cipher_type=RSA_CIPHER, key_size=1024; + + if (!PyArg_ParseTuple(args, "|ii", &cipher_type, &key_size)) + goto error; + + return (PyObject*)asymmetric_object_new( cipher_type, key_size ); + +error: + + return NULL; +} + +static char pow_module_new_digest__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>Digest</memberof>\n" +" <parameter>type</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor creates a new <classname>Digest</classname>\n" +" object. The parameter <parameter>type</parameter> specifies what kind\n" +" of digest to create and should be one of the following: \n" +" </para>\n" +" <simplelist>\n" +" <member><constant>MD2_DIGEST</constant></member>\n" +" <member><constant>MD5_DIGEST</constant></member>\n" +" <member><constant>SHA_DIGEST</constant></member>\n" +" <member><constant>SHA1_DIGEST</constant></member>\n" +" <member><constant>RIPEMD160_DIGEST</constant></member>\n" +" </simplelist>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_digest (PyObject *self, PyObject *args) +{ + int digest_type=0; + + if (!PyArg_ParseTuple(args, "i", &digest_type)) + goto error; + + return (PyObject*)digest_object_new( digest_type ); + +error: + + return NULL; +} + +static char pow_module_new_hmac__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>Hmac</memberof>\n" +" <parameter>type</parameter>\n" +" <parameter>key</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor creates a new <classname>Hmac</classname>\n" +" object. The parameter <parameter>key</parameter> should be a\n" +" string and <parameter>type</parameter> should be one of the following: \n" +" </para>\n" +" <simplelist>\n" +" <member><constant>MD2_DIGEST</constant></member>\n" +" <member><constant>MD5_DIGEST</constant></member>\n" +" <member><constant>SHA_DIGEST</constant></member>\n" +" <member><constant>SHA1_DIGEST</constant></member>\n" +" <member><constant>RIPEMD160_DIGEST</constant></member>\n" +" </simplelist>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_hmac (PyObject *self, PyObject *args) +{ + int digest_type=0, key_len=0; + char *key=NULL; + + if (!PyArg_ParseTuple(args, "is#", &digest_type, &key, &key_len)) + goto error; + + return (PyObject*)hmac_object_new( digest_type, key, key_len ); + +error: + + return NULL; +} + +static char pow_module_pem_read__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>pemRead</name>\n" +" <parameter>type</parameter>\n" +" <parameter>string</parameter>\n" +" <parameter>pass=None</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function attempts to parse the <parameter>string</parameter> according to the PEM\n" +" type passed. <parameter>type</parameter> should be one of the\n" +" following:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>RSA_PUBLIC_KEY</constant></member>\n" +" <member><constant>RSA_PRIVATE_KEY</constant></member>\n" +" <member><constant>X509_CERTIFICATE</constant></member>\n" +" <member><constant>X509_CRL</constant></member>\n" +" </simplelist>\n" +" <para>\n" +" <parameter>pass</parameter> should only be provided if an encrypted\n" +" <classname>Asymmetric</classname> is being loaded. If the password\n" +" is incorrect an exception will be raised, if no password is provided\n" +" and the PEM file is encrypted the user will be prompted. If this is\n" +" not desirable, always supply a password. The object returned will be \n" +" and instance of <classname>Asymmetric</classname>, \n" +" <classname>X509</classname> or <classname>X509Crl</classname>.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_pem_read (PyObject *self, PyObject *args) +{ + BIO *in=NULL; + PyObject *obj=NULL; + int object_type=0, len=0; + char *pass=NULL, *src=NULL; + + if (!PyArg_ParseTuple(args, "is#|s", &object_type, &src, &len, &pass)) + goto error; + + if ( !(in = BIO_new_mem_buf(src, -1) ) ) + { PyErr_SetString( SSLErrorObject, "unable to create new BIO" ); goto error; } + + if ( !BIO_write( in, src, len ) ) + { PyErr_SetString( SSLErrorObject, "unable to write to BIO" ); goto error; } + + switch(object_type) + { + case RSA_PRIVATE_KEY: + { obj = (PyObject*)asymmetric_object_pem_read( object_type, in, pass ); break; } + case RSA_PUBLIC_KEY: + { obj = (PyObject*)asymmetric_object_pem_read( object_type, in, pass ); break; } + case X509_CERTIFICATE: + { obj = (PyObject*)X509_object_pem_read( in ); break ; } + case X_X509_CRL: + { obj = (PyObject*)x509_crl_object_pem_read( in ); break ; } + + default: + { PyErr_SetString( SSLErrorObject, "unknown pem encoding" ); goto error; } + } + + BIO_free(in); + + if (obj) + return obj; + +error: + + return NULL; +} + + + + +static char pow_module_der_read__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>derRead</name>\n" +" <parameter>type</parameter>\n" +" <parameter>string</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function attempts to parse the <parameter>string</parameter> according to the PEM\n" +" type passed. <parameter>type</parameter> should be one of the\n" +" following:\n" +" </para>\n" +" <simplelist>\n" +" <member><constant>RSA_PUBLIC_KEY</constant></member>\n" +" <member><constant>RSA_PRIVATE_KEY</constant></member>\n" +" <member><constant>X509_CERTIFICATE</constant></member>\n" +" <member><constant>X509_CRL</constant></member>\n" +" </simplelist>\n" +" <para>\n" +" As with the PEM operations, the object returned will be and instance \n" +" of <classname>Asymmetric</classname>, <classname>X509</classname> or \n" +" <classname>X509Crl</classname>.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_der_read (PyObject *self, PyObject *args) +{ + PyObject *obj=NULL; + int object_type=0, len=0; + char *src=NULL; + + if (!PyArg_ParseTuple(args, "is#", &object_type, &src, &len)) + goto error; + + switch(object_type) + { + case RSA_PRIVATE_KEY: + { obj = (PyObject*)asymmetric_object_der_read( object_type, src, len ); break; } + case RSA_PUBLIC_KEY: + { obj = (PyObject*)asymmetric_object_der_read( object_type, src, len ); break; } + case X509_CERTIFICATE: + { obj = (PyObject*)X509_object_der_read( src, len ); break ; } + case X_X509_CRL: + { obj = (PyObject*)x509_crl_object_der_read( src, len ); break ; } + + default: + { PyErr_SetString( SSLErrorObject, "unknown der encoding" ); goto error; } + } + + if (obj) + return obj; + +error: + + return NULL; +} + +static char pow_module_new_x509_store__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>X509Store</memberof>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor takes no arguments. The\n" +" <classname>X509Store</classname> returned cannot be used for\n" +" verifying certificates until at least one trusted certificate has been\n" +" added.\n" +" </para>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_x509_store (PyObject *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + return (PyObject*)x509_store_object_new(); + +error: + + return NULL; +} + +static char pow_module_new_symmetric__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>Symmetric</memberof>\n" +" <parameter>type</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor creates a new <classname>Symmetric</classname>\n" +" object. The parameter <parameter>type</parameter> specifies which kind\n" +" of cipher to create. <constant>type</constant> should be one of the following: \n" +" </para>\n" +" <simplelist columns=\"2\">\n" +" <member><constant>DES_ECB</constant></member> \n" +" <member><constant>DES_EDE</constant></member>\n" +" <member><constant>DES_EDE3</constant></member> \n" +" <member><constant>DES_CFB</constant></member> \n" +" <member><constant>DES_EDE_CFB</constant></member> \n" +" <member><constant>DES_EDE3_CFB</constant></member>\n" +" <member><constant>DES_OFB</constant></member>\n" +" <member><constant>DES_EDE_OFB</constant></member>\n" +" <member><constant>DES_EDE3_OFB</constant></member>\n" +" <member><constant>DES_CBC</constant></member>\n" +" <member><constant>DES_EDE_CBC</constant></member>\n" +" <member><constant>DES_EDE3_CBC</constant></member>\n" +" <member><constant>DESX_CBC</constant></member>\n" +" <member><constant>RC4</constant></member>\n" +" <member><constant>RC4_40</constant></member>\n" +" <member><constant>IDEA_ECB</constant></member>\n" +" <member><constant>IDEA_CFB</constant></member>\n" +" <member><constant>IDEA_OFB</constant></member>\n" +" <member><constant>IDEA_CBC</constant></member>\n" +" <member><constant>RC2_ECB</constant></member>\n" +" <member><constant>RC2_CBC</constant></member>\n" +" <member><constant>RC2_40_CBC</constant></member>\n" +" <member><constant>RC2_CFB</constant></member>\n" +" <member><constant>RC2_OFB</constant></member>\n" +" <member><constant>BF_ECB</constant></member>\n" +" <member><constant>BF_CBC</constant></member>\n" +" <member><constant>BF_CFB</constant></member>\n" +" <member><constant>BF_OFB</constant></member>\n" +" <member><constant>CAST5_ECB</constant></member>\n" +" <member><constant>CAST5_CBC</constant></member>\n" +" <member><constant>CAST5_CFB</constant></member>\n" +" <member><constant>CAST5_OFB</constant></member>\n" +" <member><constant>RC5_32_12_16_CBC</constant></member>\n" +" <member><constant>RC5_32_12_16_CFB</constant></member>\n" +" <member><constant>RC5_32_12_16_ECB</constant></member>\n" +" <member><constant>RC5_32_12_16_OFB</constant></member>\n" +" </simplelist>\n" +" <para>\n" +" Please note your version of OpenSSL might not have been compiled with\n" +" all the ciphers listed above. If that is the case, which is very\n" +" likely if you are using a stock binary, the unsuported ciphers will not even\n" +" be in the module namespace.\n" +" </para>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_symmetric (PyObject *self, PyObject *args) +{ + int cipher_type=0; + + if (!PyArg_ParseTuple(args, "i", &cipher_type)) + goto error; + + return (PyObject*)symmetric_object_new(cipher_type); + +error: + + return NULL; +} + +static char pow_module_new_x509_crl__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>x509_crl</memberof>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor builds an empty CRL.\n" +" </para>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_x509_crl (PyObject *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + return (PyObject*)x509_crl_object_new(); + +error: + + return NULL; +} + +static char pow_module_new_x509_revoked__doc__[] = +"<constructor>\n" +" <header>\n" +" <memberof>X509Revoked</memberof>\n" +" <parameter>serial</parameter>\n" +" <parameter>date</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This constructor builds a X509 Revoked structure. <parameter>serial</parameter>\n" +" should be an integer and <parameter>date</parameter> should be and\n" +" UTCTime string.\n" +" </para>\n" +" </body>\n" +"</constructor>\n" +; + +static PyObject * +pow_module_new_x509_revoked (PyObject *self, PyObject *args) +{ + int serial=-1; + char *date=NULL; + x509_revoked_object *revoke=NULL; + + if (!PyArg_ParseTuple(args, "|is", &serial, &date)) + goto error; + + revoke = x509_revoked_object_new(); + if (serial != -1) + if ( !ASN1_INTEGER_set( revoke->revoked->serialNumber, serial ) ) + { PyErr_SetString( SSLErrorObject, "unable to set serial number" ); goto error; } + + if (date != NULL) + if (!ASN1_UTCTIME_set_string( revoke->revoked->revocationDate, date )) + { PyErr_SetString( PyExc_TypeError, "could not set revocationDate" ); goto error; } + + return (PyObject*)revoke; + +error: + + return NULL; +} + +static char pow_module_add_object__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>addObject</name>\n" +" <parameter>oid</parameter>\n" +" <parameter>shortName</parameter>\n" +" <parameter>longName</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function can be used to dynamically add new objects to\n" +" OpenSSL. The <parameter>oid</parameter> should be a string of space separated numbers\n" +" and <parameter>shortName</parameter> and\n" +" <parameter>longName</parameter> are the names of the object, ie\n" +" 'cn' and 'commonName'.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_add_object(PyObject *self, PyObject *args) +{ + char *oid=NULL, *sn=NULL, *ln=NULL; + + if (!PyArg_ParseTuple(args, "sss", &oid, &sn, &ln)) + goto error; + + if (!OBJ_create(oid, sn, ln) ) + {PyErr_SetString(SSLErrorObject, "unable to add object"); goto error;} + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char pow_module_get_error__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>getError</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" Pops an error off the global error stack and returns it as a string.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_get_error(PyObject *self, PyObject *args) +{ + unsigned long error; + char buf[256]; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + error = ERR_get_error(); + ERR_error_string( error, buf ); + + return Py_BuildValue("s", buf); + +error: + + return NULL; +} + +static char pow_module_clear_error__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>clearError</name>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" Removes all errors from the global error stack.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_clear_error(PyObject *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + goto error; + + ERR_clear_error(); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char pow_module_seed__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>seed</name>\n" +" <parameter>data</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" The <function>seed</function> function adds data to OpenSSLs PRNG\n" +" state. It is often said the hardest part of cryptography is\n" +" getting good random data, after all if you don't have good random\n" +" data, a 1024 bit key is no better than a 512 bit key and neither\n" +" would provide protection from a targeted brute force attack.\n" +" The <function>seed</function> and <function>add</function> are very\n" +" similar, except the entropy of the data is assumed to be equal to\n" +" the length for <function>seed</function>. I final point to be aware \n" +" of, only systems which support /dev/urandom are automatically seeded. \n" +" If your system does not support /dev/urandom it is your responsibility \n" +" to seed OpenSSL's PRNG.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_seed(PyObject *self, PyObject *args) +{ + char *in=NULL; + int inl=0; + + if (!PyArg_ParseTuple(args, "s#", &in, &inl)) + goto error; + + RAND_seed( in, inl ); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char pow_module_add__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>add</name>\n" +" <parameter>data</parameter>\n" +" <parameter>entropy</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" The <function>add</function> function adds data to OpenSSLs PRNG\n" +" state. <parameter>data</parameter> should be data obtained from a\n" +" random source and <parameter>entropy</parameter> is an estimation of the number of random\n" +" bytes in <parameter>data</parameter>.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_add(PyObject *self, PyObject *args) +{ + char *in=NULL; + int inl=0; + double entropy=0; + + if (!PyArg_ParseTuple(args, "s#d", &in, &inl, &entropy)) + goto error; + + RAND_add( in, inl, entropy ); + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char pow_module_write_random_file__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>writeRandomFile</name>\n" +" <parameter>filename</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function writes the current random state to a file. Clearly\n" +" this function should be used in conjunction with\n" +" <function>readRandomFile</function>.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_write_random_file(PyObject *self, PyObject *args) +{ + char *file=NULL; + + if (!PyArg_ParseTuple(args, "s", &file)) + goto error; + + if ( RAND_write_file( file ) == -1 ) + {PyErr_SetString(SSLErrorObject, "could not write random file"); goto error;} + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static char pow_module_read_random_file__doc__[] = +"<modulefunction>\n" +" <header>\n" +" <name>readRandomFile</name>\n" +" <parameter>filename</parameter>\n" +" </header>\n" +" <body>\n" +" <para>\n" +" This function reads a previously saved random state. It can be very\n" +" useful to improve the quality of random data used by an application.\n" +" The random data should be added to, using the\n" +" <function>add</function> function, with data from other\n" +" suitable random sources.\n" +" </para>\n" +" </body>\n" +"</modulefunction>\n" +; + +static PyObject * +pow_module_read_random_file(PyObject *self, PyObject *args) +{ + char *file=NULL; + int len=-1; + + if (!PyArg_ParseTuple(args, "s|i", &file, &len)) + goto error; + + if (!RAND_load_file( file, len ) ) + {PyErr_SetString(SSLErrorObject, "could not load random file"); goto error;} + + return Py_BuildValue(""); + +error: + + return NULL; +} + +static PyObject * +pow_module_docset(PyObject *self, PyObject *args) +{ + PyObject *docset; + + if (!PyArg_ParseTuple(args, "")) + goto error; + + docset = PyList_New(0); + // module documentation + docset_helper_add( docset, pow_module__doc__ ); + // constructors + docset_helper_add( docset, pow_module_new_symmetric__doc__ ); + docset_helper_add( docset, pow_module_new_asymmetric__doc__ ); + docset_helper_add( docset, pow_module_new_digest__doc__ ); + docset_helper_add( docset, pow_module_new_hmac__doc__ ); + docset_helper_add( docset, pow_module_new_ssl__doc__ ); + docset_helper_add( docset, pow_module_new_x509__doc__ ); + docset_helper_add( docset, pow_module_new_x509_store__doc__ ); + docset_helper_add( docset, pow_module_new_x509_crl__doc__ ); + docset_helper_add( docset, pow_module_new_x509_revoked__doc__ ); + // functions + docset_helper_add( docset, pow_module_pem_read__doc__ ); + docset_helper_add( docset, pow_module_der_read__doc__ ); + docset_helper_add( docset, pow_module_seed__doc__ ); + docset_helper_add( docset, pow_module_add__doc__ ); + docset_helper_add( docset, pow_module_read_random_file__doc__ ); + docset_helper_add( docset, pow_module_write_random_file__doc__ ); + docset_helper_add( docset, pow_module_get_error__doc__ ); + docset_helper_add( docset, pow_module_clear_error__doc__ ); + docset_helper_add( docset, pow_module_add_object__doc__ ); + + // ssl documentation + docset_helper_add( docset, ssltype__doc__ ); + docset_helper_add( docset, ssl_object_set_fd__doc__ ); + docset_helper_add( docset, ssl_object_accept__doc__ ); + docset_helper_add( docset, ssl_object_connect__doc__ ); + docset_helper_add( docset, ssl_object_write__doc__ ); + docset_helper_add( docset, ssl_object_read__doc__ ); + docset_helper_add( docset, ssl_object_peer_certificate__doc__ ); + docset_helper_add( docset, ssl_object_use_certificate__doc__ ); + docset_helper_add( docset, ssl_object_use_key__doc__ ); + docset_helper_add( docset, ssl_object_check_key__doc__ ); + docset_helper_add( docset, ssl_object_clear__doc__ ); + docset_helper_add( docset, ssl_object_shutdown__doc__ ); + docset_helper_add( docset, ssl_object_get_shutdown__doc__ ); + docset_helper_add( docset, ssl_object_get_ciphers__doc__ ); + docset_helper_add( docset, ssl_object_set_ciphers__doc__ ); + docset_helper_add( docset, ssl_object_get_cipher__doc__ ); + docset_helper_add( docset, ssl_object_set_verify_mode__doc__ ); + + // x509 documentation + docset_helper_add( docset, x509type__doc__ ); + docset_helper_add( docset, X509_object_pem_write__doc__ ); + docset_helper_add( docset, X509_object_der_write__doc__ ); + docset_helper_add( docset, X509_object_sign__doc__ ); + docset_helper_add( docset, X509_object_set_public_key__doc__ ); + docset_helper_add( docset, X509_object_get_version__doc__ ); + docset_helper_add( docset, X509_object_set_version__doc__ ); + docset_helper_add( docset, X509_object_get_serial__doc__ ); + docset_helper_add( docset, X509_object_set_serial__doc__ ); + docset_helper_add( docset, X509_object_get_issuer__doc__ ); + docset_helper_add( docset, X509_object_set_issuer__doc__ ); + docset_helper_add( docset, X509_object_get_subject__doc__ ); + docset_helper_add( docset, X509_object_set_subject__doc__ ); + docset_helper_add( docset, X509_object_get_not_before__doc__ ); + docset_helper_add( docset, X509_object_set_not_before__doc__ ); + docset_helper_add( docset, X509_object_get_not_after__doc__ ); + docset_helper_add( docset, X509_object_set_not_after__doc__ ); + docset_helper_add( docset, X509_object_add_extension__doc__ ); + docset_helper_add( docset, X509_object_clear_extensions__doc__ ); + docset_helper_add( docset, X509_object_count_extensions__doc__ ); + docset_helper_add( docset, X509_object_get_extension__doc__ ); + docset_helper_add( docset, x509_object_pprint__doc__ ); + + // x509_crl documentation + docset_helper_add( docset, x509_crltype__doc__ ); + docset_helper_add( docset, x509_crl_object_pem_write__doc__ ); + docset_helper_add( docset, x509_crl_object_der_write__doc__ ); + docset_helper_add( docset, x509_crl_object_get_version__doc__ ); + docset_helper_add( docset, x509_crl_object_set_version__doc__ ); + docset_helper_add( docset, x509_crl_object_get_issuer__doc__ ); + docset_helper_add( docset, x509_crl_object_set_issuer__doc__ ); + docset_helper_add( docset, x509_crl_object_get_this_update__doc__ ); + docset_helper_add( docset, x509_crl_object_set_this_update__doc__ ); + docset_helper_add( docset, x509_crl_object_get_next_update__doc__ ); + docset_helper_add( docset, x509_crl_object_set_next_update__doc__ ); + docset_helper_add( docset, x509_crl_object_get_revoked__doc__ ); + docset_helper_add( docset, x509_crl_object_set_revoked__doc__ ); + docset_helper_add( docset, x509_crl_object_verify__doc__ ); + docset_helper_add( docset, x509_crl_object_sign__doc__ ); + docset_helper_add( docset, X509_crl_object_add_extension__doc__ ); + docset_helper_add( docset, X509_crl_object_clear_extensions__doc__ ); + docset_helper_add( docset, X509_crl_object_count_extensions__doc__ ); + docset_helper_add( docset, X509_crl_object_get_extension__doc__ ); + docset_helper_add( docset, x509_crl_object_pprint__doc__ ); + + // x509_revoked documentation + docset_helper_add( docset, x509_revokedtype__doc__ ); + docset_helper_add( docset, x509_revoked_object_get_date__doc__ ); + docset_helper_add( docset, x509_revoked_object_set_date__doc__ ); + docset_helper_add( docset, x509_revoked_object_get_serial__doc__ ); + docset_helper_add( docset, x509_revoked_object_set_serial__doc__ ); + docset_helper_add( docset, X509_revoked_object_add_extension__doc__ ); + docset_helper_add( docset, X509_revoked_object_clear_extensions__doc__ ); + docset_helper_add( docset, X509_revoked_object_count_extensions__doc__ ); + docset_helper_add( docset, X509_revoked_object_get_extension__doc__ ); + + // x509_store documentation + docset_helper_add( docset, x509_storetype__doc__ ); + docset_helper_add( docset, x509_store_object_verify__doc__ ); + docset_helper_add( docset, x509_store_object_verify_chain__doc__ ); + docset_helper_add( docset, x509_store_object_add_trust__doc__ ); + docset_helper_add( docset, x509_store_object_add_crl__doc__ ); + + // digest documentation + docset_helper_add( docset, digesttype__doc__ ); + docset_helper_add( docset, digest_object_update__doc__ ); + docset_helper_add( docset, digest_object_copy__doc__ ); + docset_helper_add( docset, digest_object_digest__doc__ ); + + // hmac documentation + docset_helper_add( docset, hmactype__doc__ ); + docset_helper_add( docset, hmac_object_update__doc__ ); + docset_helper_add( docset, hmac_object_copy__doc__ ); + docset_helper_add( docset, hmac_object_mac__doc__ ); + + // symmetric documentation + docset_helper_add( docset, symmetrictype__doc__ ); + docset_helper_add( docset, symmetric_object_encrypt_init__doc__ ); + docset_helper_add( docset, symmetric_object_decrypt_init__doc__ ); + docset_helper_add( docset, symmetric_object_update__doc__ ); + docset_helper_add( docset, symmetric_object_final__doc__ ); + + // asymmetric documentation + docset_helper_add( docset, asymmetrictype__doc__ ); + docset_helper_add( docset, asymmetric_object_pem_write__doc__ ); + docset_helper_add( docset, asymmetric_object_der_write__doc__ ); + docset_helper_add( docset, asymmetric_object_public_encrypt__doc__ ); + docset_helper_add( docset, asymmetric_object_public_decrypt__doc__ ); + docset_helper_add( docset, asymmetric_object_private_encrypt__doc__ ); + docset_helper_add( docset, asymmetric_object_private_decrypt__doc__ ); + docset_helper_add( docset, asymmetric_object_sign__doc__ ); + docset_helper_add( docset, asymmetric_object_verify__doc__ ); + + return Py_BuildValue("O", docset); + +error: + + return NULL; +} + +static struct PyMethodDef pow_module_methods[] = { + {"Ssl", (PyCFunction)pow_module_new_ssl, METH_VARARGS, NULL}, + {"X509", (PyCFunction)pow_module_new_x509, METH_VARARGS, NULL}, + {"pemRead", (PyCFunction)pow_module_pem_read, METH_VARARGS, NULL}, + {"derRead", (PyCFunction)pow_module_der_read, METH_VARARGS, NULL}, + {"Digest", (PyCFunction)pow_module_new_digest, METH_VARARGS, NULL}, + {"Hmac", (PyCFunction)pow_module_new_hmac, METH_VARARGS, NULL}, + {"Asymmetric", (PyCFunction)pow_module_new_asymmetric, METH_VARARGS, NULL}, + {"Symmetric", (PyCFunction)pow_module_new_symmetric, METH_VARARGS, NULL}, + {"X509Store", (PyCFunction)pow_module_new_x509_store, METH_VARARGS, NULL}, + {"X509Crl", (PyCFunction)pow_module_new_x509_crl, METH_VARARGS, NULL}, + {"X509Revoked", (PyCFunction)pow_module_new_x509_revoked, METH_VARARGS, NULL}, + {"getError", (PyCFunction)pow_module_get_error, METH_VARARGS, NULL}, + {"clearError", (PyCFunction)pow_module_clear_error, METH_VARARGS, NULL}, + {"seed", (PyCFunction)pow_module_seed, METH_VARARGS, NULL}, + {"add", (PyCFunction)pow_module_add, METH_VARARGS, NULL}, + {"readRandomFile",(PyCFunction)pow_module_read_random_file, METH_VARARGS, NULL}, + {"writeRandomFile", (PyCFunction)pow_module_write_random_file, METH_VARARGS, NULL}, + {"addObject", (PyCFunction)pow_module_add_object, METH_VARARGS, NULL}, + + {"_docset", (PyCFunction)pow_module_docset, METH_VARARGS, NULL}, + + {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */ +}; +/*========== module functions ==========*/ + + +/*==========================================================================*/ +void +init_POW(void) +{ + PyObject *m, *d; + + x509type.ob_type = &PyType_Type; + x509_storetype.ob_type = &PyType_Type; + x509_crltype.ob_type = &PyType_Type; + x509_revokedtype.ob_type = &PyType_Type; + ssltype.ob_type = &PyType_Type; + asymmetrictype.ob_type = &PyType_Type; + symmetrictype.ob_type = &PyType_Type; + digesttype.ob_type = &PyType_Type; + hmactype.ob_type = &PyType_Type; + + m = Py_InitModule4("_POW", pow_module_methods, + pow_module__doc__, + (PyObject*)NULL,PYTHON_API_VERSION); + + d = PyModule_GetDict(m); + SSLErrorObject = PyString_FromString("POW.SSLError"); + PyDict_SetItemString(d, "SSLError", SSLErrorObject); + + // constants for SSL_get_error() + install_int_const( d, "SSL_ERROR_NONE", SSL_ERROR_NONE ); + install_int_const( d, "SSL_ERROR_ZERO_RETURN", SSL_ERROR_ZERO_RETURN ); + install_int_const( d, "SSL_ERROR_WANT_READ", SSL_ERROR_WANT_READ ); + install_int_const( d, "SSL_ERROR_WANT_WRITE", SSL_ERROR_WANT_WRITE ); + install_int_const( d, "SSL_ERROR_WANT_X509_LOOKUP",SSL_ERROR_WANT_X509_LOOKUP ); + install_int_const( d, "SSL_ERROR_SYSCALL", SSL_ERROR_SYSCALL ); + install_int_const( d, "SSL_ERROR_SSL", SSL_ERROR_SSL ); + + // constants for different types of connection methods + install_int_const( d, "SSLV2_SERVER_METHOD", SSLV2_SERVER_METHOD ); + install_int_const( d, "SSLV2_CLIENT_METHOD", SSLV2_CLIENT_METHOD ); + install_int_const( d, "SSLV2_METHOD", SSLV2_METHOD ); + install_int_const( d, "SSLV3_SERVER_METHOD", SSLV3_SERVER_METHOD ); + install_int_const( d, "SSLV3_CLIENT_METHOD", SSLV3_CLIENT_METHOD ); + install_int_const( d, "SSLV3_METHOD", SSLV3_METHOD ); + install_int_const( d, "SSLV23_SERVER_METHOD", SSLV23_SERVER_METHOD ); + install_int_const( d, "SSLV23_CLIENT_METHOD", SSLV23_CLIENT_METHOD ); + install_int_const( d, "SSLV23_METHOD", SSLV23_METHOD ); + install_int_const( d, "TLSV1_SERVER_METHOD", TLSV1_SERVER_METHOD ); + install_int_const( d, "TLSV1_CLIENT_METHOD", TLSV1_CLIENT_METHOD ); + install_int_const( d, "TLSV1_METHOD", TLSV1_METHOD ); + + install_int_const( d, "SSL_NO_SHUTDOWN", 0 ); + install_int_const( d, "SSL_SENT_SHUTDOWN", SSL_SENT_SHUTDOWN ); + install_int_const( d, "SSL_RECIEVED_SHUTDOWN", SSL_RECEIVED_SHUTDOWN ); + + // ssl verification mode + install_int_const( d, "SSL_VERIFY_NONE", SSL_VERIFY_NONE ); + install_int_const( d, "SSL_VERIFY_PEER", SSL_VERIFY_PEER ); + + // object format types + install_int_const( d, "LONGNAME_FORMAT", LONGNAME_FORMAT ); + install_int_const( d, "SHORTNAME_FORMAT", SHORTNAME_FORMAT ); + + // PEM encoded types +#ifndef NO_RSA + install_int_const( d, "RSA_PUBLIC_KEY", RSA_PUBLIC_KEY ); + install_int_const( d, "RSA_PRIVATE_KEY", RSA_PRIVATE_KEY ); +#endif +#ifndef NO_DSA + install_int_const( d, "DSA_PUBLIC_KEY", DSA_PUBLIC_KEY ); + install_int_const( d, "DSA_PRIVATE_KEY", DSA_PRIVATE_KEY ); +#endif +#ifndef NO_DH + install_int_const( d, "DH_PUBLIC_KEY", DH_PUBLIC_KEY ); + install_int_const( d, "DH_PRIVATE_KEY", DH_PRIVATE_KEY ); +#endif + install_int_const( d, "X509_CERTIFICATE", X509_CERTIFICATE ); + install_int_const( d, "X509_CRL", X_X509_CRL ); + + // asymmetric ciphers +#ifndef NO_RSA + install_int_const( d, "RSA_CIPHER", RSA_CIPHER ); +#endif +#ifndef NO_DSA + install_int_const( d, "DSA_CIPHER", DSA_CIPHER ); +#endif +#ifndef NO_DH + install_int_const( d, "DH_CIPHER", DH_CIPHER ); +#endif + + // symmetric ciphers +#ifndef NO_DES + install_int_const( d, "DES_ECB", DES_ECB ); + install_int_const( d, "DES_EDE", DES_EDE ); + install_int_const( d, "DES_EDE3", DES_EDE3 ); + install_int_const( d, "DES_CFB", DES_CFB ); + install_int_const( d, "DES_EDE_CFB", DES_EDE_CFB ); + install_int_const( d, "DES_EDE3_CFB", DES_EDE3_CFB ); + install_int_const( d, "DES_OFB", DES_OFB ); + install_int_const( d, "DES_EDE_OFB", DES_EDE_OFB ); + install_int_const( d, "DES_EDE3_OFB", DES_EDE3_OFB ); + install_int_const( d, "DES_CBC", DES_CBC ); + install_int_const( d, "DES_EDE_CBC", DES_EDE_CBC ); + install_int_const( d, "DES_EDE3_CBC", DES_EDE3_CBC ); + install_int_const( d, "DESX_CBC", DESX_CBC ); +#endif +#ifndef NO_RC4 + install_int_const( d, "RC4", RC4 ); + install_int_const( d, "RC4_40", RC4_40 ); +#endif +#ifndef NO_IDEA + install_int_const( d, "IDEA_ECB", IDEA_ECB ); + install_int_const( d, "IDEA_CFB", IDEA_CFB ); + install_int_const( d, "IDEA_OFB", IDEA_OFB ); + install_int_const( d, "IDEA_CBC", IDEA_CBC ); +#endif +#ifndef NO_RC2 + install_int_const( d, "RC2_ECB", RC2_ECB ); + install_int_const( d, "RC2_CBC", RC2_CBC ); + install_int_const( d, "RC2_40_CBC", RC2_40_CBC ); + install_int_const( d, "RC2_CFB", RC2_CFB ); + install_int_const( d, "RC2_OFB", RC2_OFB ); +#endif +#ifndef NO_BF + install_int_const( d, "BF_ECB", BF_ECB ); + install_int_const( d, "BF_CBC", BF_CBC ); + install_int_const( d, "BF_CFB", BF_CFB ); + install_int_const( d, "BF_OFB", BF_OFB ); +#endif + install_int_const( d, "CAST5_ECB", CAST5_ECB ); + install_int_const( d, "CAST5_CBC", CAST5_CBC ); + install_int_const( d, "CAST5_CFB", CAST5_CFB ); + install_int_const( d, "CAST5_OFB", CAST5_OFB ); +#ifndef NO_RC5_32_12_16 + install_int_const( d, "RC5_32_12_16_CBC", RC5_32_12_16_CBC ); + install_int_const( d, "RC5_32_12_16_CFB", RC5_32_12_16_CFB ); + install_int_const( d, "RC5_32_12_16_ECB", RC5_32_12_16_ECB ); + install_int_const( d, "RC5_32_12_16_OFB", RC5_32_12_16_OFB ); +#endif + + // message digests + install_int_const( d, "MD2_DIGEST", MD2_DIGEST ); + install_int_const( d, "MD5_DIGEST", MD5_DIGEST ); + install_int_const( d, "SHA_DIGEST", SHA_DIGEST ); + install_int_const( d, "SHA1_DIGEST", SHA1_DIGEST ); + install_int_const( d, "RIPEMD160_DIGEST", RIPEMD160_DIGEST ); + + // general name + install_int_const( d, "GEN_OTHERNAME", GEN_OTHERNAME ); + install_int_const( d, "GEN_EMAIL", GEN_EMAIL ); + install_int_const( d, "GEN_DNS", GEN_DNS ); + install_int_const( d, "GEN_X400", GEN_X400 ); + install_int_const( d, "GEN_DIRNAME", GEN_DIRNAME ); + install_int_const( d, "GEN_EDIPARTY", GEN_EDIPARTY ); + install_int_const( d, "GEN_URI", GEN_URI ); + install_int_const( d, "GEN_IPADD", GEN_IPADD ); + install_int_const( d, "GEN_RID", GEN_RID ); + + // initialise library + SSL_library_init(); + OpenSSL_add_all_algorithms(); + OpenSSL_add_all_ciphers(); + OpenSSL_add_all_digests(); + + // load error strings + SSL_load_error_strings(); + + if (PyErr_Occurred()) + Py_FatalError("can't initialize module pow"); +} +/*==========================================================================*/ diff --git a/pow/POW-0.7/README b/pow/POW-0.7/README new file mode 100644 index 00000000..f418e2af --- /dev/null +++ b/pow/POW-0.7/README @@ -0,0 +1,116 @@ +Python OpenSSL Wrappers - http://www.sourceforge.net/projects/pow +================================================================= + +Instalation. +------------ +To install POW you will need to have OpenSSL libraries installed on you +computer. I have been working on Suse8.0/Gentoo1.2 and with OpenSSL 0.9.6. + +run the following command to compile and install the module: + + root@alecto:/tmp/pow > python setup.py install + +Testing +------- +To test POW, run test.py in the testing directory. + +Notes +===== + +notBefore, notAfter, thisUpdate, nextUpdate, revocationDate +----------------------------------------------------------- +The objects are now all set using a UTCTime string instead of an integer. +The reasons for this are as follows: + the time functions are unreliable and building them into the + encodeer/decoder cuased some testing problems. + + it allows the use of Python's strptime function which incerases + portablity + + easier to work around problems with a specific version of + strptime/strftime. + +PEM Encoded Public RSA Key Backward Incompatibity +------------------------------------------------- +Previous versions of POW have been incompatible with the openssl +application in regards to reading pem encoded public RSA keys. To fix this +I changed the function for reading and writing public keys in pem format to +be compitable wiht openssl. This virsion of POW will not be able to read +keys encoded in the old format. It would be possible to get round this by +saving them in DER format using POW-0.6 and resaving them in PEM format +using POW-0.7 + +Patent Encumbered Ciphers +------------------------- +If I run the above command on my machine I get these warnings which indicate +the linker could not find a symbol in the source code or any of the +libraries the source is linked against. + +././pow.c: In function `evp_cipher_factory': +././pow.c:292: warning: implicit declaration of function `EVP_rc5_32_12_16_cbc' +././pow.c:292: warning: return makes pointer from integer without a cast +././pow.c:293: warning: implicit declaration of function `EVP_rc5_32_12_16_cfb' +././pow.c:293: warning: return makes pointer from integer without a cast +././pow.c:294: warning: implicit declaration of function `EVP_rc5_32_12_16_ecb' +././pow.c:294: warning: return makes pointer from integer without a cast +././pow.c:295: warning: implicit declaration of function `EVP_rc5_32_12_16_ofb' +././pow.c:295: warning: return makes pointer from integer without a cast + +The OpenSSL package which comes with Suse 7.2 does not have support for the +RC5 cipher. The configure script which comes with OpenSSL can create a +Makefile which builds libraries without any of the ciphers so it may be +necessary to build POW without support for some ciphers. This can be done +by issuing an extra command to setup.py. + +The first command build_ext, builds C and C++ extensions and can be used to +add directories to search for include files and libraries. For a list of +these options run the command: + + root@alecto:/tmp/pow > python setup.py --help build_ext + +To fix this problem we need to add an extra #define for the C preprocessor: + + root@alecto:/tmp/pow > python setup.py build_ext -D NO_RC5_32_12_16 install + +Possible defines are: + + NO_DES + NO_RC4 + NO_IDEA + NO_RC2 + NO_BF + NO_CAST5 + NO_RC5_32_12_16 + +Extras +------ +There are a couple of extra file included for completeness which I used to +build the documentation. + +POW.pdf -- The module documentation produced direct from the doc strings. +doc.sh -- This script sets up the enviroment and runs xdoc.py, jade and + pdfjadetex. +doc.py -- This script processes the doc strings to produce DocBook SGML. +doc.xsl -- This is the style sheet used to turn the doc strings into one + document. +POW.dsl -- This is the DSSSL driver file used to drive OpenJade. + +Version 1.72 of the DSSSL DocBook style sheets were used, along with Xalan +to perform the XSL transformation. + +Changes +------- +Hmac added 0.6.1 +DER encoding and decoding routinse added 0.7 +Many PKIX objects added 0.7 +Routrines for manipulating extensions for: + X509 + X509CRL + X509Revoked +added 0.7 +PEM encoding routine for public RSA keys changed 0.7 + +Acknowledgements +---------------- +Thanks to Pete Gutmann who wrote the invaluable dumpasn1. +Thanks to Goetz Isenmann for patch for Windows. diff --git a/pow/POW-0.7/cfgparse.py b/pow/POW-0.7/cfgparse.py new file mode 100755 index 00000000..d3de41b8 --- /dev/null +++ b/pow/POW-0.7/cfgparse.py @@ -0,0 +1,120 @@ +#*****************************************************************************# +#* *# +#* Copyright (c) 2002, Peter Shannon *# +#* All rights reserved. *# +#* *# +#* Redistribution and use in source and binary forms, with or without *# +#* modification, are permitted provided that the following conditions *# +#* are met: *# +#* *# +#* * Redistributions of source code must retain the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer. *# +#* *# +#* * Redistributions in binary form must reproduce the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer in the documentation and/or other materials *# +#* provided with the distribution. *# +#* *# +#* * The name of the contributors may be used to endorse or promote *# +#* products derived from this software without specific prior *# +#* written permission. *# +#* *# +#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *# +#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *# +#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *# +#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *# +#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *# +#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *# +#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *# +#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *# +#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *# +#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *# +#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *# +#* *# +#*****************************************************************************# + +import string, re, types, pprint + +# for people out there who, like me, hate regexs(too easy to make mistakes +# with) I apologise profusely! + +class Parser: + def __init__(self, filename): + self.file = filename + self.handle = open(self.file) + self.whiteMatch = re.compile(r'^\s*') + self.hashMatch = re.compile(r'^#.*') + self.warningMatch = re.compile(r'^Warning') + self.oidNameMatch = re.compile(r'(^[\w\-\.\? ]*)(?:\([\w\-# ]*\)\s?)?(?:\()([\d ]*)(?:\))') + self.oidMatch = re.compile(r'(?:^OID = )(.*)') + self.commentMatch = re.compile(r'(?:^Comment = )(.*)') + self.descriptionMatch = re.compile(r'(?:^Description = )(.*)') + self.oids = {} + self.objs = {} + self.__parse() + + def __update(self, dict, line): + m = self.oidMatch.match( line ) + if m: + dict['hexoid'] = m.group(1) + return 0 + else: + m = self.commentMatch.match( line ) + if m: + dict['comment'] = m.group(1) + return 0 + else: + m = self.descriptionMatch.match( line ) + if m: + dict['description'] = m.group(1) + n = self.oidNameMatch.match( m.group(1) ) + dict['name'] = string.strip( n.group(1) ) + dict['oid'] = tuple( map(int, string.split( n.group(2), ' ') ) ) + return 0 + else: + m = self.warningMatch.match( line ) + if m: + return 1 + else: + m = self.whiteMatch.match( line ) + if m: + return 0 + else: + m = self.hashMatch.match( line ) + if m: + return 0 + else: + raise Exception, 'unhandled pattern' + + def __parse(self): + line = self.handle.readline() + dict = {} + complete = None + while line: + warning = self.__update( dict, line ) + + if warning: + complete = None + elif complete: + self.objs[ complete['name'] ] = complete + self.oids[ complete['oid'] ] = complete + complete = None + + if len(dict) == 5: + complete = dict + dict = {} + + line = self.handle.readline() + + def dumpobjs(self, path): + file = open(path, 'w') + file.write('data = ') + pprint.pprint( self.objs, file ) + file.close() + + def dumpoids(self, path): + file = open(path, 'w') + file.write('data = ') + pprint.pprint( self.oids, file ) + file.close() diff --git a/pow/POW-0.7/docs/POW.pdf b/pow/POW-0.7/docs/POW.pdf new file mode 100644 index 00000000..246431a3 --- /dev/null +++ b/pow/POW-0.7/docs/POW.pdf @@ -0,0 +1,17436 @@ +%PDF-1.3 +1 0 obj +<< /S /GoTo /D (1.0) >> +endobj +4 0 obj +(The POW Package) +endobj +5 0 obj +<< /S /GoTo /D (2.0) >> +endobj +8 0 obj +(Table of Contents) +endobj +9 0 obj +<< /S /GoTo /D (3.0) >> +endobj +12 0 obj +(List of Examples) +endobj +13 0 obj +<< /S /GoTo /D (4.0) >> +endobj +16 0 obj +(Chapter 1. The POW Module) +endobj +17 0 obj +<< /S /GoTo /D (4.1.1) >> +endobj +20 0 obj +(Introduction) +endobj +21 0 obj +<< /S /GoTo /D (4.2.1) >> +endobj +24 0 obj +(Module Functions) +endobj +25 0 obj +<< /S /GoTo /D (4.2.1.2) >> +endobj +28 0 obj +(Function Prototypes) +endobj +29 0 obj +<< /S /GoTo /D (4.2.2.2) >> +endobj +32 0 obj +(Function Descriptions) +endobj +33 0 obj +<< /S /GoTo /D (4.2.2.1.3) >> +endobj +36 0 obj +(The pemRead Function) +endobj +37 0 obj +<< /S /GoTo /D (4.2.2.2.3) >> +endobj +40 0 obj +(The derRead Function) +endobj +41 0 obj +<< /S /GoTo /D (4.2.2.3.3) >> +endobj +44 0 obj +(The seed Function) +endobj +45 0 obj +<< /S /GoTo /D (4.2.2.4.3) >> +endobj +48 0 obj +(The add Function) +endobj +49 0 obj +<< /S /GoTo /D (4.2.2.5.3) >> +endobj +52 0 obj +(The readRandomFile Function) +endobj +53 0 obj +<< /S /GoTo /D (4.2.2.6.3) >> +endobj +56 0 obj +(The writeRandomFile Function) +endobj +57 0 obj +<< /S /GoTo /D (4.2.2.7.3) >> +endobj +60 0 obj +(The getError Function) +endobj +61 0 obj +<< /S /GoTo /D (4.2.2.8.3) >> +endobj +64 0 obj +(The clearError Function) +endobj +65 0 obj +<< /S /GoTo /D (4.2.2.9.3) >> +endobj +68 0 obj +(The addObject Function) +endobj +69 0 obj +<< /S /GoTo /D (4.3.1) >> +endobj +72 0 obj +(Module Classes) +endobj +73 0 obj +<< /S /GoTo /D (4.3.3.2) >> +endobj +76 0 obj +(The Ssl Class) +endobj +77 0 obj +<< /S /GoTo /D (4.3.3.10.3) >> +endobj +80 0 obj +(Class Prototypes) +endobj +81 0 obj +<< /S /GoTo /D (4.3.3.11.3) >> +endobj +84 0 obj +(The init Method) +endobj +85 0 obj +<< /S /GoTo /D (4.3.3.12.3) >> +endobj +88 0 obj +(The setFd Method) +endobj +89 0 obj +<< /S /GoTo /D (4.3.3.13.3) >> +endobj +92 0 obj +(The accept Method) +endobj +93 0 obj +<< /S /GoTo /D (4.3.3.14.3) >> +endobj +96 0 obj +(The connect Method) +endobj +97 0 obj +<< /S /GoTo /D (4.3.3.15.3) >> +endobj +100 0 obj +(The write Method) +endobj +101 0 obj +<< /S /GoTo /D (4.3.3.16.3) >> +endobj +104 0 obj +(The read Method) +endobj +105 0 obj +<< /S /GoTo /D (4.3.3.17.3) >> +endobj +108 0 obj +(The peerCertificate Method) +endobj +109 0 obj +<< /S /GoTo /D (4.3.3.18.3) >> +endobj +112 0 obj +(The useCertificate Method) +endobj +113 0 obj +<< /S /GoTo /D (4.3.3.19.3) >> +endobj +116 0 obj +(The useKey Method) +endobj +117 0 obj +<< /S /GoTo /D (4.3.3.20.3) >> +endobj +120 0 obj +(The checkKey Method) +endobj +121 0 obj +<< /S /GoTo /D (4.3.3.21.3) >> +endobj +124 0 obj +(The clear Method) +endobj +125 0 obj +<< /S /GoTo /D (4.3.3.22.3) >> +endobj +128 0 obj +(The shutdown Method) +endobj +129 0 obj +<< /S /GoTo /D (4.3.3.23.3) >> +endobj +132 0 obj +(The getShutdown Method) +endobj +133 0 obj +<< /S /GoTo /D (4.3.3.24.3) >> +endobj +136 0 obj +(The getCiphers Method) +endobj +137 0 obj +<< /S /GoTo /D (4.3.3.25.3) >> +endobj +140 0 obj +(The setCiphers Method) +endobj +141 0 obj +<< /S /GoTo /D (4.3.3.26.3) >> +endobj +144 0 obj +(The getCipher Method) +endobj +145 0 obj +<< /S /GoTo /D (4.3.3.27.3) >> +endobj +148 0 obj +(The setVerifyMode Method) +endobj +149 0 obj +<< /S /GoTo /D (4.3.4.2) >> +endobj +152 0 obj +(The X509 Class) +endobj +153 0 obj +<< /S /GoTo /D (4.3.4.28.3) >> +endobj +156 0 obj +(Class Prototypes) +endobj +157 0 obj +<< /S /GoTo /D (4.3.4.29.3) >> +endobj +160 0 obj +(The init Method) +endobj +161 0 obj +<< /S /GoTo /D (4.3.4.30.3) >> +endobj +164 0 obj +(The pemWrite Method) +endobj +165 0 obj +<< /S /GoTo /D (4.3.4.31.3) >> +endobj +168 0 obj +(The derWrite Method) +endobj +169 0 obj +<< /S /GoTo /D (4.3.4.32.3) >> +endobj +172 0 obj +(The sign Method) +endobj +173 0 obj +<< /S /GoTo /D (4.3.4.33.3) >> +endobj +176 0 obj +(The setPublicKey Method) +endobj +177 0 obj +<< /S /GoTo /D (4.3.4.34.3) >> +endobj +180 0 obj +(The getVersion Method) +endobj +181 0 obj +<< /S /GoTo /D (4.3.4.35.3) >> +endobj +184 0 obj +(The setVersion Method) +endobj +185 0 obj +<< /S /GoTo /D (4.3.4.36.3) >> +endobj +188 0 obj +(The getSerial Method) +endobj +189 0 obj +<< /S /GoTo /D (4.3.4.37.3) >> +endobj +192 0 obj +(The setSerial Method) +endobj +193 0 obj +<< /S /GoTo /D (4.3.4.38.3) >> +endobj +196 0 obj +(The getIssuer Method) +endobj +197 0 obj +<< /S /GoTo /D (4.3.4.39.3) >> +endobj +200 0 obj +(The setIssuer Method) +endobj +201 0 obj +<< /S /GoTo /D (4.3.4.40.3) >> +endobj +204 0 obj +(The getSubject Method) +endobj +205 0 obj +<< /S /GoTo /D (4.3.4.41.3) >> +endobj +208 0 obj +(The setSubject Method) +endobj +209 0 obj +<< /S /GoTo /D (4.3.4.42.3) >> +endobj +212 0 obj +(The getNotBefore Method) +endobj +213 0 obj +<< /S /GoTo /D (4.3.4.43.3) >> +endobj +216 0 obj +(The setNotBefore Method) +endobj +217 0 obj +<< /S /GoTo /D (4.3.4.44.3) >> +endobj +220 0 obj +(The getNotAfter Method) +endobj +221 0 obj +<< /S /GoTo /D (4.3.4.45.3) >> +endobj +224 0 obj +(The setNotAfter Method) +endobj +225 0 obj +<< /S /GoTo /D (4.3.4.46.3) >> +endobj +228 0 obj +(The addExtension Method) +endobj +229 0 obj +<< /S /GoTo /D (4.3.4.47.3) >> +endobj +232 0 obj +(The clearExtensions Method) +endobj +233 0 obj +<< /S /GoTo /D (4.3.4.48.3) >> +endobj +236 0 obj +(The countExtensions Method) +endobj +237 0 obj +<< /S /GoTo /D (4.3.4.49.3) >> +endobj +240 0 obj +(The getExtension Method) +endobj +241 0 obj +<< /S /GoTo /D (4.3.4.50.3) >> +endobj +244 0 obj +(The pprint Method) +endobj +245 0 obj +<< /S /GoTo /D (4.3.5.2) >> +endobj +248 0 obj +(The X509Crl Class) +endobj +249 0 obj +<< /S /GoTo /D (4.3.5.51.3) >> +endobj +252 0 obj +(Class Prototypes) +endobj +253 0 obj +<< /S /GoTo /D (4.3.5.52.3) >> +endobj +256 0 obj +(The pemWrite Method) +endobj +257 0 obj +<< /S /GoTo /D (4.3.5.53.3) >> +endobj +260 0 obj +(The derWrite Method) +endobj +261 0 obj +<< /S /GoTo /D (4.3.5.54.3) >> +endobj +264 0 obj +(The getVersion Method) +endobj +265 0 obj +<< /S /GoTo /D (4.3.5.55.3) >> +endobj +268 0 obj +(The setVersion Method) +endobj +269 0 obj +<< /S /GoTo /D (4.3.5.56.3) >> +endobj +272 0 obj +(The getIssuer Method) +endobj +273 0 obj +<< /S /GoTo /D (4.3.5.57.3) >> +endobj +276 0 obj +(The setIssuer Method) +endobj +277 0 obj +<< /S /GoTo /D (4.3.5.58.3) >> +endobj +280 0 obj +(The getThisUpdate Method) +endobj +281 0 obj +<< /S /GoTo /D (4.3.5.59.3) >> +endobj +284 0 obj +(The setThisUpdate Method) +endobj +285 0 obj +<< /S /GoTo /D (4.3.5.60.3) >> +endobj +288 0 obj +(The getNextUpdate Method) +endobj +289 0 obj +<< /S /GoTo /D (4.3.5.61.3) >> +endobj +292 0 obj +(The setNextUpdate Method) +endobj +293 0 obj +<< /S /GoTo /D (4.3.5.62.3) >> +endobj +296 0 obj +(The getRevoked Method) +endobj +297 0 obj +<< /S /GoTo /D (4.3.5.63.3) >> +endobj +300 0 obj +(The setRevoked Method) +endobj +301 0 obj +<< /S /GoTo /D (4.3.5.64.3) >> +endobj +304 0 obj +(The verify Method) +endobj +305 0 obj +<< /S /GoTo /D (4.3.5.65.3) >> +endobj +308 0 obj +(The sign Method) +endobj +309 0 obj +<< /S /GoTo /D (4.3.5.66.3) >> +endobj +312 0 obj +(The addExtension Method) +endobj +313 0 obj +<< /S /GoTo /D (4.3.5.67.3) >> +endobj +316 0 obj +(The clearExtensions Method) +endobj +317 0 obj +<< /S /GoTo /D (4.3.5.68.3) >> +endobj +320 0 obj +(The countExtensions Method) +endobj +321 0 obj +<< /S /GoTo /D (4.3.5.69.3) >> +endobj +324 0 obj +(The getExtension Method) +endobj +325 0 obj +<< /S /GoTo /D (4.3.5.70.3) >> +endobj +328 0 obj +(The pprint Method) +endobj +329 0 obj +<< /S /GoTo /D (4.3.6.2) >> +endobj +332 0 obj +(The X509Revoked Class) +endobj +333 0 obj +<< /S /GoTo /D (4.3.6.71.3) >> +endobj +336 0 obj +(Class Prototypes) +endobj +337 0 obj +<< /S /GoTo /D (4.3.6.72.3) >> +endobj +340 0 obj +(The init Method) +endobj +341 0 obj +<< /S /GoTo /D (4.3.6.73.3) >> +endobj +344 0 obj +(The getDate Method) +endobj +345 0 obj +<< /S /GoTo /D (4.3.6.74.3) >> +endobj +348 0 obj +(The setDate Method) +endobj +349 0 obj +<< /S /GoTo /D (4.3.6.75.3) >> +endobj +352 0 obj +(The getSerial Method) +endobj +353 0 obj +<< /S /GoTo /D (4.3.6.76.3) >> +endobj +356 0 obj +(The setSerial Method) +endobj +357 0 obj +<< /S /GoTo /D (4.3.6.77.3) >> +endobj +360 0 obj +(The addExtension Method) +endobj +361 0 obj +<< /S /GoTo /D (4.3.6.78.3) >> +endobj +364 0 obj +(The clearExtensions Method) +endobj +365 0 obj +<< /S /GoTo /D (4.3.6.79.3) >> +endobj +368 0 obj +(The countExtensions Method) +endobj +369 0 obj +<< /S /GoTo /D (4.3.6.80.3) >> +endobj +372 0 obj +(The getExtension Method) +endobj +373 0 obj +<< /S /GoTo /D (4.3.7.2) >> +endobj +376 0 obj +(The X509Store Class) +endobj +377 0 obj +<< /S /GoTo /D (4.3.7.81.3) >> +endobj +380 0 obj +(Class Prototypes) +endobj +381 0 obj +<< /S /GoTo /D (4.3.7.82.3) >> +endobj +384 0 obj +(The init Method) +endobj +385 0 obj +<< /S /GoTo /D (4.3.7.83.3) >> +endobj +388 0 obj +(The verify Method) +endobj +389 0 obj +<< /S /GoTo /D (4.3.7.84.3) >> +endobj +392 0 obj +(The verifyChain Method) +endobj +393 0 obj +<< /S /GoTo /D (4.3.7.85.3) >> +endobj +396 0 obj +(The addTrust Method) +endobj +397 0 obj +<< /S /GoTo /D (4.3.7.86.3) >> +endobj +400 0 obj +(The addCrl Method) +endobj +401 0 obj +<< /S /GoTo /D (4.3.8.2) >> +endobj +404 0 obj +(The Digest Class) +endobj +405 0 obj +<< /S /GoTo /D (4.3.8.87.3) >> +endobj +408 0 obj +(Class Prototypes) +endobj +409 0 obj +<< /S /GoTo /D (4.3.8.88.3) >> +endobj +412 0 obj +(The init Method) +endobj +413 0 obj +<< /S /GoTo /D (4.3.8.89.3) >> +endobj +416 0 obj +(The update Method) +endobj +417 0 obj +<< /S /GoTo /D (4.3.8.90.3) >> +endobj +420 0 obj +(The copy Method) +endobj +421 0 obj +<< /S /GoTo /D (4.3.8.91.3) >> +endobj +424 0 obj +(The digest Method) +endobj +425 0 obj +<< /S /GoTo /D (4.3.9.2) >> +endobj +428 0 obj +(The Hmac Class) +endobj +429 0 obj +<< /S /GoTo /D (4.3.9.92.3) >> +endobj +432 0 obj +(Class Prototypes) +endobj +433 0 obj +<< /S /GoTo /D (4.3.9.93.3) >> +endobj +436 0 obj +(The init Method) +endobj +437 0 obj +<< /S /GoTo /D (4.3.9.94.3) >> +endobj +440 0 obj +(The update Method) +endobj +441 0 obj +<< /S /GoTo /D (4.3.9.95.3) >> +endobj +444 0 obj +(The copy Method) +endobj +445 0 obj +<< /S /GoTo /D (4.3.9.96.3) >> +endobj +448 0 obj +(The mac Method) +endobj +449 0 obj +<< /S /GoTo /D (4.3.10.2) >> +endobj +452 0 obj +(The Symmetric Class) +endobj +453 0 obj +<< /S /GoTo /D (4.3.10.97.3) >> +endobj +456 0 obj +(Class Prototypes) +endobj +457 0 obj +<< /S /GoTo /D (4.3.10.98.3) >> +endobj +460 0 obj +(The init Method) +endobj +461 0 obj +<< /S /GoTo /D (4.3.10.99.3) >> +endobj +464 0 obj +(The encryptInit Method) +endobj +465 0 obj +<< /S /GoTo /D (4.3.10.100.3) >> +endobj +468 0 obj +(The decryptInit Method) +endobj +469 0 obj +<< /S /GoTo /D (4.3.10.101.3) >> +endobj +472 0 obj +(The update Method) +endobj +473 0 obj +<< /S /GoTo /D (4.3.10.102.3) >> +endobj +476 0 obj +(The final Method) +endobj +477 0 obj +<< /S /GoTo /D (4.3.11.2) >> +endobj +480 0 obj +(The Asymmetric Class) +endobj +481 0 obj +<< /S /GoTo /D (4.3.11.103.3) >> +endobj +484 0 obj +(Class Prototypes) +endobj +485 0 obj +<< /S /GoTo /D (4.3.11.104.3) >> +endobj +488 0 obj +(The init Method) +endobj +489 0 obj +<< /S /GoTo /D (4.3.11.105.3) >> +endobj +492 0 obj +(The pemWrite Method) +endobj +493 0 obj +<< /S /GoTo /D (4.3.11.106.3) >> +endobj +496 0 obj +(The derWrite Method) +endobj +497 0 obj +<< /S /GoTo /D (4.3.11.107.3) >> +endobj +500 0 obj +(The publicEncrypt Method) +endobj +501 0 obj +<< /S /GoTo /D (4.3.11.108.3) >> +endobj +504 0 obj +(The publicDecrypt Method) +endobj +505 0 obj +<< /S /GoTo /D (4.3.11.109.3) >> +endobj +508 0 obj +(The privateEncrypt Method) +endobj +509 0 obj +<< /S /GoTo /D (4.3.11.110.3) >> +endobj +512 0 obj +(The privateDecrypt Method) +endobj +513 0 obj +<< /S /GoTo /D (4.3.11.111.3) >> +endobj +516 0 obj +(The sign Method) +endobj +517 0 obj +<< /S /GoTo /D (4.3.11.112.3) >> +endobj +520 0 obj +(The verify Method) +endobj +521 0 obj +<< /S /GoTo /D (5.0) >> +endobj +524 0 obj +(Chapter 2. The POW.pkix Module) +endobj +525 0 obj +<< /S /GoTo /D (5.4.1) >> +endobj +528 0 obj +(Introduction) +endobj +529 0 obj +<< /S /GoTo /D (5.5.1) >> +endobj +532 0 obj +(Module Functions) +endobj +533 0 obj +<< /S /GoTo /D (5.5.12.2) >> +endobj +536 0 obj +(Function Prototypes) +endobj +537 0 obj +<< /S /GoTo /D (5.5.13.2) >> +endobj +540 0 obj +(Function Descriptions) +endobj +541 0 obj +<< /S /GoTo /D (5.5.13.113.3) >> +endobj +544 0 obj +(The utc2time Function) +endobj +545 0 obj +<< /S /GoTo /D (5.5.13.114.3) >> +endobj +548 0 obj +(The time2utc Function) +endobj +549 0 obj +<< /S /GoTo /D (5.5.13.115.3) >> +endobj +552 0 obj +(The gen2time Function) +endobj +553 0 obj +<< /S /GoTo /D (5.5.13.116.3) >> +endobj +556 0 obj +(The time2gen Function) +endobj +557 0 obj +<< /S /GoTo /D (5.6.1) >> +endobj +560 0 obj +(Module Classes) +endobj +561 0 obj +<< /S /GoTo /D (5.6.14.2) >> +endobj +564 0 obj +(The GeneralObject Class) +endobj +565 0 obj +<< /S /GoTo /D (5.6.14.117.3) >> +endobj +568 0 obj +(Class Prototypes) +endobj +569 0 obj +<< /S /GoTo /D (5.6.14.118.3) >> +endobj +572 0 obj +(The init Method) +endobj +573 0 obj +<< /S /GoTo /D (5.6.14.119.3) >> +endobj +576 0 obj +(The reset Method) +endobj +577 0 obj +<< /S /GoTo /D (5.6.14.120.3) >> +endobj +580 0 obj +(The set Method) +endobj +581 0 obj +<< /S /GoTo /D (5.6.14.121.3) >> +endobj +584 0 obj +(The get Method) +endobj +585 0 obj +<< /S /GoTo /D (5.6.14.122.3) >> +endobj +588 0 obj +(The implied Method) +endobj +589 0 obj +<< /S /GoTo /D (5.6.14.123.3) >> +endobj +592 0 obj +(The read Method) +endobj +593 0 obj +<< /S /GoTo /D (5.6.14.124.3) >> +endobj +596 0 obj +(The write Method) +endobj +597 0 obj +<< /S /GoTo /D (5.6.14.125.3) >> +endobj +600 0 obj +(The toString Method) +endobj +601 0 obj +<< /S /GoTo /D (5.6.14.126.3) >> +endobj +604 0 obj +(The fromString Method) +endobj +605 0 obj +<< /S /GoTo /D (5.6.15.2) >> +endobj +608 0 obj +(The Boolean Class) +endobj +609 0 obj +<< /S /GoTo /D (5.6.15.127.3) >> +endobj +612 0 obj +(Class Prototypes) +endobj +613 0 obj +<< /S /GoTo /D (5.6.16.2) >> +endobj +616 0 obj +(The Integer Class) +endobj +617 0 obj +<< /S /GoTo /D (5.6.16.128.3) >> +endobj +620 0 obj +(Class Prototypes) +endobj +621 0 obj +<< /S /GoTo /D (5.6.17.2) >> +endobj +624 0 obj +(The BitString Class) +endobj +625 0 obj +<< /S /GoTo /D (5.6.17.129.3) >> +endobj +628 0 obj +(Class Prototypes) +endobj +629 0 obj +<< /S /GoTo /D (5.6.18.2) >> +endobj +632 0 obj +(The AltBitString Class) +endobj +633 0 obj +<< /S /GoTo /D (5.6.18.130.3) >> +endobj +636 0 obj +(Class Prototypes) +endobj +637 0 obj +<< /S /GoTo /D (5.6.19.2) >> +endobj +640 0 obj +(The OctetString Class) +endobj +641 0 obj +<< /S /GoTo /D (5.6.19.131.3) >> +endobj +644 0 obj +(Class Prototypes) +endobj +645 0 obj +<< /S /GoTo /D (5.6.20.2) >> +endobj +648 0 obj +(The Null Class) +endobj +649 0 obj +<< /S /GoTo /D (5.6.20.132.3) >> +endobj +652 0 obj +(Class Prototypes) +endobj +653 0 obj +<< /S /GoTo /D (5.6.21.2) >> +endobj +656 0 obj +(The Oid Class) +endobj +657 0 obj +<< /S /GoTo /D (5.6.21.133.3) >> +endobj +660 0 obj +(Class Prototypes) +endobj +661 0 obj +<< /S /GoTo /D (5.6.22.2) >> +endobj +664 0 obj +(The Enum Class) +endobj +665 0 obj +<< /S /GoTo /D (5.6.22.134.3) >> +endobj +668 0 obj +(Class Prototypes) +endobj +669 0 obj +<< /S /GoTo /D (5.6.23.2) >> +endobj +672 0 obj +(The Utf8String Class) +endobj +673 0 obj +<< /S /GoTo /D (5.6.23.135.3) >> +endobj +676 0 obj +(Class Prototypes) +endobj +677 0 obj +<< /S /GoTo /D (5.6.24.2) >> +endobj +680 0 obj +(The NumericString Class) +endobj +681 0 obj +<< /S /GoTo /D (5.6.24.136.3) >> +endobj +684 0 obj +(Class Prototypes) +endobj +685 0 obj +<< /S /GoTo /D (5.6.25.2) >> +endobj +688 0 obj +(The PrintableString Class) +endobj +689 0 obj +<< /S /GoTo /D (5.6.25.137.3) >> +endobj +692 0 obj +(Class Prototypes) +endobj +693 0 obj +<< /S /GoTo /D (5.6.26.2) >> +endobj +696 0 obj +(The T61String Class) +endobj +697 0 obj +<< /S /GoTo /D (5.6.26.138.3) >> +endobj +700 0 obj +(Class Prototypes) +endobj +701 0 obj +<< /S /GoTo /D (5.6.27.2) >> +endobj +704 0 obj +(The VideotexString Class) +endobj +705 0 obj +<< /S /GoTo /D (5.6.27.139.3) >> +endobj +708 0 obj +(Class Prototypes) +endobj +709 0 obj +<< /S /GoTo /D (5.6.28.2) >> +endobj +712 0 obj +(The IA5String Class) +endobj +713 0 obj +<< /S /GoTo /D (5.6.28.140.3) >> +endobj +716 0 obj +(Class Prototypes) +endobj +717 0 obj +<< /S /GoTo /D (5.6.29.2) >> +endobj +720 0 obj +(The UtcTime Class) +endobj +721 0 obj +<< /S /GoTo /D (5.6.29.141.3) >> +endobj +724 0 obj +(Class Prototypes) +endobj +725 0 obj +<< /S /GoTo /D (5.6.30.2) >> +endobj +728 0 obj +(The GeneralizedTime Class) +endobj +729 0 obj +<< /S /GoTo /D (5.6.30.142.3) >> +endobj +732 0 obj +(Class Prototypes) +endobj +733 0 obj +<< /S /GoTo /D (5.6.31.2) >> +endobj +736 0 obj +(The GraphicString Class) +endobj +737 0 obj +<< /S /GoTo /D (5.6.31.143.3) >> +endobj +740 0 obj +(Class Prototypes) +endobj +741 0 obj +<< /S /GoTo /D (5.6.32.2) >> +endobj +744 0 obj +(The VisibleString Class) +endobj +745 0 obj +<< /S /GoTo /D (5.6.32.144.3) >> +endobj +748 0 obj +(Class Prototypes) +endobj +749 0 obj +<< /S /GoTo /D (5.6.33.2) >> +endobj +752 0 obj +(The GeneralString Class) +endobj +753 0 obj +<< /S /GoTo /D (5.6.33.145.3) >> +endobj +756 0 obj +(Class Prototypes) +endobj +757 0 obj +<< /S /GoTo /D (5.6.34.2) >> +endobj +760 0 obj +(The UniversalString Class) +endobj +761 0 obj +<< /S /GoTo /D (5.6.34.146.3) >> +endobj +764 0 obj +(Class Prototypes) +endobj +765 0 obj +<< /S /GoTo /D (5.6.35.2) >> +endobj +768 0 obj +(The BmpString Class) +endobj +769 0 obj +<< /S /GoTo /D (5.6.35.147.3) >> +endobj +772 0 obj +(Class Prototypes) +endobj +773 0 obj +<< /S /GoTo /D (5.6.36.2) >> +endobj +776 0 obj +(The Sequence Class) +endobj +777 0 obj +<< /S /GoTo /D (5.6.36.148.3) >> +endobj +780 0 obj +(Class Prototypes) +endobj +781 0 obj +<< /S /GoTo /D (5.6.36.149.3) >> +endobj +784 0 obj +(The init Method) +endobj +785 0 obj +<< /S /GoTo /D (5.6.36.150.3) >> +endobj +788 0 obj +(The readContents Method) +endobj +789 0 obj +<< /S /GoTo /D (5.6.36.151.3) >> +endobj +792 0 obj +(The read Method) +endobj +793 0 obj +<< /S /GoTo /D (5.6.36.152.3) >> +endobj +796 0 obj +(The write Method) +endobj +797 0 obj +<< /S /GoTo /D (5.6.36.153.3) >> +endobj +800 0 obj +(The set Method) +endobj +801 0 obj +<< /S /GoTo /D (5.6.36.154.3) >> +endobj +804 0 obj +(The get Method) +endobj +805 0 obj +<< /S /GoTo /D (5.6.37.2) >> +endobj +808 0 obj +(The SequenceOf Class) +endobj +809 0 obj +<< /S /GoTo /D (5.6.37.155.3) >> +endobj +812 0 obj +(Class Prototypes) +endobj +813 0 obj +<< /S /GoTo /D (5.6.37.156.3) >> +endobj +816 0 obj +(The init Method) +endobj +817 0 obj +<< /S /GoTo /D (5.6.38.2) >> +endobj +820 0 obj +(The Set Class) +endobj +821 0 obj +<< /S /GoTo /D (5.6.38.157.3) >> +endobj +824 0 obj +(Class Prototypes) +endobj +825 0 obj +<< /S /GoTo /D (5.6.38.158.3) >> +endobj +828 0 obj +(The init Method) +endobj +829 0 obj +<< /S /GoTo /D (5.6.39.2) >> +endobj +832 0 obj +(The SetOf Class) +endobj +833 0 obj +<< /S /GoTo /D (5.6.39.159.3) >> +endobj +836 0 obj +(Class Prototypes) +endobj +837 0 obj +<< /S /GoTo /D (5.6.39.160.3) >> +endobj +840 0 obj +(The init Method) +endobj +841 0 obj +<< /S /GoTo /D (5.6.40.2) >> +endobj +844 0 obj +(The Explicit Class) +endobj +845 0 obj +<< /S /GoTo /D (5.6.40.161.3) >> +endobj +848 0 obj +(Class Prototypes) +endobj +849 0 obj +<< /S /GoTo /D (5.6.40.162.3) >> +endobj +852 0 obj +(The init Method) +endobj +853 0 obj +<< /S /GoTo /D (5.6.40.163.3) >> +endobj +856 0 obj +(The set Method) +endobj +857 0 obj +<< /S /GoTo /D (5.6.40.164.3) >> +endobj +860 0 obj +(The get Method) +endobj +861 0 obj +<< /S /GoTo /D (5.6.41.2) >> +endobj +864 0 obj +(The Choice Class) +endobj +865 0 obj +<< /S /GoTo /D (5.6.41.165.3) >> +endobj +868 0 obj +(Class Prototypes) +endobj +869 0 obj +<< /S /GoTo /D (5.6.41.166.3) >> +endobj +872 0 obj +(The init Method) +endobj +873 0 obj +<< /S /GoTo /D (5.6.41.167.3) >> +endobj +876 0 obj +(The reset Method) +endobj +877 0 obj +<< /S /GoTo /D (5.6.41.168.3) >> +endobj +880 0 obj +(The set Method) +endobj +881 0 obj +<< /S /GoTo /D (5.6.41.169.3) >> +endobj +884 0 obj +(The get Method) +endobj +885 0 obj +<< /S /GoTo /D (5.6.41.170.3) >> +endobj +888 0 obj +(The toString Method) +endobj +889 0 obj +<< /S /GoTo /D (5.6.41.171.3) >> +endobj +892 0 obj +(The fromString Method) +endobj +893 0 obj +<< /S /GoTo /D (5.6.41.172.3) >> +endobj +896 0 obj +(The read Method) +endobj +897 0 obj +<< /S /GoTo /D (5.6.41.173.3) >> +endobj +900 0 obj +(The write Method) +endobj +901 0 obj +<< /S /GoTo /D (5.6.42.2) >> +endobj +904 0 obj +(The Certificate Class) +endobj +905 0 obj +<< /S /GoTo /D (5.6.42.174.3) >> +endobj +908 0 obj +(Class Prototypes) +endobj +909 0 obj +<< /S /GoTo /D (5.6.42.175.3) >> +endobj +912 0 obj +(The setVersion Method) +endobj +913 0 obj +<< /S /GoTo /D (5.6.42.176.3) >> +endobj +916 0 obj +(The getVersion Method) +endobj +917 0 obj +<< /S /GoTo /D (5.6.42.177.3) >> +endobj +920 0 obj +(The setSerial Method) +endobj +921 0 obj +<< /S /GoTo /D (5.6.42.178.3) >> +endobj +924 0 obj +(The getVersion Method) +endobj +925 0 obj +<< /S /GoTo /D (5.6.42.179.3) >> +endobj +928 0 obj +(The setIssuer Method) +endobj +929 0 obj +<< /S /GoTo /D (5.6.42.180.3) >> +endobj +932 0 obj +(The getIssuer Method) +endobj +933 0 obj +<< /S /GoTo /D (5.6.42.181.3) >> +endobj +936 0 obj +(The setSubject Method) +endobj +937 0 obj +<< /S /GoTo /D (5.6.42.182.3) >> +endobj +940 0 obj +(The getSubject Method) +endobj +941 0 obj +<< /S /GoTo /D (5.6.42.183.3) >> +endobj +944 0 obj +(The setNotBefore Method) +endobj +945 0 obj +<< /S /GoTo /D (5.6.42.184.3) >> +endobj +948 0 obj +(The getNotBefore Method) +endobj +949 0 obj +<< /S /GoTo /D (5.6.42.185.3) >> +endobj +952 0 obj +(The setNotAfter Method) +endobj +953 0 obj +<< /S /GoTo /D (5.6.42.186.3) >> +endobj +956 0 obj +(The getNotAfter Method) +endobj +957 0 obj +<< /S /GoTo /D (5.6.42.187.3) >> +endobj +960 0 obj +(The setIssuerUniqueID Method) +endobj +961 0 obj +<< /S /GoTo /D (5.6.42.188.3) >> +endobj +964 0 obj +(The getIssuerUniqueID Method) +endobj +965 0 obj +<< /S /GoTo /D (5.6.42.189.3) >> +endobj +968 0 obj +(The setSubjectUniqueID Method) +endobj +969 0 obj +<< /S /GoTo /D (5.6.42.190.3) >> +endobj +972 0 obj +(The getSubjectUniqueID Method) +endobj +973 0 obj +<< /S /GoTo /D (5.6.42.191.3) >> +endobj +976 0 obj +(The setExtensions Method) +endobj +977 0 obj +<< /S /GoTo /D (5.6.42.192.3) >> +endobj +980 0 obj +(The getExtensions Method) +endobj +981 0 obj +<< /S /GoTo /D (5.6.42.193.3) >> +endobj +984 0 obj +(The sign Method) +endobj +985 0 obj +<< /S /GoTo /D (5.6.42.194.3) >> +endobj +988 0 obj +(The verify Method) +endobj +989 0 obj +<< /S /GoTo /D (5.6.42.195.3) >> +endobj +992 0 obj +(The sign Method) +endobj +993 0 obj +<< /S /GoTo /D (5.6.43.2) >> +endobj +996 0 obj +(The CertificateList Class) +endobj +997 0 obj +<< /S /GoTo /D (5.6.43.196.3) >> +endobj +1000 0 obj +(Class Prototypes) +endobj +1001 0 obj +<< /S /GoTo /D (5.6.43.197.3) >> +endobj +1004 0 obj +(The setVersion Method) +endobj +1005 0 obj +<< /S /GoTo /D (5.6.43.198.3) >> +endobj +1008 0 obj +(The getVersion Method) +endobj +1009 0 obj +<< /S /GoTo /D (5.6.43.199.3) >> +endobj +1012 0 obj +(The setIssuer Method) +endobj +1013 0 obj +<< /S /GoTo /D (5.6.43.200.3) >> +endobj +1016 0 obj +(The getIssuer Method) +endobj +1017 0 obj +<< /S /GoTo /D (5.6.43.201.3) >> +endobj +1020 0 obj +(The getThisUpdate Method) +endobj +1021 0 obj +<< /S /GoTo /D (5.6.43.202.3) >> +endobj +1024 0 obj +(The setNextUpdate Method) +endobj +1025 0 obj +<< /S /GoTo /D (5.6.43.203.3) >> +endobj +1028 0 obj +(The getNextUpdate Method) +endobj +1029 0 obj +<< /S /GoTo /D (5.6.43.204.3) >> +endobj +1032 0 obj +(The setExtensions Method) +endobj +1033 0 obj +<< /S /GoTo /D (5.6.43.205.3) >> +endobj +1036 0 obj +(The getExtensions Method) +endobj +1037 0 obj +<< /S /GoTo /D (5.6.43.206.3) >> +endobj +1040 0 obj +(The setRevokedCertificates Method) +endobj +1041 0 obj +<< /S /GoTo /D (5.6.43.207.3) >> +endobj +1044 0 obj +(The getRevokedCertificates Method) +endobj +1045 0 obj +<< /S /GoTo /D (5.6.43.208.3) >> +endobj +1048 0 obj +(The verify Method) +endobj +1049 0 obj +<< /S /GoTo /D (5.6.44.2) >> +endobj +1052 0 obj +(The BasicConstraints Class) +endobj +1053 0 obj +<< /S /GoTo /D (5.6.44.209.3) >> +endobj +1056 0 obj +(Class Prototypes) +endobj +1057 0 obj +<< /S /GoTo /D (5.6.45.2) >> +endobj +1060 0 obj +(The KeyUsage Class) +endobj +1061 0 obj +<< /S /GoTo /D (5.6.45.210.3) >> +endobj +1064 0 obj +(Class Prototypes) +endobj +1065 0 obj +<< /S /GoTo /D (5.6.46.2) >> +endobj +1068 0 obj +(The SubjectAltName Class) +endobj +1069 0 obj +<< /S /GoTo /D (5.6.46.211.3) >> +endobj +1072 0 obj +(Class Prototypes) +endobj +1073 0 obj +<< /S /GoTo /D (5.6.47.2) >> +endobj +1076 0 obj +(The IssuerAltName Class) +endobj +1077 0 obj +<< /S /GoTo /D (5.6.47.212.3) >> +endobj +1080 0 obj +(Class Prototypes) +endobj +1081 0 obj +<< /S /GoTo /D (5.6.48.2) >> +endobj +1084 0 obj +(The SubjectKeyIdentifier Class) +endobj +1085 0 obj +<< /S /GoTo /D (5.6.48.213.3) >> +endobj +1088 0 obj +(Class Prototypes) +endobj +1089 0 obj +<< /S /GoTo /D (5.6.49.2) >> +endobj +1092 0 obj +(The AuthorityKeyIdentifier Class) +endobj +1093 0 obj +<< /S /GoTo /D (5.6.49.214.3) >> +endobj +1096 0 obj +(Class Prototypes) +endobj +1097 0 obj +<< /S /GoTo /D (5.6.50.2) >> +endobj +1100 0 obj +(The PrivateKeyUsagePeriod Class) +endobj +1101 0 obj +<< /S /GoTo /D (5.6.50.215.3) >> +endobj +1104 0 obj +(Class Prototypes) +endobj +1105 0 obj +<< /S /GoTo /D (5.6.51.2) >> +endobj +1108 0 obj +(The CertificatePolicies Class) +endobj +1109 0 obj +<< /S /GoTo /D (5.6.51.216.3) >> +endobj +1112 0 obj +(Class Prototypes) +endobj +1113 0 obj +<< /S /GoTo /D (5.6.52.2) >> +endobj +1116 0 obj +(The CRLDistrobutionPoints Class) +endobj +1117 0 obj +<< /S /GoTo /D (5.6.52.217.3) >> +endobj +1120 0 obj +(Class Prototypes) +endobj +1121 0 obj +<< /S /GoTo /D (5.6.53.2) >> +endobj +1124 0 obj +(The CrlNumber Class) +endobj +1125 0 obj +<< /S /GoTo /D (5.6.53.218.3) >> +endobj +1128 0 obj +(Class Prototypes) +endobj +1129 0 obj +<< /S /GoTo /D (5.6.54.2) >> +endobj +1132 0 obj +(The DeltaCrlIndicator Class) +endobj +1133 0 obj +<< /S /GoTo /D (5.6.54.219.3) >> +endobj +1136 0 obj +(Class Prototypes) +endobj +1137 0 obj +<< /S /GoTo /D (5.6.55.2) >> +endobj +1140 0 obj +(The InvalidityDate Class) +endobj +1141 0 obj +<< /S /GoTo /D (5.6.55.220.3) >> +endobj +1144 0 obj +(Class Prototypes) +endobj +1145 0 obj +<< /S /GoTo /D (5.6.56.2) >> +endobj +1148 0 obj +(The CrlReason Class) +endobj +1149 0 obj +<< /S /GoTo /D (5.6.56.221.3) >> +endobj +1152 0 obj +(Class Prototypes) +endobj +1153 0 obj +<< /S /GoTo /D (5.6.57.2) >> +endobj +1156 0 obj +(The Extension Class) +endobj +1157 0 obj +<< /S /GoTo /D (5.6.57.222.3) >> +endobj +1160 0 obj +(Class Prototypes) +endobj +1161 0 obj +<< /S /GoTo /D (5.6.57.223.3) >> +endobj +1164 0 obj +(The set Method) +endobj +1165 0 obj +<< /S /GoTo /D (5.6.57.224.3) >> +endobj +1168 0 obj +(The get Method) +endobj +1169 0 obj +<< /S /GoTo /D [1170 0 R /Fit ] >> +endobj +1172 0 obj << +/Length 183 +/Filter /FlateDecode +>> +stream +xÚ=1†÷ûÛ¡±I[Ó®‚ +. +ÄáÐóññÿcï<ÄÁAùàÍûØB(®‰˜¦Ž·ÊB[”eEã†÷ CL¥ÿ!šÀ„ŽÁ|f¹š,˜=J‚|ŠEã +=ÔRé9>¹:Ø›góxÓ¶—ºëî]o®æùsóø²IþþøÐ‰@¬endstream +endobj +1170 0 obj << +/Type /Page +/Contents 1172 0 R +/Resources 1171 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1178 0 R +>> endobj +1173 0 obj << +/D [1170 0 R /XYZ 71.731 778.968 null] +>> endobj +1174 0 obj << +/D [1170 0 R /XYZ 71.731 768.009 null] +>> endobj +1175 0 obj << +/D [1170 0 R /XYZ 71.731 768.009 null] +>> endobj +2 0 obj << +/D [1170 0 R /XYZ 404.126 749.925 null] +>> endobj +1171 0 obj << +/Font << /F22 1177 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1181 0 obj << +/Length 179 +/Filter /FlateDecode +>> +stream +xÚ½ +Â0€÷>ÅɘËO“¬‚ +.8ˆC±±‚¸øöžZªƒƒÜÿ}w‡ H<JoÈø c 9 +Zª, +:¬Ò…Hþ¢p¥Ñ ¾ +j¾hû;ͦʷ|}»ë®îûKÿœ,fi¼w8ÅÐÿýíÿq@Hendstream +endobj +1180 0 obj << +/Type /Page +/Contents 1181 0 R +/Resources 1179 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1178 0 R +>> endobj +1182 0 obj << +/D [1180 0 R /XYZ 71.731 778.968 null] +>> endobj +1179 0 obj << +/Font << /F22 1177 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1187 0 obj << +/Length 45790 +/Filter /FlateDecode +>> +stream +xÚ¬Ý]lWzeç{ýŠsYuQÑ™‘_·–[†m-tàÃØä‘ªìY Yôï½óÄš+b®Œ=b°m°ÛÖö|v2TLžâx3¿<lÿ×ã—×ÇÃëqû¼¾Þ_Þ¾|ÿo÷ðå_·ÿÉÿòwã‰Óéýðüö¾ýŸoüÿðüôx8>}ùÃÕÀÿôÇ¿ûOÿðôôåéáðòüþåÿ2‘ç§ÃûqûÿòÃÿù»?þþíáwßý÷ß?>üî/_ÿ‡§×·ßýô/çÿçßÿôã¯_üõ—ßÿ_üßþî?ÿqZÛ‹<?}y}z߆o¾ëòÌ®úö>Û;¾o/xüxuèã}þüð»?þéëùÿðOÿå÷Ûÿýÿ8ÿ¿üãO?üm{Íå…ž^Û$¼Ðãö?8íü¥{zx;¼>¾ò»æ¡ëw=|z‘ÇÇÃöàù¬ŽgY]wÔãáåý]ªçgï¨=¸£¾ß¬z~öŽÚƒ;êÛáÅþþöè³æn“Û²_9žetÜQ·ÏàŪçgï¨=¸£nŸÁíÿhßPÏÏÞQ{pGÝ>…ÓQªçgï¨=x[=nÃQªãYV—ÁuûžNR=?{GíÁuûŸ¥z~öŽÚƒ;êö1<Xõüìµo«§ÇÃÃû‹Sdz¬.ƒ;êqûîü*Õó³wÔÜQ_¯V=?{GíÁõíðlÿ.<ž½£öàmõyûžå7œñ,«ËàŽº}'«žŸ½£öàŽº}òoçGï˜5·CnŸÁQ~ÃÏÞA{ð¶ú²}ORϲºî¨Ûgð(¿Ígï¨=¸£nŸÂƒUÏÏÞQ{pG};œÞå·¹ñìµo«¯‡÷7ù¿ÁãYV—Áõx8½ZõüìµwÔçíyùmn<{GíÁuûžå·¹ñìµo«oÛÇp’êx–ÕepGÝ>†£ü67ž½£öàŽº}OòÛÜxöŽÚƒ;êö1<Zõüìµo«ïÛÇð ¿ÍgY]wÔícæÇ“wÄë±ïù`ÿÈz~ôŽXs;äÛáø&¿Ágï =xS=><Þ^Ý·š<‹ê:¸£Ç«žŸ½£öàŽº} +ÏG©žŸ½£öàŽº}§“TÏÏÞQ{ð¶ú¸}G©ŽgY]wÔícxz–êùÙ;jî¨ÛÇðø"Õó³wÔÜQ·áÁªçgï¨=x[}z8¼¾»opy–ÕepG=¶ïR=?{GíÁõùðújÕó³wÔÜQßO/ïR=?{GíÁÛêqûäÿ2e³çvÈí3ÿY=?z‡¬¹rû +2;ɳwÔ¼>mÓTdz¬.ƒ;êö1<ž¤z~öŽÚƒ;êö1Èì$ÏÞQ{pG}=¼½[õüìµo«Ç‡ÃñÍ}›Ë³¬.ƒ;êÓáMf'yöŽÚƒ;êóáøbÕó³wÔÜQ·áY~›ÏÞQ{ð¶zÚ>™äYV—ÁuûŽV=?{GíÁuûäßšÎÞ1kn‡Ü>™äÙ;hÞVŸ·ÏàQªãYV—Áuûdv’gï¨=¸£>ždv’gï¨=¸£¾^߬z~öŽÚƒ·Õ—‡Ã“ÌNò,«ËàŽútx•ÙIž½£öàŽº}ÏV=?{GíÁuûdv’gï¨=x[}Ý>™äYV—Áuûž¬z~öŽÚƒ;êö1Èì$ÏÞQ{pGÝ>™äÙ;jÞVßò`"ϲºî¨O‡‹~{ôŽYs;äóáQÆ'yöÚƒ;êëáåÕªçgï¨=x[}ß>ŸäYV—Áuûd|’gï¨=¸£nÃɪçgï¨=¸£nƒŒOòìµoªÏÛÇ ÿ…vžEuÜQ·áѪçgï¨=¸£nƒŒOòìµwÔ×óüï™òìµo«‡y0‘gY]wԧóŒOòìµwÔçÃÃ탉ËâÓëãÞmçãËö'š÷{/r~¨Ž)?½ÈùJ”.7¯ãϰÛ;·¿%ܼî<§oÿ|<m +1-.€5†%®ñFˆKÞõg¸L…KbÍqƒkÈ$¸DÖ¸‚œý-=Çõ!ßYsœÞ2å-‘5ÇÝ!“ÝYsÝ +r6·@ö·†LpKdÍqnkÈÔ¶DÖ·¶†LjKdÍqh+ÈÙÙÙs\Ù2‘-‘5lj!SØYsØ×qäµ^a\+¼´µàÕ—µLXKbÍqVkÈTµDÖ7µ†LRKdÍqP+ÈÙÓÙs\Ó21-‘5Ç)!SÒYsÜÑ2-‘5Ç gCdÏqAkÈ´DÖ糆L=KdÍq;kȤ³DÖ‡³÷ÉK7»O.s\Í2Ñ,‘5Çɬ!SÌYsØËqä²^q,+ÀÙÊ‚Øs\Ê2¡,‘5Ç™¬!SÉYsÜÈ2‰,‘5Ǭ gdÏqkÈıDÖ§±†LKdÍqkÈd±DÖG±‚œM,=ÇE¬!ÄYsœÃ25,‘5Ç-¬!“ÂYs +rv°@öW°†LKdÍakÄQÀx=Æý«“¿’Xs¿ +r¶¯@ö—¯†LøJdÍqöjÈT¯DÖ7¯†LòJdÍqð*ÈÙ»Ùs\»2±+‘5Ç©«!SºYsܹ2™+‘5Ç‘« gã +dÏqájÈ®DÖç†LÝJdÍqÛjȤDÖ‡‚œ]+=‡U«GÔJàõ'LÑJbÍqÏjÈä¬DÖǬ‚œ-+=Ç%«!²Ysœ±2+‘5Ç
«!“°Ys°Þ'/ýê>¹Ìq½jÈÄ«DÖ§«†L¹JdÍq·jÈd«DÖG«‚œÍ*=ÇŪ!¬Ysœ«BHijUz‹«^Þb·UÝ}‰%U}º“ªžÞÏÛ6±UϸXõ‡¯?ÿÿ«^^ë¬V…/kæªW_Ö~¯úùE XEµ9Y5êlVI]©ZUæ9[EñzÃUŽrÅšãvU™‰WíAÎW…zéWA]¹`UjVT{#V¥¦bEµ¹cUjBVT{SV£Î–•ÔekV¥&gEµ9hUjŠVT{›V¥&jEµ9k5êìZI]¹lUjÒVT{ãV¥¦nEµ¹oUjWT{Wƒ¦q%³ç°rUäÈ\‘¬9]•™ÒÑäÖU©‰]QíAÎ]:{WR—A.^•šäÕäèU©©^QíAî^•šðÕäôÕ¨³}%uäúU©É_QíA`•šÕäV©‰`QíAÎ`:;XR—A.a•šÕäV©©aQíAìa:‚X4k“XC¦‰%²ç¸ŠUf²XD{ÃX¥¦ŒEµ¹UjâXT{óX£Î>–ÔeY¥&‘Eµ9’Uj*YT{;Y¥&”Eµ9•5êleI]¹–UjrYT{ƒY¥¦˜Eµ¹™Uj¢YT{³Y¡^ºYP×A.g•štÕäxV©©gQíAìg:Z4kŽZcΆ–Ðe+Z¥&£Eµ9¤UjJZT{[Z¥&¦Eµ9§5êìiI]¹¨Uj’ZT{£Z¥¦ªEµ¹«UjÂZT{ÓZ£Î¶–ÔeëZ¥&¯Eµ9°Uj +[T{[¥&²Eµ9³5êìlI]¹´UjR[T{c[…ŽÚÍšãÞV™ níANn:›[R—A®n•šìÕäðV©)oQíAno•šøÕäüÖ¨³¿%uäW©IpQíAŽp•š +ÕäW© qQíANq:[\R—A®q•šÕä W©)rQíAnr•š(Õä,ר³Ë%uÄ2W¡#ÍE³æ8ÎUfê\D{û\¥&ÐEµ9Ñ5êltI]¹ÒUj2]T{C]¥¦ÔEµ¹ÕUjb]T{s]¡^z]P×A.v•šdÕähW©©vQíAîv•špÕätר³Ý%uäzW©ÉwQíAx).5/¾ÈHx¯^äi¯áÝßøóf/‡—‡WŽxÇ3.âýåë×ïÓéððx¯à}yÛ¾õ?}¹z§õÅŸ¶zÚ+x·6{;ñ×”‡®¿¦ÏÉçëñpz=Ýz‘êùÙ;jî¨ÏÛóÏR=?{GíÁõípz~‘êùÙ;jî4ÒÛÇp’êx–ÕepGÝ>†zWêùÙ;jî¨#Wj*tT{+t¥¦BGµ¹B7ê¬ÐI]©BWæ¹BGñz+tŽ +Åšã +]™©ÐíA®Ð…z©ÐA]¹BWj*tT{+t¥¦BGµ¹BWj*tT{+t£Î +Ôe+t¥¦BGµ¹BWj*tT{+t¥¦BGµ¹B7ê¬ÐI]¹BWj*tT{+t¥¦BGµ¹BWj*tT{+tƒ¦B'³ç°BWä¨Ð‘¬9®Ð•™ +Ñä +]©©ÐQíA®Ð:+tR—A®Ð•š +Õä +]©©ÐQíA®Ð•š +Õä +ݨ³B'uä +]©©ÐQíA®Ð•š +Õä +]©©ÐQíA®Ð:+tR—A®Ð•š +Õä +]©©ÐQíA¬Ð:*t4k+tC¦B'²ç¸BWf*tD{+t¥¦BGµ¹BWj*tT{+t£Î +Ôe+t¥¦BGµ¹BWj*tT{+t¥¦BGµ¹B7ê¬ÐI]¹BWj*tT{+t¥¦BGµ¹BWj*tT{+t¡^*tP×A®Ð•š +Õä +]©©ÐQíA¬Ð:*t4kŽ+tcÎ +Ðe+t¥¦BGµ¹BWj*tT{+t¥¦BGµ¹B7ê¬ÐI]¹BWj*tT{+t¥¦BGµ¹BWj*tT{+t£Î +Ôe+t¥¦BGµ¹BWj*tT{+t¥¦BGµ¹B7ê¬ÐI]¹BWj*tT{+t…Ž +Íšã +]™©ÐíA®Ð:+tR—A®Ð•š +Õä +]©©ÐQíA®Ð•š +Õä +ݨ³B'uä +]©©ÐQíA®Ð•š +Õä +]©©ÐQíA®Ð:+tR—A®Ð•š +Õä +]©©ÐQíA®Ð•š +Õä +ݨ³B'uÄ +]¡£BG³æ¸BWf*tD{+t¥¦BGµ¹B7ê¬ÐI]¹BWj*tT{+t¥¦BGµ¹BWj*tT{+t¡^*tP×A®Ð•š +Õä +]©©ÐQíA®Ð•š +Õä +ݨ³B'uä +]©©ÐQíA®Ð÷iW¡ã‹Œ +ýêEv+ôý÷ø?Júé¸ýÝê™+ôñŒ«Ð¿ûáF„þø¶ý}ân„þÑ”=}¹z¥õ½?¾Iï5èÛÿßÏßþÕ$|Eyèú+ú|¾¼n¾Ç
õüìµwÔ·Ãéý(Õó³wÔÜiÐG”oÔYù“ºrå¯ÔTþ¨ö WþJMåjrå¯ÔTþ¨ö WþF•?©Ë WþJMåjrå¯ÔTþ¨ö WþJMåjråoÔYù“ºRå¯ÌsåâõVþ +•?Š5Ç•¿2Sù#Úƒ\ùõRùƒºrå¯ÔTþ¨ö WþJMåjrå¯ÔTþ¨ö WþF•?©Ë WþJMåjrå¯ÔTþ¨ö WþJMåjråoÔYù“ºrå¯ÔTþ¨ö WþJMåjrå¯ÔTþ¨ö VþMåOfÏaå¯ÈQù#Ys\ù+3•?¢=È•¿RSù£Úƒ\ùuVþ¤.ƒ\ù+5•?ª=È•¿RSù£Úƒ\ù+5•?ª=È•¿QgåOê2È•¿RSù£Úƒ\ù+5•?ª=È•¿RSù£Úƒ\ùuVþ¤.ƒ\ù+5•?ª=È•¿RSù£ÚƒXù+tTþhÖVþ†LåOdÏqå¯ÌTþˆö WþJMåjrå¯ÔTþ¨ö WþF•?©Ë WþJMåjrå¯ÔTþ¨ö WþJMåjråoÔYù“ºrå¯ÔTþ¨ö WþJMåjrå¯ÔTþ¨ö WþB½Tþ ®ƒ\ù+5•?ª=È•¿RSù£ÚƒXù+tTþhÖWþÆœ•?¡Ë WþJMåjrå¯ÔTþ¨ö WþJMåjråoÔYù“ºrå¯ÔTþ¨ö WþJMåjrå¯ÔTþ¨ö WþF•?©Ë WþJMåjrå¯ÔTþ¨ö WþJMåjråoÔYù“ºrå¯ÔTþ¨ö Vþ +•?š5Ç•¿2Sù#Úƒ\ùuVþ¤.ƒ\ù+5•?ª=È•¿RSù£Úƒ\ù+5•?ª=È•¿QgåOê2È•¿RSù£Úƒ\ù+5•?ª=È•¿RSù£Úƒ\ùuVþ¤.ƒ\ù+5•?ª=È•¿RSù£Úƒ\ù+5•?ª=È•¿QgåOê2ˆ•¿BGåfÍqå¯ÌTþˆö WþJMåjråoÔYù“ºrå¯ÔTþ¨ö WþJMåjrå¯ÔTþ¨ö WþB½Tþ ®ƒ\ù+5•?ª=È•¿RSù£Úƒ\ù+5•?ª=È•¿QgåOê2È•¿RSù£Úƒ\ùïè®òÇ•ÿÕ‹ìVþûïñÖüö×üã_ècå?žq•ÿÏ_¿ûá¿~÷ã?ýÛ?üù/_?ÿÛ÷÷·‡·;ÅÿñiûP¾\½ÜçÞÿõímç¯ö¥t‚/n–NW_Ü~éôùE tBµ¹tRjJ'T{K'ƒ¦t"³ç°tRä(¬9.”™Ò ÑäÒI©)PíA.Œ:K'R—A.”šÒ ÕäÒI©)PíA.”šÒ ÕäÒɨ³t"uäÒI©)PíA.”šÒ ÕäÒI©)PíA.Œ:K'R—A.”šÒ ÕäÒI©)PíA,:J'4kK'C¦t"²ç¸tRfJ'D{K'¥¦tBµ¹tRjJ'T{K'£ÎÒ‰ÔeK'¥¦tBµ¹tRjJ'T{K'¥¦tBµ¹t2ê,H]¹tRjJ'T{K'¥¦tBµ¹tRjJ'T{K'¡^J'P×A.”šÒ ÕäÒI©)PíA,:J'4kŽK'cÎÒ‰ÐeK'¥¦tBµ¹tRjJ'T{K'¥¦tBµ¹t2ê,H]¹tRjJ'T{K'¥¦tBµ¹tRjJ'T{K'£ÎÒ‰ÔeK'¥¦tBµ¹tRjJ'T{K'¥¦tBµ¹t2ê,H]¹tRjJ'T{K'…ŽÒ ÍšãÒI™)íA.Œ:K'R—A.”šÒ ÕäÒI©)PíA.”šÒ ÕäÒɨ³t"uäÒI©)PíA.”šÒ ÕäÒI©)PíA.Œ:K'R—A.”šÒ ÕäÒI©)PíA.”šÒ ÕäÒɨ³t"uÄÒI¡£tB³æ¸tRfJ'D{K'¥¦tBµ¹t2ê,H]¹tRjJ'T{K'¥¦tBµ¹tRjJ'T{K'¡^J'P×A.”šÒ ÕäÒI©)PíA.”šÒ ÕäÒɨ³t"uäÒI©)PíA.öÛW:ዌÒéêEvK§ý÷øm¥Óö)^·¿[Qé”g\éôï?ÿùׯ”:½·ï@÷S§íco_®^ïsët|{ßmFÿC_^ºþòöúŸï±Ûÿ ÙsÔÿ8òÜÿ0YsØÿ8sô?Œö ö?Ný«=ˆýRÓÿ ºbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?Ný«=ˆýRÓÿ ºbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?Ný«=ˆýRÓÿ ºbÿãÔÑÿ°ÚƒØÿ8uô?¬ö õ?=÷?lÖõ?Šý’=‡ý3GÿÃhbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?JMÿƒê2ˆýSGÿÃjbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?JMÿƒê2ˆýSGÿÃjbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?Fý©ë ö?Ný«=ˆýSGÿÃjRÿãÐsÿÃfÍaÿ£Ìô?ˆ.ƒØÿ8uô?¬ö ö?Ný«=ˆýSGÿÃjbÿ£Ôô?¨.ƒØÿ8uô?¬ö ö?Ný«=ˆýSGÿÃjbÿ£Ôô?¨.ƒØÿ8uô?¬ö ö?Ný«=ˆýSGÿÃjbÿ£Ôô?¨.ƒØÿ8uô?¬ö õ?=÷?lÖö?Îý£=ˆýRÓÿ ºbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?Ný«=ˆýRÓÿ ºbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?Ný«=ˆýRÓÿ ºbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?Ný«=ˆýRÓÿ ºRÿãÐsÿÃfÍaÿãÌÑÿ0ÚƒØÿ8uô?¬ö ö?JMÿƒê2ˆýSGÿÃjbÿãÔÑÿ°ÚƒØÿ8uô?¬ö ö?Fý©ë ö?Ný«=ˆýSGÿÃjbÿãÔÑÿ°ÚƒØÿ(5ýªË ö?Ný«=ˆýô(ªÿá9?tý"ÇþÞã·ý>ãç·ÓöGGîÆ3®ÿùׯ¿þçŸþéçÏáÏöǺç§÷{¿Õxû›öÓÇŸÃ./ö¹üyÙý)Gó—xÒ–‡®¿°_âyã5ö~‰'‹×côK<xþ%ž,ÖþOgŽ_âÉhâ/ñ4êü%ž¤®ƒøK<:~‰'«=ˆ¿ÄÓ©ã—x²ÚƒøK<:~‰'«=ˆ¿ÄS©ù%ž¨.ƒøK<:~‰'«=ˆ¿ÄÓ©ã—x²ÚƒøK<:~‰'«=ˆ¿ÄS©ù%ž¨.ƒøK<:~´«=ˆ?ÚΩãGÛ±Úƒø£íœš´ÕÄ´Õ I[Éì9L[9ÒV$kŽÓVe&mE´9mUjÒVT{ÓV£Î´•ÔeÓV¥&mEµ9mUjÒVT{ÓV¥&mEµ9m5êL[I]9mUjÒVT{ÓV¥&mEµ9mUjÒVT{ÓV£Î´•ÔeÓV¥&mEµ9mUjÒVT{ÓV…Ž´ÍšÃ´ÕI[‰ì9N[•™´Ñä´U©I[QíAN[•š´Õä´Õ¨3m%uä´U©I[QíAN[•š´Õä´U©I[QíAN[:ÓVR—AN[•š´Õä´U©I[QíAN[•š´Õä´U¨—´ÔuÓV¥&mEµ9mUjÒVT{ÓV…Ž´Íšã´Õ˜3m%tä´U©I[QíAN[•š´Õä´U©I[QíAN[:ÓVR—AN[•š´Õä´U©I[QíAN[•š´Õä´Õ¨3m%uä´U©I[QíAN[•š´Õä´U©I[QíAN[:ÓVR—AN[•š´ÕÄ´U¡#mE³æ8mUfÒVD{ÓV£Î´•ÔeÓV¥&mEµ9mUjÒVT{ÓV¥&mEµ9m5êL[I]9mUjÒVT{ÓV¥&mEµ9mUjÒVT{ÓV£Î´•ÔeÓV¥&mEµ9mUjÒVT{ÓV¥&mEµ9m5êL[I]1mUèH[Ѭ9N[•™´Ñä´U©I[QíAN[:ÓVR—AN[•š´Õä´U©I[QíAN[•š´Õä´U¨—´ÔuÓV¥&mEµ9mUjÒVT{ÓV¥&mEµ9m5êL[I]9mUjÒVT{ÓÖýàÒ¥ø"#m½z‘Ý´uÿ=~ã¶{}Üþ,Ëeëù¶~ÿ—¯ßý¼“¶>¿l{÷ÒÖNñýãÔ|±õ埾Փ;?ÓnF‰û_×l/_×~’øé- H$²æ¸G4drD"kŽcDAÎÈžãÑ ‰¬9Î
™ +‘ÈšãÑI‰¬99ûC {ŽëCC&>$²æ8=4dÊC"kŽ»CC&;$²æ0:bšC +C"kŽûBC&/$²æ8.älì9.
™°Èšã¬Ð© +‰¬9n +
™¤Èšã P³'²ç¸&4dbB"kŽSBC¦$$²æ°#4âÈ ¼ÃˆPxiÁ«1.
˜€Äšã|Щ‰¬9n
™tÈšãpP³²ç¸4d¢A"kŽ“AC¦$²æ¸4drA"kŽcAAÎVÈžãRÐ ‰¬9Î
™JÈšãFÐI‰¬9ï“—>pŸ\æ¸4dâ@"kŽÓ@C¦$²æ°4âÈ ¼ã(P€³ ±ç¸4d‚@"kŽs@C¦$²æ¸4dR@"kŽC@AÎÈžã +Љ +OP×An<•šÈÕäÌS©é<QíA.=•šÔÕäØÓ¨³ö$uäÞS© >QíAN>÷[D×|⋌èóêEv«Ïý÷øÃñuü–~ãéx8}ûûçög÷Óëíìs<”g>^èúáoùúû?<=?üîïÿòÝ/¿|ýåS0ùð²ý‘ñøåjúó_«··Ó^·ùðvxýöߪëå¡ëWû\n>nŸÉÃÛù¬ŽgY]wÔãömý]ªçgï¨=¸£¾lß×z~öŽÚƒ;êÛáÅþþöè³æn“Û +Ç (Ö'(3Ç ˆö 'õrœ +Ç hÖ'(3Ç ˆö 'u'ºòq‚Rsœ€jòq‚Rsœ€jòq‚Rsœ€jòq‚Qçq©Ë '(5Ç ¨ö '(5Ç ¨ö '(5Ç ¨ö 'u'ºòq‚Rsœ€jòq‚Rsœ€jòq‚Rsœ€jòq‚Qçq©Ë '(t' Ys|œ Ì' Úƒ|œ Ô' Úƒ|œ`Ôyœ@ê2ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ B½'€ºòq‚Rsœ€jòq‚Rsœ€jòq‚Rsœ€jòq‚Qçq©Ë '(5Ç ¨ö 'ìçöî8_d'\½ÈîqÂþ{üÆã„í“~Øþ¡Æ3ü{vžÆ¯ÑùçþóþõŸÿùó/ÛÙþX÷üô>ûǯ¿þé§n»¯ýÑåµ>Ÿ5<žö®fÃ_Õlx¯¾ªý†÷ó{@ËjrÃkÔÙð’ºRëÌsËâõ6¼ +
/Š5Ç
¯2Óð"ÚƒÜð +õÒð‚ºrëÔ4¼¨ö 7¼JMËjrëÔ4¼¨ö 7¼F
/©Ë 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÙð’ºrëÔ4¼¨ö 7¼JMËjrëÔ4¼¨ö 6¼MÃKfÏaëÈÑð"YsÜð*3
/¢=È
¯RÓð¢ÚƒÜðu6¼¤.ƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QgÃKê2È
¯RÓð¢ÚƒÜð*5
/ª=È
¯RÓð¢ÚƒÜðu6¼¤.ƒÜð*5
/ª=È
¯RÓð¢ÚƒØð*t4¼hÖ6¼†LÃKdÏqëÌ4¼ˆö 7¼JMËjrëÔ4¼¨ö 7¼F
/©Ë 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÙð’ºrëÔ4¼¨ö 7¼JMËjrëÔ4¼¨ö 7¼B½4¼ ®ƒÜð*5
/ª=È
¯RÓð¢ÚƒØð*t4¼hÖ7¼Æœ
/¡Ë 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÙð’ºrëÔ4¼¨ö 7¼JMËjrëÔ4¼¨ö 7¼F
/©Ë 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÙð’ºrëÔ4¼¨ö 6¼ +
/š5Ç
¯2Óð"ÚƒÜðu6¼¤.ƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QgÃKê2È
¯RÓð¢ÚƒÜð*5
/ª=È
¯RÓð¢ÚƒÜðu6¼¤.ƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QgÃKê2ˆ
¯BGËfÍqëÌ4¼ˆö 7¼JMËjrÃkÔÙð’ºrëÔ4¼¨ö 7¼JMËjrëÔ4¼¨ö 7¼B½4¼ ®ƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QgÃKê2È
¯RÓð¢ÚƒÜðî·¥®áÅ
ïÕ‹œöÞý÷XÞ'nxOï§íïØðæ×ðþòõ×øásÀûô~8Þéw_Þ¿ý{Ù«Wúü×øx|Ùxóƒ¤éKÊC×_Òî’¾ñ"û?HšÕÄ$íÔñƒ¤YíAüAÒN?HšÕÄ$Ôü iT—AüAÒN?HšÕÄ$íÔ¡³Úƒ¡;uDè¬ö FèJM„Žê2º3¿Eè,^Q„îÀs„ÎbÍa„îÌ¡3Úƒ¡uF褮ƒ¡;uDè¬ö FèN:«=ˆºSG„Îjb„®ÔDè¨.ƒ¡;uDè¬ö FèN:«=ˆºSG„Îjb„®ÔDè¨.ƒ¡;uDè¬ö FèN:«=ˆºSG„ÎjR„®Ð¡£Ùs¡;ò¡3Ys¡;sDèŒö FèN:«=ˆºR¡£ºb„îÔ¡³Úƒ¡;uDè¬ö FèN:«=ˆºR¡£ºb„îÔ¡³Úƒ¡;uDè¬ö FèN:«=ˆºR¡£ºb„îÔ¡³Úƒ¡;uDè¬ö Eè=GèlÖEèŠ:’=‡º3G„Îhb„îÔ¡³Úƒ¡;uDè¬ö FèJM„Žê2ˆºSG„Îjb„îÔ¡³Úƒ¡;uDè¬ö FèJM„Žê2ˆºSG„Îjb„îÔ¡³Úƒ¡;uDè¬ö FèF:©ë FèN:«=ˆºSG„ÎjR„îÐs„ÎfÍa„®ÌDèˆ.ƒ¡;uDè¬ö FèN:«=ˆºSG„Îjb„®ÔDè¨.ƒ¡;uDè¬ö FèN:«=ˆºSG„Îjb„®ÔDè¨.ƒ¡;uDè¬ö FèN:«=ˆºSG„Îjb„®ÔDè¨.ƒ¡;uDè¬ö Eè=GèlÖFèÎ:£=ˆºR¡£ºb„îÔ¡³Úƒ¡;uDè¬ö FèN:«=ˆºR¡£ºb„îÔ¡³Úƒ¡;uDè¬ö FèN:«=ˆºR¡£ºb„îÔ¡³Úƒ¡;uDè¬ö FèN:«=ˆºR¡£ºR„îÐs„ÎfÍa„îÌ¡3Úƒ¡;uDè¬ö FèJM„Žê2ˆºSG„Îjb„îÔ¡³Úƒ¡;uDè¬ö FèF:©ë FèN:«=ˆºSG„Îjb„îÔ¡³Úƒ¡+5:ªË FèN:«=ˆ:Ò"Bç9?tý"{:¼ÇoûAÒ§·Çí7èçG\‚þÝ÷ßý믟ôãéðúÊ
úömí|£Ï?Búýøº› 'ËÞÿ‚f•}ù‚ö£ìOoM6‘5ÇE¶ g
dÏqŽmÈÔØDַ؆LŠMdÍqˆmÈtØDÖWØ‚œ6=G ¶Ï6qWSØ_mä×Ä]q|mÀ´×$Ö—×÷ÉKx½O.sœ]2Õ5‘5Ç͵!“\Ys\2½5‘5ǵµ gl
dÏqjmÈ”ÖDÖwÖ†LfMdÍqdmÈ4ÖDÖÖ‚œ5=Çyµ!SWYsÜV2i5‘5Çaµ!ÓUYsXU1Q5€5†IµñFQMÞõ÷ÔLNMbÍqLmÈ´ÔDÖ—Ô‚œ!5=ǵ!SQYsÜP2 5‘5ǵ!ÓOYs\OrÆÓ@ö§Ó†L9MdÍq7mÈdÓDÖGÓ†L3MdÍq1-ÈLÙsœK2µ4‘5Ç´!“JYsJqtÒ^a%-¼DÒàÕ'ÒL!MbÍqmÈäÑDÖÇцLMdÍq-ÈFÙsœE2U4‘5ÇM´!“DYsD2=4‘5Ç5´ g
dÏq +mÈ”ÐDÖwІLMdÍqmÈ4ÐDÖÐ÷ÉK +X©É€QíA:K`R—An•šÕäX©éQíA.‚•š$Õä(ب³ +&uä.X© ƒQíANƒ•š6Õä:X©ÉƒQíA„…z)„A]¹Vj"aT{3a¥¦Fµ±VèH…Ѭ9Ž…9kaB—Aî…•š`ÕädX©i†QíA®†•šlÕäpب³&uävX©‰‡QíA·•š~Õä‚X©IˆQíAŽˆ:+bR—AšÕä”X©i‰QíA®‰•šœÕä Ø¨³(&uä¦X©‰ŠQíAÌŠ:ºb4kŽËbe&-F´9.6ꬋI]¹/VjcT{c¥¦1Fµ¹2Vj2cT{Cc£ÎÒ˜Ôe[c¥&6Fµ97VjzcT{‹c¥&9Fµ9:6ꬎI]¹;VjÂcT{Óc¥¦=Fµ¹>VjòcT{d£Î™Ôed…ŽÍšãY™éíA.‘•šÕäÙ¨³F&uäY© ’QíAN’•š&Õä*Y©É’QíA“…z)“A]¹MVjâdT{ód¥¦OFµ¹PVjeT{#e£ÎJ™Ôe;e¥&TFµ9UÞi]«Œ/2bå«yÞ«•÷ßã7þˆä(ßþšc®<žq¹ò¿ÿüç_¿~Ž•ŸÞÛ׆±òËûùßË^^éó_ããñe÷‡$?loqâ/)]I7~Lòñpz=Ýz‘êùÙ;jî¨ã8+5?Õä ÔüLhT{*´Qg„Nê2ȺR¡£Úƒ¡+5:ª=ȺR¡£Úƒ¡uFè¤.ƒ¡+ó¡£x=†ºG„ŽbÍq„®ÌDèˆö GèB½Dè ®ƒ¡+5:ª=ȺR¡£Úƒ¡+5:ª=ȺQg„Nê2ȺR¡£Úƒ¡+5:ª=ȺR¡£Úƒ¡uFè¤.ƒ¡+5:ª=ȺR¡£Úƒ¡+5:ª=ˆºA¡“Ùs¡+rDèHÖGèÊL„Žhr„®ÔDè¨ö GèF:©Ë GèJM„Žjr„®ÔDè¨ö GèJM„Žjr„nÔ¡“ºr„®ÔDè¨ö GèJM„Žjr„®ÔDè¨ö GèF:©Ë GèJM„Žjr„®ÔDè¨ö Fè +:š5‡º!¡Ùs¡+3:¢=ȺR¡£Úƒ¡+5:ª=ȺQg„Nê2ȺR¡£Úƒ¡+5:ª=ȺR¡£Úƒ¡uFè¤.ƒ¡+5:ª=ȺR¡£Úƒ¡+5:ª=ȺP/:¨ë GèJM„Žjr„®ÔDè¨ö Fè +:š5Ǻ1g„Nè2ȺR¡£Úƒ¡+5:ª=ȺR¡£Úƒ¡uFè¤.ƒ¡+5:ª=ȺR¡£Úƒ¡+5:ª=ȺQg„Nê2ȺR¡£Úƒ¡+5:ª=ȺR¡£Úƒ¡uFè¤.ƒ¡+5:ª=ˆºBG„ŽfÍq„®ÌDèˆö GèF:©Ë GèJM„Žjr„®ÔDè¨ö GèJM„Žjr„nÔ¡“ºr„®ÔDè¨ö GèJM„Žjr„®ÔDè¨ö GèF:©Ë GèJM„Žjr„®ÔDè¨ö GèJM„Žjr„nÔ¡“ºb„®Ð¡£Ys¡+3:¢=ȺR¡£Úƒ¡uFè¤.ƒ¡+5:ª=ȺR¡£Úƒ¡+5:ª=ȺP/:¨ë GèJM„Žjr„®ÔDè¨ö GèJM„Žjr„nÔ¡“ºr„®ÔDè¨ö GèH›_dDèW/²¡ï¿Çoü™ÙÛŸïŽÇgŽÐÇ3.Bÿùëw?ÜhÐO‡‡Ç;
úéœã\Þèó_â×ío6;
úËËáááÎW”‡®¿¢ÏÁçËÛáô~¼õ"7Ôó³wÔÜ©ÁGoÔÙÛ“ºro¯Ôôö¨ö ÷öJMojro¯Ôôö¨ö ÷öF½=©Ë ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÙÛ“ºRo¯Ìsoâõöö +½=Š5ǽ½2ÓÛ#ÚƒÜÛõÒÛƒºro¯Ôôö¨ö ÷öJMojro¯Ôôö¨ö ÷öF½=©Ë ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÙÛ“ºro¯Ôôö¨ö ÷öJMojro¯Ôôö¨ö ööMoOfÏao¯ÈÑÛ#YsÜÛ+3½=¢=Ƚ½RÓÛ£ÚƒÜÛuöö¤.ƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½QgoOê2Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛuöö¤.ƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒØÛ+tôöhÖöö†LoOdÏqo¯Ìôöˆö ÷öJMojro¯Ôôö¨ö ÷öF½=©Ë ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÙÛ“ºro¯Ôôö¨ö ÷öJMojro¯Ôôö¨ö ÷öB½ôö ®ƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒØÛ+tôöhÖ÷öÆœ½=¡Ë ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÙÛ“ºro¯Ôôö¨ö ÷öJMojro¯Ôôö¨ö ÷öF½=©Ë ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÙÛ“ºro¯Ôôö¨ö öö +½=š5ǽ½2ÓÛ#ÚƒÜÛuöö¤.ƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½QgoOê2Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛuöö¤.ƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½QgoOê2ˆ½½BGofÍqo¯Ìôöˆö ÷öJMojrooÔÙÛ“ºro¯Ôôö¨ö ÷öJMojro¯Ôôö¨ö ÷öB½ôö ®ƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½QgoOê2Ƚ½RÓÛ£ÚƒÜÛSnz{|‘ÑÛ_½Èno¿ÿ¿ñ‡¾ü0ö·÷öã×ÛÿõëןÿþëÏ¿þù_þüýw·~üûÛqûô†íýG†´ýìËÕÛ_ÂÇ׿÷—ûÁW7££«¯n?:úü"¡Úƒ4Ñ™=‡Ñ‘"Gt„dÍqt¤ÌDGˆö GGJMt„jrtdÔ‘ºrt¤ÔDG¨ö GGJMt„jrt¤ÔDG¨ö GGFÑ©Ë GGJMt„jrt¤ÔDG¨ö GGJMt„jrtdÔ‘ºrt¤ÔDG¨ö GGJMt„jbt¤Ð¡Ys2Ñ‘=ÇÑ‘2!Úƒ)5Ѫ=ÈÑ‘R¡ÚƒuFG¤.ƒ)5Ѫ=ÈÑ‘R¡Úƒ)5Ѫ=ÈÑ‘QgtDê2ÈÑ‘R¡Úƒ)5Ѫ=ÈÑ‘R¡Úƒ õºrt¤ÔDG¨ö GGJMt„jbt¤Ð¡YssFG„.ƒ)5Ѫ=ÈÑ‘R¡Úƒ)5Ѫ=ÈÑ‘QgtDê2ÈÑ‘R¡Úƒ)5Ѫ=ÈÑ‘R¡ÚƒuFG¤.ƒ)5Ѫ=ÈÑ‘R¡Úƒ)5Ѫ=ÈÑ‘QgtDê2ÈÑ‘R¡Úƒ)tDGhÖGGÊLt„hrtdÔ‘ºrt¤ÔDG¨ö GGJMt„jrt¤ÔDG¨ö GGFÑ©Ë GGJMt„jrt¤ÔDG¨ö GGJMt„jrtdÔ‘ºrt¤ÔDG¨ö GGJMt„jrt¤ÔDG¨ö GGFÑ©Ë FG +Ñš5ÇÑ‘2!Úƒ)5Ѫ=ÈÑ‘QgtDê2ÈÑ‘R¡Úƒ)5Ѫ=ÈÑ‘R¡Úƒ õºrt¤ÔDG¨ö GGJMt„jrt¤ÔDG¨ö GGFÑ©Ë GGJMt„jrt´_Á¸è_dDGW/²í¿ÇoŒŽ6ô´ýa££ñŒ‹ŽþöËWl޶ïïowš£Ç·í¯öë—«—[¿‚{ßkŽæ’‚/nþ(©«/nÿGI}~øQR¤.ƒü£¤”š%…jò’Rjª.T{«.¥¦êBµ±ê2hª.2{«.EŽªÉšãªK™©ºíA®º”šªÕäªË¨³ê"uäªK©©ºPíA®º”šªÕäªK©©ºPíA®ºŒ:«.R—A®º”šªÕäªK©©ºPíA®º”šªÕäªË¨³ê"uäªK©©ºPíA®º”šªÕĪK¡£êB³æ°ê2dª."{Ž«.e¦êB´¹êRjª.T{«.¥¦êBµ¹ê2ꬺH]¹êRjª.T{«.¥¦êBµ¹êRjª.T{«.£Îª‹Ôe«.¥¦êBµ¹êRjª.T{«.¥¦êBµ¹êê¥êuäªK©©ºPíA®º”šªÕĪK¡£êB³æ¸ê2欺]¹êRjª.T{«.¥¦êBµ¹êRjª.T{«.£Îª‹Ôe«.¥¦êBµ¹êRjª.T{«.¥¦êBµ¹ê2ꬺH]¹êRjª.T{«.¥¦êBµ¹êRjª.T{«.£Îª‹Ôe«.¥¦êBµ±êR診Ь9®º”™ªÑäªË¨³ê"uäªK©©ºPíA®º”šªÕäªK©©ºPíA®ºŒ:«.R—A®º”šªÕäªK©©ºPíA®º”šªÕäªË¨³ê"uäªK©©ºPíA®º”šªÕäªK©©ºPíA®ºŒ:«.R—A¬º:ª.4kŽ«.e¦êB´¹êRjª.T{«.£Îª‹Ôe«.¥¦êBµ¹êRjª.T{«.¥¦êBµ¹êê¥êuäªK©©ºPíA®º”šªÕäªK©©ºPíA®ºŒ:«.R—A®º”šªÕäªk¿3rU¾È¨º®^d·êÚßø«›Ž‡ÓÛ#W]ã]uýï_ÿãsÍu<^_ù—7oÿÀñðñ‹Z/ïô9æz?¾îýòæùK~ákš¿ä÷êkÚÿ%¿Ÿ_~É/ª=È¿äרó—ü’ºò/ùUj~É/ª=È¿äW©ù%¿¨ö ÿ’_¥æ—ü¢ÚƒüK~:É/©Ë ý’_ežÉ/Š×cøK~8~É/Š5Ç¿äW™ù%¿ˆö ÿ’_¡^~É/¨ë ÿ’_¥æ—ü¢ÚƒüK~•š_ò‹jò/ùUj~É/ª=È¿äרó—ü’ºò/ùUj~É/ª=È¿äW©ù%¿¨ö ÿ’_¥¦ÌFµ¹Ì6ê,³I]¹ÌVjÊlT{Ël¥¦ÌFµ¹ÌVjÊlT{Ëlƒ¦Ì&³ç°ÌVä(³‘¬9.³•™2Ñä2[©)³QíA.³:ËlR—A.³•š2Õä2[©)³QíA.³•š2Õä2Û¨³Ì&uä2[©)³QíA.³•š2Õä2[©)³QíA.³:ËlR—A.³•š2Õä2[©)³QíA,³:Êl4kËlC¦Ì&²ç¸ÌVfÊlD{Ël¥¦ÌFµ¹ÌVjÊlT{Ël£Î2›ÔeËl¥¦ÌFµ¹ÌVjÊlT{Ël¥¦ÌFµ¹Ì6ê,³I]¹ÌVjÊlT{Ël¥¦ÌFµ¹ÌVjÊlT{Ël¡^ÊlP×A.³•š2Õä2[©)³QíA,³:Êl4kŽËlcÎ2›ÐeËl¥¦ÌFµ¹ÌVjÊlT{Ël¥¦ÌFµ¹Ì6ê,³I]¹ÌVjÊlT{Ël¥¦ÌFµ¹ÌVjÊlT{Ël£Î2›ÔeËl¥¦ÌFµ¹ÌVjÊlT{Ël¥¦ÌFµ¹Ì6ê,³I]¹ÌVjÊlT{Ël…Ž2Íšã2[™)³íA.³:ËlR—A.³•š2Õä2[©)³QíA.³•š2Õä2Û¨³Ì&uä2[©)³QíA.³•š2Õä2[©)³QíA.³:ËlR—A.³•š2Õä2[©)³QíA.³•š2Õä2Û¨³Ì&uÄ2[¡£ÌF³æ¸ÌVfÊlD{Ël¥¦ÌFµ¹Ì6ê,³I]¹ÌVjÊlT{Ël¥¦ÌFµ¹ÌVjÊlT{Ël¡^ÊlP×A.³•š2Õä2[©)³QíA.³•š2Õä2Û¨³Ì&uä2[©)³QíA.³÷£aWf㋌2ûêEvËìý÷øm?oóü_Åc˜=q]ö÷úúýÿs³ÌÞþP÷üôÎiööÍéõííËå¥>—Ù§½0;/|IyæêKÚÍw?¿Ä~½‹dÍa»kȤ»Dö„» +üÖí"w5EÕ®ÒÎÑ.r×c˜ì*p»(Ööº‚œ¹.ËÆºŠ.’5‡¥®"G¨‹dÍa¦«ÈQé"YsØè2‰.‘=‡®"GŸ‹dÍa«Èç"Ys˜æ*r”¹HÖv¹†L–KdÏa”«ÈÑä"YsXä*r¹HÖæ¸Š5.’5G-®GŠK`Qˆ«¼s‡‹ÞõV¸ +.Š5‡ ®"G‹dÍakÈä·DöÆ·Ší-’5‡å"Gx‹dÍav«ÈQÝ"YsØÜ2É-‘=‡Á"Go‹dÍam«ÈÛ"Ys˜Ú*r”¶HÖv¶†LfKdÏad«ÈÑØ"YsXØ*r¶HÖåµJ<×µ^Q[k¼‘Ö’WcÖ*ptµ(ÖVµŠQ-’5‡I"GQ‹dÍaOkÈä´DöÆ´Š--’5‡%"GH‹dÍaF«ÈQÑ"YsØÐ2 -‘=‡"G?‹dÍa=«ÈÏ"Ys˜Î*r”³HÖv³‚œÙ,ËF³ŠÍ,’5‡Å¬"G0‹dÍQ.«Äs-‹àõ¶²L*KbÏa(«ÈÑÉ"YsXÉ*rD²HÖ&²Š…,’5‡}¬!“ÇÙsÇ*r´±HÖ–±Ša,’5‡Y¬"G‹dÍakÈ$±Dö±Š=,’5‡5¬"G‹dÍa +«ÈQÂ"YsØÁ2,‘=‡¬"G‹dÍQ«Äs +õ+Š5‡í«!“¾Ùs¾*rt¯HÖV¯ŠÑ+’5‡É«"GñŠdÍaïjÈä®DöÆ®Š+’5‡¥«"GèŠdÍaæªÈQ¹"Ysظ2‰+‘=‡«"GߊdÍaݪȷ"Ys˜¶*r”HÖv†LÖJdÏQÔªÄsÓŠàõ +A+Š5‡9«"GÍŠdÍaËjȤ¬Dö†¬Š+’5‡«"GÄŠdÍaªÈQ°"Ysد +ræ«@.s¯*r´«HÖ–«Šá*’5‡Ùª"GµŠdÍa³jÈ$«Dö«Š½*’5‡µê~G©bU|‹ó3Woñ²“ªî¿ÄoûÂÇíûçÇŽ©êxF¶ªùúÝÏŸCÕ_e§S}y?ÿ»ÍË+}þ|<¾ìþá‡í-Nü%å¡ë/éÆ>N¯§[/rC=?{GíÁõüÓ:~\2«=ˆ?.Ù©ãÇ%³Úƒøã’•š—Œê2ˆ?.Ù©ãÇ%³Úƒøã’šÚÕäÞZ© ®QíAN®:›kR—Aª®•yήQ¼ÃðZ£¼F±æ¸½VfâkD{ók¡^úkP×A.°•šÕä[©©°QíAî°•šÕäÛ¨³Å&uä[©É±QíA²•š"Õä&[©‰²QíAβ:»lR—A.³•š4Õä8[©©³QíAš@ÕÄDÛ i´Éì9¬´92m$kŽCme¦ÔF´¹ÕVjbmT{sm£Î^›Ôe‹m¥&ÙFµ9ÚVjªmT{»m¥&ÜFµ9Ý6êl·I]¹ÞVjòmT{n¥¦àFµ¹áVj"nT{3n£ÎŽ›ÔeKn¥&åFµ9æVjjnT{{n…Ž ÍšÃ¤Ûiº‰ì9®º•™¬Ñä°[©)»QíAn»•š¸Õä¼Û¨³ï&uäÂ[©I¼QíA޼•šÊÕäÎ[© ½QíAN½:[oR—A®½•šÜÕäà[©)¾QíAn¾•šèÕäì[¨—îÔuËo¥&ýFµ9þVjêoT{ûo…Ž +\©ÉÀQíAÁ•šÕä\©‰ÁQíAÎÁ:{pR—A.•š$Õä(\©©ÂQíA0Õä4ܨ³
'uä:\©ÉÃQíAÄ•šBÕäF\©‰ÄQíAÎÄ:;qR—A.Å•šTÕÄX\¡£G³æ¸Wf‚qD{“q£ÎfœÔe«q¥&Gµ9WjÊqT{Ûq¥&Gµ97êìÇI]¹ WjrT{#r¥¦"Gµ¹#WjBrT{Sr£Î–œÔekr¥&'Gµ9(WjŠrT{›r¥&*Gµ9+7êìÊI]±,WèHËѬ9ŽË•™ºÑä¾\© ÌQíANÌ:sR—A®Ì•šÌÕäÐ\©)ÍQíAnÍ•šØÕäÜ\¨—ÞÔu‹s¥&9Gµ9:WjªsT{»s¥&<Gµ9=7êlÏI]¹>WjòsT{t +¤MŽ/2ô«ÙmÐ÷ßã7þ¸ä—ÓáeûGŒÐÇ3.BÿåOûõ‡ŸþýÇÿo?0ùòZÿC?1¾ªÙð^}Uû
ïç÷€†Õä†×¨³á%u¤†W™ç†Åë1lx8^kŽ^e¦áE´¹áê¥áuä†W©ixQíAnx•š†Õä†W©ixQíAnx:^R—Anx•š†Õä†W©ixQíAnx•š†Õä†×¨³á%uä†W©ixQíAnx•š†Õä†W©ixQíAlx
š†—̞ÆW‘£áE²æ¸áUf^D{^¥¦áEµ¹á5êlxI]¹áUj^T{^¥¦áEµ¹áUj^T{^£Î†—Ôe^¥¦áEµ¹áUj^T{^¥¦áEµ¹á5êlxI]¹áUj^T{^¥¦áEµ±áUèhxѬ9lx
™†—Èžã†W™ixíAnx•š†Õä†W©ixQíAnx:^R—Anx•š†Õä†W©ixQíAnx•š†Õä†×¨³á%uä†W©ixQíAnx•š†Õä†W©ixQíAnx…zixA]¹áUj^T{^¥¦áEµ±áUèhxѬ9nx9^B—Anx•š†Õä†W©ixQíAnx•š†Õä†×¨³á%uä†W©ixQíAnx•š†Õä†W©ixQíAnx:^R—Anx•š†Õä†W©ixQíAnx•š†Õä†×¨³á%uä†W©ixQíAlx:^4kŽ^e¦áE´¹á5êlxI]¹áUj^T{^¥¦áEµ¹áUj^T{^£Î†—Ôe^¥¦áEµ¹áUj^T{^¥¦áEµ¹á5êlxI]¹áUj^T{^¥¦áEµ¹áUj^T{^£Î†—Ôe^…Ž†Íšã†W™ixíAnx•š†Õä†×¨³á%uä†W©ixQíAnx•š†Õä†W©ixQíAnx…zixA]¹áUj^T{^¥¦áEµ¹áUj^T{^£Î†—Ôe^¥¦áEµ¹áÝoK]Ë/2Þ«Ùmx÷ßã7þ éçÇíïÌÏÜðŽg\Ãû¯_ýo»ï˶ôÂïñáñðþñ;—7ûü—zûƒÿÎ_êK–_Ù̯¾²ý,ñó‹@–ˆjr–¨Ôd‰¨ö g‰FY"©Ë g‰JM–ˆjr–¨Ôd‰¨ö g‰JM–ˆjr–hÔ™%’ºr–¨Ôd‰¨ö g‰JM–ˆjr–¨Ôd‰¨ö f‰M–HfÏa–¨È‘%"Ysœ%*3Y"¢=ÈY¢R“%¢Úƒœ%uf‰¤.ƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qg–Hê2ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%uf‰¤.ƒœ%*5Y"ª=ÈY¢R“%¢Úƒ˜%*td‰hÖf‰†L–HdÏq–¨Ìd‰ˆö g‰JM–ˆjr–¨Ôd‰¨ö g‰FY"©Ë g‰JM–ˆjr–¨Ôd‰¨ö g‰JM–ˆjr–hÔ™%’ºr–¨Ôd‰¨ö g‰JM–ˆjr–¨Ôd‰¨ö g‰B½d‰ ®ƒœ%*5Y"ª=ÈY¢R“%¢Úƒ˜%*td‰hÖg‰ÆœY"¡Ë g‰JM–ˆjr–¨Ôd‰¨ö g‰JM–ˆjr–hÔ™%’ºr–¨Ôd‰¨ö g‰JM–ˆjr–¨Ôd‰¨ö g‰FY"©Ë g‰JM–ˆjr–¨Ôd‰¨ö g‰JM–ˆjr–hÔ™%’ºr–¨Ôd‰¨ö f‰ +Y"š5ÇY¢2“%"Úƒœ%uf‰¤.ƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qg–Hê2ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%uf‰¤.ƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qg–Hê2ˆY¢BG–ˆfÍq–¨Ìd‰ˆö g‰JM–ˆjr–hÔ™%’ºr–¨Ôd‰¨ö g‰JM–ˆjr–¨Ôd‰¨ö g‰B½d‰ ®ƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qg–Hê2ÈY¢R“%¢úÿ¶v7»‘é•…o¥†=i‚ÿIŽ=j40`÷¬`»²ílT[I5¨»w0ãÛ_Ä~ɳ¸RÖü`?'ĪTJZodr–HœÉñEV–xõ"‡Yâñ{üàW‹>¼œ~kñÈYâzFg‰÷í/ÿñõç_ÞW‰OϧÁO¾\ôõùæéí¿Î^^ìý_é—“~ðí¢û‹!áƒí/†¼ú`Ç_ùþEà‹!AƒüÅJM‰jr©Ô˜¨ö ˜JM‰jriÔ]`’:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`*5&ª=ȦRS`¢ÚƒX`4&™=‡¦"W‰dÍq©Ì˜ˆö ˜JM‰jriÔ]`’:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`*5&ª=ȦRS`¢Úƒ\`u˜¤ŽA.0•šÕäS©)0QíA,0º +L4kLC¦À$²ç¸ÀTf +LD{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`*5&ª=ȦRS`¢Úƒ\`u˜¤ŽA.0•šÕäS©)0QíA.0•šÕäS¨—Ô9ȦRS`¢Úƒ\`*5&ª=ˆ¦BW‰fÍqiÌ]`:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`*5&ª=ȦRS`¢Úƒ\`u˜¤ŽA.0•šÕäS©)0QíA.0•šÕäÓ¨»À$ur©Ô˜¨ö ˜ +]&š5Ǧ2S`"Úƒ\`u˜¤ŽA.0•šÕäS©)0QíA.0•šÕäÓ¨»À$ur©Ô˜¨ö ˜JM‰jr©Ô˜¨ö ˜FÝ&©cL¥¦ÀDµ¹ÀTj +LT{L¥¦ÀDµ¹À4ê.0IƒX`*t˜hÖ˜ÊL‰hr©Ô˜¨ö ˜FÝ&©cL¥¦ÀDµ¹ÀTj +LT{L¥¦ÀDµ¹Àê¥Àur©Ô˜¨ö ˜JM‰jr©Ô˜¨ö ˜FÝ&©cL¥¦ÀDµ¹À¤.Иø"«À¼z‘Ãóø=~°ÀüžÞ<p¹ž‘¸ûïT`^^ì·˜ðÁvyõÁŽÌ÷/&¨sL¥¦ÀDµ¹ÀTj +LT{L¥¦ÀDµ¹À4ê.0Iƒ\`*5&ª=ȦRS`¢Úƒ\`*5&ª=ȦQwIêäS©)0QíA.0•šÕäS©)0QíA,0
š“ÌžÃS‘«ÀD²æ¸ÀTf +LD{L¥¦ÀDµ¹À4ê.0Iƒ\`*5&ª=ȦRS`¢Úƒ\`*5&ª=ȦQwIêäS©)0QíA.0•šÕäS©)0QíA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜ +]&š5‡¦!S`Ùs\`*3&¢=ȦRS`¢Úƒ\`*5&ª=ȦQwIêäS©)0QíA.0•šÕäS©)0QíA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜JM‰jr)ÔK êäS©)0QíA.0•šÕÄS¡«ÀD³æ¸À4æ.0 ƒ\`*5&ª=ȦRS`¢Úƒ\`*5&ª=ȦQwIêäS©)0QíA.0•šÕäS©)0QíA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜JM‰jriÔ]`’:¹ÀTj +LT{L…®ÍšãS™)0íA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜JM‰jriÔ]`’:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`*5&ª=ȦRS`¢Úƒ\`u˜¤ŽA,0º +L4kŽLe¦ÀD´¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`*5&ª=ȦRS`¢Úƒ\` +õR`‚:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`Rh +L|‘U`^½Èayü?øGsŸzûÇ,0×3?ø˜˜·7¯·Ÿ˜w§_³_þpõ^óåï¿7GæÃÍ#ªó#ןéæýK<ݼýå÷ïðøýÑOÄš; WªÌT¦ˆö W¦B½T¦ ÎA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ±25h*S2{+SE®ÊÉšãÊT™©LíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢ÚƒX™*tU¦hÖV¦†LeJdÏqeªÌT¦ˆö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©P/•)¨s+S¥¦2Eµ¹2Uj*ST{+S…®ÊÍšãÊÔ˜»2%treªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©QweJêäÊT©©LQíA¬Lº*S4kŽ+Se¦2E´¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©QweJêäÊT©©LQíA®L•šÊÕäÊT©©LQíA®Lº+SRÇ W¦JMeŠjreªÔT¦¨ö W¦JMeŠjrejÔ]™’:±2UèªLѬ9®L•™ÊÑäÊT©©LQíA®Lº+SRÇ W¦JMeŠjreªÔT¦¨ö W¦JMeŠjre*ÔKe +êäÊT©©LQíA®L•šÊÕäÊT©©LQíA®Lº+SRÇ W¦JMeŠjrez?ºÊ_dU¦W/rX™¿Ç}ÏçýëëéŸÛ12]èoùü§¯?û¿ûûŸþôõ}gzúÌãýv¦oíùä]Þl¾ýíéל—ƒ¿Ò»^ƒ–g®>Øa»öþ-ŽÓ5$kÃ5E®n
ÉšÃj͉ֈì9LÖ¹Š5$k{5E®\
ÉšÃXM‘«UC²æ¨T3â +Õ¬1ÊÔ”w®ÔлÃFM+QC±æ0PSäêÓ¬9¬Ó™8ÈžÃ4M‘«LC²æ°KSäÊÒ¬9ŒÒ¹š4$k‹4C&H#²ç0GSäªÑ¬9lѹR4$kC4E®
ɚà +͉Јì9Lй +4$kû3E®üÉš£øL‰çöÁë1*ÏŒ·Â3òj³3®êÅšÃæL‘+9C²æ08Säêͬ9¬Í™ØŒÈžÃÔL‘«4C²æ°3SäÊ̬9ŒÌ¹3$k3C&0#²ç0/SäªË¬9l˹Ò2$kÃ2E®®ÉšÃªL;*rÌaR¦ÈU”!YsØ“)rådHÖÅdJ<·d^aIfÀ„d$öfdŠ\’5‡
™"WB†dÍa@¦ÈÕ!YsX2ñ‘=‡é˜"W9†dÍa7¦È•!Ys)r5cHÖc†L0FdÏa.¦ÈU‹!YsØŠ)r¥bHÖ†bŠ\’5‡•˜!‰Ùs˜ˆ)rbHÖõaJ<ça^a¦ÀÕ†¡XsX†2a‘=‡Y˜"W†dÍa¦È•„!Ys„)rõ`HÖÖ`†LFdÏa +¦ÈU‚!YsØ)re`HÖF`Š\
’5‡˜!€Ùs˜)rÕ_HÖ¶_Š\é’5‡á—"W÷…dÍaõeÈD_Dö%_J<_^aï¥À•{¡Xs{)rµ^HÖ–^†LèEdÏaæ¥ÈUy!YsØx)r%^HÖ^Š\}’5‡u— wÜä˜Ã´K‘«ìB²æ°ëRäʺ¬9Œº¹š.$k‹.C&è"²ç0çR䪹¬9l¹Ž#•rá[œŸ¹z‹£ëø%¾ÿÚ×·ÿŽHßxú-ÐÃÛW¿Ý¿<ß¼žþ–ýaȵÊ3\r=¬:ëÿ<ݾ¾¸îonïÖ÷çùå—w_—÷p{zÛ‡?\½Ðû~ëî(ߺ¸»¹ûþ€ðyòÐõçyÿµ}7Ï÷½ÇêùÙOÔ<PŸoîÞ~-QêùÙOÔ<P_nžoz~öµ?Vïnn_Ÿºžeu¨7Oo¿¨(õüì'j¨Ï7·_¬z~öµÔ—›§·_©”z~öµ?VŸN?†§W§®gYƒêéÇðhÕ󳟨=x ž~ò‰ó£Ÿ˜5w@ž~wÒ<?û Úƒ«Ï§ŸÁ½T׳¬ŽÁõô3¸»—êùÙOÔ<PO?…[«žŸýDíÁõåæñõAªçg?Q{ðcõËéo·/òÁëYVÇàúpóøÅªçg?Q{ð@}:=/ÿ6·žýDíÁõôcx’›[Ï~¢öàÇêËéÇð(Õõ,«cð@=ýäßæÖ³Ÿ¨=x ž~÷òosëÙOÔ<PO?†;«žŸýDíÁƒo“>Ó¶R׳¬ŽÁõ훵ùýkºY¼£¯évàùkºY¬9üšng®¯éf´ñkºº¿¦›Ô9ˆ_ÓíÔõ5ݬö ~M·S××t³Úƒø5ÝN]_ÓÍjâ×t+5_ÓêįévjPíA>uRjnPíA¾vRjÎPíA>x2ê¾x"uòÍ“Rsô„jòÙ“Rs÷„jòå“Rsú„jâñ“AsýDfÏáý“"×’5Ç'PÊÌ
¢=ÈWPJͪ=ȇPFÝ—P¤ŽA¾…RjŽ¡PíA>‡Rjî¡PíA¾ˆRjN¢PíA>Š2꾊"uò]”Rs…jòi”Rs…jòu”Rs…jò”Q÷…©co¤”š#)T{Ϥ”š;)T{/¥ºN¥Ð¬9<–2d®¥ˆì9¾—Rf¦íA>™Rjn¦PíA¾šRjΦPíA>œ2꾜"uòí”Rs<…jòù”Rs?…jò•RsB…jò•Q÷©c﨔šC*T{O©”š[*T{¯©”šs*T{ª„z¹¨uòM•RsT…jòY•RsW…jâe•B×iš5ÇÇUÆÜ×U„ŽA¾¯Rj¬PíA>±Rjn¬PíA¾²RjάPíA>´2ê¾´"uò•Rsl…jò¹•Rso…jòÅ•Rsr…jòÑ•Q÷Õ©cï®”šÃ+T{O¯”šÛ+T{¯¯”šó+T{°Œº/°Hƒ|ƒ¥Ôa¡Úƒx†¥Ðu‡…fÍñ%–2sŠ…hò1–Q÷5©cï±”šƒ,T{O²”š›,T{¯²”š³,T{³Œº/³Hƒ|›¥Ôg¡Úƒ|ž¥ÔÜg¡Úƒ|¡¥Ôœh¡Úƒ|¤eÔ}¥Eêä;-¥æPÕäS-¥æVÕäk-¥æ\Õäƒ-£î‹-RÇ Þl)tm¡Ys|¶¥ÌÜm!Úƒ|¹¥Ôœn¡Úƒ|¼eÔ}½Eêäû-¥æ€Õä.¥æ†Õä+.¥æŒÕäC.¡^.¹@ƒ|Ë¥Ôs¡Úƒ|Î¥ÔÜs¡Úƒ|Ñ¥Ôœt¡Úƒ|ÔeÔ}ÕEêä».¥æ°ÕäÓ®ãã#wÛ…/²Ž»®^äËÑu×ñ{üà×ty8ùŸ|O÷zæršõ?ïŸnÿÇ?üüÓ¯?ýú·¿|}ªõtþæî«ñ÷§Zo'·Zû8^n'\½ÜñqÂûãRÇ '(5Ç ¨ö '(5Ç ¨ö '(5Ç ¨ö 'u':ù8A©9N@µù8A©9N@µù8A©9N@µù8Á¨û8Ô1ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ FÝÇ ¤ŽA:NPæù8Åë1<NPà:N@±æø8A™9N@´ù8A¨—ãPç '(5Ç ¨ö '(5Ç ¨ö '(5Ç ¨ö 'u':ù8A©9N@µù8A©9N@µù8A©9N@µù8Á¨û8Ô1ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ JÍqª=ˆÇ Íq™=‡Ç Š\Ç HÖ'(3Ç ˆö '(5Ç ¨ö 'u':ù8A©9N@µù8A©9N@µù8A©9N@µù8Á¨û8Ô1ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ FÝÇ ¤ŽA>NPjŽPíA>NPjŽPíA<NPè:N@³æð8Á9N ²çø8A™9N@´ù8A©9N@µù8A©9N@µù8Á¨û8Ô1ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ FÝÇ ¤ŽA>NPjŽPíA>NPjŽPíA>NPjŽPíA>Nêå8Ô9ÈÇ JÍqª=ÈÇ JÍqª=ˆÇ +]Ç hÖ's':ù8A©9N@µù8A©9N@µù8A©9N@µù8Á¨û8Ô1ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ JÍqª=ÈÇ FÝÇ ¤ŽA>NPjŽPíA>NPjŽPíA>NPjŽPíA>N0ê>N uòq‚Rsœ€jâq‚B×qš5ÇÇ ÊÌq¢=ÈÇ FÝÇ ¤ŽA>NPjŽPíA>NPjŽPíA>NPjŽPíA>N0ê>N uòq‚Rsœ€jòq‚Rsœ€jòq‚Rsœ€jòq‚Q÷q©c”šãT{”šãT{”šãT{ŒºHƒxœ Ðuœ€fÍñq‚2sœ€hòq‚Rsœ€jòq‚Q÷q©c”šãT{”šãT{”šãT{„z9N +]
/š5Ç
¯2Óð"ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAnx…zixAƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnxÛR×ð⋬†÷êE^ŽÞã÷øÁ/|ùþ;°á]ϸ†÷/_ÿÿ?ÿüíׯÿ½†÷òZ¿©á…OµÞ«OuÜð¾hxQíAnxº^RÇ 5¼Ê<7¼(^aëÀÕð¢XsÜð*3
/¢=È
¯P/
/¨s^¥¦áEµ¹áUj^T{^¥¦áEµ¹á5ênxIƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAlx
š†—̞ÆW‘«áE²æ¸áUf^D{^¥¦áEµ¹á5ênxIƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 6¼ +]
/š5‡
¯!ÓðÙsÜð*3
/¢=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃ+ÔKÃêä†W©ixQíAnx•š†ÕĆW¡«áE³æ¸á5ænx ƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÝð’:¹áUj^T{^…®†Íšã†W™ixíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÝð’:¹áUj^T{^¥¦áEµ¹áUj^T{^£î†—Ô1È
¯RÓð¢ÚƒÜð*5
/ª=È
¯RÓð¢ÚƒÜðu7¼¤ŽAlxº^4kŽ^e¦áE´¹áUj^T{^£î†—Ô1È
¯RÓð¢ÚƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð +õÒð‚:¹áUj^T{^¥¦áEµ¹áUj^T{^£î†—Ô1È
¯RÓð¢ÚƒÜð·¥®áÅY
ïÕ‹6¼ÇïñƒßÃ{ú'è»»{nx×3®áýÓן‡†÷òZ¿©á…OµÞ«OuÜð¾hxQíAnxº^RÇ 5¼Ê<7¼(^aëÀÕð¢XsÜð*3
/¢=È
¯P/
/¨s^¥¦áEµ¹áUj^T{^¥¦áEµ¹á5ênxIƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAlx
š†—̞ÆW‘«áE²æ¸áUf^D{^¥¦áEµ¹á5ênxIƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 6¼ +]
/š5‡
¯!ÓðÙsÜð*3
/¢=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃ+ÔKÃêä†W©ixQíAnx•š†ÕĆW¡«áE³æ¸á5ænx ƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð*5
/ª=È
¯QwÃKêä†W©ixQíAnx•š†Õä†W©ixQíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÝð’:¹áUj^T{^…®†Íšã†W™ixíAnxº^RÇ 7¼JMËjrëÔ4¼¨ö 7¼JMËjrÃkÔÝð’:¹áUj^T{^¥¦áEµ¹áUj^T{^£î†—Ô1È
¯RÓð¢ÚƒÜð*5
/ª=È
¯RÓð¢ÚƒÜðu7¼¤ŽAlxº^4kŽ^e¦áE´¹áUj^T{^£î†—Ô1È
¯RÓð¢ÚƒÜð*5
/ª=È
¯RÓð¢ÚƒÜð +õÒð‚:¹áUj^T{^¥¦áEµ¹áUj^T{^£î†—Ô1È
¯RÓð¢ÚƒÜð·¥®áÅY
ïÕ‹6¼ÇïñƒßÃ{ú5òŽÞõŒkxùöïÿù¾ß½¼¹½ã|÷ùñœã\Þèý_â/‡ýîóóÍíí'Ÿ(]¢÷ÁçóËÍãëÃG/òz~öµ?VO¿³|}ytêz–Õ1x >Ü<~±êùÙOÔ<PŸNÏ?Iõüì'j¨§ÃÓ³TÏÏ~¢öàA
~ú1<Ju=Ëê<PO?†·NQêùÙOÔ<PW¯Ôôö¨ö ÷öJMojrooÔÝÛ“:©·Wæ¹·Gñz{{®ÞÅšãÞ^™éííAîí…zéíAƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½QwoOêäÞ^©éíQíAî핚ÞÕäÞ^©éíQíAîíº{{RÇ ÷öJMojro¯Ôôö¨ö ÷öJMojbooÐôödöööŠ\½=’5ǽ½2ÓÛ#ÚƒÜÛ+5½=ª=Ƚ½QwoOêäÞ^©éíQíAî핚ÞÕäÞ^©éíQíAîíº{{RÇ ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÝÛ“:¹·Wjz{T{{{¥¦·Gµ±·WèêíѬ9ìí
™ÞžÈžãÞ^™éííAî핚ÞÕäÞ^©éíQíAîíº{{RÇ ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÝÛ“:¹·Wjz{T{{{¥¦·Gµ¹·Wjz{T{{{¡^z{Pç ÷öJMojro¯Ôôö¨ö öö +]½=š5ǽ½1woOèäÞ^©éíQíAî핚ÞÕäÞ^©éíQíAîíº{{RÇ ÷öJMojro¯Ôôö¨ö ÷öJMojrooÔÝÛ“:¹·Wjz{T{{{¥¦·Gµ¹·Wjz{T{{{£îÞžÔ1Ƚ½RÓÛ£ÚƒØÛ+tõöhÖ÷öÊLohrooÔÝÛ“:¹·Wjz{T{{{¥¦·Gµ¹·Wjz{T{{{£îÞžÔ1Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛu÷ö¤ŽAî핚ÞÕäÞ^©éíQíAî핚ÞÕäÞÞ¨»·'ubo¯ÐÕÛ£YsÜÛ+3½=¢=Ƚ½RÓÛ£ÚƒÜÛu÷ö¤ŽAî핚ÞÕäÞ^©éíQíAî핚ÞÕäÞ^¨—ÞÔ9Ƚ½RÓÛ£ÚƒÜÛ+5½=ª=Ƚ½RÓÛ£ÚƒÜÛu÷ö¤ŽAî핚ÞÕäÞžbpÓÛ㋬ÞþêE{ûã÷øÁÞþöõô7yÎíÏÈÚþë¯ÿð×ýó·ûß_ÿö¾º?ýžíö‘¿5ûáô?½‡·s½_ìý_è·O÷ñ_èK¨wü¹v§wù\Ǚ޻·€JÈžãFÏIôˆ¬9ô™>Èšã:ωóˆ¬9Nó¹Ë< {Ž»<C&Ë#²æ8Ê3dš<"kŽ‹<C&È#²æ0Çbj< +ωðˆ¬9Nð¹< {Žû;C&¿#²æ8¾3dÚ;"kŽË;C&¼#²æ8»ä®î€ì9nî™äŽÈšãàÎé투9®í™ØŽÈšãÔN»´²ç¸³3d2;"kŽ#;C¦±#²æ°°3â +ì¼Ã¼Nx©ëÀ«1n똴ŽÄšã°Îéꈬ9®ê™¨ŽÈšã¤N»¨²ç¸§3dr:"kŽc:C¦¥#²æ¸¤3dB:"kŽ3:AîŠÈžã†ÎI般9è™~ŽÈšãzΉ爬9Nç>'/åÜ19減3d²9"kŽ£9C¦™#²æ°˜3â +æ¼ã\N€»–±ç¸•3dR9"kŽC9C¦“#²æ¸’3d"9"kŽ9AîBÈžã>ÎÉ㈬9Žã™6ŽÈšã2Π㈬9Î⹫8 {Ž›8C&‰#²æ8ˆ3dz8"kŽk8C&†#²æ8…ä.á€ì9îà™ŽÈšÃΈ«#ðzŒ8&€#±æ8ä®ß€ì9nß™ôÈšãðÍéÞˆ¬9®Þ™èÈšãäM»x²ç¸w3dr7"kŽc7C¦u#²æ¸t3dB7"kŽ37AîÊ
ÈžãÆÍI܈¬9Ü™¾ÈšãºÍ‰Ûˆ¬9NÛ¹Ë6 {»6#®¬Àë1ŽÚ˜¦Äšã¢Í Úˆ¬9ÎÙ¹k6 {Ž[6C&e#²æ8d3d:6"kŽ+6C&b#²æ8aûœ¼lÇä˜ã~ÍÉ׈¬9Ž×™vÈšãrÍ ×ˆ¬9ÎÖ¹«5 {Ž›5C&Y#²æ8XƒŒÊôjô+W»¼Åavø#V»çXíîõùôÛ¯¬ÕòŒËÕþýë¯ÿôõç_¾ýôÁWÄ>†^8V»?aO/¸z±÷™_NúÁwÄæëéƒå¡ëvøu¼Èñ×’:ñ뺾.Õįtêúº@V{¿.Щ«Bdµ±CTjBDTÇ ¦ˆN]-"«=ˆ5¢SWŽÈjbèÔU$²ÚƒØ$*5Q"ªc³D§®.‘ÕÄ2Ñ©+Mdµ1NtêªYíAêºE4{ŽEGžE&k+Eg®L‘ÑÄPÑ©«Tdµ±UTjbETÇ æŠN]½"«=ˆÅ¢SW²Èjb´èÔU-²ÚƒØ-*5á"ªcÓE§®v‘ÕÄzÑ©+_dµ1`tê*YíAl•šˆÕ1ˆ£SWÇÈjbÉèÔ•2²Úƒ3:ô\3²YsÔ3*rHö&Î\M#£=ˆU£SWÖÈjbØèÔU6²ÚƒØ6*5q#ªcóF§®¾‘ÕÄÂÑ©+qdµ1rtêªYíA앚ÐÕ1ˆ©£SWëÈjbíèÔ•;²Úƒ<:u¬ö 6FÝÑ#©s³G§®î‘ÕÄòÑ©+}dµ)~tè¹~d³æ°TfHDÇ &N]
$«=ˆ¤SWÉjbéÔUB²ÚƒØB*51$ªcsH§®’ÕÄ"Ò©+‰dµ1Štêª"YíAì"•š0Õ1ˆi¤SWÉjbéÔ•G²ÚƒH:u’¬ö 6’JM$‰êÄLÒ©«“dµ©”tè9•d³æ0–tæª%íAì%•š`Õ1ˆÉ¤SW3Éjb5éÔ•M²ÚƒN:u•“¬ö ¶“JM<‰êÄ|Ò©«Ÿdµ± têJ(YíAŒ(º*JV{;J¥&¤DubJéÔÕR²ÚƒXS:u唬ö •N]E%«=ˆM¥RU¢:)«t蹫d³æ°¬tæJ+íAŒ+ºêJV{ûJ¥&°DubbéÔÕX²ÚƒXY:ue–¬ö †–N]¥%«=ˆ¥QwlIêÄÜÒ©«·dµ±¸têJ.YíAŒ.ºªKV{»K¥&¼DubzéÔÕ^²ÚƒX_b(òK~‘óC×/r`Â{üØ×Þ½<|ÿv>,0×3ú—óòb¿À„¶Ì«v\`¾(0Aƒ\`*5&ª=ȦRS`¢Úƒ\`*5&ª=ȦQwIêäS©)0QíA.0•šÕäS©)0QíA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜JM‰jbiИdö˜Š\&’5Ǧ2S`"Úƒ\`*5&ª=ȦQwIêäS©)0QíA.0•šÕäS©)0QíA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜JM‰jriÔ]`’:¹ÀTj +LT{L¥¦ÀDµ±ÀTè*0Ѭ9,0
™“ÈžãS™)0íA.0•šÕäS©)0QíA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜JM‰jriÔ]`’:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L¡^ +LPç ˜JM‰jr©Ô˜¨ö ˜ +]&š5Ǧ1wIèäS©)0QíA.0•šÕäS©)0QíA.0ºLRÇ ˜JM‰jr©Ô˜¨ö ˜JM‰jriÔ]`’:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢ÚƒX`*t˜hÖ˜ÊL‰hriÔ]`’:¹ÀTj +LT{L¥¦ÀDµ¹ÀTj +LT{L£î“Ô1ȦRS`¢Úƒ\`*5&ª=ȦRS`¢Úƒ\`u˜¤ŽA.0•šÕäS©)0QíA.0•šÕäÓ¨»À$ub©ÐU`¢Ys\`*3&¢=ȦRS`¢Úƒ\`u˜¤ŽA.0•šÕäS©)0QíA.0•šÕäS¨—Ô9ȦRS`¢Úƒ\`*5&ª=ȦRS`¢Úƒ\`u˜¤ŽA.0•šÕ䓺@S`⋬óêEÌã÷øÁïÀ<ý†æáô›7,0×3ú;0ÿñëÏßþåϘ·7¯·Ÿ˜w§_³_þpõ^óåï¿7GæÃÍ#ªó#ןéæýK<ݼýå÷ïðøýÑOÄš; WªÌT¦ˆö W¦B½T¦ ÎA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ±25h*S2{+SE®ÊÉšãÊT™©LíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢ÚƒX™*tU¦hÖV¦†LeJdÏqeªÌT¦ˆö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©P/•)¨s+S¥¦2Eµ¹2Uj*ST{+S…®ÊÍšãÊÔ˜»2%treªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©QweJêäÊT©©LQíA¬Lº*S4kŽ+Se¦2E´¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©QweJêäÊT©©LQíA®L•šÊÕäÊT©©LQíA®Lº+SRÇ W¦JMeŠjreªÔT¦¨ö W¦JMeŠjrejÔ]™’:±2UèªLѬ9®L•™ÊÑäÊT©©LQíA®Lº+SRÇ W¦JMeŠjreªÔT¦¨ö W¦JMeŠjre*ÔKe +êäÊT©©LQíA®L•šÊÕäÊT©©LQíA®Lº+SRÇ W¦JMeŠjrez?ºÊ_dU¦W/rX™¿Ç~Ïçé·Ç·\™®gô÷|þ•éå½~Ke +ŸjU¦WŸé°2}ÿÇ•)Š5Ç•©2S™"Úƒ\™ +õR™‚:¹2Uj*ST{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕÄÊÔ ©LÉì9¬L¹*S$kŽ+Se¦2E´¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjbeªÐU™¢YsX™2•)‘=Ç•©2S™"Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦B½T¦ ÎA®L•šÊÕäÊT©©LQíA¬Lº*S4kŽ+ScîÊ”Ð1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ±2UèªLѬ9®L•™ÊÑäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©QweJêÄÊT¡«2E³æ¸2Uf*SD{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•©RS™¢Úƒ\™*5•)ª=È•©P/•)¨s+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒ\™*5•)ª=È•éqüè*S|‘U™^½ÈëQezü?ø]¦7燎+ÓõŒþ.ÓÿõË/ýúó¯2½¼×o©LáSÊôê3V¦ïßá¸2E±æ¸2Uf*SD{+S¡^*SPç W¦JMeŠjreªÔT¦¨ö W¦JMeŠjrejÔ]™’:¹2Uj*ST{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢ÚƒX™4•)™=‡•©"WeŠdÍqeªÌT¦ˆö W¦JMeŠjrejÔ]™’:¹2Uj*ST{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA¬Lº*S4k+SC¦2%²ç¸2Uf*SD{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊT¨—ÊÔ9È•©RS™¢Úƒ\™*5•)ª=ˆ•©BWeŠfÍqejÌ]™:¹2Uj*ST{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö V¦ +]•)š5Ç•©2S™"Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒX™*tU¦hÖW¦ÊLeŠhreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹2ê¥2ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2=Ž]eŠ/²*Ó«9¬Lßã¿ËôáîæéöŽ+ÓõŒþ.Óߣ2½¼×o©LáSÊôê3V¦ïßá¸2E±æ¸2Uf*SD{+S¡^*SPç W¦JMeŠjreªÔT¦¨ö W¦JMeŠjrejÔ]™’:¹2Uj*ST{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢ÚƒX™4•)™=‡•©"WeŠdÍqeªÌT¦ˆö W¦JMeŠjrejÔ]™’:¹2Uj*ST{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA¬Lº*S4k+SC¦2%²ç¸2Uf*SD{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊT¨—ÊÔ9È•©RS™¢Úƒ\™*5•)ª=ˆ•©BWeŠfÍqejÌ]™:¹2Uj*ST{+S¥¦2Eµ¹2Uj*ST{+S£îÊ”Ô1È•©RS™¢Úƒ\™*5•)ª=È•©RS™¢Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö V¦ +]•)š5Ç•©2S™"Úƒ\™uW¦¤ŽA®L•šÊÕäÊT©©LQíA®L•šÊÕäÊÔ¨»2%ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹25ê®LIƒX™*tU¦hÖW¦ÊLeŠhreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2Uj*ST{+S¥¦2Eµ¹2ê¥2ureªÔT¦¨ö W¦JMeŠjreªÔT¦¨ö W¦FÝ•)©c+S¥¦2Eµ¹2=Ž]eŠ/²*Ó«9¬Lßã+Ó»—›ÓïÝ02=?¢¿Éôÿú¯ÿïë¿ýúAdú|Úû,2}¾yzûo³ûµÞÿe~9áGiòËãOµëË˧:Ž/ß½´—Çä˜ãòÒ /‰¬9Î.
™ê’ÈšãæÒI.‰¬9.¹{K {ŽkKC&¶$²æ8µ4dJK"kŽ;KC&³$²æ8²än,ì9.,
™À’Èšã¼Ò©+‰¬9n+
™´’ȚðRˆé*¬1¬*·¢Jò®Ç8©4`ŠJkŽ{JC&§$²æ8¦än)ì9.)
™’ÈšãŒÒ©(‰¬9n(
™„’Èšã€R»Ÿ²ç¸ž4dâI"kŽÓIC¦œ$²æ¸›4d²I"kŽ£IAîfÈžãbÒ &‰¬9Î%
™Z’ÈšÃVÒˆ+•$ðzCIᥓ¯Æ¸’4`"IkŽIC¦$²æ¸4dòH"kŽãHAî6Èžã2Ò #‰¬9Î"
™*’Èšã&ÒI"‰¬9"¹{H {ŽkHC&†$²æ8…4dJH"kŽ;HC&ƒ$²æ8‚üœ¼4Çä˜ãÒ ‰¬9Î
™ú‘ÈšÃöш+}$ðzŒÃGîîÄžãêщ‰¬9N
™â‘ÈšãÞÑɉ¬9޹[G {ŽKGC&t$²æ8s4d*G"kŽGC&q$²æ8päîì9®
™¸‘Èšã´Ñ)‰¬9î
™¬‘Èšã¨Q»i²ç¸h4d‚F"ksF#®š‘Àë1n
˜”‘ÄšãQ»c²ç¸b4d"F"kŽFC¦`$²æ¸_4dòE"kŽãEAîvÈžãrÑ ‰¬9Î
™j‘ÈšãfÑI‰¬9¹{E {ŽkEC&V$²æ8U4dJE"kŽ;EC&S$²æ8Ränì9,¸E¯Ç8O4`êDkŽÛDC&M$²æ8Läîì9®
™(‘Èšã$Ñ)‰¬9î
™‘ÈšãñsòÒ"“cŽKDC&D$²æ8C4d*D"kŽDC&A$²æ8@äîì9®
™øÈšãô’8SÒ[¬ððò‡ÝááKüà¡~ûöi^¸;\Ïè/·ü]ÂÃË‹ý¶ò>ØN¯>Øq{øþE >ur~¨Ôô‡¨ö ˆJM‚ˆjr„¨ÔTˆ¨ö wˆFÝ!"©cSD¥¦EDµ¹FTjrDT{ƒD¥¦HDµ¹I4êŽIƒœ%*5]"ª=Èe¢R“&¢Úƒ'*5u"ª=ˆ}¢A(’Ùs˜(*r5ŠHÖWŠÊL¦ˆhr¨¨Ô”Ѝö ·ŠFݱ"©csE¥¦WDµ¹XTj’ET{£E¥¦ZDµ¹[4êIƒœ.*5í"ª=Èõ¢R“/¢Úƒ0*5#ª=È
£QwÄHêäŒQ©éQíA.•š”ÕĘQ¡«fD³æ°g4d‚F"{Ž“Fe¦iD´¹jTj²FT{ÃF¥¦lDµ¹m4êŽIƒœ7*5}#ª=È…£R“8¢Úƒ9*5•#ª=È£QwèHêäÔQ©iQíA®•šÜÕäàQ©)QíAn…z‰Aƒœ=*5Ý#ª=Èå£R“>¢Úƒ?*tÕhÖ÷ÆÜ$¡cH¥¦Dµ¹‚Tj2HT{CH¥¦„Dµ¹…4êŽ!IƒœC*5=$ª=ÈE¤R“D¢ÚƒE*5U$ª=È]¤QwIêä4R©i#QíA®#•š<Õä@R©)$QíAn$º#IRÇ g’JM'‰jb)©Ð•J¢YsK*3µ$¢=Ƚ¤Qw0IêädR©i&QíA®&•šlÕäpR©)'QíAn'ºãIRÇ ç“JM?‰jrA©Ô$”¨ö G”JME‰jrGiÔR’:9¥TjZJT{kJ¥&§Dµ9¨TjŠJT{›J£î¨’Ô1ˆY¥BWW‰fÍqY©Ì¤•ˆö Ç•JM]‰jr_iÔX’:9±TjKT{+K¥&³Dµ9´TjJKT{[K¡^bKPç ç–JMo‰jrq©Ô$—¨ö G—JMu‰jrwiÔ^’:9½TjÚKT{ëKêM~‰/²úË«90ßãô;¯7OoÿÒôéùô;ß¿øñËÝÍ—‡ï¿zß¼Ü}Ù¯sú¿òÕë<ÜÜÞÝÿa=òö6ß¾};xŸËN¨ÿD—+endstream +endobj +1186 0 obj << +/Type /Page +/Contents 1187 0 R +/Resources 1185 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1178 0 R +/Annots [ 1189 0 R 1192 0 R 1193 0 R 1194 0 R 1195 0 R 1196 0 R 1197 0 R 1198 0 R 1199 0 R 1200 0 R 1201 0 R 1204 0 R 1205 0 R 1206 0 R 1207 0 R 1208 0 R 1209 0 R 1210 0 R 1211 0 R 1212 0 R 1213 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R ] +>> endobj +1189 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 729.538 207.063 736.522] +/Subtype /Link +/A << /S /GoTo /D (6) >> +>> endobj +1192 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 729.538 521.32 736.522] +/Subtype /Link +/A << /S /GoTo /D (6) >> +>> endobj +1193 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.462 714.216 192.717 721.07] +/Subtype /Link +/A << /S /GoTo /D (8) >> +>> endobj +1194 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 714.216 521.32 721.07] +/Subtype /Link +/A << /S /GoTo /D (8) >> +>> endobj +1195 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.462 701.264 216.248 708.119] +/Subtype /Link +/A << /S /GoTo /D (18) >> +>> endobj +1196 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 701.264 521.32 708.119] +/Subtype /Link +/A << /S /GoTo /D (18) >> +>> endobj +1197 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 686.256 247.91 695.167] +/Subtype /Link +/A << /S /GoTo /D (20) >> +>> endobj +1198 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 686.256 521.32 695.167] +/Subtype /Link +/A << /S /GoTo /D (20) >> +>> endobj +1199 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 673.304 255.65 682.216] +/Subtype /Link +/A << /S /GoTo /D (78) >> +>> endobj +1200 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 673.304 521.32 682.216] +/Subtype /Link +/A << /S /GoTo /D (78) >> +>> endobj +1201 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 661.102 284.841 669.264] +/Subtype /Link +/A << /S /GoTo /D (80) >> +>> endobj +1204 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 661.102 521.32 669.264] +/Subtype /Link +/A << /S /GoTo /D (80) >> +>> endobj +1205 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 649.37 284.841 656.313] +/Subtype /Link +/A << /S /GoTo /D (111) >> +>> endobj +1206 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 649.37 521.32 656.313] +/Subtype /Link +/A << /S /GoTo /D (111) >> +>> endobj +1207 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 636.419 268.702 643.361] +/Subtype /Link +/A << /S /GoTo /D (138) >> +>> endobj +1208 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 636.419 521.32 643.361] +/Subtype /Link +/A << /S /GoTo /D (138) >> +>> endobj +1209 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 623.467 263.322 630.41] +/Subtype /Link +/A << /S /GoTo /D (152) >> +>> endobj +1210 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 623.467 521.32 630.41] +/Subtype /Link +/A << /S /GoTo /D (152) >> +>> endobj +1211 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 610.516 322.5 617.459] +/Subtype /Link +/A << /S /GoTo /D (168) >> +>> endobj +1212 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 610.516 521.32 617.459] +/Subtype /Link +/A << /S /GoTo /D (168) >> +>> endobj +1213 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 597.564 327.88 604.507] +/Subtype /Link +/A << /S /GoTo /D (179) >> +>> endobj +1214 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 597.564 521.32 604.507] +/Subtype /Link +/A << /S /GoTo /D (179) >> +>> endobj +1215 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 583.393 290.221 591.556] +/Subtype /Link +/A << /S /GoTo /D (190) >> +>> endobj +1216 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 583.393 521.32 591.556] +/Subtype /Link +/A << /S /GoTo /D (190) >> +>> endobj +1217 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 571.661 300.981 578.604] +/Subtype /Link +/A << /S /GoTo /D (199) >> +>> endobj +1218 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 571.661 521.32 578.604] +/Subtype /Link +/A << /S /GoTo /D (199) >> +>> endobj +1219 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 557.491 295.601 565.653] +/Subtype /Link +/A << /S /GoTo /D (208) >> +>> endobj +1220 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 557.491 521.32 565.653] +/Subtype /Link +/A << /S /GoTo /D (208) >> +>> endobj +1221 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.462 545.847 206.833 552.701] +/Subtype /Link +/A << /S /GoTo /D (225) >> +>> endobj +1222 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 545.847 521.32 552.701] +/Subtype /Link +/A << /S /GoTo /D (225) >> +>> endobj +1223 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 532.807 225.574 539.75] +/Subtype /Link +/A << /S /GoTo /D (227) >> +>> endobj +1224 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 532.807 521.32 539.75] +/Subtype /Link +/A << /S /GoTo /D (227) >> +>> endobj +1225 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 517.887 257.982 526.799] +/Subtype /Link +/A << /S /GoTo /D (231) >> +>> endobj +1226 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 517.887 521.32 526.799] +/Subtype /Link +/A << /S /GoTo /D (231) >> +>> endobj +1227 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 506.044 285.788 513.847] +/Subtype /Link +/A << /S /GoTo /D (295) >> +>> endobj +1228 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 506.044 521.32 513.847] +/Subtype /Link +/A << /S /GoTo /D (295) >> +>> endobj +1229 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 493.953 269.648 500.896] +/Subtype /Link +/A << /S /GoTo /D (327) >> +>> endobj +1230 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 493.953 521.32 500.896] +/Subtype /Link +/A << /S /GoTo /D (327) >> +>> endobj +1231 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 479.782 275.028 487.944] +/Subtype /Link +/A << /S /GoTo /D (334) >> +>> endobj +1232 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 479.782 521.32 487.944] +/Subtype /Link +/A << /S /GoTo /D (334) >> +>> endobj +1233 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 468.05 280.408 474.993] +/Subtype /Link +/A << /S /GoTo /D (348) >> +>> endobj +1234 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 468.05 521.32 474.993] +/Subtype /Link +/A << /S /GoTo /D (348) >> +>> endobj +1235 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 455.099 269.648 462.041] +/Subtype /Link +/A << /S /GoTo /D (360) >> +>> endobj +1236 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 455.099 521.32 462.041] +/Subtype /Link +/A << /S /GoTo /D (360) >> +>> endobj +1237 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 442.147 264.269 449.09] +/Subtype /Link +/A << /S /GoTo /D (368) >> +>> endobj +1238 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 442.147 521.32 449.09] +/Subtype /Link +/A << /S /GoTo /D (368) >> +>> endobj +1239 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 427.976 323.447 436.139] +/Subtype /Link +/A << /S /GoTo /D (376) >> +>> endobj +1240 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 427.976 521.32 436.139] +/Subtype /Link +/A << /S /GoTo /D (376) >> +>> endobj +1241 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 416.244 318.067 423.187] +/Subtype /Link +/A << /S /GoTo /D (382) >> +>> endobj +1242 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 416.244 521.32 423.187] +/Subtype /Link +/A << /S /GoTo /D (382) >> +>> endobj +1243 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 402.073 275.028 410.236] +/Subtype /Link +/A << /S /GoTo /D (389) >> +>> endobj +1244 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 402.073 521.32 410.236] +/Subtype /Link +/A << /S /GoTo /D (389) >> +>> endobj +1245 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 389.122 285.788 397.284] +/Subtype /Link +/A << /S /GoTo /D (396) >> +>> endobj +1246 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 389.122 521.32 397.284] +/Subtype /Link +/A << /S /GoTo /D (396) >> +>> endobj +1247 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 377.39 269.648 384.333] +/Subtype /Link +/A << /S /GoTo /D (402) >> +>> endobj +1248 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 377.39 521.32 384.333] +/Subtype /Link +/A << /S /GoTo /D (402) >> +>> endobj +1249 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 364.439 285.788 371.381] +/Subtype /Link +/A << /S /GoTo /D (406) >> +>> endobj +1250 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 364.439 521.32 371.381] +/Subtype /Link +/A << /S /GoTo /D (406) >> +>> endobj +1251 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 350.268 301.927 358.43] +/Subtype /Link +/A << /S /GoTo /D (413) >> +>> endobj +1252 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 350.268 521.32 358.43] +/Subtype /Link +/A << /S /GoTo /D (413) >> +>> endobj +1253 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 337.316 296.548 345.479] +/Subtype /Link +/A << /S /GoTo /D (429) >> +>> endobj +1254 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 337.316 521.32 345.479] +/Subtype /Link +/A << /S /GoTo /D (429) >> +>> endobj +1255 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 324.365 296.548 332.527] +/Subtype /Link +/A << /S /GoTo /D (434) >> +>> endobj +1256 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 324.365 521.32 332.527] +/Subtype /Link +/A << /S /GoTo /D (434) >> +>> endobj +1257 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 311.413 291.168 319.576] +/Subtype /Link +/A << /S /GoTo /D (443) >> +>> endobj +1258 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 311.413 521.32 319.576] +/Subtype /Link +/A << /S /GoTo /D (443) >> +>> endobj +1259 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 298.462 312.687 306.624] +/Subtype /Link +/A << /S /GoTo /D (447) >> +>> endobj +1260 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 298.462 521.32 306.624] +/Subtype /Link +/A << /S /GoTo /D (447) >> +>> endobj +1261 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 286.73 230.953 293.673] +/Subtype /Link +/A << /S /GoTo /D (460) >> +>> endobj +1262 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 286.73 521.32 293.673] +/Subtype /Link +/A << /S /GoTo /D (460) >> +>> endobj +1263 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 271.81 257.982 280.721] +/Subtype /Link +/A << /S /GoTo /D (468) >> +>> endobj +1264 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 271.81 521.32 280.721] +/Subtype /Link +/A << /S /GoTo /D (468) >> +>> endobj +1265 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 259.966 285.788 267.77] +/Subtype /Link +/A << /S /GoTo /D (557) >> +>> endobj +1266 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 259.966 521.32 267.77] +/Subtype /Link +/A << /S /GoTo /D (557) >> +>> endobj +1267 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 246.656 285.788 254.818] +/Subtype /Link +/A << /S /GoTo /D (561) >> +>> endobj +1268 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 246.656 521.32 254.818] +/Subtype /Link +/A << /S /GoTo /D (561) >> +>> endobj +1269 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 234.924 285.788 241.867] +/Subtype /Link +/A << /S /GoTo /D (565) >> +>> endobj +1270 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 234.924 521.32 241.867] +/Subtype /Link +/A << /S /GoTo /D (565) >> +>> endobj +1271 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 220.753 264.269 228.916] +/Subtype /Link +/A << /S /GoTo /D (569) >> +>> endobj +1272 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 220.753 521.32 228.916] +/Subtype /Link +/A << /S /GoTo /D (569) >> +>> endobj +1273 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 207.802 307.307 215.964] +/Subtype /Link +/A << /S /GoTo /D (587) >> +>> endobj +1274 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 207.802 521.32 215.964] +/Subtype /Link +/A << /S /GoTo /D (587) >> +>> endobj +1275 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 194.851 296.548 203.013] +/Subtype /Link +/A << /S /GoTo /D (593) >> +>> endobj +1276 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 194.851 521.32 203.013] +/Subtype /Link +/A << /S /GoTo /D (593) >> +>> endobj +1277 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 183.118 296.548 190.061] +/Subtype /Link +/A << /S /GoTo /D (597) >> +>> endobj +1278 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 183.118 521.32 190.061] +/Subtype /Link +/A << /S /GoTo /D (597) >> +>> endobj +1279 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 168.948 291.168 177.11] +/Subtype /Link +/A << /S /GoTo /D (602) >> +>> endobj +1280 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 168.948 521.32 177.11] +/Subtype /Link +/A << /S /GoTo /D (602) >> +>> endobj +1281 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 157.185 291.168 164.158] +/Subtype /Link +/A << /S /GoTo /D (606) >> +>> endobj +1282 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 157.185 521.32 164.158] +/Subtype /Link +/A << /S /GoTo /D (606) >> +>> endobj +1283 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 143.045 291.168 151.207] +/Subtype /Link +/A << /S /GoTo /D (611) >> +>> endobj +1284 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 143.045 521.32 151.207] +/Subtype /Link +/A << /S /GoTo /D (611) >> +>> endobj +1285 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 131.282 291.168 138.256] +/Subtype /Link +/A << /S /GoTo /D (635) >> +>> endobj +1286 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 131.282 521.32 138.256] +/Subtype /Link +/A << /S /GoTo /D (635) >> +>> endobj +1287 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 117.142 296.548 125.304] +/Subtype /Link +/A << /S /GoTo /D (641) >> +>> endobj +1288 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 117.142 521.32 125.304] +/Subtype /Link +/A << /S /GoTo /D (641) >> +>> endobj +1289 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 104.19 296.548 112.353] +/Subtype /Link +/A << /S /GoTo /D (646) >> +>> endobj +1290 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 104.19 521.32 112.353] +/Subtype /Link +/A << /S /GoTo /D (646) >> +>> endobj +1188 0 obj << +/D [1186 0 R /XYZ 71.731 778.968 null] +>> endobj +6 0 obj << +/D [1186 0 R /XYZ 244.332 752.939 null] +>> endobj +1185 0 obj << +/Font << /F22 1177 0 R /F32 1191 0 R /F26 1184 0 R /F33 1203 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1344 0 obj << +/Length 44420 +/Filter /FlateDecode +>> +stream +xÚ¬Ý]¤Wž]÷ûù¼”/&œï•yiÉ’a¡m0ŒAC]ÓÓШ٠)AúöŽbœ}2ö?óY±Š&Axzÿž¨`UV±Ö‰¼ÿáîüîørúòxþ¾¼žÞ^^øOÿåïî~øóùŸüow¿N<=½ž_ßÎÿÿOþáß?>Þî¿üð÷w§·‡‡OÏܿݟ^øû/ϯ§»§—o‡þåþîþ7/?¼ÙÇþð?äPÎüáOÿÏ¿øÃ?}ýŸþß?üÿó¿y|üáÛó½üzðËéíõá¼üíÄŸ¿þòï~üå_~ýÇZG¯7_¾œ§ÞÖÑûõ—úñOßýÝ¿þÃ~¸Ç»/§óÿýáêÑæóßÿú^þÝëéñé‰_Z]¿´Ó‡¹¿;½>>}ö Õu–Õ1x >žž¥z9{CíÁõùôzÿ"ÕËÙj¨ç·áΪ—³7Ôü\=ÿÄøòöÅ©ë,«cð@}<ÿlz•êåì
µÔçÓùW©^ÎÞP{ð@}==¼¼Iõrö†ÚƒŸ«ç_ø¾È™.GÙì¹òüÈŸ«—£7Èš; ÏoÀÓ½4/go =x žß€Ç©^ÎÞP{ðsõéü<Hueu¨çwáþQª—³7Ô<PÏoÃüj³ÎÞP{ð@}=Ý¿Yõrö†ÚƒŸ«Ïw§—Wùófeu¨§{ûÄ:{CíÁõùôòbÕËÙj¨ç·áY~[go¨=ø¹úr~žäW›u–Õ1x žß†G«^ÎÞP{ð@=¿
òkÜ:{CíÁõü6È_/Go˜5÷9ùåüȯ7—£LöÜy~î¬y9{íÁõùôü&p×Ùj¨çøjÕËÙj~®¾Þž¿È¯që,«cð@}<ݽȯ6ëì
µÔóÛðlÕËÙj¨ßþ¡ü·ÎÞP{ðsõíü6<Jueu¨ç·áA~[go¨=x žß†{ù5n½¡öàzþ‡wV½œ½¡öà§êÓÝÝééÍ}ËYTçàúpz{}“êåì
µÔçÓÓ«^ÎÞP{ð@ýr’ÿQ`½aÖÜçäýù=_Zs–Ñ1x žßƒg«^ÎÞP{ð@=¿OR½œ½¡öàz~¥z9{CíÁÏÕ‡óÛð Õu–Õ1x žß†û'©^ÎÞP{ð@=¿
wÏR½œ½¡öàúåôúfÕËÙj~®>Þ_Ý—¹œeu¨§×/òW¦uö†ÚƒêóéñŪ—³7Ô<PÏoóü2·ÎÞP{ðsõéü6<É/8ë,«cð@=¿
V½œ½¡öàz~ä/M—£7Ìš; ÏïÁƒü‚³ÎÞ@{ðsõùüÜKueu¨ç÷àN~™[go¨=x >ŸÞ仺ÎÞP{ð@ýrúòjÕËÙj~®¾Ü¾È/së,«cð@}8}y‘_pÖÙj¨ç·áÙª—³7Ô<PÏoÓü2·ÎÞP{ðsõËùmx”_pÖYVÇàz~¬z9{CíÁõü6ÜË/sëì
µÔóÛp'¿à¬³7Ôü\}½;Ý¿Iueu¨§‹þzô†YsäóéþU~ÁYgo =x ~9½|±êåì
µ?WßÎïÁ‹ü2·Î²:Ôó»ð,¿à¬³7Ô<PÏoÓU/go¨=x žßŸäì
µ?UŸïÎoƒüíœEu¨ç·áÞª—³7Ô<PÏoƒŒOrö†Úƒê—Ó³üïL9{CíÁÏÕû»ÓÝ«T×YVÇàúpz–ñIÎÞP{ð@}>ݽ¼r?öðåþ {¾9ÿ‰æíÖƒ\]?ÈÛ‡y¸?}žL|lõÖBãVïüg»·gnõÖ×êýü»µzïöÛZ=xi»Õ»ziÇÞÇVÔ1ÈžRÓê¡ÚƒÜê)5ª=ÈžRÓê¡ÚƒÜêu·z¤ŽAnõ”šVÕäVO©iõPíAnõ”šVÕÄVÏ iõÈì9lõ¹Z=$kŽ[=e¦ÕC´¹ÕSjZ=T{[=£îVÔ1ÈžRÓê¡ÚƒÜê)5ª=ÈžRÓê¡ÚƒÜêu·z¤ŽAnõ”šVÕäVO©iõPíAnõ”šVÕäVϨ»Õ#ur«§Ô´z¨ö ·zJM«‡jb«§ÐÕê¡YsØê2‘=Çž2Óê!ÚƒÜê)5ª=ÈžRÓê¡ÚƒÜêu·z¤ŽAnõ”šVÕäVO©iõPíAnõ”šVÕäVϨ»Õ#ur«§Ô´z¨ö ·zJM«‡jr«§Ô´z¨ö ·zB}oõ@ƒÜê)5ª=ÈžRÓê¡ÚƒØê)tµzhÖ·zÆÜ¡c[=¥¦ÕCµ¹ÕSjZ=T{[=¥¦ÕCµ¹Õ3ênõHƒÜê)5ª=ÈžRÓê¡ÚƒÜê)5ª=ÈžQw«GêäVO©iõPíAnõ”šVÕäVO©iõPíAnõŒº[=RÇ ·zJM«‡jb«§ÐÕê¡YsÜê)3¢=ÈžQw«GêäVO©iõPíAnõ”šVÕäVO©iõPíAnõŒº[=RÇ ·zJM«‡jr«§Ô´z¨ö ·zJM«‡jr«gÔÝê‘:¹ÕSjZ=T{[=¥¦ÕCµ¹ÕSjZ=T{[=£îVÔ1ˆžBW«‡fÍq«§Ì´zˆö ·zJM«‡jr«gÔÝê‘:¹ÕSjZ=T{[=¥¦ÕCµ¹ÕSjZ=T{[=¡¾·z ÎAnõ”šVÕäVO©iõPíAnõ”šVÕäVϨ»Õ#ur«§Ô´z¨ö ·zÔ™VdµzWrØê?Çhõn}®ÞùÏíß~ÝÀVoùžÏÕû_þñ—¯?}’êÝŸ^^n¥z÷§·o¿Ùy²?Ôç?ø¦z§Ç_¿2À+Ë¡ëWöñ?ÊŸê½>?~ö Ÿ¨—³7Ô<PWE¨Ôd‰¨ö g‰FÝY"©c³D¥&KDµ9KTj²DT{³D¥&KDµ9K4êÎIƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ˆY¢A“%’Ùs˜%*re‰HÖg‰ÊL–ˆhr–¨Ôd‰¨ö g‰FÝY"©c³D¥&KDµ9KTj²DT{³D¥&KDµ9K4êÎIƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qw–Hêä,Q©ÉQíAΕš,ÕÄ,Q¡+KD³æ0K4d²D"{޳De&KD´9KTj²DT{³D¥&KDµ9K4êÎIƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qw–Hêä,Q©ÉQíAΕš,Õä,Q©ÉQíAÎ…úž%‚:9KTj²DT{³D¥&KDµ1KTèÊѬ9ι³DBÇ g‰JM–ˆjr–¨Ôd‰¨ö g‰JM–ˆjr–hÔ%’:9KTj²DT{³D¥&KDµ9KTj²DT{³D£î,‘Ô1ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%ug‰¤ŽAΕš,ÕÄ,Q¡+KD³æ8KTf²DD{³D£î,‘Ô1ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%ug‰¤ŽAΕš,Õä,Q©ÉQíAΕš,Õä,Ѩ;K$ur–¨Ôd‰¨ö g‰JM–ˆjr–¨Ôd‰¨ö g‰FÝY"©c³D…®,Íšã,Q™ÉíAΕš,Õä,Ѩ;K$ur–¨Ôd‰¨ö g‰JM–ˆjr–¨Ôd‰¨ö g‰B}ÏAƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qw–Hêä,Q©ÉQíAΩ•3Y">Èʯä0K<~ŽïüÁû·ó¾Î×™ïùÁß!K|²ß–%Â+ÛYâÕ+;Î?>d‰¨ö g‰JM–ˆjr–hÔ%’:9KTj²DT{³D¥&KDµ9KTj²DT{³D£î,‘Ô1ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒ˜%4Y"™=‡Y¢"W–ˆdÍq–¨Ìd‰ˆö g‰JM–ˆjr–hÔ%’:9KTj²DT{³D¥&KDµ9KTj²DT{³D£î,‘Ô1ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%ug‰¤ŽAΕš,Õä,Q©ÉQíA̺²D4k³DC&K$²ç8KTf²DD{³D¥&KDµ9KTj²DT{³D£î,‘Ô1ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%ug‰¤ŽAΕš,Õä,Q©ÉQíAΕš,Õä,Q¨ïY"¨s³D¥&KDµ9KTj²DT{³D…®,Íšã,ј;K$tr–¨Ôd‰¨ö g‰JM–ˆjr–¨Ôd‰¨ö g‰FÝY"©c³D¥&KDµ9KTj²DT{³D¥&KDµ9K4êÎIƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qw–Hêä,Q©ÉQíA̺²D4k޳De&KD´9K4êÎIƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢Qw–Hêä,Q©ÉQíAΕš,Õä,Q©ÉQíAκ³DRÇ g‰JM–ˆjr–¨Ôd‰¨ö g‰JM–ˆjr–hÔ%’:1KTèÊѬ9Ε™,Ñä,Q©ÉQíAκ³DRÇ g‰JM–ˆjr–¨Ôd‰¨ö g‰JM–ˆjr–(Ô÷,Ô9ÈY¢R“%¢Úƒœ%*5Y"ª=ÈY¢R“%¢Úƒœ%R?öðå°Ô»?=Þúº~Žû»£Tïø9¾3Õ»{9=<Ýsª·Î¸TïúÓ¿þï¿|ýëÏùñ¯ÿÿ¾Ûïû£ý¶ïö/m÷kW/í¸_ûø Я‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒØ¯4ý™=‡ýš"W¿†dÍq¿¦Ìôkˆö ÷kJM¿†jr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAì׺ú54kû5C¦_#²ç¸_Sfú5D{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~M¨ïý¨sû5¥¦_Cµ¹_Sjú5T{û5…®~
Íšã~͘»_#tr¿¦Ôôk¨ö ÷kJM¿†jr¿¦Ôôk¨ö ÷kFÝý©cû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšQw¿Fêä~M©é×PíAì׺ú54kŽû5e¦_C´¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšQw¿Fêä~M©é×PíAî×”š~
Õä~M©é×PíAî׌ºû5RÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jr¿fÔݯ‘:±_Sèê×Ь9î×”™~
Ñä~M©é×PíAî׌ºû5RÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jr¿&Ô÷~
Ô9ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯QS%ú5zŽôkWÏqܯ?Ç÷}Ü—·oÌök9ãúµÿôÏ_ÿøÓ.Ø~þ˜°½>žU~å„íáñtþCÊWO7_ÂÃùMGŸì·Czu9týêCœOä8Äaµ)ÄQè +qÐì9 +qy q˜¬9qœ¹BF{C§®‡ÕÄG© qPƒâ8u…8¬ö †8N]!«=ˆ!ŽSWˆÃjbˆ£Ô„8¨ŽAqœºBV{C§®‡ÕÄÇ©+Äaµ1ÄQjBTÇ †8N]!«=ˆ!ŽSWˆÃjRˆãÐKˆÃfÍQˆ£Èâ Ùsâ8s…8Œö †8N]!«=ˆ!ŽSWˆÃjbˆ£Ô„8¨ŽAqœºBV{C§®‡ÕÄÇ©+Äaµ1ÄQjBTÇ †8N]!«=ˆ!ŽSWˆÃjbˆãÔâ°Úƒâu‡8¤ÎAqœºBV{C§®‡Õ¤Ç¡—‡ÍšÃG™ qƒâ8u…8¬ö †8N]!«=ˆ!ŽSWˆÃjbˆ£Ô„8¨ŽAqœºBV{C§®‡ÕÄÇ©+Äaµ1ÄQjBTÇ †8N]!«=ˆ!ŽSWˆÃjbˆãÔâ°Úƒâ(5!ªcC§®‡Õ¤Ç¡—‡ÍšÃÇ™+Äa´1ÄQjBTÇ †8N]!«=ˆ!ŽSWˆÃjbˆãÔâ°Úƒâ(5!ªcC§®‡ÕÄÇ©+Äaµ1Äqê +qXíAq”šÕ1ˆ!ŽSWˆÃjbˆãÔâ°Úƒâ8u…8¬ö †8JMˆƒê¤Ç¡—‡ÍšÃÇ™+Äa´1Äqê +qXíAq”šÕ1ˆ!ŽSWˆÃjbˆãÔâ°Úƒâ8u…8¬ö †8FÝ!©sC§®‡ÕÄÇ©+Äaµ1Äqê +qXíAq 1!>Ç:tý‡!<Ç÷}ÔËù‹Áãã+‡8ëŒq~ü¯ýå÷ +qÞŸî·…8ðêvˆsõêŽCœ!ª=ˆ!ŽAâÙsâ(r…8HÖ‡8ÊLˆƒhrˆ£Ô„8¨ö ‡8FÝ!©cC¥&ÄAµ9ÄQjBT{C¥&ÄAµ9Ä1êqHƒâ(5!ª=È!ŽRâ Úƒâ(5!ª=È!ŽQwˆCêäG© qPíAq”šÕÄG¡+ÄA³æ0Ä1dB"{ŽCe&ÄA´9ÄQjBT{C¥&ÄAµ9Ä1êqHƒâ(5!ª=È!ŽRâ Úƒâ(5!ª=È!ŽQwˆCêäG© qPíAq”šÕäG© qPíAq„úâ€:9ÄQjBT{C¥&ÄAµ1ÄQè +qЬ9qŒ¹CBÇ ‡8JMˆƒjrˆ£Ô„8¨ö ‡8JMˆƒjrˆcÔâ:9ÄQjBT{C¥&ÄAµ9ÄQjBT{C£î‡Ô1È!ŽRâ Úƒâ(5!ª=È!ŽRâ Úƒâu‡8¤ŽAq”šÕÄG¡+ÄA³æ8ÄQfBD{C£î‡Ô1È!ŽRâ Úƒâ(5!ª=È!ŽRâ Úƒâu‡8¤ŽAq”šÕäG© qPíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8FÝ!©cC…®ÍšãG™ qíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8B}q@ƒâ(5!ª=È!ŽRâ Úƒâ(5!ª=È!Îq¢BzŽ„8WÏqâ?Çw~"Îù·ßþ!Î:ãBœ?ýå÷ùŽnWö›¾£½´º~i‡ßÑí“9þŽn¨ŽAüŽnN]ßÑÕÄïèæÔõÝXíAüŽnN]ßÑÕÄïè¦Ô|G7TÇ ~G7§®ïèÆjâwtsjú5T{û5¥¦_Cµ±_3hú52{û5E®~
Éšã~M™é×íAî×”š~
Õä~ͨ»_#ur¿¦Ôôk¨ö ÷kJM¿†jr¿¦Ôôk¨ö ÷kFÝý©cû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒØ¯)tõkhÖök†L¿FdÏq¿¦Ìôkˆö ÷kJM¿†jr¿¦Ôôk¨ö ÷kFÝý©cû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšPßû5Pç ÷kJM¿†jr¿¦Ôôk¨ö ök +]ýš5Çýš1w¿Fèä~M©é×PíAî×”š~
Õä~M©é×PíAî׌ºû5RÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒØ¯)tõkhÖ÷kÊL¿†hr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~ͨ»_#ub¿¦ÐÕ¯¡Ysܯ)3ý¢=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~M¨ïý¨sû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_£¦Jôkôé×®žã¸_;~Žïü ©ç§ÓùO–ܯ3®_ûÛß~úË_ùX®=>¾|ÁpíáüEøîáõ‡«gš~wz;×¾ýÏß~ým#¼¦º~M§òzzz~ùìA>Q/go¨=ø¹zþºüö$Õu–Õ1x >žÿá©^ÎÞP{ð@=¿
Ÿ¿ÕŸ¨—³7Ô<PÏoýU/go¨=ø¹zþÒüöíwyF]gYƒêùmæ·“7Äë±ïùôj_ä¯Goˆ5w@¾ž¼—æåì
´?ÿû«óWä×/JÍYTçàúxz|±êåì
µÔó»ðü(ÕËÙj¨+.VjjeT{ke£îZ™Ô1ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+u×ʤŽA®••šZÕäZY©©•QíA®••šZÕÄZÙ ©•Éì9¬•¹je$kŽkee¦VF´¹VVjjeT{ke£îZ™Ô1ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+u×ʤŽA®••šZÕäZY©©•QíA®••šZÕäZÙ¨»V&ur¬ÔÔʨö ×ÊJMŒjb¬ÐU+£YsX+2µ2‘=ǵ²2S+#Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+u×ʤŽA®••šZÕäZY©©•QíA®••šZÕäZÙ¨»V&ur¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊB}¯•Aƒ\++5µ2ª=ȵ²RS+£ÚƒX++tÕÊhÖ×ÊÆÜµ2¡cke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹V6ꮕIƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•ºkeRÇ ×ÊJMŒjb¬ÐU+£Ys\++3µ2¢=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•ºkeRÇ ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjrlÔ]+“:¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£îZ™Ô1ˆµ²BWŒfÍq¬ÌÔʈö ×ÊJMŒjrlÔ]+“:¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke¡¾×Ê ÎA®••šZÕäZY©©•QíA®••šZÕäZù8¤Uµ2=Gjå«ç8®•Ÿã׿z}ûöƒôi›ßjç_3º§ûÓÓù·ŒŸÖÊëPÎpü¸Jäÿø|÷ö¯~úç¹òùÏt÷ûƒ6ÿÕ?ÿñçŸ?ä‡ç?—Ü}û]óûC}üQ>©>Ê•Ÿ^OÏ/¯ü¢rèúE}ì ŸïOwÏoŸ=ÈGueu¨§ç'«^ÎÞP{ð@}9}«úëÑfÍç÷àñ^š—³7Ðü\}9¿R]gYƒêù=¸êåì
µÔó»pgÕËÙj¨¯§§Ïþ~¢^ÎÞP{ðànÁÝù—ùoð:Ëê<PÏ¿Yõrö†Úƒêºl¡ÔÜÞ@µùö†Rs{ÕäÛFÝ·7Hƒ|{C©¹½jòí
¥æöª=È·7”šÛ¨ö ßÞ0ê¾½Aê¤ÛʼÜÞ@ñzoo(pÝÞ@±æøö†2s{ÑäÛB}¿½êäÛJÍí
T{oo(5·7PíA¾½¡ÔÜÞ@µùö†Q÷í
RÇ ßÞPjno Úƒ|{C©¹½jòí
¥æöª=È·7Œºoo:ùö†Rs{ÕäÛJÍí
T{oo(5·7PíA¼½aÐÜÞ ³çðö†"×í
$kŽoo(3·7íA¾½¡ÔÜÞ@µùö†Q÷í
RÇ ßÞPjno Úƒ|{C©¹½jòí
¥æöª=È·7Œºoo:ùö†Rs{ÕäÛJÍí
T{oo(5·7PíA¾½aÔ}{ƒÔ1È·7”šÛ¨ö ßÞPjno Úƒx{C¡ëöš5‡·7™ÛDößÞPfno Úƒ|{C©¹½jòí
¥æöª=È·7Œºoo:ùö†Rs{ÕäÛJÍí
T{oo(5·7PíA¾½aÔ}{ƒÔ1È·7”šÛ¨ö ßÞPjno Úƒ|{C©¹½jòí
¡¾ßÞ +Äí
zŽÜÞ¸zŽãÛÇÏñŸ5ÿð{àÏš_gÞo]üýÃóÝ¿ø÷?ýøË¿ü¿}ýxãùòáóWã?4þù×›ŸÞÂØÁ><Üö¯î8Øÿø ì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'uR°¯ÌK°âõû +\Á>Š5ÇÁ¾2ì#Úƒìõ=Øur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾Aì“Ùsì+rûHÖûÊL°hr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`ÕÄ`_¡+ØG³æ0Ø7d‚}"{Žƒ}e&ØG´9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö…úìƒ:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö¹ƒ}BÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`ÕÄ`_¡+ØG³æ8ØWf‚}D{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}…®`Íšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB}öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁþq‚®‚}zŽûWÏqì?Çwû÷ϧç×{ö×þvë)üíëù¿úË/_?ù~癇|¿…ûõ—úñOŸU¬_¾59ïõ1õ¿:*ýw× +¯jwW¯ê¸kýøÐµ¢ÚƒÜµuw¤ŽAêZ•yéZQ¼Ã®U«kE±æ¸kUfºVD{»V¡¾w ÎAîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨»k%urתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ±k5hºV2{»VE®®Éšã®U™éZíAîZ•š®Õä®Õ¨»k%urתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tuhÖv†L×JdÏqתÌtˆö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Pß»VPç wJM׊jrתÔt¨ö v +]]+š5Ç]«1w×Jèä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒØµ*tuhÖwÊL׊hr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuw¤ŽAîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨»k%ubתÐÕµ¢Ysܵ*3]+¢=È]«RÓµ¢ÚƒÜµuw¤ŽAîZ•š®Õä®U©éZQíAîZ•š®Õä®U¨ï]+¨s»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k=î-U×JÏ‘®õê9îïºÖãç]ëîõÛ;ýðÆ]ë:ãºÖ?}ýéwèZßë7uðªv×zõªŽ»ÖÏ]+ª=È]«Qw×J꤮U™—®Åë1ìZ¸ºVkŽ»Ve¦kE´¹kê{× +êä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»Vƒ¦k%³ç°kUäêZ‘¬9îZ•™®Ñä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒÜµ*5]+ª=ˆ]«BW׊fÍa×jÈtDöwÊL׊hrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ +õ½kurתÔt¨ö wJM׊jbתÐÕµ¢Ysܵsw„ŽAîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨»k%urתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=ˆ]«BW׊fÍqתÌtˆö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ v +]]+š5Ç]«2Óµ"ڃܵ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZ…úÞµ‚:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»ÖãÞRuôéZ¯žã¸k=~Žïû¼Öç×·ó¯V¯ØµæŒëZÿüõ—ÿëëO?ÿåÇ¿~,[Ÿ_΃7ÊÖ·—ÓóÓëWöñGúõ¬¤©é…åÐõ;¬?yã*‘Ô9ˆU¢SW•Èjb•èÔU%²ÚƒX%:uU‰¬ö V‰JM•ˆêÄ*Ñ©«Jdµ±JtêªYíA¬ºªDV{«D¥¦JDub•èÔU%²ÚƒX%:uU‰¬ö V‰N]U"«=HU¢BW•ˆfÏQ•èÈK•ÈdÍa•èÌU%2ÚƒX%:uU‰¬ö V‰JM•ˆêÄ*Ñ©«Jdµ±JtêªYíA¬ºªDV{«D¥¦JDub•èÔU%²ÚƒX%:uU‰¬ö V‰N]U"«=ˆU¢RS%¢:±JtêªYíA¬ºªDV{ªD‡^ªD6kŽªDE®*ÉžÃ*Ñ™«Jd´±JtêªYíA¬ºªDV{«D¥¦JDub•èÔU%²ÚƒX%:uU‰¬ö V‰N]U"«=ˆU¢RS%¢:±JtêªYíA¬ºªDV{«D§®*‘ÕÄ*Ѩ»J$ub•èÔU%²ÚƒX%:uU‰¬ö U‰½T‰lÖV‰ÊL•ˆèÄ*Ñ©«Jdµ±JtêªYíA¬ºªDV{«D¥¦JDub•èÔU%²ÚƒX%:uU‰¬ö V‰N]U"«=ˆU¢RS%¢:±JtêªYíA¬ºªDV{«D§®*‘ÕÄ*Q©©QƒX%:uU‰¬ö U‰½T‰lÖV‰Î\U"£=ˆU¢RS%¢:±JtêªYíA¬ºªDV{«D§®*‘ÕÄ*Q©©QƒX%:uU‰¬ö V‰N]U"«=ˆU¢SW•Èjb•¨ÔT‰¨ŽA¬ºªDV{«D§®*‘ÕÄ*Ñ©«Jdµ±JTjªDTÇ U‰½T‰lÖV‰Î\U"£=ˆU¢SW•Èjb•¨ÔT‰¨ŽA¬ºªDV{«D§®*‘ÕÄ*Ñ©«Jdµ±J4ê®IƒX%:uU‰¬ö V‰N]U"«=ˆU¢SW•Èjb•ˆÜí*Ÿcº~ŽÃ*žãû>móùËËùËíW‰ëŒ«þªÄ÷ûmU"¼°]%^½°ã*ñãƒ@•êä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«Dƒ¦J$³ç°JT䪑¬9®•™*Ñä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ˆU¢BW•ˆfÍa•hÈT‰DöW‰ÊL•ˆhr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\% +õ½Jur•¨ÔT‰¨ö W‰JM•ˆjb•¨ÐU%¢Ys\%sW‰„ŽA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ˆU¢BW•ˆfÍq•¨ÌT‰ˆö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ V‰ +]U"š5ÇU¢2S%"Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®…ú^%‚:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«DjåD•HÏ‘*ñê9Ž«ÄãçøÎÏJ|y<}ùòÌUâ:£?+ñÿùçÿúõ§O¢ÄËw¤æ(ñþüëØëWÏ5þá×îá(Jüõ»TÓ«º¹~MGߥú“g8ü.Õ,Ö~—jg¦¼D´¹¼ê{y êäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ ——JMy‰jry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËKƒ¦¼$³ç°¼Tä*/‘¬9./•™òÑäòR©)/QíA./ºËKRÇ ——JMy‰jry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=ˆå¥BWy‰fÍayiÈ”—Dö——ÊLy‰hry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^ +õ½¼ury©Ô”—¨ö ——JMy‰jby©ÐU^¢Ys\^s——„ŽA./•šòÕäòR©)/QíA./•šòÕäòÒ¨»¼$ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=ˆå¥BWy‰fÍqy©Ì”—ˆö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ –— +]å%š5Çå¥2S^"Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./…ú^^‚:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËËã P•—ô)/¯žã¸¼<~Žïü<ÈóoÊ_¹¼\gôçAþååûsý–ò^Õ*/¯^ÓayùñŽËKkŽËKe¦¼D´¹¼ê{y êäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ ——JMy‰jry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËKƒ¦¼$³ç°¼Tä*/‘¬9./•™òÑäòR©)/QíA./ºËKRÇ ——JMy‰jry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=ˆå¥BWy‰fÍayiÈ”—Dö——ÊLy‰hry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^ +õ½¼ury©Ô”—¨ö ——JMy‰jby©ÐU^¢Ys\^s——„ŽA./•šòÕäòR©)/QíA./•šòÕäòÒ¨»¼$ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=ˆå¥BWy‰fÍqy©Ì”—ˆö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ –— +]å%š5Çå¥2S^"Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./…ú^^‚:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËËã P•—ô)/¯žã¸¼<~ŽïüÌËo¾ûòÀåå:£?óòÿô—ŸÿÏ¿ýé¿|ýX_ž¿¼?=¼b}ùx~ð—o?ØïÏ6_ÀÝù§âëÁö{Ô¯mG]W¯í8êúø u¡Úƒu)5Qª=ÈQ—QwÔEêä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŒºš¨‹ÌžÃ¨K‘+êB²æ8êRf¢.D{£.¥&êBµ9ê2ꎺHƒu)5Qª=ÈQ—Ru¡Úƒu)5Qª=ÈQ—QwÔEêä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŽºŒº£.RÇ G]JMÔ…jrÔ¥ÔD]¨ö F] +]Qš5‡Q—!uÙsu)3Q¢=ÈQ—Ru¡Úƒu)5Qª=ÈQ—QwÔEêä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŽºŒº£.RÇ G]JMÔ…jrÔ¥ÔD]¨ö G]JMÔ…jrÔ%Ô÷¨Ô9ÈQ—Ru¡Úƒu)5Qª=ˆQ—BWÔ…fÍqÔeÌu:9êRj¢.T{£.¥&êBµ9êRj¢.T{£.£î¨‹Ô1ÈQ—Ru¡Úƒu)5Qª=ÈQ—Ru¡ÚƒuuG]¤ŽAŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨Ë¨;ê"urÔ¥ÔD]¨ö F] +]Qš5ÇQ—2u!ÚƒuuG]¤ŽAŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨Ë¨;ê"urÔ¥ÔD]¨ö G]JMÔ…jrÔ¥ÔD]¨ö G]FÝQ©c£.¥&êBµ9êRj¢.T{£.¥&êBµ9ê2ꎺHƒu)tE]hÖG]ÊLÔ…hrÔ¥ÔD]¨ö G]FÝQ©c£.¥&êBµ9êRj¢.T{£.¥&êBµ9êê{Ôêä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŽºŽ;#uÑs$êºzŽã¨ëø9¾3êzx:½=ÜsÔµÎèÓû½¢®÷gûmQ¼¶u]½¶ã¨ëãƒ@Ô…jrÔ¥ÔD]¨ö G]FÝQ©c£.¥&êBµ9êRj¢.T{£.¥&êBµ1ê2h¢.2{£.E®¨Éšã¨K™‰ºíAŽº”š¨Õä¨Ë¨;ê"urÔ¥ÔD]¨ö G]JMÔ…jrÔ¥ÔD]¨ö G]FÝQ©c£.¥&êBµ9êRj¢.T{£.¥&êBµ9ê2ꎺHƒu)5Qª=ÈQ—Ru¡Úƒu)tE]hÖF]†LÔEdÏqÔ¥ÌD]ˆö G]JMÔ…jrÔ¥ÔD]¨ö G]FÝQ©c£.¥&êBµ9êRj¢.T{£.¥&êBµ9ê2ꎺHƒu)5Qª=ÈQ—Ru¡Úƒu)5Qª=ÈQ—Pߣ.Pç G]JMÔ…jrÔ¥ÔD]¨ö F] +]Qš5ÇQ—1wÔEèä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŽºŒº£.RÇ G]JMÔ…jrÔ¥ÔD]¨ö G]JMÔ…jrÔeÔu‘:9êRj¢.T{£.¥&êBµ9êRj¢.T{£.£î¨‹Ô1ÈQ—Ru¡Úƒu)tE]hÖG]ÊLÔ…hrÔeÔu‘:9êRj¢.T{£.¥&êBµ9êRj¢.T{£.£î¨‹Ô1ÈQ—Ru¡Úƒu)5Qª=ÈQ—Ru¡ÚƒuuG]¤ŽAŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨Ë¨;ê"ubÔ¥Ðu¡Ysu)3Q¢=ÈQ—Ru¡ÚƒuuG]¤ŽAŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨K¨ïQ¨s£.¥&êBµ9êRj¢.T{£.¥&êBµ9ê:îŒTÔEÏ‘¨ëê9Ž£®ãçøÎï‘zVßο2cÔµÎèOêúw_ÿû/¿GÔõþl¿-ê‚×¶£®«×vu}|ˆºPíAŽº”š¨Õä¨Ë¨;ê"urÔ¥ÔD]¨ö G]JMÔ…jrÔ¥ÔD]¨ö F]MÔEfÏaÔ¥Èu!Ysu)3Q¢=ÈQ—Ru¡ÚƒuuG]¤ŽAŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨Ë¨;ê"urÔ¥ÔD]¨ö G]JMÔ…jrÔ¥ÔD]¨ö G]FÝQ©c£.¥&êBµ9êRj¢.T{£.…®¨ÍšÃ¨Ë‰ºˆì9Žº”™¨Ñä¨K©‰ºPíAŽº”š¨Õä¨Ë¨;ê"urÔ¥ÔD]¨ö G]JMÔ…jrÔ¥ÔD]¨ö G]FÝQ©c£.¥&êBµ9êRj¢.T{£.¥&êBµ9êê{Ôêä¨K©‰ºPíAŽº”š¨ÕĨK¡+êB³æ8ê2掺ƒu)5Qª=ÈQ—Ru¡Úƒu)5Qª=ÈQ—QwÔEêä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŽºŒº£.RÇ G]JMÔ…jrÔ¥ÔD]¨ö G]JMÔ…jrÔeÔu‘:9êRj¢.T{£.…®¨Íšã¨K™‰ºíAŽºŒº£.RÇ G]JMÔ…jrÔ¥ÔD]¨ö G]JMÔ…jrÔeÔu‘:9êRj¢.T{£.¥&êBµ9êRj¢.T{£.£î¨‹Ô1ÈQ—Ru¡Úƒu)5Qª=ÈQ—Ru¡ÚƒuuG]¤ŽAŒºº¢.4kŽ£.e&êB´9êRj¢.T{£.£î¨‹Ô1ÈQ—Ru¡Úƒu)5Qª=ÈQ—Ru¡Úƒu õ=êurÔ¥ÔD]¨ö G]JMÔ…jrÔ¥ÔD]¨ö G]Ç‘Šºè9u]=ÇqÔuüß÷I]Ooo§»ó>ŠºrFR×ïu]=ÛoŠºèµåÐõk;Œº>y㨋ÕĨ˩+êbµ1êRj¢.TÇ F]N]Q«=ˆQ—SWÔÅjbÔåÔu±Úƒu)tE]höE]޼D]LÖF]Î\Q£=ˆQ—SWÔÅjbÔ¥ÔD]¨ŽAŒºœº¢.V{£.§®¨‹ÕĨ˩+êbµ1êRj¢.TÇ F]N]Q«=ˆQ—SWÔÅjbÔåÔu±Úƒu)5Qªc£.§®¨‹ÕĨ˩+êbµ)êrè%êb³æ(êR䊺ì9Œºœ¹¢.F{£.§®¨‹ÕĨ˩+êbµ1êRj¢.TÇ F]N]Q«=ˆQ—SWÔÅjbÔåÔu±Úƒu)5Qªc£.§®¨‹ÕĨ˩+êbµ1êrꊺXíAŒºŒº£.Rç F]N]Q«=ˆQ—SWÔÅjRÔåÐKÔÅfÍaÔ¥ÌD]ˆŽAŒºœº¢.V{£.§®¨‹ÕĨ˩+êbµ1êRj¢.TÇ F]N]Q«=ˆQ—SWÔÅjbÔåÔu±Úƒu)5Qªc£.§®¨‹ÕĨ˩+êbµ1êrꊺXíAŒº”š¨Õ1ˆQ—SWÔÅjRÔåÐKÔÅfÍaÔåÌu1Úƒu)5Qªc£.§®¨‹ÕĨ˩+êbµ1êrꊺXíAŒº”š¨Õ1ˆQ—SWÔÅjbÔåÔu±Úƒu9uE]¬ö F]JMÔ…êĨ˩+êbµ1êrꊺXíAŒºœº¢.V{£.¥&êBuRÔåÐKÔÅfÍaÔåÌu1Úƒu9uE]¬ö F]JMÔ…êĨ˩+êbµ1êrꊺXíAŒºœº¢.V{£.£î¨‹Ô9ˆQ—SWÔÅjbÔåÔu±Úƒu9uE]¬ö F]Й¨Ÿcº~Žû‡ƒ¨žãû>©ëéõåt÷òÂQ×:£?©ë?|ýo?þç¯úXt=¿œß°èzx{9=ûË÷ûø#ýzÖ?ÿ¡~x{==þú…^X]¿°ÿúü3ïÛw¸üäA>þ¯³¨ÎÁõñü§|«^ÎÞP{ð@}>ÿ)ÿQª—³7Ô<PÏoÃÓ“T/go¨=xÐÌ߆G©®³¬ŽÁuE„JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«Dƒ¦J$³ç°JT䪑¬9®•™*Ñä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ˆU¢BW•ˆfÍa•hÈT‰DöW‰ÊL•ˆhr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\% +õ½Jur•¨ÔT‰¨ö W‰JM•ˆjb•¨ÐU%¢Ys\%sW‰„ŽA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ˆU¢BW•ˆfÍq•¨ÌT‰ˆö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ V‰ +]U"š5ÇU¢2S%"Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®…ú^%‚:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«DjåD•HÏ‘*ñê9Ž«ÄãçøÎšûö;çw«ÄuFÔÜïR%¾?Øo«á…í*ñê…W‰ªDPç W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢ÚƒX%4U"™=‡U¢"W•ˆdÍq•¨ÌT‰ˆö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA¬ºªD4k«DC¦J$²ç¸JTfªDD{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA®•š*Õä*Q¨ïU"¨s«D¥¦JDµ¹JTjªDT{«D…®*Íšã*ј»J$tr•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA¬ºªD4kŽ«De¦JD´¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:±JTèªÑ¬9®•™*Ñä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•(Ô÷*Ô9ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%R+'ªDzŽT‰WÏq\%?Çw~VâË·_7¹J\g\•øß¾þô—ü‹Äǧӗ/$ž¿ß=¼þpõL¿ñíÛãÑò·ÿùÛ¯¿m„×”CׯéôñA^OOÏ/Ÿ=È'êåì
µ?WÏ_—ßž¤ºÎ²:ÔÇÓÓ·ßå)õrö†ÚƒêùmøüþD½œ½¡öàz~îz9{CíÁÏÕó—æ·o¿Ë3ê:Ëê<PÏoƒ4¿¼!^xϧWû"=zC¬¹rÅÅÊLŒhr,Ô÷ZÔ9ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+u×ʤŽA®••šZÕäZY©©•QíA®••šZÕäZÙ¨»V&ur¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ÖÊMLfÏa¬ÈU+#Ys\++3µ2¢=ȵ²RS+£Úƒ\+u×ʤŽA®••šZÕäZY©©•QíA®••šZÕäZÙ¨»V&ur¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊFݵ2©cke¥¦VFµ¹VVjjeT{ke…®ZÍšÃZÙ©•‰ì9®••™ZÑäZY©©•QíA®••šZÕäZÙ¨»V&ur¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊFݵ2©cke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹Vê{êäZY©©•QíA®••šZÕÄZY¡«VF³æ¸V6殕 ƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•ºkeRÇ ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjrlÔ]+“:¹VVjjeT{ke…®ZÍšãZY™©•íA®•ºkeRÇ ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjrlÔ]+“:¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£îZ™Ô1ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+u×ʤŽA¬•ºje4kŽkee¦VF´¹VVjjeT{ke£îZ™Ô1ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+õ½Vur¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊÇ!ª•é9R+_=ÇýãQ|üßùªç? +<Ü?p¼ÎÈÏPýËŸÿú±U~x:ÝÝs«üòtITÞŸèãñ—óOÀƒVùååtwwãåÐõ+úA¾¼žžÞ?{OÔËÙjÒwçÄ'§®³¬ŽÁõñôôŪ—³7Ô<PW2®Ô4è¨ö 7èJMƒŽjrƒnÔÝ “:¹AWjtT{t¥¦AGµ¹AWjtT{t£îÔ1H
º2/
:Š×cØ +p5è(Ö7èÊLƒŽhrƒ.Ô÷Ô9È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ u7褎AnЕšÕä]©iÐQíAnЕšÕäݨ»A'urƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 6èMƒNfÏaƒ®ÈÕ #YsÜ +3
:¢=È
ºRÓ £ÚƒÜ u7褎AnЕšÕä]©iÐQíAnЕšÕäݨ»A'urƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èFÝ
:©ct¥¦AGµ¹AWjtT{t…®ÍšÃÝiЉì9nЕ™Ñä]©iÐQíAnЕšÕäݨ»A'urƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èFÝ
:©ct¥¦AGµ¹AWjtT{t¥¦AGµ¹Aê{ƒêä]©iÐQíAnЕšÕÄ]¡«AG³æ¸A7ænÐ ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQwƒNêä]©iÐQíAnЕšÕä]©iÐQíAnкtRÇ 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÝ “:¹AWjtT{t…®Íšã]™iÐíAnкtRÇ 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÝ “:¹AWjtT{t¥¦AGµ¹AWjtT{t£îÔ1È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ u7褎Alкt4kŽte¦AG´¹AWjtT{t£îÔ1È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ õ½Aurƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èH‹ž#
úÕs7èÇÏñ
úã·òûžôuÆ5èüÓŸþõÿåë_þËŸ´èçßÉÜÿ`G1úãù
yüößsßíãõÝág¿÷kðÒv¿võÒŽûµý©cû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ˆýšAÓ¯‘Ùsد)rõkHÖ÷kÊL¿†hr¿¦Ôôk¨ö ÷kFÝý©cû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšQw¿Fêä~M©é×PíAî×”š~
ÕÄ~M¡«_C³æ°_3dú5"{Žû5e¦_C´¹_Sjú5T{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšQw¿Fêä~M©é×PíAî×”š~
Õä~M©é×PíAîׄúÞ¯:¹_Sjú5T{û5¥¦_Cµ±_Sèê×Ь9î׌¹û5BÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
ÕÄ~M¡«_C³æ¸_Sfú5D{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~ͨ»_#ur¿¦Ôôk¨ö ÷kJM¿†jr¿¦Ôôk¨ö ÷kFÝý©cû5…®~
Íšã~M™é×íAî×”š~
Õä~ͨ»_#ur¿¦Ôôk¨ö ÷kJM¿†jr¿¦Ôôk¨ö ÷kB}ï×@ƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=Èý5U¢_£çH¿võÇýÚñsŒ~íáF¿ömïü%ûµuÆõkÿ響þñ§]°ýü1a{}<ÿªüÊ ÛÃãéü‡”®žn¾„‡ó›î¶âÀ«Û!ÎÕ«;q>>„8¨ö †8MˆCfÏaˆ£Èâ Ysâ(3!¢=È!ŽRâ Úƒâu‡8¤ŽAq”šÕäG© qPíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8FÝ!©cC¥&ÄAµ9ÄQjBT{C…®ÍšÃÇ qˆì9q”™ÑäG© qPíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8FÝ!©cC¥&ÄAµ9ÄQjBT{C¥&ÄAµ9Äê{ˆêäG© qPíAq”šÕÄG¡+ÄA³æ8Ä1æqƒâ(5!ª=È!ŽRâ Úƒâ(5!ª=È!ŽQwˆCêäG© qPíAq”šÕäG© qPíAqŒºCRÇ ‡8JMˆƒjrˆ£Ô„8¨ö ‡8JMˆƒjrˆcÔâ:9ÄQjBT{C…®ÍšãG™ qíAqŒºCRÇ ‡8JMˆƒjrˆ£Ô„8¨ö ‡8JMˆƒjrˆcÔâ:9ÄQjBT{C¥&ÄAµ9ÄQjBT{C£î‡Ô1È!ŽRâ Úƒâ(5!ª=È!ŽRâ Úƒâu‡8¤ŽAqºB4kŽCe&ÄA´9ÄQjBT{C£î‡Ô1È!ŽRâ Úƒâ(5!ª=È!ŽRâ Úƒâõ=Äurˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8Çeˆ +qè9â\=ÇýÓQˆsüßùARß>Qéüç;qÖâüø_ÿúËïâ¼?ÝoqàÕíçêÕ‡8BT{Cƒ&Ä!³ç0ÄQä +q¬9q”™ÑäG© qPíAqŒºCRÇ ‡8JMˆƒjrˆ£Ô„8¨ö ‡8JMˆƒjrˆcÔâ:9ÄQjBT{C¥&ÄAµ9ÄQjBT{C£î‡Ô1È!ŽRâ Úƒâ(5!ª=ˆ!ŽBWˆƒfÍaˆcÈ„8Dö‡8ÊLˆƒhrˆ£Ô„8¨ö ‡8JMˆƒjrˆcÔâ:9ÄQjBT{C¥&ÄAµ9ÄQjBT{C£î‡Ô1È!ŽRâ Úƒâ(5!ª=È!ŽRâ Úƒâõ=Äurˆ£Ô„8¨ö ‡8JMˆƒjbˆ£Ðâ Ysâs‡8„ŽAq”šÕäG© qPíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8FÝ!©cC¥&ÄAµ9ÄQjBT{C¥&ÄAµ9Ä1êqHƒâ(5!ª=ˆ!ŽBWˆƒfÍqˆ£Ì„8ˆö ‡8FÝ!©cC¥&ÄAµ9ÄQjBT{C¥&ÄAµ9Ä1êqHƒâ(5!ª=È!ŽRâ Úƒâ(5!ª=È!ŽQwˆCêäG© qPíAq”šÕäG© qPíAqŒºCRÇ †8 +]!š5Ç!Ž2â Úƒâ(5!ª=È!ŽQwˆCêäG© qPíAq”šÕäG© qPíAq„úâ€:9ÄQjBT{C¥&ÄAµ9ÄQjBT{Cœã2D…8ô q®žã8Ä9~ŽïûDœoÿÉöéücN!NθçÏ_ù}¾£ÛÕ£ý¦ïèF/-‡®_ÚáwtûäAŽ¿£ªc¿£›S×wtcµñ;º9u}G7V{¿£›S×wtcµñ;º)5ßÑ
Õ1ˆßÑÍ©ë;º±ÚƒøÝœºú5V{û5§®~Õ¤~M¡«_C³ç¨_sä¥_c²æ°_sæê×íAìלºú5V{û5¥¦_Cub¿æÔÕ¯±ÚƒØ¯9uõk¬ö ökN]ý«=ˆýšRÓ¯¡:±_sêê×XíAìלºú5V{û5§®~ÕÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=HýšC/ý›5Gýš"W¿†dÏa¿æÌÕ¯1ڃد9uõk¬ö ökN]ý«=ˆýšRÓ¯¡:±_sêê×XíAìלºú5V{û5§®~ÕÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=ˆýšSW¿Æjb¿fÔݯ‘:±_sêê×XíAìלºú5V{ú5‡^ú56kû5e¦_Ctb¿æÔÕ¯±ÚƒØ¯9uõk¬ö ökN]ý«=ˆýšRÓ¯¡:±_sêê×XíAìלºú5V{û5§®~ÕÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=ˆýšSW¿Æjb¿¦Ôôk¨ŽAìלºú5V{ú5‡^ú56kû5g®~ÑÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=ˆýšSW¿Æjb¿¦Ôôk¨ŽAìלºú5V{û5§®~ÕÄ~Í©«_cµ±_Sjú5TÇ ökN]ý«=ˆýšSW¿Æjb¿æÔÕ¯±ÚƒØ¯)5ýªcú5‡^ú56kû5g®~ÑÄ~Í©«_cµ±_Sjú5TÇ ökN]ý«=ˆýšSW¿Æjb¿æÔÕ¯±ÚƒØ¯u÷k¤ÎAìלºú5V{û5§®~ÕÄ~Í©«_cµ±_æêv¿†Ï±]?Ça¿Ïñ}$õxþ…ùü›Uî×Öׯýío?ý寿|,ןN_¾`¸öpþ"|÷ðúÃÕ3Í¿;½†kßþço¿þ¶^S]¿¦ÓÇy=ÿ×Ïäõrö†ÚƒŸ«ç¯ËoOR]gYƒêãééÛïò”z9{CíÁõü6|þV¢^ÎÞP{ð@=¿
÷V½œ½¡öàçêùKóÛ·ßåueu¨ç·AšßNޯǼçÓ«}‘¿½!ÖÜùzzüöû;e^ÎÞ@{ðó¿¿:E~ýò ÔœEu¨§Ç«^ÎÞP{ð@=¿ÏR½œ½¡öàºâb¥¦VFµ¹V6ꮕIƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA¬•
šZ™ÌžÃZY‘«VF²æ¸VVfjeD{ke¥¦VFµ¹V6ꮕIƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•ºkeRÇ ×ÊJMŒjr¬ÔÔʨö ÖÊ +]µ2š5‡µ²!S+Ùs\++3µ2¢=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•ºkeRÇ ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjr,Ô÷ZÔ9ȵ²RS+£Úƒ\++5µ2ª=ˆµ²BWŒfÍqlÌ]+:¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£îZ™Ô1ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+u×ʤŽA®••šZÕäZY©©•QíA®••šZÕäZÙ¨»V&ur¬ÔÔʨö ÖÊ +]µ2š5ǵ²2S+#Úƒ\+u×ʤŽA®••šZÕäZY©©•QíA®••šZÕäZÙ¨»V&ur¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊFݵ2©cke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹V6ꮕIƒX++tÕÊhÖ×ÊÊLŒhr¬ÔÔʨö ×ÊFݵ2©cke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹Vê{êäZY©©•QíA®••šZÕäZY©©•QíA®•CZU+Ós¤V¾zŽãZùø9~ý«×·o1HŸ¶yþÅã¯ÝËÛéùîñóZyÊ®•W‰üŸïÞþÃ×ÿöãþú§O>lóþôò’ÛüWÿüÇŸþ ¾¼žÿÕ{G?ÿŽ·_“å»ó³<ñË¡ëöI²üxzúòôÙƒ|¢^ÎÞP{ð@]5µR“g£Úƒœg+5y6ª=Èy¶QwžMêä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ åÙʼäÙ(^ažÀ•g£Xsœg+3y6¢=Èy¶PßólPç çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól£î<›Ô1Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£Úƒ˜g4y6™=‡y¶"WždÍqžÌäÙˆö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól£î<›Ô1Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£ÚƒœguçÙ¤ŽAγ•š<Õä<[©É³QíA̳ºòl4kólC&Ï&²ç8ÏVfòlD{ól¥&ÏFµ9ÏVjòlT{ól£î<›Ô1Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£ÚƒœguçÙ¤ŽAγ•š<Õä<[©É³QíAγ•š<Õä<[¨ïy6¨sól¥&ÏFµ9ÏVjòlT{ól…®<Íšã<Û˜;Ï&tržÔäÙ¨ö çÙJMžjržÔäÙ¨ö çÙFÝy6©cól¥&ÏFµ9ÏVjòlT{ól¥&ÏFµ9Ï6êγIƒœg+5y6ª=Èy¶R“g£Úƒœg+5y6ª=Èy¶QwžMêä<[©É³QíA̳ºòl4kŽóle&ÏF´9Ï6êγIƒœg+5y6ª=Èy¶R“g£Úƒœg+5y6ª=Èy¶QwžMêä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:1ÏVèʳѬ9γ•™<Ñä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjrž-Ô÷<Ô9Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£ÚƒœgGÃ*ϦçHž}õÇyöñs|ç‡I?¿œž/
÷ñ‡I¯3ïIõß?<ßý‹ÿÓ¿üøËÿøÛ׉õóåÓ¥¯Æ?~*ôóÓÛQbýüzz~¼ç‡Ë¡ë‡ûØ3¾ÜŸîî?{ê:Ëê<POÏ÷R½œ½¡öàúrº»³êåì
µÔ×ÓÓÛ£T/go¨=x“¯¾Þ¨;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+óì£x=†Á¾W°bÍq°¯Ìûˆö ûB}öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠ\Á>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö
™`ŸÈžã`_™ öíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡¾û ÎAö•š`Õä`_© öQíAöº‚}4kŽƒ}cî`ŸÐ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ1ØWè +öѬ9ö•™`Ñä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°OêÄ`_¡+ØG³æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P߃}Pç ûJM°jr°¯Ôû¨ö ûJM°jr°œ «`Ÿž#ÁþÕsûÇÏñÁþÓãéåýu†?Oýa}Jú?üÃ_þú—_þá>~˜úù:Ïù0õûõ—úñOŸU¬_¾59ïõ1õ¿:*ýw× +¯jwW¯ê¸kýøÐµ¢ÚƒÜµuw¤ŽAêZ•yéZQ¼Ã®U«kE±æ¸kUfºVD{»V¡¾w ÎAîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨»k%urתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ±k5hºV2{»VE®®Éšã®U™éZíAîZ•š®Õä®Õ¨»k%urתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tuhÖv†L×JdÏqתÌtˆö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Pß»VPç wJM׊jrתÔt¨ö v +]]+š5Ç]«1w×Jèä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒØµ*tuhÖwÊL׊hr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuw¤ŽAîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨»k%ubתÐÕµ¢Ysܵ*3]+¢=È]«RÓµ¢ÚƒÜµuw¤ŽAîZ•š®Õä®U©éZQíAîZ•š®Õä®U¨ï]+¨s»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k=î-U×JÏ‘®õê9Ž»Öãç]ëîõñÛ_¾q׺θ®õÏ_ù_ÿøË×O²Öó¿ÉÏ7ªÖ»ÓÓÝëWõÉX?¾fùhZxQû£i¯^ÔñGÓ~|øhZT{?šV©IxQíANx•š„Õä„ר;á%uR«ÌK‹âõ&¼ +\ /Š5Ç ¯2“ð"Úƒœð +õ=áur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9á5êNxIƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=ˆ ¯A“ð’Ùs˜ð*r%¼HÖ'¼ÊL‹hr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9á5êNxIƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=È ¯QwÂKêä„W©IxQíANx•š„ÕÄ„W¡+áE³æ0á5d^"{Ž^e&áE´9áUj^T{^¥&áEµ9á5êNxIƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=È ¯QwÂKêä„W©IxQíANx•š„Õä„W©IxQíANx…úžð‚:9áUj^T{^¥&áEµ1áUèJxѬ9Nx¹^BÇ '¼JM‹jr«Ô$¼¨ö '¼JM‹jrÂkÔð’:9áUj^T{^¥&áEµ9áUj^T{^£î„—Ô1È ¯R“ð¢Úƒœð*5 /ª=È ¯R“ð¢Úƒœðu'¼¤ŽANx•š„ÕÄ„W¡+áE³æ8áUf^D{^£î„—Ô1È ¯R“ð¢Úƒœð*5 /ª=È ¯R“ð¢Úƒœðu'¼¤ŽANx•š„Õä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^…®„Íšã„W™IxíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼B}OxAƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=È ïq\ª^zŽ$¼WÏqœð?Çw~4íýùßê·WNx×—ðþü;$¼ïõÛ^xQ;á½zQÇ ïÿ×ÚÝôÈu¥Wþ+5ôÄ æ39.÷Ѐ÷ g‚Ðb»RAb]ÿ¾#gŸˆýïÊÅêšyp±ŸL™"Këܸ=$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^ež^¯Ç0áUàJxQ¬9Nx•™„Ñä„W¨—„Ô9È ¯R“ð¢Úƒœð*5 /ª=È ¯R“ð¢Úƒœðu'¼¤ŽANx•š„Õä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö &¼MÂKfÏa«ȕð"Ysœð*3 /¢=È ¯R“ð¢Úƒœðu'¼¤ŽANx•š„Õä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^…®„͚Ä×Ix‰ì9Nx•™„Ñä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9áê%áur«Ô$¼¨ö '¼JM‹jb«Еð¢Ysœðs'¼„ŽANx•š„Õä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9á5êNxIƒœð*5 /ª=ˆ ¯BW‹fÍq«Ì$¼ˆö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9á5êNxIƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=È ¯QwÂKêä„W©IxQíANx•š„Õä„W©IxQíANxº^RÇ &¼ +] /š5Ç ¯2“ð"Úƒœð*5 /ª=È ¯QwÂKêä„W©IxQíANx•š„Õä„W©IxQíANx…zIxAƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=È ïq\ª^:GÞ«sÜ?%¼ÇçøÎ·ð~xúúGLx×3ú-¼ÿùù÷Ÿüå6â}>W–XñžÌû¯º:×<üÃ×îá â]å%|ªU^^}¦ÃòòöÇå%Š5Çå¥2S^"Úƒ\^ +õR^‚:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA./•šòÕÄòÒ )/Éì9,/¹ÊK$kŽËKe¦¼D´¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA./•šòÕäòÒ¨»¼$ury©Ô”—¨ö ——JMy‰jby©ÐU^¢YsX^2å%‘=Çå¥2S^"Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA./•šòÕäòÒ¨»¼$ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——B½”— ÎA./•šòÕäòR©)/QíA,/ºÊK4kŽËKcîò’Ð1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA./•šòÕäòÒ¨»¼$ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ±¼Tè*/Ѭ9./•™òÑäòÒ¨»¼$ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêÄòR¡«¼D³æ¸¼TfÊKD{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥P/å%¨sËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼<UyIçHyyuŽãòòøß÷òÔ·Òñåô÷v*/óŒ~yê?¡¼¼:×?P^Ò§:?rý™ŽÊËoœá°¼d±æ°¼tæ*/íA,/ºËKRç –—N]å%«=ˆå¥SWyÉjbyéÔU^²ÚƒX^*5å%ªcËK§®ò’ÕÄòÒ©«¼dµ±¼tê*/YíA,/•šòÕ1ˆå¥SWyÉjbyéÔU^²ÚƒX^:u•—¬ö •— +]å%š=Gå¥#Ïå%“5‡å¥3WyÉhbyéÔU^²ÚƒX^*5å%ªcËK§®ò’ÕÄòÒ©«¼dµ±¼tê*/YíA,/•šòÕ1ˆå¥SWyÉjbyéÔU^²ÚƒX^:u•—¬ö –—JMy‰êÄòÒ©«¼dµ±¼tê*/YíA*/z./Ù¬9*/¹ÊK${ËKg®ò’ÑÄòÒ©«¼dµ±¼tê*/YíA,/•šòÕ1ˆå¥SWyÉjbyéÔU^²ÚƒX^:u•—¬ö –—JMy‰êÄòÒ©«¼dµ±¼tê*/YíA,/ºÊKV{ËK£îò’Ô9ˆå¥SWyÉjbyéÔU^²ÚƒT^:ô\^²YsX^*3å%¢cËK§®ò’ÕÄòÒ©«¼dµ±¼tê*/YíA,/•šòÕ1ˆå¥SWyÉjbyéÔU^²ÚƒX^:u•—¬ö –—JMy‰êÄòÒ©«¼dµ±¼tê*/YíA,/ºÊKV{ËK¥¦¼DubyéÔU^²ÚƒT^:ô\^²YsX^:s•—Œö –—JMy‰êÄòÒ©«¼dµ±¼tê*/YíA,/ºÊKV{ËK¥¦¼DubyéÔU^²ÚƒX^:u•—¬ö –—N]å%«=ˆå¥RS^¢:±¼tê*/YíA,/ºÊKV{ËK§®ò’ÕÄòR©)/QƒT^:ô\^²YsX^:s•—Œö –—N]å%«=ˆå¥RS^¢:±¼tê*/YíA,/ºÊKV{ËK§®ò’ÕÄòÒ¨»¼$ubyéÔU^²ÚƒX^:u•—¬ö –—N]å%«=ˆå%¦¼Äs¬‡®ÏqX^Â9¾ï—/¯w¯§ÿ_Âòr=ãÊËúéüß/Ÿýãçß~½/O’ùðÄñåãéòøö¿ç^Žvûkýö¿ý‹}é×à£í~íê£÷k·~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
ÕÄ~Í é×Èì9ì×¹ú5$kŽû5e¦_C´¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~ͨ»_#ur¿¦Ôôk¨ö ÷kJM¿†jb¿¦ÐÕ¯¡Ysد2ý‘=Çýš2Ó¯!ڃܯ)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~ͨ»_#ur¿¦Ôôk¨ö ÷kJM¿†jr¿¦Ôôk¨ö ÷kB½ôk ÎAî×”š~
Õä~M©é×PíAì׺ú54kŽû5cî~Ð1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~ͨ»_#ur¿¦Ôôk¨ö ÷kJM¿†jr¿¦Ôôk¨ö ÷kFÝý©cû5¥¦_Cµ±_Sèê×Ь9î×”™~
Ñä~ͨ»_#ur¿¦Ôôk¨ö ÷kJM¿†jr¿¦Ôôk¨ö ÷kFÝý©cû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšQw¿FêÄ~M¡«_C³æ¸_Sfú5D{û5¥¦_Cµ¹_3êî×HƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšP/ý¨sû5¥¦_Cµ¹_Sjú5T{û5¥¦_Cµ¹_£¦JôktŽôkWç8î׎ÏñoüøöV»î×Ö3®_ûß¿|þñ÷]°ýq›°½>ž~W~å„íáñîô—”?]îöý÷G ÛqàÓíçêÓ‡8·ÕÄÇ qÈì9q¹B$kŽCe&ÄA´9ÄQjBT{C£î‡Ô1È!ŽRâ Úƒâ(5!ª=È!ŽRâ Úƒâu‡8¤ŽAq”šÕäG© qPíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjbˆ£Ðâ Ysâ2!‘=Ç!Ž2â Úƒâ(5!ª=È!ŽRâ Úƒâu‡8¤ŽAq”šÕäG© qPíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8B½„8 ÎAq”šÕäG© qPíAqºB4kŽCcî‡Ð1È!ŽRâ Úƒâ(5!ª=È!ŽRâ Úƒâu‡8¤ŽAq”šÕäG© qPíAq”šÕäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8FÝ!©cC¥&ÄAµ1ÄQè +qЬ9q”™ÑäǨ;Ä!urˆ£Ô„8¨ö ‡8JMˆƒjrˆ£Ô„8¨ö ‡8FÝ!©cC¥&ÄAµ9ÄQjBT{C¥&ÄAµ9Ä1êqHƒâ(5!ª=È!ŽRâ Úƒâ(5!ª=È!ŽQwˆCêÄG¡+ÄA³æ8ÄQfBD{C¥&ÄAµ9Ä1êqHƒâ(5!ª=È!ŽRâ Úƒâ(5!ª=È!ŽP/!¨sC¥&ÄAµ9ÄQjBT{C¥&ÄAµ9Ä9.CTˆCçHˆsuŽãçøßù"©Ó?=q‡s~Df8¿ýí×/ÿ¬gŸí«pŽ?ÚŽp.í¸Á¹9$8DÖ8BL`a}c¼ßw=ÆéSÞXsÜÝ2Ù
‘5ÇÑ wsdÏqqcÈ7DÖç6†LmCdÍqkcȤ6DÖ‡6‚Ü
=Ç•!ÙYsœØ2…
‘5Ç}!“×Ys×r·5@ö—5†LXCdÍqVcÈT5DÖ65F\I
×cÔ/=
x5Æ5ÓXsœÒ2%
‘5Ç!“ÑYsÑr74@ö4†L@CdÍq>cÈÔ3DÖ·3†L:CdÍq8#ÈÝÍ +‘5ǹŠ!S«Ysܪ2© +‘5Ç¡Êa;¡:8D2•Ë!Ž+•ÃC|çÛb?}ý_ó°RYϸLå¿>ù'}ÛÙåhÿØ·ÁGÛßvvõÑŽ¿íìö ðmg¤ŽAþ¶3¥æÛÎPíAþ¶3¥æÛÎPíAþ¶3¥æÛÎPíAþ¶3£îo;#uò·)5ßv†jò·)5yª=È—RSx¡ÚƒØx4‘™=‡™—"Wç…dÍqé¥Ì¤^ˆö Ç^JMí…jrïeÔ|‘:9ùRjš/T{«/¥&ûBµ9üRjÊ/T{Û/£îø‹Ô1Èù—RÓ¡Úƒ\€)5 ª=ȘRS¡ÚƒÜu‡`¤ŽANÁ”šÕäL©ÉÁPíAºŠ04k›0C& +#²ç8Sfº0D{Ë0¥&
Cµ9Sjê0T{û0£î@ŒÔ1ȉ˜RÓˆ¡Úƒ\‰)5™ª=È¡˜RSŠ¡ÚƒÜŠuÇb¤ŽAÎÅ”š^ÕäbL©IÆPíAŽÆ”šjÕänL¨—pÔ9Èé˜RÓŽ¡Úƒ\)5ùª=ˆ™BWA†fÍqCfÌ‘:9#Sj:2T{K2¥&%Cµ9&Sjj2T{{2£î ŒÔ1ÈI™RÓ”¡Úƒ\•)5Yª=Èa™RS–¡ÚƒÜ–uÇe¤ŽAÎË”š¾ÕäÂL©IÌPíAŽÌ”šÊÕäĮ̂;4#urj¦Ô´f¨ö Öf +]¹š5ÇÁ™2Sœ!ڃܜuGg¤ŽAÎΔšîÕäòL©IÏPíAŽÏ”šúÕäþ̨;@#ur‚¦Ô4h¨ö WhJM††jrˆ¦Ô”h¨ö ·hFÝ1©cs4¥¦GCµ¹HSj’4T{£4¥¦JCµ¹K3êÓHƒ˜¦)tµihÖ×iÊLž†hr ¦Ôj¨ö 7jFÝ‘©c35¥¦SCµ¹TSjR5T{c5¥¦VCµ¹Wê%Xur²¦Ô4k¨ö WkJM¶†jr¸¦Ô”k¨ö ·kÔT‰xΑzíêÇùÚñ9¾þ§×OoÿaúµÓŸ(_Þ~O9ý½ýÃãë·ûµõPžá~íqEiÿëùçÿüòÛïŸoãµÓ_ +ÏR=?ûŽÚƒêêò•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ1ô7hB2{CE®ÐÉšãÐ_™ ýíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+t…þhÖ†þ†LèOdÏqè¯Ì„þˆö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿P/¡?¨sC¥&ôGµ9ôWjBT{C…®ÐÍšãÐߘ;ô'trè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAýºB4kŽCe&ôG´9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAýºCRÇ ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“:1ôWè +ýѬ9ý•™ÐÑäÐ_© ýQíAýºCRÇ ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrè/ÔKèêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAýtúÓ9ú_ã8ô?>Çw~›òýÓéƒ}äÕ®g.yþ¿><ø—ÿøý·/¿}ùû_?3×{síÕøm®ÿüõ}µÇ¹þ=.]î8Ø¿=û¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+óì£x=†Á¾W°bÍq°¯Ìûˆö ûB½û ÎAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ1Ø7h‚}2{ƒ}E®`Éšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+tûhÖû†L°OdÏq°¯Ìûˆö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}…®`Íšã`ߘ;Ø'tr°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAöº‚}4kŽƒ}e&ØG´9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:1ØWè +öѬ9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAötìÓ9ì_ãþãQ°|Žì߿츿»|æ`=ÃoæXoÜÿᇟýùË?ܾ˜ÿôW燼˜ÿß?ùËo?}«b}ykr.ǺMýJÿݵ§Ú]ëÕ§:îZoÏ]+ª=È]«Qw×J꤮U™ç®Åë1ìZ¸ºVkŽ»Ve¦kE´¹kê¥kurתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=ˆ]«AÓµ’Ùsص*ruHÖwÊL׊hrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®ÕÄ®U¡«kE³æ°k5dºV"{Ž»Ve¦kE´¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZ…zéZAƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tuhÖwÆÜ]+¡c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jbתÐÕµ¢Ysܵ*3]+¢=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1ˆ]«BW׊fÍqתÌtˆö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V¡^ºVPç wJM׊jrתÔt¨ö wJM׊jr×zÜ[ª®•Α®õêÇ]ëñ9¾ïEÔ÷¯¯§ß#±kÍ3®kýïÏ¿ÿüþ~[µ>>ݽ¼pÔzú—ð‡‡×?]é6jýôxô«¼ßÂKŸ)]¦Ã·ð~ã Çoáeµñ-¼JÍ[xQƒø^§®·ð²Úƒø^§®Z™ÕÄZÙ©«Vfµ±VVjjeTÇ ÔÊÎüZ+³x=Fµ²Ïµ2‹5‡µ²3WÌhblÔ]+“:±VvꪕYíA¬•ºjeV{ke§®Z™ÕÄZY©©•QƒX+;uÕʬö ÖÊN]µ2«=ˆµ²SWÌjb¬ÔÔʨŽA¬•ºjeV{ke§®Z™ÕÄZÙ©«Vfµ©VV誕Ñì9ª•y®•™¬9¬•¹jeF{ke§®Z™ÕÄZY©©•QƒX+;uÕʬö ÖÊN]µ2«=ˆµ²SWÌjb¬ÔÔʨŽA¬•ºjeV{ke§®Z™ÕÄZÙ©«Vfµ±VVjjeTÇ ÖÊN]µ2«=ˆµ²SWÌjRìÐsÌfÍQ¬ÈU+#ÙsX+;sÕÊŒö ÖÊN]µ2«=ˆµ²SWÌjb¬ÔÔʨŽA¬•ºjeV{ke§®Z™ÕÄZÙ©«Vfµ±VVjjeTÇ ÖÊN]µ2«=ˆµ²SWÌjbìÔU+³ÚƒX+u×ʤÎA¬•ºjeV{ke§®Z™Õ¤ZÙ¡çZ™ÍšÃZY™©•ƒX+;uÕʬö ÖÊN]µ2«=ˆµ²SWÌjb¬ÔÔʨŽA¬•ºjeV{ke§®Z™ÕÄZÙ©«Vfµ±VVjjeTÇ ÖÊN]µ2«=ˆµ²SWÌjbìÔU+³ÚƒX++5µ2ªcke§®Z™Õ¤ZÙ¡çZ™ÍšÃZÙ™«Vf´±VVjjeTÇ ÖÊN]µ2«=ˆµ²SWÌjbìÔU+³ÚƒX++5µ2ªcke§®Z™ÕÄZÙ©«Vfµ±VvꪕYíA¬••šZÕ1ˆµ²SWÌjbìÔU+³ÚƒX+;uÕʬö ÖÊJMŒê¤ZÙ¡çZ™ÍšÃZÙ™«Vf´±VvꪕYíA¬••šZÕ1ˆµ²SWÌjbìÔU+³ÚƒX+;uÕʬö ÖÊFݵ2©ske§®Z™ÕÄZÙ©«Vfµ±VvꪕYíA¬•!¤5µ2žc=t}ŽÃZÎñ}oá½ûßã×Êë™ï©•ÿü—þõ6Yþx÷ñ#¿ˆ÷ñÃýݧ·? +]©š5‡©ž!“êÙsœê)3©¢=È©žR“ê¡Úƒœê)5©ª=È©žQwªGêäTO©IõPíANõ”šTÕäTO©IõPíANõŒºS=RÇ §zJMª‡jrª§Ô¤z¨ö §zJMª‡jrª'ÔKªêäTO©IõPíANõ”šTÕÄTO¡+ÕC³æ8Õ3æNõƒœê)5©ª=È©žR“ê¡Úƒœê)5©ª=È©žQwªGêäTO©IõPíANõ”šTÕäTO©IõPíANõŒºS=RÇ §zJMª‡jrª§Ô¤z¨ö §zJMª‡jrªgÔê‘:9ÕSjR=T{S=…®TÍšãTO™IõíANõŒºS=RÇ §zJMª‡jrª§Ô¤z¨ö §zJMª‡jrªgÔê‘:9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£îTÔ1È©žR“ê¡Úƒœê)5©ª=È©žR“ê¡Úƒœêu§z¤ŽALõºR=4kŽS=e&ÕC´9ÕSjR=T{S=£îTÔ1È©žR“ê¡Úƒœê)5©ª=È©žR“ê¡Úƒœê õ’ê:9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=êÇDªGçHªwuŽãTïøßùbÑÓ£^¹Ô;?âB½úéþþ·?¾ÜVz§¿è<?p¥÷övÈ—·"gêöÅ¢÷OGïÝïŸ<þHûõ“—tüöÉ›CÀË'‰¬9~õ¤ ÷›'ì9zï¤Ï¯$îj +_:i´õÎIâ®Çø“Ì'I¬9~Ýäûäåm“Çä˜ãwM2ý*‘5Çõª!¯Ysœ®2å*‘5Çݪ w¶ +dÏq´jÈ4«DÖ«†L°JdÍq®jÈÔªDÖ·ª‚Ü©*=Ç¡ª!Ó©Ys\©2‘*‘5ljª!S¨Ysا +1y*€5†qªñV›JÞõ—©L˜JbÍq–jÈT©DÖ7©‚ÜI*=ÇAª!Ó£Ys\£21*‘5Ç)ª!S¢YsÜ¡ +rg¨@öG¨†LƒJdÍqjȨDÖ秆L}JdÍq{*ÈžÙsž2Ý)‘5ÇÕ©!Ys˜œq§^ao*¼ä¦àÕǦLkJbÍqijÈ„¦DÖg¦†LeJdÍqc*ȘÙs˜2})‘5Çu©!—Ysœ–2e)‘5Ç]© wV +dÏqTjÈ4¥DÖ¥†LPJdÍqNjÈÔ¤DÖ·¤ï“—”ô˜s’2)‘5Ç©!‘Ys˜q¤^q?*À‚Øs2í(‘5Çå¨!ŽYsœ2Õ(‘5Çͨ w2 +dÏq0jÈô¢DÖ×¢†L,JdÍq*jÈ”¢DÖw¢‚Ü™(=Ç‘¨!ÓˆYs\ˆ2(‘5Çy¨!S‡Ys܆ +r§¡@ö‡¡†LJdÍajÄ…x=ÆI¨S„’Xs܃ +rç @öÇ †LJdÍq jÈ„ DÖg †LJdÍq*È€Ùs€2ý'‘5Çõ§!Ysœ~2å'‘5Çݧ wö dÏqôiÈ4ŸDÖŸ†LðIdÍqîiÈÔžDÖ·ž‚Ü©'=‡¡§WçIàõWžLäIbÍqâiÈžDÖ÷‚Üy'=Çq§!ÓvYs\v2a'‘5ÇY§!SuYsÜt¾O^’ÎcrÌqÐiÈôœDÖל†LÌIdÍqÊiÈ”œDÖwœ‡…¡Ê8á©8/‡8Ž8ñ¯[|útšûÄçzFWœþý—ÿ¯/‡¿œéûrxøLûËá¯>Óñ—Ãß¾Õä/‡7êþrxRÇ 9¼Róåð¨ö 9¼Rç¢Úƒœç*5}.ª=È…®Qw¢Kê¤HW™çJÅë1ìt¸B]kŽS]e¦ÕE´¹Öê%×ur°«Ô»¨ö 7»JM´‹jr¶«Ôt»¨ö —»FÝé.©cã]¥¦ÞEµ¹ßUj^T{^¥¦áEµ¹â5êÎxIƒò*5%/ª=È-¯Ró¢Úƒœó*5=/ª=ˆE¯A“ô’Ùsõ*rU½HÖw½ÊLØ‹hrÚ«Ô´½¨ö ×½FÝy/©c_¥¦ðEµ¹ñUj"_T{3_¥¦óEµ¹ô5êN}Iƒû*5µ/ª=Ƚ¯Rü¢Úƒœü*5Í/ª=ÈÕ¯QwöKêäðW©)QíAn•šøÕÄüW¡«ÿE³æ° ++5¥0ª=ȰR£Úƒ˜+tõÂhÖÃÆÜÉ0¡c£a¥¦Fµ¹VjÂaT{Óa¥¦Fµ¹6ê·Iƒ+51ª=È
±R£Úƒœ+51ª=È%±QwJLêä˜X©©‰QíAš Õä¤X©iŠQíA®Šº³bRÇ ‡ÅJMYŒjb[¬Ð£Ysœ+3}1¢=È…±QwbLêäÈX©©ŒQíAšÐÕäÔX©iQíA®ºscRÇ ÇJMqŒjrs¬ÔDǨö gÇJMwŒjrylÔ“:9>VjêcT{ûc¥&@Fµ9AVjdT{+d£î™Ô1ˆ!²BW‰ŒfÍq‹¬ÌÄȈö çÈJMŒjr‘lÔ$“:9JVjªdT{»d¥&LFµ9MVjÚdT{ëd¡^òdPç ÊJM¡Œjr£¬ÔDʨö gÊJM§Œjr©|ÒªT™Î‘Vùê÷/G±òñ9¾þ§×O_ÿà Ôʧ?Q<~Íè?žþƒWή‡ò×Ê«Dþ·Ÿÿëó·Þ8ûV+ïï…ÿó/?þñÇM}øt÷òöŸù/gºýE~}9|åìÓãÝóë¦<tý™n3ȧw^^¾uo¨çgßQ{ð@}½{þø*Õó³ï¨=ømõùþîÃó'§®gYƒêéÇðdÕó³ï¨=x ž~Oýúè;fͧŸÁã½4ÏϾƒöà·Õ§ŸÁƒT׳¬ŽÁõô3¸êùÙwÔ<PO?…V=?ûŽÚƒêëÝÓ§G©žŸ}GíÁƒkN¿Óʂ׳¬ŽÁõñîéŪçgßQ{ð@]÷J”š‹*¨ö _TQj.ª Úƒ|QŨû¢ +©c/ª(5UPíA¾¨¢Ô\TAµù¢ŠRsQÕä‹*FÝUHƒtQE™ç‹*(^áE®‹*(Ö_TQf.ª Úƒ|QE¨—‹* ÎA¾¨¢Ô\TAµù¢ŠRsQÕä‹*JÍET{/ªu_T!uòE¥æ¢ +ª=ÈU”š‹*¨ö _TQj.ª Úƒ|QŨû¢ +©c/ª(5UPíA¾¨¢Ô\TAµù¢ŠRsQÕÄ‹*ÍE2{/ª(r]TA²æø¢Š2sQÑä‹*JÍET{/ªu_T!uòE¥æ¢ +ª=ÈU”š‹*¨ö _TQj.ª Úƒ|QŨû¢ +©c/ª(5UPíA¾¨¢Ô\TAµù¢ŠRsQÕä‹*FÝUHƒ|QE©¹¨‚jòE¥æ¢ +ª=ˆUº.ª YsxQʍBdÏñEeæ¢ +¢=ÈU”š‹*¨ö _TQj.ª Úƒ|QŨû¢ +©c/ª(5UPíA¾¨¢Ô\TAµù¢ŠRsQÕä‹*FÝUHƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈU”š‹*¨ö _Têå¢ +¨s/ª(5UPíA¾¨¢Ô\TAµñ¢ŠB×E4kŽ/ªs_T!tòE¥æ¢ +ª=ÈU”š‹*¨ö _TQj.ª Úƒ|QŨû¢ +©c/ª(5UPíA¾¨¢Ô\TAµù¢ŠRsQÕä‹*FÝUHƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈU”š‹*¨ö _T1꾨Bêä‹*JÍET{/ª(t]TA³æø¢Š2sQÑä‹*FÝUHƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈU”š‹*¨ö _T1꾨Bêä‹*JÍET{/ª(5UPíA¾¨¢Ô\TAµù¢ŠQ÷ERÇ _TQj.ª Úƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈUŒº/ª:ñ¢ŠB×E4kŽ/ª(3UíA¾¨¢Ô\TAµù¢ŠQ÷ERÇ _TQj.ª Úƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈU„z¹¨êä‹*JÍET{/ª(5UPíA¾¨¢Ô\TAµù¢ +Ý¡U蹨ruŽã‹*Çç¯ÕxçµúwO§càkõ×3—&ÿúðüá_þã÷ß¾üöåïý|{ãäùüžý«ñÛ÷ã¿]+8¸q²ƒ}8Üö¯wìß‚}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽA +ö•yöQ¼Ã`_+ØG±æ8ØWf‚}D{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì4Á>™=‡Á¾"W°dÍq°¯Ìûˆö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAöº‚}4kƒ}C&Ø'²ç8ØWf‚}D{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BW°fÍq°oÌì:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö û +]Á>š5ÇÁ¾2ì#Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+tûhÖûÊL°hr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Øê%Øur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûÇ º +öé ö¯ÎqìŸcû÷ïûoÿ‹×Ë3ûëþf‰‡õ¥?üðó¯?ùá‡Ûï–8ýUçù!ß-ñüå·Ÿ¾U±¾¼59—cݦþ÷‡ß-±»VøT»k½úTÇ]ëí9 kEµ¹k5êîZIƒÔµ*óܵ¢x=†]«W׊bÍqתÌtˆö wB½t ÎAîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨»k%urתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ±k5hºV2{»VE®®Éšã®U™éZíAîZ•š®Õä®Õ¨»k%urתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tuhÖv†L×JdÏqתÌtˆö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«P/]+¨s»V¥¦kEµ¹kUjºVT{»V…®®Íšã®Õ˜»k%trתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAìZººV4kŽ»Ve¦kE´¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:±kUèêZѬ9îZ•™®Ñä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×*ÔK× +êä®U©éZQíAîZ•š®Õä®U©éZQíAîZ{KÕµÒ9Òµ^ã¸k=>Ç÷½ˆúôõóÃ#fëWµþí¯?ýøåómÓúøt÷òÂIëé_Á^ÿt9ÑmÑúéñè—x¿‚>Pž¹ú@‡/à½=Åñûw‘¬9|û®!óò]"{_½«Èõæ]$kß»«È•'#Ys'+rµÉH֖ɆL˜LdÏA–¬À¯U2rWSÔ$+íœ$#w=†A²WŒbÍa,È#9æ0EVä*‘‘¬9ì¹2d$k#dE®ÉšÃÙ ‰ì9̹êc$kÛcE®ôÉšÃðX‘«;F²æ°:6d¢c"{“cE®âÉšÃÞX‘+7F²æ06Väj‘¬9*¸BckŒ2cå+cô®Ç°1VàJŒQ¬9Œ¹úb$këbC&.&²ç0-Vä*‹‘¬9승²b$k£bE®¦ÉšÃ¢Ø Љì9̉¹jb$k[bE®”ÉšÃX‘«#F²æ°"6d"b"{bE®‚ÉšÃ~X‘+F²æ(Vâ¹FðzŒÊaãp˜¼ÃlX«F±æ°VäJ†‘¬9†¹za$kkaC&&²ç0Vä*…‘¬9섹2a$k#aE®FÉšÃBØ „‰ì9̃¹ê`$kÛ`E®4ÉšÃ0X‘«F²æ° +䎂s˜+rÁHÖöÀŠ\90’5G1°Ï-0‚×cX0!0‰=‡°"WŒdÍa¬È• +endobj +1343 0 obj << +/Type /Page +/Contents 1344 0 R +/Resources 1342 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1178 0 R +/Annots [ 1346 0 R 1347 0 R 1348 0 R 1349 0 R 1350 0 R 1351 0 R 1352 0 R 1353 0 R 1354 0 R 1355 0 R 1356 0 R 1357 0 R 1358 0 R 1359 0 R 1360 0 R 1361 0 R 1362 0 R 1363 0 R 1364 0 R 1365 0 R 1366 0 R 1367 0 R 1368 0 R 1369 0 R 1370 0 R 1371 0 R 1372 0 R 1373 0 R 1374 0 R 1375 0 R 1376 0 R 1377 0 R 1378 0 R 1379 0 R 1380 0 R 1381 0 R 1382 0 R 1383 0 R 1384 0 R 1385 0 R 1386 0 R 1387 0 R 1388 0 R 1389 0 R 1390 0 R 1391 0 R 1392 0 R 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R 1398 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R 1404 0 R 1405 0 R 1406 0 R 1407 0 R 1408 0 R 1409 0 R 1410 0 R 1411 0 R 1412 0 R 1413 0 R 1414 0 R 1415 0 R 1416 0 R 1417 0 R 1418 0 R 1419 0 R 1420 0 R 1421 0 R 1422 0 R 1423 0 R 1424 0 R 1425 0 R 1426 0 R 1427 0 R 1428 0 R 1429 0 R 1430 0 R 1431 0 R 1432 0 R 1433 0 R 1434 0 R 1435 0 R 1436 0 R 1437 0 R 1438 0 R 1439 0 R 1440 0 R 1441 0 R 1442 0 R 1443 0 R 1444 0 R 1445 0 R 1446 0 R 1447 0 R 1448 0 R 1449 0 R ] +>> endobj +1346 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 756.639 307.307 764.801] +/Subtype /Link +/A << /S /GoTo /D (652) >> +>> endobj +1347 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 756.639 521.32 764.801] +/Subtype /Link +/A << /S /GoTo /D (652) >> +>> endobj +1348 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 744.876 307.307 751.849] +/Subtype /Link +/A << /S /GoTo /D (658) >> +>> endobj +1349 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 744.876 521.32 751.849] +/Subtype /Link +/A << /S /GoTo /D (658) >> +>> endobj +1350 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 730.736 301.927 738.898] +/Subtype /Link +/A << /S /GoTo /D (664) >> +>> endobj +1351 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 730.736 521.32 738.898] +/Subtype /Link +/A << /S /GoTo /D (664) >> +>> endobj +1352 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 719.004 301.927 725.947] +/Subtype /Link +/A << /S /GoTo /D (670) >> +>> endobj +1353 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 719.004 521.32 725.947] +/Subtype /Link +/A << /S /GoTo /D (670) >> +>> endobj +1354 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 706.052 307.307 712.995] +/Subtype /Link +/A << /S /GoTo /D (676) >> +>> endobj +1355 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 706.052 521.32 712.995] +/Subtype /Link +/A << /S /GoTo /D (676) >> +>> endobj +1356 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 693.101 323.447 700.044] +/Subtype /Link +/A << /S /GoTo /D (689) >> +>> endobj +1357 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 693.101 521.32 700.044] +/Subtype /Link +/A << /S /GoTo /D (689) >> +>> endobj +1358 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 680.149 323.447 687.092] +/Subtype /Link +/A << /S /GoTo /D (693) >> +>> endobj +1359 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 680.149 521.32 687.092] +/Subtype /Link +/A << /S /GoTo /D (693) >> +>> endobj +1360 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 665.979 307.307 674.141] +/Subtype /Link +/A << /S /GoTo /D (697) >> +>> endobj +1361 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 665.979 521.32 674.141] +/Subtype /Link +/A << /S /GoTo /D (697) >> +>> endobj +1362 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 653.027 275.028 661.189] +/Subtype /Link +/A << /S /GoTo /D (702) >> +>> endobj +1363 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 653.027 521.32 661.189] +/Subtype /Link +/A << /S /GoTo /D (702) >> +>> endobj +1364 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 641.295 247.093 648.238] +/Subtype /Link +/A << /S /GoTo /D (706) >> +>> endobj +1365 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 641.295 521.32 648.238] +/Subtype /Link +/A << /S /GoTo /D (706) >> +>> endobj +1366 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 626.375 257.982 635.287] +/Subtype /Link +/A << /S /GoTo /D (710) >> +>> endobj +1367 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 626.375 521.32 635.287] +/Subtype /Link +/A << /S /GoTo /D (710) >> +>> endobj +1368 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 614.173 285.788 622.335] +/Subtype /Link +/A << /S /GoTo /D (788) >> +>> endobj +1369 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 614.173 521.32 622.335] +/Subtype /Link +/A << /S /GoTo /D (788) >> +>> endobj +1370 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 602.441 285.788 609.384] +/Subtype /Link +/A << /S /GoTo /D (792) >> +>> endobj +1371 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 602.441 521.32 609.384] +/Subtype /Link +/A << /S /GoTo /D (792) >> +>> endobj +1372 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 588.27 296.548 596.432] +/Subtype /Link +/A << /S /GoTo /D (796) >> +>> endobj +1373 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 588.27 521.32 596.432] +/Subtype /Link +/A << /S /GoTo /D (796) >> +>> endobj +1374 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 576.538 296.548 583.481] +/Subtype /Link +/A << /S /GoTo /D (800) >> +>> endobj +1375 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 576.538 521.32 583.481] +/Subtype /Link +/A << /S /GoTo /D (800) >> +>> endobj +1376 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 562.367 291.168 570.529] +/Subtype /Link +/A << /S /GoTo /D (805) >> +>> endobj +1377 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 562.367 521.32 570.529] +/Subtype /Link +/A << /S /GoTo /D (805) >> +>> endobj +1378 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 550.635 291.168 557.578] +/Subtype /Link +/A << /S /GoTo /D (811) >> +>> endobj +1379 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 550.635 521.32 557.578] +/Subtype /Link +/A << /S /GoTo /D (811) >> +>> endobj +1380 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 536.464 312.687 544.627] +/Subtype /Link +/A << /S /GoTo /D (818) >> +>> endobj +1381 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 536.464 521.32 544.627] +/Subtype /Link +/A << /S /GoTo /D (818) >> +>> endobj +1382 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 523.513 312.687 531.675] +/Subtype /Link +/A << /S /GoTo /D (824) >> +>> endobj +1383 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 523.513 521.32 531.675] +/Subtype /Link +/A << /S /GoTo /D (824) >> +>> endobj +1384 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 510.561 312.687 518.724] +/Subtype /Link +/A << /S /GoTo /D (830) >> +>> endobj +1385 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 510.561 521.32 518.724] +/Subtype /Link +/A << /S /GoTo /D (830) >> +>> endobj +1386 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 497.61 312.687 505.772] +/Subtype /Link +/A << /S /GoTo /D (836) >> +>> endobj +1387 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 497.61 521.32 505.772] +/Subtype /Link +/A << /S /GoTo /D (836) >> +>> endobj +1388 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 484.659 296.548 492.821] +/Subtype /Link +/A << /S /GoTo /D (842) >> +>> endobj +1389 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 484.659 521.32 492.821] +/Subtype /Link +/A << /S /GoTo /D (842) >> +>> endobj +1390 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 472.927 296.548 479.869] +/Subtype /Link +/A << /S /GoTo /D (851) >> +>> endobj +1391 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 472.927 521.32 479.869] +/Subtype /Link +/A << /S /GoTo /D (851) >> +>> endobj +1392 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 458.756 275.028 466.918] +/Subtype /Link +/A << /S /GoTo /D (861) >> +>> endobj +1393 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 458.756 521.32 466.918] +/Subtype /Link +/A << /S /GoTo /D (861) >> +>> endobj +1394 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 445.804 264.269 453.967] +/Subtype /Link +/A << /S /GoTo /D (872) >> +>> endobj +1395 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 445.804 521.32 453.967] +/Subtype /Link +/A << /S /GoTo /D (872) >> +>> endobj +1396 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 434.072 307.307 441.015] +/Subtype /Link +/A << /S /GoTo /D (890) >> +>> endobj +1397 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 434.072 521.32 441.015] +/Subtype /Link +/A << /S /GoTo /D (890) >> +>> endobj +1398 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 421.121 323.447 428.064] +/Subtype /Link +/A << /S /GoTo /D (903) >> +>> endobj +1399 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 421.121 521.32 428.064] +/Subtype /Link +/A << /S /GoTo /D (903) >> +>> endobj +1400 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 408.169 323.447 415.112] +/Subtype /Link +/A << /S /GoTo /D (907) >> +>> endobj +1401 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 408.169 521.32 415.112] +/Subtype /Link +/A << /S /GoTo /D (907) >> +>> endobj +1402 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 393.999 307.307 402.161] +/Subtype /Link +/A << /S /GoTo /D (911) >> +>> endobj +1403 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 393.999 521.32 402.161] +/Subtype /Link +/A << /S /GoTo /D (911) >> +>> endobj +1404 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 381.047 275.028 389.209] +/Subtype /Link +/A << /S /GoTo /D (916) >> +>> endobj +1405 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 381.047 521.32 389.209] +/Subtype /Link +/A << /S /GoTo /D (916) >> +>> endobj +1406 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 369.315 268.612 376.258] +/Subtype /Link +/A << /S /GoTo /D (920) >> +>> endobj +1407 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 369.315 521.32 376.258] +/Subtype /Link +/A << /S /GoTo /D (920) >> +>> endobj +1408 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 354.395 257.982 363.307] +/Subtype /Link +/A << /S /GoTo /D (925) >> +>> endobj +1409 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 354.395 521.32 363.307] +/Subtype /Link +/A << /S /GoTo /D (925) >> +>> endobj +1410 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 342.552 285.788 350.355] +/Subtype /Link +/A << /S /GoTo /D (968) >> +>> endobj +1411 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 342.552 521.32 350.355] +/Subtype /Link +/A << /S /GoTo /D (968) >> +>> endobj +1412 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 329.241 280.408 337.404] +/Subtype /Link +/A << /S /GoTo /D (974) >> +>> endobj +1413 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 329.241 521.32 337.404] +/Subtype /Link +/A << /S /GoTo /D (974) >> +>> endobj +1414 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 317.509 280.408 324.452] +/Subtype /Link +/A << /S /GoTo /D (980) >> +>> endobj +1415 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 317.509 521.32 324.452] +/Subtype /Link +/A << /S /GoTo /D (980) >> +>> endobj +1416 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 303.339 291.168 311.501] +/Subtype /Link +/A << /S /GoTo /D (986) >> +>> endobj +1417 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 303.339 521.32 311.501] +/Subtype /Link +/A << /S /GoTo /D (986) >> +>> endobj +1418 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 291.607 291.168 298.549] +/Subtype /Link +/A << /S /GoTo /D (990) >> +>> endobj +1419 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 291.607 521.32 298.549] +/Subtype /Link +/A << /S /GoTo /D (990) >> +>> endobj +1420 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 278.655 307.307 285.598] +/Subtype /Link +/A << /S /GoTo /D (995) >> +>> endobj +1421 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 278.655 521.32 285.598] +/Subtype /Link +/A << /S /GoTo /D (995) >> +>> endobj +1422 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 265.704 323.447 272.646] +/Subtype /Link +/A << /S /GoTo /D (1008) >> +>> endobj +1423 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 265.704 521.32 272.646] +/Subtype /Link +/A << /S /GoTo /D (1008) >> +>> endobj +1424 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 252.752 323.447 259.695] +/Subtype /Link +/A << /S /GoTo /D (1012) >> +>> endobj +1425 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 252.752 521.32 259.695] +/Subtype /Link +/A << /S /GoTo /D (1012) >> +>> endobj +1426 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 238.581 307.307 246.744] +/Subtype /Link +/A << /S /GoTo /D (1016) >> +>> endobj +1427 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 238.581 521.32 246.744] +/Subtype /Link +/A << /S /GoTo /D (1016) >> +>> endobj +1428 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 226.849 257.852 233.792] +/Subtype /Link +/A << /S /GoTo /D (1021) >> +>> endobj +1429 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 226.849 521.32 233.792] +/Subtype /Link +/A << /S /GoTo /D (1021) >> +>> endobj +1430 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 211.929 257.982 220.841] +/Subtype /Link +/A << /S /GoTo /D (1029) >> +>> endobj +1431 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 211.929 521.32 220.841] +/Subtype /Link +/A << /S /GoTo /D (1029) >> +>> endobj +1432 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 200.086 285.788 207.889] +/Subtype /Link +/A << /S /GoTo /D (1055) >> +>> endobj +1433 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 200.086 521.32 207.889] +/Subtype /Link +/A << /S /GoTo /D (1055) >> +>> endobj +1434 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 186.776 275.028 194.938] +/Subtype /Link +/A << /S /GoTo /D (1060) >> +>> endobj +1435 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 186.776 521.32 194.938] +/Subtype /Link +/A << /S /GoTo /D (1060) >> +>> endobj +1436 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 173.824 301.927 181.986] +/Subtype /Link +/A << /S /GoTo /D (1069) >> +>> endobj +1437 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 173.824 521.32 181.986] +/Subtype /Link +/A << /S /GoTo /D (1069) >> +>> endobj +1438 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 162.092 285.788 169.035] +/Subtype /Link +/A << /S /GoTo /D (1081) >> +>> endobj +1439 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 162.092 521.32 169.035] +/Subtype /Link +/A << /S /GoTo /D (1081) >> +>> endobj +1440 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 149.141 275.028 156.084] +/Subtype /Link +/A << /S /GoTo /D (1087) >> +>> endobj +1441 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 149.141 521.32 156.084] +/Subtype /Link +/A << /S /GoTo /D (1087) >> +>> endobj +1442 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 134.97 241.713 143.132] +/Subtype /Link +/A << /S /GoTo /D (1093) >> +>> endobj +1443 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 134.97 521.32 143.132] +/Subtype /Link +/A << /S /GoTo /D (1093) >> +>> endobj +1444 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 121.269 257.982 130.181] +/Subtype /Link +/A << /S /GoTo /D (1102) >> +>> endobj +1445 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 121.269 521.32 130.181] +/Subtype /Link +/A << /S /GoTo /D (1102) >> +>> endobj +1446 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 109.426 285.788 117.229] +/Subtype /Link +/A << /S /GoTo /D (1121) >> +>> endobj +1447 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 109.426 521.32 117.229] +/Subtype /Link +/A << /S /GoTo /D (1121) >> +>> endobj +1448 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 96.116 275.028 104.278] +/Subtype /Link +/A << /S /GoTo /D (1138) >> +>> endobj +1449 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 96.116 521.32 104.278] +/Subtype /Link +/A << /S /GoTo /D (1138) >> +>> endobj +1345 0 obj << +/D [1343 0 R /XYZ 71.731 778.968 null] +>> endobj +1342 0 obj << +/Font << /F26 1184 0 R /F33 1203 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1504 0 obj << +/Length 48344 +/Filter /FlateDecode +>> +stream +xÚ¬Ý]dW~¥÷{} +^J“‘¯—¶fÆ‚¸¹0¢M–$ÂÝM‚]=p{Ÿ¬ØkG¬qžx(lÁ}´~'b«ùü3¿{ØþŸÇï^¯§íÿóúvxyûî‡?ýÝÃwÿºý'ÿËß=Ž'žžÞÏoïÛÿ|ã?üÝéôpx8½~÷»ãÃáýx¼ùÌãûãáøvúîw¯Ïo‡‡§—‡þçßÿÝú¯Ç—ïÞ7öôÝïÿå»<”g~ÿãÿù÷¿ÿ·/ÿðýþûOÿõtúîãý^¾=øzx;nËOüðó/;?r½u|:<<Ž'þéË×ûùÇgþî¿ü~¾Óñåép|yÿîêÖ×þøó´óU_^w¾¢<tý>¿ÈÛáéýtëEn¨çgï¨=x[}Ý>·'§ŽgY]wÔÓáéÕªçgï¨=¸£>oÏ?KõüìµwÔícx~‘êùÙ;jÞVß¶áIªãYV—Áuû¶_œz~öŽÚƒ;êö1ߤz~öŽÚƒ;êö1<Zõüìµo«ïÛÇððîÔñ,«ËàŽº}ÒüxòŽx=¶ã=ÞìùíÑ;bÍío‡ÓÛ£4ÏÏÞA{ð¦zzx8¼½•šgQ]wÔÓáôbÕó³wÔÜQ·Oáù$Õó³wÔÜQ·áéIªçgï¨=x[}Ü>†“Tdz¬.ƒ;êö1Ÿ¥z~öŽÚƒ;êö1<¾HõüìµwÔícx°êùÙ;jÞV·¸}}w¿ÁåYV—Áõ´ýñ›TÏÏÞQ{pG}>lêùÙ;jî¨o{ÿ<~C=?{GíÁÛêö‡—WùLçGÙì¹rûäß«çGï5·CnÀÓ£4ÏÏÞA{pGÝ>€“üÝf<{GíÁÛêÓö¥:žeuÜQ·OáQþ7ž½£öàŽº}òw›ñìµwÔ·Ãã»UÏÏÞQ{ð¶úüpxy“ߌgY]wÔÓáÑþ1ž½£öàŽú|xy±êùÙ;jî¨ÛÇð,ÏÞQ{ð¶ú²}Oòw›ñ,«ËàŽº}'«žŸ½£öàŽº}Gù{ÜxöŽÚƒ;êö1È_ÏÞ1kî6ùº}ò÷›ó£Löܹ} +2>ɳwÔÜQ·áɪçgï¨=¸£nƒŒOòìµoªÏÛÇ ÿ…vžEuÜQ·áѪçgï¨=¸£nƒŒOòìµwÔ×óüï™òìµo«‡‡·W¤·ßµn÷ÑχӽA˜‡®ßãñõÓ‹·§Žô—}ü×JÜ oþxØþÜŽ
úxÆ5è?þô¯_þòõs…~z:¼¾r…¾ý&üðQœ^Þi}ñ‡Ãûiï¯ò¥V†¯iÖÊW_Ó~üùE VFµ¹V6ꬕI]¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£ÎZ™Ôejeežke¯Ç°VVਕQ¬9®••™ZÑäZY¨—ZÔuke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹V6ꬕI]¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£ÎZ™Ôeke¥¦VFµ¹VVjjeT{ke¥¦VFµ±V6hje2{keEŽZÉšãZY™©•íA®••šZÕäZÙ¨³V&uäZY©©•QíA®••šZÕäZY©©•QíA®•:keR—A®••šZÕäZY©©•QíA®••šZÕäZÙ¨³V&uäZY©©•QíA®••šZÕÄZY¡£VF³æ°V6dje"{Žkee¦VF´¹VVjjeT{ke¥¦VFµ¹V6ꬕI]¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£ÎZ™Ôeke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹Vê¥VuäZY©©•QíA®••šZÕÄZY¡£VF³æ¸V6欕 ]¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£ÎZ™Ôeke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹V6ꬕI]¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£ÎZ™Ôeke¥¦VFµ±VV訕Ѭ9®••™ZÑäZÙ¨³V&uäZY©©•QíA®••šZÕäZY©©•QíA®•:keR—A®••šZÕäZY©©•QíA®••šZÕäZÙ¨³V&uäZY©©•QíA®••šZÕäZY©©•QíA®•:keR—A¬•:je4kŽkee¦VF´¹VVjjeT{ke£ÎZ™Ôeke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹Vê¥VuäZY©©•QíA®••šZÕäZY©©•QíA®•÷CZU+Ó{¤V¾zýZyÿ=¾ý«×÷1øí¿VÚùŽÙÛ?Qœ¾etÛŸe?þ^ºY+‡ò×ʧQ"ÿ¯úÃü³ÿñøË_>¥‡Ûåß?~)¹¼ÐçTyûz§T>=¿ýY¾ž<týõ|N O§ÃËñéÖ{ÜPÏÏÞQ{pG}9<~ü
§Ôó³wÔÜQß/V=?{GíÁÛêÓãö»/Nϲºî¨§ÃóÇßÁJ=?{GíÁõåððjÕó³wÔÜQßÏ/oR=?{GíÁÛêóö1<¿;u<Ëê2¸£nÓUÏÏÞQ{pGÝ>ù‹ÄùÑ;fÍíÛgðñ“”y~öÚƒ;?>`ûŽRϲºî¨Ûgðx”êùÙ;jî¨?OÁªçgï¨=È? A©ù
¨ö ÿ€£ÎÐ@ê2È? A©ù
¨ö ÿ€¥æä Õä“'¥æä Õä“'£Î“'R—A>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê<y"u¤“'ežOžP¼Ã“'Ž“'kŽOž”™“'D{Ož„z9yuä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'£Î“'R—A>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê<y"uä“'¥æä Õä“'¥æä Õä“'¥æä ÕÄ“'ƒæä‰ÌžÃ“'EŽ“'$kŽOž”™“'D{Ož”š“'T{OžŒ:OžH]ùäI©9yBµùäI©9yBµùäI©9yBµùäɨóä‰ÔeOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒ:OžH]ùäI©9yBµùäI©9yBµñäI¡ãä ͚Ó'Cæä‰Èžã“'eæä Ñä“'¥æä Õä“'¥æä Õä“'£Î“'R—A>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê<y"uä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'¡^Nž@]ùäI©9yBµùäI©9yBµñäI¡ãä Íšã“'cΓ'B—A>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê<y"uä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'£Î“'R—A>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê<y"uä“'¥æä ÕÄ“'…Ž“'4kŽOž”™“'D{OžŒ:OžH]ùäI©9yBµùäI©9yBµùäI©9yBµùäɨóä‰ÔeOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒ:OžH]ùäI©9yBµùäI©9yBµùäI©9yBµùäɨóä‰ÔeOž:NžÐ¬9>yRfNžíA>yRjNžPíA>y2ê<y"uä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'¡^Nž@]ùäI©9yBµùäI©9yBµùäI©9yBµùäiÿ G<Ñ{ääéê=ßöNžößã7þ€†Ç÷í7ƒ#ÿ€†ñÌå\éwÇ燿ÿç_þúó׿ýòåóùÒóù'6\>_ú8+ع_šÁ>¼Üö¯^n?Øÿü"쓺r°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÁ>©Ë ûJM°jr°¯Ôû¨ö ûJM°jr°oÔ쓺r°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÁ>©Ë ûÊ<û(^a°¯Àì£Xsì+3Á>¢=ÈÁ¾P/Á>¨ë ûJM°jr°¯Ôû¨ö ûJM°jr°oÔ쓺r°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÁ>©Ë ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠÁ>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qg°Oê2ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤.ƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qg°Oê2ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BG°fÍa°oÈûDöûÊL°hr°¯Ôû¨ö ûJM°jr°oÔ쓺r°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÁ>©Ë ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°ê:ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BG°fÍq°oÌìºr°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÁ>©Ë ûJM°jr°¯Ôû¨ö ûJM°jr°oÔ쓺r°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÁ>©Ë ûJM°jb°¯Ðì£Ysì+3Á>¢=ÈÁ¾Qg°Oê2ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤.ƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qg°Oê2ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤.ƒì+tûhÖûÊL°hr°¯Ôû¨ö ûFÁ>©Ë ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°ê:ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìï'è*ا÷H°õûÁþþ{üÆ`ÿáåp|zä`<Ã?£ä8~É÷ßÿô矾~ÿýçŸS²ýQçùø>û§/_ÿíçoU¬¯MÎåµnü¤’§½ÒvðUÍ®õê«ÚïZ?¿t¨ö wF]+©Ë uÊ<w(^aתÀѵ¢Xsܵ*3]+¢=È]«P/]+¨ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jb×jÐtdövŠ]+’5Ç]«2Óµ"ڃܵ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=ˆ]«BG׊fÍa×jÈtDöwÊL׊hrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×*ÔK× +ê:È]«RÓµ¢ÚƒÜµ*5]+ª=ˆ]«BG׊fÍq×jÌÙµºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jbתÐѵ¢Ysܵ*3]+¢=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒØµ*tthÖwÊL׊hrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×*ÔK× +ê:È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµî÷–ªk¥÷H×zõû]ëþ{,]ë‘»Ö—÷æ»Ö<ãºÖ¿þòã¾~ù\µžž¯¯µn¿ ?ß¾»z§ÏQëûiï¯òü.¼ô5å¡ë¯i÷»ðÞx‘ýïÂËjâwáUj¾/ªË ~^§ŽïÂËjâwáuꨕYíA¬•:jeV{ke¥¦VFu„ZÙ™ßje¯Ç¨Vvà¹Vf±æ°Vv樕íA¬•:keR×A¬•:jeV{ke§ŽZ™ÕÄZÙ©£Vfµ±VVjjeT—A¬•:jeV{ke§ŽZ™ÕÄZÙ©£Vfµ±VVjjeT—A¬•:jeV{ke§ŽZ™ÕÄZÙ©£Vfµ©VV訕Ñì9ª•y®•™¬9¬•9jeF{ke§ŽZ™ÕÄZY©©•Q]±VvꨕYíA¬•:jeV{ke§ŽZ™ÕÄZY©©•Q]±VvꨕYíA¬•:jeV{ke§ŽZ™ÕÄZY©©•Q]±VvꨕYíA¬•:jeV{je‡žke6kŽjeEŽZÉžÃZÙ™£Vf´±VvꨕYíA¬•:jeV{ke¥¦VFuÄZÙ©£Vfµ±VvꨕYíA¬•:jeV{ke¥¦VFuÄZÙ©£Vfµ±VvꨕYíA¬•:jeV{ke£ÎZ™Ôuke§ŽZ™ÕÄZÙ©£Vfµ©Vvè¹Vf³æ°VVfjeD—A¬•:jeV{ke§ŽZ™ÕÄZÙ©£Vfµ±VVjjeT—A¬•:jeV{ke§ŽZ™ÕÄZÙ©£Vfµ±VVjjeT—A¬•:jeV{ke§ŽZ™ÕÄZÙ©£Vfµ±VVjjeT—A¬•:jeV{je‡žke6kkegŽZ™ÑÄZY©©•Q]±VvꨕYíA¬•:jeV{ke§ŽZ™ÕÄZY©©•Q]±VvꨕYíA¬•:jeV{ke§ŽZ™ÕÄZY©©•Q]±VvꨕYíA¬•:jeV{ke§ŽZ™ÕÄZY©©•Q]©Vvè¹Vf³æ°Vv樕íA¬•:jeV{ke¥¦VFuÄZÙ©£Vfµ±VvꨕYíA¬•:jeV{ke£ÎZ™Ôuke§ŽZ™ÕÄZÙ©£Vfµ±VvꨕYíA¬•!¤5µ2¾Çxèú=vkexßö]x_¶ßN§7®•Ç3®Vþáç_þö¹U>>¹U~y:'*—7úü—øõ´ûx_^w¾¢<tý}Ž _ÞOï§[/rC=?{GíÁBúaû‹øäÔñ,«ËàŽz:<½ZõüìµwÔ‘Œ+5
:ª=È
ºRÓ £ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2H
º2Ï
:Š×cØ +p4è(Ö7èÊLƒŽhrƒ.ÔKƒê:È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒØ 4
:™=‡
º"GƒŽdÍqƒ®Ì4èˆö 7èJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èF
:©Ë 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjbƒ®ÐÑ £YsØ 2
:‘=Ç
º2Ó #ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ õÒ ƒºrƒ®Ô4è¨ö 7èJMƒŽjbƒ®ÐÑ £YsÜ s6è„.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2È
ºRÓ £ÚƒØ +t4èhÖ7èÊLƒŽhrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èF
:©Ë 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èF
:©Ë 6è +
:š5Ç
º2Ó #ÚƒÜ +5
:ª=È
ºQgƒNê2È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ õÒ ƒºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èH‹Þ#
úÕ{ì7èûïñ¿cöö‚Æ}<ãô?ýá‡Ï úãÛö÷'èÏo‡·ÿfóòBë[§ãn‚þxxøöçø‚òÐõt#A?ž?þÞ繡žŸ½£öàŽúQÇ[õüìµ9·Wjr{T{s{£ÎÜžÔes{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÌíI]9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£ÎÜžÔer{ežs{¯Ç0·WàÈíQ¬9Îí•™ÜÑäÜ^¨—ÜÔus{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÌíI]9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£ÎÜžÔes{¥&·Gµ9·Wjr{T{s{¥&·Gµ1·7hr{2{s{EŽÜÉšãÜ^™ÉííAÎ핚ÜÕäÜÞ¨3·'uäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎí:s{R—AÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨3·'uäÜ^©ÉíQíAÎ핚ÜÕÄÜ^¡#·G³æ0·7dr{"{Žs{e&·G´9·Wjr{T{s{¥&·Gµ9·7êÌíI]9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£ÎÜžÔes{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·ê%·uäÜ^©ÉíQíAÎ핚ÜÕÄÜ^¡#·G³æ8·7æÌí ]9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£ÎÜžÔes{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÌíI]9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£ÎÜžÔes{¥&·Gµ1·WèÈíѬ9Îí•™ÜÑäÜÞ¨3·'uäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎí:s{R—AÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨3·'uäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎí:s{R—AÌí:r{4kŽs{e&·G´9·Wjr{T{s{£ÎÜžÔes{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·ê%·uäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎí÷cp•ÛÓ{$·¿zýÜ~ÿ=¾ý«×÷1Hßòýãÿ[F÷ütØþdy;·åÎíSÓÿûÓŸ¾|ýõ§Ñýó¹²<?÷üÃ_þò9ºÿøãæ…¼ñîÛ¯®o{ÑýóÛáÛ¯YðUg®¿¨úèò?¿„þ„.ƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QgèOê2È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu†þ¤.ƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QgèOê2H¡¿2Ï¡?Š×cú+p„þ(Ö‡þÊLèhrè/ÔKèê:È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu†þ¤.ƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QgèOê2È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒú4¡?™=‡¡¿"GèdÍqè¯Ì„þˆö ‡þJMèjrèoÔú“ºrè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þF¡?©Ë ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“ºrè¯Ô„þ¨ö ‡þJMèjbè¯Ðú£Ysú2¡?‘=Ç¡¿2ú#Úƒú+5¡?ª=È¡¿Rú£Úƒúu†þ¤.ƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QgèOê2È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúõúƒºrè¯Ô„þ¨ö ‡þJMèjbè¯Ðú£Ysús†þ„.ƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QgèOê2È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu†þ¤.ƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QgèOê2È¡¿Rú£Úƒú+t„þhÖ‡þÊLèhrèoÔú“ºrè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þF¡?©Ë ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“ºrè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þF¡?©Ë †þ +¡?š5Ç¡¿2ú#Úƒú+5¡?ª=È¡¿QgèOê2È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúõúƒºrè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þûº +ýé=ú_½Ç~è¿ÿ¿ñûê?=ž¶ÿ¿¯þxæ’çÿîøüð÷ÿüëÏ_þú·_¾ÜÌõ?¾ÑþÕøç\ÿùésýG~¹<týrûÁþç`ŸÔeƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöI]9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£Î`ŸÔeƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöI])ØWæ9ØGñzƒ}Ž`Åšã`_™ öíAö…z öA]9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£Î`ŸÔeƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöI]9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}ƒ&Ø'³ç0ØWäö‘¬9ö•™`Ñä`_© öQíAö:ƒ}R—Aö•š`Õä`_© öQíAö•š`Õä`ߨ3Ø'uä`_© öQíAö•š`Õä`_© öQíAö:ƒ}R—Aö•š`Õä`_© öQíAö:‚}4kƒ}C&Ø'²ç8ØWf‚}D{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£Î`ŸÔeƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöI]9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}P×Aö•š`Õä`_© öQíAö:‚}4kŽƒ}cÎ`ŸÐeƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöI]9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£Î`ŸÔeƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöI]9ØWj‚}T{ƒ}…Ž`Íšã`_™ öíAö:ƒ}R—Aö•š`Õä`_© öQíAö•š`Õä`ߨ3Ø'uä`_© öQíAö•š`Õä`_© öQíAö:ƒ}R—Aö•š`Õä`_© öQíAö•š`Õä`ߨ3Ø'uÄ`_¡#ØG³æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöI]9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}P×Aö•š`Õä`_© öQíAö•š`Õä`?AWÁ>½G‚ý«÷x|ßö÷ßc öïûÇîýÈÁþx†¿3ÿq|Çýï¿ÿéÏ?}ýþûÏߘû£Îó1ߘÿŸ¾|ý·Ÿ¼U±¾~49—×úœú?>í•þ³k…¯jvW_Õ~×úù= kEµ¹k5êìZI]©kUæ¹kEñz»VŽ®Åšã®U™éZíAîZ…zéZA]¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£Î®•Ôe»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êìZI]¹kUjºVT{»V¥¦kEµ¹kUjºVT{»Vƒ¦k%³ç°kUäèZ‘¬9îZ•™®Ñä®U©éZQíAîZ:»VR—AîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨³k%uä®U©éZQíAîZ•š®Õä®U©éZQíAîZ:»VR—AîZ•š®Õä®U©éZQíAìZ:ºV4k»VC¦k%²ç¸kUfºVD{»V¥¦kEµ¹kUjºVT{»V£Î®•Ôe»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êìZI]¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V¡^ºVP×AîZ•š®Õä®U©éZQíAìZ:ºV4kŽ»Vcή•Ðe»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êìZI]¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£Î®•Ôe»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êìZI]¹kUjºVT{»V…Ž®Íšã®U™éZíAîZ:»VR—AîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨³k%uä®U©éZQíAîZ•š®Õä®U©éZQíAîZ:»VR—AîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨³k%uÄ®U¡£kE³æ¸kUfºVD{»V¥¦kEµ¹k5êìZI]¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V¡^ºVP×AîZ•š®Õä®U©éZQíAîZ•š®Õä®u¿·T]+½GºÖ«÷ØïZ÷ßã7vχç·GîZÇ3®kýòç~ýÛ/_ÿÛŸúú9m}y<¼¼pÚzzx<¼üÀåÍ>ÿ¥þø&Ü·ÿZ_R=øÊfªwõ•í§zŸ_R=T{S=¥&ÕCµ9Õ3êLõH]9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ1Õ3hR=2{S=EŽTÉšãTO™IõíANõ”šTÕäTϨ3Õ#uäTO©IõPíANõ”šTÕäTO©IõPíANõŒ:S=R—ANõ”šTÕäTO©IõPíANõ”šTÕäTϨ3Õ#uäTO©IõPíANõ”šTÕÄTO¡#ÕC³æ0Õ3dR="{ŽS=e&ÕC´9ÕSjR=T{S=¥&ÕCµ9Õ3êLõH]9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ9Õê%ÕuäTO©IõPíANõ”šTÕÄTO¡#ÕC³æ8Õ3æLõ]9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ9Õ3êLõH]9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ1ÕSèHõЬ9Nõ”™TÑäTϨ3Õ#uäTO©IõPíANõ”šTÕäTO©IõPíANõŒ:S=R—ANõ”šTÕäTO©IõPíANõ”šTÕäTϨ3Õ#uäTO©IõPíANõ”šTÕäTO©IõPíANõŒ:S=R—ALõ:R=4kŽS=e&ÕC´9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ9Õê%ÕuäTO©IõPíANõ”šTÕäTO©IõPíANõ¨©½GR½«÷ØOõößcIõŽwR½OúøÎ©ÞxÆ¥z?~ùJõ.oöïKõà+›©ÞÕW¶Ÿê}~HõPíANõ”šTÕäTϨ3Õ#uäTO©IõPíANõ”šTÕäTO©IõPíANõŒ:S=R—ANõ”šTÕäTO©IõPíANõ”šTÕÄTÏ IõÈì9Lõ9R=$kŽS=e&ÕC´9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ9Õ3êLõH]9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=…ŽTÍšÃTÏIõˆì9Nõ”™TÑäTO©IõPíANõ”šTÕäTϨ3Õ#uäTO©IõPíANõ”šTÕäTO©IõPíANõŒ:S=R—ANõ”šTÕäTO©IõPíANõ”šTÕäTO¨—TÔuS=¥&ÕCµ9ÕSjR=T{S=…ŽTÍšãTϘ3Õ#täTO©IõPíANõ”šTÕäTO©IõPíANõŒ:S=R—ANõ”šTÕäTO©IõPíANõ”šTÕäTϨ3Õ#uäTO©IõPíANõ”šTÕäTO©IõPíANõŒ:S=R—ANõ”šTÕÄTO¡#ÕC³æ8ÕSfR=D{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ9Õ3êLõH]9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£ÎTÔeS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ9Õ3êLõH]1ÕSèHõЬ9Nõ”™TÑäTO©IõPíANõŒ:S=R—ANõ”šTÕäTO©IõPíANõ”šTÕäTO¨—TÔuS=¥&ÕCµ9ÕSjR=T{S=¥&ÕCµ9Õ£~L¤zôIõ®Þc?ÕÛßö]õžßÞ·_Þ0ÕË3.Õûë/?þáë—Ï•ÞééðúÊ?*zûMøáøöÝÕ;}þQÑï§½¿ÊÿëïÿØH_Sºþš>ÿpá×·ÃÓó˹¡žŸ½£öàÎO¨Þ¾º'©ŽgY]wÔÓaûC¾TÏÏÞQ{pG=ÿÈn§ŽŸÎjâÏ +ê:È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ4]+™=‡]«"G׊dÍqתÌtˆö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jbתÐѵ¢Ysص2]+‘=Ç]«2Óµ"ڃܵ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ +õÒµ‚ºrתÔt¨ö wJM׊jbתÐѵ¢Ysܵsv„.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒØµ*tthÖwÊL׊hr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë v +]+š5Ç]«2Óµ"ڃܵ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ +õÒµ‚ºrתÔt¨ö wJM׊jrתÔt¨ö wû½¥êZé=Òµ^½Ç~׺ÿ¿±k=>ÞܵŽg\×úË—?ý÷_úúåÿ_×zyW× +_ÕìZ¯¾ªý®õó{@׊jr×jÔÙµ’ºRתÌs׊âõv +]+Š5Ç]«2Óµ"ڃܵ +õÒµ‚ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö vM×JfÏaתÈѵ"Ysܵ*3]+¢=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tthÖv†L×JdÏqתÌtˆö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wB½t ®ƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tthÖwÆœ]+¡Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö v +]+š5Ç]«2Óµ"ڃܵuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2ˆ]«BG׊fÍqתÌtˆö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wB½t ®ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]ë~o©ºVztWïq|ÜëZ÷ßcéZwºÖM}ß~eÆ®u<ãºÖ¿üúе^^ëßÕµÂW5»Ö«¯j¿kýüе¢ÚƒÜµuv¤.ƒÔµ*óܵ¢x=†]«G׊bÍqתÌtˆö wB½t ®ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=ˆ]«AÓµ’Ùsص*rtHÖwÊL׊hrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö v +]+š5‡]«!ÓµÙsܵ*3]+¢=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«P/]+¨ë wJM׊jrתÔt¨ö v +]+š5Ç]«1g×Jè2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qg×Jê2È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=ˆ]«BG׊fÍqתÌtˆö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºrתÔt¨ö wJM׊jrתÔt¨ö wF]+©Ë wJM׊jrתÔt¨ö wJM׊jr×jÔÙµ’ºbתÐѵ¢Ysܵ*3]+¢=È]«RÓµ¢ÚƒÜµuv¤.ƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«P/]+¨ë wJM׊jrתÔt¨ö wJM׊jr׺ß[ª®•Þ#]ëÕ{ìwûïñÛ¾_ëÓûûáaûºÖ<#¿_ë_ÿï?þôÃùó¿þí—¯ŸãÖí·÷§ãƧíÅ_¶¿ØWïö9n}9½íüÕžQ}myèúkÛºn¼È~ÔÅjbÔåÔu±Úƒu)5QªË F]NQ«=ˆQ—SGÔÅjbÔåÔu±Úƒu)tD]höE]Ž<G]LÖF]ÎQ£=ˆQ—SGÔÅjbÔ¥ÔD]¨.ƒu9uD]¬ö F]NQ«=ˆQ—SGÔÅjbÔ¥ÔD]¨.ƒu9uD]¬ö F]NQ«=ˆQ—SGÔÅjbÔ¥ÔD]¨.ƒu9uD]¬ö F]NQ«=HQ—CÏQ›5GQ—"GÔ…dÏaÔåÌu1Úƒu9uD]¬ö F]NQ«=ˆQ—Ru¡ºbÔåÔu±Úƒu9uD]¬ö F]NQ«=ˆQ—Ru¡ºbÔåÔu±Úƒu9uD]¬ö F]NQ«=ˆQ—QgÔEê:ˆQ—SGÔÅjbÔåÔu±Úƒu9ôu±Ysu)3Q¢Ë F]NQ«=ˆQ—SGÔÅjbÔåÔu±Úƒu)5QªË F]NQ«=ˆQ—SGÔÅjbÔåÔu±Úƒu)5QªË F]NQ«=ˆQ—SGÔÅjbÔåÔu±Úƒu)5QªË F]NQ«=HQ—CÏQ›5‡Q—3GÔÅhbÔ¥ÔD]¨.ƒu9uD]¬ö F]NQ«=ˆQ—SGÔÅjbÔ¥ÔD]¨.ƒu9uD]¬ö F]NQ«=ˆQ—SGÔÅjbÔ¥ÔD]¨.ƒu9uD]¬ö F]NQ«=ˆQ—SGÔÅjbÔ¥ÔD]¨.ƒu9ôu±Ysu9sD]Œö F]NQ«=ˆQ—Ru¡ºbÔåÔu±Úƒu9uD]¬ö F]NQ«=ˆQ—QgÔEê:ˆQ—SGÔÅjbÔåÔu±Úƒu9uD]¬ö F]Й¨ßc<tý»Q¼Çoûf…Oo/‡‡—ŽºÆ3¿%êúÏ_þ¢®Ë»ýû¢.øÚfÔuõµíG]Ÿ_¢.T{£.¥&êBµ9ê2ꌺH]9êRj¢.T{£.¥&êBµ9êRj¢.T{£.ƒ&ê"³ç0êR䈺¬9Žº”™¨Ñä¨K©‰ºPíAŽºŒ:£.R—AŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨Ë¨3ê"uä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŽºŒ:£.R—AŽº”š¨Õä¨K©‰ºPíAŒº:¢.4k£.C&ê"²ç8êRf¢.D{£.¥&êBµ9êRj¢.T{£.£Î¨‹Ôe£.¥&êBµ9êRj¢.T{£.¥&êBµ9ê2ꌺH]9êRj¢.T{£.¥&êBµ9êRj¢.T{£.¡^¢.P×AŽº”š¨Õä¨K©‰ºPíAŒº:¢.4kŽ£.cΨ‹Ðe£.¥&êBµ9êRj¢.T{£.¥&êBµ9ê2ꌺH]9êRj¢.T{£.¥&êBµ9êRj¢.T{£.£Î¨‹Ôe£.¥&êBµ9êRj¢.T{£.¥&êBµ9ê2ꌺH]9êRj¢.T{£.…Ž¨Íšã¨K™‰ºíAŽºŒ:£.R—AŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨Ë¨3ê"uä¨K©‰ºPíAŽº”š¨Õä¨K©‰ºPíAŽºŒ:£.R—AŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨Ë¨3ê"uĨK¡#êB³æ8êRf¢.D{£.¥&êBµ9ê2ꌺH]9êRj¢.T{£.¥&êBµ9êRj¢.T{£.¡^¢.P×AŽº”š¨Õä¨K©‰ºPíAŽº”š¨Õä¨k¿3RQ½G¢®«÷غößã7~§®±³}ÒugdÔõëOÿã_¿ì«®íÏ÷ª®·í«{ýîêå>W]ÇÓûnÕ•Ò ¾¸Y:]}qû¥ÓçÒ‰ÔeK'¥¦tBµ¹tRjJ'T{K'¥¦tBµ±t2hJ'2{K'EŽÒ ÉšãÒI™)íA.”šÒ ÕäÒɨ³t"uäÒI©)PíA.”šÒ ÕäÒI©)PíA.Œ:K'R—A.”šÒ ÕäÒI©)PíA.”šÒ ÕäÒɨ³t"uäÒI©)PíA.”šÒ ÕÄÒI¡£tB³æ°t2dJ'"{ŽK'e¦tB´¹tRjJ'T{K'¥¦tBµ¹t2ê,H]¹tRjJ'T{K'¥¦tBµ¹tRjJ'T{K'£ÎÒ‰ÔeK'¥¦tBµ¹tRjJ'T{K'¥¦tBµ¹tê¥tuäÒI©)PíA.”šÒ ÕÄÒI¡£tB³æ¸t2æ,]¹tRjJ'T{K'¥¦tBµ¹tRjJ'T{K'£ÎÒ‰ÔeK'¥¦tBµ¹tRjJ'T{K'¥¦tBµ¹t2ê,H]¹tRjJ'T{K'¥¦tBµ¹tRjJ'T{K'£ÎÒ‰ÔeK'¥¦tBµ±tRè(Ь9.”™Ò ÑäÒɨ³t"uäÒI©)PíA.”šÒ ÕäÒI©)PíA.Œ:K'R—A.”šÒ ÕäÒI©)PíA.”šÒ ÕäÒɨ³t"uäÒI©)PíA.”šÒ ÕäÒI©)PíA.Œ:K'R—A,:J'4kŽK'e¦tB´¹tRjJ'T{K'£ÎÒ‰ÔeK'¥¦tBµ¹tRjJ'T{K'¥¦tBµ¹tê¥tuäÒI©)PíA.”šÒ ÕäÒI©)PíA.öÛU:Ñ{¤tºzýÒiÿ=~ã·¯zùøuãÄ¥Óxæ7•Nûß¿ê7”N——û÷•NðÅÍÒéê‹Û/>¿”N¤.ƒ\:)5¥ª=È¥“RS:¡Úƒ\:)5¥ª=ˆ¥“AS:‘ÙsX:)r”NHÖ—NÊLé„hré¤Ô”N¨ö —NF¥©Ë —NJMé„jré¤Ô”N¨ö —NJMé„jrédÔY:‘ºré¤Ô”N¨ö —NJMé„jré¤Ô”N¨ö —NF¥©Ë —NJMé„jré¤Ô”N¨ö –N +¥š5‡¥“!S:Ùs\:)3¥¢=È¥“RS:¡Úƒ\:)5¥ª=È¥“QgéDê2È¥“RS:¡Úƒ\:)5¥ª=È¥“RS:¡Úƒ\:u–N¤.ƒ\:)5¥ª=È¥“RS:¡Úƒ\:)5¥ª=È¥“P/¥¨ë —NJMé„jré¤Ô”N¨ö –N +¥š5Ç¥“1géDè2È¥“RS:¡Úƒ\:)5¥ª=È¥“RS:¡Úƒ\:u–N¤.ƒ\:)5¥ª=È¥“RS:¡Úƒ\:)5¥ª=È¥“QgéDê2È¥“RS:¡Úƒ\:)5¥ª=È¥“RS:¡Úƒ\:u–N¤.ƒ\:)5¥ª=ˆ¥“BGé„fÍqé¤Ì”Nˆö —NF¥©Ë —NJMé„jré¤Ô”N¨ö —NJMé„jrédÔY:‘ºré¤Ô”N¨ö —NJMé„jré¤Ô”N¨ö —NF¥©Ë —NJMé„jré¤Ô”N¨ö —NJMé„jrédÔY:‘ºbé¤ÐQ:¡Ys\:)3¥¢=È¥“RS:¡Úƒ\:u–N¤.ƒ\:)5¥ª=È¥“RS:¡Úƒ\:)5¥ª=È¥“P/¥¨ë —NJMé„jré¤Ô”N¨ö —NJMé„jré´ßÞ¨Ò‰Þ#¥ÓÕ{ì—Nûïñ¿§ÓöGãã‘K§ñŒ+þòÓ¿þùsßt|:<<bÞt|y:'*—7úü—øuûðö_ããËËáááÎW”‡®¿¢Ãçy;<½Ÿn½È
õüìµo«Û?m½¿=9u<Ëê2¸£žO¯V=?{GíÁõy{þYªçgï¨=¸£nÃó‹TÏÏÞQ{ð¶ºýÓÖû“Tdz¬.ƒ;êö1|ü³»RÏÏÞQ{pGÝ>†ã›TÏÏÞQ{pGÝ>†G«žŸ½£öàmuû®÷‡w§ŽgY]wÔícæÇ“wÄë±ïùðf¿ÈoÞkn‡|;œÞ¥y~öÚƒ·ÿäöÏYo¯G¥æYT×Áõt8½XõüìµwÔíSx>IõüìµwÔícxz’êùÙ;jîüÔÛíc8Iu<Ëê2¸£Ž¬Ôü\aT{®°Rós…QíAþ¹ÂJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 6èMƒNfÏaƒ®ÈÑ #YsÜ +3
:¢=È
ºRÓ £ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒØ +t4èhÖ6è†LƒNdÏqƒ®Ì4èˆö 7èJMƒŽjrƒ®Ô4è¨ö 7èF
:©Ë 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èB½4è ®ƒÜ +5
:ª=È
ºRÓ £ÚƒØ +t4èhÖ7èÆœ
:¡Ë 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èF
:©Ë 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 6è +
:š5Ç
º2Ó #ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2È
ºRÓ £ÚƒÜ +5
:ª=È
ºRÓ £ÚƒÜ u6è¤.ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQgƒNê2ˆ
ºBGƒŽfÍqƒ®Ì4èˆö 7èJMƒŽjrƒnÔÙ “ºrƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èB½4è ®ƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
:Ò¢A§÷Hƒ~õû
úþ{üÆýôQ~?rƒ>žq
úÿøòëOÿò·Ïú6òúÊúö›ðÃGqzy§Ïßdóý´÷WùR+Ã×4k嫯i¿Vþü"P+£Úƒ\+uÖʤ.ƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QgLê2Hµ²2ϵ2Š×cX++pÔÊ(Ö×ÊÊLŒhr,ÔKê:ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+uÖʤ.ƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QgLê2ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£ÚƒX+4µ2™=‡µ²"GŒdÍq¬ÌÔʈö ×ÊJMŒjrlÔY+“ºr¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊFµ2©Ë ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjrlÔY+“ºr¬ÔÔʨö ×ÊJMŒjb¬ÐQ+£YsX+2µ2‘=ǵ²2S+#Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+uÖʤ.ƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QgLê2ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+õR+ƒºr¬ÔÔʨö ×ÊJMŒjb¬ÐQ+£Ys\+sÖÊ„.ƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QgLê2ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+uÖʤ.ƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QgLê2ȵ²RS+£ÚƒX++tÔÊhÖ×ÊÊLŒhrlÔY+“ºr¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊFµ2©Ë ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjrlÔY+“ºr¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×ÊFµ2©Ë ÖÊ +µ2š5ǵ²2S+#Úƒ\++5µ2ª=ȵ²QgLê2ȵ²RS+£Úƒ\++5µ2ª=ȵ²RS+£Úƒ\+õR+ƒºr¬ÔÔʨö ×ÊJMŒjr¬ÔÔʨö ×Êû!ª•é=R+_½Ç~¼ÿ¿{zxÜþÉhû
ïqû£ÅÓíïªýøø~x~þø5åñíð¾ýÆ—7Ú¶/µòx(Ï|{£Ã?üîøüðZþö?üóÿþÛÿû¿ÿÃûñï¿ü??ý¿çÿ¿ÿôóýã—Oyáñõðôño^/è翊¯»9òñíðòíxé<týÒŸ;ÇÓæœN·^ä³:žeuÜQO‡—ã“TÏÏÞQ{pG}9<~ü½¬Ôó³wÔÜQ·áÁªçgï¨=x[}z<<¼¿8u<Ëê2¸£žÏ¿8(õüìµwÔ—ÃëUÏÏÞQ{pG};<o¿¸8õüìµo«ÏÛÇðüîÔñ,«ËàŽº}OV=?{GíÁuûä/çGï˜5·CnŸÁéQšçgï =¸ó“ ¶Ïà(Õñ,«ËàŽº}G©žŸ½£öàŽúñ£¬z~öŽÚƒü³”šŸý€jòÏ~0êüÙ¤.ƒü³”šŸý€jòÏ~Pj®©PíA¾¦Rj®©PíA¾¦2꼦"uäk*¥æš +Õäk*¥æš +Õäk*¥æš +Õäk*£Îk*R—Aº¦Ræùš +Åë1¼¦RฦB±æøšJ™¹¦B´ùšJ¨—k*P×A¾¦Rj®©PíA¾¦Rj®©PíA¾¦Rj®©PíA¾¦2꼦"uäk*¥æš +Õäk*¥æš +Õäk*¥æš +Õäk*£Îk*R—A¾¦Rj®©PíA¾¦Rj®©PíA¾¦Rj®©PíA¼¦2h®©Èì9¼¦R並B²æøšJ™¹¦B´ùšJ©¹¦BµùšÊ¨óšŠÔe¯©”šk*T{¯©”šk*T{¯©”šk*T{¯©Œ:¯©H]ùšJ©¹¦BµùšJ©¹¦BµùšJ©¹¦BµùšÊ¨óšŠÔe¯©”šk*T{¯©”šk*T{¯©:®©Ð¬9¼¦2d®©ˆì9¾¦Rf®©íA¾¦Rj®©PíA¾¦Rj®©PíA¾¦2꼦"uäk*¥æš +Õäk*¥æš +Õäk*¥æš +Õäk*£Îk*R—A¾¦Rj®©PíA¾¦Rj®©PíA¾¦Rj®©PíA¾¦êåš +Ôu¯©”šk*T{¯©”šk*T{¯©:®©Ð¬9¾¦2漦"täk*¥æš +Õäk*¥æš +Õäk*¥æš +Õäk*£Îk*R—A¾¦Rj®©PíA¾¦Rj®©PíA¾¦Rj®©PíA¾¦2꼦"uäk*¥æš +Õäk*¥æš +Õäk*¥æš +Õäk*£Îk*R—A¾¦Rj®©PíA¼¦R踦B³æøšJ™¹¦B´ùšÊ¨óšŠÔe¯©”šk*T{¯©”šk*T{¯©”šk*T{¯©Œ:¯©H]ùšJ©¹¦BµùšJ©¹¦BµùšJ©¹¦BµùšÊ¨óšŠÔe¯©”šk*T{¯©”šk*T{¯©”šk*T{¯©Œ:¯©H]ñšJ¡ãš +Íšãk*eæš +Ñäk*¥æš +Õäk*£Îk*R—A¾¦Rj®©PíA¾¦Rj®©PíA¾¦Rj®©PíA¾¦êåš +Ôu¯©”šk*T{¯©”šk*T{¯©”šk*T{¯©èH\SÑ{äšêúvé´wMµÿ¿;½Ž?×}»¦ºýó!¶¿}Oß~My8ž__nÿì‡ñPžùx£ÿö篿þüã_øúÓÏ^ßíqûÕàõã¿þ½l~þ‹ôðü²óWéñýtxýö¯IèÆC×ïtøü"/‡ãÇ¿Õøü"7Ôó³wÔÜQ߯ÿl¨Ôó³wÔ¼l>lÿ‡÷äÔ<‹ê:¸£nÃéEªçgï¨=¸£nÃñUªçgï¨=¸£¾íýŸõ
õüìµo«Û/ÛƒNϲºî¨§íŸÓÞ¥z~öŽÚƒ;êËöjV=?{GíÁõíðbÿ{ôŽYs·Éãǵè£3dzŒ.ƒ;êö¼XõüìµwÔí3x>JõüìµwÔqL«Ô\ç¢Úƒ|kÔyKê2È×¹JÍu.ª=È×¹JÍu.ª=È×¹JÍu.ª=È×¹F×¹¤.ƒ|«Ô\ç¢Úƒ|«Ô\ç¢Úƒ|«Ô\ç¢Úƒ|kÔyKê2È×¹JÍu.ª=ˆ×¹ +×¹hÖ_ç*3×¹ˆö _çu^ç’ºòu®Rs‹jòu®Rs‹jòu®Rs‹jòu®Qçu.©Ë _ç*5×¹¨ö _ç*5×¹¨ö _ç*5×¹¨ö _çu^ç’ºòu®Rs‹jòu®Rs‹jòu®Rs‹jòu®Qçu.©Ë ]ç*ó|‹âõ^ç*p\ç¢Xs|«Ì\ç"Úƒ|+ÔËu.¨ë _ç*5×¹¨ö _ç*5×¹¨ö _ç*5×¹¨ö _çu^ç’ºòu®Rs‹jòu®Rs‹jòu®Rs‹jòu®Qçu.©Ë _ç*5×¹¨ö _ç*5×¹¨ö _ç*5×¹¨ö ^ç4×¹dö^ç*r\ç"Ys|«Ì\ç"Úƒ|«Ô\ç¢Úƒ|kÔyKê2È×¹JÍu.ª=È×¹JÍu.ª=È×¹JÍu.ª=È×¹F×¹¤.ƒ|«Ô\ç¢Úƒ|«Ô\ç¢Úƒ|«Ô\ç¢Úƒ|kÔyKê2È×¹JÍu.ª=È×¹JÍu.ª=ˆ×¹ +×¹hÖ^ç2×¹Dö_ç*3×¹ˆö _ç*5×¹¨ö _ç*5×¹¨ö _çu^ç’ºòu®Rs‹jòu®Rs‹jòu®Rs‹jòu®Qçu.©Ë _ç*5×¹¨ö _ç*5×¹¨ö _ç*5×¹¨ö _ç +õrê:È×¹JÍu.ª=È×¹JÍu.ª=ˆ×¹ +×¹hÖ_çs^çºòu®Rs‹jòu®Rs‹jòu®Rs‹jòu®Qçu.©Ë _ç*5×¹¨ö _ç*5×¹¨ö _ç*5×¹¨ö _çu^ç’ºòu®Rs‹jòu®Rs‹jòu®Rs‹jòu®Qçu.©Ë _ç*5×¹¨ö ^ç*t\ç¢Ys|«Ì\ç"Úƒ|kÔyKê2È×¹JÍu.ª=È×¹JÍu.ª=È×¹JÍu.ª=È×¹F×¹¤.ƒ|«Ô\ç¢Úƒ|«Ô\ç¢Úƒ|«Ô\ç¢Úƒ|kÔyKê2È×¹JÍu.ª=È×¹JÍu.ª=È×¹JÍu.ª=È×¹F×¹¤.ƒx«Ðq‹fÍñu®2s‹hòu®Rs‹jòu®Qçu.©Ë _ç*5×¹¨ö _ç*5×¹¨ö _ç*5×¹¨ö _ç +õrê:È×¹JÍu.ª=È×¹JÍu.ª=È×¹JÍu.ª=È×¹tx*®sé=r{õû×¹ûïquûñ_+ݹÎýø¯§?rè:7Ï|¼Ñø!†ß~ áý럿]éþåÖµÝñéí»«ñõ
އíOÑ{?ÓpÜÂÑ»g®_m÷îÆkìßÂ!ºâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ9uܱڃx§ÔÜ¡ºâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ9uܱڃx§ÔÜ¡ºâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ9uܱڃx§ÔÜ¡ºâ-œSÇ-«=H·p=ß±YsxçÌqÇhâ-œRs‡ê2ˆ·pN·p¬ö ÞÂ9uܱڃxçÔqÇjâ-œRs‡ê2ˆ·pN·p¬ö ÞÂ9uܱڃxçÔqÇjâ-œRs‡ê2ˆ·pN·p¬ö ÞÂ9uܱڃxçÔqÇjâ-œRs‡ê2·pÎüvÇâõÝÂ9ð|ÇbÍá-œ3Ç-£=ˆ·pF·p¤®ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ)5·p¨.ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ)5·p¨.ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÝÂ)tÜ¡ÙstçÈó-“5‡·pηpŒö ÞÂ9uܱڃx§ÔÜ¡ºâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ9uܱڃx§ÔÜ¡ºâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ9uܱڃx§ÔÜ¡ºâ-œSÇ-«=ˆ·pN·p¬ö ÝÂ9ô|ÇfÍÑ-œ"Ç-’=‡·pηpŒö ÞÂ9uܱڃxçÔqÇjâ-œRs‡ê2ˆ·pN·p¬ö ÞÂ9uܱڃxçÔqÇjâ-œRs‡ê2ˆ·pN·p¬ö ÞÂ9uܱڃxçÔqÇjâ-œQç-©ë ÞÂ9uܱڃxçÔqÇjÒ-œCÏ·plÖÞÂ)3·pˆ.ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ)5·p¨.ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ)5·p¨.ƒxçÔqÇjâ-œSÇ-«=ˆ·pNÍ$«=ˆ·pJÍ-ªË ÞÂ9uܱڃtçÐó-›5‡·pηpŒö ÞÂ)5·p¨.ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ)5·p¨.ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ)5·p¨.ƒxçÔqÇjâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ)5·p¨.ƒtçÐó-›5‡·pηpŒö ÞÂ9uܱڃx§ÔÜ¡ºâ-œSÇ-«=ˆ·pN·p¬ö ÞÂ9uܱڃxgÔyGê:ˆ·pN·p¬ö ÞÂ9uܱڃxçÔqÇjâ-\w™[8|ñÐõ{ìÞÂÁ{|ûW¯ïO¹…{¼}·ýÅé[F÷úñ«Õéö-Üx(Ï|¼QîßÎ×pÿüëÏ_þú·_¾|>‡Ûþˆñ¨¼ì¯/±}Ïï{çpóÞob\½ßþ!ÆçCR—A>ÄPj1PíA<ÄPè8Ä@³æøC™9Ä@´ùèóƒÔe1”šCT{1”šCT{1”šCT{1Œ:1H]ùC©9Ä@µùC©9Ä@µùC©9Ä@µùèóƒÔe1”šCT{1”šCT{1”šCT{1Œ:1H]éC™çC¯ÇðCãÅšãCeæÑäC¡^1@]ùC©9Ä@µùC©9Ä@µùC©9Ä@µùèóƒÔe1”šCT{1”šCT{1”šCT{1Œ:1H]ùC©9Ä@µùC©9Ä@µùC©9Ä@µñà 9Ä ³çðC‘ãÉšãCeæÑäC¥æÕäC£ÎCR—A>ÄPj1PíA>ÄPj1PíA>ÄPj1PíA>Ä0ê<Ä uäC¥æÕäC¥æÕäC¥æÕäC£ÎCR—A>ÄPj1PíA>ÄPj1PíA<ÄPè8Ä@³æðÃ9Ä ²çøC™9Ä@´ùC©9Ä@µùC©9Ä@µùèóƒÔe1”šCT{1”šCT{1”šCT{1Œ:1H]ùC©9Ä@µùC©9Ä@µùC©9Ä@µùC¨—CP×A>ÄPj1PíA>ÄPj1PíA<ÄPè8Ä@³æøÃ˜óƒÐe1”šCT{1”šCT{1”šCT{1Œ:1H]ùC©9Ä@µùC©9Ä@µùC©9Ä@µùèóƒÔe1”šCT{1”šCT{1”šCT{1Œ:1H]ùC©9Ä@µñC¡ãÍšãCeæÑäC£ÎCR—A>ÄPj1PíA>ÄPj1PíA>ÄPj1PíA>Ä0ê<Ä uäC¥æÕäC¥æÕäC¥æÕäC£ÎCR—A>ÄPj1PíA>ÄPj1PíA>ÄPj1PíA>Ä0ê<Ä uÄC…ŽC4kŽ1”™CD{1”šCT{1Œ:1H]ùC©9Ä@µùC©9Ä@µùC©9Ä@µùC¨—CP×A>ÄPj1PíA>ÄPj1PíA>ÄPj1PíA>ÄØ¿+P‡ô9ĸzýCŒý÷X1Žw1^ž¶ßnùc<óùã?ùË¿þôËíŸLôñ¯YŸ¿»>_bœv1r' +]whÖÞ 2wDöß (3wˆö ß (5w¨ö ß (5w¨ö ß uß :ùN@©¹@µùN@©¹@µùN@©¹@µùNÀ¨ûN€Ô1ÈwJÍ +7É»ãlÓ€©6I¬9n6
™d“Èšã`S»×²ç¸Ö4dbM"kŽSMC¦Ô$²æ¸Ó4d2M"kŽ#MAîFÈžãBÓ 4‰¬9Î3
™:“Èšã6ÓI3‰¬93¹»L {Ž«LC&Ê$²æ8É4dŠL"k{L#®“Àë1Œ1…—¼ãÓ€ 1I¬9Î0
™ +“ÈšãÓI0‰¬90¹ûK {ŽëKC&¾$²æ8½4dÊK"kŽ»KC&»$²æ8ºän.ì9..
™à’ÈšãÜÒ©-‰¬9n-
™Ô’ÈšãÐò6yé,É1Ç•¥!YYsœX2…%‘5‡}¥W^IàõÇ•Üm%ˆ=Çe¥!VYsœU2U%‘5ÇM¥!“TYsT +r÷”@ö×”†LLIdÍqJiÈ””DÖw”†LFIdÍqD)ÈÝPÙs\P2%‘5Çù¤!SOYsÜN2é$‘5Çᤠw7 dÏq5iÈD“DÖ&“F\Å$×cÜK0¹$‰5DZ¤ w+ dÏq)iÈ„’DÖg’†L%IdÍq#iÈ$’DÖ’‚Ü}$=Çu¤!GYsœF2e$‘5Ç]¤!“EYsE +r7‘@ö‘†LIdÍqiÈÔDÖ·†L +IdÍq)ÈÝAÙsXAqE^qiÀ$Ö÷†LþHdÍqü(ÈÝ>Ùs\>2á#‘5ÇÙ£!S=YsÜ<2É#‘5ÇÁãmòÒ;“cŽkGC&v$²æ8u4dJG"kŽ;GC&s$²æ8r<ŒïTã/‘ÄñòÇ…ãáKŒÀññFàøôv÷vúÍÇõŒKßóÆÇûþmâxy±¿¬q„/lGŽW_ØQåøñ53G¯Ç0tTà*Q¬9n•™ØÑäÜQ¨—ÞÔ9ÈÅ£R“<¢Úƒ=*5Õ#ª=ÈÝ£R>¢Úƒœ>u·¤ŽA®•šüÕä +KT{K¥&²Dµ9³ê¥³uri©Ô¤–¨ö Ç–JMm‰jbo©Ð\¢Ysœ\s7—„ŽA®.•šìÕäðR©)/QíAn/•šøÕäüÒ¨»¿$ur©Ô$˜¨ö G˜JM…‰jr‡©Ô„˜¨ö §˜FÝ-&©ckL¥&ÇDµ9ÈTjŠLT{›L¥&ÊDµ9Ë4êî2Iƒ\f*5i&ª=ˆq¦BW‰fÍqŸ©Ìšˆö 'šFÝ&©c+M¥&ÓDµ9ÔTjJMT{[M¥&ÖDµ9×4êî5Iƒ\l*5É&ª=ÈѦRSm¢ÚƒÜm*5á&ª=Èé¦Qw»IêäzS©É7QíA8•š‚Õä†S©‰8QíAÎ8º;NRÇ –œ +])'š5Ç1§2Ss"ÚƒÜs*5A'ª=ÈI§QwÓIêäªS©É:QíA;•š²Õä¶S©‰;QíAÎ;…zé;Aƒ\x*5‰'ª=È‘§RSy¢ÚƒÜy*5¡'ª=È©çq„¨ZOzÄžWïq\{¿Çoü<ËÇ—»·×h¹žq¹ç¿ýüÿå-//ö—åžð…íÜóê;Ê=?¾Æaî‰âõæž +\¹'Š5ǹ§2“{"Úƒœ{ +õ’{‚:9÷TjrOT{sO¥&÷Dµ9÷TjrOT{sO£îÜ“Ô1ȹ§R“{¢Úƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{u瞤ŽAÎ=•šÜÕäÜS©É=QíAÎ=•šÜÕÄÜÓ É=Éì9Ì=¹rO$kŽsOe&÷D´9÷TjrOT{sO£îÜ“Ô1ȹ§R“{¢Úƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{u瞤ŽAÎ=•šÜÕäÜS©É=QíAÎ=•šÜÕäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jbî©Ð•{¢Ys˜{2¹'‘=ǹ§2“{"Úƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{u瞤ŽAÎ=•šÜÕäÜS©É=QíAÎ=•šÜÕäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jrî©Ô䞨ö çžB½äž ÎAÎ=•šÜÕäÜS©É=QíAÌ=ºrO4kŽsOcîÜ“Ð1ȹ§R“{¢Úƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{u瞤ŽAÎ=•šÜÕäÜS©É=QíAÎ=•šÜÕäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jrî©Ô䞨ö çžFݹ'©csO¥&÷Dµ1÷TèÊ=Ѭ9Î=•™ÜÑäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jrî©Ô䞨ö çžFݹ'©csO¥&÷Dµ9÷TjrOT{sO¥&÷Dµ9÷4êÎ=Iƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{*5¹'ª=ȹ§QwîIêÄÜS¡+÷D³æ8÷TfrOD{sO¥&÷Dµ9÷4êÎ=Iƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{*5¹'ª=ȹ§P/¹'¨ssO¥&÷Dµ9÷TjrOT{sO¥&÷Dµ9÷<ŽUîIï‘Üóê=ŽsÏã÷ø¹çûC¯œ{®g~ç{þñÛÏmîyy±¿,÷„/lçžW_ØQîùñ5sO¯Ç0÷TàÊ=Q¬9Î=•™ÜÑäÜS¨—ÜÔ9ȹ§R“{¢Úƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{u瞤ŽAÎ=•šÜÕäÜS©É=QíAÎ=•šÜÕäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jrî©Ô䞨ö æžMîIfÏaî©È•{"Ysœ{*3¹'¢=ȹ§R“{¢Úƒœ{u瞤ŽAÎ=•šÜÕäÜS©É=QíAÎ=•šÜÕäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jrî©Ô䞨ö çžFݹ'©csO¥&÷Dµ9÷TjrOT{sO…®ÜÍšÃÜÓÉ=‰ì9Î=•™ÜÑäÜS©É=QíAÎ=•šÜÕäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jrî©Ô䞨ö çžFݹ'©csO¥&÷Dµ9÷TjrOT{sO¥&÷Dµ9÷ê%÷urî©Ô䞨ö çžJMî‰jbî©Ð•{¢Ysœ{sçž„ŽAÎ=•šÜÕäÜS©É=QíAÎ=•šÜÕäÜÓ¨;÷$urî©Ô䞨ö çžJMî‰jrî©Ô䞨ö çžFݹ'©csO¥&÷Dµ9÷TjrOT{sO¥&÷Dµ9÷4êÎ=Iƒœ{*5¹'ª=ˆ¹§BWî‰fÍqî©Ì䞈ö çžFݹ'©csO¥&÷Dµ9÷TjrOT{sO¥&÷Dµ9÷4êÎ=Iƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{*5¹'ª=ȹ§QwîIêäÜS©É=QíAÎ=•šÜÕäÜS©É=QíAÎ=ºsORÇ æž +]¹'š5ǹ§2“{"Úƒœ{*5¹'ª=ȹ§QwîIêäÜS©É=QíAÎ=•šÜÕäÜS©É=QíAÎ=…zÉ=Aƒœ{*5¹'ª=ȹ§R“{¢Úƒœ{*5¹'ª=ȹçq„¨rOzäžWïñø|”{¿Çïž¾¬?×Ñs~º{~ÿ{Êã×÷xþ<÷\å™÷7úû_þéßþôí?üîñåþoÿîOøóŸ¿ýùCDxÿzúcÔÓß\Müµz{{> +6ïßî¾¼ÿ›fzµ<týjkÆÓ¯èéÁÏ^䣺žeu¨O§ßê¾Jõüì
µÔ×ÓïuV=?{CíÁõíîÕþÿxô†YsŸ“§ÿ<|ypæz–Ñ1x ž¾¯V=?{CíÁõô=xy”êùÙj¨§ïÂó“TÏÏÞP{ðsõéômx’êz–Õ1x ž¾
ÏR=?{CíÁõôm8ýöêÔó³7Ô<PO߆{«žŸ½¡öàçêóÃÝý×W§®gYƒêÓÝËÛ©žŸ½¡öàúzwÿŪçgo¨=x ¾Ý½Ø¿¯go¨=ø¹úrú6¼ÈßpÖ³¬ŽÁõômx¶êùÙj¨§oƒü›ÄùÑfͧïÁ“ü
g={íÁÏÕ×Ó÷àQªëYVÇàzú<ÈßæÖ³7Ô<POß…{«žŸ½¡öàúv÷üUþ6·ž½¡öàçê—û»¯oò¯àõ,«cð@=ýùá‹UÏÏÞP{ð@}9ýåosëÙj¨§oËümn={CíÁÏÕ·Ó·áYªëYVÇàzú6<ÉßæÖ³7Ô<PO߆GùÛÜzö†ÚƒêéÛð`Õó³7Ô<¸Ã;ß#*5ލŽA8ptæG¯ÇèÀÑçGk¹íA<p4ê>p$uâ£S×#«=ˆŽN]ެö 8:u8²Úƒxà¨Ô8¢:ñÀÑ©ëÀ‘ÕÄG§®GV{ºYíA<pTjQƒxàèÔuàÈjâ£S×#«=ˆŽN]ެö 8*t8¢ÙstàèÈó#“5‡ŽÎ\ŽŒö 8:u8²Úƒxà¨Ô8¢:ñÀÑ©ëÀ‘ÕÄG§®GV{ºYíA<pTjQƒxàèÔuàÈjâ£S×#«=ˆŽN]ެö 8*5ލŽA<ptê:pdµñÀÑ©ëÀ‘Õ¤G‡žÙ¬9:pTä:pD²çðÀÑ™ëÀ‘ÑÄG§®GV{ºYíA<pTjQƒxàèÔuàÈjâ£S×#«=ˆŽN]ެö 8*5ލŽA<ptê:pdµñÀÑ©ëÀ‘ÕÄG§®GV{ºIƒxàèÔuàÈjâ£S×#«=HŽ=8²Ysxà¨Ì8":ñÀÑ©ëÀ‘ÕÄG§®GV{ºYíA<pTjQƒxàèÔuàÈjâ£S×#«=ˆŽN]ެö 8*5ލŽA<ptê:pdµñÀÑ©ëÀ‘ÕÄG§®–ÕÄG¥æÀÕ1ˆŽN]ެö 8:ô|àÈfÍá£3×#£=ˆŽJÍ#ªcºYíA<ptê:pdµñÀÑ©ëÀ‘ÕÄG¥æÀÕ1ˆŽN]ެö 8:u8²ÚƒxàèÔuàÈjâ£RsàˆêÄG§®GV{ºYíA<ptê:pdµñÀQ©9pDuÒ£CÏŽlÖ8:s82ÚƒxàèÔuàÈjâ£RsàˆêÄG§®GV{ºYíA<ptê:pdµñÀѨûÀ‘Ô9ˆŽN]ެö 8:u8²ÚƒxàèÔuàÈjâ#íÝ>pÄ÷X]¿Çá#¼ÇÿôúõùžÅéŸ(ž~dt§¿[Ý?<}~à¸Ê3üó,žÖªøýùöó·_ÿð§ÿö?ÿ÷·üþñ§Z¼Ÿ_Þ¿‡ÜH~ŒJŸï¾¼\ÜO±ßÿ»ñÁ…ä®[ákÛuëÕ×v\·~|¨[QíA®[ºëVRÇ ÕÊ<×(^aݪÀU·¢Xs\·*3u+¢=Èu«P/u+¨sëV¥¦nEµ¹nUjêVT{ëV¥¦nEµ¹n5ê®[Iƒ\·*5u+ª=Èu«RS·¢Úƒ\·*5u+ª=Èu«QwÝJêäºU©©[QíA®[•šºÕäºU©©[QíA¬[
šº•̞úU‘«nE²æ¸nUfêVD{ëV¥¦nEµ¹n5ê®[Iƒ\·*5u+ª=Èu«RS·¢Úƒ\·*5u+ª=Èu«QwÝJêäºU©©[QíA®[•šºÕäºU©©[QíA®[ºëVRÇ ×JMÝŠjrݪÔÔ¨ö Ö +]u+š5‡u«!S·Ùs\·*3u+¢=Èu«RS·¢Úƒ\·*5u+ª=Èu«QwÝJêäºU©©[QíA®[•šºÕäºU©©[QíA®[ºëVRÇ ×JMÝŠjrݪÔÔ¨ö ×JMÝŠjrÝ*ÔKÝ +êäºU©©[QíA®[•šºÕĺU¡«nE³æ¸n5æ®[ ƒ\·*5u+ª=Èu«RS·¢Úƒ\·*5u+ª=Èu«QwÝJêäºU©©[QíA®[•šºÕäºU©©[QíA®[ºëVRÇ ×JMÝŠjrݪÔÔ¨ö ×JMÝŠjrÝjÔ]·’:¹nUjêVT{ëV…®ºÍšãºU™©[íA®[ºëVRÇ ×JMÝŠjrݪÔÔ¨ö ×JMÝŠjrÝjÔ]·’:¹nUjêVT{ëV¥¦nEµ¹nUjêVT{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\·uפŽA¬[ºêV4kŽëVe¦nE´¹nUjêVT{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\· +õR·‚:¹nUjêVT{ëV¥¦nEµ¹nUjêVT{ëV +.EÝJõê=ŽëÖã÷øÑfÜ¿ÿæN?¾ãëéuüãä—ç»ûׇÏëÖõPž¹ä¨?~zÇ?üúË÷_¾ÿû¿~ò<^Þs×Ç¿¹ŸopÿãC³òÔýqÔðrû㨯^îøã¨?¾|5©c?ŽZ©ù8jT{?ŽZ©ù8jT{?ŽZ©ù8jT{?ŽÚ¨ûã¨IƒüqÔJÍÇQ£ÚƒüqÔJÍÇQ£ÚƒüqÔJÍÇQ£ÚƒüqÔFÝGMêä£Vj>ŽÕä£Vj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+óì£x=†Á¾W°bÍq°¯Ìûˆö ûB½û ÎAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ1Ø7h‚}2{ƒ}E®`Éšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+tûhÖû†L°OdÏq°¯Ìûˆö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}…®`Íšã`ߘ;Ø'tr°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAöº‚}4kŽƒ}e&ØG´9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:1ØWè +öѬ9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAötìÓ{$Ø¿zã`ÿø=F°ÿp#Ø}¸{¸ÑëŸá£~̇Qÿþ§ŸúþûßüêÓt^¿®ÇþþÛ÷þåŸ>kX¿¼9û¥>vþÏ7?…úøKÚMëåK:NZ?¼DÖ÷¬‚Ü9+=G1«Ï-+qWSX²m…¬Ä]qÆjÀT¬$Ö7¬·ÉKÂzLŽ9X
™~•ÈšãzÕ‰W‰¬9NW
™r•ÈšãnU;[²ç8Z5dšU"kŽ‹UC&X%²æ8W5djU"kŽ[UAîTÈžãPÕéT‰¬9®T
™H•ÈšãDÕ)T‰¬9ìS…˜<ÀÃ8Õx«M%ïzŒËT&L%±æ8K5dªT"kŽ›TAî$Èžã ÕéQ‰¬9®Q
™•ÈšãÕ)Q‰¬9îP¹3T {Ž#TC¦A%²æ¸@5dT"kŽóSC¦>%²æ¸=äNOì9O
™î”ÈšãêÔ‰N‰¬9LN¸ŠS¯Ç°7^rSðjŒcS¦5%±æ¸45dBS"kŽ3SC¦2%²æ¸1äNLì9L
™¾”ÈšãºÔ‰K‰¬9NK
™²”Èšã®T;+²ç8*5dšR"kŽ‹RC&(%²æ8'5djR"kŽ[ÒÛä%%=&LJ¤†LGJdÍqEjÈD¤DÖ&¤F\)×cÜ +pç£ öÇ£†L;JdÍq9jÈ„£DÖg£†L5JdÍq3*ÈŒÙsŒ2½(‘5ǵ¨!‹YsœŠ2¥(‘5Ǩ w& +dÏq$jÈ4¢DÖ¢†L JdÍqjÈÔ¡DÖ·¡‚Üi(=Ça¨!Ó…YsX…qE¡^qjÀ¡$Ö÷ ‚Ü9(=Ç1¨!Ó‚Ys\‚2!(‘5Ǩ!SYsÜ€ +r' @ö †LÿIdÍqýiÈÄŸDÖ§Ÿ†LùIdÍq÷)È}Ùs}2Í'‘5Çŧ!|Ysœ{2µ'‘5ǧ wê dÏaèiÄÕyx=Æ•§y’Xsœx2…'‘5Ç}§ wÞ dÏqÜiÈ´DÖ—†LØIdÍqÖiÈTDÖ7·ÉKÒyLŽ9:
™ž“ÈšãšÓ‰9‰¬9N9
™’“ÈšãŽó°0T'¼D*ÎËKGœ‡/ñ?tùý¿Ôžþ†çzÆUœ¿~ûó·ïÎǯwO7 +Îׯçÿêwy¥¿ÀOO¯G
çþp]ø’ö‡ë^}IÇ®ûñEàÃuQíAþp]¥æÃuQíAþp]¥æÃuQíAþp]£î×%uò‡ë*5®‹jò‡ë*52ª=È%²R“"£Úƒ#u×ȤŽAê‘•y’Q¼Ã$Y«IF±æ¸JVf²dD{Ãd¡^ÊdPç ·ÉJMœŒjrž¬Ôôɨö ÊJM¢Œjr¤lÔ])“:¹SVjBeT{Se¥¦UFµ¹VVjreT{ƒe£îb™Ô1ÈͲR-£Úƒœ-+5Ý2ª=Èå²R“.£Úƒ/4õ2™=‡ý²"WÀŒdÍq¬Ì4̈ö WÌJMÆŒjrÈlÔ]2“:¹eVjbfT{sf¥¦gFµ¹hVj’fT{£f£îª™Ô1È]³R6£Úƒœ6+5m3ª=Èu³R“7£Úƒ8uΤŽAnœ•šÈÕäÌY©éœQíA,ºRg4kcgC¦v&²ç¸wVf‚gD{“g¥¦yFµ¹zVj²gT{Ãg£îò™Ô1Èí³R?£Úƒœ?+5ý3ª=È´R“@£ÚƒAuWФŽAî •šÕäZ©i¡QíA®¡•šÕä Z¨—"Ô9ÈM´RE£ÚƒœE+5]4ª=ˆe´BWfÍqmÌ]G:¹VjiT{i¥¦‘Fµ¹’Vj2iT{Ci£îRšÔ1È´RK£ÚƒœK+5½4ª=ÈÅ´R“L£ÚƒMuWÓ¤ŽAšpÕätZ©i§QíA®§•š|Õä€Ú¨» &urCÔDÔ¨ö fÔ +]5š5Ç%µ2“R#ÚƒSu×Ô¤ŽAî©•š Õä¤Z©iªQíA®ª•š¬Õä°Ú¨»¬&ur[ÔÄÕ¨ö çÕJM_jraÔ$Ö¨ö GÖFÝ•5©c;k¥&´Fµ9µVjZkT{kk¥&·Fµ9¸6ê.®IƒØ\+tE×hÖg×ÊLwhryԤרö Ç×FÝõ5©cûk¥&ÀFµ9ÁVjlT{+l¥&ÃFµ9Äê¥Äur‹ÔÄØ¨ö çØJMjr‘Ô$Ù¨ö GÙ
‹*›Þ#YöÕ{wÙÇïñ?\÷ô§ÊÇû/f¯g\˜ýi–ýðvúßgÙ/owoïÿfóòBóïž²ìׇ»ûî/(]AÈ×§»—÷ÿ¦÷ñE>QÏÏÞP{ð@}½»¿·êùÙj¨owÏ_Ÿ¤z~ö†Úƒ1øªãºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1H¹½2Ϲ=Š×c˜Û+påö(ÖçöÊLnhrn/ÔKnêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{ƒ&·'³ç0·WäÊ푬9Îí•™ÜÑäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ˆ¹½BWnfÍanoÈäöDöçöÊLnhrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛõ’Ûƒ:9·Wjr{T{s{¥&·Gµ1·WèÊíѬ9Îí¹s{BÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛuçö¤ŽAÎ핚ÜÕÄÜ^¡+·G³æ8·Wfr{D{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛuçö¤ŽAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{…®ÜÍšãÜ^™ÉííAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöB½äö ÎAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜþ8W¹=½Grû«÷x|9Êíßã7æö§ yåÜ~=ãrû?þ•¹ýå…þ²Ü¾ Û_}AǹýÇÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒ”Û+óœÛ£x=†¹½WnbÍqn¯Ìäöˆö çöB½äö ÎAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ1·7hr{2{s{E®ÜÉšãÜ^™ÉííAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£Úƒ˜Û+tåöhÖæö†LnOdÏqn¯Ìäöˆö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½P/¹=¨ss{¥&·Gµ9·Wjr{T{s{…®ÜÍšãÜÞ˜;·'trn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÌíºr{4kŽs{e&·G´9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:1·WèÊíѬ9Îí•™ÜÑäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrn/ÔKnêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎícp•ÛÓ{$·¿zãÜþø=Fnÿx#·¿ÿz÷tÿ̹ýzÆåö?ýË¿þé§oÿô1¹?ý™îô—&÷§ß™žïßþæê¥æ›¿ÿËô·£ä~'¼ðEí„÷ê‹:Nx?¾$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^ež^¯Ç0áUàJxQ¬9Nx•™„Ñä„W¨—„Ô9È ¯R“ð¢Úƒœð*5 /ª=È ¯R“ð¢Úƒœðu'¼¤ŽANx•š„Õä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö &¼MÂKfÏa«ȕð"Ysœð*3 /¢=È ¯R“ð¢Úƒœðu'¼¤ŽANx•š„Õä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^…®„͚Ä×Ix‰ì9Nx•™„Ñä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9áê%áur«Ô$¼¨ö '¼JM‹jb«Еð¢Ysœðs'¼„ŽANx•š„Õä„W©IxQíANx•š„Õä„ר;á%ur«Ô$¼¨ö '¼JM‹jr«Ô$¼¨ö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9á5êNxIƒœð*5 /ª=ˆ ¯BW‹fÍq«Ì$¼ˆö '¼FÝ /©c^¥&áEµ9áUj^T{^¥&áEµ9á5êNxIƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=È ¯QwÂKêä„W©IxQíANx•š„Õä„W©IxQíANxº^RÇ &¼ +] /š5Ç ¯2“ð"Úƒœð*5 /ª=È ¯QwÂKêä„W©IxQíANx•š„Õä„W©IxQíANx…zIxAƒœð*5 /ª=È ¯R“ð¢Úƒœð*5 /ª=È ïq\ª^z$¼Wïqœð¿ÇoûÄ쇯¯'õ Þ<ãÞ_¿ýá“~÷ñùîþûÝ×ç‰ÊÕ}ü%þrúàÑGf¿Bô¯(]E‡#ýÉ‹Œ4«=ˆ#Ô|Œ4ªc?FÚ©ëc¤YíAüi§®‘fµñc¤º>FšÕÄ‘VjtTÇ 6èN]
:«=ˆ
ºSWƒÎjbƒîÔÕ ³ÚƒØ +5
:ªctgþhÐY¼£ÝçÅšÃÝ™«Ag´±A7ênÐIƒØ ;u5è¬ö 6èN]
:«=ˆ
ºSWƒÎjbƒ®Ô4討AlкtV{t§®ÕÄÝ©«Agµ±AWjtTÇ 6èN]
:«=ˆ
ºSWƒÎjbƒîÔÕ ³ÚƒÔ +t5èhö5èŽ<7èLÖ6èÎ\
:£=ˆ
ºSWƒÎjbƒ®Ô4討AlкtV{t§®ÕÄÝ©«Agµ±AWjtTÇ 6èN]
:«=ˆ
ºSWƒÎjbƒîÔÕ ³ÚƒØ +5
:ªct§®ÕÄÝ©«Agµ©Awè¹Ag³æ¨AWäjБì9lйtF{t§®ÕÄÝ©«Agµ±AWjtTÇ 6èN]
:«=ˆ
ºSWƒÎjbƒîÔÕ ³ÚƒØ +5
:ªct§®ÕÄÝ©«Agµ±AwêjÐYíAlкtRç 6èN]
:«=ˆ
ºSWƒÎjRƒîÐsƒÎfÍaƒ®Ì4舎AlкtV{t§®ÕÄÝ©«Agµ±AWjtTÇ 6èN]
:«=ˆ
ºSWƒÎjbƒîÔÕ ³ÚƒØ +5
:ªct§®ÕÄÝ©«Agµ±AwêjÐYíAlЕšÕ1ˆ
ºSWƒÎjRƒîÐsƒÎfÍaƒîÌÕ 3ÚƒØ +5
:ªct§®ÕÄÝ©«Agµ±AwêjÐYíAlЕšÕ1ˆ
ºSWƒÎjbƒîÔÕ ³ÚƒØ ;u5è¬ö 6èJMƒŽêÄÝ©«Agµ±AwêjÐYíAlкtV{t¥¦AGuRƒîÐsƒÎfÍaƒîÌÕ 3ÚƒØ ;u5è¬ö 6èJMƒŽêÄÝ©«Agµ±AwêjÐYíAlкtV{t£îÔ9ˆ
ºSWƒÎjbƒîÔÕ ³ÚƒØ ;u5è¬ö 6èHßnÐñ=ÖC×ïqØ Ã{ü¶‘~xoKï¸A_ϸýÿþúÓ÷oŸDè_ïN´âýëù¿U^^éã¯ñÓÓëQ„¾Ãlø’v˜}õ%‡Ù_ÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA +³•y³Q¼Ã0[+ÌF±æ8ÌVfÂlD{Ãl¡^ÂlPç ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙJM˜jr˜mÔf“:9ÌVjÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒf4a6™=‡a¶"W˜dÍq˜Ì„Ùˆö ‡ÙJM˜jr˜mÔf“:9ÌVjÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³ºÂl4kÃlC&Ì&²ç8ÌVfÂlD{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0[¨—0Ô9Èa¶Rf£Úƒf+5a6ª=ˆa¶BW˜fÍq˜mÌf:9ÌVjÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0Û¨;Ì&ur˜Ô„Ù¨ö †Ù +]a6š5Ça¶2f#Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0Û¨;Ì&ur˜Ô„Ù¨ö ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙFÝa6©cÃl¥&ÌFµ9ÌVjÂlT{Ãl¥&ÌFµ9Ì6ê³Iƒf+t…ÙhÖ‡ÙÊL˜hr˜Ô„Ù¨ö ‡ÙFÝa6©cÃl¥&ÌFµ9ÌVjÂlT{Ãl¥&ÌFµ9Ìê%Ìur˜Ô„Ù¨ö ‡ÙJM˜jr˜Ô„Ù¨ö ‡Ù
‹0›Þ#aöÕ{‡ÙÇïñ?üô›üówÙçG\–ýý—ÿþýן~þãÇ2ûô—ÇiöéoØ_Þ‹œýRóÅOÿc8ütðµI»i½|IÇI뇗€¢•ÈšãžU;g²ç(f5à¹e%îj +KV£•¸ë1ÎX
˜Š•Äšã†õ6yIXÉ1Ç«!Ó¯Ys\¯2ñ*‘5Çéª!S®YsÜ +rg«@öG«†L³JdÍq±jÈ«DÖ窆LJdÍq«*ȪÙsª2*‘5Ç•ª!©Ysœ¨2…*‘5‡}ª“§Xc§oµ©ä]q™jÀ„©$Ög©†L•JdÍq“*ȤÙs¤2=*‘5Ç5ª!£Ysœ¢2%*‘5Ǫ w† +dÏq„jÈ4¨DÖ¨†L€JdÍq~jÈÔ§DÖ·§‚Üé)=Çá©!ÓYs\2Ñ)‘5‡É©WqJàõö¦ÂKn +^qljÀ´¦$Ö—¦†LhJdÍqfjÈT¦DÖ7¦‚܉)=Ç©!Ó—Ys\—2q)‘5Çi©!S–YsÜ• +rg¥@öG¥†LSJdÍqQjÈ¥DÖ礆LMJdÍqKz›¼¤¤Çä˜ãÔéH‰¬9®H
™ˆ”ȚÄԈ« %ðzŒûQî|ÄžãxÔiG‰¬9.G
™p”ÈšãlÔ©F‰¬9nF¹“Q {ŽƒQC¦%²æ¸5dbQ"kŽSQC¦%²æ¸äÎDì9ŽD
™F”ÈšãBÔ D‰¬9ÎC
™:”Èšã6T;
²ç85dºP"k«P#®(”Àë1NB
˜"”ÄšãT;²ç85dZP"kŽKPC&%²æ85d*P"kŽPAîÈžã +ÕäP© QíAN•šÕäP¨—Ô9ÈA RS¢ÚƒÜ*5Q ª=ˆY BWˆfÍqhÌ:9Tjê@T{û@¥&Dµ9TjAT{+A£îLÔ1È¡ RS +¢ÚƒÜ +*5± ª=ȹ RÓ¢Úƒ\u'ƒ¤ŽAŽ•šjÕänP© QíAN•švÕäzШ;$ur@¨Ô„¨ö 6„ +]!š5Ç¡2Ó"Úƒ\u§„¤ŽAŽ •ššÕäžP© +QíAN +•š¦ÕäªÐ¨;+$urX¨Ô”…¨ö ·…JM\ˆjr^¨Ôô…¨ö †F݉!©c#C¥¦2Dµ¹3TjBCT{SC¥¦5Dµ¹64êÎ
Iƒ*t‡hÖ7‡ÊLtˆhrv¨Ôt‡¨ö —‡FÝé!©cãC¥¦>Dµ¹?TjDT{D¥¦ADµ¹Bê%Curˆ¨Ô”ˆ¨ö ·ˆJMŒˆjrލÔôˆ¨ö ‰Ôʉ$‘Þ#MâÕ{G‰Çïñã?½~ýñá“%OÿDñô#£{~¾{yþòy•¸Ê3\%>Øð?ýòËŸ¾ýáçO>Zòýc!“$þÝŸþðç?(O.¹ÿ§æËK}üU>ýV}T$>¿Ý½¼¾ñ•‡®¿¨Møòpwÿòõ³ù¨®gYƒêÓéÿhÕó³7Ô<P_ïÞ+…þxô†Ysäé{ðô Íó³7Ðü\}=}¥ºžeu¨§ïÁãTÏÏÞP{ð@=}îz~ö†ÚƒêÛéïJOR=?{CíÁÏÕÓŸS¾¾É¿‚׳¬ŽÁõéô·"«žŸ½¡öàúrzþEªçgo¨=x ž¾
/¯R=?{CíÁƒø=}ž¥ºžeu¨§oÃûŸz•z~ö†ÚƒêúÈc¥æ#”QíAþe¥æS”QíAþe£îR&uÒG)+óüYÊ(^á§)+p}œ2Š5Ǩ¬Ì\o Úƒ|½!ÔËõ¨s¯7”šë
T{¯7”šë
T{¯7”šë
T{¯7Œº¯7Hƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½aÔ}½Aêäë
¥æzÕäë
¥æzÕäë
¥æzÕÄë
ƒæzƒÌžÃë
E®ë
$kޝ7”™ë
D{¯7”šë
T{¯7Œº¯7Hƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½aÔ}½Aêäë
¥æzÕäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö ^o(t]o Ysx½aÈ\oÙs|½¡Ì\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½aÔ}½Aêäë
¥æzÕäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö _o(5רö _oõr½êäë
¥æzÕäë
¥æzÕÄë
…®ë
4kޝ7Œ¹¯7ƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½aÔ}½Aêäë
¥æzÕäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö _o(5רö _ou_o:ùzC©¹Þ@µñzC¡ëzÍšãë
eæzÑäë
£îë
RÇ _o(5רö _o(5רö _o(5רö _ou_o:ùzC©¹Þ@µùzC©¹Þ@µùzC©¹Þ@µùzèûzƒÔ1È×JÍõª=È×JÍõª=È×JÍõª=È×FÝפŽA¼ÞPèºÞ@³æøzC™¹Þ@´ùzC©¹Þ@µùzèûzƒÔ1È×JÍõª=È×JÍõª=È×JÍõª=È×B½\o€:ùzC©¹Þ@µùzC©¹Þ@µùzC©¹Þ@µùzƒî +Äõ½G®7®Þãøzãø=ÆgJ?ÜøL駇ÓWÿÊŸ)½ž¹\]üîñåþoÿá×_¾ÿòýßÿõÛÇ+Œ—ó‡L_Ï7¸ÿqVpp…±ƒ}x¹ì_½Üq°ÿñE Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oê¤`_™ç`Åë1ö¸‚}kŽƒ}e&ØG´9Øê%Øur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾Aì“Ùsì+rûHÖûÊL°hr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`ÕÄ`_¡+ØG³æ0Ø7d‚}"{Žƒ}e&ØG´9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+tûhÖûÆÜÁ>¡cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jb°¯Ðì£Ysì+3Á>¢=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ˆÁ¾BW°fÍq°¯Ìûˆö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö ûJM°jr°œ «`ŸÞ#ÁþÕ{ûÇï1~ÜÂã·ððv÷úüÌ?na=ã~ÜÂýùû·?~ûõ¯úq——úË~Ü|QûÇ-\}QÇ?náã‹À[ uò[Pj~ܪ=ˆ?nA¡ëÇ- Ysüã”™ë
D{¯7Œº¯7Hƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½aÔ}½Aêäë
¥æzÕäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö _o(5רö _ou_o:ézC™çë
¯ÇðzCëzÅšãë
eæzÑäë
¡^®7@ƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½aÔ}½Aêäë
¥æzÕäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö _o(5רö ^o4×dö^o(r]o Ys|½¡Ì\o Úƒ|½¡Ô\o Úƒ|½aÔ}½Aêäë
¥æzÕäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö _o(5רö _ou_o:ùzC©¹Þ@µùzC©¹Þ@µñzC¡ëzÍšÃë
CæzƒÈžãë
eæzÑäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö _o(5רö _ou_o:ùzC©¹Þ@µùzC©¹Þ@µùzC©¹Þ@µùzC¨—ë
Pç _o(5רö _o(5רö ^o(t]o Ys|½aÌ}½Aèäë
¥æzÕäë
¥æzÕäë
¥æzÕäë
£îë
RÇ _o(5רö _o(5רö _o(5רö _ou_o:ùzC©¹Þ@µùzC©¹Þ@µùzC©¹Þ@µùzèûzƒÔ1È×JÍõª=ˆ× +]×hÖ_o(3׈ö _ou_o:ùzC©¹Þ@µùzC©¹Þ@µùzC©¹Þ@µùzèûzƒÔ1È×JÍõª=È×JÍõª=È×JÍõª=È×FÝפŽA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞPj®7PíA¾Þ0ê¾Þ uâõ†B×õš5Ç×ÊÌõ¢=È×JÍõª=È×FÝפŽA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞêåzÔ9È×JÍõª=È×JÍõª=È×JÍõª=È×tW ®7è=r½qõ¯G×ÇïñÜÂé×üõôªøãÖ3¿ýÇ-\Æÿ²· +öѬ9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAötìÓ{$Ø¿zã`ÿø=Nøz÷òþ/_^OLýüG2|y¸ûòôãïhwo_öûœþò¾zŸÓÿûé×e=òþ:ÿçàm.+þŸ—.endstream +endobj +1503 0 obj << +/Type /Page +/Contents 1504 0 R +/Resources 1502 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1178 0 R +/Annots [ 1506 0 R 1507 0 R 1508 0 R 1509 0 R 1510 0 R 1511 0 R 1512 0 R 1513 0 R 1514 0 R 1515 0 R 1516 0 R 1517 0 R 1518 0 R 1519 0 R 1520 0 R 1521 0 R 1522 0 R 1523 0 R 1524 0 R 1525 0 R 1526 0 R 1527 0 R 1528 0 R 1529 0 R 1530 0 R 1531 0 R 1532 0 R 1533 0 R 1534 0 R 1535 0 R 1536 0 R 1537 0 R 1538 0 R 1539 0 R 1540 0 R 1541 0 R 1542 0 R 1543 0 R 1544 0 R 1545 0 R 1546 0 R 1547 0 R 1548 0 R 1549 0 R 1550 0 R 1551 0 R 1552 0 R 1553 0 R 1554 0 R 1555 0 R 1556 0 R 1557 0 R 1558 0 R 1559 0 R 1560 0 R 1561 0 R 1562 0 R 1563 0 R 1564 0 R 1565 0 R 1566 0 R 1567 0 R 1568 0 R 1569 0 R 1570 0 R 1571 0 R 1572 0 R 1573 0 R 1574 0 R 1575 0 R 1576 0 R 1577 0 R 1578 0 R 1579 0 R 1580 0 R 1581 0 R 1582 0 R 1583 0 R 1584 0 R 1585 0 R 1586 0 R 1587 0 R 1588 0 R 1589 0 R 1590 0 R 1591 0 R 1592 0 R 1593 0 R 1594 0 R 1595 0 R 1596 0 R 1597 0 R 1598 0 R 1599 0 R 1600 0 R 1601 0 R 1602 0 R 1603 0 R 1604 0 R 1605 0 R 1606 0 R 1607 0 R ] +>> endobj +1506 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 756.639 264.269 764.801] +/Subtype /Link +/A << /S /GoTo /D (1145) >> +>> endobj +1507 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 756.639 521.32 764.801] +/Subtype /Link +/A << /S /GoTo /D (1145) >> +>> endobj +1508 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 743.687 275.028 751.849] +/Subtype /Link +/A << /S /GoTo /D (1150) >> +>> endobj +1509 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 743.687 521.32 751.849] +/Subtype /Link +/A << /S /GoTo /D (1150) >> +>> endobj +1510 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 731.955 230.953 738.898] +/Subtype /Link +/A << /S /GoTo /D (1155) >> +>> endobj +1511 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 731.955 521.32 738.898] +/Subtype /Link +/A << /S /GoTo /D (1155) >> +>> endobj +1512 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 717.035 257.982 725.947] +/Subtype /Link +/A << /S /GoTo /D (1159) >> +>> endobj +1513 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 717.035 521.32 725.947] +/Subtype /Link +/A << /S /GoTo /D (1159) >> +>> endobj +1514 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 705.192 285.788 712.995] +/Subtype /Link +/A << /S /GoTo /D (1180) >> +>> endobj +1515 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 705.192 521.32 712.995] +/Subtype /Link +/A << /S /GoTo /D (1180) >> +>> endobj +1516 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 691.882 275.028 700.044] +/Subtype /Link +/A << /S /GoTo /D (1198) >> +>> endobj +1517 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 691.882 521.32 700.044] +/Subtype /Link +/A << /S /GoTo /D (1198) >> +>> endobj +1518 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 678.93 264.269 687.092] +/Subtype /Link +/A << /S /GoTo /D (1205) >> +>> endobj +1519 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 678.93 521.32 687.092] +/Subtype /Link +/A << /S /GoTo /D (1205) >> +>> endobj +1520 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 667.198 258.889 674.141] +/Subtype /Link +/A << /S /GoTo /D (1210) >> +>> endobj +1521 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 667.198 521.32 674.141] +/Subtype /Link +/A << /S /GoTo /D (1210) >> +>> endobj +1522 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 653.027 257.852 661.189] +/Subtype /Link +/A << /S /GoTo /D (1215) >> +>> endobj +1523 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 653.027 521.32 661.189] +/Subtype /Link +/A << /S /GoTo /D (1215) >> +>> endobj +1524 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 639.327 257.982 648.238] +/Subtype /Link +/A << /S /GoTo /D (1228) >> +>> endobj +1525 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 639.327 521.32 648.238] +/Subtype /Link +/A << /S /GoTo /D (1228) >> +>> endobj +1526 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 627.483 285.788 635.287] +/Subtype /Link +/A << /S /GoTo /D (1257) >> +>> endobj +1527 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 627.483 521.32 635.287] +/Subtype /Link +/A << /S /GoTo /D (1257) >> +>> endobj +1528 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 614.173 301.927 622.335] +/Subtype /Link +/A << /S /GoTo /D (1338) >> +>> endobj +1529 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 614.173 521.32 622.335] +/Subtype /Link +/A << /S /GoTo /D (1338) >> +>> endobj +1530 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 601.221 301.927 609.384] +/Subtype /Link +/A << /S /GoTo /D (1345) >> +>> endobj +1531 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 601.221 521.32 609.384] +/Subtype /Link +/A << /S /GoTo /D (1345) >> +>> endobj +1532 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 588.27 275.028 596.432] +/Subtype /Link +/A << /S /GoTo /D (1350) >> +>> endobj +1533 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 588.27 521.32 596.432] +/Subtype /Link +/A << /S /GoTo /D (1350) >> +>> endobj +1534 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 576.538 269.648 583.481] +/Subtype /Link +/A << /S /GoTo /D (1355) >> +>> endobj +1535 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 576.538 521.32 583.481] +/Subtype /Link +/A << /S /GoTo /D (1355) >> +>> endobj +1536 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 562.367 263.232 570.529] +/Subtype /Link +/A << /S /GoTo /D (1360) >> +>> endobj +1537 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 562.367 521.32 570.529] +/Subtype /Link +/A << /S /GoTo /D (1360) >> +>> endobj +1538 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 548.667 257.982 557.578] +/Subtype /Link +/A << /S /GoTo /D (1364) >> +>> endobj +1539 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 548.667 521.32 557.578] +/Subtype /Link +/A << /S /GoTo /D (1364) >> +>> endobj +1540 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 536.823 285.788 544.627] +/Subtype /Link +/A << /S /GoTo /D (1417) >> +>> endobj +1541 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 536.823 521.32 544.627] +/Subtype /Link +/A << /S /GoTo /D (1417) >> +>> endobj +1542 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 523.513 285.788 531.675] +/Subtype /Link +/A << /S /GoTo /D (1427) >> +>> endobj +1543 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 523.513 521.32 531.675] +/Subtype /Link +/A << /S /GoTo /D (1427) >> +>> endobj +1544 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 511.781 285.788 518.724] +/Subtype /Link +/A << /S /GoTo /D (1440) >> +>> endobj +1545 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 511.781 521.32 518.724] +/Subtype /Link +/A << /S /GoTo /D (1440) >> +>> endobj +1546 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 497.61 312.687 505.772] +/Subtype /Link +/A << /S /GoTo /D (1447) >> +>> endobj +1547 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 497.61 521.32 505.772] +/Subtype /Link +/A << /S /GoTo /D (1447) >> +>> endobj +1548 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 484.659 312.687 492.821] +/Subtype /Link +/A << /S /GoTo /D (1452) >> +>> endobj +1549 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 484.659 521.32 492.821] +/Subtype /Link +/A << /S /GoTo /D (1452) >> +>> endobj +1550 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 471.707 318.067 479.869] +/Subtype /Link +/A << /S /GoTo /D (1458) >> +>> endobj +1551 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 471.707 521.32 479.869] +/Subtype /Link +/A << /S /GoTo /D (1458) >> +>> endobj +1552 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 458.756 318.067 466.918] +/Subtype /Link +/A << /S /GoTo /D (1463) >> +>> endobj +1553 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 458.756 521.32 466.918] +/Subtype /Link +/A << /S /GoTo /D (1463) >> +>> endobj +1554 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 445.804 264.269 453.967] +/Subtype /Link +/A << /S /GoTo /D (1468) >> +>> endobj +1555 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 445.804 521.32 453.967] +/Subtype /Link +/A << /S /GoTo /D (1468) >> +>> endobj +1556 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 432.853 275.028 441.015] +/Subtype /Link +/A << /S /GoTo /D (1487) >> +>> endobj +1557 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 432.853 521.32 441.015] +/Subtype /Link +/A << /S /GoTo /D (1487) >> +>> endobj +1558 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 416.896 227.466 425.782] +/Subtype /Link +/A << /S /GoTo /D (1513) >> +>> endobj +1559 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 416.896 521.32 425.782] +/Subtype /Link +/A << /S /GoTo /D (1513) >> +>> endobj +1560 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.462 403.476 192.717 410.33] +/Subtype /Link +/A << /S /GoTo /D (1515) >> +>> endobj +1561 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 403.476 521.32 410.33] +/Subtype /Link +/A << /S /GoTo /D (1515) >> +>> endobj +1562 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.462 390.525 216.248 397.379] +/Subtype /Link +/A << /S /GoTo /D (1526) >> +>> endobj +1563 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 390.525 521.32 397.379] +/Subtype /Link +/A << /S /GoTo /D (1526) >> +>> endobj +1564 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 375.516 247.91 384.427] +/Subtype /Link +/A << /S /GoTo /D (1528) >> +>> endobj +1565 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 375.516 521.32 384.427] +/Subtype /Link +/A << /S /GoTo /D (1528) >> +>> endobj +1566 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 362.564 255.65 371.476] +/Subtype /Link +/A << /S /GoTo /D (1551) >> +>> endobj +1567 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 362.564 521.32 371.476] +/Subtype /Link +/A << /S /GoTo /D (1551) >> +>> endobj +1568 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 351.582 290.221 358.524] +/Subtype /Link +/A << /S /GoTo /D (1553) >> +>> endobj +1569 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 351.582 521.32 358.524] +/Subtype /Link +/A << /S /GoTo /D (1553) >> +>> endobj +1570 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 338.63 290.221 345.573] +/Subtype /Link +/A << /S /GoTo /D (1563) >> +>> endobj +1571 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 338.63 521.32 345.573] +/Subtype /Link +/A << /S /GoTo /D (1563) >> +>> endobj +1572 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 324.459 290.221 332.622] +/Subtype /Link +/A << /S /GoTo /D (1573) >> +>> endobj +1573 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 324.459 521.32 332.622] +/Subtype /Link +/A << /S /GoTo /D (1573) >> +>> endobj +1574 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 311.508 290.221 319.67] +/Subtype /Link +/A << /S /GoTo /D (1583) >> +>> endobj +1575 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 311.508 521.32 319.67] +/Subtype /Link +/A << /S /GoTo /D (1583) >> +>> endobj +1576 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.462 299.865 206.833 306.719] +/Subtype /Link +/A << /S /GoTo /D (1593) >> +>> endobj +1577 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 299.865 521.32 306.719] +/Subtype /Link +/A << /S /GoTo /D (1593) >> +>> endobj +1578 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 285.605 284.752 293.767] +/Subtype /Link +/A << /S /GoTo /D (1595) >> +>> endobj +1579 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 285.605 521.32 293.767] +/Subtype /Link +/A << /S /GoTo /D (1595) >> +>> endobj +1580 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 271.904 257.982 280.816] +/Subtype /Link +/A << /S /GoTo /D (1601) >> +>> endobj +1581 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 271.904 521.32 280.816] +/Subtype /Link +/A << /S /GoTo /D (1601) >> +>> endobj +1582 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 260.061 285.788 267.864] +/Subtype /Link +/A << /S /GoTo /D (1654) >> +>> endobj +1583 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 260.061 521.32 267.864] +/Subtype /Link +/A << /S /GoTo /D (1654) >> +>> endobj +1584 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 247.97 269.648 254.913] +/Subtype /Link +/A << /S /GoTo /D (1665) >> +>> endobj +1585 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 247.97 521.32 254.913] +/Subtype /Link +/A << /S /GoTo /D (1665) >> +>> endobj +1586 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 235.019 258.889 241.962] +/Subtype /Link +/A << /S /GoTo /D (1669) >> +>> endobj +1587 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 235.019 521.32 241.962] +/Subtype /Link +/A << /S /GoTo /D (1669) >> +>> endobj +1588 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 220.848 258.889 229.01] +/Subtype /Link +/A << /S /GoTo /D (1674) >> +>> endobj +1589 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 220.848 521.32 229.01] +/Subtype /Link +/A << /S /GoTo /D (1674) >> +>> endobj +1590 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 207.896 280.408 216.059] +/Subtype /Link +/A << /S /GoTo /D (1678) >> +>> endobj +1591 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 207.896 521.32 216.059] +/Subtype /Link +/A << /S /GoTo /D (1678) >> +>> endobj +1592 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 196.164 264.269 203.107] +/Subtype /Link +/A << /S /GoTo /D (1683) >> +>> endobj +1593 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 196.164 521.32 203.107] +/Subtype /Link +/A << /S /GoTo /D (1683) >> +>> endobj +1594 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 183.213 269.648 190.156] +/Subtype /Link +/A << /S /GoTo /D (1690) >> +>> endobj +1595 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 183.213 521.32 190.156] +/Subtype /Link +/A << /S /GoTo /D (1690) >> +>> endobj +1596 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 169.042 285.788 177.204] +/Subtype /Link +/A << /S /GoTo /D (1696) >> +>> endobj +1597 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 169.042 521.32 177.204] +/Subtype /Link +/A << /S /GoTo /D (1696) >> +>> endobj +1598 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 156.091 296.548 164.253] +/Subtype /Link +/A << /S /GoTo /D (1700) >> +>> endobj +1599 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 156.091 521.32 164.253] +/Subtype /Link +/A << /S /GoTo /D (1700) >> +>> endobj +1600 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 144.359 247.093 151.302] +/Subtype /Link +/A << /S /GoTo /D (1704) >> +>> endobj +1601 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 144.359 521.32 151.302] +/Subtype /Link +/A << /S /GoTo /D (1704) >> +>> endobj +1602 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 129.439 257.982 138.35] +/Subtype /Link +/A << /S /GoTo /D (1708) >> +>> endobj +1603 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 129.439 521.32 138.35] +/Subtype /Link +/A << /S /GoTo /D (1708) >> +>> endobj +1604 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 117.236 247.093 125.399] +/Subtype /Link +/A << /S /GoTo /D (1721) >> +>> endobj +1605 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 117.236 521.32 125.399] +/Subtype /Link +/A << /S /GoTo /D (1721) >> +>> endobj +1606 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 103.536 257.982 112.447] +/Subtype /Link +/A << /S /GoTo /D (1725) >> +>> endobj +1607 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 103.536 521.32 112.447] +/Subtype /Link +/A << /S /GoTo /D (1725) >> +>> endobj +1505 0 obj << +/D [1503 0 R /XYZ 71.731 778.968 null] +>> endobj +1502 0 obj << +/Font << /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1661 0 obj << +/Length 49392 +/Filter /FlateDecode +>> +stream +xÚ¬ÝMtéy]é¹~E
Ý¥óûch7l£{`í‰áL•å(Ê J@·½#+žýDì;ó¬XoÁð@x¼¯H¦X/‹\÷‰‡ŸîOÿïá§·‡»·§Óÿx{¿ûx}ÿéÿðW÷?ýýéùwõ°žx~þ¸{yÿ8ýïßüƒýôòt÷ñüþÓ_?Þß}<>~ûÌÃëÛÝÓÛãOýöò~wÿüúùпþÃ_ýËûøúÓlj}úéÿý§<”gþðwÿå_üáüüý×?ü¿ÿòß>=ýôùù^{ðíîãýé´üùÄ¿þå׿ùõ/¿üùïÏÏ]¾œ>ÐýÇzîÿþÓßþÓ?}>óWÿæûƒ=¾¼Ý½¿\Èo>ûýÝëÛûÁþxúÿöòÄ?Õzæú‡ºûò1^îî¾û_Íõ,£cð@}º{yx”êùÙj¨¯w÷÷V=?{CíÁõýîùãIªçgo¨=ø½úvú¿À÷g§®gYƒêÓÝó›UÏÏÞP{ð@}9=ÿ"Õó³7Ô<PO¿†—W©žŸ½¡öà÷êûé×ð,Õõ,«cð@=ýžÞ¤z~ö†Úƒêé×ðø.Õó³7Ô<PO¿†«žŸ½¡öà÷êÇùO¥®gYƒêé× ÍÏ'oˆ×cÞËÝ»ý!{ô†XsäûÝÓ»ün={íÁoÕ§ûû»÷7÷GMžEu¨OwO¯V=?{CíÁõô[xy’êùÙj¨§_Ãó³TÏÏÞP{ð{õáôkx’êz–Õ1x ž~
/R=?{CíÁõôkxx•êùÙj¨§_ýUÏÏÞP{ð{õôwoî¸<Ëê<PŸîN:Hõüì
µÔ—»ÓßrIõüì
µÔ÷»ÇשžŸ½¡öà÷êÓé× ÿéü(›=w@ž~ò_«çGo5w@ž~ÏÒ<?{íÁõôx’Ú¬go¨=ø½ú|ú<Ju=Ëê<PO¿…ùgÜzö†Úƒêé×p/ÿ´YÏÞP{ð@}¿{ø°êùÙj~¯¾Üß½¾ËݬgYƒêÓ݃ýÄzö†ÚƒêËÝë«UÏÏÞP{ð@=ý^äŸqëÙj~¯¾ž~
ÏòO›õ,«cð@=ýž¬z~ö†Úƒêé×ð(ÿŒ[ÏÞP{ð@=ýä_ÏÞ0kî{òíô;Þœe²çÈÓ/àÞšçgo =x ¾Ü½|Èr׳7Ô<POÿà»UÏÏÞP{ð{õýþîåMþ·žeu¨Ow÷¯òO›õì
µÔÓ¯áŪçgo¨=x ~þƒòϸõì
µ¿W?N¿†'©®gYƒêé×ð(ÿŒ[ÏÞP{ð@=ýäŸqëÙj¨§ðÞªçgo¨=øú|÷üáþŒË³¨ÎÁõñîCþgxyö†ÚƒêËÝó›UÏÏÞP{ð@}»“ÿ¡Àzô†Ysß“§ßü£5Ï2:ÔÓïàŪçgo¨=x ž~ÏR=?{CíÁõô[xz’êùÙj~¯>ž~
R]ϲ:ÔÓ¯ááYªçgo¨=x ž~
÷/R=?{CíÁõíîýêçgo¨=ø½út÷ôîþ˜Ë³¬ŽÁõñîýMþ•i={CíÁõåîéÕªçgo¨=x ~†ò¹õì
µ¿WŸO¿†gùÎz–Õ1x ž~
OV=?{CíÁõôki:?zì¹òô;ÙIž½öà÷êËéwð Õõ,«cð@=ýdv’go¨=x ¾Ü=Êì$ÏÞP{ð@}»{{·êùÙj~¯¾Þß=Êì$ϲ:ÔÇ»7™äÙj¨§_ËUÏÏÞP{ð@=ýdv’go¨=ø½úvú5Èì$ϲ:ÔÓ¯áѪçgo¨=x ž~
2;ɳ7Ô<PO¿™äÙj~¯¾ßß=|Hu=Ëê<Pï^-úÛ£7Ìš; _îd|’go =x ¾Ý½¾Yõüì
µ¿W?N¿ŸäYVÇàzú-Èø$ÏÞP{ð@=ýžz~ö†Úƒêé× ã“<{CíÁoÕ—ûÓ¯AþÚyÕ9x ž~
V=?{CíÁõôkñIž½¡öàúv÷"ÿs¦<{CíÁïÕ‡û»û÷7 +ÐNÿ&è ?yx¸{ºõ_æ¡ëÏñøúåƒ<žžÂþ·6ãþó÷õ+}úœ>îoÿvòô÷÷§¿oÿ6ô_å™Kžÿ×/÷ÿâ?þåýÇ_ÿÿÿùó·¹þÇçƒrÿšë¿<`®ÿÀ.]¸ã`ÿë`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©c‚}ežƒ}¯Ç0ØWà +öQ¬9ö•™`Ñä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûM°OfÏa°¯Èì#Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}…®`ÍšÃ`ß ö‰ì9ö•™`Ñä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Øê%Øur°¯Ôû¨ö ûJM°jb°¯Ðì£Ysìsû„ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ˆÁ¾BW°fÍq°¯Ìûˆö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ û +]Á>š5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁþq‚®‚}ú ö¯>Çq°ü9.oæÿí?VºõfþÓßË~þk ßÌ¿žqoæÿWú^Κ¼~Ç—ó¿>þÇEýöŸê·§£Ú7Ëð“ífùê';n–¿~h–QíAn–º›eRÇ 7ËJM³Œjr³¬Ô4˨ö 7ËJM³Œjr³lÔÝ,“:©YVæ¹YFñz›e®fÅšãfY™i–íAn–…zi–AƒÜ,+5Í2ª=ÈͲRÓ,£ÚƒÜ,+5Í2ª=ÈͲQw³LêäfY©i–QíAn–•šfÕäfY©i–QíAn–º›eRÇ 7ËJM³Œjr³¬Ô4˨ö 7ËJM³Œjb³lÐ4Ëdö6ËŠ\Í2’5ÇͲ2Ó,#ÚƒÜ,+5Í2ª=ÈͲQw³LêäfY©i–QíAn–•šfÕäfY©i–QíAn–º›eRÇ 7ËJM³Œjr³¬Ô4˨ö 7ËJM³Œjr³lÔÝ,“:¹YVjšeT{›e¥¦YFµ±YVèj–Ѭ9l–
™f™ÈžãfY™i–íAn–•šfÕäfY©i–QíAn–º›eRÇ 7ËJM³Œjr³¬Ô4˨ö 7ËJM³Œjr³lÔÝ,“:¹YVjšeT{›e¥¦YFµ¹YVjšeT{›e¡^šePç 7ËJM³Œjr³¬Ô4˨ö 6Ë +]Í2š5ÇͲ1w³LèäfY©i–QíAn–•šfÕäfY©i–QíAn–º›eRÇ 7ËJM³Œjr³¬Ô4˨ö 7ËJM³Œjr³lÔÝ,“:¹YVjšeT{›e¥¦YFµ¹YVjšeT{›e£îf™Ô1ÈͲRÓ,£ÚƒØ,+t5ËhÖ7ËÊL³Œhr³lÔÝ,“:¹YVjšeT{›e¥¦YFµ¹YVjšeT{›e£îf™Ô1ÈͲRÓ,£ÚƒÜ,+5Í2ª=ÈͲRÓ,£ÚƒÜ,u7ˤŽAn–•šfÕäfY©i–QíAn–•šfÕäfÙ¨»Y&ub³¬ÐÕ,£YsÜ,+3Í2¢=ÈͲRÓ,£ÚƒÜ,u7ˤŽAn–•šfÕäfY©i–QíAn–•šfÕäfY¨—fÔ9ÈͲRÓ,£ÚƒÜ,+5Í2ª=ÈͲRÓ,£ÚƒÜ,SH+šeúi–¯>Çq³|ü9~ð%ã§?ù%ãë™Éøeü÷½d>Ü~ÉøÕ‡;~Éø×/'uòKÆ•š—Œ£Úƒü’q¥æ%ã¨ö ¿d\©yÉ8ª=È/7ê~É8©c_2®Ô¼dÕä—Œ+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'uR°¯Ìs°âõû +\Á>Š5ÇÁ¾2ì#Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`ÕÄ`ß öÉì9ö¹‚}$kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jb°¯Ðì£Ysì2Á>‘=ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAöº‚}4kŽƒ}cî`ŸÐ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ1ØWè +öѬ9ö•™`Ñä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°OêÄ`_¡+ØG³æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø?NÐU°OŸ#ÁþÕç8ö?ÇxÉøÃ—Œß¿Þ=>?ðKÆ×3î%ãÿá¿þ|üŽñ‡»××|Çøëûéÿô.è7Ÿþñ·OuôŽñäÙðƒí<ûê;γ¿~ȳQíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:)ÏVæ9ÏFñzól®<Åšã<[™É³íAγ…zɳAƒœg+5y6ª=Èy¶R“g£Úƒœg+5y6ª=Èy¶QwžMêä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjbžmÐäÙdöæÙŠ\y6’5Çy¶2“g#Úƒœg+5y6ª=Èy¶QwžMêä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ1ÏVèʳѬ9̳
™<›Èžã<[™É³íAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól¡^òlPç çÙJMžjržÔäÙ¨ö æÙ +]y6š5Çy¶1wžMèä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól£î<›Ô1Èy¶R“g£Úƒ˜g+tåÙhÖçÙÊLžhržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól£î<›Ô1Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£ÚƒœguçÙ¤ŽAγ•š<Õä<[©É³QíAγ•š<Õä<Û¨;Ï&ubžÐ•g£Ysœg+3y6¢=Èy¶R“g£ÚƒœguçÙ¤ŽAγ•š<Õä<[©É³QíAγ•š<Õä<[¨—<Ô9Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£ÚƒœgGÃ*Ϧϑ<ûêsçÙÇŸc¼Oý‘ß§þúñÁ|àûÔóÌ¿Oýjüw½O>\ºþp‡ïSÿ惿OÕ1ˆïSwêzŸ:«=ˆïSwêzŸ:«=ˆïSwêzŸ:«=ˆïSWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1Á¾3öY¼£`ßç`ŸÅšÃ`ß™+Øg´1Ø7êöIƒì;uû¬ö ûN]Á>«=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+tûhöûŽ<ûLÖûÎ\Á>£=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ)Øwè9Øg³æ(ØWä +ö‘ì9ö¹‚}F{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAöºƒ}Rç ûN]Á>«=ˆÁ¾SW°ÏjR°ïÐs°ÏfÍa°¯ÌûˆŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°ÏjR°ïÐs°ÏfÍa°ïÌì3Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö ûJM°êÄ`ß©+Øgµ1Øwê +öYíAöº‚}V{ƒ}¥&ØGuR°ïÐs°ÏfÍa°ïÌì3Úƒì;uû¬ö ûJM°êÄ`ß©+Øgµ1Øwê +öYíAöº‚}V{ƒ}£î`ŸÔ9ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö û ›`?Çzèúsûð9~ì}ꯧ?žžÞñ}êyƽOýßÿóŸþôõEêÏw÷øõÓßÊ|þ¥äò¾Fþ§?¡ÿ§‡»‡ßþ^~ž<týó|M Ÿžî^Ÿ¿ûߨçgo¨=x ¾Þ=|þN©çgo¨=x ¾ß½Þ[õüì
µ¿WŸîî?^ºžeu¨Ow/Ÿÿ +VêùÙj¨¯w÷oV=?{CíÁõýîåõ]ªçgo¨=ø½úrú5¼|8u=Ëê<PŸ~»ýqêùÙj¨§_ƒü‹ÄùÑfÍëBI™9yB´ùäɨûä‰Ô1È'OJÍɪ=È'OJÍɪ=È'OJÍɪ=È'OFÝ'O¤ŽA>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê>y"uòÉ“Rsò„jòÉ“Rsò„jòÉ“Rsò„jòÉ“Q÷É©cNž”y>yBñzOž¸NžP¬9>yRfNžíA>yêåä Ô9È'OJÍɪ=È'OJÍɪ=È'OJÍɪ=È'OFÝ'O¤ŽA>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê>y"uòÉ“Rsò„jòÉ“Rsò„jòÉ“Rsò„jâÉ“AsòDfÏáÉ“"×É’5Ç'OÊÌÉ¢=È'OJÍɪ=È'OFÝ'O¤ŽA>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê>y"uòÉ“Rsò„jòÉ“Rsò„jòÉ“Rsò„jòÉ“Q÷É©cOž”š“'T{Ož”š“'T{OžºNžÐ¬9<y2dNžˆì9>yRfNžíA>yRjNžPíA>yRjNžPíA>y2ê>y"uòÉ“Rsò„jòÉ“Rsò„jòÉ“Rsò„jòÉ“Q÷É©cOž”š“'T{Ož”š“'T{Ož”š“'T{Ož„z9yuòÉ“Rsò„jòÉ“Rsò„jâÉ“B×Éš5Ç'OÆÜ'O„ŽA>yRjNžPíA>yRjNžPíA>yRjNžPíA>y2ê>y"uòÉ“Rsò„jòÉ“Rsò„jòÉ“Rsò„jòÉ“Q÷É©cOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒºOžHƒ|ò¤Ôœ<¡Úƒxò¤Ðuò„fÍñÉ“2sò„hòÉ“Q÷É©cOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒºOžHƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|òdÔ}òDêä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'£î“'RÇ ž<)t<¡Ys|ò¤Ìœ<!Úƒ|ò¤Ôœ<¡Úƒ|òdÔ}òDêä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'¡^Nž@ƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|òt|£NžèsääéêsŸ<ŽüŽ’Ï³¦ÓßAãw”¬g~ü;J.ã¿ï;JàÃí`ÿêÃû_?û¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+óì£x=†Á¾W°bÍq°¯Ìûˆö ûB½û ÎAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ1Ø7h‚}2{ƒ}E®`Éšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+tûhÖû†L°OdÏq°¯Ìûˆö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}…®`Íšã`ߘ;Ø'tr°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAöº‚}4kŽƒ}e&ØG´9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:1ØWè +öѬ9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAötìÓçH°õ9ŽƒýãÏñƒßQòò|wú;KþŽ’õŒûŽ’ÿðËß}ýŠ’‡÷Ó¿vð+J_î^>ÿMäåó|Óø¿~GÉãëÝÃËŸ']ÿ<_ÈÇÓGýü‹Ë×òz~ö†Úƒß²¾>ŨûûXHƒü},JÍ÷± Úƒü},JÍ÷± Úƒü},JÍ÷± Úƒü},FÝßÇBêäïcQj¾ÕäïcQj¾ÕäïcQj¾Õäïc1êþ>RÇ ‹Ró},¨ö ~‹B×÷± Ysü},ÊÌy¢=Èç]FÝç]¤ŽA>ïRjλPíA>ïRjλPíA>ïRjλPíA>ï2ê>ï"uòy—RsÞ…jòy—RsÞ…jòy—RsÞ…jòy—Q÷y©cÏ»”šó.T{Ï»”šó.T{Ï»”šó.T{Ï»ŒºÏ»HƒtÞ¥ÌóyŠ×cxÞ¥ÀuÞ…bÍñy—2sÞ…hòy—P/ç] ÎA>ïRjλPíA>ïRjλPíA>ïRjλPíA>ï2ê>ï"uòy—RsÞ…jòy—RsÞ…jòy—RsÞ…jòy—Q÷y©cÏ»”šó.T{Ï»”šó.T{Ï»”šó.T{Ï»šó.2{Ï»¹Î»¬9>ïRfλíA>ïRjλPíA>ï2ê>ï"uòy—RsÞ…jòy—RsÞ…jòy—RsÞ…jòy—Q÷y©cÏ»”šó.T{Ï»”šó.T{Ï»”šó.T{Ï»ŒºÏ»Hƒ|Þ¥Ôœw¡Úƒ|Þ¥Ôœw¡ÚƒxÞ¥ÐuÞ…fÍáy—!sÞEdÏñy—2sÞ…hòy—RsÞ…jòy—RsÞ…jòy—Q÷y©cÏ»”šó.T{Ï»”šó.T{Ï»”šó.T{Ï»ŒºÏ»Hƒ|Þ¥Ôœw¡Úƒ|Þ¥Ôœw¡Úƒ|Þ¥Ôœw¡Úƒ|Þ%ÔËy¨sÏ»”šó.T{Ï»”šó.T{Ï»ºÎ»Ð¬9>ï2æ>ï"tòy—RsÞ…jòy—RsÞ…jòy—RsÞ…jòy—Q÷y©cÏ»”šó.T{Ï»”šó.T{Ï»”šó.T{Ï»ŒºÏ»Hƒ|Þ¥Ôœw¡Úƒ|Þ¥Ôœw¡Úƒ|Þ¥Ôœw¡Úƒ|ÞeÔ}ÞEêäó.¥æ¼ÕÄó.…®ó.4kŽÏ»”™ó.D{Ï»ŒºÏ»Hƒ|Þ¥Ôœw¡Úƒ|Þ¥Ôœw¡Úƒ|Þ¥Ôœw¡Úƒ|ÞeÔ}ÞEêäó.¥æ¼Õäó.¥æ¼Õäó.¥æ¼Õäó.£îó.RÇ Ÿw)5ç]¨ö Ÿw)5ç]¨ö Ÿw)5ç]¨ö ŸwuŸw‘:ñ¼K¡ë¼Íšãó.eæ¼Ñäó.¥æ¼Õäó.£îó.RÇ Ÿw)5ç]¨ö Ÿw)5ç]¨ö Ÿw)5ç]¨ö Ÿw õrÞêäó.¥æ¼Õäó.¥æ¼Õäó.¥æ¼Õäó®ãë#uÞEŸ#ç]WŸãø¼ëøsüà÷±<?Ü=Ÿþü>–õÌËeü÷}|¸ì_}¸ã`ÿë`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©c‚}ežƒ}¯Ç0ØWà +öQ¬9ö•™`Ñä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûM°OfÏa°¯Èì#Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}…®`ÍšÃ`ß ö‰ì9ö•™`Ñä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Øê%Øur°¯Ôû¨ö ûJM°jb°¯Ðì£Ysìsû„ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ˆÁ¾BW°fÍq°¯Ìûˆö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ û +]Á>š5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁþq‚®‚}ú ö¯>ÇãÛQ°ü9~ðûX?»÷Gþ>–õŒû>–óçþ‡¯_Èòø|wÿ€_Èrú[ùÏ¿”\>Ð×ÈÿáðûXöw”Àϳ¿£äêç9þŽ’¯Ÿ¾£Õäï(Qj¾£Õäï(Qj¾£Õäï(1êþŽRÇ G‰Ró%¨ö G‰Ró%¨ö G‰Ró%¨ö G‰Q÷w”:ù;J”šï(Aµñ;Jº¾£Íšãï(QfNžíA>y2ê>y"uòÉ“Rsò„jòÉ“Rsò„jòÉ“Rsò„jòÉ“Q÷É©cOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒºOžHƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|òdÔ}òDꤓ'ežOžP¼Ã“'®“'kŽOž”™“'D{Ož„z9yuòÉ“Rsò„jòÉ“Rsò„jòÉ“Rsò„jòÉ“Q÷É©cOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒºOžHƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡ÚƒxòdМ<‘Ùsxò¤Èuò„dÍñÉ“2sò„hòÉ“Rsò„jòÉ“Q÷É©cOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒºOžHƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|òdÔ}òDêä“'¥æä Õä“'¥æä ÕÄ“'…®“'4kOž™“'"{ŽOž”™“'D{Ož”š“'T{Ož”š“'T{OžŒºOžHƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|òdÔ}òDêä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'¡^Nž@ƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒxò¤Ðuò„fÍñÉ“1÷É¡cOž”š“'T{Ož”š“'T{Ož”š“'T{OžŒºOžHƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|ò¤Ôœ<¡Úƒ|òdÔ}òDêä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'£î“'RÇ Ÿ<)5'O¨ö ž<)t<¡Ys|ò¤Ìœ<!Úƒ|òdÔ}òDêä“'¥æä Õä“'¥æä Õä“'¥æä Õä“'£î“'RÇ Ÿ<)5'O¨ö Ÿ<)5'O¨ö Ÿ<)5'O¨ö Ÿ<uŸ<‘:ùäI©9yBµùäI©9yBµùäI©9yBµùäɨûä‰Ô1ˆ'O +]'OhÖŸ<)3'Oˆö Ÿ<)5'O¨ö Ÿ<uŸ<‘:ùäI©9yBµùäI©9yBµùäI©9yBµùäI¨—“'Pç Ÿ<)5'O¨ö Ÿ<)5'O¨ö Ÿ<)5'O¨ö Ÿ<䨓'ú9yºúÇ'OÇŸc|GÉÃï(yx¹{yàï(YÏüøw”\Æßw”À‡ÛÁþÕ‡;ö¿~öIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:)ØWæ9ØGñzƒ}®`Åšã`_™ öíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠ\Á>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö
™`ŸÈžã`_™ öíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö û +]Á>š5ÇÁ¾1w°Oèä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+tûhÖûÊL°hr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ub°¯Ðì£Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì'è*اϑ`ÿêsûÇŸc|GÉãï(ùüM?~ðw”¬gÜw”ü§_ÿûûßüú—_þü÷_¿©äåõîñý¿ªäõéœ5\>××Öÿñð«Jvþ?ÖÎ߯~¬ãüýëç€üÕäü]©ÉßQíAÎߺówRÇ çïJMþŽjrþ®Ôäï¨ö çïJMþŽjrþnÔ¿“:9WjòwT{ów¥&Gµ9WjòwT{ów£îüÔ1Hù»2Ïù;Š×c˜¿+påï(ÖçïÊLþŽhrþ.ÔKþêäü]©ÉßQíAÎß•šüÕäü]©ÉßQíAÎߺówRÇ çïJMþŽjrþ®Ôäï¨ö çïJMþŽjrþnÔ¿“:9WjòwT{ów¥&Gµ9WjòwT{ówƒ&'³ç0WäÊß‘¬9Îß•™üÑäü]©ÉßQíAÎߺówRÇ çïJMþŽjrþ®Ôäï¨ö çïJMþŽjrþnÔ¿“:9WjòwT{ów¥&Gµ9WjòwT{ów£îüÔ1Èù»R“¿£Úƒœ¿+5ù;ª=ˆù»BWþŽfÍaþnÈäïDöçïÊLþŽhrþ®Ôäï¨ö çïJMþŽjrþnÔ¿“:9WjòwT{ów¥&Gµ9WjòwT{ów£îüÔ1Èù»R“¿£Úƒœ¿+5ù;ª=Èù»R“¿£Úƒœ¿õ’¿ƒ:9WjòwT{ów¥&Gµ1WèÊßѬ9Îß¹ówBÇ çïJMþŽjrþ®Ôäï¨ö çïJMþŽjrþnÔ¿“:9WjòwT{ów¥&Gµ9WjòwT{ów£îüÔ1Èù»R“¿£Úƒœ¿+5ù;ª=Èù»R“¿£Úƒœ¿uç癩AÎß•šüÕÄü]¡+G³æ8WfòwD{ów£îüÔ1Èù»R“¿£Úƒœ¿+5ù;ª=Èù»R“¿£Úƒœ¿uç癩AÎß•šüÕäü]©ÉßQíAÎß•šüÕäüݨ;'urþ®Ôäï¨ö çïJMþŽjrþ®Ôäï¨ö çïFÝù;©ców…®üÍšãü]™ÉßíAÎß•šüÕäüݨ;'urþ®Ôäï¨ö çïJMþŽjrþ®Ôäï¨ö çïB½äï ÎAÎß•šüÕäü]©ÉßQíAÎß•šüÕäüý¸ÊVù;}ŽäïWŸã8?þ?ö¾ú—÷Ó_Þñ}õyæ‡ßW5þ»ÞWO.]¸Ã÷ÕóAŽßWêÄ÷Õ;uû¬ö ûN]Á>«=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªc‚}gþì³x=FÁ¾ÏÁ>‹5‡Á¾3W°Ïhb°oÔì“:1Øwê +öYíAöº‚}V{ƒ}§®`ŸÕÄ`_© öQƒì;uû¬ö ûN]Á>«=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ)ØWè +öÑì9 +öyö™¬9ö¹‚}F{ƒ}§®`ŸÕÄ`_© öQƒì;uû¬ö ûN]Á>«=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°ÏjR°ïÐs°ÏfÍQ°¯Èì#Ùsì;sûŒö ûN]Á>«=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒìuû¤ÎAöº‚}V{ƒ}§®`ŸÕ¤`ß¡ç`ŸÍšÃ`_™ öƒì;uû¬ö ûN]Á>«=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕ¤`ß¡ç`ŸÍšÃ`ß™+Øg´1ØWj‚}TÇ ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö ûJM°ê¤`ß¡ç`ŸÍšÃ`ß™+Øg´1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö ûFÝÁ>©sƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö!A7Á>~ŽõÐõç8öásüØûê_Þ^OܾâûêóŒ{_ý¿ÿçøù/¿üñè•õ§?ÞŸ{ßüñ+ëß>ŠýöŸë—Ó¿á<ÈýwÈ?Úy¯~´ã÷ëÕäW© yQíAy•šÕäר;ä%uRÈ«ÌsÈ‹âõ†¼ +\!/Š5Ç!¯2ò"Úƒò +õò‚:9äUjB^T{C^¥&äEµ9äUjB^T{C^£î—Ô1È!¯Rò¢Úƒò*5!/ª=È!¯Rò¢Úƒòu‡¼¤ŽAy•šÕäW© yQíAy•šÕÄ× yÉì9y¹B^$kŽC^e&äE´9äUjB^T{C^£î—Ô1È!¯Rò¢Úƒò*5!/ª=È!¯Rò¢Úƒòu‡¼¤ŽAy•šÕäW© yQíAy•šÕäר;ä%urȫԄ¼¨ö ‡¼JMÈ‹jbÈ«Ðò¢Ysò2!/‘=Ç!¯2ò"Úƒò*5!/ª=È!¯Rò¢Úƒòu‡¼¤ŽAy•šÕäW© yQíAy•šÕäר;ä%urȫԄ¼¨ö ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼B½„¼ ÎAy•šÕäW© yQíAyºB^4kŽC^cî—Ð1È!¯Rò¢Úƒò*5!/ª=È!¯Rò¢Úƒòu‡¼¤ŽAy•šÕäW© yQíAy•šÕäר;ä%urȫԄ¼¨ö ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼FÝ!/©cC^¥&äEµ1äUè +yѬ9y•™Ñäר;ä%urȫԄ¼¨ö ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼FÝ!/©cC^¥&äEµ9äUjB^T{C^¥&äEµ9ä5êyIƒò*5!/ª=È!¯Rò¢Úƒò*5!/ª=È!¯QwÈKêÄW¡+äE³æ8äUfB^D{C^¥&äEµ9ä5êyIƒò*5!/ª=È!¯Rò¢Úƒò*5!/ª=È!¯P/!/¨sC^¥&äEµ9äUjB^T{C^¥&äEµ9䥸T„¼ô9ò^}Žã÷øsüà›·_ŸîÞÞ^øÍÛë™óöeü÷½y>Ü~óöÕ‡;~óö×oÞ&uò›·•š7o£Úƒüæm¥æÍÛ¨ö ¿y[©yó6ª=ÈoÞ6ê~ó6©cß¼Ô¼yÕä7o+5oÞFµùÍÛJÍ›·QíA~ó¶Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûÊ<û(^a°¯Àì£Xsì+3Á>¢=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö
š`ŸÌžÃ`_‘+ØG²æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö û +]Á>š5‡Á¾!ìÙsì+3Á>¢=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`ÕÄ`_¡+ØG³æ8Ø7æö ƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}…®`Íšã`_™ öíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAöº‚}4kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒýã]ûô9ì_}Žã`ÿøsüà›·Oÿ¦üýñ‰ß¼½žqoÞþùåÏ¿þíûÓÏGïÞ~:ýU™ß½ýù³Ïÿòá¾ÿŸÍAð¿“OøávòyõÃ%Ÿ_?Æaò‰âõ&Ÿ +\É'Š5Çɧ2“|"Úƒœ| +õ’|‚:9ùTj’OT{“O¥&ùDµ9ùTj’OT{“O£îä“Ô1ÈɧR“|¢Úƒœ|*5É'ª=ÈɧR“|¢Úƒœ|u'Ÿ¤ŽAN>•šäÕääS©I>QíAN>•šäÕÄäÓ I>Éì9L>¹’O$kŽ“Oe&ùD´9ùTj’OT{“O£îä“Ô1ÈɧR“|¢Úƒœ|*5É'ª=ÈɧR“|¢Úƒœ|u'Ÿ¤ŽAN>•šäÕääS©I>QíAN>•šäÕääÓ¨;ù$urò©Ô$Ÿ¨ö 'ŸJMò‰jbò©Ð•|¢Ys˜|2É'‘=Çɧ2“|"Úƒœ|*5É'ª=ÈɧR“|¢Úƒœ|u'Ÿ¤ŽAN>•šäÕääS©I>QíAN>•šäÕääÓ¨;ù$urò©Ô$Ÿ¨ö 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸB½$Ÿ ÎAN>•šäÕääS©I>QíAL>º’O4kŽ“Ocîä“Ð1ÈɧR“|¢Úƒœ|*5É'ª=ÈɧR“|¢Úƒœ|u'Ÿ¤ŽAN>•šäÕääS©I>QíAN>•šäÕääÓ¨;ù$urò©Ô$Ÿ¨ö 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸFÝÉ'©c“O¥&ùDµ1ùTèJ>Ѭ9N>•™äÑääÓ¨;ù$urò©Ô$Ÿ¨ö 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸFÝÉ'©c“O¥&ùDµ9ùTj’OT{“O¥&ùDµ9ù4êN>Iƒœ|*5É'ª=ÈɧR“|¢Úƒœ|*5É'ª=ÈɧQwòIêÄäS¡+ùD³æ8ùTf’OD{“O¥&ùDµ9ù4êN>Iƒœ|*5É'ª=ÈɧR“|¢Úƒœ|*5É'ª=ÈɧP/É'¨s“O¥&ùDµ9ùTj’OT{“O¥&ùDµ9ù<ŽUòIŸ#ÉçÕç8N>?Ǿ£ùóïïÞùÍë™Góeü÷½£>Ü~GóÕ‡;~Gó×ïh&uò;š•šw4£ÚƒüŽf¥æÍ¨ö ¿£Y©yG3ª=Èïh6ê~G3©cßѬԼ£Õäw4+5ïhFµùÍJÍ;šQíA~G³Q÷;šIƒüŽf¥æÍ¨ö ¿£Y©yG3ª=ÈïhVjÞÑŒjò;šºƒ}RÇ ûÊ<û(^a°¯Àì£Xsì+3Á>¢=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö
š`ŸÌžÃ`_‘+ØG²æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö û +]Á>š5‡Á¾!ìÙsì+3Á>¢=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`ÕÄ`_¡+ØG³æ8Ø7æö ƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}…®`Íšã`_™ öíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAöº‚}4kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒýã]ûô9ì_}Žã`ÿøsŒw4?ÜxGóãóÝÇã¿£y=ãÞÑü‡×‡£·3¿œ+Kz;óËçßn^ÈoSÿ×ã·3ÿVñóOµž¹þ¡ŽCÿ¯BBÇ ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽA +ý•yýQ¼ÃÐ_+ôG±æ8ôWfBD{C¡^BPç ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒú4¡?™=‡¡¿"WèdÍqè¯Ì„þˆö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAýºB4kCC&ô'²ç8ôWfBD{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐ_¨—ÐÔ9È¡¿Rú£Úƒú+5¡?ª=ˆ¡¿BWèfÍqèoÌú:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö †þ +]¡?š5Ç¡¿2ú#Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+t…þhÖ‡þÊLèhrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ôê%ôurè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þǺ +ýés$ô¿úÇ¡ÿñçoæ¼ñfþ“úqú+3¾™=óão濌ÿ¾7óÇÛoæ¿úpÇÁþ×Á>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûÊ<û(^a°¯Àì£Xsì+3Á>¢=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö
š`ŸÌžÃ`_‘+ØG²æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö û +]Á>š5‡Á¾!ìÙsì+3Á>¢=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`ÕÄ`_¡+ØG³æ8Ø7æö ƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}…®`Íšã`_™ öíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAöº‚}4kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒýã]ûô9ì_}ŽÇ÷£`ÿøsüØ›ùŸ?>îîOðÑ›ùóŒ{3ÿþåï~þÇ_þÿŽ^Ïú3ïýþ_Ïÿþ|÷örq¿ý'ûó¿7>èýS·ÒÏ–‡®¶Ãºõ›r\·²ÚƒX·*5u+ªcêVgþV·²x=Fu«Ïu+‹5‡u«3WÝÊhbÝjÔ]·’:±nuêª[YíA¬[ºêVV{ëV§®º•ÕĺU©©[QƒX·:uÕ¬ö ÖN]u+«=ˆu«SWÝÊjbݪÔÔ¨ŽA¬[ºêVV{ëV§®º•Õĺթ«neµ©nUèª[Ñì9ª[y®[™¬9¬[¹êVF{ëV§®º•ÕĺU©©[QƒX·:uÕ¬ö ÖN]u+«=ˆu«SWÝÊjbݪÔÔ¨ŽA¬[ºêVV{ëV§®º•Õĺթ«neµ±nUjêVTÇ ÖN]u+«=ˆu«SWÝÊjRÝêÐsÝÊfÍQݪÈU·"ÙsX·:sÕŒö ÖN]u+«=ˆu«SWÝÊjbݪÔÔ¨ŽA¬[ºêVV{ëV§®º•Õĺթ«neµ±nUjêVTÇ ÖN]u+«=ˆu«SWÝÊjbÝêÔU·²ÚƒX·uפÎA¬[ºêVV{ëV§®º•Õ¤ºÕ¡çº•͚úU™©[ƒX·:uÕ¬ö ÖN]u+«=ˆu«SWÝÊjbݪÔÔ¨ŽA¬[ºêVV{ëV§®º•Õĺթ«neµ±nUjêVTÇ ÖN]u+«=ˆu«SWÝÊjbÝêÔU·²ÚƒX·*5u+ªcëV§®º•Õ¤ºÕ¡çº•͚úՙ«ne´±nUjêVTÇ ÖN]u+«=ˆu«SWÝÊjbÝêÔU·²ÚƒX·*5u+ªcëV§®º•Õĺթ«neµ±nuêª[YíA¬[•šºÕ1ˆu«SWÝÊjbÝêÔU·²ÚƒX·:uÕ¬ö ÖJM݊ꤺա纕͚úՙ«ne´±nuêª[YíA¬[•šºÕ1ˆu«SWÝÊjbÝêÔU·²ÚƒX·:uÕ¬ö ÖFÝu+©sëV§®º•Õĺթ«neµ±nuêª[YíA¬[1¸¼]·âçX]ŽÃº>ǽŽúùýõîþõ_Gg~øuÔWã¿ëuÔôáòÐõ‡;|õ7äøuÔ¨ŽA|µS×ë¨YíA|µS×ë¨YíA|µS×ë¨YíA|µRó:jTÇ ¾ŽÚ©ëuÔ¬ö ¾ŽÚ©ëuÔ¬ö ¾ŽÚ©ëuÔ¬ö ¾ŽZ©y5ªc_GíÔõ:jV{_GíÔû¨ö ûJM°jr°oÔì“:)ØWæ9ØGñzƒ}®`Åšã`_™ öíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠ\Á>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö
™`ŸÈžã`_™ öíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö û +]Á>š5ÇÁ¾1w°Oèä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+tûhÖûÊL°hr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ub°¯Ðì£Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì'è*اϑ`ÿêsûÇŸã_Gýù_ìœ~Óø:êõŒ{õÿó¯^ŽÞDýr®,éMÔ/Ÿ»y!¿Mý_ßÞ1õçŸj=sýC‡þ_?„þ„ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+óú£x=†¡¿WèbÍqè¯Ì„þˆö ‡þB½„þ ÎAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ1ô7hB2{CE®ÐÉšãÐ_™ ýíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+t…þhÖ†þ†LèOdÏqè¯Ì„þˆö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿P/¡?¨sC¥&ôGµ9ôWjBT{C…®ÐÍšãÐߘ;ô'trè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAýºB4kŽCe&ôG´9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAýºCRÇ ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“:1ôWè +ýѬ9ý•™ÐÑäÐ_© ýQíAýºCRÇ ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrè/ÔKèêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAýtúÓçHèõ9ŽCÿãÏñƒoæýüëÆ¿™=óão濌ÿ¾7óÇÛoæ¿úpÇÁþ×Á>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûÊ<û(^a°¯Àì£Xsì+3Á>¢=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö
š`ŸÌžÃ`_‘+ØG²æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö û +]Á>š5‡Á¾!ìÙsì+3Á>¢=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`ÕÄ`_¡+ØG³æ8Ø7æö ƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}…®`Íšã`_™ öíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAöº‚}4kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒýã]ûô9ì_}Žã`ÿøsüà›ùO+ðøðÈoæ_ϸ7óÿ§_ÿø‡_þáç¯ïå?ý=ÝÃ3¿—ÿÝþ»æË‡úúÏòéê£Ðÿùýîåõ¨<týC}í _îî_>¾û ßœœŸeu¨O¿18õüì
µÔ×»ÏÊA¡¿=zì¹r[(3׈ö _ou_o:ùzC©¹Þ@µùzC©¹Þ@µùzC©¹Þ@µùzèûzƒÔ1È×JÍõª=È×JÍõª=È×JÍõª=È×FÝפŽA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞPj®7PíA¾Þ0ê¾Þ uÒõ†2Ï×(^áõ†×õŠ5Ç×ÊÌõ¢=È×B½\o€:ùzC©¹Þ@µùzC©¹Þ@µùzC©¹Þ@µùzèûzƒÔ1È×JÍõª=È×JÍõª=È×JÍõª=È×FÝפŽA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞPj®7PíA¼Þ0h®7Èì9¼ÞPäºÞ@²æøzC™¹Þ@´ùzC©¹Þ@µùzèûzƒÔ1È×JÍõª=È×JÍõª=È×JÍõª=È×FÝפŽA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞPj®7PíA¾Þ0ê¾Þ uòõ†Rs½jòõ†Rs½jâõ†B×õš5‡×†Ìõ‘=Ç×ÊÌõ¢=È×JÍõª=È×JÍõª=È×FÝפŽA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞPj®7PíA¾Þ0ê¾Þ uòõ†Rs½jòõ†Rs½jòõ†Rs½jòõ†P/× ÎA¾ÞPj®7PíA¾ÞPj®7PíA¼ÞPèºÞ@³æøzØûzƒÐ1È×JÍõª=È×JÍõª=È×JÍõª=È×FÝפŽA¾ÞPj®7PíA¾ÞPj®7PíA¾ÞPj®7PíA¾Þ0ê¾Þ uòõ†Rs½jòõ†Rs½jòõ†Rs½jòõ†Q÷õ©c¯7”šë
T{¯7º®7Ь9¾ÞPf®7íA¾Þ0ê¾Þ uòõ†Rs½jòõ†Rs½jòõ†Rs½jòõ†Q÷õ©c¯7”šë
T{¯7”šë
T{¯7”šë
T{¯7Œº¯7Hƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½aÔ}½AêÄë
…®ë
4kޝ7”™ë
D{¯7”šë
T{¯7Œº¯7Hƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½¡Ô\o Úƒ|½!ÔËõ¨s¯7”šë
T{¯7”šë
T{¯7”šë
T{¯7è®@\oÐçÈõÆÕç8¾Þ8þãën|ÝÂÓóÝãëÝÂzæÇ¿ná2þû¾n>Üö¯>Üq°ÿõƒ@°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1HÁ¾2ÏÁ>Š×cì+pû(ÖûÊL°hr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}ƒ&Ø'³ç0ØWä +ö‘¬9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BW°fÍa°oÈûDöûÊL°hr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö¹ƒ}BÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`ÕÄ`_¡+ØG³æ8ØWf‚}D{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}…®`Íšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAö•š`Õä`ÿ8AWÁ>}ŽûWŸã8Ø?þãëo|ÝÂçÞé üº…õŒûº…÷óŸþËßþé—ÿõóß}ÿµïO§¿*¿ã×.|þÅì3Æ¿|¸¯ÁÿgDsüïä~¸|^ýpGÉç×q˜|¢x=†É§Wò‰bÍqò©Ì$Ÿˆö 'ŸB½$Ÿ ÎAN>•šäÕääS©I>QíAN>•šäÕääÓ¨;ù$urò©Ô$Ÿ¨ö 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸFÝÉ'©c“O¥&ùDµ9ùTj’OT{“O¥&ùDµ1ù4h’O2{“OE®äÉšãäS™I>íAN>•šäÕääÓ¨;ù$urò©Ô$Ÿ¨ö 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸFÝÉ'©c“O¥&ùDµ9ùTj’OT{“O¥&ùDµ9ù4êN>Iƒœ|*5É'ª=ÈɧR“|¢Úƒ˜|*t%ŸhÖ&Ÿ†LòIdÏqò©Ì$Ÿˆö 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸFÝÉ'©c“O¥&ùDµ9ùTj’OT{“O¥&ùDµ9ù4êN>Iƒœ|*5É'ª=ÈɧR“|¢Úƒœ|*5É'ª=ÈɧP/É'¨s“O¥&ùDµ9ùTj’OT{“O…®äÍšãäÓ˜;ù$trò©Ô$Ÿ¨ö 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸFÝÉ'©c“O¥&ùDµ9ùTj’OT{“O¥&ùDµ9ù4êN>Iƒœ|*5É'ª=ÈɧR“|¢Úƒœ|*5É'ª=ÈɧQwòIêääS©I>QíAL>º’O4kŽ“Oe&ùD´9ù4êN>Iƒœ|*5É'ª=ÈɧR“|¢Úƒœ|*5É'ª=ÈɧQwòIêääS©I>QíAN>•šäÕääS©I>QíAN>º“ORÇ 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸJMò‰jròiÔ|’:1ùTèJ>Ѭ9N>•™äÑääS©I>QíAN>º“ORÇ 'ŸJMò‰jrò©Ô$Ÿ¨ö 'ŸJMò‰jrò)ÔKò êääS©I>QíAN>•šäÕääS©I>QíAN>#D•|ÒçHòyõ9Ž“ÏãÏñƒïhþ¹N‡ïh^Ïüø;š/ã¿ïÍðáö;š¯>Üñ;š¿~xG3©cßѬԼ£Õäw4+5ïhFµùÍJÍ;šQíA~G³Q÷;šIƒüŽf¥æÍ¨ö ¿£Y©yG3ª=ÈïhVjÞÑŒjò;šºßÑLêäw4+5ïhFµùÍJÍ;šQíA~G³RóŽfT{ßÑlÔì“:)ØWæ9ØGñzƒ}®`Åšã`_™ öíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠ\Á>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö
™`ŸÈžã`_™ öíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö û +]Á>š5ÇÁ¾1w°Oèä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+tûhÖûÊL°hr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ub°¯Ðì£Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì'è*اϑ`ÿêsûÇŸãÇÞÑüùÙ>Ÿþ9§w4çùŽæ¿üíÿü¿üño~ýË/þû¯oh>ýñþüÈoh~û(öÛ®_Nÿ†ó ÷OÈK?ZºþÑCÞo>ÈqÈËjbÈëÔò²Úƒò:u…¼¬ö †¼JMÈ‹ê„×™¿…¼,^QÈëÀsÈËbÍaÈëÌò2Úƒòu‡¼¤ÎAyºB^V{C^§®—ÕÄש+äeµ1äUjB^TÇ †¼N]!/«=ˆ!¯SWÈËjbÈëÔò²Úƒò*5!/ªcC^§®—ÕÄש+äeµ1äuê +yYíA +yºB^4{ŽB^GžC^&kC^g®—ÑÄש+äeµ1äUjB^TÇ †¼N]!/«=ˆ!¯SWÈËjbÈëÔò²Úƒò*5!/ªcC^§®—ÕÄש+äeµ1äuê +yYíAy•šÕ1ˆ!¯SWÈËjbÈëÔò²Úƒò:ôò²Ysò*r…¼Hö†¼Î\!/£=ˆ!¯SWÈËjbÈëÔò²Úƒò*5!/ªcC^§®—ÕÄש+äeµ1äuê +yYíAy•šÕ1ˆ!¯SWÈËjbÈëÔò²Úƒò:u…¼¬ö †¼FÝ!/©sC^§®—ÕÄש+äeµ)äuè9äe³æ0äUfB^DÇ †¼N]!/«=ˆ!¯SWÈËjbÈëÔò²Úƒò*5!/ªcC^§®—ÕÄש+äeµ1äuê +yYíAy•šÕ1ˆ!¯SWÈËjbÈëÔò²Úƒò:u…¼¬ö †¼JMÈ‹êÄש+äeµ)äuè9äe³æ0äuæ +yíAy•šÕ1ˆ!¯SWÈËjbÈëÔò²Úƒò:u…¼¬ö †¼JMÈ‹êÄש+äeµ1äuê +yYíAyºB^V{C^¥&äEubÈëÔò²Úƒò:u…¼¬ö †¼N]!/«=ˆ!¯Rò¢:)äuè9äe³æ0äuæ +yíAyºB^V{C^¥&äEubÈëÔò²Úƒò:u…¼¬ö †¼N]!/«=ˆ!¯QwÈKêÄש+äeµ1äuê +yYíAyºB^V{C^ŒKo‡¼ø9ÖCןã0ä…ÏñcoÞ~:ý…ùôoVñÍÛyæ‡ß¼}5þ»Þ¼M.]¸Ã7oóAŽß¼êÄ7o;u½y›ÕÄ7o;u½y›ÕÄ7o;u½y›ÕÄ7o+5oÞFuâ›·ºÞ¼Íjâ›·ºÞ¼Íjâ›·ºÞ¼Íjâ›·•ºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:)ØWæ9ØGñzƒ}®`Åšã`_™ öíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠ\Á>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö
™`ŸÈžã`_™ öíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö û +]Á>š5ÇÁ¾1w°Oèä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+tûhÖûÊL°hr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ub°¯Ðì£Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì'è*اϑ`ÿês<~ûÇŸãß¼ýúq÷rÿÄoÞ^ϸ7oÿç_þé—ÿö§Ÿÿ¼yûòÑ~ß›·áGÛ!ïÕvò~ý ò¢Úƒò*5!/ª=È!¯Rò¢Úƒòu‡¼¤ŽA +y•yyQ¼ÃW+äE±æ8äUfB^D{C^¡^B^Pç ‡¼JMÈû¿[»ƒ^»îôºÓ_ÅÃLBˆ¤(‘ÓÎ GF02ŒXiT9UJùöMêîµïYò<\ªdj¬g_IESâï݇j:äÔ„¼T{Ð!ï¤&ä¥Úƒyõy¥ƒy'5!/ÕtÈ;© y©ö CÞIMÈKµò.êòJ=òNjB^ª=èwRòRíA‡¼“š—j2ä]Є¼2{Ž!ïD^!/ÉšsÈ;™ y‰ö CÞIMÈKµò.êòJ=òNjB^ª=èwRòRíA‡¼“š—j:ä]Ô;ä•z:äÔ„¼T{Ð!ï¤&ä¥Úƒy'5!/ÕtÈ»¨wÈ+õtÈ;© y©ö CÞIMÈKµòNèòÒ¬9†¼™WdÏ9äÌ„¼D{Ð!ï¤&ä¥Úƒy'5!/ÕtÈ»¨wÈ+õtÈ;© y©ö CÞIMÈKµòNjB^ª=èwQïWê1èwRòRíA‡¼“š—j:äÔ„¼T{Ð!ï ¾†¼PÏA‡¼“š—j:äÔ„¼T{!ï„^!/ÍšsÈ»˜wÈ+ôtÈ;© y©ö CÞIMÈKµòNjB^ª=èwQïWê1èwRòRíA‡¼“š—j:äÔ„¼T{Ð!ï¢Þ!¯ÔcÐ!ï¤&ä¥Úƒy'5!/ÕtÈ;© y©ö CÞE½C^©Ç CÞIMÈKµòNèòÒ¬9‡¼“™—h:ä]Ô;ä•z:äÔ„¼T{Ð!ï¤&ä¥Úƒy'5!/ÕtÈ»¨wÈ+õtÈ;© y©ö CÞIMÈKµòNjB^ª=èwQïWê1èwRòRíA‡¼“š—j:äÔ„¼T{Ð!ï¢Þ!¯Ôc!ï„^!/ÍšsÈ;™ y‰ö CÞIMÈKµò.êòJ=òNjB^ª=èwRòRíA‡¼“š—j:äÔ×ê9èwRòRíA‡¼“š—j:äÔ„¼T{Ð!¯âÒ!äÕs$ä}xŽç!ïóçøƒoÞþðÓ›/µïó7o_ŸùãoÞ~ÿûÞ¼‡»ß¼ýðpÏß¼ýõƒàÍÛRA¿y{Róæmª=è7oOjÞ¼MµýæíIÍ›·©ö ß¼½¨÷›·¥ƒ~óö¤æÍÛT{ÐoÞžÔ¼y›júÍÛ“š7oSíA¿y{Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcPÁþd¾ûÇìOàìS¬9û“™`Ÿh:ØÔ×`ê9è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÐÁþ¤&اڃö'5Á>Õt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAûš`_fÏ1ØŸÈ+Ø'Ysö'3Á>Ñt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAû‹zûRAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒý ½‚}š5Ç`!ì‹ì9û“™`Ÿh:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:ØÔ×`ê9è`RìSíAû“š`Ÿj2ØŸÐ+اYsöóö…ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒý ½‚}š5ç`2ìíAû‹zûRAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:Ø_Ô;Ø—z2ØŸÐ+اYsö'3Á>Ñt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAûƒúìC=ìOj‚}ª=è`RìSíAû“š`Ÿj:Øž OÁ¾ž#ÁþÃs<öŸ?Çñæí·ßyóöïßüôÃ[¿yûúÌöæíÿû×?ÿú×þ¯ÿÞ¼ýúhß›·ñ£Ý!ïÃö<äýúAòRíA‡¼“š—j:äÔ„¼T{Ð!ï¢Þ!¯ÔcP!ïd¾„¼ÇòNàòR¬9‡¼“™—h:äÔ×ê9èwRòRíA‡¼“š—j:äÔ„¼T{Ð!ï¢Þ!¯ÔcÐ!ï¤&ä¥Úƒy'5!/ÕtÈ;© y©ö CÞE½C^©Ç CÞIMÈKµòNjB^ª=èwRòRíA†¼šWfÏ1äÈ+ä%Ysy'3!/ÑtÈ;© y©ö CÞE½C^©Ç CÞIMÈKµòNjB^ª=èwRòRíA‡¼‹z‡¼RA‡¼“š—j:äÔ„¼T{Ð!ï¤&ä¥Úƒyõy¥ƒy'5!/ÕtÈ;© y©ö CÞ ½B^š5Çw!òŠì9‡¼“™—h:äÔ„¼T{Ð!ï¤&ä¥Úƒyõy¥ƒy'5!/ÕtÈ;© y©ö CÞIMÈKµò.êòJ=òNjB^ª=èwRòRíA‡¼“š—j:äÔ×ê9èwRòRíA‡¼“š—j2äÐ+ä¥Ysyóy…ƒy'5!/ÕtÈ;© y©ö CÞIMÈKµò.êòJ=òNjB^ª=èwRòRíA‡¼“š—j:ä]Ô;ä•z:äÔ„¼T{Ð!ï¤&ä¥Úƒy'5!/ÕtÈ»¨wÈ+õtÈ;© y©ö CÞ ½B^š5çw2òíA‡¼‹z‡¼RA‡¼“š—j:äÔ„¼T{Ð!ï¤&ä¥Úƒyõy¥ƒy'5!/ÕtÈ;© y©ö CÞIMÈKµò.êòJ=òNjB^ª=èwRòRíA‡¼“š—j:ä]Ô;ä•z2äÐ+ä¥Ysy'3!/ÑtÈ;© y©ö CÞE½C^©Ç CÞIMÈKµòNjB^ª=èwRòRíA‡¼ƒúòB=òNjB^ª=èwRòRíA‡¼“š—j:äU\:„¼zŽ„¼Ïñ<ä}þÇ›·ß}çÍÛï¿üá'¿yûúÌóöëøß÷æm<Üýæí‡‡{þæí¯oÞ–zúÍÛ“š7oSíA¿y{Róæmª=è7oOjÞ¼MµýæíE½ß¼-õô›·'5oÞ¦Úƒ~óö¤æÍÛT{ÐoÞžÔ¼y›júÍÛ‹zûRAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒ +ö'ó%اø8Æ`¯`ŸbÍ9ØŸÌûD{ÐÁþ ¾ûPÏAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj2Ø_Ðû2{ŽÁþD^Á>Éšs°?™ ö‰ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOèìÓ¬9û™`_dÏ9ØŸÌûD{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ ¾ûPÏAû“š`Ÿj:ØŸÔûT{Áþ„^Á>Íšs°¿˜w°/ôt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÐÁþ¤&اڃö'5Á>Õt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOèìÓ¬9û“™`Ÿh:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÁþ„^Á>Íšs°?™ ö‰ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:ØÔ×`ê9è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþó} +öõ öžãy°ÿü9þà›·ß~þ§úÓG¿yûúÌöæíÿôç?ýÏ_ÿú·çïÞþøþó¯Ê~÷ö—_Ì¾Äø¯÷uðÿ%¢yüßÉ'~¸;ù|øáž%Ÿ_?ÆÓä“âã“Ï ¼’OŠ5çäs2“|íA'Ÿƒúš|B=|Nj’Oª=èäsR“|RíA'Ÿ“šä“j:ù\Ô;ù”z:ùœÔ$ŸT{ÐÉç¤&ù¤ÚƒN>'5É'Õtò¹¨wò)õtò9©I>©ö “ÏIMòIµ|Nj’Oª=ÈäsA“|Êì9&Ÿy%Ÿ$kÎÉçd&ù$ÚƒN>'5É'Õtò¹¨wò)õtò9©I>©ö “ÏIMòIµ|Nj’Oª=èäsQïäSê1èäsR“|RíA'Ÿ“šä“j:ùœÔ$ŸT{ÐÉç¢ÞɧÔcÐÉç¤&ù¤ÚƒN>'5É'Õdò9¡WòI³æ˜|.d’O‘=çäs2“|íA'Ÿ“šä“j:ùœÔ$ŸT{ÐÉç¢ÞɧÔcÐÉç¤&ù¤ÚƒN>'5É'Õtò9©I>©ö “ÏE½“O©Ç “ÏIMòIµ|Nj’Oª=èäsR“|RíA'Ÿƒúš|B=|Nj’Oª=èäsR“|RíA&Ÿz%Ÿ4kÎÉçbÞɧÐcÐÉç¤&ù¤ÚƒN>'5É'Õtò9©I>©ö “ÏE½“O©Ç “ÏIMòIµ|Nj’Oª=èäsR“|RíA'Ÿ‹z'ŸRA'Ÿ“šä“j:ùœÔ$ŸT{ÐÉç¤&ù¤ÚƒN>õN>¥ƒN>'5É'Õdò9¡WòI³æœ|Nf’O¢=èäsQïäSê1èäsR“|RíA'Ÿ“šä“j:ùœÔ$ŸT{ÐÉç¢ÞɧÔcÐÉç¤&ù¤ÚƒN>'5É'Õtò9©I>©ö “ÏE½“O©Ç “ÏIMòIµ|Nj’Oª=èäsR“|RíA'Ÿ‹z'ŸRA&Ÿz%Ÿ4kÎÉçd&ù$ÚƒN>'5É'Õtò¹¨wò)õtò9©I>©ö “ÏIMòIµ|Nj’Oª=èäsP_“O¨ç “ÏIMòIµ|Nj’Oª=èäsR“|RíA'ŸÏ#Ä)ùÔs$ù|xŽçÉçóçøƒïhþáÇßkÁw4_Ÿùãïh~ÿûÞÑŒ‡»ßÑüðpÏßÑüõƒàÍRA¿£yRóŽfª=èw4OjÞÑLµýŽæIÍ;š©ö ßѼ¨÷;š¥ƒ~Gó¤æÍT{ÐïhžÔ¼£™júÍ“šw4SíA¿£yQïw4K=ýŽæIÍ;š©ö ßÑ<©yG3Õô;š'5ïh¦Úƒ~Gó¢ÞÁ¾ÔcPÁþd¾ûÇìOàìS¬9û“™`Ÿh:ØÔ×`ê9è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÐÁþ¤&اڃö'5Á>Õt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAûš`_fÏ1ØŸÈ+Ø'Ysö'3Á>Ñt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAû‹zûRAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒý ½‚}š5Ç`!ì‹ì9û“™`Ÿh:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:ØÔ×`ê9è`RìSíAû“š`Ÿj2ØŸÐ+اYsöóö…ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒý ½‚}š5ç`2ìíAû‹zûRAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:Ø_Ô;Ø—z2ØŸÐ+اYsö'3Á>Ñt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAûƒúìC=ìOj‚}ª=è`RìSíAû“š`Ÿj:Øž OÁ¾ž#ÁþÃs<öŸ?Ç{Gó»OoßüüùßÛõŽæ|f{GóÿõßþíÙÛ™?¼T–z;ó‡/ÿºùJ~3õÿéùÛ™¯øýS]Ÿyü¡ž†þßxŒç¡?Ñc¡ÿ¦^¡¿Õdè¿©Wèoµúoêú[íA†þ“šÐŸê1ÈÐS¯Ðßj2ôßÔ+ô·Úƒý7õ +ýö CÿIMèOõdè¿©Wèoµúoêú[íA†þ›z…þV{¡ÿ¤&ô§z"ôßÌßC‹c +ý7ð%ô·Xsý7ó +ýö CÿE½C©ç CÿM½B«=ÈÐS¯Ðßj2ôßÔ+ô·Úƒý'5¡?Õc¡ÿ¦^¡¿Õdè¿©Wèoµúoêú[íA†þ“šÐŸê1ÈÐS¯Ðßj2ôßÔ+ô·Úƒý7õ +ýö Bÿ ½Bš=§Ð#_B“5ÇÐ3¯Ðßh2ôßÔ+ô·Úƒý'5¡?Õc¡ÿ¦^¡¿Õdè¿©Wèoµúoêú[íA†þ“šÐŸê1ÈÐS¯Ðßj2ôßÔ+ô·Úƒý7õ +ýö CÿIMèOõdè¿©Wèoµúoêú[íA…þúúÛ¬9…þy…þ${Ž¡ÿf^¡¿Ñdè¿©Wèoµúoêú[íA†þ“šÐŸê1ÈÐS¯Ðßj2ôßÔ+ô·Úƒý7õ +ýö CÿIMèOõdè¿©Wèoµúoêú[íA†þ›z…þV{¡ÿ¢Þ¡¿Ôs¡ÿ¦^¡¿Õdè¿©WèoµúoèKèo³æúOfB¢Ç CÿM½B«=ÈÐS¯Ðßj2ôßÔ+ô·Úƒý'5¡?Õc¡ÿ¦^¡¿Õdè¿©Wèoµúoêú[íA†þ“šÐŸê1ÈÐS¯Ðßj2ôßÔ+ô·Úƒý7õ +ýö CÿIMèOõdè¿©WèoµúoèKèo³æúoæúíA†þ“šÐŸê1ÈÐS¯Ðßj2ôßÔ+ô·Úƒý7õ +ýö CÿIMèOõdè¿©Wèoµúoêú[íA†þ›z…þV{¡ÿ¤&ô§z2ôßÔ+ô·Úƒý7õ +ýö CÿM½B«=ÈÐRúS=úoèKèo³æúoæúíA†þ›z…þV{¡ÿ¤&ô§z2ôßÔ+ô·Úƒý7õ +ýö CÿM½B«=ÈÐQïÐ_ê9ÈÐS¯Ðßj2ôßÔ+ô·Úƒý7õ +ýö CèKèÏç¸>ôøOC<Ç{3ÿ—Žöãçÿ-éÍüùÌ~3ÿÃøßõf~=\>ôøpσý¯Á¾ÔcÐÁþ¤&اڃö'5Á>Õt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAû‹zûRAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒ +ö'ó%اø8Æ`¯`ŸbÍ9ØŸÌûD{ÐÁþ ¾ûPÏAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj2Ø_Ðû2{ŽÁþD^Á>Éšs°?™ ö‰ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOèìÓ¬9û™`_dÏ9ØŸÌûD{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ ¾ûPÏAû“š`Ÿj:ØŸÔûT{Áþ„^Á>Íšs°¿˜w°/ôt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÐÁþ¤&اڃö'5Á>Õt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOèìÓ¬9û“™`Ÿh:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÁþ„^Á>Íšs°?™ ö‰ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:ØÔ×`ê9è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþó} +öõ öžãy°ÿü9þà›ùúR¾ó›ù¯Ïloæÿ§_ÿûÿøõÏÿùׯ_Ìÿù_u>¼û΋ùß½ùñË‚¼>Õ×™øù§§¥ÿûßï +•z:Ôt¡T{Ðeè¤&
¥ÚƒŽC'5u(Õtº¨w *õt":©iD©ö +ÑIM&JµŠNèUŠÒ¬9¶¢™XTdÏ9Ìô¢D{ÐÅè¤&¥ÚƒŽF'5Õ(Õt7º¨w8*õt::©iG©ö ëÑIM>JµNj +Rª=è†tQïˆTê1èŒtRÓ‘RíA—¤“š””j:&ÔÔ¤T{Ð=é ¾¥PÏA'¥“š¦”jº*Ôd¥T{aé„^e)Íšs[º˜w\*ôt^:©éK©ö ÓIMbJµ™Nj*Sª=èÎtQïÐTê1èÔtRÓšRíAצ“šÜ”j:8Ô§T{ÐÍé¢ÞÑ©ÔcÐÙ餦;¥Úƒ.O'5é)Õt|:©©O©ö ûÓE½T©Ç ÔIMƒJµY¡Nè•¡Ò¬9‡¨“™•hºE]Ô;F•z:GÔô¨T{ÐEê¤&I¥ÚƒŽR'5U*Õt—º¨w˜*õtš:©iS©ö ëÔIMžJµ¨Nj +Uª=èFuQïHUê1èLuRÓ©RíA—ª“šT•j:VÔÔªT{нê¢ÞÁªÔcÉê„^Í*Íšsµ:™ÉV‰ö ÃÕIM¹JµÝ®.ê¯J=¯NjúUª=è‚uR“°RíAG¬“šŠ•jºcÔ×ê9è”uRÓ²RíA׬“šœ•j:hÔT{ÐMëóÞrŠZõ©ZžãýϲÖçÏñ»ÖÏÿÞþÃûîZ¯Ïl]ë_ýçùùóo¿þù·¿}ݶ~þÌ?ºm}ÿùoÈû/ÿ=÷õѾþkýåüö_ì×~
?Úݯ=ühÏûµ¯ýšÔcÐýÚ¤¦_£Úƒî×&5ýÕt¿6©éרö ûµE½û5©Ç ûµIM¿FµÝ¯Mjú5ª=è~mRÓ¯QíAökš~Mfϱ_›È«_#Ysî×&3ýÑt¿6©éרö ûµE½û5©Ç ûµIM¿FµÝ¯Mjú5ª=è~mRÓ¯QíA÷k‹z÷kRA÷k“š~jº_›ÔôkT{ÐýÚ¤¦_£Úƒî×õîפƒî×&5ýÕt¿6©éרö ûµ ½ú5š5Ç~m!Ó¯‰ì9÷k“™~hº_›ÔôkT{ÐýÚ¤¦_£Úƒî×õîפƒî×&5ýÕt¿6©éרö ûµIM¿FµÝ¯-êݯI=ݯMjú5ª=è~mRÓ¯QíA÷k“š~jº_Ô×~
ê9è~mRÓ¯QíA÷k“š~j²_›Ð«_£Ysî×óîׄƒî×&5ýÕt¿6©éרö ûµIM¿FµÝ¯-êݯI=ݯMjú5ª=è~mRÓ¯QíA÷k“š~jº_[Ô»_“zº_›ÔôkT{ÐýÚ¤¦_£Úƒî×&5ýÕt¿¶¨w¿&õt¿6©éרö ûµ ½ú5š5ç~m2Ó¯íA÷k‹z÷kRA÷k“š~jº_›ÔôkT{ÐýÚ¤¦_£Úƒî×õîפƒî×&5ýÕt¿6©éרö ûµIM¿FµÝ¯-êݯI=ݯMjú5ª=è~mRÓ¯QíA÷k“š~jº_[Ô»_“z²_›Ð«_£Ysî×&3ýÑt¿6©éרö ûµE½û5©Ç ûµIM¿FµÝ¯Mjú5ª=è~mRÓ¯QíA÷kƒúÚ¯A=ݯMjú5ª=è~mRÓ¯QíA÷k“š~jº_SS5ôkzŽôkÏñ¼_{þG¿öî;ýÚÛ?ÿ`?¹_»>³÷k_wkï>O¼õ+úñ%Qy}¢¯ÿÿüþé;ÿ:ûïüDùÐãOôüKï¿~|ë=Õô÷Þ/êýÅ÷RÁ'êõ]õ“úòÙï¨=øD½¾®~R_>ûµŸ¨×7ÖOêËg¿£öà“7|^_Z¿¨×gƒOÔë{ë'õå³ßQ{ð‰z½òtRóUª=èw¨NjÞ¡JµýÕE½ß¡*õÔ;T'óåªÇøÕ ¼Þ¡J±æüÕÉÌ;T‰ö ß¡:¨¯ïP…zúª“šw¨RíA¿CuRóUª=èw¨Njtª=è}Qï]ê1è}RÓ SíA7蓚jºAŸÔ4èT{Ð
ú¢Þ
ºÔcÐ
ú¤¦A§ÚƒnÐ'5
:Õtƒ>©iЩö ôMƒ.³çØ OäÕ “¬97è“™hºAŸÔ4èT{Ð
ú¢Þ
ºÔcÐ
ú¤¦A§ÚƒnÐ'5
:Õtƒ>©iЩö ôE½t©Ç ôIMƒNµÝ Ojtª=è}RÓ SíA7è‹z7èRA7蓚jºAŸÔ4èT{
ú„^
:Íšcƒ¾iÐEöœôÉLƒN´Ý Ojtª=è}RÓ SíA7è‹z7èRA7蓚jºAŸÔ4èT{Ð
ú¤¦A§ÚƒnÐõnÐ¥ƒnÐ'5
:Õtƒ>©iЩö ôIMƒNµÝ êkƒõtƒ>©iЩö ôIMƒNµÙ OèÕ Ó¬97è‹y7èBA7蓚jºAŸÔ4èT{Ð
ú¤¦A§ÚƒnÐõnÐ¥ƒnÐ'5
:Õtƒ>©iЩö ôIMƒNµÝ /êÝ K=Ý Ojtª=è}RÓ SíA7蓚jºA_Ô»A—zºAŸÔ4èT{
ú„^
:Íšsƒ>™iЉö ôE½t©Ç ôIMƒNµÝ Ojtª=è}RÓ SíA7è‹z7èRA7蓚jºAŸÔ4èT{Ð
ú¤¦A§ÚƒnÐõnÐ¥ƒnÐ'5
:Õtƒ>©iЩö ôIMƒNµÝ /êÝ K=Ù OèÕ Ó¬97è“™hºAŸÔ4èT{Ð
ú¢Þ
ºÔcÐ
ú¤¦A§ÚƒnÐ'5
:Õtƒ>©iЩö ôA}mСžƒnÐ'5
:Õtƒ>©iЩö ôIMƒNµÝ +t=Gô‡çxÞ ?Ž?øÕÞ¾yûþƒôë3[ƒþÿýõO¿ýúýÓ›÷Ÿ¾¡zù³Ê×Gúú¯ñû÷?=‹Ðï0?Òf?üHÏÃì¯a6Õt˜=© ³©ö ÃìIM˜Mµf/êfK=fOjÂlª=è0{RfSíA‡Ù“š0›j:Ì^Ô;Ì–z*̞̗0›âãÃì ¼ÂlŠ5ç0{2fíA‡ÙƒúfC=fOjÂlª=è0{RfSíA‡Ù“š0›j:Ì^Ô;Ì–z:ÌžÔ„ÙT{Ðaö¤&̦ڃ³'5a6Õt˜½¨w˜-õt˜=© ³©ö ÃìIM˜MµfOjÂlª=È0{AfËì9†Ùy…Ù$kÎaöd&Ì&Úƒ³'5a6Õt˜½¨w˜-õt˜=© ³©ö ÃìIM˜MµfOjÂlª=è0{Qï0[ê1è0{RfSíA‡Ù“š0›j:ÌžÔ„ÙT{Ðaö¢Þa¶ÔcÐaö¤&̦ڃ³'5a6Õd˜=¡W˜M³æf/dÂl‘=ç0{2fíA‡Ù“š0›j:ÌžÔ„ÙT{Ðaö¢Þa¶ÔcÐaö¤&̦ڃ³'5a6Õt˜=© ³©ö ÃìE½Ãl©Ç ÃìIM˜MµfOjÂlª=è0{RfSíA‡ÙƒúfC=fOjÂlª=è0{RfSíA†Ùz…Ù4kÎaöbÞa¶ÐcÐaö¤&̦ڃ³'5a6Õt˜=© ³©ö ÃìE½Ãl©Ç ÃìIM˜MµfOjÂlª=è0{RfSíA‡Ù‹z‡ÙRA‡Ù“š0›j:ÌžÔ„ÙT{Ðaö¤&̦ڃ³õ³¥ƒ³'5a6Õd˜=¡W˜M³æfOfÂl¢=è0{Qï0[ê1è0{RfSíA‡Ù“š0›j:ÌžÔ„ÙT{Ðaö¢Þa¶ÔcÐaö¤&̦ڃ³'5a6Õt˜=© ³©ö ÃìE½Ãl©Ç ÃìIM˜MµfOjÂlª=è0{RfSíA‡Ù‹z‡ÙRA†Ùz…Ù4kÎaöd&Ì&Úƒ³'5a6Õt˜½¨w˜-õt˜=© ³©ö ÃìIM˜MµfOjÂlª=è0{P_Ãl¨ç ÃìIM˜MµfOjÂlª=è0{RfSíA‡ÙІ‡0[Ï‘0ûá9ž‡ÙÏŸã½üíÇŸ|Ï0;ŸÙÂì¿ýúÛ×YöÛŸÿ·ã,ûÃÇ7?~ú‡‡:ŸúÝçùÝÓwƒ¿}ó×ïÑ”=þ@ßx7øû7Þ¾ûÖƒ|C}ùìwÔ|¢~ymùª¾|ö;jò=è›z½Ýjò=蓚ܞê1ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí7õÊíö sûIMnOõdn¿©Wnoµ™Ûoê•Û[íAæö›zåöV{¹ý¤&·§z"·ßÌßs{‹cÊí7ð%··XsÌí7óÊíö sûE½s{©ç sûM½r{«=ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí'5¹=Õc¹ý¦^¹½Õdn¿©Wnoµ™Ûoê•Û[íAæö“šÜžê1ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí7õÊíö rû ½r{š=§Ü~#_r{“5ÇÜ~3¯ÜÞh2·ßÔ+··ÚƒÌí'5¹=Õc¹ý¦^¹½Õdn¿©Wnoµ™Ûoê•Û[íAæö“šÜžê1ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí7õÊíö sûIMnOõdn¿©Wnoµ™Ûoê•Û[íAåöú’ÛÛ¬9åöyåö${޹ýf^¹½Ñdn¿©Wnoµ™Ûoê•Û[íAæö“šÜžê1ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí7õÊíö sûIMnOõdn¿©Wnoµ™Ûoê•Û[íAæö›zåöV{¹ý¢Þ¹½Ôs¹ý¦^¹½Õdn¿©Wnoµ•ÛoèKno³æ˜ÛOfr{¢Ç sûM½r{«=ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí'5¹=Õc¹ý¦^¹½Õdn¿©Wnoµ™Ûoê•Û[íAæö“šÜžê1ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí7õÊíö sûIMnOõdn¿©Wnoµ•ÛoèKno³æ˜Ûoæ•ÛíAæö“šÜžê1ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí7õÊíö sûIMnOõdn¿©Wnoµ™Ûoê•Û[íAæö›zåöV{¹ý¤&·§z2·ßÔ+··ÚƒÌí7õÊíö sûM½r{«=ÈÜ~R“ÛS=•ÛoèKno³æ˜Ûoæ•ÛíAæö›zåöV{¹ý¤&·§z2·ßÔ+··ÚƒÌí7õÊíö sûM½r{«=ÈÜ~QïÜ^ê9ÈÜ~S¯ÜÞj2·ßÔ+··ÚƒÌí7õÊíö s{ÄàKnÏç¸>ôøOs{<Ç{úÛ/ÿïý;çö×g¶ÜþÿýßÌí_èïËíñݹýÃô<·ÿúAÛSíAçö“šÜžj:·ŸÔäöT{йý¢Þ¹½Ôcйý¤&·§ÚƒÎí'5¹=Õtn?©Éí©ö sûE½s{©Ç sûIMnOµÛOjr{ª=èÜ~R“ÛSíAçö‹zçöRAåö“ù’ÛS|cn?WnO±æœÛOfr{¢=èÜ~P_s{¨ç sûIMnOµÛOjr{ª=èÜ~R“ÛSíAçö‹zçöRAçö“šÜžj:·ŸÔäöT{йý¤&·§ÚƒÎíõÎí¥ƒÎí'5¹=Õtn?©Éí©ö sûIMnOµ™Û/hr{™=ÇÜ~"¯ÜždÍ9·ŸÌäöD{йý¤&·§ÚƒÎíõÎí¥ƒÎí'5¹=Õtn?©Éí©ö sûIMnOµÛ/êÛK=ÛOjr{ª=èÜ~R“ÛSíAçö“šÜžj:·_Ô;·—z:·ŸÔäöT{йý¤&·§ÚƒÌí'ôÊíiÖsû…Ln/²çœÛOfr{¢=èÜ~R“ÛSíAçö“šÜžj:·_Ô;·—z:·ŸÔäöT{йý¤&·§ÚƒÎí'5¹=Õtn¿¨wn/õtn?©Éí©ö sûIMnOµÛOjr{ª=èÜ~P_s{¨ç sûIMnOµÛOjr{ª=ÈÜ~B¯ÜžfÍ9·_Ì;·z:·ŸÔäöT{йý¤&·§ÚƒÎí'5¹=Õtn¿¨wn/õtn?©Éí©ö sûIMnOµÛOjr{ª=èÜ~QïÜ^ê1èÜ~R“ÛSíAçö“šÜžj:·ŸÔäöT{йý¢Þ¹½Ôcйý¤&·§ÚƒÌí'ôÊíiÖœsûÉLnO´Û/êÛK=ÛOjr{ª=èÜ~R“ÛSíAçö“šÜžj:·_Ô;·—z:·ŸÔäöT{йý¤&·§ÚƒÎí'5¹=Õtn¿¨wn/õtn?©Éí©ö sûIMnOµÛOjr{ª=èÜ~QïÜ^ê1ÈÜ~B¯ÜžfÍ9·ŸÌäöD{йý¤&·§ÚƒÎíõÎí¥ƒÎí'5¹=Õtn?©Éí©ö sûIMnOµÛêknõtn?©Éí©ö sûIMnOµÛOjr{ª=èÜþy>åözŽäöÏñ<·þ¿ÿÑë§ßÿ`o·ÿü;Š÷¿gtŸõîã·kûë3×GÛ§¥ÿ§_ÿûÿøõÏÿù×ÿç¿|ÝÜøéóΧëƒÿá¿þóßþöÔý÷¨á~ªóÉøòVܧ}þ3ÝéûëÏô¼|ÿê!¾‹¬9gï™ê]d͹yÈ;yÙsÞ2½»Èšsí¾‰ÝEÖœS÷…Lé.²æÜ¹ä¹ƒì9Gî™Æ]d͹p_Èî"kÎyûB¦nYsnÛòNÛAöœÂö|éÚÅ=L±j_´+j÷8æ¤}S´K¬9÷ìß'_söçä1ç˜}!Ó²‹¬9—ì™]dÍ9c_ÈTì"kÎ
û@Þ ;ÈžsÀ¾é×EÖœëõ…L¼.²æœ®/dÊu‘5çn} ïldÏ9Z_È4ë"kÎÅúB&XYsÎÕ2µºÈšc«>ˆIÕÖCõÅ»:uyc®Ô0‘ºÄšs¢¾)ÔEÖœûô¼ót=ç8}!Ó¦‹¬9—é™0]dÍ9K_ÈTé"kÎMú@ÞI:Èžs¾éÑEÖœkô…LŒ.²æœ¢/dJt‘5ç} ïdÏ9B_È4è"kÎúB&@YsÌÏñªÏ>ޱ=¼¤çðjÌáù¦;—Xs®Î2ѹȚsr¾)ÎEÖœ{ó¼ss=çØ|!Óš‹¬9—æ™Ð\dÍ93_ÈTæ"kÎù@Þ‰9Èžs`¾éËEÖœëò…L\.²æœ–/dÊr‘5ç®üûäkVþœ<æ•/dšr‘5ç¢|!”‹¬9æä‹xÕäÇÜ’à’Cì9‡ä™Ž\d͹"_ÈDä"kÎ ùB¦ YsîÇòÎÇAöœãñ…L;.²æ\Ž/dÂq‘5çl|!S‹¬97ãy'ã {ÎÁøB¦Ys®Å2±¸Èšs*¾)ÅEÖœ;ñ¼3q=çH|!Óˆ‹¬9â‹xâÇœ‡/`êp‰5ç6| ï4dÏ9_Ètá"kÎUøB& +YsNÂ2E¸Èšs>w²çƒ/dZp‘5ç|!‚‹¬9gà™ +\d͹È;ÙsÀ2ý·Èšsý½‰¿EÖœÓï…Lù-²æÜ}ä}ƒì9Fß‹x5ßÇ\|/`‚o‰5çÜ{!S{‹¬9·Þy§Þ {Ρ÷B¦óYs®¼2‘·Èšsâ½)¼EÖœûîy÷sò˜sܽi»EÖœËî…LØ-²æœu/dªn‘5ç¦ûil<%ÝxˆÝ¯ñþí³ ûéCüÁ×§ÿøéóÜ'¿>ýúÌk†ýïß}øáßýÇ¿þå·¿üö¿þíׯ³ì/ïSÿºËþðã§gaö‡o>¼ë‡Ë‡îôõ¾ô¯/`—zú쓚j:CŸÔtèT{Ð%ú¤&E§ÚƒŽÑõ®Ñ¥ƒîÑ'5A:Õt’>©iÒ©ö «ôIM–Nµ¦/ê]¦K=ݦOjâtª=è<}RÓ§SíAꓚDj:R_Ô»R—zªSŸÌ—PâãSõ ¼ZuŠ5çZ}2“«íAëƒúZ¬C=ݬOj¢uª=èl}RÓSíA—듚tj:^_Ô»^—zº_ŸÔìT{Ð û¤¦a§Úƒ®Ø'5;ÕtȾ¨wÉ.õtË>©‰Ù©ö söIMÏNµ]´Oj’vª=Ȩ}ASµËì9víy…í$kÎiûd¦m'Úƒ®Û'5y;Õtྨwá.õtã>©‰Ü©ö 3÷IMçNµ]ºOjRwª=èØ}QïÚ]ê1èÞ}R¼SíA'æjºzŸÔdïT{Ðáû¢Þå»ÔcÐíû¤&~§ÚƒÎß'5ý;Õd?¡WO³æÁ/d*x‘=ç~2ÂíA§ð“šžjº†ŸÔäðT{ÐAü¢ÞE¼ÔcÐMü¤&Š§ÚƒÎâ'5]<Õt?©Iã©ö ãøE½ëx©Ç ûøIM OµÈOjyª=èJ~R“ÉSíA‡òƒúZÊC=ÝÊOjbyª=è\~RÓËSíAóz%ó4kÎÑübÞÕ¼ÐcÐÝü¤&œ§ÚƒNç'5í<Õt=?©Éç©ö úE½z©Ç úIMDOµÑOj:zª=è’~R“ÒSíAÇô‹z×ôRA÷ô“š žj:©ŸÔ4õT{ÐUý¤&«§Úƒëõ.륃në'5q=Õd^?¡W_O³æ\ØOf{¢=èÈ~QïÊ^ê1èÎ~RÚSíA§ö“šÖžjº¶ŸÔäöT{ÐÁý¢ÞŽÔcÐÍý¤&º§ÚƒÎî'5Ý=Õty?©Iï©ö ãûE½ë{©Ç ûûIM€OµàOj|ª=è +R“áSíA‡ø‹z—øRA¶øzÅø4kÎ9þd¦Ç'Úƒ.ò'5I>Õt”¿¨w•/õt—?© ó©ö ÓüIM›Oµ]çOjò|ª=è@P_}¨ç ýIM¤OµéOj:}ª=èRR“êSíAÇúÏô©Ö×s$×xŽç½þóçøƒÁþûŸÞ¼ÿù£ƒýë3~û»ëÍê¿üò§?ÿé·_~ùúìŸÿUçû¼€ýýí_ÿò/ߪXþÒä¼>ÖשÿÛŸ•þw׊ŸêîZ~ªç]ë×Ï®•jºk]Ô»k•zªkÌ—®•âã»Ö ¼ºVŠ5ç®u2ÓµíAwƒúÚµB=ݵNjºVª=è®uRÓµRíAw“š®•jºk]Ô»k•zºkÔtT{Ð]뤦k¥ÚƒîZ'5]+Õt׺¨w×*õt×:©éZ©ö »ÖIM×JµÝµNjºVª=È®uAÓµÊì9vyu$kÎ]ëd¦k%ÚƒîZ'5]+Õt׺¨w×*õt×:©éZ©ö »ÖIM×JµÝµNjºVª=è®uQï®Uê1è®uRÓµRíAw“š®•jºkÔtT{Ð]ë¢Þ]«ÔcÐ]뤦k¥ÚƒîZ'5]+Õd×:¡W×J³æØµ.dºV‘=ç®u2ÓµíAw“š®•jºkÔtT{Ð]ë¢Þ]«ÔcÐ]뤦k¥ÚƒîZ'5]+Õt×:©éZ©ö »ÖE½»V©Ç »ÖIM×JµÝµNjºVª=è®uRÓµRíAwƒúÚµB=ݵNjºVª=è®uRÓµRíAvzu4kÎ]ëbÞ]«ÐcÐ]뤦k¥ÚƒîZ'5]+Õt×:©éZ©ö »ÖE½»V©Ç »ÖIM×JµÝµNjºVª=è®uRÓµRíAw‹zwRAw“š®•jºkÔtT{Ð]뤦k¥ÚƒîZõîZ¥ƒîZ'5]+Õd×:¡W×J³æÜµNfºV¢=è®uQï®Uê1è®uRÓµRíAw“š®•jºkÔtT{Ð]ë¢Þ]«ÔcÐ]뤦k¥ÚƒîZ'5]+Õt×:©éZ©ö »ÖE½»V©Ç »ÖIM×JµÝµNjºVª=è®uRÓµRíAw‹zwRAvzu4kÎ]ëd¦k%ÚƒîZ'5]+Õt׺¨w×*õt×:©éZ©ö »ÖIM×JµÝµNjºVª=è®uP_»V¨ç »ÖIM×JµÝµNjºVª=è®uRÓµRíAwÏ{Ë©kÕs¤k}xŽç]ëóçøý^?ýþƒ_þ³Ò»owŸGñþ÷ŒîÝû7?~~Œovׇòwï¯`õŸ~ýíë¤õíÇÏÿÛ¹>ðò.ë³<|÷á͇/¿‰|}žo¼»úóOü¤h}÷Ó›·¾óóäC?Ï× ä»Ïúå—¯äêËg¿£öà·Õ÷oß¼}?ª×gƒOÔ÷o~z÷㨾|ö;j>Q?ÿmøò‹Ë¤¾|ö;j>Q?ÿmøaU_>ûµ¿þøöÍŸ~ÚÔë³VÁ'êû7¾üj5©/ŸýŽÚƒOÔŸÞüðóª¾|ö;j>Q?¾ùðÓÇQ}ùìwÔü¶úáó߆Ÿ6õú¬Õcð‰úþ÷÷÷oêËg¿£öàõó߆ñ‰—~Ǭ¹'äõ-“™¯- ÚƒþÚ‚E½¿¶@ê1è¯-˜Ô|mÕô×Lj¾¶€júk&5_[@µýµ‹zmÔcÐ_[0©ùÚª=è¯-˜Ô|mÕô×Lj¾¶€júkõþÚ©Ç ¿¶`RóµT{Ð_[0©9ï¢Úƒ>ïšÔœwQíAŸw-ê}Þ%õÔy×d¾œwQ|ãy×^ç]kÎç]“™ó.¢=èó®A}=ï‚zú¼kRsÞEµ}Þ5©9ï¢Úƒ>ïšÔœwQíAŸw-ê}Þ%õôyפ漋jú¼kRsÞEµ}Þ5©9ï¢Úƒ>ïZÔû¼Kê1èó®IÍyÕôyפ漋jú¼kRsÞEµyÞµ 9ï’Ùs<ïšÈ뼋dÍù¼k2sÞE´}Þ5©9ï¢Úƒ>ïZÔû¼Kê1èó®IÍyÕôyפ漋jú¼kRsÞEµ}Þµ¨÷y—ÔcÐç]“šó.ª=èó®IÍyÕôyפ漋jú¼kQïó.©Ç Ï»&5ç]T{Ðç]“šó.ª=Èó® ½Î»hÖÏ»2ç]"{Îç]“™ó.¢=èó®IÍyÕôyפ漋jú¼kQïó.©Ç Ï»&5ç]T{Ðç]“šó.ª=èó®IÍyÕôy×¢Þç]RAŸwMjλ¨ö Ï»&5ç]T{Ðç]“šó.ª=èó®A}=ï‚zú¼kRsÞEµ}Þ5©9ï¢Úƒ<ïšÐ뼋fÍù¼k1ïó.¡Ç Ï»&5ç]T{Ðç]“šó.ª=èó®IÍyÕôy×¢Þç]RAŸwMjλ¨ö Ï»&5ç]T{Ðç]“šó.ª=èó®E½Ï»¤ƒ>ïšÔœwQíAŸwMjλ¨ö Ï»&5ç]T{Ðç]‹zŸwI=}Þ5©9ï¢Úƒ<ïšÐ뼋fÍù¼k2sÞE´}Þµ¨÷y—ÔcÐç]“šó.ª=èó®IÍyÕôyפ漋jú¼kQïó.©Ç Ï»&5ç]T{Ðç]“šó.ª=èó®IÍyÕôy×¢Þç]RAŸwMjλ¨ö Ï»&5ç]T{Ðç]“šó.ª=èó®E½Ï»¤ƒ<ïšÐ뼋fÍù¼k2sÞE´}Þ5©9ï¢Úƒ>ïZÔû¼Kê1èó®IÍyÕôyפ漋jú¼kRsÞEµ}Þ5¨¯ç]PÏAŸwMjλ¨ö Ï»&5ç]T{Ðç]“šó.ª=èó®ç×GÓy—ž#ç]Ïñü¼ëùsüÁ¯-øò_¼~þà¯-¸>óz›õïß}øáßýÇ¿þå·¿üö¿þíׯoµ>¼|ÁÃø7nµ~üôìVëöñpw°ÿðpσý¯Á¾ÔcÐÁþ¤&اڃö'5Á>Õt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOj‚}ª=è`RìSíAû‹zûRAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒ +ö'ó%اø8Æ`¯`ŸbÍ9ØŸÌûD{ÐÁþ ¾ûPÏAû“š`Ÿj:ØŸÔûT{ÐÁþ¤&اڃöõö¥ƒö'5Á>Õt°?© ö©ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj2Ø_Ðû2{ŽÁþD^Á>Éšs°?™ ö‰ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOèìÓ¬9û™`_dÏ9ØŸÌûD{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ ¾ûPÏAû“š`Ÿj:ØŸÔûT{Áþ„^Á>Íšs°¿˜w°/ôt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÐÁþ¤&اڃö'5Á>Õt°?© ö©ö ƒýE½ƒ}©Ç ƒýIM°OµìOèìÓ¬9û“™`Ÿh:Ø_Ô;Ø—z:ØŸÔûT{ÐÁþ¤&اڃö'5Á>Õt°¿¨w°/õt°?© ö©ö ƒýIM°OµìOj‚}ª=è`Qï`_ê1è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþ¢ÞÁ¾ÔcÁþ„^Á>Íšs°?™ ö‰ö ƒýIM°Oµì/êìK=ìOj‚}ª=è`RìSíAû“š`Ÿj:ØÔ×`ê9è`RìSíAû“š`Ÿj:ØŸÔûT{ÐÁþó} +öõ öžãy°ÿü9Ž`ÿƒýÏÿPx÷ž½þõË»ëËV~ùåOþÓo¿üòõW²|þï>]ûÇ_û׿üË·ÖŸ?~ü‡×‡úºóûã³Ì?Q+~¤|æáGzš´~ýÏ‹V’5Çžu!“³Šì9Ĭø{ËJîaJ%뤽„¬äǘ±NàU±R¬96¬y'¬ 9¬yõ«$kŽõêD^ñ*Éšcº:‘W¹J²æØ.d²U‘=Çhu"¯f•dͱXÈ+X%YsÌU'òªUIÖ[Õ…Lª*²çªNäÕ©’¬9VªyEª$kމêD^…*ÉšSŸºˆWž*°Æ§NÞK›JïqŒeê^a*Åšc–:‘W•J²æØ¤.d’T‘=Ç u"¯•dͱFÈ+F%YsLQ'ò*QIÖ;Ô…L†*²ç¡NäÕ ’¬9¨y¨$kŽùéD^õ)Éšc{ºIOEöÃÓ‰¼ºS’5Çêt"¯è”dÍ)9Ä—â”àã˜zÓÅ»rSy5ÆØt¯Ö”bͱ4È+4%YsÌL'òªLIÖÓ…Lb*²ç˜NäÕ—’¬9Ö¥yÅ¥$kŽiéD^e)ÉšcWºÉJEö£Ò‰¼šR’5Ç¢t"¯ ”dÍ1'È«&%YslIòNIAsI'òêHIÖ+Ò‰¼"R’5§„t_ +R‚cìG0ù¨Äžc<:‘W;J²æXŽN䎒¬9f£yU£$kŽÍèB&ÙsF'òêEIÖkщ¼bQ’5ÇTt"¯R”dͱ]Èd¢"{Ž‘èD^(Éšc!:‘W J²æ˜‡NäU‡’¬9¶¡™4TdÏ1È«%YsªB'ñ% +%ø8Æ$t¯"”bͱ]Èä "{Ž1èD^-(Éšc :‘WJ²æ˜NäU’¬96 ™TdÏ1 +O’5Ǿs!“wŠì9Æyµ$kŽeçD^a'ÉšcÖ9‘WÕI²æØtät‚<ætNäÕs’¬9ÖœyÅœ$kŽ)çD^%'ÉšcÇù¼0\2N=Äõ™‡‡xq>ˆÏ¿iÿôæÃ—ÿˆ÷ãÇÏÿOãÛ/fþù훟ßÿþkÖ›o¾ŸæË?ͯOóãçÖ~þ‡ë#_žæþéÉÓ¼ÎDúÿd§Uwendstream +endobj +1660 0 obj << +/Type /Page +/Contents 1661 0 R +/Resources 1659 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1178 0 R +/Annots [ 1663 0 R 1664 0 R 1665 0 R 1666 0 R 1667 0 R 1668 0 R 1669 0 R 1670 0 R 1671 0 R 1672 0 R 1673 0 R 1674 0 R 1675 0 R 1676 0 R 1677 0 R 1678 0 R 1679 0 R 1680 0 R 1681 0 R 1682 0 R 1683 0 R 1684 0 R 1685 0 R 1686 0 R 1687 0 R 1688 0 R 1689 0 R 1690 0 R 1691 0 R 1692 0 R 1693 0 R 1694 0 R 1695 0 R 1696 0 R 1697 0 R 1698 0 R 1699 0 R 1700 0 R 1701 0 R 1702 0 R 1703 0 R 1704 0 R 1705 0 R 1706 0 R 1707 0 R 1708 0 R 1709 0 R 1710 0 R 1711 0 R 1712 0 R 1713 0 R 1714 0 R 1715 0 R 1716 0 R 1717 0 R 1718 0 R 1719 0 R 1720 0 R 1721 0 R 1722 0 R 1723 0 R 1724 0 R 1725 0 R 1726 0 R 1727 0 R 1728 0 R 1729 0 R 1730 0 R 1731 0 R 1732 0 R 1733 0 R 1734 0 R 1735 0 R 1736 0 R 1737 0 R 1738 0 R 1739 0 R 1740 0 R 1741 0 R 1742 0 R 1743 0 R 1744 0 R 1745 0 R 1746 0 R 1747 0 R 1748 0 R 1749 0 R 1750 0 R 1751 0 R 1752 0 R 1753 0 R 1754 0 R 1755 0 R 1756 0 R 1757 0 R 1758 0 R 1759 0 R 1760 0 R 1761 0 R 1762 0 R 1763 0 R 1764 0 R 1765 0 R 1766 0 R ] +>> endobj +1663 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 756.639 257.852 764.801] +/Subtype /Link +/A << /S /GoTo /D (1738) >> +>> endobj +1664 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 756.639 521.32 764.801] +/Subtype /Link +/A << /S /GoTo /D (1738) >> +>> endobj +1665 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 742.938 257.982 751.849] +/Subtype /Link +/A << /S /GoTo /D (1742) >> +>> endobj +1666 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 742.938 521.32 751.849] +/Subtype /Link +/A << /S /GoTo /D (1742) >> +>> endobj +1667 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 730.736 273.992 738.898] +/Subtype /Link +/A << /S /GoTo /D (1755) >> +>> endobj +1668 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 730.736 521.32 738.898] +/Subtype /Link +/A << /S /GoTo /D (1755) >> +>> endobj +1669 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 717.035 257.982 725.947] +/Subtype /Link +/A << /S /GoTo /D (1762) >> +>> endobj +1670 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 717.035 521.32 725.947] +/Subtype /Link +/A << /S /GoTo /D (1762) >> +>> endobj +1671 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 704.833 268.612 712.995] +/Subtype /Link +/A << /S /GoTo /D (1775) >> +>> endobj +1672 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 704.833 521.32 712.995] +/Subtype /Link +/A << /S /GoTo /D (1775) >> +>> endobj +1673 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 691.132 257.982 700.044] +/Subtype /Link +/A << /S /GoTo /D (1779) >> +>> endobj +1674 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 691.132 521.32 700.044] +/Subtype /Link +/A << /S /GoTo /D (1779) >> +>> endobj +1675 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 680.149 230.953 687.092] +/Subtype /Link +/A << /S /GoTo /D (1792) >> +>> endobj +1676 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 680.149 521.32 687.092] +/Subtype /Link +/A << /S /GoTo /D (1792) >> +>> endobj +1677 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 665.229 257.982 674.141] +/Subtype /Link +/A << /S /GoTo /D (1796) >> +>> endobj +1678 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 665.229 521.32 674.141] +/Subtype /Link +/A << /S /GoTo /D (1796) >> +>> endobj +1679 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 654.247 225.574 661.189] +/Subtype /Link +/A << /S /GoTo /D (1809) >> +>> endobj +1680 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 654.247 521.32 661.189] +/Subtype /Link +/A << /S /GoTo /D (1809) >> +>> endobj +1681 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 639.327 257.982 648.238] +/Subtype /Link +/A << /S /GoTo /D (1813) >> +>> endobj +1682 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 639.327 521.32 648.238] +/Subtype /Link +/A << /S /GoTo /D (1813) >> +>> endobj +1683 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 628.344 230.953 635.287] +/Subtype /Link +/A << /S /GoTo /D (1826) >> +>> endobj +1684 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 628.344 521.32 635.287] +/Subtype /Link +/A << /S /GoTo /D (1826) >> +>> endobj +1685 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 613.424 257.982 622.335] +/Subtype /Link +/A << /S /GoTo /D (1830) >> +>> endobj +1686 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 613.424 521.32 622.335] +/Subtype /Link +/A << /S /GoTo /D (1830) >> +>> endobj +1687 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 601.221 263.232 609.384] +/Subtype /Link +/A << /S /GoTo /D (1843) >> +>> endobj +1688 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 601.221 521.32 609.384] +/Subtype /Link +/A << /S /GoTo /D (1843) >> +>> endobj +1689 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 587.521 257.982 596.432] +/Subtype /Link +/A << /S /GoTo /D (1847) >> +>> endobj +1690 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 587.521 521.32 596.432] +/Subtype /Link +/A << /S /GoTo /D (1847) >> +>> endobj +1691 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 575.319 279.372 583.481] +/Subtype /Link +/A << /S /GoTo /D (1860) >> +>> endobj +1692 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 575.319 521.32 583.481] +/Subtype /Link +/A << /S /GoTo /D (1860) >> +>> endobj +1693 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 561.618 257.982 570.529] +/Subtype /Link +/A << /S /GoTo /D (1864) >> +>> endobj +1694 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 561.618 521.32 570.529] +/Subtype /Link +/A << /S /GoTo /D (1864) >> +>> endobj +1695 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 549.416 290.131 557.578] +/Subtype /Link +/A << /S /GoTo /D (1877) >> +>> endobj +1696 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 549.416 521.32 557.578] +/Subtype /Link +/A << /S /GoTo /D (1877) >> +>> endobj +1697 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 535.715 257.982 544.627] +/Subtype /Link +/A << /S /GoTo /D (1881) >> +>> endobj +1698 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 535.715 521.32 544.627] +/Subtype /Link +/A << /S /GoTo /D (1881) >> +>> endobj +1699 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 523.513 257.852 531.675] +/Subtype /Link +/A << /S /GoTo /D (1894) >> +>> endobj +1700 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 523.513 521.32 531.675] +/Subtype /Link +/A << /S /GoTo /D (1894) >> +>> endobj +1701 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 509.812 257.982 518.724] +/Subtype /Link +/A << /S /GoTo /D (1898) >> +>> endobj +1702 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 509.812 521.32 518.724] +/Subtype /Link +/A << /S /GoTo /D (1898) >> +>> endobj +1703 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 497.61 284.752 505.772] +/Subtype /Link +/A << /S /GoTo /D (1911) >> +>> endobj +1704 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 497.61 521.32 505.772] +/Subtype /Link +/A << /S /GoTo /D (1911) >> +>> endobj +1705 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 483.909 257.982 492.821] +/Subtype /Link +/A << /S /GoTo /D (1915) >> +>> endobj +1706 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 483.909 521.32 492.821] +/Subtype /Link +/A << /S /GoTo /D (1915) >> +>> endobj +1707 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 471.707 257.852 479.869] +/Subtype /Link +/A << /S /GoTo /D (1928) >> +>> endobj +1708 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 471.707 521.32 479.869] +/Subtype /Link +/A << /S /GoTo /D (1928) >> +>> endobj +1709 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 458.007 257.982 466.918] +/Subtype /Link +/A << /S /GoTo /D (1932) >> +>> endobj +1710 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 458.007 521.32 466.918] +/Subtype /Link +/A << /S /GoTo /D (1932) >> +>> endobj +1711 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 447.024 247.093 453.967] +/Subtype /Link +/A << /S /GoTo /D (1945) >> +>> endobj +1712 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 447.024 521.32 453.967] +/Subtype /Link +/A << /S /GoTo /D (1945) >> +>> endobj +1713 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 432.104 257.982 441.015] +/Subtype /Link +/A << /S /GoTo /D (1951) >> +>> endobj +1714 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 432.104 521.32 441.015] +/Subtype /Link +/A << /S /GoTo /D (1951) >> +>> endobj +1715 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 421.121 290.131 428.064] +/Subtype /Link +/A << /S /GoTo /D (1964) >> +>> endobj +1716 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 421.121 521.32 428.064] +/Subtype /Link +/A << /S /GoTo /D (1964) >> +>> endobj +1717 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 406.201 257.982 415.112] +/Subtype /Link +/A << /S /GoTo /D (1970) >> +>> endobj +1718 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 406.201 521.32 415.112] +/Subtype /Link +/A << /S /GoTo /D (1970) >> +>> endobj +1719 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 393.999 279.372 402.161] +/Subtype /Link +/A << /S /GoTo /D (1983) >> +>> endobj +1720 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 393.999 521.32 402.161] +/Subtype /Link +/A << /S /GoTo /D (1983) >> +>> endobj +1721 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 380.298 257.982 389.209] +/Subtype /Link +/A << /S /GoTo /D (1987) >> +>> endobj +1722 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 380.298 521.32 389.209] +/Subtype /Link +/A << /S /GoTo /D (1987) >> +>> endobj +1723 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 368.096 279.372 376.258] +/Subtype /Link +/A << /S /GoTo /D (2000) >> +>> endobj +1724 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 368.096 521.32 376.258] +/Subtype /Link +/A << /S /GoTo /D (2000) >> +>> endobj +1725 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 354.395 257.982 363.307] +/Subtype /Link +/A << /S /GoTo /D (2004) >> +>> endobj +1726 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 354.395 521.32 363.307] +/Subtype /Link +/A << /S /GoTo /D (2004) >> +>> endobj +1727 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 342.193 279.372 350.355] +/Subtype /Link +/A << /S /GoTo /D (2017) >> +>> endobj +1728 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 342.193 521.32 350.355] +/Subtype /Link +/A << /S /GoTo /D (2017) >> +>> endobj +1729 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 328.492 257.982 337.404] +/Subtype /Link +/A << /S /GoTo /D (2021) >> +>> endobj +1730 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 328.492 521.32 337.404] +/Subtype /Link +/A << /S /GoTo /D (2021) >> +>> endobj +1731 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 316.29 290.131 324.452] +/Subtype /Link +/A << /S /GoTo /D (2034) >> +>> endobj +1732 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 316.29 521.32 324.452] +/Subtype /Link +/A << /S /GoTo /D (2034) >> +>> endobj +1733 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 302.589 257.982 311.501] +/Subtype /Link +/A << /S /GoTo /D (2038) >> +>> endobj +1734 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 302.589 521.32 311.501] +/Subtype /Link +/A << /S /GoTo /D (2038) >> +>> endobj +1735 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 290.387 257.852 298.549] +/Subtype /Link +/A << /S /GoTo /D (2051) >> +>> endobj +1736 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 290.387 521.32 298.549] +/Subtype /Link +/A << /S /GoTo /D (2051) >> +>> endobj +1737 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 276.687 257.982 285.598] +/Subtype /Link +/A << /S /GoTo /D (2055) >> +>> endobj +1738 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 276.687 521.32 285.598] +/Subtype /Link +/A << /S /GoTo /D (2055) >> +>> endobj +1739 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 264.484 252.473 272.646] +/Subtype /Link +/A << /S /GoTo /D (2068) >> +>> endobj +1740 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 264.484 521.32 272.646] +/Subtype /Link +/A << /S /GoTo /D (2068) >> +>> endobj +1741 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 250.784 257.982 259.695] +/Subtype /Link +/A << /S /GoTo /D (2072) >> +>> endobj +1742 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 250.784 521.32 259.695] +/Subtype /Link +/A << /S /GoTo /D (2072) >> +>> endobj +1743 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 238.94 285.788 246.744] +/Subtype /Link +/A << /S /GoTo /D (2108) >> +>> endobj +1744 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 238.94 521.32 246.744] +/Subtype /Link +/A << /S /GoTo /D (2108) >> +>> endobj +1745 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 226.849 307.307 233.792] +/Subtype /Link +/A << /S /GoTo /D (2115) >> +>> endobj +1746 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 226.849 521.32 233.792] +/Subtype /Link +/A << /S /GoTo /D (2115) >> +>> endobj +1747 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 213.898 264.269 220.841] +/Subtype /Link +/A << /S /GoTo /D (2127) >> +>> endobj +1748 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 213.898 521.32 220.841] +/Subtype /Link +/A << /S /GoTo /D (2127) >> +>> endobj +1749 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 200.946 269.648 207.889] +/Subtype /Link +/A << /S /GoTo /D (2134) >> +>> endobj +1750 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 200.946 521.32 207.889] +/Subtype /Link +/A << /S /GoTo /D (2134) >> +>> endobj +1751 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 187.995 258.889 194.938] +/Subtype /Link +/A << /S /GoTo /D (2142) >> +>> endobj +1752 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 187.995 521.32 194.938] +/Subtype /Link +/A << /S /GoTo /D (2142) >> +>> endobj +1753 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 173.824 258.889 181.986] +/Subtype /Link +/A << /S /GoTo /D (2150) >> +>> endobj +1754 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 173.824 521.32 181.986] +/Subtype /Link +/A << /S /GoTo /D (2150) >> +>> endobj +1755 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 160.873 263.232 169.035] +/Subtype /Link +/A << /S /GoTo /D (2155) >> +>> endobj +1756 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 160.873 521.32 169.035] +/Subtype /Link +/A << /S /GoTo /D (2155) >> +>> endobj +1757 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 147.172 257.982 156.084] +/Subtype /Link +/A << /S /GoTo /D (2159) >> +>> endobj +1758 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 147.172 521.32 156.084] +/Subtype /Link +/A << /S /GoTo /D (2159) >> +>> endobj +1759 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 135.329 285.788 143.132] +/Subtype /Link +/A << /S /GoTo /D (2174) >> +>> endobj +1760 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 135.329 521.32 143.132] +/Subtype /Link +/A << /S /GoTo /D (2174) >> +>> endobj +1761 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 123.238 225.574 130.181] +/Subtype /Link +/A << /S /GoTo /D (2179) >> +>> endobj +1762 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 123.238 521.32 130.181] +/Subtype /Link +/A << /S /GoTo /D (2179) >> +>> endobj +1763 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 108.318 257.982 117.229] +/Subtype /Link +/A << /S /GoTo /D (2183) >> +>> endobj +1764 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 108.318 521.32 117.229] +/Subtype /Link +/A << /S /GoTo /D (2183) >> +>> endobj +1765 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 96.474 285.788 104.278] +/Subtype /Link +/A << /S /GoTo /D (2198) >> +>> endobj +1766 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 96.474 521.32 104.278] +/Subtype /Link +/A << /S /GoTo /D (2198) >> +>> endobj +1662 0 obj << +/D [1660 0 R /XYZ 71.731 778.968 null] +>> endobj +1659 0 obj << +/Font << /F26 1184 0 R /F33 1203 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1821 0 obj << +/Length 44823 +/Filter /FlateDecode +>> +stream +xÚ¼Ý]dW~¥÷{} +^Ê“ï•yéf-@‚oƒh««Õ44¢À®oï(Æ^;rý3Ï[‚1Œ€Þ³~'jf‘õìS÷?ÜÿÏý_îO_ÏÿÏ—×ÓÛËëÿøßþêî‡:ÿ'ÿÓ_ݯOOo§ç×·óÿüÉø»ÇçÇÓÛÓë¿{¸;½=<|zæþåËéñËÿûòüzº{zù~è?ÿÃ_ý§ÿúðòÃÛ™}üáþøCåÌ?üáÿøëøÓ×ÿáÿü‡ÿå?ý×ÇǾ?ß˯¿œÞ^ÏËßOüý×oÿÛ/gÞ=¼ßÖ‘¿ùçßÿùÏßüÕù‡ýL/§Çóê»'šýpz8?ÎçŸúáñõôr÷ÌŸ(‡Þ¢Ó‡yº?ݽ½|ö Õu–Õ1x >ž¿Ó/R½œ½¡öàúrºûbÕËÙj¨¯§çóÿj;õrö†ÚƒŸ«Ïç¯áùÍ©ë,«cð@=
OV½œ½¡öàzþž$úëÑfÍçïàûß·”y9{íÁÏÕ—ówð Õu–Õ1x ž¿ƒû©^ÎÞP{ð@=wV½œ½¡öàúzzz{”êåì
µ?W¿œx½Êÿ
^gYƒêãéé‹U/go¨=x >ŸÏ?Kõrö†Úƒêùkx–?æÖÙj~®¾ž¿†'©®³¬ŽÁõü5<Êsëì
µÔó×ð ̳7Ô<PÏ_ýU/go¨=ø¹úvþîä¹u–Õ1x ž¿i~?yC|?và=Ÿ^í‡üõè
±æÈ×Óã«ü·ÎÞ@{ðSõñîîôúÅý¨ÉYTçàúxz|±êåì
µÔó·ðü(ÕËÙj¨ç¯áéIª—³7Ôü\½?
R]gYƒêùkxx–êåì
µÔó×pÿ"ÕËÙj¨ç¯áΪ—³7Ôü\=ÿ³þ—7÷.gYƒêãéüÓAª—³7Ô<PŸO_¾Xõrö†ÚƒêëéáåMª—³7Ôü\}<
ò™.GÙì¹òüÈÿ®^ŽÞ kî€<O÷Ò¼œ½öàzþåO›uö†ÚƒŸ«Oç¯àAªë,«cð@=÷ògÜ:{CíÁõü5È
‘³7Ô<P_O÷oV½œ½¡öàçêóÝéåUþ÷feu¨§{û7ˆuö†ÚƒêóéåŪ—³7Ô<PÏ_óü·ÎÞP{ðsõåü5<ÉŸ6ë,«cð@=
V½œ½¡öàzþäϸuö†ÚƒêùkC¼½aÖÜçä—ów Þ\Ž2Ùsäù¸³æåì
´ÔçÓó›ü‹»ÎÞP{ð@=ÿ‡¯V½œ½¡öàçêëÝéù‹ü·Î²:ÔÇÓÝ‹üi³ÎÞP{ð@=
ÏV½œ½¡öàúý?”?ãÖÙj~®¾¿†G©®³¬ŽÁõü5<ÈŸqëì
µÔó×p/Ƴ7Ô<PÏÿáU/go¨=ø©útwwzzs?ãrÕ9x >œÞä¿ÃËÙj¨Ï§§/V½œ½¡öàúå$ÿ¥À:zì¹ÏÉûów ´æ,£cð@=ÏV½œ½¡öàzþž¤z9{CíÁõü-<>Jõrö†ÚƒŸ«ç¯áAªë,«cð@=
÷OR½œ½¡öàzþz9{CíÁõËéõͪ—³7Ôü\}¼;=¾ºs9Ëê<PN¯2;ÉÙj¨Ï§Ç«^ÎÞP{ð@=
ÏòÇÜ:{CíÁÏÕ§ó× ³“œeu¨ç¯áѪ—³7Ô<PÏ_ƒü[Óåè
³æÈów ³“œ½öàçêóù;¸—ê:Ëê<PÏßÌNrö†ÚƒêóéAf'9{CíÁõËéË«U/go¨=ø¹úrwzÙIβ:Ô‡Ó™äì
µÔó×ðlÕËÙj¨ç¯Af'9{CíÁÏÕ/ç¯Af'9Ëê<PÏ_ÃU/go¨=x ž¿™äì
µÔó× ³“œ½¡öàçêëÝéþMªë,«cð@}8½Xô×£7Ìš; ŸO÷2>ÉÙh¨_N/_¬z9{CíÁÏÕ·ów 㓜eu¨çoAÆ'9{CíÁõü5<Yõrö†ÚƒêùkñIÎÞP{ðSõùîü5ÈßÐÎYTçàzþîz9{CíÁõü5Èø$go¨=x ~9=ËÏ”³7Ôü\½¿;Ý}~a"GîÏ¿:¸.ò|z¼õ„9ôþ9ï?<ÈÃùÔ=ǯmÆÝ÷îë_+}z%çíü¸¿þròüÏwçnÿôJÎ:”3×Û4¿{x¾ûë¿ûåço?û·ýúñvÍó÷;:?¼ŸOp÷뵂ƒÛ5;؇‡ÛÁþ»‡;ö?>û¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+óì£ø~ƒ}®`Åšã`_™ öíAö…z
öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠ\Á>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö
™`ŸÈžã`_™ öíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^ƒ}Pç ûJM°jr°¯Ôû¨ö û +]Á>š5ÇÁ¾1w°Oèä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+tûhÖûÊL°hr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ub°¯Ðì£Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨×`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì'è*اçH°ÿî9ŽƒýãçÁþÃ`ÿüϲßÿ»„Áþ:ÆÆÃú2~üñ§ùéÛ?~üc4ÎÏüü?Gão¿~ûÓÏø¬býò½É¹>ÖÇÔÿþé¨ôß]+|ªÝµ¾ûTÇ]ëÇ瀮Õä®Õ¨»k%uRתÌK׊âû1ìZ¸ºVkŽ»Ve¦kE´¹kêµkurתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=ˆ]«AÓµ’Ùsص*ruHÖwÊL׊hrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®ÕÄ®U¡«kE³æ°k5dºV"{Ž»Ve¦kE´¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZ…zíZAƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tuhÖwÆÜ]+¡c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jbתÐÕµ¢Ysܵ*3]+¢=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1ˆ]«BW׊fÍqתÌtˆö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V¡^»VPç wJM׊jrתÔt¨ö wJM׊jr×zÜ[ª®•ž#]ë»ç8îZŸã×ßz}ûþƒô"êó¯(ÍèîßÎ?>ïZסœá®õq«ÿåÿý×þéúv£k½¼ÑúìNOßäúTÿ2ß}y9|ƒõã¯ï·ÆO•Cï?ÕÇòùåôý·þ?>Ç'è¯Go˜5w@®7k+3¯êF´ùUÝFݯê&uò«º•šWu£Úƒüªn¥æUݨö ¿ª[©yU7ª=ȯê6ê~U7©c_ÕÔ¼ªÕäWu+5¯êFµùUÝJÍ«ºQíA~U·Q÷«ºIƒüªn¥æUݨö ¿ª[©¹Ò€jò•¥æJª=ÈWŒº¯4:éJƒ2/WP|?†W¸®4 Xs|¥A™¹Ò€hò•¡^¯4€:ùJƒRs¥Õä+
JÍ•T{¯4(5WPíA¾Ò`Ô}¥Ô1ÈW”š+
¨ö _iPj®4 Úƒ|¥A©¹Ò€jò•£î+
¤ŽA¾Ò Ô\i@µùJƒRs¥Õä+
JÍ•T{¯44WÈì9¼Ò Èu¥Éšã+
ÊÌ•D{¯4(5WPíA¾Ò`Ô}¥Ô1ÈW”š+
¨ö _iPj®4 Úƒ|¥A©¹Ò€jò•£î+
¤ŽA¾Ò Ô\i@µùJƒRs¥Õä+
JÍ•T{¯4u_i uò•¥æJª=ÈW”š+
¨ö ^iPèºÒ€fÍá•CæJ‘=ÇW”™+
ˆö _iPj®4 Úƒ|¥A©¹Ò€jò•£î+
¤ŽA¾Ò Ô\i@µùJƒRs¥Õä+
JÍ•T{¯4u_i uò•¥æJª=ÈW”š+
¨ö _iPj®4 Úƒ|¥A¨×+
ÎA¾Ò Ô\i@µùJƒRs¥ÕÄ+
+]WЬ9¾Ò`Ì}¥Ð1ÈW”š+
¨ö _iPj®4 Úƒ|¥A©¹Ò€jò•£î+
¤ŽA¾Ò Ô\i@µùJƒRs¥Õä+
JÍ•T{¯4u_i uò•¥æJª=ÈW”š+
¨ö _iPj®4 Úƒ|¥Á¨ûJ©c¯4(5WPíA¼Ò Ðu¥Íšã+
ÊÌ•D{¯4u_i uò•¥æJª=ÈW”š+
¨ö _iPj®4 Úƒ|¥Á¨ûJ©c¯4(5WPíA¾Ò Ô\i@µùJƒRs¥Õä+
FÝWHƒ|¥A©¹Ò€jò•¥æJª=ÈW”š+
¨ö _i0ê¾Ò@êÄ+
+]WЬ9¾Ò Ì\i@´ùJƒRs¥Õä+
FÝWHƒ|¥A©¹Ò€jò•¥æJª=ÈW”š+
¨ö _iêõJ¨s¯4(5WPíA¾Ò Ô\i@µùJƒRs¥Õä+
ÔÚ‹+
ô¹Òðî9ޝ4?ÇxU÷ýWuß½œžîùUÝëÌõ&Âïžïþúï~ùùÛÏßþí_¿~r3áòîîwã_¸ýýZÁÑÍ„ûðp;Ø÷pÇÁþÇ`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©c‚}e^‚}ßa°¯Àì£Xsì+3Á>¢=ÈÁ¾P¯Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö
š`ŸÌžÃ`_‘+ØG²æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö û +]Á>š5‡Á¾!ìÙsì+3Á>¢=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/Ôk°êä`_© öQíAö•š`ÕÄ`_¡+ØG³æ8Ø7æö ƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}…®`Íšã`_™ öíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAöº‚}4kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒýã]ûô öß=Çq°ü#Øà`ÿåí{ó†Á~ÎðŸAð°þpüé_~úöã7þ‚¿ýúíO?ÿ᳊õËëëïëcêÿtTú§k¥O•Cï?Õa×úÉsw¬ö vJM׊ꄮՙ¿v,¾£®Õ—®•Śîՙ«ke´±k5êîZIƒØµ:uu¬ö vN]]+«=ˆ]«SW×ÊjbתÔt¨ŽAìZººVV{»V§®®•ÕĮթ«keµ±kUjºVTÇ vN]]+«=ˆ]«SW×Êjb×êÔÕµ²ÚƒÔµ*tuhöu޼tLÖvÎ\]+£=ˆ]«SW×ÊjbתÔt¨ŽAìZººVV{»V§®®•ÕĮթ«keµ±kUjºVTÇ vN]]+«=ˆ]«SW×Êjb×êÔÕµ²ÚƒØµ*5]+ªc»V§®®•ÕĮթ«keµ©kuè¥ke³æ¨kUäêZ‘ì9ìZ¹ºVF{»V§®®•ÕĮթ«keµ±kUjºVTÇ vN]]+«=ˆ]«SW×Êjb×êÔÕµ²ÚƒØµ*5]+ªc»V§®®•ÕĮթ«keµ±kuêêZYíAìZº»VRç vN]]+«=ˆ]«SW×ÊjR×êÐK×ÊfÍaתÌtˆŽAìZººVV{»V§®®•ÕĮթ«keµ±kUjºVTÇ vN]]+«=ˆ]«SW×Êjb×êÔÕµ²ÚƒØµ*5]+ªc»V§®®•ÕĮթ«keµ±kuêêZYíAìZ•š®Õ1ˆ]«SW×ÊjR×êÐK×ÊfÍa×êÌÕµ2ڃص*5]+ªc»V§®®•ÕĮթ«keµ±kuêêZYíAìZ•š®Õ1ˆ]«SW×Êjb×êÔÕµ²ÚƒØµ:uu¬ö vJM׊êĮթ«keµ±kuêêZYíAìZººVV{»V¥¦kEuR×êÐK×ÊfÍa×êÌÕµ2ڃص:uu¬ö vJM׊êĮթ«keµ±kuêêZYíAìZººVV{»V£î®•Ô9ˆ]«SW×Êjb×êÔÕµ²ÚƒØµ:uu¬ö vÐ[š®Ÿczÿ‡]+<Ço{õËù‡Áãã+wëŒëZÿüõÛǤõþõüß.ZŸ_O¯ßÿÍæõæS?œîŽ’Ö¼Fš>P½ÿ@‡¯‘þäAŽ_#Íjâk¤º^#Íjâk¤º^#Íjâk¤•š×H£:ñ5ÒN]¯‘fµñ5ÒN]¯‘fµñ5ÒN]¯‘fµñ5ÒJÍk¤Qƒøi§®×H³Úƒøi§&·Gµ9·Wjr{T{s{£îÜžÔ1H¹½2/¹=ŠïÇ0·WàÊíQ¬9Îí•™ÜÑäÜ^¨×ÜÔ9ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛuçö¤ŽAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö æöMnOfÏan¯È•Û#YsœÛ+3¹=¢=ȹ½R“Û£ÚƒœÛuçö¤ŽAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{…®ÜÍšÃÜÞÉí‰ì9Îí•™ÜÑäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·ê5·urn¯Ôäö¨ö çöJMnjbn¯Ð•Û£YsœÛsçö„ŽAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ˆ¹½BWnfÍqn¯Ìäöˆö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ æö +]¹=š5ǹ½2“Û#ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎí…zÍíAƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹýq®r{zŽäöïžãñá(·?~Žßøéó/-¾ÿ4æöëŒËíÿéß™Û_è/ËíáíÜþÝ:Îí?>äö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOê¤Ü^™—ÜÅ÷c˜Û+påö(ÖçöÊLnhrn/ÔknêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{ƒ&·'³ç0·WäÊ푬9Îí•™ÜÑäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ˆ¹½BWnfÍanoÈäöDöçöÊLnhrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛõšÛƒ:9·Wjr{T{s{¥&·Gµ1·WèÊíѬ9Îí¹s{BÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛuçö¤ŽAÎ핚ÜÕÄÜ^¡+·G³æ8·Wfr{D{s{£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛuçö¤ŽAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{…®ÜÍšãÜ^™ÉííAÎ핚ÜÕäÜÞ¨;·'urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöB½æö ÎAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜþ8W¹==GrûwÏqœÛ?ǯ¿õúöý7éíößÿÿÿšÑ=?Îÿdùyn¿åçö©éÿæO?ÿô_?÷Oç_¯½åÐ?ÿþÏþP>ÝŸ¾|ÿmþë3}ü‹üzþ•æAqÿôxz~ýŸ)‡Þ¦äÓËéîË—Ïäõrö†ÚƒêëéùåUª—³7Ôü\}¾?Ý=¿9ueu¨ç¯áɪ—³7Ô<PÏ_ÓD=zì¹òü<ÞKóröÚƒ×(Ö½£î‹*¤ŽA¾¨¢Ô\TAµù¢ŠRsQÕä‹*JÍET{/ªu_T!uòE¥æ¢ +ª=ÈU”š‹*¨ö _TQj.ª Úƒ|QŨû¢ +©c/ª(5UPíA¾¨¢Ô\TAµù¢ŠRsQÕä‹*FÝUHƒtQE™—‹*(¾Ã‹* +\UP¬9¾¨¢Ì\TA´ù¢ŠP¯U@ƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈU”š‹*¨ö _T1꾨Bêä‹*JÍET{/ª(5UPíA¾¨¢Ô\TAµù¢ŠQ÷ERÇ _TQj.ª Úƒ|QE©¹¨‚jòE¥æ¢ +ª=ˆUš‹*dö^TQ亨‚dÍñEeæ¢ +¢=ÈU”š‹*¨ö _T1꾨Bêä‹*JÍET{/ª(5UPíA¾¨¢Ô\TAµù¢ŠQ÷ERÇ _TQj.ª Úƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈUŒº/ª:ù¢ŠRsQÕä‹*JÍET{/ª(t]TA³æð¢Š!sQ…Èžã‹*ÊÌED{/ª(5UPíA¾¨¢Ô\TAµù¢ŠQ÷ERÇ _TQj.ª Úƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈUŒº/ª:ù¢ŠRsQÕä‹*JÍET{/ª(5UPíA¾¨"ÔëEPç _TQj.ª Úƒ|QE©¹¨‚jâE…®‹*hÖ_T1澨Bèä‹*JÍET{/ª(5UPíA¾¨¢Ô\TAµù¢ŠQ÷ERÇ _TQj.ª Úƒ|QE©¹¨‚jòE¥æ¢ +ª=ÈUŒº/ª:ù¢ŠRsQÕä‹*JÍET{/ª(5UPíA¾¨bÔ}Q…Ô1ÈU”š‹*¨ö ^TQ躨‚fÍñEeæ¢ +¢=ÈUŒº/ª:ù¢ŠRsQÕä‹*JÍET{/ª(5UPíA¾¨bÔ}Q…Ô1ÈU”š‹*¨ö _TQj.ª Úƒ|QE©¹¨‚jòE£î‹*¤ŽA¾¨¢Ô\TAµù¢ŠRsQÕä‹*JÍET{/ªu_T!uâE…®‹*hÖ_TQf.ª Úƒ|QE©¹¨‚jòE£î‹*¤ŽA¾¨¢Ô\TAµù¢ŠRsQÕä‹*JÍET{/ªõzQÔ9ÈU”š‹*¨ö _TQj.ª Úƒ|QE©¹¨‚jòEºC!.ªÐsä¢Ê»ç8¾¨rü¿ñÏ…xº?=ÿüs!Ö™ë
“ß=<ßýõßýòó·Ÿ¿ýÛ¿~ýxãäùòE¼ŸOp÷뵂ƒ';؇‡ÛÁþ»‡;ö?>û¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+óì£ø~ƒ}®`Åšã`_™ öíAö…z
öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jb°oÐûdöûŠ\Á>’5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö
™`ŸÈžã`_™ öíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^ƒ}Pç ûJM°jr°¯Ôû¨ö û +]Á>š5ÇÁ¾1w°Oèä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+tûhÖûÊL°hr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ub°¯Ðì£Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨×`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì'è*اçH°ÿî9ŽƒýãçÁþý`ÿá{÷þÀÁþ:òÄÃúC#~üñ§ùéÛ?~ü³%Îÿ¨óü?[âo¿~ûÓÏø¬býò½É¹>ÖÇÔÿþðÏ–Ø]+|ªÝµ¾ûTÇ]ëÇ瀮Õä®Õ¨»k%uRתÌK׊âû1ìZ¸ºVkŽ»Ve¦kE´¹kêµkurתÔt¨ö wJM׊jrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=ˆ]«AÓµ’Ùsص*ruHÖwÊL׊hrתÔt¨ö wFÝ]+©c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®ÕÄ®U¡«kE³æ°k5dºV"{Ž»Ve¦kE´¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZ…zíZAƒÜµ*5]+ª=È]«RÓµ¢ÚƒØµ*tuhÖwÆÜ]+¡c»V¥¦kEµ¹kUjºVT{»V¥¦kEµ¹k5êîZIƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jbתÐÕµ¢Ysܵ*3]+¢=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1ˆ]«BW׊fÍqתÌtˆö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V¡^»VPç wJM׊jrתÔt¨ö wJM׊jr×zÜ[ª®•ž#]ë»ç8îZŸã7v÷ϧç×{îZ××µþòõÏ_¿}ŒZÞN7šÖ—·ËïU^éã_ãÇÇ—£¨u¿p>Ò~áð»tüÂá/Fµù…ÃJ͇QíA~á°RóÂaT{_8lÔýÂaRÇ ¿pX©yá0ª=È/VjÂlT{Ãl¥&ÌFµ9Ì6ê³Iƒf+óf£ø~Ãl®0Åšã0[™ ³íA³…z
³Aƒf+5a6ª=Èa¶Rf£Úƒf+5a6ª=Èa¶Qw˜Mêä0[© ³QíA³•š0Õä0[© ³QíA³ºÃlRÇ ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙJM˜jb˜mЄÙdö†ÙŠ\a6’5Ça¶2f#Úƒf+5a6ª=Èa¶Qw˜Mêä0[© ³QíA³•š0Õä0[© ³QíA³ºÃlRÇ ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙJM˜jr˜mÔf“:9ÌVjÂlT{Ãl¥&ÌFµ1ÌVè +³Ñ¬9³
™0›Èžã0[™ ³íA³•š0Õä0[© ³QíA³ºÃlRÇ ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙJM˜jr˜mÔf“:9ÌVjÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl¡^ÃlPç ‡ÙJM˜jr˜Ô„Ù¨ö †Ù +]a6š5Ça¶1w˜Mèä0[© ³QíA³•š0Õä0[© ³QíA³ºÃlRÇ ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙJM˜jr˜mÔf“:9ÌVjÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+t…ÙhÖ‡ÙÊL˜hr˜mÔf“:9ÌVjÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0Û¨;Ì&ub˜Ðf£Ysf+3a6¢=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0[¨×0Ô9Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£ÚƒfS4,ÂlzŽ„Ùïžã8Ì>~Žf?ܳ¿Óof¯3.Ìþ4˾=ÿw‡³ìç×Óë÷³y} ùÔ§ûLJ£,ûåþt÷ë?÷ÀÊ¡÷ècùòxzþþ{zäõrö†ÚƒêËéîΪ—³7Ô<P_OOoR½œ½¡öàA¾êx£îÜžÔ1ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛuçö¤ŽAÎ핚ÜÕäÜ^©ÉíQíAÎ핚ÜÕäÜÞ¨;·'uRn¯ÌKnâû1Ìí¸r{kŽs{e&·G´9·ê5·urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ˆ¹½A“Û“Ùs˜Û+råöHÖçöÊLnhrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕÄÜ^¡+·G³æ0·7dr{"{Žs{e&·G´9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎí…zÍíAƒœÛ+5¹=ª=ȹ½R“Û£Úƒ˜Û+tåöhÖçöÆÜ¹=¡cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ çöJMnjbn¯Ð•Û£YsœÛ+3¹=¢=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ˆ¹½BWnfÍqn¯Ìäöˆö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{¡^s{Pç çöJMnjrn¯Ôäö¨ö çöJMnjrnƒ«Üžž#¹ý»ç8ÎíŸã·½ýùõíüw«WÌísÆåöÿôïËíß=Ð_”ÛÓÊ¡÷è0·ÿäAŽs{V{s{§®ÜžÕÄÜÞ©+·gµ1·Wjr{TÇ æöN]¹=«=ˆ¹½SWnÏjbnïÔ•Û³Úƒ˜Û+5¹=ªcs{§®ÜžÕÄÜÞ©+·gµ1·wêÊíYíAÌ핚ÜÕ1¹½3ÍíY|?F¹½/¹=‹5‡¹½3WnÏhbnoÔÛ“:1·wêÊíYíAÌíºr{V{s{§®ÜžÕÄÜ^©ÉíQƒ˜Û;uåö¬ö æöN]¹=«=ˆ¹½SWnÏjbn¯Ôäö¨ŽAÌíºr{V{s{§®ÜžÕÄÜÞ©+·gµ)·WèÊíÑì9ÊíyÉ홬9Ìí¹r{F{s{§®ÜžÕÄÜ^©ÉíQƒ˜Û;uåö¬ö æöN]¹=«=ˆ¹½SWnÏjbn¯Ôäö¨ŽAÌíºr{V{s{§®ÜžÕÄÜÞ©+·gµ1·Wjr{TÇ æöN]¹=«=ˆ¹½SWnÏjRnïÐKnÏfÍQn¯È•Û#Ùs˜Û;såöŒö æöN]¹=«=ˆ¹½SWnÏjbn¯Ôäö¨ŽAÌíºr{V{s{§®ÜžÕÄÜÞ©+·gµ1·Wjr{TÇ æöN]¹=«=ˆ¹½SWnÏjbnïÔ•Û³Úƒ˜Ûuçö¤ÎAÌíºr{V{s{§®ÜžÕ¤ÜÞ¡—ܞ͚ÃÜ^™É탘Û;uåö¬ö æöN]¹=«=ˆ¹½SWnÏjbn¯Ôäö¨ŽAÌíºr{V{s{§®ÜžÕÄÜÞ©+·gµ1·Wjr{TÇ æöN]¹=«=ˆ¹½SWnÏjbnïÔ•Û³Úƒ˜Û+5¹=ªcs{§®ÜžÕ¤ÜÞ¡—ܞ͚ÃÜÞ™+·g´1·Wjr{TÇ æöN]¹=«=ˆ¹½SWnÏjbnïÔ•Û³Úƒ˜Û+5¹=ªcs{§®ÜžÕÄÜÞ©+·gµ1·wêÊíYíAÌ핚ÜÕ1ˆ¹½SWnÏjbnïÔ•Û³Úƒ˜Û;uåö¬ö æöJMnê¤ÜÞ¡—ܞ͚ÃÜÞ™+·g´1·wêÊíYíAÌ핚ÜÕ1ˆ¹½SWnÏjbnïÔ•Û³Úƒ˜Û;uåö¬ö æöFݹ=©ss{§®ÜžÕÄÜÞ©+·gµ1·wêÊíYíAÌí!7¹=>Ç:ôþ9s{xŽßövûç//ç·/œÛ¯3.·ÿöóßûå§ù§ÍýùužÞ8º?ÿ-ûË÷&çúXóÙÏÿ}x:jîw× +Ÿjwï>Õq×úñ9 kEµ¹k5êîZIƒÔµ*óÒµ¢ø~»V®®Åšã®U™éZíAîZ…zíZAƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jb×jÐtdövŠ\]+’5Ç]«2Óµ"ڃܵ*5]+ª=È]«Qw×Jêä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ±kUèêZѬ9ìZ
™®•Èžã®U™éZíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V¡^»VPç wJM׊jrתÔt¨ö v +]]+š5Ç]«1w×Jèä®U©éZQíAîZ•š®Õä®U©éZQíAîZº»VRÇ wJM׊jrתÔt¨ö wJM׊jr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒØµ*tuhÖwÊL׊hr×jÔݵ’:¹kUjºVT{»V¥¦kEµ¹kUjºVT{»V£î®•Ô1È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµuw¤ŽAîZ•š®Õä®U©éZQíAîZ•š®Õä®Õ¨»k%ubתÐÕµ¢Ysܵ*3]+¢=È]«RÓµ¢ÚƒÜµuw¤ŽAîZ•š®Õä®U©éZQíAîZ•š®Õä®U¨×®Ô9È]«RÓµ¢ÚƒÜµ*5]+ª=È]«RÓµ¢ÚƒÜµ÷–ªk¥çH×úî9Ž»Öãçø¯‘~y<}ùòÌ]ë:ãºÖ?þòó;*[Ÿ_΃7ÊÖ·—Óó÷ß±¼>ØÇ¿Ò¯Gië®áƒí*ñÝ;®?>T‰ ÎA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ±J4hªD2{«DE®*Éšã*Q™©íA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢ÚƒX%*tU‰hÖV‰†L•HdÏq•¨ÌT‰ˆö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢P¯U"¨s«D¥¦JDµ¹JTjªDT{«D…®*Íšã*ј»J$tr•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA¬ºªD4kŽ«De¦JD´¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:±JTèªÑ¬9®•™*Ñä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•(Ôk•êä*Q©©QíA®•š*Õä*Q©©QíA®©•U"=GªÄwÏñøxT%?Ço|Ûæùå¯\%®3®Jüåëïÿð±G|x:ÝÝsŽøòtIT®Oôñ/ñ—ÇÃ7m¾¼œîîn|¢zÿ‰>¾šñåõôôöøÙƒ|¢^ÎÞP{ðsõü«·×'§®³¬ŽÁõñôôŪ—³7Ô<PŸÏ知z9{CíÁõü5<¿Hõrö†Úƒïm=
OR]gYƒêùkøþkw¥^ÎÞP{ð@]/²UjÞŒ‹jò›q•š7ã¢Úƒüf\£î7ã’:é͸ʼ¼Å÷cøf\®7ã¢Xsüf\e¦AG´¹AêµAurƒ®Ô4è¨ö 7èJMƒŽjrƒ®Ô4è¨ö 7èFÝ
:©ct¥¦AGµ¹AWjtT{t¥¦AGµ¹A7ênÐIƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=ˆ
ºAÓ “ÙsØ +r5èHÖ7èÊLƒŽhrƒ®Ô4è¨ö 7èFÝ
:©ct¥¦AGµ¹AWjtT{t¥¦AGµ¹A7ênÐIƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQwƒNêä]©iÐQíAnЕšÕÄ]¡«AG³æ°A7dt"{Žte¦AG´¹AWjtT{t¥¦AGµ¹A7ênÐIƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQwƒNêä]©iÐQíAnЕšÕä]©iÐQíAnÐ…zmÐAƒÜ +5
:ª=È
ºRÓ £ÚƒØ +t5èhÖ7èÆÜ
:¡ct¥¦AGµ¹AWjtT{t¥¦AGµ¹A7ênÐIƒÜ +5
:ª=È
ºRÓ £ÚƒÜ +5
:ª=È
ºQwƒNêä]©iÐQíAnЕšÕä]©iÐQíAnкtRÇ 7èJMƒŽjbƒ®ÐÕ £YsÜ +3
:¢=È
ºQwƒNêä]©iÐQíAnЕšÕä]©iÐQíAnкtRÇ 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒnÔÝ “:¹AWjtT{t¥¦AGµ¹AWjtT{t£îÔ1ˆ
ºBWƒŽfÍqƒ®Ì4èˆö 7èJMƒŽjrƒnÔÝ “:¹AWjtT{t¥¦AGµ¹AWjtT{t¡^tPç 7èJMƒŽjrƒ®Ô4è¨ö 7èJMƒŽjrƒN´hÐé9Ò ¿{Žãýø9~ã›q¿ÿóÝ—nÐ×× ÿ?¿üôíë'úÛéñÆ;q_Þ.¿Wy}¤_Ž"ôfÃGÚaö»tf|³QíA³•š0Õä0[© ³QíA³ºÃlRÇ ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙJM˜jr˜mÔf“:)ÌVæ%ÌFñý†Ù +\a6Š5Ça¶2f#Úƒfõfƒ:9ÌVjÂlT{Ãl¥&ÌFµ9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0ÕÄ0Û ³Éì9³¹Âl$kŽÃle&ÌF´9ÌVjÂlT{Ãl£î0›Ô1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0Û¨;Ì&ur˜Ô„Ù¨ö ‡ÙJM˜jb˜Ðf£Ysf2a6‘=Ça¶2f#Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0Û¨;Ì&ur˜Ô„Ù¨ö ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙB½†Ù ÎA³•š0Õä0[© ³QíA³ºÂl4kŽÃlcî0›Ð1Èa¶Rf£Úƒf+5a6ª=Èa¶Rf£Úƒfu‡Ù¤ŽA³•š0Õä0[© ³QíA³•š0Õä0Û¨;Ì&ur˜Ô„Ù¨ö ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙFÝa6©cÃl¥&ÌFµ1ÌVè +³Ñ¬9³•™0Ñä0Û¨;Ì&ur˜Ô„Ù¨ö ‡ÙJM˜jr˜Ô„Ù¨ö ‡ÙFÝa6©cÃl¥&ÌFµ9ÌVjÂlT{Ãl¥&ÌFµ9Ì6ê³Iƒf+5a6ª=Èa¶Rf£Úƒf+5a6ª=Èa¶Qw˜MêÄ0[¡+ÌF³æ8ÌVfÂlD{Ãl¥&ÌFµ9Ì6ê³Iƒf+5a6ª=Èa¶Rf£Úƒf+5a6ª=Èa¶P¯a6¨sÃl¥&ÌFµ9ÌVjÂlT{Ãl¥&ÌFµ9̦hX„Ùô ³ß=Çq˜}ü¿þÖëÛ÷ߤ0ûü+ŠÇ_3º‡§ÓÛÃýçaö:”3f?®êúo¾þòí§?þô¿ÿ,Ï~¹?½¼¤Ïþ›þýŸÿüÙ«¹_î¯è'OÿðëSÝʳáƒí<ûÝ;γ?>äÙ¨ö çÙJMžjržÔäÙ¨ö çÙFÝy6©cól¥&ÏFµ9ÏVjòlT{ól¥&ÏFµ9Ï6êγIƒ”g+ó’g£ø~ól®<Åšã<[™É³íAγ…zͳAƒœg+5y6ª=Èy¶R“g£Úƒœg+5y6ª=Èy¶QwžMêä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjbžmÐäÙdöæÙŠ\y6’5Çy¶2“g#Úƒœg+5y6ª=Èy¶QwžMêä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ1ÏVèʳѬ9̳
™<›Èžã<[™É³íAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól¡^ólPç çÙJMžjržÔäÙ¨ö æÙ +]y6š5Çy¶1wžMèä<[©É³QíAγ•š<Õä<[©É³QíAγºólRÇ çÙJMžjržÔäÙ¨ö çÙJMžjržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól£î<›Ô1Èy¶R“g£Úƒ˜g+tåÙhÖçÙÊLžhržmÔg“:9ÏVjòlT{ól¥&ÏFµ9ÏVjòlT{ól£î<›Ô1Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£ÚƒœguçÙ¤ŽAγ•š<Õä<[©É³QíAγ•š<Õä<Û¨;Ï&ubžÐ•g£Ysœg+3y6¢=Èy¶R“g£ÚƒœguçÙ¤ŽAγ•š<Õä<[©É³QíAγ•š<Õä<[¨×<Ô9Èy¶R“g£Úƒœg+5y6ª=Èy¶R“g£ÚƒœgGÃ*ϦçHžýî9ŽóìãçïÍ~¸ñÞì³úvþ;3¾7{¹&Õ¿{x¾ûë¿ûåço?û·ýú1±~¾¼HûÝø|‚»ÓóÓÛQbýüzz~¼ç‡Ë¡÷÷±g|¹?Ý=Üö Õu–Õ1x >žžï¤z9{CíÁõåtwgÕËÙj¨¯§§·G©^ÎÞP{ð '_}½Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:)ØWæ%ØGñýû +\Á>Š5ÇÁ¾2ì#Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`ÕÄ`ß öÉì9ö¹‚}$kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jb°¯Ðì£Ysì2Á>‘=ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAöº‚}4kŽƒ}cî`ŸÐ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ1ØWè +öѬ9ö•™`Ñä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°OêÄ`_¡+ØG³æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P¯Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø?NÐU°OÏ‘`ÿÝsûÇÏ1‚ý{öŸÞÞNwç|ìç¿Oýa½%ýÏ_¿ýï_ùóO?ÿËÇש?¿œó:õ¿ýúíO?ÿác‚ørz~zýá݃}ü+ýúøxû§J¤–Cï?Øa•øÉƒW‰¤ÎA¬ºªDV{«D§®*‘ÕÄ*Ñ©«Jdµ±JTjªDTÇ V‰N]U"«=ˆU¢SW•Èjb•èÔU%²ÚƒX%*5U"ªc«D§®*‘ÕÄ*Ñ©«Jdµ±JtêªYíAªºªD4{ŽªDG^ªD&k«Dg®*‘ÑÄ*Ñ©«Jdµ±JTjªDTÇ V‰N]U"«=ˆU¢SW•Èjb•èÔU%²ÚƒX%*5U"ªc«D§®*‘ÕÄ*Ñ©«Jdµ±JtêªYíA¬•š*Õ1ˆU¢SW•Èjb•èÔU%²ÚƒT%:ôR%²YsT%*rU‰HöV‰Î\U"£=ˆU¢SW•Èjb•èÔU%²ÚƒX%*5U"ªc«D§®*‘ÕÄ*Ñ©«Jdµ±JtêªYíA¬•š*Õ1ˆU¢SW•Èjb•èÔU%²ÚƒX%:uU‰¬ö V‰FÝU"©s«D§®*‘ÕÄ*Ñ©«Jdµ©Jtè¥Jd³æ°JTfªDDÇ V‰N]U"«=ˆU¢SW•Èjb•èÔU%²ÚƒX%*5U"ªc«D§®*‘ÕÄ*Ñ©«Jdµ±JtêªYíA¬•š*Õ1ˆU¢SW•Èjb•èÔU%²ÚƒX%:uU‰¬ö V‰JM•ˆêÄ*Ñ©«Jdµ©Jtè¥Jd³æ°JtæªíA¬•š*Õ1ˆU¢SW•Èjb•èÔU%²ÚƒX%:uU‰¬ö V‰JM•ˆêÄ*Ñ©«Jdµ±JtêªYíA¬ºªDV{«D¥¦JDub•èÔU%²ÚƒX%:uU‰¬ö V‰N]U"«=ˆU¢RS%¢:©Jtè¥Jd³æ°JtæªíA¬ºªDV{«D¥¦JDub•èÔU%²ÚƒX%:uU‰¬ö V‰N]U"«=ˆU¢Qw•HêÄ*Ñ©«Jdµ±JtêªYíA¬ºªDV{«DlånW‰øëÐûçx|:¨á9~Ûk„Ÿ^_Nw//\%®3®Jü§ÿ *ñú`Y•lW‰ï>Øq•øñA Jur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ˆU¢AS%’ÙsX%*rU‰HÖW‰ÊL•ˆhr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*ÕÄ*Q¡«JD³æ°J4dªD"{Ž«De¦JD´¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®…zAƒ\%*5U"ª=ÈU¢RS%¢ÚƒX%*tU‰hÖW‰ÆÜU"¡c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ W‰JM•ˆjb•¨ÐU%¢Ys\%*3U"¢=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ˆU¢BW•ˆfÍq•¨ÌT‰ˆö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D¡^«DPç W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•Hœ¨é9R%¾{Žã*ñø9~㻿ÿÆÎù›Æ*qÑïJüû¯¿üôûþ$J¼ü‰Ô%ÞŸÿ>öúûçšÿðk÷p%þú§TÓ§ºyÿ™Žþ”êOžáðO©f±æðO©vfÊKD{ËK¡^ËKPç ——JMy‰jry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢ÚƒX^4å%™=‡å¥"Wy‰dÍqy©Ì”—ˆö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA,/ºÊK4kËKC¦¼$²ç¸¼TfÊKD{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA./•šòÕäòR¨×òÔ9Èå¥RS^¢Úƒ\^*5å%ª=ˆå¥BWy‰fÍqyiÌ]^:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1Èå¥RS^¢Úƒ\^*5å%ª=Èå¥RS^¢Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA./•šòÕäòÒ¨»¼$ury©Ô”—¨ö –— +]å%š5Çå¥2S^"Úƒ\^u——¤ŽA./•šòÕäòR©)/QíA./•šòÕäòÒ¨»¼$ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./IƒX^*t•—hÖ——ÊLy‰hry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼êµ¼ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——ÇA */é9R^¾{Žãòòø9~ãû _¾ÿ}ã‘ËËuæÿß÷A^ì/{$|°]%¾û`ÇUâÇ*Ô9ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö V‰M•HfÏa•¨ÈU%"Ys\%*3U"¢=ÈU¢RS%¢Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D…®*ÍšÃ*Ñ©‰ì9®•™*Ñä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹JêµJur•¨ÔT‰¨ö W‰JM•ˆjb•¨ÐU%¢Ys\%sW‰„ŽA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ˆU¢BW•ˆfÍq•¨ÌT‰ˆö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ V‰ +]U"š5ÇU¢2S%"Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®…zAƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU"µr¢J¤çH•øî9Ž«Äãçøïƒ<ÿ£ÀÃýW‰ëŒ~äÿüç?ÿ÷¯¿üûÞy}®¿ä}ð©Öû ß}¦Ã÷A~|†ã÷A¢Xsü>He¦¼D´¹¼êµ¼ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=ˆå¥AS^’ÙsX^*r•—HÖ——ÊLy‰hry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕÄòR¡«¼D³æ°¼4dÊK"{ŽËKe¦¼D´¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./…z-/Aƒ\^*5å%ª=Èå¥RS^¢ÚƒX^*t•—hÖ——ÆÜå%¡cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ ——JMy‰jby©ÐU^¢Ys\^*3å%¢=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ ——JMy‰jry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1ˆå¥BWy‰fÍqy©Ì”—ˆö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK¡^ËKPç ——JMy‰jry©Ô”—¨ö ——JMy‰jryyªò’ž#åå»ç8./Ÿã7–—O§‡—{./×ý>Èÿˆòòú\Iy Ÿj•—ï>ÓayùñŽËKkŽËKe¦¼D´¹¼êµ¼ury©Ô”—¨ö ——JMy‰jry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=ˆå¥AS^’ÙsX^*r•—HÖ——ÊLy‰hry©Ô”—¨ö ——FÝå%©cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕÄòR¡«¼D³æ°¼4dÊK"{ŽËKe¦¼D´¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./…z-/Aƒ\^*5å%ª=Èå¥RS^¢ÚƒX^*t•—hÖ——ÆÜå%¡cËK¥¦¼Dµ¹¼TjÊKT{ËK¥¦¼Dµ¹¼4ê./Iƒ\^*5å%ª=Èå¥RS^¢Úƒ\^*5å%ª=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ ——JMy‰jby©ÐU^¢Ys\^*3å%¢=Èå¥QwyIêäòR©)/QíA./•šòÕäòR©)/QíA./ºËKRÇ ——JMy‰jry©Ô”—¨ö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK£îò’Ô1ˆå¥BWy‰fÍqy©Ì”—ˆö ——JMy‰jryiÔ]^’:¹¼TjÊKT{ËK¥¦¼Dµ¹¼TjÊKT{ËK¡^ËKPç ——JMy‰jry©Ô”—¨ö ——JMy‰jryyªò’ž#åå»ç8./Ÿã7þIÜß÷Î?‚°¼\gô;/ÿþ¿ÿ_ÿ÷×üöïû“¸¯ö—ýIÜðÁv•øîƒW‰ªDPç W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢ÚƒX%4U"™=‡U¢"W•ˆdÍq•¨ÌT‰ˆö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA¬ºªD4k«DC¦J$²ç¸JTfªDD{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA®•š*Õä*Q¨×*Ô9ÈU¢RS%¢Úƒ\%*5U"ª=ˆU¢BW•ˆfÍq•hÌ]%:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö V‰ +]U"š5ÇU¢2S%"Úƒ\%uW‰¤ŽA®•š*Õä*Q©©QíA®•š*Õä*Ѩ»J$ur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®IƒX%*tU‰hÖW‰ÊL•ˆhr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹JêµJur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰Ôʉ*‘ž#Uâ»ç8®Ÿã7¾ò{Èuþç;¬×ý>Èÿ*ñú`Y•lW‰ï>Øq•øñA Jur•¨ÔT‰¨ö W‰JM•ˆjr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ˆU¢AS%’ÙsX%*rU‰HÖW‰ÊL•ˆhr•¨ÔT‰¨ö W‰FÝU"©c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*ÕÄ*Q¡«JD³æ°J4dªD"{Ž«De¦JD´¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®…zAƒ\%*5U"ª=ÈU¢RS%¢ÚƒX%*tU‰hÖW‰ÆÜU"¡c«D¥¦JDµ¹JTjªDT{«D¥¦JDµ¹J4ê®Iƒ\%*5U"ª=ÈU¢RS%¢Úƒ\%*5U"ª=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ W‰JM•ˆjb•¨ÐU%¢Ys\%*3U"¢=ÈU¢Qw•Hêä*Q©©QíA®•š*Õä*Q©©QíA®º«DRÇ W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D£î*‘Ô1ˆU¢BW•ˆfÍq•¨ÌT‰ˆö W‰JM•ˆjr•hÔ]%’:¹JTjªDT{«D¥¦JDµ¹JTjªDT{«D¡^«DPç W‰JM•ˆjr•¨ÔT‰¨ö W‰JM•ˆjr•Hœ¨é9R%¾{Žã*ñø9~Û»¿ÿ+Û§ó_sªsF¿+ñýùÛþúÇŸùú±K<ÿJæî‰»ÄÇórþ¿?¼{´¿ÀÏÿbï~>Z½ÿh‡ýÚ'rܯ¡:±_sêê×XíAìלºú5V{û5§®~ÕÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=ˆýšSW¿ÆjR¿¦ÐÕ¯¡ÙsÔ¯9òÒ¯1Ysد9sõkŒö ökN]ý«=ˆýšRÓ¯¡:±_sêê×XíAìלºú5V{û5§®~ÕÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=ˆýšSW¿Æjb¿¦Ôôk¨ŽAìלºú5V{û5§®~Õ¤~Í¡—~Íš£~M‘«_C²ç°_sæê×íAìלºú5V{û5§®~ÕÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=ˆýšSW¿Æjb¿¦Ôôk¨ŽAìלºú5V{û5§®~ÕÄ~Í©«_cµ±_3êî×HƒØ¯9uõk¬ö ökN]ý«=HýšC/ý›5‡ýš2Ó¯!:±_sêê×XíAìלºú5V{û5§®~ÕÄ~M©é×PƒØ¯9uõk¬ö ökN]ý«=ˆýšSW¿Æjb¿¦Ôôk¨ŽAìלºú5V{û5§®~ÕÄ~Í©«_cµ±_Sjú5TÇ ökN]ý«=HýšC/ý›5‡ýš3W¿Æhb¿¦Ôôk¨ŽAìלºú5V{û5§®~ÕÄ~Í©«_cµ±_Sjú5TÇ ökN]ý«=ˆýšSW¿Æjb¿æÔÕ¯±ÚƒØ¯)5ýªcû5§®~ÕÄ~Í©«_cµ±_sêê×XíAì×”š~
Õ1HýšC/ý›5‡ýš3W¿Æhb¿æÔÕ¯±ÚƒØ¯)5ýªcû5§®~ÕÄ~Í©«_cµ±_sêê×XíAì׌ºû5Rç ökN]ý«=ˆýšSW¿Æjb¿æÔÕ¯±ÚƒØ¯aSu»_ÃçX‡Þ?ÇãóA¿ÏñÛÞª÷xþóù«Ü¯3úzÿAýÚõÑþ²~
>Úî×Þ}´ã~íãƒ@¿Fêä~M©é×PíAî×”š~
Õä~M©é×PíAî׌ºû5RÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jb¿fÐôkdöökŠ\ý’5Çýš2Ó¯!ڃܯ)5ýª=ÈýšQw¿Fêä~M©é×PíAî×”š~
Õä~M©é×PíAî׌ºû5RÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ±_Sèê×Ь9ì×™~Èžã~M™é×íAî×”š~
Õä~M©é×PíAî׌ºû5RÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5¡^û5Pç ÷kJM¿†jr¿¦Ôôk¨ö ök +]ýš5Çýš1w¿Fèä~M©é×PíAî×”š~
Õä~M©é×PíAî׌ºû5RÇ ÷kJM¿†jr¿¦Ôôk¨ö ÷kJM¿†jr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒØ¯)tõkhÖ÷kÊL¿†hr¿fÔݯ‘:¹_Sjú5T{û5¥¦_Cµ¹_Sjú5T{û5£î~Ô1ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~ͨ»_#ub¿¦ÐÕ¯¡Ysܯ)3ý¢=ÈýšRÓ¯¡ÚƒÜ¯u÷k¤ŽAî×”š~
Õä~M©é×PíAî×”š~
Õä~M¨×~
Ô9ÈýšRÓ¯¡ÚƒÜ¯)5ýª=ÈýšRÓ¯¡ÚƒÜ¯QS%ú5zŽôkïžã¸_;~Žßøþµ—·ÓóÝ#÷këÌoyÿÚÿøÇo_ù$_»?½¼ÜÊ×îOoßp}²©Ïÿ0|˜¯?*•>Y½ÿd‡Tê'rüG¥²ÚƒøG¥:5©ª=È©žQwªGêäTO©IõPíANõ”šTÕäTO©IõPíANõŒºS=RÇ §zJMª‡jrª§Ô¤z¨ö §zJMª‡jbªgФzdö¦zŠ\©’5Ç©ž2“ê!Úƒœê)5©ª=È©žQwªGêäTO©IõPíANõ”šTÕäTO©IõPíANõŒºS=RÇ §zJMª‡jrª§Ô¤z¨ö §zJMª‡jrªgÔê‘:9ÕSjR=T{S=¥&ÕCµ1ÕSèJõЬ9Lõ™TÈžãTO™IõíANõ”šTÕäTO©IõPíANõŒºS=RÇ §zJMª‡jrª§Ô¤z¨ö §zJMª‡jrªgÔê‘:9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=¡^S=Pç §zJMª‡jrª§Ô¤z¨ö ¦z +]©š5Ç©ž1wªGèäTO©IõPíANõ”šTÕäTO©IõPíANõŒºS=RÇ §zJMª‡jrª§Ô¤z¨ö §zJMª‡jrªgÔê‘:9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£îTÔ1È©žR“ê¡Úƒ˜ê)t¥zhÖ§zÊLª‡hrªgÔê‘:9ÕSjR=T{S=¥&ÕCµ9ÕSjR=T{S=£îTÔ1È©žR“ê¡Úƒœê)5©ª=È©žR“ê¡Úƒœêu§z¤ŽANõ”šTÕäTO©IõPíANõ”šTÕäTϨ;Õ#ubª§Ð•ê¡Ysœê)3©¢=È©žR“ê¡Úƒœêu§z¤ŽANõ”šTÕäTO©IõPíANõ”šTÕäTO¨×TÔ9È©žR“ê¡Úƒœê)5©ª=È©žR“ê¡ÚƒœêQ?&R=zޤzïžã8Õ;~Žßøª¹ç—Óó¥ç;NõÖ™ßòª¹ÿ€TïúdYªŸl§zï>Ùqª÷ñA ÕCµ9ÕSjR=T{S=£îTÔ1È©žR“ê¡Úƒœê)5©ª=È©žR“ê¡Úƒœêu§z¤ŽANõ”šTÕäTO©IõPíANõ”šTÕÄTÏ IõÈì9Lõ¹R=$kŽS=e&ÕC´9ÕSjR=T{S=£îTÔ1È©žR“ê¡Úƒœê)5©ª=È©žR“ê¡Úƒœêu§z¤ŽANõ”šTÕäTO©IõPíANõ”šTÕäTϨ;Õ#urª§Ô¤z¨ö §zJMª‡jbª§Ð•ê¡Ys˜ê2©‘=Ç©ž2“ê!Úƒœê)5©ª=È©žR“ê¡Úƒœêu§z¤ŽANõ”šTÕäTO©IõPíANõ”šTÕäTϨ;Õ#urª§Ô¤z¨ö §zJMª‡jrª§Ô¤z¨ö §zB½¦z ÎANõ”šTÕäTO©IõPíALõºR=4kŽS=cîTÐ1È©žR“ê¡Úƒœê)5©ª=È©žR“ê¡Úƒœêu§z¤ŽANõ”šTÕäTO©IõPíANõ”šTÕäTϨ;Õ#urª§Ô¤z¨ö §zJMª‡jrª§Ô¤z¨ö §zFÝ©©cS=¥&ÕCµ1ÕSèJõЬ9Nõ”™TÑäTϨ;Õ#urª§Ô¤z¨ö §zJMª‡jrª§Ô¤z¨ö §zFÝ©©cS=¥&Õûÿz»›Þº²õºÂÅÍtBˆ<¤D¶7.§c˶‚ Ê)é×ÿ>GuÖ\ç̗܃CJ!½´1ÇÚ¤>XÒƒE¬ö S=U
ÕÃj2ÕSÕP=¬ö S=SÝTªc©žª†êaµ™ê©j¨V{©žª†êaµ™ê™ê¦zTƒHõTtQ=lÖS=ÕÕÃh2ÕSÕP=¬ö S=SÝTªc©žª†êaµ™ê©j¨V{©žª†êaµ™ê‰ê•êAu2ÕSÕP=¬ö S=U
ÕÃj2ÕSÕP=¬ö S=òc‚êÑ9BõnÎqLõŽÏñƒTïñt÷ñÃ=S½õŒ¾UïO_¿þåóo÷Ë—ÿó—Ïú¯ÁÞËéîåñ™ÁÞéñîáûÏ…ëù^ÀŸŽÁÞ†ð~nܼß1Üx}€XíA†¦ºáUÇ Ã
U
ÜÀj2ÜPÕÀ
¬ö Ã
U
ÜÀj2Ü0Õ
7¨:n¨jàV{ᆪn`µn¨jàV{ᆩn¸AÕ1ÈpCU7°Úƒ7T5p«=ˆpCEÜÀfÍ!Ü0ÉÀ
JöÃ
ÕÜÀh2ÜPÕÀ
¬ö Ã
U
ÜÀj2Ü0Õ
7¨:n¨jàV{ᆪn`µn¨jàV{ᆩn¸AÕ1ÈpCU7°Úƒ7T5p«=ÈpCU7°Úƒ7Dõ +7 :n¨jàV{ᆪn`µn¨è‚ج9†¦¹áEÇ Ã
U
ÜÀj2ÜPÕÀ
¬ö Ã
U
ÜÀj2Ü0Õ
7¨:n¨jàV{ᆪn`µn¨jàV{ᆩn¸AÕ1ÈpCU7°Úƒ7T5p«=ÈpCU7°Úƒ7LuÃ
ªŽA†ª¸ÕD¸¡¢n`³æn¨fàF{ᆩn¸AÕ1ÈpCU7°Úƒ7T5p«=ÈpCU7°Úƒ7LuÃ
ªŽA†ª¸Õd¸¡ªXíA†ª¸Õd¸aªnPu2ÜPÕÀ
¬ö Ã
U
ÜÀj2ÜPÕÀ
¬ö Ã
SÝpƒªcᆊ.¸Íšc¸¡šíA†ª¸Õd¸aªnPu2ÜPÕÀ
¬ö Ã
U
ÜÀj2ÜPÕÀ
¬ö Ã
Q½Â
¨ÎA†ª¸Õd¸¡ªXíA†ª¸Õd¸AŽ@À
:GàÆÍ9ŽáÆñ9~ðÛ!ž¾ÿáÃõŒ¾cé„×óýÜ€÷ÛpãæýŽáÆëƒ +M²©-’L¹Û1É&LÅšcü~òŠ‘“cŽ)²IF"S²æØ!›d2%k޲IÆ S²æX ‹äÈì9æÇ&}LÉšc{l’¡Ç”¬9†Ç&wLÉšcu,’C²ç˜›dÄ1%k޽±I†S²æ›d¬1%k¥±(C°Æ›ÞRÆÔ»ccl‚!ÆT¬9Æ&_LÉšc],’C²ç˜›dd1%kŽ]±I†S²æ›dL1%kŽE±HnPÉžcNl’ÑÄ”¬9¶Ä&JLÉšcHl’qÄ”¬9VÄ"¹1${Ž ±IFS²æØ›dø0%kñ°).;LÁÛ1”â8½c6l‚QÃT¬96Ã&2LÉšc0l’ñ”¬9ÖÂ"¹±0${Ž©°IF +S²æØ ›d˜0%kŽ‘°IÆS²æX‹äÂì9æÁ&LÉšcl’¡Á”¬9†Á&LÉšcü~òŠ‚“cŽI°IFS²æØ›d80%k1°).LÁÛ1–À"¸!0{ްIFS²æØ +§êd®ªqáXíA–᪎Õd®ªÑáXíAöᦺ8UÇ qUÇj²WÕ0q¬ö CqUÇj²7ÕÅ©:™‹«j¼8V{ŸŠ.2ŽÍšc4®šQãíAv㦺á8UÇ ÓqUÇj²WÕðq¬ö rU Çj²!7ÕÈ©:™‘«j9V{%¹ª†’cµ“«j49V{=¹©nPNÕ1Ȥ\Ucʱڃ¬ÊU5¬«=Ȱ\U#˱ڃlËMuãrªŽAäå*º|96kŽ…¹j†˜c´™«j”9V{¹©nhNÕ1ÈÔ\Ucͱڃ¬ÍU5Ü«=Èà\U#αڃlÎEõŠÎ¡:™«jÜ9V{幪†žcµŸ«jô9V{ý9iÐéè7ç8&èÇçøýŸ^_¾ÿà ôóW§ßÝùÿÛ?œžß6èë¡<Ãý´„ùøüÛ·/ÿøåïÿüíóúòõÛkŽþ|:ÿ®üœ§ÿ÷Ÿ¿~}ËwÞŸîÿææp¯o‡þŽh8ú&Ÿðr›|Þ¼Üù|}ŒCò‰ÅÛ1$Ÿ*¸È'kŽÉ§j†|b´™|Šê•|Bu2ùTÕO¬ö “OU
ùÄj2ùTÕO¬ö “OSÝ䓪cɧª†|bµ™|ªjÈ'V{ɧª†|bµ™|šê&ŸTƒL>U5ä«=ÈäSUC>±ÚƒL>U5ä«=ˆäÓDC>©ÙsH>Ur‘OLÖ“OÕùÄh2ùTÕO¬ö “OSÝ䓪cɧª†|bµ™|ªjÈ'V{ɧª†|bµ™|šê&ŸTƒL>U5ä«=ÈäSUC>±ÚƒL>U5ä«=ÈäÓT7ù¤êdò©ª!ŸXíA&Ÿªò‰ÕDò©¢‹|b³æ|šdÈ'%{ŽÉ§j†|b´™|ªjÈ'V{ɧª†|bµ™|šê&ŸTƒL>U5ä«=ÈäSUC>±ÚƒL>U5ä«=ÈäÓT7ù¤êdò©ª!ŸXíA&Ÿªò‰Õdò©ª!ŸXíA&Ÿ¢z%ŸPƒL>U5ä«=ÈäSUC>±ÚƒH>Ut‘OlÖ“OÓÜä“¢cɧª†|bµ™|ªjÈ'V{ɧª†|bµ™|šê&ŸTƒL>U5ä«=ÈäSUC>±ÚƒL>U5ä«=ÈäÓT7ù¤êdò©ª!ŸXíA&Ÿªò‰Õdò©ª!ŸXíA&Ÿ¦ºÉ'UÇ “OU
ùÄj"ùTÑE>±YsL>U3ä£=ÈäÓT7ù¤êdò©ª!ŸXíA&Ÿªò‰Õdò©ª!ŸXíA&Ÿ¦ºÉ'UÇ “OU
ùÄj2ùTÕO¬ö “OU
ùÄj2ù4ÕM>©:™|ªjÈ'V{ɧª†|bµ™|ªjÈ'V{ɧ©nòIÕ1ˆäSEùÄfÍ1ùTÍOŒö “OU
ùÄj2ù4ÕM>©:™|ªjÈ'V{ɧª†|bµ™|ªjÈ'V{ɧ¨^É'Tç “OU
ùÄj2ùTÕO¬ö “OU
ùÄj2ù<FˆŠ|Ò9B>oÎqL>Ï1®~xçÚáûÇó‹}äk‡×3W¢ùïž>ü»ÿúÛ¯ß~ýöoÿòù5Ù|ºÜC|3þšl>ÿÿî€l>=ß=îùpyèöpoÜ |÷ááþƒ¼qƒðåY®ŽÁƒêéîéþAV/ϾSíÁƒê÷+•mõòì;Õä;šU5w4cµùŽfSÝw4Suòͪš;š±Úƒ|G³ªæŽf¬ö ßѬª¹£«=Èw4›ê¾£™ªcïhVÕÜÑŒÕä;šU5w4cµùŽfUÍÍXíA¾£ÙT7اê$°¯š°ÅÛ1û*¸À>kŽÁ¾jìc´ì‹êìCu2ØWÕ€}¬ö ƒ}U
ØÇj2ØWÕ€}¬ö ƒ}SÝ`ŸªcÁ¾ªìcµì«jÀ>V{Á¾ªìcµì›êûTƒöU5`«=È`_Uö±ÚƒöU5`«=ˆ`ßDö©ÙsöUr}LÖƒ}ÕØÇh2ØWÕ€}¬ö ƒ}SÝ`ŸªcÁ¾ªìcµì«jÀ>V{Á¾ªìcµì›êûTƒöU5`«=È`_Uö±ÚƒöU5`«=È`ßT7اêd°¯ªûXíAûª°ÕD°¯¢ìc³æì›dÀ>%{ŽÁ¾jìc´ì«jÀ>V{Á¾ªìcµì›êûTƒöU5`«=È`_Uö±ÚƒöU5`«=È`ßT7اêd°¯ªûXíAûª°Õd°¯ªûXíAû¢zûPƒöU5`«=È`_Uö±ÚƒöUt}lÖƒ}ÓÜ`Ÿ¢cÁ¾ªìcµì«jÀ>V{Á¾ªìcµì›êûTƒöU5`«=È`_Uö±ÚƒöU5`«=È`ßT7اêd°¯ªûXíAûª°Õd°¯ªûXíAû¦ºÁ>UÇ ƒ}U
ØÇj"ØWÑö±YsöU3`£=È`ßT7اêd°¯ªûXíAûª°Õd°¯ªûXíAû¦ºÁ>UÇ ƒ}U
ØÇj2ØWÕ€}¬ö ƒ}U
ØÇj2Ø7Õ
ö©:ì«jÀ>V{Á¾ªìcµì«jÀ>V{Á¾©n°OÕ1ˆ`_EØÇfÍ1ØWÍ€}Œö ƒ}U
ØÇj2Ø7Õ
ö©:ì«jÀ>V{Á¾ªìcµì«jÀ>V{Á¾¨^Á>Tç ƒ}U
ØÇj2ØWÕ€}¬ö ƒ}U
ØÇj2Ø?&è +ìÓ9öoÎqöÏ1Àþý;`ÿÃýÝýé‰Áþz†ïh~X·.ýüí|þíë—_y}=óÓÇóàËzð?þöÏ¿þÃk‚øñîéû¿X^öú#ý|:ÞÏ•/¶UâÍ‹«ÄוÕ9È*QU£±Úƒ¬U5*«=È*QU£±Úƒ¬Mu«DªŽAV‰ª•ˆÕd•¨ªQ‰XíAV‰ª•ˆÕd•hª[%Ru²JTÕ¨D¬ö «DUJÄj²JTÕ¨D¬ö ªDJ¤fÏ¡JTÉ¥1Ys¬U3*£=È*QU£±Úƒ¬Mu«DªŽAV‰ª•ˆÕd•¨ªQ‰XíAV‰ª•ˆÕd•hª[%Ru²JTÕ¨D¬ö «DUJÄj²JTÕ¨D¬ö «DSÝ*‘ªcU¢ªF%bµY%ªjT"V{U¢Š.•ˆÍšC•h’Q‰”ì9V‰ª•ˆÑd•¨ªQ‰XíAV‰ª•ˆÕd•hª[%Ru²JTÕ¨D¬ö «DUJÄj²JTÕ¨D¬ö «DSÝ*‘ªcU¢ªF%bµY%ªjT"V{U¢ªF%bµY%ŠêU%Bu²JTÕ¨D¬ö «DUJÄj¢JTÑ¥±Ys¬Ms«DŠŽAV‰ª•ˆÕd•¨ªQ‰XíAV‰ª•ˆÕd•hª[%Ru²JTÕ¨D¬ö «DUJÄj²JTÕ¨D¬ö «DSÝ*‘ªcU¢ªF%bµY%ªjT"V{U¢ªF%bµY%šêV‰Tƒ¬U5*«=ˆ*QE—JÄfͱJTͨDŒö «DSÝ*‘ªcU¢ªF%bµY%ªjT"V{U¢ªF%bµY%šêV‰Tƒ¬U5*«=È*QU£±Úƒ¬U5*«=È*ÑT·J¤êd•¨ªQ‰XíAV‰ª•ˆÕd•¨ªQ‰XíAV‰¦ºU"UÇ ªD]*›5Ç*Q5£1Úƒ¬U5*«=È*ÑT·J¤êd•¨ªQ‰XíAV‰ª•ˆÕd•¨ªQ‰XíAV‰¢zU‰Pƒ¬U5*«=È*QU£±Úƒ¬U5*«=È*‘¬œP‰tލěsœ>©ÄãsüØ5Â÷ÏÏçß#O¨óŒS‰ÿôǨěƒý”J¤ËC·/v¨ß8ȱJ¤êD•èªK%rµQ%ºêR‰\íAT‰®ºT"W{U¢ªF%bu¢JtÕ¥¹Úƒ¨]u©D®ö ªDW]*‘«=ˆ*QU£±:Q%ºêR‰\íAT‰®ºT"W{U¢«.•ÈÕ$•¨¢K%b³çH%ºäE%r²æP%ºæR‰íAT‰®ºT"W{U¢ªF%bu¢JtÕ¥¹Úƒ¨]u©D®ö ªDW]*‘«=ˆ*QU£±:Q%ºêR‰\íAT‰®ºT"W{U¢«.•ÈÕD•¨ªQ‰Xƒ¨]u©D®ö ªDW]*‘«=H*ÑE/*‘›5G*Q%—JÄdÏ¡JtÍ¥9Úƒ¨]u©D®ö ªDW]*‘«=ˆ*QU£±:Q%ºêR‰\íAT‰®ºT"W{U¢«.•ÈÕD•¨ªQ‰Xƒ¨]u©D®ö ªDW]*‘«=ˆ*ÑU—Jäj¢J4Õ©:Q%ºêR‰\íAT‰®ºT"W{T¢‹^T"7kU¢jF%bt¢JtÕ¥¹Úƒ¨]u©D®ö ªDW]*‘«=ˆ*QU£±:Q%ºêR‰\íAT‰®ºT"W{U¢«.•ÈÕD•¨ªQ‰Xƒ¨]u©D®ö ªDW]*‘«=ˆ*ÑU—Jäj¢JTÕ¨D¬ŽAT‰®ºT"W{T¢‹^T"7kU¢k.•ÈÑD•¨ªQ‰Xƒ¨]u©D®ö ªDW]*‘«=ˆ*ÑU—Jäj¢JTÕ¨D¬ŽAT‰®ºT"W{U¢«.•ÈÕD•èªK%rµQ%ªjT"VÇ ªDW]*‘«=ˆ*ÑU—Jäj¢JtÕ¥¹Úƒ¨U5*«cT¢‹^T"7kU¢k.•ÈÑD•èªK%rµQ%ªjT"VÇ ªDW]*‘«=ˆ*ÑU—Jäj¢JtÕ¥¹Úƒ¨Mu«DªÎAT‰®ºT"W{U¢«.•ÈÕD•èªK%rµQ%¢•{_%â9ÖC·ç8T‰pŽ»+ñþû|§V‰ë}W⟾~ýËçßÞ@‰—ïHÍ(ñþüûØóßÜœkþá÷8B‰¿—jz«Ë#·ïtô]ªß8Ãáw©æbÍáw©vÍÈKŒö ËKQ½ÊK¨ÎA–—ªy‰Õdy©ª‘—XíA–—ªy‰Õdyiª[^Ru²¼TÕÈK¬ö ËKU¼Äj²¼TÕÈK¬ö ËKSÝò’ªc奪F^bµY^ªjä%V{奪F^bµQ^šhä%5{å¥J.y‰Éšcy©š‘—íA–—ªy‰Õdyiª[^Ru²¼TÕÈK¬ö ËKU¼Äj²¼TÕÈK¬ö ËKSÝò’ªc奪F^bµY^ªjä%V{奪F^bµY^šê–—Tƒ,/U5ò«=ÈòRU#/±Úƒ(/UtÉKlÖÊK“Œ¼¤dϱ¼TÍÈKŒö ËKU¼Äj²¼TÕÈK¬ö ËKSÝò’ªc奪F^bµY^ªjä%V{奪F^bµY^šê–—Tƒ,/U5ò«=ÈòRU#/±Úƒ,/U5ò«=ÈòRT¯òªs奪F^bµY^ªjä%V{奊.y‰Íšcyiš[^Rt²¼TÕÈK¬ö ËKU¼Äj²¼TÕÈK¬ö ËKSÝò’ªc奪F^bµY^ªjä%V{奪F^bµY^šê–—Tƒ,/U5ò«=ÈòRU#/±Úƒ,/U5ò«=ÈòÒT·¼¤êdy©ª‘—XíA”—*ºä%6kŽå¥jF^b´Y^šê–—Tƒ,/U5ò«=ÈòRU#/±Úƒ,/U5ò«=ÈòÒT·¼¤êdy©ª‘—XíA–—ªy‰Õdy©ª‘—XíA–—¦ºå%UÇ ËKU¼Äj²¼TÕÈK¬ö ËKU¼Äj²¼4Õ-/©:Q^ªè’—ج9–—ªy‰Ñdy©ª‘—XíA–—¦ºå%UÇ ËKU¼Äj²¼TÕÈK¬ö ËKU¼Äj²¼Õ«¼„êdy©ª‘—XíA–—ªy‰Õdy©ª‘—XíA–—Ç PÉK:GäåÍ9Žååñ9~ð>Èó—QÏ//èÛ ÿw¹Oõ3ìòø•–º¼¾Ð!º|u€csI¹Û1—&pIÅšcnù~òª-“cŽ¥I†ZR²æZšdœ%%kŽ•¥IYR²æ˜XŠä–ì9ö•&^IÉšc\i’±•”¬9–•&XIÉšcV)’[UB²çØTšdH%%kŽA¥IÆSR²æXSšd0%%k)¥(FRB°ÆÐQšÞb”Ô»cDi‚1”T¬9”&@IÉšc>)’[OB²çØNšdè$%kŽá¤IÆMR²æXMšdÐ$%kŽÉ¤Hn1 Éžc/i’á’”¬9Æ’&+IÉšc)i’’”¬9f’"¹•$${ޤI†HR²æHšd|$%ku¤).IÁÛ1¤‘¢ ½ci‚a‘T¬9F‘&IÉšci’‘”¬9æ"¹5$${Ž-¤I†BR²æBšd$%kޤIAR²æ˜@Šäì9ö&þHÉšcüh’±”¬9–&øHÉšcöø~òª“cŽÍ£I†<R²æ<šd¼#%kµ£).ìHÁÛ1¦Ž"¸¥#{Ž£I†9R²æ9šdŒ#%kŽ…£I8R²æ˜7ŠäÖì9¶&ÚHÉšcØh’q”¬9V&ÔHÉšcÒ(’[4B²çØ3šd8#%kŽ1£IÆ2R²æX2šd #%kŽ£HnÅÉžcÃh’!Œ”¬9Œ¦¸ü"oÇX/š`ð"kŽé¢Hn¹Éžc·h’a‹”¬9F‹&³HÉšc±h’‹”¬9æŠ"¹µ"${Ž¢I†*R²æ*šdœ"%kŽ•¢I)R²æ˜(ŠäŠì9ö‰&žHÉšcœh’±‰”¬9–‰&˜HÉšc–(’[%B²çÐ$šâ"‰¼ch‚ñˆT¬9Öˆ&ŒHÉšcŠ(’["B²çØ!šd"%kŽ¢IÆ R²æX šd +«=È2JUC£°ÚƒŒ£Luë(ªŽAöQª …Õd"¥ª1RXíATR*º˜6k¡”IFJQ²çØJ©f°F{¹”ªÆKaµYL©jÈV{Ñ”©n5EÕ1ÈnJU§°ÚƒL§T5v +«=ÈzJUç°Úƒ¨Lu*ªŽA6TªD…ÕdF¥ªqTXíA–TªJ…ÕdL%ªWMÕ9ÈžJUª°ÚƒLªT5¦ +«=ˆªJE«ÂfÍ1¬2Í-«(:ÙV©jpV{y•ªÆWaµYX©jˆV{‘•©neEÕ1ÈÎJU°ÚƒLT5Ö +«=ÈÚJUðڃ®Lu‹+ªŽA6Wªt…Õdv¥ªqWXíA–Wªz…Õd|eª[_Qu²¿RÕ +K5ð0Úƒ±LuK,ªŽA¶XªŒ…ÕdŽ¥ªñXXíAYª’…Õd”eª[eQu²ËRÕÀ,¬ö Ó,UÍÂj²ÎRÕð,¬ö -SÝB‹ªc–ªiaµ™i©jœV{¥–ª†jaµk™êÖZTƒèµTt-lÖ“-ÕŒÙÂh²ÚRÕ°-¬ö Ã-SÝr‹ªcí–ªoaµ™o©jüV{—ª†paµq‰êUqAu²ãRÕ@.¬ö S.UåÂj²æRÕp.¬ö ƒ®cg¤D#¤ëæÇ¦ëø?ˆºNïNŸÞ¹Dn=£¿{ïùü×o꺞íçP¼ÛF]7ïvŒº^PV{Q—ªuaµu™êF]TƒŒºT5¨«=ȨKUƒº°ÚƒŒºT5¨«=ˆ¨ËDƒº¨ÙsˆºTr¡.LÖ£.ÕêÂh2êRÕ .¬ö £.Sݨ‹ªcQ—ªuaµu©jPV{Q—ªuaµu™êF]TƒŒºT5¨«=ȨKUƒº°ÚƒŒºT5¨«=ȨËT7ê¢êdÔ¥ªA]XíAF]ªÔ…ÕDÔ¥¢ua³æu™dP%{ŽQ—jua´u©jPV{Q—ªuaµu™êF]TƒŒºT5¨«=ȨKUƒº°ÚƒŒºT5¨«=ȨËT7ê¢êdÔ¥ªA]XíAF]ªÔ…ÕdÔ¥ªA]XíAF]¢zE]PƒŒºT5¨«=ȨKUƒº°ÚƒˆºTt¡.lÖ£.Óܨ‹¢cQ—ªuaµu©jPV{Q—ªuaµu™êF]TƒŒºT5¨«=ȨKUƒº°ÚƒŒºT5¨«=ȨËT7ê¢êdÔ¥ªA]XíAF]ªÔ…ÕdÔ¥ªA]XíAF]¦ºQUÇ £.U
êÂj"êRÑ…º°YsŒºT3¨£=ȨËT7ê¢êdÔ¥ªA]XíAF]ªÔ…ÕdÔ¥ªA]XíAF]¦ºQUÇ £.U
êÂj2êRÕ .¬ö £.U
êÂj2ê2Õº¨:u©jPV{Q—ªuaµu©jPV{Q—©nÔEÕ1ˆ¨KEêÂfÍ1êRÍ .Œö £.U
êÂj2ê2Õº¨:u©jPV{Q—ªuaµu©jPV{Q—¨^QTç £.U
êÂj2êRÕ .¬ö £.U
êÂj2ê:vF +uÑ9‚ºnÎqŒºŽÏñƒßôát÷x>¢®õŒ¾©ëB]׳ýê‚wÛ¨ëæÝŽQ×ëƒ +uÑ9‚ºnÎqŒºŽÏñc7uR?=œÐtGô=]麞ì§D¼Xž¹y±CÏõúÇœ“5‡˜K%—åÂdÍ¡ä2É@.Jö2.•\Š“5‡†K%áÂdÍ!àRÉå·0Ys¤·Lqá- +ÖÑ-Õ»È-ìÝŽ¡ÛRÁŶ°Xsˆ¶Tr™-LÖŠ-“Ø¢dÏ!×RÉ¥µ0YshµTrQ-LÖB-•\N“5‡JË$ƒ´(ÙsH´Tr -LÖú,•\<“5‡8K%—ÍÂdÍ¡Ì2ÉÀ,Jö²,•\*“5‡&K%ÉÂdÍÈRÅ‹ÇÂàíi,Ó[‹z5†K—ÄÂbÍ¡ÃRÉŰ0Ysˆ°Tr,LÖ +,“À¢dÏ!¿RÉ¥¯0Ysh¯TrÑ+LÖÂ+•\î +“5‡êÊ$ƒ®(ÙsH®Tr‰+LÖz+•\Ü +“5‡ØJ%—µÂdÍ¡´É
9æY©äRV˜¬94V*¹ˆ&kŽ€•*^|oÇPW™`p{i•J.Y…ÉšCW¥’‹Ua²æU©ä2U˜¬9U&PEÉžCN¥’KSa²æÐR©ä¢T˜¬9„T*¹&k•IQQ²çP©äT˜¬9ôS*¹ø&kñ”J.;…ÉšC9e’S”ì9dS*¹Ô&kŽÌ”*^ÈoÇL©àòRX¬9ÔR&,EÉžC*¥’KJa²æÐI©äbR˜¬9DR*¹Œ&k…”IHQ²çG©äÒQ˜¬9´Q*¹h&ka”J.…ÉšCe’AQ”ì9$Q*¹D&k=”J.…ÉšC¥’ËBa²æPB™d %{Ž”*^oÇÐ@©à"PX¬9P*¹ü&kõ“I?Q²ç>©ä’O˜¬9tO*¹Ø&kÑ“J.ó„ÉšCñ$’<ArÌ!wRÉ¥0YshTrQ'LÖB'•\Î “5‡Êé˜ÞäD‡XÏÜâ8âüEûËÝÓ÷¿Ä{|>ÿ¡ñöÕVŸîï>~ÿ=ëîùþÓ>Í÷ŸÍ}šç¿Y|?Í¿~ùrpœëNRÿA”®]endstream +endobj +1820 0 obj << +/Type /Page +/Contents 1821 0 R +/Resources 1819 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1927 0 R +/Annots [ 1823 0 R 1824 0 R 1825 0 R 1826 0 R 1827 0 R 1828 0 R 1829 0 R 1830 0 R 1831 0 R 1832 0 R 1833 0 R 1834 0 R 1835 0 R 1836 0 R 1837 0 R 1838 0 R 1839 0 R 1840 0 R 1841 0 R 1842 0 R 1843 0 R 1844 0 R 1845 0 R 1846 0 R 1847 0 R 1848 0 R 1849 0 R 1850 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R 1856 0 R 1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R 1862 0 R 1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R 1868 0 R 1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R 1874 0 R 1875 0 R 1876 0 R 1877 0 R 1878 0 R 1879 0 R 1880 0 R 1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R 1886 0 R 1887 0 R 1888 0 R 1889 0 R 1890 0 R 1891 0 R 1892 0 R 1893 0 R 1894 0 R 1895 0 R 1896 0 R 1897 0 R 1898 0 R 1899 0 R 1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R 1905 0 R 1906 0 R 1907 0 R 1908 0 R 1909 0 R 1910 0 R 1911 0 R 1912 0 R 1913 0 R 1914 0 R 1915 0 R 1916 0 R 1917 0 R 1918 0 R 1919 0 R 1920 0 R 1921 0 R 1922 0 R 1923 0 R 1924 0 R 1925 0 R 1926 0 R ] +>> endobj +1823 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 757.858 236.333 764.801] +/Subtype /Link +/A << /S /GoTo /D (2203) >> +>> endobj +1824 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 757.858 521.32 764.801] +/Subtype /Link +/A << /S /GoTo /D (2203) >> +>> endobj +1825 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 742.938 257.982 751.849] +/Subtype /Link +/A << /S /GoTo /D (2207) >> +>> endobj +1826 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 742.938 521.32 751.849] +/Subtype /Link +/A << /S /GoTo /D (2207) >> +>> endobj +1827 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 731.094 285.788 738.898] +/Subtype /Link +/A << /S /GoTo /D (2222) >> +>> endobj +1828 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 731.094 521.32 738.898] +/Subtype /Link +/A << /S /GoTo /D (2222) >> +>> endobj +1829 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 717.784 252.473 725.947] +/Subtype /Link +/A << /S /GoTo /D (2227) >> +>> endobj +1830 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 717.784 521.32 725.947] +/Subtype /Link +/A << /S /GoTo /D (2227) >> +>> endobj +1831 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 704.084 257.982 712.995] +/Subtype /Link +/A << /S /GoTo /D (2231) >> +>> endobj +1832 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 704.084 521.32 712.995] +/Subtype /Link +/A << /S /GoTo /D (2231) >> +>> endobj +1833 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 692.24 285.788 700.044] +/Subtype /Link +/A << /S /GoTo /D (2259) >> +>> endobj +1834 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 692.24 521.32 700.044] +/Subtype /Link +/A << /S /GoTo /D (2259) >> +>> endobj +1835 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 680.149 258.889 687.092] +/Subtype /Link +/A << /S /GoTo /D (2270) >> +>> endobj +1836 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 680.149 521.32 687.092] +/Subtype /Link +/A << /S /GoTo /D (2270) >> +>> endobj +1837 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 665.979 258.889 674.141] +/Subtype /Link +/A << /S /GoTo /D (2276) >> +>> endobj +1838 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 665.979 521.32 674.141] +/Subtype /Link +/A << /S /GoTo /D (2276) >> +>> endobj +1839 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 654.247 241.713 661.189] +/Subtype /Link +/A << /S /GoTo /D (2280) >> +>> endobj +1840 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 654.247 521.32 661.189] +/Subtype /Link +/A << /S /GoTo /D (2280) >> +>> endobj +1841 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 639.327 257.982 648.238] +/Subtype /Link +/A << /S /GoTo /D (2284) >> +>> endobj +1842 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 639.327 521.32 648.238] +/Subtype /Link +/A << /S /GoTo /D (2284) >> +>> endobj +1843 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 627.483 285.788 635.287] +/Subtype /Link +/A << /S /GoTo /D (2321) >> +>> endobj +1844 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 627.483 521.32 635.287] +/Subtype /Link +/A << /S /GoTo /D (2321) >> +>> endobj +1845 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 615.392 269.648 622.335] +/Subtype /Link +/A << /S /GoTo /D (2331) >> +>> endobj +1846 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 615.392 521.32 622.335] +/Subtype /Link +/A << /S /GoTo /D (2331) >> +>> endobj +1847 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 602.441 258.889 609.384] +/Subtype /Link +/A << /S /GoTo /D (2335) >> +>> endobj +1848 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 602.441 521.32 609.384] +/Subtype /Link +/A << /S /GoTo /D (2335) >> +>> endobj +1849 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 588.27 258.889 596.432] +/Subtype /Link +/A << /S /GoTo /D (2340) >> +>> endobj +1850 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 588.27 521.32 596.432] +/Subtype /Link +/A << /S /GoTo /D (2340) >> +>> endobj +1851 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 575.319 285.788 583.481] +/Subtype /Link +/A << /S /GoTo /D (2344) >> +>> endobj +1852 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 575.319 521.32 583.481] +/Subtype /Link +/A << /S /GoTo /D (2344) >> +>> endobj +1853 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 562.367 296.548 570.529] +/Subtype /Link +/A << /S /GoTo /D (2348) >> +>> endobj +1854 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 562.367 521.32 570.529] +/Subtype /Link +/A << /S /GoTo /D (2348) >> +>> endobj +1855 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 550.635 264.269 557.578] +/Subtype /Link +/A << /S /GoTo /D (2352) >> +>> endobj +1856 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 550.635 521.32 557.578] +/Subtype /Link +/A << /S /GoTo /D (2352) >> +>> endobj +1857 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 537.684 269.648 544.627] +/Subtype /Link +/A << /S /GoTo /D (2359) >> +>> endobj +1858 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 537.684 521.32 544.627] +/Subtype /Link +/A << /S /GoTo /D (2359) >> +>> endobj +1859 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 524.732 268.612 531.675] +/Subtype /Link +/A << /S /GoTo /D (2365) >> +>> endobj +1860 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 524.732 521.32 531.675] +/Subtype /Link +/A << /S /GoTo /D (2365) >> +>> endobj +1861 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 509.812 257.982 518.724] +/Subtype /Link +/A << /S /GoTo /D (2372) >> +>> endobj +1862 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 509.812 521.32 518.724] +/Subtype /Link +/A << /S /GoTo /D (2372) >> +>> endobj +1863 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 498.829 296.548 505.772] +/Subtype /Link +/A << /S /GoTo /D (2461) >> +>> endobj +1864 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 498.829 521.32 505.772] +/Subtype /Link +/A << /S /GoTo /D (2461) >> +>> endobj +1865 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 484.659 296.548 492.821] +/Subtype /Link +/A << /S /GoTo /D (2466) >> +>> endobj +1866 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 484.659 521.32 492.821] +/Subtype /Link +/A << /S /GoTo /D (2466) >> +>> endobj +1867 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 472.927 291.168 479.869] +/Subtype /Link +/A << /S /GoTo /D (2470) >> +>> endobj +1868 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 472.927 521.32 479.869] +/Subtype /Link +/A << /S /GoTo /D (2470) >> +>> endobj +1869 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 458.756 296.548 466.918] +/Subtype /Link +/A << /S /GoTo /D (2475) >> +>> endobj +1870 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 458.756 521.32 466.918] +/Subtype /Link +/A << /S /GoTo /D (2475) >> +>> endobj +1871 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 447.024 291.168 453.967] +/Subtype /Link +/A << /S /GoTo /D (2479) >> +>> endobj +1872 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 447.024 521.32 453.967] +/Subtype /Link +/A << /S /GoTo /D (2479) >> +>> endobj +1873 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 432.853 291.168 441.015] +/Subtype /Link +/A << /S /GoTo /D (2485) >> +>> endobj +1874 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 432.853 521.32 441.015] +/Subtype /Link +/A << /S /GoTo /D (2485) >> +>> endobj +1875 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 419.901 296.548 428.064] +/Subtype /Link +/A << /S /GoTo /D (2489) >> +>> endobj +1876 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 419.901 521.32 428.064] +/Subtype /Link +/A << /S /GoTo /D (2489) >> +>> endobj +1877 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 406.95 296.548 415.112] +/Subtype /Link +/A << /S /GoTo /D (2495) >> +>> endobj +1878 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 406.95 521.32 415.112] +/Subtype /Link +/A << /S /GoTo /D (2495) >> +>> endobj +1879 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 395.218 307.307 402.161] +/Subtype /Link +/A << /S /GoTo /D (2499) >> +>> endobj +1880 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 395.218 521.32 402.161] +/Subtype /Link +/A << /S /GoTo /D (2499) >> +>> endobj +1881 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 381.047 307.307 389.209] +/Subtype /Link +/A << /S /GoTo /D (2514) >> +>> endobj +1882 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 381.047 521.32 389.209] +/Subtype /Link +/A << /S /GoTo /D (2514) >> +>> endobj +1883 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 369.315 301.927 376.258] +/Subtype /Link +/A << /S /GoTo /D (2519) >> +>> endobj +1884 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 369.315 521.32 376.258] +/Subtype /Link +/A << /S /GoTo /D (2519) >> +>> endobj +1885 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 355.144 301.927 363.307] +/Subtype /Link +/A << /S /GoTo /D (2525) >> +>> endobj +1886 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 355.144 521.32 363.307] +/Subtype /Link +/A << /S /GoTo /D (2525) >> +>> endobj +1887 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 342.193 334.206 350.355] +/Subtype /Link +/A << /S /GoTo /D (2530) >> +>> endobj +1888 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 342.193 521.32 350.355] +/Subtype /Link +/A << /S /GoTo /D (2530) >> +>> endobj +1889 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 329.241 334.206 337.404] +/Subtype /Link +/A << /S /GoTo /D (2536) >> +>> endobj +1890 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 329.241 521.32 337.404] +/Subtype /Link +/A << /S /GoTo /D (2536) >> +>> endobj +1891 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 316.29 339.586 324.452] +/Subtype /Link +/A << /S /GoTo /D (2540) >> +>> endobj +1892 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 316.29 521.32 324.452] +/Subtype /Link +/A << /S /GoTo /D (2540) >> +>> endobj +1893 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 303.339 339.586 311.501] +/Subtype /Link +/A << /S /GoTo /D (2546) >> +>> endobj +1894 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 303.339 521.32 311.501] +/Subtype /Link +/A << /S /GoTo /D (2546) >> +>> endobj +1895 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 291.607 312.687 298.549] +/Subtype /Link +/A << /S /GoTo /D (2550) >> +>> endobj +1896 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 291.607 521.32 298.549] +/Subtype /Link +/A << /S /GoTo /D (2550) >> +>> endobj +1897 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 277.436 312.687 285.598] +/Subtype /Link +/A << /S /GoTo /D (2556) >> +>> endobj +1898 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 277.436 521.32 285.598] +/Subtype /Link +/A << /S /GoTo /D (2556) >> +>> endobj +1899 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 264.484 264.269 272.646] +/Subtype /Link +/A << /S /GoTo /D (2562) >> +>> endobj +1900 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 264.484 521.32 272.646] +/Subtype /Link +/A << /S /GoTo /D (2562) >> +>> endobj +1901 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 251.533 275.028 259.695] +/Subtype /Link +/A << /S /GoTo /D (2570) >> +>> endobj +1902 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 251.533 521.32 259.695] +/Subtype /Link +/A << /S /GoTo /D (2570) >> +>> endobj +1903 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 238.581 264.269 246.744] +/Subtype /Link +/A << /S /GoTo /D (2575) >> +>> endobj +1904 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 238.581 521.32 246.744] +/Subtype /Link +/A << /S /GoTo /D (2575) >> +>> endobj +1905 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 226.849 290.131 233.792] +/Subtype /Link +/A << /S /GoTo /D (2583) >> +>> endobj +1906 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 226.849 521.32 233.792] +/Subtype /Link +/A << /S /GoTo /D (2583) >> +>> endobj +1907 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 211.929 257.982 220.841] +/Subtype /Link +/A << /S /GoTo /D (2590) >> +>> endobj +1908 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 211.929 521.32 220.841] +/Subtype /Link +/A << /S /GoTo /D (2590) >> +>> endobj +1909 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 200.946 296.548 207.889] +/Subtype /Link +/A << /S /GoTo /D (2642) >> +>> endobj +1910 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 200.946 521.32 207.889] +/Subtype /Link +/A << /S /GoTo /D (2642) >> +>> endobj +1911 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 186.776 296.548 194.938] +/Subtype /Link +/A << /S /GoTo /D (2647) >> +>> endobj +1912 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 186.776 521.32 194.938] +/Subtype /Link +/A << /S /GoTo /D (2647) >> +>> endobj +1913 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 175.044 291.168 181.986] +/Subtype /Link +/A << /S /GoTo /D (2651) >> +>> endobj +1914 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 175.044 521.32 181.986] +/Subtype /Link +/A << /S /GoTo /D (2651) >> +>> endobj +1915 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 160.873 291.168 169.035] +/Subtype /Link +/A << /S /GoTo /D (2656) >> +>> endobj +1916 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 160.873 521.32 169.035] +/Subtype /Link +/A << /S /GoTo /D (2656) >> +>> endobj +1917 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 147.921 312.687 156.084] +/Subtype /Link +/A << /S /GoTo /D (2660) >> +>> endobj +1918 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 147.921 521.32 156.084] +/Subtype /Link +/A << /S /GoTo /D (2660) >> +>> endobj +1919 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 134.97 312.687 143.132] +/Subtype /Link +/A << /S /GoTo /D (2664) >> +>> endobj +1920 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 134.97 521.32 143.132] +/Subtype /Link +/A << /S /GoTo /D (2664) >> +>> endobj +1921 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 122.018 312.687 130.181] +/Subtype /Link +/A << /S /GoTo /D (2669) >> +>> endobj +1922 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 122.018 521.32 130.181] +/Subtype /Link +/A << /S /GoTo /D (2669) >> +>> endobj +1923 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 110.286 312.687 117.229] +/Subtype /Link +/A << /S /GoTo /D (2674) >> +>> endobj +1924 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 110.286 521.32 117.229] +/Subtype /Link +/A << /S /GoTo /D (2674) >> +>> endobj +1925 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 96.116 312.687 104.278] +/Subtype /Link +/A << /S /GoTo /D (2680) >> +>> endobj +1926 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 96.116 521.32 104.278] +/Subtype /Link +/A << /S /GoTo /D (2680) >> +>> endobj +1822 0 obj << +/D [1820 0 R /XYZ 71.731 778.968 null] +>> endobj +1819 0 obj << +/Font << /F26 1184 0 R /F33 1203 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1982 0 obj << +/Length 29763 +/Filter /FlateDecode +>> +stream +xÚ´ÝM“dÙy]é9E
©Bñ‘C ”ÚØlÉh4jëAH’%¨¶ªñïÛ³üìã¾ßˆ»beÉdˆf¸ØÏõt²"³îº'ï¾»=ý¿»ï^în^NÿßËëͧç×ï~ÿ¯uûÝ?Ÿþ“ÿã¯îÖŸnž^?þçwþÃß<<ÜÞÜ>¼|÷›ûÛ›O÷÷ï^s÷éîæþõá»ß¼<½ÞÜ>>½è?þî¯þý¾þîÓ‰}øîwÿô].Ê5¿ûÃÿý׿û—ÏÿîÿùÝÿùïÿóÃÃw_ïïù—_n>½ÞŸ–¿^ñóç/ÿðùß~üŸŸÿðÛÏ?}ùáŸ~øý÷_>ÿ»ßÜýõÏçÿb §[|}|YÿÍÿòùË¿üø‡¯WýÕúݾׇ绛»Û§ï®ît~œûÓç}8úÕx~¸¹{xåOš‹®?éÍÛyºy¾ÿôÞ¼£ž¯ý@íÁõõæî^¢¿\úYsï“/·7ÏwŽ<_Êdϧ/àÖšçk?@{ð@}ºyú$q×µ¨=x žþÃW«ž¯ý@íÁ÷Õ×Û›§—§®kYƒêÃÍíó£TÏ×~ öàzúž¬z¾öµÔ¯ÿá“TÏ×~ öàûê§Ó×ð Õu-«cð@=}
§ÿ–SÏ×~ öàzúî^¤z¾öµÔÓxkÕóµ¨=ø®úx{{óøéU©¹Õ9x ÞŸ~”’êùÚÔ<PŸn_¬z¾öµÔÓo[^$úË¥˜5÷>ywúäÖ\Ëè<POßÁ“UÏ×~ öàzúï¥z¾öµÔÓ·ðð Õóµ¨=ø¾zú}ìã½T×µ¬ŽÁõô5Ü=Jõ|íj¨§¯áöIªçk?P{ð@}¹yýdÕóµ¨=ø¾zú£Ôëû1—kYƒêýÍë‹ü'ÓºöµÔ§›‡g«ž¯ý@íÁõô5<ÉsëÚÔ|_}<}
òκ–Õ1x ž¾†«ž¯ý@íÁõô5È4/ýÀ¬¹òôÜË8ëÚÐ|_}:}wR]ײ:ÔÓwp+Ìk?P{ð@}º¹ÿ$¿Õuíj¨/7/¯V=_ûÚƒï«Ï·7÷/òÇܺ–Õ1x Þß¼<Ë8ëÚÔ<PO_ÓUÏ×~ öàzúå¹uíj¾¯¾œ¾†ùg]Ëê<PO_ýUÏ×~ öàzúîä¹uíj¨§¯áVþÀY×~ öàûêëíÍÝ'©®kYƒêýͳE¹ô³æÈ§›»Wùg]ûÚƒêËÍó‹UÏ×~ öàûê§Ówð,ÌkYƒêé[x’?pÖµ¨=x ž¾†G«ž¯ý@íÁõô5<ÈsëÚÔ|W}º=}
÷îN®Eu¨§¯áΪçk?P{ð@=}
·ÏR=_ûÚƒêËÍ“ü÷L¹öµßWïnon__è©ÙÝé7AÍžîînž>ºuÑõ}<¼¼¹‘ûÓU÷t—–ë_+ñËÓŸ?nOnÇ–ë÷ÀòŸÿw=°¼Üé¯{` Ÿt?°¼ú¤Ç,ßÞ<°Dµñ¥B×K4kX2,‰ì9~`©Ì<°D´ù¥RóÀÕä–JÍKT{Xu?°$uòK¥æ%ª=È,•š–¨ö ?°TjX¢ÚƒüÀÒ¨û%©cX*5,QíA~`©Ô<°Dµù¥RóÀÕä–B½<°uòK¥æ%ª=È,•š–¨ö >°Tèz`‰fÍñKcî–„ŽA~`©Ô<°Dµù¥RóÀÕä–JÍKT{Xu?°$uòK¥æ%ª=È,•š–¨ö ?°TjX¢ÚƒüÀÒ¨û%©cX*5,QíA~`©Ô<°Dµù¥RóÀÕä–FÝ,IƒüÀR©y`‰jâK…®–hÖ?°TfX"ÚƒüÀÒ¨û%©cX*5,QíA~`©Ô<°Dµù¥RóÀÕä–FÝ,IƒüÀR©y`‰jòK¥æ%ª=È,•š–¨ö ?°4ê~`Iêä–JÍKT{X*5,QíA~`©Ô<°Dµù¥Q÷KRÇ >°Tèz`‰fÍñKeæ%¢=È,•š–¨ö ?°4ê~`Iêä–JÍKT{X*5,QíA~`©Ô<°Dµù¥P/,AƒüÀR©y`‰jòK¥æ%ª=È,•š–¨ö ?°<~j¦XÒ}äåÕ}<¼=°<¾ñÀò£7,O–ýúKøÀr]ãXþÛçŸ~ø§¿¼}8ùðxóÂ&ïO?„oï_¿»º§yã·7ŸŽ~•¿þ×?ýòÛFøL¹èú3ݼ½‘כǧç÷näõ|íj¾¯ž~.z”꺖Õ1x >Ü<~ý]žRÏ×~ öàzúÞÿªßQÏ×~ öàzúî¬z¾öµßWO?š?}ý]žQ×µ¬ŽÁõô5Hó땈×cÞÓÍ«ý¿\úXsäëÍÃ×ßß)ó|íh¾ÿüêôùõå^©¹Õ9x >Ü<<[õ|íj¨§oáéAªçk?P{ð@=}
R=_ûڃ﫧ñ¯R]ײ:ÔÓ×pÿ$Õóµ¨=x ž¾†»g©ž¯ý@íÁõô5ÜZõ|íj¾¯ÞßÞ¼|r?àr-«cð@}8ýÞéUªçk?P{ð@}:ý&˪çk?P{ð@}½¹þ$Õóµ¨=ø¾zúmî‹ü_¦ó¥löÜyúäÿž/ý€¬¹òô<ÞIó|íh¨§/àAþ´Y×~ öàûêãé+¸—꺖Õ1x ž¾…;ù3n]ûÚƒêék¸•?mÖµ¨=x ¾ÞÜ}²êùÚÔ|_}º½y~•ÿw³®eu¨7wöëÚÔ<PŸnžŸz¾öµÔÓ×ð$Æk?P{ð ¥=}
ò§Íº–Õ1x ®¸X©©•QíA®••šZÕÄZY¡«VF³æ°V6dje"{Žkee¦VF´¹VVjjeT{ke¥¦VFµ¹V6ꮕIƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•…z©•Aƒ\++5µ2ª=ȵ²RS+£ÚƒX++tÕÊhÖ×ÊÆÜµ2¡cke¥¦VFµ¹VVjjeT{ke¥¦VFµ¹V6ꮕIƒ\++5µ2ª=ȵ²RS+£Úƒ\++5µ2ª=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•ºkeRÇ ×ÊJMŒjb¬ÐU+£Ys\++3µ2¢=ȵ²QwLêäZY©©•QíA®••šZÕäZY©©•QíA®•ºkeRÇ ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjrlÔ]+“:¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke£îZ™Ô1ˆµ²BWŒfÍq¬ÌÔʈö ×ÊJMŒjrlÔ]+“:¹VVjjeT{ke¥¦VFµ¹VVjjeT{ke¡^jePç ×ÊJMŒjr¬ÔÔʨö ×ÊJMŒjr|ÒªZ™î#µòÕ}×ÊÇ÷ñË£×O_ÒñJ§ßQ<ü’ÑÝ}:ý0¸¿V^宕V‰ü¿ÿù‡ßÿöÇ?ýüå§ïøÓ—wUz}½yz~]—ÿößÿüó{éãÓ×?*\îîm·üðrô7âì>\rÈ«ÏvœC¾½
È!íAÎ!…zÉ!AƒœC*59$ª=È9¤R“C¢ÚƒœC*59$ª=È9¤QwIêäR©É!QíAÎ!•šÕäR©É!QíAÎ!ºsHRÇ çJM‰jr©Ôä¨ö çJM‰jbiÐädöæŠ\9$’5Ç9¤2“C"ÚƒœC*59$ª=È9¤QwIêäR©É!QíAÎ!•šÕäR©É!QíAÎ!ºsHRÇ çJM‰jr©Ôä¨ö çJM‰jriÔC’:9‡TjrHT{sH¥&‡Dµ1‡TèÊ!Ѭ9Ì!
™’ÈžãR™É!íAÎ!•šÕäR©É!QíAÎ!ºsHRÇ çJM‰jr©Ôä¨ö çJM‰jriÔC’:9‡TjrHT{sH¥&‡Dµ9‡TjrHT{sH¡^rHPç çJM‰jr©Ôä¨ö æ +]9$š5Ç9¤1wIèäR©É!QíAÎ!•šÕäR©É!QíAÎ!ºsHRÇ çJM‰jr©Ôä¨ö çJM‰jriÔC’:9‡TjrHT{sH¥&‡Dµ9‡TjrHT{sH£î’Ô1È9¤R“C¢Úƒ˜C*tåhÖçÊL‰hriÔC’:9‡TjrHT{sH¥&‡Dµ9‡TjrHT{sH£î’Ô1È9¤R“C¢ÚƒœC*59$ª=È9¤R“C¢ÚƒœCu礎AÎ!•šÕäR©É!QíAÎ!•šÕäÒ¨;‡$ub©Ð•C¢YsœC*39$¢=È9¤R“C¢ÚƒœCu礎AÎ!•šÕäR©É!QíAÎ!•šÕäR¨—Ô9È9¤R“C¢ÚƒœC*59$ª=È9¤R“C¢ÚƒœC÷y*‡¤ûHyuÇ9äñ}|ãß6yû|sÿxLJ·®k.õâoîŸnÿúïúñË_þòÿ~~[3>Os½[3>=ÖŒO¯7Ow|s¹èúæÞöŒÏw7·÷wïÝÈ[u]Ëê<Pnžîî¥z¾öµÔç›Û[«ž¯ý@íÁõõæñÓƒTÏ×~ öàÁ麷§ÿ{t꺖Õ1x >Ü<¾Xõ|íj¨ë¸a¥æübT{Ï/VjÎ/Fµùüb£îó‹Iƒ|~±Rs~1ª=Èç+5ç£Úƒ|~±Rs~1ª=ÈçuŸ_Lê¤ó‹•y>¿Åë1<¿X+ØG±æ8ØWf‚}D{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì4Á>™=‡Á¾"W°dÍq°¯Ìûˆö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAöº‚}4kƒ}C&Ø'²ç8ØWf‚}D{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BW°fÍq°oÌì:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö û +]Á>š5ÇÁ¾2ì#Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+tûhÖûÊL°hr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Øê%Øur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûÇ º +öé>ì_ÝÇq°|ãüâ{>¿øùÓ׿ž_œkÜùÅ÷ù/ÿýçïÿùóÛs‹OÔyºÿ„çŸ~³þøòðÝÕ]½ýe¾}y>,ý~y +]¯4 ÙsôJƒ#ϯ40YsøJƒ3×+
Œö ¾ÒàÔõJ«=ˆ¯4(5¯4 :ñ•§®WXíA|¥Á©ë•V{_ipêz¥ÕÄW”šWPƒøJƒS×+
¬ö ¾ÒàÔõJ«=ˆ¯48u½ÒÀjâ+
JÍ+
¨ŽA|¥Á©ë•V{_ipêz¥Õ¤Wz~¥Íš£W¹^i@²çð•g®WíA|¥Á©ë•V{_ipêz¥ÕÄW”šWPƒøJƒS×+
¬ö ¾ÒàÔõJ«=ˆ¯48u½ÒÀjâ+
JÍ+
¨ŽA|¥Á©ë•V{_ipêz¥ÕÄWœº^i`µñ•£îWHƒøJƒS×+
¬ö ¾ÒàÔõJ«=H¯48ôüJ›5‡¯4(3¯4 :ñ•§®WXíA|¥Á©ë•V{_ipêz¥ÕÄW”šWPƒøJƒS×+
¬ö ¾ÒàÔõJ«=ˆ¯48u½ÒÀjâ+
JÍ+
¨ŽA|¥Á©ë•V{_ipêz¥ÕÄWœº^i`µñ•¥æ•TÇ ¾ÒàÔõJ«=H¯48ôüJ›5‡¯48s½ÒÀhâ+
JÍ+
¨ŽA|¥Á©ë•V{_ipêz¥ÕÄWœº^i`µñ•¥æ•TÇ ¾ÒàÔõJ«=ˆ¯48u½ÒÀjâ+
N]¯4°ÚƒøJƒRóJªc_ipêz¥ÕÄWœº^i`µñ•§®WXíA|¥A©y¥Õ1H¯48ôüJ›5‡¯48s½ÒÀhâ+
N]¯4°ÚƒøJƒRóJªc_ipêz¥ÕÄWœº^i`µñ•§®WXíA|¥Á¨û•Rç ¾ÒàÔõJ«=ˆ¯48u½ÒÀjâ+
N]¯4°ÚƒøJ¶ö¿Ò€÷±.º¾ÃWà>¾íï x>ý0xxxÅ¿ƒ ×|óßAp5þ«þº¹ì_ÝÜq°ÿöF Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oê¤`_™ç`Åë1ö¸‚}kŽƒ}e&ØG´9Øê%Øur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾Aì“Ùsì+rûHÖûÊL°hr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`ÕÄ`_¡+ØG³æ0Ø7d‚}"{Žƒ}e&ØG´9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+tûhÖûÆÜÁ>¡cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jb°¯Ðì£Ysì+3Á>¢=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ˆÁ¾BW°fÍq°¯Ìûˆö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö ûJM°jr°œ «`Ÿî#ÁþÕ}ûÇ÷ñÁ×ÿáô'hü;Ö5îï øoþÇÿñù÷_þÿü×ïÿõ¿‰àô3ïõöÿ&‚×Ç›—§‹ûî/öÝñßD°ëVøl»n½úlÇuëÛºÕäºÕ¨»n%uRݪÌsÝŠâõÖ +\u+Š5Çu«2S·"Úƒ\· +õR·‚:¹nUjêVT{ëV¥¦nEµ¹nUjêVT{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\·uפŽA®[•šºÕäºU©©[QíA®[•šºÕÄºÕ ©[Éì9¬[¹êV$kŽëVe¦nE´¹nUjêVT{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\·uפŽA®[•šºÕäºU©©[QíA®[•šºÕäºÕ¨»n%urݪÔÔ¨ö ×JMÝŠjbݪÐU·¢YsX·2u+‘=Çu«2S·"Úƒ\·*5u+ª=Èu«RS·¢Úƒ\·uפŽA®[•šºÕäºU©©[QíA®[•šºÕäºÕ¨»n%urݪÔÔ¨ö ×JMÝŠjrݪÔÔ¨ö ×B½Ô ÎA®[•šºÕäºU©©[QíA¬[ºêV4kŽëVcÐ1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\·uפŽA®[•šºÕäºU©©[QíA®[•šºÕäºÕ¨»n%urݪÔÔ¨ö ×JMÝŠjrݪÔÔ¨ö ×FÝu+©cëV¥¦nEµ±nUèª[Ѭ9®[•™ºÑäºÕ¨»n%urݪÔÔ¨ö ×JMÝŠjrݪÔÔ¨ö ×FÝu+©cëV¥¦nEµ¹nUjêVT{ëV¥¦nEµ¹n5ê®[Iƒ\·*5u+ª=Èu«RS·¢Úƒ\·*5u+ª=Èu«QwÝJêĺU¡«nE³æ¸nUfêVD{ëV¥¦nEµ¹n5ê®[Iƒ\·*5u+ª=Èu«RS·¢Úƒ\·*5u+ª=Èu«P/u+¨sëV¥¦nEµ¹nUjêVT{ëV¥¦nEµ¹n¥àRÔt©[¯îã¸n=¾o<Žúéñæô'K>Žz]óíÇQ_ÆÝqÔpsû8ê«›;>ŽúíÀqÔ¤ŽA>ŽZ©9ŽÕä㨕šã¨QíA>ŽZ©9ŽÕä㨺£&uòqÔJÍqÔ¨ö GÔGjòqÔJÍqÔ¨ö GmÔ}5©c£VjŽ£Fµù8j¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1HÁ¾2ÏÁ>Š×cì+pû(ÖûÊL°hr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}ƒ&Ø'³ç0ØWä +ö‘¬9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BW°fÍa°oÈûDöûÊL°hr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö¹ƒ}BÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`ÕÄ`_¡+ØG³æ8ØWf‚}D{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}…®`Íšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAö•š`Õä`ÿ8AWÁ>ÝG‚ý«û8öïã£~¼»y<ý–£^׸ã¨ÿöçŸÿüù§ãÓ¨ïoïù4ê—Ožûkýtú
çÑiÔ yá£í÷꣇¼ooB^T{C^¥&äEµ9äUjB^T{C^£î—Ô1H!¯2Ï!/Š×cò*p…¼(Ö‡¼ÊLÈ‹hrÈ+ÔKÈêäW© yQíAy•šÕäW© yQíAyºC^RÇ ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼JMÈ‹jrÈkÔò’:9äUjB^T{C^¥&äEµ9äUjB^T{C^ƒ&ä%³ç0äUä +y‘¬9y•™ÑäW© yQíAyºC^RÇ ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼JMÈ‹jrÈkÔò’:9äUjB^T{C^¥&äEµ9äUjB^T{C^£î—Ô1È!¯Rò¢Úƒò*5!/ª=ˆ!¯BWÈ‹fÍaÈkÈ„¼Dö‡¼ÊLÈ‹hrȫԄ¼¨ö ‡¼JMÈ‹jrÈkÔò’:9äUjB^T{C^¥&äEµ9äUjB^T{C^£î—Ô1È!¯Rò¢Úƒò*5!/ª=È!¯Rò¢Úƒò +õò‚:9äUjB^T{C^¥&äEµ1äUè +yѬ9y¹C^BÇ ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼JMÈ‹jrÈkÔò’:9äUjB^T{C^¥&äEµ9äUjB^T{C^£î—Ô1È!¯Rò¢Úƒò*5!/ª=È!¯Rò¢Úƒòu‡¼¤ŽAy•šÕÄW¡+äE³æ8äUfB^D{C^£î—Ô1È!¯Rò¢Úƒò*5!/ª=È!¯Rò¢Úƒòu‡¼¤ŽAy•šÕäW© yQíAy•šÕäר;ä%urȫԄ¼¨ö ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼FÝ!/©cC^…®ÍšãW™ yíAy•šÕäר;ä%urȫԄ¼¨ö ‡¼JMÈ‹jrȫԄ¼¨ö ‡¼B½„¼ ÎAy•šÕäW© yQíAy•šÕä—âRòÒ}$佺ã÷ø>¾ñäíû¯XßóÉÛëšo?yû2þëNÞ†›Û'o_ÝÜñÉÛooNÞ&uòÉÛJÍÉÛ¨ö Ÿ¼Ôœ¼jòÉÛJÍÉÛ¨ö Ÿ¼mÔ}ò6©cOÞVjNÞFµùäm¥æämT{OÞVjNÞFµùäm£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽA +ö•yöQ¼Ã`_+ØG±æ8ØWf‚}D{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒì4Á>™=‡Á¾"W°dÍq°¯Ìûˆö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAöº‚}4kƒ}C&Ø'²ç8ØWf‚}D{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`_¨—`Ô9ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BW°fÍq°oÌì:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö û +]Á>š5ÇÁ¾2ì#Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+tûhÖûÊL°hr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Øê%Øur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûÇ º +öé>ì_ÝÇq°|ãäí»NÞ¾{ºyz½ã“·×5îäíÿöçüŸÿåï>ÿåoÿðùO_~ø§>ÿôö +'p?œfo¾»ºÃ÷~ÉŸ~Í/¹|Â;]}ÂãÜéí@îDêäÜI©ÉPíAΔšÜ ÕäÜI©ÉPíA̚܉̞ÃÜI‘+wB²æ8wRfr'D{s'¥&wBµ9w2êÎHƒœ;)5¹ª=ȹ“R“;¡Úƒœ;)5¹ª=ȹ“QwîDêäÜI©ÉPíAΔšÜ ÕäÜI©ÉPíAÎŒºs'RÇ çNJMî„jrî¤ÔäN¨ö æN +]¹š5‡¹“!“;Ùsœ;)3¹¢=ȹ“R“;¡Úƒœ;)5¹ª=ȹ“QwîDêäÜI©ÉPíAΔšÜ ÕäÜI©ÉPíAÎŒºs'RÇ çNJMî„jrî¤ÔäN¨ö çNJMî„jrî$ÔKîêäÜI©ÉPíAΔšÜ ÕÄÜI¡+wB³æ8w2æÎƒœ;)5¹ª=ȹ“R“;¡Úƒœ;)5¹ª=ȹ“QwîDêäÜI©ÉPíAΔšÜ ÕäÜI©ÉPíAÎŒºs'RÇ çNJMî„jrî¤ÔäN¨ö çNJMî„jrîdÔ;‘:9wRjr'T{s'…®Ü ÍšãÜI™ÉíAÎŒºs'RÇ çNJMî„jrî¤ÔäN¨ö çNJMî„jrîdÔ;‘:9wRjr'T{s'¥&wBµ9wRjr'T{s'£î܉Ô1ȹ“R“;¡Úƒœ;)5¹ª=ȹ“R“;¡Úƒœ;uçN¤ŽA̺r'4kŽs'e&wB´9wRjr'T{s'£î܉Ô1ȹ“R“;¡Úƒœ;)5¹ª=ȹ“R“;¡Úƒœ; õ’;:9wRjr'T{s'¥&wBµ9wRjr'T{s'no>Ìè>’;]ÝÇqît|ã|ÒûÎ'ýúMßâóI×5ß~>éeü×O +7·Ï'½º¹ãóIßÞœOJêäóI•šóIQíA>ŸT©9ŸÕäóI•šóIQíA>ŸÔ¨û|RRÇ ŸOªÔœOŠjòù¤JÍù¤¨ö ŸOªÔœOŠjòù¤FÝç“’:ù|R¥æ|RT{Ï'UjÎ'Eµù|R¥æ|RT{Ï'5ê>Ÿ”Ô1Hç“*ó|>)Š×cx>©×ù¤(ÖŸOªÌœOŠhòù¤B½œO +êäóI•šóIQíA>ŸT©9ŸÕäóI•šóIQíA>ŸÔ¨û|RRÇ ŸOªÔœOŠjòù¤JÍù¤¨ö ŸOªÔû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ1Ø7h‚}2{ƒ}E®`Éšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+tûhÖû†L°OdÏq°¯Ìûˆö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}…®`Íšã`ߘ;Ø'tr°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAöº‚}4kŽƒ}e&ØG´9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:1ØWè +öѬ9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAötìÓ}$Ø¿º‡OGÁþñ}|Ûù¤O¯ŸNÿ´zÅóIs;Ÿô?üùË¿üøÓ_þòÑ ¥÷·7¯|Béýéçã§ï®îñm÷ÿõßKœPš0†>c.ºþŒGaÌ;÷qÆ ÙsÆ8òÆ0YsÆ8s…1Œö †1N]a«=ˆaŒRÆ :1Œqê +cXíAcœºÂV{ç®0†ÕÄ0F© cPƒÆ8u…1¬ö †1N]a«=ˆaŒSWÃjb£Ô„1¨ŽAcœºÂV{ç®0†Õ¤0Æ¡ç0†Íš£0F‘+ŒA²ç0Œqæ +cíAcœºÂV{ç®0†ÕÄ0F© cPƒÆ8u…1¬ö †1N]a«=ˆaŒSWÃjb£Ô„1¨ŽAcœºÂV{ç®0†ÕÄ0Æ©+Œaµ1Œ1êcHƒÆ8u…1¬ö †1N]a«=HaŒCÏa›5‡aŒ2Æ :1Œqê +cXíAcœºÂV{ç®0†ÕÄ0F© cPƒÆ8u…1¬ö †1N]a«=ˆaŒSWÃjb£Ô„1¨ŽAcœºÂV{ç®0†ÕÄ0Æ©+Œaµ1ŒQjÂTÇ †1N]a«=HaŒCÏa›5‡aŒ3WÃhb£Ô„1¨ŽAcœºÂV{ç®0†ÕÄ0Æ©+Œaµ1ŒQjÂTÇ †1N]a«=ˆaŒSWÃjbãÔÆ°ÚƒÆ(5aªcç®0†ÕÄ0Æ©+Œaµ1Œqê +cXíAc”š0Õ1HaŒCÏa›5‡aŒ3WÃhbãÔÆ°ÚƒÆ(5aªcç®0†ÕÄ0Æ©+Œaµ1Œqê +cXíAcŒºÃRç †1N]a«=ˆaŒSWÃjbãÔÆ°ÚƒÆ@£a¼uÑõ}†1pßv’åÓËóéÇí3žd™k¾ù$Ë«ñ_u’%Ý\.º¾¹Ã“,ß¹‘ã“,Qƒx’¥S×I–¬ö ždéÔu’%«=ˆ'Y:udÉjâI–JÍI–¨ŽA<ÉÒ©ë$KV{O²tê:É’ÕÄ“,ºN²dµñ$K¥æ$KTÇ ždéÔu’%«=ˆ'Y:udÉjâI–N]'Y²Úƒx’¥Rs’%ªcN²tæ/'Y²x=F'Y:ð|’%‹5‡'Y:sdÉhâI–FÝ'Y’:ñ$K§®“,YíA<ÉÒ©ë$KV{O²tê:É’ÕÄ“,•š“,Qƒx’¥S×I–¬ö ždéÔu’%«=ˆ'Y:udÉjâI–JÍI–¨ŽA<ÉÒ©ë$KV{O²tê:É’ÕÄ“,š`ÕÄ`ß öÉì9ö¹‚}$kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jb°¯Ðì£Ysì2Á>‘=ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAöº‚}4kŽƒ}cî`ŸÐ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ1ØWè +öѬ9ö•™`Ñä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°OêÄ`_¡+ØG³æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø?NÐU°O÷‘`ÿê>ŽƒýãûøÆ“,Ÿn^^žø$Ëu;Éòïúáß¾ÿòùï>ÿå¿ÿüý?þûÏ?ýðãÞ9Èòë¿~zþà Ëû›¯]Ååßfÿ¯/¯‡Y¦‚¸ «xÜ +öѬ9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAötìÓ}$Ø¿ºã`ÿø>¾ñÐί¾{¹çC;×5îÐÎß~þéËÿôÃï¿ÿòùïüã¿ÿáôéÛÇÓO>>²óôëñüõߊ]îðí/ùóé÷gvî´>áN»®>áqÚõöF íBµ9íRjÒ.T{Ó.£î´‹Ô1Èi—R“v¡Úƒœv)5iª=Èi—R“v¡Úƒ˜v4i™=‡i—"WÚ…dÍqڥ̤]ˆö §]JMÚ…jrÚeÔv‘:9íRjÒ.T{Ó.¥&íBµ9íRjÒ.T{Ó.£î´‹Ô1Èi—R“v¡Úƒœv)5iª=Èi—R“v¡Úƒœvu§]¤ŽAN»”š´Õä´K©I»PíAL»ºÒ.4kÓ.C&í"²ç8íRfÒ.D{Ó.¥&íBµ9íRjÒ.T{Ó.£î´‹Ô1Èi—R“v¡Úƒœv)5iª=Èi—R“v¡Úƒœvu§]¤ŽAN»”š´Õä´K©I»PíAN»”š´Õä´K¨—´Ô9Èi—R“v¡Úƒœv)5iª=ˆi—BWÚ…fÍqÚeÌv:9íRjÒ.T{Ó.¥&íBµ9íRjÒ.T{Ó.£î´‹Ô1Èi—R“v¡Úƒœv)5iª=Èi—R“v¡Úƒœvu§]¤ŽAN»”š´Õä´K©I»PíAN»”š´Õä´Ë¨;í"urÚ¥Ô¤]¨ö ¦] +]iš5Çi—2“v!Úƒœvu§]¤ŽAN»”š´Õä´K©I»PíAN»”š´Õä´Ë¨;í"urÚ¥Ô¤]¨ö §]JMÚ…jrÚ¥Ô¤]¨ö §]FÝi©cÓ.¥&íBµ9íRjÒ.T{Ó.¥&íBµ9í2êN»Hƒ˜v)t¥]hÖ§]ÊLÚ…hrÚ¥Ô¤]¨ö §]FÝi©cÓ.¥&íBµ9íRjÒ.T{Ó.¥&íBµ9íê%íurÚ¥Ô¤]¨ö §]JMÚ…jrÚ¥Ô¤]¨ö §]Ô‰´‹î#i×Õ}§]Ç÷1Îb½ûà,ÖûÇ›O÷w|ëºæÛÏb½Œÿº³XáæöY¬W7w|ëÛ³XIƒ|«Rs+ª=Èg±*5g±¢Úƒ|«Rs+ª=Èg±uŸÅJêä³X•š³XQíA>‹U©9‹Õä³X•š³XQíA>‹Õ¨û,VRÇ ŸÅªÔœÅŠjòY¬JÍY¬¨ö ŸÅªÔœÅŠjòY¬FÝg±’:é,VežÏbEñzÏbUà:‹Åšã³X•™³XíA>‹U¨—³XAƒ|«Rs+ª=Èg±*5g±¢Úƒ|«Rs+ª=Èg±uŸÅJêä³X•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûM°OfÏa°¯Èì#Ysì+3Á>¢=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}…®`ÍšÃ`ß ö‰ì9ö•™`Ñä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Øê%Øur°¯Ôû¨ö ûJM°jb°¯Ðì£Ysìsû„ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ˆÁ¾BW°fÍq°¯Ìûˆö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ û +]Á>š5ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁþq‚®‚}ºûW÷qìßÇ8‹õþƒ³XOê§Ó?™ñ,Öu<‹õþ¯¿ùáç/?ýøþòÃúûøÓ—÷Ncýú¯Ÿžù4Öûû›¯]Ååßfÿ¯/¯G‡±î>ân€®>âqôöF Bµ¹Rj T{ ƒ¦"³ç°Räj€¬9n€”™ÑäH©i€PíAn€Œº RÇ 7@JM„jr¤Ô4@¨ö 7@JM„jrdÔÝ +öYíAöº‚}V{ƒ}¥&ØGub°ïÔì³Úƒì;uû¬ö ûN]Á>«=ˆÁ¾Rì£:1Øwê +öYíAöº‚}V{‚}‡žƒ}6kŽ‚}E®`ÉžÃ`ß™+Øg´1Øwê +öYíAöº‚}V{ƒ}¥&ØGub°ïÔì³Úƒì;uû¬ö ûN]Á>«=ˆÁ¾Rì£:1Øwê +öYíAöº‚}V{ƒ}§®`ŸÕÄ`ߨ;Ø'ub°ïÔì³Úƒì;uû¬ö û=ûlÖûÊL°èÄ`ß©+Øgµ1Øwê +öYíAöº‚}V{ƒ}¥&ØGub°ïÔì³Úƒì;uû¬ö ûN]Á>«=ˆÁ¾Rì£:1Øwê +öYíAöº‚}V{ƒ}§®`ŸÕÄ`_© öQƒì;uû¬ö û=ûlÖûÎ\Á>£=ˆÁ¾Rì£:1Øwê +öYíAöº‚}V{ƒ}§®`ŸÕÄ`_© öQƒì;uû¬ö ûN]Á>«=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1ØWj‚}TÇ û=ûlÖûÎ\Á>£=ˆÁ¾SW°Ïjb°¯Ôû¨ŽAöº‚}V{ƒ}§®`ŸÕÄ`ß©+Øgµ1Ø7êöIƒì;uû¬ö ûN]Á>«=ˆÁ¾SW°Ïjb° º öñ>ÖE×÷qìÃ}|Û¡¯Ï7·ÏÏxhg®‘‡vþôÇÿúçýÇÏ?½=¨óé\YÂ9_Sÿ×§ùnêÿ|xPç¹âçOµ®¹þPÇ¡ÿÛۀПÐ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cBežC¯Ç0ôWà +ýQ¬9ý•™ÐÑäÐ_¨—ÐÔ9È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö †þMèOfÏaè¯Èú#Ysú+3¡?¢=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C…®ÐÍšÃÐß ý‰ì9ý•™ÐÑäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ôê%ôurè¯Ô„þ¨ö ‡þJMèjbè¯Ðú£Ysús‡þ„ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=ˆ¡¿BWèfÍqè¯Ì„þˆö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAýºCRÇ †þ +]¡?š5Ç¡¿2ú#Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAý…z ýAƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡ÿq€®Bº„þW÷qúßÇ7žÌÿõÁÎ雯“ù×5ß~2ÿeü×Ì7·O濺¹ã`ÿí@°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1HÁ¾2ÏÁ>Š×cì+pû(ÖûÊL°hr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}ƒ&Ø'³ç0ØWä +ö‘¬9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BW°fÍa°oÈûDöûÊL°hr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö¹ƒ}BÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`ÕÄ`_¡+ØG³æ8ØWf‚}D{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}…®`Íšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAö•š`Õä`ÿ8AWÁ>ÝG‚ý«û8öïãOæþúÏ>™]ãNæÿ›Ïüòýoúãßþé?üþû/?¾sBÿ§¯7øB'ôÿRð}ºûîêöæg¸¿y|¹;ø¿ôzðñv¯wõñŽ{½·7½ª=ȽžRÓë¡ÚƒÜëu÷z¤ŽAîõ”š^Õä^O©éõPíAîõ”š^Õä^Ϩ»×#ur¯§Ôôz¨ö ÷zJM¯‡jr¯§Ôôz¨ö özM¯GfÏa¯§ÈÕë!YsÜë)3½¢=ȽžRÓë¡ÚƒÜëu÷z¤ŽAîõ”š^Õä^O©éõPíAîõ”š^Õä^Ϩ»×#ur¯§Ôôz¨ö ÷zJM¯‡jr¯§Ôôz¨ö ÷zFݽ©c{=¥¦×Cµ¹×Sjz=T{{=…®^ÍšÃ^Ïéõˆì9îõ”™^Ñä^O©éõPíAîõ”š^Õä^Ϩ»×#ur¯§Ôôz¨ö ÷zJM¯‡jr¯§Ôôz¨ö ÷zFݽ©c{=¥¦×Cµ¹×Sjz=T{{=¥¦×Cµ¹×ê¥×ur¯§Ôôz¨ö ÷zJM¯‡jb¯§ÐÕë¡YsÜës÷z„ŽAîõ”š^Õä^O©éõPíAîõ”š^Õä^Ϩ»×#ur¯§Ôôz¨ö ÷zJM¯‡jr¯§Ôôz¨ö ÷zFݽ©c{=¥¦×Cµ¹×Sjz=T{{=¥¦×Cµ¹×3êîõHƒÜë)5½ª=ˆ½žBW¯‡fÍq¯§Ìôzˆö ÷zFݽ©c{=¥¦×Cµ¹×Sjz=T{{=¥¦×Cµ¹×3êîõHƒÜë)5½ª=ȽžRÓë¡ÚƒÜë)5½ª=ȽžQw¯Gêä^O©éõPíAîõ”š^Õä^O©éõPíAîõŒº{=RÇ öz +]½š5ǽž2Óë!ÚƒÜë)5½ª=ȽžQw¯Gêä^O©éõPíAîõ”š^Õä^O©éõPíAîõ„zéõ@ƒÜë)5½ª=ȽžRÓë¡ÚƒÜë)5½ª=ȽÞq?¦z=ºôzW÷qÜëßÇ7°{ú£ÀýÝ=°»®ùöv/ã¿î€]¸¹}ÀîÕͰûöFà€]RÇ °«Ô°‹jò»JÍ»¨ö °«Ô°‹jò»FÝì’:ù€]¥æ€]T{ØUjØEµù€]¥æ€]T{Ø5ê>`—Ô1Èì*5ì¢Úƒ|À®RsÀ.ª=Èì*5ì¢Úƒ|À®Q÷»¤ŽA:`W™çvQ¼Ãv¸ØE±æø€]eæ€]D{Øêå€]Pç °«Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾Aì“Ùsì+rûHÖûÊL°hr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`ÕÄ`_¡+ØG³æ0Ø7d‚}"{Žƒ}e&ØG´9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAö…z öAƒì+5Á>ª=ÈÁ¾Rì£Úƒì+tûhÖûÆÜÁ>¡cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jb°¯Ðì£Ysì+3Á>¢=ÈÁ¾Qw°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ˆÁ¾BW°fÍq°¯Ìûˆö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}¡^‚}Pç ûJM°jr°¯Ôû¨ö ûJM°jr°œ «`Ÿî#ÁþÕ}ûÇ÷1ؽûà€Ý‡Ç›ûç;>`w]ãØýÛ?ýÛ÷üá?|ùËß|ÿåóÛÓuO?ó^o_étÝû×Ç›—§‹ûî/ö×çÆ½ÿ®[á³íºõê³×ooêVT{ëV£îº•Ô1Hu«2Ïu+Š×cX·*pÕ(Ö×ÊLÝŠhrÝ*ÔKÝ +êäºU©©[QíA®[•šºÕäºU©©[QíA®[ºëVRÇ ×JMÝŠjrݪÔÔ¨ö ×JMÝŠjrÝjÔ]·’:¹nUjêVT{ëV¥¦nEµ¹nUjêVT{ëVƒ¦n%³ç°nUäª[‘¬9®[•™ºÑäºU©©[QíA®[ºëVRÇ ×JMÝŠjrݪÔÔ¨ö ×JMÝŠjrÝjÔ]·’:¹nUjêVT{ëV¥¦nEµ¹nUjêVT{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=ˆu«BWÝŠfÍaÝjÈÔDö×ÊLÝŠhrݪÔÔ¨ö ×JMÝŠjrÝjÔ]·’:¹nUjêVT{ëV¥¦nEµ¹nUjêVT{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\· +õR·‚:¹nUjêVT{ëV¥¦nEµ±nUèª[Ѭ9®[¹ëVBÇ ×JMÝŠjrݪÔÔ¨ö ×JMÝŠjrÝjÔ]·’:¹nUjêVT{ëV¥¦nEµ¹nUjêVT{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\·uפŽA®[•šºÕĺU¡«nE³æ¸nUfêVD{ëV£îº•Ô1Èu«RS·¢Úƒ\·*5u+ª=Èu«RS·¢Úƒ\·uפŽA®[•šºÕäºU©©[QíA®[•šºÕäºÕ¨»n%urݪÔÔ¨ö ×JMÝŠjrݪÔÔ¨ö ×FÝu+©cëV…®ºÍšãºU™©[íA®[•šºÕäºÕ¨»n%urݪÔÔ¨ö ×JMÝŠjrݪÔÔ¨ö ×B½Ô ÎA®[•šºÕäºU©©[QíA®[•šºÕ井‚KQ·Ò}¤n½ºãºõø>ÆqÔ÷Gýuïô#£^×|ûqÔ—ñ_w5ÜÜ>ŽúêæŽ£~{#p5©c£VjŽ£Fµù8j¥æ8jT{£VjŽ£Fµù8j£îã¨Iƒ|µRs5ª=ÈÇQ+5ÇQ£Úƒ|µRs5ª=ÈÇQuGMêä㨕šã¨QíA>ŽZ© öQíAö•š`Õä`ߨ;Ø'uR°¯Ìs°âõû +\Á>Š5ÇÁ¾2ì#Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`ÕÄ`ß öÉì9ö¹‚}$kŽƒ}e&ØG´9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jb°¯Ðì£Ysì2Á>‘=ÇÁ¾2ì#Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAöº‚}4kŽƒ}cî`ŸÐ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ1ØWè +öѬ9ö•™`Ñä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Qw°OêÄ`_¡+ØG³æ8ØWf‚}D{ƒ}¥&ØGµ9Ø7êöIƒì+5Á>ª=ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾P/Á>¨sƒ}¥&ØGµ9ØWj‚}T{ƒ}¥&ØGµ9Ø?NÐU°O÷‘`ÿê>ŽƒýãûøÆã¨¿†\§?ßáqÔëwõoúã?|þþçÿôö$ê§seI'Q?}ýãæ…|7õ~yÅÔŸ?ÕºæúC‡þooBBÇ ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽA +ý•yýQ¼ÃÐ_+ôG±æ8ôWfBD{C¡^BPç ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒú4¡?™=‡¡¿"WèdÍqè¯Ì„þˆö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAýºB4kCC&ô'²ç8ôWfBD{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐ_¨—ÐÔ9È¡¿Rú£Úƒú+5¡?ª=ˆ¡¿BWèfÍqèoÌú:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1È¡¿Rú£Úƒú+5¡?ª=È¡¿Rú£Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö †þ +]¡?š5Ç¡¿2ú#Úƒúu‡þ¤ŽAý•šÐÕäÐ_© ýQíAý•šÐÕäÐߨ;ô'urè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+t…þhÖ‡þÊLèhrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ôê%ôurè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þǺ +ýé>ú_ÝÇqè|ßv2ÿ×eûxú5§“ùsÍ7ŸÌ5þ«Næ§›ËE×7wì¿s#ÇÁ>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö ûJM°êÄ`ß©+Øgµ1Øwê +öYíAöº‚}V{ƒ}¥&ØGuB°ïÌ_‚}¯Ç(Øwà9Øg±æ0Øwæ +öíAöºƒ}Rç ûN]Á>«=ˆÁ¾SW°Ïjb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö û +]Á>š=GÁ¾#ÏÁ>“5‡Á¾3W°Ïhb°ïÔì³Úƒì+5Á>ªcƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö ûJM°êÄ`ß©+Øgµ1Øwê +öYíA +özöÙ¬9 +ö¹‚}${ƒ}g®`ŸÑÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö ûJM°êÄ`ß©+Øgµ1Øwê +öYíAöº‚}V{ƒ}£î`ŸÔ9ˆÁ¾SW°Ïjb°ïÔì³Úƒì;ôì³Ysì+3Á>¢cƒ}§®`ŸÕÄ`ß©+Øgµ1Øwê +öYíAö•š`Õ1ˆÁ¾SW°Ïjb°ïÔì³Úƒì;uû¬ö ûJM°êÄ`ß©+Øgµ1Øwê +öYíAöº‚}V{ƒ}¥&ØGub°ïÔì³Úƒì;ôì³Ysì;sûŒö ûJM°êÄ`ß©+Øgµ1Øwê +öYíAöº‚}V{ƒ}¥&ØGub°ïÔì³Úƒì;uû¬ö ûN]Á>«=ˆÁ¾Rì£:1Øwê +öYíAöº‚}V{ƒ}§®`ŸÕÄ`_© öQƒì;ôì³Ysì;sûŒö ûN]Á>«=ˆÁ¾Rì£:1Øwê +öYíAöº‚}V{ƒ}§®`ŸÕÄ`ߨ;Ø'ub°ïÔì³Úƒì;uû¬ö ûN]Á>«=ˆÁ>$è&ØÇûX]ßÇa°÷ñm'ó?œþÁ|úÍ*žÌŸkÜÉüÿéÿûòùO?ÿð¿v2ÿÕmýš“ùéSk®?Ôqèÿö6 ô'trè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOê¤Ð_™çÐÅë1ý¸BkŽCe&ôG´9ôê%ôurè¯Ô„þ¨ö ‡þJMèjrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=ˆ¡¿Aú“Ùsú+r…þHÖ‡þÊLèhrè¯Ô„þ¨ö ‡þFÝ¡?©cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAý•šÐÕÄÐ_¡+ôG³æ0ô7dB"{ŽCe&ôG´9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAý…z ýAƒú+5¡?ª=È¡¿Rú£Úƒú+t…þhÖ‡þÆÜ¡?¡cC¥&ôGµ9ôWjBT{C¥&ôGµ9ô7êýIƒú+5¡?ª=È¡¿Rú£Úƒú+5¡?ª=È¡¿QwèOêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAýºCRÇ ‡þJMèjbè¯Ðú£Ysú+3¡?¢=È¡¿QwèOêäÐ_© ýQíAý•šÐÕäÐ_© ýQíAýºCRÇ ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C£îПÔ1ˆ¡¿BWèfÍqè¯Ì„þˆö ‡þJMèjrèoÔú“:9ôWjBT{C¥&ôGµ9ôWjBT{C¡^BPç ‡þJMèjrè¯Ô„þ¨ö ‡þJMèjrè «ÐŸî#¡ÿÕ}‡þÇ÷ñ'ó?ºyº}à“ù×5ß~2ÿeü×Ì7·O濺¹ã`ÿí@°Oêä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1HÁ¾2ÏÁ>Š×cì+pû(ÖûÊL°hr°/ÔK°êä`_© öQíAö•š`Õä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}ƒ&Ø'³ç0ØWä +ö‘¬9ö•™`Ñä`_© öQíAöºƒ}RÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ˆÁ¾BW°fÍa°oÈûDöûÊL°hr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìõìƒ:9ØWj‚}T{ƒ}¥&ØGµ1ØWè +öѬ9ö¹ƒ}BÇ ûJM°jr°¯Ôû¨ö ûJM°jr°oÔì“:9ØWj‚}T{ƒ}¥&ØGµ9ØWj‚}T{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`ÕÄ`_¡+ØG³æ8ØWf‚}D{ƒ}£î`ŸÔ1ÈÁ¾Rì£Úƒì+5Á>ª=ÈÁ¾Rì£Úƒìuû¤ŽAö•š`Õä`_© öQíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûFÝÁ>©cƒ}…®`Íšã`_™ öíAö•š`Õä`ߨ;Ø'ur°¯Ôû¨ö ûJM°jr°¯Ôû¨ö ûB½û ÎAö•š`Õä`_© öQíAö•š`Õä`ÿ8AWÁ>ÝG‚ý«ûx¼; +öïcûwûOÏ7Oçªÿ8Ø_×ðÉü÷ëÄýŸ?y{&ÿÝëéÿvÖÿåó—ùño#ÿכׯÿfórCó®ïoîî"ÿÛÃÚ¹ýÕ:ÎíßÞäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOê¤Ü^™çÜÅë1Ìí¸r{kŽs{e&·G´9·ê%·urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ˆ¹½A“Û“Ùs˜Û+råöHÖçöÊLnhrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕÄÜ^¡+·G³æ0·7dr{"{Žs{e&·G´9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎí…zÉíAƒœÛ+5¹=ª=ȹ½R“Û£Úƒ˜Û+tåöhÖçöÆÜ¹=¡cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ çöJMnjbn¯Ð•Û£YsœÛ+3¹=¢=ȹ½QwnOêäÜ^©ÉíQíAÎ핚ÜÕäÜ^©ÉíQíAÎíºs{RÇ çöJMnjrn¯Ôäö¨ö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{£îÜžÔ1ˆ¹½BWnfÍqn¯Ìäöˆö çöJMnjrnoÔÛ“:9·Wjr{T{s{¥&·Gµ9·Wjr{T{s{¡^r{Pç çöJMnjrn¯Ôäö¨ö çöJMnjrnƒ«Üžî#¹ýÕ}çöÇ÷ñ¹ýãÃÍóíçöë—Ûÿóÿbn¹¡_—ÛÃÚ¹ýÕ:ÎíßÞäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cs{¥&·Gµ9·Wjr{T{s{¥&·Gµ9·7êÎíIƒœÛ+5¹=ª=ȹ½R“Û£ÚƒœÛ+5¹=ª=ȹ½QwnOê¤Ü^™çÜÅë1Ìí¸r{kŽs{e&·G´9·ê%·urn¯Ôäö¨ö çöJMnjrn¯Ôäö¨ö çöFݹ=©cðÿoÔŽRˆ¢ ˆn%+Lê’Ü@ÖŸ1L?íK¦¨ÿ¡ë""*‡¹½ª†Ûcµ™Û«j¸=V{¹½ª†Ûcµ™Û›êâöTƒÌíU5Ü«=ÈÜ^UÃí±ÚƒÌíU5Ü«=ˆÜÞDÃí©ÙsÈíUrçö˜¬9æöªnÑdn¯ªáöXíAæö¦º¸=UÇ s{U
·Çj2·WÕp{¬ö s{U
·Çj2·7ÕÅí©:™Û«j¸=V{¹½ª†Ûcµ™Û«j¸=V{¹½©.nOÕ1ÈÜ^UÃí±ÚƒÌíU5Ü«=ˆÜ^EwnÍšCno’áö”ì9æöªnÑdn¯ªáöXíAæöªnÕdnoª‹ÛSu2·WÕp{¬ö s{U
·Çj2·WÕp{¬ö s{S]Üžªc¹½ª†Ûcµ™Û«j¸=V{¹½ª†Ûcµ™Û‹ê‹ÛCu2·WÕp{¬ö s{U
·Çj"·WÑÛc³æ˜Û›æâöƒÌíU5Ü«=ÈÜ^UÃí±ÚƒÌíU5Ü«=ÈÜÞT·§êdn¯ªáöXíAæöªnÕdn¯ªáöXíAæö¦º¸=UÇ s{U
·Çj2·WÕp{¬ö s{U
·Çj2·7ÕÅí©:™Û«j¸=V{¹½ŠîÜ›5ÇÜ^5Ãí1ÚƒÌíMuq{ªŽAæöªnÕdn¯ªáöXíAæöªnÕdnoª‹ÛSu2·WÕp{¬ö s{U
·Çj2·WÕp{¬ö s{S]Üžªc¹½ª†Ûcµ™Û«j¸=V{¹½ª†Ûcµ™Û›êâöTƒÈíUtçöج9æöªnÑdn¯ªáöXíAæö¦º¸=UÇ s{U
·Çj2·WÕp{¬ö s{U
·Çj2·Õ·‡êdn¯ªáöXíAæöªnÕdn¯ªáöXíAæöÇ\q{º#ÜþíŽcn|Çöà~ú~þ‘øy¿l_/ÿ>t=Ÿ®_i§ÛùºÚÞßo/ÌmÛ¹}ì<ïùy<½†Òú«endstream +endobj +1981 0 obj << +/Type /Page +/Contents 1982 0 R +/Resources 1980 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1927 0 R +/Annots [ 1984 0 R 1985 0 R 1986 0 R 1987 0 R 1988 0 R 1989 0 R 1990 0 R 1991 0 R 1992 0 R 1993 0 R 1994 0 R 1995 0 R 1996 0 R 1997 0 R 1998 0 R 1999 0 R 2000 0 R 2001 0 R 2002 0 R 2003 0 R 2004 0 R 2005 0 R 2006 0 R 2007 0 R 2008 0 R 2009 0 R 2010 0 R 2011 0 R 2012 0 R 2013 0 R 2014 0 R 2015 0 R 2016 0 R 2017 0 R 2018 0 R 2019 0 R 2020 0 R 2021 0 R 2022 0 R 2023 0 R 2024 0 R 2025 0 R 2026 0 R 2027 0 R 2028 0 R 2029 0 R 2030 0 R 2031 0 R 2032 0 R 2033 0 R 2034 0 R 2035 0 R 2036 0 R 2037 0 R 2038 0 R 2039 0 R 2040 0 R 2041 0 R 2042 0 R 2043 0 R 2044 0 R 2045 0 R 2046 0 R 2047 0 R 2048 0 R 2049 0 R ] +>> endobj +1984 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 757.858 361.105 764.801] +/Subtype /Link +/A << /S /GoTo /D (2686) >> +>> endobj +1985 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 757.858 521.32 764.801] +/Subtype /Link +/A << /S /GoTo /D (2686) >> +>> endobj +1986 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 743.687 361.105 751.849] +/Subtype /Link +/A << /S /GoTo /D (2692) >> +>> endobj +1987 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 743.687 521.32 751.849] +/Subtype /Link +/A << /S /GoTo /D (2692) >> +>> endobj +1988 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 730.736 275.028 738.898] +/Subtype /Link +/A << /S /GoTo /D (2697) >> +>> endobj +1989 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 730.736 521.32 738.898] +/Subtype /Link +/A << /S /GoTo /D (2697) >> +>> endobj +1990 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 719.004 295.511 725.947] +/Subtype /Link +/A << /S /GoTo /D (2703) >> +>> endobj +1991 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 719.004 521.32 725.947] +/Subtype /Link +/A << /S /GoTo /D (2703) >> +>> endobj +1992 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 704.084 257.982 712.995] +/Subtype /Link +/A << /S /GoTo /D (2713) >> +>> endobj +1993 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 704.084 521.32 712.995] +/Subtype /Link +/A << /S /GoTo /D (2713) >> +>> endobj +1994 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 691.882 252.473 700.044] +/Subtype /Link +/A << /S /GoTo /D (2726) >> +>> endobj +1995 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 691.882 521.32 700.044] +/Subtype /Link +/A << /S /GoTo /D (2726) >> +>> endobj +1996 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 678.181 257.982 687.092] +/Subtype /Link +/A << /S /GoTo /D (2729) >> +>> endobj +1997 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 678.181 521.32 687.092] +/Subtype /Link +/A << /S /GoTo /D (2729) >> +>> endobj +1998 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 665.979 284.752 674.141] +/Subtype /Link +/A << /S /GoTo /D (2736) >> +>> endobj +1999 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 665.979 521.32 674.141] +/Subtype /Link +/A << /S /GoTo /D (2736) >> +>> endobj +2000 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 652.278 257.982 661.189] +/Subtype /Link +/A << /S /GoTo /D (2739) >> +>> endobj +2001 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 652.278 521.32 661.189] +/Subtype /Link +/A << /S /GoTo /D (2739) >> +>> endobj +2002 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 641.295 279.372 648.238] +/Subtype /Link +/A << /S /GoTo /D (2746) >> +>> endobj +2003 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 641.295 521.32 648.238] +/Subtype /Link +/A << /S /GoTo /D (2746) >> +>> endobj +2004 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 626.375 257.982 635.287] +/Subtype /Link +/A << /S /GoTo /D (2749) >> +>> endobj +2005 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 626.375 521.32 635.287] +/Subtype /Link +/A << /S /GoTo /D (2749) >> +>> endobj +2006 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 614.173 317.03 622.335] +/Subtype /Link +/A << /S /GoTo /D (2756) >> +>> endobj +2007 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 614.173 521.32 622.335] +/Subtype /Link +/A << /S /GoTo /D (2756) >> +>> endobj +2008 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 600.472 257.982 609.384] +/Subtype /Link +/A << /S /GoTo /D (2759) >> +>> endobj +2009 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 600.472 521.32 609.384] +/Subtype /Link +/A << /S /GoTo /D (2759) >> +>> endobj +2010 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 588.27 327.79 596.432] +/Subtype /Link +/A << /S /GoTo /D (2766) >> +>> endobj +2011 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 588.27 521.32 596.432] +/Subtype /Link +/A << /S /GoTo /D (2766) >> +>> endobj +2012 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 574.569 257.982 583.481] +/Subtype /Link +/A << /S /GoTo /D (2774) >> +>> endobj +2013 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 574.569 521.32 583.481] +/Subtype /Link +/A << /S /GoTo /D (2774) >> +>> endobj +2014 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 562.367 322.41 570.529] +/Subtype /Link +/A << /S /GoTo /D (2787) >> +>> endobj +2015 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 562.367 521.32 570.529] +/Subtype /Link +/A << /S /GoTo /D (2787) >> +>> endobj +2016 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 548.667 257.982 557.578] +/Subtype /Link +/A << /S /GoTo /D (2794) >> +>> endobj +2017 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 548.667 521.32 557.578] +/Subtype /Link +/A << /S /GoTo /D (2794) >> +>> endobj +2018 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 537.653 311.651 544.627] +/Subtype /Link +/A << /S /GoTo /D (2807) >> +>> endobj +2019 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 537.653 521.32 544.627] +/Subtype /Link +/A << /S /GoTo /D (2807) >> +>> endobj +2020 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 522.764 257.982 531.675] +/Subtype /Link +/A << /S /GoTo /D (2814) >> +>> endobj +2021 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 522.764 521.32 531.675] +/Subtype /Link +/A << /S /GoTo /D (2814) >> +>> endobj +2022 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 511.781 322.41 518.724] +/Subtype /Link +/A << /S /GoTo /D (2827) >> +>> endobj +2023 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 511.781 521.32 518.724] +/Subtype /Link +/A << /S /GoTo /D (2827) >> +>> endobj +2024 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 496.861 257.982 505.772] +/Subtype /Link +/A << /S /GoTo /D (2834) >> +>> endobj +2025 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 496.861 521.32 505.772] +/Subtype /Link +/A << /S /GoTo /D (2834) >> +>> endobj +2026 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 485.878 257.852 492.821] +/Subtype /Link +/A << /S /GoTo /D (2847) >> +>> endobj +2027 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 485.878 521.32 492.821] +/Subtype /Link +/A << /S /GoTo /D (2847) >> +>> endobj +2028 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 470.958 257.982 479.869] +/Subtype /Link +/A << /S /GoTo /D (2850) >> +>> endobj +2029 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 470.958 521.32 479.869] +/Subtype /Link +/A << /S /GoTo /D (2850) >> +>> endobj +2030 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 459.975 300.891 466.918] +/Subtype /Link +/A << /S /GoTo /D (2857) >> +>> endobj +2031 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 459.975 521.32 466.918] +/Subtype /Link +/A << /S /GoTo /D (2857) >> +>> endobj +2032 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 445.055 257.982 453.967] +/Subtype /Link +/A << /S /GoTo /D (2860) >> +>> endobj +2033 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 445.055 521.32 453.967] +/Subtype /Link +/A << /S /GoTo /D (2860) >> +>> endobj +2034 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 432.853 284.752 441.015] +/Subtype /Link +/A << /S /GoTo /D (2867) >> +>> endobj +2035 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 432.853 521.32 441.015] +/Subtype /Link +/A << /S /GoTo /D (2867) >> +>> endobj +2036 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 419.152 257.982 428.064] +/Subtype /Link +/A << /S /GoTo /D (2870) >> +>> endobj +2037 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 419.152 521.32 428.064] +/Subtype /Link +/A << /S /GoTo /D (2870) >> +>> endobj +2038 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 408.169 257.852 415.112] +/Subtype /Link +/A << /S /GoTo /D (2877) >> +>> endobj +2039 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 408.169 521.32 415.112] +/Subtype /Link +/A << /S /GoTo /D (2877) >> +>> endobj +2040 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 393.249 257.982 402.161] +/Subtype /Link +/A << /S /GoTo /D (2880) >> +>> endobj +2041 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 393.249 521.32 402.161] +/Subtype /Link +/A << /S /GoTo /D (2880) >> +>> endobj +2042 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.372 382.267 257.852 389.209] +/Subtype /Link +/A << /S /GoTo /D (2887) >> +>> endobj +2043 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 382.267 521.32 389.209] +/Subtype /Link +/A << /S /GoTo /D (2887) >> +>> endobj +2044 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 367.347 257.982 376.258] +/Subtype /Link +/A << /S /GoTo /D (2922) >> +>> endobj +2045 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 367.347 521.32 376.258] +/Subtype /Link +/A << /S /GoTo /D (2922) >> +>> endobj +2046 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 356.364 258.889 363.307] +/Subtype /Link +/A << /S /GoTo /D (2936) >> +>> endobj +2047 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 356.364 521.32 363.307] +/Subtype /Link +/A << /S /GoTo /D (2936) >> +>> endobj +2048 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.283 342.193 258.889 350.355] +/Subtype /Link +/A << /S /GoTo /D (2943) >> +>> endobj +2049 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 342.193 521.32 350.355] +/Subtype /Link +/A << /S /GoTo /D (2943) >> +>> endobj +1983 0 obj << +/D [1981 0 R /XYZ 71.731 778.968 null] +>> endobj +1980 0 obj << +/Font << /F26 1184 0 R /F33 1203 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2085 0 obj << +/Length 23347 +/Filter /FlateDecode +>> +stream +xÚÅÝ]dW~ù{} +^ÊÎŒ|¿´4mcÆÂ@°å+Ã08du«`5i°ª…îo?'ëìµ3ÖÎ<O<%`0ð…ëôúETÌ"ûÿ0n¸ÙþßíO·§§»í<=Ÿ^ŸøéOsó÷ÿËú›ÛñÄýýËéáùeûß?ø?þîá|{º;ÿ𻋿û§¿ù÷ÿñ|þá|sz|xùáŸþ0‘‡óéånûÿùù¿ÿí?|þòõßýîüôü·¿þaÿŸ¿ÿËúßÿòéË¿ûÿôýÍïÿi··›ÿpþáéü²í}ø—g~wñÐþ2xÙ^×Ýë«X‡^_ÆíïnO¯à¿ÿww?¼¾ƒÇoO>ŸÎ¯ã¯üøÓOŸþ÷×ý¡Ë¹»ûÓÓÓxæþ姯Ÿýe{'7ûç/?þñÓú6Îw7ßþ“ð6nN·O¿Ìç»ÛÓíöñ
æ¡Ë7xzÿ:îNçû^ÇêþìµÔÇÓííƒT÷g¯¨=x >Ÿo¬º?{EíÁÕûÛÓÍË£Sdz¬.ƒêÝö§é“T÷g¯¨=x >žnž¬º?{EíÁõùô°ýÅÆ©û³WÔüX}Ø>†í/hJϲº¨ÛÇpoÕýÙ+j¨ÛÇ ÿ"±?zŬ¹rû^J(sö +Úƒ«Ûgp–êx–Õeð@Ý>ƒÛ³T÷g¯¨=x nŸÂU÷g¯¨=x >Ÿî_?{EíÁÕ§íÇí³ü#x<Ëê2x Þº?{EíÁõa{^þ˜Ï^Q{ð@Ý>†ùcn<{EíÁÕçíc¸—êx–Õeð@Ý>†;ùcn<{EíÁuûÎòÇÜxöŠÚƒêö1ÜZuöŠÚƒ«/ÛÇp#ÌgY]Ôícæë“WÄ˱ïáôlßä·G¯ˆ5w@>Ÿîžå¸ñì´?TïnnNÏOîGMžEu<PïNwVÝŸ½¢öàº} +wRÝŸ½¢öàº}÷÷RÝŸ½¢öàÇêíö1ÜIu<Ëê2x nÃùAªû³WÔ<P·áöQªû³WÔ<P·áƪû³WÔüX=ßœž^ܸ<Ëê2x Þ¶ŸRÝŸ½¢öàúpzz²êþìµÔרô"ÕýÙ+j~¬Þmƒüƒi”Íž; ·Ï@þ¹º?z…¬¹rû +·ògÜxöŠÚƒêö1È‘g¯¨=x >Ÿn_¬º?{EíÁÕ‡›Óã³üóf<Ëê2x Þní_ ƳWÔ<PNVÝŸ½¢öàº}ògÜxöŠÚƒ«ÛÇp/ÚŒgY]Ôíc¸³êþìµÔíc8ËŸqãÙ+j¨ÛÇ ÿ‚¸?zŬ¹É§í3?oöG™ì¹rû +ÚƒêÓéñɪû³WÔüX}Ù>y|’gY]ÔíSÇ'yöŠÚƒêö1Ü[uöŠÚƒêö1Èã“<{EíÁÕ‡›ícÿ…vžEu<P·áÖªû³WÔ<P·AŸäÙ+j¨O§ùÏ™òìµ?VooN72˜È³¬.ƒêùô OòìµÔ‡ÓÍÇÁÄ̬¶ßðÝE^·ÛßѼ\{!ûC—/äþÝÙs1j¹îon·ßnïúÛ?B;_é½6ôiûã{¯ñÌÞ{¯õ^?ýúË/Ÿ~ú øÚþvûóç;‚¯í×ãõ/io/q}ç=_é‘à-Îéâ-÷Hï_ôH¤.ƒÜ#)5=ª=È=’RÓ#¡ÚƒÜ#)5=ª=È=’QgDê2È=’RÓ#¡ÚƒØ#)tôHhÖ÷HÊL„hrdÔÙ#‘ºr¤ÔôH¨ö ÷HJM„jr¤ÔôH¨ö ÷HF=©Ë ÷HJM„jr¤ÔôH¨ö ÷HJM„jrdÔÙ#‘ºr¤ÔôH¨ö ÷HJM„jr¤ÔôH¨ö ÷HF=©Ë õHÊÜ{$/ǰGRàè‘P¬9î‘”™ ÑäI¨o=¨ë ÷HJM„jr¤ÔôH¨ö ÷HJM„jrdÔÙ#‘ºr¤ÔôH¨ö ÷HJM„jr¤ÔôH¨ö ÷HF=©Ë ÷HJM„jr¤ÔôH¨ö ÷HJM„jbdÐôHdööHŠ=’5Ç=’2Ó#!ÚƒÜ#)5=ª=È=’QgDê2È=’RÓ#¡ÚƒÜ#)5=ª=È=’RÓ#¡ÚƒÜ#uöH¤.ƒÜ#)5=ª=È=’RÓ#¡ÚƒÜ#)5=ª=È=’QgDê2È=’RÓ#¡ÚƒÜ#)5=ª=ˆ=’BG„fÍadÈôHDö÷HÊL„hr¤ÔôH¨ö ÷HJM„jrdÔÙ#‘ºr¤ÔôH¨ö ÷HJM„jr¤ÔôH¨ö ÷HF=©Ë ÷HJM„jr¤ÔôH¨ö ÷HJM„jr$Ô· Ôu{$¥¦GBµ¹GRjz$T{{$…Ž Íšãɘ³G"täI©é‘PíAî‘”š ÕäI©é‘PíA:{$R—Aî‘”š ÕäI©é‘PíAî‘”š Õäɨ³G"uäI©é‘PíAî‘”š ÕäI©é‘PíA:{$R—Aî‘”š ÕÄI¡£GB³æ¸GRfz$D{{$£Î‰Ôe{$¥¦GBµ¹GRjz$T{{$¥¦GBµ¹G2êì‘H]¹GRjz$T{{$¥¦GBµ¹GRjz$T{{$£Î‰Ôe{$¥¦GBµ¹GRjz$T{{$¥¦GBµ¹G2êì‘H]±GRèè‘Ь9î‘”™ ÑäI©é‘PíA:{$R—Aî‘”š ÕäI©é‘PíAî‘”š ÕäI¨o=¨ë ÷HJM„jr¤ÔôH¨ö ÷HJM„jrdÔÙ#‘ºr¤ÔôH¨ö ÷HÇmŒë‘ð…Œéâ…<õHǯcé‘n¯ôH7w§§í7oØ#göéîZô—‡›—÷1Òùþt3‹¥ùñË*‘n¶_‰×ßǾ½¸÷%ÒÝÃa‰tó|zúöÏåáÍå¡Ë7÷þöóvûTož?z!ïÕñ,«Ëàz·ýÆàEªû³WÔ<P·ßXuöŠÚƒêóéÑþ{ôŠYs“ÛŸB·¯¿1æx–Ñeð@Ý>ƒG«îÏ^Q{ð@Ý>ƒ‹?…YÝŸ½¢öàº} +¯¿Qêþìµ¾<m|›œQç×Ó‘ºò×Ó)5_O‡jò×Ó)5_O‡jò×Ó)59(ª=È9¨QgJê2È9¨R“ƒ¢Úƒœƒ*59(ª=È9¨R“ƒ¢Úƒœƒuæ ¤.ƒœƒ*59(ª=ˆ9¨BGŠfÍqªÌä ˆö ç F9(©Ë ç JMŠjrªÔä ¨ö ç JMŠjrjÔ™ƒ’ºrªÔä ¨ö ç JMŠjrªÔä ¨ö ç F9(©Ë ç JMŠjrªÔä ¨ö ç JMŠjrjÔ™ƒ’ºRªÌ=EñrsPŽÅšãT™ÉAíAÎA…ú–ƒ‚ºrªÔä ¨ö ç JMŠjrªÔä ¨ö ç F9(©Ë ç JMŠjrªÔä ¨ö ç JMŠjrjÔ™ƒ’ºrªÔä ¨ö ç JMŠjrªÔä ¨ö æ MJfÏaªÈ‘ƒ"Ysœƒ*39(¢=È9¨R“ƒ¢Úƒœƒuæ ¤.ƒœƒ*59(ª=È9¨R“ƒ¢Úƒœƒ*59(ª=È9¨QgJê2È9¨R“ƒ¢Úƒœƒ*59(ª=È9¨R“ƒ¢Úƒœƒuæ ¤.ƒœƒ*59(ª=È9¨R“ƒ¢Úƒ˜ƒ*tä hÖæ †LJdÏqªÌä ˆö ç JMŠjrªÔä ¨ö ç F9(©Ë ç JMŠjrªÔä ¨ö ç JMŠjrjÔ™ƒ’ºrªÔä ¨ö ç JMŠjrªÔä ¨ö ç B}ËAA]9UjrPT{sP¥&Eµ1UèÈAѬ9ÎA9sPB—AÎA•šÕäT©ÉAQíAÎA•šÕäÔ¨3%uäT©ÉAQíAÎA•šÕäT©ÉAQíAÎA:sPR—AÎA•šÕäT©ÉAQíAÎA•šÕäÔ¨3%uäT©ÉAQíAÌA:rP4kŽsPe&E´95êÌAI]9UjrPT{sP¥&Eµ9UjrPT{sP£Î”ÔesP¥&Eµ9UjrPT{sP¥&Eµ95êÌAI]9UjrPT{sP¥&Eµ9UjrPT{sP£Î”ÔesP…ŽÍšãT™ÉAíAÎA•šÕäÔ¨3%uäT©ÉAQíAÎA•šÕäT©ÉAQíAÎA…ú–ƒ‚ºrªÔä ¨ö ç JMŠjrªÔä ¨ö ç F9(©Ë ç JMŠjrz(º_ÈÈA/^ÈÓQzü:¾/}Üþù|s9hžÙsÐûk9è?ÿüû¿|ýôË—×oŸ{—…n¿m»Ùþ.vôOŸ¾þó¯?Sú°ý·?Õ/^æû_÷×´ç Mp@o3]¾ÍÃààƒr°Úƒ8u¬ö NÁ«=ˆÁR ºbpàÔ°Úƒ8u¬ö NÁ«=ˆÁR ºbpàÔ°Úƒ8u¬ö NÁ«=ˆÁR ºBpàÌoÁ‹—c8pX¬9œ9‚F{ƒ£Îà€Ôuƒ§Žà€ÕÄàÀ©#8`µ18pêXíA”šà +:‚4{Ž‚GîÁ“5‡Á3GpÀhbpàÔ°Úƒ(5ÁªË NÁ«=ˆÁSGpÀjbpàÔ°Úƒ(5ÁªË NÁ«=ˆÁSGpÀjbpàÔ°Úƒ(5ÁªË NÁ«=ˆÁSGpÀjRpàÐ=8`³æ(8Päì9œ9‚F{ƒ§Žà€ÕÄàÀ©#8`µ18Pj‚T—Aœ:‚V{ƒ§Žà€ÕÄàÀ©#8`µ18Pj‚T—Aœ:‚V{ƒ§Žà€ÕÄàÀ©#8`µ180êH]18pêXíAœ:‚V{‚‡îÁ›5‡Á2 ºbpàÔ°Úƒ8u¬ö NÁ«=ˆÁR ºbpàÔ°Úƒ8u¬ö NÁ«=ˆÁR ºbpàÔ°Úƒ8u¬ö NÁ«=ˆÁR ºbpàÔ°Úƒ8tج9œ9‚F{ƒ¥&8@uÄàÀ©#8`µ18pêXíAœ:‚V{ƒ¥&8@uÄàÀ©#8`µ18pêXíAœ:‚V{ƒ¥&8@uÄàÀ©#8`µ18pêXíAœ:‚V{ƒ¥&8@u¤àÀ¡{pÀfÍapàÌ0Úƒ8u¬ö JMp€ê2ˆÁSGpÀjbpàÔ°Úƒ8u¬ö FÁ©ë NÁ«=ˆÁSGpÀjbpàÔ°Úƒà1øöSëèÿötwí¿ ÌCuò~sp„¯c9Â?_9Âzýû»3ágö#ü‡kGøüôõ¿|ú×_ÿ×§ŸßŸà?<žÎÏ9Áÿßùéëë¥>áŸO÷¯¿£}{™á?áçKèmæ¡Ë·yô¥ +¼ŽÃ/U`³æðKœ9¾TÑÄ/UPêlH]¹qPjT{¥¦q@µ¹qPjT{£ÎÆÔe¥¦q@µ¹qPjT{¥¦q@µ¹q0êlH]¹qPjT{¥¦q@µ¹qPjT{£ÎÆÔeecØ8(p4(Ö7ÊLã€hrã Ô·ÆÔu¥¦q@µ¹qPjT{¥¦q@µ¹q0êlH]¹qPjT{¥¦q@µ¹qPjT{£ÎÆÔe¥¦q@µ¹qPjT{¥¦q@µ±q0h2{EŽÆÉšãÆA™iíAn”šÆÕäÆÁ¨³q uäÆA©iPíAn”šÆÕäÆA©iPíAnŒ:R—An”šÆÕäÆA©iPíAn”šÆÕäÆÁ¨³q uäÆA©iPíAn”šÆÕÄÆA¡£q@³æ°q0d"{Že¦q@´¹qPjT{¥¦q@µ¹q0êlH]¹qPjT{¥¦q@µ¹qPjT{£ÎÆÔe¥¦q@µ¹qPjT{¥¦q@µ¹qê[ã +Š5ǃ2Ó8 ÚƒÜ8õq +š5ǃ2Ó8 ÚƒÜ8(5ª=ȃQgã@ê2ȃRÓ8 ÚƒÜ8(5ª=ȃRÓ8 ÚƒÜ8õq +Gø(Öá+3Gøˆö áõíÔuð•š#|T{ð•š#|T{ð•š#|T{ð:ðI]ù_©9ÂGµù_©9ÂGµù_©9ÂGµùߨóŸÔeð•š#|T{ð•š#|T{ð•š#|T{ð
š#|2{ð9Žð‘¬9>ÂWfŽðíA>ÂWjŽðQíA>Â7ê<Â'uä#|¥æÕä#|¥æÕä#|¥æÕä#|£Î#|R—A>ÂWjŽðQíA>ÂWjŽðQíA>ÂWjŽðQíA>Â7ê<Â'uä#|¥æÕä#|¥æÕÄ#|…Ž#|4kð
™#|"{Žð•™#|D{ð•š#|T{ð•š#|T{ð:ðI]ù_©9ÂGµù_©9ÂGµù_©9ÂGµùߨóŸÔeð•š#|T{ð•š#|T{ð•š#|T{ð…úv„ê:ÈGøJÍ>ª=ÈGøJÍ>ª=ˆGø +GøhÖásáºò¾Rs„jò¾Rs„jò¾Rs„jò¾Qç>©Ë á+5Gø¨ö á+5Gø¨ö á+5Gø¨ö áuᓺò¾Rs„jò¾Rs„jò¾Rs„jò¾Qç>©Ë á+5Gø¨ö á+tá£Ys|„¯Ìá#Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøFGø¤.ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøFGø¤.ƒx„¯Ðq„fÍñ¾2s„hò¾Rs„jò¾Qç>©Ë á+5Gø¨ö á+5Gø¨ö á+5Gø¨ö áõíÔuð•š#|T{ð•š#|T{ð•š#|T{ðé\áÓëÈþåÉûÝÑþñëøÎ/¸{>½¼<óþxf?ÂþÿåÿíeþÛŽðámÎ#ü‹·y|„ÿþ…À>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøFGø¤.ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøFGø¤.ƒt„¯ÌýÅË1<ÂWà8ÂG±æø_™9ÂG´ù_¨oGø ®ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøFGø¤.ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒx„oÐá“Ùsx„¯Èq„dÍñ¾2s„hò¾Rs„jò¾Qç>©Ë á+5Gø¨ö á+5Gø¨ö á+5Gø¨ö áuᓺò¾Rs„jò¾Rs„jò¾Rs„jò¾Qç>©Ë á+5Gø¨ö á+5Gø¨ö á+tá£Ysx„oÈáÙs|„¯Ìá#Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøFGø¤.ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„/Ô·#|P×A>ÂWjŽðQíA>ÂWjŽðQíA<ÂWè8ÂG³æøß˜óŸÐeð•š#|T{ð•š#|T{ð•š#|T{ð:ðI]ù_©9ÂGµù_©9ÂGµù_©9ÂGµùߨóŸÔeð•š#|T{ð•š#|T{ð•š#|T{ð:ðI]ù_©9ÂGµñ_¡ãÍšã#|eæÑä#|£Î#|R—A>ÂWjŽðQíA>ÂWjŽðQíA>ÂWjŽðQíA>Â7ê<Â'uä#|¥æÕä#|¥æÕä#|¥æÕä#|£Î#|R—A>ÂWjŽðQíA>ÂWjŽðQíA>ÂWjŽðQíA>Â7ê<Â'uÄ#|…Ž#|4kŽð•™#|D{ð•š#|T{ð:ðI]ù_©9ÂGµù_©9ÂGµù_©9ÂGµù_¨oGø ®ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„OÇàâŸ^GŽð/OÞŽŽð_Çwþ›ðϧ›í·x„?žÙð_®áÿåáæå~ùúëoŸÞŸà?<žÎÏ9Áÿé_~üò….ð·7ùøzdöö×7r>m¿¿?ºÀ¿ßïóñ=æ¡Ë÷øþ,òþîôðúé¿!¨û³WÔ<P·ÿã“U÷g¯¨=x >Ÿ¶?zœº?{EíÁÕ‡ícxxqêx–Õeð@Ý>†{«îÏ^Q{ð@}ý?JôÛ£WÌš; ·ÏàîVšû³WÐ<ˆ9FÝbԙ˺r.£Ôä2¨ö ç2JM.ƒjr.£Ôä2¨ö ç2F¹©Ë ç2JM.ƒjr.£Ôä2¨ö ç2JM.ƒjr.cԙ˺r.£Ôä2¨ö ç2JM.ƒjr.£Ôä2¨ö ç2F¹©Ë å2ÊÜs/Ç0—QàÈeP¬9Îe”™\Ñä\F¨o¹¨ë ç2JM.ƒjr.£Ôä2¨ö ç2JM.ƒjr.cԙ˺r.£Ôä2¨ö ç2JM.ƒjr.£Ôä2¨ö ç2F¹©Ë ç2JM.ƒjr.£Ôä2¨ö ç2JM.ƒjb.cÐä2döæ2й’5ǹŒ2“Ë ÚƒœË(5¹ª=ȹŒQg.Cê2ȹŒR“Ë ÚƒœË(5¹ª=ȹŒR“Ë ÚƒœËuæ2¤.ƒœË(5¹ª=ȹŒR“Ë ÚƒœË(5¹ª=ȹŒQg.Cê2ȹŒR“Ë ÚƒœË(5¹ª=ˆ¹ŒBG.ƒfÍa.cÈä2Döç2ÊL.ƒhr.£Ôä2¨ö ç2JM.ƒjr.cԙ˺r.£Ôä2¨ö ç2JM.ƒjr.£Ôä2¨ö ç2F¹©Ë ç2JM.ƒjr.£Ôä2¨ö ç2JM.ƒjr.#Ô·\Ôus¥&—Aµ9—QjrT{s…Ž\Íšã\Ƙ3—!tä\F©ÉePíAÎe”š\Õä\F©ÉePíAÎeŒ:sR—AÎe”š\Õä\F©ÉePíAÎe”š\Õä\ƨ3—!uä\F©ÉePíAÎe”š\Õä\F©ÉePíAÎeŒ:sR—AÎe”š\ÕÄ\F¡#—A³æ8—QfrD{s£Î\†Ôes¥&—Aµ9—QjrT{s¥&—Aµ9—1êÌeH]9—QjrT{s¥&—Aµ9—QjrT{s£Î\†Ôes¥&—Aµ9—QjrT{s¥&—Aµ9—1êÌeH]1—QèÈeЬ9Îe”™\Ñä\F©ÉePíAÎeŒ:sR—AÎe”š\Õä\F©ÉePíAÎe”š\Õä\F¨o¹¨ë ç2JM.ƒjr.£Ôä2¨ö ç2JM.ƒjr.s\n¨\†^Gr™Ë8å0—9~ßù·w§›íïÛ1—Ïì¹Ìö+ñ¾—y=¥¹?æçÏüôåëûVæîþôôdS™óyÿcáíõ½ÿØ~'vÊl/èñÛ?íƒ÷—‡.ßßû“ÈíWúöâO"dzWÔ<P_K¡;©îÏ^Q{ðcõîöt{'Õñ,«Ëàº}ç{©îÏ^Q{ð@Ý>†×¿Ä)uöŠÚƒêö1ÜXuöŠÚƒ ÔhÂŒ:#3R—AŽÌ”šÈÕäÈL©‰ÌPíAŽÌ”šÈÕäĘ̀32#uäÈL©‰ÌPíAŒÌ:"34kŽ#3e&2C´923êŒÌH]92Sj"3T{#3¥&2Cµ92Sj"3T{#3£ÎÈŒÔe#3¥&2Cµ92Sj"3T{#3¥&2Cµ923êŒÌH]92Sj"3T{#3¥&2Cµ92Sj"3T{#3£ÎÈŒÔe"3e—c™)pDf(ÖGfÊLd†hrd&Ô·ÈÔu#3¥&2Cµ92Sj"3T{#3¥&2Cµ923êŒÌH]92Sj"3T{#3¥&2Cµ92Sj"3T{#3£ÎÈŒÔe#3¥&2Cµ92Sj"3T{#3¥&2Cµ123h"32{#3EŽÈÉšãÈL™‰ÌíAŽÌ”šÈÕäĘ̀32#uäÈL©‰ÌPíAŽÌ”šÈÕäÈL©‰ÌPíAŽÌŒ:#3R—AŽÌ”šÈÕäÈL©‰ÌPíAŽÌ”šÈÕäĘ̀32#uäÈL©‰ÌPíAŽÌ”šÈÕÄÈL¡#2C³æ023d"3"{Ž#3e&2C´92Sj"3T{#3¥&2Cµ923êŒÌH]92Sj"3T{#3¥&2Cµ92Sj"3T{#3£ÎÈŒÔe#3¥&2Cµ92Sj"3T{#3¥&2Cµ92ê[dê:È‘™R™¡Úƒ™)5‘ª=ˆ‘™BGd†fÍqdfÌ™ºrd¦ÔDf¨ö GfJMd†jrd¦ÔDf¨ö GfF‘©Ë GfJMd†jrd¦ÔDf¨ö GfJMd†jrdfÔ™‘ºrd¦ÔDf¨ö GfJMd†jrd¦ÔDf¨ö GfF‘©Ë GfJMd†jbd¦Ð™¡Ys™)3‘¢=È‘™QgdFê2È‘™R™¡Úƒ™)5‘ª=È‘™R™¡Úƒ™uFf¤.ƒ™)5‘ª=È‘™R™¡Úƒ™)5‘ª=È‘™QgdFê2È‘™R™¡Úƒ™)5‘ª=È‘™R™¡Úƒ™uFf¤.ƒ™)tDfhÖGfÊLd†hrd¦ÔDf¨ö GfF‘©Ë GfJMd†jrd¦ÔDf¨ö GfJMd†jrd&Ô·ÈÔu#3¥&2Cµ92Sj"3T{#3¥&2Cµ92£æIDfô:™]&]OG‘ÙñëøÎÈìõ¯û{ŽÌÆ3#2»½™ý׿þéOŸ¾þöù§¾“éæôrû_Ét~ý]ÏÛK\ßÇö7/GÙltà-ÎFçâ-7:ï_4:¤.ƒÜè(5ª=ÈŽRÓè ÚƒÜè(5ª=ÈŽQg£Cê2ÈŽRÓè ÚƒØè(t4:hÖ7:ÊL£ƒhr£cÔÙèºr££Ô4:¨ö 7:JM£ƒjr££Ô4:¨ö 7:F©Ë 7:JM£ƒjr££Ô4:¨ö 7:JM£ƒjr£cÔÙèºr££Ô4:¨ö 7:JM£ƒjr££Ô4:¨ö 7:F©Ë 5:ÊÜ/ǰÑQàhtP¬9nt”™FÑäFG¨o¨ë 7:JM£ƒjr££Ô4:¨ö 7:JM£ƒjr£cÔÙèºr££Ô4:¨ö 7:JM£ƒjr££Ô4:¨ö 7:F©Ë 7:JM£ƒjr££Ô4:¨ö 7:JM£ƒjb£cÐ4:dö6:Š’5ÇŽ2Óè ÚƒÜè(5ª=ÈŽQg£Cê2ÈŽRÓè ÚƒÜè(5ª=ÈŽRÓè ÚƒÜèu6:¤.ƒÜè(5ª=ÈŽRÓè ÚƒÜè(5ª=ÈŽQg£Cê2ÈŽRÓè ÚƒÜè(5ª=ˆŽBG£ƒfÍa£cÈ4:Dö7:ÊL£ƒhr££Ô4:¨ö 7:JM£ƒjr£cÔÙèºr££Ô4:¨ö 7:JM£ƒjr££Ô4:¨ö 7:F©Ë 7:JM£ƒjr££Ô4:¨ö 7:JM£ƒjr£#Ô·FÔu¥¦ÑAµ¹ÑQjT{…ŽFÍšãFǘ³Ñ!täFG©itPíAnt”šFÕäFG©itPíAntŒ:R—Ant”šFÕäFG©itPíAnt”šFÕäFǨ³Ñ!uäFG©itPíAnt”šFÕäFG©itPíAntŒ:R—Ant”šFÕÄFG¡£ÑA³æ¸ÑQfD{£ÎF‡Ôe¥¦ÑAµ¹ÑQjT{¥¦ÑAµ¹Ñ1êltH]¹ÑQjT{¥¦ÑAµ¹ÑQjT{£ÎF‡Ôe¥¦ÑAµ¹ÑQjT{¥¦ÑAµ¹Ñ1êltH]±ÑQèhtЬ9nt”™FÑäFG©itPíAntŒ:R—Ant”šFÕäFG©itPíAnt”šFÕäFG¨o¨ë 7:JM£ƒjr££Ô4:¨ö 7:JM£ƒjr£sÜ‹¨F‡^GË"æù¨Ñ9~K£sæFçaû«ÕíË<3óµFçÇ/é<žÎÏ/¶Ò¹ýFŸÇ.^äúNΧû‡Û£J'
½É<tù&’^ÈqCÂjbC¢Ô4$¨.ƒØ8u4$¬ö 5$Ý6kgކ„ÑĆD©iHP]±!qêhHXíAlHœ:V{§Ž†„ÕĆD©iHP]±!qêhHXíAlHœ:V{§Ž†„ÕĆD©iHP]±!qêhHXíAlHœ:V{§Ž†„ÕĆD©iHP]¡!qæ·†„ÅË1jH¸7$,Ö6$Î
£=ˆ
‰QgCBê:ˆ
‰SGCÂjbCâÔѰڃØ8u4$¬ö 6$JMC‚ê2ˆ
‰SGCÂjbCâÔѰڃØ8u4$¬ö 6$JMC‚ê2ˆ
‰SGCÂjbCâÔѰڃØ8u4$¬ö 5$ +
š=G
‰#÷†„ɚÆę£!a´±!qêhHXíAlH”š†Õe§Ž†„ÕĆĩ£!aµ±!qêhHXíAlH”š†Õe§Ž†„ÕĆĩ£!aµ±!qêhHXíAlH”š†Õe§Ž†„ÕĆĩ£!aµ©!qèÞ°YsÔ(r4$Hö6$Î
£=ˆ
‰SGCÂjbCâÔѰڃØ(5
ªË 6$N
«=ˆ
‰SGCÂjbCâÔѰڃØ(5
ªË 6$N
«=ˆ
‰SGCÂjbCâÔѰڃØu6$¤®ƒØ8u4$¬ö 6$N
«=H
‰C÷†„͚ÆD™iH]±!qêhHXíAlHœ:V{§Ž†„ÕĆD©iHP]±!qêhHXíAlHœ:V{§Ž†„ÕĆD©iHP]±!qêhHXíAlHœ:V{§Ž†„ÕĆD©iHP]±!qêhHXíAjHº7$lÖ6$Î
£=ˆ
‰RÓ ºbCâÔѰڃØ8u4$¬ö 6$N
«=ˆ
‰RÓ ºbCâÔѰڃØ8u4$¬ö 6$N
«=ˆ
‰RÓ ºbCâÔѰڃØ8u4$¬ö 6$N
«=ˆ
‰RÓ ºRCâн!a³æ°!qæhHíAlHœ:V{¥¦!AuĆĩ£!aµ±!qêhHXíAlHœ:V{£Î†„Ôu§Ž†„ÕĆĩ£!aµ±!qêhHXíAlH f0
¾ŽñÐåë8ß4$ð:¾ï{^žîOçû[nHÆ3£!¹»Öüë§ß>ÿá¯ïû‘»ûÓÓÓxæOŸ¾þó¯?ã·¼l¾þ>àí¾ÿ–———§ÃoyyÍOîù
æ¡Ë7øþ&òîñtûúçÂûòº?{EíÁuÿ§Žo´aµñm”šo´AuÄo´qêøFV{¿ÑÆ©©‘PíA®‘”š Õäɨ³F"uäI©©‘PíA¬‘:j$4kŽk$e¦FB´¹F2ꬑH]¹FRjj$T{k$¥¦FBµ¹FRjj$T{k$£Î‰Ôek$¥¦FBµ¹FRjj$T{k$¥¦FBµ¹F2ꬑH]¹FRjj$T{k$¥¦FBµ¹FRjj$T{k$£Î‰Ôej$eî5Š—cX#)pÔH(Ö×HÊL„hr$Ô· Ôuk$¥¦FBµ¹FRjj$T{k$¥¦FBµ¹F2ꬑH]¹FRjj$T{k$¥¦FBµ¹FRjj$T{k$£Î‰Ôek$¥¦FBµ¹FRjj$T{k$¥¦FBµ±F2hj$2{k$EŽ ÉšãI™©‘íA®‘”š Õäɨ³F"uäI©©‘PíA®‘”š ÕäI©©‘PíA®‘Œ:k$R—A®‘”š ÕäI©©‘PíA®‘”š Õäɨ³F"uäI©©‘PíA®‘”š ÕÄI¡£FB³æ°F2dj$"{Žk$e¦FB´¹FRjj$T{k$¥¦FBµ¹F2ꬑH]¹FRjj$T{k$¥¦FBµ¹FRjj$T{k$£Î‰Ôek$¥¦FBµ¹FRjj$T{k$¥¦FBµ¹Fê[ê:È5’RS#¡Úƒ\#)55ª=ˆ5’BG„fÍqdÌY#ºr¤ÔÔH¨ö ×HJM„jr¤ÔÔH¨ö ×HF5©Ë ×HJM„jr¤ÔÔH¨ö ×HJM„jrdÔY#‘ºr¤ÔÔH¨ö ×HJM„jr¤ÔÔH¨ö ×HF5©Ë ×HJM„jb¤ÐQ#¡Ys\#)35¢=È5’QgDê2È5’RS#¡Úƒ\#)55ª=È5’RS#¡Úƒ\#uÖH¤.ƒ\#)55ª=È5’RS#¡Úƒ\#)55ª=È5’QgDê2È5’RS#¡Úƒ\#)55ª=È5’RS#¡Úƒ\#uÖH¤.ƒX#)tÔHhÖ×HÊL„hr¤ÔÔH¨ö ×HF5©Ë ×HJM„jr¤ÔÔH¨ö ×HJM„jr$Ô· Ôuk$¥¦FBµ¹FRjj$T{k$¥¦FBµ¹F:ncTD¯#5ÒÅë8Ÿj¤ã×ñßhóxûí+f°FÏ|{E¿»=í
Ñýôõëç_þø¾Lºßþ·íïÉ÷êèï?ýöõó>ÿôã×÷½Ñyûé÷záôö>èQÏççÓã·¿TÀ[ÈC—oáƒòçöt{w÷Ñù üÙŸeu<PG +¥Ô´U¨ö ·UJM[…jr[¥Ô´U¨ö ·UFm©Ë ·UJM[…jr[¥Ô´U¨ö ·UJM[…jr[eÔÙV‘ºr[¥Ô´U¨ö ¶U +mš5Çm•2ÓV!ÚƒÜVu¶U¤.ƒÜV)5mª=Èm•RÓV¡ÚƒÜV)5mª=Èm•Qg[Eê2Èm•RÓV¡ÚƒÜV)5mª=Èm•RÓV¡ÚƒÜVu¶U¤.ƒÜV)5mª=Èm•RÓV¡ÚƒÜV)5mª=Èm•Qg[Eê2Hm•2÷¶ +ÅË1l«8Ú*kŽÛ*e¦B´¹ê[[ê:Èm•RÓV¡ÚƒÜV)5mª=Èm•RÓV¡ÚƒÜVu¶U¤.ƒÜV)5mª=Èm•RÓV¡ÚƒÜV)5mª=Èm•Qg[Eê2Èm•RÓV¡ÚƒÜV)5mª=Èm•RÓV¡ÚƒØV4m™=‡m•"G[…dÍq[¥Ì´Uˆö ·UJM[…jr[eÔÙV‘ºr[¥Ô´U¨ö ·UJM[…jr[¥Ô´U¨ö ·UFm©Ë ·UJM[…jr[¥Ô´U¨ö ·UJM[…jr[eÔÙV‘ºr[¥Ô´U¨ö ·UJM[…jb[¥ÐÑV¡YsØV2m‘=Çm•2ÓV!ÚƒÜV)5mª=Èm•RÓV¡ÚƒÜVu¶U¤.ƒÜV)5mª=Èm•RÓV¡ÚƒÜV)5mª=Èm•Qg[Eê2Èm•RÓV¡ÚƒÜV)5mª=Èm•RÓV¡ÚƒÜV õuä¶J©i«PíAn«”š¶ +ÕĶJ¡£B³æ¸2æl«]¹RjÚ*T{Û*¥¦Bµ¹RjÚ*T{Û*£Î¶ŠÔeÛ*¥¦Bµ¹RjÚ*T{Û*¥¦Bµ¹2êl«H]¹RjÚ*T{Û*¥¦Bµ¹RjÚ*T{Û*£Î¶ŠÔeÛ*¥¦Bµ±Rèh«Ð¬9n«”™¶ +Ñä¶Ê¨³"uä¶J©i«PíAn«”š¶ +Õä¶J©i«PíAn«Œ:Û*R—An«”š¶ +Õä¶J©i«PíAn«”š¶ +Õä¶Ê¨³"uä¶J©i«PíAn«”š¶ +Õä¶J©i«PíAn«Œ:Û*R—Al«:Ú*4kŽÛ*e¦B´¹RjÚ*T{Û*£Î¶ŠÔeÛ*¥¦Bµ¹RjÚ*T{Û*¥¦Bµ¹ê[[ê:Èm•RÓV¡ÚƒÜV)5mª=Èm•RÓV¡ÚƒÜVw@ª¢×‘¶êâuÜݵUǯã;¿ééþyûûgn«Æ3{[uþà‹žn_¯KnGNõåÓ×ÿûׯ÷é¿þöéý×=m¿•¹ÙþÎÎ~ßÓÃö|ýÃÿíe¾ÿuÍ]ú«y„osá_¼Íã#ü÷/ŽðQíA>ÂWjŽðQíA>ÂWjŽðQíA>Â7ê<Â'uä#|¥æÕä#|¥æÕä#|¥æÕä#|£Î#|R—A>ÂWjŽðQíA>ÂWjŽðQíA>ÂWjŽðQíA>Â7ê<Â'u¤#|eîGø(^Žá¾Ç>Š5ÇGøÊÌ>¢=ÈGøB};Âuä#|¥æÕä#|¥æÕä#|¥æÕä#|£Î#|R—A>ÂWjŽðQíA>ÂWjŽðQíA>ÂWjŽðQíA>Â7ê<Â'uä#|¥æÕä#|¥æÕä#|¥æÕÄ#|ƒæŸÌžÃ#|EŽ#|$kŽð•™#|D{ð•š#|T{ð:ðI]ù_©9ÂGµù_©9ÂGµù_©9ÂGµùߨóŸÔeð•š#|T{ð•š#|T{ð•š#|T{ð:ðI]ù_©9ÂGµù_©9ÂGµñ_¡ãÍšÃ#|CæŸÈžã#|eæÑä#|¥æÕä#|¥æÕä#|£Î#|R—A>ÂWjŽðQíA>ÂWjŽðQíA>ÂWjŽðQíA>Â7ê<Â'uä#|¥æÕä#|¥æÕä#|¥æÕä#|¡¾áƒºò¾Rs„jò¾Rs„jâ¾BÇ>š5ÇGøÆœGø„.ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøFGø¤.ƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„¯Ôá£Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ˆGø +GøhÖá+3Gøˆö áuᓺò¾Rs„jò¾Rs„jò¾Rs„jò¾Qç>©Ë á+5Gø¨ö á+5Gø¨ö á+5Gø¨ö áuᓺò¾Rs„jò¾Rs„jò¾Rs„jò¾Qç>©Ë á+tá£Ys|„¯Ìá#Úƒ|„¯Ôá£Úƒ|„oÔy„Oê2ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøJÍ>ª=ÈGøB};Âuä#|¥æÕä#|¥æÕä#|¥æÕä#|:Gøô:r„ñ:ð_Çw~ÁÉëßUnGøã™ýÿîßú'ÿðùË×÷ßð²ýãᇋ—ñþ×õù|td?¿¾ +åš5‡å„!SNÙs\N(3å¢=Èå„RSN Úƒ\N(5åª=Èå„Qg9Aê2Èå„RSN Úƒ\N(5åª=Èå„RSN Úƒ\Nu–¤.ƒ\N(5åª=Èå„RSN Úƒ\N(5åª=Èå„PßÊ P×A.'”šrÕärB©)'PíA,':Ê 4kŽË cÎr‚ÐeË ¥¦œ@µ¹œPjÊ T{Ë ¥¦œ@µ¹œ0ê,'H]¹œPjÊ T{Ë ¥¦œ@µ¹œPjÊ T{Ë £Îr‚ÔeË ¥¦œ@µ¹œPjÊ T{Ë ¥¦œ@µ¹œ0ê,'H]¹œPjÊ T{Ë …ŽrÍšãrB™)'íA.'Œ:Ë R—A.'”šrÕärB©)'PíA.'”šrÕär¨³œ uärB©)'PíA.'”šrÕärB©)'PíA.'Œ:Ë R—A.'”šrÕärB©)'PíA.'”šrÕär¨³œ uÄrB¡£œ@³æ¸œPfÊ D{Ë ¥¦œ@µ¹œ0ê,'H]¹œPjÊ T{Ë ¥¦œ@µ¹œPjÊ T{Ë ¡¾• ®ƒ\N(5åª=Èå„RSN Úƒ\N(5åª=Èå]ø‹r‚^Gʉ‹×q÷xTN¿Žïüú‚óù´ý%—㙽œ¸ÿ®râï~üòù§¿ÿõ—/_ûñó/_¿¼?ä¿ßÿH{{ïaï·?ŽÒ‰ÑÀÛHOpñ.Ž{‚÷/zD{{£Îž€Ôe{¥¦'@µ¹'PjzT{{¥¦'@µ¹'0êì H]¹'PjzT{{¥¦'@µ¹'PjzT{{£Îž€Ôe{¥¦'@µ¹'PjzT{{¥¦'@µ¹'0êì H]©'PæÞ x9†=GO€bÍqO Ìôˆö ÷B}ë @]¹'PjzT{{¥¦'@µ¹'PjzT{{£Îž€Ôe{¥¦'@µ¹'PjzT{{¥¦'@µ¹'0êì H]¹'PjzT{{¥¦'@µ¹'PjzT{{ƒ¦' ³ç°'Päè ¬9î ”™ž +=š5Ç=2Ó ÚƒÜuö¤.ƒÜ(5=ª=È=RÓ ÚƒÜ(5=ª=È=QgO@ê2È=RÓ ÚƒÜ(5=ª=È=RÓ ÚƒÜuö¤.ƒÜ(5=ª=È=RÓ ÚƒÜ(5=ª=È=QgO@ê2ˆ=BGO€fÍqO Ìôˆö ÷JMO€jrO`ÔÙºrO Ôô¨ö ÷JMO€jrO Ôô¨ö ÷B}ë @]¹'PjzT{{¥¦'@µ¹'PjzT{{:{=½Žô¯ãîù¨'8~ßÙܼœîŸï¹'Ïì=ÁÃwõÿáÏ_ÿù×ß>ýëþô×ÿóçO¿¼~-çßÞŸ‘>žž_ÿKï·Wóþ—÷áøæe)¼›yYzñnŽ/Kß¿¸,%u¤ËReî—¥(^Žáe©Çe)Š5Ç—¥ÊÌe)¢=È—¥B}»,uäËR¥æ²ÕäËR¥æ²ÕäËR¥æ²ÕäËR£ÎËRR—A¾,Uj.KQíA¾,Uj.KQíA¾,Uj.KQíA¾,5ê¼,%uäËR¥æ²ÕäËR¥æ²ÕäËR¥æ²ÕÄËRƒæ²”ÌžÃËREŽËR$kŽ/K•™ËRD{/K•šËRT{/K:/KI]ù²T©¹,Eµù²T©¹,Eµù²T©¹,Eµù²Ô¨ó²”Ôe/K•šËRT{/K•šËRT{/K•šËRT{/K:/KI]ù²T©¹,Eµù²T©¹,Eµñ²T¡ã²ÍšÃËRC沔ȞãËReæ²ÑäËR¥æ²ÕäËR¥æ²ÕäËR£ÎËRR—A¾,Uj.KQíA¾,Uj.KQíA¾,Uj.KQíA¾,5ê¼,%uäËR¥æ²ÕäËR¥æ²ÕäËR¥æ²ÕäËR¡¾]–‚ºòe©RsYŠjòe©RsYŠjâe©BÇe)š5Ç—¥Æœ—¥„.ƒ|YªÔ\–¢Úƒ|YªÔ\–¢Úƒ|YªÔ\–¢Úƒ|YjÔyYJê2È—¥JÍe)ª=È—¥JÍe)ª=È—¥JÍe)ª=È—¥F—¥¤.ƒ|YªÔ\–¢Úƒ|YªÔ\–¢Úƒ|YªÔ\–¢Úƒ|YjÔyYJê2È—¥JÍe)ª=ˆ—¥ +—¥hÖ_–*3—¥ˆö _–u^–’ºòe©RsYŠjòe©RsYŠjòe©RsYŠjòe©Qçe)©Ë _–*5—¥¨ö _–*5—¥¨ö _–*5—¥¨ö _–u^–’ºòe©RsYŠjòe©RsYŠjòe©RsYŠjòe©Qçe)©Ë ^–*t\–¢Ys|YªÌ\–"Úƒ|YªÔ\–¢Úƒ|YjÔyYJê2È—¥JÍe)ª=È—¥JÍe)ª=È—¥JÍe)ª=È—¥B}»,uäËR¥æ²ÕäËR¥æ²ÕäËR¥æ²ÕäËR:}—¥ô:rYzñ:î^Ž.K_ÇrYzæËÒû—ÇÓÃÝ/KóÌ~Yúø]—¥ÿøÛçýñë§ÿüé¯ÿíËüôŸ~ûüëÏïKoO·÷?\¼˜÷¿º/ç»ÃÃÒñ¯g¥7“‡.ßÌ῞õƒrü¯geµñ_ÏêÔqDËjâRsD‹ê2G´ÎüvDËâåÑ:p?¢e±æðˆÖ™ãˆ–ÑÄ#Z£Î#ZR×A<¢uê8¢eµñˆÖ©ãˆ–ÕÄ#Z§Ž#ZV{h•š#ZT—A<¢uê8¢eµñˆÖ©ãˆ–ÕÄ#Z§Ž#ZV{h•š#ZT—A<¢uê8¢eµñˆÖ©ãˆ–ÕÄ#Z§Ž#ZV{Žh:ŽhÑì9:¢uä~DËdÍá3Ç-£=ˆG´NG´¬ö Ñ*5G´¨.ƒxDëÔqDËjâSÇ-«=ˆG´NG´¬ö Ñ*5G´¨.ƒxDëÔqDËjâSÇ-«=ˆG´NG´¬ö Ñ*5G´¨.ƒxDëÔqDËjâSÇ-«=HG´ÝhÙ¬9:¢Uä8¢E²çðˆÖ™ãˆ–ÑÄ#Z§Ž#ZV{h:ŽhYíA<¢UjŽhQ]ñˆÖ©ãˆ–ÕÄ#Z§Ž#ZV{h:ŽhYíA<¢UjŽhQ]ñˆÖ©ãˆ–ÕÄ#Z§Ž#ZV{h:ŽhYíA<¢5ê<¢%uÄ#Z§Ž#ZV{h:ŽhYíA:¢uè~DËfÍá2sD‹è2ˆG´NG´¬ö Ñ:uѲڃxDëÔqDËjâRsD‹ê2ˆG´NG´¬ö Ñ:uѲڃxDëÔqDËjâRsD‹ê2ˆG´NG´¬ö Ñ:uѲڃxDëÔqDËjâRsD‹ê2ˆG´NG´¬ö Ñ:t?¢e³æðˆÖ™ãˆ–ÑÄ#Z¥æˆÕeh:ŽhYíA<¢uê8¢eµñˆÖ©ãˆ–ÕÄ#Z¥æˆÕeh:ŽhYíA<¢uê8¢eµñˆÖ©ãˆ–ÕÄ#Z¥æˆÕeh:ŽhYíA<¢uê8¢eµñˆÖ©ãˆ–ÕÄ#Z¥æˆÕeŽhºÑ²YsxDëÌqDËhâSÇ-«=ˆG´JÍ-ªË Ñ:uѲڃxDëÔqDËjâSÇ-«=ˆG´FG´¤®ƒxDëÔqDËjâSÇ-«=ˆG´NG´¬ö Ñâ™çõ#Z|ã¡Ë×qxD¯ãûþõ¬÷Ïw§‡ç[>¢ÏìG´OßuDû÷Ÿ~{ý7²þôã×Oÿøë¿|þéó§/ßg<½þ·o/e}½¯¿9º ÝþÓ/Ï÷üNòÐå;yüøtwºúðu| îÏ^Q{ð@}ØžêþìµÔçÓýãT÷g¯¨=xp-¼}÷Rϲº¨ã|Z©¹ÇFµù[©¹ÇFµù[©¹ÇFµùÛ¨ó›Ôe¹ßc£x9†÷Ø +÷Ø(Ößc+3÷؈ö ßcõíÔuﱕš{lT{ﱕš{lT{ﱕš{lT{ï±:ï±I]ù[©¹ÇFµù[©¹ÇFµù[©¹ÇFµùÛ¨ó›Ôeﱕš{lT{ﱕš{lT{ﱕš{lT{ï±
š{l2{ï±9¬9¾ÇVfî±íA¾ÇVjî±QíA¾Ç6ê¼Ç&uä{l¥æÕä{l¥æÕä{l¥æÕä{l£Î{lR—A¾ÇVjî±QíA¾ÇVjî±QíA¾ÇVjî±QíA¾Ç6ê¼Ç&uä{l¥æÕä{l¥æÕÄ{l…Ž{l4kï±
™{l"{Žï±•™{lD{ﱕš{lT{ﱕš{lT{ï±:ï±I]ù[©¹ÇFµù[©¹ÇFµù[©¹ÇFµùÛ¨ó›Ôeﱕš{lT{ﱕš{lT{ﱕš{lT{ï±…úv
ê:È÷ØJÍ=6ª=È÷ØJÍ=6ª=ˆ÷Ø +÷ØhÖßcsÞcºò=¶Rsjò=¶Rsjò=¶Rsjò=¶Qç=6©Ë ßc+5÷بö ßc+5÷بö ßc+5÷بö ßcuÞc“ºò=¶Rsjò=¶Rsjò=¶Rsjò=¶Qç=6©Ë ßc+5÷بö Þc+tÜc£Ys|ÌÜc#Úƒ|mÔyMê2È÷ØJÍ=6ª=È÷ØJÍ=6ª=È÷ØJÍ=6ª=È÷ØF÷ؤ.ƒ|ÔÜc£Úƒ|ÔÜc£Úƒ|ÔÜc£Úƒ|mÔyMê2È÷ØJÍ=6ª=È÷ØJÍ=6ª=È÷ØJÍ=6ª=È÷ØF÷ؤ.ƒxÐqfÍñ=¶2shò=¶Rsjò=¶Qç=6©Ë ßc+5÷بö ßc+5÷بö ßc+5÷بö ßcõíÔuﱕš{lT{ﱕš{lT{ﱕš{lT{ï±o†Õ=6½ŽÜc_¼Žã{ìã×ñÿRã×ÿ6éüÂ÷Øã™ýûùûî±ÿË?üŸ¿|ýí×ÿçÏ_?ÿúË?þúù—¯_ÿ¥Æo/æßö/5†73h/ÞÌñíûG´¨ö Ñ*5G´¨ö ÑuÑ’ºÒ2÷#Z/ÇðˆVãˆÅšã#ZeæˆÑä#Z¡¾Ñ‚ºòRsD‹jòRsD‹jòRsD‹jòQç-©Ë Ñ*5G´¨ö Ñ*5G´¨ö Ñ*5G´¨ö ÑuÑ’ºòRsD‹jòRsD‹jòRsD‹jâAsDKfÏá"Ç-’5ÇG´ÊÌ-¢=ÈG´JÍ-ª=ÈG´FG´¤.ƒ|D«ÔÑ¢Úƒ|D«ÔÑ¢Úƒ|D«ÔÑ¢Úƒ|DkÔyDKê2ÈG´JÍ-ª=ÈG´JÍ-ª=ÈG´JÍ-ª=ÈG´FG´¤.ƒ|D«ÔÑ¢Úƒ|D«ÔÑ¢ÚƒxD«ÐqD‹fÍá!sDKdÏñ2sD‹hòRsD‹jòRsD‹jòQç-©Ë Ñ*5G´¨ö Ñ*5G´¨ö Ñ*5G´¨ö ÑuÑ’ºòRsD‹jòRsD‹jòRsD‹jòPߎhA]ùˆV©9¢EµùˆV©9¢EµñˆV¡ãˆÍšã#ZcÎ#ZB—A>¢UjŽhQíA>¢UjŽhQíA>¢UjŽhQíA>¢5ê<¢%uä#Z¥æˆÕä#Z¥æˆÕä#Z¥æˆÕä#Z£Î#ZR—A>¢UjŽhQíA>¢UjŽhQíA>¢UjŽhQíA>¢5ê<¢%uä#Z¥æˆÕÄ#Z…Ž#Z4kŽh•™#ZD{h:hI]ùˆV©9¢EµùˆV©9¢EµùˆV©9¢EµùˆÖ¨óˆ–Ôeh•š#ZT{h•š#ZT{h•š#ZT{h:hI]ùˆV©9¢EµùˆV©9¢EµùˆV©9¢EµùˆÖ¨óˆ–Ôeh:ŽhѬ9>¢UfŽhíA>¢UjŽhQíA>¢5ê<¢%uä#Z¥æˆÕä#Z¥æˆÕä#Z¥æˆÕä#Z¡¾Ñ‚ºòRsD‹jòRsD‹jòRsD‹jò-yŠ#Zz9¢½x÷7GG´Ç¯ã;ÿ¥Æ¯µzæ#ÚñÌ~Dûò]G´¿ÿË×O¿|ùüë/ïN
o·W÷øÃÅxÿ+út¾?:œ½}>½¾Gzýã™Ë—ÿþâqûõ¼}ºýèe¼7dzŒ.ƒêÝéñѪû³WÔ<PO·Ÿ'«û³WÔ<P·Oáõ¯ÖJÝŸ½¢öàÇêÝö1ÜIu<Ëê2x nÃöǬS÷g¯¨=x nÃë_•º?{EíÁuûn¬º?{EíÁÕûÛÓÍË£Sdz¬.ƒêk³ð$ÕýÙ+j¨§›'«îÏ^Q{ð@}>=\üe“ÕýÙ+j~¬>lÃËSdz¬.ƒêö1Ü[uöŠÚƒêö1È¿Hì^1kî€Ü>ƒ;ùg<{íÁÕÇí38Ku<Ëê2x nŸÁü17ž½¢öàº} +7VÝŸ½¢öàú|º‘?æÆ³WÔ<øJ„ñF_:Aê2È_:¡Ô|éª=È_:¡Ô|éª=È_:¡Ô|éª=È_:aÔù¥¤.ƒü¥JM/‡jr/§Ôôr¨ö ÷rJM/‡jr/gÔÙË‘ºR/§Ì½—Cñr{9Ž^Åšã^N™éåíAîå„úÖ˺r/§Ôôr¨ö ÷rJM/‡jr/§Ôôr¨ö ÷rF½©Ë ÷rJM/‡jr/§Ôôr¨ö ÷rJM/‡jr/gÔÙË‘ºr/§Ôôr¨ö ÷rJM/‡jr/§Ôôr¨ö örM/GfÏa/§ÈÑË!YsÜË)3½¢=ȽœRÓˡڃÜËuör¤.ƒÜË)5½ª=ȽœRÓˡڃÜË)5½ª=ȽœQg/Gê2ȽœRÓˡڃÜË)5½ª=ȽœRÓˡڃÜËuör¤.ƒÜË)5½ª=ȽœRÓˡڃØË)tôrhÖör†L/GdÏq/§Ìôrˆö ÷rJM/‡jr/§Ôôr¨ö ÷rF½©Ë ÷rJM/‡jr/§Ôôr¨ö ÷rJM/‡jr/gÔÙË‘ºr/§Ôôr¨ö ÷rJM/‡jr/§Ôôr¨ö ÷rB}ëå@]¹—Sjz9T{{9¥¦—Cµ±—SèèåЬ9îåŒ9{9B—Aî唚^Õä^N©éåPíAî唚^Õä^Ψ³—#uä^N©éåPíAî唚^Õä^N©éåPíAîåŒ:{9R—Aî唚^Õä^N©éåPíAî唚^Õä^Ψ³—#uä^N©éåPíAìå:z94kŽ{9e¦—C´¹—3êìåH]¹—Sjz9T{{9¥¦—Cµ¹—Sjz9T{{9£Î^ŽÔe{9¥¦—Cµ¹—Sjz9T{{9¥¦—Cµ¹—3êìåH]¹—Sjz9T{{9¥¦—Cµ¹—Sjz9T{{9£Î^ŽÔe{9…Ž^Íšã^N™éåíAî唚^Õä^Ψ³—#uä^N©éåPíAî唚^Õä^N©éåPíAîå„úÖ˺r/§Ôôr¨ö ÷rJM/‡jr/§Ôôr¨ö ÷rTw‰^Ž^Gz¹‹×q{ÔË¿Žío^NßþAâÍóéùñã`îéöôôí&~{äöi¾ íï‹tºùömßy}=Ÿÿrø%™‰ôÿOLŒendstream +endobj +2084 0 obj << +/Type /Page +/Contents 2085 0 R +/Resources 2083 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1927 0 R +/Annots [ 2087 0 R 2088 0 R 2089 0 R 2090 0 R 2091 0 R 2092 0 R 2093 0 R 2094 0 R 2095 0 R 2096 0 R 2097 0 R 2098 0 R 2099 0 R 2100 0 R 2101 0 R 2102 0 R 2103 0 R 2104 0 R 2105 0 R 2106 0 R 2107 0 R 2108 0 R 2109 0 R 2110 0 R 2111 0 R 2112 0 R 2113 0 R 2114 0 R 2115 0 R 2116 0 R 2117 0 R 2118 0 R 2119 0 R 2120 0 R 2121 0 R 2122 0 R 2123 0 R 2124 0 R 2125 0 R 2126 0 R 2127 0 R 2128 0 R 2129 0 R 2130 0 R ] +>> endobj +2087 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 727.501 230.963 736.412] +/Subtype /Link +/A << /S /GoTo /D (344) >> +>> endobj +2088 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 727.501 521.32 736.412] +/Subtype /Link +/A << /S /GoTo /D (344) >> +>> endobj +2089 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 714.55 236.343 723.461] +/Subtype /Link +/A << /S /GoTo /D (356) >> +>> endobj +2090 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 714.55 521.32 723.461] +/Subtype /Link +/A << /S /GoTo /D (356) >> +>> endobj +2091 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 701.598 206.365 710.51] +/Subtype /Link +/A << /S /GoTo /D (464) >> +>> endobj +2092 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [516.339 701.598 521.32 710.51] +/Subtype /Link +/A << /S /GoTo /D (464) >> +>> endobj +2093 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 688.647 259.925 697.558] +/Subtype /Link +/A << /S /GoTo /D (685) >> +>> endobj +2094 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 688.647 521.32 697.558] +/Subtype /Link +/A << /S /GoTo /D (685) >> +>> endobj +2095 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 675.695 252.483 684.607] +/Subtype /Link +/A << /S /GoTo /D (847) >> +>> endobj +2096 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 675.695 521.32 684.607] +/Subtype /Link +/A << /S /GoTo /D (847) >> +>> endobj +2097 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 662.744 252.483 671.655] +/Subtype /Link +/A << /S /GoTo /D (857) >> +>> endobj +2098 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 662.744 521.32 671.655] +/Subtype /Link +/A << /S /GoTo /D (857) >> +>> endobj +2099 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 649.792 259.925 658.704] +/Subtype /Link +/A << /S /GoTo /D (899) >> +>> endobj +2100 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 649.792 521.32 658.704] +/Subtype /Link +/A << /S /GoTo /D (899) >> +>> endobj +2101 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 636.841 259.925 645.752] +/Subtype /Link +/A << /S /GoTo /D (1004) >> +>> endobj +2102 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 636.841 521.32 645.752] +/Subtype /Link +/A << /S /GoTo /D (1004) >> +>> endobj +2103 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 623.89 238.644 632.801] +/Subtype /Link +/A << /S /GoTo /D (1025) >> +>> endobj +2104 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 623.89 521.32 632.801] +/Subtype /Link +/A << /S /GoTo /D (1025) >> +>> endobj +2105 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 610.938 222.106 619.85] +/Subtype /Link +/A << /S /GoTo /D (1098) >> +>> endobj +2106 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 610.938 521.32 619.85] +/Subtype /Link +/A << /S /GoTo /D (1098) >> +>> endobj +2107 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 597.987 238.246 606.898] +/Subtype /Link +/A << /S /GoTo /D (1224) >> +>> endobj +2108 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 597.987 521.32 606.898] +/Subtype /Link +/A << /S /GoTo /D (1224) >> +>> endobj +2109 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 585.035 243.626 593.947] +/Subtype /Link +/A << /S /GoTo /D (1423) >> +>> endobj +2110 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 585.035 521.32 593.947] +/Subtype /Link +/A << /S /GoTo /D (1423) >> +>> endobj +2111 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 572.084 232.627 580.995] +/Subtype /Link +/A << /S /GoTo /D (1491) >> +>> endobj +2112 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 572.084 521.32 580.995] +/Subtype /Link +/A << /S /GoTo /D (1491) >> +>> endobj +2113 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 559.132 227.716 568.044] +/Subtype /Link +/A << /S /GoTo /D (2368) >> +>> endobj +2114 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 559.132 521.32 568.044] +/Subtype /Link +/A << /S /GoTo /D (2368) >> +>> endobj +2115 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 546.181 259.925 555.092] +/Subtype /Link +/A << /S /GoTo /D (2510) >> +>> endobj +2116 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 546.181 521.32 555.092] +/Subtype /Link +/A << /S /GoTo /D (2510) >> +>> endobj +2117 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 533.23 249.235 542.141] +/Subtype /Link +/A << /S /GoTo /D (2586) >> +>> endobj +2118 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 533.23 521.32 542.141] +/Subtype /Link +/A << /S /GoTo /D (2586) >> +>> endobj +2119 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 520.278 254.615 529.19] +/Subtype /Link +/A << /S /GoTo /D (2709) >> +>> endobj +2120 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 520.278 521.32 529.19] +/Subtype /Link +/A << /S /GoTo /D (2709) >> +>> endobj +2121 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 507.327 286.894 516.238] +/Subtype /Link +/A << /S /GoTo /D (2770) >> +>> endobj +2122 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 507.327 521.32 516.238] +/Subtype /Link +/A << /S /GoTo /D (2770) >> +>> endobj +2123 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 494.375 281.514 503.287] +/Subtype /Link +/A << /S /GoTo /D (2790) >> +>> endobj +2124 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 494.375 521.32 503.287] +/Subtype /Link +/A << /S /GoTo /D (2790) >> +>> endobj +2125 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 481.424 270.754 490.335] +/Subtype /Link +/A << /S /GoTo /D (2810) >> +>> endobj +2126 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 481.424 521.32 490.335] +/Subtype /Link +/A << /S /GoTo /D (2810) >> +>> endobj +2127 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 468.472 281.514 477.384] +/Subtype /Link +/A << /S /GoTo /D (2830) >> +>> endobj +2128 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 468.472 521.32 477.384] +/Subtype /Link +/A << /S /GoTo /D (2830) >> +>> endobj +2129 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.552 455.521 216.956 464.432] +/Subtype /Link +/A << /S /GoTo /D (2918) >> +>> endobj +2130 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [511.357 455.521 521.32 464.432] +/Subtype /Link +/A << /S /GoTo /D (2918) >> +>> endobj +2086 0 obj << +/D [2084 0 R /XYZ 71.731 778.968 null] +>> endobj +10 0 obj << +/D [2084 0 R /XYZ 235.902 752.939 null] +>> endobj +2083 0 obj << +/Font << /F22 1177 0 R /F26 1184 0 R /F33 1203 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2155 0 obj << +/Length 2336 +/Filter /FlateDecode +>> +stream +xÚíYÝoã¸ß¿"2«¢¨Ïî¡ÍíÒÞfƒl€Ð»E¢míÉ¢JJ›óßù dÙÖn’¾(„äpHÎg~3”ÅU +ÃeôâÙ=V5ª¢Íá®Ø+{éÃi +¡”À"dQ.÷‰Ÿ‘ãØªV™¢ùÆfIäÇqæX1#pžÛ]ž»t…Æ‘[n;4à<ŠÆ!›'Bßhmo†²‡g†šU½Û½[g*Øf ¨@—X‹8÷ƒ<;±NS[Z§ ;:!÷«šƒÅÔÊÍö;Ù–¥Öœ½è›|=Ûà0ñÚaÿ¤Œ[H"Q?}{˜Îª˜ºW ±;b¹±>÷ <÷ضšqä×v½àë5ÁCä1EÞ—Á: +›¬7j¯(Ž‘D8Dxà3åF»(†>Øúhh$°Y±Çˆ½Âƒ®{á:¡“ǹsˆR™¾Þ +‘MH—±Gî„«ËÏnŠÓh(p/e6”µJ"…ÞÓ°áþÄç¼ÃçÑO;ž¢e"›ª °à5f˜Å’!ȹSP 1ï£Ù°¾ =‘Ô `N¬‚‰Öp¯è2^@ŽÌ,äðóÔ%ƬG¦ù•³¢¸sLà!Áï>ÜÈx™zÛ3• Æê߃+‰Hy –‚LRn»=ú>ãÐÉgç§P¥¨¸?ÕÈ +Ã`£Š #"Ì +ëÒk0«¦Ê’„jaÝ&¥×3JÖZVµÒ~â&ïãÆ¯rå÷¬®r&y:JJ˜€.ßëëñe¦LY?÷¸§‡þºö¸V€!âùÛ] +?ÉØFv÷É€ÿ½îZ~f…ü!ƒžYjÃ,Q8+…‹1Î;µ +endobj +2154 0 obj << +/Type /Page +/Contents 2155 0 R +/Resources 2153 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1927 0 R +>> endobj +1293 0 obj << +/D [2154 0 R /XYZ 71.731 768.009 null] +>> endobj +14 0 obj << +/D [2154 0 R /XYZ 347.333 752.939 null] +>> endobj +1294 0 obj << +/D [2154 0 R /XYZ 71.731 742.207 null] +>> endobj +18 0 obj << +/D [2154 0 R /XYZ 155.125 706.744 null] +>> endobj +2156 0 obj << +/D [2154 0 R /XYZ 71.731 699.392 null] +>> endobj +2157 0 obj << +/D [2154 0 R /XYZ 119.552 647.765 null] +>> endobj +2158 0 obj << +/D [2154 0 R /XYZ 214.092 647.765 null] +>> endobj +2159 0 obj << +/D [2154 0 R /XYZ 358.611 621.862 null] +>> endobj +2160 0 obj << +/D [2154 0 R /XYZ 71.731 601.773 null] +>> endobj +2161 0 obj << +/D [2154 0 R /XYZ 499.801 552.124 null] +>> endobj +2162 0 obj << +/D [2154 0 R /XYZ 71.731 506.131 null] +>> endobj +2163 0 obj << +/D [2154 0 R /XYZ 270.001 495.337 null] +>> endobj +1295 0 obj << +/D [2154 0 R /XYZ 71.731 449.344 null] +>> endobj +22 0 obj << +/D [2154 0 R /XYZ 194.476 417.11 null] +>> endobj +1296 0 obj << +/D [2154 0 R /XYZ 71.731 416.931 null] +>> endobj +26 0 obj << +/D [2154 0 R /XYZ 235.552 385.429 null] +>> endobj +2164 0 obj << +/D [2154 0 R /XYZ 71.731 376.977 null] +>> endobj +2165 0 obj << +/D [2154 0 R /XYZ 71.731 370.999 null] +>> endobj +2166 0 obj << +/D [2154 0 R /XYZ 141.071 355.84 null] +>> endobj +2169 0 obj << +/D [2154 0 R /XYZ 178.73 355.84 null] +>> endobj +2170 0 obj << +/D [2154 0 R /XYZ 184.11 355.84 null] +>> endobj +2171 0 obj << +/D [2154 0 R /XYZ 214.237 355.84 null] +>> endobj +2172 0 obj << +/D [2154 0 R /XYZ 214.237 355.84 null] +>> endobj +2173 0 obj << +/D [2154 0 R /XYZ 254.047 355.84 null] +>> endobj +2174 0 obj << +/D [2154 0 R /XYZ 254.047 355.84 null] +>> endobj +2175 0 obj << +/D [2154 0 R /XYZ 71.731 354.573 null] +>> endobj +2176 0 obj << +/D [2154 0 R /XYZ 141.071 344.183 null] +>> endobj +2177 0 obj << +/D [2154 0 R /XYZ 178.73 344.183 null] +>> endobj +2178 0 obj << +/D [2154 0 R /XYZ 184.11 344.183 null] +>> endobj +2179 0 obj << +/D [2154 0 R /XYZ 214.237 344.183 null] +>> endobj +2180 0 obj << +/D [2154 0 R /XYZ 214.237 344.183 null] +>> endobj +2181 0 obj << +/D [2154 0 R /XYZ 71.731 342.917 null] +>> endobj +2182 0 obj << +/D [2154 0 R /XYZ 141.071 332.527 null] +>> endobj +2183 0 obj << +/D [2154 0 R /XYZ 162.59 332.527 null] +>> endobj +2184 0 obj << +/D [2154 0 R /XYZ 167.97 332.527 null] +>> endobj +2185 0 obj << +/D [2154 0 R /XYZ 71.731 331.478 null] +>> endobj +2186 0 obj << +/D [2154 0 R /XYZ 141.071 320.871 null] +>> endobj +2187 0 obj << +/D [2154 0 R /XYZ 157.21 320.871 null] +>> endobj +2188 0 obj << +/D [2154 0 R /XYZ 162.59 320.871 null] +>> endobj +2189 0 obj << +/D [2154 0 R /XYZ 192.717 320.871 null] +>> endobj +2190 0 obj << +/D [2154 0 R /XYZ 192.717 320.871 null] +>> endobj +2191 0 obj << +/D [2154 0 R /XYZ 71.731 319.604 null] +>> endobj +2192 0 obj << +/D [2154 0 R /XYZ 141.071 309.215 null] +>> endobj +2193 0 obj << +/D [2154 0 R /XYZ 216.388 309.215 null] +>> endobj +2194 0 obj << +/D [2154 0 R /XYZ 221.768 309.215 null] +>> endobj +2195 0 obj << +/D [2154 0 R /XYZ 71.731 308.166 null] +>> endobj +2196 0 obj << +/D [2154 0 R /XYZ 141.071 297.558 null] +>> endobj +2197 0 obj << +/D [2154 0 R /XYZ 221.768 297.558 null] +>> endobj +2198 0 obj << +/D [2154 0 R /XYZ 227.148 297.558 null] +>> endobj +2199 0 obj << +/D [2154 0 R /XYZ 71.731 296.509 null] +>> endobj +2200 0 obj << +/D [2154 0 R /XYZ 141.071 285.902 null] +>> endobj +2201 0 obj << +/D [2154 0 R /XYZ 71.731 284.687 null] +>> endobj +2202 0 obj << +/D [2154 0 R /XYZ 141.071 274.246 null] +>> endobj +2203 0 obj << +/D [2154 0 R /XYZ 71.731 273.197 null] +>> endobj +2204 0 obj << +/D [2154 0 R /XYZ 141.071 262.589 null] +>> endobj +2205 0 obj << +/D [2154 0 R /XYZ 189.489 262.589 null] +>> endobj +2206 0 obj << +/D [2154 0 R /XYZ 194.869 262.589 null] +>> endobj +2207 0 obj << +/D [2154 0 R /XYZ 220.154 262.589 null] +>> endobj +2208 0 obj << +/D [2154 0 R /XYZ 220.154 262.589 null] +>> endobj +2209 0 obj << +/D [2154 0 R /XYZ 274.491 262.589 null] +>> endobj +2210 0 obj << +/D [2154 0 R /XYZ 274.491 262.589 null] +>> endobj +1297 0 obj << +/D [2154 0 R /XYZ 71.731 244.657 null] +>> endobj +30 0 obj << +/D [2154 0 R /XYZ 245.761 215.167 null] +>> endobj +1298 0 obj << +/D [2154 0 R /XYZ 71.731 212.693 null] +>> endobj +34 0 obj << +/D [2154 0 R /XYZ 222.525 188.766 null] +>> endobj +2211 0 obj << +/D [2154 0 R /XYZ 71.731 182.57 null] +>> endobj +2212 0 obj << +/D [2154 0 R /XYZ 71.731 177.589 null] +>> endobj +2213 0 obj << +/D [2154 0 R /XYZ 141.071 162.166 null] +>> endobj +2214 0 obj << +/D [2154 0 R /XYZ 178.73 162.166 null] +>> endobj +2215 0 obj << +/D [2154 0 R /XYZ 184.11 162.166 null] +>> endobj +2216 0 obj << +/D [2154 0 R /XYZ 214.237 162.166 null] +>> endobj +2217 0 obj << +/D [2154 0 R /XYZ 214.237 162.166 null] +>> endobj +2218 0 obj << +/D [2154 0 R /XYZ 254.047 162.166 null] +>> endobj +2219 0 obj << +/D [2154 0 R /XYZ 254.047 162.166 null] +>> endobj +2220 0 obj << +/D [2154 0 R /XYZ 71.731 139.252 null] +>> endobj +2221 0 obj << +/D [2154 0 R /XYZ 262.461 126.301 null] +>> endobj +2222 0 obj << +/D [2154 0 R /XYZ 440.799 126.301 null] +>> endobj +2153 0 obj << +/Font << /F22 1177 0 R /F26 1184 0 R /F33 1203 0 R /F42 2168 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2225 0 obj << +/Length 1907 +/Filter /FlateDecode +>> +stream +xÚXmã6þ¾¿"ßê +ŒRuÛ©Q78Ýš ~‘'wQ·éô„‹~™3šÛ)EÔÍ"ZGf$•ìvR,œ³2Öê•óÂÂu¼§hã¿VzïjÓàÖ—z»ÅÙ2ú–-ëVWWHôñccps¬Màhqìì‰Æô¼eYº-K>Þü„[¿QÊ·z,àdëÀÒth!:ñDˆŠg*YÂjœ‚;/‚àÒ“gd…C€‚£„û8$Tºm¹Üê+Ü(·þváŠå1~Ôö{ï>a?4°ÁNØ3Ëÿ¢åanÁä‰;Ø&\µu”ØT£ëáûÕMëÊfßĬ/P‚ÿñì%þ'HVä‘ñjBUçÇ>ì&ÊvÆNÄ…®íöRˆ +N¡û"¥¤`€†<%i”¸ž8“ÅŠ©3‡ÂFwü*:`¡Yx¸ZÜwǽž°eADšM¼~ïMݼ7€È…XØIöíåk€¯[ˆ¬HžvÖñ‘ɺ³WX•Îiˆ«¸çŽûÒ¶:’6S7‘àδ˜Pv䊰Þdå +p« +È8< ± +ôNŽœzÈòâU¥+¿‚xù3p•f$Ë;´Rc„åìØè,›õ¸0 +Éå[
–¡<)°ö„£9 ¡2þ&ßÌ¡HuHÙ”sN}Býõ¢“Â(—HXÖI¿ûj*¨Ç¨@‹Pz^–GK¸_PY‚6›PßÊ,H‚b×(\žÖ¦ÀÒh +h”Ž¡õdÁ*IÞ×Î_1ëØ|sÆyr‡ƒï^š ÉÞÔCzP
Æ 5Œ¥·¶6’Ìú +?ƒ†Þþˆ‹öØBÕ"Ë—M½ÚàÔ7ÆFéoÁ¡¸øóí¡‹pF'¹<8³ƒ¬¼‚>ƪ%%B¦.„½&tV¡×T´ +âu™´?oü{aò™<Úg$ÒéÖ¡‡ÑãD¡% <Ï5PQ•Ÿ5Óé˜õã4ôä$“Ù8å]6†YÌÆ)Ãl”A6†UÌÆ0‹ÙxBÈú\\ØïI/Îûz¨÷Y!Yº²Æ¾1xqˆá Q0cä»-„D×ÞO¢6|#ÒÉçê].Sƒß–P\ü¹§uõ®ìªzÙ±4‡¿G÷3c·ßçn˜/NG±õ„ûsJÁ]äÓfßçO•¿àL}]ÐZhÀ·õV_ŠÍÀíóìùø-r¢2_Ê^ÀSg…fðt,aQ¼M¹›# 4„<Åá¼ñ×e™“œeOþþ|b¹øùYôQtRüaü+¿&_ô?êBÔ›endstream +endobj +2224 0 obj << +/Type /Page +/Contents 2225 0 R +/Resources 2223 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1927 0 R +>> endobj +2226 0 obj << +/D [2224 0 R /XYZ 71.731 758.046 null] +>> endobj +2227 0 obj << +/D [2224 0 R /XYZ 71.731 758.046 null] +>> endobj +2228 0 obj << +/D [2224 0 R /XYZ 71.731 713.004 null] +>> endobj +2229 0 obj << +/D [2224 0 R /XYZ 71.731 713.004 null] +>> endobj +2230 0 obj << +/D [2224 0 R /XYZ 310.219 700.052 null] +>> endobj +2231 0 obj << +/D [2224 0 R /XYZ 165.479 661.198 null] +>> endobj +2232 0 obj << +/D [2224 0 R /XYZ 224.258 661.198 null] +>> endobj +2233 0 obj << +/D [2224 0 R /XYZ 259.058 661.198 null] +>> endobj +1299 0 obj << +/D [2224 0 R /XYZ 71.731 654.777 null] +>> endobj +38 0 obj << +/D [2224 0 R /XYZ 222.525 630.812 null] +>> endobj +2234 0 obj << +/D [2224 0 R /XYZ 71.731 625.651 null] +>> endobj +2235 0 obj << +/D [2224 0 R /XYZ 71.731 620.67 null] +>> endobj +2236 0 obj << +/D [2224 0 R /XYZ 141.071 604.212 null] +>> endobj +2237 0 obj << +/D [2224 0 R /XYZ 178.73 604.212 null] +>> endobj +2238 0 obj << +/D [2224 0 R /XYZ 184.11 604.212 null] +>> endobj +2239 0 obj << +/D [2224 0 R /XYZ 214.237 604.212 null] +>> endobj +2240 0 obj << +/D [2224 0 R /XYZ 214.237 604.212 null] +>> endobj +2241 0 obj << +/D [2224 0 R /XYZ 71.731 581.298 null] +>> endobj +2242 0 obj << +/D [2224 0 R /XYZ 262.461 568.346 null] +>> endobj +2243 0 obj << +/D [2224 0 R /XYZ 440.799 568.346 null] +>> endobj +2244 0 obj << +/D [2224 0 R /XYZ 71.731 537.462 null] +>> endobj +2245 0 obj << +/D [2224 0 R /XYZ 71.731 537.462 null] +>> endobj +2246 0 obj << +/D [2224 0 R /XYZ 71.731 492.419 null] +>> endobj +2247 0 obj << +/D [2224 0 R /XYZ 427.177 479.468 null] +>> endobj +2248 0 obj << +/D [2224 0 R /XYZ 487.484 479.468 null] +>> endobj +2249 0 obj << +/D [2224 0 R /XYZ 119.552 466.516 null] +>> endobj +1300 0 obj << +/D [2224 0 R /XYZ 71.731 461.347 null] +>> endobj +42 0 obj << +/D [2224 0 R /XYZ 206.385 436.13 null] +>> endobj +2250 0 obj << +/D [2224 0 R /XYZ 71.731 430.97 null] +>> endobj +2251 0 obj << +/D [2224 0 R /XYZ 71.731 425.988 null] +>> endobj +2252 0 obj << +/D [2224 0 R /XYZ 141.071 409.53 null] +>> endobj +2253 0 obj << +/D [2224 0 R /XYZ 162.59 409.53 null] +>> endobj +2254 0 obj << +/D [2224 0 R /XYZ 167.97 409.53 null] +>> endobj +2255 0 obj << +/D [2224 0 R /XYZ 71.731 386.616 null] +>> endobj +2256 0 obj << +/D [2224 0 R /XYZ 137.603 373.665 null] +>> endobj +2257 0 obj << +/D [2224 0 R /XYZ 119.552 334.81 null] +>> endobj +2258 0 obj << +/D [2224 0 R /XYZ 161.802 334.81 null] +>> endobj +2259 0 obj << +/D [2224 0 R /XYZ 134.379 321.859 null] +>> endobj +1301 0 obj << +/D [2224 0 R /XYZ 71.731 290.875 null] +>> endobj +46 0 obj << +/D [2224 0 R /XYZ 201.006 265.57 null] +>> endobj +2260 0 obj << +/D [2224 0 R /XYZ 71.731 260.409 null] +>> endobj +2261 0 obj << +/D [2224 0 R /XYZ 71.731 255.428 null] +>> endobj +2262 0 obj << +/D [2224 0 R /XYZ 141.071 238.97 null] +>> endobj +2263 0 obj << +/D [2224 0 R /XYZ 157.21 238.97 null] +>> endobj +2264 0 obj << +/D [2224 0 R /XYZ 162.59 238.97 null] +>> endobj +2265 0 obj << +/D [2224 0 R /XYZ 192.717 238.97 null] +>> endobj +2266 0 obj << +/D [2224 0 R /XYZ 192.717 238.97 null] +>> endobj +2267 0 obj << +/D [2224 0 R /XYZ 71.731 216.056 null] +>> endobj +2268 0 obj << +/D [2224 0 R /XYZ 137.653 203.104 null] +>> endobj +2269 0 obj << +/D [2224 0 R /XYZ 340.425 203.104 null] +>> endobj +2270 0 obj << +/D [2224 0 R /XYZ 164.921 190.153 null] +>> endobj +2271 0 obj << +/D [2224 0 R /XYZ 405.965 190.153 null] +>> endobj +1302 0 obj << +/D [2224 0 R /XYZ 71.731 183.015 null] +>> endobj +50 0 obj << +/D [2224 0 R /XYZ 260.184 159.767 null] +>> endobj +2272 0 obj << +/D [2224 0 R /XYZ 71.731 154.606 null] +>> endobj +2273 0 obj << +/D [2224 0 R /XYZ 71.731 149.625 null] +>> endobj +2274 0 obj << +/D [2224 0 R /XYZ 141.071 133.166 null] +>> endobj +2275 0 obj << +/D [2224 0 R /XYZ 216.388 133.166 null] +>> endobj +2276 0 obj << +/D [2224 0 R /XYZ 221.768 133.166 null] +>> endobj +2223 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F26 1184 0 R /F22 1177 0 R /F42 2168 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2279 0 obj << +/Length 1668 +/Filter /FlateDecode +>> +stream +xÚ]oÛ6ð=¿ÂoQ€˜Eê«À^Ö5[‡¶ c{X‡€–h›,zÝÀÿ¾wü°e[IS Ç»ã}ÓtÃä”ä>yAʬ˜Të‹x²„?.¨§˜z’逿·ÙÅ/7ŒOJ@°Él1á1'9ìåEBÒ”Ofõ¿Ñë•ØÙ]M“4Ž(qßÙJ:àîö +þÿãïu½mäÕ³¿.ÞÌö’Ó„–<«›'9Ó-ɺQZ‚NÀ'-HÌ3«Ûl¥z]¦ÑbÛVFéWYÔIQû
á>›N^%iôUémßìU/®’8úzEÓHÖŽ¬m×î0’8Ò·Æá*á%Ì¥C¸ÓÝζ½\lGa´Ã©õ¦ÓHåHÒXûÕÿ[Ñ(ãëÚL2¥ )SjïTbIÕ„ +”T;Ü|ç0¨®ÅfÓ¨J 1ˆÛ±Î«X]Ñ(pëWzÛ~Òó«ë Âèë UµK[YGCü° :-C1ž‘,+á¨9pp$Gn, ™§^»¶÷ž²,#qžøë'–äQ™•‹.wy„õ@Ôð¡Ùo•s¸TãCsïKÜÔÛ®’=ñú$}ÀØ,&¬åoœÒ˜ð"¨üØ)#?ZÖ7ª‘çF8œsÔ7!,ÏL5¥1#%/'Ólf‰k¹NIJË焹1ÉÊÜSŠÓx@çH‘Â]ƒõE+Öc~, V¤6ôÕ¹#§œÍ°¢°”Y:HHF‡ ‰+«¸ß±±ÏhUÛ®“qØ}lRŸyžX»¯pG>ÅqÒ`R"îu#E‡É츎KÞ‡6Às/Ø'`”§ªt;=Ê=|ŸU‚Ȇâ™R°(;[aá9ŽÑr ¦Á?#Ñ8¥Œ˜A?”KiÞtîÎrðM\|?!ó’’þP0rãŒÄ¬DáS!”q(é… '÷NozgnáÍ.—î,â·0¡-='†p ‡@ª¾nµ/Òl»ÖËPÆï™á\…î'T‹ +Cô פI³üû®És§?ä™S©GáÊH^/ðÕav”ëA'&kšŸúÓ +í¼ÄËc/¸è'XšÍíü³¬Ìˆ¡)¡År +&V¿k#pζ +endobj +2278 0 obj << +/Type /Page +/Contents 2279 0 R +/Resources 2277 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 1927 0 R +>> endobj +2280 0 obj << +/D [2278 0 R /XYZ 71.731 768.009 null] +>> endobj +2281 0 obj << +/D [2278 0 R /XYZ 466.221 745.095 null] +>> endobj +1303 0 obj << +/D [2278 0 R /XYZ 71.731 727.063 null] +>> endobj +54 0 obj << +/D [2278 0 R /XYZ 265.563 701.757 null] +>> endobj +2282 0 obj << +/D [2278 0 R /XYZ 71.731 696.597 null] +>> endobj +2283 0 obj << +/D [2278 0 R /XYZ 71.731 691.616 null] +>> endobj +2284 0 obj << +/D [2278 0 R /XYZ 141.071 675.157 null] +>> endobj +2285 0 obj << +/D [2278 0 R /XYZ 221.768 675.157 null] +>> endobj +2286 0 obj << +/D [2278 0 R /XYZ 227.148 675.157 null] +>> endobj +2287 0 obj << +/D [2278 0 R /XYZ 71.731 652.243 null] +>> endobj +2288 0 obj << +/D [2278 0 R /XYZ 174.903 626.34 null] +>> endobj +1304 0 obj << +/D [2278 0 R /XYZ 71.731 619.202 null] +>> endobj +58 0 obj << +/D [2278 0 R /XYZ 227.905 595.954 null] +>> endobj +2289 0 obj << +/D [2278 0 R /XYZ 71.731 589.758 null] +>> endobj +2290 0 obj << +/D [2278 0 R /XYZ 71.731 584.777 null] +>> endobj +2291 0 obj << +/D [2278 0 R /XYZ 141.071 569.354 null] +>> endobj +2292 0 obj << +/D [2278 0 R /XYZ 71.731 546.44 null] +>> endobj +1305 0 obj << +/D [2278 0 R /XYZ 71.731 526.35 null] +>> endobj +62 0 obj << +/D [2278 0 R /XYZ 238.664 503.102 null] +>> endobj +2293 0 obj << +/D [2278 0 R /XYZ 71.731 497.942 null] +>> endobj +2294 0 obj << +/D [2278 0 R /XYZ 71.731 492.96 null] +>> endobj +2295 0 obj << +/D [2278 0 R /XYZ 141.071 476.502 null] +>> endobj +2296 0 obj << +/D [2278 0 R /XYZ 71.731 453.588 null] +>> endobj +1306 0 obj << +/D [2278 0 R /XYZ 71.731 433.498 null] +>> endobj +66 0 obj << +/D [2278 0 R /XYZ 233.285 410.251 null] +>> endobj +2297 0 obj << +/D [2278 0 R /XYZ 71.731 404.054 null] +>> endobj +2298 0 obj << +/D [2278 0 R /XYZ 71.731 399.073 null] +>> endobj +2299 0 obj << +/D [2278 0 R /XYZ 141.071 383.65 null] +>> endobj +2300 0 obj << +/D [2278 0 R /XYZ 189.489 383.65 null] +>> endobj +2301 0 obj << +/D [2278 0 R /XYZ 194.869 383.65 null] +>> endobj +2302 0 obj << +/D [2278 0 R /XYZ 220.154 383.65 null] +>> endobj +2303 0 obj << +/D [2278 0 R /XYZ 220.154 383.65 null] +>> endobj +2304 0 obj << +/D [2278 0 R /XYZ 274.491 383.65 null] +>> endobj +2305 0 obj << +/D [2278 0 R /XYZ 274.491 383.65 null] +>> endobj +2306 0 obj << +/D [2278 0 R /XYZ 71.731 360.736 null] +>> endobj +2307 0 obj << +/D [2278 0 R /XYZ 430.398 347.785 null] +>> endobj +2308 0 obj << +/D [2278 0 R /XYZ 250.187 334.833 null] +>> endobj +2309 0 obj << +/D [2278 0 R /XYZ 318.549 334.833 null] +>> endobj +1307 0 obj << +/D [2278 0 R /XYZ 71.731 306.838 null] +>> endobj +70 0 obj << +/D [2278 0 R /XYZ 180.158 272.547 null] +>> endobj +1308 0 obj << +/D [2278 0 R /XYZ 71.731 272.368 null] +>> endobj +74 0 obj << +/D [2278 0 R /XYZ 198.718 240.866 null] +>> endobj +2310 0 obj << +/D [2278 0 R /XYZ 71.731 234.673 null] +>> endobj +1309 0 obj << +/D [2278 0 R /XYZ 71.731 170.031 null] +>> endobj +78 0 obj << +/D [2278 0 R /XYZ 200.736 144.726 null] +>> endobj +2277 0 obj << +/Font << /F34 1292 0 R /F26 1184 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2313 0 obj << +/Length 1484 +/Filter /FlateDecode +>> +stream +xÚXYoÛ8~ϯð[e fyˆ: +ô¡ëuv³=$FÚÅva(k+K†D7Ϳߡ†²%˱• 9ú8ç ÅF~ÙÈgÄððzÁ(^_ÐѼùã‚YÄÄB&-Ìoó‹·WÂ…@£ùräR—øðÎ8‘ÒÍ“œé*ÚhUŽ'\R‡|ÎW +·7cøÿ'Ÿ‹d›©ñ¿ó¿.fódÉü¤nÒ×MŒÁ3º1—êƒ2 ÔõjݵO<J(ŽÕF§’Â{gT +j÷:ÍëM zÕÈm8Õ3ý²±ô(OiT¥µ#öodo±Íìø±Vüà BUF‡0ÜÀÜ6‰b‰OÝte‘eE&àîw}“G`"ß#Ab¸Üzà‹ûÙÝÃìnñy6ÿóæ÷]²QB™l¡¦Ÿ®g_æÇP^u’‰$J%^g2ÿtÿÀΊBÔ9Qˆ:íšafñavñ¶a‡µk·®Zº @^%}^<$žw¶nIJ˜lêo×-î9ËmkŒcî;
:a‚] R±ˆS¨hHŽúRž)'ªŠËtƒ Ï©^ÙµG¢˜â†þÉ‚z‚Gž°@Ä)ñ»L„w*+ vÕÙ™ ™#:å „£RíæPí2ŸÞ"ÉÀSßÜä±ÂWÚ:“vœÉœUdÉJYRe /”žËý<EÍü0âúÍÖâÁ¤ï"áhç¢òH_¡-/wOFGEÔ1É:…Ê´”K[™Æ\”f8+£ +ûŒ•©‡¿Ì1Œ¯À>ÒUHA‰¼!ÇÖ>!áˆ{>æ¡ŸŠ£½Zúím’~Ó4aiÖ[}“Ï8ÈêYJZ>u¼Ë N `ƒ%89Ú¾8tê±3YàSvØöáz[ÙÑA§Š
8£C} +IlèCPùïìïÖîbèKSÁ s5‡Žoæ§_%ô¥’°€ícXÇXƒažì²~§çÃá¨b«žviNZ[ +3‚Múôȳ=Â…Ã:- ‚ÐvÌE®˜1… +œÓ)¯¦#'Üž—}f.T~60}¿u$56÷' +jX9“::œ´»Q:ΊjwË?áþ>°ýQÅ~Íq0ÿä÷ž=¤÷¹GBz ˆY1ÒÝW¾Þôý‘/À¸endstream +endobj +2312 0 obj << +/Type /Page +/Contents 2313 0 R +/Resources 2311 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2332 0 R +>> endobj +1310 0 obj << +/D [2312 0 R /XYZ 71.731 593.451 null] +>> endobj +82 0 obj << +/D [2312 0 R /XYZ 221.26 569.454 null] +>> endobj +2314 0 obj << +/D [2312 0 R /XYZ 71.731 563.257 null] +>> endobj +2315 0 obj << +/D [2312 0 R /XYZ 245.08 551.521 null] +>> endobj +2316 0 obj << +/D [2312 0 R /XYZ 119.552 538.569 null] +>> endobj +2317 0 obj << +/D [2312 0 R /XYZ 238.06 538.569 null] +>> endobj +2318 0 obj << +/D [2312 0 R /XYZ 71.731 507.685 null] +>> endobj +2319 0 obj << +/D [2312 0 R /XYZ 71.731 507.685 null] +>> endobj +1311 0 obj << +/D [2312 0 R /XYZ 71.731 387.501 null] +>> endobj +86 0 obj << +/D [2312 0 R /XYZ 205.12 362.096 null] +>> endobj +2320 0 obj << +/D [2312 0 R /XYZ 71.731 356.936 null] +>> endobj +2321 0 obj << +/D [2312 0 R /XYZ 343.049 344.164 null] +>> endobj +2322 0 obj << +/D [2312 0 R /XYZ 401.03 331.212 null] +>> endobj +2323 0 obj << +/D [2312 0 R /XYZ 446.003 331.212 null] +>> endobj +1312 0 obj << +/D [2312 0 R /XYZ 71.731 311.123 null] +>> endobj +90 0 obj << +/D [2312 0 R /XYZ 210.5 287.875 null] +>> endobj +2324 0 obj << +/D [2312 0 R /XYZ 71.731 281.678 null] +>> endobj +2325 0 obj << +/D [2312 0 R /XYZ 382.613 269.942 null] +>> endobj +2326 0 obj << +/D [2312 0 R /XYZ 151.494 256.991 null] +>> endobj +2327 0 obj << +/D [2312 0 R /XYZ 275.327 256.991 null] +>> endobj +2328 0 obj << +/D [2312 0 R /XYZ 119.552 244.039 null] +>> endobj +2329 0 obj << +/D [2312 0 R /XYZ 156.812 244.039 null] +>> endobj +2330 0 obj << +/D [2312 0 R /XYZ 251.497 244.039 null] +>> endobj +2131 0 obj << +/D [2312 0 R /XYZ 71.731 242.6 null] +>> endobj +2331 0 obj << +/D [2312 0 R /XYZ 71.731 209.14 null] +>> endobj +2311 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2335 0 obj << +/Length 1507 +/Filter /FlateDecode +>> +stream +xÚÅXÝoÛ6Ï_á·Ø@ÄòC¤¤‡=t™³emš¢1Úë(2k“%C¢Ûæ¿ßQGÙR$ÙÉÓ ¤NÇûâÝïNf +l0X‚D*œ$›3:y„7¿Ÿ1Çá9¯ÅóëâìÍ•ð'Äd±šøÔ'¼BN¤ô'‹å_ÓËu¼5ºœy\Ò)#¸.Ö7ogðÿ|¸)–»LÏþ^üy6_ì5KΈàGms,}ÛÄÄ”µIFBë£ õUm[•Í<Eéô\>Þ~!wUöJÚ"ܽÿÌg›Šû»ù§ÏóO÷7óÅ·¿!ð2k0Øá1F”l“]¥/uiÒUšÄFdþ”4²;vüì;ýt8SVq_D0G:nTEò¯6—ƒûlý€Wo¯î¯?Ìþ»ÛËw÷w‹Oó·7Ç}#i¾<ȵ»ó¬Hâl]TæÜ eVc¬r\\–VFçVŒìñÈÃÔx¹,»¾’8Iô¶v³î$YQéAÑD¼ÒæªåSÅÉ*Ít^ìO¸ía+Z<Û2Íž‘Rǵ6F¹?æsF~”)fÎù®ªøQãùUYl0ƒ*]~×. ¦À5ÉRBÈùX<x? o®8?”±'8áA4ñ|¥‚1²[3úüPSœ? ßr$EžëÄôÅùÀÅCÇu£ÍºX:&ÕÒ©(‰Ô2H$¸Ó™Bf.ÏØt—'&-r$üH3¨]Á£ilŒÞl
’ÅK…ªE +à —Óï3&§Úp†¶d™µ“…Öú@9“rJ¸Xƒ
.m\á#~Ô¸ðÑ÷E€&LÅÃ?6Jµ¾Í®r†¯ã§ÎL¤<h
+óú=Á :ÜF‡“HbtH"£— +£›QÎß- +endobj +2334 0 obj << +/Type /Page +/Contents 2335 0 R +/Resources 2333 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2332 0 R +>> endobj +1313 0 obj << +/D [2334 0 R /XYZ 71.731 554.908 null] +>> endobj +94 0 obj << +/D [2334 0 R /XYZ 215.88 529.503 null] +>> endobj +2336 0 obj << +/D [2334 0 R /XYZ 71.731 524.343 null] +>> endobj +2337 0 obj << +/D [2334 0 R /XYZ 411.049 511.571 null] +>> endobj +2338 0 obj << +/D [2334 0 R /XYZ 180.795 498.619 null] +>> endobj +2339 0 obj << +/D [2334 0 R /XYZ 302.202 498.619 null] +>> endobj +2340 0 obj << +/D [2334 0 R /XYZ 140.294 485.668 null] +>> endobj +2132 0 obj << +/D [2334 0 R /XYZ 71.731 483.511 null] +>> endobj +2341 0 obj << +/D [2334 0 R /XYZ 71.731 450.769 null] +>> endobj +1314 0 obj << +/D [2334 0 R /XYZ 71.731 342.903 null] +>> endobj +98 0 obj << +/D [2334 0 R /XYZ 205.12 317.498 null] +>> endobj +2342 0 obj << +/D [2334 0 R /XYZ 71.731 312.338 null] +>> endobj +2343 0 obj << +/D [2334 0 R /XYZ 214.556 299.566 null] +>> endobj +2344 0 obj << +/D [2334 0 R /XYZ 274.921 299.566 null] +>> endobj +2345 0 obj << +/D [2334 0 R /XYZ 144.458 286.614 null] +>> endobj +2346 0 obj << +/D [2334 0 R /XYZ 209.384 286.614 null] +>> endobj +1315 0 obj << +/D [2334 0 R /XYZ 71.731 281.445 null] +>> endobj +102 0 obj << +/D [2334 0 R /XYZ 199.74 256.228 null] +>> endobj +2347 0 obj << +/D [2334 0 R /XYZ 71.731 251.068 null] +>> endobj +2348 0 obj << +/D [2334 0 R /XYZ 221.628 238.295 null] +>> endobj +2349 0 obj << +/D [2334 0 R /XYZ 338.418 238.295 null] +>> endobj +2350 0 obj << +/D [2334 0 R /XYZ 119.552 225.344 null] +>> endobj +2351 0 obj << +/D [2334 0 R /XYZ 184.478 225.344 null] +>> endobj +1316 0 obj << +/D [2334 0 R /XYZ 71.731 220.174 null] +>> endobj +106 0 obj << +/D [2334 0 R /XYZ 258.918 194.958 null] +>> endobj +2352 0 obj << +/D [2334 0 R /XYZ 71.731 188.762 null] +>> endobj +2353 0 obj << +/D [2334 0 R /XYZ 451.684 177.025 null] +>> endobj +2354 0 obj << +/D [2334 0 R /XYZ 281.134 164.074 null] +>> endobj +1317 0 obj << +/D [2334 0 R /XYZ 71.731 157.653 null] +>> endobj +110 0 obj << +/D [2334 0 R /XYZ 253.539 133.688 null] +>> endobj +2355 0 obj << +/D [2334 0 R /XYZ 71.731 128.527 null] +>> endobj +2356 0 obj << +/D [2334 0 R /XYZ 179.855 115.755 null] +>> endobj +2357 0 obj << +/D [2334 0 R /XYZ 310.115 115.755 null] +>> endobj +2358 0 obj << +/D [2334 0 R /XYZ 460.839 115.755 null] +>> endobj +1318 0 obj << +/D [2334 0 R /XYZ 71.731 108.617 null] +>> endobj +2333 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2361 0 obj << +/Length 2093 +/Filter /FlateDecode +>> +stream +xÚkoã¸ñûþ +«Ä<Rõè·ë^¶Ýöns¸¤½m±`d:"K†H55Ðß!gô²”Íî¡
‡£™á¼)‹
‡?±IK#x¤Ë“lSœÞñÍìüñ Š‘ì&4xx÷݇(Þ䀈6‡MÌc–Â^š…LÊxó°ÿGðþ¨ÎV·Û](y >ŽŸï¶ðÿW\üÔì»Joÿõðçw·ƒd +…_ÔHº…ᨛ9è|dÆxœxÝœ í»q¸qo&Ž0ä,Î"`ì(:£ÿ¢/H4åI`’ÑOÚ›=%#ÑNJ&ÍDÊrЯ¹ó48«V´³Œ/ŠF
ÁÂ8'æÏƒø g8‹à½Ž§ÎXäùèygªq]ÖÆªº ls@¬íO=•)xÎx/ó{s9nmY,EË\aQ)c«ª÷(fT§hj«Êz”ê÷Ïm¹
eðo÷OY²ÆóVð@o….ÛDÌÉÝìÂ8a!Á€!ËeoÀÒ`¸ºº°eSãªPuÝX„u«¶"¨ô—ê°jnG,Kò5OÎ…,L{"¶ŒprÂÄÄ.â,ʾ6ÀŠ£.žWC,–,ão†XÊû‹¦ŠE`ÊÓ¹r¶ˆÃà„<þ¥¬*ĶÚvmX¨ò€Kt ÎÝc‘à‘W~ºA +r´&öÞå€&"ø»ä9QêÖ–ÿä<,Ðõ^¨»pJ$9“©¤ãß›j% 2&!‘‘bu8Q + +6)ë§„OÊ‚hÃöEi¡@–ðÓÃÓkªC°${Có$ך{–3-©ZÞfíK š˜žŠ ÐàH€ùjx&)‹„øÖð¬´j—Üœ%ÉÛå3!Wc3c<üGÓÀEz=Àýým¦|êάöÄzEá£ÖÎy/³·¹‹ÓZûšÁpç£%éXC +»âþ~0ÇÎî›—úÿ_&¢ttE”õ– +÷TTLWÌU±ÈU´jØ„N-‚=¾²ü§Ðç>@÷‘ThÚ=ÎP-çš›ë„ê+×L÷et¡I›£¢:¶3îÎÑ/£ssè\Û¼YD׳èj<ɨ-ghEïÀ©§-ÙÒŸ¶¼»]7øœÙI¼/`Ë[ÑÛ<ë- +8¬}¡¶š:m\#¬*ºj0¶T`«oH®oYƒhÛvÃ+¢>8+£Wb™ÒIäT²¡ [Ý£.M‡¨—ã»5 Ñæ +(1a‡Ø´×† +Z–±½Eêxƒ
r‘iÓÒ|ëw~lšg„ºóª\1³<úI«zh3>þ¦ÓËLc +sœÈò‘h3?Q•9«'Ú‡½ÏOÚ~ÖmÛP9~µ‡¥_ÙÀßý«mî<yœ¾ÕÆà^GW÷)gfòdr€¥¤ðê7UM@Y[o¡'WO=aYïKG½E=‰·’‡Œ›þü¤ê—ÎÖWÞˆ + è
iÿaÅŽ²¯ È`*ƒjòßâÞ©êkî]0_r¢ë§+Û‘H‚£®ÎJý(ã/eÝO†Öîó‚ÿâä(íåìrÝá]dxzkUñlpŸÆ)‡·Ð–hp¯htë®äçK n± µÛ˜»o^dUÂ@ˆµtŸ:ÙßKe<Â`:¿‡îŠêÚPã¯%tÀh°ÇôßYŽrÿµ“LõšAc¸…'Ãæ¾jO*Ñ ¦TÁ8U„±-TnsCúÄ‚ö]¡éÞòxYÑ-Iá +¼V#¦éÅé¬?âé°×¦hËÇ>;ÊújÖÇnVÆ2Êšñò² ~-ÊçfùÂ~Pêê²øÞøæÇFž11ͮߔÊQ–³TÊoÌåÁ
+©m?{»R–¤«•zñ9v¬ÔS]A׺„™øgîÜÎàmlú +endobj +2360 0 obj << +/Type /Page +/Contents 2361 0 R +/Resources 2359 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2332 0 R +>> endobj +2362 0 obj << +/D [2360 0 R /XYZ 71.731 790.923 null] +>> endobj +114 0 obj << +/D [2360 0 R /XYZ 210.5 758.046 null] +>> endobj +2363 0 obj << +/D [2360 0 R /XYZ 71.731 751.85 null] +>> endobj +2364 0 obj << +/D [2360 0 R /XYZ 180.801 740.114 null] +>> endobj +2365 0 obj << +/D [2360 0 R /XYZ 308.994 740.114 null] +>> endobj +2366 0 obj << +/D [2360 0 R /XYZ 263.421 727.162 null] +>> endobj +1319 0 obj << +/D [2360 0 R /XYZ 71.731 720.773 null] +>> endobj +118 0 obj << +/D [2360 0 R /XYZ 221.26 696.776 null] +>> endobj +2367 0 obj << +/D [2360 0 R /XYZ 71.731 690.58 null] +>> endobj +2368 0 obj << +/D [2360 0 R /XYZ 470.127 678.843 null] +>> endobj +2369 0 obj << +/D [2360 0 R /XYZ 268.232 665.892 null] +>> endobj +1320 0 obj << +/D [2360 0 R /XYZ 71.731 658.754 null] +>> endobj +122 0 obj << +/D [2360 0 R /XYZ 205.12 635.506 null] +>> endobj +2370 0 obj << +/D [2360 0 R /XYZ 71.731 630.345 null] +>> endobj +1321 0 obj << +/D [2360 0 R /XYZ 71.731 597.484 null] +>> endobj +126 0 obj << +/D [2360 0 R /XYZ 221.26 574.236 null] +>> endobj +2371 0 obj << +/D [2360 0 R /XYZ 71.731 569.075 null] +>> endobj +2372 0 obj << +/D [2360 0 R /XYZ 218.837 556.303 null] +>> endobj +2373 0 obj << +/D [2360 0 R /XYZ 228.716 530.4 null] +>> endobj +2374 0 obj << +/D [2360 0 R /XYZ 71.731 510.31 null] +>> endobj +1322 0 obj << +/D [2360 0 R /XYZ 71.731 453.523 null] +>> endobj +130 0 obj << +/D [2360 0 R /XYZ 237.399 430.275 null] +>> endobj +2375 0 obj << +/D [2360 0 R /XYZ 71.731 424.079 null] +>> endobj +2376 0 obj << +/D [2360 0 R /XYZ 119.552 399.391 null] +>> endobj +2377 0 obj << +/D [2360 0 R /XYZ 377.072 399.391 null] +>> endobj +2378 0 obj << +/D [2360 0 R /XYZ 71.731 368.507 null] +>> endobj +2379 0 obj << +/D [2360 0 R /XYZ 71.731 368.507 null] +>> endobj +1323 0 obj << +/D [2360 0 R /XYZ 71.731 328.446 null] +>> endobj +134 0 obj << +/D [2360 0 R /XYZ 232.019 303.041 null] +>> endobj +2380 0 obj << +/D [2360 0 R /XYZ 71.731 296.845 null] +>> endobj +2381 0 obj << +/D [2360 0 R /XYZ 178.47 272.157 null] +>> endobj +1324 0 obj << +/D [2360 0 R /XYZ 71.731 266.987 null] +>> endobj +138 0 obj << +/D [2360 0 R /XYZ 232.019 241.771 null] +>> endobj +2382 0 obj << +/D [2360 0 R /XYZ 71.731 235.575 null] +>> endobj +2383 0 obj << +/D [2360 0 R /XYZ 71.731 235.575 null] +>> endobj +2384 0 obj << +/D [2360 0 R /XYZ 259.52 210.887 null] +>> endobj +2385 0 obj << +/D [2360 0 R /XYZ 467.522 210.887 null] +>> endobj +2386 0 obj << +/D [2360 0 R /XYZ 317.936 197.935 null] +>> endobj +2387 0 obj << +/D [2360 0 R /XYZ 482.408 197.935 null] +>> endobj +1325 0 obj << +/D [2360 0 R /XYZ 71.731 190.797 null] +>> endobj +142 0 obj << +/D [2360 0 R /XYZ 226.64 167.549 null] +>> endobj +2388 0 obj << +/D [2360 0 R /XYZ 71.731 161.353 null] +>> endobj +1326 0 obj << +/D [2360 0 R /XYZ 71.731 142.478 null] +>> endobj +2359 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2391 0 obj << +/Length 1306 +/Filter /FlateDecode +>> +stream +xÚ¥W[s›8~ϯð›q·(’ +e¡ãt\) üÀø±j]íxÁ=Âyíjµ,6YRhÌÊÅ®}@Ó³6$ŒzNBOG`^dY1àžõ3Íoö˜D +˜CJ˜.ñѯhµÎÌÑÈl‡ìžNpz9uè~5¡ëRBt)3ˆN6U´ØS¾¶G ãK„™ŽáºL#).R4eH©õV_ +ðäõh_b™%O
’<ˆ§þk
ê—}À°¦=ÖÓí¹ÞÜgi|”U"í©¾DêkE)SžÆH!¬Åª¡ü¹EÉâ0Þ±ó£xÚâ_Eñ%ȇô¸u3y7ÿ}öéò|öqôÝp·ž’ðˆE]\0A<¬õ%[ +o.¿¼›ŽºÛ”m©T™Õ_Cò7ÞQ‹u]3l 8J ‡9²%sr¼öÏ›ð~8ëßí·ýÉ´Ùÿò +endobj +2390 0 obj << +/Type /Page +/Contents 2391 0 R +/Resources 2389 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2332 0 R +>> endobj +146 0 obj << +/D [2390 0 R /XYZ 248.159 758.046 null] +>> endobj +2392 0 obj << +/D [2390 0 R /XYZ 71.731 751.85 null] +>> endobj +2393 0 obj << +/D [2390 0 R /XYZ 410.43 740.114 null] +>> endobj +2394 0 obj << +/D [2390 0 R /XYZ 71.731 720.024 null] +>> endobj +2395 0 obj << +/D [2390 0 R /XYZ 71.731 695.012 null] +>> endobj +2396 0 obj << +/D [2390 0 R /XYZ 236.898 684.217 null] +>> endobj +2397 0 obj << +/D [2390 0 R /XYZ 119.552 671.266 null] +>> endobj +1327 0 obj << +/D [2390 0 R /XYZ 71.731 661.115 null] +>> endobj +150 0 obj << +/D [2390 0 R /XYZ 205.174 631.814 null] +>> endobj +2398 0 obj << +/D [2390 0 R /XYZ 71.731 625.621 null] +>> endobj +2133 0 obj << +/D [2390 0 R /XYZ 71.731 610.728 null] +>> endobj +2399 0 obj << +/D [2390 0 R /XYZ 71.731 577.986 null] +>> endobj +1328 0 obj << +/D [2390 0 R /XYZ 71.731 253.632 null] +>> endobj +154 0 obj << +/D [2390 0 R /XYZ 200.736 228.227 null] +>> endobj +2389 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2402 0 obj << +/Length 1392 +/Filter /FlateDecode +>> +stream +xÚÅÛnÛ6ô=_á·Z@Í’’¨K=¤KÒfCš"1ÚëÈsµ%C¢šæïwŽ%KQ»@†"@Hžû•–˜pø“P°Ðƒ%ŒXD“tsÄ'·póþHXŒ™E™õpÞÍÞœyþ$€7™/'>÷Ywaä2)ýÉ<û{úû*ÙU:3Wò©`´ÎWŠ6Ÿ.øÿ…EV¯•óÏü£Óy'Yº‚yY”±nÞê&|Áx6ʈq?htËÔÒ™œOo•9¯ªZ•_¹äË¢Ü$æ·kg&¦.¯æ/NoÎ.¯.Žçp-Þ¢‚ w&äFUŸQžlÔ^ +}]/þU©éÉFÑ×{e‡#Ù=N‡ +ÿX˜w +Ä"2?ľÑ$>@ÒñÒk1¦ßÊyVF’e§?ŒÊ+]äH¤ð€š!à#øã5ᥥ6:MÖö¨ZšÏɺÞ/%]«¤ìäTY“unöÑŒ=6°Fç™úÖì¥ÜnK›7g®»«ÓÔ‹1¬’ù\6ÔX’
¢ïîŠÆåÌ<ƒ77:׿æfÌÏ—,â‘E»PfUd)è
æÆP"d1T& Õ•3óB<”W¦¬SS”PªÄ({›àâM«oŽ€x•IÖtñ—ä±ÅW¥Ñ_9wS #Pѣù!wÈ¢È_9"šºZXü$w„œÞÓ¡®$+Y[™Jm·€ãÊéw$S%èÔÅe±…dT]¢%ØãV‰ãrKA…Â$Å™œÁÁA¾Îo ®Í+GÊ©å°Q›EÛO—užÌ(6 +èáqæEÁáݪÍ(õâá%¥ªf_*ðGn/;N/Èl•§E¦,惘6øC:p/¸é¬ÏTùë¬?9½úµÖWú6sq}æFñ>Ë}˜ù¡k-wû–‡rgy4B,8¡å¡…€t§Íª‡L·Ž˜–šÊþuˆÔ +¨`9eDtìµi^¡$”Éf»¶€%v˜ +)iU»[éte^õ:#ðB
Š›ìÔ¹ãc1CE¤bG`〤=šM¥‡„–T¡U;Ûm‡ï•€ùa›wßÔýØõeŸNÙF¼•–Óª¡·&yj¡ÅòiÒbO¼Ž«û
8¥ÔéX¨X Zµ k›DÌÛ>znæ¹.ºã#AŒbû:„M±5UäØî°MJãøœ[ `–…m5ë[U™±òžd¦%·ÑËtJ3y·¢–¼·-–N;/ÇÖËN +1i±ÙÖÆaVÖBr€6ýZ%ÕŠj¹¡mÆmH•½n'€¶â<cq‹¼Ý,-³ö}½,ÖëÃp1z;öhá; `QSŸ¸7'çïO¯ç]ÂsÆ…´—ò±Kj3׎Ÿ¦„KñôíÕ9€ðÊÃ'K§©oYÐÖ”ùT/Ö:ý³+ŸË „
á¾ö…,z´¯Çb×Ý`²,”œ›-ʆ(¥tì'{ NÔP´vD +endobj +2401 0 obj << +/Type /Page +/Contents 2402 0 R +/Resources 2400 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2332 0 R +>> endobj +1337 0 obj << +/D [2401 0 R /XYZ 71.731 790.923 null] +>> endobj +1329 0 obj << +/D [2401 0 R /XYZ 71.731 616.763 null] +>> endobj +158 0 obj << +/D [2401 0 R /XYZ 221.26 592.766 null] +>> endobj +2403 0 obj << +/D [2401 0 R /XYZ 71.731 586.57 null] +>> endobj +1330 0 obj << +/D [2401 0 R /XYZ 71.731 554.744 null] +>> endobj +162 0 obj << +/D [2401 0 R /XYZ 221.26 531.496 null] +>> endobj +2404 0 obj << +/D [2401 0 R /XYZ 71.731 525.3 null] +>> endobj +1331 0 obj << +/D [2401 0 R /XYZ 71.731 506.425 null] +>> endobj +166 0 obj << +/D [2401 0 R /XYZ 221.26 483.177 null] +>> endobj +2405 0 obj << +/D [2401 0 R /XYZ 71.731 478.017 null] +>> endobj +1332 0 obj << +/D [2401 0 R /XYZ 71.731 458.106 null] +>> endobj +170 0 obj << +/D [2401 0 R /XYZ 199.74 434.858 null] +>> endobj +2406 0 obj << +/D [2401 0 R /XYZ 71.731 428.662 null] +>> endobj +2407 0 obj << +/D [2401 0 R /XYZ 266.03 403.974 null] +>> endobj +2408 0 obj << +/D [2401 0 R /XYZ 385.411 403.974 null] +>> endobj +2409 0 obj << +/D [2401 0 R /XYZ 235.022 391.023 null] +>> endobj +2410 0 obj << +/D [2401 0 R /XYZ 71.731 360.139 null] +>> endobj +2411 0 obj << +/D [2401 0 R /XYZ 71.731 360.139 null] +>> endobj +1333 0 obj << +/D [2401 0 R /XYZ 71.731 310.062 null] +>> endobj +174 0 obj << +/D [2401 0 R /XYZ 242.779 284.657 null] +>> endobj +2412 0 obj << +/D [2401 0 R /XYZ 71.731 278.461 null] +>> endobj +2413 0 obj << +/D [2401 0 R /XYZ 415.558 266.724 null] +>> endobj +2414 0 obj << +/D [2401 0 R /XYZ 130.341 253.773 null] +>> endobj +1334 0 obj << +/D [2401 0 R /XYZ 71.731 246.635 null] +>> endobj +178 0 obj << +/D [2401 0 R /XYZ 232.019 223.387 null] +>> endobj +2415 0 obj << +/D [2401 0 R /XYZ 71.731 217.191 null] +>> endobj +1335 0 obj << +/D [2401 0 R /XYZ 71.731 200.373 null] +>> endobj +182 0 obj << +/D [2401 0 R /XYZ 232.019 175.068 null] +>> endobj +2416 0 obj << +/D [2401 0 R /XYZ 71.731 169.907 null] +>> endobj +2417 0 obj << +/D [2401 0 R /XYZ 428.324 157.135 null] +>> endobj +1336 0 obj << +/D [2401 0 R /XYZ 71.731 137.046 null] +>> endobj +2400 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2420 0 obj << +/Length 1765 +/Filter /FlateDecode +>> +stream +xÚÅXÝoÛ6Ï_á·É@Š”¨=¶h‡èðíA–阫,Õ.ýëwÇ;ÚRl§-’¢É3ïów<JÌ"ø³L„YC–‡EšÏªÝU4»…ß®s,˜e1ây±¼zþ:Nf,ijåf–DI˜Á^–ËP©d¶\ÿ¼Ü–{«»ùBª(!Ë&âý»9üÿƒ&oÚõPëù?Ë߯^-’•a,ÔYNt“ò¨›èç¨<Œ’Ôé†j€´ç¯9Ã_¦È(£0Éc89nµ½Ñ)kâ¨D(òœùÞh»m×Ì”™Ðmi*Š,,@E’jz2xG¿r4H"Âzßô$x!“"h†ÝÊ;Ñ4—þ;Ф®ùÌvã9½ÄJwÖ OUZžÍqÆù·ú§RÿÄø$õçìž‹€Mÿ‘>ÕŽ€ìÎ +uðÀÈü‘e1@!ó<ÛvðòV%eã5µz.Ä¿›+œ‰É"ç¨T}gh ¡®û~€cŸ<4¹:†&OƒNÛ¡kx£¤ÁûZÓvÕ6¶4inyËÅãÔ뉫)wà‡ ¤Ù«²Ú“®õN7––]°ÆGŒÄ˜‹ +|6–“h&&¹a¡„³‰ô 9)•&$0ºÞÒ„OCåàˆÄ±]ý«+fsFðTÅ•^ƒ#ÖÓ3ŒýƒÎ³Os ê׃fU^´¨7ñ»@ŽO†‡‘ä²ÓÛ¨Ô >œÕkÓ[Á`úæTlÚnçðSßqæ·»}Ûë{Èà„íwe}iž‹ÜÐÿz/a‘³…Lü(œZÕi¶eaîÑÒv§gˆ ÇûU;4¶»{‹¾F“"k<qF—„íD‚ˆC©¾""÷2zØ×½ïÚO¦©ôQ–LÂ(kŠP(Eg=ʘ¶»-ó¥´¦m²¨~””ºÊÚØ}ÖôÙØ”²þÐûRG÷]7’Y5” »;:î^“YÉÜÙ*¤8”Í…˜K‹y-“ÀÞíyð× 7]»#ž¶av¤mK›e88$QðŒv¶-žôYÏÝ¡PÜ'»#”ì•!+F ++O”€éÞ¬jž¡Ú8ö d¯+³¹£9Ô3Д'«2@!¾Ýè‹
Ы¹Œ‚'v[:*éâ6ð…º_ûó×ìŠ^û%½Amçî[ø¨µ2˜¬^->jæ™×r×Ôit¢nÖzý4mÍÞã¶/ŽÒÃÝG*ðkƒ+»HQ|êÀî‰Òã}‰(íà©sý‰€þDD)«ØœÅ`; +‘»ÊàLJ—ûÎ4¢Hƒ®ž8ÚŽuÃ{‘52ÍD_,Þ/–Á¥ì‘cðÖº¯:³ò÷͸g;1*U¡ÊF‡gd˜ŠÂ"òÕ}®¥"…pËïo©nøÒ=Í‹<úõ¼€’¤ÎõT±”Ǽ +šÌŠQ#~ÀŒ+0ÚéðŒ»Ü¼F£Xá2Åêšá!!³¯¡*äÍxàŠÅŒÐŒËÔCGÐQˆ€ +1t×¹˜Äô1€¾þI€~ÛÚÓ§‡¦Y<1;rèæÉqv‹Ü5Î0TÛ²¹ÕDsK!Š`ßQ{`0C†ž;xŒ”=¾ƒúg´â°†¿ì`£u,˜¸Âè.L[:‘x["áš§\ÕŸð_kÖt䝨Ž'ž_;ÿéJ+â§ŠêÚÕâÌ
¯'ä-…»H‚¡3Lé\·f§ig34V gò;Äw|Pôžƒá(½|¹œÇ hÇ'SKÒäϹpíA(€eÀ¢vO‹Óœœ¶O¨·ì™ÇJ¹{¨†ÎƒîñÔ`“ÇMŽÿ˜ÓNßPNaF?œîœÊ@Ôæ#6Pš¾ø`$O‹A’@ö) ºIçÜoSpUVÏAGÆ*LsõýeõA'V:±*ÐÁ%‚®:èÀsÙ8Üà +ãóʱºÊCÖ0npî.&u7¸p¦"HèàÖ¶ìÖ´é™7¸éqƒË7§9‚ˆ#ŒÀÀœÔ0¸C€ª¬*½÷Ï„TD4Ѹ^vpSØÑ»£p9Ç Š`áˆ"˜ŒP3B‘,E²8\éÓ"pR˜[…ïE +¢D ý·‹ˆJ¿ Qñ%@?Wówò$‡ÔÎü’~d9ù®à6‹áÌ,(´¸ð]üTÐÿl4¹endstream +endobj +2419 0 obj << +/Type /Page +/Contents 2420 0 R +/Resources 2418 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2332 0 R +>> endobj +1453 0 obj << +/D [2419 0 R /XYZ 71.731 790.923 null] +>> endobj +186 0 obj << +/D [2419 0 R /XYZ 226.64 758.046 null] +>> endobj +2421 0 obj << +/D [2419 0 R /XYZ 71.731 751.85 null] +>> endobj +190 0 obj << +/D [2419 0 R /XYZ 226.64 709.728 null] +>> endobj +2422 0 obj << +/D [2419 0 R /XYZ 71.731 704.567 null] +>> endobj +2423 0 obj << +/D [2419 0 R /XYZ 402.347 691.795 null] +>> endobj +1338 0 obj << +/D [2419 0 R /XYZ 71.731 684.657 null] +>> endobj +194 0 obj << +/D [2419 0 R /XYZ 226.64 661.409 null] +>> endobj +2424 0 obj << +/D [2419 0 R /XYZ 71.731 655.212 null] +>> endobj +2425 0 obj << +/D [2419 0 R /XYZ 71.731 599.64 null] +>> endobj +2426 0 obj << +/D [2419 0 R /XYZ 71.731 599.64 null] +>> endobj +2427 0 obj << +/D [2419 0 R /XYZ 71.731 534.854 null] +>> endobj +1339 0 obj << +/D [2419 0 R /XYZ 71.731 490.919 null] +>> endobj +198 0 obj << +/D [2419 0 R /XYZ 226.64 465.613 null] +>> endobj +2428 0 obj << +/D [2419 0 R /XYZ 71.731 460.453 null] +>> endobj +2429 0 obj << +/D [2419 0 R /XYZ 301.657 447.681 null] +>> endobj +2430 0 obj << +/D [2419 0 R /XYZ 185.125 434.729 null] +>> endobj +1340 0 obj << +/D [2419 0 R /XYZ 71.731 428.34 null] +>> endobj +202 0 obj << +/D [2419 0 R /XYZ 232.019 404.343 null] +>> endobj +2431 0 obj << +/D [2419 0 R /XYZ 71.731 398.147 null] +>> endobj +2432 0 obj << +/D [2419 0 R /XYZ 376.063 386.41 null] +>> endobj +1341 0 obj << +/D [2419 0 R /XYZ 71.731 366.321 null] +>> endobj +206 0 obj << +/D [2419 0 R /XYZ 232.019 343.073 null] +>> endobj +2433 0 obj << +/D [2419 0 R /XYZ 71.731 336.877 null] +>> endobj +2434 0 obj << +/D [2419 0 R /XYZ 304.279 325.14 null] +>> endobj +2435 0 obj << +/D [2419 0 R /XYZ 185.125 312.189 null] +>> endobj +1450 0 obj << +/D [2419 0 R /XYZ 71.731 305.8 null] +>> endobj +210 0 obj << +/D [2419 0 R /XYZ 242.779 281.803 null] +>> endobj +2436 0 obj << +/D [2419 0 R /XYZ 71.731 275.606 null] +>> endobj +2437 0 obj << +/D [2419 0 R /XYZ 119.552 237.967 null] +>> endobj +2438 0 obj << +/D [2419 0 R /XYZ 309.707 237.967 null] +>> endobj +1451 0 obj << +/D [2419 0 R /XYZ 71.731 230.829 null] +>> endobj +214 0 obj << +/D [2419 0 R /XYZ 242.779 207.581 null] +>> endobj +2439 0 obj << +/D [2419 0 R /XYZ 71.731 202.42 null] +>> endobj +2440 0 obj << +/D [2419 0 R /XYZ 155.248 163.745 null] +>> endobj +2441 0 obj << +/D [2419 0 R /XYZ 345.403 163.745 null] +>> endobj +1452 0 obj << +/D [2419 0 R /XYZ 71.731 156.607 null] +>> endobj +2418 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2444 0 obj << +/Length 1836 +/Filter /FlateDecode +>> +stream +xÚ½XmoÛ6þÞ_áoµ˜)Q/öaÍÒaÃú‚Ök7´Å Ht¤V–<‰JÛýúÝñHÙ²”´Ò!ˆIäñá=w¤øÂƒ?¾ˆ8‹|(¢˜%a¼Èv÷¼Åôü|[µUYé<ÚÜ{ðØ üÅf»¼€EÐÅ‚I,6ù›åy‘îµjWk!½%gTn +E•çÏVðûšOš¼¯ÔêÝæ×{›ae)8óŶY•‰mBlã<›`3/mh¬öàq 82DEá± öabÔ¸Rúi£ÜâŒæñ”!gIYÍ'JMn•ƒҰüÅšG,Qõ—öËãeJEV¤õ•¢ú¶mvXK–ûVD¸¼.›¾#I«*•v+¾TÝI¶MKÃZèhêŽÍ–Ê}Óêô²¬JýÙ®WçTÑ3@xËküiÊœ¦,`þ´µ
§÷ÖóÄ'ª–]×+»ÐÇRv©¶¹\ãÞŒ5,‘´ÓJíP7‘Ë÷œË¾†m”ée¥H®Ë¢žm_gº„]œÙž¢´cmXV“ UºokÛ›Òðß7盕íìÌnËúŠQãÏç°Ëžt³ÔNÔwÎŒâÄ +:Hß?ø…Û7;C»E¯³é’I‘X¯0‚kg0c€Xs¹T&¡ëL© ƒ©^n©ülL†JU~€-,-mð$'ò `!XB+ƒm€;k bßeš}`S__²0–‹µï1?þZÖtwË`/
k|™¬A±¥ûù±Ò…Dã¬1rÔµÄÁ6FÄ1K"qPá"FÄÁ®Â°;’e
v:Ö Ø°fJ¤¥‹Hˆ.PŽèmK¨è‚=D¨¥Y¦`g{mÛMm‡ìÓ6Ý)<pE;,¥bÌØ#ö@‹ØƒÆuÎ*òˆŠÜL%tªÄ9êÿÏ$ +Qµ&‰Bœ‡åÈø7–ÃD‰îž¥Z±)˜ÂóOJÊM÷4C4]ˆ86’M_Yã.•[W‘†¯Á‰±3vÀ„€|0rÓ¬-u™¥ÕÌÙ†pSà§–xœÀñ°T›%¯Ja/§‚Âhé¶WnœÀ£«ºèŽiÕÍÇ£„Åqt +Þ«´êçЋñ&45Ù€K¦Ô$†Xƒºxa耉 Å%UgM®ÌòÀ5*³hÒî +·X#œØ,g2 +¸6õ £˜¬Hû9 +Ãàk&äôæ¹ø”îö•„¯6
ñð +ñ~cˆ÷Ç!Þ.ZãÌ}—^Íxè:‚Aà€<!àÒ®ÌVëÐó–?Pï?”ŸØ#ì:_9ÜÀ§RˆiÝ[OzðÏÁL2<ÌÄà‚‡:oø™|wƒb§ÚkÕžCf`£íÁB8”¬¸o¦;?¬|ÿŒ:<[Òrºyi╳Ë-y’^}ÁD”,Ö +£½"ëžÆË¿ûÒ¼˜(¹«ZŸ€4¼ºói@\Þ|g=2<˜”. ÍÞ“Î"Èßé~1BO§ƒ×Æ!~Þ¦ÄWñE|f—‚ƒhòéîaíÇA0 [Öf¤œ¯PUîºNtÈŒ+9!DÝDJç…ߤ˜@Æ=d +endobj +2443 0 obj << +/Type /Page +/Contents 2444 0 R +/Resources 2442 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2465 0 R +>> endobj +2445 0 obj << +/D [2443 0 R /XYZ 71.731 778.968 null] +>> endobj +218 0 obj << +/D [2443 0 R /XYZ 237.399 758.046 null] +>> endobj +2446 0 obj << +/D [2443 0 R /XYZ 71.731 751.85 null] +>> endobj +2447 0 obj << +/D [2443 0 R /XYZ 119.552 714.211 null] +>> endobj +2448 0 obj << +/D [2443 0 R /XYZ 309.707 714.211 null] +>> endobj +222 0 obj << +/D [2443 0 R /XYZ 237.399 683.825 null] +>> endobj +2449 0 obj << +/D [2443 0 R /XYZ 71.731 678.664 null] +>> endobj +2450 0 obj << +/D [2443 0 R /XYZ 155.248 639.989 null] +>> endobj +2451 0 obj << +/D [2443 0 R /XYZ 345.403 639.989 null] +>> endobj +1454 0 obj << +/D [2443 0 R /XYZ 71.731 632.851 null] +>> endobj +226 0 obj << +/D [2443 0 R /XYZ 242.779 609.603 null] +>> endobj +2452 0 obj << +/D [2443 0 R /XYZ 71.731 604.442 null] +>> endobj +2453 0 obj << +/D [2443 0 R /XYZ 322.751 591.67 null] +>> endobj +2454 0 obj << +/D [2443 0 R /XYZ 119.552 578.719 null] +>> endobj +2455 0 obj << +/D [2443 0 R /XYZ 345.479 578.719 null] +>> endobj +2456 0 obj << +/D [2443 0 R /XYZ 229.161 552.816 null] +>> endobj +2457 0 obj << +/D [2443 0 R /XYZ 338.136 539.865 null] +>> endobj +2134 0 obj << +/D [2443 0 R /XYZ 71.731 524.756 null] +>> endobj +2458 0 obj << +/D [2443 0 R /XYZ 71.731 492.014 null] +>> endobj +1455 0 obj << +/D [2443 0 R /XYZ 71.731 442.43 null] +>> endobj +230 0 obj << +/D [2443 0 R /XYZ 258.918 417.025 null] +>> endobj +2459 0 obj << +/D [2443 0 R /XYZ 71.731 411.865 null] +>> endobj +1456 0 obj << +/D [2443 0 R /XYZ 71.731 394.012 null] +>> endobj +234 0 obj << +/D [2443 0 R /XYZ 258.918 368.706 null] +>> endobj +2460 0 obj << +/D [2443 0 R /XYZ 71.731 363.546 null] +>> endobj +1457 0 obj << +/D [2443 0 R /XYZ 71.731 345.693 null] +>> endobj +238 0 obj << +/D [2443 0 R /XYZ 242.779 320.388 null] +>> endobj +2461 0 obj << +/D [2443 0 R /XYZ 71.731 314.191 null] +>> endobj +2462 0 obj << +/D [2443 0 R /XYZ 346.767 302.455 null] +>> endobj +1458 0 obj << +/D [2443 0 R /XYZ 71.731 295.317 null] +>> endobj +242 0 obj << +/D [2443 0 R /XYZ 210.5 272.069 null] +>> endobj +2463 0 obj << +/D [2443 0 R /XYZ 71.731 265.873 null] +>> endobj +1459 0 obj << +/D [2443 0 R /XYZ 71.731 242.017 null] +>> endobj +246 0 obj << +/D [2443 0 R /XYZ 224.541 214.684 null] +>> endobj +2464 0 obj << +/D [2443 0 R /XYZ 71.731 208.491 null] +>> endobj +1460 0 obj << +/D [2443 0 R /XYZ 71.731 193.598 null] +>> endobj +250 0 obj << +/D [2443 0 R /XYZ 200.736 170.35 null] +>> endobj +2442 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2468 0 obj << +/Length 1442 +/Filter /FlateDecode +>> +stream +xÚÅX_oÛ6ϧð£Ä,I‰”4 ]’v–dHÜvÃ:²DÛBlɨ,ùö»#)ÛŠìØ²BòxäýáýîÎb +l2ú0„‰e4H—'t0ƒO'ÌqŒËh‹ççñÉ»~0ˆàÆÓA@Â^q"D0gygód¥U5qA=Fì8ž+;ùýzÿ¿ÙÅe™55ü{üëÉÅx-YpF|þ¬nŽ¥¯›?@‚DÝXÀ
ÁFH£[¦¦Ã‘¤Ô›)ý¹®U}§‚NËj™è÷·Ãó~¹¾_}¸¼øññúæòöÙO¨ È1F¤xrQ½}Q‘,ÕÁ z<Ïë/«,ÑÈMû'žŒî /*{Œ¬+õ Ÿ“Õ·§{â%²nÔ}y§²cÚb¯ìô(A÷ªÊ§xêN=6(ŸŽ÷ÔR²|¦jýþ…‹çŸ?]ÜŽê›dÙŃVE—æ>…¼ Wððîö´Êuž&·T홯ɢ9éB%ÕZN}Ô“¥eSèžÇêX“™zØíý'~Xª¼Ð!ï>r¾É #À¦`1Œ‚@~0§þ†1à€rJ‚È9ȱRËoà9Õ¿/$¢‘c»Tz^fŽIn •’ð2IYÀ +Ík›g–ö”™WJ7Uá6—”. x{ªHËL9γ›ßW—»Öàék +ó)ñ#y¤Í™ªÞÎæó‹›·°ï«ª0ìúw I„Y†„Š—Ûús?d†ÌCh–“¶`M«r¹çÈšÿ;¥\-œ˜rÚ²·J€_ÁQõÿæ(Tï5ü´ÃKyñj>Ú.ÙÊ9gØ}Ç|¹Ýu&Z7Í˦3qÊ$E«%`ôšÚBx;e䳈ð xyÛ¢¿ãiaÑAäBo%ù|ëm|?\¿ïG› ÆÄºYAÓd¶Ó²ÐI^ +zͤWŸZ +BÏœ¬`£4¥&yø*+LòE®È"³Œb«ÇJ +ý0¤¬†JóF§;*`€·±hÜ'°ß/†Áºäj¡rG¿æPæªï£Q&‹ün(Ûÿá3ö“ +¤mÉÛxݸñìq +N’ônp¸/ˆŒÄËóó_àø"^I8H5À‘ +endobj +2467 0 obj << +/Type /Page +/Contents 2468 0 R +/Resources 2466 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2465 0 R +>> endobj +2469 0 obj << +/D [2467 0 R /XYZ 71.731 778.968 null] +>> endobj +1461 0 obj << +/D [2467 0 R /XYZ 71.731 593.451 null] +>> endobj +254 0 obj << +/D [2467 0 R /XYZ 221.26 569.454 null] +>> endobj +2470 0 obj << +/D [2467 0 R /XYZ 71.731 563.257 null] +>> endobj +1462 0 obj << +/D [2467 0 R /XYZ 71.731 544.383 null] +>> endobj +258 0 obj << +/D [2467 0 R /XYZ 221.26 521.135 null] +>> endobj +2471 0 obj << +/D [2467 0 R /XYZ 71.731 515.974 null] +>> endobj +1463 0 obj << +/D [2467 0 R /XYZ 71.731 496.064 null] +>> endobj +262 0 obj << +/D [2467 0 R /XYZ 232.019 472.816 null] +>> endobj +2472 0 obj << +/D [2467 0 R /XYZ 71.731 466.62 null] +>> endobj +1464 0 obj << +/D [2467 0 R /XYZ 71.731 449.802 null] +>> endobj +266 0 obj << +/D [2467 0 R /XYZ 232.019 424.497 null] +>> endobj +2473 0 obj << +/D [2467 0 R /XYZ 71.731 419.337 null] +>> endobj +2474 0 obj << +/D [2467 0 R /XYZ 397.646 406.564 null] +>> endobj +1465 0 obj << +/D [2467 0 R /XYZ 71.731 399.426 null] +>> endobj +270 0 obj << +/D [2467 0 R /XYZ 226.64 376.178 null] +>> endobj +2475 0 obj << +/D [2467 0 R /XYZ 71.731 369.982 null] +>> endobj +2476 0 obj << +/D [2467 0 R /XYZ 388.132 358.246 null] +>> endobj +2477 0 obj << +/D [2467 0 R /XYZ 484.822 358.246 null] +>> endobj +1466 0 obj << +/D [2467 0 R /XYZ 71.731 340.213 null] +>> endobj +274 0 obj << +/D [2467 0 R /XYZ 226.64 314.908 null] +>> endobj +2478 0 obj << +/D [2467 0 R /XYZ 71.731 309.748 null] +>> endobj +2479 0 obj << +/D [2467 0 R /XYZ 301.657 296.975 null] +>> endobj +2480 0 obj << +/D [2467 0 R /XYZ 185.125 284.024 null] +>> endobj +2481 0 obj << +/D [2467 0 R /XYZ 279.202 284.024 null] +>> endobj +1467 0 obj << +/D [2467 0 R /XYZ 71.731 277.635 null] +>> endobj +278 0 obj << +/D [2467 0 R /XYZ 248.159 253.638 null] +>> endobj +2482 0 obj << +/D [2467 0 R /XYZ 71.731 247.442 null] +>> endobj +2483 0 obj << +/D [2467 0 R /XYZ 119.552 209.802 null] +>> endobj +2484 0 obj << +/D [2467 0 R /XYZ 309.707 209.802 null] +>> endobj +1468 0 obj << +/D [2467 0 R /XYZ 71.731 202.664 null] +>> endobj +282 0 obj << +/D [2467 0 R /XYZ 248.159 179.416 null] +>> endobj +2485 0 obj << +/D [2467 0 R /XYZ 71.731 173.22 null] +>> endobj +2486 0 obj << +/D [2467 0 R /XYZ 155.248 135.581 null] +>> endobj +2487 0 obj << +/D [2467 0 R /XYZ 345.403 135.581 null] +>> endobj +1469 0 obj << +/D [2467 0 R /XYZ 71.731 128.442 null] +>> endobj +2466 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2490 0 obj << +/Length 1494 +/Filter /FlateDecode +>> +stream +xÚÍXmoÛ6þž_á}²ÄŒHêµÀ>´^ÚuM×"u×iQÐ2k‘%’Òæß,ÉŠÝlX»!@øv¼{îx¹ðGG!%!‡&ŒHD£ds⎮aåÙ µS+2íÈ<™Ÿœ=åÞ(† >š¯Fžë‘Öˆß÷Fóå•3[‹m%ÕdÊ|סĴóµ4ׯ&ðÿ¼,–u&'翜œÏw–}F gG±Y‘6ÆZl”Æ€ ôøq½@cC`íì©ÇF¸3@Aæ/â %®eõ«üR½Ý.Eee»JCFB7´²/eµ.–V(h…¦1'4MiHb@‰¢Ïsð˜FŽ0M²ùµ4ý•*6Ø‹’æ;·ê¤E]šI%3)J˜’å©™YÊìT°Pä¥+ÓnU‰Eš¥Õ5™/M§*Ì#ð¯H—FåôeÜ×e_L7-ËZZCŸÓjmM©b1E÷!SÊHìg3¹AÙØwRt;öœ:7R±È¤™¯Ò4+«:Oª¼8µ+ëÔîµ+€,7JVµÊíª0ÛßÎgó C«¹¬Tš_3x?¡¼¬l"¬¢ºl`¬÷P˜³ä¼MŽÆ3ª=Cܬ®’á™{>ñYlCGò;ÆšúŽT•™l…i`ÓOW¦½Ó¡“¥7à‚c¹ƒ'9 +¢Ùc¨ƒ“†:š7Zycæ1Ý
upŒÔAu´I¤J`À†upiyƒ‹å
.6¼ÁiÍ›!YD–0,6„¶G[Â@¯G\1„žHtl[Ùq‘Û-[¡ÄFâÉh· Óôù-`ÐáŒ\Ù 29±G’ÃdÂ´Š›Týþ\‚à +ð˜0ï˜Ew»„ÖšëR\Ëa@¦ðò +q5ÁB-´Êãž®Žíq™^çfO¸ùÕŒõÖioo¨÷ʬ”ÿDq^èŠö´wŽ@AÎ'B—ÞQ ×H í¢¦Å½¡2u-Å]Ê2HÀÍ$˜@Mhæa¾@À…M޼Þ,ðu5)lí Â7ZòÈ9vÕâ[d§¯r‚j쵇ÛQþÈ7ª¯Ü{ùÕ'ߣ9I²¢”G€5<Û+œ‚Á/öðç×7«AÐÖèƒ);k®j=õg-óÄŽôh›4ø`2¥×jH „§øPJÜñú&Äi]´ÚÆì¬½ÿ;—-B¸lÝ]>ß[w<¨¶nSwÊuQgÖøÂ¢¦ÉÒ²²°•5¯kŸ>pî†ðl{O¶{ë¡KÂ(~H9ôcBÃæ,î«mv–¶àk¥üÖ¥M¥·@”c•iÕÈJ>¬¸ý*æçÿ´bö/3àAƒhOô
^>ÿíñü¼k±=®½êIÆá(ËC>ßWµ1Çgjp
w +M.6ý¨_=†íx¶‹ó³'㧦j]ßÌwó?ÃEfY®S%Qdï#‘ý:åE$¢áÑïWÈàó•qæPѬ‚¦ìÀ稡¥¿ +Šendstream +endobj +2489 0 obj << +/Type /Page +/Contents 2490 0 R +/Resources 2488 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2465 0 R +>> endobj +2491 0 obj << +/D [2489 0 R /XYZ 71.731 778.968 null] +>> endobj +286 0 obj << +/D [2489 0 R /XYZ 248.159 758.046 null] +>> endobj +2492 0 obj << +/D [2489 0 R /XYZ 71.731 751.85 null] +>> endobj +2493 0 obj << +/D [2489 0 R /XYZ 119.552 714.211 null] +>> endobj +2494 0 obj << +/D [2489 0 R /XYZ 309.707 714.211 null] +>> endobj +1470 0 obj << +/D [2489 0 R /XYZ 71.731 707.073 null] +>> endobj +290 0 obj << +/D [2489 0 R /XYZ 248.159 683.825 null] +>> endobj +2495 0 obj << +/D [2489 0 R /XYZ 71.731 677.628 null] +>> endobj +2496 0 obj << +/D [2489 0 R /XYZ 155.248 639.989 null] +>> endobj +2497 0 obj << +/D [2489 0 R /XYZ 345.403 639.989 null] +>> endobj +1471 0 obj << +/D [2489 0 R /XYZ 71.731 632.851 null] +>> endobj +294 0 obj << +/D [2489 0 R /XYZ 232.019 609.603 null] +>> endobj +2498 0 obj << +/D [2489 0 R /XYZ 71.731 603.407 null] +>> endobj +2499 0 obj << +/D [2489 0 R /XYZ 242.41 591.67 null] +>> endobj +2135 0 obj << +/D [2489 0 R /XYZ 71.731 589.513 null] +>> endobj +2500 0 obj << +/D [2489 0 R /XYZ 71.731 556.771 null] +>> endobj +1472 0 obj << +/D [2489 0 R /XYZ 71.731 309.03 null] +>> endobj +298 0 obj << +/D [2489 0 R /XYZ 232.019 283.625 null] +>> endobj +2501 0 obj << +/D [2489 0 R /XYZ 71.731 278.465 null] +>> endobj +2502 0 obj << +/D [2489 0 R /XYZ 386.952 265.693 null] +>> endobj +2503 0 obj << +/D [2489 0 R /XYZ 130.341 252.741 null] +>> endobj +2136 0 obj << +/D [2489 0 R /XYZ 71.731 252.553 null] +>> endobj +2504 0 obj << +/D [2489 0 R /XYZ 71.731 217.842 null] +>> endobj +2488 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2507 0 obj << +/Length 1891 +/Filter /FlateDecode +>> +stream +xÚ¥isÛ6ö{~…¾IîZ(Né‡lì4i›Ø+ÍÎ$™MÂj‰Ð”ï¯ß÷ +x‹•©ßo‹¬q–<OªûþÖt ùSÐfY"ж2 +ˆ$ènV¶@Q‡¥RDad1I…è³ì&–@.Š5ô¸ÕzHN‚`©P›Ï.)8eÌG¥zÒ3ÖR25¸q¢f·Y}Æfºð3[úo3&oÄIB“޼_^¼ûóË)n‰ +’¤ {?!Që•õÊîÖ…—ê6H—•þkʺÉÊ<¬‚}¬Ò„ÄÆžÔóúq‡ªL>d©"“0+ÃÜ–Mf·,¨Æ%?îj:RíYû‰„r"¡‡Iôƒ™Í>$~{ò͉˜žKè‘bÞË#'µœ&5ÇAÍQPsÜSs<®æRDôcj*î«9îª9òjއž‹ãúî{§$4nOU˜¥®›‘”&I"Z1LY˜XÔž‡'ÊÌÇ¡`¿nn8D8:اB¿VÛºäÍÍv×è£[eõªÚñ9à<ø|sš›-¡Ð'~g×k‹ªüj€}¹üe¨98øÖœG$ISïaüËÅëß.oûÜA …Ð÷›jlÓ;øÍ«ç§1a“Þ}÷úúòÍ‹hä(¤’Êpø~@eEqùÑeæŒâNI=Y “˜$Çõ“½ŒÒÙ«¡ÃsS`60ˆd”x¯ÝKà¶ÐθÕì©@
óéT’(j}Z·DÞbùH,¢¹ “8®«0@'ñìÃBOÄ9@ã)tEª9tt>cˆrˆGù%•>¯À×”
j
¹.¡ÒH:;÷ÌîlåMµÓ-ª£!fô$_gµÓ”t!ºû+[ïÆ”—.Ոȷ-Ͻ†ìV.ƒ´—ïBЀܣdÚ+±ºÌmá +8—!™!g7u
|}5‡Á‘ÜÚ¢Ýô÷!žÆóK›$.7º
@®Øça1ËaZÀ%ë¿W[]ÞÜüÙkØ!W0QŽÖã+C3vû&löfŒF[ï´·ƒ@5YÔ =ckˆ•Î +¼#ÙO”òµëµ¤ëR?¤zw`ìíaܤ¶»*…ûÙÛ3ù9t—B¤³×}Éáø +>á={n²¿-xü#^æ|á7öൟ!ß|á,«ôaÙ
|ßÈeâº<¿·?,4Ñõ|85åH¦†Ê’¶ÁÂ{çk ßµH!—·¾ÎÈÁíÎKRX¿€þº+ý{ +L· §µÞÔ^!ÿr¯v¸@…ÙdýbäÚX[5¡¨97‡kc´“}ñâ™Ïå—ß2è”6É0³+¸¥'»è'v*Óþ-(æl9â óT¨as7Fæ« Síè[È•).²&Ãkí7NËMép}ƒ‘;tÙÐAÂÓÂ`äÚêS>>1N=Ïð䨇û6pthÎ’É¿yHB{=ØöRž \îß¡Þÿ1í_ÏÏ/&²:WªwÂqîÐ36úªº®ìƒ)sd¡¿/IGŠWºjêÓ‚ÐÁVˬ4ÿÍW-Q„ÿƒÿѫ݈ §^‚NYc³ñEû {Z„ð +èglu_‹±FiI²ã7Îð¸*è`â'Ÿ_ ƒ×WgÄî=€àQ™8ñš:äô?QŸ¦æendstream +endobj +2506 0 obj << +/Type /Page +/Contents 2507 0 R +/Resources 2505 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2465 0 R +>> endobj +2508 0 obj << +/D [2506 0 R /XYZ 71.731 778.968 null] +>> endobj +1473 0 obj << +/D [2506 0 R /XYZ 71.731 531.596 null] +>> endobj +302 0 obj << +/D [2506 0 R /XYZ 210.5 506.191 null] +>> endobj +2509 0 obj << +/D [2506 0 R /XYZ 71.731 499.995 null] +>> endobj +2510 0 obj << +/D [2506 0 R /XYZ 137.879 488.258 null] +>> endobj +2511 0 obj << +/D [2506 0 R /XYZ 211.096 488.258 null] +>> endobj +2512 0 obj << +/D [2506 0 R /XYZ 309.018 488.258 null] +>> endobj +2513 0 obj << +/D [2506 0 R /XYZ 475.944 488.258 null] +>> endobj +2514 0 obj << +/D [2506 0 R /XYZ 227.167 462.355 null] +>> endobj +2515 0 obj << +/D [2506 0 R /XYZ 248.288 462.355 null] +>> endobj +2516 0 obj << +/D [2506 0 R /XYZ 365.697 462.355 null] +>> endobj +1474 0 obj << +/D [2506 0 R /XYZ 71.731 455.217 null] +>> endobj +306 0 obj << +/D [2506 0 R /XYZ 199.74 431.969 null] +>> endobj +2517 0 obj << +/D [2506 0 R /XYZ 71.731 425.773 null] +>> endobj +2518 0 obj << +/D [2506 0 R /XYZ 71.731 425.773 null] +>> endobj +2519 0 obj << +/D [2506 0 R /XYZ 237.366 414.036 null] +>> endobj +2520 0 obj << +/D [2506 0 R /XYZ 397.801 414.036 null] +>> endobj +2521 0 obj << +/D [2506 0 R /XYZ 71.731 383.152 null] +>> endobj +2522 0 obj << +/D [2506 0 R /XYZ 71.731 383.152 null] +>> endobj +1475 0 obj << +/D [2506 0 R /XYZ 71.731 333.076 null] +>> endobj +310 0 obj << +/D [2506 0 R /XYZ 242.779 307.671 null] +>> endobj +2523 0 obj << +/D [2506 0 R /XYZ 71.731 302.51 null] +>> endobj +2524 0 obj << +/D [2506 0 R /XYZ 314.22 289.738 null] +>> endobj +2525 0 obj << +/D [2506 0 R /XYZ 119.552 276.787 null] +>> endobj +2526 0 obj << +/D [2506 0 R /XYZ 345.856 276.787 null] +>> endobj +2527 0 obj << +/D [2506 0 R /XYZ 225.629 250.884 null] +>> endobj +2528 0 obj << +/D [2506 0 R /XYZ 338.136 237.932 null] +>> endobj +2137 0 obj << +/D [2506 0 R /XYZ 71.731 222.824 null] +>> endobj +2529 0 obj << +/D [2506 0 R /XYZ 71.731 190.082 null] +>> endobj +2505 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2532 0 obj << +/Length 1528 +/Filter /FlateDecode +>> +stream +xÚµX[oÛ6~ϯð[dÀfDRÔ¥À€uY;th× õÖmÈs‘%W¤šf¿~ç”ìXÎe† +JR<£HIÅÖ·šMçq?¸ås(ÂÓvU¤Œý–oäéÌ‘O·à,
àWz×uSÿx—¯›†Íæd(zŽÌ)%±ðšùXsתAåژ틳³Û[Ô|K¶sMšöšt7*ŒÆ +ÕÅ˲l¥Ö½Z¤ÒŒ¡ÎÓ
Ù ¨q_+ã„Snµ*;¼›=Íï?’íúNÞàªj_Vñ@íxçô-
2}ªé¬f³šÏÐk|y@ªh+’—å«ïFÖZ55Êz|P!ŠÊÞxÄЯޢi>˜VÕ׃o=ÖÞÙkÆvÑ9猰$›Ì#à +I”rpÖ:Yɼ\Ôcµ)'È9îwÒ¬›Ò3Å{¶iÈIqšbÕWÚEþƉÙgkÐÓMŸ'Ú´St…éZO¹]«bí×MU +È)Aïµ#š¶gêíž_¾%ãÁ-ñð4y.DMW›'!Jž‘xBêDêo€È¿4«1€ÿz`ñ +ïò~Š#h©g=‚åœeÐyþ/!Ýn¡,˜±:. ÷Ó§À‚þ_Ñ„HÙäÆÈr>¨QþyÝ ´·a@VÕVÒ!·–UÙoðÞK\(©™}àe$l„
¡3[” +‡D-[•Wvˆ¤A „³â‹#Ãé
ÍùgÇ>É«w¼Fmž¥ûƒuè¸öd¤}Çû'Šsò£Vgl /(d 8\û™ºh•Q…G¢—ù#¯º§Ïr0(ï&òCïNu0=>,7ÆîÞ©”ú>xz8Hø±)ž9Gô±3Ö ’†ONqL`€96ÔÆ[Ÿ›KílC×Á¤è”H!wdŒyG¸<Öõe˜oT5ƒu’ö㘜±«<"i60]SD›X¾Ñ„e°BýÂ_ÃXó®eÛï•c»ðó“ð˜y•˜lc«0ŽP>¶ŠP`ðµ‹ÇœÐä~íBƒ¶ôü¾8_`/‚tÛ¶Èágÿý"JaLNý±c}àˆØ³ #4zàƒÅØÒ?ãgŒ§endstream +endobj +2531 0 obj << +/Type /Page +/Contents 2532 0 R +/Resources 2530 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2465 0 R +>> endobj +2533 0 obj << +/D [2531 0 R /XYZ 71.731 778.968 null] +>> endobj +1484 0 obj << +/D [2531 0 R /XYZ 71.731 790.923 null] +>> endobj +1476 0 obj << +/D [2531 0 R /XYZ 71.731 671.471 null] +>> endobj +314 0 obj << +/D [2531 0 R /XYZ 258.918 646.066 null] +>> endobj +2534 0 obj << +/D [2531 0 R /XYZ 71.731 640.906 null] +>> endobj +1477 0 obj << +/D [2531 0 R /XYZ 71.731 623.053 null] +>> endobj +318 0 obj << +/D [2531 0 R /XYZ 258.918 597.747 null] +>> endobj +2535 0 obj << +/D [2531 0 R /XYZ 71.731 592.587 null] +>> endobj +1478 0 obj << +/D [2531 0 R /XYZ 71.731 574.734 null] +>> endobj +322 0 obj << +/D [2531 0 R /XYZ 242.779 549.429 null] +>> endobj +2536 0 obj << +/D [2531 0 R /XYZ 71.731 543.232 null] +>> endobj +2537 0 obj << +/D [2531 0 R /XYZ 346.767 531.496 null] +>> endobj +1479 0 obj << +/D [2531 0 R /XYZ 71.731 524.358 null] +>> endobj +326 0 obj << +/D [2531 0 R /XYZ 210.5 501.11 null] +>> endobj +2538 0 obj << +/D [2531 0 R /XYZ 71.731 494.914 null] +>> endobj +1480 0 obj << +/D [2531 0 R /XYZ 71.731 471.058 null] +>> endobj +330 0 obj << +/D [2531 0 R /XYZ 250.364 443.725 null] +>> endobj +2539 0 obj << +/D [2531 0 R /XYZ 71.731 437.532 null] +>> endobj +2540 0 obj << +/D [2531 0 R /XYZ 169.826 385.942 null] +>> endobj +1481 0 obj << +/D [2531 0 R /XYZ 71.731 370.833 null] +>> endobj +334 0 obj << +/D [2531 0 R /XYZ 200.736 347.586 null] +>> endobj +1482 0 obj << +/D [2531 0 R /XYZ 71.731 219.652 null] +>> endobj +338 0 obj << +/D [2531 0 R /XYZ 221.26 195.655 null] +>> endobj +2541 0 obj << +/D [2531 0 R /XYZ 71.731 189.459 null] +>> endobj +2542 0 obj << +/D [2531 0 R /XYZ 323.337 177.723 null] +>> endobj +2543 0 obj << +/D [2531 0 R /XYZ 458.594 177.723 null] +>> endobj +1483 0 obj << +/D [2531 0 R /XYZ 71.731 157.633 null] +>> endobj +2530 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2546 0 obj << +/Length 1785 +/Filter /FlateDecode +>> +stream +xÚ½XYÛ6~ϯð[m`Íðu<ô¥›MÑ"i‚]·iÑ…,Ó+%¶äêH6ýõá²eËÙ
º ‚¬xçâ|3C‹ ‡b )øD1KÂx’mŸðÉ-ìüøD8й#™Ðü°xòô¹ +& ,¨Éb= xÀ"Ø‹bÉ´&‹ÕŸÓË<ݵ¦žÍ¥æSÁè»È
^¿šÁß74yYº™ýµøùÉÕ¢—¬¥`J~V7Gr¢›”{Ý„H@'à£cƃÐê†j€´§Ï9Á“!J΂Xc¤¸5í³´uT‡ì ’±£ziÚ¼Z9¢pO49K(("–€‚HûS ÆŠxšÒ'ËÓòÖÐx]W[%Ó]mfRO?ÌÄ´¨º†k³1iK¦¹ •uUÓÉ6ª²¡Iµ¦ï®ªÛtYlŠö“Y®hÐV^ÉAü©Š±ÌZ»‰§{˹¼£aÑ4q‚>mîDÕÕrŽöƒCæB²D“±³EÚDO4; ¦] férch½-¶†vÖ]™µXqávòÂu; YIµi»ºt»)ÿuq¹˜)´uœ›¶.Ê[F“?fB€•Ñf©cÔ5^üHºL¥öqá-Ö2Ô[vmvzéfZ&.2¬!´3à ¯…žšº¥E¿™Ò‡¦q±¦ï'«26Å{0aê`ƒ7y¢ ‚&$t“Ö¹£ +ª#ý–iöžFù\*ÍÂXOæŠ3?5Í#¢Fõ¨QÚ¢Fé¤G
.jpuW#8,p5¸H¨±±ÔZÇH'ÔàQƒÔX‘ˆ¤@_‘ÔàVn!ƒ›žÈA7=dpÙBæ'ˆ‡™Và;À +ÌV`4À +îV`”f¶kݼ*Ý‘]Z§[ƒ™âÐKé3„,ì¡“èÀŒ ƒÊ5^+ +‡#|œÇFTâ£ôÛÜH↤ÏB *¨Š¿IPnL]¤›S†Z0ß‹%FC,-(X@Õ-²cäV[_œ’<—A2-»íÒWqŸ£„0ÆÀ7Ç´Z{J/²Z¾3Y;âþå9æy¦9ãˆ$góWqÎa@Ê0bq({Óì>0IA÷yš¼ê¼ eë^EÈÍ€ [ÐYëéX°*.Yˆ-ÕÝIºZ]ݵ¦lzà2”Œî»–,vLt+Š'ýàd¹U4KYDƒM½x»e³1÷ùG¾±Â쥘¡ÆÜ
}¬H§ªñ<IÇ’@¤É‘ÛQº„RЖ˜~Gô€œ1)Ô VduÑÙØýC:ƒG +“²Å|µ14¢¥¶âë½`;ðÆØISuuæ6VÜ_µDÄuó´J¨£Ûkæk@~,÷¹MßU5½_jÑð›aêmì+$ 4Á…8š´6ûe;hìMÊ +¼o˜Ž}2xýê
ûú¾fÄ‹œÅ‰}g¯cë§64YU´€ñÚ•ô<’}h"Ãr«F_ŸÒOÃÜþ{h]s×(a˜ØŽìZ =ϯîÒín㘈yÌNS<<˜U"Φx5Lñ<ð.8¬¡]“ÞŽDè<QL„ ÔbÈ¡xŠž²3xðé÷ôAŸïÞwì²Þ\ÏæÐã#É[®9ü=|€‡x0(ÜH$ÎR}ð%àÀ*äoy“ìï.¯_\[vß]Ð +w_'¤nlzêÕ±›^äqY•LF² ~’¬ª<`êÞéÍ)ÛX± ¼·° +® ŒÐïXy'T@]oqy‘¹hË«ÍêøÀQ–Ä%*ƒŽçl9þ?¡ÅÔ7tØþçˆÇŠÍAÞ:væ×õ$\Õ#9ÞÚÓ=Ø‘î9×v}z‡í?]áìÄÚnÊöÈYý3·é›ìÓŒ.±«Òç›ÖÝCh2´Ïh{wBI´¦-ÐvC¦ ]ëSPÎ"¬<§ß5OnÚª6#CÁéµ»„N«s)”vŽÁ VÉäȧ™=Dþ¨+ŸÅÊô+fSl¡Òá}®Šà¯þ„Çö'¨/ÜÛ»ÀºIˆu!‰(Íð‡“Â4ìøW\÷óqC$DŸýyOròû²')y.h´Ðg~/>•ôövendstream +endobj +2545 0 obj << +/Type /Page +/Contents 2546 0 R +/Resources 2544 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2465 0 R +>> endobj +2547 0 obj << +/D [2545 0 R /XYZ 71.731 778.968 null] +>> endobj +342 0 obj << +/D [2545 0 R /XYZ 215.88 758.046 null] +>> endobj +2548 0 obj << +/D [2545 0 R /XYZ 71.731 751.85 null] +>> endobj +2549 0 obj << +/D [2545 0 R /XYZ 119.552 714.211 null] +>> endobj +2550 0 obj << +/D [2545 0 R /XYZ 309.707 714.211 null] +>> endobj +346 0 obj << +/D [2545 0 R /XYZ 215.88 683.825 null] +>> endobj +2551 0 obj << +/D [2545 0 R /XYZ 71.731 678.664 null] +>> endobj +2552 0 obj << +/D [2545 0 R /XYZ 155.248 639.989 null] +>> endobj +2553 0 obj << +/D [2545 0 R /XYZ 345.403 639.989 null] +>> endobj +1485 0 obj << +/D [2545 0 R /XYZ 71.731 632.851 null] +>> endobj +350 0 obj << +/D [2545 0 R /XYZ 226.64 609.603 null] +>> endobj +2554 0 obj << +/D [2545 0 R /XYZ 71.731 603.407 null] +>> endobj +1486 0 obj << +/D [2545 0 R /XYZ 71.731 584.532 null] +>> endobj +354 0 obj << +/D [2545 0 R /XYZ 226.64 561.284 null] +>> endobj +2555 0 obj << +/D [2545 0 R /XYZ 71.731 556.124 null] +>> endobj +2556 0 obj << +/D [2545 0 R /XYZ 387.414 543.351 null] +>> endobj +1487 0 obj << +/D [2545 0 R /XYZ 71.731 536.213 null] +>> endobj +358 0 obj << +/D [2545 0 R /XYZ 242.779 512.965 null] +>> endobj +2557 0 obj << +/D [2545 0 R /XYZ 71.731 507.805 null] +>> endobj +2558 0 obj << +/D [2545 0 R /XYZ 323.746 495.033 null] +>> endobj +2559 0 obj << +/D [2545 0 R /XYZ 119.552 482.081 null] +>> endobj +2560 0 obj << +/D [2545 0 R /XYZ 345.856 482.081 null] +>> endobj +2561 0 obj << +/D [2545 0 R /XYZ 225.629 456.178 null] +>> endobj +2562 0 obj << +/D [2545 0 R /XYZ 338.136 443.227 null] +>> endobj +2138 0 obj << +/D [2545 0 R /XYZ 71.731 428.119 null] +>> endobj +2563 0 obj << +/D [2545 0 R /XYZ 71.731 395.376 null] +>> endobj +1488 0 obj << +/D [2545 0 R /XYZ 71.731 345.792 null] +>> endobj +362 0 obj << +/D [2545 0 R /XYZ 258.918 320.388 null] +>> endobj +2564 0 obj << +/D [2545 0 R /XYZ 71.731 315.227 null] +>> endobj +1489 0 obj << +/D [2545 0 R /XYZ 71.731 297.374 null] +>> endobj +366 0 obj << +/D [2545 0 R /XYZ 258.918 272.069 null] +>> endobj +2565 0 obj << +/D [2545 0 R /XYZ 71.731 266.908 null] +>> endobj +1490 0 obj << +/D [2545 0 R /XYZ 71.731 249.055 null] +>> endobj +370 0 obj << +/D [2545 0 R /XYZ 242.779 223.75 null] +>> endobj +2566 0 obj << +/D [2545 0 R /XYZ 71.731 217.554 null] +>> endobj +2567 0 obj << +/D [2545 0 R /XYZ 346.767 205.817 null] +>> endobj +1491 0 obj << +/D [2545 0 R /XYZ 71.731 193.698 null] +>> endobj +374 0 obj << +/D [2545 0 R /XYZ 237.453 166.365 null] +>> endobj +2568 0 obj << +/D [2545 0 R /XYZ 71.731 160.172 null] +>> endobj +2139 0 obj << +/D [2545 0 R /XYZ 71.731 145.279 null] +>> endobj +2544 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2571 0 obj << +/Length 1779 +/Filter /FlateDecode +>> +stream +xÚXYÛ6~ß_á>Ä\RÔ Éb·H‘ Ab$šÂ mÚVcK®De³ÿ¾3êZ9Ž{ ØðÎ|œã#e1áðOLbÁb Mœ°4J&«ÃŸlaå—+á$fNdÖ“y9¿º¹—Á$… 9™o&Xkqâ³0&óõïÞíN.§3?äž`ÔÎwš:ïÞNáÿO4xS¬ë½žþ1ÿõênÞZ}Á¤›có;lB¤€ ô„ ãAd±Ý}S‡ãÞA³”¡í›ûÀŸ ž·´LÁ +Šyº¨LQj’ë«#æ'àj¯ªŠ´Ö•Ú6â²S;“àŽDj÷ÞYĹ÷35ïÞ~b¿É¸ò™‡þª+3_2)|²¦î³ýpkqÔ9î ѵѕ¹Y©éLx+]vÔ‡ëgn¼¦N_¹ +óxÔÕ¸Èù À) ݶªiHçÑP¤ƒJXkçûÅ"Ë3³X4az~"Zá.D½óá±/Ü ŒåÝvÜiU4¹é–Ï«ê×%êoˆGn˽·
I?‰Gã#?d¼JF¬ís$Ò±qã¼±¾ d OœØmvÅÚ E=£P{ +·ŒˆY*}g4ƒPJ.½U‘WSᙲ^A@iΨ/SÁ=íDò[ßSåT$Þ¶>èÜTŒÖZôý¼1g~ì`u¹2B +ÀõKr¥6u™cÆ[X +@åyah¸ÔÔÖ øÀlìש=÷,ßÒšûgÎý•¡n9\WÂgiØ\:F7W\n²=u•¡v¯UåºEîîWÇ +:5/6ø0krM[ )©v¬ûd³$ºoptëˆDžðS¦öûGšv>ò'LQ +ðùEÃ+œ(ZFaGÑ2 +ðœvÒ–=vNñ²ÝUjÚAÔ±¦Ù6Æ8 tZ¶ÆÁ|ç6)‹‰š¬¦¡}8dËØÖüÆæƒ”ùŒÂó=þ1cçHKì”:"èEIÈ1;£²³]ìØ§ Gþ‰†q²cgkeŽiVMçÜÞ]ƒê“6ðfCÚö‡™Ì=ÁÒí
oì»8 ÷/¨zÌÓ6P}Ž´Ïj‘‚>ôd’"W¤^UÔÖ±0÷WífM©²íÎÐÄøa¨rMË]2B»Ö¼Ð
¹.uîóQ 9ÓUU@X\Sâ%»BÑ|¶ÍÕìÄEoqM‘³ÕÊm
àÀz“ÚPNpé&\Ú?ÒÈd‡F¾8êVC¾e4EƒÊÕVã†3Ú6"Ù8˜0O +e©>žÔ¼¿K]UÍ£}éâýuê#dEíÒ壤V#êop(øü¨2ü8¢¼!ž³/úÒe ==ðK .K€ÜäRUEiܳ¿ÿS û
Š6ª<÷+e'2ú‘2„¯OO~'‚‡Ñw~t[úU†Åendstream +endobj +2570 0 obj << +/Type /Page +/Contents 2571 0 R +/Resources 2569 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2591 0 R +>> endobj +2572 0 obj << +/D [2570 0 R /XYZ 71.731 778.968 null] +>> endobj +2573 0 obj << +/D [2570 0 R /XYZ 71.731 746.061 null] +>> endobj +1492 0 obj << +/D [2570 0 R /XYZ 71.731 526.614 null] +>> endobj +378 0 obj << +/D [2570 0 R /XYZ 200.736 501.21 null] +>> endobj +1493 0 obj << +/D [2570 0 R /XYZ 71.731 420.26 null] +>> endobj +382 0 obj << +/D [2570 0 R /XYZ 221.26 395.904 null] +>> endobj +2574 0 obj << +/D [2570 0 R /XYZ 71.731 389.708 null] +>> endobj +2575 0 obj << +/D [2570 0 R /XYZ 289.822 377.972 null] +>> endobj +1494 0 obj << +/D [2570 0 R /XYZ 71.731 359.939 null] +>> endobj +386 0 obj << +/D [2570 0 R /XYZ 210.5 334.634 null] +>> endobj +2576 0 obj << +/D [2570 0 R /XYZ 71.731 328.438 null] +>> endobj +2577 0 obj << +/D [2570 0 R /XYZ 137.732 316.701 null] +>> endobj +2578 0 obj << +/D [2570 0 R /XYZ 221.416 316.701 null] +>> endobj +2579 0 obj << +/D [2570 0 R /XYZ 318.607 316.701 null] +>> endobj +2580 0 obj << +/D [2570 0 R /XYZ 378.751 303.75 null] +>> endobj +2581 0 obj << +/D [2570 0 R /XYZ 432.032 303.75 null] +>> endobj +1495 0 obj << +/D [2570 0 R /XYZ 71.731 270.709 null] +>> endobj +390 0 obj << +/D [2570 0 R /XYZ 237.399 247.461 null] +>> endobj +2582 0 obj << +/D [2570 0 R /XYZ 71.731 241.265 null] +>> endobj +2583 0 obj << +/D [2570 0 R /XYZ 137.965 229.528 null] +>> endobj +2584 0 obj << +/D [2570 0 R /XYZ 222.114 229.528 null] +>> endobj +2585 0 obj << +/D [2570 0 R /XYZ 347.365 229.528 null] +>> endobj +2586 0 obj << +/D [2570 0 R /XYZ 127.708 216.577 null] +>> endobj +2587 0 obj << +/D [2570 0 R /XYZ 265.964 216.577 null] +>> endobj +2588 0 obj << +/D [2570 0 R /XYZ 119.552 190.674 null] +>> endobj +2589 0 obj << +/D [2570 0 R /XYZ 173.586 190.674 null] +>> endobj +2590 0 obj << +/D [2570 0 R /XYZ 71.731 170.584 null] +>> endobj +1496 0 obj << +/D [2570 0 R /XYZ 71.731 126.749 null] +>> endobj +2569 0 obj << +/Font << /F34 1292 0 R /F32 1191 0 R /F42 2168 0 R /F33 1203 0 R /F22 1177 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2594 0 obj << +/Length 1765 +/Filter /FlateDecode +>> +stream +xÚµkoÛ6ð{~…÷)2P³$%Jb€
Ø’ô14hиè€mIŽµÊ’ ÉMýïwÔõˆÜ¤6ˆŽ¼ãñÞw´Xpø‹@°À…O2퇋xwÂ÷€y}"ˆbE$«Íoë“—¯\o¡aÃ]¬7{, +¢°§¾,…rÒÚ2ÏJ"¨ê2N›†¡N®;ØÇU` !Is#Ù\o qúDÒlË}Þg±rÅ„Á ’i…1RJ_9Q߬hÚ¨ˆi·ÜÌE8¸Û#ö(®H ˜šH²úØdÅ=‚qª1ŠYL¬ÛAi¾¾³[ +,ºOq96`¬Å*£“ušÃ®qçܯêl—/pgÜÖGz.ÙF íÊ +¥͌dFÚ@:Í$ß5¸ˆ;£.Ñl”`½z÷äQK_"Œª*Ïz¹‘§#Yqëî@L˜¢ýÌÎ4 »mžë4áÿv¦„ô¶¶Û– 6›§sÁ³á$çyÏù¸ +2üÙÔTŠ)צ¦;JM9JMcjJLMó9ÿðÎ +èf2""èáóPí-~}€ÊE»dO¢šœó.»«£ÚHåiçn)¹³'R(„y@ŒY™“C‡´"ïÎË”’Løv,ئ_“±¯Fn€ñAsëPk/[÷FUzËx +VyÔ·ûaoÔ•ËÂ[¯Á¶´·)Mq2¦„qèìHg:4â³Pc^\]H[wlìqÆ…OHu‰¡%ëI¤ø6ßo¯/¯.„ÏG$c¹—ÔSîw†2fÞÿðbГ^CìÌ +rФ‘˜ëDð_äæ7ýkÂ;endstream +endobj +2593 0 obj << +/Type /Page +/Contents 2594 0 R +/Resources 2592 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2591 0 R +>> endobj +2595 0 obj << +/D [2593 0 R /XYZ 71.731 778.968 null] +>> endobj +394 0 obj << +/D [2593 0 R /XYZ 221.26 758.046 null] +>> endobj +2596 0 obj << +/D [2593 0 R /XYZ 71.731 752.886 null] +>> endobj +2597 0 obj << +/D [2593 0 R /XYZ 469.964 740.114 null] +>> endobj +2598 0 obj << +/D [2593 0 R /XYZ 189.876 727.162 null] +>> endobj +1497 0 obj << +/D [2593 0 R /XYZ 71.731 694.121 null] +>> endobj +398 0 obj << +/D [2593 0 R /XYZ 210.5 670.873 null] +>> endobj +2599 0 obj << +/D [2593 0 R /XYZ 71.731 665.713 null] +>> endobj +2600 0 obj << +/D [2593 0 R /XYZ 365.065 652.94 null] +>> endobj +2601 0 obj << +/D [2593 0 R /XYZ 481.171 652.94 null] +>> endobj +1498 0 obj << +/D [2593 0 R /XYZ 71.731 601.967 null] +>> endobj +402 0 obj << +/D [2593 0 R /XYZ 218.085 574.634 null] +>> endobj +2602 0 obj << +/D [2593 0 R /XYZ 71.731 567.199 null] +>> endobj +2603 0 obj << +/D [2593 0 R /XYZ 371.714 542.754 null] +>> endobj +2140 0 obj << +/D [2593 0 R /XYZ 71.731 540.597 null] +>> endobj +2604 0 obj << +/D [2593 0 R /XYZ 71.731 507.855 null] +>> endobj +1499 0 obj << +/D [2593 0 R /XYZ 71.731 451.596 null] +>> endobj +406 0 obj << +/D [2593 0 R /XYZ 200.736 426.191 null] +>> endobj +1500 0 obj << +/D [2593 0 R /XYZ 71.731 356.539 null] +>> endobj +410 0 obj << +/D [2593 0 R /XYZ 221.26 332.542 null] +>> endobj +2608 0 obj << +/D [2593 0 R /XYZ 71.731 326.346 null] +>> endobj +2609 0 obj << +/D [2593 0 R /XYZ 245.049 314.609 null] +>> endobj +2610 0 obj << +/D [2593 0 R /XYZ 371.117 314.609 null] +>> endobj +2611 0 obj << +/D [2593 0 R /XYZ 71.731 283.725 null] +>> endobj +2612 0 obj << +/D [2593 0 R /XYZ 71.731 283.725 null] +>> endobj +1501 0 obj << +/D [2593 0 R /XYZ 71.731 233.648 null] +>> endobj +414 0 obj << +/D [2593 0 R /XYZ 210.5 208.244 null] +>> endobj +2613 0 obj << +/D [2593 0 R /XYZ 71.731 202.047 null] +>> endobj +2614 0 obj << +/D [2593 0 R /XYZ 317.636 190.311 null] +>> endobj +2615 0 obj << +/D [2593 0 R /XYZ 398.813 190.311 null] +>> endobj +2616 0 obj << +/D [2593 0 R /XYZ 425.102 190.311 null] +>> endobj +1608 0 obj << +/D [2593 0 R /XYZ 71.731 183.173 null] +>> endobj +418 0 obj << +/D [2593 0 R /XYZ 199.74 159.925 null] +>> endobj +2617 0 obj << +/D [2593 0 R /XYZ 71.731 153.729 null] +>> endobj +2618 0 obj << +/D [2593 0 R /XYZ 256.417 141.992 null] +>> endobj +1609 0 obj << +/D [2593 0 R /XYZ 71.731 134.854 null] +>> endobj +2592 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R /F49 2607 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2621 0 obj << +/Length 1675 +/Filter /FlateDecode +>> +stream +xÚÕX]oÛ6}ϯð[e bER”¨{è’tí° A Ûȶk³%C’Ûùßï—’¥Hùö2¨èËËËûqxy>ðÏbÎb‰O¬YéÙrwÌî1óËw¾Sñ{:?ßž½û(ÃYœÝ®ga²s±L©pv»úÝ;ߤû&«æ¾PÇ}o7
®¿Ìñÿ7úqU®Ûlþçí¯g—·ÝÎJp&Å“¾9•‘oBœ|ã<O°£4ÂÈúfÜÀnï>†bfVFFQ,Ô†Æ*¿ÏꆔúÖ¤‚í”®²fS®œRtRò•bÊäŒÇ,´e^#Ú8ñv´Ê:ðª¬9T…›hlr u›[a¹&Y:çÞvKcRÄä*mRýØäË
7iM²E–$ÚWå2«ëlÅè·s:ëC±lòÒé-Ó¢]Ú +¶ÛÌFˆ}.X¢(œ´¡ÒaWÞ‘~4ù.kÅ+üÈÓ¥[’çBykÄ“-¨ia‘€L‘º%uS–H›´©pÚ6çRöª'x<U¾^e¤Áiâ”ÊÅ_ð€uEæá)[@E,ÖÑÌ— •†°c·
™Š[ƒŸvéršH[Ïηi]OAF²Ÿ#"‘ yK»ÃØ”Òdü{¾ÊÜdº4µ¥qS’–CHä}ºú0ïœ~µÕN·ys$M›TL}ÙgÅÍÍol¸ìÍ\)ÏíœVÎfJŸï¦Œi•§EãL4qJ~nZ¤€ ©!÷Z·¸W¿%I‹`7é\°8³@8ÖóâžÈÇ>«:’€P—4oóe…Öbë,á+”ÛdÛ_ +ÜeËCe2)ÑT/Æ‹šWy½<˜s5qBÖ‡ +^W-®éûõã9
GË·˜Š…êa9ÕÞueRR6esÜgõþf!g'ä8¼DA@˜´£÷ÖIh)hù€g¤¨®p"ÆÝ]^äÍÝÝ +Ì>oIüw†ÔrRþ¾tbùa~”™Å¦/=«¾,÷G£<VŒ‡Šˆ` 7L™ßFd¾°¿·¡Ží…ŠéàÙþ ’¶ÃËþqÕ +‘ÔºÊÊ *Óí§Ò§°ü1®&G,ÍcÔVz. óH¥´2k–.Yöi•â¶G;$‹â¶'™ì›F·öëMyØ®Èê"Hé0êжýñV(i,œ!«gbq{@ø2F"=8X‹ö:(&î;X—ÛmiSÏÞOÜ,Ñ0Ó ˜«qwñù—˛ۈ®å&Õã“7Ÿ>LMFí$|é×Ï×—W< +z*±Ýyª—B›ŽáB]ÀFb;ê¢ÚÓ^/põ‰;¼~Á%Γ„ÅèÅ}À°o™F³[cÝ‘:C—Æ© +›0ˆ§-ô\êNŠ +:¤¦]*€Ç‰®ïKÃcQP_Lê—rTÓ@ÇÆàŒÐÏ–9Š'êƒ2Ÿê)l<çAËúp¿zOUâœEê•EJŽ +Ó±zešú¤lÐÝ‚ä¹,ýÉDLvyÝãñ‰ÍÒ@‰Ò•×Þ‰6àqùÄK‰Èë“ZK䓎A舼n‰¼~@ä1sò¦GäµáíðÆnÿ+—=búD^E,ñ+‰üÍq‡êVù›8áÈÓl^cW¸ 6Æ›Gl’ŽÍ‡šØ¼‘Ù¼‡-Ç î$‹ùTÓY°\«
£Ga©‡à3Oê_Cš:¬„•}ãdÍmdÊæOpy×Ò¥Ô–
›/xøº¬v†â›Ÿ[\oiXÛ£ÞØ{¿Æ]"”¸Û>›Ëê¸oŒÇãìF‚©î=UNC"»WÞ*{©©6:(Îu›+퓺.(ËRðbkUƒCUe˲Z‹B8#Bv©µBP!FâÏ
‰¬ø½/ë:o+F``ªìP·¢É“ƒW… +ä#0î®"9<?Î×ÅѹŠ,b7Ú#Æ…†/,”Lø…©”,Œ’²ž.˜)m{»¥÷sÐмh/íþ]á}ܨÓå?én¿u
ˆ›§Æøæˆ$“Y}¿¾}ôîö@VT§÷uñ5:Z ´=í7Uj +jž9?ÑçÍîHƒíÖyOõÍÄ‹j·R×_¾±û7Ϧ“ìʼâN\ÖÊÍ£jâí“ìôœ#Õ¡¿¼[Úÿ›ûca¨™Fÿ~êω'•Ñ_‘pÄ©¸~䯃ãþWôTnendstream +endobj +2620 0 obj << +/Type /Page +/Contents 2621 0 R +/Resources 2619 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2591 0 R +>> endobj +2622 0 obj << +/D [2620 0 R /XYZ 71.731 778.968 null] +>> endobj +422 0 obj << +/D [2620 0 R /XYZ 210.5 758.046 null] +>> endobj +2623 0 obj << +/D [2620 0 R /XYZ 71.731 751.85 null] +>> endobj +2624 0 obj << +/D [2620 0 R /XYZ 351.569 727.162 null] +>> endobj +1610 0 obj << +/D [2620 0 R /XYZ 71.731 715.043 null] +>> endobj +426 0 obj << +/D [2620 0 R /XYZ 205.174 687.71 null] +>> endobj +2625 0 obj << +/D [2620 0 R /XYZ 71.731 681.517 null] +>> endobj +1611 0 obj << +/D [2620 0 R /XYZ 71.731 642.779 null] +>> endobj +430 0 obj << +/D [2620 0 R /XYZ 200.736 617.473 null] +>> endobj +1612 0 obj << +/D [2620 0 R /XYZ 71.731 548.18 null] +>> endobj +434 0 obj << +/D [2620 0 R /XYZ 221.26 523.825 null] +>> endobj +2626 0 obj << +/D [2620 0 R /XYZ 71.731 517.628 null] +>> endobj +2627 0 obj << +/D [2620 0 R /XYZ 244.707 505.892 null] +>> endobj +2628 0 obj << +/D [2620 0 R /XYZ 359.742 505.892 null] +>> endobj +2629 0 obj << +/D [2620 0 R /XYZ 470.392 505.892 null] +>> endobj +2630 0 obj << +/D [2620 0 R /XYZ 71.731 475.008 null] +>> endobj +2631 0 obj << +/D [2620 0 R /XYZ 71.731 475.008 null] +>> endobj +1613 0 obj << +/D [2620 0 R /XYZ 71.731 424.931 null] +>> endobj +438 0 obj << +/D [2620 0 R /XYZ 210.5 399.526 null] +>> endobj +2632 0 obj << +/D [2620 0 R /XYZ 71.731 393.33 null] +>> endobj +2633 0 obj << +/D [2620 0 R /XYZ 319.33 381.594 null] +>> endobj +2634 0 obj << +/D [2620 0 R /XYZ 390.383 381.594 null] +>> endobj +2635 0 obj << +/D [2620 0 R /XYZ 416.884 381.594 null] +>> endobj +1614 0 obj << +/D [2620 0 R /XYZ 71.731 374.455 null] +>> endobj +442 0 obj << +/D [2620 0 R /XYZ 199.74 351.207 null] +>> endobj +2636 0 obj << +/D [2620 0 R /XYZ 71.731 345.011 null] +>> endobj +2637 0 obj << +/D [2620 0 R /XYZ 256.417 333.275 null] +>> endobj +1615 0 obj << +/D [2620 0 R /XYZ 71.731 326.137 null] +>> endobj +446 0 obj << +/D [2620 0 R /XYZ 194.361 302.889 null] +>> endobj +2638 0 obj << +/D [2620 0 R /XYZ 71.731 297.728 null] +>> endobj +2639 0 obj << +/D [2620 0 R /XYZ 351.569 272.004 null] +>> endobj +1616 0 obj << +/D [2620 0 R /XYZ 71.731 259.885 null] +>> endobj +450 0 obj << +/D [2620 0 R /XYZ 237.453 232.552 null] +>> endobj +2640 0 obj << +/D [2620 0 R /XYZ 71.731 225.117 null] +>> endobj +2641 0 obj << +/D [2620 0 R /XYZ 263.444 200.672 null] +>> endobj +2642 0 obj << +/D [2620 0 R /XYZ 337.659 200.672 null] +>> endobj +2643 0 obj << +/D [2620 0 R /XYZ 324.055 187.721 null] +>> endobj +2644 0 obj << +/D [2620 0 R /XYZ 450.63 187.721 null] +>> endobj +2645 0 obj << +/D [2620 0 R /XYZ 119.552 174.769 null] +>> endobj +2141 0 obj << +/D [2620 0 R /XYZ 71.731 172.612 null] +>> endobj +2646 0 obj << +/D [2620 0 R /XYZ 71.731 139.87 null] +>> endobj +2619 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2649 0 obj << +/Length 1625 +/Filter /FlateDecode +>> +stream +xÚ¥XÛnÛ8}ïWø26f%R× +·Ì¾£šÖ´
(Þ\sÞŸ¹™àŒG <#憹܅3ÅÎM=å°R—ú©’
- ˜ãÅ@ZˆÊºô£á¹1 —<ó “B¬V +B¾Z¡·¨=>?ánÁAj~“OÖO…NìJóïi¾—o¿pîÿî`ß™îÀ~Ïá™þP{·ÑúW¾õ܆ƒýjcÈæ»aÁrh€>ïw†»ÌèCDÜ1Ÿ°Ø-ìƒÔÛ2³ p 4O RzK·J戛8ë²ht½_ë²¶SÏ©%¸o)= +9åó0N"ëo˜X#úÌÙ¸,°¨òî¹ÖŒ˜©€P¥uº“ [ÆHO›æØXT(¶ÒTp¤¾¸.oyتõ–Äo D
ÊuœJîóŒÇ‚ÅQ +‘øóþòêÝj~1ï’xA¼¼²Àsn–
qá' + +(ôðÜŽ•Õ +endobj +2648 0 obj << +/Type /Page +/Contents 2649 0 R +/Resources 2647 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2591 0 R +>> endobj +2650 0 obj << +/D [2648 0 R /XYZ 71.731 778.968 null] +>> endobj +1617 0 obj << +/D [2648 0 R /XYZ 71.731 629.827 null] +>> endobj +454 0 obj << +/D [2648 0 R /XYZ 200.736 604.422 null] +>> endobj +1618 0 obj << +/D [2648 0 R /XYZ 71.731 523.473 null] +>> endobj +458 0 obj << +/D [2648 0 R /XYZ 221.26 499.117 null] +>> endobj +2651 0 obj << +/D [2648 0 R /XYZ 71.731 492.921 null] +>> endobj +2652 0 obj << +/D [2648 0 R /XYZ 240.921 481.185 null] +>> endobj +2653 0 obj << +/D [2648 0 R /XYZ 379.826 481.185 null] +>> endobj +2654 0 obj << +/D [2648 0 R /XYZ 158.555 468.233 null] +>> endobj +2655 0 obj << +/D [2648 0 R /XYZ 71.731 450.3 null] +>> endobj +2656 0 obj << +/D [2648 0 R /XYZ 71.731 450.3 null] +>> endobj +2657 0 obj << +/D [2648 0 R /XYZ 71.731 265.043 null] +>> endobj +1619 0 obj << +/D [2648 0 R /XYZ 71.731 219.05 null] +>> endobj +462 0 obj << +/D [2648 0 R /XYZ 237.399 195.803 null] +>> endobj +2658 0 obj << +/D [2648 0 R /XYZ 71.731 189.606 null] +>> endobj +2659 0 obj << +/D [2648 0 R /XYZ 307.646 164.918 null] +>> endobj +2660 0 obj << +/D [2648 0 R /XYZ 205.376 151.967 null] +>> endobj +2661 0 obj << +/D [2648 0 R /XYZ 292.62 151.967 null] +>> endobj +1620 0 obj << +/D [2648 0 R /XYZ 71.731 118.926 null] +>> endobj +2647 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2664 0 obj << +/Length 1859 +/Filter /FlateDecode +>> +stream +xÚ•koÛ6ð{…¿EbV”D=ôC›¸[Öu oŰm3±V½@ÉI½_¿;)Ù–›¶’Ç{ßñîd>ñáOÎ’–$eYœNVåò + +ŸsÏèœWt+é¦í´’¥erOëZv’Ñvî„}òý@·VÂãy <Ylí]¹uK5è6ƒ¦<`™ ?ŸsßM„·£Ðn[µ¦é·•ÑÒ]>8…¢lÈ‘VêÊR7RKpšË'ò£ï´€l÷B$3ÉB˜ËâÑ3ŠRœ@RdõÇ”¥Å4È& ¥¦ @˜~oªmà§ÆìBª¥ßÊ2!˜ÀçiÒ,ÜK³0ðû4yæ9‰;4×F×+ÕÚkc$â/ϹøL`L\ÑtÚ-•I4Ü:/qϱ®µE§gäÀËÝ‘—à†Æ$8ÇÓ¥§—‰ŒüDÌçÖWí¦Þ6K2iSªÓ õÉØ?¹û¼’ŘW±8þvà|ÆÅaàÞ׿•ät§né,µ¢Í²¨WŸq›ZßµtÑmdGð¼uþ!ÂiÈd@Áð ІÇÊ »^BFÕ@tƒsˆÛå¥b¹¹ïT5èö‹EÐfN‡.õ̳‹ï)/ +º¨êŽ6X•PV´ªªËC€Ä¨{AðŽê+ìúúÚË +[¦Hº>Ö6,ß1Q°0§3Ú¾ÃP@±GªµtvGÓwÛ +GÌ;蟚šRì=)i& $©,lef%dgy¬´\ÑיŀY|œküÄ*ó~–‘]çÈ´íaO¹imußè´‚(ë½7ÆfÜ*7˵4ÇéϾȲ)lûä¨Èø=Ç!—_òhVÙg-à¦.ضçÑ'¨|8‘¸Ó4Q?8è”¶t¾ÍQ',K¯h©Á¬egN-0¤¼´˜’ïÌ–°³§3Ó^ÆU‘:³\Mq|IˆÏ0
ÀœÒpè†LÏÊ«â&a°n¨g'ê~¹no>²+SŽQ¹öU¼‹«ëŸgws‚Å``Éè³v`q¨/“ƽYOµ^¨„üÖ½J#‡PaÖÙ1Ì;{¶ p7_èaŸ4+>Nöä&¢ +Zø_ùIp,éy~endstream +endobj +2663 0 obj << +/Type /Page +/Contents 2664 0 R +/Resources 2662 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2591 0 R +>> endobj +2665 0 obj << +/D [2663 0 R /XYZ 71.731 778.968 null] +>> endobj +466 0 obj << +/D [2663 0 R /XYZ 237.399 758.046 null] +>> endobj +2666 0 obj << +/D [2663 0 R /XYZ 71.731 751.85 null] +>> endobj +2667 0 obj << +/D [2663 0 R /XYZ 350.045 727.162 null] +>> endobj +1621 0 obj << +/D [2663 0 R /XYZ 71.731 720.024 null] +>> endobj +470 0 obj << +/D [2663 0 R /XYZ 210.5 696.776 null] +>> endobj +2668 0 obj << +/D [2663 0 R /XYZ 71.731 690.58 null] +>> endobj +2669 0 obj << +/D [2663 0 R /XYZ 119.552 665.892 null] +>> endobj +1622 0 obj << +/D [2663 0 R /XYZ 71.731 658.754 null] +>> endobj +474 0 obj << +/D [2663 0 R /XYZ 205.12 635.506 null] +>> endobj +2670 0 obj << +/D [2663 0 R /XYZ 71.731 630.345 null] +>> endobj +2671 0 obj << +/D [2663 0 R /XYZ 252.372 591.67 null] +>> endobj +1623 0 obj << +/D [2663 0 R /XYZ 71.731 579.551 null] +>> endobj +478 0 obj << +/D [2663 0 R /XYZ 243.909 552.218 null] +>> endobj +2672 0 obj << +/D [2663 0 R /XYZ 71.731 544.783 null] +>> endobj +1624 0 obj << +/D [2663 0 R /XYZ 71.731 518.181 null] +>> endobj +482 0 obj << +/D [2663 0 R /XYZ 200.736 494.933 null] +>> endobj +1625 0 obj << +/D [2663 0 R /XYZ 71.731 367 null] +>> endobj +486 0 obj << +/D [2663 0 R /XYZ 221.26 343.003 null] +>> endobj +2673 0 obj << +/D [2663 0 R /XYZ 71.731 336.807 null] +>> endobj +2674 0 obj << +/D [2663 0 R /XYZ 231.473 312.119 null] +>> endobj +2675 0 obj << +/D [2663 0 R /XYZ 381.891 312.119 null] +>> endobj +2142 0 obj << +/D [2663 0 R /XYZ 71.731 284.059 null] +>> endobj +2676 0 obj << +/D [2663 0 R /XYZ 71.731 251.317 null] +>> endobj +2662 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2679 0 obj << +/Length 1827 +/Filter /FlateDecode +>> +stream +xÚíXm“Û4þÞ_‘Î'$ùM‚O…^á€6Ða(ÓÑ9ÊÅàØÛ¡½Ï®VrœØiïàss‘´ZK«Ýg½ˆ‡?±ÈËc(rÅt¦Åî _ÜAÏ7O„׸ò*W#¯VO>'
‚x±Ú,ž°úr%Yš&‹Õú×èëÙ÷¶]^É”G‚Q¹ÚZª¼üq ¿o¨ñ¢Y*»ümõÝ“ëÕ0s*‹åGmó*SÛâ +2´M¤‚)\cªO2gÛ¾-ÿ4½}^V–UÓÙ·<åð/ÐúJ–¥^÷p[•żêçÏ¥<zá*–Læzq•H˜Iº¯qÁNÚƒI’³DÅ0ßîÞ´eo§ã%)S\yµ¶ß6k¯”&Í2&5øBäLúiÒ²[^%±ŒvKч®Ä‡Î:‰ˆú†$ï&œ8Of,ƒ©O»ûÝÎömYLí@ïjí›ÛßmÑûɰáÐSÝxYƒÔw##*Pü–sÙv=IM»*º;ìlí¿î¶Í¡ò†ß:kaÙ*ab@H¦Sᦷe¿äMV#s²ñÕë§ï^þôÕ7_¿ûþú—é‚rͲ<(7íœoFF£½ºùùéêz~8ÅY¦C0ݺóèe[.eý‰? +¬’*kÓ?PYûåñb4ã€Ë† ÞìmkœgšÚS;`…loï=V
.è=Ea‚Bþ·@ýÌþc –cTâH‚Š@-!S>P®mˆ„ºjÁôéÞ6i8Ùê`ñûmYliÐñÝZ<l¡£vø¸JÑ´íöM½Æ>YŘaÚýù‰#5NŠ¨Í¥IPIK7™S²9gÌàŽ&³T—¦pŽÎ‹Š¹éǰ€[ú4,Kó9®“êÈup¸2ÏuPs\=G®Cá<,R8
fâºL‹3®ƒQ
Í4‰ öÍHéÁ'éÌ‘ÈÒ“tpÇ’HïÈxmòÿo‘ÿ1ã¶/SÞ£±}ByzDyšGAvŒ…‚(oð}ï/g>úž¼@—ÈKäuŒ¤õóòÒ¼ô)y›}·ßÕ§Ñz$_%ŠÁ9ê#g£ìdI¤z]A¨¾Ò®¼«§ƒÁ]C‡Æ‹L–çrî/ºãú`B3ˆ}0eLÁɾmև’Р+zëòκDyˆ2£®ãleÝõ¦¦Q÷¾²™{ì°ýȇݸœÞòâ‘£çÔçh*–9K…:¡©€Ä2;‹6
>/À +endobj +2678 0 obj << +/Type /Page +/Contents 2679 0 R +/Resources 2677 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2591 0 R +>> endobj +2680 0 obj << +/D [2678 0 R /XYZ 71.731 778.968 null] +>> endobj +1626 0 obj << +/D [2678 0 R /XYZ 71.731 729.752 null] +>> endobj +490 0 obj << +/D [2678 0 R /XYZ 221.26 704.348 null] +>> endobj +2681 0 obj << +/D [2678 0 R /XYZ 71.731 698.151 null] +>> endobj +2682 0 obj << +/D [2678 0 R /XYZ 246.085 686.415 null] +>> endobj +2683 0 obj << +/D [2678 0 R /XYZ 146.593 673.464 null] +>> endobj +2684 0 obj << +/D [2678 0 R /XYZ 238.922 673.464 null] +>> endobj +2685 0 obj << +/D [2678 0 R /XYZ 381.174 660.512 null] +>> endobj +2686 0 obj << +/D [2678 0 R /XYZ 432.626 660.512 null] +>> endobj +2687 0 obj << +/D [2678 0 R /XYZ 119.552 647.561 null] +>> endobj +2688 0 obj << +/D [2678 0 R /XYZ 192.311 647.561 null] +>> endobj +2689 0 obj << +/D [2678 0 R /XYZ 352.517 647.561 null] +>> endobj +2690 0 obj << +/D [2678 0 R /XYZ 144.458 634.609 null] +>> endobj +1627 0 obj << +/D [2678 0 R /XYZ 71.731 628.22 null] +>> endobj +494 0 obj << +/D [2678 0 R /XYZ 221.26 604.223 null] +>> endobj +2691 0 obj << +/D [2678 0 R /XYZ 71.731 599.063 null] +>> endobj +2692 0 obj << +/D [2678 0 R /XYZ 235.966 586.29 null] +>> endobj +2693 0 obj << +/D [2678 0 R /XYZ 119.552 573.339 null] +>> endobj +2694 0 obj << +/D [2678 0 R /XYZ 208.149 573.339 null] +>> endobj +1628 0 obj << +/D [2678 0 R /XYZ 71.731 567.309 null] +>> endobj +498 0 obj << +/D [2678 0 R /XYZ 248.159 542.953 null] +>> endobj +2695 0 obj << +/D [2678 0 R /XYZ 71.731 536.757 null] +>> endobj +2696 0 obj << +/D [2678 0 R /XYZ 265.699 525.02 null] +>> endobj +1629 0 obj << +/D [2678 0 R /XYZ 71.731 491.979 null] +>> endobj +502 0 obj << +/D [2678 0 R /XYZ 248.159 468.731 null] +>> endobj +2697 0 obj << +/D [2678 0 R /XYZ 71.731 462.535 null] +>> endobj +2698 0 obj << +/D [2678 0 R /XYZ 261.452 450.799 null] +>> endobj +2699 0 obj << +/D [2678 0 R /XYZ 197.379 437.847 null] +>> endobj +1630 0 obj << +/D [2678 0 R /XYZ 71.731 430.709 null] +>> endobj +506 0 obj << +/D [2678 0 R /XYZ 253.539 407.461 null] +>> endobj +2700 0 obj << +/D [2678 0 R /XYZ 71.731 401.265 null] +>> endobj +2701 0 obj << +/D [2678 0 R /XYZ 264.768 389.528 null] +>> endobj +1631 0 obj << +/D [2678 0 R /XYZ 71.731 356.487 null] +>> endobj +510 0 obj << +/D [2678 0 R /XYZ 253.539 333.239 null] +>> endobj +2702 0 obj << +/D [2678 0 R /XYZ 71.731 327.043 null] +>> endobj +2703 0 obj << +/D [2678 0 R /XYZ 167.721 302.355 null] +>> endobj +1632 0 obj << +/D [2678 0 R /XYZ 71.731 295.217 null] +>> endobj +514 0 obj << +/D [2678 0 R /XYZ 199.74 271.969 null] +>> endobj +2704 0 obj << +/D [2678 0 R /XYZ 71.731 265.773 null] +>> endobj +2705 0 obj << +/D [2678 0 R /XYZ 391.044 254.036 null] +>> endobj +2706 0 obj << +/D [2678 0 R /XYZ 270.197 241.085 null] +>> endobj +2707 0 obj << +/D [2678 0 R /XYZ 204.502 228.134 null] +>> endobj +2708 0 obj << +/D [2678 0 R /XYZ 71.731 210.201 null] +>> endobj +2709 0 obj << +/D [2678 0 R /XYZ 71.731 210.201 null] +>> endobj +2710 0 obj << +/D [2678 0 R /XYZ 71.731 155.143 null] +>> endobj +1633 0 obj << +/D [2678 0 R /XYZ 71.731 135.053 null] +>> endobj +2677 0 obj << +/Font << /F34 1292 0 R /F33 1203 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2713 0 obj << +/Length 1194 +/Filter /FlateDecode +>> +stream +xÚWmoâ8þÞ_Á}¤âÆvœ—J÷¡»ÐÝn¯jÕrWnOUJ6$QÚòïoœ±ÁB«qì™gžy±=¡=~´çSâsxø ½ 7[ž8½¬|;¡Zb¤EF–Ì—éÉÙ%w{!LðÞtÞs—ø°æŒáö¦ñ?ƒ¯/QQËr8bÂP‚Ïé‹ÄÁÝíþñå&W©þ;ýq2™n,F gG¹i‘7ƶÜ(
àˆ€8®×pS4ÀÚÙ¥ËzJÓS‚Ì!nÀXI¼Ê2™¯QÈFã@-t#ë—<ÖBÞVh$*fÔ'!ðC“I…Þ.Q«›¹U%õLãóuHÅ@‘ÒÁ§"|TÉ"3Òq²U5¥Ry¯ âk§7bŒ„33y–EªAG”“v0<N¸ÏÆå*롲ÝZUÑBG˜ó-èÈ$ð _6†Z‘FIöTËwðÂsœÁïøè—išãø1‡*¢ƒ4þ¯0•7 +t.U
–×y!3¥Ö¯e¥˜ÕgZ’ü’kÎ~ÙïðU_Ëu+–…\ÞËHaÆv@!˜Ow÷W]L'Oד¿MʶI)£xã +ªw$ÆƒŠ½Ä(3ÏÚJ„¯:¨Ÿ†:´Q…ȸ"g5¨€Žàøj²kº¯F,ÇgQBK:“[Ývú Çóÿ\1ßä9Ê´¥ŸŽÃ²(M×mh×#îi]Èd¿züY3ovY3˜£§Úˆ´¦õwb5ÏUËeñûôü@öH{ÂNp'ÞŒ™9gÌ9ç +ÄÜWsÝ"›ÏÈïLÆ«R¿¾©òt/^f3YUÐwÏWé©î’wÛõRÖ«®WsÀ-ß’J£9‡…ÉþŽþ²‚3.€LûöÚŠ´>½·Îr-¢¼e¬ãSªmé?¸£kendstream +endobj +2712 0 obj << +/Type /Page +/Contents 2713 0 R +/Resources 2711 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2726 0 R +>> endobj +2714 0 obj << +/D [2712 0 R /XYZ 71.731 778.968 null] +>> endobj +518 0 obj << +/D [2712 0 R /XYZ 210.5 758.046 null] +>> endobj +2715 0 obj << +/D [2712 0 R /XYZ 71.731 751.85 null] +>> endobj +2143 0 obj << +/D [2712 0 R /XYZ 71.731 737.957 null] +>> endobj +2716 0 obj << +/D [2712 0 R /XYZ 71.731 705.214 null] +>> endobj +2717 0 obj << +/D [2712 0 R /XYZ 71.731 445.817 null] +>> endobj +2718 0 obj << +/D [2712 0 R /XYZ 181.97 432.866 null] +>> endobj +2719 0 obj << +/D [2712 0 R /XYZ 437.404 432.866 null] +>> endobj +2720 0 obj << +/D [2712 0 R /XYZ 392.855 419.914 null] +>> endobj +2721 0 obj << +/D [2712 0 R /XYZ 275.205 406.963 null] +>> endobj +2722 0 obj << +/D [2712 0 R /XYZ 379.292 406.963 null] +>> endobj +2723 0 obj << +/D [2712 0 R /XYZ 71.731 376.079 null] +>> endobj +2724 0 obj << +/D [2712 0 R /XYZ 71.731 376.079 null] +>> endobj +2725 0 obj << +/D [2712 0 R /XYZ 71.731 321.021 null] +>> endobj +2711 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F32 1191 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2729 0 obj << +/Length 1883 +/Filter /FlateDecode +>> +stream +xÚÝXK“ã4¾ï¯È
§ŠËò“ìÎPK,¡ Š¥(ÇQ&Dz¼Ãü{ºÕ-Çç0§åQ9¸Õ’Z\Åð“«BŠBÁ§(E•—«æô*^=ÀÌW¯$¯HÓJdeôÉM–H¡’Õf&àËí«Ïî“d•Ä"ϪÕö0’%¢RÀÙÿ½>Ög§íz“e”únšˆïÞ³8úi]Æ‘8ÿaþ"î7ý~lõú×í×^¾L…Js”¯6i.d•yÑo;g×IÁêÆ™¾ã
ùª
®OQ& <h(Ú´=šNQEtZˈòÃÀ®ñ“GCߎ^¨gºž¸V×{Ó=ðÊnOÜGkÜÄý9‹«ê2á4Ë8V·O4a˜÷Ý“;ö Á[G“û^³.ã ‰Õš“qz7D#H°o&ý}kGucZP·©<‹¶?öUؗؽ%b0×þH|XË,ÒÖ€ÄèišÞ¡…GGwÔ¨’M?¶¼qÇ,«ÏmÝhæêz0p] 1Þ²3„ƒù»œwu¹Ä_îÄþQJ±ž*õ¾@†7ÆÑÄ06†ÃØ¢™qæûû×*)cGVh¯2l±ú ÕÌ%ÉiT4~Ômˇ|ö‘ÏúÑ6ºé÷<~<j«o¸§Ó¨Rmƒ!’Bô§`C8»qÄ%_·?ã<W#ý€i +B2ª¢½~ÇIg\÷mûN³rozâyË̲¼Éƒàáá…Ä^»Ú´ƒ˜v
”ßuW7G\TÁÝ;p;.ýîw°j”ÇAÉ0çþth>ZQÔ—`jZGó|o˜8[³NÀyóvO´‘¯UE_üð$ +\ÔŸNzsŸûÚ[gÑ·è +j`X1b[H„¢[TåLà&ãèÝýR°ÊDY$ׂI&oÂ}z»×¬þt5¿?©aybªN¸Óøò ¥je Õvó AIJ™¾äÚžŒ ׎¾vìœ9ñ"Œ*ÞzK™ ˜±LÖ¯œ€îWf·fg1yÒ‘¾."ÕùHÁûþ²CyÐéù +3tŸ¬%à]ŒÕÝ—¤/‰ÛUˆ]M#‰H ‘— Q…È+|ªÝ
”¢\`ÄK¶:ˆ±ÄLßhøã@ f²«ƒ¡RÌD\º"¦Š_>è’ÿ¼Ûe–‹[¥™Û}NÌâKª'M?YgàQâLYža›§|’rÇ}“¡û¾1µ n$¤ +Ô”Q&·Úä¹H*éÍÿÅv¹&3cŸ˜çó?;JnßKjšásÔíÙw@ÏJRºv ÜhéO‚i[ý¸}½]ãߨà!Š¿¬OËJ¨QþÜÀâ€ã{“=•…’ÿéðZ]ú/Îq´—¥Qµ’vmÏ:Õ5úY¿Bï)•‹Ð¬QHÒ +톞£¡ižá\¢üáð…w¸9míž‹w\©ƒ„It©½7œ*ÝØYÝ|à‰›HW±PeþB¤_§Ì„ô"O¿éi¾5}.HO¯ž¤§s¤§Üô +¸Ñ_I¦`ÈB0¤>ºA‚xz
ñôâs¡ñôñWwÛé_dþ8…×´Ò·þfæ›Ëÿ/³J/îÏ ´(¨Õ¼-“¨ç'ñßÕË“þéYendstream +endobj +2728 0 obj << +/Type /Page +/Contents 2729 0 R +/Resources 2727 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2726 0 R +>> endobj +2730 0 obj << +/D [2728 0 R /XYZ 71.731 778.968 null] +>> endobj +1634 0 obj << +/D [2728 0 R /XYZ 71.731 768.009 null] +>> endobj +522 0 obj << +/D [2728 0 R /XYZ 392.761 752.939 null] +>> endobj +1635 0 obj << +/D [2728 0 R /XYZ 71.731 742.207 null] +>> endobj +526 0 obj << +/D [2728 0 R /XYZ 155.125 706.744 null] +>> endobj +2731 0 obj << +/D [2728 0 R /XYZ 71.731 699.392 null] +>> endobj +2732 0 obj << +/D [2728 0 R /XYZ 71.731 629.733 null] +>> endobj +2733 0 obj << +/D [2728 0 R /XYZ 234.995 578.027 null] +>> endobj +2734 0 obj << +/D [2728 0 R /XYZ 304.526 578.027 null] +>> endobj +2735 0 obj << +/D [2728 0 R /XYZ 257.243 552.124 null] +>> endobj +2736 0 obj << +/D [2728 0 R /XYZ 71.731 532.034 null] +>> endobj +2737 0 obj << +/D [2728 0 R /XYZ 433.246 521.239 null] +>> endobj +2738 0 obj << +/D [2728 0 R /XYZ 340.56 495.337 null] +>> endobj +2739 0 obj << +/D [2728 0 R /XYZ 429.158 495.337 null] +>> endobj +1636 0 obj << +/D [2728 0 R /XYZ 71.731 488.198 null] +>> endobj +530 0 obj << +/D [2728 0 R /XYZ 194.476 455.964 null] +>> endobj +1637 0 obj << +/D [2728 0 R /XYZ 71.731 455.785 null] +>> endobj +534 0 obj << +/D [2728 0 R /XYZ 235.552 424.283 null] +>> endobj +2740 0 obj << +/D [2728 0 R /XYZ 71.731 415.831 null] +>> endobj +2741 0 obj << +/D [2728 0 R /XYZ 71.731 409.853 null] +>> endobj +2742 0 obj << +/D [2728 0 R /XYZ 141.071 394.694 null] +>> endobj +2743 0 obj << +/D [2728 0 R /XYZ 184.11 394.694 null] +>> endobj +2744 0 obj << +/D [2728 0 R /XYZ 189.489 394.694 null] +>> endobj +2745 0 obj << +/D [2728 0 R /XYZ 71.731 393.645 null] +>> endobj +2746 0 obj << +/D [2728 0 R /XYZ 141.071 383.038 null] +>> endobj +2747 0 obj << +/D [2728 0 R /XYZ 184.11 383.038 null] +>> endobj +2748 0 obj << +/D [2728 0 R /XYZ 189.489 383.038 null] +>> endobj +2749 0 obj << +/D [2728 0 R /XYZ 71.731 381.989 null] +>> endobj +2750 0 obj << +/D [2728 0 R /XYZ 141.071 371.381 null] +>> endobj +2751 0 obj << +/D [2728 0 R /XYZ 184.11 371.381 null] +>> endobj +2752 0 obj << +/D [2728 0 R /XYZ 189.489 371.381 null] +>> endobj +2753 0 obj << +/D [2728 0 R /XYZ 71.731 370.167 null] +>> endobj +2754 0 obj << +/D [2728 0 R /XYZ 141.071 359.725 null] +>> endobj +2755 0 obj << +/D [2728 0 R /XYZ 184.11 359.725 null] +>> endobj +2756 0 obj << +/D [2728 0 R /XYZ 189.489 359.725 null] +>> endobj +1638 0 obj << +/D [2728 0 R /XYZ 71.731 341.792 null] +>> endobj +538 0 obj << +/D [2728 0 R /XYZ 245.761 312.303 null] +>> endobj +1639 0 obj << +/D [2728 0 R /XYZ 71.731 309.828 null] +>> endobj +542 0 obj << +/D [2728 0 R /XYZ 227.905 285.902 null] +>> endobj +2757 0 obj << +/D [2728 0 R /XYZ 71.731 280.741 null] +>> endobj +2758 0 obj << +/D [2728 0 R /XYZ 71.731 275.76 null] +>> endobj +2759 0 obj << +/D [2728 0 R /XYZ 141.071 259.302 null] +>> endobj +2760 0 obj << +/D [2728 0 R /XYZ 184.11 259.302 null] +>> endobj +2761 0 obj << +/D [2728 0 R /XYZ 189.489 259.302 null] +>> endobj +2762 0 obj << +/D [2728 0 R /XYZ 71.731 236.388 null] +>> endobj +1640 0 obj << +/D [2728 0 R /XYZ 71.731 203.347 null] +>> endobj +546 0 obj << +/D [2728 0 R /XYZ 227.905 180.099 null] +>> endobj +2763 0 obj << +/D [2728 0 R /XYZ 71.731 174.938 null] +>> endobj +2764 0 obj << +/D [2728 0 R /XYZ 71.731 169.957 null] +>> endobj +2765 0 obj << +/D [2728 0 R /XYZ 141.071 153.499 null] +>> endobj +2766 0 obj << +/D [2728 0 R /XYZ 184.11 153.499 null] +>> endobj +2767 0 obj << +/D [2728 0 R /XYZ 189.489 153.499 null] +>> endobj +2768 0 obj << +/D [2728 0 R /XYZ 71.731 130.584 null] +>> endobj +1641 0 obj << +/D [2728 0 R /XYZ 71.731 97.543 null] +>> endobj +2727 0 obj << +/Font << /F22 1177 0 R /F26 1184 0 R /F33 1203 0 R /F42 2168 0 R /F34 1292 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2771 0 obj << +/Length 1761 +/Filter /FlateDecode +>> +stream +xÚåXKÛ6¾ï¯ð2°fHê —¦IA‚tšb¡•è5Y2$*Éö×w†3’åµöqè¡@±À’çA~ó ÕJŸZ¥J¤!i&ò$[•û¹º…•wŠ96̲™ñü|uñâmr „««í*ÌçÉ*Í´ˆãhuUý¼ÞgºõFÇ2Ђƫ¡É§køÿû:×8|µ?ˆú¡†z³þóê׋7W“±V"ÔÚÉ,gvj}´S©ì9q&d”x;Ñ$Ðöâm¤W¸3AF-E”… 9nM£Ý3Û\^‹LfÌövhJgÛ†ØÂð(m“$Bç`£N)ÌvA©±Ê•Î¥E¡áÈöEÆrÆ"SäˆE˜ŽË2àÂ$;ÊP/Ù¹äèÜ&&¯6!x™Ä|X¶_oB4†AAŸ;S𲑴¯lÛŽ&nèÛÜžl{gÓµýÛTWë0ÐX¿Þ»ŽyAUãZÞÕL³V1R·Žã@õ½#.Û7?U8"߬µ[»i/ ¬e›èòá 6J‹ ^š¦l+ï
ïmSš"·Ÿ|[ë8(:Û=F—ùóûΖ;šïzS±˜–Æ}ÑØØ2Ô…»¯ÁíY»ë†NÎܓִ®õúë»”w`h:SÛâ¦6â´ÀJ!ûLø#‚4Àñß¿TÏ€Sµÿµ +ŒÙÒÔ‡P2Z‰ól½‹0ö¦³6–p¤¡§8LFK`§+n/‰T›æÖíˆZ4¼…€_†u][”ÌÕ²Epp‚fïAŸ›ìXÂim¿®•Àpwí@“ïHn‡ÚÇL +G<v7c(G_S „vï€h9¢’ mIðÖ!çÎô¼VÙŽlTMI‚å½§MûõP1{Á»L_vöÀ©
”!νƒøFƒï¨±CÐsÐôD¯Ú)Uág‹kìhg+ß ú…ý€çìY¶É<ÑÚ¾ÇBnPÔÈüöl̔NJæF‡P\ ÅNÉx®>m|êð +×>Éú½³Î<“×µ¿ù*þ,¯¶]»_`¿V†ŽÇjôÌ>oÄÔ}ÞãvmõH—§R‘ÃòŽÐìÏ£0Ö"„pz <q€`½ñ©k¾F¹þ’>Œ}I“¡™e—®/jf€,]Û²@ _NŠúŽ5pé‚$E"0Í»±{˜ûÅI¤J±Õc;‚T3ç|qa³ÒáIu#§ x90ËÉ_ ðÒÜ_ KãRN¹ +ÃòI>w,Èàý~tƒ"`á–R'ùü–æ–A½$ +o_²?cûÌ€Ä ø“áIÝ8f¦kàýf3ktcaÂáøèÄ/îpê +*²§ì³Zî©XãqBÝ/óZÇ«eÙv•ï¼Äݸ; +h<ØÙ±ú,„W,’TÍqDþba¸iÛÚ`[¨¸À¦‚ÖžQŽ.I[âs»qãØ;â|¢±nAŸô³ìö,˜ä©‡¢+öãŠ$tÇça–bÞïŽkç‚7ÒçÍÇ’…:&
O8è˜y–D8j†mED‚ L¦Ë»¤ï1*`Ú悔ôâ ¡GR°™ÀqÒˆõ;NtÀlC{j3Ã^Ó‹õD5±a‡Šd&ów£ ½9‡Zî -wgCm‚¸ÿà ÿ:e"S飿_YÎ~¾Œ¡Ò"ëèŸ Ï5ýªÐ”gendstream +endobj +2770 0 obj << +/Type /Page +/Contents 2771 0 R +/Resources 2769 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2726 0 R +>> endobj +2772 0 obj << +/D [2770 0 R /XYZ 71.731 778.968 null] +>> endobj +1648 0 obj << +/D [2770 0 R /XYZ 71.731 790.923 null] +>> endobj +550 0 obj << +/D [2770 0 R /XYZ 227.905 758.046 null] +>> endobj +2773 0 obj << +/D [2770 0 R /XYZ 71.731 751.85 null] +>> endobj +2774 0 obj << +/D [2770 0 R /XYZ 71.731 746.869 null] +>> endobj +2775 0 obj << +/D [2770 0 R /XYZ 141.071 731.446 null] +>> endobj +2776 0 obj << +/D [2770 0 R /XYZ 184.11 731.446 null] +>> endobj +2777 0 obj << +/D [2770 0 R /XYZ 189.489 731.446 null] +>> endobj +2778 0 obj << +/D [2770 0 R /XYZ 71.731 708.532 null] +>> endobj +1642 0 obj << +/D [2770 0 R /XYZ 71.731 664.597 null] +>> endobj +554 0 obj << +/D [2770 0 R /XYZ 227.905 639.292 null] +>> endobj +2779 0 obj << +/D [2770 0 R /XYZ 71.731 633.095 null] +>> endobj +2780 0 obj << +/D [2770 0 R /XYZ 71.731 628.114 null] +>> endobj +2781 0 obj << +/D [2770 0 R /XYZ 141.071 612.691 null] +>> endobj +2782 0 obj << +/D [2770 0 R /XYZ 184.11 612.691 null] +>> endobj +2783 0 obj << +/D [2770 0 R /XYZ 189.489 612.691 null] +>> endobj +2784 0 obj << +/D [2770 0 R /XYZ 71.731 589.777 null] +>> endobj +1643 0 obj << +/D [2770 0 R /XYZ 71.731 535.88 null] +>> endobj +558 0 obj << +/D [2770 0 R /XYZ 180.158 501.588 null] +>> endobj +1644 0 obj << +/D [2770 0 R /XYZ 71.731 501.409 null] +>> endobj +562 0 obj << +/D [2770 0 R /XYZ 269.732 469.907 null] +>> endobj +2785 0 obj << +/D [2770 0 R /XYZ 71.731 462.471 null] +>> endobj +2786 0 obj << +/D [2770 0 R /XYZ 71.731 462.471 null] +>> endobj +2787 0 obj << +/D [2770 0 R /XYZ 282.33 412.124 null] +>> endobj +1645 0 obj << +/D [2770 0 R /XYZ 71.731 409.967 null] +>> endobj +566 0 obj << +/D [2770 0 R /XYZ 200.736 386.719 null] +>> endobj +1646 0 obj << +/D [2770 0 R /XYZ 71.731 258.786 null] +>> endobj +570 0 obj << +/D [2770 0 R /XYZ 221.26 234.789 null] +>> endobj +2788 0 obj << +/D [2770 0 R /XYZ 71.731 228.592 null] +>> endobj +2789 0 obj << +/D [2770 0 R /XYZ 71.731 228.592 null] +>> endobj +2790 0 obj << +/D [2770 0 R /XYZ 467.659 216.856 null] +>> endobj +2791 0 obj << +/D [2770 0 R /XYZ 332.386 203.904 null] +>> endobj +2792 0 obj << +/D [2770 0 R /XYZ 119.552 190.953 null] +>> endobj +2793 0 obj << +/D [2770 0 R /XYZ 119.552 178.002 null] +>> endobj +2794 0 obj << +/D [2770 0 R /XYZ 152.909 165.05 null] +>> endobj +2795 0 obj << +/D [2770 0 R /XYZ 474.384 165.05 null] +>> endobj +1647 0 obj << +/D [2770 0 R /XYZ 71.731 134.066 null] +>> endobj +2769 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F33 1203 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2798 0 obj << +/Length 1956 +/Filter /FlateDecode +>> +stream +xÚÛŽã¶î}¿"ou€Õùö¸Û]ô íí }8=Š$:ëØ©-o:_R¤;ÉÎè @LQER¼IÑ*„_´Ê#‘'ðÉQfŪ:¼ W;˜ùø&bŠ{&¹ŸÑ¼{|óí‡D®J@$«Çí*)2‘–Ù*/b‘¦rõXÿ7øn¯ŽV÷ëû8
ƒXÐ÷q¯ øùÓþ_—q ŽŸÍ_„ý±«Çfzý¿Çÿ¼yxœ¤HãH$ñ³r2É•œq|–3ŠJø¤…eæäD‘`·o?Èx…+3$ŒC!‹#E¯m‰fÎ,.EûÍÚ‰²3Ñ}Š(ñ¢\” íhÒw;¶•5]K£^ß›ÖX£˜#0‘õ6ë6ÿו½£AÕhÕ›vwAóe§jF¿„í +؉ØX^ÔÑWµë(
žhPëí:Ü4V\«®î“PÀ‰ÿCëÝ´]´aù’í’R$e̶Kæ¶+ò î†ö›uT¨M‘Á˜ð‡±Ú¤Q¿*}´4l׳´Àm’6J2&ga¾8ã]Ég¢(½ÀwÄïŽ1Ô¦y" ޽qö†)ËœzÃvG¤;$ +’@·E*KÉeáp€6Š3–éÆžP4UÊbæmhDÑÓ¼+ù0Œ§üI#49OGÍÜÊõˆuF0õÑ +…IÊê¿×ýCß“[,
3Io¥ÅÉPØCúO:ßÑúï•ô¹á_Ú2–”§ï<9ÀR•”þ>³!”†¤ôa-gAÊ`±5ïüF¾©ŸÑ€ŸÔE Bx±.YOeÿZTO=<…™¼l,ø^êûÖå1!æ,Û¬€¸öë`»ì÷kŽcsEï~á(ý„™ïdý|ÿí7¢{nM dÊñ'o—†¶ûÕºg™ëþ:…ÛûËýu&ârù\ôàD~á~aÚÉ0óú%K®Jò:^ÇÁÉüŒúù?TÛw‡¯ ÍDúr*Ê!b/ÞËÞë[ ™/‹5]Ädùõ±çã]âòjEàÆ©×¾2¯´B‘gÜM¦^§w]×hÕÞ`$‘FÞF߹瓚CkQbŽÓÆåâµ+œuÄnس@>ŠÛ¾0xûëOAï>}úááíO<…Uþ{K_jÖanÃK)çônCSç—Á…áôP +endobj +2797 0 obj << +/Type /Page +/Contents 2798 0 R +/Resources 2796 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2726 0 R +>> endobj +2799 0 obj << +/D [2797 0 R /XYZ 71.731 778.968 null] +>> endobj +1657 0 obj << +/D [2797 0 R /XYZ 71.731 790.923 null] +>> endobj +574 0 obj << +/D [2797 0 R /XYZ 205.12 758.046 null] +>> endobj +2800 0 obj << +/D [2797 0 R /XYZ 71.731 752.886 null] +>> endobj +578 0 obj << +/D [2797 0 R /XYZ 194.361 709.728 null] +>> endobj +2801 0 obj << +/D [2797 0 R /XYZ 71.731 704.567 null] +>> endobj +2802 0 obj << +/D [2797 0 R /XYZ 256.459 691.795 null] +>> endobj +1649 0 obj << +/D [2797 0 R /XYZ 71.731 632.851 null] +>> endobj +582 0 obj << +/D [2797 0 R /XYZ 194.361 609.603 null] +>> endobj +2803 0 obj << +/D [2797 0 R /XYZ 71.731 603.407 null] +>> endobj +1650 0 obj << +/D [2797 0 R /XYZ 71.731 584.532 null] +>> endobj +586 0 obj << +/D [2797 0 R /XYZ 215.88 561.284 null] +>> endobj +2804 0 obj << +/D [2797 0 R /XYZ 71.731 555.088 null] +>> endobj +2805 0 obj << +/D [2797 0 R /XYZ 258.579 517.449 null] +>> endobj +1651 0 obj << +/D [2797 0 R /XYZ 71.731 510.31 null] +>> endobj +590 0 obj << +/D [2797 0 R /XYZ 199.74 487.063 null] +>> endobj +2806 0 obj << +/D [2797 0 R /XYZ 71.731 481.902 null] +>> endobj +2807 0 obj << +/D [2797 0 R /XYZ 71.731 481.902 null] +>> endobj +2808 0 obj << +/D [2797 0 R /XYZ 248.786 456.178 null] +>> endobj +2809 0 obj << +/D [2797 0 R /XYZ 71.731 449.04 null] +>> endobj +1652 0 obj << +/D [2797 0 R /XYZ 71.731 405.205 null] +>> endobj +594 0 obj << +/D [2797 0 R /XYZ 205.12 381.957 null] +>> endobj +2810 0 obj << +/D [2797 0 R /XYZ 71.731 376.796 null] +>> endobj +2811 0 obj << +/D [2797 0 R /XYZ 436.587 364.024 null] +>> endobj +2812 0 obj << +/D [2797 0 R /XYZ 71.731 345.992 null] +>> endobj +1653 0 obj << +/D [2797 0 R /XYZ 71.731 313.05 null] +>> endobj +598 0 obj << +/D [2797 0 R /XYZ 221.26 289.802 null] +>> endobj +2813 0 obj << +/D [2797 0 R /XYZ 71.731 283.606 null] +>> endobj +1654 0 obj << +/D [2797 0 R /XYZ 71.731 264.731 null] +>> endobj +602 0 obj << +/D [2797 0 R /XYZ 232.019 241.483 null] +>> endobj +2814 0 obj << +/D [2797 0 R /XYZ 71.731 235.287 null] +>> endobj +1655 0 obj << +/D [2797 0 R /XYZ 71.731 211.431 null] +>> endobj +606 0 obj << +/D [2797 0 R /XYZ 224.541 184.099 null] +>> endobj +2815 0 obj << +/D [2797 0 R /XYZ 71.731 177.906 null] +>> endobj +1656 0 obj << +/D [2797 0 R /XYZ 71.731 152.119 null] +>> endobj +2796 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2818 0 obj << +/Length 1206 +/Filter /FlateDecode +>> +stream +xÚÕ˜_oÛ6Àßó)ô6 ¨9’õg@’"<tIÑxØÃ:ŠMÇÚÒ“è¦Ù§ß‘GÉVä8ÝÒ(Dy<ï~¼£Ì +,ÈÉbxd9)Ò<˜ßÑàFΘ—˜x‘ÉŽÌéìèûã$( #fË ÎS"Š4ÈrN„H‚Ùâ·ðíª\ÙD.hÈ >g+‰÷—üÿ5*xHÖVŸ±÷g½ØÔeôûì§£³Yo…àŒÄü ^dd'ç[;+À>Ð#rB“í¬Ë¶…å³<|ßDœ†Úhó°–µ¶V_j§Ó`‹¤¬pç81¥4<Õº–¥Â—TÐës©dSÖÑ„…—7ȹ^öƒU€ +*&T ´a!—8÷úºR•¹¾¶:ôÚTZ•õ±UBß +k[ˆqeÞ`k;};’‹%@Ípÿç|”îzmI,ë—mµ¿~Â;©Í!¨s˜ í0ÔŒ +g|Õ1{ªcš¨¶c.~v +‡>ãÂKl
^¬-o‹óm±ÀWwKgf¸F°>S¶C8«[¥é‹ÈýJv]iñXÜ7•1Ý ”®ÿPØÑwPé +endobj +2817 0 obj << +/Type /Page +/Contents 2818 0 R +/Resources 2816 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2726 0 R +>> endobj +2819 0 obj << +/D [2817 0 R /XYZ 71.731 778.968 null] +>> endobj +610 0 obj << +/D [2817 0 R /XYZ 200.736 758.046 null] +>> endobj +614 0 obj << +/D [2817 0 R /XYZ 224.541 690.3 null] +>> endobj +2820 0 obj << +/D [2817 0 R /XYZ 71.731 682.865 null] +>> endobj +1658 0 obj << +/D [2817 0 R /XYZ 71.731 669.215 null] +>> endobj +618 0 obj << +/D [2817 0 R /XYZ 200.736 645.967 null] +>> endobj +1767 0 obj << +/D [2817 0 R /XYZ 71.731 606.302 null] +>> endobj +622 0 obj << +/D [2817 0 R /XYZ 237.453 578.221 null] +>> endobj +2821 0 obj << +/D [2817 0 R /XYZ 71.731 570.785 null] +>> endobj +1768 0 obj << +/D [2817 0 R /XYZ 71.731 544.901 null] +>> endobj +626 0 obj << +/D [2817 0 R /XYZ 200.736 520.935 null] +>> endobj +1769 0 obj << +/D [2817 0 R /XYZ 71.731 481.271 null] +>> endobj +630 0 obj << +/D [2817 0 R /XYZ 256.82 453.19 null] +>> endobj +2822 0 obj << +/D [2817 0 R /XYZ 71.731 445.754 null] +>> endobj +2823 0 obj << +/D [2817 0 R /XYZ 428.95 434.261 null] +>> endobj +2824 0 obj << +/D [2817 0 R /XYZ 154.41 408.358 null] +>> endobj +2825 0 obj << +/D [2817 0 R /XYZ 288.347 408.358 null] +>> endobj +1770 0 obj << +/D [2817 0 R /XYZ 71.731 406.201 null] +>> endobj +634 0 obj << +/D [2817 0 R /XYZ 200.736 382.953 null] +>> endobj +1771 0 obj << +/D [2817 0 R /XYZ 71.731 343.289 null] +>> endobj +638 0 obj << +/D [2817 0 R /XYZ 250.364 315.207 null] +>> endobj +2826 0 obj << +/D [2817 0 R /XYZ 71.731 307.771 null] +>> endobj +1772 0 obj << +/D [2817 0 R /XYZ 71.731 294.121 null] +>> endobj +642 0 obj << +/D [2817 0 R /XYZ 200.736 270.873 null] +>> endobj +1773 0 obj << +/D [2817 0 R /XYZ 71.731 231.209 null] +>> endobj +646 0 obj << +/D [2817 0 R /XYZ 205.174 203.127 null] +>> endobj +2827 0 obj << +/D [2817 0 R /XYZ 71.731 196.935 null] +>> endobj +1774 0 obj << +/D [2817 0 R /XYZ 71.731 169.09 null] +>> endobj +650 0 obj << +/D [2817 0 R /XYZ 200.736 145.842 null] +>> endobj +1775 0 obj << +/D [2817 0 R /XYZ 71.731 106.178 null] +>> endobj +2816 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F33 1203 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2830 0 obj << +/Length 1154 +/Filter /FlateDecode +>> +stream +xÚí˜_o¤6Àßó)x)ëÃc¨”‡ë59¥Ò%‘n£>4ÕÊË:YZ+0w—oß13°dÿ$QÕV=©ŠÇãñØþÍ +õKC:C+}-ì%#eÑÒPÝÐâݦ¤åë{T•5—þƒiúm¶g\ÀQð~S+s†¢*ª0R_WØbT-uŠCéÜs_·»UmI²km‰TÎqÓŽÚÆ^79ù]ë@„þÞ0†
œ¨mŠÜšöñ"…»Å—@H_—iOÉ¢ÆÖTy½r»™nUô[½e(O‘׈ZE-‡AŽâ×¢,QÚ4@uNÜ/õ +…Æ@Û•¶e#[#6°¢,ã [3¡àà·ÕÚÖŽâ-Š<G|2Lä,áˆZŽ“0ìîþ⣩L£Ëk¸`Æýܺ¸è7Ó%LŸç‰Tt¹÷8w±(ªÂ.ÎG½±E]éòÌ9OÑ +'nG¨wK}!ÁîvˆJ«37ñ®°š»ÛupçMé’ªç +endobj +2829 0 obj << +/Type /Page +/Contents 2830 0 R +/Resources 2828 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2726 0 R +>> endobj +2831 0 obj << +/D [2829 0 R /XYZ 71.731 778.968 null] +>> endobj +654 0 obj << +/D [2829 0 R /XYZ 198.718 758.046 null] +>> endobj +2832 0 obj << +/D [2829 0 R /XYZ 71.731 751.854 null] +>> endobj +1776 0 obj << +/D [2829 0 R /XYZ 71.731 711.058 null] +>> endobj +658 0 obj << +/D [2829 0 R /XYZ 200.736 687.81 null] +>> endobj +1777 0 obj << +/D [2829 0 R /XYZ 71.731 648.146 null] +>> endobj +662 0 obj << +/D [2829 0 R /XYZ 205.174 620.064 null] +>> endobj +2833 0 obj << +/D [2829 0 R /XYZ 71.731 613.871 null] +>> endobj +1778 0 obj << +/D [2829 0 R /XYZ 71.731 586.026 null] +>> endobj +666 0 obj << +/D [2829 0 R /XYZ 200.736 562.779 null] +>> endobj +1779 0 obj << +/D [2829 0 R /XYZ 71.731 523.114 null] +>> endobj +670 0 obj << +/D [2829 0 R /XYZ 243.909 495.033 null] +>> endobj +2834 0 obj << +/D [2829 0 R /XYZ 71.731 487.597 null] +>> endobj +1780 0 obj << +/D [2829 0 R /XYZ 71.731 460.995 null] +>> endobj +674 0 obj << +/D [2829 0 R /XYZ 200.736 437.747 null] +>> endobj +1781 0 obj << +/D [2829 0 R /XYZ 71.731 398.083 null] +>> endobj +678 0 obj << +/D [2829 0 R /XYZ 263.276 370.002 null] +>> endobj +2835 0 obj << +/D [2829 0 R /XYZ 71.731 362.566 null] +>> endobj +1782 0 obj << +/D [2829 0 R /XYZ 71.731 335.964 null] +>> endobj +682 0 obj << +/D [2829 0 R /XYZ 200.736 312.716 null] +>> endobj +1783 0 obj << +/D [2829 0 R /XYZ 71.731 273.052 null] +>> endobj +686 0 obj << +/D [2829 0 R /XYZ 276.187 244.97 null] +>> endobj +2836 0 obj << +/D [2829 0 R /XYZ 71.731 237.535 null] +>> endobj +1784 0 obj << +/D [2829 0 R /XYZ 71.731 210.933 null] +>> endobj +690 0 obj << +/D [2829 0 R /XYZ 200.736 187.685 null] +>> endobj +1785 0 obj << +/D [2829 0 R /XYZ 71.731 148.021 null] +>> endobj +2828 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2839 0 obj << +/Length 1175 +/Filter /FlateDecode +>> +stream +xÚå˜]oÛ6†ïó+t)3+Rüä¢K×"²¨Û¡[C–åX«-–ܵûõ{)IþŠ`Ib‘‡‡‡äó’´¸â{†3áab–èØËV¡w‹šWœ<Fä2Úñùi|ñìe$½‘7ž{Q¬™J´gbÁ”’Þxö‡µH×M¾ FB…¾`î9^äÎxó:Àÿß‚Dølý©øâJoªÙvp?þÿrñó¸ÏB Î"q6Or9ÊSs–(eå<A‚¤bJÝ&jsBwÏ^Jx†Ìhë($S&AäÖCó·Í¦(oß^DÍ™š¯–i]““¦g„é Cå8R õZÔ´ˆýjúWž5ÎÞäk“×yÙPuÓNŒçoåÎòq_×9Z1ª<¸^TÛåÌÙS +XÛVTÿwÑ,œ•ReÛż&/ÙøÛ5õ\
9bÔ˜…˜Þ1]¯—E–6EUºåmÝñÌËz»!ŠÆ=«Ò.üW÷’Ue“eíÞ>Bù鲘Qå"ݤТêyE5näÖÂŒ°~±úu@zB1‰•k$Lì¿Ù)4•mHEžIw
9ÓÜ-]æê0Ü] ûú1TáäU^Zì9R~Ý® +÷¹Gq«Mf@Ý:ê0OGíñFù”:¼aÞpK©¦ß×moäÕ…m‰ŽˆhJð¹¯L<ɾþÈ~×dãb•Ÿˆ'c„“÷pm"&ÑÉ[‹Þ¹\hp%ÞAEtkÑýEûïÆWã R¾Íª'u§ã—M—Ed£ »±hwcÑD6E™S]·nKÚ£Y´Cf«ÔÆ4ÆÿðáææÅ‹Åbµªëß™cÈ]YQ¹È—ëö>‹Âù¶ÌìRž`J„šñÈÐÜ6Ø6ÙñôJÅâþLMËÙq$nG’Î1D3,æ]²´tN)ëmÏ\I«R;t¶tºE\²8IöäÝcPk Lq +endobj +2838 0 obj << +/Type /Page +/Contents 2839 0 R +/Resources 2837 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2850 0 R +>> endobj +2840 0 obj << +/D [2838 0 R /XYZ 71.731 778.968 null] +>> endobj +694 0 obj << +/D [2838 0 R /XYZ 237.453 758.046 null] +>> endobj +2841 0 obj << +/D [2838 0 R /XYZ 71.731 750.611 null] +>> endobj +1786 0 obj << +/D [2838 0 R /XYZ 71.731 724.009 null] +>> endobj +698 0 obj << +/D [2838 0 R /XYZ 200.736 700.761 null] +>> endobj +1787 0 obj << +/D [2838 0 R /XYZ 71.731 661.097 null] +>> endobj +702 0 obj << +/D [2838 0 R /XYZ 269.732 633.015 null] +>> endobj +2842 0 obj << +/D [2838 0 R /XYZ 71.731 625.58 null] +>> endobj +1788 0 obj << +/D [2838 0 R /XYZ 71.731 598.978 null] +>> endobj +706 0 obj << +/D [2838 0 R /XYZ 200.736 575.73 null] +>> endobj +1789 0 obj << +/D [2838 0 R /XYZ 71.731 536.066 null] +>> endobj +710 0 obj << +/D [2838 0 R /XYZ 237.453 507.984 null] +>> endobj +2843 0 obj << +/D [2838 0 R /XYZ 71.731 500.549 null] +>> endobj +1790 0 obj << +/D [2838 0 R /XYZ 71.731 473.947 null] +>> endobj +714 0 obj << +/D [2838 0 R /XYZ 200.736 450.699 null] +>> endobj +1791 0 obj << +/D [2838 0 R /XYZ 71.731 411.035 null] +>> endobj +718 0 obj << +/D [2838 0 R /XYZ 224.541 382.953 null] +>> endobj +2844 0 obj << +/D [2838 0 R /XYZ 71.731 376.76 null] +>> endobj +2845 0 obj << +/D [2838 0 R /XYZ 325.689 351.072 null] +>> endobj +2846 0 obj << +/D [2838 0 R /XYZ 388.646 351.072 null] +>> endobj +1792 0 obj << +/D [2838 0 R /XYZ 71.731 335.964 null] +>> endobj +722 0 obj << +/D [2838 0 R /XYZ 200.736 312.716 null] +>> endobj +1793 0 obj << +/D [2838 0 R /XYZ 71.731 273.052 null] +>> endobj +726 0 obj << +/D [2838 0 R /XYZ 276.187 244.97 null] +>> endobj +2847 0 obj << +/D [2838 0 R /XYZ 71.731 238.778 null] +>> endobj +2848 0 obj << +/D [2838 0 R /XYZ 368.545 213.09 null] +>> endobj +2849 0 obj << +/D [2838 0 R /XYZ 430.297 213.09 null] +>> endobj +1794 0 obj << +/D [2838 0 R /XYZ 71.731 197.982 null] +>> endobj +730 0 obj << +/D [2838 0 R /XYZ 200.736 174.734 null] +>> endobj +1795 0 obj << +/D [2838 0 R /XYZ 71.731 135.07 null] +>> endobj +2837 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2853 0 obj << +/Length 967 +/Filter /FlateDecode +>> +stream +xÚí˜ßoœ8ÇßóWðR×µm R.QºÊImsÊ^ï¡=Ø]§KKcÙ´ýïoŒ0l~ét«*R)xÇ_fÆžG +áÅ$Q±·þzB½O03?a¨˜¡dæhÎ'/_‡ÂKÀz‹/Œ‘‰ò¢˜)…·Ø|ðÏ·iÕè:˜qI}Nìu±Õvpõ.€ÿ ÷Iõ%ûnoÊÍ>˜¯ƒ¿¿Ÿ\,ú,$g$俉’ƒ<9÷#‰”&QÆHɘP¡ÚDMNîåkJJ"e„\%àÙ(æuZm³õuSgÅ'«y#ÂE'>ÏÓÝEjØ¢}Ìc@~<ÁÐÙVr¿\}ÖëÆŒC¿ÖUwºhp®i7
¿]¿eV2ÎȪ~TšØÙl!zýݶÜç›Ã(®}…v'¿eÍÖšRT·‘ˆµ]6f}°Þã°¬]Kj¸¯ìµ)ñÚ•<ª<[§MVc…†t‹Ý¾F]ÖØkYä?ìh]Mšà6àÒOólƒ“Û´N×@Nß”u¸KÉnMW·¾$?—DPéÔmƣؿªñ›Ò܈µCÏp¥ºQÌqmoT”NËbL©¤Ëy0¨]§ù»¶`e¯ÚMGDIäFߨ{—ˬȚåÒø(+³qi~j\ÑV +
N[r`€ÐÃÒ2Õ¿
˜ôÝô¬ñ‡áð”#œÎ> éÚWÊž +endobj +2852 0 obj << +/Type /Page +/Contents 2853 0 R +/Resources 2851 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2850 0 R +>> endobj +2854 0 obj << +/D [2852 0 R /XYZ 71.731 778.968 null] +>> endobj +734 0 obj << +/D [2852 0 R /XYZ 263.276 758.046 null] +>> endobj +2855 0 obj << +/D [2852 0 R /XYZ 71.731 750.611 null] +>> endobj +1796 0 obj << +/D [2852 0 R /XYZ 71.731 724.009 null] +>> endobj +738 0 obj << +/D [2852 0 R /XYZ 200.736 700.761 null] +>> endobj +1797 0 obj << +/D [2852 0 R /XYZ 71.731 661.097 null] +>> endobj +742 0 obj << +/D [2852 0 R /XYZ 263.276 633.015 null] +>> endobj +2856 0 obj << +/D [2852 0 R /XYZ 71.731 625.58 null] +>> endobj +1798 0 obj << +/D [2852 0 R /XYZ 71.731 598.978 null] +>> endobj +746 0 obj << +/D [2852 0 R /XYZ 200.736 575.73 null] +>> endobj +1799 0 obj << +/D [2852 0 R /XYZ 71.731 536.066 null] +>> endobj +750 0 obj << +/D [2852 0 R /XYZ 263.276 507.984 null] +>> endobj +2857 0 obj << +/D [2852 0 R /XYZ 71.731 500.549 null] +>> endobj +1800 0 obj << +/D [2852 0 R /XYZ 71.731 473.947 null] +>> endobj +754 0 obj << +/D [2852 0 R /XYZ 200.736 450.699 null] +>> endobj +1801 0 obj << +/D [2852 0 R /XYZ 71.731 411.035 null] +>> endobj +758 0 obj << +/D [2852 0 R /XYZ 276.187 382.953 null] +>> endobj +2858 0 obj << +/D [2852 0 R /XYZ 71.731 375.517 null] +>> endobj +1802 0 obj << +/D [2852 0 R /XYZ 71.731 348.916 null] +>> endobj +762 0 obj << +/D [2852 0 R /XYZ 200.736 325.668 null] +>> endobj +1803 0 obj << +/D [2852 0 R /XYZ 71.731 286.004 null] +>> endobj +766 0 obj << +/D [2852 0 R /XYZ 237.453 257.922 null] +>> endobj +2859 0 obj << +/D [2852 0 R /XYZ 71.731 250.486 null] +>> endobj +1804 0 obj << +/D [2852 0 R /XYZ 71.731 223.885 null] +>> endobj +770 0 obj << +/D [2852 0 R /XYZ 200.736 200.637 null] +>> endobj +1805 0 obj << +/D [2852 0 R /XYZ 71.731 160.972 null] +>> endobj +774 0 obj << +/D [2852 0 R /XYZ 230.997 132.891 null] +>> endobj +2860 0 obj << +/D [2852 0 R /XYZ 71.731 125.455 null] +>> endobj +1806 0 obj << +/D [2852 0 R /XYZ 71.731 111.805 null] +>> endobj +2851 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2863 0 obj << +/Length 2540 +/Filter /FlateDecode +>> +stream +xÚ]sã¸í}…ß*ÏØ¬HQ”Ô™{¸n³×ëÜî^»nûÐídd›ŽÕ(’O’7›_€ + +¿äåÙ¾.Æa÷xÓ[^{«Xè0v[Ñð¢VÃ}ªPè4&ˆá5?§§c‘†)£½·Ý±Þ3’15F¨ìP&"£™0˜ $jþŠçô´Y–1Z{¬Ïå~¹Ž²$ØZü¦ANÓ²h;Ô
Aºó©d$ŸÃ±*ð©;uGKh=kÚ|àÍGÞÚ²I‚o–)\éR‚{ x8ÕM—W»'<½ŽñôJdðE¡ìÃÖ6H?6AÞX ’‹¤¶{tÇ¢½lmלw vÇŠã@л¢i»¹NUh„fmÙò *ûµ›k5–ná
üü÷<HUÓ÷l퉡M¾»§¡S|ÅîH:PUŒT¬E&ðƒa„I5œ¿³FHÛ‡œó–¶ÖVB—cÔóngÛù,Ÿ–Æ©1)¤:J ¶ýêŠvâP$j¢çí.Q"1ñ…Ý!ù%~à©@¹/Yùb©Hèljdž*‹ÂT¦ƒÚEÖ€-\/ªœn +9lªçT%ø¦ç-ˆ&j):›ú +Ô<ç3ä4õ7´¢ikOy“;÷xV â¨HLh.8q{‰Îj#ï@xu
zPÇÊ=°ïG1TVÑÄ÷;_ìMí!ßÑ—ì +½Fô79M£k¥
$!p<%€‹)Úg¥ãKVšýZGa”W{Z…¹€À¢rñL“zµñ‘KÇ=—>–¯NÑ€H:—×Ð<ÅùD`D:ÉÆ¡Ø•<W2U$’>ÿ¯XÉY& N(yûtåš•0I_×P%ÊUè•€f-ÓÞçÙÃÅô-†ÊÁ†…wvåø*uîEb,ÔûKKÄvyYº{‚1F$ü’÷ãˆê»;„ï©©!U¶—¨›Áz`V0)ôáAlRµ4ry2‰(9dÇÌ@
¹¥ïC8_ðŸ“?Y–•œ"Îæ9_ðV—$P(¦¹ùÇR£IÓÌy¶õþŦ
#ÔÔï”\æTðjÒ쵤¢µH5qà÷µs¥])ŒYtLõf„Q¬AŸ.pâë2hŒ“ÓlxÝÃ$$5¾%G²BÑjzÔ¶f†,ê.¯ˆ‹+|œXTzYg¬óà¾%üxxÆ·½Ëýsà•f¼ò’š†Ôg}&ô.곂¸Ö9¼_g +®»b™0æš-LŽ€Ù/žÚÂK1Ï@uÞשxñ©4Toâ +×¼‹«¨#{&@z ÕìBF”Œá‹'–Úé +ŠtàùûwÈJ¡0Ÿá›/ª]…\£À’c
ßþÃI€O„yæ8 :ö=ôŠ¢iÏo˜¯izäQ‰Rû†òC]Ùoh€Ö_±4ZјÌMMÛÄO^-1ÔÓ'%wMÆLÑWW`‚V3
ƒ~}C²`¸²Ï@œs¡v~@`Œ-W8Xë•B2ZÉKs5ôIFdL/8Æ>Ë%·÷¸Ü$˜)ÐÄZÁ:ÐXÑf“ðS]ß³+vÍ +ÙãìGþ#.¬ä_L5êþ—~SPf?©ÆRŠ(N<<V>ó³èœÓÿ +ý¸hendstream +endobj +2862 0 obj << +/Type /Page +/Contents 2863 0 R +/Resources 2861 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2850 0 R +>> endobj +2864 0 obj << +/D [2862 0 R /XYZ 71.731 778.968 null] +>> endobj +778 0 obj << +/D [2862 0 R /XYZ 200.736 758.046 null] +>> endobj +1807 0 obj << +/D [2862 0 R /XYZ 71.731 665.082 null] +>> endobj +782 0 obj << +/D [2862 0 R /XYZ 221.26 641.085 null] +>> endobj +2865 0 obj << +/D [2862 0 R /XYZ 71.731 634.889 null] +>> endobj +2866 0 obj << +/D [2862 0 R /XYZ 139.004 623.152 null] +>> endobj +2867 0 obj << +/D [2862 0 R /XYZ 326.198 610.201 null] +>> endobj +2868 0 obj << +/D [2862 0 R /XYZ 370.278 597.249 null] +>> endobj +1808 0 obj << +/D [2862 0 R /XYZ 71.731 564.208 null] +>> endobj +786 0 obj << +/D [2862 0 R /XYZ 242.779 540.96 null] +>> endobj +2869 0 obj << +/D [2862 0 R /XYZ 71.731 535.8 null] +>> endobj +2870 0 obj << +/D [2862 0 R /XYZ 174.708 510.076 null] +>> endobj +2871 0 obj << +/D [2862 0 R /XYZ 270.258 510.076 null] +>> endobj +2872 0 obj << +/D [2862 0 R /XYZ 431.25 510.076 null] +>> endobj +2873 0 obj << +/D [2862 0 R /XYZ 71.731 489.987 null] +>> endobj +2874 0 obj << +/D [2862 0 R /XYZ 465.031 479.192 null] +>> endobj +2875 0 obj << +/D [2862 0 R /XYZ 132.225 466.241 null] +>> endobj +2876 0 obj << +/D [2862 0 R /XYZ 210.033 466.241 null] +>> endobj +2877 0 obj << +/D [2862 0 R /XYZ 259.939 466.241 null] +>> endobj +1809 0 obj << +/D [2862 0 R /XYZ 71.731 446.151 null] +>> endobj +790 0 obj << +/D [2862 0 R /XYZ 199.74 422.903 null] +>> endobj +2878 0 obj << +/D [2862 0 R /XYZ 71.731 417.743 null] +>> endobj +2879 0 obj << +/D [2862 0 R /XYZ 306.755 404.97 null] +>> endobj +2880 0 obj << +/D [2862 0 R /XYZ 460.877 404.97 null] +>> endobj +2881 0 obj << +/D [2862 0 R /XYZ 119.552 392.019 null] +>> endobj +1810 0 obj << +/D [2862 0 R /XYZ 71.731 386.849 null] +>> endobj +794 0 obj << +/D [2862 0 R /XYZ 205.12 361.633 null] +>> endobj +2882 0 obj << +/D [2862 0 R /XYZ 71.731 356.472 null] +>> endobj +2883 0 obj << +/D [2862 0 R /XYZ 71.731 356.472 null] +>> endobj +2884 0 obj << +/D [2862 0 R /XYZ 119.552 330.749 null] +>> endobj +2885 0 obj << +/D [2862 0 R /XYZ 197.36 330.749 null] +>> endobj +2886 0 obj << +/D [2862 0 R /XYZ 323.943 330.749 null] +>> endobj +1811 0 obj << +/D [2862 0 R /XYZ 71.731 312.716 null] +>> endobj +798 0 obj << +/D [2862 0 R /XYZ 194.361 287.411 null] +>> endobj +2887 0 obj << +/D [2862 0 R /XYZ 71.731 282.251 null] +>> endobj +2888 0 obj << +/D [2862 0 R /XYZ 71.731 223.486 null] +>> endobj +2889 0 obj << +/D [2862 0 R /XYZ 71.731 223.486 null] +>> endobj +2890 0 obj << +/D [2862 0 R /XYZ 393.694 199.74 null] +>> endobj +2891 0 obj << +/D [2862 0 R /XYZ 331.829 186.789 null] +>> endobj +1812 0 obj << +/D [2862 0 R /XYZ 71.731 166.699 null] +>> endobj +802 0 obj << +/D [2862 0 R /XYZ 194.361 143.451 null] +>> endobj +2892 0 obj << +/D [2862 0 R /XYZ 71.731 137.255 null] +>> endobj +2893 0 obj << +/D [2862 0 R /XYZ 444.636 112.567 null] +>> endobj +2861 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F33 1203 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2896 0 obj << +/Length 948 +/Filter /FlateDecode +>> +stream +xÚÕWßoÛ6~Ï_¡G ¨X’")±@¶Ì6 M·xØC;ŠLÛjeI“¨6ùï{)YþQ§ÉŒaƒ“<~<ÞïãQÄÃð#^LPA'HŠÄË6Ø[ÁÌÏÄ!B '˜ç/¯"æIDÞ|éE‰@\ +/N(âœyóÅ{ÿrÖZ5AH9ö)²í|lçÝu +©Rª¨Êý/{Ï +|rÝE¾4ˆ¥j¿Ûåº=ÛÝûÅÜÏy¡ªûÚio·›í¨ì6wªqã¡|\E
G¯£þ¼Z¥!ŸÓ¢S‚W<⦟T%(!ñÉ/¿-äàÃÊŠ `b6È7>Þwú +<ºjendstream +endobj +2895 0 obj << +/Type /Page +/Contents 2896 0 R +/Resources 2894 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2850 0 R +>> endobj +2897 0 obj << +/D [2895 0 R /XYZ 71.731 778.968 null] +>> endobj +1934 0 obj << +/D [2895 0 R /XYZ 71.731 790.923 null] +>> endobj +1813 0 obj << +/D [2895 0 R /XYZ 71.731 768.009 null] +>> endobj +806 0 obj << +/D [2895 0 R /XYZ 243.909 758.046 null] +>> endobj +2898 0 obj << +/D [2895 0 R /XYZ 71.731 750.611 null] +>> endobj +1814 0 obj << +/D [2895 0 R /XYZ 71.731 736.96 null] +>> endobj +810 0 obj << +/D [2895 0 R /XYZ 200.736 713.713 null] +>> endobj +1815 0 obj << +/D [2895 0 R /XYZ 71.731 679.03 null] +>> endobj +814 0 obj << +/D [2895 0 R /XYZ 221.26 655.033 null] +>> endobj +2899 0 obj << +/D [2895 0 R /XYZ 71.731 648.836 null] +>> endobj +2900 0 obj << +/D [2895 0 R /XYZ 137.534 637.1 null] +>> endobj +1816 0 obj << +/D [2895 0 R /XYZ 71.731 624.98 null] +>> endobj +818 0 obj << +/D [2895 0 R /XYZ 198.718 597.648 null] +>> endobj +2901 0 obj << +/D [2895 0 R /XYZ 71.731 591.455 null] +>> endobj +1817 0 obj << +/D [2895 0 R /XYZ 71.731 576.562 null] +>> endobj +822 0 obj << +/D [2895 0 R /XYZ 200.736 553.314 null] +>> endobj +1818 0 obj << +/D [2895 0 R /XYZ 71.731 518.631 null] +>> endobj +826 0 obj << +/D [2895 0 R /XYZ 221.26 494.634 null] +>> endobj +2902 0 obj << +/D [2895 0 R /XYZ 71.731 488.438 null] +>> endobj +2903 0 obj << +/D [2895 0 R /XYZ 137.534 476.701 null] +>> endobj +1928 0 obj << +/D [2895 0 R /XYZ 71.731 464.582 null] +>> endobj +830 0 obj << +/D [2895 0 R /XYZ 211.63 437.249 null] +>> endobj +2904 0 obj << +/D [2895 0 R /XYZ 71.731 431.057 null] +>> endobj +1929 0 obj << +/D [2895 0 R /XYZ 71.731 416.163 null] +>> endobj +834 0 obj << +/D [2895 0 R /XYZ 200.736 392.916 null] +>> endobj +1930 0 obj << +/D [2895 0 R /XYZ 71.731 358.233 null] +>> endobj +838 0 obj << +/D [2895 0 R /XYZ 221.26 334.236 null] +>> endobj +2905 0 obj << +/D [2895 0 R /XYZ 71.731 328.039 null] +>> endobj +2906 0 obj << +/D [2895 0 R /XYZ 137.534 316.303 null] +>> endobj +1931 0 obj << +/D [2895 0 R /XYZ 71.731 304.183 null] +>> endobj +842 0 obj << +/D [2895 0 R /XYZ 230.997 276.851 null] +>> endobj +2907 0 obj << +/D [2895 0 R /XYZ 71.731 269.415 null] +>> endobj +1932 0 obj << +/D [2895 0 R /XYZ 71.731 242.814 null] +>> endobj +846 0 obj << +/D [2895 0 R /XYZ 200.736 219.566 null] +>> endobj +1933 0 obj << +/D [2895 0 R /XYZ 71.731 161.57 null] +>> endobj +2894 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2910 0 obj << +/Length 1733 +/Filter /FlateDecode +>> +stream +xÚÍÛnÛ6ô=_áGˆYñ¦Ë€>l][tÀÖb
°‡u™Žµ*’!QMó÷;‡‡”%KiÚa(† +oƈ("¦R „ãúº¬K{}MhczJ³4J=گƚ!Iy¢µc&2', ×|>UÞužd<")Y$ÉË95ÅÒTøc ²oÚ»9™°Xg_&ÂODêþî<5#£#P/éM_íÀO*ZßZóŽÖîhŠòC ãÊšVÎ<xäßÿÆi·kŠþÎÔ6·eãAãPz¢ÍÍߦ°lÁ \q&â6‚eš,Z4µ’KÕLÊs%¤WÖ¼¦•øÑ¾¬;›×…Çèúâàq»¹8\)–%Áeo@ŒÛ%c>í“dˆ¸·ånN€§LÉà5g.ˆ–iËÐëO®×f7WèþPºþxlZÛÑ—
á?±°Ðœñ”{sJƒ×¦6m^½E²sñÁ”V(Á +í~ÃAÀ°yâl=öVFŠÇW&bg윘%‚ôÑ”“™ð9(î§¼êÍ\˜‘z¸XëcÜuÞb½+[²¬âkÛÌÙ%â3žI=u¦V£ÙY{pµÏí
zòó±*‹Ò3"w^Òq×Å(;ùºn<Ò”¯xÁ‹N™É]àÀgUv|ë…è•ù騯AšÊP‘ÂH€àÉ$éšž +wÞúºÊÚ²¾õPZ 5;Ûö…Ö;‚‘2À†/DGôqqûMq1vÃ4.ÄÀÏÉø 3Ê ‰¼§õÌ3z”h*£ˆXklßÖÆ«›×~C¾Í±÷瓱œùO6ጃQ2¦´˜…G,!£(¦“ ò‹CSf,Ò!Q_,w!ìY±DgƒEæYÝ}žÇÖt®ò’üTî³Pîä%¡ã‡£Yö¸ÐLAÞ„ÚŠ$]¿k7Ú/._¼ÈYÌIDê©Û8:1Åý.‚Osl€¯)´vfO¡ÅcÜîfw‰'GlRyõ<º$T¸“÷•}þA…ñKÄ#O7™ÒEÓ`”GsÌ3 <ž+JO"ß~%QÛ¼·-¤ã2ò™¬û¶¹ûz|®Z¾CIJyõ¾-+)û²:)wÖ‚{FqðG3jÞýsD3nr>HdšÊ,¬˜Á™‚æP¸iìê®.k:úý¶Ô¡4Zú^ìÈ’œ'¡ûOZñBwXh½Ü‹ªq°ùˆpWѨÌKè‘“Îc¨¤såÓ›Ëuß9ýNGÊYÔ)üçt8€«xcZ¾T +æç+ZM]4;´>ÿüòw‚íí’¾)$`0„^¯&A"^òØE<®=NEÆñ1€+ ÌŒ:ÔÁÐñB2=0tÜUZF
×ê
m±Øø+m Už¸·D·ôô5TSFû7žEmJ¬Û\ª„‰T=S1LÄú4~/͘’©³gÉã>«IˆŽ§œC;Ç6QmçÏ‹Ð[¡ã†š‚CEèÔAúò¯ñCÞMfމ£p_VþÊgzhê¦5»¥QÞkòm#›kŒsbP|â8}jhƒw)×ülh*ïûºðïJ7žl±C”9º8~vgÆ<
ÕhL(í0½ÚÇæÀvaÔ
£ mÂÀG5õ̾Xåÿƒ÷{=„D¬gçÄ?œSz{&á +ÎÉ» +endobj +2909 0 obj << +/Type /Page +/Contents 2910 0 R +/Resources 2908 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2850 0 R +>> endobj +2911 0 obj << +/D [2909 0 R /XYZ 71.731 778.968 null] +>> endobj +1943 0 obj << +/D [2909 0 R /XYZ 71.731 790.923 null] +>> endobj +850 0 obj << +/D [2909 0 R /XYZ 221.26 758.046 null] +>> endobj +2912 0 obj << +/D [2909 0 R /XYZ 71.731 751.85 null] +>> endobj +2913 0 obj << +/D [2909 0 R /XYZ 71.731 751.85 null] +>> endobj +2914 0 obj << +/D [2909 0 R /XYZ 167.472 740.114 null] +>> endobj +2915 0 obj << +/D [2909 0 R /XYZ 210.012 740.114 null] +>> endobj +2916 0 obj << +/D [2909 0 R /XYZ 119.552 727.162 null] +>> endobj +2917 0 obj << +/D [2909 0 R /XYZ 309.86 727.162 null] +>> endobj +2918 0 obj << +/D [2909 0 R /XYZ 352.302 727.162 null] +>> endobj +2919 0 obj << +/D [2909 0 R /XYZ 119.552 714.211 null] +>> endobj +854 0 obj << +/D [2909 0 R /XYZ 194.361 683.825 null] +>> endobj +2920 0 obj << +/D [2909 0 R /XYZ 71.731 678.664 null] +>> endobj +2921 0 obj << +/D [2909 0 R /XYZ 71.731 678.664 null] +>> endobj +2922 0 obj << +/D [2909 0 R /XYZ 222.123 665.892 null] +>> endobj +1935 0 obj << +/D [2909 0 R /XYZ 71.731 645.802 null] +>> endobj +858 0 obj << +/D [2909 0 R /XYZ 194.361 622.554 null] +>> endobj +2923 0 obj << +/D [2909 0 R /XYZ 71.731 616.358 null] +>> endobj +1936 0 obj << +/D [2909 0 R /XYZ 71.731 592.502 null] +>> endobj +862 0 obj << +/D [2909 0 R /XYZ 218.085 565.17 null] +>> endobj +2924 0 obj << +/D [2909 0 R /XYZ 71.731 558.977 null] +>> endobj +1937 0 obj << +/D [2909 0 R /XYZ 71.731 544.084 null] +>> endobj +866 0 obj << +/D [2909 0 R /XYZ 200.736 520.836 null] +>> endobj +1938 0 obj << +/D [2909 0 R /XYZ 71.731 404.918 null] +>> endobj +870 0 obj << +/D [2909 0 R /XYZ 221.26 380.562 null] +>> endobj +2925 0 obj << +/D [2909 0 R /XYZ 71.731 374.366 null] +>> endobj +2926 0 obj << +/D [2909 0 R /XYZ 71.731 374.366 null] +>> endobj +2927 0 obj << +/D [2909 0 R /XYZ 370.32 362.629 null] +>> endobj +2928 0 obj << +/D [2909 0 R /XYZ 387.302 349.678 null] +>> endobj +2929 0 obj << +/D [2909 0 R /XYZ 308.595 336.726 null] +>> endobj +2930 0 obj << +/D [2909 0 R /XYZ 466.836 323.775 null] +>> endobj +2931 0 obj << +/D [2909 0 R /XYZ 119.552 310.823 null] +>> endobj +1939 0 obj << +/D [2909 0 R /XYZ 71.731 303.685 null] +>> endobj +874 0 obj << +/D [2909 0 R /XYZ 205.12 280.437 null] +>> endobj +2932 0 obj << +/D [2909 0 R /XYZ 71.731 275.277 null] +>> endobj +1940 0 obj << +/D [2909 0 R /XYZ 71.731 255.366 null] +>> endobj +878 0 obj << +/D [2909 0 R /XYZ 194.361 232.119 null] +>> endobj +2933 0 obj << +/D [2909 0 R /XYZ 71.731 226.958 null] +>> endobj +2934 0 obj << +/D [2909 0 R /XYZ 71.731 226.958 null] +>> endobj +1941 0 obj << +/D [2909 0 R /XYZ 71.731 196.154 null] +>> endobj +882 0 obj << +/D [2909 0 R /XYZ 194.361 170.848 null] +>> endobj +2935 0 obj << +/D [2909 0 R /XYZ 71.731 164.652 null] +>> endobj +1942 0 obj << +/D [2909 0 R /XYZ 71.731 134.883 null] +>> endobj +2908 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F33 1203 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2938 0 obj << +/Length 1603 +/Filter /FlateDecode +>> +stream +xÚXÝsÓ8ï_‘·$\",ùûá -Pæ ÍÁÃqsã8Jãñ‚-·ôþúÛ•VNÜ$
Ì0Ðz%ÿ´Úýí‡Tóÿø æ,öá',’A¾>ó·ðæõ'Ä” ÓÌËÙÙóW~0HaÂÌ–?‰X˜Fƒ8,ƒÁlñ×è|•m´¬ÇSz#Áìs¶’Vøp=†ßŸÇ©±Í×â»}§m9æ#9þ{ööìrÖY +Î|ñ¤Ù³Sˆœ§`è æ‘±M‚Ýž¿ +Ä +M +p|·ÎM¹`iÈ‹ó¼q)-E~a’„mS€—.w‰æ"e’e}T.*¹Ouè³8uKMé²lä„LYöjõ¨¢r‰¬gm©]ÂeÚ¦æ^4ZÕrÁˆÄgžßO +Û㘪ÚÊ»,ÁФ8<)ÅAZ¶U®Eð…2Ñ‹“Q¥´*ªE‘gš4mžË†ÖÎÇ%Üý +Ø´êžþÙà«7úD ã8½ÚÔ +u™ÈXÕSãGq¶]!˶,ÆQhÈpÕ¨iž2´â®Pmm§ +*ó;´ÎJ;‚4³¯iW›½0ÎUý¢¥ä„ ý°‘¤P¹¤YÃ.(R ÕÕ×ÙYB@µA:í¶0ª{.ÙÔ%“±,ä±Ì ´z… ¬(ÛšZuI
†@^Û¡!–j†ó®ûÛà¹é‡î0O[™¹4&ÿ‚6w_Zès)‹¢“'\è1ò^Jcò¹ tBɵ ”M]¡`r…¹”•• Û£€]ª}aåâ1~+e' +šj8æt·Ñn¼”€ÛxMÜ‹½¾âƒCž’û²¾¬k›}‚ˆñÀ±Ô‹Œy?òÔ}/“ìG¼Î +¬(—t}.E€óö¹Û`h›T‡(Q°=(\Y;GÈݱ9q/¦Ð©:‚<ѲbvÂYöXûp†£æ µ(¿µ¶Ò,ŒýJëŽú~¤pÆšwÛ?=05Þ«þ]¨ÑŦ-÷ nUT¨×Øüîû×1R(+w&Aézü½ãÅ•çàJèJ1e5ÅÝRä‹#ºN„±»NœËZKÛ¹÷µÅó}wY8ÇÓ˜òv§j§)¤0`"K½Ø^9¿gëMI¾ˆ)'ço¤Öݽn·;¤hÛQ“z׸M)lÆYÄS{ij Ì"8<~·×ŸÙ‹æa½–p¿Ë¿x¡?¼‹:,#:2j½·ÿ@`dÂxÊGhÆAq§ƒA|’uYHþÄv½‘u‘•ˆw‘ÂgвÊÖ²g‚·Òv¤Dƒa®ÚJ×hîÃ{X;D½“í‚á.º:›—Ò^¬‡ônøú¥vH>±+Ѥ +endobj +2937 0 obj << +/Type /Page +/Contents 2938 0 R +/Resources 2936 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2850 0 R +>> endobj +2939 0 obj << +/D [2937 0 R /XYZ 71.731 778.968 null] +>> endobj +886 0 obj << +/D [2937 0 R /XYZ 221.26 758.046 null] +>> endobj +2940 0 obj << +/D [2937 0 R /XYZ 71.731 751.85 null] +>> endobj +890 0 obj << +/D [2937 0 R /XYZ 232.019 709.728 null] +>> endobj +2941 0 obj << +/D [2937 0 R /XYZ 71.731 703.531 null] +>> endobj +1944 0 obj << +/D [2937 0 R /XYZ 71.731 684.657 null] +>> endobj +894 0 obj << +/D [2937 0 R /XYZ 199.74 661.409 null] +>> endobj +2942 0 obj << +/D [2937 0 R /XYZ 71.731 656.248 null] +>> endobj +2943 0 obj << +/D [2937 0 R /XYZ 71.731 656.248 null] +>> endobj +2944 0 obj << +/D [2937 0 R /XYZ 248.786 630.525 null] +>> endobj +2945 0 obj << +/D [2937 0 R /XYZ 71.731 623.386 null] +>> endobj +1945 0 obj << +/D [2937 0 R /XYZ 71.731 579.551 null] +>> endobj +898 0 obj << +/D [2937 0 R /XYZ 205.12 556.303 null] +>> endobj +2946 0 obj << +/D [2937 0 R /XYZ 71.731 551.142 null] +>> endobj +2947 0 obj << +/D [2937 0 R /XYZ 436.587 538.37 null] +>> endobj +2948 0 obj << +/D [2937 0 R /XYZ 71.731 520.338 null] +>> endobj +1946 0 obj << +/D [2937 0 R /XYZ 71.731 482.415 null] +>> endobj +902 0 obj << +/D [2937 0 R /XYZ 250.364 455.082 null] +>> endobj +2144 0 obj << +/D [2937 0 R /XYZ 71.731 454.867 null] +>> endobj +2949 0 obj << +/D [2937 0 R /XYZ 71.731 418.191 null] +>> endobj +1947 0 obj << +/D [2937 0 R /XYZ 71.731 175.431 null] +>> endobj +2936 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2952 0 obj << +/Length 1041 +/Filter /FlateDecode +>> +stream +xÚÝX[oÛ6~ϯУÄI‰ºèÃÚuC4-o{X†@±i[›-¹Õ&ÿ~çèP±:±¶y˜4u¾s¿P‡ðÁ’–$eYœz‹Ý÷Öðäç3a)f–d6 y;?ûî§0ò28½ùÊÓ˜©,ö’T2¥"o¾ü÷É÷F×ÁL*îKFë|£ióéc +&Òô¤¡²»Œx\/a$z?B.•t@%ƒ»£%“²4R'KF@àÂÇ%ƒ</+\Á›_n¢ÃQæ5DPàXZ•¬ÃqU‡À"å&Ç«Mê˜ïº+£5¬w"GÆÒ,UIÙîn§Rþk$:)ùÅÎþÎI±›ýÖSÿer—Æù‹ç®ëÛëÕ“½^ÊÌŠ»„Kœ+LFŒ§Ï¿+]†QÌ$-ùð–ïðÁ†¸m_
:õû.‘[4æð]¾Ûoõ_˜¶ "²!H¦gâ«…`”ˆvÜ,ªÝŠpKÆÙÜjÁÄþqirx·)×6'!SëUóB”nw¯PŒÿ¿4¾mÛWþÆ€HžýSà@âü' à®ÂÍÔ’ >aôÄ{½+é±HQ +endstream +endobj +2951 0 obj << +/Type /Page +/Contents 2952 0 R +/Resources 2950 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2967 0 R +>> endobj +2953 0 obj << +/D [2951 0 R /XYZ 71.731 778.968 null] +>> endobj +1956 0 obj << +/D [2951 0 R /XYZ 71.731 790.923 null] +>> endobj +906 0 obj << +/D [2951 0 R /XYZ 200.736 758.046 null] +>> endobj +1948 0 obj << +/D [2951 0 R /XYZ 71.731 478.581 null] +>> endobj +910 0 obj << +/D [2951 0 R /XYZ 232.019 454.584 null] +>> endobj +2954 0 obj << +/D [2951 0 R /XYZ 71.731 449.424 null] +>> endobj +2955 0 obj << +/D [2951 0 R /XYZ 205.175 436.652 null] +>> endobj +1949 0 obj << +/D [2951 0 R /XYZ 71.731 418.619 null] +>> endobj +914 0 obj << +/D [2951 0 R /XYZ 232.019 393.314 null] +>> endobj +2956 0 obj << +/D [2951 0 R /XYZ 71.731 387.118 null] +>> endobj +1950 0 obj << +/D [2951 0 R /XYZ 71.731 368.243 null] +>> endobj +918 0 obj << +/D [2951 0 R /XYZ 226.64 344.995 null] +>> endobj +2957 0 obj << +/D [2951 0 R /XYZ 71.731 339.835 null] +>> endobj +2958 0 obj << +/D [2951 0 R /XYZ 208.397 327.063 null] +>> endobj +1951 0 obj << +/D [2951 0 R /XYZ 71.731 309.03 null] +>> endobj +922 0 obj << +/D [2951 0 R /XYZ 232.019 283.725 null] +>> endobj +2959 0 obj << +/D [2951 0 R /XYZ 71.731 277.529 null] +>> endobj +1952 0 obj << +/D [2951 0 R /XYZ 71.731 258.654 null] +>> endobj +926 0 obj << +/D [2951 0 R /XYZ 226.64 235.406 null] +>> endobj +2960 0 obj << +/D [2951 0 R /XYZ 71.731 230.246 null] +>> endobj +2961 0 obj << +/D [2951 0 R /XYZ 204.781 217.474 null] +>> endobj +2962 0 obj << +/D [2951 0 R /XYZ 274.997 217.474 null] +>> endobj +1953 0 obj << +/D [2951 0 R /XYZ 71.731 210.335 null] +>> endobj +930 0 obj << +/D [2951 0 R /XYZ 226.64 187.087 null] +>> endobj +2963 0 obj << +/D [2951 0 R /XYZ 71.731 180.891 null] +>> endobj +1954 0 obj << +/D [2951 0 R /XYZ 71.731 162.017 null] +>> endobj +934 0 obj << +/D [2951 0 R /XYZ 232.019 138.769 null] +>> endobj +2964 0 obj << +/D [2951 0 R /XYZ 71.731 132.572 null] +>> endobj +2965 0 obj << +/D [2951 0 R /XYZ 204.781 120.836 null] +>> endobj +2966 0 obj << +/D [2951 0 R /XYZ 274.997 120.836 null] +>> endobj +1955 0 obj << +/D [2951 0 R /XYZ 71.731 113.698 null] +>> endobj +2950 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F33 1203 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2970 0 obj << +/Length 1286 +/Filter /FlateDecode +>> +stream +xÚíXßoÛ6~Ï_¡·Ê@Äð‡(‰{X²¶È€®â¢¶=¨6mk³%W¢’ö¿ß‘GÉr¥8Ù–ÃPŽ$Þéãñ»;ÞQ, ðÇ‚”‘TÀ%͈J²`±;£Á$¯Ï˜×ˆ¼J4йœŸ]¼q `@óU ²„H•iƉ”q0_þ^mò½Ñõ,â’†œàu¾Ñxóîíþ˜)’ýÅg}S-Û팅zöÛüdz—óÞ +Éü¤^ed'ç;S`àÈŒÐ8qvZ“`¶‹W1웉Uä”Ä™ +ÄÅŸÌ—½×«Vî½æŒA±òs6³Ä{óV£0^z;ã2Ì·&ø|£'b‹%ÎDíI¾ŠÛnïÚ¥†’¸ª|‘áïÔ¿ïW¶¡û‰?ì';ò„ŸÆ= +endobj +2969 0 obj << +/Type /Page +/Contents 2970 0 R +/Resources 2968 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2967 0 R +>> endobj +2971 0 obj << +/D [2969 0 R /XYZ 71.731 778.968 null] +>> endobj +1965 0 obj << +/D [2969 0 R /XYZ 71.731 790.923 null] +>> endobj +938 0 obj << +/D [2969 0 R /XYZ 232.019 758.046 null] +>> endobj +2972 0 obj << +/D [2969 0 R /XYZ 71.731 751.85 null] +>> endobj +942 0 obj << +/D [2969 0 R /XYZ 242.779 709.728 null] +>> endobj +2973 0 obj << +/D [2969 0 R /XYZ 71.731 704.567 null] +>> endobj +2974 0 obj << +/D [2969 0 R /XYZ 197.685 691.795 null] +>> endobj +2975 0 obj << +/D [2969 0 R /XYZ 326.964 691.795 null] +>> endobj +2976 0 obj << +/D [2969 0 R /XYZ 398.364 691.795 null] +>> endobj +2977 0 obj << +/D [2969 0 R /XYZ 119.552 678.843 null] +>> endobj +2978 0 obj << +/D [2969 0 R /XYZ 168.014 678.843 null] +>> endobj +2979 0 obj << +/D [2969 0 R /XYZ 216.476 678.843 null] +>> endobj +2980 0 obj << +/D [2969 0 R /XYZ 279.767 678.843 null] +>> endobj +2145 0 obj << +/D [2969 0 R /XYZ 71.731 663.735 null] +>> endobj +2981 0 obj << +/D [2969 0 R /XYZ 71.731 630.993 null] +>> endobj +1957 0 obj << +/D [2969 0 R /XYZ 71.731 581.409 null] +>> endobj +946 0 obj << +/D [2969 0 R /XYZ 242.779 556.004 null] +>> endobj +2982 0 obj << +/D [2969 0 R /XYZ 71.731 549.808 null] +>> endobj +2983 0 obj << +/D [2969 0 R /XYZ 119.552 525.12 null] +>> endobj +1958 0 obj << +/D [2969 0 R /XYZ 71.731 519.95 null] +>> endobj +950 0 obj << +/D [2969 0 R /XYZ 237.399 494.734 null] +>> endobj +2984 0 obj << +/D [2969 0 R /XYZ 71.731 489.573 null] +>> endobj +2985 0 obj << +/D [2969 0 R /XYZ 199.8 476.801 null] +>> endobj +2986 0 obj << +/D [2969 0 R /XYZ 280.776 476.801 null] +>> endobj +1959 0 obj << +/D [2969 0 R /XYZ 71.731 469.663 null] +>> endobj +954 0 obj << +/D [2969 0 R /XYZ 237.399 446.415 null] +>> endobj +2987 0 obj << +/D [2969 0 R /XYZ 71.731 440.219 null] +>> endobj +2988 0 obj << +/D [2969 0 R /XYZ 119.552 415.531 null] +>> endobj +1960 0 obj << +/D [2969 0 R /XYZ 71.731 410.361 null] +>> endobj +958 0 obj << +/D [2969 0 R /XYZ 269.678 385.145 null] +>> endobj +2989 0 obj << +/D [2969 0 R /XYZ 71.731 378.948 null] +>> endobj +2990 0 obj << +/D [2969 0 R /XYZ 205.608 367.212 null] +>> endobj +2991 0 obj << +/D [2969 0 R /XYZ 419.951 354.261 null] +>> endobj +1961 0 obj << +/D [2969 0 R /XYZ 71.731 334.171 null] +>> endobj +962 0 obj << +/D [2969 0 R /XYZ 269.678 310.923 null] +>> endobj +2992 0 obj << +/D [2969 0 R /XYZ 71.731 304.727 null] +>> endobj +1962 0 obj << +/D [2969 0 R /XYZ 71.731 285.852 null] +>> endobj +966 0 obj << +/D [2969 0 R /XYZ 275.058 262.604 null] +>> endobj +2993 0 obj << +/D [2969 0 R /XYZ 71.731 256.408 null] +>> endobj +2994 0 obj << +/D [2969 0 R /XYZ 205.608 244.672 null] +>> endobj +2995 0 obj << +/D [2969 0 R /XYZ 419.951 231.72 null] +>> endobj +1963 0 obj << +/D [2969 0 R /XYZ 71.731 211.63 null] +>> endobj +970 0 obj << +/D [2969 0 R /XYZ 275.058 188.383 null] +>> endobj +2996 0 obj << +/D [2969 0 R /XYZ 71.731 182.186 null] +>> endobj +1964 0 obj << +/D [2969 0 R /XYZ 71.731 163.312 null] +>> endobj +2968 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2999 0 obj << +/Length 1573 +/Filter /FlateDecode +>> +stream +xÚXMsÛ6½çWèf* ++#_À’Ëôj Š7ADPƨ
©Q ti&tP{û˜â&5EN=›·ºÌ®ïÆî8ýä{Ù ¤x³S
TZ_±”å,šÚõo÷v“™`*§Ôª—´v~âf7•v¦&XhÚ”Y¾¶ï8h,l+M¶i³Mì±Pm(¼O)‘,>E¿µé×´'n±@|
«£Dê|¶&Ûbïz›*Ëᯌopó¦´ÜÍ¥ð¡F<š&õ/.<ˆ{YçÕ$yê¶1Íh4-H2 P#–´¤7XæG "˜øIQR$<œÛúùjÜ´/Ƀk§N¶§NTiÎÏ)g(rÀ„V´ú©DѺ_™ ÷§Ä‰r¸yÓð‡6A‰”ñ„LUL §t S`‘ýŽ× ¥a«hÕĚÇ$lÄX%…š¨I½÷Ó +Ÿ·×.Øë@'Á« +EÅ_º+B²³×Dü.ñùánQ×(*£“#À“¸_ø²A"àcD• +çäÅ×¹/ƒÀûÙ>Þ_~2Ÿ<¤Îvš ðàs ;Œ½f»àµÝæ
ɇ¢ …²iÙ€¶œðŽÎµñ~ߟìCOá/Ÿr)žR6ZÍÆ®¬’Ñb¿Tw;ø +(³ôàØM„C©-i¹FéŠ0Û »én°è£›.løvæ¶«Ëd»„ž-ìØ!Óá48-3sø +–™Ó¢Ék\µ¼{sÏÐD$7W5Ö¬ÑÙ«çgC0;!…@!
Ò<½xUC.Ë÷eq•C¨â5dkUmLJ}?¦a¦áå:ɳ¬ïÐáC°˜¯J|{]@Á?‚Þ&-v;€1€@OC8ßf:¯§bpÄ¿ÍPá»»ú¶HÍæ«1…pZ,IÄÕû <ëIöZÔ[¨HOE„=¢×Žƒüÿz=η7tRyŸ{ÒCÜ»ˆÛ2q´I7I(u¬7(¿VU£K\öiQÁôÝèU«ð†¿p›é°Odø1¡Nâ\ÌE§yo_ˆ¿Ñó‹__]\-Ûéý_ºÜÏmÀ°ˆª“?Èu&£ßãlÂÞ™ &.ïùMm¼Òi/)¤endstream +endobj +2998 0 obj << +/Type /Page +/Contents 2999 0 R +/Resources 2997 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2967 0 R +>> endobj +3000 0 obj << +/D [2998 0 R /XYZ 71.731 778.968 null] +>> endobj +974 0 obj << +/D [2998 0 R /XYZ 248.159 758.046 null] +>> endobj +3001 0 obj << +/D [2998 0 R /XYZ 71.731 752.886 null] +>> endobj +3002 0 obj << +/D [2998 0 R /XYZ 207.913 740.114 null] +>> endobj +3003 0 obj << +/D [2998 0 R /XYZ 119.552 727.162 null] +>> endobj +978 0 obj << +/D [2998 0 R /XYZ 248.159 683.825 null] +>> endobj +3004 0 obj << +/D [2998 0 R /XYZ 71.731 677.628 null] +>> endobj +3005 0 obj << +/D [2998 0 R /XYZ 245.727 665.892 null] +>> endobj +3006 0 obj << +/D [2998 0 R /XYZ 343.699 665.892 null] +>> endobj +1966 0 obj << +/D [2998 0 R /XYZ 71.731 658.754 null] +>> endobj +982 0 obj << +/D [2998 0 R /XYZ 199.74 635.506 null] +>> endobj +3007 0 obj << +/D [2998 0 R /XYZ 71.731 629.31 null] +>> endobj +3008 0 obj << +/D [2998 0 R /XYZ 275.44 617.573 null] +>> endobj +3009 0 obj << +/D [2998 0 R /XYZ 353.745 617.573 null] +>> endobj +3010 0 obj << +/D [2998 0 R /XYZ 193.165 604.622 null] +>> endobj +3011 0 obj << +/D [2998 0 R /XYZ 242.231 604.622 null] +>> endobj +1967 0 obj << +/D [2998 0 R /XYZ 71.731 597.484 null] +>> endobj +986 0 obj << +/D [2998 0 R /XYZ 210.5 574.236 null] +>> endobj +3012 0 obj << +/D [2998 0 R /XYZ 71.731 568.039 null] +>> endobj +3013 0 obj << +/D [2998 0 R /XYZ 505.181 556.303 null] +>> endobj +1968 0 obj << +/D [2998 0 R /XYZ 71.731 536.213 null] +>> endobj +990 0 obj << +/D [2998 0 R /XYZ 199.74 512.965 null] +>> endobj +3014 0 obj << +/D [2998 0 R /XYZ 71.731 506.769 null] +>> endobj +3015 0 obj << +/D [2998 0 R /XYZ 279.677 495.033 null] +>> endobj +3016 0 obj << +/D [2998 0 R /XYZ 380.914 495.033 null] +>> endobj +3017 0 obj << +/D [2998 0 R /XYZ 251.266 482.081 null] +>> endobj +3018 0 obj << +/D [2998 0 R /XYZ 347.246 482.081 null] +>> endobj +1969 0 obj << +/D [2998 0 R /XYZ 71.731 469.962 null] +>> endobj +994 0 obj << +/D [2998 0 R /XYZ 276.187 442.629 null] +>> endobj +2146 0 obj << +/D [2998 0 R /XYZ 71.731 442.414 null] +>> endobj +3019 0 obj << +/D [2998 0 R /XYZ 71.731 405.738 null] +>> endobj +1970 0 obj << +/D [2998 0 R /XYZ 71.731 139.665 null] +>> endobj +2997 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +3022 0 obj << +/Length 1165 +/Filter /FlateDecode +>> +stream +xÚÅ]oÛ6ð=¿Bo‘ +F +é³vÇNJ; ÉÀ>ÃR„£XÛYåB€ú$õ?´Å~#ùmË…²Ü=%/VìØ›‚’˜d=ãB3ÆûW¼•å²\ä’¿-…ÔÀ[Ìp0%þ
ÿ«ãõ‚Ùü¨„z „)aL[Qð¥æº»+ëRÞÝ)îf+˦ΫWJžh Ì»J¾º¥4DâÃÒ—¿òV€%ïAo•´9W#N—<q½¢ã¢®ó
ÇhXŽ¡ž¯Kñy[@5éš?Êç8\'r€ŽÙ£äµŠ“ò{ߣܳãÐ'þÐ|á…Í7¥ LÇz÷_Ø!yÊå·é¸¸¦6)Cf=·ª÷ž0¢CQŒ¢4=ŠbÈPW"ƒ®'†ð—ë¦0DñžÚ$A mJ”A±j¥Ð
eÙÕÙ§¼:.Ïk·ºS†(ÍŒ¶7µä+è^Žº#ÂQsÿ'_HÓÚ°^ʺèû€U¤—‡€0_¹ ÍÍZCôrõéíÄUŒ0Oy-#Ý1¢·@ üa×b}ùÈkXý×ÐrÙµµA}]C°[75TÚwÂq^ÇÜÄZìîÕ°5˿Û®2q½7Bñdçfx¤ßñ‰qÜõÁa$ˆ¤é‹a„ÒKˆ‰#=W:_CGv•Ñaò$—$Î
ÿEB1'$”©šE³ZÛV\%/d§Î]Ë^Úzer +z°•§(Œm£vŒÚÓÇ@¦£Ž>Ñb®ª¸æF_n´ÝÌ>ªúÿ<»¾šiÈûךb§ixß
Ôf›·ð˜ÀE¿uM’(F¬Ù/j5°–f(άµ»w:훳èFÑÆ¥¥æz©D«!¶«ÃVÓÕbÕú)΢+e~o©d£W=6 +¦ó4µÍ'%c*cpÿSPu³©qJ»¯ßï¥0 +½·:ÓÓrÞä¤'?°6ìQ¦Âî$¡1" {š´r£Ìæ¶íæ\˜¡ZEßÁ¤‡ÇIÆv:x ûŸÌwŽ(E)Ižý28Bif¥(Åaò3\M,k‹±endstream +endobj +3021 0 obj << +/Type /Page +/Contents 3022 0 R +/Resources 3020 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2967 0 R +>> endobj +3023 0 obj << +/D [3021 0 R /XYZ 71.731 778.968 null] +>> endobj +998 0 obj << +/D [3021 0 R /XYZ 200.736 758.046 null] +>> endobj +1971 0 obj << +/D [3021 0 R /XYZ 71.731 583.488 null] +>> endobj +1002 0 obj << +/D [3021 0 R /XYZ 232.019 559.491 null] +>> endobj +3024 0 obj << +/D [3021 0 R /XYZ 71.731 554.33 null] +>> endobj +3025 0 obj << +/D [3021 0 R /XYZ 204.781 541.558 null] +>> endobj +1972 0 obj << +/D [3021 0 R /XYZ 71.731 534.42 null] +>> endobj +1006 0 obj << +/D [3021 0 R /XYZ 232.019 511.172 null] +>> endobj +3026 0 obj << +/D [3021 0 R /XYZ 71.731 504.976 null] +>> endobj +1973 0 obj << +/D [3021 0 R /XYZ 71.731 486.101 null] +>> endobj +1010 0 obj << +/D [3021 0 R /XYZ 226.64 462.853 null] +>> endobj +3027 0 obj << +/D [3021 0 R /XYZ 71.731 457.693 null] +>> endobj +3028 0 obj << +/D [3021 0 R /XYZ 204.781 444.921 null] +>> endobj +1974 0 obj << +/D [3021 0 R /XYZ 71.731 437.782 null] +>> endobj +1014 0 obj << +/D [3021 0 R /XYZ 226.64 414.535 null] +>> endobj +3029 0 obj << +/D [3021 0 R /XYZ 71.731 408.338 null] +>> endobj +1975 0 obj << +/D [3021 0 R /XYZ 71.731 389.464 null] +>> endobj +1018 0 obj << +/D [3021 0 R /XYZ 248.159 366.216 null] +>> endobj +3030 0 obj << +/D [3021 0 R /XYZ 71.731 360.019 null] +>> endobj +1976 0 obj << +/D [3021 0 R /XYZ 71.731 328.193 null] +>> endobj +1022 0 obj << +/D [3021 0 R /XYZ 248.159 304.946 null] +>> endobj +3031 0 obj << +/D [3021 0 R /XYZ 71.731 298.749 null] +>> endobj +3032 0 obj << +/D [3021 0 R /XYZ 149.987 287.013 null] +>> endobj +1977 0 obj << +/D [3021 0 R /XYZ 71.731 280.624 null] +>> endobj +1026 0 obj << +/D [3021 0 R /XYZ 248.159 256.627 null] +>> endobj +3033 0 obj << +/D [3021 0 R /XYZ 71.731 250.43 null] +>> endobj +3034 0 obj << +/D [3021 0 R /XYZ 149.987 238.694 null] +>> endobj +1978 0 obj << +/D [3021 0 R /XYZ 71.731 232.305 null] +>> endobj +1030 0 obj << +/D [3021 0 R /XYZ 248.159 208.308 null] +>> endobj +3035 0 obj << +/D [3021 0 R /XYZ 71.731 203.147 null] +>> endobj +3036 0 obj << +/D [3021 0 R /XYZ 207.913 190.375 null] +>> endobj +3037 0 obj << +/D [3021 0 R /XYZ 119.552 177.424 null] +>> endobj +1979 0 obj << +/D [3021 0 R /XYZ 71.731 159.391 null] +>> endobj +1034 0 obj << +/D [3021 0 R /XYZ 248.159 134.086 null] +>> endobj +3038 0 obj << +/D [3021 0 R /XYZ 71.731 127.89 null] +>> endobj +3039 0 obj << +/D [3021 0 R /XYZ 245.727 116.153 null] +>> endobj +3040 0 obj << +/D [3021 0 R /XYZ 343.699 116.153 null] +>> endobj +2050 0 obj << +/D [3021 0 R /XYZ 71.731 109.015 null] +>> endobj +3020 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F33 1203 0 R /F42 2168 0 R /F26 1184 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +3043 0 obj << +/Length 1309 +/Filter /FlateDecode +>> +stream +xÚµWÛnã6}ÏWøQb./¢$ÈCì.¶ín‹>4E È´F‘R‘Jâ¿ïŒHÙr¤\H±Èò¢™ááá™!Ífþ±YÂH" IR¢ât–ßÑÙ¾|>bÞbîM曳ÅчO"š)˜³Åj&Ò˜HÏ’”)£ÙbùWp¾Éî¬nÂ9—4àĵ‹vï¿…ðÿŸ¡â¹»)Ýì×zÙ–!tø÷â磋 +ÉüEœÞd„“ó=NÆàƒ82%4Š;œ Vûð)â3ôŒÑS¥£…Ñöw}_ßèå¹nl±*òÌj㜢ƥ÷úªí¦^z«xo5g#1M¡“ˆˆÂ„sIU°j«ÜuåF°´ŸÏ a40Èο®rí&ê•[Bˆ=zI"Eâ4#ìcPŒ2¢˜w¨¯ÿѹ5Ä-¼‡ææ]7w‡`³’84º?½CDs%$ŠØ4'JºMýZ;F• +ÂÒÔ£ZÕ^KYåZXJÙí]é5Ttmœa§5šŒiîÃÎ% Ü7Š`ýŠ@D€À÷"ÀQ£mÛø~æƒ +£ŽyUc\áý‰ŸÕu©¡¬ŽÈŠ(Ü +|(«.Z5iÏU/À/•Õk¸úGñDBbÙŸ(qѺ'àq€*mº|€YHE¬Qx›?ã÷b{ûÉ{¨ð‰Ñ}7n:sÃóÓc7öö °
D-ݤßÇÞ¸XƒÀ<”:H¾²î•îp¾^;ç§>Ŷuë«ô¦îž3>mÓâö°û°)òÍ“Ô1¿_‡AíîNȱp#G]éÞ4>ÇÄ ~‚ +8€gî%öqxIòyäßbÚZLàQ‰V˜€/çÝáÝEA†›/f.¡®ópSœ¸æiK*)ü±dÁSÆÞ“À£
œ+öرë³Î§Ÿf×P%CâÕž³A˜ó$
¾7!jmm·wÚLÜÁrç8…gYíÂ?ÆÏOÝv ‚dê`OK½rq®®Šª°WWèÙ¿œÂ9N¨ß!XfmiO.9v!ŸÖÏ~‘(ao¬Ÿ¿èí&[뉀2"*™¨šCbx8Gª;눾±;T»³>+ì…m +d¥Z?GýÁÍ_¸Ô:-í·ìvŠ%HBå+0¸1x½; OÐí¨øŒ$è +¯ü`^cãd|1¦ÕÍó\¤ á‘z•FRž¾;‡àöTèNc*†?ý/Õ^½ð¼xé·ìÞdôSVÂÆ„Lú(O¤Ïü¯ôhõÃendstream +endobj +3042 0 obj << +/Type /Page +/Contents 3043 0 R +/Resources 3041 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2967 0 R +>> endobj +3044 0 obj << +/D [3042 0 R /XYZ 71.731 778.968 null] +>> endobj +2063 0 obj << +/D [3042 0 R /XYZ 71.731 790.923 null] +>> endobj +1038 0 obj << +/D [3042 0 R /XYZ 296.577 758.046 null] +>> endobj +3045 0 obj << +/D [3042 0 R /XYZ 71.731 752.886 null] +>> endobj +3046 0 obj << +/D [3042 0 R /XYZ 265.089 740.114 null] +>> endobj +3047 0 obj << +/D [3042 0 R /XYZ 119.552 727.162 null] +>> endobj +2051 0 obj << +/D [3042 0 R /XYZ 71.731 720.024 null] +>> endobj +1042 0 obj << +/D [3042 0 R /XYZ 296.577 696.776 null] +>> endobj +3048 0 obj << +/D [3042 0 R /XYZ 71.731 690.58 null] +>> endobj +3049 0 obj << +/D [3042 0 R /XYZ 258.44 678.843 null] +>> endobj +2052 0 obj << +/D [3042 0 R /XYZ 71.731 671.705 null] +>> endobj +1046 0 obj << +/D [3042 0 R /XYZ 210.5 648.457 null] +>> endobj +3050 0 obj << +/D [3042 0 R /XYZ 71.731 642.261 null] +>> endobj +3051 0 obj << +/D [3042 0 R /XYZ 119.552 617.573 null] +>> endobj +3052 0 obj << +/D [3042 0 R /XYZ 244.433 617.573 null] +>> endobj +2053 0 obj << +/D [3042 0 R /XYZ 71.731 605.454 null] +>> endobj +1050 0 obj << +/D [3042 0 R /XYZ 282.643 578.121 null] +>> endobj +3053 0 obj << +/D [3042 0 R /XYZ 71.731 571.928 null] +>> endobj +3054 0 obj << +/D [3042 0 R /XYZ 138.781 546.241 null] +>> endobj +3055 0 obj << +/D [3042 0 R /XYZ 209.992 546.241 null] +>> endobj +2147 0 obj << +/D [3042 0 R /XYZ 71.731 531.132 null] +>> endobj +3056 0 obj << +/D [3042 0 R /XYZ 71.731 498.39 null] +>> endobj +2054 0 obj << +/D [3042 0 R /XYZ 71.731 465.444 null] +>> endobj +1054 0 obj << +/D [3042 0 R /XYZ 200.736 440.039 null] +>> endobj +2055 0 obj << +/D [3042 0 R /XYZ 71.731 400.375 null] +>> endobj +1058 0 obj << +/D [3042 0 R /XYZ 230.997 372.293 null] +>> endobj +2056 0 obj << +/D [3042 0 R /XYZ 71.731 370.835 null] +>> endobj +1062 0 obj << +/D [3042 0 R /XYZ 200.736 345.892 null] +>> endobj +2057 0 obj << +/D [3042 0 R /XYZ 71.731 317.884 null] +>> endobj +1066 0 obj << +/D [3042 0 R /XYZ 269.732 289.802 null] +>> endobj +2058 0 obj << +/D [3042 0 R /XYZ 71.731 288.344 null] +>> endobj +1070 0 obj << +/D [3042 0 R /XYZ 200.736 263.401 null] +>> endobj +2059 0 obj << +/D [3042 0 R /XYZ 71.731 235.393 null] +>> endobj +1074 0 obj << +/D [3042 0 R /XYZ 263.276 207.312 null] +>> endobj +2060 0 obj << +/D [3042 0 R /XYZ 71.731 207.096 null] +>> endobj +1078 0 obj << +/D [3042 0 R /XYZ 200.736 180.911 null] +>> endobj +2061 0 obj << +/D [3042 0 R /XYZ 71.731 153.261 null] +>> endobj +3041 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +3059 0 obj << +/Length 1070 +/Filter /FlateDecode +>> +stream +xÚÅW]oÛ6}ϯЛm bDRÔG<¤iÚdÝ£vë`¨msq,U¢šúßï’”e1rìè0±iêÞÃs/Ï¡$ìxð‡£ÂW¡8ˆœôáÄspåà n"Ü&Äíļžœ½§¾Ãu¦s‡Fbqà„AŒùÎ4ûkx¹L +ÉË‘K˜7$È|O—ÜÆ·#ø¼ÅdˆŠ{ñÓÌþ‘gõj„‡|ô÷ô·“«iË‚Œ(9ȳ éñ$ÄÁÅŒ)¢Ç@€X„<?ÐD'Xî콑 +H|ÄÂUĤþöOåG¾¹ÉøZй€ºtŠ
N òé6ér•TUÕ¶ÊÅ,DŽ—È÷p'Ö%a4—#â
s™ËMÁ›|JU“&æA"FŽubjÏ듹x¨ˆê«_=æÝ¦’ˉ,Åz?ñ›=% +“—wÀUÏ)ÐÏ“‹ÙøËÛßo.g¯þTˆ=T³á÷|sTK‹mg¥L†Šª¸ÜU¥F
î©™ù”¯¹b=Ô8VO®" 8—‚o‚_ç—Þ–j¿Ì-ÇLø÷š¯SÞÚÅ,XÝŠ3>7³™X9›©Ì¼"_'«s…ê5•CdR¯äùWBüçènWÐ>Ä/4â¸?@PÊ—*Yð1/Eží=¢”µØQRXÛ.>нpŸƒWñ +~RÌÁƽD +·¥Xˆõq%„‡”ì„ D €_#„tCÍŒUò^%îž8\s<½n®“Â8²OîïºvêúRqhböÞ +endobj +3058 0 obj << +/Type /Page +/Contents 3059 0 R +/Resources 3057 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 2967 0 R +>> endobj +3060 0 obj << +/D [3058 0 R /XYZ 71.731 778.968 null] +>> endobj +1082 0 obj << +/D [3058 0 R /XYZ 308.466 758.046 null] +>> endobj +2062 0 obj << +/D [3058 0 R /XYZ 71.731 756.588 null] +>> endobj +1086 0 obj << +/D [3058 0 R /XYZ 200.736 731.645 null] +>> endobj +1090 0 obj << +/D [3058 0 R /XYZ 321.378 675.556 null] +>> endobj +3061 0 obj << +/D [3058 0 R /XYZ 71.731 668.12 null] +>> endobj +2148 0 obj << +/D [3058 0 R /XYZ 71.731 668.12 null] +>> endobj +3062 0 obj << +/D [3058 0 R /XYZ 71.731 634.679 null] +>> endobj +2064 0 obj << +/D [3058 0 R /XYZ 71.731 566.764 null] +>> endobj +1094 0 obj << +/D [3058 0 R /XYZ 200.736 541.359 null] +>> endobj +2065 0 obj << +/D [3058 0 R /XYZ 71.731 501.695 null] +>> endobj +1098 0 obj << +/D [3058 0 R /XYZ 314.922 473.613 null] +>> endobj +2149 0 obj << +/D [3058 0 R /XYZ 71.731 472.155 null] +>> endobj +3063 0 obj << +/D [3058 0 R /XYZ 71.731 436.721 null] +>> endobj +2066 0 obj << +/D [3058 0 R /XYZ 71.731 403.775 null] +>> endobj +1102 0 obj << +/D [3058 0 R /XYZ 200.736 378.37 null] +>> endobj +2067 0 obj << +/D [3058 0 R /XYZ 71.731 338.706 null] +>> endobj +1106 0 obj << +/D [3058 0 R /XYZ 302.011 310.624 null] +>> endobj +2150 0 obj << +/D [3058 0 R /XYZ 71.731 310.409 null] +>> endobj +3064 0 obj << +/D [3058 0 R /XYZ 71.731 273.733 null] +>> endobj +2068 0 obj << +/D [3058 0 R /XYZ 71.731 112.567 null] +>> endobj +3057 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +3067 0 obj << +/Length 946 +/Filter /FlateDecode +>> +stream +xÚÍVÛnÛ8}ÏWèÍ6 ±$%ê²@¶MÚ¦í6Fã"ÛE H´CT&]‰ +š~ýEI–-·qc±`ë2sæÌ™áÄÁp'"(òá/ŠQÆN¶>ÃÎ +¾¼9#…ךx›—‹³¯ýÀIà…ï,–އˆ%¡Å18‹üï髇t£y9ó(ÃSŠìÿâÛ›ùõ~og ¢ÍWñݾýKåu1#S>ûgñîìrѳ`” Ÿþ’gk2âIé–'! ð#„–g‘V„â鼜Q<UZé§
¯HÓw^hܱãA$cfCŒ§¯x©ÅRd©æsUˆLÌ<H¢ýø3|ÿÕ\füz Oäí +}wg|ÕF%ÓâÜ€b×€eZúü¥AÙ$p c†®×EðD¤‰` +ÐX`‰QÔäEÄ¢ÒkôøôáBTºT÷µ‰;WBêê +„øGôtYÈÈÉu3ìæc«Ç³Z)Å•|L‘ýtûʼÄGfÏÉ@bDãàä2ì±ë{âM³ñJ^Â×<_ˆ5?Uo€èŸxZÁÖð¿[-¯^…KY¯û´‡'èög›˜D¿<èoMFç|yû0Ï[C'À?9«#ýœ+ endstream +endobj +3066 0 obj << +/Type /Page +/Contents 3067 0 R +/Resources 3065 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 3071 0 R +>> endobj +3068 0 obj << +/D [3066 0 R /XYZ 71.731 778.968 null] +>> endobj +3069 0 obj << +/D [3066 0 R /XYZ 71.731 790.923 null] +>> endobj +1110 0 obj << +/D [3066 0 R /XYZ 200.736 758.046 null] +>> endobj +2069 0 obj << +/D [3066 0 R /XYZ 71.731 718.382 null] +>> endobj +1114 0 obj << +/D [3066 0 R /XYZ 314.922 690.3 null] +>> endobj +2151 0 obj << +/D [3066 0 R /XYZ 71.731 690.085 null] +>> endobj +3070 0 obj << +/D [3066 0 R /XYZ 71.731 653.409 null] +>> endobj +2070 0 obj << +/D [3066 0 R /XYZ 71.731 515.556 null] +>> endobj +1118 0 obj << +/D [3066 0 R /XYZ 200.736 490.151 null] +>> endobj +2071 0 obj << +/D [3066 0 R /XYZ 71.731 450.487 null] +>> endobj +1122 0 obj << +/D [3066 0 R /XYZ 237.453 422.405 null] +>> endobj +2072 0 obj << +/D [3066 0 R /XYZ 71.731 422.19 null] +>> endobj +1126 0 obj << +/D [3066 0 R /XYZ 200.736 396.004 null] +>> endobj +2073 0 obj << +/D [3066 0 R /XYZ 71.731 367.996 null] +>> endobj +1130 0 obj << +/D [3066 0 R /XYZ 289.099 339.914 null] +>> endobj +2074 0 obj << +/D [3066 0 R /XYZ 71.731 339.699 null] +>> endobj +1134 0 obj << +/D [3066 0 R /XYZ 200.736 313.513 null] +>> endobj +2075 0 obj << +/D [3066 0 R /XYZ 71.731 285.505 null] +>> endobj +1138 0 obj << +/D [3066 0 R /XYZ 269.732 257.424 null] +>> endobj +2076 0 obj << +/D [3066 0 R /XYZ 71.731 255.966 null] +>> endobj +1142 0 obj << +/D [3066 0 R /XYZ 200.736 231.023 null] +>> endobj +2077 0 obj << +/D [3066 0 R /XYZ 71.731 203.015 null] +>> endobj +1146 0 obj << +/D [3066 0 R /XYZ 237.453 174.933 null] +>> endobj +2078 0 obj << +/D [3066 0 R /XYZ 71.731 174.718 null] +>> endobj +1150 0 obj << +/D [3066 0 R /XYZ 200.736 148.532 null] +>> endobj +2079 0 obj << +/D [3066 0 R /XYZ 71.731 120.883 null] +>> endobj +3065 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F33 1203 0 R /F42 2168 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +3074 0 obj << +/Length 1683 +/Filter /FlateDecode +>> +stream +xÚ•koÛ6ð{~…¿EbV$%Y*0`[ÚÙÖ.h³íÃ6²DÇ\eÑ“¨¤þ÷»ãQ/Ûí6Éã½y/™/Bøã‹5gk Ë:eY’.ŠýU¸x„›ï®¸ÇXy”ÕçÛ‡«od´È +ÇÑâ¡ü-¸Ý嫚åJÄa ;E›ûŸ–ðÿ×e&vø¨?ô)»jɵüãáû«×ƒ±àLŠ/êéQÎôbÁ9Ëâå<Qœ²0Jœ¢¨ˆ{ñ&ÌD‹×pFŒ×Ÿ¬ª[mj›qL8‹Dâo«¼m=R2ºgî Ãx±â šÈ¼T݂ё +Gä¶âANÇ®U[ð‡ÛWÚÚJÑÞlþR…et¸³DÓ³k•¥ÍæHëØëú‘v×(EOKyÕ©ö%Ýåµg¯Ë›9D×V-y<ªæ÷0sb°1¦R=J£òª:Â-GûÁ+.ÀGÜ›×%`¥ÂË šÑ™Â"•Ž%¾¿ã +g]—ºÈQxÐzÈ–H,ùvN³á…¨¿*m¾š‹™ÈŸ¢Kô·×ÓZÉ™Nœº$mjªp¦šº +‘¯›m‘ +ñs}CàëåŠëÏv—×µ©¿>æ;cXaöןc1(ÈrdY( |nd<ƳãuÃoF|§â
‚˜Î‡¦3>@Ý)N+¹fa"&g%Öipß,¤¤5öxPí¹SCïΔšgŽ•ú þî°dqˆ~TÆåöÈcžy¬}Ìm‰ÊûáÉu–‘dî±û‘°¼C{A"fQŸµë±¾„,J¥',Úg¬°õ†}ĽUPÊá&3&3"øše’K†œ7u±$DîLWaï’Š#¬Øë$TVô ~×àj%Ü÷¶c+¾éïüïÅ2ê{pª°Ï›KnÆByu9,gMYš^{"cÖÒ˜{•·nÚÙîœÞ1
2 ºúcmPÆsM®wáë§ +ì=–n7ªg|8(ïf¹Ø}*8TÅ‹†Ö»íƒ<¤«®éEE×xðøÎ”î;Á±ï#ã¤qL»Þ/—Ó JYí…‡Ï4rÎÇu–ÃzÖXÕ*:8cauéïæc88[ -s[ +endobj +3073 0 obj << +/Type /Page +/Contents 3074 0 R +/Resources 3072 0 R +/MediaBox [0 0 593.051 838.744] +/Parent 3071 0 R +>> endobj +3075 0 obj << +/D [3073 0 R /XYZ 71.731 778.968 null] +>> endobj +1154 0 obj << +/D [3073 0 R /XYZ 237.453 758.046 null] +>> endobj +3076 0 obj << +/D [3073 0 R /XYZ 71.731 751.854 null] +>> endobj +3077 0 obj << +/D [3073 0 R /XYZ 71.731 694.186 null] +>> endobj +2152 0 obj << +/D [3073 0 R /XYZ 71.731 567.86 null] +>> endobj +3078 0 obj << +/D [3073 0 R /XYZ 71.731 533.06 null] +>> endobj +2080 0 obj << +/D [3073 0 R /XYZ 71.731 488.457 null] +>> endobj +1158 0 obj << +/D [3073 0 R /XYZ 200.736 463.053 null] +>> endobj +2081 0 obj << +/D [3073 0 R /XYZ 71.731 416.713 null] +>> endobj +1162 0 obj << +/D [3073 0 R /XYZ 194.361 392.716 null] +>> endobj +3079 0 obj << +/D [3073 0 R /XYZ 71.731 387.556 null] +>> endobj +3080 0 obj << +/D [3073 0 R /XYZ 71.731 387.556 null] +>> endobj +3081 0 obj << +/D [3073 0 R /XYZ 396.895 361.832 null] +>> endobj +3082 0 obj << +/D [3073 0 R /XYZ 494.421 361.832 null] +>> endobj +2082 0 obj << +/D [3073 0 R /XYZ 71.731 343.8 null] +>> endobj +1166 0 obj << +/D [3073 0 R /XYZ 194.361 318.495 null] +>> endobj +3083 0 obj << +/D [3073 0 R /XYZ 71.731 312.298 null] +>> endobj +3084 0 obj << +/D [3073 0 R /XYZ 119.552 274.659 null] +>> endobj +3085 0 obj << +/D [3073 0 R /XYZ 273.631 261.708 null] +>> endobj +3072 0 obj << +/Font << /F34 1292 0 R /F22 1177 0 R /F42 2168 0 R /F26 1184 0 R /F33 1203 0 R /F32 1191 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2606 0 obj << +/Length1 773 +/Length2 1036 +/Length3 532 +/Length 1609 +/Filter /FlateDecode +>> +stream +xÚíR}8UÙž!Ñ%åúhaÜIr¾Øtt«{|äŠsŽ!“¶³×a眽Ùç9„fˆI¹·¦¤CÒ0’!ÃĤAC_ÊMiNMq»¦¦¡G—ÜÛDšÛ3Ϙ?gþšgÖúgý~ï»Þõ®w-g‡07NÅÀ
©r㲸ÞÀW(äfÉá Îξ4ÄTEúa*è
¸|¾'ب–ž;àxy£îÞ(Š8_*AC±q*°Â×ešä +HRŒBLŒ†“ƒ0JJ@•†r9Þ¡¡P é$ˆ³.à„Tb`,A"ìiK¤Œ^³m\ðJ‚´’1VÌØtŒIœ"å€CÂQÌiñò[Øš+¾A-—‹0Å´ütP¿€1!×üŸ@)Ô*H!…CšœKÝg½ !N¨sÑ@&'¤2V׃Åñ˜íÊ
D2ÄC•4È0¹Îô!‰ÏuÂÄ7ãƒý·°p±Èuöag°Œ U›4 p~"ÏÔÜŸj&"šH‘‡ÃeˆÌ|½Ú:ç,RJáx¨'ÀhÓ FЇ¢ •‡É +¼« ýÜ¿—Շؖ.'e¬”jõ‰Qáªe¬-yK·ú}—[Wø¨{K„8ÿÌžeëØ„Fޝ\ïôåTXæ‰w%Öžv‰TȾª¦,³ËáÛá«Ú. I&’=·Ð&Û-ëÔQ˜ót7ºSž9.êi__ßî|܈ïjœX"ûÏŸm_`¼óƘ²Î|mÃð§W.FµŒèQòëÑS)Ûv‰/彺}þ•k¾ËCÝM§]z-íá_ÄäSîïO͈±É)Žþö3ÁM‰½ºLëpµ³âyæ-¨Là÷;GâÕÕ7=hóeήè•hû, +JÙÛEÞòŽöçFݾããðÜçå¢u&7šÛÿrD¢øGt%þ-q´€gØbÜ#˜3p7´ÊÞå>¾ä'ÙRÑ)ì;/é +Þ6ÆZo^¡§NMáüÊü!ð»Ê!F«(FÇ#?`X¤endstream +endobj +2607 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 3086 0 R +/FirstChar 62 +/LastChar 62 +/Widths 3087 0 R +/BaseFont /HPSUON+CMMI9 +/FontDescriptor 2605 0 R +>> endobj +2605 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /HPSUON+CMMI9 +/ItalicAngle -14 +/StemV 74 +/XHeight 431 +/FontBBox [-29 -250 1075 750] +/Flags 4 +/CharSet (/greater) +/FontFile 2606 0 R +>> endobj +3087 0 obj +[799 ] +endobj +3086 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 62/greater 63/.notdef] +>> endobj +3088 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl 22/.notdef 30/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 141/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 157/.notdef 159/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +>> endobj +2168 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 3088 0 R +/BaseFont /Courier-Bold +>> endobj +1292 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 3088 0 R +/BaseFont /Times-Italic +>> endobj +1203 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 3088 0 R +/BaseFont /Courier +>> endobj +1191 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 3088 0 R +/BaseFont /Times-Bold +>> endobj +1184 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 3088 0 R +/BaseFont /Times-Roman +>> endobj +1177 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 3088 0 R +/BaseFont /Helvetica-Bold +>> endobj +1178 0 obj << +/Type /Pages +/Count 6 +/Parent 3089 0 R +/Kids [1170 0 R 1180 0 R 1186 0 R 1343 0 R 1503 0 R 1660 0 R] +>> endobj +1927 0 obj << +/Type /Pages +/Count 6 +/Parent 3089 0 R +/Kids [1820 0 R 1981 0 R 2084 0 R 2154 0 R 2224 0 R 2278 0 R] +>> endobj +2332 0 obj << +/Type /Pages +/Count 6 +/Parent 3089 0 R +/Kids [2312 0 R 2334 0 R 2360 0 R 2390 0 R 2401 0 R 2419 0 R] +>> endobj +2465 0 obj << +/Type /Pages +/Count 6 +/Parent 3089 0 R +/Kids [2443 0 R 2467 0 R 2489 0 R 2506 0 R 2531 0 R 2545 0 R] +>> endobj +2591 0 obj << +/Type /Pages +/Count 6 +/Parent 3089 0 R +/Kids [2570 0 R 2593 0 R 2620 0 R 2648 0 R 2663 0 R 2678 0 R] +>> endobj +2726 0 obj << +/Type /Pages +/Count 6 +/Parent 3089 0 R +/Kids [2712 0 R 2728 0 R 2770 0 R 2797 0 R 2817 0 R 2829 0 R] +>> endobj +2850 0 obj << +/Type /Pages +/Count 6 +/Parent 3090 0 R +/Kids [2838 0 R 2852 0 R 2862 0 R 2895 0 R 2909 0 R 2937 0 R] +>> endobj +2967 0 obj << +/Type /Pages +/Count 6 +/Parent 3090 0 R +/Kids [2951 0 R 2969 0 R 2998 0 R 3021 0 R 3042 0 R 3058 0 R] +>> endobj +3071 0 obj << +/Type /Pages +/Count 2 +/Parent 3090 0 R +/Kids [3066 0 R 3073 0 R] +>> endobj +3089 0 obj << +/Type /Pages +/Count 36 +/Parent 3091 0 R +/Kids [1178 0 R 1927 0 R 2332 0 R 2465 0 R 2591 0 R 2726 0 R] +>> endobj +3090 0 obj << +/Type /Pages +/Count 14 +/Parent 3091 0 R +/Kids [2850 0 R 2967 0 R 3071 0 R] +>> endobj +3091 0 obj << +/Type /Pages +/Count 50 +/Kids [3089 0 R 3090 0 R] +>> endobj +3092 0 obj << +/Type /Outlines +/First 3 0 R +/Last 523 0 R +/Count 5 +>> endobj +1167 0 obj << +/Title 1168 0 R +/A 1165 0 R +/Parent 1155 0 R +/Prev 1163 0 R +>> endobj +1163 0 obj << +/Title 1164 0 R +/A 1161 0 R +/Parent 1155 0 R +/Prev 1159 0 R +/Next 1167 0 R +>> endobj +1159 0 obj << +/Title 1160 0 R +/A 1157 0 R +/Parent 1155 0 R +/Next 1163 0 R +>> endobj +1155 0 obj << +/Title 1156 0 R +/A 1153 0 R +/Parent 559 0 R +/Prev 1147 0 R +/First 1159 0 R +/Last 1167 0 R +/Count -3 +>> endobj +1151 0 obj << +/Title 1152 0 R +/A 1149 0 R +/Parent 1147 0 R +>> endobj +1147 0 obj << +/Title 1148 0 R +/A 1145 0 R +/Parent 559 0 R +/Prev 1139 0 R +/Next 1155 0 R +/First 1151 0 R +/Last 1151 0 R +/Count -1 +>> endobj +1143 0 obj << +/Title 1144 0 R +/A 1141 0 R +/Parent 1139 0 R +>> endobj +1139 0 obj << +/Title 1140 0 R +/A 1137 0 R +/Parent 559 0 R +/Prev 1131 0 R +/Next 1147 0 R +/First 1143 0 R +/Last 1143 0 R +/Count -1 +>> endobj +1135 0 obj << +/Title 1136 0 R +/A 1133 0 R +/Parent 1131 0 R +>> endobj +1131 0 obj << +/Title 1132 0 R +/A 1129 0 R +/Parent 559 0 R +/Prev 1123 0 R +/Next 1139 0 R +/First 1135 0 R +/Last 1135 0 R +/Count -1 +>> endobj +1127 0 obj << +/Title 1128 0 R +/A 1125 0 R +/Parent 1123 0 R +>> endobj +1123 0 obj << +/Title 1124 0 R +/A 1121 0 R +/Parent 559 0 R +/Prev 1115 0 R +/Next 1131 0 R +/First 1127 0 R +/Last 1127 0 R +/Count -1 +>> endobj +1119 0 obj << +/Title 1120 0 R +/A 1117 0 R +/Parent 1115 0 R +>> endobj +1115 0 obj << +/Title 1116 0 R +/A 1113 0 R +/Parent 559 0 R +/Prev 1107 0 R +/Next 1123 0 R +/First 1119 0 R +/Last 1119 0 R +/Count -1 +>> endobj +1111 0 obj << +/Title 1112 0 R +/A 1109 0 R +/Parent 1107 0 R +>> endobj +1107 0 obj << +/Title 1108 0 R +/A 1105 0 R +/Parent 559 0 R +/Prev 1099 0 R +/Next 1115 0 R +/First 1111 0 R +/Last 1111 0 R +/Count -1 +>> endobj +1103 0 obj << +/Title 1104 0 R +/A 1101 0 R +/Parent 1099 0 R +>> endobj +1099 0 obj << +/Title 1100 0 R +/A 1097 0 R +/Parent 559 0 R +/Prev 1091 0 R +/Next 1107 0 R +/First 1103 0 R +/Last 1103 0 R +/Count -1 +>> endobj +1095 0 obj << +/Title 1096 0 R +/A 1093 0 R +/Parent 1091 0 R +>> endobj +1091 0 obj << +/Title 1092 0 R +/A 1089 0 R +/Parent 559 0 R +/Prev 1083 0 R +/Next 1099 0 R +/First 1095 0 R +/Last 1095 0 R +/Count -1 +>> endobj +1087 0 obj << +/Title 1088 0 R +/A 1085 0 R +/Parent 1083 0 R +>> endobj +1083 0 obj << +/Title 1084 0 R +/A 1081 0 R +/Parent 559 0 R +/Prev 1075 0 R +/Next 1091 0 R +/First 1087 0 R +/Last 1087 0 R +/Count -1 +>> endobj +1079 0 obj << +/Title 1080 0 R +/A 1077 0 R +/Parent 1075 0 R +>> endobj +1075 0 obj << +/Title 1076 0 R +/A 1073 0 R +/Parent 559 0 R +/Prev 1067 0 R +/Next 1083 0 R +/First 1079 0 R +/Last 1079 0 R +/Count -1 +>> endobj +1071 0 obj << +/Title 1072 0 R +/A 1069 0 R +/Parent 1067 0 R +>> endobj +1067 0 obj << +/Title 1068 0 R +/A 1065 0 R +/Parent 559 0 R +/Prev 1059 0 R +/Next 1075 0 R +/First 1071 0 R +/Last 1071 0 R +/Count -1 +>> endobj +1063 0 obj << +/Title 1064 0 R +/A 1061 0 R +/Parent 1059 0 R +>> endobj +1059 0 obj << +/Title 1060 0 R +/A 1057 0 R +/Parent 559 0 R +/Prev 1051 0 R +/Next 1067 0 R +/First 1063 0 R +/Last 1063 0 R +/Count -1 +>> endobj +1055 0 obj << +/Title 1056 0 R +/A 1053 0 R +/Parent 1051 0 R +>> endobj +1051 0 obj << +/Title 1052 0 R +/A 1049 0 R +/Parent 559 0 R +/Prev 995 0 R +/Next 1059 0 R +/First 1055 0 R +/Last 1055 0 R +/Count -1 +>> endobj +1047 0 obj << +/Title 1048 0 R +/A 1045 0 R +/Parent 995 0 R +/Prev 1043 0 R +>> endobj +1043 0 obj << +/Title 1044 0 R +/A 1041 0 R +/Parent 995 0 R +/Prev 1039 0 R +/Next 1047 0 R +>> endobj +1039 0 obj << +/Title 1040 0 R +/A 1037 0 R +/Parent 995 0 R +/Prev 1035 0 R +/Next 1043 0 R +>> endobj +1035 0 obj << +/Title 1036 0 R +/A 1033 0 R +/Parent 995 0 R +/Prev 1031 0 R +/Next 1039 0 R +>> endobj +1031 0 obj << +/Title 1032 0 R +/A 1029 0 R +/Parent 995 0 R +/Prev 1027 0 R +/Next 1035 0 R +>> endobj +1027 0 obj << +/Title 1028 0 R +/A 1025 0 R +/Parent 995 0 R +/Prev 1023 0 R +/Next 1031 0 R +>> endobj +1023 0 obj << +/Title 1024 0 R +/A 1021 0 R +/Parent 995 0 R +/Prev 1019 0 R +/Next 1027 0 R +>> endobj +1019 0 obj << +/Title 1020 0 R +/A 1017 0 R +/Parent 995 0 R +/Prev 1015 0 R +/Next 1023 0 R +>> endobj +1015 0 obj << +/Title 1016 0 R +/A 1013 0 R +/Parent 995 0 R +/Prev 1011 0 R +/Next 1019 0 R +>> endobj +1011 0 obj << +/Title 1012 0 R +/A 1009 0 R +/Parent 995 0 R +/Prev 1007 0 R +/Next 1015 0 R +>> endobj +1007 0 obj << +/Title 1008 0 R +/A 1005 0 R +/Parent 995 0 R +/Prev 1003 0 R +/Next 1011 0 R +>> endobj +1003 0 obj << +/Title 1004 0 R +/A 1001 0 R +/Parent 995 0 R +/Prev 999 0 R +/Next 1007 0 R +>> endobj +999 0 obj << +/Title 1000 0 R +/A 997 0 R +/Parent 995 0 R +/Next 1003 0 R +>> endobj +995 0 obj << +/Title 996 0 R +/A 993 0 R +/Parent 559 0 R +/Prev 903 0 R +/Next 1051 0 R +/First 999 0 R +/Last 1047 0 R +/Count -13 +>> endobj +991 0 obj << +/Title 992 0 R +/A 989 0 R +/Parent 903 0 R +/Prev 987 0 R +>> endobj +987 0 obj << +/Title 988 0 R +/A 985 0 R +/Parent 903 0 R +/Prev 983 0 R +/Next 991 0 R +>> endobj +983 0 obj << +/Title 984 0 R +/A 981 0 R +/Parent 903 0 R +/Prev 979 0 R +/Next 987 0 R +>> endobj +979 0 obj << +/Title 980 0 R +/A 977 0 R +/Parent 903 0 R +/Prev 975 0 R +/Next 983 0 R +>> endobj +975 0 obj << +/Title 976 0 R +/A 973 0 R +/Parent 903 0 R +/Prev 971 0 R +/Next 979 0 R +>> endobj +971 0 obj << +/Title 972 0 R +/A 969 0 R +/Parent 903 0 R +/Prev 967 0 R +/Next 975 0 R +>> endobj +967 0 obj << +/Title 968 0 R +/A 965 0 R +/Parent 903 0 R +/Prev 963 0 R +/Next 971 0 R +>> endobj +963 0 obj << +/Title 964 0 R +/A 961 0 R +/Parent 903 0 R +/Prev 959 0 R +/Next 967 0 R +>> endobj +959 0 obj << +/Title 960 0 R +/A 957 0 R +/Parent 903 0 R +/Prev 955 0 R +/Next 963 0 R +>> endobj +955 0 obj << +/Title 956 0 R +/A 953 0 R +/Parent 903 0 R +/Prev 951 0 R +/Next 959 0 R +>> endobj +951 0 obj << +/Title 952 0 R +/A 949 0 R +/Parent 903 0 R +/Prev 947 0 R +/Next 955 0 R +>> endobj +947 0 obj << +/Title 948 0 R +/A 945 0 R +/Parent 903 0 R +/Prev 943 0 R +/Next 951 0 R +>> endobj +943 0 obj << +/Title 944 0 R +/A 941 0 R +/Parent 903 0 R +/Prev 939 0 R +/Next 947 0 R +>> endobj +939 0 obj << +/Title 940 0 R +/A 937 0 R +/Parent 903 0 R +/Prev 935 0 R +/Next 943 0 R +>> endobj +935 0 obj << +/Title 936 0 R +/A 933 0 R +/Parent 903 0 R +/Prev 931 0 R +/Next 939 0 R +>> endobj +931 0 obj << +/Title 932 0 R +/A 929 0 R +/Parent 903 0 R +/Prev 927 0 R +/Next 935 0 R +>> endobj +927 0 obj << +/Title 928 0 R +/A 925 0 R +/Parent 903 0 R +/Prev 923 0 R +/Next 931 0 R +>> endobj +923 0 obj << +/Title 924 0 R +/A 921 0 R +/Parent 903 0 R +/Prev 919 0 R +/Next 927 0 R +>> endobj +919 0 obj << +/Title 920 0 R +/A 917 0 R +/Parent 903 0 R +/Prev 915 0 R +/Next 923 0 R +>> endobj +915 0 obj << +/Title 916 0 R +/A 913 0 R +/Parent 903 0 R +/Prev 911 0 R +/Next 919 0 R +>> endobj +911 0 obj << +/Title 912 0 R +/A 909 0 R +/Parent 903 0 R +/Prev 907 0 R +/Next 915 0 R +>> endobj +907 0 obj << +/Title 908 0 R +/A 905 0 R +/Parent 903 0 R +/Next 911 0 R +>> endobj +903 0 obj << +/Title 904 0 R +/A 901 0 R +/Parent 559 0 R +/Prev 863 0 R +/Next 995 0 R +/First 907 0 R +/Last 991 0 R +/Count -22 +>> endobj +899 0 obj << +/Title 900 0 R +/A 897 0 R +/Parent 863 0 R +/Prev 895 0 R +>> endobj +895 0 obj << +/Title 896 0 R +/A 893 0 R +/Parent 863 0 R +/Prev 891 0 R +/Next 899 0 R +>> endobj +891 0 obj << +/Title 892 0 R +/A 889 0 R +/Parent 863 0 R +/Prev 887 0 R +/Next 895 0 R +>> endobj +887 0 obj << +/Title 888 0 R +/A 885 0 R +/Parent 863 0 R +/Prev 883 0 R +/Next 891 0 R +>> endobj +883 0 obj << +/Title 884 0 R +/A 881 0 R +/Parent 863 0 R +/Prev 879 0 R +/Next 887 0 R +>> endobj +879 0 obj << +/Title 880 0 R +/A 877 0 R +/Parent 863 0 R +/Prev 875 0 R +/Next 883 0 R +>> endobj +875 0 obj << +/Title 876 0 R +/A 873 0 R +/Parent 863 0 R +/Prev 871 0 R +/Next 879 0 R +>> endobj +871 0 obj << +/Title 872 0 R +/A 869 0 R +/Parent 863 0 R +/Prev 867 0 R +/Next 875 0 R +>> endobj +867 0 obj << +/Title 868 0 R +/A 865 0 R +/Parent 863 0 R +/Next 871 0 R +>> endobj +863 0 obj << +/Title 864 0 R +/A 861 0 R +/Parent 559 0 R +/Prev 843 0 R +/Next 903 0 R +/First 867 0 R +/Last 899 0 R +/Count -9 +>> endobj +859 0 obj << +/Title 860 0 R +/A 857 0 R +/Parent 843 0 R +/Prev 855 0 R +>> endobj +855 0 obj << +/Title 856 0 R +/A 853 0 R +/Parent 843 0 R +/Prev 851 0 R +/Next 859 0 R +>> endobj +851 0 obj << +/Title 852 0 R +/A 849 0 R +/Parent 843 0 R +/Prev 847 0 R +/Next 855 0 R +>> endobj +847 0 obj << +/Title 848 0 R +/A 845 0 R +/Parent 843 0 R +/Next 851 0 R +>> endobj +843 0 obj << +/Title 844 0 R +/A 841 0 R +/Parent 559 0 R +/Prev 831 0 R +/Next 863 0 R +/First 847 0 R +/Last 859 0 R +/Count -4 +>> endobj +839 0 obj << +/Title 840 0 R +/A 837 0 R +/Parent 831 0 R +/Prev 835 0 R +>> endobj +835 0 obj << +/Title 836 0 R +/A 833 0 R +/Parent 831 0 R +/Next 839 0 R +>> endobj +831 0 obj << +/Title 832 0 R +/A 829 0 R +/Parent 559 0 R +/Prev 819 0 R +/Next 843 0 R +/First 835 0 R +/Last 839 0 R +/Count -2 +>> endobj +827 0 obj << +/Title 828 0 R +/A 825 0 R +/Parent 819 0 R +/Prev 823 0 R +>> endobj +823 0 obj << +/Title 824 0 R +/A 821 0 R +/Parent 819 0 R +/Next 827 0 R +>> endobj +819 0 obj << +/Title 820 0 R +/A 817 0 R +/Parent 559 0 R +/Prev 807 0 R +/Next 831 0 R +/First 823 0 R +/Last 827 0 R +/Count -2 +>> endobj +815 0 obj << +/Title 816 0 R +/A 813 0 R +/Parent 807 0 R +/Prev 811 0 R +>> endobj +811 0 obj << +/Title 812 0 R +/A 809 0 R +/Parent 807 0 R +/Next 815 0 R +>> endobj +807 0 obj << +/Title 808 0 R +/A 805 0 R +/Parent 559 0 R +/Prev 775 0 R +/Next 819 0 R +/First 811 0 R +/Last 815 0 R +/Count -2 +>> endobj +803 0 obj << +/Title 804 0 R +/A 801 0 R +/Parent 775 0 R +/Prev 799 0 R +>> endobj +799 0 obj << +/Title 800 0 R +/A 797 0 R +/Parent 775 0 R +/Prev 795 0 R +/Next 803 0 R +>> endobj +795 0 obj << +/Title 796 0 R +/A 793 0 R +/Parent 775 0 R +/Prev 791 0 R +/Next 799 0 R +>> endobj +791 0 obj << +/Title 792 0 R +/A 789 0 R +/Parent 775 0 R +/Prev 787 0 R +/Next 795 0 R +>> endobj +787 0 obj << +/Title 788 0 R +/A 785 0 R +/Parent 775 0 R +/Prev 783 0 R +/Next 791 0 R +>> endobj +783 0 obj << +/Title 784 0 R +/A 781 0 R +/Parent 775 0 R +/Prev 779 0 R +/Next 787 0 R +>> endobj +779 0 obj << +/Title 780 0 R +/A 777 0 R +/Parent 775 0 R +/Next 783 0 R +>> endobj +775 0 obj << +/Title 776 0 R +/A 773 0 R +/Parent 559 0 R +/Prev 767 0 R +/Next 807 0 R +/First 779 0 R +/Last 803 0 R +/Count -7 +>> endobj +771 0 obj << +/Title 772 0 R +/A 769 0 R +/Parent 767 0 R +>> endobj +767 0 obj << +/Title 768 0 R +/A 765 0 R +/Parent 559 0 R +/Prev 759 0 R +/Next 775 0 R +/First 771 0 R +/Last 771 0 R +/Count -1 +>> endobj +763 0 obj << +/Title 764 0 R +/A 761 0 R +/Parent 759 0 R +>> endobj +759 0 obj << +/Title 760 0 R +/A 757 0 R +/Parent 559 0 R +/Prev 751 0 R +/Next 767 0 R +/First 763 0 R +/Last 763 0 R +/Count -1 +>> endobj +755 0 obj << +/Title 756 0 R +/A 753 0 R +/Parent 751 0 R +>> endobj +751 0 obj << +/Title 752 0 R +/A 749 0 R +/Parent 559 0 R +/Prev 743 0 R +/Next 759 0 R +/First 755 0 R +/Last 755 0 R +/Count -1 +>> endobj +747 0 obj << +/Title 748 0 R +/A 745 0 R +/Parent 743 0 R +>> endobj +743 0 obj << +/Title 744 0 R +/A 741 0 R +/Parent 559 0 R +/Prev 735 0 R +/Next 751 0 R +/First 747 0 R +/Last 747 0 R +/Count -1 +>> endobj +739 0 obj << +/Title 740 0 R +/A 737 0 R +/Parent 735 0 R +>> endobj +735 0 obj << +/Title 736 0 R +/A 733 0 R +/Parent 559 0 R +/Prev 727 0 R +/Next 743 0 R +/First 739 0 R +/Last 739 0 R +/Count -1 +>> endobj +731 0 obj << +/Title 732 0 R +/A 729 0 R +/Parent 727 0 R +>> endobj +727 0 obj << +/Title 728 0 R +/A 725 0 R +/Parent 559 0 R +/Prev 719 0 R +/Next 735 0 R +/First 731 0 R +/Last 731 0 R +/Count -1 +>> endobj +723 0 obj << +/Title 724 0 R +/A 721 0 R +/Parent 719 0 R +>> endobj +719 0 obj << +/Title 720 0 R +/A 717 0 R +/Parent 559 0 R +/Prev 711 0 R +/Next 727 0 R +/First 723 0 R +/Last 723 0 R +/Count -1 +>> endobj +715 0 obj << +/Title 716 0 R +/A 713 0 R +/Parent 711 0 R +>> endobj +711 0 obj << +/Title 712 0 R +/A 709 0 R +/Parent 559 0 R +/Prev 703 0 R +/Next 719 0 R +/First 715 0 R +/Last 715 0 R +/Count -1 +>> endobj +707 0 obj << +/Title 708 0 R +/A 705 0 R +/Parent 703 0 R +>> endobj +703 0 obj << +/Title 704 0 R +/A 701 0 R +/Parent 559 0 R +/Prev 695 0 R +/Next 711 0 R +/First 707 0 R +/Last 707 0 R +/Count -1 +>> endobj +699 0 obj << +/Title 700 0 R +/A 697 0 R +/Parent 695 0 R +>> endobj +695 0 obj << +/Title 696 0 R +/A 693 0 R +/Parent 559 0 R +/Prev 687 0 R +/Next 703 0 R +/First 699 0 R +/Last 699 0 R +/Count -1 +>> endobj +691 0 obj << +/Title 692 0 R +/A 689 0 R +/Parent 687 0 R +>> endobj +687 0 obj << +/Title 688 0 R +/A 685 0 R +/Parent 559 0 R +/Prev 679 0 R +/Next 695 0 R +/First 691 0 R +/Last 691 0 R +/Count -1 +>> endobj +683 0 obj << +/Title 684 0 R +/A 681 0 R +/Parent 679 0 R +>> endobj +679 0 obj << +/Title 680 0 R +/A 677 0 R +/Parent 559 0 R +/Prev 671 0 R +/Next 687 0 R +/First 683 0 R +/Last 683 0 R +/Count -1 +>> endobj +675 0 obj << +/Title 676 0 R +/A 673 0 R +/Parent 671 0 R +>> endobj +671 0 obj << +/Title 672 0 R +/A 669 0 R +/Parent 559 0 R +/Prev 663 0 R +/Next 679 0 R +/First 675 0 R +/Last 675 0 R +/Count -1 +>> endobj +667 0 obj << +/Title 668 0 R +/A 665 0 R +/Parent 663 0 R +>> endobj +663 0 obj << +/Title 664 0 R +/A 661 0 R +/Parent 559 0 R +/Prev 655 0 R +/Next 671 0 R +/First 667 0 R +/Last 667 0 R +/Count -1 +>> endobj +659 0 obj << +/Title 660 0 R +/A 657 0 R +/Parent 655 0 R +>> endobj +655 0 obj << +/Title 656 0 R +/A 653 0 R +/Parent 559 0 R +/Prev 647 0 R +/Next 663 0 R +/First 659 0 R +/Last 659 0 R +/Count -1 +>> endobj +651 0 obj << +/Title 652 0 R +/A 649 0 R +/Parent 647 0 R +>> endobj +647 0 obj << +/Title 648 0 R +/A 645 0 R +/Parent 559 0 R +/Prev 639 0 R +/Next 655 0 R +/First 651 0 R +/Last 651 0 R +/Count -1 +>> endobj +643 0 obj << +/Title 644 0 R +/A 641 0 R +/Parent 639 0 R +>> endobj +639 0 obj << +/Title 640 0 R +/A 637 0 R +/Parent 559 0 R +/Prev 631 0 R +/Next 647 0 R +/First 643 0 R +/Last 643 0 R +/Count -1 +>> endobj +635 0 obj << +/Title 636 0 R +/A 633 0 R +/Parent 631 0 R +>> endobj +631 0 obj << +/Title 632 0 R +/A 629 0 R +/Parent 559 0 R +/Prev 623 0 R +/Next 639 0 R +/First 635 0 R +/Last 635 0 R +/Count -1 +>> endobj +627 0 obj << +/Title 628 0 R +/A 625 0 R +/Parent 623 0 R +>> endobj +623 0 obj << +/Title 624 0 R +/A 621 0 R +/Parent 559 0 R +/Prev 615 0 R +/Next 631 0 R +/First 627 0 R +/Last 627 0 R +/Count -1 +>> endobj +619 0 obj << +/Title 620 0 R +/A 617 0 R +/Parent 615 0 R +>> endobj +615 0 obj << +/Title 616 0 R +/A 613 0 R +/Parent 559 0 R +/Prev 607 0 R +/Next 623 0 R +/First 619 0 R +/Last 619 0 R +/Count -1 +>> endobj +611 0 obj << +/Title 612 0 R +/A 609 0 R +/Parent 607 0 R +>> endobj +607 0 obj << +/Title 608 0 R +/A 605 0 R +/Parent 559 0 R +/Prev 563 0 R +/Next 615 0 R +/First 611 0 R +/Last 611 0 R +/Count -1 +>> endobj +603 0 obj << +/Title 604 0 R +/A 601 0 R +/Parent 563 0 R +/Prev 599 0 R +>> endobj +599 0 obj << +/Title 600 0 R +/A 597 0 R +/Parent 563 0 R +/Prev 595 0 R +/Next 603 0 R +>> endobj +595 0 obj << +/Title 596 0 R +/A 593 0 R +/Parent 563 0 R +/Prev 591 0 R +/Next 599 0 R +>> endobj +591 0 obj << +/Title 592 0 R +/A 589 0 R +/Parent 563 0 R +/Prev 587 0 R +/Next 595 0 R +>> endobj +587 0 obj << +/Title 588 0 R +/A 585 0 R +/Parent 563 0 R +/Prev 583 0 R +/Next 591 0 R +>> endobj +583 0 obj << +/Title 584 0 R +/A 581 0 R +/Parent 563 0 R +/Prev 579 0 R +/Next 587 0 R +>> endobj +579 0 obj << +/Title 580 0 R +/A 577 0 R +/Parent 563 0 R +/Prev 575 0 R +/Next 583 0 R +>> endobj +575 0 obj << +/Title 576 0 R +/A 573 0 R +/Parent 563 0 R +/Prev 571 0 R +/Next 579 0 R +>> endobj +571 0 obj << +/Title 572 0 R +/A 569 0 R +/Parent 563 0 R +/Prev 567 0 R +/Next 575 0 R +>> endobj +567 0 obj << +/Title 568 0 R +/A 565 0 R +/Parent 563 0 R +/Next 571 0 R +>> endobj +563 0 obj << +/Title 564 0 R +/A 561 0 R +/Parent 559 0 R +/Next 607 0 R +/First 567 0 R +/Last 603 0 R +/Count -10 +>> endobj +559 0 obj << +/Title 560 0 R +/A 557 0 R +/Parent 523 0 R +/Prev 531 0 R +/First 563 0 R +/Last 1155 0 R +/Count -44 +>> endobj +555 0 obj << +/Title 556 0 R +/A 553 0 R +/Parent 539 0 R +/Prev 551 0 R +>> endobj +551 0 obj << +/Title 552 0 R +/A 549 0 R +/Parent 539 0 R +/Prev 547 0 R +/Next 555 0 R +>> endobj +547 0 obj << +/Title 548 0 R +/A 545 0 R +/Parent 539 0 R +/Prev 543 0 R +/Next 551 0 R +>> endobj +543 0 obj << +/Title 544 0 R +/A 541 0 R +/Parent 539 0 R +/Next 547 0 R +>> endobj +539 0 obj << +/Title 540 0 R +/A 537 0 R +/Parent 531 0 R +/Prev 535 0 R +/First 543 0 R +/Last 555 0 R +/Count -4 +>> endobj +535 0 obj << +/Title 536 0 R +/A 533 0 R +/Parent 531 0 R +/Next 539 0 R +>> endobj +531 0 obj << +/Title 532 0 R +/A 529 0 R +/Parent 523 0 R +/Prev 527 0 R +/Next 559 0 R +/First 535 0 R +/Last 539 0 R +/Count -2 +>> endobj +527 0 obj << +/Title 528 0 R +/A 525 0 R +/Parent 523 0 R +/Next 531 0 R +>> endobj +523 0 obj << +/Title 524 0 R +/A 521 0 R +/Parent 3092 0 R +/Prev 15 0 R +/First 527 0 R +/Last 559 0 R +/Count -3 +>> endobj +519 0 obj << +/Title 520 0 R +/A 517 0 R +/Parent 479 0 R +/Prev 515 0 R +>> endobj +515 0 obj << +/Title 516 0 R +/A 513 0 R +/Parent 479 0 R +/Prev 511 0 R +/Next 519 0 R +>> endobj +511 0 obj << +/Title 512 0 R +/A 509 0 R +/Parent 479 0 R +/Prev 507 0 R +/Next 515 0 R +>> endobj +507 0 obj << +/Title 508 0 R +/A 505 0 R +/Parent 479 0 R +/Prev 503 0 R +/Next 511 0 R +>> endobj +503 0 obj << +/Title 504 0 R +/A 501 0 R +/Parent 479 0 R +/Prev 499 0 R +/Next 507 0 R +>> endobj +499 0 obj << +/Title 500 0 R +/A 497 0 R +/Parent 479 0 R +/Prev 495 0 R +/Next 503 0 R +>> endobj +495 0 obj << +/Title 496 0 R +/A 493 0 R +/Parent 479 0 R +/Prev 491 0 R +/Next 499 0 R +>> endobj +491 0 obj << +/Title 492 0 R +/A 489 0 R +/Parent 479 0 R +/Prev 487 0 R +/Next 495 0 R +>> endobj +487 0 obj << +/Title 488 0 R +/A 485 0 R +/Parent 479 0 R +/Prev 483 0 R +/Next 491 0 R +>> endobj +483 0 obj << +/Title 484 0 R +/A 481 0 R +/Parent 479 0 R +/Next 487 0 R +>> endobj +479 0 obj << +/Title 480 0 R +/A 477 0 R +/Parent 71 0 R +/Prev 451 0 R +/First 483 0 R +/Last 519 0 R +/Count -10 +>> endobj +475 0 obj << +/Title 476 0 R +/A 473 0 R +/Parent 451 0 R +/Prev 471 0 R +>> endobj +471 0 obj << +/Title 472 0 R +/A 469 0 R +/Parent 451 0 R +/Prev 467 0 R +/Next 475 0 R +>> endobj +467 0 obj << +/Title 468 0 R +/A 465 0 R +/Parent 451 0 R +/Prev 463 0 R +/Next 471 0 R +>> endobj +463 0 obj << +/Title 464 0 R +/A 461 0 R +/Parent 451 0 R +/Prev 459 0 R +/Next 467 0 R +>> endobj +459 0 obj << +/Title 460 0 R +/A 457 0 R +/Parent 451 0 R +/Prev 455 0 R +/Next 463 0 R +>> endobj +455 0 obj << +/Title 456 0 R +/A 453 0 R +/Parent 451 0 R +/Next 459 0 R +>> endobj +451 0 obj << +/Title 452 0 R +/A 449 0 R +/Parent 71 0 R +/Prev 427 0 R +/Next 479 0 R +/First 455 0 R +/Last 475 0 R +/Count -6 +>> endobj +447 0 obj << +/Title 448 0 R +/A 445 0 R +/Parent 427 0 R +/Prev 443 0 R +>> endobj +443 0 obj << +/Title 444 0 R +/A 441 0 R +/Parent 427 0 R +/Prev 439 0 R +/Next 447 0 R +>> endobj +439 0 obj << +/Title 440 0 R +/A 437 0 R +/Parent 427 0 R +/Prev 435 0 R +/Next 443 0 R +>> endobj +435 0 obj << +/Title 436 0 R +/A 433 0 R +/Parent 427 0 R +/Prev 431 0 R +/Next 439 0 R +>> endobj +431 0 obj << +/Title 432 0 R +/A 429 0 R +/Parent 427 0 R +/Next 435 0 R +>> endobj +427 0 obj << +/Title 428 0 R +/A 425 0 R +/Parent 71 0 R +/Prev 403 0 R +/Next 451 0 R +/First 431 0 R +/Last 447 0 R +/Count -5 +>> endobj +423 0 obj << +/Title 424 0 R +/A 421 0 R +/Parent 403 0 R +/Prev 419 0 R +>> endobj +419 0 obj << +/Title 420 0 R +/A 417 0 R +/Parent 403 0 R +/Prev 415 0 R +/Next 423 0 R +>> endobj +415 0 obj << +/Title 416 0 R +/A 413 0 R +/Parent 403 0 R +/Prev 411 0 R +/Next 419 0 R +>> endobj +411 0 obj << +/Title 412 0 R +/A 409 0 R +/Parent 403 0 R +/Prev 407 0 R +/Next 415 0 R +>> endobj +407 0 obj << +/Title 408 0 R +/A 405 0 R +/Parent 403 0 R +/Next 411 0 R +>> endobj +403 0 obj << +/Title 404 0 R +/A 401 0 R +/Parent 71 0 R +/Prev 375 0 R +/Next 427 0 R +/First 407 0 R +/Last 423 0 R +/Count -5 +>> endobj +399 0 obj << +/Title 400 0 R +/A 397 0 R +/Parent 375 0 R +/Prev 395 0 R +>> endobj +395 0 obj << +/Title 396 0 R +/A 393 0 R +/Parent 375 0 R +/Prev 391 0 R +/Next 399 0 R +>> endobj +391 0 obj << +/Title 392 0 R +/A 389 0 R +/Parent 375 0 R +/Prev 387 0 R +/Next 395 0 R +>> endobj +387 0 obj << +/Title 388 0 R +/A 385 0 R +/Parent 375 0 R +/Prev 383 0 R +/Next 391 0 R +>> endobj +383 0 obj << +/Title 384 0 R +/A 381 0 R +/Parent 375 0 R +/Prev 379 0 R +/Next 387 0 R +>> endobj +379 0 obj << +/Title 380 0 R +/A 377 0 R +/Parent 375 0 R +/Next 383 0 R +>> endobj +375 0 obj << +/Title 376 0 R +/A 373 0 R +/Parent 71 0 R +/Prev 331 0 R +/Next 403 0 R +/First 379 0 R +/Last 399 0 R +/Count -6 +>> endobj +371 0 obj << +/Title 372 0 R +/A 369 0 R +/Parent 331 0 R +/Prev 367 0 R +>> endobj +367 0 obj << +/Title 368 0 R +/A 365 0 R +/Parent 331 0 R +/Prev 363 0 R +/Next 371 0 R +>> endobj +363 0 obj << +/Title 364 0 R +/A 361 0 R +/Parent 331 0 R +/Prev 359 0 R +/Next 367 0 R +>> endobj +359 0 obj << +/Title 360 0 R +/A 357 0 R +/Parent 331 0 R +/Prev 355 0 R +/Next 363 0 R +>> endobj +355 0 obj << +/Title 356 0 R +/A 353 0 R +/Parent 331 0 R +/Prev 351 0 R +/Next 359 0 R +>> endobj +351 0 obj << +/Title 352 0 R +/A 349 0 R +/Parent 331 0 R +/Prev 347 0 R +/Next 355 0 R +>> endobj +347 0 obj << +/Title 348 0 R +/A 345 0 R +/Parent 331 0 R +/Prev 343 0 R +/Next 351 0 R +>> endobj +343 0 obj << +/Title 344 0 R +/A 341 0 R +/Parent 331 0 R +/Prev 339 0 R +/Next 347 0 R +>> endobj +339 0 obj << +/Title 340 0 R +/A 337 0 R +/Parent 331 0 R +/Prev 335 0 R +/Next 343 0 R +>> endobj +335 0 obj << +/Title 336 0 R +/A 333 0 R +/Parent 331 0 R +/Next 339 0 R +>> endobj +331 0 obj << +/Title 332 0 R +/A 329 0 R +/Parent 71 0 R +/Prev 247 0 R +/Next 375 0 R +/First 335 0 R +/Last 371 0 R +/Count -10 +>> endobj +327 0 obj << +/Title 328 0 R +/A 325 0 R +/Parent 247 0 R +/Prev 323 0 R +>> endobj +323 0 obj << +/Title 324 0 R +/A 321 0 R +/Parent 247 0 R +/Prev 319 0 R +/Next 327 0 R +>> endobj +319 0 obj << +/Title 320 0 R +/A 317 0 R +/Parent 247 0 R +/Prev 315 0 R +/Next 323 0 R +>> endobj +315 0 obj << +/Title 316 0 R +/A 313 0 R +/Parent 247 0 R +/Prev 311 0 R +/Next 319 0 R +>> endobj +311 0 obj << +/Title 312 0 R +/A 309 0 R +/Parent 247 0 R +/Prev 307 0 R +/Next 315 0 R +>> endobj +307 0 obj << +/Title 308 0 R +/A 305 0 R +/Parent 247 0 R +/Prev 303 0 R +/Next 311 0 R +>> endobj +303 0 obj << +/Title 304 0 R +/A 301 0 R +/Parent 247 0 R +/Prev 299 0 R +/Next 307 0 R +>> endobj +299 0 obj << +/Title 300 0 R +/A 297 0 R +/Parent 247 0 R +/Prev 295 0 R +/Next 303 0 R +>> endobj +295 0 obj << +/Title 296 0 R +/A 293 0 R +/Parent 247 0 R +/Prev 291 0 R +/Next 299 0 R +>> endobj +291 0 obj << +/Title 292 0 R +/A 289 0 R +/Parent 247 0 R +/Prev 287 0 R +/Next 295 0 R +>> endobj +287 0 obj << +/Title 288 0 R +/A 285 0 R +/Parent 247 0 R +/Prev 283 0 R +/Next 291 0 R +>> endobj +283 0 obj << +/Title 284 0 R +/A 281 0 R +/Parent 247 0 R +/Prev 279 0 R +/Next 287 0 R +>> endobj +279 0 obj << +/Title 280 0 R +/A 277 0 R +/Parent 247 0 R +/Prev 275 0 R +/Next 283 0 R +>> endobj +275 0 obj << +/Title 276 0 R +/A 273 0 R +/Parent 247 0 R +/Prev 271 0 R +/Next 279 0 R +>> endobj +271 0 obj << +/Title 272 0 R +/A 269 0 R +/Parent 247 0 R +/Prev 267 0 R +/Next 275 0 R +>> endobj +267 0 obj << +/Title 268 0 R +/A 265 0 R +/Parent 247 0 R +/Prev 263 0 R +/Next 271 0 R +>> endobj +263 0 obj << +/Title 264 0 R +/A 261 0 R +/Parent 247 0 R +/Prev 259 0 R +/Next 267 0 R +>> endobj +259 0 obj << +/Title 260 0 R +/A 257 0 R +/Parent 247 0 R +/Prev 255 0 R +/Next 263 0 R +>> endobj +255 0 obj << +/Title 256 0 R +/A 253 0 R +/Parent 247 0 R +/Prev 251 0 R +/Next 259 0 R +>> endobj +251 0 obj << +/Title 252 0 R +/A 249 0 R +/Parent 247 0 R +/Next 255 0 R +>> endobj +247 0 obj << +/Title 248 0 R +/A 245 0 R +/Parent 71 0 R +/Prev 151 0 R +/Next 331 0 R +/First 251 0 R +/Last 327 0 R +/Count -20 +>> endobj +243 0 obj << +/Title 244 0 R +/A 241 0 R +/Parent 151 0 R +/Prev 239 0 R +>> endobj +239 0 obj << +/Title 240 0 R +/A 237 0 R +/Parent 151 0 R +/Prev 235 0 R +/Next 243 0 R +>> endobj +235 0 obj << +/Title 236 0 R +/A 233 0 R +/Parent 151 0 R +/Prev 231 0 R +/Next 239 0 R +>> endobj +231 0 obj << +/Title 232 0 R +/A 229 0 R +/Parent 151 0 R +/Prev 227 0 R +/Next 235 0 R +>> endobj +227 0 obj << +/Title 228 0 R +/A 225 0 R +/Parent 151 0 R +/Prev 223 0 R +/Next 231 0 R +>> endobj +223 0 obj << +/Title 224 0 R +/A 221 0 R +/Parent 151 0 R +/Prev 219 0 R +/Next 227 0 R +>> endobj +219 0 obj << +/Title 220 0 R +/A 217 0 R +/Parent 151 0 R +/Prev 215 0 R +/Next 223 0 R +>> endobj +215 0 obj << +/Title 216 0 R +/A 213 0 R +/Parent 151 0 R +/Prev 211 0 R +/Next 219 0 R +>> endobj +211 0 obj << +/Title 212 0 R +/A 209 0 R +/Parent 151 0 R +/Prev 207 0 R +/Next 215 0 R +>> endobj +207 0 obj << +/Title 208 0 R +/A 205 0 R +/Parent 151 0 R +/Prev 203 0 R +/Next 211 0 R +>> endobj +203 0 obj << +/Title 204 0 R +/A 201 0 R +/Parent 151 0 R +/Prev 199 0 R +/Next 207 0 R +>> endobj +199 0 obj << +/Title 200 0 R +/A 197 0 R +/Parent 151 0 R +/Prev 195 0 R +/Next 203 0 R +>> endobj +195 0 obj << +/Title 196 0 R +/A 193 0 R +/Parent 151 0 R +/Prev 191 0 R +/Next 199 0 R +>> endobj +191 0 obj << +/Title 192 0 R +/A 189 0 R +/Parent 151 0 R +/Prev 187 0 R +/Next 195 0 R +>> endobj +187 0 obj << +/Title 188 0 R +/A 185 0 R +/Parent 151 0 R +/Prev 183 0 R +/Next 191 0 R +>> endobj +183 0 obj << +/Title 184 0 R +/A 181 0 R +/Parent 151 0 R +/Prev 179 0 R +/Next 187 0 R +>> endobj +179 0 obj << +/Title 180 0 R +/A 177 0 R +/Parent 151 0 R +/Prev 175 0 R +/Next 183 0 R +>> endobj +175 0 obj << +/Title 176 0 R +/A 173 0 R +/Parent 151 0 R +/Prev 171 0 R +/Next 179 0 R +>> endobj +171 0 obj << +/Title 172 0 R +/A 169 0 R +/Parent 151 0 R +/Prev 167 0 R +/Next 175 0 R +>> endobj +167 0 obj << +/Title 168 0 R +/A 165 0 R +/Parent 151 0 R +/Prev 163 0 R +/Next 171 0 R +>> endobj +163 0 obj << +/Title 164 0 R +/A 161 0 R +/Parent 151 0 R +/Prev 159 0 R +/Next 167 0 R +>> endobj +159 0 obj << +/Title 160 0 R +/A 157 0 R +/Parent 151 0 R +/Prev 155 0 R +/Next 163 0 R +>> endobj +155 0 obj << +/Title 156 0 R +/A 153 0 R +/Parent 151 0 R +/Next 159 0 R +>> endobj +151 0 obj << +/Title 152 0 R +/A 149 0 R +/Parent 71 0 R +/Prev 75 0 R +/Next 247 0 R +/First 155 0 R +/Last 243 0 R +/Count -23 +>> endobj +147 0 obj << +/Title 148 0 R +/A 145 0 R +/Parent 75 0 R +/Prev 143 0 R +>> endobj +143 0 obj << +/Title 144 0 R +/A 141 0 R +/Parent 75 0 R +/Prev 139 0 R +/Next 147 0 R +>> endobj +139 0 obj << +/Title 140 0 R +/A 137 0 R +/Parent 75 0 R +/Prev 135 0 R +/Next 143 0 R +>> endobj +135 0 obj << +/Title 136 0 R +/A 133 0 R +/Parent 75 0 R +/Prev 131 0 R +/Next 139 0 R +>> endobj +131 0 obj << +/Title 132 0 R +/A 129 0 R +/Parent 75 0 R +/Prev 127 0 R +/Next 135 0 R +>> endobj +127 0 obj << +/Title 128 0 R +/A 125 0 R +/Parent 75 0 R +/Prev 123 0 R +/Next 131 0 R +>> endobj +123 0 obj << +/Title 124 0 R +/A 121 0 R +/Parent 75 0 R +/Prev 119 0 R +/Next 127 0 R +>> endobj +119 0 obj << +/Title 120 0 R +/A 117 0 R +/Parent 75 0 R +/Prev 115 0 R +/Next 123 0 R +>> endobj +115 0 obj << +/Title 116 0 R +/A 113 0 R +/Parent 75 0 R +/Prev 111 0 R +/Next 119 0 R +>> endobj +111 0 obj << +/Title 112 0 R +/A 109 0 R +/Parent 75 0 R +/Prev 107 0 R +/Next 115 0 R +>> endobj +107 0 obj << +/Title 108 0 R +/A 105 0 R +/Parent 75 0 R +/Prev 103 0 R +/Next 111 0 R +>> endobj +103 0 obj << +/Title 104 0 R +/A 101 0 R +/Parent 75 0 R +/Prev 99 0 R +/Next 107 0 R +>> endobj +99 0 obj << +/Title 100 0 R +/A 97 0 R +/Parent 75 0 R +/Prev 95 0 R +/Next 103 0 R +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 75 0 R +/Prev 91 0 R +/Next 99 0 R +>> endobj +91 0 obj << +/Title 92 0 R +/A 89 0 R +/Parent 75 0 R +/Prev 87 0 R +/Next 95 0 R +>> endobj +87 0 obj << +/Title 88 0 R +/A 85 0 R +/Parent 75 0 R +/Prev 83 0 R +/Next 91 0 R +>> endobj +83 0 obj << +/Title 84 0 R +/A 81 0 R +/Parent 75 0 R +/Prev 79 0 R +/Next 87 0 R +>> endobj +79 0 obj << +/Title 80 0 R +/A 77 0 R +/Parent 75 0 R +/Next 83 0 R +>> endobj +75 0 obj << +/Title 76 0 R +/A 73 0 R +/Parent 71 0 R +/Next 151 0 R +/First 79 0 R +/Last 147 0 R +/Count -18 +>> endobj +71 0 obj << +/Title 72 0 R +/A 69 0 R +/Parent 15 0 R +/Prev 23 0 R +/First 75 0 R +/Last 479 0 R +/Count -9 +>> endobj +67 0 obj << +/Title 68 0 R +/A 65 0 R +/Parent 31 0 R +/Prev 63 0 R +>> endobj +63 0 obj << +/Title 64 0 R +/A 61 0 R +/Parent 31 0 R +/Prev 59 0 R +/Next 67 0 R +>> endobj +59 0 obj << +/Title 60 0 R +/A 57 0 R +/Parent 31 0 R +/Prev 55 0 R +/Next 63 0 R +>> endobj +55 0 obj << +/Title 56 0 R +/A 53 0 R +/Parent 31 0 R +/Prev 51 0 R +/Next 59 0 R +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 31 0 R +/Prev 47 0 R +/Next 55 0 R +>> endobj +47 0 obj << +/Title 48 0 R +/A 45 0 R +/Parent 31 0 R +/Prev 43 0 R +/Next 51 0 R +>> endobj +43 0 obj << +/Title 44 0 R +/A 41 0 R +/Parent 31 0 R +/Prev 39 0 R +/Next 47 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 31 0 R +/Prev 35 0 R +/Next 43 0 R +>> endobj +35 0 obj << +/Title 36 0 R +/A 33 0 R +/Parent 31 0 R +/Next 39 0 R +>> endobj +31 0 obj << +/Title 32 0 R +/A 29 0 R +/Parent 23 0 R +/Prev 27 0 R +/First 35 0 R +/Last 67 0 R +/Count -9 +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 23 0 R +/Next 31 0 R +>> endobj +23 0 obj << +/Title 24 0 R +/A 21 0 R +/Parent 15 0 R +/Prev 19 0 R +/Next 71 0 R +/First 27 0 R +/Last 31 0 R +/Count -2 +>> endobj +19 0 obj << +/Title 20 0 R +/A 17 0 R +/Parent 15 0 R +/Next 23 0 R +>> endobj +15 0 obj << +/Title 16 0 R +/A 13 0 R +/Parent 3092 0 R +/Prev 11 0 R +/Next 523 0 R +/First 19 0 R +/Last 71 0 R +/Count -3 +>> endobj +11 0 obj << +/Title 12 0 R +/A 9 0 R +/Parent 3092 0 R +/Prev 7 0 R +/Next 15 0 R +>> endobj +7 0 obj << +/Title 8 0 R +/A 5 0 R +/Parent 3092 0 R +/Prev 3 0 R +/Next 11 0 R +>> endobj +3 0 obj << +/Title 4 0 R +/A 1 0 R +/Parent 3092 0 R +/Next 7 0 R +>> endobj +3093 0 obj << +/Names [(0) 1175 0 R (1.0) 2 0 R (10) 2156 0 R (1000) 2559 0 R (1001) 2560 0 R (1002) 2561 0 R (1003) 2562 0 R (1004) 2138 0 R (1007) 2563 0 R (1008) 1488 0 R (1011) 2564 0 R (1012) 1489 0 R (1015) 2565 0 R (1016) 1490 0 R (1019) 2566 0 R (1020) 2567 0 R (1021) 1491 0 R (1024) 2568 0 R (1025) 2139 0 R (1028) 2573 0 R (1029) 1492 0 R (105) 2228 0 R (1055) 1493 0 R (1058) 2574 0 R (1059) 2575 0 R (106) 2229 0 R (1060) 1494 0 R (1063) 2576 0 R (1064) 2577 0 R (1065) 2578 0 R (1066) 2579 0 R (1067) 2580 0 R (1068) 2581 0 R (1069) 1495 0 R (107) 2230 0 R (1072) 2582 0 R (1073) 2583 0 R (1074) 2584 0 R (1075) 2585 0 R (1076) 2586 0 R (1077) 2587 0 R (1078) 2588 0 R (1079) 2589 0 R (108) 2231 0 R (1080) 2590 0 R (1081) 1496 0 R (1084) 2596 0 R (1085) 2597 0 R (1086) 2598 0 R (1087) 1497 0 R (109) 2232 0 R (1090) 2599 0 R (1091) 2600 0 R (1092) 2601 0 R (1093) 1498 0 R (1096) 2602 0 R (1097) 2603 0 R (1098) 2140 0 R (11) 2157 0 R (110) 2233 0 R (1101) 2604 0 R (1102) 1499 0 R (111) 1299 0 R (1121) 1500 0 R (1124) 2608 0 R (1125) 2609 0 R (1126) 2610 0 R (1127) 2611 0 R (1138) 1501 0 R (114) 2234 0 R (1141) 2613 0 R (1142) 2614 0 R (1143) 2615 0 R (1144) 2616 0 R (1145) 1608 0 R (1148) 2617 0 R (1149) 2618 0 R (115) 2235 0 R (1150) 1609 0 R (1153) 2623 0 R (1154) 2624 0 R (1155) 1610 0 R (1158) 2625 0 R (1159) 1611 0 R (117) 2236 0 R (118) 2237 0 R (1180) 1612 0 R (1183) 2626 0 R (1184) 2627 0 R (1185) 2628 0 R (1186) 2629 0 R (1187) 2630 0 R (119) 2238 0 R (1198) 1613 0 R (12) 2158 0 R (120) 2239 0 R (1201) 2632 0 R (1202) 2633 0 R (1203) 2634 0 R (1204) 2635 0 R (1205) 1614 0 R (1208) 2636 0 R (1209) 2637 0 R (121) 2240 0 R (1210) 1615 0 R (1213) 2638 0 R (1214) 2639 0 R (1215) 1616 0 R (1218) 2640 0 R (1219) 2641 0 R (122) 2241 0 R (1220) 2642 0 R (1221) 2643 0 R (1222) 2644 0 R (1223) 2645 0 R (1224) 2141 0 R (1227) 2646 0 R (1228) 1617 0 R (123) 2242 0 R (124) 2243 0 R (125) 2244 0 R (1257) 1618 0 R (1260) 2651 0 R (1261) 2652 0 R (1262) 2653 0 R (1263) 2654 0 R (1264) 2655 0 R (13) 2159 0 R (1337) 2657 0 R (1338) 1619 0 R (134) 2246 0 R (1341) 2658 0 R (1342) 2659 0 R (1343) 2660 0 R (1344) 2661 0 R (1345) 1620 0 R (1348) 2666 0 R (1349) 2667 0 R (135) 2247 0 R (1350) 1621 0 R (1353) 2668 0 R (1354) 2669 0 R (1355) 1622 0 R (1358) 2670 0 R (1359) 2671 0 R (136) 2248 0 R (1360) 1623 0 R (1363) 2672 0 R (1364) 1624 0 R (137) 2249 0 R (138) 1300 0 R (14) 2160 0 R (141) 2250 0 R (1417) 1625 0 R (142) 2251 0 R (1420) 2673 0 R (1421) 2674 0 R (1422) 2675 0 R (1423) 2142 0 R (1426) 2676 0 R (1427) 1626 0 R (1430) 2681 0 R (1431) 2682 0 R (1432) 2683 0 R (1433) 2684 0 R (1434) 2685 0 R (1435) 2686 0 R (1436) 2687 0 R (1437) 2688 0 R (1438) 2689 0 R (1439) 2690 0 R (144) 2252 0 R (1440) 1627 0 R (1443) 2691 0 R (1444) 2692 0 R (1445) 2693 0 R (1446) 2694 0 R (1447) 1628 0 R (145) 2253 0 R (1450) 2695 0 R (1451) 2696 0 R (1452) 1629 0 R (1455) 2697 0 R (1456) 2698 0 R (1457) 2699 0 R (1458) 1630 0 R (146) 2254 0 R (1461) 2700 0 R (1462) 2701 0 R (1463) 1631 0 R (1466) 2702 0 R (1467) 2703 0 R (1468) 1632 0 R (147) 2255 0 R (1471) 2704 0 R (1472) 2705 0 R (1473) 2706 0 R (1474) 2707 0 R (1475) 2708 0 R (148) 2256 0 R (1486) 2710 0 R (1487) 1633 0 R (149) 2257 0 R (1490) 2715 0 R (1491) 2143 0 R (1494) 2716 0 R (1495) 2717 0 R (1496) 2718 0 R (1497) 2719 0 R (1498) 2720 0 R (1499) 2721 0 R (15) 2161 0 R (150) 2258 0 R (1500) 2722 0 R (1501) 2723 0 R (151) 2259 0 R (1512) 2725 0 R (1513) 1634 0 R (1515) 1635 0 R (1517) 2731 0 R (1518) 2732 0 R (1519) 2733 0 R (152) 1301 0 R (1520) 2734 0 R (1521) 2735 0 R (1522) 2736 0 R (1523) 2737 0 R (1524) 2738 0 R (1525) 2739 0 R (1526) 1636 0 R (1528) 1637 0 R (1530) 2740 0 R (1531) 2741 0 R (1533) 2742 0 R (1534) 2743 0 R (1535) 2744 0 R (1536) 2745 0 R (1538) 2746 0 R (1539) 2747 0 R (1540) 2748 0 R (1541) 2749 0 R (1543) 2750 0 R (1544) 2751 0 R (1545) 2752 0 R (1546) 2753 0 R (1548) 2754 0 R (1549) 2755 0 R (155) 2260 0 R (1550) 2756 0 R (1551) 1638 0 R (1553) 1639 0 R (1556) 2757 0 R (1557) 2758 0 R (1559) 2759 0 R (156) 2261 0 R (1560) 2760 0 R (1561) 2761 0 R (1562) 2762 0 R (1563) 1640 0 R (1566) 2763 0 R (1567) 2764 0 R (1569) 2765 0 R (1570) 2766 0 R (1571) 2767 0 R (1572) 2768 0 R (1573) 1641 0 R (1576) 2773 0 R (1577) 2774 0 R (1579) 2775 0 R (158) 2262 0 R (1580) 2776 0 R (1581) 2777 0 R (1582) 2778 0 R (1583) 1642 0 R (1586) 2779 0 R (1587) 2780 0 R (1589) 2781 0 R (159) 2263 0 R (1590) 2782 0 R (1591) 2783 0 R (1592) 2784 0 R (1593) 1643 0 R (1595) 1644 0 R (1598) 2785 0 R (1599) 2786 0 R (16) 2162 0 R (160) 2264 0 R (1600) 2787 0 R (1601) 1645 0 R (161) 2265 0 R (162) 2266 0 R (163) 2267 0 R (164) 2268 0 R (165) 2269 0 R (1654) 1646 0 R (1657) 2788 0 R (1658) 2789 0 R (1659) 2790 0 R (166) 2270 0 R (1660) 2791 0 R (1661) 2792 0 R (1662) 2793 0 R (1663) 2794 0 R (1664) 2795 0 R (1665) 1647 0 R (1668) 2800 0 R (1669) 1648 0 R (167) 2271 0 R (1672) 2801 0 R (1673) 2802 0 R (1674) 1649 0 R (1677) 2803 0 R (1678) 1650 0 R (168) 1302 0 R (1681) 2804 0 R (1682) 2805 0 R (1683) 1651 0 R (1686) 2806 0 R (1687) 2807 0 R (1688) 2808 0 R (1689) 2809 0 R (1690) 1652 0 R (1693) 2810 0 R (1694) 2811 0 R (1695) 2812 0 R (1696) 1653 0 R (1699) 2813 0 R (17) 2163 0 R (1700) 1654 0 R (1703) 2814 0 R (1704) 1655 0 R (1707) 2815 0 R (1708) 1656 0 R (171) 2272 0 R (172) 2273 0 R (1721) 1657 0 R (1724) 2820 0 R (1725) 1658 0 R (1738) 1767 0 R (174) 2274 0 R (1741) 2821 0 R (1742) 1768 0 R (175) 2275 0 R (1755) 1769 0 R (1758) 2822 0 R (1759) 2823 0 R (176) 2276 0 R (1760) 2824 0 R (1761) 2825 0 R (1762) 1770 0 R (177) 2280 0 R (1775) 1771 0 R (1778) 2826 0 R (1779) 1772 0 R (178) 2281 0 R (179) 1303 0 R (1792) 1773 0 R (1795) 2827 0 R (1796) 1774 0 R (18) 1295 0 R (1809) 1775 0 R (1812) 2832 0 R (1813) 1776 0 R (182) 2282 0 R (1826) 1777 0 R (1829) 2833 0 R (183) 2283 0 R (1830) 1778 0 R (1843) 1779 0 R (1846) 2834 0 R (1847) 1780 0 R (185) 2284 0 R (186) 2285 0 R (1860) 1781 0 R (1863) 2835 0 R (1864) 1782 0 R (187) 2286 0 R (1877) 1783 0 R (188) 2287 0 R (1880) 2836 0 R (1881) 1784 0 R (189) 2288 0 R (1894) 1785 0 R (1897) 2841 0 R (1898) 1786 0 R (190) 1304 0 R (1911) 1787 0 R (1914) 2842 0 R (1915) 1788 0 R (1928) 1789 0 R (193) 2289 0 R (1931) 2843 0 R (1932) 1790 0 R (194) 2290 0 R (1945) 1791 0 R (1948) 2844 0 R (1949) 2845 0 R (1950) 2846 0 R (1951) 1792 0 R (196) 2291 0 R (1964) 1793 0 R (1967) 2847 0 R (1968) 2848 0 R (1969) 2849 0 R (1970) 1794 0 R (198) 2292 0 R (1983) 1795 0 R (1986) 2855 0 R (1987) 1796 0 R (199) 1305 0 R (2.0) 6 0 R (20) 1296 0 R (2000) 1797 0 R (2003) 2856 0 R (2004) 1798 0 R (2017) 1799 0 R (202) 2293 0 R (2020) 2857 0 R (2021) 1800 0 R (203) 2294 0 R (2034) 1801 0 R (2037) 2858 0 R (2038) 1802 0 R (205) 2295 0 R (2051) 1803 0 R (2054) 2859 0 R (2055) 1804 0 R (2068) 1805 0 R (207) 2296 0 R (2071) 2860 0 R (2072) 1806 0 R (208) 1306 0 R (2108) 1807 0 R (211) 2297 0 R (2111) 2865 0 R (2112) 2866 0 R (2113) 2867 0 R (2114) 2868 0 R (2115) 1808 0 R (2118) 2869 0 R (2119) 2870 0 R (212) 2298 0 R (2120) 2871 0 R (2121) 2872 0 R (2122) 2873 0 R (2123) 2874 0 R (2124) 2875 0 R (2125) 2876 0 R (2126) 2877 0 R (2127) 1809 0 R (2130) 2878 0 R (2131) 2879 0 R (2132) 2880 0 R (2133) 2881 0 R (2134) 1810 0 R (2137) 2882 0 R (2138) 2883 0 R (2139) 2884 0 R (214) 2299 0 R (2140) 2885 0 R (2141) 2886 0 R (2142) 1811 0 R (2145) 2887 0 R (2146) 2888 0 R (2147) 2889 0 R (2148) 2890 0 R (2149) 2891 0 R (215) 2300 0 R (2150) 1812 0 R (2153) 2892 0 R (2154) 2893 0 R (2155) 1813 0 R (2158) 2898 0 R (2159) 1814 0 R (216) 2301 0 R (217) 2302 0 R (2174) 1815 0 R (2177) 2899 0 R (2178) 2900 0 R (2179) 1816 0 R (218) 2303 0 R (2182) 2901 0 R (2183) 1817 0 R (219) 2304 0 R (2198) 1818 0 R (22) 2164 0 R (220) 2305 0 R (2201) 2902 0 R (2202) 2903 0 R (2203) 1928 0 R (2206) 2904 0 R (2207) 1929 0 R (221) 2306 0 R (222) 2307 0 R (2222) 1930 0 R (2225) 2905 0 R (2226) 2906 0 R (2227) 1931 0 R (223) 2308 0 R (2230) 2907 0 R (2231) 1932 0 R (224) 2309 0 R (225) 1307 0 R (2259) 1933 0 R (2262) 2912 0 R (2263) 2913 0 R (2264) 2914 0 R (2265) 2915 0 R (2266) 2916 0 R (2267) 2917 0 R (2268) 2918 0 R (2269) 2919 0 R (227) 1308 0 R (2270) 1934 0 R (2273) 2920 0 R (2274) 2921 0 R (2275) 2922 0 R (2276) 1935 0 R (2279) 2923 0 R (2280) 1936 0 R (2283) 2924 0 R (2284) 1937 0 R (23) 2165 0 R (230) 2310 0 R (231) 1309 0 R (2321) 1938 0 R (2324) 2925 0 R (2325) 2926 0 R (2326) 2927 0 R (2327) 2928 0 R (2328) 2929 0 R (2329) 2930 0 R (2330) 2931 0 R (2331) 1939 0 R (2334) 2932 0 R (2335) 1940 0 R (2338) 2933 0 R (2339) 2934 0 R (2340) 1941 0 R (2343) 2935 0 R (2344) 1942 0 R (2347) 2940 0 R (2348) 1943 0 R (2351) 2941 0 R (2352) 1944 0 R (2355) 2942 0 R (2356) 2943 0 R (2357) 2944 0 R (2358) 2945 0 R (2359) 1945 0 R (2362) 2946 0 R (2363) 2947 0 R (2364) 2948 0 R (2365) 1946 0 R (2368) 2144 0 R (2371) 2949 0 R (2372) 1947 0 R (2461) 1948 0 R (2464) 2954 0 R (2465) 2955 0 R (2466) 1949 0 R (2469) 2956 0 R (2470) 1950 0 R (2473) 2957 0 R (2474) 2958 0 R (2475) 1951 0 R (2478) 2959 0 R (2479) 1952 0 R (2482) 2960 0 R (2483) 2961 0 R (2484) 2962 0 R (2485) 1953 0 R (2488) 2963 0 R (2489) 1954 0 R (2492) 2964 0 R (2493) 2965 0 R (2494) 2966 0 R (2495) 1955 0 R (2498) 2972 0 R (2499) 1956 0 R (25) 2166 0 R (2502) 2973 0 R (2503) 2974 0 R (2504) 2975 0 R (2505) 2976 0 R (2506) 2977 0 R (2507) 2978 0 R (2508) 2979 0 R (2509) 2980 0 R (2510) 2145 0 R (2513) 2981 0 R (2514) 1957 0 R (2517) 2982 0 R (2518) 2983 0 R (2519) 1958 0 R (2522) 2984 0 R (2523) 2985 0 R (2524) 2986 0 R (2525) 1959 0 R (2528) 2987 0 R (2529) 2988 0 R (2530) 1960 0 R (2533) 2989 0 R (2534) 2990 0 R (2535) 2991 0 R (2536) 1961 0 R (2539) 2992 0 R (2540) 1962 0 R (2543) 2993 0 R (2544) 2994 0 R (2545) 2995 0 R (2546) 1963 0 R (2549) 2996 0 R (2550) 1964 0 R (2553) 3001 0 R (2554) 3002 0 R (2555) 3003 0 R (2556) 1965 0 R (2559) 3004 0 R (2560) 3005 0 R (2561) 3006 0 R (2562) 1966 0 R (2565) 3007 0 R (2566) 3008 0 R (2567) 3009 0 R (2568) 3010 0 R (2569) 3011 0 R (2570) 1967 0 R (2573) 3012 0 R (2574) 3013 0 R (2575) 1968 0 R (2578) 3014 0 R (2579) 3015 0 R (2580) 3016 0 R (2581) 3017 0 R (2582) 3018 0 R (2583) 1969 0 R (2586) 2146 0 R (2589) 3019 0 R (2590) 1970 0 R (26) 2169 0 R (2642) 1971 0 R (2645) 3024 0 R (2646) 3025 0 R (2647) 1972 0 R (2650) 3026 0 R (2651) 1973 0 R (2654) 3027 0 R (2655) 3028 0 R (2656) 1974 0 R (2659) 3029 0 R (2660) 1975 0 R (2663) 3030 0 R (2664) 1976 0 R (2667) 3031 0 R (2668) 3032 0 R (2669) 1977 0 R (2672) 3033 0 R (2673) 3034 0 R (2674) 1978 0 R (2677) 3035 0 R (2678) 3036 0 R (2679) 3037 0 R (2680) 1979 0 R (2683) 3038 0 R (2684) 3039 0 R (2685) 3040 0 R (2686) 2050 0 R (2689) 3045 0 R (2690) 3046 0 R (2691) 3047 0 R (2692) 2051 0 R (2695) 3048 0 R (2696) 3049 0 R (2697) 2052 0 R (27) 2170 0 R (2700) 3050 0 R (2701) 3051 0 R (2702) 3052 0 R (2703) 2053 0 R (2706) 3053 0 R (2707) 3054 0 R (2708) 3055 0 R (2709) 2147 0 R (2712) 3056 0 R (2713) 2054 0 R (2726) 2055 0 R (2729) 2056 0 R (2736) 2057 0 R (2739) 2058 0 R (2746) 2059 0 R (2749) 2060 0 R (2756) 2061 0 R (2759) 2062 0 R (2766) 2063 0 R (2769) 3061 0 R (2770) 2148 0 R (2773) 3062 0 R (2774) 2064 0 R (2787) 2065 0 R (2790) 2149 0 R (2793) 3063 0 R (2794) 2066 0 R (28) 2171 0 R (2807) 2067 0 R (2810) 2150 0 R (2813) 3064 0 R (2814) 2068 0 R (2827) 2069 0 R (2830) 2151 0 R (2833) 3070 0 R (2834) 2070 0 R (2847) 2071 0 R (2850) 2072 0 R (2857) 2073 0 R (2860) 2074 0 R (2867) 2075 0 R (2870) 2076 0 R (2877) 2077 0 R (2880) 2078 0 R (2887) 2079 0 R (2890) 3076 0 R (2891) 3069 0 R (29) 2172 0 R (2918) 2152 0 R (2921) 3078 0 R (2922) 2080 0 R (2936) 2081 0 R (2939) 3079 0 R (2940) 3080 0 R (2941) 3081 0 R (2942) 3082 0 R (2943) 2082 0 R (2946) 3083 0 R (2947) 3084 0 R (2948) 3085 0 R (295) 1310 0 R (298) 2314 0 R (299) 2315 0 R (3.0) 10 0 R (30) 2173 0 R (300) 2316 0 R (301) 2317 0 R (302) 2318 0 R (31) 2174 0 R (32) 2175 0 R (327) 1311 0 R (330) 2320 0 R (331) 2321 0 R (332) 2322 0 R (333) 2323 0 R (334) 1312 0 R (337) 2324 0 R (338) 2325 0 R (339) 2326 0 R (34) 2176 0 R (340) 2327 0 R (341) 2328 0 R (342) 2329 0 R (343) 2330 0 R (344) 2131 0 R (347) 2331 0 R (348) 1313 0 R (35) 2177 0 R (351) 2336 0 R (352) 2337 0 R (353) 2338 0 R (354) 2339 0 R (355) 2340 0 R (356) 2132 0 R (359) 2341 0 R (36) 2178 0 R (360) 1314 0 R (363) 2342 0 R (364) 2343 0 R (365) 2344 0 R (366) 2345 0 R (367) 2346 0 R (368) 1315 0 R (37) 2179 0 R (371) 2347 0 R (372) 2348 0 R (373) 2349 0 R (374) 2350 0 R (375) 2351 0 R (376) 1316 0 R (379) 2352 0 R (38) 2180 0 R (380) 2353 0 R (381) 2354 0 R (382) 1317 0 R (385) 2355 0 R (386) 2356 0 R (387) 2357 0 R (388) 2358 0 R (389) 1318 0 R (39) 2181 0 R (392) 2363 0 R (393) 2364 0 R (394) 2365 0 R (395) 2366 0 R (396) 1319 0 R (399) 2367 0 R (4.0) 14 0 R (4.1.1) 18 0 R (4.2.1) 22 0 R (4.2.1.2) 26 0 R (4.2.2.1.3) 34 0 R (4.2.2.2) 30 0 R (4.2.2.2.3) 38 0 R (4.2.2.3.3) 42 0 R (4.2.2.4.3) 46 0 R (4.2.2.5.3) 50 0 R (4.2.2.6.3) 54 0 R (4.2.2.7.3) 58 0 R (4.2.2.8.3) 62 0 R (4.2.2.9.3) 66 0 R (4.3.1) 70 0 R (4.3.10.100.3) 466 0 R (4.3.10.101.3) 470 0 R (4.3.10.102.3) 474 0 R (4.3.10.2) 450 0 R (4.3.10.97.3) 454 0 R (4.3.10.98.3) 458 0 R (4.3.10.99.3) 462 0 R (4.3.11.103.3) 482 0 R (4.3.11.104.3) 486 0 R (4.3.11.105.3) 490 0 R (4.3.11.106.3) 494 0 R (4.3.11.107.3) 498 0 R (4.3.11.108.3) 502 0 R (4.3.11.109.3) 506 0 R (4.3.11.110.3) 510 0 R (4.3.11.111.3) 514 0 R (4.3.11.112.3) 518 0 R (4.3.11.2) 478 0 R (4.3.3.10.3) 78 0 R (4.3.3.11.3) 82 0 R (4.3.3.12.3) 86 0 R (4.3.3.13.3) 90 0 R (4.3.3.14.3) 94 0 R (4.3.3.15.3) 98 0 R (4.3.3.16.3) 102 0 R (4.3.3.17.3) 106 0 R (4.3.3.18.3) 110 0 R (4.3.3.19.3) 114 0 R (4.3.3.2) 74 0 R (4.3.3.20.3) 118 0 R (4.3.3.21.3) 122 0 R (4.3.3.22.3) 126 0 R (4.3.3.23.3) 130 0 R (4.3.3.24.3) 134 0 R (4.3.3.25.3) 138 0 R (4.3.3.26.3) 142 0 R (4.3.3.27.3) 146 0 R (4.3.4.2) 150 0 R (4.3.4.28.3) 154 0 R (4.3.4.29.3) 158 0 R (4.3.4.30.3) 162 0 R (4.3.4.31.3) 166 0 R (4.3.4.32.3) 170 0 R (4.3.4.33.3) 174 0 R (4.3.4.34.3) 178 0 R (4.3.4.35.3) 182 0 R (4.3.4.36.3) 186 0 R (4.3.4.37.3) 190 0 R (4.3.4.38.3) 194 0 R (4.3.4.39.3) 198 0 R (4.3.4.40.3) 202 0 R (4.3.4.41.3) 206 0 R (4.3.4.42.3) 210 0 R (4.3.4.43.3) 214 0 R (4.3.4.44.3) 218 0 R (4.3.4.45.3) 222 0 R (4.3.4.46.3) 226 0 R (4.3.4.47.3) 230 0 R (4.3.4.48.3) 234 0 R (4.3.4.49.3) 238 0 R (4.3.4.50.3) 242 0 R (4.3.5.2) 246 0 R (4.3.5.51.3) 250 0 R (4.3.5.52.3) 254 0 R (4.3.5.53.3) 258 0 R (4.3.5.54.3) 262 0 R (4.3.5.55.3) 266 0 R (4.3.5.56.3) 270 0 R (4.3.5.57.3) 274 0 R (4.3.5.58.3) 278 0 R (4.3.5.59.3) 282 0 R (4.3.5.60.3) 286 0 R (4.3.5.61.3) 290 0 R (4.3.5.62.3) 294 0 R (4.3.5.63.3) 298 0 R (4.3.5.64.3) 302 0 R (4.3.5.65.3) 306 0 R (4.3.5.66.3) 310 0 R (4.3.5.67.3) 314 0 R (4.3.5.68.3) 318 0 R (4.3.5.69.3) 322 0 R (4.3.5.70.3) 326 0 R (4.3.6.2) 330 0 R (4.3.6.71.3) 334 0 R (4.3.6.72.3) 338 0 R (4.3.6.73.3) 342 0 R (4.3.6.74.3) 346 0 R (4.3.6.75.3) 350 0 R (4.3.6.76.3) 354 0 R (4.3.6.77.3) 358 0 R (4.3.6.78.3) 362 0 R (4.3.6.79.3) 366 0 R (4.3.6.80.3) 370 0 R (4.3.7.2) 374 0 R (4.3.7.81.3) 378 0 R (4.3.7.82.3) 382 0 R (4.3.7.83.3) 386 0 R (4.3.7.84.3) 390 0 R (4.3.7.85.3) 394 0 R (4.3.7.86.3) 398 0 R (4.3.8.2) 402 0 R (4.3.8.87.3) 406 0 R (4.3.8.88.3) 410 0 R (4.3.8.89.3) 414 0 R (4.3.8.90.3) 418 0 R (4.3.8.91.3) 422 0 R (4.3.9.2) 426 0 R (4.3.9.92.3) 430 0 R (4.3.9.93.3) 434 0 R (4.3.9.94.3) 438 0 R (4.3.9.95.3) 442 0 R (4.3.9.96.3) 446 0 R (400) 2368 0 R (401) 2369 0 R (402) 1320 0 R (405) 2370 0 R (406) 1321 0 R (409) 2371 0 R (41) 2182 0 R (410) 2372 0 R (411) 2373 0 R (412) 2374 0 R (413) 1322 0 R (416) 2375 0 R (417) 2376 0 R (418) 2377 0 R (419) 2378 0 R (42) 2183 0 R (429) 1323 0 R (43) 2184 0 R (432) 2380 0 R (433) 2381 0 R (434) 1324 0 R (437) 2382 0 R (438) 2383 0 R (439) 2384 0 R (44) 2185 0 R (440) 2385 0 R (441) 2386 0 R (442) 2387 0 R (443) 1325 0 R (446) 2388 0 R (447) 1326 0 R (450) 2392 0 R (451) 2393 0 R (452) 2362 0 R (457) 2395 0 R (458) 2396 0 R (459) 2397 0 R (46) 2186 0 R (460) 1327 0 R (463) 2398 0 R (464) 2133 0 R (467) 2399 0 R (468) 1328 0 R (47) 2187 0 R (48) 2188 0 R (49) 2189 0 R (5.0) 522 0 R (5.4.1) 526 0 R (5.5.1) 530 0 R (5.5.12.2) 534 0 R (5.5.13.113.3) 542 0 R (5.5.13.114.3) 546 0 R (5.5.13.115.3) 550 0 R (5.5.13.116.3) 554 0 R (5.5.13.2) 538 0 R (5.6.1) 558 0 R (5.6.14.117.3) 566 0 R (5.6.14.118.3) 570 0 R (5.6.14.119.3) 574 0 R (5.6.14.120.3) 578 0 R (5.6.14.121.3) 582 0 R (5.6.14.122.3) 586 0 R (5.6.14.123.3) 590 0 R (5.6.14.124.3) 594 0 R (5.6.14.125.3) 598 0 R (5.6.14.126.3) 602 0 R (5.6.14.2) 562 0 R (5.6.15.127.3) 610 0 R (5.6.15.2) 606 0 R (5.6.16.128.3) 618 0 R (5.6.16.2) 614 0 R (5.6.17.129.3) 626 0 R (5.6.17.2) 622 0 R (5.6.18.130.3) 634 0 R (5.6.18.2) 630 0 R (5.6.19.131.3) 642 0 R (5.6.19.2) 638 0 R (5.6.20.132.3) 650 0 R (5.6.20.2) 646 0 R (5.6.21.133.3) 658 0 R (5.6.21.2) 654 0 R (5.6.22.134.3) 666 0 R (5.6.22.2) 662 0 R (5.6.23.135.3) 674 0 R (5.6.23.2) 670 0 R (5.6.24.136.3) 682 0 R (5.6.24.2) 678 0 R (5.6.25.137.3) 690 0 R (5.6.25.2) 686 0 R (5.6.26.138.3) 698 0 R (5.6.26.2) 694 0 R (5.6.27.139.3) 706 0 R (5.6.27.2) 702 0 R (5.6.28.140.3) 714 0 R (5.6.28.2) 710 0 R (5.6.29.141.3) 722 0 R (5.6.29.2) 718 0 R (5.6.30.142.3) 730 0 R (5.6.30.2) 726 0 R (5.6.31.143.3) 738 0 R (5.6.31.2) 734 0 R (5.6.32.144.3) 746 0 R (5.6.32.2) 742 0 R (5.6.33.145.3) 754 0 R (5.6.33.2) 750 0 R (5.6.34.146.3) 762 0 R (5.6.34.2) 758 0 R (5.6.35.147.3) 770 0 R (5.6.35.2) 766 0 R (5.6.36.148.3) 778 0 R (5.6.36.149.3) 782 0 R (5.6.36.150.3) 786 0 R (5.6.36.151.3) 790 0 R (5.6.36.152.3) 794 0 R (5.6.36.153.3) 798 0 R (5.6.36.154.3) 802 0 R (5.6.36.2) 774 0 R (5.6.37.155.3) 810 0 R (5.6.37.156.3) 814 0 R (5.6.37.2) 806 0 R (5.6.38.157.3) 822 0 R (5.6.38.158.3) 826 0 R (5.6.38.2) 818 0 R (5.6.39.159.3) 834 0 R (5.6.39.160.3) 838 0 R (5.6.39.2) 830 0 R (5.6.40.161.3) 846 0 R (5.6.40.162.3) 850 0 R (5.6.40.163.3) 854 0 R (5.6.40.164.3) 858 0 R (5.6.40.2) 842 0 R (5.6.41.165.3) 866 0 R (5.6.41.166.3) 870 0 R (5.6.41.167.3) 874 0 R (5.6.41.168.3) 878 0 R (5.6.41.169.3) 882 0 R (5.6.41.170.3) 886 0 R (5.6.41.171.3) 890 0 R (5.6.41.172.3) 894 0 R (5.6.41.173.3) 898 0 R (5.6.41.2) 862 0 R (5.6.42.174.3) 906 0 R (5.6.42.175.3) 910 0 R (5.6.42.176.3) 914 0 R (5.6.42.177.3) 918 0 R (5.6.42.178.3) 922 0 R (5.6.42.179.3) 926 0 R (5.6.42.180.3) 930 0 R (5.6.42.181.3) 934 0 R (5.6.42.182.3) 938 0 R (5.6.42.183.3) 942 0 R (5.6.42.184.3) 946 0 R (5.6.42.185.3) 950 0 R (5.6.42.186.3) 954 0 R (5.6.42.187.3) 958 0 R (5.6.42.188.3) 962 0 R (5.6.42.189.3) 966 0 R (5.6.42.190.3) 970 0 R (5.6.42.191.3) 974 0 R (5.6.42.192.3) 978 0 R (5.6.42.193.3) 982 0 R (5.6.42.194.3) 986 0 R (5.6.42.195.3) 990 0 R (5.6.42.2) 902 0 R (5.6.43.196.3) 998 0 R (5.6.43.197.3) 1002 0 R (5.6.43.198.3) 1006 0 R (5.6.43.199.3) 1010 0 R (5.6.43.2) 994 0 R (5.6.43.200.3) 1014 0 R (5.6.43.201.3) 1018 0 R (5.6.43.202.3) 1022 0 R (5.6.43.203.3) 1026 0 R (5.6.43.204.3) 1030 0 R (5.6.43.205.3) 1034 0 R (5.6.43.206.3) 1038 0 R (5.6.43.207.3) 1042 0 R (5.6.43.208.3) 1046 0 R (5.6.44.2) 1050 0 R (5.6.44.209.3) 1054 0 R (5.6.45.2) 1058 0 R (5.6.45.210.3) 1062 0 R (5.6.46.2) 1066 0 R (5.6.46.211.3) 1070 0 R (5.6.47.2) 1074 0 R (5.6.47.212.3) 1078 0 R (5.6.48.2) 1082 0 R (5.6.48.213.3) 1086 0 R (5.6.49.2) 1090 0 R (5.6.49.214.3) 1094 0 R (5.6.50.2) 1098 0 R (5.6.50.215.3) 1102 0 R (5.6.51.2) 1106 0 R (5.6.51.216.3) 1110 0 R (5.6.52.2) 1114 0 R (5.6.52.217.3) 1118 0 R (5.6.53.2) 1122 0 R (5.6.53.218.3) 1126 0 R (5.6.54.2) 1130 0 R (5.6.54.219.3) 1134 0 R (5.6.55.2) 1138 0 R (5.6.55.220.3) 1142 0 R (5.6.56.2) 1146 0 R (5.6.56.221.3) 1150 0 R (5.6.57.2) 1154 0 R (5.6.57.222.3) 1158 0 R (5.6.57.223.3) 1162 0 R (5.6.57.224.3) 1166 0 R (50) 2190 0 R (51) 2191 0 R (53) 2192 0 R (54) 2193 0 R (55) 2194 0 R (557) 1329 0 R (56) 2195 0 R (560) 2403 0 R (561) 1330 0 R (564) 2404 0 R (565) 1331 0 R (568) 2405 0 R (569) 1332 0 R (572) 2406 0 R (573) 2407 0 R (574) 2408 0 R (575) 2409 0 R (576) 2410 0 R (58) 2196 0 R (587) 1333 0 R (59) 2197 0 R (590) 2412 0 R (591) 2413 0 R (592) 2414 0 R (593) 1334 0 R (596) 2415 0 R (597) 1335 0 R (6) 1293 0 R (60) 2198 0 R (600) 2416 0 R (601) 2417 0 R (602) 1336 0 R (605) 2421 0 R (606) 1337 0 R (609) 2422 0 R (61) 2199 0 R (610) 2423 0 R (611) 1338 0 R (614) 2424 0 R (615) 2425 0 R (63) 2200 0 R (634) 2427 0 R (635) 1339 0 R (638) 2428 0 R (639) 2429 0 R (640) 2430 0 R (641) 1340 0 R (644) 2431 0 R (645) 2432 0 R (646) 1341 0 R (649) 2433 0 R (65) 2201 0 R (650) 2434 0 R (651) 2435 0 R (652) 1450 0 R (655) 2436 0 R (656) 2437 0 R (657) 2438 0 R (658) 1451 0 R (661) 2439 0 R (662) 2440 0 R (663) 2441 0 R (664) 1452 0 R (667) 2446 0 R (668) 2447 0 R (669) 2448 0 R (67) 2202 0 R (670) 1453 0 R (673) 2449 0 R (674) 2450 0 R (675) 2451 0 R (676) 1454 0 R (679) 2452 0 R (680) 2453 0 R (681) 2454 0 R (682) 2455 0 R (683) 2456 0 R (684) 2457 0 R (685) 2134 0 R (688) 2458 0 R (689) 1455 0 R (69) 2203 0 R (692) 2459 0 R (693) 1456 0 R (696) 2460 0 R (697) 1457 0 R (700) 2461 0 R (701) 2462 0 R (702) 1458 0 R (705) 2463 0 R (706) 1459 0 R (709) 2464 0 R (71) 2204 0 R (710) 1460 0 R (72) 2205 0 R (73) 2206 0 R (74) 2207 0 R (75) 2208 0 R (76) 2209 0 R (77) 2210 0 R (78) 1297 0 R (788) 1461 0 R (791) 2470 0 R (792) 1462 0 R (795) 2471 0 R (796) 1463 0 R (799) 2472 0 R (8) 1294 0 R (80) 1298 0 R (800) 1464 0 R (803) 2473 0 R (804) 2474 0 R (805) 1465 0 R (808) 2475 0 R (809) 2476 0 R (810) 2477 0 R (811) 1466 0 R (814) 2478 0 R (815) 2479 0 R (816) 2480 0 R (817) 2481 0 R (818) 1467 0 R (821) 2482 0 R (822) 2483 0 R (823) 2484 0 R (824) 1468 0 R (827) 2485 0 R (828) 2486 0 R (829) 2487 0 R (83) 2211 0 R (830) 1469 0 R (833) 2492 0 R (834) 2493 0 R (835) 2494 0 R (836) 1470 0 R (839) 2495 0 R (84) 2212 0 R (840) 2496 0 R (841) 2497 0 R (842) 1471 0 R (845) 2498 0 R (846) 2499 0 R (847) 2135 0 R (850) 2500 0 R (851) 1472 0 R (854) 2501 0 R (855) 2502 0 R (856) 2503 0 R (857) 2136 0 R (86) 2213 0 R (860) 2504 0 R (861) 1473 0 R (864) 2509 0 R (865) 2510 0 R (866) 2511 0 R (867) 2512 0 R (868) 2513 0 R (869) 2514 0 R (87) 2214 0 R (870) 2515 0 R (871) 2516 0 R (872) 1474 0 R (875) 2517 0 R (876) 2518 0 R (877) 2519 0 R (878) 2520 0 R (879) 2521 0 R (88) 2215 0 R (89) 2216 0 R (890) 1475 0 R (893) 2523 0 R (894) 2524 0 R (895) 2525 0 R (896) 2526 0 R (897) 2527 0 R (898) 2528 0 R (899) 2137 0 R (90) 2217 0 R (902) 2529 0 R (903) 1476 0 R (906) 2534 0 R (907) 1477 0 R (91) 2218 0 R (910) 2535 0 R (911) 1478 0 R (914) 2536 0 R (915) 2537 0 R (916) 1479 0 R (919) 2538 0 R (92) 2219 0 R (920) 1480 0 R (923) 2539 0 R (924) 2540 0 R (925) 1481 0 R (93) 2220 0 R (94) 2221 0 R (95) 2222 0 R (96) 2226 0 R (968) 1482 0 R (971) 2541 0 R (972) 2542 0 R (973) 2543 0 R (974) 1483 0 R (977) 2548 0 R (978) 2549 0 R (979) 2550 0 R (980) 1484 0 R (983) 2551 0 R (984) 2552 0 R (985) 2553 0 R (986) 1485 0 R (989) 2554 0 R (990) 1486 0 R (993) 2555 0 R (994) 2556 0 R (995) 1487 0 R (998) 2557 0 R (999) 2558 0 R (Doc-Start) 1174 0 R (page.1) 1173 0 R (page.10) 2445 0 R (page.11) 2469 0 R (page.12) 2491 0 R (page.13) 2508 0 R (page.14) 2533 0 R (page.15) 2547 0 R (page.16) 2572 0 R (page.17) 2595 0 R (page.18) 2622 0 R (page.19) 2650 0 R (page.2) 1182 0 R (page.20) 2665 0 R (page.21) 2680 0 R (page.22) 2714 0 R (page.23) 2730 0 R (page.24) 2772 0 R (page.25) 2799 0 R (page.26) 2819 0 R (page.27) 2831 0 R (page.28) 2840 0 R (page.29) 2854 0 R (page.3) 1188 0 R (page.30) 2864 0 R (page.31) 2897 0 R (page.32) 2911 0 R (page.33) 2939 0 R (page.34) 2953 0 R (page.35) 2971 0 R (page.36) 3000 0 R (page.37) 3023 0 R (page.38) 3044 0 R (page.39) 3060 0 R (page.4) 1345 0 R (page.40) 3068 0 R (page.41) 3075 0 R (page.5) 1505 0 R (page.6) 1662 0 R (page.7) 1822 0 R (page.8) 1983 0 R (page.9) 2086 0 R (table.1) 2227 0 R (table.10) 2631 0 R (table.11) 2656 0 R (table.12) 2709 0 R (table.13) 2724 0 R (table.14) 3077 0 R (table.2) 2245 0 R (table.3) 2319 0 R (table.4) 2379 0 R (table.5) 2394 0 R (table.6) 2411 0 R (table.7) 2426 0 R (table.8) 2522 0 R (table.9) 2612 0 R] +/Limits [(0) (table.9)] +>> endobj +3094 0 obj << +/Kids [3093 0 R] +>> endobj +3095 0 obj << +/Dests 3094 0 R +>> endobj +3096 0 obj << +/Type /Catalog +/Pages 3091 0 R +/Outlines 3092 0 R +/Names 3095 0 R +/PageMode /UseOutlines /URI<</Base()>> /ViewerPreferences<<>> +/OpenAction 1169 0 R +/PTEX.Fullbanner (This is pdfTeX, Version 3.14159-1.00b-pretest-20020211) +>> endobj +3097 0 obj << +/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.00b)/Keywords() +/Producer (pdfTeX-1.0b-pdfcrypt) +/CreationDate (D:20020918152200) +>> endobj +xref +0 3098 +0000001176 65535 f +0000000009 00000 n +0000026183 00000 n +0000612818 00000 n +0000000048 00000 n +0000000081 00000 n +0000088115 00000 n +0000612733 00000 n +0000000120 00000 n +0000000155 00000 n +0000412449 00000 n +0000612646 00000 n +0000000194 00000 n +0000000229 00000 n +0000415231 00000 n +0000612519 00000 n +0000000269 00000 n +0000000313 00000 n +0000415356 00000 n +0000612445 00000 n +0000000355 00000 n +0000000386 00000 n +0000415990 00000 n +0000612321 00000 n +0000000428 00000 n +0000000463 00000 n +0000416114 00000 n +0000612247 00000 n +0000000507 00000 n +0000000545 00000 n +0000419094 00000 n +0000612136 00000 n +0000000589 00000 n +0000000629 00000 n +0000419219 00000 n +0000612062 00000 n +0000000675 00000 n +0000000714 00000 n +0000422856 00000 n +0000611975 00000 n +0000000760 00000 n +0000000799 00000 n +0000423996 00000 n +0000611888 00000 n +0000000845 00000 n +0000000881 00000 n +0000424749 00000 n +0000611801 00000 n +0000000927 00000 n +0000000962 00000 n +0000425631 00000 n +0000611714 00000 n +0000001008 00000 n +0000001054 00000 n +0000428204 00000 n +0000611627 00000 n +0000001100 00000 n +0000001147 00000 n +0000428773 00000 n +0000611540 00000 n +0000001193 00000 n +0000001233 00000 n +0000429149 00000 n +0000611453 00000 n +0000001279 00000 n +0000001321 00000 n +0000429526 00000 n +0000611379 00000 n +0000001367 00000 n +0000001408 00000 n +0000430473 00000 n +0000611267 00000 n +0000001450 00000 n +0000001483 00000 n +0000430598 00000 n +0000611153 00000 n +0000001527 00000 n +0000001559 00000 n +0000430786 00000 n +0000611079 00000 n +0000001606 00000 n +0000001641 00000 n +0000432730 00000 n +0000610992 00000 n +0000001688 00000 n +0000001722 00000 n +0000433233 00000 n +0000610905 00000 n +0000001769 00000 n +0000001804 00000 n +0000433611 00000 n +0000610818 00000 n +0000001851 00000 n +0000001887 00000 n +0000436160 00000 n +0000610731 00000 n +0000001934 00000 n +0000001971 00000 n +0000436729 00000 n +0000610642 00000 n +0000002018 00000 n +0000002054 00000 n +0000437172 00000 n +0000610551 00000 n +0000002102 00000 n +0000002137 00000 n +0000437616 00000 n +0000610459 00000 n +0000002185 00000 n +0000002231 00000 n +0000437933 00000 n +0000610367 00000 n +0000002279 00000 n +0000002324 00000 n +0000440819 00000 n +0000610275 00000 n +0000002372 00000 n +0000002409 00000 n +0000441197 00000 n +0000610183 00000 n +0000002457 00000 n +0000002496 00000 n +0000441512 00000 n +0000610091 00000 n +0000002544 00000 n +0000002580 00000 n +0000441700 00000 n +0000609999 00000 n +0000002628 00000 n +0000002667 00000 n +0000442076 00000 n +0000609907 00000 n +0000002715 00000 n +0000002757 00000 n +0000442519 00000 n +0000609815 00000 n +0000002805 00000 n +0000002846 00000 n +0000442771 00000 n +0000609723 00000 n +0000002894 00000 n +0000002935 00000 n +0000443278 00000 n +0000609631 00000 n +0000002983 00000 n +0000003023 00000 n +0000445107 00000 n +0000609553 00000 n +0000003071 00000 n +0000003115 00000 n +0000445612 00000 n +0000609422 00000 n +0000003160 00000 n +0000003194 00000 n +0000445927 00000 n +0000609343 00000 n +0000003242 00000 n +0000003278 00000 n +0000447857 00000 n +0000609250 00000 n +0000003326 00000 n +0000003361 00000 n +0000448044 00000 n +0000609157 00000 n +0000003409 00000 n +0000003448 00000 n +0000448230 00000 n +0000609064 00000 n +0000003496 00000 n +0000003535 00000 n +0000448418 00000 n +0000608971 00000 n +0000003583 00000 n +0000003618 00000 n +0000448923 00000 n +0000608878 00000 n +0000003666 00000 n +0000003709 00000 n +0000449240 00000 n +0000608785 00000 n +0000003757 00000 n +0000003798 00000 n +0000449429 00000 n +0000608692 00000 n +0000003846 00000 n +0000003887 00000 n +0000451845 00000 n +0000608599 00000 n +0000003935 00000 n +0000003975 00000 n +0000451969 00000 n +0000608506 00000 n +0000004023 00000 n +0000004063 00000 n +0000452221 00000 n +0000608413 00000 n +0000004111 00000 n +0000004151 00000 n +0000452596 00000 n +0000608320 00000 n +0000004199 00000 n +0000004239 00000 n +0000452911 00000 n +0000608227 00000 n +0000004287 00000 n +0000004328 00000 n +0000453163 00000 n +0000608134 00000 n +0000004376 00000 n +0000004417 00000 n +0000453477 00000 n +0000608041 00000 n +0000004465 00000 n +0000004508 00000 n +0000453794 00000 n +0000607948 00000 n +0000004556 00000 n +0000004599 00000 n +0000456344 00000 n +0000607855 00000 n +0000004647 00000 n +0000004689 00000 n +0000456597 00000 n +0000607762 00000 n +0000004737 00000 n +0000004779 00000 n +0000456914 00000 n +0000607669 00000 n +0000004827 00000 n +0000004870 00000 n +0000457547 00000 n +0000607576 00000 n +0000004918 00000 n +0000004964 00000 n +0000457736 00000 n +0000607483 00000 n +0000005012 00000 n +0000005058 00000 n +0000457925 00000 n +0000607390 00000 n +0000005106 00000 n +0000005149 00000 n +0000458178 00000 n +0000607311 00000 n +0000005197 00000 n +0000005234 00000 n +0000458365 00000 n +0000607179 00000 n +0000005279 00000 n +0000005316 00000 n +0000458554 00000 n +0000607100 00000 n +0000005364 00000 n +0000005400 00000 n +0000460533 00000 n +0000607007 00000 n +0000005448 00000 n +0000005487 00000 n +0000460721 00000 n +0000606914 00000 n +0000005535 00000 n +0000005574 00000 n +0000460909 00000 n +0000606821 00000 n +0000005622 00000 n +0000005663 00000 n +0000461097 00000 n +0000606728 00000 n +0000005711 00000 n +0000005752 00000 n +0000461350 00000 n +0000606635 00000 n +0000005800 00000 n +0000005840 00000 n +0000461666 00000 n +0000606542 00000 n +0000005888 00000 n +0000005928 00000 n +0000462046 00000 n +0000606449 00000 n +0000005976 00000 n +0000006020 00000 n +0000462363 00000 n +0000606356 00000 n +0000006068 00000 n +0000006112 00000 n +0000464571 00000 n +0000606263 00000 n +0000006160 00000 n +0000006204 00000 n +0000464887 00000 n +0000606170 00000 n +0000006252 00000 n +0000006296 00000 n +0000465204 00000 n +0000606077 00000 n +0000006344 00000 n +0000006385 00000 n +0000465580 00000 n +0000605984 00000 n +0000006433 00000 n +0000006474 00000 n +0000468326 00000 n +0000605891 00000 n +0000006522 00000 n +0000006559 00000 n +0000468961 00000 n +0000605798 00000 n +0000006607 00000 n +0000006642 00000 n +0000469466 00000 n +0000605705 00000 n +0000006690 00000 n +0000006733 00000 n +0000472102 00000 n +0000605612 00000 n +0000006781 00000 n +0000006827 00000 n +0000472291 00000 n +0000605519 00000 n +0000006875 00000 n +0000006921 00000 n +0000472480 00000 n +0000605426 00000 n +0000006969 00000 n +0000007012 00000 n +0000472733 00000 n +0000605347 00000 n +0000007060 00000 n +0000007097 00000 n +0000472919 00000 n +0000605215 00000 n +0000007142 00000 n +0000007183 00000 n +0000473172 00000 n +0000605136 00000 n +0000007231 00000 n +0000007267 00000 n +0000473298 00000 n +0000605043 00000 n +0000007315 00000 n +0000007350 00000 n +0000475797 00000 n +0000604950 00000 n +0000007398 00000 n +0000007436 00000 n +0000476049 00000 n +0000604857 00000 n +0000007484 00000 n +0000007522 00000 n +0000476365 00000 n +0000604764 00000 n +0000007570 00000 n +0000007610 00000 n +0000476553 00000 n +0000604671 00000 n +0000007658 00000 n +0000007698 00000 n +0000476805 00000 n +0000604578 00000 n +0000007746 00000 n +0000007789 00000 n +0000477440 00000 n +0000604485 00000 n +0000007837 00000 n +0000007883 00000 n +0000477629 00000 n +0000604392 00000 n +0000007931 00000 n +0000007977 00000 n +0000477818 00000 n +0000604313 00000 n +0000008025 00000 n +0000008068 00000 n +0000478070 00000 n +0000604182 00000 n +0000008113 00000 n +0000008152 00000 n +0000480576 00000 n +0000604103 00000 n +0000008200 00000 n +0000008236 00000 n +0000480700 00000 n +0000604010 00000 n +0000008284 00000 n +0000008319 00000 n +0000480952 00000 n +0000603917 00000 n +0000008367 00000 n +0000008404 00000 n +0000481457 00000 n +0000603824 00000 n +0000008452 00000 n +0000008494 00000 n +0000484334 00000 n +0000603731 00000 n +0000008542 00000 n +0000008581 00000 n +0000484650 00000 n +0000603652 00000 n +0000008629 00000 n +0000008666 00000 n +0000484963 00000 n +0000603521 00000 n +0000008711 00000 n +0000008747 00000 n +0000485342 00000 n +0000603442 00000 n +0000008795 00000 n +0000008831 00000 n +0000485468 00000 n +0000603349 00000 n +0000008879 00000 n +0000008914 00000 n +0000485910 00000 n +0000603256 00000 n +0000008962 00000 n +0000008999 00000 n +0000486289 00000 n +0000603163 00000 n +0000009047 00000 n +0000009082 00000 n +0000488642 00000 n +0000603084 00000 n +0000009130 00000 n +0000009167 00000 n +0000488892 00000 n +0000602953 00000 n +0000009212 00000 n +0000009246 00000 n +0000489080 00000 n +0000602874 00000 n +0000009294 00000 n +0000009330 00000 n +0000489205 00000 n +0000602781 00000 n +0000009378 00000 n +0000009413 00000 n +0000489711 00000 n +0000602688 00000 n +0000009461 00000 n +0000009498 00000 n +0000490088 00000 n +0000602595 00000 n +0000009546 00000 n +0000009581 00000 n +0000490340 00000 n +0000602516 00000 n +0000009629 00000 n +0000009663 00000 n +0000490593 00000 n +0000602385 00000 n +0000009709 00000 n +0000009748 00000 n +0000493263 00000 n +0000602306 00000 n +0000009797 00000 n +0000009833 00000 n +0000493389 00000 n +0000602213 00000 n +0000009882 00000 n +0000009917 00000 n +0000493953 00000 n +0000602120 00000 n +0000009966 00000 n +0000010008 00000 n +0000496590 00000 n +0000602027 00000 n +0000010058 00000 n +0000010100 00000 n +0000496842 00000 n +0000601934 00000 n +0000010150 00000 n +0000010187 00000 n +0000497092 00000 n +0000601855 00000 n +0000010237 00000 n +0000010273 00000 n +0000497343 00000 n +0000601737 00000 n +0000010319 00000 n +0000010359 00000 n +0000497532 00000 n +0000601658 00000 n +0000010409 00000 n +0000010445 00000 n +0000497654 00000 n +0000601565 00000 n +0000010495 00000 n +0000010530 00000 n +0000500335 00000 n +0000601472 00000 n +0000010580 00000 n +0000010619 00000 n +0000501098 00000 n +0000601379 00000 n +0000010669 00000 n +0000010708 00000 n +0000501477 00000 n +0000601286 00000 n +0000010758 00000 n +0000010802 00000 n +0000501729 00000 n +0000601193 00000 n +0000010852 00000 n +0000010896 00000 n +0000502046 00000 n +0000601100 00000 n +0000010946 00000 n +0000010991 00000 n +0000502299 00000 n +0000601007 00000 n +0000011041 00000 n +0000011086 00000 n +0000502552 00000 n +0000600914 00000 n +0000011136 00000 n +0000011171 00000 n +0000504713 00000 n +0000600835 00000 n +0000011221 00000 n +0000011258 00000 n +0000507891 00000 n +0000600717 00000 n +0000011299 00000 n +0000011349 00000 n +0000508017 00000 n +0000600638 00000 n +0000011392 00000 n +0000011424 00000 n +0000508715 00000 n +0000600506 00000 n +0000011467 00000 n +0000011503 00000 n +0000508841 00000 n +0000600427 00000 n +0000011549 00000 n +0000011588 00000 n +0000510046 00000 n +0000600309 00000 n +0000011634 00000 n +0000011675 00000 n +0000510172 00000 n +0000600230 00000 n +0000011725 00000 n +0000011766 00000 n +0000510677 00000 n +0000600137 00000 n +0000011816 00000 n +0000011857 00000 n +0000513404 00000 n +0000600044 00000 n +0000011907 00000 n +0000011948 00000 n +0000513909 00000 n +0000599965 00000 n +0000011998 00000 n +0000012039 00000 n +0000514414 00000 n +0000599845 00000 n +0000012082 00000 n +0000012116 00000 n +0000514540 00000 n +0000599726 00000 n +0000012162 00000 n +0000012205 00000 n +0000514855 00000 n +0000599647 00000 n +0000012255 00000 n +0000012291 00000 n +0000514981 00000 n +0000599554 00000 n +0000012341 00000 n +0000012376 00000 n +0000518031 00000 n +0000599461 00000 n +0000012426 00000 n +0000012462 00000 n +0000518156 00000 n +0000599368 00000 n +0000012512 00000 n +0000012546 00000 n +0000518409 00000 n +0000599275 00000 n +0000012596 00000 n +0000012630 00000 n +0000518598 00000 n +0000599182 00000 n +0000012680 00000 n +0000012718 00000 n +0000518849 00000 n +0000599089 00000 n +0000012768 00000 n +0000012803 00000 n +0000519226 00000 n +0000598996 00000 n +0000012853 00000 n +0000012889 00000 n +0000519540 00000 n +0000598903 00000 n +0000012939 00000 n +0000012978 00000 n +0000519728 00000 n +0000598824 00000 n +0000013028 00000 n +0000013069 00000 n +0000519917 00000 n +0000598692 00000 n +0000013115 00000 n +0000013152 00000 n +0000521710 00000 n +0000598627 00000 n +0000013202 00000 n +0000013238 00000 n +0000521773 00000 n +0000598495 00000 n +0000013284 00000 n +0000013321 00000 n +0000521960 00000 n +0000598430 00000 n +0000013371 00000 n +0000013407 00000 n +0000522086 00000 n +0000598298 00000 n +0000013453 00000 n +0000013492 00000 n +0000522275 00000 n +0000598233 00000 n +0000013542 00000 n +0000013578 00000 n +0000522401 00000 n +0000598101 00000 n +0000013624 00000 n +0000013666 00000 n +0000522778 00000 n +0000598036 00000 n +0000013716 00000 n +0000013752 00000 n +0000522904 00000 n +0000597904 00000 n +0000013798 00000 n +0000013839 00000 n +0000523093 00000 n +0000597839 00000 n +0000013889 00000 n +0000013925 00000 n +0000523219 00000 n +0000597707 00000 n +0000013971 00000 n +0000014005 00000 n +0000523407 00000 n +0000597642 00000 n +0000014055 00000 n +0000014091 00000 n +0000525085 00000 n +0000597510 00000 n +0000014137 00000 n +0000014170 00000 n +0000525274 00000 n +0000597445 00000 n +0000014220 00000 n +0000014256 00000 n +0000525399 00000 n +0000597313 00000 n +0000014302 00000 n +0000014336 00000 n +0000525588 00000 n +0000597248 00000 n +0000014386 00000 n +0000014422 00000 n +0000525714 00000 n +0000597116 00000 n +0000014468 00000 n +0000014508 00000 n +0000525903 00000 n +0000597051 00000 n +0000014558 00000 n +0000014594 00000 n +0000526029 00000 n +0000596919 00000 n +0000014640 00000 n +0000014683 00000 n +0000526218 00000 n +0000596854 00000 n +0000014733 00000 n +0000014769 00000 n +0000526344 00000 n +0000596722 00000 n +0000014815 00000 n +0000014860 00000 n +0000526532 00000 n +0000596657 00000 n +0000014910 00000 n +0000014946 00000 n +0000528231 00000 n +0000596525 00000 n +0000014992 00000 n +0000015031 00000 n +0000528420 00000 n +0000596460 00000 n +0000015081 00000 n +0000015117 00000 n +0000528546 00000 n +0000596328 00000 n +0000015163 00000 n +0000015207 00000 n +0000528734 00000 n +0000596263 00000 n +0000015257 00000 n +0000015293 00000 n +0000528859 00000 n +0000596131 00000 n +0000015339 00000 n +0000015378 00000 n +0000529048 00000 n +0000596066 00000 n +0000015428 00000 n +0000015464 00000 n +0000529174 00000 n +0000595934 00000 n +0000015510 00000 n +0000015547 00000 n +0000529490 00000 n +0000595869 00000 n +0000015597 00000 n +0000015633 00000 n +0000529616 00000 n +0000595737 00000 n +0000015679 00000 n +0000015724 00000 n +0000529930 00000 n +0000595672 00000 n +0000015774 00000 n +0000015810 00000 n +0000531420 00000 n +0000595540 00000 n +0000015856 00000 n +0000015899 00000 n +0000531609 00000 n +0000595475 00000 n +0000015949 00000 n +0000015985 00000 n +0000531735 00000 n +0000595343 00000 n +0000016031 00000 n +0000016074 00000 n +0000531923 00000 n +0000595278 00000 n +0000016124 00000 n +0000016160 00000 n +0000532048 00000 n +0000595146 00000 n +0000016206 00000 n +0000016249 00000 n +0000532237 00000 n +0000595081 00000 n +0000016299 00000 n +0000016335 00000 n +0000532363 00000 n +0000594949 00000 n +0000016381 00000 n +0000016426 00000 n +0000532552 00000 n +0000594884 00000 n +0000016476 00000 n +0000016512 00000 n +0000532678 00000 n +0000594752 00000 n +0000016558 00000 n +0000016597 00000 n +0000532867 00000 n +0000594687 00000 n +0000016647 00000 n +0000016683 00000 n +0000532993 00000 n +0000594555 00000 n +0000016729 00000 n +0000016767 00000 n +0000536120 00000 n +0000594476 00000 n +0000016817 00000 n +0000016853 00000 n +0000536246 00000 n +0000594383 00000 n +0000016903 00000 n +0000016938 00000 n +0000536626 00000 n +0000594290 00000 n +0000016988 00000 n +0000017031 00000 n +0000537322 00000 n +0000594197 00000 n +0000017081 00000 n +0000017116 00000 n +0000537700 00000 n +0000594104 00000 n +0000017166 00000 n +0000017202 00000 n +0000538142 00000 n +0000594011 00000 n +0000017252 00000 n +0000017286 00000 n +0000538584 00000 n +0000593932 00000 n +0000017336 00000 n +0000017370 00000 n +0000540246 00000 n +0000593800 00000 n +0000017416 00000 n +0000017456 00000 n +0000540434 00000 n +0000593721 00000 n +0000017506 00000 n +0000017542 00000 n +0000540559 00000 n +0000593642 00000 n +0000017592 00000 n +0000017627 00000 n +0000540808 00000 n +0000593510 00000 n +0000017673 00000 n +0000017706 00000 n +0000540997 00000 n +0000593431 00000 n +0000017756 00000 n +0000017792 00000 n +0000541123 00000 n +0000593352 00000 n +0000017842 00000 n +0000017877 00000 n +0000541375 00000 n +0000593220 00000 n +0000017923 00000 n +0000017958 00000 n +0000541563 00000 n +0000593141 00000 n +0000018008 00000 n +0000018044 00000 n +0000541689 00000 n +0000593062 00000 n +0000018094 00000 n +0000018129 00000 n +0000541941 00000 n +0000592930 00000 n +0000018175 00000 n +0000018213 00000 n +0000542130 00000 n +0000592851 00000 n +0000018263 00000 n +0000018299 00000 n +0000544449 00000 n +0000592758 00000 n +0000018349 00000 n +0000018384 00000 n +0000545018 00000 n +0000592665 00000 n +0000018434 00000 n +0000018468 00000 n +0000545334 00000 n +0000592586 00000 n +0000018518 00000 n +0000018552 00000 n +0000545523 00000 n +0000592454 00000 n +0000018598 00000 n +0000018634 00000 n +0000545711 00000 n +0000592375 00000 n +0000018684 00000 n +0000018720 00000 n +0000545837 00000 n +0000592282 00000 n +0000018770 00000 n +0000018805 00000 n +0000546407 00000 n +0000592189 00000 n +0000018855 00000 n +0000018891 00000 n +0000546595 00000 n +0000592096 00000 n +0000018941 00000 n +0000018975 00000 n +0000546847 00000 n +0000592003 00000 n +0000019025 00000 n +0000019059 00000 n +0000549037 00000 n +0000591910 00000 n +0000019109 00000 n +0000019148 00000 n +0000549161 00000 n +0000591817 00000 n +0000019198 00000 n +0000019239 00000 n +0000549350 00000 n +0000591724 00000 n +0000019289 00000 n +0000019324 00000 n +0000549728 00000 n +0000591645 00000 n +0000019374 00000 n +0000019410 00000 n +0000550042 00000 n +0000591512 00000 n +0000019456 00000 n +0000019497 00000 n +0000551810 00000 n +0000591433 00000 n +0000019547 00000 n +0000019583 00000 n +0000551936 00000 n +0000591340 00000 n +0000019633 00000 n +0000019674 00000 n +0000552189 00000 n +0000591247 00000 n +0000019724 00000 n +0000019765 00000 n +0000552378 00000 n +0000591154 00000 n +0000019815 00000 n +0000019855 00000 n +0000552629 00000 n +0000591061 00000 n +0000019905 00000 n +0000019946 00000 n +0000552818 00000 n +0000590968 00000 n +0000019996 00000 n +0000020036 00000 n +0000553134 00000 n +0000590875 00000 n +0000020086 00000 n +0000020126 00000 n +0000553322 00000 n +0000590782 00000 n +0000020176 00000 n +0000020217 00000 n +0000555386 00000 n +0000590689 00000 n +0000020267 00000 n +0000020308 00000 n +0000555511 00000 n +0000590596 00000 n +0000020358 00000 n +0000020401 00000 n +0000556274 00000 n +0000590503 00000 n +0000020451 00000 n +0000020494 00000 n +0000556525 00000 n +0000590410 00000 n +0000020544 00000 n +0000020586 00000 n +0000556840 00000 n +0000590317 00000 n +0000020636 00000 n +0000020678 00000 n +0000557093 00000 n +0000590224 00000 n +0000020728 00000 n +0000020776 00000 n +0000557410 00000 n +0000590131 00000 n +0000020826 00000 n +0000020874 00000 n +0000557599 00000 n +0000590038 00000 n +0000020924 00000 n +0000020973 00000 n +0000557914 00000 n +0000589945 00000 n +0000021023 00000 n +0000021072 00000 n +0000560088 00000 n +0000589852 00000 n +0000021122 00000 n +0000021166 00000 n +0000560342 00000 n +0000589759 00000 n +0000021216 00000 n +0000021260 00000 n +0000560659 00000 n +0000589666 00000 n +0000021310 00000 n +0000021345 00000 n +0000561101 00000 n +0000589573 00000 n +0000021395 00000 n +0000021432 00000 n +0000561352 00000 n +0000589494 00000 n +0000021482 00000 n +0000021517 00000 n +0000561796 00000 n +0000589359 00000 n +0000021563 00000 n +0000021608 00000 n +0000563625 00000 n +0000589278 00000 n +0000021658 00000 n +0000021695 00000 n +0000563751 00000 n +0000589181 00000 n +0000021746 00000 n +0000021788 00000 n +0000564003 00000 n +0000589083 00000 n +0000021839 00000 n +0000021881 00000 n +0000564193 00000 n +0000588985 00000 n +0000021932 00000 n +0000021973 00000 n +0000564446 00000 n +0000588887 00000 n +0000022024 00000 n +0000022065 00000 n +0000564635 00000 n +0000588789 00000 n +0000022116 00000 n +0000022161 00000 n +0000564825 00000 n +0000588691 00000 n +0000022212 00000 n +0000022257 00000 n +0000565079 00000 n +0000588593 00000 n +0000022308 00000 n +0000022353 00000 n +0000565332 00000 n +0000588495 00000 n +0000022404 00000 n +0000022449 00000 n +0000565650 00000 n +0000588397 00000 n +0000022500 00000 n +0000022545 00000 n +0000567737 00000 n +0000588299 00000 n +0000022596 00000 n +0000022650 00000 n +0000568055 00000 n +0000588201 00000 n +0000022701 00000 n +0000022755 00000 n +0000568307 00000 n +0000588118 00000 n +0000022806 00000 n +0000022844 00000 n +0000568623 00000 n +0000587980 00000 n +0000022891 00000 n +0000022938 00000 n +0000569066 00000 n +0000587911 00000 n +0000022989 00000 n +0000023026 00000 n +0000569193 00000 n +0000587772 00000 n +0000023073 00000 n +0000023112 00000 n +0000569320 00000 n +0000587703 00000 n +0000023163 00000 n +0000023200 00000 n +0000569447 00000 n +0000587564 00000 n +0000023247 00000 n +0000023292 00000 n +0000569574 00000 n +0000587495 00000 n +0000023343 00000 n +0000023380 00000 n +0000569701 00000 n +0000587356 00000 n +0000023427 00000 n +0000023471 00000 n +0000569828 00000 n +0000587287 00000 n +0000023522 00000 n +0000023559 00000 n +0000571437 00000 n +0000587148 00000 n +0000023606 00000 n +0000023657 00000 n +0000571564 00000 n +0000587079 00000 n +0000023708 00000 n +0000023745 00000 n +0000571628 00000 n +0000586940 00000 n +0000023792 00000 n +0000023845 00000 n +0000571942 00000 n +0000586871 00000 n +0000023896 00000 n +0000023933 00000 n +0000572069 00000 n +0000586732 00000 n +0000023980 00000 n +0000024032 00000 n +0000572322 00000 n +0000586663 00000 n +0000024083 00000 n +0000024120 00000 n +0000572448 00000 n +0000586524 00000 n +0000024167 00000 n +0000024217 00000 n +0000574108 00000 n +0000586455 00000 n +0000024268 00000 n +0000024305 00000 n +0000574235 00000 n +0000586316 00000 n +0000024352 00000 n +0000024404 00000 n +0000574486 00000 n +0000586247 00000 n +0000024455 00000 n +0000024492 00000 n +0000574613 00000 n +0000586108 00000 n +0000024539 00000 n +0000024579 00000 n +0000574739 00000 n +0000586039 00000 n +0000024630 00000 n +0000024667 00000 n +0000574866 00000 n +0000585900 00000 n +0000024714 00000 n +0000024762 00000 n +0000574993 00000 n +0000585831 00000 n +0000024813 00000 n +0000024850 00000 n +0000575120 00000 n +0000585692 00000 n +0000024897 00000 n +0000024942 00000 n +0000575247 00000 n +0000585623 00000 n +0000024993 00000 n +0000025030 00000 n +0000575374 00000 n +0000585484 00000 n +0000025077 00000 n +0000025117 00000 n +0000575501 00000 n +0000585415 00000 n +0000025168 00000 n +0000025205 00000 n +0000577709 00000 n +0000585291 00000 n +0000025252 00000 n +0000025292 00000 n +0000578086 00000 n +0000585207 00000 n +0000025343 00000 n +0000025380 00000 n +0000578213 00000 n +0000585108 00000 n +0000025431 00000 n +0000025466 00000 n +0000578592 00000 n +0000585024 00000 n +0000025517 00000 n +0000025552 00000 n +0000025870 00000 n +0000026244 00000 n +0000025606 00000 n +0000025994 00000 n +0000026057 00000 n +0000026120 00000 n +0000001183 00000 f +0000583464 00000 n +0000583561 00000 n +0000026765 00000 n +0000026578 00000 n +0000026318 00000 n +0000026702 00000 n +0000001190 00000 f +0000583370 00000 n +0000088176 00000 n +0000072724 00000 n +0000026853 00000 n +0000088052 00000 n +0000073742 00000 n +0000001202 00000 f +0000583277 00000 n +0000073887 00000 n +0000074031 00000 n +0000074175 00000 n +0000074318 00000 n +0000074464 00000 n +0000074609 00000 n +0000074754 00000 n +0000074899 00000 n +0000075044 00000 n +0000075189 00000 n +0000001291 00000 f +0000583187 00000 n +0000075335 00000 n +0000075480 00000 n +0000075626 00000 n +0000075771 00000 n +0000075918 00000 n +0000076064 00000 n +0000076210 00000 n +0000076355 00000 n +0000076500 00000 n +0000076646 00000 n +0000076792 00000 n +0000076938 00000 n +0000077085 00000 n +0000077231 00000 n +0000077378 00000 n +0000077524 00000 n +0000077671 00000 n +0000077817 00000 n +0000077964 00000 n +0000078110 00000 n +0000078256 00000 n +0000078401 00000 n +0000078548 00000 n +0000078694 00000 n +0000078841 00000 n +0000078987 00000 n +0000079134 00000 n +0000079280 00000 n +0000079427 00000 n +0000079573 00000 n +0000079719 00000 n +0000079864 00000 n +0000080011 00000 n +0000080157 00000 n +0000080303 00000 n +0000080448 00000 n +0000080595 00000 n +0000080741 00000 n +0000080888 00000 n +0000081034 00000 n +0000081181 00000 n +0000081327 00000 n +0000081474 00000 n +0000081620 00000 n +0000081766 00000 n +0000081911 00000 n +0000082058 00000 n +0000082204 00000 n +0000082350 00000 n +0000082495 00000 n +0000082642 00000 n +0000082788 00000 n +0000082935 00000 n +0000083081 00000 n +0000083228 00000 n +0000083374 00000 n +0000083521 00000 n +0000083667 00000 n +0000083813 00000 n +0000083958 00000 n +0000084104 00000 n +0000084249 00000 n +0000084395 00000 n +0000084540 00000 n +0000084687 00000 n +0000084833 00000 n +0000084980 00000 n +0000085126 00000 n +0000085273 00000 n +0000085419 00000 n +0000085566 00000 n +0000085712 00000 n +0000085859 00000 n +0000086005 00000 n +0000086152 00000 n +0000086298 00000 n +0000086444 00000 n +0000086589 00000 n +0000086736 00000 n +0000086882 00000 n +0000087029 00000 n +0000087175 00000 n +0000087322 00000 n +0000087468 00000 n +0000087615 00000 n +0000087761 00000 n +0000087907 00000 n +0000002167 00000 f +0000583092 00000 n +0000415168 00000 n +0000415293 00000 n +0000415927 00000 n +0000416051 00000 n +0000419031 00000 n +0000419156 00000 n +0000422793 00000 n +0000423933 00000 n +0000424686 00000 n +0000425568 00000 n +0000428141 00000 n +0000428710 00000 n +0000429087 00000 n +0000429463 00000 n +0000430410 00000 n +0000430535 00000 n +0000430723 00000 n +0000432667 00000 n +0000433170 00000 n +0000433548 00000 n +0000436097 00000 n +0000436666 00000 n +0000437109 00000 n +0000437553 00000 n +0000437870 00000 n +0000438251 00000 n +0000441134 00000 n +0000441449 00000 n +0000441637 00000 n +0000442013 00000 n +0000442456 00000 n +0000442708 00000 n +0000443215 00000 n +0000443403 00000 n +0000445549 00000 n +0000445864 00000 n +0000447794 00000 n +0000447981 00000 n +0000448167 00000 n +0000448355 00000 n +0000448860 00000 n +0000449177 00000 n +0000449366 00000 n +0000449619 00000 n +0000447731 00000 n +0000452158 00000 n +0000452533 00000 n +0000452849 00000 n +0000453100 00000 n +0000149198 00000 n +0000132807 00000 n +0000088306 00000 n +0000149135 00000 n +0000133879 00000 n +0000134026 00000 n +0000134172 00000 n +0000134319 00000 n +0000134465 00000 n +0000134612 00000 n +0000134758 00000 n +0000134905 00000 n +0000135051 00000 n +0000135198 00000 n +0000135344 00000 n +0000135491 00000 n +0000135637 00000 n +0000135784 00000 n +0000135930 00000 n +0000136077 00000 n +0000136223 00000 n +0000136370 00000 n +0000136516 00000 n +0000136663 00000 n +0000136809 00000 n +0000136956 00000 n +0000137102 00000 n +0000137249 00000 n +0000137395 00000 n +0000137542 00000 n +0000137688 00000 n +0000137834 00000 n +0000137979 00000 n +0000138126 00000 n +0000138272 00000 n +0000138419 00000 n +0000138565 00000 n +0000138712 00000 n +0000138858 00000 n +0000139005 00000 n +0000139151 00000 n +0000139298 00000 n +0000139444 00000 n +0000139591 00000 n +0000139737 00000 n +0000139883 00000 n +0000140028 00000 n +0000140175 00000 n +0000140321 00000 n +0000140468 00000 n +0000140614 00000 n +0000140761 00000 n +0000140907 00000 n +0000141054 00000 n +0000141200 00000 n +0000141347 00000 n +0000141493 00000 n +0000141640 00000 n +0000141786 00000 n +0000141933 00000 n +0000142079 00000 n +0000142226 00000 n +0000142372 00000 n +0000142519 00000 n +0000142665 00000 n +0000142812 00000 n +0000142958 00000 n +0000143105 00000 n +0000143251 00000 n +0000143398 00000 n +0000143544 00000 n +0000143691 00000 n +0000143837 00000 n +0000143984 00000 n +0000144130 00000 n +0000144277 00000 n +0000144423 00000 n +0000144570 00000 n +0000144716 00000 n +0000144863 00000 n +0000145009 00000 n +0000145157 00000 n +0000145304 00000 n +0000145452 00000 n +0000145599 00000 n +0000145747 00000 n +0000145894 00000 n +0000146042 00000 n +0000146189 00000 n +0000146337 00000 n +0000146484 00000 n +0000146632 00000 n +0000146779 00000 n +0000146927 00000 n +0000147074 00000 n +0000147222 00000 n +0000147369 00000 n +0000147517 00000 n +0000147664 00000 n +0000147812 00000 n +0000147959 00000 n +0000148106 00000 n +0000148252 00000 n +0000148400 00000 n +0000148547 00000 n +0000148695 00000 n +0000148842 00000 n +0000148989 00000 n +0000453416 00000 n +0000453731 00000 n +0000454047 00000 n +0000451782 00000 n +0000456851 00000 n +0000457485 00000 n +0000457673 00000 n +0000457862 00000 n +0000458115 00000 n +0000458302 00000 n +0000458491 00000 n +0000460470 00000 n +0000460658 00000 n +0000460846 00000 n +0000461034 00000 n +0000461287 00000 n +0000461603 00000 n +0000461983 00000 n +0000462300 00000 n +0000462616 00000 n +0000464824 00000 n +0000465141 00000 n +0000465518 00000 n +0000468263 00000 n +0000468898 00000 n +0000469403 00000 n +0000472039 00000 n +0000472228 00000 n +0000472417 00000 n +0000472670 00000 n +0000472856 00000 n +0000473109 00000 n +0000473235 00000 n +0000473551 00000 n +0000471976 00000 n +0000476302 00000 n +0000476490 00000 n +0000476742 00000 n +0000477377 00000 n +0000477566 00000 n +0000477755 00000 n +0000478007 00000 n +0000480513 00000 n +0000480638 00000 n +0000480889 00000 n +0000481394 00000 n +0000482094 00000 n +0000484587 00000 n +0000484900 00000 n +0000485279 00000 n +0000485405 00000 n +0000485847 00000 n +0000213867 00000 n +0000197725 00000 n +0000149300 00000 n +0000213804 00000 n +0000198779 00000 n +0000198927 00000 n +0000199074 00000 n +0000199222 00000 n +0000199369 00000 n +0000199517 00000 n +0000199664 00000 n +0000199812 00000 n +0000199959 00000 n +0000200107 00000 n +0000200254 00000 n +0000200402 00000 n +0000200549 00000 n +0000200696 00000 n +0000200842 00000 n +0000200990 00000 n +0000201137 00000 n +0000201285 00000 n +0000201432 00000 n +0000201580 00000 n +0000201727 00000 n +0000201875 00000 n +0000202022 00000 n +0000202170 00000 n +0000202317 00000 n +0000202465 00000 n +0000202612 00000 n +0000202759 00000 n +0000202905 00000 n +0000203053 00000 n +0000203200 00000 n +0000203348 00000 n +0000203495 00000 n +0000203643 00000 n +0000203790 00000 n +0000203938 00000 n +0000204085 00000 n +0000204233 00000 n +0000204380 00000 n +0000204528 00000 n +0000204675 00000 n +0000204822 00000 n +0000204968 00000 n +0000205116 00000 n +0000205263 00000 n +0000205411 00000 n +0000205558 00000 n +0000205706 00000 n +0000205853 00000 n +0000206001 00000 n +0000206148 00000 n +0000206296 00000 n +0000206443 00000 n +0000206591 00000 n +0000206738 00000 n +0000206885 00000 n +0000207031 00000 n +0000207179 00000 n +0000207326 00000 n +0000207473 00000 n +0000207620 00000 n +0000207767 00000 n +0000207914 00000 n +0000208062 00000 n +0000208209 00000 n +0000208356 00000 n +0000208502 00000 n +0000208650 00000 n +0000208797 00000 n +0000208944 00000 n +0000209090 00000 n +0000209238 00000 n +0000209385 00000 n +0000209533 00000 n +0000209680 00000 n +0000209828 00000 n +0000209975 00000 n +0000210123 00000 n +0000210270 00000 n +0000210417 00000 n +0000210563 00000 n +0000210711 00000 n +0000210858 00000 n +0000211005 00000 n +0000211151 00000 n +0000211299 00000 n +0000211446 00000 n +0000211594 00000 n +0000211741 00000 n +0000211889 00000 n +0000212036 00000 n +0000212184 00000 n +0000212331 00000 n +0000212479 00000 n +0000212626 00000 n +0000212774 00000 n +0000212921 00000 n +0000213068 00000 n +0000213214 00000 n +0000213362 00000 n +0000213509 00000 n +0000213657 00000 n +0000486226 00000 n +0000486478 00000 n +0000488829 00000 n +0000489017 00000 n +0000489143 00000 n +0000489648 00000 n +0000490025 00000 n +0000490277 00000 n +0000490530 00000 n +0000493200 00000 n +0000493326 00000 n +0000493891 00000 n +0000494270 00000 n +0000496779 00000 n +0000497029 00000 n +0000497280 00000 n +0000497469 00000 n +0000497595 00000 n +0000500272 00000 n +0000501036 00000 n +0000501414 00000 n +0000501666 00000 n +0000501983 00000 n +0000502236 00000 n +0000502489 00000 n +0000503058 00000 n +0000507828 00000 n +0000507954 00000 n +0000508652 00000 n +0000508778 00000 n +0000509983 00000 n +0000510109 00000 n +0000510614 00000 n +0000511120 00000 n +0000513846 00000 n +0000514352 00000 n +0000514477 00000 n +0000514792 00000 n +0000514918 00000 n +0000515551 00000 n +0000513341 00000 n +0000518346 00000 n +0000518535 00000 n +0000518787 00000 n +0000519163 00000 n +0000519478 00000 n +0000519665 00000 n +0000519854 00000 n +0000520043 00000 n +0000517968 00000 n +0000521897 00000 n +0000279923 00000 n +0000263456 00000 n +0000213983 00000 n +0000279860 00000 n +0000264528 00000 n +0000264676 00000 n +0000264823 00000 n +0000264971 00000 n +0000265118 00000 n +0000265266 00000 n +0000265413 00000 n +0000265561 00000 n +0000265708 00000 n +0000265856 00000 n +0000266003 00000 n +0000266151 00000 n +0000266298 00000 n +0000266446 00000 n +0000266593 00000 n +0000266741 00000 n +0000266888 00000 n +0000267036 00000 n +0000267183 00000 n +0000267331 00000 n +0000267478 00000 n +0000267626 00000 n +0000267773 00000 n +0000267921 00000 n +0000268068 00000 n +0000268216 00000 n +0000268363 00000 n +0000268511 00000 n +0000268658 00000 n +0000268806 00000 n +0000268953 00000 n +0000269101 00000 n +0000269248 00000 n +0000269396 00000 n +0000269543 00000 n +0000269691 00000 n +0000269838 00000 n +0000269986 00000 n +0000270133 00000 n +0000270281 00000 n +0000270428 00000 n +0000270575 00000 n +0000270721 00000 n +0000270869 00000 n +0000271016 00000 n +0000271164 00000 n +0000271311 00000 n +0000271459 00000 n +0000271606 00000 n +0000271754 00000 n +0000271901 00000 n +0000272049 00000 n +0000272196 00000 n +0000272344 00000 n +0000272491 00000 n +0000272639 00000 n +0000272786 00000 n +0000272934 00000 n +0000273081 00000 n +0000273229 00000 n +0000273376 00000 n +0000273524 00000 n +0000273671 00000 n +0000273819 00000 n +0000273966 00000 n +0000274114 00000 n +0000274261 00000 n +0000274409 00000 n +0000274556 00000 n +0000274703 00000 n +0000274849 00000 n +0000274997 00000 n +0000275144 00000 n +0000275292 00000 n +0000275439 00000 n +0000275587 00000 n +0000275734 00000 n +0000275882 00000 n +0000276029 00000 n +0000276177 00000 n +0000276324 00000 n +0000276471 00000 n +0000276617 00000 n +0000276765 00000 n +0000276912 00000 n +0000277060 00000 n +0000277207 00000 n +0000277355 00000 n +0000277502 00000 n +0000277650 00000 n +0000277797 00000 n +0000277945 00000 n +0000278092 00000 n +0000278240 00000 n +0000278387 00000 n +0000278535 00000 n +0000278682 00000 n +0000278830 00000 n +0000278977 00000 n +0000279125 00000 n +0000279272 00000 n +0000279420 00000 n +0000279567 00000 n +0000279714 00000 n +0000522023 00000 n +0000522212 00000 n +0000522338 00000 n +0000522715 00000 n +0000522841 00000 n +0000523030 00000 n +0000523156 00000 n +0000523345 00000 n +0000523470 00000 n +0000525211 00000 n +0000525336 00000 n +0000525525 00000 n +0000525651 00000 n +0000525840 00000 n +0000525966 00000 n +0000526155 00000 n +0000526281 00000 n +0000526469 00000 n +0000526595 00000 n +0000528357 00000 n +0000528483 00000 n +0000528671 00000 n +0000528796 00000 n +0000528985 00000 n +0000529111 00000 n +0000529427 00000 n +0000529553 00000 n +0000529867 00000 n +0000529993 00000 n +0000531546 00000 n +0000531672 00000 n +0000531860 00000 n +0000531985 00000 n +0000532174 00000 n +0000532300 00000 n +0000532489 00000 n +0000532615 00000 n +0000532804 00000 n +0000532930 00000 n +0000533119 00000 n +0000536183 00000 n +0000536563 00000 n +0000537259 00000 n +0000537637 00000 n +0000538079 00000 n +0000538521 00000 n +0000540183 00000 n +0000540372 00000 n +0000540497 00000 n +0000540746 00000 n +0000540934 00000 n +0000541060 00000 n +0000341392 00000 n +0000324929 00000 n +0000280025 00000 n +0000341329 00000 n +0000326001 00000 n +0000326149 00000 n +0000326296 00000 n +0000326444 00000 n +0000326591 00000 n +0000326739 00000 n +0000326886 00000 n +0000327034 00000 n +0000327181 00000 n +0000327329 00000 n +0000327476 00000 n +0000327623 00000 n +0000327769 00000 n +0000327917 00000 n +0000328064 00000 n +0000328212 00000 n +0000328359 00000 n +0000328507 00000 n +0000328654 00000 n +0000328802 00000 n +0000328949 00000 n +0000329097 00000 n +0000329244 00000 n +0000329392 00000 n +0000329539 00000 n +0000329687 00000 n +0000329834 00000 n +0000329981 00000 n +0000330127 00000 n +0000330275 00000 n +0000330422 00000 n +0000330570 00000 n +0000330717 00000 n +0000330865 00000 n +0000331012 00000 n +0000331160 00000 n +0000331307 00000 n +0000331455 00000 n +0000331602 00000 n +0000331750 00000 n +0000331897 00000 n +0000332045 00000 n +0000332192 00000 n +0000332340 00000 n +0000332487 00000 n +0000332635 00000 n +0000332782 00000 n +0000332930 00000 n +0000333077 00000 n +0000333225 00000 n +0000333372 00000 n +0000333520 00000 n +0000333667 00000 n +0000333815 00000 n +0000333962 00000 n +0000334109 00000 n +0000334255 00000 n +0000334403 00000 n +0000334550 00000 n +0000334698 00000 n +0000334845 00000 n +0000334993 00000 n +0000335140 00000 n +0000335288 00000 n +0000335435 00000 n +0000335583 00000 n +0000335730 00000 n +0000335878 00000 n +0000336025 00000 n +0000336172 00000 n +0000336318 00000 n +0000336466 00000 n +0000336613 00000 n +0000336761 00000 n +0000336908 00000 n +0000337056 00000 n +0000337203 00000 n +0000337351 00000 n +0000337498 00000 n +0000337646 00000 n +0000337793 00000 n +0000337941 00000 n +0000338088 00000 n +0000338236 00000 n +0000338383 00000 n +0000338531 00000 n +0000338678 00000 n +0000338826 00000 n +0000338973 00000 n +0000339121 00000 n +0000339268 00000 n +0000339416 00000 n +0000339563 00000 n +0000339711 00000 n +0000339858 00000 n +0000340006 00000 n +0000340153 00000 n +0000340300 00000 n +0000340446 00000 n +0000340594 00000 n +0000340741 00000 n +0000340889 00000 n +0000341036 00000 n +0000341183 00000 n +0000583686 00000 n +0000541312 00000 n +0000541500 00000 n +0000541626 00000 n +0000541878 00000 n +0000542067 00000 n +0000542193 00000 n +0000540120 00000 n +0000545271 00000 n +0000545460 00000 n +0000545648 00000 n +0000545774 00000 n +0000546344 00000 n +0000546532 00000 n +0000546784 00000 n +0000546973 00000 n +0000544386 00000 n +0000549287 00000 n +0000549665 00000 n +0000549979 00000 n +0000550231 00000 n +0000551873 00000 n +0000552126 00000 n +0000552315 00000 n +0000552567 00000 n +0000552755 00000 n +0000553071 00000 n +0000553259 00000 n +0000553576 00000 n +0000551747 00000 n +0000556211 00000 n +0000556463 00000 n +0000556777 00000 n +0000557030 00000 n +0000557347 00000 n +0000557536 00000 n +0000557852 00000 n +0000558040 00000 n +0000555323 00000 n +0000560596 00000 n +0000561038 00000 n +0000561289 00000 n +0000561733 00000 n +0000561985 00000 n +0000563688 00000 n +0000563941 00000 n +0000564130 00000 n +0000564383 00000 n +0000564572 00000 n +0000564762 00000 n +0000565016 00000 n +0000565269 00000 n +0000565587 00000 n +0000381860 00000 n +0000371338 00000 n +0000341494 00000 n +0000381797 00000 n +0000372068 00000 n +0000372216 00000 n +0000372363 00000 n +0000372511 00000 n +0000372658 00000 n +0000372806 00000 n +0000372953 00000 n +0000373101 00000 n +0000373248 00000 n +0000373396 00000 n +0000373543 00000 n +0000373691 00000 n +0000373838 00000 n +0000373986 00000 n +0000374133 00000 n +0000374281 00000 n +0000374428 00000 n +0000374576 00000 n +0000374723 00000 n +0000374871 00000 n +0000375018 00000 n +0000375166 00000 n +0000375313 00000 n +0000375460 00000 n +0000375607 00000 n +0000375755 00000 n +0000375902 00000 n +0000376048 00000 n +0000376194 00000 n +0000376342 00000 n +0000376489 00000 n +0000376636 00000 n +0000376783 00000 n +0000376931 00000 n +0000377078 00000 n +0000377226 00000 n +0000377373 00000 n +0000377521 00000 n +0000377668 00000 n +0000377815 00000 n +0000377962 00000 n +0000378110 00000 n +0000378257 00000 n +0000378405 00000 n +0000378552 00000 n +0000378700 00000 n +0000378847 00000 n +0000378995 00000 n +0000379142 00000 n +0000379290 00000 n +0000379437 00000 n +0000379585 00000 n +0000379732 00000 n +0000379880 00000 n +0000380027 00000 n +0000380175 00000 n +0000380322 00000 n +0000380470 00000 n +0000380617 00000 n +0000380765 00000 n +0000380912 00000 n +0000381060 00000 n +0000381207 00000 n +0000381355 00000 n +0000381502 00000 n +0000381650 00000 n +0000565904 00000 n +0000567992 00000 n +0000568244 00000 n +0000568560 00000 n +0000569003 00000 n +0000569130 00000 n +0000569257 00000 n +0000569384 00000 n +0000569511 00000 n +0000569638 00000 n +0000569765 00000 n +0000569892 00000 n +0000571501 00000 n +0000567674 00000 n +0000571879 00000 n +0000572006 00000 n +0000572259 00000 n +0000572385 00000 n +0000572638 00000 n +0000574172 00000 n +0000574423 00000 n +0000574550 00000 n +0000574677 00000 n +0000574803 00000 n +0000574930 00000 n +0000575057 00000 n +0000575184 00000 n +0000575311 00000 n +0000575438 00000 n +0000575565 00000 n +0000578023 00000 n +0000578150 00000 n +0000578531 00000 n +0000412511 00000 n +0000405390 00000 n +0000381962 00000 n +0000412386 00000 n +0000405922 00000 n +0000406069 00000 n +0000406215 00000 n +0000406361 00000 n +0000406506 00000 n +0000406652 00000 n +0000406797 00000 n +0000406944 00000 n +0000407090 00000 n +0000407237 00000 n +0000407383 00000 n +0000407530 00000 n +0000407676 00000 n +0000407823 00000 n +0000407969 00000 n +0000408117 00000 n +0000408264 00000 n +0000408411 00000 n +0000408557 00000 n +0000408704 00000 n +0000408850 00000 n +0000408998 00000 n +0000409145 00000 n +0000409293 00000 n +0000409440 00000 n +0000409588 00000 n +0000409735 00000 n +0000409883 00000 n +0000410030 00000 n +0000410178 00000 n +0000410325 00000 n +0000410472 00000 n +0000410618 00000 n +0000410765 00000 n +0000410911 00000 n +0000411059 00000 n +0000411206 00000 n +0000411354 00000 n +0000411501 00000 n +0000411649 00000 n +0000411796 00000 n +0000411944 00000 n +0000412091 00000 n +0000412239 00000 n +0000434118 00000 n +0000436540 00000 n +0000445738 00000 n +0000457359 00000 n +0000465392 00000 n +0000465834 00000 n +0000469910 00000 n +0000477251 00000 n +0000478196 00000 n +0000485153 00000 n +0000491038 00000 n +0000497907 00000 n +0000504836 00000 n +0000550105 00000 n +0000556085 00000 n +0000561859 00000 n +0000568878 00000 n +0000571754 00000 n +0000572133 00000 n +0000572512 00000 n +0000574297 00000 n +0000577899 00000 n +0000420043 00000 n +0000415044 00000 n +0000412627 00000 n +0000415418 00000 n +0000415481 00000 n +0000415545 00000 n +0000415609 00000 n +0000415673 00000 n +0000415736 00000 n +0000415800 00000 n +0000415863 00000 n +0000416176 00000 n +0000416239 00000 n +0000416302 00000 n +0000000000 00000 f +0000582997 00000 n +0000416365 00000 n +0000416427 00000 n +0000416489 00000 n +0000416552 00000 n +0000416615 00000 n +0000416678 00000 n +0000416741 00000 n +0000416804 00000 n +0000416868 00000 n +0000416931 00000 n +0000416994 00000 n +0000417058 00000 n +0000417122 00000 n +0000417185 00000 n +0000417249 00000 n +0000417312 00000 n +0000417375 00000 n +0000417438 00000 n +0000417502 00000 n +0000417565 00000 n +0000417628 00000 n +0000417692 00000 n +0000417756 00000 n +0000417819 00000 n +0000417883 00000 n +0000417947 00000 n +0000418011 00000 n +0000418074 00000 n +0000418138 00000 n +0000418202 00000 n +0000418266 00000 n +0000418329 00000 n +0000418393 00000 n +0000418456 00000 n +0000418520 00000 n +0000418583 00000 n +0000418647 00000 n +0000418711 00000 n +0000418775 00000 n +0000418839 00000 n +0000418903 00000 n +0000418967 00000 n +0000419281 00000 n +0000419343 00000 n +0000419406 00000 n +0000419470 00000 n +0000419533 00000 n +0000419596 00000 n +0000419660 00000 n +0000419724 00000 n +0000419788 00000 n +0000419852 00000 n +0000419915 00000 n +0000419979 00000 n +0000426011 00000 n +0000422161 00000 n +0000420173 00000 n +0000422285 00000 n +0000422348 00000 n +0000422411 00000 n +0000422474 00000 n +0000422537 00000 n +0000422601 00000 n +0000422665 00000 n +0000422729 00000 n +0000422918 00000 n +0000422981 00000 n +0000423043 00000 n +0000423107 00000 n +0000423170 00000 n +0000423233 00000 n +0000423297 00000 n +0000423361 00000 n +0000423424 00000 n +0000423488 00000 n +0000423552 00000 n +0000423615 00000 n +0000423678 00000 n +0000423741 00000 n +0000423805 00000 n +0000423869 00000 n +0000424057 00000 n +0000424119 00000 n +0000424182 00000 n +0000424245 00000 n +0000424307 00000 n +0000424369 00000 n +0000424432 00000 n +0000424496 00000 n +0000424559 00000 n +0000424622 00000 n +0000424810 00000 n +0000424873 00000 n +0000424936 00000 n +0000424999 00000 n +0000425061 00000 n +0000425123 00000 n +0000425186 00000 n +0000425249 00000 n +0000425312 00000 n +0000425376 00000 n +0000425440 00000 n +0000425504 00000 n +0000425693 00000 n +0000425756 00000 n +0000425819 00000 n +0000425883 00000 n +0000425947 00000 n +0000430848 00000 n +0000427890 00000 n +0000426141 00000 n +0000428014 00000 n +0000428077 00000 n +0000428266 00000 n +0000428329 00000 n +0000428392 00000 n +0000428456 00000 n +0000428520 00000 n +0000428584 00000 n +0000428647 00000 n +0000428835 00000 n +0000428898 00000 n +0000428961 00000 n +0000429025 00000 n +0000429211 00000 n +0000429274 00000 n +0000429336 00000 n +0000429400 00000 n +0000429588 00000 n +0000429651 00000 n +0000429714 00000 n +0000429777 00000 n +0000429840 00000 n +0000429903 00000 n +0000429966 00000 n +0000430029 00000 n +0000430092 00000 n +0000430155 00000 n +0000430218 00000 n +0000430282 00000 n +0000430346 00000 n +0000430660 00000 n +0000434241 00000 n +0000432543 00000 n +0000430978 00000 n +0000432791 00000 n +0000432854 00000 n +0000432917 00000 n +0000432981 00000 n +0000433044 00000 n +0000433107 00000 n +0000433294 00000 n +0000433357 00000 n +0000433421 00000 n +0000433484 00000 n +0000433671 00000 n +0000433734 00000 n +0000433798 00000 n +0000433862 00000 n +0000433926 00000 n +0000433990 00000 n +0000434054 00000 n +0000434179 00000 n +0000583811 00000 n +0000438314 00000 n +0000435973 00000 n +0000434385 00000 n +0000436221 00000 n +0000436284 00000 n +0000436348 00000 n +0000436412 00000 n +0000436476 00000 n +0000436603 00000 n +0000436790 00000 n +0000436853 00000 n +0000436917 00000 n +0000436981 00000 n +0000437045 00000 n +0000437234 00000 n +0000437297 00000 n +0000437361 00000 n +0000437425 00000 n +0000437489 00000 n +0000437679 00000 n +0000437742 00000 n +0000437806 00000 n +0000437996 00000 n +0000438059 00000 n +0000438123 00000 n +0000438187 00000 n +0000443466 00000 n +0000440632 00000 n +0000438458 00000 n +0000440756 00000 n +0000440880 00000 n +0000440942 00000 n +0000441006 00000 n +0000441070 00000 n +0000441259 00000 n +0000441321 00000 n +0000441385 00000 n +0000441574 00000 n +0000441762 00000 n +0000441825 00000 n +0000441889 00000 n +0000441951 00000 n +0000442139 00000 n +0000442202 00000 n +0000442266 00000 n +0000442330 00000 n +0000442393 00000 n +0000442582 00000 n +0000442645 00000 n +0000442834 00000 n +0000442897 00000 n +0000442960 00000 n +0000443023 00000 n +0000443087 00000 n +0000443151 00000 n +0000443340 00000 n +0000445990 00000 n +0000444983 00000 n +0000443596 00000 n +0000445170 00000 n +0000445232 00000 n +0000445295 00000 n +0000445358 00000 n +0000445421 00000 n +0000445485 00000 n +0000445675 00000 n +0000445801 00000 n +0000449682 00000 n +0000447607 00000 n +0000446134 00000 n +0000447919 00000 n +0000448106 00000 n +0000448292 00000 n +0000448480 00000 n +0000448543 00000 n +0000448606 00000 n +0000448670 00000 n +0000448734 00000 n +0000448797 00000 n +0000448986 00000 n +0000449049 00000 n +0000449113 00000 n +0000449303 00000 n +0000449492 00000 n +0000449555 00000 n +0000454110 00000 n +0000451658 00000 n +0000449812 00000 n +0000451907 00000 n +0000452031 00000 n +0000452094 00000 n +0000452283 00000 n +0000452346 00000 n +0000452408 00000 n +0000452470 00000 n +0000452658 00000 n +0000452721 00000 n +0000452785 00000 n +0000452974 00000 n +0000453037 00000 n +0000453226 00000 n +0000453289 00000 n +0000453352 00000 n +0000453540 00000 n +0000453603 00000 n +0000453667 00000 n +0000453857 00000 n +0000453919 00000 n +0000453983 00000 n +0000458616 00000 n +0000456157 00000 n +0000454240 00000 n +0000456281 00000 n +0000456407 00000 n +0000456469 00000 n +0000456533 00000 n +0000456660 00000 n +0000456723 00000 n +0000456787 00000 n +0000456977 00000 n +0000457040 00000 n +0000457103 00000 n +0000457167 00000 n +0000457231 00000 n +0000457295 00000 n +0000457422 00000 n +0000457610 00000 n +0000457799 00000 n +0000457988 00000 n +0000458051 00000 n +0000458239 00000 n +0000458428 00000 n +0000583936 00000 n +0000462679 00000 n +0000460283 00000 n +0000458760 00000 n +0000460407 00000 n +0000460595 00000 n +0000460783 00000 n +0000460972 00000 n +0000461160 00000 n +0000461223 00000 n +0000461412 00000 n +0000461475 00000 n +0000461539 00000 n +0000461728 00000 n +0000461791 00000 n +0000461855 00000 n +0000461919 00000 n +0000462109 00000 n +0000462172 00000 n +0000462236 00000 n +0000462426 00000 n +0000462488 00000 n +0000462552 00000 n +0000465960 00000 n +0000464384 00000 n +0000462809 00000 n +0000464508 00000 n +0000464634 00000 n +0000464696 00000 n +0000464760 00000 n +0000464950 00000 n +0000465013 00000 n +0000465077 00000 n +0000465267 00000 n +0000465330 00000 n +0000465455 00000 n +0000465643 00000 n +0000465706 00000 n +0000465770 00000 n +0000465897 00000 n +0000470036 00000 n +0000468076 00000 n +0000466104 00000 n +0000468200 00000 n +0000468387 00000 n +0000468450 00000 n +0000468514 00000 n +0000468578 00000 n +0000468642 00000 n +0000468706 00000 n +0000468770 00000 n +0000468834 00000 n +0000469023 00000 n +0000469086 00000 n +0000469149 00000 n +0000469213 00000 n +0000469277 00000 n +0000469340 00000 n +0000469529 00000 n +0000469591 00000 n +0000469654 00000 n +0000469718 00000 n +0000469782 00000 n +0000469846 00000 n +0000469973 00000 n +0000473614 00000 n +0000471789 00000 n +0000470180 00000 n +0000471913 00000 n +0000472165 00000 n +0000472354 00000 n +0000472543 00000 n +0000472606 00000 n +0000472793 00000 n +0000472982 00000 n +0000473045 00000 n +0000473360 00000 n +0000473423 00000 n +0000473487 00000 n +0000478259 00000 n +0000475610 00000 n +0000473744 00000 n +0000475734 00000 n +0000475859 00000 n +0000475921 00000 n +0000475985 00000 n +0000476111 00000 n +0000476174 00000 n +0000476238 00000 n +0000476427 00000 n +0000476615 00000 n +0000476678 00000 n +0000476868 00000 n +0000476931 00000 n +0000476995 00000 n +0000477059 00000 n +0000477123 00000 n +0000477187 00000 n +0000477314 00000 n +0000477503 00000 n +0000477692 00000 n +0000477880 00000 n +0000477943 00000 n +0000478133 00000 n +0000482157 00000 n +0000480263 00000 n +0000478403 00000 n +0000480387 00000 n +0000480450 00000 n +0000480762 00000 n +0000480825 00000 n +0000481013 00000 n +0000481076 00000 n +0000481140 00000 n +0000481204 00000 n +0000481268 00000 n +0000481331 00000 n +0000481520 00000 n +0000481583 00000 n +0000481647 00000 n +0000481711 00000 n +0000481775 00000 n +0000481839 00000 n +0000481903 00000 n +0000481967 00000 n +0000482031 00000 n +0000584061 00000 n +0000486541 00000 n +0000484147 00000 n +0000482301 00000 n +0000484271 00000 n +0000484396 00000 n +0000484459 00000 n +0000484523 00000 n +0000484711 00000 n +0000484774 00000 n +0000484837 00000 n +0000485026 00000 n +0000485089 00000 n +0000485216 00000 n +0000580885 00000 n +0000578991 00000 n +0000580721 00000 n +0000485530 00000 n +0000485593 00000 n +0000485657 00000 n +0000485721 00000 n +0000485784 00000 n +0000485971 00000 n +0000486034 00000 n +0000486098 00000 n +0000486162 00000 n +0000486351 00000 n +0000486414 00000 n +0000491163 00000 n +0000488455 00000 n +0000486699 00000 n +0000488579 00000 n +0000488703 00000 n +0000488765 00000 n +0000488954 00000 n +0000489267 00000 n +0000489330 00000 n +0000489394 00000 n +0000489458 00000 n +0000489522 00000 n +0000489585 00000 n +0000489772 00000 n +0000489834 00000 n +0000489897 00000 n +0000489961 00000 n +0000490150 00000 n +0000490213 00000 n +0000490403 00000 n +0000490466 00000 n +0000490656 00000 n +0000490719 00000 n +0000490783 00000 n +0000490847 00000 n +0000490911 00000 n +0000490974 00000 n +0000491101 00000 n +0000494333 00000 n +0000493013 00000 n +0000491307 00000 n +0000493137 00000 n +0000493451 00000 n +0000493514 00000 n +0000493578 00000 n +0000493642 00000 n +0000493706 00000 n +0000493767 00000 n +0000493828 00000 n +0000494016 00000 n +0000494079 00000 n +0000494143 00000 n +0000494207 00000 n +0000498033 00000 n +0000496403 00000 n +0000494463 00000 n +0000496527 00000 n +0000496653 00000 n +0000496715 00000 n +0000496903 00000 n +0000496965 00000 n +0000497154 00000 n +0000497217 00000 n +0000497406 00000 n +0000497716 00000 n +0000497779 00000 n +0000497843 00000 n +0000497970 00000 n +0000503121 00000 n +0000500085 00000 n +0000498177 00000 n +0000500209 00000 n +0000500397 00000 n +0000500460 00000 n +0000500524 00000 n +0000500588 00000 n +0000500652 00000 n +0000500716 00000 n +0000500780 00000 n +0000500844 00000 n +0000500908 00000 n +0000500972 00000 n +0000501160 00000 n +0000501223 00000 n +0000501286 00000 n +0000501350 00000 n +0000501540 00000 n +0000501603 00000 n +0000501792 00000 n +0000501855 00000 n +0000501919 00000 n +0000502109 00000 n +0000502172 00000 n +0000502362 00000 n +0000502425 00000 n +0000502614 00000 n +0000502677 00000 n +0000502741 00000 n +0000502805 00000 n +0000502869 00000 n +0000502932 00000 n +0000502995 00000 n +0000505533 00000 n +0000504526 00000 n +0000503251 00000 n +0000504650 00000 n +0000504774 00000 n +0000504899 00000 n +0000504962 00000 n +0000505025 00000 n +0000505088 00000 n +0000505152 00000 n +0000505216 00000 n +0000505280 00000 n +0000505344 00000 n +0000505407 00000 n +0000505470 00000 n +0000584186 00000 n +0000511182 00000 n +0000507641 00000 n +0000505677 00000 n +0000507765 00000 n +0000508080 00000 n +0000508143 00000 n +0000508206 00000 n +0000508270 00000 n +0000508334 00000 n +0000508398 00000 n +0000508461 00000 n +0000508525 00000 n +0000508588 00000 n +0000508904 00000 n +0000508967 00000 n +0000509030 00000 n +0000509094 00000 n +0000509157 00000 n +0000509221 00000 n +0000509284 00000 n +0000509348 00000 n +0000509411 00000 n +0000509475 00000 n +0000509538 00000 n +0000509602 00000 n +0000509665 00000 n +0000509729 00000 n +0000509792 00000 n +0000509856 00000 n +0000509919 00000 n +0000510235 00000 n +0000510298 00000 n +0000510360 00000 n +0000510424 00000 n +0000510487 00000 n +0000510551 00000 n +0000510740 00000 n +0000510803 00000 n +0000510866 00000 n +0000510930 00000 n +0000510993 00000 n +0000511057 00000 n +0000515614 00000 n +0000513154 00000 n +0000511312 00000 n +0000513278 00000 n +0000513467 00000 n +0000513529 00000 n +0000513592 00000 n +0000513656 00000 n +0000513719 00000 n +0000513783 00000 n +0000513972 00000 n +0000514035 00000 n +0000514098 00000 n +0000514162 00000 n +0000514225 00000 n +0000514289 00000 n +0000514603 00000 n +0000514666 00000 n +0000514729 00000 n +0000515043 00000 n +0000515106 00000 n +0000515169 00000 n +0000515233 00000 n +0000515297 00000 n +0000515361 00000 n +0000515425 00000 n +0000515488 00000 n +0000520106 00000 n +0000517781 00000 n +0000515744 00000 n +0000517905 00000 n +0000518093 00000 n +0000518219 00000 n +0000518282 00000 n +0000518472 00000 n +0000518660 00000 n +0000518723 00000 n +0000518911 00000 n +0000518974 00000 n +0000519037 00000 n +0000519101 00000 n +0000519288 00000 n +0000519351 00000 n +0000519415 00000 n +0000519602 00000 n +0000519791 00000 n +0000519980 00000 n +0000523533 00000 n +0000521523 00000 n +0000520236 00000 n +0000521647 00000 n +0000521834 00000 n +0000522149 00000 n +0000522462 00000 n +0000522525 00000 n +0000522588 00000 n +0000522651 00000 n +0000522967 00000 n +0000523282 00000 n +0000526658 00000 n +0000524898 00000 n +0000523663 00000 n +0000525022 00000 n +0000525148 00000 n +0000525462 00000 n +0000525777 00000 n +0000526092 00000 n +0000526406 00000 n +0000530055 00000 n +0000528044 00000 n +0000526788 00000 n +0000528168 00000 n +0000528294 00000 n +0000528609 00000 n +0000528922 00000 n +0000529237 00000 n +0000529299 00000 n +0000529363 00000 n +0000529678 00000 n +0000529741 00000 n +0000529804 00000 n +0000584311 00000 n +0000533182 00000 n +0000531233 00000 n +0000530185 00000 n +0000531357 00000 n +0000531483 00000 n +0000531798 00000 n +0000532111 00000 n +0000532426 00000 n +0000532741 00000 n +0000533056 00000 n +0000538774 00000 n +0000535933 00000 n +0000533312 00000 n +0000536057 00000 n +0000536308 00000 n +0000536371 00000 n +0000536435 00000 n +0000536499 00000 n +0000536688 00000 n +0000536749 00000 n +0000536813 00000 n +0000536877 00000 n +0000536940 00000 n +0000537003 00000 n +0000537067 00000 n +0000537131 00000 n +0000537195 00000 n +0000537384 00000 n +0000537447 00000 n +0000537510 00000 n +0000537573 00000 n +0000537762 00000 n +0000537825 00000 n +0000537888 00000 n +0000537952 00000 n +0000538015 00000 n +0000538205 00000 n +0000538268 00000 n +0000538331 00000 n +0000538394 00000 n +0000538457 00000 n +0000538647 00000 n +0000538710 00000 n +0000542255 00000 n +0000539933 00000 n +0000538904 00000 n +0000540057 00000 n +0000540309 00000 n +0000540621 00000 n +0000540684 00000 n +0000540871 00000 n +0000541185 00000 n +0000541248 00000 n +0000541437 00000 n +0000541751 00000 n +0000541814 00000 n +0000542004 00000 n +0000547036 00000 n +0000544199 00000 n +0000542385 00000 n +0000544323 00000 n +0000544511 00000 n +0000544573 00000 n +0000544635 00000 n +0000544699 00000 n +0000544763 00000 n +0000544827 00000 n +0000544890 00000 n +0000544954 00000 n +0000545081 00000 n +0000545144 00000 n +0000545207 00000 n +0000545397 00000 n +0000545585 00000 n +0000545899 00000 n +0000545962 00000 n +0000546025 00000 n +0000546088 00000 n +0000546152 00000 n +0000546216 00000 n +0000546280 00000 n +0000546469 00000 n +0000546658 00000 n +0000546721 00000 n +0000546910 00000 n +0000550294 00000 n +0000548850 00000 n +0000547166 00000 n +0000548974 00000 n +0000549099 00000 n +0000549224 00000 n +0000549412 00000 n +0000549475 00000 n +0000549538 00000 n +0000549602 00000 n +0000549790 00000 n +0000549853 00000 n +0000549916 00000 n +0000550168 00000 n +0000553639 00000 n +0000551560 00000 n +0000550438 00000 n +0000551684 00000 n +0000551999 00000 n +0000552062 00000 n +0000552252 00000 n +0000552440 00000 n +0000552503 00000 n +0000552692 00000 n +0000552880 00000 n +0000552943 00000 n +0000553007 00000 n +0000553196 00000 n +0000553385 00000 n +0000553448 00000 n +0000553512 00000 n +0000584436 00000 n +0000558103 00000 n +0000555136 00000 n +0000553769 00000 n +0000555260 00000 n +0000555449 00000 n +0000555574 00000 n +0000555637 00000 n +0000555701 00000 n +0000555765 00000 n +0000555829 00000 n +0000555893 00000 n +0000555957 00000 n +0000556021 00000 n +0000556148 00000 n +0000556337 00000 n +0000556400 00000 n +0000556588 00000 n +0000556651 00000 n +0000556713 00000 n +0000556903 00000 n +0000556966 00000 n +0000557156 00000 n +0000557219 00000 n +0000557283 00000 n +0000557473 00000 n +0000557662 00000 n +0000557725 00000 n +0000557789 00000 n +0000557977 00000 n +0000562048 00000 n +0000559901 00000 n +0000558247 00000 n +0000560025 00000 n +0000560151 00000 n +0000560214 00000 n +0000560278 00000 n +0000560405 00000 n +0000560468 00000 n +0000560532 00000 n +0000560721 00000 n +0000560783 00000 n +0000560846 00000 n +0000560910 00000 n +0000560974 00000 n +0000561162 00000 n +0000561225 00000 n +0000561414 00000 n +0000561477 00000 n +0000561541 00000 n +0000561605 00000 n +0000561669 00000 n +0000561922 00000 n +0000565967 00000 n +0000563438 00000 n +0000562192 00000 n +0000563562 00000 n +0000563815 00000 n +0000563877 00000 n +0000564067 00000 n +0000564256 00000 n +0000564319 00000 n +0000564509 00000 n +0000564699 00000 n +0000564889 00000 n +0000564952 00000 n +0000565143 00000 n +0000565205 00000 n +0000565396 00000 n +0000565459 00000 n +0000565523 00000 n +0000565714 00000 n +0000565776 00000 n +0000565840 00000 n +0000569955 00000 n +0000567487 00000 n +0000566097 00000 n +0000567611 00000 n +0000567801 00000 n +0000567864 00000 n +0000567928 00000 n +0000568119 00000 n +0000568181 00000 n +0000568369 00000 n +0000568432 00000 n +0000568496 00000 n +0000568687 00000 n +0000568750 00000 n +0000568814 00000 n +0000568941 00000 n +0000572701 00000 n +0000571250 00000 n +0000570099 00000 n +0000571374 00000 n +0000571692 00000 n +0000571816 00000 n +0000572196 00000 n +0000572575 00000 n +0000575628 00000 n +0000573858 00000 n +0000572831 00000 n +0000573982 00000 n +0000574045 00000 n +0000574360 00000 n +0000584561 00000 n +0000578847 00000 n +0000577522 00000 n +0000575758 00000 n +0000577646 00000 n +0000577773 00000 n +0000577836 00000 n +0000577961 00000 n +0000578277 00000 n +0000578340 00000 n +0000578403 00000 n +0000578467 00000 n +0000578656 00000 n +0000578719 00000 n +0000578783 00000 n +0000581117 00000 n +0000581092 00000 n +0000581206 00000 n +0000584650 00000 n +0000584776 00000 n +0000584875 00000 n +0000584948 00000 n +0000612890 00000 n +0000636722 00000 n +0000636763 00000 n +0000636803 00000 n +0000637052 00000 n +trailer +<< +/Size 3098 +/Root 3096 0 R +/Info 3097 0 R +>> +startxref +637241 +%%EOF diff --git a/pow/POW-0.7/docs/POW_pdf.dsl b/pow/POW-0.7/docs/POW_pdf.dsl new file mode 100644 index 00000000..d74f6704 --- /dev/null +++ b/pow/POW-0.7/docs/POW_pdf.dsl @@ -0,0 +1,112 @@ +<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ +<!ENTITY dbstyle SYSTEM "/usr/share/sgml/docbook/dsssl-stylesheets-1.77/print/docbook.dsl" CDATA DSSSL> +]> + +<style-sheet> +<style-specification use="docbook"> +<style-specification-body> + +;; user modifications +(define %paper-type% "A4") +(define %default-quadding% 'justify) +(define %block-sep% (* %para-sep% 1.0)) + + +;; modify paramdef to replace trailing semicolon with colon +(element paramdef + (let ((param (select-elements (children (current-node)) (normalize "parameter")))) + (make sequence + (if (equal? (child-number (current-node)) 1) + (literal "(") + (empty-sosofo)) + (if (equal? %funcsynopsis-style% 'ansi) + (process-children) + (process-node-list param)) + (if (equal? (gi (ifollow (current-node))) (normalize "paramdef")) + (literal ", ") + (literal "):"))))) + +(element void + (literal "():")) + +(element parameter ($mono-seq$)) + +(mode cs-python-mode + (element classsynopsis + (let* ((classes (select-elements (children (current-node)) + (normalize "ooclass"))) + (classname (node-list-first classes)) + (superclasses (node-list-rest classes))) + (make display-group + use: verbatim-style + (make paragraph + (literal "class ") + (process-node-list classname) + (if (node-list-empty? superclasses) + (literal ":") + (make sequence + (literal "(") + (process-node-list superclasses) + (literal "):")))) + (process-node-list + (node-list-filter-by-gi + (children (current-node)) + (list (normalize "constructorsynopsis") + (normalize "destructorsynopsis") + (normalize "fieldsynopsis") + (normalize "methodsynopsis") + (normalize "classsynopsisinfo")))) + )))) + +(element ooclass + (make sequence + (process-children) + (cond + ;;((first-sibling?) (literal " ")) + ((first-sibling?) (empty-sosofo)) + ((last-sibling?) (empty-sosofo)) + (#t (literal ", "))))) + + + (element constructorsynopsis + (python-constructor-synopsis)) + + (element destructorsynopsis + (python-constructor-synopsis)) + + (element classsynopsisinfo + ($verbatim-display$ %indent-classsynopsisinfo-lines% %number-classsynopsisinfo-lines%)) + +(define (python-constructor-synopsis #!optional (nd (current-node))) + (let* ((the-method-params (select-elements (children nd) (normalize "methodparam")))) + (make paragraph + (literal " def __init__(") + (process-node-list the-method-params) + (literal "):")))) + +(define (python-destructor-synopsis #!optional (nd (current-node))) + (let* ((the-method-params (select-elements (children nd) (normalize "methodparam")))) + (make paragraph + (literal " def __del__(") + (process-node-list the-method-params) + (literal "):")))) + +;;(element parameter +;; (process-children)) + +(define (python-method-synopsis #!optional (nd (current-node))) + (let* ((the-method-name (select-elements (children nd) (normalize "methodname"))) + (the-method-params (select-elements (children nd) (normalize "methodparam"))) + ) + (make paragraph + (literal " def ") + (process-node-list the-method-name) + (literal "(") + (process-node-list the-method-params) + (literal "):")))) + + +</style-specification-body> +</style-specification> +<external-specification id="docbook" document="dbstyle"> +</style-sheet> diff --git a/pow/POW-0.7/docs/doc.py b/pow/POW-0.7/docs/doc.py new file mode 100755 index 00000000..0a0e4450 --- /dev/null +++ b/pow/POW-0.7/docs/doc.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import sys, string, os, commands + +class DocError(Exception): + def __init__(self, mesg): + self.mesg = mesg + + def __str__(self): + return self.mesg + +class Extractor: + def __init__(self, module): + exec('import %s' % module) + self.module = eval(module) + + def get(self): + fragments = '' + for doc in self.module._docset(): + fragments += doc + + return '<moduleSet>' + fragments + '</moduleSet>' + + +if __name__ == '__main__': + if len(sys.argv) < 2: + raise DocError( 'module name must be supplied') + + lines = '' + for mod in sys.argv[1:]: + print 'processing module', mod + ex = Extractor(mod) + lines += ex.get() + + file = open('fragments.xml', 'w') + file.write('%s\n%s\n%s' % ('<collection>', lines, '</collection>')) + file.close() + + print 'transforming document...' + (status, doc) = commands.getstatusoutput('java org.apache.xalan.xslt.Process -IN fragments.xml -XSL doc.xsl' ) + if status: + print doc + sys.exit(1) + + doc = doc.replace('/>', '>') + lines = string.split(doc, '\n') + lines[0] = '<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">' + + file = open(sys.argv[1] + '.sgm', 'w') + file.write( string.join(lines, '\n') ) + file.close() + diff --git a/pow/POW-0.7/docs/doc.sh b/pow/POW-0.7/docs/doc.sh new file mode 100755 index 00000000..32fe72e9 --- /dev/null +++ b/pow/POW-0.7/docs/doc.sh @@ -0,0 +1,13 @@ +#!/usr/bin/ksh + +PACKAGE="POW" +MODULES="POW POW.pkix" + +./doc.py ${MODULES} +if [[ $? == 0 ]] +then + openjade -t tex -d POW_pdf.dsl ${PACKAGE}.sgm + pdfjadetex ${PACKAGE}.tex +else + print 'error producing SGML file' +fi diff --git a/pow/POW-0.7/docs/doc.xsl b/pow/POW-0.7/docs/doc.xsl new file mode 100644 index 00000000..61b95670 --- /dev/null +++ b/pow/POW-0.7/docs/doc.xsl @@ -0,0 +1,188 @@ +<?xml version="1.0"?> + +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0" +> + <xsl:template match="/"> + <book> + <bookinfo> + <title>The POW Package</title> + <author><firstname>Peter</firstname> <surname>Shannon</surname></author> + </bookinfo> + <xsl:for-each select="collection/moduleSet"> + <xsl:call-template name="processModule"/> + </xsl:for-each> + </book> + </xsl:template> + + <xsl:template name="processModule"> + <chapter> + <title>The <xsl:value-of select="moduleDescription/header/name"/> Module</title> + <sect1> + <title>Introduction</title> + <xsl:copy-of select="moduleDescription/body/*"/> + </sect1> + <xsl:if test="modulefunction"> + <sect1> + <title>Module Functions</title> + <xsl:call-template name="functionPrototypes"/> + <xsl:call-template name="functionDescriptions"/> + </sect1> + </xsl:if> + <sect1> + <title>Module Classes</title> + <xsl:call-template name="moduleClasses"/> + </sect1> + </chapter> + </xsl:template> + + <xsl:template name="functionPrototypes"> + <sect2> + <title>Function Prototypes</title> + <funcsynopsis> + <xsl:for-each select="modulefunction"> + <funcprototype> + <funcdef>def <function><xsl:value-of select="header/name"/></function></funcdef> + <xsl:call-template name="functionParameter"/> + </funcprototype> + </xsl:for-each> + </funcsynopsis> + </sect2> + </xsl:template> + + <xsl:template name="functionDescriptions"> + <sect2> + <title>Function Descriptions</title> + <xsl:for-each select="modulefunction"> + <sect3> + <title>The <function><xsl:value-of select="header/name"/></function> Function</title> + + <funcsynopsis> + <funcprototype> + <funcdef>def <function><xsl:value-of select="header/name"/></function></funcdef> + <xsl:call-template name="functionParameter"/> + </funcprototype> + </funcsynopsis> + + <xsl:copy-of select="body/*"/> + </sect3> + </xsl:for-each> + </sect2> + </xsl:template> + + + <xsl:template name="moduleClasses"> + <xsl:for-each select="class"> + <xsl:variable name="class"> + <xsl:value-of select="header/name"/> + </xsl:variable> + <sect2> + <title>The <classname><xsl:value-of select="$class"/></classname> Class</title> + + <xsl:copy-of select="body/*"/> + + <sect3> + <title>Class Prototypes</title> + <xsl:call-template name="methodPrototypes"> + <xsl:with-param name="class"> + <xsl:value-of select="$class"/> + </xsl:with-param> + </xsl:call-template> + </sect3> + + <xsl:call-template name="methodDescriptions"> + <xsl:with-param name="class"> + <xsl:value-of select="$class"/> + </xsl:with-param> + </xsl:call-template> + + </sect2> + </xsl:for-each> + </xsl:template> + + <xsl:template name="methodPrototypes"> + <xsl:param name="class"/> + <classsynopsis> + <xsl:attribute name="language">python</xsl:attribute> + <ooclass><classname><xsl:value-of select="$class"/></classname></ooclass> + <xsl:if test="header/super"> + <xsl:for-each select="header/super"> + <ooclass><classname><xsl:value-of select="."/></classname></ooclass> + </xsl:for-each> + </xsl:if> + <xsl:if test="..//header[memberof=$class]"> + <xsl:for-each select="../constructor[header/memberof=$class]"> + <constructorsynopsis> + <methodname><xsl:value-of select="$class"/></methodname> + <xsl:call-template name="methodParameter"/> + </constructorsynopsis> + </xsl:for-each> + <xsl:for-each select="../method[header/memberof=$class]"> + <methodsynopsis> + <methodname><xsl:value-of select="header/name"/></methodname> + <xsl:call-template name="methodParameter"/> + </methodsynopsis> + </xsl:for-each> + </xsl:if> + </classsynopsis> + </xsl:template> + + <xsl:template name="functionParameter"> + <xsl:choose> + <xsl:when test="header/parameter"> + <xsl:for-each select="header/parameter"> + <paramdef> + <parameter> + <xsl:value-of select="self::node()"/> + </parameter> + </paramdef> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <void/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="methodParameter"> + <xsl:choose> + <xsl:when test="header/parameter"> + <xsl:for-each select="header/parameter"> + <methodparam> + <parameter> + <xsl:value-of select="self::node()"/> + </parameter> + </methodparam> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <void/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="methodDescriptions"> + <xsl:param name="class"/> + + <xsl:for-each select="../constructor[header/memberof=$class]"> + <xsl:if test="body"> + <sect3> + <title>The <function>__init__</function> Method</title> + <xsl:copy-of select="body/*"/> + </sect3> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="../method[header/memberof=$class]"> + <xsl:if test="body"> + <sect3> + <title>The <function><xsl:value-of select="header/name"/></function> Method</title> + <xsl:copy-of select="body/*"/> + </sect3> + </xsl:if> + </xsl:for-each> + + </xsl:template> + +</xsl:stylesheet> diff --git a/pow/POW-0.7/dumpasn1.cfg b/pow/POW-0.7/dumpasn1.cfg new file mode 100644 index 00000000..1aa6fedd --- /dev/null +++ b/pow/POW-0.7/dumpasn1.cfg @@ -0,0 +1,5276 @@ +# dumpasn1 Object Identifier configuration file, available from +# http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.cfg. This is read by +# dumpasn1.c and is used to display information on Object Identifiers found in +# ASN.1 objects. This is merely a list of things which you might conceivably +# find in use somewhere, and should in no way be taken as a guide to which OIDs +# to use - many of these will never been seen in the wild, or should be shot on +# sight if encountered. +# +# The format of this file is as follows: +# +# - All blank lines and lines beginning with a '#' are ignored. +# - OIDs are described by a set of attributes, of which at least the 'OID' and +# 'Description' must be present. Optional attributes are a 'Comment' and a +# 'Warning' (to indicate that dumpasn1 will display a warning if this OID is +# encountered). +# - Attributes are listed one per line. The first attribute should be an 'OID' +# attribute since this is used to denote the start of a new OID description. +# The other attributes may be given in any order. +# +# See the rest of this file for examples of what an OID description should look +# like. + +# Deutsche Telekom/Telesec + +OID = 06 05 02 82 06 01 0A +Comment = Deutsche Telekom +Description = Telesec (0 2 262 1 10) + +OID = 06 06 02 82 06 01 0A 00 +Comment = Telesec +Description = extension (0 2 262 1 10 0) + +OID = 06 06 02 82 06 01 0A 01 +Comment = Telesec +Description = mechanism (0 2 262 1 10 1) + +OID = 06 07 02 82 06 01 0A 01 00 +Comment = Telesec mechanism +Description = authentication (0 2 262 1 10 1 0) + +OID = 06 08 02 82 06 01 0A 01 00 01 +Comment = Telesec authentication +Description = passwordAuthentication (0 2 262 1 10 1 0 1) + +OID = 06 08 02 82 06 01 0A 01 00 02 +Comment = Telesec authentication +Description = protectedPasswordAuthentication (0 2 262 1 10 1 0 2) + +OID = 06 08 02 82 06 01 0A 01 00 03 +Comment = Telesec authentication +Description = oneWayX509Authentication (0 2 262 1 10 1 0 3) + +OID = 06 08 02 82 06 01 0A 01 00 04 +Comment = Telesec authentication +Description = twoWayX509Authentication (0 2 262 1 10 1 0 4) + +OID = 06 08 02 82 06 01 0A 01 00 05 +Comment = Telesec authentication +Description = threeWayX509Authentication (0 2 262 1 10 1 0 5) + +OID = 06 08 02 82 06 01 0A 01 00 06 +Comment = Telesec authentication +Description = oneWayISO9798Authentication (0 2 262 1 10 1 0 6) + +OID = 06 08 02 82 06 01 0A 01 00 07 +Comment = Telesec authentication +Description = twoWayISO9798Authentication (0 2 262 1 10 1 0 7) + +OID = 06 08 02 82 06 01 0A 01 00 08 +Comment = Telesec authentication +Description = telekomAuthentication (0 2 262 1 10 1 0 8) + +OID = 06 07 02 82 06 01 0A 01 01 +Comment = Telesec mechanism +Description = signature (0 2 262 1 10 1 1) + +OID = 06 08 02 82 06 01 0A 01 01 01 +Comment = Telesec mechanism +Description = md4WithRSAAndISO9697 (0 2 262 1 10 1 1 1) + +OID = 06 08 02 82 06 01 0A 01 01 02 +Comment = Telesec mechanism +Description = md4WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 2) + +OID = 06 08 02 82 06 01 0A 01 01 03 +Comment = Telesec mechanism +Description = md5WithRSAAndISO9697 (0 2 262 1 10 1 1 3) + +OID = 06 08 02 82 06 01 0A 01 01 04 +Comment = Telesec mechanism +Description = md5WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 4) + +# PKCS #1 signature with RIPEMD-160 +OID = 06 08 02 82 06 01 0A 01 01 05 +Comment = Telesec mechanism +Description = ripemd160WithRSAAndTelekomSignatureStandard (0 2 262 1 10 1 1 5) + +# RIPEMD-160 with raw RSA (ie no padding, just 160 bytes encrypted) signature +OID = 06 08 02 82 06 01 0A 01 01 09 +Comment = Telesec signature +Description = hbciRsaSignature (0 2 262 1 10 1 1 9) + +OID = 06 07 02 82 06 01 0A 01 02 +Comment = Telesec mechanism +Description = encryption (0 2 262 1 10 1 2) + +# Specially recommended by the NSA for German use +OID = 06 08 02 82 06 01 0A 01 02 00 +Comment = Telesec encryption +Description = none (0 2 262 1 10 1 2 0) + +OID = 06 08 02 82 06 01 0A 01 02 01 +Comment = Telesec encryption +Description = rsaTelesec (0 2 262 1 10 1 2 1) + +OID = 06 08 02 82 06 01 0A 01 02 02 +Comment = Telesec encryption +Description = des (0 2 262 1 10 1 2 2) + +OID = 06 09 02 82 06 01 0A 01 02 02 01 +Comment = Telesec encryption +Description = desECB (0 2 262 1 10 1 2 2 1) + +OID = 06 09 02 82 06 01 0A 01 02 02 02 +Comment = Telesec encryption +Description = desCBC (0 2 262 1 10 1 2 2 2) + +OID = 06 09 02 82 06 01 0A 01 02 02 03 +Comment = Telesec encryption +Description = desOFB (0 2 262 1 10 1 2 2 3) + +OID = 06 09 02 82 06 01 0A 01 02 02 04 +Comment = Telesec encryption +Description = desCFB8 (0 2 262 1 10 1 2 2 4) + +OID = 06 09 02 82 06 01 0A 01 02 02 05 +Comment = Telesec encryption +Description = desCFB64 (0 2 262 1 10 1 2 2 5) + +OID = 06 08 02 82 06 01 0A 01 02 03 +Comment = Telesec encryption +Description = des3 (0 2 262 1 10 1 2 3) + +OID = 06 09 02 82 06 01 0A 01 02 03 01 +Comment = Telesec encryption +Description = des3ECB (0 2 262 1 10 1 2 3 1) + +OID = 06 09 02 82 06 01 0A 01 02 03 02 +Comment = Telesec encryption +Description = des3CBC (0 2 262 1 10 1 2 3 2) + +OID = 06 09 02 82 06 01 0A 01 02 03 03 +Comment = Telesec encryption +Description = des3OFB (0 2 262 1 10 1 2 3 3) + +OID = 06 09 02 82 06 01 0A 01 02 03 04 +Comment = Telesec encryption +Description = des3CFB8 (0 2 262 1 10 1 2 3 4) + +OID = 06 09 02 82 06 01 0A 01 02 03 05 +Comment = Telesec encryption +Description = des3CFB64 (0 2 262 1 10 1 2 3 5) + +OID = 06 08 02 82 06 01 0A 01 02 04 +Comment = Telesec encryption +Description = magenta (0 2 262 1 10 1 2 4) + +OID = 06 08 02 82 06 01 0A 01 02 05 +Comment = Telesec encryption +Description = idea (0 2 262 1 10 1 2 5) + +OID = 06 09 02 82 06 01 0A 01 02 05 01 +Comment = Telesec encryption +Description = ideaECB (0 2 262 1 10 1 2 5 1) + +OID = 06 09 02 82 06 01 0A 01 02 05 02 +Comment = Telesec encryption +Description = ideaCBC (0 2 262 1 10 1 2 5 2) + +OID = 06 09 02 82 06 01 0A 01 02 05 03 +Comment = Telesec encryption +Description = ideaOFB (0 2 262 1 10 1 2 5 3) + +OID = 06 09 02 82 06 01 0A 01 02 05 04 +Comment = Telesec encryption +Description = ideaCFB8 (0 2 262 1 10 1 2 5 4) + +OID = 06 09 02 82 06 01 0A 01 02 05 05 +Comment = Telesec encryption +Description = ideaCFB64 (0 2 262 1 10 1 2 5 5) + +OID = 06 07 02 82 06 01 0A 01 03 +Comment = Telesec mechanism +Description = oneWayFunction (0 2 262 1 10 1 3) + +OID = 06 08 02 82 06 01 0A 01 03 01 +Comment = Telesec one-way function +Description = md4 (0 2 262 1 10 1 3 1) + +OID = 06 08 02 82 06 01 0A 01 03 02 +Comment = Telesec one-way function +Description = md5 (0 2 262 1 10 1 3 2) + +OID = 06 08 02 82 06 01 0A 01 03 03 +Comment = Telesec one-way function +Description = sqModNX509 (0 2 262 1 10 1 3 3) + +OID = 06 08 02 82 06 01 0A 01 03 04 +Comment = Telesec one-way function +Description = sqModNISO (0 2 262 1 10 1 3 4) + +OID = 06 08 02 82 06 01 0A 01 03 05 +Comment = Telesec one-way function +Description = ripemd128 (0 2 262 1 10 1 3 5) + +OID = 06 08 02 82 06 01 0A 01 03 06 +Comment = Telesec one-way function +Description = hashUsingBlockCipher (0 2 262 1 10 1 3 6) + +OID = 06 08 02 82 06 01 0A 01 03 07 +Comment = Telesec one-way function +Description = mac (0 2 262 1 10 1 3 7) + +OID = 06 08 02 82 06 01 0A 01 03 08 +Comment = Telesec one-way function +Description = ripemd160 (0 2 262 1 10 1 3 8) + +OID = 06 07 02 82 06 01 0A 01 04 +Comment = Telesec mechanism +Description = fecFunction (0 2 262 1 10 1 4) + +OID = 06 08 02 82 06 01 0A 01 04 01 +Comment = Telesec mechanism +Description = reedSolomon (0 2 262 1 10 1 4 1) + +#OID = 06 06 02 82 06 01 0A 02 +#Comment = Telesec +#Description = module (0 2 262 1 10 2) +# conflicts with more useful definition + +#OID = 06 07 02 82 06 01 0A 02 00 +#Comment = Telesec module +#Description = algorithms (0 2 262 1 10 2 0) +# conflicts with more useful definition + +OID = 06 07 02 82 06 01 0A 02 01 +Comment = Telesec module +Description = attributeTypes (0 2 262 1 10 2 1) + +OID = 06 07 02 82 06 01 0A 02 02 +Comment = Telesec module +Description = certificateTypes (0 2 262 1 10 2 2) + +OID = 06 07 02 82 06 01 0A 02 03 +Comment = Telesec module +Description = messageTypes (0 2 262 1 10 2 3) + +OID = 06 07 02 82 06 01 0A 02 04 +Comment = Telesec module +Description = plProtocol (0 2 262 1 10 2 4) + +OID = 06 07 02 82 06 01 0A 02 05 +Comment = Telesec module +Description = smeAndComponentsOfSme (0 2 262 1 10 2 5) + +OID = 06 07 02 82 06 01 0A 02 06 +Comment = Telesec module +Description = fec (0 2 262 1 10 2 6) + +OID = 06 07 02 82 06 01 0A 02 07 +Comment = Telesec module +Description = usefulDefinitions (0 2 262 1 10 2 7) + +OID = 06 07 02 82 06 01 0A 02 08 +Comment = Telesec module +Description = stefiles (0 2 262 1 10 2 8) + +OID = 06 07 02 82 06 01 0A 02 09 +Comment = Telesec module +Description = sadmib (0 2 262 1 10 2 9) + +OID = 06 07 02 82 06 01 0A 02 0A +Comment = Telesec module +Description = electronicOrder (0 2 262 1 10 2 10) + +OID = 06 07 02 82 06 01 0A 02 0B +Comment = Telesec module +Description = telesecTtpAsymmetricApplication (0 2 262 1 10 2 11) + +OID = 06 07 02 82 06 01 0A 02 0C +Comment = Telesec module +Description = telesecTtpBasisApplication (0 2 262 1 10 2 12) + +OID = 06 07 02 82 06 01 0A 02 0D +Comment = Telesec module +Description = telesecTtpMessages (0 2 262 1 10 2 13) + +OID = 06 07 02 82 06 01 0A 02 0E +Comment = Telesec module +Description = telesecTtpTimeStampApplication (0 2 262 1 10 2 14) + +#OID = 06 06 02 82 06 01 0A 03 +#Comment = Telesec +#Description = objectClass (0 2 262 1 10 3) +# conflicts with more useful definition + +OID = 06 07 02 82 06 01 0A 03 00 +Comment = Telesec object class +Description = telesecOtherName (0 2 262 1 10 3 0) + +#OID = 06 07 02 82 06 01 0A 03 01 +#Comment = Telesec object class +#Description = directory (0 2 262 1 10 3 1) +# conflicts with more useful definition + +OID = 06 07 02 82 06 01 0A 03 02 +Comment = Telesec object class +Description = directoryType (0 2 262 1 10 3 2) + +OID = 06 07 02 82 06 01 0A 03 03 +Comment = Telesec object class +Description = directoryGroup (0 2 262 1 10 3 3) + +OID = 06 07 02 82 06 01 0A 03 04 +Comment = Telesec object class +Description = directoryUser (0 2 262 1 10 3 4) + +OID = 06 07 02 82 06 01 0A 03 05 +Comment = Telesec object class +Description = symmetricKeyEntry (0 2 262 1 10 3 5) + +OID = 06 06 02 82 06 01 0A 04 +Comment = Telesec +Description = package (0 2 262 1 10 4) + +OID = 06 06 02 82 06 01 0A 05 +Comment = Telesec +Description = parameter (0 2 262 1 10 5) + +OID = 06 06 02 82 06 01 0A 06 +Comment = Telesec +Description = nameBinding (0 2 262 1 10 6) + +#OID = 06 06 02 82 06 01 0A 07 +#Comment = Telesec +#Description = attribute (0 2 262 1 10 7) +# conflicts with more useful definition + +OID = 06 07 02 82 06 01 0A 07 00 +Comment = Telesec attribute +Description = applicationGroupIdentifier (0 2 262 1 10 7 0) + +#OID = 06 07 02 82 06 01 0A 07 01 +#Comment = Telesec attribute +#Description = certificateType (0 2 262 1 10 7 1) +# conflicts with more useful definition + +OID = 06 07 02 82 06 01 0A 07 02 +Comment = Telesec attribute +Description = telesecCertificate (0 2 262 1 10 7 2) + +OID = 06 07 02 82 06 01 0A 07 03 +Comment = Telesec attribute +Description = certificateNumber (0 2 262 1 10 7 3) + +#OID = 06 07 02 82 06 01 0A 07 04 +#Comment = Telesec attribute +#Description = certificateRevocationList (0 2 262 1 10 7 4) +# conflicts with more useful definition + +OID = 06 07 02 82 06 01 0A 07 05 +Comment = Telesec attribute +Description = creationDate (0 2 262 1 10 7 5) + +OID = 06 07 02 82 06 01 0A 07 06 +Comment = Telesec attribute +Description = issuer (0 2 262 1 10 7 6) + +OID = 06 07 02 82 06 01 0A 07 07 +Comment = Telesec attribute +Description = namingAuthority (0 2 262 1 10 7 7) + +OID = 06 07 02 82 06 01 0A 07 08 +Comment = Telesec attribute +Description = publicKeyDirectory (0 2 262 1 10 7 8) + +OID = 06 07 02 82 06 01 0A 07 09 +Comment = Telesec attribute +Description = securityDomain (0 2 262 1 10 7 9) + +OID = 06 07 02 82 06 01 0A 07 0A +Comment = Telesec attribute +Description = subject (0 2 262 1 10 7 10) + +OID = 06 07 02 82 06 01 0A 07 0B +Comment = Telesec attribute +Description = timeOfRevocation (0 2 262 1 10 7 11) + +OID = 06 07 02 82 06 01 0A 07 0C +Comment = Telesec attribute +Description = userGroupReference (0 2 262 1 10 7 12) + +OID = 06 07 02 82 06 01 0A 07 0D +Comment = Telesec attribute +Description = validity (0 2 262 1 10 7 13) + +OID = 06 07 02 82 06 01 0A 07 0E +Comment = Telesec attribute +Description = zert93 (0 2 262 1 10 7 14) + +# It really is called that +OID = 06 07 02 82 06 01 0A 07 0F +Comment = Telesec attribute +Description = securityMessEnv (0 2 262 1 10 7 15) + +OID = 06 07 02 82 06 01 0A 07 10 +Comment = Telesec attribute +Description = anonymizedPublicKeyDirectory (0 2 262 1 10 7 16) + +OID = 06 07 02 82 06 01 0A 07 11 +Comment = Telesec attribute +Description = telesecGivenName (0 2 262 1 10 7 17) + +OID = 06 07 02 82 06 01 0A 07 12 +Comment = Telesec attribute +Description = nameAdditions (0 2 262 1 10 7 18) + +OID = 06 07 02 82 06 01 0A 07 13 +Comment = Telesec attribute +Description = telesecPostalCode (0 2 262 1 10 7 19) + +OID = 06 07 02 82 06 01 0A 07 14 +Comment = Telesec attribute +Description = nameDistinguisher (0 2 262 1 10 7 20) + +OID = 06 07 02 82 06 01 0A 07 15 +Comment = Telesec attribute +Description = telesecCertificateList (0 2 262 1 10 7 21) + +OID = 06 07 02 82 06 01 0A 07 16 +Comment = Telesec attribute +Description = teletrustCertificateList (0 2 262 1 10 7 22) + +OID = 06 07 02 82 06 01 0A 07 17 +Comment = Telesec attribute +Description = x509CertificateList (0 2 262 1 10 7 23) + +OID = 06 07 02 82 06 01 0A 07 18 +Comment = Telesec attribute +Description = timeOfIssue (0 2 262 1 10 7 24) + +OID = 06 07 02 82 06 01 0A 07 19 +Comment = Telesec attribute +Description = physicalCardNumber (0 2 262 1 10 7 25) + +OID = 06 07 02 82 06 01 0A 07 1A +Comment = Telesec attribute +Description = fileType (0 2 262 1 10 7 26) + +OID = 06 07 02 82 06 01 0A 07 1B +Comment = Telesec attribute +Description = ctlFileIsArchive (0 2 262 1 10 7 27) + +#OID = 06 07 02 82 06 01 0A 07 1C +#Comment = Telesec attribute +#Description = emailAddress (0 2 262 1 10 7 28) +# conflicts with more useful definition + +OID = 06 07 02 82 06 01 0A 07 1D +Comment = Telesec attribute +Description = certificateTemplateList (0 2 262 1 10 7 29) + +OID = 06 07 02 82 06 01 0A 07 1E +Comment = Telesec attribute +Description = directoryName (0 2 262 1 10 7 30) + +OID = 06 07 02 82 06 01 0A 07 1F +Comment = Telesec attribute +Description = directoryTypeName (0 2 262 1 10 7 31) + +OID = 06 07 02 82 06 01 0A 07 20 +Comment = Telesec attribute +Description = directoryGroupName (0 2 262 1 10 7 32) + +OID = 06 07 02 82 06 01 0A 07 21 +Comment = Telesec attribute +Description = directoryUserName (0 2 262 1 10 7 33) + +OID = 06 07 02 82 06 01 0A 07 22 +Comment = Telesec attribute +Description = revocationFlag (0 2 262 1 10 7 34) + +OID = 06 07 02 82 06 01 0A 07 23 +Comment = Telesec attribute +Description = symmetricKeyEntryName (0 2 262 1 10 7 35) + +OID = 06 07 02 82 06 01 0A 07 24 +Comment = Telesec attribute +Description = glNumber (0 2 262 1 10 7 36) + +OID = 06 07 02 82 06 01 0A 07 25 +Comment = Telesec attribute +Description = goNumber (0 2 262 1 10 7 37) + +OID = 06 07 02 82 06 01 0A 07 26 +Comment = Telesec attribute +Description = gKeyData (0 2 262 1 10 7 38) + +OID = 06 07 02 82 06 01 0A 07 27 +Comment = Telesec attribute +Description = zKeyData (0 2 262 1 10 7 39) + +OID = 06 07 02 82 06 01 0A 07 28 +Comment = Telesec attribute +Description = ktKeyData (0 2 262 1 10 7 40) + +OID = 06 07 02 82 06 01 0A 07 2A +Comment = Telesec attribute +Description = ktKeyNumber (0 2 262 1 10 7 41) + +OID = 06 07 02 82 06 01 0A 07 33 +Comment = Telesec attribute +Description = timeOfRevocationGen (0 2 262 1 10 7 51) + +OID = 06 07 02 82 06 01 0A 07 34 +Comment = Telesec attribute +Description = liabilityText (0 2 262 1 10 7 52) + +OID = 06 06 02 82 06 01 0A 08 +Comment = Telesec +Description = attributeGroup (0 2 262 1 10 8) + +OID = 06 06 02 82 06 01 0A 09 +Comment = Telesec +Description = action (0 2 262 1 10 9) + +OID = 06 06 02 82 06 01 0A 0A +Comment = Telesec +Description = notification (0 2 262 1 10 10) + +OID = 06 06 02 82 06 01 0A 0B +Comment = Telesec +Description = snmp-mibs (0 2 262 1 10 11) + +OID = 06 07 02 82 06 01 0A 0B 01 +Comment = Telesec SNMP MIBs +Description = securityApplication (0 2 262 1 10 11 1) + +OID = 06 06 02 82 06 01 0A 0C +Comment = Telesec +Description = certAndCrlExtensionDefinitions (0 2 262 1 10 12) + +OID = 06 07 02 82 06 01 0A 0C 00 +Comment = Telesec cert/CRL extension +Description = certExtensionLiabilityLimitationExt (0 2 262 1 10 12 0) + +OID = 06 07 02 82 06 01 0A 0C 01 +Comment = Telesec cert/CRL extension +Description = telesecCertIdExt (0 2 262 1 10 12 1) + +OID = 06 07 02 82 06 01 0A 0C 02 +Comment = Telesec cert/CRL extension +Description = Telesec policyIdentifier (0 2 262 1 10 12 2) + +OID = 06 07 02 82 06 01 0A 0C 03 +Comment = Telesec cert/CRL extension +Description = telesecPolicyQualifierID (0 2 262 1 10 12 3) + +OID = 06 07 02 82 06 01 0A 0C 04 +Comment = Telesec cert/CRL extension +Description = telesecCRLFilteredExt (0 2 262 1 10 12 4) + +OID = 06 07 02 82 06 01 0A 0C 05 +Comment = Telesec cert/CRL extension +Description = telesecCRLFilterExt (0 2 262 1 10 12 5) + +OID = 06 07 02 82 06 01 0A 0C 06 +Comment = Telesec cert/CRL extension +Description = telesecNamingAuthorityExt (0 2 262 1 10 12 6) + +# RFC 1274 (X.500 attribute collection from the UK, thus the weird OID). + +OID = 06 0A 09 92 26 89 93 F2 2C 64 01 01 +Comment = Some oddball X.500 attribute collection +Description = userID (0 9 2342 19200300 100 1 1) + +OID = 06 0A 09 92 26 89 93 F2 2C 64 01 03 +Comment = Some oddball X.500 attribute collection +Description = rfc822Mailbox (0 9 2342 19200300 100 1 3) + +# RFC 2247, How to Kludge an FQDN as a DN (or words to that effect), another +# fine product of the UK. + +OID = 06 0A 09 92 26 89 93 F2 2C 64 01 19 +Comment = Men are from Mars, this OID is from Pluto +Description = domainComponent (0 9 2342 19200300 100 1 25) + +# Certificates Australia + +OID = 06 0A 2A 24 A4 97 A3 53 01 64 01 01 +Comment = Certificates Australia CA +Description = Certificates Australia policyIdentifier (1 2 36 75878867 1 100 1 1) + +# Signet + +OID = 06 09 2A 24 A0 F2 A0 7D 01 01 02 +Comment = Signet CA +Description = Signet personal (1 2 36 68980861 1 1 2) + +OID = 06 09 2A 24 A0 F2 A0 7D 01 01 03 +Comment = Signet CA +Description = Signet business (1 2 36 68980861 1 1 3) + +OID = 06 09 2A 24 A0 F2 A0 7D 01 01 04 +Comment = Signet CA +Description = Signet legal (1 2 36 68980861 1 1 4) + +OID = 06 09 2A 24 A0 F2 A0 7D 01 01 0A +Comment = Signet CA +Description = Signet pilot (1 2 36 68980861 1 1 10) + +OID = 06 09 2A 24 A0 F2 A0 7D 01 01 0B +Comment = Signet CA +Description = Signet intraNet (1 2 36 68980861 1 1 11) + +OID = 06 09 2A 24 A0 F2 A0 7D 01 01 14 +Comment = Signet CA +Description = Signet policyIdentifier (1 2 36 68980861 1 1 20) + +# Mitsubishi + +OID = 06 0B 2A 83 08 8C 1A 4B 3D 01 01 01 +Comment = Mitsubishi security algorithm +Description = symmetric-encryption-algorithm (1 2 392 200011 61 1 1 1) + +OID = 06 0C 2A 83 08 8C 9A 4B 3D 01 01 01 01 +Comment = Mitsubishi security algorithm +Description = misty1-cbc (1 2 392 200011 61 1 1 1 1) + +# SEIS + +OID = 06 05 2A 85 70 22 01 +Comment = SEIS Project +Description = seis-cp (1 2 752 34 1) + +OID = 06 06 2A 85 70 22 01 01 +Comment = SEIS Project certificate policies +Description = SEIS high-assurance policyIdentifier (1 2 752 34 1 1) + +OID = 06 06 2A 85 70 22 01 02 +Comment = SEIS Project certificate policies +Description = SEIS GAK policyIdentifier (1 2 752 34 1 2) + +OID = 06 05 2A 85 70 22 02 +Comment = SEIS Project +Description = SEIS pe (1 2 752 34 2) + +OID = 06 05 2A 85 70 22 03 +Comment = SEIS Project +Description = SEIS at (1 2 752 34 3) + +OID = 06 06 2A 85 70 22 03 01 +Comment = SEIS Project attribute +Description = SEIS at-personalIdentifier (1 2 752 34 3 1) + +# ANSI X9.57 + +#OID = 06 06 2A 86 48 CE 38 01 +#Comment = ANSI X9.57 +#Description = module (1 2 840 10040 1) +# conflicts with more useful definition + +OID = 06 07 2A 86 48 CE 38 01 01 +Comment = ANSI X9.57 module +Description = x9f1-cert-mgmt (1 2 840 10040 1 1) + +OID = 06 06 2A 86 48 CE 38 02 +Comment = ANSI X9.57 +Description = holdinstruction (1 2 840 10040 2) + +OID = 06 07 2A 86 48 CE 38 02 01 +Comment = ANSI X9.57 hold instruction +Description = holdinstruction-none (1 2 840 10040 2 1) + +OID = 06 07 2A 86 48 CE 38 02 02 +Comment = ANSI X9.57 hold instruction +Description = callissuer (1 2 840 10040 2 2) + +OID = 06 07 2A 86 48 CE 38 02 03 +Comment = ANSI X9.57 hold instruction +Description = reject (1 2 840 10040 2 3) + +OID = 06 07 2A 86 48 CE 38 02 04 +Comment = ANSI X9.57 hold instruction +Description = pickupToken (1 2 840 10040 2 4) + +#OID = 06 06 2A 86 48 CE 38 03 +#Comment = ANSI X9.57 +#Description = attribute (1 2 840 10040 3) +# conflicts with more useful definition + +#OID = 06 06 2A 86 48 CE 38 03 01 +#Comment = ANSI X9.57 attribute +#Description = countersignature (1 2 840 10040 3 1) +# conflicts with more useful definition + +OID = 06 06 2A 86 48 CE 38 03 02 +Comment = ANSI X9.57 attribute +Description = attribute-cert (1 2 840 10040 3 2) + +#OID = 06 06 2A 86 48 CE 38 04 +#Comment = ANSI X9.57 +#Description = algorithm (1 2 840 10040 4) +# conflicts with more useful definition + +OID = 06 07 2A 86 48 CE 38 04 01 +Comment = ANSI X9.57 algorithm +Description = dsa (1 2 840 10040 4 1) + +OID = 06 07 2A 86 48 CE 38 04 02 +Comment = ANSI X9.57 algorithm +Description = dsa-match (1 2 840 10040 4 2) + +OID = 06 07 2A 86 48 CE 38 04 03 +Comment = ANSI X9.57 algorithm +Description = dsaWithSha1 (1 2 840 10040 4 3) + +# ANSI X9.62 + +#OID = 06 06 2A 86 48 CE 3D 01 +#Comment = ANSI X9.62. This OID is also assigned as ecdsa-with-SHA1 +#Description = fieldType (1 2 840 10045 1) +# conflicts with more useful definition + +OID = 06 07 2A 86 48 CE 3D 01 01 +Comment = ANSI X9.62 field type +Description = prime-field (1 2 840 10045 1 1) + +OID = 06 07 2A 86 48 CE 3D 01 02 +Comment = ANSI X9.62 field type +Description = characteristic-two-field (1 2 840 10045 1 2) + +OID = 06 09 2A 86 48 CE 3D 01 02 03 +Comment = ANSI X9.62 field type +Description = characteristic-two-basis (1 2 840 10045 1 2 3) + +OID = 06 0A 2A 86 48 CE 3D 01 02 03 01 +Comment = ANSI X9.62 field basis +Description = onBasis (1 2 840 10045 1 2 3 1) + +OID = 06 0A 2A 86 48 CE 3D 01 02 03 02 +Comment = ANSI X9.62 field basis +Description = tpBasis (1 2 840 10045 1 2 3 2) + +OID = 06 0A 2A 86 48 CE 3D 01 02 03 03 +Comment = ANSI X9.62 field basis +Description = ppBasis (1 2 840 10045 1 2 3 3) + +# The definition for the following OID is somewhat confused, and is given as +# keyType, publicKeyType, and public-key-type, all within 4 lines of text. +# ecPublicKey is defined using the ID publicKeyType, so this is what's used +# here. +OID = 06 06 2A 86 48 CE 3D 02 +Comment = ANSI X9.62 +Description = publicKeyType (1 2 840 10045 2) + +OID = 06 07 2A 86 48 CE 3D 02 01 +Comment = ANSI X9.62 public key type +Description = ecPublicKey (1 2 840 10045 2 1) + +# ANSI X9.42 + +OID = 06 06 2A 86 48 CE 3E 01 +Comment = ANSI X9.42 +Description = fieldType (1 2 840 10046 1) + +OID = 06 07 2A 86 48 CE 3E 01 01 +Comment = ANSI X9.42 field type +Description = gf-prime (1 2 840 10046 1 1) + +OID = 06 06 2A 86 48 CE 3E 02 +Comment = ANSI X9.42 +Description = numberType (1 2 840 10046 2) + +OID = 06 07 2A 86 48 CE 3E 02 01 +Comment = ANSI X9.42 number type +Description = dhPublicKey (1 2 840 10046 2 1) + +OID = 06 06 2A 86 48 CE 3E 03 +Comment = ANSI X9.42 +Description = scheme (1 2 840 10046 3) + +OID = 06 07 2A 86 48 CE 3E 03 01 +Comment = ANSI X9.42 scheme +Description = dhStatic (1 2 840 10046 3 1) + +OID = 06 07 2A 86 48 CE 3E 03 02 +Comment = ANSI X9.42 scheme +Description = dhEphem (1 2 840 10046 3 2) + +OID = 06 07 2A 86 48 CE 3E 03 03 +Comment = ANSI X9.42 scheme +Description = dhHybrid1 (1 2 840 10046 3 3) + +OID = 06 07 2A 86 48 CE 3E 03 04 +Comment = ANSI X9.42 scheme +Description = dhHybrid2 (1 2 840 10046 3 4) + +OID = 06 07 2A 86 48 CE 3E 03 05 +Comment = ANSI X9.42 scheme +Description = mqv2 (1 2 840 10046 3 5) + +OID = 06 07 2A 86 48 CE 3E 03 06 +Comment = ANSI X9.42 scheme +Description = mqv1 (1 2 840 10046 3 6) + +# Nortel Secure Networks/Entrust + +OID = 06 07 2A 86 48 86 F6 7D 07 +Description = nsn (1 2 840 113533 7) + +OID = 06 08 2A 86 48 86 F6 7D 07 41 +Description = nsn-ce (1 2 840 113533 7 65) + +OID = 06 09 2A 86 48 86 F6 7D 07 41 00 +Comment = Nortel Secure Networks ce (1 2 840 113533 7 65) +Description = entrustVersInfo (1 2 840 113533 7 65 0) + +OID = 06 08 2A 86 48 86 F6 7D 07 42 +Description = nsn-alg (1 2 840 113533 7 66) + +OID = 06 09 2A 86 48 86 F6 7D 07 42 03 +Comment = Nortel Secure Networks alg (1 2 840 113533 7 66) +Description = cast3CBC (1 2 840 113533 7 66 3) + +OID = 06 09 2A 86 48 86 F6 7D 07 42 0A +Comment = Nortel Secure Networks alg (1 2 840 113533 7 66) +Description = cast5CBC (1 2 840 113533 7 66 10) + +OID = 06 09 2A 86 48 86 F6 7D 07 42 0B +Comment = Nortel Secure Networks alg (1 2 840 113533 7 66) +Description = cast5MAC (1 2 840 113533 7 66 11) + +OID = 06 09 2A 86 48 86 F6 7D 07 42 0C +Comment = Nortel Secure Networks alg (1 2 840 113533 7 66) +Description = pbeWithMD5AndCAST5-CBC (1 2 840 113533 7 66 12) + +OID = 06 09 2A 86 48 86 F6 7D 07 42 0D +Comment = Nortel Secure Networks alg (1 2 840 113533 7 66) +Description = passwordBasedMac (1 2 840 113533 7 66 13) + +OID = 06 08 2A 86 48 86 F6 7D 07 43 +Description = nsn-oc (1 2 840 113533 7 67) + +OID = 06 09 2A 86 48 86 F6 7D 07 43 0C +Comment = Nortel Secure Networks oc (1 2 840 113533 7 67) +Description = entrustUser (1 2 840 113533 7 67 0) + +OID = 06 08 2A 86 48 86 F6 7D 07 44 +Description = nsn-at (1 2 840 113533 7 68) + +OID = 06 09 2A 86 48 86 F6 7D 07 44 00 +Comment = Nortel Secure Networks at (1 2 840 113533 7 68) +Description = entrustCAInfo (1 2 840 113533 7 68 0) + +OID = 06 09 2A 86 48 86 F6 7D 07 44 0A +Comment = Nortel Secure Networks at (1 2 840 113533 7 68) +Description = attributeCertificate (1 2 840 113533 7 68 10) + +# PKCS #1 + +OID = 06 08 2A 86 48 86 F7 0D 01 01 +Description = pkcs-1 (1 2 840 113549 1 1) + +OID = 06 09 2A 86 48 86 F7 0D 01 01 01 +Comment = PKCS #1 +Description = rsaEncryption (1 2 840 113549 1 1 1) + +OID = 06 09 2A 86 48 86 F7 0D 01 01 02 +Comment = PKCS #1 +Description = md2withRSAEncryption (1 2 840 113549 1 1 2) + +OID = 06 09 2A 86 48 86 F7 0D 01 01 03 +Comment = PKCS #1 +Description = md4withRSAEncryption (1 2 840 113549 1 1 3) + +OID = 06 09 2A 86 48 86 F7 0D 01 01 04 +Comment = PKCS #1 +Description = md5withRSAEncryption (1 2 840 113549 1 1 4) + +OID = 06 09 2A 86 48 86 F7 0D 01 01 05 +Comment = PKCS #1 +Description = sha1withRSAEncryption (1 2 840 113549 1 1 5) + +# There is some confusion over the identity of the following OID. The OAEP +# one is more recent, but independant vendors have already used the RIPEMD +# one, however it's likely that SET will be a bigger hammer (at least as a +# standard) so we report it as that. +OID = 06 09 2A 86 48 86 F7 0D 01 01 06 +Comment = PKCS #1. This OID may also be assigned as ripemd160WithRSAEncryption +#Description = rsaOAEPEncryptionSET (1 2 840 113549 1 1 6) +Description = ripemd160WithRSAEncryption (1 2 840 113549 1 1 6) +# ripemd160WithRSAEncryption (1 2 840 113549 1 1 6) + +# BSAFE/PKCS #2 (obsolete) + +OID = 06 08 2A 86 48 86 F7 0D 01 01 +Comment = Obsolete BSAFE OID +Description = bsafeRsaEncr (1 2 840 113549 1 2) +Warning + +# PKCS #3 + +OID = 06 08 2A 86 48 86 F7 0D 01 03 +Description = pkcs-3 (1 2 840 113549 1 3) + +OID = 06 09 2A 86 48 86 F7 0D 01 03 01 +Comment = PKCS #3 +Description = dhKeyAgreement (1 2 840 113549 1 3 1) + +# PKCS #5 + +OID = 06 09 2A 86 48 86 F7 0D 01 05 +Description = pkcs-5 (1 2 840 113549 1 5) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 01 +Comment = PKCS #5 +Description = pbeWithMD2AndDES-CBC (1 2 840 113549 1 5 1) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 03 +Comment = PKCS #5 +Description = pbeWithMD5AndDES-CBC (1 2 840 113549 1 5 3) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 04 +Comment = PKCS #5 +Description = pbeWithMD2AndRC2-CBC (1 2 840 113549 1 5 4) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 06 +Comment = PKCS #5 +Description = pbeWithMD5AndRC2-CBC (1 2 840 113549 1 5 6) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 09 +Comment = PKCS #5, used in BSAFE only +Description = pbeWithMD5AndXOR (1 2 840 113549 1 5 9) +Warning + +OID = 06 09 2A 86 48 86 F7 0D 01 05 0A +Comment = PKCS #5 +Description = pbeWithSHAAndDES-CBC (1 2 840 113549 1 5 10) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 0C +Comment = PKCS #5 v2.0 +Description = pkcs5PBKDF2 (1 2 840 113549 1 5 12) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 0D +Comment = PKCS #5 v2.0 +Description = pkcs5PBES2 (1 2 840 113549 1 5 13) + +OID = 06 09 2A 86 48 86 F7 0D 01 05 0E +Comment = PKCS #5 v2.0 +Description = pkcs5PBMAC1 (1 2 840 113549 1 5 14) + +# PKCS #7 + +OID = 06 09 2A 86 48 86 F7 0D 01 07 +Description = pkcs-7 (1 2 840 113549 1 7) + +OID = 06 09 2A 86 48 86 F7 0D 01 07 01 +Comment = PKCS #7 +Description = data (1 2 840 113549 1 7 1) + +OID = 06 09 2A 86 48 86 F7 0D 01 07 02 +Comment = PKCS #7 +Description = signedData (1 2 840 113549 1 7 2) + +OID = 06 09 2A 86 48 86 F7 0D 01 07 03 +Comment = PKCS #7 +Description = envelopedData (1 2 840 113549 1 7 3) + +OID = 06 09 2A 86 48 86 F7 0D 01 07 04 +Comment = PKCS #7 +Description = signedAndEnvelopedData (1 2 840 113549 1 7 4) + +OID = 06 09 2A 86 48 86 F7 0D 01 07 05 +Comment = PKCS #7 +Description = digestedData (1 2 840 113549 1 7 5) + +OID = 06 09 2A 86 48 86 F7 0D 01 07 06 +Comment = PKCS #7 +Description = encryptedData (1 2 840 113549 1 7 6) + +OID = 06 09 2A 86 48 86 F7 0D 01 07 07 +Comment = PKCS #7 experimental +Description = dataWithAttributes (1 2 840 113549 1 7 7) +Warning + +OID = 06 09 2A 86 48 86 F7 0D 01 07 08 +Comment = PKCS #7 experimental +Description = encryptedPrivateKeyInfo (1 2 840 113549 1 7 8) +Warning + +# PKCS #9 + +OID = 06 09 2A 86 48 86 F7 0D 01 09 +Description = pkcs-9 (1 2 840 113549 1 9) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 01 +Comment = PKCS #9 (1 2 840 113549 1 9). Deprecated, use an altName extension instead +Description = emailAddress (1 2 840 113549 1 9 1) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 02 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = unstructuredName (1 2 840 113549 1 9 2) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 03 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = contentType (1 2 840 113549 1 9 3) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 04 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = messageDigest (1 2 840 113549 1 9 4) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 05 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = signingTime (1 2 840 113549 1 9 5) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 06 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = countersignature (1 2 840 113549 1 9 6) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 07 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = challengePassword (1 2 840 113549 1 9 7) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 08 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = unstructuredAddress (1 2 840 113549 1 9 8) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 09 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = extendedCertificateAttributes (1 2 840 113549 1 9 9) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 0A +Comment = PKCS #9 (1 2 840 113549 1 9) experimental +Description = issuerAndSerialNumber (1 2 840 113549 1 9 10) +Warning + +OID = 06 09 2A 86 48 86 F7 0D 01 09 0B +Comment = PKCS #9 (1 2 840 113549 1 9) experimental +Description = passwordCheck (1 2 840 113549 1 9 11) +Warning + +OID = 06 09 2A 86 48 86 F7 0D 01 09 0C +Comment = PKCS #9 (1 2 840 113549 1 9) experimental +Description = publicKey (1 2 840 113549 1 9 12) +Warning + +OID = 06 09 2A 86 48 86 F7 0D 01 09 0D +Comment = PKCS #9 (1 2 840 113549 1 9) experimental +Description = signingDescription (1 2 840 113549 1 9 13) +Warning + +OID = 06 09 2A 86 48 86 F7 0D 01 09 0E +Comment = PKCS #9 (1 2 840 113549 1 9) experimental +Description = extensionReq (1 2 840 113549 1 9 14) + +# PKCS #9 for use with S/MIME + +OID = 06 09 2A 86 48 86 F7 0D 01 09 0F +Comment = PKCS #9 (1 2 840 113549 1 9). This OID was formerly assigned as symmetricCapabilities, then reassigned as SMIMECapabilities, then renamed to the current name +Description = sMIMECapabilities (1 2 840 113549 1 9 15) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 0F 01 +Comment = sMIMECapabilities (1 2 840 113549 1 9 15) +Description = preferSignedData (1 2 840 113549 1 9 15 1) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 0F 02 +Comment = sMIMECapabilities (1 2 840 113549 1 9 15) +Description = canNotDecryptAny (1 2 840 113549 1 9 15 2) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 0F 03 +Comment = sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 1) instead +Description = receiptRequest (1 2 840 113549 1 9 15 3) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 0F 04 +Comment = sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 1 1) instead +Description = receipt (1 2 840 113549 1 9 15 4) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 0F 05 +Comment = sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 4) instead +Description = contentHints (1 2 840 113549 1 9 15 5) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 0F 06 +Comment = sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 3) instead +Description = mlExpansionHistory (1 2 840 113549 1 9 15 6) +Warning + +OID = 06 09 2A 86 48 86 F7 0D 01 09 10 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = id-sMIME (1 2 840 113549 1 9 16) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 10 00 +Comment = id-sMIME (1 2 840 113549 1 9 16) +Description = id-mod (1 2 840 113549 1 9 16 0) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 01 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-cms (1 2 840 113549 1 9 16 0 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 02 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-ess (1 2 840 113549 1 9 16 0 2) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 03 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-oid (1 2 840 113549 1 9 16 0 3) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 04 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-msg-v3 (1 2 840 113549 1 9 16 0 4) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 05 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-ets-eSignature-88 (1 2 840 113549 1 9 16 0 5) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 06 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-ets-eSignature-97 (1 2 840 113549 1 9 16 0 6) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 07 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-ets-eSigPolicy-88 (1 2 840 113549 1 9 16 0 7) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 00 08 +Comment = S/MIME Modules (1 2 840 113549 1 9 16 0) +Description = id-mod-ets-eSigPolicy-97 (1 2 840 113549 1 9 16 0 8) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 10 01 +Comment = id-sMIME (1 2 840 113549 1 9 16) +Description = id-ct (1 2 840 113549 1 9 16 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 01 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-receipt (1 2 840 113549 1 9 16 1 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 02 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-authData (1 2 840 113549 1 9 16 1 2) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 03 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-publishCert (1 2 840 113549 1 9 16 1 3) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 04 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-TSTInfo (1 2 840 113549 1 9 16 1 4) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 05 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-TDTInfo (1 2 840 113549 1 9 16 1 5) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 06 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-contentInfo (1 2 840 113549 1 9 16 1 6) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 07 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-DVCSRequestData (1 2 840 113549 1 9 16 1 7) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 08 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-DVCSResponseData (1 2 840 113549 1 9 16 1 8) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 01 07 +Comment = S/MIME Content Types (1 2 840 113549 1 9 16 1) +Description = id-ct-compressedData (1 2 840 113549 1 9 16 1 9) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 10 02 +Comment = id-sMIME (1 2 840 113549 1 9 16) +Description = id-aa (1 2 840 113549 1 9 16 2) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 01 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-receiptRequest (1 2 840 113549 1 9 16 2 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 02 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-securityLabel (1 2 840 113549 1 9 16 2 2) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 03 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-mlExpandHistory (1 2 840 113549 1 9 16 2 3) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 04 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-contentHint (1 2 840 113549 1 9 16 2 4) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 05 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-msgSigDigest (1 2 840 113549 1 9 16 2 5) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 06 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2). Obsolete +Description = id-aa-encapContentType (1 2 840 113549 1 9 16 2 6) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 07 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-contentIdentifier (1 2 840 113549 1 9 16 2 7) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 08 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2). Obsolete +Description = id-aa-macValue (1 2 840 113549 1 9 16 2 8) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 09 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-equivalentLabels (1 2 840 113549 1 9 16 2 9) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 0A +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-contentReference (1 2 840 113549 1 9 16 2 10) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 0B +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-encrypKeyPref (1 2 840 113549 1 9 16 2 11) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 0C +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-signingCertificate (1 2 840 113549 1 9 16 2 12) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 0D +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-smimeEncryptCerts (1 2 840 113549 1 9 16 2 13) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 0E +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-timeStampToken (1 2 840 113549 1 9 16 2 14) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 0F +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-sigPolicyId (1 2 840 113549 1 9 16 2 15) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 10 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-commitmentType (1 2 840 113549 1 9 16 2 16) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 11 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-signerLocation (1 2 840 113549 1 9 16 2 17) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 12 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-signerAttr (1 2 840 113549 1 9 16 2 18) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 13 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-otherSigCert (1 2 840 113549 1 9 16 2 19) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 14 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-contentTimestamp (1 2 840 113549 1 9 16 2 20) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 15 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-CertificateRefs (1 2 840 113549 1 9 16 2 21) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 16 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-RevocationRefs (1 2 840 113549 1 9 16 2 22) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 17 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-certValues (1 2 840 113549 1 9 16 2 23) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 18 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-revocationValues (1 2 840 113549 1 9 16 2 24) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 19 +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-escTimeStamp (1 2 840 113549 1 9 16 2 25) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 1A +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-certCRLTimestamp (1 2 840 113549 1 9 16 2 26) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 1B +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-ets-archiveTimeStamp (1 2 840 113549 1 9 16 2 27) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 1C +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-signatureType (1 2 840 113549 1 9 16 2 28) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 02 1D +Comment = S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2) +Description = id-aa-dvcs-dvc (1 2 840 113549 1 9 16 2 29) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 01 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete +Description = id-alg-ESDHwith3DES (1 2 840 113549 1 9 16 3 1) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 02 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete +Description = id-alg-ESDHwithRC2 (1 2 840 113549 1 9 16 3 2) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 03 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete +Description = id-alg-3DESwrap (1 2 840 113549 1 9 16 3 3) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 04 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete +Description = id-alg-RC2wrap (1 2 840 113549 1 9 16 3 4) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 05 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3) +Description = id-alg-ESDH (1 2 840 113549 1 9 16 3 5) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 06 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3) +Description = id-alg-CMS3DESwrap (1 2 840 113549 1 9 16 3 6) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 07 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3) +Description = id-alg-CMSRC2wrap (1 2 840 113549 1 9 16 3 7) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 08 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3) +Description = id-alg-zlib (1 2 840 113549 1 9 16 3 8) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 03 09 +Comment = S/MIME Algorithms (1 2 840 113549 1 9 16 3) +Description = id-alg-PWRI-KEK (1 2 840 113549 1 9 16 3 9) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 04 01 +Comment = S/MIME Certificate Distribution (1 2 840 113549 1 9 16 4) +Description = id-cd-ldap (1 2 840 113549 1 9 16 4 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 05 01 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 5) +Description = id-spq-ets-sqt-uri (1 2 840 113549 1 9 16 5 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 05 02 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 5) +Description = id-spq-ets-sqt-unotice (1 2 840 113549 1 9 16 5 2) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 06 01 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6) +Description = id-cti-ets-proofOfOrigin (1 2 840 113549 1 9 16 6 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 06 02 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6) +Description = id-cti-ets-proofOfReceipt (1 2 840 113549 1 9 16 6 2) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 06 03 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6) +Description = id-cti-ets-proofOfDelivery (1 2 840 113549 1 9 16 6 3) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 06 04 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6) +Description = id-cti-ets-proofOfSender (1 2 840 113549 1 9 16 6 4) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 06 05 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6) +Description = id-cti-ets-proofOfApproval (1 2 840 113549 1 9 16 6 5) + +OID = 06 0B 2A 86 48 86 F7 0D 01 09 10 06 06 +Comment = S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6) +Description = id-cti-ets-proofOfCreation (1 2 840 113549 1 9 16 6 6) + +# PKCS #9 for use with PKCS #12 + +OID = 06 09 2A 86 48 86 F7 0D 01 09 14 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = friendlyName (for PKCS #12) (1 2 840 113549 1 9 20) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 15 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = localKeyID (for PKCS #12) (1 2 840 113549 1 9 21) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 16 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = certTypes (for PKCS #12) (1 2 840 113549 1 9 22) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 16 01 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = x509Certificate (for PKCS #12) (1 2 840 113549 1 9 22 1) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 16 02 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = sdsiCertificate (for PKCS #12) (1 2 840 113549 1 9 22 2) + +OID = 06 09 2A 86 48 86 F7 0D 01 09 17 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = crlTypes (for PKCS #12) (1 2 840 113549 1 9 23) + +OID = 06 0A 2A 86 48 86 F7 0D 01 09 17 01 +Comment = PKCS #9 (1 2 840 113549 1 9) +Description = x509Crl (for PKCS #12) (1 2 840 113549 1 9 23 1) + +# PKCS #12. Note that current PKCS #12 implementations tend to be strange and +# peculiar, with implementors misusing OIDs or basing their work on earlier PFX +# drafts or defining their own odd OIDs. In addition the PFX/PKCS #12 spec +# itself is full of errors and inconsistencies, and a number of OIDs have been +# redefined in different drafts (often multiple times), which doesn't make the +# implementors job any easier. + +OID = 06 08 2A 86 48 86 F7 0D 01 0C +Description = pkcs-12 (1 2 840 113549 1 12) + +OID = 06 09 2A 86 48 86 F7 0D 01 0C 01 +Comment = This OID was formerly assigned as PKCS #12 modeID +Description = pkcs-12-PbeIds (1 2 840 113549 1 12 1) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 01 01 +Comment = PKCS #12 PbeIds (1 2 840 113549 1 12 1). This OID was formerly assigned as pkcs-12-OfflineTransportMode +Description = pbeWithSHAAnd128BitRC4 (1 2 840 113549 1 12 1 1) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 01 02 +Comment = PKCS #12 PbeIds (1 2 840 113549 1 12 2). This OID was formerly assigned as pkcs-12-OnlineTransportMode +Description = pbeWithSHAAnd40BitRC4 (1 2 840 113549 1 12 1 2) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 01 03 +Comment = PKCS #12 PbeIds (1 2 840 113549 1 12 3) +Description = pbeWithSHAAnd3-KeyTripleDES-CBC (1 2 840 113549 1 12 1 3) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 01 04 +Comment = PKCS #12 PbeIds (1 2 840 113549 1 12 3) +Description = pbeWithSHAAnd2-KeyTripleDES-CBC (1 2 840 113549 1 12 1 4) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 01 05 +Comment = PKCS #12 PbeIds (1 2 840 113549 1 12 3) +Description = pbeWithSHAAnd128BitRC2-CBC (1 2 840 113549 1 12 1 5) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 01 06 +Comment = PKCS #12 PbeIds (1 2 840 113549 1 12 3) +Description = pbeWithSHAAnd40BitRC2-CBC (1 2 840 113549 1 12 1 6) + +OID = 06 09 2A 86 48 86 F7 0D 01 0C 02 +Comment = Deprecated +Description = pkcs-12-ESPVKID (1 2 840 113549 1 12 2) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 02 01 +Comment = PKCS #12 ESPVKID (1 2 840 113549 1 12 2). Deprecated, use (1 2 840 113549 1 12 3 5) instead +Description = pkcs-12-PKCS8KeyShrouding (1 2 840 113549 1 12 2 1) +Warning + +# The following appear to have been redefined yet again at 12 10 in the latest +# PKCS #12 spec. +OID = 06 09 2A 86 48 86 F7 0D 01 0C 03 +Description = pkcs-12-BagIds (1 2 840 113549 1 12 3) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 03 01 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 3) +Description = pkcs-12-keyBagId (1 2 840 113549 1 12 3 1) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 03 02 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 3) +Description = pkcs-12-certAndCRLBagId (1 2 840 113549 1 12 3 2) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 03 03 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 3) +Description = pkcs-12-secretBagId (1 2 840 113549 1 12 3 3) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 03 04 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 3) +Description = pkcs-12-safeContentsId (1 2 840 113549 1 12 3 4) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 03 05 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 3) +Description = pkcs-12-pkcs-8ShroudedKeyBagId (1 2 840 113549 1 12 3 5) + +OID = 06 09 2A 86 48 86 F7 0D 01 0C 04 +Comment = Deprecated +Description = pkcs-12-CertBagID (1 2 840 113549 1 12 4) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 04 01 +Comment = PKCS #12 CertBagID (1 2 840 113549 1 12 4). This OID was formerly assigned as pkcs-12-X509CertCRLBag +Description = pkcs-12-X509CertCRLBagID (1 2 840 113549 1 12 4 1) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 04 02 +Comment = PKCS #12 CertBagID (1 2 840 113549 1 12 4). This OID was formerly assigned as pkcs-12-SDSICertBag +Description = pkcs-12-SDSICertBagID (1 2 840 113549 1 12 4 2) + +# The following are from PFX. The ... 5 1 values have been reassigned to OIDs +# with incompatible algorithms at ... 1, the 5 2 values seem to have vanished. +OID = 06 09 2A 86 48 86 F7 0D 01 0C 05 +Description = pkcs-12-OID (1 2 840 113549 1 12 5) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 05 01 +Comment = PKCS #12 OID (1 2 840 113549 1 12 5). Deprecated, use the partially compatible (1 2 840 113549 1 12 1) OIDs instead +Description = pkcs-12-PBEID (1 2 840 113549 1 12 5 1) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 01 01 +Comment = PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 1) instead +Description = pkcs-12-PBEWithSha1And128BitRC4 (1 2 840 113549 1 12 5 1 1) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 01 02 +Comment = PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 2) instead +Description = pkcs-12-PBEWithSha1And40BitRC4 (1 2 840 113549 1 12 5 1 2) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 01 03 +Comment = PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 3) or (1 2 840 113549 1 12 1 4) instead +Description = pkcs-12-PBEWithSha1AndTripleDESCBC (1 2 840 113549 1 12 5 1 3) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 01 04 +Comment = PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 5) instead +Description = pkcs-12-PBEWithSha1And128BitRC2CBC (1 2 840 113549 1 12 5 1 4) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 01 05 +Comment = PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 6) instead +Description = pkcs-12-PBEWithSha1And40BitRC2CBC (1 2 840 113549 1 12 5 1 5) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 01 06 +Comment = PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 1) or (1 2 840 113549 1 12 1 2) instead +Description = pkcs-12-PBEWithSha1AndRC4 (1 2 840 113549 1 12 5 1 6) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 01 07 +Comment = PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 5) or (1 2 840 113549 1 12 1 6) instead +Description = pkcs-12-PBEWithSha1AndRC2CBC (1 2 840 113549 1 12 5 1 7) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 05 02 +Description = pkcs-12-EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 02 01 +Comment = PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead +Description = pkcs-12-RSAEncryptionWith128BitRC4 (1 2 840 113549 1 12 5 2 1) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 02 02 +Comment = PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead +Description = pkcs-12-RSAEncryptionWith40BitRC4 (1 2 840 113549 1 12 5 2 2) +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 02 03 +Comment = PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead +Description = pkcs-12-RSAEncryptionWithTripleDES (1 2 840 113549 1 12 5 2 3) +Warning + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 05 03 +Description = pkcs-12-SignatureID (1 2 840 113549 1 12 5 3). Deprecated, use the conventional PKCS #1 OIDs instead +Warning + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 05 03 01 +Comment = PKCS #12 OID SignatureID (1 2 840 113549 1 12 5 3). Deprecated, use the conventional PKCS #1 OIDs instead +Description = pkcs-12-RSASignatureWithSHA1Digest (1 2 840 113549 1 12 5 3 1) +Warning + +# Yet *another* redefinition of the PKCS #12 "bag" ID's, now in a different +# order than the last redefinition at ... 12 3. +OID = 06 09 2A 86 48 86 F7 0D 01 0C 0A +Description = pkcs-12Version1 (1 2 840 113549 1 12 10) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0C 0A 01 +Description = pkcs-12BadIds (1 2 840 113549 1 12 10 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 01 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 10 1) +Description = pkcs-12-keyBag (1 2 840 113549 1 12 10 1 1) + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 02 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 10 1) +Description = pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2) + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 03 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 10 1) +Description = pkcs-12-certBag (1 2 840 113549 1 12 10 1 3) + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 04 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 10 1) +Description = pkcs-12-crlBag (1 2 840 113549 1 12 10 1 4) + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 05 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 10 1) +Description = pkcs-12-secretBag (1 2 840 113549 1 12 10 1 5) + +OID = 06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 06 +Comment = PKCS #12 BagIds (1 2 840 113549 1 12 10 1) +Description = pkcs-12-safeContentsBag (1 2 840 113549 1 12 10 1 6) + +# PKCS #15 + +OID = 06 09 2A 86 48 86 F7 0D 01 0F 01 +Comment = PKCS #15 +Description = pkcs15modules (1 2 840 113549 1 15 1) + +OID = 06 09 2A 86 48 86 F7 0D 01 0F 02 +Comment = PKCS #15 +Description = pkcs15attributes (1 2 840 113549 1 15 2) + +OID = 06 09 2A 86 48 86 F7 0D 01 0F 03 +Comment = PKCS #15 +Description = pkcs15contentType (1 2 840 113549 1 15 3) + +OID = 06 0A 2A 86 48 86 F7 0D 01 0F 03 01 +Comment = PKCS #15 content type +Description = pkcs15content (1 2 840 113549 1 15 3 1) + +# RSADSI digest algorithms + +OID = 06 08 2A 86 48 86 F7 0D 02 +Description = digestAlgorithm (1 2 840 113549 2) + +OID = 06 08 2A 86 48 86 F7 0D 02 02 +Comment = RSADSI digestAlgorithm (1 2 840 113549 2) +Description = md2 (1 2 840 113549 2 2) + +#OID = 06 08 2A 86 48 86 F7 0D 02 04 +#Comment = RSADSI digestAlgorithm (1 2 840 113549 2) +#Description = md4 (1 2 840 113549 2 4) +# conflicts with more useful definition + +#OID = 06 08 2A 86 48 86 F7 0D 02 05 +#Comment = RSADSI digestAlgorithm (1 2 840 113549 2) +#Description = md5 (1 2 840 113549 2 5) +# conflicts with more useful definition + +OID = 06 08 2A 86 48 86 F7 0D 02 07 +Comment = RSADSI digestAlgorithm (1 2 840 113549 2) +Description = hmacWithSHA1 (1 2 840 113549 2 7) + +# RSADSI encryption algorithms + +OID = 06 08 2A 86 48 86 F7 0D 03 +Description = encryptionAlgorithm (1 2 840 113549 3) + +OID = 06 08 2A 86 48 86 F7 0D 03 02 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = rc2CBC (1 2 840 113549 3 2) + +OID = 06 08 2A 86 48 86 F7 0D 03 03 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = rc2ECB (1 2 840 113549 3 3) + +OID = 06 08 2A 86 48 86 F7 0D 03 04 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = rc4 (1 2 840 113549 3 4) + +OID = 06 08 2A 86 48 86 F7 0D 03 05 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = rc4WithMAC (1 2 840 113549 3 5) + +OID = 06 08 2A 86 48 86 F7 0D 03 06 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = desx-CBC (1 2 840 113549 3 6) + +OID = 06 08 2A 86 48 86 F7 0D 03 07 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = des-EDE3-CBC (1 2 840 113549 3 7) + +OID = 06 08 2A 86 48 86 F7 0D 03 08 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = rc5CBC (1 2 840 113549 3 8) + +OID = 06 08 2A 86 48 86 F7 0D 03 09 +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3) +Description = rc5-CBCPad (1 2 840 113549 3 9) + +OID = 06 08 2A 86 48 86 F7 0D 03 0A +Comment = RSADSI encryptionAlgorithm (1 2 840 113549 3). Formerly called CDMFCBCPad +Description = desCDMF (1 2 840 113549 3 10) + +# Identrus + +OID = 06 09 2A 86 48 86 FA 65 01 06 01 +Comment = Identrus +Description = Identrus unknown policyIdentifier (1 2 840 114021 1 6 1) + +OID = 06 08 2A 86 48 86 FA 65 04 01 +Comment = Identrus +Description = identrusOCSP (1 2 840 114021 4 1) + +# Ascom Systech + +OID = 06 0A 2B 06 01 04 01 81 3C 07 01 01 +Comment = Ascom Systech +Description = ascom (1 3 6 1 4 1 188 7 1 1) + +#OID = 06 0B 2B 06 01 04 01 81 3C 07 01 01 01 +#Comment = Ascom Systech +#Description = ideaECB (1 3 6 1 4 1 188 7 1 1 1) +# conflicts with more useful definition + +#OID = 06 0B 2B 06 01 04 01 81 3C 07 01 01 02 +#Comment = Ascom Systech +#Description = ideaCBC (1 3 6 1 4 1 188 7 1 1 2) +# conflicts with more useful definition + +#OID = 06 0B 2B 06 01 04 01 81 3C 07 01 01 03 +#Comment = Ascom Systech +#Description = ideaCFB (1 3 6 1 4 1 188 7 1 1 3) +# conflicts with more useful definition + +#OID = 06 0B 2B 06 01 04 01 81 3C 07 01 01 04 +#Comment = Ascom Systech +#Description = ideaOFB (1 3 6 1 4 1 188 7 1 1 4) +# conflicts with more useful definition + +# Microsoft + +OID = 06 09 2A 86 48 86 F7 14 01 03 00 +Comment = Microsoft Exchange Server - object class +Description = site-Addressing (1 2 840 113556 1 3 00) + +OID = 06 09 2A 86 48 86 F7 14 01 03 0D +Comment = Microsoft Exchange Server - object class +Description = classSchema (1 2 840 113556 1 3 13) + +OID = 06 09 2A 86 48 86 F7 14 01 03 0E +Comment = Microsoft Exchange Server - object class +Description = attributeSchema (1 2 840 113556 1 3 14) + +OID = 06 09 2A 86 48 86 F7 14 01 03 11 +Comment = Microsoft Exchange Server - object class +Description = mailbox-Agent (1 2 840 113556 1 3 174) + +OID = 06 09 2A 86 48 86 F7 14 01 03 16 +Comment = Microsoft Exchange Server - object class +Description = mailbox (1 2 840 113556 1 3 22) + +OID = 06 09 2A 86 48 86 F7 14 01 03 17 +Comment = Microsoft Exchange Server - object class +Description = container (1 2 840 113556 1 3 23) + +OID = 06 09 2A 86 48 86 F7 14 01 03 2E +Comment = Microsoft Exchange Server - object class +Description = mailRecipient (1 2 840 113556 1 3 46) + +OID = 06 09 2A 86 48 86 F7 14 01 02 81 71 +Comment = Microsoft Exchange Server - attribute +Description = deliveryMechanism (1 2 840 113556 1 2 241) + +OID = 06 08 2A 86 48 86 F7 14 04 03 +Comment = Microsoft +Description = microsoftExcel (1 2 840 113556 4 3) + +OID = 06 08 2A 86 48 86 F7 14 04 04 +Comment = Microsoft +Description = titledWithOID (1 2 840 113556 4 4) + +OID = 06 08 2A 86 48 86 F7 14 04 05 +Comment = Microsoft +Description = microsoftPowerPoint (1 2 840 113556 4 5) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 04 +Comment = Microsoft code signing +Description = spcIndirectDataContext (1 3 6 1 4 1 311 2 1 4) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 0A +Comment = Microsoft code signing. Also known as policyLink +Description = spcAgencyInfo (1 3 6 1 4 1 311 2 1 10) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 0B +Comment = Microsoft code signing +Description = spcStatementType (1 3 6 1 4 1 311 2 1 11) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 0C +Comment = Microsoft code signing +Description = spcSpOpusInfo (1 3 6 1 4 1 311 2 1 12) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 0E +Comment = Microsoft +Description = certReqExtensions (1 3 6 1 4 1 311 2 1 14) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 0F +Comment = Microsoft code signing +Description = spcPelmageData (1 3 6 1 4 1 311 2 1 15) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 14 +Comment = Microsoft code signing. Also known as "glue extension" +Description = spcLink (type 1) (1 3 6 1 4 1 311 2 1 20) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 15 +Comment = Microsoft +Description = individualCodeSigning (1 3 6 1 4 1 311 2 1 21) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 16 +Comment = Microsoft +Description = commercialCodeSigning (1 3 6 1 4 1 311 2 1 22) + +#OID = 06 0A 2B 06 01 04 01 82 37 02 01 19 +#Comment = Microsoft code signing. Also known as "glue extension" +#Description = spcLink (type 2) (1 3 6 1 4 1 311 2 1 25) +# conflicts with more useful definition + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 1A +Comment = Microsoft code signing +Description = spcMinimalCriteriaInfo (1 3 6 1 4 1 311 2 1 26) + +OID = 06 0A 2B 06 01 04 01 82 37 02 01 1B +Comment = Microsoft code signing +Description = spcFinancialCriteriaInfo (1 3 6 1 4 1 311 2 1 27) + +#OID = 06 0A 2B 06 01 04 01 82 37 02 01 1C +#Comment = Microsoft code signing. Also known as "glue extension" +#Description = spcLink (type 3) (1 3 6 1 4 1 311 2 1 28) +# conflicts with more useful definition + +OID = 06 0A 2B 06 01 04 01 82 37 03 02 01 +Comment = Microsoft code signing +Description = timestampCountersignature (1 3 6 1 4 1 311 3 2 1) + +OID = 06 09 2B 06 01 04 01 82 37 0A 01 +Comment = Microsoft PKCS #7 contentType +Description = certTrustList (1 3 6 1 4 1 311 10 1) + +OID = 06 09 2B 06 01 04 01 82 37 0A 02 +Comment = Microsoft +Description = nextUpdateLocation (1 3 6 1 4 1 311 10 2) + +OID = 06 0A 2B 06 01 04 01 82 37 0A 03 01 +Comment = Microsoft enhanced key usage +Description = certTrustListSigning (1 3 6 1 4 1 311 10 3 1) + +OID = 06 0A 2B 06 01 04 01 82 37 0A 03 02 +Comment = Microsoft enhanced key usage +Description = timeStampSigning (1 3 6 1 4 1 311 10 3 2) + +#OID = 06 0A 2B 06 01 04 01 82 37 0A 03 03 +#Comment = Microsoft enhanced key usage +#Description = serverGatedCrypto (1 3 6 1 4 1 311 10 3 3) +# conflicts with more useful definition + +OID = 06 0A 2B 06 01 04 01 82 37 0A 03 04 +Comment = Microsoft enhanced key usage +Description = encryptedFileSystem (1 3 6 1 4 1 311 10 3 4) + +OID = 06 0A 2B 06 01 04 01 82 37 0A 04 01 +Comment = Microsoft attribute +Description = yesnoTrustAttr (1 3 6 1 4 1 311 10 4 1) + +# CAPI cert enrolment CSP, contains a BMPString describing the CAPI level and +# a BIT STRING blob containing a key spec +OID = 06 0A 2B 06 01 04 01 82 37 0D 02 02 +Comment = Microsoft attribute +Description = enrolmentCSP (1 3 6 1 4 1 311 13 2 2) + +# Windows OS version +OID = 06 0A 2B 06 01 04 01 82 37 0D 02 03 +Comment = Microsoft attribute +Description = osVersion (1 3 6 1 4 1 311 13 2 3) + +# This is just the normal issuerAndSerialNumber but with a MS-specific OID. +# Apparently it's used for CryptEncode/DecodeObject, whatever that is. +OID = 06 0A 2B 06 01 04 01 82 37 10 04 +Comment = Microsoft attribute +Description = microsoftRecipientInfo (1 3 6 1 4 1 311 16 4) + +# Win2K CA certificate key/cert counter, high 16 bits = key index, low 16 bits +# = cert index. Key index is inc'd when a CA gets a new key, cert index is +# inc'd when a CA gets a new cert (ie recertifies a current key). This +# extension has two purposes, as a hint to rebuild key/cert lists when a Win2K +# CA is restored, and as a poster boy for the kind of crap which people are +# shovelling into certs which has no place there +OID = 06 09 2B 06 01 04 01 82 37 15 01 +Comment = Microsoft attribute +Description = cAKeyCertIndexPair (1 3 6 1 4 1 311 21 1) + +# CAPICOM original filename (something to do with signed files?) +OID = 06 0A 2B 06 01 04 01 82 37 58 02 01 +Comment = Microsoft attribute +Description = originalFilename (1 3 6 1 4 1 311 88 2 1) + +# UNINETT + +OID = 06 0A 2B 06 01 04 01 92 7C 0A 01 01 +Comment = UNINETT PCA +Description = UNINETT policyIdentifier (1 3 6 1 4 1 2428 10 1 1) + +# ICE-TEL + +OID = 06 08 2B 06 01 04 01 95 18 0A +Comment = ICE-TEL CA +Description = ICE-TEL policyIdentifier (1 3 6 1 4 1 2712 10) + +OID = 06 0A 2B 06 01 04 01 95 62 01 01 01 +Comment = ICE-TEL CA policy +Description = ICE-TEL Italian policyIdentifier (1 3 6 1 4 1 2786 1 1 1) + +# cryptlib + +OID = 06 0A 2B 06 01 04 01 97 55 01 01 01 +Comment = cryptlib encryption algorithm +Description = blowfishECB (1 3 6 1 4 1 3029 1 1 1) + +OID = 06 0A 2B 06 01 04 01 97 55 01 01 02 +Comment = cryptlib encryption algorithm +Description = blowfishCBC (1 3 6 1 4 1 3029 1 1 2) + +OID = 06 0A 2B 06 01 04 01 97 55 01 01 03 +Comment = cryptlib encryption algorithm +Description = blowfishCFB (1 3 6 1 4 1 3029 1 1 3) + +OID = 06 0A 2B 06 01 04 01 97 55 01 01 04 +Comment = cryptlib encryption algorithm +Description = blowfishOFB (1 3 6 1 4 1 3029 1 1 4) + +OID = 06 0A 2B 06 01 04 01 97 55 01 02 01 +Comment = cryptlib public-key algorithm +Description = elgamal (1 3 6 1 4 1 3029 1 2 1) + +OID = 06 0B 2B 06 01 04 01 97 55 01 02 01 01 +Comment = cryptlib public-key algorithm +Description = elgamalWithSHA-1 (1 3 6 1 4 1 3029 1 2 1 1) + +OID = 06 0B 2B 06 01 04 01 97 55 01 02 01 02 +Comment = cryptlib public-key algorithm +Description = elgamalWithRIPEMD-160 (1 3 6 1 4 1 3029 1 2 1 2) + +OID = 06 09 2B 06 01 04 01 97 55 03 01 +Comment = cryptlib attribute type +Description = cryptlibPKIXFix (1 3 6 1 4 1 3029 3 1) + +OID = 06 0A 2B 06 01 04 01 97 55 03 01 01 +Comment = cryptlib PKIX fix attribute +Description = cryptlibPresenceCheck (1 3 6 1 4 1 3029 3 1 1) + +OID = 06 0A 2B 06 01 04 01 97 55 04 01 01 +Comment = cryptlib attribute type +Description = cryptlibAttribute (1 3 6 1 4 1 3029 4 1 1) + +OID = 06 09 2B 06 01 04 01 97 55 04 01 +Comment = cryptlib +Description = cryptlibContent (1 3 6 1 4 1 3029 4 1) + +OID = 06 0A 2B 06 01 04 01 97 55 04 01 01 +Comment = cryptlib content type +Description = cryptlibConfigData (1 3 6 1 4 1 3029 4 1 1) + +OID = 06 0A 2B 06 01 04 01 97 55 04 01 02 +Comment = cryptlib content type +Description = cryptlibUserIndex (1 3 6 1 4 1 3029 4 1 2) + +OID = 06 0A 2B 06 01 04 01 97 55 04 01 03 +Comment = cryptlib content type +Description = cryptlibUserInfo (1 3 6 1 4 1 3029 4 1 3) + +OID = 06 0B 2B 06 01 04 01 97 55 2A D7 24 01 +Comment = cryptlib special MPEG-of-cat OID +Description = mpeg-1 (1 3 6 1 4 1 3029 42 11172 1) + +OID = 06 0C 2B 06 01 04 01 97 55 58 59 5A 5A 59 +Comment = cryptlib certificate policy +Description = xYZZY policyIdentifier (1 3 6 1 4 1 3029 88 89 90 90 89) + +# Timeproof (www.timeproof.de) + +OID = 06 09 2B 06 01 04 01 AA 60 +Comment = enterprise +Description = timeproof (1 3 6 1 4 1 5472) + +OID = 06 09 2B 06 01 04 01 AA 60 01 +Comment = timeproof +Description = tss (1 3 6 1 4 1 5472 1) + +OID = 06 09 2B 06 01 04 01 AA 60 01 01 +Comment = timeproof TSS +Description = tss80 (1 3 6 1 4 1 5472 1 1) + +OID = 06 09 2B 06 01 04 01 AA 60 01 01 +Comment = timeproof TSS +Description = tss380 (1 3 6 1 4 1 5472 1 2) + +OID = 06 09 2B 06 01 04 01 AA 60 01 01 +Comment = timeproof TSS +Description = tss400 (1 3 6 1 4 1 5472 1 3) + +# PKIX + +OID = 06 06 2B 06 01 05 05 07 +Description = pkix (1 3 6 1 5 5 7) + +OID = 06 06 2B 06 01 05 05 07 +Comment = PKIX +Description = attributeCert (1 3 6 1 5 5 7 0 12) + +OID = 06 07 2B 06 01 05 05 07 01 +Comment = PKIX +Description = privateExtension (1 3 6 1 5 5 7 1) + +OID = 06 08 2B 06 01 05 05 07 01 01 +Comment = PKIX private extension +Description = authorityInfoAccess (1 3 6 1 5 5 7 1 1) + +OID = 06 08 2B 06 01 05 05 07 01 04 +Comment = PKIX private extension +Description = acAuditIdentity (1 3 6 1 5 5 7 1 4) + +OID = 06 08 2B 06 01 05 05 07 01 05 +Comment = PKIX private extension +Description = acTargeting (1 3 6 1 5 5 7 1 5) + +OID = 06 08 2B 06 01 05 05 07 01 06 +Comment = PKIX private extension +Description = acAaControls (1 3 6 1 5 5 7 1 6) + +OID = 06 08 2B 06 01 05 05 07 01 07 +Comment = PKIX private extension +Description = sbgp-ipAddrBlock (1 3 6 1 5 5 7 1 7) + +OID = 06 08 2B 06 01 05 05 07 01 08 +Comment = PKIX private extension +Description = sbgp-autonomousSysNum (1 3 6 1 5 5 7 1 8) + +OID = 06 08 2B 06 01 05 05 07 01 09 +Comment = PKIX private extension +Description = sbgp-routerIdentifier (1 3 6 1 5 5 7 1 9) + +OID = 06 08 2B 06 01 05 05 07 01 0A +Comment = PKIX private extension +Description = acProxying (1 3 6 1 5 5 7 1 10) + +OID = 06 08 2B 06 01 05 05 07 01 0B +Comment = PKIX private extension +Description = subjectInfoAccess (1 3 6 1 5 5 7 1 11) + +OID = 06 07 2B 06 01 05 05 07 02 +Comment = PKIX +Description = policyQualifierIds (1 3 6 1 5 5 7 2) + +OID = 06 08 2B 06 01 05 05 07 02 01 +Comment = PKIX policy qualifier +Description = cps (1 3 6 1 5 5 7 2 1) + +OID = 06 08 2B 06 01 05 05 07 02 02 +Comment = PKIX policy qualifier +Description = unotice (1 3 6 1 5 5 7 2 2) + +OID = 06 08 2B 06 01 05 05 07 02 03 +Comment = PKIX policy qualifier +Description = textNotice (1 3 6 1 5 5 7 2 3) + +OID = 06 07 2B 06 01 05 05 07 03 +Comment = PKIX +Description = keyPurpose (1 3 6 1 5 5 7 3) + +OID = 06 08 2B 06 01 05 05 07 03 01 +Comment = PKIX key purpose +Description = serverAuth (1 3 6 1 5 5 7 3 1) + +OID = 06 08 2B 06 01 05 05 07 03 02 +Comment = PKIX key purpose +Description = clientAuth (1 3 6 1 5 5 7 3 2) + +OID = 06 08 2B 06 01 05 05 07 03 03 +Comment = PKIX key purpose +Description = codeSigning (1 3 6 1 5 5 7 3 3) + +OID = 06 08 2B 06 01 05 05 07 03 04 +Comment = PKIX key purpose +Description = emailProtection (1 3 6 1 5 5 7 3 4) + +OID = 06 08 2B 06 01 05 05 07 03 05 +Comment = PKIX key purpose +Description = ipsecEndSystem (1 3 6 1 5 5 7 3 5) + +OID = 06 08 2B 06 01 05 05 07 03 06 +Comment = PKIX key purpose +Description = ipsecTunnel (1 3 6 1 5 5 7 3 6) + +OID = 06 08 2B 06 01 05 05 07 03 07 +Comment = PKIX key purpose +Description = ipsecUser (1 3 6 1 5 5 7 3 7) + +#OID = 06 08 2B 06 01 05 05 07 03 08 +#Comment = PKIX key purpose +#Description = timeStamping (1 3 6 1 5 5 7 3 8) +# conflicts with more useful definition + +OID = 06 08 2B 06 01 05 05 07 03 09 +Comment = PKIX key purpose +Description = ocspSigning (1 3 6 1 5 5 7 3 9) + +OID = 06 08 2B 06 01 05 05 07 03 0A +Comment = PKIX key purpose +Description = dvcs (1 3 6 1 5 5 7 3 10) + +OID = 06 08 2B 06 01 05 05 07 03 0B +Comment = PKIX key purpose +Description = sbgpCertAAServerAuth (1 3 6 1 5 5 7 3 11) + +OID = 06 07 2B 06 01 05 05 07 04 +Comment = PKIX +Description = cmpInformationTypes (1 3 6 1 5 5 7 4) + +OID = 06 08 2B 06 01 05 05 07 04 01 +Comment = PKIX CMP information +Description = caProtEncCert (1 3 6 1 5 5 7 4 1) + +OID = 06 08 2B 06 01 05 05 07 04 02 +Comment = PKIX CMP information +Description = signKeyPairTypes (1 3 6 1 5 5 7 4 2) + +OID = 06 08 2B 06 01 05 05 07 04 03 +Comment = PKIX CMP information +Description = encKeyPairTypes (1 3 6 1 5 5 7 4 3) + +OID = 06 08 2B 06 01 05 05 07 04 04 +Comment = PKIX CMP information +Description = preferredSymmAlg (1 3 6 1 5 5 7 4 4) + +OID = 06 08 2B 06 01 05 05 07 04 05 +Comment = PKIX CMP information +Description = caKeyUpdateInfo (1 3 6 1 5 5 7 4 5) + +OID = 06 08 2B 06 01 05 05 07 04 06 +Comment = PKIX CMP information +Description = currentCRL (1 3 6 1 5 5 7 4 6) + +OID = 06 08 2B 06 01 05 05 07 04 07 +Comment = PKIX CMP information +Description = unsupportedOIDs (1 3 6 1 5 5 7 4 7) + +OID = 06 08 2B 06 01 05 05 07 04 0A +Comment = PKIX CMP information +Description = keyPairParamReq (1 3 6 1 5 5 7 4 10) + +OID = 06 08 2B 06 01 05 05 07 04 0B +Comment = PKIX CMP information +Description = keyPairParamRep (1 3 6 1 5 5 7 4 11) + +OID = 06 08 2B 06 01 05 05 07 04 0C +Comment = PKIX CMP information +Description = revPassphrase (1 3 6 1 5 5 7 4 12) + +OID = 06 08 2B 06 01 05 05 07 04 0D +Comment = PKIX CMP information +Description = implicitConfirm (1 3 6 1 5 5 7 4 13) + +OID = 06 08 2B 06 01 05 05 07 04 0E +Comment = PKIX CMP information +Description = confirmWaitTime (1 3 6 1 5 5 7 4 14) + +OID = 06 08 2B 06 01 05 05 07 04 0F +Comment = PKIX CMP information +Description = origPKIMessage (1 3 6 1 5 5 7 4 15) + +OID = 06 08 2B 06 01 05 05 07 04 10 +Comment = PKIX CMP information +Description = suppLangTags (1 3 6 1 5 5 7 4 16) + +OID = 06 07 2B 06 01 05 05 07 05 +Comment = PKIX +Description = crmfRegistration (1 3 6 1 5 5 7 5) + +OID = 06 08 2B 06 01 05 05 07 05 01 +Comment = PKIX CRMF registration +Description = regCtrl (1 3 6 1 5 5 7 5 1) + +OID = 06 09 2B 06 01 05 05 07 05 01 01 +Comment = PKIX CRMF registration control +Description = regToken (1 3 6 1 5 5 7 5 1 1) + +OID = 06 09 2B 06 01 05 05 07 05 01 02 +Comment = PKIX CRMF registration control +Description = authenticator (1 3 6 1 5 5 7 5 1 2) + +OID = 06 09 2B 06 01 05 05 07 05 01 03 +Comment = PKIX CRMF registration control +Description = pkiPublicationInfo (1 3 6 1 5 5 7 5 1 3) + +OID = 06 09 2B 06 01 05 05 07 05 01 04 +Comment = PKIX CRMF registration control +Description = pkiArchiveOptions (1 3 6 1 5 5 7 5 1 4) + +OID = 06 09 2B 06 01 05 05 07 05 01 05 +Comment = PKIX CRMF registration control +Description = oldCertID (1 3 6 1 5 5 7 5 1 5) + +OID = 06 09 2B 06 01 05 05 07 05 01 06 +Comment = PKIX CRMF registration control +Description = protocolEncrKey (1 3 6 1 5 5 7 5 1 6) + +OID = 06 09 2B 06 01 05 05 07 05 01 07 +Comment = PKIX CRMF registration control +Description = altCertTemplate(1 3 6 1 5 5 7 5 1 7) + +OID = 06 09 2B 06 01 05 05 07 05 01 08 +Comment = PKIX CRMF registration control +Description = wtlsTemplate (1 3 6 1 5 5 7 5 1 8) + +OID = 06 08 2B 06 01 05 05 07 05 02 +Comment = PKIX CRMF registration +Description = (1 3 6 1 5 5 7 5 2) + +OID = 06 09 2B 06 01 05 05 07 05 02 01 +Comment = PKIX CRMF registration control +Description = utf8Pairs (1 3 6 1 5 5 7 5 2 1) + +OID = 06 09 2B 06 01 05 05 07 05 02 02 +Comment = PKIX CRMF registration control +Description = certReq (1 3 6 1 5 5 7 5 2 2) + +OID = 06 07 2B 06 01 05 05 07 06 +Comment = PKIX +Description = algorithms (1 3 6 1 5 5 7 6) + +OID = 06 08 2B 06 01 05 05 07 06 01 +Comment = PKIX algorithm +Description = des40 (1 3 6 1 5 5 7 6 1) + +OID = 06 08 2B 06 01 05 05 07 06 02 +Comment = PKIX algorithm +Description = noSignature (1 3 6 1 5 5 7 6 2) + +OID = 06 08 2B 06 01 05 05 07 06 03 +Comment = PKIX algorithm +Description = dh-sig-hmac-sha1 (1 3 6 1 5 5 7 6 3) + +OID = 06 08 2B 06 01 05 05 07 06 04 +Comment = PKIX algorithm +Description = dh-pop (1 3 6 1 5 5 7 6 4) + +OID = 06 07 2B 06 01 05 05 07 07 +Comment = PKIX +Description = cmcControls (1 3 6 1 5 5 7 7) + +OID = 06 07 2B 06 01 05 05 07 08 +Comment = PKIX +Description = otherNames (1 3 6 1 5 5 7 8) + +OID = 06 08 2B 06 01 05 05 07 08 01 +Comment = PKIX other name +Description = personalData (1 3 6 1 5 5 7 8 1) + +OID = 06 08 2B 06 01 05 05 07 08 02 +Comment = PKIX other name +Description = userGroup (1 3 6 1 5 5 7 8 2) + +#OID = 06 07 2B 06 01 05 05 07 09 +#Comment = PKIX +#Description = personalData (1 3 6 1 5 5 7 9) +# conflicts with more useful definition + +OID = 06 08 2B 06 01 05 05 07 09 01 +Comment = PKIX personal data +Description = dateOfBirth (1 3 6 1 5 5 7 9 1) + +OID = 06 08 2B 06 01 05 05 07 09 02 +Comment = PKIX personal data +Description = placeOfBirth (1 3 6 1 5 5 7 9 2) + +OID = 06 08 2B 06 01 05 05 07 09 03 +Comment = PKIX personal data +Description = pseudonym (1 3 6 1 5 5 7 9 3) + +OID = 06 08 2B 06 01 05 05 07 09 04 +Comment = PKIX personal data +Description = gender (1 3 6 1 5 5 7 9 4) + +OID = 06 08 2B 06 01 05 05 07 09 05 +Comment = PKIX personal data +Description = countryOfCitizenship (1 3 6 1 5 5 7 9 5) + +OID = 06 08 2B 06 01 05 05 07 09 06 +Comment = PKIX personal data +Description = countryOfResidence (1 3 6 1 5 5 7 9 6) + +OID = 06 07 2B 06 01 05 05 07 0A +Comment = PKIX +Description = attributeCertificate (1 3 6 1 5 5 7 10) + +OID = 06 08 2B 06 01 05 05 07 0A 01 +Comment = PKIX attribute certificate extension +Description = authenticationInfo (1 3 6 1 5 5 7 10 1) + +OID = 06 08 2B 06 01 05 05 07 0A 02 +Comment = PKIX attribute certificate extension +Description = accessIdentity (1 3 6 1 5 5 7 10 2) + +OID = 06 08 2B 06 01 05 05 07 0A 03 +Comment = PKIX attribute certificate extension +Description = chargingIdentity (1 3 6 1 5 5 7 10 3) + +OID = 06 08 2B 06 01 05 05 07 0A 04 +Comment = PKIX attribute certificate extension +Description = group (1 3 6 1 5 5 7 10 4) + +OID = 06 08 2B 06 01 05 05 07 0A 05 +Comment = PKIX attribute certificate extension +Description = role (1 3 6 1 5 5 7 10 5) + +OID = 06 08 2B 06 01 05 05 07 0A 06 +Comment = PKIX attribute certificate extension +Description = encAttrs (1 3 6 1 5 5 7 10 6) + +# OCSP + +OID = 06 08 2B 06 01 05 05 07 30 01 +Comment = PKIX +Description = ocsp (1 3 6 1 5 5 7 48 1) + +OID = 06 09 2B 06 01 05 05 07 30 01 01 +Comment = OCSP +Description = ocspBasic (1 3 6 1 5 5 7 48 1 1) + +OID = 06 09 2B 06 01 05 05 07 30 01 02 +Comment = OCSP +Description = ocspNonce (1 3 6 1 5 5 7 48 1 2) + +OID = 06 09 2B 06 01 05 05 07 30 01 03 +Comment = OCSP +Description = ocspCRL (1 3 6 1 5 5 7 48 1 3) + +OID = 06 09 2B 06 01 05 05 07 30 01 04 +Comment = OCSP +Description = ocspResponse (1 3 6 1 5 5 7 48 1 4) + +OID = 06 09 2B 06 01 05 05 07 30 01 05 +Comment = OCSP +Description = ocspNoCheck (1 3 6 1 5 5 7 48 1 5) + +OID = 06 09 2B 06 01 05 05 07 30 01 06 +Comment = OCSP +Description = ocspArchiveCutoff (1 3 6 1 5 5 7 48 1 6) + +OID = 06 09 2B 06 01 05 05 07 30 01 07 +Comment = OCSP +Description = ocspServiceLocator (1 3 6 1 5 5 7 48 1 7) + +# AuthorityInfo types (OCSP is already listed above) + +OID = 06 08 2B 06 01 05 05 07 30 02 +Comment = PKIX authority info access descriptor +Description = caIssuers (1 3 6 1 5 5 7 48 2) + +OID = 06 08 2B 06 01 05 05 07 30 03 +Comment = PKIX authority info access descriptor +Description = timeStamping (1 3 6 1 5 5 7 48 3) + +# ISAKMP + +OID = 06 08 2B 06 01 05 05 08 01 01 +Comment = ISAKMP HMAC algorithm +Description = hmacMD5 (1 3 6 1 5 5 8 1 1) + +OID = 06 08 2B 06 01 05 05 08 01 02 +Comment = ISAKMP HMAC algorithm +Description = hmacSHA (1 3 6 1 5 5 8 1 2) + +OID = 06 08 2B 06 01 05 05 08 01 03 +Comment = ISAKMP HMAC algorithm +Description = hmacTiger (1 3 6 1 5 5 8 1 3) + +OID = 06 08 2B 06 01 05 05 08 02 02 +Comment = IKE ??? +Description = iKEIntermediate (1 3 6 1 5 5 8 2 2) + +# DEC (via ECMA) + +OID = 06 07 2B 0C 02 87 73 07 01 +Comment = DASS algorithm +Description = decEncryptionAlgorithm (1 3 12 2 1011 7 1) + +OID = 06 08 2B 0C 02 87 73 07 01 02 +Comment = DASS encryption algorithm +Description = decDEA (1 3 12 2 1011 7 1 2) + +OID = 06 07 2B 0C 02 87 73 07 02 +Comment = DASS algorithm +Description = decHashAlgorithm (1 3 12 2 1011 7 2) + +OID = 06 07 2B 0C 02 87 73 07 02 01 +Comment = DASS hash algorithm +Description = decMD2 (1 3 12 2 1011 7 2 1) + +OID = 06 07 2B 0C 02 87 73 07 02 02 +Comment = DASS hash algorithm +Description = decMD4 (1 3 12 2 1011 7 2 2) + +OID = 06 07 2B 0C 02 87 73 07 03 +Comment = DASS algorithm +Description = decSignatureAlgorithm (1 3 12 2 1011 7 3) + +OID = 06 07 2B 0C 02 87 73 07 03 01 +Comment = DASS signature algorithm +Description = decMD2withRSA (1 3 12 2 1011 7 3 1) + +OID = 06 07 2B 0C 02 87 73 07 03 02 +Comment = DASS signature algorithm +Description = decMD4withRSA (1 3 12 2 1011 7 3 2) + +OID = 06 07 2B 0C 02 87 73 07 03 03 +Comment = DASS signature algorithm +Description = decDEAMAC (1 3 12 2 1011 7 3 3) + +# NIST Open Systems Environment (OSE) Implementor's Workshop (OIW), +# specialising in oddball and partially-defunct OIDs + +#OID = 06 05 2B 0E 02 1A 05 +#Comment = Unsure about this OID +#Description = sha (1 3 14 2 26 5) +# conflicts with more useful definition + +OID = 06 06 2B 0E 03 02 01 01 +Comment = X.509. Unsure about this OID +Description = rsa (1 3 14 3 2 1 1) + +OID = 06 05 2B 0E 03 02 02 +Comment = Oddball OIW OID +Description = md4WitRSA (1 3 14 3 2 2) + +OID = 06 05 2B 0E 03 02 03 +Comment = Oddball OIW OID +Description = md5WithRSA (1 3 14 3 2 3) + +OID = 06 05 2B 0E 03 02 04 +Comment = Oddball OIW OID +Description = md4WithRSAEncryption (1 3 14 3 2 4) + +OID = 06 06 2B 0E 03 02 02 01 +Comment = X.509. Deprecated +Description = sqmod-N (1 3 14 3 2 2 1) +Warning + +OID = 06 06 2B 0E 03 02 03 01 +Comment = X.509. Deprecated +Description = sqmod-NwithRSA (1 3 14 3 2 3 1) +Warning + +OID = 06 05 2B 0E 03 02 06 +Description = desECB (1 3 14 3 2 6) + +OID = 06 05 2B 0E 03 02 07 +Description = desCBC (1 3 14 3 2 7) + +OID = 06 05 2B 0E 03 02 08 +Description = desOFB (1 3 14 3 2 8) + +OID = 06 05 2B 0E 03 02 09 +Description = desCFB (1 3 14 3 2 9) + +OID = 06 05 2B 0E 03 02 0A +Description = desMAC (1 3 14 3 2 10) + +OID = 06 05 2B 0E 03 02 0B +Comment = ISO 9796-2, also X9.31 Part 1 +Description = rsaSignature (1 3 14 3 2 11) + +#OID = 06 05 2B 0E 03 02 0C +#Comment = OIW?, supposedly from an incomplete version of SDN.701 (doesn't match final SDN.701) +#Description = dsa (1 3 14 3 2 12) +#Warning +# conflicts with more useful definition + +OID = 06 05 2B 0E 03 02 0D +Comment = Oddball OIW OID. Incorrectly used by JDK 1.1 in place of (1 3 14 3 2 27) +# Their response was that they know it's wrong, but noone uses SHA0 so it won't +# cause any problems, right? +Description = dsaWithSHA (1 3 14 3 2 13) +Warning + +# The various md<x>WithRSASIsignature OIDs are for the ANSI X9.31 draft and use +# ISO 9796-2 padding rules. This work was derailed during the PKP brouhaha and +# is still in progress +OID = 06 05 2B 0E 03 02 0E +Comment = Oddball OIW OID using 9796-2 padding rules +Description = mdc2WithRSASignature (1 3 14 3 2 14) + +OID = 06 05 2B 0E 03 02 0F +Comment = Oddball OIW OID using 9796-2 padding rules +Description = shaWithRSASignature (1 3 14 3 2 15) + +OID = 06 05 2B 0E 03 02 10 +Comment = Oddball OIW OID. Deprecated, use a plain DH OID instead +Description = dhWithCommonModulus (1 3 14 3 2 16) +Warning + +OID = 06 05 2B 0E 03 02 11 +Comment = Oddball OIW OID. Mode is ECB +Description = desEDE (1 3 14 3 2 17) + +OID = 06 05 2B 0E 03 02 12 +Comment = Oddball OIW OID +Description = sha (1 3 14 3 2 18) + +OID = 06 05 2B 0E 03 02 13 +Comment = Oddball OIW OID, DES-based hash, planned for X9.31 Part 2 +Description = mdc-2 (1 3 14 3 2 19) + +OID = 06 05 2B 0E 03 02 14 +Comment = Oddball OIW OID. Deprecated, use a plain DSA OID instead +Description = dsaCommon (1 3 14 3 2 20) +Warning + +OID = 06 05 2B 0E 03 02 15 +Comment = Oddball OIW OID. Deprecated, use a plain dsaWithSHA OID instead +Description = dsaCommonWithSHA (1 3 14 3 2 21) +Warning + +OID = 06 05 2B 0E 03 02 16 +Comment = Oddball OIW OID +Description = rsaKeyTransport (1 3 14 3 2 22) + +OID = 06 05 2B 0E 03 02 17 +Comment = Oddball OIW OID +Description = keyed-hash-seal (1 3 14 3 2 23) + +OID = 06 05 2B 0E 03 02 18 +Comment = Oddball OIW OID using 9796-2 padding rules +Description = md2WithRSASignature (1 3 14 3 2 24) + +OID = 06 05 2B 0E 03 02 19 +Comment = Oddball OIW OID using 9796-2 padding rules +Description = md5WithRSASignature (1 3 14 3 2 25) + +OID = 06 05 2B 0E 03 02 1A +Comment = OIW +Description = sha1 (1 3 14 3 2 26) + +# Yet another multiply-assigned OID +OID = 06 05 2B 0E 03 02 1B +Comment = OIW. This OID may also be assigned as ripemd-160 +Description = dsaWithSHA1 (1 3 14 3 2 27) + +OID = 06 05 2B 0E 03 02 1C +Comment = OIW +Description = dsaWithCommonSHA1 (1 3 14 3 2 28) + +OID = 06 05 2B 0E 03 02 1D +Comment = Oddball OIW OID +Description = sha-1WithRSAEncryption (1 3 14 3 2 29) + +OID = 06 05 2B 0E 03 03 01 +Comment = Oddball OIW OID +Description = simple-strong-auth-mechanism (1 3 14 3 3 1) + +OID = 06 06 2B 0E 07 02 01 01 +Comment = Unsure about this OID +Description = ElGamal (1 3 14 7 2 1 1) + +OID = 06 06 2B 0E 07 02 03 01 +Comment = Unsure about this OID +Description = md2WithRSA (1 3 14 7 2 3 1) + +OID = 06 06 2B 0E 07 02 03 02 +Comment = Unsure about this OID +Description = md2WithElGamal (1 3 14 7 2 3 2) + +# Teletrust + +OID = 06 03 2B 24 01 +Comment = Teletrust document +Description = document (1 3 36 1) + +OID = 06 04 2B 24 01 01 +Comment = Teletrust document +Description = finalVersion (1 3 36 1 1) + +OID = 06 04 2B 24 01 02 +Comment = Teletrust document +Description = draft (1 3 36 1 2) + +OID = 06 03 2B 24 02 +Comment = Teletrust sio +Description = sio (1 3 36 2) + +OID = 06 04 2B 24 02 01 +Comment = Teletrust sio +Description = sedu (1 3 36 2 1) + +#OID = 06 03 2B 24 03 +#Comment = Teletrust algorithm +#Description = algorithm (1 3 36 3) +# conflicts with more useful definition + +#OID = 06 04 2B 24 03 01 +#Comment = Teletrust algorithm +#Description = encryptionAlgorithm (1 3 36 3 1) +# conflicts with more useful definition + +#OID = 06 05 2B 24 03 01 01 +#Comment = Teletrust encryption algorithm +#Description = des (1 3 36 3 1 1) +# conflicts with more useful definition + +OID = 06 06 2B 24 03 01 01 01 +Comment = Teletrust encryption algorithm +Description = desECB_pad (1 3 36 3 1 1 1) + +OID = 06 07 2B 24 03 01 01 01 01 +Comment = Teletrust encryption algorithm +Description = desECB_ISOpad (1 3 36 3 1 1 1 1) + +OID = 06 07 2B 24 03 01 01 02 01 +Comment = Teletrust encryption algorithm +Description = desCBC_pad (1 3 36 3 1 1 2 1) + +OID = 06 08 2B 24 03 01 01 02 01 01 +Comment = Teletrust encryption algorithm +Description = desCBC_ISOpad (1 3 36 3 1 1 2 1 1) + +OID = 06 05 2B 24 03 01 03 +Comment = Teletrust encryption algorithm +Description = des_3 (1 3 36 3 1 3) + +OID = 06 07 2B 24 03 01 03 01 01 +Comment = Teletrust encryption algorithm. EDE triple DES +Description = des_3ECB_pad (1 3 36 3 1 3 1 1) + +OID = 06 08 2B 24 03 01 03 01 01 01 +Comment = Teletrust encryption algorithm. EDE triple DES +Description = des_3ECB_ISOpad (1 3 36 3 1 3 1 1 1) + +OID = 06 07 2B 24 03 01 03 02 01 +Comment = Teletrust encryption algorithm. EDE triple DES +Description = des_3CBC_pad (1 3 36 3 1 3 2 1) + +OID = 06 08 2B 24 03 01 03 02 01 01 +Comment = Teletrust encryption algorithm. EDE triple DES +Description = des_3CBC_ISOpad (1 3 36 3 1 3 2 1 1) + +#OID = 06 05 2B 24 03 01 02 +#Comment = Teletrust encryption algorithm +#Description = idea (1 3 36 3 1 2) +# conflicts with more useful definition + +#OID = 06 06 2B 24 03 01 02 01 +#Comment = Teletrust encryption algorithm +#Description = ideaECB (1 3 36 3 1 2 1) +# conflicts with more useful definition + +OID = 06 07 2B 24 03 01 02 01 01 +Comment = Teletrust encryption algorithm +Description = ideaECB_pad (1 3 36 3 1 2 1 1) + +OID = 06 08 2B 24 03 01 02 01 01 01 +Comment = Teletrust encryption algorithm +Description = ideaECB_ISOpad (1 3 36 3 1 2 1 1 1) + +#OID = 06 06 2B 24 03 01 02 02 +#Comment = Teletrust encryption algorithm +#Description = ideaCBC (1 3 36 3 1 2 2) +# conflicts with more useful definition + +OID = 06 07 2B 24 03 01 02 02 01 +Comment = Teletrust encryption algorithm +Description = ideaCBC_pad (1 3 36 3 1 2 2 1) + +OID = 06 08 2B 24 03 01 02 02 01 01 +Comment = Teletrust encryption algorithm +Description = ideaCBC_ISOpad (1 3 36 3 1 2 2 1 1) + +#OID = 06 06 2B 24 03 01 02 03 +#Comment = Teletrust encryption algorithm +#Description = ideaOFB (1 3 36 3 1 2 3) +# conflicts with more useful definition + +#OID = 06 06 2B 24 03 01 02 04 +#Comment = Teletrust encryption algorithm +#Description = ideaCFB (1 3 36 3 1 2 4) +# conflicts with more useful definition + +#OID = 06 05 2B 24 03 01 04 +#Comment = Teletrust encryption algorithm +#Description = rsaEncryption (1 3 36 3 1 4) +# conflicts with more useful definition + +OID = 06 08 2B 24 03 01 04 84 00 11 +Comment = Teletrust encryption algorithm +Description = rsaEncryptionWithlmod512expe17 (1 3 36 3 1 4 512 17) + +OID = 06 05 2B 24 03 01 05 +Comment = Teletrust encryption algorithm +Description = bsi-1 (1 3 36 3 1 5) + +OID = 06 06 2B 24 03 01 05 01 +Comment = Teletrust encryption algorithm +Description = bsi_1ECB_pad (1 3 36 3 1 5 1) + +OID = 06 06 2B 24 03 01 05 02 +Comment = Teletrust encryption algorithm +Description = bsi_1CBC_pad (1 3 36 3 1 5 2) + +OID = 06 07 2B 24 03 01 05 02 01 +Comment = Teletrust encryption algorithm +Description = bsi_1CBC_PEMpad (1 3 36 3 1 5 2 1) + +OID = 06 04 2B 24 03 02 +Comment = Teletrust algorithm +Description = hashAlgorithm (1 3 36 3 2) + +#OID = 06 05 2B 24 03 02 01 +#Comment = Teletrust hash algorithm +#Description = ripemd160 (1 3 36 3 2 1) +# conflicts with more useful definition + +#OID = 06 05 2B 24 03 02 02 +#Comment = Teletrust hash algorithm +#Description = ripemd128 (1 3 36 3 2 2) +# conflicts with more useful definition + +OID = 06 05 2B 24 03 02 03 +Comment = Teletrust hash algorithm +Description = ripemd256 (1 3 36 3 2 3) + +OID = 06 05 2B 24 03 02 04 +Comment = Teletrust hash algorithm +Description = mdc2singleLength (1 3 36 3 2 4) + +OID = 06 05 2B 24 03 02 05 +Comment = Teletrust hash algorithm +Description = mdc2doubleLength (1 3 36 3 2 5) + +OID = 06 04 2B 24 03 03 +Comment = Teletrust algorithm +Description = signatureAlgorithm (1 3 36 3 3) + +#OID = 06 05 2B 24 03 03 01 +#Comment = Teletrust signature algorithm +#Description = rsaSignature (1 3 36 3 3 1) +# conflicts with more useful definition + +OID = 06 06 2B 24 03 03 01 01 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1 (1 3 36 3 3 1 1) + +# What *were* they thinking? +OID = 06 09 2B 24 03 03 01 01 84 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l512_l2 (1 3 36 3 3 1 1 512 2) +OID = 06 09 2B 24 03 03 01 01 85 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l640_l2 (1 3 36 3 3 1 1 640 2) +OID = 06 09 2B 24 03 03 01 01 86 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l768_l2 (1 3 36 3 3 1 1 768 2) +OID = 06 09 2B 24 03 03 01 01 87 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l896_l2 (1 3 36 3 3 1 1 892 2) +OID = 06 09 2B 24 03 03 01 01 88 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l1024_l2 (1 3 36 3 3 1 1 1024 2) +OID = 06 09 2B 24 03 03 01 01 84 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l512_l3 (1 3 36 3 3 1 1 512 3) +OID = 06 09 2B 24 03 03 01 01 85 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l640_l3 (1 3 36 3 3 1 1 640 3) +OID = 06 09 2B 24 03 03 01 01 86 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l768_l3 (1 3 36 3 3 1 1 768 3) +OID = 06 09 2B 24 03 03 01 01 87 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l896_l3 (1 3 36 3 3 1 1 896 3) +OID = 06 09 2B 24 03 03 01 01 88 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l1024_l3 (1 3 36 3 3 1 1 1024 3) +OID = 06 09 2B 24 03 03 01 01 84 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l512_l5 (1 3 36 3 3 1 1 512 5) +OID = 06 09 2B 24 03 03 01 01 85 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l640_l5 (1 3 36 3 3 1 1 640 5) +OID = 06 09 2B 24 03 03 01 01 86 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l768_l5 (1 3 36 3 3 1 1 768 5) +OID = 06 09 2B 24 03 03 01 01 87 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l896_l5 (1 3 36 3 3 1 1 896 5) +OID = 06 09 2B 24 03 03 01 01 88 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l1024_l5 (1 3 36 3 3 1 1 1024 5) +OID = 06 09 2B 24 03 03 01 01 84 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l512_l9 (1 3 36 3 3 1 1 512 9) +OID = 06 09 2B 24 03 03 01 01 85 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l640_l9 (1 3 36 3 3 1 1 640 9) +OID = 06 09 2B 24 03 03 01 01 86 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l768_l9 (1 3 36 3 3 1 1 768 9) +OID = 06 09 2B 24 03 03 01 01 87 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l896_l9 (1 3 36 3 3 1 1 896 9) +OID = 06 09 2B 24 03 03 01 01 88 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l1024_l9 (1 3 36 3 3 1 1 1024 9) +OID = 06 09 2B 24 03 03 01 01 84 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l512_l11 (1 3 36 3 3 1 1 512 11) +OID = 06 09 2B 24 03 03 01 01 85 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l640_l11 (1 3 36 3 3 1 1 640 11) +OID = 06 09 2B 24 03 03 01 01 86 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l768_l11 (1 3 36 3 3 1 1 768 11) +OID = 06 09 2B 24 03 03 01 01 87 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l896_l11 (1 3 36 3 3 1 1 896 11) +OID = 06 09 2B 24 03 03 01 01 88 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithsha1_l1024_l11 (1 3 36 3 3 1 1 1024 11) + +OID = 06 06 2B 24 03 03 01 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160 (1 3 36 3 3 1 2) + +OID = 06 09 2B 24 03 03 01 02 84 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l512_l2 (1 3 36 3 3 1 2 512 2) +OID = 06 09 2B 24 03 03 01 02 85 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l640_l2 (1 3 36 3 3 1 2 640 2) +OID = 06 09 2B 24 03 03 01 02 86 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l768_l2 (1 3 36 3 3 1 2 768 2) +OID = 06 09 2B 24 03 03 01 02 87 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l896_l2 (1 3 36 3 3 1 2 892 2) +OID = 06 09 2B 24 03 03 01 02 88 00 02 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l1024_l2 (1 3 36 3 3 1 2 1024 2) +OID = 06 09 2B 24 03 03 01 02 84 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l512_l3 (1 3 36 3 3 1 2 512 3) +OID = 06 09 2B 24 03 03 01 02 85 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l640_l3 (1 3 36 3 3 1 2 640 3) +OID = 06 09 2B 24 03 03 01 02 86 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l768_l3 (1 3 36 3 3 1 2 768 3) +OID = 06 09 2B 24 03 03 01 02 87 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l896_l3 (1 3 36 3 3 1 2 896 3) +OID = 06 09 2B 24 03 03 01 02 88 00 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l1024_l3 (1 3 36 3 3 1 2 1024 3) +OID = 06 09 2B 24 03 03 01 02 84 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l512_l5 (1 3 36 3 3 1 2 512 5) +OID = 06 09 2B 24 03 03 01 02 85 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l640_l5 (1 3 36 3 3 1 2 640 5) +OID = 06 09 2B 24 03 03 01 02 86 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l768_l5 (1 3 36 3 3 1 2 768 5) +OID = 06 09 2B 24 03 03 01 02 87 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l896_l5 (1 3 36 3 3 1 2 896 5) +OID = 06 09 2B 24 03 03 01 02 88 00 05 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l1024_l5 (1 3 36 3 3 1 2 1024 5) +OID = 06 09 2B 24 03 03 01 02 84 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l512_l9 (1 3 36 3 3 1 2 512 9) +OID = 06 09 2B 24 03 03 01 02 85 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l640_l9 (1 3 36 3 3 1 2 640 9) +OID = 06 09 2B 24 03 03 01 02 86 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l768_l9 (1 3 36 3 3 1 2 768 9) +OID = 06 09 2B 24 03 03 01 02 87 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l896_l9 (1 3 36 3 3 1 2 896 9) +OID = 06 09 2B 24 03 03 01 02 88 00 09 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l1024_l9 (1 3 36 3 3 1 2 1024 9) +OID = 06 09 2B 24 03 03 01 02 84 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l512_l11 (1 3 36 3 3 1 2 512 11) +OID = 06 09 2B 24 03 03 01 02 85 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l640_l11 (1 3 36 3 3 1 2 640 11) +OID = 06 09 2B 24 03 03 01 02 86 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l768_l11 (1 3 36 3 3 1 2 768 11) +OID = 06 09 2B 24 03 03 01 02 87 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l896_l11 (1 3 36 3 3 1 2 896 11) +OID = 06 09 2B 24 03 03 01 02 88 00 11 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithripemd160_l1024_l11 (1 3 36 3 3 1 2 1024 11) + +OID = 06 06 2B 24 03 03 01 03 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithrimpemd128 (1 3 36 3 3 1 3) + +OID = 06 06 2B 24 03 03 01 04 +Comment = Teletrust signature algorithm +Description = rsaSignatureWithrimpemd256 (1 3 36 3 3 1 4) + +OID = 06 05 2B 24 03 03 02 +Comment = Teletrust signature algorithm +Description = ecsieSign (1 3 36 3 3 2) + +OID = 06 06 2B 24 03 03 02 01 +Comment = Teletrust signature algorithm +Description = ecsieSignWithsha1 (1 3 36 3 3 2 1) + +OID = 06 06 2B 24 03 03 02 02 +Comment = Teletrust signature algorithm +Description = ecsieSignWithripemd160 (1 3 36 3 3 2 2) + +OID = 06 06 2B 24 03 03 02 03 +Comment = Teletrust signature algorithm +Description = ecsieSignWithmd2 (1 3 36 3 3 2 3) + +OID = 06 06 2B 24 03 03 02 04 +Comment = Teletrust signature algorithm +Description = ecsieSignWithmd5 (1 3 36 3 3 2 4) + +OID = 06 04 2B 24 03 04 +Comment = Teletrust algorithm +Description = signatureScheme (1 3 36 3 4) + +OID = 06 05 2B 24 03 04 01 +Comment = Teletrust signature scheme +Description = sigS_ISO9796-1 (1 3 36 3 4 1) + +OID = 06 05 2B 24 03 04 02 +Comment = Teletrust signature scheme +Description = sigS_ISO9796-2 (1 3 36 3 4 2) + +OID = 06 05 2B 24 03 04 02 01 +Comment = Teletrust signature scheme. Unsure what this is supposed to be +Description = sigS_ISO9796-2Withred (1 3 36 3 4 2 1) + +OID = 06 06 2B 24 03 04 02 02 +Comment = Teletrust signature scheme. Unsure what this is supposed to be +Description = sigS_ISO9796-2Withrsa (1 3 36 3 4 2 2) + +OID = 06 06 2B 24 03 04 02 03 +Comment = Teletrust signature scheme. 9796-2 with random number in padding field +Description = sigS_ISO9796-2Withrnd (1 3 36 3 4 2 3) + +#OID = 06 03 2B 24 04 +#Comment = Teletrust attribute +#Description = attribute (1 3 36 4) +# conflicts with more useful definition + +#OID = 06 03 2B 24 05 +#Comment = Teletrust policy +#Description = policy (1 3 36 5) +# conflicts with more useful definition + +OID = 06 03 2B 24 06 +Comment = Teletrust API +Description = api (1 3 36 6) + +OID = 06 04 2B 24 06 01 +Comment = Teletrust API +Description = manufacturer-specific_api (1 3 36 6 1) + +OID = 06 05 2B 24 06 01 01 +Comment = Teletrust API +Description = utimaco-api (1 3 36 6 1 1) + +OID = 06 04 2B 24 06 02 +Comment = Teletrust API +Description = functionality-specific_api (1 3 36 6 2) + +OID = 06 03 2B 24 07 +Comment = Teletrust key management +Description = keymgmnt (1 3 36 7) + +OID = 06 04 2B 24 07 01 +Comment = Teletrust key management +Description = keyagree (1 3 36 7 1) + +OID = 06 05 2B 24 07 01 01 +Comment = Teletrust key management +Description = bsiPKE (1 3 36 7 1 1) + +OID = 06 04 2B 24 07 02 +Comment = Teletrust key management +Description = keytrans (1 3 36 7 2) + +OID = 06 05 2B 24 07 02 01 +Comment = Teletrust key management. 9796-2 with key stored in hash field +Description = encISO9796-2Withrsa (1 3 36 7 2 1) + +OID = 06 05 2B 24 08 01 01 +Comment = Teletrust policy +Description = Teletrust SigiSigConform policyIdentifier (1 3 36 8 1 1) + +OID = 06 05 2B 24 08 02 01 +Comment = Teletrust extended key usage +Description = directoryService (1 3 36 8 2 1) + +OID = 06 05 2B 24 08 03 01 +Comment = Teletrust attribute +Description = dateOfCertGen (1 3 36 8 3 1) + +OID = 06 05 2B 24 08 03 02 +Comment = Teletrust attribute +Description = procuration (1 3 36 8 3 2) + +OID = 06 05 2B 24 08 03 03 +Comment = Teletrust attribute +Description = admission (1 3 36 8 3 3) + +OID = 06 05 2B 24 08 03 04 +Comment = Teletrust attribute +Description = monetaryLimit (1 3 36 8 3 4) + +OID = 06 05 2B 24 08 03 05 +Comment = Teletrust attribute +Description = declarationOfMajority (1 3 36 8 3 5) + +OID = 06 05 2B 24 08 03 06 +Comment = Teletrust attribute +Description = integratedCircuitCardSerialNumber (1 3 36 8 3 6) + +OID = 06 05 2B 24 08 03 07 +Comment = Teletrust attribute +Description = pKReference (1 3 36 8 3 7) + +#OID = 06 05 2B 24 08 03 08 +#Comment = Teletrust attribute +#Description = restriction (1 3 36 8 3 8) +# conflicts with more useful definition + +OID = 06 05 2B 24 08 03 09 +Comment = Teletrust attribute +Description = retrieveIfAllowed (1 3 36 8 3 9) + +OID = 06 05 2B 24 08 03 0A +Comment = Teletrust attribute +Description = requestedCertificate (1 3 36 8 3 10) + +OID = 06 05 2B 24 08 03 0B +Comment = Teletrust attribute +Description = namingAuthorities (1 3 36 8 3 11) + +OID = 06 05 2B 24 08 03 0C +Comment = Teletrust attribute +Description = certInDirSince (1 3 36 8 3 12) + +OID = 06 05 2B 24 08 03 0D +Comment = Teletrust attribute +Description = certHash (1 3 36 8 3 13) + +#OID = 06 05 2B 24 08 04 01 +#Comment = Teletrust OtherName attribute +#Description = personalData (1 3 36 8 4 1) +# conflicts with more useful definition + +OID = 06 05 2B 24 08 04 08 +Comment = Teletrust attribute certificate attribute +Description = restriction (1 3 36 8 4 8) + +OID = 06 07 2B 24 08 05 01 01 01 +Comment = Teletrust signature algorithm +Description = rsaIndicateSHA1 (1 3 36 8 5 1 1 1) + +OID = 06 07 2B 24 08 05 01 01 02 +Comment = Teletrust signature algorithm +Description = rsaIndicateRIPEMD160 (1 3 36 8 5 1 1 2) + +OID = 06 07 2B 24 08 05 01 01 03 +Comment = Teletrust signature algorithm +Description = rsaWithSHA1 (1 3 36 8 5 1 1 3) + +OID = 06 07 2B 24 08 05 01 01 04 +Comment = Teletrust signature algorithm +Description = rsaWithRIPEMD160 (1 3 36 8 5 1 1 4) + +OID = 06 07 2B 24 08 05 01 02 01 +Comment = Teletrust signature algorithm +Description = dsaExtended (1 3 36 8 5 1 2 1) + +OID = 06 07 2B 24 08 05 01 02 02 +Comment = Teletrust signature algorithm +Description = dsaWithRIPEMD160 (1 3 36 8 5 1 2 2) + +#OID = 06 05 2B 24 08 06 01 +#Comment = Teletrust signature attributes +#Description = cert (1 3 36 8 6 1) +# conflicts with more useful definition + +OID = 06 05 2B 24 08 06 02 +Comment = Teletrust signature attributes +Description = certRef (1 3 36 8 6 2) + +OID = 06 05 2B 24 08 06 03 +Comment = Teletrust signature attributes +Description = attrCert (1 3 36 8 6 3) + +OID = 06 05 2B 24 08 06 04 +Comment = Teletrust signature attributes +Description = attrRef (1 3 36 8 6 4) + +OID = 06 05 2B 24 08 06 05 +Comment = Teletrust signature attributes +Description = fileName (1 3 36 8 6 5) + +OID = 06 05 2B 24 08 06 06 +Comment = Teletrust signature attributes +Description = storageTime (1 3 36 8 6 6) + +OID = 06 05 2B 24 08 06 07 +Comment = Teletrust signature attributes +Description = fileSize (1 3 36 8 6 7) + +OID = 06 05 2B 24 08 06 08 +Comment = Teletrust signature attributes +Description = location (1 3 36 8 6 8) + +OID = 06 05 2B 24 08 06 09 +Comment = Teletrust signature attributes +Description = sigNumber (1 3 36 8 6 9) + +OID = 06 05 2B 24 08 06 0A +Comment = Teletrust signature attributes +Description = autoGen (1 3 36 8 6 10) + +OID = 06 06 2B 24 08 07 01 01 +Comment = Teletrust presentation types +Description = ptAdobeILL (1 3 36 8 7 1 1) + +OID = 06 06 2B 24 08 07 01 02 +Comment = Teletrust presentation types +Description = ptAmiPro (1 3 36 8 7 1 2) + +OID = 06 06 2B 24 08 07 01 03 +Comment = Teletrust presentation types +Description = ptAutoCAD (1 3 36 8 7 1 3) + +OID = 06 06 2B 24 08 07 01 04 +Comment = Teletrust presentation types +Description = ptBinary (1 3 36 8 7 1 4) + +OID = 06 06 2B 24 08 07 01 05 +Comment = Teletrust presentation types +Description = ptBMP (1 3 36 8 7 1 5) + +OID = 06 06 2B 24 08 07 01 06 +Comment = Teletrust presentation types +Description = ptCGM (1 3 36 8 7 1 6) + +OID = 06 06 2B 24 08 07 01 07 +Comment = Teletrust presentation types +Description = ptCorelCRT (1 3 36 8 7 1 7) + +OID = 06 06 2B 24 08 07 01 08 +Comment = Teletrust presentation types +Description = ptCorelDRW (1 3 36 8 7 1 8) + +OID = 06 06 2B 24 08 07 01 09 +Comment = Teletrust presentation types +Description = ptCorelEXC (1 3 36 8 7 1 9) + +OID = 06 06 2B 24 08 07 01 0A +Comment = Teletrust presentation types +Description = ptCorelPHT (1 3 36 8 7 1 10) + +OID = 06 06 2B 24 08 07 01 0B +Comment = Teletrust presentation types +Description = ptDraw (1 3 36 8 7 1 11) + +OID = 06 06 2B 24 08 07 01 0C +Comment = Teletrust presentation types +Description = ptDVI (1 3 36 8 7 1 12) + +OID = 06 06 2B 24 08 07 01 0D +Comment = Teletrust presentation types +Description = ptEPS (1 3 36 8 7 1 13) + +OID = 06 06 2B 24 08 07 01 0E +Comment = Teletrust presentation types +Description = ptExcel (1 3 36 8 7 1 14) + +OID = 06 06 2B 24 08 07 01 0F +Comment = Teletrust presentation types +Description = ptGEM (1 3 36 8 7 1 15) + +OID = 06 06 2B 24 08 07 01 10 +Comment = Teletrust presentation types +Description = ptGIF (1 3 36 8 7 1 16) + +OID = 06 06 2B 24 08 07 01 11 +Comment = Teletrust presentation types +Description = ptHPGL (1 3 36 8 7 1 17) + +OID = 06 06 2B 24 08 07 01 12 +Comment = Teletrust presentation types +Description = ptJPEG (1 3 36 8 7 1 18) + +OID = 06 06 2B 24 08 07 01 13 +Comment = Teletrust presentation types +Description = ptKodak (1 3 36 8 7 1 19) + +OID = 06 06 2B 24 08 07 01 14 +Comment = Teletrust presentation types +Description = ptLaTeX (1 3 36 8 7 1 20) + +OID = 06 06 2B 24 08 07 01 15 +Comment = Teletrust presentation types +Description = ptLotus (1 3 36 8 7 1 21) + +OID = 06 06 2B 24 08 07 01 16 +Comment = Teletrust presentation types +Description = ptLotusPIC (1 3 36 8 7 1 22) + +OID = 06 06 2B 24 08 07 01 17 +Comment = Teletrust presentation types +Description = ptMacPICT (1 3 36 8 7 1 23) + +OID = 06 06 2B 24 08 07 01 18 +Comment = Teletrust presentation types +Description = ptMacWord (1 3 36 8 7 1 24) + +OID = 06 06 2B 24 08 07 01 19 +Comment = Teletrust presentation types +Description = ptMSWfD (1 3 36 8 7 1 25) + +OID = 06 06 2B 24 08 07 01 1A +Comment = Teletrust presentation types +Description = ptMSWord (1 3 36 8 7 1 26) + +OID = 06 06 2B 24 08 07 01 1B +Comment = Teletrust presentation types +Description = ptMSWord2 (1 3 36 8 7 1 27) + +OID = 06 06 2B 24 08 07 01 1C +Comment = Teletrust presentation types +Description = ptMSWord6 (1 3 36 8 7 1 28) + +OID = 06 06 2B 24 08 07 01 1D +Comment = Teletrust presentation types +Description = ptMSWord8 (1 3 36 8 7 1 29) + +OID = 06 06 2B 24 08 07 01 1E +Comment = Teletrust presentation types +Description = ptPDF (1 3 36 8 7 1 30) + +OID = 06 06 2B 24 08 07 01 1F +Comment = Teletrust presentation types +Description = ptPIF (1 3 36 8 7 1 31) + +OID = 06 06 2B 24 08 07 01 20 +Comment = Teletrust presentation types +Description = ptPostscript (1 3 36 8 7 1 32) + +OID = 06 06 2B 24 08 07 01 21 +Comment = Teletrust presentation types +Description = ptRTF (1 3 36 8 7 1 33) + +OID = 06 06 2B 24 08 07 01 22 +Comment = Teletrust presentation types +Description = ptSCITEX (1 3 36 8 7 1 34) + +OID = 06 06 2B 24 08 07 01 23 +Comment = Teletrust presentation types +Description = ptTAR (1 3 36 8 7 1 35) + +OID = 06 06 2B 24 08 07 01 24 +Comment = Teletrust presentation types +Description = ptTarga (1 3 36 8 7 1 36) + +OID = 06 06 2B 24 08 07 01 25 +Comment = Teletrust presentation types +Description = ptTeX (1 3 36 8 7 1 37) + +OID = 06 06 2B 24 08 07 01 26 +Comment = Teletrust presentation types +Description = ptText (1 3 36 8 7 1 38) + +OID = 06 06 2B 24 08 07 01 27 +Comment = Teletrust presentation types +Description = ptTIFF (1 3 36 8 7 1 39) + +OID = 06 06 2B 24 08 07 01 28 +Comment = Teletrust presentation types +Description = ptTIFF-FC (1 3 36 8 7 1 40) + +OID = 06 06 2B 24 08 07 01 29 +Comment = Teletrust presentation types +Description = ptUID (1 3 36 8 7 1 41) + +OID = 06 06 2B 24 08 07 01 2A +Comment = Teletrust presentation types +Description = ptUUEncode (1 3 36 8 7 1 42) + +OID = 06 06 2B 24 08 07 01 2B +Comment = Teletrust presentation types +Description = ptWMF (1 3 36 8 7 1 43) + +OID = 06 06 2B 24 08 07 01 2C +Comment = Teletrust presentation types +Description = ptWordPerfect (1 3 36 8 7 1 44) + +OID = 06 06 2B 24 08 07 01 2D +Comment = Teletrust presentation types +Description = ptWPGrph (1 3 36 8 7 1 45) + +# Thawte + +OID = 06 04 2B 65 01 04 +Comment = Thawte +Description = thawte-ce (1 3 101 1 4) + +OID = 06 05 2B 65 01 04 01 +Comment = Thawte certificate extension +Description = strongExtranet (1 3 101 1 4 1) + +# X.520 + +OID = 06 03 55 04 00 +Comment = X.520 id-at (2 5 4) +Description = objectClass (2 5 4 0) + +OID = 06 03 55 04 01 +Comment = X.520 id-at (2 5 4) +Description = aliasedEntryName (2 5 4 1) + +OID = 06 03 55 04 02 +Comment = X.520 id-at (2 5 4) +Description = knowledgeInformation (2 5 4 2) + +OID = 06 03 55 04 03 +Comment = X.520 id-at (2 5 4) +Description = commonName (2 5 4 3) + +OID = 06 03 55 04 04 +Comment = X.520 id-at (2 5 4) +Description = surname (2 5 4 4) + +OID = 06 03 55 04 05 +Comment = X.520 id-at (2 5 4) +Description = serialNumber (2 5 4 5) + +OID = 06 03 55 04 06 +Comment = X.520 id-at (2 5 4) +Description = countryName (2 5 4 6) + +OID = 06 03 55 04 07 +Comment = X.520 id-at (2 5 4) +Description = localityName (2 5 4 7) + +OID = 06 04 55 04 07 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveLocalityName (2 5 4 7 1) + +OID = 06 03 55 04 08 +Comment = X.520 id-at (2 5 4) +Description = stateOrProvinceName (2 5 4 8) + +OID = 06 04 55 04 08 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveStateOrProvinceName (2 5 4 8 1) + +OID = 06 03 55 04 09 +Comment = X.520 id-at (2 5 4) +Description = streetAddress (2 5 4 9) + +OID = 06 04 55 04 09 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveStreetAddress (2 5 4 9 1) + +OID = 06 03 55 04 0A +Comment = X.520 id-at (2 5 4) +Description = organizationName (2 5 4 10) + +OID = 06 04 55 04 0A 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveOrganizationName (2 5 4 10 1) + +OID = 06 03 55 04 0B +Comment = X.520 id-at (2 5 4) +Description = organizationalUnitName (2 5 4 11) + +OID = 06 04 55 04 0B 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveOrganizationalUnitName (2 5 4 11 1) + +OID = 06 03 55 04 0C +Comment = X.520 id-at (2 5 4) +Description = title (2 5 4 12) + +OID = 06 03 55 04 0D +Comment = X.520 id-at (2 5 4) +Description = description (2 5 4 13) + +OID = 06 03 55 04 0E +Comment = X.520 id-at (2 5 4) +Description = searchGuide (2 5 4 14) + +OID = 06 03 55 04 0F +Comment = X.520 id-at (2 5 4) +Description = businessCategory (2 5 4 15) + +OID = 06 03 55 04 10 +Comment = X.520 id-at (2 5 4) +Description = postalAddress (2 5 4 16) + +OID = 06 04 55 04 10 01 +Comment = X.520 id-at (2 5 4) +Description = collectivePostalAddress (2 5 4 16 1) + +OID = 06 03 55 04 11 +Comment = X.520 id-at (2 5 4) +Description = postalCode (2 5 4 17) + +OID = 06 04 55 04 11 01 +Comment = X.520 id-at (2 5 4) +Description = collectivePostalCode (2 5 4 17 1) + +OID = 06 03 55 04 12 +Comment = X.520 id-at (2 5 4) +Description = postOfficeBox (2 5 4 18) + +OID = 06 04 55 04 12 01 +Comment = X.520 id-at (2 5 4) +Description = collectivePostOfficeBox (2 5 4 18 1) + +OID = 06 03 55 04 13 +Comment = X.520 id-at (2 5 4) +Description = physicalDeliveryOfficeName (2 5 4 19) + +OID = 06 04 55 04 13 01 +Comment = X.520 id-at (2 5 4) +Description = collectivePhysicalDeliveryOfficeName (2 5 4 19 1) + +OID = 06 03 55 04 14 +Comment = X.520 id-at (2 5 4) +Description = telephoneNumber (2 5 4 20) + +OID = 06 04 55 04 14 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveTelephoneNumber (2 5 4 20 1) + +OID = 06 03 55 04 15 +Comment = X.520 id-at (2 5 4) +Description = telexNumber (2 5 4 21) + +OID = 06 04 55 04 15 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveTelexNumber (2 5 4 21 1) + +OID = 06 03 55 04 16 +Comment = X.520 id-at (2 5 4) +Description = teletexTerminalIdentifier (2 5 4 22) + +OID = 06 04 55 04 16 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveTeletexTerminalIdentifier (2 5 4 22 1) + +OID = 06 03 55 04 17 +Comment = X.520 id-at (2 5 4) +Description = facsimileTelephoneNumber (2 5 4 23) + +OID = 06 04 55 04 17 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveFacsimileTelephoneNumber (2 5 4 23 1) + +OID = 06 03 55 04 18 +Comment = X.520 id-at (2 5 4) +Description = x121Address (2 5 4 24) + +OID = 06 03 55 04 19 +Comment = X.520 id-at (2 5 4) +Description = internationalISDNNumber (2 5 4 25) + +OID = 06 04 55 04 19 01 +Comment = X.520 id-at (2 5 4) +Description = collectiveInternationalISDNNumber (2 5 4 25 1) + +OID = 06 03 55 04 1A +Comment = X.520 id-at (2 5 4) +Description = registeredAddress (2 5 4 26) + +OID = 06 03 55 04 1B +Comment = X.520 id-at (2 5 4) +Description = destinationIndicator (2 5 4 27) + +OID = 06 03 55 04 1C +Comment = X.520 id-at (2 5 4) +Description = preferredDeliveryMehtod (2 5 4 28) + +OID = 06 03 55 04 1D +Comment = X.520 id-at (2 5 4) +Description = presentationAddress (2 5 4 29) + +OID = 06 03 55 04 1E +Comment = X.520 id-at (2 5 4) +Description = supportedApplicationContext (2 5 4 30) + +OID = 06 03 55 04 1F +Comment = X.520 id-at (2 5 4) +Description = member (2 5 4 31) + +OID = 06 03 55 04 20 +Comment = X.520 id-at (2 5 4) +Description = owner (2 5 4 32) + +OID = 06 03 55 04 21 +Comment = X.520 id-at (2 5 4) +Description = roleOccupant (2 5 4 33) + +OID = 06 03 55 04 22 +Comment = X.520 id-at (2 5 4) +Description = seeAlso (2 5 4 34) + +OID = 06 03 55 04 23 +Comment = X.520 id-at (2 5 4) +Description = userPassword (2 5 4 35) + +OID = 06 03 55 04 24 +Comment = X.520 id-at (2 5 4) +Description = userCertificate (2 5 4 36) + +OID = 06 03 55 04 25 +Comment = X.520 id-at (2 5 4) +Description = caCertificate (2 5 4 37) + +OID = 06 03 55 04 26 +Comment = X.520 id-at (2 5 4) +Description = authorityRevocationList (2 5 4 38) + +OID = 06 03 55 04 27 +Comment = X.520 id-at (2 5 4) +Description = certificateRevocationList (2 5 4 39) + +OID = 06 03 55 04 28 +Comment = X.520 id-at (2 5 4) +Description = crossCertificatePair (2 5 4 40) + +OID = 06 03 55 04 29 +Comment = X.520 id-at (2 5 4) +Description = name (2 5 4 41) + +OID = 06 03 55 04 2A +Comment = X.520 id-at (2 5 4) +Description = givenName (2 5 4 42) + +OID = 06 03 55 04 2B +Comment = X.520 id-at (2 5 4) +Description = initials (2 5 4 43) + +OID = 06 03 55 04 2C +Comment = X.520 id-at (2 5 4) +Description = generationQualifier (2 5 4 44) + +OID = 06 03 55 04 2D +Comment = X.520 id-at (2 5 4) +Description = uniqueIdentifier (2 5 4 45) + +OID = 06 03 55 04 2E +Comment = X.520 id-at (2 5 4) +Description = dnQualifier (2 5 4 46) + +OID = 06 03 55 04 2F +Comment = X.520 id-at (2 5 4) +Description = enhancedSearchGuide (2 5 4 47) + +OID = 06 03 55 04 30 +Comment = X.520 id-at (2 5 4) +Description = protocolInformation (2 5 4 48) + +OID = 06 03 55 04 31 +Comment = X.520 id-at (2 5 4) +Description = distinguishedName (2 5 4 49) + +OID = 06 03 55 04 32 +Comment = X.520 id-at (2 5 4) +Description = uniqueMember (2 5 4 50) + +OID = 06 03 55 04 33 +Comment = X.520 id-at (2 5 4) +Description = houseIdentifier (2 5 4 51) + +OID = 06 03 55 04 34 +Comment = X.520 id-at (2 5 4) +Description = supportedAlgorithms (2 5 4 52) + +OID = 06 03 55 04 35 +Comment = X.520 id-at (2 5 4) +Description = deltaRevocationList (2 5 4 53) + +OID = 06 03 55 04 36 +Comment = X.520 id-at (2 5 4) +Description = clearance (2 5 4 55) + +#OID = 06 03 55 04 3A +#Comment = X.520 id-at (2 5 4) +#Description = crossCertificatePair (2 5 4 58) +# conflicts with more useful definition + +# X.500 object classes + +OID = 06 03 55 06 00 +Comment = X.520 objectClass (2 5 6) +Description = top (2 5 6 0) + +OID = 06 03 55 06 01 +Comment = X.520 objectClass (2 5 6) +Description = alias (2 5 6 1) + +OID = 06 03 55 06 02 +Comment = X.520 objectClass (2 5 6) +Description = country (2 5 6 2) + +OID = 06 03 55 06 03 +Comment = X.520 objectClass (2 5 6) +Description = locality (2 5 6 3) + +OID = 06 03 55 06 04 +Comment = X.520 objectClass (2 5 6) +Description = organization (2 5 6 4) + +OID = 06 03 55 06 05 +Comment = X.520 objectClass (2 5 6) +Description = organizationalUnit (2 5 6 5) + +OID = 06 03 55 06 06 +Comment = X.520 objectClass (2 5 6) +Description = person (2 5 6 6) + +OID = 06 03 55 06 07 +Comment = X.520 objectClass (2 5 6) +Description = organizationalPerson (2 5 6 7) + +OID = 06 03 55 06 08 +Comment = X.520 objectClass (2 5 6) +Description = organizationalRole (2 5 6 8) + +OID = 06 03 55 06 09 +Comment = X.520 objectClass (2 5 6) +Description = groupOfNames (2 5 6 9) + +OID = 06 03 55 06 0A +Comment = X.520 objectClass (2 5 6) +Description = residentialPerson (2 5 6 10) + +OID = 06 03 55 06 0B +Comment = X.520 objectClass (2 5 6) +Description = applicationProcess (2 5 6 11) + +OID = 06 03 55 06 0C +Comment = X.520 objectClass (2 5 6) +Description = applicationEntity (2 5 6 12) + +OID = 06 03 55 06 0D +Comment = X.520 objectClass (2 5 6) +Description = dSA (2 5 6 13) + +OID = 06 03 55 06 0E +Comment = X.520 objectClass (2 5 6) +Description = device (2 5 6 14) + +OID = 06 03 55 06 0F +Comment = X.520 objectClass (2 5 6) +Description = strongAuthenticationUser (2 5 6 15) + +OID = 06 03 55 06 10 +Comment = X.520 objectClass (2 5 6) +Description = certificateAuthority (2 5 6 16) + +OID = 06 03 55 06 11 +Comment = X.520 objectClass (2 5 6) +Description = groupOfUniqueNames (2 5 6 17) + +OID = 06 03 55 06 15 +Comment = X.520 objectClass (2 5 6) +Description = pkiUser (2 5 6 21) + +OID = 06 03 55 06 16 +Comment = X.520 objectClass (2 5 6) +Description = pkiCA (2 5 6 22) + +# X.500 algorithms + +OID = 06 02 55 08 +Description = X.500-Algorithms (2 5 8) + +OID = 06 03 55 08 01 +Description = X.500-Alg-Encryption (2 5 8 1) + +#OID = 06 04 55 08 01 01 +#Comment = X.500 algorithms. Ambiguous, since no padding rules specified +#Description = rsa (2 5 8 1 1) +#Warning +# conflicts with more useful definition + +# X.509. Some of the smaller values are from early X.509 drafts with +# cross-pollination from X9.55 and are now deprecated. Alternative OIDs are +# marked if these are known. In some cases there are multiple generations of +# superseded OIDs + +#OID = 06 03 55 1D 01 +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 35) instead +#Description = authorityKeyIdentifier (2 5 29 1) +#Warning +# conflicts with more useful definition + +OID = 06 03 55 1D 02 +Comment = X.509 id-ce (2 5 29). Obsolete, use keyUsage/extKeyUsage instead +Description = keyAttributes (2 5 29 2) +Warning + +#OID = 06 03 55 1D 03 +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 32) instead +#Description = certificatePolicies (2 5 29 3) +#Warning +# conflicts with more useful definition + +OID = 06 03 55 1D 04 +Comment = X.509 id-ce (2 5 29). Obsolete, use keyUsage/extKeyUsage instead +Description = keyUsageRestriction (2 5 29 4) +Warning + +OID = 06 03 55 1D 05 +Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 33) instead +Description = policyMapping (2 5 29 5) +Warning + +#OID = 06 03 55 1D 06 +#Comment = X.509 id-ce (2 5 29). Obsolete, use nameConstraints instead +#Description = subtreesConstraint (2 5 29 6) +#Warning +# conflicts with more useful definition + +#OID = 06 03 55 1D 07 +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 17) instead +#Description = subjectAltName (2 5 29 7) +#Warning +# conflicts with more useful definition + +#OID = 06 03 55 1D 08 +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 18) instead +#Description = issuerAltName (2 5 29 8) +#Warning +# conflicts with more useful definition + +OID = 06 03 55 1D 09 +Comment = X.509 id-ce (2 5 29) +Description = subjectDirectoryAttributes (2 5 29 9) + +#OID = 06 03 55 1D 0A +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 19) instead +#Description = basicConstraints (2 5 29 10) +#Warning +# conflicts with more useful definition + +#OID = 06 03 55 1D 0B +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 30) instead +#Description = nameConstraints (2 5 29 11) +#Warning +# conflicts with more useful definition + +#OID = 06 03 55 1D 0C +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 36) instead +#Description = policyConstraints (2 5 29 12) +#Warning +# conflicts with more useful definition + +#OID = 06 03 55 1D 0D +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 19) instead +#Description = basicConstraints (2 5 29 13) +#Warning +# conflicts with more useful definition + +OID = 06 03 55 1D 0E +Comment = X.509 id-ce (2 5 29) +Description = subjectKeyIdentifier (2 5 29 14) + +OID = 06 03 55 1D 0F +Comment = X.509 id-ce (2 5 29) +Description = keyUsage (2 5 29 15) + +OID = 06 03 55 1D 10 +Comment = X.509 id-ce (2 5 29) +Description = privateKeyUsagePeriod (2 5 29 16) + +OID = 06 03 55 1D 11 +Comment = X.509 id-ce (2 5 29) +Description = subjectAltName (2 5 29 17) + +OID = 06 03 55 1D 12 +Comment = X.509 id-ce (2 5 29) +Description = issuerAltName (2 5 29 18) + +OID = 06 03 55 1D 13 +Comment = X.509 id-ce (2 5 29) +Description = basicConstraints (2 5 29 19) + +OID = 06 03 55 1D 14 +Comment = X.509 id-ce (2 5 29) +Description = cRLNumber (2 5 29 20) + +OID = 06 03 55 1D 15 +Comment = X.509 id-ce (2 5 29) +Description = cRLReason (2 5 29 21) + +OID = 06 03 55 1D 16 +Comment = X.509 id-ce (2 5 29). Deprecated, alternative OID uncertain +Description = expirationDate (2 5 29 22) +Warning + +OID = 06 03 55 1D 17 +Comment = X.509 id-ce (2 5 29) +Description = instructionCode (2 5 29 23) + +OID = 06 03 55 1D 18 +Comment = X.509 id-ce (2 5 29) +Description = invalidityDate (2 5 29 24) + +#OID = 06 03 55 1D 19 +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 31) instead +#Description = cRLDistributionPoints (2 5 29 25) +#Warning +# conflicts with more useful definition + +#ID = 06 03 55 1D 1A +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 28) instead +#Description = issuingDistributionPoint (2 5 29 26) +#Warning +# conflicts with more useful definition + +OID = 06 03 55 1D 1B +Comment = X.509 id-ce (2 5 29) +Description = deltaCRLIndicator (2 5 29 27) + +OID = 06 03 55 1D 1C +Comment = X.509 id-ce (2 5 29) +Description = issuingDistributionPoint (2 5 29 28) + +OID = 06 03 55 1D 1D +Comment = X.509 id-ce (2 5 29) +Description = certificateIssuer (2 5 29 29) + +OID = 06 03 55 1D 1E +Comment = X.509 id-ce (2 5 29) +Description = nameConstraints (2 5 29 30) + +OID = 06 03 55 1D 1F +Comment = X.509 id-ce (2 5 29) +Description = cRLDistributionPoints (2 5 29 31) + +OID = 06 03 55 1D 20 +Comment = X.509 id-ce (2 5 29) +Description = certificatePolicies (2 5 29 32) + +OID = 06 04 55 1D 20 00 +Comment = X.509 certificatePolicies (2 5 29 32) +Description = AnyPolicy policyIdentifier (2 5 29 32 0) + +OID = 06 03 55 1D 21 +Comment = X.509 id-ce (2 5 29) +Description = policyMappings (2 5 29 33) + +#OID = 06 03 55 1D 22 +#Comment = X.509 id-ce (2 5 29). Deprecated, use (2 5 29 36) instead +#Description = policyConstraints (2 5 29 34) +#Warning +# conflicts with more useful definition + +OID = 06 03 55 1D 23 +Comment = X.509 id-ce (2 5 29) +Description = authorityKeyIdentifier (2 5 29 35) + +OID = 06 03 55 1D 24 +Comment = X.509 id-ce (2 5 29) +Description = policyConstraints (2 5 29 36) + +OID = 06 03 55 1D 25 +Comment = X.509 id-ce (2 5 29) +Description = extKeyUsage (2 5 29 37) + +# DMS + +OID = 06 09 60 86 48 01 65 02 01 01 01 +Comment = SDN.700 INFOSEC algorithms +Description = sdnsSignatureAlgorithm (2 16 840 1 101 2 1 1 1) + +OID = 06 09 60 86 48 01 65 02 01 01 02 +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicSignatureAlgorithm, this OID is better known as dsaWithSHA-1. +Description = fortezzaSignatureAlgorithm (2 16 840 1 101 2 1 1 2) + +OID = 06 09 60 86 48 01 65 02 01 01 03 +Comment = SDN.700 INFOSEC algorithms +Description = sdnsConfidentialityAlgorithm (2 16 840 1 101 2 1 1 3) + +OID = 06 09 60 86 48 01 65 02 01 01 04 +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicConfidentialityAlgorithm +Description = fortezzaConfidentialityAlgorithm (2 16 840 1 101 2 1 1 4) + +OID = 06 09 60 86 48 01 65 02 01 01 05 +Comment = SDN.700 INFOSEC algorithms +Description = sdnsIntegrityAlgorithm (2 16 840 1 101 2 1 1 5) + +OID = 06 09 60 86 48 01 65 02 01 01 06 +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicIntegrityAlgorithm +Description = fortezzaIntegrityAlgorithm (2 16 840 1 101 2 1 1 6) + +OID = 06 09 60 86 48 01 65 02 01 01 07 +Comment = SDN.700 INFOSEC algorithms +Description = sdnsTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 7) + +OID = 06 09 60 86 48 01 65 02 01 01 08 +Comment = SDN.700 INFOSEC algorithms. Formerly know as mosaicTokenProtectionAlgorithm +Description = fortezzaTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 8) + +OID = 06 09 60 86 48 01 65 02 01 01 09 +Comment = SDN.700 INFOSEC algorithms +Description = sdnsKeyManagementAlgorithm (2 16 840 1 101 2 1 1 9) + +OID = 06 09 60 86 48 01 65 02 01 01 0A +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyManagementAlgorithm +Description = fortezzaKeyManagementAlgorithm (2 16 840 1 101 2 1 1 10) + +OID = 06 09 60 86 48 01 65 02 01 01 0B +Comment = SDN.700 INFOSEC algorithms +Description = sdnsKMandSigAlgorithm (2 16 840 1 101 2 1 1 11) + +OID = 06 09 60 86 48 01 65 02 01 01 0C +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandSigAlgorithm +Description = fortezzaKMandSigAlgorithm (2 16 840 1 101 2 1 1 12) + +OID = 06 09 60 86 48 01 65 02 01 01 0D +Comment = SDN.700 INFOSEC algorithms +Description = suiteASignatureAlgorithm (2 16 840 1 101 2 1 1 13) + +OID = 06 09 60 86 48 01 65 02 01 01 0E +Comment = SDN.700 INFOSEC algorithms +Description = suiteAConfidentialityAlgorithm (2 16 840 1 101 2 1 1 14) + +OID = 06 09 60 86 48 01 65 02 01 01 0F +Comment = SDN.700 INFOSEC algorithms +Description = suiteAIntegrityAlgorithm (2 16 840 1 101 2 1 1 15) + +OID = 06 09 60 86 48 01 65 02 01 01 10 +Comment = SDN.700 INFOSEC algorithms +Description = suiteATokenProtectionAlgorithm (2 16 840 1 101 2 1 1 16) + +OID = 06 09 60 86 48 01 65 02 01 01 11 +Comment = SDN.700 INFOSEC algorithms +Description = suiteAKeyManagementAlgorithm (2 16 840 1 101 2 1 1 17) + +OID = 06 09 60 86 48 01 65 02 01 01 12 +Comment = SDN.700 INFOSEC algorithms +Description = suiteAKMandSigAlgorithm (2 16 840 1 101 2 1 1 18) + +OID = 06 09 60 86 48 01 65 02 01 01 13 +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedSigAlgorithm +Description = fortezzaUpdatedSigAlgorithm (2 16 840 1 101 2 1 1 19) + +OID = 06 09 60 86 48 01 65 02 01 01 14 +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandUpdSigAlgorithms +Description = fortezzaKMandUpdSigAlgorithms (2 16 840 1 101 2 1 1 20) + +OID = 06 09 60 86 48 01 65 02 01 01 15 +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedIntegAlgorithm +Description = fortezzaUpdatedIntegAlgorithm (2 16 840 1 101 2 1 1 21) + +OID = 06 09 60 86 48 01 65 02 01 01 16 +Comment = SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyEncryptionAlgorithm +Description = keyExchangeAlgorithm (2 16 840 1 101 2 1 1 22) + +OID = 06 09 60 86 48 01 65 02 01 01 17 +Comment = SDN.700 INFOSEC algorithms +Description = fortezzaWrap80Algorithm (2 16 840 1 101 2 1 1 23) + +OID = 06 09 60 86 48 01 65 02 01 01 18 +Comment = SDN.700 INFOSEC algorithms +Description = kEAKeyEncryptionAlgorithm (2 16 840 1 101 2 1 1 24) + +OID = 06 09 60 86 48 01 65 02 01 02 01 +Comment = SDN.700 INFOSEC format +Description = rfc822MessageFormat (2 16 840 1 101 2 1 2 1) + +OID = 06 09 60 86 48 01 65 02 01 02 02 +Comment = SDN.700 INFOSEC format +Description = emptyContent (2 16 840 1 101 2 1 2 2) + +OID = 06 09 60 86 48 01 65 02 01 02 03 +Comment = SDN.700 INFOSEC format +Description = cspContentType (2 16 840 1 101 2 1 2 3) + +OID = 06 09 60 86 48 01 65 02 01 02 2A +Comment = SDN.700 INFOSEC format +Description = mspRev3ContentType (2 16 840 1 101 2 1 2 42) + +OID = 06 09 60 86 48 01 65 02 01 02 30 +Comment = SDN.700 INFOSEC format +Description = mspContentType (2 16 840 1 101 2 1 2 48) + +OID = 06 09 60 86 48 01 65 02 01 02 31 +Comment = SDN.700 INFOSEC format +Description = mspRekeyAgentProtocol (2 16 840 1 101 2 1 2 49) + +OID = 06 09 60 86 48 01 65 02 01 02 32 +Comment = SDN.700 INFOSEC format +Description = mspMMP (2 16 840 1 101 2 1 2 50) + +OID = 06 09 60 86 48 01 65 02 01 02 42 +Comment = SDN.700 INFOSEC format +Description = mspRev3-1ContentType (2 16 840 1 101 2 1 2 66) + +OID = 06 09 60 86 48 01 65 02 01 02 48 +Comment = SDN.700 INFOSEC format +Description = forwardedMSPMessageBodyPart (2 16 840 1 101 2 1 2 72) + +OID = 06 09 60 86 48 01 65 02 01 02 49 +Comment = SDN.700 INFOSEC format +Description = mspForwardedMessageParameters (2 16 840 1 101 2 1 2 73) + +OID = 06 09 60 86 48 01 65 02 01 02 50 +Comment = SDN.700 INFOSEC format +Description = forwardedCSPMsgBodyPart (2 16 840 1 101 2 1 2 74) + +OID = 06 09 60 86 48 01 65 02 01 02 51 +Comment = SDN.700 INFOSEC format +Description = cspForwardedMessageParameters (2 16 840 1 101 2 1 2 75) + +OID = 06 09 60 86 48 01 65 02 01 02 52 +Comment = SDN.700 INFOSEC format +Description = mspMMP2 (2 16 840 1 101 2 1 2 76) + +OID = 06 09 60 86 48 01 65 02 01 03 01 +Comment = SDN.700 INFOSEC policy +Description = sdnsSecurityPolicy (2 16 840 1 101 2 1 3 1) + +OID = 06 09 60 86 48 01 65 02 01 03 02 +Comment = SDN.700 INFOSEC policy +Description = sdnsPRBAC (2 16 840 1 101 2 1 3 2) + +OID = 06 09 60 86 48 01 65 02 01 03 03 +Comment = SDN.700 INFOSEC policy +Description = mosaicPRBAC (2 16 840 1 101 2 1 3 3) + +OID = 06 09 60 86 48 01 65 02 01 03 0A +Comment = SDN.700 INFOSEC policy +Description = siSecurityPolicy (2 16 840 1 101 2 1 3 10) + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 00 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siNASP (2 16 840 1 101 2 1 3 10 0) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 01 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siELCO (2 16 840 1 101 2 1 3 10 1) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 02 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siTK (2 16 840 1 101 2 1 3 10 2) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 03 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siDSAP (2 16 840 1 101 2 1 3 10 3) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 04 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siSSSS (2 16 840 1 101 2 1 3 10 4) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 05 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siDNASP (2 16 840 1 101 2 1 3 10 5) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 06 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siBYEMAN (2 16 840 1 101 2 1 3 10 6) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 07 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siREL-US (2 16 840 1 101 2 1 3 10 7) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 08 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siREL-AUS (2 16 840 1 101 2 1 3 10 8) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 09 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siREL-CAN (2 16 840 1 101 2 1 3 10 9) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 0A +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siREL_UK (2 16 840 1 101 2 1 3 10 10) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 0B +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siREL-NZ (2 16 840 1 101 2 1 3 10 11) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0A 0C +Comment = SDN.700 INFOSEC policy (obsolete) +Description = siGeneric (2 16 840 1 101 2 1 3 10 12) +Warning + +OID = 06 09 60 86 48 01 65 02 01 03 0B +Comment = SDN.700 INFOSEC policy +Description = genser (2 16 840 1 101 2 1 3 11) + +OID = 06 0A 60 86 48 01 65 02 01 03 0B 00 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = genserNations (2 16 840 1 101 2 1 3 11 0) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0B 01 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = genserComsec (2 16 840 1 101 2 1 3 11 1) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0B 02 +Comment = SDN.700 INFOSEC policy (obsolete) +Description = genserAcquisition (2 16 840 1 101 2 1 3 11 2) +Warning + +OID = 06 0A 60 86 48 01 65 02 01 03 0B 03 +Comment = SDN.700 INFOSEC policy +Description = genserSecurityCategories (2 16 840 1 101 2 1 3 11 3) + +OID = 06 0B 60 86 48 01 65 02 01 03 0B 03 00 +Comment = SDN.700 INFOSEC GENSER policy +Description = genserTagSetName (2 16 840 1 101 2 1 3 11 3 0) + +OID = 06 09 60 86 48 01 65 02 01 03 0C +Comment = SDN.700 INFOSEC policy +Description = defaultSecurityPolicy (2 16 840 1 101 2 1 3 12) + +OID = 06 09 60 86 48 01 65 02 01 03 0D +Comment = SDN.700 INFOSEC policy +Description = capcoMarkings (2 16 840 1 101 2 1 3 13) + +OID = 06 0A 60 86 48 01 65 02 01 03 0D 00 +Comment = SDN.700 INFOSEC policy CAPCO markings +Description = capcoSecurityCategories (2 16 840 1 101 2 1 3 13 0) + +OID = 06 0B 60 86 48 01 65 02 01 03 0D 00 01 +Comment = SDN.700 INFOSEC policy CAPCO markings +Description = capcoTagSetName1 (2 16 840 1 101 2 1 3 13 0 1) + +OID = 06 0B 60 86 48 01 65 02 01 03 0D 00 02 +Comment = SDN.700 INFOSEC policy CAPCO markings +Description = capcoTagSetName2 (2 16 840 1 101 2 1 3 13 0 2) + +OID = 06 0B 60 86 48 01 65 02 01 03 0D 00 03 +Comment = SDN.700 INFOSEC policy CAPCO markings +Description = capcoTagSetName3 (2 16 840 1 101 2 1 3 13 0 3) + +OID = 06 0B 60 86 48 01 65 02 01 03 0D 00 04 +Comment = SDN.700 INFOSEC policy CAPCO markings +Description = capcoTagSetName4 (2 16 840 1 101 2 1 3 13 0 4) + +OID = 06 09 60 86 48 01 65 02 01 05 01 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = sdnsKeyManagementCertificate (2 16 840 1 101 2 1 5 1) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 02 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = sdnsUserSignatureCertificate (2 16 840 1 101 2 1 5 2) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 03 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = sdnsKMandSigCertificate (2 16 840 1 101 2 1 5 3) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 04 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = fortezzaKeyManagementCertificate (2 16 840 1 101 2 1 5 4) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 05 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = fortezzaKMandSigCertificate (2 16 840 1 101 2 1 5 5) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 06 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = fortezzaUserSignatureCertificate (2 16 840 1 101 2 1 5 6) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 07 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = fortezzaCASignatureCertificate (2 16 840 1 101 2 1 5 7) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 08 +Comment = SDN.700 INFOSEC attributes (superseded) +Description = sdnsCASignatureCertificate (2 16 840 1 101 2 1 5 8) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 0A +Comment = SDN.700 INFOSEC attributes (superseded) +Description = auxiliaryVector (2 16 840 1 101 2 1 5 10) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 0B +Comment = SDN.700 INFOSEC attributes +Description = mlReceiptPolicy (2 16 840 1 101 2 1 5 11) + +OID = 06 09 60 86 48 01 65 02 01 05 0C +Comment = SDN.700 INFOSEC attributes +Description = mlMembership (2 16 840 1 101 2 1 5 12) + +OID = 06 09 60 86 48 01 65 02 01 05 0D +Comment = SDN.700 INFOSEC attributes +Description = mlAdministrators (2 16 840 1 101 2 1 5 13) + +OID = 06 09 60 86 48 01 65 02 01 05 0E +Comment = SDN.700 INFOSEC attributes +Description = alid (2 16 840 1 101 2 1 5 14) + +OID = 06 09 60 86 48 01 65 02 01 05 14 +Comment = SDN.700 INFOSEC attributes +Description = janUKMs (2 16 840 1 101 2 1 5 20) + +OID = 06 09 60 86 48 01 65 02 01 05 15 +Comment = SDN.700 INFOSEC attributes +Description = febUKMs (2 16 840 1 101 2 1 5 21) + +OID = 06 09 60 86 48 01 65 02 01 05 16 +Comment = SDN.700 INFOSEC attributes +Description = marUKMs (2 16 840 1 101 2 1 5 22) + +OID = 06 09 60 86 48 01 65 02 01 05 17 +Comment = SDN.700 INFOSEC attributes +Description = aprUKMs (2 16 840 1 101 2 1 5 23) + +OID = 06 09 60 86 48 01 65 02 01 05 18 +Comment = SDN.700 INFOSEC attributes +Description = mayUKMs (2 16 840 1 101 2 1 5 24) + +OID = 06 09 60 86 48 01 65 02 01 05 19 +Comment = SDN.700 INFOSEC attributes +Description = junUKMs (2 16 840 1 101 2 1 5 25) + +OID = 06 09 60 86 48 01 65 02 01 05 1A +Comment = SDN.700 INFOSEC attributes +Description = julUKMs (2 16 840 1 101 2 1 5 26) + +OID = 06 09 60 86 48 01 65 02 01 05 1B +Comment = SDN.700 INFOSEC attributes +Description = augUKMs (2 16 840 1 101 2 1 5 27) + +OID = 06 09 60 86 48 01 65 02 01 05 1C +Comment = SDN.700 INFOSEC attributes +Description = sepUKMs (2 16 840 1 101 2 1 5 28) + +OID = 06 09 60 86 48 01 65 02 01 05 1D +Comment = SDN.700 INFOSEC attributes +Description = octUKMs (2 16 840 1 101 2 1 5 29) + +OID = 06 09 60 86 48 01 65 02 01 05 1E +Comment = SDN.700 INFOSEC attributes +Description = novUKMs (2 16 840 1 101 2 1 5 30) + +OID = 06 09 60 86 48 01 65 02 01 05 1F +Comment = SDN.700 INFOSEC attributes +Description = decUKMs (2 16 840 1 101 2 1 5 31) + +OID = 06 09 60 86 48 01 65 02 01 05 28 +Comment = SDN.700 INFOSEC attributes +Description = metaSDNSckl (2 16 840 1 101 2 1 5 40) + +OID = 06 09 60 86 48 01 65 02 01 05 29 +Comment = SDN.700 INFOSEC attributes +Description = sdnsCKL (2 16 840 1 101 2 1 5 41) + +OID = 06 09 60 86 48 01 65 02 01 05 2A +Comment = SDN.700 INFOSEC attributes +Description = metaSDNSsignatureCKL (2 16 840 1 101 2 1 5 42) + +OID = 06 09 60 86 48 01 65 02 01 05 2B +Comment = SDN.700 INFOSEC attributes +Description = sdnsSignatureCKL (2 16 840 1 101 2 1 5 43) + +#OID = 06 09 60 86 48 01 65 02 01 05 2C +#Comment = SDN.700 INFOSEC attributes +#Description = sdnsCertificateRevocationList (2 16 840 1 101 2 1 5 44) +# conflicts with more useful definition + +OID = 06 09 60 86 48 01 65 02 01 05 2D +Comment = SDN.700 INFOSEC attributes (superseded) +Description = fortezzaCertificateRevocationList (2 16 840 1 101 2 1 5 45) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 2E +Comment = SDN.700 INFOSEC attributes +Description = fortezzaCKL (2 16 840 1 101 2 1 5 46) + +OID = 06 09 60 86 48 01 65 02 01 05 2F +Comment = SDN.700 INFOSEC attributes +Description = alExemptedAddressProcessor (2 16 840 1 101 2 1 5 47) + +OID = 06 09 60 86 48 01 65 02 01 05 30 +Comment = SDN.700 INFOSEC attributes (obsolete) +Description = guard (2 16 840 1 101 2 1 5 48) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 31 +Comment = SDN.700 INFOSEC attributes (obsolete) +Description = algorithmsSupported (2 16 840 1 101 2 1 5 49) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 32 +Comment = SDN.700 INFOSEC attributes (obsolete) +Description = suiteAKeyManagementCertificate (2 16 840 1 101 2 1 5 50) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 33 +Comment = SDN.700 INFOSEC attributes (obsolete) +Description = suiteAKMandSigCertificate (2 16 840 1 101 2 1 5 51) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 34 +Comment = SDN.700 INFOSEC attributes (obsolete) +Description = suiteAUserSignatureCertificate (2 16 840 1 101 2 1 5 52) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 35 +Comment = SDN.700 INFOSEC attributes +Description = prbacInfo (2 16 840 1 101 2 1 5 53) + +OID = 06 09 60 86 48 01 65 02 01 05 36 +Comment = SDN.700 INFOSEC attributes +Description = prbacCAConstraints (2 16 840 1 101 2 1 5 54) + +OID = 06 09 60 86 48 01 65 02 01 05 37 +Comment = SDN.700 INFOSEC attributes +Description = sigOrKMPrivileges (2 16 840 1 101 2 1 5 55) + +OID = 06 09 60 86 48 01 65 02 01 05 38 +Comment = SDN.700 INFOSEC attributes +Description = commPrivileges (2 16 840 1 101 2 1 5 56) + +OID = 06 09 60 86 48 01 65 02 01 05 39 +Comment = SDN.700 INFOSEC attributes +Description = labeledAttribute (2 16 840 1 101 2 1 5 57) + +OID = 06 09 60 86 48 01 65 02 01 05 3A +Comment = SDN.700 INFOSEC attributes (obsolete) +Description = policyInformationFile (2 16 840 1 101 2 1 5 58) +Warning + +OID = 06 09 60 86 48 01 65 02 01 05 3B +Comment = SDN.700 INFOSEC attributes +Description = secPolicyInformationFile (2 16 840 1 101 2 1 5 59) + +OID = 06 09 60 86 48 01 65 02 01 05 3C +Comment = SDN.700 INFOSEC attributes +Description = cAClearanceConstraint (2 16 840 1 101 2 1 5 60) + +OID = 06 09 60 86 48 01 65 02 01 07 01 +Comment = SDN.700 INFOSEC extensions +Description = cspExtns (2 16 840 1 101 2 1 7 1) + +OID = 06 0A 60 86 48 01 65 02 01 07 01 00 +Comment = SDN.700 INFOSEC extensions +Description = cspCsExtn (2 16 840 1 101 2 1 7 1 0) + +OID = 06 09 60 86 48 01 65 02 01 08 01 +Comment = SDN.700 INFOSEC security category +Description = mISSISecurityCategories (2 16 840 1 101 2 1 8 1) + +OID = 06 09 60 86 48 01 65 02 01 08 02 +Comment = SDN.700 INFOSEC security category +Description = standardSecurityLabelPrivileges (2 16 840 1 101 2 1 8 2) + +OID = 06 09 60 86 48 01 65 02 01 0A 01 +Comment = SDN.700 INFOSEC privileges +Description = sigPrivileges (2 16 840 1 101 2 1 10 1) + +OID = 06 09 60 86 48 01 65 02 01 0A 02 +Comment = SDN.700 INFOSEC privileges +Description = kmPrivileges (2 16 840 1 101 2 1 10 2) + +OID = 06 09 60 86 48 01 65 02 01 0A 03 +Comment = SDN.700 INFOSEC privileges +Description = namedTagSetPrivilege (2 16 840 1 101 2 1 10 3) + +OID = 06 09 60 86 48 01 65 02 01 0B 01 +Comment = SDN.700 INFOSEC certificate policy +Description = ukDemo (2 16 840 1 101 2 1 11 1) + +OID = 06 09 60 86 48 01 65 02 01 0B 02 +Comment = SDN.700 INFOSEC certificate policy +Description = usDODClass2 (2 16 840 1 101 2 1 11 2) + +OID = 06 09 60 86 48 01 65 02 01 0B 03 +Comment = SDN.700 INFOSEC certificate policy +Description = usMediumPilot (2 16 840 1 101 2 1 11 3) + +OID = 06 09 60 86 48 01 65 02 01 0B 04 +Comment = SDN.700 INFOSEC certificate policy +Description = usDODClass4 (2 16 840 1 101 2 1 11 4) + +OID = 06 09 60 86 48 01 65 02 01 0B 05 +Comment = SDN.700 INFOSEC certificate policy +Description = usDODClass3 (2 16 840 1 101 2 1 11 5) + +OID = 06 09 60 86 48 01 65 02 01 0B 06 +Comment = SDN.700 INFOSEC certificate policy +Description = usDODClass5 (2 16 840 1 101 2 1 11 6) + +OID = 06 09 60 86 48 01 65 02 01 0C 00 +Comment = SDN.700 INFOSEC test objects +Description = testSecurityPolicy (2 16 840 1 101 2 1 12 0) + +OID = 06 0A 60 86 48 01 65 02 01 0C 00 01 +Comment = SDN.700 INFOSEC test objects +Description = tsp1 (2 16 840 1 101 2 1 12 0 1) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 01 00 +Comment = SDN.700 INFOSEC test objects +Description = tsp1SecurityCategories (2 16 840 1 101 2 1 12 0 1 0) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 01 00 00 +Comment = SDN.700 INFOSEC test objects +Description = tsp1TagSetZero (2 16 840 1 101 2 1 12 0 1 0 0) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 01 00 01 +Comment = SDN.700 INFOSEC test objects +Description = tsp1TagSetOne (2 16 840 1 101 2 1 12 0 1 0 1) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 01 00 02 +Comment = SDN.700 INFOSEC test objects +Description = tsp1TagSetTwo (2 16 840 1 101 2 1 12 0 1 0 2) + +OID = 06 0A 60 86 48 01 65 02 01 0C 00 02 +Comment = SDN.700 INFOSEC test objects +Description = tsp2 (2 16 840 1 101 2 1 12 0 2) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 02 00 +Comment = SDN.700 INFOSEC test objects +Description = tsp2SecurityCategories (2 16 840 1 101 2 1 12 0 2 0) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 02 00 00 +Comment = SDN.700 INFOSEC test objects +Description = tsp2TagSetZero (2 16 840 1 101 2 1 12 0 2 0 0) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 02 00 01 +Comment = SDN.700 INFOSEC test objects +Description = tsp2TagSetOne (2 16 840 1 101 2 1 12 0 2 0 1) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 02 00 02 +Comment = SDN.700 INFOSEC test objects +Description = tsp2TagSetTwo (2 16 840 1 101 2 1 12 0 2 0 2) + +# At least someone there has a sense of humour :-) +OID = 06 0A 60 86 48 01 65 02 01 0C 00 03 +Comment = SDN.700 INFOSEC test objects +Description = kafka (2 16 840 1 101 2 1 12 0 3) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 03 00 +Comment = SDN.700 INFOSEC test objects +Description = kafkaSecurityCategories (2 16 840 1 101 2 1 12 0 3 0) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 03 00 01 +Comment = SDN.700 INFOSEC test objects +Description = kafkaTagSetName1 (2 16 840 1 101 2 1 12 0 3 0 1) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 03 00 02 +Comment = SDN.700 INFOSEC test objects +Description = kafkaTagSetName2 (2 16 840 1 101 2 1 12 0 3 0 2) + +OID = 06 0B 60 86 48 01 65 02 01 0C 00 03 00 03 +Comment = SDN.700 INFOSEC test objects +Description = kafkaTagSetName3 (2 16 840 1 101 2 1 12 0 3 0 3) + +OID = 06 0A 60 86 48 01 65 02 01 0C 01 01 +Comment = SDN.700 INFOSEC test objects +Description = tcp1 (2 16 840 1 101 2 1 12 1 1) + +# CSOR GAK-FIPS + +OID = 06 07 60 86 48 01 65 03 01 +Comment = CSOR GAK +Description = slabel (2 16 840 1 101 3 1) +Warning + +#OID = 06 07 60 86 48 01 65 03 02 +#Comment = CSOR GAK +#Description = pki (2 16 840 1 101 3 2) +#Warning +# conflicts with more useful definition + +OID = 06 08 60 86 48 01 65 03 02 01 +Comment = CSOR GAK policy +Description = GAK policyIdentifier (2 16 840 1 101 3 2 1) +Warning + +OID = 06 0A 60 86 48 01 65 03 02 01 03 01 +Comment = Federal Bridge CA Policy +Description = FBCA-Rudimentary policyIdentifier (2 16 840 1 101 3 2 1 3 1) + +OID = 06 0A 60 86 48 01 65 03 02 01 03 02 +Comment = Federal Bridge CA Policy +Description = FBCA-Basic policyIdentifier (2 16 840 1 101 3 2 1 3 2) + +OID = 06 0A 60 86 48 01 65 03 02 01 03 03 +Comment = Federal Bridge CA Policy +Description = FBCA-Medium policyIdentifier (2 16 840 1 101 3 2 1 3 3) + +OID = 06 0A 60 86 48 01 65 03 02 01 03 04 +Comment = Federal Bridge CA Policy +Description = FBCA-High policyIdentifier (2 16 840 1 101 3 2 1 3 4) + +OID = 06 08 60 86 48 01 65 03 02 02 +Comment = CSOR GAK extended key usage +Description = GAK (2 16 840 1 101 3 2 2) +Warning + +OID = 06 09 60 86 48 01 65 03 02 02 01 +Comment = CSOR GAK extended key usage +Description = kRAKey (2 16 840 1 101 3 2 2 1) +Warning + +OID = 06 08 60 86 48 01 65 03 02 03 +Comment = CSOR GAK extensions +Description = extensions (2 16 840 1 101 3 2 3) +Warning + +OID = 06 09 60 86 48 01 65 03 02 03 01 +Comment = CSOR GAK extensions +Description = kRTechnique (2 16 840 1 101 3 2 3 1) +Warning + +OID = 06 09 60 86 48 01 65 03 02 03 02 +Comment = CSOR GAK extensions +Description = kRecoveryCapable (2 16 840 1 101 3 2 3 2) +Warning + +OID = 06 09 60 86 48 01 65 03 02 03 03 +Comment = CSOR GAK extensions +Description = kR (2 16 840 1 101 3 2 3 3) +Warning + +OID = 06 08 60 86 48 01 65 03 02 04 +Comment = CSOR GAK +Description = keyrecoveryschemes (2 16 840 1 101 3 2 4) +Warning + +OID = 06 08 60 86 48 01 65 03 02 05 +Comment = CSOR GAK +Description = krapola (2 16 840 1 101 3 2 5) +Warning + +OID = 06 07 60 86 48 01 65 03 03 +Comment = CSOR GAK +Description = arpa (2 16 840 1 101 3 3) +Warning + +# CSOR (NIST) Algorithms + +OID = 06 07 60 86 48 01 65 03 04 +Comment = NIST Algorithm +Description = nistAlgorithm (2 16 840 1 101 3 4) + +OID = 06 08 60 86 48 01 65 03 04 01 +Comment = NIST Algorithm +Description = aes (2 16 840 1 101 3 4 1) + +OID = 06 09 60 86 48 01 65 03 04 01 01 +Comment = NIST Algorithm +Description = aes128-ECB (2 16 840 1 101 3 4 1 1) + +OID = 06 09 60 86 48 01 65 03 04 01 02 +Comment = NIST Algorithm +Description = aes128-CBC (2 16 840 1 101 3 4 1 2) + +OID = 06 09 60 86 48 01 65 03 04 01 03 +Comment = NIST Algorithm +Description = aes128-OFB (2 16 840 1 101 3 4 1 3) + +OID = 06 09 60 86 48 01 65 03 04 01 04 +Comment = NIST Algorithm +Description = aes128-CFB (2 16 840 1 101 3 4 1 4) + +OID = 06 09 60 86 48 01 65 03 04 01 15 +Comment = NIST Algorithm +Description = aes192-ECB (2 16 840 1 101 3 4 1 21) + +OID = 06 09 60 86 48 01 65 03 04 01 16 +Comment = NIST Algorithm +Description = aes192-CBC (2 16 840 1 101 3 4 1 22) + +OID = 06 09 60 86 48 01 65 03 04 01 17 +Comment = NIST Algorithm +Description = aes192-OFB (2 16 840 1 101 3 4 1 23) + +OID = 06 09 60 86 48 01 65 03 04 01 18 +Comment = NIST Algorithm +Description = aes192-CFB (2 16 840 1 101 3 4 1 24) + +OID = 06 09 60 86 48 01 65 03 04 01 29 +Comment = NIST Algorithm +Description = aes256-ECB (2 16 840 1 101 3 4 1 41) + +OID = 06 09 60 86 48 01 65 03 04 01 2A +Comment = NIST Algorithm +Description = aes256-CBC (2 16 840 1 101 3 4 1 42) + +OID = 06 09 60 86 48 01 65 03 04 01 2B +Comment = NIST Algorithm +Description = aes256-OFB (2 16 840 1 101 3 4 1 43) + +OID = 06 09 60 86 48 01 65 03 04 01 2C +Comment = NIST Algorithm +Description = aes256-CFB (2 16 840 1 101 3 4 1 44) + +# Novell + +OID = 06 0A 60 86 48 01 86 F8 37 01 02 08 +Comment = Novell +Description = novellAlgorithm (2 16 840 1 113719 1 2 8) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 16 +Comment = Novell encryption algorithm +Description = desCbcIV8 (2 16 840 1 113719 1 2 8 22) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 17 +Comment = Novell encryption algorithm +Description = desCbcPadIV8 (2 16 840 1 113719 1 2 8 23) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 18 +Comment = Novell encryption algorithm +Description = desEDE2CbcIV8 (2 16 840 1 113719 1 2 8 24) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 19 +Comment = Novell encryption algorithm +Description = desEDE2CbcPadIV8 (2 16 840 1 113719 1 2 8 25) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 1A +Comment = Novell encryption algorithm +Description = desEDE3CbcIV8 (2 16 840 1 113719 1 2 8 26) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 1B +Comment = Novell encryption algorithm +Description = desEDE3CbcPadIV8 (2 16 840 1 113719 1 2 8 27) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 1C +Comment = Novell encryption algorithm +Description = rc5CbcPad (2 16 840 1 113719 1 2 8 28) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 1D +Comment = Novell signature algorithm +Description = md2WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 29) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 1E +Comment = Novell signature algorithm +Description = md5WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 30) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 1F +Comment = Novell signature algorithm +Description = sha1WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 31) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 20 +Comment = Novell digest algorithm +Description = LMDigest (2 16 840 1 113719 1 2 8 32) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 28 +Comment = Novell digest algorithm +Description = MD2 (2 16 840 1 113719 1 2 8 40) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 32 +Comment = Novell digest algorithm +Description = MD5 (2 16 840 1 113719 1 2 8 50) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 33 +Comment = Novell signature algorithm +Description = IKEhmacWithSHA1-RSA (2 16 840 1 113719 1 2 8 51) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 34 +Comment = Novell signature algorithm +Description = IKEhmacWithMD5-RSA (2 16 840 1 113719 1 2 8 52) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 45 +Comment = Novell encryption algorithm +Description = rc2CbcPad (2 16 840 1 113719 1 2 8 69) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 52 +Comment = Novell digest algorithm +Description = SHA-1 (2 16 840 1 113719 1 2 8 82) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 5C +Comment = Novell encryption algorithm +Description = rc2BSafe1Cbc (2 16 840 1 113719 1 2 8 92) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 5F +Comment = Novell digest algorithm +Description = MD4 (2 16 840 1 113719 1 2 8 95) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 81 02 +Comment = Novell keyed hash +Description = MD4Packet (2 16 840 1 113719 1 2 8 130) + +OID = 06 0C 60 86 48 01 86 F8 37 01 02 08 81 03 +Comment = Novell encryption algorithm +Description = rsaEncryptionBsafe1 (2 16 840 1 113719 1 2 8 131) + +OID = 06 0C 60 86 48 01 86 F8 37 01 02 08 81 04 +Comment = Novell encryption algorithm +Description = NWPassword (2 16 840 1 113719 1 2 8 132) + +OID = 06 0B 60 86 48 01 86 F8 37 01 02 08 81 05 +Comment = Novell encryption algorithm +Description = novellObfuscate-1 (2 16 840 1 113719 1 2 8 133) + +OID = 06 09 60 86 48 01 86 F8 37 01 09 +Comment = Novell +Description = pki (2 16 840 1 113719 1 9) + +OID = 06 0A 60 86 48 01 86 F8 37 01 09 04 +Comment = Novell PKI +Description = pkiAttributeType (2 16 840 1 113719 1 9 4) + +OID = 06 0B 60 86 48 01 86 F8 37 01 09 04 01 +Comment = Novell PKI attribute type +Description = securityAttributes (2 16 840 1 113719 1 9 4 1) + +OID = 06 0B 60 86 48 01 86 F8 37 01 09 04 02 +Comment = Novell PKI attribute type +Description = relianceLimit (2 16 840 1 113719 1 9 4 2) + +# Netscape + +OID = 06 08 60 86 48 01 86 F8 42 01 +Comment = Netscape +Description = cert-extension (2 16 840 1 113730 1) + +OID = 06 09 60 86 48 01 86 F8 42 01 01 +Comment = Netscape certificate extension +Description = netscape-cert-type (2 16 840 1 113730 1 1) + +OID = 06 09 60 86 48 01 86 F8 42 01 02 +Comment = Netscape certificate extension +Description = netscape-base-url (2 16 840 1 113730 1 2) + +OID = 06 09 60 86 48 01 86 F8 42 01 03 +Comment = Netscape certificate extension +Description = netscape-revocation-url (2 16 840 1 113730 1 3) + +OID = 06 09 60 86 48 01 86 F8 42 01 04 +Comment = Netscape certificate extension +Description = netscape-ca-revocation-url (2 16 840 1 113730 1 4) + +OID = 06 09 60 86 48 01 86 F8 42 01 07 +Comment = Netscape certificate extension +Description = netscape-cert-renewal-url (2 16 840 1 113730 1 7) + +OID = 06 09 60 86 48 01 86 F8 42 01 08 +Comment = Netscape certificate extension +Description = netscape-ca-policy-url (2 16 840 1 113730 1 8) + +OID = 06 09 60 86 48 01 86 F8 42 01 09 +Comment = Netscape certificate extension +Description = HomePage-url (2 16 840 1 113730 1 9) + +OID = 06 09 60 86 48 01 86 F8 42 01 0A +Comment = Netscape certificate extension +Description = EntityLogo (2 16 840 1 113730 1 10) + +OID = 06 09 60 86 48 01 86 F8 42 01 0B +Comment = Netscape certificate extension +Description = UserPicture (2 16 840 1 113730 1 11) + +OID = 06 09 60 86 48 01 86 F8 42 01 0C +Comment = Netscape certificate extension +Description = netscape-ssl-server-name (2 16 840 1 113730 1 12) + +OID = 06 09 60 86 48 01 86 F8 42 01 0D +Comment = Netscape certificate extension +Description = netscape-comment (2 16 840 1 113730 1 13) + +OID = 06 08 60 86 48 01 86 F8 42 02 +Comment = Netscape +Description = data-type (2 16 840 1 113730 2) + +OID = 06 09 60 86 48 01 86 F8 42 02 01 +Comment = Netscape data type +Description = dataGIF (2 16 840 1 113730 2 1) + +OID = 06 09 60 86 48 01 86 F8 42 02 02 +Comment = Netscape data type +Description = dataJPEG (2 16 840 1 113730 2 2) + +OID = 06 09 60 86 48 01 86 F8 42 02 03 +Comment = Netscape data type +Description = dataURL (2 16 840 1 113730 2 3) + +OID = 06 09 60 86 48 01 86 F8 42 02 04 +Comment = Netscape data type +Description = dataHTML (2 16 840 1 113730 2 4) + +OID = 06 09 60 86 48 01 86 F8 42 02 05 +Comment = Netscape data type +Description = certSequence (2 16 840 1 113730 2 5) + +OID = 06 09 60 86 48 01 86 F8 42 02 06 +Comment = Netscape certificate extension +Description = certURL (2 16 840 1 113730 2 6) + +OID = 06 08 60 86 48 01 86 F8 42 03 +Comment = Netscape +Description = directory (2 16 840 1 113730 3) + +OID = 06 09 60 86 48 01 86 F8 42 03 01 +Comment = Netscape directory +Description = ldapDefinitions (2 16 840 1 113730 3 1) + +OID = 06 0A 60 86 48 01 86 F8 42 03 01 01 +Comment = Netscape LDAP definitions +Description = carLicense (2 16 840 1 113730 3 1 1) + +OID = 06 0A 60 86 48 01 86 F8 42 03 01 02 +Comment = Netscape LDAP definitions +Description = departmentNumber (2 16 840 1 113730 3 1 2) + +OID = 06 0A 60 86 48 01 86 F8 42 03 01 03 +Comment = Netscape LDAP definitions +Description = employeeNumber (2 16 840 1 113730 3 1 3) + +OID = 06 0A 60 86 48 01 86 F8 42 03 01 04 +Comment = Netscape LDAP definitions +Description = employeeType (2 16 840 1 113730 3 1 4) + +OID = 06 0A 60 86 48 01 86 F8 42 03 02 02 +Comment = Netscape LDAP definitions +Description = inetOrgPerson (2 16 840 1 113730 3 2 2) + +OID = 06 09 60 86 48 01 86 F8 42 04 01 +Comment = Netscape +Description = serverGatedCrypto (2 16 840 1 113730 4 1) + +# Verisign + +# Country, zip, date of birth (age), and gender of cert owner (CZAG) in +# obfuscated form +OID = 06 0A 60 86 48 01 86 F8 45 01 06 03 +Comment = Verisign +Description = verisignCZAG (2 16 840 1 113733 1 6 3) + +# Text string used in certs issued to Netscape InBox customers +OID = 06 0A 60 86 48 01 86 F8 45 01 06 06 +Comment = Verisign +Description = verisignInBox (2 16 840 1 113733 1 6 6) + +#OID = 06 0A 60 86 48 01 86 F8 45 01 06 0B +#Comment = Verisign +#Description = Unknown Verisign VPN extension (2 16 840 1 113733 1 6 11) +# conflicts with more useful definition + +OID = 06 0A 60 86 48 01 86 F8 45 01 06 0D +Comment = Verisign +Description = Unknown Verisign VPN extension (2 16 840 1 113733 1 6 13) + +OID = 06 0B 60 86 48 01 86 F8 45 01 07 01 01 +Comment = Verisign +Description = Verisign policyIdentifier (2 16 840 1 113733 1 7 1 1) + +OID = 06 0C 60 86 48 01 86 F8 45 01 07 01 01 01 +Comment = Verisign (obsolete) +Description = verisignCPSv1notice (2 16 840 1 113733 1 7 1 1 1) + +# DN contains non-verified subscriber information +OID = 06 0C 60 86 48 01 86 F8 45 01 07 01 01 02 +Comment = Verisign (obsolete) +Description = verisignCPSv1nsi (2 16 840 1 113733 1 7 1 1 2) + +OID = 06 0A 60 86 48 01 86 F8 45 01 08 01 +Comment = Verisign +Description = Verisign SGC CA? (2 16 840 1 113733 1 8 1) + +# SET + +#OID = 06 03 67 2A 00 +#Comment = SET +#Description = contentType (2 23 42 0) +# conflicts with more useful definition + +OID = 06 04 67 2A 00 00 +Comment = SET contentType +Description = PANData (2 23 42 0 0) + +OID = 06 04 67 2A 00 01 +Comment = SET contentType +Description = PANToken (2 23 42 0 1) + +OID = 06 04 67 2A 00 02 +Comment = SET contentType +Description = PANOnly (2 23 42 0 2) + +# And on and on and on for another 80-odd OIDs which I'm not going to type in + +OID = 06 03 67 2A 01 +Comment = SET +Description = msgExt (2 23 42 1) + +OID = 06 03 67 2A 02 +Comment = SET +Description = field (2 23 42 2) + +OID = 06 04 67 2A 02 00 +Comment = SET field +Description = fullName (2 23 42 2 0) + +#OID = 06 04 67 2A 02 01 +#Comment = SET field +#Description = givenName (2 23 42 2 1) +# conflicts with more useful definition + +OID = 06 04 67 2A 02 02 +Comment = SET field +Description = familyName (2 23 42 2 2) + +OID = 06 04 67 2A 02 03 +Comment = SET field +Description = birthFamilyName (2 23 42 2 3) + +OID = 06 04 67 2A 02 04 +Comment = SET field +Description = placeName (2 23 42 2 4) + +OID = 06 04 67 2A 02 05 +Comment = SET field +Description = identificationNumber (2 23 42 2 5) + +OID = 06 04 67 2A 02 06 +Comment = SET field +Description = month (2 23 42 2 6) + +OID = 06 04 67 2A 02 07 +Comment = SET field +Description = date (2 23 42 2 7) + +OID = 06 04 67 2A 02 08 +Comment = SET field +Description = address (2 23 42 2 8) + +OID = 06 04 67 2A 02 09 +Comment = SET field +Description = telephone (2 23 42 2 9) + +OID = 06 04 67 2A 02 0A +Comment = SET field +Description = amount (2 23 42 2 10) + +OID = 06 04 67 2A 02 0B +Comment = SET field +Description = accountNumber (2 23 42 2 7 11) + +OID = 06 04 67 2A 02 0C +Comment = SET field +Description = passPhrase (2 23 42 2 7 12) + +OID = 06 03 67 2A 03 +Comment = SET +Description = attribute (2 23 42 3) + +OID = 06 04 67 2A 03 00 +Comment = SET attribute +Description = cert (2 23 42 3 0) + +OID = 06 05 67 2A 03 00 00 +Comment = SET cert attribute +Description = rootKeyThumb (2 23 42 3 0 0) + +OID = 06 05 67 2A 03 00 01 +Comment = SET cert attribute +Description = additionalPolicy (2 23 42 3 0 1) + +OID = 06 03 67 2A 04 +Comment = SET +Description = algorithm (2 23 42 4) + +OID = 06 03 67 2A 05 +Comment = SET +Description = policy (2 23 42 5) + +OID = 06 04 67 2A 05 00 +Comment = SET policy +Description = root (2 23 42 5 0) + +OID = 06 03 67 2A 06 +Comment = SET +Description = module (2 23 42 6) + +OID = 06 03 67 2A 07 +Comment = SET +Description = certExt (2 23 42 7) + +OID = 06 04 67 2A 07 00 +Comment = SET cert extension +Description = hashedRootKey (2 23 42 7 0) + +OID = 06 04 67 2A 07 01 +Comment = SET cert extension +Description = certificateType (2 23 42 7 1) + +OID = 06 04 67 2A 07 02 +Comment = SET cert extension +Description = merchantData (2 23 42 7 2) + +OID = 06 04 67 2A 07 03 +Comment = SET cert extension +Description = cardCertRequired (2 23 42 7 3) + +OID = 06 04 67 2A 07 04 +Comment = SET cert extension +Description = tunneling (2 23 42 7 4) + +OID = 06 04 67 2A 07 05 +Comment = SET cert extension +Description = setExtensions (2 23 42 7 5) + +OID = 06 04 67 2A 07 06 +Comment = SET cert extension +Description = setQualifier (2 23 42 7 6) + +OID = 06 03 67 2A 08 +Comment = SET +Description = brand (2 23 42 8) + +OID = 06 04 67 2A 08 01 +Comment = SET brand +Description = IATA-ATA (2 23 42 8 1) + +OID = 06 04 67 2A 08 04 +Comment = SET brand +Description = VISA (2 23 42 8 4) + +OID = 06 04 67 2A 08 05 +Comment = SET brand +Description = MasterCard (2 23 42 8 5) + +OID = 06 04 67 2A 08 1E +Comment = SET brand +Description = Diners (2 23 42 8 30) + +OID = 06 04 67 2A 08 22 +Comment = SET brand +Description = AmericanExpress (2 23 42 8 34) + +OID = 06 05 67 2A 08 AE 7B +Comment = SET brand +Description = Novus (2 23 42 8 6011) + +OID = 06 03 67 2A 09 +Comment = SET +Description = vendor (2 23 42 9) + +OID = 06 04 67 2A 09 00 +Comment = SET vendor +Description = GlobeSet (2 23 42 9 0) + +OID = 06 04 67 2A 09 01 +Comment = SET vendor +Description = IBM (2 23 42 9 1) + +OID = 06 04 67 2A 09 02 +Comment = SET vendor +Description = CyberCash (2 23 42 9 2) + +OID = 06 04 67 2A 09 03 +Comment = SET vendor +Description = Terisa (2 23 42 9 3) + +OID = 06 04 67 2A 09 04 +Comment = SET vendor +Description = RSADSI (2 23 42 9 4) + +OID = 06 04 67 2A 09 05 +Comment = SET vendor +Description = VeriFone (2 23 42 9 5) + +OID = 06 04 67 2A 09 06 +Comment = SET vendor +Description = TrinTech (2 23 42 9 6) + +OID = 06 04 67 2A 09 07 +Comment = SET vendor +Description = BankGate (2 23 42 9 7) + +OID = 06 04 67 2A 09 08 +Comment = SET vendor +Description = GTE (2 23 42 9 8) + +OID = 06 04 67 2A 09 09 +Comment = SET vendor +Description = CompuSource (2 23 42 9 9) + +OID = 06 04 67 2A 09 0A +Comment = SET vendor +Description = Griffin (2 23 42 9 10) + +OID = 06 04 67 2A 09 0B +Comment = SET vendor +Description = Certicom (2 23 42 9 11) + +OID = 06 04 67 2A 09 0C +Comment = SET vendor +Description = OSS (2 23 42 9 12) + +OID = 06 04 67 2A 09 0D +Comment = SET vendor +Description = TenthMountain (2 23 42 9 13) + +OID = 06 04 67 2A 09 0E +Comment = SET vendor +Description = Antares (2 23 42 9 14) + +OID = 06 04 67 2A 09 0F +Comment = SET vendor +Description = ECC (2 23 42 9 15) + +OID = 06 04 67 2A 09 10 +Comment = SET vendor +Description = Maithean (2 23 42 9 16) + +OID = 06 04 67 2A 09 11 +Comment = SET vendor +Description = Netscape (2 23 42 9 17) + +OID = 06 04 67 2A 09 12 +Comment = SET vendor +Description = Verisign (2 23 42 9 18) + +OID = 06 04 67 2A 09 13 +Comment = SET vendor +Description = BlueMoney (2 23 42 9 19) + +OID = 06 04 67 2A 09 14 +Comment = SET vendor +Description = Lacerte (2 23 42 9 20) + +OID = 06 04 67 2A 09 15 +Comment = SET vendor +Description = Fujitsu (2 23 42 9 21) + +OID = 06 04 67 2A 09 16 +Comment = SET vendor +Description = eLab (2 23 42 9 22) + +OID = 06 04 67 2A 09 17 +Comment = SET vendor +Description = Entrust (2 23 42 9 23) + +OID = 06 04 67 2A 09 18 +Comment = SET vendor +Description = VIAnet (2 23 42 9 24) + +OID = 06 04 67 2A 09 19 +Comment = SET vendor +Description = III (2 23 42 9 25) + +OID = 06 04 67 2A 09 1A +Comment = SET vendor +Description = OpenMarket (2 23 42 9 26) + +OID = 06 04 67 2A 09 1B +Comment = SET vendor +Description = Lexem (2 23 42 9 27) + +OID = 06 04 67 2A 09 1C +Comment = SET vendor +Description = Intertrader (2 23 42 9 28) + +OID = 06 04 67 2A 09 1D +Comment = SET vendor +Description = Persimmon (2 23 42 9 29) + +OID = 06 04 67 2A 09 1E +Comment = SET vendor +Description = NABLE (2 23 42 9 30) + +OID = 06 04 67 2A 09 1F +Comment = SET vendor +Description = espace-net (2 23 42 9 31) + +OID = 06 04 67 2A 09 20 +Comment = SET vendor +Description = Hitachi (2 23 42 9 32) + +OID = 06 04 67 2A 09 21 +Comment = SET vendor +Description = Microsoft (2 23 42 9 33) + +OID = 06 04 67 2A 09 22 +Comment = SET vendor +Description = NEC (2 23 42 9 34) + +OID = 06 04 67 2A 09 23 +Comment = SET vendor +Description = Mitsubishi (2 23 42 9 35) + +OID = 06 04 67 2A 09 24 +Comment = SET vendor +Description = NCR (2 23 42 9 36) + +OID = 06 04 67 2A 09 25 +Comment = SET vendor +Description = e-COMM (2 23 42 9 37) + +OID = 06 04 67 2A 09 26 +Comment = SET vendor +Description = Gemplus (2 23 42 9 38) + +OID = 06 03 67 2A 0A +Comment = SET +Description = national (2 23 42 10) + +OID = 06 05 67 2A 0A E2 00 +Comment = SET national +Description = Japan (2 23 42 10 392) + +# Draft SET. These were invented for testing in pre-1.0 drafts, but have +# been used nonetheless by implementors + +#OID = 06 04 86 8D 6F 02 +#Comment = SET. Deprecated, use (2 23 42 7 0) instead +#Description = hashedRootKey (2 54 1775 2) +#Warning +# conflicts with more useful definition + +#OID = 06 04 86 8D 6F 03 +#Comment = SET. Deprecated, use (2 23 42 7 0) instead +#Description = certificateType (2 54 1775 3) +#Warning +# conflicts with more useful definition + +#OID = 06 04 86 8D 6F 04 +#Comment = SET. Deprecated, use (2 23 42 7 0) instead +#Description = merchantData (2 54 1775 4) +#Warning +# conflicts with more useful definition + +#OID = 06 04 86 8D 6F 05 +#Comment = SET. Deprecated, use (2 23 42 7 0) instead +#Description = cardCertRequired (2 54 1775 5) +#Warning +# conflicts with more useful definition + +#OID = 06 04 86 8D 6F 06 +#Comment = SET. Deprecated, use (2 23 42 7 0) instead +#Description = tunneling (2 54 1775 6) +#Warning +# conflicts with more useful definition + +#OID = 06 04 86 8D 6F 07 +#Comment = SET. Deprecated, use (2 23 42 7 0) instead +#Description = setQualifier (2 54 1775 7) +#Warning +# conflicts with more useful definition + +OID = 06 04 86 8D 6F 63 +Comment = SET. Deprecated, use (2 23 42 7 0) instead +Description = set-data (2 54 1775 99) +Warning + +# End of Fahnenstange diff --git a/pow/POW-0.7/lib/__init__.py b/pow/POW-0.7/lib/__init__.py new file mode 100644 index 00000000..1140ec1f --- /dev/null +++ b/pow/POW-0.7/lib/__init__.py @@ -0,0 +1,2 @@ +from _POW import * +from _POW import _docset diff --git a/pow/POW-0.7/lib/_der.py b/pow/POW-0.7/lib/_der.py new file mode 100644 index 00000000..590185c4 --- /dev/null +++ b/pow/POW-0.7/lib/_der.py @@ -0,0 +1,2281 @@ +#*****************************************************************************# +#* *# +#* Copyright (c) 2002, Peter Shannon *# +#* All rights reserved. *# +#* *# +#* Redistribution and use in source and binary forms, with or without *# +#* modification, are permitted provided that the following conditions *# +#* are met: *# +#* *# +#* * Redistributions of source code must retain the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer. *# +#* *# +#* * Redistributions in binary form must reproduce the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer in the documentation and/or other materials *# +#* provided with the distribution. *# +#* *# +#* * The name of the contributors may be used to endorse or promote *# +#* products derived from this software without specific prior *# +#* written permission. *# +#* *# +#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *# +#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *# +#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *# +#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *# +#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *# +#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *# +#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *# +#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *# +#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *# +#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *# +#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *# +#* *# +#*****************************************************************************# + +import exceptions, types, copy, string, time, base64, traceback, cStringIO + +DEBUG = 0 + +# CLASS +CLASS_UNIVERSAL = 0x00 +CLASS_APPLICATION = 0x40 +CLASS_CONTEXT = 0x80 +CLASS_PRIVATE = 0xC0 + +# FORM +FORM_PRIMITIVE = 0x00 +FORM_CONSTRUCTED = 0x20 + +# TAG +TAG_BOOLEAN = 0x01 +TAG_INTEGER = 0x02 +TAG_BITSTRING = 0x03 +TAG_OCTETSTRING = 0x04 +TAG_NULL = 0x05 +TAG_OID = 0x06 +TAG_OBJDESCRIPTOR = 0x07 +TAG_EXTERNAL = 0x08 +TAG_REAL = 0x09 +TAG_ENUMERATED = 0x0A +TAG_EMBEDDED_PDV = 0x0B +TAG_UTF8STRING = 0x0C +TAG_SEQUENCE = 0x10 +TAG_SET = 0x11 +TAG_NUMERICSTRING = 0x12 +TAG_PRINTABLESTRING = 0x13 +TAG_T61STRING = 0x14 +TAG_VIDEOTEXSTRING = 0x15 +TAG_IA5STRING = 0x16 +TAG_UTCTIME = 0x17 +TAG_GENERALIZEDTIME = 0x18 +TAG_GRAPHICSTRING = 0x19 +TAG_VISIBLESTRING = 0x1A +TAG_GENERALSTRING = 0x1B +TAG_UNIVERSALSTRING = 0x1C +TAG_BMPSTRING = 0x1E + +_fragments = [] + +def _docset(): + return _fragments + +def _addFragment(frag): + global _fragments + _fragments.append(frag) + + +_addFragment(''' +<moduleDescription> + <header> + <name>POW.pkix</name> + <author>Peter Shannon</author> + </header> + <body> + <para> + This module is a solution to reading and writing X509v3 written + purely in Python. It does use limited facilities from POW for + signing and verifying but these could be replaced easily. It is + an abstract module and to use it successfully RFC3280 should be + referred to as well as the sourcecode where necessary. The correct + use of many extensions often not clear from the definitions alone. + Do refer to the RFC for details. + </para> + <para> + Each constructed objects defined in the RFC is built from primitives + defined by the ASN1 recommedations. Not all ASN1 primitive are available but all those + required for X509v3 should be. The implementation is more or less + complete for DER encoding the only caveat, aside from a few + missing objects, is the behaviour of <classname>SET</classname> objects + and <classname>SET OF</classname> objects. The order the objects are + written in should be determined at runtime by sorting their tags but this + library does not do this. For X509 it isn't really necessary + since all the <classname>Set</classname> objects are simple and the + order they are written in is defined by the object's constructor. + </para> + <para> + Every documented object in this module supports the functions documented for + <classname>_GeneralObject</classname>. In general the function + will only be documented in descendant classes if the class changes + the behaviour significantly from its ancestor. This would + normally be <classname>_GeneralObject</classname> or + <classname>Sequence</classname>. + </para> + </body> +</moduleDescription> +''') + +class DerError(Exception): + def __init__(self, msg): + if not isinstance(msg, types.StringType): + raise Exception, 'argunment should be a string' + self.msg = msg + + def __repr__(self): + return self.msg + + __str__ = __repr__ + +class _Tag: + def __init__(self): + self.tagclass = 0 + self.tagform = 0 + self.tagnumber = 0 + + def __repr__(self): + return '(%s, %s, %s)' % (self.tagclass, self.tagform, self.tagnumber) + + def write(self, file): + if self.tagnumber < 31: + file.write( chr(self.tagclass | self.tagform | self.tagnumber) ) + else: + val = copy.deepcopy(self.tagnumber) + bytes = [] + while val: + byte = val & 0x7F + bytes.append(byte | 0x80) + val = val >> 7 + bytes[0] = bytes[0] ^ 0x80 + bytes.append( self.tagclass | self.tagform | 0x1F ) + bytes.reverse() + file.write( string.join(map(chr, bytes), '') ) + + def read(self, file): + octet1 = ord( file.read(1) ) + self.tagclass = octet1 & 0xC0 + self.tagform = octet1 & 0x20 + value = octet1 & 0x1F + if value < 31: + self.tagnumber = value + else: + total = 0 + byte = 0x80 + while byte & 0x80: + byte = ord( file.read(1) ) + if byte & 0x80: + total = (total << 7) | byte ^ 0x80 + else: + total = (total << 7) | byte + self.tagnumber = total + +class _Length: + def __init__(self): + self.length = 0 + + def __repr__(self): + return '(%s)' % self.length + + def write(self, file): + if self.length < 128: + file.write( chr(self.length) ) + else: + val = copy.deepcopy(self.length) + bytes = [] + while val: + byte = val & 0xFF + bytes.append(byte) + val = val >> 8 + lengthOfLength = len(bytes) + if lengthOfLength > 126: + raise DerError, 'object is too long!' + bytes.append(lengthOfLength) + bytes.reverse() + bytes[0] = bytes[0] ^ 0x80 + file.write( string.join(map(chr, bytes), '') ) + + def read(self, file): + octet1 = ord( file.read(1) ) + if octet1 < 128: + self.length = octet1 + else: + total = 0 + byte = 0 + for i in range(octet1 ^ 0x80): + byte = ord( file.read(1) ) + total = (total << 8) | byte + self.length = total + +class _TlvIo(_Tag, _Length): + def __init__(self, file): + self.file = file + self.offset = None + self.valueOffset = None + + def __repr__(self): + return '<TAG:%s Length:%s>' % (_Tag.__repr__(self), _Length.__repr__(self)) + + def __nonzero__(self): + pos = self.file.tell() + self.file.seek(0,2) + if self.file.tell(): + self.file.seek(pos) + return 1 + else: + return 0 + + def read(self): + self.offset = self.file.tell() + _Tag.read( self, self.file ) + _Length.read( self, self.file ) + self.valueOffset = self.file.tell() + self.file.seek( self.length, 1 ) + + def readValue(self): + self.file.seek( self.valueOffset ) + return self.file.read( self.length ) + + def write(self, val): + _Tag.write( self, self.file ) + self.length = len(val) + _Length.write( self, self.file ) + self.file.write(val) + +def _decodeBoolean(val): + 'der encoded value not including tag or length' + if not isinstance(val, types.StringType): + raise DerError, 'argument should be a string' + if ord(val) == 0xFF: + return 1 + elif ord(val) == 0x00: + return 0 + else: + raise DerError, 'boolean should be encode as all 1s or all 0s' + +def _encodeBoolean(val): + 'anything we can test for truth' + if val: + return chr(0xFF) + else: + return chr(0x00) + +def _decodeInteger(val): + 'der encoded value not including tag or length' + if not isinstance(val, types.StringType): + raise DerError, 'argument should be a string' + total = 0 + if ord(val[0]) & 0x80: + val = map( lambda x : ord(x) ^ 0xFF, val ) + for byte in val: + total = (total << 8) | byte + total = -(total+1) + else: + for byte in val: + total = (total << 8) | ord(byte) + return total + +def _encodeInteger(val): + 'python integer' + if not isinstance(val, types.IntType): + raise DerError, 'argument should be an integer' + if val == 0: + return chr(0x00) + else: + val2 = copy.deepcopy(val) + if val2 < 0: + val2 = -(val2+1) + bytes = [] + byte = 0 + while val2: + byte = val2 & 0xFF + bytes.append(byte) + val2 = val2 >> 8 + # if we have no used up the last byte to represent the value we need + # to add one more on to show if this is negative of positive. Also, + # due to adding 1 and inverting -1 would be 0 or if 0 is the encoding + # value, so bytes would empty and this would lead to and empty value + # and this would not be working properly. Adding this null byte + # fixes this, since it is inverted to -1 and preserved for 0. + if byte & 0x80 or not bytes: + bytes.append(0x00) + if val < 0: + bytes = map( lambda x : x ^ 0xFF, bytes ) + bytes.reverse() + + return string.join(map(chr, bytes), '') + +def _decodeBitString(val): + 'der encoded value not including tag or length' + if not isinstance(val, types.StringType): + raise DerError, 'argument should be a string' + bitmasks = [0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01] + unused = ord( val[0] ) + bits = [] + for byte in val[1:]: + for j in range(8): + if ord(byte) & bitmasks[j]: + bits.append(1) + else: + bits.append(0) + if unused == 0: + return tuple(bits) + else: + return tuple(bits[:-unused]) + +def _encodeBitString(val): + 'list of true/false objects ie [0,1,1,0,1,1]' + if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)): + raise DerError, 'argument should be a list or tuple' + bitmasks = [0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01] + bytes = [] + fits, leftover = divmod(len(val), 8) + nobytes = fits + if leftover > 0: + nobytes = nobytes + 1 + if leftover: + unused = 8 - leftover + else: + unused = 0 + bytes.append(unused) + for i in range(nobytes): + byte = 0 + for j in range(8): + offset = j + i*8 + if offset < len(val): + if val[offset]: + byte = byte | bitmasks[j] + bytes.append(byte) + + return string.join(map(chr, bytes), '') + +def _decodeOid(val): + 'der encoded value not including tag or length' + if not isinstance(val, types.StringType): + raise DerError, 'argument should be a string' + arc12 = ord( val[0] ) + arc1, arc2 = divmod(arc12, 40) + oids = [arc1,arc2] + + total = 0 + for byte in val[1:]: + val = ord(byte) + if val & 0x80: + total = (total << 7) | (val ^ 0x80) + else: + total = (total << 7) | val + oids.append(total) + total = 0 + + return tuple(oids) + +def _encodeOid(val): + 'list of intgers' + if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)): + raise DerError, 'argument should be a list or tuple' + oids = [] + oids.append( chr(40 * val[0] + val[1]) ) + for val in val[2:]: + if val == 0: + oids.append( chr(0) ) + else: + bytes = [] + while val: + val, rem = divmod(val, 128) + bytes.append(rem | 0x80) + bytes[0] = bytes[0] ^ 0x80 + bytes.reverse() + oids.append( string.join(map(chr, bytes), '') ) + + return string.join(oids, '') + +def _decodeSequence(val): + 'der encoded value not including tag or length' + if not isinstance(val, types.StringType): + raise DerError, 'argument should be a string' + buf = cStringIO.StringIO(val) + buflen = len(val) + tvls = [] + while buf.tell() < buflen: + t = _TlvIo(buf) + t.read() + tvls.append(t) + return tuple(tvls) + +def _encodeSequence(val): + 'list of GenerlObjects' + if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)): + raise DerError, 'argument should be a list or tuple' + buf = cStringIO.StringIO() + for obj in val: + if obj: + obj.write(buf) + elif not obj.optional: + raise DerError, 'object not set which should be: %s' % obj + + return buf.getvalue() + +_addFragment(''' +<class> + <header> + <name>_GeneralObject</name> + </header> + <body> + <para> + <classname>_GeneralObject</classname> is the basis for all DER objects, + primitive or constructed. It defines the basic behaviour of an + object which is serialised using the tag, length and value + approach of DER. It is unlikely you would ever want to + instantiate one of these directly but I include a description + since many primatives don't override much of + <classname>_GeneralObject</classname>'s functions. + </para> + </body> +</class> +''') + +class _GeneralObject: + + _addFragment(''' + <constructor> + <header> + <memberof>_GeneralObject</memberof> + <parameter>normclass</parameter> + <parameter>normform</parameter> + <parameter>normnumber</parameter> + <parameter>encRoutine</parameter> + <parameter>decRoutine</parameter> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + <body> + <para> + <parameter>normclass</parameter> is the class of the object, + ei: universal, application, context or private. + <parameter>normform</parameter> is the form of the object, ei + primitive or constructed. <parameter>normnumber</parameter> is + the tag number of the object. + <parameter>encRoutine</parameter> is a function which takes a + value and encodes it according the appropriate DER rules. + <parameter>decRoutine</parameter> is a function which reads a + string value and returns a value which is more useful in + Python. <parameter>optional</parameter> is a boolean + indicating if this object is optional. The final parameter, + <parameter>default</parameter> is the base 64 encoded DER + value, which should be used as the default in leu of a value to + read or incase it is unset. + </para> + </body> + </constructor> + ''') + + def __init__(self, normclass, normform, normnumber, encRoutine, decRoutine, optional=0, default=''): + if not isinstance(normclass, types.IntType): + raise DerError, 'nomrclass argument should be an integer : %s' % normclass + if not isinstance(normform, types.IntType): + raise DerError, 'normform argument should be an integer : %s' % normform + if not isinstance(normnumber, types.IntType): + raise DerError, 'normnumber argument should be an integer : %s' % normnumber + if not isinstance(encRoutine, types.FunctionType): + raise DerError, 'encRoutine argument should be an function : %s' % encRoutine + if not isinstance(decRoutine, types.FunctionType): + raise DerError, 'decRoutine argument should be an function : %s' % decRoutine + if not isinstance(optional, types.IntType): + raise DerError, 'optional argument should be an integer : %s' % optional + if not isinstance(default, types.StringType): + raise DerError, 'default argument should be an String : %s' % default + self.normclass = normclass + self.normform = normform + self.normnumber = normnumber + self.encRoutine = encRoutine + self.decRoutine = decRoutine + self.value = None + self.optional = optional + self.default = default + self.reset() + + def _ioSafe(self): + 'is it safe to write this object' + if self.optional or self._isSet(): + return 1 + else: + return 0 + + def _isSet(self): + 'are the values of this object set or not' + if self.value != None: + return 1 + else: + return 0 + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>reset</name> + </header> + <body> + <para> + This function re-initialises the object, clearing the value or + setting it to any default. + </para> + </body> + </method> + ''') + def reset(self): + self.value = None + if self.default: + buf = cStringIO.StringIO( base64.decodestring( self.default ) ) + io = _TlvIo(buf) + io.read() + self.read(io) + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>set</name> + <parameter>value</parameter> + </header> + <body> + <para> + This dosn't do much except store <parameter>value</parameter>, + presumably prior to writing the object. The correct values to + use would be determined by the encoder or decoder this class is + instantiated with. Be careful, there is some flexibility in + setting objects so you might find that once the object has been + written and read back in the value isn't identical. A good + example would be anything which contains a sequence(list or + tuple), all sequence objects are returned as tuples. + </para> + </body> + </method> + ''') + def set(self, value): + if value != None: + self.value = value + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>get</name> + </header> + <body> + <para> + Gets the value stored presumably after reading the object. + </para> + </body> + </method> + ''') + def get(self): + return self.value + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>implied</name> + <parameter>impclass</parameter> + <parameter>impform</parameter> + <parameter>impnumber</parameter> + </header> + <body> + <para> + This function is used to change how the tag is written or read + for a particular object and should be called in the constructor + for derived objects. If you have an example of the structure you need to + process, Pete Gutmann's excellent + <application>dumpasn1</application> can be invaluable for + debugging objects. + </para> + </body> + </method> + ''') + def implied(self, impclass, impform, impnumber): + if not isinstance(impclass, types.IntType): + raise DerError, 'impclass argument should be an integer' + if not isinstance(impform, types.IntType): + raise DerError, 'impform argument should be an integer' + if not isinstance(impnumber, types.IntType): + raise DerError, 'impnumber argument should be an integer' + self.normclass = impclass + self.normform = impform + self.normnumber = impnumber + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>read</name> + <parameter>io</parameter> + </header> + <body> + <para> + <parameter>io</parameter> should be a file like object. If the + object being read matches the expected class, form and tag the + value is read and decoded using + <function>decRoutine</function>. Else, if it has a default + that is read and stored. + </para> + <para> + The return value of this function does not indicate success but + whether this TLV was processed successfully. This bahaviour is + vital for processing constructed types since the object may be + optional or have a default. Failure to decode would be indicated + by an exception. + </para> + </body> + </method> + ''') + + def read(self, io=None): + + processDefOpt = 0 + if io == None: + processDefOpt = 1 + elif isinstance(io, _TlvIo): + if not io: + processDefOpt = 1 + else: + pos = io.tell() + io.seek(0,2) + if io.tell(): + io.seek(pos) + else: + processDefOpt = 1 + + if processDefOpt: + if self.optional or self.default: + self.reset() + return 0 + else: + raise DerError, 'no TLV is available to read in non-optional/non-default object: %s' % repr(self) + + if not isinstance(io, _TlvIo): + tmp = _TlvIo(io) + tmp.read() + io = tmp + + if io.tagclass != self.normclass or io.tagform != self.normform or io.tagnumber != self.normnumber: + if self.default or self.optional: + self.reset() + return 0 + else: + raise DerError, 'error in encoding, missing object:%s' % repr(self) + else: + derval = io.readValue() + self.value = self.decRoutine( derval ) + return 1 + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>write</name> + <parameter>io</parameter> + </header> + <body> + <para> + If this object has not been set and is not optional and dosn't + have a default, a <classname>DerError</classname> exception will be raised + </para> + <para> + If no value has been set and this object is optional, nothing + is written. If this object's value is equal to the default, + nothing is written as stipulated by DER. Otherwise the value + is encoded and written. + </para> + </body> + </method> + ''') + + def write(self, file): + if not self._ioSafe(): + raise DerError, 'object not set which must be: %s' % repr(self) + elif self.optional and self.value == None: + pass + else: + buf = cStringIO.StringIO() + io = _TlvIo(buf) + io.tagclass = self.normclass + io.tagform = self.normform + io.tagnumber = self.normnumber + derval = self.encRoutine( self.value ) + io.length = len(derval) + io.write(derval) + if self.default: + if buf.getvalue() != base64.decodestring(self.default): + file.write( buf.getvalue() ) + else: + file.write( buf.getvalue() ) + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>toString</name> + </header> + <body> + <para> + Encodes the value in DER and returns it as a string. + </para> + </body> + </method> + ''') + + def toString(self): + buf = cStringIO.StringIO() + self.write(buf) + return buf.getvalue() + + _addFragment(''' + <method> + <header> + <memberof>_GeneralObject</memberof> + <name>fromString</name> + </header> + <body> + <para> + Decodes the string and sets the value of this object. + </para> + </body> + </method> + ''') + + def fromString(self, value): + buf = cStringIO.StringIO(value) + self.read(buf) + +class Any(_GeneralObject): + + def __init__(self): + self.value = None + self.normclass = None + self.normform = None + self.normnumber = None + + def _ioSafe(self): + if self.optional or (self._isSet() and self.normclass != None and self.normform != None and self.normnumber != None): + return 1 + else: + return 0 + + def setTag(self, klass, form, number): + self.normclass = klass + self.normform = form + self.normnumber = number + + def reset(self): + self.value = None + + def get(self): + return self.value + + def set(self, value): + self.value = value + + def write(self,file): + if not self._ioSafe(): + raise DerError, 'object not set which must be: %s' % repr(self) + elif self.optional and self.value == None: + pass + else: + buf = cStringIO.StringIO() + io = _TlvIo(buf) + io.tagclass = self.normclass + io.tagform = self.normform + io.tagnumber = self.normnumber + io.length = len(self.value) + io.write(self.value) + file.write(buf.getvalue()) + + def read(self, io=None): + + processDefOpt = 0 + if io == None: + processDefOpt = 1 + elif isinstance(io, _TlvIo): + if not io: + processDefOpt = 1 + else: + pos = io.tell() + io.seek(0,2) + if io.tell(): + io.seek(pos) + else: + processDefOpt = 1 + if processDefOpt: + if self.optional or self.default: + self.reset() + return 0 + else: + raise DerError, 'no TLV is available to read in non-optional/non-default object: %s' % repr(self) + + if not isinstance(io, _TlvIo): + tmp = _TlvIo(io) + tmp.read() + io = tmp + + self.value = io.readValue() + self.normclass = io.tagclass + self.normform = io.tagform + self.normnumber = io.tagnumber + +_addFragment(''' +<class> + <header> + <name>Boolean</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 BOOLEAN type. It can be set + with any object which can be tested for truth. + </para> + </body> +</class> +''') + +class Boolean(_GeneralObject): # 0x01 + + _addFragment(''' + <constructor> + <header> + <memberof>Boolean</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BOOLEAN, _encodeBoolean, _decodeBoolean, optional, default) + +_addFragment(''' +<class> + <header> + <name>Integer</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 INTEGER type. It should be set + with a Python integer. + </para> + </body> +</class> +''') + +class Integer(_GeneralObject): # 0x02 + + _addFragment(''' + <constructor> + <header> + <memberof>Integer</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_INTEGER, _encodeInteger, _decodeInteger, optional, default) + +_addFragment(''' +<class> + <header> + <name>BitString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 BIT STRING type. It should be set + with a sequence of integers. A non-zero number will set the bit, + zero will leave the bit unset. + </para> + </body> +</class> +''') + +class BitString(_GeneralObject): # 0x03 + + _addFragment(''' + <constructor> + <header> + <memberof>BitString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BITSTRING, _encodeBitString, _decodeBitString, optional, default) + +_addFragment(''' +<class> + <header> + <name>AltBitString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 BIT STRING type. It differs from + the first <classname>BitString</classname> in that it's coding + routines treat values as binary data and do not interpret the data + in any way. Some application treat the + <classname>BIT STRING</classname> in the same way as + <classname>OCTET STRING</classname> type, hence this extra object. + </para> + </body> +</class> +''') + +class AltBitString(_GeneralObject): # 0x03 + + _addFragment(''' + <constructor> + <header> + <memberof>AltBitString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BITSTRING, lambda x : chr(0)+x, lambda x : x[1:], optional, default) + +_addFragment(''' +<class> + <header> + <name>OctetString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 OCTET STRING type. This object + can be set with any binary data. + </para> + </body> +</class> +''') +class OctetString(_GeneralObject): # 0x04 + + _addFragment(''' + <constructor> + <header> + <memberof>OctetString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_OCTETSTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>Null</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 NULL type. There is no point in + setting this object, the value will always be ignored when it is + written out. + </para> + </body> +</class> +''') +class Null(_GeneralObject): # 0x05 + + _addFragment(''' + <constructor> + <header> + <memberof>Null</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_NULL, lambda x : '', lambda x : '', optional, default) + self.value = '' + + def _ioSafe(self): + return 1 + + def reset(self): + self.value = '' + +_addFragment(''' +<class> + <header> + <name>Oid</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 OID type. This object should be + set with a list or tuple of integers defining an objects oid. + Please note that the first three arcs have a restricted set of + values, so encoding (5, 3, 7, 1) will produce bad results. + </para> + </body> +</class> +''') +class Oid(_GeneralObject): # 0x06 + + _addFragment(''' + <constructor> + <header> + <memberof>Oid</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_OID, _encodeOid, _decodeOid, optional, default) + +_addFragment(''' +<class> + <header> + <name>Enum</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 ENUM type. This should be set + using a Python integer, the meaning should be described in the + ASN1 document for the object you are encoding. + </para> + </body> +</class> +''') +class Enum(_GeneralObject): # 0x0A + + _addFragment(''' + <constructor> + <header> + <memberof>Enum</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_ENUMERATED, _encodeInteger, _decodeInteger, optional, default) + +_addFragment(''' +<class> + <header> + <name>Utf8String</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 UTF8String type. This object + should be set with a string. It is up to the application to ensure + it only contains valid characters for this type. + </para> + </body> +</class> +''') +class Utf8String(_GeneralObject): # 0x0C + + _addFragment(''' + <constructor> + <header> + <memberof>Utf8String</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_UTF8STRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>NumericString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 NumericString type. This should + object should be set with a string. It is up to the application to ensure + it only contains valid characters for this type. + </para> + </body> +</class> +''') +class NumericString(_GeneralObject): # 0x12 + + _addFragment(''' + <constructor> + <header> + <memberof>NumericString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_NUMERICSTRING, lambda x : x, lambda x : x, optional, default) +_addFragment(''' +<class> + <header> + <name>PrintableString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 PrintableString type. This should + object should be set with a string. It is up to the application to ensure + it only contains valid characters for this type. + </para> + </body> +</class> +''') +class PrintableString(_GeneralObject): # 0x13 + + _addFragment(''' + <constructor> + <header> + <memberof>PrintableString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_PRINTABLESTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>T61String</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 T61String type. This object + should be set with a string. It is up to the application to ensure + it only contains valid characters for this type. + </para> + </body> +</class> +''') +class T61String(_GeneralObject): # 0x14 + + _addFragment(''' + <constructor> + <header> + <memberof>T61String</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_T61STRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>VideotexString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 VideotexString type. This should + object should be set with a string. It is up to the application to ensure + it only contains valid characters for this type. + </para> + </body> +</class> +''') +class VideotexString(_GeneralObject): # 0x15 + + _addFragment(''' + <constructor> + <header> + <memberof>VideotexString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_VIDEOTEXSTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>IA5String</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 IA5String type. This object + should be set with a string. It is up to the application to ensure + it only contains valid characters for this type. + </para> + </body> +</class> +''') +class IA5String(_GeneralObject): # 0x16 + + _addFragment(''' + <constructor> + <header> + <memberof>IA5String</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_IA5STRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>UtcTime</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 UTCTime type. This object should + be set with a string of the general format YYMMDDhhmmssZ. The + helper functions <function>time2utc</function> and + <function>utc2time</function> can be used to handle the conversion + from an integer to a string and back. + </para> + </body> +</class> +''') +class UtcTime(_GeneralObject): # 0x17 + + _addFragment(''' + <constructor> + <header> + <memberof>UtcTime</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_UTCTIME, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>GeneralizedTime</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 GeneralizedTime type. This object should + be set with a string of the general format YYYYMMDDhhmmssZ. The + helper functions <function>time2utc</function> and + <function>utc2time</function> can be used to handle the conversion + from an integer to a string and back. + </para> + </body> +</class> +''') +class GeneralizedTime(_GeneralObject): # 0x18 + + _addFragment(''' + <constructor> + <header> + <memberof>GeneralizedTime</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_GENERALIZEDTIME, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>GraphicString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 GraphicString type. This should + object should be set with a string. It is up to the application to + ensure it only contains valid characters for this type. + </para> + </body> +</class> +''') +class GraphicString(_GeneralObject): # 0x19 + + _addFragment(''' + <constructor> + <header> + <memberof>GraphicString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_GRAPHICSTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>VisibleString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 VisibleString type. This should + object should be set with a string. It is up to the application to + ensure it only contains valid characters for this type. + </para> + </body> +</class> +''') +class VisibleString(_GeneralObject): # 0xC0 + + _addFragment(''' + <constructor> + <header> + <memberof>VisibleString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_VISIBLESTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>GeneralString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 GeneralString type. This should + object should be set with a string. It is up to the application to + ensure it only contains valid characters for this type. + </para> + </body> +</class> +''') +class GeneralString(_GeneralObject): # 0xC0 + + _addFragment(''' + <constructor> + <header> + <memberof>GeneralString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_GENERALSTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>UniversalString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 UniversalString type. This should + object should be set with a string. It is up to the application to + ensure it only contains valid characters for this type. + </para> + </body> +</class> +''') +class UniversalString(_GeneralObject): # 0xC0 + + _addFragment(''' + <constructor> + <header> + <memberof>UniversalString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_UNIVERSALSTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>BmpString</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 BMPString type. This object + should be set with a string. It is up to the application to ensure + it only contains valid characters for this type. + </para> + </body> +</class> +''') +class BmpString(_GeneralObject): # 0xC0 + + _addFragment(''' + <constructor> + <header> + <memberof>BmpString</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + + def __init__(self, optional=0, default=''): + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_PRIMITIVE, TAG_BMPSTRING, lambda x : x, lambda x : x, optional, default) + +_addFragment(''' +<class> + <header> + <name>Sequence</name> + <super>_GeneralObject</super> + </header> + <body> + <para> + This object represents the ASN1 SEQUENCE type. + </para> + </body> +</class> +''') +class Sequence(_GeneralObject): # 0x10 + + _addFragment(''' + <constructor> + <header> + <memberof>Sequence</memberof> + <super>_GeneralObject</super> + <parameter>contents</parameter> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + <body> + <para> + The <parameter>contents</parameter> should be a list or tuple containing + the contents of the sequence. + Two important members are initialised this this constructor. + First <constant>self.next</constant> this is used to keep track + of which TLVs in this sequence has been read succesfully. The second, + <constant>self.contents</constant> should be set to the list of + objects stored in this sequence. Note that the order they are + specified in is the order in which they are written or read. + </para> + </body> + </constructor> + ''') + + def __init__(self, contents, optional=0, default=''): + self.contents = contents + self.next = 0 + _GeneralObject.__init__(self, CLASS_UNIVERSAL, FORM_CONSTRUCTED, TAG_SEQUENCE, _encodeSequence, _decodeSequence, optional, default) + + def _childRead(self, obj): + if self.next < len(self.value): + if obj.read( self.value[self.next] ): + self.next += 1 + else: + obj.read() + + _addFragment(''' + <method> + <header> + <memberof>Sequence</memberof> + <name>readContents</name> + <parameter>io</parameter> + <parameter>contents</parameter> + </header> + <body> + <para> + This function implements basic SEQUENCE like reading behaviour. + It will attempt to read each of the objects in + <parameter>contents</parameter> in turn from + <parameter>io</parameter>. It exists as a function, separate + from <function>read</function> for the benefit of the SEQUENCE + OF implementation. + </para> + <para> + The TLV of this SEQUENCE is read and parsed into a list of + TLVs, which are store in <constant>self.value</constant>, by + <classname>_GeneralObject</classname>.<function>read</function>. + Then <function>read</function> is called on each member to + process each TLV in turn. The next TLV is moved onto only when + a member returns TRUE from the read call. + </para> + </body> + </method> + ''') + + def readContents(self, io, contents): + if _GeneralObject.read( self, io ): + for item in contents: + Sequence._childRead( self, item ) + return 1 + else: + return 0 + + _addFragment(''' + <method> + <header> + <memberof>Sequence</memberof> + <name>read</name> + <parameter>io</parameter> + </header> + <body> + <para> + Most of the logic for reading is implemented in <function>readContents</function> + so it can be reused for <classname>SequenceOf</classname>'s + <function>read</function> function. + </para> + </body> + </method> + ''') + + def read(self, io=None): + self.next = 0 + return self.readContents(io, self.contents) + + _addFragment(''' + <method> + <header> + <memberof>Sequence</memberof> + <name>write</name> + <parameter>file</parameter> + </header> + <body> + <para> + <constant>self.value</constant> is set to the contents of this + SEQUENCE and then written by calling + <classname>_GeneralObject</classname>.<function>write</function> + whos encoder will call <function>write</function> of + each element in the list of contents in turn. + </para> + </body> + </method> + ''') + + def write(self, file): + if self._ioSafe(): + if self._isSet(): + _GeneralObject.set( self, self.contents ) + _GeneralObject.write( self, file ) + elif self.optional: + pass + else: + prob = self.findUnset() + raise DerError, '%s is not in a state which can be written, %s is unset' % (repr(self), repr(prob) ) + + _addFragment(''' + <method> + <header> + <memberof>Sequence</memberof> + <name>set</name> + <parameter>values</parameter> + </header> + <body> + <para> + Accessing and setting values for ASN1 objects is a bit of a + thorny issue. The problem stems from the arbitrary complexity + of the data and the possible levels of nesting, which in + practice are used and are quite massive. Designing a good general + approach is a bit tricky, perhaps nearly + impossible. I choose to use a most compact + form which is excellent for simple objects and is very concise. + </para> + <para> + <parameter>value</parameter> should be a list or tuple of + values. Each element of the list (or tuple) will be used in + turn to set a member. Defaults can be specified by using the + default value itself or <constant>None</constant>. Hence, for + SEQUENCES of SEQUENCES, SEQUENCES OF, SET and so on + <parameter>values</parameter> should consist of nested lists or + tuples. Look at the ASN1 specs for that object to figure out + exactly what these should look like. + </para> + </body> + </method> + ''') + + def set(self, values): + if self.contents == None: + raise DerError, 'the contents attribute should be set before using this object' + if not( isinstance(values, types.ListType) or isinstance(values, types.TupleType) ): + raise DerError, 'a sequence should be set with a list or tuple of values' + if len(values) != len(self.contents): + raise DerError, 'wrong number of values have been supplied to set %s. Expecting %i, got %i' % \ + (self.__class__.__name__, len(self.contents), len(values) ) + + i = 0 + for val in values: + self.contents[i].set(val) + i = i + 1 + + _addFragment(''' + <method> + <header> + <memberof>Sequence</memberof> + <name>get</name> + </header> + <body> + <para> + A tuple of the values of the contents of this sequence will be + returned. Hence, for SEQUENCES of SEQUENCES, SEQUENCES OF, SET + and so on nested tuples will be returned. + <function>get</function> always returns tuples even if a list + was used to set and object. + </para> + </body> + </method> + ''') + + def get(self): + if self.contents == None: + return _GeneralObject.get(self) + else: + results = [] + for obj in self.contents: + results.append( obj.get() ) + return tuple(results) + + def reset(self): + if self.contents == None: + raise DerError, 'this object has no members to set' + self.next = 0 + for obj in self.contents: + obj.reset() # clear all child objects prior to possible setting + # via default + _GeneralObject.reset(self) + + def _isSet(self): + if self.contents == None: + raise DerError, 'this object has no members to set' + for obj in self.contents: + if not obj._ioSafe(): + return 0 + return 1 + + def findUnset(self): + if self.contents == None: + raise DerError, 'this object has no members to check' + for obj in self.contents: + if not obj._ioSafe(): + return obj + + def _ioSafe(self): + if self.optional or self._isSet(): + return 1 + else: + for obj in self.contents: + if not obj._ioSafe(): + return 0 + return 1 + +_addFragment(''' +<class> + <header> + <name>SequenceOf</name> + <super>Sequence</super> + </header> + <body> + <para> + This object represents the ASN1 SEQUENCE OF construct. + </para> + </body> +</class> +''') +class SequenceOf(Sequence): + + _addFragment(''' + <constructor> + <header> + <memberof>SequenceOf</memberof> + <super>Sequence</super> + <parameter>contains</parameter> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + <body> + <para> + The <parameter>contains</parameter> should be the constructor + for the objects which this SEQUENCE OF contains. + </para> + </body> + </constructor> + ''') + + def __init__(self, contains, optional=0, default=''): + self.contains = contains + self.sequenceOf = [] + Sequence.__init__(self, [], optional, default) + + def _ioSafe(self): + return 1 + + def reset(self): + if self.contents == None: + raise DerError, 'this object has no members to set' + self.next = 0 + self.sequenceOf = [] + _GeneralObject.reset(self) + + def _isSet(self): + if self.sequenceOf: + for obj in self.contents: + if not obj._ioSafe(): + return 0 + return 1 + else: + return 0 + + def set(self, values): + if isinstance(values, types.NoneType): + return + objects = [] + for val in values: + obj = self.contains() + obj.set(val) + objects.append(obj) + self.sequenceOf = objects + + def get(self): + results = [] + for obj in self.sequenceOf: + results.append( obj.get() ) + return tuple(results) + + def read(self, io=None): + self.sequenceOf = [] + self.next = 0 + if _GeneralObject.read( self, io ): + for tagio in _GeneralObject.get(self): + value = self.contains() + value.read(tagio) + self.sequenceOf.append(value) + return 1 + else: + return 0 + + def write(self, file): + if not self._isSet() and self.optional: + pass + else: + _GeneralObject.set( self, self.sequenceOf ) + _GeneralObject.write( self, file ) + +_addFragment(''' +<class> + <header> + <name>Set</name> + <super>Sequence</super> + </header> + <body> + <para> + This object represents the ASN1 Set type. + </para> + </body> +</class> +''') +class Set(Sequence): # 0x11 + + _addFragment(''' + <constructor> + <header> + <memberof>Set</memberof> + <super>Sequence</super> + <parameter>contents</parameter> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + <body> + <para> + The <parameter>contents</parameter> should be a list containing + the contents of the sequence. + </para> + </body> + </constructor> + ''') + + def __init__(self, contents, optional=0, default=''): + Sequence.__init__(self, contents, optional, default) + self.normnumber = TAG_SET + +_addFragment(''' +<class> + <header> + <name>SetOf</name> + <super>SequenceOf</super> + </header> + <body> + <para> + This object represents the ASN1 SET OF construct. + </para> + </body> +</class> +''') +class SetOf(SequenceOf): + + _addFragment(''' + <constructor> + <header> + <memberof>SetOf</memberof> + <super>SequenceOf</super> + <parameter>contains</parameter> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + <body> + <para> + The <parameter>contains</parameter> should be the constructor + for the objects which this SET OF contains. + </para> + </body> + </constructor> + ''') + + def __init__(self, contains, optional=0, default=''): + SequenceOf.__init__(self, contains, optional, default) + self.normnumber = TAG_SET + +_addFragment(''' +<class> + <header> + <name>Explicit</name> + <super>Sequence</super> + </header> + <body> + <para> + Explicit objects support the DER concept of explicit tagging. In + general they behave just like a SEQUENCE which must have only one + element. See below for other differences. + </para> + </body> +</class> +''') +class Explicit(Sequence): + + _addFragment(''' + <constructor> + <header> + <memberof>Explicit</memberof> + <super>Sequence</super> + <parameter>expclass</parameter> + <parameter>expform</parameter> + <parameter>expnumber</parameter> + <parameter>contents</parameter> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + <body> + <para> + <parameter>expclass</parameter>, + <parameter>expform</parameter>, + <parameter>expnumber</parameter> should be as + specified in the ASN1 documentation for this object. + <parameter>contents</parameter> should be an object instance + such as <classname>Integer</classname>, + <classname>Oid</classname> or a derived object which supports + the <classname>_GeneralObjec</classname> interface. + </para> + </body> + </constructor> + ''') + + def __init__(self, expclass, expform, expnumber, contents, optional=0, default=''): + self.contents = [contents] + self.next = 0 + _GeneralObject.__init__(self, expclass, expform, expnumber, _encodeSequence, _decodeSequence, optional, default) + + _addFragment(''' + <method> + <header> + <memberof>Explicit</memberof> + <name>set</name> + <parameter>value</parameter> + </header> + <body> + <para> + <parameter>value</parameter> is passed direct to + <function>set</function> of the explicit object, so it should + not be placed in a list or tuple(unless you are setting a constructed + object). + </para> + </body> + </method> + ''') + def set(self, value): + return Sequence.set(self, [value]) + + _addFragment(''' + <method> + <header> + <memberof>Explicit</memberof> + <name>get</name> + </header> + <body> + <para> + The value of explicit object is returned and not + put in a tuple. + </para> + </body> + </method> + ''') + def get(self): + return Sequence.get(self)[0] + +_addFragment(''' +<class> + <header> + <name>Choice</name> + </header> + <body> + <para> + This object represents the ASN1 Choice type. + </para> + </body> +</class> +''') +class Choice: + + _addFragment(''' + <constructor> + <header> + <memberof>Choice</memberof> + <parameter>choices</parameter> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + <body> + <para> + <parameter>choices</parameter> should be a dictionary of + objects which support the <classname>_GeneralObject</classname> + interface. The key being the name of the choice specified in the + ASN1 documentation. <parameter>optional</parameter> is a boolean + indicating if this object is optional. The final parameter, + <parameter>default</parameter> is the base 64 encoded DER + value, which should be used as the default in leu of a value to + read or incase it is unset. If neither + <parameter>optional</parameter> or + <parameter>default</parameter> is not set then the first choice + which is optional or has a default will be honored. + </para> + </body> + </constructor> + ''') + + def __init__(self, choices, optional=0, default=''): + self.value = None + self.choices = choices + self.optional = optional + self.default = default + self.choice = None + self.reset() + + def _ioSafe(self): + if self.optional or self._isSet(): + return 1 + elif self.choice and self.choices[ self.choice ]._ioSafe(): + return 1 + else: + return 0 + + def _isSet(self): + if self.choice and self.choices[self.choice]._isSet(): + return 1 + else: + return 0 + + _addFragment(''' + <method> + <header> + <memberof>Choice</memberof> + <name>reset</name> + </header> + <body> + <para> + This function re-initialises the object, clearing the value or + setting it to any default. + </para> + </body> + </method> + ''') + def reset(self): + self.value = None + self.choice = None + if self.default: + buf = cStringIO.StringIO( base64.decodestring( self.default ) ) + io = _TlvIo(buf) + io.read() + self.read(io) + else: + for key in self.choices.keys(): + self.choices[key].reset() + if self.choices[key]._ioSafe(): + self.choice = key + break; + + + _addFragment(''' + <method> + <header> + <memberof>Choice</memberof> + <name>set</name> + <parameter>value</parameter> + </header> + <body> + <para> + <parameter>value</parameter> should be a list or tuple with two + elements. The first value should be the name of the choice to + be set and the second the value to set it with. + </para> + </body> + </method> + ''') + def set(self, val): + if isinstance(val, types.NoneType): + return + if not (isinstance(val, types.ListType) or isinstance(val, types.TupleType)): + raise DerError, 'argument should be a list or tuple' + if not self.choices.has_key( val[0] ): + raise DerError, 'unknown choice: %s' % val[0] + self.choices[ val[0] ].set(val[1]) + self.choice = val[0] + + _addFragment(''' + <method> + <header> + <memberof>Choice</memberof> + <name>get</name> + </header> + <body> + <para> + This function will return tuple with two elements. The first + value will be the name of the choice which was set and the second + the value it was set to. + </para> + </body> + </method> + ''') + + def get(self): + if self._isSet(): + return (self.choice, self.choices[ self.choice ].get()) + else: + return None + + _addFragment(''' + <method> + <header> + <memberof>Choice</memberof> + <name>toString</name> + </header> + <body> + <para> + Encodes the value in DER and returns it as a string. + </para> + </body> + </method> + ''') + + def toString(self): + buf = cStringIO.StringIO() + self.write(buf) + return buf.getvalue() + + _addFragment(''' + <method> + <header> + <memberof>Choice</memberof> + <name>fromString</name> + </header> + <body> + <para> + Decodes the string and sets the value of this object. + </para> + </body> + </method> + ''') + + def fromString(self, value): + buf = cStringIO.StringIO(value) + self.read(buf) + + _addFragment(''' + <method> + <header> + <memberof>Choice</memberof> + <name>read</name> + <parameter>io</parameter> + </header> + <body> + <para> + <parameter>io</parameter> should be a file like object. If the + object being read matches the expected class, form and tag the + value is read and decoded using + <function>decRoutine</function>. Else, if it has a default + that is read and stored. + </para> + <para> + The return value of this function does not indicate success but + whether this TLV was processed successfully. This bahaviour is + vital for processing constructed types since the object may be + optional or have a default. Failure to decode would be indicated + by an exception. + </para> + </body> + </method> + ''') + + def _readChoices(self, io): + for key in self.choices.keys(): + try: + readindicator = self.choices[key].read(io) + self.choice = key + break; + except DerError: + if DEBUG: + traceback.print_exc() + return readindicator + + def read(self, io=None): + + self.choice = None + processDefOpt = 0 + readindicator = 0 + + if io == None: + processDefOpt = 1 + elif isinstance(io, _TlvIo): + if not io: + processDefOpt = 1 + else: + pos = io.tell() + io.seek(0,2) + if io.tell(): + io.seek(pos) + else: + processDefOpt = 1 + + if processDefOpt: + if self.optional or self.default: + self.reset() + return 0 + else: + readindicator = self._readChoices(io) + for key in self.choices.keys(): + try: + readindicator = self.choices[key].read(io) + self.choice = key + break; + except DerError: + if DEBUG: + traceback.print_exc() + if not self._isSet(): + raise DerError, 'no TLV is available to read in non-optional/non-default object: %s' % repr(self) + else: + return readindicator + + if not isinstance(io, _TlvIo): + tmp = _TlvIo(io) + tmp.read() + io = tmp + + for key in self.choices.keys(): + try: + if self.choices[key].read(io): + self.choice = key + readindicator = 1 + break; + except DerError: + if DEBUG: + traceback.print_exc() + + if not self._isSet(): + self.reset() + else: + return readindicator + + _addFragment(''' + <method> + <header> + <memberof>Choice</memberof> + <name>write</name> + <parameter>file</parameter> + </header> + <body> + <para> + If this object has not been set and is not optional and dosn't + have a default, a <classname>DerError</classname> exception will be raised + </para> + <para> + If no value has been set and this object is optional, nothing + is written. If this object's value is equal to the default, + nothing is written as stipulated by DER. Otherwise the value + is encoded and written. + </para> + </body> + </method> + ''') + def write(self,file): + if self.optional and not self.choice: + pass + elif not self.choice: + raise DerError, 'choice not set' + elif self.choice: + if self.default: + defval = base64.decodestring( self.default ) + if defval != self.choices[ self.choice ].toString(): + self.choices[ self.choice ].write(file) + else: + self.choices[ self.choice ].write(file) + else: + raise DerError, 'an internal error has occured: %s' % repr(self) + + diff --git a/pow/POW-0.7/lib/_objects.py b/pow/POW-0.7/lib/_objects.py new file mode 100644 index 00000000..cae45040 --- /dev/null +++ b/pow/POW-0.7/lib/_objects.py @@ -0,0 +1,5944 @@ +data = {'': {'comment': 'PKIX CRMF registration control', + 'description': '(1 3 6 1 5 5 7 5 2)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 02 01', + 'name': '', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2)}, + 'AmericanExpress': {'comment': 'SET brand', + 'description': 'AmericanExpress (2 23 42 8 34)', + 'hexoid': '06 05 67 2A 08 AE 7B', + 'name': 'AmericanExpress', + 'oid': (2, 23, 42, 8, 34)}, + 'Antares': {'comment': 'SET vendor', + 'description': 'Antares (2 23 42 9 14)', + 'hexoid': '06 04 67 2A 09 0F', + 'name': 'Antares', + 'oid': (2, 23, 42, 9, 14)}, + 'AnyPolicy policyIdentifier': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'AnyPolicy policyIdentifier (2 5 29 32 0)', + 'hexoid': '06 03 55 1D 21', + 'name': 'AnyPolicy policyIdentifier', + 'oid': (2, 5, 29, 32, 0)}, + 'BankGate': {'comment': 'SET vendor', + 'description': 'BankGate (2 23 42 9 7)', + 'hexoid': '06 04 67 2A 09 08', + 'name': 'BankGate', + 'oid': (2, 23, 42, 9, 7)}, + 'BlueMoney': {'comment': 'SET vendor', + 'description': 'BlueMoney (2 23 42 9 19)', + 'hexoid': '06 04 67 2A 09 14', + 'name': 'BlueMoney', + 'oid': (2, 23, 42, 9, 19)}, + 'Certicom': {'comment': 'SET vendor', + 'description': 'Certicom (2 23 42 9 11)', + 'hexoid': '06 04 67 2A 09 0C', + 'name': 'Certicom', + 'oid': (2, 23, 42, 9, 11)}, + 'Certificates Australia policyIdentifier': {'comment': 'Certificates Australia CA', + 'description': 'Certificates Australia policyIdentifier (1 2 36 75878867 1 100 1 1)', + 'hexoid': '06 0A 2A 24 A4 97 A3 53 01 64 01 01', + 'name': 'Certificates Australia policyIdentifier', + 'oid': (1, + 2, + 36, + 75878867, + 1, + 100, + 1, + 1)}, + 'CompuSource': {'comment': 'SET vendor', + 'description': 'CompuSource (2 23 42 9 9)', + 'hexoid': '06 04 67 2A 09 0A', + 'name': 'CompuSource', + 'oid': (2, 23, 42, 9, 9)}, + 'CyberCash': {'comment': 'SET vendor', + 'description': 'CyberCash (2 23 42 9 2)', + 'hexoid': '06 04 67 2A 09 03', + 'name': 'CyberCash', + 'oid': (2, 23, 42, 9, 2)}, + 'Diners': {'comment': 'SET brand', + 'description': 'Diners (2 23 42 8 30)', + 'hexoid': '06 04 67 2A 08 22', + 'name': 'Diners', + 'oid': (2, 23, 42, 8, 30)}, + 'ECC': {'comment': 'SET vendor', + 'description': 'ECC (2 23 42 9 15)', + 'hexoid': '06 04 67 2A 09 10', + 'name': 'ECC', + 'oid': (2, 23, 42, 9, 15)}, + 'ElGamal': {'comment': 'Unsure about this OID', + 'description': 'ElGamal (1 3 14 7 2 1 1)', + 'hexoid': '06 06 2B 0E 07 02 03 01', + 'name': 'ElGamal', + 'oid': (1, 3, 14, 7, 2, 1, 1)}, + 'EntityLogo': {'comment': 'Netscape certificate extension', + 'description': 'EntityLogo (2 16 840 1 113730 1 10)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0B', + 'name': 'EntityLogo', + 'oid': (2, 16, 840, 1, 113730, 1, 10)}, + 'Entrust': {'comment': 'SET vendor', + 'description': 'Entrust (2 23 42 9 23)', + 'hexoid': '06 04 67 2A 09 18', + 'name': 'Entrust', + 'oid': (2, 23, 42, 9, 23)}, + 'FBCA-Basic policyIdentifier': {'comment': 'Federal Bridge CA Policy', + 'description': 'FBCA-Basic policyIdentifier (2 16 840 1 101 3 2 1 3 2)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 03', + 'name': 'FBCA-Basic policyIdentifier', + 'oid': (2, 16, 840, 1, 101, 3, 2, 1, 3, 2)}, + 'FBCA-High policyIdentifier': {'comment': 'CSOR GAK extended key usage', + 'description': 'FBCA-High policyIdentifier (2 16 840 1 101 3 2 1 3 4)', + 'hexoid': '06 08 60 86 48 01 65 03 02 02', + 'name': 'FBCA-High policyIdentifier', + 'oid': (2, 16, 840, 1, 101, 3, 2, 1, 3, 4)}, + 'FBCA-Medium policyIdentifier': {'comment': 'Federal Bridge CA Policy', + 'description': 'FBCA-Medium policyIdentifier (2 16 840 1 101 3 2 1 3 3)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 04', + 'name': 'FBCA-Medium policyIdentifier', + 'oid': (2, 16, 840, 1, 101, 3, 2, 1, 3, 3)}, + 'FBCA-Rudimentary policyIdentifier': {'comment': 'Federal Bridge CA Policy', + 'description': 'FBCA-Rudimentary policyIdentifier (2 16 840 1 101 3 2 1 3 1)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 02', + 'name': 'FBCA-Rudimentary policyIdentifier', + 'oid': (2, + 16, + 840, + 1, + 101, + 3, + 2, + 1, + 3, + 1)}, + 'Fujitsu': {'comment': 'SET vendor', + 'description': 'Fujitsu (2 23 42 9 21)', + 'hexoid': '06 04 67 2A 09 16', + 'name': 'Fujitsu', + 'oid': (2, 23, 42, 9, 21)}, + 'GAK': {'comment': 'CSOR GAK extended key usage', + 'description': 'GAK (2 16 840 1 101 3 2 2)', + 'hexoid': '06 09 60 86 48 01 65 03 02 02 01', + 'name': 'GAK', + 'oid': (2, 16, 840, 1, 101, 3, 2, 2)}, + 'GAK policyIdentifier': {'comment': 'Federal Bridge CA Policy', + 'description': 'GAK policyIdentifier (2 16 840 1 101 3 2 1)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 01', + 'name': 'GAK policyIdentifier', + 'oid': (2, 16, 840, 1, 101, 3, 2, 1)}, + 'GTE': {'comment': 'SET vendor', + 'description': 'GTE (2 23 42 9 8)', + 'hexoid': '06 04 67 2A 09 09', + 'name': 'GTE', + 'oid': (2, 23, 42, 9, 8)}, + 'Gemplus': {'comment': 'SET', + 'description': 'Gemplus (2 23 42 9 38)', + 'hexoid': '06 03 67 2A 0A', + 'name': 'Gemplus', + 'oid': (2, 23, 42, 9, 38)}, + 'GlobeSet': {'comment': 'SET vendor', + 'description': 'GlobeSet (2 23 42 9 0)', + 'hexoid': '06 04 67 2A 09 01', + 'name': 'GlobeSet', + 'oid': (2, 23, 42, 9, 0)}, + 'Griffin': {'comment': 'SET vendor', + 'description': 'Griffin (2 23 42 9 10)', + 'hexoid': '06 04 67 2A 09 0B', + 'name': 'Griffin', + 'oid': (2, 23, 42, 9, 10)}, + 'Hitachi': {'comment': 'SET vendor', + 'description': 'Hitachi (2 23 42 9 32)', + 'hexoid': '06 04 67 2A 09 21', + 'name': 'Hitachi', + 'oid': (2, 23, 42, 9, 32)}, + 'HomePage-url': {'comment': 'Netscape certificate extension', + 'description': 'HomePage-url (2 16 840 1 113730 1 9)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0A', + 'name': 'HomePage-url', + 'oid': (2, 16, 840, 1, 113730, 1, 9)}, + 'IATA-ATA': {'comment': 'SET brand', + 'description': 'IATA-ATA (2 23 42 8 1)', + 'hexoid': '06 04 67 2A 08 04', + 'name': 'IATA-ATA', + 'oid': (2, 23, 42, 8, 1)}, + 'IBM': {'comment': 'SET vendor', + 'description': 'IBM (2 23 42 9 1)', + 'hexoid': '06 04 67 2A 09 02', + 'name': 'IBM', + 'oid': (2, 23, 42, 9, 1)}, + 'ICE-TEL Italian policyIdentifier': {'comment': 'cryptlib encryption algorithm', + 'description': 'ICE-TEL Italian policyIdentifier (1 3 6 1 4 1 2786 1 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 01', + 'name': 'ICE-TEL Italian policyIdentifier', + 'oid': (1, + 3, + 6, + 1, + 4, + 1, + 2786, + 1, + 1, + 1)}, + 'ICE-TEL policyIdentifier': {'comment': 'ICE-TEL CA policy', + 'description': 'ICE-TEL policyIdentifier (1 3 6 1 4 1 2712 10)', + 'hexoid': '06 0A 2B 06 01 04 01 95 62 01 01 01', + 'name': 'ICE-TEL policyIdentifier', + 'oid': (1, 3, 6, 1, 4, 1, 2712, 10)}, + 'III': {'comment': 'SET vendor', + 'description': 'III (2 23 42 9 25)', + 'hexoid': '06 04 67 2A 09 1A', + 'name': 'III', + 'oid': (2, 23, 42, 9, 25)}, + 'IKEhmacWithMD5-RSA': {'comment': 'Novell encryption algorithm', + 'description': 'IKEhmacWithMD5-RSA (2 16 840 1 113719 1 2 8 52)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 45', + 'name': 'IKEhmacWithMD5-RSA', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 52)}, + 'IKEhmacWithSHA1-RSA': {'comment': 'Novell signature algorithm', + 'description': 'IKEhmacWithSHA1-RSA (2 16 840 1 113719 1 2 8 51)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 34', + 'name': 'IKEhmacWithSHA1-RSA', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 51)}, + 'Identrus unknown policyIdentifier': {'comment': 'Identrus', + 'description': 'Identrus unknown policyIdentifier (1 2 840 114021 1 6 1)', + 'hexoid': '06 08 2A 86 48 86 FA 65 04 01', + 'name': 'Identrus unknown policyIdentifier', + 'oid': (1, 2, 840, 114021, 1, 6, 1)}, + 'Intertrader': {'comment': 'SET vendor', + 'description': 'Intertrader (2 23 42 9 28)', + 'hexoid': '06 04 67 2A 09 1D', + 'name': 'Intertrader', + 'oid': (2, 23, 42, 9, 28)}, + 'Japan': {'comment': 'SET. Deprecated, use (2 23 42 7 0) instead', + 'description': 'Japan (2 23 42 10 392)', + 'hexoid': '06 04 86 8D 6F 63', + 'name': 'Japan', + 'oid': (2, 23, 42, 10, 392)}, + 'LMDigest': {'comment': 'Novell digest algorithm', + 'description': 'LMDigest (2 16 840 1 113719 1 2 8 32)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 28', + 'name': 'LMDigest', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 32)}, + 'Lacerte': {'comment': 'SET vendor', + 'description': 'Lacerte (2 23 42 9 20)', + 'hexoid': '06 04 67 2A 09 15', + 'name': 'Lacerte', + 'oid': (2, 23, 42, 9, 20)}, + 'Lexem': {'comment': 'SET vendor', + 'description': 'Lexem (2 23 42 9 27)', + 'hexoid': '06 04 67 2A 09 1C', + 'name': 'Lexem', + 'oid': (2, 23, 42, 9, 27)}, + 'MD2': {'comment': 'Novell digest algorithm', + 'description': 'MD2 (2 16 840 1 113719 1 2 8 40)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 32', + 'name': 'MD2', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 40)}, + 'MD4': {'comment': 'Novell keyed hash', + 'description': 'MD4 (2 16 840 1 113719 1 2 8 95)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 81 02', + 'name': 'MD4', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 95)}, + 'MD4Packet': {'comment': 'Novell encryption algorithm', + 'description': 'MD4Packet (2 16 840 1 113719 1 2 8 130)', + 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 03', + 'name': 'MD4Packet', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 130)}, + 'MD5': {'comment': 'Novell signature algorithm', + 'description': 'MD5 (2 16 840 1 113719 1 2 8 50)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 33', + 'name': 'MD5', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 50)}, + 'Maithean': {'comment': 'SET vendor', + 'description': 'Maithean (2 23 42 9 16)', + 'hexoid': '06 04 67 2A 09 11', + 'name': 'Maithean', + 'oid': (2, 23, 42, 9, 16)}, + 'MasterCard': {'comment': 'SET brand', + 'description': 'MasterCard (2 23 42 8 5)', + 'hexoid': '06 04 67 2A 08 1E', + 'name': 'MasterCard', + 'oid': (2, 23, 42, 8, 5)}, + 'Microsoft': {'comment': 'SET vendor', + 'description': 'Microsoft (2 23 42 9 33)', + 'hexoid': '06 04 67 2A 09 22', + 'name': 'Microsoft', + 'oid': (2, 23, 42, 9, 33)}, + 'Mitsubishi': {'comment': 'SET vendor', + 'description': 'Mitsubishi (2 23 42 9 35)', + 'hexoid': '06 04 67 2A 09 24', + 'name': 'Mitsubishi', + 'oid': (2, 23, 42, 9, 35)}, + 'NABLE': {'comment': 'SET vendor', + 'description': 'NABLE (2 23 42 9 30)', + 'hexoid': '06 04 67 2A 09 1F', + 'name': 'NABLE', + 'oid': (2, 23, 42, 9, 30)}, + 'NCR': {'comment': 'SET vendor', + 'description': 'NCR (2 23 42 9 36)', + 'hexoid': '06 04 67 2A 09 25', + 'name': 'NCR', + 'oid': (2, 23, 42, 9, 36)}, + 'NEC': {'comment': 'SET vendor', + 'description': 'NEC (2 23 42 9 34)', + 'hexoid': '06 04 67 2A 09 23', + 'name': 'NEC', + 'oid': (2, 23, 42, 9, 34)}, + 'NWPassword': {'comment': 'Novell encryption algorithm', + 'description': 'NWPassword (2 16 840 1 113719 1 2 8 132)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 81 05', + 'name': 'NWPassword', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 132)}, + 'Netscape': {'comment': 'SET vendor', + 'description': 'Netscape (2 23 42 9 17)', + 'hexoid': '06 04 67 2A 09 12', + 'name': 'Netscape', + 'oid': (2, 23, 42, 9, 17)}, + 'Novus': {'comment': 'SET', + 'description': 'Novus (2 23 42 8 6011)', + 'hexoid': '06 03 67 2A 09', + 'name': 'Novus', + 'oid': (2, 23, 42, 8, 6011)}, + 'OSS': {'comment': 'SET vendor', + 'description': 'OSS (2 23 42 9 12)', + 'hexoid': '06 04 67 2A 09 0D', + 'name': 'OSS', + 'oid': (2, 23, 42, 9, 12)}, + 'OpenMarket': {'comment': 'SET vendor', + 'description': 'OpenMarket (2 23 42 9 26)', + 'hexoid': '06 04 67 2A 09 1B', + 'name': 'OpenMarket', + 'oid': (2, 23, 42, 9, 26)}, + 'PANData': {'comment': 'SET contentType', + 'description': 'PANData (2 23 42 0 0)', + 'hexoid': '06 04 67 2A 00 01', + 'name': 'PANData', + 'oid': (2, 23, 42, 0, 0)}, + 'PANOnly': {'comment': 'SET', + 'description': 'PANOnly (2 23 42 0 2)', + 'hexoid': '06 03 67 2A 01', + 'name': 'PANOnly', + 'oid': (2, 23, 42, 0, 2)}, + 'PANToken': {'comment': 'SET contentType', + 'description': 'PANToken (2 23 42 0 1)', + 'hexoid': '06 04 67 2A 00 02', + 'name': 'PANToken', + 'oid': (2, 23, 42, 0, 1)}, + 'Persimmon': {'comment': 'SET vendor', + 'description': 'Persimmon (2 23 42 9 29)', + 'hexoid': '06 04 67 2A 09 1E', + 'name': 'Persimmon', + 'oid': (2, 23, 42, 9, 29)}, + 'RSADSI': {'comment': 'SET vendor', + 'description': 'RSADSI (2 23 42 9 4)', + 'hexoid': '06 04 67 2A 09 05', + 'name': 'RSADSI', + 'oid': (2, 23, 42, 9, 4)}, + 'SEIS GAK policyIdentifier': {'comment': 'SEIS Project certificate policies', + 'description': 'SEIS GAK policyIdentifier (1 2 752 34 1 2)', + 'hexoid': '06 06 2A 85 70 22 01 02', + 'name': 'SEIS GAK policyIdentifier', + 'oid': (1, 2, 752, 34, 1, 2)}, + 'SEIS at': {'comment': 'SEIS Project', + 'description': 'SEIS at (1 2 752 34 3)', + 'hexoid': '06 05 2A 85 70 22 03', + 'name': 'SEIS at', + 'oid': (1, 2, 752, 34, 3)}, + 'SEIS at-personalIdentifier': {'comment': 'SEIS Project attribute', + 'description': 'SEIS at-personalIdentifier (1 2 752 34 3 1)', + 'hexoid': '06 06 2A 85 70 22 03 01', + 'name': 'SEIS at-personalIdentifier', + 'oid': (1, 2, 752, 34, 3, 1)}, + 'SEIS high-assurance policyIdentifier': {'comment': 'SEIS Project certificate policies', + 'description': 'SEIS high-assurance policyIdentifier (1 2 752 34 1 1)', + 'hexoid': '06 06 2A 85 70 22 01 01', + 'name': 'SEIS high-assurance policyIdentifier', + 'oid': (1, 2, 752, 34, 1, 1)}, + 'SEIS pe': {'comment': 'SEIS Project', + 'description': 'SEIS pe (1 2 752 34 2)', + 'hexoid': '06 05 2A 85 70 22 02', + 'name': 'SEIS pe', + 'oid': (1, 2, 752, 34, 2)}, + 'SHA-1': {'comment': 'Novell encryption algorithm', + 'description': 'SHA-1 (2 16 840 1 113719 1 2 8 82)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5C', + 'name': 'SHA-1', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 82)}, + 'Signet business': {'comment': 'Signet CA', + 'description': 'Signet business (1 2 36 68980861 1 1 3)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 03', + 'name': 'Signet business', + 'oid': (1, 2, 36, 68980861, 1, 1, 3)}, + 'Signet intraNet': {'comment': 'Signet CA', + 'description': 'Signet intraNet (1 2 36 68980861 1 1 11)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 0B', + 'name': 'Signet intraNet', + 'oid': (1, 2, 36, 68980861, 1, 1, 11)}, + 'Signet legal': {'comment': 'Signet CA', + 'description': 'Signet legal (1 2 36 68980861 1 1 4)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 04', + 'name': 'Signet legal', + 'oid': (1, 2, 36, 68980861, 1, 1, 4)}, + 'Signet personal': {'comment': 'Signet CA', + 'description': 'Signet personal (1 2 36 68980861 1 1 2)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 02', + 'name': 'Signet personal', + 'oid': (1, 2, 36, 68980861, 1, 1, 2)}, + 'Signet pilot': {'comment': 'Signet CA', + 'description': 'Signet pilot (1 2 36 68980861 1 1 10)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 0A', + 'name': 'Signet pilot', + 'oid': (1, 2, 36, 68980861, 1, 1, 10)}, + 'Signet policyIdentifier': {'comment': 'Signet CA', + 'description': 'Signet policyIdentifier (1 2 36 68980861 1 1 20)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 14', + 'name': 'Signet policyIdentifier', + 'oid': (1, 2, 36, 68980861, 1, 1, 20)}, + 'Telesec': {'comment': 'Deutsche Telekom', + 'description': 'Telesec (0 2 262 1 10)', + 'hexoid': '06 05 02 82 06 01 0A', + 'name': 'Telesec', + 'oid': (0, 2, 262, 1, 10)}, + 'Telesec policyIdentifier': {'comment': 'Telesec cert/CRL extension', + 'description': 'Telesec policyIdentifier (0 2 262 1 10 12 2)', + 'hexoid': '06 07 02 82 06 01 0A 0C 02', + 'name': 'Telesec policyIdentifier', + 'oid': (0, 2, 262, 1, 10, 12, 2)}, + 'Teletrust SigiSigConform policyIdentifier': {'comment': 'Teletrust extended key usage', + 'description': 'Teletrust SigiSigConform policyIdentifier (1 3 36 8 1 1)', + 'hexoid': '06 05 2B 24 08 02 01', + 'name': 'Teletrust SigiSigConform policyIdentifier', + 'oid': (1, 3, 36, 8, 1, 1)}, + 'TenthMountain': {'comment': 'SET vendor', + 'description': 'TenthMountain (2 23 42 9 13)', + 'hexoid': '06 04 67 2A 09 0E', + 'name': 'TenthMountain', + 'oid': (2, 23, 42, 9, 13)}, + 'Terisa': {'comment': 'SET vendor', + 'description': 'Terisa (2 23 42 9 3)', + 'hexoid': '06 04 67 2A 09 04', + 'name': 'Terisa', + 'oid': (2, 23, 42, 9, 3)}, + 'TrinTech': {'comment': 'SET vendor', + 'description': 'TrinTech (2 23 42 9 6)', + 'hexoid': '06 04 67 2A 09 07', + 'name': 'TrinTech', + 'oid': (2, 23, 42, 9, 6)}, + 'UNINETT policyIdentifier': {'comment': 'ICE-TEL CA', + 'description': 'UNINETT policyIdentifier (1 3 6 1 4 1 2428 10 1 1)', + 'hexoid': '06 08 2B 06 01 04 01 95 18 0A', + 'name': 'UNINETT policyIdentifier', + 'oid': (1, 3, 6, 1, 4, 1, 2428, 10, 1, 1)}, + 'Unknown Verisign VPN extension': {'comment': 'Verisign', + 'description': 'Unknown Verisign VPN extension (2 16 840 1 113733 1 6 13)', + 'hexoid': '06 0B 60 86 48 01 86 F8 45 01 07 01 01', + 'name': 'Unknown Verisign VPN extension', + 'oid': (2, 16, 840, 1, 113733, 1, 6, 13)}, + 'UserPicture': {'comment': 'Netscape certificate extension', + 'description': 'UserPicture (2 16 840 1 113730 1 11)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0C', + 'name': 'UserPicture', + 'oid': (2, 16, 840, 1, 113730, 1, 11)}, + 'VIAnet': {'comment': 'SET vendor', + 'description': 'VIAnet (2 23 42 9 24)', + 'hexoid': '06 04 67 2A 09 19', + 'name': 'VIAnet', + 'oid': (2, 23, 42, 9, 24)}, + 'VISA': {'comment': 'SET brand', + 'description': 'VISA (2 23 42 8 4)', + 'hexoid': '06 04 67 2A 08 05', + 'name': 'VISA', + 'oid': (2, 23, 42, 8, 4)}, + 'VeriFone': {'comment': 'SET vendor', + 'description': 'VeriFone (2 23 42 9 5)', + 'hexoid': '06 04 67 2A 09 06', + 'name': 'VeriFone', + 'oid': (2, 23, 42, 9, 5)}, + 'Verisign': {'comment': 'SET vendor', + 'description': 'Verisign (2 23 42 9 18)', + 'hexoid': '06 04 67 2A 09 13', + 'name': 'Verisign', + 'oid': (2, 23, 42, 9, 18)}, + 'Verisign SGC CA?': {'comment': 'SET contentType', + 'description': 'Verisign SGC CA? (2 16 840 1 113733 1 8 1)', + 'hexoid': '06 04 67 2A 00 00', + 'name': 'Verisign SGC CA?', + 'oid': (2, 16, 840, 1, 113733, 1, 8, 1)}, + 'Verisign policyIdentifier': {'comment': 'Verisign (obsolete)', + 'description': 'Verisign policyIdentifier (2 16 840 1 113733 1 7 1 1)', + 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 01', + 'name': 'Verisign policyIdentifier', + 'oid': (2, 16, 840, 1, 113733, 1, 7, 1, 1)}, + 'X.500-Alg-Encryption': {'comment': 'X.509 id-ce (2 5 29). Obsolete, use keyUsage/extKeyUsage instead', + 'description': 'X.500-Alg-Encryption (2 5 8 1)', + 'hexoid': '06 03 55 1D 02', + 'name': 'X.500-Alg-Encryption', + 'oid': (2, 5, 8, 1)}, + 'acAaControls': {'comment': 'PKIX private extension', + 'description': 'acAaControls (1 3 6 1 5 5 7 1 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 07', + 'name': 'acAaControls', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 6)}, + 'acAuditIdentity': {'comment': 'PKIX private extension', + 'description': 'acAuditIdentity (1 3 6 1 5 5 7 1 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 05', + 'name': 'acAuditIdentity', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 4)}, + 'acProxying': {'comment': 'PKIX private extension', + 'description': 'acProxying (1 3 6 1 5 5 7 1 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 0B', + 'name': 'acProxying', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 10)}, + 'acTargeting': {'comment': 'PKIX private extension', + 'description': 'acTargeting (1 3 6 1 5 5 7 1 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 06', + 'name': 'acTargeting', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 5)}, + 'accessIdentity': {'comment': 'PKIX attribute certificate extension', + 'description': 'accessIdentity (1 3 6 1 5 5 7 10 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 03', + 'name': 'accessIdentity', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 2)}, + 'accountNumber': {'comment': 'SET field', + 'description': 'accountNumber (2 23 42 2 7 11)', + 'hexoid': '06 04 67 2A 02 0C', + 'name': 'accountNumber', + 'oid': (2, 23, 42, 2, 7, 11)}, + 'action': {'comment': 'Telesec', + 'description': 'action (0 2 262 1 10 9)', + 'hexoid': '06 06 02 82 06 01 0A 09', + 'name': 'action', + 'oid': (0, 2, 262, 1, 10, 9)}, + 'additionalPolicy': {'comment': 'SET', + 'description': 'additionalPolicy (2 23 42 3 0 1)', + 'hexoid': '06 03 67 2A 04', + 'name': 'additionalPolicy', + 'oid': (2, 23, 42, 3, 0, 1)}, + 'address': {'comment': 'SET field', + 'description': 'address (2 23 42 2 8)', + 'hexoid': '06 04 67 2A 02 09', + 'name': 'address', + 'oid': (2, 23, 42, 2, 8)}, + 'admission': {'comment': 'Teletrust attribute', + 'description': 'admission (1 3 36 8 3 3)', + 'hexoid': '06 05 2B 24 08 03 04', + 'name': 'admission', + 'oid': (1, 3, 36, 8, 3, 3)}, + 'aes': {'comment': 'NIST Algorithm', + 'description': 'aes (2 16 840 1 101 3 4 1)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 01', + 'name': 'aes', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1)}, + 'aes128-CBC': {'comment': 'NIST Algorithm', + 'description': 'aes128-CBC (2 16 840 1 101 3 4 1 2)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 03', + 'name': 'aes128-CBC', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 2)}, + 'aes128-CFB': {'comment': 'NIST Algorithm', + 'description': 'aes128-CFB (2 16 840 1 101 3 4 1 4)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 15', + 'name': 'aes128-CFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 4)}, + 'aes128-ECB': {'comment': 'NIST Algorithm', + 'description': 'aes128-ECB (2 16 840 1 101 3 4 1 1)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 02', + 'name': 'aes128-ECB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 1)}, + 'aes128-OFB': {'comment': 'NIST Algorithm', + 'description': 'aes128-OFB (2 16 840 1 101 3 4 1 3)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 04', + 'name': 'aes128-OFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 3)}, + 'aes192-CBC': {'comment': 'NIST Algorithm', + 'description': 'aes192-CBC (2 16 840 1 101 3 4 1 22)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 17', + 'name': 'aes192-CBC', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 22)}, + 'aes192-CFB': {'comment': 'NIST Algorithm', + 'description': 'aes192-CFB (2 16 840 1 101 3 4 1 24)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 29', + 'name': 'aes192-CFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 24)}, + 'aes192-ECB': {'comment': 'NIST Algorithm', + 'description': 'aes192-ECB (2 16 840 1 101 3 4 1 21)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 16', + 'name': 'aes192-ECB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 21)}, + 'aes192-OFB': {'comment': 'NIST Algorithm', + 'description': 'aes192-OFB (2 16 840 1 101 3 4 1 23)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 18', + 'name': 'aes192-OFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 23)}, + 'aes256-CBC': {'comment': 'NIST Algorithm', + 'description': 'aes256-CBC (2 16 840 1 101 3 4 1 42)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 2B', + 'name': 'aes256-CBC', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 42)}, + 'aes256-CFB': {'comment': 'Novell', + 'description': 'aes256-CFB (2 16 840 1 101 3 4 1 44)', + 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 02 08', + 'name': 'aes256-CFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 44)}, + 'aes256-ECB': {'comment': 'NIST Algorithm', + 'description': 'aes256-ECB (2 16 840 1 101 3 4 1 41)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 2A', + 'name': 'aes256-ECB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 41)}, + 'aes256-OFB': {'comment': 'NIST Algorithm', + 'description': 'aes256-OFB (2 16 840 1 101 3 4 1 43)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 2C', + 'name': 'aes256-OFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 43)}, + 'alExemptedAddressProcessor': {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'alExemptedAddressProcessor (2 16 840 1 101 2 1 5 47)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 30', + 'name': 'alExemptedAddressProcessor', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 47)}, + 'algorithm': {'comment': 'SET', + 'description': 'algorithm (2 23 42 4)', + 'hexoid': '06 03 67 2A 05', + 'name': 'algorithm', + 'oid': (2, 23, 42, 4)}, + 'algorithms': {'comment': 'PKIX algorithm', + 'description': 'algorithms (1 3 6 1 5 5 7 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 01', + 'name': 'algorithms', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6)}, + 'algorithmsSupported': {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'algorithmsSupported (2 16 840 1 101 2 1 5 49)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 32', + 'name': 'algorithmsSupported', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 49)}, + 'alias': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'alias (2 5 6 1)', + 'hexoid': '06 03 55 06 02', + 'name': 'alias', + 'oid': (2, 5, 6, 1)}, + 'aliasedEntryName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'aliasedEntryName (2 5 4 1)', + 'hexoid': '06 03 55 04 02', + 'name': 'aliasedEntryName', + 'oid': (2, 5, 4, 1)}, + 'alid': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'alid (2 16 840 1 101 2 1 5 14)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 14', + 'name': 'alid', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 14)}, + 'altCertTemplate': {'comment': 'PKIX CRMF registration control', + 'description': 'altCertTemplate(1 3 6 1 5 5 7 5 1 7)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 08', + 'name': 'altCertTemplate', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 7)}, + 'amount': {'comment': 'SET field', + 'description': 'amount (2 23 42 2 10)', + 'hexoid': '06 04 67 2A 02 0B', + 'name': 'amount', + 'oid': (2, 23, 42, 2, 10)}, + 'anonymizedPublicKeyDirectory': {'comment': 'Telesec attribute', + 'description': 'anonymizedPublicKeyDirectory (0 2 262 1 10 7 16)', + 'hexoid': '06 07 02 82 06 01 0A 07 10', + 'name': 'anonymizedPublicKeyDirectory', + 'oid': (0, 2, 262, 1, 10, 7, 16)}, + 'api': {'comment': 'Teletrust API', + 'description': 'api (1 3 36 6)', + 'hexoid': '06 04 2B 24 06 01', + 'name': 'api', + 'oid': (1, 3, 36, 6)}, + 'applicationEntity': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'applicationEntity (2 5 6 12)', + 'hexoid': '06 03 55 06 0D', + 'name': 'applicationEntity', + 'oid': (2, 5, 6, 12)}, + 'applicationGroupIdentifier': {'comment': 'Telesec attribute', + 'description': 'applicationGroupIdentifier (0 2 262 1 10 7 0)', + 'hexoid': '06 07 02 82 06 01 0A 07 00', + 'name': 'applicationGroupIdentifier', + 'oid': (0, 2, 262, 1, 10, 7, 0)}, + 'applicationProcess': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'applicationProcess (2 5 6 11)', + 'hexoid': '06 03 55 06 0C', + 'name': 'applicationProcess', + 'oid': (2, 5, 6, 11)}, + 'aprUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'aprUKMs (2 16 840 1 101 2 1 5 23)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 18', + 'name': 'aprUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 23)}, + 'arpa': {'comment': 'NIST Algorithm', + 'description': 'arpa (2 16 840 1 101 3 3)', + 'hexoid': '06 07 60 86 48 01 65 03 04', + 'name': 'arpa', + 'oid': (2, 16, 840, 1, 101, 3, 3)}, + 'ascom': {'comment': 'Microsoft Exchange Server - object class', + 'description': 'ascom (1 3 6 1 4 1 188 7 1 1)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 00', + 'name': 'ascom', + 'oid': (1, 3, 6, 1, 4, 1, 188, 7, 1, 1)}, + 'attrCert': {'comment': 'Teletrust signature attributes', + 'description': 'attrCert (1 3 36 8 6 3)', + 'hexoid': '06 05 2B 24 08 06 04', + 'name': 'attrCert', + 'oid': (1, 3, 36, 8, 6, 3)}, + 'attrRef': {'comment': 'Teletrust signature attributes', + 'description': 'attrRef (1 3 36 8 6 4)', + 'hexoid': '06 05 2B 24 08 06 05', + 'name': 'attrRef', + 'oid': (1, 3, 36, 8, 6, 4)}, + 'attribute': {'comment': 'SET attribute', + 'description': 'attribute (2 23 42 3)', + 'hexoid': '06 04 67 2A 03 00', + 'name': 'attribute', + 'oid': (2, 23, 42, 3)}, + 'attribute-cert': {'comment': 'ANSI X9.57 attribute', + 'description': 'attribute-cert (1 2 840 10040 3 2)', + 'hexoid': '06 06 2A 86 48 CE 38 03 02', + 'name': 'attribute-cert', + 'oid': (1, 2, 840, 10040, 3, 2)}, + 'attributeCert': {'comment': 'PKIX', + 'description': 'attributeCert (1 3 6 1 5 5 7 0 12)', + 'hexoid': '06 07 2B 06 01 05 05 07 01', + 'name': 'attributeCert', + 'oid': (1, 3, 6, 1, 5, 5, 7, 0, 12)}, + 'attributeCertificate': {'comment': 'PKIX attribute certificate extension', + 'description': 'attributeCertificate (1 3 6 1 5 5 7 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 01', + 'name': 'attributeCertificate', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10)}, + 'attributeGroup': {'comment': 'Telesec', + 'description': 'attributeGroup (0 2 262 1 10 8)', + 'hexoid': '06 06 02 82 06 01 0A 08', + 'name': 'attributeGroup', + 'oid': (0, 2, 262, 1, 10, 8)}, + 'attributeSchema': {'comment': 'Microsoft Exchange Server - object class', + 'description': 'attributeSchema (1 2 840 113556 1 3 14)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 11', + 'name': 'attributeSchema', + 'oid': (1, 2, 840, 113556, 1, 3, 14)}, + 'attributeTypes': {'comment': 'Telesec module', + 'description': 'attributeTypes (0 2 262 1 10 2 1)', + 'hexoid': '06 07 02 82 06 01 0A 02 01', + 'name': 'attributeTypes', + 'oid': (0, 2, 262, 1, 10, 2, 1)}, + 'augUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'augUKMs (2 16 840 1 101 2 1 5 27)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1C', + 'name': 'augUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 27)}, + 'authentication': {'comment': 'Telesec mechanism', + 'description': 'authentication (0 2 262 1 10 1 0)', + 'hexoid': '06 07 02 82 06 01 0A 01 00', + 'name': 'authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0)}, + 'authenticationInfo': {'comment': 'PKIX attribute certificate extension', + 'description': 'authenticationInfo (1 3 6 1 5 5 7 10 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 02', + 'name': 'authenticationInfo', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 1)}, + 'authenticator': {'comment': 'PKIX CRMF registration control', + 'description': 'authenticator (1 3 6 1 5 5 7 5 1 2)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 03', + 'name': 'authenticator', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 2)}, + 'authorityInfoAccess': {'comment': 'PKIX private extension', + 'description': 'authorityInfoAccess (1 3 6 1 5 5 7 1 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 04', + 'name': 'authorityInfoAccess', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 1)}, + 'authorityKeyIdentifier': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'authorityKeyIdentifier (2 5 29 35)', + 'hexoid': '06 03 55 1D 24', + 'name': 'authorityKeyIdentifier', + 'oid': (2, 5, 29, 35)}, + 'authorityRevocationList': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'authorityRevocationList (2 5 4 38)', + 'hexoid': '06 03 55 04 27', + 'name': 'authorityRevocationList', + 'oid': (2, 5, 4, 38)}, + 'autoGen': {'comment': 'Teletrust presentation types', + 'description': 'autoGen (1 3 36 8 6 10)', + 'hexoid': '06 06 2B 24 08 07 01 01', + 'name': 'autoGen', + 'oid': (1, 3, 36, 8, 6, 10)}, + 'auxiliaryVector': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'auxiliaryVector (2 16 840 1 101 2 1 5 10)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0B', + 'name': 'auxiliaryVector', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 10)}, + 'basicConstraints': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'basicConstraints (2 5 29 19)', + 'hexoid': '06 03 55 1D 14', + 'name': 'basicConstraints', + 'oid': (2, 5, 29, 19)}, + 'birthFamilyName': {'comment': 'SET field', + 'description': 'birthFamilyName (2 23 42 2 3)', + 'hexoid': '06 04 67 2A 02 04', + 'name': 'birthFamilyName', + 'oid': (2, 23, 42, 2, 3)}, + 'blowfishCBC': {'comment': 'cryptlib encryption algorithm', + 'description': 'blowfishCBC (1 3 6 1 4 1 3029 1 1 2)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 03', + 'name': 'blowfishCBC', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 2)}, + 'blowfishCFB': {'comment': 'cryptlib encryption algorithm', + 'description': 'blowfishCFB (1 3 6 1 4 1 3029 1 1 3)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 04', + 'name': 'blowfishCFB', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 3)}, + 'blowfishECB': {'comment': 'cryptlib encryption algorithm', + 'description': 'blowfishECB (1 3 6 1 4 1 3029 1 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 02', + 'name': 'blowfishECB', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 1)}, + 'blowfishOFB': {'comment': 'cryptlib public-key algorithm', + 'description': 'blowfishOFB (1 3 6 1 4 1 3029 1 1 4)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 02 01', + 'name': 'blowfishOFB', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 4)}, + 'brand': {'comment': 'SET brand', + 'description': 'brand (2 23 42 8)', + 'hexoid': '06 04 67 2A 08 01', + 'name': 'brand', + 'oid': (2, 23, 42, 8)}, + 'bsi-1': {'comment': 'Teletrust encryption algorithm', + 'description': 'bsi-1 (1 3 36 3 1 5)', + 'hexoid': '06 06 2B 24 03 01 05 01', + 'name': 'bsi-1', + 'oid': (1, 3, 36, 3, 1, 5)}, + 'bsiPKE': {'comment': 'Teletrust key management', + 'description': 'bsiPKE (1 3 36 7 1 1)', + 'hexoid': '06 04 2B 24 07 02', + 'name': 'bsiPKE', + 'oid': (1, 3, 36, 7, 1, 1)}, + 'bsi_1CBC_PEMpad': {'comment': 'Teletrust algorithm', + 'description': 'bsi_1CBC_PEMpad (1 3 36 3 1 5 2 1)', + 'hexoid': '06 04 2B 24 03 02', + 'name': 'bsi_1CBC_PEMpad', + 'oid': (1, 3, 36, 3, 1, 5, 2, 1)}, + 'bsi_1CBC_pad': {'comment': 'Teletrust encryption algorithm', + 'description': 'bsi_1CBC_pad (1 3 36 3 1 5 2)', + 'hexoid': '06 07 2B 24 03 01 05 02 01', + 'name': 'bsi_1CBC_pad', + 'oid': (1, 3, 36, 3, 1, 5, 2)}, + 'bsi_1ECB_pad': {'comment': 'Teletrust encryption algorithm', + 'description': 'bsi_1ECB_pad (1 3 36 3 1 5 1)', + 'hexoid': '06 06 2B 24 03 01 05 02', + 'name': 'bsi_1ECB_pad', + 'oid': (1, 3, 36, 3, 1, 5, 1)}, + 'businessCategory': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'businessCategory (2 5 4 15)', + 'hexoid': '06 03 55 04 10', + 'name': 'businessCategory', + 'oid': (2, 5, 4, 15)}, + 'cAClearanceConstraint': {'comment': 'SDN.700 INFOSEC extensions', + 'description': 'cAClearanceConstraint (2 16 840 1 101 2 1 5 60)', + 'hexoid': '06 09 60 86 48 01 65 02 01 07 01', + 'name': 'cAClearanceConstraint', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 60)}, + 'cAKeyCertIndexPair': {'comment': 'Microsoft attribute', + 'description': 'cAKeyCertIndexPair (1 3 6 1 4 1 311 21 1)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 58 02 01', + 'name': 'cAKeyCertIndexPair', + 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 1)}, + 'cRLDistributionPoints': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'cRLDistributionPoints (2 5 29 31)', + 'hexoid': '06 03 55 1D 20', + 'name': 'cRLDistributionPoints', + 'oid': (2, 5, 29, 31)}, + 'cRLNumber': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'cRLNumber (2 5 29 20)', + 'hexoid': '06 03 55 1D 15', + 'name': 'cRLNumber', + 'oid': (2, 5, 29, 20)}, + 'cRLReason': {'comment': 'X.509 id-ce (2 5 29). Deprecated, alternative OID uncertain', + 'description': 'cRLReason (2 5 29 21)', + 'hexoid': '06 03 55 1D 16', + 'name': 'cRLReason', + 'oid': (2, 5, 29, 21)}, + 'caCertificate': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'caCertificate (2 5 4 37)', + 'hexoid': '06 03 55 04 26', + 'name': 'caCertificate', + 'oid': (2, 5, 4, 37)}, + 'caIssuers': {'comment': 'PKIX authority info access descriptor', + 'description': 'caIssuers (1 3 6 1 5 5 7 48 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 30 03', + 'name': 'caIssuers', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 2)}, + 'caKeyUpdateInfo': {'comment': 'PKIX CMP information', + 'description': 'caKeyUpdateInfo (1 3 6 1 5 5 7 4 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 06', + 'name': 'caKeyUpdateInfo', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 5)}, + 'caProtEncCert': {'comment': 'PKIX CMP information', + 'description': 'caProtEncCert (1 3 6 1 5 5 7 4 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 02', + 'name': 'caProtEncCert', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 1)}, + 'callissuer': {'comment': 'ANSI X9.57 hold instruction', + 'description': 'callissuer (1 2 840 10040 2 2)', + 'hexoid': '06 07 2A 86 48 CE 38 02 02', + 'name': 'callissuer', + 'oid': (1, 2, 840, 10040, 2, 2)}, + 'canNotDecryptAny': {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 1) instead', + 'description': 'canNotDecryptAny (1 2 840 113549 1 9 15 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 03', + 'name': 'canNotDecryptAny', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 2)}, + 'capcoMarkings': {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoMarkings (2 16 840 1 101 2 1 3 13)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0D 00', + 'name': 'capcoMarkings', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13)}, + 'capcoSecurityCategories': {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoSecurityCategories (2 16 840 1 101 2 1 3 13 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 01', + 'name': 'capcoSecurityCategories', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0)}, + 'capcoTagSetName1': {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoTagSetName1 (2 16 840 1 101 2 1 3 13 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 02', + 'name': 'capcoTagSetName1', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 1)}, + 'capcoTagSetName2': {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoTagSetName2 (2 16 840 1 101 2 1 3 13 0 2)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 03', + 'name': 'capcoTagSetName2', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 2)}, + 'capcoTagSetName3': {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoTagSetName3 (2 16 840 1 101 2 1 3 13 0 3)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 04', + 'name': 'capcoTagSetName3', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 3)}, + 'capcoTagSetName4': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'capcoTagSetName4 (2 16 840 1 101 2 1 3 13 0 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 01', + 'name': 'capcoTagSetName4', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 4)}, + 'carLicense': {'comment': 'Netscape LDAP definitions', + 'description': 'carLicense (2 16 840 1 113730 3 1 1)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 02', + 'name': 'carLicense', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 1)}, + 'cardCertRequired': {'comment': 'SET cert extension', + 'description': 'cardCertRequired (2 23 42 7 3)', + 'hexoid': '06 04 67 2A 07 04', + 'name': 'cardCertRequired', + 'oid': (2, 23, 42, 7, 3)}, + 'cast3CBC': {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'cast3CBC (1 2 840 113533 7 66 3)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0A', + 'name': 'cast3CBC', + 'oid': (1, 2, 840, 113533, 7, 66, 3)}, + 'cast5CBC': {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'cast5CBC (1 2 840 113533 7 66 10)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0B', + 'name': 'cast5CBC', + 'oid': (1, 2, 840, 113533, 7, 66, 10)}, + 'cast5MAC': {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'cast5MAC (1 2 840 113533 7 66 11)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0C', + 'name': 'cast5MAC', + 'oid': (1, 2, 840, 113533, 7, 66, 11)}, + 'cert': {'comment': 'SET cert attribute', + 'description': 'cert (2 23 42 3 0)', + 'hexoid': '06 05 67 2A 03 00 00', + 'name': 'cert', + 'oid': (2, 23, 42, 3, 0)}, + 'cert-extension': {'comment': 'Netscape certificate extension', + 'description': 'cert-extension (2 16 840 1 113730 1)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 01', + 'name': 'cert-extension', + 'oid': (2, 16, 840, 1, 113730, 1)}, + 'certAndCrlExtensionDefinitions': {'comment': 'Telesec', + 'description': 'certAndCrlExtensionDefinitions (0 2 262 1 10 12)', + 'hexoid': '06 06 02 82 06 01 0A 0C', + 'name': 'certAndCrlExtensionDefinitions', + 'oid': (0, 2, 262, 1, 10, 12)}, + 'certExt': {'comment': 'SET cert extension', + 'description': 'certExt (2 23 42 7)', + 'hexoid': '06 04 67 2A 07 00', + 'name': 'certExt', + 'oid': (2, 23, 42, 7)}, + 'certExtensionLiabilityLimitationExt': {'comment': 'Telesec cert/CRL extension', + 'description': 'certExtensionLiabilityLimitationExt (0 2 262 1 10 12 0)', + 'hexoid': '06 07 02 82 06 01 0A 0C 00', + 'name': 'certExtensionLiabilityLimitationExt', + 'oid': (0, 2, 262, 1, 10, 12, 0)}, + 'certHash': {'comment': 'Teletrust attribute certificate attribute', + 'description': 'certHash (1 3 36 8 3 13)', + 'hexoid': '06 05 2B 24 08 04 08', + 'name': 'certHash', + 'oid': (1, 3, 36, 8, 3, 13)}, + 'certInDirSince': {'comment': 'Teletrust attribute', + 'description': 'certInDirSince (1 3 36 8 3 12)', + 'hexoid': '06 05 2B 24 08 03 0D', + 'name': 'certInDirSince', + 'oid': (1, 3, 36, 8, 3, 12)}, + 'certRef': {'comment': 'Teletrust signature attributes', + 'description': 'certRef (1 3 36 8 6 2)', + 'hexoid': '06 05 2B 24 08 06 03', + 'name': 'certRef', + 'oid': (1, 3, 36, 8, 6, 2)}, + 'certReq': {'comment': 'PKIX', + 'description': 'certReq (1 3 6 1 5 5 7 5 2 2)', + 'hexoid': '06 07 2B 06 01 05 05 07 06', + 'name': 'certReq', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 2)}, + 'certReqExtensions': {'comment': 'Microsoft code signing', + 'description': 'certReqExtensions (1 3 6 1 4 1 311 2 1 14)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0F', + 'name': 'certReqExtensions', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 14)}, + 'certSequence': {'comment': 'Netscape certificate extension', + 'description': 'certSequence (2 16 840 1 113730 2 5)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 06', + 'name': 'certSequence', + 'oid': (2, 16, 840, 1, 113730, 2, 5)}, + 'certTrustList': {'comment': 'Microsoft', + 'description': 'certTrustList (1 3 6 1 4 1 311 10 1)', + 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 02', + 'name': 'certTrustList', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 1)}, + 'certTrustListSigning': {'comment': 'Microsoft enhanced key usage', + 'description': 'certTrustListSigning (1 3 6 1 4 1 311 10 3 1)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 02', + 'name': 'certTrustListSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 1)}, + 'certTypes': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'certTypes (for PKCS #12) (1 2 840 113549 1 9 22)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 01', + 'name': 'certTypes', + 'oid': (1, 2, 840, 113549, 1, 9, 22)}, + 'certURL': {'comment': 'Netscape', + 'description': 'certURL (2 16 840 1 113730 2 6)', + 'hexoid': '06 08 60 86 48 01 86 F8 42 03', + 'name': 'certURL', + 'oid': (2, 16, 840, 1, 113730, 2, 6)}, + 'certificateAuthority': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'certificateAuthority (2 5 6 16)', + 'hexoid': '06 03 55 06 11', + 'name': 'certificateAuthority', + 'oid': (2, 5, 6, 16)}, + 'certificateIssuer': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'certificateIssuer (2 5 29 29)', + 'hexoid': '06 03 55 1D 1E', + 'name': 'certificateIssuer', + 'oid': (2, 5, 29, 29)}, + 'certificateNumber': {'comment': 'Telesec attribute', + 'description': 'certificateNumber (0 2 262 1 10 7 3)', + 'hexoid': '06 07 02 82 06 01 0A 07 03', + 'name': 'certificateNumber', + 'oid': (0, 2, 262, 1, 10, 7, 3)}, + 'certificatePolicies': {'comment': 'X.509 certificatePolicies (2 5 29 32)', + 'description': 'certificatePolicies (2 5 29 32)', + 'hexoid': '06 04 55 1D 20 00', + 'name': 'certificatePolicies', + 'oid': (2, 5, 29, 32)}, + 'certificateRevocationList': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'certificateRevocationList (2 5 4 39)', + 'hexoid': '06 03 55 04 28', + 'name': 'certificateRevocationList', + 'oid': (2, 5, 4, 39)}, + 'certificateTemplateList': {'comment': 'Telesec attribute', + 'description': 'certificateTemplateList (0 2 262 1 10 7 29)', + 'hexoid': '06 07 02 82 06 01 0A 07 1D', + 'name': 'certificateTemplateList', + 'oid': (0, 2, 262, 1, 10, 7, 29)}, + 'certificateType': {'comment': 'SET cert extension', + 'description': 'certificateType (2 23 42 7 1)', + 'hexoid': '06 04 67 2A 07 02', + 'name': 'certificateType', + 'oid': (2, 23, 42, 7, 1)}, + 'certificateTypes': {'comment': 'Telesec module', + 'description': 'certificateTypes (0 2 262 1 10 2 2)', + 'hexoid': '06 07 02 82 06 01 0A 02 02', + 'name': 'certificateTypes', + 'oid': (0, 2, 262, 1, 10, 2, 2)}, + 'challengePassword': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'challengePassword (1 2 840 113549 1 9 7)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 08', + 'name': 'challengePassword', + 'oid': (1, 2, 840, 113549, 1, 9, 7)}, + 'characteristic-two-basis': {'comment': 'ANSI X9.62 field type', + 'description': 'characteristic-two-basis (1 2 840 10045 1 2 3)', + 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03', + 'name': 'characteristic-two-basis', + 'oid': (1, 2, 840, 10045, 1, 2, 3)}, + 'characteristic-two-field': {'comment': 'ANSI X9.62 field type', + 'description': 'characteristic-two-field (1 2 840 10045 1 2)', + 'hexoid': '06 07 2A 86 48 CE 3D 01 02', + 'name': 'characteristic-two-field', + 'oid': (1, 2, 840, 10045, 1, 2)}, + 'chargingIdentity': {'comment': 'PKIX attribute certificate extension', + 'description': 'chargingIdentity (1 3 6 1 5 5 7 10 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 04', + 'name': 'chargingIdentity', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 3)}, + 'classSchema': {'comment': 'Microsoft Exchange Server - object class', + 'description': 'classSchema (1 2 840 113556 1 3 13)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0E', + 'name': 'classSchema', + 'oid': (1, 2, 840, 113556, 1, 3, 13)}, + 'clearance': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'clearance (2 5 4 55)', + 'hexoid': '06 03 55 06 00', + 'name': 'clearance', + 'oid': (2, 5, 4, 55)}, + 'clientAuth': {'comment': 'PKIX key purpose', + 'description': 'clientAuth (1 3 6 1 5 5 7 3 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 03', + 'name': 'clientAuth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 2)}, + 'cmcControls': {'comment': 'PKIX', + 'description': 'cmcControls (1 3 6 1 5 5 7 7)', + 'hexoid': '06 07 2B 06 01 05 05 07 08', + 'name': 'cmcControls', + 'oid': (1, 3, 6, 1, 5, 5, 7, 7)}, + 'cmpInformationTypes': {'comment': 'PKIX CMP information', + 'description': 'cmpInformationTypes (1 3 6 1 5 5 7 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 01', + 'name': 'cmpInformationTypes', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4)}, + 'codeSigning': {'comment': 'PKIX key purpose', + 'description': 'codeSigning (1 3 6 1 5 5 7 3 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 04', + 'name': 'codeSigning', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 3)}, + 'collectiveFacsimileTelephoneNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveFacsimileTelephoneNumber (2 5 4 23 1)', + 'hexoid': '06 03 55 04 18', + 'name': 'collectiveFacsimileTelephoneNumber', + 'oid': (2, 5, 4, 23, 1)}, + 'collectiveInternationalISDNNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveInternationalISDNNumber (2 5 4 25 1)', + 'hexoid': '06 03 55 04 1A', + 'name': 'collectiveInternationalISDNNumber', + 'oid': (2, 5, 4, 25, 1)}, + 'collectiveLocalityName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveLocalityName (2 5 4 7 1)', + 'hexoid': '06 03 55 04 08', + 'name': 'collectiveLocalityName', + 'oid': (2, 5, 4, 7, 1)}, + 'collectiveOrganizationName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveOrganizationName (2 5 4 10 1)', + 'hexoid': '06 03 55 04 0B', + 'name': 'collectiveOrganizationName', + 'oid': (2, 5, 4, 10, 1)}, + 'collectiveOrganizationalUnitName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveOrganizationalUnitName (2 5 4 11 1)', + 'hexoid': '06 03 55 04 0C', + 'name': 'collectiveOrganizationalUnitName', + 'oid': (2, 5, 4, 11, 1)}, + 'collectivePhysicalDeliveryOfficeName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePhysicalDeliveryOfficeName (2 5 4 19 1)', + 'hexoid': '06 03 55 04 14', + 'name': 'collectivePhysicalDeliveryOfficeName', + 'oid': (2, 5, 4, 19, 1)}, + 'collectivePostOfficeBox': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePostOfficeBox (2 5 4 18 1)', + 'hexoid': '06 03 55 04 13', + 'name': 'collectivePostOfficeBox', + 'oid': (2, 5, 4, 18, 1)}, + 'collectivePostalAddress': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePostalAddress (2 5 4 16 1)', + 'hexoid': '06 03 55 04 11', + 'name': 'collectivePostalAddress', + 'oid': (2, 5, 4, 16, 1)}, + 'collectivePostalCode': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePostalCode (2 5 4 17 1)', + 'hexoid': '06 03 55 04 12', + 'name': 'collectivePostalCode', + 'oid': (2, 5, 4, 17, 1)}, + 'collectiveStateOrProvinceName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveStateOrProvinceName (2 5 4 8 1)', + 'hexoid': '06 03 55 04 09', + 'name': 'collectiveStateOrProvinceName', + 'oid': (2, 5, 4, 8, 1)}, + 'collectiveStreetAddress': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveStreetAddress (2 5 4 9 1)', + 'hexoid': '06 03 55 04 0A', + 'name': 'collectiveStreetAddress', + 'oid': (2, 5, 4, 9, 1)}, + 'collectiveTelephoneNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveTelephoneNumber (2 5 4 20 1)', + 'hexoid': '06 03 55 04 15', + 'name': 'collectiveTelephoneNumber', + 'oid': (2, 5, 4, 20, 1)}, + 'collectiveTeletexTerminalIdentifier': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveTeletexTerminalIdentifier (2 5 4 22 1)', + 'hexoid': '06 03 55 04 17', + 'name': 'collectiveTeletexTerminalIdentifier', + 'oid': (2, 5, 4, 22, 1)}, + 'collectiveTelexNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveTelexNumber (2 5 4 21 1)', + 'hexoid': '06 03 55 04 16', + 'name': 'collectiveTelexNumber', + 'oid': (2, 5, 4, 21, 1)}, + 'commPrivileges': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'commPrivileges (2 16 840 1 101 2 1 5 56)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 39', + 'name': 'commPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 56)}, + 'commercialCodeSigning': {'comment': 'Microsoft code signing', + 'description': 'commercialCodeSigning (1 3 6 1 4 1 311 2 1 22)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1A', + 'name': 'commercialCodeSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 22)}, + 'commonName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'commonName (2 5 4 3)', + 'hexoid': '06 03 55 04 04', + 'name': 'commonName', + 'oid': (2, 5, 4, 3)}, + 'confirmWaitTime': {'comment': 'PKIX CMP information', + 'description': 'confirmWaitTime (1 3 6 1 5 5 7 4 14)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0F', + 'name': 'confirmWaitTime', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 14)}, + 'container': {'comment': 'Microsoft Exchange Server - object class', + 'description': 'container (1 2 840 113556 1 3 23)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 2E', + 'name': 'container', + 'oid': (1, 2, 840, 113556, 1, 3, 23)}, + 'contentHints': {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 3) instead', + 'description': 'contentHints (1 2 840 113549 1 9 15 5)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 06', + 'name': 'contentHints', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 5)}, + 'contentType': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'contentType (1 2 840 113549 1 9 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 04', + 'name': 'contentType', + 'oid': (1, 2, 840, 113549, 1, 9, 3)}, + 'countersignature': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'countersignature (1 2 840 113549 1 9 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 07', + 'name': 'countersignature', + 'oid': (1, 2, 840, 113549, 1, 9, 6)}, + 'country': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'country (2 5 6 2)', + 'hexoid': '06 03 55 06 03', + 'name': 'country', + 'oid': (2, 5, 6, 2)}, + 'countryName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'countryName (2 5 4 6)', + 'hexoid': '06 03 55 04 07', + 'name': 'countryName', + 'oid': (2, 5, 4, 6)}, + 'countryOfCitizenship': {'comment': 'PKIX personal data', + 'description': 'countryOfCitizenship (1 3 6 1 5 5 7 9 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 06', + 'name': 'countryOfCitizenship', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 5)}, + 'countryOfResidence': {'comment': 'PKIX', + 'description': 'countryOfResidence (1 3 6 1 5 5 7 9 6)', + 'hexoid': '06 07 2B 06 01 05 05 07 0A', + 'name': 'countryOfResidence', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 6)}, + 'cps': {'comment': 'PKIX policy qualifier', + 'description': 'cps (1 3 6 1 5 5 7 2 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 02 02', + 'name': 'cps', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 1)}, + 'creationDate': {'comment': 'Telesec attribute', + 'description': 'creationDate (0 2 262 1 10 7 5)', + 'hexoid': '06 07 02 82 06 01 0A 07 05', + 'name': 'creationDate', + 'oid': (0, 2, 262, 1, 10, 7, 5)}, + 'crlTypes': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'crlTypes (for PKCS #12) (1 2 840 113549 1 9 23)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 17 01', + 'name': 'crlTypes', + 'oid': (1, 2, 840, 113549, 1, 9, 23)}, + 'crmfRegistration': {'comment': 'PKIX CRMF registration', + 'description': 'crmfRegistration (1 3 6 1 5 5 7 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 05 01', + 'name': 'crmfRegistration', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5)}, + 'crossCertificatePair': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'crossCertificatePair (2 5 4 40)', + 'hexoid': '06 03 55 04 29', + 'name': 'crossCertificatePair', + 'oid': (2, 5, 4, 40)}, + 'cryptlibAttribute': {'comment': 'cryptlib', + 'description': 'cryptlibAttribute (1 3 6 1 4 1 3029 4 1 1)', + 'hexoid': '06 09 2B 06 01 04 01 97 55 04 01', + 'name': 'cryptlibAttribute', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 1)}, + 'cryptlibConfigData': {'comment': 'cryptlib content type', + 'description': 'cryptlibConfigData (1 3 6 1 4 1 3029 4 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 02', + 'name': 'cryptlibConfigData', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 1)}, + 'cryptlibContent': {'comment': 'cryptlib content type', + 'description': 'cryptlibContent (1 3 6 1 4 1 3029 4 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 01', + 'name': 'cryptlibContent', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1)}, + 'cryptlibPKIXFix': {'comment': 'cryptlib PKIX fix attribute', + 'description': 'cryptlibPKIXFix (1 3 6 1 4 1 3029 3 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 01', + 'name': 'cryptlibPKIXFix', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1)}, + 'cryptlibPresenceCheck': {'comment': 'cryptlib attribute type', + 'description': 'cryptlibPresenceCheck (1 3 6 1 4 1 3029 3 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 01', + 'name': 'cryptlibPresenceCheck', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 1)}, + 'cryptlibUserIndex': {'comment': 'cryptlib content type', + 'description': 'cryptlibUserIndex (1 3 6 1 4 1 3029 4 1 2)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 03', + 'name': 'cryptlibUserIndex', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 2)}, + 'cryptlibUserInfo': {'comment': 'cryptlib special MPEG-of-cat OID', + 'description': 'cryptlibUserInfo (1 3 6 1 4 1 3029 4 1 3)', + 'hexoid': '06 0B 2B 06 01 04 01 97 55 2A D7 24 01', + 'name': 'cryptlibUserInfo', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 3)}, + 'cspContentType': {'comment': 'SDN.700 INFOSEC format', + 'description': 'cspContentType (2 16 840 1 101 2 1 2 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 2A', + 'name': 'cspContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 3)}, + 'cspCsExtn': {'comment': 'SDN.700 INFOSEC security category', + 'description': 'cspCsExtn (2 16 840 1 101 2 1 7 1 0)', + 'hexoid': '06 09 60 86 48 01 65 02 01 08 01', + 'name': 'cspCsExtn', + 'oid': (2, 16, 840, 1, 101, 2, 1, 7, 1, 0)}, + 'cspExtns': {'comment': 'SDN.700 INFOSEC extensions', + 'description': 'cspExtns (2 16 840 1 101 2 1 7 1)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 07 01 00', + 'name': 'cspExtns', + 'oid': (2, 16, 840, 1, 101, 2, 1, 7, 1)}, + 'cspForwardedMessageParameters': {'comment': 'SDN.700 INFOSEC format', + 'description': 'cspForwardedMessageParameters (2 16 840 1 101 2 1 2 75)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 52', + 'name': 'cspForwardedMessageParameters', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 75)}, + 'ctlFileIsArchive': {'comment': 'Telesec attribute', + 'description': 'ctlFileIsArchive (0 2 262 1 10 7 27)', + 'hexoid': '06 07 02 82 06 01 0A 07 1B', + 'name': 'ctlFileIsArchive', + 'oid': (0, 2, 262, 1, 10, 7, 27)}, + 'currentCRL': {'comment': 'PKIX CMP information', + 'description': 'currentCRL (1 3 6 1 5 5 7 4 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 07', + 'name': 'currentCRL', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 6)}, + 'dSA': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'dSA (2 5 6 13)', + 'hexoid': '06 03 55 06 0E', + 'name': 'dSA', + 'oid': (2, 5, 6, 13)}, + 'data': {'comment': 'PKCS #7', + 'description': 'data (1 2 840 113549 1 7 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 02', + 'name': 'data', + 'oid': (1, 2, 840, 113549, 1, 7, 1)}, + 'data-type': {'comment': 'Netscape data type', + 'description': 'data-type (2 16 840 1 113730 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 01', + 'name': 'data-type', + 'oid': (2, 16, 840, 1, 113730, 2)}, + 'dataGIF': {'comment': 'Netscape data type', + 'description': 'dataGIF (2 16 840 1 113730 2 1)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 02', + 'name': 'dataGIF', + 'oid': (2, 16, 840, 1, 113730, 2, 1)}, + 'dataHTML': {'comment': 'Netscape data type', + 'description': 'dataHTML (2 16 840 1 113730 2 4)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 05', + 'name': 'dataHTML', + 'oid': (2, 16, 840, 1, 113730, 2, 4)}, + 'dataJPEG': {'comment': 'Netscape data type', + 'description': 'dataJPEG (2 16 840 1 113730 2 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 03', + 'name': 'dataJPEG', + 'oid': (2, 16, 840, 1, 113730, 2, 2)}, + 'dataURL': {'comment': 'Netscape data type', + 'description': 'dataURL (2 16 840 1 113730 2 3)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 04', + 'name': 'dataURL', + 'oid': (2, 16, 840, 1, 113730, 2, 3)}, + 'dataWithAttributes': {'comment': 'PKCS #7 experimental', + 'description': 'dataWithAttributes (1 2 840 113549 1 7 7)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 08', + 'name': 'dataWithAttributes', + 'oid': (1, 2, 840, 113549, 1, 7, 7)}, + 'date': {'comment': 'SET field', + 'description': 'date (2 23 42 2 7)', + 'hexoid': '06 04 67 2A 02 08', + 'name': 'date', + 'oid': (2, 23, 42, 2, 7)}, + 'dateOfBirth': {'comment': 'PKIX personal data', + 'description': 'dateOfBirth (1 3 6 1 5 5 7 9 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 02', + 'name': 'dateOfBirth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 1)}, + 'dateOfCertGen': {'comment': 'Teletrust attribute', + 'description': 'dateOfCertGen (1 3 36 8 3 1)', + 'hexoid': '06 05 2B 24 08 03 02', + 'name': 'dateOfCertGen', + 'oid': (1, 3, 36, 8, 3, 1)}, + 'decDEA': {'comment': 'DASS algorithm', + 'description': 'decDEA (1 3 12 2 1011 7 1 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 02', + 'name': 'decDEA', + 'oid': (1, 3, 12, 2, 1011, 7, 1, 2)}, + 'decDEAMAC': {'comment': 'X.509. Unsure about this OID', + 'description': 'decDEAMAC (1 3 12 2 1011 7 3 3)', + 'hexoid': '06 06 2B 0E 03 02 01 01', + 'name': 'decDEAMAC', + 'oid': (1, 3, 12, 2, 1011, 7, 3, 3)}, + 'decEncryptionAlgorithm': {'comment': 'DASS encryption algorithm', + 'description': 'decEncryptionAlgorithm (1 3 12 2 1011 7 1)', + 'hexoid': '06 08 2B 0C 02 87 73 07 01 02', + 'name': 'decEncryptionAlgorithm', + 'oid': (1, 3, 12, 2, 1011, 7, 1)}, + 'decHashAlgorithm': {'comment': 'DASS hash algorithm', + 'description': 'decHashAlgorithm (1 3 12 2 1011 7 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 02 01', + 'name': 'decHashAlgorithm', + 'oid': (1, 3, 12, 2, 1011, 7, 2)}, + 'decMD2': {'comment': 'DASS hash algorithm', + 'description': 'decMD2 (1 3 12 2 1011 7 2 1)', + 'hexoid': '06 07 2B 0C 02 87 73 07 02 02', + 'name': 'decMD2', + 'oid': (1, 3, 12, 2, 1011, 7, 2, 1)}, + 'decMD2withRSA': {'comment': 'DASS signature algorithm', + 'description': 'decMD2withRSA (1 3 12 2 1011 7 3 1)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03 02', + 'name': 'decMD2withRSA', + 'oid': (1, 3, 12, 2, 1011, 7, 3, 1)}, + 'decMD4': {'comment': 'DASS algorithm', + 'description': 'decMD4 (1 3 12 2 1011 7 2 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03', + 'name': 'decMD4', + 'oid': (1, 3, 12, 2, 1011, 7, 2, 2)}, + 'decMD4withRSA': {'comment': 'DASS signature algorithm', + 'description': 'decMD4withRSA (1 3 12 2 1011 7 3 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03 03', + 'name': 'decMD4withRSA', + 'oid': (1, 3, 12, 2, 1011, 7, 3, 2)}, + 'decSignatureAlgorithm': {'comment': 'DASS signature algorithm', + 'description': 'decSignatureAlgorithm (1 3 12 2 1011 7 3)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03 01', + 'name': 'decSignatureAlgorithm', + 'oid': (1, 3, 12, 2, 1011, 7, 3)}, + 'decUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'decUKMs (2 16 840 1 101 2 1 5 31)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 28', + 'name': 'decUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 31)}, + 'declarationOfMajority': {'comment': 'Teletrust attribute', + 'description': 'declarationOfMajority (1 3 36 8 3 5)', + 'hexoid': '06 05 2B 24 08 03 06', + 'name': 'declarationOfMajority', + 'oid': (1, 3, 36, 8, 3, 5)}, + 'defaultSecurityPolicy': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'defaultSecurityPolicy (2 16 840 1 101 2 1 3 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0D', + 'name': 'defaultSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 12)}, + 'deliveryMechanism': {'comment': 'Microsoft', + 'description': 'deliveryMechanism (1 2 840 113556 1 2 241)', + 'hexoid': '06 08 2A 86 48 86 F7 14 04 03', + 'name': 'deliveryMechanism', + 'oid': (1, 2, 840, 113556, 1, 2, 241)}, + 'deltaCRLIndicator': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'deltaCRLIndicator (2 5 29 27)', + 'hexoid': '06 03 55 1D 1C', + 'name': 'deltaCRLIndicator', + 'oid': (2, 5, 29, 27)}, + 'deltaRevocationList': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'deltaRevocationList (2 5 4 53)', + 'hexoid': '06 03 55 04 36', + 'name': 'deltaRevocationList', + 'oid': (2, 5, 4, 53)}, + 'departmentNumber': {'comment': 'Netscape LDAP definitions', + 'description': 'departmentNumber (2 16 840 1 113730 3 1 2)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 03', + 'name': 'departmentNumber', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 2)}, + 'des': {'comment': 'Telesec encryption', + 'description': 'des (0 2 262 1 10 1 2 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 02', + 'name': 'des', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2)}, + 'des-EDE3-CBC': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'des-EDE3-CBC (1 2 840 113549 3 7)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 08', + 'name': 'des-EDE3-CBC', + 'oid': (1, 2, 840, 113549, 3, 7)}, + 'des3': {'comment': 'Telesec encryption', + 'description': 'des3 (0 2 262 1 10 1 2 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 03', + 'name': 'des3', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3)}, + 'des3CBC': {'comment': 'Telesec encryption', + 'description': 'des3CBC (0 2 262 1 10 1 2 3 2)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 02', + 'name': 'des3CBC', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 2)}, + 'des3CFB64': {'comment': 'Telesec encryption', + 'description': 'des3CFB64 (0 2 262 1 10 1 2 3 5)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 05', + 'name': 'des3CFB64', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 5)}, + 'des3CFB8': {'comment': 'Telesec encryption', + 'description': 'des3CFB8 (0 2 262 1 10 1 2 3 4)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 04', + 'name': 'des3CFB8', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 4)}, + 'des3ECB': {'comment': 'Telesec encryption', + 'description': 'des3ECB (0 2 262 1 10 1 2 3 1)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 01', + 'name': 'des3ECB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 1)}, + 'des3OFB': {'comment': 'Telesec encryption', + 'description': 'des3OFB (0 2 262 1 10 1 2 3 3)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 03', + 'name': 'des3OFB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 3)}, + 'des40': {'comment': 'PKIX algorithm', + 'description': 'des40 (1 3 6 1 5 5 7 6 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 02', + 'name': 'des40', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 1)}, + 'desCBC': {'comment': 'Telesec encryption', + 'description': 'desCBC (0 2 262 1 10 1 2 2 2)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 02', + 'name': 'desCBC', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 2)}, + 'desCBC_ISOpad': {'comment': 'Teletrust encryption algorithm', + 'description': 'desCBC_ISOpad (1 3 36 3 1 1 2 1 1)', + 'hexoid': '06 05 2B 24 03 01 03', + 'name': 'desCBC_ISOpad', + 'oid': (1, 3, 36, 3, 1, 1, 2, 1, 1)}, + 'desCBC_pad': {'comment': 'Teletrust encryption algorithm', + 'description': 'desCBC_pad (1 3 36 3 1 1 2 1)', + 'hexoid': '06 08 2B 24 03 01 01 02 01 01', + 'name': 'desCBC_pad', + 'oid': (1, 3, 36, 3, 1, 1, 2, 1)}, + 'desCDMF': {'comment': 'Identrus', + 'description': 'desCDMF (1 2 840 113549 3 10)', + 'hexoid': '06 09 2A 86 48 86 FA 65 01 06 01', + 'name': 'desCDMF', + 'oid': (1, 2, 840, 113549, 3, 10)}, + 'desCFB64': {'comment': 'Telesec encryption', + 'description': 'desCFB64 (0 2 262 1 10 1 2 2 5)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 05', + 'name': 'desCFB64', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 5)}, + 'desCFB8': {'comment': 'Telesec encryption', + 'description': 'desCFB8 (0 2 262 1 10 1 2 2 4)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 04', + 'name': 'desCFB8', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 4)}, + 'desCbcIV8': {'comment': 'Novell encryption algorithm', + 'description': 'desCbcIV8 (2 16 840 1 113719 1 2 8 22)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 17', + 'name': 'desCbcIV8', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 22)}, + 'desCbcPadIV8': {'comment': 'Novell encryption algorithm', + 'description': 'desCbcPadIV8 (2 16 840 1 113719 1 2 8 23)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 18', + 'name': 'desCbcPadIV8', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 23)}, + 'desECB': {'comment': 'Telesec encryption', + 'description': 'desECB (0 2 262 1 10 1 2 2 1)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 01', + 'name': 'desECB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 1)}, + 'desECB_ISOpad': {'comment': 'Teletrust encryption algorithm', + 'description': 'desECB_ISOpad (1 3 36 3 1 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 01 02 01', + 'name': 'desECB_ISOpad', + 'oid': (1, 3, 36, 3, 1, 1, 1, 1)}, + 'desECB_pad': {'comment': 'Teletrust encryption algorithm', + 'description': 'desECB_pad (1 3 36 3 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 01 01 01', + 'name': 'desECB_pad', + 'oid': (1, 3, 36, 3, 1, 1, 1)}, + 'desEDE': {'comment': 'Oddball OIW OID', + 'description': 'desEDE (1 3 14 3 2 17)', + 'hexoid': '06 05 2B 0E 03 02 12', + 'name': 'desEDE', + 'oid': (1, 3, 14, 3, 2, 17)}, + 'desEDE2CbcIV8': {'comment': 'Novell encryption algorithm', + 'description': 'desEDE2CbcIV8 (2 16 840 1 113719 1 2 8 24)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 19', + 'name': 'desEDE2CbcIV8', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 24)}, + 'desEDE2CbcPadIV8': {'comment': 'Novell encryption algorithm', + 'description': 'desEDE2CbcPadIV8 (2 16 840 1 113719 1 2 8 25)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1A', + 'name': 'desEDE2CbcPadIV8', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 25)}, + 'desEDE3CbcIV8': {'comment': 'Novell encryption algorithm', + 'description': 'desEDE3CbcIV8 (2 16 840 1 113719 1 2 8 26)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1B', + 'name': 'desEDE3CbcIV8', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 26)}, + 'desEDE3CbcPadIV8': {'comment': 'Novell encryption algorithm', + 'description': 'desEDE3CbcPadIV8 (2 16 840 1 113719 1 2 8 27)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1C', + 'name': 'desEDE3CbcPadIV8', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 27)}, + 'desMAC': {'comment': 'ISO 9796-2, also X9.31 Part 1', + 'description': 'desMAC (1 3 14 3 2 10)', + 'hexoid': '06 05 2B 0E 03 02 0B', + 'name': 'desMAC', + 'oid': (1, 3, 14, 3, 2, 10)}, + 'desOFB': {'comment': 'Telesec encryption', + 'description': 'desOFB (0 2 262 1 10 1 2 2 3)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 03', + 'name': 'desOFB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 3)}, + 'des_3': {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3 (1 3 36 3 1 3)', + 'hexoid': '06 07 2B 24 03 01 03 01 01', + 'name': 'des_3', + 'oid': (1, 3, 36, 3, 1, 3)}, + 'des_3CBC_ISOpad': {'comment': 'Teletrust encryption algorithm', + 'description': 'des_3CBC_ISOpad (1 3 36 3 1 3 2 1 1)', + 'hexoid': '06 07 2B 24 03 01 02 01 01', + 'name': 'des_3CBC_ISOpad', + 'oid': (1, 3, 36, 3, 1, 3, 2, 1, 1)}, + 'des_3CBC_pad': {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3CBC_pad (1 3 36 3 1 3 2 1)', + 'hexoid': '06 08 2B 24 03 01 03 02 01 01', + 'name': 'des_3CBC_pad', + 'oid': (1, 3, 36, 3, 1, 3, 2, 1)}, + 'des_3ECB_ISOpad': {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3ECB_ISOpad (1 3 36 3 1 3 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 03 02 01', + 'name': 'des_3ECB_ISOpad', + 'oid': (1, 3, 36, 3, 1, 3, 1, 1, 1)}, + 'des_3ECB_pad': {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3ECB_pad (1 3 36 3 1 3 1 1)', + 'hexoid': '06 08 2B 24 03 01 03 01 01 01', + 'name': 'des_3ECB_pad', + 'oid': (1, 3, 36, 3, 1, 3, 1, 1)}, + 'description': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'description (2 5 4 13)', + 'hexoid': '06 03 55 04 0E', + 'name': 'description', + 'oid': (2, 5, 4, 13)}, + 'destinationIndicator': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'destinationIndicator (2 5 4 27)', + 'hexoid': '06 03 55 04 1C', + 'name': 'destinationIndicator', + 'oid': (2, 5, 4, 27)}, + 'desx-CBC': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'desx-CBC (1 2 840 113549 3 6)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 07', + 'name': 'desx-CBC', + 'oid': (1, 2, 840, 113549, 3, 6)}, + 'device': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'device (2 5 6 14)', + 'hexoid': '06 03 55 06 0F', + 'name': 'device', + 'oid': (2, 5, 6, 14)}, + 'dh-pop': {'comment': 'PKIX', + 'description': 'dh-pop (1 3 6 1 5 5 7 6 4)', + 'hexoid': '06 07 2B 06 01 05 05 07 07', + 'name': 'dh-pop', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 4)}, + 'dh-sig-hmac-sha1': {'comment': 'PKIX algorithm', + 'description': 'dh-sig-hmac-sha1 (1 3 6 1 5 5 7 6 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 04', + 'name': 'dh-sig-hmac-sha1', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 3)}, + 'dhEphem': {'comment': 'ANSI X9.42 scheme', + 'description': 'dhEphem (1 2 840 10046 3 2)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 02', + 'name': 'dhEphem', + 'oid': (1, 2, 840, 10046, 3, 2)}, + 'dhHybrid1': {'comment': 'ANSI X9.42 scheme', + 'description': 'dhHybrid1 (1 2 840 10046 3 3)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 03', + 'name': 'dhHybrid1', + 'oid': (1, 2, 840, 10046, 3, 3)}, + 'dhHybrid2': {'comment': 'ANSI X9.42 scheme', + 'description': 'dhHybrid2 (1 2 840 10046 3 4)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 04', + 'name': 'dhHybrid2', + 'oid': (1, 2, 840, 10046, 3, 4)}, + 'dhPublicKey': {'comment': 'ANSI X9.42 number type', + 'description': 'dhPublicKey (1 2 840 10046 2 1)', + 'hexoid': '06 07 2A 86 48 CE 3E 02 01', + 'name': 'dhPublicKey', + 'oid': (1, 2, 840, 10046, 2, 1)}, + 'dhStatic': {'comment': 'ANSI X9.42 scheme', + 'description': 'dhStatic (1 2 840 10046 3 1)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 01', + 'name': 'dhStatic', + 'oid': (1, 2, 840, 10046, 3, 1)}, + 'dhWithCommonModulus': {'comment': 'Oddball OIW OID. Mode is ECB', + 'description': 'dhWithCommonModulus (1 3 14 3 2 16)', + 'hexoid': '06 05 2B 0E 03 02 11', + 'name': 'dhWithCommonModulus', + 'oid': (1, 3, 14, 3, 2, 16)}, + 'digestAlgorithm': {'comment': 'RSADSI digestAlgorithm (1 2 840 113549 2)', + 'description': 'digestAlgorithm (1 2 840 113549 2)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 02 02', + 'name': 'digestAlgorithm', + 'oid': (1, 2, 840, 113549, 2)}, + 'digestedData': {'comment': 'PKCS #7', + 'description': 'digestedData (1 2 840 113549 1 7 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 06', + 'name': 'digestedData', + 'oid': (1, 2, 840, 113549, 1, 7, 5)}, + 'directory': {'comment': 'Netscape directory', + 'description': 'directory (2 16 840 1 113730 3)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 03 01', + 'name': 'directory', + 'oid': (2, 16, 840, 1, 113730, 3)}, + 'directoryGroup': {'comment': 'Telesec object class', + 'description': 'directoryGroup (0 2 262 1 10 3 3)', + 'hexoid': '06 07 02 82 06 01 0A 03 03', + 'name': 'directoryGroup', + 'oid': (0, 2, 262, 1, 10, 3, 3)}, + 'directoryGroupName': {'comment': 'Telesec attribute', + 'description': 'directoryGroupName (0 2 262 1 10 7 32)', + 'hexoid': '06 07 02 82 06 01 0A 07 20', + 'name': 'directoryGroupName', + 'oid': (0, 2, 262, 1, 10, 7, 32)}, + 'directoryName': {'comment': 'Telesec attribute', + 'description': 'directoryName (0 2 262 1 10 7 30)', + 'hexoid': '06 07 02 82 06 01 0A 07 1E', + 'name': 'directoryName', + 'oid': (0, 2, 262, 1, 10, 7, 30)}, + 'directoryService': {'comment': 'Teletrust attribute', + 'description': 'directoryService (1 3 36 8 2 1)', + 'hexoid': '06 05 2B 24 08 03 01', + 'name': 'directoryService', + 'oid': (1, 3, 36, 8, 2, 1)}, + 'directoryType': {'comment': 'Telesec object class', + 'description': 'directoryType (0 2 262 1 10 3 2)', + 'hexoid': '06 07 02 82 06 01 0A 03 02', + 'name': 'directoryType', + 'oid': (0, 2, 262, 1, 10, 3, 2)}, + 'directoryTypeName': {'comment': 'Telesec attribute', + 'description': 'directoryTypeName (0 2 262 1 10 7 31)', + 'hexoid': '06 07 02 82 06 01 0A 07 1F', + 'name': 'directoryTypeName', + 'oid': (0, 2, 262, 1, 10, 7, 31)}, + 'directoryUser': {'comment': 'Telesec object class', + 'description': 'directoryUser (0 2 262 1 10 3 4)', + 'hexoid': '06 07 02 82 06 01 0A 03 04', + 'name': 'directoryUser', + 'oid': (0, 2, 262, 1, 10, 3, 4)}, + 'directoryUserName': {'comment': 'Telesec attribute', + 'description': 'directoryUserName (0 2 262 1 10 7 33)', + 'hexoid': '06 07 02 82 06 01 0A 07 21', + 'name': 'directoryUserName', + 'oid': (0, 2, 262, 1, 10, 7, 33)}, + 'distinguishedName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'distinguishedName (2 5 4 49)', + 'hexoid': '06 03 55 04 32', + 'name': 'distinguishedName', + 'oid': (2, 5, 4, 49)}, + 'dnQualifier': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'dnQualifier (2 5 4 46)', + 'hexoid': '06 03 55 04 2F', + 'name': 'dnQualifier', + 'oid': (2, 5, 4, 46)}, + 'document': {'comment': 'Teletrust document', + 'description': 'document (1 3 36 1)', + 'hexoid': '06 04 2B 24 01 01', + 'name': 'document', + 'oid': (1, 3, 36, 1)}, + 'domainComponent': {'comment': 'Men are from Mars, this OID is from Pluto', + 'description': 'domainComponent (0 9 2342 19200300 100 1 25)', + 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 19', + 'name': 'domainComponent', + 'oid': (0, 9, 2342, 19200300, 100, 1, 25)}, + 'draft': {'comment': 'Teletrust sio', + 'description': 'draft (1 3 36 1 2)', + 'hexoid': '06 03 2B 24 02', + 'name': 'draft', + 'oid': (1, 3, 36, 1, 2)}, + 'dsa': {'comment': 'ANSI X9.57 algorithm', + 'description': 'dsa (1 2 840 10040 4 1)', + 'hexoid': '06 07 2A 86 48 CE 38 04 01', + 'name': 'dsa', + 'oid': (1, 2, 840, 10040, 4, 1)}, + 'dsa-match': {'comment': 'ANSI X9.57 algorithm', + 'description': 'dsa-match (1 2 840 10040 4 2)', + 'hexoid': '06 07 2A 86 48 CE 38 04 02', + 'name': 'dsa-match', + 'oid': (1, 2, 840, 10040, 4, 2)}, + 'dsaCommon': {'comment': 'Oddball OIW OID. Deprecated, use a plain dsaWithSHA OID instead', + 'description': 'dsaCommon (1 3 14 3 2 20)', + 'hexoid': '06 05 2B 0E 03 02 15', + 'name': 'dsaCommon', + 'oid': (1, 3, 14, 3, 2, 20)}, + 'dsaCommonWithSHA': {'comment': 'Oddball OIW OID', + 'description': 'dsaCommonWithSHA (1 3 14 3 2 21)', + 'hexoid': '06 05 2B 0E 03 02 16', + 'name': 'dsaCommonWithSHA', + 'oid': (1, 3, 14, 3, 2, 21)}, + 'dsaExtended': {'comment': 'Teletrust signature algorithm', + 'description': 'dsaExtended (1 3 36 8 5 1 2 1)', + 'hexoid': '06 07 2B 24 08 05 01 02 02', + 'name': 'dsaExtended', + 'oid': (1, 3, 36, 8, 5, 1, 2, 1)}, + 'dsaWithCommonSHA1': {'comment': 'Oddball OIW OID', + 'description': 'dsaWithCommonSHA1 (1 3 14 3 2 28)', + 'hexoid': '06 05 2B 0E 03 02 1D', + 'name': 'dsaWithCommonSHA1', + 'oid': (1, 3, 14, 3, 2, 28)}, + 'dsaWithRIPEMD160': {'comment': 'Teletrust signature attributes', + 'description': 'dsaWithRIPEMD160 (1 3 36 8 5 1 2 2)', + 'hexoid': '06 05 2B 24 08 06 02', + 'name': 'dsaWithRIPEMD160', + 'oid': (1, 3, 36, 8, 5, 1, 2, 2)}, + 'dsaWithSHA': {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'dsaWithSHA (1 3 14 3 2 13)', + 'hexoid': '06 05 2B 0E 03 02 0E', + 'name': 'dsaWithSHA', + 'oid': (1, 3, 14, 3, 2, 13)}, + 'dsaWithSHA1': {'comment': 'OIW', + 'description': 'dsaWithSHA1 (1 3 14 3 2 27)', + 'hexoid': '06 05 2B 0E 03 02 1C', + 'name': 'dsaWithSHA1', + 'oid': (1, 3, 14, 3, 2, 27)}, + 'dsaWithSha1': {'comment': 'ANSI X9.57 algorithm', + 'description': 'dsaWithSha1 (1 2 840 10040 4 3)', + 'hexoid': '06 07 2A 86 48 CE 38 04 03', + 'name': 'dsaWithSha1', + 'oid': (1, 2, 840, 10040, 4, 3)}, + 'dvcs': {'comment': 'PKIX key purpose', + 'description': 'dvcs (1 3 6 1 5 5 7 3 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 0B', + 'name': 'dvcs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 10)}, + 'e-COMM': {'comment': 'SET vendor', + 'description': 'e-COMM (2 23 42 9 37)', + 'hexoid': '06 04 67 2A 09 26', + 'name': 'e-COMM', + 'oid': (2, 23, 42, 9, 37)}, + 'eLab': {'comment': 'SET vendor', + 'description': 'eLab (2 23 42 9 22)', + 'hexoid': '06 04 67 2A 09 17', + 'name': 'eLab', + 'oid': (2, 23, 42, 9, 22)}, + 'ecPublicKey': {'comment': 'ANSI X9.62 public key type', + 'description': 'ecPublicKey (1 2 840 10045 2 1)', + 'hexoid': '06 07 2A 86 48 CE 3D 02 01', + 'name': 'ecPublicKey', + 'oid': (1, 2, 840, 10045, 2, 1)}, + 'ecsieSign': {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSign (1 3 36 3 3 2)', + 'hexoid': '06 06 2B 24 03 03 02 01', + 'name': 'ecsieSign', + 'oid': (1, 3, 36, 3, 3, 2)}, + 'ecsieSignWithmd2': {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSignWithmd2 (1 3 36 3 3 2 3)', + 'hexoid': '06 06 2B 24 03 03 02 04', + 'name': 'ecsieSignWithmd2', + 'oid': (1, 3, 36, 3, 3, 2, 3)}, + 'ecsieSignWithmd5': {'comment': 'Teletrust algorithm', + 'description': 'ecsieSignWithmd5 (1 3 36 3 3 2 4)', + 'hexoid': '06 04 2B 24 03 04', + 'name': 'ecsieSignWithmd5', + 'oid': (1, 3, 36, 3, 3, 2, 4)}, + 'ecsieSignWithripemd160': {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSignWithripemd160 (1 3 36 3 3 2 2)', + 'hexoid': '06 06 2B 24 03 03 02 03', + 'name': 'ecsieSignWithripemd160', + 'oid': (1, 3, 36, 3, 3, 2, 2)}, + 'ecsieSignWithsha1': {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSignWithsha1 (1 3 36 3 3 2 1)', + 'hexoid': '06 06 2B 24 03 03 02 02', + 'name': 'ecsieSignWithsha1', + 'oid': (1, 3, 36, 3, 3, 2, 1)}, + 'electronicOrder': {'comment': 'Telesec module', + 'description': 'electronicOrder (0 2 262 1 10 2 10)', + 'hexoid': '06 07 02 82 06 01 0A 02 0A', + 'name': 'electronicOrder', + 'oid': (0, 2, 262, 1, 10, 2, 10)}, + 'elgamal': {'comment': 'cryptlib public-key algorithm', + 'description': 'elgamal (1 3 6 1 4 1 3029 1 2 1)', + 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 01', + 'name': 'elgamal', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1)}, + 'elgamalWithRIPEMD-160': {'comment': 'cryptlib attribute type', + 'description': 'elgamalWithRIPEMD-160 (1 3 6 1 4 1 3029 1 2 1 2)', + 'hexoid': '06 09 2B 06 01 04 01 97 55 03 01', + 'name': 'elgamalWithRIPEMD-160', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 2)}, + 'elgamalWithSHA-1': {'comment': 'cryptlib public-key algorithm', + 'description': 'elgamalWithSHA-1 (1 3 6 1 4 1 3029 1 2 1 1)', + 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 02', + 'name': 'elgamalWithSHA-1', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 1)}, + 'emailAddress': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'emailAddress (1 2 840 113549 1 9 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 02', + 'name': 'emailAddress', + 'oid': (1, 2, 840, 113549, 1, 9, 1)}, + 'emailProtection': {'comment': 'PKIX key purpose', + 'description': 'emailProtection (1 3 6 1 5 5 7 3 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 05', + 'name': 'emailProtection', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 4)}, + 'employeeNumber': {'comment': 'Netscape LDAP definitions', + 'description': 'employeeNumber (2 16 840 1 113730 3 1 3)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 04', + 'name': 'employeeNumber', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 3)}, + 'employeeType': {'comment': 'Netscape LDAP definitions', + 'description': 'employeeType (2 16 840 1 113730 3 1 4)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 02 02', + 'name': 'employeeType', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 4)}, + 'emptyContent': {'comment': 'SDN.700 INFOSEC format', + 'description': 'emptyContent (2 16 840 1 101 2 1 2 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 03', + 'name': 'emptyContent', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 2)}, + 'encAttrs': {'comment': 'PKIX', + 'description': 'encAttrs (1 3 6 1 5 5 7 10 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 30 01', + 'name': 'encAttrs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 6)}, + 'encISO9796-2Withrsa': {'comment': 'Teletrust policy', + 'description': 'encISO9796-2Withrsa (1 3 36 7 2 1)', + 'hexoid': '06 05 2B 24 08 01 01', + 'name': 'encISO9796-2Withrsa', + 'oid': (1, 3, 36, 7, 2, 1)}, + 'encKeyPairTypes': {'comment': 'PKIX CMP information', + 'description': 'encKeyPairTypes (1 3 6 1 5 5 7 4 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 04', + 'name': 'encKeyPairTypes', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 3)}, + 'encryptedData': {'comment': 'PKCS #7 experimental', + 'description': 'encryptedData (1 2 840 113549 1 7 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 07', + 'name': 'encryptedData', + 'oid': (1, 2, 840, 113549, 1, 7, 6)}, + 'encryptedFileSystem': {'comment': 'Microsoft attribute', + 'description': 'encryptedFileSystem (1 3 6 1 4 1 311 10 3 4)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 04 01', + 'name': 'encryptedFileSystem', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 4)}, + 'encryption': {'comment': 'Telesec mechanism', + 'description': 'encryption (0 2 262 1 10 1 2)', + 'hexoid': '06 07 02 82 06 01 0A 01 02', + 'name': 'encryption', + 'oid': (0, 2, 262, 1, 10, 1, 2)}, + 'encryptionAlgorithm': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'encryptionAlgorithm (1 2 840 113549 3)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 02', + 'name': 'encryptionAlgorithm', + 'oid': (1, 2, 840, 113549, 3)}, + 'enhancedSearchGuide': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'enhancedSearchGuide (2 5 4 47)', + 'hexoid': '06 03 55 04 30', + 'name': 'enhancedSearchGuide', + 'oid': (2, 5, 4, 47)}, + 'enrolmentCSP': {'comment': 'Microsoft attribute', + 'description': 'enrolmentCSP (1 3 6 1 4 1 311 13 2 2)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 03', + 'name': 'enrolmentCSP', + 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 2)}, + 'entrustCAInfo': {'comment': 'Nortel Secure Networks at (1 2 840 113533 7 68)', + 'description': 'entrustCAInfo (1 2 840 113533 7 68 0)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 44 0A', + 'name': 'entrustCAInfo', + 'oid': (1, 2, 840, 113533, 7, 68, 0)}, + 'envelopedData': {'comment': 'PKCS #7', + 'description': 'envelopedData (1 2 840 113549 1 7 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 04', + 'name': 'envelopedData', + 'oid': (1, 2, 840, 113549, 1, 7, 3)}, + 'espace-net': {'comment': 'SET vendor', + 'description': 'espace-net (2 23 42 9 31)', + 'hexoid': '06 04 67 2A 09 20', + 'name': 'espace-net', + 'oid': (2, 23, 42, 9, 31)}, + 'expirationDate': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'expirationDate (2 5 29 22)', + 'hexoid': '06 03 55 1D 17', + 'name': 'expirationDate', + 'oid': (2, 5, 29, 22)}, + 'extKeyUsage': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'extKeyUsage (2 5 29 37)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 01', + 'name': 'extKeyUsage', + 'oid': (2, 5, 29, 37)}, + 'extendedCertificateAttributes': {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'extendedCertificateAttributes (1 2 840 113549 1 9 9)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0A', + 'name': 'extendedCertificateAttributes', + 'oid': (1, 2, 840, 113549, 1, 9, 9)}, + 'extension': {'comment': 'Telesec', + 'description': 'extension (0 2 262 1 10 0)', + 'hexoid': '06 06 02 82 06 01 0A 00', + 'name': 'extension', + 'oid': (0, 2, 262, 1, 10, 0)}, + 'extensionReq': {'comment': 'PKCS #9 (1 2 840 113549 1 9). This OID was formerly assigned as symmetricCapabilities, then reassigned as SMIMECapabilities, then renamed to the current name', + 'description': 'extensionReq (1 2 840 113549 1 9 14)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0F', + 'name': 'extensionReq', + 'oid': (1, 2, 840, 113549, 1, 9, 14)}, + 'extensions': {'comment': 'CSOR GAK extensions', + 'description': 'extensions (2 16 840 1 101 3 2 3)', + 'hexoid': '06 09 60 86 48 01 65 03 02 03 01', + 'name': 'extensions', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3)}, + 'facsimileTelephoneNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'facsimileTelephoneNumber (2 5 4 23)', + 'hexoid': '06 04 55 04 17 01', + 'name': 'facsimileTelephoneNumber', + 'oid': (2, 5, 4, 23)}, + 'familyName': {'comment': 'SET field', + 'description': 'familyName (2 23 42 2 2)', + 'hexoid': '06 04 67 2A 02 03', + 'name': 'familyName', + 'oid': (2, 23, 42, 2, 2)}, + 'febUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'febUKMs (2 16 840 1 101 2 1 5 21)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 16', + 'name': 'febUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 21)}, + 'fec': {'comment': 'Telesec module', + 'description': 'fec (0 2 262 1 10 2 6)', + 'hexoid': '06 07 02 82 06 01 0A 02 06', + 'name': 'fec', + 'oid': (0, 2, 262, 1, 10, 2, 6)}, + 'fecFunction': {'comment': 'Telesec mechanism', + 'description': 'fecFunction (0 2 262 1 10 1 4)', + 'hexoid': '06 07 02 82 06 01 0A 01 04', + 'name': 'fecFunction', + 'oid': (0, 2, 262, 1, 10, 1, 4)}, + 'field': {'comment': 'SET field', + 'description': 'field (2 23 42 2)', + 'hexoid': '06 04 67 2A 02 00', + 'name': 'field', + 'oid': (2, 23, 42, 2)}, + 'fieldType': {'comment': 'ANSI X9.42', + 'description': 'fieldType (1 2 840 10046 1)', + 'hexoid': '06 06 2A 86 48 CE 3E 01', + 'name': 'fieldType', + 'oid': (1, 2, 840, 10046, 1)}, + 'fileName': {'comment': 'Teletrust signature attributes', + 'description': 'fileName (1 3 36 8 6 5)', + 'hexoid': '06 05 2B 24 08 06 06', + 'name': 'fileName', + 'oid': (1, 3, 36, 8, 6, 5)}, + 'fileSize': {'comment': 'Teletrust signature attributes', + 'description': 'fileSize (1 3 36 8 6 7)', + 'hexoid': '06 05 2B 24 08 06 08', + 'name': 'fileSize', + 'oid': (1, 3, 36, 8, 6, 7)}, + 'fileType': {'comment': 'Telesec attribute', + 'description': 'fileType (0 2 262 1 10 7 26)', + 'hexoid': '06 07 02 82 06 01 0A 07 1A', + 'name': 'fileType', + 'oid': (0, 2, 262, 1, 10, 7, 26)}, + 'finalVersion': {'comment': 'Teletrust document', + 'description': 'finalVersion (1 3 36 1 1)', + 'hexoid': '06 04 2B 24 01 02', + 'name': 'finalVersion', + 'oid': (1, 3, 36, 1, 1)}, + 'fortezzaCASignatureCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaCASignatureCertificate (2 16 840 1 101 2 1 5 7)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 08', + 'name': 'fortezzaCASignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 7)}, + 'fortezzaCKL': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'fortezzaCKL (2 16 840 1 101 2 1 5 46)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2F', + 'name': 'fortezzaCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 46)}, + 'fortezzaCertificateRevocationList': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'fortezzaCertificateRevocationList (2 16 840 1 101 2 1 5 45)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2E', + 'name': 'fortezzaCertificateRevocationList', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 5, + 45)}, + 'fortezzaConfidentialityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaConfidentialityAlgorithm (2 16 840 1 101 2 1 1 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 05', + 'name': 'fortezzaConfidentialityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 4)}, + 'fortezzaIntegrityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaIntegrityAlgorithm (2 16 840 1 101 2 1 1 6)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 07', + 'name': 'fortezzaIntegrityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 6)}, + 'fortezzaKMandSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaKMandSigAlgorithm (2 16 840 1 101 2 1 1 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0D', + 'name': 'fortezzaKMandSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 12)}, + 'fortezzaKMandSigCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaKMandSigCertificate (2 16 840 1 101 2 1 5 5)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 06', + 'name': 'fortezzaKMandSigCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 5)}, + 'fortezzaKMandUpdSigAlgorithms': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedIntegAlgorithm', + 'description': 'fortezzaKMandUpdSigAlgorithms (2 16 840 1 101 2 1 1 20)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 15', + 'name': 'fortezzaKMandUpdSigAlgorithms', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 20)}, + 'fortezzaKeyManagementAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaKeyManagementAlgorithm (2 16 840 1 101 2 1 1 10)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0B', + 'name': 'fortezzaKeyManagementAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 10)}, + 'fortezzaKeyManagementCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaKeyManagementCertificate (2 16 840 1 101 2 1 5 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 05', + 'name': 'fortezzaKeyManagementCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 4)}, + 'fortezzaSignatureAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaSignatureAlgorithm (2 16 840 1 101 2 1 1 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 03', + 'name': 'fortezzaSignatureAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 2)}, + 'fortezzaTokenProtectionAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 8)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 09', + 'name': 'fortezzaTokenProtectionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 8)}, + 'fortezzaUpdatedIntegAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyEncryptionAlgorithm', + 'description': 'fortezzaUpdatedIntegAlgorithm (2 16 840 1 101 2 1 1 21)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 16', + 'name': 'fortezzaUpdatedIntegAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 21)}, + 'fortezzaUpdatedSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandUpdSigAlgorithms', + 'description': 'fortezzaUpdatedSigAlgorithm (2 16 840 1 101 2 1 1 19)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 14', + 'name': 'fortezzaUpdatedSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 19)}, + 'fortezzaUserSignatureCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaUserSignatureCertificate (2 16 840 1 101 2 1 5 6)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 07', + 'name': 'fortezzaUserSignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 6)}, + 'fortezzaWrap80Algorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaWrap80Algorithm (2 16 840 1 101 2 1 1 23)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 18', + 'name': 'fortezzaWrap80Algorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 23)}, + 'forwardedCSPMsgBodyPart': {'comment': 'SDN.700 INFOSEC format', + 'description': 'forwardedCSPMsgBodyPart (2 16 840 1 101 2 1 2 74)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 51', + 'name': 'forwardedCSPMsgBodyPart', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 74)}, + 'forwardedMSPMessageBodyPart': {'comment': 'SDN.700 INFOSEC format', + 'description': 'forwardedMSPMessageBodyPart (2 16 840 1 101 2 1 2 72)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 49', + 'name': 'forwardedMSPMessageBodyPart', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 72)}, + 'friendlyName': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'friendlyName (for PKCS #12) (1 2 840 113549 1 9 20)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 15', + 'name': 'friendlyName', + 'oid': (1, 2, 840, 113549, 1, 9, 20)}, + 'fullName': {'comment': 'SET field', + 'description': 'fullName (2 23 42 2 0)', + 'hexoid': '06 04 67 2A 02 02', + 'name': 'fullName', + 'oid': (2, 23, 42, 2, 0)}, + 'functionality-specific_api': {'comment': 'Teletrust key management', + 'description': 'functionality-specific_api (1 3 36 6 2)', + 'hexoid': '06 03 2B 24 07', + 'name': 'functionality-specific_api', + 'oid': (1, 3, 36, 6, 2)}, + 'gKeyData': {'comment': 'Telesec attribute', + 'description': 'gKeyData (0 2 262 1 10 7 38)', + 'hexoid': '06 07 02 82 06 01 0A 07 26', + 'name': 'gKeyData', + 'oid': (0, 2, 262, 1, 10, 7, 38)}, + 'gender': {'comment': 'PKIX personal data', + 'description': 'gender (1 3 6 1 5 5 7 9 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 05', + 'name': 'gender', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 4)}, + 'generationQualifier': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'generationQualifier (2 5 4 44)', + 'hexoid': '06 03 55 04 2D', + 'name': 'generationQualifier', + 'oid': (2, 5, 4, 44)}, + 'genser': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'genser (2 16 840 1 101 2 1 3 11)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 00', + 'name': 'genser', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11)}, + 'genserAcquisition': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'genserAcquisition (2 16 840 1 101 2 1 3 11 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 03', + 'name': 'genserAcquisition', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11, 2)}, + 'genserComsec': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'genserComsec (2 16 840 1 101 2 1 3 11 1)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 02', + 'name': 'genserComsec', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11, 1)}, + 'genserNations': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'genserNations (2 16 840 1 101 2 1 3 11 0)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 01', + 'name': 'genserNations', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11, 0)}, + 'genserSecurityCategories': {'comment': 'SDN.700 INFOSEC GENSER policy', + 'description': 'genserSecurityCategories (2 16 840 1 101 2 1 3 11 3)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0B 03 00', + 'name': 'genserSecurityCategories', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11, 3)}, + 'genserTagSetName': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'genserTagSetName (2 16 840 1 101 2 1 3 11 3 0)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0C', + 'name': 'genserTagSetName', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11, 3, 0)}, + 'gf-prime': {'comment': 'ANSI X9.42 field type', + 'description': 'gf-prime (1 2 840 10046 1 1)', + 'hexoid': '06 07 2A 86 48 CE 3E 01 01', + 'name': 'gf-prime', + 'oid': (1, 2, 840, 10046, 1, 1)}, + 'givenName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'givenName (2 5 4 42)', + 'hexoid': '06 03 55 04 2B', + 'name': 'givenName', + 'oid': (2, 5, 4, 42)}, + 'glNumber': {'comment': 'Telesec attribute', + 'description': 'glNumber (0 2 262 1 10 7 36)', + 'hexoid': '06 07 02 82 06 01 0A 07 24', + 'name': 'glNumber', + 'oid': (0, 2, 262, 1, 10, 7, 36)}, + 'goNumber': {'comment': 'Telesec attribute', + 'description': 'goNumber (0 2 262 1 10 7 37)', + 'hexoid': '06 07 02 82 06 01 0A 07 25', + 'name': 'goNumber', + 'oid': (0, 2, 262, 1, 10, 7, 37)}, + 'group': {'comment': 'PKIX attribute certificate extension', + 'description': 'group (1 3 6 1 5 5 7 10 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 05', + 'name': 'group', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 4)}, + 'groupOfNames': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'groupOfNames (2 5 6 9)', + 'hexoid': '06 03 55 06 0A', + 'name': 'groupOfNames', + 'oid': (2, 5, 6, 9)}, + 'groupOfUniqueNames': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'groupOfUniqueNames (2 5 6 17)', + 'hexoid': '06 03 55 06 15', + 'name': 'groupOfUniqueNames', + 'oid': (2, 5, 6, 17)}, + 'guard': {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'guard (2 16 840 1 101 2 1 5 48)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 31', + 'name': 'guard', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 48)}, + 'hashAlgorithm': {'comment': 'Teletrust hash algorithm', + 'description': 'hashAlgorithm (1 3 36 3 2)', + 'hexoid': '06 05 2B 24 03 02 03', + 'name': 'hashAlgorithm', + 'oid': (1, 3, 36, 3, 2)}, + 'hashUsingBlockCipher': {'comment': 'Telesec one-way function', + 'description': 'hashUsingBlockCipher (0 2 262 1 10 1 3 6)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 06', + 'name': 'hashUsingBlockCipher', + 'oid': (0, 2, 262, 1, 10, 1, 3, 6)}, + 'hashedRootKey': {'comment': 'SET cert extension', + 'description': 'hashedRootKey (2 23 42 7 0)', + 'hexoid': '06 04 67 2A 07 01', + 'name': 'hashedRootKey', + 'oid': (2, 23, 42, 7, 0)}, + 'hbciRsaSignature': {'comment': 'Telesec signature', + 'description': 'hbciRsaSignature (0 2 262 1 10 1 1 9)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 09', + 'name': 'hbciRsaSignature', + 'oid': (0, 2, 262, 1, 10, 1, 1, 9)}, + 'hmacMD5': {'comment': 'ISAKMP HMAC algorithm', + 'description': 'hmacMD5 (1 3 6 1 5 5 8 1 1)', + 'hexoid': '06 08 2B 06 01 05 05 08 01 02', + 'name': 'hmacMD5', + 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 1)}, + 'hmacSHA': {'comment': 'ISAKMP HMAC algorithm', + 'description': 'hmacSHA (1 3 6 1 5 5 8 1 2)', + 'hexoid': '06 08 2B 06 01 05 05 08 01 03', + 'name': 'hmacSHA', + 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 2)}, + 'hmacTiger': {'comment': 'IKE ???', + 'description': 'hmacTiger (1 3 6 1 5 5 8 1 3)', + 'hexoid': '06 08 2B 06 01 05 05 08 02 02', + 'name': 'hmacTiger', + 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 3)}, + 'holdinstruction': {'comment': 'ANSI X9.57', + 'description': 'holdinstruction (1 2 840 10040 2)', + 'hexoid': '06 06 2A 86 48 CE 38 02', + 'name': 'holdinstruction', + 'oid': (1, 2, 840, 10040, 2)}, + 'holdinstruction-none': {'comment': 'ANSI X9.57 hold instruction', + 'description': 'holdinstruction-none (1 2 840 10040 2 1)', + 'hexoid': '06 07 2A 86 48 CE 38 02 01', + 'name': 'holdinstruction-none', + 'oid': (1, 2, 840, 10040, 2, 1)}, + 'houseIdentifier': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'houseIdentifier (2 5 4 51)', + 'hexoid': '06 03 55 04 34', + 'name': 'houseIdentifier', + 'oid': (2, 5, 4, 51)}, + 'iKEIntermediate': {'comment': 'DASS algorithm', + 'description': 'iKEIntermediate (1 3 6 1 5 5 8 2 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 01', + 'name': 'iKEIntermediate', + 'oid': (1, 3, 6, 1, 5, 5, 8, 2, 2)}, + 'id-aa': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa (1 2 840 113549 1 9 16 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 01', + 'name': 'id-aa', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2)}, + 'id-aa-contentHint': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-contentHint (1 2 840 113549 1 9 16 2 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 05', + 'name': 'id-aa-contentHint', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 4)}, + 'id-aa-contentIdentifier': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2). Obsolete', + 'description': 'id-aa-contentIdentifier (1 2 840 113549 1 9 16 2 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 08', + 'name': 'id-aa-contentIdentifier', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 7)}, + 'id-aa-contentReference': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-contentReference (1 2 840 113549 1 9 16 2 10)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0B', + 'name': 'id-aa-contentReference', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 10)}, + 'id-aa-dvcs-dvc': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-aa-dvcs-dvc (1 2 840 113549 1 9 16 2 29)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 01', + 'name': 'id-aa-dvcs-dvc', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 29)}, + 'id-aa-encapContentType': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-encapContentType (1 2 840 113549 1 9 16 2 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 07', + 'name': 'id-aa-encapContentType', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 6)}, + 'id-aa-encrypKeyPref': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-encrypKeyPref (1 2 840 113549 1 9 16 2 11)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0C', + 'name': 'id-aa-encrypKeyPref', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 11)}, + 'id-aa-equivalentLabels': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-equivalentLabels (1 2 840 113549 1 9 16 2 9)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0A', + 'name': 'id-aa-equivalentLabels', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 9)}, + 'id-aa-ets-CertificateRefs': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-CertificateRefs (1 2 840 113549 1 9 16 2 21)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 16', + 'name': 'id-aa-ets-CertificateRefs', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 21)}, + 'id-aa-ets-RevocationRefs': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-RevocationRefs (1 2 840 113549 1 9 16 2 22)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 17', + 'name': 'id-aa-ets-RevocationRefs', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 22)}, + 'id-aa-ets-archiveTimeStamp': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-archiveTimeStamp (1 2 840 113549 1 9 16 2 27)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1C', + 'name': 'id-aa-ets-archiveTimeStamp', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 27)}, + 'id-aa-ets-certCRLTimestamp': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-certCRLTimestamp (1 2 840 113549 1 9 16 2 26)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1B', + 'name': 'id-aa-ets-certCRLTimestamp', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 26)}, + 'id-aa-ets-certValues': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-certValues (1 2 840 113549 1 9 16 2 23)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 18', + 'name': 'id-aa-ets-certValues', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 23)}, + 'id-aa-ets-commitmentType': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-commitmentType (1 2 840 113549 1 9 16 2 16)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 11', + 'name': 'id-aa-ets-commitmentType', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 16)}, + 'id-aa-ets-contentTimestamp': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-contentTimestamp (1 2 840 113549 1 9 16 2 20)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 15', + 'name': 'id-aa-ets-contentTimestamp', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 20)}, + 'id-aa-ets-escTimeStamp': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-escTimeStamp (1 2 840 113549 1 9 16 2 25)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1A', + 'name': 'id-aa-ets-escTimeStamp', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 25)}, + 'id-aa-ets-otherSigCert': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-otherSigCert (1 2 840 113549 1 9 16 2 19)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 14', + 'name': 'id-aa-ets-otherSigCert', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 19)}, + 'id-aa-ets-revocationValues': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-revocationValues (1 2 840 113549 1 9 16 2 24)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 19', + 'name': 'id-aa-ets-revocationValues', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 24)}, + 'id-aa-ets-sigPolicyId': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-sigPolicyId (1 2 840 113549 1 9 16 2 15)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 10', + 'name': 'id-aa-ets-sigPolicyId', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 15)}, + 'id-aa-ets-signerAttr': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-signerAttr (1 2 840 113549 1 9 16 2 18)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 13', + 'name': 'id-aa-ets-signerAttr', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 18)}, + 'id-aa-ets-signerLocation': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-signerLocation (1 2 840 113549 1 9 16 2 17)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 12', + 'name': 'id-aa-ets-signerLocation', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 17)}, + 'id-aa-macValue': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-macValue (1 2 840 113549 1 9 16 2 8)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 09', + 'name': 'id-aa-macValue', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 8)}, + 'id-aa-mlExpandHistory': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-mlExpandHistory (1 2 840 113549 1 9 16 2 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 04', + 'name': 'id-aa-mlExpandHistory', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 3)}, + 'id-aa-msgSigDigest': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2). Obsolete', + 'description': 'id-aa-msgSigDigest (1 2 840 113549 1 9 16 2 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 06', + 'name': 'id-aa-msgSigDigest', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 5)}, + 'id-aa-receiptRequest': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-receiptRequest (1 2 840 113549 1 9 16 2 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 02', + 'name': 'id-aa-receiptRequest', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 1)}, + 'id-aa-securityLabel': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-securityLabel (1 2 840 113549 1 9 16 2 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 03', + 'name': 'id-aa-securityLabel', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 2)}, + 'id-aa-signatureType': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-signatureType (1 2 840 113549 1 9 16 2 28)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1D', + 'name': 'id-aa-signatureType', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 28)}, + 'id-aa-signingCertificate': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-signingCertificate (1 2 840 113549 1 9 16 2 12)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0D', + 'name': 'id-aa-signingCertificate', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 12)}, + 'id-aa-smimeEncryptCerts': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-smimeEncryptCerts (1 2 840 113549 1 9 16 2 13)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0E', + 'name': 'id-aa-smimeEncryptCerts', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 13)}, + 'id-aa-timeStampToken': {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-timeStampToken (1 2 840 113549 1 9 16 2 14)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0F', + 'name': 'id-aa-timeStampToken', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2, 14)}, + 'id-alg-3DESwrap': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-alg-3DESwrap (1 2 840 113549 1 9 16 3 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 04', + 'name': 'id-alg-3DESwrap', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 3)}, + 'id-alg-CMS3DESwrap': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-CMS3DESwrap (1 2 840 113549 1 9 16 3 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 07', + 'name': 'id-alg-CMS3DESwrap', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 6)}, + 'id-alg-CMSRC2wrap': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-CMSRC2wrap (1 2 840 113549 1 9 16 3 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 08', + 'name': 'id-alg-CMSRC2wrap', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 7)}, + 'id-alg-ESDH': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-ESDH (1 2 840 113549 1 9 16 3 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 06', + 'name': 'id-alg-ESDH', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 5)}, + 'id-alg-ESDHwith3DES': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-alg-ESDHwith3DES (1 2 840 113549 1 9 16 3 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 02', + 'name': 'id-alg-ESDHwith3DES', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 1)}, + 'id-alg-ESDHwithRC2': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-alg-ESDHwithRC2 (1 2 840 113549 1 9 16 3 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 03', + 'name': 'id-alg-ESDHwithRC2', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 2)}, + 'id-alg-PWRI-KEK': {'comment': 'S/MIME Certificate Distribution (1 2 840 113549 1 9 16 4)', + 'description': 'id-alg-PWRI-KEK (1 2 840 113549 1 9 16 3 9)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 04 01', + 'name': 'id-alg-PWRI-KEK', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 9)}, + 'id-alg-RC2wrap': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-RC2wrap (1 2 840 113549 1 9 16 3 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 05', + 'name': 'id-alg-RC2wrap', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 4)}, + 'id-alg-zlib': {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-zlib (1 2 840 113549 1 9 16 3 8)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 09', + 'name': 'id-alg-zlib', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 3, 8)}, + 'id-cd-ldap': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 5)', + 'description': 'id-cd-ldap (1 2 840 113549 1 9 16 4 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 01', + 'name': 'id-cd-ldap', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 4, 1)}, + 'id-ct': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct (1 2 840 113549 1 9 16 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 01', + 'name': 'id-ct', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1)}, + 'id-ct-DVCSRequestData': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-DVCSRequestData (1 2 840 113549 1 9 16 1 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 08', + 'name': 'id-ct-DVCSRequestData', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 7)}, + 'id-ct-DVCSResponseData': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-DVCSResponseData (1 2 840 113549 1 9 16 1 8)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 07', + 'name': 'id-ct-DVCSResponseData', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 8)}, + 'id-ct-TDTInfo': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-TDTInfo (1 2 840 113549 1 9 16 1 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 06', + 'name': 'id-ct-TDTInfo', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 5)}, + 'id-ct-TSTInfo': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-TSTInfo (1 2 840 113549 1 9 16 1 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 05', + 'name': 'id-ct-TSTInfo', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 4)}, + 'id-ct-authData': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-authData (1 2 840 113549 1 9 16 1 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 03', + 'name': 'id-ct-authData', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 2)}, + 'id-ct-compressedData': {'comment': 'id-sMIME (1 2 840 113549 1 9 16)', + 'description': 'id-ct-compressedData (1 2 840 113549 1 9 16 1 9)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 02', + 'name': 'id-ct-compressedData', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 9)}, + 'id-ct-contentInfo': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-contentInfo (1 2 840 113549 1 9 16 1 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 07', + 'name': 'id-ct-contentInfo', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 6)}, + 'id-ct-publishCert': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-publishCert (1 2 840 113549 1 9 16 1 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 04', + 'name': 'id-ct-publishCert', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 3)}, + 'id-ct-receipt': {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-receipt (1 2 840 113549 1 9 16 1 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 02', + 'name': 'id-ct-receipt', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1, 1)}, + 'id-cti-ets-proofOfApproval': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfApproval (1 2 840 113549 1 9 16 6 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 06', + 'name': 'id-cti-ets-proofOfApproval', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 5)}, + 'id-cti-ets-proofOfCreation': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'id-cti-ets-proofOfCreation (1 2 840 113549 1 9 16 6 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 14', + 'name': 'id-cti-ets-proofOfCreation', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 6)}, + 'id-cti-ets-proofOfDelivery': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfDelivery (1 2 840 113549 1 9 16 6 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 04', + 'name': 'id-cti-ets-proofOfDelivery', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 3)}, + 'id-cti-ets-proofOfOrigin': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfOrigin (1 2 840 113549 1 9 16 6 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 02', + 'name': 'id-cti-ets-proofOfOrigin', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 1)}, + 'id-cti-ets-proofOfReceipt': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfReceipt (1 2 840 113549 1 9 16 6 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 03', + 'name': 'id-cti-ets-proofOfReceipt', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 2)}, + 'id-cti-ets-proofOfSender': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfSender (1 2 840 113549 1 9 16 6 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 05', + 'name': 'id-cti-ets-proofOfSender', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 6, 4)}, + 'id-mod': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod (1 2 840 113549 1 9 16 0)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 01', + 'name': 'id-mod', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0)}, + 'id-mod-cms': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-cms (1 2 840 113549 1 9 16 0 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 02', + 'name': 'id-mod-cms', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 1)}, + 'id-mod-ess': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ess (1 2 840 113549 1 9 16 0 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 03', + 'name': 'id-mod-ess', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 2)}, + 'id-mod-ets-eSigPolicy-88': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ets-eSigPolicy-88 (1 2 840 113549 1 9 16 0 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 08', + 'name': 'id-mod-ets-eSigPolicy-88', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 7)}, + 'id-mod-ets-eSigPolicy-97': {'comment': 'id-sMIME (1 2 840 113549 1 9 16)', + 'description': 'id-mod-ets-eSigPolicy-97 (1 2 840 113549 1 9 16 0 8)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 01', + 'name': 'id-mod-ets-eSigPolicy-97', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 8)}, + 'id-mod-ets-eSignature-88': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ets-eSignature-88 (1 2 840 113549 1 9 16 0 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 06', + 'name': 'id-mod-ets-eSignature-88', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 5)}, + 'id-mod-ets-eSignature-97': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ets-eSignature-97 (1 2 840 113549 1 9 16 0 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 07', + 'name': 'id-mod-ets-eSignature-97', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 6)}, + 'id-mod-msg-v3': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-msg-v3 (1 2 840 113549 1 9 16 0 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 05', + 'name': 'id-mod-msg-v3', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 4)}, + 'id-mod-oid': {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-oid (1 2 840 113549 1 9 16 0 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 04', + 'name': 'id-mod-oid', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0, 3)}, + 'id-sMIME': {'comment': 'id-sMIME (1 2 840 113549 1 9 16)', + 'description': 'id-sMIME (1 2 840 113549 1 9 16)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 00', + 'name': 'id-sMIME', + 'oid': (1, 2, 840, 113549, 1, 9, 16)}, + 'id-spq-ets-sqt-unotice': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-spq-ets-sqt-unotice (1 2 840 113549 1 9 16 5 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 01', + 'name': 'id-spq-ets-sqt-unotice', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 5, 2)}, + 'id-spq-ets-sqt-uri': {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 5)', + 'description': 'id-spq-ets-sqt-uri (1 2 840 113549 1 9 16 5 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 02', + 'name': 'id-spq-ets-sqt-uri', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 5, 1)}, + 'idea': {'comment': 'Telesec encryption', + 'description': 'idea (0 2 262 1 10 1 2 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 05', + 'name': 'idea', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5)}, + 'ideaCBC': {'comment': 'Telesec encryption', + 'description': 'ideaCBC (0 2 262 1 10 1 2 5 2)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 02', + 'name': 'ideaCBC', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 2)}, + 'ideaCBC_ISOpad': {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaCBC_ISOpad (1 3 36 3 1 2 2 1 1)', + 'hexoid': '06 08 2B 24 03 01 04 84 00 11', + 'name': 'ideaCBC_ISOpad', + 'oid': (1, 3, 36, 3, 1, 2, 2, 1, 1)}, + 'ideaCBC_pad': {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaCBC_pad (1 3 36 3 1 2 2 1)', + 'hexoid': '06 08 2B 24 03 01 02 02 01 01', + 'name': 'ideaCBC_pad', + 'oid': (1, 3, 36, 3, 1, 2, 2, 1)}, + 'ideaCFB64': {'comment': 'Telesec encryption', + 'description': 'ideaCFB64 (0 2 262 1 10 1 2 5 5)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 05', + 'name': 'ideaCFB64', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 5)}, + 'ideaCFB8': {'comment': 'Telesec encryption', + 'description': 'ideaCFB8 (0 2 262 1 10 1 2 5 4)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 04', + 'name': 'ideaCFB8', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 4)}, + 'ideaECB': {'comment': 'Telesec encryption', + 'description': 'ideaECB (0 2 262 1 10 1 2 5 1)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 01', + 'name': 'ideaECB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 1)}, + 'ideaECB_ISOpad': {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaECB_ISOpad (1 3 36 3 1 2 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 02 02 01', + 'name': 'ideaECB_ISOpad', + 'oid': (1, 3, 36, 3, 1, 2, 1, 1, 1)}, + 'ideaECB_pad': {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaECB_pad (1 3 36 3 1 2 1 1)', + 'hexoid': '06 08 2B 24 03 01 02 01 01 01', + 'name': 'ideaECB_pad', + 'oid': (1, 3, 36, 3, 1, 2, 1, 1)}, + 'ideaOFB': {'comment': 'Telesec encryption', + 'description': 'ideaOFB (0 2 262 1 10 1 2 5 3)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 03', + 'name': 'ideaOFB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 3)}, + 'identificationNumber': {'comment': 'SET field', + 'description': 'identificationNumber (2 23 42 2 5)', + 'hexoid': '06 04 67 2A 02 06', + 'name': 'identificationNumber', + 'oid': (2, 23, 42, 2, 5)}, + 'identrusOCSP': {'comment': 'Ascom Systech', + 'description': 'identrusOCSP (1 2 840 114021 4 1)', + 'hexoid': '06 0A 2B 06 01 04 01 81 3C 07 01 01', + 'name': 'identrusOCSP', + 'oid': (1, 2, 840, 114021, 4, 1)}, + 'implicitConfirm': {'comment': 'PKIX CMP information', + 'description': 'implicitConfirm (1 3 6 1 5 5 7 4 13)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0E', + 'name': 'implicitConfirm', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 13)}, + 'individualCodeSigning': {'comment': 'Microsoft', + 'description': 'individualCodeSigning (1 3 6 1 4 1 311 2 1 21)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 16', + 'name': 'individualCodeSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 21)}, + 'inetOrgPerson': {'comment': 'Netscape', + 'description': 'inetOrgPerson (2 16 840 1 113730 3 2 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 04 01', + 'name': 'inetOrgPerson', + 'oid': (2, 16, 840, 1, 113730, 3, 2, 2)}, + 'initials': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'initials (2 5 4 43)', + 'hexoid': '06 03 55 04 2C', + 'name': 'initials', + 'oid': (2, 5, 4, 43)}, + 'instructionCode': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'instructionCode (2 5 29 23)', + 'hexoid': '06 03 55 1D 18', + 'name': 'instructionCode', + 'oid': (2, 5, 29, 23)}, + 'integratedCircuitCardSerialNumber': {'comment': 'Teletrust attribute', + 'description': 'integratedCircuitCardSerialNumber (1 3 36 8 3 6)', + 'hexoid': '06 05 2B 24 08 03 07', + 'name': 'integratedCircuitCardSerialNumber', + 'oid': (1, 3, 36, 8, 3, 6)}, + 'internationalISDNNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'internationalISDNNumber (2 5 4 25)', + 'hexoid': '06 04 55 04 19 01', + 'name': 'internationalISDNNumber', + 'oid': (2, 5, 4, 25)}, + 'invalidityDate': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'invalidityDate (2 5 29 24)', + 'hexoid': '06 03 55 1D 1B', + 'name': 'invalidityDate', + 'oid': (2, 5, 29, 24)}, + 'ipsecEndSystem': {'comment': 'PKIX key purpose', + 'description': 'ipsecEndSystem (1 3 6 1 5 5 7 3 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 06', + 'name': 'ipsecEndSystem', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 5)}, + 'ipsecTunnel': {'comment': 'PKIX key purpose', + 'description': 'ipsecTunnel (1 3 6 1 5 5 7 3 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 07', + 'name': 'ipsecTunnel', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 6)}, + 'ipsecUser': {'comment': 'PKIX key purpose', + 'description': 'ipsecUser (1 3 6 1 5 5 7 3 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 09', + 'name': 'ipsecUser', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 7)}, + 'issuer': {'comment': 'Telesec attribute', + 'description': 'issuer (0 2 262 1 10 7 6)', + 'hexoid': '06 07 02 82 06 01 0A 07 06', + 'name': 'issuer', + 'oid': (0, 2, 262, 1, 10, 7, 6)}, + 'issuerAltName': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'issuerAltName (2 5 29 18)', + 'hexoid': '06 03 55 1D 13', + 'name': 'issuerAltName', + 'oid': (2, 5, 29, 18)}, + 'issuerAndSerialNumber': {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'issuerAndSerialNumber (1 2 840 113549 1 9 10)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0B', + 'name': 'issuerAndSerialNumber', + 'oid': (1, 2, 840, 113549, 1, 9, 10)}, + 'issuingDistributionPoint': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'issuingDistributionPoint (2 5 29 28)', + 'hexoid': '06 03 55 1D 1D', + 'name': 'issuingDistributionPoint', + 'oid': (2, 5, 29, 28)}, + 'janUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'janUKMs (2 16 840 1 101 2 1 5 20)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 15', + 'name': 'janUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 20)}, + 'julUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'julUKMs (2 16 840 1 101 2 1 5 26)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1B', + 'name': 'julUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 26)}, + 'junUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'junUKMs (2 16 840 1 101 2 1 5 25)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1A', + 'name': 'junUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 25)}, + 'kEAKeyEncryptionAlgorithm': {'comment': 'SDN.700 INFOSEC format', + 'description': 'kEAKeyEncryptionAlgorithm (2 16 840 1 101 2 1 1 24)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 01', + 'name': 'kEAKeyEncryptionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 24)}, + 'kR': {'comment': 'CSOR GAK', + 'description': 'kR (2 16 840 1 101 3 2 3 3)', + 'hexoid': '06 08 60 86 48 01 65 03 02 04', + 'name': 'kR', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3, 3)}, + 'kRAKey': {'comment': 'CSOR GAK extensions', + 'description': 'kRAKey (2 16 840 1 101 3 2 2 1)', + 'hexoid': '06 08 60 86 48 01 65 03 02 03', + 'name': 'kRAKey', + 'oid': (2, 16, 840, 1, 101, 3, 2, 2, 1)}, + 'kRTechnique': {'comment': 'CSOR GAK extensions', + 'description': 'kRTechnique (2 16 840 1 101 3 2 3 1)', + 'hexoid': '06 09 60 86 48 01 65 03 02 03 02', + 'name': 'kRTechnique', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3, 1)}, + 'kRecoveryCapable': {'comment': 'CSOR GAK extensions', + 'description': 'kRecoveryCapable (2 16 840 1 101 3 2 3 2)', + 'hexoid': '06 09 60 86 48 01 65 03 02 03 03', + 'name': 'kRecoveryCapable', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3, 2)}, + 'kafka': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafka (2 16 840 1 101 2 1 12 0 3)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00', + 'name': 'kafka', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3)}, + 'kafkaSecurityCategories': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaSecurityCategories (2 16 840 1 101 2 1 12 0 3 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00 01', + 'name': 'kafkaSecurityCategories', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0)}, + 'kafkaTagSetName1': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaTagSetName1 (2 16 840 1 101 2 1 12 0 3 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00 02', + 'name': 'kafkaTagSetName1', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 1)}, + 'kafkaTagSetName2': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaTagSetName2 (2 16 840 1 101 2 1 12 0 3 0 2)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00 03', + 'name': 'kafkaTagSetName2', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 2)}, + 'kafkaTagSetName3': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaTagSetName3 (2 16 840 1 101 2 1 12 0 3 0 3)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 01 01', + 'name': 'kafkaTagSetName3', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 3)}, + 'keyAttributes': {'comment': 'X.509 id-ce (2 5 29). Obsolete, use keyUsage/extKeyUsage instead', + 'description': 'keyAttributes (2 5 29 2)', + 'hexoid': '06 03 55 1D 04', + 'name': 'keyAttributes', + 'oid': (2, 5, 29, 2)}, + 'keyExchangeAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'keyExchangeAlgorithm (2 16 840 1 101 2 1 1 22)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 17', + 'name': 'keyExchangeAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 22)}, + 'keyPairParamRep': {'comment': 'PKIX CMP information', + 'description': 'keyPairParamRep (1 3 6 1 5 5 7 4 11)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0C', + 'name': 'keyPairParamRep', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 11)}, + 'keyPairParamReq': {'comment': 'PKIX CMP information', + 'description': 'keyPairParamReq (1 3 6 1 5 5 7 4 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0B', + 'name': 'keyPairParamReq', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 10)}, + 'keyPurpose': {'comment': 'PKIX key purpose', + 'description': 'keyPurpose (1 3 6 1 5 5 7 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 01', + 'name': 'keyPurpose', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3)}, + 'keyUsage': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'keyUsage (2 5 29 15)', + 'hexoid': '06 03 55 1D 10', + 'name': 'keyUsage', + 'oid': (2, 5, 29, 15)}, + 'keyUsageRestriction': {'comment': 'X.509 id-ce (2 5 29). Deprecated, use (2 5 29 33) instead', + 'description': 'keyUsageRestriction (2 5 29 4)', + 'hexoid': '06 03 55 1D 05', + 'name': 'keyUsageRestriction', + 'oid': (2, 5, 29, 4)}, + 'keyagree': {'comment': 'Teletrust key management', + 'description': 'keyagree (1 3 36 7 1)', + 'hexoid': '06 05 2B 24 07 01 01', + 'name': 'keyagree', + 'oid': (1, 3, 36, 7, 1)}, + 'keyed-hash-seal': {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'keyed-hash-seal (1 3 14 3 2 23)', + 'hexoid': '06 05 2B 0E 03 02 18', + 'name': 'keyed-hash-seal', + 'oid': (1, 3, 14, 3, 2, 23)}, + 'keymgmnt': {'comment': 'Teletrust key management', + 'description': 'keymgmnt (1 3 36 7)', + 'hexoid': '06 04 2B 24 07 01', + 'name': 'keymgmnt', + 'oid': (1, 3, 36, 7)}, + 'keyrecoveryschemes': {'comment': 'CSOR GAK', + 'description': 'keyrecoveryschemes (2 16 840 1 101 3 2 4)', + 'hexoid': '06 08 60 86 48 01 65 03 02 05', + 'name': 'keyrecoveryschemes', + 'oid': (2, 16, 840, 1, 101, 3, 2, 4)}, + 'keytrans': {'comment': 'Teletrust key management. 9796-2 with key stored in hash field', + 'description': 'keytrans (1 3 36 7 2)', + 'hexoid': '06 05 2B 24 07 02 01', + 'name': 'keytrans', + 'oid': (1, 3, 36, 7, 2)}, + 'kmPrivileges': {'comment': 'SDN.700 INFOSEC privileges', + 'description': 'kmPrivileges (2 16 840 1 101 2 1 10 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0A 03', + 'name': 'kmPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 2)}, + 'knowledgeInformation': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'knowledgeInformation (2 5 4 2)', + 'hexoid': '06 03 55 04 03', + 'name': 'knowledgeInformation', + 'oid': (2, 5, 4, 2)}, + 'krapola': {'comment': 'CSOR GAK', + 'description': 'krapola (2 16 840 1 101 3 2 5)', + 'hexoid': '06 07 60 86 48 01 65 03 03', + 'name': 'krapola', + 'oid': (2, 16, 840, 1, 101, 3, 2, 5)}, + 'ktKeyData': {'comment': 'Telesec attribute', + 'description': 'ktKeyData (0 2 262 1 10 7 40)', + 'hexoid': '06 07 02 82 06 01 0A 07 28', + 'name': 'ktKeyData', + 'oid': (0, 2, 262, 1, 10, 7, 40)}, + 'ktKeyNumber': {'comment': 'Telesec attribute', + 'description': 'ktKeyNumber (0 2 262 1 10 7 41)', + 'hexoid': '06 07 02 82 06 01 0A 07 2A', + 'name': 'ktKeyNumber', + 'oid': (0, 2, 262, 1, 10, 7, 41)}, + 'labeledAttribute': {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'labeledAttribute (2 16 840 1 101 2 1 5 57)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 3A', + 'name': 'labeledAttribute', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 57)}, + 'ldapDefinitions': {'comment': 'Netscape LDAP definitions', + 'description': 'ldapDefinitions (2 16 840 1 113730 3 1)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 01', + 'name': 'ldapDefinitions', + 'oid': (2, 16, 840, 1, 113730, 3, 1)}, + 'liabilityText': {'comment': 'Telesec attribute', + 'description': 'liabilityText (0 2 262 1 10 7 52)', + 'hexoid': '06 07 02 82 06 01 0A 07 34', + 'name': 'liabilityText', + 'oid': (0, 2, 262, 1, 10, 7, 52)}, + 'localKeyID': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'localKeyID (for PKCS #12) (1 2 840 113549 1 9 21)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 16', + 'name': 'localKeyID', + 'oid': (1, 2, 840, 113549, 1, 9, 21)}, + 'locality': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'locality (2 5 6 3)', + 'hexoid': '06 03 55 06 04', + 'name': 'locality', + 'oid': (2, 5, 6, 3)}, + 'localityName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'localityName (2 5 4 7)', + 'hexoid': '06 04 55 04 07 01', + 'name': 'localityName', + 'oid': (2, 5, 4, 7)}, + 'location': {'comment': 'Teletrust signature attributes', + 'description': 'location (1 3 36 8 6 8)', + 'hexoid': '06 05 2B 24 08 06 09', + 'name': 'location', + 'oid': (1, 3, 36, 8, 6, 8)}, + 'mISSISecurityCategories': {'comment': 'SDN.700 INFOSEC security category', + 'description': 'mISSISecurityCategories (2 16 840 1 101 2 1 8 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 08 02', + 'name': 'mISSISecurityCategories', + 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 1)}, + 'mac': {'comment': 'Telesec one-way function', + 'description': 'mac (0 2 262 1 10 1 3 7)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 07', + 'name': 'mac', + 'oid': (0, 2, 262, 1, 10, 1, 3, 7)}, + 'magenta': {'comment': 'Telesec encryption', + 'description': 'magenta (0 2 262 1 10 1 2 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 04', + 'name': 'magenta', + 'oid': (0, 2, 262, 1, 10, 1, 2, 4)}, + 'mailRecipient': {'comment': 'Microsoft Exchange Server - attribute', + 'description': 'mailRecipient (1 2 840 113556 1 3 46)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 02 81 71', + 'name': 'mailRecipient', + 'oid': (1, 2, 840, 113556, 1, 3, 46)}, + 'mailbox': {'comment': 'Microsoft Exchange Server - object class', + 'description': 'mailbox (1 2 840 113556 1 3 22)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 17', + 'name': 'mailbox', + 'oid': (1, 2, 840, 113556, 1, 3, 22)}, + 'mailbox-Agent': {'comment': 'Microsoft Exchange Server - object class', + 'description': 'mailbox-Agent (1 2 840 113556 1 3 174)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 16', + 'name': 'mailbox-Agent', + 'oid': (1, 2, 840, 113556, 1, 3, 174)}, + 'manufacturer-specific_api': {'comment': 'Teletrust API', + 'description': 'manufacturer-specific_api (1 3 36 6 1)', + 'hexoid': '06 05 2B 24 06 01 01', + 'name': 'manufacturer-specific_api', + 'oid': (1, 3, 36, 6, 1)}, + 'marUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'marUKMs (2 16 840 1 101 2 1 5 22)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 17', + 'name': 'marUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 22)}, + 'mayUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mayUKMs (2 16 840 1 101 2 1 5 24)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 19', + 'name': 'mayUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 24)}, + 'md2': {'comment': 'RSADSI digestAlgorithm (1 2 840 113549 2)', + 'description': 'md2 (1 2 840 113549 2 2)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 02 07', + 'name': 'md2', + 'oid': (1, 2, 840, 113549, 2, 2)}, + 'md2WithElGamal': {'comment': 'Teletrust document', + 'description': 'md2WithElGamal (1 3 14 7 2 3 2)', + 'hexoid': '06 03 2B 24 01', + 'name': 'md2WithElGamal', + 'oid': (1, 3, 14, 7, 2, 3, 2)}, + 'md2WithRSA': {'comment': 'Unsure about this OID', + 'description': 'md2WithRSA (1 3 14 7 2 3 1)', + 'hexoid': '06 06 2B 0E 07 02 03 02', + 'name': 'md2WithRSA', + 'oid': (1, 3, 14, 7, 2, 3, 1)}, + 'md2WithRSAEncryptionBSafe1': {'comment': 'Novell signature algorithm', + 'description': 'md2WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 29)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1E', + 'name': 'md2WithRSAEncryptionBSafe1', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 29)}, + 'md2WithRSASignature': {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'md2WithRSASignature (1 3 14 3 2 24)', + 'hexoid': '06 05 2B 0E 03 02 19', + 'name': 'md2WithRSASignature', + 'oid': (1, 3, 14, 3, 2, 24)}, + 'md2withRSAEncryption': {'comment': 'PKCS #1', + 'description': 'md2withRSAEncryption (1 2 840 113549 1 1 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 03', + 'name': 'md2withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 2)}, + 'md4': {'comment': 'Telesec one-way function', + 'description': 'md4 (0 2 262 1 10 1 3 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 01', + 'name': 'md4', + 'oid': (0, 2, 262, 1, 10, 1, 3, 1)}, + 'md4WitRSA': {'comment': 'Oddball OIW OID', + 'description': 'md4WitRSA (1 3 14 3 2 2)', + 'hexoid': '06 05 2B 0E 03 02 03', + 'name': 'md4WitRSA', + 'oid': (1, 3, 14, 3, 2, 2)}, + 'md4WithRSAAndISO9697': {'comment': 'Telesec mechanism', + 'description': 'md4WithRSAAndISO9697 (0 2 262 1 10 1 1 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 01', + 'name': 'md4WithRSAAndISO9697', + 'oid': (0, 2, 262, 1, 10, 1, 1, 1)}, + 'md4WithRSAAndTelesecSignatureStandard': {'comment': 'Telesec mechanism', + 'description': 'md4WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 02', + 'name': 'md4WithRSAAndTelesecSignatureStandard', + 'oid': (0, 2, 262, 1, 10, 1, 1, 2)}, + 'md4WithRSAEncryption': {'comment': 'X.509. Deprecated', + 'description': 'md4WithRSAEncryption (1 3 14 3 2 4)', + 'hexoid': '06 06 2B 0E 03 02 02 01', + 'name': 'md4WithRSAEncryption', + 'oid': (1, 3, 14, 3, 2, 4)}, + 'md4withRSAEncryption': {'comment': 'PKCS #1', + 'description': 'md4withRSAEncryption (1 2 840 113549 1 1 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 04', + 'name': 'md4withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 3)}, + 'md5': {'comment': 'Telesec one-way function', + 'description': 'md5 (0 2 262 1 10 1 3 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 02', + 'name': 'md5', + 'oid': (0, 2, 262, 1, 10, 1, 3, 2)}, + 'md5WithRSA': {'comment': 'Oddball OIW OID', + 'description': 'md5WithRSA (1 3 14 3 2 3)', + 'hexoid': '06 05 2B 0E 03 02 04', + 'name': 'md5WithRSA', + 'oid': (1, 3, 14, 3, 2, 3)}, + 'md5WithRSAAndISO9697': {'comment': 'Telesec mechanism', + 'description': 'md5WithRSAAndISO9697 (0 2 262 1 10 1 1 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 03', + 'name': 'md5WithRSAAndISO9697', + 'oid': (0, 2, 262, 1, 10, 1, 1, 3)}, + 'md5WithRSAAndTelesecSignatureStandard': {'comment': 'Telesec mechanism', + 'description': 'md5WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 04', + 'name': 'md5WithRSAAndTelesecSignatureStandard', + 'oid': (0, 2, 262, 1, 10, 1, 1, 4)}, + 'md5WithRSAEncryptionBSafe1': {'comment': 'Novell signature algorithm', + 'description': 'md5WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 30)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1F', + 'name': 'md5WithRSAEncryptionBSafe1', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 30)}, + 'md5WithRSASignature': {'comment': 'OIW', + 'description': 'md5WithRSASignature (1 3 14 3 2 25)', + 'hexoid': '06 05 2B 0E 03 02 1A', + 'name': 'md5WithRSASignature', + 'oid': (1, 3, 14, 3, 2, 25)}, + 'md5withRSAEncryption': {'comment': 'PKCS #1', + 'description': 'md5withRSAEncryption (1 2 840 113549 1 1 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 05', + 'name': 'md5withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 4)}, + 'mdc-2': {'comment': 'Oddball OIW OID. Deprecated, use a plain DSA OID instead', + 'description': 'mdc-2 (1 3 14 3 2 19)', + 'hexoid': '06 05 2B 0E 03 02 14', + 'name': 'mdc-2', + 'oid': (1, 3, 14, 3, 2, 19)}, + 'mdc2WithRSASignature': {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'mdc2WithRSASignature (1 3 14 3 2 14)', + 'hexoid': '06 05 2B 0E 03 02 0F', + 'name': 'mdc2WithRSASignature', + 'oid': (1, 3, 14, 3, 2, 14)}, + 'mdc2doubleLength': {'comment': 'Teletrust algorithm', + 'description': 'mdc2doubleLength (1 3 36 3 2 5)', + 'hexoid': '06 04 2B 24 03 03', + 'name': 'mdc2doubleLength', + 'oid': (1, 3, 36, 3, 2, 5)}, + 'mdc2singleLength': {'comment': 'Teletrust hash algorithm', + 'description': 'mdc2singleLength (1 3 36 3 2 4)', + 'hexoid': '06 05 2B 24 03 02 05', + 'name': 'mdc2singleLength', + 'oid': (1, 3, 36, 3, 2, 4)}, + 'mechanism': {'comment': 'Telesec', + 'description': 'mechanism (0 2 262 1 10 1)', + 'hexoid': '06 06 02 82 06 01 0A 01', + 'name': 'mechanism', + 'oid': (0, 2, 262, 1, 10, 1)}, + 'member': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'member (2 5 4 31)', + 'hexoid': '06 03 55 04 20', + 'name': 'member', + 'oid': (2, 5, 4, 31)}, + 'merchantData': {'comment': 'SET cert extension', + 'description': 'merchantData (2 23 42 7 2)', + 'hexoid': '06 04 67 2A 07 03', + 'name': 'merchantData', + 'oid': (2, 23, 42, 7, 2)}, + 'messageDigest': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'messageDigest (1 2 840 113549 1 9 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 05', + 'name': 'messageDigest', + 'oid': (1, 2, 840, 113549, 1, 9, 4)}, + 'messageTypes': {'comment': 'Telesec module', + 'description': 'messageTypes (0 2 262 1 10 2 3)', + 'hexoid': '06 07 02 82 06 01 0A 02 03', + 'name': 'messageTypes', + 'oid': (0, 2, 262, 1, 10, 2, 3)}, + 'metaSDNSckl': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'metaSDNSckl (2 16 840 1 101 2 1 5 40)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 29', + 'name': 'metaSDNSckl', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 40)}, + 'metaSDNSsignatureCKL': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'metaSDNSsignatureCKL (2 16 840 1 101 2 1 5 42)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2B', + 'name': 'metaSDNSsignatureCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 42)}, + 'microsoftExcel': {'comment': 'Microsoft', + 'description': 'microsoftExcel (1 2 840 113556 4 3)', + 'hexoid': '06 08 2A 86 48 86 F7 14 04 04', + 'name': 'microsoftExcel', + 'oid': (1, 2, 840, 113556, 4, 3)}, + 'microsoftPowerPoint': {'comment': 'Microsoft code signing', + 'description': 'microsoftPowerPoint (1 2 840 113556 4 5)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 04', + 'name': 'microsoftPowerPoint', + 'oid': (1, 2, 840, 113556, 4, 5)}, + 'microsoftRecipientInfo': {'comment': 'Microsoft attribute', + 'description': 'microsoftRecipientInfo (1 3 6 1 4 1 311 16 4)', + 'hexoid': '06 09 2B 06 01 04 01 82 37 15 01', + 'name': 'microsoftRecipientInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 16, 4)}, + 'misty1-cbc': {'comment': 'Mitsubishi security algorithm', + 'description': 'misty1-cbc (1 2 392 200011 61 1 1 1 1)', + 'hexoid': '06 0C 2A 83 08 8C 9A 4B 3D 01 01 01 01', + 'name': 'misty1-cbc', + 'oid': (1, 2, 392, 200011, 61, 1, 1, 1, 1)}, + 'mlAdministrators': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mlAdministrators (2 16 840 1 101 2 1 5 13)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0E', + 'name': 'mlAdministrators', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 13)}, + 'mlExpansionHistory': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'mlExpansionHistory (1 2 840 113549 1 9 15 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 10', + 'name': 'mlExpansionHistory', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 6)}, + 'mlMembership': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mlMembership (2 16 840 1 101 2 1 5 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0D', + 'name': 'mlMembership', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 12)}, + 'mlReceiptPolicy': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mlReceiptPolicy (2 16 840 1 101 2 1 5 11)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0C', + 'name': 'mlReceiptPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 11)}, + 'module': {'comment': 'SET', + 'description': 'module (2 23 42 6)', + 'hexoid': '06 03 67 2A 07', + 'name': 'module', + 'oid': (2, 23, 42, 6)}, + 'monetaryLimit': {'comment': 'Teletrust attribute', + 'description': 'monetaryLimit (1 3 36 8 3 4)', + 'hexoid': '06 05 2B 24 08 03 05', + 'name': 'monetaryLimit', + 'oid': (1, 3, 36, 8, 3, 4)}, + 'month': {'comment': 'SET field', + 'description': 'month (2 23 42 2 6)', + 'hexoid': '06 04 67 2A 02 07', + 'name': 'month', + 'oid': (2, 23, 42, 2, 6)}, + 'mosaicPRBAC': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'mosaicPRBAC (2 16 840 1 101 2 1 3 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0A', + 'name': 'mosaicPRBAC', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 3)}, + 'mpeg-1': {'comment': 'cryptlib certificate policy', + 'description': 'mpeg-1 (1 3 6 1 4 1 3029 42 11172 1)', + 'hexoid': '06 0C 2B 06 01 04 01 97 55 58 59 5A 5A 59', + 'name': 'mpeg-1', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 42, 11172, 1)}, + 'mqv1': {'comment': 'ANSI X9.42 scheme', + 'description': 'mqv1 (1 2 840 10046 3 6)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 06', + 'name': 'mqv1', + 'oid': (1, 2, 840, 10046, 3, 6)}, + 'mqv2': {'comment': 'ANSI X9.42 scheme', + 'description': 'mqv2 (1 2 840 10046 3 5)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 05', + 'name': 'mqv2', + 'oid': (1, 2, 840, 10046, 3, 5)}, + 'msgExt': {'comment': 'SET', + 'description': 'msgExt (2 23 42 1)', + 'hexoid': '06 03 67 2A 02', + 'name': 'msgExt', + 'oid': (2, 23, 42, 1)}, + 'mspContentType': {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspContentType (2 16 840 1 101 2 1 2 48)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 31', + 'name': 'mspContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 48)}, + 'mspForwardedMessageParameters': {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspForwardedMessageParameters (2 16 840 1 101 2 1 2 73)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 50', + 'name': 'mspForwardedMessageParameters', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 73)}, + 'mspMMP': {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspMMP (2 16 840 1 101 2 1 2 50)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 42', + 'name': 'mspMMP', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 50)}, + 'mspMMP2': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'mspMMP2 (2 16 840 1 101 2 1 2 76)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 01', + 'name': 'mspMMP2', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 76)}, + 'mspRekeyAgentProtocol': {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspRekeyAgentProtocol (2 16 840 1 101 2 1 2 49)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 32', + 'name': 'mspRekeyAgentProtocol', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 49)}, + 'mspRev3-1ContentType': {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspRev3-1ContentType (2 16 840 1 101 2 1 2 66)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 48', + 'name': 'mspRev3-1ContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 66)}, + 'mspRev3ContentType': {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspRev3ContentType (2 16 840 1 101 2 1 2 42)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 30', + 'name': 'mspRev3ContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 42)}, + 'name': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'name (2 5 4 41)', + 'hexoid': '06 03 55 04 2A', + 'name': 'name', + 'oid': (2, 5, 4, 41)}, + 'nameAdditions': {'comment': 'Telesec attribute', + 'description': 'nameAdditions (0 2 262 1 10 7 18)', + 'hexoid': '06 07 02 82 06 01 0A 07 12', + 'name': 'nameAdditions', + 'oid': (0, 2, 262, 1, 10, 7, 18)}, + 'nameBinding': {'comment': 'Telesec', + 'description': 'nameBinding (0 2 262 1 10 6)', + 'hexoid': '06 06 02 82 06 01 0A 06', + 'name': 'nameBinding', + 'oid': (0, 2, 262, 1, 10, 6)}, + 'nameConstraints': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'nameConstraints (2 5 29 30)', + 'hexoid': '06 03 55 1D 1F', + 'name': 'nameConstraints', + 'oid': (2, 5, 29, 30)}, + 'nameDistinguisher': {'comment': 'Telesec attribute', + 'description': 'nameDistinguisher (0 2 262 1 10 7 20)', + 'hexoid': '06 07 02 82 06 01 0A 07 14', + 'name': 'nameDistinguisher', + 'oid': (0, 2, 262, 1, 10, 7, 20)}, + 'namedTagSetPrivilege': {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'namedTagSetPrivilege (2 16 840 1 101 2 1 10 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 01', + 'name': 'namedTagSetPrivilege', + 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 3)}, + 'namingAuthorities': {'comment': 'Teletrust attribute', + 'description': 'namingAuthorities (1 3 36 8 3 11)', + 'hexoid': '06 05 2B 24 08 03 0C', + 'name': 'namingAuthorities', + 'oid': (1, 3, 36, 8, 3, 11)}, + 'namingAuthority': {'comment': 'Telesec attribute', + 'description': 'namingAuthority (0 2 262 1 10 7 7)', + 'hexoid': '06 07 02 82 06 01 0A 07 07', + 'name': 'namingAuthority', + 'oid': (0, 2, 262, 1, 10, 7, 7)}, + 'national': {'comment': 'SET national', + 'description': 'national (2 23 42 10)', + 'hexoid': '06 05 67 2A 0A E2 00', + 'name': 'national', + 'oid': (2, 23, 42, 10)}, + 'netscape-base-url': {'comment': 'Netscape certificate extension', + 'description': 'netscape-base-url (2 16 840 1 113730 1 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 03', + 'name': 'netscape-base-url', + 'oid': (2, 16, 840, 1, 113730, 1, 2)}, + 'netscape-ca-policy-url': {'comment': 'Netscape certificate extension', + 'description': 'netscape-ca-policy-url (2 16 840 1 113730 1 8)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 09', + 'name': 'netscape-ca-policy-url', + 'oid': (2, 16, 840, 1, 113730, 1, 8)}, + 'netscape-ca-revocation-url': {'comment': 'Netscape certificate extension', + 'description': 'netscape-ca-revocation-url (2 16 840 1 113730 1 4)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 07', + 'name': 'netscape-ca-revocation-url', + 'oid': (2, 16, 840, 1, 113730, 1, 4)}, + 'netscape-cert-renewal-url': {'comment': 'Netscape certificate extension', + 'description': 'netscape-cert-renewal-url (2 16 840 1 113730 1 7)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 08', + 'name': 'netscape-cert-renewal-url', + 'oid': (2, 16, 840, 1, 113730, 1, 7)}, + 'netscape-cert-type': {'comment': 'Netscape certificate extension', + 'description': 'netscape-cert-type (2 16 840 1 113730 1 1)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 02', + 'name': 'netscape-cert-type', + 'oid': (2, 16, 840, 1, 113730, 1, 1)}, + 'netscape-comment': {'comment': 'Netscape', + 'description': 'netscape-comment (2 16 840 1 113730 1 13)', + 'hexoid': '06 08 60 86 48 01 86 F8 42 02', + 'name': 'netscape-comment', + 'oid': (2, 16, 840, 1, 113730, 1, 13)}, + 'netscape-revocation-url': {'comment': 'Netscape certificate extension', + 'description': 'netscape-revocation-url (2 16 840 1 113730 1 3)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 04', + 'name': 'netscape-revocation-url', + 'oid': (2, 16, 840, 1, 113730, 1, 3)}, + 'netscape-ssl-server-name': {'comment': 'Netscape certificate extension', + 'description': 'netscape-ssl-server-name (2 16 840 1 113730 1 12)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0D', + 'name': 'netscape-ssl-server-name', + 'oid': (2, 16, 840, 1, 113730, 1, 12)}, + 'nextUpdateLocation': {'comment': 'Microsoft enhanced key usage', + 'description': 'nextUpdateLocation (1 3 6 1 4 1 311 10 2)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 01', + 'name': 'nextUpdateLocation', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 2)}, + 'nistAlgorithm': {'comment': 'NIST Algorithm', + 'description': 'nistAlgorithm (2 16 840 1 101 3 4)', + 'hexoid': '06 08 60 86 48 01 65 03 04 01', + 'name': 'nistAlgorithm', + 'oid': (2, 16, 840, 1, 101, 3, 4)}, + 'noSignature': {'comment': 'PKIX algorithm', + 'description': 'noSignature (1 3 6 1 5 5 7 6 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 03', + 'name': 'noSignature', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 2)}, + 'none': {'comment': 'Telesec encryption', + 'description': 'none (0 2 262 1 10 1 2 0)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 00', + 'name': 'none', + 'oid': (0, 2, 262, 1, 10, 1, 2, 0)}, + 'notification': {'comment': 'Telesec', + 'description': 'notification (0 2 262 1 10 10)', + 'hexoid': '06 06 02 82 06 01 0A 0A', + 'name': 'notification', + 'oid': (0, 2, 262, 1, 10, 10)}, + 'novUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'novUKMs (2 16 840 1 101 2 1 5 30)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1F', + 'name': 'novUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 30)}, + 'novellAlgorithm': {'comment': 'Novell encryption algorithm', + 'description': 'novellAlgorithm (2 16 840 1 113719 1 2 8)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 16', + 'name': 'novellAlgorithm', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8)}, + 'novellObfuscate-1': {'comment': 'Novell', + 'description': 'novellObfuscate-1 (2 16 840 1 113719 1 2 8 133)', + 'hexoid': '06 09 60 86 48 01 86 F8 37 01 09', + 'name': 'novellObfuscate-1', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 133)}, + 'nsn-alg': {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'nsn-alg (1 2 840 113533 7 66)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 03', + 'name': 'nsn-alg', + 'oid': (1, 2, 840, 113533, 7, 66)}, + 'nsn-at': {'comment': 'Nortel Secure Networks at (1 2 840 113533 7 68)', + 'description': 'nsn-at (1 2 840 113533 7 68)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 44 00', + 'name': 'nsn-at', + 'oid': (1, 2, 840, 113533, 7, 68)}, + 'nsn-ce': {'comment': 'Nortel Secure Networks ce (1 2 840 113533 7 65)', + 'description': 'nsn-ce (1 2 840 113533 7 65)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 41 00', + 'name': 'nsn-ce', + 'oid': (1, 2, 840, 113533, 7, 65)}, + 'nsn-oc': {'comment': 'Nortel Secure Networks oc (1 2 840 113533 7 67)', + 'description': 'nsn-oc (1 2 840 113533 7 67)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 43 0C', + 'name': 'nsn-oc', + 'oid': (1, 2, 840, 113533, 7, 67)}, + 'numberType': {'comment': 'ANSI X9.42', + 'description': 'numberType (1 2 840 10046 2)', + 'hexoid': '06 06 2A 86 48 CE 3E 02', + 'name': 'numberType', + 'oid': (1, 2, 840, 10046, 2)}, + 'objectClass': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'objectClass (2 5 4 0)', + 'hexoid': '06 03 55 04 01', + 'name': 'objectClass', + 'oid': (2, 5, 4, 0)}, + 'ocsp': {'comment': 'OCSP', + 'description': 'ocsp (1 3 6 1 5 5 7 48 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 01', + 'name': 'ocsp', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1)}, + 'ocspArchiveCutoff': {'comment': 'OCSP', + 'description': 'ocspArchiveCutoff (1 3 6 1 5 5 7 48 1 6)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 07', + 'name': 'ocspArchiveCutoff', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 6)}, + 'ocspBasic': {'comment': 'OCSP', + 'description': 'ocspBasic (1 3 6 1 5 5 7 48 1 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 02', + 'name': 'ocspBasic', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 1)}, + 'ocspCRL': {'comment': 'OCSP', + 'description': 'ocspCRL (1 3 6 1 5 5 7 48 1 3)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 04', + 'name': 'ocspCRL', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 3)}, + 'ocspNoCheck': {'comment': 'OCSP', + 'description': 'ocspNoCheck (1 3 6 1 5 5 7 48 1 5)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 06', + 'name': 'ocspNoCheck', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 5)}, + 'ocspNonce': {'comment': 'OCSP', + 'description': 'ocspNonce (1 3 6 1 5 5 7 48 1 2)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 03', + 'name': 'ocspNonce', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 2)}, + 'ocspResponse': {'comment': 'OCSP', + 'description': 'ocspResponse (1 3 6 1 5 5 7 48 1 4)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 05', + 'name': 'ocspResponse', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 4)}, + 'ocspServiceLocator': {'comment': 'PKIX authority info access descriptor', + 'description': 'ocspServiceLocator (1 3 6 1 5 5 7 48 1 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 30 02', + 'name': 'ocspServiceLocator', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 7)}, + 'ocspSigning': {'comment': 'PKIX key purpose', + 'description': 'ocspSigning (1 3 6 1 5 5 7 3 9)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 0A', + 'name': 'ocspSigning', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 9)}, + 'octUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'octUKMs (2 16 840 1 101 2 1 5 29)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1E', + 'name': 'octUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 29)}, + 'oldCertID': {'comment': 'PKIX CRMF registration control', + 'description': 'oldCertID (1 3 6 1 5 5 7 5 1 5)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 06', + 'name': 'oldCertID', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 5)}, + 'onBasis': {'comment': 'ANSI X9.62 field basis', + 'description': 'onBasis (1 2 840 10045 1 2 3 1)', + 'hexoid': '06 0A 2A 86 48 CE 3D 01 02 03 01', + 'name': 'onBasis', + 'oid': (1, 2, 840, 10045, 1, 2, 3, 1)}, + 'oneWayFunction': {'comment': 'Telesec mechanism', + 'description': 'oneWayFunction (0 2 262 1 10 1 3)', + 'hexoid': '06 07 02 82 06 01 0A 01 03', + 'name': 'oneWayFunction', + 'oid': (0, 2, 262, 1, 10, 1, 3)}, + 'oneWayISO9798Authentication': {'comment': 'Telesec authentication', + 'description': 'oneWayISO9798Authentication (0 2 262 1 10 1 0 6)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 06', + 'name': 'oneWayISO9798Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 6)}, + 'oneWayX509Authentication': {'comment': 'Telesec authentication', + 'description': 'oneWayX509Authentication (0 2 262 1 10 1 0 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 03', + 'name': 'oneWayX509Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 3)}, + 'organization': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organization (2 5 6 4)', + 'hexoid': '06 03 55 06 05', + 'name': 'organization', + 'oid': (2, 5, 6, 4)}, + 'organizationName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'organizationName (2 5 4 10)', + 'hexoid': '06 04 55 04 0A 01', + 'name': 'organizationName', + 'oid': (2, 5, 4, 10)}, + 'organizationalPerson': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organizationalPerson (2 5 6 7)', + 'hexoid': '06 03 55 06 08', + 'name': 'organizationalPerson', + 'oid': (2, 5, 6, 7)}, + 'organizationalRole': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organizationalRole (2 5 6 8)', + 'hexoid': '06 03 55 06 09', + 'name': 'organizationalRole', + 'oid': (2, 5, 6, 8)}, + 'organizationalUnit': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organizationalUnit (2 5 6 5)', + 'hexoid': '06 03 55 06 06', + 'name': 'organizationalUnit', + 'oid': (2, 5, 6, 5)}, + 'organizationalUnitName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'organizationalUnitName (2 5 4 11)', + 'hexoid': '06 04 55 04 0B 01', + 'name': 'organizationalUnitName', + 'oid': (2, 5, 4, 11)}, + 'origPKIMessage': {'comment': 'PKIX CMP information', + 'description': 'origPKIMessage (1 3 6 1 5 5 7 4 15)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 10', + 'name': 'origPKIMessage', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 15)}, + 'originalFilename': {'comment': 'UNINETT PCA', + 'description': 'originalFilename (1 3 6 1 4 1 311 88 2 1)', + 'hexoid': '06 0A 2B 06 01 04 01 92 7C 0A 01 01', + 'name': 'originalFilename', + 'oid': (1, 3, 6, 1, 4, 1, 311, 88, 2, 1)}, + 'osVersion': {'comment': 'Microsoft attribute', + 'description': 'osVersion (1 3 6 1 4 1 311 13 2 3)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 10 04', + 'name': 'osVersion', + 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 3)}, + 'otherNames': {'comment': 'PKIX other name', + 'description': 'otherNames (1 3 6 1 5 5 7 8)', + 'hexoid': '06 08 2B 06 01 05 05 07 08 01', + 'name': 'otherNames', + 'oid': (1, 3, 6, 1, 5, 5, 7, 8)}, + 'owner': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'owner (2 5 4 32)', + 'hexoid': '06 03 55 04 21', + 'name': 'owner', + 'oid': (2, 5, 4, 32)}, + 'pKReference': {'comment': 'Teletrust attribute', + 'description': 'pKReference (1 3 36 8 3 7)', + 'hexoid': '06 05 2B 24 08 03 09', + 'name': 'pKReference', + 'oid': (1, 3, 36, 8, 3, 7)}, + 'package': {'comment': 'Telesec', + 'description': 'package (0 2 262 1 10 4)', + 'hexoid': '06 06 02 82 06 01 0A 04', + 'name': 'package', + 'oid': (0, 2, 262, 1, 10, 4)}, + 'parameter': {'comment': 'Telesec', + 'description': 'parameter (0 2 262 1 10 5)', + 'hexoid': '06 06 02 82 06 01 0A 05', + 'name': 'parameter', + 'oid': (0, 2, 262, 1, 10, 5)}, + 'passPhrase': {'comment': 'SET', + 'description': 'passPhrase (2 23 42 2 7 12)', + 'hexoid': '06 03 67 2A 03', + 'name': 'passPhrase', + 'oid': (2, 23, 42, 2, 7, 12)}, + 'passwordAuthentication': {'comment': 'Telesec authentication', + 'description': 'passwordAuthentication (0 2 262 1 10 1 0 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 01', + 'name': 'passwordAuthentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 1)}, + 'passwordCheck': {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'passwordCheck (1 2 840 113549 1 9 11)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0C', + 'name': 'passwordCheck', + 'oid': (1, 2, 840, 113549, 1, 9, 11)}, + 'pbeWithMD2AndDES-CBC': {'comment': 'PKCS #5', + 'description': 'pbeWithMD2AndDES-CBC (1 2 840 113549 1 5 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 03', + 'name': 'pbeWithMD2AndDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 1)}, + 'pbeWithMD2AndRC2-CBC': {'comment': 'PKCS #5', + 'description': 'pbeWithMD2AndRC2-CBC (1 2 840 113549 1 5 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 06', + 'name': 'pbeWithMD2AndRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 4)}, + 'pbeWithMD5AndCAST5-CBC': {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'pbeWithMD5AndCAST5-CBC (1 2 840 113533 7 66 12)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0D', + 'name': 'pbeWithMD5AndCAST5-CBC', + 'oid': (1, 2, 840, 113533, 7, 66, 12)}, + 'pbeWithMD5AndDES-CBC': {'comment': 'PKCS #5', + 'description': 'pbeWithMD5AndDES-CBC (1 2 840 113549 1 5 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 04', + 'name': 'pbeWithMD5AndDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 3)}, + 'pbeWithMD5AndRC2-CBC': {'comment': 'PKCS #5, used in BSAFE only', + 'description': 'pbeWithMD5AndRC2-CBC (1 2 840 113549 1 5 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 09', + 'name': 'pbeWithMD5AndRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 6)}, + 'pbeWithMD5AndXOR': {'comment': 'PKCS #5', + 'description': 'pbeWithMD5AndXOR (1 2 840 113549 1 5 9)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0A', + 'name': 'pbeWithMD5AndXOR', + 'oid': (1, 2, 840, 113549, 1, 5, 9)}, + 'pbeWithSHAAnd128BitRC2-CBC': {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd128BitRC2-CBC (1 2 840 113549 1 12 1 5)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 06', + 'name': 'pbeWithSHAAnd128BitRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 5)}, + 'pbeWithSHAAnd128BitRC4': {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 2). This OID was formerly assigned as pkcs-12-OnlineTransportMode', + 'description': 'pbeWithSHAAnd128BitRC4 (1 2 840 113549 1 12 1 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 02', + 'name': 'pbeWithSHAAnd128BitRC4', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 1)}, + 'pbeWithSHAAnd2-KeyTripleDES-CBC': {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd2-KeyTripleDES-CBC (1 2 840 113549 1 12 1 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 05', + 'name': 'pbeWithSHAAnd2-KeyTripleDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 4)}, + 'pbeWithSHAAnd3-KeyTripleDES-CBC': {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd3-KeyTripleDES-CBC (1 2 840 113549 1 12 1 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 04', + 'name': 'pbeWithSHAAnd3-KeyTripleDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 3)}, + 'pbeWithSHAAnd40BitRC2-CBC': {'comment': 'Deprecated', + 'description': 'pbeWithSHAAnd40BitRC2-CBC (1 2 840 113549 1 12 1 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 02', + 'name': 'pbeWithSHAAnd40BitRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 6)}, + 'pbeWithSHAAnd40BitRC4': {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd40BitRC4 (1 2 840 113549 1 12 1 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 03', + 'name': 'pbeWithSHAAnd40BitRC4', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 2)}, + 'pbeWithSHAAndDES-CBC': {'comment': 'PKCS #5 v2.0', + 'description': 'pbeWithSHAAndDES-CBC (1 2 840 113549 1 5 10)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0C', + 'name': 'pbeWithSHAAndDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 10)}, + 'person': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'person (2 5 6 6)', + 'hexoid': '06 03 55 06 07', + 'name': 'person', + 'oid': (2, 5, 6, 6)}, + 'personalData': {'comment': 'PKIX other name', + 'description': 'personalData (1 3 6 1 5 5 7 8 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 08 02', + 'name': 'personalData', + 'oid': (1, 3, 6, 1, 5, 5, 7, 8, 1)}, + 'physicalCardNumber': {'comment': 'Telesec attribute', + 'description': 'physicalCardNumber (0 2 262 1 10 7 25)', + 'hexoid': '06 07 02 82 06 01 0A 07 19', + 'name': 'physicalCardNumber', + 'oid': (0, 2, 262, 1, 10, 7, 25)}, + 'physicalDeliveryOfficeName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'physicalDeliveryOfficeName (2 5 4 19)', + 'hexoid': '06 04 55 04 13 01', + 'name': 'physicalDeliveryOfficeName', + 'oid': (2, 5, 4, 19)}, + 'pickupToken': {'comment': 'ANSI X9.57 hold instruction', + 'description': 'pickupToken (1 2 840 10040 2 4)', + 'hexoid': '06 07 2A 86 48 CE 38 02 04', + 'name': 'pickupToken', + 'oid': (1, 2, 840, 10040, 2, 4)}, + 'pkcs-1': {'comment': 'PKCS #1', + 'description': 'pkcs-1 (1 2 840 113549 1 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 01', + 'name': 'pkcs-1', + 'oid': (1, 2, 840, 113549, 1, 1)}, + 'pkcs-12': {'comment': 'This OID was formerly assigned as PKCS #12 modeID', + 'description': 'pkcs-12 (1 2 840 113549 1 12)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 01', + 'name': 'pkcs-12', + 'oid': (1, 2, 840, 113549, 1, 12)}, + 'pkcs-12-BagIds': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-BagIds (1 2 840 113549 1 12 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 01', + 'name': 'pkcs-12-BagIds', + 'oid': (1, 2, 840, 113549, 1, 12, 3)}, + 'pkcs-12-CertBagID': {'comment': 'PKCS #12 CertBagID (1 2 840 113549 1 12 4). This OID was formerly assigned as pkcs-12-X509CertCRLBag', + 'description': 'pkcs-12-CertBagID (1 2 840 113549 1 12 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 01', + 'name': 'pkcs-12-CertBagID', + 'oid': (1, 2, 840, 113549, 1, 12, 4)}, + 'pkcs-12-ESPVKID': {'comment': 'PKCS #12 ESPVKID (1 2 840 113549 1 12 2). Deprecated, use (1 2 840 113549 1 12 3 5) instead', + 'description': 'pkcs-12-ESPVKID (1 2 840 113549 1 12 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 02 01', + 'name': 'pkcs-12-ESPVKID', + 'oid': (1, 2, 840, 113549, 1, 12, 2)}, + 'pkcs-12-EnvelopingID': {'comment': 'PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 02 01', + 'name': 'pkcs-12-EnvelopingID', + 'oid': (1, 2, 840, 113549, 1, 12, 5, 2)}, + 'pkcs-12-OID': {'comment': 'PKCS #12 OID (1 2 840 113549 1 12 5). Deprecated, use the partially compatible (1 2 840 113549 1 12 1) OIDs instead', + 'description': 'pkcs-12-OID (1 2 840 113549 1 12 5)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 05 01', + 'name': 'pkcs-12-OID', + 'oid': (1, 2, 840, 113549, 1, 12, 5)}, + 'pkcs-12-PBEID': {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 1) instead', + 'description': 'pkcs-12-PBEID (1 2 840 113549 1 12 5 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 01', + 'name': 'pkcs-12-PBEID', + 'oid': (1, 2, 840, 113549, 1, 12, 5, 1)}, + 'pkcs-12-PBEWithSha1And128BitRC2CBC': {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 6) instead', + 'description': 'pkcs-12-PBEWithSha1And128BitRC2CBC (1 2 840 113549 1 12 5 1 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 05', + 'name': 'pkcs-12-PBEWithSha1And128BitRC2CBC', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 4)}, + 'pkcs-12-PBEWithSha1And128BitRC4': {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 2) instead', + 'description': 'pkcs-12-PBEWithSha1And128BitRC4 (1 2 840 113549 1 12 5 1 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 02', + 'name': 'pkcs-12-PBEWithSha1And128BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 1)}, + 'pkcs-12-PBEWithSha1And40BitRC2CBC': {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 1) or (1 2 840 113549 1 12 1 2) instead', + 'description': 'pkcs-12-PBEWithSha1And40BitRC2CBC (1 2 840 113549 1 12 5 1 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 06', + 'name': 'pkcs-12-PBEWithSha1And40BitRC2CBC', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 5)}, + 'pkcs-12-PBEWithSha1And40BitRC4': {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 3) or (1 2 840 113549 1 12 1 4) instead', + 'description': 'pkcs-12-PBEWithSha1And40BitRC4 (1 2 840 113549 1 12 5 1 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 03', + 'name': 'pkcs-12-PBEWithSha1And40BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 2)}, + 'pkcs-12-PBEWithSha1AndRC4': {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 5) or (1 2 840 113549 1 12 1 6) instead', + 'description': 'pkcs-12-PBEWithSha1AndRC4 (1 2 840 113549 1 12 5 1 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 07', + 'name': 'pkcs-12-PBEWithSha1AndRC4', + 'oid': (1, 2, 840, 113549, 1, 12, 5, 1, 6)}, + 'pkcs-12-PBEWithSha1AndTripleDESCBC': {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 5) instead', + 'description': 'pkcs-12-PBEWithSha1AndTripleDESCBC (1 2 840 113549 1 12 5 1 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 04', + 'name': 'pkcs-12-PBEWithSha1AndTripleDESCBC', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 3)}, + 'pkcs-12-PbeIds': {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 1). This OID was formerly assigned as pkcs-12-OfflineTransportMode', + 'description': 'pkcs-12-PbeIds (1 2 840 113549 1 12 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 01', + 'name': 'pkcs-12-PbeIds', + 'oid': (1, 2, 840, 113549, 1, 12, 1)}, + 'pkcs-12-RSAEncryptionWith128BitRC4': {'comment': 'PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-RSAEncryptionWith128BitRC4 (1 2 840 113549 1 12 5 2 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 02 02', + 'name': 'pkcs-12-RSAEncryptionWith128BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 2, + 1)}, + 'pkcs-12-RSAEncryptionWith40BitRC4': {'comment': 'PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-RSAEncryptionWith40BitRC4 (1 2 840 113549 1 12 5 2 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 02 03', + 'name': 'pkcs-12-RSAEncryptionWith40BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 2, + 2)}, + 'pkcs-12-SignatureID': {'comment': 'PKCS #12 OID SignatureID (1 2 840 113549 1 12 5 3). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-SignatureID (1 2 840 113549 1 12 5 3). Deprecated, use the conventional PKCS #1 OIDs instead', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 03 01', + 'name': 'pkcs-12-SignatureID', + 'oid': (1, 2, 840, 113549, 1, 12, 5, 3)}, + 'pkcs-12-X509CertCRLBagID': {'comment': 'PKCS #12 CertBagID (1 2 840 113549 1 12 4). This OID was formerly assigned as pkcs-12-SDSICertBag', + 'description': 'pkcs-12-X509CertCRLBagID (1 2 840 113549 1 12 4 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 02', + 'name': 'pkcs-12-X509CertCRLBagID', + 'oid': (1, 2, 840, 113549, 1, 12, 4, 1)}, + 'pkcs-12-certAndCRLBagId': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-certAndCRLBagId (1 2 840 113549 1 12 3 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 03', + 'name': 'pkcs-12-certAndCRLBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 2)}, + 'pkcs-12-certBag': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-certBag (1 2 840 113549 1 12 10 1 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 04', + 'name': 'pkcs-12-certBag', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 3)}, + 'pkcs-12-crlBag': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-crlBag (1 2 840 113549 1 12 10 1 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 05', + 'name': 'pkcs-12-crlBag', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 4)}, + 'pkcs-12-keyBag': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-keyBag (1 2 840 113549 1 12 10 1 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 02', + 'name': 'pkcs-12-keyBag', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 1)}, + 'pkcs-12-keyBagId': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-keyBagId (1 2 840 113549 1 12 3 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 02', + 'name': 'pkcs-12-keyBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 1)}, + 'pkcs-12-pkcs-8ShroudedKeyBag': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 03', + 'name': 'pkcs-12-pkcs-8ShroudedKeyBag', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 2)}, + 'pkcs-12-pkcs-8ShroudedKeyBagId': {'comment': 'Deprecated', + 'description': 'pkcs-12-pkcs-8ShroudedKeyBagId (1 2 840 113549 1 12 3 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 04', + 'name': 'pkcs-12-pkcs-8ShroudedKeyBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 5)}, + 'pkcs-12-safeContentsBag': {'comment': 'PKCS #15', + 'description': 'pkcs-12-safeContentsBag (1 2 840 113549 1 12 10 1 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 01', + 'name': 'pkcs-12-safeContentsBag', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 6)}, + 'pkcs-12-safeContentsId': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-safeContentsId (1 2 840 113549 1 12 3 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 05', + 'name': 'pkcs-12-safeContentsId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 4)}, + 'pkcs-12-secretBag': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-secretBag (1 2 840 113549 1 12 10 1 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 06', + 'name': 'pkcs-12-secretBag', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1, 5)}, + 'pkcs-12-secretBagId': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-secretBagId (1 2 840 113549 1 12 3 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 04', + 'name': 'pkcs-12-secretBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 3)}, + 'pkcs-12BadIds': {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12BadIds (1 2 840 113549 1 12 10 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 01', + 'name': 'pkcs-12BadIds', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1)}, + 'pkcs-3': {'comment': 'PKCS #3', + 'description': 'pkcs-3 (1 2 840 113549 1 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 03 01', + 'name': 'pkcs-3', + 'oid': (1, 2, 840, 113549, 1, 3)}, + 'pkcs-5': {'comment': 'PKCS #5', + 'description': 'pkcs-5 (1 2 840 113549 1 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 01', + 'name': 'pkcs-5', + 'oid': (1, 2, 840, 113549, 1, 5)}, + 'pkcs-7': {'comment': 'PKCS #7', + 'description': 'pkcs-7 (1 2 840 113549 1 7)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 01', + 'name': 'pkcs-7', + 'oid': (1, 2, 840, 113549, 1, 7)}, + 'pkcs-9': {'comment': 'PKCS #9 (1 2 840 113549 1 9). Deprecated, use an altName extension instead', + 'description': 'pkcs-9 (1 2 840 113549 1 9)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 01', + 'name': 'pkcs-9', + 'oid': (1, 2, 840, 113549, 1, 9)}, + 'pkcs15attributes': {'comment': 'PKCS #15', + 'description': 'pkcs15attributes (1 2 840 113549 1 15 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 03', + 'name': 'pkcs15attributes', + 'oid': (1, 2, 840, 113549, 1, 15, 2)}, + 'pkcs15contentType': {'comment': 'PKCS #15 content type', + 'description': 'pkcs15contentType (1 2 840 113549 1 15 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0F 03 01', + 'name': 'pkcs15contentType', + 'oid': (1, 2, 840, 113549, 1, 15, 3)}, + 'pkcs15modules': {'comment': 'PKCS #15', + 'description': 'pkcs15modules (1 2 840 113549 1 15 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 02', + 'name': 'pkcs15modules', + 'oid': (1, 2, 840, 113549, 1, 15, 1)}, + 'pkcs5PBES2': {'comment': 'PKCS #5 v2.0', + 'description': 'pkcs5PBES2 (1 2 840 113549 1 5 13)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0E', + 'name': 'pkcs5PBES2', + 'oid': (1, 2, 840, 113549, 1, 5, 13)}, + 'pkcs5PBKDF2': {'comment': 'PKCS #5 v2.0', + 'description': 'pkcs5PBKDF2 (1 2 840 113549 1 5 12)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0D', + 'name': 'pkcs5PBKDF2', + 'oid': (1, 2, 840, 113549, 1, 5, 12)}, + 'pki': {'comment': 'Novell PKI', + 'description': 'pki (2 16 840 1 113719 1 9)', + 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 09 04', + 'name': 'pki', + 'oid': (2, 16, 840, 1, 113719, 1, 9)}, + 'pkiArchiveOptions': {'comment': 'PKIX CRMF registration control', + 'description': 'pkiArchiveOptions (1 3 6 1 5 5 7 5 1 4)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 05', + 'name': 'pkiArchiveOptions', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 4)}, + 'pkiAttributeType': {'comment': 'Novell PKI attribute type', + 'description': 'pkiAttributeType (2 16 840 1 113719 1 9 4)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 01', + 'name': 'pkiAttributeType', + 'oid': (2, 16, 840, 1, 113719, 1, 9, 4)}, + 'pkiPublicationInfo': {'comment': 'PKIX CRMF registration control', + 'description': 'pkiPublicationInfo (1 3 6 1 5 5 7 5 1 3)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 04', + 'name': 'pkiPublicationInfo', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 3)}, + 'pkiUser': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'pkiUser (2 5 6 21)', + 'hexoid': '06 03 55 06 16', + 'name': 'pkiUser', + 'oid': (2, 5, 6, 21)}, + 'pkix': {'comment': 'PKIX', + 'description': 'pkix (1 3 6 1 5 5 7)', + 'hexoid': '06 06 2B 06 01 05 05 07', + 'name': 'pkix', + 'oid': (1, 3, 6, 1, 5, 5, 7)}, + 'plProtocol': {'comment': 'Telesec module', + 'description': 'plProtocol (0 2 262 1 10 2 4)', + 'hexoid': '06 07 02 82 06 01 0A 02 04', + 'name': 'plProtocol', + 'oid': (0, 2, 262, 1, 10, 2, 4)}, + 'placeName': {'comment': 'SET field', + 'description': 'placeName (2 23 42 2 4)', + 'hexoid': '06 04 67 2A 02 05', + 'name': 'placeName', + 'oid': (2, 23, 42, 2, 4)}, + 'placeOfBirth': {'comment': 'PKIX personal data', + 'description': 'placeOfBirth (1 3 6 1 5 5 7 9 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 03', + 'name': 'placeOfBirth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 2)}, + 'policy': {'comment': 'SET policy', + 'description': 'policy (2 23 42 5)', + 'hexoid': '06 04 67 2A 05 00', + 'name': 'policy', + 'oid': (2, 23, 42, 5)}, + 'policyConstraints': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'policyConstraints (2 5 29 36)', + 'hexoid': '06 03 55 1D 25', + 'name': 'policyConstraints', + 'oid': (2, 5, 29, 36)}, + 'policyInformationFile': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'policyInformationFile (2 16 840 1 101 2 1 5 58)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 3B', + 'name': 'policyInformationFile', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 58)}, + 'policyMapping': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'policyMapping (2 5 29 5)', + 'hexoid': '06 03 55 1D 09', + 'name': 'policyMapping', + 'oid': (2, 5, 29, 5)}, + 'policyMappings': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'policyMappings (2 5 29 33)', + 'hexoid': '06 03 55 1D 23', + 'name': 'policyMappings', + 'oid': (2, 5, 29, 33)}, + 'policyQualifierIds': {'comment': 'PKIX policy qualifier', + 'description': 'policyQualifierIds (1 3 6 1 5 5 7 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 02 01', + 'name': 'policyQualifierIds', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2)}, + 'postOfficeBox': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'postOfficeBox (2 5 4 18)', + 'hexoid': '06 04 55 04 12 01', + 'name': 'postOfficeBox', + 'oid': (2, 5, 4, 18)}, + 'postalAddress': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'postalAddress (2 5 4 16)', + 'hexoid': '06 04 55 04 10 01', + 'name': 'postalAddress', + 'oid': (2, 5, 4, 16)}, + 'postalCode': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'postalCode (2 5 4 17)', + 'hexoid': '06 04 55 04 11 01', + 'name': 'postalCode', + 'oid': (2, 5, 4, 17)}, + 'ppBasis': {'comment': 'ANSI X9.62 field basis', + 'description': 'ppBasis (1 2 840 10045 1 2 3 3)', + 'hexoid': '06 0A 2A 86 48 CE 3D 01 02 03 03', + 'name': 'ppBasis', + 'oid': (1, 2, 840, 10045, 1, 2, 3, 3)}, + 'prbacCAConstraints': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'prbacCAConstraints (2 16 840 1 101 2 1 5 54)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 37', + 'name': 'prbacCAConstraints', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 54)}, + 'prbacInfo': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'prbacInfo (2 16 840 1 101 2 1 5 53)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 36', + 'name': 'prbacInfo', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 53)}, + 'preferSignedData': {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15)', + 'description': 'preferSignedData (1 2 840 113549 1 9 15 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 02', + 'name': 'preferSignedData', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 1)}, + 'preferredDeliveryMehtod': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'preferredDeliveryMehtod (2 5 4 28)', + 'hexoid': '06 03 55 04 1D', + 'name': 'preferredDeliveryMehtod', + 'oid': (2, 5, 4, 28)}, + 'preferredSymmAlg': {'comment': 'PKIX CMP information', + 'description': 'preferredSymmAlg (1 3 6 1 5 5 7 4 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 05', + 'name': 'preferredSymmAlg', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 4)}, + 'presentationAddress': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'presentationAddress (2 5 4 29)', + 'hexoid': '06 03 55 04 1E', + 'name': 'presentationAddress', + 'oid': (2, 5, 4, 29)}, + 'prime-field': {'comment': 'ANSI X9.62 field type', + 'description': 'prime-field (1 2 840 10045 1 1)', + 'hexoid': '06 07 2A 86 48 CE 3D 01 01', + 'name': 'prime-field', + 'oid': (1, 2, 840, 10045, 1, 1)}, + 'privateExtension': {'comment': 'PKIX private extension', + 'description': 'privateExtension (1 3 6 1 5 5 7 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 01', + 'name': 'privateExtension', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1)}, + 'privateKeyUsagePeriod': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'privateKeyUsagePeriod (2 5 29 16)', + 'hexoid': '06 03 55 1D 11', + 'name': 'privateKeyUsagePeriod', + 'oid': (2, 5, 29, 16)}, + 'procuration': {'comment': 'Teletrust attribute', + 'description': 'procuration (1 3 36 8 3 2)', + 'hexoid': '06 05 2B 24 08 03 03', + 'name': 'procuration', + 'oid': (1, 3, 36, 8, 3, 2)}, + 'protectedPasswordAuthentication': {'comment': 'Telesec authentication', + 'description': 'protectedPasswordAuthentication (0 2 262 1 10 1 0 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 02', + 'name': 'protectedPasswordAuthentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 2)}, + 'protocolEncrKey': {'comment': 'PKIX CRMF registration control', + 'description': 'protocolEncrKey (1 3 6 1 5 5 7 5 1 6)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 07', + 'name': 'protocolEncrKey', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 6)}, + 'protocolInformation': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'protocolInformation (2 5 4 48)', + 'hexoid': '06 03 55 04 31', + 'name': 'protocolInformation', + 'oid': (2, 5, 4, 48)}, + 'pseudonym': {'comment': 'PKIX personal data', + 'description': 'pseudonym (1 3 6 1 5 5 7 9 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 04', + 'name': 'pseudonym', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 3)}, + 'ptAdobeILL': {'comment': 'Teletrust presentation types', + 'description': 'ptAdobeILL (1 3 36 8 7 1 1)', + 'hexoid': '06 06 2B 24 08 07 01 02', + 'name': 'ptAdobeILL', + 'oid': (1, 3, 36, 8, 7, 1, 1)}, + 'ptAmiPro': {'comment': 'Teletrust presentation types', + 'description': 'ptAmiPro (1 3 36 8 7 1 2)', + 'hexoid': '06 06 2B 24 08 07 01 03', + 'name': 'ptAmiPro', + 'oid': (1, 3, 36, 8, 7, 1, 2)}, + 'ptAutoCAD': {'comment': 'Teletrust presentation types', + 'description': 'ptAutoCAD (1 3 36 8 7 1 3)', + 'hexoid': '06 06 2B 24 08 07 01 04', + 'name': 'ptAutoCAD', + 'oid': (1, 3, 36, 8, 7, 1, 3)}, + 'ptBMP': {'comment': 'Teletrust presentation types', + 'description': 'ptBMP (1 3 36 8 7 1 5)', + 'hexoid': '06 06 2B 24 08 07 01 06', + 'name': 'ptBMP', + 'oid': (1, 3, 36, 8, 7, 1, 5)}, + 'ptBinary': {'comment': 'Teletrust presentation types', + 'description': 'ptBinary (1 3 36 8 7 1 4)', + 'hexoid': '06 06 2B 24 08 07 01 05', + 'name': 'ptBinary', + 'oid': (1, 3, 36, 8, 7, 1, 4)}, + 'ptCGM': {'comment': 'Teletrust presentation types', + 'description': 'ptCGM (1 3 36 8 7 1 6)', + 'hexoid': '06 06 2B 24 08 07 01 07', + 'name': 'ptCGM', + 'oid': (1, 3, 36, 8, 7, 1, 6)}, + 'ptCorelCRT': {'comment': 'Teletrust presentation types', + 'description': 'ptCorelCRT (1 3 36 8 7 1 7)', + 'hexoid': '06 06 2B 24 08 07 01 08', + 'name': 'ptCorelCRT', + 'oid': (1, 3, 36, 8, 7, 1, 7)}, + 'ptCorelDRW': {'comment': 'Teletrust presentation types', + 'description': 'ptCorelDRW (1 3 36 8 7 1 8)', + 'hexoid': '06 06 2B 24 08 07 01 09', + 'name': 'ptCorelDRW', + 'oid': (1, 3, 36, 8, 7, 1, 8)}, + 'ptCorelEXC': {'comment': 'Teletrust presentation types', + 'description': 'ptCorelEXC (1 3 36 8 7 1 9)', + 'hexoid': '06 06 2B 24 08 07 01 0A', + 'name': 'ptCorelEXC', + 'oid': (1, 3, 36, 8, 7, 1, 9)}, + 'ptCorelPHT': {'comment': 'Teletrust presentation types', + 'description': 'ptCorelPHT (1 3 36 8 7 1 10)', + 'hexoid': '06 06 2B 24 08 07 01 0B', + 'name': 'ptCorelPHT', + 'oid': (1, 3, 36, 8, 7, 1, 10)}, + 'ptDVI': {'comment': 'Teletrust presentation types', + 'description': 'ptDVI (1 3 36 8 7 1 12)', + 'hexoid': '06 06 2B 24 08 07 01 0D', + 'name': 'ptDVI', + 'oid': (1, 3, 36, 8, 7, 1, 12)}, + 'ptDraw': {'comment': 'Teletrust presentation types', + 'description': 'ptDraw (1 3 36 8 7 1 11)', + 'hexoid': '06 06 2B 24 08 07 01 0C', + 'name': 'ptDraw', + 'oid': (1, 3, 36, 8, 7, 1, 11)}, + 'ptEPS': {'comment': 'Teletrust presentation types', + 'description': 'ptEPS (1 3 36 8 7 1 13)', + 'hexoid': '06 06 2B 24 08 07 01 0E', + 'name': 'ptEPS', + 'oid': (1, 3, 36, 8, 7, 1, 13)}, + 'ptExcel': {'comment': 'Teletrust presentation types', + 'description': 'ptExcel (1 3 36 8 7 1 14)', + 'hexoid': '06 06 2B 24 08 07 01 0F', + 'name': 'ptExcel', + 'oid': (1, 3, 36, 8, 7, 1, 14)}, + 'ptGEM': {'comment': 'Teletrust presentation types', + 'description': 'ptGEM (1 3 36 8 7 1 15)', + 'hexoid': '06 06 2B 24 08 07 01 10', + 'name': 'ptGEM', + 'oid': (1, 3, 36, 8, 7, 1, 15)}, + 'ptGIF': {'comment': 'Teletrust presentation types', + 'description': 'ptGIF (1 3 36 8 7 1 16)', + 'hexoid': '06 06 2B 24 08 07 01 11', + 'name': 'ptGIF', + 'oid': (1, 3, 36, 8, 7, 1, 16)}, + 'ptHPGL': {'comment': 'Teletrust presentation types', + 'description': 'ptHPGL (1 3 36 8 7 1 17)', + 'hexoid': '06 06 2B 24 08 07 01 12', + 'name': 'ptHPGL', + 'oid': (1, 3, 36, 8, 7, 1, 17)}, + 'ptJPEG': {'comment': 'Teletrust presentation types', + 'description': 'ptJPEG (1 3 36 8 7 1 18)', + 'hexoid': '06 06 2B 24 08 07 01 13', + 'name': 'ptJPEG', + 'oid': (1, 3, 36, 8, 7, 1, 18)}, + 'ptKodak': {'comment': 'Teletrust presentation types', + 'description': 'ptKodak (1 3 36 8 7 1 19)', + 'hexoid': '06 06 2B 24 08 07 01 14', + 'name': 'ptKodak', + 'oid': (1, 3, 36, 8, 7, 1, 19)}, + 'ptLaTeX': {'comment': 'Teletrust presentation types', + 'description': 'ptLaTeX (1 3 36 8 7 1 20)', + 'hexoid': '06 06 2B 24 08 07 01 15', + 'name': 'ptLaTeX', + 'oid': (1, 3, 36, 8, 7, 1, 20)}, + 'ptLotus': {'comment': 'Teletrust presentation types', + 'description': 'ptLotus (1 3 36 8 7 1 21)', + 'hexoid': '06 06 2B 24 08 07 01 16', + 'name': 'ptLotus', + 'oid': (1, 3, 36, 8, 7, 1, 21)}, + 'ptLotusPIC': {'comment': 'Teletrust presentation types', + 'description': 'ptLotusPIC (1 3 36 8 7 1 22)', + 'hexoid': '06 06 2B 24 08 07 01 17', + 'name': 'ptLotusPIC', + 'oid': (1, 3, 36, 8, 7, 1, 22)}, + 'ptMSWfD': {'comment': 'Teletrust presentation types', + 'description': 'ptMSWfD (1 3 36 8 7 1 25)', + 'hexoid': '06 06 2B 24 08 07 01 1A', + 'name': 'ptMSWfD', + 'oid': (1, 3, 36, 8, 7, 1, 25)}, + 'ptMSWord': {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord (1 3 36 8 7 1 26)', + 'hexoid': '06 06 2B 24 08 07 01 1B', + 'name': 'ptMSWord', + 'oid': (1, 3, 36, 8, 7, 1, 26)}, + 'ptMSWord2': {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord2 (1 3 36 8 7 1 27)', + 'hexoid': '06 06 2B 24 08 07 01 1C', + 'name': 'ptMSWord2', + 'oid': (1, 3, 36, 8, 7, 1, 27)}, + 'ptMSWord6': {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord6 (1 3 36 8 7 1 28)', + 'hexoid': '06 06 2B 24 08 07 01 1D', + 'name': 'ptMSWord6', + 'oid': (1, 3, 36, 8, 7, 1, 28)}, + 'ptMSWord8': {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord8 (1 3 36 8 7 1 29)', + 'hexoid': '06 06 2B 24 08 07 01 1E', + 'name': 'ptMSWord8', + 'oid': (1, 3, 36, 8, 7, 1, 29)}, + 'ptMacPICT': {'comment': 'Teletrust presentation types', + 'description': 'ptMacPICT (1 3 36 8 7 1 23)', + 'hexoid': '06 06 2B 24 08 07 01 18', + 'name': 'ptMacPICT', + 'oid': (1, 3, 36, 8, 7, 1, 23)}, + 'ptMacWord': {'comment': 'Teletrust presentation types', + 'description': 'ptMacWord (1 3 36 8 7 1 24)', + 'hexoid': '06 06 2B 24 08 07 01 19', + 'name': 'ptMacWord', + 'oid': (1, 3, 36, 8, 7, 1, 24)}, + 'ptPDF': {'comment': 'Teletrust presentation types', + 'description': 'ptPDF (1 3 36 8 7 1 30)', + 'hexoid': '06 06 2B 24 08 07 01 1F', + 'name': 'ptPDF', + 'oid': (1, 3, 36, 8, 7, 1, 30)}, + 'ptPIF': {'comment': 'Teletrust presentation types', + 'description': 'ptPIF (1 3 36 8 7 1 31)', + 'hexoid': '06 06 2B 24 08 07 01 20', + 'name': 'ptPIF', + 'oid': (1, 3, 36, 8, 7, 1, 31)}, + 'ptPostscript': {'comment': 'Teletrust presentation types', + 'description': 'ptPostscript (1 3 36 8 7 1 32)', + 'hexoid': '06 06 2B 24 08 07 01 21', + 'name': 'ptPostscript', + 'oid': (1, 3, 36, 8, 7, 1, 32)}, + 'ptRTF': {'comment': 'Teletrust presentation types', + 'description': 'ptRTF (1 3 36 8 7 1 33)', + 'hexoid': '06 06 2B 24 08 07 01 22', + 'name': 'ptRTF', + 'oid': (1, 3, 36, 8, 7, 1, 33)}, + 'ptSCITEX': {'comment': 'Teletrust presentation types', + 'description': 'ptSCITEX (1 3 36 8 7 1 34)', + 'hexoid': '06 06 2B 24 08 07 01 23', + 'name': 'ptSCITEX', + 'oid': (1, 3, 36, 8, 7, 1, 34)}, + 'ptTAR': {'comment': 'Teletrust presentation types', + 'description': 'ptTAR (1 3 36 8 7 1 35)', + 'hexoid': '06 06 2B 24 08 07 01 24', + 'name': 'ptTAR', + 'oid': (1, 3, 36, 8, 7, 1, 35)}, + 'ptTIFF': {'comment': 'Teletrust presentation types', + 'description': 'ptTIFF (1 3 36 8 7 1 39)', + 'hexoid': '06 06 2B 24 08 07 01 28', + 'name': 'ptTIFF', + 'oid': (1, 3, 36, 8, 7, 1, 39)}, + 'ptTIFF-FC': {'comment': 'Teletrust presentation types', + 'description': 'ptTIFF-FC (1 3 36 8 7 1 40)', + 'hexoid': '06 06 2B 24 08 07 01 29', + 'name': 'ptTIFF-FC', + 'oid': (1, 3, 36, 8, 7, 1, 40)}, + 'ptTarga': {'comment': 'Teletrust presentation types', + 'description': 'ptTarga (1 3 36 8 7 1 36)', + 'hexoid': '06 06 2B 24 08 07 01 25', + 'name': 'ptTarga', + 'oid': (1, 3, 36, 8, 7, 1, 36)}, + 'ptTeX': {'comment': 'Teletrust presentation types', + 'description': 'ptTeX (1 3 36 8 7 1 37)', + 'hexoid': '06 06 2B 24 08 07 01 26', + 'name': 'ptTeX', + 'oid': (1, 3, 36, 8, 7, 1, 37)}, + 'ptText': {'comment': 'Teletrust presentation types', + 'description': 'ptText (1 3 36 8 7 1 38)', + 'hexoid': '06 06 2B 24 08 07 01 27', + 'name': 'ptText', + 'oid': (1, 3, 36, 8, 7, 1, 38)}, + 'ptUID': {'comment': 'Teletrust presentation types', + 'description': 'ptUID (1 3 36 8 7 1 41)', + 'hexoid': '06 06 2B 24 08 07 01 2A', + 'name': 'ptUID', + 'oid': (1, 3, 36, 8, 7, 1, 41)}, + 'ptUUEncode': {'comment': 'Teletrust presentation types', + 'description': 'ptUUEncode (1 3 36 8 7 1 42)', + 'hexoid': '06 06 2B 24 08 07 01 2B', + 'name': 'ptUUEncode', + 'oid': (1, 3, 36, 8, 7, 1, 42)}, + 'ptWMF': {'comment': 'Teletrust presentation types', + 'description': 'ptWMF (1 3 36 8 7 1 43)', + 'hexoid': '06 06 2B 24 08 07 01 2C', + 'name': 'ptWMF', + 'oid': (1, 3, 36, 8, 7, 1, 43)}, + 'ptWPGrph': {'comment': 'Thawte', + 'description': 'ptWPGrph (1 3 36 8 7 1 45)', + 'hexoid': '06 04 2B 65 01 04', + 'name': 'ptWPGrph', + 'oid': (1, 3, 36, 8, 7, 1, 45)}, + 'ptWordPerfect': {'comment': 'Teletrust presentation types', + 'description': 'ptWordPerfect (1 3 36 8 7 1 44)', + 'hexoid': '06 06 2B 24 08 07 01 2D', + 'name': 'ptWordPerfect', + 'oid': (1, 3, 36, 8, 7, 1, 44)}, + 'publicKey': {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'publicKey (1 2 840 113549 1 9 12)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0D', + 'name': 'publicKey', + 'oid': (1, 2, 840, 113549, 1, 9, 12)}, + 'publicKeyDirectory': {'comment': 'Telesec attribute', + 'description': 'publicKeyDirectory (0 2 262 1 10 7 8)', + 'hexoid': '06 07 02 82 06 01 0A 07 08', + 'name': 'publicKeyDirectory', + 'oid': (0, 2, 262, 1, 10, 7, 8)}, + 'publicKeyType': {'comment': 'ANSI X9.62', + 'description': 'publicKeyType (1 2 840 10045 2)', + 'hexoid': '06 06 2A 86 48 CE 3D 02', + 'name': 'publicKeyType', + 'oid': (1, 2, 840, 10045, 2)}, + 'rc2BSafe1Cbc': {'comment': 'Novell digest algorithm', + 'description': 'rc2BSafe1Cbc (2 16 840 1 113719 1 2 8 92)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5F', + 'name': 'rc2BSafe1Cbc', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 92)}, + 'rc2CBC': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc2CBC (1 2 840 113549 3 2)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 03', + 'name': 'rc2CBC', + 'oid': (1, 2, 840, 113549, 3, 2)}, + 'rc2CbcPad': {'comment': 'Novell digest algorithm', + 'description': 'rc2CbcPad (2 16 840 1 113719 1 2 8 69)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 52', + 'name': 'rc2CbcPad', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 69)}, + 'rc2ECB': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc2ECB (1 2 840 113549 3 3)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 04', + 'name': 'rc2ECB', + 'oid': (1, 2, 840, 113549, 3, 3)}, + 'rc4': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc4 (1 2 840 113549 3 4)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 05', + 'name': 'rc4', + 'oid': (1, 2, 840, 113549, 3, 4)}, + 'rc4WithMAC': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc4WithMAC (1 2 840 113549 3 5)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 06', + 'name': 'rc4WithMAC', + 'oid': (1, 2, 840, 113549, 3, 5)}, + 'rc5-CBCPad': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3). Formerly called CDMFCBCPad', + 'description': 'rc5-CBCPad (1 2 840 113549 3 9)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 0A', + 'name': 'rc5-CBCPad', + 'oid': (1, 2, 840, 113549, 3, 9)}, + 'rc5CBC': {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc5CBC (1 2 840 113549 3 8)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 09', + 'name': 'rc5CBC', + 'oid': (1, 2, 840, 113549, 3, 8)}, + 'rc5CbcPad': {'comment': 'Novell signature algorithm', + 'description': 'rc5CbcPad (2 16 840 1 113719 1 2 8 28)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1D', + 'name': 'rc5CbcPad', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 28)}, + 'receipt': {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 4) instead', + 'description': 'receipt (1 2 840 113549 1 9 15 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 05', + 'name': 'receipt', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 4)}, + 'receiptRequest': {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 1 1) instead', + 'description': 'receiptRequest (1 2 840 113549 1 9 15 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 04', + 'name': 'receiptRequest', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 3)}, + 'reedSolomon': {'comment': 'Telesec mechanism', + 'description': 'reedSolomon (0 2 262 1 10 1 4 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 04 01', + 'name': 'reedSolomon', + 'oid': (0, 2, 262, 1, 10, 1, 4, 1)}, + 'regCtrl': {'comment': 'PKIX CRMF registration control', + 'description': 'regCtrl (1 3 6 1 5 5 7 5 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 01', + 'name': 'regCtrl', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1)}, + 'regToken': {'comment': 'PKIX CRMF registration control', + 'description': 'regToken (1 3 6 1 5 5 7 5 1 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 02', + 'name': 'regToken', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 1)}, + 'registeredAddress': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'registeredAddress (2 5 4 26)', + 'hexoid': '06 03 55 04 1B', + 'name': 'registeredAddress', + 'oid': (2, 5, 4, 26)}, + 'reject': {'comment': 'ANSI X9.57 hold instruction', + 'description': 'reject (1 2 840 10040 2 3)', + 'hexoid': '06 07 2A 86 48 CE 38 02 03', + 'name': 'reject', + 'oid': (1, 2, 840, 10040, 2, 3)}, + 'relianceLimit': {'comment': 'Netscape', + 'description': 'relianceLimit (2 16 840 1 113719 1 9 4 2)', + 'hexoid': '06 08 60 86 48 01 86 F8 42 01', + 'name': 'relianceLimit', + 'oid': (2, 16, 840, 1, 113719, 1, 9, 4, 2)}, + 'requestedCertificate': {'comment': 'Teletrust attribute', + 'description': 'requestedCertificate (1 3 36 8 3 10)', + 'hexoid': '06 05 2B 24 08 03 0B', + 'name': 'requestedCertificate', + 'oid': (1, 3, 36, 8, 3, 10)}, + 'residentialPerson': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'residentialPerson (2 5 6 10)', + 'hexoid': '06 03 55 06 0B', + 'name': 'residentialPerson', + 'oid': (2, 5, 6, 10)}, + 'restriction': {'comment': 'Teletrust signature algorithm', + 'description': 'restriction (1 3 36 8 4 8)', + 'hexoid': '06 07 2B 24 08 05 01 01 01', + 'name': 'restriction', + 'oid': (1, 3, 36, 8, 4, 8)}, + 'retrieveIfAllowed': {'comment': 'Teletrust attribute', + 'description': 'retrieveIfAllowed (1 3 36 8 3 9)', + 'hexoid': '06 05 2B 24 08 03 0A', + 'name': 'retrieveIfAllowed', + 'oid': (1, 3, 36, 8, 3, 9)}, + 'revPassphrase': {'comment': 'PKIX CMP information', + 'description': 'revPassphrase (1 3 6 1 5 5 7 4 12)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0D', + 'name': 'revPassphrase', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 12)}, + 'revocationFlag': {'comment': 'Telesec attribute', + 'description': 'revocationFlag (0 2 262 1 10 7 34)', + 'hexoid': '06 07 02 82 06 01 0A 07 22', + 'name': 'revocationFlag', + 'oid': (0, 2, 262, 1, 10, 7, 34)}, + 'rfc822Mailbox': {'comment': 'Some oddball X.500 attribute collection', + 'description': 'rfc822Mailbox (0 9 2342 19200300 100 1 3)', + 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 03', + 'name': 'rfc822Mailbox', + 'oid': (0, 9, 2342, 19200300, 100, 1, 3)}, + 'rfc822MessageFormat': {'comment': 'SDN.700 INFOSEC format', + 'description': 'rfc822MessageFormat (2 16 840 1 101 2 1 2 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 02', + 'name': 'rfc822MessageFormat', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 1)}, + 'ripemd128': {'comment': 'Telesec one-way function', + 'description': 'ripemd128 (0 2 262 1 10 1 3 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 05', + 'name': 'ripemd128', + 'oid': (0, 2, 262, 1, 10, 1, 3, 5)}, + 'ripemd160': {'comment': 'Telesec one-way function', + 'description': 'ripemd160 (0 2 262 1 10 1 3 8)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 08', + 'name': 'ripemd160', + 'oid': (0, 2, 262, 1, 10, 1, 3, 8)}, + 'ripemd160WithRSAAndTelekomSignatureStandard': {'comment': 'Telesec mechanism', + 'description': 'ripemd160WithRSAAndTelekomSignatureStandard (0 2 262 1 10 1 1 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 05', + 'name': 'ripemd160WithRSAAndTelekomSignatureStandard', + 'oid': (0, + 2, + 262, + 1, + 10, + 1, + 1, + 5)}, + 'ripemd160WithRSAEncryption': {'comment': 'Obsolete BSAFE OID', + 'description': 'ripemd160WithRSAEncryption (1 2 840 113549 1 1 6)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 01 01', + 'name': 'ripemd160WithRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 6)}, + 'ripemd256': {'comment': 'Teletrust hash algorithm', + 'description': 'ripemd256 (1 3 36 3 2 3)', + 'hexoid': '06 05 2B 24 03 02 04', + 'name': 'ripemd256', + 'oid': (1, 3, 36, 3, 2, 3)}, + 'role': {'comment': 'PKIX attribute certificate extension', + 'description': 'role (1 3 6 1 5 5 7 10 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 06', + 'name': 'role', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 5)}, + 'roleOccupant': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'roleOccupant (2 5 4 33)', + 'hexoid': '06 03 55 04 22', + 'name': 'roleOccupant', + 'oid': (2, 5, 4, 33)}, + 'root': {'comment': 'SET', + 'description': 'root (2 23 42 5 0)', + 'hexoid': '06 03 67 2A 06', + 'name': 'root', + 'oid': (2, 23, 42, 5, 0)}, + 'rootKeyThumb': {'comment': 'SET cert attribute', + 'description': 'rootKeyThumb (2 23 42 3 0 0)', + 'hexoid': '06 05 67 2A 03 00 01', + 'name': 'rootKeyThumb', + 'oid': (2, 23, 42, 3, 0, 0)}, + 'rsa': {'comment': 'Oddball OIW OID', + 'description': 'rsa (1 3 14 3 2 1 1)', + 'hexoid': '06 05 2B 0E 03 02 02', + 'name': 'rsa', + 'oid': (1, 3, 14, 3, 2, 1, 1)}, + 'rsaEncryption': {'comment': 'PKCS #1', + 'description': 'rsaEncryption (1 2 840 113549 1 1 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 02', + 'name': 'rsaEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 1)}, + 'rsaEncryptionBsafe1': {'comment': 'Novell encryption algorithm', + 'description': 'rsaEncryptionBsafe1 (2 16 840 1 113719 1 2 8 131)', + 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 04', + 'name': 'rsaEncryptionBsafe1', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 131)}, + 'rsaEncryptionWithlmod512expe17': {'comment': 'Teletrust encryption algorithm', + 'description': 'rsaEncryptionWithlmod512expe17 (1 3 36 3 1 4 512 17)', + 'hexoid': '06 05 2B 24 03 01 05', + 'name': 'rsaEncryptionWithlmod512expe17', + 'oid': (1, 3, 36, 3, 1, 4, 512, 17)}, + 'rsaIndicateRIPEMD160': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaIndicateRIPEMD160 (1 3 36 8 5 1 1 2)', + 'hexoid': '06 07 2B 24 08 05 01 01 03', + 'name': 'rsaIndicateRIPEMD160', + 'oid': (1, 3, 36, 8, 5, 1, 1, 2)}, + 'rsaIndicateSHA1': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaIndicateSHA1 (1 3 36 8 5 1 1 1)', + 'hexoid': '06 07 2B 24 08 05 01 01 02', + 'name': 'rsaIndicateSHA1', + 'oid': (1, 3, 36, 8, 5, 1, 1, 1)}, + 'rsaKeyTransport': {'comment': 'Oddball OIW OID', + 'description': 'rsaKeyTransport (1 3 14 3 2 22)', + 'hexoid': '06 05 2B 0E 03 02 17', + 'name': 'rsaKeyTransport', + 'oid': (1, 3, 14, 3, 2, 22)}, + 'rsaSignature': {'comment': 'Oddball OIW OID. Incorrectly used by JDK 1.1 in place of (1 3 14 3 2 27)', + 'description': 'rsaSignature (1 3 14 3 2 11)', + 'hexoid': '06 05 2B 0E 03 02 0D', + 'name': 'rsaSignature', + 'oid': (1, 3, 14, 3, 2, 11)}, + 'rsaSignatureWithrimpemd128': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithrimpemd128 (1 3 36 3 3 1 3)', + 'hexoid': '06 06 2B 24 03 03 01 04', + 'name': 'rsaSignatureWithrimpemd128', + 'oid': (1, 3, 36, 3, 3, 1, 3)}, + 'rsaSignatureWithrimpemd256': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithrimpemd256 (1 3 36 3 3 1 4)', + 'hexoid': '06 05 2B 24 03 03 02', + 'name': 'rsaSignatureWithrimpemd256', + 'oid': (1, 3, 36, 3, 3, 1, 4)}, + 'rsaSignatureWithripemd160': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160 (1 3 36 3 3 1 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 02', + 'name': 'rsaSignatureWithripemd160', + 'oid': (1, 3, 36, 3, 3, 1, 2)}, + 'rsaSignatureWithripemd160_l1024_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l11 (1 3 36 3 3 1 2 1024 11)', + 'hexoid': '06 06 2B 24 03 03 01 03', + 'name': 'rsaSignatureWithripemd160_l1024_l11', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 1024, + 11)}, + 'rsaSignatureWithripemd160_l1024_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l2 (1 3 36 3 3 1 2 1024 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 03', + 'name': 'rsaSignatureWithripemd160_l1024_l2', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 1024, + 2)}, + 'rsaSignatureWithripemd160_l1024_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l3 (1 3 36 3 3 1 2 1024 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 05', + 'name': 'rsaSignatureWithripemd160_l1024_l3', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 1024, + 3)}, + 'rsaSignatureWithripemd160_l1024_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l5 (1 3 36 3 3 1 2 1024 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 09', + 'name': 'rsaSignatureWithripemd160_l1024_l5', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 1024, + 5)}, + 'rsaSignatureWithripemd160_l1024_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l9 (1 3 36 3 3 1 2 1024 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 11', + 'name': 'rsaSignatureWithripemd160_l1024_l9', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 1024, + 9)}, + 'rsaSignatureWithripemd160_l512_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l11 (1 3 36 3 3 1 2 512 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 11', + 'name': 'rsaSignatureWithripemd160_l512_l11', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 512, + 11)}, + 'rsaSignatureWithripemd160_l512_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l2 (1 3 36 3 3 1 2 512 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 02', + 'name': 'rsaSignatureWithripemd160_l512_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 2)}, + 'rsaSignatureWithripemd160_l512_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l3 (1 3 36 3 3 1 2 512 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 03', + 'name': 'rsaSignatureWithripemd160_l512_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 3)}, + 'rsaSignatureWithripemd160_l512_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l5 (1 3 36 3 3 1 2 512 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 05', + 'name': 'rsaSignatureWithripemd160_l512_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 5)}, + 'rsaSignatureWithripemd160_l512_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l9 (1 3 36 3 3 1 2 512 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 09', + 'name': 'rsaSignatureWithripemd160_l512_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 9)}, + 'rsaSignatureWithripemd160_l640_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l11 (1 3 36 3 3 1 2 640 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 11', + 'name': 'rsaSignatureWithripemd160_l640_l11', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 640, + 11)}, + 'rsaSignatureWithripemd160_l640_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l2 (1 3 36 3 3 1 2 640 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 02', + 'name': 'rsaSignatureWithripemd160_l640_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 2)}, + 'rsaSignatureWithripemd160_l640_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l3 (1 3 36 3 3 1 2 640 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 03', + 'name': 'rsaSignatureWithripemd160_l640_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 3)}, + 'rsaSignatureWithripemd160_l640_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l5 (1 3 36 3 3 1 2 640 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 05', + 'name': 'rsaSignatureWithripemd160_l640_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 5)}, + 'rsaSignatureWithripemd160_l640_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l9 (1 3 36 3 3 1 2 640 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 09', + 'name': 'rsaSignatureWithripemd160_l640_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 9)}, + 'rsaSignatureWithripemd160_l768_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l11 (1 3 36 3 3 1 2 768 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 11', + 'name': 'rsaSignatureWithripemd160_l768_l11', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 768, + 11)}, + 'rsaSignatureWithripemd160_l768_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l2 (1 3 36 3 3 1 2 768 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 02', + 'name': 'rsaSignatureWithripemd160_l768_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 2)}, + 'rsaSignatureWithripemd160_l768_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l3 (1 3 36 3 3 1 2 768 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 03', + 'name': 'rsaSignatureWithripemd160_l768_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 3)}, + 'rsaSignatureWithripemd160_l768_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l5 (1 3 36 3 3 1 2 768 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 05', + 'name': 'rsaSignatureWithripemd160_l768_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 5)}, + 'rsaSignatureWithripemd160_l768_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l9 (1 3 36 3 3 1 2 768 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 09', + 'name': 'rsaSignatureWithripemd160_l768_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 9)}, + 'rsaSignatureWithripemd160_l896_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l11 (1 3 36 3 3 1 2 896 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 11', + 'name': 'rsaSignatureWithripemd160_l896_l11', + 'oid': (1, + 3, + 36, + 3, + 3, + 1, + 2, + 896, + 11)}, + 'rsaSignatureWithripemd160_l896_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l2 (1 3 36 3 3 1 2 892 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 02', + 'name': 'rsaSignatureWithripemd160_l896_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 892, 2)}, + 'rsaSignatureWithripemd160_l896_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l3 (1 3 36 3 3 1 2 896 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 03', + 'name': 'rsaSignatureWithripemd160_l896_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 3)}, + 'rsaSignatureWithripemd160_l896_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l5 (1 3 36 3 3 1 2 896 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 05', + 'name': 'rsaSignatureWithripemd160_l896_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 5)}, + 'rsaSignatureWithripemd160_l896_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l9 (1 3 36 3 3 1 2 896 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 09', + 'name': 'rsaSignatureWithripemd160_l896_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 9)}, + 'rsaSignatureWithsha1': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1 (1 3 36 3 3 1 1)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 02', + 'name': 'rsaSignatureWithsha1', + 'oid': (1, 3, 36, 3, 3, 1, 1)}, + 'rsaSignatureWithsha1_l1024_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l11 (1 3 36 3 3 1 1 1024 11)', + 'hexoid': '06 06 2B 24 03 03 01 02', + 'name': 'rsaSignatureWithsha1_l1024_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 11)}, + 'rsaSignatureWithsha1_l1024_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l2 (1 3 36 3 3 1 1 1024 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 03', + 'name': 'rsaSignatureWithsha1_l1024_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 2)}, + 'rsaSignatureWithsha1_l1024_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l3 (1 3 36 3 3 1 1 1024 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 05', + 'name': 'rsaSignatureWithsha1_l1024_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 3)}, + 'rsaSignatureWithsha1_l1024_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l5 (1 3 36 3 3 1 1 1024 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 09', + 'name': 'rsaSignatureWithsha1_l1024_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 5)}, + 'rsaSignatureWithsha1_l1024_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l9 (1 3 36 3 3 1 1 1024 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 11', + 'name': 'rsaSignatureWithsha1_l1024_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 9)}, + 'rsaSignatureWithsha1_l512_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l11 (1 3 36 3 3 1 1 512 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 11', + 'name': 'rsaSignatureWithsha1_l512_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 11)}, + 'rsaSignatureWithsha1_l512_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l2 (1 3 36 3 3 1 1 512 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 02', + 'name': 'rsaSignatureWithsha1_l512_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 2)}, + 'rsaSignatureWithsha1_l512_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l3 (1 3 36 3 3 1 1 512 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 03', + 'name': 'rsaSignatureWithsha1_l512_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 3)}, + 'rsaSignatureWithsha1_l512_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l5 (1 3 36 3 3 1 1 512 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 05', + 'name': 'rsaSignatureWithsha1_l512_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 5)}, + 'rsaSignatureWithsha1_l512_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l9 (1 3 36 3 3 1 1 512 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 09', + 'name': 'rsaSignatureWithsha1_l512_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 9)}, + 'rsaSignatureWithsha1_l640_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l11 (1 3 36 3 3 1 1 640 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 11', + 'name': 'rsaSignatureWithsha1_l640_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 11)}, + 'rsaSignatureWithsha1_l640_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l2 (1 3 36 3 3 1 1 640 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 02', + 'name': 'rsaSignatureWithsha1_l640_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 2)}, + 'rsaSignatureWithsha1_l640_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l3 (1 3 36 3 3 1 1 640 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 03', + 'name': 'rsaSignatureWithsha1_l640_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 3)}, + 'rsaSignatureWithsha1_l640_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l5 (1 3 36 3 3 1 1 640 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 05', + 'name': 'rsaSignatureWithsha1_l640_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 5)}, + 'rsaSignatureWithsha1_l640_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l9 (1 3 36 3 3 1 1 640 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 09', + 'name': 'rsaSignatureWithsha1_l640_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 9)}, + 'rsaSignatureWithsha1_l768_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l11 (1 3 36 3 3 1 1 768 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 11', + 'name': 'rsaSignatureWithsha1_l768_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 11)}, + 'rsaSignatureWithsha1_l768_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l2 (1 3 36 3 3 1 1 768 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 02', + 'name': 'rsaSignatureWithsha1_l768_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 2)}, + 'rsaSignatureWithsha1_l768_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l3 (1 3 36 3 3 1 1 768 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 03', + 'name': 'rsaSignatureWithsha1_l768_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 3)}, + 'rsaSignatureWithsha1_l768_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l5 (1 3 36 3 3 1 1 768 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 05', + 'name': 'rsaSignatureWithsha1_l768_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 5)}, + 'rsaSignatureWithsha1_l768_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l9 (1 3 36 3 3 1 1 768 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 09', + 'name': 'rsaSignatureWithsha1_l768_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 9)}, + 'rsaSignatureWithsha1_l896_l11': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l11 (1 3 36 3 3 1 1 896 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 11', + 'name': 'rsaSignatureWithsha1_l896_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 11)}, + 'rsaSignatureWithsha1_l896_l2': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l2 (1 3 36 3 3 1 1 892 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 02', + 'name': 'rsaSignatureWithsha1_l896_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 892, 2)}, + 'rsaSignatureWithsha1_l896_l3': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l3 (1 3 36 3 3 1 1 896 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 03', + 'name': 'rsaSignatureWithsha1_l896_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 3)}, + 'rsaSignatureWithsha1_l896_l5': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l5 (1 3 36 3 3 1 1 896 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 05', + 'name': 'rsaSignatureWithsha1_l896_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 5)}, + 'rsaSignatureWithsha1_l896_l9': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l9 (1 3 36 3 3 1 1 896 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 09', + 'name': 'rsaSignatureWithsha1_l896_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 9)}, + 'rsaTelesec': {'comment': 'Telesec encryption', + 'description': 'rsaTelesec (0 2 262 1 10 1 2 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 01', + 'name': 'rsaTelesec', + 'oid': (0, 2, 262, 1, 10, 1, 2, 1)}, + 'rsaWithRIPEMD160': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaWithRIPEMD160 (1 3 36 8 5 1 1 4)', + 'hexoid': '06 07 2B 24 08 05 01 02 01', + 'name': 'rsaWithRIPEMD160', + 'oid': (1, 3, 36, 8, 5, 1, 1, 4)}, + 'rsaWithSHA1': {'comment': 'Teletrust signature algorithm', + 'description': 'rsaWithSHA1 (1 3 36 8 5 1 1 3)', + 'hexoid': '06 07 2B 24 08 05 01 01 04', + 'name': 'rsaWithSHA1', + 'oid': (1, 3, 36, 8, 5, 1, 1, 3)}, + 'sMIMECapabilities': {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15)', + 'description': 'sMIMECapabilities (1 2 840 113549 1 9 15)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 01', + 'name': 'sMIMECapabilities', + 'oid': (1, 2, 840, 113549, 1, 9, 15)}, + 'sadmib': {'comment': 'Telesec module', + 'description': 'sadmib (0 2 262 1 10 2 9)', + 'hexoid': '06 07 02 82 06 01 0A 02 09', + 'name': 'sadmib', + 'oid': (0, 2, 262, 1, 10, 2, 9)}, + 'sbgp-autonomousSysNum': {'comment': 'PKIX private extension', + 'description': 'sbgp-autonomousSysNum (1 3 6 1 5 5 7 1 8)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 09', + 'name': 'sbgp-autonomousSysNum', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 8)}, + 'sbgp-ipAddrBlock': {'comment': 'PKIX private extension', + 'description': 'sbgp-ipAddrBlock (1 3 6 1 5 5 7 1 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 08', + 'name': 'sbgp-ipAddrBlock', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 7)}, + 'sbgp-routerIdentifier': {'comment': 'PKIX private extension', + 'description': 'sbgp-routerIdentifier (1 3 6 1 5 5 7 1 9)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 0A', + 'name': 'sbgp-routerIdentifier', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 9)}, + 'sbgpCertAAServerAuth': {'comment': 'PKIX', + 'description': 'sbgpCertAAServerAuth (1 3 6 1 5 5 7 3 11)', + 'hexoid': '06 07 2B 06 01 05 05 07 04', + 'name': 'sbgpCertAAServerAuth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 11)}, + 'scheme': {'comment': 'ANSI X9.42', + 'description': 'scheme (1 2 840 10046 3)', + 'hexoid': '06 06 2A 86 48 CE 3E 03', + 'name': 'scheme', + 'oid': (1, 2, 840, 10046, 3)}, + 'sdnsCASignatureCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsCASignatureCertificate (2 16 840 1 101 2 1 5 8)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0A', + 'name': 'sdnsCASignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 8)}, + 'sdnsCKL': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'sdnsCKL (2 16 840 1 101 2 1 5 41)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2A', + 'name': 'sdnsCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 41)}, + 'sdnsConfidentialityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicConfidentialityAlgorithm', + 'description': 'sdnsConfidentialityAlgorithm (2 16 840 1 101 2 1 1 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 04', + 'name': 'sdnsConfidentialityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 3)}, + 'sdnsIntegrityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicIntegrityAlgorithm', + 'description': 'sdnsIntegrityAlgorithm (2 16 840 1 101 2 1 1 5)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 06', + 'name': 'sdnsIntegrityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 5)}, + 'sdnsKMandSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandSigAlgorithm', + 'description': 'sdnsKMandSigAlgorithm (2 16 840 1 101 2 1 1 11)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0C', + 'name': 'sdnsKMandSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 11)}, + 'sdnsKMandSigCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsKMandSigCertificate (2 16 840 1 101 2 1 5 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 04', + 'name': 'sdnsKMandSigCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 3)}, + 'sdnsKeyManagementAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyManagementAlgorithm', + 'description': 'sdnsKeyManagementAlgorithm (2 16 840 1 101 2 1 1 9)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0A', + 'name': 'sdnsKeyManagementAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 9)}, + 'sdnsKeyManagementCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsKeyManagementCertificate (2 16 840 1 101 2 1 5 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 02', + 'name': 'sdnsKeyManagementCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 1)}, + 'sdnsPRBAC': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'sdnsPRBAC (2 16 840 1 101 2 1 3 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 03', + 'name': 'sdnsPRBAC', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 2)}, + 'sdnsSecurityPolicy': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'sdnsSecurityPolicy (2 16 840 1 101 2 1 3 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 02', + 'name': 'sdnsSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 1)}, + 'sdnsSignatureAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicSignatureAlgorithm, this OID is better known as dsaWithSHA-1.', + 'description': 'sdnsSignatureAlgorithm (2 16 840 1 101 2 1 1 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 02', + 'name': 'sdnsSignatureAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 1)}, + 'sdnsSignatureCKL': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsSignatureCKL (2 16 840 1 101 2 1 5 43)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2D', + 'name': 'sdnsSignatureCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 43)}, + 'sdnsTokenProtectionAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly know as mosaicTokenProtectionAlgorithm', + 'description': 'sdnsTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 7)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 08', + 'name': 'sdnsTokenProtectionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 7)}, + 'sdnsUserSignatureCertificate': {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsUserSignatureCertificate (2 16 840 1 101 2 1 5 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 03', + 'name': 'sdnsUserSignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 2)}, + 'sdsiCertificate': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'sdsiCertificate (for PKCS #12) (1 2 840 113549 1 9 22 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 17', + 'name': 'sdsiCertificate', + 'oid': (1, 2, 840, 113549, 1, 9, 22, 2)}, + 'searchGuide': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'searchGuide (2 5 4 14)', + 'hexoid': '06 03 55 04 0F', + 'name': 'searchGuide', + 'oid': (2, 5, 4, 14)}, + 'secPolicyInformationFile': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'secPolicyInformationFile (2 16 840 1 101 2 1 5 59)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 3C', + 'name': 'secPolicyInformationFile', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 59)}, + 'securityApplication': {'comment': 'Telesec SNMP MIBs', + 'description': 'securityApplication (0 2 262 1 10 11 1)', + 'hexoid': '06 07 02 82 06 01 0A 0B 01', + 'name': 'securityApplication', + 'oid': (0, 2, 262, 1, 10, 11, 1)}, + 'securityAttributes': {'comment': 'Novell PKI attribute type', + 'description': 'securityAttributes (2 16 840 1 113719 1 9 4 1)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 02', + 'name': 'securityAttributes', + 'oid': (2, 16, 840, 1, 113719, 1, 9, 4, 1)}, + 'securityDomain': {'comment': 'Telesec attribute', + 'description': 'securityDomain (0 2 262 1 10 7 9)', + 'hexoid': '06 07 02 82 06 01 0A 07 09', + 'name': 'securityDomain', + 'oid': (0, 2, 262, 1, 10, 7, 9)}, + 'securityMessEnv': {'comment': 'Telesec attribute', + 'description': 'securityMessEnv (0 2 262 1 10 7 15)', + 'hexoid': '06 07 02 82 06 01 0A 07 0F', + 'name': 'securityMessEnv', + 'oid': (0, 2, 262, 1, 10, 7, 15)}, + 'sedu': {'comment': 'Teletrust encryption algorithm', + 'description': 'sedu (1 3 36 2 1)', + 'hexoid': '06 06 2B 24 03 01 01 01', + 'name': 'sedu', + 'oid': (1, 3, 36, 2, 1)}, + 'seeAlso': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'seeAlso (2 5 4 34)', + 'hexoid': '06 03 55 04 23', + 'name': 'seeAlso', + 'oid': (2, 5, 4, 34)}, + 'seis-cp': {'comment': 'SEIS Project', + 'description': 'seis-cp (1 2 752 34 1)', + 'hexoid': '06 05 2A 85 70 22 01', + 'name': 'seis-cp', + 'oid': (1, 2, 752, 34, 1)}, + 'sepUKMs': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'sepUKMs (2 16 840 1 101 2 1 5 28)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1D', + 'name': 'sepUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 28)}, + 'serialNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'serialNumber (2 5 4 5)', + 'hexoid': '06 03 55 04 06', + 'name': 'serialNumber', + 'oid': (2, 5, 4, 5)}, + 'serverAuth': {'comment': 'PKIX key purpose', + 'description': 'serverAuth (1 3 6 1 5 5 7 3 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 02', + 'name': 'serverAuth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 1)}, + 'serverGatedCrypto': {'comment': 'Verisign', + 'description': 'serverGatedCrypto (2 16 840 1 113730 4 1)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 03', + 'name': 'serverGatedCrypto', + 'oid': (2, 16, 840, 1, 113730, 4, 1)}, + 'setExtensions': {'comment': 'SET cert extension', + 'description': 'setExtensions (2 23 42 7 5)', + 'hexoid': '06 04 67 2A 07 06', + 'name': 'setExtensions', + 'oid': (2, 23, 42, 7, 5)}, + 'setQualifier': {'comment': 'SET', + 'description': 'setQualifier (2 23 42 7 6)', + 'hexoid': '06 03 67 2A 08', + 'name': 'setQualifier', + 'oid': (2, 23, 42, 7, 6)}, + 'sha': {'comment': 'Oddball OIW OID, DES-based hash, planned for X9.31 Part 2', + 'description': 'sha (1 3 14 3 2 18)', + 'hexoid': '06 05 2B 0E 03 02 13', + 'name': 'sha', + 'oid': (1, 3, 14, 3, 2, 18)}, + 'sha-1WithRSAEncryption': {'comment': 'Oddball OIW OID', + 'description': 'sha-1WithRSAEncryption (1 3 14 3 2 29)', + 'hexoid': '06 05 2B 0E 03 03 01', + 'name': 'sha-1WithRSAEncryption', + 'oid': (1, 3, 14, 3, 2, 29)}, + 'sha1': {'comment': 'OIW. This OID may also be assigned as ripemd-160', + 'description': 'sha1 (1 3 14 3 2 26)', + 'hexoid': '06 05 2B 0E 03 02 1B', + 'name': 'sha1', + 'oid': (1, 3, 14, 3, 2, 26)}, + 'sha1WithRSAEncryptionBSafe1': {'comment': 'Novell digest algorithm', + 'description': 'sha1WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 31)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 20', + 'name': 'sha1WithRSAEncryptionBSafe1', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8, 31)}, + 'sha1withRSAEncryption': {'comment': 'PKCS #1. This OID may also be assigned as ripemd160WithRSAEncryption', + 'description': 'sha1withRSAEncryption (1 2 840 113549 1 1 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 06', + 'name': 'sha1withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 5)}, + 'shaWithRSASignature': {'comment': 'Oddball OIW OID. Deprecated, use a plain DH OID instead', + 'description': 'shaWithRSASignature (1 3 14 3 2 15)', + 'hexoid': '06 05 2B 0E 03 02 10', + 'name': 'shaWithRSASignature', + 'oid': (1, 3, 14, 3, 2, 15)}, + 'siBYEMAN': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siBYEMAN (2 16 840 1 101 2 1 3 10 6)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 07', + 'name': 'siBYEMAN', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 6)}, + 'siDNASP': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siDNASP (2 16 840 1 101 2 1 3 10 5)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 06', + 'name': 'siDNASP', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 5)}, + 'siDSAP': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siDSAP (2 16 840 1 101 2 1 3 10 3)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 04', + 'name': 'siDSAP', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 3)}, + 'siELCO': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siELCO (2 16 840 1 101 2 1 3 10 1)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 02', + 'name': 'siELCO', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 1)}, + 'siGeneric': {'comment': 'SDN.700 INFOSEC policy', + 'description': 'siGeneric (2 16 840 1 101 2 1 3 10 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0B', + 'name': 'siGeneric', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 12)}, + 'siNASP': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siNASP (2 16 840 1 101 2 1 3 10 0)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 01', + 'name': 'siNASP', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 0)}, + 'siREL-AUS': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-AUS (2 16 840 1 101 2 1 3 10 8)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 09', + 'name': 'siREL-AUS', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 8)}, + 'siREL-CAN': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-CAN (2 16 840 1 101 2 1 3 10 9)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 0A', + 'name': 'siREL-CAN', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 9)}, + 'siREL-NZ': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-NZ (2 16 840 1 101 2 1 3 10 11)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 0C', + 'name': 'siREL-NZ', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 11)}, + 'siREL-US': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-US (2 16 840 1 101 2 1 3 10 7)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 08', + 'name': 'siREL-US', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 7)}, + 'siREL_UK': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL_UK (2 16 840 1 101 2 1 3 10 10)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 0B', + 'name': 'siREL_UK', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 10)}, + 'siSSSS': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siSSSS (2 16 840 1 101 2 1 3 10 4)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 05', + 'name': 'siSSSS', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 4)}, + 'siSecurityPolicy': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siSecurityPolicy (2 16 840 1 101 2 1 3 10)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 00', + 'name': 'siSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10)}, + 'siTK': {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siTK (2 16 840 1 101 2 1 3 10 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 03', + 'name': 'siTK', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10, 2)}, + 'sigNumber': {'comment': 'Teletrust signature attributes', + 'description': 'sigNumber (1 3 36 8 6 9)', + 'hexoid': '06 05 2B 24 08 06 0A', + 'name': 'sigNumber', + 'oid': (1, 3, 36, 8, 6, 9)}, + 'sigOrKMPrivileges': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'sigOrKMPrivileges (2 16 840 1 101 2 1 5 55)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 38', + 'name': 'sigOrKMPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 55)}, + 'sigPrivileges': {'comment': 'SDN.700 INFOSEC privileges', + 'description': 'sigPrivileges (2 16 840 1 101 2 1 10 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0A 02', + 'name': 'sigPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 1)}, + 'sigS_ISO9796-1': {'comment': 'Teletrust signature scheme', + 'description': 'sigS_ISO9796-1 (1 3 36 3 4 1)', + 'hexoid': '06 05 2B 24 03 04 02', + 'name': 'sigS_ISO9796-1', + 'oid': (1, 3, 36, 3, 4, 1)}, + 'sigS_ISO9796-2': {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be', + 'description': 'sigS_ISO9796-2 (1 3 36 3 4 2)', + 'hexoid': '06 05 2B 24 03 04 02 01', + 'name': 'sigS_ISO9796-2', + 'oid': (1, 3, 36, 3, 4, 2)}, + 'sigS_ISO9796-2Withred': {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be', + 'description': 'sigS_ISO9796-2Withred (1 3 36 3 4 2 1)', + 'hexoid': '06 06 2B 24 03 04 02 02', + 'name': 'sigS_ISO9796-2Withred', + 'oid': (1, 3, 36, 3, 4, 2, 1)}, + 'sigS_ISO9796-2Withrnd': {'comment': 'Teletrust API', + 'description': 'sigS_ISO9796-2Withrnd (1 3 36 3 4 2 3)', + 'hexoid': '06 03 2B 24 06', + 'name': 'sigS_ISO9796-2Withrnd', + 'oid': (1, 3, 36, 3, 4, 2, 3)}, + 'sigS_ISO9796-2Withrsa': {'comment': 'Teletrust signature scheme. 9796-2 with random number in padding field', + 'description': 'sigS_ISO9796-2Withrsa (1 3 36 3 4 2 2)', + 'hexoid': '06 06 2B 24 03 04 02 03', + 'name': 'sigS_ISO9796-2Withrsa', + 'oid': (1, 3, 36, 3, 4, 2, 2)}, + 'signKeyPairTypes': {'comment': 'PKIX CMP information', + 'description': 'signKeyPairTypes (1 3 6 1 5 5 7 4 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 03', + 'name': 'signKeyPairTypes', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 2)}, + 'signature': {'comment': 'Telesec mechanism', + 'description': 'signature (0 2 262 1 10 1 1)', + 'hexoid': '06 07 02 82 06 01 0A 01 01', + 'name': 'signature', + 'oid': (0, 2, 262, 1, 10, 1, 1)}, + 'signatureAlgorithm': {'comment': 'Teletrust signature algorithm', + 'description': 'signatureAlgorithm (1 3 36 3 3)', + 'hexoid': '06 06 2B 24 03 03 01 01', + 'name': 'signatureAlgorithm', + 'oid': (1, 3, 36, 3, 3)}, + 'signatureScheme': {'comment': 'Teletrust signature scheme', + 'description': 'signatureScheme (1 3 36 3 4)', + 'hexoid': '06 05 2B 24 03 04 01', + 'name': 'signatureScheme', + 'oid': (1, 3, 36, 3, 4)}, + 'signedAndEnvelopedData': {'comment': 'PKCS #7', + 'description': 'signedAndEnvelopedData (1 2 840 113549 1 7 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 05', + 'name': 'signedAndEnvelopedData', + 'oid': (1, 2, 840, 113549, 1, 7, 4)}, + 'signedData': {'comment': 'PKCS #7', + 'description': 'signedData (1 2 840 113549 1 7 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 03', + 'name': 'signedData', + 'oid': (1, 2, 840, 113549, 1, 7, 2)}, + 'signingDescription': {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'signingDescription (1 2 840 113549 1 9 13)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0E', + 'name': 'signingDescription', + 'oid': (1, 2, 840, 113549, 1, 9, 13)}, + 'signingTime': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'signingTime (1 2 840 113549 1 9 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 06', + 'name': 'signingTime', + 'oid': (1, 2, 840, 113549, 1, 9, 5)}, + 'simple-strong-auth-mechanism': {'comment': 'Unsure about this OID', + 'description': 'simple-strong-auth-mechanism (1 3 14 3 3 1)', + 'hexoid': '06 06 2B 0E 07 02 01 01', + 'name': 'simple-strong-auth-mechanism', + 'oid': (1, 3, 14, 3, 3, 1)}, + 'sio': {'comment': 'Teletrust sio', + 'description': 'sio (1 3 36 2)', + 'hexoid': '06 04 2B 24 02 01', + 'name': 'sio', + 'oid': (1, 3, 36, 2)}, + 'site-Addressing': {'comment': 'Microsoft Exchange Server - object class', + 'description': 'site-Addressing (1 2 840 113556 1 3 00)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0D', + 'name': 'site-Addressing', + 'oid': (1, 2, 840, 113556, 1, 3, 0)}, + 'slabel': {'comment': 'CSOR GAK policy', + 'description': 'slabel (2 16 840 1 101 3 1)', + 'hexoid': '06 08 60 86 48 01 65 03 02 01', + 'name': 'slabel', + 'oid': (2, 16, 840, 1, 101, 3, 1)}, + 'smeAndComponentsOfSme': {'comment': 'Telesec module', + 'description': 'smeAndComponentsOfSme (0 2 262 1 10 2 5)', + 'hexoid': '06 07 02 82 06 01 0A 02 05', + 'name': 'smeAndComponentsOfSme', + 'oid': (0, 2, 262, 1, 10, 2, 5)}, + 'snmp-mibs': {'comment': 'Telesec', + 'description': 'snmp-mibs (0 2 262 1 10 11)', + 'hexoid': '06 06 02 82 06 01 0A 0B', + 'name': 'snmp-mibs', + 'oid': (0, 2, 262, 1, 10, 11)}, + 'spcAgencyInfo': {'comment': 'Microsoft code signing', + 'description': 'spcAgencyInfo (1 3 6 1 4 1 311 2 1 10)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0B', + 'name': 'spcAgencyInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 10)}, + 'spcFinancialCriteriaInfo': {'comment': 'Microsoft code signing', + 'description': 'spcFinancialCriteriaInfo (1 3 6 1 4 1 311 2 1 27)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 03 02 01', + 'name': 'spcFinancialCriteriaInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 27)}, + 'spcIndirectDataContext': {'comment': 'Microsoft code signing. Also known as policyLink', + 'description': 'spcIndirectDataContext (1 3 6 1 4 1 311 2 1 4)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0A', + 'name': 'spcIndirectDataContext', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 4)}, + 'spcLink': {'comment': 'Microsoft', + 'description': 'spcLink (type 1) (1 3 6 1 4 1 311 2 1 20)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 15', + 'name': 'spcLink', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 20)}, + 'spcMinimalCriteriaInfo': {'comment': 'Microsoft code signing', + 'description': 'spcMinimalCriteriaInfo (1 3 6 1 4 1 311 2 1 26)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1B', + 'name': 'spcMinimalCriteriaInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 26)}, + 'spcPelmageData': {'comment': 'Microsoft code signing. Also known as "glue extension"', + 'description': 'spcPelmageData (1 3 6 1 4 1 311 2 1 15)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 14', + 'name': 'spcPelmageData', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 15)}, + 'spcSpOpusInfo': {'comment': 'Microsoft', + 'description': 'spcSpOpusInfo (1 3 6 1 4 1 311 2 1 12)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0E', + 'name': 'spcSpOpusInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 12)}, + 'spcStatementType': {'comment': 'Microsoft code signing', + 'description': 'spcStatementType (1 3 6 1 4 1 311 2 1 11)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0C', + 'name': 'spcStatementType', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 11)}, + 'sqModNISO': {'comment': 'Telesec one-way function', + 'description': 'sqModNISO (0 2 262 1 10 1 3 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 04', + 'name': 'sqModNISO', + 'oid': (0, 2, 262, 1, 10, 1, 3, 4)}, + 'sqModNX509': {'comment': 'Telesec one-way function', + 'description': 'sqModNX509 (0 2 262 1 10 1 3 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 03', + 'name': 'sqModNX509', + 'oid': (0, 2, 262, 1, 10, 1, 3, 3)}, + 'sqmod-N': {'comment': 'X.509. Deprecated', + 'description': 'sqmod-N (1 3 14 3 2 2 1)', + 'hexoid': '06 06 2B 0E 03 02 03 01', + 'name': 'sqmod-N', + 'oid': (1, 3, 14, 3, 2, 2, 1)}, + 'standardSecurityLabelPrivileges': {'comment': 'SDN.700 INFOSEC privileges', + 'description': 'standardSecurityLabelPrivileges (2 16 840 1 101 2 1 8 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0A 01', + 'name': 'standardSecurityLabelPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 2)}, + 'stateOrProvinceName': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'stateOrProvinceName (2 5 4 8)', + 'hexoid': '06 04 55 04 08 01', + 'name': 'stateOrProvinceName', + 'oid': (2, 5, 4, 8)}, + 'stefiles': {'comment': 'Telesec module', + 'description': 'stefiles (0 2 262 1 10 2 8)', + 'hexoid': '06 07 02 82 06 01 0A 02 08', + 'name': 'stefiles', + 'oid': (0, 2, 262, 1, 10, 2, 8)}, + 'storageTime': {'comment': 'Teletrust signature attributes', + 'description': 'storageTime (1 3 36 8 6 6)', + 'hexoid': '06 05 2B 24 08 06 07', + 'name': 'storageTime', + 'oid': (1, 3, 36, 8, 6, 6)}, + 'streetAddress': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'streetAddress (2 5 4 9)', + 'hexoid': '06 04 55 04 09 01', + 'name': 'streetAddress', + 'oid': (2, 5, 4, 9)}, + 'strongAuthenticationUser': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'strongAuthenticationUser (2 5 6 15)', + 'hexoid': '06 03 55 06 10', + 'name': 'strongAuthenticationUser', + 'oid': (2, 5, 6, 15)}, + 'strongExtranet': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'strongExtranet (1 3 101 1 4 1)', + 'hexoid': '06 03 55 04 00', + 'name': 'strongExtranet', + 'oid': (1, 3, 101, 1, 4, 1)}, + 'subject': {'comment': 'Telesec attribute', + 'description': 'subject (0 2 262 1 10 7 10)', + 'hexoid': '06 07 02 82 06 01 0A 07 0A', + 'name': 'subject', + 'oid': (0, 2, 262, 1, 10, 7, 10)}, + 'subjectAltName': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'subjectAltName (2 5 29 17)', + 'hexoid': '06 03 55 1D 12', + 'name': 'subjectAltName', + 'oid': (2, 5, 29, 17)}, + 'subjectDirectoryAttributes': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'subjectDirectoryAttributes (2 5 29 9)', + 'hexoid': '06 03 55 1D 0E', + 'name': 'subjectDirectoryAttributes', + 'oid': (2, 5, 29, 9)}, + 'subjectInfoAccess': {'comment': 'PKIX', + 'description': 'subjectInfoAccess (1 3 6 1 5 5 7 1 11)', + 'hexoid': '06 07 2B 06 01 05 05 07 02', + 'name': 'subjectInfoAccess', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 11)}, + 'subjectKeyIdentifier': {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'subjectKeyIdentifier (2 5 29 14)', + 'hexoid': '06 03 55 1D 0F', + 'name': 'subjectKeyIdentifier', + 'oid': (2, 5, 29, 14)}, + 'suiteAConfidentialityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteAConfidentialityAlgorithm (2 16 840 1 101 2 1 1 14)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0F', + 'name': 'suiteAConfidentialityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 14)}, + 'suiteAIntegrityAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteAIntegrityAlgorithm (2 16 840 1 101 2 1 1 15)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 10', + 'name': 'suiteAIntegrityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 15)}, + 'suiteAKMandSigAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedSigAlgorithm', + 'description': 'suiteAKMandSigAlgorithm (2 16 840 1 101 2 1 1 18)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 13', + 'name': 'suiteAKMandSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 18)}, + 'suiteAKMandSigCertificate': {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'suiteAKMandSigCertificate (2 16 840 1 101 2 1 5 51)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 34', + 'name': 'suiteAKMandSigCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 51)}, + 'suiteAKeyManagementAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteAKeyManagementAlgorithm (2 16 840 1 101 2 1 1 17)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 12', + 'name': 'suiteAKeyManagementAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 17)}, + 'suiteAKeyManagementCertificate': {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'suiteAKeyManagementCertificate (2 16 840 1 101 2 1 5 50)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 33', + 'name': 'suiteAKeyManagementCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 50)}, + 'suiteASignatureAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteASignatureAlgorithm (2 16 840 1 101 2 1 1 13)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0E', + 'name': 'suiteASignatureAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 13)}, + 'suiteATokenProtectionAlgorithm': {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteATokenProtectionAlgorithm (2 16 840 1 101 2 1 1 16)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 11', + 'name': 'suiteATokenProtectionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 16)}, + 'suiteAUserSignatureCertificate': {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'suiteAUserSignatureCertificate (2 16 840 1 101 2 1 5 52)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 35', + 'name': 'suiteAUserSignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 52)}, + 'suppLangTags': {'comment': 'PKIX', + 'description': 'suppLangTags (1 3 6 1 5 5 7 4 16)', + 'hexoid': '06 07 2B 06 01 05 05 07 05', + 'name': 'suppLangTags', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 16)}, + 'supportedAlgorithms': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'supportedAlgorithms (2 5 4 52)', + 'hexoid': '06 03 55 04 35', + 'name': 'supportedAlgorithms', + 'oid': (2, 5, 4, 52)}, + 'supportedApplicationContext': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'supportedApplicationContext (2 5 4 30)', + 'hexoid': '06 03 55 04 1F', + 'name': 'supportedApplicationContext', + 'oid': (2, 5, 4, 30)}, + 'surname': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'surname (2 5 4 4)', + 'hexoid': '06 03 55 04 05', + 'name': 'surname', + 'oid': (2, 5, 4, 4)}, + 'symmetric-encryption-algorithm': {'comment': 'Mitsubishi security algorithm', + 'description': 'symmetric-encryption-algorithm (1 2 392 200011 61 1 1 1)', + 'hexoid': '06 0B 2A 83 08 8C 1A 4B 3D 01 01 01', + 'name': 'symmetric-encryption-algorithm', + 'oid': (1, 2, 392, 200011, 61, 1, 1, 1)}, + 'symmetricKeyEntry': {'comment': 'Telesec object class', + 'description': 'symmetricKeyEntry (0 2 262 1 10 3 5)', + 'hexoid': '06 07 02 82 06 01 0A 03 05', + 'name': 'symmetricKeyEntry', + 'oid': (0, 2, 262, 1, 10, 3, 5)}, + 'symmetricKeyEntryName': {'comment': 'Telesec attribute', + 'description': 'symmetricKeyEntryName (0 2 262 1 10 7 35)', + 'hexoid': '06 07 02 82 06 01 0A 07 23', + 'name': 'symmetricKeyEntryName', + 'oid': (0, 2, 262, 1, 10, 7, 35)}, + 'tcp1': {'comment': 'CSOR GAK', + 'description': 'tcp1 (2 16 840 1 101 2 1 12 1 1)', + 'hexoid': '06 07 60 86 48 01 65 03 01', + 'name': 'tcp1', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 1, 1)}, + 'telekomAuthentication': {'comment': 'Telesec authentication', + 'description': 'telekomAuthentication (0 2 262 1 10 1 0 8)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 08', + 'name': 'telekomAuthentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 8)}, + 'telephone': {'comment': 'SET field', + 'description': 'telephone (2 23 42 2 9)', + 'hexoid': '06 04 67 2A 02 0A', + 'name': 'telephone', + 'oid': (2, 23, 42, 2, 9)}, + 'telephoneNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'telephoneNumber (2 5 4 20)', + 'hexoid': '06 04 55 04 14 01', + 'name': 'telephoneNumber', + 'oid': (2, 5, 4, 20)}, + 'telesecCRLFilterExt': {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecCRLFilterExt (0 2 262 1 10 12 5)', + 'hexoid': '06 07 02 82 06 01 0A 0C 05', + 'name': 'telesecCRLFilterExt', + 'oid': (0, 2, 262, 1, 10, 12, 5)}, + 'telesecCRLFilteredExt': {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecCRLFilteredExt (0 2 262 1 10 12 4)', + 'hexoid': '06 07 02 82 06 01 0A 0C 04', + 'name': 'telesecCRLFilteredExt', + 'oid': (0, 2, 262, 1, 10, 12, 4)}, + 'telesecCertIdExt': {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecCertIdExt (0 2 262 1 10 12 1)', + 'hexoid': '06 07 02 82 06 01 0A 0C 01', + 'name': 'telesecCertIdExt', + 'oid': (0, 2, 262, 1, 10, 12, 1)}, + 'telesecCertificate': {'comment': 'Telesec attribute', + 'description': 'telesecCertificate (0 2 262 1 10 7 2)', + 'hexoid': '06 07 02 82 06 01 0A 07 02', + 'name': 'telesecCertificate', + 'oid': (0, 2, 262, 1, 10, 7, 2)}, + 'telesecCertificateList': {'comment': 'Telesec attribute', + 'description': 'telesecCertificateList (0 2 262 1 10 7 21)', + 'hexoid': '06 07 02 82 06 01 0A 07 15', + 'name': 'telesecCertificateList', + 'oid': (0, 2, 262, 1, 10, 7, 21)}, + 'telesecGivenName': {'comment': 'Telesec attribute', + 'description': 'telesecGivenName (0 2 262 1 10 7 17)', + 'hexoid': '06 07 02 82 06 01 0A 07 11', + 'name': 'telesecGivenName', + 'oid': (0, 2, 262, 1, 10, 7, 17)}, + 'telesecNamingAuthorityExt': {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecNamingAuthorityExt (0 2 262 1 10 12 6)', + 'hexoid': '06 07 02 82 06 01 0A 0C 06', + 'name': 'telesecNamingAuthorityExt', + 'oid': (0, 2, 262, 1, 10, 12, 6)}, + 'telesecOtherName': {'comment': 'Telesec object class', + 'description': 'telesecOtherName (0 2 262 1 10 3 0)', + 'hexoid': '06 07 02 82 06 01 0A 03 00', + 'name': 'telesecOtherName', + 'oid': (0, 2, 262, 1, 10, 3, 0)}, + 'telesecPolicyQualifierID': {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecPolicyQualifierID (0 2 262 1 10 12 3)', + 'hexoid': '06 07 02 82 06 01 0A 0C 03', + 'name': 'telesecPolicyQualifierID', + 'oid': (0, 2, 262, 1, 10, 12, 3)}, + 'telesecPostalCode': {'comment': 'Telesec attribute', + 'description': 'telesecPostalCode (0 2 262 1 10 7 19)', + 'hexoid': '06 07 02 82 06 01 0A 07 13', + 'name': 'telesecPostalCode', + 'oid': (0, 2, 262, 1, 10, 7, 19)}, + 'telesecTtpAsymmetricApplication': {'comment': 'Telesec module', + 'description': 'telesecTtpAsymmetricApplication (0 2 262 1 10 2 11)', + 'hexoid': '06 07 02 82 06 01 0A 02 0B', + 'name': 'telesecTtpAsymmetricApplication', + 'oid': (0, 2, 262, 1, 10, 2, 11)}, + 'telesecTtpBasisApplication': {'comment': 'Telesec module', + 'description': 'telesecTtpBasisApplication (0 2 262 1 10 2 12)', + 'hexoid': '06 07 02 82 06 01 0A 02 0C', + 'name': 'telesecTtpBasisApplication', + 'oid': (0, 2, 262, 1, 10, 2, 12)}, + 'telesecTtpMessages': {'comment': 'Telesec module', + 'description': 'telesecTtpMessages (0 2 262 1 10 2 13)', + 'hexoid': '06 07 02 82 06 01 0A 02 0D', + 'name': 'telesecTtpMessages', + 'oid': (0, 2, 262, 1, 10, 2, 13)}, + 'telesecTtpTimeStampApplication': {'comment': 'Telesec module', + 'description': 'telesecTtpTimeStampApplication (0 2 262 1 10 2 14)', + 'hexoid': '06 07 02 82 06 01 0A 02 0E', + 'name': 'telesecTtpTimeStampApplication', + 'oid': (0, 2, 262, 1, 10, 2, 14)}, + 'teletexTerminalIdentifier': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'teletexTerminalIdentifier (2 5 4 22)', + 'hexoid': '06 04 55 04 16 01', + 'name': 'teletexTerminalIdentifier', + 'oid': (2, 5, 4, 22)}, + 'teletrustCertificateList': {'comment': 'Telesec attribute', + 'description': 'teletrustCertificateList (0 2 262 1 10 7 22)', + 'hexoid': '06 07 02 82 06 01 0A 07 16', + 'name': 'teletrustCertificateList', + 'oid': (0, 2, 262, 1, 10, 7, 22)}, + 'telexNumber': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'telexNumber (2 5 4 21)', + 'hexoid': '06 04 55 04 15 01', + 'name': 'telexNumber', + 'oid': (2, 5, 4, 21)}, + 'testSecurityPolicy': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'testSecurityPolicy (2 16 840 1 101 2 1 12 0)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 01', + 'name': 'testSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0)}, + 'textNotice': {'comment': 'PKIX', + 'description': 'textNotice (1 3 6 1 5 5 7 2 3)', + 'hexoid': '06 07 2B 06 01 05 05 07 03', + 'name': 'textNotice', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 3)}, + 'thawte-ce': {'comment': 'Thawte certificate extension', + 'description': 'thawte-ce (1 3 101 1 4)', + 'hexoid': '06 05 2B 65 01 04 01', + 'name': 'thawte-ce', + 'oid': (1, 3, 101, 1, 4)}, + 'threeWayX509Authentication': {'comment': 'Telesec authentication', + 'description': 'threeWayX509Authentication (0 2 262 1 10 1 0 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 05', + 'name': 'threeWayX509Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 5)}, + 'timeOfIssue': {'comment': 'Telesec attribute', + 'description': 'timeOfIssue (0 2 262 1 10 7 24)', + 'hexoid': '06 07 02 82 06 01 0A 07 18', + 'name': 'timeOfIssue', + 'oid': (0, 2, 262, 1, 10, 7, 24)}, + 'timeOfRevocation': {'comment': 'Telesec attribute', + 'description': 'timeOfRevocation (0 2 262 1 10 7 11)', + 'hexoid': '06 07 02 82 06 01 0A 07 0B', + 'name': 'timeOfRevocation', + 'oid': (0, 2, 262, 1, 10, 7, 11)}, + 'timeOfRevocationGen': {'comment': 'Telesec attribute', + 'description': 'timeOfRevocationGen (0 2 262 1 10 7 51)', + 'hexoid': '06 07 02 82 06 01 0A 07 33', + 'name': 'timeOfRevocationGen', + 'oid': (0, 2, 262, 1, 10, 7, 51)}, + 'timeStampSigning': {'comment': 'Microsoft enhanced key usage', + 'description': 'timeStampSigning (1 3 6 1 4 1 311 10 3 2)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 04', + 'name': 'timeStampSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 2)}, + 'timeStamping': {'comment': 'ISAKMP HMAC algorithm', + 'description': 'timeStamping (1 3 6 1 5 5 7 48 3)', + 'hexoid': '06 08 2B 06 01 05 05 08 01 01', + 'name': 'timeStamping', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 3)}, + 'timeproof': {'comment': 'timeproof', + 'description': 'timeproof (1 3 6 1 4 1 5472)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01', + 'name': 'timeproof', + 'oid': (1, 3, 6, 1, 4, 1, 5472)}, + 'timestampCountersignature': {'comment': 'Microsoft PKCS #7 contentType', + 'description': 'timestampCountersignature (1 3 6 1 4 1 311 3 2 1)', + 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 01', + 'name': 'timestampCountersignature', + 'oid': (1, 3, 6, 1, 4, 1, 311, 3, 2, 1)}, + 'title': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'title (2 5 4 12)', + 'hexoid': '06 03 55 04 0D', + 'name': 'title', + 'oid': (2, 5, 4, 12)}, + 'titledWithOID': {'comment': 'Microsoft', + 'description': 'titledWithOID (1 2 840 113556 4 4)', + 'hexoid': '06 08 2A 86 48 86 F7 14 04 05', + 'name': 'titledWithOID', + 'oid': (1, 2, 840, 113556, 4, 4)}, + 'top': {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'top (2 5 6 0)', + 'hexoid': '06 03 55 06 01', + 'name': 'top', + 'oid': (2, 5, 6, 0)}, + 'tpBasis': {'comment': 'ANSI X9.62 field basis', + 'description': 'tpBasis (1 2 840 10045 1 2 3 2)', + 'hexoid': '06 0A 2A 86 48 CE 3D 01 02 03 02', + 'name': 'tpBasis', + 'oid': (1, 2, 840, 10045, 1, 2, 3, 2)}, + 'tsp1': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1 (2 16 840 1 101 2 1 12 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00', + 'name': 'tsp1', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1)}, + 'tsp1SecurityCategories': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1SecurityCategories (2 16 840 1 101 2 1 12 0 1 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00 00', + 'name': 'tsp1SecurityCategories', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0)}, + 'tsp1TagSetOne': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1TagSetOne (2 16 840 1 101 2 1 12 0 1 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00 02', + 'name': 'tsp1TagSetOne', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 1)}, + 'tsp1TagSetTwo': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1TagSetTwo (2 16 840 1 101 2 1 12 0 1 0 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 02', + 'name': 'tsp1TagSetTwo', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 2)}, + 'tsp1TagSetZero': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1TagSetZero (2 16 840 1 101 2 1 12 0 1 0 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00 01', + 'name': 'tsp1TagSetZero', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 0)}, + 'tsp2': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2 (2 16 840 1 101 2 1 12 0 2)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00', + 'name': 'tsp2', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2)}, + 'tsp2SecurityCategories': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2SecurityCategories (2 16 840 1 101 2 1 12 0 2 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00 00', + 'name': 'tsp2SecurityCategories', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0)}, + 'tsp2TagSetOne': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2TagSetOne (2 16 840 1 101 2 1 12 0 2 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00 02', + 'name': 'tsp2TagSetOne', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 1)}, + 'tsp2TagSetTwo': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2TagSetTwo (2 16 840 1 101 2 1 12 0 2 0 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 03', + 'name': 'tsp2TagSetTwo', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 2)}, + 'tsp2TagSetZero': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2TagSetZero (2 16 840 1 101 2 1 12 0 2 0 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00 01', + 'name': 'tsp2TagSetZero', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 0)}, + 'tss': {'comment': 'timeproof TSS', + 'description': 'tss (1 3 6 1 4 1 5472 1)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01', + 'name': 'tss', + 'oid': (1, 3, 6, 1, 4, 1, 5472, 1)}, + 'tss380': {'comment': 'timeproof TSS', + 'description': 'tss380 (1 3 6 1 4 1 5472 1 2)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01', + 'name': 'tss380', + 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 2)}, + 'tss80': {'comment': 'timeproof TSS', + 'description': 'tss80 (1 3 6 1 4 1 5472 1 1)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01', + 'name': 'tss80', + 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 1)}, + 'tunneling': {'comment': 'SET cert extension', + 'description': 'tunneling (2 23 42 7 4)', + 'hexoid': '06 04 67 2A 07 05', + 'name': 'tunneling', + 'oid': (2, 23, 42, 7, 4)}, + 'twoWayISO9798Authentication': {'comment': 'Telesec authentication', + 'description': 'twoWayISO9798Authentication (0 2 262 1 10 1 0 7)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 07', + 'name': 'twoWayISO9798Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 7)}, + 'twoWayX509Authentication': {'comment': 'Telesec authentication', + 'description': 'twoWayX509Authentication (0 2 262 1 10 1 0 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 04', + 'name': 'twoWayX509Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 4)}, + 'ukDemo': {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'ukDemo (2 16 840 1 101 2 1 11 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 02', + 'name': 'ukDemo', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 1)}, + 'uniqueIdentifier': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'uniqueIdentifier (2 5 4 45)', + 'hexoid': '06 03 55 04 2E', + 'name': 'uniqueIdentifier', + 'oid': (2, 5, 4, 45)}, + 'uniqueMember': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'uniqueMember (2 5 4 50)', + 'hexoid': '06 03 55 04 33', + 'name': 'uniqueMember', + 'oid': (2, 5, 4, 50)}, + 'unotice': {'comment': 'PKIX policy qualifier', + 'description': 'unotice (1 3 6 1 5 5 7 2 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 02 03', + 'name': 'unotice', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 2)}, + 'unstructuredAddress': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'unstructuredAddress (1 2 840 113549 1 9 8)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 09', + 'name': 'unstructuredAddress', + 'oid': (1, 2, 840, 113549, 1, 9, 8)}, + 'unstructuredName': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'unstructuredName (1 2 840 113549 1 9 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 03', + 'name': 'unstructuredName', + 'oid': (1, 2, 840, 113549, 1, 9, 2)}, + 'unsupportedOIDs': {'comment': 'PKIX CMP information', + 'description': 'unsupportedOIDs (1 3 6 1 5 5 7 4 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0A', + 'name': 'unsupportedOIDs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 7)}, + 'usDODClass2': {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usDODClass2 (2 16 840 1 101 2 1 11 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 03', + 'name': 'usDODClass2', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 2)}, + 'usDODClass3': {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usDODClass3 (2 16 840 1 101 2 1 11 5)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 06', + 'name': 'usDODClass3', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 5)}, + 'usDODClass4': {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usDODClass4 (2 16 840 1 101 2 1 11 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 05', + 'name': 'usDODClass4', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 4)}, + 'usDODClass5': {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'usDODClass5 (2 16 840 1 101 2 1 11 6)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0C 00', + 'name': 'usDODClass5', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 6)}, + 'usMediumPilot': {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usMediumPilot (2 16 840 1 101 2 1 11 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 04', + 'name': 'usMediumPilot', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 3)}, + 'usefulDefinitions': {'comment': 'Telesec module', + 'description': 'usefulDefinitions (0 2 262 1 10 2 7)', + 'hexoid': '06 07 02 82 06 01 0A 02 07', + 'name': 'usefulDefinitions', + 'oid': (0, 2, 262, 1, 10, 2, 7)}, + 'userCertificate': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'userCertificate (2 5 4 36)', + 'hexoid': '06 03 55 04 25', + 'name': 'userCertificate', + 'oid': (2, 5, 4, 36)}, + 'userGroup': {'comment': 'PKIX personal data', + 'description': 'userGroup (1 3 6 1 5 5 7 8 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 01', + 'name': 'userGroup', + 'oid': (1, 3, 6, 1, 5, 5, 7, 8, 2)}, + 'userGroupReference': {'comment': 'Telesec attribute', + 'description': 'userGroupReference (0 2 262 1 10 7 12)', + 'hexoid': '06 07 02 82 06 01 0A 07 0C', + 'name': 'userGroupReference', + 'oid': (0, 2, 262, 1, 10, 7, 12)}, + 'userID': {'comment': 'Some oddball X.500 attribute collection', + 'description': 'userID (0 9 2342 19200300 100 1 1)', + 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 01', + 'name': 'userID', + 'oid': (0, 9, 2342, 19200300, 100, 1, 1)}, + 'userPassword': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'userPassword (2 5 4 35)', + 'hexoid': '06 03 55 04 24', + 'name': 'userPassword', + 'oid': (2, 5, 4, 35)}, + 'utf8Pairs': {'comment': 'PKIX CRMF registration control', + 'description': 'utf8Pairs (1 3 6 1 5 5 7 5 2 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 02 02', + 'name': 'utf8Pairs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 1)}, + 'utimaco-api': {'comment': 'Teletrust API', + 'description': 'utimaco-api (1 3 36 6 1 1)', + 'hexoid': '06 04 2B 24 06 02', + 'name': 'utimaco-api', + 'oid': (1, 3, 36, 6, 1, 1)}, + 'validity': {'comment': 'Telesec attribute', + 'description': 'validity (0 2 262 1 10 7 13)', + 'hexoid': '06 07 02 82 06 01 0A 07 0D', + 'name': 'validity', + 'oid': (0, 2, 262, 1, 10, 7, 13)}, + 'vendor': {'comment': 'SET vendor', + 'description': 'vendor (2 23 42 9)', + 'hexoid': '06 04 67 2A 09 00', + 'name': 'vendor', + 'oid': (2, 23, 42, 9)}, + 'verisignCPSv1notice': {'comment': 'Verisign (obsolete)', + 'description': 'verisignCPSv1notice (2 16 840 1 113733 1 7 1 1 1)', + 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 02', + 'name': 'verisignCPSv1notice', + 'oid': (2, 16, 840, 1, 113733, 1, 7, 1, 1, 1)}, + 'verisignCPSv1nsi': {'comment': 'Verisign', + 'description': 'verisignCPSv1nsi (2 16 840 1 113733 1 7 1 1 2)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 08 01', + 'name': 'verisignCPSv1nsi', + 'oid': (2, 16, 840, 1, 113733, 1, 7, 1, 1, 2)}, + 'verisignCZAG': {'comment': 'Verisign', + 'description': 'verisignCZAG (2 16 840 1 113733 1 6 3)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 06', + 'name': 'verisignCZAG', + 'oid': (2, 16, 840, 1, 113733, 1, 6, 3)}, + 'verisignInBox': {'comment': 'Verisign', + 'description': 'verisignInBox (2 16 840 1 113733 1 6 6)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 0D', + 'name': 'verisignInBox', + 'oid': (2, 16, 840, 1, 113733, 1, 6, 6)}, + 'wtlsTemplate': {'comment': 'PKIX CRMF registration', + 'description': 'wtlsTemplate (1 3 6 1 5 5 7 5 1 8)', + 'hexoid': '06 08 2B 06 01 05 05 07 05 02', + 'name': 'wtlsTemplate', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 8)}, + 'x121Address': {'comment': 'X.520 id-at (2 5 4)', + 'description': 'x121Address (2 5 4 24)', + 'hexoid': '06 03 55 04 19', + 'name': 'x121Address', + 'oid': (2, 5, 4, 24)}, + 'x509Certificate': {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'x509Certificate (for PKCS #12) (1 2 840 113549 1 9 22 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 02', + 'name': 'x509Certificate', + 'oid': (1, 2, 840, 113549, 1, 9, 22, 1)}, + 'x509CertificateList': {'comment': 'Telesec attribute', + 'description': 'x509CertificateList (0 2 262 1 10 7 23)', + 'hexoid': '06 07 02 82 06 01 0A 07 17', + 'name': 'x509CertificateList', + 'oid': (0, 2, 262, 1, 10, 7, 23)}, + 'x9f1-cert-mgmt': {'comment': 'ANSI X9.57 module', + 'description': 'x9f1-cert-mgmt (1 2 840 10040 1 1)', + 'hexoid': '06 07 2A 86 48 CE 38 01 01', + 'name': 'x9f1-cert-mgmt', + 'oid': (1, 2, 840, 10040, 1, 1)}, + 'xYZZY policyIdentifier': {'comment': 'enterprise', + 'description': 'xYZZY policyIdentifier (1 3 6 1 4 1 3029 88 89 90 90 89)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60', + 'name': 'xYZZY policyIdentifier', + 'oid': (1, + 3, + 6, + 1, + 4, + 1, + 3029, + 88, + 89, + 90, + 90, + 89)}, + 'yesnoTrustAttr': {'comment': 'Microsoft attribute', + 'description': 'yesnoTrustAttr (1 3 6 1 4 1 311 10 4 1)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 02', + 'name': 'yesnoTrustAttr', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 4, 1)}, + 'zKeyData': {'comment': 'Telesec attribute', + 'description': 'zKeyData (0 2 262 1 10 7 39)', + 'hexoid': '06 07 02 82 06 01 0A 07 27', + 'name': 'zKeyData', + 'oid': (0, 2, 262, 1, 10, 7, 39)}, + 'zert93': {'comment': 'Telesec attribute', + 'description': 'zert93 (0 2 262 1 10 7 14)', + 'hexoid': '06 07 02 82 06 01 0A 07 0E', + 'name': 'zert93', + 'oid': (0, 2, 262, 1, 10, 7, 14)}} diff --git a/pow/POW-0.7/lib/_oids.py b/pow/POW-0.7/lib/_oids.py new file mode 100644 index 00000000..0800085d --- /dev/null +++ b/pow/POW-0.7/lib/_oids.py @@ -0,0 +1,7102 @@ +data = {(0, 2, 262, 1, 10): {'comment': 'Deutsche Telekom', + 'description': 'Telesec (0 2 262 1 10)', + 'hexoid': '06 05 02 82 06 01 0A', + 'name': 'Telesec', + 'oid': (0, 2, 262, 1, 10)}, + (0, 2, 262, 1, 10, 0): {'comment': 'Telesec', + 'description': 'extension (0 2 262 1 10 0)', + 'hexoid': '06 06 02 82 06 01 0A 00', + 'name': 'extension', + 'oid': (0, 2, 262, 1, 10, 0)}, + (0, 2, 262, 1, 10, 1): {'comment': 'Telesec', + 'description': 'mechanism (0 2 262 1 10 1)', + 'hexoid': '06 06 02 82 06 01 0A 01', + 'name': 'mechanism', + 'oid': (0, 2, 262, 1, 10, 1)}, + (0, 2, 262, 1, 10, 1, 0): {'comment': 'Telesec mechanism', + 'description': 'authentication (0 2 262 1 10 1 0)', + 'hexoid': '06 07 02 82 06 01 0A 01 00', + 'name': 'authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0)}, + (0, 2, 262, 1, 10, 1, 0, 1): {'comment': 'Telesec authentication', + 'description': 'passwordAuthentication (0 2 262 1 10 1 0 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 01', + 'name': 'passwordAuthentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 1)}, + (0, 2, 262, 1, 10, 1, 0, 2): {'comment': 'Telesec authentication', + 'description': 'protectedPasswordAuthentication (0 2 262 1 10 1 0 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 02', + 'name': 'protectedPasswordAuthentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 2)}, + (0, 2, 262, 1, 10, 1, 0, 3): {'comment': 'Telesec authentication', + 'description': 'oneWayX509Authentication (0 2 262 1 10 1 0 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 03', + 'name': 'oneWayX509Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 3)}, + (0, 2, 262, 1, 10, 1, 0, 4): {'comment': 'Telesec authentication', + 'description': 'twoWayX509Authentication (0 2 262 1 10 1 0 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 04', + 'name': 'twoWayX509Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 4)}, + (0, 2, 262, 1, 10, 1, 0, 5): {'comment': 'Telesec authentication', + 'description': 'threeWayX509Authentication (0 2 262 1 10 1 0 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 05', + 'name': 'threeWayX509Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 5)}, + (0, 2, 262, 1, 10, 1, 0, 6): {'comment': 'Telesec authentication', + 'description': 'oneWayISO9798Authentication (0 2 262 1 10 1 0 6)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 06', + 'name': 'oneWayISO9798Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 6)}, + (0, 2, 262, 1, 10, 1, 0, 7): {'comment': 'Telesec authentication', + 'description': 'twoWayISO9798Authentication (0 2 262 1 10 1 0 7)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 07', + 'name': 'twoWayISO9798Authentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 7)}, + (0, 2, 262, 1, 10, 1, 0, 8): {'comment': 'Telesec authentication', + 'description': 'telekomAuthentication (0 2 262 1 10 1 0 8)', + 'hexoid': '06 08 02 82 06 01 0A 01 00 08', + 'name': 'telekomAuthentication', + 'oid': (0, 2, 262, 1, 10, 1, 0, 8)}, + (0, 2, 262, 1, 10, 1, 1): {'comment': 'Telesec mechanism', + 'description': 'signature (0 2 262 1 10 1 1)', + 'hexoid': '06 07 02 82 06 01 0A 01 01', + 'name': 'signature', + 'oid': (0, 2, 262, 1, 10, 1, 1)}, + (0, 2, 262, 1, 10, 1, 1, 1): {'comment': 'Telesec mechanism', + 'description': 'md4WithRSAAndISO9697 (0 2 262 1 10 1 1 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 01', + 'name': 'md4WithRSAAndISO9697', + 'oid': (0, 2, 262, 1, 10, 1, 1, 1)}, + (0, 2, 262, 1, 10, 1, 1, 2): {'comment': 'Telesec mechanism', + 'description': 'md4WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 02', + 'name': 'md4WithRSAAndTelesecSignatureStandard', + 'oid': (0, 2, 262, 1, 10, 1, 1, 2)}, + (0, 2, 262, 1, 10, 1, 1, 3): {'comment': 'Telesec mechanism', + 'description': 'md5WithRSAAndISO9697 (0 2 262 1 10 1 1 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 03', + 'name': 'md5WithRSAAndISO9697', + 'oid': (0, 2, 262, 1, 10, 1, 1, 3)}, + (0, 2, 262, 1, 10, 1, 1, 4): {'comment': 'Telesec mechanism', + 'description': 'md5WithRSAAndTelesecSignatureStandard (0 2 262 1 10 1 1 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 04', + 'name': 'md5WithRSAAndTelesecSignatureStandard', + 'oid': (0, 2, 262, 1, 10, 1, 1, 4)}, + (0, 2, 262, 1, 10, 1, 1, 5): {'comment': 'Telesec mechanism', + 'description': 'ripemd160WithRSAAndTelekomSignatureStandard (0 2 262 1 10 1 1 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 05', + 'name': 'ripemd160WithRSAAndTelekomSignatureStandard', + 'oid': (0, 2, 262, 1, 10, 1, 1, 5)}, + (0, 2, 262, 1, 10, 1, 1, 9): {'comment': 'Telesec signature', + 'description': 'hbciRsaSignature (0 2 262 1 10 1 1 9)', + 'hexoid': '06 08 02 82 06 01 0A 01 01 09', + 'name': 'hbciRsaSignature', + 'oid': (0, 2, 262, 1, 10, 1, 1, 9)}, + (0, 2, 262, 1, 10, 1, 2): {'comment': 'Telesec mechanism', + 'description': 'encryption (0 2 262 1 10 1 2)', + 'hexoid': '06 07 02 82 06 01 0A 01 02', + 'name': 'encryption', + 'oid': (0, 2, 262, 1, 10, 1, 2)}, + (0, 2, 262, 1, 10, 1, 2, 0): {'comment': 'Telesec encryption', + 'description': 'none (0 2 262 1 10 1 2 0)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 00', + 'name': 'none', + 'oid': (0, 2, 262, 1, 10, 1, 2, 0)}, + (0, 2, 262, 1, 10, 1, 2, 1): {'comment': 'Telesec encryption', + 'description': 'rsaTelesec (0 2 262 1 10 1 2 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 01', + 'name': 'rsaTelesec', + 'oid': (0, 2, 262, 1, 10, 1, 2, 1)}, + (0, 2, 262, 1, 10, 1, 2, 2): {'comment': 'Telesec encryption', + 'description': 'des (0 2 262 1 10 1 2 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 02', + 'name': 'des', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2)}, + (0, 2, 262, 1, 10, 1, 2, 2, 1): {'comment': 'Telesec encryption', + 'description': 'desECB (0 2 262 1 10 1 2 2 1)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 01', + 'name': 'desECB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 1)}, + (0, 2, 262, 1, 10, 1, 2, 2, 2): {'comment': 'Telesec encryption', + 'description': 'desCBC (0 2 262 1 10 1 2 2 2)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 02', + 'name': 'desCBC', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 2)}, + (0, 2, 262, 1, 10, 1, 2, 2, 3): {'comment': 'Telesec encryption', + 'description': 'desOFB (0 2 262 1 10 1 2 2 3)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 03', + 'name': 'desOFB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 3)}, + (0, 2, 262, 1, 10, 1, 2, 2, 4): {'comment': 'Telesec encryption', + 'description': 'desCFB8 (0 2 262 1 10 1 2 2 4)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 04', + 'name': 'desCFB8', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 4)}, + (0, 2, 262, 1, 10, 1, 2, 2, 5): {'comment': 'Telesec encryption', + 'description': 'desCFB64 (0 2 262 1 10 1 2 2 5)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 02 05', + 'name': 'desCFB64', + 'oid': (0, 2, 262, 1, 10, 1, 2, 2, 5)}, + (0, 2, 262, 1, 10, 1, 2, 3): {'comment': 'Telesec encryption', + 'description': 'des3 (0 2 262 1 10 1 2 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 03', + 'name': 'des3', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3)}, + (0, 2, 262, 1, 10, 1, 2, 3, 1): {'comment': 'Telesec encryption', + 'description': 'des3ECB (0 2 262 1 10 1 2 3 1)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 01', + 'name': 'des3ECB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 1)}, + (0, 2, 262, 1, 10, 1, 2, 3, 2): {'comment': 'Telesec encryption', + 'description': 'des3CBC (0 2 262 1 10 1 2 3 2)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 02', + 'name': 'des3CBC', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 2)}, + (0, 2, 262, 1, 10, 1, 2, 3, 3): {'comment': 'Telesec encryption', + 'description': 'des3OFB (0 2 262 1 10 1 2 3 3)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 03', + 'name': 'des3OFB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 3)}, + (0, 2, 262, 1, 10, 1, 2, 3, 4): {'comment': 'Telesec encryption', + 'description': 'des3CFB8 (0 2 262 1 10 1 2 3 4)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 04', + 'name': 'des3CFB8', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 4)}, + (0, 2, 262, 1, 10, 1, 2, 3, 5): {'comment': 'Telesec encryption', + 'description': 'des3CFB64 (0 2 262 1 10 1 2 3 5)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 03 05', + 'name': 'des3CFB64', + 'oid': (0, 2, 262, 1, 10, 1, 2, 3, 5)}, + (0, 2, 262, 1, 10, 1, 2, 4): {'comment': 'Telesec encryption', + 'description': 'magenta (0 2 262 1 10 1 2 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 04', + 'name': 'magenta', + 'oid': (0, 2, 262, 1, 10, 1, 2, 4)}, + (0, 2, 262, 1, 10, 1, 2, 5): {'comment': 'Telesec encryption', + 'description': 'idea (0 2 262 1 10 1 2 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 02 05', + 'name': 'idea', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5)}, + (0, 2, 262, 1, 10, 1, 2, 5, 1): {'comment': 'Telesec encryption', + 'description': 'ideaECB (0 2 262 1 10 1 2 5 1)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 01', + 'name': 'ideaECB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 1)}, + (0, 2, 262, 1, 10, 1, 2, 5, 2): {'comment': 'Telesec encryption', + 'description': 'ideaCBC (0 2 262 1 10 1 2 5 2)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 02', + 'name': 'ideaCBC', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 2)}, + (0, 2, 262, 1, 10, 1, 2, 5, 3): {'comment': 'Telesec encryption', + 'description': 'ideaOFB (0 2 262 1 10 1 2 5 3)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 03', + 'name': 'ideaOFB', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 3)}, + (0, 2, 262, 1, 10, 1, 2, 5, 4): {'comment': 'Telesec encryption', + 'description': 'ideaCFB8 (0 2 262 1 10 1 2 5 4)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 04', + 'name': 'ideaCFB8', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 4)}, + (0, 2, 262, 1, 10, 1, 2, 5, 5): {'comment': 'Telesec encryption', + 'description': 'ideaCFB64 (0 2 262 1 10 1 2 5 5)', + 'hexoid': '06 09 02 82 06 01 0A 01 02 05 05', + 'name': 'ideaCFB64', + 'oid': (0, 2, 262, 1, 10, 1, 2, 5, 5)}, + (0, 2, 262, 1, 10, 1, 3): {'comment': 'Telesec mechanism', + 'description': 'oneWayFunction (0 2 262 1 10 1 3)', + 'hexoid': '06 07 02 82 06 01 0A 01 03', + 'name': 'oneWayFunction', + 'oid': (0, 2, 262, 1, 10, 1, 3)}, + (0, 2, 262, 1, 10, 1, 3, 1): {'comment': 'Telesec one-way function', + 'description': 'md4 (0 2 262 1 10 1 3 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 01', + 'name': 'md4', + 'oid': (0, 2, 262, 1, 10, 1, 3, 1)}, + (0, 2, 262, 1, 10, 1, 3, 2): {'comment': 'Telesec one-way function', + 'description': 'md5 (0 2 262 1 10 1 3 2)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 02', + 'name': 'md5', + 'oid': (0, 2, 262, 1, 10, 1, 3, 2)}, + (0, 2, 262, 1, 10, 1, 3, 3): {'comment': 'Telesec one-way function', + 'description': 'sqModNX509 (0 2 262 1 10 1 3 3)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 03', + 'name': 'sqModNX509', + 'oid': (0, 2, 262, 1, 10, 1, 3, 3)}, + (0, 2, 262, 1, 10, 1, 3, 4): {'comment': 'Telesec one-way function', + 'description': 'sqModNISO (0 2 262 1 10 1 3 4)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 04', + 'name': 'sqModNISO', + 'oid': (0, 2, 262, 1, 10, 1, 3, 4)}, + (0, 2, 262, 1, 10, 1, 3, 5): {'comment': 'Telesec one-way function', + 'description': 'ripemd128 (0 2 262 1 10 1 3 5)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 05', + 'name': 'ripemd128', + 'oid': (0, 2, 262, 1, 10, 1, 3, 5)}, + (0, 2, 262, 1, 10, 1, 3, 6): {'comment': 'Telesec one-way function', + 'description': 'hashUsingBlockCipher (0 2 262 1 10 1 3 6)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 06', + 'name': 'hashUsingBlockCipher', + 'oid': (0, 2, 262, 1, 10, 1, 3, 6)}, + (0, 2, 262, 1, 10, 1, 3, 7): {'comment': 'Telesec one-way function', + 'description': 'mac (0 2 262 1 10 1 3 7)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 07', + 'name': 'mac', + 'oid': (0, 2, 262, 1, 10, 1, 3, 7)}, + (0, 2, 262, 1, 10, 1, 3, 8): {'comment': 'Telesec one-way function', + 'description': 'ripemd160 (0 2 262 1 10 1 3 8)', + 'hexoid': '06 08 02 82 06 01 0A 01 03 08', + 'name': 'ripemd160', + 'oid': (0, 2, 262, 1, 10, 1, 3, 8)}, + (0, 2, 262, 1, 10, 1, 4): {'comment': 'Telesec mechanism', + 'description': 'fecFunction (0 2 262 1 10 1 4)', + 'hexoid': '06 07 02 82 06 01 0A 01 04', + 'name': 'fecFunction', + 'oid': (0, 2, 262, 1, 10, 1, 4)}, + (0, 2, 262, 1, 10, 1, 4, 1): {'comment': 'Telesec mechanism', + 'description': 'reedSolomon (0 2 262 1 10 1 4 1)', + 'hexoid': '06 08 02 82 06 01 0A 01 04 01', + 'name': 'reedSolomon', + 'oid': (0, 2, 262, 1, 10, 1, 4, 1)}, + (0, 2, 262, 1, 10, 2, 1): {'comment': 'Telesec module', + 'description': 'attributeTypes (0 2 262 1 10 2 1)', + 'hexoid': '06 07 02 82 06 01 0A 02 01', + 'name': 'attributeTypes', + 'oid': (0, 2, 262, 1, 10, 2, 1)}, + (0, 2, 262, 1, 10, 2, 2): {'comment': 'Telesec module', + 'description': 'certificateTypes (0 2 262 1 10 2 2)', + 'hexoid': '06 07 02 82 06 01 0A 02 02', + 'name': 'certificateTypes', + 'oid': (0, 2, 262, 1, 10, 2, 2)}, + (0, 2, 262, 1, 10, 2, 3): {'comment': 'Telesec module', + 'description': 'messageTypes (0 2 262 1 10 2 3)', + 'hexoid': '06 07 02 82 06 01 0A 02 03', + 'name': 'messageTypes', + 'oid': (0, 2, 262, 1, 10, 2, 3)}, + (0, 2, 262, 1, 10, 2, 4): {'comment': 'Telesec module', + 'description': 'plProtocol (0 2 262 1 10 2 4)', + 'hexoid': '06 07 02 82 06 01 0A 02 04', + 'name': 'plProtocol', + 'oid': (0, 2, 262, 1, 10, 2, 4)}, + (0, 2, 262, 1, 10, 2, 5): {'comment': 'Telesec module', + 'description': 'smeAndComponentsOfSme (0 2 262 1 10 2 5)', + 'hexoid': '06 07 02 82 06 01 0A 02 05', + 'name': 'smeAndComponentsOfSme', + 'oid': (0, 2, 262, 1, 10, 2, 5)}, + (0, 2, 262, 1, 10, 2, 6): {'comment': 'Telesec module', + 'description': 'fec (0 2 262 1 10 2 6)', + 'hexoid': '06 07 02 82 06 01 0A 02 06', + 'name': 'fec', + 'oid': (0, 2, 262, 1, 10, 2, 6)}, + (0, 2, 262, 1, 10, 2, 7): {'comment': 'Telesec module', + 'description': 'usefulDefinitions (0 2 262 1 10 2 7)', + 'hexoid': '06 07 02 82 06 01 0A 02 07', + 'name': 'usefulDefinitions', + 'oid': (0, 2, 262, 1, 10, 2, 7)}, + (0, 2, 262, 1, 10, 2, 8): {'comment': 'Telesec module', + 'description': 'stefiles (0 2 262 1 10 2 8)', + 'hexoid': '06 07 02 82 06 01 0A 02 08', + 'name': 'stefiles', + 'oid': (0, 2, 262, 1, 10, 2, 8)}, + (0, 2, 262, 1, 10, 2, 9): {'comment': 'Telesec module', + 'description': 'sadmib (0 2 262 1 10 2 9)', + 'hexoid': '06 07 02 82 06 01 0A 02 09', + 'name': 'sadmib', + 'oid': (0, 2, 262, 1, 10, 2, 9)}, + (0, 2, 262, 1, 10, 2, 10): {'comment': 'Telesec module', + 'description': 'electronicOrder (0 2 262 1 10 2 10)', + 'hexoid': '06 07 02 82 06 01 0A 02 0A', + 'name': 'electronicOrder', + 'oid': (0, 2, 262, 1, 10, 2, 10)}, + (0, 2, 262, 1, 10, 2, 11): {'comment': 'Telesec module', + 'description': 'telesecTtpAsymmetricApplication (0 2 262 1 10 2 11)', + 'hexoid': '06 07 02 82 06 01 0A 02 0B', + 'name': 'telesecTtpAsymmetricApplication', + 'oid': (0, 2, 262, 1, 10, 2, 11)}, + (0, 2, 262, 1, 10, 2, 12): {'comment': 'Telesec module', + 'description': 'telesecTtpBasisApplication (0 2 262 1 10 2 12)', + 'hexoid': '06 07 02 82 06 01 0A 02 0C', + 'name': 'telesecTtpBasisApplication', + 'oid': (0, 2, 262, 1, 10, 2, 12)}, + (0, 2, 262, 1, 10, 2, 13): {'comment': 'Telesec module', + 'description': 'telesecTtpMessages (0 2 262 1 10 2 13)', + 'hexoid': '06 07 02 82 06 01 0A 02 0D', + 'name': 'telesecTtpMessages', + 'oid': (0, 2, 262, 1, 10, 2, 13)}, + (0, 2, 262, 1, 10, 2, 14): {'comment': 'Telesec module', + 'description': 'telesecTtpTimeStampApplication (0 2 262 1 10 2 14)', + 'hexoid': '06 07 02 82 06 01 0A 02 0E', + 'name': 'telesecTtpTimeStampApplication', + 'oid': (0, 2, 262, 1, 10, 2, 14)}, + (0, 2, 262, 1, 10, 3, 0): {'comment': 'Telesec object class', + 'description': 'telesecOtherName (0 2 262 1 10 3 0)', + 'hexoid': '06 07 02 82 06 01 0A 03 00', + 'name': 'telesecOtherName', + 'oid': (0, 2, 262, 1, 10, 3, 0)}, + (0, 2, 262, 1, 10, 3, 2): {'comment': 'Telesec object class', + 'description': 'directoryType (0 2 262 1 10 3 2)', + 'hexoid': '06 07 02 82 06 01 0A 03 02', + 'name': 'directoryType', + 'oid': (0, 2, 262, 1, 10, 3, 2)}, + (0, 2, 262, 1, 10, 3, 3): {'comment': 'Telesec object class', + 'description': 'directoryGroup (0 2 262 1 10 3 3)', + 'hexoid': '06 07 02 82 06 01 0A 03 03', + 'name': 'directoryGroup', + 'oid': (0, 2, 262, 1, 10, 3, 3)}, + (0, 2, 262, 1, 10, 3, 4): {'comment': 'Telesec object class', + 'description': 'directoryUser (0 2 262 1 10 3 4)', + 'hexoid': '06 07 02 82 06 01 0A 03 04', + 'name': 'directoryUser', + 'oid': (0, 2, 262, 1, 10, 3, 4)}, + (0, 2, 262, 1, 10, 3, 5): {'comment': 'Telesec object class', + 'description': 'symmetricKeyEntry (0 2 262 1 10 3 5)', + 'hexoid': '06 07 02 82 06 01 0A 03 05', + 'name': 'symmetricKeyEntry', + 'oid': (0, 2, 262, 1, 10, 3, 5)}, + (0, 2, 262, 1, 10, 4): {'comment': 'Telesec', + 'description': 'package (0 2 262 1 10 4)', + 'hexoid': '06 06 02 82 06 01 0A 04', + 'name': 'package', + 'oid': (0, 2, 262, 1, 10, 4)}, + (0, 2, 262, 1, 10, 5): {'comment': 'Telesec', + 'description': 'parameter (0 2 262 1 10 5)', + 'hexoid': '06 06 02 82 06 01 0A 05', + 'name': 'parameter', + 'oid': (0, 2, 262, 1, 10, 5)}, + (0, 2, 262, 1, 10, 6): {'comment': 'Telesec', + 'description': 'nameBinding (0 2 262 1 10 6)', + 'hexoid': '06 06 02 82 06 01 0A 06', + 'name': 'nameBinding', + 'oid': (0, 2, 262, 1, 10, 6)}, + (0, 2, 262, 1, 10, 7, 0): {'comment': 'Telesec attribute', + 'description': 'applicationGroupIdentifier (0 2 262 1 10 7 0)', + 'hexoid': '06 07 02 82 06 01 0A 07 00', + 'name': 'applicationGroupIdentifier', + 'oid': (0, 2, 262, 1, 10, 7, 0)}, + (0, 2, 262, 1, 10, 7, 2): {'comment': 'Telesec attribute', + 'description': 'telesecCertificate (0 2 262 1 10 7 2)', + 'hexoid': '06 07 02 82 06 01 0A 07 02', + 'name': 'telesecCertificate', + 'oid': (0, 2, 262, 1, 10, 7, 2)}, + (0, 2, 262, 1, 10, 7, 3): {'comment': 'Telesec attribute', + 'description': 'certificateNumber (0 2 262 1 10 7 3)', + 'hexoid': '06 07 02 82 06 01 0A 07 03', + 'name': 'certificateNumber', + 'oid': (0, 2, 262, 1, 10, 7, 3)}, + (0, 2, 262, 1, 10, 7, 5): {'comment': 'Telesec attribute', + 'description': 'creationDate (0 2 262 1 10 7 5)', + 'hexoid': '06 07 02 82 06 01 0A 07 05', + 'name': 'creationDate', + 'oid': (0, 2, 262, 1, 10, 7, 5)}, + (0, 2, 262, 1, 10, 7, 6): {'comment': 'Telesec attribute', + 'description': 'issuer (0 2 262 1 10 7 6)', + 'hexoid': '06 07 02 82 06 01 0A 07 06', + 'name': 'issuer', + 'oid': (0, 2, 262, 1, 10, 7, 6)}, + (0, 2, 262, 1, 10, 7, 7): {'comment': 'Telesec attribute', + 'description': 'namingAuthority (0 2 262 1 10 7 7)', + 'hexoid': '06 07 02 82 06 01 0A 07 07', + 'name': 'namingAuthority', + 'oid': (0, 2, 262, 1, 10, 7, 7)}, + (0, 2, 262, 1, 10, 7, 8): {'comment': 'Telesec attribute', + 'description': 'publicKeyDirectory (0 2 262 1 10 7 8)', + 'hexoid': '06 07 02 82 06 01 0A 07 08', + 'name': 'publicKeyDirectory', + 'oid': (0, 2, 262, 1, 10, 7, 8)}, + (0, 2, 262, 1, 10, 7, 9): {'comment': 'Telesec attribute', + 'description': 'securityDomain (0 2 262 1 10 7 9)', + 'hexoid': '06 07 02 82 06 01 0A 07 09', + 'name': 'securityDomain', + 'oid': (0, 2, 262, 1, 10, 7, 9)}, + (0, 2, 262, 1, 10, 7, 10): {'comment': 'Telesec attribute', + 'description': 'subject (0 2 262 1 10 7 10)', + 'hexoid': '06 07 02 82 06 01 0A 07 0A', + 'name': 'subject', + 'oid': (0, 2, 262, 1, 10, 7, 10)}, + (0, 2, 262, 1, 10, 7, 11): {'comment': 'Telesec attribute', + 'description': 'timeOfRevocation (0 2 262 1 10 7 11)', + 'hexoid': '06 07 02 82 06 01 0A 07 0B', + 'name': 'timeOfRevocation', + 'oid': (0, 2, 262, 1, 10, 7, 11)}, + (0, 2, 262, 1, 10, 7, 12): {'comment': 'Telesec attribute', + 'description': 'userGroupReference (0 2 262 1 10 7 12)', + 'hexoid': '06 07 02 82 06 01 0A 07 0C', + 'name': 'userGroupReference', + 'oid': (0, 2, 262, 1, 10, 7, 12)}, + (0, 2, 262, 1, 10, 7, 13): {'comment': 'Telesec attribute', + 'description': 'validity (0 2 262 1 10 7 13)', + 'hexoid': '06 07 02 82 06 01 0A 07 0D', + 'name': 'validity', + 'oid': (0, 2, 262, 1, 10, 7, 13)}, + (0, 2, 262, 1, 10, 7, 14): {'comment': 'Telesec attribute', + 'description': 'zert93 (0 2 262 1 10 7 14)', + 'hexoid': '06 07 02 82 06 01 0A 07 0E', + 'name': 'zert93', + 'oid': (0, 2, 262, 1, 10, 7, 14)}, + (0, 2, 262, 1, 10, 7, 15): {'comment': 'Telesec attribute', + 'description': 'securityMessEnv (0 2 262 1 10 7 15)', + 'hexoid': '06 07 02 82 06 01 0A 07 0F', + 'name': 'securityMessEnv', + 'oid': (0, 2, 262, 1, 10, 7, 15)}, + (0, 2, 262, 1, 10, 7, 16): {'comment': 'Telesec attribute', + 'description': 'anonymizedPublicKeyDirectory (0 2 262 1 10 7 16)', + 'hexoid': '06 07 02 82 06 01 0A 07 10', + 'name': 'anonymizedPublicKeyDirectory', + 'oid': (0, 2, 262, 1, 10, 7, 16)}, + (0, 2, 262, 1, 10, 7, 17): {'comment': 'Telesec attribute', + 'description': 'telesecGivenName (0 2 262 1 10 7 17)', + 'hexoid': '06 07 02 82 06 01 0A 07 11', + 'name': 'telesecGivenName', + 'oid': (0, 2, 262, 1, 10, 7, 17)}, + (0, 2, 262, 1, 10, 7, 18): {'comment': 'Telesec attribute', + 'description': 'nameAdditions (0 2 262 1 10 7 18)', + 'hexoid': '06 07 02 82 06 01 0A 07 12', + 'name': 'nameAdditions', + 'oid': (0, 2, 262, 1, 10, 7, 18)}, + (0, 2, 262, 1, 10, 7, 19): {'comment': 'Telesec attribute', + 'description': 'telesecPostalCode (0 2 262 1 10 7 19)', + 'hexoid': '06 07 02 82 06 01 0A 07 13', + 'name': 'telesecPostalCode', + 'oid': (0, 2, 262, 1, 10, 7, 19)}, + (0, 2, 262, 1, 10, 7, 20): {'comment': 'Telesec attribute', + 'description': 'nameDistinguisher (0 2 262 1 10 7 20)', + 'hexoid': '06 07 02 82 06 01 0A 07 14', + 'name': 'nameDistinguisher', + 'oid': (0, 2, 262, 1, 10, 7, 20)}, + (0, 2, 262, 1, 10, 7, 21): {'comment': 'Telesec attribute', + 'description': 'telesecCertificateList (0 2 262 1 10 7 21)', + 'hexoid': '06 07 02 82 06 01 0A 07 15', + 'name': 'telesecCertificateList', + 'oid': (0, 2, 262, 1, 10, 7, 21)}, + (0, 2, 262, 1, 10, 7, 22): {'comment': 'Telesec attribute', + 'description': 'teletrustCertificateList (0 2 262 1 10 7 22)', + 'hexoid': '06 07 02 82 06 01 0A 07 16', + 'name': 'teletrustCertificateList', + 'oid': (0, 2, 262, 1, 10, 7, 22)}, + (0, 2, 262, 1, 10, 7, 23): {'comment': 'Telesec attribute', + 'description': 'x509CertificateList (0 2 262 1 10 7 23)', + 'hexoid': '06 07 02 82 06 01 0A 07 17', + 'name': 'x509CertificateList', + 'oid': (0, 2, 262, 1, 10, 7, 23)}, + (0, 2, 262, 1, 10, 7, 24): {'comment': 'Telesec attribute', + 'description': 'timeOfIssue (0 2 262 1 10 7 24)', + 'hexoid': '06 07 02 82 06 01 0A 07 18', + 'name': 'timeOfIssue', + 'oid': (0, 2, 262, 1, 10, 7, 24)}, + (0, 2, 262, 1, 10, 7, 25): {'comment': 'Telesec attribute', + 'description': 'physicalCardNumber (0 2 262 1 10 7 25)', + 'hexoid': '06 07 02 82 06 01 0A 07 19', + 'name': 'physicalCardNumber', + 'oid': (0, 2, 262, 1, 10, 7, 25)}, + (0, 2, 262, 1, 10, 7, 26): {'comment': 'Telesec attribute', + 'description': 'fileType (0 2 262 1 10 7 26)', + 'hexoid': '06 07 02 82 06 01 0A 07 1A', + 'name': 'fileType', + 'oid': (0, 2, 262, 1, 10, 7, 26)}, + (0, 2, 262, 1, 10, 7, 27): {'comment': 'Telesec attribute', + 'description': 'ctlFileIsArchive (0 2 262 1 10 7 27)', + 'hexoid': '06 07 02 82 06 01 0A 07 1B', + 'name': 'ctlFileIsArchive', + 'oid': (0, 2, 262, 1, 10, 7, 27)}, + (0, 2, 262, 1, 10, 7, 29): {'comment': 'Telesec attribute', + 'description': 'certificateTemplateList (0 2 262 1 10 7 29)', + 'hexoid': '06 07 02 82 06 01 0A 07 1D', + 'name': 'certificateTemplateList', + 'oid': (0, 2, 262, 1, 10, 7, 29)}, + (0, 2, 262, 1, 10, 7, 30): {'comment': 'Telesec attribute', + 'description': 'directoryName (0 2 262 1 10 7 30)', + 'hexoid': '06 07 02 82 06 01 0A 07 1E', + 'name': 'directoryName', + 'oid': (0, 2, 262, 1, 10, 7, 30)}, + (0, 2, 262, 1, 10, 7, 31): {'comment': 'Telesec attribute', + 'description': 'directoryTypeName (0 2 262 1 10 7 31)', + 'hexoid': '06 07 02 82 06 01 0A 07 1F', + 'name': 'directoryTypeName', + 'oid': (0, 2, 262, 1, 10, 7, 31)}, + (0, 2, 262, 1, 10, 7, 32): {'comment': 'Telesec attribute', + 'description': 'directoryGroupName (0 2 262 1 10 7 32)', + 'hexoid': '06 07 02 82 06 01 0A 07 20', + 'name': 'directoryGroupName', + 'oid': (0, 2, 262, 1, 10, 7, 32)}, + (0, 2, 262, 1, 10, 7, 33): {'comment': 'Telesec attribute', + 'description': 'directoryUserName (0 2 262 1 10 7 33)', + 'hexoid': '06 07 02 82 06 01 0A 07 21', + 'name': 'directoryUserName', + 'oid': (0, 2, 262, 1, 10, 7, 33)}, + (0, 2, 262, 1, 10, 7, 34): {'comment': 'Telesec attribute', + 'description': 'revocationFlag (0 2 262 1 10 7 34)', + 'hexoid': '06 07 02 82 06 01 0A 07 22', + 'name': 'revocationFlag', + 'oid': (0, 2, 262, 1, 10, 7, 34)}, + (0, 2, 262, 1, 10, 7, 35): {'comment': 'Telesec attribute', + 'description': 'symmetricKeyEntryName (0 2 262 1 10 7 35)', + 'hexoid': '06 07 02 82 06 01 0A 07 23', + 'name': 'symmetricKeyEntryName', + 'oid': (0, 2, 262, 1, 10, 7, 35)}, + (0, 2, 262, 1, 10, 7, 36): {'comment': 'Telesec attribute', + 'description': 'glNumber (0 2 262 1 10 7 36)', + 'hexoid': '06 07 02 82 06 01 0A 07 24', + 'name': 'glNumber', + 'oid': (0, 2, 262, 1, 10, 7, 36)}, + (0, 2, 262, 1, 10, 7, 37): {'comment': 'Telesec attribute', + 'description': 'goNumber (0 2 262 1 10 7 37)', + 'hexoid': '06 07 02 82 06 01 0A 07 25', + 'name': 'goNumber', + 'oid': (0, 2, 262, 1, 10, 7, 37)}, + (0, 2, 262, 1, 10, 7, 38): {'comment': 'Telesec attribute', + 'description': 'gKeyData (0 2 262 1 10 7 38)', + 'hexoid': '06 07 02 82 06 01 0A 07 26', + 'name': 'gKeyData', + 'oid': (0, 2, 262, 1, 10, 7, 38)}, + (0, 2, 262, 1, 10, 7, 39): {'comment': 'Telesec attribute', + 'description': 'zKeyData (0 2 262 1 10 7 39)', + 'hexoid': '06 07 02 82 06 01 0A 07 27', + 'name': 'zKeyData', + 'oid': (0, 2, 262, 1, 10, 7, 39)}, + (0, 2, 262, 1, 10, 7, 40): {'comment': 'Telesec attribute', + 'description': 'ktKeyData (0 2 262 1 10 7 40)', + 'hexoid': '06 07 02 82 06 01 0A 07 28', + 'name': 'ktKeyData', + 'oid': (0, 2, 262, 1, 10, 7, 40)}, + (0, 2, 262, 1, 10, 7, 41): {'comment': 'Telesec attribute', + 'description': 'ktKeyNumber (0 2 262 1 10 7 41)', + 'hexoid': '06 07 02 82 06 01 0A 07 2A', + 'name': 'ktKeyNumber', + 'oid': (0, 2, 262, 1, 10, 7, 41)}, + (0, 2, 262, 1, 10, 7, 51): {'comment': 'Telesec attribute', + 'description': 'timeOfRevocationGen (0 2 262 1 10 7 51)', + 'hexoid': '06 07 02 82 06 01 0A 07 33', + 'name': 'timeOfRevocationGen', + 'oid': (0, 2, 262, 1, 10, 7, 51)}, + (0, 2, 262, 1, 10, 7, 52): {'comment': 'Telesec attribute', + 'description': 'liabilityText (0 2 262 1 10 7 52)', + 'hexoid': '06 07 02 82 06 01 0A 07 34', + 'name': 'liabilityText', + 'oid': (0, 2, 262, 1, 10, 7, 52)}, + (0, 2, 262, 1, 10, 8): {'comment': 'Telesec', + 'description': 'attributeGroup (0 2 262 1 10 8)', + 'hexoid': '06 06 02 82 06 01 0A 08', + 'name': 'attributeGroup', + 'oid': (0, 2, 262, 1, 10, 8)}, + (0, 2, 262, 1, 10, 9): {'comment': 'Telesec', + 'description': 'action (0 2 262 1 10 9)', + 'hexoid': '06 06 02 82 06 01 0A 09', + 'name': 'action', + 'oid': (0, 2, 262, 1, 10, 9)}, + (0, 2, 262, 1, 10, 10): {'comment': 'Telesec', + 'description': 'notification (0 2 262 1 10 10)', + 'hexoid': '06 06 02 82 06 01 0A 0A', + 'name': 'notification', + 'oid': (0, 2, 262, 1, 10, 10)}, + (0, 2, 262, 1, 10, 11): {'comment': 'Telesec', + 'description': 'snmp-mibs (0 2 262 1 10 11)', + 'hexoid': '06 06 02 82 06 01 0A 0B', + 'name': 'snmp-mibs', + 'oid': (0, 2, 262, 1, 10, 11)}, + (0, 2, 262, 1, 10, 11, 1): {'comment': 'Telesec SNMP MIBs', + 'description': 'securityApplication (0 2 262 1 10 11 1)', + 'hexoid': '06 07 02 82 06 01 0A 0B 01', + 'name': 'securityApplication', + 'oid': (0, 2, 262, 1, 10, 11, 1)}, + (0, 2, 262, 1, 10, 12): {'comment': 'Telesec', + 'description': 'certAndCrlExtensionDefinitions (0 2 262 1 10 12)', + 'hexoid': '06 06 02 82 06 01 0A 0C', + 'name': 'certAndCrlExtensionDefinitions', + 'oid': (0, 2, 262, 1, 10, 12)}, + (0, 2, 262, 1, 10, 12, 0): {'comment': 'Telesec cert/CRL extension', + 'description': 'certExtensionLiabilityLimitationExt (0 2 262 1 10 12 0)', + 'hexoid': '06 07 02 82 06 01 0A 0C 00', + 'name': 'certExtensionLiabilityLimitationExt', + 'oid': (0, 2, 262, 1, 10, 12, 0)}, + (0, 2, 262, 1, 10, 12, 1): {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecCertIdExt (0 2 262 1 10 12 1)', + 'hexoid': '06 07 02 82 06 01 0A 0C 01', + 'name': 'telesecCertIdExt', + 'oid': (0, 2, 262, 1, 10, 12, 1)}, + (0, 2, 262, 1, 10, 12, 2): {'comment': 'Telesec cert/CRL extension', + 'description': 'Telesec policyIdentifier (0 2 262 1 10 12 2)', + 'hexoid': '06 07 02 82 06 01 0A 0C 02', + 'name': 'Telesec policyIdentifier', + 'oid': (0, 2, 262, 1, 10, 12, 2)}, + (0, 2, 262, 1, 10, 12, 3): {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecPolicyQualifierID (0 2 262 1 10 12 3)', + 'hexoid': '06 07 02 82 06 01 0A 0C 03', + 'name': 'telesecPolicyQualifierID', + 'oid': (0, 2, 262, 1, 10, 12, 3)}, + (0, 2, 262, 1, 10, 12, 4): {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecCRLFilteredExt (0 2 262 1 10 12 4)', + 'hexoid': '06 07 02 82 06 01 0A 0C 04', + 'name': 'telesecCRLFilteredExt', + 'oid': (0, 2, 262, 1, 10, 12, 4)}, + (0, 2, 262, 1, 10, 12, 5): {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecCRLFilterExt (0 2 262 1 10 12 5)', + 'hexoid': '06 07 02 82 06 01 0A 0C 05', + 'name': 'telesecCRLFilterExt', + 'oid': (0, 2, 262, 1, 10, 12, 5)}, + (0, 2, 262, 1, 10, 12, 6): {'comment': 'Telesec cert/CRL extension', + 'description': 'telesecNamingAuthorityExt (0 2 262 1 10 12 6)', + 'hexoid': '06 07 02 82 06 01 0A 0C 06', + 'name': 'telesecNamingAuthorityExt', + 'oid': (0, 2, 262, 1, 10, 12, 6)}, + (0, 9, 2342, 19200300, 100, 1, 1): {'comment': 'Some oddball X.500 attribute collection', + 'description': 'userID (0 9 2342 19200300 100 1 1)', + 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 01', + 'name': 'userID', + 'oid': (0, 9, 2342, 19200300, 100, 1, 1)}, + (0, 9, 2342, 19200300, 100, 1, 3): {'comment': 'Some oddball X.500 attribute collection', + 'description': 'rfc822Mailbox (0 9 2342 19200300 100 1 3)', + 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 03', + 'name': 'rfc822Mailbox', + 'oid': (0, 9, 2342, 19200300, 100, 1, 3)}, + (0, 9, 2342, 19200300, 100, 1, 25): {'comment': 'Men are from Mars, this OID is from Pluto', + 'description': 'domainComponent (0 9 2342 19200300 100 1 25)', + 'hexoid': '06 0A 09 92 26 89 93 F2 2C 64 01 19', + 'name': 'domainComponent', + 'oid': (0, + 9, + 2342, + 19200300, + 100, + 1, + 25)}, + (1, 2, 36, 68980861, 1, 1, 2): {'comment': 'Signet CA', + 'description': 'Signet personal (1 2 36 68980861 1 1 2)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 02', + 'name': 'Signet personal', + 'oid': (1, 2, 36, 68980861, 1, 1, 2)}, + (1, 2, 36, 68980861, 1, 1, 3): {'comment': 'Signet CA', + 'description': 'Signet business (1 2 36 68980861 1 1 3)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 03', + 'name': 'Signet business', + 'oid': (1, 2, 36, 68980861, 1, 1, 3)}, + (1, 2, 36, 68980861, 1, 1, 4): {'comment': 'Signet CA', + 'description': 'Signet legal (1 2 36 68980861 1 1 4)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 04', + 'name': 'Signet legal', + 'oid': (1, 2, 36, 68980861, 1, 1, 4)}, + (1, 2, 36, 68980861, 1, 1, 10): {'comment': 'Signet CA', + 'description': 'Signet pilot (1 2 36 68980861 1 1 10)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 0A', + 'name': 'Signet pilot', + 'oid': (1, 2, 36, 68980861, 1, 1, 10)}, + (1, 2, 36, 68980861, 1, 1, 11): {'comment': 'Signet CA', + 'description': 'Signet intraNet (1 2 36 68980861 1 1 11)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 0B', + 'name': 'Signet intraNet', + 'oid': (1, 2, 36, 68980861, 1, 1, 11)}, + (1, 2, 36, 68980861, 1, 1, 20): {'comment': 'Signet CA', + 'description': 'Signet policyIdentifier (1 2 36 68980861 1 1 20)', + 'hexoid': '06 09 2A 24 A0 F2 A0 7D 01 01 14', + 'name': 'Signet policyIdentifier', + 'oid': (1, 2, 36, 68980861, 1, 1, 20)}, + (1, 2, 36, 75878867, 1, 100, 1, 1): {'comment': 'Certificates Australia CA', + 'description': 'Certificates Australia policyIdentifier (1 2 36 75878867 1 100 1 1)', + 'hexoid': '06 0A 2A 24 A4 97 A3 53 01 64 01 01', + 'name': 'Certificates Australia policyIdentifier', + 'oid': (1, + 2, + 36, + 75878867, + 1, + 100, + 1, + 1)}, + (1, 2, 392, 200011, 61, 1, 1, 1): {'comment': 'Mitsubishi security algorithm', + 'description': 'symmetric-encryption-algorithm (1 2 392 200011 61 1 1 1)', + 'hexoid': '06 0B 2A 83 08 8C 1A 4B 3D 01 01 01', + 'name': 'symmetric-encryption-algorithm', + 'oid': (1, 2, 392, 200011, 61, 1, 1, 1)}, + (1, 2, 392, 200011, 61, 1, 1, 1, 1): {'comment': 'Mitsubishi security algorithm', + 'description': 'misty1-cbc (1 2 392 200011 61 1 1 1 1)', + 'hexoid': '06 0C 2A 83 08 8C 9A 4B 3D 01 01 01 01', + 'name': 'misty1-cbc', + 'oid': (1, + 2, + 392, + 200011, + 61, + 1, + 1, + 1, + 1)}, + (1, 2, 752, 34, 1): {'comment': 'SEIS Project', + 'description': 'seis-cp (1 2 752 34 1)', + 'hexoid': '06 05 2A 85 70 22 01', + 'name': 'seis-cp', + 'oid': (1, 2, 752, 34, 1)}, + (1, 2, 752, 34, 1, 1): {'comment': 'SEIS Project certificate policies', + 'description': 'SEIS high-assurance policyIdentifier (1 2 752 34 1 1)', + 'hexoid': '06 06 2A 85 70 22 01 01', + 'name': 'SEIS high-assurance policyIdentifier', + 'oid': (1, 2, 752, 34, 1, 1)}, + (1, 2, 752, 34, 1, 2): {'comment': 'SEIS Project certificate policies', + 'description': 'SEIS GAK policyIdentifier (1 2 752 34 1 2)', + 'hexoid': '06 06 2A 85 70 22 01 02', + 'name': 'SEIS GAK policyIdentifier', + 'oid': (1, 2, 752, 34, 1, 2)}, + (1, 2, 752, 34, 2): {'comment': 'SEIS Project', + 'description': 'SEIS pe (1 2 752 34 2)', + 'hexoid': '06 05 2A 85 70 22 02', + 'name': 'SEIS pe', + 'oid': (1, 2, 752, 34, 2)}, + (1, 2, 752, 34, 3): {'comment': 'SEIS Project', + 'description': 'SEIS at (1 2 752 34 3)', + 'hexoid': '06 05 2A 85 70 22 03', + 'name': 'SEIS at', + 'oid': (1, 2, 752, 34, 3)}, + (1, 2, 752, 34, 3, 1): {'comment': 'SEIS Project attribute', + 'description': 'SEIS at-personalIdentifier (1 2 752 34 3 1)', + 'hexoid': '06 06 2A 85 70 22 03 01', + 'name': 'SEIS at-personalIdentifier', + 'oid': (1, 2, 752, 34, 3, 1)}, + (1, 2, 840, 10040, 1, 1): {'comment': 'ANSI X9.57 module', + 'description': 'x9f1-cert-mgmt (1 2 840 10040 1 1)', + 'hexoid': '06 07 2A 86 48 CE 38 01 01', + 'name': 'x9f1-cert-mgmt', + 'oid': (1, 2, 840, 10040, 1, 1)}, + (1, 2, 840, 10040, 2): {'comment': 'ANSI X9.57', + 'description': 'holdinstruction (1 2 840 10040 2)', + 'hexoid': '06 06 2A 86 48 CE 38 02', + 'name': 'holdinstruction', + 'oid': (1, 2, 840, 10040, 2)}, + (1, 2, 840, 10040, 2, 1): {'comment': 'ANSI X9.57 hold instruction', + 'description': 'holdinstruction-none (1 2 840 10040 2 1)', + 'hexoid': '06 07 2A 86 48 CE 38 02 01', + 'name': 'holdinstruction-none', + 'oid': (1, 2, 840, 10040, 2, 1)}, + (1, 2, 840, 10040, 2, 2): {'comment': 'ANSI X9.57 hold instruction', + 'description': 'callissuer (1 2 840 10040 2 2)', + 'hexoid': '06 07 2A 86 48 CE 38 02 02', + 'name': 'callissuer', + 'oid': (1, 2, 840, 10040, 2, 2)}, + (1, 2, 840, 10040, 2, 3): {'comment': 'ANSI X9.57 hold instruction', + 'description': 'reject (1 2 840 10040 2 3)', + 'hexoid': '06 07 2A 86 48 CE 38 02 03', + 'name': 'reject', + 'oid': (1, 2, 840, 10040, 2, 3)}, + (1, 2, 840, 10040, 2, 4): {'comment': 'ANSI X9.57 hold instruction', + 'description': 'pickupToken (1 2 840 10040 2 4)', + 'hexoid': '06 07 2A 86 48 CE 38 02 04', + 'name': 'pickupToken', + 'oid': (1, 2, 840, 10040, 2, 4)}, + (1, 2, 840, 10040, 3, 2): {'comment': 'ANSI X9.57 attribute', + 'description': 'attribute-cert (1 2 840 10040 3 2)', + 'hexoid': '06 06 2A 86 48 CE 38 03 02', + 'name': 'attribute-cert', + 'oid': (1, 2, 840, 10040, 3, 2)}, + (1, 2, 840, 10040, 4, 1): {'comment': 'ANSI X9.57 algorithm', + 'description': 'dsa (1 2 840 10040 4 1)', + 'hexoid': '06 07 2A 86 48 CE 38 04 01', + 'name': 'dsa', + 'oid': (1, 2, 840, 10040, 4, 1)}, + (1, 2, 840, 10040, 4, 2): {'comment': 'ANSI X9.57 algorithm', + 'description': 'dsa-match (1 2 840 10040 4 2)', + 'hexoid': '06 07 2A 86 48 CE 38 04 02', + 'name': 'dsa-match', + 'oid': (1, 2, 840, 10040, 4, 2)}, + (1, 2, 840, 10040, 4, 3): {'comment': 'ANSI X9.57 algorithm', + 'description': 'dsaWithSha1 (1 2 840 10040 4 3)', + 'hexoid': '06 07 2A 86 48 CE 38 04 03', + 'name': 'dsaWithSha1', + 'oid': (1, 2, 840, 10040, 4, 3)}, + (1, 2, 840, 10045, 1, 1): {'comment': 'ANSI X9.62 field type', + 'description': 'prime-field (1 2 840 10045 1 1)', + 'hexoid': '06 07 2A 86 48 CE 3D 01 01', + 'name': 'prime-field', + 'oid': (1, 2, 840, 10045, 1, 1)}, + (1, 2, 840, 10045, 1, 2): {'comment': 'ANSI X9.62 field type', + 'description': 'characteristic-two-field (1 2 840 10045 1 2)', + 'hexoid': '06 07 2A 86 48 CE 3D 01 02', + 'name': 'characteristic-two-field', + 'oid': (1, 2, 840, 10045, 1, 2)}, + (1, 2, 840, 10045, 1, 2, 3): {'comment': 'ANSI X9.62 field type', + 'description': 'characteristic-two-basis (1 2 840 10045 1 2 3)', + 'hexoid': '06 09 2A 86 48 CE 3D 01 02 03', + 'name': 'characteristic-two-basis', + 'oid': (1, 2, 840, 10045, 1, 2, 3)}, + (1, 2, 840, 10045, 1, 2, 3, 1): {'comment': 'ANSI X9.62 field basis', + 'description': 'onBasis (1 2 840 10045 1 2 3 1)', + 'hexoid': '06 0A 2A 86 48 CE 3D 01 02 03 01', + 'name': 'onBasis', + 'oid': (1, 2, 840, 10045, 1, 2, 3, 1)}, + (1, 2, 840, 10045, 1, 2, 3, 2): {'comment': 'ANSI X9.62 field basis', + 'description': 'tpBasis (1 2 840 10045 1 2 3 2)', + 'hexoid': '06 0A 2A 86 48 CE 3D 01 02 03 02', + 'name': 'tpBasis', + 'oid': (1, 2, 840, 10045, 1, 2, 3, 2)}, + (1, 2, 840, 10045, 1, 2, 3, 3): {'comment': 'ANSI X9.62 field basis', + 'description': 'ppBasis (1 2 840 10045 1 2 3 3)', + 'hexoid': '06 0A 2A 86 48 CE 3D 01 02 03 03', + 'name': 'ppBasis', + 'oid': (1, 2, 840, 10045, 1, 2, 3, 3)}, + (1, 2, 840, 10045, 2): {'comment': 'ANSI X9.62', + 'description': 'publicKeyType (1 2 840 10045 2)', + 'hexoid': '06 06 2A 86 48 CE 3D 02', + 'name': 'publicKeyType', + 'oid': (1, 2, 840, 10045, 2)}, + (1, 2, 840, 10045, 2, 1): {'comment': 'ANSI X9.62 public key type', + 'description': 'ecPublicKey (1 2 840 10045 2 1)', + 'hexoid': '06 07 2A 86 48 CE 3D 02 01', + 'name': 'ecPublicKey', + 'oid': (1, 2, 840, 10045, 2, 1)}, + (1, 2, 840, 10046, 1): {'comment': 'ANSI X9.42', + 'description': 'fieldType (1 2 840 10046 1)', + 'hexoid': '06 06 2A 86 48 CE 3E 01', + 'name': 'fieldType', + 'oid': (1, 2, 840, 10046, 1)}, + (1, 2, 840, 10046, 1, 1): {'comment': 'ANSI X9.42 field type', + 'description': 'gf-prime (1 2 840 10046 1 1)', + 'hexoid': '06 07 2A 86 48 CE 3E 01 01', + 'name': 'gf-prime', + 'oid': (1, 2, 840, 10046, 1, 1)}, + (1, 2, 840, 10046, 2): {'comment': 'ANSI X9.42', + 'description': 'numberType (1 2 840 10046 2)', + 'hexoid': '06 06 2A 86 48 CE 3E 02', + 'name': 'numberType', + 'oid': (1, 2, 840, 10046, 2)}, + (1, 2, 840, 10046, 2, 1): {'comment': 'ANSI X9.42 number type', + 'description': 'dhPublicKey (1 2 840 10046 2 1)', + 'hexoid': '06 07 2A 86 48 CE 3E 02 01', + 'name': 'dhPublicKey', + 'oid': (1, 2, 840, 10046, 2, 1)}, + (1, 2, 840, 10046, 3): {'comment': 'ANSI X9.42', + 'description': 'scheme (1 2 840 10046 3)', + 'hexoid': '06 06 2A 86 48 CE 3E 03', + 'name': 'scheme', + 'oid': (1, 2, 840, 10046, 3)}, + (1, 2, 840, 10046, 3, 1): {'comment': 'ANSI X9.42 scheme', + 'description': 'dhStatic (1 2 840 10046 3 1)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 01', + 'name': 'dhStatic', + 'oid': (1, 2, 840, 10046, 3, 1)}, + (1, 2, 840, 10046, 3, 2): {'comment': 'ANSI X9.42 scheme', + 'description': 'dhEphem (1 2 840 10046 3 2)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 02', + 'name': 'dhEphem', + 'oid': (1, 2, 840, 10046, 3, 2)}, + (1, 2, 840, 10046, 3, 3): {'comment': 'ANSI X9.42 scheme', + 'description': 'dhHybrid1 (1 2 840 10046 3 3)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 03', + 'name': 'dhHybrid1', + 'oid': (1, 2, 840, 10046, 3, 3)}, + (1, 2, 840, 10046, 3, 4): {'comment': 'ANSI X9.42 scheme', + 'description': 'dhHybrid2 (1 2 840 10046 3 4)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 04', + 'name': 'dhHybrid2', + 'oid': (1, 2, 840, 10046, 3, 4)}, + (1, 2, 840, 10046, 3, 5): {'comment': 'ANSI X9.42 scheme', + 'description': 'mqv2 (1 2 840 10046 3 5)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 05', + 'name': 'mqv2', + 'oid': (1, 2, 840, 10046, 3, 5)}, + (1, 2, 840, 10046, 3, 6): {'comment': 'ANSI X9.42 scheme', + 'description': 'mqv1 (1 2 840 10046 3 6)', + 'hexoid': '06 07 2A 86 48 CE 3E 03 06', + 'name': 'mqv1', + 'oid': (1, 2, 840, 10046, 3, 6)}, + (1, 2, 840, 113533, 7, 65): {'comment': 'Nortel Secure Networks ce (1 2 840 113533 7 65)', + 'description': 'nsn-ce (1 2 840 113533 7 65)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 41 00', + 'name': 'nsn-ce', + 'oid': (1, 2, 840, 113533, 7, 65)}, + (1, 2, 840, 113533, 7, 66): {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'nsn-alg (1 2 840 113533 7 66)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 03', + 'name': 'nsn-alg', + 'oid': (1, 2, 840, 113533, 7, 66)}, + (1, 2, 840, 113533, 7, 66, 3): {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'cast3CBC (1 2 840 113533 7 66 3)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0A', + 'name': 'cast3CBC', + 'oid': (1, 2, 840, 113533, 7, 66, 3)}, + (1, 2, 840, 113533, 7, 66, 10): {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'cast5CBC (1 2 840 113533 7 66 10)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0B', + 'name': 'cast5CBC', + 'oid': (1, 2, 840, 113533, 7, 66, 10)}, + (1, 2, 840, 113533, 7, 66, 11): {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'cast5MAC (1 2 840 113533 7 66 11)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0C', + 'name': 'cast5MAC', + 'oid': (1, 2, 840, 113533, 7, 66, 11)}, + (1, 2, 840, 113533, 7, 66, 12): {'comment': 'Nortel Secure Networks alg (1 2 840 113533 7 66)', + 'description': 'pbeWithMD5AndCAST5-CBC (1 2 840 113533 7 66 12)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 42 0D', + 'name': 'pbeWithMD5AndCAST5-CBC', + 'oid': (1, 2, 840, 113533, 7, 66, 12)}, + (1, 2, 840, 113533, 7, 67): {'comment': 'Nortel Secure Networks oc (1 2 840 113533 7 67)', + 'description': 'nsn-oc (1 2 840 113533 7 67)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 43 0C', + 'name': 'nsn-oc', + 'oid': (1, 2, 840, 113533, 7, 67)}, + (1, 2, 840, 113533, 7, 68): {'comment': 'Nortel Secure Networks at (1 2 840 113533 7 68)', + 'description': 'nsn-at (1 2 840 113533 7 68)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 44 00', + 'name': 'nsn-at', + 'oid': (1, 2, 840, 113533, 7, 68)}, + (1, 2, 840, 113533, 7, 68, 0): {'comment': 'Nortel Secure Networks at (1 2 840 113533 7 68)', + 'description': 'entrustCAInfo (1 2 840 113533 7 68 0)', + 'hexoid': '06 09 2A 86 48 86 F6 7D 07 44 0A', + 'name': 'entrustCAInfo', + 'oid': (1, 2, 840, 113533, 7, 68, 0)}, + (1, 2, 840, 113549, 1, 1): {'comment': 'PKCS #1', + 'description': 'pkcs-1 (1 2 840 113549 1 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 01', + 'name': 'pkcs-1', + 'oid': (1, 2, 840, 113549, 1, 1)}, + (1, 2, 840, 113549, 1, 1, 1): {'comment': 'PKCS #1', + 'description': 'rsaEncryption (1 2 840 113549 1 1 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 02', + 'name': 'rsaEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 1)}, + (1, 2, 840, 113549, 1, 1, 2): {'comment': 'PKCS #1', + 'description': 'md2withRSAEncryption (1 2 840 113549 1 1 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 03', + 'name': 'md2withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 2)}, + (1, 2, 840, 113549, 1, 1, 3): {'comment': 'PKCS #1', + 'description': 'md4withRSAEncryption (1 2 840 113549 1 1 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 04', + 'name': 'md4withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 3)}, + (1, 2, 840, 113549, 1, 1, 4): {'comment': 'PKCS #1', + 'description': 'md5withRSAEncryption (1 2 840 113549 1 1 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 05', + 'name': 'md5withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 4)}, + (1, 2, 840, 113549, 1, 1, 5): {'comment': 'PKCS #1. This OID may also be assigned as ripemd160WithRSAEncryption', + 'description': 'sha1withRSAEncryption (1 2 840 113549 1 1 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 01 06', + 'name': 'sha1withRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 5)}, + (1, 2, 840, 113549, 1, 1, 6): {'comment': 'Obsolete BSAFE OID', + 'description': 'ripemd160WithRSAEncryption (1 2 840 113549 1 1 6)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 01 01', + 'name': 'ripemd160WithRSAEncryption', + 'oid': (1, 2, 840, 113549, 1, 1, 6)}, + (1, 2, 840, 113549, 1, 3): {'comment': 'PKCS #3', + 'description': 'pkcs-3 (1 2 840 113549 1 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 03 01', + 'name': 'pkcs-3', + 'oid': (1, 2, 840, 113549, 1, 3)}, + (1, 2, 840, 113549, 1, 5): {'comment': 'PKCS #5', + 'description': 'pkcs-5 (1 2 840 113549 1 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 01', + 'name': 'pkcs-5', + 'oid': (1, 2, 840, 113549, 1, 5)}, + (1, 2, 840, 113549, 1, 5, 1): {'comment': 'PKCS #5', + 'description': 'pbeWithMD2AndDES-CBC (1 2 840 113549 1 5 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 03', + 'name': 'pbeWithMD2AndDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 1)}, + (1, 2, 840, 113549, 1, 5, 3): {'comment': 'PKCS #5', + 'description': 'pbeWithMD5AndDES-CBC (1 2 840 113549 1 5 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 04', + 'name': 'pbeWithMD5AndDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 3)}, + (1, 2, 840, 113549, 1, 5, 4): {'comment': 'PKCS #5', + 'description': 'pbeWithMD2AndRC2-CBC (1 2 840 113549 1 5 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 06', + 'name': 'pbeWithMD2AndRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 4)}, + (1, 2, 840, 113549, 1, 5, 6): {'comment': 'PKCS #5, used in BSAFE only', + 'description': 'pbeWithMD5AndRC2-CBC (1 2 840 113549 1 5 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 09', + 'name': 'pbeWithMD5AndRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 6)}, + (1, 2, 840, 113549, 1, 5, 9): {'comment': 'PKCS #5', + 'description': 'pbeWithMD5AndXOR (1 2 840 113549 1 5 9)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0A', + 'name': 'pbeWithMD5AndXOR', + 'oid': (1, 2, 840, 113549, 1, 5, 9)}, + (1, 2, 840, 113549, 1, 5, 10): {'comment': 'PKCS #5 v2.0', + 'description': 'pbeWithSHAAndDES-CBC (1 2 840 113549 1 5 10)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0C', + 'name': 'pbeWithSHAAndDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 5, 10)}, + (1, 2, 840, 113549, 1, 5, 12): {'comment': 'PKCS #5 v2.0', + 'description': 'pkcs5PBKDF2 (1 2 840 113549 1 5 12)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0D', + 'name': 'pkcs5PBKDF2', + 'oid': (1, 2, 840, 113549, 1, 5, 12)}, + (1, 2, 840, 113549, 1, 5, 13): {'comment': 'PKCS #5 v2.0', + 'description': 'pkcs5PBES2 (1 2 840 113549 1 5 13)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 05 0E', + 'name': 'pkcs5PBES2', + 'oid': (1, 2, 840, 113549, 1, 5, 13)}, + (1, 2, 840, 113549, 1, 7): {'comment': 'PKCS #7', + 'description': 'pkcs-7 (1 2 840 113549 1 7)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 01', + 'name': 'pkcs-7', + 'oid': (1, 2, 840, 113549, 1, 7)}, + (1, 2, 840, 113549, 1, 7, 1): {'comment': 'PKCS #7', + 'description': 'data (1 2 840 113549 1 7 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 02', + 'name': 'data', + 'oid': (1, 2, 840, 113549, 1, 7, 1)}, + (1, 2, 840, 113549, 1, 7, 2): {'comment': 'PKCS #7', + 'description': 'signedData (1 2 840 113549 1 7 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 03', + 'name': 'signedData', + 'oid': (1, 2, 840, 113549, 1, 7, 2)}, + (1, 2, 840, 113549, 1, 7, 3): {'comment': 'PKCS #7', + 'description': 'envelopedData (1 2 840 113549 1 7 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 04', + 'name': 'envelopedData', + 'oid': (1, 2, 840, 113549, 1, 7, 3)}, + (1, 2, 840, 113549, 1, 7, 4): {'comment': 'PKCS #7', + 'description': 'signedAndEnvelopedData (1 2 840 113549 1 7 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 05', + 'name': 'signedAndEnvelopedData', + 'oid': (1, 2, 840, 113549, 1, 7, 4)}, + (1, 2, 840, 113549, 1, 7, 5): {'comment': 'PKCS #7', + 'description': 'digestedData (1 2 840 113549 1 7 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 06', + 'name': 'digestedData', + 'oid': (1, 2, 840, 113549, 1, 7, 5)}, + (1, 2, 840, 113549, 1, 7, 6): {'comment': 'PKCS #7 experimental', + 'description': 'encryptedData (1 2 840 113549 1 7 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 07', + 'name': 'encryptedData', + 'oid': (1, 2, 840, 113549, 1, 7, 6)}, + (1, 2, 840, 113549, 1, 7, 7): {'comment': 'PKCS #7 experimental', + 'description': 'dataWithAttributes (1 2 840 113549 1 7 7)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 07 08', + 'name': 'dataWithAttributes', + 'oid': (1, 2, 840, 113549, 1, 7, 7)}, + (1, 2, 840, 113549, 1, 9): {'comment': 'PKCS #9 (1 2 840 113549 1 9). Deprecated, use an altName extension instead', + 'description': 'pkcs-9 (1 2 840 113549 1 9)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 01', + 'name': 'pkcs-9', + 'oid': (1, 2, 840, 113549, 1, 9)}, + (1, 2, 840, 113549, 1, 9, 1): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'emailAddress (1 2 840 113549 1 9 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 02', + 'name': 'emailAddress', + 'oid': (1, 2, 840, 113549, 1, 9, 1)}, + (1, 2, 840, 113549, 1, 9, 2): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'unstructuredName (1 2 840 113549 1 9 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 03', + 'name': 'unstructuredName', + 'oid': (1, 2, 840, 113549, 1, 9, 2)}, + (1, 2, 840, 113549, 1, 9, 3): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'contentType (1 2 840 113549 1 9 3)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 04', + 'name': 'contentType', + 'oid': (1, 2, 840, 113549, 1, 9, 3)}, + (1, 2, 840, 113549, 1, 9, 4): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'messageDigest (1 2 840 113549 1 9 4)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 05', + 'name': 'messageDigest', + 'oid': (1, 2, 840, 113549, 1, 9, 4)}, + (1, 2, 840, 113549, 1, 9, 5): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'signingTime (1 2 840 113549 1 9 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 06', + 'name': 'signingTime', + 'oid': (1, 2, 840, 113549, 1, 9, 5)}, + (1, 2, 840, 113549, 1, 9, 6): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'countersignature (1 2 840 113549 1 9 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 07', + 'name': 'countersignature', + 'oid': (1, 2, 840, 113549, 1, 9, 6)}, + (1, 2, 840, 113549, 1, 9, 7): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'challengePassword (1 2 840 113549 1 9 7)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 08', + 'name': 'challengePassword', + 'oid': (1, 2, 840, 113549, 1, 9, 7)}, + (1, 2, 840, 113549, 1, 9, 8): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'unstructuredAddress (1 2 840 113549 1 9 8)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 09', + 'name': 'unstructuredAddress', + 'oid': (1, 2, 840, 113549, 1, 9, 8)}, + (1, 2, 840, 113549, 1, 9, 9): {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'extendedCertificateAttributes (1 2 840 113549 1 9 9)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0A', + 'name': 'extendedCertificateAttributes', + 'oid': (1, 2, 840, 113549, 1, 9, 9)}, + (1, 2, 840, 113549, 1, 9, 10): {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'issuerAndSerialNumber (1 2 840 113549 1 9 10)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0B', + 'name': 'issuerAndSerialNumber', + 'oid': (1, 2, 840, 113549, 1, 9, 10)}, + (1, 2, 840, 113549, 1, 9, 11): {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'passwordCheck (1 2 840 113549 1 9 11)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0C', + 'name': 'passwordCheck', + 'oid': (1, 2, 840, 113549, 1, 9, 11)}, + (1, 2, 840, 113549, 1, 9, 12): {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'publicKey (1 2 840 113549 1 9 12)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0D', + 'name': 'publicKey', + 'oid': (1, 2, 840, 113549, 1, 9, 12)}, + (1, 2, 840, 113549, 1, 9, 13): {'comment': 'PKCS #9 (1 2 840 113549 1 9) experimental', + 'description': 'signingDescription (1 2 840 113549 1 9 13)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0E', + 'name': 'signingDescription', + 'oid': (1, 2, 840, 113549, 1, 9, 13)}, + (1, 2, 840, 113549, 1, 9, 14): {'comment': 'PKCS #9 (1 2 840 113549 1 9). This OID was formerly assigned as symmetricCapabilities, then reassigned as SMIMECapabilities, then renamed to the current name', + 'description': 'extensionReq (1 2 840 113549 1 9 14)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 0F', + 'name': 'extensionReq', + 'oid': (1, 2, 840, 113549, 1, 9, 14)}, + (1, 2, 840, 113549, 1, 9, 15): {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15)', + 'description': 'sMIMECapabilities (1 2 840 113549 1 9 15)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 01', + 'name': 'sMIMECapabilities', + 'oid': (1, 2, 840, 113549, 1, 9, 15)}, + (1, 2, 840, 113549, 1, 9, 15, 1): {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15)', + 'description': 'preferSignedData (1 2 840 113549 1 9 15 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 02', + 'name': 'preferSignedData', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 1)}, + (1, 2, 840, 113549, 1, 9, 15, 2): {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 1) instead', + 'description': 'canNotDecryptAny (1 2 840 113549 1 9 15 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 03', + 'name': 'canNotDecryptAny', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 2)}, + (1, 2, 840, 113549, 1, 9, 15, 3): {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 1 1) instead', + 'description': 'receiptRequest (1 2 840 113549 1 9 15 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 04', + 'name': 'receiptRequest', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 3)}, + (1, 2, 840, 113549, 1, 9, 15, 4): {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 4) instead', + 'description': 'receipt (1 2 840 113549 1 9 15 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 05', + 'name': 'receipt', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 4)}, + (1, 2, 840, 113549, 1, 9, 15, 5): {'comment': 'sMIMECapabilities (1 2 840 113549 1 9 15). Deprecated, use (1 2 840 113549 1 9 16 2 3) instead', + 'description': 'contentHints (1 2 840 113549 1 9 15 5)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 0F 06', + 'name': 'contentHints', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 5)}, + (1, 2, 840, 113549, 1, 9, 15, 6): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'mlExpansionHistory (1 2 840 113549 1 9 15 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 10', + 'name': 'mlExpansionHistory', + 'oid': (1, 2, 840, 113549, 1, 9, 15, 6)}, + (1, 2, 840, 113549, 1, 9, 16): {'comment': 'id-sMIME (1 2 840 113549 1 9 16)', + 'description': 'id-sMIME (1 2 840 113549 1 9 16)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 00', + 'name': 'id-sMIME', + 'oid': (1, 2, 840, 113549, 1, 9, 16)}, + (1, 2, 840, 113549, 1, 9, 16, 0): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod (1 2 840 113549 1 9 16 0)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 01', + 'name': 'id-mod', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 0)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 1): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-cms (1 2 840 113549 1 9 16 0 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 02', + 'name': 'id-mod-cms', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 1)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 2): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ess (1 2 840 113549 1 9 16 0 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 03', + 'name': 'id-mod-ess', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 2)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 3): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-oid (1 2 840 113549 1 9 16 0 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 04', + 'name': 'id-mod-oid', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 3)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 4): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-msg-v3 (1 2 840 113549 1 9 16 0 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 05', + 'name': 'id-mod-msg-v3', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 4)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 5): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ets-eSignature-88 (1 2 840 113549 1 9 16 0 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 06', + 'name': 'id-mod-ets-eSignature-88', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 5)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 6): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ets-eSignature-97 (1 2 840 113549 1 9 16 0 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 07', + 'name': 'id-mod-ets-eSignature-97', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 6)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 7): {'comment': 'S/MIME Modules (1 2 840 113549 1 9 16 0)', + 'description': 'id-mod-ets-eSigPolicy-88 (1 2 840 113549 1 9 16 0 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 00 08', + 'name': 'id-mod-ets-eSigPolicy-88', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 7)}, + (1, 2, 840, 113549, 1, 9, 16, 0, 8): {'comment': 'id-sMIME (1 2 840 113549 1 9 16)', + 'description': 'id-mod-ets-eSigPolicy-97 (1 2 840 113549 1 9 16 0 8)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 01', + 'name': 'id-mod-ets-eSigPolicy-97', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 0, + 8)}, + (1, 2, 840, 113549, 1, 9, 16, 1): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct (1 2 840 113549 1 9 16 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 01', + 'name': 'id-ct', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 1)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 1): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-receipt (1 2 840 113549 1 9 16 1 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 02', + 'name': 'id-ct-receipt', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 1)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 2): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-authData (1 2 840 113549 1 9 16 1 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 03', + 'name': 'id-ct-authData', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 2)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 3): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-publishCert (1 2 840 113549 1 9 16 1 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 04', + 'name': 'id-ct-publishCert', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 3)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 4): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-TSTInfo (1 2 840 113549 1 9 16 1 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 05', + 'name': 'id-ct-TSTInfo', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 4)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 5): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-TDTInfo (1 2 840 113549 1 9 16 1 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 06', + 'name': 'id-ct-TDTInfo', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 5)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 6): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-contentInfo (1 2 840 113549 1 9 16 1 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 07', + 'name': 'id-ct-contentInfo', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 6)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 7): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-DVCSRequestData (1 2 840 113549 1 9 16 1 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 08', + 'name': 'id-ct-DVCSRequestData', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 7)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 8): {'comment': 'S/MIME Content Types (1 2 840 113549 1 9 16 1)', + 'description': 'id-ct-DVCSResponseData (1 2 840 113549 1 9 16 1 8)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 01 07', + 'name': 'id-ct-DVCSResponseData', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 8)}, + (1, 2, 840, 113549, 1, 9, 16, 1, 9): {'comment': 'id-sMIME (1 2 840 113549 1 9 16)', + 'description': 'id-ct-compressedData (1 2 840 113549 1 9 16 1 9)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 10 02', + 'name': 'id-ct-compressedData', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 1, + 9)}, + (1, 2, 840, 113549, 1, 9, 16, 2): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa (1 2 840 113549 1 9 16 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 01', + 'name': 'id-aa', + 'oid': (1, 2, 840, 113549, 1, 9, 16, 2)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 1): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-receiptRequest (1 2 840 113549 1 9 16 2 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 02', + 'name': 'id-aa-receiptRequest', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 1)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 2): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-securityLabel (1 2 840 113549 1 9 16 2 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 03', + 'name': 'id-aa-securityLabel', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 2)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 3): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-mlExpandHistory (1 2 840 113549 1 9 16 2 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 04', + 'name': 'id-aa-mlExpandHistory', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 3)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 4): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-contentHint (1 2 840 113549 1 9 16 2 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 05', + 'name': 'id-aa-contentHint', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 4)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 5): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2). Obsolete', + 'description': 'id-aa-msgSigDigest (1 2 840 113549 1 9 16 2 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 06', + 'name': 'id-aa-msgSigDigest', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 5)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 6): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-encapContentType (1 2 840 113549 1 9 16 2 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 07', + 'name': 'id-aa-encapContentType', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 6)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 7): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2). Obsolete', + 'description': 'id-aa-contentIdentifier (1 2 840 113549 1 9 16 2 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 08', + 'name': 'id-aa-contentIdentifier', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 7)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 8): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-macValue (1 2 840 113549 1 9 16 2 8)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 09', + 'name': 'id-aa-macValue', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 8)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 9): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-equivalentLabels (1 2 840 113549 1 9 16 2 9)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0A', + 'name': 'id-aa-equivalentLabels', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 9)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 10): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-contentReference (1 2 840 113549 1 9 16 2 10)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0B', + 'name': 'id-aa-contentReference', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 10)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 11): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-encrypKeyPref (1 2 840 113549 1 9 16 2 11)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0C', + 'name': 'id-aa-encrypKeyPref', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 11)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 12): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-signingCertificate (1 2 840 113549 1 9 16 2 12)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0D', + 'name': 'id-aa-signingCertificate', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 12)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 13): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-smimeEncryptCerts (1 2 840 113549 1 9 16 2 13)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0E', + 'name': 'id-aa-smimeEncryptCerts', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 13)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 14): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-timeStampToken (1 2 840 113549 1 9 16 2 14)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 0F', + 'name': 'id-aa-timeStampToken', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 14)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 15): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-sigPolicyId (1 2 840 113549 1 9 16 2 15)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 10', + 'name': 'id-aa-ets-sigPolicyId', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 15)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 16): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-commitmentType (1 2 840 113549 1 9 16 2 16)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 11', + 'name': 'id-aa-ets-commitmentType', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 16)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 17): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-signerLocation (1 2 840 113549 1 9 16 2 17)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 12', + 'name': 'id-aa-ets-signerLocation', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 17)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 18): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-signerAttr (1 2 840 113549 1 9 16 2 18)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 13', + 'name': 'id-aa-ets-signerAttr', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 18)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 19): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-otherSigCert (1 2 840 113549 1 9 16 2 19)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 14', + 'name': 'id-aa-ets-otherSigCert', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 19)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 20): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-contentTimestamp (1 2 840 113549 1 9 16 2 20)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 15', + 'name': 'id-aa-ets-contentTimestamp', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 20)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 21): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-CertificateRefs (1 2 840 113549 1 9 16 2 21)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 16', + 'name': 'id-aa-ets-CertificateRefs', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 21)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 22): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-RevocationRefs (1 2 840 113549 1 9 16 2 22)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 17', + 'name': 'id-aa-ets-RevocationRefs', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 22)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 23): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-certValues (1 2 840 113549 1 9 16 2 23)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 18', + 'name': 'id-aa-ets-certValues', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 23)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 24): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-revocationValues (1 2 840 113549 1 9 16 2 24)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 19', + 'name': 'id-aa-ets-revocationValues', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 24)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 25): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-escTimeStamp (1 2 840 113549 1 9 16 2 25)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1A', + 'name': 'id-aa-ets-escTimeStamp', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 25)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 26): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-certCRLTimestamp (1 2 840 113549 1 9 16 2 26)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1B', + 'name': 'id-aa-ets-certCRLTimestamp', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 26)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 27): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-ets-archiveTimeStamp (1 2 840 113549 1 9 16 2 27)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1C', + 'name': 'id-aa-ets-archiveTimeStamp', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 27)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 28): {'comment': 'S/MIME Authenticated Attributes (1 2 840 113549 1 9 16 2)', + 'description': 'id-aa-signatureType (1 2 840 113549 1 9 16 2 28)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 02 1D', + 'name': 'id-aa-signatureType', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 28)}, + (1, 2, 840, 113549, 1, 9, 16, 2, 29): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-aa-dvcs-dvc (1 2 840 113549 1 9 16 2 29)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 01', + 'name': 'id-aa-dvcs-dvc', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 2, + 29)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 1): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-alg-ESDHwith3DES (1 2 840 113549 1 9 16 3 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 02', + 'name': 'id-alg-ESDHwith3DES', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 1)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 2): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-alg-ESDHwithRC2 (1 2 840 113549 1 9 16 3 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 03', + 'name': 'id-alg-ESDHwithRC2', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 2)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 3): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3). Obsolete', + 'description': 'id-alg-3DESwrap (1 2 840 113549 1 9 16 3 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 04', + 'name': 'id-alg-3DESwrap', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 3)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 4): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-RC2wrap (1 2 840 113549 1 9 16 3 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 05', + 'name': 'id-alg-RC2wrap', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 4)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 5): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-ESDH (1 2 840 113549 1 9 16 3 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 06', + 'name': 'id-alg-ESDH', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 5)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 6): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-CMS3DESwrap (1 2 840 113549 1 9 16 3 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 07', + 'name': 'id-alg-CMS3DESwrap', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 6)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 7): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-CMSRC2wrap (1 2 840 113549 1 9 16 3 7)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 08', + 'name': 'id-alg-CMSRC2wrap', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 7)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 8): {'comment': 'S/MIME Algorithms (1 2 840 113549 1 9 16 3)', + 'description': 'id-alg-zlib (1 2 840 113549 1 9 16 3 8)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 03 09', + 'name': 'id-alg-zlib', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 8)}, + (1, 2, 840, 113549, 1, 9, 16, 3, 9): {'comment': 'S/MIME Certificate Distribution (1 2 840 113549 1 9 16 4)', + 'description': 'id-alg-PWRI-KEK (1 2 840 113549 1 9 16 3 9)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 04 01', + 'name': 'id-alg-PWRI-KEK', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 3, + 9)}, + (1, 2, 840, 113549, 1, 9, 16, 4, 1): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 5)', + 'description': 'id-cd-ldap (1 2 840 113549 1 9 16 4 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 01', + 'name': 'id-cd-ldap', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 4, + 1)}, + (1, 2, 840, 113549, 1, 9, 16, 5, 1): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 5)', + 'description': 'id-spq-ets-sqt-uri (1 2 840 113549 1 9 16 5 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 05 02', + 'name': 'id-spq-ets-sqt-uri', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 5, + 1)}, + (1, 2, 840, 113549, 1, 9, 16, 5, 2): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-spq-ets-sqt-unotice (1 2 840 113549 1 9 16 5 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 01', + 'name': 'id-spq-ets-sqt-unotice', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 5, + 2)}, + (1, 2, 840, 113549, 1, 9, 16, 6, 1): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfOrigin (1 2 840 113549 1 9 16 6 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 02', + 'name': 'id-cti-ets-proofOfOrigin', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 6, + 1)}, + (1, 2, 840, 113549, 1, 9, 16, 6, 2): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfReceipt (1 2 840 113549 1 9 16 6 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 03', + 'name': 'id-cti-ets-proofOfReceipt', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 6, + 2)}, + (1, 2, 840, 113549, 1, 9, 16, 6, 3): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfDelivery (1 2 840 113549 1 9 16 6 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 04', + 'name': 'id-cti-ets-proofOfDelivery', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 6, + 3)}, + (1, 2, 840, 113549, 1, 9, 16, 6, 4): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfSender (1 2 840 113549 1 9 16 6 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 05', + 'name': 'id-cti-ets-proofOfSender', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 6, + 4)}, + (1, 2, 840, 113549, 1, 9, 16, 6, 5): {'comment': 'S/MIME Signature Policy Qualifier (1 2 840 113549 1 9 16 6)', + 'description': 'id-cti-ets-proofOfApproval (1 2 840 113549 1 9 16 6 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 09 10 06 06', + 'name': 'id-cti-ets-proofOfApproval', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 6, + 5)}, + (1, 2, 840, 113549, 1, 9, 16, 6, 6): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'id-cti-ets-proofOfCreation (1 2 840 113549 1 9 16 6 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 14', + 'name': 'id-cti-ets-proofOfCreation', + 'oid': (1, + 2, + 840, + 113549, + 1, + 9, + 16, + 6, + 6)}, + (1, 2, 840, 113549, 1, 9, 20): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'friendlyName (for PKCS #12) (1 2 840 113549 1 9 20)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 15', + 'name': 'friendlyName', + 'oid': (1, 2, 840, 113549, 1, 9, 20)}, + (1, 2, 840, 113549, 1, 9, 21): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'localKeyID (for PKCS #12) (1 2 840 113549 1 9 21)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 16', + 'name': 'localKeyID', + 'oid': (1, 2, 840, 113549, 1, 9, 21)}, + (1, 2, 840, 113549, 1, 9, 22): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'certTypes (for PKCS #12) (1 2 840 113549 1 9 22)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 01', + 'name': 'certTypes', + 'oid': (1, 2, 840, 113549, 1, 9, 22)}, + (1, 2, 840, 113549, 1, 9, 22, 1): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'x509Certificate (for PKCS #12) (1 2 840 113549 1 9 22 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 16 02', + 'name': 'x509Certificate', + 'oid': (1, 2, 840, 113549, 1, 9, 22, 1)}, + (1, 2, 840, 113549, 1, 9, 22, 2): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'sdsiCertificate (for PKCS #12) (1 2 840 113549 1 9 22 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 09 17', + 'name': 'sdsiCertificate', + 'oid': (1, 2, 840, 113549, 1, 9, 22, 2)}, + (1, 2, 840, 113549, 1, 9, 23): {'comment': 'PKCS #9 (1 2 840 113549 1 9)', + 'description': 'crlTypes (for PKCS #12) (1 2 840 113549 1 9 23)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 09 17 01', + 'name': 'crlTypes', + 'oid': (1, 2, 840, 113549, 1, 9, 23)}, + (1, 2, 840, 113549, 1, 12): {'comment': 'This OID was formerly assigned as PKCS #12 modeID', + 'description': 'pkcs-12 (1 2 840 113549 1 12)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 01', + 'name': 'pkcs-12', + 'oid': (1, 2, 840, 113549, 1, 12)}, + (1, 2, 840, 113549, 1, 12, 1): {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 1). This OID was formerly assigned as pkcs-12-OfflineTransportMode', + 'description': 'pkcs-12-PbeIds (1 2 840 113549 1 12 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 01', + 'name': 'pkcs-12-PbeIds', + 'oid': (1, 2, 840, 113549, 1, 12, 1)}, + (1, 2, 840, 113549, 1, 12, 1, 1): {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 2). This OID was formerly assigned as pkcs-12-OnlineTransportMode', + 'description': 'pbeWithSHAAnd128BitRC4 (1 2 840 113549 1 12 1 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 02', + 'name': 'pbeWithSHAAnd128BitRC4', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 1)}, + (1, 2, 840, 113549, 1, 12, 1, 2): {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd40BitRC4 (1 2 840 113549 1 12 1 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 03', + 'name': 'pbeWithSHAAnd40BitRC4', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 2)}, + (1, 2, 840, 113549, 1, 12, 1, 3): {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd3-KeyTripleDES-CBC (1 2 840 113549 1 12 1 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 04', + 'name': 'pbeWithSHAAnd3-KeyTripleDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 3)}, + (1, 2, 840, 113549, 1, 12, 1, 4): {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd2-KeyTripleDES-CBC (1 2 840 113549 1 12 1 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 05', + 'name': 'pbeWithSHAAnd2-KeyTripleDES-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 4)}, + (1, 2, 840, 113549, 1, 12, 1, 5): {'comment': 'PKCS #12 PbeIds (1 2 840 113549 1 12 3)', + 'description': 'pbeWithSHAAnd128BitRC2-CBC (1 2 840 113549 1 12 1 5)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 01 06', + 'name': 'pbeWithSHAAnd128BitRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 5)}, + (1, 2, 840, 113549, 1, 12, 1, 6): {'comment': 'Deprecated', + 'description': 'pbeWithSHAAnd40BitRC2-CBC (1 2 840 113549 1 12 1 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 02', + 'name': 'pbeWithSHAAnd40BitRC2-CBC', + 'oid': (1, 2, 840, 113549, 1, 12, 1, 6)}, + (1, 2, 840, 113549, 1, 12, 2): {'comment': 'PKCS #12 ESPVKID (1 2 840 113549 1 12 2). Deprecated, use (1 2 840 113549 1 12 3 5) instead', + 'description': 'pkcs-12-ESPVKID (1 2 840 113549 1 12 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 02 01', + 'name': 'pkcs-12-ESPVKID', + 'oid': (1, 2, 840, 113549, 1, 12, 2)}, + (1, 2, 840, 113549, 1, 12, 3): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-BagIds (1 2 840 113549 1 12 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 01', + 'name': 'pkcs-12-BagIds', + 'oid': (1, 2, 840, 113549, 1, 12, 3)}, + (1, 2, 840, 113549, 1, 12, 3, 1): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-keyBagId (1 2 840 113549 1 12 3 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 02', + 'name': 'pkcs-12-keyBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 1)}, + (1, 2, 840, 113549, 1, 12, 3, 2): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-certAndCRLBagId (1 2 840 113549 1 12 3 2)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 03', + 'name': 'pkcs-12-certAndCRLBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 2)}, + (1, 2, 840, 113549, 1, 12, 3, 3): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-secretBagId (1 2 840 113549 1 12 3 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 04', + 'name': 'pkcs-12-secretBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 3)}, + (1, 2, 840, 113549, 1, 12, 3, 4): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 3)', + 'description': 'pkcs-12-safeContentsId (1 2 840 113549 1 12 3 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 03 05', + 'name': 'pkcs-12-safeContentsId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 4)}, + (1, 2, 840, 113549, 1, 12, 3, 5): {'comment': 'Deprecated', + 'description': 'pkcs-12-pkcs-8ShroudedKeyBagId (1 2 840 113549 1 12 3 5)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0C 04', + 'name': 'pkcs-12-pkcs-8ShroudedKeyBagId', + 'oid': (1, 2, 840, 113549, 1, 12, 3, 5)}, + (1, 2, 840, 113549, 1, 12, 4): {'comment': 'PKCS #12 CertBagID (1 2 840 113549 1 12 4). This OID was formerly assigned as pkcs-12-X509CertCRLBag', + 'description': 'pkcs-12-CertBagID (1 2 840 113549 1 12 4)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 01', + 'name': 'pkcs-12-CertBagID', + 'oid': (1, 2, 840, 113549, 1, 12, 4)}, + (1, 2, 840, 113549, 1, 12, 4, 1): {'comment': 'PKCS #12 CertBagID (1 2 840 113549 1 12 4). This OID was formerly assigned as pkcs-12-SDSICertBag', + 'description': 'pkcs-12-X509CertCRLBagID (1 2 840 113549 1 12 4 1)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 04 02', + 'name': 'pkcs-12-X509CertCRLBagID', + 'oid': (1, 2, 840, 113549, 1, 12, 4, 1)}, + (1, 2, 840, 113549, 1, 12, 5): {'comment': 'PKCS #12 OID (1 2 840 113549 1 12 5). Deprecated, use the partially compatible (1 2 840 113549 1 12 1) OIDs instead', + 'description': 'pkcs-12-OID (1 2 840 113549 1 12 5)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0C 05 01', + 'name': 'pkcs-12-OID', + 'oid': (1, 2, 840, 113549, 1, 12, 5)}, + (1, 2, 840, 113549, 1, 12, 5, 1): {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 1) instead', + 'description': 'pkcs-12-PBEID (1 2 840 113549 1 12 5 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 01', + 'name': 'pkcs-12-PBEID', + 'oid': (1, 2, 840, 113549, 1, 12, 5, 1)}, + (1, 2, 840, 113549, 1, 12, 5, 1, 1): {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 2) instead', + 'description': 'pkcs-12-PBEWithSha1And128BitRC4 (1 2 840 113549 1 12 5 1 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 02', + 'name': 'pkcs-12-PBEWithSha1And128BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 1)}, + (1, 2, 840, 113549, 1, 12, 5, 1, 2): {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 3) or (1 2 840 113549 1 12 1 4) instead', + 'description': 'pkcs-12-PBEWithSha1And40BitRC4 (1 2 840 113549 1 12 5 1 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 03', + 'name': 'pkcs-12-PBEWithSha1And40BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 2)}, + (1, 2, 840, 113549, 1, 12, 5, 1, 3): {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 5) instead', + 'description': 'pkcs-12-PBEWithSha1AndTripleDESCBC (1 2 840 113549 1 12 5 1 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 04', + 'name': 'pkcs-12-PBEWithSha1AndTripleDESCBC', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 3)}, + (1, 2, 840, 113549, 1, 12, 5, 1, 4): {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use (1 2 840 113549 1 12 1 6) instead', + 'description': 'pkcs-12-PBEWithSha1And128BitRC2CBC (1 2 840 113549 1 12 5 1 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 05', + 'name': 'pkcs-12-PBEWithSha1And128BitRC2CBC', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 4)}, + (1, 2, 840, 113549, 1, 12, 5, 1, 5): {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 1) or (1 2 840 113549 1 12 1 2) instead', + 'description': 'pkcs-12-PBEWithSha1And40BitRC2CBC (1 2 840 113549 1 12 5 1 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 06', + 'name': 'pkcs-12-PBEWithSha1And40BitRC2CBC', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 5)}, + (1, 2, 840, 113549, 1, 12, 5, 1, 6): {'comment': 'PKCS #12 OID PBEID (1 2 840 113549 1 12 5 1). Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 5) or (1 2 840 113549 1 12 1 6) instead', + 'description': 'pkcs-12-PBEWithSha1AndRC4 (1 2 840 113549 1 12 5 1 6)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 01 07', + 'name': 'pkcs-12-PBEWithSha1AndRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 1, + 6)}, + (1, 2, 840, 113549, 1, 12, 5, 2): {'comment': 'PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 02 01', + 'name': 'pkcs-12-EnvelopingID', + 'oid': (1, 2, 840, 113549, 1, 12, 5, 2)}, + (1, 2, 840, 113549, 1, 12, 5, 2, 1): {'comment': 'PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-RSAEncryptionWith128BitRC4 (1 2 840 113549 1 12 5 2 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 02 02', + 'name': 'pkcs-12-RSAEncryptionWith128BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 2, + 1)}, + (1, 2, 840, 113549, 1, 12, 5, 2, 2): {'comment': 'PKCS #12 OID EnvelopingID (1 2 840 113549 1 12 5 2). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-RSAEncryptionWith40BitRC4 (1 2 840 113549 1 12 5 2 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 02 03', + 'name': 'pkcs-12-RSAEncryptionWith40BitRC4', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 5, + 2, + 2)}, + (1, 2, 840, 113549, 1, 12, 5, 3): {'comment': 'PKCS #12 OID SignatureID (1 2 840 113549 1 12 5 3). Deprecated, use the conventional PKCS #1 OIDs instead', + 'description': 'pkcs-12-SignatureID (1 2 840 113549 1 12 5 3). Deprecated, use the conventional PKCS #1 OIDs instead', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 05 03 01', + 'name': 'pkcs-12-SignatureID', + 'oid': (1, 2, 840, 113549, 1, 12, 5, 3)}, + (1, 2, 840, 113549, 1, 12, 10, 1): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12BadIds (1 2 840 113549 1 12 10 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 01', + 'name': 'pkcs-12BadIds', + 'oid': (1, 2, 840, 113549, 1, 12, 10, 1)}, + (1, 2, 840, 113549, 1, 12, 10, 1, 1): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-keyBag (1 2 840 113549 1 12 10 1 1)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 02', + 'name': 'pkcs-12-keyBag', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 10, + 1, + 1)}, + (1, 2, 840, 113549, 1, 12, 10, 1, 2): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-pkcs-8ShroudedKeyBag (1 2 840 113549 1 12 10 1 2)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 03', + 'name': 'pkcs-12-pkcs-8ShroudedKeyBag', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 10, + 1, + 2)}, + (1, 2, 840, 113549, 1, 12, 10, 1, 3): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-certBag (1 2 840 113549 1 12 10 1 3)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 04', + 'name': 'pkcs-12-certBag', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 10, + 1, + 3)}, + (1, 2, 840, 113549, 1, 12, 10, 1, 4): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-crlBag (1 2 840 113549 1 12 10 1 4)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 05', + 'name': 'pkcs-12-crlBag', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 10, + 1, + 4)}, + (1, 2, 840, 113549, 1, 12, 10, 1, 5): {'comment': 'PKCS #12 BagIds (1 2 840 113549 1 12 10 1)', + 'description': 'pkcs-12-secretBag (1 2 840 113549 1 12 10 1 5)', + 'hexoid': '06 0B 2A 86 48 86 F7 0D 01 0C 0A 01 06', + 'name': 'pkcs-12-secretBag', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 10, + 1, + 5)}, + (1, 2, 840, 113549, 1, 12, 10, 1, 6): {'comment': 'PKCS #15', + 'description': 'pkcs-12-safeContentsBag (1 2 840 113549 1 12 10 1 6)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 01', + 'name': 'pkcs-12-safeContentsBag', + 'oid': (1, + 2, + 840, + 113549, + 1, + 12, + 10, + 1, + 6)}, + (1, 2, 840, 113549, 1, 15, 1): {'comment': 'PKCS #15', + 'description': 'pkcs15modules (1 2 840 113549 1 15 1)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 02', + 'name': 'pkcs15modules', + 'oid': (1, 2, 840, 113549, 1, 15, 1)}, + (1, 2, 840, 113549, 1, 15, 2): {'comment': 'PKCS #15', + 'description': 'pkcs15attributes (1 2 840 113549 1 15 2)', + 'hexoid': '06 09 2A 86 48 86 F7 0D 01 0F 03', + 'name': 'pkcs15attributes', + 'oid': (1, 2, 840, 113549, 1, 15, 2)}, + (1, 2, 840, 113549, 1, 15, 3): {'comment': 'PKCS #15 content type', + 'description': 'pkcs15contentType (1 2 840 113549 1 15 3)', + 'hexoid': '06 0A 2A 86 48 86 F7 0D 01 0F 03 01', + 'name': 'pkcs15contentType', + 'oid': (1, 2, 840, 113549, 1, 15, 3)}, + (1, 2, 840, 113549, 2): {'comment': 'RSADSI digestAlgorithm (1 2 840 113549 2)', + 'description': 'digestAlgorithm (1 2 840 113549 2)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 02 02', + 'name': 'digestAlgorithm', + 'oid': (1, 2, 840, 113549, 2)}, + (1, 2, 840, 113549, 2, 2): {'comment': 'RSADSI digestAlgorithm (1 2 840 113549 2)', + 'description': 'md2 (1 2 840 113549 2 2)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 02 07', + 'name': 'md2', + 'oid': (1, 2, 840, 113549, 2, 2)}, + (1, 2, 840, 113549, 3): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'encryptionAlgorithm (1 2 840 113549 3)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 02', + 'name': 'encryptionAlgorithm', + 'oid': (1, 2, 840, 113549, 3)}, + (1, 2, 840, 113549, 3, 2): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc2CBC (1 2 840 113549 3 2)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 03', + 'name': 'rc2CBC', + 'oid': (1, 2, 840, 113549, 3, 2)}, + (1, 2, 840, 113549, 3, 3): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc2ECB (1 2 840 113549 3 3)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 04', + 'name': 'rc2ECB', + 'oid': (1, 2, 840, 113549, 3, 3)}, + (1, 2, 840, 113549, 3, 4): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc4 (1 2 840 113549 3 4)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 05', + 'name': 'rc4', + 'oid': (1, 2, 840, 113549, 3, 4)}, + (1, 2, 840, 113549, 3, 5): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc4WithMAC (1 2 840 113549 3 5)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 06', + 'name': 'rc4WithMAC', + 'oid': (1, 2, 840, 113549, 3, 5)}, + (1, 2, 840, 113549, 3, 6): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'desx-CBC (1 2 840 113549 3 6)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 07', + 'name': 'desx-CBC', + 'oid': (1, 2, 840, 113549, 3, 6)}, + (1, 2, 840, 113549, 3, 7): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'des-EDE3-CBC (1 2 840 113549 3 7)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 08', + 'name': 'des-EDE3-CBC', + 'oid': (1, 2, 840, 113549, 3, 7)}, + (1, 2, 840, 113549, 3, 8): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3)', + 'description': 'rc5CBC (1 2 840 113549 3 8)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 09', + 'name': 'rc5CBC', + 'oid': (1, 2, 840, 113549, 3, 8)}, + (1, 2, 840, 113549, 3, 9): {'comment': 'RSADSI encryptionAlgorithm (1 2 840 113549 3). Formerly called CDMFCBCPad', + 'description': 'rc5-CBCPad (1 2 840 113549 3 9)', + 'hexoid': '06 08 2A 86 48 86 F7 0D 03 0A', + 'name': 'rc5-CBCPad', + 'oid': (1, 2, 840, 113549, 3, 9)}, + (1, 2, 840, 113549, 3, 10): {'comment': 'Identrus', + 'description': 'desCDMF (1 2 840 113549 3 10)', + 'hexoid': '06 09 2A 86 48 86 FA 65 01 06 01', + 'name': 'desCDMF', + 'oid': (1, 2, 840, 113549, 3, 10)}, + (1, 2, 840, 113556, 1, 2, 241): {'comment': 'Microsoft', + 'description': 'deliveryMechanism (1 2 840 113556 1 2 241)', + 'hexoid': '06 08 2A 86 48 86 F7 14 04 03', + 'name': 'deliveryMechanism', + 'oid': (1, 2, 840, 113556, 1, 2, 241)}, + (1, 2, 840, 113556, 1, 3, 0): {'comment': 'Microsoft Exchange Server - object class', + 'description': 'site-Addressing (1 2 840 113556 1 3 00)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0D', + 'name': 'site-Addressing', + 'oid': (1, 2, 840, 113556, 1, 3, 0)}, + (1, 2, 840, 113556, 1, 3, 13): {'comment': 'Microsoft Exchange Server - object class', + 'description': 'classSchema (1 2 840 113556 1 3 13)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 0E', + 'name': 'classSchema', + 'oid': (1, 2, 840, 113556, 1, 3, 13)}, + (1, 2, 840, 113556, 1, 3, 14): {'comment': 'Microsoft Exchange Server - object class', + 'description': 'attributeSchema (1 2 840 113556 1 3 14)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 11', + 'name': 'attributeSchema', + 'oid': (1, 2, 840, 113556, 1, 3, 14)}, + (1, 2, 840, 113556, 1, 3, 22): {'comment': 'Microsoft Exchange Server - object class', + 'description': 'mailbox (1 2 840 113556 1 3 22)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 17', + 'name': 'mailbox', + 'oid': (1, 2, 840, 113556, 1, 3, 22)}, + (1, 2, 840, 113556, 1, 3, 23): {'comment': 'Microsoft Exchange Server - object class', + 'description': 'container (1 2 840 113556 1 3 23)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 2E', + 'name': 'container', + 'oid': (1, 2, 840, 113556, 1, 3, 23)}, + (1, 2, 840, 113556, 1, 3, 46): {'comment': 'Microsoft Exchange Server - attribute', + 'description': 'mailRecipient (1 2 840 113556 1 3 46)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 02 81 71', + 'name': 'mailRecipient', + 'oid': (1, 2, 840, 113556, 1, 3, 46)}, + (1, 2, 840, 113556, 1, 3, 174): {'comment': 'Microsoft Exchange Server - object class', + 'description': 'mailbox-Agent (1 2 840 113556 1 3 174)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 16', + 'name': 'mailbox-Agent', + 'oid': (1, 2, 840, 113556, 1, 3, 174)}, + (1, 2, 840, 113556, 4, 3): {'comment': 'Microsoft', + 'description': 'microsoftExcel (1 2 840 113556 4 3)', + 'hexoid': '06 08 2A 86 48 86 F7 14 04 04', + 'name': 'microsoftExcel', + 'oid': (1, 2, 840, 113556, 4, 3)}, + (1, 2, 840, 113556, 4, 4): {'comment': 'Microsoft', + 'description': 'titledWithOID (1 2 840 113556 4 4)', + 'hexoid': '06 08 2A 86 48 86 F7 14 04 05', + 'name': 'titledWithOID', + 'oid': (1, 2, 840, 113556, 4, 4)}, + (1, 2, 840, 113556, 4, 5): {'comment': 'Microsoft code signing', + 'description': 'microsoftPowerPoint (1 2 840 113556 4 5)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 04', + 'name': 'microsoftPowerPoint', + 'oid': (1, 2, 840, 113556, 4, 5)}, + (1, 2, 840, 114021, 1, 6, 1): {'comment': 'Identrus', + 'description': 'Identrus unknown policyIdentifier (1 2 840 114021 1 6 1)', + 'hexoid': '06 08 2A 86 48 86 FA 65 04 01', + 'name': 'Identrus unknown policyIdentifier', + 'oid': (1, 2, 840, 114021, 1, 6, 1)}, + (1, 2, 840, 114021, 4, 1): {'comment': 'Ascom Systech', + 'description': 'identrusOCSP (1 2 840 114021 4 1)', + 'hexoid': '06 0A 2B 06 01 04 01 81 3C 07 01 01', + 'name': 'identrusOCSP', + 'oid': (1, 2, 840, 114021, 4, 1)}, + (1, 3, 6, 1, 4, 1, 188, 7, 1, 1): {'comment': 'Microsoft Exchange Server - object class', + 'description': 'ascom (1 3 6 1 4 1 188 7 1 1)', + 'hexoid': '06 09 2A 86 48 86 F7 14 01 03 00', + 'name': 'ascom', + 'oid': (1, 3, 6, 1, 4, 1, 188, 7, 1, 1)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 4): {'comment': 'Microsoft code signing. Also known as policyLink', + 'description': 'spcIndirectDataContext (1 3 6 1 4 1 311 2 1 4)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0A', + 'name': 'spcIndirectDataContext', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 4)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 10): {'comment': 'Microsoft code signing', + 'description': 'spcAgencyInfo (1 3 6 1 4 1 311 2 1 10)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0B', + 'name': 'spcAgencyInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 10)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 11): {'comment': 'Microsoft code signing', + 'description': 'spcStatementType (1 3 6 1 4 1 311 2 1 11)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0C', + 'name': 'spcStatementType', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 11)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 12): {'comment': 'Microsoft', + 'description': 'spcSpOpusInfo (1 3 6 1 4 1 311 2 1 12)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0E', + 'name': 'spcSpOpusInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 12)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 14): {'comment': 'Microsoft code signing', + 'description': 'certReqExtensions (1 3 6 1 4 1 311 2 1 14)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 0F', + 'name': 'certReqExtensions', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 14)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 15): {'comment': 'Microsoft code signing. Also known as "glue extension"', + 'description': 'spcPelmageData (1 3 6 1 4 1 311 2 1 15)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 14', + 'name': 'spcPelmageData', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 15)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 20): {'comment': 'Microsoft', + 'description': 'spcLink (type 1) (1 3 6 1 4 1 311 2 1 20)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 15', + 'name': 'spcLink', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 20)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 21): {'comment': 'Microsoft', + 'description': 'individualCodeSigning (1 3 6 1 4 1 311 2 1 21)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 16', + 'name': 'individualCodeSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 21)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 22): {'comment': 'Microsoft code signing', + 'description': 'commercialCodeSigning (1 3 6 1 4 1 311 2 1 22)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1A', + 'name': 'commercialCodeSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 22)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 26): {'comment': 'Microsoft code signing', + 'description': 'spcMinimalCriteriaInfo (1 3 6 1 4 1 311 2 1 26)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 02 01 1B', + 'name': 'spcMinimalCriteriaInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 26)}, + (1, 3, 6, 1, 4, 1, 311, 2, 1, 27): {'comment': 'Microsoft code signing', + 'description': 'spcFinancialCriteriaInfo (1 3 6 1 4 1 311 2 1 27)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 03 02 01', + 'name': 'spcFinancialCriteriaInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 2, 1, 27)}, + (1, 3, 6, 1, 4, 1, 311, 3, 2, 1): {'comment': 'Microsoft PKCS #7 contentType', + 'description': 'timestampCountersignature (1 3 6 1 4 1 311 3 2 1)', + 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 01', + 'name': 'timestampCountersignature', + 'oid': (1, 3, 6, 1, 4, 1, 311, 3, 2, 1)}, + (1, 3, 6, 1, 4, 1, 311, 10, 1): {'comment': 'Microsoft', + 'description': 'certTrustList (1 3 6 1 4 1 311 10 1)', + 'hexoid': '06 09 2B 06 01 04 01 82 37 0A 02', + 'name': 'certTrustList', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 1)}, + (1, 3, 6, 1, 4, 1, 311, 10, 2): {'comment': 'Microsoft enhanced key usage', + 'description': 'nextUpdateLocation (1 3 6 1 4 1 311 10 2)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 01', + 'name': 'nextUpdateLocation', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 2)}, + (1, 3, 6, 1, 4, 1, 311, 10, 3, 1): {'comment': 'Microsoft enhanced key usage', + 'description': 'certTrustListSigning (1 3 6 1 4 1 311 10 3 1)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 02', + 'name': 'certTrustListSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 1)}, + (1, 3, 6, 1, 4, 1, 311, 10, 3, 2): {'comment': 'Microsoft enhanced key usage', + 'description': 'timeStampSigning (1 3 6 1 4 1 311 10 3 2)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 03 04', + 'name': 'timeStampSigning', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 2)}, + (1, 3, 6, 1, 4, 1, 311, 10, 3, 4): {'comment': 'Microsoft attribute', + 'description': 'encryptedFileSystem (1 3 6 1 4 1 311 10 3 4)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0A 04 01', + 'name': 'encryptedFileSystem', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 3, 4)}, + (1, 3, 6, 1, 4, 1, 311, 10, 4, 1): {'comment': 'Microsoft attribute', + 'description': 'yesnoTrustAttr (1 3 6 1 4 1 311 10 4 1)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 02', + 'name': 'yesnoTrustAttr', + 'oid': (1, 3, 6, 1, 4, 1, 311, 10, 4, 1)}, + (1, 3, 6, 1, 4, 1, 311, 13, 2, 2): {'comment': 'Microsoft attribute', + 'description': 'enrolmentCSP (1 3 6 1 4 1 311 13 2 2)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 0D 02 03', + 'name': 'enrolmentCSP', + 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 2)}, + (1, 3, 6, 1, 4, 1, 311, 13, 2, 3): {'comment': 'Microsoft attribute', + 'description': 'osVersion (1 3 6 1 4 1 311 13 2 3)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 10 04', + 'name': 'osVersion', + 'oid': (1, 3, 6, 1, 4, 1, 311, 13, 2, 3)}, + (1, 3, 6, 1, 4, 1, 311, 16, 4): {'comment': 'Microsoft attribute', + 'description': 'microsoftRecipientInfo (1 3 6 1 4 1 311 16 4)', + 'hexoid': '06 09 2B 06 01 04 01 82 37 15 01', + 'name': 'microsoftRecipientInfo', + 'oid': (1, 3, 6, 1, 4, 1, 311, 16, 4)}, + (1, 3, 6, 1, 4, 1, 311, 21, 1): {'comment': 'Microsoft attribute', + 'description': 'cAKeyCertIndexPair (1 3 6 1 4 1 311 21 1)', + 'hexoid': '06 0A 2B 06 01 04 01 82 37 58 02 01', + 'name': 'cAKeyCertIndexPair', + 'oid': (1, 3, 6, 1, 4, 1, 311, 21, 1)}, + (1, 3, 6, 1, 4, 1, 311, 88, 2, 1): {'comment': 'UNINETT PCA', + 'description': 'originalFilename (1 3 6 1 4 1 311 88 2 1)', + 'hexoid': '06 0A 2B 06 01 04 01 92 7C 0A 01 01', + 'name': 'originalFilename', + 'oid': (1, 3, 6, 1, 4, 1, 311, 88, 2, 1)}, + (1, 3, 6, 1, 4, 1, 2428, 10, 1, 1): {'comment': 'ICE-TEL CA', + 'description': 'UNINETT policyIdentifier (1 3 6 1 4 1 2428 10 1 1)', + 'hexoid': '06 08 2B 06 01 04 01 95 18 0A', + 'name': 'UNINETT policyIdentifier', + 'oid': (1, + 3, + 6, + 1, + 4, + 1, + 2428, + 10, + 1, + 1)}, + (1, 3, 6, 1, 4, 1, 2712, 10): {'comment': 'ICE-TEL CA policy', + 'description': 'ICE-TEL policyIdentifier (1 3 6 1 4 1 2712 10)', + 'hexoid': '06 0A 2B 06 01 04 01 95 62 01 01 01', + 'name': 'ICE-TEL policyIdentifier', + 'oid': (1, 3, 6, 1, 4, 1, 2712, 10)}, + (1, 3, 6, 1, 4, 1, 2786, 1, 1, 1): {'comment': 'cryptlib encryption algorithm', + 'description': 'ICE-TEL Italian policyIdentifier (1 3 6 1 4 1 2786 1 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 01', + 'name': 'ICE-TEL Italian policyIdentifier', + 'oid': (1, 3, 6, 1, 4, 1, 2786, 1, 1, 1)}, + (1, 3, 6, 1, 4, 1, 3029, 1, 1, 1): {'comment': 'cryptlib encryption algorithm', + 'description': 'blowfishECB (1 3 6 1 4 1 3029 1 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 02', + 'name': 'blowfishECB', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 1)}, + (1, 3, 6, 1, 4, 1, 3029, 1, 1, 2): {'comment': 'cryptlib encryption algorithm', + 'description': 'blowfishCBC (1 3 6 1 4 1 3029 1 1 2)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 03', + 'name': 'blowfishCBC', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 2)}, + (1, 3, 6, 1, 4, 1, 3029, 1, 1, 3): {'comment': 'cryptlib encryption algorithm', + 'description': 'blowfishCFB (1 3 6 1 4 1 3029 1 1 3)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 01 04', + 'name': 'blowfishCFB', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 3)}, + (1, 3, 6, 1, 4, 1, 3029, 1, 1, 4): {'comment': 'cryptlib public-key algorithm', + 'description': 'blowfishOFB (1 3 6 1 4 1 3029 1 1 4)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 01 02 01', + 'name': 'blowfishOFB', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 1, 4)}, + (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1): {'comment': 'cryptlib public-key algorithm', + 'description': 'elgamal (1 3 6 1 4 1 3029 1 2 1)', + 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 01', + 'name': 'elgamal', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1)}, + (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 1): {'comment': 'cryptlib public-key algorithm', + 'description': 'elgamalWithSHA-1 (1 3 6 1 4 1 3029 1 2 1 1)', + 'hexoid': '06 0B 2B 06 01 04 01 97 55 01 02 01 02', + 'name': 'elgamalWithSHA-1', + 'oid': (1, + 3, + 6, + 1, + 4, + 1, + 3029, + 1, + 2, + 1, + 1)}, + (1, 3, 6, 1, 4, 1, 3029, 1, 2, 1, 2): {'comment': 'cryptlib attribute type', + 'description': 'elgamalWithRIPEMD-160 (1 3 6 1 4 1 3029 1 2 1 2)', + 'hexoid': '06 09 2B 06 01 04 01 97 55 03 01', + 'name': 'elgamalWithRIPEMD-160', + 'oid': (1, + 3, + 6, + 1, + 4, + 1, + 3029, + 1, + 2, + 1, + 2)}, + (1, 3, 6, 1, 4, 1, 3029, 3, 1): {'comment': 'cryptlib PKIX fix attribute', + 'description': 'cryptlibPKIXFix (1 3 6 1 4 1 3029 3 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 03 01 01', + 'name': 'cryptlibPKIXFix', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1)}, + (1, 3, 6, 1, 4, 1, 3029, 3, 1, 1): {'comment': 'cryptlib attribute type', + 'description': 'cryptlibPresenceCheck (1 3 6 1 4 1 3029 3 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 01', + 'name': 'cryptlibPresenceCheck', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 3, 1, 1)}, + (1, 3, 6, 1, 4, 1, 3029, 4, 1): {'comment': 'cryptlib content type', + 'description': 'cryptlibContent (1 3 6 1 4 1 3029 4 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 01', + 'name': 'cryptlibContent', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1)}, + (1, 3, 6, 1, 4, 1, 3029, 4, 1, 1): {'comment': 'cryptlib content type', + 'description': 'cryptlibConfigData (1 3 6 1 4 1 3029 4 1 1)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 02', + 'name': 'cryptlibConfigData', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 1)}, + (1, 3, 6, 1, 4, 1, 3029, 4, 1, 2): {'comment': 'cryptlib content type', + 'description': 'cryptlibUserIndex (1 3 6 1 4 1 3029 4 1 2)', + 'hexoid': '06 0A 2B 06 01 04 01 97 55 04 01 03', + 'name': 'cryptlibUserIndex', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 2)}, + (1, 3, 6, 1, 4, 1, 3029, 4, 1, 3): {'comment': 'cryptlib special MPEG-of-cat OID', + 'description': 'cryptlibUserInfo (1 3 6 1 4 1 3029 4 1 3)', + 'hexoid': '06 0B 2B 06 01 04 01 97 55 2A D7 24 01', + 'name': 'cryptlibUserInfo', + 'oid': (1, 3, 6, 1, 4, 1, 3029, 4, 1, 3)}, + (1, 3, 6, 1, 4, 1, 3029, 42, 11172, 1): {'comment': 'cryptlib certificate policy', + 'description': 'mpeg-1 (1 3 6 1 4 1 3029 42 11172 1)', + 'hexoid': '06 0C 2B 06 01 04 01 97 55 58 59 5A 5A 59', + 'name': 'mpeg-1', + 'oid': (1, + 3, + 6, + 1, + 4, + 1, + 3029, + 42, + 11172, + 1)}, + (1, 3, 6, 1, 4, 1, 3029, 88, 89, 90, 90, 89): {'comment': 'enterprise', + 'description': 'xYZZY policyIdentifier (1 3 6 1 4 1 3029 88 89 90 90 89)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60', + 'name': 'xYZZY policyIdentifier', + 'oid': (1, + 3, + 6, + 1, + 4, + 1, + 3029, + 88, + 89, + 90, + 90, + 89)}, + (1, 3, 6, 1, 4, 1, 5472): {'comment': 'timeproof', + 'description': 'timeproof (1 3 6 1 4 1 5472)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01', + 'name': 'timeproof', + 'oid': (1, 3, 6, 1, 4, 1, 5472)}, + (1, 3, 6, 1, 4, 1, 5472, 1): {'comment': 'timeproof TSS', + 'description': 'tss (1 3 6 1 4 1 5472 1)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01', + 'name': 'tss', + 'oid': (1, 3, 6, 1, 4, 1, 5472, 1)}, + (1, 3, 6, 1, 4, 1, 5472, 1, 1): {'comment': 'timeproof TSS', + 'description': 'tss80 (1 3 6 1 4 1 5472 1 1)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01', + 'name': 'tss80', + 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 1)}, + (1, 3, 6, 1, 4, 1, 5472, 1, 2): {'comment': 'timeproof TSS', + 'description': 'tss380 (1 3 6 1 4 1 5472 1 2)', + 'hexoid': '06 09 2B 06 01 04 01 AA 60 01 01', + 'name': 'tss380', + 'oid': (1, 3, 6, 1, 4, 1, 5472, 1, 2)}, + (1, 3, 6, 1, 5, 5, 7): {'comment': 'PKIX', + 'description': 'pkix (1 3 6 1 5 5 7)', + 'hexoid': '06 06 2B 06 01 05 05 07', + 'name': 'pkix', + 'oid': (1, 3, 6, 1, 5, 5, 7)}, + (1, 3, 6, 1, 5, 5, 7, 0, 12): {'comment': 'PKIX', + 'description': 'attributeCert (1 3 6 1 5 5 7 0 12)', + 'hexoid': '06 07 2B 06 01 05 05 07 01', + 'name': 'attributeCert', + 'oid': (1, 3, 6, 1, 5, 5, 7, 0, 12)}, + (1, 3, 6, 1, 5, 5, 7, 1): {'comment': 'PKIX private extension', + 'description': 'privateExtension (1 3 6 1 5 5 7 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 01', + 'name': 'privateExtension', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1)}, + (1, 3, 6, 1, 5, 5, 7, 1, 1): {'comment': 'PKIX private extension', + 'description': 'authorityInfoAccess (1 3 6 1 5 5 7 1 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 04', + 'name': 'authorityInfoAccess', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 1)}, + (1, 3, 6, 1, 5, 5, 7, 1, 4): {'comment': 'PKIX private extension', + 'description': 'acAuditIdentity (1 3 6 1 5 5 7 1 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 05', + 'name': 'acAuditIdentity', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 4)}, + (1, 3, 6, 1, 5, 5, 7, 1, 5): {'comment': 'PKIX private extension', + 'description': 'acTargeting (1 3 6 1 5 5 7 1 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 06', + 'name': 'acTargeting', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 5)}, + (1, 3, 6, 1, 5, 5, 7, 1, 6): {'comment': 'PKIX private extension', + 'description': 'acAaControls (1 3 6 1 5 5 7 1 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 07', + 'name': 'acAaControls', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 6)}, + (1, 3, 6, 1, 5, 5, 7, 1, 7): {'comment': 'PKIX private extension', + 'description': 'sbgp-ipAddrBlock (1 3 6 1 5 5 7 1 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 08', + 'name': 'sbgp-ipAddrBlock', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 7)}, + (1, 3, 6, 1, 5, 5, 7, 1, 8): {'comment': 'PKIX private extension', + 'description': 'sbgp-autonomousSysNum (1 3 6 1 5 5 7 1 8)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 09', + 'name': 'sbgp-autonomousSysNum', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 8)}, + (1, 3, 6, 1, 5, 5, 7, 1, 9): {'comment': 'PKIX private extension', + 'description': 'sbgp-routerIdentifier (1 3 6 1 5 5 7 1 9)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 0A', + 'name': 'sbgp-routerIdentifier', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 9)}, + (1, 3, 6, 1, 5, 5, 7, 1, 10): {'comment': 'PKIX private extension', + 'description': 'acProxying (1 3 6 1 5 5 7 1 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 01 0B', + 'name': 'acProxying', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 10)}, + (1, 3, 6, 1, 5, 5, 7, 1, 11): {'comment': 'PKIX', + 'description': 'subjectInfoAccess (1 3 6 1 5 5 7 1 11)', + 'hexoid': '06 07 2B 06 01 05 05 07 02', + 'name': 'subjectInfoAccess', + 'oid': (1, 3, 6, 1, 5, 5, 7, 1, 11)}, + (1, 3, 6, 1, 5, 5, 7, 2): {'comment': 'PKIX policy qualifier', + 'description': 'policyQualifierIds (1 3 6 1 5 5 7 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 02 01', + 'name': 'policyQualifierIds', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2)}, + (1, 3, 6, 1, 5, 5, 7, 2, 1): {'comment': 'PKIX policy qualifier', + 'description': 'cps (1 3 6 1 5 5 7 2 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 02 02', + 'name': 'cps', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 1)}, + (1, 3, 6, 1, 5, 5, 7, 2, 2): {'comment': 'PKIX policy qualifier', + 'description': 'unotice (1 3 6 1 5 5 7 2 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 02 03', + 'name': 'unotice', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 2)}, + (1, 3, 6, 1, 5, 5, 7, 2, 3): {'comment': 'PKIX', + 'description': 'textNotice (1 3 6 1 5 5 7 2 3)', + 'hexoid': '06 07 2B 06 01 05 05 07 03', + 'name': 'textNotice', + 'oid': (1, 3, 6, 1, 5, 5, 7, 2, 3)}, + (1, 3, 6, 1, 5, 5, 7, 3): {'comment': 'PKIX key purpose', + 'description': 'keyPurpose (1 3 6 1 5 5 7 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 01', + 'name': 'keyPurpose', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3)}, + (1, 3, 6, 1, 5, 5, 7, 3, 1): {'comment': 'PKIX key purpose', + 'description': 'serverAuth (1 3 6 1 5 5 7 3 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 02', + 'name': 'serverAuth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 1)}, + (1, 3, 6, 1, 5, 5, 7, 3, 2): {'comment': 'PKIX key purpose', + 'description': 'clientAuth (1 3 6 1 5 5 7 3 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 03', + 'name': 'clientAuth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 2)}, + (1, 3, 6, 1, 5, 5, 7, 3, 3): {'comment': 'PKIX key purpose', + 'description': 'codeSigning (1 3 6 1 5 5 7 3 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 04', + 'name': 'codeSigning', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 3)}, + (1, 3, 6, 1, 5, 5, 7, 3, 4): {'comment': 'PKIX key purpose', + 'description': 'emailProtection (1 3 6 1 5 5 7 3 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 05', + 'name': 'emailProtection', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 4)}, + (1, 3, 6, 1, 5, 5, 7, 3, 5): {'comment': 'PKIX key purpose', + 'description': 'ipsecEndSystem (1 3 6 1 5 5 7 3 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 06', + 'name': 'ipsecEndSystem', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 5)}, + (1, 3, 6, 1, 5, 5, 7, 3, 6): {'comment': 'PKIX key purpose', + 'description': 'ipsecTunnel (1 3 6 1 5 5 7 3 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 07', + 'name': 'ipsecTunnel', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 6)}, + (1, 3, 6, 1, 5, 5, 7, 3, 7): {'comment': 'PKIX key purpose', + 'description': 'ipsecUser (1 3 6 1 5 5 7 3 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 09', + 'name': 'ipsecUser', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 7)}, + (1, 3, 6, 1, 5, 5, 7, 3, 9): {'comment': 'PKIX key purpose', + 'description': 'ocspSigning (1 3 6 1 5 5 7 3 9)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 0A', + 'name': 'ocspSigning', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 9)}, + (1, 3, 6, 1, 5, 5, 7, 3, 10): {'comment': 'PKIX key purpose', + 'description': 'dvcs (1 3 6 1 5 5 7 3 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 03 0B', + 'name': 'dvcs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 10)}, + (1, 3, 6, 1, 5, 5, 7, 3, 11): {'comment': 'PKIX', + 'description': 'sbgpCertAAServerAuth (1 3 6 1 5 5 7 3 11)', + 'hexoid': '06 07 2B 06 01 05 05 07 04', + 'name': 'sbgpCertAAServerAuth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 3, 11)}, + (1, 3, 6, 1, 5, 5, 7, 4): {'comment': 'PKIX CMP information', + 'description': 'cmpInformationTypes (1 3 6 1 5 5 7 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 01', + 'name': 'cmpInformationTypes', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4)}, + (1, 3, 6, 1, 5, 5, 7, 4, 1): {'comment': 'PKIX CMP information', + 'description': 'caProtEncCert (1 3 6 1 5 5 7 4 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 02', + 'name': 'caProtEncCert', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 1)}, + (1, 3, 6, 1, 5, 5, 7, 4, 2): {'comment': 'PKIX CMP information', + 'description': 'signKeyPairTypes (1 3 6 1 5 5 7 4 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 03', + 'name': 'signKeyPairTypes', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 2)}, + (1, 3, 6, 1, 5, 5, 7, 4, 3): {'comment': 'PKIX CMP information', + 'description': 'encKeyPairTypes (1 3 6 1 5 5 7 4 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 04', + 'name': 'encKeyPairTypes', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 3)}, + (1, 3, 6, 1, 5, 5, 7, 4, 4): {'comment': 'PKIX CMP information', + 'description': 'preferredSymmAlg (1 3 6 1 5 5 7 4 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 05', + 'name': 'preferredSymmAlg', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 4)}, + (1, 3, 6, 1, 5, 5, 7, 4, 5): {'comment': 'PKIX CMP information', + 'description': 'caKeyUpdateInfo (1 3 6 1 5 5 7 4 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 06', + 'name': 'caKeyUpdateInfo', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 5)}, + (1, 3, 6, 1, 5, 5, 7, 4, 6): {'comment': 'PKIX CMP information', + 'description': 'currentCRL (1 3 6 1 5 5 7 4 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 07', + 'name': 'currentCRL', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 6)}, + (1, 3, 6, 1, 5, 5, 7, 4, 7): {'comment': 'PKIX CMP information', + 'description': 'unsupportedOIDs (1 3 6 1 5 5 7 4 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0A', + 'name': 'unsupportedOIDs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 7)}, + (1, 3, 6, 1, 5, 5, 7, 4, 10): {'comment': 'PKIX CMP information', + 'description': 'keyPairParamReq (1 3 6 1 5 5 7 4 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0B', + 'name': 'keyPairParamReq', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 10)}, + (1, 3, 6, 1, 5, 5, 7, 4, 11): {'comment': 'PKIX CMP information', + 'description': 'keyPairParamRep (1 3 6 1 5 5 7 4 11)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0C', + 'name': 'keyPairParamRep', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 11)}, + (1, 3, 6, 1, 5, 5, 7, 4, 12): {'comment': 'PKIX CMP information', + 'description': 'revPassphrase (1 3 6 1 5 5 7 4 12)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0D', + 'name': 'revPassphrase', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 12)}, + (1, 3, 6, 1, 5, 5, 7, 4, 13): {'comment': 'PKIX CMP information', + 'description': 'implicitConfirm (1 3 6 1 5 5 7 4 13)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0E', + 'name': 'implicitConfirm', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 13)}, + (1, 3, 6, 1, 5, 5, 7, 4, 14): {'comment': 'PKIX CMP information', + 'description': 'confirmWaitTime (1 3 6 1 5 5 7 4 14)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 0F', + 'name': 'confirmWaitTime', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 14)}, + (1, 3, 6, 1, 5, 5, 7, 4, 15): {'comment': 'PKIX CMP information', + 'description': 'origPKIMessage (1 3 6 1 5 5 7 4 15)', + 'hexoid': '06 08 2B 06 01 05 05 07 04 10', + 'name': 'origPKIMessage', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 15)}, + (1, 3, 6, 1, 5, 5, 7, 4, 16): {'comment': 'PKIX', + 'description': 'suppLangTags (1 3 6 1 5 5 7 4 16)', + 'hexoid': '06 07 2B 06 01 05 05 07 05', + 'name': 'suppLangTags', + 'oid': (1, 3, 6, 1, 5, 5, 7, 4, 16)}, + (1, 3, 6, 1, 5, 5, 7, 5): {'comment': 'PKIX CRMF registration', + 'description': 'crmfRegistration (1 3 6 1 5 5 7 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 05 01', + 'name': 'crmfRegistration', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1): {'comment': 'PKIX CRMF registration control', + 'description': 'regCtrl (1 3 6 1 5 5 7 5 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 01', + 'name': 'regCtrl', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 1): {'comment': 'PKIX CRMF registration control', + 'description': 'regToken (1 3 6 1 5 5 7 5 1 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 02', + 'name': 'regToken', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 1)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 2): {'comment': 'PKIX CRMF registration control', + 'description': 'authenticator (1 3 6 1 5 5 7 5 1 2)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 03', + 'name': 'authenticator', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 2)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 3): {'comment': 'PKIX CRMF registration control', + 'description': 'pkiPublicationInfo (1 3 6 1 5 5 7 5 1 3)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 04', + 'name': 'pkiPublicationInfo', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 3)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 4): {'comment': 'PKIX CRMF registration control', + 'description': 'pkiArchiveOptions (1 3 6 1 5 5 7 5 1 4)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 05', + 'name': 'pkiArchiveOptions', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 4)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 5): {'comment': 'PKIX CRMF registration control', + 'description': 'oldCertID (1 3 6 1 5 5 7 5 1 5)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 06', + 'name': 'oldCertID', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 5)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 6): {'comment': 'PKIX CRMF registration control', + 'description': 'protocolEncrKey (1 3 6 1 5 5 7 5 1 6)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 07', + 'name': 'protocolEncrKey', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 6)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 7): {'comment': 'PKIX CRMF registration control', + 'description': 'altCertTemplate(1 3 6 1 5 5 7 5 1 7)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 01 08', + 'name': 'altCertTemplate', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 7)}, + (1, 3, 6, 1, 5, 5, 7, 5, 1, 8): {'comment': 'PKIX CRMF registration', + 'description': 'wtlsTemplate (1 3 6 1 5 5 7 5 1 8)', + 'hexoid': '06 08 2B 06 01 05 05 07 05 02', + 'name': 'wtlsTemplate', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 1, 8)}, + (1, 3, 6, 1, 5, 5, 7, 5, 2): {'comment': 'PKIX CRMF registration control', + 'description': '(1 3 6 1 5 5 7 5 2)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 02 01', + 'name': '', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2)}, + (1, 3, 6, 1, 5, 5, 7, 5, 2, 1): {'comment': 'PKIX CRMF registration control', + 'description': 'utf8Pairs (1 3 6 1 5 5 7 5 2 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 05 02 02', + 'name': 'utf8Pairs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 1)}, + (1, 3, 6, 1, 5, 5, 7, 5, 2, 2): {'comment': 'PKIX', + 'description': 'certReq (1 3 6 1 5 5 7 5 2 2)', + 'hexoid': '06 07 2B 06 01 05 05 07 06', + 'name': 'certReq', + 'oid': (1, 3, 6, 1, 5, 5, 7, 5, 2, 2)}, + (1, 3, 6, 1, 5, 5, 7, 6): {'comment': 'PKIX algorithm', + 'description': 'algorithms (1 3 6 1 5 5 7 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 01', + 'name': 'algorithms', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6)}, + (1, 3, 6, 1, 5, 5, 7, 6, 1): {'comment': 'PKIX algorithm', + 'description': 'des40 (1 3 6 1 5 5 7 6 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 02', + 'name': 'des40', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 1)}, + (1, 3, 6, 1, 5, 5, 7, 6, 2): {'comment': 'PKIX algorithm', + 'description': 'noSignature (1 3 6 1 5 5 7 6 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 03', + 'name': 'noSignature', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 2)}, + (1, 3, 6, 1, 5, 5, 7, 6, 3): {'comment': 'PKIX algorithm', + 'description': 'dh-sig-hmac-sha1 (1 3 6 1 5 5 7 6 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 06 04', + 'name': 'dh-sig-hmac-sha1', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 3)}, + (1, 3, 6, 1, 5, 5, 7, 6, 4): {'comment': 'PKIX', + 'description': 'dh-pop (1 3 6 1 5 5 7 6 4)', + 'hexoid': '06 07 2B 06 01 05 05 07 07', + 'name': 'dh-pop', + 'oid': (1, 3, 6, 1, 5, 5, 7, 6, 4)}, + (1, 3, 6, 1, 5, 5, 7, 7): {'comment': 'PKIX', + 'description': 'cmcControls (1 3 6 1 5 5 7 7)', + 'hexoid': '06 07 2B 06 01 05 05 07 08', + 'name': 'cmcControls', + 'oid': (1, 3, 6, 1, 5, 5, 7, 7)}, + (1, 3, 6, 1, 5, 5, 7, 8): {'comment': 'PKIX other name', + 'description': 'otherNames (1 3 6 1 5 5 7 8)', + 'hexoid': '06 08 2B 06 01 05 05 07 08 01', + 'name': 'otherNames', + 'oid': (1, 3, 6, 1, 5, 5, 7, 8)}, + (1, 3, 6, 1, 5, 5, 7, 8, 1): {'comment': 'PKIX other name', + 'description': 'personalData (1 3 6 1 5 5 7 8 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 08 02', + 'name': 'personalData', + 'oid': (1, 3, 6, 1, 5, 5, 7, 8, 1)}, + (1, 3, 6, 1, 5, 5, 7, 8, 2): {'comment': 'PKIX personal data', + 'description': 'userGroup (1 3 6 1 5 5 7 8 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 01', + 'name': 'userGroup', + 'oid': (1, 3, 6, 1, 5, 5, 7, 8, 2)}, + (1, 3, 6, 1, 5, 5, 7, 9, 1): {'comment': 'PKIX personal data', + 'description': 'dateOfBirth (1 3 6 1 5 5 7 9 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 02', + 'name': 'dateOfBirth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 1)}, + (1, 3, 6, 1, 5, 5, 7, 9, 2): {'comment': 'PKIX personal data', + 'description': 'placeOfBirth (1 3 6 1 5 5 7 9 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 03', + 'name': 'placeOfBirth', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 2)}, + (1, 3, 6, 1, 5, 5, 7, 9, 3): {'comment': 'PKIX personal data', + 'description': 'pseudonym (1 3 6 1 5 5 7 9 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 04', + 'name': 'pseudonym', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 3)}, + (1, 3, 6, 1, 5, 5, 7, 9, 4): {'comment': 'PKIX personal data', + 'description': 'gender (1 3 6 1 5 5 7 9 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 05', + 'name': 'gender', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 4)}, + (1, 3, 6, 1, 5, 5, 7, 9, 5): {'comment': 'PKIX personal data', + 'description': 'countryOfCitizenship (1 3 6 1 5 5 7 9 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 09 06', + 'name': 'countryOfCitizenship', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 5)}, + (1, 3, 6, 1, 5, 5, 7, 9, 6): {'comment': 'PKIX', + 'description': 'countryOfResidence (1 3 6 1 5 5 7 9 6)', + 'hexoid': '06 07 2B 06 01 05 05 07 0A', + 'name': 'countryOfResidence', + 'oid': (1, 3, 6, 1, 5, 5, 7, 9, 6)}, + (1, 3, 6, 1, 5, 5, 7, 10): {'comment': 'PKIX attribute certificate extension', + 'description': 'attributeCertificate (1 3 6 1 5 5 7 10)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 01', + 'name': 'attributeCertificate', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10)}, + (1, 3, 6, 1, 5, 5, 7, 10, 1): {'comment': 'PKIX attribute certificate extension', + 'description': 'authenticationInfo (1 3 6 1 5 5 7 10 1)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 02', + 'name': 'authenticationInfo', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 1)}, + (1, 3, 6, 1, 5, 5, 7, 10, 2): {'comment': 'PKIX attribute certificate extension', + 'description': 'accessIdentity (1 3 6 1 5 5 7 10 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 03', + 'name': 'accessIdentity', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 2)}, + (1, 3, 6, 1, 5, 5, 7, 10, 3): {'comment': 'PKIX attribute certificate extension', + 'description': 'chargingIdentity (1 3 6 1 5 5 7 10 3)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 04', + 'name': 'chargingIdentity', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 3)}, + (1, 3, 6, 1, 5, 5, 7, 10, 4): {'comment': 'PKIX attribute certificate extension', + 'description': 'group (1 3 6 1 5 5 7 10 4)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 05', + 'name': 'group', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 4)}, + (1, 3, 6, 1, 5, 5, 7, 10, 5): {'comment': 'PKIX attribute certificate extension', + 'description': 'role (1 3 6 1 5 5 7 10 5)', + 'hexoid': '06 08 2B 06 01 05 05 07 0A 06', + 'name': 'role', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 5)}, + (1, 3, 6, 1, 5, 5, 7, 10, 6): {'comment': 'PKIX', + 'description': 'encAttrs (1 3 6 1 5 5 7 10 6)', + 'hexoid': '06 08 2B 06 01 05 05 07 30 01', + 'name': 'encAttrs', + 'oid': (1, 3, 6, 1, 5, 5, 7, 10, 6)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1): {'comment': 'OCSP', + 'description': 'ocsp (1 3 6 1 5 5 7 48 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 01', + 'name': 'ocsp', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1, 1): {'comment': 'OCSP', + 'description': 'ocspBasic (1 3 6 1 5 5 7 48 1 1)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 02', + 'name': 'ocspBasic', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 1)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1, 2): {'comment': 'OCSP', + 'description': 'ocspNonce (1 3 6 1 5 5 7 48 1 2)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 03', + 'name': 'ocspNonce', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 2)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1, 3): {'comment': 'OCSP', + 'description': 'ocspCRL (1 3 6 1 5 5 7 48 1 3)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 04', + 'name': 'ocspCRL', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 3)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1, 4): {'comment': 'OCSP', + 'description': 'ocspResponse (1 3 6 1 5 5 7 48 1 4)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 05', + 'name': 'ocspResponse', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 4)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1, 5): {'comment': 'OCSP', + 'description': 'ocspNoCheck (1 3 6 1 5 5 7 48 1 5)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 06', + 'name': 'ocspNoCheck', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 5)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1, 6): {'comment': 'OCSP', + 'description': 'ocspArchiveCutoff (1 3 6 1 5 5 7 48 1 6)', + 'hexoid': '06 09 2B 06 01 05 05 07 30 01 07', + 'name': 'ocspArchiveCutoff', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 6)}, + (1, 3, 6, 1, 5, 5, 7, 48, 1, 7): {'comment': 'PKIX authority info access descriptor', + 'description': 'ocspServiceLocator (1 3 6 1 5 5 7 48 1 7)', + 'hexoid': '06 08 2B 06 01 05 05 07 30 02', + 'name': 'ocspServiceLocator', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 1, 7)}, + (1, 3, 6, 1, 5, 5, 7, 48, 2): {'comment': 'PKIX authority info access descriptor', + 'description': 'caIssuers (1 3 6 1 5 5 7 48 2)', + 'hexoid': '06 08 2B 06 01 05 05 07 30 03', + 'name': 'caIssuers', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 2)}, + (1, 3, 6, 1, 5, 5, 7, 48, 3): {'comment': 'ISAKMP HMAC algorithm', + 'description': 'timeStamping (1 3 6 1 5 5 7 48 3)', + 'hexoid': '06 08 2B 06 01 05 05 08 01 01', + 'name': 'timeStamping', + 'oid': (1, 3, 6, 1, 5, 5, 7, 48, 3)}, + (1, 3, 6, 1, 5, 5, 8, 1, 1): {'comment': 'ISAKMP HMAC algorithm', + 'description': 'hmacMD5 (1 3 6 1 5 5 8 1 1)', + 'hexoid': '06 08 2B 06 01 05 05 08 01 02', + 'name': 'hmacMD5', + 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 1)}, + (1, 3, 6, 1, 5, 5, 8, 1, 2): {'comment': 'ISAKMP HMAC algorithm', + 'description': 'hmacSHA (1 3 6 1 5 5 8 1 2)', + 'hexoid': '06 08 2B 06 01 05 05 08 01 03', + 'name': 'hmacSHA', + 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 2)}, + (1, 3, 6, 1, 5, 5, 8, 1, 3): {'comment': 'IKE ???', + 'description': 'hmacTiger (1 3 6 1 5 5 8 1 3)', + 'hexoid': '06 08 2B 06 01 05 05 08 02 02', + 'name': 'hmacTiger', + 'oid': (1, 3, 6, 1, 5, 5, 8, 1, 3)}, + (1, 3, 6, 1, 5, 5, 8, 2, 2): {'comment': 'DASS algorithm', + 'description': 'iKEIntermediate (1 3 6 1 5 5 8 2 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 01', + 'name': 'iKEIntermediate', + 'oid': (1, 3, 6, 1, 5, 5, 8, 2, 2)}, + (1, 3, 12, 2, 1011, 7, 1): {'comment': 'DASS encryption algorithm', + 'description': 'decEncryptionAlgorithm (1 3 12 2 1011 7 1)', + 'hexoid': '06 08 2B 0C 02 87 73 07 01 02', + 'name': 'decEncryptionAlgorithm', + 'oid': (1, 3, 12, 2, 1011, 7, 1)}, + (1, 3, 12, 2, 1011, 7, 1, 2): {'comment': 'DASS algorithm', + 'description': 'decDEA (1 3 12 2 1011 7 1 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 02', + 'name': 'decDEA', + 'oid': (1, 3, 12, 2, 1011, 7, 1, 2)}, + (1, 3, 12, 2, 1011, 7, 2): {'comment': 'DASS hash algorithm', + 'description': 'decHashAlgorithm (1 3 12 2 1011 7 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 02 01', + 'name': 'decHashAlgorithm', + 'oid': (1, 3, 12, 2, 1011, 7, 2)}, + (1, 3, 12, 2, 1011, 7, 2, 1): {'comment': 'DASS hash algorithm', + 'description': 'decMD2 (1 3 12 2 1011 7 2 1)', + 'hexoid': '06 07 2B 0C 02 87 73 07 02 02', + 'name': 'decMD2', + 'oid': (1, 3, 12, 2, 1011, 7, 2, 1)}, + (1, 3, 12, 2, 1011, 7, 2, 2): {'comment': 'DASS algorithm', + 'description': 'decMD4 (1 3 12 2 1011 7 2 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03', + 'name': 'decMD4', + 'oid': (1, 3, 12, 2, 1011, 7, 2, 2)}, + (1, 3, 12, 2, 1011, 7, 3): {'comment': 'DASS signature algorithm', + 'description': 'decSignatureAlgorithm (1 3 12 2 1011 7 3)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03 01', + 'name': 'decSignatureAlgorithm', + 'oid': (1, 3, 12, 2, 1011, 7, 3)}, + (1, 3, 12, 2, 1011, 7, 3, 1): {'comment': 'DASS signature algorithm', + 'description': 'decMD2withRSA (1 3 12 2 1011 7 3 1)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03 02', + 'name': 'decMD2withRSA', + 'oid': (1, 3, 12, 2, 1011, 7, 3, 1)}, + (1, 3, 12, 2, 1011, 7, 3, 2): {'comment': 'DASS signature algorithm', + 'description': 'decMD4withRSA (1 3 12 2 1011 7 3 2)', + 'hexoid': '06 07 2B 0C 02 87 73 07 03 03', + 'name': 'decMD4withRSA', + 'oid': (1, 3, 12, 2, 1011, 7, 3, 2)}, + (1, 3, 12, 2, 1011, 7, 3, 3): {'comment': 'X.509. Unsure about this OID', + 'description': 'decDEAMAC (1 3 12 2 1011 7 3 3)', + 'hexoid': '06 06 2B 0E 03 02 01 01', + 'name': 'decDEAMAC', + 'oid': (1, 3, 12, 2, 1011, 7, 3, 3)}, + (1, 3, 14, 3, 2, 1, 1): {'comment': 'Oddball OIW OID', + 'description': 'rsa (1 3 14 3 2 1 1)', + 'hexoid': '06 05 2B 0E 03 02 02', + 'name': 'rsa', + 'oid': (1, 3, 14, 3, 2, 1, 1)}, + (1, 3, 14, 3, 2, 2): {'comment': 'Oddball OIW OID', + 'description': 'md4WitRSA (1 3 14 3 2 2)', + 'hexoid': '06 05 2B 0E 03 02 03', + 'name': 'md4WitRSA', + 'oid': (1, 3, 14, 3, 2, 2)}, + (1, 3, 14, 3, 2, 2, 1): {'comment': 'X.509. Deprecated', + 'description': 'sqmod-N (1 3 14 3 2 2 1)', + 'hexoid': '06 06 2B 0E 03 02 03 01', + 'name': 'sqmod-N', + 'oid': (1, 3, 14, 3, 2, 2, 1)}, + (1, 3, 14, 3, 2, 3): {'comment': 'Oddball OIW OID', + 'description': 'md5WithRSA (1 3 14 3 2 3)', + 'hexoid': '06 05 2B 0E 03 02 04', + 'name': 'md5WithRSA', + 'oid': (1, 3, 14, 3, 2, 3)}, + (1, 3, 14, 3, 2, 4): {'comment': 'X.509. Deprecated', + 'description': 'md4WithRSAEncryption (1 3 14 3 2 4)', + 'hexoid': '06 06 2B 0E 03 02 02 01', + 'name': 'md4WithRSAEncryption', + 'oid': (1, 3, 14, 3, 2, 4)}, + (1, 3, 14, 3, 2, 10): {'comment': 'ISO 9796-2, also X9.31 Part 1', + 'description': 'desMAC (1 3 14 3 2 10)', + 'hexoid': '06 05 2B 0E 03 02 0B', + 'name': 'desMAC', + 'oid': (1, 3, 14, 3, 2, 10)}, + (1, 3, 14, 3, 2, 11): {'comment': 'Oddball OIW OID. Incorrectly used by JDK 1.1 in place of (1 3 14 3 2 27)', + 'description': 'rsaSignature (1 3 14 3 2 11)', + 'hexoid': '06 05 2B 0E 03 02 0D', + 'name': 'rsaSignature', + 'oid': (1, 3, 14, 3, 2, 11)}, + (1, 3, 14, 3, 2, 13): {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'dsaWithSHA (1 3 14 3 2 13)', + 'hexoid': '06 05 2B 0E 03 02 0E', + 'name': 'dsaWithSHA', + 'oid': (1, 3, 14, 3, 2, 13)}, + (1, 3, 14, 3, 2, 14): {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'mdc2WithRSASignature (1 3 14 3 2 14)', + 'hexoid': '06 05 2B 0E 03 02 0F', + 'name': 'mdc2WithRSASignature', + 'oid': (1, 3, 14, 3, 2, 14)}, + (1, 3, 14, 3, 2, 15): {'comment': 'Oddball OIW OID. Deprecated, use a plain DH OID instead', + 'description': 'shaWithRSASignature (1 3 14 3 2 15)', + 'hexoid': '06 05 2B 0E 03 02 10', + 'name': 'shaWithRSASignature', + 'oid': (1, 3, 14, 3, 2, 15)}, + (1, 3, 14, 3, 2, 16): {'comment': 'Oddball OIW OID. Mode is ECB', + 'description': 'dhWithCommonModulus (1 3 14 3 2 16)', + 'hexoid': '06 05 2B 0E 03 02 11', + 'name': 'dhWithCommonModulus', + 'oid': (1, 3, 14, 3, 2, 16)}, + (1, 3, 14, 3, 2, 17): {'comment': 'Oddball OIW OID', + 'description': 'desEDE (1 3 14 3 2 17)', + 'hexoid': '06 05 2B 0E 03 02 12', + 'name': 'desEDE', + 'oid': (1, 3, 14, 3, 2, 17)}, + (1, 3, 14, 3, 2, 18): {'comment': 'Oddball OIW OID, DES-based hash, planned for X9.31 Part 2', + 'description': 'sha (1 3 14 3 2 18)', + 'hexoid': '06 05 2B 0E 03 02 13', + 'name': 'sha', + 'oid': (1, 3, 14, 3, 2, 18)}, + (1, 3, 14, 3, 2, 19): {'comment': 'Oddball OIW OID. Deprecated, use a plain DSA OID instead', + 'description': 'mdc-2 (1 3 14 3 2 19)', + 'hexoid': '06 05 2B 0E 03 02 14', + 'name': 'mdc-2', + 'oid': (1, 3, 14, 3, 2, 19)}, + (1, 3, 14, 3, 2, 20): {'comment': 'Oddball OIW OID. Deprecated, use a plain dsaWithSHA OID instead', + 'description': 'dsaCommon (1 3 14 3 2 20)', + 'hexoid': '06 05 2B 0E 03 02 15', + 'name': 'dsaCommon', + 'oid': (1, 3, 14, 3, 2, 20)}, + (1, 3, 14, 3, 2, 21): {'comment': 'Oddball OIW OID', + 'description': 'dsaCommonWithSHA (1 3 14 3 2 21)', + 'hexoid': '06 05 2B 0E 03 02 16', + 'name': 'dsaCommonWithSHA', + 'oid': (1, 3, 14, 3, 2, 21)}, + (1, 3, 14, 3, 2, 22): {'comment': 'Oddball OIW OID', + 'description': 'rsaKeyTransport (1 3 14 3 2 22)', + 'hexoid': '06 05 2B 0E 03 02 17', + 'name': 'rsaKeyTransport', + 'oid': (1, 3, 14, 3, 2, 22)}, + (1, 3, 14, 3, 2, 23): {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'keyed-hash-seal (1 3 14 3 2 23)', + 'hexoid': '06 05 2B 0E 03 02 18', + 'name': 'keyed-hash-seal', + 'oid': (1, 3, 14, 3, 2, 23)}, + (1, 3, 14, 3, 2, 24): {'comment': 'Oddball OIW OID using 9796-2 padding rules', + 'description': 'md2WithRSASignature (1 3 14 3 2 24)', + 'hexoid': '06 05 2B 0E 03 02 19', + 'name': 'md2WithRSASignature', + 'oid': (1, 3, 14, 3, 2, 24)}, + (1, 3, 14, 3, 2, 25): {'comment': 'OIW', + 'description': 'md5WithRSASignature (1 3 14 3 2 25)', + 'hexoid': '06 05 2B 0E 03 02 1A', + 'name': 'md5WithRSASignature', + 'oid': (1, 3, 14, 3, 2, 25)}, + (1, 3, 14, 3, 2, 26): {'comment': 'OIW. This OID may also be assigned as ripemd-160', + 'description': 'sha1 (1 3 14 3 2 26)', + 'hexoid': '06 05 2B 0E 03 02 1B', + 'name': 'sha1', + 'oid': (1, 3, 14, 3, 2, 26)}, + (1, 3, 14, 3, 2, 27): {'comment': 'OIW', + 'description': 'dsaWithSHA1 (1 3 14 3 2 27)', + 'hexoid': '06 05 2B 0E 03 02 1C', + 'name': 'dsaWithSHA1', + 'oid': (1, 3, 14, 3, 2, 27)}, + (1, 3, 14, 3, 2, 28): {'comment': 'Oddball OIW OID', + 'description': 'dsaWithCommonSHA1 (1 3 14 3 2 28)', + 'hexoid': '06 05 2B 0E 03 02 1D', + 'name': 'dsaWithCommonSHA1', + 'oid': (1, 3, 14, 3, 2, 28)}, + (1, 3, 14, 3, 2, 29): {'comment': 'Oddball OIW OID', + 'description': 'sha-1WithRSAEncryption (1 3 14 3 2 29)', + 'hexoid': '06 05 2B 0E 03 03 01', + 'name': 'sha-1WithRSAEncryption', + 'oid': (1, 3, 14, 3, 2, 29)}, + (1, 3, 14, 3, 3, 1): {'comment': 'Unsure about this OID', + 'description': 'simple-strong-auth-mechanism (1 3 14 3 3 1)', + 'hexoid': '06 06 2B 0E 07 02 01 01', + 'name': 'simple-strong-auth-mechanism', + 'oid': (1, 3, 14, 3, 3, 1)}, + (1, 3, 14, 7, 2, 1, 1): {'comment': 'Unsure about this OID', + 'description': 'ElGamal (1 3 14 7 2 1 1)', + 'hexoid': '06 06 2B 0E 07 02 03 01', + 'name': 'ElGamal', + 'oid': (1, 3, 14, 7, 2, 1, 1)}, + (1, 3, 14, 7, 2, 3, 1): {'comment': 'Unsure about this OID', + 'description': 'md2WithRSA (1 3 14 7 2 3 1)', + 'hexoid': '06 06 2B 0E 07 02 03 02', + 'name': 'md2WithRSA', + 'oid': (1, 3, 14, 7, 2, 3, 1)}, + (1, 3, 14, 7, 2, 3, 2): {'comment': 'Teletrust document', + 'description': 'md2WithElGamal (1 3 14 7 2 3 2)', + 'hexoid': '06 03 2B 24 01', + 'name': 'md2WithElGamal', + 'oid': (1, 3, 14, 7, 2, 3, 2)}, + (1, 3, 36, 1): {'comment': 'Teletrust document', + 'description': 'document (1 3 36 1)', + 'hexoid': '06 04 2B 24 01 01', + 'name': 'document', + 'oid': (1, 3, 36, 1)}, + (1, 3, 36, 1, 1): {'comment': 'Teletrust document', + 'description': 'finalVersion (1 3 36 1 1)', + 'hexoid': '06 04 2B 24 01 02', + 'name': 'finalVersion', + 'oid': (1, 3, 36, 1, 1)}, + (1, 3, 36, 1, 2): {'comment': 'Teletrust sio', + 'description': 'draft (1 3 36 1 2)', + 'hexoid': '06 03 2B 24 02', + 'name': 'draft', + 'oid': (1, 3, 36, 1, 2)}, + (1, 3, 36, 2): {'comment': 'Teletrust sio', + 'description': 'sio (1 3 36 2)', + 'hexoid': '06 04 2B 24 02 01', + 'name': 'sio', + 'oid': (1, 3, 36, 2)}, + (1, 3, 36, 2, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'sedu (1 3 36 2 1)', + 'hexoid': '06 06 2B 24 03 01 01 01', + 'name': 'sedu', + 'oid': (1, 3, 36, 2, 1)}, + (1, 3, 36, 3, 1, 1, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'desECB_pad (1 3 36 3 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 01 01 01', + 'name': 'desECB_pad', + 'oid': (1, 3, 36, 3, 1, 1, 1)}, + (1, 3, 36, 3, 1, 1, 1, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'desECB_ISOpad (1 3 36 3 1 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 01 02 01', + 'name': 'desECB_ISOpad', + 'oid': (1, 3, 36, 3, 1, 1, 1, 1)}, + (1, 3, 36, 3, 1, 1, 2, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'desCBC_pad (1 3 36 3 1 1 2 1)', + 'hexoid': '06 08 2B 24 03 01 01 02 01 01', + 'name': 'desCBC_pad', + 'oid': (1, 3, 36, 3, 1, 1, 2, 1)}, + (1, 3, 36, 3, 1, 1, 2, 1, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'desCBC_ISOpad (1 3 36 3 1 1 2 1 1)', + 'hexoid': '06 05 2B 24 03 01 03', + 'name': 'desCBC_ISOpad', + 'oid': (1, 3, 36, 3, 1, 1, 2, 1, 1)}, + (1, 3, 36, 3, 1, 2, 1, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaECB_pad (1 3 36 3 1 2 1 1)', + 'hexoid': '06 08 2B 24 03 01 02 01 01 01', + 'name': 'ideaECB_pad', + 'oid': (1, 3, 36, 3, 1, 2, 1, 1)}, + (1, 3, 36, 3, 1, 2, 1, 1, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaECB_ISOpad (1 3 36 3 1 2 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 02 02 01', + 'name': 'ideaECB_ISOpad', + 'oid': (1, 3, 36, 3, 1, 2, 1, 1, 1)}, + (1, 3, 36, 3, 1, 2, 2, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaCBC_pad (1 3 36 3 1 2 2 1)', + 'hexoid': '06 08 2B 24 03 01 02 02 01 01', + 'name': 'ideaCBC_pad', + 'oid': (1, 3, 36, 3, 1, 2, 2, 1)}, + (1, 3, 36, 3, 1, 2, 2, 1, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'ideaCBC_ISOpad (1 3 36 3 1 2 2 1 1)', + 'hexoid': '06 08 2B 24 03 01 04 84 00 11', + 'name': 'ideaCBC_ISOpad', + 'oid': (1, 3, 36, 3, 1, 2, 2, 1, 1)}, + (1, 3, 36, 3, 1, 3): {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3 (1 3 36 3 1 3)', + 'hexoid': '06 07 2B 24 03 01 03 01 01', + 'name': 'des_3', + 'oid': (1, 3, 36, 3, 1, 3)}, + (1, 3, 36, 3, 1, 3, 1, 1): {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3ECB_pad (1 3 36 3 1 3 1 1)', + 'hexoid': '06 08 2B 24 03 01 03 01 01 01', + 'name': 'des_3ECB_pad', + 'oid': (1, 3, 36, 3, 1, 3, 1, 1)}, + (1, 3, 36, 3, 1, 3, 1, 1, 1): {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3ECB_ISOpad (1 3 36 3 1 3 1 1 1)', + 'hexoid': '06 07 2B 24 03 01 03 02 01', + 'name': 'des_3ECB_ISOpad', + 'oid': (1, 3, 36, 3, 1, 3, 1, 1, 1)}, + (1, 3, 36, 3, 1, 3, 2, 1): {'comment': 'Teletrust encryption algorithm. EDE triple DES', + 'description': 'des_3CBC_pad (1 3 36 3 1 3 2 1)', + 'hexoid': '06 08 2B 24 03 01 03 02 01 01', + 'name': 'des_3CBC_pad', + 'oid': (1, 3, 36, 3, 1, 3, 2, 1)}, + (1, 3, 36, 3, 1, 3, 2, 1, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'des_3CBC_ISOpad (1 3 36 3 1 3 2 1 1)', + 'hexoid': '06 07 2B 24 03 01 02 01 01', + 'name': 'des_3CBC_ISOpad', + 'oid': (1, 3, 36, 3, 1, 3, 2, 1, 1)}, + (1, 3, 36, 3, 1, 4, 512, 17): {'comment': 'Teletrust encryption algorithm', + 'description': 'rsaEncryptionWithlmod512expe17 (1 3 36 3 1 4 512 17)', + 'hexoid': '06 05 2B 24 03 01 05', + 'name': 'rsaEncryptionWithlmod512expe17', + 'oid': (1, 3, 36, 3, 1, 4, 512, 17)}, + (1, 3, 36, 3, 1, 5): {'comment': 'Teletrust encryption algorithm', + 'description': 'bsi-1 (1 3 36 3 1 5)', + 'hexoid': '06 06 2B 24 03 01 05 01', + 'name': 'bsi-1', + 'oid': (1, 3, 36, 3, 1, 5)}, + (1, 3, 36, 3, 1, 5, 1): {'comment': 'Teletrust encryption algorithm', + 'description': 'bsi_1ECB_pad (1 3 36 3 1 5 1)', + 'hexoid': '06 06 2B 24 03 01 05 02', + 'name': 'bsi_1ECB_pad', + 'oid': (1, 3, 36, 3, 1, 5, 1)}, + (1, 3, 36, 3, 1, 5, 2): {'comment': 'Teletrust encryption algorithm', + 'description': 'bsi_1CBC_pad (1 3 36 3 1 5 2)', + 'hexoid': '06 07 2B 24 03 01 05 02 01', + 'name': 'bsi_1CBC_pad', + 'oid': (1, 3, 36, 3, 1, 5, 2)}, + (1, 3, 36, 3, 1, 5, 2, 1): {'comment': 'Teletrust algorithm', + 'description': 'bsi_1CBC_PEMpad (1 3 36 3 1 5 2 1)', + 'hexoid': '06 04 2B 24 03 02', + 'name': 'bsi_1CBC_PEMpad', + 'oid': (1, 3, 36, 3, 1, 5, 2, 1)}, + (1, 3, 36, 3, 2): {'comment': 'Teletrust hash algorithm', + 'description': 'hashAlgorithm (1 3 36 3 2)', + 'hexoid': '06 05 2B 24 03 02 03', + 'name': 'hashAlgorithm', + 'oid': (1, 3, 36, 3, 2)}, + (1, 3, 36, 3, 2, 3): {'comment': 'Teletrust hash algorithm', + 'description': 'ripemd256 (1 3 36 3 2 3)', + 'hexoid': '06 05 2B 24 03 02 04', + 'name': 'ripemd256', + 'oid': (1, 3, 36, 3, 2, 3)}, + (1, 3, 36, 3, 2, 4): {'comment': 'Teletrust hash algorithm', + 'description': 'mdc2singleLength (1 3 36 3 2 4)', + 'hexoid': '06 05 2B 24 03 02 05', + 'name': 'mdc2singleLength', + 'oid': (1, 3, 36, 3, 2, 4)}, + (1, 3, 36, 3, 2, 5): {'comment': 'Teletrust algorithm', + 'description': 'mdc2doubleLength (1 3 36 3 2 5)', + 'hexoid': '06 04 2B 24 03 03', + 'name': 'mdc2doubleLength', + 'oid': (1, 3, 36, 3, 2, 5)}, + (1, 3, 36, 3, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'signatureAlgorithm (1 3 36 3 3)', + 'hexoid': '06 06 2B 24 03 03 01 01', + 'name': 'signatureAlgorithm', + 'oid': (1, 3, 36, 3, 3)}, + (1, 3, 36, 3, 3, 1, 1): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1 (1 3 36 3 3 1 1)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 02', + 'name': 'rsaSignatureWithsha1', + 'oid': (1, 3, 36, 3, 3, 1, 1)}, + (1, 3, 36, 3, 3, 1, 1, 512, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l2 (1 3 36 3 3 1 1 512 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 02', + 'name': 'rsaSignatureWithsha1_l512_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 2)}, + (1, 3, 36, 3, 3, 1, 1, 512, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l3 (1 3 36 3 3 1 1 512 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 03', + 'name': 'rsaSignatureWithsha1_l512_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 3)}, + (1, 3, 36, 3, 3, 1, 1, 512, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l5 (1 3 36 3 3 1 1 512 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 05', + 'name': 'rsaSignatureWithsha1_l512_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 5)}, + (1, 3, 36, 3, 3, 1, 1, 512, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l9 (1 3 36 3 3 1 1 512 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 09', + 'name': 'rsaSignatureWithsha1_l512_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 9)}, + (1, 3, 36, 3, 3, 1, 1, 512, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l512_l11 (1 3 36 3 3 1 1 512 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 85 00 11', + 'name': 'rsaSignatureWithsha1_l512_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 512, 11)}, + (1, 3, 36, 3, 3, 1, 1, 640, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l2 (1 3 36 3 3 1 1 640 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 02', + 'name': 'rsaSignatureWithsha1_l640_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 2)}, + (1, 3, 36, 3, 3, 1, 1, 640, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l3 (1 3 36 3 3 1 1 640 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 03', + 'name': 'rsaSignatureWithsha1_l640_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 3)}, + (1, 3, 36, 3, 3, 1, 1, 640, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l5 (1 3 36 3 3 1 1 640 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 05', + 'name': 'rsaSignatureWithsha1_l640_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 5)}, + (1, 3, 36, 3, 3, 1, 1, 640, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l9 (1 3 36 3 3 1 1 640 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 09', + 'name': 'rsaSignatureWithsha1_l640_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 9)}, + (1, 3, 36, 3, 3, 1, 1, 640, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l640_l11 (1 3 36 3 3 1 1 640 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 86 00 11', + 'name': 'rsaSignatureWithsha1_l640_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 640, 11)}, + (1, 3, 36, 3, 3, 1, 1, 768, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l2 (1 3 36 3 3 1 1 768 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 02', + 'name': 'rsaSignatureWithsha1_l768_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 2)}, + (1, 3, 36, 3, 3, 1, 1, 768, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l3 (1 3 36 3 3 1 1 768 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 03', + 'name': 'rsaSignatureWithsha1_l768_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 3)}, + (1, 3, 36, 3, 3, 1, 1, 768, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l5 (1 3 36 3 3 1 1 768 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 05', + 'name': 'rsaSignatureWithsha1_l768_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 5)}, + (1, 3, 36, 3, 3, 1, 1, 768, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l9 (1 3 36 3 3 1 1 768 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 09', + 'name': 'rsaSignatureWithsha1_l768_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 9)}, + (1, 3, 36, 3, 3, 1, 1, 768, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l768_l11 (1 3 36 3 3 1 1 768 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 87 00 11', + 'name': 'rsaSignatureWithsha1_l768_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 768, 11)}, + (1, 3, 36, 3, 3, 1, 1, 892, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l2 (1 3 36 3 3 1 1 892 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 02', + 'name': 'rsaSignatureWithsha1_l896_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 892, 2)}, + (1, 3, 36, 3, 3, 1, 1, 896, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l3 (1 3 36 3 3 1 1 896 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 03', + 'name': 'rsaSignatureWithsha1_l896_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 3)}, + (1, 3, 36, 3, 3, 1, 1, 896, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l5 (1 3 36 3 3 1 1 896 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 05', + 'name': 'rsaSignatureWithsha1_l896_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 5)}, + (1, 3, 36, 3, 3, 1, 1, 896, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l9 (1 3 36 3 3 1 1 896 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 09', + 'name': 'rsaSignatureWithsha1_l896_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 9)}, + (1, 3, 36, 3, 3, 1, 1, 896, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l896_l11 (1 3 36 3 3 1 1 896 11)', + 'hexoid': '06 09 2B 24 03 03 01 01 88 00 11', + 'name': 'rsaSignatureWithsha1_l896_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 896, 11)}, + (1, 3, 36, 3, 3, 1, 1, 1024, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l2 (1 3 36 3 3 1 1 1024 2)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 03', + 'name': 'rsaSignatureWithsha1_l1024_l2', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 2)}, + (1, 3, 36, 3, 3, 1, 1, 1024, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l3 (1 3 36 3 3 1 1 1024 3)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 05', + 'name': 'rsaSignatureWithsha1_l1024_l3', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 3)}, + (1, 3, 36, 3, 3, 1, 1, 1024, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l5 (1 3 36 3 3 1 1 1024 5)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 09', + 'name': 'rsaSignatureWithsha1_l1024_l5', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 5)}, + (1, 3, 36, 3, 3, 1, 1, 1024, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l9 (1 3 36 3 3 1 1 1024 9)', + 'hexoid': '06 09 2B 24 03 03 01 01 84 00 11', + 'name': 'rsaSignatureWithsha1_l1024_l9', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 9)}, + (1, 3, 36, 3, 3, 1, 1, 1024, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithsha1_l1024_l11 (1 3 36 3 3 1 1 1024 11)', + 'hexoid': '06 06 2B 24 03 03 01 02', + 'name': 'rsaSignatureWithsha1_l1024_l11', + 'oid': (1, 3, 36, 3, 3, 1, 1, 1024, 11)}, + (1, 3, 36, 3, 3, 1, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160 (1 3 36 3 3 1 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 02', + 'name': 'rsaSignatureWithripemd160', + 'oid': (1, 3, 36, 3, 3, 1, 2)}, + (1, 3, 36, 3, 3, 1, 2, 512, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l2 (1 3 36 3 3 1 2 512 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 02', + 'name': 'rsaSignatureWithripemd160_l512_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 2)}, + (1, 3, 36, 3, 3, 1, 2, 512, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l3 (1 3 36 3 3 1 2 512 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 03', + 'name': 'rsaSignatureWithripemd160_l512_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 3)}, + (1, 3, 36, 3, 3, 1, 2, 512, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l5 (1 3 36 3 3 1 2 512 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 05', + 'name': 'rsaSignatureWithripemd160_l512_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 5)}, + (1, 3, 36, 3, 3, 1, 2, 512, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l9 (1 3 36 3 3 1 2 512 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 09', + 'name': 'rsaSignatureWithripemd160_l512_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 9)}, + (1, 3, 36, 3, 3, 1, 2, 512, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l512_l11 (1 3 36 3 3 1 2 512 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 85 00 11', + 'name': 'rsaSignatureWithripemd160_l512_l11', + 'oid': (1, 3, 36, 3, 3, 1, 2, 512, 11)}, + (1, 3, 36, 3, 3, 1, 2, 640, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l2 (1 3 36 3 3 1 2 640 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 02', + 'name': 'rsaSignatureWithripemd160_l640_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 2)}, + (1, 3, 36, 3, 3, 1, 2, 640, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l3 (1 3 36 3 3 1 2 640 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 03', + 'name': 'rsaSignatureWithripemd160_l640_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 3)}, + (1, 3, 36, 3, 3, 1, 2, 640, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l5 (1 3 36 3 3 1 2 640 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 05', + 'name': 'rsaSignatureWithripemd160_l640_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 5)}, + (1, 3, 36, 3, 3, 1, 2, 640, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l9 (1 3 36 3 3 1 2 640 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 09', + 'name': 'rsaSignatureWithripemd160_l640_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 9)}, + (1, 3, 36, 3, 3, 1, 2, 640, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l640_l11 (1 3 36 3 3 1 2 640 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 86 00 11', + 'name': 'rsaSignatureWithripemd160_l640_l11', + 'oid': (1, 3, 36, 3, 3, 1, 2, 640, 11)}, + (1, 3, 36, 3, 3, 1, 2, 768, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l2 (1 3 36 3 3 1 2 768 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 02', + 'name': 'rsaSignatureWithripemd160_l768_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 2)}, + (1, 3, 36, 3, 3, 1, 2, 768, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l3 (1 3 36 3 3 1 2 768 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 03', + 'name': 'rsaSignatureWithripemd160_l768_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 3)}, + (1, 3, 36, 3, 3, 1, 2, 768, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l5 (1 3 36 3 3 1 2 768 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 05', + 'name': 'rsaSignatureWithripemd160_l768_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 5)}, + (1, 3, 36, 3, 3, 1, 2, 768, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l9 (1 3 36 3 3 1 2 768 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 09', + 'name': 'rsaSignatureWithripemd160_l768_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 9)}, + (1, 3, 36, 3, 3, 1, 2, 768, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l768_l11 (1 3 36 3 3 1 2 768 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 87 00 11', + 'name': 'rsaSignatureWithripemd160_l768_l11', + 'oid': (1, 3, 36, 3, 3, 1, 2, 768, 11)}, + (1, 3, 36, 3, 3, 1, 2, 892, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l2 (1 3 36 3 3 1 2 892 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 02', + 'name': 'rsaSignatureWithripemd160_l896_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 892, 2)}, + (1, 3, 36, 3, 3, 1, 2, 896, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l3 (1 3 36 3 3 1 2 896 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 03', + 'name': 'rsaSignatureWithripemd160_l896_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 3)}, + (1, 3, 36, 3, 3, 1, 2, 896, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l5 (1 3 36 3 3 1 2 896 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 05', + 'name': 'rsaSignatureWithripemd160_l896_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 5)}, + (1, 3, 36, 3, 3, 1, 2, 896, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l9 (1 3 36 3 3 1 2 896 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 09', + 'name': 'rsaSignatureWithripemd160_l896_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 9)}, + (1, 3, 36, 3, 3, 1, 2, 896, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l896_l11 (1 3 36 3 3 1 2 896 11)', + 'hexoid': '06 09 2B 24 03 03 01 02 88 00 11', + 'name': 'rsaSignatureWithripemd160_l896_l11', + 'oid': (1, 3, 36, 3, 3, 1, 2, 896, 11)}, + (1, 3, 36, 3, 3, 1, 2, 1024, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l2 (1 3 36 3 3 1 2 1024 2)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 03', + 'name': 'rsaSignatureWithripemd160_l1024_l2', + 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 2)}, + (1, 3, 36, 3, 3, 1, 2, 1024, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l3 (1 3 36 3 3 1 2 1024 3)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 05', + 'name': 'rsaSignatureWithripemd160_l1024_l3', + 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 3)}, + (1, 3, 36, 3, 3, 1, 2, 1024, 5): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l5 (1 3 36 3 3 1 2 1024 5)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 09', + 'name': 'rsaSignatureWithripemd160_l1024_l5', + 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 5)}, + (1, 3, 36, 3, 3, 1, 2, 1024, 9): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l9 (1 3 36 3 3 1 2 1024 9)', + 'hexoid': '06 09 2B 24 03 03 01 02 84 00 11', + 'name': 'rsaSignatureWithripemd160_l1024_l9', + 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 9)}, + (1, 3, 36, 3, 3, 1, 2, 1024, 11): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithripemd160_l1024_l11 (1 3 36 3 3 1 2 1024 11)', + 'hexoid': '06 06 2B 24 03 03 01 03', + 'name': 'rsaSignatureWithripemd160_l1024_l11', + 'oid': (1, 3, 36, 3, 3, 1, 2, 1024, 11)}, + (1, 3, 36, 3, 3, 1, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithrimpemd128 (1 3 36 3 3 1 3)', + 'hexoid': '06 06 2B 24 03 03 01 04', + 'name': 'rsaSignatureWithrimpemd128', + 'oid': (1, 3, 36, 3, 3, 1, 3)}, + (1, 3, 36, 3, 3, 1, 4): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaSignatureWithrimpemd256 (1 3 36 3 3 1 4)', + 'hexoid': '06 05 2B 24 03 03 02', + 'name': 'rsaSignatureWithrimpemd256', + 'oid': (1, 3, 36, 3, 3, 1, 4)}, + (1, 3, 36, 3, 3, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSign (1 3 36 3 3 2)', + 'hexoid': '06 06 2B 24 03 03 02 01', + 'name': 'ecsieSign', + 'oid': (1, 3, 36, 3, 3, 2)}, + (1, 3, 36, 3, 3, 2, 1): {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSignWithsha1 (1 3 36 3 3 2 1)', + 'hexoid': '06 06 2B 24 03 03 02 02', + 'name': 'ecsieSignWithsha1', + 'oid': (1, 3, 36, 3, 3, 2, 1)}, + (1, 3, 36, 3, 3, 2, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSignWithripemd160 (1 3 36 3 3 2 2)', + 'hexoid': '06 06 2B 24 03 03 02 03', + 'name': 'ecsieSignWithripemd160', + 'oid': (1, 3, 36, 3, 3, 2, 2)}, + (1, 3, 36, 3, 3, 2, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'ecsieSignWithmd2 (1 3 36 3 3 2 3)', + 'hexoid': '06 06 2B 24 03 03 02 04', + 'name': 'ecsieSignWithmd2', + 'oid': (1, 3, 36, 3, 3, 2, 3)}, + (1, 3, 36, 3, 3, 2, 4): {'comment': 'Teletrust algorithm', + 'description': 'ecsieSignWithmd5 (1 3 36 3 3 2 4)', + 'hexoid': '06 04 2B 24 03 04', + 'name': 'ecsieSignWithmd5', + 'oid': (1, 3, 36, 3, 3, 2, 4)}, + (1, 3, 36, 3, 4): {'comment': 'Teletrust signature scheme', + 'description': 'signatureScheme (1 3 36 3 4)', + 'hexoid': '06 05 2B 24 03 04 01', + 'name': 'signatureScheme', + 'oid': (1, 3, 36, 3, 4)}, + (1, 3, 36, 3, 4, 1): {'comment': 'Teletrust signature scheme', + 'description': 'sigS_ISO9796-1 (1 3 36 3 4 1)', + 'hexoid': '06 05 2B 24 03 04 02', + 'name': 'sigS_ISO9796-1', + 'oid': (1, 3, 36, 3, 4, 1)}, + (1, 3, 36, 3, 4, 2): {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be', + 'description': 'sigS_ISO9796-2 (1 3 36 3 4 2)', + 'hexoid': '06 05 2B 24 03 04 02 01', + 'name': 'sigS_ISO9796-2', + 'oid': (1, 3, 36, 3, 4, 2)}, + (1, 3, 36, 3, 4, 2, 1): {'comment': 'Teletrust signature scheme. Unsure what this is supposed to be', + 'description': 'sigS_ISO9796-2Withred (1 3 36 3 4 2 1)', + 'hexoid': '06 06 2B 24 03 04 02 02', + 'name': 'sigS_ISO9796-2Withred', + 'oid': (1, 3, 36, 3, 4, 2, 1)}, + (1, 3, 36, 3, 4, 2, 2): {'comment': 'Teletrust signature scheme. 9796-2 with random number in padding field', + 'description': 'sigS_ISO9796-2Withrsa (1 3 36 3 4 2 2)', + 'hexoid': '06 06 2B 24 03 04 02 03', + 'name': 'sigS_ISO9796-2Withrsa', + 'oid': (1, 3, 36, 3, 4, 2, 2)}, + (1, 3, 36, 3, 4, 2, 3): {'comment': 'Teletrust API', + 'description': 'sigS_ISO9796-2Withrnd (1 3 36 3 4 2 3)', + 'hexoid': '06 03 2B 24 06', + 'name': 'sigS_ISO9796-2Withrnd', + 'oid': (1, 3, 36, 3, 4, 2, 3)}, + (1, 3, 36, 6): {'comment': 'Teletrust API', + 'description': 'api (1 3 36 6)', + 'hexoid': '06 04 2B 24 06 01', + 'name': 'api', + 'oid': (1, 3, 36, 6)}, + (1, 3, 36, 6, 1): {'comment': 'Teletrust API', + 'description': 'manufacturer-specific_api (1 3 36 6 1)', + 'hexoid': '06 05 2B 24 06 01 01', + 'name': 'manufacturer-specific_api', + 'oid': (1, 3, 36, 6, 1)}, + (1, 3, 36, 6, 1, 1): {'comment': 'Teletrust API', + 'description': 'utimaco-api (1 3 36 6 1 1)', + 'hexoid': '06 04 2B 24 06 02', + 'name': 'utimaco-api', + 'oid': (1, 3, 36, 6, 1, 1)}, + (1, 3, 36, 6, 2): {'comment': 'Teletrust key management', + 'description': 'functionality-specific_api (1 3 36 6 2)', + 'hexoid': '06 03 2B 24 07', + 'name': 'functionality-specific_api', + 'oid': (1, 3, 36, 6, 2)}, + (1, 3, 36, 7): {'comment': 'Teletrust key management', + 'description': 'keymgmnt (1 3 36 7)', + 'hexoid': '06 04 2B 24 07 01', + 'name': 'keymgmnt', + 'oid': (1, 3, 36, 7)}, + (1, 3, 36, 7, 1): {'comment': 'Teletrust key management', + 'description': 'keyagree (1 3 36 7 1)', + 'hexoid': '06 05 2B 24 07 01 01', + 'name': 'keyagree', + 'oid': (1, 3, 36, 7, 1)}, + (1, 3, 36, 7, 1, 1): {'comment': 'Teletrust key management', + 'description': 'bsiPKE (1 3 36 7 1 1)', + 'hexoid': '06 04 2B 24 07 02', + 'name': 'bsiPKE', + 'oid': (1, 3, 36, 7, 1, 1)}, + (1, 3, 36, 7, 2): {'comment': 'Teletrust key management. 9796-2 with key stored in hash field', + 'description': 'keytrans (1 3 36 7 2)', + 'hexoid': '06 05 2B 24 07 02 01', + 'name': 'keytrans', + 'oid': (1, 3, 36, 7, 2)}, + (1, 3, 36, 7, 2, 1): {'comment': 'Teletrust policy', + 'description': 'encISO9796-2Withrsa (1 3 36 7 2 1)', + 'hexoid': '06 05 2B 24 08 01 01', + 'name': 'encISO9796-2Withrsa', + 'oid': (1, 3, 36, 7, 2, 1)}, + (1, 3, 36, 8, 1, 1): {'comment': 'Teletrust extended key usage', + 'description': 'Teletrust SigiSigConform policyIdentifier (1 3 36 8 1 1)', + 'hexoid': '06 05 2B 24 08 02 01', + 'name': 'Teletrust SigiSigConform policyIdentifier', + 'oid': (1, 3, 36, 8, 1, 1)}, + (1, 3, 36, 8, 2, 1): {'comment': 'Teletrust attribute', + 'description': 'directoryService (1 3 36 8 2 1)', + 'hexoid': '06 05 2B 24 08 03 01', + 'name': 'directoryService', + 'oid': (1, 3, 36, 8, 2, 1)}, + (1, 3, 36, 8, 3, 1): {'comment': 'Teletrust attribute', + 'description': 'dateOfCertGen (1 3 36 8 3 1)', + 'hexoid': '06 05 2B 24 08 03 02', + 'name': 'dateOfCertGen', + 'oid': (1, 3, 36, 8, 3, 1)}, + (1, 3, 36, 8, 3, 2): {'comment': 'Teletrust attribute', + 'description': 'procuration (1 3 36 8 3 2)', + 'hexoid': '06 05 2B 24 08 03 03', + 'name': 'procuration', + 'oid': (1, 3, 36, 8, 3, 2)}, + (1, 3, 36, 8, 3, 3): {'comment': 'Teletrust attribute', + 'description': 'admission (1 3 36 8 3 3)', + 'hexoid': '06 05 2B 24 08 03 04', + 'name': 'admission', + 'oid': (1, 3, 36, 8, 3, 3)}, + (1, 3, 36, 8, 3, 4): {'comment': 'Teletrust attribute', + 'description': 'monetaryLimit (1 3 36 8 3 4)', + 'hexoid': '06 05 2B 24 08 03 05', + 'name': 'monetaryLimit', + 'oid': (1, 3, 36, 8, 3, 4)}, + (1, 3, 36, 8, 3, 5): {'comment': 'Teletrust attribute', + 'description': 'declarationOfMajority (1 3 36 8 3 5)', + 'hexoid': '06 05 2B 24 08 03 06', + 'name': 'declarationOfMajority', + 'oid': (1, 3, 36, 8, 3, 5)}, + (1, 3, 36, 8, 3, 6): {'comment': 'Teletrust attribute', + 'description': 'integratedCircuitCardSerialNumber (1 3 36 8 3 6)', + 'hexoid': '06 05 2B 24 08 03 07', + 'name': 'integratedCircuitCardSerialNumber', + 'oid': (1, 3, 36, 8, 3, 6)}, + (1, 3, 36, 8, 3, 7): {'comment': 'Teletrust attribute', + 'description': 'pKReference (1 3 36 8 3 7)', + 'hexoid': '06 05 2B 24 08 03 09', + 'name': 'pKReference', + 'oid': (1, 3, 36, 8, 3, 7)}, + (1, 3, 36, 8, 3, 9): {'comment': 'Teletrust attribute', + 'description': 'retrieveIfAllowed (1 3 36 8 3 9)', + 'hexoid': '06 05 2B 24 08 03 0A', + 'name': 'retrieveIfAllowed', + 'oid': (1, 3, 36, 8, 3, 9)}, + (1, 3, 36, 8, 3, 10): {'comment': 'Teletrust attribute', + 'description': 'requestedCertificate (1 3 36 8 3 10)', + 'hexoid': '06 05 2B 24 08 03 0B', + 'name': 'requestedCertificate', + 'oid': (1, 3, 36, 8, 3, 10)}, + (1, 3, 36, 8, 3, 11): {'comment': 'Teletrust attribute', + 'description': 'namingAuthorities (1 3 36 8 3 11)', + 'hexoid': '06 05 2B 24 08 03 0C', + 'name': 'namingAuthorities', + 'oid': (1, 3, 36, 8, 3, 11)}, + (1, 3, 36, 8, 3, 12): {'comment': 'Teletrust attribute', + 'description': 'certInDirSince (1 3 36 8 3 12)', + 'hexoid': '06 05 2B 24 08 03 0D', + 'name': 'certInDirSince', + 'oid': (1, 3, 36, 8, 3, 12)}, + (1, 3, 36, 8, 3, 13): {'comment': 'Teletrust attribute certificate attribute', + 'description': 'certHash (1 3 36 8 3 13)', + 'hexoid': '06 05 2B 24 08 04 08', + 'name': 'certHash', + 'oid': (1, 3, 36, 8, 3, 13)}, + (1, 3, 36, 8, 4, 8): {'comment': 'Teletrust signature algorithm', + 'description': 'restriction (1 3 36 8 4 8)', + 'hexoid': '06 07 2B 24 08 05 01 01 01', + 'name': 'restriction', + 'oid': (1, 3, 36, 8, 4, 8)}, + (1, 3, 36, 8, 5, 1, 1, 1): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaIndicateSHA1 (1 3 36 8 5 1 1 1)', + 'hexoid': '06 07 2B 24 08 05 01 01 02', + 'name': 'rsaIndicateSHA1', + 'oid': (1, 3, 36, 8, 5, 1, 1, 1)}, + (1, 3, 36, 8, 5, 1, 1, 2): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaIndicateRIPEMD160 (1 3 36 8 5 1 1 2)', + 'hexoid': '06 07 2B 24 08 05 01 01 03', + 'name': 'rsaIndicateRIPEMD160', + 'oid': (1, 3, 36, 8, 5, 1, 1, 2)}, + (1, 3, 36, 8, 5, 1, 1, 3): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaWithSHA1 (1 3 36 8 5 1 1 3)', + 'hexoid': '06 07 2B 24 08 05 01 01 04', + 'name': 'rsaWithSHA1', + 'oid': (1, 3, 36, 8, 5, 1, 1, 3)}, + (1, 3, 36, 8, 5, 1, 1, 4): {'comment': 'Teletrust signature algorithm', + 'description': 'rsaWithRIPEMD160 (1 3 36 8 5 1 1 4)', + 'hexoid': '06 07 2B 24 08 05 01 02 01', + 'name': 'rsaWithRIPEMD160', + 'oid': (1, 3, 36, 8, 5, 1, 1, 4)}, + (1, 3, 36, 8, 5, 1, 2, 1): {'comment': 'Teletrust signature algorithm', + 'description': 'dsaExtended (1 3 36 8 5 1 2 1)', + 'hexoid': '06 07 2B 24 08 05 01 02 02', + 'name': 'dsaExtended', + 'oid': (1, 3, 36, 8, 5, 1, 2, 1)}, + (1, 3, 36, 8, 5, 1, 2, 2): {'comment': 'Teletrust signature attributes', + 'description': 'dsaWithRIPEMD160 (1 3 36 8 5 1 2 2)', + 'hexoid': '06 05 2B 24 08 06 02', + 'name': 'dsaWithRIPEMD160', + 'oid': (1, 3, 36, 8, 5, 1, 2, 2)}, + (1, 3, 36, 8, 6, 2): {'comment': 'Teletrust signature attributes', + 'description': 'certRef (1 3 36 8 6 2)', + 'hexoid': '06 05 2B 24 08 06 03', + 'name': 'certRef', + 'oid': (1, 3, 36, 8, 6, 2)}, + (1, 3, 36, 8, 6, 3): {'comment': 'Teletrust signature attributes', + 'description': 'attrCert (1 3 36 8 6 3)', + 'hexoid': '06 05 2B 24 08 06 04', + 'name': 'attrCert', + 'oid': (1, 3, 36, 8, 6, 3)}, + (1, 3, 36, 8, 6, 4): {'comment': 'Teletrust signature attributes', + 'description': 'attrRef (1 3 36 8 6 4)', + 'hexoid': '06 05 2B 24 08 06 05', + 'name': 'attrRef', + 'oid': (1, 3, 36, 8, 6, 4)}, + (1, 3, 36, 8, 6, 5): {'comment': 'Teletrust signature attributes', + 'description': 'fileName (1 3 36 8 6 5)', + 'hexoid': '06 05 2B 24 08 06 06', + 'name': 'fileName', + 'oid': (1, 3, 36, 8, 6, 5)}, + (1, 3, 36, 8, 6, 6): {'comment': 'Teletrust signature attributes', + 'description': 'storageTime (1 3 36 8 6 6)', + 'hexoid': '06 05 2B 24 08 06 07', + 'name': 'storageTime', + 'oid': (1, 3, 36, 8, 6, 6)}, + (1, 3, 36, 8, 6, 7): {'comment': 'Teletrust signature attributes', + 'description': 'fileSize (1 3 36 8 6 7)', + 'hexoid': '06 05 2B 24 08 06 08', + 'name': 'fileSize', + 'oid': (1, 3, 36, 8, 6, 7)}, + (1, 3, 36, 8, 6, 8): {'comment': 'Teletrust signature attributes', + 'description': 'location (1 3 36 8 6 8)', + 'hexoid': '06 05 2B 24 08 06 09', + 'name': 'location', + 'oid': (1, 3, 36, 8, 6, 8)}, + (1, 3, 36, 8, 6, 9): {'comment': 'Teletrust signature attributes', + 'description': 'sigNumber (1 3 36 8 6 9)', + 'hexoid': '06 05 2B 24 08 06 0A', + 'name': 'sigNumber', + 'oid': (1, 3, 36, 8, 6, 9)}, + (1, 3, 36, 8, 6, 10): {'comment': 'Teletrust presentation types', + 'description': 'autoGen (1 3 36 8 6 10)', + 'hexoid': '06 06 2B 24 08 07 01 01', + 'name': 'autoGen', + 'oid': (1, 3, 36, 8, 6, 10)}, + (1, 3, 36, 8, 7, 1, 1): {'comment': 'Teletrust presentation types', + 'description': 'ptAdobeILL (1 3 36 8 7 1 1)', + 'hexoid': '06 06 2B 24 08 07 01 02', + 'name': 'ptAdobeILL', + 'oid': (1, 3, 36, 8, 7, 1, 1)}, + (1, 3, 36, 8, 7, 1, 2): {'comment': 'Teletrust presentation types', + 'description': 'ptAmiPro (1 3 36 8 7 1 2)', + 'hexoid': '06 06 2B 24 08 07 01 03', + 'name': 'ptAmiPro', + 'oid': (1, 3, 36, 8, 7, 1, 2)}, + (1, 3, 36, 8, 7, 1, 3): {'comment': 'Teletrust presentation types', + 'description': 'ptAutoCAD (1 3 36 8 7 1 3)', + 'hexoid': '06 06 2B 24 08 07 01 04', + 'name': 'ptAutoCAD', + 'oid': (1, 3, 36, 8, 7, 1, 3)}, + (1, 3, 36, 8, 7, 1, 4): {'comment': 'Teletrust presentation types', + 'description': 'ptBinary (1 3 36 8 7 1 4)', + 'hexoid': '06 06 2B 24 08 07 01 05', + 'name': 'ptBinary', + 'oid': (1, 3, 36, 8, 7, 1, 4)}, + (1, 3, 36, 8, 7, 1, 5): {'comment': 'Teletrust presentation types', + 'description': 'ptBMP (1 3 36 8 7 1 5)', + 'hexoid': '06 06 2B 24 08 07 01 06', + 'name': 'ptBMP', + 'oid': (1, 3, 36, 8, 7, 1, 5)}, + (1, 3, 36, 8, 7, 1, 6): {'comment': 'Teletrust presentation types', + 'description': 'ptCGM (1 3 36 8 7 1 6)', + 'hexoid': '06 06 2B 24 08 07 01 07', + 'name': 'ptCGM', + 'oid': (1, 3, 36, 8, 7, 1, 6)}, + (1, 3, 36, 8, 7, 1, 7): {'comment': 'Teletrust presentation types', + 'description': 'ptCorelCRT (1 3 36 8 7 1 7)', + 'hexoid': '06 06 2B 24 08 07 01 08', + 'name': 'ptCorelCRT', + 'oid': (1, 3, 36, 8, 7, 1, 7)}, + (1, 3, 36, 8, 7, 1, 8): {'comment': 'Teletrust presentation types', + 'description': 'ptCorelDRW (1 3 36 8 7 1 8)', + 'hexoid': '06 06 2B 24 08 07 01 09', + 'name': 'ptCorelDRW', + 'oid': (1, 3, 36, 8, 7, 1, 8)}, + (1, 3, 36, 8, 7, 1, 9): {'comment': 'Teletrust presentation types', + 'description': 'ptCorelEXC (1 3 36 8 7 1 9)', + 'hexoid': '06 06 2B 24 08 07 01 0A', + 'name': 'ptCorelEXC', + 'oid': (1, 3, 36, 8, 7, 1, 9)}, + (1, 3, 36, 8, 7, 1, 10): {'comment': 'Teletrust presentation types', + 'description': 'ptCorelPHT (1 3 36 8 7 1 10)', + 'hexoid': '06 06 2B 24 08 07 01 0B', + 'name': 'ptCorelPHT', + 'oid': (1, 3, 36, 8, 7, 1, 10)}, + (1, 3, 36, 8, 7, 1, 11): {'comment': 'Teletrust presentation types', + 'description': 'ptDraw (1 3 36 8 7 1 11)', + 'hexoid': '06 06 2B 24 08 07 01 0C', + 'name': 'ptDraw', + 'oid': (1, 3, 36, 8, 7, 1, 11)}, + (1, 3, 36, 8, 7, 1, 12): {'comment': 'Teletrust presentation types', + 'description': 'ptDVI (1 3 36 8 7 1 12)', + 'hexoid': '06 06 2B 24 08 07 01 0D', + 'name': 'ptDVI', + 'oid': (1, 3, 36, 8, 7, 1, 12)}, + (1, 3, 36, 8, 7, 1, 13): {'comment': 'Teletrust presentation types', + 'description': 'ptEPS (1 3 36 8 7 1 13)', + 'hexoid': '06 06 2B 24 08 07 01 0E', + 'name': 'ptEPS', + 'oid': (1, 3, 36, 8, 7, 1, 13)}, + (1, 3, 36, 8, 7, 1, 14): {'comment': 'Teletrust presentation types', + 'description': 'ptExcel (1 3 36 8 7 1 14)', + 'hexoid': '06 06 2B 24 08 07 01 0F', + 'name': 'ptExcel', + 'oid': (1, 3, 36, 8, 7, 1, 14)}, + (1, 3, 36, 8, 7, 1, 15): {'comment': 'Teletrust presentation types', + 'description': 'ptGEM (1 3 36 8 7 1 15)', + 'hexoid': '06 06 2B 24 08 07 01 10', + 'name': 'ptGEM', + 'oid': (1, 3, 36, 8, 7, 1, 15)}, + (1, 3, 36, 8, 7, 1, 16): {'comment': 'Teletrust presentation types', + 'description': 'ptGIF (1 3 36 8 7 1 16)', + 'hexoid': '06 06 2B 24 08 07 01 11', + 'name': 'ptGIF', + 'oid': (1, 3, 36, 8, 7, 1, 16)}, + (1, 3, 36, 8, 7, 1, 17): {'comment': 'Teletrust presentation types', + 'description': 'ptHPGL (1 3 36 8 7 1 17)', + 'hexoid': '06 06 2B 24 08 07 01 12', + 'name': 'ptHPGL', + 'oid': (1, 3, 36, 8, 7, 1, 17)}, + (1, 3, 36, 8, 7, 1, 18): {'comment': 'Teletrust presentation types', + 'description': 'ptJPEG (1 3 36 8 7 1 18)', + 'hexoid': '06 06 2B 24 08 07 01 13', + 'name': 'ptJPEG', + 'oid': (1, 3, 36, 8, 7, 1, 18)}, + (1, 3, 36, 8, 7, 1, 19): {'comment': 'Teletrust presentation types', + 'description': 'ptKodak (1 3 36 8 7 1 19)', + 'hexoid': '06 06 2B 24 08 07 01 14', + 'name': 'ptKodak', + 'oid': (1, 3, 36, 8, 7, 1, 19)}, + (1, 3, 36, 8, 7, 1, 20): {'comment': 'Teletrust presentation types', + 'description': 'ptLaTeX (1 3 36 8 7 1 20)', + 'hexoid': '06 06 2B 24 08 07 01 15', + 'name': 'ptLaTeX', + 'oid': (1, 3, 36, 8, 7, 1, 20)}, + (1, 3, 36, 8, 7, 1, 21): {'comment': 'Teletrust presentation types', + 'description': 'ptLotus (1 3 36 8 7 1 21)', + 'hexoid': '06 06 2B 24 08 07 01 16', + 'name': 'ptLotus', + 'oid': (1, 3, 36, 8, 7, 1, 21)}, + (1, 3, 36, 8, 7, 1, 22): {'comment': 'Teletrust presentation types', + 'description': 'ptLotusPIC (1 3 36 8 7 1 22)', + 'hexoid': '06 06 2B 24 08 07 01 17', + 'name': 'ptLotusPIC', + 'oid': (1, 3, 36, 8, 7, 1, 22)}, + (1, 3, 36, 8, 7, 1, 23): {'comment': 'Teletrust presentation types', + 'description': 'ptMacPICT (1 3 36 8 7 1 23)', + 'hexoid': '06 06 2B 24 08 07 01 18', + 'name': 'ptMacPICT', + 'oid': (1, 3, 36, 8, 7, 1, 23)}, + (1, 3, 36, 8, 7, 1, 24): {'comment': 'Teletrust presentation types', + 'description': 'ptMacWord (1 3 36 8 7 1 24)', + 'hexoid': '06 06 2B 24 08 07 01 19', + 'name': 'ptMacWord', + 'oid': (1, 3, 36, 8, 7, 1, 24)}, + (1, 3, 36, 8, 7, 1, 25): {'comment': 'Teletrust presentation types', + 'description': 'ptMSWfD (1 3 36 8 7 1 25)', + 'hexoid': '06 06 2B 24 08 07 01 1A', + 'name': 'ptMSWfD', + 'oid': (1, 3, 36, 8, 7, 1, 25)}, + (1, 3, 36, 8, 7, 1, 26): {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord (1 3 36 8 7 1 26)', + 'hexoid': '06 06 2B 24 08 07 01 1B', + 'name': 'ptMSWord', + 'oid': (1, 3, 36, 8, 7, 1, 26)}, + (1, 3, 36, 8, 7, 1, 27): {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord2 (1 3 36 8 7 1 27)', + 'hexoid': '06 06 2B 24 08 07 01 1C', + 'name': 'ptMSWord2', + 'oid': (1, 3, 36, 8, 7, 1, 27)}, + (1, 3, 36, 8, 7, 1, 28): {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord6 (1 3 36 8 7 1 28)', + 'hexoid': '06 06 2B 24 08 07 01 1D', + 'name': 'ptMSWord6', + 'oid': (1, 3, 36, 8, 7, 1, 28)}, + (1, 3, 36, 8, 7, 1, 29): {'comment': 'Teletrust presentation types', + 'description': 'ptMSWord8 (1 3 36 8 7 1 29)', + 'hexoid': '06 06 2B 24 08 07 01 1E', + 'name': 'ptMSWord8', + 'oid': (1, 3, 36, 8, 7, 1, 29)}, + (1, 3, 36, 8, 7, 1, 30): {'comment': 'Teletrust presentation types', + 'description': 'ptPDF (1 3 36 8 7 1 30)', + 'hexoid': '06 06 2B 24 08 07 01 1F', + 'name': 'ptPDF', + 'oid': (1, 3, 36, 8, 7, 1, 30)}, + (1, 3, 36, 8, 7, 1, 31): {'comment': 'Teletrust presentation types', + 'description': 'ptPIF (1 3 36 8 7 1 31)', + 'hexoid': '06 06 2B 24 08 07 01 20', + 'name': 'ptPIF', + 'oid': (1, 3, 36, 8, 7, 1, 31)}, + (1, 3, 36, 8, 7, 1, 32): {'comment': 'Teletrust presentation types', + 'description': 'ptPostscript (1 3 36 8 7 1 32)', + 'hexoid': '06 06 2B 24 08 07 01 21', + 'name': 'ptPostscript', + 'oid': (1, 3, 36, 8, 7, 1, 32)}, + (1, 3, 36, 8, 7, 1, 33): {'comment': 'Teletrust presentation types', + 'description': 'ptRTF (1 3 36 8 7 1 33)', + 'hexoid': '06 06 2B 24 08 07 01 22', + 'name': 'ptRTF', + 'oid': (1, 3, 36, 8, 7, 1, 33)}, + (1, 3, 36, 8, 7, 1, 34): {'comment': 'Teletrust presentation types', + 'description': 'ptSCITEX (1 3 36 8 7 1 34)', + 'hexoid': '06 06 2B 24 08 07 01 23', + 'name': 'ptSCITEX', + 'oid': (1, 3, 36, 8, 7, 1, 34)}, + (1, 3, 36, 8, 7, 1, 35): {'comment': 'Teletrust presentation types', + 'description': 'ptTAR (1 3 36 8 7 1 35)', + 'hexoid': '06 06 2B 24 08 07 01 24', + 'name': 'ptTAR', + 'oid': (1, 3, 36, 8, 7, 1, 35)}, + (1, 3, 36, 8, 7, 1, 36): {'comment': 'Teletrust presentation types', + 'description': 'ptTarga (1 3 36 8 7 1 36)', + 'hexoid': '06 06 2B 24 08 07 01 25', + 'name': 'ptTarga', + 'oid': (1, 3, 36, 8, 7, 1, 36)}, + (1, 3, 36, 8, 7, 1, 37): {'comment': 'Teletrust presentation types', + 'description': 'ptTeX (1 3 36 8 7 1 37)', + 'hexoid': '06 06 2B 24 08 07 01 26', + 'name': 'ptTeX', + 'oid': (1, 3, 36, 8, 7, 1, 37)}, + (1, 3, 36, 8, 7, 1, 38): {'comment': 'Teletrust presentation types', + 'description': 'ptText (1 3 36 8 7 1 38)', + 'hexoid': '06 06 2B 24 08 07 01 27', + 'name': 'ptText', + 'oid': (1, 3, 36, 8, 7, 1, 38)}, + (1, 3, 36, 8, 7, 1, 39): {'comment': 'Teletrust presentation types', + 'description': 'ptTIFF (1 3 36 8 7 1 39)', + 'hexoid': '06 06 2B 24 08 07 01 28', + 'name': 'ptTIFF', + 'oid': (1, 3, 36, 8, 7, 1, 39)}, + (1, 3, 36, 8, 7, 1, 40): {'comment': 'Teletrust presentation types', + 'description': 'ptTIFF-FC (1 3 36 8 7 1 40)', + 'hexoid': '06 06 2B 24 08 07 01 29', + 'name': 'ptTIFF-FC', + 'oid': (1, 3, 36, 8, 7, 1, 40)}, + (1, 3, 36, 8, 7, 1, 41): {'comment': 'Teletrust presentation types', + 'description': 'ptUID (1 3 36 8 7 1 41)', + 'hexoid': '06 06 2B 24 08 07 01 2A', + 'name': 'ptUID', + 'oid': (1, 3, 36, 8, 7, 1, 41)}, + (1, 3, 36, 8, 7, 1, 42): {'comment': 'Teletrust presentation types', + 'description': 'ptUUEncode (1 3 36 8 7 1 42)', + 'hexoid': '06 06 2B 24 08 07 01 2B', + 'name': 'ptUUEncode', + 'oid': (1, 3, 36, 8, 7, 1, 42)}, + (1, 3, 36, 8, 7, 1, 43): {'comment': 'Teletrust presentation types', + 'description': 'ptWMF (1 3 36 8 7 1 43)', + 'hexoid': '06 06 2B 24 08 07 01 2C', + 'name': 'ptWMF', + 'oid': (1, 3, 36, 8, 7, 1, 43)}, + (1, 3, 36, 8, 7, 1, 44): {'comment': 'Teletrust presentation types', + 'description': 'ptWordPerfect (1 3 36 8 7 1 44)', + 'hexoid': '06 06 2B 24 08 07 01 2D', + 'name': 'ptWordPerfect', + 'oid': (1, 3, 36, 8, 7, 1, 44)}, + (1, 3, 36, 8, 7, 1, 45): {'comment': 'Thawte', + 'description': 'ptWPGrph (1 3 36 8 7 1 45)', + 'hexoid': '06 04 2B 65 01 04', + 'name': 'ptWPGrph', + 'oid': (1, 3, 36, 8, 7, 1, 45)}, + (1, 3, 101, 1, 4): {'comment': 'Thawte certificate extension', + 'description': 'thawte-ce (1 3 101 1 4)', + 'hexoid': '06 05 2B 65 01 04 01', + 'name': 'thawte-ce', + 'oid': (1, 3, 101, 1, 4)}, + (1, 3, 101, 1, 4, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'strongExtranet (1 3 101 1 4 1)', + 'hexoid': '06 03 55 04 00', + 'name': 'strongExtranet', + 'oid': (1, 3, 101, 1, 4, 1)}, + (2, 5, 4, 0): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'objectClass (2 5 4 0)', + 'hexoid': '06 03 55 04 01', + 'name': 'objectClass', + 'oid': (2, 5, 4, 0)}, + (2, 5, 4, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'aliasedEntryName (2 5 4 1)', + 'hexoid': '06 03 55 04 02', + 'name': 'aliasedEntryName', + 'oid': (2, 5, 4, 1)}, + (2, 5, 4, 2): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'knowledgeInformation (2 5 4 2)', + 'hexoid': '06 03 55 04 03', + 'name': 'knowledgeInformation', + 'oid': (2, 5, 4, 2)}, + (2, 5, 4, 3): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'commonName (2 5 4 3)', + 'hexoid': '06 03 55 04 04', + 'name': 'commonName', + 'oid': (2, 5, 4, 3)}, + (2, 5, 4, 4): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'surname (2 5 4 4)', + 'hexoid': '06 03 55 04 05', + 'name': 'surname', + 'oid': (2, 5, 4, 4)}, + (2, 5, 4, 5): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'serialNumber (2 5 4 5)', + 'hexoid': '06 03 55 04 06', + 'name': 'serialNumber', + 'oid': (2, 5, 4, 5)}, + (2, 5, 4, 6): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'countryName (2 5 4 6)', + 'hexoid': '06 03 55 04 07', + 'name': 'countryName', + 'oid': (2, 5, 4, 6)}, + (2, 5, 4, 7): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'localityName (2 5 4 7)', + 'hexoid': '06 04 55 04 07 01', + 'name': 'localityName', + 'oid': (2, 5, 4, 7)}, + (2, 5, 4, 7, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveLocalityName (2 5 4 7 1)', + 'hexoid': '06 03 55 04 08', + 'name': 'collectiveLocalityName', + 'oid': (2, 5, 4, 7, 1)}, + (2, 5, 4, 8): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'stateOrProvinceName (2 5 4 8)', + 'hexoid': '06 04 55 04 08 01', + 'name': 'stateOrProvinceName', + 'oid': (2, 5, 4, 8)}, + (2, 5, 4, 8, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveStateOrProvinceName (2 5 4 8 1)', + 'hexoid': '06 03 55 04 09', + 'name': 'collectiveStateOrProvinceName', + 'oid': (2, 5, 4, 8, 1)}, + (2, 5, 4, 9): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'streetAddress (2 5 4 9)', + 'hexoid': '06 04 55 04 09 01', + 'name': 'streetAddress', + 'oid': (2, 5, 4, 9)}, + (2, 5, 4, 9, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveStreetAddress (2 5 4 9 1)', + 'hexoid': '06 03 55 04 0A', + 'name': 'collectiveStreetAddress', + 'oid': (2, 5, 4, 9, 1)}, + (2, 5, 4, 10): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'organizationName (2 5 4 10)', + 'hexoid': '06 04 55 04 0A 01', + 'name': 'organizationName', + 'oid': (2, 5, 4, 10)}, + (2, 5, 4, 10, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveOrganizationName (2 5 4 10 1)', + 'hexoid': '06 03 55 04 0B', + 'name': 'collectiveOrganizationName', + 'oid': (2, 5, 4, 10, 1)}, + (2, 5, 4, 11): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'organizationalUnitName (2 5 4 11)', + 'hexoid': '06 04 55 04 0B 01', + 'name': 'organizationalUnitName', + 'oid': (2, 5, 4, 11)}, + (2, 5, 4, 11, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveOrganizationalUnitName (2 5 4 11 1)', + 'hexoid': '06 03 55 04 0C', + 'name': 'collectiveOrganizationalUnitName', + 'oid': (2, 5, 4, 11, 1)}, + (2, 5, 4, 12): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'title (2 5 4 12)', + 'hexoid': '06 03 55 04 0D', + 'name': 'title', + 'oid': (2, 5, 4, 12)}, + (2, 5, 4, 13): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'description (2 5 4 13)', + 'hexoid': '06 03 55 04 0E', + 'name': 'description', + 'oid': (2, 5, 4, 13)}, + (2, 5, 4, 14): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'searchGuide (2 5 4 14)', + 'hexoid': '06 03 55 04 0F', + 'name': 'searchGuide', + 'oid': (2, 5, 4, 14)}, + (2, 5, 4, 15): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'businessCategory (2 5 4 15)', + 'hexoid': '06 03 55 04 10', + 'name': 'businessCategory', + 'oid': (2, 5, 4, 15)}, + (2, 5, 4, 16): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'postalAddress (2 5 4 16)', + 'hexoid': '06 04 55 04 10 01', + 'name': 'postalAddress', + 'oid': (2, 5, 4, 16)}, + (2, 5, 4, 16, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePostalAddress (2 5 4 16 1)', + 'hexoid': '06 03 55 04 11', + 'name': 'collectivePostalAddress', + 'oid': (2, 5, 4, 16, 1)}, + (2, 5, 4, 17): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'postalCode (2 5 4 17)', + 'hexoid': '06 04 55 04 11 01', + 'name': 'postalCode', + 'oid': (2, 5, 4, 17)}, + (2, 5, 4, 17, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePostalCode (2 5 4 17 1)', + 'hexoid': '06 03 55 04 12', + 'name': 'collectivePostalCode', + 'oid': (2, 5, 4, 17, 1)}, + (2, 5, 4, 18): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'postOfficeBox (2 5 4 18)', + 'hexoid': '06 04 55 04 12 01', + 'name': 'postOfficeBox', + 'oid': (2, 5, 4, 18)}, + (2, 5, 4, 18, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePostOfficeBox (2 5 4 18 1)', + 'hexoid': '06 03 55 04 13', + 'name': 'collectivePostOfficeBox', + 'oid': (2, 5, 4, 18, 1)}, + (2, 5, 4, 19): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'physicalDeliveryOfficeName (2 5 4 19)', + 'hexoid': '06 04 55 04 13 01', + 'name': 'physicalDeliveryOfficeName', + 'oid': (2, 5, 4, 19)}, + (2, 5, 4, 19, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectivePhysicalDeliveryOfficeName (2 5 4 19 1)', + 'hexoid': '06 03 55 04 14', + 'name': 'collectivePhysicalDeliveryOfficeName', + 'oid': (2, 5, 4, 19, 1)}, + (2, 5, 4, 20): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'telephoneNumber (2 5 4 20)', + 'hexoid': '06 04 55 04 14 01', + 'name': 'telephoneNumber', + 'oid': (2, 5, 4, 20)}, + (2, 5, 4, 20, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveTelephoneNumber (2 5 4 20 1)', + 'hexoid': '06 03 55 04 15', + 'name': 'collectiveTelephoneNumber', + 'oid': (2, 5, 4, 20, 1)}, + (2, 5, 4, 21): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'telexNumber (2 5 4 21)', + 'hexoid': '06 04 55 04 15 01', + 'name': 'telexNumber', + 'oid': (2, 5, 4, 21)}, + (2, 5, 4, 21, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveTelexNumber (2 5 4 21 1)', + 'hexoid': '06 03 55 04 16', + 'name': 'collectiveTelexNumber', + 'oid': (2, 5, 4, 21, 1)}, + (2, 5, 4, 22): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'teletexTerminalIdentifier (2 5 4 22)', + 'hexoid': '06 04 55 04 16 01', + 'name': 'teletexTerminalIdentifier', + 'oid': (2, 5, 4, 22)}, + (2, 5, 4, 22, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveTeletexTerminalIdentifier (2 5 4 22 1)', + 'hexoid': '06 03 55 04 17', + 'name': 'collectiveTeletexTerminalIdentifier', + 'oid': (2, 5, 4, 22, 1)}, + (2, 5, 4, 23): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'facsimileTelephoneNumber (2 5 4 23)', + 'hexoid': '06 04 55 04 17 01', + 'name': 'facsimileTelephoneNumber', + 'oid': (2, 5, 4, 23)}, + (2, 5, 4, 23, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveFacsimileTelephoneNumber (2 5 4 23 1)', + 'hexoid': '06 03 55 04 18', + 'name': 'collectiveFacsimileTelephoneNumber', + 'oid': (2, 5, 4, 23, 1)}, + (2, 5, 4, 24): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'x121Address (2 5 4 24)', + 'hexoid': '06 03 55 04 19', + 'name': 'x121Address', + 'oid': (2, 5, 4, 24)}, + (2, 5, 4, 25): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'internationalISDNNumber (2 5 4 25)', + 'hexoid': '06 04 55 04 19 01', + 'name': 'internationalISDNNumber', + 'oid': (2, 5, 4, 25)}, + (2, 5, 4, 25, 1): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'collectiveInternationalISDNNumber (2 5 4 25 1)', + 'hexoid': '06 03 55 04 1A', + 'name': 'collectiveInternationalISDNNumber', + 'oid': (2, 5, 4, 25, 1)}, + (2, 5, 4, 26): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'registeredAddress (2 5 4 26)', + 'hexoid': '06 03 55 04 1B', + 'name': 'registeredAddress', + 'oid': (2, 5, 4, 26)}, + (2, 5, 4, 27): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'destinationIndicator (2 5 4 27)', + 'hexoid': '06 03 55 04 1C', + 'name': 'destinationIndicator', + 'oid': (2, 5, 4, 27)}, + (2, 5, 4, 28): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'preferredDeliveryMehtod (2 5 4 28)', + 'hexoid': '06 03 55 04 1D', + 'name': 'preferredDeliveryMehtod', + 'oid': (2, 5, 4, 28)}, + (2, 5, 4, 29): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'presentationAddress (2 5 4 29)', + 'hexoid': '06 03 55 04 1E', + 'name': 'presentationAddress', + 'oid': (2, 5, 4, 29)}, + (2, 5, 4, 30): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'supportedApplicationContext (2 5 4 30)', + 'hexoid': '06 03 55 04 1F', + 'name': 'supportedApplicationContext', + 'oid': (2, 5, 4, 30)}, + (2, 5, 4, 31): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'member (2 5 4 31)', + 'hexoid': '06 03 55 04 20', + 'name': 'member', + 'oid': (2, 5, 4, 31)}, + (2, 5, 4, 32): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'owner (2 5 4 32)', + 'hexoid': '06 03 55 04 21', + 'name': 'owner', + 'oid': (2, 5, 4, 32)}, + (2, 5, 4, 33): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'roleOccupant (2 5 4 33)', + 'hexoid': '06 03 55 04 22', + 'name': 'roleOccupant', + 'oid': (2, 5, 4, 33)}, + (2, 5, 4, 34): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'seeAlso (2 5 4 34)', + 'hexoid': '06 03 55 04 23', + 'name': 'seeAlso', + 'oid': (2, 5, 4, 34)}, + (2, 5, 4, 35): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'userPassword (2 5 4 35)', + 'hexoid': '06 03 55 04 24', + 'name': 'userPassword', + 'oid': (2, 5, 4, 35)}, + (2, 5, 4, 36): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'userCertificate (2 5 4 36)', + 'hexoid': '06 03 55 04 25', + 'name': 'userCertificate', + 'oid': (2, 5, 4, 36)}, + (2, 5, 4, 37): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'caCertificate (2 5 4 37)', + 'hexoid': '06 03 55 04 26', + 'name': 'caCertificate', + 'oid': (2, 5, 4, 37)}, + (2, 5, 4, 38): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'authorityRevocationList (2 5 4 38)', + 'hexoid': '06 03 55 04 27', + 'name': 'authorityRevocationList', + 'oid': (2, 5, 4, 38)}, + (2, 5, 4, 39): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'certificateRevocationList (2 5 4 39)', + 'hexoid': '06 03 55 04 28', + 'name': 'certificateRevocationList', + 'oid': (2, 5, 4, 39)}, + (2, 5, 4, 40): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'crossCertificatePair (2 5 4 40)', + 'hexoid': '06 03 55 04 29', + 'name': 'crossCertificatePair', + 'oid': (2, 5, 4, 40)}, + (2, 5, 4, 41): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'name (2 5 4 41)', + 'hexoid': '06 03 55 04 2A', + 'name': 'name', + 'oid': (2, 5, 4, 41)}, + (2, 5, 4, 42): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'givenName (2 5 4 42)', + 'hexoid': '06 03 55 04 2B', + 'name': 'givenName', + 'oid': (2, 5, 4, 42)}, + (2, 5, 4, 43): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'initials (2 5 4 43)', + 'hexoid': '06 03 55 04 2C', + 'name': 'initials', + 'oid': (2, 5, 4, 43)}, + (2, 5, 4, 44): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'generationQualifier (2 5 4 44)', + 'hexoid': '06 03 55 04 2D', + 'name': 'generationQualifier', + 'oid': (2, 5, 4, 44)}, + (2, 5, 4, 45): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'uniqueIdentifier (2 5 4 45)', + 'hexoid': '06 03 55 04 2E', + 'name': 'uniqueIdentifier', + 'oid': (2, 5, 4, 45)}, + (2, 5, 4, 46): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'dnQualifier (2 5 4 46)', + 'hexoid': '06 03 55 04 2F', + 'name': 'dnQualifier', + 'oid': (2, 5, 4, 46)}, + (2, 5, 4, 47): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'enhancedSearchGuide (2 5 4 47)', + 'hexoid': '06 03 55 04 30', + 'name': 'enhancedSearchGuide', + 'oid': (2, 5, 4, 47)}, + (2, 5, 4, 48): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'protocolInformation (2 5 4 48)', + 'hexoid': '06 03 55 04 31', + 'name': 'protocolInformation', + 'oid': (2, 5, 4, 48)}, + (2, 5, 4, 49): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'distinguishedName (2 5 4 49)', + 'hexoid': '06 03 55 04 32', + 'name': 'distinguishedName', + 'oid': (2, 5, 4, 49)}, + (2, 5, 4, 50): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'uniqueMember (2 5 4 50)', + 'hexoid': '06 03 55 04 33', + 'name': 'uniqueMember', + 'oid': (2, 5, 4, 50)}, + (2, 5, 4, 51): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'houseIdentifier (2 5 4 51)', + 'hexoid': '06 03 55 04 34', + 'name': 'houseIdentifier', + 'oid': (2, 5, 4, 51)}, + (2, 5, 4, 52): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'supportedAlgorithms (2 5 4 52)', + 'hexoid': '06 03 55 04 35', + 'name': 'supportedAlgorithms', + 'oid': (2, 5, 4, 52)}, + (2, 5, 4, 53): {'comment': 'X.520 id-at (2 5 4)', + 'description': 'deltaRevocationList (2 5 4 53)', + 'hexoid': '06 03 55 04 36', + 'name': 'deltaRevocationList', + 'oid': (2, 5, 4, 53)}, + (2, 5, 4, 55): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'clearance (2 5 4 55)', + 'hexoid': '06 03 55 06 00', + 'name': 'clearance', + 'oid': (2, 5, 4, 55)}, + (2, 5, 6, 0): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'top (2 5 6 0)', + 'hexoid': '06 03 55 06 01', + 'name': 'top', + 'oid': (2, 5, 6, 0)}, + (2, 5, 6, 1): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'alias (2 5 6 1)', + 'hexoid': '06 03 55 06 02', + 'name': 'alias', + 'oid': (2, 5, 6, 1)}, + (2, 5, 6, 2): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'country (2 5 6 2)', + 'hexoid': '06 03 55 06 03', + 'name': 'country', + 'oid': (2, 5, 6, 2)}, + (2, 5, 6, 3): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'locality (2 5 6 3)', + 'hexoid': '06 03 55 06 04', + 'name': 'locality', + 'oid': (2, 5, 6, 3)}, + (2, 5, 6, 4): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organization (2 5 6 4)', + 'hexoid': '06 03 55 06 05', + 'name': 'organization', + 'oid': (2, 5, 6, 4)}, + (2, 5, 6, 5): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organizationalUnit (2 5 6 5)', + 'hexoid': '06 03 55 06 06', + 'name': 'organizationalUnit', + 'oid': (2, 5, 6, 5)}, + (2, 5, 6, 6): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'person (2 5 6 6)', + 'hexoid': '06 03 55 06 07', + 'name': 'person', + 'oid': (2, 5, 6, 6)}, + (2, 5, 6, 7): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organizationalPerson (2 5 6 7)', + 'hexoid': '06 03 55 06 08', + 'name': 'organizationalPerson', + 'oid': (2, 5, 6, 7)}, + (2, 5, 6, 8): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'organizationalRole (2 5 6 8)', + 'hexoid': '06 03 55 06 09', + 'name': 'organizationalRole', + 'oid': (2, 5, 6, 8)}, + (2, 5, 6, 9): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'groupOfNames (2 5 6 9)', + 'hexoid': '06 03 55 06 0A', + 'name': 'groupOfNames', + 'oid': (2, 5, 6, 9)}, + (2, 5, 6, 10): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'residentialPerson (2 5 6 10)', + 'hexoid': '06 03 55 06 0B', + 'name': 'residentialPerson', + 'oid': (2, 5, 6, 10)}, + (2, 5, 6, 11): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'applicationProcess (2 5 6 11)', + 'hexoid': '06 03 55 06 0C', + 'name': 'applicationProcess', + 'oid': (2, 5, 6, 11)}, + (2, 5, 6, 12): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'applicationEntity (2 5 6 12)', + 'hexoid': '06 03 55 06 0D', + 'name': 'applicationEntity', + 'oid': (2, 5, 6, 12)}, + (2, 5, 6, 13): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'dSA (2 5 6 13)', + 'hexoid': '06 03 55 06 0E', + 'name': 'dSA', + 'oid': (2, 5, 6, 13)}, + (2, 5, 6, 14): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'device (2 5 6 14)', + 'hexoid': '06 03 55 06 0F', + 'name': 'device', + 'oid': (2, 5, 6, 14)}, + (2, 5, 6, 15): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'strongAuthenticationUser (2 5 6 15)', + 'hexoid': '06 03 55 06 10', + 'name': 'strongAuthenticationUser', + 'oid': (2, 5, 6, 15)}, + (2, 5, 6, 16): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'certificateAuthority (2 5 6 16)', + 'hexoid': '06 03 55 06 11', + 'name': 'certificateAuthority', + 'oid': (2, 5, 6, 16)}, + (2, 5, 6, 17): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'groupOfUniqueNames (2 5 6 17)', + 'hexoid': '06 03 55 06 15', + 'name': 'groupOfUniqueNames', + 'oid': (2, 5, 6, 17)}, + (2, 5, 6, 21): {'comment': 'X.520 objectClass (2 5 6)', + 'description': 'pkiUser (2 5 6 21)', + 'hexoid': '06 03 55 06 16', + 'name': 'pkiUser', + 'oid': (2, 5, 6, 21)}, + (2, 5, 8, 1): {'comment': 'X.509 id-ce (2 5 29). Obsolete, use keyUsage/extKeyUsage instead', + 'description': 'X.500-Alg-Encryption (2 5 8 1)', + 'hexoid': '06 03 55 1D 02', + 'name': 'X.500-Alg-Encryption', + 'oid': (2, 5, 8, 1)}, + (2, 5, 29, 2): {'comment': 'X.509 id-ce (2 5 29). Obsolete, use keyUsage/extKeyUsage instead', + 'description': 'keyAttributes (2 5 29 2)', + 'hexoid': '06 03 55 1D 04', + 'name': 'keyAttributes', + 'oid': (2, 5, 29, 2)}, + (2, 5, 29, 4): {'comment': 'X.509 id-ce (2 5 29). Deprecated, use (2 5 29 33) instead', + 'description': 'keyUsageRestriction (2 5 29 4)', + 'hexoid': '06 03 55 1D 05', + 'name': 'keyUsageRestriction', + 'oid': (2, 5, 29, 4)}, + (2, 5, 29, 5): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'policyMapping (2 5 29 5)', + 'hexoid': '06 03 55 1D 09', + 'name': 'policyMapping', + 'oid': (2, 5, 29, 5)}, + (2, 5, 29, 9): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'subjectDirectoryAttributes (2 5 29 9)', + 'hexoid': '06 03 55 1D 0E', + 'name': 'subjectDirectoryAttributes', + 'oid': (2, 5, 29, 9)}, + (2, 5, 29, 14): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'subjectKeyIdentifier (2 5 29 14)', + 'hexoid': '06 03 55 1D 0F', + 'name': 'subjectKeyIdentifier', + 'oid': (2, 5, 29, 14)}, + (2, 5, 29, 15): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'keyUsage (2 5 29 15)', + 'hexoid': '06 03 55 1D 10', + 'name': 'keyUsage', + 'oid': (2, 5, 29, 15)}, + (2, 5, 29, 16): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'privateKeyUsagePeriod (2 5 29 16)', + 'hexoid': '06 03 55 1D 11', + 'name': 'privateKeyUsagePeriod', + 'oid': (2, 5, 29, 16)}, + (2, 5, 29, 17): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'subjectAltName (2 5 29 17)', + 'hexoid': '06 03 55 1D 12', + 'name': 'subjectAltName', + 'oid': (2, 5, 29, 17)}, + (2, 5, 29, 18): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'issuerAltName (2 5 29 18)', + 'hexoid': '06 03 55 1D 13', + 'name': 'issuerAltName', + 'oid': (2, 5, 29, 18)}, + (2, 5, 29, 19): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'basicConstraints (2 5 29 19)', + 'hexoid': '06 03 55 1D 14', + 'name': 'basicConstraints', + 'oid': (2, 5, 29, 19)}, + (2, 5, 29, 20): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'cRLNumber (2 5 29 20)', + 'hexoid': '06 03 55 1D 15', + 'name': 'cRLNumber', + 'oid': (2, 5, 29, 20)}, + (2, 5, 29, 21): {'comment': 'X.509 id-ce (2 5 29). Deprecated, alternative OID uncertain', + 'description': 'cRLReason (2 5 29 21)', + 'hexoid': '06 03 55 1D 16', + 'name': 'cRLReason', + 'oid': (2, 5, 29, 21)}, + (2, 5, 29, 22): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'expirationDate (2 5 29 22)', + 'hexoid': '06 03 55 1D 17', + 'name': 'expirationDate', + 'oid': (2, 5, 29, 22)}, + (2, 5, 29, 23): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'instructionCode (2 5 29 23)', + 'hexoid': '06 03 55 1D 18', + 'name': 'instructionCode', + 'oid': (2, 5, 29, 23)}, + (2, 5, 29, 24): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'invalidityDate (2 5 29 24)', + 'hexoid': '06 03 55 1D 1B', + 'name': 'invalidityDate', + 'oid': (2, 5, 29, 24)}, + (2, 5, 29, 27): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'deltaCRLIndicator (2 5 29 27)', + 'hexoid': '06 03 55 1D 1C', + 'name': 'deltaCRLIndicator', + 'oid': (2, 5, 29, 27)}, + (2, 5, 29, 28): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'issuingDistributionPoint (2 5 29 28)', + 'hexoid': '06 03 55 1D 1D', + 'name': 'issuingDistributionPoint', + 'oid': (2, 5, 29, 28)}, + (2, 5, 29, 29): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'certificateIssuer (2 5 29 29)', + 'hexoid': '06 03 55 1D 1E', + 'name': 'certificateIssuer', + 'oid': (2, 5, 29, 29)}, + (2, 5, 29, 30): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'nameConstraints (2 5 29 30)', + 'hexoid': '06 03 55 1D 1F', + 'name': 'nameConstraints', + 'oid': (2, 5, 29, 30)}, + (2, 5, 29, 31): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'cRLDistributionPoints (2 5 29 31)', + 'hexoid': '06 03 55 1D 20', + 'name': 'cRLDistributionPoints', + 'oid': (2, 5, 29, 31)}, + (2, 5, 29, 32): {'comment': 'X.509 certificatePolicies (2 5 29 32)', + 'description': 'certificatePolicies (2 5 29 32)', + 'hexoid': '06 04 55 1D 20 00', + 'name': 'certificatePolicies', + 'oid': (2, 5, 29, 32)}, + (2, 5, 29, 32, 0): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'AnyPolicy policyIdentifier (2 5 29 32 0)', + 'hexoid': '06 03 55 1D 21', + 'name': 'AnyPolicy policyIdentifier', + 'oid': (2, 5, 29, 32, 0)}, + (2, 5, 29, 33): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'policyMappings (2 5 29 33)', + 'hexoid': '06 03 55 1D 23', + 'name': 'policyMappings', + 'oid': (2, 5, 29, 33)}, + (2, 5, 29, 35): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'authorityKeyIdentifier (2 5 29 35)', + 'hexoid': '06 03 55 1D 24', + 'name': 'authorityKeyIdentifier', + 'oid': (2, 5, 29, 35)}, + (2, 5, 29, 36): {'comment': 'X.509 id-ce (2 5 29)', + 'description': 'policyConstraints (2 5 29 36)', + 'hexoid': '06 03 55 1D 25', + 'name': 'policyConstraints', + 'oid': (2, 5, 29, 36)}, + (2, 5, 29, 37): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'extKeyUsage (2 5 29 37)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 01', + 'name': 'extKeyUsage', + 'oid': (2, 5, 29, 37)}, + (2, 16, 840, 1, 101, 2, 1, 1, 1): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicSignatureAlgorithm, this OID is better known as dsaWithSHA-1.', + 'description': 'sdnsSignatureAlgorithm (2 16 840 1 101 2 1 1 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 02', + 'name': 'sdnsSignatureAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 1)}, + (2, 16, 840, 1, 101, 2, 1, 1, 2): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaSignatureAlgorithm (2 16 840 1 101 2 1 1 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 03', + 'name': 'fortezzaSignatureAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 2)}, + (2, 16, 840, 1, 101, 2, 1, 1, 3): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicConfidentialityAlgorithm', + 'description': 'sdnsConfidentialityAlgorithm (2 16 840 1 101 2 1 1 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 04', + 'name': 'sdnsConfidentialityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 3)}, + (2, 16, 840, 1, 101, 2, 1, 1, 4): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaConfidentialityAlgorithm (2 16 840 1 101 2 1 1 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 05', + 'name': 'fortezzaConfidentialityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 4)}, + (2, 16, 840, 1, 101, 2, 1, 1, 5): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicIntegrityAlgorithm', + 'description': 'sdnsIntegrityAlgorithm (2 16 840 1 101 2 1 1 5)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 06', + 'name': 'sdnsIntegrityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 5)}, + (2, 16, 840, 1, 101, 2, 1, 1, 6): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaIntegrityAlgorithm (2 16 840 1 101 2 1 1 6)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 07', + 'name': 'fortezzaIntegrityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 6)}, + (2, 16, 840, 1, 101, 2, 1, 1, 7): {'comment': 'SDN.700 INFOSEC algorithms. Formerly know as mosaicTokenProtectionAlgorithm', + 'description': 'sdnsTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 7)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 08', + 'name': 'sdnsTokenProtectionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 7)}, + (2, 16, 840, 1, 101, 2, 1, 1, 8): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaTokenProtectionAlgorithm (2 16 840 1 101 2 1 1 8)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 09', + 'name': 'fortezzaTokenProtectionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 8)}, + (2, 16, 840, 1, 101, 2, 1, 1, 9): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyManagementAlgorithm', + 'description': 'sdnsKeyManagementAlgorithm (2 16 840 1 101 2 1 1 9)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0A', + 'name': 'sdnsKeyManagementAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 9)}, + (2, 16, 840, 1, 101, 2, 1, 1, 10): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaKeyManagementAlgorithm (2 16 840 1 101 2 1 1 10)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0B', + 'name': 'fortezzaKeyManagementAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 10)}, + (2, 16, 840, 1, 101, 2, 1, 1, 11): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandSigAlgorithm', + 'description': 'sdnsKMandSigAlgorithm (2 16 840 1 101 2 1 1 11)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0C', + 'name': 'sdnsKMandSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 11)}, + (2, 16, 840, 1, 101, 2, 1, 1, 12): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaKMandSigAlgorithm (2 16 840 1 101 2 1 1 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0D', + 'name': 'fortezzaKMandSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 12)}, + (2, 16, 840, 1, 101, 2, 1, 1, 13): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteASignatureAlgorithm (2 16 840 1 101 2 1 1 13)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0E', + 'name': 'suiteASignatureAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 13)}, + (2, 16, 840, 1, 101, 2, 1, 1, 14): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteAConfidentialityAlgorithm (2 16 840 1 101 2 1 1 14)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 0F', + 'name': 'suiteAConfidentialityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 14)}, + (2, 16, 840, 1, 101, 2, 1, 1, 15): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteAIntegrityAlgorithm (2 16 840 1 101 2 1 1 15)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 10', + 'name': 'suiteAIntegrityAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 15)}, + (2, 16, 840, 1, 101, 2, 1, 1, 16): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteATokenProtectionAlgorithm (2 16 840 1 101 2 1 1 16)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 11', + 'name': 'suiteATokenProtectionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 16)}, + (2, 16, 840, 1, 101, 2, 1, 1, 17): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'suiteAKeyManagementAlgorithm (2 16 840 1 101 2 1 1 17)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 12', + 'name': 'suiteAKeyManagementAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 17)}, + (2, 16, 840, 1, 101, 2, 1, 1, 18): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedSigAlgorithm', + 'description': 'suiteAKMandSigAlgorithm (2 16 840 1 101 2 1 1 18)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 13', + 'name': 'suiteAKMandSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 18)}, + (2, 16, 840, 1, 101, 2, 1, 1, 19): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandUpdSigAlgorithms', + 'description': 'fortezzaUpdatedSigAlgorithm (2 16 840 1 101 2 1 1 19)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 14', + 'name': 'fortezzaUpdatedSigAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 19)}, + (2, 16, 840, 1, 101, 2, 1, 1, 20): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedIntegAlgorithm', + 'description': 'fortezzaKMandUpdSigAlgorithms (2 16 840 1 101 2 1 1 20)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 15', + 'name': 'fortezzaKMandUpdSigAlgorithms', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 20)}, + (2, 16, 840, 1, 101, 2, 1, 1, 21): {'comment': 'SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyEncryptionAlgorithm', + 'description': 'fortezzaUpdatedIntegAlgorithm (2 16 840 1 101 2 1 1 21)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 16', + 'name': 'fortezzaUpdatedIntegAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 21)}, + (2, 16, 840, 1, 101, 2, 1, 1, 22): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'keyExchangeAlgorithm (2 16 840 1 101 2 1 1 22)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 17', + 'name': 'keyExchangeAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 22)}, + (2, 16, 840, 1, 101, 2, 1, 1, 23): {'comment': 'SDN.700 INFOSEC algorithms', + 'description': 'fortezzaWrap80Algorithm (2 16 840 1 101 2 1 1 23)', + 'hexoid': '06 09 60 86 48 01 65 02 01 01 18', + 'name': 'fortezzaWrap80Algorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 23)}, + (2, 16, 840, 1, 101, 2, 1, 1, 24): {'comment': 'SDN.700 INFOSEC format', + 'description': 'kEAKeyEncryptionAlgorithm (2 16 840 1 101 2 1 1 24)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 01', + 'name': 'kEAKeyEncryptionAlgorithm', + 'oid': (2, 16, 840, 1, 101, 2, 1, 1, 24)}, + (2, 16, 840, 1, 101, 2, 1, 2, 1): {'comment': 'SDN.700 INFOSEC format', + 'description': 'rfc822MessageFormat (2 16 840 1 101 2 1 2 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 02', + 'name': 'rfc822MessageFormat', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 1)}, + (2, 16, 840, 1, 101, 2, 1, 2, 2): {'comment': 'SDN.700 INFOSEC format', + 'description': 'emptyContent (2 16 840 1 101 2 1 2 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 03', + 'name': 'emptyContent', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 2)}, + (2, 16, 840, 1, 101, 2, 1, 2, 3): {'comment': 'SDN.700 INFOSEC format', + 'description': 'cspContentType (2 16 840 1 101 2 1 2 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 2A', + 'name': 'cspContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 3)}, + (2, 16, 840, 1, 101, 2, 1, 2, 42): {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspRev3ContentType (2 16 840 1 101 2 1 2 42)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 30', + 'name': 'mspRev3ContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 42)}, + (2, 16, 840, 1, 101, 2, 1, 2, 48): {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspContentType (2 16 840 1 101 2 1 2 48)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 31', + 'name': 'mspContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 48)}, + (2, 16, 840, 1, 101, 2, 1, 2, 49): {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspRekeyAgentProtocol (2 16 840 1 101 2 1 2 49)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 32', + 'name': 'mspRekeyAgentProtocol', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 49)}, + (2, 16, 840, 1, 101, 2, 1, 2, 50): {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspMMP (2 16 840 1 101 2 1 2 50)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 42', + 'name': 'mspMMP', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 50)}, + (2, 16, 840, 1, 101, 2, 1, 2, 66): {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspRev3-1ContentType (2 16 840 1 101 2 1 2 66)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 48', + 'name': 'mspRev3-1ContentType', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 66)}, + (2, 16, 840, 1, 101, 2, 1, 2, 72): {'comment': 'SDN.700 INFOSEC format', + 'description': 'forwardedMSPMessageBodyPart (2 16 840 1 101 2 1 2 72)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 49', + 'name': 'forwardedMSPMessageBodyPart', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 72)}, + (2, 16, 840, 1, 101, 2, 1, 2, 73): {'comment': 'SDN.700 INFOSEC format', + 'description': 'mspForwardedMessageParameters (2 16 840 1 101 2 1 2 73)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 50', + 'name': 'mspForwardedMessageParameters', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 73)}, + (2, 16, 840, 1, 101, 2, 1, 2, 74): {'comment': 'SDN.700 INFOSEC format', + 'description': 'forwardedCSPMsgBodyPart (2 16 840 1 101 2 1 2 74)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 51', + 'name': 'forwardedCSPMsgBodyPart', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 74)}, + (2, 16, 840, 1, 101, 2, 1, 2, 75): {'comment': 'SDN.700 INFOSEC format', + 'description': 'cspForwardedMessageParameters (2 16 840 1 101 2 1 2 75)', + 'hexoid': '06 09 60 86 48 01 65 02 01 02 52', + 'name': 'cspForwardedMessageParameters', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 75)}, + (2, 16, 840, 1, 101, 2, 1, 2, 76): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'mspMMP2 (2 16 840 1 101 2 1 2 76)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 01', + 'name': 'mspMMP2', + 'oid': (2, 16, 840, 1, 101, 2, 1, 2, 76)}, + (2, 16, 840, 1, 101, 2, 1, 3, 1): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'sdnsSecurityPolicy (2 16 840 1 101 2 1 3 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 02', + 'name': 'sdnsSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 1)}, + (2, 16, 840, 1, 101, 2, 1, 3, 2): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'sdnsPRBAC (2 16 840 1 101 2 1 3 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 03', + 'name': 'sdnsPRBAC', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 2)}, + (2, 16, 840, 1, 101, 2, 1, 3, 3): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'mosaicPRBAC (2 16 840 1 101 2 1 3 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0A', + 'name': 'mosaicPRBAC', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 3)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siSecurityPolicy (2 16 840 1 101 2 1 3 10)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 00', + 'name': 'siSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 10)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 0): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siNASP (2 16 840 1 101 2 1 3 10 0)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 01', + 'name': 'siNASP', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 1): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siELCO (2 16 840 1 101 2 1 3 10 1)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 02', + 'name': 'siELCO', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 1)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 2): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siTK (2 16 840 1 101 2 1 3 10 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 03', + 'name': 'siTK', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 2)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 3): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siDSAP (2 16 840 1 101 2 1 3 10 3)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 04', + 'name': 'siDSAP', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 3)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 4): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siSSSS (2 16 840 1 101 2 1 3 10 4)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 05', + 'name': 'siSSSS', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 4)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 5): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siDNASP (2 16 840 1 101 2 1 3 10 5)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 06', + 'name': 'siDNASP', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 5)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 6): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siBYEMAN (2 16 840 1 101 2 1 3 10 6)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 07', + 'name': 'siBYEMAN', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 6)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 7): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-US (2 16 840 1 101 2 1 3 10 7)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 08', + 'name': 'siREL-US', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 7)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 8): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-AUS (2 16 840 1 101 2 1 3 10 8)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 09', + 'name': 'siREL-AUS', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 8)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 9): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-CAN (2 16 840 1 101 2 1 3 10 9)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 0A', + 'name': 'siREL-CAN', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 9)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 10): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL_UK (2 16 840 1 101 2 1 3 10 10)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 0B', + 'name': 'siREL_UK', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 10)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 11): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'siREL-NZ (2 16 840 1 101 2 1 3 10 11)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0A 0C', + 'name': 'siREL-NZ', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 11)}, + (2, 16, 840, 1, 101, 2, 1, 3, 10, 12): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'siGeneric (2 16 840 1 101 2 1 3 10 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0B', + 'name': 'siGeneric', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 10, + 12)}, + (2, 16, 840, 1, 101, 2, 1, 3, 11): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'genser (2 16 840 1 101 2 1 3 11)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 00', + 'name': 'genser', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 11)}, + (2, 16, 840, 1, 101, 2, 1, 3, 11, 0): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'genserNations (2 16 840 1 101 2 1 3 11 0)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 01', + 'name': 'genserNations', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 11, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 3, 11, 1): {'comment': 'SDN.700 INFOSEC policy (obsolete)', + 'description': 'genserComsec (2 16 840 1 101 2 1 3 11 1)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 02', + 'name': 'genserComsec', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 11, + 1)}, + (2, 16, 840, 1, 101, 2, 1, 3, 11, 2): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'genserAcquisition (2 16 840 1 101 2 1 3 11 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0B 03', + 'name': 'genserAcquisition', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 11, + 2)}, + (2, 16, 840, 1, 101, 2, 1, 3, 11, 3): {'comment': 'SDN.700 INFOSEC GENSER policy', + 'description': 'genserSecurityCategories (2 16 840 1 101 2 1 3 11 3)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0B 03 00', + 'name': 'genserSecurityCategories', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 11, + 3)}, + (2, 16, 840, 1, 101, 2, 1, 3, 11, 3, 0): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'genserTagSetName (2 16 840 1 101 2 1 3 11 3 0)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0C', + 'name': 'genserTagSetName', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 11, + 3, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 3, 12): {'comment': 'SDN.700 INFOSEC policy', + 'description': 'defaultSecurityPolicy (2 16 840 1 101 2 1 3 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 03 0D', + 'name': 'defaultSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 12)}, + (2, 16, 840, 1, 101, 2, 1, 3, 13): {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoMarkings (2 16 840 1 101 2 1 3 13)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 03 0D 00', + 'name': 'capcoMarkings', + 'oid': (2, 16, 840, 1, 101, 2, 1, 3, 13)}, + (2, 16, 840, 1, 101, 2, 1, 3, 13, 0): {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoSecurityCategories (2 16 840 1 101 2 1 3 13 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 01', + 'name': 'capcoSecurityCategories', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 13, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 1): {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoTagSetName1 (2 16 840 1 101 2 1 3 13 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 02', + 'name': 'capcoTagSetName1', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 13, + 0, + 1)}, + (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 2): {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoTagSetName2 (2 16 840 1 101 2 1 3 13 0 2)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 03', + 'name': 'capcoTagSetName2', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 13, + 0, + 2)}, + (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 3): {'comment': 'SDN.700 INFOSEC policy CAPCO markings', + 'description': 'capcoTagSetName3 (2 16 840 1 101 2 1 3 13 0 3)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 03 0D 00 04', + 'name': 'capcoTagSetName3', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 13, + 0, + 3)}, + (2, 16, 840, 1, 101, 2, 1, 3, 13, 0, 4): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'capcoTagSetName4 (2 16 840 1 101 2 1 3 13 0 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 01', + 'name': 'capcoTagSetName4', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 3, + 13, + 0, + 4)}, + (2, 16, 840, 1, 101, 2, 1, 5, 1): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsKeyManagementCertificate (2 16 840 1 101 2 1 5 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 02', + 'name': 'sdnsKeyManagementCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 1)}, + (2, 16, 840, 1, 101, 2, 1, 5, 2): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsUserSignatureCertificate (2 16 840 1 101 2 1 5 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 03', + 'name': 'sdnsUserSignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 2)}, + (2, 16, 840, 1, 101, 2, 1, 5, 3): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsKMandSigCertificate (2 16 840 1 101 2 1 5 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 04', + 'name': 'sdnsKMandSigCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 3)}, + (2, 16, 840, 1, 101, 2, 1, 5, 4): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaKeyManagementCertificate (2 16 840 1 101 2 1 5 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 05', + 'name': 'fortezzaKeyManagementCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 4)}, + (2, 16, 840, 1, 101, 2, 1, 5, 5): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaKMandSigCertificate (2 16 840 1 101 2 1 5 5)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 06', + 'name': 'fortezzaKMandSigCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 5)}, + (2, 16, 840, 1, 101, 2, 1, 5, 6): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaUserSignatureCertificate (2 16 840 1 101 2 1 5 6)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 07', + 'name': 'fortezzaUserSignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 6)}, + (2, 16, 840, 1, 101, 2, 1, 5, 7): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'fortezzaCASignatureCertificate (2 16 840 1 101 2 1 5 7)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 08', + 'name': 'fortezzaCASignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 7)}, + (2, 16, 840, 1, 101, 2, 1, 5, 8): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsCASignatureCertificate (2 16 840 1 101 2 1 5 8)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0A', + 'name': 'sdnsCASignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 8)}, + (2, 16, 840, 1, 101, 2, 1, 5, 10): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'auxiliaryVector (2 16 840 1 101 2 1 5 10)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0B', + 'name': 'auxiliaryVector', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 10)}, + (2, 16, 840, 1, 101, 2, 1, 5, 11): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mlReceiptPolicy (2 16 840 1 101 2 1 5 11)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0C', + 'name': 'mlReceiptPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 11)}, + (2, 16, 840, 1, 101, 2, 1, 5, 12): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mlMembership (2 16 840 1 101 2 1 5 12)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0D', + 'name': 'mlMembership', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 12)}, + (2, 16, 840, 1, 101, 2, 1, 5, 13): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mlAdministrators (2 16 840 1 101 2 1 5 13)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 0E', + 'name': 'mlAdministrators', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 13)}, + (2, 16, 840, 1, 101, 2, 1, 5, 14): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'alid (2 16 840 1 101 2 1 5 14)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 14', + 'name': 'alid', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 14)}, + (2, 16, 840, 1, 101, 2, 1, 5, 20): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'janUKMs (2 16 840 1 101 2 1 5 20)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 15', + 'name': 'janUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 20)}, + (2, 16, 840, 1, 101, 2, 1, 5, 21): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'febUKMs (2 16 840 1 101 2 1 5 21)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 16', + 'name': 'febUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 21)}, + (2, 16, 840, 1, 101, 2, 1, 5, 22): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'marUKMs (2 16 840 1 101 2 1 5 22)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 17', + 'name': 'marUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 22)}, + (2, 16, 840, 1, 101, 2, 1, 5, 23): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'aprUKMs (2 16 840 1 101 2 1 5 23)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 18', + 'name': 'aprUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 23)}, + (2, 16, 840, 1, 101, 2, 1, 5, 24): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'mayUKMs (2 16 840 1 101 2 1 5 24)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 19', + 'name': 'mayUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 24)}, + (2, 16, 840, 1, 101, 2, 1, 5, 25): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'junUKMs (2 16 840 1 101 2 1 5 25)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1A', + 'name': 'junUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 25)}, + (2, 16, 840, 1, 101, 2, 1, 5, 26): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'julUKMs (2 16 840 1 101 2 1 5 26)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1B', + 'name': 'julUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 26)}, + (2, 16, 840, 1, 101, 2, 1, 5, 27): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'augUKMs (2 16 840 1 101 2 1 5 27)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1C', + 'name': 'augUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 27)}, + (2, 16, 840, 1, 101, 2, 1, 5, 28): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'sepUKMs (2 16 840 1 101 2 1 5 28)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1D', + 'name': 'sepUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 28)}, + (2, 16, 840, 1, 101, 2, 1, 5, 29): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'octUKMs (2 16 840 1 101 2 1 5 29)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1E', + 'name': 'octUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 29)}, + (2, 16, 840, 1, 101, 2, 1, 5, 30): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'novUKMs (2 16 840 1 101 2 1 5 30)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 1F', + 'name': 'novUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 30)}, + (2, 16, 840, 1, 101, 2, 1, 5, 31): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'decUKMs (2 16 840 1 101 2 1 5 31)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 28', + 'name': 'decUKMs', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 31)}, + (2, 16, 840, 1, 101, 2, 1, 5, 40): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'metaSDNSckl (2 16 840 1 101 2 1 5 40)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 29', + 'name': 'metaSDNSckl', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 40)}, + (2, 16, 840, 1, 101, 2, 1, 5, 41): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'sdnsCKL (2 16 840 1 101 2 1 5 41)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2A', + 'name': 'sdnsCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 41)}, + (2, 16, 840, 1, 101, 2, 1, 5, 42): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'metaSDNSsignatureCKL (2 16 840 1 101 2 1 5 42)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2B', + 'name': 'metaSDNSsignatureCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 42)}, + (2, 16, 840, 1, 101, 2, 1, 5, 43): {'comment': 'SDN.700 INFOSEC attributes (superseded)', + 'description': 'sdnsSignatureCKL (2 16 840 1 101 2 1 5 43)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2D', + 'name': 'sdnsSignatureCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 43)}, + (2, 16, 840, 1, 101, 2, 1, 5, 45): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'fortezzaCertificateRevocationList (2 16 840 1 101 2 1 5 45)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2E', + 'name': 'fortezzaCertificateRevocationList', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 45)}, + (2, 16, 840, 1, 101, 2, 1, 5, 46): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'fortezzaCKL (2 16 840 1 101 2 1 5 46)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 2F', + 'name': 'fortezzaCKL', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 46)}, + (2, 16, 840, 1, 101, 2, 1, 5, 47): {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'alExemptedAddressProcessor (2 16 840 1 101 2 1 5 47)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 30', + 'name': 'alExemptedAddressProcessor', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 47)}, + (2, 16, 840, 1, 101, 2, 1, 5, 48): {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'guard (2 16 840 1 101 2 1 5 48)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 31', + 'name': 'guard', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 48)}, + (2, 16, 840, 1, 101, 2, 1, 5, 49): {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'algorithmsSupported (2 16 840 1 101 2 1 5 49)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 32', + 'name': 'algorithmsSupported', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 49)}, + (2, 16, 840, 1, 101, 2, 1, 5, 50): {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'suiteAKeyManagementCertificate (2 16 840 1 101 2 1 5 50)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 33', + 'name': 'suiteAKeyManagementCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 50)}, + (2, 16, 840, 1, 101, 2, 1, 5, 51): {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'suiteAKMandSigCertificate (2 16 840 1 101 2 1 5 51)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 34', + 'name': 'suiteAKMandSigCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 51)}, + (2, 16, 840, 1, 101, 2, 1, 5, 52): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'suiteAUserSignatureCertificate (2 16 840 1 101 2 1 5 52)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 35', + 'name': 'suiteAUserSignatureCertificate', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 52)}, + (2, 16, 840, 1, 101, 2, 1, 5, 53): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'prbacInfo (2 16 840 1 101 2 1 5 53)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 36', + 'name': 'prbacInfo', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 53)}, + (2, 16, 840, 1, 101, 2, 1, 5, 54): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'prbacCAConstraints (2 16 840 1 101 2 1 5 54)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 37', + 'name': 'prbacCAConstraints', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 54)}, + (2, 16, 840, 1, 101, 2, 1, 5, 55): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'sigOrKMPrivileges (2 16 840 1 101 2 1 5 55)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 38', + 'name': 'sigOrKMPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 55)}, + (2, 16, 840, 1, 101, 2, 1, 5, 56): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'commPrivileges (2 16 840 1 101 2 1 5 56)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 39', + 'name': 'commPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 56)}, + (2, 16, 840, 1, 101, 2, 1, 5, 57): {'comment': 'SDN.700 INFOSEC attributes (obsolete)', + 'description': 'labeledAttribute (2 16 840 1 101 2 1 5 57)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 3A', + 'name': 'labeledAttribute', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 57)}, + (2, 16, 840, 1, 101, 2, 1, 5, 58): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'policyInformationFile (2 16 840 1 101 2 1 5 58)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 3B', + 'name': 'policyInformationFile', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 58)}, + (2, 16, 840, 1, 101, 2, 1, 5, 59): {'comment': 'SDN.700 INFOSEC attributes', + 'description': 'secPolicyInformationFile (2 16 840 1 101 2 1 5 59)', + 'hexoid': '06 09 60 86 48 01 65 02 01 05 3C', + 'name': 'secPolicyInformationFile', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 59)}, + (2, 16, 840, 1, 101, 2, 1, 5, 60): {'comment': 'SDN.700 INFOSEC extensions', + 'description': 'cAClearanceConstraint (2 16 840 1 101 2 1 5 60)', + 'hexoid': '06 09 60 86 48 01 65 02 01 07 01', + 'name': 'cAClearanceConstraint', + 'oid': (2, 16, 840, 1, 101, 2, 1, 5, 60)}, + (2, 16, 840, 1, 101, 2, 1, 7, 1): {'comment': 'SDN.700 INFOSEC extensions', + 'description': 'cspExtns (2 16 840 1 101 2 1 7 1)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 07 01 00', + 'name': 'cspExtns', + 'oid': (2, 16, 840, 1, 101, 2, 1, 7, 1)}, + (2, 16, 840, 1, 101, 2, 1, 7, 1, 0): {'comment': 'SDN.700 INFOSEC security category', + 'description': 'cspCsExtn (2 16 840 1 101 2 1 7 1 0)', + 'hexoid': '06 09 60 86 48 01 65 02 01 08 01', + 'name': 'cspCsExtn', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 7, + 1, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 8, 1): {'comment': 'SDN.700 INFOSEC security category', + 'description': 'mISSISecurityCategories (2 16 840 1 101 2 1 8 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 08 02', + 'name': 'mISSISecurityCategories', + 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 1)}, + (2, 16, 840, 1, 101, 2, 1, 8, 2): {'comment': 'SDN.700 INFOSEC privileges', + 'description': 'standardSecurityLabelPrivileges (2 16 840 1 101 2 1 8 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0A 01', + 'name': 'standardSecurityLabelPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 8, 2)}, + (2, 16, 840, 1, 101, 2, 1, 10, 1): {'comment': 'SDN.700 INFOSEC privileges', + 'description': 'sigPrivileges (2 16 840 1 101 2 1 10 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0A 02', + 'name': 'sigPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 1)}, + (2, 16, 840, 1, 101, 2, 1, 10, 2): {'comment': 'SDN.700 INFOSEC privileges', + 'description': 'kmPrivileges (2 16 840 1 101 2 1 10 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0A 03', + 'name': 'kmPrivileges', + 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 2)}, + (2, 16, 840, 1, 101, 2, 1, 10, 3): {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'namedTagSetPrivilege (2 16 840 1 101 2 1 10 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 01', + 'name': 'namedTagSetPrivilege', + 'oid': (2, 16, 840, 1, 101, 2, 1, 10, 3)}, + (2, 16, 840, 1, 101, 2, 1, 11, 1): {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'ukDemo (2 16 840 1 101 2 1 11 1)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 02', + 'name': 'ukDemo', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 1)}, + (2, 16, 840, 1, 101, 2, 1, 11, 2): {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usDODClass2 (2 16 840 1 101 2 1 11 2)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 03', + 'name': 'usDODClass2', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 2)}, + (2, 16, 840, 1, 101, 2, 1, 11, 3): {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usMediumPilot (2 16 840 1 101 2 1 11 3)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 04', + 'name': 'usMediumPilot', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 3)}, + (2, 16, 840, 1, 101, 2, 1, 11, 4): {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usDODClass4 (2 16 840 1 101 2 1 11 4)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 05', + 'name': 'usDODClass4', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 4)}, + (2, 16, 840, 1, 101, 2, 1, 11, 5): {'comment': 'SDN.700 INFOSEC certificate policy', + 'description': 'usDODClass3 (2 16 840 1 101 2 1 11 5)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0B 06', + 'name': 'usDODClass3', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 5)}, + (2, 16, 840, 1, 101, 2, 1, 11, 6): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'usDODClass5 (2 16 840 1 101 2 1 11 6)', + 'hexoid': '06 09 60 86 48 01 65 02 01 0C 00', + 'name': 'usDODClass5', + 'oid': (2, 16, 840, 1, 101, 2, 1, 11, 6)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'testSecurityPolicy (2 16 840 1 101 2 1 12 0)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 01', + 'name': 'testSecurityPolicy', + 'oid': (2, 16, 840, 1, 101, 2, 1, 12, 0)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 1): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1 (2 16 840 1 101 2 1 12 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00', + 'name': 'tsp1', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 1)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1SecurityCategories (2 16 840 1 101 2 1 12 0 1 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00 00', + 'name': 'tsp1SecurityCategories', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 1, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 0): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1TagSetZero (2 16 840 1 101 2 1 12 0 1 0 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00 01', + 'name': 'tsp1TagSetZero', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 1, + 0, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 1): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1TagSetOne (2 16 840 1 101 2 1 12 0 1 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 01 00 02', + 'name': 'tsp1TagSetOne', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 1, + 0, + 1)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 1, 0, 2): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp1TagSetTwo (2 16 840 1 101 2 1 12 0 1 0 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 02', + 'name': 'tsp1TagSetTwo', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 1, + 0, + 2)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 2): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2 (2 16 840 1 101 2 1 12 0 2)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00', + 'name': 'tsp2', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 2)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2SecurityCategories (2 16 840 1 101 2 1 12 0 2 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00 00', + 'name': 'tsp2SecurityCategories', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 2, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 0): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2TagSetZero (2 16 840 1 101 2 1 12 0 2 0 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00 01', + 'name': 'tsp2TagSetZero', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 2, + 0, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 1): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2TagSetOne (2 16 840 1 101 2 1 12 0 2 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 02 00 02', + 'name': 'tsp2TagSetOne', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 2, + 0, + 1)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 2, 0, 2): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'tsp2TagSetTwo (2 16 840 1 101 2 1 12 0 2 0 2)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 00 03', + 'name': 'tsp2TagSetTwo', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 2, + 0, + 2)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 3): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafka (2 16 840 1 101 2 1 12 0 3)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00', + 'name': 'kafka', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 3)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaSecurityCategories (2 16 840 1 101 2 1 12 0 3 0)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00 01', + 'name': 'kafkaSecurityCategories', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 3, + 0)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 1): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaTagSetName1 (2 16 840 1 101 2 1 12 0 3 0 1)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00 02', + 'name': 'kafkaTagSetName1', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 3, + 0, + 1)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 2): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaTagSetName2 (2 16 840 1 101 2 1 12 0 3 0 2)', + 'hexoid': '06 0B 60 86 48 01 65 02 01 0C 00 03 00 03', + 'name': 'kafkaTagSetName2', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 3, + 0, + 2)}, + (2, 16, 840, 1, 101, 2, 1, 12, 0, 3, 0, 3): {'comment': 'SDN.700 INFOSEC test objects', + 'description': 'kafkaTagSetName3 (2 16 840 1 101 2 1 12 0 3 0 3)', + 'hexoid': '06 0A 60 86 48 01 65 02 01 0C 01 01', + 'name': 'kafkaTagSetName3', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 0, + 3, + 0, + 3)}, + (2, 16, 840, 1, 101, 2, 1, 12, 1, 1): {'comment': 'CSOR GAK', + 'description': 'tcp1 (2 16 840 1 101 2 1 12 1 1)', + 'hexoid': '06 07 60 86 48 01 65 03 01', + 'name': 'tcp1', + 'oid': (2, + 16, + 840, + 1, + 101, + 2, + 1, + 12, + 1, + 1)}, + (2, 16, 840, 1, 101, 3, 1): {'comment': 'CSOR GAK policy', + 'description': 'slabel (2 16 840 1 101 3 1)', + 'hexoid': '06 08 60 86 48 01 65 03 02 01', + 'name': 'slabel', + 'oid': (2, 16, 840, 1, 101, 3, 1)}, + (2, 16, 840, 1, 101, 3, 2, 1): {'comment': 'Federal Bridge CA Policy', + 'description': 'GAK policyIdentifier (2 16 840 1 101 3 2 1)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 01', + 'name': 'GAK policyIdentifier', + 'oid': (2, 16, 840, 1, 101, 3, 2, 1)}, + (2, 16, 840, 1, 101, 3, 2, 1, 3, 1): {'comment': 'Federal Bridge CA Policy', + 'description': 'FBCA-Rudimentary policyIdentifier (2 16 840 1 101 3 2 1 3 1)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 02', + 'name': 'FBCA-Rudimentary policyIdentifier', + 'oid': (2, + 16, + 840, + 1, + 101, + 3, + 2, + 1, + 3, + 1)}, + (2, 16, 840, 1, 101, 3, 2, 1, 3, 2): {'comment': 'Federal Bridge CA Policy', + 'description': 'FBCA-Basic policyIdentifier (2 16 840 1 101 3 2 1 3 2)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 03', + 'name': 'FBCA-Basic policyIdentifier', + 'oid': (2, + 16, + 840, + 1, + 101, + 3, + 2, + 1, + 3, + 2)}, + (2, 16, 840, 1, 101, 3, 2, 1, 3, 3): {'comment': 'Federal Bridge CA Policy', + 'description': 'FBCA-Medium policyIdentifier (2 16 840 1 101 3 2 1 3 3)', + 'hexoid': '06 0A 60 86 48 01 65 03 02 01 03 04', + 'name': 'FBCA-Medium policyIdentifier', + 'oid': (2, + 16, + 840, + 1, + 101, + 3, + 2, + 1, + 3, + 3)}, + (2, 16, 840, 1, 101, 3, 2, 1, 3, 4): {'comment': 'CSOR GAK extended key usage', + 'description': 'FBCA-High policyIdentifier (2 16 840 1 101 3 2 1 3 4)', + 'hexoid': '06 08 60 86 48 01 65 03 02 02', + 'name': 'FBCA-High policyIdentifier', + 'oid': (2, + 16, + 840, + 1, + 101, + 3, + 2, + 1, + 3, + 4)}, + (2, 16, 840, 1, 101, 3, 2, 2): {'comment': 'CSOR GAK extended key usage', + 'description': 'GAK (2 16 840 1 101 3 2 2)', + 'hexoid': '06 09 60 86 48 01 65 03 02 02 01', + 'name': 'GAK', + 'oid': (2, 16, 840, 1, 101, 3, 2, 2)}, + (2, 16, 840, 1, 101, 3, 2, 2, 1): {'comment': 'CSOR GAK extensions', + 'description': 'kRAKey (2 16 840 1 101 3 2 2 1)', + 'hexoid': '06 08 60 86 48 01 65 03 02 03', + 'name': 'kRAKey', + 'oid': (2, 16, 840, 1, 101, 3, 2, 2, 1)}, + (2, 16, 840, 1, 101, 3, 2, 3): {'comment': 'CSOR GAK extensions', + 'description': 'extensions (2 16 840 1 101 3 2 3)', + 'hexoid': '06 09 60 86 48 01 65 03 02 03 01', + 'name': 'extensions', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3)}, + (2, 16, 840, 1, 101, 3, 2, 3, 1): {'comment': 'CSOR GAK extensions', + 'description': 'kRTechnique (2 16 840 1 101 3 2 3 1)', + 'hexoid': '06 09 60 86 48 01 65 03 02 03 02', + 'name': 'kRTechnique', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3, 1)}, + (2, 16, 840, 1, 101, 3, 2, 3, 2): {'comment': 'CSOR GAK extensions', + 'description': 'kRecoveryCapable (2 16 840 1 101 3 2 3 2)', + 'hexoid': '06 09 60 86 48 01 65 03 02 03 03', + 'name': 'kRecoveryCapable', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3, 2)}, + (2, 16, 840, 1, 101, 3, 2, 3, 3): {'comment': 'CSOR GAK', + 'description': 'kR (2 16 840 1 101 3 2 3 3)', + 'hexoid': '06 08 60 86 48 01 65 03 02 04', + 'name': 'kR', + 'oid': (2, 16, 840, 1, 101, 3, 2, 3, 3)}, + (2, 16, 840, 1, 101, 3, 2, 4): {'comment': 'CSOR GAK', + 'description': 'keyrecoveryschemes (2 16 840 1 101 3 2 4)', + 'hexoid': '06 08 60 86 48 01 65 03 02 05', + 'name': 'keyrecoveryschemes', + 'oid': (2, 16, 840, 1, 101, 3, 2, 4)}, + (2, 16, 840, 1, 101, 3, 2, 5): {'comment': 'CSOR GAK', + 'description': 'krapola (2 16 840 1 101 3 2 5)', + 'hexoid': '06 07 60 86 48 01 65 03 03', + 'name': 'krapola', + 'oid': (2, 16, 840, 1, 101, 3, 2, 5)}, + (2, 16, 840, 1, 101, 3, 3): {'comment': 'NIST Algorithm', + 'description': 'arpa (2 16 840 1 101 3 3)', + 'hexoid': '06 07 60 86 48 01 65 03 04', + 'name': 'arpa', + 'oid': (2, 16, 840, 1, 101, 3, 3)}, + (2, 16, 840, 1, 101, 3, 4): {'comment': 'NIST Algorithm', + 'description': 'nistAlgorithm (2 16 840 1 101 3 4)', + 'hexoid': '06 08 60 86 48 01 65 03 04 01', + 'name': 'nistAlgorithm', + 'oid': (2, 16, 840, 1, 101, 3, 4)}, + (2, 16, 840, 1, 101, 3, 4, 1): {'comment': 'NIST Algorithm', + 'description': 'aes (2 16 840 1 101 3 4 1)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 01', + 'name': 'aes', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1)}, + (2, 16, 840, 1, 101, 3, 4, 1, 1): {'comment': 'NIST Algorithm', + 'description': 'aes128-ECB (2 16 840 1 101 3 4 1 1)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 02', + 'name': 'aes128-ECB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 1)}, + (2, 16, 840, 1, 101, 3, 4, 1, 2): {'comment': 'NIST Algorithm', + 'description': 'aes128-CBC (2 16 840 1 101 3 4 1 2)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 03', + 'name': 'aes128-CBC', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 2)}, + (2, 16, 840, 1, 101, 3, 4, 1, 3): {'comment': 'NIST Algorithm', + 'description': 'aes128-OFB (2 16 840 1 101 3 4 1 3)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 04', + 'name': 'aes128-OFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 3)}, + (2, 16, 840, 1, 101, 3, 4, 1, 4): {'comment': 'NIST Algorithm', + 'description': 'aes128-CFB (2 16 840 1 101 3 4 1 4)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 15', + 'name': 'aes128-CFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 4)}, + (2, 16, 840, 1, 101, 3, 4, 1, 21): {'comment': 'NIST Algorithm', + 'description': 'aes192-ECB (2 16 840 1 101 3 4 1 21)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 16', + 'name': 'aes192-ECB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 21)}, + (2, 16, 840, 1, 101, 3, 4, 1, 22): {'comment': 'NIST Algorithm', + 'description': 'aes192-CBC (2 16 840 1 101 3 4 1 22)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 17', + 'name': 'aes192-CBC', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 22)}, + (2, 16, 840, 1, 101, 3, 4, 1, 23): {'comment': 'NIST Algorithm', + 'description': 'aes192-OFB (2 16 840 1 101 3 4 1 23)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 18', + 'name': 'aes192-OFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 23)}, + (2, 16, 840, 1, 101, 3, 4, 1, 24): {'comment': 'NIST Algorithm', + 'description': 'aes192-CFB (2 16 840 1 101 3 4 1 24)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 29', + 'name': 'aes192-CFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 24)}, + (2, 16, 840, 1, 101, 3, 4, 1, 41): {'comment': 'NIST Algorithm', + 'description': 'aes256-ECB (2 16 840 1 101 3 4 1 41)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 2A', + 'name': 'aes256-ECB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 41)}, + (2, 16, 840, 1, 101, 3, 4, 1, 42): {'comment': 'NIST Algorithm', + 'description': 'aes256-CBC (2 16 840 1 101 3 4 1 42)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 2B', + 'name': 'aes256-CBC', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 42)}, + (2, 16, 840, 1, 101, 3, 4, 1, 43): {'comment': 'NIST Algorithm', + 'description': 'aes256-OFB (2 16 840 1 101 3 4 1 43)', + 'hexoid': '06 09 60 86 48 01 65 03 04 01 2C', + 'name': 'aes256-OFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 43)}, + (2, 16, 840, 1, 101, 3, 4, 1, 44): {'comment': 'Novell', + 'description': 'aes256-CFB (2 16 840 1 101 3 4 1 44)', + 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 02 08', + 'name': 'aes256-CFB', + 'oid': (2, 16, 840, 1, 101, 3, 4, 1, 44)}, + (2, 16, 840, 1, 113719, 1, 2, 8): {'comment': 'Novell encryption algorithm', + 'description': 'novellAlgorithm (2 16 840 1 113719 1 2 8)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 16', + 'name': 'novellAlgorithm', + 'oid': (2, 16, 840, 1, 113719, 1, 2, 8)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 22): {'comment': 'Novell encryption algorithm', + 'description': 'desCbcIV8 (2 16 840 1 113719 1 2 8 22)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 17', + 'name': 'desCbcIV8', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 22)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 23): {'comment': 'Novell encryption algorithm', + 'description': 'desCbcPadIV8 (2 16 840 1 113719 1 2 8 23)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 18', + 'name': 'desCbcPadIV8', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 23)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 24): {'comment': 'Novell encryption algorithm', + 'description': 'desEDE2CbcIV8 (2 16 840 1 113719 1 2 8 24)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 19', + 'name': 'desEDE2CbcIV8', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 24)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 25): {'comment': 'Novell encryption algorithm', + 'description': 'desEDE2CbcPadIV8 (2 16 840 1 113719 1 2 8 25)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1A', + 'name': 'desEDE2CbcPadIV8', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 25)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 26): {'comment': 'Novell encryption algorithm', + 'description': 'desEDE3CbcIV8 (2 16 840 1 113719 1 2 8 26)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1B', + 'name': 'desEDE3CbcIV8', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 26)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 27): {'comment': 'Novell encryption algorithm', + 'description': 'desEDE3CbcPadIV8 (2 16 840 1 113719 1 2 8 27)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1C', + 'name': 'desEDE3CbcPadIV8', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 27)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 28): {'comment': 'Novell signature algorithm', + 'description': 'rc5CbcPad (2 16 840 1 113719 1 2 8 28)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1D', + 'name': 'rc5CbcPad', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 28)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 29): {'comment': 'Novell signature algorithm', + 'description': 'md2WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 29)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1E', + 'name': 'md2WithRSAEncryptionBSafe1', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 29)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 30): {'comment': 'Novell signature algorithm', + 'description': 'md5WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 30)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 1F', + 'name': 'md5WithRSAEncryptionBSafe1', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 30)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 31): {'comment': 'Novell digest algorithm', + 'description': 'sha1WithRSAEncryptionBSafe1 (2 16 840 1 113719 1 2 8 31)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 20', + 'name': 'sha1WithRSAEncryptionBSafe1', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 31)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 32): {'comment': 'Novell digest algorithm', + 'description': 'LMDigest (2 16 840 1 113719 1 2 8 32)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 28', + 'name': 'LMDigest', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 32)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 40): {'comment': 'Novell digest algorithm', + 'description': 'MD2 (2 16 840 1 113719 1 2 8 40)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 32', + 'name': 'MD2', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 40)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 50): {'comment': 'Novell signature algorithm', + 'description': 'MD5 (2 16 840 1 113719 1 2 8 50)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 33', + 'name': 'MD5', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 50)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 51): {'comment': 'Novell signature algorithm', + 'description': 'IKEhmacWithSHA1-RSA (2 16 840 1 113719 1 2 8 51)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 34', + 'name': 'IKEhmacWithSHA1-RSA', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 51)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 52): {'comment': 'Novell encryption algorithm', + 'description': 'IKEhmacWithMD5-RSA (2 16 840 1 113719 1 2 8 52)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 45', + 'name': 'IKEhmacWithMD5-RSA', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 52)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 69): {'comment': 'Novell digest algorithm', + 'description': 'rc2CbcPad (2 16 840 1 113719 1 2 8 69)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 52', + 'name': 'rc2CbcPad', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 69)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 82): {'comment': 'Novell encryption algorithm', + 'description': 'SHA-1 (2 16 840 1 113719 1 2 8 82)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5C', + 'name': 'SHA-1', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 82)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 92): {'comment': 'Novell digest algorithm', + 'description': 'rc2BSafe1Cbc (2 16 840 1 113719 1 2 8 92)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 5F', + 'name': 'rc2BSafe1Cbc', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 92)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 95): {'comment': 'Novell keyed hash', + 'description': 'MD4 (2 16 840 1 113719 1 2 8 95)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 81 02', + 'name': 'MD4', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 95)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 130): {'comment': 'Novell encryption algorithm', + 'description': 'MD4Packet (2 16 840 1 113719 1 2 8 130)', + 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 03', + 'name': 'MD4Packet', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 130)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 131): {'comment': 'Novell encryption algorithm', + 'description': 'rsaEncryptionBsafe1 (2 16 840 1 113719 1 2 8 131)', + 'hexoid': '06 0C 60 86 48 01 86 F8 37 01 02 08 81 04', + 'name': 'rsaEncryptionBsafe1', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 131)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 132): {'comment': 'Novell encryption algorithm', + 'description': 'NWPassword (2 16 840 1 113719 1 2 8 132)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 02 08 81 05', + 'name': 'NWPassword', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 132)}, + (2, 16, 840, 1, 113719, 1, 2, 8, 133): {'comment': 'Novell', + 'description': 'novellObfuscate-1 (2 16 840 1 113719 1 2 8 133)', + 'hexoid': '06 09 60 86 48 01 86 F8 37 01 09', + 'name': 'novellObfuscate-1', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 2, + 8, + 133)}, + (2, 16, 840, 1, 113719, 1, 9): {'comment': 'Novell PKI', + 'description': 'pki (2 16 840 1 113719 1 9)', + 'hexoid': '06 0A 60 86 48 01 86 F8 37 01 09 04', + 'name': 'pki', + 'oid': (2, 16, 840, 1, 113719, 1, 9)}, + (2, 16, 840, 1, 113719, 1, 9, 4): {'comment': 'Novell PKI attribute type', + 'description': 'pkiAttributeType (2 16 840 1 113719 1 9 4)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 01', + 'name': 'pkiAttributeType', + 'oid': (2, 16, 840, 1, 113719, 1, 9, 4)}, + (2, 16, 840, 1, 113719, 1, 9, 4, 1): {'comment': 'Novell PKI attribute type', + 'description': 'securityAttributes (2 16 840 1 113719 1 9 4 1)', + 'hexoid': '06 0B 60 86 48 01 86 F8 37 01 09 04 02', + 'name': 'securityAttributes', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 9, + 4, + 1)}, + (2, 16, 840, 1, 113719, 1, 9, 4, 2): {'comment': 'Netscape', + 'description': 'relianceLimit (2 16 840 1 113719 1 9 4 2)', + 'hexoid': '06 08 60 86 48 01 86 F8 42 01', + 'name': 'relianceLimit', + 'oid': (2, + 16, + 840, + 1, + 113719, + 1, + 9, + 4, + 2)}, + (2, 16, 840, 1, 113730, 1): {'comment': 'Netscape certificate extension', + 'description': 'cert-extension (2 16 840 1 113730 1)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 01', + 'name': 'cert-extension', + 'oid': (2, 16, 840, 1, 113730, 1)}, + (2, 16, 840, 1, 113730, 1, 1): {'comment': 'Netscape certificate extension', + 'description': 'netscape-cert-type (2 16 840 1 113730 1 1)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 02', + 'name': 'netscape-cert-type', + 'oid': (2, 16, 840, 1, 113730, 1, 1)}, + (2, 16, 840, 1, 113730, 1, 2): {'comment': 'Netscape certificate extension', + 'description': 'netscape-base-url (2 16 840 1 113730 1 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 03', + 'name': 'netscape-base-url', + 'oid': (2, 16, 840, 1, 113730, 1, 2)}, + (2, 16, 840, 1, 113730, 1, 3): {'comment': 'Netscape certificate extension', + 'description': 'netscape-revocation-url (2 16 840 1 113730 1 3)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 04', + 'name': 'netscape-revocation-url', + 'oid': (2, 16, 840, 1, 113730, 1, 3)}, + (2, 16, 840, 1, 113730, 1, 4): {'comment': 'Netscape certificate extension', + 'description': 'netscape-ca-revocation-url (2 16 840 1 113730 1 4)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 07', + 'name': 'netscape-ca-revocation-url', + 'oid': (2, 16, 840, 1, 113730, 1, 4)}, + (2, 16, 840, 1, 113730, 1, 7): {'comment': 'Netscape certificate extension', + 'description': 'netscape-cert-renewal-url (2 16 840 1 113730 1 7)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 08', + 'name': 'netscape-cert-renewal-url', + 'oid': (2, 16, 840, 1, 113730, 1, 7)}, + (2, 16, 840, 1, 113730, 1, 8): {'comment': 'Netscape certificate extension', + 'description': 'netscape-ca-policy-url (2 16 840 1 113730 1 8)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 09', + 'name': 'netscape-ca-policy-url', + 'oid': (2, 16, 840, 1, 113730, 1, 8)}, + (2, 16, 840, 1, 113730, 1, 9): {'comment': 'Netscape certificate extension', + 'description': 'HomePage-url (2 16 840 1 113730 1 9)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0A', + 'name': 'HomePage-url', + 'oid': (2, 16, 840, 1, 113730, 1, 9)}, + (2, 16, 840, 1, 113730, 1, 10): {'comment': 'Netscape certificate extension', + 'description': 'EntityLogo (2 16 840 1 113730 1 10)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0B', + 'name': 'EntityLogo', + 'oid': (2, 16, 840, 1, 113730, 1, 10)}, + (2, 16, 840, 1, 113730, 1, 11): {'comment': 'Netscape certificate extension', + 'description': 'UserPicture (2 16 840 1 113730 1 11)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0C', + 'name': 'UserPicture', + 'oid': (2, 16, 840, 1, 113730, 1, 11)}, + (2, 16, 840, 1, 113730, 1, 12): {'comment': 'Netscape certificate extension', + 'description': 'netscape-ssl-server-name (2 16 840 1 113730 1 12)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 01 0D', + 'name': 'netscape-ssl-server-name', + 'oid': (2, 16, 840, 1, 113730, 1, 12)}, + (2, 16, 840, 1, 113730, 1, 13): {'comment': 'Netscape', + 'description': 'netscape-comment (2 16 840 1 113730 1 13)', + 'hexoid': '06 08 60 86 48 01 86 F8 42 02', + 'name': 'netscape-comment', + 'oid': (2, 16, 840, 1, 113730, 1, 13)}, + (2, 16, 840, 1, 113730, 2): {'comment': 'Netscape data type', + 'description': 'data-type (2 16 840 1 113730 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 01', + 'name': 'data-type', + 'oid': (2, 16, 840, 1, 113730, 2)}, + (2, 16, 840, 1, 113730, 2, 1): {'comment': 'Netscape data type', + 'description': 'dataGIF (2 16 840 1 113730 2 1)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 02', + 'name': 'dataGIF', + 'oid': (2, 16, 840, 1, 113730, 2, 1)}, + (2, 16, 840, 1, 113730, 2, 2): {'comment': 'Netscape data type', + 'description': 'dataJPEG (2 16 840 1 113730 2 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 03', + 'name': 'dataJPEG', + 'oid': (2, 16, 840, 1, 113730, 2, 2)}, + (2, 16, 840, 1, 113730, 2, 3): {'comment': 'Netscape data type', + 'description': 'dataURL (2 16 840 1 113730 2 3)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 04', + 'name': 'dataURL', + 'oid': (2, 16, 840, 1, 113730, 2, 3)}, + (2, 16, 840, 1, 113730, 2, 4): {'comment': 'Netscape data type', + 'description': 'dataHTML (2 16 840 1 113730 2 4)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 05', + 'name': 'dataHTML', + 'oid': (2, 16, 840, 1, 113730, 2, 4)}, + (2, 16, 840, 1, 113730, 2, 5): {'comment': 'Netscape certificate extension', + 'description': 'certSequence (2 16 840 1 113730 2 5)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 02 06', + 'name': 'certSequence', + 'oid': (2, 16, 840, 1, 113730, 2, 5)}, + (2, 16, 840, 1, 113730, 2, 6): {'comment': 'Netscape', + 'description': 'certURL (2 16 840 1 113730 2 6)', + 'hexoid': '06 08 60 86 48 01 86 F8 42 03', + 'name': 'certURL', + 'oid': (2, 16, 840, 1, 113730, 2, 6)}, + (2, 16, 840, 1, 113730, 3): {'comment': 'Netscape directory', + 'description': 'directory (2 16 840 1 113730 3)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 03 01', + 'name': 'directory', + 'oid': (2, 16, 840, 1, 113730, 3)}, + (2, 16, 840, 1, 113730, 3, 1): {'comment': 'Netscape LDAP definitions', + 'description': 'ldapDefinitions (2 16 840 1 113730 3 1)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 01', + 'name': 'ldapDefinitions', + 'oid': (2, 16, 840, 1, 113730, 3, 1)}, + (2, 16, 840, 1, 113730, 3, 1, 1): {'comment': 'Netscape LDAP definitions', + 'description': 'carLicense (2 16 840 1 113730 3 1 1)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 02', + 'name': 'carLicense', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 1)}, + (2, 16, 840, 1, 113730, 3, 1, 2): {'comment': 'Netscape LDAP definitions', + 'description': 'departmentNumber (2 16 840 1 113730 3 1 2)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 03', + 'name': 'departmentNumber', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 2)}, + (2, 16, 840, 1, 113730, 3, 1, 3): {'comment': 'Netscape LDAP definitions', + 'description': 'employeeNumber (2 16 840 1 113730 3 1 3)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 01 04', + 'name': 'employeeNumber', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 3)}, + (2, 16, 840, 1, 113730, 3, 1, 4): {'comment': 'Netscape LDAP definitions', + 'description': 'employeeType (2 16 840 1 113730 3 1 4)', + 'hexoid': '06 0A 60 86 48 01 86 F8 42 03 02 02', + 'name': 'employeeType', + 'oid': (2, 16, 840, 1, 113730, 3, 1, 4)}, + (2, 16, 840, 1, 113730, 3, 2, 2): {'comment': 'Netscape', + 'description': 'inetOrgPerson (2 16 840 1 113730 3 2 2)', + 'hexoid': '06 09 60 86 48 01 86 F8 42 04 01', + 'name': 'inetOrgPerson', + 'oid': (2, 16, 840, 1, 113730, 3, 2, 2)}, + (2, 16, 840, 1, 113730, 4, 1): {'comment': 'Verisign', + 'description': 'serverGatedCrypto (2 16 840 1 113730 4 1)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 03', + 'name': 'serverGatedCrypto', + 'oid': (2, 16, 840, 1, 113730, 4, 1)}, + (2, 16, 840, 1, 113733, 1, 6, 3): {'comment': 'Verisign', + 'description': 'verisignCZAG (2 16 840 1 113733 1 6 3)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 06', + 'name': 'verisignCZAG', + 'oid': (2, 16, 840, 1, 113733, 1, 6, 3)}, + (2, 16, 840, 1, 113733, 1, 6, 6): {'comment': 'Verisign', + 'description': 'verisignInBox (2 16 840 1 113733 1 6 6)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 06 0D', + 'name': 'verisignInBox', + 'oid': (2, 16, 840, 1, 113733, 1, 6, 6)}, + (2, 16, 840, 1, 113733, 1, 6, 13): {'comment': 'Verisign', + 'description': 'Unknown Verisign VPN extension (2 16 840 1 113733 1 6 13)', + 'hexoid': '06 0B 60 86 48 01 86 F8 45 01 07 01 01', + 'name': 'Unknown Verisign VPN extension', + 'oid': (2, 16, 840, 1, 113733, 1, 6, 13)}, + (2, 16, 840, 1, 113733, 1, 7, 1, 1): {'comment': 'Verisign (obsolete)', + 'description': 'Verisign policyIdentifier (2 16 840 1 113733 1 7 1 1)', + 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 01', + 'name': 'Verisign policyIdentifier', + 'oid': (2, + 16, + 840, + 1, + 113733, + 1, + 7, + 1, + 1)}, + (2, 16, 840, 1, 113733, 1, 7, 1, 1, 1): {'comment': 'Verisign (obsolete)', + 'description': 'verisignCPSv1notice (2 16 840 1 113733 1 7 1 1 1)', + 'hexoid': '06 0C 60 86 48 01 86 F8 45 01 07 01 01 02', + 'name': 'verisignCPSv1notice', + 'oid': (2, + 16, + 840, + 1, + 113733, + 1, + 7, + 1, + 1, + 1)}, + (2, 16, 840, 1, 113733, 1, 7, 1, 1, 2): {'comment': 'Verisign', + 'description': 'verisignCPSv1nsi (2 16 840 1 113733 1 7 1 1 2)', + 'hexoid': '06 0A 60 86 48 01 86 F8 45 01 08 01', + 'name': 'verisignCPSv1nsi', + 'oid': (2, + 16, + 840, + 1, + 113733, + 1, + 7, + 1, + 1, + 2)}, + (2, 16, 840, 1, 113733, 1, 8, 1): {'comment': 'SET contentType', + 'description': 'Verisign SGC CA? (2 16 840 1 113733 1 8 1)', + 'hexoid': '06 04 67 2A 00 00', + 'name': 'Verisign SGC CA?', + 'oid': (2, 16, 840, 1, 113733, 1, 8, 1)}, + (2, 23, 42, 0, 0): {'comment': 'SET contentType', + 'description': 'PANData (2 23 42 0 0)', + 'hexoid': '06 04 67 2A 00 01', + 'name': 'PANData', + 'oid': (2, 23, 42, 0, 0)}, + (2, 23, 42, 0, 1): {'comment': 'SET contentType', + 'description': 'PANToken (2 23 42 0 1)', + 'hexoid': '06 04 67 2A 00 02', + 'name': 'PANToken', + 'oid': (2, 23, 42, 0, 1)}, + (2, 23, 42, 0, 2): {'comment': 'SET', + 'description': 'PANOnly (2 23 42 0 2)', + 'hexoid': '06 03 67 2A 01', + 'name': 'PANOnly', + 'oid': (2, 23, 42, 0, 2)}, + (2, 23, 42, 1): {'comment': 'SET', + 'description': 'msgExt (2 23 42 1)', + 'hexoid': '06 03 67 2A 02', + 'name': 'msgExt', + 'oid': (2, 23, 42, 1)}, + (2, 23, 42, 2): {'comment': 'SET field', + 'description': 'field (2 23 42 2)', + 'hexoid': '06 04 67 2A 02 00', + 'name': 'field', + 'oid': (2, 23, 42, 2)}, + (2, 23, 42, 2, 0): {'comment': 'SET field', + 'description': 'fullName (2 23 42 2 0)', + 'hexoid': '06 04 67 2A 02 02', + 'name': 'fullName', + 'oid': (2, 23, 42, 2, 0)}, + (2, 23, 42, 2, 2): {'comment': 'SET field', + 'description': 'familyName (2 23 42 2 2)', + 'hexoid': '06 04 67 2A 02 03', + 'name': 'familyName', + 'oid': (2, 23, 42, 2, 2)}, + (2, 23, 42, 2, 3): {'comment': 'SET field', + 'description': 'birthFamilyName (2 23 42 2 3)', + 'hexoid': '06 04 67 2A 02 04', + 'name': 'birthFamilyName', + 'oid': (2, 23, 42, 2, 3)}, + (2, 23, 42, 2, 4): {'comment': 'SET field', + 'description': 'placeName (2 23 42 2 4)', + 'hexoid': '06 04 67 2A 02 05', + 'name': 'placeName', + 'oid': (2, 23, 42, 2, 4)}, + (2, 23, 42, 2, 5): {'comment': 'SET field', + 'description': 'identificationNumber (2 23 42 2 5)', + 'hexoid': '06 04 67 2A 02 06', + 'name': 'identificationNumber', + 'oid': (2, 23, 42, 2, 5)}, + (2, 23, 42, 2, 6): {'comment': 'SET field', + 'description': 'month (2 23 42 2 6)', + 'hexoid': '06 04 67 2A 02 07', + 'name': 'month', + 'oid': (2, 23, 42, 2, 6)}, + (2, 23, 42, 2, 7): {'comment': 'SET field', + 'description': 'date (2 23 42 2 7)', + 'hexoid': '06 04 67 2A 02 08', + 'name': 'date', + 'oid': (2, 23, 42, 2, 7)}, + (2, 23, 42, 2, 7, 11): {'comment': 'SET field', + 'description': 'accountNumber (2 23 42 2 7 11)', + 'hexoid': '06 04 67 2A 02 0C', + 'name': 'accountNumber', + 'oid': (2, 23, 42, 2, 7, 11)}, + (2, 23, 42, 2, 7, 12): {'comment': 'SET', + 'description': 'passPhrase (2 23 42 2 7 12)', + 'hexoid': '06 03 67 2A 03', + 'name': 'passPhrase', + 'oid': (2, 23, 42, 2, 7, 12)}, + (2, 23, 42, 2, 8): {'comment': 'SET field', + 'description': 'address (2 23 42 2 8)', + 'hexoid': '06 04 67 2A 02 09', + 'name': 'address', + 'oid': (2, 23, 42, 2, 8)}, + (2, 23, 42, 2, 9): {'comment': 'SET field', + 'description': 'telephone (2 23 42 2 9)', + 'hexoid': '06 04 67 2A 02 0A', + 'name': 'telephone', + 'oid': (2, 23, 42, 2, 9)}, + (2, 23, 42, 2, 10): {'comment': 'SET field', + 'description': 'amount (2 23 42 2 10)', + 'hexoid': '06 04 67 2A 02 0B', + 'name': 'amount', + 'oid': (2, 23, 42, 2, 10)}, + (2, 23, 42, 3): {'comment': 'SET attribute', + 'description': 'attribute (2 23 42 3)', + 'hexoid': '06 04 67 2A 03 00', + 'name': 'attribute', + 'oid': (2, 23, 42, 3)}, + (2, 23, 42, 3, 0): {'comment': 'SET cert attribute', + 'description': 'cert (2 23 42 3 0)', + 'hexoid': '06 05 67 2A 03 00 00', + 'name': 'cert', + 'oid': (2, 23, 42, 3, 0)}, + (2, 23, 42, 3, 0, 0): {'comment': 'SET cert attribute', + 'description': 'rootKeyThumb (2 23 42 3 0 0)', + 'hexoid': '06 05 67 2A 03 00 01', + 'name': 'rootKeyThumb', + 'oid': (2, 23, 42, 3, 0, 0)}, + (2, 23, 42, 3, 0, 1): {'comment': 'SET', + 'description': 'additionalPolicy (2 23 42 3 0 1)', + 'hexoid': '06 03 67 2A 04', + 'name': 'additionalPolicy', + 'oid': (2, 23, 42, 3, 0, 1)}, + (2, 23, 42, 4): {'comment': 'SET', + 'description': 'algorithm (2 23 42 4)', + 'hexoid': '06 03 67 2A 05', + 'name': 'algorithm', + 'oid': (2, 23, 42, 4)}, + (2, 23, 42, 5): {'comment': 'SET policy', + 'description': 'policy (2 23 42 5)', + 'hexoid': '06 04 67 2A 05 00', + 'name': 'policy', + 'oid': (2, 23, 42, 5)}, + (2, 23, 42, 5, 0): {'comment': 'SET', + 'description': 'root (2 23 42 5 0)', + 'hexoid': '06 03 67 2A 06', + 'name': 'root', + 'oid': (2, 23, 42, 5, 0)}, + (2, 23, 42, 6): {'comment': 'SET', + 'description': 'module (2 23 42 6)', + 'hexoid': '06 03 67 2A 07', + 'name': 'module', + 'oid': (2, 23, 42, 6)}, + (2, 23, 42, 7): {'comment': 'SET cert extension', + 'description': 'certExt (2 23 42 7)', + 'hexoid': '06 04 67 2A 07 00', + 'name': 'certExt', + 'oid': (2, 23, 42, 7)}, + (2, 23, 42, 7, 0): {'comment': 'SET cert extension', + 'description': 'hashedRootKey (2 23 42 7 0)', + 'hexoid': '06 04 67 2A 07 01', + 'name': 'hashedRootKey', + 'oid': (2, 23, 42, 7, 0)}, + (2, 23, 42, 7, 1): {'comment': 'SET cert extension', + 'description': 'certificateType (2 23 42 7 1)', + 'hexoid': '06 04 67 2A 07 02', + 'name': 'certificateType', + 'oid': (2, 23, 42, 7, 1)}, + (2, 23, 42, 7, 2): {'comment': 'SET cert extension', + 'description': 'merchantData (2 23 42 7 2)', + 'hexoid': '06 04 67 2A 07 03', + 'name': 'merchantData', + 'oid': (2, 23, 42, 7, 2)}, + (2, 23, 42, 7, 3): {'comment': 'SET cert extension', + 'description': 'cardCertRequired (2 23 42 7 3)', + 'hexoid': '06 04 67 2A 07 04', + 'name': 'cardCertRequired', + 'oid': (2, 23, 42, 7, 3)}, + (2, 23, 42, 7, 4): {'comment': 'SET cert extension', + 'description': 'tunneling (2 23 42 7 4)', + 'hexoid': '06 04 67 2A 07 05', + 'name': 'tunneling', + 'oid': (2, 23, 42, 7, 4)}, + (2, 23, 42, 7, 5): {'comment': 'SET cert extension', + 'description': 'setExtensions (2 23 42 7 5)', + 'hexoid': '06 04 67 2A 07 06', + 'name': 'setExtensions', + 'oid': (2, 23, 42, 7, 5)}, + (2, 23, 42, 7, 6): {'comment': 'SET', + 'description': 'setQualifier (2 23 42 7 6)', + 'hexoid': '06 03 67 2A 08', + 'name': 'setQualifier', + 'oid': (2, 23, 42, 7, 6)}, + (2, 23, 42, 8): {'comment': 'SET brand', + 'description': 'brand (2 23 42 8)', + 'hexoid': '06 04 67 2A 08 01', + 'name': 'brand', + 'oid': (2, 23, 42, 8)}, + (2, 23, 42, 8, 1): {'comment': 'SET brand', + 'description': 'IATA-ATA (2 23 42 8 1)', + 'hexoid': '06 04 67 2A 08 04', + 'name': 'IATA-ATA', + 'oid': (2, 23, 42, 8, 1)}, + (2, 23, 42, 8, 4): {'comment': 'SET brand', + 'description': 'VISA (2 23 42 8 4)', + 'hexoid': '06 04 67 2A 08 05', + 'name': 'VISA', + 'oid': (2, 23, 42, 8, 4)}, + (2, 23, 42, 8, 5): {'comment': 'SET brand', + 'description': 'MasterCard (2 23 42 8 5)', + 'hexoid': '06 04 67 2A 08 1E', + 'name': 'MasterCard', + 'oid': (2, 23, 42, 8, 5)}, + (2, 23, 42, 8, 30): {'comment': 'SET brand', + 'description': 'Diners (2 23 42 8 30)', + 'hexoid': '06 04 67 2A 08 22', + 'name': 'Diners', + 'oid': (2, 23, 42, 8, 30)}, + (2, 23, 42, 8, 34): {'comment': 'SET brand', + 'description': 'AmericanExpress (2 23 42 8 34)', + 'hexoid': '06 05 67 2A 08 AE 7B', + 'name': 'AmericanExpress', + 'oid': (2, 23, 42, 8, 34)}, + (2, 23, 42, 8, 6011): {'comment': 'SET', + 'description': 'Novus (2 23 42 8 6011)', + 'hexoid': '06 03 67 2A 09', + 'name': 'Novus', + 'oid': (2, 23, 42, 8, 6011)}, + (2, 23, 42, 9): {'comment': 'SET vendor', + 'description': 'vendor (2 23 42 9)', + 'hexoid': '06 04 67 2A 09 00', + 'name': 'vendor', + 'oid': (2, 23, 42, 9)}, + (2, 23, 42, 9, 0): {'comment': 'SET vendor', + 'description': 'GlobeSet (2 23 42 9 0)', + 'hexoid': '06 04 67 2A 09 01', + 'name': 'GlobeSet', + 'oid': (2, 23, 42, 9, 0)}, + (2, 23, 42, 9, 1): {'comment': 'SET vendor', + 'description': 'IBM (2 23 42 9 1)', + 'hexoid': '06 04 67 2A 09 02', + 'name': 'IBM', + 'oid': (2, 23, 42, 9, 1)}, + (2, 23, 42, 9, 2): {'comment': 'SET vendor', + 'description': 'CyberCash (2 23 42 9 2)', + 'hexoid': '06 04 67 2A 09 03', + 'name': 'CyberCash', + 'oid': (2, 23, 42, 9, 2)}, + (2, 23, 42, 9, 3): {'comment': 'SET vendor', + 'description': 'Terisa (2 23 42 9 3)', + 'hexoid': '06 04 67 2A 09 04', + 'name': 'Terisa', + 'oid': (2, 23, 42, 9, 3)}, + (2, 23, 42, 9, 4): {'comment': 'SET vendor', + 'description': 'RSADSI (2 23 42 9 4)', + 'hexoid': '06 04 67 2A 09 05', + 'name': 'RSADSI', + 'oid': (2, 23, 42, 9, 4)}, + (2, 23, 42, 9, 5): {'comment': 'SET vendor', + 'description': 'VeriFone (2 23 42 9 5)', + 'hexoid': '06 04 67 2A 09 06', + 'name': 'VeriFone', + 'oid': (2, 23, 42, 9, 5)}, + (2, 23, 42, 9, 6): {'comment': 'SET vendor', + 'description': 'TrinTech (2 23 42 9 6)', + 'hexoid': '06 04 67 2A 09 07', + 'name': 'TrinTech', + 'oid': (2, 23, 42, 9, 6)}, + (2, 23, 42, 9, 7): {'comment': 'SET vendor', + 'description': 'BankGate (2 23 42 9 7)', + 'hexoid': '06 04 67 2A 09 08', + 'name': 'BankGate', + 'oid': (2, 23, 42, 9, 7)}, + (2, 23, 42, 9, 8): {'comment': 'SET vendor', + 'description': 'GTE (2 23 42 9 8)', + 'hexoid': '06 04 67 2A 09 09', + 'name': 'GTE', + 'oid': (2, 23, 42, 9, 8)}, + (2, 23, 42, 9, 9): {'comment': 'SET vendor', + 'description': 'CompuSource (2 23 42 9 9)', + 'hexoid': '06 04 67 2A 09 0A', + 'name': 'CompuSource', + 'oid': (2, 23, 42, 9, 9)}, + (2, 23, 42, 9, 10): {'comment': 'SET vendor', + 'description': 'Griffin (2 23 42 9 10)', + 'hexoid': '06 04 67 2A 09 0B', + 'name': 'Griffin', + 'oid': (2, 23, 42, 9, 10)}, + (2, 23, 42, 9, 11): {'comment': 'SET vendor', + 'description': 'Certicom (2 23 42 9 11)', + 'hexoid': '06 04 67 2A 09 0C', + 'name': 'Certicom', + 'oid': (2, 23, 42, 9, 11)}, + (2, 23, 42, 9, 12): {'comment': 'SET vendor', + 'description': 'OSS (2 23 42 9 12)', + 'hexoid': '06 04 67 2A 09 0D', + 'name': 'OSS', + 'oid': (2, 23, 42, 9, 12)}, + (2, 23, 42, 9, 13): {'comment': 'SET vendor', + 'description': 'TenthMountain (2 23 42 9 13)', + 'hexoid': '06 04 67 2A 09 0E', + 'name': 'TenthMountain', + 'oid': (2, 23, 42, 9, 13)}, + (2, 23, 42, 9, 14): {'comment': 'SET vendor', + 'description': 'Antares (2 23 42 9 14)', + 'hexoid': '06 04 67 2A 09 0F', + 'name': 'Antares', + 'oid': (2, 23, 42, 9, 14)}, + (2, 23, 42, 9, 15): {'comment': 'SET vendor', + 'description': 'ECC (2 23 42 9 15)', + 'hexoid': '06 04 67 2A 09 10', + 'name': 'ECC', + 'oid': (2, 23, 42, 9, 15)}, + (2, 23, 42, 9, 16): {'comment': 'SET vendor', + 'description': 'Maithean (2 23 42 9 16)', + 'hexoid': '06 04 67 2A 09 11', + 'name': 'Maithean', + 'oid': (2, 23, 42, 9, 16)}, + (2, 23, 42, 9, 17): {'comment': 'SET vendor', + 'description': 'Netscape (2 23 42 9 17)', + 'hexoid': '06 04 67 2A 09 12', + 'name': 'Netscape', + 'oid': (2, 23, 42, 9, 17)}, + (2, 23, 42, 9, 18): {'comment': 'SET vendor', + 'description': 'Verisign (2 23 42 9 18)', + 'hexoid': '06 04 67 2A 09 13', + 'name': 'Verisign', + 'oid': (2, 23, 42, 9, 18)}, + (2, 23, 42, 9, 19): {'comment': 'SET vendor', + 'description': 'BlueMoney (2 23 42 9 19)', + 'hexoid': '06 04 67 2A 09 14', + 'name': 'BlueMoney', + 'oid': (2, 23, 42, 9, 19)}, + (2, 23, 42, 9, 20): {'comment': 'SET vendor', + 'description': 'Lacerte (2 23 42 9 20)', + 'hexoid': '06 04 67 2A 09 15', + 'name': 'Lacerte', + 'oid': (2, 23, 42, 9, 20)}, + (2, 23, 42, 9, 21): {'comment': 'SET vendor', + 'description': 'Fujitsu (2 23 42 9 21)', + 'hexoid': '06 04 67 2A 09 16', + 'name': 'Fujitsu', + 'oid': (2, 23, 42, 9, 21)}, + (2, 23, 42, 9, 22): {'comment': 'SET vendor', + 'description': 'eLab (2 23 42 9 22)', + 'hexoid': '06 04 67 2A 09 17', + 'name': 'eLab', + 'oid': (2, 23, 42, 9, 22)}, + (2, 23, 42, 9, 23): {'comment': 'SET vendor', + 'description': 'Entrust (2 23 42 9 23)', + 'hexoid': '06 04 67 2A 09 18', + 'name': 'Entrust', + 'oid': (2, 23, 42, 9, 23)}, + (2, 23, 42, 9, 24): {'comment': 'SET vendor', + 'description': 'VIAnet (2 23 42 9 24)', + 'hexoid': '06 04 67 2A 09 19', + 'name': 'VIAnet', + 'oid': (2, 23, 42, 9, 24)}, + (2, 23, 42, 9, 25): {'comment': 'SET vendor', + 'description': 'III (2 23 42 9 25)', + 'hexoid': '06 04 67 2A 09 1A', + 'name': 'III', + 'oid': (2, 23, 42, 9, 25)}, + (2, 23, 42, 9, 26): {'comment': 'SET vendor', + 'description': 'OpenMarket (2 23 42 9 26)', + 'hexoid': '06 04 67 2A 09 1B', + 'name': 'OpenMarket', + 'oid': (2, 23, 42, 9, 26)}, + (2, 23, 42, 9, 27): {'comment': 'SET vendor', + 'description': 'Lexem (2 23 42 9 27)', + 'hexoid': '06 04 67 2A 09 1C', + 'name': 'Lexem', + 'oid': (2, 23, 42, 9, 27)}, + (2, 23, 42, 9, 28): {'comment': 'SET vendor', + 'description': 'Intertrader (2 23 42 9 28)', + 'hexoid': '06 04 67 2A 09 1D', + 'name': 'Intertrader', + 'oid': (2, 23, 42, 9, 28)}, + (2, 23, 42, 9, 29): {'comment': 'SET vendor', + 'description': 'Persimmon (2 23 42 9 29)', + 'hexoid': '06 04 67 2A 09 1E', + 'name': 'Persimmon', + 'oid': (2, 23, 42, 9, 29)}, + (2, 23, 42, 9, 30): {'comment': 'SET vendor', + 'description': 'NABLE (2 23 42 9 30)', + 'hexoid': '06 04 67 2A 09 1F', + 'name': 'NABLE', + 'oid': (2, 23, 42, 9, 30)}, + (2, 23, 42, 9, 31): {'comment': 'SET vendor', + 'description': 'espace-net (2 23 42 9 31)', + 'hexoid': '06 04 67 2A 09 20', + 'name': 'espace-net', + 'oid': (2, 23, 42, 9, 31)}, + (2, 23, 42, 9, 32): {'comment': 'SET vendor', + 'description': 'Hitachi (2 23 42 9 32)', + 'hexoid': '06 04 67 2A 09 21', + 'name': 'Hitachi', + 'oid': (2, 23, 42, 9, 32)}, + (2, 23, 42, 9, 33): {'comment': 'SET vendor', + 'description': 'Microsoft (2 23 42 9 33)', + 'hexoid': '06 04 67 2A 09 22', + 'name': 'Microsoft', + 'oid': (2, 23, 42, 9, 33)}, + (2, 23, 42, 9, 34): {'comment': 'SET vendor', + 'description': 'NEC (2 23 42 9 34)', + 'hexoid': '06 04 67 2A 09 23', + 'name': 'NEC', + 'oid': (2, 23, 42, 9, 34)}, + (2, 23, 42, 9, 35): {'comment': 'SET vendor', + 'description': 'Mitsubishi (2 23 42 9 35)', + 'hexoid': '06 04 67 2A 09 24', + 'name': 'Mitsubishi', + 'oid': (2, 23, 42, 9, 35)}, + (2, 23, 42, 9, 36): {'comment': 'SET vendor', + 'description': 'NCR (2 23 42 9 36)', + 'hexoid': '06 04 67 2A 09 25', + 'name': 'NCR', + 'oid': (2, 23, 42, 9, 36)}, + (2, 23, 42, 9, 37): {'comment': 'SET vendor', + 'description': 'e-COMM (2 23 42 9 37)', + 'hexoid': '06 04 67 2A 09 26', + 'name': 'e-COMM', + 'oid': (2, 23, 42, 9, 37)}, + (2, 23, 42, 9, 38): {'comment': 'SET', + 'description': 'Gemplus (2 23 42 9 38)', + 'hexoid': '06 03 67 2A 0A', + 'name': 'Gemplus', + 'oid': (2, 23, 42, 9, 38)}, + (2, 23, 42, 10): {'comment': 'SET national', + 'description': 'national (2 23 42 10)', + 'hexoid': '06 05 67 2A 0A E2 00', + 'name': 'national', + 'oid': (2, 23, 42, 10)}, + (2, 23, 42, 10, 392): {'comment': 'SET. Deprecated, use (2 23 42 7 0) instead', + 'description': 'Japan (2 23 42 10 392)', + 'hexoid': '06 04 86 8D 6F 63', + 'name': 'Japan', + 'oid': (2, 23, 42, 10, 392)}} diff --git a/pow/POW-0.7/lib/_simpledb.py b/pow/POW-0.7/lib/_simpledb.py new file mode 100755 index 00000000..ed5d20fa --- /dev/null +++ b/pow/POW-0.7/lib/_simpledb.py @@ -0,0 +1,55 @@ +#*****************************************************************************# +#* *# +#* Copyright (c) 2002, Peter Shannon *# +#* All rights reserved. *# +#* *# +#* Redistribution and use in source and binary forms, with or without *# +#* modification, are permitted provided that the following conditions *# +#* are met: *# +#* *# +#* * Redistributions of source code must retain the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer. *# +#* *# +#* * Redistributions in binary form must reproduce the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer in the documentation and/or other materials *# +#* provided with the distribution. *# +#* *# +#* * The name of the contributors may be used to endorse or promote *# +#* products derived from this software without specific prior *# +#* written permission. *# +#* *# +#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *# +#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *# +#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *# +#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *# +#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *# +#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *# +#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *# +#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *# +#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *# +#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *# +#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *# +#* *# +#*****************************************************************************# + +import _oids, _objects, types + +class OidData: + def __init__(self): + self.oids = _oids.data + self.objs = _objects.data + + def obj2oid(self, obj): + if not self.objs.has_key(obj): + raise Exception, 'unknown object: %s' % obj + return tuple(self.objs[obj]['oid']) + + def oid2obj(self, oid): + if isinstance( oid, types.ListType ): + oid = tuple(oid) + if not self.oids.has_key(oid): + raise Exception, 'unknown oid %s' % `oid` + return self.oids[oid]['name'] + diff --git a/pow/POW-0.7/lib/pkix.py b/pow/POW-0.7/lib/pkix.py new file mode 100755 index 00000000..9d2b7ca5 --- /dev/null +++ b/pow/POW-0.7/lib/pkix.py @@ -0,0 +1,1685 @@ +#*****************************************************************************# +#* *# +#* Copyright (c) 2002, Peter Shannon *# +#* All rights reserved. *# +#* *# +#* Redistribution and use in source and binary forms, with or without *# +#* modification, are permitted provided that the following conditions *# +#* are met: *# +#* *# +#* * Redistributions of source code must retain the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer. *# +#* *# +#* * Redistributions in binary form must reproduce the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer in the documentation and/or other materials *# +#* provided with the distribution. *# +#* *# +#* * The name of the contributors may be used to endorse or promote *# +#* products derived from this software without specific prior *# +#* written permission. *# +#* *# +#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *# +#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *# +#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *# +#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *# +#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *# +#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *# +#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *# +#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *# +#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *# +#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *# +#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *# +#* *# +#*****************************************************************************# + +import types, time, pprint, cStringIO, POW, _der +from _simpledb import OidData as _OidData +from _der import * + +DEBUG = 0 + +_oidData = _OidData() +obj2oid = _oidData.obj2oid +oid2obj = _oidData.oid2obj + +_fragments = [] + +def _docset(): + return _der._docset() + _fragments + +def _addFragment(frag): + global _fragments + _fragments.append(frag) + +_addFragment(''' +<modulefunction> + <header> + <name>utc2time</name> + <parameter>time</parameter> + </header> + <body> + <para> + This is a helper function for turning a UTCTime string into an + integer. It isn't built into the encoder since the various + functions which are used to manipulate the tm structure are + notoriously unreliable. + </para> + </body> +</modulefunction> +''') +def utc2time(val): + 'der encoded value not including tag or length' + if not isinstance(val, types.StringType): + raise DerError, 'argument should be a string' + t = time.strptime(val, '%y%m%d%H%M%SZ') + return int(time.mktime(t)) + +_addFragment(''' +<modulefunction> + <header> + <name>time2utc</name> + <parameter>time</parameter> + </header> + <body> + <para> + This is a helper function for turning an integer into a + UTCTime string. It isn't built into the encoder since the + various functions which are used to manipulate the tm structure + are notoriously unreliable. + </para> + </body> +</modulefunction> +''') +def time2utc(val): + 'numerical time value like time_t' + val = int(val) + t = time.gmtime(val) + return time.strftime('%y%m%d%H%M%SZ', t) + +_addFragment(''' +<modulefunction> + <header> + <name>gen2time</name> + <parameter>time</parameter> + </header> + <body> + <para> + This is a helper function for turning a GeneralizedTime string into an + integer. It isn't built into the encoder since the various + functions which are used to manipulate the tm structure are + notoriously unreliable. + </para> + </body> +</modulefunction> +''') +def gen2Time(val): + 'der encoded value not including tag or length' + if not isinstance(val, types.StringType): + raise DerError, 'argument should be a string' + t = time.strptime(val, '%Y%m%d%H%M%SZ') + return int(time.mktime(t)) + +_addFragment(''' +<modulefunction> + <header> + <name>time2gen</name> + <parameter>time</parameter> + </header> + <body> + <para> + This is a helper function for turning an integer into a + GeneralizedTime string. It isn't built into the encoder since the + various functions which are used to manipulate the tm structure + are notoriously unreliable. + </para> + </body> +</modulefunction> +''') +def time2gen(val): + 'numerical time value like time_t' + val = int(val) + t = time.gmtime(val) + return time.strftime('%Y%m%d%H%M%SZ', t) + +_addFragment(''' +<method> + <header> + <name>ip42oct</name> + <parameter>ip</parameter> + </header> + <body> + <para> + <parameter>ip</parameter> should be a list or tuple of integers, + from 0 to 256. + </para> + <example> + <title>Setting <classname>IpAddress</classname></title> + <programlisting> + ip = IpAddress() + ip.set( ip42oct(192, 168, 0, 231) ) + </programlisting> + </example> + </body> +</method> +''') +def ip42oct(val0, val1, val2, val3): + return chr(val0) + chr(val1) + chr(val2) + chr(val3) + +_addFragment(''' +<method> + <header> + <name>oct2ip4</name> + <parameter>val</parameter> + </header> + <body> + <para> + Returns a tuple of 4 integers, from 0 to 256. + </para> + </body> +</method> +''') +def oct2ip4(val): + if not isinstance(val, types.StringType) or len(val) != 4: + raise DerError, 'parameter should be string of 4 characters' + return ( ord(val[0]), ord(val[1]), ord(val[2]), ord(val[3]) ) + +#---------- certificate support ----------# +class TbsCertificate(Sequence): + def __init__(self, optional=0, default=''): + + self.version = Integer() + self.explicitVersion = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.version, 0, 'oAMCAQA=\n' ) + + self.serial = Integer() + self.signature = AlgorithmIdentifier() + self.issuer = Name() + self.subject = Name() + self.subjectPublicKeyInfo = SubjectPublicKeyInfo() + + self.validity = Validity() + + self.issuerUniqueID = BitString(1) + self.issuerUniqueID.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 ) + self.subjectUniqueID = BitString(1) + self.subjectUniqueID.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 2 ) + + self.extensions = Extensions() + self.explicitExtensions = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 3, self.extensions, 1 ) + + contents = [ + self.explicitVersion, + self.serial, + self.signature, + self.issuer, + self.validity, + self.subject, + self.subjectPublicKeyInfo, + self.issuerUniqueID, + self.subjectUniqueID, + self.explicitExtensions + ] + + Sequence.__init__(self, contents, optional, default) + +class Validity(Sequence): + def __init__(self, optional=0, default=''): + Time = lambda : Choice({ 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() }) + self.notBefore = Time() + self.notAfter = Time() + contents = [self.notBefore, self.notAfter] + Sequence.__init__(self, contents, optional, default) + +class DirectoryString(Choice): + def __init__(self, optional=0, default=''): + choices = { 'teletexString' : T61String(), + 'printableString' : PrintableString(), + 'universalString' : UniversalString(), + 'bmpString' : BmpString(), + 'utf8String' : Utf8String() } + + Choice.__init__(self, choices, optional, default) + +class AttributeTypeAndValue(Sequence): + def __init__(self, optional=0, default=''): + self.type = Oid() + self.dirstr = DirectoryString() + contents = [ self.type, self.dirstr ] + Sequence.__init__(self, contents, optional, default) + +class RelativeDistinguishedName(SetOf): + def __init__(self, optional=0, default=''): + SetOf.__init__(self, AttributeTypeAndValue, optional, default) + +class Name(SequenceOf): + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, RelativeDistinguishedName, optional, default) + +class AlgorithmIdentifier(Sequence): + def __init__(self, optional=0, default=''): + self.algorithm = Oid() + self.parameters = Null() + contents = [self.algorithm, self.parameters] + Sequence.__init__(self, contents, optional, default) + +class SubjectPublicKeyInfo(Sequence): + def __init__(self, optional=0, default=''): + self.algorithmId = AlgorithmIdentifier() + self.subjectPublicKey = AltBitString() + contents = [ self.algorithmId, self.subjectPublicKey ] + Sequence.__init__(self, contents, optional, default) + +class Extensions(SequenceOf): + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, Extension, optional, default) + +_addFragment(''' +<class> + <header> + <name>Certificate</name> + <super>Sequence</super> + </header> + <body> + <example> + <title>Setting <classname>Certificate</classname></title> + <programlisting> + rsa = POW.Asymmetric() + cert = POW.pkix.Certificate() + cert.setVersion(1) + cert.setSerial(5) + + name = ( (( o2i('countryName'), ('printableString', 'GB') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Hertfordshire') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Client') ),) ) + + cert.setIssuer(name) + cert.setSubject(name) + + now = POW.pkix.time2gen( time.time() ) + then = POW.pkix.time2gen(time.time() + 60*60*24*365*12) + cert.setNotBefore( ('generalTime', now) ) + cert.setNotAfter( ( 'generalTime', then) ) + cert.setIssuerUniqueID((1,0,1,0)) + cert.setSubjectUniqueID((1,0,0,1)) + cert.sign(rsa, POW.MD5_DIGEST) + </programlisting> + </example> + </body> +</class> +''') + +class Certificate(Sequence): + + _addFragment(''' + <constructor> + <header> + <memberof>Certificate</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + self.tbs = TbsCertificate() + self.signatureAlgorithm = AlgorithmIdentifier() + self.signatureValue = AltBitString() + contents = [ self.tbs, self.signatureAlgorithm, self.signatureValue ] + Sequence.__init__(self, contents, optional, default) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setVersion</name> + <parameter>version</parameter> + </header> + <body> + <para> + This function sets an <classname>Integer</classname> object. 0 + indicates a version 1 certificate, 1 a version 2 certificate and 2 a + version 3 certificate. + </para> + </body> + </method> + ''') + def setVersion(self, version): + self.tbs.version.set(version) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getVersion</name> + </header> + <body> + <para> + This function returns whatever the version object is set to, + this should be 0, 1 or 2. + </para> + </body> + </method> + ''') + def getVersion(self): + return self.tbs.version.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setSerial</name> + <parameter>serial</parameter> + </header> + <body> + <para> + This function sets an <classname>Integer</classname> object. + No two certificates issued should ever have the same serial + number. + </para> + </body> + </method> + ''') + def setSerial(self, serial): + self.tbs.serial.set(serial) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getVersion</name> + </header> + <body> + <para> + This function returns whatever the serial object is set to. + </para> + </body> + </method> + ''') + def getSerial(self): + return self.tbs.serial.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setIssuer</name> + <parameter>names</parameter> + </header> + <body> + <para> + This function sets an <classname>Name</classname> object. + See <classname>Certificate</classname> class for an example. + </para> + </body> + </method> + ''') + def setIssuer(self, issuer): + self.tbs.issuer.set(issuer) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getIssuer</name> + </header> + <body> + <para> + This function returns a complex tuple containing other tuples. + </para> + </body> + </method> + ''') + def getIssuer(self): + return self.tbs.issuer.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setSubject</name> + <parameter>names</parameter> + </header> + <body> + <para> + This function sets an <classname>Name</classname> object. + See <classname>Certificate</classname> class for an example. + </para> + </body> + </method> + ''') + def setSubject(self, subject): + self.tbs.subject.set(subject) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getSubject</name> + </header> + <body> + <para> + This function returns a complex tuple containing other tuples. + </para> + </body> + </method> + ''') + def getSubject(self): + return self.tbs.subject.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setNotBefore</name> + <parameter>time</parameter> + </header> + <body> + <para> + This function sets a <classname>Choice</classname> object. + It can be either a <classname>GeneralTime</classname> or + <classname>UTCTime</classname> object. The functions + <function>gen2time</function>, <function>utc2time</function>, + <function>time2gen</function> and <function>time2utc</function> + can be used to convert to and from integer times and their + string representation. + </para> + <example> + <title><function>setNotBefore</function> method usage</title> + <programlisting> + cert = POW.pkix.Certificate() + now = POW.pkix.time2gen( time.time() ) + cert.setNotBefore( ('generalTime', now) ) + </programlisting> + </example> + </body> + </method> + ''') + def setNotBefore(self, nb): + self.tbs.validity.notBefore.set(nb) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getNotBefore</name> + </header> + <body> + <para> + This function returns a tuple indicating which type of time was + stored and its value. See <function>setNotBefore</function> for details. + </para> + </body> + </method> + ''') + def getNotBefore(self): + return self.tbs.validity.notBefore.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setNotAfter</name> + <parameter>time</parameter> + </header> + <body> + <para> + This function sets a <classname>Choice</classname> object. + See <function>setNotBefore</function> for details. + </para> + </body> + </method> + ''') + def setNotAfter(self, na): + self.tbs.validity.notAfter.set(na) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getNotAfter</name> + </header> + <body> + <para> + This function returns a tuple indicating which type of time was + stored and its value. See <function>setNotBefore</function> for details. + </para> + </body> + </method> + ''') + def getNotAfter(self): + return self.tbs.validity.notAfter.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setIssuerUniqueID</name> + <parameter>id</parameter> + </header> + <body> + <para> + This function sets a <classname>BitString</classname> object. + This is part of the X509v2 standard and is quite poorly + regarded in general, its use is not recommended. It is set + using the normal <classname>BitString</classname> method, that + is with a sequence of true/false objects. + </para> + </body> + </method> + ''') + def setIssuerUniqueID(self, id): + self.tbs.issuerUniqueID.set(id) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getIssuerUniqueID</name> + </header> + <body> + <para> + This function returns a tuple of integers, 1 or 0. + </para> + </body> + </method> + ''') + def getIssuerUniqueID(self): + return self.tbs.issuerUniqueID.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setSubjectUniqueID</name> + <parameter>id</parameter> + </header> + <body> + <para> + This function sets a <classname>BitString</classname> object. + This is part of the X509v2 standard and is quite poorly + regarded in general, its use is not recommended. It is set + using the normal <classname>BitString</classname> method, that + is with a sequence of true/false objects. + </para> + </body> + </method> + ''') + def setSubjectUniqueID(self, id): + self.tbs.subjectUniqueID.set(id) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getSubjectUniqueID</name> + </header> + <body> + <para> + This function returns a tuple of integers, 1 or 0. + </para> + </body> + </method> + ''') + def getSubjectUniqueID(self): + return self.tbs.subjectUniqueID.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>setExtensions</name> + <parameter>extns</parameter> + </header> + <body> + <para> + This method sets an <classname>Extensions</classname> object, + defined as SEQUENCE OF Extension. The parameter + <parameter>extns</parameter> should consist of a list or tuple + of values suitable to set an extension. See the extension + class for details. + </para> + </body> + </method> + ''') + def setExtensions(self, extns): + self.tbs.extensions.set(extns) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>getExtensions</name> + </header> + <body> + <para> + This function returns a tuple of + <classname>Extension</classname> values. See + <classname>Extension</classname> for details. + </para> + </body> + </method> + ''') + def getExtensions(self): + return self.tbs.extensions.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>sign</name> + <parameter>rsa</parameter> + <parameter>digestType</parameter> + </header> + <body> + <para> + This function updates structured of the + <classname>Certificate</classname> and + <constant>tbs</constant> as appropriate and performs the + specified digest on the <constant>tbs</constant> and set + <constant>signedText</constant> to signed the digest. + </para> + </body> + </method> + ''') + def sign(self, rsa, digestType): + signatureMap = { POW.MD2_DIGEST : (1, 2, 840, 113549, 1, 1, 2), # md2WithRSAEncryption + POW.MD5_DIGEST : (1, 2, 840, 113549, 1, 1, 4), # md5WithRSAEncryption + POW.SHA_DIGEST : (1, 3, 14, 3, 2, 15), # shaWithRSAEncryption + POW.SHA1_DIGEST : (1, 2, 840, 113549, 1, 1, 5), # sha1withRSAEncryption + POW.RIPEMD160_DIGEST : (1, 2, 840, 113549, 1, 1, 6) } # ripemd160WithRSAEncryption + + self.tbs.subjectPublicKeyInfo.set( (((1, 2, 840, 113549, 1, 1, 1), None), rsa.derWrite(POW.RSA_PUBLIC_KEY) ) ) + self.tbs.signature.set( [signatureMap[digestType], None] ) + digest = POW.Digest(digestType) + digest.update( self.tbs.toString() ) + signedText = rsa.sign( digest.digest(), digestType ) + self.signatureAlgorithm.set( [signatureMap[digestType], None] ) + self.signatureValue.set(signedText) + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>verify</name> + <parameter>rsa</parameter> + </header> + <body> + <para> + This function works out what kind of digest was used to + during signing, calculates the digest of + <constant>tbs</constant> and verifies the envelope using the + key. + </para> + </body> + </method> + ''') + def verify(self, rsa): + signatureMap = { (1, 2, 840, 113549, 1, 1, 2) : POW.MD2_DIGEST, # md2WithRSAEncryption + (1, 2, 840, 113549, 1, 1, 4) : POW.MD5_DIGEST, # md5WithRSAEncryption + (1, 3, 14, 3, 2, 15) : POW.SHA_DIGEST, # shaWithRSAEncryption + (1, 2, 840, 113549, 1, 1, 5) : POW.SHA1_DIGEST, # sha1withRSAEncryption + (1, 2, 840, 113549, 1, 1, 6) : POW.RIPEMD160_DIGEST } # ripemd160WithRSAEncryption + + digestOid = self.signatureAlgorithm.get()[0] + digestType = signatureMap[digestOid] + + digest = POW.Digest(digestType) + digest.update( self.tbs.toString() ) + return rsa.verify( self.signatureValue.get(), digest.digest(), digestType ) + +#---------- certificate support ----------# +#---------- CRL ----------# + +class RevokedCertificate(Sequence): + def __init__(self, optional=0, default=''): + self.userCertificate = Integer() + self.revocationDate = Choice( { 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() } ) + self.crlEntryExtensions = Extensions(1) + contents = [ self.userCertificate, self.revocationDate, self.crlEntryExtensions ] + Sequence.__init__(self, contents, optional, default) + +class RevokedCertificates(SequenceOf): + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, RevokedCertificate, optional, default) + +class TbsCertList(Sequence): + def __init__(self, optional=0, default=''): + self.version = Integer(1) + self.signature = AlgorithmIdentifier() + self.issuer = Name() + self.thisUpdate = Choice( { 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() } ) + self.nextUpdate = Choice( { 'generalTime' : GeneralizedTime(), 'utcTime' : UtcTime() }, 1 ) + self.revokedCertificates = RevokedCertificates(1) + self.crlExtensions = Extensions() + self.explicitCrlExtensions = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.crlExtensions, 1 ) + contents = [ self.version, + self.signature, + self.issuer, + self.thisUpdate, + self.nextUpdate, + self.revokedCertificates, + self.explicitCrlExtensions ] + Sequence.__init__(self, contents, optional, default) + +_addFragment(''' +<class> + <header> + <name>CertificateList</name> + <super>Sequence</super> + </header> + <body> + <example> + <title>Setting <classname>CertificateList</classname></title> + <programlisting> + now = POW.pkix.time2gen( time.time() ) + then = POW.pkix.time2gen(time.time() + 60*60*24*365*12) + rsa = POW.Asymmetric() + + crl = POW.pkix.CertificateList() + crl.setThisUpdate( ('generalTime', now ) ) + + name = ( (( o2i('countryName'), ('printableString', 'GB') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Hertfordshire') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Client') ),) ) + + myRevocations = ( + (1, ('generalTime', now), ()), + (2, ('generalTime', now), ()), + (3, ('generalTime', now), (( o2i('cRLReason'), 0, 1),)) + ) + + crl.setIssuer(name) + crl.setRevokedCertificates( myRevocations ) + + crl.sign(rsa, POW.MD5_DIGEST) + </programlisting> + </example> + </body> +</class> +''') +class CertificateList(Sequence): + _addFragment(''' + <constructor> + <header> + <memberof>CertificateList</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + self.tbs = TbsCertList() + self.signatureAlgorithm = AlgorithmIdentifier() + self.signature = AltBitString() + contents = [self.tbs, self.signatureAlgorithm, self.signature] + Sequence.__init__(self, contents, optional, default) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>setVersion</name> + <parameter>version</parameter> + </header> + <body> + <para> + This function sets an <classname>Integer</classname> object. 0 + indicates a version 1 CRL, and 1 a version 2 CRL. + </para> + </body> + </method> + ''') + def setVersion(self, version): + self.tbs.version.set(version) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>getVersion</name> + </header> + <body> + <para> + This function returns whatever the version object is set to, + this should be 0, 1 or 2. + </para> + </body> + </method> + ''') + def getVersion(self): + return self.tbs.version.get() + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>setIssuer</name> + <parameter>names</parameter> + </header> + <body> + <para> + This function sets an <classname>Name</classname> object. + </para> + </body> + </method> + ''') + def setIssuer(self, issuer): + self.tbs.issuer.set(issuer) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>getIssuer</name> + </header> + <body> + <para> + This function returns a complex tuple containing other tuples. + </para> + </body> + </method> + ''') + def getIssuer(self): + return self.tbs.issuer.get() + + _addFragment(''' + <method> + <header> + <memberof>setThisUpdate</memberof> + <name>setNotBefore</name> + <parameter>time</parameter> + </header> + <body> + <para> + This function sets a <classname>Choice</classname> object. + It can be either a <classname>GeneralTime</classname> or + <classname>UTCTime</classname> object. The functions + <function>gen2time</function>, <function>utc2time</function>, + <function>time2gen</function> and <function>time2utc</function> + can be used to convert to and from integer times and their + string representation. + </para> + <example> + <title><function>setNotBefore</function> method usage</title> + <programlisting> + crl = POW.pkix.CertificateList() + now = POW.pkix.time2gen( time.time() ) + crl.setNotBefore( ('generalTime', now) ) + </programlisting> + </example> + </body> + </method> + ''') + def setThisUpdate(self, nu): + self.tbs.thisUpdate.set(nu) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>getThisUpdate</name> + </header> + <body> + <para> + This function returns a tuple containing two strings. The first + is either 'utcTime' or 'generalTime' and the second is the time + value as a string. + </para> + </body> + </method> + ''') + def getThisUpdate(self): + return self.tbs.thisUpdate.get() + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>setNextUpdate</name> + </header> + <body> + <para> + See set <function>setThisUpdate</function>. + </para> + </body> + </method> + ''') + def setNextUpdate(self, nu): + self.tbs.nextUpdate.set(nu) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>getNextUpdate</name> + </header> + <body> + <para> + See set <function>getThisUpdate</function>. + </para> + </body> + </method> + ''') + def getNextUpdate(self): + return self.tbs.nextUpdate.get() + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>setExtensions</name> + <parameter>extns</parameter> + </header> + <body> + <para> + This method sets an <classname>Extensions</classname> object, + defined as SEQUENCE OF Extension. The parameter + <parameter>extns</parameter> should consist of a list or tuple + of values suitable to set an extension. See the extension + class for details. + </para> + </body> + </method> + ''') + def setExtensions(self, extns): + self.tbs.crlExtensions.set(extns) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>getExtensions</name> + </header> + <body> + <para> + This function returns a tuple of + <classname>Extension</classname> values. See + <classname>Extension</classname> for details. + </para> + </body> + </method> + ''') + def getExtensions(self): + return self.tbs.crlExtensions.get() + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>setRevokedCertificates</name> + </header> + <body> + <para> + This function sets a sequence of + <classname>revokedCertificate</classname> objects. + This object is optional. See + <classname>CertificateList</classname> for an example of its + use. + </para> + </body> + </method> + ''') + def setRevokedCertificates(self, rc): + self.tbs.revokedCertificates.set(rc) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>getRevokedCertificates</name> + </header> + <body> + <para> + This function return a sequence of + <classname>revokedCertificate</classname> objects or None. + </para> + </body> + </method> + ''') + def getRevokedCertificates(self): + return self.tbs.revokedCertificates.get() + + _addFragment(''' + <method> + <header> + <memberof>Certificate</memberof> + <name>sign</name> + </header> + <body> + <para> + This function updates structured of the + <classname>certificateList</classname> and + <classname>tBSCertList</classname> as appropriate, performs the + specified digest on the <classname>tBSCertList</classname> and sets + <constant>signedValue</constant> to signed the digest. + </para> + </body> + </method> + ''') + def sign(self, rsa, digestType): + signatureMap = { POW.MD2_DIGEST : (1, 2, 840, 113549, 1, 1, 2), # md2WithRSAEncryption + POW.MD5_DIGEST : (1, 2, 840, 113549, 1, 1, 4), # md5WithRSAEncryption + POW.SHA_DIGEST : (1, 3, 14, 3, 2, 15), # shaWithRSAEncryption + POW.SHA1_DIGEST : (1, 2, 840, 113549, 1, 1, 5), # sha1withRSAEncryption + POW.RIPEMD160_DIGEST : (1, 2, 840, 113549, 1, 1, 6) } # ripemd160WithRSAEncryption + + self.tbs.signature.set( [signatureMap[digestType], None] ) + digest = POW.Digest(digestType) + digest.update( self.tbs.toString() ) + signedText = rsa.sign( digest.digest(), digestType ) + self.signatureAlgorithm.set( [signatureMap[digestType], None] ) + self.signature.set(signedText) + + _addFragment(''' + <method> + <header> + <memberof>CertificateList</memberof> + <name>verify</name> + </header> + <body> + <para> + This function works out what kind of digest was used to during + signing, calculates the digest of + <classname>tBSCertList</classname> and verifies the + <constant>signedText</constant> using the key. + </para> + </body> + </method> + ''') + def verify(self, rsa): + signatureMap = { (1, 2, 840, 113549, 1, 1, 2) : POW.MD2_DIGEST, # md2WithRSAEncryption + (1, 2, 840, 113549, 1, 1, 4) : POW.MD5_DIGEST, # md5WithRSAEncryption + (1, 3, 14, 3, 2, 15) : POW.SHA_DIGEST, # shaWithRSAEncryption + (1, 2, 840, 113549, 1, 1, 5) : POW.SHA1_DIGEST, # sha1withRSAEncryption + (1, 2, 840, 113549, 1, 1, 6) : POW.RIPEMD160_DIGEST } # ripemd160WithRSAEncryption + + digestOid = self.signatureAlgorithm.get()[0] + digestType = signatureMap[digestOid] + + digest = POW.Digest(digestType) + digest.update( self.tbs.toString() ) + return rsa.verify( self.signature.get(), digest.digest(), digestType ) + +#---------- CRL ----------# +#---------- GeneralNames object support ----------# +class OtherName(Sequence): + def __init__(self, optional=0, default=''): + self.typeId = Oid() + self.any = Any() + contents = [self.typeId, self.any] + Sequence.__init__(self, contents, optional, default) + +class EdiPartyName(Sequence): + def __init__(self, optional=0, default=''): + self.nameAssigner = DirectoryString() + self.partyName = DirectoryString() + self.explicitNameAssigner = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.nameAssigner, 1 ) + self.explicitPartyName = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 1, self.partyName ) + contents = [ self.explicitNameAssigner, self.explicitPartyName ] + Sequence.__init__(self, contents, optional, default) + +class IpAddress(OctetString): + pass + +class GeneralName(Choice): + def __init__(self, optional=0, default=''): + + otherName = OtherName() + otherName.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 0 ) + rfc822Name = IA5String() + rfc822Name.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 ) + dnsName = IA5String() + dnsName.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 2 ) + directoryName = Name() + explicitDirectoryName = Explicit( CLASS_CONTEXT, FORM_CONSTRUCTED, 4, directoryName) + ediPartyName = EdiPartyName() + ediPartyName.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 5 ) + uri = IA5String() + uri.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 6 ) + ipAddress = IpAddress() + ipAddress.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 7 ) + registeredId = Oid() + registeredId.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 8 ) + + choices = { 'otherName' : otherName , + 'rfc822Name' : rfc822Name , + 'dNSName' : dnsName , + 'directoryName' : explicitDirectoryName , + 'ediPartyName' : ediPartyName , + 'uri' : uri , + 'iPAddress' : ipAddress , + 'registeredId' : registeredId } + + Choice.__init__(self, choices, optional, default) + +class GeneralNames(SequenceOf): + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, GeneralName, optional, default) + +#---------- GeneralNames object support ----------# +#---------- extensions ----------# + +_addFragment(''' +<class> + <header> + <name>BasicConstraints</name> + <super>Sequence</super> + </header> + <body> + <para> + This little extension has recently caused plenty of problems for + several large organisations. It consist of a + <classname>Boolean</classname> and an + <classname>Integer</classname>. The first indicates if the owner + is a CA, the second indicates how long a chain of CAs you should + trust which the subject of this certificate trusts. + </para> + <example> + <title>Setting <classname>BasicConstraints</classname></title> + <programlisting> + bc = BasicConstraints() + bc.set( (1, 1) ) + </programlisting> + </example> + </body> +</class> +''') +class BasicConstraints(Sequence): + _addFragment(''' + <constructor> + <header> + <memberof>BasicConstraints</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + self.ca = Boolean(0, 'AQEA\n') + self.pathLenConstraint = Integer(1) + contents = [self.ca, self.pathLenConstraint] + Sequence.__init__(self, contents, optional, default) + +_addFragment(''' +<class> + <header> + <name>KeyUsage</name> + <super>BitString</super> + </header> +</class> +''') +class KeyUsage(BitString): + pass + +_addFragment(''' +<class> + <header> + <name>SubjectAltName</name> + <super>GeneralNames</super> + </header> +</class> +''') +class SubjectAltName(GeneralNames): + pass + +_addFragment(''' +<class> + <header> + <name>IssuerAltName</name> + <super>GeneralNames</super> + </header> +</class> +''') +class IssuerAltName(GeneralNames): + pass + +_addFragment(''' +<class> + <header> + <name>SubjectKeyIdentifier</name> + <super>OctetString</super> + </header> +</class> +''') +class SubjectKeyIdentifier(OctetString): + pass + +_addFragment(''' +<class> + <header> + <name>AuthorityKeyIdentifier</name> + <super>Sequence</super> + </header> + <body> + <para> + </para> + <example> + <title>Setting <classname>AuthorityKeyIdentifier</classname></title> + <programlisting> + id = AuthorityKeyIdentifier() + authdigest = POW.Digest( POW.SHA1_DIGEST ) + authdigest.update(rsa.derWrite(POW.RSA_PUBLIC_KEY)) + keyHash = authdigest.digest() + id.set( (keyHash, None, None) ) + </programlisting> + </example> + </body> + +</class> +''') +class AuthorityKeyIdentifier(Sequence): + _addFragment(''' + <constructor> + <header> + <memberof>AuthorityKeyIdentifier</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + self.keyIdentifier = OctetString(1) + self.keyIdentifier.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 0 ) + self.authorityCertIssuer = GeneralNames(1) + self.authorityCertIssuer.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 1 ) + self.authorityCertSerialNumber = Integer(1) + self.authorityCertSerialNumber.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 2 ) + contents = [self.keyIdentifier, self.authorityCertIssuer, self.authorityCertSerialNumber] + Sequence.__init__(self, contents, optional, default) + +_addFragment(''' +<class> + <header> + <name>PrivateKeyUsagePeriod</name> + <super>Sequence</super> + </header> + <body> + <example> + <title>Setting <classname>PrivateKeyUsagePeriod</classname></title> + <programlisting> + period = PrivateKeyUsagePeriod() + period.set( ( time2gen( time.time() ), None) ) + </programlisting> + </example> + </body> +</class> +''') +class PrivateKeyUsagePeriod(Sequence): + _addFragment(''' + <constructor> + <header> + <memberof>PrivateKeyUsagePeriod</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + self.notBefore = GeneralizedTime() + self.notBefore.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 0 ) + self.notAfter = GeneralizedTime() + self.notAfter.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 ) + contents = [self.notBefore, self.notAfter] + Sequence.__init__(self, contents, optional, default) + +class DisplayText(Choice): + def __init__(self, optional=0, default=''): + choices = { 'visibleString' : VisibleString(), + 'bmpString' : BmpString(), + 'utf8String' : Utf8String() } + + Choice.__init__(self, choices, optional, default) + +class NoticeNumbers(SequenceOf): + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, Integer, optional, default) + +class NoticeReference(Sequence): + def __init__(self, optional=0, default=''): + self.organization = DisplayText() + self.noticeNumbers = NoticeNumbers() + contents = [self.organization, self.noticeNumbers] + Sequence.__init__(self, contents, optional, default) + +class UserNotice(Sequence): + def __init__(self, optional=0, default=''): + self.noticeRef = NoticeReference(1) + self.explicitText = DisplayText(1) + contents = [self.noticeRef, self.explicitText] + Sequence.__init__(self, contents, optional, default) + +class Qualifier(Choice): + def __init__(self, optional=0, default=''): + choices = { 'cPSuri' : IA5String(), + 'userNotice' : UserNotice() } + + Choice.__init__(self, choices, optional, default) + +class PolicyQualifierInfo(Sequence): + def __init__(self, optional=0, default=''): + self.policyQualifierId = Oid() + self.qualifier = Qualifier() + contents = [self.policyQualifierId, self.qualifier] + Sequence.__init__(self, contents, optional, default) + +class PolicyQualifiers(SequenceOf): + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, PolicyQualifierInfo, optional, default) + +class PolicyInformation(Sequence): + def __init__(self, optional=0, default=''): + self.policyIdentifier = Oid() + self.policyQualifiers = PolicyQualifiers(1) + contents = [self.policyIdentifier, self.policyQualifiers] + Sequence.__init__(self, contents, optional, default) + +_addFragment(''' +<class> + <header> + <name>CertificatePolicies</name> + <super>SequenceOf</super> + </header> + <body> + <example> + <title>Setting <classname>CertificatePolicies</classname></title> + <programlisting> + data = ( + ( o2i('id-cti-ets-proofOfReceipt'), ( + (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/policy1')), + (o2i('unotice'), ( 'userNotice', + ((('visibleString', 'The House'),(1,2,3)), + ('visibleString', 'We guarentee nothing')))), + )), + ( o2i('id-cti-ets-proofOfOrigin'), ( + (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/policy2')), + )) + ) + policies = CertificatePolicies() + policies.set( data ) + </programlisting> + </example> + </body> +</class> +''') +class CertificatePolicies(SequenceOf): + _addFragment(''' + <constructor> + <header> + <memberof>CertificatePolicies</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, PolicyInformation, optional, default) + +class DistributionPointName(Choice): + def __init__(self, optional=0, default=''): + fullName = GeneralNames() + fullName.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 0 ) + nameRelativeToCRLIssuer = RelativeDistinguishedName() + nameRelativeToCRLIssuer.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 1 ) + + choices = { 'fullName' : fullName, + 'nameRelativeToCRLIssuer ' : nameRelativeToCRLIssuer } + + Choice.__init__(self, choices, optional, default) + +class DistributionPoint(Sequence): + def __init__(self, optional=0, default=''): + self.distributionPoint = DistributionPointName(1) + self.explicitDistributionPoint = Explicit(CLASS_CONTEXT, FORM_CONSTRUCTED, 0, self.distributionPoint) + self.reasons = BitString(1) + self.reasons.implied( CLASS_CONTEXT, FORM_PRIMITIVE, 1 ) + self.cRLIssuer = GeneralNames(1) + self.cRLIssuer.implied( CLASS_CONTEXT, FORM_CONSTRUCTED, 2 ) + contents = [self.explicitDistributionPoint, self.reasons, self.cRLIssuer] + Sequence.__init__(self, contents, optional, default) + +_addFragment(''' +<class> + <header> + <name>CRLDistrobutionPoints</name> + <super>SequenceOf</super> + </header> + <body> + <example> + <title>Setting <classname>CRLDistrobutionPoints</classname></title> + <programlisting> + n1 = ('directoryName', + ( (( o2i('countryName'), ('printableString', 'UK') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) ) + + n2 = ('iPAddress', POW.pkix.ip42oct(192,168,100,51)) + + data = ( ( ('fullName',(n1, n2)), (1,1,1,1,1), (n1,) ), ) + points = CRLDistrobutionPoints() + points.set( data ) + </programlisting> + </example> + </body> +</class> +''') +class CRLDistributionPoints(SequenceOf): + _addFragment(''' + <constructor> + <header> + <memberof>CRLDistrobutionPoints</memberof> + <parameter>optional=0</parameter> + <parameter>default=''</parameter> + </header> + </constructor> + ''') + def __init__(self, optional=0, default=''): + SequenceOf.__init__(self, DistributionPoint, optional, default) + +_addFragment(''' +<class> + <header> + <name>CrlNumber</name> + <super>Integer</super> + </header> +</class> +''') +class CrlNumber(Integer): + pass + +_addFragment(''' +<class> + <header> + <name>DeltaCrlIndicator</name> + <super>Integer</super> + </header> +</class> +''') +class DeltaCrlIndicator(Integer): + pass + +_addFragment(''' +<class> + <header> + <name>InvalidityDate</name> + <super>GeneralizedTime</super> + </header> +</class> +''') +class InvalidityDate(GeneralizedTime): + pass + +_addFragment(''' +<class> + <header> + <name>CrlReason</name> + <super>Enum</super> + </header> +</class> +''') +class CrlReason(Enum): + pass + +#---------- X509 extensions ----------# + +_addFragment(''' +<class> + <header> + <name>Extension</name> + <super>Sequence</super> + </header> + <body> + <para> + This class is a useful little object. It is set by passing three + values: an oid, an integer(a boolean really) and a value. The + boolean indicates if this extension is critical. The value is + used to set the extension once it has been created. The oid + is used to create the correct object which, to be fully supported it must + be one of these: + <simplelist> + <member><classname>basicConstraints</classname></member> + <member><classname>subjectAltName</classname></member> + <member><classname>issuerAltName</classname></member> + <member><classname>authorityKeyIdentifier</classname></member> + <member><classname>privateKeyUsagePeriod</classname></member> + <member><classname>certificatePolicies</classname></member> + <member><classname>cRLDistributionPoints</classname></member> + <member><classname>subjectKeyIdentifier</classname></member> + <member><classname>keyUsage</classname></member> + <member><classname>crlNumber</classname></member> + <member><classname>deltaCrlIndicator</classname></member> + <member><classname>invalidityDate</classname></member> + <member><classname>crlReason</classname></member> + </simplelist> + </para> + <example> + <title>Setting <classname>Extension</classname></title> + <programlisting> + extn = Extension() + email = ('rfc822Name', 'peter_shannon@yahoo.com') + extn.set( (obj2oid('subjectAltName'),1, (email,)) ) + </programlisting> + </example> + </body> +</class> +''') +class Extension(Sequence): + + classMap = { + (2, 5, 29, 19) : BasicConstraints, + (2, 5, 29, 17) : SubjectAltName, + (2, 5, 29, 18) : IssuerAltName, + (2, 5, 29, 35) : AuthorityKeyIdentifier, + (2, 5, 29, 16) : PrivateKeyUsagePeriod, + (2, 5, 29, 32) : CertificatePolicies, + (2, 5, 29, 31) : CRLDistributionPoints, + (2, 5, 29, 14) : SubjectKeyIdentifier, + (2, 5, 29, 15) : KeyUsage, + (2, 5, 29, 20) : CrlNumber, + (2, 5, 29, 27) : DeltaCrlIndicator, + (2, 5, 29, 24) : InvalidityDate, + (2, 5, 29, 21) : CrlReason, + } +# Missing -- fix later +# extendedKeyUsage +# privateKeyUsagePeriod +# policyMappings +# nameConstraints +# policyConstraints +# subjectDirectoryAttributes +# authorityInfoAccess +# instructionCode +# issuingDistrobutionPoint + + def __init__(self, optional=0, default=''): + self.extnID = Oid() + self.critical = Boolean(0, 'AQEA\n') + self.extnValue = OctetString() + contents = [self.extnID, self.critical, self.extnValue] + Sequence.__init__(self, contents, optional, default) + + _addFragment(''' + <method> + <header> + <memberof>Extension</memberof> + <name>set</name> + <parameter>values</parameter> + </header> + <body> + <para> + <parameter>values</parameter> should be a sequence of three + values, the oid, critical marker and a value to set the + extension. If an unknown oid is passed to this function it + will raise an exception. <parameter>critical</parameter> is a + boolean. <parameter>value</parameter> will be used to set the + extension after it has been created. + </para> + </body> + </method> + ''') + def set(self, (oid, critical, val) ): + self.extnID.set( oid ) + self.critical.set( critical ) + + extnObj = None + if self.classMap.has_key(oid): + extnObj = self.classMap[oid]() + else: + if not (isinstance(oid, types.TupleType) or isinstance(oid, types.ListType)): + raise DerError, 'the oid should be specified as a sequence of integers' + else: + raise DerError, 'unkown object extension %s' % oid + + try: + extnObj.set( val ) + self.extnValue.set( extnObj.toString() ) + except DerError, e: + raise DerError, 'failed to set %s, with:\n\t%s\nresulting in:\n\t%s' % (oid, val, `e`) + + _addFragment(''' + <method> + <header> + <memberof>Extension</memberof> + <name>get</name> + </header> + <body> + <para> + There are several ways this function might fail to decode an + extension. Firstly if the extension was marked critical but if + the oid cannot be mapped to a class or If a failure occurs decoding the + <constant>extnValue</constant>, an exception will be raised. + If a failure occurred and the extension was not marked critical it + will return a tuple like this: <constant>(oid, critical, + ())</constant>. If no failures occur a tuple will be returned, + containg the oid, critical and extension values. + </para> + </body> + </method> + ''') + def get(self): + oid = self.extnID.get() + critical = self.critical.get() + + if self.classMap.has_key(oid): + extnObj = self.classMap[oid]() + else: + if critical: + raise DerError, 'failed to read critical extension %s' % oid + else: + return (name, critical, ()) + + try: + extnObj = self.classMap[oid]() + extnObj.fromString(self.extnValue.get()) + value = extnObj.get() + except: + if critical: + raise DerError, 'failed to read critical extension %s' % name + else: + return (oid, critical, ()) + + return (oid, critical, value) + + diff --git a/pow/POW-0.7/setup.py b/pow/POW-0.7/setup.py new file mode 100644 index 00000000..13fc34dd --- /dev/null +++ b/pow/POW-0.7/setup.py @@ -0,0 +1,38 @@ +from distutils.core import setup, Extension +import sys, os, cfgparse + +print 'parsing configuration file' +oidinfo = cfgparse.Parser('dumpasn1.cfg') +print 'writing object module' +oidinfo.dumpobjs('lib/_objects.py') +print 'writing oid module' +oidinfo.dumpoids('lib/_oids.py') + +if sys.platform == 'win32': + library_dirs = [ os.path.join(sys.prefix, 'bin') ] + libraries = [ 'ssleay32', 'libeay32' ] +else: + library_dirs = [ os.path.join(sys.prefix, 'lib') ] + libraries = [ 'ssl', 'crypto' ] + +include_dirs = [os.path.join(sys.prefix, 'include')] + +setup(name='POW', + version='0.7', + description='Python OpenSSL Wrappers', + author='Peter Shannon', + author_email='peter_shannon@yahoo.com', + licence='BSD', + url='http://www.sourceforge.net/projects/pow', + packages=['POW'], + package_dir={'POW':'lib'}, + ext_modules=[ + Extension('POW._POW', + ['POW.c'], + libraries=libraries, + library_dirs=library_dirs, + include_dirs=include_dirs ) + ]) + +os.remove('lib/_objects.py') +os.remove('lib/_oids.py') diff --git a/pow/POW-0.7/test/test.py b/pow/POW-0.7/test/test.py new file mode 100755 index 00000000..a2070df5 --- /dev/null +++ b/pow/POW-0.7/test/test.py @@ -0,0 +1,2128 @@ +#!/usr/bin/env python + +#*****************************************************************************# +#* *# +#* Copyright (c) 2002, Peter Shannon *# +#* All rights reserved. *# +#* *# +#* Redistribution and use in source and binary forms, with or without *# +#* modification, are permitted provided that the following conditions *# +#* are met: *# +#* *# +#* * Redistributions of source code must retain the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer. *# +#* *# +#* * Redistributions in binary form must reproduce the above *# +#* copyright notice, this list of conditions and the following *# +#* disclaimer in the documentation and/or other materials *# +#* provided with the distribution. *# +#* *# +#* * The name of the contributors may be used to endorse or promote *# +#* products derived from this software without specific prior *# +#* written permission. *# +#* *# +#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *# +#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *# +#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *# +#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS *# +#* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *# +#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *# +#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, *# +#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY *# +#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *# +#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE *# +#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *# +#* *# +#*****************************************************************************# + +import unittest, POW.pkix, POW._oids, base64, sys, os, socket, time, types, string, StringIO, pprint + +if not os.path.isdir('working'): + os.mkdir('working') + +DEBUG = 0 + +o2i = POW.pkix.obj2oid + +def wo(mystring): + file = open('test.der', 'w') + file.write(mystring) + file.close() + +def checkValue(constructor, val1): + obj1 = constructor() + obj1.set(val1) + io = obj1.toString() + if DEBUG: + file = open('test.der', 'w') + obj1.write(file) + file.close() + + obj2 = constructor() + obj2.fromString(io) + val2 = obj2.get() + if val2 == val1: + return 1 + else: + if DEBUG: + print 'read result:', val2 + return 0 + +class DerEncodingTestCase(unittest.TestCase): + 'a small suite of tests for the most complex codings' + + def booleanTest(self): + 'test boolean support' + print + self.failUnless( checkValue(POW.pkix.Boolean, 1), 'true was not presereved correctly') + self.failUnless( checkValue(POW.pkix.Boolean, 0), 'false was not presereved correctly') + + def integerTest(self): + 'test integer support' + print + for i in range(-5000, 5000): + print 'checking codings for', i + self.failUnless( checkValue(POW.pkix.Integer, i), '%i was not presereved correctly' % i) + + def oidTest(self): + 'test oid support' + print + for oid in POW._oids.data.keys(): + print 'checking codings for', oid + self.failUnless( checkValue(POW.pkix.Oid, oid), '%s was not presereved correctly' % `oid`) + + def bitStringTest(self): + 'test bitstring support' + values = [ + (0,), (1,), (0,0), (0,1), (1,0), (1,1), (0,1,0,1,0), (0,0,0,0,0,0,0), + (1,1,1,1,1,1,1,), (0,0,0,0,0,0,0,0), (1,1,1,1,1,1,1,1), + (0,0,0,0,0,0,0,0,0), (1,1,1,1,1,1,1,1,1,) + ] + print + for val in values: + print 'checking codings for', val + self.failUnless( checkValue(POW.pkix.BitString, val), '%s was not presereved correctly' % `val`) + + +class ComplexDerTestCase(unittest.TestCase): + '''a suite of tests for testing encoding of defaults, optional, explicit, + implied and choice objects''' + + def emptySeqTest(self): + 'checking coding of empty sequence object' + seq = POW.pkix.Sequence([]) + try: + seq.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + self.failUnless(seq.toString() == '0\x00', 'empty sequence encoded incorrectly') + seq.fromString(seq.toString()) + self.failUnless(seq.get() == (), 'empty sequence decoded incorrectly') + self.failUnless(seq.toString() == '0\x00', 'empty sequence encoded incorrectly') + + def seqOfSimpleTest(self): + 'checking coding of basic sequence object' + seq = POW.pkix.Sequence([ POW.pkix.Integer(), POW.pkix.Boolean(), POW.pkix.T61String() ]) + try: + seq.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + values = (64, 1, 'Hello World') + seq.set( values ) + self.failUnless(seq.toString() == '0\x13\x02\x01@\x01\x01\xff\x14\x0bHello World', 'sequence of basic encoded incorrectly') + seq.fromString(seq.toString()) + self.failUnless(seq.get() == values, 'sequence of basic decoded incorrectly') + self.failUnless(seq.toString() == '0\x13\x02\x01@\x01\x01\xff\x14\x0bHello World', 'sequence of basic encoded incorrectly') + + def seqOfSeqTest(self): + 'checking coding of sequence of sequence object' + seqa = POW.pkix.Sequence([ POW.pkix.Integer(), POW.pkix.Boolean(), POW.pkix.T61String() ]) + seqb = POW.pkix.Sequence([ seqa, POW.pkix.Integer(), POW.pkix.Boolean() ]) + try: + seqb.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + values = ((64, 1, 'Hello World'), 128, 0) + seqb.set( values ) + self.failUnless(seqb.toString() == '0\x1c0\x13\x02\x01@\x01\x01\xff\x14\x0bHello World\x02\x02\x00\x80\x01\x01\x00', + 'sequence of sequence encoded incorrectly') + seqb.fromString(seqb.toString()) + self.failUnless(seqb.get() == values, 'sequence of sequence decoded incorrectly') + self.failUnless(seqb.toString() == '0\x1c0\x13\x02\x01@\x01\x01\xff\x14\x0bHello World\x02\x02\x00\x80\x01\x01\x00', + 'sequence of sequence encoded incorrectly') + + def seqOfSimpleWithOptionalTest(self): + 'checking coding of sequence of basic objects with optional object' + seq = POW.pkix.Sequence([ POW.pkix.Integer(1), POW.pkix.Boolean(), POW.pkix.T61String() ]) + try: + seq.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + values = (None, 1, 'Hello World') + seq.set(values) + self.failUnless(seq.toString() == '0\x10\x01\x01\xff\x14\x0bHello World', 'sequence of basic with optional encoded incorrectly') + seq.fromString(seq.toString()) + self.failUnless(seq.get() == values, 'sequence of basic with optional decoded incorrectly') + self.failUnless(seq.toString() == '0\x10\x01\x01\xff\x14\x0bHello World', 'sequence of basic with optional encoded incorrectly') + + def seqOfSimpleWithDefaultTest(self): + 'checking coding of sequence of basic objects with default object' + seq = POW.pkix.Sequence([ POW.pkix.Integer(), POW.pkix.Boolean(), POW.pkix.T61String(0, 'FAtIZWxsbyBXb3JsZA==\n') ]) + try: + seq.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + values = (32, 1, None) + seq.set( values ) + self.failUnless(seq.toString() == '0\x06\x02\x01 \x01\x01\xff', 'sequence of basic with default encoded incorrectly') + seq.fromString(seq.toString()) + self.failUnless(seq.get() == (32,1,'Hello World'), 'sequence of basic with default decoded incorrectly') + self.failUnless(seq.toString() == '0\x06\x02\x01 \x01\x01\xff', 'sequence of basic with default encoded incorrectly') + + def seqOfOptionalSeqTest(self): + 'checking coding of sequence of optional sequence object' + seq = POW.pkix.Sequence([ POW.pkix.Sequence([POW.pkix.Integer()],1) ]) + try: + seq.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + rep = seq.toString() + self.failUnless(seq.toString() == '0\x00', 'sequence of optional sequence encoded incorrectly') + seq.fromString('0\x00') + self.failUnless(seq.toString() == '0\x00', 'sequence of optional sequence encoded incorrectly') + values = ((64,),) + seq.set( values ) + self.failUnless(seq.toString() == '0\x050\x03\x02\x01@', 'sequence of set optional sequence encoded incorrectly') + seq.fromString(seq.toString()) + self.failUnless(seq.get() == values, 'sequence of set optional sequence decoded incorrectly') + + def seqOfPartiallySetOptionalSeqTest(self): + 'checking coding of sequence of optional sequence objects' + seq = POW.pkix.Sequence([ POW.pkix.Sequence([POW.pkix.Integer(), POW.pkix.Integer()],1) ]) + try: + seq.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(seq.toString() == '0\x00', 'sequence of optional sequence encoded incorrectly') + seq.fromString('0\x00') + self.failUnless(seq.toString() == '0\x00', 'sequence of optional sequence encoded incorrectly') + values = ((7,None),) + seq.set( values ) + self.failUnless(seq.toString() == '0\x00', 'sequence of set optional sequence encoded incorrectly') + seq.fromString(seq.toString()) + values = ((7,14),) + seq.set( values ) + self.failUnless(seq.toString() == '0\x080\x06\x02\x01\x07\x02\x01\x0e', 'sequence of set optional sequence encoded incorrectly') + seq.fromString('0\x080\x06\x02\x01\x07\x02\x01\x0e') + self.failUnless(seq.toString() == '0\x080\x06\x02\x01\x07\x02\x01\x0e', 'sequence of set optional sequence encoded incorrectly') + + + def defaultSeqTest(self): + 'checking coding of default sequence object' + seq = POW.pkix.Sequence([POW.pkix.Integer()], 0, 'MAMCAQc=\n') + try: + seq.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(seq.toString() == '', 'unset default sequence encoded incorrectly') + seq.fromString('') + self.failUnless(seq.toString() == '', 'unset default sequence encoded incorrectly') + values = (64,) + seq.set( values ) + self.failUnless(seq.toString() == '0\x03\x02\x01@', 'set default sequence encoded incorrectly') + seq.reset() + seq.fromString('0\x03\x02\x01@') + self.failUnless(seq.get() == (64,), 'set default sequence decoded incorrectly') + self.failUnless(seq.toString() == '0\x03\x02\x01@', 'set default sequence encoded incorrectly') + + def sequenceOfChoiceTest(self): + 'checking coding of sequence of choice objects' + Time = lambda : POW.pkix.Choice({ 'generalTime' : POW.pkix.GeneralizedTime(), + 'utcTime' : POW.pkix.UtcTime() }) + seq = POW.pkix.Sequence([Time(), Time()]) + try: + seq.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + now = POW.pkix.time2gen(1031669280.1208529) + then = POW.pkix.time2gen(1031669280.1208529 + 60*60*24*365*12) + seq.set( (('generalTime',now),('generalTime',then)) ) + self.failUnless(seq.get() == (('generalTime', '20020910144800Z'), ('generalTime', '20140907144800Z')), + 'sequence of choice encoded incorrectly') + self.failUnless(seq.toString() == '0"\x18\x0f20020910144800Z\x18\x0f20140907144800Z', + 'sequence of choice encoded incorrectly') + self.failUnless(seq.get() == (('generalTime', '20020910144800Z'), ('generalTime', '20140907144800Z')), + 'sequence of choice decoded incorrectly') + + + def seqOfDefaultSeqTest(self): + 'checking coding of sequence of default sequence object' + seq = POW.pkix.Sequence([ POW.pkix.Sequence([POW.pkix.Integer()], 0, 'MAMCAQc=\n') ] ) + try: + seq.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(seq.toString() == '0\x00', 'unset sequence of default sequence encoded incorrectly') + seq.fromString('0\x00') + values = ((128,),) + seq.set( values ) + self.failUnless(seq.toString() == '0\x060\x04\x02\x02\x00\x80', 'set sequence of default sequence encoded incorrectly') + seq.fromString(seq.toString()) + self.failUnless(seq.toString() == '0\x060\x04\x02\x02\x00\x80', 'set sequence of default sequence encoded incorrectly') + self.failUnless(seq.get() == ((128,),), 'set sequence of default sequence decoded incorrectly') + seq.reset() + seq.fromString('0\x00') + self.failUnless(seq.get() == ((7,),), 'default of sequence of default sequence decoded incorrectly') + + def sequenceOfSimpleTest(self): + 'checking coding of basic and empty sequenceOf object' + sqo = POW.pkix.SequenceOf(POW.pkix.Integer) + derval = sqo.toString() + self.failUnless(sqo.toString() == '0\x00', 'empty sequenceOf encoded incorrectly') + sqo.fromString('0\x00') + self.failUnless(sqo.toString() == '0\x00', 'empty sequenceOf encoded incorrectly') + sqo.set( (1,2,3,4) ) + sqo.fromString(derval) + self.failUnless(sqo.get() == (), 'empty sequenceOf decoded incorrectly') + sqo.set( (1,2,3,4) ) + self.failUnless(sqo.toString() == '0\x0c\x02\x01\x01\x02\x01\x02\x02\x01\x03\x02\x01\x04', 'populated sequenceOf encoded incorrectly') + sqo.reset() + sqo.fromString('0\x0c\x02\x01\x01\x02\x01\x02\x02\x01\x03\x02\x01\x04') + self.failUnless(sqo.toString() == '0\x0c\x02\x01\x01\x02\x01\x02\x02\x01\x03\x02\x01\x04', 'populated sequenceOf encoded incorrectly') + self.failUnless(sqo.get() == (1,2,3,4), 'populated sequenceOf decoded incorrectly') + + def defaultSequenceOfTest(self): + 'checking coding of default sequenceOf object' + sqo = POW.pkix.SequenceOf(POW.pkix.Integer,0,'MAwCAQECAQICAQMCAQQ=\n') + try: + sqo.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(sqo.toString() == '', 'unset default sequenceOf encoded incorrectly') + sqo.set(()) + sqo.fromString('') + self.failUnless(sqo.toString() == '', 'unset default sequenceOf encoded incorrectly') + sqo.fromString(sqo.toString()) + self.failUnless(sqo.get() == (1,2,3,4), 'default sequenceOf decoded incorrectly') + sqo.set((24,48) ) + self.failUnless(sqo.toString() == '0\x06\x02\x01\x18\x02\x010', 'populated default sequenceOf encoded incorrectly') + sqo.reset() + sqo.fromString('0\x06\x02\x01\x18\x02\x010') + self.failUnless(sqo.get() == (24,48), 'populated default sequenceOf decoded incorrectly') + self.failUnless(sqo.toString() == '0\x06\x02\x01\x18\x02\x010', 'populated default sequenceOf encoded incorrectly') + + def sequenceOfDefaultSequenceOfTest(self): + 'checking coding of sequence of default sequenceOf object' + seq = POW.pkix.Sequence([ POW.pkix.SequenceOf(POW.pkix.Integer,0,'MAwCAQECAQICAQMCAQQ=\n') ]) + try: + seq.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(seq.toString() == '0\x00', 'unset sequence of default sequenceOf encoded incorrectly') + derval = seq.toString() + seq.set( ((),) ) + seq.fromString(derval) + self.failUnless(seq.get() == ((1,2,3,4),), 'sequence of default sequenceOf decoded incorrectly') + seq.set( ((24,48),) ) + self.failUnless(seq.toString() == '0\x080\x06\x02\x01\x18\x02\x010', 'populated sequence of default sequenceOf encoded incorrectly') + seq.reset() + seq.fromString('0\x080\x06\x02\x01\x18\x02\x010') + self.failUnless(seq.get() == ((24,48),), 'populated sequence of default sequenceOf decoded incorrectly') + self.failUnless(seq.toString() == '0\x080\x06\x02\x01\x18\x02\x010', 'populated sequence of default sequenceOf encoded incorrectly') + + def optionalSequenceOfTest(self): + 'checking coding of optional sequenceOf object' + sqo = POW.pkix.SequenceOf(POW.pkix.Integer,1) + try: + sqo.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(sqo.toString() == '', 'unset optional sequenceOf encoded incorrectly') + sqo.set((24,48) ) + self.failUnless(sqo.toString() == '0\x06\x02\x01\x18\x02\x010', 'set optional sequenceOf encoded incorrectly') + sqo.reset() + sqo.fromString('0\x06\x02\x01\x18\x02\x010') + self.failUnless(sqo.get() == (24,48), 'set optional sequenceOf decoded incorrectly') + self.failUnless(sqo.toString() == '0\x06\x02\x01\x18\x02\x010', 'set optional sequenceOf encoded incorrectly') + + def sequenceOfOptionalSequenceOfTest(self): + 'checking coding of sequence of optional sequenceOf object' + seq = POW.pkix.Sequence([ POW.pkix.SequenceOf(POW.pkix.Integer,1) ]) + try: + seq.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(seq.toString() == '0\x00', 'unset sequence of optional sequenceOf encoded incorrectly') + seq.set( ((1,2,3,4),) ) + self.failUnless(seq.toString() == '0\x0e0\x0c\x02\x01\x01\x02\x01\x02\x02\x01\x03\x02\x01\x04', + 'populated sequence of optional sequenceOf encoded incorrectly') + seq.reset() + seq.fromString('0\x0e0\x0c\x02\x01\x01\x02\x01\x02\x02\x01\x03\x02\x01\x04') + self.failUnless(seq.get() == ((1,2,3,4),), 'populated sequence of optional sequenceOf decoded incorrectly') + + def basicExplicitTest(self): + 'checking coding of basic explicit object' + exp = POW.pkix.Explicit( POW.pkix.CLASS_CONTEXT, POW.pkix.FORM_CONSTRUCTED, 0, POW.pkix.Integer() ) + try: + exp.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + exp.set(1) + self.failUnless(exp.toString() == '\xa0\x03\x02\x01\x01', 'set explicit integer encoded incorrectly') + exp.reset() + exp.fromString('\xa0\x03\x02\x01\x01') + self.failUnless(exp.toString() == '\xa0\x03\x02\x01\x01', 'set explicit integer encoded incorrectly') + self.failUnless(exp.get() == 1, 'set explicit integer decoded incorrectly') + + def defaultExplicitTest(self): + 'checking coding of default explicit object' + exp = POW.pkix.Explicit( POW.pkix.CLASS_CONTEXT, POW.pkix.FORM_CONSTRUCTED, 0, POW.pkix.Integer(), 0, 'oAMCAQE=\n' ) + try: + exp.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(exp.toString() == '', 'unset default epxlicit integer encoded incorrectly') + exp.set(14) + self.failUnless(exp.toString() == '\xa0\x03\x02\x01\x0e', 'set explicit integer encoded incorrectly') + exp.reset() + exp.fromString('\xa0\x03\x02\x01\x0e') + self.failUnless(exp.get() == 14, 'set explicit integer decoded incorrectly') + self.failUnless(exp.toString() == '\xa0\x03\x02\x01\x0e', 'set explicit integer encoded incorrectly') + + def optionalExplicitTest(self): + 'checking coding of optional explicit object' + exp = POW.pkix.Explicit( POW.pkix.CLASS_CONTEXT, POW.pkix.FORM_CONSTRUCTED, 0, POW.pkix.Integer(), 1 ) + try: + exp.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(exp.toString() == '', 'unset default epxlicit integer encoded incorrectly') + exp.set(14) + self.failUnless(exp.toString() == '\xa0\x03\x02\x01\x0e', 'set explicit integer encoded incorrectly') + exp.reset() + exp.fromString('\xa0\x03\x02\x01\x0e') + self.failUnless(exp.get() == 14, 'set explicit integer decoded incorrectly') + self.failUnless(exp.toString() == '\xa0\x03\x02\x01\x0e', 'set explicit integer encoded incorrectly') + + def basicChoiceTest(self): + 'checking coding of basic choice object' + chint = POW.pkix.Integer() + chstring = POW.pkix.OctetString() + chbool = POW.pkix.Boolean() + choices = { 'i' : chint, + 's' : chstring, + 'b' : chbool } + + ch = POW.pkix.Choice(choices) + try: + ch.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + ch.set(('i',7)) + self.failUnless(ch.toString() == '\x02\x01\x07', 'set integer choice encoded incorrectly') + ch.set(('s','Hello World')) + self.failUnless(ch.toString() == '\x04\x0bHello World', 'set octet string choice encoded incorrectly') + ch.set(('b',1)) + self.failUnless(ch.toString() == '\x01\x01\xff', 'set boolean choice encoded incorrectly') + + ch.fromString('\x02\x01\x07') + self.failUnless(ch.get() == ('i',7), 'set integer choice decoded incorrectly') + ch.fromString('\x04\x0bHello World') + self.failUnless(ch.get() == ('s','Hello World'), 'set octet string choice decoded incorrectly') + ch.fromString('\x01\x01\xff') + self.failUnless(ch.get() == ('b',1), 'set integer boolean decoded incorrectly') + + def defaultChoiceTest(self): + 'checking coding of default choice object' + chint = POW.pkix.Integer() + chstring = POW.pkix.OctetString() + chbool = POW.pkix.Boolean() + choices = { 'i' : chint, + 's' : chstring, + 'b' : chbool } + + ch = POW.pkix.Choice(choices,0,'AQH/\n') + try: + ch.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(ch.toString() == '', 'unset default choice encoded incorrectly') + ch.set(('i',7)) + self.failUnless(ch.toString() == '\x02\x01\x07', 'set integer choice encoded incorrectly') + ch.set(('s','Hello World')) + self.failUnless(ch.toString() == '\x04\x0bHello World', 'set octet string choice encoded incorrectly') + + ch.fromString('\x02\x01\x07') + self.failUnless(ch.get() == ('i',7), 'set integer choice decoded incorrectly') + ch.fromString('\x04\x0bHello World') + self.failUnless(ch.get() == ('s','Hello World'), 'set octet string choice decoded incorrectly') + ch.fromString('') + self.failUnless(ch.get() == ('b',1), 'set integer boolean decoded incorrectly') + + def optionalChoiceTest(self): + 'checking coding of optional choice object' + chint = POW.pkix.Integer() + chstring = POW.pkix.OctetString() + chbool = POW.pkix.Boolean() + choices = { 'i' : chint, + 's' : chstring, + 'b' : chbool } + + ch = POW.pkix.Choice(choices,1) + try: + ch.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(ch.toString() == '', 'unset choice encoded incorrectly') + ch.set(('i',7)) + self.failUnless(ch.toString() == '\x02\x01\x07', 'set integer choice encoded incorrectly') + ch.set(('s','Hello World')) + self.failUnless(ch.toString() == '\x04\x0bHello World', 'set octet string choice encoded incorrectly') + ch.set(('b',1)) + self.failUnless(ch.toString() == '\x01\x01\xff', 'set boolean choice encoded incorrectly') + + ch.fromString('') + self.failUnless(ch.get() == None, 'unset choice decoded incorrectly') + ch.fromString('\x02\x01\x07') + self.failUnless(ch.get() == ('i',7), 'set integer choice decoded incorrectly') + ch.fromString('\x04\x0bHello World') + self.failUnless(ch.get() == ('s','Hello World'), 'set octet string choice decoded incorrectly') + ch.fromString('\x01\x01\xff') + self.failUnless(ch.get() == ('b',1), 'set integer boolean decoded incorrectly') + + def choiceWithDefaultElementTest(self): + 'checking coding of choice object with default choice' + chint = POW.pkix.Integer() + chstring = POW.pkix.OctetString(0,'BAtIZWxsbyBXb3JsZA==\n') + chbool = POW.pkix.Boolean() + choices = { 'i' : chint, + 's' : chstring, + 'b' : chbool } + + ch = POW.pkix.Choice(choices) + try: + ch.toString() + except: + self.fail('attempting to write this should not have raised and exception') + pass + self.failUnless(ch.get() == ('s','Hello World'), 'set octet string choice decoded incorrectly') + ch.set(('i',7)) + self.failUnless(ch.toString() == '\x02\x01\x07', 'set integer choice encoded incorrectly') + ch.set(('s','Hello World')) + self.failUnless(ch.toString() == '', 'set octet string choice encoded incorrectly') + ch.set(('b',1)) + self.failUnless(ch.toString() == '\x01\x01\xff', 'set boolean choice encoded incorrectly') + + ch.fromString('\x02\x01\x07') + self.failUnless(ch.get() == ('i',7), 'set integer choice decoded incorrectly') + ch.fromString('\x04\x0bHello World') + self.failUnless(ch.get() == ('s','Hello World'), 'set octet string choice decoded incorrectly') + ch.fromString('\x01\x01\xff') + self.failUnless(ch.get() == ('b',1), 'set integer boolean decoded incorrectly') + +class PkixTestCase(unittest.TestCase): + 'a set of tests to check codings of x509v3 objects' + + def confirmvalues(self, os, ns): + for i in range( len(os) ): + if os[i] != ns[i]: + sys.stderr.write( '%i is faulty!\n' % i ) + sys.stderr.write( `os[i]`+'\n' ) + sys.stderr.write( `ns[i]`+'\n' ) + if isinstance(os[i], types.TupleType): + self.confvalue(os[i], ns[i]) + else: + print '%i is ok!' % i + + def validityTest(self): + 'checking coding of validity object' + v = POW.pkix.Validity() + try: + v.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + now = POW.pkix.time2gen(1031669280.1208529) + v.set( (('generalTime', now),('generalTime', now)) ) + self.failUnless(v.toString() == '0"\x18\x0f20020910144800Z\x18\x0f20020910144800Z', 'set validity encoded incorrectly') + v.fromString('0"\x18\x0f20020910144800Z\x18\x0f20020910144800Z') + self.failUnless(v.get() == (('generalTime', now), ('generalTime', now)), 'set validity encoded incorrectly') + self.failUnless(v.toString() == '0"\x18\x0f20020910144800Z\x18\x0f20020910144800Z', 'set validity encoded incorrectly') + + now = POW.pkix.time2utc(1031669280.1208529) + v.set( (('utcTime', now),('utcTime', now)) ) + self.failUnless(v.toString() == '0\x1e\x17\r020910144800Z\x17\r020910144800Z', 'set validity encoded incorrectly') + v.fromString('0\x1e\x17\r020910144800Z\x17\r020910144800Z') + self.failUnless(v.get() == (('utcTime', now), ('utcTime', now)), 'set validity encoded incorrectly') + self.failUnless(v.toString() == '0\x1e\x17\r020910144800Z\x17\r020910144800Z', 'set validity encoded incorrectly') + + def directoryStringTest(self): + 'checking coding of directoryString object' + d = POW.pkix.DirectoryString() + try: + d.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + + d.set( ('teletexString', 'Hello World') ) + derval = '\x14\x0bHello World' + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + d.fromString(derval) + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + self.failUnless(d.get() == ('teletexString', 'Hello World'), 'set directoryString encoded incorrectly') + + d.set( ('printableString', 'Hello World') ) + derval = '\x13\x0bHello World' + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + d.fromString(derval) + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + self.failUnless(d.get() == ('printableString', 'Hello World'), 'set directoryString encoded incorrectly') + + d.set( ('universalString', 'Hello World') ) + derval = '\x1c\x0bHello World' + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + d.fromString(derval) + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + self.failUnless(d.get() == ('universalString', 'Hello World'), 'set directoryString encoded incorrectly') + + d.set( ('bmpString', 'Hello World') ) + derval = '\x1e\x0bHello World' + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + d.fromString(derval) + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + self.failUnless(d.get() == ('bmpString', 'Hello World'), 'set directoryString encoded incorrectly') + + d.set( ('utf8String', 'Hello World') ) + derval = '\x0c\x0bHello World' + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + d.fromString(derval) + self.failUnless(d.toString() == derval, 'set directoryString encoded incorrectly') + self.failUnless(d.get() == ('utf8String', 'Hello World'), 'set directoryString encoded incorrectly') + + def attributeTypeAndValueTest(self): + 'checking coding of attributeTypeAndValueTest object' + av = POW.pkix.AttributeTypeAndValue() + try: + av.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + av.set( (o2i('commonName'), None ) ) + try: + av.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + av.set( (o2i('commonName'), ('utf8String', None) ) ) + try: + av.toString() + self.fail('attempting to write this should have raised and exception') + except: + pass + + av.set( (o2i('commonName'), ('utf8String', u'Peter Shannon') ) ) + derval = '0\x14\x06\x03U\x04\x03\x0c\rPeter Shannon' + self.failUnless(av.toString() == derval, 'set attributeTypeAndValue encoded incorrectly') + av.fromString(derval) + self.failUnless(av.toString() == derval, 'set attributeTypeAndValue encoded incorrectly') + self.failUnless(av.get() == (o2i('commonName'), ('utf8String', u'Peter Shannon')), 'set attributeTypeAndValue encoded incorrectly') + + + def x509v2Test(self): + 'checking coding of x509v2 object' + cipher = ciphers.getCipher('client') + rsa = cipher[1] + + old = POW.pkix.Certificate() + old.setVersion(1) + old.setSerial(5) + + name = ( (( o2i('countryName'), ('printableString', 'GB') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Hertfordshire') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Client') ),) ) + + old.setIssuer(name) + old.setSubject(name) + + now = ('generalTime', POW.pkix.time2gen( time.time() ) ) + then = ('generalTime', POW.pkix.time2gen(time.time() + 60*60*24*365*12) ) + old.setNotBefore(now) + old.setNotAfter(then) + old.setIssuerUniqueID((1,0,1,0)) + old.setSubjectUniqueID((1,0,0,1)) + old.sign(rsa, POW.MD5_DIGEST) + + new = POW.pkix.Certificate() + new.fromString( old.toString() ) + self.failUnless( new.getVersion() == 1, 'version was not presereved correctly') + self.failUnless( new.getSerial() == 5, 'serial was not presereved correctly') + self.failUnless( new.getNotBefore() == now, 'notBefore was not presereved correctly') + self.failUnless( new.getNotAfter() == then, 'notAfter was not presereved correctly') + self.failUnless( new.getIssuer() == name, 'issuerName was not presereved correctly') + self.failUnless( new.getSubject() == name, 'subjectName was not presereved correctly') + self.failUnless( new.getIssuerUniqueID() == (1,0,1,0), 'issuerUniqueId was not presereved correctly') + self.failUnless( new.getSubjectUniqueID() == (1,0,0,1), 'subjectUniqueId was not presereved correctly') + self.failUnless( new.verify(rsa), 'signed text was not verified') + +# os = old.get() +# ns = new.get() +# self.confirmvalues(os,ns) + + + def x509v3Test(self): + 'checking coding of x509v3 object' + + now = POW.pkix.time2gen( time.time() ) + then = POW.pkix.time2gen(time.time() + 60*60*24*365*12) + cipher = ciphers.getCipher('client') + rsa = cipher[1] + + policy = ( + ( o2i('id-cti-ets-proofOfReceipt'), ( + (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/policy1')), + (o2i('unotice'), ('userNotice', ((('visibleString', 'The House'),(1,2,3)), ('visibleString', 'We guarentee nothing')) )), + )), + ( o2i('id-cti-ets-proofOfOrigin'), ( + (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/policy2')), + )) + ) + + n1 = ('directoryName', ( (( o2i('countryName'), ('printableString', 'UK') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) ) + + n2 = ('rfc822Name', 'peter_shannon@yahoo.com') + n3 = ('uri', 'http://www.p-s.org.uk') + n4 = ('iPAddress', POW.pkix.ip42oct(192,168,100,51)) + + points = ( ( ('fullName',(n1, n4)), (1,1,1,1,1), (n1,) ), ) + + authdigest = POW.Digest( POW.SHA1_DIGEST ) + authdigest.update(rsa.derWrite(POW.RSA_PUBLIC_KEY)) + keyHash = authdigest.digest() + + myExtensions = ( + ( o2i('privateKeyUsagePeriod'),0, (now, then)), + ( o2i('keyUsage'),0, (1,1)), + ( o2i('basicConstraints'),0, (0,None)), + ( o2i('subjectKeyIdentifier'),0, keyHash), + ( o2i('certificatePolicies'),0, policy ), + ( o2i('subjectAltName'),0, (n2,)), + ( o2i('issuerAltName'),0, (n1,n2,n3,n4)), + ( o2i('authorityKeyIdentifier'),0, (keyHash, (), None) ), + ( o2i('cRLDistributionPoints'),0, points ), + ) + + old = POW.pkix.Certificate() + old.setVersion(2) + old.setSerial(5) + + name = ( + (( o2i('commonName'), ('printableString', 'Peter Shannon') ),), + ) + + old.setIssuer(name) + old.setSubject(name) + + old.setNotBefore( ('generalTime', now) ) + old.setNotAfter( ( 'generalTime', then) ) + + old.setExtensions( myExtensions ) + old.sign(rsa, POW.MD5_DIGEST) + + new = POW.pkix.Certificate() + new.fromString( old.toString() ) + + extns = new.getExtensions() + +# ns = new.getExtensions() +# self.confirmvalues(myExtensions,ns) + + self.failUnless( new.getVersion() == 2, 'version was not presereved correctly') + self.failUnless( new.getSerial() == 5, 'serial was not presereved correctly') + self.failUnless( new.getIssuer() == name, 'issuerName was not presereved correctly') + self.failUnless( new.getSubject() == name, 'subjectName was not presereved correctly') + self.failUnless( new.getNotBefore()[1] == now, 'notBefore was not presereved correctly') + self.failUnless( new.getNotAfter()[1] == then, 'notAfter was not presereved correctly') + self.failUnless( new.getExtensions() == myExtensions, 'extensions were not presereved correctly') + self.failUnless( new.verify(rsa), 'signed text was not verified') + + def basicConstraintsTest(self): + 'checking coding of basicConstraints' + for val in [(0,0),(0,None), (1,None), (0,1),(0,2),(1,0),(1,1),(1,2)]: + self.failUnless( checkValue(POW.pkix.BasicConstraints, val), '%s was not presereved correctly' % `val`) + + def generalNameTest(self): + 'checking coding of subjectAltName' + values = [ + (('directoryName', ( (( o2i('countryName'), ('printableString', 'UK') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Shannon Works') ),), ) + ),), + (('rfc822Name', 'peter_shannon@yahoo.com'),), + (('uri', 'http://www.p-s.org.uk'),), + (('iPAddress', POW.pkix.ip42oct(192,168,100,51)),), + (('registeredId', o2i('countryName')),), + (), + ] + for val in values: + self.failUnless( checkValue(POW.pkix.GeneralNames, val), '%s was not presereved correctly' % `val`) + + def crlv1Test(self): + 'checking coding of CRLv1 object' + now = POW.pkix.time2gen( time.time() ) + then = POW.pkix.time2gen(time.time() + 60*60*24*365*12) + cipher = ciphers.getCipher('client') + rsa = cipher[1] + + old = POW.pkix.CertificateList() + old.setThisUpdate( ('generalTime', now ) ) + + name = ( (( o2i('countryName'), ('printableString', 'GB') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Hertfordshire') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Client') ),) ) + + myRevocations = ( + (1, ('generalTime', now), ()), + (2, ('generalTime', now), ()), + (3, ('generalTime', now), (( o2i('cRLReason'), 0, 1),)) + ) + + old.setIssuer(name) + old.setRevokedCertificates( myRevocations ) + + old.sign(rsa, POW.MD5_DIGEST) + + new = POW.pkix.CertificateList() + new.fromString( old.toString() ) + self.failUnless( new.getVersion() == None, 'version was not presereved correctly') + self.failUnless( new.getThisUpdate()[1] == now, 'thisUpdate was not presereved correctly') + self.failUnless( new.getIssuer() == name, 'issuerName was not presereved correctly') + self.failUnless( new.getRevokedCertificates() == myRevocations, 'revokedCerticates was not presereved correctly') + self.failUnless( new.verify(rsa), 'signed envelope was not presereved correctly') + + +class ExtensionsTestCase(unittest.TestCase): + 'Extentions Tests' + + def extensionManipulationTest(self): + 'Extensions manipulation for X509 object tests' + sc = certs.getCert('server') + basic = POW.pkix.BasicConstraints() + basic.set([1,5]) + sc.addExtension( 'basicConstraints', 0, basic.toString() ) + sc.addExtension( 'basicConstraints', 0, basic.toString() ) + sc.addExtension( 'basicConstraints', 0, basic.toString() ) + self.failUnless( sc.countExtensions() == 3, 'cert should have 3 any extensions') + sc.clearExtensions() + self.failUnless( sc.countExtensions() == 0, 'cert should not have any extensions') + sc.addExtension( 'basicConstraints', 0, basic.toString() ) + basic.set([0,1]) + sc.addExtension( 'basicConstraints', 0, basic.toString() ) + basic = POW.pkix.BasicConstraints() + basic.fromString( sc.getExtension(1)[2] ) + self.failUnless( basic.get() == (0,1), 'incorrect extension handling ') + + def basicConstraintTest(self): + 'Basic constraints tests' + serverCert = certs.getCert('server') + basic = POW.pkix.BasicConstraints() + basic.set([1,5]) + serverCert.addExtension( 'basicConstraints', 0, basic.toString() ) + basic = POW.pkix.BasicConstraints() + basic.fromString( serverCert.getExtension(0)[2] ) + values = basic.get() + self.failUnless( values[0] == 1, 'ca value should be true') + self.failUnless( values[1] == 5, 'pathlen values should be 5') + + def privateKeyUsagePeriodTest(self): + 'Private key usage period tests' + serverCert = certs.getCert('server') + period = POW.pkix.PrivateKeyUsagePeriod() + t1 = POW.pkix.time2gen( time.time() ) + t2 = POW.pkix.time2gen(time.time() + 60*60*24*365 ) + period.set([t1,t2]) + serverCert.addExtension( 'privateKeyUsagePeriod', 0, period.toString() ) + period = POW.pkix.PrivateKeyUsagePeriod() + period.fromString( serverCert.getExtension(0)[2] ) + values = period.get() + self.failUnless( values == (t1,t2), 'private key usage period is incorrect') + + def keyUsageTest(self): + 'privateKeyUsage tests' + serverCert = certs.getCert('server') + usage = POW.pkix.KeyUsage() + usage.set([1,1]) + serverCert.addExtension( 'keyUsage', 0, usage.toString() ) + usage = POW.pkix.KeyUsage() + usage.fromString( serverCert.getExtension(0)[2] ) + values = usage.get() + self.failUnless( values == (1,1), 'bit pattern is incorrect') + + def issuerAltNameTest(self): + 'Issuer Alt Name tests' + n1 = ('directoryName', ( (( o2i('countryName'), ('printableString', 'UK') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) ) + + n2 = ('rfc822Name', 'peter_shannon@yahoo.com') + n3 = ('uri', 'http://www.p-s.org.uk') + n4 = ('iPAddress', POW.pkix.ip42oct(192,168,100,51)) + + serverCert = certs.getCert('server') + issuer = POW.pkix.IssuerAltName() + issuer.set([n1,n2,n3,n4]) + serverCert.addExtension( 'issuerAltName', 0, issuer.toString() ) + issuer = POW.pkix.IssuerAltName() + issuer.fromString( serverCert.getExtension(0)[2] ) + values = issuer.get() + self.failUnless( values == (n1,n2,n3,n4), 'generalNames are incorrect') + + def subjectAltNameTest(self): + 'Subject Alt Name tests' + n1 = ('directoryName', ( (( o2i('countryName'), ('printableString', 'UK') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) ) + + n2 = ('rfc822Name', 'peter_shannon@yahoo.com') + n3 = ('uri', 'http://www.p-s.org.uk') + n4 = ('iPAddress', POW.pkix.ip42oct(192,168,100,51)) + + serverCert = certs.getCert('server') + subject = POW.pkix.SubjectAltName() + subject.set([n1,n2,n3,n4]) + serverCert.addExtension( 'subjectAltName', 0, subject.toString() ) + subject = POW.pkix.SubjectAltName() + subject.fromString( serverCert.getExtension(0)[2] ) + values = subject.get() + self.failUnless( values == (n1,n2,n3,n4), 'generalNames are incorrect') + + + def certPolicyTest(self): + 'Certificate Policies tests' + policies=( + ( o2i('id-cti-ets-proofOfReceipt'), ( + (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/ps1')), + (o2i('unotice'), ('userNotice', ((('visibleString', 'The House'),(1,2,3)), ('visibleString', 'We guarentee nothing')) )), + )), + ( o2i('id-cti-ets-proofOfOrigin'), ( + (o2i('cps'), ('cPSuri', 'http://www.p-s.org.uk/policies/p2')), + )) + ) + + serverCert = certs.getCert('server') + policy = POW.pkix.CertificatePolicies() + policy.set(policies) + serverCert.addExtension( 'certificatePolicies', 0, policy.toString() ) + policy = POW.pkix.CertificatePolicies() + policy.fromString( serverCert.getExtension(0)[2] ) + values = policy.get() + self.failUnless( values == policies, 'policies are incorrect') + + + +#--------------- Hash test case ---------------# + +class HashTestCase(unittest.TestCase): + 'Hash algorithm tests' + + plainText = 'My extremely silly pass phrase!' + + def _symmetricGeneralTest(self, type, expected=None): + digest = POW.Digest( type ) + digest.update( self.plainText ) + b64Text = base64.encodestring( digest.digest() ) + self.failUnlessEqual( b64Text, expected, 'Digest result incorrect' ) + + def testMd2(self): + 'Generate and check MD2 hash' + self._symmetricGeneralTest( POW.MD2_DIGEST, 'O9VUpKqYAHkCgPyAkclL8g==\n' ) + + def testMd5(self): + 'Generate and check MD5 hash' + self._symmetricGeneralTest( POW.MD5_DIGEST, 'kzb1VPPjrYNNA0gwsoKsQw==\n' ) + + def testSha(self): + 'Generate and check SHA hash' + self._symmetricGeneralTest( POW.SHA_DIGEST, 'ptkIj1ilu9oFTFbP3A6o3KuJL+Q=\n') + + def testSha1(self): + 'Generate and check SHA1 hash' + self._symmetricGeneralTest( POW.SHA1_DIGEST, '7zk06ujVcAWhzREYzY4s4lCw4WQ=\n' ) + + def testRipemd160(self): + 'Generate and check RIPEMD160 hash' + self._symmetricGeneralTest( POW.RIPEMD160_DIGEST, 'R+ve9PdUxqr45duMhG8CBQiahkU=\n' ) + +#--------------- Hash test case ---------------# +#--------------- Hmac test case ---------------# + +class HmacTestCase(unittest.TestCase): + 'HMAC algorithm tests' + + plainText = 'My extremely silly pass phrase!' + password = 'Puny pass word' + + def _symmetricGeneralTest(self, type, expected=None): + hmac = POW.Hmac( type, self.password ) + hmac.update( self.plainText ) + b64Text = base64.encodestring( hmac.mac() ) + self.failUnlessEqual( b64Text, expected, 'HMAC result incorrect' ) + + def testHmacMd2(self): + 'Generate and check MD2 HMAC' + self._symmetricGeneralTest( POW.MD2_DIGEST, 'UgWmfru6kM68GFn3HMmbeg==\n' ) + + def testHmacMd5(self): + 'Generate and check MD5 HMAC' + self._symmetricGeneralTest( POW.MD5_DIGEST, '+l1oP2UbL0dW7L51lw2LSg==\n' ) + + def testHmacSha(self): + 'Generate and check SHA HMAC' + self._symmetricGeneralTest( POW.SHA_DIGEST, 'xuLEZcpj96p2Uo0/Ief1zjUdJdM=\n') + + def testHmacSha1(self): + 'Generate and check SHA1 HMAC' + self._symmetricGeneralTest( POW.SHA1_DIGEST, 'nnT7qPYMHjJ46JXQWmR/Ap0XK2E=\n' ) + + def testHmacRipemd160(self): + 'Generate and check RIPEMD160 HMAC' + self._symmetricGeneralTest( POW.RIPEMD160_DIGEST, 'AeSjVffp5FPIBBtabpD/nwVDz/s=\n' ) + +#--------------- Hmac test case ---------------# +#--------------- Symmetric cipher test case ---------------# + +class SymmetricTestCase(unittest.TestCase): + 'Symmetric algorithm tests' + + password = 'Hello :)' + + plainText = ''' +# Basic system aliases that MUST be present. +postmaster: root +mailer-daemon: postmaster + +# amavis +virusalert: root + +# General redirections for pseudo accounts in /etc/passwd. +administrator: root +daemon: root +lp: root +news: root +uucp: root +games: root +man: root +at: root +postgres: root +mdom: root +amanda: root +ftp: root +wwwrun: root +squid: root +msql: root +gnats: root +nobody: root +''' + + plainText = 'Hello World' + + def _symmetricGeneralTest(self, type): + symmetric = POW.Symmetric( type ) + symmetric.encryptInit( self.password ) + cipherText = symmetric.update( self.plainText ) + symmetric.final() + symmetric.decryptInit( self.password ) + decipheredText = symmetric.update( cipherText ) + symmetric.final() + self.failUnlessEqual( self.plainText, decipheredText, 'decrypted cipher text not equal to original text' ) + + def testDES_ECB(self): + 'Generate and check DES_ECB encrypted text' + self._symmetricGeneralTest( POW.DES_ECB ) + + def testDES_EDE(self): + 'Generate and check DES_EDE encrypted text' + self._symmetricGeneralTest( POW.DES_EDE ) + + def testDES_EDE3(self): + 'Generate and check DES_EDE3 encrypted text' + self._symmetricGeneralTest( POW.DES_EDE3 ) + + def testDES_CFB(self): + 'Generate and check DES_CFB encrypted text' + self._symmetricGeneralTest( POW.DES_ECB ) + + def testDES_EDE_CFB(self): + 'Generate and check DES_EDE_CFB encrypted text' + self._symmetricGeneralTest( POW.DES_EDE_CFB ) + + def testDES_EDE3_CFB(self): + 'Generate and check DES_EDE3_CFB encrypted text' + self._symmetricGeneralTest( POW.DES_EDE3_CFB ) + + def testDES_OFB(self): + 'Generate and check DES_OFB encrypted text' + self._symmetricGeneralTest( POW.DES_OFB ) + + def testDES_EDE_OFB(self): + 'Generate and check DES_EDE_OFB encrypted text' + self._symmetricGeneralTest( POW.DES_EDE_OFB ) + + def testDES_EDE3_OFB(self): + 'Generate and check DES_EDE3_OFB encrypted text' + self._symmetricGeneralTest( POW.DES_EDE3_OFB ) + + def testDES_CBC(self): + 'Generate and check DES_CBC encrypted text' + self._symmetricGeneralTest( POW.DES_CBC ) + + def testDES_EDE_CBC(self): + 'Generate and check DES_EDE_CBC encrypted text' + self._symmetricGeneralTest( POW.DES_EDE_CBC ) + + def testDES_EDE3_CBC(self): + 'Generate and check DES_EDE3_CBC encrypted text' + self._symmetricGeneralTest( POW.DES_EDE3_CBC ) + + def testDESX_CBC(self): + 'Generate and check DESX_CBC encrypted text' + self._symmetricGeneralTest( POW.DESX_CBC ) + + def testRC4(self): + 'Generate and check RC4 encrypted text' + self._symmetricGeneralTest( POW.RC4 ) + + def testRC4_40(self): + 'Generate and check RC4_40 encrypted text' + self._symmetricGeneralTest( POW.DES_EDE3_CBC ) + + def testIDEA_ECB(self): + 'Generate and check IDEA_ECB encrypted text' + self._symmetricGeneralTest( POW.IDEA_ECB ) + + def testIDEA_CFB(self): + 'Generate and check IDEA_CFB encrypted text' + self._symmetricGeneralTest( POW.IDEA_CFB ) + + def testIDEA_OFB(self): + 'Generate and check IDEA_OFB encrypted text' + self._symmetricGeneralTest( POW.IDEA_OFB ) + + def testIDEA_CBC(self): + 'Generate and check IDEA_CBC encrypted text' + self._symmetricGeneralTest( POW.IDEA_CBC ) + + def testRC2_ECB(self): + 'Generate and check RC2_ECB encrypted text' + self._symmetricGeneralTest( POW.RC2_ECB ) + + def testRC2_CBC(self): + 'Generate and check RC2_CBC encrypted text' + self._symmetricGeneralTest( POW.RC2_CBC ) + + def testRC2_40_CBC(self): + 'Generate and check RC2_40_CBC encrypted text' + self._symmetricGeneralTest( POW.RC2_40_CBC ) + + def testRC2_CFB(self): + 'Generate and check RC2_CFB encrypted text' + self._symmetricGeneralTest( POW.RC2_CFB ) + + def testRC2_OFB(self): + 'Generate and check RC2_OFB encrypted text' + self._symmetricGeneralTest( POW.RC2_OFB ) + + def testBF_ECB(self): + 'Generate and check BF_ECB encrypted text' + self._symmetricGeneralTest( POW.BF_ECB ) + + def testBF_CBC(self): + 'Generate and check BF_CBC encrypted text' + self._symmetricGeneralTest( POW.BF_CBC ) + + def testBF_CFB(self): + 'Generate and check BF_CFB encrypted text' + self._symmetricGeneralTest( POW.BF_CFB ) + + def testBF_OFB(self): + 'Generate and check BF_OFB encrypted text' + self._symmetricGeneralTest( POW.BF_OFB ) + + def testCAST5_ECB(self): + 'Generate and check CAST5_ECB encrypted text' + self._symmetricGeneralTest( POW.CAST5_ECB ) + + def testCAST5_CBC(self): + 'Generate and check CAST5_CBC encrypted text' + self._symmetricGeneralTest( POW.CAST5_CBC ) + + def testCAST5_CFB(self): + 'Generate and check CAST5_CFB encrypted text' + self._symmetricGeneralTest( POW.CAST5_CFB ) + + def testCAST5_OFB(self): + 'Generate and check CAST5_OFB encrypted text' + self._symmetricGeneralTest( POW.CAST5_OFB ) + + def testRC5_32_12_16_CBC(self): + 'Generate and check CAST5_OFB encrypted text' + self._symmetricGeneralTest( POW.CAST5_OFB ) + + def testRC5_32_12_16_CFB(self): + 'Generate and check CAST5_OFB encrypted text' + self._symmetricGeneralTest( POW.CAST5_OFB ) + + def testRC5_32_12_16_ECB(self): + 'Generate and check CAST5_OFB encrypted text' + self._symmetricGeneralTest( POW.CAST5_OFB ) + + def testRC5_32_12_16_OFB(self): + 'Generate and check CAST5_OFB encrypted text' + self._symmetricGeneralTest( POW.CAST5_OFB ) + +#--------------- Symmetric cipher test case ---------------# +#--------------- Asymmetric cipher test case ---------------# + +class AsymmetricUtilities: + + keys = { 'client' : { 'priv' : 'working/key1Priv', 'pub' : 'working/key1Pub' }, + 'server' : { 'priv' : 'working/key2Priv', 'pub' : 'working/key2Pub' }, + 'ca' : { 'priv' : 'working/key3Priv', 'pub' : 'working/key3Pub' }, + 'ca2' : { 'priv' : 'working/key4Priv', 'pub' : 'working/key4Pub' }, + 'ca3' : { 'priv' : 'working/key5Priv', 'pub' : 'working/key5Pub' }, + 'server2': { 'priv' : 'working/key6Priv', 'pub' : 'working/key6Pub' } } + + password = 'Silly password' + + def prepCiphers(self): + for entity in self.keys.keys(): + self.makeCipher(entity) + + def unPrepCiphers(self): + for entity in self.keys.keys(): + self.remCipher(entity) + + def getCipher(self, entry): + privFile = open( self.keys[entry]['priv'] ) + pubFile = open( self.keys[entry]['pub'] ) + priv = POW.pemRead( POW.RSA_PRIVATE_KEY,privFile.read(), self.password ) + pub = POW.pemRead( POW.RSA_PUBLIC_KEY, pubFile.read() ) + privFile.close() + pubFile.close() + return (pub, priv) + + def makeCipher(self, entry): + cipher = POW.Asymmetric() + privFile = open( self.keys[entry]['priv'], 'w' ) + pubFile = open( self.keys[entry]['pub'], 'w' ) + privFile.write( cipher.pemWrite( POW.RSA_PRIVATE_KEY, POW.DES_EDE3_CFB, self.password ) ) + pubFile.write( cipher.pemWrite( POW.RSA_PUBLIC_KEY ) ) + privFile.close() + pubFile.close() + + def remCipher(self, entry): + try: os.remove( self.keys[entry]['priv'] ) + except: pass + try: os.remove( self.keys[entry]['pub'] ) + except: pass + +class AsymmetricTestCase(unittest.TestCase): + 'Asymmetric algorithm tests' + + plainText = 'A little text to encrypt!' + + def testPemIo(self): + 'Read and write ciphers in PEM format' + cipher = ciphers.getCipher('client') + public = cipher[0] + private = cipher[1] + pub = public.pemWrite( POW.RSA_PUBLIC_KEY ) + public2 = POW.pemRead( POW.RSA_PUBLIC_KEY, pub ) + priv = private.pemWrite( POW.RSA_PRIVATE_KEY ) + private2 = POW.pemRead( POW.RSA_PRIVATE_KEY, priv ) + priv = private.pemWrite( POW.RSA_PRIVATE_KEY, POW.DES_EDE3_CFB, 'password' ) + private2 = POW.pemRead( POW.RSA_PRIVATE_KEY, priv, 'password' ) + cipherText = public2.publicEncrypt( self.plainText ) + deCiphered = private2.privateDecrypt( cipherText ) + self.failUnlessEqual( self.plainText, deCiphered ) + + def testDerIo(self): + 'Read and write ciphers in DER format' + cipher = ciphers.getCipher('client') + publicKey = cipher[0] + privateKey = cipher[1] + pubDer = publicKey.derWrite( POW.RSA_PUBLIC_KEY ) + publicKey2 = POW.derRead( POW.RSA_PUBLIC_KEY, pubDer ) + privDer = privateKey.derWrite( POW.RSA_PRIVATE_KEY ) + privateKey2 = POW.derRead( POW.RSA_PRIVATE_KEY, privDer) + cipherText = publicKey.publicEncrypt( self.plainText ) + deCiphered = privateKey.privateDecrypt( cipherText ) + self.failUnlessEqual( self.plainText, deCiphered ) + + def testPublicEncrypt(self): + 'Encrypt text using public RSA cipher, decrypt and compare' + cipher = ciphers.getCipher('client') + public = cipher[0] + private = cipher[1] + cipherText = public.publicEncrypt( self.plainText ) + deCiphered = private.privateDecrypt( cipherText ) + self.failUnlessEqual( self.plainText, deCiphered ) + + def testPrivateEncrypt(self): + 'Encrypt text using private RSA cipher, decrypt and compare' + cipher = ciphers.getCipher('client') + public = cipher[0] + private = cipher[1] + cipherText = private.privateEncrypt( self.plainText ) + deCiphered = public.publicDecrypt( cipherText ) + self.failUnlessEqual( self.plainText, deCiphered ) + + def testSign(self): + 'Sign text using private RSA cipher and verify' + cipher = ciphers.getCipher('client') + public = cipher[0] + private = cipher[1] + digest = POW.Digest( POW.SHA1_DIGEST ) + digest.update( self.plainText ) + signedText = private.sign( digest.digest(), POW.SHA1_DIGEST ) + self.failUnless( public.verify( signedText, digest.digest(), POW.SHA1_DIGEST ) ) + +#--------------- Asymmetric cipher test case ---------------# +#--------------- X509 test case ---------------# + +class X509Utilities: + + certs = { 'client' : 'working/cert1', + 'server' : 'working/cert2', + 'ca' : 'working/cert3', + 'ca2' : 'working/cert4', + 'ca3' : 'working/cert5', + 'server2': 'working/cert6' } + + clientName = ( ('C', 'GB'), ('ST', 'Hertfordshire'), + ('O', 'The House'), ('CN', 'Client') ) + + serverName = ( ('C', 'GB'), ('ST', 'Hertfordshire'), + ('O', 'The House'), ('CN', 'Server') ) + + caName = ( ('C', 'GB'), ('ST', 'Hertfordshire'), + ('O', 'The House'), ('CN', 'CA') ) + + ca2Name = ( ('C', 'GB'), ('ST', 'Hertfordshire'), + ('O', 'The House'), ('CN', 'CA2') ) + + ca3Name = ( ('C', 'GB'), ('ST', 'Hertfordshire'), + ('O', 'The House'), ('CN', 'CA3') ) + + server2Name = ( ('C', 'GB'), ('ST', 'Hertfordshire'), + ('O', 'The House'), ('CN', 'server2') ) + + notBefore = POW.pkix.time2utc(1005960447) + notAfter = POW.pkix.time2utc(1037496447) + + caSerial = 0 + serverSerial = 1 + clientSerial = 2 + ca2Serial = 3 + ca3Serial = 4 + server2Serial = 5 + + def __init__(self): + self.asymUtils = AsymmetricUtilities() + self.asymUtils.prepCiphers() + + def prepCerts(self): + for cert in self.certs.keys(): + self.makeCert(cert) + + def unPrepCerts(self): + self.asymUtils.unPrepCiphers() + for cert in self.certs.keys(): + self.remCert(cert) + + def getCert(self, entry): + certFile = open( self.certs[entry] ) + cert = POW.pemRead( POW.X509_CERTIFICATE, certFile.read() ) + certFile.close() + return cert + + def makeCert(self, entry): + caCipher = self.asymUtils.getCipher('ca') + ca2Cipher = self.asymUtils.getCipher('ca2') + ca3Cipher = self.asymUtils.getCipher('ca3') + cert = POW.X509() + #cert.setVersion(2) + + if entry == 'server': + serverCipher = self.asymUtils.getCipher('server') + cert.setIssuer( self.caName ) + cert.setSubject( self.serverName ) + cert.setSerial( self.serverSerial ) + cert.setNotBefore( self.notBefore ) + cert.setNotAfter( self.notAfter ) + cert.setPublicKey( serverCipher[1] ) + cert.sign( caCipher[1] ) + + elif entry == 'client': + clientCipher = self.asymUtils.getCipher('client') + cert.setIssuer( self.caName ) + cert.setSubject( self.clientName ) + cert.setSerial( self.clientSerial ) + cert.setNotBefore( self.notBefore ) + cert.setNotAfter( self.notAfter ) + cert.setPublicKey( clientCipher[0] ) + cert.sign( caCipher[1] ) + + elif entry == 'ca': + cert.setIssuer( self.caName ) + cert.setSubject( self.caName ) + cert.setSerial( self.caSerial ) + cert.setNotBefore( self.notBefore ) + cert.setNotAfter( self.notAfter ) + cert.setPublicKey( caCipher[0] ) + cert.sign( caCipher[1] ) + + elif entry == 'ca2': + cert.setIssuer( self.caName ) + cert.setSubject( self.ca2Name ) + cert.setSerial( self.ca2Serial ) + cert.setNotBefore( self.notBefore ) + cert.setNotAfter( self.notAfter ) + cert.setPublicKey( ca2Cipher[0] ) + cert.sign( caCipher[1] ) + + elif entry == 'ca3': + cert.setIssuer( self.ca2Name ) + cert.setSubject( self.ca3Name ) + cert.setSerial( self.ca3Serial ) + cert.setNotBefore( self.notBefore ) + cert.setNotAfter( self.notAfter ) + cert.setPublicKey( ca3Cipher[0] ) + cert.sign( ca2Cipher[1] ) + + elif entry == 'server2': + server2Cipher = self.asymUtils.getCipher('server2') + cert.setIssuer( self.ca3Name ) + cert.setSubject( self.server2Name ) + cert.setSerial( self.server2Serial ) + cert.setNotBefore( self.notBefore ) + cert.setNotAfter( self.notAfter ) + cert.setPublicKey( server2Cipher[0] ) + cert.sign( ca3Cipher[1] ) + + else: + raise Exception, 'Entry should be ca, ca2, server, server2 or client!' + + certFile = open( self.certs[entry], 'w' ) + certFile.write( cert.pemWrite() ) + certFile.close() + + def remCert(self, entry): + try: os.remove( self.certs[entry] ) + except: pass + +class X509TestCase(unittest.TestCase): + 'X509 tests' + + def testPemIo(self): + 'Read and write certificate in PEM format' + serverCert = certs.getCert('server') + cert = serverCert.pemWrite() + cert2 = POW.pemRead( POW.X509_CERTIFICATE, cert ) + serverCert.getIssuer() + + def testDerIo(self): + 'Read and write certificate in DER format' + serverCert = certs.getCert('server') + cert = serverCert.derWrite() + cert2 = POW.derRead( POW.X509_CERTIFICATE, cert ) + serverCert.getIssuer() + + def testIssuer(self): + 'Check the issuer is correct for server cerficate' + serverCert = certs.getCert('server') + self.failUnlessEqual( certs.caName, serverCert.getIssuer() ) + + def testSubject(self): + 'Check the subject is correct for server cerficate' + serverCert = certs.getCert('server') + self.failUnlessEqual( certs.serverName, serverCert.getSubject() ) + + def testVersion(self): + 'Check version number is correct for server cerficate' + serverCert = certs.getCert('server') + self.failUnlessEqual( 1, serverCert.getSerial() ) + + def testSerial(self): + 'Check serial number is correct for server cerficate' + serverCert = certs.getCert('server') + self.failUnlessEqual( certs.serverSerial, serverCert.getSerial() ) + + def testNotBefore(self): + 'Check notBefore date is correct for server cerficate' + serverCert = certs.getCert('server') + self.failUnlessEqual( certs.notBefore, serverCert.getNotBefore() ) + + def testNotAfter(self): + 'Check notAfter date is correct for server cerficate' + serverCert = certs.getCert('server') + self.failUnlessEqual( certs.notAfter, serverCert.getNotAfter() ) + +#--------------- X509 test case ---------------# +#--------------- X509 Store test case ---------------# + +class X509StoreTestCase(unittest.TestCase): + 'X509 Store tests' + + def testVerify(self): + 'Verify server\'s certificate againtst CA certificate' + caCert = certs.getCert('ca') + serverCert = certs.getCert('server') + + store = POW.X509Store() + store.addTrust( caCert ) + self.failUnless( store.verify( serverCert ) ) + + def testVerifyChain(self): + 'Verify chain of certificate againtst CA certificate' + caCert = certs.getCert('ca') + ca2Cert = certs.getCert('ca2') + ca3Cert = certs.getCert('ca3') + server2Cert = certs.getCert('server2') + + store = POW.X509Store() + store.addTrust( caCert ) + self.failUnless( store.verifyChain( server2Cert, [ca3Cert, ca2Cert ]) ) + + +#--------------- X509 Store test case ---------------# +#--------------- X509 Revoked test case ---------------# + +class X509RevokedTestCase(unittest.TestCase): + 'X509 Store tests' + + serial = 7 + revokedOn = POW.pkix.time2utc(1005960447) + + def testRevoked(self): + 'Create X509 revocation and check values are correct' + rev = POW.X509Revoked( self.serial, self.revokedOn ) + self.failUnlessEqual( rev.getDate(), self.revokedOn ) + self.failUnlessEqual( rev.getSerial(), self.serial ) + +#--------------- X509 Revoked test case ---------------# +#--------------- X509 CRL test case ---------------# + +class X509CrlTestCase(unittest.TestCase): + 'X509 CRL tests' + + revocationData = ( ( 1, POW.pkix.time2utc(1005960447) ), + ( 2, POW.pkix.time2utc(1005960448) ), + ( 3, POW.pkix.time2utc(1005960449) ), + ( 4, POW.pkix.time2utc(1005960450) ), + ( 5, POW.pkix.time2utc(1005960451) ) ) + + thisUpdate = POW.pkix.time2utc(1005960447) + nextUpdate = POW.pkix.time2utc(1037496447) + + version = 2 + + def setUp(self): + self.ca = certs.getCert('ca') + self.caCipher = ciphers.getCipher('ca') + + revocations = [] + for rev in self.revocationData: + revocation = POW.X509Revoked( rev[0], rev[1] ) + revocations.append( revocation ) + + self.crl = POW.X509Crl() + self.crl.setVersion( self.version ) + self.crl.setIssuer( self.ca.getIssuer() ) + self.crl.setThisUpdate( self.thisUpdate ) + self.crl.setNextUpdate( self.nextUpdate ) + self.crl.setRevoked( revocations ) + self.crl.sign( self.caCipher[1] ) + + def tearDown(self): + del self.ca + del self.caCipher + del self.crl + + def testPemIo(self): + 'Read and write CRL in PEM format' + pemCrl = self.crl.pemWrite() + newCrl = POW.pemRead( POW.X509_CRL, pemCrl ) + self.failUnlessEqual( self.version, newCrl.getVersion() ) + + def testDerIo(self): + 'Read and write CRL in DER format' + derCrl = self.crl.derWrite() + newCrl = POW.derRead( POW.X509_CRL, derCrl ) + self.failUnlessEqual( self.version, newCrl.getVersion() ) + + def testVersion(self): + 'Create CRL and check version number is correct' + self.failUnlessEqual( self.version, self.crl.getVersion() ) + + def testIssuer(self): + 'Create CRL and check issuer name is correct' + self.failUnlessEqual( self.ca.getIssuer(), self.crl.getIssuer() ) + + def testThisUpdate(self): + 'Create CRL and check thisUpdate is correct' + self.failUnlessEqual( self.thisUpdate, self.crl.getThisUpdate() ) + + def testNextUpdate(self): + 'Create CRL and check nextUpdate is correct' + self.failUnlessEqual( self.nextUpdate, self.crl.getNextUpdate() ) + + def testRevoked(self): + 'Create CRL and check list of revoked objects is correct' + revokedCerts = self.crl.getRevoked() + for i in range( len(revokedCerts) ): + revocation = revokedCerts[i] + serial = revocation.getSerial() + date = revocation.getDate() + index = serial - 1 + self.failUnlessEqual( self.revocationData[index][0], serial ) + self.failUnlessEqual( self.revocationData[index][1], date ) + + + + def crlIssuerAltNameTest(self): + 'CRL Issuer Alt Name tests' + + n1 = ('directoryName', ( (( o2i('countryName'), ('printableString', 'UK') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) ) + + n2 = ('rfc822Name', 'peter_shannon@yahoo.com') + n3 = ('uri', 'http://www.p-s.org.uk') + n4 = ('iPAddress', POW.pkix.ip42oct(192,168,100,51)) + + issuer = POW.pkix.IssuerAltName() + issuer.set([n1,n2,n3,n4]) + self.crl.addExtension( 'issuerAltName', 0, issuer.toString() ) + issuer = POW.pkix.IssuerAltName() + issuer.fromString( self.crl.getExtension(0)[2] ) + values = issuer.get() + self.failUnless( values == (n1,n2,n3,n4), 'generalNames are incorrect') + + def crlExtensionManipulationTest(self): + 'Extension manipulation for CRL object tests' + + n1 = ('directoryName', ( (( o2i('countryName'), ('printableString', 'UK') ),), + (( o2i('stateOrProvinceName'), ('printableString', 'Herts') ),), + (( o2i('organizationName'), ('printableString', 'The House') ),), + (( o2i('commonName'), ('printableString', 'Shannon Works') ),) ) ) + + n2 = ('rfc822Name', 'peter_shannon@yahoo.com') + n3 = ('uri', 'http://www.p-s.org.uk') + n4 = ('iPAddress', POW.pkix.ip42oct(192,168,100,51)) + + issuer = POW.pkix.IssuerAltName() + issuer.set((n1,n2,n3,n4)) + self.crl.addExtension( 'issuerAltName', 0, issuer.toString() ) + self.crl.addExtension( 'issuerAltName', 0, issuer.toString() ) + self.failUnless( self.crl.countExtensions() == 2, 'CRL should have 2 any extensions') + self.crl.clearExtensions() + self.failUnless( self.crl.countExtensions() == 0, 'CRL should have no extensions') + self.crl.addExtension( 'issuerAltName', 0, issuer.toString() ) + + issuer = POW.pkix.IssuerAltName() + issuer.fromString( self.crl.getExtension(0)[2] ) + self.failUnless( issuer.get() == (n1,n2,n3,n4), 'incorrect extension handling ') + + + issuer = POW.pkix.IssuerAltName() + issuer.fromString( self.crl.getExtension(0)[2] ) + values = issuer.get() + self.failUnless( values == (n1,n2,n3,n4), 'generalNames are incorrect') + + def revExtensionManipulationTest(self): + 'Extension manipulation for CRL revocation object tests' + invalid = POW.pkix.InvalidityDate() + invalid.set( POW.pkix.time2gen(time.time()) ) + reason = POW.pkix.CrlReason() + reason.set(1) + + revdata = self.revocationData[0] + revo = POW.X509Revoked( revdata[0], revdata[1] ) + revo.addExtension( 'invalidityDate', 0, invalid.toString() ) + revo.addExtension( 'CRLReason', 0, reason.toString() ) + self.failUnless( revo.countExtensions() == 2, 'revocation should have 2 any extensions') + revo.clearExtensions() + self.failUnless( revo.countExtensions() == 0, 'revocation should have no extensions') + revo.addExtension( 'CRLReason', 0, reason.toString() ) + revo.addExtension( 'invalidityDate', 0, invalid.toString() ) + reason = POW.pkix.CrlReason() + reason.fromString( revo.getExtension(0)[2] ) + self.failUnless( reason.get() == 1, 'incorrect extension handling ') + + def revocationExtensionTest(self): + 'CRL Revocation Extension tests' + self.ca = certs.getCert('ca') + self.caCipher = ciphers.getCipher('ca') + + revocations = [] + invalid = POW.pkix.InvalidityDate() + invalid.set( POW.pkix.time2gen(time.time()) ) + reason = POW.pkix.CrlReason() + reason.set(1) + for rev in self.revocationData: + revocation = POW.X509Revoked( rev[0], rev[1] ) + revocation.addExtension( 'invalidityDate', 0, invalid.toString() ) + revocation.addExtension( 'CRLReason', 0, reason.toString() ) + revocations.append( revocation ) + + self.crl = POW.X509Crl() + self.crl.setVersion( self.version ) + self.crl.setIssuer( self.ca.getIssuer() ) + self.crl.setThisUpdate( self.thisUpdate ) + self.crl.setNextUpdate( self.nextUpdate ) + self.crl.setRevoked( revocations ) + self.crl.sign( self.caCipher[1] ) + + + +#--------------- X509 CRL test case ---------------# +#--------------- SSL test case ---------------# + +serverPort = 7777 +clientMsg = 'Message from client to server...' +serverMsg = 'Message from server to client...' + +def serverCertKey(): + cert = certs.getCert('server') + key = ciphers.getCipher('server')[1] + return cert, key + +def clientCertKey(): + cert = certs.getCert('client') + key = ciphers.getCipher('client')[1] + return cert, key + +class SimpleSslServer: + + def __init__(self, test): + cert, key = serverCertKey() + ssl = POW.Ssl( POW.SSLV23_SERVER_METHOD ) + ssl.useCertificate(cert) + ssl.useKey(key) + + sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + sock.bind( ('', serverPort) ) + sock.listen(1) + conn, addr = sock.accept() + sock.shutdown(0) + sock.close() + ssl.setFd( conn.fileno() ) + ssl.accept() + + msg = ssl.read() + ssl.write(serverMsg) + + while 1: + try: ssl.shutdown(); break + except: time.sleep(1) + + conn.shutdown(0) + conn.close() + test.failUnlessEqual( clientMsg, msg, 'client/server communication failiure' ) + +class ValidatingSslServer: + + def __init__(self, test): + cert, key = serverCertKey() + ssl = POW.Ssl( POW.SSLV23_SERVER_METHOD ) + ssl.useCertificate(cert) + ssl.useKey(key) + ssl.setVerifyMode( POW.SSL_VERIFY_PEER ) + + store = POW.X509Store() + store.addTrust( certs.getCert('ca') ) + + sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + sock.bind( ('', serverPort) ) + sock.listen(1) + conn, addr = sock.accept() + sock.shutdown(0) + sock.close() + ssl.setFd( conn.fileno() ) + ssl.accept() + + clientCert = ssl.peerCertificate() + + msg = ssl.read() + ssl.write(serverMsg) + + while 1: + try: ssl.shutdown(); break + except: time.sleep(1) + + conn.shutdown(0) + conn.close() + test.failUnless( store.verify( clientCert ), 'client certificate failed verification' ) + +class SslClient: + + def __init__(self, test): + cert, key = clientCertKey() + ssl = POW.Ssl( POW.SSLV23_CLIENT_METHOD ) + ssl.useCertificate(cert) + ssl.useKey(key) + sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + sock.connect( ('', serverPort) ) + ssl.setFd( sock.fileno() ) + ssl.connect() + + ssl.write(clientMsg) + ssl.read() + + while 1: + try: ssl.shutdown(); break + except: time.sleep(1) + + sock.shutdown(0) + sock.close() + +class ValidatingSslClient: + + def __init__(self, test): + cert, key = clientCertKey() + ssl = POW.Ssl( POW.SSLV23_CLIENT_METHOD ) + ssl.useCertificate(cert) + ssl.useKey(key) + ssl.setVerifyMode( POW.SSL_VERIFY_PEER ) + + store = POW.X509Store() + store.addTrust( certs.getCert('ca') ) + + sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) + sock.connect( ('', serverPort) ) + ssl.setFd( sock.fileno() ) + ssl.connect() + + serverCert = ssl.peerCertificate() + + ssl.write(clientMsg) + ssl.read() + + while 1: + try: ssl.shutdown(); break + except: time.sleep(1) + + sock.shutdown(0) + sock.close() + test.failUnless( store.verify( serverCert ), 'client certificate failed verification' ) + + + +class SslTestCase(unittest.TestCase): + 'SSL tests' + + def testSimple(self): + '''Test client/server communication over SSL''' + global serverPort + serverPort += 1 + pid = os.fork() + if pid: + time.sleep(1) + SimpleSslServer(self) + else: + time.sleep(3) + SslClient(self) + os._exit(0) + + def testClientValidation(self): + '''Request and validate client certificate''' + global serverPort + serverPort += 1 + pid = os.fork() + if pid: + time.sleep(1) + ValidatingSslServer(self) + else: + time.sleep(3) + SslClient(self) + os._exit(0) + + def testServerValidation(self): + '''Request and validate server certificate''' + global serverPort + serverPort += 1 + pid = os.fork() + if pid: + time.sleep(3) + ValidatingSslClient(self) + else: + time.sleep(1) + SimpleSslServer(self) + os._exit(0) + +#--------------- SSL test case ---------------# +#--------------- Test suite generators ---------------# + +def derEncodingTests(): + suite = unittest.TestSuite() + suite.addTest( DerEncodingTestCase('integerTest') ) + suite.addTest( DerEncodingTestCase('oidTest') ) + suite.addTest( DerEncodingTestCase('booleanTest') ) + suite.addTest( DerEncodingTestCase('bitStringTest') ) + return suite + +def complexDerTests(): + suite = unittest.TestSuite() + suite.addTest( ComplexDerTestCase('emptySeqTest') ) + suite.addTest( ComplexDerTestCase('seqOfSimpleTest') ) + suite.addTest( ComplexDerTestCase('seqOfSeqTest') ) + suite.addTest( ComplexDerTestCase('seqOfSimpleWithOptionalTest') ) + suite.addTest( ComplexDerTestCase('seqOfSimpleWithDefaultTest') ) + suite.addTest( ComplexDerTestCase('seqOfOptionalSeqTest') ) + suite.addTest( ComplexDerTestCase('seqOfPartiallySetOptionalSeqTest') ) + suite.addTest( ComplexDerTestCase('defaultSeqTest') ) + suite.addTest( ComplexDerTestCase('sequenceOfChoiceTest') ) + suite.addTest( ComplexDerTestCase('seqOfDefaultSeqTest') ) + suite.addTest( ComplexDerTestCase('sequenceOfSimpleTest') ) + suite.addTest( ComplexDerTestCase('defaultSequenceOfTest') ) + suite.addTest( ComplexDerTestCase('sequenceOfDefaultSequenceOfTest') ) + suite.addTest( ComplexDerTestCase('optionalSequenceOfTest') ) + suite.addTest( ComplexDerTestCase('sequenceOfOptionalSequenceOfTest') ) + suite.addTest( ComplexDerTestCase('basicExplicitTest') ) + suite.addTest( ComplexDerTestCase('defaultExplicitTest') ) + suite.addTest( ComplexDerTestCase('optionalExplicitTest') ) + suite.addTest( ComplexDerTestCase('basicChoiceTest') ) + suite.addTest( ComplexDerTestCase('defaultChoiceTest') ) + suite.addTest( ComplexDerTestCase('optionalChoiceTest') ) + suite.addTest( ComplexDerTestCase('choiceWithDefaultElementTest') ) + return suite + +def pkixTests(): + suite = unittest.TestSuite() + suite.addTest( PkixTestCase('validityTest') ) + suite.addTest( PkixTestCase('directoryStringTest') ) + suite.addTest( PkixTestCase('attributeTypeAndValueTest') ) + suite.addTest( PkixTestCase('x509v2Test') ) + suite.addTest( PkixTestCase('basicConstraintsTest') ) + suite.addTest( PkixTestCase('generalNameTest') ) + suite.addTest( PkixTestCase('x509v3Test') ) + suite.addTest( PkixTestCase('crlv1Test') ) + return suite + +def x509ExtensionSuite(): + suite = unittest.TestSuite() + suite.addTest( ExtensionsTestCase('extensionManipulationTest') ) + suite.addTest( ExtensionsTestCase('basicConstraintTest') ) + suite.addTest( ExtensionsTestCase('privateKeyUsagePeriodTest') ) + suite.addTest( ExtensionsTestCase('keyUsageTest') ) + suite.addTest( ExtensionsTestCase('issuerAltNameTest') ) + suite.addTest( ExtensionsTestCase('subjectAltNameTest') ) + suite.addTest( ExtensionsTestCase('certPolicyTest') ) + return suite + +def hashSuite(): + suite = unittest.TestSuite() + suite.addTest( HashTestCase('testMd2') ) + suite.addTest( HashTestCase('testMd5') ) + suite.addTest( HashTestCase('testSha') ) + suite.addTest( HashTestCase('testSha1') ) + suite.addTest( HashTestCase('testRipemd160') ) + return suite + +def hmacSuite(): + suite = unittest.TestSuite() + suite.addTest( HmacTestCase('testHmacMd2') ) + suite.addTest( HmacTestCase('testHmacMd5') ) + suite.addTest( HmacTestCase('testHmacSha') ) + suite.addTest( HmacTestCase('testHmacSha1') ) + suite.addTest( HmacTestCase('testHmacRipemd160') ) + return suite + +def symmetricSuite(): + suite = unittest.TestSuite() + if 'DES_ECB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_ECB') ) + if 'DES_EDE' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE') ) + if 'DES_EDE3' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE3') ) + if 'DES_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_CFB') ) + if 'DES_EDE_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE_CFB') ) + if 'DES_EDE3_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE3_CFB') ) + if 'DES_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_OFB') ) + if 'DES_EDE_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE_OFB') ) + if 'DES_EDE3_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE3_OFB') ) + if 'DES_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_CBC') ) + if 'DES_EDE_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE_CBC') ) + if 'DES_EDE3_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDES_EDE3_CBC') ) + if 'DESX_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testDESX_CBC') ) + if 'RC4' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC4') ) + if 'RC4_40' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC4_40') ) + if 'IDEA_ECB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testIDEA_ECB') ) + if 'IDEA_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testIDEA_CFB') ) + if 'IDEA_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testIDEA_OFB') ) + if 'IDEA_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testIDEA_CBC') ) + if 'RC2_ECB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC2_ECB') ) + if 'RC2_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC2_CBC') ) + if 'RC2_40_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC2_40_CBC') ) + if 'RC2_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC2_CFB') ) + if 'RC2_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC2_OFB') ) + if 'BF_ECB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testBF_ECB') ) + if 'BF_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testBF_CBC') ) + if 'BF_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testBF_CFB') ) + if 'BF_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testBF_OFB') ) + if 'CAST5_ECB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testCAST5_ECB') ) + if 'CAST5_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testCAST5_CBC') ) + if 'CAST5_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testCAST5_CFB') ) + if 'CAST5_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testCAST5_OFB') ) + if 'RC5_32_12_16_CBC' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC5_32_12_16_CBC') ) + if 'RC5_32_12_16_CFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC5_32_12_16_CFB') ) + if 'RC6_32_12_16_ECB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC5_32_12_16_ECB') ) + if 'RC5_32_12_16_OFB' in POW.__dict__.keys(): + suite.addTest( SymmetricTestCase('testRC5_32_12_16_OFB') ) + return suite + +def asymmetricSuite(): + suite = unittest.TestSuite() + suite.addTest( AsymmetricTestCase('testPemIo') ) + suite.addTest( AsymmetricTestCase('testDerIo') ) + suite.addTest( AsymmetricTestCase('testPublicEncrypt') ) + suite.addTest( AsymmetricTestCase('testPrivateEncrypt') ) + suite.addTest( AsymmetricTestCase('testSign') ) + return suite + +def x509Suite(): + suite = unittest.TestSuite() + suite.addTest( X509TestCase('testPemIo') ) + suite.addTest( X509TestCase('testDerIo') ) + suite.addTest( X509TestCase('testIssuer') ) + suite.addTest( X509TestCase('testSubject') ) + suite.addTest( X509TestCase('testVersion') ) + suite.addTest( X509TestCase('testSerial') ) + suite.addTest( X509TestCase('testNotBefore') ) + suite.addTest( X509TestCase('testNotAfter') ) + return suite + +def x509StoreSuite(): + suite = unittest.TestSuite() + suite.addTest( X509StoreTestCase('testVerify') ) + suite.addTest( X509StoreTestCase('testVerifyChain') ) + return suite + +def x509RevokedSuite(): + suite = unittest.TestSuite() + suite.addTest( X509RevokedTestCase('testRevoked') ) + return suite + +def x509CrlSuite(): + suite = unittest.TestSuite() + suite.addTest( X509CrlTestCase('testPemIo') ) + suite.addTest( X509CrlTestCase('testDerIo') ) + suite.addTest( X509CrlTestCase('testVersion') ) + suite.addTest( X509CrlTestCase('testIssuer') ) + suite.addTest( X509CrlTestCase('testThisUpdate') ) + suite.addTest( X509CrlTestCase('testNextUpdate') ) + suite.addTest( X509CrlTestCase('testRevoked') ) + suite.addTest( X509CrlTestCase('crlIssuerAltNameTest') ) + suite.addTest( X509CrlTestCase('revExtensionManipulationTest') ) + suite.addTest( X509CrlTestCase('revocationExtensionTest') ) + suite.addTest( X509CrlTestCase('crlExtensionManipulationTest') ) + return suite + +def sslSuite(): + suite = unittest.TestSuite() + suite.addTest( SslTestCase('testSimple') ) + suite.addTest( SslTestCase('testClientValidation') ) + suite.addTest( SslTestCase('testServerValidation') ) + return suite + +#--------------- Test suite generators ---------------# +#--------------- main ---------------# + +if __name__ == '__main__': + print '\n\tGenerating RSA keys and certificates to use for testing...\n' + + certs = X509Utilities() + ciphers = certs.asymUtils + certs.prepCerts() + + runner = unittest.TextTestRunner( sys.stderr, 1, 2) + runner.run( derEncodingTests() ) + runner.run( complexDerTests() ) + runner.run( pkixTests() ) + runner.run( hashSuite() ) + runner.run( hmacSuite() ) + runner.run( symmetricSuite() ) + runner.run( asymmetricSuite() ) + runner.run( x509Suite() ) + runner.run( x509StoreSuite() ) + runner.run( x509RevokedSuite() ) + runner.run( x509CrlSuite() ) + runner.run( x509ExtensionSuite() ) + if sys.platform != 'win32': + runner.run( sslSuite() ) + + certs.unPrepCerts() + +#--------------- main ---------------# diff --git a/pow/README b/pow/README new file mode 100644 index 00000000..f40f9b34 --- /dev/null +++ b/pow/README @@ -0,0 +1,22 @@ +$Id$ + +This is a hacked version of the Python OpenSSL Wrappers (POW) package. +At some point I'll package up the changes and send them to the package +maintainer (if I can find him), but I want my changes under version +control while I'm hacking. + +POW is a nice package, although it appears not to have gotten much +attention recently. It's really two separate packages, one of which +uses a few facilities from the other: + +- POW itself is a Python extension module linked against OpenSSL. + This (or some equivilent package like M2Crypto) is necessary if one + wants to use the various crypto algorithms. + +- POW.pkix is a pure-Python module that builds on the base POW module + to support X509v3 extensions. This, to me, is the most interesting + thing about POW: it's the only X.509 package for Python I've seen + that has a reasonably complete mapping of X.509v3 into native Python + datatypes (M2Crypto, by comparision, only supports the text + representations provided by the extension drivers in the OpenSSL + libraries -- POW supports those too, but they're not as useful). |