From ab9ee4a0d9aa7c1d005fd54e5b7cbb32659db486 Mon Sep 17 00:00:00 2001 From: Monty Date: Thu, 11 Aug 2011 07:30:43 +0000 Subject: [PATCH] More underscore cleanups; it appears that \usepackage{underscore} in unreliable in several environments like \mathtt and \emph svn path=/trunk/vorbis/; revision=18067 --- doc/01-introduction.tex | 2 +- doc/03-codebook.tex | 120 ++-- doc/04-codec.tex | 268 ++++---- doc/05-comment.tex | 16 +- doc/07-floor1.tex | 162 ++--- doc/08-residue.tex | 136 ++-- doc/09-helper.tex | 36 +- doc/10-tables.tex | 2 +- doc/Vorbis_I_spec.html | 247 +++---- doc/Vorbis_I_spec.pdf | 1740 +++++++++++++++++++++++------------------------ 10 files changed, 1367 insertions(+), 1362 deletions(-) diff --git a/doc/01-introduction.tex b/doc/01-introduction.tex index b1e4c6f..b522730 100644 --- a/doc/01-introduction.tex +++ b/doc/01-introduction.tex @@ -517,7 +517,7 @@ transform orthogonality. Pay attention however to returning the correct data range; the amount of data to be returned is: \begin{Verbatim}[commandchars=\\\{\}] -window_blocksize(previous_window)/4+window_blocksize(current_window)/4 +window\_blocksize(previous\_window)/4+window\_blocksize(current\_window)/4 \end{Verbatim} from the center of the previous window to the center of the current diff --git a/doc/03-codebook.tex b/doc/03-codebook.tex index 987b436..2da74af 100644 --- a/doc/03-codebook.tex +++ b/doc/03-codebook.tex @@ -41,16 +41,16 @@ byte 1: [ 0 1 0 0 0 0 1 1 ] (0x43) byte 2: [ 0 1 0 1 0 1 1 0 ] (0x56) \end{Verbatim} -16 bit \varname{[codebook_dimensions]} and 24 bit \varname{[codebook_entries]} fields: +16 bit \varname{[codebook\_dimensions]} and 24 bit \varname{[codebook\_entries]} fields: \begin{Verbatim}[commandchars=\\\{\}] byte 3: [ X X X X X X X X ] -byte 4: [ X X X X X X X X ] [codebook_dimensions] (16 bit unsigned) +byte 4: [ X X X X X X X X ] [codebook\_dimensions] (16 bit unsigned) byte 5: [ X X X X X X X X ] byte 6: [ X X X X X X X X ] -byte 7: [ X X X X X X X X ] [codebook_entries] (24 bit unsigned) +byte 7: [ X X X X X X X X ] [codebook\_entries] (24 bit unsigned) \end{Verbatim} @@ -63,9 +63,9 @@ byte 8: [ X ] [ordered] (1 bit) \end{Verbatim} Each entry, numbering a -total of \varname{[codebook_entries]}, is assigned a codeword length. +total of \varname{[codebook\_entries]}, is assigned a codeword length. We now read the list of codeword lengths and store these lengths in -the array \varname{[codebook_codeword_lengths]}. Decode of lengths is +the array \varname{[codebook\_codeword\_lengths]}. Decode of lengths is according to whether the \varname{[ordered]} flag is set or unset. \begin{itemize} @@ -83,7 +83,7 @@ according to whether the \varname{[ordered]} flag is set or unset. byte 8: [ X 1 ] [sparse] flag (1 bit) \end{Verbatim} - The decoder now performs for each of the \varname{[codebook_entries]} + The decoder now performs for each of the \varname{[codebook\_entries]} codebook entries: \begin{Verbatim}[commandchars=\\\{\}] @@ -118,16 +118,16 @@ byte 8: [ X 1 ] [sparse] flag (1 bit) codewords per length. That is, beginning at entry zero: \begin{Verbatim}[commandchars=\\\{\}] - 1) [current_entry] = 0; - 2) [current_length] = read a five bit unsigned integer and add 1; - 3) [number] = read \link{vorbis:spec:ilog}{ilog}([codebook_entries] - [current_entry]) bits as an unsigned integer - 4) set the entries [current_entry] through [current_entry]+[number]-1, inclusive, - of the [codebook_codeword_lengths] array to [current_length] - 5) set [current_entry] to [number] + [current_entry] - 6) increment [current_length] by 1 - 7) if [current_entry] is greater than [codebook_entries] ERROR CONDITION; + 1) [current\_entry] = 0; + 2) [current\_length] = read a five bit unsigned integer and add 1; + 3) [number] = read \link{vorbis:spec:ilog}{ilog}([codebook\_entries] - [current\_entry]) bits as an unsigned integer + 4) set the entries [current\_entry] through [current\_entry]+[number]-1, inclusive, + of the [codebook\_codeword\_lengths] array to [current\_length] + 5) set [current\_entry] to [number] + [current\_entry] + 6) increment [current\_length] by 1 + 7) if [current\_entry] is greater than [codebook\_entries] ERROR CONDITION; the decoder will not be able to read this stream. - 8) if [current_entry] is less than [codebook_entries], repeat process starting at 3) + 8) if [current\_entry] is less than [codebook\_entries], repeat process starting at 3) 9) done. \end{Verbatim} @@ -148,10 +148,10 @@ VQ) The lookup table type is read as a four bit unsigned integer: \begin{Verbatim}[commandchars=\\\{\}] - 1) [codebook_lookup_type] = read four bits as an unsigned integer + 1) [codebook\_lookup\_type] = read four bits as an unsigned integer \end{Verbatim} -Codebook decode precedes according to \varname{[codebook_lookup_type]}: +Codebook decode precedes according to \varname{[codebook\_lookup\_type]}: \begin{itemize} \item Lookup type zero indicates no lookup to be read. Proceed past @@ -160,32 +160,32 @@ lookup decode. Lookup types one and two are similar, differing only in the number of lookup values to be read. Lookup type one reads a list of values that are permuted in a set pattern to build a list of vectors, -each vector of order \varname{[codebook_dimensions]} scalars. Lookup +each vector of order \varname{[codebook\_dimensions]} scalars. Lookup type two builds the same vector list, but reads each scalar for each vector explicitly, rather than building vectors from a smaller list of possible scalar values. Lookup decode proceeds as follows: \begin{Verbatim}[commandchars=\\\{\}] - 1) [codebook_minimum_value] = \link{vorbis:spec:float32:unpack}{float32_unpack}( read 32 bits as an unsigned integer) - 2) [codebook_delta_value] = \link{vorbis:spec:float32:unpack}{float32_unpack}( read 32 bits as an unsigned integer) - 3) [codebook_value_bits] = read 4 bits as an unsigned integer and add 1 - 4) [codebook_sequence_p] = read 1 bit as a boolean flag + 1) [codebook\_minimum\_value] = \link{vorbis:spec:float32:unpack}{float32\_unpack}( read 32 bits as an unsigned integer) + 2) [codebook\_delta\_value] = \link{vorbis:spec:float32:unpack}{float32\_unpack}( read 32 bits as an unsigned integer) + 3) [codebook\_value\_bits] = read 4 bits as an unsigned integer and add 1 + 4) [codebook\_sequence\_p] = read 1 bit as a boolean flag - if ( [codebook_lookup_type] is 1 ) \{ + if ( [codebook\_lookup\_type] is 1 ) \{ - 5) [codebook_lookup_values] = \link{vorbis:spec:lookup1:values}{lookup1_values}(\varname{[codebook_entries]}, \varname{[codebook_dimensions]} ) + 5) [codebook\_lookup\_values] = \link{vorbis:spec:lookup1:values}{lookup1\_values}(\varname{[codebook\_entries]}, \varname{[codebook\_dimensions]} ) \} else \{ - 6) [codebook_lookup_values] = \varname{[codebook_entries]} * \varname{[codebook_dimensions]} + 6) [codebook\_lookup\_values] = \varname{[codebook\_entries]} * \varname{[codebook\_dimensions]} \} - 7) read a total of [codebook_lookup_values] unsigned integers of [codebook_value_bits] each; - store these in order in the array [codebook_multiplicands] + 7) read a total of [codebook\_lookup\_values] unsigned integers of [codebook\_value\_bits] each; + store these in order in the array [codebook\_multiplicands] \end{Verbatim} \item -A \varname{[codebook_lookup_type]} of greater than two is reserved +A \varname{[codebook\_lookup\_type]} of greater than two is reserved and indicates a stream that is not decodable by the specification in this document. @@ -197,8 +197,8 @@ considered an error condition rendering the stream undecodable. \paragraph{Huffman decision tree representation} -The \varname{[codebook_codeword_lengths]} array and -\varname{[codebook_entries]} value uniquely define the Huffman decision +The \varname{[codebook\_codeword\_lengths]} array and +\varname{[codebook\_entries]} value uniquely define the Huffman decision tree used for entropy decoding. Briefly, each used codebook entry (recall that length-unordered @@ -282,20 +282,20 @@ decode to that entry number. Unpacking the VQ lookup table vectors relies on the following values: \begin{programlisting} -the [codebook_multiplicands] array -[codebook_minimum_value] -[codebook_delta_value] -[codebook_sequence_p] -[codebook_lookup_type] -[codebook_entries] -[codebook_dimensions] -[codebook_lookup_values] +the [codebook\_multiplicands] array +[codebook\_minimum\_value] +[codebook\_delta\_value] +[codebook\_sequence\_p] +[codebook\_lookup\_type] +[codebook\_entries] +[codebook\_dimensions] +[codebook\_lookup\_values] \end{programlisting} \bigskip Decoding (unpacking) a specific vector in the vector lookup table -proceeds according to \varname{[codebook_lookup_type]}. The unpacked +proceeds according to \varname{[codebook\_lookup\_type]}. The unpacked vector values are what a codebook would return during audio packet decode in a VQ context. @@ -304,25 +304,25 @@ decode in a VQ context. Lookup type one specifies a lattice VQ lookup table built algorithmically from a list of scalar values. Calculate (unpack) the final values of a codebook entry vector from the entries in -\varname{[codebook_multiplicands]} as follows (\varname{[value_vector]} +\varname{[codebook\_multiplicands]} as follows (\varname{[value\_vector]} is the output vector representing the vector of values for entry number -\varname{[lookup_offset]} in this codebook): +\varname{[lookup\_offset]} in this codebook): \begin{Verbatim}[commandchars=\\\{\}] 1) [last] = 0; - 2) [index_divisor] = 1; - 3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) \{ + 2) [index\_divisor] = 1; + 3) iterate [i] over the range 0 ... [codebook\_dimensions]-1 (once for each scalar value in the value vector) \{ - 4) [multiplicand_offset] = ( [lookup_offset] divided by [index_divisor] using integer - division ) integer modulo [codebook_lookup_values] + 4) [multiplicand\_offset] = ( [lookup\_offset] divided by [index\_divisor] using integer + division ) integer modulo [codebook\_lookup\_values] - 5) vector [value_vector] element [i] = - ( [codebook_multiplicands] array element number [multiplicand_offset] ) * - [codebook_delta_value] + [codebook_minimum_value] + [last]; + 5) vector [value\_vector] element [i] = + ( [codebook\_multiplicands] array element number [multiplicand\_offset] ) * + [codebook\_delta\_value] + [codebook\_minimum\_value] + [last]; - 6) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i] + 6) if ( [codebook\_sequence\_p] is set ) then set [last] = vector [value\_vector] element [i] - 7) [index_divisor] = [index_divisor] * [codebook_lookup_values] + 7) [index\_divisor] = [index\_divisor] * [codebook\_lookup\_values] \} @@ -334,25 +334,25 @@ is the output vector representing the vector of values for entry number \paragraph{Vector value decode: Lookup type 2} Lookup type two specifies a VQ lookup table in which each scalar in -each vector is explicitly set by the \varname{[codebook_multiplicands]} +each vector is explicitly set by the \varname{[codebook\_multiplicands]} array in a one-to-one mapping. Calculate [unpack] the final values of a codebook entry vector from the entries in -\varname{[codebook_multiplicands]} as follows (\varname{[value_vector]} +\varname{[codebook\_multiplicands]} as follows (\varname{[value\_vector]} is the output vector representing the vector of values for entry number -\varname{[lookup_offset]} in this codebook): +\varname{[lookup\_offset]} in this codebook): \begin{Verbatim}[commandchars=\\\{\}] 1) [last] = 0; - 2) [multiplicand_offset] = [lookup_offset] * [codebook_dimensions] - 3) iterate [i] over the range 0 ... [codebook_dimensions]-1 (once for each scalar value in the value vector) \{ + 2) [multiplicand\_offset] = [lookup\_offset] * [codebook\_dimensions] + 3) iterate [i] over the range 0 ... [codebook\_dimensions]-1 (once for each scalar value in the value vector) \{ - 4) vector [value_vector] element [i] = - ( [codebook_multiplicands] array element number [multiplicand_offset] ) * - [codebook_delta_value] + [codebook_minimum_value] + [last]; + 4) vector [value\_vector] element [i] = + ( [codebook\_multiplicands] array element number [multiplicand\_offset] ) * + [codebook\_delta\_value] + [codebook\_minimum\_value] + [last]; - 5) if ( [codebook_sequence_p] is set ) then set [last] = vector [value_vector] element [i] + 5) if ( [codebook\_sequence\_p] is set ) then set [last] = vector [value\_vector] element [i] - 6) increment [multiplicand_offset] + 6) increment [multiplicand\_offset] \} diff --git a/doc/04-codec.tex b/doc/04-codec.tex index 035496f..5d69fa2 100644 --- a/doc/04-codec.tex +++ b/doc/04-codec.tex @@ -29,7 +29,7 @@ Each header packet begins with the same header fields. \begin{Verbatim}[commandchars=\\\{\}] - 1) [packet_type] : 8 bit value + 1) [packet\_type] : 8 bit value 2) 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73: the characters 'v','o','r','b','i','s' as six octets \end{Verbatim} @@ -49,23 +49,23 @@ relevant pieces of information about the audio stream. The identification header is coded as follows: \begin{Verbatim}[commandchars=\\\{\}] - 1) [vorbis_version] = read 32 bits as unsigned integer - 2) [audio_channels] = read 8 bit integer as unsigned - 3) [audio_sample_rate] = read 32 bits as unsigned integer - 4) [bitrate_maximum] = read 32 bits as signed integer - 5) [bitrate_nominal] = read 32 bits as signed integer - 6) [bitrate_minimum] = read 32 bits as signed integer - 7) [blocksize_0] = 2 exponent (read 4 bits as unsigned integer) - 8) [blocksize_1] = 2 exponent (read 4 bits as unsigned integer) - 9) [framing_flag] = read one bit + 1) [vorbis\_version] = read 32 bits as unsigned integer + 2) [audio\_channels] = read 8 bit integer as unsigned + 3) [audio\_sample\_rate] = read 32 bits as unsigned integer + 4) [bitrate\_maximum] = read 32 bits as signed integer + 5) [bitrate\_nominal] = read 32 bits as signed integer + 6) [bitrate\_minimum] = read 32 bits as signed integer + 7) [blocksize\_0] = 2 exponent (read 4 bits as unsigned integer) + 8) [blocksize\_1] = 2 exponent (read 4 bits as unsigned integer) + 9) [framing\_flag] = read one bit \end{Verbatim} -\varname{[vorbis_version]} is to read '0' in order to be compatible -with this document. Both \varname{[audio_channels]} and -\varname{[audio_sample_rate]} must read greater than zero. Allowed final +\varname{[vorbis\_version]} is to read '0' in order to be compatible +with this document. Both \varname{[audio\_channels]} and +\varname{[audio\_sample\_rate]} must read greater than zero. Allowed final blocksize values are 64, 128, 256, 512, 1024, 2048, 4096 and 8192 in -Vorbis I. \varname{[blocksize_0]} must be less than or equal to -\varname{[blocksize_1]}. The framing bit must be nonzero. Failure to +Vorbis I. \varname{[blocksize\_0]} must be less than or equal to +\varname{[blocksize\_1]}. The framing bit must be nonzero. Failure to meet any of these conditions renders a stream undecodable. The bitrate fields above are used only as hints. The nominal bitrate @@ -108,11 +108,11 @@ proceeds in the following order: \paragraph{Codebooks} \begin{enumerate} -\item \varname{[vorbis_codebook_count]} = read eight bits as unsigned integer and add one -\item Decode \varname{[vorbis_codebook_count]} codebooks in order as defined +\item \varname{[vorbis\_codebook\_count]} = read eight bits as unsigned integer and add one +\item Decode \varname{[vorbis\_codebook\_count]} codebooks in order as defined in \xref{vorbis:spec:codebook}. Save each configuration, in order, in an array of -codebook configurations \varname{[vorbis_codebook_configurations]}. +codebook configurations \varname{[vorbis\_codebook\_configurations]}. \end{enumerate} @@ -124,8 +124,8 @@ configuration placeholder values must be read to maintain bitstream sync. \begin{enumerate} -\item \varname{[vorbis_time_count]} = read 6 bits as unsigned integer and add one -\item read \varname{[vorbis_time_count]} 16 bit values; each value should be zero. If any value is nonzero, this is an error condition and the stream is undecodable. +\item \varname{[vorbis\_time\_count]} = read 6 bits as unsigned integer and add one +\item read \varname{[vorbis\_time\_count]} 16 bit values; each value should be zero. If any value is nonzero, this is an error condition and the stream is undecodable. \end{enumerate} @@ -136,17 +136,17 @@ Vorbis uses two floor types; header decode is handed to the decode abstraction of the appropriate type. \begin{enumerate} - \item \varname{[vorbis_floor_count]} = read 6 bits as unsigned integer and add one - \item For each \varname{[i]} of \varname{[vorbis_floor_count]} floor numbers: + \item \varname{[vorbis\_floor\_count]} = read 6 bits as unsigned integer and add one + \item For each \varname{[i]} of \varname{[vorbis\_floor\_count]} floor numbers: \begin{enumerate} - \item read the floor type: vector \varname{[vorbis_floor_types]} element \varname{[i]} = + \item read the floor type: vector \varname{[vorbis\_floor\_types]} element \varname{[i]} = read 16 bits as unsigned integer \item If the floor type is zero, decode the floor configuration as defined in \xref{vorbis:spec:floor0}; save this -configuration in slot \varname{[i]} of the floor configuration array \varname{[vorbis_floor_configurations]}. +configuration in slot \varname{[i]} of the floor configuration array \varname{[vorbis\_floor\_configurations]}. \item If the floor type is one, -decode the floor configuration as defined in \xref{vorbis:spec:floor1}; save this configuration in slot \varname{[i]} of the floor configuration array \varname{[vorbis_floor_configurations]}. +decode the floor configuration as defined in \xref{vorbis:spec:floor1}; save this configuration in slot \varname{[i]} of the floor configuration array \varname{[vorbis\_floor\_configurations]}. \item If the the floor type is greater than one, this stream is undecodable; ERROR CONDITION \end{enumerate} @@ -160,13 +160,13 @@ Vorbis uses three residue types; header decode of each type is identical. \begin{enumerate} -\item \varname{[vorbis_residue_count]} = read 6 bits as unsigned integer and add one +\item \varname{[vorbis\_residue\_count]} = read 6 bits as unsigned integer and add one -\item For each of \varname{[vorbis_residue_count]} residue numbers: +\item For each of \varname{[vorbis\_residue\_count]} residue numbers: \begin{enumerate} - \item read the residue type; vector \varname{[vorbis_residue_types]} element \varname{[i]} = read 16 bits as unsigned integer + \item read the residue type; vector \varname{[vorbis\_residue\_types]} element \varname{[i]} = read 16 bits as unsigned integer \item If the residue type is zero, -one or two, decode the residue configuration as defined in \xref{vorbis:spec:residue}; save this configuration in slot \varname{[i]} of the residue configuration array \varname{[vorbis_residue_configurations]}. +one or two, decode the residue configuration as defined in \xref{vorbis:spec:residue}; save this configuration in slot \varname{[i]} of the residue configuration array \varname{[vorbis\_residue\_configurations]}. \item If the the residue type is greater than two, this stream is undecodable; ERROR CONDITION \end{enumerate} @@ -185,8 +185,8 @@ uses a single mapping type (0), with implicit PCM channel mappings. % rewrite this pseudocode using listings or algoritmicx or some other % package geared towards this. \begin{enumerate} - \item \varname{[vorbis_mapping_count]} = read 6 bits as unsigned integer and add one - \item For each \varname{[i]} of \varname{[vorbis_mapping_count]} mapping numbers: + \item \varname{[vorbis\_mapping\_count]} = read 6 bits as unsigned integer and add one + \item For each \varname{[i]} of \varname{[vorbis\_mapping\_count]} mapping numbers: \begin{enumerate} \item read the mapping type: 16 bits as unsigned integer. There's no reason to save the mapping type in Vorbis I. \item If the mapping type is nonzero, the stream is undecodable @@ -194,8 +194,8 @@ uses a single mapping type (0), with implicit PCM channel mappings. \begin{enumerate} \item read 1 bit as a boolean flag \begin{enumerate} - \item if set, \varname{[vorbis_mapping_submaps]} = read 4 bits as unsigned integer and add one - \item if unset, \varname{[vorbis_mapping_submaps]} = 1 + \item if set, \varname{[vorbis\_mapping\_submaps]} = read 4 bits as unsigned integer and add one + \item if unset, \varname{[vorbis\_mapping\_submaps]} = 1 \end{enumerate} @@ -203,39 +203,39 @@ uses a single mapping type (0), with implicit PCM channel mappings. \begin{enumerate} \item if set, square polar channel mapping is in use: \begin{itemize} - \item \varname{[vorbis_mapping_coupling_steps]} = read 8 bits as unsigned integer and add one - \item for \varname{[j]} each of \varname{[vorbis_mapping_coupling_steps]} steps: + \item \varname{[vorbis\_mapping\_coupling\_steps]} = read 8 bits as unsigned integer and add one + \item for \varname{[j]} each of \varname{[vorbis\_mapping\_coupling\_steps]} steps: \begin{itemize} - \item vector \varname{[vorbis_mapping_magnitude]} element \varname{[j]}= read \link{vorbis:spec:ilog}{ilog}(\varname{[audio_channels]} - 1) bits as unsigned integer - \item vector \varname{[vorbis_mapping_angle]} element \varname{[j]}= read \link{vorbis:spec:ilog}{ilog}(\varname{[audio_channels]} - 1) bits as unsigned integer - \item the numbers read in the above two steps are channel numbers representing the channel to treat as magnitude and the channel to treat as angle, respectively. If for any coupling step the angle channel number equals the magnitude channel number, the magnitude channel number is greater than \varname{[audio_channels]}-1, or the angle channel is greater than \varname{[audio_channels]}-1, the stream is undecodable. + \item vector \varname{[vorbis\_mapping\_magnitude]} element \varname{[j]}= read \link{vorbis:spec:ilog}{ilog}(\varname{[audio\_channels]} - 1) bits as unsigned integer + \item vector \varname{[vorbis\_mapping\_angle]} element \varname{[j]}= read \link{vorbis:spec:ilog}{ilog}(\varname{[audio\_channels]} - 1) bits as unsigned integer + \item the numbers read in the above two steps are channel numbers representing the channel to treat as magnitude and the channel to treat as angle, respectively. If for any coupling step the angle channel number equals the magnitude channel number, the magnitude channel number is greater than \varname{[audio\_channels]}-1, or the angle channel is greater than \varname{[audio\_channels]}-1, the stream is undecodable. \end{itemize} \end{itemize} - \item if unset, \varname{[vorbis_mapping_coupling_steps]} = 0 + \item if unset, \varname{[vorbis\_mapping\_coupling\_steps]} = 0 \end{enumerate} \item read 2 bits (reserved field); if the value is nonzero, the stream is undecodable - \item if \varname{[vorbis_mapping_submaps]} is greater than one, we read channel multiplex settings. For each \varname{[j]} of \varname{[audio_channels]} channels: + \item if \varname{[vorbis\_mapping\_submaps]} is greater than one, we read channel multiplex settings. For each \varname{[j]} of \varname{[audio\_channels]} channels: \begin{enumerate} - \item vector \varname{[vorbis_mapping_mux]} element \varname{[j]} = read 4 bits as unsigned integer - \item if the value is greater than the highest numbered submap (\varname{[vorbis_mapping_submaps]} - 1), this in an error condition rendering the stream undecodable + \item vector \varname{[vorbis\_mapping\_mux]} element \varname{[j]} = read 4 bits as unsigned integer + \item if the value is greater than the highest numbered submap (\varname{[vorbis\_mapping\_submaps]} - 1), this in an error condition rendering the stream undecodable \end{enumerate} - \item for each submap \varname{[j]} of \varname{[vorbis_mapping_submaps]} submaps, read the floor and residue numbers for use in decoding that submap: + \item for each submap \varname{[j]} of \varname{[vorbis\_mapping\_submaps]} submaps, read the floor and residue numbers for use in decoding that submap: \begin{enumerate} \item read and discard 8 bits (the unused time configuration placeholder) - \item read 8 bits as unsigned integer for the floor number; save in vector \varname{[vorbis_mapping_submap_floor]} element \varname{[j]} + \item read 8 bits as unsigned integer for the floor number; save in vector \varname{[vorbis\_mapping\_submap\_floor]} element \varname{[j]} \item verify the floor number is not greater than the highest number floor configured for the bitstream. If it is, the bitstream is undecodable - \item read 8 bits as unsigned integer for the residue number; save in vector \varname{[vorbis_mapping_submap_residue]} element \varname{[j]} + \item read 8 bits as unsigned integer for the residue number; save in vector \varname{[vorbis\_mapping\_submap\_residue]} element \varname{[j]} \item verify the residue number is not greater than the highest number residue configured for the bitstream. If it is, the bitstream is undecodable \end{enumerate} - \item save this mapping configuration in slot \varname{[i]} of the mapping configuration array \varname{[vorbis_mapping_configurations]}. + \item save this mapping configuration in slot \varname{[i]} of the mapping configuration array \varname{[vorbis\_mapping\_configurations]}. \end{enumerate} \end{enumerate} @@ -247,18 +247,18 @@ uses a single mapping type (0), with implicit PCM channel mappings. \paragraph{Modes} \begin{enumerate} - \item \varname{[vorbis_mode_count]} = read 6 bits as unsigned integer and add one - \item For each of \varname{[vorbis_mode_count]} mode numbers: + \item \varname{[vorbis\_mode\_count]} = read 6 bits as unsigned integer and add one + \item For each of \varname{[vorbis\_mode\_count]} mode numbers: \begin{enumerate} - \item \varname{[vorbis_mode_blockflag]} = read 1 bit - \item \varname{[vorbis_mode_windowtype]} = read 16 bits as unsigned integer - \item \varname{[vorbis_mode_transformtype]} = read 16 bits as unsigned integer - \item \varname{[vorbis_mode_mapping]} = read 8 bits as unsigned integer + \item \varname{[vorbis\_mode\_blockflag]} = read 1 bit + \item \varname{[vorbis\_mode\_windowtype]} = read 16 bits as unsigned integer + \item \varname{[vorbis\_mode\_transformtype]} = read 16 bits as unsigned integer + \item \varname{[vorbis\_mode\_mapping]} = read 8 bits as unsigned integer \item verify ranges; zero is the only legal value in Vorbis I for -\varname{[vorbis_mode_windowtype]} -and \varname{[vorbis_mode_transformtype]}. \varname{[vorbis_mode_mapping]} must not be greater than the highest number mapping in use. Any illegal values render the stream undecodable. +\varname{[vorbis\_mode\_windowtype]} +and \varname{[vorbis\_mode\_transformtype]}. \varname{[vorbis\_mode\_mapping]} must not be greater than the highest number mapping in use. Any illegal values render the stream undecodable. \item save this mode configuration in slot \varname{[i]} of the mode configuration array -\varname{[vorbis_mode_configurations]}. +\varname{[vorbis\_mode\_configurations]}. \end{enumerate} \item read 1 bit as a framing flag. If unset, a framing error occurred and the stream is not @@ -286,25 +286,25 @@ must ignore the packet and not attempt decoding it to audio}. \subsubsection{packet type, mode and window decode} \begin{enumerate} - \item read 1 bit \varname{[packet_type]}; check that packet type is 0 (audio) - \item read \link{vorbis:spec:ilog}{ilog}([vorbis_mode_count]-1) bits -\varname{[mode_number]} - \item decode blocksize \varname{[n]} is equal to \varname{[blocksize_0]} if -\varname{[vorbis_mode_blockflag]} is 0, else \varname{[n]} is equal to \varname{[blocksize_1]}. + \item read 1 bit \varname{[packet\_type]}; check that packet type is 0 (audio) + \item read \link{vorbis:spec:ilog}{ilog}([vorbis\_mode\_count]-1) bits +\varname{[mode\_number]} + \item decode blocksize \varname{[n]} is equal to \varname{[blocksize\_0]} if +\varname{[vorbis\_mode\_blockflag]} is 0, else \varname{[n]} is equal to \varname{[blocksize\_1]}. \item perform window selection and setup; this window is used later by the inverse MDCT: \begin{enumerate} - \item if this is a long window (the \varname{[vorbis_mode_blockflag]} flag of this mode is + \item if this is a long window (the \varname{[vorbis\_mode\_blockflag]} flag of this mode is set): \begin{enumerate} - \item read 1 bit for \varname{[previous_window_flag]} - \item read 1 bit for \varname{[next_window_flag]} - \item if \varname{[previous_window_flag]} is not set, the left half + \item read 1 bit for \varname{[previous\_window\_flag]} + \item read 1 bit for \varname{[next\_window\_flag]} + \item if \varname{[previous\_window\_flag]} is not set, the left half of the window will be a hybrid window for lapping with a short block. See \xref{vorbis:spec:window} for an illustration of overlapping dissimilar windows. Else, the left half window will have normal long shape. - \item if \varname{[next_window_flag]} is not set, the right half of + \item if \varname{[next\_window\_flag]} is not set, the right half of the window will be a hybrid window for lapping with a short block. See \xref{vorbis:spec:window} for an illustration of overlapping dissimilar @@ -324,44 +324,44 @@ lapping requirements can affect overall shape. Window generation proceeds as follows: \begin{enumerate} - \item \varname{[window_center]} = \varname{[n]} / 2 - \item if (\varname{[vorbis_mode_blockflag]} is set and \varname{[previous_window_flag]} is + \item \varname{[window\_center]} = \varname{[n]} / 2 + \item if (\varname{[vorbis\_mode\_blockflag]} is set and \varname{[previous\_window\_flag]} is not set) then \begin{enumerate} - \item \varname{[left_window_start]} = \varname{[n]}/4 - -\varname{[blocksize_0]}/4 - \item \varname{[left_window_end]} = \varname{[n]}/4 + \varname{[blocksize_0]}/4 - \item \varname{[left_n]} = \varname{[blocksize_0]}/2 + \item \varname{[left\_window\_start]} = \varname{[n]}/4 - +\varname{[blocksize\_0]}/4 + \item \varname{[left\_window\_end]} = \varname{[n]}/4 + \varname{[blocksize\_0]}/4 + \item \varname{[left\_n]} = \varname{[blocksize\_0]}/2 \end{enumerate} else \begin{enumerate} - \item \varname{[left_window_start]} = 0 - \item \varname{[left_window_end]} = \varname{[window_center]} - \item \varname{[left_n]} = \varname{[n]}/2 + \item \varname{[left\_window\_start]} = 0 + \item \varname{[left\_window\_end]} = \varname{[window\_center]} + \item \varname{[left\_n]} = \varname{[n]}/2 \end{enumerate} - \item if (\varname{[vorbis_mode_blockflag]} is set and \varname{[next_window_flag]} is not + \item if (\varname{[vorbis\_mode\_blockflag]} is set and \varname{[next\_window\_flag]} is not set) then \begin{enumerate} - \item \varname{[right_window_start]} = \varname{[n]*3}/4 - -\varname{[blocksize_0]}/4 - \item \varname{[right_window_end]} = \varname{[n]*3}/4 + -\varname{[blocksize_0]}/4 - \item \varname{[right_n]} = \varname{[blocksize_0]}/2 + \item \varname{[right\_window\_start]} = \varname{[n]*3}/4 - +\varname{[blocksize\_0]}/4 + \item \varname{[right\_window\_end]} = \varname{[n]*3}/4 + +\varname{[blocksize\_0]}/4 + \item \varname{[right\_n]} = \varname{[blocksize\_0]}/2 \end{enumerate} else \begin{enumerate} - \item \varname{[right_window_start]} = \varname{[window_center]} - \item \varname{[right_window_end]} = \varname{[n]} - \item \varname{[right_n]} = \varname{[n]}/2 + \item \varname{[right\_window\_start]} = \varname{[window\_center]} + \item \varname{[right\_window\_end]} = \varname{[n]} + \item \varname{[right\_n]} = \varname{[n]}/2 \end{enumerate} - \item window from range 0 ... \varname{[left_window_start]}-1 inclusive is zero - \item for \varname{[i]} in range \varname{[left_window_start]} ... -\varname{[left_window_end]}-1, window(\varname{[i]}) = $\sin(\frac{\pi}{2} * \sin^2($ (\varname{[i]}-\varname{[left_window_start]}+0.5) / \varname{[left_n]} $* \frac{\pi}{2})$ ) - \item window from range \varname{[left_window_end]} ... \varname{[right_window_start]}-1 -inclusive is one\item for \varname{[i]} in range \varname{[right_window_start]} ... \varname{[right_window_end]}-1, window(\varname{[i]}) = $\sin(\frac{\pi}{2} * \sin^2($ (\varname{[i]}-\varname{[right_window_start]}+0.5) / \varname{[right_n]} $ * \frac{\pi}{2} + \frac{\pi}{2})$ ) -\item window from range \varname{[right_window_start]} ... \varname{[n]}-1 is + \item window from range 0 ... \varname{[left\_window\_start]}-1 inclusive is zero + \item for \varname{[i]} in range \varname{[left\_window\_start]} ... +\varname{[left\_window\_end]}-1, window(\varname{[i]}) = $\sin(\frac{\pi}{2} * \sin^2($ (\varname{[i]}-\varname{[left\_window\_start]}+0.5) / \varname{[left\_n]} $* \frac{\pi}{2})$ ) + \item window from range \varname{[left\_window\_end]} ... \varname{[right\_window\_start]}-1 +inclusive is one\item for \varname{[i]} in range \varname{[right\_window\_start]} ... \varname{[right\_window\_end]}-1, window(\varname{[i]}) = $\sin(\frac{\pi}{2} * \sin^2($ (\varname{[i]}-\varname{[right\_window\_start]}+0.5) / \varname{[right\_n]} $ * \frac{\pi}{2} + \frac{\pi}{2})$ ) +\item window from range \varname{[right\_window\_start]} ... \varname{[n]}-1 is zero \end{enumerate} @@ -375,30 +375,30 @@ occurrence. \subsubsection{floor curve decode} From this point on, we assume out decode context is using mode number -\varname{[mode_number]} from configuration array -\varname{[vorbis_mode_configurations]} and the map number -\varname{[vorbis_mode_mapping]} (specified by the current mode) taken +\varname{[mode\_number]} from configuration array +\varname{[vorbis\_mode\_configurations]} and the map number +\varname{[vorbis\_mode\_mapping]} (specified by the current mode) taken from the mapping configuration array -\varname{[vorbis_mapping_configurations]}. +\varname{[vorbis\_mapping\_configurations]}. Floor curves are decoded one-by-one in channel order. -For each floor \varname{[i]} of \varname{[audio_channels]} +For each floor \varname{[i]} of \varname{[audio\_channels]} \begin{enumerate} - \item \varname{[submap_number]} = element \varname{[i]} of vector [vorbis_mapping_mux] - \item \varname{[floor_number]} = element \varname{[submap_number]} of vector -[vorbis_submap_floor] + \item \varname{[submap\_number]} = element \varname{[i]} of vector [vorbis\_mapping\_mux] + \item \varname{[floor\_number]} = element \varname{[submap\_number]} of vector +[vorbis\_submap\_floor] \item if the floor type of this -floor (vector \varname{[vorbis_floor_types]} element -\varname{[floor_number]}) is zero then decode the floor for +floor (vector \varname{[vorbis\_floor\_types]} element +\varname{[floor\_number]}) is zero then decode the floor for channel \varname{[i]} according to the \xref{vorbis:spec:floor0-decode} \item if the type of this floor is one then decode the floor for channel \varname{[i]} according to the \xref{vorbis:spec:floor1-decode} \item save the needed decoded floor information for channel for later synthesis - \item if the decoded floor returned 'unused', set vector \varname{[no_residue]} element -\varname{[i]} to true, else set vector \varname{[no_residue]} element \varname{[i]} to + \item if the decoded floor returned 'unused', set vector \varname{[no\_residue]} element +\varname{[i]} to true, else set vector \varname{[no\_residue]} element \varname{[i]} to false \end{enumerate} @@ -418,13 +418,13 @@ coded in the stream, save for one complication. If some vectors are used and some are not, channel coupling could result in mixing a zeroed and nonzeroed vector to produce two nonzeroed vectors. -for each \varname{[i]} from 0 ... \varname{[vorbis_mapping_coupling_steps]}-1 +for each \varname{[i]} from 0 ... \varname{[vorbis\_mapping\_coupling\_steps]}-1 \begin{enumerate} - \item if either \varname{[no_residue]} entry for channel -(\varname{[vorbis_mapping_magnitude]} element \varname{[i]}) + \item if either \varname{[no\_residue]} entry for channel +(\varname{[vorbis\_mapping\_magnitude]} element \varname{[i]}) or channel -(\varname{[vorbis_mapping_angle]} element \varname{[i]}) +(\varname{[vorbis\_mapping\_angle]} element \varname{[i]}) are set to false, then both must be set to false. Note that an 'unused' floor has no decoded floor information; it is important that this is remembered at floor curve synthesis time. @@ -438,34 +438,34 @@ remembered at floor curve synthesis time. Unlike floors, which are decoded in channel order, the residue vectors are decoded in submap order. -for each submap \varname{[i]} in order from 0 ... \varname{[vorbis_mapping_submaps]}-1 +for each submap \varname{[i]} in order from 0 ... \varname{[vorbis\_mapping\_submaps]}-1 \begin{enumerate} \item \varname{[ch]} = 0 - \item for each channel \varname{[j]} in order from 0 ... \varname{[audio_channels]} - 1 + \item for each channel \varname{[j]} in order from 0 ... \varname{[audio\_channels]} - 1 \begin{enumerate} - \item if channel \varname{[j]} in submap \varname{[i]} (vector \varname{[vorbis_mapping_mux]} element \varname{[j]} is equal to \varname{[i]}) + \item if channel \varname{[j]} in submap \varname{[i]} (vector \varname{[vorbis\_mapping\_mux]} element \varname{[j]} is equal to \varname{[i]}) \begin{enumerate} - \item if vector \varname{[no_residue]} element \varname{[j]} is true + \item if vector \varname{[no\_residue]} element \varname{[j]} is true \begin{enumerate} - \item vector \varname{[do_not_decode_flag]} element \varname{[ch]} is set + \item vector \varname{[do\_not\_decode\_flag]} element \varname{[ch]} is set \end{enumerate} else \begin{enumerate} - \item vector \varname{[do_not_decode_flag]} element \varname{[ch]} is unset + \item vector \varname{[do\_not\_decode\_flag]} element \varname{[ch]} is unset \end{enumerate} \item increment \varname{[ch]} \end{enumerate} \end{enumerate} - \item \varname{[residue_number]} = vector \varname{[vorbis_mapping_submap_residue]} element \varname{[i]} - \item \varname{[residue_type]} = vector \varname{[vorbis_residue_types]} element \varname{[residue_number]} - \item decode \varname{[ch]} vectors using residue \varname{[residue_number]}, according to type \varname{[residue_type]}, also passing vector \varname{[do_not_decode_flag]} to indicate which vectors in the bundle should not be decoded. Correct per-vector decode length is \varname{[n]}/2. + \item \varname{[residue\_number]} = vector \varname{[vorbis\_mapping\_submap\_residue]} element \varname{[i]} + \item \varname{[residue\_type]} = vector \varname{[vorbis\_residue\_types]} element \varname{[residue\_number]} + \item decode \varname{[ch]} vectors using residue \varname{[residue\_number]}, according to type \varname{[residue\_type]}, also passing vector \varname{[do\_not\_decode\_flag]} to indicate which vectors in the bundle should not be decoded. Correct per-vector decode length is \varname{[n]}/2. \item \varname{[ch]} = 0 - \item for each channel \varname{[j]} in order from 0 ... \varname{[audio_channels]} + \item for each channel \varname{[j]} in order from 0 ... \varname{[audio\_channels]} \begin{enumerate} - \item if channel \varname{[j]} is in submap \varname{[i]} (vector \varname{[vorbis_mapping_mux]} element \varname{[j]} is equal to \varname{[i]}) + \item if channel \varname{[j]} is in submap \varname{[i]} (vector \varname{[vorbis\_mapping\_mux]} element \varname{[j]} is equal to \varname{[i]}) \begin{enumerate} \item residue vector for channel \varname{[j]} is set to decoded residue vector \varname{[ch]} \item increment \varname{[ch]} @@ -479,26 +479,26 @@ for each submap \varname{[i]} in order from 0 ... \varname{[vorbis_mapping_subma \subsubsection{inverse coupling} -for each \varname{[i]} from \varname{[vorbis_mapping_coupling_steps]}-1 descending to 0 +for each \varname{[i]} from \varname{[vorbis\_mapping\_coupling\_steps]}-1 descending to 0 \begin{enumerate} - \item \varname{[magnitude_vector]} = the residue vector for channel -(vector \varname{[vorbis_mapping_magnitude]} element \varname{[i]}) - \item \varname{[angle_vector]} = the residue vector for channel (vector -\varname{[vorbis_mapping_angle]} element \varname{[i]}) - \item for each scalar value \varname{[M]} in vector \varname{[magnitude_vector]} and the corresponding scalar value \varname{[A]} in vector \varname{[angle_vector]}: + \item \varname{[magnitude\_vector]} = the residue vector for channel +(vector \varname{[vorbis\_mapping\_magnitude]} element \varname{[i]}) + \item \varname{[angle\_vector]} = the residue vector for channel (vector +\varname{[vorbis\_mapping\_angle]} element \varname{[i]}) + \item for each scalar value \varname{[M]} in vector \varname{[magnitude\_vector]} and the corresponding scalar value \varname{[A]} in vector \varname{[angle\_vector]}: \begin{enumerate} \item if (\varname{[M]} is greater than zero) \begin{enumerate} \item if (\varname{[A]} is greater than zero) \begin{enumerate} - \item \varname{[new_M]} = \varname{[M]} - \item \varname{[new_A]} = \varname{[M]}-\varname{[A]} + \item \varname{[new\_M]} = \varname{[M]} + \item \varname{[new\_A]} = \varname{[M]}-\varname{[A]} \end{enumerate} else \begin{enumerate} - \item \varname{[new_A]} = \varname{[M]} - \item \varname{[new_M]} = \varname{[M]}+\varname{[A]} + \item \varname{[new\_A]} = \varname{[M]} + \item \varname{[new\_M]} = \varname{[M]}+\varname{[A]} \end{enumerate} \end{enumerate} @@ -506,19 +506,19 @@ for each \varname{[i]} from \varname{[vorbis_mapping_coupling_steps]}-1 descendi \begin{enumerate} \item if (\varname{[A]} is greater than zero) \begin{enumerate} - \item \varname{[new_M]} = \varname{[M]} - \item \varname{[new_A]} = \varname{[M]}+\varname{[A]} + \item \varname{[new\_M]} = \varname{[M]} + \item \varname{[new\_A]} = \varname{[M]}+\varname{[A]} \end{enumerate} else \begin{enumerate} - \item \varname{[new_A]} = \varname{[M]} - \item \varname{[new_M]} = \varname{[M]}-\varname{[A]} + \item \varname{[new\_A]} = \varname{[M]} + \item \varname{[new\_M]} = \varname{[M]}-\varname{[A]} \end{enumerate} \end{enumerate} - \item set scalar value \varname{[M]} in vector \varname{[magnitude_vector]} to \varname{[new_M]} - \item set scalar value \varname{[A]} in vector \varname{[angle_vector]} to \varname{[new_A]} + \item set scalar value \varname{[M]} in vector \varname{[magnitude\_vector]} to \varname{[new\_M]} + \item set scalar value \varname{[A]} in vector \varname{[angle\_vector]} to \varname{[new\_A]} \end{enumerate} \end{enumerate} @@ -573,7 +573,7 @@ function used for the MDCT is the function described earlier. -\subsubsection{overlap_add} +\subsubsection{overlap\_add} Windowed MDCT output is overlapped and added with the right hand data of the previous window such that the 3/4 point of the previous window @@ -590,7 +590,7 @@ attention however to returning the correct data range; the amount of data to be returned is: \begin{programlisting} -window_blocksize(previous_window)/4+window_blocksize(current_window)/4 +window\_blocksize(previous\_window)/4+window\_blocksize(current\_window)/4 \end{programlisting} from the center (element windowsize/2) of the previous window to the diff --git a/doc/05-comment.tex b/doc/05-comment.tex index 79fd9e9..f06f6b7 100644 --- a/doc/05-comment.tex +++ b/doc/05-comment.tex @@ -46,15 +46,15 @@ unaligned 32 bit little endian unsigned integers. The comment header is decoded as follows: \begin{programlisting} - 1) [vendor_length] = read an unsigned integer of 32 bits - 2) [vendor_string] = read a UTF-8 vector as [vendor_length] octets - 3) [user_comment_list_length] = read an unsigned integer of 32 bits - 4) iterate [user_comment_list_length] times { + 1) [vendor\_length] = read an unsigned integer of 32 bits + 2) [vendor\_string] = read a UTF-8 vector as [vendor\_length] octets + 3) [user\_comment\_list\_length] = read an unsigned integer of 32 bits + 4) iterate [user\_comment\_list\_length] times { 5) [length] = read an unsigned integer of 32 bits 6) this iteration's user comment = read a UTF-8 vector as [length] octets } - 7) [framing_bit] = read a single bit as boolean - 8) if ( [framing_bit] unset or end-of-packet ) then ERROR + 7) [framing\_bit] = read a single bit as boolean + 8) if ( [framing\_bit] unset or end-of-packet ) then ERROR 9) done. \end{programlisting} @@ -124,7 +124,7 @@ info) Use Permitted', a URL to a license such as a Creative Commons license ("www.creativecommons.org/blahblah/license.html") or the EFF Open Audio License ('distributed under the terms of the Open Audio -License. see http://www.eff.org/IP/Open_licenses/eff_oal.html for +License. see http://www.eff.org/IP/Open\_licenses/eff\_oal.html for details'), etc. \item[ORGANIZATION] @@ -231,7 +231,7 @@ bitstream octet first): \end{enumerate} -This is actually somewhat easier to describe in code; implementation of the above can be found in \filename{vorbis/lib/info.c}, \function{_vorbis_pack_comment()} and \function{_vorbis_unpack_comment()}. +This is actually somewhat easier to describe in code; implementation of the above can be found in \filename{vorbis/lib/info.c}, \function{\_vorbis\_pack\_comment()} and \function{\_vorbis\_unpack\_comment()}. diff --git a/doc/07-floor1.tex b/doc/07-floor1.tex index 216eb1d..c431a94 100644 --- a/doc/07-floor1.tex +++ b/doc/07-floor1.tex @@ -111,44 +111,44 @@ context. \begin{Verbatim}[commandchars=\\\{\}] - 1) [floor1_partitions] = read 5 bits as unsigned integer - 2) [maximum_class] = -1 - 3) iterate [i] over the range 0 ... [floor1_partitions]-1 \{ + 1) [floor1\_partitions] = read 5 bits as unsigned integer + 2) [maximum\_class] = -1 + 3) iterate [i] over the range 0 ... [floor1\_partitions]-1 \{ - 4) vector [floor1_partition_class_list] element [i] = read 4 bits as unsigned integer + 4) vector [floor1\_partition\_class\_list] element [i] = read 4 bits as unsigned integer \} - 5) [maximum_class] = largest integer scalar value in vector [floor1_partition_class_list] - 6) iterate [i] over the range 0 ... [maximum_class] \{ + 5) [maximum\_class] = largest integer scalar value in vector [floor1\_partition\_class\_list] + 6) iterate [i] over the range 0 ... [maximum\_class] \{ - 7) vector [floor1_class_dimensions] element [i] = read 3 bits as unsigned integer and add 1 - 8) vector [floor1_class_subclasses] element [i] = read 2 bits as unsigned integer - 9) if ( vector [floor1_class_subclasses] element [i] is nonzero ) \{ + 7) vector [floor1\_class\_dimensions] element [i] = read 3 bits as unsigned integer and add 1 + 8) vector [floor1\_class\_subclasses] element [i] = read 2 bits as unsigned integer + 9) if ( vector [floor1\_class\_subclasses] element [i] is nonzero ) \{ - 10) vector [floor1_class_masterbooks] element [i] = read 8 bits as unsigned integer + 10) vector [floor1\_class\_masterbooks] element [i] = read 8 bits as unsigned integer \} - 11) iterate [j] over the range 0 ... (2 exponent [floor1_class_subclasses] element [i]) - 1 \{ + 11) iterate [j] over the range 0 ... (2 exponent [floor1\_class\_subclasses] element [i]) - 1 \{ - 12) array [floor1_subclass_books] element [i],[j] = + 12) array [floor1\_subclass\_books] element [i],[j] = read 8 bits as unsigned integer and subtract one \} \} - 13) [floor1_multiplier] = read 2 bits as unsigned integer and add one + 13) [floor1\_multiplier] = read 2 bits as unsigned integer and add one 14) [rangebits] = read 4 bits as unsigned integer - 15) vector [floor1_X_list] element [0] = 0 - 16) vector [floor1_X_list] element [1] = 2 exponent [rangebits]; - 17) [floor1_values] = 2 - 18) iterate [i] over the range 0 ... [floor1_partitions]-1 \{ - - 19) [current_class_number] = vector [floor1_partition_class_list] element [i] - 20) iterate [j] over the range 0 ... ([floor1_class_dimensions] element [current_class_number])-1 \{ - 21) vector [floor1_X_list] element ([floor1_values]) = + 15) vector [floor1\_X\_list] element [0] = 0 + 16) vector [floor1\_X\_list] element [1] = 2 exponent [rangebits]; + 17) [floor1\_values] = 2 + 18) iterate [i] over the range 0 ... [floor1\_partitions]-1 \{ + + 19) [current\_class\_number] = vector [floor1\_partition\_class\_list] element [i] + 20) iterate [j] over the range 0 ... ([floor1\_class\_dimensions] element [current\_class\_number])-1 \{ + 21) vector [floor1\_X\_list] element ([floor1\_values]) = read [rangebits] bits as unsigned integer - 22) increment [floor1_values] by one + 22) increment [floor1\_values] by one \} \} @@ -157,11 +157,11 @@ context. An end-of-packet condition while reading any aspect of a floor 1 configuration during setup renders a stream undecodable. In addition, -a \varname{[floor1_class_masterbooks]} or -\varname{[floor1_subclass_books]} scalar element greater than the +a \varname{[floor1\_class\_masterbooks]} or +\varname{[floor1\_subclass\_books]} scalar element greater than the highest numbered codebook configured in this stream is an error condition that renders the stream undecodable. All vector -[floor1_x_list] element values must be unique within the vector; a +[floor1\_x\_list] element values must be unique within the vector; a non-unique value renders the stream undecodable. \paragraph{packet decode} \label{vorbis:spec:floor1-decode} @@ -183,35 +183,35 @@ which happens to be approximately -140dB). Assuming \varname{[nonzero]} is set, decode proceeds as follows: \begin{Verbatim}[commandchars=\\\{\}] - 1) [range] = vector \{ 256, 128, 86, 64 \} element ([floor1_multiplier]-1) - 2) vector [floor1_Y] element [0] = read \link{vorbis:spec:ilog}{ilog}([range]-1) bits as unsigned integer - 3) vector [floor1_Y] element [1] = read \link{vorbis:spec:ilog}{ilog}([range]-1) bits as unsigned integer + 1) [range] = vector \{ 256, 128, 86, 64 \} element ([floor1\_multiplier]-1) + 2) vector [floor1\_Y] element [0] = read \link{vorbis:spec:ilog}{ilog}([range]-1) bits as unsigned integer + 3) vector [floor1\_Y] element [1] = read \link{vorbis:spec:ilog}{ilog}([range]-1) bits as unsigned integer 4) [offset] = 2; - 5) iterate [i] over the range 0 ... [floor1_partitions]-1 \{ + 5) iterate [i] over the range 0 ... [floor1\_partitions]-1 \{ - 6) [class] = vector [floor1_partition_class] element [i] - 7) [cdim] = vector [floor1_class_dimensions] element [class] - 8) [cbits] = vector [floor1_class_subclasses] element [class] + 6) [class] = vector [floor1\_partition\_class] element [i] + 7) [cdim] = vector [floor1\_class\_dimensions] element [class] + 8) [cbits] = vector [floor1\_class\_subclasses] element [class] 9) [csub] = (2 exponent [cbits])-1 10) [cval] = 0 11) if ( [cbits] is greater than zero ) \{ 12) [cval] = read from packet using codebook number - (vector [floor1_class_masterbooks] element [class]) in scalar context + (vector [floor1\_class\_masterbooks] element [class]) in scalar context \} 13) iterate [j] over the range 0 ... [cdim]-1 \{ - 14) [book] = array [floor1_subclass_books] element [class],([cval] bitwise AND [csub]) + 14) [book] = array [floor1\_subclass\_books] element [class],([cval] bitwise AND [csub]) 15) [cval] = [cval] right shifted [cbits] bits 16) if ( [book] is not less than zero ) \{ - 17) vector [floor1_Y] element ([j]+[offset]) = read from packet using codebook + 17) vector [floor1\_Y] element ([j]+[offset]) = read from packet using codebook [book] in scalar context \} else [book] is less than zero \{ - 18) vector [floor1_Y] element ([j]+[offset]) = 0 + 18) vector [floor1\_Y] element ([j]+[offset]) = 0 \} \} @@ -229,7 +229,7 @@ operation above, floor decode is to return 'unused' status as if the \varname{[nonzero]} flag had been unset at the beginning of decode. -Vector \varname{[floor1_Y]} contains the values from packet decode +Vector \varname{[floor1\_Y]} contains the values from packet decode needed for floor 1 synthesis. @@ -256,23 +256,23 @@ Unwrap the always-positive-or-zero values read from the packet into +/- difference values, then apply to line prediction. \begin{Verbatim}[commandchars=\\\{\}] - 1) [range] = vector \{ 256, 128, 86, 64 \} element ([floor1_multiplier]-1) - 2) vector [floor1_step2_flag] element [0] = set - 3) vector [floor1_step2_flag] element [1] = set - 4) vector [floor1_final_Y] element [0] = vector [floor1_Y] element [0] - 5) vector [floor1_final_Y] element [1] = vector [floor1_Y] element [1] - 6) iterate [i] over the range 2 ... [floor1_values]-1 \{ - - 7) [low_neighbor_offset] = \link{vorbis:spec:low:neighbor}{low_neighbor}([floor1_X_list],[i]) - 8) [high_neighbor_offset] = \link{vorbis:spec:high:neighbor}{high_neighbor}([floor1_X_list],[i]) - - 9) [predicted] = \link{vorbis:spec:render:point}{render_point}( vector [floor1_X_list] element [low_neighbor_offset], - vector [floor1_final_Y] element [low_neighbor_offset], - vector [floor1_X_list] element [high_neighbor_offset], - vector [floor1_final_Y] element [high_neighbor_offset], - vector [floor1_X_list] element [i] ) - - 10) [val] = vector [floor1_Y] element [i] + 1) [range] = vector \{ 256, 128, 86, 64 \} element ([floor1\_multiplier]-1) + 2) vector [floor1\_step2\_flag] element [0] = set + 3) vector [floor1\_step2\_flag] element [1] = set + 4) vector [floor1\_final\_Y] element [0] = vector [floor1\_Y] element [0] + 5) vector [floor1\_final\_Y] element [1] = vector [floor1\_Y] element [1] + 6) iterate [i] over the range 2 ... [floor1\_values]-1 \{ + + 7) [low\_neighbor\_offset] = \link{vorbis:spec:low:neighbor}{low\_neighbor}([floor1\_X\_list],[i]) + 8) [high\_neighbor\_offset] = \link{vorbis:spec:high:neighbor}{high\_neighbor}([floor1\_X\_list],[i]) + + 9) [predicted] = \link{vorbis:spec:render:point}{render\_point}( vector [floor1\_X\_list] element [low\_neighbor\_offset], + vector [floor1\_final\_Y] element [low\_neighbor\_offset], + vector [floor1\_X\_list] element [high\_neighbor\_offset], + vector [floor1\_final\_Y] element [high\_neighbor\_offset], + vector [floor1\_X\_list] element [i] ) + + 10) [val] = vector [floor1\_Y] element [i] 11) [highroom] = [range] - [predicted] 12) [lowroom] = [predicted] 13) if ( [highroom] is less than [lowroom] ) \{ @@ -287,18 +287,18 @@ Unwrap the always-positive-or-zero values read from the packet into 16) if ( [val] is nonzero ) \{ - 17) vector [floor1_step2_flag] element [low_neighbor_offset] = set - 18) vector [floor1_step2_flag] element [high_neighbor_offset] = set - 19) vector [floor1_step2_flag] element [i] = set + 17) vector [floor1\_step2\_flag] element [low\_neighbor\_offset] = set + 18) vector [floor1\_step2\_flag] element [high\_neighbor\_offset] = set + 19) vector [floor1\_step2\_flag] element [i] = set 20) if ( [val] is greater than or equal to [room] ) \{ 21) if ( [highroom] is greater than [lowroom] ) \{ - 22) vector [floor1_final_Y] element [i] = [val] - [lowroom] + [predicted] + 22) vector [floor1\_final\_Y] element [i] = [val] - [lowroom] + [predicted] \} else [highroom] is not greater than [lowroom] \{ - 23) vector [floor1_final_Y] element [i] = [predicted] - [val] + [highroom] - 1 + 23) vector [floor1\_final\_Y] element [i] = [predicted] - [val] + [highroom] - 1 \} @@ -306,12 +306,12 @@ Unwrap the always-positive-or-zero values read from the packet into 24) if ([val] is odd) \{ - 25) vector [floor1_final_Y] element [i] = + 25) vector [floor1\_final\_Y] element [i] = [predicted] - (([val] + 1) divided by 2 using integer division) \} else [val] is even \{ - 26) vector [floor1_final_Y] element [i] = + 26) vector [floor1\_final\_Y] element [i] = [predicted] + ([val] / 2 using integer division) \} @@ -320,8 +320,8 @@ Unwrap the always-positive-or-zero values read from the packet into \} else [val] is zero \{ - 27) vector [floor1_step2_flag] element [i] = unset - 28) vector [floor1_final_Y] element [i] = [predicted] + 27) vector [floor1\_step2\_flag] element [i] = unset + 28) vector [floor1\_final\_Y] element [i] = [predicted] \} @@ -338,18 +338,18 @@ Unwrap the always-positive-or-zero values read from the packet into Curve synthesis generates a return vector \varname{[floor]} of length \varname{[n]} (where \varname{[n]} is provided by the decode process calling to floor decode). Floor 1 curve synthesis makes use of the -\varname{[floor1_X_list]}, \varname{[floor1_final_Y]} and -\varname{[floor1_step2_flag]} vectors, as well as [floor1_multiplier] -and [floor1_values] values. +\varname{[floor1\_X\_list]}, \varname{[floor1\_final\_Y]} and +\varname{[floor1\_step2\_flag]} vectors, as well as [floor1\_multiplier] +and [floor1\_values] values. Decode begins by sorting the scalars from vectors -\varname{[floor1_X_list]}, \varname{[floor1_final_Y]} and -\varname{[floor1_step2_flag]} together into new vectors -\varname{[floor1_X_list]'}, \varname{[floor1_final_Y]'} and -\varname{[floor1_step2_flag]'} according to ascending sort order of the -values in \varname{[floor1_X_list]}. That is, sort the values of -\varname{[floor1_X_list]} and then apply the same permutation to -elements of the other two vectors so that the X, Y and step2_flag +\varname{[floor1\_X\_list]}, \varname{[floor1\_final\_Y]} and +\varname{[floor1\_step2\_flag]} together into new vectors +\varname{[floor1\_X\_list]'}, \varname{[floor1\_final\_Y]'} and +\varname{[floor1\_step2\_flag]'} according to ascending sort order of the +values in \varname{[floor1\_X\_list]}. That is, sort the values of +\varname{[floor1\_X\_list]} and then apply the same permutation to +elements of the other two vectors so that the X, Y and step2\_flag values still match. Then compute the final curve in one pass: @@ -357,14 +357,14 @@ Then compute the final curve in one pass: \begin{Verbatim}[commandchars=\\\{\}] 1) [hx] = 0 2) [lx] = 0 - 3) [ly] = vector [floor1_final_Y]' element [0] * [floor1_multiplier] - 4) iterate [i] over the range 1 ... [floor1_values]-1 \{ + 3) [ly] = vector [floor1\_final\_Y]' element [0] * [floor1\_multiplier] + 4) iterate [i] over the range 1 ... [floor1\_values]-1 \{ - 5) if ( [floor1_step2_flag]' element [i] is set ) \{ + 5) if ( [floor1\_step2\_flag]' element [i] is set ) \{ - 6) [hy] = [floor1_final_Y]' element [i] * [floor1_multiplier] - 7) [hx] = [floor1_X_list]' element [i] - 8) \link{vorbis:spec:render:line}{render_line}( [lx], [ly], [hx], [hy], [floor] ) + 6) [hy] = [floor1\_final\_Y]' element [i] * [floor1\_multiplier] + 7) [hx] = [floor1\_X\_list]' element [i] + 8) \link{vorbis:spec:render:line}{render\_line}( [lx], [ly], [hx], [hy], [floor] ) 9) [lx] = [hx] 10) [ly] = [hy] \} @@ -372,7 +372,7 @@ Then compute the final curve in one pass: 11) if ( [hx] is less than [n] ) \{ - 12) \link{vorbis:spec:render:line}{render_line}( [hx], [hy], [n], [hy], [floor] ) + 12) \link{vorbis:spec:render:line}{render\_line}( [hx], [hy], [n], [hy], [floor] ) \} @@ -383,7 +383,7 @@ Then compute the final curve in one pass: \} 15) for each scalar in vector [floor], perform a lookup substitution using - the scalar value from [floor] as an offset into the vector \link{vorbis:spec:floor1:inverse:dB:table}{[floor1_inverse_dB_static_table]} + the scalar value from [floor] as an offset into the vector \link{vorbis:spec:floor1:inverse:dB:table}{[floor1\_inverse\_dB\_static\_table]} 16) done diff --git a/doc/08-residue.tex b/doc/08-residue.tex index 767c1fa..b2e63d2 100644 --- a/doc/08-residue.tex +++ b/doc/08-residue.tex @@ -37,11 +37,11 @@ encoded and simply trusting that it is, is as follows: \begin{itemize} \item Each vector is partitioned into multiple equal sized chunks according to configuration specified. If we have a vector size of -\emph{n}, a partition size \emph{residue_partition_size}, and a total +\emph{n}, a partition size \emph{residue\_partition\_size}, and a total of \emph{ch} residue vectors, the total number of partitioned chunks -coded is \emph{n}/\emph{residue_partition_size}*\emph{ch}. It is +coded is \emph{n}/\emph{residue\_partition\_size}*\emph{ch}. It is important to note that the integer division truncates. In the below -example, we assume an example \emph{residue_partition_size} of 8. +example, we assume an example \emph{residue\_partition\_size} of 8. \item Each partition in each vector has a classification number that specifies which of multiple configured VQ codebook setups are used to @@ -156,48 +156,48 @@ vector to begin with, residue type 1 and type 2 are equivalent. Header decode for all three residue types is identical. \begin{programlisting} - 1) [residue_begin] = read 24 bits as unsigned integer - 2) [residue_end] = read 24 bits as unsigned integer - 3) [residue_partition_size] = read 24 bits as unsigned integer and add one - 4) [residue_classifications] = read 6 bits as unsigned integer and add one - 5) [residue_classbook] = read 8 bits as unsigned integer + 1) [residue\_begin] = read 24 bits as unsigned integer + 2) [residue\_end] = read 24 bits as unsigned integer + 3) [residue\_partition\_size] = read 24 bits as unsigned integer and add one + 4) [residue\_classifications] = read 6 bits as unsigned integer and add one + 5) [residue\_classbook] = read 8 bits as unsigned integer \end{programlisting} -\varname{[residue_begin]} and -\varname{[residue_end]} select the specific sub-portion of +\varname{[residue\_begin]} and +\varname{[residue\_end]} select the specific sub-portion of each vector that is actually coded; it implements akin to a bandpass where, for coding purposes, the vector effectively begins at element -\varname{[residue_begin]} and ends at -\varname{[residue_end]}. Preceding and following values in +\varname{[residue\_begin]} and ends at +\varname{[residue\_end]}. Preceding and following values in the unpacked vectors are zeroed. Note that for residue type 2, these -values as well as \varname{[residue_partition_size]}apply to +values as well as \varname{[residue\_partition\_size]}apply to the interleaved vector, not the individual vectors before interleave. -\varname{[residue_partition_size]} is as explained above, -\varname{[residue_classifications]} is the number of possible +\varname{[residue\_partition\_size]} is as explained above, +\varname{[residue\_classifications]} is the number of possible classification to which a partition can belong and -\varname{[residue_classbook]} is the codebook number used to +\varname{[residue\_classbook]} is the codebook number used to code classification codewords. The number of dimensions in book -\varname{[residue_classbook]} determines how many +\varname{[residue\_classbook]} determines how many classification values are grouped into a single classification codeword. Note that the number of entries and dimensions in book -\varname{[residue_classbook]}, along with -\varname{[residue_classifications]}, overdetermines to +\varname{[residue\_classbook]}, along with +\varname{[residue\_classifications]}, overdetermines to possible number of classification codewords. -If \varname{[residue_classifications]}\^{}\varname{[residue_classbook]}.dimensions -exceeds \varname{[residue_classbook]}.entries, the +If \varname{[residue\_classifications]}\^{}\varname{[residue\_classbook]}.dimensions +exceeds \varname{[residue\_classbook]}.entries, the bitstream should be regarded to be undecodable. Next we read a bitmap pattern that specifies which partition classes code values in which passes. \begin{programlisting} - 1) iterate [i] over the range 0 ... [residue_classifications]-1 { + 1) iterate [i] over the range 0 ... [residue\_classifications]-1 { - 2) [high_bits] = 0 - 3) [low_bits] = read 3 bits as unsigned integer + 2) [high\_bits] = 0 + 3) [low\_bits] = read 3 bits as unsigned integer 4) [bitflag] = read one bit as boolean - 5) if ( [bitflag] is set ) then [high_bits] = read five bits as unsigned integer - 6) vector [residue_cascade] element [i] = [high_bits] * 8 + [low_bits] + 5) if ( [bitflag] is set ) then [high\_bits] = read five bits as unsigned integer + 6) vector [residue\_cascade] element [i] = [high\_bits] * 8 + [low\_bits] } 7) done \end{programlisting} @@ -209,17 +209,17 @@ stages (8 in Vorbis I, as constrained by the elements of the cascade bitmap being eight bits): \begin{programlisting} - 1) iterate [i] over the range 0 ... [residue_classifications]-1 { + 1) iterate [i] over the range 0 ... [residue\_classifications]-1 { 2) iterate [j] over the range 0 ... 7 { - 3) if ( vector [residue_cascade] element [i] bit [j] is set ) { + 3) if ( vector [residue\_cascade] element [i] bit [j] is set ) { - 4) array [residue_books] element [i][j] = read 8 bits as unsigned integer + 4) array [residue\_books] element [i][j] = read 8 bits as unsigned integer } else { - 5) array [residue_books] element [i][j] = unused + 5) array [residue\_books] element [i][j] = unused } } @@ -231,9 +231,9 @@ bitmap being eight bits): An end-of-packet condition at any point in header decode renders the stream undecodable. In addition, any codebook number greater than the maximum numbered codebook set up in this stream also renders the -stream undecodable. All codebooks in array [residue_books] are +stream undecodable. All codebooks in array [residue\_books] are required to have a value mapping. The presence of codebook in array -[residue_books] without a value mapping (maptype equals zero) renders +[residue\_books] without a value mapping (maptype equals zero) renders the stream undecodable. @@ -252,46 +252,46 @@ passed in number of vectors is 3 and vector number 1 is marked 'do not decode', decode skips vector 1 during the decode loop. However, even 'do not decode' vectors are allocated and zeroed. -Depending on the values of \varname{[residue_begin]} and -\varname{[residue_end]}, it is obvious that the encoded +Depending on the values of \varname{[residue\_begin]} and +\varname{[residue\_end]}, it is obvious that the encoded portion of a residue vector may be the entire possible residue vector or some other strict subset of the actual residue vector size with zero padding at either uncoded end. However, it is also possible to -set \varname{[residue_begin]} and -\varname{[residue_end]} to specify a range partially or +set \varname{[residue\_begin]} and +\varname{[residue\_end]} to specify a range partially or wholly beyond the maximum vector size. Before beginning residue -decode, limit \varname{[residue_begin]} and -\varname{[residue_end]} to the maximum possible vector size +decode, limit \varname{[residue\_begin]} and +\varname{[residue\_end]} to the maximum possible vector size as follows. We assume that the number of vectors being encoded, \varname{[ch]} is provided by the higher level decoding process. \begin{programlisting} - 1) [actual_size] = current blocksize/2; + 1) [actual\_size] = current blocksize/2; 2) if residue encoding is format 2 - 3) [actual_size] = [actual_size] * [ch]; - 4) [limit_residue_begin] = maximum of ([residue_begin],[actual_size]); - 5) [limit_residue_end] = maximum of ([residue_end],[actual_size]); + 3) [actual\_size] = [actual\_size] * [ch]; + 4) [limit\_residue\_begin] = maximum of ([residue\_begin],[actual\_size]); + 5) [limit\_residue\_end] = maximum of ([residue\_end],[actual\_size]); \end{programlisting} The following convenience values are conceptually useful to clarifying the decode process: \begin{programlisting} - 1) [classwords_per_codeword] = [codebook_dimensions] value of codebook [residue_classbook] - 2) [n_to_read] = [limit_residue_end] - [limit_residue_begin] - 3) [partitions_to_read] = [n_to_read] / [residue_partition_size] + 1) [classwords\_per\_codeword] = [codebook\_dimensions] value of codebook [residue\_classbook] + 2) [n\_to\_read] = [limit\_residue\_end] - [limit\_residue\_begin] + 3) [partitions\_to\_read] = [n\_to\_read] / [residue\_partition\_size] \end{programlisting} Packet decode proceeds as follows, matching the description offered earlier in the document. \begin{programlisting} 1) allocate and zero all vectors that will be returned. - 2) if ([n_to_read] is zero), stop; there is no residue to decode. + 2) if ([n\_to\_read] is zero), stop; there is no residue to decode. 3) iterate [pass] over the range 0 ... 7 { - 4) [partition_count] = 0 + 4) [partition\_count] = 0 - 5) while [partition_count] is less than [partitions_to_read] + 5) while [partition\_count] is less than [partitions\_to\_read] 6) if ([pass] is zero) { @@ -299,12 +299,12 @@ Packet decode proceeds as follows, matching the description offered earlier in t 8) if vector [j] is not marked 'do not decode' { - 9) [temp] = read from packet using codebook [residue_classbook] in scalar context - 10) iterate [i] descending over the range [classwords_per_codeword]-1 ... 0 { + 9) [temp] = read from packet using codebook [residue\_classbook] in scalar context + 10) iterate [i] descending over the range [classwords\_per\_codeword]-1 ... 0 { - 11) array [classifications] element [j],([i]+[partition_count]) = - [temp] integer modulo [residue_classifications] - 12) [temp] = [temp] / [residue_classifications] using integer division + 11) array [classifications] element [j],([i]+[partition\_count]) = + [temp] integer modulo [residue\_classifications] + 12) [temp] = [temp] / [residue\_classifications] using integer division } @@ -314,24 +314,24 @@ Packet decode proceeds as follows, matching the description offered earlier in t } - 13) iterate [i] over the range 0 .. ([classwords_per_codeword] - 1) while [partition_count] - is also less than [partitions_to_read] { + 13) iterate [i] over the range 0 .. ([classwords\_per\_codeword] - 1) while [partition\_count] + is also less than [partitions\_to\_read] { 14) iterate [j] over the range 0 .. [ch]-1 { 15) if vector [j] is not marked 'do not decode' { - 16) [vqclass] = array [classifications] element [j],[partition_count] - 17) [vqbook] = array [residue_books] element [vqclass],[pass] + 16) [vqclass] = array [classifications] element [j],[partition\_count] + 17) [vqbook] = array [residue\_books] element [vqclass],[pass] 18) if ([vqbook] is not 'unused') { 19) decode partition into output vector number [j], starting at scalar - offset [limit_residue_begin]+[partition_count]*[residue_partition_size] using + offset [limit\_residue\_begin]+[partition\_count]*[residue\_partition\_size] using codebook number [vqbook] in VQ context } } - 20) increment [partition_count] by one + 20) increment [partition\_count] by one } } @@ -354,22 +354,22 @@ Format zero decodes partitions exactly as described earlier in the presents the same algorithm. Assume: \begin{itemize} -\item \varname{[n]} is the value in \varname{[residue_partition_size]} +\item \varname{[n]} is the value in \varname{[residue\_partition\_size]} \item \varname{[v]} is the residue vector \item \varname{[offset]} is the beginning read offset in [v] \end{itemize} \begin{programlisting} - 1) [step] = [n] / [codebook_dimensions] + 1) [step] = [n] / [codebook\_dimensions] 2) iterate [i] over the range 0 ... [step]-1 { - 3) vector [entry_temp] = read vector from packet using current codebook in VQ context - 4) iterate [j] over the range 0 ... [codebook_dimensions]-1 { + 3) vector [entry\_temp] = read vector from packet using current codebook in VQ context + 4) iterate [j] over the range 0 ... [codebook\_dimensions]-1 { 5) vector [v] element ([offset]+[i]+[j]*[step]) = vector [v] element ([offset]+[i]+[j]*[step]) + - vector [entry_temp] element [j] + vector [entry\_temp] element [j] } @@ -389,7 +389,7 @@ presents the same algorithm. Assume: \begin{itemize} \item \varname{[n]} is the value in -\varname{[residue_partition_size]} +\varname{[residue\_partition\_size]} \item \varname{[v]} is the residue vector \item \varname{[offset]} is the beginning read offset in [v] \end{itemize} @@ -397,12 +397,12 @@ presents the same algorithm. Assume: \begin{programlisting} 1) [i] = 0 - 2) vector [entry_temp] = read vector from packet using current codebook in VQ context - 3) iterate [j] over the range 0 ... [codebook_dimensions]-1 { + 2) vector [entry\_temp] = read vector from packet using current codebook in VQ context + 3) iterate [j] over the range 0 ... [codebook\_dimensions]-1 { 4) vector [v] element ([offset]+[i]) = vector [v] element ([offset]+[i]) + - vector [entry_temp] element [j] + vector [entry\_temp] element [j] 5) increment [i] } diff --git a/doc/09-helper.tex b/doc/09-helper.tex index 6e1bfe0..f2d964b 100644 --- a/doc/09-helper.tex +++ b/doc/09-helper.tex @@ -18,10 +18,10 @@ The "ilog(x)" function returns the position number (1 through n) of the highest \varname{[x]}. Values of \varname{[x]} less than zero are defined to return zero. \begin{programlisting} - 1) [return_value] = 0; + 1) [return\_value] = 0; 2) if ( [x] is greater than zero ) { - 3) increment [return_value]; + 3) increment [return\_value]; 4) logical shift [x] one bit to the right, padding the MSb with zero 5) repeat at step 2) @@ -45,9 +45,9 @@ Examples: -\subsubsection{float32_unpack} \label{vorbis:spec:float32:unpack} +\subsubsection{float32\_unpack} \label{vorbis:spec:float32:unpack} -"float32_unpack(x)" is intended to translate the packed binary +"float32\_unpack(x)" is intended to translate the packed binary representation of a Vorbis codebook float value into the representation used by the decoder for floating point numbers. For purposes of this example, we will unpack a Vorbis float32 into a @@ -63,40 +63,40 @@ host-native floating point number. -\subsubsection{lookup1_values} \label{vorbis:spec:lookup1:values} +\subsubsection{lookup1\_values} \label{vorbis:spec:lookup1:values} -"lookup1_values(codebook_entries,codebook_dimensions)" is used to +"lookup1\_values(codebook\_entries,codebook\_dimensions)" is used to compute the correct length of the value index for a codebook VQ lookup table of lookup type 1. The values on this list are permuted to construct the VQ vector lookup table of size -\varname{[codebook_entries]}. +\varname{[codebook\_entries]}. The return value for this function is defined to be 'the greatest -integer value for which \varname{[return_value]} to the power of -\varname{[codebook_dimensions]} is less than or equal to -\varname{[codebook_entries]}'. +integer value for which \varname{[return\_value]} to the power of +\varname{[codebook\_dimensions]} is less than or equal to +\varname{[codebook\_entries]}'. -\subsubsection{low_neighbor} \label{vorbis:spec:low:neighbor} +\subsubsection{low\_neighbor} \label{vorbis:spec:low:neighbor} -"low_neighbor(v,x)" finds the position \varname{n} in vector \varname{[v]} of +"low\_neighbor(v,x)" finds the position \varname{n} in vector \varname{[v]} of the greatest value scalar element for which \varname{n} is less than \varname{[x]} and vector \varname{[v]} element \varname{n} is less than vector \varname{[v]} element \varname{[x]}. -\subsubsection{high_neighbor} \label{vorbis:spec:high:neighbor} +\subsubsection{high\_neighbor} \label{vorbis:spec:high:neighbor} -"high_neighbor(v,x)" finds the position \varname{n} in vector [v] of +"high\_neighbor(v,x)" finds the position \varname{n} in vector [v] of the lowest value scalar element for which \varname{n} is less than \varname{[x]} and vector \varname{[v]} element \varname{n} is greater than vector \varname{[v]} element \varname{[x]}. -\subsubsection{render_point} \label{vorbis:spec:render:point} +\subsubsection{render\_point} \label{vorbis:spec:render:point} -"render_point(x0,y0,x1,y1,X)" is used to find the Y value at point X +"render\_point(x0,y0,x1,y1,X)" is used to find the Y value at point X along the line specified by x0, x1, y0 and y1. This function uses an integer algorithm to solve for the point directly without calculating intervening values along the line. @@ -122,10 +122,10 @@ intervening values along the line. -\subsubsection{render_line} \label{vorbis:spec:render:line} +\subsubsection{render\_line} \label{vorbis:spec:render:line} Floor decode type one uses the integer line drawing algorithm of -"render_line(x0, y0, x1, y1, v)" to construct an integer floor +"render\_line(x0, y0, x1, y1, v)" to construct an integer floor curve for contiguous piecewise line segments. Note that it has not been relevant elsewhere, but here we must define integer division as rounding division of both positive and negative numbers toward zero. diff --git a/doc/10-tables.tex b/doc/10-tables.tex index 2106a46..a65088b 100644 --- a/doc/10-tables.tex +++ b/doc/10-tables.tex @@ -5,7 +5,7 @@ \subsection{floor1\_inverse\_dB\_table} \label{vorbis:spec:floor1:inverse:dB:table} -The vector \varname{[floor1_inverse_dB_table]} is a 256 element static +The vector \varname{[floor1\_inverse\_dB\_table]} is a 256 element static lookup table consiting of the following values (read left to right then top to bottom): diff --git a/doc/Vorbis_I_spec.html b/doc/Vorbis_I_spec.html index 6e7fa02..bb13ae7 100644 --- a/doc/Vorbis_I_spec.html +++ b/doc/Vorbis_I_spec.html @@ -7,7 +7,7 @@ - + @@ -136,7 +136,7 @@ href="#x1-770004.3.6" id="QQ2-1-83">dot product
   4.3.7 inverse MDCT
   4.3.8 overlap˙add +href="#x1-790004.3.8" id="QQ2-1-85">overlap_add
   4.3.9 output channel order
 5 Functions
   9.2.1 ilog
   9.2.2 float32˙unpack +href="#x1-1180009.2.2" id="QQ2-1-130">float32_unpack
   9.2.3 lookup1˙values +href="#x1-1190009.2.3" id="QQ2-1-131">lookup1_values
   9.2.4 low˙neighbor +href="#x1-1200009.2.4" id="QQ2-1-132">low_neighbor
   9.2.5 high˙neighbor +href="#x1-1210009.2.5" id="QQ2-1-133">high_neighbor
   9.2.6 render˙point +href="#x1-1220009.2.6" id="QQ2-1-134">render_point
   9.2.7 render˙line +href="#x1-1230009.2.7" id="QQ2-1-135">render_line
 10 Tables
  10.1 1  the [codebook_multiplicands] [codebook\_multiplicands] array
2  [codebook_minimum_value] +class="cmtt-8"> [codebook\_minimum\_value]
3  [codebook_delta_value] +class="cmtt-8"> [codebook\_delta\_value]
4  [codebook_sequence_p] +class="cmtt-8"> [codebook\_sequence\_p]
5  [codebook_lookup_type] +class="cmtt-8"> [codebook\_lookup\_type]
6  [codebook_entries] +class="cmtt-8"> [codebook\_entries]
7  [codebook_dimensions] +class="cmtt-8"> [codebook\_dimensions]
8  [codebook_lookup_values] +class="cmtt-8"> [codebook\_lookup\_values]

Decoding (unpacking) a specific vector in the vector lookup table proceeds according to [packet_type]; check that packet type is 0 (audio)

  • read ilog([vorbis˙mode˙count]-1) bits ilog([vorbis_mode_count]-1) bits [mode_number]
  • [audio_channels]
  • [submap_number] = element [i] of vector [vorbis˙mapping˙mux] +class="cmtt-12">[i] of vector [vorbis_mapping_mux]
  • [floor_number] = element [submap_number] of vector [vorbis˙submap˙floor] +class="cmtt-12">[submap_number] of vector [vorbis_submap_floor]
  • if the floor type of this floor (vector @@ -4755,7 +4755,7 @@ href="#XSporer/Brandenburg/Edler">1]. The window function used for th earlier.

    4.3.8 overlap˙add
    + id="x1-790004.3.8">overlap_add

    Windowed MDCT output is overlapped and added with the right hand data of the previous window such that the 3/4 point of the previous window is aligned with the 1/4 point of the current window (as illustrated in 1  window_blocksize(previous_window)/4+window_blocksize(current_window)/4 +class="cmtt-8"> window\_blocksize(previous\_window)/4+window\_blocksize(current\_window)/4

    from the center (element windowsize/2) of the previous window to the center (element windowsize/2-1, inclusive) of the current window. @@ -4900,7 +4900,7 @@ class="cmtt-8">    1) [vendor_length] [vendor\_length] = read an    2) [vendor_string] [vendor\_string] = read a UTF-8 vector as [vendor_length] [vendor\_length] octets
        3) [user_comment_list_length] [user\_comment\_list\_length] = read an   4) iterate [user_comment_list_length] [user\_comment\_list\_length] times {
        7) [framing_bit] [framing\_bit] = read a  8) if ( [framing_bit] [framing\_bit] unset or end-of-packetLicense information, eg, ’All Rights Reserved’, a license such as a Creative Commons license (”www.creativecommons.org/blahblah/license.html”) or the EFF Open Audio License (’distributed under the terms of the Open Audio License. see - http://www.eff.org/IP/Open˙licenses/eff˙oal.html for details’), etc. + http://www.eff.org/IP/Open_licenses/eff_oal.html for details’), etc.

    ORGANIZATION
    [floor1_class_masterbooks] or [floor1_subclass_books] scalar element greater than the highest numbered codebook configured in this stream is an error condition that renders the stream undecodable. All vector -[floor1˙x˙list] element values must be unique within the vector; a non-unique value renders the +[floor1_x_list] element values must be unique within the vector; a non-unique value renders the stream undecodable.

    [n] is provided by class="cmtt-12">[floor1_X_list], [floor1_final_Y] and [floor1_step2_flag] vectors, as well as - [floor1˙multiplier] and [floor1˙values] values. + [floor1_multiplier] and [floor1_values] values. @@ -8559,8 +8559,8 @@ class="cmtt-12">[floor1_step2_flag]’ according to ascending sort or [floor1_X_list]. That is, sort the values of [floor1_X_list] and then apply the same - permutation to elements of the other two vectors so that the X, Y and step2˙flag values still - match. + permutation to elements of the other two vectors so that the X, Y and step2_flag values + still match.

    Then compute the final curve in one pass:

    @@ -9002,20 +9002,26 @@ the moment exactly how a partition is encoded and simply trusting that it is, is follows:

    The following convenience values are conceptually useful to clarifying the decode process:

    @@ -10060,13 +10066,13 @@ class="cmtt-8">    1) [classwords_per_codeword] [classwords\_per\_codeword] = [codebook_dimensions] [codebook\_dimensions] value of codebook [residue_classbook] +class="cmtt-8"> [residue\_classbook]
    2    2) [n_to_read] [n\_to\_read] = [limit_residue_end] [limit\_residue\_end] - [limit_residue_begin] +class="cmtt-8"> [limit\_residue\_begin]
    3    3) [partitions_to_read] [partitions\_to\_read] = [n_to_read] [n\_to\_read] / [residue_partition_size] +class="cmtt-8"> [residue\_partition\_size]

    Packet decode proceeds as follows, matching the description offered earlier in the document.

    @@ -10118,7 +10124,7 @@ class="cmtt-8">   2) if ([n_to_read] ([n\_to\_read] is zero), stop;    4) [partition_count] [partition\_count] = 0
       5) while [partition_count] [partition\_count] is less than [partitions_to_read] +class="cmtt-8"> [partitions\_to\_read]
    8 from packet using codebook [residue_classbook] [residue\_classbook] in scalar context @@ -10377,7 +10383,7 @@ class="cmtt-8"> descending over the range [classwords_per_codeword]-1 [classwords\_per\_codeword]-1 ... 0 { @@ -10425,7 +10431,7 @@ class="cmtt-8"> 11) array [classifications] element [j],([i]+[partition_count]) [j],([i]+[partition\_count]) =
      [temp] integer modulo [residue_classifications] +class="cmtt-8"> [residue\_classifications]
    20 [temp] = [temp] / [residue_classifications] [residue\_classifications] using integer division @@ -10672,11 +10678,11 @@ class="cmtt-8"> the range 0 .. ([classwords_per_codeword] ([classwords\_per\_codeword] - 1) while [partition_count] +class="cmtt-8"> [partition\_count]
    31 is also less than [partitions_to_read] [partitions\_to\_read] {
     = array [classifications] element [j],[partition_count] +class="cmtt-8"> [j],[partition\_count]
    38 17) [vqbook] = array [residue_books] [residue\_books] element [vqclass],[pass]
        offset [limit_residue_begin]+[partition_count]*[residue_partition_size] [limit\_residue\_begin]+[partition\_count]*[residue\_partition\_size] using
       20) increment [partition_count] [partition\_count] by one
     [step] = [n] / [codebook_dimensions] +class="cmtt-8"> [codebook\_dimensions]
    2   3) vector [entry_temp] [entry\_temp] = read vector the range 0 ... [codebook_dimensions]-1 [codebook\_dimensions]-1 {
        vector [entry_temp] [entry\_temp] element [j]
       2) vector [entry_temp] [entry\_temp] = read vector the range 0 ... [codebook_dimensions]-1 [codebook\_dimensions]-1 {
        vector [entry_temp] [entry\_temp] element [j]
        1) [return_value] [return\_value] = 0;
       3) increment [return_value]; +class="cmtt-8"> [return\_value];
    5 done
  • ilog(negative number) = 0;
  • 9.2.2 float32˙unpack
    -

    ”float32˙unpack(x)” is intended to translate the packed binary representation of a Vorbis + id="x1-1180009.2.2">float32_unpack +

    ”float32_unpack(x)” is intended to translate the packed binary representation of a Vorbis codebook float value into the representation used by the decoder for floating point numbers. For purposes of this example, we will unpack a Vorbis float32 into a host-native floating point number. @@ -12009,10 +12015,11 @@ class="cmtt-8"> )

    9.2.3 lookup1˙values
    -

    ”lookup1˙values(codebook˙entries,codebook˙dimensions)” is used to compute the correct length of -the value index for a codebook VQ lookup table of lookup type 1. The values on this list are -permuted to construct the VQ vector lookup table of size lookup1_values +

    ”lookup1_values(codebook_entries,codebook_dimensions)” is used to compute the +correct length of the value index for a codebook VQ lookup table of lookup type 1. +The values on this list are permuted to construct the VQ vector lookup table of size +[codebook_entries].

    The return value for this function is defined to be ’the greatest integer value for which [codebook_dimensions] is less than or equal to class="cmtt-12">[codebook_entries]’.

    9.2.4 low˙neighbor
    -

    ”low˙neighbor(v,x)” finds the position low_neighbor +

    ”low_neighbor(v,x)” finds the position n in vector [v] of the greatest value scalar element for which [v] element class="cmtt-12">[x].

    9.2.5 high˙neighbor
    -

    ”high˙neighbor(v,x)” finds the position high_neighbor +

    ”high_neighbor(v,x)” finds the position n in vector [v] of the lowest value scalar element for which n is less than [v] element class="cmtt-12">[x].

    9.2.6 render˙point
    -

    ”render˙point(x0,y0,x1,y1,X)” is used to find the Y value at point X along the line specified by + id="x1-1220009.2.6">render_point +

    ”render_point(x0,y0,x1,y1,X)” is used to find the Y value at point X along the line specified by x0, x1, y0 and y1. This function uses an integer algorithm to solve for the point directly without calculating intervening values along the line. -

    +

     done

    9.2.7 render˙line
    -

    Floor decode type one uses the integer line drawing algorithm of ”render˙line(x0, y0, x1, y1, v)” + id="x1-1230009.2.7">render_line +

    Floor decode type one uses the integer line drawing algorithm of ”render_line(x0, y0, x1, y1, v)” to construct an integer floor curve for contiguous piecewise line segments. Note that it has not been relevant elsewhere, but here we must define integer division as rounding division of both positive and negative numbers toward zero. @@ -12484,6 +12491,9 @@ class="cmtt-8"> [x0]+1 ... [x1]-1 { + + +
    23 = [err] + [ady]; - - -
    25> endobj 669 0 obj << -/Length 1531 +/Length 1539 /Filter /FlateDecode >> stream -xڝWKoã6¾çW訵õt{Ûn·Ý -u÷² F¢cÂ¥%¥dÝ_ßiˎÓMŠÑr¾yãà!ˆƒ_¯b÷}¿¾z÷1Ƀ$‰Vy΂õ&(YP&UÄâU°n‚/áý(K¶JÂqËG¢äxmˆàS†½1ò¾µl,IØ9©FhX³gµÜìén¯Ýwû V…B䪐 ®# 9ñý6ý'iǕƒ£…ö(¹GèvZ¡Æ­£¥£Å2ciøI-n׿ƒæË$‹²¬ éV™…üž´qx,í‹o†wC+~@ty(7tP÷öB#ž»× mAÚ(ZÚC¡ýc­ì¤â£hìc™7&>× -®‰t¶¶”»èôJ:þI.°I¦¤ÙŠæGTîàZÿýe}•Iä«¨,ª ³ˆ±,¨»«¯Wq´Ê²UeYæ´=Lc»0÷…ÍwŸº<øÐ_ÝÀß¹,ÿõ—^âr&òBÌ%eUYdå*ª疏òaB£¥¬óS݂/°[¾^hÑн-šþ6¸EfDJ¶ídFÍGÙ«‹¦üqj-Y…ˈ?Á-×í~Q±œ˜«PâëELÞB¢×òÜÜÒê(>Âìÿ½\¹°|ôFÀɛ:PÒño¦`X’§&0H‹áEÛ\y‚> -‚lHŽ ™p!žÓ˜‘´8 ew’î6©Êð}™†|Öæ¹#à*ÁžËÉ~deVKC$·þ·×iChUɺWô®;WD „"Õ*ͼYî¼#Ñz…9©“gi¸^Tì;‹Óð¨¹d0û2y‰‘}Ó°vÕ¯zælb{’ÖZÇ P¶îµÉ€.¨#Ègzïʏ¡ï¬Ú¢ÙXU„ƒîNˆÌŸ°ôATŽÄ¶2P qöXZ‰ätî1àÖ< žôÎ]Úë?B÷DÝKÿ u.n]ƒux뚖œŽ9Ðí$NTËIµ~)Q&µ™j¼¥§Ã ùS‘Iᐷ6\9^Ûº§Å8ie\Êo]ÆlUÁø"ø2ÂGÏ©æÀ½sϑָ‰ZG^‘yUøùrŠ£#ªƒ¥°}³ ;†Eg5´¾ž,‚º¦+6ÄðÈ@Úµ{Ú4;98/»‹Rщk}`HÎeC÷MHjaŒMØ<\o…{nˏÙx)îޅêv©ÏAÝ"¿ÃyãøT?Á=JÛÏ\}Ä/Á,0;ji0{irÞ¶C¬vdwš#RÝù¬››Þ½½O‹{é` |…~¡Bpçæî;òò1N|™ÀàééÏR{~Vø*€ -[6SqiWS‡Ý»äŒNZ tÂjÞ eZEéª$”ŸiހÛâ×Iaˆô¶v”¿èõJyþI.°I®•]ËöGTnïÚðýey•‘FY”‹¤*ë¨Hó„±3;_~,}×`ÕÍÆê2ޚÁã„Èü KDåHŒ`+ UÐ瀥•HAçnÇēÙøK+bý[š¨{tÎÅ­k°n o]ÓRÐñ㬺›ä‰j©6L#e# +À¤¶Sƒ‚×´tx!j2)ŠÎ…«Àk;K÷Œ'£­OùµÏø½­±*ØP$_Nøè9Ýî¹7þ9Ò7Që$(r\~¾œâèˆzï@%]߬â^€aÑY-­¯'ǁ ®éŠ 1<²vݎ6íFm½—ýE¥éÄ·>0$çƒv¡û[CHi­KØ"^®¥n-Ùx)î4ޅêv©ÏAÝ"¿Ãyëùô0!J×Ï|}Ä/Á,1;e1{irÞµC¬vdš#Rýù¬›«Á¿½O‹{åalÅ8JóL…ÞÍ+3ôäåCœ„2Á3Ð!>Jíã³2TTØáp™ŠK·šzÔèÞ'grÒj ÖǝPò:ዊP~˜ñ,¾·¥EÜ¡0@°™¶´ƒ–p¦ÀÕ£lOcƒëܺ•´Rßö¸óÌO ¬Â™ü—ÞŠao|=jCpÿ–è.Ä9‚â%Œ`€pIZÑÕ¸‘ÐXÚ30A OæAê‰k}’¶x¹9`É'ãbÖ×ë&ƒ›w¬ŒŠdQU%*sGR¦0vdeRÖ5=›#çQŒiæâKÁlü± ‡aó)ãùç~êFG·j äí1 cÄî߄/’¼Ìéeö]Ùg"AœÒªŸz·|DMï¾'ËWTþJY-º«Å+$y­òWJ²(éË$u#ÝzûR•ŠW +Â0&ÝjÜm_¬RùJI$iW×_ªKõÜ£z©±XڗªQÿ/ƒ¹ ²NËÖ'ž”ÌËy»Ÿ (3ø{¤H§ãêa3‡Ÿs§bCg¡R¸ñbjb¦"pá´ò 'ÕB<;4=ÙZ:+ß&eX¼ÉHù™‚ǵho¦Ï³Ïq0ý†áEÂs싽6˱×b+â1šUöüM8©™ñÃ@âZŸƒñà‰~%è¤ynÔtÜn€›:/ˆF"ª»쉮íä'f‚¦VùÆwŽÛÏk‡áÙWiå˶ å”~K4̟®-ʯcrù—6‚2¯ ˆÓ¤¨3_5Ùs¿hÿ³°Tº endstream endobj 668 0 obj << @@ -3439,17 +3435,19 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 885 0 obj << -/Length 2599 +/Length 2605 /Filter /FlateDecode >> stream -xڕY[Ü¶~ß_1苵HV+R÷ú)±ã´Œ¦í)`WÒìÖH]v³ùõ=7j¨±6užDžsxH~çB*Ú=ì¢ÝW‘|¿¿»º}§ÒRa™¦zw·ßåz—«"ÔQ¹»«w‚¡m=7×7:OÓÕܨíÐT¶³àx­‹`n'{jme&Ûw,Óï™?dôãµÎÖ#¬|Çùc¤²Ê6JLLÜ÷7×*¨ªæ4™û¶aÒxÂ/êL++ƒ¨í®?Ýý6x£’0I2ވiA2ÖYP™±±™÷¢ÆÌcÃL;1瀳žpš"hº‘™SÏßc?Ní3 >áîûá³ô,.‚d¢±š‡aÙþkO‡ðŸÃš}ƒ|ØcÔ¦«zZWÝ ¡Û‰Va–É‘ü­¿æ‰Aö§o†oa@š`Ɣǒñâ,`>ÚÜõS8ÆvF `¿2xZ1œÁɐÙnßéØǃ*Ê°Œ4¬æþÅ‹­aS†º,J¢ú{Vû1J£-µqæªü­…Ò /ùle'Yÿ܍ö¡kj˜G‰¤07/f͵í¹çg>’}otˆWÅ0g¸Â¹Dq0ú¹­¹=4'pŒó±Éà' Ž¶³G$ƒn¢£àWi2 -ʼdça—ÊÖZ±ú{2 j âŠÁ4b˜8*,/f>\«Ÿ§Ó<ñ`;2  .–ÉÂ8¾° nU—Êø{ÏNS?½yϔºy´U^ß$I¼».4á9âå9®àÀ•©QªwBÎÌ{Oìgöã2+ӊ2»_i/G(dâ‚7"±mS/Ólœ‚‹©;…èÿc“fV9‡ør\¥'¡†;É°E;…/¹µ"Ÿ‘ߐꐉ`JÅ;R.¨Ü3%tV¦ôô ©u`²˜g3âÊ÷|輵Ց³/•_„˜’!ƒ_gY]‚3LLc«”PØ7Ɖåî9ÀÊ Žï „‹ÆïÚͶ<&Ï Ÿ=&úúèäÍó ¶2öî¼Fr›Ó ‘ûò2Ž½£ÈBfkS ‘EÁÄÌÐ Æø¡×ϝ9ڊ§(9vÄÞA‚È:ü€á âé™;/Ek]Da”«¯±GqaTK`/‚VëÈróÛçsŒ‘4 F(ÃrÓÊK›¦0à;—”¬”B Bր&ùfætzÜåoöh&ž ØIÁl q@‘- q¯¡™)€(; ³w$~ ÎʨÐ?£{ÎG·ªÆfÁ¥‹â26!É°®¿I”·Š4NN¨† -˜u?1÷Ni®„âùJ‘{¾Räë!ØÁ¡‰ZÊëÀnÀacرå­/+ÜØ#ÇñDÃI©B‚àII ×äW{拼†ŽD–“Õڜ@‹:Ü°#ÑÈJSótóh»hÍà´`¾Ì–XÂG(r¦¹Õž$z[†n"älPqF€Rïxj›£Ã6M«3Îm`zÂ!TK‰ ÖÀ»·¤îc|÷öœ›ò‹p¥1,k©¸Á‹‹da ÞHËMÂ8ÌÁcR ;°fœ9˃÷oßÜ]êI/ôhpC©ßô´)au‰ÄaÃp-”èËZˆ¸¾‹ Ö/H§üQ`þÀŸžéº¦e±{>ÐÏ̳ô23à‰¥êþh0ž"•ª$òz6ùhá4’4#0'i.§É+ÀÀ8<ʼï±øñ„ÞÚ±šIDÞô¯†9wX•RG¸g™0CC#–B–úŽ9u3IrCb݀R{¦ËÒúýú8r~Ô"'¡X±à˶±‚vHßrÚÊ|Šv5ð`Y¤ê‰$»8,á ¢]»ûÏÕ¿ä®»š]%e˜”¬+MÅwL]ÿ¡§Ýä9 òýíç³Á%˜éT¡1"w؉–"ÛT1!ÍC3ìõ´Ø™œ)°Q׎ÆyO»ô†Á>Ü­º‡eXm&#Óì/Æ@”z´=dʍ£\a‡îæKÙHwy¬ìÎ¸R|›0…/Ë^DÌ9xÄî €„ÜÔD–É -ž,cÐᕿ¥K‘dïkQŒHÓx0'wmÀ™ëfy8/µí1u­722¡ïÚg—ýÅü…#ÜÆéKс¤¿/¡‰L±úàbŠök'´ÇÝu+¤sº-” /ÚôÅÈ_¿žZsl˜GßØ¢(Q^U’ÎŽŠÛJä‰C‰ ¾Ë¥ ِ'æ¡cadqáBâ”9¡!PðÓÌMa‘Ëb.ê±:Yé~@¬”T²¼L`Ÿ¬bSlìÆ3L|á1±c! ®ˆÉÀ‹_˜qþ6Á× _Þ s$ÀU®Ä· Ü ´¬O¢ÆMÎszyûmÎW,‚™ðeA‚¬äVSŠ"&ù£ VH8¿dedòþB¼’ë8¯ ûbXïðbn”\mWAî—k3/Ñ?}G¾ÄÓåxћ¯÷o6Kµ“Ÿ]省°ÇFöꞌ2Ú@¯0Œ2ákŒ[Šßù_Œ{ÏÈ}<æKٟK΀ï«Ó³W«9òu‘œ¦{€[ÓËå‚.ËÕ? ®tLU9·Y†èk:X!á82B‡¤Q 2m5·fZXtUDN¯c3¯ùIÛì'ž°t^q6MŠFz9%áIBí"q~à”gììü0Žm™Ùù2S_E¯¸áŠFdvýe\9˜õ'zy׫‡Þ3AmZŠ³¥d[J7­ã0Kr¸ƒa‘+ÞHœn -Ã¥éÄv<Ž +xڕYYÜ¸~Ÿ_Ñȋ5ðŽF¤îøi׎7ÀÈn2À°€#©§ «¥ŽŽ™L~ýÖE5ÕÖl¼O"«ŠE²øÕA*Ú=ì¢ÝW‘|¸»º}¯ÒRa™¦zw·ßåz—«"ÔQ¹»«wƒ¡m=7×7:OÓÕܨíÐT¶³àx­‹`n'{jme&Ûw,Óï™?dôãµÎÖ#¬|ÇùS¤²Ê6JLLÜ÷7×*¨ªæ4™û¶aÒxÂ/êL++ƒ¨í®?ßý 6x£’0I2ވiA2ÖYP™±±™÷¢ÆÌcÃL;1瀳žpš"hº‘™SÏßc?Ní3 >áîûá‹ô,.‚d¢±š‡aÙþeO‡ðïÏš}ƒ|ØcÔ¦«zZWÝ ¡Û‰Va–É‘üµ¿æ‰Aö§o†ï`@š`Ɣǒñâ,`>ÚÜõS8ÆvF `¿2xZ1œÁɐÙnßëØǃ*Ê°Œ4¬æþÅ‹­aS†º,J¢úVû)J£-µqæªü­…Ò /ùle'Yÿ܍ö¡kj˜G‰¤07/f͵í¹çg>’}otˆWÅ0g¸Â¹Dq0ú¹­¹=4'pŒó±Éà' Ž¶³G$ƒn¢£àWi2 +ʼdça—ÈÖZ±ú{2 j âŠÁ4b˜8*,/f>\«Ÿ§Ó<ñ`;2  .–ÉÂ8¾° nU—Êø{ÏNS?¿ýÀ”ºy´U^ß$I¼¿.4á9âå9®àÀ•©QªwBÎÌ{Oìgöã2+ӊ2»_i/G(dâ‚7"±mS/Ólœ‚‹©;…èÿc“fV9‡ør\¥'¡†;É°E;…/¹µ"Ÿ‘¯IuÈD0¥â)aTî™:+Szz†ÆTÈ:0Ÿ3‹qå{>tÞÚêÈٗʯBLɐÁ¯³¬.Á&¦±UHJ(ìãÄr÷`eÇwÂEãwíf[“gÐÎÏ}{tòæy ‚­Œ½»¯‘Ü&ÂtBä~€€¼Œcï(²P§ÙÚT@dQp'13´ƒ1þAèõsgŽ¶â)JŽ±w ²?`8ƒxzæÎKÑZQåê[ìQ\ØÕXà‹ ƒÕ:²äüöùc$͂Ê0†Ü´2ÂdÁ¦) øÆ%eë#¥Ðƒ5 I¾™F9†wù_{4Oì¤`¶„8 Hˆƒ†¸7ÐÌ@”Ž…Ù;?Ð@geTèŸÑˆ=ç£[Õc³`‡ÒEq›dX׋_Š‹$Ê[E''TC̺Ÿ˜‚{§´?WBñ|¥È=_)òõìàÐD-åu`7à°1ìØò֗nì‘ãx¢á¤T!AðƤ‹¤…Çkò«= óE ^CÇ"ËÉjmN Enؑhd¥‚©yºy´Ý ´fpZ0_f K, á#¹ÓÜjO½-C·r6¨¿8#@©w<µÍÑa›¦Õç60=᪥ÄkàÝÛÎ R÷1¾{{ÎMùE¸R˜–µTÜà‰ÅE²‰‹0o¤å&aæà1)†GX3ΜåÁ‡woï.õ¤z4¸¡Tˆo{Zƒ‡°ºD â°a¸Jôe-D\ßEPë¤Sþ(0`OÏt]Ó²Ø=èf‹Yz™ðÄRu4O‘JÕy=€|´pIš˜“4—Óä``e>ˆ÷X|‚xÂïìX Í$"o{€WÜ;¬J©#Ü3ŽÌF˜¡¡K!K}Ϝº™$¹!±n@©=á Óeiý~ }„ +9?j‘“P¬Xðe[XA;¤ïG9m å96þñãÆë€ð›©kv–Æ ­•ÌÁðïý­9Ñè¿Ü]ýç + €fPI¦é.‰t˜§Å®:^}üíjàÁ²HÕIwqXÂAD»v÷Ï«_ä®»š]%e˜”¬+MÅwL]ÿ®§Ýä9 òýí׳Á%˜éT¡1"w؉–"ÛT1!ÍC3ìõ´Ø™œ)°Q׎ÆyO»ô†Á>Ü­º‡eXm&#Óì/Æ@”z´=dʍ£\a‡îæKÙHwy¬ìÎ¸R|›0…/Ë^DÌ9xÄî €„ÜÔD–É +ž,cÐᕿ¥K‘dïkQŒHÓx0'wmÀ™ëfy8/µí1u­722¡ïÚg—ýÅü‰#ÜÆéKс¤¿¯¡‰L±úàbŠök'´ÇÝu+¤sº-” /ÚôÅÈ_¿žZsl˜GßØ¢(Q^U’ÎŽŠÛJä‰C‰ ¾Ë¥ ِ'æ¡cadqáBâ”9¡!PðÓÌMa‘Ëb.ê±:Yé~@¬”T²¼L`Ÿ¬bSlìÆ3L|á1±.ù_—[á9do¾æ¿c-ÕO~v¥sFÂÙ«ƒ2Êp½^À0ʌo0Ž)~ƒä3î}#÷ñ™/׀\r|_¸¨½Z͑¯‹ä4ÝÜ¢^.tY®þapåcªÊ¹ÑÈ2üƒXÓÁ + À‘:ü@•i«¹5Ó¢«#rz|Ý›i|ÃOÜf?ñ„¥+øŠ³‘hR4ÒË) +Oj‰û > endobj 894 0 obj << -/Length 2149 +/Length 2162 /Filter /FlateDecode >> stream -xÚµX[Û6~ϯ0úˆU‰ºw±ÛKÚ)ZH§E¦h‰cs#‹SIžd°Xô¯÷ÜhKy>ì‹E’ç|çJG«Ý*Z}û,zòýòöÙç/ãr¡Š³tu{·*ÔªˆËPEÕê¶YýdëM–EAíӍëM’Á›(NMÛà$t×0uotcz÷ðS[ä­õh]·þýöû$àëÓ0Is…×G+ØVU&·‡1ßÿêÁôÖ¼Ÿ›³U‡U–ùͪ -‘üvoÖ•æÁ/ëR®ßځç£ù0òˆµZ«" BvÒOìþœÁÔ•Åñ›(‹ÜgèÍ: Ðb¦L¹×5^ðÌèÏþ½)¶ðµíx®ObÇ"6(ÊNiš³v[;coô!\oÒ( nð0€œ¤†ïÁè“b0½s=†½ë…&8$1àòœ ^0ïœ0jbìuÿèu£G {þ”<¹È0•[,*ʶ®Û¡¤yÚ¹"µa:˜{ÝëÑð¬u;[ë–9Dg¸W˜‚f8GݶÌ¯;þþúãÌÁ 1qDõïY±’Ù0ºï²<Øƈp;Ø=‚),'ëñòlåãv²ùÞv†i Ò`¾µ­e1к¡?WÅažOý6UñÜ;S¥Îq‡«hh$²¡KÏ3:^FœË@N:¦nd=²tLií»µç¸ÜÁ¸N¶ýۍ£ív¼¢™öÇъ?|D˜!ÀYÉ_ u8Ð05DEOUá¹8ýêë×!Г‘žzDe‘&^à šiäØ -Évààt Ê4DC$¯7s@‘å^–)¬a½±Cͤ-ñ(—trµùpßj+g‚ítے,íö¦ &’‚ðBÅÛ ÌŠ)ðm€cÃè¬7-²q,&Y!ˆüGAûɪÜÕ¡ËãèdiœÈ­µ;Þ6°å=^ƒÞ7ƒ²=Êev螏Kaºsdø¤`ñ{¶AÉ‘ßãòcGš?’apˆ‘¼ëõýL›AY ×Æ3 âÙ£¢%Á K[9Šä!‹/²C̼T̹lϲïã¢YŽ}DZéH_¼Î1AtyÁ3³ûb±8­ š¨<›‡çw¹h|é¶8¨$øB^…ƒ—ߺ]ÿ¸»mt‹‰«ßÜtµWýj(—þ2QÓZ¦²",²ä [ßÄIzóC'I‚ŸF 2t‹ó4ø×ZeA¿‚;vÍg|ܼ4VYX¤þ0T;†’(™°CS#~àI˜VÉF*ӏ”?<òŒìé„?×Y\GRÇA5®ª"|Z¯gÅ~ãñMã°,S_ò—ü¯¦-‡éjG-E#Â^è$.5pªo%~:åí¿ÙK$©šçä$M ‹Bå—Ʀ˜•‘OêÅ(µPí Û0û!ÅØݞNÛ@qÛÔ­¡`‚ö ôJ(™$,ÜK×)“ORÚäÐÉޓT—S2¸ eJPüUìB*[aUD1’—a™e+°ž%ñlÉ8ªlzf|EђSÆ -Ìï2æ«¥LE]h.ZÓíÆ=ICøíKrœõåU2|[{°ã\·dQ7•€©ãôÿ®Ü–*ÿḣ©Ï‡°0Ñ@13ÈÅ3{€H ñ3°lH~‚)]—Ë€ó¤ ìÐÀ’·ùN©õa0­¤#¦iÊ﩯88 Ö¡mùdì`M°dã{Ъ n:ÙÛ4VêpJ9w)9³êÅã#˜A -¯ ’—bՂb ŸÚ gÜù/tŸwú`ü&‹t;8>»d"Ä (IŠbâ'¸K„{©lRý*sôøҁ6šPgœ3Ià1ôŠô ìßcÁ¶ÄaÄë½!¡’ã±µäCdWyÒàò`F^?#š€¬<2=uäsLúò«…ýªß-™ î›>Ÿ°†ÞpzWQ¤¢".>»ÜÄ&Q67 ÌM<*ò=3PO)mÞ¥e¬÷쿵—  9¦¶¼ŠrÏ~„Õ¹®¡`݁‹t§sۖL IFÅ9ëó3ƒöo”…Þ²ûÿÎÄò‡Ä¢€ß3 -8³!À ü"¨Y‚obp–„a6U˜æÒ\©«2«eæ¼qQfþü|ûrSòðAVÎ"C?…À¡O^•^²krUúd"=Wg´3ðð?Ÿˆh¶ O -½rZxy² ¢Ÿâ¼ -‘ÙNàÁ£-ÿ~ê*~"È¿üª¼ùYÞqo‡)’¨Ÿ ÁäÑéÍËέþ·s?æ²KO -%yX•Wè¿K' ËšòªkSÞõz·Ý[ÀþJ`û>K,%Q"šo£'˧y[uUÄrâýeبI¹ë鯿¹ÜànFÌÇvQÒölÜÝ -ú;¿:u #¾úÍkà|ýêõ¢ðWsŒãhIæ ªó5ëLxé­:{+(¨/1Ú³ÌÂ(*$—‹{¿¹}öY +xÚµX[Û6~ϯ0úˆU‰º·Ø‡í%í-¤³E¤XÐÇæF§ºL2(Šþõ=7ÚòD®³ûb‘‡‡ä9ß¹ÒÑj·ŠVß=‹ž|¿º}öù˸\ÅE¨â,]ÝÞ­ +µ*â2TQµºmVo‚l½É²(¨Ýá`ºq½Iò"xÅ©iœäî¦înLÏãá¾Q`j‹¼µ­ëÖ¿Ýþð‘|}&i®ðúhûêÊäö0æû_=˜þÁš÷g‡ÀælÇa•e~³ªÂD$¿Ý›õF¥yð˺Të·vàùh>Œ 0dó½í Ó@¥Á }k[Ëb uC®ŠÃ<ŸûmªâsïL•:Å®¢¡‘Ȇ.=Ïèxq.9iL#ÜÈ:±tLií»µç¸ÜÁ¸N¶ýǍ£ív¼¢™öûdş‰ +>"Ìà,ˆ¿ä¯„:蘢€¢§ªð\œ~ýÍë èÉHOPY¤‰×ð‚f9¶B²8øƒ2 Ñ äëÍÁPd9¤—e +kXoìP3i‹@<Ê%\m>Ü·Úʙ`»Ýð¦$ËA»½éˆ‰¤ ¼Fñö³b +|àØ°:ëM‹l‹IV¢D#¿ÄQgÐ~²*wuèò8:Z'rkí¦{¶¼Çk0ÀûfA¶“\f‡îù¸¦;G†O +Æ¿',ù=.ï1æp¤ù#‡É»^ßïÁ´”rm\0à žm1*Z ²´•£I²ø";ÄÌ{@Å<Ëö, ð>.šeê;ŽMGúâuŽ ¢Ë ž™Ý‹ÅiÕDåÙyx~á1‹–ÁWn‹ƒJ‚(äU8x‰ñ­ëÑõ°û7F·˜¸úÍMW{Õ¨&€bpùç/5¯e*+Â"K@ºõmœ¤7Ï1t’$øy´!C·8Oƒ®Uôk ¸©k>ããÎKc•…EêCµc(‰’ ;45â.‘„i•œÃH¥aú‰’ã‡Gž‘‚=ð×:‹‹`"uÜ4ªqUáÓz}Vì7ß4Ë2õ%_qÉÿzÞr˜®vÔR4"ì…NâR3§úVâçcÞþ{‰$Uç99IÈ¢Pù¥ñ)fe䓺E1 +d-T;È6Ì~H1v·§Ó6PÜ6uk(˜`}ý‡J& ÷ÒõeòYJ›:Û{”êrJ—¡ìB Š¿Š]He«"¬Š(F@ò2,³lÖó $ž-™‡CU‚MOŒo£(ZrÊXù½SÆ|µ´“©¨ ÍEkºÝ¸g"i_£} CŽ“¾¼JF€okv<×-YÔM%`ê8ý¿+·¥Ê?šóaêó!,Ì4@Ìà rñ™½Ž@¤…ø™ Ø 6$?Á„.‰ËeÀyRvh`ÉÛ|§ÇT€ú0˜VÒÓ4å÷ÔWPëж|2v°¦?زqƒ=hU7ìm+u8¥œ»”œYõâ‰ñ +ŠÌ …ׄÉK±jA±„O Hí…3îü€ºÆÏ;}0þ “EºŸ]2bˆ$E1ó¿#Ü%½T6©~•9z|éÀM(3Ι$ ð˜úEúöï±à[â0âõހƒPÉñØZò!²«95*qæäý8ó²ô9Û¶d^HÒ0*NYŸß˜¼°ßòruKdŽe~UÞü$︷ÃUÈçυ€ÀòèøÿçeßWïûO¹ìís…ÄłBIEåúsé$a™CS^u³bfÊ»^C‹·#'ü¯Ä¾oÉÄZ;¢ýÖ¹Öp=ù4§«®JZÎBÛ:É4w=ýQø±øàyF,é$n¹ +mÜÝZ€w~uî#FÜö[à|ýúÕëE%àÉ®ÎᎣ%-˜O´¨N×4®3á¥×íÙëBAEŠÑ´eFQ!¯XÜûíí³ÿq#Ú endstream endobj 893 0 obj << @@ -4760,15 +4759,18 @@ endobj /ProcSet [ /PDF /Text /ImageC /ImageI ] >> endobj 1030 0 obj << -/Length 2199 +/Length 2218 /Filter /FlateDecode >> stream -xÚíYK“㶾ï¯Ð‘JV0 —/©Ê&ÎÁ•rMŇõz 1²©"©™]§üßӍ)’‚FÚqUN¾ˆdãõõýR¼Ø.âÅßßijç_Þ|ó.Q‹$ci–óÅÃãBò…Lãq±x(ï#ÅòåJˆ8úÑ´¶<™å*ÍeTšM o1¼,?<üóbcÚ5a…n×x±âKÏ{²„vÝ]šæåMa3q}³ô;ðÜïÀq+$Èè±ö#z¿§—n×?Ø !} ”/G·Ú´D³-M´¥©–\EÝè=Clß¼ãùB°BÊ­ÁòXÁ3g¹’,¡‰iº01Np"ÏX Kb?ãçX Ò$zïÁ|\›­­>ñ;z4À!½ñŒžkÛµô¦Ý“G§ª]&‘ÝV¦$‚…Ϫ3[M¯Ç±*X– ÃoÂ带*ïË# ˜Îxí!x«>ïÁ›šô&Þ4€÷¨›Îv¶®à°­ýՌÑó;Dt;AÜ4M©Ñúð(¼î¹3„Ä’Å™fo4¾‘ìJ< ò-i3c&e6ÕfUwäça«Ò>XùOžá>jPNÀKô°b Cù“YØ×%L¤âUrð^ô+­£[Bi>!ìµEoN쪔 .¦ìjºÁõYZoC0Sɤ¸¼FCììg¦b2ÏÇ8³$÷VŸˆÈÉêtÀ_ïM@OŒ3{ÏÕÚõÞ¯¡s/×äºÝ–5>ïlﻑ¬‰ýbHä”ýs2WDFí^òɾ¦‹-¯…ª$…€ÆEX0„Ã"áª9 œáANþ[A è•ã~?Ñ,—G_È N-¹ I‚íƒi¡V ŒBÎØ¥4ãü­Üõ®a¦lÁÏä2‹R˜Nyð,-„¿9½¸0áÎB&‡©…ȾZ´ “éàgÊÁsg)Ô;3Æá†à~àIÁ\jdæ™>ÚÙ%Fî4HçŒý!ÎrŽ¶M}òδ$Š÷ Ěš-D‡½_5>&žÏ™i¢)Yȇ{ߟ½ïOûВª+— f8=ÁÓÇêƺè+(’ÁÈDƒðí4ϙm†4C~›µ¡Tj¸†2¨lµ»Š>s¦ÀMTùl»]п*–ŠWú­”ÉBpˆ8%øû¦4g‚d˜®`;¬\]¹'0àäŸËK #Ÿ¥8K25»®ssh]ô—Ñ÷! @J“ õ;D0„˜_BÛ ÐEúûTÌ&&™Šù¼1¦ æ«TäPÌÜø+ÏýÛ¾·á›XuP0¨ÑîêÓ¾ôC}š„Ùj0„’¦¹T}:®Vʾ¯ÎX£Q$óö&…ÔæsGk)µê›-Ú£éúHïG݁1V†s÷‘r,nuQcFù©\}ã–q?û©³†x=1x=¶~Íyǀs:ºýn7~Ô+?×èû\l}õ^?õ%¸Ó©«ä±Â¯¶þ+¦QÆØEó&—cåú;ïe0êN„º-™€êD†ºC;»Ý}D#œö†â¿Ë@vó°qkg_?Î:· R’Ø;bC'êvÇà:Jq½Á1E9nØÂǽÞ^‰}‚‰¶ÞMQ‚K€\¼ºSzùM\£Æ‹}¤'Pb:ô= jÖz¡µ¦&'ƒuV/ëüÌâ£}2×ۗØ|µ*äM–ó3æ'ß ™^ÝntÙw©þïf—ò»+œþiҖú³#Ö/ƒeÞ§9`Rt)‡ ö[h'?e,â¦ ’g”CSopB]²w¶r-!¨H1·á®~V‘K¨S¯ì,æ>SƖ¯ØÛ¶#¥Öܗ£âh<¯u§$£†NÜÔ (Îg*•o`Ýå0q cæN´5Ý$ú؀Û÷6îÃx[ %ûOÈ¿Ö<Gš7ªE¢P /óÌ*ã/ÔJ88˪Z"û. Öø®4rïýÙ|šè„ÍŽÆZ0©Æ×C”9$ÕÓN µÞºÈ Ãè1‘]…ç¿— -š¶w½k`ÃÚ7tî;£Ð ]“"óR\*œ†Ô¡ÕTᥩí+mQÜ­¸"Úî`ºÎÝ£jwD¬»ä’ÿ+±‚ÅÄM±ÄKbm´ØçOþÂ×ô·ICPŠ)³l4`…cÌ3&eà—Æp*ý´9!•pê3>ˆ€ +Š¬Ís–•ã qUv"kj d`”0¼³»ë‘&90˜'á<é[íÜÇ4+vÔ۝¶joZ4? mî©×šòÜ}=­ýôޓ¤_Ùôˆ,‘6ŠBO‡R$fן€O¿Ò×ȸÕï¡A‹ÄõÔáûˆÌ©’~˜úÙÕôÖ7¡…[ÐÚLL_϶µïá]‰@ᓍ\½§†ã© ’v¶ £ƒrÄ ÛÆ˓ÎñJ'—ƒF‘°yKzswÔj¡ñgb&Δd\e6~Ásà”bê9´O]wŽl$KƋìÕ¾¤J8mã.l½Ñešü­µ¤œM®Y腱w–]@&\E ¶8ÿ™ú éi- +ˆ®'Œ™8í‹íÞØpªätŸ1„â!ÄÖ³ëu4Þ´aü/¶%CÛ +‘¦"ù¡éCŸwЀ¤¥¦!ˆOÍHtÒáWç 7áe†èºÐ4¿òä™\â0¶Æ .àPs}aˆ!¾Ô!°Dl’ŠÉbä=s<¢÷áVx2üóÁGgÛp7¼‘î*ê<+ò=Y3OS¦T1·fÝôD#y¸ºrOÖ`^$ \GÁx =ΘÂÐag續‰\¼I/ÞËa¦ `LG(í—#D€ƒqÈæ$®Î™àb.®¡ܜµõ>3WL‰Ëc4„Ð1~Faj¦¤œâ,2¼>‰×Õ雴ԁLŒ#æêÜöæоžË Q·_²¡Þç7p76?ƒØ#25T3y€‘’CC[] UY‹¸b Ž«„s¸E¨™J`@’ø[C Œã?Ó(Ÿ__è :NQ†"ELÖG°!Z1Jµ$°Km¦ò­üñÆt¢­:à©ŠäÎ#…Aq0ÐáÏÊAèÐ9ð[饃‚ Hs9L-Dñͪ͘ÊGž©Fæ.r¸-‡úçOLîÒ 0Ïôñh¼_bäÎeDC8fʇ8Ê3vìÛæÈ´¢–À Ä† =:ˆ‡0kº æ÷ã> K´‹qxàþ¼¸?BK®¯2áíÏ«[ç£Ì H=3 ·· <¾³` +9®üf ÂÍPëñp@*àÆküQ A˜3 d43å³ë¢üªY.ÞÈ[9S¥žài>%ð}[Ù³A2LÇ°. Kê+ç:¼þ¥ºô0â,ÍYVèÅq]ºC磿J¾¿iR)ô¯PÁb~Ž-/Àù¯31›¹d*öËÎÚ*šGlr!áv° ñ7î;qú÷CÍ#9ðjÔÅé‘êÝCs:T¡kH“ð£µ{ŽPÑ0ŸªÏ‡(*6„z ±A§È, Í.R?Ø/=Í¥Ôj(˜°¡`|4Gz?šœ±0<xÜGÊMv°£÷.*Øè#µ¿ßøécÄO¯Æaè¢P¬'FփnæœWŒÓѯw» ¤ßPr ¸AîóWa.ñÍÓp ÷6õú5ÞÉ÷á+¥^ÆXìís§ÙلíþýÊ<ô0)VÄê0…€ŠŠŽÜþª\àŒó²QVš‚(nn8-üšç+ûK9io‹ՇÕ¢zp®šPS‡[xÅõ²Çﴚ8ïf *V[&`çX$ ;¯_©Gyפãîé -)m +H1¢OÀº ºÎöãàlô×ú¶œÅ¼wOöjéëv¯,tFÌ¡nŠ-ϸŸB}äò0™ngª¡j* gЍ› ú7³ºÕo£þú:KêˆHÄ+5†¹ÿÄV +C¦Ê)o’”:+§K󐫣}pµ/Á³îoØ:ñ)w _¤<äÒÃv\×S%ß<\L'×h‹d‚ß%›”¼pà®iÁˆ!—©C‰Ú}–“Fjj~Gׇ^ÛÏA" GCð ,UðЀ\êDù}ˆd8Ò¸Émµ¥Jtáe™{ü…Ûv.ò®ŽšC«þòäßÍ÷¹H­l±5ÖØ¢i7vø*£’vÏkuÐÕõfïc+t#ƒhjöažÿXk`¶vëïûðý}(ç™0e2ô-^û‰†±m;\eƲ¼ØyÉqji*¹0UȏÆÜ#ˆF@Ÿ…Lם1•Âƒð»ÿGÿoˆþs¹þõV¹Ô °¯å ر˜,%+2É!.cߓO>Cdà¨hÿßÛKÁ¡_Xsëú…^ŸQQދ¾5ï´bB—‘ôô­ùûO®ÝyF^û—ÌÅ•À¨Ó¯Fñ÷"äÅþxóJdɸ«Ð,Íy°½ŠÎýÓÝ»ÿ ÿ¾ endstream endobj 1029 0 obj << @@ -4792,19 +4794,25 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1034 0 obj << -/Length 2331 +/Length 2364 /Filter /FlateDecode >> stream -xÚµYݓ㶠ß¿Bo‘;kHQ”ÔL’i®MŸšéÎôaogG¶èµº²äèã6›Nÿ÷¨ŸöÖí4/ ‚ ?€tè=y¡÷—›¿ßßÝ|ø(µY’hïîàÅ:ˆ2é%" d˜yw…wïg›‡»¿}øE^|¡@¾$ „ Ärüg³#ᛪ3Ôú7MYˆÞ¦2Håm³@é˜&ŠAŒ%*&Š•3H%݂ñ§0´TÞ¶ù+5ï[ӕÅ`wMóÜ=8¥ÌÉÔ=s”÷ÿâ?Ñg¨‡Îkúò’ }嚾ъ¾¼ÙÑ@WÚC­ˆÒ"ÐaôUQ̲Ð*^¥T µþª(fYh¥×v¬È—IÈÌÉ×Ó)Mmˆ_ĞAǒŒSo+ašýí»z³•I⛺Ø6‡í9ßodâ?odꛞ†öM]”}Ù0gÎä¼FÎWêœñã7¥¥1Ci'hÿhò´D+̾±¬…!B ›¶£Ndj×·&?Q{¨§Iù®2³PRš¶ñ#¬‰ÔÏ Rõº2´:¦¨#ŽY!)¬¼#eé÷™­âà Ùw– 5Ɓ'Фwþ˜×®e¨qÊ)í4˜¼””ø´iÁå' ’U 2¿C{#×p^Û!YSÁÂ¥µV43’òóªk¨ÕšðG›*gS5cVlºU°òwUE¼o(Ê"I•È¢ÁèjDÔþ懻›Ÿo³BOx*SAœ -/Îd "áíO7÷¡WÀ ì@0õ^,ëɋ‚X òTÞ?n~"Ì\:±ÊÒ Ì"´H’q.Ô|°Ü*©-ëŽy‹§"0ÔÏCIG£¤ß7D=Ú}ÆC#9 |ÞÄhæ¬ËNùù\ÖOh»TùwG&ŸÁ ¦Þs¯9”…EÓùÑà ™gÅîM’@§úÿcP¥R}½A°^ÊþØ è»R[cYûÅ1Ë•-Ec€S!z™gŠ5bƒ?¦ö¯¦mÑ°7¢ - Ðªóhl¯¢Ä˜{aÏé|Ï[QjÍd·:€qè>o0“ᆴ,Us)1¾(3H?nRé7í ±8ĤϺ † Ï„¶ -¨Ä!‘€án¿…!t-÷yE$óËޜyÞ¡ii­Ž°ØìËO¡P{·RÛ3†[Y$É´•qþ§`=9œ+¿‚C`§bߪžÎTÚRõœÞ¢%Œ0rg(«žÈo ÐÙáà¬Dñ†øsKˆ¾7]ºÇÀsw´èÛьÆÀ\˜nߖ EÐ>m·ºËÑǖ‹JÌj‡6ÏöýÐ2ÓåÑÉâ DU9¯m ³ÓÞº1‘Ù|œÎf®ÂåÜH -–b*F¥Ÿ†6wƒ!jdº´'œöÂwbù.¶NX63!Kãï9ï: Ž“¼p-·­YOSÆ)Ãè¾ol2‚Í1gOltð€Ú;ˆáŠé6Rlc. ôEaD¢E2<Åò§Žú°DœDo!Ç.{pR]ºçÏtùB[›*°Q7ëNÂg<9ÕÒa - ¨(öDç–ñäT“m5a?|k®!榵64àK1ÊêٙüØÓ,¸À2Ó>ޑ,–rNyKuköMѬíaë”ÙN¿¹]s1,jžËsGì µ /ˆ£ZJ ó¢ê 9§¢³5©ôÿÚ 4Šoܲ -†ìTÓ<ÜUekZ¯moáÖ®.Ê!”9Xrð°žÌ”8»SÊ"û«¡ýgÃÈ å´Ýq‡‹zFÎ5"ÍeȇäÙ1ρ‹5O8ïiêÊÿé:fžÊúa­üÏ Éeã­Õ^+e&ÑRAçU™p5͒رãDn=)n 6×ìlŽ)›wet?íۖPï©L—geÔKpî±v÷Œ–Ð) -« ꎈ‡)d¨rÕvƨÅÙÖþHu@ޚł]Wî*æ½\"™/Ñ ¦R³kNfa1ŒÔV0åM‘Æ…tH9æSÍn²M-él}XDJ,5ĆuÑÈ1±uÆ´b}r^̔“BÃÜâ+ºƒ`¦U©ÀôË„´j_+:~íî&غ0&’z­¯¹crzû¸ÎËõt+~ËË£@ -qµ—§*`uì£Êc¡uxåú8„Jèå…ïVpÑÍë'CM[Œš¼R׺|_ŽÍHcç|EÃ60H$'…ß9m*¶„…£C½Î) Sÿ{ՁYHÓÕÖ ¬^Óc\Øs3{ªbعÒõÿŽ~}ùï½Û‰ééiáÌMÑ)çï,ßâå?„¸ííSבž"ÎÛ$ߔΠ,¾¹­ùŠˆžü‘×ämUÚ?¢ž?&p_æ %L‡ú€®˗K÷…Z( -4"+”Z:KÒUæîn~pQ[ +xÚµËrä¶ñ®¯àÍTJâ øÊVvśا¤¬ª´*5Äh͐c>v½NåßÝ/ð1‹]©Rñe4îF¿ÐOAüí*–ïwwWoÞé,H£2ϳàn¤Y””:ÈUé¸ îêà>,¯î~|ó.I‚ðb…xy)­€aü÷ú6MThƒåÑxˆôm¡£<7Ám™,å*FD C@#@å9°T‘6Ú˜¾SÅGU}_}âá}o‡¦žì{•˜Ÿ»îyxpŒÙ“mGÁjîÿ- áÏÔNƒ­}<˱žµçÄó<+é•:1R™Š²8ù*)AÙp•zHeYöUR‚²á*óI{èë<ÊuéègËMÕ]k_¥RQ™¦š•‹àVƒ™ØÜ·íõ­Îóжõm·¿=W»k‡Ï׺íÈK»®­›±é³pÕ"æ'žœñv Á¡¡ Yx°Um{†Õv×jmÐÃÁ¶x2:Œ½­N<žÚeSõx´‘ӏ2‘1‹ñœ•¨"¬jfõ¦:& ä׈H'?2³üû̋ÄøtBôGBCŽqá 8Ýdê)H¢Taô9?]ý“ãæֈMYDq™-€%š•sÁæ)ðÖèŒP7z¬z¼8“€¢~™¾£Ã±cè$ú€?–W*^øp¢š'Ю8UçsÓ>¡î +Þ|5Øv'³nÏT6-ÖW‹¨PD^)§¯PhžGY‘ý +´L‘½^¡°>6㡛ÐvuFÊ"ý¥)*Ë2T4Åk§bŒä™gö5Fƒ ;æño¶ï8¢álŽH€] Î¢qìsþ™‹µÌà[IAj"Š(‹4ÄÎ4!>_c&C2°0¨ÚKŠéE]E&øîºÐaן0VâÇøÚÖ±^¬XؖõŒž¢%¬H ”ÉÔGF`»ÉÅMÀw €½ÓÕȟ{Žè;; À{ +8wŠ¾ïøèܐk;ìúfÃꧼRÎ6¶=TcVÛ÷XÞ´§^.¯@OÐ!ŽGgµ½t–m˜åãb•È0sÕ.ç&Z µS12ý4õ•[Œ‘#"èҞrܫлŒbÙJ…BM¾çj(8.ôb_nóioS§…„ÑÝØQ2eŽT²'†ébÁ‡'O¡Ášð‹Äć”x‹),TOÏá ð"¸‰‘B»wT]ºš÷¯xùŒ[J8h;¿‘È/Fµ5˜*IÃиuºբیc?|[©!Öª¥r ø² +{´S¾‰X8f‘ãÊjKçTõ\÷ gßԝOjTÕ)+I¿¹ñ™5ÏÍy`ô [0WŒQO=§†uQõ£¤¢3©T‡ïû7î…ËzjyÊÀU™kŸx+ ½:/Wg©ÀÂFVSîôÎ)‹õ[{]û¯V"3”Ó$q—‹|&Î4’LÊ  Ésœ½ÿfp¾ŠÂ•ÿ®VøùÑ>5탯ü/!ɕóËÙöÕ:*òä3ªÀ³—&.l¼ +)6¿YFúŒal˜8:cZ!Û„J³ÍÂдָ‡w°Ì´¦ ,>÷@H«tý™áëÏÜÛGÊDÐ(K(ºÏã4ÒKÿãuVž-¯â/Yyi¥^m光 °:ô™å¹ÐÚ’ú8†JèíƒßVðЭÚ'ËC*Æ š|â)™|?º&Æù Ûa€A ) äÍI©˜C‡9ZÜSáwª»¡ +ªkÉ +ˆ¯å1_¶Tö«Pyéå؜ï=eeT,½Ž×]“JӗƒQžä¯¿&!©Þ\“6.뚭ÖÀÅäÜ ¼˜ÓgÊE׫seêâv¥\Úw˜0' ”¢’ð_XFKÝù~:ÉX‚¾RVÑçþø2)ÅMUñ&RÞøT™à{gÉ»ƒWƒºˆL27ÒæR°ï8€×œóðxy¥Š³,*”ÙêçÐ<\½q”@q¼¬”æ·áY2(Wôž†™J£,Æ,‘Qòã是7f¢8ŸíQ-½±{Ž¤Ô¹Ä›Ýö'wSßÏýËÇc·{Fœ7ú­9cݧÓ/²¢V°*ÅïÏ©ƒ +Éú ”¿î5„cý/â½¾F©hjf‡J^«–/¬þIVÁ˜¼ +’ÓÖ +2/*Ȭ˜¢pC§nÎ؂¡¸XÚñHލݙƒ;Ñ.¶æF +L‰m¿ùL,:Z…o_©áôEaÒ…ánO”O|rÐNÔìôKñöÅþ¯8ÏÝa~”º&ޘáksi†µ4µt6÷Âìe‰ ;°#1qr£¾Ì`÷“{Ë{iw¬zșó9óËj¶‰þcâ03 »¾HƒgÛ;í‚#Z\Xû‚† ˜j‹{fݜl;@=êþùÀ¯õåídƒçï8.?üaæ¾¥sÆNl¯ª/œÛk˜ÀçYúvê¼h㓫Dÿ?E¦-ûëÈ4·®†hþՅãlDE VÒ¾‘ëC®±A ŒÏÔWÁ핮óô‹ËÿK¸S¨–?¯ ÙÖƒ*ù®*‡l7Äàÿ#5×ÜÀH¤R`ÚØÅ:Ã7Ö½UÂ2 ®­úcCÿ·$17\ðB—',l‡Š„;Û^©ûBõ•DÆo(î²2—ˆVx‘¿¿»ú¢vÍ endstream endobj 1033 0 obj << @@ -4825,18 +4833,14 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1038 0 obj << -/Length 1446 +/Length 1474 /Filter /FlateDecode >> stream -xÚÍXKoã6¾çWø§]3âK{hÑnÞ -½¸†¡HtV-ºz$mûߗ‡2•X.öҋ%’#ò›™of´xXD‹_¯"xþtwuûÅ I²$‰w»…Œ ÏØ"¡)aQ¶¸+ë%½ÙÜývûóEbä"jå˜ ‘ù"‰?#IoV’Óe¾ßë"ïŒêÒ½¼¨FîåInZ7è>æ}cËçê†. [ÞÃ>êú¦V¥Y"Íõ -à¬2"bé0±YÔ섺ڹ§™‰Öõ¶ÓÛFååۓö“wnØvúøƒG¯ -³e­=ò¶*{Xì`²T….Õ¬&Âá䳚ð@“N5£ù×ǼmA ý¤š-`ËëxjBˆ'îñéBc +gЄ°%[HÂDâa‹lƒ´éª®Òõ¶Ð}Ýè÷ö -aÄŒd†<ÁxþXíÕYDž {՞¨[¿þ¤(dØ:°è2ð)>CÀÇ14õàã7HxÞSòÅâqv¨w“Èx—NÑF±´Q£óؒ·hù×[œdKk4OKæhibX¹.>nVô 5áü x†ÇbŠRf,Ë=úôk˺”õJ‰SÄwnâ7 -òÞu !?®ºØ¿>£„Ç1Ñ‹0Š…åœÈTx-² Æ:u8NËf9÷¶kôÁéq̍ ŠGù¸oÍ°ªÜÈ`·,º×úÑM¬–9n[ì é쒷 ÄE[äûÌVèºSÿt¨Þ€|¢wŒ©È2ÂåX|¢·hVm¼ÉÛBÕ%(1— -׃Ϻ)ÛíQ5[ë.££Éyr$(îGsâ±$t£×1Åt”‘ŒŽJ†%¶iòC¬Õ®2%צƒs〩½:XØ5¸ÑÐõÝ ä†jóýWÙí´ý{T€3QËN4Nˆcn 9WÏ?xËtÙï!6ÖM@ 2PMžþŒI¹.0"; áÔ-Xíf¬àÛW¦Á¾i5ѯ¬žª¶ÒÖ—Ú“Q„ ëc¨ˆ KÇòÿ=d&›q$‹0†˜$”Îœ2“$vÄ'™çO™É vB)#I"Î"“ý3dŽ±+–$å#Ó)ŸKCv`A÷™È°(HFC&rR+÷ v0ˆ@‰ÐœÎÓwAù¾Õ—÷C§–úӜ3¼ÝœÏvTüçÖ#pÆ·õºÀ Ëù¾ƒÊÿEãáՈ15’ùƃéúéïÊÓ|{¦ŽàPÄênÔûÝzhNæY=i%¼&é “ 蠗A0ûÂ`¥pÄ^m[y¡#¿°ïáÙ`Ó7zÿ pª#®ûºoUy}úøÓ¥&BAÑÊ+H"O=ZІ:º÷1AŒX«ûîØw_“¿î÷êã_q»¯Ãy7i;ÑêëÐMtC mBIœiEïv­òÎÝW‡ªÛZØôly ªúUke–,G¿ÉrZýZ?  -\@1±:Ÿ‡kíì;õW¦›RÌÿÇïó=zÅ[NÌöèŸçúc¯š£”Ð$›éœÌ–ºD2[ÚòvÉÄE ÙÊ˾rKørOCq>$:û¶´ÙÎ~`S±]è´ß«ÊMšÍM†PÃŽÒMåN¬Ö‡ªÎ÷nÎíX}Ó¨ºpwˆÖšT!b§ÊÏáÁœÅp}ÚÚAâú7Ûöûνë[|°CÊåÃ&¯v돰‘vcwwkߎƒœ6ùÄ.ØÆ»fÿ\0ã¦ØÞ}Qã†Á!ƒ£2Tú—»«/h~«¶ +xÚÍXˎÛ6Ýç+¼»3âC/Y´hS »ƒnœA¡‘è‰:¶èê1i2È¿‡Ô½”I‡¶dӍ%ŠWä9÷qx­hñ¸ˆ¿¿ŠðúËÝ«×oY²ˆIž¦Éân»ˆÂs¶HiFX”/îªÅfIW÷w¼~Ëù"Õv5vLH¿¡Å»(¦«uÌé²ØíTYôGM7Ÿd«&¸y–e¯Úýû¢7wlù¡^Ñ%Ø°å®ÓÊ~hYé)h<Ôk„³Î‰HbÀÄfQ³#êz Wý$Ú4ï(÷j¼´²¨îѨ;r1¯Þ°ëÕá'ËB¶Ò5fËFCVpÛÊ®6  ã=RÉRUr–—Ô|–wxõ²‚±9]‡\Ô³l'Ìèã¢yÄÛB`œÂååJ× c§Ñ¸°ãl&R [ak¤m_÷µ‚P”jhzí¸{€õƂ  Á%]4IM:‹&>¢ùð¾ÞÉóÀN²c'»cN7§¯u˜[š“^×ÉDò‘$!‚f–Hr&˝d°¹úI£Â܆Á€§‘8õÑ(†t#§š³ØÒs™úϹ4ÕU´2²òˆ£fm¢nÊ÷÷kz![q< •¥L{–[ôÙמM;!1IêáÁ¾hŸ$ +ãM…*0͂Ü\ aqx,BEGCUG9'q&,‹Ü)»^îúÞn[µ‡B‡ |’(ØC§‡uó#ÝdуROð`cf”oP3;xfÚzk¤+‹]®+UÓËÿú wDïqOB4YNx<PѹT«ï­Û»R6™SÈÍHãƒj+¨èƒlQVf)31%â$£Ñ…ªB¸^ôR7¤–kâG$ft"ëžÇm[|t1×ÛZŸÏFŠŽŠ*wr/õ°ÁêÔ½]¡NÔ÷?Uï¸Å› „ä +©MR"âIwݬu<Ú(ìU5ì°V6­ŸP«K,(¨v¯Gˆ®p&»X î£×è½]¶§rûÐMÙT͋0UÕÏug:!Õ\ë]FéÂBm aÙÔ/|î€6Þb< 1L‹/&”Îì€6Þqh‡`yGœä"¾¼Úx;¤¡BE•1’¦ââh⭟Öç¡Ü ÍÐÉêæøò˵nQ ) žÏ‚¤ñ±³sXÈG¸Ÿc:`1{ÕІþë"h†ýƒ<ÄôïÞ¬cé¢÷šÕàÉ èGG1â—BU*}ÁÙÅ¥ÐÄC:ñãàw4ND>%sú¡êŒ“ñ o;LQëc˜äqÌÆÄÊ KtÃÎ4Õ?¬þ¬k¥úïWS­Õv}(ÊK—OæÇH™ÒåQ¡Š™a5´£±”/GóÌ5磚»¥QAó‚‘h3Ñ+?Œ³êŵZŒÿ:Ìo`Ö¨}Ý;x+–åж²)áC¥ñ&Dˆ¨üênÌY‚_l;3H¡‚§Ý°ëá^maòy$`>)ŒRÌÇENV¸‚1|.6w‡ÑNiY1Ó#¶éó¶½.˜Sb¾¦Q†1 c ò õow¯¾§€Æ endstream endobj 1037 0 obj << @@ -4854,14 +4858,14 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1042 0 obj << -/Length 1138 +/Length 1149 /Filter /FlateDecode >> stream -xÚíXMÛ6½ï¯Ð-Rfø!~(@-Ð譅ыcŠL;êڒ!Én“¢ÿ½C‘’e-m¯EŠžÈ¡È™÷f¨Ñ³q°pðӍ?L^¿#* %œÓ`º -$ $Qˆâ$˜.ƒY¨@,špŽÃU1VÛ´‰&LÈÛ¡ÞÁˆCåï1‰³:šOî#€{>tƒ MsÎßEŠ†¥õHÁÕg]•v¶Ô™™™ImWviÕäM^ÎÖ¦Y³ùd´îŽÕY•hOê¥Û˜V›\WÖÈ ;6µ¼úU×ùrï¬# 7Ñ$Æ"¬ÜSàd°“ű°àñ+àMEXëÌÀBp€ñpj3¿*7›2¢*ü#/ÖviWëýÒÒêÙY;ˆ£‹VšÚ®4Ÿ:ݺMéf]VyóqëB}_×û­~3Ê7eÃ|‰bCÒ ÂeÊ$G‡`ËðAŠxÔnŸs³{\IJãªÛ”a"Îñޙ÷ÖÇi ɑ¢½™Kö¢/õ¢Î?ëùE‚B0BŽ¢ºâáŠÝÝhW¦xpÊê2\#¢’/+H¹ZÕºñBæ HÆ9ÈîÍXçEán¥¹âéÒÎJÂÀs_²vµOG‰”¢%’H”"P.ëÄ՘ðLbÒBOŠiˆ¼Çœ@7>2«½›Ûù[·T´6 _;;+—úC‘°|Z,ó­.jóþ{á¸8“Å"¶ÁèU8ô'ot•6Úΰò`‡™µ)4Ø*€“kgaû!4d5qNÿº†”[¬ë/ô±}Lળ=;¢?؛g!袩>-½¥×z¼}U•[;ۥٓ)¾™ïëö~˜i¶¯*p錶"å“KZaÇß~±ÙÈJØG 57>âý8¿J2>W¢ßϕˆ^¨OG`8WêbņÀ]uÄ°bŽŒô^÷¸#ÃÏTìà¸èÞö©†½¸{ÕáF>åïf»½bGOo}]Ü!dåƒ'PLúw&Àc`0=z1Ù`Ô%LŠA×å^LÏnö 8s%ÿÌ㟠DuÑ¿Ûrâ?öù÷½LT"I{üâX¡eYh_4wà$šKºÅýŒ -8è:uT±_5’¯ª™Ä­G ŒLçiu•²ªÑ<ªFc÷ªÑ©[«Ævc§Ñ~ -a´ßQ˜U£±ô!óa°Â‘SvI8’oN8ªÿ¾pLþŽÿ‚p”÷Ç|(kÌ'þe"ë&9øM*æeWI²›ÕUÍ{¦ò(ö¨à›âíú劊ò(VqЗ x|¡ü”~©’Ü$› Z­èåd=Ù««ì7/²j(Ïòù Ùµª:ü4ù= E|ŠÞ"¡òÕ±œ.]k2ýӌ]×Ý»”'¿rÛs¤kE“{÷&¦®*µ)ÞYƒ¾T¬±«äsøìŸÁg_4‘¦mŠh÷ƒ_`ïá§ÿ” ) +xÚíXMÛ6½ï¯Ð-Rfø!~(@-Ð譅ыw±PdÚQז Qv“ý,{¹öÚ P¤è‰Š¾73=GËG¿Üà£ñ§éÍëwDE„ ŒsM‘¤‘$ +QœEÓy4‹ˆ%Îq¼¨Fâf·É„ c7˜ Œ8ÖEy‡IZ˜ä~úëp¸çc÷8šÐ 1ïü]¢h\;\}ÖMífs]ؙ·²É›¶l˺ò¶þ˜íê“3rÓ3ES¾ïNê¹ß˜7«R7Î(+7¶´›¼ú]›r¾õÖЛd’b7þ)p²ØIŠÒT8ðøð¦"6º°°`<žZÇ ®_Ô«UPÿUVK·´1z;w´vÎÇîÑU+­q+mïÇäk¿)_-ë¦l?¬ýU?³]ë7Gñ¦lo"QÊR:ABø¨CšäÑ!Ø2>DbuÛgÕ½Ý}œIJãªßTÃÞ%œâ­7!Ë$GŠ>f>ØCªLùYߟ$8!# ä)ªë(Ø×F·º³ÉƒJ¨›ÓpYŠˆÊ¾.!õbat„Ì"Œç û7cYV•¯J[âùÜÍjÂÀó²nuG™”¢#’I”"P>êÄç˜EðLbÒAϐJiˆÜaN ›@™™VoîÝü­_ª:›Æ¯½]Ôsý¾NH\?Þ–>Ì˵®ŒíAHþ®I†R‘º éYHt©lu“·Ú_^zpõÎ6;ëÂhñ5)¯–ÞÂî)BhÌlâþ})w8XßcFèÓú”@¹³=ۣ߹êstÕ6Ÿº˜µz}f—ðã#‹¦^»Ù&/mØùÖtub§Å¶iÀ­7ºÌԏ>p•ÿøÍE¤¨+ˆP«?¶!òžÁ˜—& z"G=#À:.­“™ƒ÷YãÌyB2@HPxõӞ&s;ÏG¯ôz7ìÅýk •y ´˜î®ÔöžÞ† û{ǐUž@)ºÝ5˜…u„é6ˆÉ]6YÀ¤t`ÄtXápµï£-?gÛ Pa¬‚Bp ‘$ÔÔ¸D š·‡õOÈ¿ßràŸ†ü³€&ÉÔIÿ~ˁÿ4ä?ôjQ‰$ð‹}®æu¥C·ù·‰c¡w #¡ÃQA§µ§öZ2 kIòMµ$“¸ó(T‚Ó’ÊiIûl¬%­=hIkä~ñXKv{-iî £ûºÂd¯%­€ +ÙO…““œ²Sr’|wrRý÷ådö¿œü䤼FN–c‘c?ø/“] ÄïFb”0;K”],±Î*ákUV Qi@_$/W4gtU@NJ³€¾Åí © K–ì +!fuZH9Çã ¨³Aiß²*šyû¿Œd'¡"Ás@ð·ST$¤¨è%Šª\ì³êãØw*ÛNí¸ÒÆô¯U^üîΑ¾TmYmýK™û¬˜® lœA_ªÝØY +ò©(|ò÷á“áˆHÛÅ E´ÿW@àà៧7_Ää^ endstream endobj 1041 0 obj << @@ -4925,15 +4929,15 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1054 0 obj << -/Length 1291 +/Length 1296 /Filter /FlateDecode >> stream -xÚÅWKÛ6¾ûW{©Čø¥¹ȶ(PmŒ^6‹B–i[XYR(y)úß;äP¶ìUÖ H/Ão¾‡Ã8ØqðÓ,>ûÿ¸˜½½¦i@aTŠ`± M ‹³`± -nÂ,šK‡?몍æ<u4§¡f’„úÓ>ï˦î¢ÛÅ/ÏÀY.f‘ã‘,“˜P„þí^›ûR?œ€ÀbPJ2)‡Å,#ܓZlµ%“¸î2š3ꪉà÷€c¹q²i¸ïô -‡Êÿ;+¶¯ú²­<^[å…>€Áì¶û­ù3Jiؘe酊Ʃ\éû]‹ŠòcLEáȑh.Xþ‘Š±VZkÀ1B$hN¿Ík„/ª}ßkSÖϹ=Ó¿ËK/ê4¥ƒ¦ˆ†¨ åWH«ØïtmÍè»70A¤~:sÍJ[Œý“†@Óû#¯ýÑk¬ à÷òÁ¯`I˜·­iZSæ½&ç;z‚’4=„Ãp¸Ž8 ÷uq)°¾4DVY5›¯Ž*š…WváÇXƏð¡Wv0 מŠÝï ;˜ê‡…¸ùMWû÷i©‹NØ0ƒ‹,>E™~kšýfëX(Ò¬‡y¿-7[Ýõ8ÛéG—¥o@hLlŽ[Í2ö–ăåÓ|×áPÑì öw6&0Np¸ÄŽÞèÈv;vIæÕ^[o¯¹;’¦Œ%@µSyóx‹R§î†¼"d2¹c!ðDY\G‰[£'Ȕ¤\^ÀgÐLB•î¼•x¾,øgms±o‡F±ïdÆ vþ„]£DñÓ3k‘’`I I¦Tb9Ì©$IœÂ?!Iš¢0õ&ñ@`LYAbupÅ]—û7¨ú¯{ë”[{‡¿ø‡)iž‘„c²£Âr‘¶ÅœqªÃÿÆh8Ð;èNÛBwúµíïK}Xò!VG´Åm! j ÍG´ëÂhÈoý”Û&å¡Æ,äEâ¨²BYävºm¹Tîjj w$­'ûfð™Ÿ1p„û7ØnóÕÊ¥ú‰_?,±ñPB¶>úù‚AޅÉEƒäÑ £[ØWlÿ®×-¶0Dþ›ÕÄn¦T P*¨ü3…îEÆèžCNÉOTÐxJ‡M‡\”Í]Ùý™ÈsʈŠH’øÛàýcnsc÷ýÙ ÂøIJSD@¦:Y ùD½xí@3åt 8\6±Oüp‰¾³?åûuÏ=*O_¥œ>SN¿Fùë,gϔ³o§œÿŸÊÅ3åüÛí¹zò×Y^ë Ô«÷¶Îð•ãD¥tF0y~"N+A[Í1HsžBU— B_[WÙä=w×ãìýböif‰Å…ÊTÆíS(ƒì»ÙÍm¬`Қ{p’»€“LØ"£ ->Ì~?>¡F‹”Д;(•Pd±¯Û¼¸{ÑQs•¸uãšôê%ʔ“Ø‰TôeΒ²3Îg›” –ÅâjÌÙîÊÝI1,¤«  ?Šõʽ`Æ^xv¦7yÝUP4øîÖ7bÞ¹_áز¬só„ëáJ2ºóÕèð¢W Ã|ŽÝÑ;Ì] °{–þIá{x›á³{Íü¸BÁv’QmëºÞª{X?CcŠšLJ¥]ZӞ°}XoÁˆÁ©ucpʓp5€íû÷Cy¨ÅùèX¨áyk:2ù. -ƒÒ^ÌJ’î3¼ÿؤ0DÒ¿DÙ1 +xÚÅWKoã6¾ûW¹TÖ\ñ%J-öR`Ó¢@Q´kô’…,Ó¶YòRrœlÑÿÞ!‡²eG‰»°½H| ¿ùæAr« ~šÄgÿg“÷×4 ¨"ŒJ̖b¢)aqÌÁM˜ES)ãðg]m£)CMih ™$¡þ¼Ë»²©ÛènöË3pD„‹„Yä8€E$ˤ&¡{Ðæ¡ÔûX,JI&e¿˜e„{R³µ¶d²םGS¦B]5üö8–'›†»V/p¨¬ñ¿±b»ª+·•ÇÛVy¡`0û„íníAþŒR6f^z¡¢q*ºÀ~»E +EySQ8r$š +–…ä€b¬•ÖpŒ šÓ­óá‹j×uڔõÊsޞéßä¥ušÒ^SDCT†ò ¤Uì6º¶ftí;˜  €@R?¹f¡-FþIC éý‘×~Èè% Öˆ ð±Üû, óíÖ4[Sæ&ç=OAIšҁa:\Gœ†»º¸”X/åõ™UVÍꫳŠfá•]xËø>ôʦáÒsB£»qiS]¿ƒß´åQй™–ºì„€\dñ)ÊtkÓìVk¿ÀêD‘fÙÏ{üu¹Zë¶ÃÙVw8:/}Rc$8n5ËDØY{˧ù®Å¡¢Ù@îolN`žàp‰½Ò‘Ûìvì!’"Ì«¶:Þ_s1t$MJ€j§òæñ¥NÝ çŠI/䶅Àeq%nQ S’ryŸA39UºõVâþ²à_´ipÌå¾侓mpìü Q£DñÓ=k‘’`I I¦Tb9L©$IœÂ?!Iš¢0õ&ñ@`LYAbupŨKÈýT}K¹øëÁ:æÇ?à/þaL«G›fD$!ÙE¥ì¨´\âßf¥m1çcœjñ¿26µÁºÔ¶Ð¥~­GûûEŸš¼Ï×m1B[H„êióíº0θîE×ÑpÔ_qHF^T,ŽŠá€(‹¼ÂN».—=ƒÞkM­±áv§uh×ô®ó3vs÷ÛÛ|±p§þ‰Ä¯ŸæØؗppÝ}Á ïÉä¢AòhÑ[/¶ûÛé-¶0Sþ›ÕHPÓ*P (•õTþC÷"Cô ·$'‰ä'*h<¦Ãž‡c)9š»°ñ9B¦”2œ%Iâ/†¹=&ÛïÏ.ÆON7EZ'+áhQ¯Þ@ÐL9í ö÷Nìï¸O?؟ò»þEÝSƒÊÓ7)§Ï”Ó¯Qþ6ËÙ3åìÛ)çÿ§rñL9ÿv1WoSþ6Ëk½‚ÒõÁ–¾ˆ)šÎ&ÏwÄiQh ;‡Æ”§Pà¥ÇÚЗ™ÀU6yÇÝ-9ù8›|žXbq@¡H„qû*ÊàôŠÍäæ.0ǚÛ;ÉMÀI&l½QŸ&¿_SƒEJhÊ”J(²ØÕÛ¼¸ÕQS•¸uÃòôê5ʔ“ØFHÆD*ú:gIÙç³ %DB­e±¸r¶Q¹?©‹…tåÔô‡š±^¸gÌØ ÏÎt&¯Û +jß]û†CLÃ{øŽÍË:7O¸®$£[_˜öqe1ÌçØ<ÉÜÕѳôOjàÃ3 _ˆØkîáÇUŸ +¶“ Ê\×õV5ØÃRcÔì8¾1-èܚö„íÃ2x&öD N-ƒSž„«lß?%ÊCYÎÛBõ/]ӒÑ'RÀܐöbV’ÄpŸáýÇF…!“þ…ۛ endstream endobj 1053 0 obj << @@ -6059,70 +6063,64 @@ endobj /FontFile 1155 0 R >> endobj 1157 0 obj << -/Length1 2012 -/Length2 12103 +/Length1 2034 +/Length2 12198 /Length3 0 -/Length 13206 +/Length 13306 /Filter /FlateDecode >> stream -xÚ­weX\Û²-$!¸K;»w—àÞ@ãîî‚;w÷ wwwîx½Ï¾w'ûÜ¿ï㣪æ¨Q£æZ (HU„Ll@â¶6N ̌Ì<9UU.3#"…ˆÈÐ lk#jèâ0ss3„œÍ,Lf6&vD -€ˆ­»ØÌÜ @-BóW'@Èä66´È:™ƒ¬!ƆV[c0Èɝ dePþë„#@ärp™0"23LÀÆN#Øø— )S[çßag»ÿM¹€!¢Ô‘4ˆD[+w€ È(o é‚(ùÿ!ê¿Éŝ­¬ä ­ÿ¢ÿˤÿ“6´[¹ÿO­µ³È gkr°ùïҏ ¿µÉLÀÎÖÿ•r2´ ٘YL‡ÀŽâ`7‰"ØÉØàäà úOdcòß ¶ýGP]]D\N‚îïuþ'§h¶qRu·û‡ô¯âÿ`æßbŽØ  ÍÄÈÄÄ )„üüïoºÿÕKÌÆØÖl¹ìCCwDÈŀ v€'3lcr€Ü zŒ6¶N#ˆ%ÞS[Ä¿¶ÉÁ -ýúq€Â¿'(òq€¢¿7(öâdÅ#fPâ7b¥~#HÙßÒAî7‚tÿ þA\N¥ßˆTþ T~#6Põ7‚̧öAº«ÿF~¿¤Ÿæ?rU†¿„ÓÐÑ 6;;[ÿgcù+¹a`GËßÅZ£3 䬑¡Ãˆ\#CcÈÔé0ûÿ„ÿ~bþacþ;l rúW=7ë?ñÿ:™ÃøÄclkyPÿÑÌöWÄÚú÷tÌLõ™ü!-A¿ žþՁ㯼½3ä¹ý}b„éï#m¦`—?8þJÛ:ÿa¤Äì7#$oö×kôg D¨ùoÙ{ÌÝíÌA6T@bà? D©Å²BË? ĉߊ9 #[ÿÈC|û½YffHÁïVì.° è<ÄÛßê ‡mÿ•†Ld÷; !³3tÙük…lÌÿý÷Ù cØAníAܲ³rþC-3$bÿd…Xeïlë21ú="+÷ÿÿMÏÌ )þÃffˆ‰¿‰Ù!‡AÖàßö¿j@.xÏ!q„¼¢þQ1ÈÑÊÐÑübÈ¿Û²C†u2wýq) ¦8¹ÚþqÂáüûCz:C^_ŽÆ¶: Ù£Ë"Øõ§Bêö„tuÿB¶âñ[3„Éäð·‚ÿû¶uód`0°°²@æe‡¼ó¸½ÿUfììٞÓ>¯ÀÿbS0䓹Œfmyƒ,’CJ|ÄòÆKáh¡…Íš>Ë×uNµ¿ œ…¶*”±§]­Õx(KÃDمÛ%v}"tŒhóR?õ·ÿœ2ó¼ëb°›æÑB¨q‘&ç¾cGzøµµqúêˆZaru¨$A3¿'ó¬÷gŽ"µ¨êÂ2 T—¶K}Wz§†xš•Zhp-%+‰2ZŠ}I[èŠ+ZBìÊX Eèëfº¥sÛ6gŒ‡¼×_âŸõ¡C™mW¶6'}GnzFOXqÛc›âˆ™¸W؟óBgÆ{–ƒºÜ.Ehž|Ëm´Ž…r6æ)âÆ|û)– †îHXL…ã½øë \ i™ªêÚ ÞÜtŠ¯nB_ûDéͯŽY¯Ob®$.? Aá×~Í ´¾¡£•oS*~Eï›ÞøÀ”Nc—ÄlÈ_-wÛx¦™{…ÈÇî7Ê«4—)œ"”0}îæ‡ 6ô -Æ©7\‘zbº‘Ò•NÏлŠ3œáő¢ cdàXe‰µfC{ÌÌ×ÏÑ­oЀ«??ŸÛð-Å‘3;Ö¤©¿–C£áõËSv¾"¼€“[N¹Êy¹ŽçO2xd¶Ü9ã6¸¯¹Àö–ùn…CÃNÓ!`?%ÚŒ‘õQ 5j!å¾~†7³ä•¬Žò­íìá9÷é©s(q%ü6|´3ª††ÿB@K@4}ªåBvOž;Äû8L<ªü­ßÁ=s^ÿ.yo”mÃâ{Äû(CoY¥øÔó¦Éï%343r…7ß³W LÈ®´Û‹kº•˜J./…z؉4CŁLTÞ¼ä›hrÒe¡¼µ5Öµ¼'ôþÔÝc@‘ye¤y“ËÃGcgހäÛY“y][ž¸xI îCgà,»a†BÙù†˜Z{¦¥Jïžd%\½o¬£aÁq>áÒ>ü!ðǹ׎l8ªø…Ê°Fs ³v9³¼Õ¼7áÜDpÖj¦ÈØy!»“¤é–åúómŽœ1dÎö“cf_|Þv‰º¡Õ›ïí;k `…Æ—0–tkï,A/úX'mRÁJåo…r8ãBï22* -F}2Ÿ³T}~[d)g¹ØöKLMàÝÜmʺçœ}uHöêªÈ<#:nªqÖþ@L¨{aáÌ«\»®ð~vr=¶©4µÛÌz™sõ`GC_wŒ½‚N؅Š³£f#ÂG¢ŽÛšÖÝâZ(gÉw7L…’뺡ß]—el ž0Fm.(ÃàVO§a]|B¬ïž¶YmÎù å§0@]òÔ±tûšö¬˜L’S¸Ì4T°MwªPÖÚUÈTÃpÿšN·yÕ9ŠÔ, v®õ7¦´òÛ^·Ö´_`Ý04Éí£fF03BNÊ°”õtŸ*$Sãˆ*I¯F7:m2͆{šFµjûÿØu[.Fs”_H Y NSA+"ÁjÔîÔæ¬W¯'Ü*LŠΕÙ»3r¾äv­¨G$’9ký8„Â2ôjš˜Ë(1:*b:ÂâausSr›È;fïÞ¢‰ºS™r‘˜H*ÿ WæÉoŠBP‘È·OÖXuuÝ7Á[tÖ¶ /´ .;Ñäç¹ub„!iÃÒ[aR30¹`¹%“è@!Ù­ß¹/Àʔ2ð4Lè¡óxŸ½˜è~z{w¾j€Þ£.øl83´Ôàã#}Xþ3M=öh–†õÛKù!oðPðÓí‡CÜ)¤ÑÙbA¯ -_‹›rþùâ7NkZ/ tðþÉCÅDS•1D¸0ž I¯Õyú³>wTòçÅöÚâ¡Sãu³ÅzLýl ĊÖz~‚"ªOz?,þ¾±ÈÊLO(Á,sØç°UýÀ‚j‡\ílµ¸²BE ¹˜³”@Å`LÓù$·[âHBiY¨þþž¦CÔÜ -ÑàX&RÓ(ÍÁdß>õ¡•gìA);Xr7òA9\º•r^áâ=_SÞ¨•É{úùæ-é{Ñ4ϐC5™¨Ø5ýà­WRg}TCY¼L¹óÐghé~ù;•ê#?ípt1`P­ÄÔXw~Ò/þ -=€ÁÔhhýH¼ZÚi¤i¾Ãäâ¬<áO­þ‹é&&zK‡\8×ÅH)Pýx^\wrBeÐ0ÿ+Û¢ÞÔL4™*óZ{š³ÐºP€„ݱ٠S§›5_끉w`èʳ2Æ<Ö*ækXò52ÀÈúbð.²…»q1—Ž •ÏëLbÎÕ~nGô“¢}ÏH>×àq$œé@'7KX»wÚmzª‡Hué,rí³^Ð%ò1uˆ—TÛ auìgÌ~„=•äÆÜQ_ª€R›xgaS~öJ{LWr09ܦ‘á™^s6ÞDYÅå®ù—Áå.¯uŒCƒ8ÅÖ]~ví -^ˆÔÛæT·Ï êñÿ¯«ó|$œºÑTï¢J:Ñšš›À3[l»§_õ—ëõf0§G#aç¼!¬?onwyQÈÆ?ù‰Ý¹&l¤CSçH®Ú ÀÆZJW@ì'–}‘CãÔuôƒŠž¨KÚ -›F.ëžÓEÕ}–x¯,[ø‰úõ=£´]¥R©ëûe¬ý–¾³Ê0¸¨êá´5m”½+¾Ó,ÿ„ªk]°¤jZªK;9{֋]mÄ1ý;‡{,M„>þH³-¾ï»c–Ãw·b²ì©aÑpIUŽ|AfmïFçÝ0N³/íîx°&HwÃBÃhm¦CæyÓì"«µ¾ín0•ýOç.wÝêô1éäin4) -½Î+ÌëN¸¢Ü¼ÐÙE iR{œ*ý穁zþE’ ùMÛoÂr¥Ÿ“刯ó:t.Ž<;œ=Ñ8ñØZk›!ë¡?¬€jÓƦ™@ZRþr،ÍËMC¶öjՇ%ŸôÆU8·f¨ª -Iɵ‘]–îˆ[8—¨¨/€B(û¿W Nù«ï§üðK®´Ñ¨3Xm|Œ˜:´òSס ú_€…Ÿ‰çìH¥Òém¿>ÿjÓ{xõÍ¥~8áé,º¶âÐz÷hßLþ®:í=§Â'L$mŸÞ ¬}R÷1=(ú-%õôü ìµÌÕÆv±ó~C¨ÔOÉR`Ú9 æSÓNï:À±;%Ï·¶6àÄøŠU;ïø’B$ˆÓÀCõ&«hA·k”>¯#¢÷Ç*Žðú¸Eü]TB,a[é« -^ ó1ñÚÍëÀK’™P՞×FEi!Õ?è¬ÍÞ¤†4!5„›+ @š;äýb±å¯Ô¯ä=ß 3d˜7+T9̨Êêãó`Ôô™ˆ¹È®èj;"áA¶çû&½S{ëÆp<º\¾‚WÙ8Ç/XñÁ'þ OÁñŠ¸@ýiZµ]´—Öêõ"²A]£Rö6ømRn†>w¢npஐqÙèº Z„ªz9O»$K«l» øæÑaõ›hÔ¿`Êf[Qa½ÎW5H «$7ë;,¥ù;Q‹†ß}ÅØ\zmÂl°~`¿HûÚØXxát6ñљfxÓ² -NàE}ÞFhA‘OÊz·\#ŒlÞYãð)³ה„' é^SÐ^¤Ë×þ5~BwÁÛõ du’pëÄ¥ú5ÿþl‘e‰“%{rP•§s°€N‹½¢ƒú²¦ì9£Çwã’æßC§ƒ™ðìSœ\lýÑÈi&™âjË KʔH~dísŒçãOvõç -™òç"±ÍVU_ŠBÑ^­ŒuG'çO2Ä÷õFf£¨…‰âr¯—=R‰œº‡*âÉ·‚]W°=o]jò^ f]müfCŒkOpâû¢ŸŸëBUü€?ˊ#¿gNA{]ÝNÆæ©ÅÖ{€œî_žZr/÷0?¦5܁ÅPZ±!kT譇PnO]u®Oé!o^Ïësâ—CÙ)Osm½UŠ\¹®ý„â–4^Ÿ“„¤ëFå{„÷°0|£¾hnG4Ò¥±§Ã4lQn&AüA|´È6ÃðaX’P¯÷єb'›4´l“#•¦¾ž9–>\ª£Žó45½€—›Ø,ö5Ê9ý:àg –,֌ò¬ÀÇÏ1 R·Á£A•;Mì÷‡:‰µÈQBXº?}e(éj¸ÉØ.ÚèÊT¿ G^Ó䮼Ç}Ö­;˜Ž´ŽIúªÚz£rKªgǎðÀÎbݏrWÏKÄ(¦JŸ´3ܝ]å\SË7d£3÷UŸ¼*aÉ -Iǹ¿áz•^Ì÷#`/W&P¾Ô…÷#ŽŠïÂÏijæøÐ<œûë=z«êrGtBx&/ÜGKDj·õ:¦-köȱ–dBOxRÊz¼J35[–!³xG7~µÞ#UŸx»cË$.OŒø¢ª‹ -‘4K«ri¢173,PïbÅtg(6Ƹ““wàí®Û{f¢p snŸ©—”ÔKõ2”ÏŒy“E¤'¡Ó^t—<¯$,¿ž¦éÕñÝÀŸmq,í³ÃIbøïu‰Ivø~1áú¥Å‰5¼ÆLbï³mPZÚÌUY]"H0ëŒ'áýÕ$Ef¦[GÙr?¯ôêP`#k‹¬-ZY‰“&9Ñä¿Ò¨ð*sa¯‚/7ÃïñœÌ›2ç¼Æ»·¶ §‘5hx¶ž ýҒdf ¸\@3;YK@«r}¶E½ü‰‡©”$@vq¦«®·åEÿ•JŸü"÷“ñ…]v9&흂Èⴔ¡f„Ü÷–TØrÿ±P-Û©¡èLjëe”´†rë;;ÖÂ+Ï7p7ËrˆžÔ!ÅZ>Âž²ã{ßxÌ'=i‹˜É=õ®GÜ3ŠÎ%¡Wâ+<ވ©úñ>ò™¼Ÿ±ƒU…}ٔÂðb£³ºýï¹C&õ҄ç ф™üa¶Å’µa…Ŭ*ٜ°= -ä‡j|Ÿùϱ Ö31«ÐoÔ^ûãolÉ; ¦¤/¨A™û4nEõlº±Æ†jå.O_z¿…æƒÀÿ ~6„éy=¦˜iÁ4iwM¸>V­÷;uó‹Ûߕ±‚ÓÒ°&õö°Á™Fkw¦T°ò©£“îmuàjufÃô[Ä=(D*àþ[ßéqÕ»Øë Òì*–ÊãÂ6•*î€&ä°óÇ;¥×.¤ÕÜçà!ñáш^ŸœFØVO²8¸Ÿªa§Í÷s¨P¢½u2xÞß MDLӤ鍓"ñBNÇV\_!QCÜEJ.|(„ƒðRÖÇ)W‹½cÒ®møsj&Úèë8éù¾¥Hb¤ü3Gš÷,ð¸ì)$'Þøã]7<µ¾° -FMX³Æ•· `èrÞ¼š8.­ƒ#i•Ä‚8*ýþ:dfìÌ´vÎT3Ô¦ìà¤.ý¸ù(ϐ‰ýu|ioà=]ê23e׬u#|E„ŸD|{í²þèQ2v¦~`¡ŠÅèGw]>ÿÎ뙮EPd5ÚP•ÔÒʎÐW²¾œÚUuáÈÕÿS8NU•¬×§‡‹¹sò~×Qz‹í+ -©Ù4Ø~¤6æG=G<™çʖîID}ø|pŒ#.ª@ôÀë˲§nyÏíg۟¿”Ú”%ó³“ãk´Õ6TÉ<¢M¸óú/8*ïÄ/ÇÅ7YUì—ïóЗvKöMÓ\rcCq½t›ñÀh2pÂD³Årb|h-r»Cù%4:­\WX¹c -<öR™‚(‹‘°p ì,>vè¯O'¸&*¼ÕQ&dlÄ¢è Šöáö›Zó‡½6ƒŽ|hß&á`LzϺ6<ÓôfŸcâÍCé[¿ÜÛ¸˜2i2\²$ F„Þ—­tõ×íÄgžÞ$×Â]͜L¯–S±±ô¢ƒ%¾™ˆ›+¥Ø[Ç[Xôu•«=Qâ¦Ö×o  EÇòœx²rW-NÁY£;ôô2åÙ5ëŸÞÀß@ð£œðW…ô1e$í´…}#yRÖÇ -° o-uî‘ÃHd{#s˜Æî`ðÖh E$ų¤š:¹CþÞþÉi_¶ìW‡4³Å¨ÿ‘§þ³^»-1CmÖÇ1è¢É0íé‡ë~ÅB]N]”¸rß*Y ûµœJR8› £Â¨ë65ûu¾û¢¯'£×/@1¬oŠ¦~×pdÙûK¦4 Œ{(~«¨_lg˜m<´¡kJÏïMí‡×̈́ð¥C4Ǽ[õ8óá\þ^Q÷‘m±6ºÌލès‹!?Hƒ7âyÏiaÂ|ÎPÜBè?à'å OÃ³í²§´TªT"àô|Œ,a«ÁÖf*f?‘ˆ²0ŠÕ"KûDk%ÁüŸïý䕆8»¬ñN0mðXCGKªjŸô ‡ëfŽß†!žæ'ÊOH"rZý:S;²ë×Óe>¡obÙÓ0CõD‚ 7a&=¶x®<@ËDòqtµõÈ¹Ÿû¼/UòESž‚XèûWféÃdHã¢i¥^²Ò»?²hÀLp¥‰q–7Ž ŒÜ•/¿‡&µZ°ÛÀFv”¹FeÄ­WjÑⶕî–/jÌÞmnöö¼Ç :úšÔ’J#ŽnŒßWJëÇd*øž,H÷ƒVŠàIF»]@\SY¼Ìü’8Ê&™@¤¿]–öµ©‚aimљ±åt;6A[‡þAF邢”3¿“ÇöVé{‰¡ÂSÝkñ>¦ÄË,1!ÖZXŠ„¬ý$ôørŒGôŒGâ¾ Z[Ø~U¶Ô‘ŠÌ˜Y«âOÊÑ_ÍõØit“ 3çZ8~¡òÙàòcÏ`I—ôf¨V-s Œn˜ö»û.|k­`HÀ­O7\R•Ð/—¢ «H½Ú=rù‘–Ó­Îä´k“¦JWO¾GÒ±ã똶{i¶¨Í ;G²a«NÔ5¶±ßܚê&¼›‹9|F/lTïS«2þÈ«S§c³:d-­´xs‚Íë{ÌfL -R4‡ -«VÖÒ ßaÜîè5YŒG8ô=œXß\ -Ÿ÷‹qKÈ -²ì0”oÃøÞwÎxP.æH¹º–“}ík#ö¿Ÿ”–á'KŸÐûë+›…œ5¶ÌŽ½C£™y¨•JÜG¥š¬_i)M\*XÄTULNÞ5_TXo4?ËToÙL5j»¾Ç"&4}šWª–‰­ùƒ}_Wt÷ExBšRê¬æLQŸîá~Ž³¢”#‚¨yŒ´<öÆ2bq›ó‹dZ*yoëc†R͔µ0v5›ëŽàªµo­‘—Ê–ˆxÎ-J u谒™ëÛהå–/ßÉý£é¬èºÝJLƒ•Fõ_䨎¾–Fi樺L%IUdÑŒÌðæKì¼ÌíòTÜ'¾‚Ëôv¨Ã‘B¢§×köïÖiyD.ÉgwÇkd²É)k½ë5ŠásBËÒܯ˜Âm ©¶S©è†YÆ«L¿Ue„þ‚š÷-¡½P“8šìŒÖï9`‡B¸ÛB}ÔGVyKU½oÜ.Ø[¡ ô\ -Ӄ®ó'@ù±ãt%($¼/  Ù1¡ÆpŸòbM‰ŽbäA)'bÀrS¬BQq‘IÙ]!#zûYC˜ üõ‡í…Ø<ׯŠp-Xwey¬ãÏÂïÝ[²“Ú×Nõ$O6Ý7LI'™2ì _IàsEœg©K:°6ràß¡É5õbìB>šq Ñ@jV þÏ4n¸QUÐÆG©ABw¹D\"„•îÁã7ýh9Ó¹M@¾DfC Aê+l·ðŽ,G„Oޞëüžœ#Ë]°vl;ÎÁYí1RöŽ¹kEJhŽåQë HøõËf¨–®8å\ë°9ô·‡~±k©L훂Ég⣭ôõ¾.…÷Aryܖ\õÃÒºU×H¶LôõPº–¿Y¤{Um‡T©^Éه€^†ê›‘~,h©c“Ü|€I­{±[ú4 -ϗr$ÿ¶çÓía0üòQµµà¼Ã²ÙZAÔA&2eÒðìòhóÓÎÍô¤xÌUCÜUÎ0¸ CÃÕ³ÊKŒúØËH.”Íc -7e²®µx\è$ži’;ùðØА¥³$¢SÄ8ÿÜLKiWXTYㄟ¬}º¼jZ®Æ šì7KëJUæÁ^^nË£æúdª…°±^AàÃ+÷á﯃FÎ~³ú8û¶šHUa…à“À˜ûæŒó@øæ$&ÎùÛEɽÊS6o—*Ώäsêed…¾ågۄô -Ò[?¹N$6ÛjžÆ~(óåÕ÷µ¡ÉU~v“p<•ØØ,°ÐÍ£ž¡Ç¹Ì ëÚÀ3ûð=Â<ÜÀ ôú/¼î’„véÃ]ÃÆzq¤EœGt5¬L-ÿÞÃóïg¥2¶?†ñù¨ö“²g˜hÉeýôIålD˸ƍÛuy4î¸Zt¨ÁۍpՂ¯«n8Oa ü]ŠkÚê¢Åÿ·4úùyw½<‹Ð³’“[©Ì´] I7þ­ÍÔÄb֚ikh|Ñß«ûå>ëÏ̗ å’ JV¶nŠÍ*Ëéû ½¯ZZJе/C ÌòQ°Bn{„#Är&jh²o„+³“BþçÜHqN5B<æUۚiü,÷õ\ŽîT…€¯ÕOEñ†ò¼kðeи¢“Ók¯OA.Lue-w|øØÖÂðŒ»ÆíÅzÔ¤áDlâ˽ƒp-þ0Kë}Ð;ÿ=[6Ù/_ï;a®± ‡hÛjÒœÄ üÊ®Œ‘Ÿ#·¸û©ÑÆîKw‘ß$€ñKnR"Š­è/o’j[›©'ê±h­7ïfúÆ#z?V9ú®9–Âl^|UìS²ös,Qʯë" CûØÙûv…¤œ#ºÚ]&-+Ÿå<’ÿ7Âþ/_ó“JùU´REځ9ƒ‚PqøšÊv] jû=F{;6Òpa¿ÌØÒÖahD+éYiÇvØG]ÄSI‡ ì·³K~¡CÏÒK͖€a——¨blÌ'tG¥˜!MÙՃ»hß|*=O£5Ò1ñŽú»€*Mc>EÅ̑7PÅð}.n_¬nUS§uð)òn}"df… àðØFÊ+ú´Ÿ÷®ë‚ë-·#iþ&®ÿzK3ç€÷-¼KªµÂXؓÖü04Éà¿ý -ü1¢ùæâ¢]+rᤂ‚éb¨k‡"â­$;nýÌÑä!+^›Ð“–¾´\ÇÐay¨±ä÷¨41õ%Qf¦8ܓÝ>ÖÁ°ÐÌüR¨ÌƒÖTOöœšŽ¨Áõ ͪZ•uóû +ß39Å_WõÆNÇQôÀO„TûIû¢IÄP1Qk­¤¿JSªr2Pšm{CU±¡VF -˺\´¨¹Öê¼áåF\/êœ_xá*zBê.ï»!#àŽÊÓË4\fB‚³úŒ -Š©,E bZÉkûI3€)³!›Ñ×ÙhÂÝ´/aqbú¡^c -ϑ¨]Cèc“/ê5°? 5f ifç’ÃË|]9—êpØÓrX%6? åæáõǃ5Óï‹YõzY¸#! ¡1bHl‰ßy0 §îLÐ ßùl}^Óf6[‚ùôεã9ûƒØacMÓJï¦3Tïe&NЪM^¹ß/ï'3Œ§»5¶õúәµ¼8–NY“Ašé<ÐÈWÀšºò÷™ëß¾¯ã\O= ò’ÝÇx!†ÀV“çÃâ–îJ pê€étâ -ܟèÃЕ¾ëÌøÕÛ«»îÚ5 t/™½:Nq%,£¹<Ø(`\À€Ê2O 'Áüxþ|‰‰û‰t;òÂ9Ó)“i®¿™-8[ã]ðJ^Sùæ¬S‚jVw ˜ÆÊõ))˜‹.f äåúyMÔîSÐÁ[î"»ö‡÷ŽÛDUÅšþ}^jkPÃ<|†w8Ä^„5;ð‘èß֕º¼VL 4í`ýžÅ>mãSÏÙHX½ \<{nÿ=h«¥é#ú‘Ö…Q]Ă°qÊéÝ8ƒNÏdŠ®âD\ d®m9§¬d>»¸ry´&óo©¿0ç %#´R‘ŒÍY æà÷7Tç‹s ¹îz]ôLå¨D²´Ú«lÇW\L—µŒ›€Hïà-OÎ&¨Wªà¶]÷q&„­uÞ>‹9b|}ó1xC9îy-Qß $Ӎ :k¿K­äY½jvG–Ï·$¿&¥%]q§u¶«á  q]ƒn8çI »!’ü–€†ª¢1VúPBX_’5¾ôfquÍß'cAu›qµ÷N)Hï¹')h ÿ<‰Ð@ŸàW՗W!:{ò¦XawîÈ: 2È{u}ÇSš—–Ùv ö@ÑM/ýãëŽç›ù A´v¬Wo—;•6gX‚nã¼íî{Œ¾´Õä=tê>Ð òfú¬ïpÍE”Õþ¬UFES=å@ÐüDt?qöDž,öEoÔ#þ‰Åº¹ ógn§ŒýuR˜Xúªšîñ©‡"ÝFÜ¢ö›þ@éúgíp.‹Mâ،ShéK3hYeSÑ«­ˆ–}£v´žâU<¡àÍù¬ ¾Öp. -è -þÉO "ƒ¾\(I0]8,#¦¼eÇàÂPøƈzŒV±ãçÜ\w Ù§v´BÏU¤Ç;á:=´‰J«&MDIéý°…H3›3!Á]‘r1H¯O÷ëLôt‡ªÐxÒL&eÙTl왊i¹0ÏVI÷æª¤Ò Ïª.:áEgc,9Úýúî€Àü9J©^ÓÓ@Yøºmíà;ÅV„Ûk®!šìbK§¿dú*?D's×Ô|ì/S3òª&‘šÍ¡âޝxÒAÐJ‚…”ä"w»þC–C"č Û+Ôë¯U”SnEò‚Ôňs·YOÌíT·SHèŨ¡2âåL&úúáx}»"–°‚µ“ªGJ…ÁB•¶,{€™ÎþwÜåÞÖvaÀ©€ÛœP2Ï->xW‹ãu\)·Tª?}·ïwUHÍnÂ/n»ãd £;]¥~ÕHh#£¯ï‚Y28­Ü“‰¾>Ùù.›¾DVãn(¤œ -*{ÜÑI7֕åºDwcZÀoR´MՌ-Vä|ÍˤŒž•ùòþ$c”D+ž–p *'Ë˺Uð𧨷ý½ ”âFÑi€q–Þö—Ràs—yG…Ç„ÏXS) Îï)-±Žå~ÞBy‰ÏWú;eŸ1$:ê<ÊI*³h_fœÌbb?ne j>õþœ³Ð1xì+ñ폧˜W&wg¾#Ga œWýx‘òÎ*»³hý-=•s6º8ôØ3ñøÃô#èiyñÊÔ¹iÓ­OŸþfXÞ0sY‰É¥"mƒ—Kb*Eì'_ÚÆ[ÿ!ç l"fc4·fý¯Ò߂ºJ)‚«žû;ÔÞæP |¡SëOî/‚oK[ÿ‰‰X(Mo:Œç}ÙÝDVh·V§e–øʔ!éëô´ÜTX¦ÉMQEŽ¹o†ò–¤Ïª±§1‡d¿ÅRm)XIÊm{áçæ>V$òêúcÇ¡œ ¾U‡{}$+é¬ªÝ -h®¿ ¹ØûÕ4TÈ»$ó=/“á"½NŒ|ZõO¾Lô™êêÈMwµyHŠAÊ ß+–ÄTl¶~Âv”»ëƪ´ò˜J- ²Â<Ùn’cLs‘ -çÃêDQ¾FO•¨µ v±Ì?f’»n9ØÝ«Rò¶‰òȯ9®ÀŒ„çö‹8ÕÉJM«ë°Q†;v|6”–Ê¥?Æ"<ºÛœê–Ü1—¥BóY“]ôšçó[‘”U™ü®ä²FªÝ‘9͐ìð‚Y³ Jãö@½Ð˜y!öõO…9 -‹7o.mšRÂT…~Å3ß`ÊW$,}XÒ x(ëÕ¾øÖ¡¸©…íNgätImï¿iA¡¯Öëz8U +ã{Áp"ýu¿Ä},6ó•‘&SgUå¼»ø¶ý‘ŸÔ”,$o¯r+§‘i›lÌëlâþœOÿp*9ØDÙ¨“;â­”ÆëÍ-zO•Ý-ÞHýùEóæVd·3B¹÷à ö,I»Ÿå.DfÑ'Ƒ©ƒØÿ€jp&t5Þê ]Á—þ__¶pO®œv ÞPûFL‘»:&æŸ LWd ’HßGµáW4?0“º¢I6äÁøOü -#ŸãHfQÊӓ)ISSÓF£‰)­%Ú_%H¢ûðdk>Wzò Ú=X  cðº!ÚgfåôÂx¾‡B&"ì>ò«äö’³ªó»(¬ä¿Enœ^™/V:/C½×P;|Œ8µÐ¤N œ™dlP}«·šöºg¬úܜ =fUÐ88sÒLe€õ¯L¡dLéú%x‚!÷o–‘M֒?R2<%Ñ g Õ]‰ÉôíKÔÈÞi‚Š¨ãLus1µ¿—åő w¢å݌üûAä#|´£¨¯xŽôEËy0t,ïL®TœxC}<Ü -¦éåÌ¢ƒGÚØÇlã,g Ö¢Ÿà³ÐW*¥¬¥›…Ûä >jÅÅ>ì#ô½<¼ÐëÊ¢[›¢¦%î(­±rý¨M›šôâ4¬òšöm`/š Eç‚m$Jh_ÂŽƒ ±kk'WÔ3•/ë™ÜÝ/™dýŽq‚¨,L˜³ .xû¾Óل™—ā«š}KÜÄVßçQ»Õ¦LE×=·”É—úB%–Mø=‚V s õDɲYG¦b•¤ª.Å7”Y»^¤F(d¿0™½C¾£\z—ÌZÉí$¸ØsQá›ñëز¾Ý×½pe,!ksjµž3' >yü¸¡Åñ‡”_$º¢˜Àùxÿ¶îùø¥ßsDÑêNûœ¢xÇÖɐ±nƒÇTU«Èëé¢ŒÀÒV·b±ýÛ#†mÅ«ìxìÏ¢_úDŽ#}ñ;ñ»³H_´_ê"Cž‰å­/P'¾+òhÍ5‹h!ïö(Æ\  8uuÔð[MH3/¡“¡Ú‡ú¿Ã4#›uütóCmž.oäyG¸6>]èáûI3x…؏!Öüfëý`]]ÝR¢/&·P8”‡ÉƯ@?È÷sPU:?Ä?ÓG,ÔK01Ѷn`쌙‘e½%Ìҍ:åNW£—}ñ‰þ‡–‘oyÈ윒ξ°/2p÷n¿Iêi`‘t<õÍzûIÅ&®b@¦Ïé”±´`àã]pçfM‰Êӕ²½|¡šhšƒŒ´k4ªÔ&žƒ.’ŽýU7C;‡ƒaj®äe¤uȝ #ýªÿ]WH+ âUO©&áHƒn#µ)us %ž³B!S!‡³—2+5  Jñ(¹—±„Ö‚ƒònªyÃðwô­#~¡šDµ}ZöÒv8|óÞÆ ›ó€©¥N>Ð’ 8 {äK¿Î¡ï@igË^DœûµñÍ®±³ÍÏnk÷¤Šf -•e›ºL“_ŝó³`µ*äґãêoìr%[æÈð0P›–­Ï¹²Ô8ön]7ð©|Žh@X´»©×ºàQd8|çf»kç÷-K‚f=Ü3wMgŒ3 1>9IæU¬’žLyQÙ;p¹À2*Wa?‹ºF¿~Ťèß»]܋A$]´s•Ê2's¸;$ÚMߏ²|ã†:©$ZÖù߁8r§ÍwO4§¥¨×y"Sq÷èÙñÈýò"ßû°;pÀ(Êãl‡.m½-,#Õ¥Qþ½!#yÊ"/\4©Ÿç kolˆ}[ -Uºš†áeë ²vh/øÚ1Ä^ð$ã±ת’‘úÌøo?rœæ>çöËhæÌÒW¾½„¦ôãbÏÐG¬dfíY±7•EL;àãÝ£®º`màZŒk·~E½»ÖŸ¸=¯Š%½i¿ã Òv•ùµþ¸ö†M.Ê\.ÀWzÅ1ìÏ^C!ãPͳ}¯A¿oÓíyIX7#xÕc­H;|ÖbÌ>CϯI°¿†>ï‡òk§dÀÔ*à WÍœñ!ž ¢þž–Òt!¥@@ÆXRöf…€þDBC=ƒe˵ÕFÆ|åYÞ cP ՞ß-mÔô°ƒúîBî8Ô3s}oS•:•ðÍWMQgC3…Íêpü¯t˜wÏxæ!ì9¯ -?X܃ixà(j_5Û؃˜e‰d‰ªCÌÅøø;•m:ð*öÚjhéCbQ+S ¤âÛ‰®ûñ¨’$Ÿn.…³íØ’;#¢-ÊARï3DL$Ò ÓO¥k©] èÉ'o—­ó&™ùÍï"ˆÑŒÎDù¡à¿mö/N·Q·Sø^¨NžÓLQ­i#v ™†Rƅǒü?d U +xÚ­wUXÙ²-îîAîînÁÝÝY¸ÃB‚{àîn ·à4Á îNÐ@лz÷9MzŸ×ûñ¨ª9j”Ìù5¹ª³¸¥³9PÚÙɃ™…] ©¤©É`gaC¢¦–tšyØ:;½5ó +ØùùÙâ k€G€‹G€‰ éìâãfkmã “¤ÿ+ˆ ît³µ0s(™yØÁf g [ ‡ @ÜÁ þ× w€:Ðèæ ´dAbgXÚZxֶ́NH¬ ’s²rðþm¶¹ü¯Ëèæ ‹¤€%Z:;9ø,VH¬ÊÎà\@°’ÿ¢þ›\äà læøý_Mú?n3G[Ÿÿ pvtyÝJΖ@7§ÿÕþ­M hi rüo¯œ‡™ƒ­…¸“µÀö·ÉÖ]ÚÖh©jëaaðpÿc:Yþ·pÛþ£€UYSJNA’ñïqþǧjfëä¡éãòé_ÁÿÁì¯Ü7[o€ ;8üó¿¿ýW.)' gK['ð>póÌÜÜÌ|À‹FÜ_v€­“%Ðôëeeqrö€[â°rvCúkš<ÜVñ¿L#«Ä+â°J¾">ëÛWÄ`•úñ²X¥_;€UæqXå^8ƒâ+gPzEà ʯœAåÄæT{EVõWΠñŠ¸¬š¯\ŸÖ+g×~Eà|º¯œOï^UV³Wæ4s·°µµ°u³9þcçâøËÞ0[wû×`0­ù+‡˜›YØ»;˜¹ÛüceçàúËìö‡\„¹›™Ðhåñ‡™ûÌߣXÙÿ6Û=þÏÏùý¿€«³øqƒ%Z8;€¯ï?•pýeqt|­™ ìü/7¸"—W7˜ÌÅÌ èô¯r±ÿõßä—áÞçבp»åâúC-;Øâúä·Êäì´4-‘“ÿŒÿ¦ggÿÑfvp_‰¹Á‡ÜŽ¶ÿÞî¿b€žôžLâ~¸þQnÐ->;¸Ž×´Üàb=l܀,¸)^Îs€^÷œ~ÔÜÜ-œÝþì,xŽž@°`¯?n˜ÔûÎêóOåÝ«f0Ó; Ûß +þï».!áìíËÌ `æàä×Ë ~ ùýÿfrOÏã?Lð·á±•-øCz-–æ-Ãìқ#*¤Š¿UÁ2@JX·$(7ôÌt"‡.&B:”*¸2¬ÕëÞÌÂFۃÝ#óz$rîðS›þ욐1÷¼çiº—õ®H÷2KÉgׅâ6ôýKóìõ 7¤ÊôÚXeŠ^É`îùÐq¡*Ý[Í}ørˆ^ÏÆÞì0^]é,­ÈðzNruŒ ×Ê÷\‘«^)I0«S¡v‘­ŒËÎ ¬ûb„‚ägÈHvçÐÕí­éÀ‰_ƒ“*©Ígœø‰-Idlü«ÜÏősSÍC‡+a½ÞW’ô)ŸœôOÅ ·Ž‹Uñ㻏¥R¤0݉*hñüôñ=ږÊÚgjz Ønmy$׶`®ÇÑø kc7ªB¾!·Q“Á‡û*CÔyÃÅêx#ÉÈ Ü¡V͘Õ|ŸÂ–Mï’Æn&\öAé¶ù\¯0æIˆ;hRPm!W"CJÂ3œµ½ lmòX`}Ï ÀEÀ`ƒ[¥Q÷냋yã3$\!!ÉìOÃXOʓdª¢1A1Öq²Iõî+Öhþ¹‹FâôýI®M»¾hÒˆwGþŠjə-•²÷þËÖÖT*ˆ}ù©«¦V!”םuê‡l•WWâƒÜ$zG‘Ò¬l´þ‚T[Jò#ëëKëϨ»˜‚é¦XU$£•ÕQ-¯Ž4,@‚!éñÎó–…ÊFÎIɲºüG Öyn³•›RR¹öÑ\‚û²5°‰îÖD¥§u&DËp»Dô: î\xšoÊÔaÌRæ] +ç7kEñ“À:jU[¡âGìMS|Õa\Q)q:a)4¤ÇÏC&ìxƎýb0^AœwpB¾‘±õîìù„üà˜¶E —)üÂíœwTœô­³v¡åýzž¼^¹Ûb9o}‘Ùb˜‘ªÆPԙ´*is¤Ôì +œ¬È¨Ÿ*ßãEºä‡Sõ\ò…û\IyM폣 ®lF"žŒ5ݍÛoèÚÚaG«9Ó!<«Ñyi+Í4\âmžô'pöžƒœRˎÄhyS=¯ÉGR<åŠ`Yn&q< +·âºÃC +´„ +•¹pÞ ÿòםr@±¢;õŸ—1þPÅ{z~KèË'¶C[ì¯þóò{n–p}ñ{mÖÍx¾wŽ¡(ÜÈC͍AEÌ Ö1…~îÀý‰çáôšdœªˆìì‡8´Â:ñ€V¡Psˆ¿­1>ÈBõz`2|9»ÇiËrUÿmá]óÎèìž]ÄñM[ãQ´u¿Å Ísæy%ºe‰jÁ-²$¸ìÈ|nO Ër_XÓðŽÏ¦80tJä)dËt&ñóÞïÙèKú­®yi+ÂV°\ò Üv¿Ý}ý EÁAitVãñeòr§úô„È{ßµÇGB˜ŒéwTѝŒ˜šq9LÊt£DØHßâ +v^è°VÉ, Ü3´\ÙÈ¥KèÛU–£t÷"i™Õ%Š.Uæ>é!,áQkET9ˆwšØµâAÕî‰Ñ–H§Ó¥|£ofhÎܹöŒù‚Ùõ›¬øÅè¢0zŒq\0Œè*f$ðX¾¬xØÚ)N¹XG9F~O™Š½=šÝ·øŽ©æIç,À2CMéJ󦝤HØkÏ1PÜ`7³WˆJ~šŠTÅv±Ø¢/XÁ¾:8ˆé‚kß ÒêNIΕ–i¾l$ÃÅßµY%ú±²–Òõ¨ptAÕ!ˆãžžÍ;èú]½ßQ`÷SO4–⌑ +…é6S\7“-$i©w³AåËݾ–TÏÙ"刳 ƒpz)q+³•på†â×»Œ '°±je—:KH% Êïˆ'Jü}äi—i²6ˆ¨·AŠðÔ˾kÇO÷bæƒ*ÒÇ`z¨Ôf îä(ß.^xø5ž7*Gö=)ª.*Æu—IAJ¥­öBâ:€QÄ{Ipæ>o6_sÏøljuõ<š{ÀºËš¯˜¤ðqá—+œ*/˜Ð–á+æ0–ònà:·¸×±9·rž™xaæ’ج|ª‚µ]ئ¿~¬ö’:lÃa€VŽT“4Ó·Îc/uhã"z‡ÝE¢2ùXH¼Èe +§ú6äû’H3QÎü>GþŽ@/o‡6eˆžÎìùɉµ³žÞP8·ÀeÙªéLf p¦‚UðšžäA”ÃTNð|=”ź˱üt_+²¶1–#˜ä~@øüü”RjMî>”­‡1"´›iµ[oò¡§tßinÏq"lÚqlTr’a›ÊTY/äébç:.SQÁ%øÚrgÈÜÕ?+©@É2šœ®{†<À(6……m¾îv|­tZ»Ï;!ÑçqK 4!.¸•‡¾bŠ¿ØW“6‹Â””Jtƒ¾Ê𞾹*øV"3>ïe·^Y®MDˆûÄÅC±9At¸jEXy3dJæ‹=Iûn¢ÛÅEÐA\¨ô³©ÙíxB& ²©l;2×ç/ȂÈß(Z•Ó¾€RÆg:½¸nñÅÓ¬ˆêø'z也_·¸ú •÷Ý£¶[¦ÿn½.öwµÒosJ·ÄsëP°ôkWÑ꽓HPNéðZ`¶M 5Ink ËəŸñò¦Î0Ó9Étê[zjšk)••×ˆ3}SÙ´{FŒ,©¥uÝô²a•EPb~a™Ú+kÄ@/á*ò€û;?Ý°žøôˆs„[p©áºêG»ÄºÄ<Ãá˜F˜ÔMV¿ŠtN'w¤÷IáQY¤^¡=¢Øœ¡1¾ËX¦^°¶Lµ¾kŽ¾:Û®€ÆÞ=¯pJöôç~XÊ |í²„èÚ/_٘DÕ)!"òP=$,èS¨÷!3*J;{·7صgŸ…Fvs1Gr»#½Q‹k +O«MYŠÌ—~µÛ^r㷇É/÷c±ûTÞùÒSÍ%¥J×Mó‰ËbZr¡ˆB°?ë:Lè†8‹e%ôî²b*œE&wÄE(„§Ztf@åWŒ´©¦}l¼•k¸„ÿ°dM¾ø[>ùYWb{ïÐÖËá-¢tÉ +èi>ÒÑÓA4–VƘ8¥´ín~vöEK‡%&ÒðŠ”u˜äôCR¨neú€±Á,Æ¢4Žy½Ø¾ü© +Ü7 %"éßÎדh¼¾¢°·ê²dÝéi"b¿ûëé®÷Krã¬\ypÅbYî(R +T¥åªüi~Ε§µœ9N …L{w™LDہ•ŽÎòº ̜oÅ" >á_àW„Ãc¨îcðê²'òæŠ åf•h˜Hü:£ý…¢çInù‚›¡XÞëžiŠ Ä·ÔÎÖ +3¿OÐáJìÎå ,åŠd§í6*Є–Á˜£Áƒõm‡%]¸oƒûý~Öՙ¾9›o¦”Ïó§[œ/« ùÑòV®d~Ï@—© ‡¨WÖ»þ°N>"i(²\Ù0ã”Ë=ä“õ—juSÌ5ƒßýµH9ÛâwOUf_ðgk+[uãÊ?…¸Ñ¦ËÇFTßFTÈ<¡ æÔ²-gÙiЏO=Ü;É­’eÙÈLj^¾ê㻦Å1È^ðÂ[ô{)¥"D§Óá¶.!.ÃC^à_ÕÀD†Øš—ª{Óúž)¤¦º,Û¯§eîS+Òu'f²hÔ§îÉВíNYH‹€¤—e1RWˆó‘Í[?…p ºïgυ²E821­ÒÇØþàx‡{5Œ]ª–i…lê 6ó³šÅí¹/3:-А,,>•–4%5”’¡Š3èîؾ ˜œ0Â-}r™,ÄJaìÊ]¼'²ÛæµÂ?çÌYæÎå‘Í*Ý#*ÖQ°N$ÃL—mÞ֔.ó~ߣ3Ó=³Ò£t-Ao¡… sIÙ­•J† è†:M[¹ï,âc¤È6—’ß•<%¼½ë™ãUóv͌¤ ¤ãÂJš~S¶sfù»íÙ ãE–~ÐÕ9Ÿ†aµM™0{¬ü*”â7é47àÜR¦K ‡·¸ˆ< Ÿp•ŸéCÃðøWFµ+£éˆEñöw€|Ò©*8Tú”wŠ¹ôÕ(ʪ[FDñ°YWáaI°,/YÕ(luDùMV\¦þ§ˆ…,doç=MíÌŠ§\˪Îï6!õÍÒcgbw©U¿ež˜â…i¢«NO,˜Í âýHõ|µ¡†žÆnô& +‚û|§4gf·†=PT‹mH¦]•-qº…U^®f•ƒo»µx™/?¤ð(*˄ý][Ïo,3¾ylR$6—ÆY¿Ü‹|‘—â@Š2Kë²?Šè€üAòöGmÎ'ãéÞ*˜<€Iã2ç†ûùÜá;¿ÓR?5^øíêl¸yÒ8|9S•’ºÑŽiˆR*æ±ó RyP׌½kÊcpkpZÀ|°ÆL»öWݖLt}^Üc³ÕªY5ÇîV. tÅ=³‚biÄ|ÓWÂ&î"Q¹oÖv±¶™|è²Ûd k–ë½WΧ{,oP· g¼ñ|©OVÈZëç|{DvV= œæÐ3pðсvŸ˜ú÷wgšeHz?ÑV´nöcbÛ_] ô¾8|®-´×‡y²Hí7äüaü»/IWÒ;m…Ì™\•+Èјˆnç!¤eCöøc-J…† Ó³²™g­Ì—bWY¯éd[®+m¢}=¿ÕþÔj•³tZóà G]c>¯Í0äÔ +ÑCGÃhZOdp4`¤ïÑÈbvW›R $ú•9á´§h1.qè½gÿœ;±g¥>¿<¦‚­ÓRMfF`O¥Eôøt­Ð$ÆÎÃr¢hÛv}j¸Bwƒ ìEÜܓ¸JmûՕ´$-Lª®¢Ì‹3Q3¿Š«¬ƒnXAð)GëAÊp朕Ü䒠«Ë·ƒ©(Z‚ ¨ý=—M,PˆÀ¬@ˆ±°Üwë tér^°·¯ÿ¹ÅŠú‘÷±ãµ>+¢císraq5Š¦Pƒ«MæZ—FÜRt ¨þ…Ûƒ ‰rœ¨¥f§c—bÌzø~¹å\9ƒÌ<¸¹©OAqzaÑkMsD!„±Ã´î¦p±JÉK6Õ‚8JÁI4››ˆ3h„È.¢D®_ã¡9|Ø/Ð%`i¿i”.6DZöpQ«œz®ï› +"q2ždùªSo( `¬lé̘uÆöcŠŸáVˆŸrn{£èîÜ`}eöJ>„¾›jŸ¸DÒü‰¿?³±ÇÑûțäŸ7›lIœi*è0Yj§Äë*9XI¯¦èª‰( c}2¡!œ›î‘ÿj„Oþûr +¿'° ­öW~X uÆÕì3;ER_}ÿ µà‚¯|u݉íÛî[Ãö±ìqåõ\hËÇA}­ÅV„|äÄTsk'ñ»}€æ2¤ôÅê3Gäå ?Ìsï^‰ñuµ|ncC v—–ûë!7¦ÇL‘Xwoöqór…VŠª” .KSHl›nU ÚóSrÆ$Ã`ÖîY_ä¼DƒõKZ( œ¢ÿéH?— ·Þ0҈öÚG¥e’à±ßòã]¯_c3šÈ˜|KIBÙJã•ñ mb¹œâªÝ—¢„H_Ζã͐A‰e~ÚºŸ&N+¤™¸†ÖµCâ7U<±qÖHXqvÃ_Â;Çæ¤2[Ín&qlº$é—âîãhÈù±ò´1’² '<Nç.÷U#Â…à“¿ĝ‘ܹ4‡”¾s‘Q¬•gRž(jÿµùëÛ1ãúRÄ°ŠøÚKÉ'zCã-tåC´M¦ÌB”BÑ¢\eojqz*ñì=œ":æôù{¡–¢¯o':0ƒÍ¦îü±Î,Åi{ò¸é¹øz†Ä´Rv"CÜQÌERº¶§®÷¦ÚÍ&FÖ •”û!ãÉ·³(_¯»)¦mºÌHîú-7¡<Ø8.q/Ø\ˆñ}¯™ŠŒMî 9ˆ¯Ãڔâ.Ḵ(døåèZºòØ8[–Š,1?'ŠXìUûjÍIP‘"¼[×#œ¡Z£5H¨5%؇±·dµ5 pf’Þo‹Î~àŠ/_‘ +¤ôÀy&›O‹1—cŠzö ò¡Þçò¥ŽlÂUì…Z`·£»™˜l-ãӆ´íYºm’UþBEñ´ÅDÞ_…À r2χýJÐx6òƙ—4Y9óŒT½]šåSuƒâ¢7œ¡&ÀIm:¥¡d«žDÆNX“žâVzDmŒMƒ ¼PHêÐ×nNý­?qá÷3y§s·)?,SŽÂ÷V/°È†qÁ‚}ÓæY|¼»œðABÃ[>bZ?Չ#1ìÔ/YªFâRNÇ›²ƒïV/©Hϧ6òëR•{asi¦Pi j¾à@V_Ùò…LAÃiF.|AéÛWkþ`Îù”™èK/œ‹ˆÊÖ`5æͶ\l#ù)Æ!«<¦neê]c[DãéŒäiMŒ….%”µ³ ¢“ikk¼òaµgº´j/%lz}JJš.`ó9ùý°šKGt¥KOÁív"Jð±Ëø|_ßõ‘2])Øì7y~ɬZ†HÍýÔphz@6Ñᰄ¤†.’Oal/ºê÷mb±Ó-hÛNûg”ÖZÜVWÀ› +õ|Z¹ÏkÎìæ†æž3ãy6dÛt˜JD[ÕÙnñÞ­´wö÷ÙjåM’iïÛMEÝ`#¬úB×Ų¦X֙D՛C;š_ðj)(tÈp“NTŸà0çϛdaÅú¤´dÖ!˜{ÏnåËVÅ<\.‹\̹&š·ZM¢.s¼ ªËZ"vêqÜќˆb´äƒœ¤j}ÚÎ M?üY®&²{N(h¬œðf¾]K56Ç ›–.V¬º3J¯Tƒ—›ÚÌÊZmºÚl~ø5‹#½ñ46¼ŒyAKÖ²âX‡PÌ»[Dyìm¼þÔèöKÙÂp +Hü*Ïê¢øe{:©5% ˆ†ÀÚ^‡2Û6KzæΝz þõ!çrsÌ<º4¤øÕn¥&Zè#†Å‰ÉöuÇ !ã.4hAgŠú÷E•<³“ +Ú?ž†Ìø€ï܊ëR‰Ð9A;Bclž2ïÖSå/ 6±ÉÓ×–íÚ(þ2t£ƒœþ ?IÐþ~úI˜s*iô-/£ùéóF5EJHÜa÷‹Ü±{/w¬ÿ{ˆà¨G‚·î½f¸á}ÛÌB"¥-…‹S0Ãh ²‹V;à¡ ‘”ì¬õ†–V”g¾(ê"YB€¥´c³¦­v"ïãDèÁ1Aó=Œå z¨™頂÷’ ÊQ&“s¸Ù‰ý« ´ˆ ²lƒV —n¸¼°3¯ÌTë15‘;:xH¼n£ º2åôV(O+ pv—Ú¼´*ÄÛ»0N掩CµÀh¸¡ {Ö ßvzV"bœ†–“M)4ƒV ô›ruþT+ý^öÑ,bӇ‘§n‰ùõxŸGoðw§è9hž=ÌÁêïû(­¶íB™-ÑÑ é¨á +Ît™CÝÇg]×h»œ»5ßáåô˜,'lPsŸ·)9òÌN+=RñvŠì’ æðO&êímnx-±0žé°wAI¶#w-„†w{-Q*\]g}>ʎ&Þ€Ã_É®D>æ!0dEôOóÅåwÊèξÅ`Ô7K#ŽÜ]OéÇòý_ž÷ú¹”Õ¶Ù¦®r³(ZCˆ\}ӏP’»Å—âx´ Žƒ¾m¿£æä'’BSsÅ@øÝcµ»Èí-Qµ×K'!‡\•K¾a8Q<-½ Kk[ÎäéwQ³(7Ç°”™HwpÝpfõ- /Â\‹ðÒ˙XĜɓ…TÏåu]¹r`Iþpå\”£)XÏfÝsÒ*¶LrÜÖIÚÎS®¦Y{‚–)_óçA|wàÄc½ÆÙl…-#%טp=Ø>ÓOÉËƕR‹„‰T(eå'í#iþ@k>y5ºïI¹å²yå9ÑØÍ 7Wé÷€ŸÊû SنWïøš„IÎü´¤C Ø=‚(USÂûÒ ÷˜«>çŠmÀfèëØëÊuåPÔßd焏¾âó0þή5ìÚÚÇì3|bEÍ L3’—J±$ÇaæNœìcrƒ~NCṤÉà Ð~ƞ2ÂNڒ=œ £/2S|ÙR ’EÐú ’øòê uوµŸ8t¼âÔö)'*jø€V_+réz†¡fåñaD{¡Ðß–N<¥ÃzhÑp‡ñmðd‹¹ÜM);2_yœ°›ëMõ"2‘̾´¥\ðžÉÍê87©-˜KçÇñjwٓkÁëdóûì–éùðs\A¥[’Öƒ:Ó²üªÈ¤ÎU.ºxý–,iûäöԆO¥‡öÒOxV•º?¾ãþn23?Batfb¸€>‰µ“Âàƒ’ÿ¢g'±ß$öXt×šÂۨش&g„-Õ²&3HX¹h®üŒ¦flúUŠû”Ìꍂ.‹þ™Ty‹>Ózh˜s ›côNð³ï» ®xÖáAC\Äî÷ ˜À–̓í¿–R˜L‘C¬>KY`Õëg)P}7چ¸ÚÙÅkNܢ–¹f5É°ÈëÝçmÖ?÷Šùºe„¤?Ìy‘éÁ¦#®“LQ¢kòÝèŽÙ¬þžÎ֊1uÎ#[‹#€J³ŒÇƎx€ ².õßÔ› ”ÁÍ]E. *´@·ÄŽÄúV¹—ö™Ï’Ð9—g§» –e‹œ†1FIYqÈw©ÿa1Ùú`f3¦C1µ_S‹Š#ööq˼ä)¢­®ù£Ž~ªáôÜ \ íþ³<áʗ¾§Žå‡¸ +ât„ú£Ydn+ôqÑô'2Âö¿Vœa["¯·'!qÞ"Ÿ4 ð\§lDÔX"äu|žr^ëÓQž[~ŒÞp²[Þ°Xæ¸ÒéðëY…¨ÁýºÔ 4PߋqëÞ᧼3Ò*Cm¡ëün£ Ò~1™uÿÈÛu^wB­ýäõ݁ªE|Ú®Œ¬ŸöŸh)ã»ùÝd•ð÷gu#ÄÞbaÖ&!¦ï҅ùh:Œ“PÞW—îrâ*a€"8°2bƒ‘ßqͨ}È:©LXá›⹓ßú҇…QMÐÓ_ÔßS¸c4Ÿc&wcð3µq#U¬9ÒÚ¨äX$þè¹ýùtÑíRŸ§r% ­Jø°Úå½û¦Þ8º˜Bä/ÀcÃa¯!9‹e§žÛɊiÿÏvAºNržöàµ%`99‚À¬ï3¯$棣¬~Œ\žž›Šz€9é›ÙC[”šiÄ¡âF“lŽGââœÉ“¤ÆÎʽd‡m•‡D¼[— +iÆ`^¡$»ƒßy±®YμÎ#«ˆ*FAãªPjR—œFezìäÌ$ty¢$ ,y‚kgû½K Î@¤Ck§àHUq']¼^*1$-WÁ·:|̤/±¤_ÜctùI¸ۄ’ÜÇÃIž¢¹¨¿F–:XÞÞ•‰£CUIŠµŽÙ…§5jâÅ*Ͳj² h[MôŽØûþõœuìÀøp72e I‰ÃÍ~š*p|ENÓ¬[aÝDýÇ ¯øÛ7ؓÉnî^êñ–Hîà™scëU¡ë_/R§Åê$yÆ(ï°ó«ëYOÝËñJ‹ùÕJÚ½çWdŸ$ñûÊÖèƒ?Œšç •L²lE“PV3x¼èŽ¨ÃÇÜ5;[Å>«ŸaaLY·‡µ¡q3/V‡XžçxsnÚó­ãØ0ߝ •~ó—ü!óÆ{  -\À/ˆ _º®ï6TSÔ¬AÏ&­¨ÉVÑb0Àp§µ2”í^Òú>:bW£ûv9½¸:[hNñv„´b kVŸÔ¿q>ú%RÇéö³øöÕCÆj§Sýju)™fîÝp£q¿G Ðw¼%i9ÑÁip}M±Ñ¤MU÷t†. “S‘¸§‰¥;bå´ö£³TÄ žF‡7O¸oâE*?^£¾AÇÁ=ˆïò"Øzù<„B¦†*ÁZÜK3Þòǁ³ºƒ·r1‰¼À”fQ« ²ÇiwJRg#jLȅ½ä[£Ü&É +,OÂ'bn¨Ü³›çÇHÅÜAŠbf¥Úó¥6´ÔjŒ­ù&•Ã—¤)ՙâç„jvRö£Ÿ›Q^†éÍ¿‰Iû”2Ò¼¿›G?ú2C¡¯× ¹Zêü5fþџ½Q¦ðIðã<}3#ã‡å ò'ãù÷(”bdæKNjˆÁ„B¶üˆöãÞ|ý,Èuï ¾!°/{•£¦RúRÃ(y[m9å»hÛV +ª/†¶‘Öt u3Å+Aé9x¸Z?ÄY¯æNl +á±é»¡ MsX†¼í¸µàHJ6PÀaH‚“ó#B•jpˆüi˜îC+<6Þ>ÖFÕD*­±¦Šu¼ýû7!g¦ÊN’ óžÓ|[dãq›ÊSjß2neV¬äÅSµUºXH§8ÙãÙ9"㓠Dbaa +žÎ8Êöb©(5þÓlÅ(9cYßa@cT ·¿[<ϱ-sŒ×›£çä¸ù_§5ÜZºTöÑì°ÌCMÙkcӟysZuõ[ùÓÝ¿ŒÅŽ¢DžÕ e—݆4‘骙þ~\×(éÕÂZ–G¢GÃöæH ñá™àÐ^+=0[˨ôNö§+Ü À…ý%¼B‚;ÖubÕp:[‘k±3Zsñÿj‘^sEw4+â¡Â^öRõýQDDÀ·Ÿod¡g,ç¥Ùù ¥ýC¥‹_ârc­*?!±¿sOPN$ï&ß̓y689ËzפïE°ñÜvl"¢ÅÅø!_›¢}Ö|²Uåñ™;)…I,õ-íÝ%•bˆ[˜~IýÂb4Ë#$¼ÂײÏ.ל²¾y\Um”Âß±ñ®¦Í9Ûí¨.AɉµE}jVÔeÎûxªE˜¦ +Ǩ³OPÒ&÷̍Ö\s +=$Öo{£ËéSڇPõ^|Qßag=T¸»mi³^” `“uŽXßo9N½ÕUÐL•¹Y%teÜÞ4aenö"£x-~‹væÕ¿kc˜X‰æè¨ú`Ý»êåԎϧbðÓÿ٠ւr¬`’¹™ÕÁtJŒ‹Ànüžbçð#µ½Kît‡¤ku”7_ž æ0T\)äF¥z§{Á¶Ò9Ör}­ý…{¬?[¤9ûöODƒýPÐ=Ûª7 ¤“LVÆ +jJ¯¬ú%ʏ‡%ɌâÖÙ¢λ¢ö•­•í0—9UAê2 §Æð`è[³ºÅ\Ðý!ÒÄ7Aßê:Óªöø¨¬îîhÒE·Ù ú´/—.š\TY°.×\xޟ|[]%l +¤.Cƙ۵=³t´ïÊV*" Â 6——}i ç¶ÛÖà«¥Ý|ýwb¯ÐÌ# ÎŒ?Q‰Ÿ¢µ ,—¹ÀèMìÇ_Íáó$IÒU°*  •|Àu„Š@çòр©q€7ꗘK +ÙºI<¼«Ó4*¶ã*ÎyÃʇ·¤£<6ɺ@(’dib0¼FoK_½ ï@ÖO[ œõ×rÎh½ÁtÚeŸÏ`*»õëj?fØ[ û¬4÷”gÊNy,°Ž­—óIbzn­¾kdFi‚`ôœ¨>¬œ¾?«ÞjF}ôë[é¢3Í7CÏìI g?aÃâÒXè”Ý}4‰fÐTÑ¥-(úÊ%OàŽJÜÖÏ~ã-\“²'Ïía«ZKy:ã8ú‚ÒE¸opeѪ}§Ó쩐8©> .–fr5Ÿƒ;3 ¤W%fۏÓ‡ÇGŒr«*íásÅv@l1ôáRðc’° ʑ†ÿÌýJšŸZÍr ·åR|+wr—¸jø’båÞm⎬kB…`$wï…Tìø4µÙ/4KŠ¾ß`ê†OÂLU¾'ÇàC{ë_¹~¦pä‰ ÀÁ â½O7$õ÷½›Ê#Ö¨Ûë+­šô b”Äw§T0©ÈwDd^;ö™ŸÉ´7}©\6ÄzÔ¬e²´¬Íd{Þù†g;44±L¸MkH­CÈ))¼ˆmKë'{|©°Ó± +ô9¶ó¨· Rû|1ÓcȲ²i‡eœ ùî·Ü6ìltØq‹KÂ<±zeí}³uŸêMÐ)ìܨWKeráTKw§å8û í©SyŒÆ&íÿ‘•@ՙŸ²9ÞETûZ¯pÉoٞük |mÛ}Ö£ÌyŒæ²cãçÜ/jîâňÕ.ö²¨PŸ¥ðEʘ¾àn&÷²[ŒÇÐ<ß)NçÔ öf_n!yFF#lå-¢¥à™mâ¶0úL¢ yÕ0ŽhhÒÈ»åÜαR“¦ H¬äªFþ@ÅNB»hÈÁ½¾;£ä÷ß­(=ñÃŒN:Œã0GÒ|ILÖeíF?óEé«6MÝ\×JÖvøïÔUÓ>ª†»Kp5lpäié÷Ñ !² ǤʑR5Ùò…ž´²·BÁ&pw]mîkßi혖RŠˆ‰&1…)•5ÍIWìbKJ+òA¼‘.*öCT{úºœ,Hñ½DXւÍ…ý>Á!]èä§%~®×My«“½Ôµ©)cú hxqn¡¹ZJ9ÊÈT…ˆ8èñÑþ4å´ï Y(P}҉éŸë-ÉÛÞ¼9ƒ»¼“²Bê‡:T#Kæpßka4i,žñª­Ü¾±Ep)fæGúÌêóþK75^|ºâ +Í¨ÙH,yy·™‡D¾èßñ}0–²—6,+Ÿz›ãªàB»tÏk8ô©iUü6“Ç öÿQ! +÷LH5ýî¯\˜¶|Rm–¼íãšjŠ Ðú‚‰zO#̛8ê´Ó(17Àf~äµWM9ÍB՞SŠ_/1‹£B÷Bäþsˆ÷7D…w;§«‰7gÆÓBƒâ&.Å|ÊçÓýËEkkÙÕѽè°âuŸs‘´qa›_Í9ç“ÕÝ;êÈüPìûæèÕÉÑ.'6Ll/l8ˆÊÄBr¸µö‰Q9”âÎÿâjä`ÏBKîëÉÖ=~¬L¹ø£)>G¤\gµã; ícüt¤f~õÀ„'×t$GrŽWG3ôeÍlàöëÀ19TYðf`¦£gœÿ°M姕?tj²ʖâÞ,1 +·ÒCc®äÇÆ_ýÚ,gzÉP~×q¾Pv×ǟŠÏ‚öP{pWôí¢pzèõS$7¤(ƒ³¥®lE¶ç2pf®Eâk5mûLþ  =Œ endstream endobj 1158 0 obj << /Type /FontDescriptor -/FontName /VVCFMG+CMTT8 +/FontName /NTEIKC+CMTT8 /Flags 4 /FontBBox [-5 -232 545 699] /Ascent 611 @@ -6131,7 +6129,7 @@ endobj /ItalicAngle 0 /StemV 76 /XHeight 431 -/CharSet (/A/B/C/D/E/F/G/I/L/M/N/O/Q/R/S/T/U/V/X/Y/a/asciicircum/asterisk/b/bar/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedbl/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/CharSet (/A/B/C/D/E/F/G/I/L/M/N/O/Q/R/S/T/U/V/X/Y/a/asciicircum/asterisk/b/backslash/bar/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedbl/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 1157 0 R >> endobj 751 0 obj << @@ -6263,7 +6261,7 @@ endobj 613 0 obj << /Type /Font /Subtype /Type1 -/BaseFont /VVCFMG+CMTT8 +/BaseFont /NTEIKC+CMTT8 /FontDescriptor 1158 0 R /FirstChar 34 /LastChar 125 @@ -7397,8 +7395,8 @@ endobj >> endobj 1241 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() -/CreationDate (D:20110811030303-04'00') -/ModDate (D:20110811030303-04'00') +/CreationDate (D:20110811032950-04'00') +/ModDate (D:20110811032950-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj @@ -7411,399 +7409,399 @@ xref 0000000000 00000 f 0000000015 00000 n 0000033008 00000 n -0000401423 00000 n +0000401656 00000 n 0000000060 00000 n 0000000106 00000 n 0000033063 00000 n -0000401314 00000 n +0000401547 00000 n 0000000156 00000 n 0000000183 00000 n 0000033119 00000 n -0000401240 00000 n +0000401473 00000 n 0000000239 00000 n 0000000269 00000 n 0000033175 00000 n -0000401153 00000 n +0000401386 00000 n 0000000325 00000 n 0000000358 00000 n 0000033231 00000 n -0000401066 00000 n +0000401299 00000 n 0000000414 00000 n 0000000444 00000 n 0000036480 00000 n -0000400979 00000 n +0000401212 00000 n 0000000500 00000 n 0000000552 00000 n 0000048312 00000 n -0000400892 00000 n +0000401125 00000 n 0000000608 00000 n 0000000647 00000 n 0000048368 00000 n -0000400818 00000 n +0000401051 00000 n 0000000703 00000 n 0000000738 00000 n 0000048424 00000 n -0000400695 00000 n +0000400928 00000 n 0000000789 00000 n 0000000829 00000 n 0000050955 00000 n -0000400621 00000 n +0000400854 00000 n 0000000885 00000 n 0000000917 00000 n 0000051011 00000 n -0000400534 00000 n +0000400767 00000 n 0000000973 00000 n 0000000996 00000 n 0000051067 00000 n -0000400447 00000 n +0000400680 00000 n 0000001052 00000 n 0000001078 00000 n 0000053672 00000 n -0000400360 00000 n +0000400593 00000 n 0000001134 00000 n 0000001158 00000 n 0000053728 00000 n -0000400273 00000 n +0000400506 00000 n 0000001214 00000 n 0000001240 00000 n 0000053784 00000 n -0000400199 00000 n +0000400432 00000 n 0000001296 00000 n 0000001324 00000 n 0000056206 00000 n -0000400089 00000 n +0000400322 00000 n 0000001375 00000 n 0000001419 00000 n 0000056262 00000 n -0000400015 00000 n +0000400248 00000 n 0000001475 00000 n 0000001506 00000 n 0000056489 00000 n -0000399941 00000 n +0000400174 00000 n 0000001562 00000 n 0000001597 00000 n 0000075327 00000 n -0000399815 00000 n +0000400048 00000 n 0000001643 00000 n 0000001683 00000 n 0000075383 00000 n -0000399716 00000 n +0000399949 00000 n 0000001734 00000 n 0000001761 00000 n 0000075439 00000 n -0000399642 00000 n +0000399875 00000 n 0000001817 00000 n 0000001859 00000 n 0000075495 00000 n -0000399555 00000 n +0000399788 00000 n 0000001915 00000 n 0000001943 00000 n 0000075551 00000 n -0000399468 00000 n +0000399701 00000 n 0000001999 00000 n 0000002028 00000 n 0000078043 00000 n -0000399379 00000 n +0000399612 00000 n 0000002084 00000 n 0000002135 00000 n 0000078099 00000 n -0000399288 00000 n +0000399521 00000 n 0000002192 00000 n 0000002222 00000 n 0000078156 00000 n -0000399196 00000 n +0000399429 00000 n 0000002279 00000 n 0000002313 00000 n 0000079377 00000 n -0000399104 00000 n +0000399337 00000 n 0000002370 00000 n 0000002406 00000 n 0000081674 00000 n -0000399012 00000 n +0000399245 00000 n 0000002463 00000 n 0000002506 00000 n 0000081731 00000 n -0000398934 00000 n +0000399167 00000 n 0000002563 00000 n 0000002600 00000 n 0000084418 00000 n -0000398802 00000 n +0000399035 00000 n 0000002647 00000 n 0000002698 00000 n 0000084475 00000 n -0000398684 00000 n +0000398917 00000 n 0000002750 00000 n 0000002778 00000 n 0000084532 00000 n -0000398619 00000 n +0000398852 00000 n 0000002835 00000 n 0000002872 00000 n 0000084589 00000 n -0000398487 00000 n +0000398720 00000 n 0000002924 00000 n 0000002966 00000 n 0000084646 00000 n -0000398422 00000 n +0000398655 00000 n 0000003023 00000 n 0000003058 00000 n -0000099726 00000 n -0000398343 00000 n +0000099734 00000 n +0000398576 00000 n 0000003110 00000 n 0000003161 00000 n -0000104551 00000 n -0000398210 00000 n +0000104559 00000 n +0000398443 00000 n 0000003208 00000 n 0000003257 00000 n -0000104608 00000 n -0000398131 00000 n +0000104616 00000 n +0000398364 00000 n 0000003309 00000 n 0000003337 00000 n -0000104665 00000 n -0000397999 00000 n +0000104673 00000 n +0000398232 00000 n 0000003389 00000 n 0000003439 00000 n -0000104722 00000 n -0000397920 00000 n +0000104730 00000 n +0000398153 00000 n 0000003496 00000 n 0000003536 00000 n -0000104777 00000 n -0000397827 00000 n +0000104785 00000 n +0000398060 00000 n 0000003593 00000 n 0000003634 00000 n -0000107374 00000 n -0000397734 00000 n +0000107382 00000 n +0000397967 00000 n 0000003691 00000 n 0000003725 00000 n -0000107431 00000 n -0000397655 00000 n +0000107439 00000 n +0000397888 00000 n 0000003782 00000 n 0000003814 00000 n -0000122237 00000 n -0000397537 00000 n +0000122245 00000 n +0000397770 00000 n 0000003866 00000 n 0000003919 00000 n -0000122294 00000 n -0000397458 00000 n +0000122302 00000 n +0000397691 00000 n 0000003976 00000 n 0000004031 00000 n -0000129445 00000 n -0000397365 00000 n +0000129453 00000 n +0000397598 00000 n 0000004088 00000 n 0000004126 00000 n -0000129844 00000 n -0000397272 00000 n +0000129852 00000 n +0000397505 00000 n 0000004183 00000 n 0000004227 00000 n -0000131718 00000 n -0000397179 00000 n +0000131726 00000 n +0000397412 00000 n 0000004284 00000 n 0000004318 00000 n -0000132627 00000 n -0000397086 00000 n +0000132635 00000 n +0000397319 00000 n 0000004375 00000 n 0000004411 00000 n -0000135339 00000 n -0000396993 00000 n +0000135347 00000 n +0000397226 00000 n 0000004468 00000 n 0000004499 00000 n -0000138862 00000 n -0000396900 00000 n +0000138876 00000 n +0000397133 00000 n 0000004556 00000 n 0000004588 00000 n -0000138919 00000 n -0000396807 00000 n +0000138933 00000 n +0000397040 00000 n 0000004645 00000 n 0000004679 00000 n -0000140960 00000 n -0000396728 00000 n +0000140974 00000 n +0000396961 00000 n 0000004736 00000 n 0000004776 00000 n -0000143508 00000 n -0000396595 00000 n +0000143535 00000 n +0000396828 00000 n 0000004823 00000 n 0000004881 00000 n -0000143565 00000 n -0000396516 00000 n +0000143592 00000 n +0000396749 00000 n 0000004933 00000 n 0000004961 00000 n -0000143622 00000 n -0000396398 00000 n +0000143649 00000 n +0000396631 00000 n 0000005013 00000 n 0000005049 00000 n -0000143679 00000 n -0000396319 00000 n +0000143706 00000 n +0000396552 00000 n 0000005106 00000 n 0000005135 00000 n -0000146570 00000 n -0000396226 00000 n +0000146597 00000 n +0000396459 00000 n 0000005192 00000 n 0000005233 00000 n -0000149568 00000 n -0000396147 00000 n +0000149595 00000 n +0000396380 00000 n 0000005290 00000 n 0000005318 00000 n -0000153594 00000 n -0000396014 00000 n +0000153621 00000 n +0000396247 00000 n 0000005365 00000 n 0000005414 00000 n -0000153651 00000 n -0000395935 00000 n +0000153678 00000 n +0000396168 00000 n 0000005466 00000 n 0000005494 00000 n -0000153708 00000 n -0000395817 00000 n +0000153735 00000 n +0000396050 00000 n 0000005546 00000 n 0000005580 00000 n -0000153765 00000 n -0000395738 00000 n +0000153792 00000 n +0000395971 00000 n 0000005637 00000 n 0000005670 00000 n -0000153822 00000 n -0000395645 00000 n +0000153849 00000 n +0000395878 00000 n 0000005727 00000 n 0000005760 00000 n -0000157252 00000 n -0000395566 00000 n +0000157279 00000 n +0000395799 00000 n 0000005817 00000 n 0000005854 00000 n -0000164153 00000 n -0000395433 00000 n +0000164180 00000 n +0000395666 00000 n 0000005901 00000 n 0000005950 00000 n -0000164210 00000 n -0000395354 00000 n +0000164237 00000 n +0000395587 00000 n 0000006002 00000 n 0000006030 00000 n -0000164267 00000 n -0000395236 00000 n +0000164294 00000 n +0000395469 00000 n 0000006082 00000 n 0000006116 00000 n -0000164324 00000 n -0000395157 00000 n +0000164351 00000 n +0000395390 00000 n 0000006173 00000 n 0000006198 00000 n -0000184723 00000 n -0000395078 00000 n +0000184750 00000 n +0000395311 00000 n 0000006255 00000 n 0000006288 00000 n -0000198293 00000 n -0000394945 00000 n +0000198320 00000 n +0000395178 00000 n 0000006335 00000 n 0000006379 00000 n -0000198351 00000 n -0000394866 00000 n +0000198378 00000 n +0000395099 00000 n 0000006431 00000 n 0000006459 00000 n -0000198409 00000 n -0000394773 00000 n +0000198436 00000 n +0000395006 00000 n 0000006511 00000 n 0000006545 00000 n -0000234211 00000 n -0000394680 00000 n +0000234238 00000 n +0000394913 00000 n 0000006597 00000 n 0000006626 00000 n -0000234269 00000 n -0000394587 00000 n +0000234296 00000 n +0000394820 00000 n 0000006678 00000 n 0000006707 00000 n -0000256056 00000 n -0000394494 00000 n +0000256083 00000 n +0000394727 00000 n 0000006759 00000 n 0000006788 00000 n -0000258785 00000 n -0000394376 00000 n +0000258831 00000 n +0000394609 00000 n 0000006840 00000 n 0000006874 00000 n -0000258843 00000 n -0000394297 00000 n +0000258889 00000 n +0000394530 00000 n 0000006931 00000 n 0000006964 00000 n -0000261621 00000 n -0000394204 00000 n +0000261700 00000 n +0000394437 00000 n 0000007021 00000 n 0000007054 00000 n -0000265015 00000 n -0000394111 00000 n +0000265133 00000 n +0000394344 00000 n 0000007111 00000 n 0000007149 00000 n -0000265073 00000 n -0000394018 00000 n +0000265191 00000 n +0000394251 00000 n 0000007206 00000 n 0000007244 00000 n -0000267052 00000 n -0000393939 00000 n +0000267170 00000 n +0000394172 00000 n 0000007301 00000 n 0000007339 00000 n -0000268980 00000 n -0000393806 00000 n +0000269103 00000 n +0000394039 00000 n 0000007386 00000 n 0000007422 00000 n -0000269038 00000 n -0000393727 00000 n +0000269161 00000 n +0000393960 00000 n 0000007474 00000 n 0000007502 00000 n -0000269096 00000 n -0000393609 00000 n +0000269219 00000 n +0000393842 00000 n 0000007554 00000 n 0000007583 00000 n -0000269154 00000 n -0000393530 00000 n +0000269277 00000 n +0000393763 00000 n 0000007640 00000 n 0000007664 00000 n -0000269212 00000 n -0000393437 00000 n +0000269335 00000 n +0000393670 00000 n 0000007721 00000 n 0000007758 00000 n -0000271876 00000 n -0000393344 00000 n +0000271999 00000 n +0000393577 00000 n 0000007815 00000 n 0000007852 00000 n -0000271934 00000 n -0000393251 00000 n +0000272057 00000 n +0000393484 00000 n 0000007909 00000 n 0000007944 00000 n -0000271992 00000 n -0000393158 00000 n +0000272115 00000 n +0000393391 00000 n 0000008001 00000 n 0000008037 00000 n -0000272050 00000 n -0000393065 00000 n +0000272173 00000 n +0000393298 00000 n 0000008094 00000 n 0000008129 00000 n -0000273808 00000 n -0000392986 00000 n +0000273931 00000 n +0000393219 00000 n 0000008186 00000 n 0000008220 00000 n -0000276473 00000 n -0000392853 00000 n +0000276596 00000 n +0000393086 00000 n 0000008268 00000 n 0000008294 00000 n -0000276531 00000 n -0000392788 00000 n +0000276654 00000 n +0000393021 00000 n 0000008347 00000 n 0000008399 00000 n -0000280342 00000 n -0000392655 00000 n +0000280465 00000 n +0000392888 00000 n 0000008447 00000 n 0000008502 00000 n -0000280400 00000 n -0000392537 00000 n +0000280523 00000 n +0000392770 00000 n 0000008554 00000 n 0000008582 00000 n -0000280458 00000 n -0000392458 00000 n +0000280581 00000 n +0000392691 00000 n 0000008639 00000 n 0000008671 00000 n -0000280516 00000 n -0000392379 00000 n +0000280639 00000 n +0000392612 00000 n 0000008728 00000 n 0000008757 00000 n -0000283140 00000 n -0000392300 00000 n +0000283263 00000 n +0000392533 00000 n 0000008809 00000 n 0000008842 00000 n -0000285672 00000 n -0000392220 00000 n +0000285795 00000 n +0000392453 00000 n 0000008890 00000 n 0000008937 00000 n 0000010082 00000 n @@ -7838,11 +7836,11 @@ xref 0000008989 00000 n 0000014579 00000 n 0000014636 00000 n -0000389369 00000 n -0000388938 00000 n +0000389602 00000 n +0000389171 00000 n 0000014693 00000 n -0000388793 00000 n -0000390387 00000 n +0000389026 00000 n +0000390620 00000 n 0000016863 00000 n 0000017025 00000 n 0000017187 00000 n @@ -7936,7 +7934,7 @@ xref 0000033372 00000 n 0000036423 00000 n 0000036536 00000 n -0000389950 00000 n +0000390183 00000 n 0000038278 00000 n 0000048542 00000 n 0000038159 00000 n @@ -7948,7 +7946,7 @@ xref 0000050779 00000 n 0000048671 00000 n 0000050898 00000 n -0000390505 00000 n +0000390738 00000 n 0000053840 00000 n 0000053496 00000 n 0000051208 00000 n @@ -7991,13 +7989,13 @@ xref 0000066025 00000 n 0000066082 00000 n 0000066143 00000 n -0000388502 00000 n -0000389517 00000 n -0000389226 00000 n +0000388735 00000 n +0000389750 00000 n +0000389459 00000 n 0000066204 00000 n 0000063851 00000 n 0000065721 00000 n -0000290768 00000 n +0000290891 00000 n 0000069141 00000 n 0000069587 00000 n 0000069002 00000 n @@ -8016,9 +8014,9 @@ xref 0000072650 00000 n 0000072707 00000 n 0000072764 00000 n -0000389083 00000 n -0000390242 00000 n -0000390623 00000 n +0000389316 00000 n +0000390475 00000 n +0000390856 00000 n 0000075607 00000 n 0000075151 00000 n 0000072944 00000 n @@ -8043,14 +8041,14 @@ xref 0000083591 00000 n 0000081886 00000 n 0000084361 00000 n -0000390096 00000 n +0000390329 00000 n 0000087043 00000 n 0000087262 00000 n 0000086904 00000 n 0000084827 00000 n 0000087205 00000 n -0000389804 00000 n -0000390741 00000 n +0000390037 00000 n +0000390974 00000 n 0000089748 00000 n 0000089909 00000 n 0000090071 00000 n @@ -8070,587 +8068,587 @@ xref 0000093565 00000 n 0000093622 00000 n 0000093359 00000 n -0000095570 00000 n -0000097244 00000 n -0000095451 00000 n +0000095578 00000 n +0000097252 00000 n +0000095459 00000 n 0000093839 00000 n -0000097069 00000 n -0000097126 00000 n -0000097188 00000 n -0000096920 00000 n -0000099783 00000 n -0000099436 00000 n -0000097412 00000 n -0000099555 00000 n -0000099612 00000 n -0000099669 00000 n -0000101597 00000 n -0000101421 00000 n -0000099920 00000 n -0000101540 00000 n -0000103736 00000 n -0000103887 00000 n -0000104039 00000 n -0000104191 00000 n -0000104833 00000 n -0000103565 00000 n -0000101669 00000 n -0000104494 00000 n -0000104343 00000 n -0000390859 00000 n -0000106863 00000 n -0000107015 00000 n -0000107550 00000 n -0000106708 00000 n -0000104944 00000 n -0000107317 00000 n -0000107167 00000 n -0000107488 00000 n -0000109642 00000 n -0000109792 00000 n -0000110094 00000 n -0000110246 00000 n -0000110398 00000 n -0000110550 00000 n -0000113883 00000 n -0000114035 00000 n -0000111726 00000 n -0000109455 00000 n -0000107705 00000 n -0000110702 00000 n -0000110759 00000 n -0000110816 00000 n -0000110873 00000 n -0000109942 00000 n -0000110930 00000 n -0000110987 00000 n -0000111044 00000 n -0000111101 00000 n -0000111158 00000 n -0000111215 00000 n -0000111272 00000 n -0000111329 00000 n -0000111386 00000 n -0000111442 00000 n -0000111498 00000 n -0000111555 00000 n -0000111612 00000 n -0000111669 00000 n -0000114187 00000 n -0000114349 00000 n -0000115304 00000 n -0000113720 00000 n -0000111824 00000 n -0000114509 00000 n -0000114566 00000 n -0000114623 00000 n -0000114679 00000 n -0000114736 00000 n -0000114793 00000 n -0000114850 00000 n -0000114907 00000 n -0000114964 00000 n -0000115021 00000 n -0000115078 00000 n -0000115134 00000 n -0000115190 00000 n -0000115247 00000 n -0000388210 00000 n -0000118422 00000 n -0000117164 00000 n -0000115428 00000 n -0000117283 00000 n -0000117340 00000 n -0000117397 00000 n -0000117454 00000 n -0000117511 00000 n -0000117568 00000 n -0000117625 00000 n -0000117682 00000 n -0000117739 00000 n -0000117796 00000 n -0000117853 00000 n -0000117910 00000 n -0000117967 00000 n -0000118023 00000 n -0000118080 00000 n -0000118137 00000 n -0000118194 00000 n -0000118251 00000 n -0000118308 00000 n -0000118365 00000 n -0000120934 00000 n -0000121096 00000 n -0000121247 00000 n -0000121552 00000 n -0000121705 00000 n -0000122863 00000 n -0000120747 00000 n -0000118520 00000 n -0000122011 00000 n -0000122068 00000 n -0000122125 00000 n -0000122182 00000 n -0000122351 00000 n -0000122408 00000 n -0000122465 00000 n -0000122522 00000 n -0000122579 00000 n -0000122636 00000 n -0000122693 00000 n -0000122750 00000 n -0000121399 00000 n -0000122806 00000 n -0000121858 00000 n -0000126216 00000 n -0000124845 00000 n -0000122974 00000 n -0000124964 00000 n -0000125021 00000 n -0000388648 00000 n -0000125078 00000 n -0000125135 00000 n -0000125192 00000 n -0000125249 00000 n -0000125306 00000 n -0000125363 00000 n -0000125420 00000 n -0000125477 00000 n -0000125533 00000 n -0000125590 00000 n -0000125647 00000 n -0000125704 00000 n -0000125761 00000 n -0000125818 00000 n -0000125875 00000 n -0000125931 00000 n -0000125988 00000 n -0000126045 00000 n -0000126102 00000 n -0000126159 00000 n -0000390977 00000 n -0000128756 00000 n -0000128918 00000 n -0000129080 00000 n -0000129234 00000 n -0000129958 00000 n -0000128593 00000 n -0000126353 00000 n -0000129388 00000 n -0000129502 00000 n -0000129559 00000 n -0000129616 00000 n -0000129673 00000 n -0000129730 00000 n -0000129787 00000 n -0000129901 00000 n -0000187793 00000 n -0000132684 00000 n -0000131542 00000 n -0000130056 00000 n -0000131661 00000 n -0000131775 00000 n -0000131832 00000 n -0000131889 00000 n -0000131946 00000 n -0000132002 00000 n -0000132059 00000 n -0000132116 00000 n -0000132173 00000 n -0000132230 00000 n -0000132286 00000 n -0000132343 00000 n -0000132400 00000 n -0000132457 00000 n -0000132514 00000 n -0000132571 00000 n -0000135396 00000 n -0000134253 00000 n -0000132782 00000 n -0000134372 00000 n -0000134429 00000 n -0000134486 00000 n -0000134543 00000 n -0000134600 00000 n -0000134657 00000 n -0000134714 00000 n -0000134771 00000 n -0000134828 00000 n -0000134884 00000 n -0000134941 00000 n -0000134998 00000 n -0000135055 00000 n -0000135112 00000 n -0000135169 00000 n -0000135225 00000 n -0000135282 00000 n -0000138329 00000 n -0000138501 00000 n -0000138653 00000 n -0000138976 00000 n -0000138174 00000 n -0000135494 00000 n -0000138805 00000 n -0000140730 00000 n -0000141017 00000 n -0000140591 00000 n -0000139100 00000 n -0000140903 00000 n -0000143736 00000 n -0000143332 00000 n -0000141102 00000 n -0000143451 00000 n -0000391095 00000 n -0000146684 00000 n -0000146394 00000 n -0000143886 00000 n -0000146513 00000 n -0000146627 00000 n -0000149281 00000 n -0000149681 00000 n -0000149142 00000 n -0000146795 00000 n -0000149454 00000 n -0000149511 00000 n -0000149624 00000 n -0000151103 00000 n -0000150642 00000 n -0000149805 00000 n -0000150761 00000 n -0000150818 00000 n -0000150875 00000 n -0000150932 00000 n -0000150989 00000 n -0000151046 00000 n -0000153375 00000 n -0000153879 00000 n -0000153236 00000 n -0000151201 00000 n -0000153537 00000 n -0000157034 00000 n -0000157309 00000 n -0000156895 00000 n -0000154016 00000 n -0000157195 00000 n -0000388357 00000 n -0000160302 00000 n -0000159727 00000 n -0000157497 00000 n -0000159846 00000 n -0000159903 00000 n -0000159960 00000 n -0000160017 00000 n -0000160074 00000 n -0000389662 00000 n -0000160131 00000 n -0000160188 00000 n -0000160245 00000 n -0000391213 00000 n -0000161421 00000 n -0000160960 00000 n -0000160490 00000 n -0000161079 00000 n -0000161136 00000 n -0000161193 00000 n -0000161250 00000 n -0000161307 00000 n -0000161364 00000 n -0000165342 00000 n -0000164381 00000 n -0000163977 00000 n -0000161506 00000 n -0000164096 00000 n -0000169001 00000 n -0000172993 00000 n -0000180201 00000 n -0000178082 00000 n -0000165223 00000 n -0000164479 00000 n -0000177839 00000 n -0000177896 00000 n -0000177958 00000 n -0000178020 00000 n -0000168568 00000 n -0000172562 00000 n -0000177336 00000 n -0000184780 00000 n -0000180082 00000 n -0000178224 00000 n -0000184604 00000 n -0000184661 00000 n -0000184170 00000 n -0000187414 00000 n -0000187574 00000 n -0000187850 00000 n -0000187267 00000 n -0000184948 00000 n -0000187736 00000 n -0000190443 00000 n -0000190605 00000 n -0000192460 00000 n -0000190881 00000 n -0000190296 00000 n -0000187987 00000 n -0000190767 00000 n -0000190824 00000 n -0000391331 00000 n -0000192678 00000 n -0000192321 00000 n -0000191018 00000 n -0000192621 00000 n -0000194828 00000 n -0000194990 00000 n -0000195152 00000 n -0000195368 00000 n -0000194673 00000 n -0000192789 00000 n -0000195310 00000 n -0000198467 00000 n -0000198112 00000 n -0000195505 00000 n -0000198234 00000 n -0000199752 00000 n -0000199264 00000 n -0000199083 00000 n -0000198579 00000 n -0000199205 00000 n -0000232471 00000 n -0000199630 00000 n -0000199337 00000 n -0000232349 00000 n -0000232408 00000 n -0000231507 00000 n -0000234327 00000 n -0000234029 00000 n -0000232590 00000 n -0000234152 00000 n -0000391452 00000 n -0000235357 00000 n -0000256177 00000 n -0000235234 00000 n -0000234439 00000 n -0000255997 00000 n -0000256114 00000 n -0000255221 00000 n -0000258901 00000 n -0000258603 00000 n -0000256322 00000 n -0000258726 00000 n -0000261679 00000 n -0000261439 00000 n -0000259026 00000 n -0000261562 00000 n -0000263514 00000 n -0000263332 00000 n -0000261804 00000 n -0000263455 00000 n -0000265131 00000 n -0000264833 00000 n -0000263613 00000 n -0000264956 00000 n -0000267287 00000 n -0000266870 00000 n -0000265269 00000 n -0000266993 00000 n -0000267110 00000 n -0000267169 00000 n +0000097077 00000 n +0000097134 00000 n +0000097196 00000 n +0000096928 00000 n +0000099791 00000 n +0000099444 00000 n +0000097420 00000 n +0000099563 00000 n +0000099620 00000 n +0000099677 00000 n +0000101605 00000 n +0000101429 00000 n +0000099928 00000 n +0000101548 00000 n +0000103744 00000 n +0000103895 00000 n +0000104047 00000 n +0000104199 00000 n +0000104841 00000 n +0000103573 00000 n +0000101677 00000 n +0000104502 00000 n +0000104351 00000 n +0000391092 00000 n +0000106871 00000 n +0000107023 00000 n +0000107558 00000 n +0000106716 00000 n +0000104952 00000 n +0000107325 00000 n +0000107175 00000 n +0000107496 00000 n +0000109650 00000 n +0000109800 00000 n +0000110102 00000 n +0000110254 00000 n +0000110406 00000 n +0000110558 00000 n +0000113891 00000 n +0000114043 00000 n +0000111734 00000 n +0000109463 00000 n +0000107713 00000 n +0000110710 00000 n +0000110767 00000 n +0000110824 00000 n +0000110881 00000 n +0000109950 00000 n +0000110938 00000 n +0000110995 00000 n +0000111052 00000 n +0000111109 00000 n +0000111166 00000 n +0000111223 00000 n +0000111280 00000 n +0000111337 00000 n +0000111394 00000 n +0000111450 00000 n +0000111506 00000 n +0000111563 00000 n +0000111620 00000 n +0000111677 00000 n +0000114195 00000 n +0000114357 00000 n +0000115312 00000 n +0000113728 00000 n +0000111832 00000 n +0000114517 00000 n +0000114574 00000 n +0000114631 00000 n +0000114687 00000 n +0000114744 00000 n +0000114801 00000 n +0000114858 00000 n +0000114915 00000 n +0000114972 00000 n +0000115029 00000 n +0000115086 00000 n +0000115142 00000 n +0000115198 00000 n +0000115255 00000 n +0000388443 00000 n +0000118430 00000 n +0000117172 00000 n +0000115436 00000 n +0000117291 00000 n +0000117348 00000 n +0000117405 00000 n +0000117462 00000 n +0000117519 00000 n +0000117576 00000 n +0000117633 00000 n +0000117690 00000 n +0000117747 00000 n +0000117804 00000 n +0000117861 00000 n +0000117918 00000 n +0000117975 00000 n +0000118031 00000 n +0000118088 00000 n +0000118145 00000 n +0000118202 00000 n +0000118259 00000 n +0000118316 00000 n +0000118373 00000 n +0000120942 00000 n +0000121104 00000 n +0000121255 00000 n +0000121560 00000 n +0000121713 00000 n +0000122871 00000 n +0000120755 00000 n +0000118528 00000 n +0000122019 00000 n +0000122076 00000 n +0000122133 00000 n +0000122190 00000 n +0000122359 00000 n +0000122416 00000 n +0000122473 00000 n +0000122530 00000 n +0000122587 00000 n +0000122644 00000 n +0000122701 00000 n +0000122758 00000 n +0000121407 00000 n +0000122814 00000 n +0000121866 00000 n +0000126224 00000 n +0000124853 00000 n +0000122982 00000 n +0000124972 00000 n +0000125029 00000 n +0000388881 00000 n +0000125086 00000 n +0000125143 00000 n +0000125200 00000 n +0000125257 00000 n +0000125314 00000 n +0000125371 00000 n +0000125428 00000 n +0000125485 00000 n +0000125541 00000 n +0000125598 00000 n +0000125655 00000 n +0000125712 00000 n +0000125769 00000 n +0000125826 00000 n +0000125883 00000 n +0000125939 00000 n +0000125996 00000 n +0000126053 00000 n +0000126110 00000 n +0000126167 00000 n +0000391210 00000 n +0000128764 00000 n +0000128926 00000 n +0000129088 00000 n +0000129242 00000 n +0000129966 00000 n +0000128601 00000 n +0000126361 00000 n +0000129396 00000 n +0000129510 00000 n +0000129567 00000 n +0000129624 00000 n +0000129681 00000 n +0000129738 00000 n +0000129795 00000 n +0000129909 00000 n +0000187820 00000 n +0000132692 00000 n +0000131550 00000 n +0000130064 00000 n +0000131669 00000 n +0000131783 00000 n +0000131840 00000 n +0000131897 00000 n +0000131954 00000 n +0000132010 00000 n +0000132067 00000 n +0000132124 00000 n +0000132181 00000 n +0000132238 00000 n +0000132294 00000 n +0000132351 00000 n +0000132408 00000 n +0000132465 00000 n +0000132522 00000 n +0000132579 00000 n +0000135404 00000 n +0000134261 00000 n +0000132790 00000 n +0000134380 00000 n +0000134437 00000 n +0000134494 00000 n +0000134551 00000 n +0000134608 00000 n +0000134665 00000 n +0000134722 00000 n +0000134779 00000 n +0000134836 00000 n +0000134892 00000 n +0000134949 00000 n +0000135006 00000 n +0000135063 00000 n +0000135120 00000 n +0000135177 00000 n +0000135233 00000 n +0000135290 00000 n +0000138343 00000 n +0000138515 00000 n +0000138667 00000 n +0000138990 00000 n +0000138188 00000 n +0000135502 00000 n +0000138819 00000 n +0000140744 00000 n +0000141031 00000 n +0000140605 00000 n +0000139114 00000 n +0000140917 00000 n +0000143763 00000 n +0000143359 00000 n +0000141116 00000 n +0000143478 00000 n +0000391328 00000 n +0000146711 00000 n +0000146421 00000 n +0000143913 00000 n +0000146540 00000 n +0000146654 00000 n +0000149308 00000 n +0000149708 00000 n +0000149169 00000 n +0000146822 00000 n +0000149481 00000 n +0000149538 00000 n +0000149651 00000 n +0000151130 00000 n +0000150669 00000 n +0000149832 00000 n +0000150788 00000 n +0000150845 00000 n +0000150902 00000 n +0000150959 00000 n +0000151016 00000 n +0000151073 00000 n +0000153402 00000 n +0000153906 00000 n +0000153263 00000 n +0000151228 00000 n +0000153564 00000 n +0000157061 00000 n +0000157336 00000 n +0000156922 00000 n +0000154043 00000 n +0000157222 00000 n +0000388590 00000 n +0000160329 00000 n +0000159754 00000 n +0000157524 00000 n +0000159873 00000 n +0000159930 00000 n +0000159987 00000 n +0000160044 00000 n +0000160101 00000 n +0000389895 00000 n +0000160158 00000 n +0000160215 00000 n +0000160272 00000 n +0000391446 00000 n +0000161448 00000 n +0000160987 00000 n +0000160517 00000 n +0000161106 00000 n +0000161163 00000 n +0000161220 00000 n +0000161277 00000 n +0000161334 00000 n +0000161391 00000 n +0000165369 00000 n +0000164408 00000 n +0000164004 00000 n +0000161533 00000 n +0000164123 00000 n +0000169028 00000 n +0000173020 00000 n +0000180228 00000 n +0000178109 00000 n +0000165250 00000 n +0000164506 00000 n +0000177866 00000 n +0000177923 00000 n +0000177985 00000 n +0000178047 00000 n +0000168595 00000 n +0000172589 00000 n +0000177363 00000 n +0000184807 00000 n +0000180109 00000 n +0000178251 00000 n +0000184631 00000 n +0000184688 00000 n +0000184197 00000 n +0000187441 00000 n +0000187601 00000 n +0000187877 00000 n +0000187294 00000 n +0000184975 00000 n +0000187763 00000 n +0000190470 00000 n +0000190632 00000 n +0000192487 00000 n +0000190908 00000 n +0000190323 00000 n +0000188014 00000 n +0000190794 00000 n +0000190851 00000 n +0000391564 00000 n +0000192705 00000 n +0000192348 00000 n +0000191045 00000 n +0000192648 00000 n +0000194855 00000 n +0000195017 00000 n +0000195179 00000 n +0000195395 00000 n +0000194700 00000 n +0000192816 00000 n +0000195337 00000 n +0000198494 00000 n +0000198139 00000 n +0000195532 00000 n +0000198261 00000 n +0000199779 00000 n +0000199291 00000 n +0000199110 00000 n +0000198606 00000 n +0000199232 00000 n +0000232498 00000 n +0000199657 00000 n +0000199364 00000 n +0000232376 00000 n +0000232435 00000 n +0000231534 00000 n +0000234354 00000 n +0000234056 00000 n +0000232617 00000 n +0000234179 00000 n +0000391685 00000 n +0000235384 00000 n +0000256204 00000 n +0000235261 00000 n +0000234466 00000 n +0000256024 00000 n +0000256141 00000 n +0000255248 00000 n +0000258947 00000 n +0000258649 00000 n +0000256349 00000 n +0000258772 00000 n +0000261758 00000 n +0000261518 00000 n +0000259072 00000 n +0000261641 00000 n +0000263621 00000 n +0000263439 00000 n +0000261883 00000 n +0000263562 00000 n +0000265249 00000 n +0000264951 00000 n +0000263720 00000 n +0000265074 00000 n +0000267405 00000 n +0000266988 00000 n +0000265387 00000 n +0000267111 00000 n 0000267228 00000 n -0000391577 00000 n -0000269270 00000 n -0000268798 00000 n -0000267425 00000 n +0000267287 00000 n +0000267346 00000 n +0000391810 00000 n +0000269393 00000 n 0000268921 00000 n -0000272107 00000 n -0000271694 00000 n -0000269408 00000 n +0000267543 00000 n +0000269044 00000 n +0000272230 00000 n 0000271817 00000 n -0000273866 00000 n -0000273626 00000 n -0000272232 00000 n +0000269531 00000 n +0000271940 00000 n +0000273989 00000 n 0000273749 00000 n -0000276588 00000 n -0000276291 00000 n -0000273978 00000 n +0000272355 00000 n +0000273872 00000 n +0000276711 00000 n 0000276414 00000 n -0000277405 00000 n -0000277223 00000 n -0000276713 00000 n +0000274101 00000 n +0000276537 00000 n +0000277528 00000 n 0000277346 00000 n -0000279645 00000 n -0000279797 00000 n -0000279950 00000 n -0000280117 00000 n -0000280574 00000 n -0000279474 00000 n -0000277504 00000 n -0000280283 00000 n -0000391702 00000 n -0000283198 00000 n -0000282958 00000 n -0000280686 00000 n +0000276836 00000 n +0000277469 00000 n +0000279768 00000 n +0000279920 00000 n +0000280073 00000 n +0000280240 00000 n +0000280697 00000 n +0000279597 00000 n +0000277627 00000 n +0000280406 00000 n +0000391935 00000 n +0000283321 00000 n 0000283081 00000 n -0000284941 00000 n -0000284700 00000 n -0000283323 00000 n +0000280809 00000 n +0000283204 00000 n +0000285064 00000 n 0000284823 00000 n -0000284882 00000 n -0000285730 00000 n -0000285490 00000 n -0000285053 00000 n +0000283446 00000 n +0000284946 00000 n +0000285005 00000 n +0000285853 00000 n 0000285613 00000 n -0000287149 00000 n -0000288712 00000 n -0000288881 00000 n -0000289059 00000 n -0000289513 00000 n -0000286978 00000 n -0000285829 00000 n -0000289395 00000 n -0000289454 00000 n -0000289227 00000 n -0000288451 00000 n -0000288608 00000 n -0000288689 00000 n -0000290238 00000 n -0000290825 00000 n -0000290085 00000 n -0000289642 00000 n -0000290651 00000 n -0000290710 00000 n -0000290445 00000 n -0000290924 00000 n +0000285176 00000 n +0000285736 00000 n +0000287272 00000 n +0000288835 00000 n +0000289004 00000 n +0000289182 00000 n +0000289636 00000 n +0000287101 00000 n +0000285952 00000 n +0000289518 00000 n +0000289577 00000 n +0000289350 00000 n +0000288574 00000 n +0000288731 00000 n +0000288812 00000 n +0000290361 00000 n 0000290948 00000 n -0000291394 00000 n -0000291908 00000 n -0000291934 00000 n -0000291966 00000 n -0000292490 00000 n -0000293062 00000 n -0000293142 00000 n -0000293300 00000 n -0000293951 00000 n -0000294529 00000 n -0000294949 00000 n -0000295592 00000 n -0000296052 00000 n -0000296695 00000 n -0000298323 00000 n -0000298551 00000 n -0000301452 00000 n -0000301786 00000 n -0000307179 00000 n -0000307459 00000 n -0000309600 00000 n -0000309828 00000 n -0000325665 00000 n -0000326241 00000 n -0000331170 00000 n -0000331446 00000 n -0000334777 00000 n -0000335045 00000 n -0000337680 00000 n -0000337930 00000 n -0000349702 00000 n -0000350135 00000 n -0000352188 00000 n -0000352475 00000 n -0000353686 00000 n -0000353912 00000 n -0000355474 00000 n -0000355716 00000 n -0000365133 00000 n -0000365484 00000 n -0000373932 00000 n -0000374334 00000 n -0000387662 00000 n -0000391827 00000 n -0000391947 00000 n -0000392070 00000 n -0000392143 00000 n -0000401533 00000 n -0000401711 00000 n -0000401890 00000 n -0000402068 00000 n -0000402247 00000 n -0000402424 00000 n -0000402601 00000 n -0000402780 00000 n -0000402958 00000 n -0000403137 00000 n -0000403316 00000 n -0000403486 00000 n -0000403657 00000 n -0000403827 00000 n -0000403998 00000 n -0000404168 00000 n -0000404339 00000 n -0000404508 00000 n -0000404677 00000 n -0000404848 00000 n -0000405018 00000 n -0000405189 00000 n -0000405359 00000 n -0000405530 00000 n -0000405700 00000 n -0000405871 00000 n -0000406075 00000 n -0000406259 00000 n -0000406434 00000 n -0000406605 00000 n -0000406775 00000 n -0000406946 00000 n -0000407116 00000 n -0000407287 00000 n -0000407457 00000 n -0000407628 00000 n -0000407801 00000 n -0000407975 00000 n -0000408152 00000 n -0000408327 00000 n -0000408509 00000 n -0000408712 00000 n -0000408914 00000 n -0000409117 00000 n -0000409319 00000 n -0000409521 00000 n -0000409710 00000 n -0000409897 00000 n -0000410111 00000 n -0000410338 00000 n -0000410565 00000 n -0000410792 00000 n -0000411032 00000 n -0000411293 00000 n -0000411554 00000 n -0000411817 00000 n -0000412084 00000 n -0000412351 00000 n -0000412618 00000 n -0000412885 00000 n -0000413152 00000 n -0000413419 00000 n -0000413626 00000 n -0000413744 00000 n -0000413861 00000 n -0000413976 00000 n -0000414092 00000 n -0000414208 00000 n -0000414324 00000 n -0000414444 00000 n -0000414571 00000 n -0000414706 00000 n -0000414846 00000 n -0000414950 00000 n -0000415068 00000 n -0000415187 00000 n -0000415281 00000 n -0000415321 00000 n -0000415453 00000 n +0000290208 00000 n +0000289765 00000 n +0000290774 00000 n +0000290833 00000 n +0000290568 00000 n +0000291047 00000 n +0000291071 00000 n +0000291517 00000 n +0000292031 00000 n +0000292057 00000 n +0000292089 00000 n +0000292613 00000 n +0000293185 00000 n +0000293265 00000 n +0000293423 00000 n +0000294074 00000 n +0000294652 00000 n +0000295072 00000 n +0000295715 00000 n +0000296175 00000 n +0000296818 00000 n +0000298446 00000 n +0000298674 00000 n +0000301575 00000 n +0000301909 00000 n +0000307302 00000 n +0000307582 00000 n +0000309723 00000 n +0000309951 00000 n +0000325788 00000 n +0000326364 00000 n +0000331293 00000 n +0000331569 00000 n +0000334900 00000 n +0000335168 00000 n +0000337803 00000 n +0000338053 00000 n +0000349825 00000 n +0000350258 00000 n +0000352311 00000 n +0000352598 00000 n +0000353809 00000 n +0000354035 00000 n +0000355597 00000 n +0000355839 00000 n +0000365256 00000 n +0000365607 00000 n +0000374055 00000 n +0000374457 00000 n +0000387885 00000 n +0000392060 00000 n +0000392180 00000 n +0000392303 00000 n +0000392376 00000 n +0000401766 00000 n +0000401944 00000 n +0000402123 00000 n +0000402301 00000 n +0000402480 00000 n +0000402657 00000 n +0000402834 00000 n +0000403013 00000 n +0000403191 00000 n +0000403370 00000 n +0000403549 00000 n +0000403719 00000 n +0000403890 00000 n +0000404060 00000 n +0000404231 00000 n +0000404401 00000 n +0000404572 00000 n +0000404741 00000 n +0000404910 00000 n +0000405081 00000 n +0000405251 00000 n +0000405422 00000 n +0000405592 00000 n +0000405763 00000 n +0000405933 00000 n +0000406104 00000 n +0000406308 00000 n +0000406492 00000 n +0000406667 00000 n +0000406838 00000 n +0000407008 00000 n +0000407179 00000 n +0000407349 00000 n +0000407520 00000 n +0000407690 00000 n +0000407861 00000 n +0000408034 00000 n +0000408208 00000 n +0000408385 00000 n +0000408560 00000 n +0000408742 00000 n +0000408945 00000 n +0000409147 00000 n +0000409350 00000 n +0000409552 00000 n +0000409754 00000 n +0000409943 00000 n +0000410130 00000 n +0000410344 00000 n +0000410571 00000 n +0000410798 00000 n +0000411025 00000 n +0000411265 00000 n +0000411526 00000 n +0000411787 00000 n +0000412050 00000 n +0000412317 00000 n +0000412584 00000 n +0000412851 00000 n +0000413118 00000 n +0000413385 00000 n +0000413652 00000 n +0000413859 00000 n +0000413977 00000 n +0000414094 00000 n +0000414209 00000 n +0000414325 00000 n +0000414441 00000 n +0000414557 00000 n +0000414677 00000 n +0000414804 00000 n +0000414939 00000 n +0000415079 00000 n +0000415183 00000 n +0000415301 00000 n +0000415420 00000 n +0000415514 00000 n +0000415554 00000 n +0000415686 00000 n trailer << /Size 1242 /Root 1240 0 R /Info 1241 0 R -/ID [<4B97DC725747E361C8C5FAEA2892B227> <4B97DC725747E361C8C5FAEA2892B227>] >> +/ID [ ] >> startxref -415785 +416018 %%EOF -- 2.7.4