ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- Simple.pm000044400000305420152345536550006352 0ustar00package XML::Simple; $XML::Simple::VERSION = '2.25'; =head1 NAME XML::Simple - An API for simple XML files =head1 SYNOPSIS PLEASE DO NOT USE THIS MODULE IN NEW CODE. If you ignore this warning and use it anyway, the C mode will save you a little pain. use XML::Simple qw(:strict); my $ref = XMLin([] [, ]); my $xml = XMLout($hashref [, ]); Or the object oriented way: require XML::Simple qw(:strict); my $xs = XML::Simple->new([]); my $ref = $xs->XMLin([] [, ]); my $xml = $xs->XMLout($hashref [, ]); (or see L<"SAX SUPPORT"> for 'the SAX way'). Note, in these examples, the square brackets are used to denote optional items not to imply items should be supplied in arrayrefs. =cut # See after __END__ for more POD documentation # Load essentials here, other modules loaded on demand later use strict; use warnings; use warnings::register; use Carp; use Scalar::Util qw(); require Exporter; ############################################################################## # Define some constants # use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $PREFERRED_PARSER); @ISA = qw(Exporter); @EXPORT = qw(XMLin XMLout); @EXPORT_OK = qw(xml_in xml_out); my %StrictMode = (); my @KnownOptIn = qw(keyattr keeproot forcecontent contentkey noattr searchpath forcearray cache suppressempty parseropts grouptags nsexpand datahandler varattr variables normalisespace normalizespace valueattr strictmode); my @KnownOptOut = qw(keyattr keeproot contentkey noattr rootname xmldecl outputfile noescape suppressempty grouptags nsexpand handler noindent attrindent nosort valueattr numericescape strictmode); my @DefKeyAttr = qw(name key id); my $DefRootName = qq(opt); my $DefContentKey = qq(content); my $DefXmlDecl = qq(); my $xmlns_ns = 'http://www.w3.org/2000/xmlns/'; my $bad_def_ns_jcn = '{' . $xmlns_ns . '}'; # LibXML::SAX workaround ############################################################################## # Globals for use by caching routines # my %MemShareCache = (); my %MemCopyCache = (); ############################################################################## # Wrapper for Exporter - handles ':strict' # sub import { # Handle the :strict tag my($calling_package) = caller(); _strict_mode_for_caller(1) if grep(/^:strict$/, @_); # Pass everything else to Exporter.pm @_ = grep(!/^:strict$/, @_); goto &Exporter::import; } ############################################################################## # Constructor for optional object interface. # sub new { my $class = shift; if(@_ % 2) { croak "Default options must be name=>value pairs (odd number supplied)"; } my %known_opt; @known_opt{@KnownOptIn, @KnownOptOut} = (); my %raw_opt = @_; $raw_opt{strictmode} = _strict_mode_for_caller() unless exists $raw_opt{strictmode}; my %def_opt; while(my($key, $val) = each %raw_opt) { my $lkey = lc($key); $lkey =~ s/_//g; croak "Unrecognised option: $key" unless(exists($known_opt{$lkey})); $def_opt{$lkey} = $val; } my $self = { def_opt => \%def_opt }; return(bless($self, $class)); } ############################################################################## # Sub: _strict_mode_for_caller() # # Gets or sets the XML::Simple :strict mode flag for the calling namespace. # Walks back through call stack to find the calling namespace and sets the # :strict mode flag for that namespace if an argument was supplied and returns # the flag value if not. # sub _strict_mode_for_caller { my $set_mode = @_; my $frame = 1; while(my($package) = caller($frame++)) { next if $package eq 'XML::Simple'; $StrictMode{$package} = 1 if $set_mode; return $StrictMode{$package}; } return(0); } ############################################################################## # Sub: _get_object() # # Helper routine called from XMLin() and XMLout() to create an object if none # was provided. Note, this routine does mess with the caller's @_ array. # sub _get_object { my $self; if($_[0] and UNIVERSAL::isa($_[0], 'XML::Simple')) { $self = shift; } else { $self = XML::Simple->new(); } return $self; } ############################################################################## # Sub/Method: XMLin() # # Exported routine for slurping XML into a hashref - see pod for info. # # May be called as object method or as a plain function. # # Expects one arg for the source XML, optionally followed by a number of # name => value option pairs. # sub XMLin { my $self = &_get_object; # note, @_ is passed implicitly my $target = shift; # Work out whether to parse a string, a file or a filehandle if(not defined $target) { return $self->parse_file(undef, @_); } elsif($target eq '-') { local($/) = undef; $target = ; return $self->parse_string(\$target, @_); } elsif(my $type = ref($target)) { if($type eq 'SCALAR') { return $self->parse_string($target, @_); } else { return $self->parse_fh($target, @_); } } elsif($target =~ m{<.*?>}s) { return $self->parse_string(\$target, @_); } else { return $self->parse_file($target, @_); } } ############################################################################## # Sub/Method: parse_file() # # Same as XMLin, but only parses from a named file. # sub parse_file { my $self = &_get_object; # note, @_ is passed implicitly my $filename = shift; $self->handle_options('in', @_); $filename = $self->default_config_file if not defined $filename; $filename = $self->find_xml_file($filename, @{$self->{opt}->{searchpath}}); # Check cache for previous parse if($self->{opt}->{cache}) { foreach my $scheme (@{$self->{opt}->{cache}}) { my $method = 'cache_read_' . $scheme; my $opt = $self->$method($filename); return($opt) if($opt); } } my $ref = $self->build_simple_tree($filename, undef); if($self->{opt}->{cache}) { my $method = 'cache_write_' . $self->{opt}->{cache}->[0]; $self->$method($ref, $filename); } return $ref; } ############################################################################## # Sub/Method: parse_fh() # # Same as XMLin, but only parses from a filehandle. # sub parse_fh { my $self = &_get_object; # note, @_ is passed implicitly my $fh = shift; croak "Can't use " . (defined $fh ? qq{string ("$fh")} : 'undef') . " as a filehandle" unless ref $fh; $self->handle_options('in', @_); return $self->build_simple_tree(undef, $fh); } ############################################################################## # Sub/Method: parse_string() # # Same as XMLin, but only parses from a string or a reference to a string. # sub parse_string { my $self = &_get_object; # note, @_ is passed implicitly my $string = shift; $self->handle_options('in', @_); return $self->build_simple_tree(undef, ref $string ? $string : \$string); } ############################################################################## # Method: default_config_file() # # Returns the name of the XML file to parse if no filename (or XML string) # was provided. # sub default_config_file { my $self = shift; require File::Basename; my($basename, $script_dir, $ext) = File::Basename::fileparse($0, '\.[^\.]+'); # Add script directory to searchpath if($script_dir) { unshift(@{$self->{opt}->{searchpath}}, $script_dir); } return $basename . '.xml'; } ############################################################################## # Method: build_simple_tree() # # Builds a 'tree' data structure as provided by XML::Parser and then # 'simplifies' it as specified by the various options in effect. # sub build_simple_tree { my $self = shift; my $tree = eval { $self->build_tree(@_); }; Carp::croak("$@XML::Simple called") if $@; return $self->{opt}->{keeproot} ? $self->collapse({}, @$tree) : $self->collapse(@{$tree->[1]}); } ############################################################################## # Method: build_tree() # # This routine will be called if there is no suitable pre-parsed tree in a # cache. It parses the XML and returns an XML::Parser 'Tree' style data # structure (summarised in the comments for the collapse() routine below). # # XML::Simple requires the services of another module that knows how to parse # XML. If XML::SAX is installed, the default SAX parser will be used, # otherwise XML::Parser will be used. # # This routine expects to be passed a filename as argument 1 or a 'string' as # argument 2. The 'string' might be a string of XML (passed by reference to # save memory) or it might be a reference to an IO::Handle. (This # non-intuitive mess results in part from the way XML::Parser works but that's # really no excuse). # sub build_tree { my $self = shift; my $filename = shift; my $string = shift; my $preferred_parser = $PREFERRED_PARSER; unless(defined($preferred_parser)) { $preferred_parser = $ENV{XML_SIMPLE_PREFERRED_PARSER} || ''; } if($preferred_parser eq 'XML::Parser') { return($self->build_tree_xml_parser($filename, $string)); } eval { require XML::SAX; }; # We didn't need it until now if($@) { # No XML::SAX - fall back to XML::Parser if($preferred_parser) { # unless a SAX parser was expressly requested croak "XMLin() could not load XML::SAX"; } return($self->build_tree_xml_parser($filename, $string)); } $XML::SAX::ParserPackage = $preferred_parser if($preferred_parser); my $sp = XML::SAX::ParserFactory->parser(Handler => $self); $self->{nocollapse} = 1; my($tree); if($filename) { $tree = $sp->parse_uri($filename); } else { if(ref($string) && ref($string) ne 'SCALAR') { $tree = $sp->parse_file($string); } else { $tree = $sp->parse_string($$string); } } return($tree); } ############################################################################## # Method: build_tree_xml_parser() # # This routine will be called if XML::SAX is not installed, or if XML::Parser # was specifically requested. It takes the same arguments as build_tree() and # returns the same data structure (XML::Parser 'Tree' style). # sub build_tree_xml_parser { my $self = shift; my $filename = shift; my $string = shift; eval { local($^W) = 0; # Suppress warning from Expat.pm re File::Spec::load() require XML::Parser; # We didn't need it until now }; if($@) { croak "XMLin() requires either XML::SAX or XML::Parser"; } if($self->{opt}->{nsexpand}) { carp "'nsexpand' option requires XML::SAX"; } my $xp = $self->new_xml_parser(); my($tree); if($filename) { # $tree = $xp->parsefile($filename); # Changed due to prob w/mod_perl open(my $xfh, '<', $filename) || croak qq($filename - $!); $tree = $xp->parse($xfh); } else { $tree = $xp->parse($$string); } return($tree); } ############################################################################## # Method: new_xml_parser() # # Simply calls the XML::Parser constructor. Override this method to customise # the behaviour of the parser. # sub new_xml_parser { my($self) = @_; my $xp = XML::Parser->new(Style => 'Tree', @{$self->{opt}->{parseropts}}); $xp->setHandlers(ExternEnt => sub {return $_[2]}); return $xp; } ############################################################################## # Method: cache_write_storable() # # Wrapper routine for invoking Storable::nstore() to cache a parsed data # structure. # sub cache_write_storable { my($self, $data, $filename) = @_; my $cachefile = $self->storable_filename($filename); require Storable; # We didn't need it until now if ('VMS' eq $^O) { Storable::nstore($data, $cachefile); } else { # If the following line fails for you, your Storable.pm is old - upgrade Storable::lock_nstore($data, $cachefile); } } ############################################################################## # Method: cache_read_storable() # # Wrapper routine for invoking Storable::retrieve() to read a cached parsed # data structure. Only returns cached data if the cache file exists and is # newer than the source XML file. # sub cache_read_storable { my($self, $filename) = @_; my $cachefile = $self->storable_filename($filename); return unless(-r $cachefile); return unless((stat($cachefile))[9] > (stat($filename))[9]); require Storable; # We didn't need it until now if ('VMS' eq $^O) { return(Storable::retrieve($cachefile)); } else { return(Storable::lock_retrieve($cachefile)); } } ############################################################################## # Method: storable_filename() # # Translates the supplied source XML filename into a filename for the storable # cached data. A '.stor' suffix is added after stripping an optional '.xml' # suffix. # sub storable_filename { my($self, $cachefile) = @_; $cachefile =~ s{(\.xml)?$}{.stor}; return $cachefile; } ############################################################################## # Method: cache_write_memshare() # # Takes the supplied data structure reference and stores it away in a global # hash structure. # sub cache_write_memshare { my($self, $data, $filename) = @_; $MemShareCache{$filename} = [time(), $data]; } ############################################################################## # Method: cache_read_memshare() # # Takes a filename and looks in a global hash for a cached parsed version. # sub cache_read_memshare { my($self, $filename) = @_; return unless($MemShareCache{$filename}); return unless($MemShareCache{$filename}->[0] > (stat($filename))[9]); return($MemShareCache{$filename}->[1]); } ############################################################################## # Method: cache_write_memcopy() # # Takes the supplied data structure and stores a copy of it in a global hash # structure. # sub cache_write_memcopy { my($self, $data, $filename) = @_; require Storable; # We didn't need it until now $MemCopyCache{$filename} = [time(), Storable::dclone($data)]; } ############################################################################## # Method: cache_read_memcopy() # # Takes a filename and looks in a global hash for a cached parsed version. # Returns a reference to a copy of that data structure. # sub cache_read_memcopy { my($self, $filename) = @_; return unless($MemCopyCache{$filename}); return unless($MemCopyCache{$filename}->[0] > (stat($filename))[9]); return(Storable::dclone($MemCopyCache{$filename}->[1])); } ############################################################################## # Sub/Method: XMLout() # # Exported routine for 'unslurping' a data structure out to XML. # # Expects a reference to a data structure and an optional list of option # name => value pairs. # sub XMLout { my $self = &_get_object; # note, @_ is passed implicitly croak "XMLout() requires at least one argument" unless(@_); my $ref = shift; $self->handle_options('out', @_); # If namespace expansion is set, XML::NamespaceSupport is required if($self->{opt}->{nsexpand}) { require XML::NamespaceSupport; $self->{nsup} = XML::NamespaceSupport->new(); $self->{ns_prefix} = 'aaa'; } # Wrap top level arrayref in a hash if(UNIVERSAL::isa($ref, 'ARRAY')) { $ref = { anon => $ref }; } # Extract rootname from top level hash if keeproot enabled if($self->{opt}->{keeproot}) { my(@keys) = keys(%$ref); if(@keys == 1) { $ref = $ref->{$keys[0]}; $self->{opt}->{rootname} = $keys[0]; } } # Ensure there are no top level attributes if we're not adding root elements elsif($self->{opt}->{rootname} eq '') { if(UNIVERSAL::isa($ref, 'HASH')) { my $refsave = $ref; $ref = {}; foreach (keys(%$refsave)) { if(ref($refsave->{$_})) { $ref->{$_} = $refsave->{$_}; } else { $ref->{$_} = [ $refsave->{$_} ]; } } } } # Encode the hashref and write to file if necessary $self->{_ancestors} = {}; my $xml = $self->value_to_xml($ref, $self->{opt}->{rootname}, ''); delete $self->{_ancestors}; if($self->{opt}->{xmldecl}) { $xml = $self->{opt}->{xmldecl} . "\n" . $xml; } if($self->{opt}->{outputfile}) { if(ref($self->{opt}->{outputfile})) { my $fh = $self->{opt}->{outputfile}; if(UNIVERSAL::isa($fh, 'GLOB') and !UNIVERSAL::can($fh, 'print')) { eval { require IO::Handle; }; croak $@ if $@; } return($fh->print($xml)); } else { open(my $out, '>', "$self->{opt}->{outputfile}") || croak "open($self->{opt}->{outputfile}): $!"; binmode($out, ':utf8') if($] >= 5.008); print $out $xml or croak "print: $!"; close $out or croak "close: $!"; } } elsif($self->{opt}->{handler}) { require XML::SAX; my $sp = XML::SAX::ParserFactory->parser( Handler => $self->{opt}->{handler} ); return($sp->parse_string($xml)); } else { return($xml); } } ############################################################################## # Method: handle_options() # # Helper routine for both XMLin() and XMLout(). Both routines handle their # first argument and assume all other args are options handled by this routine. # Saves a hash of options in $self->{opt}. # # If default options were passed to the constructor, they will be retrieved # here and merged with options supplied to the method call. # # First argument should be the string 'in' or the string 'out'. # # Remaining arguments should be name=>value pairs. Sets up default values # for options not supplied. Unrecognised options are a fatal error. # sub handle_options { my $self = shift; my $dirn = shift; # Determine valid options based on context my %known_opt; if($dirn eq 'in') { @known_opt{@KnownOptIn} = @KnownOptIn; } else { @known_opt{@KnownOptOut} = @KnownOptOut; } # Store supplied options in hashref and weed out invalid ones if(@_ % 2) { croak "Options must be name=>value pairs (odd number supplied)"; } my %raw_opt = @_; my $opt = {}; $self->{opt} = $opt; while(my($key, $val) = each %raw_opt) { my $lkey = lc($key); $lkey =~ s/_//g; croak "Unrecognised option: $key" unless($known_opt{$lkey}); $opt->{$lkey} = $val; } # Merge in options passed to constructor foreach (keys(%known_opt)) { unless(exists($opt->{$_})) { if(exists($self->{def_opt}->{$_})) { $opt->{$_} = $self->{def_opt}->{$_}; } } } # Set sensible defaults if not supplied if(exists($opt->{rootname})) { unless(defined($opt->{rootname})) { $opt->{rootname} = ''; } } else { $opt->{rootname} = $DefRootName; } if($opt->{xmldecl} and $opt->{xmldecl} eq '1') { $opt->{xmldecl} = $DefXmlDecl; } if(exists($opt->{contentkey})) { if($opt->{contentkey} =~ m{^-(.*)$}) { $opt->{contentkey} = $1; $opt->{collapseagain} = 1; } } else { $opt->{contentkey} = $DefContentKey; } unless(exists($opt->{normalisespace})) { $opt->{normalisespace} = $opt->{normalizespace}; } $opt->{normalisespace} = 0 unless(defined($opt->{normalisespace})); # Cleanups for values assumed to be arrays later if($opt->{searchpath}) { unless(ref($opt->{searchpath})) { $opt->{searchpath} = [ $opt->{searchpath} ]; } } else { $opt->{searchpath} = [ ]; } if($opt->{cache} and !ref($opt->{cache})) { $opt->{cache} = [ $opt->{cache} ]; } if($opt->{cache}) { $_ = lc($_) foreach (@{$opt->{cache}}); foreach my $scheme (@{$opt->{cache}}) { my $method = 'cache_read_' . $scheme; croak "Unsupported caching scheme: $scheme" unless($self->can($method)); } } if(exists($opt->{parseropts})) { if(warnings::enabled()) { carp "Warning: " . "'ParserOpts' is deprecated, contact the author if you need it"; } } else { $opt->{parseropts} = [ ]; } # Special cleanup for {forcearray} which could be regex, arrayref or boolean # or left to default to 0 if(exists($opt->{forcearray})) { if(ref($opt->{forcearray}) eq 'Regexp') { $opt->{forcearray} = [ $opt->{forcearray} ]; } if(ref($opt->{forcearray}) eq 'ARRAY') { my @force_list = @{$opt->{forcearray}}; if(@force_list) { $opt->{forcearray} = {}; foreach my $tag (@force_list) { if(ref($tag) eq 'Regexp') { push @{$opt->{forcearray}->{_regex}}, $tag; } else { $opt->{forcearray}->{$tag} = 1; } } } else { $opt->{forcearray} = 0; } } else { $opt->{forcearray} = ( $opt->{forcearray} ? 1 : 0 ); } } else { if($opt->{strictmode} and $dirn eq 'in') { croak "No value specified for 'ForceArray' option in call to XML$dirn()"; } $opt->{forcearray} = 0; } # Special cleanup for {keyattr} which could be arrayref or hashref or left # to default to arrayref if(exists($opt->{keyattr})) { if(ref($opt->{keyattr})) { if(ref($opt->{keyattr}) eq 'HASH') { # Make a copy so we can mess with it $opt->{keyattr} = { %{$opt->{keyattr}} }; # Convert keyattr => { elem => '+attr' } # to keyattr => { elem => [ 'attr', '+' ] } foreach my $el (keys(%{$opt->{keyattr}})) { if($opt->{keyattr}->{$el} =~ /^(\+|-)?(.*)$/) { $opt->{keyattr}->{$el} = [ $2, ($1 ? $1 : '') ]; if($opt->{strictmode} and $dirn eq 'in') { next if($opt->{forcearray} == 1); next if(ref($opt->{forcearray}) eq 'HASH' and $opt->{forcearray}->{$el}); croak "<$el> set in KeyAttr but not in ForceArray"; } } else { delete($opt->{keyattr}->{$el}); # Never reached (famous last words?) } } } else { if(@{$opt->{keyattr}} == 0) { delete($opt->{keyattr}); } } } else { $opt->{keyattr} = [ $opt->{keyattr} ]; } } else { if($opt->{strictmode}) { croak "No value specified for 'KeyAttr' option in call to XML$dirn()"; } $opt->{keyattr} = [ @DefKeyAttr ]; } # Special cleanup for {valueattr} which could be arrayref or hashref if(exists($opt->{valueattr})) { if(ref($opt->{valueattr}) eq 'ARRAY') { $opt->{valueattrlist} = {}; $opt->{valueattrlist}->{$_} = 1 foreach(@{ delete $opt->{valueattr} }); } } # make sure there's nothing weird in {grouptags} if($opt->{grouptags}) { croak "Illegal value for 'GroupTags' option - expected a hashref" unless UNIVERSAL::isa($opt->{grouptags}, 'HASH'); while(my($key, $val) = each %{$opt->{grouptags}}) { next if $key ne $val; croak "Bad value in GroupTags: '$key' => '$val'"; } } # Check the {variables} option is valid and initialise variables hash if($opt->{variables} and !UNIVERSAL::isa($opt->{variables}, 'HASH')) { croak "Illegal value for 'Variables' option - expected a hashref"; } if($opt->{variables}) { $self->{_var_values} = { %{$opt->{variables}} }; } elsif($opt->{varattr}) { $self->{_var_values} = {}; } } ############################################################################## # Method: find_xml_file() # # Helper routine for XMLin(). # Takes a filename, and a list of directories, attempts to locate the file in # the directories listed. # Returns a full pathname on success; croaks on failure. # sub find_xml_file { my $self = shift; my $file = shift; my @search_path = @_; require File::Basename; require File::Spec; my($filename, $filedir) = File::Basename::fileparse($file); if($filename ne $file) { # Ignore searchpath if dir component return($file) if(-e $file); } else { my($path); foreach $path (@search_path) { my $fullpath = File::Spec->catfile($path, $file); return($fullpath) if(-e $fullpath); } } # If user did not supply a search path, default to current directory if(!@search_path) { return($file) if(-e $file); croak "File does not exist: $file"; } croak "Could not find $file in ", join(':', @search_path); } ############################################################################## # Method: collapse() # # Helper routine for XMLin(). This routine really comprises the 'smarts' (or # value add) of this module. # # Takes the parse tree that XML::Parser produced from the supplied XML and # recurses through it 'collapsing' unnecessary levels of indirection (nested # arrays etc) to produce a data structure that is easier to work with. # # Elements in the original parser tree are represented as an element name # followed by an arrayref. The first element of the array is a hashref # containing the attributes. The rest of the array contains a list of any # nested elements as name+arrayref pairs: # # , [ { }, , [ ... ], ... ] # # The special element name '0' (zero) flags text content. # # This routine cuts down the noise by discarding any text content consisting of # only whitespace and then moves the nested elements into the attribute hash # using the name of the nested element as the hash key and the collapsed # version of the nested element as the value. Multiple nested elements with # the same name will initially be represented as an arrayref, but this may be # 'folded' into a hashref depending on the value of the keyattr option. # sub collapse { my $self = shift; # Start with the hash of attributes my $attr = shift; if($self->{opt}->{noattr}) { # Discard if 'noattr' set $attr = $self->new_hashref; } elsif($self->{opt}->{normalisespace} == 2) { while(my($key, $value) = each %$attr) { $attr->{$key} = $self->normalise_space($value) } } # Do variable substitutions if(my $var = $self->{_var_values}) { while(my($key, $val) = each(%$attr)) { $val =~ s^\$\{([\w.]+)\}^ $self->get_var($1) ^ge; $attr->{$key} = $val; } } # Roll up 'value' attributes (but only if no nested elements) if(!@_ and keys %$attr == 1) { my($k) = keys %$attr; if($self->{opt}->{valueattrlist} and $self->{opt}->{valueattrlist}->{$k}) { return $attr->{$k}; } } # Add any nested elements my($key, $val); while(@_) { $key = shift; $val = shift; $val = '' if not defined $val; if(ref($val)) { $val = $self->collapse(@$val); next if(!defined($val) and $self->{opt}->{suppressempty}); } elsif($key eq '0') { next if($val =~ m{^\s*$}s); # Skip all whitespace content $val = $self->normalise_space($val) if($self->{opt}->{normalisespace} == 2); # do variable substitutions if(my $var = $self->{_var_values}) { $val =~ s^\$\{(\w+)\}^ $self->get_var($1) ^ge; } # look for variable definitions if(my $var = $self->{opt}->{varattr}) { if(exists $attr->{$var}) { $self->set_var($attr->{$var}, $val); } } # Collapse text content in element with no attributes to a string if(!%$attr and !@_) { return($self->{opt}->{forcecontent} ? { $self->{opt}->{contentkey} => $val } : $val ); } $key = $self->{opt}->{contentkey}; } # Combine duplicate attributes into arrayref if required if(exists($attr->{$key})) { if(UNIVERSAL::isa($attr->{$key}, 'ARRAY')) { push(@{$attr->{$key}}, $val); } else { $attr->{$key} = [ $attr->{$key}, $val ]; } } elsif(defined($val) and UNIVERSAL::isa($val, 'ARRAY')) { $attr->{$key} = [ $val ]; } else { if( $key ne $self->{opt}->{contentkey} and ( ($self->{opt}->{forcearray} == 1) or ( (ref($self->{opt}->{forcearray}) eq 'HASH') and ( $self->{opt}->{forcearray}->{$key} or (grep $key =~ $_, @{$self->{opt}->{forcearray}->{_regex}}) ) ) ) ) { $attr->{$key} = [ $val ]; } else { $attr->{$key} = $val; } } } # Turn arrayrefs into hashrefs if key fields present if($self->{opt}->{keyattr}) { while(($key,$val) = each %$attr) { if(defined($val) and UNIVERSAL::isa($val, 'ARRAY')) { $attr->{$key} = $self->array_to_hash($key, $val); } } } # disintermediate grouped tags if($self->{opt}->{grouptags}) { while(my($key, $val) = each(%$attr)) { next unless(UNIVERSAL::isa($val, 'HASH') and (keys %$val == 1)); next unless(exists($self->{opt}->{grouptags}->{$key})); my($child_key, $child_val) = %$val; if($self->{opt}->{grouptags}->{$key} eq $child_key) { $attr->{$key}= $child_val; } } } # Fold hashes containing a single anonymous array up into just the array my $count = scalar keys %$attr; if($count == 1 and exists $attr->{anon} and UNIVERSAL::isa($attr->{anon}, 'ARRAY') ) { return($attr->{anon}); } # Do the right thing if hash is empty, otherwise just return it if(!%$attr and exists($self->{opt}->{suppressempty})) { if(defined($self->{opt}->{suppressempty}) and $self->{opt}->{suppressempty} eq '') { return(''); } return(undef); } # Roll up named elements with named nested 'value' attributes if($self->{opt}->{valueattr}) { while(my($key, $val) = each(%$attr)) { next unless($self->{opt}->{valueattr}->{$key}); next unless(UNIVERSAL::isa($val, 'HASH') and (keys %$val == 1)); my($k) = keys %$val; next unless($k eq $self->{opt}->{valueattr}->{$key}); $attr->{$key} = $val->{$k}; } } return($attr) } ############################################################################## # Method: set_var() # # Called when a variable definition is encountered in the XML. (A variable # definition looks like value where attrname # matches the varattr setting). # sub set_var { my($self, $name, $value) = @_; $self->{_var_values}->{$name} = $value; } ############################################################################## # Method: get_var() # # Called during variable substitution to get the value for the named variable. # sub get_var { my($self, $name) = @_; my $value = $self->{_var_values}->{$name}; return $value if(defined($value)); return '${' . $name . '}'; } ############################################################################## # Method: normalise_space() # # Strips leading and trailing whitespace and collapses sequences of whitespace # characters to a single space. # sub normalise_space { my($self, $text) = @_; $text =~ s/^\s+//s; $text =~ s/\s+$//s; $text =~ s/\s\s+/ /sg; return $text; } ############################################################################## # Method: array_to_hash() # # Helper routine for collapse(). # Attempts to 'fold' an array of hashes into an hash of hashes. Returns a # reference to the hash on success or the original array if folding is # not possible. Behaviour is controlled by 'keyattr' option. # sub array_to_hash { my $self = shift; my $name = shift; my $arrayref = shift; my $hashref = $self->new_hashref; my($i, $key, $val, $flag); # Handle keyattr => { .... } if(ref($self->{opt}->{keyattr}) eq 'HASH') { return($arrayref) unless(exists($self->{opt}->{keyattr}->{$name})); ($key, $flag) = @{$self->{opt}->{keyattr}->{$name}}; for($i = 0; $i < @$arrayref; $i++) { if(UNIVERSAL::isa($arrayref->[$i], 'HASH') and exists($arrayref->[$i]->{$key}) ) { $val = $arrayref->[$i]->{$key}; if(ref($val)) { $self->die_or_warn("<$name> element has non-scalar '$key' key attribute"); return($arrayref); } $val = $self->normalise_space($val) if($self->{opt}->{normalisespace} == 1); $self->die_or_warn("<$name> element has non-unique value in '$key' key attribute: $val") if(exists($hashref->{$val})); $hashref->{$val} = $self->new_hashref( %{$arrayref->[$i]} ); $hashref->{$val}->{"-$key"} = $hashref->{$val}->{$key} if($flag eq '-'); delete $hashref->{$val}->{$key} unless($flag eq '+'); } else { $self->die_or_warn("<$name> element has no '$key' key attribute"); return($arrayref); } } } # Or assume keyattr => [ .... ] else { my $default_keys = join(',', @DefKeyAttr) eq join(',', @{$self->{opt}->{keyattr}}); ELEMENT: for($i = 0; $i < @$arrayref; $i++) { return($arrayref) unless(UNIVERSAL::isa($arrayref->[$i], 'HASH')); foreach $key (@{$self->{opt}->{keyattr}}) { if(defined($arrayref->[$i]->{$key})) { $val = $arrayref->[$i]->{$key}; if(ref($val)) { $self->die_or_warn("<$name> element has non-scalar '$key' key attribute") if not $default_keys; return($arrayref); } $val = $self->normalise_space($val) if($self->{opt}->{normalisespace} == 1); $self->die_or_warn("<$name> element has non-unique value in '$key' key attribute: $val") if(exists($hashref->{$val})); $hashref->{$val} = $self->new_hashref( %{$arrayref->[$i]} ); delete $hashref->{$val}->{$key}; next ELEMENT; } } return($arrayref); # No keyfield matched } } # collapse any hashes which now only have a 'content' key if($self->{opt}->{collapseagain}) { $hashref = $self->collapse_content($hashref); } return($hashref); } ############################################################################## # Method: die_or_warn() # # Takes a diagnostic message and does one of three things: # 1. dies if strict mode is enabled # 2. warns if warnings are enabled but strict mode is not # 3. ignores message and returns silently if neither strict mode nor warnings # are enabled # sub die_or_warn { my $self = shift; my $msg = shift; croak $msg if($self->{opt}->{strictmode}); if(warnings::enabled()) { carp "Warning: $msg"; } } ############################################################################## # Method: new_hashref() # # This is a hook routine for overriding in a sub-class. Some people believe # that using Tie::IxHash here will solve order-loss problems. # sub new_hashref { my $self = shift; return { @_ }; } ############################################################################## # Method: collapse_content() # # Helper routine for array_to_hash # # Arguments expected are: # - an XML::Simple object # - a hashref # the hashref is a former array, turned into a hash by array_to_hash because # of the presence of key attributes # at this point collapse_content avoids over-complicated structures like # dir => { libexecdir => { content => '$exec_prefix/libexec' }, # localstatedir => { content => '$prefix' }, # } # into # dir => { libexecdir => '$exec_prefix/libexec', # localstatedir => '$prefix', # } sub collapse_content { my $self = shift; my $hashref = shift; my $contentkey = $self->{opt}->{contentkey}; # first go through the values,checking that they are fit to collapse foreach my $val (values %$hashref) { return $hashref unless ( (ref($val) eq 'HASH') and (keys %$val == 1) and (exists $val->{$contentkey}) ); } # now collapse them foreach my $key (keys %$hashref) { $hashref->{$key}= $hashref->{$key}->{$contentkey}; } return $hashref; } ############################################################################## # Method: value_to_xml() # # Helper routine for XMLout() - recurses through a data structure building up # and returning an XML representation of that structure as a string. # # Arguments expected are: # - the data structure to be encoded (usually a reference) # - the XML tag name to use for this item # - a string of spaces for use as the current indent level # sub value_to_xml { my $self = shift;; # Grab the other arguments my($ref, $name, $indent) = @_; my $named = (defined($name) and $name ne '' ? 1 : 0); my $nl = "\n"; my $is_root = $indent eq '' ? 1 : 0; # Warning, dirty hack! if($self->{opt}->{noindent}) { $indent = ''; $nl = ''; } # Convert to XML my $refaddr = Scalar::Util::refaddr($ref); if($refaddr) { croak "circular data structures not supported" if $self->{_ancestors}->{$refaddr}; $self->{_ancestors}->{$refaddr} = $ref; # keep ref alive until we delete it } else { if($named) { return(join('', $indent, '<', $name, '>', ($self->{opt}->{noescape} ? $ref : $self->escape_value($ref)), '", $nl )); } else { return("$ref$nl"); } } # Unfold hash to array if possible if(UNIVERSAL::isa($ref, 'HASH') # It is a hash and keys %$ref # and it's not empty and $self->{opt}->{keyattr} # and folding is enabled and !$is_root # and its not the root element ) { $ref = $self->hash_to_array($name, $ref); } my @result = (); my($key, $value); # Handle hashrefs if(UNIVERSAL::isa($ref, 'HASH')) { # Reintermediate grouped values if applicable if($self->{opt}->{grouptags}) { $ref = $self->copy_hash($ref); while(my($key, $val) = each %$ref) { if($self->{opt}->{grouptags}->{$key}) { $ref->{$key} = $self->new_hashref( $self->{opt}->{grouptags}->{$key} => $val ); } } } # Scan for namespace declaration attributes my $nsdecls = ''; my $default_ns_uri; if($self->{nsup}) { $ref = $self->copy_hash($ref); $self->{nsup}->push_context(); # Look for default namespace declaration first if(exists($ref->{xmlns})) { $self->{nsup}->declare_prefix('', $ref->{xmlns}); $nsdecls .= qq( xmlns="$ref->{xmlns}"); delete($ref->{xmlns}); } $default_ns_uri = $self->{nsup}->get_uri(''); # Then check all the other keys foreach my $qname (keys(%$ref)) { my($uri, $lname) = $self->{nsup}->parse_jclark_notation($qname); if($uri) { if($uri eq $xmlns_ns) { $self->{nsup}->declare_prefix($lname, $ref->{$qname}); $nsdecls .= qq( xmlns:$lname="$ref->{$qname}"); delete($ref->{$qname}); } } } # Translate any remaining Clarkian names foreach my $qname (keys(%$ref)) { my($uri, $lname) = $self->{nsup}->parse_jclark_notation($qname); if($uri) { if($default_ns_uri and $uri eq $default_ns_uri) { $ref->{$lname} = $ref->{$qname}; delete($ref->{$qname}); } else { my $prefix = $self->{nsup}->get_prefix($uri); unless($prefix) { # $self->{nsup}->declare_prefix(undef, $uri); # $prefix = $self->{nsup}->get_prefix($uri); $prefix = $self->{ns_prefix}++; $self->{nsup}->declare_prefix($prefix, $uri); $nsdecls .= qq( xmlns:$prefix="$uri"); } $ref->{"$prefix:$lname"} = $ref->{$qname}; delete($ref->{$qname}); } } } } my @nested = (); my $text_content = undef; if($named) { push @result, $indent, '<', $name, $nsdecls; } if(keys %$ref) { my $first_arg = 1; foreach my $key ($self->sorted_keys($name, $ref)) { my $value = $ref->{$key}; next if(substr($key, 0, 1) eq '-'); if(!defined($value)) { next if $self->{opt}->{suppressempty}; unless(exists($self->{opt}->{suppressempty}) and !defined($self->{opt}->{suppressempty}) ) { carp 'Use of uninitialized value' if warnings::enabled(); } if($key eq $self->{opt}->{contentkey}) { $text_content = ''; } else { $value = exists($self->{opt}->{suppressempty}) ? {} : ''; } } if(!ref($value) and $self->{opt}->{valueattr} and $self->{opt}->{valueattr}->{$key} ) { $value = $self->new_hashref( $self->{opt}->{valueattr}->{$key} => $value ); } if(ref($value) or $self->{opt}->{noattr}) { push @nested, $self->value_to_xml($value, $key, "$indent "); } else { if($key eq $self->{opt}->{contentkey}) { $value = $self->escape_value($value) unless($self->{opt}->{noescape}); $text_content = $value; } else { $value = $self->escape_attr($value) unless($self->{opt}->{noescape}); push @result, "\n$indent " . ' ' x length($name) if($self->{opt}->{attrindent} and !$first_arg); push @result, ' ', $key, '="', $value , '"'; $first_arg = 0; } } } } else { $text_content = ''; } if(@nested or defined($text_content)) { if($named) { push @result, ">"; if(defined($text_content)) { push @result, $text_content; $nested[0] =~ s/^\s+// if(@nested); } else { push @result, $nl; } if(@nested) { push @result, @nested, $indent; } push @result, '", $nl; } else { push @result, @nested; # Special case if no root elements } } else { push @result, " />", $nl; } $self->{nsup}->pop_context() if($self->{nsup}); } # Handle arrayrefs elsif(UNIVERSAL::isa($ref, 'ARRAY')) { foreach $value (@$ref) { next if !defined($value) and $self->{opt}->{suppressempty}; if(!ref($value)) { push @result, $indent, '<', $name, '>', ($self->{opt}->{noescape} ? $value : $self->escape_value($value)), '$nl"; } elsif(UNIVERSAL::isa($value, 'HASH')) { push @result, $self->value_to_xml($value, $name, $indent); } else { push @result, $indent, '<', $name, ">$nl", $self->value_to_xml($value, 'anon', "$indent "), $indent, '$nl"; } } } else { croak "Can't encode a value of type: " . ref($ref); } delete $self->{_ancestors}->{$refaddr}; return(join('', @result)); } ############################################################################## # Method: sorted_keys() # # Returns the keys of the referenced hash sorted into alphabetical order, but # with the 'key' key (as in KeyAttr) first, if there is one. # sub sorted_keys { my($self, $name, $ref) = @_; return keys %$ref if $self->{opt}->{nosort}; my %hash = %$ref; my $keyattr = $self->{opt}->{keyattr}; my @key; if(ref $keyattr eq 'HASH') { if(exists $keyattr->{$name} and exists $hash{$keyattr->{$name}->[0]}) { push @key, $keyattr->{$name}->[0]; delete $hash{$keyattr->{$name}->[0]}; } } elsif(ref $keyattr eq 'ARRAY') { foreach (@{$keyattr}) { if(exists $hash{$_}) { push @key, $_; delete $hash{$_}; last; } } } return(@key, sort keys %hash); } ############################################################################## # Method: escape_value() # # Helper routine for automatically escaping values for XMLout(). # Expects a scalar data value. Returns escaped version. # sub escape_value { my($self, $data) = @_; return '' unless(defined($data)); $data =~ s/&/&/sg; $data =~ s//>/sg; $data =~ s/"/"/sg; my $level = $self->{opt}->{numericescape} or return $data; return $self->numeric_escape($data, $level); } sub numeric_escape { my($self, $data, $level) = @_; if($self->{opt}->{numericescape} eq '2') { $data =~ s/([^\x00-\x7F])/'&#' . ord($1) . ';'/gse; } else { $data =~ s/([^\x00-\xFF])/'&#' . ord($1) . ';'/gse; } return $data; } ############################################################################## # Method: escape_attr() # # Helper routine for escaping attribute values. Defaults to escape_value(), # but may be overridden by a subclass to customise behaviour. # sub escape_attr { my $self = shift; return $self->escape_value(@_); } ############################################################################## # Method: hash_to_array() # # Helper routine for value_to_xml(). # Attempts to 'unfold' a hash of hashes into an array of hashes. Returns a # reference to the array on success or the original hash if unfolding is # not possible. # sub hash_to_array { my $self = shift; my $parent = shift; my $hashref = shift; my $arrayref = []; my($key, $value); my @keys = $self->{opt}->{nosort} ? keys %$hashref : sort keys %$hashref; foreach $key (@keys) { $value = $hashref->{$key}; return($hashref) unless(UNIVERSAL::isa($value, 'HASH')); if(ref($self->{opt}->{keyattr}) eq 'HASH') { return($hashref) unless(defined($self->{opt}->{keyattr}->{$parent})); push @$arrayref, $self->copy_hash( $value, $self->{opt}->{keyattr}->{$parent}->[0] => $key ); } else { push(@$arrayref, { $self->{opt}->{keyattr}->[0] => $key, %$value }); } } return($arrayref); } ############################################################################## # Method: copy_hash() # # Helper routine for hash_to_array(). When unfolding a hash of hashes into # an array of hashes, we need to copy the key from the outer hash into the # inner hash. This routine makes a copy of the original hash so we don't # destroy the original data structure. You might wish to override this # method if you're using tied hashes and don't want them to get untied. # sub copy_hash { my($self, $orig, @extra) = @_; return { @extra, %$orig }; } ############################################################################## # Methods required for building trees from SAX events ############################################################################## sub start_document { my $self = shift; $self->handle_options('in') unless($self->{opt}); $self->{lists} = []; $self->{curlist} = $self->{tree} = []; } sub start_element { my $self = shift; my $element = shift; my $name = $element->{Name}; if($self->{opt}->{nsexpand}) { $name = $element->{LocalName} || ''; if($element->{NamespaceURI}) { $name = '{' . $element->{NamespaceURI} . '}' . $name; } } my $attributes = {}; if($element->{Attributes}) { # Might be undef foreach my $attr (values %{$element->{Attributes}}) { if($self->{opt}->{nsexpand}) { my $name = $attr->{LocalName} || ''; if($attr->{NamespaceURI}) { $name = '{' . $attr->{NamespaceURI} . '}' . $name } $name = 'xmlns' if($name eq $bad_def_ns_jcn); $attributes->{$name} = $attr->{Value}; } else { $attributes->{$attr->{Name}} = $attr->{Value}; } } } my $newlist = [ $attributes ]; push @{ $self->{lists} }, $self->{curlist}; push @{ $self->{curlist} }, $name => $newlist; $self->{curlist} = $newlist; } sub characters { my $self = shift; my $chars = shift; my $text = $chars->{Data}; my $clist = $self->{curlist}; my $pos = $#$clist; if ($pos > 0 and $clist->[$pos - 1] eq '0') { $clist->[$pos] .= $text; } else { push @$clist, 0 => $text; } } sub end_element { my $self = shift; $self->{curlist} = pop @{ $self->{lists} }; } sub end_document { my $self = shift; delete($self->{curlist}); delete($self->{lists}); my $tree = $self->{tree}; delete($self->{tree}); # Return tree as-is to XMLin() return($tree) if($self->{nocollapse}); # Or collapse it before returning it to SAX parser class if($self->{opt}->{keeproot}) { $tree = $self->collapse({}, @$tree); } else { $tree = $self->collapse(@{$tree->[1]}); } if($self->{opt}->{datahandler}) { return($self->{opt}->{datahandler}->($self, $tree)); } return($tree); } *xml_in = \&XMLin; *xml_out = \&XMLout; 1; __END__ =head1 STATUS OF THIS MODULE The use of this module in new code is B. Other modules are available which provide more straightforward and consistent interfaces. In particular, L is highly recommended and you can refer to L for a tutorial introduction. L is another excellent alternative. The major problems with this module are the large number of options (some of which have unfortunate defaults) and the arbitrary ways in which these options interact - often producing unexpected results. Patches with bug fixes and documentation fixes are welcome, but new features are unlikely to be added. =head1 QUICK START Say you have a script called B and a file of configuration options called B containing the following:
10.0.0.101
10.0.1.101
10.0.0.102
10.0.0.103
10.0.1.103
The following lines of code in B: use XML::Simple qw(:strict); my $config = XMLin(undef, KeyAttr => { server => 'name' }, ForceArray => [ 'server', 'address' ]); will 'slurp' the configuration options into the hashref $config (because no filename or XML string was passed as the first argument to C the name and location of the XML file will be inferred from name and location of the script). You can dump out the contents of the hashref using Data::Dumper: use Data::Dumper; print Dumper($config); which will produce something like this (formatting has been adjusted for brevity): { 'logdir' => '/var/log/foo/', 'debugfile' => '/tmp/foo.debug', 'server' => { 'sahara' => { 'osversion' => '2.6', 'osname' => 'solaris', 'address' => [ '10.0.0.101', '10.0.1.101' ] }, 'gobi' => { 'osversion' => '6.5', 'osname' => 'irix', 'address' => [ '10.0.0.102' ] }, 'kalahari' => { 'osversion' => '2.0.34', 'osname' => 'linux', 'address' => [ '10.0.0.103', '10.0.1.103' ] } } } Your script could then access the name of the log directory like this: print $config->{logdir}; similarly, the second address on the server 'kalahari' could be referenced as: print $config->{server}->{kalahari}->{address}->[1]; Note: If the mapping between the output of Data::Dumper and the print statements above is not obvious to you, then please refer to the 'references' tutorial (AKA: "Mark's very short tutorial about references") at L. In this example, the C<< ForceArray >> option was used to list elements that might occur multiple times and should therefore be represented as arrayrefs (even when only one element is present). The C<< KeyAttr >> option was used to indicate that each C<< >> element has a unique identifier in the C<< name >> attribute. This allows you to index directly to a particular server record using the name as a hash key (as shown above). For simple requirements, that's really all there is to it. If you want to store your XML in a different directory or file, or pass it in as a string or even pass it in via some derivative of an IO::Handle, you'll need to check out L<"OPTIONS">. If you want to turn off or tweak the array folding feature (that neat little transformation that produced $config->{server}) you'll find options for that as well. If you want to generate XML (for example to write a modified version of $config back out as XML), check out C. If your needs are not so simple, this may not be the module for you. In that case, you might want to read L<"WHERE TO FROM HERE?">. =head1 DESCRIPTION The XML::Simple module provides a simple API layer on top of an underlying XML parsing module (either XML::Parser or one of the SAX2 parser modules). Two functions are exported: C and C. Note: you can explicitly request the lower case versions of the function names: C and C. The simplest approach is to call these two functions directly, but an optional object oriented interface (see L<"OPTIONAL OO INTERFACE"> below) allows them to be called as methods of an B object. The object interface can also be used at either end of a SAX pipeline. =head2 XMLin() Parses XML formatted data and returns a reference to a data structure which contains the same information in a more readily accessible form. (Skip down to L<"EXAMPLES"> below, for more sample code). C accepts an optional XML specifier followed by zero or more 'name => value' option pairs. The XML specifier can be one of the following: =over 4 =item A filename If the filename contains no directory components C will look for the file in each directory in the SearchPath (see L<"OPTIONS"> below) or in the current directory if the SearchPath option is not defined. eg: $ref = XMLin('/etc/params.xml'); Note, the filename '-' can be used to parse from STDIN. =item undef If there is no XML specifier, C will check the script directory and each of the SearchPath directories for a file with the same name as the script but with the extension '.xml'. Note: if you wish to specify options, you must specify the value 'undef'. eg: $ref = XMLin(undef, ForceArray => 1); =item A string of XML A string containing XML (recognised by the presence of '<' and '>' characters) will be parsed directly. eg: $ref = XMLin(''); =item An IO::Handle object An IO::Handle object will be read to EOF and its contents parsed. eg: $fh = IO::File->new('/etc/params.xml'); $ref = XMLin($fh); =back =head2 XMLout() Takes a data structure (generally a hashref) and returns an XML encoding of that structure. If the resulting XML is parsed using C, it should return a data structure equivalent to the original (see caveats below). The C function can also be used to output the XML as SAX events see the C option and L<"SAX SUPPORT"> for more details). When translating hashes to XML, hash keys which have a leading '-' will be silently skipped. This is the approved method for marking elements of a data structure which should be ignored by C. (Note: If these items were not skipped the key names would be emitted as element or attribute names with a leading '-' which would not be valid XML). =head2 Caveats Some care is required in creating data structures which will be passed to C. Hash keys from the data structure will be encoded as either XML element names or attribute names. Therefore, you should use hash key names which conform to the relatively strict XML naming rules: Names in XML must begin with a letter. The remaining characters may be letters, digits, hyphens (-), underscores (_) or full stops (.). It is also allowable to include one colon (:) in an element name but this should only be used when working with namespaces (B can only usefully work with namespaces when teamed with a SAX Parser). You can use other punctuation characters in hash values (just not in hash keys) however B does not support dumping binary data. If you break these rules, the current implementation of C will simply emit non-compliant XML which will be rejected if you try to read it back in. (A later version of B might take a more proactive approach). Note also that although you can nest hashes and arrays to arbitrary levels, circular data structures are not supported and will cause C to die. If you wish to 'round-trip' arbitrary data structures from Perl to XML and back to Perl, then you should probably disable array folding (using the KeyAttr option) both with C and with C. If you still don't get the expected results, you may prefer to use L which is designed for exactly that purpose. Refer to L<"WHERE TO FROM HERE?"> if C is too simple for your needs. =head1 OPTIONS B supports a number of options (in fact as each release of B adds more options, the module's claim to the name 'Simple' becomes increasingly tenuous). If you find yourself repeatedly having to specify the same options, you might like to investigate L<"OPTIONAL OO INTERFACE"> below. If you can't be bothered reading the documentation, refer to L<"STRICT MODE"> to automatically catch common mistakes. Because there are so many options, it's hard for new users to know which ones are important, so here are the two you really need to know about: =over 4 =item * check out C because you'll almost certainly want to turn it on =item * make sure you know what the C option does and what its default value is because it may surprise you otherwise (note in particular that 'KeyAttr' affects both C and C) =back The option name headings below have a trailing 'comment' - a hash followed by two pieces of metadata: =over 4 =item * Options are marked with 'I' if they are recognised by C and 'I' if they are recognised by C. =item * Each option is also flagged to indicate whether it is: 'important' - don't use the module until you understand this one 'handy' - you can skip this on the first time through 'advanced' - you can skip this on the second time through 'SAX only' - don't worry about this unless you're using SAX (or alternatively if you need this, you also need SAX) 'seldom used' - you'll probably never use this unless you were the person that requested the feature =back The options are listed alphabetically: Note: option names are no longer case sensitive so you can use the mixed case versions shown here; all lower case as required by versions 2.03 and earlier; or you can add underscores between the words (eg: key_attr). =head2 AttrIndent => 1 I<# out - handy> When you are using C, enable this option to have attributes printed one-per-line with sensible indentation rather than all on one line. =head2 Cache => [ cache schemes ] I<# in - advanced> Because loading the B module and parsing an XML file can consume a significant number of CPU cycles, it is often desirable to cache the output of C for later reuse. When parsing from a named file, B supports a number of caching schemes. The 'Cache' option may be used to specify one or more schemes (using an anonymous array). Each scheme will be tried in turn in the hope of finding a cached pre-parsed representation of the XML file. If no cached copy is found, the file will be parsed and the first cache scheme in the list will be used to save a copy of the results. The following cache schemes have been implemented: =over 4 =item storable Utilises B to read/write a cache file with the same name as the XML file but with the extension .stor =item memshare When a file is first parsed, a copy of the resulting data structure is retained in memory in the B module's namespace. Subsequent calls to parse the same file will return a reference to this structure. This cached version will persist only for the life of the Perl interpreter (which in the case of mod_perl for example, may be some significant time). Because each caller receives a reference to the same data structure, a change made by one caller will be visible to all. For this reason, the reference returned should be treated as read-only. =item memcopy This scheme works identically to 'memshare' (above) except that each caller receives a reference to a new data structure which is a copy of the cached version. Copying the data structure will add a little processing overhead, therefore this scheme should only be used where the caller intends to modify the data structure (or wishes to protect itself from others who might). This scheme uses B to perform the copy. =back Warning! The memory-based caching schemes compare the timestamp on the file to the time when it was last parsed. If the file is stored on an NFS filesystem (or other network share) and the clock on the file server is not exactly synchronised with the clock where your script is run, updates to the source XML file may appear to be ignored. =head2 ContentKey => 'keyname' I<# in+out - seldom used> When text content is parsed to a hash value, this option lets you specify a name for the hash key to override the default 'content'. So for example: XMLin('Text', ContentKey => 'text') will parse to: { 'one' => 1, 'text' => 'Text' } instead of: { 'one' => 1, 'content' => 'Text' } C will also honour the value of this option when converting a hashref to XML. You can also prefix your selected key name with a '-' character to have C try a little harder to eliminate unnecessary 'content' keys after array folding. For example: XMLin( 'FirstSecond', KeyAttr => {item => 'name'}, ForceArray => [ 'item' ], ContentKey => '-content' ) will parse to: { 'item' => { 'one' => 'First' 'two' => 'Second' } } rather than this (without the '-'): { 'item' => { 'one' => { 'content' => 'First' } 'two' => { 'content' => 'Second' } } } =head2 DataHandler => code_ref I<# in - SAX only> When you use an B object as a SAX handler, it will return a 'simple tree' data structure in the same format as C would return. If this option is set (to a subroutine reference), then when the tree is built the subroutine will be called and passed two arguments: a reference to the B object and a reference to the data tree. The return value from the subroutine will be returned to the SAX driver. (See L<"SAX SUPPORT"> for more details). =head2 ForceArray => 1 I<# in - important> This option should be set to '1' to force nested elements to be represented as arrays even when there is only one. Eg, with ForceArray enabled, this XML: value would parse to this: { 'name' => [ 'value' ] } instead of this (the default): { 'name' => 'value' } This option is especially useful if the data structure is likely to be written back out as XML and the default behaviour of rolling single nested elements up into attributes is not desirable. If you are using the array folding feature, you should almost certainly enable this option. If you do not, single nested elements will not be parsed to arrays and therefore will not be candidates for folding to a hash. (Given that the default value of 'KeyAttr' enables array folding, the default value of this option should probably also have been enabled too - sorry). =head2 ForceArray => [ names ] I<# in - important> This alternative (and preferred) form of the 'ForceArray' option allows you to specify a list of element names which should always be forced into an array representation, rather than the 'all or nothing' approach above. It is also possible (since version 2.05) to include compiled regular expressions in the list - any element names which match the pattern will be forced to arrays. If the list contains only a single regex, then it is not necessary to enclose it in an arrayref. Eg: ForceArray => qr/_list$/ =head2 ForceContent => 1 I<# in - seldom used> When C parses elements which have text content as well as attributes, the text content must be represented as a hash value rather than a simple scalar. This option allows you to force text content to always parse to a hash value even when there are no attributes. So for example: XMLin('text1text2', ForceContent => 1) will parse to: { 'x' => { 'content' => 'text1' }, 'y' => { 'a' => 2, 'content' => 'text2' } } instead of: { 'x' => 'text1', 'y' => { 'a' => 2, 'content' => 'text2' } } =head2 GroupTags => { grouping tag => grouped tag } I<# in+out - handy> You can use this option to eliminate extra levels of indirection in your Perl data structure. For example this XML: /usr/bin /usr/local/bin /usr/X11/bin Would normally be read into a structure like this: { searchpath => { dir => [ '/usr/bin', '/usr/local/bin', '/usr/X11/bin' ] } } But when read in with the appropriate value for 'GroupTags': my $opt = XMLin($xml, GroupTags => { searchpath => 'dir' }); It will return this simpler structure: { searchpath => [ '/usr/bin', '/usr/local/bin', '/usr/X11/bin' ] } The grouping element (C<< >> in the example) must not contain any attributes or elements other than the grouped element. You can specify multiple 'grouping element' to 'grouped element' mappings in the same hashref. If this option is combined with C, the array folding will occur first and then the grouped element names will be eliminated. C will also use the grouptag mappings to re-introduce the tags around the grouped elements. Beware though that this will occur in all places that the 'grouping tag' name occurs - you probably don't want to use the same name for elements as well as attributes. =head2 Handler => object_ref I<# out - SAX only> Use the 'Handler' option to have C generate SAX events rather than returning a string of XML. For more details see L<"SAX SUPPORT"> below. Note: the current implementation of this option generates a string of XML and uses a SAX parser to translate it into SAX events. The normal encoding rules apply here - your data must be UTF8 encoded unless you specify an alternative encoding via the 'XMLDecl' option; and by the time the data reaches the handler object, it will be in UTF8 form regardless of the encoding you supply. A future implementation of this option may generate the events directly. =head2 KeepRoot => 1 I<# in+out - handy> In its attempt to return a data structure free of superfluous detail and unnecessary levels of indirection, C normally discards the root element name. Setting the 'KeepRoot' option to '1' will cause the root element name to be retained. So after executing this code: $config = XMLin('', KeepRoot => 1) You'll be able to reference the tempdir as C<$config-E{config}-E{tempdir}> instead of the default C<$config-E{tempdir}>. Similarly, setting the 'KeepRoot' option to '1' will tell C that the data structure already contains a root element name and it is not necessary to add another. =head2 KeyAttr => [ list ] I<# in+out - important> This option controls the 'array folding' feature which translates nested elements from an array to a hash. It also controls the 'unfolding' of hashes to arrays. For example, this XML: would, by default, parse to this: { 'user' => [ { 'login' => 'grep', 'fullname' => 'Gary R Epstein' }, { 'login' => 'stty', 'fullname' => 'Simon T Tyson' } ] } If the option 'KeyAttr => "login"' were used to specify that the 'login' attribute is a key, the same XML would parse to: { 'user' => { 'stty' => { 'fullname' => 'Simon T Tyson' }, 'grep' => { 'fullname' => 'Gary R Epstein' } } } The key attribute names should be supplied in an arrayref if there is more than one. C will attempt to match attribute names in the order supplied. C will use the first attribute name supplied when 'unfolding' a hash into an array. Note 1: The default value for 'KeyAttr' is ['name', 'key', 'id']. If you do not want folding on input or unfolding on output you must set this option to an empty list to disable the feature. Note 2: If you wish to use this option, you should also enable the C option. Without 'ForceArray', a single nested element will be rolled up into a scalar rather than an array and therefore will not be folded (since only arrays get folded). =head2 KeyAttr => { list } I<# in+out - important> This alternative (and preferred) method of specifying the key attributes allows more fine grained control over which elements are folded and on which attributes. For example the option 'KeyAttr => { package => 'id' } will cause any package elements to be folded on the 'id' attribute. No other elements which have an 'id' attribute will be folded at all. Note: C will generate a warning (or a fatal error in L<"STRICT MODE">) if this syntax is used and an element which does not have the specified key attribute is encountered (eg: a 'package' element without an 'id' attribute, to use the example above). Warnings can be suppressed with the lexical C pragma or C. Two further variations are made possible by prefixing a '+' or a '-' character to the attribute name: The option 'KeyAttr => { user => "+login" }' will cause this XML: to parse to this data structure: { 'user' => { 'stty' => { 'fullname' => 'Simon T Tyson', 'login' => 'stty' }, 'grep' => { 'fullname' => 'Gary R Epstein', 'login' => 'grep' } } } The '+' indicates that the value of the key attribute should be copied rather than moved to the folded hash key. A '-' prefix would produce this result: { 'user' => { 'stty' => { 'fullname' => 'Simon T Tyson', '-login' => 'stty' }, 'grep' => { 'fullname' => 'Gary R Epstein', '-login' => 'grep' } } } As described earlier, C will ignore hash keys starting with a '-'. =head2 NoAttr => 1 I<# in+out - handy> When used with C, the generated XML will contain no attributes. All hash key/values will be represented as nested elements instead. When used with C, any attributes in the XML will be ignored. =head2 NoEscape => 1 I<# out - seldom used> By default, C will translate the characters 'E', 'E', '&' and '"' to '<', '>', '&' and '"' respectively. Use this option to suppress escaping (presumably because you've already escaped the data in some more sophisticated manner). =head2 NoIndent => 1 I<# out - seldom used> Set this option to 1 to disable C's default 'pretty printing' mode. With this option enabled, the XML output will all be on one line (unless there are newlines in the data) - this may be easier for downstream processing. =head2 NoSort => 1 I<# out - seldom used> Newer versions of XML::Simple sort elements and attributes alphabetically (*), by default. Enable this option to suppress the sorting - possibly for backwards compatibility. * Actually, sorting is alphabetical but 'key' attribute or element names (as in 'KeyAttr') sort first. Also, when a hash of hashes is 'unfolded', the elements are sorted alphabetically by the value of the key field. =head2 NormaliseSpace => 0 | 1 | 2 I<# in - handy> This option controls how whitespace in text content is handled. Recognised values for the option are: =over 4 =item * 0 = (default) whitespace is passed through unaltered (except of course for the normalisation of whitespace in attribute values which is mandated by the XML recommendation) =item * 1 = whitespace is normalised in any value used as a hash key (normalising means removing leading and trailing whitespace and collapsing sequences of whitespace characters to a single space) =item * 2 = whitespace is normalised in all text content =back Note: you can spell this option with a 'z' if that is more natural for you. =head2 NSExpand => 1 I<# in+out handy - SAX only> This option controls namespace expansion - the translation of element and attribute names of the form 'prefix:name' to '{uri}name'. For example the element name 'xsl:template' might be expanded to: '{http://www.w3.org/1999/XSL/Transform}template'. By default, C will return element names and attribute names exactly as they appear in the XML. Setting this option to 1 will cause all element and attribute names to be expanded to include their namespace prefix. I. This option also controls whether C performs the reverse translation from '{uri}name' back to 'prefix:name'. The default is no translation. If your data contains expanded names, you should set this option to 1 otherwise C will emit XML which is not well formed. I to translate URIs back to prefixes>. =head2 NumericEscape => 0 | 1 | 2 I<# out - handy> Use this option to have 'high' (non-ASCII) characters in your Perl data structure converted to numeric entities (eg: €) in the XML output. Three levels are possible: 0 - default: no numeric escaping (OK if you're writing out UTF8) 1 - only characters above 0xFF are escaped (ie: characters in the 0x80-FF range are not escaped), possibly useful with ISO8859-1 output 2 - all characters above 0x7F are escaped (good for plain ASCII output) =head2 OutputFile => I<# out - handy> The default behaviour of C is to return the XML as a string. If you wish to write the XML to a file, simply supply the filename using the 'OutputFile' option. This option also accepts an IO handle object - especially useful in Perl 5.8.0 and later for output using an encoding other than UTF-8, eg: open my $fh, '>:encoding(iso-8859-1)', $path or die "open($path): $!"; XMLout($ref, OutputFile => $fh); Note, XML::Simple does not require that the object you pass in to the OutputFile option inherits from L - it simply assumes the object supports a C method. =head2 ParserOpts => [ XML::Parser Options ] I<# in - don't use this> I. This option allows you to pass parameters to the constructor of the underlying XML::Parser object (which of course assumes you're not using SAX). =head2 RootName => 'string' I<# out - handy> By default, when C generates XML, the root element will be named 'opt'. This option allows you to specify an alternative name. Specifying either undef or the empty string for the RootName option will produce XML with no root elements. In most cases the resulting XML fragment will not be 'well formed' and therefore could not be read back in by C. Nevertheless, the option has been found to be useful in certain circumstances. =head2 SearchPath => [ list ] I<# in - handy> If you pass C a filename, but the filename include no directory component, you can use this option to specify which directories should be searched to locate the file. You might use this option to search first in the user's home directory, then in a global directory such as /etc. If a filename is provided to C but SearchPath is not defined, the file is assumed to be in the current directory. If the first parameter to C is undefined, the default SearchPath will contain only the directory in which the script itself is located. Otherwise the default SearchPath will be empty. =head2 StrictMode => 1 | 0 I<# in+out seldom used> This option allows you to turn L on or off for a particular call, regardless of whether it was enabled at the time XML::Simple was loaded. =head2 SuppressEmpty => 1 | '' | undef I<# in+out - handy> This option controls what C should do with empty elements (no attributes and no content). The default behaviour is to represent them as empty hashes. Setting this option to a true value (eg: 1) will cause empty elements to be skipped altogether. Setting the option to 'undef' or the empty string will cause empty elements to be represented as the undefined value or the empty string respectively. The latter two alternatives are a little easier to test for in your code than a hash with no keys. The option also controls what C does with undefined values. Setting the option to undef causes undefined values to be output as empty elements (rather than empty attributes), it also suppresses the generation of warnings about undefined values. Setting the option to a true value (eg: 1) causes undefined values to be skipped altogether on output. =head2 ValueAttr => [ names ] I<# in - handy> Use this option to deal elements which always have a single attribute and no content. Eg: Setting C<< ValueAttr => [ 'value' ] >> will cause the above XML to parse to: { colour => 'red', size => 'XXL' } instead of this (the default): { colour => { value => 'red' }, size => { value => 'XXL' } } Note: This form of the ValueAttr option is not compatible with C - since the attribute name is discarded at parse time, the original XML cannot be reconstructed. =head2 ValueAttr => { element => attribute, ... } I<# in+out - handy> This (preferred) form of the ValueAttr option requires you to specify both the element and the attribute names. This is not only safer, it also allows the original XML to be reconstructed by C. Note: You probably don't want to use this option and the NoAttr option at the same time. =head2 Variables => { name => value } I<# in - handy> This option allows variables in the XML to be expanded when the file is read. (there is no facility for putting the variable names back if you regenerate XML using C). A 'variable' is any text of the form C<${name}> which occurs in an attribute value or in the text content of an element. If 'name' matches a key in the supplied hashref, C<${name}> will be replaced with the corresponding value from the hashref. If no matching key is found, the variable will not be replaced. Names must match the regex: C<[\w.]+> (ie: only 'word' characters and dots are allowed). =head2 VarAttr => 'attr_name' I<# in - handy> In addition to the variables defined using C, this option allows variables to be defined in the XML. A variable definition consists of an element with an attribute called 'attr_name' (the value of the C option). The value of the attribute will be used as the variable name and the text content of the element will be used as the value. A variable defined in this way will override a variable defined using the C option. For example: XMLin( ' /usr/local/apache ${prefix} ${exec_prefix}/bin ', VarAttr => 'name', ContentKey => '-content' ); produces the following data structure: { dir => { prefix => '/usr/local/apache', exec_prefix => '/usr/local/apache', bindir => '/usr/local/apache/bin', } } =head2 XMLDecl => 1 or XMLDecl => 'string' I<# out - handy> If you want the output from C to start with the optional XML declaration, simply set the option to '1'. The default XML declaration is: If you want some other string (for example to declare an encoding value), set the value of this option to the complete string you require. =head1 OPTIONAL OO INTERFACE The procedural interface is both simple and convenient however there are a couple of reasons why you might prefer to use the object oriented (OO) interface: =over 4 =item * to define a set of default values which should be used on all subsequent calls to C or C =item * to override methods in B to provide customised behaviour =back The default values for the options described above are unlikely to suit everyone. The OO interface allows you to effectively override B's defaults with your preferred values. It works like this: First create an XML::Simple parser object with your preferred defaults: my $xs = XML::Simple->new(ForceArray => 1, KeepRoot => 1); then call C or C as a method of that object: my $ref = $xs->XMLin($xml); my $xml = $xs->XMLout($ref); You can also specify options when you make the method calls and these values will be merged with the values specified when the object was created. Values specified in a method call take precedence. Note: when called as methods, the C and C routines may be called as C or C. The method names are aliased so the only difference is the aesthetics. =head2 Parsing Methods You can explicitly call one of the following methods rather than rely on the C method automatically determining whether the target to be parsed is a string, a file or a filehandle: =over 4 =item parse_string(text) Works exactly like the C method but assumes the first argument is a string of XML (or a reference to a scalar containing a string of XML). =item parse_file(filename) Works exactly like the C method but assumes the first argument is the name of a file containing XML. =item parse_fh(file_handle) Works exactly like the C method but assumes the first argument is a filehandle which can be read to get XML. =back =head2 Hook Methods You can make your own class which inherits from XML::Simple and overrides certain behaviours. The following methods may provide useful 'hooks' upon which to hang your modified behaviour. You may find other undocumented methods by examining the source, but those may be subject to change in future releases. =over 4 =item new_xml_parser() This method will be called when a new XML::Parser object must be constructed (either because XML::SAX is not installed or XML::Parser is preferred). =item handle_options(direction, name => value ...) This method will be called when one of the parsing methods or the C method is called. The initial argument will be a string (either 'in' or 'out') and the remaining arguments will be name value pairs. =item default_config_file() Calculates and returns the name of the file which should be parsed if no filename is passed to C (default: C<$0.xml>). =item build_simple_tree(filename, string) Called from C or any of the parsing methods. Takes either a file name as the first argument or C followed by a 'string' as the second argument. Returns a simple tree data structure. You could override this method to apply your own transformations before the data structure is returned to the caller. =item new_hashref() When the 'simple tree' data structure is being built, this method will be called to create any required anonymous hashrefs. =item sorted_keys(name, hashref) Called when C is translating a hashref to XML. This routine returns a list of hash keys in the order that the corresponding attributes/elements should appear in the output. =item escape_value(string) Called from C, takes a string and returns a copy of the string with XML character escaping rules applied. =item escape_attr(string) Called from C, to handle attribute values. By default, just calls C, but you can override this method if you want attributes escaped differently than text content. =item numeric_escape(string) Called from C, to handle non-ASCII characters (depending on the value of the NumericEscape option). =item copy_hash(hashref, extra_key => value, ...) Called from C, when 'unfolding' a hash of hashes into an array of hashes. You might wish to override this method if you're using tied hashes and don't want them to get untied. =back =head2 Cache Methods XML::Simple implements three caching schemes ('storable', 'memshare' and 'memcopy'). You can implement a custom caching scheme by implementing two methods - one for reading from the cache and one for writing to it. For example, you might implement a new 'dbm' scheme that stores cached data structures using the L module. First, you would add a C method which accepted a filename for use as a lookup key and returned a data structure on success, or undef on failure. Then, you would implement a C method which accepted a data structure and a filename. You would use this caching scheme by specifying the option: Cache => [ 'dbm' ] =head1 STRICT MODE If you import the B routines like this: use XML::Simple qw(:strict); the following common mistakes will be detected and treated as fatal errors =over 4 =item * Failing to explicitly set the C option - if you can't be bothered reading about this option, turn it off with: KeyAttr => [ ] =item * Failing to explicitly set the C option - if you can't be bothered reading about this option, set it to the safest mode with: ForceArray => 1 =item * Setting ForceArray to an array, but failing to list all the elements from the KeyAttr hash. =item * Data error - KeyAttr is set to say { part => 'partnum' } but the XML contains one or more EpartE elements without a 'partnum' attribute (or nested element). Note: if strict mode is not set but C is in force, this condition triggers a warning. =item * Data error - as above, but non-unique values are present in the key attribute (eg: more than one EpartE element with the same partnum). This will also trigger a warning if strict mode is not enabled. =item * Data error - as above, but value of key attribute (eg: partnum) is not a scalar string (due to nested elements etc). This will also trigger a warning if strict mode is not enabled. =back =head1 SAX SUPPORT From version 1.08_01, B includes support for SAX (the Simple API for XML) - specifically SAX2. In a typical SAX application, an XML parser (or SAX 'driver') module generates SAX events (start of element, character data, end of element, etc) as it parses an XML document and a 'handler' module processes the events to extract the required data. This simple model allows for some interesting and powerful possibilities: =over 4 =item * Applications written to the SAX API can extract data from huge XML documents without the memory overheads of a DOM or tree API. =item * The SAX API allows for plug and play interchange of parser modules without having to change your code to fit a new module's API. A number of SAX parsers are available with capabilities ranging from extreme portability to blazing performance. =item * A SAX 'filter' module can implement both a handler interface for receiving data and a generator interface for passing modified data on to a downstream handler. Filters can be chained together in 'pipelines'. =item * One filter module might split a data stream to direct data to two or more downstream handlers. =item * Generating SAX events is not the exclusive preserve of XML parsing modules. For example, a module might extract data from a relational database using DBI and pass it on to a SAX pipeline for filtering and formatting. =back B can operate at either end of a SAX pipeline. For example, you can take a data structure in the form of a hashref and pass it into a SAX pipeline using the 'Handler' option on C: use XML::Simple; use Some::SAX::Filter; use XML::SAX::Writer; my $ref = { .... # your data here }; my $writer = XML::SAX::Writer->new(); my $filter = Some::SAX::Filter->new(Handler => $writer); my $simple = XML::Simple->new(Handler => $filter); $simple->XMLout($ref); You can also put B at the opposite end of the pipeline to take advantage of the simple 'tree' data structure once the relevant data has been isolated through filtering: use XML::SAX; use Some::SAX::Filter; use XML::Simple; my $simple = XML::Simple->new(ForceArray => 1, KeyAttr => ['partnum']); my $filter = Some::SAX::Filter->new(Handler => $simple); my $parser = XML::SAX::ParserFactory->parser(Handler => $filter); my $ref = $parser->parse_uri('some_huge_file.xml'); print $ref->{part}->{'555-1234'}; You can build a filter by using an XML::Simple object as a handler and setting its DataHandler option to point to a routine which takes the resulting tree, modifies it and sends it off as SAX events to a downstream handler: my $writer = XML::SAX::Writer->new(); my $filter = XML::Simple->new( DataHandler => sub { my $simple = shift; my $data = shift; # Modify $data here $simple->XMLout($data, Handler => $writer); } ); my $parser = XML::SAX::ParserFactory->parser(Handler => $filter); $parser->parse_uri($filename); I but it could also have been specified in the constructor>. =head1 ENVIRONMENT If you don't care which parser module B uses then skip this section entirely (it looks more complicated than it really is). B will default to using a B parser if one is available or B if SAX is not available. You can dictate which parser module is used by setting either the environment variable 'XML_SIMPLE_PREFERRED_PARSER' or the package variable $XML::Simple::PREFERRED_PARSER to contain the module name. The following rules are used: =over 4 =item * The package variable takes precedence over the environment variable if both are defined. To force B to ignore the environment settings and use its default rules, you can set the package variable to an empty string. =item * If the 'preferred parser' is set to the string 'XML::Parser', then L will be used (or C will die if L is not installed). =item * If the 'preferred parser' is set to some other value, then it is assumed to be the name of a SAX parser module and is passed to L. If L is not installed, or the requested parser module is not installed, then C will die. =item * If the 'preferred parser' is not defined at all (the normal default state), an attempt will be made to load L. If L is installed, then a parser module will be selected according to L's normal rules (which typically means the last SAX parser installed). =item * if the 'preferred parser' is not defined and B is not installed, then B will be used. C will die if L is not installed. =back Note: The B distribution includes an XML parser written entirely in Perl. It is very portable but it is not very fast. You should consider installing L or L if they are available for your platform. =head1 ERROR HANDLING The XML standard is very clear on the issue of non-compliant documents. An error in parsing any single element (for example a missing end tag) must cause the whole document to be rejected. B will die with an appropriate message if it encounters a parsing error. If dying is not appropriate for your application, you should arrange to call C in an eval block and look for errors in $@. eg: my $config = eval { XMLin() }; PopUpMessage($@) if($@); Note, there is a common misconception that use of B will significantly slow down a script. While that may be true when the code being eval'd is in a string, it is not true of code like the sample above. =head1 EXAMPLES When C reads the following very simple piece of XML: it returns the following data structure: { 'username' => 'testuser', 'password' => 'frodo' } The identical result could have been produced with this alternative XML: Or this (although see 'ForceArray' option for variations): testuser frodo Repeated nested elements are represented as anonymous arrays: joe@smith.com jsmith@yahoo.com bob@smith.com { 'person' => [ { 'email' => [ 'joe@smith.com', 'jsmith@yahoo.com' ], 'firstname' => 'Joe', 'lastname' => 'Smith' }, { 'email' => 'bob@smith.com', 'firstname' => 'Bob', 'lastname' => 'Smith' } ] } Nested elements with a recognised key attribute are transformed (folded) from an array into a hash keyed on the value of that attribute (see the C option): { 'person' => { 'jbloggs' => { 'firstname' => 'Joe', 'lastname' => 'Bloggs' }, 'tsmith' => { 'firstname' => 'Tom', 'lastname' => 'Smith' }, 'jsmith' => { 'firstname' => 'Joe', 'lastname' => 'Smith' } } } The tag can be used to form anonymous arrays: Col 1Col 2Col 3 R1C1R1C2R1C3 R2C1R2C2R2C3 R3C1R3C2R3C3 { 'head' => [ [ 'Col 1', 'Col 2', 'Col 3' ] ], 'data' => [ [ 'R1C1', 'R1C2', 'R1C3' ], [ 'R2C1', 'R2C2', 'R2C3' ], [ 'R3C1', 'R3C2', 'R3C3' ] ] } Anonymous arrays can be nested to arbitrary levels and as a special case, if the surrounding tags for an XML document contain only an anonymous array the arrayref will be returned directly rather than the usual hashref: Col 1Col 2 R1C1R1C2 R2C1R2C2 [ [ 'Col 1', 'Col 2' ], [ 'R1C1', 'R1C2' ], [ 'R2C1', 'R2C2' ] ] Elements which only contain text content will simply be represented as a scalar. Where an element has both attributes and text content, the element will be represented as a hashref with the text content in the 'content' key (see the C option): first second { 'one' => 'first', 'two' => { 'attr' => 'value', 'content' => 'second' } } Mixed content (elements which contain both text content and nested elements) will be not be represented in a useful way - element order and significant whitespace will be lost. If you need to work with mixed content, then XML::Simple is not the right tool for your job - check out the next section. =head1 WHERE TO FROM HERE? B is able to present a simple API because it makes some assumptions on your behalf. These include: =over 4 =item * You're not interested in text content consisting only of whitespace =item * You don't mind that when things get slurped into a hash the order is lost =item * You don't want fine-grained control of the formatting of generated XML =item * You would never use a hash key that was not a legal XML element name =item * You don't need help converting between different encodings =back In a serious XML project, you'll probably outgrow these assumptions fairly quickly. This section of the document used to offer some advice on choosing a more powerful option. That advice has now grown into the 'Perl-XML FAQ' document which you can find at: L The advice in the FAQ boils down to a quick explanation of tree versus event based parsers and then recommends: For event based parsing, use SAX (do not set out to write any new code for XML::Parser's handler API - it is obsolete). For tree-based parsing, you could choose between the 'Perlish' approach of L and more standards based DOM implementations - preferably one with XPath support such as L. =head1 SEE ALSO B requires either L or L. To generate documents with namespaces, L is required. The optional caching functions require L. Answers to Frequently Asked Questions about XML::Simple are bundled with this distribution as: L =head1 COPYRIGHT Copyright 1999-2004 Grant McLean Egrantm@cpan.orgE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut SAX/BuildSAXBase.pl000044400000070017152345536550007762 0ustar00#!/usr/bin/perl # # This file is used to generate lib/XML/SAX/Base.pm. There is a pre-generated # Base.pm file included in the distribution so you don't need to run this # script unless you are attempting to modify the code. # # The code in this file was adapted from the Makefile.PL when XML::SAX::Base # was split back out into its own distribution. # # You can manually run this file: # # perl ./BuildSAXBase.pl # # or better yet it will be invoked by automatically Dist::Zilla when building # a release from the git repository. # # dzil build # package SAX::Base::Builder; use strict; use warnings; use File::Spec; write_xml_sax_base() unless caller(); sub build_xml_sax_base { my $code = <<'EOHEADER'; package XML::SAX::Base; # version 0.10 - Kip Hampton # version 0.13 - Robin Berjon # version 0.15 - Kip Hampton # version 0.17 - Kip Hampton # version 0.19 - Kip Hampton # version 0.21 - Kip Hampton # version 0.22 - Robin Berjon # version 0.23 - Matt Sergeant # version 0.24 - Robin Berjon # version 0.25 - Kip Hampton # version 1.00 - Kip Hampton # version 1.01 - Kip Hampton # version 1.02 - Robin Berjon # version 1.03 - Matt Sergeant # version 1.04 - Kip Hampton # version 1.05 - Grant McLean # version 1.06 - Grant McLean # version 1.07 - Grant McLean # version 1.08 - Grant McLean #-----------------------------------------------------# # STOP!!!!! # # This file is generated by the 'BuildSAXBase.pl' file # that ships with the XML::SAX::Base distribution. # If you need to make changes, patch that file NOT # XML/SAX/Base.pm Better yet, fork the git repository # commit your changes and send a pull request: # https://github.com/grantm/XML-SAX-Base #-----------------------------------------------------# use strict; use XML::SAX::Exception qw(); EOHEADER my %EVENT_SPEC = ( start_document => [qw(ContentHandler DocumentHandler Handler)], end_document => [qw(ContentHandler DocumentHandler Handler)], start_element => [qw(ContentHandler DocumentHandler Handler)], end_element => [qw(ContentHandler DocumentHandler Handler)], characters => [qw(ContentHandler DocumentHandler Handler)], processing_instruction => [qw(ContentHandler DocumentHandler Handler)], ignorable_whitespace => [qw(ContentHandler DocumentHandler Handler)], set_document_locator => [qw(ContentHandler DocumentHandler Handler)], start_prefix_mapping => [qw(ContentHandler Handler)], end_prefix_mapping => [qw(ContentHandler Handler)], skipped_entity => [qw(ContentHandler Handler)], start_cdata => [qw(DocumentHandler LexicalHandler Handler)], end_cdata => [qw(DocumentHandler LexicalHandler Handler)], comment => [qw(DocumentHandler LexicalHandler Handler)], entity_reference => [qw(DocumentHandler Handler)], notation_decl => [qw(DTDHandler Handler)], unparsed_entity_decl => [qw(DTDHandler Handler)], element_decl => [qw(DeclHandler Handler)], attlist_decl => [qw(DTDHandler Handler)], doctype_decl => [qw(DTDHandler Handler)], xml_decl => [qw(DTDHandler Handler)], entity_decl => [qw(DTDHandler Handler)], attribute_decl => [qw(DeclHandler Handler)], internal_entity_decl => [qw(DeclHandler Handler)], external_entity_decl => [qw(DeclHandler Handler)], resolve_entity => [qw(EntityResolver Handler)], start_dtd => [qw(LexicalHandler Handler)], end_dtd => [qw(LexicalHandler Handler)], start_entity => [qw(LexicalHandler Handler)], end_entity => [qw(LexicalHandler Handler)], warning => [qw(ErrorHandler Handler)], error => [qw(ErrorHandler Handler)], fatal_error => [qw(ErrorHandler Handler)], ); for my $ev (keys %EVENT_SPEC) { $code .= <<" EOTOPCODE"; sub $ev { my \$self = shift; if (defined \$self->{Methods}->{'$ev'}) { \$self->{Methods}->{'$ev'}->(\@_); } else { my \$method; my \$callbacks; if (exists \$self->{ParseOptions}) { \$callbacks = \$self->{ParseOptions}; } else { \$callbacks = \$self; } if (0) { # dummy to make elsif's below compile } EOTOPCODE my ($can_string, $aload_string); for my $h (@{$EVENT_SPEC{$ev}}) { $can_string .= <<" EOCANBLOCK"; elsif (defined \$callbacks->{'$h'} and \$method = \$callbacks->{'$h'}->can('$ev') ) { my \$handler = \$callbacks->{'$h'}; \$self->{Methods}->{'$ev'} = sub { \$method->(\$handler, \@_) }; return \$method->(\$handler, \@_); } EOCANBLOCK $aload_string .= <<" EOALOADBLOCK"; elsif (defined \$callbacks->{'$h'} and \$callbacks->{'$h'}->can('AUTOLOAD') and \$callbacks->{'$h'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my \$res = eval { \$callbacks->{'$h'}->$ev(\@_) }; if (\$@) { die \$@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my \$handler = \$callbacks->{'$h'}; \$self->{Methods}->{'$ev'} = sub { \$handler->$ev(\@_) }; } return \$res; } EOALOADBLOCK } $code .= $can_string . $aload_string; $code .= <<" EOFALLTHROUGH"; else { \$self->{Methods}->{'$ev'} = sub { }; } } EOFALLTHROUGH $code .= "\n}\n\n"; } $code .= <<'BODY'; #-------------------------------------------------------------------# # Class->new(%options) #-------------------------------------------------------------------# sub new { my $proto = shift; my $class = ref($proto) || $proto; my $options = ($#_ == 0) ? shift : { @_ }; unless ( defined( $options->{Handler} ) or defined( $options->{ContentHandler} ) or defined( $options->{DTDHandler} ) or defined( $options->{DocumentHandler} ) or defined( $options->{LexicalHandler} ) or defined( $options->{ErrorHandler} ) or defined( $options->{DeclHandler} ) ) { $options->{Handler} = XML::SAX::Base::NoHandler->new; } my $self = bless $options, $class; # turn NS processing on by default $self->set_feature('http://xml.org/sax/features/namespaces', 1); return $self; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse(%options) #-------------------------------------------------------------------# sub parse { my $self = shift; my $parse_options = $self->get_options(@_); local $self->{ParseOptions} = $parse_options; if ($self->{Parent}) { # calling parse on a filter for some reason return $self->{Parent}->parse($parse_options); } else { my $method; if (defined $parse_options->{Source}{CharacterStream} and $method = $self->can('_parse_characterstream')) { warn("parse charstream???\n"); return $method->($self, $parse_options->{Source}{CharacterStream}); } elsif (defined $parse_options->{Source}{ByteStream} and $method = $self->can('_parse_bytestream')) { return $method->($self, $parse_options->{Source}{ByteStream}); } elsif (defined $parse_options->{Source}{String} and $method = $self->can('_parse_string')) { return $method->($self, $parse_options->{Source}{String}); } elsif (defined $parse_options->{Source}{SystemId} and $method = $self->can('_parse_systemid')) { return $method->($self, $parse_options->{Source}{SystemId}); } else { die "No _parse_* routine defined on this driver (If it is a filter, remember to set the Parent property. If you call the parse() method, make sure to set a Source. You may want to call parse_uri, parse_string or parse_file instead.) [$self]"; } } } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse_file(%options) #-------------------------------------------------------------------# sub parse_file { my $self = shift; my $file = shift; return $self->parse_uri($file, @_) if ref(\$file) eq 'SCALAR'; my $parse_options = $self->get_options(@_); $parse_options->{Source}{ByteStream} = $file; return $self->parse($parse_options); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse_uri(%options) #-------------------------------------------------------------------# sub parse_uri { my $self = shift; my $file = shift; my $parse_options = $self->get_options(@_); $parse_options->{Source}{SystemId} = $file; return $self->parse($parse_options); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse_string(%options) #-------------------------------------------------------------------# sub parse_string { my $self = shift; my $string = shift; my $parse_options = $self->get_options(@_); $parse_options->{Source}{String} = $string; return $self->parse($parse_options); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_options #-------------------------------------------------------------------# sub get_options { my $self = shift; if (@_ == 1) { return { %$self, %{$_[0]} }; } else { return { %$self, @_ }; } } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_features #-------------------------------------------------------------------# sub get_features { return ( 'http://xml.org/sax/features/external-general-entities' => undef, 'http://xml.org/sax/features/external-parameter-entities' => undef, 'http://xml.org/sax/features/is-standalone' => undef, 'http://xml.org/sax/features/lexical-handler' => undef, 'http://xml.org/sax/features/parameter-entities' => undef, 'http://xml.org/sax/features/namespaces' => 1, 'http://xml.org/sax/features/namespace-prefixes' => 0, 'http://xml.org/sax/features/string-interning' => undef, 'http://xml.org/sax/features/use-attributes2' => undef, 'http://xml.org/sax/features/use-locator2' => undef, 'http://xml.org/sax/features/validation' => undef, 'http://xml.org/sax/properties/dom-node' => undef, 'http://xml.org/sax/properties/xml-string' => undef, ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_feature #-------------------------------------------------------------------# sub get_feature { my $self = shift; my $feat = shift; # check %FEATURES to see if it's there, and return it if so # throw XML::SAX::Exception::NotRecognized if it's not there # throw XML::SAX::Exception::NotSupported if it's there but we # don't support it my %features = $self->get_features(); if (exists $features{$feat}) { my %supported = map { $_ => 1 } $self->supported_features(); if ($supported{$feat}) { return $self->{__PACKAGE__ . "::Features"}{$feat}; } throw XML::SAX::Exception::NotSupported( Message => "The feature '$feat' is not supported by " . ref($self), Exception => undef, ); } throw XML::SAX::Exception::NotRecognized( Message => "The feature '$feat' is not recognized by " . ref($self), Exception => undef, ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # set_feature #-------------------------------------------------------------------# sub set_feature { my $self = shift; my $feat = shift; my $value = shift; # check %FEATURES to see if it's there, and set it if so # throw XML::SAX::Exception::NotRecognized if it's not there # throw XML::SAX::Exception::NotSupported if it's there but we # don't support it my %features = $self->get_features(); if (exists $features{$feat}) { my %supported = map { $_ => 1 } $self->supported_features(); if ($supported{$feat}) { return $self->{__PACKAGE__ . "::Features"}{$feat} = $value; } throw XML::SAX::Exception::NotSupported( Message => "The feature '$feat' is not supported by " . ref($self), Exception => undef, ); } throw XML::SAX::Exception::NotRecognized( Message => "The feature '$feat' is not recognized by " . ref($self), Exception => undef, ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_handler and friends #-------------------------------------------------------------------# sub get_handler { my $self = shift; my $handler_type = shift; $handler_type ||= 'Handler'; return defined( $self->{$handler_type} ) ? $self->{$handler_type} : undef; } sub get_document_handler { my $self = shift; return $self->get_handler('DocumentHandler', @_); } sub get_content_handler { my $self = shift; return $self->get_handler('ContentHandler', @_); } sub get_dtd_handler { my $self = shift; return $self->get_handler('DTDHandler', @_); } sub get_lexical_handler { my $self = shift; return $self->get_handler('LexicalHandler', @_); } sub get_decl_handler { my $self = shift; return $self->get_handler('DeclHandler', @_); } sub get_error_handler { my $self = shift; return $self->get_handler('ErrorHandler', @_); } sub get_entity_resolver { my $self = shift; return $self->get_handler('EntityResolver', @_); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # set_handler and friends #-------------------------------------------------------------------# sub set_handler { my $self = shift; my ($new_handler, $handler_type) = reverse @_; $handler_type ||= 'Handler'; $self->{Methods} = {} if $self->{Methods}; $self->{$handler_type} = $new_handler; $self->{ParseOptions}->{$handler_type} = $new_handler; return 1; } sub set_document_handler { my $self = shift; return $self->set_handler('DocumentHandler', @_); } sub set_content_handler { my $self = shift; return $self->set_handler('ContentHandler', @_); } sub set_dtd_handler { my $self = shift; return $self->set_handler('DTDHandler', @_); } sub set_lexical_handler { my $self = shift; return $self->set_handler('LexicalHandler', @_); } sub set_decl_handler { my $self = shift; return $self->set_handler('DeclHandler', @_); } sub set_error_handler { my $self = shift; return $self->set_handler('ErrorHandler', @_); } sub set_entity_resolver { my $self = shift; return $self->set_handler('EntityResolver', @_); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # supported_features #-------------------------------------------------------------------# sub supported_features { my $self = shift; # Only namespaces are required by all parsers return ( 'http://xml.org/sax/features/namespaces', ); } #-------------------------------------------------------------------# sub no_op { # this space intentionally blank } package XML::SAX::Base::NoHandler; # we need a fake handler that doesn't implement anything, this # simplifies the code a lot (though given the recent changes, # it may be better to do without) sub new { #warn "no handler called\n"; return bless {}; } 1; BODY $code .= "__END__\n"; $code .= <<'FOOTER'; =head1 NAME XML::SAX::Base - Base class SAX Drivers and Filters =head1 SYNOPSIS package MyFilter; use XML::SAX::Base; @ISA = ('XML::SAX::Base'); =head1 DESCRIPTION This module has a very simple task - to be a base class for PerlSAX drivers and filters. It's default behaviour is to pass the input directly to the output unchanged. It can be useful to use this module as a base class so you don't have to, for example, implement the characters() callback. The main advantages that it provides are easy dispatching of events the right way (ie it takes care for you of checking that the handler has implemented that method, or has defined an AUTOLOAD), and the guarantee that filters will pass along events that they aren't implementing to handlers downstream that might nevertheless be interested in them. =head1 WRITING SAX DRIVERS AND FILTERS The Perl Sax API Reference is at L. Writing SAX Filters is tremendously easy: all you need to do is inherit from this module, and define the events you want to handle. A more detailed explanation can be found at http://www.xml.com/pub/a/2001/10/10/sax-filters.html. Writing Drivers is equally simple. The one thing you need to pay attention to is B to call events yourself (this applies to Filters as well). For instance: package MyFilter; use base qw(XML::SAX::Base); sub start_element { my $self = shift; my $data = shift; # do something $self->{Handler}->start_element($data); # BAD } The above example works well as precisely that: an example. But it has several faults: 1) it doesn't test to see whether the handler defines start_element. Perhaps it doesn't want to see that event, in which case you shouldn't throw it (otherwise it'll die). 2) it doesn't check ContentHandler and then Handler (ie it doesn't look to see that the user hasn't requested events on a specific handler, and if not on the default one), 3) if it did check all that, not only would the code be cumbersome (see this module's source to get an idea) but it would also probably have to check for a DocumentHandler (in case this were SAX1) and for AUTOLOADs potentially defined in all these packages. As you can tell, that would be fairly painful. Instead of going through that, simply remember to use code similar to the following instead: package MyFilter; use base qw(XML::SAX::Base); sub start_element { my $self = shift; my $data = shift; # do something to filter $self->SUPER::start_element($data); # GOOD (and easy) ! } This way, once you've done your job you hand the ball back to XML::SAX::Base and it takes care of all those problems for you! Note that the above example doesn't apply to filters only, drivers will benefit from the exact same feature. =head1 METHODS A number of methods are defined within this class for the purpose of inheritance. Some probably don't need to be overridden (eg parse_file) but some clearly should be (eg parse). Options for these methods are described in the PerlSAX2 specification available from http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/~checkout~/perl-xml/libxml-perl/doc/sax-2.0.html?rev=HEAD&content-type=text/html. =over 4 =item * parse The parse method is the main entry point to parsing documents. Internally the parse method will detect what type of "thing" you are parsing, and call the appropriate method in your implementation class. Here is the mapping table of what is in the Source options (see the Perl SAX 2.0 specification for the meaning of these values): Source Contains parse() calls =============== ============= CharacterStream (*) _parse_characterstream($stream, $options) ByteStream _parse_bytestream($stream, $options) String _parse_string($string, $options) SystemId _parse_systemid($string, $options) However note that these methods may not be sensible if your driver class is not for parsing XML. An example might be a DBI driver that generates XML/SAX from a database table. If that is the case, you likely want to write your own parse() method. Also note that the Source may contain both a PublicId entry, and an Encoding entry. To get at these, examine $options->{Source} as passed to your method. (*) A CharacterStream is a filehandle that does not need any encoding translation done on it. This is implemented as a regular filehandle and only works under Perl 5.7.2 or higher using PerlIO. To get a single character, or number of characters from it, use the perl core read() function. To get a single byte from it (or number of bytes), you can use sysread(). The encoding of the stream should be in the Encoding entry for the Source. =item * parse_file, parse_uri, parse_string These are all convenience variations on parse(), and in fact simply set up the options before calling it. You probably don't need to override these. =item * get_options This is a convenience method to get options in SAX2 style, or more generically either as hashes or as hashrefs (it returns a hashref). You will probably want to use this method in your own implementations of parse() and of new(). =item * get_feature, set_feature These simply get and set features, and throw the appropriate exceptions defined in the specification if need be. If your subclass defines features not defined in this one, then you should override these methods in such a way that they check for your features first, and then call the base class's methods for features not defined by your class. An example would be: sub get_feature { my $self = shift; my $feat = shift; if (exists $MY_FEATURES{$feat}) { # handle the feature in various ways } else { return $self->SUPER::get_feature($feat); } } Currently this part is unimplemented. =item * set_handler This method takes a handler type (Handler, ContentHandler, etc.) and a handler object as arguments, and changes the current handler for that handler type, while taking care of resetting the internal state that needs to be reset. This allows one to change a handler during parse without running into problems (changing it on the parser object directly will most likely cause trouble). =item * set_document_handler, set_content_handler, set_dtd_handler, set_lexical_handler, set_decl_handler, set_error_handler, set_entity_resolver These are just simple wrappers around the former method, and take a handler object as their argument. Internally they simply call set_handler with the correct arguments. =item * get_handler The inverse of set_handler, this method takes a an optional string containing a handler type (DTDHandler, ContentHandler, etc. 'Handler' is used if no type is passed). It returns a reference to the object that implements that class, or undef if that handler type is not set for the current driver/filter. =item * get_document_handler, get_content_handler, get_dtd_handler, get_lexical_handler, get_decl_handler, get_error_handler, get_entity_resolver These are just simple wrappers around the get_handler() method, and take no arguments. Internally they simply call get_handler with the correct handler type name. =back It would be rather useless to describe all the methods that this module implements here. They are all the methods supported in SAX1 and SAX2. In case your memory is a little short, here is a list. The apparent duplicates are there so that both versions of SAX can be supported. =over 4 =item * start_document =item * end_document =item * start_element =item * start_document =item * end_document =item * start_element =item * end_element =item * characters =item * processing_instruction =item * ignorable_whitespace =item * set_document_locator =item * start_prefix_mapping =item * end_prefix_mapping =item * skipped_entity =item * start_cdata =item * end_cdata =item * comment =item * entity_reference =item * notation_decl =item * unparsed_entity_decl =item * element_decl =item * attlist_decl =item * doctype_decl =item * xml_decl =item * entity_decl =item * attribute_decl =item * internal_entity_decl =item * external_entity_decl =item * resolve_entity =item * start_dtd =item * end_dtd =item * start_entity =item * end_entity =item * warning =item * error =item * fatal_error =back =head1 TODO - more tests - conform to the "SAX Filters" and "Java and DOM compatibility" sections of the SAX2 document. =head1 AUTHOR Kip Hampton (khampton@totalcinema.com) did most of the work, after porting it from XML::Filter::Base. Robin Berjon (robin@knowscape.com) pitched in with patches to make it usable as a base for drivers as well as filters, along with other patches. Matt Sergeant (matt@sergeant.org) wrote the original XML::Filter::Base, and patched a few things here and there, and imported it into the XML::SAX distribution. =head1 SEE ALSO L =cut FOOTER return $code; } sub write_xml_sax_base { confirm_forced_update(); my $path = File::Spec->catfile("lib", "XML", "SAX", "Base.pm"); save_original_xml_sax_base($path); my $code = build_xml_sax_base(); $code = add_version_stanzas($code); open my $fh, ">", $path or die "Cannot write $path: $!"; print $fh $code; close $fh or die "Error writing $path: $!"; print "Wrote $path\n"; } sub confirm_forced_update { return if grep { $_ eq '--force' } @ARGV; print <<'EOF'; *** WARNING *** The BuildSAXBase.pl script is used to generate the lib/XML/SAX/Base.pm file. However a pre-generated version of Base.pm is included in the distribution so you do not need to run this script unless you intend to modify the code. You must use the --force option to deliberately overwrite the distributed version of lib/XML/SAX/Base.pm EOF exit; } sub save_original_xml_sax_base { my($path) = @_; return unless -e $path; (my $save_path = $path) =~ s{Base}{Base-orig}; return if -e $save_path; print "Saving $path to $save_path\n"; rename($path, $save_path); } sub add_version_stanzas { my($code) = @_; my $version = get_xml_sax_base_version(); $code =~ s<^(package\s+(\w[:\w]+).*?\n)> <${1}BEGIN {\n \$${2}::VERSION = '$version';\n}\n>mg; return $code; } sub get_xml_sax_base_version { open my $fh, '<', 'dist.ini' or die "open() { m{^\s*version\s*=\s*(\S+)} && return $1; } die "Failed to find version in dist.ini"; } SAX/PurePerl/DTDDecls.pm000044400000041140152345536550010674 0ustar00# $Id$ package XML::SAX::PurePerl; use strict; use XML::SAX::PurePerl::Productions qw($SingleChar); sub elementdecl { my ($self, $reader) = @_; my $data = $reader->data(9); return 0 unless $data =~ /^move_along(9); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after ELEMENT declaration", $reader); my $name = $self->Name($reader); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after ELEMENT's name", $reader); $self->contentspec($reader, $name); $self->skip_whitespace($reader); $reader->match('>') or $self->parser_error("Closing angle bracket not found on ELEMENT declaration", $reader); return 1; } sub contentspec { my ($self, $reader, $name) = @_; my $data = $reader->data(5); my $model; if ($data =~ /^EMPTY/) { $reader->move_along(5); $model = 'EMPTY'; } elsif ($data =~ /^ANY/) { $reader->move_along(3); $model = 'ANY'; } else { $model = $self->Mixed_or_children($reader); } if ($model) { # call SAX callback now. $self->element_decl({Name => $name, Model => $model}); return 1; } $self->parser_error("contentspec not found in ELEMENT declaration", $reader); } sub Mixed_or_children { my ($self, $reader) = @_; my $data = $reader->data(8); $data =~ /^\(/ or return; # $self->parser_error("No opening bracket in Mixed or children", $reader); if ($data =~ /^\(\s*\#PCDATA/) { $reader->match('('); $self->skip_whitespace($reader); $reader->move_along(7); my $model = $self->Mixed($reader); return $model; } # not matched - must be Children return $self->children($reader); } # Mixed ::= ( '(' S* PCDATA ( S* '|' S* QName )* S* ')' '*' ) # | ( '(' S* PCDATA S* ')' ) sub Mixed { my ($self, $reader) = @_; # Mixed_or_children already matched '(' S* '#PCDATA' my $model = '(#PCDATA'; $self->skip_whitespace($reader); my %seen; while (1) { last unless $reader->match('|'); $self->skip_whitespace($reader); my $name = $self->Name($reader) || $self->parser_error("No 'Name' after Mixed content '|'", $reader); if ($seen{$name}) { $self->parser_error("Element '$name' has already appeared in this group", $reader); } $seen{$name}++; $model .= "|$name"; $self->skip_whitespace($reader); } $reader->match(')') || $self->parser_error("no closing bracket on mixed content", $reader); $model .= ")"; if ($reader->match('*')) { $model .= "*"; } return $model; } # [[47]] Children ::= ChoiceOrSeq Cardinality? # [[48]] Cp ::= ( QName | ChoiceOrSeq ) Cardinality? # ChoiceOrSeq ::= '(' S* Cp ( Choice | Seq )? S* ')' # [[49]] Choice ::= ( S* '|' S* Cp )+ # [[50]] Seq ::= ( S* ',' S* Cp )+ # // Children ::= (Choice | Seq) Cardinality? # // Cp ::= ( QName | Choice | Seq) Cardinality? # // Choice ::= '(' S* Cp ( S* '|' S* Cp )+ S* ')' # // Seq ::= '(' S* Cp ( S* ',' S* Cp )* S* ')' # [[51]] Mixed ::= ( '(' S* PCDATA ( S* '|' S* QName )* S* ')' MixedCardinality ) # | ( '(' S* PCDATA S* ')' ) # Cardinality ::= '?' | '+' | '*' # MixedCardinality ::= '*' sub children { my ($self, $reader) = @_; return $self->ChoiceOrSeq($reader) . $self->Cardinality($reader); } sub ChoiceOrSeq { my ($self, $reader) = @_; $reader->match('(') or $self->parser_error("choice/seq contains no opening bracket", $reader); my $model = '('; $self->skip_whitespace($reader); $model .= $self->Cp($reader); if (my $choice = $self->Choice($reader)) { $model .= $choice; } else { $model .= $self->Seq($reader); } $self->skip_whitespace($reader); $reader->match(')') or $self->parser_error("choice/seq contains no closing bracket", $reader); $model .= ')'; return $model; } sub Cardinality { my ($self, $reader) = @_; # cardinality is always optional my $data = $reader->data; if ($data =~ /^([\?\+\*])/) { $reader->move_along(1); return $1; } return ''; } sub Cp { my ($self, $reader) = @_; my $model; my $name = eval { if (my $name = $self->Name($reader)) { return $name . $self->Cardinality($reader); } }; return $name if defined $name; return $self->ChoiceOrSeq($reader) . $self->Cardinality($reader); } sub Choice { my ($self, $reader) = @_; my $model = ''; $self->skip_whitespace($reader); while ($reader->match('|')) { $self->skip_whitespace($reader); $model .= '|'; $model .= $self->Cp($reader); $self->skip_whitespace($reader); } return $model; } sub Seq { my ($self, $reader) = @_; my $model = ''; $self->skip_whitespace($reader); while ($reader->match(',')) { $self->skip_whitespace($reader); my $cp = $self->Cp($reader); if ($cp) { $model .= ','; $model .= $cp; } $self->skip_whitespace($reader); } return $model; } sub AttlistDecl { my ($self, $reader) = @_; my $data = $reader->data(9); if ($data =~ /^move_along(9); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after ATTLIST declaration", $reader); my $name = $self->Name($reader); $self->AttDefList($reader, $name); $self->skip_whitespace($reader); $reader->match('>') or $self->parser_error("Closing angle bracket not found on ATTLIST declaration", $reader); return 1; } return 0; } sub AttDefList { my ($self, $reader, $name) = @_; 1 while $self->AttDef($reader, $name); } sub AttDef { my ($self, $reader, $el_name) = @_; $self->skip_whitespace($reader) || return 0; my $att_name = $self->Name($reader) || return 0; $self->skip_whitespace($reader) || $self->parser_error("No whitespace after Name in attribute definition", $reader); my $att_type = $self->AttType($reader); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after AttType in attribute definition", $reader); my ($mode, $value) = $self->DefaultDecl($reader); # fire SAX event here! $self->attribute_decl({ eName => $el_name, aName => $att_name, Type => $att_type, Mode => $mode, Value => $value, }); return 1; } sub AttType { my ($self, $reader) = @_; return $self->StringType($reader) || $self->TokenizedType($reader) || $self->EnumeratedType($reader) || $self->parser_error("Can't match AttType", $reader); } sub StringType { my ($self, $reader) = @_; my $data = $reader->data(5); return unless $data =~ /^CDATA/; $reader->move_along(5); return 'CDATA'; } sub TokenizedType { my ($self, $reader) = @_; my $data = $reader->data(8); if ($data =~ /^(IDREFS?|ID|ENTITIES|ENTITY|NMTOKENS?)/) { $reader->move_along(length($1)); return $1; } return; } sub EnumeratedType { my ($self, $reader) = @_; return $self->NotationType($reader) || $self->Enumeration($reader); } sub NotationType { my ($self, $reader) = @_; my $data = $reader->data(8); return unless $data =~ /^NOTATION/; $reader->move_along(8); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after NOTATION", $reader); $reader->match('(') or $self->parser_error("No opening bracket in notation section", $reader); $self->skip_whitespace($reader); my $model = 'NOTATION ('; my $name = $self->Name($reader) || $self->parser_error("No name in notation section", $reader); $model .= $name; $self->skip_whitespace($reader); $data = $reader->data; while ($data =~ /^\|/) { $reader->move_along(1); $model .= '|'; $self->skip_whitespace($reader); my $name = $self->Name($reader) || $self->parser_error("No name in notation section", $reader); $model .= $name; $self->skip_whitespace($reader); $data = $reader->data; } $data =~ /^\)/ or $self->parser_error("No closing bracket in notation section", $reader); $reader->move_along(1); $model .= ')'; return $model; } sub Enumeration { my ($self, $reader) = @_; return unless $reader->match('('); $self->skip_whitespace($reader); my $model = '('; my $nmtoken = $self->Nmtoken($reader) || $self->parser_error("No Nmtoken in enumerated declaration", $reader); $model .= $nmtoken; $self->skip_whitespace($reader); my $data = $reader->data; while ($data =~ /^\|/) { $model .= '|'; $reader->move_along(1); $self->skip_whitespace($reader); my $nmtoken = $self->Nmtoken($reader) || $self->parser_error("No Nmtoken in enumerated declaration", $reader); $model .= $nmtoken; $self->skip_whitespace($reader); $data = $reader->data; } $data =~ /^\)/ or $self->parser_error("No closing bracket in enumerated declaration", $reader); $reader->move_along(1); $model .= ')'; return $model; } sub Nmtoken { my ($self, $reader) = @_; return $self->Name($reader); } sub DefaultDecl { my ($self, $reader) = @_; my $data = $reader->data(9); if ($data =~ /^(\#REQUIRED|\#IMPLIED)/) { $reader->move_along(length($1)); return $1; } my $model = ''; if ($data =~ /^\#FIXED/) { $reader->move_along(6); $self->skip_whitespace($reader) || $self->parser_error( "no whitespace after FIXED specifier", $reader); my $value = $self->AttValue($reader); return "#FIXED", $value; } my $value = $self->AttValue($reader); return undef, $value; } sub EntityDecl { my ($self, $reader) = @_; my $data = $reader->data(8); return 0 unless $data =~ /^move_along(8); $self->skip_whitespace($reader) || $self->parser_error( "No whitespace after ENTITY declaration", $reader); $self->PEDecl($reader) || $self->GEDecl($reader); $self->skip_whitespace($reader); $reader->match('>') or $self->parser_error("No closing '>' in entity definition", $reader); return 1; } sub GEDecl { my ($self, $reader) = @_; my $name = $self->Name($reader) || $self->parser_error("No entity name given", $reader); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after entity name", $reader); # TODO: ExternalID calls lexhandler method. Wrong place for it. my $value; if ($value = $self->ExternalID($reader)) { $value .= $self->NDataDecl($reader); } else { $value = $self->EntityValue($reader); } if ($self->{ParseOptions}{entities}{$name}) { warn("entity $name already exists\n"); } else { $self->{ParseOptions}{entities}{$name} = 1; $self->{ParseOptions}{expanded_entity}{$name} = $value; # ??? } # do callback? return 1; } sub PEDecl { my ($self, $reader) = @_; return 0 unless $reader->match('%'); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after parameter entity marker", $reader); my $name = $self->Name($reader) || $self->parser_error("No parameter entity name given", $reader); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after parameter entity name", $reader); my $value = $self->ExternalID($reader) || $self->EntityValue($reader) || $self->parser_error("PE is not a value or an external resource", $reader); # do callback? return 1; } my $quotre = qr/[^%&\"]/; my $aposre = qr/[^%&\']/; sub EntityValue { my ($self, $reader) = @_; my $data = $reader->data; my $quote = '"'; my $re = $quotre; if ($data !~ /^"/) { $data =~ /^'/ or $self->parser_error("Not a quote character", $reader); $quote = "'"; $re = $aposre; } $reader->move_along(1); my $value = ''; while (1) { my $data = $reader->data; $self->parser_error("EOF found while reading entity value", $reader) unless length($data); if ($data =~ /^($re+)/) { my $match = $1; $value .= $match; $reader->move_along(length($match)); } elsif ($reader->match('&')) { # if it's a char ref, expand now: if ($reader->match('#')) { my $char; my $ref = ''; if ($reader->match('x')) { my $data = $reader->data; while (1) { $self->parser_error("EOF looking for reference end", $reader) unless length($data); if ($data !~ /^([0-9a-fA-F]*)/) { last; } $ref .= $1; $reader->move_along(length($1)); if (length($1) == length($data)) { $data = $reader->data; } else { last; } } $char = chr_ref(hex($ref)); $ref = "x$ref"; } else { my $data = $reader->data; while (1) { $self->parser_error("EOF looking for reference end", $reader) unless length($data); if ($data !~ /^([0-9]*)/) { last; } $ref .= $1; $reader->move_along(length($1)); if (length($1) == length($data)) { $data = $reader->data; } else { last; } } $char = chr($ref); } $reader->match(';') || $self->parser_error("No semi-colon found after character reference", $reader); if ($char !~ $SingleChar) { # match a single character $self->parser_error("Character reference '&#$ref;' refers to an illegal XML character ($char)", $reader); } $value .= $char; } else { # entity refs in entities get expanded later, so don't parse now. $value .= '&'; } } elsif ($reader->match('%')) { $value .= $self->PEReference($reader); } elsif ($reader->match($quote)) { # end of attrib last; } else { $self->parser_error("Invalid character in attribute value: " . substr($reader->data, 0, 1), $reader); } } return $value; } sub NDataDecl { my ($self, $reader) = @_; $self->skip_whitespace($reader) || return ''; my $data = $reader->data(5); return '' unless $data =~ /^NDATA/; $reader->move_along(5); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after NDATA declaration", $reader); my $name = $self->Name($reader) || $self->parser_error("NDATA declaration lacks a proper Name", $reader); return " NDATA $name"; } sub NotationDecl { my ($self, $reader) = @_; my $data = $reader->data(10); return 0 unless $data =~ /^move_along(10); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after NOTATION declaration", $reader); $data = $reader->data; my $value = ''; while(1) { $self->parser_error("EOF found while looking for end of NotationDecl", $reader) unless length($data); if ($data =~ /^([^>]*)>/) { $value .= $1; $reader->move_along(length($1) + 1); $self->notation_decl({Name => "FIXME", SystemId => "FIXME", PublicId => "FIXME" }); last; } else { $value .= $data; $reader->move_along(length($data)); $data = $reader->data; } } return 1; } 1; SAX/PurePerl/UnicodeExt.pm000044400000000561152345536550011357 0ustar00# $Id$ package XML::SAX::PurePerl; use strict; no warnings 'utf8'; sub chr_ref { return chr(shift); } if ($] >= 5.007002) { require Encode; Encode::define_alias( "UTF-16" => "UCS-2" ); Encode::define_alias( "UTF-16BE" => "UCS-2" ); Encode::define_alias( "UTF-16LE" => "ucs-2le" ); Encode::define_alias( "UTF16LE" => "ucs-2le" ); } 1; SAX/PurePerl/XMLDecl.pm000044400000006475152345536550010552 0ustar00# $Id$ package XML::SAX::PurePerl; use strict; use XML::SAX::PurePerl::Productions qw($S $VersionNum $EncNameStart $EncNameEnd); sub XMLDecl { my ($self, $reader) = @_; my $data = $reader->data(5); # warn("Looking for xmldecl in: $data"); if ($data =~ /^<\?xml$S/o) { $reader->move_along(5); $self->skip_whitespace($reader); # get version attribute $self->VersionInfo($reader) || $self->parser_error("XML Declaration lacks required version attribute, or version attribute does not match XML specification", $reader); if (!$self->skip_whitespace($reader)) { my $data = $reader->data(2); $data =~ /^\?>/ or $self->parser_error("Syntax error", $reader); $reader->move_along(2); return; } if ($self->EncodingDecl($reader)) { if (!$self->skip_whitespace($reader)) { my $data = $reader->data(2); $data =~ /^\?>/ or $self->parser_error("Syntax error", $reader); $reader->move_along(2); return; } } $self->SDDecl($reader); $self->skip_whitespace($reader); my $data = $reader->data(2); $data =~ /^\?>/ or $self->parser_error("Syntax error", $reader); $reader->move_along(2); } else { # warn("first 5 bytes: ", join(',', unpack("CCCCC", $data)), "\n"); # no xml decl if (!$reader->get_encoding) { $reader->set_encoding("UTF-8"); } } } sub VersionInfo { my ($self, $reader) = @_; my $data = $reader->data(11); # warn("Looking for version in $data"); $data =~ /^(version$S*=$S*(["'])($VersionNum)\2)/o or return 0; $reader->move_along(length($1)); my $vernum = $3; if ($vernum ne "1.0") { $self->parser_error("Only XML version 1.0 supported. Saw: '$vernum'", $reader); } return 1; } sub SDDecl { my ($self, $reader) = @_; my $data = $reader->data(15); $data =~ /^(standalone$S*=$S*(["'])(yes|no)\2)/o or return 0; $reader->move_along(length($1)); my $yesno = $3; if ($yesno eq 'yes') { $self->{standalone} = 1; } else { $self->{standalone} = 0; } return 1; } sub EncodingDecl { my ($self, $reader) = @_; my $data = $reader->data(12); $data =~ /^(encoding$S*=$S*(["'])($EncNameStart$EncNameEnd*)\2)/o or return 0; $reader->move_along(length($1)); my $encoding = $3; $reader->set_encoding($encoding); return 1; } sub TextDecl { my ($self, $reader) = @_; my $data = $reader->data(6); $data =~ /^<\?xml$S+/ or return; $reader->move_along(5); $self->skip_whitespace($reader); if ($self->VersionInfo($reader)) { $self->skip_whitespace($reader) || $self->parser_error("Lack of whitespace after version attribute in text declaration", $reader); } $self->EncodingDecl($reader) || $self->parser_error("Encoding declaration missing from external entity text declaration", $reader); $self->skip_whitespace($reader); $data = $reader->data(2); $data =~ /^\?>/ or $self->parser_error("Syntax error", $reader); return 1; } 1; SAX/PurePerl/DebugHandler.pm000044400000003527152345536550011641 0ustar00# $Id$ package XML::SAX::PurePerl::DebugHandler; use strict; sub new { my $class = shift; my %opts = @_; return bless \%opts, $class; } # DocumentHandler sub set_document_locator { my $self = shift; print "set_document_locator\n" if $ENV{DEBUG_XML}; $self->{seen}{set_document_locator}++; } sub start_document { my $self = shift; print "start_document\n" if $ENV{DEBUG_XML}; $self->{seen}{start_document}++; } sub end_document { my $self = shift; print "end_document\n" if $ENV{DEBUG_XML}; $self->{seen}{end_document}++; } sub start_element { my $self = shift; print "start_element\n" if $ENV{DEBUG_XML}; $self->{seen}{start_element}++; } sub end_element { my $self = shift; print "end_element\n" if $ENV{DEBUG_XML}; $self->{seen}{end_element}++; } sub characters { my $self = shift; print "characters\n" if $ENV{DEBUG_XML}; # warn "Char: ", $_[0]->{Data}, "\n"; $self->{seen}{characters}++; } sub processing_instruction { my $self = shift; print "processing_instruction\n" if $ENV{DEBUG_XML}; $self->{seen}{processing_instruction}++; } sub ignorable_whitespace { my $self = shift; print "ignorable_whitespace\n" if $ENV{DEBUG_XML}; $self->{seen}{ignorable_whitespace}++; } # LexHandler sub comment { my $self = shift; print "comment\n" if $ENV{DEBUG_XML}; $self->{seen}{comment}++; } # DTDHandler sub notation_decl { my $self = shift; print "notation_decl\n" if $ENV{DEBUG_XML}; $self->{seen}{notation_decl}++; } sub unparsed_entity_decl { my $self = shift; print "unparsed_entity_decl\n" if $ENV{DEBUG_XML}; $self->{seen}{entity_decl}++; } # EntityResolver sub resolve_entity { my $self = shift; print "resolve_entity\n" if $ENV{DEBUG_XML}; $self->{seen}{resolve_entity}++; return ''; } 1; SAX/PurePerl/EncodingDetect.pm000044400000005104152345536550012165 0ustar00# $Id$ package XML::SAX::PurePerl; # NB, not ::EncodingDetect! use strict; sub encoding_detect { my ($parser, $reader) = @_; my $error = "Invalid byte sequence at start of file"; my $data = $reader->data; if ($data =~ /^\x00\x00\xFE\xFF/) { # BO-UCS4-be $reader->move_along(4); $reader->set_encoding('UCS-4BE'); return; } elsif ($data =~ /^\x00\x00\xFF\xFE/) { # BO-UCS-4-2143 $reader->move_along(4); $reader->set_encoding('UCS-4-2143'); return; } elsif ($data =~ /^\x00\x00\x00\x3C/) { $reader->set_encoding('UCS-4BE'); return; } elsif ($data =~ /^\x00\x00\x3C\x00/) { $reader->set_encoding('UCS-4-2143'); return; } elsif ($data =~ /^\x00\x3C\x00\x00/) { $reader->set_encoding('UCS-4-3412'); return; } elsif ($data =~ /^\x00\x3C\x00\x3F/) { $reader->set_encoding('UTF-16BE'); return; } elsif ($data =~ /^\xFF\xFE\x00\x00/) { # BO-UCS-4LE $reader->move_along(4); $reader->set_encoding('UCS-4LE'); return; } elsif ($data =~ /^\xFF\xFE/) { $reader->move_along(2); $reader->set_encoding('UTF-16LE'); return; } elsif ($data =~ /^\xFE\xFF\x00\x00/) { $reader->move_along(4); $reader->set_encoding('UCS-4-3412'); return; } elsif ($data =~ /^\xFE\xFF/) { $reader->move_along(2); $reader->set_encoding('UTF-16BE'); return; } elsif ($data =~ /^\xEF\xBB\xBF/) { # UTF-8 BOM $reader->move_along(3); $reader->set_encoding('UTF-8'); return; } elsif ($data =~ /^\x3C\x00\x00\x00/) { $reader->set_encoding('UCS-4LE'); return; } elsif ($data =~ /^\x3C\x00\x3F\x00/) { $reader->set_encoding('UTF-16LE'); return; } elsif ($data =~ /^\x3C\x3F\x78\x6D/) { # $reader->set_encoding('UTF-8'); return; } elsif ($data =~ /^\x3C\x3F\x78/) { # $reader->set_encoding('UTF-8'); return; } elsif ($data =~ /^\x3C\x3F/) { # $reader->set_encoding('UTF-8'); return; } elsif ($data =~ /^\x3C/) { # $reader->set_encoding('UTF-8'); return; } elsif ($data =~ /^[\x20\x09\x0A\x0D]+\x3C[^\x3F]/) { # $reader->set_encoding('UTF-8'); return; } elsif ($data =~ /^\x4C\x6F\xA7\x94/) { $reader->set_encoding('EBCDIC'); return; } warn("Unable to recognise encoding of this document"); return; } 1; SAX/PurePerl/NoUnicodeExt.pm000044400000001164152345536550011654 0ustar00# $Id$ package XML::SAX::PurePerl; use strict; sub chr_ref { my $n = shift; if ($n < 0x80) { return chr ($n); } elsif ($n < 0x800) { return pack ("CC", (($n >> 6) | 0xc0), (($n & 0x3f) | 0x80)); } elsif ($n < 0x10000) { return pack ("CCC", (($n >> 12) | 0xe0), ((($n >> 6) & 0x3f) | 0x80), (($n & 0x3f) | 0x80)); } elsif ($n < 0x110000) { return pack ("CCCC", (($n >> 18) | 0xf0), ((($n >> 12) & 0x3f) | 0x80), ((($n >> 6) & 0x3f) | 0x80), (($n & 0x3f) | 0x80)); } else { return undef; } } 1; SAX/PurePerl/Productions.pm000044400000014737152345536550011633 0ustar00# $Id$ package XML::SAX::PurePerl::Productions; use Exporter; @ISA = ('Exporter'); @EXPORT_OK = qw($S $Char $VersionNum $BaseChar $Ideographic $Extender $Digit $CombiningChar $EncNameStart $EncNameEnd $NameChar $CharMinusDash $PubidChar $Any $SingleChar); ### WARNING!!! All productions here must *only* match a *single* character!!! ### BEGIN { $S = qr/[\x20\x09\x0D\x0A]/; $CharMinusDash = qr/[^-]/x; $Any = qr/ . /xms; $VersionNum = qr/ [a-zA-Z0-9_.:-]+ /x; $EncNameStart = qr/ [A-Za-z] /x; $EncNameEnd = qr/ [A-Za-z0-9\._-] /x; $PubidChar = qr/ [\x20\x0D\x0Aa-zA-Z0-9'()\+,.\/:=\?;!*\#@\$_\%-] /x; if ($] < 5.006) { eval <<' PERL'; $Char = qr/^ [\x09\x0A\x0D\x20-\x7F]|([\xC0-\xFD][\x80-\xBF]+) $/x; $SingleChar = qr/^$Char$/; $BaseChar = qr/ [\x41-\x5A\x61-\x7A]|([\xC0-\xFD][\x80-\xBF]+) /x; $Extender = qr/ \xB7 /x; $Digit = qr/ [\x30-\x39] /x; # can't do this one without unicode # $CombiningChar = qr/^$/msx; $NameChar = qr/^ (?: $BaseChar | $Digit | [._:-] | $Extender )+ $/x; PERL die $@ if $@; } else { eval <<' PERL'; use utf8; # for 5.6 $Char = qr/^ [\x09\x0A\x0D\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}] $/x; $SingleChar = qr/^$Char$/; $BaseChar = qr/ [\x{0041}-\x{005A}\x{0061}-\x{007A}\x{00C0}-\x{00D6}\x{00D8}-\x{00F6}] | [\x{00F8}-\x{00FF}\x{0100}-\x{0131}\x{0134}-\x{013E}\x{0141}-\x{0148}] | [\x{014A}-\x{017E}\x{0180}-\x{01C3}\x{01CD}-\x{01F0}\x{01F4}-\x{01F5}] | [\x{01FA}-\x{0217}\x{0250}-\x{02A8}\x{02BB}-\x{02C1}\x{0386}\x{0388}-\x{038A}] | [\x{038C}\x{038E}-\x{03A1}\x{03A3}-\x{03CE}\x{03D0}-\x{03D6}\x{03DA}] | [\x{03DC}\x{03DE}\x{03E0}\x{03E2}-\x{03F3}\x{0401}-\x{040C}\x{040E}-\x{044F}] | [\x{0451}-\x{045C}\x{045E}-\x{0481}\x{0490}-\x{04C4}\x{04C7}-\x{04C8}] | [\x{04CB}-\x{04CC}\x{04D0}-\x{04EB}\x{04EE}-\x{04F5}\x{04F8}-\x{04F9}] | [\x{0531}-\x{0556}\x{0559}\x{0561}-\x{0586}\x{05D0}-\x{05EA}\x{05F0}-\x{05F2}] | [\x{0621}-\x{063A}\x{0641}-\x{064A}\x{0671}-\x{06B7}\x{06BA}-\x{06BE}] | [\x{06C0}-\x{06CE}\x{06D0}-\x{06D3}\x{06D5}\x{06E5}-\x{06E6}\x{0905}-\x{0939}] | [\x{093D}\x{0958}-\x{0961}\x{0985}-\x{098C}\x{098F}-\x{0990}] | [\x{0993}-\x{09A8}\x{09AA}-\x{09B0}\x{09B2}\x{09B6}-\x{09B9}\x{09DC}-\x{09DD}] | [\x{09DF}-\x{09E1}\x{09F0}-\x{09F1}\x{0A05}-\x{0A0A}\x{0A0F}-\x{0A10}] | [\x{0A13}-\x{0A28}\x{0A2A}-\x{0A30}\x{0A32}-\x{0A33}\x{0A35}-\x{0A36}] | [\x{0A38}-\x{0A39}\x{0A59}-\x{0A5C}\x{0A5E}\x{0A72}-\x{0A74}\x{0A85}-\x{0A8B}] | [\x{0A8D}\x{0A8F}-\x{0A91}\x{0A93}-\x{0AA8}\x{0AAA}-\x{0AB0}] | [\x{0AB2}-\x{0AB3}\x{0AB5}-\x{0AB9}\x{0ABD}\x{0AE0}\x{0B05}-\x{0B0C}] | [\x{0B0F}-\x{0B10}\x{0B13}-\x{0B28}\x{0B2A}-\x{0B30}\x{0B32}-\x{0B33}] | [\x{0B36}-\x{0B39}\x{0B3D}\x{0B5C}-\x{0B5D}\x{0B5F}-\x{0B61}\x{0B85}-\x{0B8A}] | [\x{0B8E}-\x{0B90}\x{0B92}-\x{0B95}\x{0B99}-\x{0B9A}\x{0B9C}] | [\x{0B9E}-\x{0B9F}\x{0BA3}-\x{0BA4}\x{0BA8}-\x{0BAA}\x{0BAE}-\x{0BB5}] | [\x{0BB7}-\x{0BB9}\x{0C05}-\x{0C0C}\x{0C0E}-\x{0C10}\x{0C12}-\x{0C28}] | [\x{0C2A}-\x{0C33}\x{0C35}-\x{0C39}\x{0C60}-\x{0C61}\x{0C85}-\x{0C8C}] | [\x{0C8E}-\x{0C90}\x{0C92}-\x{0CA8}\x{0CAA}-\x{0CB3}\x{0CB5}-\x{0CB9}\x{0CDE}] | [\x{0CE0}-\x{0CE1}\x{0D05}-\x{0D0C}\x{0D0E}-\x{0D10}\x{0D12}-\x{0D28}] | [\x{0D2A}-\x{0D39}\x{0D60}-\x{0D61}\x{0E01}-\x{0E2E}\x{0E30}\x{0E32}-\x{0E33}] | [\x{0E40}-\x{0E45}\x{0E81}-\x{0E82}\x{0E84}\x{0E87}-\x{0E88}\x{0E8A}] | [\x{0E8D}\x{0E94}-\x{0E97}\x{0E99}-\x{0E9F}\x{0EA1}-\x{0EA3}\x{0EA5}\x{0EA7}] | [\x{0EAA}-\x{0EAB}\x{0EAD}-\x{0EAE}\x{0EB0}\x{0EB2}-\x{0EB3}\x{0EBD}] | [\x{0EC0}-\x{0EC4}\x{0F40}-\x{0F47}\x{0F49}-\x{0F69}\x{10A0}-\x{10C5}] | [\x{10D0}-\x{10F6}\x{1100}\x{1102}-\x{1103}\x{1105}-\x{1107}\x{1109}] | [\x{110B}-\x{110C}\x{110E}-\x{1112}\x{113C}\x{113E}\x{1140}\x{114C}\x{114E}] | [\x{1150}\x{1154}-\x{1155}\x{1159}\x{115F}-\x{1161}\x{1163}\x{1165}] | [\x{1167}\x{1169}\x{116D}-\x{116E}\x{1172}-\x{1173}\x{1175}\x{119E}\x{11A8}] | [\x{11AB}\x{11AE}-\x{11AF}\x{11B7}-\x{11B8}\x{11BA}\x{11BC}-\x{11C2}] | [\x{11EB}\x{11F0}\x{11F9}\x{1E00}-\x{1E9B}\x{1EA0}-\x{1EF9}\x{1F00}-\x{1F15}] | [\x{1F18}-\x{1F1D}\x{1F20}-\x{1F45}\x{1F48}-\x{1F4D}\x{1F50}-\x{1F57}] | [\x{1F59}\x{1F5B}\x{1F5D}\x{1F5F}-\x{1F7D}\x{1F80}-\x{1FB4}\x{1FB6}-\x{1FBC}] | [\x{1FBE}\x{1FC2}-\x{1FC4}\x{1FC6}-\x{1FCC}\x{1FD0}-\x{1FD3}] | [\x{1FD6}-\x{1FDB}\x{1FE0}-\x{1FEC}\x{1FF2}-\x{1FF4}\x{1FF6}-\x{1FFC}] | [\x{2126}\x{212A}-\x{212B}\x{212E}\x{2180}-\x{2182}\x{3041}-\x{3094}] | [\x{30A1}-\x{30FA}\x{3105}-\x{312C}\x{AC00}-\x{D7A3}] /x; $Extender = qr/ [\x{00B7}\x{02D0}\x{02D1}\x{0387}\x{0640}\x{0E46}\x{0EC6}\x{3005}\x{3031}-\x{3035}\x{309D}-\x{309E}\x{30FC}-\x{30FE}] /x; $Digit = qr/ [\x{0030}-\x{0039}\x{0660}-\x{0669}\x{06F0}-\x{06F9}\x{0966}-\x{096F}] | [\x{09E6}-\x{09EF}\x{0A66}-\x{0A6F}\x{0AE6}-\x{0AEF}\x{0B66}-\x{0B6F}] | [\x{0BE7}-\x{0BEF}\x{0C66}-\x{0C6F}\x{0CE6}-\x{0CEF}\x{0D66}-\x{0D6F}] | [\x{0E50}-\x{0E59}\x{0ED0}-\x{0ED9}\x{0F20}-\x{0F29}] /x; $CombiningChar = qr/ [\x{0300}-\x{0345}\x{0360}-\x{0361}\x{0483}-\x{0486}\x{0591}-\x{05A1}] | [\x{05A3}-\x{05B9}\x{05BB}-\x{05BD}\x{05BF}\x{05C1}-\x{05C2}\x{05C4}] | [\x{064B}-\x{0652}\x{0670}\x{06D6}-\x{06DC}\x{06DD}-\x{06DF}\x{06E0}-\x{06E4}] | [\x{06E7}-\x{06E8}\x{06EA}-\x{06ED}\x{0901}-\x{0903}\x{093C}] | [\x{093E}-\x{094C}\x{094D}\x{0951}-\x{0954}\x{0962}-\x{0963}\x{0981}-\x{0983}] | [\x{09BC}\x{09BE}\x{09BF}\x{09C0}-\x{09C4}\x{09C7}-\x{09C8}] | [\x{09CB}-\x{09CD}\x{09D7}\x{09E2}-\x{09E3}\x{0A02}\x{0A3C}\x{0A3E}\x{0A3F}] | [\x{0A40}-\x{0A42}\x{0A47}-\x{0A48}\x{0A4B}-\x{0A4D}\x{0A70}-\x{0A71}] | [\x{0A81}-\x{0A83}\x{0ABC}\x{0ABE}-\x{0AC5}\x{0AC7}-\x{0AC9}\x{0ACB}-\x{0ACD}] | [\x{0B01}-\x{0B03}\x{0B3C}\x{0B3E}-\x{0B43}\x{0B47}-\x{0B48}] | [\x{0B4B}-\x{0B4D}\x{0B56}-\x{0B57}\x{0B82}-\x{0B83}\x{0BBE}-\x{0BC2}] | [\x{0BC6}-\x{0BC8}\x{0BCA}-\x{0BCD}\x{0BD7}\x{0C01}-\x{0C03}\x{0C3E}-\x{0C44}] | [\x{0C46}-\x{0C48}\x{0C4A}-\x{0C4D}\x{0C55}-\x{0C56}\x{0C82}-\x{0C83}] | [\x{0CBE}-\x{0CC4}\x{0CC6}-\x{0CC8}\x{0CCA}-\x{0CCD}\x{0CD5}-\x{0CD6}] | [\x{0D02}-\x{0D03}\x{0D3E}-\x{0D43}\x{0D46}-\x{0D48}\x{0D4A}-\x{0D4D}\x{0D57}] | [\x{0E31}\x{0E34}-\x{0E3A}\x{0E47}-\x{0E4E}\x{0EB1}\x{0EB4}-\x{0EB9}] | [\x{0EBB}-\x{0EBC}\x{0EC8}-\x{0ECD}\x{0F18}-\x{0F19}\x{0F35}\x{0F37}\x{0F39}] | [\x{0F3E}\x{0F3F}\x{0F71}-\x{0F84}\x{0F86}-\x{0F8B}\x{0F90}-\x{0F95}] | [\x{0F97}\x{0F99}-\x{0FAD}\x{0FB1}-\x{0FB7}\x{0FB9}\x{20D0}-\x{20DC}\x{20E1}] | [\x{302A}-\x{302F}\x{3099}\x{309A}] /x; $Ideographic = qr/ [\x{4E00}-\x{9FA5}\x{3007}\x{3021}-\x{3029}] /x; $NameChar = qr/^ (?: $BaseChar | $Ideographic | $Digit | [._:-] | $CombiningChar | $Extender )+ $/x; PERL die $@ if $@; } } 1; SAX/PurePerl/DocType.pm000044400000011062152345536550010655 0ustar00# $Id$ package XML::SAX::PurePerl; use strict; use XML::SAX::PurePerl::Productions qw($PubidChar); sub doctypedecl { my ($self, $reader) = @_; my $data = $reader->data(9); if ($data =~ /^move_along(9); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after doctype declaration", $reader); my $root_name = $self->Name($reader) || $self->parser_error("Doctype declaration has no root element name", $reader); if ($self->skip_whitespace($reader)) { # might be externalid... my %dtd = $self->ExternalID($reader); # TODO: Call SAX event } $self->skip_whitespace($reader); $self->InternalSubset($reader); $reader->match('>') or $self->parser_error("Doctype not closed", $reader); return 1; } return 0; } sub ExternalID { my ($self, $reader) = @_; my $data = $reader->data(6); if ($data =~ /^SYSTEM/) { $reader->move_along(6); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after SYSTEM identifier", $reader); return (SYSTEM => $self->SystemLiteral($reader)); } elsif ($data =~ /^PUBLIC/) { $reader->move_along(6); $self->skip_whitespace($reader) || $self->parser_error("No whitespace after PUBLIC identifier", $reader); my $quote = $self->quote($reader) || $self->parser_error("Not a quote character in PUBLIC identifier", $reader); my $data = $reader->data; my $pubid = ''; while(1) { $self->parser_error("EOF while looking for end of PUBLIC identifiier", $reader) unless length($data); if ($data =~ /^([^$quote]*)$quote/) { $pubid .= $1; $reader->move_along(length($1) + 1); last; } else { $pubid .= $data; $reader->move_along(length($data)); $data = $reader->data; } } if ($pubid !~ /^($PubidChar)+$/) { $self->parser_error("Invalid characters in PUBLIC identifier", $reader); } $self->skip_whitespace($reader) || $self->parser_error("Not whitespace after PUBLIC ID in DOCTYPE", $reader); return (PUBLIC => $pubid, SYSTEM => $self->SystemLiteral($reader)); } else { return; } return 1; } sub SystemLiteral { my ($self, $reader) = @_; my $quote = $self->quote($reader); my $data = $reader->data; my $systemid = ''; while (1) { $self->parser_error("EOF found while looking for end of System Literal", $reader) unless length($data); if ($data =~ /^([^$quote]*)$quote/) { $systemid .= $1; $reader->move_along(length($1) + 1); return $systemid; } else { $systemid .= $data; $reader->move_along(length($data)); $data = $reader->data; } } } sub InternalSubset { my ($self, $reader) = @_; return 0 unless $reader->match('['); 1 while $self->IntSubsetDecl($reader); $reader->match(']') or $self->parser_error("No close bracket on internal subset (found: " . $reader->data, $reader); $self->skip_whitespace($reader); return 1; } sub IntSubsetDecl { my ($self, $reader) = @_; return $self->DeclSep($reader) || $self->markupdecl($reader); } sub DeclSep { my ($self, $reader) = @_; if ($self->skip_whitespace($reader)) { return 1; } if ($self->PEReference($reader)) { return 1; } # if ($self->ParsedExtSubset($reader)) { # return 1; # } return 0; } sub PEReference { my ($self, $reader) = @_; return 0 unless $reader->match('%'); my $peref = $self->Name($reader) || $self->parser_error("PEReference did not find a Name", $reader); # TODO - load/parse the peref $reader->match(';') or $self->parser_error("Invalid token in PEReference", $reader); return 1; } sub markupdecl { my ($self, $reader) = @_; if ($self->elementdecl($reader) || $self->AttlistDecl($reader) || $self->EntityDecl($reader) || $self->NotationDecl($reader) || $self->PI($reader) || $self->Comment($reader)) { return 1; } return 0; } 1; SAX/PurePerl/Reader/UnicodeExt.pm000044400000000506152345536550012560 0ustar00# $Id$ package XML::SAX::PurePerl::Reader; use strict; use Encode (); sub set_raw_stream { my ($fh) = @_; binmode($fh, ":bytes"); } sub switch_encoding_stream { my ($fh, $encoding) = @_; binmode($fh, ":encoding($encoding)"); } sub switch_encoding_string { $_[0] = Encode::decode($_[1], $_[0]); } 1; SAX/PurePerl/Reader/Stream.pm000044400000003411152345536550011742 0ustar00# $Id$ package XML::SAX::PurePerl::Reader::Stream; use strict; use vars qw(@ISA); use XML::SAX::PurePerl::Reader qw( EOF BUFFER LINE COLUMN ENCODING XML_VERSION ); use XML::SAX::Exception; @ISA = ('XML::SAX::PurePerl::Reader'); # subclassed by adding 1 to last element use constant FH => 8; use constant BUFFER_SIZE => 4096; sub new { my $class = shift; my $ioref = shift; XML::SAX::PurePerl::Reader::set_raw_stream($ioref); my @parts; @parts[FH, LINE, COLUMN, BUFFER, EOF, XML_VERSION] = ($ioref, 1, 0, '', 0, '1.0'); return bless \@parts, $class; } sub read_more { my $self = shift; my $buf; my $bytesread = read($self->[FH], $buf, BUFFER_SIZE); if ($bytesread) { $self->[BUFFER] .= $buf; return 1; } elsif (defined($bytesread)) { $self->[EOF]++; return 0; } else { throw XML::SAX::Exception::Parse( Message => "Error reading from filehandle: $!", ); } } sub move_along { my $self = shift; my $discarded = substr($self->[BUFFER], 0, $_[0], ''); # Wish I could skip this lot - tells us where we are in the file my $lines = $discarded =~ tr/\n//; $self->[LINE] += $lines; if ($lines) { $discarded =~ /\n([^\n]*)$/; $self->[COLUMN] = length($1); } else { $self->[COLUMN] += $_[0]; } } sub set_encoding { my $self = shift; my ($encoding) = @_; # warn("set encoding to: $encoding\n"); XML::SAX::PurePerl::Reader::switch_encoding_stream($self->[FH], $encoding); XML::SAX::PurePerl::Reader::switch_encoding_string($self->[BUFFER], $encoding); $self->[ENCODING] = $encoding; } sub bytepos { my $self = shift; tell($self->[FH]); } 1; SAX/PurePerl/Reader/NoUnicodeExt.pm000044400000001113152345536550013050 0ustar00# $Id$ package XML::SAX::PurePerl::Reader; use strict; sub set_raw_stream { # no-op } sub switch_encoding_stream { my ($fh, $encoding) = @_; throw XML::SAX::Exception::Parse ( Message => "Only ASCII encoding allowed without perl 5.7.2 or higher. You tried: $encoding", ) if $encoding !~ /(ASCII|UTF\-?8)/i; } sub switch_encoding_string { my (undef, $encoding) = @_; throw XML::SAX::Exception::Parse ( Message => "Only ASCII encoding allowed without perl 5.7.2 or higher. You tried: $encoding", ) if $encoding !~ /(ASCII|UTF\-?8)/i; } 1; SAX/PurePerl/Reader/String.pm000044400000003233152345536550011757 0ustar00# $Id$ package XML::SAX::PurePerl::Reader::String; use strict; use vars qw(@ISA); use XML::SAX::PurePerl::Reader qw( LINE COLUMN BUFFER ENCODING EOF ); @ISA = ('XML::SAX::PurePerl::Reader'); use constant DISCARDED => 8; use constant STRING => 9; use constant USED => 10; use constant CHUNK_SIZE => 2048; sub new { my $class = shift; my $string = shift; my @parts; @parts[BUFFER, EOF, LINE, COLUMN, DISCARDED, STRING, USED] = ('', 0, 1, 0, 0, $string, 0); return bless \@parts, $class; } sub read_more () { my $self = shift; if ($self->[USED] >= length($self->[STRING])) { $self->[EOF]++; return 0; } my $bytes = CHUNK_SIZE; if ($bytes > (length($self->[STRING]) - $self->[USED])) { $bytes = (length($self->[STRING]) - $self->[USED]); } $self->[BUFFER] .= substr($self->[STRING], $self->[USED], $bytes); $self->[USED] += $bytes; return 1; } sub move_along { my($self, $bytes) = @_; my $discarded = substr($self->[BUFFER], 0, $bytes, ''); $self->[DISCARDED] += length($discarded); # Wish I could skip this lot - tells us where we are in the file my $lines = $discarded =~ tr/\n//; $self->[LINE] += $lines; if ($lines) { $discarded =~ /\n([^\n]*)$/; $self->[COLUMN] = length($1); } else { $self->[COLUMN] += $_[0]; } } sub set_encoding { my $self = shift; my ($encoding) = @_; XML::SAX::PurePerl::Reader::switch_encoding_string($self->[BUFFER], $encoding, "utf-8"); $self->[ENCODING] = $encoding; } sub bytepos { my $self = shift; $self->[DISCARDED]; } 1; SAX/PurePerl/Reader/URI.pm000044400000002666152345536550011161 0ustar00# $Id$ package XML::SAX::PurePerl::Reader::URI; use strict; use XML::SAX::PurePerl::Reader; use File::Temp qw(tempfile); use Symbol; ## NOTE: This is *not* a subclass of Reader. It just returns Stream or String ## Reader objects depending on what it's capabilities are. sub new { my $class = shift; my $uri = shift; # request the URI if (-e $uri && -f _) { my $fh = gensym; open($fh, $uri) || die "Cannot open file $uri : $!"; return XML::SAX::PurePerl::Reader::Stream->new($fh); } elsif ($uri =~ /^file:(.*)$/ && -e $1 && -f _) { my $file = $1; my $fh = gensym; open($fh, $file) || die "Cannot open file $file : $!"; return XML::SAX::PurePerl::Reader::Stream->new($fh); } else { # request URI, return String reader require LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->agent("Perl/XML/SAX/PurePerl/1.0 " . $ua->agent); my $req = HTTP::Request->new(GET => $uri); my $fh = tempfile(); my $callback = sub { my ($data, $response, $protocol) = @_; print $fh $data; }; my $res = $ua->request($req, $callback, 4096); if ($res->is_success) { seek($fh, 0, 0); return XML::SAX::PurePerl::Reader::Stream->new($fh); } else { die "LWP Request Failed"; } } } 1; SAX/PurePerl/Reader.pm000044400000004755152345536550010523 0ustar00# $Id$ package XML::SAX::PurePerl::Reader; use strict; use XML::SAX::PurePerl::Reader::URI; use Exporter (); use vars qw(@ISA @EXPORT_OK); @ISA = qw(Exporter); @EXPORT_OK = qw( EOF BUFFER LINE COLUMN ENCODING XML_VERSION ); use constant EOF => 0; use constant BUFFER => 1; use constant LINE => 2; use constant COLUMN => 3; use constant ENCODING => 4; use constant SYSTEM_ID => 5; use constant PUBLIC_ID => 6; use constant XML_VERSION => 7; require XML::SAX::PurePerl::Reader::Stream; require XML::SAX::PurePerl::Reader::String; if ($] >= 5.007002) { require XML::SAX::PurePerl::Reader::UnicodeExt; } else { require XML::SAX::PurePerl::Reader::NoUnicodeExt; } sub new { my $class = shift; my $thing = shift; # try to figure if this $thing is a handle of some sort if (ref($thing) && UNIVERSAL::isa($thing, 'IO::Handle')) { return XML::SAX::PurePerl::Reader::Stream->new($thing)->init; } my $ioref; if (tied($thing)) { my $class = ref($thing); no strict 'refs'; $ioref = $thing if defined &{"${class}::TIEHANDLE"}; } else { eval { $ioref = *{$thing}{IO}; }; undef $@; } if ($ioref) { return XML::SAX::PurePerl::Reader::Stream->new($thing)->init; } if ($thing =~ /new($thing)->init; } # assume it is a uri return XML::SAX::PurePerl::Reader::URI->new($thing)->init; } sub init { my $self = shift; $self->[LINE] = 1; $self->[COLUMN] = 1; $self->read_more; return $self; } sub data { my ($self, $min_length) = (@_, 1); if (length($self->[BUFFER]) < $min_length) { $self->read_more; } return $self->[BUFFER]; } sub match { my ($self, $char) = @_; my $data = $self->data; if (substr($data, 0, 1) eq $char) { $self->move_along(1); return 1; } return 0; } sub public_id { my $self = shift; @_ and $self->[PUBLIC_ID] = shift; $self->[PUBLIC_ID]; } sub system_id { my $self = shift; @_ and $self->[SYSTEM_ID] = shift; $self->[SYSTEM_ID]; } sub line { shift->[LINE]; } sub column { shift->[COLUMN]; } sub get_encoding { my $self = shift; return $self->[ENCODING]; } sub get_xml_version { my $self = shift; return $self->[XML_VERSION]; } 1; __END__ =head1 NAME XML::Parser::PurePerl::Reader - Abstract Reader factory class =cut SAX/PurePerl/Exception.pm000044400000003253152345536550011247 0ustar00# $Id$ package XML::SAX::PurePerl::Exception; use strict; use overload '""' => "stringify"; use vars qw/$StackTrace/; $StackTrace = $ENV{XML_DEBUG} || 0; sub throw { my $class = shift; die $class->new(@_); } sub new { my $class = shift; my %opts = @_; die "Invalid options" unless exists $opts{Message}; if ($opts{reader}) { return bless { Message => $opts{Message}, Exception => undef, # not sure what this is for!!! ColumnNumber => $opts{reader}->column, LineNumber => $opts{reader}->line, PublicId => $opts{reader}->public_id, SystemId => $opts{reader}->system_id, $StackTrace ? (StackTrace => stacktrace()) : (), }, $class; } return bless { Message => $opts{Message}, Exception => undef, # not sure what this is for!!! }, $class; } sub stringify { my $self = shift; local $^W; return $self->{Message} . " [Ln: " . $self->{LineNumber} . ", Col: " . $self->{ColumnNumber} . "]" . ($StackTrace ? stackstring($self->{StackTrace}) : "") . "\n"; } sub stacktrace { my $i = 2; my @fulltrace; while (my @trace = caller($i++)) { my %hash; @hash{qw(Package Filename Line)} = @trace[0..2]; push @fulltrace, \%hash; } return \@fulltrace; } sub stackstring { my $stacktrace = shift; my $string = "\nFrom:\n"; foreach my $current (@$stacktrace) { $string .= $current->{Filename} . " Line: " . $current->{Line} . "\n"; } return $string; } 1; SAX/Intro.pod000044400000034741152345536550007022 0ustar00=head1 NAME XML::SAX::Intro - An Introduction to SAX Parsing with Perl =head1 Introduction XML::SAX is a new way to work with XML Parsers in Perl. In this article we'll discuss why you should be using SAX, why you should be using XML::SAX, and we'll see some of the finer implementation details. The text below assumes some familiarity with callback, or push based parsing, but if you are unfamiliar with these techniques then a good place to start is Kip Hampton's excellent series of articles on XML.com. =head1 Replacing XML::Parser The de-facto way of parsing XML under perl is to use Larry Wall and Clark Cooper's XML::Parser. This module is a Perl and XS wrapper around the expat XML parser library by James Clark. It has been a hugely successful project, but suffers from a couple of rather major flaws. Firstly it is a proprietary API, designed before the SAX API was conceived, which means that it is not easily replaceable by other streaming parsers. Secondly it's callbacks are subrefs. This doesn't sound like much of an issue, but unfortunately leads to code like: sub handle_start { my ($e, $el, %attrs) = @_; if ($el eq 'foo') { $e->{inside_foo}++; # BAD! $e is an XML::Parser::Expat object. } } As you can see, we're using the $e object to hold our state information, which is a bad idea because we don't own that object - we didn't create it. It's an internal object of XML::Parser, that happens to be a hashref. We could all too easily overwrite XML::Parser internal state variables by using this, or Clark could change it to an array ref (not that he would, because it would break so much code, but he could). The only way currently with XML::Parser to safely maintain state is to use a closure: my $state = MyState->new(); $parser->setHandlers(Start => sub { handle_start($state, @_) }); This closure traps the $state variable, which now gets passed as the first parameter to your callback. Unfortunately very few people use this technique, as it is not documented in the XML::Parser POD files. Another reason you might not want to use XML::Parser is because you need some feature that it doesn't provide (such as validation), or you might need to use a library that doesn't use expat, due to it not being installed on your system, or due to having a restrictive ISP. Using SAX allows you to work around these restrictions. =head1 Introducing SAX SAX stands for the Simple API for XML. And simple it really is. Constructing a SAX parser and passing events to handlers is done as simply as: use XML::SAX; use MySAXHandler; my $parser = XML::SAX::ParserFactory->parser( Handler => MySAXHandler->new ); $parser->parse_uri("foo.xml"); The important concept to grasp here is that SAX uses a factory class called XML::SAX::ParserFactory to create a new parser instance. The reason for this is so that you can support other underlying parser implementations for different feature sets. This is one thing that XML::Parser has always sorely lacked. In the code above we see the parse_uri method used, but we could have equally well called parse_file, parse_string, or parse(). Please see XML::SAX::Base for what these methods take as parameters, but don't be fooled into believing parse_file takes a filename. No, it takes a file handle, a glob, or a subclass of IO::Handle. Beware. SAX works very similarly to XML::Parser's default callback method, except it has one major difference: rather than setting individual callbacks, you create a new class in which to receive the callbacks. Each callback is called as a method call on an instance of that handler class. An example will best demonstrate this: package MySAXHandler; use base qw(XML::SAX::Base); sub start_document { my ($self, $doc) = @_; # process document start event } sub start_element { my ($self, $el) = @_; # process element start event } Now, when we instantiate this as above, and parse some XML with this as the handler, the methods start_document and start_element will be called as method calls, so this would be the equivalent of directly calling: $object->start_element($el); Notice how this is different to XML::Parser's calling style, which calls: start_element($e, $name, %attribs); It's the difference between function calling and method calling which allows you to subclass SAX handlers which contributes to SAX being a powerful solution. As you can see, unlike XML::Parser, we have to define a new package in which to do our processing (there are hacks you can do to make this uneccessary, but I'll leave figuring those out to the experts). The biggest benefit of this is that you maintain your own state variable ($self in the above example) thus freeing you of the concerns listed above. It is also an improvement in maintainability - you can place the code in a separate file if you wish to, and your callback methods are always called the same thing, rather than having to choose a suitable name for them as you had to with XML::Parser. This is an obvious win. SAX parsers are also very flexible in how you pass a handler to them. You can use a constructor parameter as we saw above, or we can pass the handler directly in the call to one of the parse methods: $parser->parse(Handler => $handler, Source => { SystemId => "foo.xml" }); # or... $parser->parse_file($fh, Handler => $handler); This flexibility allows for one parser to be used in many different scenarios throughout your script (though one shouldn't feel pressure to use this method, as parser construction is generally not a time consuming process). =head1 Callback Parameters The only other thing you need to know to understand basic SAX is the structure of the parameters passed to each of the callbacks. In XML::Parser, all parameters are passed as multiple options to the callbacks, so for example the Start callback would be called as my_start($e, $name, %attributes), and the PI callback would be called as my_processing_instruction($e, $target, $data). In SAX, every callback is passed a hash reference, containing entries that define our "node". The key callbacks and the structures they receive are: =head2 start_element The start_element handler is called whenever a parser sees an opening tag. It is passed an element structure consisting of: =over 4 =item LocalName The name of the element minus any namespace prefix it may have come with in the document. =item NamespaceURI The URI of the namespace associated with this element, or the empty string for none. =item Attributes A set of attributes as described below. =item Name The name of the element as it was seen in the document (i.e. including any prefix associated with it) =item Prefix The prefix used to qualify this element's namespace, or the empty string if none. =back The B are a hash reference, keyed by what we have called "James Clark" notation. This means that the attribute name has been expanded to include any associated namespace URI, and put together as {ns}name, where "ns" is the expanded namespace URI of the attribute if and only if the attribute had a prefix, and "name" is the LocalName of the attribute. The value of each entry in the attributes hash is another hash structure consisting of: =over 4 =item LocalName The name of the attribute minus any namespace prefix it may have come with in the document. =item NamespaceURI The URI of the namespace associated with this attribute. If the attribute had no prefix, then this consists of just the empty string. =item Name The attribute's name as it appeared in the document, including any namespace prefix. =item Prefix The prefix used to qualify this attribute's namepace, or the empty string if none. =item Value The value of the attribute. =back So a full example, as output by Data::Dumper might be: .... =head2 end_element The end_element handler is called either when a parser sees a closing tag, or after start_element has been called for an empty element (do note however that a parser may if it is so inclined call characters with an empty string when it sees an empty element. There is no simple way in SAX to determine if the parser in fact saw an empty element, a start and end element with no content.. The end_element handler receives exactly the same structure as start_element, minus the Attributes entry. One must note though that it should not be a reference to the same data as start_element receives, so you may change the values in start_element but this will not affect the values later seen by end_element. =head2 characters The characters callback may be called in serveral circumstances. The most obvious one is when seeing ordinary character data in the markup. But it is also called for text in a CDATA section, and is also called in other situations. A SAX parser has to make no guarantees whatsoever about how many times it may call characters for a stretch of text in an XML document - it may call once, or it may call once for every character in the text. In order to work around this it is often important for the SAX developer to use a bundling technique, where text is gathered up and processed in one of the other callbacks. This is not always necessary, but it is a worthwhile technique to learn, which we will cover in XML::SAX::Advanced (when I get around to writing it). The characters handler is called with a very simple structure - a hash reference consisting of just one entry: =over 4 =item Data The text data that was received. =back =head2 comment The comment callback is called for comment text. Unlike with C, the comment callback *must* be invoked just once for an entire comment string. It receives a single simple structure - a hash reference containing just one entry: =over 4 =item Data The text of the comment. =back =head2 processing_instruction The processing instruction handler is called for all processing instructions in the document. Note that these processing instructions may appear before the document root element, or after it, or anywhere where text and elements would normally appear within the document, according to the XML specification. The handler is passed a structure containing just two entries: =over 4 =item Target The target of the processing instrcution =item Data The text data in the processing instruction. Can be an empty string for a processing instruction that has no data element. For example E?wiggle?E is a perfectly valid processing instruction. =back =head1 Tip of the iceberg What we have discussed above is really the tip of the SAX iceberg. And so far it looks like there's not much of interest to SAX beyond what we have seen with XML::Parser. But it does go much further than that, I promise. People who hate Object Oriented code for the sake of it may be thinking here that creating a new package just to parse something is a waste when they've been parsing things just fine up to now using procedural code. But there's reason to all this madness. And that reason is SAX Filters. As you saw right at the very start, to let the parser know about our class, we pass it an instance of our class as the Handler to the parser. But now imagine what would happen if our class could also take a Handler option, and simply do some processing and pass on our data further down the line? That in a nutshell is how SAX filters work. It's Unix pipes for the 21st century! There are two downsides to this. Number 1 - writing SAX filters can be tricky. If you look into the future and read the advanced tutorial I'm writing, you'll see that Handler can come in several shapes and sizes. So making sure your filter does the right thing can be tricky. Secondly, constructing complex filter chains can be difficult, and simple thinking tells us that we only get one pass at our document, when often we'll need more than that. Luckily though, those downsides have been fixed by the release of two very cool modules. What's even better is that I didn't write either of them! The first module is XML::SAX::Base. This is a VITAL SAX module that acts as a base class for all SAX parsers and filters. It provides an abstraction away from calling the handler methods, that makes sure your filter or parser does the right thing, and it does it FAST. So, if you ever need to write a SAX filter, which if you're processing XML -> XML, or XML -> HTML, then you probably do, then you need to be writing it as a subclass of XML::SAX::Base. Really - this is advice not to ignore lightly. I will not go into the details of writing a SAX filter here. Kip Hampton, the author of XML::SAX::Base has covered this nicely in his article on XML.com here . To construct SAX pipelines, Barrie Slaymaker, a long time Perl hacker whose modules you will probably have heard of or used, wrote a very clever module called XML::SAX::Machines. This combines some really clever SAX filter-type modules, with a construction toolkit for filters that makes building pipelines easy. But before we see how it makes things easy, first lets see how tricky it looks to build complex SAX filter pipelines. use XML::SAX::ParserFactory; use XML::Filter::Filter1; use XML::Filter::Filter2; use XML::SAX::Writer; my $output_string; my $writer = XML::SAX::Writer->new(Output => \$output_string); my $filter2 = XML::SAX::Filter2->new(Handler => $writer); my $filter1 = XML::SAX::Filter1->new(Handler => $filter2); my $parser = XML::SAX::ParserFactory->parser(Handler => $filter1); $parser->parse_uri("foo.xml"); This is a lot easier with XML::SAX::Machines: use XML::SAX::Machines qw(Pipeline); my $output_string; my $parser = Pipeline( XML::SAX::Filter1 => XML::SAX::Filter2 => \$output_string ); $parser->parse_uri("foo.xml"); One of the main benefits of XML::SAX::Machines is that the pipelines are constructed in natural order, rather than the reverse order we saw with manual pipeline construction. XML::SAX::Machines takes care of all the internals of pipe construction, providing you at the end with just a parser you can use (and you can re-use the same parser as many times as you need to). Just a final tip. If you ever get stuck and are confused about what is being passed from one SAX filter or parser to the next, then Devel::TraceSAX will come to your rescue. This perl debugger plugin will allow you to dump the SAX stream of events as it goes by. Usage is really very simple just call your perl script that uses SAX as follows: $ perl -d:TraceSAX And preferably pipe the output to a pager of some sort, such as more or less. The output is extremely verbose, but should help clear some issues up. =head1 AUTHOR Matt Sergeant, matt@sergeant.org $Id$ =cut SAX/PurePerl.pm000044400000050153152345536550007312 0ustar00# $Id$ package XML::SAX::PurePerl; use strict; use vars qw/$VERSION/; $VERSION = '1.02'; use XML::SAX::PurePerl::Productions qw($NameChar $SingleChar); use XML::SAX::PurePerl::Reader; use XML::SAX::PurePerl::EncodingDetect (); use XML::SAX::Exception; use XML::SAX::PurePerl::DocType (); use XML::SAX::PurePerl::DTDDecls (); use XML::SAX::PurePerl::XMLDecl (); use XML::SAX::DocumentLocator (); use XML::SAX::Base (); use XML::SAX qw(Namespaces); use XML::NamespaceSupport (); use IO::File; if ($] < 5.006) { require XML::SAX::PurePerl::NoUnicodeExt; } else { require XML::SAX::PurePerl::UnicodeExt; } use vars qw(@ISA); @ISA = ('XML::SAX::Base'); my %int_ents = ( amp => '&', lt => '<', gt => '>', quot => '"', apos => "'", ); my $xmlns_ns = "http://www.w3.org/2000/xmlns/"; my $xml_ns = "http://www.w3.org/XML/1998/namespace"; use Carp; sub _parse_characterstream { my $self = shift; my ($fh) = @_; confess("CharacterStream is not yet correctly implemented"); my $reader = XML::SAX::PurePerl::Reader::Stream->new($fh); return $self->_parse($reader); } sub _parse_bytestream { my $self = shift; my ($fh) = @_; my $reader = XML::SAX::PurePerl::Reader::Stream->new($fh); return $self->_parse($reader); } sub _parse_string { my $self = shift; my ($str) = @_; my $reader = XML::SAX::PurePerl::Reader::String->new($str); return $self->_parse($reader); } sub _parse_systemid { my $self = shift; my ($uri) = @_; my $reader = XML::SAX::PurePerl::Reader::URI->new($uri); return $self->_parse($reader); } sub _parse { my ($self, $reader) = @_; $reader->public_id($self->{ParseOptions}{Source}{PublicId}); $reader->system_id($self->{ParseOptions}{Source}{SystemId}); $self->{NSHelper} = XML::NamespaceSupport->new({xmlns => 1}); $self->set_document_locator( XML::SAX::DocumentLocator->new( sub { $reader->public_id }, sub { $reader->system_id }, sub { $reader->line }, sub { $reader->column }, sub { $reader->get_encoding }, sub { $reader->get_xml_version }, ), ); $self->start_document({}); if (defined $self->{ParseOptions}{Source}{Encoding}) { $reader->set_encoding($self->{ParseOptions}{Source}{Encoding}); } else { $self->encoding_detect($reader); } # parse a document $self->document($reader); return $self->end_document({}); } sub parser_error { my $self = shift; my ($error, $reader) = @_; # warn("parser error: $error from ", $reader->line, " : ", $reader->column, "\n"); my $exception = XML::SAX::Exception::Parse->new( Message => $error, ColumnNumber => $reader->column, LineNumber => $reader->line, PublicId => $reader->public_id, SystemId => $reader->system_id, ); $self->fatal_error($exception); $exception->throw; } sub document { my ($self, $reader) = @_; # document ::= prolog element Misc* $self->prolog($reader); $self->element($reader) || $self->parser_error("Document requires an element", $reader); while(length($reader->data)) { $self->Misc($reader) || $self->parser_error("Only Comments, PIs and whitespace allowed at end of document", $reader); } } sub prolog { my ($self, $reader) = @_; $self->XMLDecl($reader); # consume all misc bits 1 while($self->Misc($reader)); if ($self->doctypedecl($reader)) { while (length($reader->data)) { $self->Misc($reader) || last; } } } sub element { my ($self, $reader) = @_; return 0 unless $reader->match('<'); my $name = $self->Name($reader) || $self->parser_error("Invalid element name", $reader); my %attribs; while( my ($k, $v) = $self->Attribute($reader) ) { $attribs{$k} = $v; } my $have_namespaces = $self->get_feature(Namespaces); # Namespace processing $self->{NSHelper}->push_context; my @new_ns; # my %attrs = @attribs; # while (my ($k,$v) = each %attrs) { if ($have_namespaces) { while ( my ($k, $v) = each %attribs ) { if ($k =~ m/^xmlns(:(.*))?$/) { my $prefix = $2 || ''; $self->{NSHelper}->declare_prefix($prefix, $v); my $ns = { Prefix => $prefix, NamespaceURI => $v, }; push @new_ns, $ns; $self->SUPER::start_prefix_mapping($ns); } } } # Create element object and fire event my %attrib_hash; while (my ($name, $value) = each %attribs ) { # TODO normalise value here my ($ns, $prefix, $lname); if ($have_namespaces) { ($ns, $prefix, $lname) = $self->{NSHelper}->process_attribute_name($name); } $ns ||= ''; $prefix ||= ''; $lname ||= ''; $attrib_hash{"{$ns}$lname"} = { Name => $name, LocalName => $lname, Prefix => $prefix, NamespaceURI => $ns, Value => $value, }; } %attribs = (); # lose the memory since we recurse deep my ($ns, $prefix, $lname); if ($self->get_feature(Namespaces)) { ($ns, $prefix, $lname) = $self->{NSHelper}->process_element_name($name); } else { $lname = $name; } $ns ||= ''; $prefix ||= ''; $lname ||= ''; # Process remainder of start_element $self->skip_whitespace($reader); my $have_content; my $data = $reader->data(2); if ($data =~ /^\/>/) { $reader->move_along(2); } else { $data =~ /^>/ or $self->parser_error("No close element tag", $reader); $reader->move_along(1); $have_content++; } my $el = { Name => $name, LocalName => $lname, Prefix => $prefix, NamespaceURI => $ns, Attributes => \%attrib_hash, }; $self->start_element($el); # warn("($name\n"); if ($have_content) { $self->content($reader); my $data = $reader->data(2); $data =~ /^<\// or $self->parser_error("No close tag marker", $reader); $reader->move_along(2); my $end_name = $self->Name($reader); $end_name eq $name || $self->parser_error("End tag mismatch ($end_name != $name)", $reader); $self->skip_whitespace($reader); $reader->match('>') or $self->parser_error("No close '>' on end tag", $reader); } my %end_el = %$el; delete $end_el{Attributes}; $self->end_element(\%end_el); for my $ns (@new_ns) { $self->end_prefix_mapping($ns); } $self->{NSHelper}->pop_context; return 1; } sub content { my ($self, $reader) = @_; while (1) { $self->CharData($reader); my $data = $reader->data(2); if ($data =~ /^<\//) { return 1; } elsif ($data =~ /^&/) { $self->Reference($reader) or $self->parser_error("bare & not allowed in content", $reader); next; } elsif ($data =~ /^CDSect($reader) or $self->Comment($reader)) and next; } elsif ($data =~ /^<\?/) { $self->PI($reader) and next; } elsif ($data =~ /^element($reader) and next; } last; } return 1; } sub CDSect { my ($self, $reader) = @_; my $data = $reader->data(9); return 0 unless $data =~ /^move_along(9); $self->start_cdata({}); $data = $reader->data; while (1) { $self->parser_error("EOF looking for CDATA section end", $reader) unless length($data); if ($data =~ /^(.*?)\]\]>/s) { my $chars = $1; $reader->move_along(length($chars) + 3); $self->characters({Data => $chars}); last; } else { $self->characters({Data => $data}); $reader->move_along(length($data)); $data = $reader->data; } } $self->end_cdata({}); return 1; } sub CharData { my ($self, $reader) = @_; my $data = $reader->data; while (1) { return unless length($data); if ($data =~ /^([^<&]*)[<&]/s) { my $chars = $1; $self->parser_error("String ']]>' not allowed in character data", $reader) if $chars =~ /\]\]>/; $reader->move_along(length($chars)); $self->characters({Data => $chars}) if length($chars); last; } else { $self->characters({Data => $data}); $reader->move_along(length($data)); $data = $reader->data; } } } sub Misc { my ($self, $reader) = @_; if ($self->Comment($reader)) { return 1; } elsif ($self->PI($reader)) { return 1; } elsif ($self->skip_whitespace($reader)) { return 1; } return 0; } sub Reference { my ($self, $reader) = @_; return 0 unless $reader->match('&'); my $data = $reader->data; # Fetch more data if we have an incomplete numeric reference if ($data =~ /^(#\d*|#x[0-9a-fA-F]*)$/) { $data = $reader->data(length($data) + 6); } if ($data =~ /^#x([0-9a-fA-F]+);/) { my $ref = $1; $reader->move_along(length($ref) + 3); my $char = chr_ref(hex($ref)); $self->parser_error("Character reference &#$ref; refers to an illegal XML character ($char)", $reader) unless $char =~ /$SingleChar/o; $self->characters({ Data => $char }); return 1; } elsif ($data =~ /^#([0-9]+);/) { my $ref = $1; $reader->move_along(length($ref) + 2); my $char = chr_ref($ref); $self->parser_error("Character reference &#$ref; refers to an illegal XML character ($char)", $reader) unless $char =~ /$SingleChar/o; $self->characters({ Data => $char }); return 1; } else { # EntityRef my $name = $self->Name($reader) || $self->parser_error("Invalid name in entity", $reader); $reader->match(';') or $self->parser_error("No semi-colon found after entity name", $reader); # warn("got entity: \&$name;\n"); # expand it if ($self->_is_entity($name)) { if ($self->_is_external($name)) { my $value = $self->_get_entity($name); my $ent_reader = XML::SAX::PurePerl::Reader::URI->new($value); $self->encoding_detect($ent_reader); $self->extParsedEnt($ent_reader); } else { my $value = $self->_stringify_entity($name); my $ent_reader = XML::SAX::PurePerl::Reader::String->new($value); $self->content($ent_reader); } return 1; } elsif ($name =~ /^(?:amp|gt|lt|quot|apos)$/) { $self->characters({ Data => $int_ents{$name} }); return 1; } else { $self->parser_error("Undeclared entity", $reader); } } } sub AttReference { my ($self, $name, $reader) = @_; if ($name =~ /^#x([0-9a-fA-F]+)$/) { my $chr = chr_ref(hex($1)); $chr =~ /$SingleChar/o or $self->parser_error("Character reference '&$name;' refers to an illegal XML character", $reader); return $chr; } elsif ($name =~ /^#([0-9]+)$/) { my $chr = chr_ref($1); $chr =~ /$SingleChar/o or $self->parser_error("Character reference '&$name;' refers to an illegal XML character", $reader); return $chr; } else { if ($self->_is_entity($name)) { if ($self->_is_external($name)) { $self->parser_error("No external entity references allowed in attribute values", $reader); } else { my $value = $self->_stringify_entity($name); return $value; } } elsif ($name =~ /^(?:amp|lt|gt|quot|apos)$/) { return $int_ents{$name}; } else { $self->parser_error("Undeclared entity '$name'", $reader); } } } sub extParsedEnt { my ($self, $reader) = @_; $self->TextDecl($reader); $self->content($reader); } sub _is_external { my ($self, $name) = @_; # TODO: Fix this to use $reader to store the entities perhaps. if ($self->{ParseOptions}{external_entities}{$name}) { return 1; } return ; } sub _is_entity { my ($self, $name) = @_; # TODO: ditto above if (exists $self->{ParseOptions}{entities}{$name}) { return 1; } return 0; } sub _stringify_entity { my ($self, $name) = @_; # TODO: ditto above if (exists $self->{ParseOptions}{expanded_entity}{$name}) { return $self->{ParseOptions}{expanded_entity}{$name}; } # expand my $reader = XML::SAX::PurePerl::Reader::URI->new($self->{ParseOptions}{entities}{$name}); my $ent = ''; while(1) { my $data = $reader->data; $ent .= $data; $reader->move_along(length($data)) or last; } return $self->{ParseOptions}{expanded_entity}{$name} = $ent; } sub _get_entity { my ($self, $name) = @_; # TODO: ditto above return $self->{ParseOptions}{entities}{$name}; } sub skip_whitespace { my ($self, $reader) = @_; my $data = $reader->data; my $found = 0; while ($data =~ s/^([\x20\x0A\x0D\x09]*)//) { last unless length($1); $found++; $reader->move_along(length($1)); $data = $reader->data; } return $found; } sub Attribute { my ($self, $reader) = @_; $self->skip_whitespace($reader) || return; my $data = $reader->data(2); return if $data =~ /^\/?>/; if (my $name = $self->Name($reader)) { $self->skip_whitespace($reader); $reader->match('=') or $self->parser_error("No '=' in Attribute", $reader); $self->skip_whitespace($reader); my $value = $self->AttValue($reader); if (!$self->cdata_attrib($name)) { $value =~ s/^\x20*//; # discard leading spaces $value =~ s/\x20*$//; # discard trailing spaces $value =~ s/ {1,}/ /g; # all >1 space to single space } return $name, $value; } return; } sub cdata_attrib { # TODO implement this! return 1; } sub AttValue { my ($self, $reader) = @_; my $quote = $self->quote($reader); my $value = ''; while (1) { my $data = $reader->data; $self->parser_error("EOF found while looking for the end of attribute value", $reader) unless length($data); if ($data =~ /^([^$quote]*)$quote/) { $reader->move_along(length($1) + 1); $value .= $1; last; } else { $value .= $data; $reader->move_along(length($data)); } } if ($value =~ /parser_error("< character not allowed in attribute values", $reader); } $value =~ s/[\x09\x0A\x0D]/\x20/g; $value =~ s/&(#(x[0-9a-fA-F]+)|#([0-9]+)|\w+);/$self->AttReference($1, $reader)/geo; return $value; } sub Comment { my ($self, $reader) = @_; my $data = $reader->data(4); if ($data =~ /^/s) { $comment_str .= $1; $self->parser_error("Invalid comment (dash)", $reader) if $comment_str =~ /-$/; $reader->move_along(length($1) + 3); last; } else { $comment_str .= $data; $reader->move_along(length($data)); } } $self->comment({ Data => $comment_str }); return 1; } return 0; } sub PI { my ($self, $reader) = @_; my $data = $reader->data(2); if ($data =~ /^<\?/) { $reader->move_along(2); my ($target); $target = $self->Name($reader) || $self->parser_error("PI has no target", $reader); my $pi_data = ''; if ($self->skip_whitespace($reader)) { while (1) { my $data = $reader->data; $self->parser_error("End of data seen while looking for close PI marker", $reader) unless length($data); if ($data =~ /^(.*?)\?>/s) { $pi_data .= $1; $reader->move_along(length($1) + 2); last; } else { $pi_data .= $data; $reader->move_along(length($data)); } } } else { my $data = $reader->data(2); $data =~ /^\?>/ or $self->parser_error("PI closing sequence not found", $reader); $reader->move_along(2); } $self->processing_instruction({ Target => $target, Data => $pi_data }); return 1; } return 0; } sub Name { my ($self, $reader) = @_; my $name = ''; while(1) { my $data = $reader->data; return unless length($data); $data =~ /^([^\s>\/&\?;=<\)\(\[\],\%\#\!\*\|]*)/ or return; $name .= $1; my $len = length($1); $reader->move_along($len); last if ($len != length($data)); } return unless length($name); $name =~ /$NameChar/o or $self->parser_error("Name <$name> does not match NameChar production", $reader); return $name; } sub quote { my ($self, $reader) = @_; my $data = $reader->data; $data =~ /^(['"])/ or $self->parser_error("Invalid quote token", $reader); $reader->move_along(1); return $1; } 1; __END__ =head1 NAME XML::SAX::PurePerl - Pure Perl XML Parser with SAX2 interface =head1 SYNOPSIS use XML::Handler::Foo; use XML::SAX::PurePerl; my $handler = XML::Handler::Foo->new(); my $parser = XML::SAX::PurePerl->new(Handler => $handler); $parser->parse_uri("myfile.xml"); =head1 DESCRIPTION This module implements an XML parser in pure perl. It is written around the upcoming perl 5.8's unicode support and support for multiple document encodings (using the PerlIO layer), however it has been ported to work with ASCII/UTF8 documents under lower perl versions. The SAX2 API is described in detail at http://sourceforge.net/projects/perl-xml/, in the CVS archive, under libxml-perl/docs. Hopefully those documents will be in a better location soon. Please refer to the SAX2 documentation for how to use this module - it is merely a front end to SAX2, and implements nothing that is not in that spec (or at least tries not to - please email me if you find errors in this implementation). =head1 BUGS XML::SAX::PurePerl is B. Very slow. I suggest you use something else in fact. However it is great as a fallback parser for XML::SAX, where the user might not be able to install an XS based parser or C library. Currently lots, probably. At the moment the weakest area is parsing DOCTYPE declarations, though the code is in place to start doing this. Also parsing parameter entity references is causing me much confusion, since it's not exactly what I would call trivial, or well documented in the XML grammar. XML documents with internal subsets are likely to fail. I am however trying to work towards full conformance using the Oasis test suite. =head1 AUTHOR Matt Sergeant, matt@sergeant.org. Copyright 2001. Please report all bugs to the Perl-XML mailing list at perl-xml@listserv.activestate.com. =head1 LICENSE This is free software. You may use it or redistribute it under the same terms as Perl 5.7.2 itself. =cut SAX/Expat.pm000055500000046305152345536550006644 0ustar00 ### # XML::SAX::Expat - SAX2 Driver for Expat (XML::Parser) # Originally by Robin Berjon ### package XML::SAX::Expat; use strict; use base qw(XML::SAX::Base); use XML::NamespaceSupport qw(); use XML::Parser qw(); use vars qw($VERSION); $VERSION = '0.51'; #,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #`,`, Variations on parse `,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,# #```````````````````````````````````````````````````````````````````# #-------------------------------------------------------------------# # CharacterStream #-------------------------------------------------------------------# sub _parse_characterstream { my $p = shift; my $xml = shift; my $opt = shift; my $expat = $p->_create_parser($opt); my $result = $expat->parse($xml); $p->_cleanup; return $result; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # ByteStream #-------------------------------------------------------------------# sub _parse_bytestream { my $p = shift; my $xml = shift; my $opt = shift; my $expat = $p->_create_parser($opt); my $result = $expat->parse($xml); $p->_cleanup; return $result; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # String #-------------------------------------------------------------------# sub _parse_string { my $p = shift; my $xml = shift; my $opt = shift; my $expat = $p->_create_parser($opt); my $result = $expat->parse($xml); $p->_cleanup; return $result; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # SystemId #-------------------------------------------------------------------# sub _parse_systemid { my $p = shift; my $xml = shift; my $opt = shift; my $expat = $p->_create_parser($opt); my $result = $expat->parsefile($xml); $p->_cleanup; return $result; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->_create_parser(\%options) #-------------------------------------------------------------------# sub _create_parser { my $self = shift; my $opt = shift; die "ParserReference: parser instance ($self) already parsing\n" if $self->{_InParse}; my $featUri = 'http://xml.org/sax/features/'; my $ppe = ($self->get_feature($featUri . 'external-general-entities') or $self->get_feature($featUri . 'external-parameter-entities') ) ? 1 : 0; my $expat = XML::Parser->new( ParseParamEnt => $ppe ); $expat->{__XSE} = $self; $expat->setHandlers( Init => \&_handle_init, Final => \&_handle_final, Start => \&_handle_start, End => \&_handle_end, Char => \&_handle_char, Comment => \&_handle_comment, Proc => \&_handle_proc, CdataStart => \&_handle_start_cdata, CdataEnd => \&_handle_end_cdata, Unparsed => \&_handle_unparsed_entity, Notation => \&_handle_notation_decl, #ExternEnt #ExternEntFin Entity => \&_handle_entity_decl, Element => \&_handle_element_decl, Attlist => \&_handle_attr_decl, Doctype => \&_handle_start_doctype, DoctypeFin => \&_handle_end_doctype, XMLDecl => \&_handle_xml_decl, ); $self->{_InParse} = 1; $self->{_NodeStack} = []; $self->{_NSStack} = []; $self->{_NSHelper} = XML::NamespaceSupport->new({xmlns => 1}); $self->{_started} = 0; return $expat; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->_cleanup #-------------------------------------------------------------------# sub _cleanup { my $self = shift; $self->{_InParse} = 0; delete $self->{_NodeStack}; } #-------------------------------------------------------------------# #,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #`,`, Expat Handlers ,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,# #```````````````````````````````````````````````````````````````````# #-------------------------------------------------------------------# # _handle_init #-------------------------------------------------------------------# sub _handle_init { #my $self = shift()->{__XSE}; #my $document = {}; #push @{$self->{_NodeStack}}, $document; #$self->SUPER::start_document($document); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_final #-------------------------------------------------------------------# sub _handle_final { my $self = shift()->{__XSE}; #my $document = pop @{$self->{_NodeStack}}; return $self->SUPER::end_document({}); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_start #-------------------------------------------------------------------# sub _handle_start { my $self = shift()->{__XSE}; my $e_name = shift; my %attr = @_; # start_document data $self->_handle_start_document({}) unless $self->{_started}; # take care of namespaces my $nsh = $self->{_NSHelper}; $nsh->push_context; my @new_ns; for my $k (grep !index($_, 'xmlns'), keys %attr) { $k =~ m/^xmlns(:(.*))?$/; my $prefix = $2 || ''; $nsh->declare_prefix($prefix, $attr{$k}); my $ns = { Prefix => $prefix, NamespaceURI => $attr{$k}, }; push @new_ns, $ns; $self->SUPER::start_prefix_mapping($ns); } push @{$self->{_NSStack}}, \@new_ns; # create the attributes my %saxattr; map { my ($ns,$prefix,$lname) = $nsh->process_attribute_name($_); $saxattr{'{' . ($ns || '') . '}' . $lname} = { Name => $_, LocalName => $lname || '', Prefix => $prefix || '', Value => $attr{$_}, NamespaceURI => $ns || '', }; } keys %attr; # now the element my ($ns,$prefix,$lname) = $nsh->process_element_name($e_name); my $element = { Name => $e_name, LocalName => $lname || '', Prefix => $prefix || '', NamespaceURI => $ns || '', Attributes => \%saxattr, }; push @{$self->{_NodeStack}}, $element; $self->SUPER::start_element($element); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_end #-------------------------------------------------------------------# sub _handle_end { my $self = shift()->{__XSE}; my %element = %{pop @{$self->{_NodeStack}}}; delete $element{Attributes}; $self->SUPER::end_element(\%element); my $prev_ns = pop @{$self->{_NSStack}}; for my $ns (@$prev_ns) { $self->SUPER::end_prefix_mapping( { %$ns } ); } $self->{_NSHelper}->pop_context; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_char #-------------------------------------------------------------------# sub _handle_char { $_[0]->{__XSE}->_handle_start_document({}) unless $_[0]->{__XSE}->{_started}; $_[0]->{__XSE}->SUPER::characters({ Data => $_[1] }); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_comment #-------------------------------------------------------------------# sub _handle_comment { $_[0]->{__XSE}->_handle_start_document({}) unless $_[0]->{__XSE}->{_started}; $_[0]->{__XSE}->SUPER::comment({ Data => $_[1] }); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_proc #-------------------------------------------------------------------# sub _handle_proc { $_[0]->{__XSE}->_handle_start_document({}) unless $_[0]->{__XSE}->{_started}; $_[0]->{__XSE}->SUPER::processing_instruction({ Target => $_[1], Data => $_[2] }); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_start_cdata #-------------------------------------------------------------------# sub _handle_start_cdata { $_[0]->{__XSE}->SUPER::start_cdata( {} ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_end_cdata #-------------------------------------------------------------------# sub _handle_end_cdata { $_[0]->{__XSE}->SUPER::end_cdata( {} ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_xml_decl #-------------------------------------------------------------------# sub _handle_xml_decl { my $self = shift()->{__XSE}; my $version = shift; my $encoding = shift; my $standalone = shift; if (not defined $standalone) { $standalone = ''; } elsif ($standalone) { $standalone = 'yes'; } else { $standalone = 'no'; } my $xd = { Version => $version, Encoding => $encoding, Standalone => $standalone, }; #$self->SUPER::xml_decl($xd); $self->_handle_start_document($xd); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_notation_decl #-------------------------------------------------------------------# sub _handle_notation_decl { my $self = shift()->{__XSE}; my $notation = shift; shift; my $system = shift; my $public = shift; my $not = { Name => $notation, PublicId => $public, SystemId => $system, }; $self->SUPER::notation_decl($not); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_unparsed_entity #-------------------------------------------------------------------# sub _handle_unparsed_entity { my $self = shift()->{__XSE}; my $name = shift; my $system = shift; my $public = shift; my $notation = shift; my $ue = { Name => $name, PublicId => $public, SystemId => $system, Notation => $notation, }; $self->SUPER::unparsed_entity_decl($ue); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_element_decl #-------------------------------------------------------------------# sub _handle_element_decl { $_[0]->{__XSE}->SUPER::element_decl({ Name => $_[1], Model => "$_[2]" }); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_attr_decl #-------------------------------------------------------------------# sub _handle_attr_decl { my $self = shift()->{__XSE}; my $ename = shift; my $aname = shift; my $type = shift; my $default = shift; my $fixed = shift; my ($vd, $value); if ($fixed) { $vd = '#FIXED'; $default =~ s/^(?:"|')//; #" $default =~ s/(?:"|')$//; #" $value = $default; } else { if ($default =~ m/^#/) { $vd = $default; $value = ''; } else { $vd = ''; # maybe there's a default ? $default =~ s/^(?:"|')//; #" $default =~ s/(?:"|')$//; #" $value = $default; } } my $at = { eName => $ename, aName => $aname, Type => $type, ValueDefault => $vd, Value => $value, }; $self->SUPER::attribute_decl($at); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_entity_decl #-------------------------------------------------------------------# sub _handle_entity_decl { my $self = shift()->{__XSE}; my $name = shift; my $val = shift; my $sys = shift; my $pub = shift; my $ndata = shift; my $isprm = shift; # deal with param ents if ($isprm) { $name = '%' . $name; } # int vs ext if ($val) { my $ent = { Name => $name, Value => $val, }; $self->SUPER::internal_entity_decl($ent); } else { my $ent = { Name => $name, PublicId => $pub || '', SystemId => $sys, }; $self->SUPER::external_entity_decl($ent); } } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_start_doctype #-------------------------------------------------------------------# sub _handle_start_doctype { my $self = shift()->{__XSE}; my $name = shift; my $sys = shift; my $pub = shift; $self->_handle_start_document({}) unless $self->{_started}; my $dtd = { Name => $name, SystemId => $sys, PublicId => $pub, }; $self->SUPER::start_dtd($dtd); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_end_doctype #-------------------------------------------------------------------# sub _handle_end_doctype { $_[0]->{__XSE}->SUPER::end_dtd( {} ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # _handle_start_document #-------------------------------------------------------------------# sub _handle_start_document { $_[0]->SUPER::start_document($_[1]); $_[0]->{_started} = 1; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # supported_features #-------------------------------------------------------------------# sub supported_features { return ( $_[0]->SUPER::supported_features, 'http://xml.org/sax/features/external-general-entities', 'http://xml.org/sax/features/external-parameter-entities', ); } #-------------------------------------------------------------------# #,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #`,`, Private Helpers `,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,# #```````````````````````````````````````````````````````````````````# #-------------------------------------------------------------------# # _create_node #-------------------------------------------------------------------# #sub _create_node { # shift; # # this may check for a factory later # return {@_}; #} #-------------------------------------------------------------------# 1; #,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,# #`,`, Documentation `,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,# #```````````````````````````````````````````````````````````````````# =pod =head1 NAME XML::SAX::Expat - SAX2 Driver for Expat (XML::Parser) =head1 SYNOPSIS use XML::SAX::Expat; use XML::SAX::MyFooHandler; my $h = XML::SAX::MyFooHandler->new; my $p = XML::SAX::Expat->new(Handler => $h); $p->parse_file('/path/to/foo.xml'); =head1 DESCRIPTION This is an implementation of a SAX2 driver sitting on top of Expat (XML::Parser) which Ken MacLeod posted to perl-xml and which I have updated. It is still incomplete, though most of the basic SAX2 events should be available. The SAX2 spec is currently available from L. A more friendly URL as well as a PODification of the spec are in the works. =head1 METHODS The methods defined in this class correspond to those listed in the PerlSAX2 specification, available above. =head1 FEATURES AND CAVEATS =over 2 =item supported_features Returns: * http://xml.org/sax/features/external-general-entities * http://xml.org/sax/features/external-parameter-entities * [ Features supported by ancestors ] Turning one of the first two on also turns the other on (this maps to the XML::Parser ParseParamEnts option). This may be fixed in the future, so don't rely on this behaviour. =back =head1 MISSING PARTS XML::Parser has no listed callbacks for the following events, which are therefore not presently generated (ways may be found in the future): * ignorable_whitespace * skipped_entity * start_entity / end_entity * resolve_entity Ways of signalling them are welcome. In addition to those, set_document_locator is not yet called. =head1 TODO - reuse Ken's tests and add more =head1 AUTHOR Robin Berjon; stolen from Ken Macleod, ken@bitsko.slc.ut.us, and with suggestions and feedback from perl-xml. Currently maintained by Bjoern Hoehrmann, L. =head1 COPYRIGHT AND LICENSE Copyright (c) 2001-2008 Robin Berjon. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO XML::Parser::PerlSAX =cut SAX/Exception.pm000044400000005731152345536550007514 0ustar00package XML::SAX::Exception; $XML::SAX::Exception::VERSION = '1.09'; use strict; use overload '""' => "stringify", 'fallback' => 1; use vars qw($StackTrace); use Carp; $StackTrace = $ENV{XML_DEBUG} || 0; # Other exception classes: @XML::SAX::Exception::NotRecognized::ISA = ('XML::SAX::Exception'); @XML::SAX::Exception::NotSupported::ISA = ('XML::SAX::Exception'); @XML::SAX::Exception::Parse::ISA = ('XML::SAX::Exception'); sub throw { my $class = shift; if (ref($class)) { die $class; } die $class->new(@_); } sub new { my $class = shift; my %opts = @_; confess "Invalid options: " . join(', ', keys %opts) unless exists $opts{Message}; bless { ($StackTrace ? (StackTrace => stacktrace()) : ()), %opts }, $class; } sub stringify { my $self = shift; local $^W; my $error; if (exists $self->{LineNumber}) { $error = $self->{Message} . " [Ln: " . $self->{LineNumber} . ", Col: " . $self->{ColumnNumber} . "]"; } else { $error = $self->{Message}; } if ($StackTrace) { $error .= stackstring($self->{StackTrace}); } $error .= "\n"; return $error; } sub stacktrace { my $i = 2; my @fulltrace; while (my @trace = caller($i++)) { my %hash; @hash{qw(Package Filename Line)} = @trace[0..2]; push @fulltrace, \%hash; } return \@fulltrace; } sub stackstring { my $stacktrace = shift; my $string = "\nFrom:\n"; foreach my $current (@$stacktrace) { $string .= $current->{Filename} . " Line: " . $current->{Line} . "\n"; } return $string; } 1; __END__ =head1 NAME XML::SAX::Exception - Exception classes for XML::SAX =head1 SYNOPSIS throw XML::SAX::Exception::NotSupported( Message => "The foo feature is not supported", ); =head1 DESCRIPTION This module is the base class for all SAX Exceptions, those defined in the spec as well as those that one may create for one's own SAX errors. There are three subclasses included, corresponding to those of the SAX spec: XML::SAX::Exception::NotSupported XML::SAX::Exception::NotRecognized XML::SAX::Exception::Parse Use them wherever you want, and as much as possible when you encounter such errors. SAX is meant to use exceptions as much as possible to flag problems. =head1 CREATING NEW EXCEPTION CLASSES All you need to do to create a new exception class is: @XML::SAX::Exception::MyException::ISA = ('XML::SAX::Exception') The given package doesn't need to exist, it'll behave correctly this way. If your exception refines an existing exception class, then you may also inherit from that instead of from the base class. =head1 THROWING EXCEPTIONS This is as simple as exemplified in the SYNOPSIS. In fact, there's nothing more to know. All you have to do is: throw XML::SAX::Exception::MyException( Message => 'Something went wrong' ); and voila, you've thrown an exception which can be caught in an eval block. =cut SAX/Base.pm000044400000360025152345536550006430 0ustar00package XML::SAX::Base; $XML::SAX::Base::VERSION = '1.09'; # version 0.10 - Kip Hampton # version 0.13 - Robin Berjon # version 0.15 - Kip Hampton # version 0.17 - Kip Hampton # version 0.19 - Kip Hampton # version 0.21 - Kip Hampton # version 0.22 - Robin Berjon # version 0.23 - Matt Sergeant # version 0.24 - Robin Berjon # version 0.25 - Kip Hampton # version 1.00 - Kip Hampton # version 1.01 - Kip Hampton # version 1.02 - Robin Berjon # version 1.03 - Matt Sergeant # version 1.04 - Kip Hampton # version 1.05 - Grant McLean # version 1.06 - Grant McLean # version 1.07 - Grant McLean # version 1.08 - Grant McLean #-----------------------------------------------------# # STOP!!!!! # # This file is generated by the 'BuildSAXBase.pl' file # that ships with the XML::SAX::Base distribution. # If you need to make changes, patch that file NOT # XML/SAX/Base.pm Better yet, fork the git repository # commit your changes and send a pull request: # https://github.com/grantm/XML-SAX-Base #-----------------------------------------------------# use strict; use XML::SAX::Exception qw(); sub end_entity { my $self = shift; if (defined $self->{Methods}->{'end_entity'}) { $self->{Methods}->{'end_entity'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'LexicalHandler'} and $method = $callbacks->{'LexicalHandler'}->can('end_entity') ) { my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'end_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('end_entity') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'LexicalHandler'} and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'LexicalHandler'}->end_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'end_entity'} = sub { $handler->end_entity(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->end_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_entity'} = sub { $handler->end_entity(@_) }; } return $res; } else { $self->{Methods}->{'end_entity'} = sub { }; } } } sub set_document_locator { my $self = shift; if (defined $self->{Methods}->{'set_document_locator'}) { $self->{Methods}->{'set_document_locator'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('set_document_locator') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'set_document_locator'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('set_document_locator') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'set_document_locator'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('set_document_locator') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'set_document_locator'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->set_document_locator(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'set_document_locator'} = sub { $handler->set_document_locator(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->set_document_locator(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'set_document_locator'} = sub { $handler->set_document_locator(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->set_document_locator(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'set_document_locator'} = sub { $handler->set_document_locator(@_) }; } return $res; } else { $self->{Methods}->{'set_document_locator'} = sub { }; } } } sub notation_decl { my $self = shift; if (defined $self->{Methods}->{'notation_decl'}) { $self->{Methods}->{'notation_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DTDHandler'} and $method = $callbacks->{'DTDHandler'}->can('notation_decl') ) { my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'notation_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('notation_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'notation_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DTDHandler'} and $callbacks->{'DTDHandler'}->can('AUTOLOAD') and $callbacks->{'DTDHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DTDHandler'}->notation_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'notation_decl'} = sub { $handler->notation_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->notation_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'notation_decl'} = sub { $handler->notation_decl(@_) }; } return $res; } else { $self->{Methods}->{'notation_decl'} = sub { }; } } } sub attlist_decl { my $self = shift; if (defined $self->{Methods}->{'attlist_decl'}) { $self->{Methods}->{'attlist_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DTDHandler'} and $method = $callbacks->{'DTDHandler'}->can('attlist_decl') ) { my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'attlist_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('attlist_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'attlist_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DTDHandler'} and $callbacks->{'DTDHandler'}->can('AUTOLOAD') and $callbacks->{'DTDHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DTDHandler'}->attlist_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'attlist_decl'} = sub { $handler->attlist_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->attlist_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'attlist_decl'} = sub { $handler->attlist_decl(@_) }; } return $res; } else { $self->{Methods}->{'attlist_decl'} = sub { }; } } } sub fatal_error { my $self = shift; if (defined $self->{Methods}->{'fatal_error'}) { $self->{Methods}->{'fatal_error'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ErrorHandler'} and $method = $callbacks->{'ErrorHandler'}->can('fatal_error') ) { my $handler = $callbacks->{'ErrorHandler'}; $self->{Methods}->{'fatal_error'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('fatal_error') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'fatal_error'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ErrorHandler'} and $callbacks->{'ErrorHandler'}->can('AUTOLOAD') and $callbacks->{'ErrorHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ErrorHandler'}->fatal_error(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ErrorHandler'}; $self->{Methods}->{'fatal_error'} = sub { $handler->fatal_error(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->fatal_error(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'fatal_error'} = sub { $handler->fatal_error(@_) }; } return $res; } else { $self->{Methods}->{'fatal_error'} = sub { }; } } } sub start_document { my $self = shift; if (defined $self->{Methods}->{'start_document'}) { $self->{Methods}->{'start_document'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('start_document') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'start_document'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('start_document') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'start_document'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('start_document') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_document'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->start_document(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'start_document'} = sub { $handler->start_document(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->start_document(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'start_document'} = sub { $handler->start_document(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->start_document(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_document'} = sub { $handler->start_document(@_) }; } return $res; } else { $self->{Methods}->{'start_document'} = sub { }; } } } sub warning { my $self = shift; if (defined $self->{Methods}->{'warning'}) { $self->{Methods}->{'warning'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ErrorHandler'} and $method = $callbacks->{'ErrorHandler'}->can('warning') ) { my $handler = $callbacks->{'ErrorHandler'}; $self->{Methods}->{'warning'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('warning') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'warning'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ErrorHandler'} and $callbacks->{'ErrorHandler'}->can('AUTOLOAD') and $callbacks->{'ErrorHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ErrorHandler'}->warning(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ErrorHandler'}; $self->{Methods}->{'warning'} = sub { $handler->warning(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->warning(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'warning'} = sub { $handler->warning(@_) }; } return $res; } else { $self->{Methods}->{'warning'} = sub { }; } } } sub ignorable_whitespace { my $self = shift; if (defined $self->{Methods}->{'ignorable_whitespace'}) { $self->{Methods}->{'ignorable_whitespace'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('ignorable_whitespace') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'ignorable_whitespace'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('ignorable_whitespace') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'ignorable_whitespace'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('ignorable_whitespace') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'ignorable_whitespace'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->ignorable_whitespace(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'ignorable_whitespace'} = sub { $handler->ignorable_whitespace(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->ignorable_whitespace(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'ignorable_whitespace'} = sub { $handler->ignorable_whitespace(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->ignorable_whitespace(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'ignorable_whitespace'} = sub { $handler->ignorable_whitespace(@_) }; } return $res; } else { $self->{Methods}->{'ignorable_whitespace'} = sub { }; } } } sub resolve_entity { my $self = shift; if (defined $self->{Methods}->{'resolve_entity'}) { $self->{Methods}->{'resolve_entity'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'EntityResolver'} and $method = $callbacks->{'EntityResolver'}->can('resolve_entity') ) { my $handler = $callbacks->{'EntityResolver'}; $self->{Methods}->{'resolve_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('resolve_entity') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'resolve_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'EntityResolver'} and $callbacks->{'EntityResolver'}->can('AUTOLOAD') and $callbacks->{'EntityResolver'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'EntityResolver'}->resolve_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'EntityResolver'}; $self->{Methods}->{'resolve_entity'} = sub { $handler->resolve_entity(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->resolve_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'resolve_entity'} = sub { $handler->resolve_entity(@_) }; } return $res; } else { $self->{Methods}->{'resolve_entity'} = sub { }; } } } sub external_entity_decl { my $self = shift; if (defined $self->{Methods}->{'external_entity_decl'}) { $self->{Methods}->{'external_entity_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DeclHandler'} and $method = $callbacks->{'DeclHandler'}->can('external_entity_decl') ) { my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'external_entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('external_entity_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'external_entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DeclHandler'} and $callbacks->{'DeclHandler'}->can('AUTOLOAD') and $callbacks->{'DeclHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DeclHandler'}->external_entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'external_entity_decl'} = sub { $handler->external_entity_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->external_entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'external_entity_decl'} = sub { $handler->external_entity_decl(@_) }; } return $res; } else { $self->{Methods}->{'external_entity_decl'} = sub { }; } } } sub entity_reference { my $self = shift; if (defined $self->{Methods}->{'entity_reference'}) { $self->{Methods}->{'entity_reference'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('entity_reference') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'entity_reference'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('entity_reference') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'entity_reference'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->entity_reference(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'entity_reference'} = sub { $handler->entity_reference(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->entity_reference(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'entity_reference'} = sub { $handler->entity_reference(@_) }; } return $res; } else { $self->{Methods}->{'entity_reference'} = sub { }; } } } sub start_entity { my $self = shift; if (defined $self->{Methods}->{'start_entity'}) { $self->{Methods}->{'start_entity'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'LexicalHandler'} and $method = $callbacks->{'LexicalHandler'}->can('start_entity') ) { my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'start_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('start_entity') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'LexicalHandler'} and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'LexicalHandler'}->start_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'start_entity'} = sub { $handler->start_entity(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->start_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_entity'} = sub { $handler->start_entity(@_) }; } return $res; } else { $self->{Methods}->{'start_entity'} = sub { }; } } } sub end_dtd { my $self = shift; if (defined $self->{Methods}->{'end_dtd'}) { $self->{Methods}->{'end_dtd'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'LexicalHandler'} and $method = $callbacks->{'LexicalHandler'}->can('end_dtd') ) { my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'end_dtd'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('end_dtd') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_dtd'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'LexicalHandler'} and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'LexicalHandler'}->end_dtd(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'end_dtd'} = sub { $handler->end_dtd(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->end_dtd(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_dtd'} = sub { $handler->end_dtd(@_) }; } return $res; } else { $self->{Methods}->{'end_dtd'} = sub { }; } } } sub element_decl { my $self = shift; if (defined $self->{Methods}->{'element_decl'}) { $self->{Methods}->{'element_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DeclHandler'} and $method = $callbacks->{'DeclHandler'}->can('element_decl') ) { my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'element_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('element_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'element_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DeclHandler'} and $callbacks->{'DeclHandler'}->can('AUTOLOAD') and $callbacks->{'DeclHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DeclHandler'}->element_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'element_decl'} = sub { $handler->element_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->element_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'element_decl'} = sub { $handler->element_decl(@_) }; } return $res; } else { $self->{Methods}->{'element_decl'} = sub { }; } } } sub start_element { my $self = shift; if (defined $self->{Methods}->{'start_element'}) { $self->{Methods}->{'start_element'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('start_element') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'start_element'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('start_element') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'start_element'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('start_element') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_element'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->start_element(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'start_element'} = sub { $handler->start_element(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->start_element(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'start_element'} = sub { $handler->start_element(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->start_element(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_element'} = sub { $handler->start_element(@_) }; } return $res; } else { $self->{Methods}->{'start_element'} = sub { }; } } } sub error { my $self = shift; if (defined $self->{Methods}->{'error'}) { $self->{Methods}->{'error'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ErrorHandler'} and $method = $callbacks->{'ErrorHandler'}->can('error') ) { my $handler = $callbacks->{'ErrorHandler'}; $self->{Methods}->{'error'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('error') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'error'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ErrorHandler'} and $callbacks->{'ErrorHandler'}->can('AUTOLOAD') and $callbacks->{'ErrorHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ErrorHandler'}->error(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ErrorHandler'}; $self->{Methods}->{'error'} = sub { $handler->error(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->error(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'error'} = sub { $handler->error(@_) }; } return $res; } else { $self->{Methods}->{'error'} = sub { }; } } } sub xml_decl { my $self = shift; if (defined $self->{Methods}->{'xml_decl'}) { $self->{Methods}->{'xml_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DTDHandler'} and $method = $callbacks->{'DTDHandler'}->can('xml_decl') ) { my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'xml_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('xml_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'xml_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DTDHandler'} and $callbacks->{'DTDHandler'}->can('AUTOLOAD') and $callbacks->{'DTDHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DTDHandler'}->xml_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'xml_decl'} = sub { $handler->xml_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->xml_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'xml_decl'} = sub { $handler->xml_decl(@_) }; } return $res; } else { $self->{Methods}->{'xml_decl'} = sub { }; } } } sub end_document { my $self = shift; if (defined $self->{Methods}->{'end_document'}) { $self->{Methods}->{'end_document'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('end_document') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'end_document'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('end_document') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'end_document'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('end_document') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_document'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->end_document(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'end_document'} = sub { $handler->end_document(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->end_document(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'end_document'} = sub { $handler->end_document(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->end_document(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_document'} = sub { $handler->end_document(@_) }; } return $res; } else { $self->{Methods}->{'end_document'} = sub { }; } } } sub attribute_decl { my $self = shift; if (defined $self->{Methods}->{'attribute_decl'}) { $self->{Methods}->{'attribute_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DeclHandler'} and $method = $callbacks->{'DeclHandler'}->can('attribute_decl') ) { my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'attribute_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('attribute_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'attribute_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DeclHandler'} and $callbacks->{'DeclHandler'}->can('AUTOLOAD') and $callbacks->{'DeclHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DeclHandler'}->attribute_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'attribute_decl'} = sub { $handler->attribute_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->attribute_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'attribute_decl'} = sub { $handler->attribute_decl(@_) }; } return $res; } else { $self->{Methods}->{'attribute_decl'} = sub { }; } } } sub internal_entity_decl { my $self = shift; if (defined $self->{Methods}->{'internal_entity_decl'}) { $self->{Methods}->{'internal_entity_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DeclHandler'} and $method = $callbacks->{'DeclHandler'}->can('internal_entity_decl') ) { my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'internal_entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('internal_entity_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'internal_entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DeclHandler'} and $callbacks->{'DeclHandler'}->can('AUTOLOAD') and $callbacks->{'DeclHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DeclHandler'}->internal_entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DeclHandler'}; $self->{Methods}->{'internal_entity_decl'} = sub { $handler->internal_entity_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->internal_entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'internal_entity_decl'} = sub { $handler->internal_entity_decl(@_) }; } return $res; } else { $self->{Methods}->{'internal_entity_decl'} = sub { }; } } } sub doctype_decl { my $self = shift; if (defined $self->{Methods}->{'doctype_decl'}) { $self->{Methods}->{'doctype_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DTDHandler'} and $method = $callbacks->{'DTDHandler'}->can('doctype_decl') ) { my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'doctype_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('doctype_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'doctype_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DTDHandler'} and $callbacks->{'DTDHandler'}->can('AUTOLOAD') and $callbacks->{'DTDHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DTDHandler'}->doctype_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'doctype_decl'} = sub { $handler->doctype_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->doctype_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'doctype_decl'} = sub { $handler->doctype_decl(@_) }; } return $res; } else { $self->{Methods}->{'doctype_decl'} = sub { }; } } } sub unparsed_entity_decl { my $self = shift; if (defined $self->{Methods}->{'unparsed_entity_decl'}) { $self->{Methods}->{'unparsed_entity_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DTDHandler'} and $method = $callbacks->{'DTDHandler'}->can('unparsed_entity_decl') ) { my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'unparsed_entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('unparsed_entity_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'unparsed_entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DTDHandler'} and $callbacks->{'DTDHandler'}->can('AUTOLOAD') and $callbacks->{'DTDHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DTDHandler'}->unparsed_entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'unparsed_entity_decl'} = sub { $handler->unparsed_entity_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->unparsed_entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'unparsed_entity_decl'} = sub { $handler->unparsed_entity_decl(@_) }; } return $res; } else { $self->{Methods}->{'unparsed_entity_decl'} = sub { }; } } } sub skipped_entity { my $self = shift; if (defined $self->{Methods}->{'skipped_entity'}) { $self->{Methods}->{'skipped_entity'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('skipped_entity') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'skipped_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('skipped_entity') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'skipped_entity'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->skipped_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'skipped_entity'} = sub { $handler->skipped_entity(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->skipped_entity(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'skipped_entity'} = sub { $handler->skipped_entity(@_) }; } return $res; } else { $self->{Methods}->{'skipped_entity'} = sub { }; } } } sub end_prefix_mapping { my $self = shift; if (defined $self->{Methods}->{'end_prefix_mapping'}) { $self->{Methods}->{'end_prefix_mapping'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('end_prefix_mapping') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'end_prefix_mapping'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('end_prefix_mapping') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_prefix_mapping'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->end_prefix_mapping(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'end_prefix_mapping'} = sub { $handler->end_prefix_mapping(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->end_prefix_mapping(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_prefix_mapping'} = sub { $handler->end_prefix_mapping(@_) }; } return $res; } else { $self->{Methods}->{'end_prefix_mapping'} = sub { }; } } } sub characters { my $self = shift; if (defined $self->{Methods}->{'characters'}) { $self->{Methods}->{'characters'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('characters') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'characters'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('characters') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'characters'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('characters') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'characters'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->characters(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'characters'} = sub { $handler->characters(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->characters(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'characters'} = sub { $handler->characters(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->characters(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'characters'} = sub { $handler->characters(@_) }; } return $res; } else { $self->{Methods}->{'characters'} = sub { }; } } } sub comment { my $self = shift; if (defined $self->{Methods}->{'comment'}) { $self->{Methods}->{'comment'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('comment') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'comment'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'LexicalHandler'} and $method = $callbacks->{'LexicalHandler'}->can('comment') ) { my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'comment'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('comment') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'comment'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->comment(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'comment'} = sub { $handler->comment(@_) }; } return $res; } elsif (defined $callbacks->{'LexicalHandler'} and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'LexicalHandler'}->comment(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'comment'} = sub { $handler->comment(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->comment(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'comment'} = sub { $handler->comment(@_) }; } return $res; } else { $self->{Methods}->{'comment'} = sub { }; } } } sub start_dtd { my $self = shift; if (defined $self->{Methods}->{'start_dtd'}) { $self->{Methods}->{'start_dtd'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'LexicalHandler'} and $method = $callbacks->{'LexicalHandler'}->can('start_dtd') ) { my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'start_dtd'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('start_dtd') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_dtd'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'LexicalHandler'} and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'LexicalHandler'}->start_dtd(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'start_dtd'} = sub { $handler->start_dtd(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->start_dtd(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_dtd'} = sub { $handler->start_dtd(@_) }; } return $res; } else { $self->{Methods}->{'start_dtd'} = sub { }; } } } sub entity_decl { my $self = shift; if (defined $self->{Methods}->{'entity_decl'}) { $self->{Methods}->{'entity_decl'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DTDHandler'} and $method = $callbacks->{'DTDHandler'}->can('entity_decl') ) { my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('entity_decl') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'entity_decl'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DTDHandler'} and $callbacks->{'DTDHandler'}->can('AUTOLOAD') and $callbacks->{'DTDHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DTDHandler'}->entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DTDHandler'}; $self->{Methods}->{'entity_decl'} = sub { $handler->entity_decl(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->entity_decl(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'entity_decl'} = sub { $handler->entity_decl(@_) }; } return $res; } else { $self->{Methods}->{'entity_decl'} = sub { }; } } } sub start_prefix_mapping { my $self = shift; if (defined $self->{Methods}->{'start_prefix_mapping'}) { $self->{Methods}->{'start_prefix_mapping'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('start_prefix_mapping') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'start_prefix_mapping'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('start_prefix_mapping') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_prefix_mapping'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->start_prefix_mapping(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'start_prefix_mapping'} = sub { $handler->start_prefix_mapping(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->start_prefix_mapping(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_prefix_mapping'} = sub { $handler->start_prefix_mapping(@_) }; } return $res; } else { $self->{Methods}->{'start_prefix_mapping'} = sub { }; } } } sub end_cdata { my $self = shift; if (defined $self->{Methods}->{'end_cdata'}) { $self->{Methods}->{'end_cdata'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('end_cdata') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'end_cdata'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'LexicalHandler'} and $method = $callbacks->{'LexicalHandler'}->can('end_cdata') ) { my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'end_cdata'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('end_cdata') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_cdata'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->end_cdata(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'end_cdata'} = sub { $handler->end_cdata(@_) }; } return $res; } elsif (defined $callbacks->{'LexicalHandler'} and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'LexicalHandler'}->end_cdata(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'end_cdata'} = sub { $handler->end_cdata(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->end_cdata(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_cdata'} = sub { $handler->end_cdata(@_) }; } return $res; } else { $self->{Methods}->{'end_cdata'} = sub { }; } } } sub processing_instruction { my $self = shift; if (defined $self->{Methods}->{'processing_instruction'}) { $self->{Methods}->{'processing_instruction'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('processing_instruction') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'processing_instruction'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('processing_instruction') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'processing_instruction'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('processing_instruction') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'processing_instruction'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->processing_instruction(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'processing_instruction'} = sub { $handler->processing_instruction(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->processing_instruction(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'processing_instruction'} = sub { $handler->processing_instruction(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->processing_instruction(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'processing_instruction'} = sub { $handler->processing_instruction(@_) }; } return $res; } else { $self->{Methods}->{'processing_instruction'} = sub { }; } } } sub end_element { my $self = shift; if (defined $self->{Methods}->{'end_element'}) { $self->{Methods}->{'end_element'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'ContentHandler'} and $method = $callbacks->{'ContentHandler'}->can('end_element') ) { my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'end_element'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('end_element') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'end_element'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('end_element') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_element'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'ContentHandler'} and $callbacks->{'ContentHandler'}->can('AUTOLOAD') and $callbacks->{'ContentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'ContentHandler'}->end_element(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'ContentHandler'}; $self->{Methods}->{'end_element'} = sub { $handler->end_element(@_) }; } return $res; } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->end_element(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'end_element'} = sub { $handler->end_element(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->end_element(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'end_element'} = sub { $handler->end_element(@_) }; } return $res; } else { $self->{Methods}->{'end_element'} = sub { }; } } } sub start_cdata { my $self = shift; if (defined $self->{Methods}->{'start_cdata'}) { $self->{Methods}->{'start_cdata'}->(@_); } else { my $method; my $callbacks; if (exists $self->{ParseOptions}) { $callbacks = $self->{ParseOptions}; } else { $callbacks = $self; } if (0) { # dummy to make elsif's below compile } elsif (defined $callbacks->{'DocumentHandler'} and $method = $callbacks->{'DocumentHandler'}->can('start_cdata') ) { my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'start_cdata'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'LexicalHandler'} and $method = $callbacks->{'LexicalHandler'}->can('start_cdata') ) { my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'start_cdata'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'Handler'} and $method = $callbacks->{'Handler'}->can('start_cdata') ) { my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_cdata'} = sub { $method->($handler, @_) }; return $method->($handler, @_); } elsif (defined $callbacks->{'DocumentHandler'} and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') and $callbacks->{'DocumentHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'DocumentHandler'}->start_cdata(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'DocumentHandler'}; $self->{Methods}->{'start_cdata'} = sub { $handler->start_cdata(@_) }; } return $res; } elsif (defined $callbacks->{'LexicalHandler'} and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') and $callbacks->{'LexicalHandler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'LexicalHandler'}->start_cdata(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'LexicalHandler'}; $self->{Methods}->{'start_cdata'} = sub { $handler->start_cdata(@_) }; } return $res; } elsif (defined $callbacks->{'Handler'} and $callbacks->{'Handler'}->can('AUTOLOAD') and $callbacks->{'Handler'}->can('AUTOLOAD') ne (UNIVERSAL->can('AUTOLOAD') || '') ) { my $res = eval { $callbacks->{'Handler'}->start_cdata(@_) }; if ($@) { die $@; } else { # I think there's a buggette here... # if the first call throws an exception, we don't set it up right. # Not fatal, but we might want to address it. my $handler = $callbacks->{'Handler'}; $self->{Methods}->{'start_cdata'} = sub { $handler->start_cdata(@_) }; } return $res; } else { $self->{Methods}->{'start_cdata'} = sub { }; } } } #-------------------------------------------------------------------# # Class->new(%options) #-------------------------------------------------------------------# sub new { my $proto = shift; my $class = ref($proto) || $proto; my $options = ($#_ == 0) ? shift : { @_ }; unless ( defined( $options->{Handler} ) or defined( $options->{ContentHandler} ) or defined( $options->{DTDHandler} ) or defined( $options->{DocumentHandler} ) or defined( $options->{LexicalHandler} ) or defined( $options->{ErrorHandler} ) or defined( $options->{DeclHandler} ) ) { $options->{Handler} = XML::SAX::Base::NoHandler->new; } my $self = bless $options, $class; # turn NS processing on by default $self->set_feature('http://xml.org/sax/features/namespaces', 1); return $self; } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse(%options) #-------------------------------------------------------------------# sub parse { my $self = shift; my $parse_options = $self->get_options(@_); local $self->{ParseOptions} = $parse_options; if ($self->{Parent}) { # calling parse on a filter for some reason return $self->{Parent}->parse($parse_options); } else { my $method; if (defined $parse_options->{Source}{CharacterStream} and $method = $self->can('_parse_characterstream')) { warn("parse charstream???\n"); return $method->($self, $parse_options->{Source}{CharacterStream}); } elsif (defined $parse_options->{Source}{ByteStream} and $method = $self->can('_parse_bytestream')) { return $method->($self, $parse_options->{Source}{ByteStream}); } elsif (defined $parse_options->{Source}{String} and $method = $self->can('_parse_string')) { return $method->($self, $parse_options->{Source}{String}); } elsif (defined $parse_options->{Source}{SystemId} and $method = $self->can('_parse_systemid')) { return $method->($self, $parse_options->{Source}{SystemId}); } else { die "No _parse_* routine defined on this driver (If it is a filter, remember to set the Parent property. If you call the parse() method, make sure to set a Source. You may want to call parse_uri, parse_string or parse_file instead.) [$self]"; } } } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse_file(%options) #-------------------------------------------------------------------# sub parse_file { my $self = shift; my $file = shift; return $self->parse_uri($file, @_) if ref(\$file) eq 'SCALAR'; my $parse_options = $self->get_options(@_); $parse_options->{Source}{ByteStream} = $file; return $self->parse($parse_options); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse_uri(%options) #-------------------------------------------------------------------# sub parse_uri { my $self = shift; my $file = shift; my $parse_options = $self->get_options(@_); $parse_options->{Source}{SystemId} = $file; return $self->parse($parse_options); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # $p->parse_string(%options) #-------------------------------------------------------------------# sub parse_string { my $self = shift; my $string = shift; my $parse_options = $self->get_options(@_); $parse_options->{Source}{String} = $string; return $self->parse($parse_options); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_options #-------------------------------------------------------------------# sub get_options { my $self = shift; if (@_ == 1) { return { %$self, %{$_[0]} }; } else { return { %$self, @_ }; } } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_features #-------------------------------------------------------------------# sub get_features { return ( 'http://xml.org/sax/features/external-general-entities' => undef, 'http://xml.org/sax/features/external-parameter-entities' => undef, 'http://xml.org/sax/features/is-standalone' => undef, 'http://xml.org/sax/features/lexical-handler' => undef, 'http://xml.org/sax/features/parameter-entities' => undef, 'http://xml.org/sax/features/namespaces' => 1, 'http://xml.org/sax/features/namespace-prefixes' => 0, 'http://xml.org/sax/features/string-interning' => undef, 'http://xml.org/sax/features/use-attributes2' => undef, 'http://xml.org/sax/features/use-locator2' => undef, 'http://xml.org/sax/features/validation' => undef, 'http://xml.org/sax/properties/dom-node' => undef, 'http://xml.org/sax/properties/xml-string' => undef, ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_feature #-------------------------------------------------------------------# sub get_feature { my $self = shift; my $feat = shift; # check %FEATURES to see if it's there, and return it if so # throw XML::SAX::Exception::NotRecognized if it's not there # throw XML::SAX::Exception::NotSupported if it's there but we # don't support it my %features = $self->get_features(); if (exists $features{$feat}) { my %supported = map { $_ => 1 } $self->supported_features(); if ($supported{$feat}) { return $self->{__PACKAGE__ . "::Features"}{$feat}; } throw XML::SAX::Exception::NotSupported( Message => "The feature '$feat' is not supported by " . ref($self), Exception => undef, ); } throw XML::SAX::Exception::NotRecognized( Message => "The feature '$feat' is not recognized by " . ref($self), Exception => undef, ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # set_feature #-------------------------------------------------------------------# sub set_feature { my $self = shift; my $feat = shift; my $value = shift; # check %FEATURES to see if it's there, and set it if so # throw XML::SAX::Exception::NotRecognized if it's not there # throw XML::SAX::Exception::NotSupported if it's there but we # don't support it my %features = $self->get_features(); if (exists $features{$feat}) { my %supported = map { $_ => 1 } $self->supported_features(); if ($supported{$feat}) { return $self->{__PACKAGE__ . "::Features"}{$feat} = $value; } throw XML::SAX::Exception::NotSupported( Message => "The feature '$feat' is not supported by " . ref($self), Exception => undef, ); } throw XML::SAX::Exception::NotRecognized( Message => "The feature '$feat' is not recognized by " . ref($self), Exception => undef, ); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # get_handler and friends #-------------------------------------------------------------------# sub get_handler { my $self = shift; my $handler_type = shift; $handler_type ||= 'Handler'; return defined( $self->{$handler_type} ) ? $self->{$handler_type} : undef; } sub get_document_handler { my $self = shift; return $self->get_handler('DocumentHandler', @_); } sub get_content_handler { my $self = shift; return $self->get_handler('ContentHandler', @_); } sub get_dtd_handler { my $self = shift; return $self->get_handler('DTDHandler', @_); } sub get_lexical_handler { my $self = shift; return $self->get_handler('LexicalHandler', @_); } sub get_decl_handler { my $self = shift; return $self->get_handler('DeclHandler', @_); } sub get_error_handler { my $self = shift; return $self->get_handler('ErrorHandler', @_); } sub get_entity_resolver { my $self = shift; return $self->get_handler('EntityResolver', @_); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # set_handler and friends #-------------------------------------------------------------------# sub set_handler { my $self = shift; my ($new_handler, $handler_type) = reverse @_; $handler_type ||= 'Handler'; $self->{Methods} = {} if $self->{Methods}; $self->{$handler_type} = $new_handler; $self->{ParseOptions}->{$handler_type} = $new_handler; return 1; } sub set_document_handler { my $self = shift; return $self->set_handler('DocumentHandler', @_); } sub set_content_handler { my $self = shift; return $self->set_handler('ContentHandler', @_); } sub set_dtd_handler { my $self = shift; return $self->set_handler('DTDHandler', @_); } sub set_lexical_handler { my $self = shift; return $self->set_handler('LexicalHandler', @_); } sub set_decl_handler { my $self = shift; return $self->set_handler('DeclHandler', @_); } sub set_error_handler { my $self = shift; return $self->set_handler('ErrorHandler', @_); } sub set_entity_resolver { my $self = shift; return $self->set_handler('EntityResolver', @_); } #-------------------------------------------------------------------# #-------------------------------------------------------------------# # supported_features #-------------------------------------------------------------------# sub supported_features { my $self = shift; # Only namespaces are required by all parsers return ( 'http://xml.org/sax/features/namespaces', ); } #-------------------------------------------------------------------# sub no_op { # this space intentionally blank } package XML::SAX::Base::NoHandler; $XML::SAX::Base::NoHandler::VERSION = '1.09'; # we need a fake handler that doesn't implement anything, this # simplifies the code a lot (though given the recent changes, # it may be better to do without) sub new { #warn "no handler called\n"; return bless {}; } 1; __END__ =head1 NAME XML::SAX::Base - Base class SAX Drivers and Filters =head1 SYNOPSIS package MyFilter; use XML::SAX::Base; @ISA = ('XML::SAX::Base'); =head1 DESCRIPTION This module has a very simple task - to be a base class for PerlSAX drivers and filters. It's default behaviour is to pass the input directly to the output unchanged. It can be useful to use this module as a base class so you don't have to, for example, implement the characters() callback. The main advantages that it provides are easy dispatching of events the right way (ie it takes care for you of checking that the handler has implemented that method, or has defined an AUTOLOAD), and the guarantee that filters will pass along events that they aren't implementing to handlers downstream that might nevertheless be interested in them. =head1 WRITING SAX DRIVERS AND FILTERS The Perl Sax API Reference is at L. Writing SAX Filters is tremendously easy: all you need to do is inherit from this module, and define the events you want to handle. A more detailed explanation can be found at http://www.xml.com/pub/a/2001/10/10/sax-filters.html. Writing Drivers is equally simple. The one thing you need to pay attention to is B to call events yourself (this applies to Filters as well). For instance: package MyFilter; use base qw(XML::SAX::Base); sub start_element { my $self = shift; my $data = shift; # do something $self->{Handler}->start_element($data); # BAD } The above example works well as precisely that: an example. But it has several faults: 1) it doesn't test to see whether the handler defines start_element. Perhaps it doesn't want to see that event, in which case you shouldn't throw it (otherwise it'll die). 2) it doesn't check ContentHandler and then Handler (ie it doesn't look to see that the user hasn't requested events on a specific handler, and if not on the default one), 3) if it did check all that, not only would the code be cumbersome (see this module's source to get an idea) but it would also probably have to check for a DocumentHandler (in case this were SAX1) and for AUTOLOADs potentially defined in all these packages. As you can tell, that would be fairly painful. Instead of going through that, simply remember to use code similar to the following instead: package MyFilter; use base qw(XML::SAX::Base); sub start_element { my $self = shift; my $data = shift; # do something to filter $self->SUPER::start_element($data); # GOOD (and easy) ! } This way, once you've done your job you hand the ball back to XML::SAX::Base and it takes care of all those problems for you! Note that the above example doesn't apply to filters only, drivers will benefit from the exact same feature. =head1 METHODS A number of methods are defined within this class for the purpose of inheritance. Some probably don't need to be overridden (eg parse_file) but some clearly should be (eg parse). Options for these methods are described in the PerlSAX2 specification available from http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/~checkout~/perl-xml/libxml-perl/doc/sax-2.0.html?rev=HEAD&content-type=text/html. =over 4 =item * parse The parse method is the main entry point to parsing documents. Internally the parse method will detect what type of "thing" you are parsing, and call the appropriate method in your implementation class. Here is the mapping table of what is in the Source options (see the Perl SAX 2.0 specification for the meaning of these values): Source Contains parse() calls =============== ============= CharacterStream (*) _parse_characterstream($stream, $options) ByteStream _parse_bytestream($stream, $options) String _parse_string($string, $options) SystemId _parse_systemid($string, $options) However note that these methods may not be sensible if your driver class is not for parsing XML. An example might be a DBI driver that generates XML/SAX from a database table. If that is the case, you likely want to write your own parse() method. Also note that the Source may contain both a PublicId entry, and an Encoding entry. To get at these, examine $options->{Source} as passed to your method. (*) A CharacterStream is a filehandle that does not need any encoding translation done on it. This is implemented as a regular filehandle and only works under Perl 5.7.2 or higher using PerlIO. To get a single character, or number of characters from it, use the perl core read() function. To get a single byte from it (or number of bytes), you can use sysread(). The encoding of the stream should be in the Encoding entry for the Source. =item * parse_file, parse_uri, parse_string These are all convenience variations on parse(), and in fact simply set up the options before calling it. You probably don't need to override these. =item * get_options This is a convenience method to get options in SAX2 style, or more generically either as hashes or as hashrefs (it returns a hashref). You will probably want to use this method in your own implementations of parse() and of new(). =item * get_feature, set_feature These simply get and set features, and throw the appropriate exceptions defined in the specification if need be. If your subclass defines features not defined in this one, then you should override these methods in such a way that they check for your features first, and then call the base class's methods for features not defined by your class. An example would be: sub get_feature { my $self = shift; my $feat = shift; if (exists $MY_FEATURES{$feat}) { # handle the feature in various ways } else { return $self->SUPER::get_feature($feat); } } Currently this part is unimplemented. =item * set_handler This method takes a handler type (Handler, ContentHandler, etc.) and a handler object as arguments, and changes the current handler for that handler type, while taking care of resetting the internal state that needs to be reset. This allows one to change a handler during parse without running into problems (changing it on the parser object directly will most likely cause trouble). =item * set_document_handler, set_content_handler, set_dtd_handler, set_lexical_handler, set_decl_handler, set_error_handler, set_entity_resolver These are just simple wrappers around the former method, and take a handler object as their argument. Internally they simply call set_handler with the correct arguments. =item * get_handler The inverse of set_handler, this method takes a an optional string containing a handler type (DTDHandler, ContentHandler, etc. 'Handler' is used if no type is passed). It returns a reference to the object that implements that class, or undef if that handler type is not set for the current driver/filter. =item * get_document_handler, get_content_handler, get_dtd_handler, get_lexical_handler, get_decl_handler, get_error_handler, get_entity_resolver These are just simple wrappers around the get_handler() method, and take no arguments. Internally they simply call get_handler with the correct handler type name. =back It would be rather useless to describe all the methods that this module implements here. They are all the methods supported in SAX1 and SAX2. In case your memory is a little short, here is a list. The apparent duplicates are there so that both versions of SAX can be supported. =over 4 =item * start_document =item * end_document =item * start_element =item * start_document =item * end_document =item * start_element =item * end_element =item * characters =item * processing_instruction =item * ignorable_whitespace =item * set_document_locator =item * start_prefix_mapping =item * end_prefix_mapping =item * skipped_entity =item * start_cdata =item * end_cdata =item * comment =item * entity_reference =item * notation_decl =item * unparsed_entity_decl =item * element_decl =item * attlist_decl =item * doctype_decl =item * xml_decl =item * entity_decl =item * attribute_decl =item * internal_entity_decl =item * external_entity_decl =item * resolve_entity =item * start_dtd =item * end_dtd =item * start_entity =item * end_entity =item * warning =item * error =item * fatal_error =back =head1 TODO - more tests - conform to the "SAX Filters" and "Java and DOM compatibility" sections of the SAX2 document. =head1 AUTHOR Kip Hampton (khampton@totalcinema.com) did most of the work, after porting it from XML::Filter::Base. Robin Berjon (robin@knowscape.com) pitched in with patches to make it usable as a base for drivers as well as filters, along with other patches. Matt Sergeant (matt@sergeant.org) wrote the original XML::Filter::Base, and patched a few things here and there, and imported it into the XML::SAX distribution. =head1 SEE ALSO L =cut SAX/ParserFactory.pm000044400000014607152345536550010344 0ustar00# $Id$ package XML::SAX::ParserFactory; use strict; use vars qw($VERSION); $VERSION = '1.02'; use Symbol qw(gensym); use XML::SAX; use XML::SAX::Exception; sub new { my $class = shift; my %params = @_; # TODO : Fix this in spec. my $self = bless \%params, $class; $self->{KnownParsers} = XML::SAX->parsers(); return $self; } sub parser { my $self = shift; my @parser_params = @_; if (!ref($self)) { $self = $self->new(); } my $parser_class = $self->_parser_class(); my $version = ''; if ($parser_class =~ s/\s*\(([\d\.]+)\)\s*$//) { $version = " $1"; } if (!$parser_class->can('new')) { eval "require $parser_class $version;"; die $@ if $@; } return $parser_class->new(@parser_params); } sub require_feature { my $self = shift; my ($feature) = @_; $self->{RequiredFeatures}{$feature}++; return $self; } sub _parser_class { my $self = shift; # First try ParserPackage if ($XML::SAX::ParserPackage) { return $XML::SAX::ParserPackage; } # Now check if required/preferred is there if ($self->{RequiredFeatures}) { my %required = %{$self->{RequiredFeatures}}; # note - we never go onto the next try (ParserDetails.ini), # because if we can't provide the requested feature # we need to throw an exception. PARSER: foreach my $parser (reverse @{$self->{KnownParsers}}) { foreach my $feature (keys %required) { if (!exists $parser->{Features}{$feature}) { next PARSER; } } # got here - all features must exist! return $parser->{Name}; } # TODO : should this be NotSupported() ? throw XML::SAX::Exception ( Message => "Unable to provide required features", ); } # Next try SAX.ini for my $dir (@INC) { my $fh = gensym(); if (open($fh, "$dir/SAX.ini")) { my $param_list = XML::SAX->_parse_ini_file($fh); my $params = $param_list->[0]->{Features}; if ($params->{ParserPackage}) { return $params->{ParserPackage}; } else { # we have required features (or nothing?) PARSER: foreach my $parser (reverse @{$self->{KnownParsers}}) { foreach my $feature (keys %$params) { if (!exists $parser->{Features}{$feature}) { next PARSER; } } return $parser->{Name}; } XML::SAX->do_warn("Unable to provide SAX.ini required features. Using fallback\n"); } last; # stop after first INI found } } if (@{$self->{KnownParsers}}) { return $self->{KnownParsers}[-1]{Name}; } else { return "XML::SAX::PurePerl"; # backup plan! } } 1; __END__ =head1 NAME XML::SAX::ParserFactory - Obtain a SAX parser =head1 SYNOPSIS use XML::SAX::ParserFactory; use XML::SAX::XYZHandler; my $handler = XML::SAX::XYZHandler->new(); my $p = XML::SAX::ParserFactory->parser(Handler => $handler); $p->parse_uri("foo.xml"); # or $p->parse_string("") or $p->parse_file($fh); =head1 DESCRIPTION XML::SAX::ParserFactory is a factory class for providing an application with a Perl SAX2 XML parser. It is akin to DBI - a front end for other parser classes. Each new SAX2 parser installed will register itself with XML::SAX, and then it will become available to all applications that use XML::SAX::ParserFactory to obtain a SAX parser. Unlike DBI however, XML/SAX parsers almost all work alike (especially if they subclass XML::SAX::Base, as they should), so rather than specifying the parser you want in the call to C, XML::SAX has several ways to automatically choose which parser to use: =over 4 =item * $XML::SAX::ParserPackage If this package variable is set, then this package is Cd and an instance of this package is returned by calling the C class method in that package. If it cannot be loaded or there is an error, an exception will be thrown. The variable can also contain a version number: $XML::SAX::ParserPackage = "XML::SAX::Expat (0.72)"; And the number will be treated as a minimum version number. =item * Required features It is possible to require features from the parsers. For example, you may wish for a parser that supports validation via a DTD. To do that, use the following code: use XML::SAX::ParserFactory; my $factory = XML::SAX::ParserFactory->new(); $factory->require_feature('http://xml.org/sax/features/validation'); my $parser = $factory->parser(...); Alternatively, specify the required features in the call to the ParserFactory constructor: my $factory = XML::SAX::ParserFactory->new( RequiredFeatures => { 'http://xml.org/sax/features/validation' => 1, } ); If the features you have asked for are unavailable (for example the user might not have a validating parser installed), then an exception will be thrown. The list of known parsers is searched in reverse order, so it will always return the last installed parser that supports all of your requested features (Note: this is subject to change if someone comes up with a better way of making this work). =item * SAX.ini ParserFactory will search @INC for a file called SAX.ini, which is in a simple format: # a comment looks like this, ; or like this, and are stripped anywhere in the file key = value # SAX.in contains key/value pairs. All whitespace is non-significant. This file can contain either a line: ParserPackage = MyParserModule (1.02) Where MyParserModule is the module to load and use for the parser, and the number in brackets is a minimum version to load. Or you can list required features: http://xml.org/sax/features/validation = 1 And each feature with a true value will be required. =item * Fallback If none of the above works, the last parser installed on the user's system will be used. The XML::SAX package ships with a pure perl XML parser, XML::SAX::PurePerl, so that there will always be a fallback parser. =back =head1 AUTHOR Matt Sergeant, matt@sergeant.org =head1 LICENSE This is free software, you may use it and distribute it under the same terms as Perl itself. =cut SAX/ParserDetails.ini000064400000000574152345536550010465 0ustar00[XML::SAX::PurePerl] http://xml.org/sax/features/namespaces = 1 [XML::SAX::Expat] http://xml.org/sax/features/namespaces = 1 http://xml.org/sax/features/external-general-entities = 1 http://xml.org/sax/features/external-parameter-entities = 1 [XML::LibXML::SAX::Parser] http://xml.org/sax/features/namespaces = 1 [XML::LibXML::SAX] http://xml.org/sax/features/namespaces = 1 SAX/DocumentLocator.pm000044400000005502152345536550010654 0ustar00# $Id$ package XML::SAX::DocumentLocator; use strict; sub new { my $class = shift; my %object; tie %object, $class, @_; return bless \%object, $class; } sub TIEHASH { my $class = shift; my ($pubmeth, $sysmeth, $linemeth, $colmeth, $encmeth, $xmlvmeth) = @_; return bless { pubmeth => $pubmeth, sysmeth => $sysmeth, linemeth => $linemeth, colmeth => $colmeth, encmeth => $encmeth, xmlvmeth => $xmlvmeth, }, $class; } sub FETCH { my ($self, $key) = @_; my $method; if ($key eq 'PublicId') { $method = $self->{pubmeth}; } elsif ($key eq 'SystemId') { $method = $self->{sysmeth}; } elsif ($key eq 'LineNumber') { $method = $self->{linemeth}; } elsif ($key eq 'ColumnNumber') { $method = $self->{colmeth}; } elsif ($key eq 'Encoding') { $method = $self->{encmeth}; } elsif ($key eq 'XMLVersion') { $method = $self->{xmlvmeth}; } if ($method) { my $value = $method->($key); return $value; } return undef; } sub EXISTS { my ($self, $key) = @_; if ($key =~ /^(PublicId|SystemId|LineNumber|ColumnNumber|Encoding|XMLVersion)$/) { return 1; } return 0; } sub STORE { my ($self, $key, $value) = @_; } sub DELETE { my ($self, $key) = @_; } sub CLEAR { my ($self) = @_; } sub FIRSTKEY { my ($self) = @_; # assignment resets. $self->{keys} = { PublicId => 1, SystemId => 1, LineNumber => 1, ColumnNumber => 1, Encoding => 1, XMLVersion => 1, }; return each %{$self->{keys}}; } sub NEXTKEY { my ($self, $lastkey) = @_; return each %{$self->{keys}}; } 1; __END__ =head1 NAME XML::SAX::DocumentLocator - Helper class for document locators =head1 SYNOPSIS my $locator = XML::SAX::DocumentLocator->new( sub { $object->get_public_id }, sub { $object->get_system_id }, sub { $reader->current_line }, sub { $reader->current_column }, sub { $reader->get_encoding }, sub { $reader->get_xml_version }, ); =head1 DESCRIPTION This module gives you a tied hash reference that calls the specified closures when asked for PublicId, SystemId, LineNumber and ColumnNumber. It is useful for writing SAX Parsers so that you don't have to constantly update the line numbers in a hash reference on the object you pass to set_document_locator(). See the source code for XML::SAX::PurePerl for a usage example. =head1 API There is only 1 method: C. Simply pass it a list of closures that when called will return the PublicId, the SystemId, the LineNumber, the ColumnNumber, the Encoding and the XMLVersion respectively. The closures are passed a single parameter, the key being requested. But you're free to ignore that. =cut SAX.pm000044400000022065152345536550005555 0ustar00# $Id$ package XML::SAX; use strict; use vars qw($VERSION @ISA @EXPORT_OK); $VERSION = '1.02'; use Exporter (); @ISA = ('Exporter'); @EXPORT_OK = qw(Namespaces Validation); use File::Basename qw(dirname); use File::Spec (); use Symbol qw(gensym); use XML::SAX::ParserFactory (); # loaded for simplicity use constant PARSER_DETAILS => "ParserDetails.ini"; use constant Namespaces => "http://xml.org/sax/features/namespaces"; use constant Validation => "http://xml.org/sax/features/validation"; my $known_parsers = undef; # load_parsers takes the ParserDetails.ini file out of the same directory # that XML::SAX is in, and looks at it. Format in POD below =begin EXAMPLE [XML::SAX::PurePerl] http://xml.org/sax/features/namespaces = 1 http://xml.org/sax/features/validation = 0 # a comment # blank lines ignored [XML::SAX::AnotherParser] http://xml.org/sax/features/namespaces = 0 http://xml.org/sax/features/validation = 1 =end EXAMPLE =cut sub load_parsers { my $class = shift; my $dir = shift; # reset parsers $known_parsers = []; # get directory from wherever XML::SAX is installed if (!$dir) { $dir = $INC{'XML/SAX.pm'}; $dir = dirname($dir); } my $fh = gensym(); if (!open($fh, File::Spec->catfile($dir, "SAX", PARSER_DETAILS))) { XML::SAX->do_warn("could not find " . PARSER_DETAILS . " in $dir/SAX\n"); return $class; } $known_parsers = $class->_parse_ini_file($fh); return $class; } sub _parse_ini_file { my $class = shift; my ($fh) = @_; my @config; my $lineno = 0; while (defined(my $line = <$fh>)) { $lineno++; my $original = $line; # strip whitespace $line =~ s/\s*$//m; $line =~ s/^\s*//m; # strip comments $line =~ s/[#;].*$//m; # ignore blanks next if $line =~ /^$/m; # heading if ($line =~ /^\[\s*(.*)\s*\]$/m) { push @config, { Name => $1 }; next; } # instruction elsif ($line =~ /^(.*?)\s*?=\s*(.*)$/) { unless(@config) { push @config, { Name => '' }; } $config[-1]{Features}{$1} = $2; } # not whitespace, comment, or instruction else { die "Invalid line in ini: $lineno\n>>> $original\n"; } } return \@config; } sub parsers { my $class = shift; if (!$known_parsers) { $class->load_parsers(); } return $known_parsers; } sub remove_parser { my $class = shift; my ($parser_module) = @_; if (!$known_parsers) { $class->load_parsers(); } @$known_parsers = grep { $_->{Name} ne $parser_module } @$known_parsers; return $class; } sub add_parser { my $class = shift; my ($parser_module) = @_; if (!$known_parsers) { $class->load_parsers(); } # first load module, then query features, then push onto known_parsers, my $parser_file = $parser_module; $parser_file =~ s/::/\//g; $parser_file .= ".pm"; require $parser_file; my @features = $parser_module->supported_features(); my $new = { Name => $parser_module }; foreach my $feature (@features) { $new->{Features}{$feature} = 1; } # If exists in list already, move to end. my $done = 0; my $pos = undef; for (my $i = 0; $i < @$known_parsers; $i++) { my $p = $known_parsers->[$i]; if ($p->{Name} eq $parser_module) { $pos = $i; } } if (defined $pos) { splice(@$known_parsers, $pos, 1); push @$known_parsers, $new; $done++; } # Otherwise (not in list), add at end of list. if (!$done) { push @$known_parsers, $new; } return $class; } sub save_parsers { my $class = shift; # get directory from wherever XML::SAX is installed my $dir = $INC{'XML/SAX.pm'}; $dir = dirname($dir); my $file = File::Spec->catfile($dir, "SAX", PARSER_DETAILS); chmod 0644, $file; unlink($file); my $fh = gensym(); open($fh, ">$file") || die "Cannot write to $file: $!"; foreach my $p (@$known_parsers) { print $fh "[$p->{Name}]\n"; foreach my $key (keys %{$p->{Features}}) { print $fh "$key = $p->{Features}{$key}\n"; } print $fh "\n"; } print $fh "\n"; close $fh; return $class; } sub do_warn { my $class = shift; # Don't output warnings if running under Test::Harness warn(@_) unless $ENV{HARNESS_ACTIVE}; } 1; __END__ =head1 NAME XML::SAX - Simple API for XML =head1 SYNOPSIS use XML::SAX; # get a list of known parsers my $parsers = XML::SAX->parsers(); # add/update a parser XML::SAX->add_parser(q(XML::SAX::PurePerl)); # remove parser XML::SAX->remove_parser(q(XML::SAX::Foodelberry)); # save parsers XML::SAX->save_parsers(); =head1 DESCRIPTION XML::SAX is a SAX parser access API for Perl. It includes classes and APIs required for implementing SAX drivers, along with a factory class for returning any SAX parser installed on the user's system. =head1 USING A SAX2 PARSER The factory class is XML::SAX::ParserFactory. Please see the documentation of that module for how to instantiate a SAX parser: L. However if you don't want to load up another manual page, here's a short synopsis: use XML::SAX::ParserFactory; use XML::SAX::XYZHandler; my $handler = XML::SAX::XYZHandler->new(); my $p = XML::SAX::ParserFactory->parser(Handler => $handler); $p->parse_uri("foo.xml"); # or $p->parse_string("") or $p->parse_file($fh); This will automatically load a SAX2 parser (defaulting to XML::SAX::PurePerl if no others are found) and return it to you. In order to learn how to use SAX to parse XML, you will need to read L and for reference, L. =head1 WRITING A SAX2 PARSER The first thing to remember in writing a SAX2 parser is to subclass XML::SAX::Base. This will make your life infinitely easier, by providing a number of methods automagically for you. See L for more details. When writing a SAX2 parser that is compatible with XML::SAX, you need to inform XML::SAX of the presence of that driver when you install it. In order to do that, XML::SAX contains methods for saving the fact that the parser exists on your system to a "INI" file, which is then loaded to determine which parsers are installed. The best way to do this is to follow these rules: =over 4 =item * Add XML::SAX as a prerequisite in Makefile.PL: WriteMakefile( ... PREREQ_PM => { 'XML::SAX' => 0 }, ... ); Alternatively you may wish to check for it in other ways that will cause more than just a warning. =item * Add the following code snippet to your Makefile.PL: sub MY::install { package MY; my $script = shift->SUPER::install(@_); if (ExtUtils::MakeMaker::prompt( "Do you want to modify ParserDetails.ini?", 'Y') =~ /^y/i) { $script =~ s/install :: (.*)$/install :: $1 install_sax_driver/m; $script .= <<"INSTALL"; install_sax_driver : \t\@\$(PERL) -MXML::SAX -e "XML::SAX->add_parser(q(\$(NAME)))->save_parsers()" INSTALL } return $script; } Note that you should check the output of this - \$(NAME) will use the name of your distribution, which may not be exactly what you want. For example XML::LibXML has a driver called XML::LibXML::SAX::Generator, which is used in place of \$(NAME) in the above. =item * Add an XML::SAX test: A test file should be added to your t/ directory containing something like the following: use Test; BEGIN { plan tests => 3 } use XML::SAX; use XML::SAX::PurePerl::DebugHandler; XML::SAX->add_parser(q(XML::SAX::MyDriver)); local $XML::SAX::ParserPackage = 'XML::SAX::MyDriver'; eval { my $handler = XML::SAX::PurePerl::DebugHandler->new(); ok($handler); my $parser = XML::SAX::ParserFactory->parser(Handler => $handler); ok($parser); ok($parser->isa('XML::SAX::MyDriver'); $parser->parse_string(""); ok($handler->{seen}{start_element}); }; =back =head1 EXPORTS By default, XML::SAX exports nothing into the caller's namespace. However you can request the symbols C and C which are the URIs for those features, allowing an easier way to request those features via ParserFactory: use XML::SAX qw(Namespaces Validation); my $factory = XML::SAX::ParserFactory->new(); $factory->require_feature(Namespaces); $factory->require_feature(Validation); my $parser = $factory->parser(); =head1 AUTHOR Current maintainer: Grant McLean, grantm@cpan.org Originally written by: Matt Sergeant, matt@sergeant.org Kip Hampton, khampton@totalcinema.com Robin Berjon, robin@knowscape.com =head1 LICENSE This is free software, you may use it and distribute it under the same terms as Perl itself. =head1 SEE ALSO L for writing SAX Filters and Parsers L for an XML parser written in 100% pure perl. L for details on exception handling =cut Simple/FAQ.pod000044400000050660152345536550007132 0ustar00 =head1 NAME XML::Simple::FAQ - Frequently Asked Questions about XML::Simple =head1 Basics =head2 What should I use XML::Simple for? Nothing! It's as simple as that. Choose a better module. See L for a gentle introduction to L with lots of examples. =head2 What was XML::Simple designed to be used for? XML::Simple is a Perl module that was originally developed as a tool for reading and writing configuration data in XML format. You could use it for other purposes that involve storing and retrieving structured data in XML but it's likely to be a frustrating experience. =head2 Why store configuration data in XML anyway? It seemed like a good idea at the time. Now, I use and recommend L which uses a format similar to that used by the Apache web server. This is easier to read than XML while still allowing advanced concepts such as nested sections. At the time XML::Simple was written, the advantages of using XML format for configuration data were thought to include: =over 4 =item * Using existing XML parsing tools requires less development time, is easier and more robust than developing your own config file parsing code =item * XML can represent relationships between pieces of data, such as nesting of sections to arbitrary levels (not easily done with .INI files for example) =item * XML is basically just text, so you can easily edit a config file (easier than editing a Win32 registry) =item * XML provides standard solutions for handling character sets and encoding beyond basic ASCII (important for internationalization) =item * If it becomes necessary to change your configuration file format, there are many tools available for performing transformations on XML files =item * XML is an open standard (the world does not need more proprietary binary file formats) =item * Taking the extra step of developing a DTD allows the format of configuration files to be validated before your program reads them (not directly supported by XML::Simple) =item * Combining a DTD with a good XML editor can give you a GUI config editor for minimal coding effort =back =head2 What isn't XML::Simple good for? The main limitation of XML::Simple is that it does not work with 'mixed content' (see the next question). If you consider your XML files contain marked up text rather than structured data, you should probably use another module. If your source XML documents change regularly, it's likely that you will experience intermittent failures. In particular, failure to properly use the ForceArray and KeyAttr options will produce code that works when you get a list of elements with the same name, but fails when there's only one item in the list. These types of problems can be avoided by not using XML::Simple in the first place. If you are working with very large XML files, XML::Simple's approach of representing the whole file in memory as a 'tree' data structure may not be suitable. =head2 What is mixed content? Consider this example XML: This is mixed content. This is said to be mixed content, because the EparaE element contains both character data (text content) and nested elements. Here's some more XML: Joe Bloggs 25-April-1969 This second example is not generally considered to be mixed content. The Efirst_nameE, Elast_nameE and EdobE elements contain only character data and the EpersonE element contains only nested elements. (Note: Strictly speaking, the whitespace between the nested elements is character data, but it is ignored by XML::Simple). =head2 Why doesn't XML::Simple handle mixed content? Because if it did, it would no longer be simple :-) Seriously though, there are plenty of excellent modules that allow you to work with mixed content in a variety of ways. Handling mixed content correctly is not easy and by ignoring these issues, XML::Simple is able to present an API without a steep learning curve. =head2 Which Perl modules do handle mixed content? Every one of them except XML::Simple :-) If you're looking for a recommendation, I'd suggest you look at the Perl-XML FAQ at: http://perl-xml.sourceforge.net/faq/ =head1 Installation =head2 How do I install XML::Simple? If you're running ActiveState Perl, or L you've probably already got XML::Simple and therefore do not need to install it at all. But you probably also have L, which is a much better module, so just use that. If you do need to install XML::Simple, you'll need to install an XML parser module first. Install either XML::Parser (which you may have already) or XML::SAX. If you install both, XML::SAX will be used by default. Once you have a parser installed ... On Unix systems, try: perl -MCPAN -e 'install XML::Simple' If that doesn't work, download the latest distribution from ftp://ftp.cpan.org/pub/CPAN/authors/id/G/GR/GRANTM , unpack it and run these commands: perl Makefile.PL make make test make install On Win32, if you have a recent build of ActiveState Perl (618 or better) try this command: ppm install XML::Simple If that doesn't work, you really only need the Simple.pm file, so extract it from the .tar.gz file (eg: using WinZIP) and save it in the \site\lib\XML directory under your Perl installation (typically C:\Perl). =head2 I'm trying to install XML::Simple and 'make test' fails Is the directory where you've unpacked XML::Simple mounted from a file server using NFS, SMB or some other network file sharing? If so, that may cause errors in the following test scripts: 3_Storable.t 4_MemShare.t 5_MemCopy.t The test suite is designed to exercise the boundary conditions of all XML::Simple's functionality and these three scripts exercise the caching functions. If XML::Simple is asked to parse a file for which it has a cached copy of a previous parse, then it compares the timestamp on the XML file with the timestamp on the cached copy. If the cached copy is *newer* then it will be used. If the cached copy is older or the same age then the file is re-parsed. The test scripts will get confused by networked filesystems if the workstation and server system clocks are not synchronised (to the second). If you get an error in one of these three test scripts but you don't plan to use the caching options (they're not enabled by default), then go right ahead and run 'make install'. If you do plan to use caching, then try unpacking the distribution on local disk and doing the build/test there. It's probably not a good idea to use the caching options with networked filesystems in production. If the file server's clock is ahead of the local clock, XML::Simple will re-parse files when it could have used the cached copy. However if the local clock is ahead of the file server clock and a file is changed immediately after it is cached, the old cached copy will be used. Is one of the three test scripts (above) failing but you're not running on a network filesystem? Are you running Win32? If so, you may be seeing a bug in Win32 where writes to a file do not affect its modification timestamp. If none of these scenarios match your situation, please confirm you're running the latest version of XML::Simple and then email the output of 'make test' to me at grantm@cpan.org =head2 Why is XML::Simple so slow? If you find that XML::Simple is very slow reading XML, the most likely reason is that you have XML::SAX installed but no additional SAX parser module. The XML::SAX distribution includes an XML parser written entirely in Perl. This is very portable but not very fast. For better performance install either XML::SAX::Expat or XML::LibXML. =head1 Usage =head2 How do I use XML::Simple? If you don't know how to use XML::Simple then the best approach is to L instead. Stop reading this document and use that one instead. If you are determined to use XML::Simple, it come with copious documentation, so L. =head2 There are so many options, which ones do I really need to know about? Although you can get by without using any options, you shouldn't even consider using XML::Simple in production until you know what these two options do: =over 4 =item * forcearray =item * keyattr =back The reason you really need to read about them is because the default values for these options will trip you up if you don't. Although everyone agrees that these defaults are not ideal, there is not wide agreement on what they should be changed to. The answer therefore is to read about them (see below) and select values which are right for you. =head2 What is the forcearray option all about? Consider this XML in a file called ./person.xml: Joe Bloggs bungy jumping sky diving knitting You could read it in with this line: my $person = XMLin('./person.xml'); Which would give you a data structure like this: $person = { 'first_name' => 'Joe', 'last_name' => 'Bloggs', 'hobbie' => [ 'bungy jumping', 'sky diving', 'knitting' ] }; The Efirst_nameE and Elast_nameE elements are represented as simple scalar values which you could refer to like this: print "$person->{first_name} $person->{last_name}\n"; The EhobbieE elements are represented as an array - since there is more than one. You could refer to the first one like this: print $person->{hobbie}->[0], "\n"; Or the whole lot like this: print join(', ', @{$person->{hobbie}} ), "\n"; The catch is, that these last two lines of code will only work for people who have more than one hobbie. If there is only one EhobbieE element, it will be represented as a simple scalar (just like Efirst_nameE and Elast_nameE). Which might lead you to write code like this: if(ref($person->{hobbie})) { print join(', ', @{$person->{hobbie}} ), "\n"; } else { print $person->{hobbie}, "\n"; } Don't do that. One alternative approach is to set the forcearray option to a true value: my $person = XMLin('./person.xml', forcearray => 1); Which will give you a data structure like this: $person = { 'first_name' => [ 'Joe' ], 'last_name' => [ 'Bloggs' ], 'hobbie' => [ 'bungy jumping', 'sky diving', 'knitting' ] }; Then you can use this line to refer to all the list of hobbies even if there was only one: print join(', ', @{$person->{hobbie}} ), "\n"; The downside of this approach is that the Efirst_nameE and Elast_nameE elements will also always be represented as arrays even though there will never be more than one: print "$person->{first_name}->[0] $person->{last_name}->[0]\n"; This might be OK if you change the XML to use attributes for things that will always be singular and nested elements for things that may be plural: motorcycle maintenance On the other hand, if you prefer not to use attributes, then you could specify that any EhobbieE elements should always be represented as arrays and all other nested elements should be simple scalar values unless there is more than one: my $person = XMLin('./person.xml', forcearray => [ 'hobbie' ]); The forcearray option accepts a list of element names which should always be forced to an array representation: forcearray => [ qw(hobbie qualification childs_name) ] See the XML::Simple manual page for more information. =head2 What is the keyattr option all about? Consider this sample XML: You could slurp it in with this code: my $catalog = XMLin('./catalog.xml'); Which would return a data structure like this: $catalog = { 'part' => [ { 'partnum' => '1842334', 'desc' => 'High pressure flange', 'price' => '24.50' }, { 'partnum' => '9344675', 'desc' => 'Threaded gasket', 'price' => '9.25' }, { 'partnum' => '5634896', 'desc' => 'Low voltage washer', 'price' => '12.00' } ] }; Then you could access the description of the first part in the catalog with this code: print $catalog->{part}->[0]->{desc}, "\n"; However, if you wanted to access the description of the part with the part number of "9344675" then you'd have to code a loop like this: foreach my $part (@{$catalog->{part}}) { if($part->{partnum} eq '9344675') { print $part->{desc}, "\n"; last; } } The knowledge that each EpartE element has a unique partnum attribute allows you to eliminate this search. You can pass this knowledge on to XML::Simple like this: my $catalog = XMLin($xml, keyattr => ['partnum']); Which will return a data structure like this: $catalog = { 'part' => { '5634896' => { 'desc' => 'Low voltage washer', 'price' => '12.00' }, '1842334' => { 'desc' => 'High pressure flange', 'price' => '24.50' }, '9344675' => { 'desc' => 'Threaded gasket', 'price' => '9.25' } } }; XML::Simple has been able to transform $catalog->{part} from an arrayref to a hashref (keyed on partnum). This transformation is called 'array folding'. Through the use of array folding, you can now index directly to the description of the part you want: print $catalog->{part}->{9344675}->{desc}, "\n"; The 'keyattr' option also enables array folding when the unique key is in a nested element rather than an attribute. eg: 1842334 High pressure flange 24.50 9344675 Threaded gasket 9.25 5634896 Low voltage washer 12.00 See the XML::Simple manual page for more information. =head2 So what's the catch with 'keyattr'? One thing to watch out for is that you might get array folding even if you don't supply the keyattr option. The default value for this option is: [ 'name', 'key', 'id'] Which means if your XML elements have a 'name', 'key' or 'id' attribute (or nested element) then they may get folded on those values. This means that you can take advantage of array folding simply through careful choice of attribute names. On the hand, if you really don't want array folding at all, you'll need to set 'key attr to an empty list: my $ref = XMLin($xml, keyattr => []); A second 'gotcha' is that array folding only works on arrays. That might seem obvious, but if there's only one record in your XML and you didn't set the 'forcearray' option then it won't be represented as an array and consequently won't get folded into a hash. The moral is that if you're using array folding, you should always turn on the forcearray option. You probably want to be as specific as you can be too. For instance, the safest way to parse the EcatalogE example above would be: my $catalog = XMLin($xml, keyattr => { part => 'partnum'}, forcearray => ['part']); By using the hashref for keyattr, you can specify that only EpartE elements should be folded on the 'partnum' attribute (and that the EpartE elements should not be folded on any other attribute). By supplying a list of element names for forcearray, you're ensuring that folding will work even if there's only one EpartE. You're also ensuring that if the 'partnum' unique key is supplied in a nested element then that element won't get forced to an array too. =head2 How do I know what my data structure should look like? The rules are fairly straightforward: =over 4 =item * each element gets represented as a hash =item * unless it contains only text, in which case it'll be a simple scalar value =item * or unless there's more than one element with the same name, in which case they'll be represented as an array =item * unless you've got array folding enabled, in which case they'll be folded into a hash =item * empty elements (no text contents B no attributes) will either be represented as an empty hash, an empty string or undef - depending on the value of the 'suppressempty' option. =back If you're in any doubt, use Data::Dumper, eg: use XML::Simple; use Data::Dumper; my $ref = XMLin($xml); print Dumper($ref); =head2 I'm getting 'Use of uninitialized value' warnings You're probably trying to index into a non-existant hash key - try Data::Dumper. =head2 I'm getting a 'Not an ARRAY reference' error Something that you expect to be an array is not. The two most likely causes are that you forgot to use 'forcearray' or that the array got folded into a hash - try Data::Dumper. =head2 I'm getting a 'No such array field' error Something that you expect to be a hash is actually an array. Perhaps array folding failed because one element was missing the key attribute - try Data::Dumper. =head2 I'm getting an 'Out of memory' error Something in the data structure is not as you expect and Perl may be trying unsuccessfully to autovivify things - try Data::Dumper. If you're already using Data::Dumper, try calling Dumper() immediately after XMLin() - ie: before you attempt to access anything in the data structure. =head2 My element order is getting jumbled up If you read an XML file with XMLin() and then write it back out with XMLout(), the order of the elements will likely be different. (However, if you read the file back in with XMLin() you'll get the same Perl data structure). The reordering happens because XML::Simple uses hashrefs to store your data and Perl hashes do not really have any order. It is possible that a future version of XML::Simple will use Tie::IxHash to store the data in hashrefs which do retain the order. However this will not fix all cases of element order being lost. If your application really is sensitive to element order, don't use XML::Simple (and don't put order-sensitive values in attributes). =head2 XML::Simple turns nested elements into attributes If you read an XML file with XMLin() and then write it back out with XMLout(), some data which was originally stored in nested elements may end up in attributes. (However, if you read the file back in with XMLin() you'll get the same Perl data structure). There are a number of ways you might handle this: =over 4 =item * use the 'forcearray' option with XMLin() =item * use the 'noattr' option with XMLout() =item * live with it =item * don't use XML::Simple =back =head2 Why does XMLout() insert EnameE elements (or attributes)? Try setting keyattr => []. When you call XMLin() to read XML, the 'keyattr' option controls whether arrays get 'folded' into hashes. Similarly, when you call XMLout(), the 'keyattr' option controls whether hashes get 'unfolded' into arrays. As described above, 'keyattr' is enabled by default. =head2 Why are empty elements represented as empty hashes? An element is always represented as a hash unless it contains only text, in which case it is represented as a scalar string. If you would prefer empty elements to be represented as empty strings or the undefined value, set the 'suppressempty' option to '' or undef respectively. =head2 Why is ParserOpts deprecated? The C option is a remnant of the time when XML::Simple only worked with the XML::Parser API. Its value is completely ignored if you're using a SAX parser, so writing code which relied on it would bar you from taking advantage of SAX. Even if you are using XML::Parser, it is seldom necessary to pass options to the parser object. A number of people have written to say they use this option to set XML::Parser's C option. Don't do that, it's wrong, Wrong, WRONG! Fix the XML document so that it's well-formed and you won't have a problem. Having said all of that, as long as XML::Simple continues to support the XML::Parser API, this option will not be removed. There are currently no plans to remove support for the XML::Parser API. =cut NamespaceSupport.pm000044400000046752152345536550010424 0ustar00package XML::NamespaceSupport; use strict; our $VERSION = '1.12'; # VERSION # ABSTRACT: A simple generic namespace processor use constant FATALS => 0; # root object use constant NSMAP => 1; use constant UNKNOWN_PREF => 2; use constant AUTO_PREFIX => 3; use constant XMLNS_11 => 4; use constant DEFAULT => 0; # maps use constant PREFIX_MAP => 1; use constant DECLARATIONS => 2; use vars qw($NS_XMLNS $NS_XML); $NS_XMLNS = 'http://www.w3.org/2000/xmlns/'; $NS_XML = 'http://www.w3.org/XML/1998/namespace'; # add the ns stuff that baud wants based on Java's xml-writer #-------------------------------------------------------------------# # constructor #-------------------------------------------------------------------# sub new { my $class = ref($_[0]) ? ref(shift) : shift; my $options = shift; my $self = [ 1, # FATALS [[ # NSMAP undef, # DEFAULT { xml => $NS_XML }, # PREFIX_MAP undef, # DECLARATIONS ]], 'aaa', # UNKNOWN_PREF 0, # AUTO_PREFIX 1, # XML_11 ]; $self->[NSMAP]->[0]->[PREFIX_MAP]->{xmlns} = $NS_XMLNS if $options->{xmlns}; $self->[FATALS] = $options->{fatal_errors} if defined $options->{fatal_errors}; $self->[AUTO_PREFIX] = $options->{auto_prefix} if defined $options->{auto_prefix}; $self->[XMLNS_11] = $options->{xmlns_11} if defined $options->{xmlns_11}; return bless $self, $class; } #-------------------------------------------------------------------# # reset() - return to the original state (for reuse) #-------------------------------------------------------------------# sub reset { my $self = shift; $#{$self->[NSMAP]} = 0; } #-------------------------------------------------------------------# # push_context() - add a new empty context to the stack #-------------------------------------------------------------------# sub push_context { my $self = shift; push @{$self->[NSMAP]}, [ $self->[NSMAP]->[-1]->[DEFAULT], { %{$self->[NSMAP]->[-1]->[PREFIX_MAP]} }, [], ]; } #-------------------------------------------------------------------# # pop_context() - remove the topmost context from the stack #-------------------------------------------------------------------# sub pop_context { my $self = shift; die 'Trying to pop context without push context' unless @{$self->[NSMAP]} > 1; pop @{$self->[NSMAP]}; } #-------------------------------------------------------------------# # declare_prefix() - declare a prefix in the current scope #-------------------------------------------------------------------# sub declare_prefix { my $self = shift; my $prefix = shift; my $value = shift; warn <<' EOWARN' unless defined $prefix or $self->[AUTO_PREFIX]; Prefix was undefined. If you wish to set the default namespace, use the empty string ''. If you wish to autogenerate prefixes, set the auto_prefix option to a true value. EOWARN no warnings 'uninitialized'; if ($prefix eq 'xml' and $value ne $NS_XML) { die "The xml prefix can only be bound to the $NS_XML namespace." } elsif ($value eq $NS_XML and $prefix ne 'xml') { die "the $NS_XML namespace can only be bound to the xml prefix."; } elsif ($value eq $NS_XML and $prefix eq 'xml') { return 1; } return 0 if index(lc($prefix), 'xml') == 0; use warnings 'uninitialized'; if (defined $prefix and $prefix eq '') { $self->[NSMAP]->[-1]->[DEFAULT] = $value; } else { die "Cannot declare prefix $prefix" if $value eq '' and not $self->[XMLNS_11]; if (not defined $prefix and $self->[AUTO_PREFIX]) { while (1) { $prefix = $self->[UNKNOWN_PREF]++; last if not exists $self->[NSMAP]->[-1]->[PREFIX_MAP]->{$prefix}; } } elsif (not defined $prefix and not $self->[AUTO_PREFIX]) { return 0; } $self->[NSMAP]->[-1]->[PREFIX_MAP]->{$prefix} = $value; } push @{$self->[NSMAP]->[-1]->[DECLARATIONS]}, $prefix; return 1; } #-------------------------------------------------------------------# # declare_prefixes() - declare several prefixes in the current scope #-------------------------------------------------------------------# sub declare_prefixes { my $self = shift; my %prefixes = @_; while (my ($k,$v) = each %prefixes) { $self->declare_prefix($k,$v); } } #-------------------------------------------------------------------# # undeclare_prefix #-------------------------------------------------------------------# sub undeclare_prefix { my $self = shift; my $prefix = shift; return if not defined($prefix); return unless exists $self->[NSMAP]->[-1]->[PREFIX_MAP]->{$prefix}; my ( $tfix ) = grep { $_ eq $prefix } @{$self->[NSMAP]->[-1]->[DECLARATIONS]}; if ( not defined $tfix ) { die "prefix $prefix not declared in this context\n"; } @{$self->[NSMAP]->[-1]->[DECLARATIONS]} = grep { $_ ne $prefix } @{$self->[NSMAP]->[-1]->[DECLARATIONS]}; delete $self->[NSMAP]->[-1]->[PREFIX_MAP]->{$prefix}; } #-------------------------------------------------------------------# # get_prefix() - get a (random) prefix for a given URI #-------------------------------------------------------------------# sub get_prefix { my $self = shift; my $uri = shift; # we have to iterate over the whole hash here because if we don't # the iterator isn't reset and the next pass will fail my $pref; while (my ($k, $v) = each %{$self->[NSMAP]->[-1]->[PREFIX_MAP]}) { $pref = $k if $v eq $uri; } return $pref; } #-------------------------------------------------------------------# # get_prefixes() - get all the prefixes for a given URI #-------------------------------------------------------------------# sub get_prefixes { my $self = shift; my $uri = shift; return keys %{$self->[NSMAP]->[-1]->[PREFIX_MAP]} unless defined $uri; return grep { $self->[NSMAP]->[-1]->[PREFIX_MAP]->{$_} eq $uri } keys %{$self->[NSMAP]->[-1]->[PREFIX_MAP]}; } #-------------------------------------------------------------------# # get_declared_prefixes() - get all prefixes declared in the last context #-------------------------------------------------------------------# sub get_declared_prefixes { my $declarations = $_[0]->[NSMAP]->[-1]->[DECLARATIONS]; die "At least one context must be pushed onto stack with push_context()\n", "before calling get_declared_prefixes()" if not defined $declarations; return @{$_[0]->[NSMAP]->[-1]->[DECLARATIONS]}; } #-------------------------------------------------------------------# # get_uri() - get a URI given a prefix #-------------------------------------------------------------------# sub get_uri { my $self = shift; my $prefix = shift; warn "Prefix must not be undef in get_uri(). The emtpy prefix must be ''" unless defined $prefix; return $self->[NSMAP]->[-1]->[DEFAULT] if $prefix eq ''; return $self->[NSMAP]->[-1]->[PREFIX_MAP]->{$prefix} if exists $self->[NSMAP]->[-1]->[PREFIX_MAP]->{$prefix}; return undef; } #-------------------------------------------------------------------# # process_name() - provide details on a name #-------------------------------------------------------------------# sub process_name { my $self = shift; my $qname = shift; my $aflag = shift; if ($self->[FATALS]) { return( ($self->_get_ns_details($qname, $aflag))[0,2], $qname ); } else { eval { return( ($self->_get_ns_details($qname, $aflag))[0,2], $qname ); } } } #-------------------------------------------------------------------# # process_element_name() - provide details on a element's name #-------------------------------------------------------------------# sub process_element_name { my $self = shift; my $qname = shift; if ($self->[FATALS]) { return $self->_get_ns_details($qname, 0); } else { eval { return $self->_get_ns_details($qname, 0); } } } #-------------------------------------------------------------------# # process_attribute_name() - provide details on a attribute's name #-------------------------------------------------------------------# sub process_attribute_name { my $self = shift; my $qname = shift; if ($self->[FATALS]) { return $self->_get_ns_details($qname, 1); } else { eval { return $self->_get_ns_details($qname, 1); } } } #-------------------------------------------------------------------# # ($ns, $prefix, $lname) = $self->_get_ns_details($qname, $f_attr) # returns ns, prefix, and lname for a given attribute name # >> the $f_attr flag, if set to one, will work for an attribute #-------------------------------------------------------------------# sub _get_ns_details { my $self = shift; my $qname = shift; my $aflag = shift; my ($ns, $prefix, $lname); (my ($tmp_prefix, $tmp_lname) = split /:/, $qname, 3) < 3 or die "Invalid QName: $qname"; # no prefix my $cur_map = $self->[NSMAP]->[-1]; if (not defined($tmp_lname)) { $prefix = undef; $lname = $qname; # attr don't have a default namespace $ns = ($aflag) ? undef : $cur_map->[DEFAULT]; } # prefix else { if (exists $cur_map->[PREFIX_MAP]->{$tmp_prefix}) { $prefix = $tmp_prefix; $lname = $tmp_lname; $ns = $cur_map->[PREFIX_MAP]->{$prefix} } else { # no ns -> lname == name, all rest undef die "Undeclared prefix: $tmp_prefix"; } } return ($ns, $prefix, $lname); } #-------------------------------------------------------------------# # parse_jclark_notation() - parse the Clarkian notation #-------------------------------------------------------------------# sub parse_jclark_notation { shift; my $jc = shift; $jc =~ m/^\{(.*)\}([^}]+)$/; return $1, $2; } #-------------------------------------------------------------------# # Java names mapping #-------------------------------------------------------------------# *XML::NamespaceSupport::pushContext = \&push_context; *XML::NamespaceSupport::popContext = \&pop_context; *XML::NamespaceSupport::declarePrefix = \&declare_prefix; *XML::NamespaceSupport::declarePrefixes = \&declare_prefixes; *XML::NamespaceSupport::getPrefix = \&get_prefix; *XML::NamespaceSupport::getPrefixes = \&get_prefixes; *XML::NamespaceSupport::getDeclaredPrefixes = \&get_declared_prefixes; *XML::NamespaceSupport::getURI = \&get_uri; *XML::NamespaceSupport::processName = \&process_name; *XML::NamespaceSupport::processElementName = \&process_element_name; *XML::NamespaceSupport::processAttributeName = \&process_attribute_name; *XML::NamespaceSupport::parseJClarkNotation = \&parse_jclark_notation; *XML::NamespaceSupport::undeclarePrefix = \&undeclare_prefix; 1; __END__ =pod =encoding UTF-8 =head1 NAME XML::NamespaceSupport - A simple generic namespace processor =head1 VERSION version 1.12 =head1 SYNOPSIS use XML::NamespaceSupport; my $nsup = XML::NamespaceSupport->new; # add a new empty context $nsup->push_context; # declare a few prefixes $nsup->declare_prefix($prefix1, $uri1); $nsup->declare_prefix($prefix2, $uri2); # the same shorter $nsup->declare_prefixes($prefix1 => $uri1, $prefix2 => $uri2); # get a single prefix for a URI (randomly) $prefix = $nsup->get_prefix($uri); # get all prefixes for a URI (probably better) @prefixes = $nsup->get_prefixes($uri); # get all prefixes in scope @prefixes = $nsup->get_prefixes(); # get all prefixes that were declared for the current scope @prefixes = $nsup->get_declared_prefixes; # get a URI for a given prefix $uri = $nsup->get_uri($prefix); # get info on a qname (java-ish way, it's a bit weird) ($ns_uri, $local_name, $qname) = $nsup->process_name($qname, $is_attr); # the same, more perlish ($ns_uri, $prefix, $local_name) = $nsup->process_element_name($qname); ($ns_uri, $prefix, $local_name) = $nsup->process_attribute_name($qname); # remove the current context $nsup->pop_context; # reset the object for reuse in another document $nsup->reset; # a simple helper to process Clarkian Notation my ($ns, $lname) = $nsup->parse_jclark_notation('{http://foo}bar'); # or (given that it doesn't care about the object my ($ns, $lname) = XML::NamespaceSupport->parse_jclark_notation('{http://foo}bar'); =head1 DESCRIPTION This module offers a simple to process namespaced XML names (unames) from within any application that may need them. It also helps maintain a prefix to namespace URI map, and provides a number of basic checks. The model for this module is SAX2's NamespaceSupport class, readable at http://www.saxproject.org/namespaces.html It adds a few perlisations where we thought it appropriate. =head1 NAME XML::NamespaceSupport - a simple generic namespace support class =head1 METHODS =over 4 =item * XML::NamespaceSupport->new(\%options) A simple constructor. The options are C, C, and C If C is turned on (it is off by default) the mapping from the xmlns prefix to the URI defined for it in DOM level 2 is added to the list of predefined mappings (which normally only contains the xml prefix mapping). If C is turned off (it is on by default) a number of validity errors will simply be flagged as failures, instead of die()ing. If C is turned on (it is off by default) when one provides a prefix of C to C it will generate a random prefix mapped to that namespace. Otherwise an undef prefix will trigger a warning (you should probably know what you're doing if you turn this option on). If C us turned off, it becomes illegal to undeclare namespace prefixes. It is on by default. This behaviour is compliant with Namespaces in XML 1.1, turning it off reverts you to version 1.0. =item * $nsup->push_context Adds a new empty context to the stack. You can then populate it with new prefixes defined at this level. =item * $nsup->pop_context Removes the topmost context in the stack and reverts to the previous one. It will die() if you try to pop more than you have pushed. =item * $nsup->declare_prefix($prefix, $uri) Declares a mapping of $prefix to $uri, at the current level. Note that with C turned on, if you declare a prefix mapping in which $prefix is undef(), you will get an automatic prefix selected for you. If it is off you will get a warning. This is useful when you deal with code that hasn't kept prefixes around and need to reserialize the nodes. It also means that if you want to set the default namespace (i.e. with an empty prefix) you must use the empty string instead of undef. This behaviour is consistent with the SAX 2.0 specification. =item * $nsup->declare_prefixes(%prefixes2uris) Declares a mapping of several prefixes to URIs, at the current level. =item * $nsup->get_prefix($uri) Returns a prefix given a URI. Note that as several prefixes may be mapped to the same URI, it returns an arbitrary one. It'll return undef on failure. =item * $nsup->get_prefixes($uri) Returns an array of prefixes given a URI. It'll return all the prefixes if the uri is undef. =item * $nsup->get_declared_prefixes Returns an array of all the prefixes that have been declared within this context, ie those that were declared on the last element, not those that were declared above and are simply in scope. Note that at least one context must be added to the stack via C before this method can be called. =item * $nsup->get_uri($prefix) Returns a URI for a given prefix. Returns undef on failure. =item * $nsup->process_name($qname, $is_attr) Given a qualified name and a boolean indicating whether this is an attribute or another type of name (those are differently affected by default namespaces), it returns a namespace URI, local name, qualified name tuple. I know that that is a rather abnormal list to return, but it is so for compatibility with the Java spec. See below for more Perlish alternatives. If the prefix is not declared, or if the name is not valid, it'll either die or return undef depending on the current setting of C. =item * $nsup->undeclare_prefix($prefix); Removes a namespace prefix from the current context. This function may be used in SAX's end_prefix_mapping when there is fear that a namespace declaration might be available outside their scope (which shouldn't normally happen, but you never know ;) ). This may be needed in order to properly support Namespace 1.1. =item * $nsup->process_element_name($qname) Given a qualified name, it returns a namespace URI, prefix, and local name tuple. This method applies to element names. If the prefix is not declared, or if the name is not valid, it'll either die or return undef depending on the current setting of C. =item * $nsup->process_attribute_name($qname) Given a qualified name, it returns a namespace URI, prefix, and local name tuple. This method applies to attribute names. If the prefix is not declared, or if the name is not valid, it'll either die or return undef depending on the current setting of C. =item * $nsup->reset Resets the object so that it can be reused on another document. =back All methods of the interface have an alias that is the name used in the original Java specification. You can use either name interchangeably. Here is the mapping: Java name Perl name --------------------------------------------------- pushContext push_context popContext pop_context declarePrefix declare_prefix declarePrefixes declare_prefixes getPrefix get_prefix getPrefixes get_prefixes getDeclaredPrefixes get_declared_prefixes getURI get_uri processName process_name processElementName process_element_name processAttributeName process_attribute_name parseJClarkNotation parse_jclark_notation undeclarePrefix undeclare_prefix =head1 VARIABLES Two global variables are made available to you. They used to be constants but simple scalars are easier to use in a number of contexts. They are not exported but can easily be accessed from any package, or copied into it. =over 4 =item * C<$NS_XMLNS> The namespace for xmlns prefixes, http://www.w3.org/2000/xmlns/. =item * C<$NS_XML> The namespace for xml prefixes, http://www.w3.org/XML/1998/namespace. =back =head1 TODO - add more tests - optimise here and there =head1 SEE ALSO XML::Parser::PerlSAX =head1 AUTHORS =over 4 =item * Robin Berjon =item * Chris Prather =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2015 by Robin Berjon. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =head1 CONTRIBUTORS =for stopwords Chris Prather David Steinbrunner Paul Cochrane Paulo Custodio =over 4 =item * Chris Prather =item * David Steinbrunner =item * Paul Cochrane =item * Paulo Custodio =back =cut RPC/Dump.php000064400000012322152345712150006613 0ustar00 * @license http://www.php.net/license/3_01.txt PHP License * @version SVN: $Id: Dump.php 300962 2010-07-03 02:24:24Z danielc $ * @link http://pear.php.net/package/XML_RPC */ /** * Pull in the XML_RPC class */ require_once 'XML/RPC.php'; /** * Generates the dump of the XML_RPC_Value and echoes it * * @param object $value the XML_RPC_Value object to dump * * @return void */ function XML_RPC_Dump($value) { $dumper = new XML_RPC_Dump(); echo $dumper->generateDump($value); } /** * Class which generates a dump of a XML_RPC_Value object * * @category Web Services * @package XML_RPC * @author Christian Weiske * @license http://www.php.net/license/3_01.txt PHP License * @version Release: @package_version@ * @link http://pear.php.net/package/XML_RPC */ class XML_RPC_Dump { /** * The indentation array cache * @var array */ var $arIndent = array(); /** * The spaces used for indenting the XML * @var string */ var $strBaseIndent = ' '; /** * Returns the dump in XML format without printing it out * * @param object $value the XML_RPC_Value object to dump * @param int $nLevel the level of indentation * * @return string the dump */ function generateDump($value, $nLevel = 0) { if (!is_object($value) || strtolower(get_class($value)) != 'xml_rpc_value') { require_once 'PEAR.php'; PEAR::raiseError('Tried to dump non-XML_RPC_Value variable' . "\r\n", 0, PEAR_ERROR_PRINT); if (is_object($value)) { $strType = get_class($value); } else { $strType = gettype($value); } return $this->getIndent($nLevel) . 'NOT A XML_RPC_Value: ' . $strType . "\r\n"; } switch ($value->kindOf()) { case 'struct': $ret = $this->genStruct($value, $nLevel); break; case 'array': $ret = $this->genArray($value, $nLevel); break; case 'scalar': $ret = $this->genScalar($value->scalarval(), $nLevel); break; default: require_once 'PEAR.php'; PEAR::raiseError('Illegal type "' . $value->kindOf() . '" in XML_RPC_Value' . "\r\n", 0, PEAR_ERROR_PRINT); } return $ret; } /** * Returns the scalar value dump * * @param object $value the scalar XML_RPC_Value object to dump * @param int $nLevel the level of indentation * * @return string Dumped version of the scalar value */ function genScalar($value, $nLevel) { if (gettype($value) == 'object') { $strClass = ' ' . get_class($value); } else { $strClass = ''; } return $this->getIndent($nLevel) . gettype($value) . $strClass . ' ' . $value . "\r\n"; } /** * Returns the dump of a struct * * @param object $value the struct XML_RPC_Value object to dump * @param int $nLevel the level of indentation * * @return string Dumped version of the scalar value */ function genStruct($value, $nLevel) { $value->structreset(); $strOutput = $this->getIndent($nLevel) . 'struct' . "\r\n"; while (list($key, $keyval) = $value->structeach()) { $strOutput .= $this->getIndent($nLevel + 1) . $key . "\r\n"; $strOutput .= $this->generateDump($keyval, $nLevel + 2); } return $strOutput; } /** * Returns the dump of an array * * @param object $value the array XML_RPC_Value object to dump * @param int $nLevel the level of indentation * * @return string Dumped version of the scalar value */ function genArray($value, $nLevel) { $nSize = $value->arraysize(); $strOutput = $this->getIndent($nLevel) . 'array' . "\r\n"; for($nA = 0; $nA < $nSize; $nA++) { $strOutput .= $this->getIndent($nLevel + 1) . $nA . "\r\n"; $strOutput .= $this->generateDump($value->arraymem($nA), $nLevel + 2); } return $strOutput; } /** * Returns the indent for a specific level and caches it for faster use * * @param int $nLevel the level * * @return string the indented string */ function getIndent($nLevel) { if (!isset($this->arIndent[$nLevel])) { $this->arIndent[$nLevel] = str_repeat($this->strBaseIndent, $nLevel); } return $this->arIndent[$nLevel]; } } /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * c-hanging-comment-ender-p: nil * End: */ ?> RPC/Server.php000064400000053662152345712150007170 0ustar00 * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version SVN: $Id: Server.php 315558 2011-08-26 14:42:51Z danielc $ * @link http://pear.php.net/package/XML_RPC */ /** * Pull in the XML_RPC class */ require_once 'XML/RPC.php'; /** * signature for system.listMethods: return = array, * parameters = a string or nothing * @global array $GLOBALS['XML_RPC_Server_listMethods_sig'] */ $GLOBALS['XML_RPC_Server_listMethods_sig'] = array( array($GLOBALS['XML_RPC_Array'], $GLOBALS['XML_RPC_String'] ), array($GLOBALS['XML_RPC_Array']) ); /** * docstring for system.listMethods * @global string $GLOBALS['XML_RPC_Server_listMethods_doc'] */ $GLOBALS['XML_RPC_Server_listMethods_doc'] = 'This method lists all the' . ' methods that the XML-RPC server knows how to dispatch'; /** * signature for system.methodSignature: return = array, * parameters = string * @global array $GLOBALS['XML_RPC_Server_methodSignature_sig'] */ $GLOBALS['XML_RPC_Server_methodSignature_sig'] = array( array($GLOBALS['XML_RPC_Array'], $GLOBALS['XML_RPC_String'] ) ); /** * docstring for system.methodSignature * @global string $GLOBALS['XML_RPC_Server_methodSignature_doc'] */ $GLOBALS['XML_RPC_Server_methodSignature_doc'] = 'Returns an array of known' . ' signatures (an array of arrays) for the method name passed. If' . ' no signatures are known, returns a none-array (test for type !=' . ' array to detect missing signature)'; /** * signature for system.methodHelp: return = string, * parameters = string * @global array $GLOBALS['XML_RPC_Server_methodHelp_sig'] */ $GLOBALS['XML_RPC_Server_methodHelp_sig'] = array( array($GLOBALS['XML_RPC_String'], $GLOBALS['XML_RPC_String'] ) ); /** * docstring for methodHelp * @global string $GLOBALS['XML_RPC_Server_methodHelp_doc'] */ $GLOBALS['XML_RPC_Server_methodHelp_doc'] = 'Returns help text if defined' . ' for the method passed, otherwise returns an empty string'; /** * dispatch map for the automatically declared XML-RPC methods. * @global array $GLOBALS['XML_RPC_Server_dmap'] */ $GLOBALS['XML_RPC_Server_dmap'] = array( 'system.listMethods' => array( 'function' => 'XML_RPC_Server_listMethods', 'signature' => $GLOBALS['XML_RPC_Server_listMethods_sig'], 'docstring' => $GLOBALS['XML_RPC_Server_listMethods_doc'] ), 'system.methodHelp' => array( 'function' => 'XML_RPC_Server_methodHelp', 'signature' => $GLOBALS['XML_RPC_Server_methodHelp_sig'], 'docstring' => $GLOBALS['XML_RPC_Server_methodHelp_doc'] ), 'system.methodSignature' => array( 'function' => 'XML_RPC_Server_methodSignature', 'signature' => $GLOBALS['XML_RPC_Server_methodSignature_sig'], 'docstring' => $GLOBALS['XML_RPC_Server_methodSignature_doc'] ) ); /** * @global string $GLOBALS['XML_RPC_Server_debuginfo'] */ $GLOBALS['XML_RPC_Server_debuginfo'] = ''; /** * Lists all the methods that the XML-RPC server knows how to dispatch * * @return object a new XML_RPC_Response object */ function XML_RPC_Server_listMethods($server, $m) { global $XML_RPC_err, $XML_RPC_str, $XML_RPC_Server_dmap; $v = new XML_RPC_Value(); $outAr = array(); foreach ($server->dmap as $key => $val) { $outAr[] = new XML_RPC_Value($key, 'string'); } foreach ($XML_RPC_Server_dmap as $key => $val) { $outAr[] = new XML_RPC_Value($key, 'string'); } $v->addArray($outAr); return new XML_RPC_Response($v); } /** * Returns an array of known signatures (an array of arrays) * for the given method * * If no signatures are known, returns a none-array * (test for type != array to detect missing signature) * * @return object a new XML_RPC_Response object */ function XML_RPC_Server_methodSignature($server, $m) { global $XML_RPC_err, $XML_RPC_str, $XML_RPC_Server_dmap; $methName = $m->getParam(0); $methName = $methName->scalarval(); if (strpos($methName, 'system.') === 0) { $dmap = $XML_RPC_Server_dmap; $sysCall = 1; } else { $dmap = $server->dmap; $sysCall = 0; } // print "\n"; if (isset($dmap[$methName])) { if ($dmap[$methName]['signature']) { $sigs = array(); $thesigs = $dmap[$methName]['signature']; for ($i = 0; $i < sizeof($thesigs); $i++) { $cursig = array(); $inSig = $thesigs[$i]; for ($j = 0; $j < sizeof($inSig); $j++) { $cursig[] = new XML_RPC_Value($inSig[$j], 'string'); } $sigs[] = new XML_RPC_Value($cursig, 'array'); } $r = new XML_RPC_Response(new XML_RPC_Value($sigs, 'array')); } else { $r = new XML_RPC_Response(new XML_RPC_Value('undef', 'string')); } } else { $r = new XML_RPC_Response(0, $XML_RPC_err['introspect_unknown'], $XML_RPC_str['introspect_unknown']); } return $r; } /** * Returns help text if defined for the method passed, otherwise returns * an empty string * * @return object a new XML_RPC_Response object */ function XML_RPC_Server_methodHelp($server, $m) { global $XML_RPC_err, $XML_RPC_str, $XML_RPC_Server_dmap; $methName = $m->getParam(0); $methName = $methName->scalarval(); if (strpos($methName, 'system.') === 0) { $dmap = $XML_RPC_Server_dmap; $sysCall = 1; } else { $dmap = $server->dmap; $sysCall = 0; } if (isset($dmap[$methName])) { if ($dmap[$methName]['docstring']) { $r = new XML_RPC_Response(new XML_RPC_Value($dmap[$methName]['docstring']), 'string'); } else { $r = new XML_RPC_Response(new XML_RPC_Value('', 'string')); } } else { $r = new XML_RPC_Response(0, $XML_RPC_err['introspect_unknown'], $XML_RPC_str['introspect_unknown']); } return $r; } /** * @return void */ function XML_RPC_Server_debugmsg($m) { global $XML_RPC_Server_debuginfo; $XML_RPC_Server_debuginfo = $XML_RPC_Server_debuginfo . $m . "\n"; } /** * A server for receiving and replying to XML RPC requests * * * $server = new XML_RPC_Server( * array( * 'isan8' => * array( * 'function' => 'is_8', * 'signature' => * array( * array('boolean', 'int'), * array('boolean', 'int', 'boolean'), * array('boolean', 'string'), * array('boolean', 'string', 'boolean'), * ), * 'docstring' => 'Is the value an 8?' * ), * ), * 1, * 0 * ); * * * @category Web Services * @package XML_RPC * @author Edd Dumbill * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version Release: @package_version@ * @link http://pear.php.net/package/XML_RPC */ class XML_RPC_Server { /** * Should the payload's content be passed through mb_convert_encoding()? * * @see XML_RPC_Server::setConvertPayloadEncoding() * @since Property available since Release 1.5.1 * @var boolean */ var $convert_payload_encoding = false; /** * The dispatch map, listing the methods this server provides. * @var array */ var $dmap = array(); /** * The present response's encoding * @var string * @see XML_RPC_Message::getEncoding() */ var $encoding = ''; /** * Debug mode (0 = off, 1 = on) * @var integer */ var $debug = 0; /** * The response's HTTP headers * @var string */ var $server_headers = ''; /** * The response's XML payload * @var string */ var $server_payload = ''; /** * Constructor for the XML_RPC_Server class * * @param array $dispMap the dispatch map. An associative array * explaining each function. The keys of the main * array are the procedure names used by the * clients. The value is another associative array * that contains up to three elements: * + The 'function' element's value is the name * of the function or method that gets called. * To define a class' method: 'class::method'. * + The 'signature' element (optional) is an * array describing the return values and * parameters * + The 'docstring' element (optional) is a * string describing what the method does * @param int $serviceNow should the HTTP response be sent now? * (1 = yes, 0 = no) * @param int $debug should debug output be displayed? * (1 = yes, 0 = no) * * @return void */ function XML_RPC_Server($dispMap, $serviceNow = 1, $debug = 0) { global $HTTP_RAW_POST_DATA; if ($debug) { $this->debug = 1; } else { $this->debug = 0; } $this->dmap = $dispMap; if ($serviceNow) { $this->service(); } else { $this->createServerPayload(); $this->createServerHeaders(); } } /** * @return string the debug information if debug debug mode is on */ function serializeDebug() { global $XML_RPC_Server_debuginfo, $HTTP_RAW_POST_DATA; if ($this->debug) { XML_RPC_Server_debugmsg('vvv POST DATA RECEIVED BY SERVER vvv' . "\n" . $HTTP_RAW_POST_DATA . "\n" . '^^^ END POST DATA ^^^'); } if ($XML_RPC_Server_debuginfo != '') { return "\n"; } else { return ''; } } /** * Sets whether the payload's content gets passed through * mb_convert_encoding() * * Returns PEAR_ERROR object if mb_convert_encoding() isn't available. * * @param int $in where 1 = on, 0 = off * * @return void * * @see XML_RPC_Message::getEncoding() * @since Method available since Release 1.5.1 */ function setConvertPayloadEncoding($in) { if ($in && !function_exists('mb_convert_encoding')) { return $this->raiseError('mb_convert_encoding() is not available', XML_RPC_ERROR_PROGRAMMING); } $this->convert_payload_encoding = $in; } /** * Sends the response * * The encoding and content-type are determined by * XML_RPC_Message::getEncoding() * * @return void * * @uses XML_RPC_Server::createServerPayload(), * XML_RPC_Server::createServerHeaders() */ function service() { if (!$this->server_payload) { $this->createServerPayload(); } if (!$this->server_headers) { $this->createServerHeaders(); } /* * $server_headers needs to remain a string for compatibility with * old scripts using this package, but PHP 4.4.2 no longer allows * line breaks in header() calls. So, we split each header into * an individual call. The initial replace handles the off chance * that someone composed a single header with multiple lines, which * the RFCs allow. */ $this->server_headers = preg_replace("@[\r\n]+[ \t]+@", ' ', trim($this->server_headers)); $headers = preg_split("@[\r\n]+@", $this->server_headers); foreach ($headers as $header) { header($header); } print $this->server_payload; } /** * Generates the payload and puts it in the $server_payload property * * If XML_RPC_Server::setConvertPayloadEncoding() was set to true, * the payload gets passed through mb_convert_encoding() * to ensure the payload matches the encoding set in the * XML declaration. The encoding type can be manually set via * XML_RPC_Message::setSendEncoding(). * * @return void * * @uses XML_RPC_Server::parseRequest(), XML_RPC_Server::$encoding, * XML_RPC_Response::serialize(), XML_RPC_Server::serializeDebug() * @see XML_RPC_Server::setConvertPayloadEncoding() */ function createServerPayload() { $r = $this->parseRequest(); $this->server_payload = 'encoding . '"?>' . "\n" . $this->serializeDebug() . $r->serialize(); if ($this->convert_payload_encoding) { $this->server_payload = mb_convert_encoding($this->server_payload, $this->encoding); } } /** * Determines the HTTP headers and puts them in the $server_headers * property * * @return boolean TRUE if okay, FALSE if $server_payload isn't set. * * @uses XML_RPC_Server::createServerPayload(), * XML_RPC_Server::$server_headers */ function createServerHeaders() { if (!$this->server_payload) { return false; } $this->server_headers = 'Content-Length: ' . strlen($this->server_payload) . "\r\n" . 'Content-Type: text/xml;' . ' charset=' . $this->encoding; return true; } /** * @return array */ function verifySignature($in, $sig) { for ($i = 0; $i < sizeof($sig); $i++) { // check each possible signature in turn $cursig = $sig[$i]; if (sizeof($cursig) == $in->getNumParams() + 1) { $itsOK = 1; for ($n = 0; $n < $in->getNumParams(); $n++) { $p = $in->getParam($n); // print "\n"; if ($p->kindOf() == 'scalar') { $pt = $p->scalartyp(); } else { $pt = $p->kindOf(); } // $n+1 as first type of sig is return type if ($pt != $cursig[$n+1]) { $itsOK = 0; $pno = $n+1; $wanted = $cursig[$n+1]; $got = $pt; break; } } if ($itsOK) { return array(1); } } } if (isset($wanted)) { return array(0, "Wanted ${wanted}, got ${got} at param ${pno}"); } else { $allowed = array(); foreach ($sig as $val) { end($val); $allowed[] = key($val); } $allowed = array_unique($allowed); $last = count($allowed) - 1; if ($last > 0) { $allowed[$last] = 'or ' . $allowed[$last]; } return array(0, 'Signature permits ' . implode(', ', $allowed) . ' parameters but the request had ' . $in->getNumParams()); } } /** * @return object a new XML_RPC_Response object * * @uses XML_RPC_Message::getEncoding(), XML_RPC_Server::$encoding */ function parseRequest($data = '') { global $XML_RPC_xh, $HTTP_RAW_POST_DATA, $XML_RPC_err, $XML_RPC_str, $XML_RPC_errxml, $XML_RPC_defencoding, $XML_RPC_Server_dmap; if ($data == '') { $data = $HTTP_RAW_POST_DATA; } $this->encoding = XML_RPC_Message::getEncoding($data); $parser_resource = xml_parser_create($this->encoding); $parser = (int) $parser_resource; $XML_RPC_xh[$parser] = array(); $XML_RPC_xh[$parser]['cm'] = 0; $XML_RPC_xh[$parser]['isf'] = 0; $XML_RPC_xh[$parser]['params'] = array(); $XML_RPC_xh[$parser]['method'] = ''; $XML_RPC_xh[$parser]['stack'] = array(); $XML_RPC_xh[$parser]['valuestack'] = array(); $plist = ''; // decompose incoming XML into request structure xml_parser_set_option($parser_resource, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($parser_resource, 'XML_RPC_se', 'XML_RPC_ee'); xml_set_character_data_handler($parser_resource, 'XML_RPC_cd'); if (!xml_parse($parser_resource, $data, 1)) { // return XML error as a faultCode $r = new XML_RPC_Response(0, $XML_RPC_errxml+xml_get_error_code($parser_resource), sprintf('XML error: %s at line %d', xml_error_string(xml_get_error_code($parser_resource)), xml_get_current_line_number($parser_resource))); xml_parser_free($parser_resource); } elseif ($XML_RPC_xh[$parser]['isf']>1) { $r = new XML_RPC_Response(0, $XML_RPC_err['invalid_request'], $XML_RPC_str['invalid_request'] . ': ' . $XML_RPC_xh[$parser]['isf_reason']); xml_parser_free($parser_resource); } else { xml_parser_free($parser_resource); $m = new XML_RPC_Message($XML_RPC_xh[$parser]['method']); // now add parameters in for ($i = 0; $i < sizeof($XML_RPC_xh[$parser]['params']); $i++) { // print '\n"; $plist .= "$i - " . var_export($XML_RPC_xh[$parser]['params'][$i], true) . " \n"; $m->addParam($XML_RPC_xh[$parser]['params'][$i]); } if ($this->debug) { XML_RPC_Server_debugmsg($plist); } // now to deal with the method $methName = $XML_RPC_xh[$parser]['method']; if (strpos($methName, 'system.') === 0) { $dmap = $XML_RPC_Server_dmap; $sysCall = 1; } else { $dmap = $this->dmap; $sysCall = 0; } if (isset($dmap[$methName]['function']) && is_string($dmap[$methName]['function']) && strpos($dmap[$methName]['function'], '::') !== false) { $dmap[$methName]['function'] = explode('::', $dmap[$methName]['function']); } if (isset($dmap[$methName]['function']) && is_callable($dmap[$methName]['function'])) { // dispatch if exists if (isset($dmap[$methName]['signature'])) { $sr = $this->verifySignature($m, $dmap[$methName]['signature'] ); } if (!isset($dmap[$methName]['signature']) || $sr[0]) { // if no signature or correct signature if ($sysCall) { $r = call_user_func($dmap[$methName]['function'], $this, $m); } else { $r = call_user_func($dmap[$methName]['function'], $m); } if (!is_object($r) || !is_a($r, 'XML_RPC_Response')) { $r = new XML_RPC_Response(0, $XML_RPC_err['not_response_object'], $XML_RPC_str['not_response_object']); } } else { $r = new XML_RPC_Response(0, $XML_RPC_err['incorrect_params'], $XML_RPC_str['incorrect_params'] . ': ' . $sr[1]); } } else { // else prepare error response $r = new XML_RPC_Response(0, $XML_RPC_err['unknown_method'], $XML_RPC_str['unknown_method']); } } return $r; } /** * Echos back the input packet as a string value * * @return void * * Useful for debugging. */ function echoInput() { global $HTTP_RAW_POST_DATA; $r = new XML_RPC_Response(0); $r->xv = new XML_RPC_Value("'Aha said I: '" . $HTTP_RAW_POST_DATA, 'string'); print $r->serialize(); } } /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * c-hanging-comment-ender-p: nil * End: */ ?> Util.php000064400000076660152345712150006216 0ustar00 * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * @category XML * @package XML_Util * @author Stephan Schmidt * @copyright 2003-2008 Stephan Schmidt * @license http://opensource.org/licenses/bsd-license New BSD License * @version CVS: $Id$ * @link http://pear.php.net/package/XML_Util */ /** * Error code for invalid chars in XML name */ define('XML_UTIL_ERROR_INVALID_CHARS', 51); /** * Error code for invalid chars in XML name */ define('XML_UTIL_ERROR_INVALID_START', 52); /** * Error code for non-scalar tag content */ define('XML_UTIL_ERROR_NON_SCALAR_CONTENT', 60); /** * Error code for missing tag name */ define('XML_UTIL_ERROR_NO_TAG_NAME', 61); /** * Replace XML entities */ define('XML_UTIL_REPLACE_ENTITIES', 1); /** * Embedd content in a CData Section */ define('XML_UTIL_CDATA_SECTION', 5); /** * Do not replace entitites */ define('XML_UTIL_ENTITIES_NONE', 0); /** * Replace all XML entitites * This setting will replace <, >, ", ' and & */ define('XML_UTIL_ENTITIES_XML', 1); /** * Replace only required XML entitites * This setting will replace <, " and & */ define('XML_UTIL_ENTITIES_XML_REQUIRED', 2); /** * Replace HTML entitites * @link http://www.php.net/htmlentities */ define('XML_UTIL_ENTITIES_HTML', 3); /** * Do not collapse any empty tags. */ define('XML_UTIL_COLLAPSE_NONE', 0); /** * Collapse all empty tags. */ define('XML_UTIL_COLLAPSE_ALL', 1); /** * Collapse only empty XHTML tags that have no end tag. */ define('XML_UTIL_COLLAPSE_XHTML_ONLY', 2); /** * Utility class for working with XML documents * * @category XML * @package XML_Util * @author Stephan Schmidt * @copyright 2003-2008 Stephan Schmidt * @license http://opensource.org/licenses/bsd-license New BSD License * @version Release: 1.4.5 * @link http://pear.php.net/package/XML_Util */ class XML_Util { /** * Return API version * * @return string $version API version */ public static function apiVersion() { return '1.4'; } /** * Replace XML entities * * With the optional second parameter, you may select, which * entities should be replaced. * * * require_once 'XML/Util.php'; * * // replace XML entites: * $string = XML_Util::replaceEntities('This string contains < & >.'); * * * With the optional third parameter, you may pass the character encoding * * require_once 'XML/Util.php'; * * // replace XML entites in UTF-8: * $string = XML_Util::replaceEntities( * 'This string contains < & > as well as ä, ö, ß, à and ê', * XML_UTIL_ENTITIES_HTML, * 'UTF-8' * ); * * * @param string $string string where XML special chars * should be replaced * @param int $replaceEntities setting for entities in attribute values * (one of XML_UTIL_ENTITIES_XML, * XML_UTIL_ENTITIES_XML_REQUIRED, * XML_UTIL_ENTITIES_HTML) * @param string $encoding encoding value (if any)... * must be a valid encoding as determined * by the htmlentities() function * * @return string string with replaced chars * @see reverseEntities() */ public static function replaceEntities( $string, $replaceEntities = XML_UTIL_ENTITIES_XML, $encoding = 'ISO-8859-1' ) { switch ($replaceEntities) { case XML_UTIL_ENTITIES_XML: return strtr( $string, array( '&' => '&', '>' => '>', '<' => '<', '"' => '"', '\'' => ''' ) ); break; case XML_UTIL_ENTITIES_XML_REQUIRED: return strtr( $string, array( '&' => '&', '<' => '<', '"' => '"' ) ); break; case XML_UTIL_ENTITIES_HTML: return htmlentities($string, ENT_COMPAT, $encoding); break; } return $string; } /** * Reverse XML entities * * With the optional second parameter, you may select, which * entities should be reversed. * * * require_once 'XML/Util.php'; * * // reverse XML entites: * $string = XML_Util::reverseEntities('This string contains < & >.'); * * * With the optional third parameter, you may pass the character encoding * * require_once 'XML/Util.php'; * * // reverse XML entites in UTF-8: * $string = XML_Util::reverseEntities( * 'This string contains < & > as well as' * . ' ä, ö, ß, à and ê', * XML_UTIL_ENTITIES_HTML, * 'UTF-8' * ); * * * @param string $string string where XML special chars * should be replaced * @param int $replaceEntities setting for entities in attribute values * (one of XML_UTIL_ENTITIES_XML, * XML_UTIL_ENTITIES_XML_REQUIRED, * XML_UTIL_ENTITIES_HTML) * @param string $encoding encoding value (if any)... * must be a valid encoding as determined * by the html_entity_decode() function * * @return string string with replaced chars * @see replaceEntities() */ public static function reverseEntities( $string, $replaceEntities = XML_UTIL_ENTITIES_XML, $encoding = 'ISO-8859-1' ) { switch ($replaceEntities) { case XML_UTIL_ENTITIES_XML: return strtr( $string, array( '&' => '&', '>' => '>', '<' => '<', '"' => '"', ''' => '\'' ) ); break; case XML_UTIL_ENTITIES_XML_REQUIRED: return strtr( $string, array( '&' => '&', '<' => '<', '"' => '"' ) ); break; case XML_UTIL_ENTITIES_HTML: return html_entity_decode($string, ENT_COMPAT, $encoding); break; } return $string; } /** * Build an xml declaration * * * require_once 'XML/Util.php'; * * // get an XML declaration: * $xmlDecl = XML_Util::getXMLDeclaration('1.0', 'UTF-8', true); * * * @param string $version xml version * @param string $encoding character encoding * @param bool $standalone document is standalone (or not) * * @return string xml declaration * @uses attributesToString() to serialize the attributes of the * XML declaration */ public static function getXMLDeclaration( $version = '1.0', $encoding = null, $standalone = null ) { $attributes = array( 'version' => $version, ); // add encoding if ($encoding !== null) { $attributes['encoding'] = $encoding; } // add standalone, if specified if ($standalone !== null) { $attributes['standalone'] = $standalone ? 'yes' : 'no'; } return sprintf( '', XML_Util::attributesToString($attributes, false) ); } /** * Build a document type declaration * * * require_once 'XML/Util.php'; * * // get a doctype declaration: * $xmlDecl = XML_Util::getDocTypeDeclaration('rootTag','myDocType.dtd'); * * * @param string $root name of the root tag * @param string $uri uri of the doctype definition * (or array with uri and public id) * @param string $internalDtd internal dtd entries * * @return string doctype declaration * @since 0.2 */ public static function getDocTypeDeclaration( $root, $uri = null, $internalDtd = null ) { if (is_array($uri)) { $ref = sprintf(' PUBLIC "%s" "%s"', $uri['id'], $uri['uri']); } elseif (!empty($uri)) { $ref = sprintf(' SYSTEM "%s"', $uri); } else { $ref = ''; } if (empty($internalDtd)) { return sprintf('', $root, $ref); } else { return sprintf("", $root, $ref, $internalDtd); } } /** * Create string representation of an attribute list * * * require_once 'XML/Util.php'; * * // build an attribute string * $att = array( * 'foo' => 'bar', * 'argh' => 'tomato' * ); * * $attList = XML_Util::attributesToString($att); * * * @param array $attributes attribute array * @param bool|array $sort sort attribute list alphabetically, * may also be an assoc array containing * the keys 'sort', 'multiline', 'indent', * 'linebreak' and 'entities' * @param bool $multiline use linebreaks, if more than * one attribute is given * @param string $indent string used for indentation of * multiline attributes * @param string $linebreak string used for linebreaks of * multiline attributes * @param int $entities setting for entities in attribute values * (one of XML_UTIL_ENTITIES_NONE, * XML_UTIL_ENTITIES_XML, * XML_UTIL_ENTITIES_XML_REQUIRED, * XML_UTIL_ENTITIES_HTML) * * @return string string representation of the attributes * @uses replaceEntities() to replace XML entities in attribute values * @todo allow sort also to be an options array */ public static function attributesToString( $attributes, $sort = true, $multiline = false, $indent = ' ', $linebreak = "\n", $entities = XML_UTIL_ENTITIES_XML ) { /* * second parameter may be an array */ if (is_array($sort)) { if (isset($sort['multiline'])) { $multiline = $sort['multiline']; } if (isset($sort['indent'])) { $indent = $sort['indent']; } if (isset($sort['linebreak'])) { $multiline = $sort['linebreak']; } if (isset($sort['entities'])) { $entities = $sort['entities']; } if (isset($sort['sort'])) { $sort = $sort['sort']; } else { $sort = true; } } $string = ''; if (is_array($attributes) && !empty($attributes)) { if ($sort) { ksort($attributes); } if (!$multiline || count($attributes) == 1) { foreach ($attributes as $key => $value) { if ($entities != XML_UTIL_ENTITIES_NONE) { if ($entities === XML_UTIL_CDATA_SECTION) { $entities = XML_UTIL_ENTITIES_XML; } $value = XML_Util::replaceEntities($value, $entities); } $string .= ' ' . $key . '="' . $value . '"'; } } else { $first = true; foreach ($attributes as $key => $value) { if ($entities != XML_UTIL_ENTITIES_NONE) { $value = XML_Util::replaceEntities($value, $entities); } if ($first) { $string .= ' ' . $key . '="' . $value . '"'; $first = false; } else { $string .= $linebreak . $indent . $key . '="' . $value . '"'; } } } } return $string; } /** * Collapses empty tags. * * @param string $xml XML * @param int $mode Whether to collapse all empty tags (XML_UTIL_COLLAPSE_ALL) * or only XHTML (XML_UTIL_COLLAPSE_XHTML_ONLY) ones. * * @return string XML */ public static function collapseEmptyTags($xml, $mode = XML_UTIL_COLLAPSE_ALL) { if (preg_match('~<([^>])+/>~s', $xml, $matches)) { // it's already an empty tag return $xml; } switch ($mode) { case XML_UTIL_COLLAPSE_ALL: $preg1 = '~<' . '(?:' . '(https?://[^:\s]+:\w+)' . // ]*)' . // attributes ($4) '>' . '<\/(\1|\2|\3)>' . // 1, 2, or 3 again ($5) '~s' ; $preg2 = '<' . '${1}${2}${3}' . // tag (only one should have been populated) '${4}' . // attributes ' />' ; return (preg_replace($preg1, $preg2, $xml)?:$xml); break; case XML_UTIL_COLLAPSE_XHTML_ONLY: return ( preg_replace( '/<(area|base(?:font)?|br|col|frame|hr|img|input|isindex|link|meta|' . 'param)([^>]*)><\/\\1>/s', '<\\1\\2 />', $xml ) ?: $xml ); break; case XML_UTIL_COLLAPSE_NONE: // fall thru default: return $xml; } } /** * Create a tag * * This method will call XML_Util::createTagFromArray(), which * is more flexible. * * * require_once 'XML/Util.php'; * * // create an XML tag: * $tag = XML_Util::createTag('myNs:myTag', * array('foo' => 'bar'), * 'This is inside the tag', * 'http://www.w3c.org/myNs#'); * * * @param string $qname qualified tagname (including namespace) * @param array $attributes array containg attributes * @param mixed $content the content * @param string $namespaceUri URI of the namespace * @param int $replaceEntities whether to replace XML special chars in * content, embedd it in a CData section * or none of both * @param bool $multiline whether to create a multiline tag where * each attribute gets written to a single line * @param string $indent string used to indent attributes * (_auto indents attributes so they start * at the same column) * @param string $linebreak string used for linebreaks * @param bool $sortAttributes Whether to sort the attributes or not * @param int $collapseTagMode How to handle a content-less, and thus collapseable, tag * * @return string XML tag * @see createTagFromArray() * @uses createTagFromArray() to create the tag */ public static function createTag( $qname, $attributes = array(), $content = null, $namespaceUri = null, $replaceEntities = XML_UTIL_REPLACE_ENTITIES, $multiline = false, $indent = '_auto', $linebreak = "\n", $sortAttributes = true, $collapseTagMode = XML_UTIL_COLLAPSE_ALL ) { $tag = array( 'qname' => $qname, 'attributes' => $attributes ); // add tag content if ($content !== null) { $tag['content'] = $content; } // add namespace Uri if ($namespaceUri !== null) { $tag['namespaceUri'] = $namespaceUri; } return XML_Util::createTagFromArray( $tag, $replaceEntities, $multiline, $indent, $linebreak, $sortAttributes, $collapseTagMode ); } /** * Create a tag from an array. * This method awaits an array in the following format *
     * array(
     *     // qualified name of the tag
     *     'qname' => $qname
     *
     *     // namespace prefix (optional, if qname is specified or no namespace)
     *     'namespace' => $namespace
     *
     *     // local part of the tagname (optional, if qname is specified)
     *     'localpart' => $localpart,
     *
     *     // array containing all attributes (optional)
     *     'attributes' => array(),
     *
     *     // tag content (optional)
     *     'content' => $content,
     *
     *     // namespaceUri for the given namespace (optional)
     *     'namespaceUri' => $namespaceUri
     * )
     * 
* * * require_once 'XML/Util.php'; * * $tag = array( * 'qname' => 'foo:bar', * 'namespaceUri' => 'http://foo.com', * 'attributes' => array('key' => 'value', 'argh' => 'fruit&vegetable'), * 'content' => 'I\'m inside the tag', * ); * // creating a tag with qualified name and namespaceUri * $string = XML_Util::createTagFromArray($tag); * * * @param array $tag tag definition * @param int $replaceEntities whether to replace XML special chars in * content, embedd it in a CData section * or none of both * @param bool $multiline whether to create a multiline tag where each * attribute gets written to a single line * @param string $indent string used to indent attributes * (_auto indents attributes so they start * at the same column) * @param string $linebreak string used for linebreaks * @param bool $sortAttributes Whether to sort the attributes or not * @param int $collapseTagMode How to handle a content-less, and thus collapseable, tag * * @return string XML tag * * @see createTag() * @uses attributesToString() to serialize the attributes of the tag * @uses splitQualifiedName() to get local part and namespace of a qualified name * @uses createCDataSection() * @uses collapseEmptyTags() * @uses raiseError() */ public static function createTagFromArray( $tag, $replaceEntities = XML_UTIL_REPLACE_ENTITIES, $multiline = false, $indent = '_auto', $linebreak = "\n", $sortAttributes = true, $collapseTagMode = XML_UTIL_COLLAPSE_ALL ) { if (isset($tag['content']) && !is_scalar($tag['content'])) { return XML_Util::raiseError( 'Supplied non-scalar value as tag content', XML_UTIL_ERROR_NON_SCALAR_CONTENT ); } if (!isset($tag['qname']) && !isset($tag['localPart'])) { return XML_Util::raiseError( 'You must either supply a qualified name ' . '(qname) or local tag name (localPart).', XML_UTIL_ERROR_NO_TAG_NAME ); } // if no attributes hav been set, use empty attributes if (!isset($tag['attributes']) || !is_array($tag['attributes'])) { $tag['attributes'] = array(); } if (isset($tag['namespaces'])) { foreach ($tag['namespaces'] as $ns => $uri) { $tag['attributes']['xmlns:' . $ns] = $uri; } } if (!isset($tag['qname'])) { // qualified name is not given // check for namespace if (isset($tag['namespace']) && !empty($tag['namespace'])) { $tag['qname'] = $tag['namespace'] . ':' . $tag['localPart']; } else { $tag['qname'] = $tag['localPart']; } } elseif (isset($tag['namespaceUri']) && !isset($tag['namespace'])) { // namespace URI is set, but no namespace $parts = XML_Util::splitQualifiedName($tag['qname']); $tag['localPart'] = $parts['localPart']; if (isset($parts['namespace'])) { $tag['namespace'] = $parts['namespace']; } } if (isset($tag['namespaceUri']) && !empty($tag['namespaceUri'])) { // is a namespace given if (isset($tag['namespace']) && !empty($tag['namespace'])) { $tag['attributes']['xmlns:' . $tag['namespace']] = $tag['namespaceUri']; } else { // define this Uri as the default namespace $tag['attributes']['xmlns'] = $tag['namespaceUri']; } } if (!array_key_exists('content', $tag)) { $tag['content'] = ''; } // check for multiline attributes if ($multiline === true) { if ($indent === '_auto') { $indent = str_repeat(' ', (strlen($tag['qname'])+2)); } } // create attribute list $attList = XML_Util::attributesToString( $tag['attributes'], $sortAttributes, $multiline, $indent, $linebreak ); switch ($replaceEntities) { case XML_UTIL_ENTITIES_NONE: break; case XML_UTIL_CDATA_SECTION: $tag['content'] = XML_Util::createCDataSection($tag['content']); break; default: $tag['content'] = XML_Util::replaceEntities( $tag['content'], $replaceEntities ); break; } $tag = sprintf( '<%s%s>%s', $tag['qname'], $attList, $tag['content'], $tag['qname'] ); return self::collapseEmptyTags($tag, $collapseTagMode); } /** * Create a start element * * * require_once 'XML/Util.php'; * * // create an XML start element: * $tag = XML_Util::createStartElement('myNs:myTag', * array('foo' => 'bar') ,'http://www.w3c.org/myNs#'); * * * @param string $qname qualified tagname (including namespace) * @param array $attributes array containg attributes * @param string $namespaceUri URI of the namespace * @param bool $multiline whether to create a multiline tag where each * attribute gets written to a single line * @param string $indent string used to indent attributes (_auto indents * attributes so they start at the same column) * @param string $linebreak string used for linebreaks * @param bool $sortAttributes Whether to sort the attributes or not * * @return string XML start element * @see createEndElement(), createTag() */ public static function createStartElement( $qname, $attributes = array(), $namespaceUri = null, $multiline = false, $indent = '_auto', $linebreak = "\n", $sortAttributes = true ) { // if no attributes hav been set, use empty attributes if (!isset($attributes) || !is_array($attributes)) { $attributes = array(); } if ($namespaceUri != null) { $parts = XML_Util::splitQualifiedName($qname); } // check for multiline attributes if ($multiline === true) { if ($indent === '_auto') { $indent = str_repeat(' ', (strlen($qname)+2)); } } if ($namespaceUri != null) { // is a namespace given if (isset($parts['namespace']) && !empty($parts['namespace'])) { $attributes['xmlns:' . $parts['namespace']] = $namespaceUri; } else { // define this Uri as the default namespace $attributes['xmlns'] = $namespaceUri; } } // create attribute list $attList = XML_Util::attributesToString( $attributes, $sortAttributes, $multiline, $indent, $linebreak ); $element = sprintf('<%s%s>', $qname, $attList); return $element; } /** * Create an end element * * * require_once 'XML/Util.php'; * * // create an XML start element: * $tag = XML_Util::createEndElement('myNs:myTag'); * * * @param string $qname qualified tagname (including namespace) * * @return string XML end element * @see createStartElement(), createTag() */ public static function createEndElement($qname) { $element = sprintf('', $qname); return $element; } /** * Create an XML comment * * * require_once 'XML/Util.php'; * * // create an XML start element: * $tag = XML_Util::createComment('I am a comment'); * * * @param string $content content of the comment * * @return string XML comment */ public static function createComment($content) { $comment = sprintf('', $content); return $comment; } /** * Create a CData section * * * require_once 'XML/Util.php'; * * // create a CData section * $tag = XML_Util::createCDataSection('I am content.'); * * * @param string $data data of the CData section * * @return string CData section with content */ public static function createCDataSection($data) { return sprintf( '', preg_replace('/\]\]>/', ']]]]>', strval($data)) ); } /** * Split qualified name and return namespace and local part * * * require_once 'XML/Util.php'; * * // split qualified tag * $parts = XML_Util::splitQualifiedName('xslt:stylesheet'); * * the returned array will contain two elements: *
     * array(
     *     'namespace' => 'xslt',
     *     'localPart' => 'stylesheet'
     * );
     * 
* * @param string $qname qualified tag name * @param string $defaultNs default namespace (optional) * * @return array array containing namespace and local part */ public static function splitQualifiedName($qname, $defaultNs = null) { if (strstr($qname, ':')) { $tmp = explode(':', $qname); return array( 'namespace' => $tmp[0], 'localPart' => $tmp[1] ); } return array( 'namespace' => $defaultNs, 'localPart' => $qname ); } /** * Check, whether string is valid XML name * *

XML names are used for tagname, attribute names and various * other, lesser known entities.

*

An XML name may only consist of alphanumeric characters, * dashes, undescores and periods, and has to start with a letter * or an underscore.

* * * require_once 'XML/Util.php'; * * // verify tag name * $result = XML_Util::isValidName('invalidTag?'); * if (is_a($result, 'PEAR_Error')) { * print 'Invalid XML name: ' . $result->getMessage(); * } * * * @param string $string string that should be checked * * @return mixed true, if string is a valid XML name, PEAR error otherwise * * @todo support for other charsets * @todo PEAR CS - unable to avoid 85-char limit on second preg_match */ public static function isValidName($string) { // check for invalid chars if (!is_string($string) || !strlen($string) || !preg_match('/^[[:alpha:]_]\\z/', $string[0])) { return XML_Util::raiseError( 'XML names may only start with letter or underscore', XML_UTIL_ERROR_INVALID_START ); } // check for invalid chars $match = preg_match( '/^([[:alpha:]_]([[:alnum:]\-\.]*)?:)?' . '[[:alpha:]_]([[:alnum:]\_\-\.]+)?\\z/', $string ); if (!$match) { return XML_Util::raiseError( 'XML names may only contain alphanumeric ' . 'chars, period, hyphen, colon and underscores', XML_UTIL_ERROR_INVALID_CHARS ); } // XML name is valid return true; } /** * Replacement for XML_Util::raiseError * * Avoids the necessity to always require * PEAR.php * * @param string $msg error message * @param int $code error code * * @return PEAR_Error * @todo PEAR CS - should this use include_once instead? */ public static function raiseError($msg, $code) { include_once 'PEAR.php'; return PEAR::raiseError($msg, $code); } } ?> RPC.php000064400000164717152345712150005726 0ustar00 * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version SVN: $Id: RPC.php 315594 2011-08-27 01:03:57Z danielc $ * @link http://pear.php.net/package/XML_RPC */ if (!function_exists('xml_parser_create')) { include_once 'PEAR.php'; PEAR::loadExtension('xml'); } /**#@+ * Error constants */ /** * Parameter values don't match parameter types */ define('XML_RPC_ERROR_INVALID_TYPE', 101); /** * Parameter declared to be numeric but the values are not */ define('XML_RPC_ERROR_NON_NUMERIC_FOUND', 102); /** * Communication error */ define('XML_RPC_ERROR_CONNECTION_FAILED', 103); /** * The array or struct has already been started */ define('XML_RPC_ERROR_ALREADY_INITIALIZED', 104); /** * Incorrect parameters submitted */ define('XML_RPC_ERROR_INCORRECT_PARAMS', 105); /** * Programming error by developer */ define('XML_RPC_ERROR_PROGRAMMING', 106); /**#@-*/ /** * Data types * @global string $GLOBALS['XML_RPC_I4'] */ $GLOBALS['XML_RPC_I4'] = 'i4'; /** * Data types * @global string $GLOBALS['XML_RPC_Int'] */ $GLOBALS['XML_RPC_Int'] = 'int'; /** * Data types * @global string $GLOBALS['XML_RPC_Boolean'] */ $GLOBALS['XML_RPC_Boolean'] = 'boolean'; /** * Data types * @global string $GLOBALS['XML_RPC_Double'] */ $GLOBALS['XML_RPC_Double'] = 'double'; /** * Data types * @global string $GLOBALS['XML_RPC_String'] */ $GLOBALS['XML_RPC_String'] = 'string'; /** * Data types * @global string $GLOBALS['XML_RPC_DateTime'] */ $GLOBALS['XML_RPC_DateTime'] = 'dateTime.iso8601'; /** * Data types * @global string $GLOBALS['XML_RPC_Base64'] */ $GLOBALS['XML_RPC_Base64'] = 'base64'; /** * Data types * @global string $GLOBALS['XML_RPC_Array'] */ $GLOBALS['XML_RPC_Array'] = 'array'; /** * Data types * @global string $GLOBALS['XML_RPC_Struct'] */ $GLOBALS['XML_RPC_Struct'] = 'struct'; /** * Data type meta-types * @global array $GLOBALS['XML_RPC_Types'] */ $GLOBALS['XML_RPC_Types'] = array( $GLOBALS['XML_RPC_I4'] => 1, $GLOBALS['XML_RPC_Int'] => 1, $GLOBALS['XML_RPC_Boolean'] => 1, $GLOBALS['XML_RPC_String'] => 1, $GLOBALS['XML_RPC_Double'] => 1, $GLOBALS['XML_RPC_DateTime'] => 1, $GLOBALS['XML_RPC_Base64'] => 1, $GLOBALS['XML_RPC_Array'] => 2, $GLOBALS['XML_RPC_Struct'] => 3, ); /** * Error message numbers * @global array $GLOBALS['XML_RPC_err'] */ $GLOBALS['XML_RPC_err'] = array( 'unknown_method' => 1, 'invalid_return' => 2, 'incorrect_params' => 3, 'introspect_unknown' => 4, 'http_error' => 5, 'not_response_object' => 6, 'invalid_request' => 7, ); /** * Error message strings * @global array $GLOBALS['XML_RPC_str'] */ $GLOBALS['XML_RPC_str'] = array( 'unknown_method' => 'Unknown method', 'invalid_return' => 'Invalid return payload: enable debugging to examine incoming payload', 'incorrect_params' => 'Incorrect parameters passed to method', 'introspect_unknown' => 'Can\'t introspect: method unknown', 'http_error' => 'Didn\'t receive 200 OK from remote server.', 'not_response_object' => 'The requested method didn\'t return an XML_RPC_Response object.', 'invalid_request' => 'Invalid request payload', ); /** * Default XML encoding (ISO-8859-1, UTF-8 or US-ASCII) * @global string $GLOBALS['XML_RPC_defencoding'] */ $GLOBALS['XML_RPC_defencoding'] = 'UTF-8'; /** * User error codes start at 800 * @global int $GLOBALS['XML_RPC_erruser'] */ $GLOBALS['XML_RPC_erruser'] = 800; /** * XML parse error codes start at 100 * @global int $GLOBALS['XML_RPC_errxml'] */ $GLOBALS['XML_RPC_errxml'] = 100; /** * Compose backslashes for escaping regexp * @global string $GLOBALS['XML_RPC_backslash'] */ $GLOBALS['XML_RPC_backslash'] = chr(92) . chr(92); /** * Should we automatically base64 encode strings that contain characters * which can cause PHP's SAX-based XML parser to break? * @global boolean $GLOBALS['XML_RPC_auto_base64'] */ $GLOBALS['XML_RPC_auto_base64'] = false; /** * Valid parents of XML elements * @global array $GLOBALS['XML_RPC_valid_parents'] */ $GLOBALS['XML_RPC_valid_parents'] = array( 'BOOLEAN' => array('VALUE'), 'I4' => array('VALUE'), 'INT' => array('VALUE'), 'STRING' => array('VALUE'), 'DOUBLE' => array('VALUE'), 'DATETIME.ISO8601' => array('VALUE'), 'BASE64' => array('VALUE'), 'ARRAY' => array('VALUE'), 'STRUCT' => array('VALUE'), 'PARAM' => array('PARAMS'), 'METHODNAME' => array('METHODCALL'), 'PARAMS' => array('METHODCALL', 'METHODRESPONSE'), 'MEMBER' => array('STRUCT'), 'NAME' => array('MEMBER'), 'DATA' => array('ARRAY'), 'FAULT' => array('METHODRESPONSE'), 'VALUE' => array('MEMBER', 'DATA', 'PARAM', 'FAULT'), ); /** * Stores state during parsing * * quick explanation of components: * + ac = accumulates values * + qt = decides if quotes are needed for evaluation * + cm = denotes struct or array (comma needed) * + isf = indicates a fault * + lv = indicates "looking for a value": implements the logic * to allow values with no types to be strings * + params = stores parameters in method calls * + method = stores method name * * @global array $GLOBALS['XML_RPC_xh'] */ $GLOBALS['XML_RPC_xh'] = array(); /** * Start element handler for the XML parser * * @return void */ function XML_RPC_se($parser_resource, $name, $attrs) { global $XML_RPC_xh, $XML_RPC_valid_parents; $parser = (int) $parser_resource; // if invalid xmlrpc already detected, skip all processing if ($XML_RPC_xh[$parser]['isf'] >= 2) { return; } // check for correct element nesting // top level element can only be of 2 types if (count($XML_RPC_xh[$parser]['stack']) == 0) { if ($name != 'METHODRESPONSE' && $name != 'METHODCALL') { $XML_RPC_xh[$parser]['isf'] = 2; $XML_RPC_xh[$parser]['isf_reason'] = 'missing top level xmlrpc element'; return; } } else { // not top level element: see if parent is OK if (!in_array($XML_RPC_xh[$parser]['stack'][0], $XML_RPC_valid_parents[$name])) { $name = preg_replace('@[^a-zA-Z0-9._-]@', '', $name); $XML_RPC_xh[$parser]['isf'] = 2; $XML_RPC_xh[$parser]['isf_reason'] = "xmlrpc element $name cannot be child of {$XML_RPC_xh[$parser]['stack'][0]}"; return; } } switch ($name) { case 'STRUCT': $XML_RPC_xh[$parser]['cm']++; // turn quoting off $XML_RPC_xh[$parser]['qt'] = 0; $cur_val = array(); $cur_val['value'] = array(); $cur_val['members'] = 1; array_unshift($XML_RPC_xh[$parser]['valuestack'], $cur_val); break; case 'ARRAY': $XML_RPC_xh[$parser]['cm']++; // turn quoting off $XML_RPC_xh[$parser]['qt'] = 0; $cur_val = array(); $cur_val['value'] = array(); $cur_val['members'] = 0; array_unshift($XML_RPC_xh[$parser]['valuestack'], $cur_val); break; case 'NAME': $XML_RPC_xh[$parser]['ac'] = ''; break; case 'FAULT': $XML_RPC_xh[$parser]['isf'] = 1; break; case 'PARAM': $XML_RPC_xh[$parser]['valuestack'] = array(); break; case 'VALUE': $XML_RPC_xh[$parser]['lv'] = 1; $XML_RPC_xh[$parser]['vt'] = $GLOBALS['XML_RPC_String']; $XML_RPC_xh[$parser]['ac'] = ''; $XML_RPC_xh[$parser]['qt'] = 0; // look for a value: if this is still 1 by the // time we reach the first data segment then the type is string // by implication and we need to add in a quote break; case 'I4': case 'INT': case 'STRING': case 'BOOLEAN': case 'DOUBLE': case 'DATETIME.ISO8601': case 'BASE64': $XML_RPC_xh[$parser]['ac'] = ''; // reset the accumulator if ($name == 'DATETIME.ISO8601' || $name == 'STRING') { $XML_RPC_xh[$parser]['qt'] = 1; if ($name == 'DATETIME.ISO8601') { $XML_RPC_xh[$parser]['vt'] = $GLOBALS['XML_RPC_DateTime']; } } elseif ($name == 'BASE64') { $XML_RPC_xh[$parser]['qt'] = 2; } else { // No quoting is required here -- but // at the end of the element we must check // for data format errors. $XML_RPC_xh[$parser]['qt'] = 0; } break; case 'MEMBER': $XML_RPC_xh[$parser]['ac'] = ''; break; case 'DATA': case 'METHODCALL': case 'METHODNAME': case 'METHODRESPONSE': case 'PARAMS': // valid elements that add little to processing break; } // Save current element to stack array_unshift($XML_RPC_xh[$parser]['stack'], $name); if ($name != 'VALUE') { $XML_RPC_xh[$parser]['lv'] = 0; } } /** * End element handler for the XML parser * * @return void */ function XML_RPC_ee($parser_resource, $name) { global $XML_RPC_xh; $parser = (int) $parser_resource; if ($XML_RPC_xh[$parser]['isf'] >= 2) { return; } // push this element from stack // NB: if XML validates, correct opening/closing is guaranteed and // we do not have to check for $name == $curr_elem. // we also checked for proper nesting at start of elements... $curr_elem = array_shift($XML_RPC_xh[$parser]['stack']); switch ($name) { case 'STRUCT': case 'ARRAY': $cur_val = array_shift($XML_RPC_xh[$parser]['valuestack']); $XML_RPC_xh[$parser]['value'] = $cur_val['value']; $XML_RPC_xh[$parser]['vt'] = strtolower($name); $XML_RPC_xh[$parser]['cm']--; break; case 'NAME': $XML_RPC_xh[$parser]['valuestack'][0]['name'] = $XML_RPC_xh[$parser]['ac']; break; case 'BOOLEAN': // special case here: we translate boolean 1 or 0 into PHP // constants true or false if ($XML_RPC_xh[$parser]['ac'] == '1') { $XML_RPC_xh[$parser]['ac'] = 'true'; } else { $XML_RPC_xh[$parser]['ac'] = 'false'; } $XML_RPC_xh[$parser]['vt'] = strtolower($name); // Drop through intentionally. case 'I4': case 'INT': case 'STRING': case 'DOUBLE': case 'DATETIME.ISO8601': case 'BASE64': if ($XML_RPC_xh[$parser]['qt'] == 1) { // we use double quotes rather than single so backslashification works OK $XML_RPC_xh[$parser]['value'] = $XML_RPC_xh[$parser]['ac']; } elseif ($XML_RPC_xh[$parser]['qt'] == 2) { $XML_RPC_xh[$parser]['value'] = base64_decode($XML_RPC_xh[$parser]['ac']); } elseif ($name == 'BOOLEAN') { $XML_RPC_xh[$parser]['value'] = $XML_RPC_xh[$parser]['ac']; } else { // we have an I4, INT or a DOUBLE // we must check that only 0123456789-. are characters here if (!preg_match("@^[+-]?[0123456789 \t\.]+$@", $XML_RPC_xh[$parser]['ac'])) { XML_RPC_Base::raiseError('Non-numeric value received in INT or DOUBLE', XML_RPC_ERROR_NON_NUMERIC_FOUND); $XML_RPC_xh[$parser]['value'] = XML_RPC_ERROR_NON_NUMERIC_FOUND; } else { // it's ok, add it on $XML_RPC_xh[$parser]['value'] = $XML_RPC_xh[$parser]['ac']; } } $XML_RPC_xh[$parser]['ac'] = ''; $XML_RPC_xh[$parser]['qt'] = 0; $XML_RPC_xh[$parser]['lv'] = 3; // indicate we've found a value break; case 'VALUE': if ($XML_RPC_xh[$parser]['vt'] == $GLOBALS['XML_RPC_String']) { if (strlen($XML_RPC_xh[$parser]['ac']) > 0) { $XML_RPC_xh[$parser]['value'] = $XML_RPC_xh[$parser]['ac']; } elseif ($XML_RPC_xh[$parser]['lv'] == 1) { // The element was empty. $XML_RPC_xh[$parser]['value'] = ''; } } $temp = new XML_RPC_Value($XML_RPC_xh[$parser]['value'], $XML_RPC_xh[$parser]['vt']); $cur_val = array_shift($XML_RPC_xh[$parser]['valuestack']); if (is_array($cur_val)) { if ($cur_val['members']==0) { $cur_val['value'][] = $temp; } else { $XML_RPC_xh[$parser]['value'] = $temp; } array_unshift($XML_RPC_xh[$parser]['valuestack'], $cur_val); } else { $XML_RPC_xh[$parser]['value'] = $temp; } break; case 'MEMBER': $XML_RPC_xh[$parser]['ac'] = ''; $XML_RPC_xh[$parser]['qt'] = 0; $cur_val = array_shift($XML_RPC_xh[$parser]['valuestack']); if (is_array($cur_val)) { if ($cur_val['members']==1) { $cur_val['value'][$cur_val['name']] = $XML_RPC_xh[$parser]['value']; } array_unshift($XML_RPC_xh[$parser]['valuestack'], $cur_val); } break; case 'DATA': $XML_RPC_xh[$parser]['ac'] = ''; $XML_RPC_xh[$parser]['qt'] = 0; break; case 'PARAM': $XML_RPC_xh[$parser]['params'][] = $XML_RPC_xh[$parser]['value']; break; case 'METHODNAME': case 'RPCMETHODNAME': $XML_RPC_xh[$parser]['method'] = preg_replace("@^[\n\r\t ]+@", '', $XML_RPC_xh[$parser]['ac']); break; } // if it's a valid type name, set the type if (isset($GLOBALS['XML_RPC_Types'][strtolower($name)])) { $XML_RPC_xh[$parser]['vt'] = strtolower($name); } } /** * Character data handler for the XML parser * * @return void */ function XML_RPC_cd($parser_resource, $data) { global $XML_RPC_xh, $XML_RPC_backslash; $parser = (int) $parser_resource; if ($XML_RPC_xh[$parser]['lv'] != 3) { // "lookforvalue==3" means that we've found an entire value // and should discard any further character data if ($XML_RPC_xh[$parser]['lv'] == 1) { // if we've found text and we're just in a then // turn quoting on, as this will be a string $XML_RPC_xh[$parser]['qt'] = 1; // and say we've found a value $XML_RPC_xh[$parser]['lv'] = 2; } // replace characters that eval would // do special things with if (!isset($XML_RPC_xh[$parser]['ac'])) { $XML_RPC_xh[$parser]['ac'] = ''; } $XML_RPC_xh[$parser]['ac'] .= $data; } } /** * The common methods and properties for all of the XML_RPC classes * * @category Web Services * @package XML_RPC * @author Edd Dumbill * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version Release: @package_version@ * @link http://pear.php.net/package/XML_RPC */ class XML_RPC_Base { /** * PEAR Error handling * * @return object PEAR_Error object */ function raiseError($msg, $code) { include_once 'PEAR.php'; if (is_object(@$this)) { return PEAR::raiseError(get_class($this) . ': ' . $msg, $code); } else { return PEAR::raiseError('XML_RPC: ' . $msg, $code); } } /** * Tell whether something is a PEAR_Error object * * @param mixed $value the item to check * * @return bool whether $value is a PEAR_Error object or not * * @access public */ function isError($value) { return is_object($value) && is_a($value, 'PEAR_Error'); } } /** * The methods and properties for submitting XML RPC requests * * @category Web Services * @package XML_RPC * @author Edd Dumbill * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version Release: @package_version@ * @link http://pear.php.net/package/XML_RPC */ class XML_RPC_Client extends XML_RPC_Base { /** * The path and name of the RPC server script you want the request to go to * @var string */ var $path = ''; /** * The name of the remote server to connect to * @var string */ var $server = ''; /** * The protocol to use in contacting the remote server * @var string */ var $protocol = 'http://'; /** * The port for connecting to the remote server * * The default is 80 for http:// connections * and 443 for https:// and ssl:// connections. * * @var integer */ var $port = 80; /** * A user name for accessing the RPC server * @var string * @see XML_RPC_Client::setCredentials() */ var $username = ''; /** * A password for accessing the RPC server * @var string * @see XML_RPC_Client::setCredentials() */ var $password = ''; /** * The name of the proxy server to use, if any * @var string */ var $proxy = ''; /** * The protocol to use in contacting the proxy server, if any * @var string */ var $proxy_protocol = 'http://'; /** * The port for connecting to the proxy server * * The default is 8080 for http:// connections * and 443 for https:// and ssl:// connections. * * @var integer */ var $proxy_port = 8080; /** * A user name for accessing the proxy server * @var string */ var $proxy_user = ''; /** * A password for accessing the proxy server * @var string */ var $proxy_pass = ''; /** * The error number, if any * @var integer */ var $errno = 0; /** * The error message, if any * @var string */ var $errstr = ''; /** * The current debug mode (1 = on, 0 = off) * @var integer */ var $debug = 0; /** * The HTTP headers for the current request. * @var string */ var $headers = ''; /** * Sets the object's properties * * @param string $path the path and name of the RPC server script * you want the request to go to * @param string $server the URL of the remote server to connect to. * If this parameter doesn't specify a * protocol and $port is 443, ssl:// is * assumed. * @param integer $port a port for connecting to the remote server. * Defaults to 80 for http:// connections and * 443 for https:// and ssl:// connections. * @param string $proxy the URL of the proxy server to use, if any. * If this parameter doesn't specify a * protocol and $port is 443, ssl:// is * assumed. * @param integer $proxy_port a port for connecting to the remote server. * Defaults to 8080 for http:// connections and * 443 for https:// and ssl:// connections. * @param string $proxy_user a user name for accessing the proxy server * @param string $proxy_pass a password for accessing the proxy server * * @return void */ function XML_RPC_Client($path, $server, $port = 0, $proxy = '', $proxy_port = 0, $proxy_user = '', $proxy_pass = '') { $this->path = $path; $this->proxy_user = $proxy_user; $this->proxy_pass = $proxy_pass; preg_match('@^(http://|https://|ssl://)?(.*)$@', $server, $match); if ($match[1] == '') { if ($port == 443) { $this->server = $match[2]; $this->protocol = 'ssl://'; $this->port = 443; } else { $this->server = $match[2]; if ($port) { $this->port = $port; } } } elseif ($match[1] == 'http://') { $this->server = $match[2]; if ($port) { $this->port = $port; } } else { $this->server = $match[2]; $this->protocol = 'ssl://'; if ($port) { $this->port = $port; } else { $this->port = 443; } } if ($proxy) { preg_match('@^(http://|https://|ssl://)?(.*)$@', $proxy, $match); if ($match[1] == '') { if ($proxy_port == 443) { $this->proxy = $match[2]; $this->proxy_protocol = 'ssl://'; $this->proxy_port = 443; } else { $this->proxy = $match[2]; if ($proxy_port) { $this->proxy_port = $proxy_port; } } } elseif ($match[1] == 'http://') { $this->proxy = $match[2]; if ($proxy_port) { $this->proxy_port = $proxy_port; } } else { $this->proxy = $match[2]; $this->proxy_protocol = 'ssl://'; if ($proxy_port) { $this->proxy_port = $proxy_port; } else { $this->proxy_port = 443; } } } } /** * Change the current debug mode * * @param int $in where 1 = on, 0 = off * * @return void */ function setDebug($in) { if ($in) { $this->debug = 1; } else { $this->debug = 0; } } /** * Sets whether strings that contain characters which may cause PHP's * SAX-based XML parser to break should be automatically base64 encoded * * This is is a workaround for systems that don't have PHP's mbstring * extension available. * * @param int $in where 1 = on, 0 = off * * @return void */ function setAutoBase64($in) { if ($in) { $GLOBALS['XML_RPC_auto_base64'] = true; } else { $GLOBALS['XML_RPC_auto_base64'] = false; } } /** * Set username and password properties for connecting to the RPC server * * @param string $u the user name * @param string $p the password * * @return void * * @see XML_RPC_Client::$username, XML_RPC_Client::$password */ function setCredentials($u, $p) { $this->username = $u; $this->password = $p; } /** * Transmit the RPC request via HTTP 1.0 protocol * * @param object $msg the XML_RPC_Message object * @param int $timeout how many seconds to wait for the request * * @return object an XML_RPC_Response object. 0 is returned if any * problems happen. * * @see XML_RPC_Message, XML_RPC_Client::XML_RPC_Client(), * XML_RPC_Client::setCredentials() */ function send($msg, $timeout = 0) { if (!is_object($msg) || !is_a($msg, 'XML_RPC_Message')) { $this->errstr = 'send()\'s $msg parameter must be an' . ' XML_RPC_Message object.'; $this->raiseError($this->errstr, XML_RPC_ERROR_PROGRAMMING); return 0; } $msg->debug = $this->debug; return $this->sendPayloadHTTP10($msg, $this->server, $this->port, $timeout, $this->username, $this->password); } /** * Transmit the RPC request via HTTP 1.0 protocol * * Requests should be sent using XML_RPC_Client send() rather than * calling this method directly. * * @param object $msg the XML_RPC_Message object * @param string $server the server to send the request to * @param int $port the server port send the request to * @param int $timeout how many seconds to wait for the request * before giving up * @param string $username a user name for accessing the RPC server * @param string $password a password for accessing the RPC server * * @return object an XML_RPC_Response object. 0 is returned if any * problems happen. * * @access protected * @see XML_RPC_Client::send() */ function sendPayloadHTTP10($msg, $server, $port, $timeout = 0, $username = '', $password = '') { // Pre-emptive BC hacks for fools calling sendPayloadHTTP10() directly if ($username != $this->username) { $this->setCredentials($username, $password); } // Only create the payload if it was not created previously if (empty($msg->payload)) { $msg->createPayload(); } $this->createHeaders($msg); $op = $this->headers . "\r\n\r\n"; $op .= $msg->payload; if ($this->debug) { print "\n
---SENT---\n";
            print $op;
            print "\n---END---
\n"; } /* * If we're using a proxy open a socket to the proxy server * instead to the xml-rpc server */ if ($this->proxy) { if ($this->proxy_protocol == 'http://') { $protocol = ''; } else { $protocol = $this->proxy_protocol; } if ($timeout > 0) { $fp = @fsockopen($protocol . $this->proxy, $this->proxy_port, $this->errno, $this->errstr, $timeout); } else { $fp = @fsockopen($protocol . $this->proxy, $this->proxy_port, $this->errno, $this->errstr); } } else { if ($this->protocol == 'http://') { $protocol = ''; } else { $protocol = $this->protocol; } if ($timeout > 0) { $fp = @fsockopen($protocol . $server, $port, $this->errno, $this->errstr, $timeout); } else { $fp = @fsockopen($protocol . $server, $port, $this->errno, $this->errstr); } } /* * Just raising the error without returning it is strange, * but keep it here for backwards compatibility. */ if (!$fp && $this->proxy) { $this->raiseError('Connection to proxy server ' . $this->proxy . ':' . $this->proxy_port . ' failed. ' . $this->errstr, XML_RPC_ERROR_CONNECTION_FAILED); return 0; } elseif (!$fp) { $this->raiseError('Connection to RPC server ' . $server . ':' . $port . ' failed. ' . $this->errstr, XML_RPC_ERROR_CONNECTION_FAILED); return 0; } if ($timeout) { /* * Using socket_set_timeout() because stream_set_timeout() * was introduced in 4.3.0, but we need to support 4.2.0. */ socket_set_timeout($fp, $timeout); } if (!fputs($fp, $op, strlen($op))) { $this->errstr = 'Write error'; return 0; } $resp = $msg->parseResponseFile($fp); $meta = socket_get_status($fp); if ($meta['timed_out']) { fclose($fp); $this->errstr = 'RPC server did not send response before timeout.'; $this->raiseError($this->errstr, XML_RPC_ERROR_CONNECTION_FAILED); return 0; } fclose($fp); return $resp; } /** * Determines the HTTP headers and puts it in the $headers property * * @param object $msg the XML_RPC_Message object * * @return boolean TRUE if okay, FALSE if the message payload isn't set. * * @access protected */ function createHeaders($msg) { if (empty($msg->payload)) { return false; } if ($this->proxy) { $this->headers = 'POST ' . $this->protocol . $this->server; if ($this->proxy_port) { $this->headers .= ':' . $this->port; } } else { $this->headers = 'POST '; } $this->headers .= $this->path. " HTTP/1.0\r\n"; $this->headers .= "User-Agent: PEAR XML_RPC\r\n"; $this->headers .= 'Host: ' . $this->server . "\r\n"; if ($this->proxy && $this->proxy_user) { $this->headers .= 'Proxy-Authorization: Basic ' . base64_encode("$this->proxy_user:$this->proxy_pass") . "\r\n"; } // thanks to Grant Rauscher for this if ($this->username) { $this->headers .= 'Authorization: Basic ' . base64_encode("$this->username:$this->password") . "\r\n"; } $this->headers .= "Content-Type: text/xml\r\n"; $this->headers .= 'Content-Length: ' . strlen($msg->payload); return true; } } /** * The methods and properties for interpreting responses to XML RPC requests * * @category Web Services * @package XML_RPC * @author Edd Dumbill * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version Release: @package_version@ * @link http://pear.php.net/package/XML_RPC */ class XML_RPC_Response extends XML_RPC_Base { var $xv; var $fn; var $fs; var $hdrs; /** * @return void */ function XML_RPC_Response($val, $fcode = 0, $fstr = '') { if ($fcode != 0) { $this->fn = $fcode; $this->fs = htmlspecialchars($fstr); } else { $this->xv = $val; } } /** * @return int the error code */ function faultCode() { if (isset($this->fn)) { return $this->fn; } else { return 0; } } /** * @return string the error string */ function faultString() { return $this->fs; } /** * @return mixed the value */ function value() { return $this->xv; } /** * @return string the error message in XML format */ function serialize() { $rs = "\n"; if ($this->fn) { $rs .= " faultCode " . $this->fn . " faultString " . $this->fs . " "; } else { $rs .= "\n\n" . $this->xv->serialize() . "\n"; } $rs .= "\n"; return $rs; } } /** * The methods and properties for composing XML RPC messages * * @category Web Services * @package XML_RPC * @author Edd Dumbill * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version Release: @package_version@ * @link http://pear.php.net/package/XML_RPC */ class XML_RPC_Message extends XML_RPC_Base { /** * Should the payload's content be passed through mb_convert_encoding()? * * @see XML_RPC_Message::setConvertPayloadEncoding() * @since Property available since Release 1.5.1 * @var boolean */ var $convert_payload_encoding = false; /** * The current debug mode (1 = on, 0 = off) * @var integer */ var $debug = 0; /** * The encoding to be used for outgoing messages * * Defaults to the value of $GLOBALS['XML_RPC_defencoding'] * * @var string * @see XML_RPC_Message::setSendEncoding(), * $GLOBALS['XML_RPC_defencoding'], XML_RPC_Message::xml_header() */ var $send_encoding = ''; /** * The method presently being evaluated * @var string */ var $methodname = ''; /** * @var array */ var $params = array(); /** * The XML message being generated * @var string */ var $payload = ''; /** * Should extra line breaks be removed from the payload? * @since Property available since Release 1.4.6 * @var boolean */ var $remove_extra_lines = true; /** * The XML response from the remote server * @since Property available since Release 1.4.6 * @var string */ var $response_payload = ''; /** * @return void */ function XML_RPC_Message($meth, $pars = 0) { $this->methodname = $meth; if (is_array($pars) && sizeof($pars) > 0) { for ($i = 0; $i < sizeof($pars); $i++) { $this->addParam($pars[$i]); } } } /** * Produces the XML declaration including the encoding attribute * * The encoding is determined by this class' $send_encoding * property. If the $send_encoding property is not set, use * $GLOBALS['XML_RPC_defencoding']. * * @return string the XML declaration and element * * @see XML_RPC_Message::setSendEncoding(), * XML_RPC_Message::$send_encoding, $GLOBALS['XML_RPC_defencoding'] */ function xml_header() { global $XML_RPC_defencoding; if (!$this->send_encoding) { $this->send_encoding = $XML_RPC_defencoding; } return 'send_encoding . '"?>' . "\n\n"; } /** * @return string the closing tag */ function xml_footer() { return "\n"; } /** * Fills the XML_RPC_Message::$payload property * * Part of the process makes sure all line endings are in DOS format * (CRLF), which is probably required by specifications. * * If XML_RPC_Message::setConvertPayloadEncoding() was set to true, * the payload gets passed through mb_convert_encoding() * to ensure the payload matches the encoding set in the * XML declaration. The encoding type can be manually set via * XML_RPC_Message::setSendEncoding(). * * @return void * * @uses XML_RPC_Message::xml_header(), XML_RPC_Message::xml_footer() * @see XML_RPC_Message::setSendEncoding(), $GLOBALS['XML_RPC_defencoding'], * XML_RPC_Message::setConvertPayloadEncoding() */ function createPayload() { $this->payload = $this->xml_header(); $this->payload .= '' . $this->methodname . "\n"; $this->payload .= "\n"; for ($i = 0; $i < sizeof($this->params); $i++) { $p = $this->params[$i]; $this->payload .= "\n" . $p->serialize() . "\n"; } $this->payload .= "\n"; $this->payload .= $this->xml_footer(); if ($this->remove_extra_lines) { $this->payload = preg_replace("@[\r\n]+@", "\r\n", $this->payload); } else { $this->payload = preg_replace("@\r\n|\n|\r|\n\r@", "\r\n", $this->payload); } if ($this->convert_payload_encoding) { $this->payload = mb_convert_encoding($this->payload, $this->send_encoding); } } /** * @return string the name of the method */ function method($meth = '') { if ($meth != '') { $this->methodname = $meth; } return $this->methodname; } /** * @return string the payload */ function serialize() { $this->createPayload(); return $this->payload; } /** * @return void */ function addParam($par) { $this->params[] = $par; } /** * Obtains an XML_RPC_Value object for the given parameter * * @param int $i the index number of the parameter to obtain * * @return object the XML_RPC_Value object. * If the parameter doesn't exist, an XML_RPC_Response object. * * @since Returns XML_RPC_Response object on error since Release 1.3.0 */ function getParam($i) { global $XML_RPC_err, $XML_RPC_str; if (isset($this->params[$i])) { return $this->params[$i]; } else { $this->raiseError('The submitted request did not contain this parameter', XML_RPC_ERROR_INCORRECT_PARAMS); return new XML_RPC_Response(0, $XML_RPC_err['incorrect_params'], $XML_RPC_str['incorrect_params']); } } /** * @return int the number of parameters */ function getNumParams() { return sizeof($this->params); } /** * Sets whether the payload's content gets passed through * mb_convert_encoding() * * Returns PEAR_ERROR object if mb_convert_encoding() isn't available. * * @param int $in where 1 = on, 0 = off * * @return void * * @see XML_RPC_Message::setSendEncoding() * @since Method available since Release 1.5.1 */ function setConvertPayloadEncoding($in) { if ($in && !function_exists('mb_convert_encoding')) { return $this->raiseError('mb_convert_encoding() is not available', XML_RPC_ERROR_PROGRAMMING); } $this->convert_payload_encoding = $in; } /** * Sets the XML declaration's encoding attribute * * @param string $type the encoding type (ISO-8859-1, UTF-8 or US-ASCII) * * @return void * * @see XML_RPC_Message::setConvertPayloadEncoding(), XML_RPC_Message::xml_header() * @since Method available since Release 1.2.0 */ function setSendEncoding($type) { $this->send_encoding = $type; } /** * Determine the XML's encoding via the encoding attribute * in the XML declaration * * If the encoding parameter is not set or is not ISO-8859-1, UTF-8 * or US-ASCII, $XML_RPC_defencoding will be returned. * * @param string $data the XML that will be parsed * * @return string the encoding to be used * * @link http://php.net/xml_parser_create * @since Method available since Release 1.2.0 */ function getEncoding($data) { global $XML_RPC_defencoding; if (preg_match('@<\?xml[^>]*\s*encoding\s*=\s*[\'"]([^"\']*)[\'"]@', $data, $match)) { $match[1] = trim(strtoupper($match[1])); switch ($match[1]) { case 'ISO-8859-1': case 'UTF-8': case 'US-ASCII': return $match[1]; break; default: return $XML_RPC_defencoding; } } else { return $XML_RPC_defencoding; } } /** * @return object a new XML_RPC_Response object */ function parseResponseFile($fp) { $ipd = ''; while ($data = @fread($fp, 8192)) { $ipd .= $data; } return $this->parseResponse($ipd); } /** * @return object a new XML_RPC_Response object */ function parseResponse($data = '') { global $XML_RPC_xh, $XML_RPC_err, $XML_RPC_str, $XML_RPC_defencoding; $encoding = $this->getEncoding($data); $parser_resource = xml_parser_create($encoding); $parser = (int) $parser_resource; $XML_RPC_xh = array(); $XML_RPC_xh[$parser] = array(); $XML_RPC_xh[$parser]['cm'] = 0; $XML_RPC_xh[$parser]['isf'] = 0; $XML_RPC_xh[$parser]['ac'] = ''; $XML_RPC_xh[$parser]['qt'] = ''; $XML_RPC_xh[$parser]['stack'] = array(); $XML_RPC_xh[$parser]['valuestack'] = array(); xml_parser_set_option($parser_resource, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($parser_resource, 'XML_RPC_se', 'XML_RPC_ee'); xml_set_character_data_handler($parser_resource, 'XML_RPC_cd'); $hdrfnd = 0; if ($this->debug) { print "\n
---GOT---\n";
            print isset($_SERVER['SERVER_PROTOCOL']) ? htmlspecialchars($data) : $data;
            print "\n---END---
\n"; } // See if response is a 200 or a 100 then a 200, else raise error. // But only do this if we're using the HTTP protocol. if (preg_match('@^HTTP@', $data) && !preg_match('@^HTTP/[0-9\.]+ 200 @', $data) && !preg_match('@^HTTP/[0-9\.]+ 10[0-9]([A-Z ]+)?[\r\n]+HTTP/[0-9\.]+ 200@', $data)) { $errstr = substr($data, 0, strpos($data, "\n") - 1); error_log('HTTP error, got response: ' . $errstr); $r = new XML_RPC_Response(0, $XML_RPC_err['http_error'], $XML_RPC_str['http_error'] . ' (' . $errstr . ')'); xml_parser_free($parser_resource); return $r; } // gotta get rid of headers here if (!$hdrfnd && ($brpos = strpos($data,"\r\n\r\n"))) { $XML_RPC_xh[$parser]['ha'] = substr($data, 0, $brpos); $data = substr($data, $brpos + 4); $hdrfnd = 1; } /* * be tolerant of junk after methodResponse * (e.g. javascript automatically inserted by free hosts) * thanks to Luca Mariano */ $data = substr($data, 0, strpos($data, "") + 17); $this->response_payload = $data; if (!xml_parse($parser_resource, $data, sizeof($data))) { // thanks to Peter Kocks if (xml_get_current_line_number($parser_resource) == 1) { $errstr = 'XML error at line 1, check URL'; } else { $errstr = sprintf('XML error: %s at line %d', xml_error_string(xml_get_error_code($parser_resource)), xml_get_current_line_number($parser_resource)); } error_log($errstr); $r = new XML_RPC_Response(0, $XML_RPC_err['invalid_return'], $XML_RPC_str['invalid_return']); xml_parser_free($parser_resource); return $r; } xml_parser_free($parser_resource); if ($this->debug) { print "\n
---PARSED---\n";
            var_dump($XML_RPC_xh[$parser]['value']);
            print "---END---
\n"; } if ($XML_RPC_xh[$parser]['isf'] > 1) { $r = new XML_RPC_Response(0, $XML_RPC_err['invalid_return'], $XML_RPC_str['invalid_return'].' '.$XML_RPC_xh[$parser]['isf_reason']); } elseif (!is_object($XML_RPC_xh[$parser]['value'])) { // then something odd has happened // and it's time to generate a client side error // indicating something odd went on $r = new XML_RPC_Response(0, $XML_RPC_err['invalid_return'], $XML_RPC_str['invalid_return']); } else { $v = $XML_RPC_xh[$parser]['value']; if ($XML_RPC_xh[$parser]['isf']) { $f = $v->structmem('faultCode'); $fs = $v->structmem('faultString'); $r = new XML_RPC_Response($v, $f->scalarval(), $fs->scalarval()); } else { $r = new XML_RPC_Response($v); } } $r->hdrs = preg_split("@\r?\n@", $XML_RPC_xh[$parser]['ha']); return $r; } } /** * The methods and properties that represent data in XML RPC format * * @category Web Services * @package XML_RPC * @author Edd Dumbill * @author Stig Bakken * @author Martin Jansen * @author Daniel Convissor * @copyright 1999-2001 Edd Dumbill, 2001-2010 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License * @version Release: @package_version@ * @link http://pear.php.net/package/XML_RPC */ class XML_RPC_Value extends XML_RPC_Base { var $me = array(); var $mytype = 0; /** * @return void */ function XML_RPC_Value($val = -1, $type = '') { $this->me = array(); $this->mytype = 0; if ($val != -1 || $type != '') { if ($type == '') { $type = 'string'; } if (!array_key_exists($type, $GLOBALS['XML_RPC_Types'])) { // XXX // need some way to report this error } elseif ($GLOBALS['XML_RPC_Types'][$type] == 1) { $this->addScalar($val, $type); } elseif ($GLOBALS['XML_RPC_Types'][$type] == 2) { $this->addArray($val); } elseif ($GLOBALS['XML_RPC_Types'][$type] == 3) { $this->addStruct($val); } } } /** * @return int returns 1 if successful or 0 if there are problems */ function addScalar($val, $type = 'string') { if ($this->mytype == 1) { $this->raiseError('Scalar can have only one value', XML_RPC_ERROR_INVALID_TYPE); return 0; } $typeof = $GLOBALS['XML_RPC_Types'][$type]; if ($typeof != 1) { $this->raiseError("Not a scalar type (${typeof})", XML_RPC_ERROR_INVALID_TYPE); return 0; } if ($type == $GLOBALS['XML_RPC_Boolean']) { if (strcasecmp($val, 'true') == 0 || $val == 1 || ($val == true && strcasecmp($val, 'false'))) { $val = 1; } else { $val = 0; } } if ($this->mytype == 2) { // we're adding to an array here $ar = $this->me['array']; $ar[] = new XML_RPC_Value($val, $type); $this->me['array'] = $ar; } else { // a scalar, so set the value and remember we're scalar $this->me[$type] = $val; $this->mytype = $typeof; } return 1; } /** * @return int returns 1 if successful or 0 if there are problems */ function addArray($vals) { if ($this->mytype != 0) { $this->raiseError( 'Already initialized as a [' . $this->kindOf() . ']', XML_RPC_ERROR_ALREADY_INITIALIZED); return 0; } $this->mytype = $GLOBALS['XML_RPC_Types']['array']; $this->me['array'] = $vals; return 1; } /** * @return int returns 1 if successful or 0 if there are problems */ function addStruct($vals) { if ($this->mytype != 0) { $this->raiseError( 'Already initialized as a [' . $this->kindOf() . ']', XML_RPC_ERROR_ALREADY_INITIALIZED); return 0; } $this->mytype = $GLOBALS['XML_RPC_Types']['struct']; $this->me['struct'] = $vals; return 1; } /** * @return void */ function dump($ar) { reset($ar); foreach ($ar as $key => $val) { echo "$key => $val
"; if ($key == 'array') { foreach ($val as $key2 => $val2) { echo "-- $key2 => $val2
"; } } } } /** * @return string the data type of the current value */ function kindOf() { switch ($this->mytype) { case 3: return 'struct'; case 2: return 'array'; case 1: return 'scalar'; default: return 'undef'; } } /** * @return string the data in XML format */ function serializedata($typ, $val) { $rs = ''; if (!array_key_exists($typ, $GLOBALS['XML_RPC_Types'])) { // XXX // need some way to report this error return; } switch ($GLOBALS['XML_RPC_Types'][$typ]) { case 3: // struct $rs .= "\n"; reset($val); foreach ($val as $key2 => $val2) { $rs .= "" . htmlspecialchars($key2) . "\n"; $rs .= $this->serializeval($val2); $rs .= "\n"; } $rs .= ''; break; case 2: // array $rs .= "\n\n"; foreach ($val as $value) { $rs .= $this->serializeval($value); } $rs .= "\n"; break; case 1: switch ($typ) { case $GLOBALS['XML_RPC_Base64']: $rs .= "<${typ}>" . base64_encode($val) . ""; break; case $GLOBALS['XML_RPC_Boolean']: $rs .= "<${typ}>" . ($val ? '1' : '0') . ""; break; case $GLOBALS['XML_RPC_String']: $rs .= "<${typ}>" . htmlspecialchars($val). ""; break; default: $rs .= "<${typ}>${val}"; } } return $rs; } /** * @return string the data in XML format */ function serialize() { return $this->serializeval($this); } /** * @return string the data in XML format */ function serializeval($o) { if (!is_object($o) || empty($o->me) || !is_array($o->me)) { return ''; } $ar = $o->me; reset($ar); list($typ, $val) = each($ar); return '' . $this->serializedata($typ, $val) . "\n"; } /** * @return mixed the contents of the element requested */ function structmem($m) { return $this->me['struct'][$m]; } /** * @return void */ function structreset() { reset($this->me['struct']); } /** * @return the key/value pair of the struct's current element */ function structeach() { return each($this->me['struct']); } /** * @return mixed the current value */ function getval() { // UNSTABLE reset($this->me); $b = current($this->me); // contributed by I Sofer, 2001-03-24 // add support for nested arrays to scalarval // i've created a new method here, so as to // preserve back compatibility if (is_array($b)) { foreach ($b as $id => $cont) { $b[$id] = $cont->scalarval(); } } // add support for structures directly encoding php objects if (is_object($b)) { $t = get_object_vars($b); foreach ($t as $id => $cont) { $t[$id] = $cont->scalarval(); } foreach ($t as $id => $cont) { $b->$id = $cont; } } // end contrib return $b; } /** * @return mixed the current element's scalar value. If the value is * not scalar, FALSE is returned. */ function scalarval() { reset($this->me); $v = current($this->me); if (!is_scalar($v)) { $v = false; } return $v; } /** * @return string */ function scalartyp() { reset($this->me); $a = key($this->me); if ($a == $GLOBALS['XML_RPC_I4']) { $a = $GLOBALS['XML_RPC_Int']; } return $a; } /** * @return mixed the struct's current element */ function arraymem($m) { return $this->me['array'][$m]; } /** * @return int the number of elements in the array */ function arraysize() { reset($this->me); list($a, $b) = each($this->me); return sizeof($b); } /** * Determines if the item submitted is an XML_RPC_Value object * * @param mixed $val the variable to be evaluated * * @return bool TRUE if the item is an XML_RPC_Value object * * @static * @since Method available since Release 1.3.0 */ function isValue($val) { return (strtolower(get_class($val)) == 'xml_rpc_value'); } } /** * Return an ISO8601 encoded string * * While timezones ought to be supported, the XML-RPC spec says: * * "Don't assume a timezone. It should be specified by the server in its * documentation what assumptions it makes about timezones." * * This routine always assumes localtime unless $utc is set to 1, in which * case UTC is assumed and an adjustment for locale is made when encoding. * * @return string the formatted date */ function XML_RPC_iso8601_encode($timet, $utc = 0) { if (!$utc) { $t = strftime('%Y%m%dT%H:%M:%S', $timet); } else { if (function_exists('gmstrftime')) { // gmstrftime doesn't exist in some versions // of PHP $t = gmstrftime('%Y%m%dT%H:%M:%S', $timet); } else { $t = strftime('%Y%m%dT%H:%M:%S', $timet - date('Z')); } } return $t; } /** * Convert a datetime string into a Unix timestamp * * While timezones ought to be supported, the XML-RPC spec says: * * "Don't assume a timezone. It should be specified by the server in its * documentation what assumptions it makes about timezones." * * This routine always assumes localtime unless $utc is set to 1, in which * case UTC is assumed and an adjustment for locale is made when encoding. * * @return int the unix timestamp of the date submitted */ function XML_RPC_iso8601_decode($idate, $utc = 0) { $t = 0; if (preg_match('@([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})@', $idate, $regs)) { if ($utc) { $t = gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); } else { $t = mktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); } } return $t; } /** * Converts an XML_RPC_Value object into native PHP types * * @param object $XML_RPC_val the XML_RPC_Value object to decode * * @return mixed the PHP values */ function XML_RPC_decode($XML_RPC_val) { $kind = $XML_RPC_val->kindOf(); if ($kind == 'scalar') { return $XML_RPC_val->scalarval(); } elseif ($kind == 'array') { $size = $XML_RPC_val->arraysize(); $arr = array(); for ($i = 0; $i < $size; $i++) { $arr[] = XML_RPC_decode($XML_RPC_val->arraymem($i)); } return $arr; } elseif ($kind == 'struct') { $XML_RPC_val->structreset(); $arr = array(); while (list($key, $value) = $XML_RPC_val->structeach()) { $arr[$key] = XML_RPC_decode($value); } return $arr; } } /** * Converts native PHP types into an XML_RPC_Value object * * @param mixed $php_val the PHP value or variable you want encoded * * @return object the XML_RPC_Value object */ function XML_RPC_encode($php_val) { $type = gettype($php_val); $XML_RPC_val = new XML_RPC_Value; switch ($type) { case 'array': if (empty($php_val)) { $XML_RPC_val->addArray($php_val); break; } $tmp = array_diff(array_keys($php_val), range(0, count($php_val)-1)); if (empty($tmp)) { $arr = array(); foreach ($php_val as $k => $v) { $arr[$k] = XML_RPC_encode($v); } $XML_RPC_val->addArray($arr); break; } // fall though if it's not an enumerated array case 'object': $arr = array(); foreach ($php_val as $k => $v) { $arr[$k] = XML_RPC_encode($v); } $XML_RPC_val->addStruct($arr); break; case 'integer': $XML_RPC_val->addScalar($php_val, $GLOBALS['XML_RPC_Int']); break; case 'double': $XML_RPC_val->addScalar($php_val, $GLOBALS['XML_RPC_Double']); break; case 'string': case 'NULL': if (preg_match('@^[0-9]{8}\T{1}[0-9]{2}\:[0-9]{2}\:[0-9]{2}$@', $php_val)) { $XML_RPC_val->addScalar($php_val, $GLOBALS['XML_RPC_DateTime']); } elseif ($GLOBALS['XML_RPC_auto_base64'] && preg_match("@[^ -~\t\r\n]@", $php_val)) { // Characters other than alpha-numeric, punctuation, SP, TAB, // LF and CR break the XML parser, encode value via Base 64. $XML_RPC_val->addScalar($php_val, $GLOBALS['XML_RPC_Base64']); } else { $XML_RPC_val->addScalar($php_val, $GLOBALS['XML_RPC_String']); } break; case 'boolean': // Add support for encoding/decoding of booleans, since they // are supported in PHP // by $XML_RPC_val->addScalar($php_val, $GLOBALS['XML_RPC_Boolean']); break; case 'unknown type': default: $XML_RPC_val = false; } return $XML_RPC_val; } /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * c-hanging-comment-ender-p: nil * End: */ ?> LibXML/.packlist000064400000007425152346270120007460 0ustar00/usr/local/lib64/perl5/XML/LibXML.pm /usr/local/lib64/perl5/XML/LibXML.pod /usr/local/lib64/perl5/XML/LibXML/Attr.pod /usr/local/lib64/perl5/XML/LibXML/AttributeHash.pm /usr/local/lib64/perl5/XML/LibXML/Boolean.pm /usr/local/lib64/perl5/XML/LibXML/CDATASection.pod /usr/local/lib64/perl5/XML/LibXML/Comment.pod /usr/local/lib64/perl5/XML/LibXML/Common.pm /usr/local/lib64/perl5/XML/LibXML/Common.pod /usr/local/lib64/perl5/XML/LibXML/DOM.pod /usr/local/lib64/perl5/XML/LibXML/Devel.pm /usr/local/lib64/perl5/XML/LibXML/Document.pod /usr/local/lib64/perl5/XML/LibXML/DocumentFragment.pod /usr/local/lib64/perl5/XML/LibXML/Dtd.pod /usr/local/lib64/perl5/XML/LibXML/Element.pod /usr/local/lib64/perl5/XML/LibXML/ErrNo.pm /usr/local/lib64/perl5/XML/LibXML/ErrNo.pod /usr/local/lib64/perl5/XML/LibXML/Error.pm /usr/local/lib64/perl5/XML/LibXML/Error.pod /usr/local/lib64/perl5/XML/LibXML/InputCallback.pod /usr/local/lib64/perl5/XML/LibXML/Literal.pm /usr/local/lib64/perl5/XML/LibXML/NamedNodeMap.pod /usr/local/lib64/perl5/XML/LibXML/Namespace.pod /usr/local/lib64/perl5/XML/LibXML/Node.pod /usr/local/lib64/perl5/XML/LibXML/NodeList.pm /usr/local/lib64/perl5/XML/LibXML/Number.pm /usr/local/lib64/perl5/XML/LibXML/PI.pod /usr/local/lib64/perl5/XML/LibXML/Parser.pod /usr/local/lib64/perl5/XML/LibXML/Pattern.pod /usr/local/lib64/perl5/XML/LibXML/Reader.pm /usr/local/lib64/perl5/XML/LibXML/Reader.pod /usr/local/lib64/perl5/XML/LibXML/RegExp.pod /usr/local/lib64/perl5/XML/LibXML/RelaxNG.pod /usr/local/lib64/perl5/XML/LibXML/SAX.pm /usr/local/lib64/perl5/XML/LibXML/SAX.pod /usr/local/lib64/perl5/XML/LibXML/SAX/Builder.pm /usr/local/lib64/perl5/XML/LibXML/SAX/Builder.pod /usr/local/lib64/perl5/XML/LibXML/SAX/Generator.pm /usr/local/lib64/perl5/XML/LibXML/SAX/Parser.pm /usr/local/lib64/perl5/XML/LibXML/Schema.pod /usr/local/lib64/perl5/XML/LibXML/Text.pod /usr/local/lib64/perl5/XML/LibXML/XPathContext.pm /usr/local/lib64/perl5/XML/LibXML/XPathContext.pod /usr/local/lib64/perl5/XML/LibXML/XPathExpression.pod /usr/local/lib64/perl5/auto/XML/LibXML/LibXML.so /usr/local/share/man/man3/XML::LibXML.3pm /usr/local/share/man/man3/XML::LibXML::Attr.3pm /usr/local/share/man/man3/XML::LibXML::AttributeHash.3pm /usr/local/share/man/man3/XML::LibXML::Boolean.3pm /usr/local/share/man/man3/XML::LibXML::CDATASection.3pm /usr/local/share/man/man3/XML::LibXML::Comment.3pm /usr/local/share/man/man3/XML::LibXML::Common.3pm /usr/local/share/man/man3/XML::LibXML::DOM.3pm /usr/local/share/man/man3/XML::LibXML::Devel.3pm /usr/local/share/man/man3/XML::LibXML::Document.3pm /usr/local/share/man/man3/XML::LibXML::DocumentFragment.3pm /usr/local/share/man/man3/XML::LibXML::Dtd.3pm /usr/local/share/man/man3/XML::LibXML::Element.3pm /usr/local/share/man/man3/XML::LibXML::ErrNo.3pm /usr/local/share/man/man3/XML::LibXML::Error.3pm /usr/local/share/man/man3/XML::LibXML::InputCallback.3pm /usr/local/share/man/man3/XML::LibXML::Literal.3pm /usr/local/share/man/man3/XML::LibXML::NamedNodeMap.3pm /usr/local/share/man/man3/XML::LibXML::Namespace.3pm /usr/local/share/man/man3/XML::LibXML::Node.3pm /usr/local/share/man/man3/XML::LibXML::NodeList.3pm /usr/local/share/man/man3/XML::LibXML::Number.3pm /usr/local/share/man/man3/XML::LibXML::PI.3pm /usr/local/share/man/man3/XML::LibXML::Parser.3pm /usr/local/share/man/man3/XML::LibXML::Pattern.3pm /usr/local/share/man/man3/XML::LibXML::Reader.3pm /usr/local/share/man/man3/XML::LibXML::RegExp.3pm /usr/local/share/man/man3/XML::LibXML::RelaxNG.3pm /usr/local/share/man/man3/XML::LibXML::SAX.3pm /usr/local/share/man/man3/XML::LibXML::SAX::Builder.3pm /usr/local/share/man/man3/XML::LibXML::SAX::Generator.3pm /usr/local/share/man/man3/XML::LibXML::Schema.3pm /usr/local/share/man/man3/XML::LibXML::Text.3pm /usr/local/share/man/man3/XML::LibXML::XPathContext.3pm /usr/local/share/man/man3/XML::LibXML::XPathExpression.3pm LibXML/LibXML.so000055500007710310152346270120007301 0ustar00ELF> @ȇ@8 @$# &&X &&PP888$$ Std PtdL)L)L)QtdRtd&&GNU|<32[C =E: (r  f )  T5 d  g`  =2"#"_ - )q362&A7$  O5q! nc7g  *F" z6" nD  "hC #H%!W  (auUPzD   gv { ! n2 Z"3(e   U .> p d! _ v:  P! 0   `1% of & P+   P t 0T @X 8   B1 xI ,   0 pN @) Љ ` ! P/  !  YY 0O `< , pR  @g ! " ;)  e" @)=  o 0= 0P8 ci  K a<& fC" 0#y  pH n    @a" R13! ! pL' p#* @j !x 9 i f m" `5!  X `a " "h Pw u#&   Њg {A&!  " %   ^ `|! `  H  p# ! F U# b<  u" .e  @DT! `aV pZ%/  " b -#X&    ) p  qe Pb CK ?#& 0 =   bZ?   P   | ^ Т @Yo  ; Ф  [.  Р   0J `u!  X ` >  0 `JC P 6 ",  @D! 0( Ќ]P 0k N" AMM = 0M  * ` /" p"__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizelibpthread.so.0XS_unpack_charPtrPtrPL_thr_keypthread_getspecificPerl_av_lenPerl_safesysmallocPerl_sv_2pv_flagsstrcpyPerl_av_fetchPerl_warn_nocontextXS_pack_charPtrPtrPerl_newSV_typePerl_newSVpvPerl_av_pushPerl_newSVrvPerl_sv_free2XS_release_charPtrPtrPerl_safesysfreePerl_sv_newmortalxmlMemUsedPerl_sv_setiv_mgPerl_croak_xs_usage__assert_failPerl_sv_2iv_flagsPmmFixOwnerPmmREFCNT_decPmmSvNodeExtPmmNodeToSvPerl_sv_2mortalxmlMallocAtomicLocboot_XML__LibXML__DevelPerl_xs_handshakePerl_newXS_deffilegetenvxmlMemStrdupxmlMemReallocxmlMemMallocxmlMemFreexmlGcMemSetupPerl_xs_boot_epilogLibXML_output_close_handlerLibXML_input_matchPerl_push_scopePerl_savetmpsPerl_call_pvPerl_croakPerl_pop_scopePerl_gv_add_by_typePerl_free_tmpsPerl_sv_2bool_flagsPerl_markstack_growPerl_stack_growPerl_croak_nocontextLibXML_input_openLibXML_error_handler_ctxstrlenPerl_sv_vcatpvfnPerl_newSVPerl_sv_vsetpvfn__stack_chk_failLibXML_input_readPerl_newSVivstrncpyLibXML_read_perlPerl_sv_isobjectPerl_call_methodPerl_hv_common_key_lenLibXML_load_external_entityEXTERNAL_ENTITY_LOADER_FUNCPerl_call_svxmlNewInputFromFilexmlAllocParserInputBufferxmlParserInputBufferPushxmlNewIOInputStreamxmlFreeParserInputBufferPROXY_NODE_REGISTRY_MUTEXPerl_sv_isaxmlXPathFreeCompExprxmlRegFreeRegexpxmlRegexpIsDeterministxmlRegexpExecxmlFreexmlFreePatternxmlStrdupxmlParseCharEncodingxmlPatternMatchPerl_sv_setpvPerl_mg_setxmlTextReaderReadStatexmlTextReaderClosePerl_get_hv__snprintf_chkxmlFreeTextReaderxmlTextReaderCurrentDocPmmNewNodexmlTextReaderSetSchemaxmlTextReaderSchemaValidatexmlTextReaderRelaxNGSetSchemaxmlTextReaderRelaxNGValidatexmlTextReaderPreservePatternPL_memory_wrapPerl_mg_getxmlTextReaderGetParserPropxmlTextReaderCurrentNodePmmCloneNodexmlSetTreeDocPmmNewFragmentxmlAddChildxmlGetNodePathxmlTextReaderStandalonexmlTextReaderSetParserPropxmlTextReaderQuoteCharPerl_newSVpvf_nocontextxmlTextReaderNodeTypexmlTextReaderDepthxmlTextReaderConstNamexmlTextReaderConstNamespaceUrixmlTextReaderConstLocalNamexmlTextReaderMoveToNextAttributexmlTextReaderMoveToFirstAttributexmlTextReaderMoveToElementxmlTextReaderMoveToAttributeNsxmlTextReaderMoveToAttributeNoxmlTextReaderMoveToAttributexmlTextReaderLookupNamespacexmlTextReaderIsValidxmlTextReaderIsNamespaceDeclxmlTextReaderIsEmptyElementxmlTextReaderIsDefaultxmlTextReaderHasAttributesxmlTextReaderConstValuexmlTextReaderHasValuexmlTextReaderGetParserLineNumberxmlTextReaderGetParserColumnNumberxmlTextReaderGetAttributeNsxmlTextReaderGetAttributeNoxmlTextReaderGetAttributexmlTextReaderConstXmlVersionxmlTextReaderConstXmlLangxmlTextReaderConstPrefixxmlTextReaderConstEncodingxmlTextReaderByteConsumedxmlTextReaderConstBaseUrixmlTextReaderAttributeCountxmlReaderWalkerPerl_sv_setref_pvxmlReaderForFdxmlReaderForDocxmlReaderForFilexmlRegisterDefaultInputCallbacksLibXML_input_closexmlRegisterInputCallbacksxmlCleanupInputCallbacksnodeSv2CxmlStrlenxmlStrcmpxmlCopyNamespacexmlDocGetRootElementPerl_newSVsvxmlMallocxmlXPathNewContextperlDocumentFunctionxmlXPathRegisterFuncxmlSchemaFreexmlRelaxNGFreexmlStrEqualxmlStrcatxmlFreeNsxmlNewNsxmlIsIDxmlSearchNsxmlSetNsxmlSearchNsByHrefxmlBufferCreatexmlBufferAdddomAttrSerializeContentxmlBufferLengthxmlBufferContentxmlBufferFreenodeC2SvxmlNewPropxmlNewDocFragmentxmlNewCDataBlockxmlNewCommentdomGetNodeValuexmlUTF8StrsubxmlUTF8StrlendomSetNodeValuexmlTextConcatxmlNewTextxmlNewDocNodexmlSplitQName2xmlEncodeEntitiesReentrantxmlNewChildxmlNodeAddContentxmlUnlinkNodedomImportNodexmlFreeDtdxmlHasNsPropxmlReconciliateNsxmlReplaceNodexmlFreePropxmlGetPropxmlGetNsPropdomGetAttrNodexmlGetNoNsPropdomRemoveNsRefsxmlNewNodexmlGetLineNoxmlXPathCastNodeToNumberPerl_sv_setnv_mgxmlXPathCastNodeToStringPerl_get_sv__xmlSaveNoEmptyTags__xmlIndentTreeOutputxmlNodeDumpxmlNodeSetBasexmlNodeGetBasedomAddNodeToListPmmFixOwnerNodexmlFreeNodedomNodeNormalizePerl_block_gimmexmlIsBlankNodexmlNodeSetNamedomNamePmmRegistryREFCNT_decxmlXPathOrderDocElemsxmlGetIDxmlCopyDocxmlSetDocCompressModexmlGetDocCompressModexmlGetIntSubsetxmlAddPrevSiblingxmlDocSetRootElementxmlNewPIxmlNewReferencexmlNewDocCommentxmlNewDocTextxmlNewDtdxmlCreateIntSubsetxmlNewDocxmlDocDumpFormatMemoryPerl_newSVpvnxmlDocDumpMemoryPmmContextREFCNT_decPmmFreeHashTablexmlHashCreatexmlLoadCatalogPmmNodeToGdomeSvxmlCleanupParser__xmlParserVersionPmmDumpRegistryPmmProxyNodeRegistrySizePmmCloneProxyNodesLibXML_flat_handlerxmlSetGenericErrorFuncLibXML_struct_error_handlerxmlSetStructuredErrorFuncxmlFindCharEncodingHandlerxmlBufferCCatxmlCharEncOutFuncxmlCharEncCloseFuncxmlCharStrndupxmlGetCharEncodingHandlerxmlStrndupxmlBufferCreateStaticxmlCharEncInFuncxmlXPathCompilexmlRegexpCompilexmlTextReaderReadxmlTextReaderPreservexmlTextReaderExpandxmlTextReaderReadOuterXmlxmlTextReaderReadInnerXmlxmlTextReaderReadAttributeValuexmlTextReaderNextxmlTextReaderNextSiblingPerl_newRV_noincxmlSchemaNewValidCtxtxmlSchemaSetValidErrorsxmlSchemaValidateOneElementxmlSchemaFreeValidCtxtxmlSchemaValidateDocdomClearPSVIxmlSchemaNewMemParserCtxtxmlSchemaSetParserErrorsxmlSchemaParsexmlSchemaFreeParserCtxtxmlSetExternalEntityLoaderxmlGetExternalEntityLoaderxmlNoNetExternalEntityLoaderxmlSchemaNewParserCtxtxmlRelaxNGNewValidCtxtxmlRelaxNGValidateDocxmlRelaxNGFreeValidCtxtxmlRelaxNGNewDocParserCtxtxmlRelaxNGParsexmlRelaxNGFreeParserCtxtxmlRelaxNGNewMemParserCtxtxmlRelaxNGNewParserCtxtxmlIOParseDTDxmlParseDTDdomXPathSelectPmmNodeTypeNamexmlXPathFreeNodeSetdomXPathCompSelectdomXPathFinddomXPathCompFindPerl_newSVnvxmlXPathFreeObjecthtmlDocDumpMemoryxmlSaveFormatFilexmlSaveFilexmlRegisterDefaultOutputCallbacksLibXML_output_write_handlerxmlOutputBufferCreateIOxmlSaveFormatFileToxmlGetNsListxmlHashLookupdomXPathFindCtxtdomXPathCompFindCtxtxmlXPathNsLookupxmlXPathRegisterNsxmlC14NDocDumpMemoryxmlXPathEvalxmlXPathFreeContextdomAppendChilddomInsertAfterdomInsertBeforexmlAddSiblingxmlCopyNodedomRemoveChilddomIsParentdomReplaceChildxmlValidateDtdxmlValidateDocumentxmlPatterncompileLibXML_close_perlxmlXPathNewFloatxmlXPathNewCStringPerl_sv_derived_fromPerl_sv_2nv_flagsxmlXPathNewNodeSetxmlXPathNodeSetAddxmlXPathNewBooleanPerl_sv_catpvPerl_sv_catsv_flagsxmlXPathRegisterFuncNSxmlXPathRegisterVariableLookupvaluePopxmlXPathCastToStringvaluePushxmlReaderForIOLibXML_struct_error_callbackPerl_sv_setsv_flagsPerl_sv_vcatpvfLibXML_get_reader_error_dataxmlTextReaderGetErrorHandlerLibXML_init_parserxmlCtxtUseOptionsxmlKeepBlanksDefaultLibXML_cleanup_parserPmmSvContextxmlParseChunkPmmSAXCloseContextxmlFreeParserCtxtxmlFreeDocxmlCreatePushParserCtxtPmmContextSvPmmSAXInitContextxmlXIncludeProcessFlagsxmlCreateMemoryParserCtxtPSaxGetHandlerxmlParseBalancedChunkMemorydomReadWellBalancedStringhtmlReadIOhtmlReadFilehtmlReadDocxmlCreateFileParserCtxtxmlParseDocument__errno_locationstrerrorLibXML_test_node_namexmlValidateNamexmlSetNsPropxmlSetPropxmlNewDocPropxmlStrchrboot_XML__LibXMLxmlCheckVersionxmlInitParserPmmSAXInitializexmlInitializeCatalogdomClearPSVIInListdomAddNsDefdomRemoveNsDef_domAddNsChain_domReconcileNsAttr_domReconcileNsxmlFreeNsListxmlFreeNodeListxmlSetListDocdomTestHierarchydomTestDocumentdomUnlinkNodexmlDocCopyNodexmlCopyDtd__xmlGenericError__xmlGenericErrorContextdomReplaceNodexmlNodeSetContentdomGetElementsByTagNamexmlXPathNodeSetCreatedomGetElementsByTagNameNSdomNewNsdomSetAttributeNodexmlAttrSerializeTxtContentdomNodeNormalizeListPmmRegistryHashCopierPmmRegistryDumpHashScannerxmlHashSizexmlHashFreexmlHashScanPmmProxyNodeRegistryPtrPmmRegistryNamePmmNewLocalProxyNodePmmRegisterProxyNodexmlHashAddEntryPmmUnregisterProxyNodexmlHashRemoveEntryPmmRegistryLookupPmmRegistryREFCNT_incxmlHashCopyPmmFreeNodexmlCopyPropPmmSvOwnerPmmSetSvOwnerPmmFixOwnerListPmmNewContextPmmFastEncodeStringPmmFastDecodeStringPmmEncodeStringPmmSaxWarningPmmSaxErrorxmlCtxtGetLastErrorPmmSaxFatalError_C2SvPerl_sv_setpvn_C2Sv_lenPL_hash_seedCBufferChunkNewCBufferNewCBufferPurgeCBufferFreeCBufferLengthCBufferAppendmemcpyCBufferCharactersstderrfwriteabortPmmGetNsMappingPSaxStartPrefixPSaxEndPrefixPmmExtendNsStackxmlSplitQNamePmmNarrowNsStackPmmAddNamespacePmmGenElementSVPmmGenNsNamexmlStrncatPmmGenAttributeHashSVxmlStrncmpPmmGenCharDataSVPmmGenPISVPmmGenDTDSVPmmGenLocatorPmmUpdateLocatorPSaxStartDocumentPSaxExternalSubsetPSaxCharactersDispatchPSaxCharactersPSaxCharactersFlushPSaxSetDocumentLocatorPerl_newRVPSaxEndDocumentPSaxStartElementPSaxEndElementPSaxCommentPSaxCDATABlockPSaxProcessingInstructionxmlXPathStringFunctionxmlBuildURIxmlParseFilexmlXPathNodeSetMergexmlXPathObjectCopyxmlXPathCompiledEvalToBooleanxmlXPathCompiledEvaldomXPathSelectCtxtlibxml2.so.2libz.so.1liblzma.so.5libm.so.6libdl.so.2libperl.so.5.26libc.so.6_edata__bss_start_endGLIBC_2.14GLIBC_2.3.4GLIBC_2.4GLIBC_2.2.5LIBXML2_2.5.9LIBXML2_2.6.17LIBXML2_2.6.27LIBXML2_2.5.6LIBXML2_2.6.6LIBXML2_2.6.3LIBXML2_2.6.14LIBXML2_2.6.20LIBXML2_2.5.4LIBXML2_2.5.2LIBXML2_2.6.18LIBXML2_2.6.15LIBXML2_2.6.0LIBXML2_2.5.8LIBXML2_2.5.0LIBXML2_2.5.7LIBXML2_2.4.30                 #P#ti #ii #ui #U ui #h#$ǫL$׫L$,$:$H$īLV$ЫL e$ t$ $ȫL $ūL $$$$$L$&&&&&o&&&&1&&&&&d&p&&t&&& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&-&4&l&?&&&W&g&&&&&&&&&&&& & & & & &&&& &(&0&8&@&H&P&X&`&h&p&x&&&&&&& &!&"&#&$&%&j&&&&'&(&)&*&+&, &-(&.0&8&/@&0H&2P&mX&3`&4h&5p&x&6&u&7&8&9&&:&;&<&&=&>&?&&&@&y&A&B&C&D &E(&F0&G8&H@&sH&P&IX&J`&Kh&Lp&Mx&N&&O&P&Q&R&S&T&&&U&V&W&X&Y&Z&&[&\&]&^ &_(&`0&a8&b@&cH&P&eX&f`&gh&hp&ix&j&k&l&m&n&o&q&&r&s&t&&u&v&w&&&&x&&y &(&z0&8&{@&|H&}P&~X&`&h&p&x&&&&&&&&{&&&&&&&&&&&&& &(&w0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&&&&&x&&&&&|& &(&0&8&p@&H&iP&X&`&h&p&x&&}&&&&&&&&&&&&&&&&&&k& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&&&&&&&&&&z& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&&&&&&&&&&& &(&0&8&@&H&P&X&`&h&p&x&n&&&&&&&&&&&&&& && & & & & &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&& &&&!&"&&#&$&& &%(&v0&&8&@&'H&(P&X&)`&*h&+p&,x&.&/&&0&1&2&3&5&6&7&8&9&l&&:&&;&<&=&>&@ &A(&B0&C8&D@&EH&P&FX&G`&Hh&p&Ix&J&K&L&M&q&N&O&&P&Q&R&S&&T&&U&V&X&Y&Z&[ &\(&]0&^8&_@&`H&aP&X&b`&h&cp&dx&&e&f&r&hHHA>&HtH5/&%/&hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhh%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D%} &D%u &D%m &D%e &D%] &D%U &D%M &D%E &D%= &D%5 &D%- &D%% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D%} &D%u &D%m &D%e &D%] &D%U &D%M &D%E &D%= &D%5 &D%- &D%% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D%} &D%u &D%m &D%e &D%] &D%U &D%M &D%E &D%= &D%5 &D%- &D%% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D%} &D%u &D%m &D%e &D%] &D%U &D%M &D%E &D%= &D%5 &D%- &D%% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D% &D%} &D%u &D%m &D%e &D%] &D%U &D%M &D%E &D%= &D%5 &D%- &D%% &D% &D% &D% &D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&D%u&D%m&D%e&D%]&D%U&D%M&D%E&D%=&D%5&D%-&D%%&D%&D%&D% &D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%&D%}&DH% fDH=&H&H9tH&Ht H=&H5&H)HHH?HHtH&HtfD=U&u+UH=r&Ht H=N%d-&]wAWAVAUATUSH(G <LgA|$ ,H-&}ULH D$ x1HcHIHM@HO|HxHcIHI}A % =I6}HD$Ht$HT$Ht$HHHI?9\$ |I}Lc1LLHwIHtOH@ JH=y19\$ }HcIDE1H(L[]A\A]A^A_KDwfH HL$HL$HIHIHpDH=ɗt4H=1aff.@AVIAUATL%&UHSA<$ H1H]IHtBDA<$HcH1HA<$HJHLHH]HuA<$*1LHA<$HHtSvS[]MnA\A]A^HHV@UHSHH?HtHHH;HuHH[]AWAVAUIATUSHH&;};H(s;HPxHJHHxLc2]H@JH)H;Ef;;H@@#&HHf;McLc ;H@NtE %AtyEttU "LmU In;;HhJTHH[]A\A]A^A_fD;HhH@H@HlSfD;aLHHH5CLH vH5H=AWAVAUIATUSHH4&;;H(;HPxHJHHxLc2H@JH)Ho;EfMcN,;H@J@ % =;H@J,~HHIċ;d;H@@#OHHI$;Lc`5;H@Nt(E %AEE "LeE In;;HhIL(H[]A\A]A^A_D;HhH@H@HlRfDH@JHL` ;iLHHnH5?LH pGH5H=AVAUIATUSH:%;;H(;HPxHJHHxLc2H@JH)H;EfIcL$;H@H@ % =tT;H@H,HHH;@j;Hh_JT%H[]A\A]A^fDCH@HHH@ H5>LAWAVIAUATUSHH4%;;L ;HPxHJHHx*HcH@HI)IA;DmMcN$;H@J@ % =w;H@N,{LHIŋ;Hc[;H@H@ % =9;H@H,*HHzIƋ;;H@@#HHI6I}4;Lc;H@Nt E %AEU "LmU In;;HhvIL H[]A\A]A^A_Ð[;HhPH@H@HlNfD3H@HHLp H@JHLh ;LHHRH55LH (aH5H=@AWAVAUIATUSHH%;;H(;HPxHJHHxLc2mH@JH)Hw;EfMcGN,;H@J@ % = ;H@J,HH^Iċ;;H@@#HHI<$;Lc;H@Nt(E %AEU "LeU In;h;Hh]IL(H[]A\A]A^A_;;Hh0H@H@HlJfDH@JHL` ;LHHkH5u:LH ȏ0H5H=@AWAVAUIATUSHH%;;H(;HPxHJHHxLc2mH@JH)H ;EfMcG1N,H@J<;I&;H@@#HHŋ;;H@Nd(E %AtwEtrE "LuE Il$;;HhIL(H[]A\A]A^A_fD;HhxH@H@Hl`fD;YLHH H5s;LH H5}H=ff.AWAVAUIATUSHH$%;;H(;HPxHJHHxD2IcH@HH)HE9;EfMcN,;H@J@ % =w;H@N;H@;Lu1LHH@S;LE1LHH@#;L1LHH@;HH@H8HH@H;@ %= ;HH@H8,HH@;L r1LHE;]A}1LHs͐AWIAVAAUIATUSHH%;׸;и;H(ƸHN;跸H;訸;HHxLaL`x蕸L;x;聸HH+HHHA$;hH@ H)HgL};HHIcH;I3LHؽ;HEH(; H5qH;AH(A;;HH@H82ŷHH@H8 ;詷;HH@H8*荷HH@H;@ n;HH@H8RHH@H;@ u;4;HH@H8}HH@H;x ;HH@H8ݶHH@H;@ 辶;HH@H8g袶HH@HH8;胶;HH@H8$gHH@HHHx;D1H1+;HH@H8HH@H;@ :;HH@H8ѵHH@;L 輵1LH菷\LeHmE u_<t[ tK1;zL ;p;L`PeL;`X;THH[]A\A]A^A_% =u,LuMtLKHHWAE;1HHWIf۴;Lʹ1LHpH@;詴HѻA@蓴;L腴1LH(H@c;LU1LHH@3;L%1LHH@;HH@H8tHH@H@ %= ;賳;HH@H8藳HH@H@ t?;|;HH@H8`HH@HHHx ;=HH@H8;!HH@H@ b;;HH@H8{HH@HfHf.B(E @HLLZ$D蛲;L荲1LH0H@jk;L]1LHH@C;;L-1LHH@; HIqf;HHH覿HwfDñ;HH@H8觱HH@;L 蒱LHbDs;Le1LHH@sC;L51LHH@;L1LHH@);Lհ1LHxH@3;豰;HH@H8蕰HH@HHHx;r;HH@H8VHH@HH@80f;);L1LHH@D;L1LHH@;˯;L软1LH`H@R蛯;L药1LH0H@k;L]1LHH@lB;L41LHH@H=h1AWAVIAUATLcUSH(H!%Ht$;dH%(HD$1ծ;ή;H(ĮLHi;I诮LH$;H$虮H!;芮H;{;HHxLyLxxhL;K;THH+HHHA;tYHHtEHRH% =H[]A\@ <t t[1]A\Dt+t HHz utHff.B(ztDA<$'1HHtH]C gf.A<$H޺HG[]A\fHkHS:0'YDA<$跢AWIAVAUIATUHSH(L%^%HdH%(HD$1M4$HH HHDMLDMAF u4IH?H@H)H:%;;;L0Hz;H;ԡ;HHxHQHPxHT$輡HT$H;;HT$螡LHT$H+HHH;股H@ L)H*;k1HInH;HD$NHt$H;IF6H@ H)H;H1LH讷;ILH試;HEH(;I,$H H0;AƠH(Ex ;賠;HH@H8T藠HH@H8;;{;HH@H8L_HH@H;@ E@;HH@H8y$HH@H;@ u;;HH@H8HH@H;x ˟;HH@H84诟HH@H;@ 萟;HH@H8tHH@HH8;U;HH@H89HH@HHHx-;1H1f.< @HLUHL$dH3 %(HH([]A\A]A^A_fM=DHɿ%Lb;莞HLE1jA HH8IXZMzM4$Mmt;tIHz ?Iff.@('fH)%;1LHş˝;HH@H8话HH@H;@ B荝;HH@H8&qHH@;L \1LH/*LeLmAD$ % =I$Mt$HhHl$HHcH91舷IHLH该~;ϜL(;Ŝ;HhP躜H;hXT;譜HE1LL舝;艜HT$LHHl$IO;YH聣C;L51LHدH@;L1LH訯H@HIF80DH%;躛諛;L蝛1LH@H@n{;Lm1LHH@K;HH@H8/HH@H@ t?;;HH@H8HH@HHHx ;՚HH@H8O;蹚HH@H@ Z;蚚;HH@H8~HH@HfHf.B(E@K;HH@H8/HH@H@ %= ;7;L1LH萭H@˙;L轙1LH`H@>蛙;L荙1LH0H@;iHHH&H(fD;ALLHIfD;HH_f;HH@H8ߘHH@;L ʘLH蚚fD諘;L蝘1LH@H@c{;Lm1LHH@)K;L=1LHH@;L 1LH谫H@;;HH@H8͗HH@HHHxj;誗;HH@H8莗HH@HH@80";j;L\1LHH@A;L31LH֪H@I;L 1LH譪H@;L1LH脪H@ Ɩ;L踖1LH[H@/蝖;L菖1LH2H@蔨H=1H=1L`H=P1H=P1@AVIAUATUSHJ%;;L ;HPxHJHHx*HcLH@HH)HH ;DmIMcHc軕;H@N,謕;H@H@ % =芕;H@H,{HHˬMmAE % =uUIEH@ Hhht$ҍTPl; L []A\A]A^@@l;LHI۔H@HHh _H5pLyH=l1[H=\OOff.@AVIAUATUSH%;s;L i;HPxHJHHx*THcLH@HH)HH;DmIMcHc;H@N, ;H@H@ % =;H@H,ۓHH+MmAE % =u5IEH@ Htz|X9hh|Shl;蔓L []A\A]A^;yLHɪ[H@HHh H=$N1H5 LH=MҧfAVAUIATUSH:%;;H(;HPxHJHHxLc2H@JH)HuP;EfMc;N4I诒I8H@N,;虒;Hh莒LH([]A\A]A^H5]L0AUATIUSHH-%}P}HE}HPxHJHHxD*.IcH@HH)HCvH5Lũ}}H=1蒦}AMcӑ}H@J@ % =t'贑}H@J褑HH荑ff.AUATIUSHH-%}`}HU}HPxHJHHxD*>IcH@HH)HCvH5>Lը} }H=21袥}AMc}H@J@ % =t'Đ}H@J贐HH蝐ff.AVAUIATUH-%S}r}Hg}HPxHJHHxLc2PH@JH)Hu:}H%EfMcH }HXJTH[]A\A]A^H5L货@AVAUIATUSH %;ӏ;L ɏ;HPxHJHHxLc2賏H@JI)IAd;AnHc茏;L,H@L$uHL蚣t;_H@HH@x tUH=FJ1ߔ;8;I.I8H@L$;;Hh LH([]A\A]A^fD;;H@L$H/LHЛ{;;H@HH@@ % =tT蟎;H@HHh茎HHܥH;m;HhbJT-H[]A\A]A^ÐKH@HH@HHx H5LAVAUIATUSH:%;;L ;HPxHJHHxLc2H@JI)IAd;AnHc輍;L,H@L$襍HLʡt;菍H@HH@x tUH=H1;h;I^I8H@L$;H;Hh=LH([]A\A]A^fD;!;H@L$H|LH{;;H@HH@@ % =tTό;H@HHh輌HH H贑;蝌;Hh蒌JT-H[]A\A]A^Ð{H@HH@HHx H5DLAWAVAUIATUSHHd%;-;L #;HPxHJHHxLc2 H@JI)IA;An;H@@#ԋH蜚Iċ;HcL,跋;H@L4訋HL͟t;蒋H@HH@x H=G1;g;I]I8H@L$;G;HhAL$ Il$MfH@HH@HHx fD;HLH裤H5L蒡fAWAVAUIATUSHH%;證;L 裉;HPxHJHHxLc2草H@JI)IA;Ani;H@@#THIċ;HcL,7;H@L4(HLMt;H@HH@x H=D1莎;;I݈I8H@L$;Lj;Hh輈LH(H[]A\A]A^A_蛈;L`萈H@H@M$6;q;H@HH@@ % =t|O;H@HHh<HH茟;Hch!;H@Nt(AD$ %At?Et:AL$ Il$Mf ӇH@HH@HH@ fD;豇HLHcH5LRfAWAVAUIATUSHH%;m;L c;HPxHJHHxLc2MH@JI)IA;An);H@@#HܕIċ;HcL,;H@L4HL t;҆H@HH@x H=B1N;视;I蝆I8H@L$;臆;Hh|LH(H[]A\A]A^A_[;L`PH@H@M$6;1;H@HH@@ % =t|;H@HHhHHL;HchD;H@Nt(AD$ %At?Et:AL$ Il$Mf 蓅H@HH@HH@ fD;qHLH#H5?LfAWAVAUIATUSHHd%;-;L #;HPxHJHHxLc2 H@JI)IA;An;H@@#ԄH蜓Iċ;HcL,跄;H@L4訄HL͘t;蒄H@HH@x H=@1;g;I]I8H@L$;G;Hh1·;';II8H@L$;;HhLH(H[]A\A]A^A_ہ;L`ЁH@H@M$6;豁;H@HH@@ % =t|菁;H@HHh|HH̘;Hch a;H@Nt(AD$ %A@t?Et:AL$ Il$Mf H@HH@HH@ fD;HLH裛H5L蒘fAWAVAUIATUSHH%;譀;L 裀;HPxHJHHxLc2荀H@JI)IA;Ani;H@@#THIċ;HcL,7;H@L4(HLMt;H@HH@x H==1莅;;II8H@L$;;HhLH(H[]A\A]A^A_;L`H@H@M$6;q;H@HH@@ % =t|O;H@HHh<HH茖;Hch!;H@Nt(AD$ %At?Et:AL$ Il$Mf ~H@HH@HH@ fD;~HLHcH5LRfAWAVAUIATUSHH%;m~;L c~;HPxHJHHxLc2M~H@JI)IA;An)~;H@@#~H܌Iċ;HcL,};H@L4}HL t;}H@HH@x H= ;1N;};I}I8H@L$;};Hh|}LH(H[]A\A]A^A_[};L`P}H@H@M$6;1};H@HH@@ % =t|};H@HHh|HHL;Hc(|;H@Nt(AD$ %A|t@Et;AL$ Il$Mf@|H@HH@HH@ fD;q|HLH#H5?LfAWAVAUIATUSHHd%;-|;H(#|;HPxHJHHxLc2 |H@JH)H[;EfMc{;N,H@N${;H@@#{H胊HMd$AD$ % =I$H@ H;Lc`hz{;H@Nt(E %A[{EM LeIn;/{;Hh${LH(H[]A\A]A^A_{;HhzH@H@Hl6fD;zLH)6@;zLHHklH=W5JH5xLKff.AWAVAUIATUSHH%;]z;H(Sz;HPxHJHHxLc2=zH@JH)H[;EfMcz;N,H@N$z;H@@#yH賈HMd$AD$ % =I$H@ H;Lc`ly;H@Nt(E %AyEM LeIn;_y;HhTyLH(H[]A\A]A^A_3y;Hh(yH@H@Hl6fD; yLHY6@;xLHH蛓lH=3zH5L{ff.AWAVAUIATUSHHę%;x;H(x;HPxHJHHxLc2mxH@JH)HO;EfMcGxN,H@JHhE % =HEL` ;x;H@@#wHĆHŋ;Mcd$w;H@Nt(E %AwEM LeIn;w;HhwLH(H[]A\A]A^A_f.kw;Hh`wH@H@Hl]fD;AwHH葎If;wLHHˑaH5L跎AVIAUATUSH %;v;L v;HPxHJHHx*vHcH@HI)IA_;DmHcvH@HHhE % =HEL` ;Yv;H@@#DvH HM1H=3Mc{;v;H@NdE %AuEM HEIl$;u;HhuJTH[]A\A]A^@u;HhuH@H@HlMfD;yuHHɌI;Yu1HH sH=1H5Lf.AWAVAUIATUSHH4%;t;H(t;HPxHJHHxLc2tH@JH)H;Eft;H@@#tHnHHD%;McH8At;EH@NtE %A_ttnEtiM LmIn;;t;Hh0tJTHH[]A\A]A^A_f t;HhtH@H@HlSfD;sLHH蓎H5qL肋fAVAUIATUSHڔ%;s;H(s;HPxHJHHxLc2sH@JH)H;Efas;H@@#LsHHŋ;Mc7s;H@NlE %AstgEtbM HEIm;r;HhrJTH[]A\A]A^@r;HhrH@H@HlmfD;rHHQH5/L@AVAUIATUSHz%;Cr;H(9r;HPxHJHHxLc2#rH@JH)H;Efr;H@@#qH贀Hŋ;Mcq;H@NlE %AqtgEtbM HEQIm;q;HhqJTH[]A\A]A^@kq;Hh`qH@H@HlmfD;AqQHHH5LAWAVIAUATUSHH4%;p;L(p;HPxHJHHx*pHcH@HI)IAf;DeHcp1H@H;EfIcK;L$H@L,KHL_;KH@HH@x ;oKH@Hbff.AVAUIATUSHk%;SJ;H(IJ;HPxHJHHxLc23JH@JH)H&;EfIc J;L$H@L,IHL^;IH@HH@x ;IH@H;L >;HPxHJHHxLc2>H@JI)IA;An>;H@@#j>H2MIċ;HcL,M>;H@L4>>HLcRt;(>H@HH@x t~H=?1C;>;I=I8H@L$;=;Hh=LH([]A\A]A^=;L`=H@H@M$@;=;H@HH@@ % =tdo=;H@HHh\=HHT;HhA=HLHC;,=H@Jl(AD$@u+Le*f =H@HH@HH@ fD;;!8H@Nt(AD$@u`HaZ%MfH;7;Hh7LH([]A\A]A^7;L`7H@H@M$;7LHIH=U1>LH5lL?OH=#LAVAUIATUSHX%;S7;H(I7;HPxHJHHxLc237H@JH)H;Ef7;H@@#um7HEHŋ;Mc6HHHI=;6H@NlE@uSIm;6;Hh6JTH[]A\A]A^@6;Hh6H@H@Hlf;i6HHNHH5L Nff.fAWAVAUIATUSHHTW%;6;L 6;HPxHJHHxLc25H@JI)IA;An5;H@@#5HDIċ;HcL,5;H@L45HLIt;5H@HH@x H=m1:;W5;IM5I8H@L$;75;Hh,5LH(H[]A\A]A^A_ 5;L`5H@H@M$6;4;H@HH@@ % =4;H@HHh4HHKH`7;Hc4AT$ ;H@Nt(Ad4tCEt>AL$ Il$Mf34H@HH@HHx fD;4HLHNH5LKfAWAVAUIATUSHHU%;3;L 3;HPxHJHHxLc23H@JI)IA;An3;H@@#t3HAL$ Il$Mf1H@HH@HHx fD;1HLHsLH5͍LbIfAWAVAUIATUSH8HR%dH%(HD$(1;m1;L c1;HPxHJHHxLc2M1H@JI)IA;AnHc&1;L$H@L,1HL4Et;0H@HH@x toH=1y6;0;I0I8H@L,;0;Hh0IL HD$(dH3%(%H8[]A\A]A^A_fD;q0;H@HH@@ % = K0;H@HHh80HHGIŋ;01H5H0IHHML1 HI XGAI!%t‹;DIWLDI/HI)E1jAHDHLIB_AXHuaL92tL|>L$G;M/;HhB/JT%HD+/H@HH@HLh IAI!%t‹;DIWLD@I.HI)E1jDLHADH}AYL^1H)H?Pu@H<7H5L(F@AVAUATUSHH0L%zO%dH%(HD$(1A<$1.1H5H.HHILIŹ H1 HkEA<$-1H?IƋH!%tA<$DHSHDډH-HH)HjMA$LHF@XZHD$(dH3%(u H0[]A\A]A^r?fAWAVIAUATUSHHdN%;--;L #-;HPxHJHHxD* -IcH@HI)IA;Am,;H@@#,H;IƋ;HcL$,;H@L<,HL@t;,H@HH@x H=1 2;d,;IZ,I8H@L,;D,;Hh9,IL H[]A\A]A^A_@,;L`,H@H@M49;+;H@HH@@ % =+;H@HLx+LHCHD$;AMc+;H@N<+HL?t;p+H@JH@x t.H=fK+H@HH@HH@ HD$뎐;)+;H@JH@@ % =+;H@JHh*HH@BHH|$0;Hc*AV ;H@Nl A*t9Et4AN InMu:D{*H@JH@HHp 뉋;_*HLHEH5rLBAWAVIAUATUSHHTK%;*;L(*;HPxHJHHx*)HcH@HI)IAI;DeHc);H@H@ % =);H@H,)1HHDIŋ;);H@@#o)H78Hŋ;McN4R);H@N%;c;H(Y;HPxHJHHxLc2CH@JH)H;EfIc;L$H@L,HL+1;H@HH@x ;H@H<]+HtsH0Ht HVHtH2Hx6;ILH6";I|H@L,;m;HhbLH([]A\A]A^H=10H=0H5wL3f.AVAUIATUSH:=%;;H(;HPxHJHHxLc2H@JH)H;EfIc;L$H@L,HL/;H@HH@x ;oH@H<)HtsH0Ht HVHtH2Hx8K5;I1LH ;IH@L,; ;HhLH([]A\A]A^H=$1/H=/H5uL2f.AVAUIATUSH;%;;H(;HPxHJHHxLc2H@JH)H;EfIc];L$H@L,FHLk.;,H@HH@x ;H@H<(HtsH0Ht HVHtH2Hx03;ILHv;IH@L,;;HhLH([]A\A]A^H=T15.H=).H5WtL*1f.AVAUIATUSHz:%;C;H(9;HPxHJHHxLc2#H@JH)H;EfIc;L$H@L,HL -;H@HH@x ;H@H<='HtsH0Ht HVHtH2Hx(2;IqLH;I\H@L,;M;HhBLH([]A\A]A^H=|1,H=.,H5rL/f.AVAUIATUSH9%;;H(;HPxHJHHxLc2H@JH)H;EfIc;L$H@L,HL+;lH@HH@x ;OH@H<%HHxXHt[H@XH0+1;ILH;IH@L,;;HhLH([]A\A]A^;;II8H@H=1T+H=5H+H5vqLI.fAVAUIATUSH7%;c;H(Y;HPxHJHHxLc2CH@JH)H ;EfIc;L$H@L,HL+*;H@HH@x ;H@H<]$HHxPHtSH0/;ILH>;IH@L,;u;HhjLH([]A\A]A^;Q;IGI8H@H=1)H=])H5oL,AVAUIATUSH*6%;;H(;HPxHJHHxLc2H@JH)H ;EfIc;L$H@L,HL(;|H@HH@x ;_H@H<"HHxXHtSH0C.;I)LH;IH@L,;;HhLH([]A\A]A^;;II8H@H=1l(H=`(H5nLa+AWAVIAUATUSH8H4%;};L s;HPxHJHHxD*]IcH@HI)IAD$;EuAmMc+;H@J@ % =& ;H@N41LHX.HD$;;H@@#H!INj;HcL4;H@H4Ht$Ht$H&t;~H@HH@x H=1;S;III8H@L$;3;Hh(IL0H8[]A\A]A^A_ ;LpH@H@M<3H@JH@HD$D;;H@HH@@ % =;H@HHhHH(HD$ AE1Ht$H|$ L+LHc);B;H@Nd0AG %A"mEdAO IoM|$fDH@HH@HH@ HD$ [fD;AMcH@J,E 4_LmA} P;LH:xHD$(HHcH9H&IHD$(1HD$HFIHEH9l$tUHŋ;L1HHH0F % =t;Ht$Ht$1HA+D$(HIHI;HLHS*fDH51%H=i1#$;iHHnE fDLH5kL&HkH51H=#AWAVAUIATUSHH40%;;H(;HPxHJHHxLc2H@JH)H;EfIc;L,H@L$HL"t;H@HH@x tXH=y1 ;c;IYI8H@L$;C;Hh8LH(H[]A\A]A^A_;;H@HH@@ % = ;H@HL` LH0%ILIHO1H'HpINjF % =HH@ PLtIHt@L;S LH;I> H@D+ H@HH@HL` F;Ht$ Ht$HR$xfIwF % =t;;Ht$ Ht$H$PP'H5hLZ$HH@ Pff.AWAVIAUATUSHH-%;] ;L(S ;HPxHJHHx*> HcH@HI)IAI;DeHc ;H@H@ % = ;H@H, HH0#ŋ; ;H@@# HzIŋ;McN4 ;H@N< HLt;p H@JH@x H=1;E ;I; I8H@N,;% ;Hh LH(H[]A\A]A^A_D ;Lh H@H@Ml7fD H@HHh ; ;H@JH@@ % = ;H@JL` HL!Hlj;Hc\ AU ;H@Nd0A; tBEt=AM ImMl$ H@JH@HHx fD; HLH$H5XfL!f.AWAVIAUATUSHH*%; ;L ;HPxHJHHxD*} IcH@HI)IA';AmV ;H@@#A H IƋ;HcL$$ ;H@L< HL:t;H@HH@x H=1{;;II8H@L,;;HhIL H[]A\A]A^A_@;L`H@H@M49;a;H@HH@@ % =;;H@HLx(LHxH$;AMc;H@N<HLt;H@JH@x t/H=H@HH@HH@ H$f;;H@J4Ht$Ht$H(cHqt;f;H@JH@@ % =@;H@JLh-LH}IMH<$HtsHL;Hc;H@Nl AF %AttEtoAN InMu;;HhLH(;;II8H@L,iH@JH@HLh 7;JHLH H5bLff.AWAVIAUATUSHH4'%;;L ;HPxHJHHxD*IcH@HI)IAD$;AmHc;L<H@L4HL;~H@HH@x ;aH@H<IHr1ALO IH#xMn@Mt LH%L LH8ILLIċ;LH ;IH@L$;;HhIL8H[]A\A]A^A_fD;AMc;H@J@ % =tId;H@N$ULHfD1H>IEfDH@JHp ;;II8H@H=P1H= 1sH5``Lt@AVAUIATUSH$%;;H(;HPxHJHHxLc2sH@JH)Hx;EfIcM;L,H@L$6HL[t; H@HH@x tVH=1;;II8H@L$;;HhLH([]A\A]A^;;H@HH@@ % =;H@HL`xHLH0HWHIHC1HiLIH$%;#LH;IH@!DH@HH@HHx ~H5]L@AVAUIATUSH"%;;H(;HPxHJHHxLc2H@JH)H;EfIcm;L,H@L$VHL{;<H@HH@x ;H@H<HHIHt{1HLIH5#%;LHy;IH@L$;;HhLH([]A\A]A^H=18H5f[L9H=1H=tff.@AWAVAUIATUSHHd!%;-;L #;HPxHJHHxLc2 H@JI)IA;An;H@@#HIċ;HcL,;H@L4HLt;H@HH@x H=51;g;I]I8H@L$;G;HhAL$ Il$MfCH@HH@HHx fD;!HLHH5-ZLfAWAVIAUATUSHH%;;L(;HPxHJHHx*HcH@HI)IA;DmDeMc;H@J@ % =n;H@N,_LHAŋ;Hc?;H@H@ % =;H@H,HH^D$ ;;H@@#H IƋ;McN<;H@J,HHt;H@JH@x H=1;q;HgH8H@J,;Q;HhFIL8H[]A\A]A^A_Ð+;Lp H@H@M4<H@HH@ D$ @H@JHDh ;;H@JH@@ % =;H@JL`HLHNjT$ D;Hc_AV ;H@Nd8A>tEEt@AN InMt$f. H@JH@HHx fD;HLHH5WLf.AVAUIATUSH%;;H(;HPxHJHHxLc2H@JH)HU;EfIc];L,H@L$FHLkt;0H@HH@x tVH=w1; ;II8H@L$;;HhLH([]A\A]A^;;H@HH@@ % =tt;H@HL`HLHD[H='V1;IQLH;IAL$ Il$MfH@HH@HHx fD;HLHH5RLrfAWAVAUIATUSHH%;;L ;HPxHJHHxLc2mH@JI)IA;AnI;H@@#4HIċ;HcL,;H@L4HL- t;H@HH@x H=1n;;II8H@L$;;HhLH(H[]A\A]A^A_{;L`pH@H@M$6;Q;H@HH@@ % =+;H@HHhHHh H@;HcAT$ ;H@Nt(AtCEt>AL$ Il$MfH@HH@HHx fD;HLH3H5PL" fAVAUIATUSHz%;C;H(9;HPxHJHHxLc2#H@JH)HE;EfIc;L,H@L$HL t;H@HH@x tVH=1P;;II8H@L$;;Hh~LH([]A\A]A^;a;H@HH@@ % =td?;H@HL`,HL| H1H:;ILH;IH@NfH@HH@HHx H5NLw AVAUIATUSH%;;H(;HPxHJHHxLc2sH@JH)HE;EfIcM;L,H@L$6HL[t; H@HH@x tVH=1;;II8H@L$;;HhLH([]A\A]A^;;H@HH@@ % =td;H@HL`|HLHd1H;IPLH;I;H@Nf+H@HH@HHx H52MLAVAUIATUSH%;;H(;HPxHJHHxLc2H@JH)HE;EfIc;L,H@L$HLt;pH@HH@x tVH=/1;I;I?I8H@L$;);HhLH([]A\A]A^;;H@HH@@ % =td;H@HL`HLH41H;ILHE;IH@Nf{H@HH@HHx H5KLAWAVAUIATUSHHd%;-;L #;HPxHJHHxLc2 H@JI)IA;An;H@@#HIċ;HcL,;H@L4HLt;H@HH@x H=1;g;I]I8H@L$;G;HhAL$ Il$MfCH@HH@HHx fD;!HLHH5-ILfAWAVAUIATUSHH%;;L ;HPxHJHHxLc2H@JI)IA;An;H@@#HLIċ;HcL,g;H@L4XHL}t;BH@HH@x H=1;;I I8H@L$;;HhLH(H[]A\A]A^A_;L`H@H@M$6;;H@HH@@ % ={;H@HHhhHHH ;HcFAT$ ;H@Nt(A$tCEt>AL$ Il$MfH@HH@HHx fD;HLHH5FLrfAWAVAUIATUSHH %;;L ;HPxHJHHxLc2mH@JI)IA;AnI;H@@#4HIċ;HcL,;H@L4HL-t;H@HH@x H=1n;;II8H@L$;;HhLH(H[]A\A]A^A_{;L`pH@H@M$6;Q;H@HH@@ % =+;H@HHhHHhHp;HcAT$ ;H@Nt(AtCEt>AL$ Il$MfH@HH@HHx fD;HLH3H5DL"fAWAVIAUATUSHHt %;=;L(3;HPxHJHHx*HcH@HI)IA);DmDeMc;H@J@ % =;H@N,1LHHD$;HcH@H@ >;H@H@ % =;];H@H,N1HHIƋ;2;H@@#HHŋ;McN<;H@N,HLt;H@JH@x H=1W;;HH8H@J,;;HhIL8H[]A\A]A^A_k;Hh`H@H@HlLf.AWAVIAUATUSHH%;;L(;HPxHJHHx*HcH@HI)IAI;DeHc;H@H@ % =o;H@H,`1HHIŋ;D;H@@#/HHŋ;McN4;H@N<HL(t;H@JH@x H=Ȼ1i;;II8H@N,;;HhLH(H[]A\A]A^A_f{;HhpH@H@Hl:fDSH@HLhf;9;H@JH@@ % =;H@JL`HLPHL;LcU ;H@Nl0AtBEt=M LeImfH@JH@HHx fD;iLHHH5%<L f.AVAUIATUSHZ%;#;L0;HPxHJHHx*HcH@HI)LHC;DeHcH@H@ ;H@H@ % =;;H@H,1HHHŋ;McN4a;H@N,RHLwt;AL$ Il$MfH@HH@HHx fD;aHLHH5m6LfAWAVAUIATUSHHT$;;L ;HPxHJHHxLc2H@JI)IA;An;H@@#HIċ;HcL,;H@L4HLt;H@HH@x H=E1;W;IMI8H@L$;7;Hh,LH(H[]A\A]A^A_ ;L`H@H@M$6;;H@HH@@ % =;H@HHhHHH@;HcAT$ ;H@Nt(AdtCEt>AL$ Il$Mf3H@HH@HHx fD;HLHH54LfAWAVAUIATUSHH$;;L ;HPxHJHHxLc2H@JI)IA;An;H@@#tHAL$ Il$MfH@HH@HHx fD;HLHsH51LbfAWAVAUIATUSHH$;};L s;HPxHJHHxLc2]H@JI)IA;An9;H@@#$HIċ;HcL,;H@L4HLt;H@HH@x H=E1^;;II8H@L$;;HhLH(H[]A\A]A^A_k;L``H@H@M$6;A;H@HH@@ % =;H@HHhHHXH@;HcAT$ ;H@Nt(AtCEt>AL$ Il$MfH@HH@HHx fD;qHLH#H5}/LfAWAVAUIATUSHHd$;-;L #;HPxHJHHxLc2 H@JI)IA;An;H@@#HIċ;HcL,;H@L4HLt;H@HH@x H=E1;g;I]I8H@L$;G;HhAL$ Il$MfCH@HH@HHx fD;!HLHH5--LfAVAUIATUSH$;;H(;HPxHJHHxLc2H@JH)HE;EfIc;L,H@L$HLt;pH@HH@x tVH=w1;I;I?I8H@L$;);HhLH([]A\A]A^;;H@HH@@ % =td;H@HL`HLH1H;ILHE;IH@Nf{H@HH@HHx H5+LAWAVAUIATUSHHd$;-;L #;HPxHJHHxLc2 H@JI)IA;An;H@@#HIċ;HcL,;H@L4HLt;H@HH@x H=ݫ1;g;I]I8H@L$;G;HhAL$ Il$MfCH@HH@HHx fD;!HLHH5-)LfAWAVAUIATUSHH$;;L ;HPxHJHHxLc2H@JI)IA;An;H@@#HLIċ;HcL,g;H@L4XHL}t;BH@HH@x H=թ1;;I I8H@L$;;HhLH(H[]A\A]A^A_;L`H@H@M$6;;H@HH@@ % ={;H@HHhhHHHP;HcFAT$ ;H@Nt(A$tCEt>AL$ Il$MfH@HH@HHx fD;HLHH5&LrfAWAVAUIATUSHH$;;L ;HPxHJHHxLc2mH@JI)IA;AnI;H@@#4HIċ;HcL,;H@L4HL-t;H@HH@x H=է1n;;II8H@L$;;HhLH(H[]A\A]A^A_{;L`pH@H@M$6;Q;H@HH@@ % =+;H@HHhHHhH`;HcAT$ ;H@Nt(AtCEt>AL$ Il$MfH@HH@HHx fD;HLH3H5$L"fAWAVIAUATUSHHt$;=;L(3;HPxHJHHx*HcH@HI)IA;DmDeMc;H@J@ % =3;H@N,1LHIŋ;HcH@H@ ;H@H@ % =;_;H@H,P1HHHŋ;McN4);H@N<HL?t;H@JH@x H=71;;II8H@N,;;HhLH(H[]A\A]A^A_f;H@Hx ;pH@H@ %= 1fD;A;H@JH@@ % =;H@JLxHLXHHL1HH HIH($;LHl;HH@J,DH@JLhf.;yH@HHh-[H@JH@HHx NH5dL@AVIAUATUSHJ$;;L( ;HPxHJHHx*HcH@HI)IA;DeHc;H@H@ % =j;H@H,HHŋ;McN4r;H@N,cHLt;MH@JH@x tSH=Ԣ1;&;II8H@N,;;HhLH([]A\A]A^@;;H@JH@@ % =;H@JLhHLHlj1HHHIH$;kLH;HVH@J,AL$ Il$MfH@HH@HHx fD;HLHsH5LbfAWAVIAUATUSHH$;};L(s;HPxHJHHx*^HcH@HI)IAH;DeMc4N,;H@J@ % = ;H@N41LHYIƋ;HcٲH@H,L}AG % =IH@ @HAHɳ;I菲HW;H}LLHH,;eH@J,;V;HhKIL(H[]A\A]A^A_fD;)LHyb@ H@JLpH5Lff.AWAVIAUATUSHH$;轱;L(賱;HPxHJHHx*螱HcH@HI)IA;DeMctN,;H@J@ % =7J;H@N4;1LHH$;DuMc;H@J@ % =;H@N4LH6D$ ;DuMcİH@J@ /;訰H@J@ % =;膰;H@N4w1LHIƋ;D}McTH@J@ w;8H@J@ % =%;;H@N<1LHeINj;HcH@H@ ;ɯH@H@ % =;觯;H@H,蘯HH|$ LL;ImH5;H[H$LHH ;BH@J,;3;Hh(IL(H[]A\A]A^A_; H@Hx ';1H@H@ %= MfD;H@Jx p;訮H@J@ %= NE1D;yH@Jx ;`H@J@ %= E1D3H@JH@ D$ J@H@JH@H$fD;H@JLx;٭H@JLpf;蹭H@HHH H5LWAWAVIAUATUSHH$;m;L(c;HPxHJHHx*NHcH@HI)IA;DeMc$J4;H@H4$J@ % =S;H@N,1LHEHD$;DmMc¬U;H@HcL4譬H@J@ ;葬H@J@ % =&;o;H@N,`1LHINj;DmMc=H@J@ ;!H@J@ % =;;H@N,1LHNIŋ;HcΫH@H@ ;貫H@H@ % =;萫;H@H,聫HHAV M I~LL;I5H;H#HT$LHHе; H@J,;;HhH,$H(H[]A\A]A^A_f;ɪH@Hx ;谪H@H@ %= 1AV M$fD HrLE  ;V1LHH@;1H@Jx ;H@J@ %= E1D;H@Jx ?;E1ͩH@J@ %= gD裩H@JH@HD$D;聩H@HHh fD;aH@JLhu;IH@JLxH5LfAWAVIAUATUSHH4$;;L(;HPxHJHHx*ިHcH@HI)IA ;DeMc质N,;H@J@ % =芨;H@N4{1LHHD$;DuMcV;H@J@ % = 4;H@N4%1LHINj;DuMcH@J@ u;H@J@ % =;ħ;H@N4赧1LHIƋ;Hc蓧H@H@ ;wH@H@ % =;U;H@H,FHH薾LL艷;IH;H HT$LHH躱;H@J,;;Hh٦IL(H[]A\A]A^A_@;蹦H@Hx );蠦1H@H@ %= OfD;qH@Jx r;XH@J@ %= PE1D+H@JLx f. H@JH@HD$D;H@JLp8;ɥH@HHP H5OLgAVAUIATUH-$S}肥}Hw}HPxHJHHxLc2`H@JH)HuRǹH$EfH $H5$H=$Mcϧ}}HX JTH[]A\A]A^H5L諼ff.AVAUIATUH-$S}¤}H跤}HPxHJHHxLc2蠤H@JH)Hu6觧Ef}Mcs}HXgJTH[]A\A]A^H54LAWAVIAUATUSHH-T$}}L }HPxHJHHxHcH@HI)IA}DkHcMcʣ}N<H@L$貣}H@J袣HHǷ`}臣H@JH@x B}iH@JHH;H)H@J,;;HhLH([]A\A]A^Ë;HHIr@ۛH8H5L胳H=tVgAVAUIATUSHʼ$;蓛;H(艛;HPxHJHHxLc2sH@JH)H;EfMcMN,H@JHhE % =uzHEH@ HH@`;HhHtzHHʢHŋ;HH蕠;HۚH@J,;̚;HhLH([]A\A]A^f;詚HHr@苚H8H5`L3H=$UAVAUIATUSHz$;C;H(9;HPxHJHHxLc2#H@JH)H;EfMcN,H@JHhE % =uzHEH@ HH@`;H(Ht{趙HH{Hŋ;衙HHF;H茙H@J,;};HhrLH([]A\A]A^;YHH詰r@;H8H5LH=SǭATIxUH-$SUHHtrI$H{HLHHH)I$pH)΁xHpH ID$PUHC`Ht"IT$`ooJHID$`H@H[]A\AWAVAUIATUSHH$;M;H(C;HPxHJHHxD:-IcH@HH)H;EgMcN,;H@J@ % =ۗ;H@N4̗1LH*IƋ;谗?L81H@PHHE`HEAG ;u,<t(%= tWHU`H8H);HU`LHHT$HT$HHE`H4$H5E HH@HE`H@HE`H@e;ޖ1H脨;IʖHLLHy;H诖HHT;H蚖H@J,;苖;Hh耖IL(H[]A\A]A^A_;AMcZH@N<DCH@JLp{H=y֪H5UL׭AVAUIATUSH*$;;L ;HPxHJHHxLc2ӕH@JI)IA4;AnHc謕;L,H@L$蕕HL躩t;H@HH@x tUH=y1;X;INI8H@L$;8;Hh-LH([]A\A]A^fD;;H@HH@@ % =tT;H@HHhܔHH,H;轔;Hh貔JT-H[]A\A]A^Ð蛔H@HH@HHx H5dL7AVAUIATUSH$;S;L I;HPxHJHHxLc23H@JI)IA4;AnHc ;L,H@L$HLt;ߓH@HH@x tUH=w1_;踓;I讓I8H@L$;蘓;Hh荓LH([]A\A]A^fD;q;H@HH@@ % =tTO;H@HHh<HH茪H;;HhJT-H[]A\A]A^ÐH@HH@HHx H5L藪AWAVIAUATUSHH$;譒;L 裒;HPxHJHHx*莒HcH@HI)IA;DmMcHc^;N$H@N,GH@L4ImE % =8HELh In;E % =HELp ;H@@#H譠HAM9tIvI}E1蟑;谑;H@Nl E %A葑EM L}Im;e;HhZIL H[]A\A]A^A_D;;Hh0H@H@HlDfDHHc;If;HH9IIvI}E1蠐AD;詐LHH[&H5LGAVAUIATUSH$;c;H(Y;HPxHJHHxLc2CH@JH)H;EfMcN4H@JHhE % =HELh I}UH5.HvIuHj1H;H趏HH[;H衏H@J,;蒏;Hh臏LH([]A\A]A^;iHH蹦IcH5/LfAVAUIATUSHZ$;#;H(;HPxHJHHxLc2H@JH)H;EfMcݎN,H@JHhE % =u:HEH@ HuI;覎;Hh蛎JT-H[]A\A]A^f.;yHHɥHtHH58L ff.AWAVIAUATUSHHT$;;L ;HPxHJHHxD*IcH@HI)IAD$;AmHcύL<;H@H@ % =z襍;H@L4薍1LHH$;yAU;H@HcL4AYAH@McN,;C1LHD$ԌIHL1辌L1HInIH;1H衞;HD$H$Ht$LH著IH$LMt H$L;誌LHO;I蕌H@L$;膌;Hh{IL8H[]A\A]A^A_fD[L8Lt$I8i+H@HH@H$fD; ;II8H@^H50pL蠣AWAVAUIATUSHH$;轋;H(賋;HPxHJHHxLc2蝋H@JH)H_;EfMcwN4H@J<;IS;H@@#>HHMIu(HH~@HL蘌;Lc;H@Nl0E %AߊEM LeIm;賊;Hh訊IL0H[]A\A]A^A_苊;Hh耊H@H@Hl;fD;a;HWH8H@J,fD;9LHHhH5LסAWAVAUIATUSHH$$;;L ;HPxHJHHx*ΉHcH@HI)IA;D}觉U;H@HcHcL$茉;H@L4};H@@#hH0Iŋ;IcL<K;H@H4Ht$7Ht$HZc;H@HH@x F;H@H<茗HH/LHLHI׉IMtL藑uH$LE1MLsHܪ$L1LՉMt H$L;P;H@Nd8AE %A0CE:AM ImMl$;;HhIL8H[]A\A]A^A_fۇ;HhЇH@H@LlafD1L9H}@1HءIHHm`Hu fDLЈt%HmHtKH}HuH}tL諈uH}u MH}Ht H$Lu@MtMHd$LfLLUfD;نHLH苡1WH=k1aH=*k1SH5LTH$HD$LHD$IMt HǨ$LIvH=k1Mt H$LH=k1H}@LHjHuHm`H1AWAVIAUATUSH(H$$;;H(;HPxHJHHxD"ͅIcH@HH)HE";El$装IcՋ;H@H HL$L,脅AT$H@HcLL4HLIi;IO;H@@#:H;IǃD$H8M[HL HHэuH>$H1L跍/HL H;T$I}@HLH\HxLHD$AeHT$HLmU[;LxP;H@H@M<ǃ4AT$D$H@HcH Ѓ;HL$AMcHL$;H@HL$J@ % =ԃ;H@J,ŃHHHL$D$H$LE1HHI}@1L距HHHxHHD$4HT$E1D$tKH@HLLA|HHt H_$HMt HN$L;Ht$;H@Hl0AG %AłEAO MgL};蘂;Hh荂Hl$H(H([]A\A]A^A_fDL$E1_1LHT$ALHT$fHLLA茐HHE1 HL$H@JH@ D$;LLH蓜+fDHLLHH6Mt H$LH=1=H5gL>ff.AWAVIAUATUSHH$;M;L C;HPxHJHHxD*-IcH@HI)IAD$;AmHc;L<H@L4HL ~;΀H@HH@x a;豀H@HyIH;tLHz;HtH@J,;t;HhtIL8H[]A\A]A^A_t{IEHtH@HIHH0vIsfDH;it;H_tH8H@lCtL8t;t IUHz uIEff.@(k`@;HL$s1LHuHL$1DHIE80D;sH5[LCAVIAUATUSH$;cs;L Ys;HPxHJHHx*DsHcH@HI)IA;DmMcsU;H@HcHcN4L$r1H@LH,r1IHxrMtkHL1{1H@@HČ;HrHHOx;HrH@J,;r;Hh{rLH([]A\A]A^@;ar;HWrH8H@H5Lff.AVAUIATUSHJ$;r;H( r;HPxHJHHxLc2qH@JH)Huh1Ef1McHN,ϋ;HqHHZw;HqH@J,;q;HhqLH([]A\A]A^H5L(AVAUIATUSHz$;Cq;H(9q;HPxHJHHxLc2#qH@JH)H;EfIcp;L$H@L,pHL ;pH@HH@x u|;pH@Hn;N<H@L,'n;H@J,nHH=*;mH@JH@x  ;mH@J1dH==1dH5=Lgff.fAVIAUATUSHp$;O;L(O;HPxHJHHx*OHcH@HI)IAH;DeHcMcTO;N4H@H,=O;H@N,.OHLSc;OH@JH@x ;NH@J<]IHHHOHHtHWuRH q$H;N;HNH8H@J,;N;Hh|NIL0[]A\A]A^DHLXHp$H;JN;Hh?NJT5H[]A\A]A^H=<1bH5lLeH=<1bAVIAUATUSHo$;M;L(M;HPxHJHHx*MHcH@HI)IA;DeHcMcMN,H@H<\;HpM;H@N4aMHLa;GMH@JH@x ;*MH@J<[HH}uH;E(tJ;L;HLH8H@J,;L;HhLIL([]A\A]A^fHMH1fLpHAF % =u7IHx 1R;rLHHR;H]LH@v@;ILLHcHH=;1`H5LcH=1`H=*;`ff.fAWAVAUIATUSHHm$;K;L0K;HPxHJHHx*KHcH@HI)LHR;DeMcK;N4H@N,kKHL_;QKH@JH@x ;4KH@J;L(>;HPxHJHHxD">IcH@HI)IA;Al$e>AT$;AH@HcMcHHD$B>;H@N43>;H@@#>HLIċ;HcL<>;H@L,=HLRI;=H@HH@x ,;=H@HH|$LI>MHHHD$CFHL$H-_$HU1LLHHsxLAUE퐋;=;H@Jl8AD$ %A<;E2AL$ Ml$Le;<;Hh;H8H@I9HLQH}@;i8LHOHH=%.1LH5LOH=1LH=-1Lff.AWAVIAUATUSHH$Y$;7;L(7;HPxHJHHx*7HcH@HI)IA;DeMc7U;H@HcHcN<L,7;H@L4r7;H@J,c7HHKm;I7H@JH@x P;,7H@J2HcH@HI)IAo;DeHcMc2H@L4L@;H1;J H@HL$N,1HLE;1H@JH@x ;1H@J<*@IHH}!Hx@H9}@tHGHuL9IHH9HHJH}t4InMmE % =!HEHx LA7M1LJLhHAE % =IEHx 17;0HHR6;H0H@J,;0;Hh~0L|$IL8H[]A\A]A^A_@HL5EH}.;C0;H90H8H@J,;#0;Lx0L|$L8H[]A\A]A^A_Ð;/LHIGH&;/HH)GHH='1cDH5 LdGH=֎1FDH=''18DAWAVIAUATUSHHP$;]/;L(S/;HPxHJHHx*>/HcH@HI)IAl;DeHcMc/;N4H@L,.;H@J,.HH C;.H@JH@x ;.H@JH=)#1r>H5LsAAWAVIAUATUSH8HJ$dH%(HD$(1;});L s);HPxHJHHxD*])IcH@HI)IAD$;AmHc/);AUH@HcLD$ Ht$ L#)HI~@HT$ LHD$tAHL$HIL%tI$H|$ I$HHLA$fD;&;I&I8H@&H@JH@ D$ '@HI$LfHPHL11H|$ HL$IL%H$HtI$HL$HL$HA$LA$MTH= 1:H5' L=J8H=; 1:ff.AWAVAUIATUSHH$G$;%;H(%;HPxHJHHxD"%IcH@HH)HB;Et$%AT$;AH@HcMcH,%;H@N,y%;H@@#yd%H,4Iċ;McO%;J H@H $N<4%HLY9;%H@JH@x x;$H@J<3IHaHH%LLH%IHtH-HF$H1MwLo-HF$LE1HD$M~`HD$MuH%t(M?MIHuItH%uIHt HtF$MoMgAHt_HSF$HQ@#;L`#H@H@M$vHt HF$HMt HF$LE1;#H $;H@HlAD$ %Aw#EAL$ Ml$Le;H#;Hh=#L<$IL8H[]A\A]A^A_@M~`LMeMhM~`MHCE$H;M~`MHD;"LLHk=SLL/HuH=u1.7H=1 7H5L!:AVIAUATUSHzC$;C";L 9";HPxHJHHx*$"HcH@HI)IA;DmHc!;H@H@ % =!;H@H,!1HH$=H1McG*H1I'H@@I<$HHc6LHN$;;Hf!HH ';HQ!H@J,;B!;Hh7!LH([]A\A]A^!H@HHhYH5rL8ff.AWAVAUIATUSHHB$; ;L ;HPxHJHHxLc2 H@JI)IAq;An ;H@@# t H$;;L ;HPxHJHHxD*IcH@HI)IAD$7;AmHc;L<H@L4xHL0;^H@HH@x ;AH@H<*IH;AAH@McN$L-IMt)AT$ Ru}tx%= tj1LIH>$L;LHO!;IH@L$;;Hh{IL8H[]A\A]A^A_fDt+I$HtH@HvpLLMIxDtsu>SI$ff.@(z>fDL8I$Hx uHID$80y@;1LHO;H= 1$/H=1/H5L2AVAUIATUSHj;$;3;H();HPxHJHHxLc2H@JH)H;Ef;H@@#!H(Hŋ;1H5*IIw@E1LLGfS%= f<IHH@HILH0OIŁ` tHHx H1fAf.B(DDtktIHz tIff.@(h\]f.;Ht$Ht$1HeDm@;q1LHD LX;A;I7I8H@ H@JHDh HHFE180A@;Ht$Ht$HDfHTIF80MBD;H=1!'H5L"*H=1'@AVIAUATUSHj3$;3;L();HPxHJHHx*HcH@HI)IA;DeHcMc;N,H@L4;H@J,HH%;H@JH@x un;H@J< HHtjHLvIHtHHH3$L;@;Hh5JT-H[]A\A]A^H=M1%H5pL(H=1%fAVAUIATUSH 2$;;H(;HPxHJHHxLc2H@JH)H;EfIc;L,H@L$vHL$;\H@HH@x ;?H@H<HHx@H1HI;LIHV2$;LH;IH@L$;;HhLH([]A\A]A^H=`1Y$H5jLZ'H= >$ff.AWAVAUIATUSHL%0$A<$[A<$HOA<$HPxHJHHxLc27H@JH)HA<$AnHcA<$H H@HL$H,HH#?A<$H@HH@x  A<$H@HH}Ht7HLHHI.H-o$LUH<$UHLH-F$LU;;HhJT5HHD$dH3%(uH[]A\A]A^ÐH$L;;HH8H@J,;};HhrIL0H=+1 H=1H5]XLZ f.AVAUIATUSHJ$;;H( ;HPxHJHHxLc2H@JH)H#;EfIc;L,H@L$HL ;H@HH@x ;H@H< HH<IHtd1HzLIH$;4LH;IH@L$;;HhLH([]A\A]A^fD;;II8H@H=1t H=h H5SLifAWAVAUIATUSHH$;};H(s;HPxHJHHxLc2]H@JH)H<;EfMc7;N4H@N, 1H5WHOHHSU %= H-y$H}tH;;L}L LHAMeAD$ % =gI$Hx :MeAD$ % =I$Hx H}t";F;HmL 4HHAԋ;$;HhJT5HH[]A\A]A^A_fwHEHH@H;;H(HS;H;;HHxLyLxxL;m;HH+HHHA;nH@ H)HLm;HOH(;EH5%VH;A'H(A ;L}H H(;;HhPH;hX$;H};H8I9;;HH8H@J,;;HhIL0yf.urHEff.@(zo;ALH Hf;LHi HHEHx z@HHE80D;H@;H8HD;1HH\;aHH1;AHHHHfD;HI|H5PL H=1ff.AWAVAUIATUSHH$;;L ;HPxHJHHxLc2H@JI)IAq;Any;H@@# dH,Iċ;HcL,G;H@L48HL];H@HH@x ;H@H<HH;HAT$ ;HcH@Nt(AtnEtiAL$ Il$Mf;;Hh}LH(H[]A\A]A^A_[;L`PH@H@M$;1HLH H="1H5LL H=AVIAUATUSH $;;L(;HPxHJHHx*HcH@HI)IA;DeHc;H@H@ % =Je;H@H,V1HH Iŋ;McN4/;H@J, HHE;H@JH@x ;H@JuBHuH ;HHH8;H~H@-H@(Hu;`;HVH8H@J,;@;Hh5IL0[]A\A]A^fDH@HLhH=1H5OLH=>1ff.@AWAVAUIATUSHH$;;L ;HPxHJHHxD2IcH@HI)IAD$;AnHc_;L,H@L;N<H@L4';H@J,HH=;H@JH@x ;H@JH@JH@x ;!H@JH@JH@x ;!H@JLt$L0H([]A\A]A^A_;;II8H@\H= 1H517LH=1@AWAVIAUATUSH(H#;;L(;HPxHJHHxD"IcH@HI)IA ;Al$HcbAT$;H@HcL,KAT$;AH@HcMcL<-;H@JHD$;H H@HL$L$HL";H@HH@x n;H@HIHL1(H|$1ILLLHHD$SL=#LHD$ALL$LALAHD$HI4$H6;ILH;IH@L$;;HhLt$IL0H([]A\A]A^A_;;II8H@L$;;LpLt$L0H([]A\A]A^A_;y;IoI8H@\H= 1H54LH=1@AVIAUATUSHJ#;;H( ;HPxHJHHxD"IcH@HH)HEEl$L5*4lLH1HMc;N$HHH?;HH@J,;v;HhkLH([]A\A]A^@;Et$McI;H@J@ % =';H@N41LHvIƃ6;AMc;H@J@ % =;H@J,1HHILHMA<$LHEpfDkH@JLpWf.KH@JL`H5VLff.AWAVIAUATUSH8H4#dH%(HD$(1;;L ;HPxHJHHxD*IcH@HI)IAD$'HD$ AmD$Hc;D$;H H@HL$L4gHL;MH@HH@x ;0H@HHcH@HI)IAK;DmHc1H@H<;I;H@@#HHMLLMcLLcH#;U ;H@NdA~tmEthM LuIl$;Y;HhNJTHH[]A\A]A^A_+;Hh H@H@Hl6fD;LHHHB#LH=|'1H5_'LATIUH-#SH}HE1HjA HH8'QZYHtyHHtqC u<t uJt#HHt:H@HvQ[L]A\DtKu&tHff.@(zu[L]1A\HHz u@HtHC80uϋ}1HHtD}ېAVAUIATUH-#S}}Hw}HPxHJHHxLc2`H@JH)Hu1}EfMc9}HX-JTH[]A\A]A^H5)Lff.fAVAUIATUSH#;;H(;HPxHJHHxLc2H@JH)H;Ef;H@@#uuHXH;McL(sHLH;^H@NlE@uWIm;D;Hh9JTH[]A\A]A^;HhH@H@HlyfD;HHH5(LDAUIATUSHH#;;L ;HPxHJHHxHc*LH@HH)HHH#;H8tf`1H5H;H@@ % =tR51H5THd;HhHHiH1;L H[]A\A]@1H5HH@HHx H5e'LvfDAWAVAUIATUSHH#;;H(;HPxHJHHxLc2mH@JH)H;EfK;H@@#6HHH#E1H8t 1Lc;McM ;H@NtAtfEtaM LmIn;;HhJTHH[]A\A]A^A_Ð;HhH@H@HlSfD;qLHH#H5&LfAVAUIATUH-k#S}2}H'}HPxHJHHxLc2H@JH)Hu@H#EfH8t1}Mc}HXJTH[]A\A]A^H5x!Lmff.fHtG u<t%= tfwAVAUATAUH-#SH}^}V}L(KH};Hs}+}HPxLrLpxL;}LH+HHHA}H@ L)HI]}IɿL(}Ate踿H5$H$}蜿}H葿H}膿}HXPzH;XX<}l[]HA\A]A^@SH5HD}0HXfD}LLHI$D}HIAWAVIAUATUSH(H#dH%(HD$1;譾;L 裾;HPxHJHHxD*荾IcH@HI)IA;AmHccL$;H@H@ % =9;H@L4*1LHINj;AMc;H@N,HD$1H;I۽LHIAE IUHRH 8% = HT$MmML1LHI>;LcLl$OLLHALIH#AN ;#LH;IH@L,;;HhIL HD$dH3%(ZH([]A\A]A^A_< ;襼;I蛼I8H@fD;聼LHT$HI@[H@HLx5f.H5Y#L$~H5o#L/$LH$H<$~HD$tLLl$ILaH<$LLLl$yIH|$LH<$N11111LH=1$@LLAHHD$vDH+H|$INLFH<$11t11+1LqMt;Lt$LLHLIH=#fD;Ѻ1H5oH`;I趺;I謺LLHhMLHE H$H5=L,H=?1H=X1H=81fAWAVIAUATUSH(HT#dH%(HD$1; ;L ;HPxHJHHxD*IcH@HI)IA;AmHcùL$;H@H@ % =虹;H@L4芹1LHIƋ;AMcg;H@N;HLHH5 Lf.AWAVAUIATUSHH#;蝯;L 蓯;HPxHJHHxLc2}H@JI)IAC;AnY1H;IELH;I0;H@@#HIċ;HcL,;H@LIL(H[]A\A]A^A_f;LhH@H@Mt3fD;;H@HH@@ % =˨;H@HHpHt$賨Ht$HINj;AMc萨;H@J4Ht$|Ht$H蟼t;dH@JH@x t2H=CfD;H@HH@HH@ I;;H@J4Ht$Ht$HHt;;H@JH@@ % =;H@JHh譧HHIML(LHcMHtHL]ut11諨11bH<$1;@;H@Nd(AF %A t8Et3AN InMt$H@JH@HL` E;ئHLHH5TLyH=1[ff.AWAVIAUATUSHH#;};L s;HPxHJHHxD*]IcH@HI)IAD$;AmHc/1Hշ;ILL4H踫;I;H@H4H4$H4$Ht;ԥH@HH@x tZH=S1T;譥;I裥I8H@L$;荥;Hh肥IL0H[]A\A]A^A_D;a;H@HH@@ % =`;;H@HHpH4$$H4$HsH$AuH5#LFH57#LH<$记D$ IMH<$IHH<$׵tI$Ht@t$ L觿IHxHL膰LNPSH<$uLLH8ILL9I11m11$1Lj;LH訩;IH@MDۣH@HH@HH@ H$1111趷1L;AMc肣;H@J@ % =`;H@N$QLH衺D$ H5V#L~H5o#L/L$ ,H<$ʦI/f@@1HIfDӢH@JH@ D$ @1111趶1L;蕢;I苢I8H@L$;u;HhjLH(H5LAVAUIATUSHj#;3;H();HPxHJHHxLc2H@JH)H;Ef1H薳;HܡHIcHL,v;I輡;H@L$譡HLҵt;藡H@HH@x tUH=f1;p;IfI8H@L$;P;HhELH([]A\A]A^fD;);H@HH@@ % =;H@HL`LH@IH5#LH5#LϴLW11I11貴1LM1L赤LIH#;oLH;IZH@KH@HH@HL` VH5OL@AVAUIATUSH:#;;H(;HPxHJHHxLc2H@JH)H;Ef1Hf;H謟HIcHL,F;I茟;H@L$}HL袳t;gH@HH@x tUH=1;@;I6I8H@L$; ;HhLH([]A\A]A^fD;;H@HH@@ % =Ӟ;H@HL`LHIH5ƿ#LH5߿#L蟲L11I˟11育1LM1L腢LIH#;?LH;I*H@H@HH@HL` VH5L贵@AWAVAUIATUSHH#;͝;L Ý;HPxHJHHxLc2譝H@JI)IAC;An艝1H/;IuLH;I`;H@@#KHIċ;HcL,.;H@L<HLDt; H@HH@x tH=x1艢;;I؜I8H@L$;œ;Hh跜LH(H[]A\A]A^A_f蛜;L`萜H@H@M$?;q;H@HH@@ % =K;H@HHh8HH舳HH5>#LfH5W#LH?11HcC111L@;ٛAT$ ;H@Nt(A跛BEt=AL$ Il$MffD胛H@HH@HHh F;aHLHH5mLfAWAVAUIATUSHHT#;;L ;HPxHJHHxLc2H@JI)IA{;Anٚ1H;IŚLHj;I谚;H@@#蛚HcIƋ;HcL,~;H@L$oHL蔮t;YH@HH@x tH= 1ٟ;2;I(I8H@L$;;HhIL(H[]A\A]A^A_f;L`H@H@M4?;;H@HH@@ % =蛙;H@HHh舙HHذHH5#L趚H5#LgH菙D$ 1DHx9D$ HZLcAtH tI11T11 1LQ;;H@Jl(AF %AʘtAEt;H@NL訉LD$ tLfLx9Lw9D$ |LE1f9D$ LAL蝐;LLH蛣;H5L臠AWAVAUIATUSH(Hԩ#;蝈;L 蓈;HPxHJHHxLc2}H@JI)IA;AnHcV1H;IBLL$Hߍ;I%;H@L4HL;t;H@HH@x t^H=1耍;ه;IχI8H@L,;蹇;Hh讇IL H([]A\A]A^A_f;艇;H@HH@@ % =c;H@HLpPLH蠞IH5V#L~H5o#L/; H軟LHD$>uz;Ht$H覈11I*111L';LHe;I諆H@f蛆H@HH@HLp FLHuL`LHD$賕1HyIHtAH|$;D$,HMA$jL$,HHT$ Ht$טZYHt LțtL[fD;مAWv AWLH,H5Lkff.AWAVIAUATUSHH#;};L(s;HPxHJHHxD"]IcH@HI)IA;Al$51Hۖ;I!LHƊ;I ;H@@#H迓INj;HcL,ڄ;H@H4H4$DŽH4$Ht;谄H@HH@x H={1,;腄;I{I8H@L$;e;HhZIL(H[]A\A]A^A_D;;Lh0H@H@M|2fD;;H@HH@@ % =;H@HHpH4$ԃH4$H#H$;AMc豃;H@J4Ht$蝃Ht$H;聃H@JH@x ;dH@J;~H@Hx t); ~H@H@ %= t E1;}H@H@ tc;}H@HH8tˋ;}H@HHHxiA+fDD$LzHf;i};H@H@ M}H@H@ ;4}H@H@ /;}fH@HHf.@(ADED|H@JH@ D$_@H=,#HD$ډL貂I<$HT$Hf.|;H@H,||1HHO~A;Y|H@HHHx fD;1|H@HHHx(;|H@HH@80A@{;H@H,{HH}Aa11}11ʏL1H=ɑ1R轍H=1?H5pL@AWAVAUIATUSHH#;]{;L S{;HPxHJHHx*>{HcH@HI)IAD$;DmDuMc {;H@J@ % =z;H@N,z1LH9H$;z1Hd;IzLE1HLD$ IAWH5#L{H5#LyH<$IH(H5#HLHߊH#H86L&HH#H8LMc藌11N{11HLDDAN,5;yH薈;IyHLHLHg;yH@N$;y;HhyLH(H[]A\A]A^A_ÐD$ P1HxAKyH@JH@H$qfD;DmMc"y;H@J@ % =y;H@N,xLHAD$ At|;HcxH@H<td;x;H@H@ LxH@H@ u>;xH@Hx t);rxH@H@ %= t E1;IxH@H@ tk;4xH@HH8tˋ;xH@HHHxqAwfDD$ L}Hf.;w;H@H@ wH@H@ ;wH@H@ ';{wfH@HHf.@(ADEDKwH@JH@ D$ W@{H=#H$;L}H$HH՘#H8fDv;H@H,v1HHxA@;vH@HHHx fD;vH@HHHx ;tvH@HH@80A@Sv;H@H,DvHHxA11sw11*L1pH=)1貊H5CL賍AWAVIAUATUSHH#;u;L(u;HPxHJHHxD"uIcH@HI)IA@;Al$u1H+;IquLH{;I\u;H@@#GuHIƋ;HcL,*u;H@H4H4$uH4$H;t;uH@HH@x H=[1|z;t;ItI8H@L$;t;HhtIL(H[]A\A]A^A_Dt;LhtH@H@Mt2fD;at;H@HH@@ % =;t;H@HHpH4$$tH4$HsH$;AMct;H@J4Ht$sHt$H;sH@JH@x y;sH@J;nH@Hx t);nH@H@ %= t E1;nH@H@ tk;nH@HH8tˋ;nH@HHHxqAfDD$HHf.;9n;H@H@ nH@H@ ;nH@H@ ';mfH@HHf.@(ADEDmH@JH@ D$W@H=#HD$zL"I<$HT$Hf.[m;H@H,Lm1HHoAp;)mH@HHHx fD;mH@HHHx ;lH@HH@80A@l;H@H,lHHnAH=M1>H=10H5L1H=1AWAVAUIATUSH(Ht#dH%(HD$1;-l;L #l;HPxHJHHx*lHcՍMH@L$HI)IAD$ ;k;UH@HcL;OiH@Hx t);:iH@H@ %= t E1;iH@H@ tc;hH@HH8tˋ;hH@HHHxiA;fDD$HJ|Hf;h;H@H@ }hH@H@ ;dhH@H@ /;KhfH@HHf.@(ADEDhH@JH@ D$_@K}H=\#HD$ uL{I<$HT$Hf.g;H@H,g1HHiA ;gH@HHHx fD;agH@HHHx(;DgH@HH@80A@#g;H@H,gHHhAqH=~1{ yH=e1{H5|L~ff.AWAVAUIATUSHHԇ#;f;L f;HPxHJHHx*~fHcH@HI)IAD$;DmDuMcLf;H@J@ % =*f;H@N,f1LHyH$;e1Hw;IeLE1HkD$ IAGH5#LgH5#LyH<${IHH]#H8;LyHHA#H8LMch11f11ZyHLDDAN,芤;#eHs;IeHLHHo;dH@N$;d;HhdLH(H[]A\A]A^A_fDD$ K1Hq<dH@JH@H$fD;DmMcrd;H@J@ % =Pd;H@N,AdLH{D$ At|;HcdH@H<td;d;H@H@ LcH@H@ u>;cH@Hx t);cH@H@ %= t E1;cH@H@ tk;cH@HH8tˋ;ocH@HHHxqAfDD$ LvHf.;c;H@H@ bH@H@ ;bH@H@ ';bfH@HHf.@(ADEDbH@JH@ D$ W@wH=܃#H$oLvH $HH%#H8fD;b;H@H,,b1HHcAP; bH@HHHx fD;aH@HHHx ;aH@HH@80A@a;H@H,aHHdcAH=}y1vH5wLyff.@AWAVAUIATUSHHd#;-a;H(#a;HPxHJHHxD" aIcH@HH)H;El$Et$Mc`;H@J@ % =`;H@N,`1LH |INj;`1H7r;I}`LH"fH5#HIaH5#Lat1zIHLvHIiLLh1LWtLHHR#HMt"AE u<t %= u Hu11Mc a11N$sL11Hy;H_HH2e;Hx_H@J,;i_;Hh^_LH(H[]A\A]A^A_f;AMc2_H@N$AD$ % =|I|$"fŃ11>`11rL8AD$ % =ID$HH=1]sD^H@JLxf;^1LHyHhH58L v11_11^rL1褝H=P1r11}_114rLwH= 1r11P_11rH= v1r;]1LH@y ff.AVIAUATUSH~#;];L ];HPxHJHHx*]HcH@HI)IA;DeDmMcV];H@J@ % =a4];H@N$%]1LHxIċ;Hc];H@H@ % =&\;H@H,\1HH0xIƋ;Mc\1HYn;H\HHDbH5}#HH]H5}#HpLLN4s1IHHjhL1Pv11I]11;p1H聛;\LHa;H\H@J,;[;Hh[LH([]A\A]A^@[H@JL`f[H@HLpf.1\11o1H;[;Hu[H8H@dH5LsfDAWAVIAUATUSH(Hd|#;-[;H(#[;HPxHJHHxD* [IcHH@HH)HH;EeAHMcMcZ;J H@HL$N4Lt$ZLH@N<=i;IZ1H9l;IZLH$`IM;aZLHnLLS[IHHcH5@{#Lh[H5Y{#LnLLZLIHI|#116[11mML'EuEHD$L`AD$ % =I$H@ HHD$AFE1HHD$OHt$LssINj;YYH@ H)HI;Lu>YLH^HELIL;d$tiIEN4 A~uLdIHt֋;X1HjLHD$o;IXHt$LLHcI_Lo;XH(H([]A\A]A^A_;XHֳLHwe!MAG % =ILx MH5`y#LYH5yy#L9lLL^`I'fD1LfQ;WHHHeHfD;WLH!oIiI$H@ Hx$I$H@ H@HHD$@;WLHnHHD$L`tsAD$ % =t;KWLHnHxHD$L`t;AD$ % =q;WLH_n]f.AD$ % =t^;VLH(n8;V;HVH8H@J,;V;HhVHl$H(I$H@ Hx#LH=1 kH=1jH5Lmff.fAWAVIAUATUSH(HDw#; V;H(V;HPxHJHHxD*UIcHH@HH)HH;EeHMcU;J H@HL$JHD$UAU;AH@HcMcL<|U;H@J@ % =ZU;H@N,KULHl$H|$c;IU1Hf;I ULHZIM;TLHiLLUIH^H]BH5u#LUH5u#Lh$LLwiLIHv#11U11vhML谓A;%TH@ H)HM;Le T1H5Hj;ISLHY;HESH@ L)H)I~ 1Wfm;SH@ H)H;LeS1H5Hj;IjSLHYHEMnLME}ERHD$HhE % =HEH@ HHxHEH@ H@HHD$AGLE1HHD$^fHt$LlH$;RH@ H)H;L}RH4$HAXHELIL;d$IEN< AuL^HH$tы;TR1HcLHD$=i;I3RH $Ht$LH\H$WfD; RHVLH^MAG % =ILx MH5r#LSH5r#Le$LL[dIQH@JH@ $=D1LƐ;_QH(H([]A\A]A^A_D;AQH@ H)HA;Le&Q1H5Hg;I QLHV;HEPH@ L)HAF;$P$Hfc;IIl$PLH\VID$L]4f.;PH@ H)H9;LenP1H5Hf;ISPLHU;HE=PH@ L)He;Icn"PHHbLf; PLHYgI!MnLfIF0;O;HOH8H@J,;O;HhOHl$H(5;OHHfHHD$HhE % =0;MOHHfHxHD$HhE % =;OHH_ff.;NHHH\H>fD;NHHH~\HfD;NHHHV\HfDE % =;^NHHeHD$R@;9NHHH[HfD;NLLH[IfD;MHHH[HfD;MLLH~[IyfD;MLLHV[IHEH@ #Ho#LH=1bH=|1aH5LdLZH=1aHEH@ AVAUIATUSH H&n#dH%(HD$1;L;H(L;HPxHJHHxLc2LH@JH)H;D$ EfHD$L1H1^;HwLHIcHL4R;IWL;H@L$HLHLm`C;.LH@HH@x &;LH@HDHSHŋ;Mc)D;J H@H $N,DHL3Xb;CH@JH@x E;CH@JLH@(@;Ht$>Ht$H@DIH=:X1;SH=W1-SH5rL.Vff.AWAVAUATAUSHHHt$tHD[]A\A]A^A_HQ_#IMc;>; >;H(>Ht$LHT;I=LH^P;HD$=HZV;=HV;=;HHxLqLpx=L;;=HH+HHHA;u=H@ H)H\Lm;HU=LHB;HE?=Ht$HB;HE'=H(;=H5)HU;=;HH@H8HCPDfDSHG`HH8kB1HtHP@HHHC[AWAVAUATUHSH(HT#;3;L03;HPxHJHHxD*m3IcLH@HH)HHF;IFEeHD$Mc53;J H@HL$J,3AU;AH@HcMcL42;H@J@ % =2;H@N,2LHJANj;21HWD;I2LHB8HmIŋE % =HEHh HpHH}@;M2LHrFHuL>3IHH:H5+S#LS3H5DS#LF;1HL$HDLH7;LIH"T#;111H(311EMLpA;k1H@ H)H;LeP11H5HG;I51LH6;HE1H@ L)HI~ 145 ;0H@ H)H;Le01H59H\G;I0LHW6HEM~LMAE1HHD$I}@H{NAH5I}@HAF'AFLHv(HHHtHPHHH2;,HHHf:HfD;,;Hw,H8H@J,;a,;HhV,Hl$H(f;9,HHH9HfD;,HHH9HfD;+LLH9IfD;+LLH~9IIfD;+HHHV9HfD;q+LLH.9IAfD;I+HHH9HHM#LH=SE1?H=E1?H5DHBH=1?L18H=1?AWAVAUATIUSH(HK#;*;L0*;HPxHJHHx**HcLH@HH)HH;IFDmHD$McHcP*;J H@HL$N44*;H@L<%*1H;;H*HH/InIċE % =4HEHh HHH};)LH=HuL*IHHn2H5J#L*H5J#Lx=;a)HT$HLH12LHD$HK#;4)H|$H(HD$11Lxc*11=MLThA E1HHD$I}@H9HI}@9HxI}@9H@H0LBIƋ;(H@ H)H;Lmd(LH .HELIL9d$tgIGN, A}dL3IHtҋ;(1H9LHD$?;I'Ht$LLH2I[HD$PH|$5;'H(H([]A\A]A^A_D;'HLH4MAG % =7ILx MFH5xH#L(H5H#LQ;;:'HL$1LHH)HD$@<@I}@7HfLHv(HJHHtHPHH2H2*;&HH>Hf;&HHHF4HfD11'11f:H|$31LewD;1&LH=I;&;H&H8H@J,;%;Hh%Hl$H(H5L=H=?1m:H=n1_:HH#LH=?1E:DAWAVIAUATUSHHF#;m%;L c%;HPxHJHHx*N%HcH@HI)IA#;DmMcHc%;N$H@N<%H@L4IoE % =HEHh HHAF % =IvH81H(;H$HH@*;H$H@J,;w$;Hhl$LH(H[]A\A]A^A_;I$HH;HQ;)$L1H?HXH5PL;H=18fAWAVIAUATUSHHE#;#;L #;HPxHJHHx*#HcLH@HH)HH;DmIMc{#;H@N#LH5>#L1I}@T$,HDD$(HL$ LL$0#L*fkAV;H@HcHT$HЋ@ % ==HT$;H@H4Ht$$Ht$Hr4D$(;AVH@HcHHD$A;AV;H@HcHT$ HЋ@ % =YHT$ ;H@H4Ht$ Ht$ H3D$,;AMcfH@J#HHD$HEPHD$fDI}@2Of;LH 3HyD$,HD$ [f.{HT$H@HH@ D$(QSHT$ H@HH@ D$,H=Y71HD$H=61/H=71/-H55L2H=61/H= 61~/H=#H|$H=q1b/L'H=[71L/H=%71>/H<#H|$H=61"/HD$ 5@ATUSL'I9tHHMtL!I<$t H+[]A\fLX0fDAWAVAUIATUSHH4;#;;L0;HPxHJHHx*HcH@HI)LH;DeMc;N4H@N,HL-+;H@JH@x ;dH@J<'IH;Hc9;H@L<*HLO-;H@HH@x ;H@H<'HHA} uf@wF%uPH=61J;;HH8H@f uH=61 HL}.HtIuHt HFHtH0HK2}IIoMmE % =u_HEHx LW;LH;HH@J,;;HhIL0H[]A\A]A^A_@;HH/H@H=A61*DIE@HHxP=H=<51 ,H=41+H=X41+H5uL.H=41+@AWAVIAUATUSHH48#;;L(;HPxHJHHx*HcH@HI)IA;DeMc;UN<H@HcL4;H@N,HL*;nH@JH@x ;QH@J<$IH;Hc&;H@H4Ht$Ht$H5*3;H@HH@x ;H@HHcH@HI)IA;DeMc;UN<H@HcL4;H@N,HL (;H@JH@x ;H@J HcH@HI)LHU;DeMc ;N4H@N, HL ; H@JH@x ; H@JfDA?H@ L)H A?Me1H5/HA?ILH}A?IEH@ L)Hq H{ 1A?IMl$LH;ID$H߃9l$0)L4$I~T3A?IYL(A?N1H5HA?H2HHA?H HHlA?I~LHA?A?HH@H8HH@H8A?A?HH@H8yHH@HA?@  tA?HH@H8lWHH@HA?@ u=8A?HH@H8 HH@HA?x @A?HH@H8 HH@HA?@ SA?HH@H8. HH@HH8A?A?HH@H8 dHH@HHHx A?@1H1@A?(H@ L)H A?Me 1H5,HA?ILHA?IEH@ L)HCA?D$D$HHA?H@ L)HA?Me|1H5+H A?I`LHA?IEIH@ L)HA?Lck-LHwDLcA?MH@ L)H# A?Mu1H5S+HvA?HD$Ht$HlA?IEH@ L)HA?Mc,$LMnHA?HD$xHt$HIFA$CC@HL$HT$H=1A? H@ L)HA?Me1H5*HA?ILHHIEA?IH@ L)Hf1LMl$A?HD$Ht$H=LID$H"kA?HH@H8NHH@HA?@ +A?HH@H8HH@A?L 1LH L4$H3HLLHLA?HA?A?HXPH;XXA?H#HD$HdH3%(P HX[]A\A]A^A_<: &H=1fD+H*LHA?HT$LHA?H)LHgA?<A?L1LHgH@fDA?HT$@LHLt$@IfDsH@ L)H`A?MeW1H5'HA?I;LHA?IE$H@ L)H4A?Ml$1H}A?ILHID$DH\$8E1LHl$4HD$WHHA?H@ L)HA?LkI}HH"HCL;t$LID$1J,0Ht@Hu@Ht7H/HH}@HxtvH}@ H@H0fD}VA?1HHHD$(HHD$ A?HHT$ Ht$(HHzH fH}@Hfl$4H\$87fA?HA?pLLH-HDKA?L<1LHH@cfDA?L 1LHH@mfDA?L1LHH@zfDA?HH@H8HH@H@ %= A?uDkA?HH@H8NHH@H@ tAA?2A?HH@H87HH@HHHx A?HH@H8A?HH@H@ A?A?HH@H8 HH@HfHf.B(EDA?`LLHIEDA?8LLHIlDA?LLHIDA?LLHIDA?LLH}IDA?LLHUIDDA?pLLH-IEDA?HLLHIwD#A?L1LHH@fDA?LLHI5DA?ȿLLHID裿A?L蔿1LH7H@;fDsA?Ld1LHH@fDA?@HH޹HHDA?HImLHmA?HH@H8־HH@A?L LH覾A?L藾1LH:H@|A?Lm1LHH@RA?LC1LHH@(A?L1LHH@A?LLHI}A?ؽLLHIA?赽A?HH@H8蘽HH@HHHxA?tA?HH@H8WHH@HH@80OA?2A?L#1LHH@DA?L1LHH@޼A?Lϼ1LHrH@贼A?L襼1LHHH@芼A?L{1LHH@`A?LQ1LHH@H=D1H=1:f.AWAVIAUATUSHH$";;L(;HPxHJHHx*λHcH@HI)IA;DeMc褻J4;H@H4$J@ % =v;H@N,g1LHHD$;DuMcBU;H@HcL,-H@J@ X;H@J@ % =;;H@N41LH>IƋ;D}Mc轺H@J@ ;衺H@J@ % =.;;H@NH $;H@HlAE %AEAM IELm;;HhޜH,$H(HD$dH3%(H([]A\A]A^A_@諜;Lh蠜H@H@Ml{fD;聜LHT$HܷIHD$H;T;IJI8H@L$FfD;)LHٶ H=n1趰!H5L貳H=1蔰@AWAVAUIATUSHH";轛;L 賛;HPxHJHHxD2蝛IcH@HLH)HB;H$AnHcj;L<H@L,S1H;I?LHH$;IăH56"L^H5O"LE11111LHI聞H$L.I1T11 11®4$L;蠚LHE;I苚H@L$;|;HhqIL8H[]A\A]A^A_@SA;H@McJ@ % =*;H@N4LHkD$ ;H5"LAH52"LE11111LHIdH|$ $LLL0蓙H@JH@ D$ uH5/L-ff.fAWAVIAUATUSH(Ht";=;H(3;HPxHJHHxD"IcH@HH)HE;El$IcՋ;H@L<HHD$ԘAT$;H@HcHHD$踘1H^;I褘LHI;I菘;H@@#/zHBD$ IŃ<H|$IHH5\"L脙H5u"L5H|$1蹛Ht$ L裤Lc1艘11@11L=EF;LDė;H@Jl8AE %A褗EAM MeLm;w;HhlIL8H([]A\A]A^A_K;Lh@D$ H@H@Ml;AMc;H@J@ % =t3;H@J,HH7D$ pfDÖH@JH@ D$ N@;衖LLHS H=w10H5DL1H=J1AWAVIAUATUSH8Ht"dH%(HD$(1;-;H(#;HPxHJHHxD* IcH@HHH)HB;H$Eeݕ;IcH@L<L4Õ;AMH@HcH,HD$ 褕1HJ;I萕LH5H$;IănAH@McN,AE t&% =IEMmH@HD$HuL-(E % =fHEHuH@H4$HD$HH5"L9H5*"LLHoIHxt$H<$覢HHHL?HwLLH$1LL$ MHH11IeH "LD$ H蝜H襭H "L1”11y1104$Lu|$ ;;HhJT=HHD$(dH3%(H8[]A\A]A^A_DÓL8X;詓HT$HHH$HD$fD;yLHT$HԮIHD$"H=I1ԓ11苔11B1LH=1ʧ5H5.Lƪ11M11LGH=(1艧fAWAVIAUATUSH8H"dH%(HD$(1;蝒;L(蓒;HPxHJHHx*~HcH@HLH)HBj;HT$DeMcJ;J H@HL$N<.;MH@HcL41H迣;ILH誗HT$;IŃH@HcH,E t&% =HEHmH@HD$ HuH-;蘑H5"LْH5ʲ"L芥L1LHIIHrLL+L1‰D$ IH|1HHHHD$XHL$HLyIG0HufDHIO(HP0IHuHH(LHA H+"1Z1111Ȥt$L ;襐HHJ;H萐H@J,;聐;HhvHl$H(HD$(dH3%(ufH8[]A\A]A^A_CH8c;)HHT$ H脫HHD$ \LH5 L褧1m11$11ۣ1L!H=b1cH"L101111螣t$LAWAVIAUATUSH8H";];L(S;HPxHJHHx*>HcH@HLH)HB;HT$(DeMc ;J4H@Ht$JHD$M;H@HcHHD$ ώ;MH@HcL<躎M;H@HcHHD$蠎1HF;I茎LE1H.HT$(D$IƃAG ;v<n1 XHD$@ h<`E1 IH5"LHD$(?H50"LH|$1tHD$EtD$ DEDL$HT$ MHH="1NIHHHt Hׯ"HHܣIH|$LH1ލ11蕎11LDL;*HHϒ;HH@J,;;HhHl$H(H8[]A\A]A^A_@% =u4HD$Io@ % =u;HD$LxD蛌1LH;HGsHt$1Hϧ;IMD;HcC;H@H@ % =!;H@H,HHbAʼnD$AfHl$(H8LH=1;H轋HHbHŋ@ % =uH}I&;聋1HHߦHf.[H@HHLh Dl$AH5Lff.@AWAVIAUATUSHHH4"dH%(HD$81;;L(;HPxHJHHx*ΊHcH@HLH)HB;HT$DeMc蚊;J4H@Ht$JHD$ y;MH@HcLHcH@HI)IA;DmHc;IcH@L,L$;H@H,1H莒;IԀLHyIƋE % =HEL}H@H$HSH5"LہH5̡"L茔LHHHLH5A1ːLLHHEHqHyH聙1誀11a11DL];;HhJT-HHD$dH3%(DH[]A\A]A^A_Ë;HHHIH$H5LK覑11̀11脓LǾr8ˋLH=H1H=Rff.AWAVIAUATUSHHHD"dH%(HD$81;~;L(~;HPxHJHHxD"~IcH@HI)IA;Al$AHcMc~;H H@HL$L4~;H@N,~1H&;Il~LHIAE % =IEM}H@HD$0HP;)~H5B"LH8HD$_H5P"LLxIHHL聁HHD$MLAAEMuLIED$$AD$,AD$(MtsMHT$t&AD$ <%= Et$$t*L$(D$,I~PL1}11X~11DLT;|Ht$H萂;I|H@L$;|;Hh|Hl$H(HD$8dH3%(uqHH[]A\A]A^A_DEgLH輵HD$Zf;i|HT$0LHėIHD$0I~XNH5ILߓ11f}11L` 8dLH=RH1萐H=脐@AWAVIAUATUSHHL-"dH%(H$81A}{A}H({A}HPxHJHHxr{HcH@HH)HEA}DcG{IcA}H@H HL$HH$"{A}SH@HcL$ {1H豌A}IzLH蚀A}IƃzH@HcH؋C t%% =HL{H@HD$(HuE1H5"LH\$0{H5ě"L脎HLtŅ1ӊE1H1HHD$\HHH<$H}HD$MtLH4$LHy1ɉHHٍuHLu1ҹHH词H"H}HDžH|$HEHH11z11膍1yt$LøA}ZyA}HXMyHL$HT HH$8dH3%(HH[]A\A]A^A_ yH88A}xHT$(HHJIHD$(.11z11ˌH=1]11y11諌LH='10蛊H5L,ff.AWAVAUIATUSHXL%q"dH%(H$H1A<$%xA<$L8xA<$HPxHJHHxxHcH@HI)IAGA<$kwHcA<$H@HHL$HT$HH$wA<$SH@HcL,w1HH}P~Hp|8fDuH8&t$(tH|$ H蛮HD$1u11v11Mt$(L葴A<$(uHt$HzA<$HuHL$H@HA<$tA<$HXtH\$HH$HdH3%(HX[]A\A]A^A_A<$tHT$8HH IHD$8dDHH=1vA<$HktHHzHË@ % =uH{YDA<$7t1HH蕏H1H}XzH5:L辋11Eu11H=61莈11%u11܇LH=X1a̅ff.AWAVIAUATUSH(H"dH%(HD$1;ms;L cs;HPxHJHHx*NsHcH@HI)IA~;DmMcHcs;N4H@N<s;H@H,r1H螄;IrLHx;Ir;H@@#grH肁IċE % =sHEHmHPHT$HH5"LsH5"Ltt$HHHHfHLuHLLHD$ qH_HLcdzHl1r11Ls11t$ LG;q;H@Jl0AD$ %AqEAL$ M|$Le;q;HhqIL0HD$dH3%(H([]A\A]A^A_@Sq;L`HqH@H@M$ċE % =;"qHT$HH}HT$Hu;pLLH請K11-r11L'H=1iԂH5LeH=1GAWAVAUATIUSHHH"dH%(HD$81;]p;L8Sp;HPxHJHHxD2=pIcH@HI)IAGN;AnHcp;H H@HL$HHD$o;AVH@HcL,o1H;IoLHju;IA oAH@McN4AF t%% =IMvH@HD$0HuE1AE tIMQ ցDLD% =WIEM}H@HD$0H\;oH5/"LH8HD$LpH5="Lt$0L|IH Ll$HLerHHD$ D$MMMo8MMt LIELAGMoLILJD$AIGD$,AD$(裇MIHtH"IDžLMyIMtAD$ uk<tg%= t[t$u[L$t#T$(tKD$,uCI}PLt8fDmL8|$tH|$ L賦HD$1m11n11et$L詬;BmHt$Hr;I+mH@L$;m;HhmHl$H(HD$8dH3%(mHH[]A\A]A^A_fD;lHT$0"LH4IHD$0HD$Mo8IMH=7IEf;ylLHT$0HԇIHD$0LH=M1n;I5lLHqIƋ@ % =uI~;l1LH_HI}X%PH5L聃H=e11l11LH=י18}1Ht%?uH1 pHff.@AWAVAUIATUSH8HT"dH%(HD$(1; k;L k;HPxHJHHx*jHcH@HI)IAl;DuMcjU;H@HcL$jU;H@HcHcL,j;H@HHD$ H$xj;J H@HL$J,\jHH~;BjH@JH@x ;%jH@J"LU;c;HhcJT-HHD$dH3%(ukH[]A\A]A^fLzIsH=12xH=˔1$xH5L%{H"LH=1wfufDAWAVIAUATUSH8HT"dH%(HD$(1; c;L(c;HPxHJHHxD"bIcH@HI)IAE|;Al$HcbAT$;H@HcHHD$b;AT$H@HcLHL-H5^HF;H@(>H%-H5QHF;H@(>H~$H5HoF;>HH5+HRF;k>H.H5*H5F;N>H'8H5+HF;1>HH5+HE;H@( >HsH5HE;H@(=HlH5HE;=H,H5HE;=HR+H5HsE;=H%H5HVE;H@(e=H%H5 H/E;H@(>=HH5ЁHE;!=H H5ہHD;H@(;7HH5H>HX";6HH5݀H>;6H?H5FH>;6HH5ˀHs>;H@(6H[H5̀HL>;H@([6H4H5̀H%>;H@(46H H5΀H=;H@( 6HH5ǀH=;H@(5HH5ȀH=;H@(5HxH5ɀH=;5HH59Hl=;H@({5HH5/HE=;H@(T5H-H5H=;75HPH5H=;5HӦH5H<;4HH5WH<;4H)H5ZH<;H@(4HH5SH<;H@(4H;H5TH\<;H@(k4HH5UH5<;H@(D4HH5NH<;H@(4HH5!H;;H@(3HH5(H;;H@(3HxH5H;;H@(3HQH5Hr;;H@(3HH5HK;;H@(Z3HH5H$;;H@(33HH5H:;H@( 3HH5H:;2HH5 H:;2H H5H:;H@(2HH5Hu:;H@(2HH5HN:;H@(]2HfH5H':;H@(62HH5H:;H@(2HH5סH9;H@(1HH5*H9;1HTH5H9;1HH5Hx9;1H*H5H[9;t1HH5&H>9;W1H`H51H!9;:1H#H5;H9;1HH5H8;1HH5"H8;0HH6;.HxH5QHi6;.HkrH5\HL6;e.H΀H5_H/6;H.Ha|H5jH6;+.HzH5mH5;.HxH5pH5;-HJvH5-H5;-HsH5^H5;-HH5H5;-HqH5Hd5;}-Hv
,HaH5H4;!,H_H5H3;,H}H5H3;+HXH5H3;+Hs\H5H3;+HH5Hw3;+HUH5HZ3;s+H|SH5H=3;V+HQH5H 3;9+HNH5sH3;+HKH5H2;*HHH5H2;*HFH5H2;*H^BH5H2;*H?H5 Hr2;*H=H5HU2;n*H;H5(H82;Q*HH5H2;4*H-H5H1;*HH5)H1;)HSH54H1;)HVH5?H1;)HyH5JH1;)H0H5Hm1;)H.H58HP1;i)HyH5H31;L)HUH5H1;/)HH5)H0;)HH54H0;(HH5?H0;(H*H5BH0HI";(H](H5FH~0;(H$H5IHa0;z(HH5LHD0;](HH5WH'0;@(HH5H 0;#(H|H5H/;(HzH5(H/;'HbuH5H/;'HUH5H/;'H(H5!Hy/;'HKH5,H\/;u'HH5XH?/;X'HH5XH"/;;'HH5YH/;'HGH5ZH.;'HH5YH.;&HH5XH.;H@(&HfH5MH.;H@(&HH5BH`.;H@(o&H؞H57H9.;HH@(E&HnH5)H.;(&HAH5~H-; &HH5 H-;%HH5 H-;%HH5 H-;%HMH5 H~-;%HH5y~Ha-;z%H)H5lNHD-;]%HFH5o~H'-;@%HH5H -;#%HpH5H,;%H߳H5H,;$HH5#~H,;$HH5H,;$HnH5~Hy,;$HH5~H\,;u$H.jH5'~H?,;X$HqeH52~H",;;$;H@x/$HHt:Q*&;$H88;#[D]HA\+3f.HtSHH89H[0Hu[DHUHSHGt2 tmH}HtH[]I:fH[]fH_XHGhHtH{:H[0Ht}uHCXfDHLJH}Huf.ff.@HW`HH9tHtHHtH9uHtDHHw`HW`H9tCHtRHH9u@HH9t HHuHHHHfHHG`H1fHHt4H9tH@HHtH9uHtDHHfHff.AUATUSHH_(HHGHHt}HPIHHtH5֕H!HEHHPHs(H{@;IHtIHxHuHHtDHFHt;H"HuHu+HK&LmHH[]A\A]@HuH@H &tHuHHH[]A\A]*fDH}H,HEHHtHfH{@H]H1HEHHuHI<$6I$gf.ATIUHSHWHGHt^I\$HtHHH[0Hu[]A\It$HfLH%It$HL*AD$fDuI\$XHtfHH50H[0Hu}Hw(HRH@/:HH|HxIt$HHqHFHdH!It$HOL$u@HH[0H_f.HHPH-HG`H_HtH[0H5]H|)H[Hp)HGhH_fDHGHH_HfH@fHڍK@1@f1ff.fATUSHHH4*4HH"!H}@H9{@tG1H޺/H}HËCt=Hu 1Hl#{Iu7L[]A\HP0H}Cuà t9H]IH] {Hk(tH(L[]A\@I[]LA\DLcLeLMtHh(H@0HuHC HE HCHC MVLHP(H[0HuL[]A\1HLc"H=1,f.HtGHtBFt:H9~(u$SHHHHHt61HTHt/xu!HL$dH3 %(H []A\@1@HHt$sHHtH}@HT$H(IHtBHPHHH-0"IHD$Ht HUHHUMtLdH-0"HD$HUHuHD$HHD$>2 fHtwHtr~utH9~(tfSHHH@H9~@tde$Ht0HKXHu HCX#HHQ0HuHA0HH8H[fD1H[H@1DHHt$SHt$HKXHHuAUATUSHH^HIHL-OfDu;LH'H{HsH'H5hH'H[0Ht%CuHKPIt$@LHH[0HuH[]A\A]HUHSHGthvXt; t\H[]f.{uHsPHH6 H;t@H]0HuH[]uHX:H}H[]+1DH$fDHt.SH H[0HtHu[f[ø1Hu]HH9rHtJfHBXHu%DH@0HtH9pHuH@HH@0HuHBHtztHH9rHuHBHDH9t1HB0HuHJ(HHHEH9tHP0HuHH(HuH9[f.DG#UHSHH&!oECH[]HLoHt'GHXHcH>fH/HHngH$H%H3HeHH+HHmUHSHHH; KDEHHH[1H=]7SH~H=1H1[vfDHAVAUATUH-u*"SH}9 L%*"}L M4$ HLAHNH=1H5*"1H}}M$$H LHH[]A\A]A^HH=11Jf.SH HHp HHɀJH9u@ [DSHH@[fAWAVAUATUSHHHI[ H4)"Hŋ;L-)";L M}HLA֋;1H5H ;H@@ % =1H5H;LpHLHHL;ue];MmL KLHALHH[]A\A]A^A_1H5:HJH@HHx 1H5H';H@@ % =tI1H5H;HhHHH H=B~191H5HH@HH@ fDAVAUATUSHx'"Iċ;>H-'";L Lu%HLAՋ;1H54HD;H@@ % =t1H5 H;LhHLHHLu[L;;HmL [H]HLA\A]A^@k1H5HH@HHx H=>}1ff.@ATUSHL&"Hŋ;1H51HA;H@@ % =tT1H5H;L`HLHHPHHH[]A\D1H5HH@HHx DSHCHt@[H@[fSHHtht[fDH[GAVAUATUSH-%";1H5H%;IH-%";L LuHLAՋ;1H5H;H@@ % =t|1H5H;LhkHLHH5A%"lIT$;HHB 9;HmL '[H]HLA\A]A^@ 1H5*H:H@HHx ff.fUSHH#";1H5H;H@@ % =tB1H5H;HhHHH[H][1H5zHH@HHx H[]t@HtwHHtfDSH$"HOHwBH" t2 Ht2H@HH@@H[Hu1[1ff.fSHH{HtHHtBHX[@G tLv2 tEu8HG@Ht?H;xXt%H;xPtHG@ffDu H(t;HGH ff.ATU1SHtoHEG~ []A\fH;HtH9tCHCHHtL MtHCLH""H[]A\HHCHHt!L MtHCH(um c 릐H1H=TxCJAWAVAUATIUHSHH!!";;HL5!"I>t!;;M>L LHAHH}HI~Iŋ;1H*;IpLLLH I>tL AEMwH" u}I>t ;(;M.H LHHL[]A\A]A^A_DIHtNMWI$IEAD$DL8H}pHvAEhH=v1?ff.@HtwGHuHcH>D1D @@fDH16 fD3USHHH-,"}Htg}H8H9tT}HaHHBt6H[C % =u3HHP HtHHtH9t H1H[]}pHHHff.ATUH-r"SH}6HtA})H8H9t.LcAD$ % =u)I$H@ Ht [H@]A\[1]A\f}LH(HtH[C % =t}HHHH@ ff.fAVAUATIUH-"SH}_Hty}RH8H9tfMl$AE % =ubIELp LkAE % =IEH@ IHPMd$AD$ % =u=I$H@ @H[]A\A]A^D}LHI}LHfD}LHiHt_UHSHHCPvH;HtHH[0HuH[]ÃtH{XHtHH{H@1HUHSHHHJwHu~H{HtH?H9thHtwH9trHEHCEHt H9tOHPttHxXHt H>HHt>Hx(HDHxH!H[]DHCfDHHtHtHHtHRfHff.@UHSHH"HHtH(H@@HH[]Ð1H=%p2HH[]AUATU1SHHtoHEG~L%"HA$H[]A\A]L/MtIHt4H9t?LoL%p"IDžHL^@L%I"L%9"A$ff.ATUHSH";;HtKH#;I1H? ;HLHHoH0AD$H[]A\fH8[H]A\ÐATUH-r"SH}6}H%H8H9tJ}HnHHt,LcAD$ % =I$H@ Hf}H]nHHtH[C % =u1[]A\}HHfDkH=u}XLHHoH[C % =t }$HHtHoHH@ AUIATAUHSHHH }~/1 |=~!HcH9rHH[]A\A] @AAtAD$Hv$E<E Mt/H$HLHHH%"HHDH(IHt H"HHL$dH3 %(L}H[]A\A]A^A<$wHHH HJ@A<$OH@8tIDA<$/HH4U @HP+ff.AUATIUHSH(H"dH%(HD$1;;HD$HHm@Ht|HUpHtsHExu@HEHUpxHL$L ;Ll$IjLLH\ H"LHD$HUHD$zuH 1LVHL$dH3 %(u H([]A\A]&fDAUATUSHHdH%(HD$1HHn@HH}pL%"A<$HA<$H8H9C H$% =HLkHpH4$MtFHtAC HExu@HExHUpHLHu$H4$fDL0fD1HHL$dH3 %(uiH[]A\A]A<$HHH4 H4$IU1@A<$H4$H@8r6SH";m;f[H8f.@AWIAVAUIATUSHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H"M8HHH(^L$IH$D$0HD$HD$ HD$]jE1LjHcLHLD$PXHZHHCxHHCxH;UHH+SHHC H)HHI$L}HEHC L)HLHMgIGHC L)H)IE8HIl$Hcp4DHHiID$HC H)HIE8HHHcp8HH5H5IeHHEH+HHVHH@ H uiH taH ρ tNfDHCXH9CPHHL$dH3 %(H[]A\A]A^A_ËH @t+H8tHFHHHx 1H1@@ {H@ HFHHHx uHFHHQ1HH@H8(HHVHH1HHH@H@ HVHH1HH@H@ u2HHVHH1HtH@Hx HHVHH1HBHH@H@  HVHH1HHH@H@ HF HHu1HH@H1HHNfDLLHIDHHHHHDLLHmIDHHHMHDHFHHu1H H@HHH (H81HH@H@ t4HHFH8x1HH@HHHx +HHFHHl@ HFHfHf.B(EHFHHHxcHFf.HFHH1HH@HH8%HHFH8g1HH@HHHxYHHFH8h1HH@HHHxHHFH8u1HrH@fDHH@80fDHHVHHP1H/H@H@ %= E1HH@H@ %HHFH8r1HH@_8H@ }:fDAWAVAUATUSHHHt$HT$@HL$HLD$PLL$Xt:)D$`)L$p)$)$)$)$)$)$dH%(HD$(1HLIH"8aIHL LIFxHIFxI;ZLI+VHIF L)HMIELIl$ID$H|$D$IH$ D$0HD$HD$0HD$ jLE1jHT$HcLLD$ Iu(ZYF uI<tE%= t9LL IF H)H9HHL*H!DLLIF H)H~LLLmHEIF L)HHC8LImHcp4}LHIEIF H)HHC8LHHcp8JLHoHEI.Mt AsH5]LIHVHH@ H ucH t[H ρ tHIFXI9FPLH\$(dH3%(H[]A\A]A^A_ËH @t+H8tHFHHHx1L1@@ {H@ HFHHHx uHFHLQ1L6H@H8(IHVHH1LIH@H@ HVHH1LH@H@ u2IHVHH1LH@Hx IHVHH1LrIH@H@ HVHH1L@IH@H@ HFHHu1LH@H1HL#NfDH5![L@LLLIDHHLHDLLLLIDHFHHu1LBH@HHLX0H81L H@H@ t4IHFH81LH@HHHx 3IHFHHd@ HFHfHf.B(EHFHHHxkHFfHFHH1LFH@HH85IHFH8w1LH@HHHxiIHFH8p1LH@HHHxIHFH8u1LH@fDHH@80fDIHVHHf1LoH@H@ %= U1LFH@H@ 5IHFH8z1LH@gxH@ BfDAWIAVAUIATUSHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H!M8HHH(NL$IH$D$0HD$HD$ HD$MjE1LjHcLHLD$@XHZH~HCxHHCxH;HH+SHHC H)HI$L}HEIt$(F uG<tC%= t7LH_HC L)H7LLHILHHC L)H~LHMg-IGHC L)H IE8HIl$Hcp4HHID$HC H)HIE8HHHcp8HHH5VHHEH+zHHVHH@ H uiH taH ρ tNfDHCXH9CPH:HL$dH3 %(H[]A\A]A^A_ËH @t+H8tHFHHHx1H1@@ {H@ HFHHHx uHFHH(Q1HH@H8(HHVHH1HgHH@H@ HVHH1H5H@H@ u2HHVHH1HH@Hx HHVHH1HHH@H@ HVHH1HHH@H@ HFHHu1HoH@H1HHNfDH8^HHH=H]DLLHIDHHHHDHFHHu1HH@HHHHH81HH@H@ t4HHFH81HXH@HHHx KHHFHHl@ HFHfHf.B(EHFHHHxHFf.HFHH1HH@HH8EHHFH81HH@HHHxyHHFH8h1HRH@HHHxHHFH8u1H"H@fDHH@80fDHHVHHp1HH@H@ %= e1HH@H@ EHHFH8r1HH@_H@ :fDAUATUHSHH!8IH8Ht3HZLLcIt$LHLHHfK HH[]A\A]ÐAUATIUSHHV!8IH8Mt)uHHcHcLLHHK HH[]A\A]fH5M!DNDFJ 1Ax 1i 1f 1e 1r 1P 1Dȉ 1D 1~vAA DAAD1AA DAAD1ЍAA D1AADЉ!B AA DAAD1ЃIAA DAAD1ЃRAA DAAD1ЃUAA DAAD1ЃeAA DAAD1ЃcAA DAAD1ЃaAA DAAD1ЃpAA DAAD1ЃsAA DAAD1ЃeAA DAAD1ЃmAA DAAD1ЃaAA DAAD1ЃNAA DAAD1DAA DAAD1DAA DAAD1AA DAAD1AA DAAD1ЍAA D1AADDR!D ADA1ABeAA DAAD1؃mAA DAAD1؃aAA DAAD1؃NAA DAAD1DAA DAAD1DAA DAAD1AA DAAD1AA DAAD1؍AA D1AAD؉!B AA DAAD1؃eAA DAAD1؃mAA DAAD1؃aAA DAAD1؃NAA DAAD1؃lAA DAAD1؃aAA DAAD1؃cAA DAAD1؃oAA DAAD1؃LAA DAAD1DAA DAAD1DAA DAAD1AA DAAD1AA DAAD1؍AA D1AAD؉!B AA DAAD1؃sAA DAAD1؃eAA DAAD1؃tAA DAAD1؃uAA DAAD1؃bAA DAAD1؃iAA DAAD1؃rAA DAAD1؃tAA DAAD1؃tAA DAAD1؃AAA DAAD1DAA DAAD1DAA DAAD1AA DAAD1AA DAAD1؍AA D1AAD؉6!BAA DAAD1؃eAA DAAD1؃uAA DAAD1؃lAA DAAD1؃aAA DAAD1؃VAA DAAD1DAA DAAD1DAA DAAD1AA DAaAAD1AA DAAD1؍AA D1AAD؉-!D DAAD1ЃtAA DAAD1ЃaAA DAAD1ЃDAA DAAD1DȃtAA DAAD1DAA DAAD1AA DAAD1AA DAAD1ЍAA D1AADЉW! ȉ1ȃe ȉ1ȃg ȉ1ȃr ȉ1ȃa ȉ1ȃT ȉ1Dȉ ȉ1D ȉ1 ȉ1 ȉ1ȍ 1ȉȉ!B ȉ1ȃn ȉ1ȃo ȉ1ȃi ȉ1ȃs ȉ1ȃr ȉ1ȃe ȉ1ȃV ȉ1Dȉ ȉ1D ȉ1 ȉ1 ȉ1ȍ 1ȉȉ! ‰1Bg ȉ1ȃn ȉ1ȃi ȉ1ȃd ȉ1ȃo ȉ1ȃc ȉ1ȃn ȉ1ȃE ȉ1Dȉ ȉ1D ȃd1 ȉ1 ȉ1ȍ 1ȉȉ! Љ1ЃI Љ1ЍPc ʉ1ʃi ʉ1ʃl ʉ1ʃb ʉ1ʃu ʉ1ʃP ʉ1Dʉ ʉ1D‰ ʉm1 ʉ1 ʉ1ʍ҉ 1ʉʉ! Љ1Ѓe Љ1Ѓt Љ1Ѓs Љ1Ѓy Љ1ЃS Љ1AD ADA1ED ADA1Dlj lj1 Ɖ1ƍ 1ЉЉ !fHM!SHHs!8BLH7HHVHH@ H uNH tFH ρ t3HCXH9CPHH[]A\A]A^A_H ft+H8tHFHHHx1H1@@ H@ HFHHHx uHFHfHa-^!1H=((HIUA1HH@H8HHVHH1HHH@H@ WHVHH1HH@H@ u2HHVHHx1H|H@Hx HHVHH1HJHH@H@ HVHH1HHH@H@ HFHHu1HH@H1HH&fDLLHIDHHHHHDHFHHu1HZH@HHHphH81H$H@H@ t4HHFH81HH@HHHx CHHFHHl@ HFHfHf.B(EHFHHHxHFf.HFHH1HVH@HH8UHHFH81H&H@HHHxqHHFH8h1HH@HHHxHHFH8u1HH@fDHH@80fDHHVHH1HH@H@ %= u1HVH@H@ UHHFH8r1H&H@_H@ ?ff.AWAVIAUATUHSHHa!HT$8%HHL HO HHT$D=!1IHYHLHAW IA$H8Y^HD=!1HHAWIH(A$LH߹QXHCxZHHCxH;LH+SHHC L)HMt$LHIl$IHC H)HLeHHH+H5:8LHHHVHH@ H uNH tFH ρ t3HCXH9CPHH[]A\A]A^A_,H ft+H8tHFHHHx1H14@@ H@ HFHHHx uHFHfH8a-!1H=!\HIUA1H~H@H8HHVHH1HOHH@H@ WHVHH1HH@H@ u2HHVHHx1HH@Hx HHVHH1HHH@H@ HVHH1HHH@H@ HFHHu1HWH@H1HHs&fDLLH=IDHHHH HDHFHHu1HH@HHHhH81HH@H@ t4HHFH81HhH@HHHx CHHFHHl@ HFHfHf.B(EHFHHHxHFf.HFHH1HH@HH8UHHFH81HH@HHHxqHHFH8h1HbH@HHHxHHFH8u1H2H@fDHH@80fDHHVHH1HH@H@ %= u1HH@H@ UHHFH8r1HH@_H@ ?ff.ATIUSH1HdH%(HD$1HH$,H$HHt0HsH~@H{1HtHH轼IH{1L1蠼IMtH{L LcHt Ht!HH<$Ht H_!HD$dH3%(u H[]A\AVAUATIUSHH_`Lw(HtHIH-+ @HHt+H{H|uHSHsLLHHuI|$SI|$ []Mt$A\A]A^ff.AWAVAUATUSHHHdH%(HD$1H$HtEIHHILfIHCHxHtHH<$Ht H@!LLHHHD$dH3%(H[]A\A]A^A_fHpH1BIHtZH<$Hnt%HCHxLxHH!L{LIGH<$Ht H!MdLSfH<$HuHCLxHHAWAVAUI ATIUSHHdH%(HD$1H$HHt;u&HL$dH3 %(HH[]A\A]A^A_D5u!1HHHLAVIA$HIA^A_1HHHt HH!I}H4$H<$IHt H!D=!MI~1HHLAWIA$ H /I~A[1[!H GHHLSIA$H1IEAY1AZj!Hx HSIH.A$HL DXZD1H=HHLAWIA$ HJ.Y^1D-!H=HHLAUIA$Hv_D-!1AXHSHIAUDDH=pff.@HtwAUATUHSHHrH5u1AIHtHLLHILH5>HDHH[]A\A]1ff.fAWAVIAUATUSHHHHt$ HL$ dH%(HD$81HD$0HD$HmDH;^ LH]HkIHtـ}tHT$0H1Lc(N!1HIljT$HLLT$IA$RHZA[XMtA!1LT$HLLT$IA$RH_AYAZHH=c,бHL$ H|$L1D%!1H3HLLATIA$HmD%j!X1ZH=2HLLATIA$H0YD% !H^1HLLATI A$Hr+_D%!1AXH=HA$ ATIH+LLE1Y^MLIEHҳHH觹H5H!HcHL,IcL>f. Љ1UЉ Љ1UЉ Љ1U Љ Љ1U Љ Љ1U Љ Љ1U Љ Љ1U Љ Љ1UЉ Љ1UЉ Љ1UЉ Љ1UЉ Љ1UЉ Љ1UЉ Љ1UЉ Љ1UЉ Љ1UЉ Љ1VЉ Љ1VЉ Љ1FЉ Љ1FЉ Љ1D$D A1DALLL$荰HHLATL$$IA$Ht$zXZHt H!HMt H!LH|$0Ht H!HD$0H;HL$8dH3 %(HD$HH[]A\A]A^A_HH=(Ht$0HHD$Hx舿HL`!1HD$(LT$BHLLT$IA$ RH'yw!1T$$A[XLT$(IzHLLT$IA$RH3%!1LT$$XZ轿HLLT$ IA$RHo'Y^9DHL$ H|$LLCH|$0D%!1`HLLATIA$HI蚿_D%!1AXL&HLLATA$ IH&`AYD%W!1AZH=&HLLATIA$ Hg&!A[A\L%&]D% !1H=蛾HLLATI A$H&վ_D%!1AXH=]HLLATA$IHF藾AYD%!1AZH"HA$ IATH%fAHFIL^AH8ImodnarodHarenegylIcL1I)HsetybdetH1IL1IuespemosM1L9tZIDMIH IL1I L1HHH1HHIHH1L1H M1M9uI)MBINTL &EOcM>AEBI0L EBI(L EBI L EBIL EBIL EBIL EL H1IH HHL1H1I HMHHH1L1H L1HH @H1H IH2HII1LJ4'LIHI1H1H HH H1H LII1HHLIH1I1H H>LH IH1I1HHII1H I1A1轻ff.fAV AUAATIUSH!HHt;u[H]A\A]A^D5!DH.HHLAVIA$HPXHZ[]A\A]A^f.AV AUIATIUSHHHt;u[H]A\A]A^HD5n!1HHLAVIA$H #YY>!^1Mt A}LuH= ԺHHLSHIA$XHZ[]A\A]A^ÐAW AVIAUATIUHSLHIMt A<$Ht}ubHt;uHL[]A\A]A^A_fD-j!1H(HLLUH:IA$cXZD%-!1HHLLATIA$H#!Y^`f.D=!1L蟹HLLAWA$IHٹ_AX AUATUSHHH!8 HI聿1I1HSHHt}udHt;uHL[]A\A]@HL1+HLLjIA$H5XZLH[]A\A]D1HLHLLjIA$HY^bfDH5!ATUHS8LI|$HHE8HHcp4QHHIt$jI A$H0 yHE8_HAXHcp8HIt$HjIA$ H >HE8AYAZHpPHhXHt>uHt}uI[]A\@1HֻHIt$jIA$HH޷Y^HuDHH1蓻HIt$HjIA$ Hs蛷XZ[]A\@AWAVAUATUHSHH!L8薤Ml$ MHHL0:HH誽 H IHCxHHCxH;yLH+SHHC L)HlMnHC MfL)HtLHI轥HH袩H5HI$L#致HHVHHp@  H H H ρ HCxL3HHCxH;\LH+SHHC L)HMn HMfH} D5!1IH 脵HLHAVIA$H辵HE8Y^HxPHt4-!1BHLHUHZIA$}XZLH`HHC L)HEIl$IHL#H5/HHHHFHH@ 9P P P с fHCXH9CPH蚭H[]A\A]A^A_ËH t+H8QHFHHHx1H1萹@ ;H@ HFHH^@ HFHfHf.B(Ef1HH@H8HHVHHa1HǴHH@H@  HVHH91H蕴H@H@ HHVHH1H`HH@H@ HFHH1H.H@HH8HHFH81HH@HHHx}HHFH8p1HʳH@HHHxHHFH8u1H蚳H@fDHH@80sfDHpzLLHuIyDLLHUIqP f.tkHHOHxHFHHHx/HFHH@80VfHHH=j@@ P tHHz !P HF1HfH@H8HHFHHF1H7HH@H@ HFHFH1HH@H@ HHFHH1HбHH@H@ HFH)H1H螱HH@H@ HFHH1HiH@H@ t6HHFHH1H;H@HHHx HHFHH1HH@H@ 4HHFH8u1HٰH@DHfHf.B(E1@Hu1H衰H@Hf.1HH賞 fDHVHH1HVHH@H@ HFHHu1H%H@HfD1HH;fDLLHIDLLHIDH谶HHVHH71H臯H@Hx HHVHH1HUH@H@ %=  fDHHFHH41HH@Hx  HHFHH1HݮH@H@ %= H@ {HFHHHx /HFHYHd1HuH@HH8HHFHH1HCH@HHHxHHFH81HH@HHHx:HHFH81HۭH@Hu1HíH@H@HH؛ HFHHu1H荭H@HfDHH蠛`HFHHHx#HFf.H8x1H,H@H@ t4HHFH8^1HH@HHHx H1HάH@H@ HHFH81H螬H@mH~ff.fAWIAVIAUATIUSHH޹!HH4$8蜘Lm LHMMH3HHt$H謱HCxHt$HH;HCxHH+SHHC H)HLnH$LNMLHHLL$?HHęLL$IHC L)HTIiMaHH+H5}LHrHHVHH@ H H H ρ fHCxHHCxH;HH+SHHC H)HLm HLeկHHژHHC L)HOIl$IHL#H5藧HCXH9CPHH[]A\A]A^A_cH t;H8AHFHHHx1H1pH[]A\A]A^A_Ð@ H@ HFHH^@ HFHfHf.B(E^f1HƩH@H8HHVHHF1H藩HH@H@ HVHH1HeH@H@ 9HHVHH1H0HH@H@ 8HFHH1HH@HH8HHFH8{1HΨH@HHHxmHHFH8p1H蚨H@HHHxeHHFH8u1HjH@fDHH@80fDLLιHUIDH Ht$fDHH HHhZHVHH1HƧHH@H@ HFHHu1H蕧H@HfD1HH諕S"fDLLHuIDHHHUHCDH HHVHH1HH@Hx HHVHH1HŦH@H@ %= UH@ fHFHHHx /HFHiHFHHu1HYH@HfHHpHFHHHxHFf.H8`1HH@H@ t4HHFH8N1HХH@HHHx oH1H螥H@H@ mHHFH81HnH@mDAWAVAUAATIUSHH!H8胑HL} MtMuH[]A\A]A^A_H0HHHt$ͩHuHCxHt$HH;HCxHH+SHHC H)HL~LvDHLHaHH薒HHC L)H3InHHI`L3HH5v IHHVHH"@ H uPH tHH ρ t5DHCXH9CPnHޛH[]A\A]A^A_ËH tSH8tHFHHHxx1H1ԧ@H1[]A\A]A^A_HfD@ H@ HFHHHx uHFH@ fDI|$0HcLؕH[]A\A]AUATUSHHHxthLHHI}0蒘I}0I6IH=wMHCDLH赥LH!H[]A\A]f.H[]A\A]HϬ!LHH=1 ff.AWAVAUIATUHSHHa!L8#Mt$ HL8AD$8H蓢H;HCxHHCxH;LH+SHHC L)HMwLIoՍHID$H腤IHC H)HLeHHH+H5[#LHHHVHH@ H uOH tGH ρ t4@HCXH9CPH誔H[]A\A]A^A_ËH t+H8tHFHHHx1H1褠@@ H@ HFHHHx uHFH}fIt$0HccfDH萏I1HH@H8 HHVHH1HϛHH@H@ WHVHH1H蝛H@H@ u2HHVHH1HlH@Hx HHVHH1H:HH@H@ HVHH1HHH@H@ HFHHu1HךH@H1HH6fDLLH轔I DH舡HHH荔H#DHFHHu1HJH@HHH`hH81HH@H@ t4HHFH81HH@HHHx SHHFHHl@ HFHfHf.B(EHFHHHxHFf.HFHH1HFH@HH8eHHFH81HH@HHHxHHFH8h1HH@HHHxHHFH8u1H貘H@fDHH@80fDHHVHH1HoH@H@ %= 1HFH@H@ eHHFH8r1HH@_H@ ?ff.AUIATUSHHX!L8LHH(̕AD$8OH臜H/HCxHHCxH;HH+SHHC H)HI$HHH5zHEH+HHVHH@ H uMH tEH ρ t2fHCXH9CPHڎH[]A\A]ËH t+H8tHFHHHx1H1Ԛ@@ H@ jHFHHHx uHFH]fIt$0L蓒fDHI1H.H@H8 HHVHH1HHH@H@ 7HVHH1H͕H@H@ u2HHVHH1H蜕H@Hx HHVHH1HjHH@H@ HVHH1H8HH@H@ HFHHu1HH@H1HH#6fDH؛MHHHݎHLDHFHHu1H蚔H@HHH谂fDH81HdH@H@ t4HHFH81H8H@HHHx sHHFHHl@ HFHfHf.B(EHFHHHxHFf.HFHH1H薓H@HH8HHFH81HfH@HHHxHHFH8h1H2H@HHHxHHFH8u1HH@fDHH@80fDHHVHH1H迒H@H@ %= 1H薒H@H@ HHFH8r1HfH@_H@ ?ff.AWAVIAUATIUSHH!HHT$8^~LLm HL8 u8HɖHqLHvHT$LHHCLHHILHIHLHI! HA$P虐HCxHHCxZYH;LH+SHHC L)HMoLHIo>IHC H)HLeHHH+H5TLHHHVHH@ H uPH tHH ρ t5DHCXH9CPH肈H[]A\A]A^A_ËH t+H8tHFHHHx1H1|@@ H@ HFHHHx uHFHuHu0LDHpQ1HޏH@H8(HHVHH1H诏HH@H@ WHVHH1H}H@H@ u2HHVHH1HLH@Hx HHVHH1HHH@H@ HVHH1HHH@H@ HFHHu1H跎H@H1HH|>fDLLH蝈I4DHhHHHmH*DHFHHu1H*H@HHH@|hH81HH@H@ t4HHFH81HȍH@HHHx [HHFHHl@ HFHfHf.B(EHFHHHxHFf.HFHH1H&H@HH8mHHFH81HH@HHHxHHFH8h1HŒH@HHHxHHFH8u1H蒌H@fDHH@80fDHHVHH1HOH@H@ %= 1H&H@H@ mHHFH8r1HH@_H@ ?ff.AWAVIAUATUHSHH1!L8wHMl$ HL8蠉AD$8H[HHCxHHCxH; LH+SHHC L)HMoLLHIogHH,yIHC H)HLuHHH+H5PLH|HHVHH@ H uVH tNH ρ t;HCXH9CPHrLLGH[]A\A]A^A_ËH t+H8tHFHHHx1H1d@@ H@ HFHHHx uHFH}fIt$0H#[fDHP}A1H辉H@H8HHVHH1H菉HH@H@ WHVHH1H]H@H@ u2HHVHH1H,H@Hx HHVHH1HHH@H@ HVHH1HȈHH@H@ HFHHu1H藈H@H1HHv6fDLLH}IDHHHHHMHDHFHHu1H H@HHH vhH81HԇH@H@ t4HHFH81H訇H@HHHx SHHFHHl@ HFHfHf.B(EHFHHHxHFf.HFHH1HH@HH8]HHFH81HֆH@HHHxHHFH8h1H袆H@HHHxHHFH8u1HrH@fDHH@80fDHHVHH1H/H@H@ %= }1HH@H@ ]HHFH8r1HօH@_H@ ?ff.AWAVAUIATUHSHH!L8qHMt$ H胃MtMuH[]A\A]A^A_DLL;uzD$ AD$8dH H贊HCxHHCxH;sLH+SHHC L)HfMwL$ LLHIo~HHrIHC H)HNLeHHH+H5C藁LHvHHVHH @ H tSH8tdHFHHHxHFHHHxt>HFHH@805H tH ρ tDHCXH9CP.H{pfIt$0HfDH0wfD@ H@ HFHHHx 1H1蝇D1H^H@H8`HHVHH1H/HH@H@ GHVHH1HH@H@ umHHVHH1ĤH@Hx t?HHVHH1H螂H@H@ %= @HHVHH1H_HH@H@ HVHH1H-HH@H@ HFHHu1HH@HD1HHp]fDHFHHu1H躁H@HHHofDH萈LLH{IDHHHu{HH81H9H@H@ t4HHFH81H H@HHHx HHFHH@ HFHfHf.B(E@HFHHF1H薀H@HH8HHFH8 1HfH@HHHxHHFH81H2H@HHHx-HHFH81HH@DHFH1HH@H@ HHFH81HH@H@ H $AWIAVAAUIATUSHHތ!L8kLIl$ HP}MHAD$8LHLD$H虄HCxLD$HH;HCx LH+SHHC L)H IhIHLH5!{HHVHH@ H H H ρ HCxH3HHCxH; HH+SHHC H)H HnLL~DLHwHH lIHC L)H MoIHL;H5zHHVHH @  H H H ρ yfHCxL#HHCxH; LH+SHHC L)H Il$IHL#H5zLH oHHFHH@ 3 @ >x 4@ %= HCXH9CPHtH[]A\A]A^A_ËH t+H8)HFHHHx 1H1萀@ H@  HFHH @ HFHfHf.B(EH fDH8}HFHHHxlHFHHHxSHFHH@80DHFH@ tzHHHxHFHHHxHFHH@80eIt$0LLD$~wLD$@Hnq@ P g>HFHfHf.B(E@ H@ HFHHHx =HFHD1HzH@H8(HHVHH1H_zHH@H@  HVHH1H-zH@H@ umHHVHH1HyH@Hx t?HHVHHb1HyH@H@ %= \@HHVHH1HyHH@H@ HFHH1H]yH@HH8HHFH81H-yH@HHHxHHFH81HxH@HHHxHHFH8u1HxH@DHH@803fD1HxH@H8 HHVHH1HoxHH@H@ OHVHH1H=xH@H@ qHHVHH 1HxHH@H@ HFHH1HwH@HH8UHHFH81HwH@HHHx%HHFH81HrwH@HHHxHHFH81H>wH@vD1H&wH@H8XHHFHH 1HvHH@H@ HFHH1HvHH@H@ HFHuoH1HvHH@Hx HFHtAH1HfvH@H@ %= HHFHfDH1H%vHH@H@ HFHH1HuHH@H@ HFHH1HuH@H@ t6HHFHH1HuH@HHHx HHFHH1HZuH@H@ HHFH8:1H*uH@'Hu1HuH@Hf.1HH#c+zfDHVHHp1HtHH@H@ HFgHHu1HtH@HfD1HHbfDHVHH1HNtHH@H@ HFHHu1HtH@HfD1HH3bfDLLƹHmIDHzLD$fDHHVHH1HsH@Hx ]HHVHH1HesH@H@ %= fDH81H,sH@H@ t4HHFH8P1HsH@HHHx HHFHH@ ZHFHfHf.B(EHHz &P H@ GDHFHHHx HFH!H1H=rH@HH8lHHFHH1H rH@HHHxHHFH8b1HqH@HHHxHHFH8C1HqH@0f.LLHkI>DHHt$cxHt$fHHxLLHMkI=DHH0kHHFHHu1HpH@HHH_Hu1HpH@HDHH^HFHHu1HpH@HfDHH^HFHHHxHFf.H81H,pH@H@ t4HHFH81HpH@HHHx H1HoH@H@ MHHFH81HoH@D1HoH@H@ HHFH881HVoH@%HH@ z_AWIAVAUATUHSHH|!LHt$8N[Ml$ HHlMAD$8L3HsHUtHCxHHCxH;$LH+SHHC L)HMnHT$LLHInfHHy\IHC H)HLeHHH+H57kLH,`HHVHHU@ H ucH t[H ρ tHHCXH9CPHeH[]A\A]A^A_fDIt$0HiH t+H8tHFHHHx1H1q@@ H@ HFHH@ THFHfHf.B(E4@HFHHu1HmH@HHH[`HCXH9CPHJ`D1HlH@H8HHVHH|1HlHH@H@ WHVHHT1HUlH@H@ HHVHH1H lHH@H@ HFHH]1HkH@HH8HHFH871HkH@HHHx)HHFH8 1HkH@HHHxHHFH8u1HZkH@fDHH@80VfDHVHH1HkHH@H@ HFHHu1HjH@HfD1HHYfDLLHdIDHHHdH7DHqHFHHHx{HF f.HHVHH61H/jH@Hx HHVHH 1HiH@H@ %= H@ HFHHHx ;HFHi1HiH@H@ HHFH8@1HniH@-DH8x1HLiH@H@ t4HHFH8^1H iH@HHHx Hff.@HH)w!HxHHHHǀH1H)HHBv!HBhHBXHv!HB`HnextPatternMatch( a-XML::LibXML::Pattern-object )XML::LibXML::Reader::copyCurrentNode() -- reader is not a blessed SV referenceXML::LibXML::Reader::readOuterXml() -- reader is not a blessed SV referenceXML::LibXML::Reader::readInnerXml() -- reader is not a blessed SV referenceXML::LibXML::Reader::readAttributeValue() -- reader is not a blessed SV referenceXML::LibXML::Reader::skipSiblings() -- reader is not a blessed SV referenceXML::LibXML::Reader::next() -- reader is not a blessed SV referencereader, name = NULL, nsURI = NULLXML::LibXML::Reader::nextElement() -- reader is not a blessed SV referenceXML::LibXML::Reader::nextSiblingElement() -- reader is not a blessed SV referenceXML::LibXML::Reader::nextSibling() -- reader is not a blessed SV referenceXML::LibXML::Reader::getAttributeHash() -- reader is not a blessed SV referenceXML::LibXML::Schema::validate() -- self is not a blessed SV referenceXML::LibXML::Schema::validate() -- node contains no dataXML::LibXML::Schema::validate() -- node is not a blessed SV referencecannot initialize the validation contextself, perlstring, parser_options = 0, recover = FALSEfailed to initialize Schema parserself, url, parser_options = 0, recover = FALSEXML::LibXML::RelaxNG::validate() -- self is not a blessed SV referenceXML::LibXML::RelaxNG::validate() -- doc contains no dataXML::LibXML::RelaxNG::validate() -- doc is not a blessed SV referenceself, doc, parser_options = 0, recover = FALSEXML::LibXML::RelaxNG::parse_document() -- doc contains no dataXML::LibXML::RelaxNG::parse_document() -- doc is not a blessed SV referencefailed to initialize RelaxNG parserparse_string: too many parametersXML::LibXML::Document::toStringHTML() -- self contains no dataXML::LibXML::Document::toStringHTML() -- self is not a blessed SV referenceXML::LibXML::Document::toFile() -- self contains no dataXML::LibXML::Document::toFile() -- self is not a blessed SV referenceXML::LibXML::Document::toFH() -- self contains no dataXML::LibXML::Document::toFH() -- self is not a blessed SV referencepxpath_context, pxpath, to_boolXPathContext: lost current node XPathContext: empty XPath found pxpath_context, prefix, ns_uriXPathContext: cannot register namespace XPathContext: cannot unregister namespace self, comments=0, xpath=&PL_sv_undef, exclusive=0, inc_prefix_list=NULL, xpath_contextXML::LibXML::Node::_toStringC14N() -- self contains no dataXML::LibXML::Node::_toStringC14N() -- self is not a blessed SV referenceNode passed to toStringC14N must be part of a document(. | .//node() | .//@* | .//namespace::*)(. | .//node() | .//@* | .//namespace::*)[not(self::comment())]Failed to create xpath context2 Failed to compile xpath expressioncannot canonize empty nodeset!Failed to convert doc to string in doc->toStringC14NXML::LibXML::Node::appendChild() -- self contains no dataXML::LibXML::Node::appendChild() -- self is not a blessed SV referenceXML::LibXML::Node::appendChild() -- nNode contains no dataXML::LibXML::Node::appendChild() -- nNode is not a blessed SV referenceAppending an element to a document node not supported yet!Appending a document fragment node to a document node not supported yet!Appending text node not supported on a document node yet!XML::LibXML::Node::insertAfter() -- self contains no dataXML::LibXML::Node::insertAfter() -- self is not a blessed SV referenceXML::LibXML::Node::insertAfter() -- nNode contains no dataXML::LibXML::Node::insertAfter() -- nNode is not a blessed SV referenceXML::LibXML::Node::insertBefore() -- self contains no dataXML::LibXML::Node::insertBefore() -- self is not a blessed SV referenceXML::LibXML::Node::insertBefore() -- nNode contains no dataXML::LibXML::Node::insertBefore() -- nNode is not a blessed SV referenceXML::LibXML::Node::unbindNode() -- self contains no dataXML::LibXML::Node::unbindNode() -- self is not a blessed SV referenceXML::LibXML::Node::addSibling() -- self contains no dataXML::LibXML::Node::addSibling() -- self is not a blessed SV referenceXML::LibXML::Node::addSibling() -- nNode contains no dataXML::LibXML::Node::addSibling() -- nNode is not a blessed SV referenceAdding document fragments with addSibling not yet supported!XML::LibXML::Node::removeChild() -- self contains no dataXML::LibXML::Node::removeChild() -- self is not a blessed SV referenceXML::LibXML::Node::removeChild() -- node contains no dataXML::LibXML::Node::removeChild() -- node is not a blessed SV referenceXML::LibXML::Node::replaceNode() -- self contains no dataXML::LibXML::Node::replaceNode() -- self is not a blessed SV referenceXML::LibXML::Node::replaceNode() -- nNode contains no dataXML::LibXML::Node::replaceNode() -- nNode is not a blessed SV referenceXML::LibXML::Node::replaceChild() -- self contains no dataXML::LibXML::Node::replaceChild() -- self is not a blessed SV referenceXML::LibXML::Node::replaceChild() -- nNode contains no dataXML::LibXML::Node::replaceChild() -- nNode is not a blessed SV referenceXML::LibXML::Node::replaceChild() -- oNode contains no dataXML::LibXML::Node::replaceChild() -- oNode is not a blessed SV referencereplaceChild with an element on a document node not supported yet!replaceChild with a document fragment node on a document node not supported yet!replaceChild with a text node not supported on a document node!XML::LibXML::Document::validate() -- self contains no dataXML::LibXML::Document::validate() -- self is not a blessed SV referenceis_valid: argument must be a DTD objectXML::LibXML::Document::is_valid() -- self contains no dataXML::LibXML::Document::is_valid() -- self is not a blessed SV referenceCLASS, ppattern, pattern_type, ns_map=NULLXML::LibXML::Pattern::_compilePatternXPathContext: ignoring non-node member of a nodelistXPathContext: missing xpath contextXPathContext: missing xpath context private dataXPathContext: lost variable lookup function!XPathContext: variable lookup function returned none or more than one argument!pxpath_context, name, uri, funcXPathContext: nothing to unregister XPathContext: cannot register: funcLookupData structure occupied XPathContext: 3rd argument is not a CODE reference or function name pxpath_context, lookup_func, lookup_dataXPathContext: missing xpath context private data XPathContext: registration failure XPathContext: 1st argument is not a CODE reference XML::LibXML::InputCallback::_callback_closeXPathContext: lost function lookup data structure!XPathContext: lost perl extension function!Unknown XPath return type (%d) in call to {%s}%s - assuming stringXML::LibXML::XPathContext::_perl_dispatcherXPathContext: perl-dispatcher in pm file returned none or more than one argument!CLASS, fh, url, encoding, optionsXML::LibXML::Error::_callback_errorXML::LibXML::Error::_instant_error_callbackXML not well-formed in xmlParseChunk unknown error during XInclude processing self, svchunk, enc = &PL_sv_undefCould not create memory parser context! _parse_sax_xml_chunk: chunk parsing failed _parse_xml_chunk: chunk parsing failed self, fh, svURL, svEncoding, options = 0self, filename_sv, svURL, svEncoding, options = 0self, string, svURL, svEncoding, options = 0Could not create file parser context for file "%s": %s Could not create xml push parser context! self, string, dir = &PL_sv_undefself, namespaceURI, attr_name, attr_valueXML::LibXML::Element::_setAttributeNS() -- self contains no dataXML::LibXML::Element::_setAttributeNS() -- self is not a blessed SV referenceXML::LibXML::Element::_setAttribute() -- self contains no dataXML::LibXML::Element::_setAttribute() -- self is not a blessed SV referenceXML::LibXML::Node::setNodeName() -- self contains no dataXML::LibXML::Node::setNodeName() -- self is not a blessed SV referenceself, URI, pname, pvalue=&PL_sv_undefXML::LibXML::Document::createAttributeNS() -- self contains no dataXML::LibXML::Document::createAttributeNS() -- self is not a blessed SV referencecan't create a new namespace on an attribute!self, pname, pvalue=&PL_sv_undefXML::LibXML::Document::createAttribute() -- self contains no dataXML::LibXML::Document::createAttribute() -- self is not a blessed SV referenceXML::LibXML::Document::createRawElementNS() -- self contains no dataXML::LibXML::Document::createRawElementNS() -- self is not a blessed SV referenceXML::LibXML::Document::createElementNS() -- self contains no dataXML::LibXML::Document::createElementNS() -- self is not a blessed SV referenceXML::LibXML::Document::createElement() -- self contains no dataXML::LibXML::Document::createElement() -- self is not a blessed SV referenceXML::LibXML::LIBXML_DOTTED_VERSIONXML::LibXML::HAVE_STRUCT_ERRORSXML::LibXML::HAVE_THREAD_SUPPORTXML::LibXML::LIBXML_RUNTIME_VERSIONXML::LibXML::INIT_THREAD_SUPPORTXML::LibXML::DISABLE_THREAD_SUPPORTXML::LibXML::_parse_sax_stringXML::LibXML::_parse_html_stringXML::LibXML::_parse_sax_xml_chunkXML::LibXML::_processXIncludesXML::LibXML::_externalEntityLoaderXML::LibXML::HashTable::DESTROYXML::LibXML::ParserContext::DESTROYXML::LibXML::Document::_toStringXML::LibXML::Document::serialize_htmlXML::LibXML::Document::toStringHTMLXML::LibXML::Document::documentURIXML::LibXML::Document::createDocumentXML::LibXML::Document::createInternalSubsetXML::LibXML::Document::createExternalSubsetXML::LibXML::Document::createDTDXML::LibXML::Document::createDocumentFragmentXML::LibXML::Document::createElementXML::LibXML::Document::createRawElementXML::LibXML::Document::createElementNSXML::LibXML::Document::createRawElementNSXML::LibXML::Document::createTextNodeXML::LibXML::Document::createCommentXML::LibXML::Document::createCDATASectionXML::LibXML::Document::createEntityReferenceXML::LibXML::Document::createAttributeXML::LibXML::Document::createAttributeNSXML::LibXML::Document::createPIXML::LibXML::Document::createProcessingInstructionXML::LibXML::Document::_setDocumentElementXML::LibXML::Document::documentElementXML::LibXML::Document::getDocumentElementXML::LibXML::Document::externalSubsetXML::LibXML::Document::internalSubsetXML::LibXML::Document::setExternalSubsetXML::LibXML::Document::setInternalSubsetXML::LibXML::Document::removeInternalSubsetXML::LibXML::Document::removeExternalSubsetXML::LibXML::Document::importNodeXML::LibXML::Document::adoptNodeXML::LibXML::Document::encodingXML::LibXML::Document::getEncodingXML::LibXML::Document::xmlEncodingXML::LibXML::Document::setEncodingXML::LibXML::Document::standaloneXML::LibXML::Document::xmlStandaloneXML::LibXML::Document::setStandaloneXML::LibXML::Document::getVersionXML::LibXML::Document::versionXML::LibXML::Document::xmlVersionXML::LibXML::Document::setVersionXML::LibXML::Document::compressionXML::LibXML::Document::setCompressionXML::LibXML::Document::is_validXML::LibXML::Document::validateXML::LibXML::Document::cloneNodeXML::LibXML::Document::getElementByIdXML::LibXML::Document::getElementsByIdXML::LibXML::Document::indexElementsXML::LibXML::Node::getLocalNameXML::LibXML::Node::getNamespaceURIXML::LibXML::Node::namespaceURIXML::LibXML::Node::lookupNamespaceURIXML::LibXML::Node::lookupNamespacePrefixXML::LibXML::Node::setNodeNameXML::LibXML::Attr::getOwnerElementXML::LibXML::Attr::ownerElementXML::LibXML::Node::getParentNodeXML::LibXML::Node::getNextSiblingXML::LibXML::Node::nextSiblingXML::LibXML::Node::nextNonBlankSiblingXML::LibXML::Node::getPreviousSiblingXML::LibXML::Node::previousSiblingXML::LibXML::Node::previousNonBlankSiblingXML::LibXML::Node::_childNodesXML::LibXML::Node::getChildnodesXML::LibXML::Node::_getChildrenByTagNameNSXML::LibXML::Node::getFirstChildXML::LibXML::Node::firstNonBlankChildXML::LibXML::Node::getLastChildXML::LibXML::Node::_attributesXML::LibXML::Node::getAttributesXML::LibXML::Node::hasChildNodesXML::LibXML::Node::hasAttributesXML::LibXML::Node::getOwnerDocumentXML::LibXML::Node::ownerDocumentXML::LibXML::Node::getOwnerElementXML::LibXML::Node::insertBeforeXML::LibXML::Node::insertAfterXML::LibXML::Node::replaceChildXML::LibXML::Node::replaceNodeXML::LibXML::Node::removeChildXML::LibXML::Node::removeChildNodesXML::LibXML::Node::appendChildXML::LibXML::Node::_toStringC14NXML::LibXML::Node::string_valueXML::LibXML::Node::textContentXML::LibXML::Node::getNamespacesXML::LibXML::Node::getNamespaceXML::LibXML::Node::localNamespaceXML::LibXML::Node::line_numberXML::LibXML::Element::_setNamespaceXML::LibXML::Element::setNamespaceDeclURIXML::LibXML::Element::setNamespaceDeclPrefixXML::LibXML::Element::_getNamespaceDeclURIXML::LibXML::Element::hasAttributeXML::LibXML::Element::hasAttributeNSXML::LibXML::Element::_getAttributeXML::LibXML::Element::_setAttributeXML::LibXML::Element::removeAttributeXML::LibXML::Element::getAttributeNodeXML::LibXML::Element::setAttributeNodeXML::LibXML::Element::_getAttributeNSXML::LibXML::Element::_setAttributeNSXML::LibXML::Element::removeAttributeNSXML::LibXML::Element::getAttributeNodeNSXML::LibXML::Element::setAttributeNodeNSXML::LibXML::Element::removeAttributeNodeXML::LibXML::DocumentFragment::appendTextXML::LibXML::DocumentFragment::appendTextNodeXML::LibXML::Element::appendTextXML::LibXML::Element::appendTextNodeXML::LibXML::Element::appendTextChildXML::LibXML::DocumentFragment::addNewChildXML::LibXML::Element::addNewChildXML::LibXML::Text::substringDataXML::LibXML::Text::replaceDataXML::LibXML::CDATASection::newXML::LibXML::DocumentFragment::newXML::LibXML::Attr::getNextSiblingXML::LibXML::Attr::getParentNodeXML::LibXML::Attr::getPreviousSiblingXML::LibXML::Attr::nextSiblingXML::LibXML::Attr::parentElementXML::LibXML::Attr::previousSiblingXML::LibXML::Attr::serializeContentXML::LibXML::Attr::_setNamespaceXML::LibXML::Namespace::DESTROYXML::LibXML::Namespace::getTypeXML::LibXML::Namespace::nodeTypeXML::LibXML::Namespace::declaredURIXML::LibXML::Namespace::getDataXML::LibXML::Namespace::getValueXML::LibXML::Namespace::nodeValueXML::LibXML::Namespace::value2XML::LibXML::Namespace::declaredPrefixXML::LibXML::Namespace::getLocalNameXML::LibXML::Namespace::localnameXML::LibXML::Namespace::unique_keyXML::LibXML::Namespace::_isEqualXML::LibXML::Dtd::parse_stringXML::LibXML::RelaxNG::parse_locationXML::LibXML::RelaxNG::parse_bufferXML::LibXML::RelaxNG::parse_documentXML::LibXML::RelaxNG::validateXML::LibXML::Schema::parse_locationXML::LibXML::Schema::parse_bufferXML::LibXML::XPathContext::newXML::LibXML::XPathContext::DESTROYXML::LibXML::XPathContext::getContextNodeXML::LibXML::XPathContext::getContextPositionXML::LibXML::XPathContext::getContextSizeXML::LibXML::XPathContext::setContextNodeXML::LibXML::XPathContext::setContextPositionXML::LibXML::XPathContext::setContextSizeXML::LibXML::XPathContext::registerNsXML::LibXML::XPathContext::lookupNsXML::LibXML::XPathContext::getVarLookupDataXML::LibXML::XPathContext::getVarLookupFuncXML::LibXML::XPathContext::registerVarLookupFuncXML::LibXML::XPathContext::registerFunctionNSXML::LibXML::XPathContext::_free_node_poolXML::LibXML::XPathContext::_findnodesXML::LibXML::XPathContext::_findXML::LibXML::InputCallback::lib_cleanup_callbacksXML::LibXML::InputCallback::lib_init_callbacksXML::LibXML::Reader::_newForFileXML::LibXML::Reader::_newForIOXML::LibXML::Reader::_newForStringXML::LibXML::Reader::_newForFdXML::LibXML::Reader::_newForDOMXML::LibXML::Reader::attributeCountXML::LibXML::Reader::byteConsumedXML::LibXML::Reader::localNameXML::LibXML::Reader::namespaceURIXML::LibXML::Reader::xmlVersionXML::LibXML::Reader::getAttributeXML::LibXML::Reader::getAttributeNoXML::LibXML::Reader::getAttributeNsXML::LibXML::Reader::columnNumberXML::LibXML::Reader::lineNumberXML::LibXML::Reader::_getParserPropXML::LibXML::Reader::hasAttributesXML::LibXML::Reader::getAttributeHashXML::LibXML::Reader::isDefaultXML::LibXML::Reader::isEmptyElementXML::LibXML::Reader::isNamespaceDeclXML::LibXML::Reader::lookupNamespaceXML::LibXML::Reader::moveToAttributeXML::LibXML::Reader::moveToAttributeNoXML::LibXML::Reader::moveToAttributeNsXML::LibXML::Reader::moveToElementXML::LibXML::Reader::moveToFirstAttributeXML::LibXML::Reader::moveToNextAttributeXML::LibXML::Reader::nextSiblingXML::LibXML::Reader::nextSiblingElementXML::LibXML::Reader::nextElementXML::LibXML::Reader::nextPatternMatchXML::LibXML::Reader::skipSiblingsXML::LibXML::Reader::quoteCharXML::LibXML::Reader::readAttributeValueXML::LibXML::Reader::readInnerXmlXML::LibXML::Reader::readOuterXmlXML::LibXML::Reader::readStateXML::LibXML::Reader::_setParserPropXML::LibXML::Reader::standaloneXML::LibXML::Reader::_nodePathXML::LibXML::Reader::matchesPatternXML::LibXML::Reader::copyCurrentNodeXML::LibXML::Reader::preserveNodeXML::LibXML::Reader::_setRelaxNGFileXML::LibXML::Reader::_setRelaxNGXML::LibXML::Reader::_setXSDFileXML::LibXML::LibError::messageXML::LibXML::LibError::context_and_columnXML::LibXML::Pattern::matchesNodeXML::LibXML::RegExp::isDeterministicXML::LibXML::XPathExpression::newXML::LibXML::XPathExpression::DESTROYXML::LibXML::Common::encodeToUTF8XML::LibXML::Common::decodeFromUTF8validation error: %sXML::LibXML::__readread method call failedread errorXML_LIBXML_RECOVERext_ent_handlera buffer would be too big cannot create a buffer! self, sizeXPathContext: invalid size self, positionselfCLASS, sv_libxml, deep=1GDOME Support not configured!CLASS, sv_gdome, deep=1GDOME Support not compiledXML::LibXML::XPathExpressionXML::LibXML::RegExpself, catalogempty catalog self, pvalueXML::LibXML::Patternself, oNodeself, versionself, value = 0self, encoding = NULLself, new_URIself, node2.9.7readerreader, xsd_docreader, xsdreader, rng_docreader, rngreader, pattern, ns_map=NULLns_mapreader, propreader, compiledself, deep=0reader, prop, value%creader, noreader, namereader, prefixCLASS, perl_docUTF-8self, ns_prefixXML::LibXML::Namespacelost nodeCLASS, ...self, ref_node|self, svprefix, newPrefixself, svprefix=&PL_sv_undefself, svuri ="CLASS, pname, pvalueCLASSCLASS, contentself, contentself, offset, lengthself, offset, length, valueself, offset, valueself, valueself, namespaceURI, nodenameself, namebad nameself, stringself, attr_nodelost attribute nodeself, nNodeCan't adopt Documents!Can't adopt DTD nodesself, node, dummy=0Can't import Documents!Can't import DTD nodesself, extdtdlost DTD nodeself, namespaceURI, attr_namelost attributeself, attr_nameself, svprefix, newURICLASS, namethreads::threadsself, URIself, namespaceURI, node_name*self, only_nonblank = 0XML::LibXML::__threads_sharedthreads::shared::is_sharedself, idself, zLevelcan't import DTDsself, proxyself, pnameself, Pname, extID, sysID1.0self, format=0XML::LibXML::skipDTDtableself, filenamecannot load catalogXML_LIBXML_GDOMEclassencoding, stringstring is not utf8!!no encoder found cannot encode stringreturn value missing!CLASS, pxpathCLASS, pregexpCompilation of regexp failedreader, expand = 0API Errorcannot parse empty stringXML::LibXML::Schemaself, docXML::LibXML::RelaxNGCLASS, str, ...Parse of encoding %s failedcannot create buffer! no DTD parsed!CLASS, external, systempnode, perl_xpathempty XPath foundpnode, pxpath, to_boolXML::LibXML::NodeListXML::LibXML::BooleanXML::LibXML::NumberXML::LibXML::LiteralUnknown XPath return typeself, filename, format=0self, filehandler, format=0XML::LibXML::__writepxpath_context, perl_xpathpxpath_context, prefixself, nNode, refNodereplacement failedself, nNode, oNodeself, ...Compilation of pattern failedXML::LibXML::Nodepxpath_contextself, pnode{}loaderhave no save_error XML::LibXML::LibErrorXML_LIBXML_PARSER_OPTIONSXML_LIBXML_LINENUMBERSself, pctxtparser context already freed self, pctxt, restoreno document found! self, pctxt, dataself, with_sax=0self, doc, options=0No document to process! Empty string unknown-%pEmpty filename self, filename_svself, fh, dir = &PL_sv_undefEmpty Stream bad ns attribute!self, attr_name, attr_valueself, nsURI, nameLibXML.cXML::LibXML::_CLONEXML::LibXML::_leaked_nodesXML::LibXML::_dump_registryXML::LibXML::LIBXML_VERSIONXML::LibXML::HAVE_SCHEMASXML::LibXML::HAVE_READERXML::LibXML::ENDXML::LibXML::_parse_stringXML::LibXML::_parse_fhXML::LibXML::_parse_sax_fhXML::LibXML::_parse_fileXML::LibXML::_parse_sax_fileXML::LibXML::_parse_html_fileXML::LibXML::_parse_html_fhXML::LibXML::_parse_xml_chunkXML::LibXML::_start_pushXML::LibXML::_pushXML::LibXML::_end_pushXML::LibXML::_end_sax_pushXML::LibXML::import_GDOMEXML::LibXML::export_GDOMEXML::LibXML::load_catalogXML::LibXML::_default_catalogXML::LibXML::HashTable::newXML::LibXML::Document::toFHXML::LibXML::Document::toFileXML::LibXML::Document::URIXML::LibXML::Document::setURIXML::LibXML::Document::newXML::LibXML::Node::DESTROYXML::LibXML::Element::tagNameXML::LibXML::Node::getNameXML::LibXML::Node::nodeNameXML::LibXML::Attr::nameXML::LibXML::Node::localNameXML::LibXML::Node::localnameXML::LibXML::Node::getPrefixXML::LibXML::Node::prefixXML::LibXML::Node::setNameXML::LibXML::Node::setRawNameXML::LibXML::Attr::getValueXML::LibXML::Attr::valueXML::LibXML::Node::getDataXML::LibXML::Node::getValueXML::LibXML::Node::nodeValueXML::LibXML::Text::dataXML::LibXML::Node::getTypeXML::LibXML::Node::nodeTypeXML::LibXML::Node::parentNodeXML::LibXML::Node::firstChildXML::LibXML::Node::lastChildXML::LibXML::Node::getOwnerXML::LibXML::Node::ownerNodeXML::LibXML::Node::normalizeXML::LibXML::Node::unbindNodeXML::LibXML::Node::unlinkXML::LibXML::Node::unlinkNodeXML::LibXML::Node::addChildXML::LibXML::Node::addSiblingXML::LibXML::Node::cloneNodeXML::LibXML::Node::isEqualXML::LibXML::Node::isSameNodeXML::LibXML::Node::unique_keyXML::LibXML::Node::baseURIXML::LibXML::Node::setBaseURIXML::LibXML::Node::serializeXML::LibXML::Node::toStringXML::LibXML::Node::to_literalXML::LibXML::Node::to_numberXML::LibXML::Node::_findXML::LibXML::Node::_findnodesXML::LibXML::Node::namespacesXML::LibXML::Node::localNSXML::LibXML::Node::nodePathXML::LibXML::Element::newXML::LibXML::Text::newXML::LibXML::Attr::setValueXML::LibXML::PI::_setDataXML::LibXML::Text::setDataXML::LibXML::Text::appendDataXML::LibXML::Text::insertDataXML::LibXML::Text::deleteDataXML::LibXML::Comment::newXML::LibXML::Attr::newXML::LibXML::Attr::serializeXML::LibXML::Attr::toStringXML::LibXML::Attr::isIdXML::LibXML::Namespace::newXML::LibXML::Namespace::hrefXML::LibXML::Namespace::valueXML::LibXML::Dtd::newXML::LibXML::Dtd::parse_uriXML::LibXML::Dtd::getSystemIdXML::LibXML::Dtd::systemIdXML::LibXML::Dtd::getPublicIdXML::LibXML::Dtd::publicIdXML::LibXML::RelaxNG::DESTROYXML::LibXML::Schema::DESTROYXML::LibXML::Schema::validateXML::LibXML::Reader::baseURIXML::LibXML::Reader::_closeXML::LibXML::Reader::encodingXML::LibXML::Reader::nameXML::LibXML::Reader::prefixXML::LibXML::Reader::valueXML::LibXML::Reader::xmlLangXML::LibXML::Reader::depthXML::LibXML::Reader::hasValueXML::LibXML::Reader::isValidXML::LibXML::Reader::nextXML::LibXML::Reader::nodeTypeXML::LibXML::Reader::readXML::LibXML::Reader::documentXML::LibXML::Reader::finishXML::LibXML::Reader::_setXSDXML::LibXML::Reader::_DESTROYXML::LibXML::LibError::domainXML::LibXML::LibError::codeXML::LibXML::LibError::lineXML::LibXML::LibError::int1XML::LibXML::LibError::num1XML::LibXML::LibError::int2XML::LibXML::LibError::num2XML::LibXML::LibError::levelXML::LibXML::LibError::fileXML::LibXML::LibError::str1XML::LibXML::LibError::str2XML::LibXML::LibError::str3XML::LibXML::Pattern::DESTROYXML::LibXML::RegExp::_compileXML::LibXML::RegExp::matchesXML::LibXML::RegExp::DESTROYhxml#document-fragment#document#text#cdata-section#commentNOT_FOUND_ERR &;http://www.w3.org/XML/1998/namespaceappendChild: HIERARCHY_REQUEST_ERR replaceChild: HIERARCHY_REQUEST_ERR insertBefore/insertAfter: HIERARCHY_REQUEST_ERR replaceNode: HIERARCHY_REQUEST_ERR $qppqdptptptppptpptpptppptptptptppXML::LibXML::TextXML::LibXML::ElementXML::LibXML::PIXML::LibXML::DtdXML::LibXML::DocumentFragmentXML::LibXML::DocumentXML::LibXML::AttrXML::LibXML::CDATASectionXML::LibXML::CommentPmmFreeHashTable: not empty %d total nodes empty contextXML::LibXML::ParserContextUTF-16LEUTF-16BET~~D4TT$T~T~TTT~ȊЊȊЊ%s=%p with %d references (%d perl) PmmProxyNodeRegistryPtr: TODO! PmmRegisterProxyNode: error adding node to hash, hash size is %d PmmUnregisterProxyNode: error removing node from hash PmmREFCNT_dec: REFCNT decremented below 0 for %p!XML::LibXML: failed to create a proxy node (out of memory?) PmmFastDecodeString: no encoding found XML::LibXML::_SAXParser::warningXML::LibXML::_SAXParser::fatal_errorXML::LibXML::_SAXParser::errorOut of memory in SAX character bufferingXML::LibXML: SAX character buffer overflowXML::LibXML: SAX character data exceeds maximum lengthXML::LibXML::_SAXParser::end_documentstring overflow NamespaceURIstart_prefix_mappingend_prefix_mappingLocalNamehttp://www.w3.org/2000/xmlns/xmlnsxmlns:TargetLineNumberColumnNumberEncodingXMLVersionstart_documentxml_declstart_dtdend_dtdcharactersset_document_locatorAttributesstart_elementend_elementstart_cdataend_cdataprocessing_instructionstackHANDLERJOIN_CHARACTERSH4 lXD0;Dgԟ&`Td<$ԯdt(Իd4T`4$ XDDTd@$$dp T D ,tx l$T$ !8#xt%T'd)\$+4.20D4p5680 9p T; < >0!Ap!4C!TE!tG0"4Ip"J"L"M0#DP|#R#U0$V$Y$\%_d%b%c(&Teh&f&h&ti('jh'4l'm'$o((ph(u(w)tzL)~))d$*d*4*t*4<++ԏ+,4T,,4,,-ԛx-t-4.\...D4///40X0400Ի<11D124H222D3T3D33T,4x445TP55456h6466(7$h77$708d88 9L9T9$9$0:|::;D `; ;;8<x<$<=P===D(>"t>$%>4( ?)L?+?D,?/@1d@t4@46AD8\A4;A>AA@BBBdEBHC$LdCNCQDTDVD$X EZXE$^EaEDc0F4e|F4gFi GdlLGqGDsGtHvdHwH{HFBB E(A0A8D@  8A0A(B BBBH H>FBB E(A0A8D@  8A0A(B BBBH H >FBB E(A0A8D@  8A0A(B BBBH Hl >FBB E(A0A8D@  8A0A(B BBBH H >FBB E(A0A8D@  8A0A(B BBBH H >FBB E(A0A8D@  8A0A(B BBBH HP FBB E(A0A8D@! 8A0A(B BBBH H XFBB E(A0A8D@! 8A0A(B BBBH H FBB E(A0A8D@ 8A0A(B BBBK <4 PFEB A(A0- (A BBBE Ht ^FBB E(A0A8D@ 8A0A(B BBBJ < @FBE A(A0 (A BBBE   <( @FBE A(A0 (A BBBE Hh FBE B(A0A8D@* 8A0A(B BBBG L FBE A(A0 (A BBBG  (A BBBB H FBB E(A0A8D@L 8A0A(B BBBE HP tFBB B(D0A8D@ 8A0A(B BBBH H FBB E(A0A8D@j 8A0A(B BBBG H |FBB E(A0A8D@\ 8A0A(B BBBE H4 FBB E(A0A8D@M 8A0A(B BBBD <FEB A(A0G (A BBBC H$FBB E(A0A8D@ 8A0A(B BBBG H FBB E(A0A8D@M 8A0A(B BBBD HX< FBB E(A0A8D@ 8A0A(B BBBA < FEB A(A0U (A BBBE H FBE B(A0A8D@  8A0A(B BBBE D0DFEB A(A0D 0A(A BBBE <xoFBE A(A0  (A BBBE <oFBE A(A0  (A BBBE <+FBE A(A0 (A BBBI <8+FBE A(A0 (A BBBI <xFBE A(A0b (A BBBA <LFBE A(A0J (A BBBA <FBE A(A0 (A BBBG <8FBE A(A0 (A BBBH <xFBE A(A0 (A BBBH <FBE A(A0 (A BBBH <|!FBE A(A0 (A BBBH <8\#FBE A(A0 (A BBBH <x<%FBE A(A03 (A BBBG <&FBE A(A03 (A BBBG <<(FBE A(A0J (A BBBH <8)#FBE A(A0 (A BBBE Hx*NFBB E(A0A8D@  8A0A(B BBBH H,NFBB E(A0A8D@  8A0A(B BBBH d.=FBB E(A0A8Dp 8A0A(B BBBG xHXxBpxHXxDpLx1BBB A(A0G`hHpWhA`T 0A(A BBBA H\2FBE B(A0A8DP  8A0A(B BBBE H 5FBE B(A0A8D@^ 8A0A(B BBBC H`7FBE B(A0A8DP  8A0A(B BBBE HX:FBE B(A0A8D@^ 8A0A(B BBBC <<_FBE A(A0 (A BBBA zRx 0(y <p=oFBE A(A0  (A BBBE <>VFBE A(A0 (A BBBA <@VFBE A(A0 (A BBBA <0$AVFBE A(A0 (A BBBA <pDBVFBE A(A0 (A BBBA <dCVFBE A(A0 (A BBBA <DwFBE A(A0 (A BBBD <0EoFBE A(A0 (A BBBD <pFoFBE A(A0 (A BBBD H$HFBE B(A0A8Dpm 8A0A(B BBBD HXLFBB E(A0A8DP 8A0A(B BBBD HHNFBE B(A0A8D@[ 8A0A(B BBBF H QFBE B(A0A8DP  8A0A(B BBBE HtTlFBE B(A0A8D@j 8A0A(B BBBG <,VFBE A(A0 (A BBBH <l8XqFBE A(A0# (A BBBA HxYNFBB E(A0A8D@  8A0A(B BBBH H|[6FBE B(A0A8DP 8A0A(B BBBB <Dp^FBE A(A0 (A BBBH H_NFBB E(A0A8D@  8A0A(B BBBH HaNFBB E(A0A8D@  8A0A(B BBBH <cFBE A(A0 (A BBBH <\heFBE A(A0 (A BBBH <fFBE A(A0 (A BBBH HHhNFBB E(A0A8D@  8A0A(B BBBH H(LjNFBB E(A0A8D@  8A0A(B BBBH HtPlNFBB E(A0A8D@  8A0A(B BBBH HTnFBE B(A0A8DP 8A0A(B BBBA H qFBE B(A0A8D@[ 8A0A(B BBBF HXtFBE B(A0A8D@^ 8A0A(B BBBC <vFBE A(A0R (A BBBH HyNFBB E(A0A8D@  8A0A(B BBBH H0 {NFBB E(A0A8D@  8A0A(B BBBH H| }NFBB E(A0A8D@  8A0A(B BBBH H NFBB E(A0A8D@  8A0A(B BBBH H!NFBB E(A0A8D@  8A0A(B BBBH <`!FBE A(A0 (A BBBH H!NFBB E(A0A8D@  8A0A(B BBBH H!NFBB E(A0A8D@  8A0A(B BBBH H8"NFBB E(A0A8D@  8A0A(B BBBH H",FBE B(A0A8D@ 8A0A(B BBBJ <"t<FEB A(A0- (A BBBE <#t<FEB A(A00 (A BBBJ <P#tFBE A(A0 (A BBBH <#FBE A(A0 (A BBBH <#TFBE A(A0 (A BBBH <$ĕFBE A(A0 (A BBBH HP$4FFBB E(A0A8D@  8A0A(B BBBH <$8FBE A(A0 (A BBBH H$NFBB E(A0A8D@  8A0A(B BBBH H(%FBE B(A0A8D@J 8A0A(B BBBG Ht% IFBE B(A0A8DP 8A0A(B BBBD H%$gFBE B(A0A8DP 8A0A(B BBBJ H &HyFBE B(A0A8DP< 8A0A(B BBBE <X&|FBE A(H0 (A BBBA <&FBE A(H0l (A BBBA H&\<FBE B(A0A8D@ 8A0A(B BBBK <$'PFBE A(A0[ (A BBBG Hd'ЭFBE B(A0A8D@ 8A0A(B BBBD <'DyFBE A(A0 (A BBBA <'IFBE A(A0 (A BBBA <0(IFBE A(A0 (A BBBC <p(IFBE A(A0 (A BBBD ((BIH ABH((YFBB E(A0A8DP 8A0A(B BBBD L()<FBE A(A0 (A BBBG o (A BBBB Lx)FBE A(A0 (A BBBG o (A BBBB H)ܸIFBE B(A0A8D@k 8A0A(B BBBF <*>FBE A(A0 (A BBBI <T*FBE A(A0 (A BBBK H*`FBE B(A0A8DP 8A0A(B BBBG H*FBB E(A0A8D@- 8A0A(B BBBD H,+8FBB E(A0A8DP 8A0A(B BBBC Hx+FBE B(A0A8D`z 8A0A(B BBBG H+@DFBE B(A0A8D@ 8A0A(B BBBI H,DFBE B(A0A8DP 8A0A(B BBBE H\,#FBE B(A0A8D@ 8A0A(B BBBF H,FBE B(A0A8DP 8A0A(B BBBD H,@FBE B(A0A8DPh 8A0A(B BBBI <@-EFEB A(A0 (A BBBE <-FBE A(A0 (A BBBA <-TKFBE A(A0  (A BBBA H.dUFBE B(A0A8D@ 8A0A(B BBBG HL.xFBE B(A0A8D@ 8A0A(B BBBE <.,=FEB A(A0 (A BBBG H.,FBE B(A0A8D@ 8A0A(B BBBF H$/FBE B(A0A8D@ 8A0A(B BBBH Hp/FBE B(A0A8DP 8A0A(B BBBI H/FBE B(A0A8DP 8A0A(B BBBE H0\FBE B(A0A8DPv 8A0A(B BBBK <T0 RFEB A(A0 (A BBBA <0@oFEB A(A0- (A BBBA <0p=FEB A(A0 (A BBBG H1p_FBE B(A0A8Dp- 8A0A(B BBBD H`1FBE B(A0A8D@ 8A0A(B BBBK d1XFBE B(A0A8DPn 8A0A(B BBBC  8A0A(B BBBA L2FEB A(A0< (A BBBF r (A BBBA <d2FEB A(A00 (A BBBJ H2FBB E(A0A8DP+ 8A0A(B BBBF H2FBB E(A0A8D@ 8A0A(B BBBH H<3FBB E(A0A8DP 8A0A(B BBBD <3FEB A(A0N (A BBBD H3\sFBE B(A0A8DP 8A0A(B BBBE H4eFBE B(A0A8DP 8A0A(B BBBJ H`4EFBE B(A0A8DP 8A0A(B BBBJ d4XFBE B(A0A8DPl 8A0A(B BBBE  8A0A(B BBBF H5 /FBB B(D0A8D` 8A0A(B BBBI d`5 FBE B(A0A8DP 8A0A(B BBBE T 8A0A(B BBBB H5,FBE B(A0A8D@n 8A0A(B BBBC <6FEB A(A0= (A BBBE HT6]FBE B(A0A8D@ 8A0A(B BBBF H6$FBE B(A0A8Dp 8A0A(B BBBE H6xFBB E(A0A8DP 8A0A(B BBBE <87eFEB A(A0! (A BBBI Hx7 FBB E(A0A8D@X 8A0A(B BBBI @7FBE A(A0D@a 0A(A BBBD H8l FBE B(A0A8D@z 8A0A(B BBBG <T8"}FBE A(A0r (A BBBH H8%|FBE B(A0A8D` 8A0A(B BBBB <8D*WFEB A(A0 (A BBBA < 9d+bFBE A(A0" (A BBBA H`9, FBB E(A0A8DP 8A0A(B BBBG <9X.FBE A(A0 (A BBBA H98/FBB E(A0A8DP 8A0A(B BBBC H8:2FBB E(A0A8Dp 8A0A(B BBBK <:P6FBE A(H0G (A BBBD H:7KFEB B(A0A8D` 8A0A(B BBBE <;:FBE A(H0G (A BBBD <P;<FBE A(H0G (A BBBD @;t=6FEB A(A0D@ 0A(A BBBB <;p?FBE A(A0# (A BBBG H<@FBB E(A0A8D@~ 8A0A(B BBBC H`<4EFBB E(A0A8D@X 8A0A(B BBBI <<FFEB A(A0 (A BBBG H<HFBB E(A0A8D@. 8A0A(B BBBC <8=JFEB A(A0) (A BBBA Hx=KFBB E(A0A8D@U 8A0A(B BBBD <=pMFBE A(A0- (A BBBE <>NFEB A(A0H (A BBBB HD>PFBE B(A0A8DP 8A0A(B BBBH H>RIFBE B(A0A8DP 8A0A(B BBBG H>TFBE B(A0A8D@n 8A0A(B BBBC H(?\VFBE B(A0A8D@z 8A0A(B BBBG Ht?XFBE B(A0A8D@z 8A0A(B BBBG `?YtFBE B(A0A8D` 8A0A(B BBBJ ~ 8A0A(B BBBA `$@[FBE B(A0A8D` 8A0A(B BBBD ~ 8A0A(B BBBH `@^FBE B(A0A8D` 8A0A(B BBBD ~ 8A0A(B BBBH <@X`FEB A(A0 (A BBBE H,A(bFBE B(A0A8Dp 8A0A(B BBBF <xAgFBE A(A0 (A BBBK LALhFBE A(A0 (A BBBG o (A BBBB HBiMFBB E(A0A8D@ 8A0A(B BBBD HTBjFBE B(A0A8D@) 8A0A(B BBBH DBlBDH O(H0[(A O DBJ ` DDH <BlFBE A(H0f (A BBBA <(CLm+FBE A(A0 (A BBBI 8hCGA+GLIBCXX_ASSERTIONS> GA*FORTIFY>GA+GLIBCXX_ASSERTIONS> GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY.GA+GLIBCXX_ASSERTIONS. GA*FORTIFY.~GA+GLIBCXX_ASSERTIONS.~ GA*FORTIFY~)GA+GLIBCXX_ASSERTIONS~) GA*FORTIFY)~GA+GLIBCXX_ASSERTIONS)~ GA*FORTIFY~GA+GLIBCXX_ASSERTIONS~ GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYLGA+GLIBCXX_ASSERTIONSL GA*FORTIFYLGA+GLIBCXX_ASSERTIONSL GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYyGA+GLIBCXX_ASSERTIONSy GA*FORTIFYy)GA+GLIBCXX_ASSERTIONSy) GA*FORTIFY)GA+GLIBCXX_ASSERTIONS) GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYWGA+GLIBCXX_ASSERTIONSW GA*FORTIFYWGA+GLIBCXX_ASSERTIONSW GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY9 GA+GLIBCXX_ASSERTIONS9  GA*FORTIFY9 | GA+GLIBCXX_ASSERTIONS9 |  GA*FORTIFY| ? GA+GLIBCXX_ASSERTIONS| ?  GA*FORTIFY? GA+GLIBCXX_ASSERTIONS?  GA*FORTIFYyGA+GLIBCXX_ASSERTIONSy GA*FORTIFYyGA+GLIBCXX_ASSERTIONSy GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYiGA+GLIBCXX_ASSERTIONSi GA*FORTIFYiGA+GLIBCXX_ASSERTIONSi GA*FORTIFYiGA+GLIBCXX_ASSERTIONSi GA*FORTIFYi GA+GLIBCXX_ASSERTIONSi  GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY>GA+GLIBCXX_ASSERTIONS> GA*FORTIFY>5GA+GLIBCXX_ASSERTIONS>5 GA*FORTIFY5!GA+GLIBCXX_ASSERTIONS5! GA*FORTIFY!i#GA+GLIBCXX_ASSERTIONS!i# GA*FORTIFYi#o'GA+GLIBCXX_ASSERTIONSi#o' GA*FORTIFYo',GA+GLIBCXX_ASSERTIONSo', GA*FORTIFY,T.GA+GLIBCXX_ASSERTIONS,T. GA*FORTIFYT.V1GA+GLIBCXX_ASSERTIONST.V1 GA*FORTIFYV13GA+GLIBCXX_ASSERTIONSV13 GA*FORTIFY357GA+GLIBCXX_ASSERTIONS357 GA*FORTIFY579GA+GLIBCXX_ASSERTIONS579 GA*FORTIFY9E;GA+GLIBCXX_ASSERTIONS9E; GA*FORTIFYE;<GA+GLIBCXX_ASSERTIONSE;< GA*FORTIFY<k=GA+GLIBCXX_ASSERTIONS<k= GA*FORTIFYk=>GA+GLIBCXX_ASSERTIONSk=> GA*FORTIFY>@GA+GLIBCXX_ASSERTIONS>@ GA*FORTIFY@ BGA+GLIBCXX_ASSERTIONS@ B GA*FORTIFY BDGA+GLIBCXX_ASSERTIONS BD GA*FORTIFYDGGA+GLIBCXX_ASSERTIONSDG GA*FORTIFYGWKGA+GLIBCXX_ASSERTIONSGWK GA*FORTIFYWKpNGA+GLIBCXX_ASSERTIONSWKpN GA*FORTIFYpNrQGA+GLIBCXX_ASSERTIONSpNrQ GA*FORTIFYrQRGA+GLIBCXX_ASSERTIONSrQR GA*FORTIFYROTGA+GLIBCXX_ASSERTIONSROT GA*FORTIFYOTUGA+GLIBCXX_ASSERTIONSOTU GA*FORTIFYUXGA+GLIBCXX_ASSERTIONSUX GA*FORTIFYX[GA+GLIBCXX_ASSERTIONSX[ GA*FORTIFY[]GA+GLIBCXX_ASSERTIONS[] GA*FORTIFY]}_GA+GLIBCXX_ASSERTIONS]}_ GA*FORTIFY}_aGA+GLIBCXX_ASSERTIONS}_a GA*FORTIFYa{dGA+GLIBCXX_ASSERTIONSa{d GA*FORTIFY{dAgGA+GLIBCXX_ASSERTIONS{dAg GA*FORTIFYAgEjGA+GLIBCXX_ASSERTIONSAgEj GA*FORTIFYEj#lGA+GLIBCXX_ASSERTIONSEj#l GA*FORTIFY#lnGA+GLIBCXX_ASSERTIONS#ln GA*FORTIFYnrGA+GLIBCXX_ASSERTIONSnr GA*FORTIFYreuGA+GLIBCXX_ASSERTIONSreu GA*FORTIFYeuwGA+GLIBCXX_ASSERTIONSeuw GA*FORTIFYwzGA+GLIBCXX_ASSERTIONSwz GA*FORTIFYz}GA+GLIBCXX_ASSERTIONSz} GA*FORTIFY}GA+GLIBCXX_ASSERTIONS} GA*FORTIFYmGA+GLIBCXX_ASSERTIONSm GA*FORTIFYm̓GA+GLIBCXX_ASSERTIONSm̓ GA*FORTIFY̓dGA+GLIBCXX_ASSERTIONS̓d GA*FORTIFYdGA+GLIBCXX_ASSERTIONSd GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYxGA+GLIBCXX_ASSERTIONSx GA*FORTIFYxqGA+GLIBCXX_ASSERTIONSxq GA*FORTIFYq)GA+GLIBCXX_ASSERTIONSq) GA*FORTIFY)GA+GLIBCXX_ASSERTIONS) GA*FORTIFY,GA+GLIBCXX_ASSERTIONS, GA*FORTIFY,GA+GLIBCXX_ASSERTIONS, GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFY %GA+GLIBCXX_ASSERTIONS % GA*FORTIFY%ˤGA+GLIBCXX_ASSERTIONS%ˤ GA*FORTIFYˤߨGA+GLIBCXX_ASSERTIONSˤߨ GA*FORTIFYߨwGA+GLIBCXX_ASSERTIONSߨw GA*FORTIFYw˭GA+GLIBCXX_ASSERTIONSw˭ GA*FORTIFY˭gGA+GLIBCXX_ASSERTIONS˭g GA*FORTIFYgGA+GLIBCXX_ASSERTIONSg GA*FORTIFYFGA+GLIBCXX_ASSERTIONSF GA*FORTIFYF״GA+GLIBCXX_ASSERTIONSF״ GA*FORTIFY״GA+GLIBCXX_ASSERTIONS״ GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYÿGA+GLIBCXX_ASSERTIONSÿ GA*FORTIFYÿQGA+GLIBCXX_ASSERTIONSÿQ GA*FORTIFYQ@GA+GLIBCXX_ASSERTIONSQ@ GA*FORTIFY@GA+GLIBCXX_ASSERTIONS@ GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYVGA+GLIBCXX_ASSERTIONSV GA*FORTIFYVGA+GLIBCXX_ASSERTIONSV GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYLGA+GLIBCXX_ASSERTIONSL GA*FORTIFYLRGA+GLIBCXX_ASSERTIONSLR GA*FORTIFYRGA+GLIBCXX_ASSERTIONSR GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYsGA+GLIBCXX_ASSERTIONSs GA*FORTIFYsGA+GLIBCXX_ASSERTIONSs GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY.GA+GLIBCXX_ASSERTIONS. GA*FORTIFY.GA+GLIBCXX_ASSERTIONS. GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY>GA+GLIBCXX_ASSERTIONS> GA*FORTIFY>nGA+GLIBCXX_ASSERTIONS>n GA*FORTIFYn6GA+GLIBCXX_ASSERTIONSn6 GA*FORTIFY6GA+GLIBCXX_ASSERTIONS6 GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYnGA+GLIBCXX_ASSERTIONSn GA*FORTIFYnGA+GLIBCXX_ASSERTIONSn GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY0 GA+GLIBCXX_ASSERTIONS0  GA*FORTIFY0 \ GA+GLIBCXX_ASSERTIONS0 \  GA*FORTIFY\ GA+GLIBCXX_ASSERTIONS\  GA*FORTIFY>GA+GLIBCXX_ASSERTIONS> GA*FORTIFY>&GA+GLIBCXX_ASSERTIONS>& GA*FORTIFY&GA+GLIBCXX_ASSERTIONS& GA*FORTIFY+GA+GLIBCXX_ASSERTIONS+ GA*FORTIFY+{!GA+GLIBCXX_ASSERTIONS+{! GA*FORTIFY{!$GA+GLIBCXX_ASSERTIONS{!$ GA*FORTIFY$'GA+GLIBCXX_ASSERTIONS$' GA*FORTIFY'=,GA+GLIBCXX_ASSERTIONS'=, GA*FORTIFY=,2GA+GLIBCXX_ASSERTIONS=,2 GA*FORTIFY27GA+GLIBCXX_ASSERTIONS27 GA*FORTIFY7;GA+GLIBCXX_ASSERTIONS7; GA*FORTIFY;AGA+GLIBCXX_ASSERTIONS;A GA*FORTIFYAFGA+GLIBCXX_ASSERTIONSAF GA*FORTIFYF!LGA+GLIBCXX_ASSERTIONSF!L GA*FORTIFY!LOGA+GLIBCXX_ASSERTIONS!LO GA*FORTIFYO*RGA+GLIBCXX_ASSERTIONSO*R GA*FORTIFY*RCWGA+GLIBCXX_ASSERTIONS*RCW GA*FORTIFYCWi`GA+GLIBCXX_ASSERTIONSCWi` GA*FORTIFYi`bGA+GLIBCXX_ASSERTIONSi`b GA*FORTIFYbYhGA+GLIBCXX_ASSERTIONSbYh GA*FORTIFYYhoGA+GLIBCXX_ASSERTIONSYho GA*FORTIFYoxGA+GLIBCXX_ASSERTIONSox GA*FORTIFYxyGA+GLIBCXX_ASSERTIONSxy GA*FORTIFYyyGA+GLIBCXX_ASSERTIONSyy GA*FORTIFYyGA+GLIBCXX_ASSERTIONSy GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY܋GA+GLIBCXX_ASSERTIONS܋ GA*FORTIFY܋GA+GLIBCXX_ASSERTIONS܋ GA*FORTIFYZGA+GLIBCXX_ASSERTIONSZ GA*FORTIFYZ\GA+GLIBCXX_ASSERTIONSZ\ GA*FORTIFY\GA+GLIBCXX_ASSERTIONS\ GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYћGA+GLIBCXX_ASSERTIONSћ GA*FORTIFYћ*GA+GLIBCXX_ASSERTIONSћ* GA*FORTIFY*GA+GLIBCXX_ASSERTIONS* GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYéGA+GLIBCXX_ASSERTIONSé GA*FORTIFYéGA+GLIBCXX_ASSERTIONSé GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY!GA+GLIBCXX_ASSERTIONS! GA*FORTIFY!mGA+GLIBCXX_ASSERTIONS!m GA*FORTIFYmGA+GLIBCXX_ASSERTIONSm GA*FORTIFYNGA+GLIBCXX_ASSERTIONSN GA*FORTIFYNzGA+GLIBCXX_ASSERTIONSNz GA*FORTIFYzнGA+GLIBCXX_ASSERTIONSzн GA*FORTIFYнzGA+GLIBCXX_ASSERTIONSнz GA*FORTIFYz GA+GLIBCXX_ASSERTIONSz  GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYfGA+GLIBCXX_ASSERTIONSf GA*FORTIFYfGA+GLIBCXX_ASSERTIONSf GA*FORTIFYKGA+GLIBCXX_ASSERTIONSK GA*FORTIFYKBGA+GLIBCXX_ASSERTIONSKB GA*FORTIFYBGA+GLIBCXX_ASSERTIONSB GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY(GA+GLIBCXX_ASSERTIONS( GA*FORTIFY($ GA+GLIBCXX_ASSERTIONS($  GA*FORTIFY$ m GA+GLIBCXX_ASSERTIONS$ m  GA*FORTIFYm F GA+GLIBCXX_ASSERTIONSm F  GA*FORTIFYF AGA+GLIBCXX_ASSERTIONSF A GA*FORTIFYAGA+GLIBCXX_ASSERTIONSA GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYQ"GA+GLIBCXX_ASSERTIONSQ" GA*FORTIFYQ"&GA+GLIBCXX_ASSERTIONSQ"& GA*FORTIFY&+GA+GLIBCXX_ASSERTIONS&+ GA*FORTIFY+E.GA+GLIBCXX_ASSERTIONS+E. GA*FORTIFYE.1GA+GLIBCXX_ASSERTIONSE.1 GA*FORTIFY15GA+GLIBCXX_ASSERTIONS15 GA*FORTIFY59GA+GLIBCXX_ASSERTIONS59 GA*FORTIFY9<GA+GLIBCXX_ASSERTIONS9< GA*FORTIFY<AGA+GLIBCXX_ASSERTIONS<A GA*FORTIFYA1BGA+GLIBCXX_ASSERTIONSA1B GA*FORTIFY1BVFGA+GLIBCXX_ASSERTIONS1BVF GA*FORTIFYVFHGA+GLIBCXX_ASSERTIONSVFH GA*FORTIFYH:JGA+GLIBCXX_ASSERTIONSH:J GA*FORTIFY:JkNGA+GLIBCXX_ASSERTIONS:JkN GA*FORTIFYkNPGA+GLIBCXX_ASSERTIONSkNP GA*FORTIFYPTGA+GLIBCXX_ASSERTIONSPT GA*FORTIFYT\XGA+GLIBCXX_ASSERTIONST\X GA*FORTIFY\XcZGA+GLIBCXX_ASSERTIONS\XcZ GA*FORTIFYcZGA+GLIBCXX_ASSERTIONScZ GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113 *GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA*FORTIFYɉGA+GLIBCXX_ASSERTIONSɉ GA*FORTIFYɉGA+GLIBCXX_ASSERTIONSɉ GA*FORTIFYȊGA+GLIBCXX_ASSERTIONSȊ GA*FORTIFYȊ7GA+GLIBCXX_ASSERTIONSȊ7 GA*FORTIFY7GA+GLIBCXX_ASSERTIONS7 GA*FORTIFYƌGA+GLIBCXX_ASSERTIONSƌ GA*FORTIFYƌ-GA+GLIBCXX_ASSERTIONSƌ- GA*FORTIFY-GA+GLIBCXX_ASSERTIONS- GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY,GA+GLIBCXX_ASSERTIONS, GA*FORTIFY,GA+GLIBCXX_ASSERTIONS, GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYvGA+GLIBCXX_ASSERTIONSv GA*FORTIFYvGA+GLIBCXX_ASSERTIONSv GA*FORTIFYNGA+GLIBCXX_ASSERTIONSN GA*FORTIFYN{GA+GLIBCXX_ASSERTIONSN{ GA*FORTIFY{GA+GLIBCXX_ASSERTIONS{ GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYqGA+GLIBCXX_ASSERTIONSq GA*FORTIFYqGA+GLIBCXX_ASSERTIONSq GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYXGA+GLIBCXX_ASSERTIONSX GA*FORTIFYXnGA+GLIBCXX_ASSERTIONSXn GA*FORTIFYn GA+GLIBCXX_ASSERTIONSn  GA*FORTIFY ɠGA+GLIBCXX_ASSERTIONS ɠ GA*FORTIFYɠzGA+GLIBCXX_ASSERTIONSɠz GA*FORTIFYzGA+GLIBCXX_ASSERTIONSz GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113"GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY͢GA+GLIBCXX_ASSERTIONS͢ GA*FORTIFY͢GA+GLIBCXX_ASSERTIONS͢ GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYɤGA+GLIBCXX_ASSERTIONSɤ GA*FORTIFYɤGA+GLIBCXX_ASSERTIONSɤ GA*FORTIFY+GA+GLIBCXX_ASSERTIONS+ GA*FORTIFY+NGA+GLIBCXX_ASSERTIONS+N GA*FORTIFYNGA+GLIBCXX_ASSERTIONSN GA*FORTIFYAGA+GLIBCXX_ASSERTIONSA GA*FORTIFYA GA+GLIBCXX_ASSERTIONSA  GA*FORTIFY >GA+GLIBCXX_ASSERTIONS > GA*FORTIFY>iGA+GLIBCXX_ASSERTIONS>i GA*FORTIFYiGA+GLIBCXX_ASSERTIONSi GA*FORTIFYLGA+GLIBCXX_ASSERTIONSL GA*FORTIFYLӫGA+GLIBCXX_ASSERTIONSLӫ GA*FORTIFYӫ GA+GLIBCXX_ASSERTIONSӫ  GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFYiGA+GLIBCXX_ASSERTIONSi GA*FORTIFYiGA+GLIBCXX_ASSERTIONSi GA*FORTIFYmGA+GLIBCXX_ASSERTIONSm GA*FORTIFYm%GA+GLIBCXX_ASSERTIONSm% GA*FORTIFY%GA+GLIBCXX_ASSERTIONS% GA*FORTIFY GA+GLIBCXX_ASSERTIONS  GA*FORTIFY yGA+GLIBCXX_ASSERTIONS y GA*FORTIFYy]GA+GLIBCXX_ASSERTIONSy] GA*FORTIFY]GA+GLIBCXX_ASSERTIONS] GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY/GA+GLIBCXX_ASSERTIONS/ GA*FORTIFY/}GA+GLIBCXX_ASSERTIONS/} GA*FORTIFY}YGA+GLIBCXX_ASSERTIONS}Y GA*FORTIFYYչGA+GLIBCXX_ASSERTIONSYչ GA*FORTIFYչ#GA+GLIBCXX_ASSERTIONSչ# GA*FORTIFY#ںGA+GLIBCXX_ASSERTIONS#ں GA*FORTIFYںuGA+GLIBCXX_ASSERTIONSںu GA*FORTIFYuzGA+GLIBCXX_ASSERTIONSuz GA*FORTIFYzGA+GLIBCXX_ASSERTIONSz GA*FORTIFY"GA+GLIBCXX_ASSERTIONS" GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p11130[GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA*FORTIFY0zGA+GLIBCXX_ASSERTIONS0z GA*FORTIFYz:GA+GLIBCXX_ASSERTIONSz: GA*FORTIFY:GA+GLIBCXX_ASSERTIONS: GA*FORTIFY?GA+GLIBCXX_ASSERTIONS? GA*FORTIFY?GA+GLIBCXX_ASSERTIONS? GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYkGA+GLIBCXX_ASSERTIONSk GA*FORTIFYkGA+GLIBCXX_ASSERTIONSk GA*FORTIFY1GA+GLIBCXX_ASSERTIONS1 GA*FORTIFY1GA+GLIBCXX_ASSERTIONS1 GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYXGA+GLIBCXX_ASSERTIONSX GA*FORTIFYXmGA+GLIBCXX_ASSERTIONSXm GA*FORTIFYmGA+GLIBCXX_ASSERTIONSm GA*FORTIFY%GA+GLIBCXX_ASSERTIONS% GA*FORTIFY%GA+GLIBCXX_ASSERTIONS% GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY%GA+GLIBCXX_ASSERTIONS% GA*FORTIFY%XGA+GLIBCXX_ASSERTIONS%X GA*FORTIFYXGA+GLIBCXX_ASSERTIONSX GA*FORTIFYSGA+GLIBCXX_ASSERTIONSS GA*FORTIFYSGA+GLIBCXX_ASSERTIONSS GA*FORTIFYvGA+GLIBCXX_ASSERTIONSv GA*FORTIFYvOGA+GLIBCXX_ASSERTIONSvO GA*FORTIFYOGA+GLIBCXX_ASSERTIONSO GA*FORTIFYjGA+GLIBCXX_ASSERTIONSj GA*FORTIFYjGA+GLIBCXX_ASSERTIONSj GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*FORTIFY!GA+GLIBCXX_ASSERTIONS! GA*FORTIFY!h"GA+GLIBCXX_ASSERTIONS!h" GA*FORTIFYh"$#GA+GLIBCXX_ASSERTIONSh"$# GA*FORTIFY$#5)GA+GLIBCXX_ASSERTIONS$#5) GA*FORTIFY5).GA+GLIBCXX_ASSERTIONS5). GA*FORTIFY.U5GA+GLIBCXX_ASSERTIONS.U5 GA*FORTIFYU5u;GA+GLIBCXX_ASSERTIONSU5u; GA*FORTIFYu;AGA+GLIBCXX_ASSERTIONSu;A GA*FORTIFYAQGA+GLIBCXX_ASSERTIONSAQ GA*FORTIFYQ1XGA+GLIBCXX_ASSERTIONSQ1X GA*FORTIFY1X:YGA+GLIBCXX_ASSERTIONS1X:Y GA*FORTIFY:Y[GA+GLIBCXX_ASSERTIONS:Y[ GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113[cGA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA*FORTIFY[^GA+GLIBCXX_ASSERTIONS[^ GA*FORTIFY^`GA+GLIBCXX_ASSERTIONS^` GA*FORTIFY``GA+GLIBCXX_ASSERTIONS`` GA*FORTIFY`aGA+GLIBCXX_ASSERTIONS`a GA*FORTIFYa\aGA+GLIBCXX_ASSERTIONSa\a GA*FORTIFY\a{bGA+GLIBCXX_ASSERTIONS\a{b GA*FORTIFY{bbGA+GLIBCXX_ASSERTIONS{bb GA*FORTIFYbcGA+GLIBCXX_ASSERTIONSbc GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1113**GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3a1ccGA$3a1ccGA$3a1GA$3a1$c)c,,g <  ,,/,FC0,9Q [lgu (-9%0 0 %-G%'9inty)E{2LE"ERL8 L6E!L-?+yY(F~'4!eZe$@O'lB[(L   T3 L Ln, i   Q,  q N !3 R0  T#0 4 U#0] V /( v y. xy  yE  zy [ |E 2 y > f 8 f $ 60o 1E( C c EB* F G e  L'5$ H  Z m   l  $ "h  #p # $x % '  L @  L l *!@-  L U!E h2' ( y@ L)H U Lm$SE yX6 (7a 8 0: !; ? A y B y C G 0I !J K Od 0Q !R S y 6T %U a c ( #d (^edg Y 20[ ( ]f G&h  l 7n "o y t0 Ov ( /w y xE p3@5<Y.D_rtL.V+i8pd3y y L $  %& y f( y (* y v0 y ,{ 0|y( 2 L@" 2 2WeZ!e"$Z62 y.7 y8; yZB 9 ( + 6  e L ) "s+--7gBBL - 0 )B  -'  ) WW!e 2B p45 4 N    "# # - ($8 8 B 0M M W 2b b l Zw w     2 G     (  =  R  g  |  A4 -B V! '{(|  | 3 4  L ( L 4 L 5  N  )  - L 5. 40 /+5  = 4> m@  b"A vC y$ E ( ]J 0 ,N*8 P6@ [H m(\X ]h 'j x N L Z L26 b( yp 46 d( yr  y r 4b 36 y X7 y: b -Z,.Z =,   Z Z3 e y 1 4 b d Z e e fy gy $h e \ 2 Zj5 e yu( ZhD F Z)G e;6Hy:0  32 9 ( - !  e L %E ' 32( )9 (*- + DIR Q-IV!vUV!wLNV!Ez_" y!/ OP!1 op(# D#0 K#0 #I >#G)##E  ) #E ,#E "5#E "#E 2#E #E +#E 7#$0" f#$0#COP!2  copP$yD$z0K$z0$zI>$zG!)#$zE  !) $zE !,$zE !"5$zE !"$zE !2$zE !$zE !+$zE 7$z$0"f$z$0# $}0$I$G(3$ Z0$ g08$ g0< $~O@&$ OH\!8  `#, D#0 K#0 #I >#G)##E  ) #E ,#E "5#E "#E 2#E #E +#E 7#$0" f#$0# # 0( R+# 00"#G8,#g0@# IH#IPx%# 0X"!< 95P#jD#0K#0#I>#G!)##E  !) #E !,#E !"5#E !"#E !2#E !#E !+#E 7#$0"f#$0## 0(R+# 00# 08# 0@# 0H !G w"? !$ t'%#0#Iop%$0 =(%%0 %'0 s4%(0 %*0^( <%,V00 %-V04 .5%/6^8 %0V0@ %1V0D %30H A1%4P Z%5X "%6` %8g0h w%:6^p 2%<6^x %=6^ 7%A$0 %Cb U*%E0 %HI ,%K@ %L@ L'%N1 3%O1 2%^E0 %`$0 6%a$0 &-%b0 i"%n$0 <&%u0 3%z0 h%{0 l'%}hR {%~0 ,)%<^ ,%0$3%V$-%0$%0$%@$%B^ $ %H^($ %@H0$6%$8$%$P$E %$h$#%/$ %/%ISv%0$7%N^$d)%0%Ina%$% $ % $u %0 $%0(%Irs%00$%08$%0@$%0H$ %P$:5%0X$3%0`$0%0h$e %0p$d%Px$%P$:)%aO$%0`$d/%7h$ %0p$0%0x$F%0$x"%0$ %0$1%Z$%$Y%%E0$1%$0$ %1$%1$*%1$%0&%T^&%+]&%/+]&2%=]&-%?e&5%@Z&}%Bg0&0%Dg0&%Fy&R%Iy&\%Je & %K0(&H%L00&-%M08&%NZ@&.%OH& %P0P&7%Q0X&%T0`&%Ud^h&/%Vp& %X1x&2 %Y1y&; %Z1z&) %[1{& %\1|& %]1}&%^1~&Y%_1&%aZ&%b0&%d& %fV0&%hV0&%lV0&J1%oy&%pj^&b%s0&%t0&%u0&-%v0&D %w0&6%z0&0%}0&%%0&%0&4%0&%0&#%0&-%0&,%0&%p^ & %08&J%0@&3%0H&F%0P&m%0X&L%0`&b%0h&] %0p&1%0x&%Z&58%;&C%0& %0&9"%0&W%0&!%hR&q2%y&;%y&e%%Z&.%^&)%Z&%0&A%0&&%0&(%y&q%V0&`7%1&.%1&x$%E0&%y&0%V0&2%V0&,/%^&)%0&a,%^&!% &I %;p&%:Hx&%G&7%G&#%;&<*%y&H %g0&%1&%1& %1& %1&7%}&%}&%q&+%q'Ian% g0&6% g0&< %g0&<%g0&(%g0&+%e&}%Z&%3&%!^&((%#x0`&z%%g0d&%'Yh&6/%)0p&-%+V0x&W%,G&%.G&Y&%/G&{5%1G&%3G&1%6Z&%7&%8&%9g0&`.%:$0&s%;1&0%=$0&'%>1&-%F1&^2%G1&#%L\&E$%N1&%SS&{%Wy& %Y1&+%[Z&/%\0& %a0&%b0&%%c0 &@3%d0 &+%f0 &%g0 &%%j0 &+7%k0( &~%l00 &(%m08 &%n0@ &-%o0H &$%p0P &b#%r^X &5%s^ &4%t^( &H*%u0 &'%v0 &(%w0 &'&%x0 &t%y0 &%z0 &%|0 &%%}8C &*%~ &s%^ &7%$0 &.%1 &6%1 &#,%0 &@%0 &S2%^ &%0 &A0%( &%0( &.%00 & %^8 &%G@ &a%GH &_-%^P &&%0X &%0` & %3h &0'%^p &E%^x &4%0 &%0 &G4%0 &1#%0 &%0 &%0 &%N] &,%0 &$%0 &4% &)%Y &#%Y &E%Y &"%Y &} %Y & % Z & %0 &r!%0 &E%0 &) %0 &%0 &}%0( &-%^0 &7%^8 &:%\@ &2%] &5% ^ &#% y &x%NY &w%"^ &7%-G &%/ SV!O $$sv&% &&( !&g0 &g0 &5AV!P %av&[% &&8 !&g0 &g0 &68HV!Q g%hv&% &&@9 !&g0 &g0 &8CV!R %cv&% &&08 !&g0 &g0 &7Na!S &?&I&&&7!&g0&g0 &9GP!T U&gpP' ' 3' 0 ' G -,' ; !' g0 1' g0 .' 0 +' 0( W-' ;0 ' 08y,'E@7!'E@ !' :HGV!U 'gv&Q' &&7 !&g0 &g0 &&7 io&'&&9!&g0&g0 &F9^!W ' `$?'#$CAS2`$j(Z$ $0$ $0X,$ E0C$ V0=$ V0K#$ V0 )$ hR*8$ @0$ t$ V0(&$R0"!Z w( 0(( "( ; !( T 0( E0 m7( e _( $0 q(  ( 0 +( Z(XPV![ ( xpv &A)'&0 &:&&!; !b N) 6() ) ') 0 ) : +)  4)  ") 0 !c ) X *) '* 0 *: %* [*!d )0&4\*'&50 &5:&5&5F;4&6: &7f:(!e i* u7h+ -+ '+0 +: + +H z&+0 *+H( +H0 +I8 !+Z@ +*IH N+;P /+g0X +k;\ .+V0`!h :+&^E,'&_0 &_:&_&_;4&`: &b 7( 8&o;0d$&q V8&r V@$&s VH92&t ZP(&u 0X&v Z`u3&w 0hG-&x Zp &y 0xZ+&z e&{ $0"!i W,E, @( , y( T 3( T ( 6T 1( T 0( T C6( dT( /( T0 k( T8ANY!j ,(any!-)% ! ()!0)_1!0)!0)!0)e!0)t!0)!Z) !e)\/! V0)! g0)! V)S! b)1! )'! 1)! 0)1! "1,!{-4!|7Y1!}Q!~ (Q!l  .+0!o."!=Y! bq ! b!HY}!7Y .!7Y(< !m |.U(&b.\)&c0b&db#&e14&f1&g0 !q . Z, / ,  ,&FH ,' g0 ]*,( g0PAD!r %!s :/ ,(,+/ Z,,  ,-tH ,.  ,/G ,0 g0 !t / 0,L0 7,MZ ,,M0 F2,MH i*,Mg0 &,Mg0 ,",Mg0 3,My$ $,M$0( ,M$0)I8-SU8--$0I16-f40U16-9E0I32-yV0U32-Eg0*g0 s00+}02-0-< g00(0!)!w 6 6!y $000'%[%111(j 1 6.12 a.3y *.6 Z .7 Z ?/.8 Z ).9 Z $.: Z( .; Z0 .< Z8 .= Z@ .@ ZH E.A ZP  .B ZX &.D2` 74.F2h &.Hyp .Iyt !.J x +.M9 Q .NS .O2 z..Q2 I5.Y -.[2 .\2 5.]2 .^ ( 5._  !4.`y .b36/(1,.+b2(1 e2 L2*22 e3 L032&03 03%1 y Q3+F31Q3%1 y1Q3`2<3de2>3z32N337&4314 V0!4 Z!4 0!&4 0&43-E&z4....3.s0.).$!..,.? .6 .g . . .. .~4&4HE&4he* 4 q-*$ 7 *% : v*)NHEK&4hek *-5 '*.g0 */V0 --*52&5&Z&VY&b&nY&0`&73&0&7&7y & 7 57 '50 5: 5 5= X5= J35=( f!500 l35g08 5@ 5H 5P W15=X "5g0` g15g0d *5(h 5g0p 8%5g0t 5>x  5e 05Z 950 D#5 65 n 5 ,535E$5E  5;574I&3&7&Z&VY&b&nY&0`&73&0&7&7y & 7)&08&Z&VY&b&nY&0`&73&0&7&7y & 7\*&8&Z&VY&b&nY&0`&73&0&7&7y & 7A)&@9&Z&VY&b&nY&0`&73&0&7&7y & 7)/&9)&Z)&V)Y&b)&n)Y&0)`&7)3&0)&7)&7)y & 7-+/&f:)&Z)&V)Y&b)&n)Y&0)`&7)3&0)&7)&7)y & 70#&:)& n)3,& 0)p)& 0)L6& 1014&:)Z#& V))& b)5& :)& 1407&;)~& ;)& j(/&F;)&) &Z/&5k;)&5) &5Z*&: g0;1;%x;./&_;)&_) &_Z/&l;)@!&m;)1&n (E 4;+;!6; 5;< b5$0 5 $0 )5 E05< (5&< 5'  5(  5) 0 5* 0 Q5+  Z5-< {-5. $0 J5/< G<< L *5:= 5; #end5<  5C *5D<%=5<=5 5Z Qh5= 35i> 5> 5> N05>  5? {754?( 5_?0 45?8 5?@ R"5?H Z 5>P 05?X 358@`<==<=55 45>> +5 e 5>>&5>1=i>10g0P>1V0>1=ZZZ0(g0o>1Z>1=0ZZs0>D>>10>1=>?1=?4?1=b00?T?1=b0Z?$T?:?1V0?1=Z?b0e?10?1=00s0?10?1=Z?s0?1(?1=?o.?1=2@10y0==2@g0g01?2P5h @3rex5i @,5j@95l005nZD#5o  65p (n 5q 0!5r;83pos5s @5t $0H >*5u>@2 5| 1A *5}1A45~nA@5A 5 Z@ x5nAV5 y 5 Z3u5PG7A"5\A5]G&5^Ax&45^"AtA'5@5 V025A25nA25 +B25nA5 g08%5 g0 3cp5A2 5{B25nA5 g08%5 g0 3cp5A5{B;<2@52C25nA5 g08%5 g0 3cp5A&5 g0t5 152C 3me5{B( 5 8C0 5 g08P5 E0< 5 E0>E0$02@5C25nA:5nAO&5$nA 5=3cp5A t55A$5g0(3B5{B0 5Z825D25nAK.5 V0(5 V0 3me5{B2 5 ID25 nA;5 nA-5  0x65 Z25bD3val5 y285D25nA:5nA3me5{B3B5{B3cp5A  5 1$M 5 y(5" y,x5# Z02(5&SE25(nA 5)nA3cp5*At55+As5, Z>.5- V0  5. V0$2`51F253nA3c154 y3c254y 3cp55A56 g08%57 g0 (58 V059 V0  5: 1$3A5;{B(3B5;{B03me5<{B8 25=F@0 5>FN $0*F L 2h5AG5B g03cp5CA5D g08%5E g0 3c15F y3c25Fy+5G Z5H Z 5I y(3min5J y,3max5Jy03A5K{B83B5K{B@ 25LFH0 5MFV/h5G)'5A) *5 @4yes5A)p 5 A)5+B)#5B)5>C)Q%5C)%5D)o5ID) 5$bD)935/D)5?SE)' 5N*F 5Q7A GG L 5_tAb7KLQ', ,!:H ),":H k,# @H q,$ @H-/ /,hH1, hH?,%nH@H HzH/,MH*,M0.,M;+H+ +Z+H&+0+,+I+0G+;+*I&+0/+:+LIV+;+(# IF5#Gsv#0iv#Vuv#bu/#LI10I1II/#I)#0)1# G)H #0/# J)# 0)"#  G u081jJ  83 Z !84 Z R.86  287  6+88 Z 89 Z /8: Z( # 9*J !#9, Z r9- Z 9.  .9/ e*:HK #:MK$:VK$ :[K$':b0K$ :ie$:nAK eK5L e0K5L eAK5L eRK5Lw 4H;+K ;- Z ! ;. Z  ;/ };0 ;1 u;2( j+;40 ;68 6;8L@6P'<y2<\ &4<Z&c< &><N&<J&<ZH&1< P&r<NX&< `&J!<Z&%< & 7<N&<RK&<Z&< &<N&c<N&< &<N&%<N& < &- <N &$<Z(&< 0&'<Z8&5< @&$< yHJjJ  \ J RK  :<K0*& O+*'0+*(  l$ [O 4$![O 0$"U O$# y 4$$ 1 $%E0 O{ $( O$yO/(mO!($'O$( 0$* @H3cv$+ ;3&$- V0'4$. 0 4($31P$4 0$6 @H3cv$7 ;3gv$9 0.$: 0 0$uP$v 0j$x 0D"$y 08$z 03cv${ ; *$|P(aO/$P4svp$ 04gv$ 02$P3ary$ 03ix$ V2$ Q5*$ V03ix$ V2$0Q3cur$ V3end$ V2$WQ3cur$ 03end$ 0/$Q4ary$P) $P)+$ Q)0$0Q50$Q$ Q-!$P%$0*$WQ$ @H(,s*$R>4$0`&$ 0/0$hR)Q $O)-$O)$1P)4.$Q)#$Q3X$AS0$ $0$ $0$ E0d$ V0$ ($ $ Z$ 0 }($  0( $  Z0 $  Z8)$  Z@5$  (HO$=P/`$@fS)$A')3$BnR0)0$S $ 0+$S$S /$S$ V0 $ V0$$ V0(O$ V0,'fS"$fS1yT10;S1g06T10;T1ydT10;0V0 0X (+=? 0` ` =@ 0h =A E0p =B E0r =C V0t =D 0x =E V0 =F V0 =G b 5=H b 7=I1 j=J $0 D=K E0 !=L V0 Q)=M 0 &=N 0 =OY =P 0 =Q Z 3=T Z 3=U Z =V Z 97=W Z =X Z =Y Z =^ 0 )=_ E0 k =` $0 L=a $0$$=b 0$=c 7$6=d 0$=f Y$y=g Y@$+1=h $0T$f =i $0U$E)=j $0V$c=k $0W$D,=l hRX$=m `$5=n 0`$#=o 0d$.=rVh$C7=sVp$=tex$=v1y7 =xEx72=yEx7T=zE x7G+={E x$ =}1{$H=~ $0|:UT.U 3Y L V0+Y L 5=:U-7YCY!Y?!1!$Y4!$YNYW!QYYY1yY1*!RYYY10!SYp1!UYY11 Z10!VZZ)Z1 l4Z+)ZM/!u4Z0!w4Z!y4ZK!{4Z!}4Z!4Zr!4Z/!4Zf!4Z%!4Z&*!4Z!4Z lZ LZ!Z!4Z/!4Z !4Z!"!4Z41!4Z!4ZU$!4Z!4Z# !4Z!4Z!4Zm! /0! /0l! /0 l[ L@[![!4Z l[ L[![![< !Q3 #\+\,!#\y!;/!;Q!;"!; -t\+&!i\!; \+%2!\!4Z8E!\. ..1.P7.+.'.!Q3d4H!F]3pad!G] $+] L!P8]>]N]10 ,!a[]a]1V0z]100|!fI!g]]10]10{ !h8]#!i]]1y]1ZN!lZ!s#^3fn!t "13ptr!u (5-!v],V0SGG+Y Zd^ Ly V^ L#^g0 (^ L 0^ L 0^ L $0^ L -0N3(( 0_ L"'!Q0r !Q0>Q3%>&Q3 z]D_+->9_ ]\_+< >cQ_e>0 @0_+v_$ > _ Q0_+_V'> _ > 4ZX > _ /0_+_E(> _Z!?&0?(1{ ?-0f?11z)?41#?K3c0?L3j?X0C?[j^Q5?\y.?]y?aV!'?e03?f0J?i ?0?06?yV ?y&?](?0S ?bc?0?$?1 -#a L?a'!4Y!6Y Ya LIa/@Ya R,za Lja@ za /0a La!N a 1a+a!ba!ca!da!ea"!fa.!ga/!Z.b4nv!Zn4u8!Z3b b $0Cb L#!Z.b/![sb4nv![n4u8![3bPb![sbA/+Y9b6[?b:s[#e;c] emg<!g=!g>UU9%%Jd:stJ0:sJ(e#;avL0yo;svM0;cN enf?c;_pL (<.g@;g>T;AcB_pU(CfoPUdDfNJDfEfFf@Hg>Ts<.gG*UgId>Ts>Q0<6.gGDbgtd>T}>QsT~>Q0T|GSge>U# $ &3$<}g<.g<.gGg(f>T>Q#>R2<.gG gXf>T|>Q>R0G1g}f>U c>Ts<}.gGgf>U pc@g>U @cK5fL 1Msv0NBrcg0O-.\Z!gL(\`L\P B PC`PBPBF PB QBP B R-.#.DQ&6&6BP B P00B QBP B1Vu D>( -9%0 0 %-G%'9inty)E{2LE"ERL8 L6E!L-?+yY(F~'4!``$@O'lB[(L  T3 L Ln, i   Q,  q N !3 R+  T#+ 4 U#+] V /( v y. xy  yE  zy [ |E 2 y > f 8 f $ 10o 1E ( C c E=* F G ` L'5$ H  Z m   l  $ "h  #p # $x % '  L @  L g *!;-  L U!; h2' ( y@ L)H K Lm$S;} yX6 (7W8 0: !;? A y B y C}G 0I !J K} OZ 0Q !R S y 6T %Ua~ c ( #d ( ^eZg Y 20[ ( ]f G&h ~l 7n "o yt& Ov ( /w y xE p3@5<Y.D_rtL.V+i8pd3y y L$  %& y f( y (* y v0 y ,{ &| y ( ( L@ ( (M[Z!["$Z62 y.7 y8; yZB 9 ( + 6  ` L )s+##-g88B - 0 )8  -  ) MM!e 28 p/5 /N    "  # ($. . 8 0C C M 2X X b Zm m w    ( =       3  H  ]  r  A/ -8 V! '{# r  r 3 4  L # L / L 5  D  )  - L 5. 40 /+5  = 4> m@  b"A vC y$ E ( ]J 0 ,N*8 P6@ [H m(\X ]h 'j x N L Z L26 b( yp 46 d( yr  y r 4X 36 y X7 y0 X -Z,.Z =,   Z Z3 [ y 1 / b d Z e [ fy gy $h [ R 2 Zj5 [ yu( ZhD F Z)G [;6Hy:0  32 9 ( - !  ` L %; ' 32( )9 (*- + DIR G-IV!vLUV!wLNV!Eu_" y!/ OP!1 op(# D#W1 K#W1 #J >#sH)##E  ) #E ,#E "5#E "#E 2#E #E +#E 7#0" f#0#COP!2  copP$yD$zW1K$zW1$zJ>$zsH!)#$zE  !) $zE !,$zE !"5$zE !"$zE !2$zE !$zE !+$zE 7$z0"f$z0# $}0$I$sH(3$ Z0$ 08$ 0< $O@&$ OH\!8  `#' D#W1 K#W1 #J >#sH)##E  ) #E ,#E "5#E "#E 2#E #E +#E 7#0" f#0# # W1( R+# W10"#sH8,#0@#  JH#RJPx%# W1X"!< 45P#eD#W1K#W1#J>#sH!)##E  !) #E !,#E !"5#E !"#E !2#E !#E !+#E 7#0"f#0## W1(R+# W10# W18# W1@# W1H !G r"? !$ t'%#:1#Iop%$W1 =(%%:1 %':1 s4%(:1 %*^( <%,00 %-04 .5%/^8 %00@ %10D %3:1H A1%4P Z%5X "%6` %80h w%:^p 2%<^x %=^ 7%A0 %C] U*%EQ1 %HJ ,%KQA %LQA L'%N]1 3%O]1 2%^0 %`0 6%a0 &-%bE1 i"%n0 <&%uv0 3%zQ1 h%{Q1 l'%}R {%~K1 ,)%^ ,%K1$3%L$-%/1$%/1$%QA$%^ $ %^($ %H0$6%$8$%$P$E %$h$#%/$ %/%ISv%/1$7%^$d)%Q1%Ina%$% $ % $u %E1 $%/1(%Irs%/10$%E18$%E1@$%E1H$ %P$:5%/1X$3%/1`$0%/1h$e %W1p$d% Qx$% Q$:)%O$%/1`$d/%e7h$ %W1p$0%W1x$F%Q1$x"%E1$ %E1$1%Z$%$Y%%0$1%0$ %]1$%]1$*%]1$%/1&%^&%]&%/]&2%=$^&-%?[&5%@Z&}%B0&0%D0&%Fy&R%Iy&\%J[ & %KE1(&H%LE10&-%ME18&%NZ@&.%OH& %P/1P&7%Q/1X&%T/1`&%U^h&/%Vp& %X]1x&2 %Y]1y&; %Z]1z&) %[]1{& %\]1|& %]]1}&%^]1~&Y%_]1&%aZ&%b/1&%d& %f0&%h0&%l0&J1%oy&%p^&b%sE1&%tE1&%uE1&-%vE1&D %wK1&6%zE1&0%}E1&%%E1&%E1&4%E1&%/1&#%/1&-%/1&,%K1&%^ & %Q18&J%Q1@&3%/1H&F%K1P&m%K1X&L%K1`&b%K1h&] %K1p&1%K1x&%Z&58%;&C%W1& %W1&9"%W1&W%W1&!%R&q2%y&;%y&e%%Z&.%^&)%Z&%K1&A%/1&&%/1&(%y&q%0&`7%]1&.%]1&x$%0&%y&0%0&2%0&,/%^&)%Q1&a,%_&!% &I %;p&%Hx&%sH&7%sH&#%;&<*%y&H %0&%]1&%]1& %]1& %]1&7%x&%x&%l&+%l'Ian% 0&6% 0&< %0&<%0&(%0&+%[&}%Z&% 4&%!_&((%#0`&z%%0d&%'Zh&6/%)/1p&-%+0x&W%,sH&%.sH&Y&%/sH&{5%1sH&%3sH&1%6Z&%7&%8&%90&`.%:0&s%;]1&0%=0&'%>]1&-%F]1&^2%G]1&#%L)]&E$%N]1&%SS&{%Wy& %Y]1&+%[Z&/%\/1& %a/1&%b/1&%%c/1 &@3%d/1 &+%f/1 &%g/1 &%%j/1 &+7%k/1( &~%l/10 &(%m/18 &%n/1@ &-%o/1H &$%p/1P &b#%r_X &5%s(_ &4%t(_( &H*%u/1 &'%v/1 &(%w/1 &'&%x/1 &t%y/1 &%zQ1 &%|Q1 &%%}C &*%~ &s%8_ &7%0 &.%]1 &6%]1 &#,%:1 &@%:1 &S2%H_ &%K1 &A0%( &%:1( &.%K10 & %N_8 &%sH@ &a%sHH &_-%T_P &&%Q1X &%Q1` & %3h &0'%Z_p &E%Z_x &4%/1 &%/1 &G4%/1 &1#%/1 &%/1 &%/1 &%] &,%K1 &$%K1 &4% &)%*Z &#%*Z &E%*Z &"%MZ &} %ZZ & %Z & %Q1 &r!%Q1 &E%K1 &) %Q1 &%/1 &}%Q1( &-%`_0 &7%^8 &:%t]@ &2%b^ &5% f_ &#% y &x%Y &w%"l_ &7%-aH &%/ SV!O $$sv& % &&( !&0 &0 &W5AV!P %av&V% && 9 !&0 &0 &8HV!Q b%hv&% &&9 !&0 &0 &9CV!R %cv&% &&8 !&0 &0 &7Na!S %?&D&&&Y7!&0&0 &*:GP!T P&gpP' & 3' /1 ' mH -,' ; !' 0 1' 0 .' Q1 +' K1( W-' ;0 ' E18y,'E@7!'E@ !' =;HGV!U  'gv&L' &&7 !&0 &0 &w7 io&'&&$:!&0&0 &9^!W ' `$?'#$CS2`$e(Z$ 0$ 0X,$ 0C$ 0=$ 0K#$ 0 )$ R*8$ QA0$ t$ 0(&$R0"!Z r( 0(( "( l; !( T 0( 0 m7( ` _( 0 q(  ( /1 +( Z(XPV![ ( xpv &<)'&Q1 &C;&&r;_:!\ I)U8(&)'&Q1 &C;&&;4&:  !b ) 6() ) ') Q1 ) C; +)  4)  ") :1 !c * X *I* '* Q1 *C; %* [*!d V*0&4*'&5Q1 &5C;&5&5;4&6: &7:(!e * u7h+ + '+Q1 +C; + +I z&+Q1 *+:I( +\I0 +~I8 !+Z@ +IH N+;P /+0X +;\ .+0`!h +&^,'&_Q1 &_C;&_&_<4&`: &bq7( 8&o5<0d$&q L8&r L@$&s LH92&t ZP(&u E1X&v Z`u3&w E1hG-&x Zp &y E1xZ+&z `&{ 0"!i ,, @( *- y( T 3( T ( T 1( T 0( T C6( T( /( T0 k( T8ANY!j 7-(any!#.)% ! ()!/1)_1!:1)!E1)!K1)e!Q1)t!W1)!Z) ![)\/! 0)! 0)! L)S! ])1! )'! ]1)! 1)1! 1,!{\.4!|Y1!}G!~ (Q!l i.+0!."!Y! ]q ! ]!Y}!Y .!Y(< !m .U(&b./\)&cK1b&d]#&ey14&fy1&gK1 !q ;/ Z,}/ ,  ,&H ,' 0 ]*,( 0PAD!r %!s / ,(,+/ Z,,  ,-H ,.  ,/sH ,0 0 !t / 0,Lv0 7,MZ ,,MQ1 F2,MH i*,M0 &,M0 ,",M0 3,My$ $,M0( ,M0)I8-SU8--0I16-f0U16-90I32-y0U32-E0*0 00+02-0-< 01(1!)!w 66!y $/1/1:1& %V%]1y1y1(ei1 6.1 3 a.3y *.6 Z .7 Z ?/.8 Z ).9 Z $.: Z( .; Z0 .< Z8 .= Z@ .@ ZH E.A ZP  .B ZX &.D%3` 74.F+3h &.Hyp .Iyt !.J x +.M9 Q .NS .O13 z..QA3 I5.Y -.[L3 .\W3 5.]+3 .^ ( 5._  !4.`y .b]36/1,.+b 31 `A3 L3*G3R3 `m3 L0y3 3&0y3 0y3%1 y 3+313%1 y13`2<3de2>332N437&4V414 0!4 Z!4 W1!&4 E1&44-E&4....3.s0.).$!..,.? .6 .g . . .. .HE&4he* 5 q-*$ e7 *% =; v*)`OHEK&"5hek *-W5 '*.0 */0 --*513 &5&Z&LY&]&iY&/1`&Y73&:1&_7&k7y &q7 5Y7 '5Q1 5C; 5 5= X5n> J35=( f!5Q10 l3508 5@ 5H 5P W15t>X "50` g150d *5(h 50p 8%50t 5z>x  5[ 05Z 95/1 D#5 65 n 5 ,535E$5E  5;5e74D&3 &7&Z&LY&]&iY&/1`&Y73&:1&_7&k7y &q7I* &8&Z&LY&]&iY&/1`&Y73&:1&_7&k7y &q7* & 9&Z&LY&]&iY&/1`&Y73&:1&_7&k7y &q7) &9&Z&LY&]&iY&/1`&Y73&:1&_7&k7y &q7)/&$:)&Z)&L)Y&])&i)Y&/1)`&Y7)3&:1)&_7)&k7)y &q7+/&:)&Z)&L)Y&])&i)Y&/1)`&Y7)3&:1)&_7)&k7)y &q70#&:)& i)3,& Q1)p)& 0)L6& ]1014&=;)Z#& L))& ])5& =;)& ]1507&l;)~& l;)& e(/&;)&) &Z/&;)&) &Z/&5;)&5) &5Z*&: 0;y1;%;.//&_5<)&_) &_Z/&lZ<)@!&mZ<)1&n (; 4k<+`<!6k< 5< b50 5 0 )5 05|< (5& = 5'  5(  5) /1 5* /1 Q5+  Z5-4= {-5. 0 J5/4= <D= L *5:y= 5; #end5<  5C *5DD=%= 5=5 5Z Qh5i> 35> 5? 5Z? N05t?  5? {75?( 5?0 45?8 5"@@ R"5F@H Z 5t?P 05k@X 35@`=i> =y=55 45> +5 [ 5>&5>1=>y1510>10?y1=ZZZ/1(0>1ZT?y1=/1ZZ0T?>"?1/1t?y1=`??y1=z??y1=051??y1=0?$??10?y1=?0?1/1"@y1=51510?1/1F@y1=?0(@1(e@y1=e@.L@1=@y1@1yW1n>=@00]1q@2P5h KA3rex5i KA,5jQA95l/105nZD#5o  65p (n 5q 0!5rl;83pos5s @5t 0H>*5u@2 5| A *5}A45~A@5&B 5 ZWA x5AV5 y 5 Z3u5PvGA"5\&B5]DH&5^&Bx&45^"&BA'5dA5 025_B25A25 B25A5 08%5 0 3cp59B2 5B25A5 08%5 0 3cp59B5B<2@5C25A5 08%5 0 3cp59B&5 0t5 ]15C 3me5B( 5 C0 5 08P5 0< 5 0>002@5:D25A:5AO&5$A 5=3cp59B t559B$50(3B5B0 5Z825|D25AK.5 0(5 0 3me5B2 5 D25 A;5 A-5  /1x65 Z25D3val5 y285]E25A:5A3me5B3B5B3cp59B  5 ]1$M 5 y(5" y,x5# Z02(5&E25(A 5)A3cp5*9Bt55+9Bs5, Z>.5- 0  5. 0$2`51F253A3c154 y3c254y 3cp559B56 08%57 0 (58 059 0  5: ]1$3A5;B(3B5;B03me5<B8 25=F@0 5>FN 0F L 2h5AvG5B 03cp5C9B5D 08%5E 0 3c15F y3c25Fy+5G Z5H Z 5I y(3min5J y,3max5Jy03A5KB83B5KB@ 25LFH0 5MFV/h57H)'5,B) *5 WA4yes5FB)p 5 _B)5B)#5B)5C)Q%5:D)%5|D)o5D) 5$D)935/]E)5?E)' 5NF 5QA 7HTH L 5_Ab7KLL',,!H ),"H k,# H q,$ H/}/ ,H1, H?,%HHHH/ ,MI*,MQ1.,M; +:I+ +Z +\I&+W1+*- +~I+W1G+< +I&+E1/+=; +IV+ <+( # IF5#sHsv#/1iv#Luv#]u/#I1W1Jy1JI/#RJ)#W1)1# sH)H #E1/# wJ)# W1)"#  sH u081J  83 Z !84 Z R.86  287  6+88 Z 89 Z /8: Z( # 9*"K !#9, Z r9- Z 9.  .9/ [*:HK #:MK$:VK$ :[K$':bK$ :i`$:nK `K5L `K5L `K5L `K5Lw 4H;+KL ;- Z ! ;. Z  ;/ };0 ;1 u;2( j+;40 ;68 6;8L@6P'<y2<R &4<Z&c< &><)O&<wJ&<ZH&1< P&r</OX&< `&J!<Z&%< & 7<5O&<K&<Z&< &<;O&c<AO&< &<AO&%<GO& < &- <GO &$<Z(&< 0&'<Z8&5< @&$< yH"KJ { R wJ K  :<KLW1 *&O+*'/1+*(  l$ O 4$!O 0$"K O$# y 4$$ ]1 $%0O{ $(O$O/(O!($'TP$( W1$* H3cv$+ ;3&$- 0'4$. K1 4($3P$4 W1$6 H3cv$7 ;3gv$9 E1.$: E1 0$u Q$v W1j$x /1D"$y W18$z /13cv${ ; *$| Q(O/$3Q4svp$ :14gv$ E12$YQ3ary$ K13ix$ L2$Q5*$ 03ix$ L2$Q3cur$ L3end$ L2$Q3cur$ /13end$ /1/$ R4ary$3Q) $YQ)+$Q)0$Q50$aR$ aR-!$Q%$/1*$Q$ H('s*$R>4$W1`&$ /1/0$R)Q $P)-$TP)$P)4.$ R)#$gR3X$S0$ 0$ 0$ 0d$ 0$ ($ $ Z$ /1 }($  /1( $  Z0 $  Z8)$  Z@5$  (HO$=P/`$@S)$A')3$BR0)0$[T $ K1+$[T$aT /$aT$ 0 $ 0$$ 0(O$ 0,'S"$S1yTy1/1l;tT10Ty1/1l;T1yTy1/1l;/10T1yTy1l;e@T,= CU#val= V4 ]= f == 0 J = ; =U (=U =U = /1 = Z V4= Z = /1 OUK= OU 5="oY (=&oY c+='V4 q"=(y 6=+y *=-y =.uY L=/uY(#ps=0uY0 (=4 08 =5 0< =6 Z@ =7 ZH '=8 0P =9 0Q z=; 0R n%=< ]1S q== 0T => W1X (+=? W1` ` =@ /1h =A 0p =B 0r =C 0t =D /1x =E 0 =F 0 =G ] 5=H ] 7=I]1 j=J 0 D=K 0 !=L 0 Q)=M W1 &=N /1 =O{Y =P /1 =Q Z 3=T Z 3=U Z =V Z 97=W Z =X Z =Y Z =^ 0 )=_ 0 k =` 0 L=a 0$$=b Q1$=c q7$6=d K1$=f Y$y=g Y@$+1=h 0T$f =i 0U$E)=j 0V$c=k 0W$D,=l RX$=m `$5=n 0`$#=o 0d$.=rLh$C7=sLp$=t`x$=v]1y7 =xEx72=yEx7T=zE x7G+={E x$ =}]1{$H=~ 0|UCUU V4Y L 0Y L 5=U#.YY!Y?!y1!$Y4!$YYW!QZZZ1y*Zy1*!R7Z=ZMZy1/1!SZp1!UgZmZ1]1Zy1/1!VZZZy1 gZ+ZM/!uZ0!wZ!yZK!{Z!}Z!Zr!Z/!Zf!Z%!Z&*!Z!Z g[[ LK[![[!Z/!Z !Z!"!Z41!Z!ZU$!Z!Z# !Z!Z!Zm! 0! 0l! 0 g3\ L@#\!3\!Z gb\ LR\!b\!b\< !3 \+\,!\y!k</!k<Q!k<"!k< -\+&!\!k< ]+%2!]!Z8E!g]. ..1.P7.+.'.!3d4H!F]3pad!G] $] L!P]]]y1W1 ,!a]]10]y15151|!fJ!g ^^1W1$^y1W1{ !h]#!i>^D^1yb^y1ZZO!lZ!s^3fn!t 13ptr!u (5-!vo^*-0gTTH7HY Z^ Ly L^ L^0 (_ L /1(_ L /18_ L 0H_ L \.Q1MO3(( /1|_ L"'!0r !0>3%>&3 ]_+->_ ]_+< >c_e>0 0_+_$ > _ 0`+ `V'> ` > ZX > _ 0K`+@`E(> K`Z!?&1?(y1{ ?-"1f?1]1z)?4]1#?K 4c0?L 4j?X1C?[^Q5?\y.?]y?aL!'?e13?f1J?i ?1?16?yV ?y&?1^(?Q1S ?]c?1?$?]1 -a L?a'!4Z!6Z a La/@a ,a La@ a 0b Lb!N b d1.b+#b!b.b!c.b!d.b!e.b"!f.b.!g.b/!Zb4nv!Zi4u8!Zbb 0b L#!Zb/![b4nv![i4u8![bb![b<A91,<AB3cc1((c9AM4c:c1(Nc(7:AWZc`c1Zoc9B-ococ-ECd.>.9.,9.*;.~9.{=.:.>.8 .|< .y; .p> .8 .<.e:.;.8.<.:.;.=P:Cc{c-ECpd.\>.A;.i8.<.O=.>.>.d=.; .8 <C%d>8xCje0C(CdRCdF=CjeU+Cje QCje(4Cje0Cje83docCg@3nsChH CcP;CIiX9Ch`%;C(hC9p=C9r|d=C_f0C(CdRCdF=CjeU+Cje QCg(4Cje0Cje83docCg@<C(H;C(P%CC(XgC(`E:Cdh=Cdp(>C(xpe=C/g0C0(C1dRC2ZF=C3jeU+C4je QC5je(4C6je0C7je83docC8g@@C;yH*C<yL8CB_fP9CC_fX<CDh`CEdhCFdp3idsCG(x{@CH(3URLCId<CJyuCLoi%;CM(n;CNy;CPyef:<:Dg:;DggC<Dg=Dg}8Cvd<C$h<0Ch4ChC h>CdҚCd0C(  Cg(h$h[<`CIi0C(CdRCdF=CjeU+Cje QCje(4CIi0CIi83docCg@3nsChHv<CpdP%;C(Xh?8C|d<CiiOig8EcR;Ec8E(c >Eb<ENc =F=i yF>\i  F?\i F@ y=Fi9=@j m: y1;cv;< 9y=ax 0 >% :1?sp :1>u  0@ cAhh+@ jBvCQ  DXE|)kCU  CQ cCR cCX cDDDE|kCT dCQ pDEkCT dCQ DEkCT eCQ `DE'lCT  eCQ DE`lCT dCQ `D$E:lCT dCQ `DAEWlCT CU}CT ' go LoG:N`p5s: Ny1 ;cvN;L : < 9Py=spP :1  =axP 0 w H%P :1X P Hu P 0 I<Es eJr=nT ( =pV (EANy}ii{NQ~iiH;\yHA]51D>J@qHv:a LDDEÁDqCTvCQ}BЁCU hdCT cCQ aCR eDDDEqCT}CQ2D%DGDVEf rCTvCQ2DpDD܁DDD%D0DMDmKrH9cXDD LXP rMiDDDBCU~CT c gEs L5sG97`Gv: 7y1+';cv7;nd< 99y=sp9 :1=ax9 0SGH%9 :1Hu 9 042I<Wv eJu=n= (njNyriiH;ByHAC513-JtHv:G L|DjDE%ÁtCTvCQ|BXЁCU hdCT cCQ GCR eDDDE5uCTvCQ2DD1D9܁DKDDDKuH9IXDDLXp9 uMiDDDB9CU}CT  gWv LGvG: fy:  y1;cv ;]S< 9"y=sp" :1=ax" 0B6H%" :1Hu " 0#!I<vy eJx=n& (]YNyhiiH;+yHA,51"JxHv:0 LqkDDEÁwCTvCQ|BЁCU hdCT cCQ 0CR eD9DcDrEGxCTvCQ2DDD܁DDDEDPDmKxH92XDD#LX" yMiDDDBCU}CT  gvy L fyG:9 `W{:  y1 ;cv ;JB< 9y=sp :1=ax 0H% :1{wHu  0O<vyJ`z=n (Ny`ii+)DDDEzCTvCQ2D=JzH9XPNDD!LX0 {MivtD}DDB]CU}CT P:~Q y1Rcv;S 9yTsp :1]UTax 0N% :1:6Nu  0I<,~ @eJg}Tsv/1TnViiH; (pjHA51J|Hv: LDD'E5Á|CTvCQ~BeЁCU hdCT cCQ CR @eD9EP(}CT0DZDoDw܁DDDK}H9XYWDDUXP }Mi}DDDBFCU}CT  g,~ L$~P[9p؀Q y1Rcv;S 9yTsp :1HFTax 0wkN% :1 Nu  0q i O<J@$Tn ( Vo (NyKii"!!W LiiN;/1s!k!DD DE(vCTCQ2E:4CUCT0DDEO@CTvDYDDDE CTvCQ2DDKahN9X!!DhDsUX Mi!!DDDBCU}CT c g L"؀X:/ yY =*( XQ*)""Z2MCUUCT cCQ0[ ;0v\  y1][8[8Ar^G`^%:%:H^99H/ ^%<%<Iw^99H^==H ]G8G8JC ^d<d<Hz ]P<P<A^==Hb^2>2>H ^b;b;F ];;F]99F];;F^L>L>H ]88A ru =_(9_9#09#<9%09 09 %09G%'<sint#|)H9{2OH"HRO8 O6H!O-?+|Y(t++F~'4!m+b9#m$@O'lJ[( O=  T3 "O&On, $i  Q, q V$!3 R8 T#84 U#8] V$/( vy. x| yH z|[ |H 2 |> i 8 i$ >90o 1H2( C c EJ* F G "m&O'5$ H9 "m4&Oߗ(@uI"YY&OvFO HO}HO+OԨ+c4 ]p$ l$"0h#6p#$6x%'<"%%&O +'C"LL&O t#L+L*!h\-"&O$U!h2'z ( |@L)H"&Om$Sa  |X6 +7=8=0:!;=?nA |B |C =G0I!JK = O0Q!RS |6T%U=ac +#d +2^0eg= Ya20[ +]iG&h =l7n"o |=tOv +/w | xH 2p3 @5 <Y.D=P_rtLn.V+i08pad3y"|0&O=$ {%& |f( |(* |v0 | ,{ |0-|+{"R&O@#  +w b !!"$b!62 |!.7 |!8; |9ZB <$(n+:6 s#F"m&O F+')#+'#+'s+#+'g#+$-$ 0:) - )o #+) *! e : 2  p 57  #4 4 + 'N #  + '"#  + '($#  + '0#  + '2#  + 'Z#  + n+ +" +- +8 +C $ +N  +Y  +d  +o  +z  +  +  + A$- V! '{2   3  4 ' " &O"' &O"7 &O$5R  #7 !)R !R "0 &O$5.P 40 /+5  =4>m@ b"A vC |$E (]J 0,N28 P>@[Hm(\X]h'jP x"V` &O"bp &O!26` !b( |!p !46` !d( |!r   |$r 4 36 |X7 | + ! -b!, .b$=,!R  ! bZ3! !|1! $ "b "d b"e "f|"g|$"h $ " 2" b j5"  "| u(" b*h"D  "F b )"G  ;6"H|I:0#p #32##<(# 0#! p"m&OI #% #'32#(#)<(#*0#+ pADIR$'-:IV%v#:UV%wO:NV%E)9 & |%/ :OP%1 7Bop('D'U2K'U2'RK>'I1)#'H  1) 'H 1,'H 1"5'H 1"'H 12'H 1'H 1+'H 7'1"f'1#:COP%2 YcopP(yl D(zU2 K(zU2 (zRK >(zI7)#(zH  7) (zH 7,(zH 7"5(zH 7"(zH 72(zH 7(zH 7+(zH 7(z1" f(z1# (}1$ I(I( 3( b0 ( 18 ( 1<  (2Q@ &( 8QH\%8 y$`'D'U2K'U2'RK>'I1)#'H  1) 'H 1,'H 1"5'H 1"'H 12'H 1'H 1+'H 7'1"f'1#' U2(R+' U20 "'I8 ,'1@ ' ^KH 'KP x%' U2X"%< *5P' D'U2 K'U2 'RK >'I7)#'H  7) 'H 7,'H 7"5'H 7"'H 72'H 7'H 7+'H 7'1" f'1# ' U2( R+' U20 ' U28 ' U2@ ' U2H %G Q? %E%t')#824Iop)$U2=()%82)'82s4)(82 )*_(<),10)-14.5)/_8 )01@ )11D)382HA1)4PZ)5X")6`)81hw):_p2)<_x)=_7)A1)CU*)EO2)HXK,)KB)LBL')N[23)O[22)^1 )`16)a1&-)bC2i")n1<&)ut13)zO2h){O2l')}T{)~I2,))_,)I23)-)-2)-2)B)_  )_( )I06)E%8)E%PE )E%h#)0 )0ZISv)-27)`d))O2ZIna))  ) u )C2 )-2(ZIrs)-20)C28)C2@)C2H )LP:5)-2X3)-2`0)-2he )U2pd)GRx)GR:))Q)-2`d/)~8h )U2p0)U2xF)O2x")C2 )C21)b)Y%)11)1 )[2)[2*)[2)-2)`)^)/^2)=b_-)?5)@b})B10)D1)F|R)I|\)J  )KC2(H)LC20-)MC28)Nb@.)OLH )P-2P7)Q-2X)T-2`)U`h/)VLp )X[2x2 )Y[2y; )Z[2z) )[[2{ )\[2| )][2})^[2~Y)_[2)ab)b-2)d )f1)h1)l1J1)o|)p`b)sC2)tC2)uC2-)vC2D )wI26)zC20)}C2%)C2)C24)C2)-2#)-2-)-2,)I2)$`  )O28J)O2@3)-2HF)I2Pm)I2XL)I2`b)I2h] )I2p1)I2x)b58)<=C)U2 )U29")U2W)U2!)Tq2)|;)|e%)b.)4`))b)I2A)-2&)-2()|q)1`7)[2.)[2x$)1)|0)12)1,/):`))O2a,)@`!) I )<=p)Ix)I7)I#)<=<*)|H )1)[2)[2 )[2 )[27)))y+)yxIan) 16) 1< )1<)1()1+)})b)5)!F`(()#1`z)%1d)'A[h6/))-2p-)+1xW),I).IY&)/I{5)1I)3I1)6b)7)8)91`.):1s);[20)=1')>[2-)F[2^2)G[2#)Lg^E$)N[2)SV{)W| )Y[2+)[b/)\-2 )a-2)b-2%)c-2 @3)d-2 +)f-2 )g-2 %)j-2 +7)k-2( ~)l-20 ()m-28 )n-2@ -)o-2H $)p-2P b#)rV`X 5)sf` 4)tf`( H*)u-2 ')v-2 ()w-2 '&)x-2 t)y-2 )zO2 )|O2 %)}D *)~ s)v` 7)1 .)[2 6)[2 #,)82 @)82 S2)` )I2 A0)+ )82( .)I20  )`8 )I@ a)IH _-)`P &)O2X )O2`  )5h 0')`p E)`x 4)-2 )-2 G4)-2 1#)-2 )-2 )-2 )_ ,)I2 $)I2 4) ))h[ #)h[ E)h[ ")[ } )[  )[  )O2 r!)O2 E)I2 ) )O2 )-2 })O2( -)`0 7)4`8 :)^@ 2)_ 5) ` #) | x)[ w)"` 7)-I )/ :SV%O V%#E%Bsv*%&*+!*1*1 *p6:AV%P %Bav*%&*":!*1*1 *9:HV%Q %Bhv*1&&*:!*1*1 *(::CV%R =&Bcv*~&&*9!*1*1 *9Na%S &*?*& &*r8 !*1 *1 *C;:GP%T &BgpP+ '3+ -2+ I-,+ <=!+ 11+ 1.+ O2 ++ I2(W-+ <=0+ C281y,+H@17!+H@!+ V<H:GV%U 'Bgv*'&*9!*1*1 *8Yio* ( &*=; !*1 *1 *:^%W -(* `(?J( #(CT*2`(( Z( 1 ( 1 X,( 1 C( 1 =( 1 K#( 1 )( T *8( B 0( t( 1( &(S0"%Z )$0,v)", <!, =V0, 1m7, m_, 1q, , -2 +, b(:XPV%[ )Yxpv *) '*O2 *\< * *<_:%\ )*U8(*,* '*O2 *\< * *< 4*< f%^ 9**G0** '*O2 *\< * *< 4* < * ;( %b *$6(- *'- O2 - \<+- 4-  "- 82 %c +$X .G+'. O2 .\<%.[.%d T+*0*4+ '*5O2 *5\< *5 *5< 4*6< *7;(%e +$u7h/ ,'/O2 /\<//VJz&/O2 */xJ(/J0/J8!/b@ /JHN/<=P//1X/=\./1`%h ,**^- '*_O2 *_\< *_ *_N= 4*`< *b8( 8*os=0 d$*q 8 *r @ $*s H 92*t bP (*u C2X *v b` u3*w C2h G-*x bp *y C2x Z+*z m *{ 1"%i -#-$@, (.y, U3, U, U1, U0, U C6, V(/, 7V0k, U8:ANY%j 5.yany%!/% % +%-2_1%82%C2%I2e%O2t%U2%b %\/% 1% 1% S% 1% '% [2% 21% }2*,%{Z/ 4%|Z 1%} %~ +Q%l g/*+0%/ "%Z %  q %  %Z }%Z .%Z(< %m /*U(*b,0 \)*cI2 b*d #*ew2 4*fw2 *gI2 %q 90$Z0{0 0 0&I0' 1]*0( 1:PAD%r %%s 0$,(0+0Z0, 0-(J0.  0/I00 1 %t 0$00Lt170Mb,0MO2F20M4Ji*0M1&0M1,"0M1 30M|$$0M1(0M1)AI81VAU810#1AI161i#1AU161<#1AI321|#1AU321H#1z1"11;#1 2111< 1- 2+2!)%w 66%y E%#-2-2#82'%%+9#[2-w2w2+g2$ 621 4a23|*26 b27 b?/28 b)29 b $2: b(2; b02< b82= b@2@ bHE2A bP 2B bX&2D#4`742F)4h&2H|p2I|t!2J x+2M<Q 2NV2O/4z.2Q?4I52Y -2[J42\U452])42^ +52_ !42`|2b[4632{2+'b42"m?4&O4'*E4'P4"mk4&O(|z4+!44 4!&44! 44!%5 |"R4;#4!54!%5 |!54`6<4'de6>546N5'77a&8c518 1!8 b!8 U2!&8 C2&8%53H*53s0)$!,? 6 g    ~4*o5AHE*5Bhe. /6q-.$ ~8.% V<v.)PAHEK*;6Bhek .-p6'..1./1--.5/42*6*b*Y**Y*-2`*r83*82*x8*8y *8$9r8'9O2 9\<99>X9? J39>(f!9O20l39189@9H 9PW19?X"91`g191d*9+h91p8%91t9?x 909b99-2D#969n 9,9139H1$9H  9<=6~85&42*9*b*Y**Y*-2`*r83*82*x8*8y *8G+2*9*b*Y**Y*-2`*r83*82*x8*8y *8+2*":*b*Y**Y*-2`*r83*82*x8*8y *8*2*:*b*Y**Y*-2`*r83*82*x8*8y *8*6*=;*b*Y**Y*-2`*r83*82*x8*8y *8,6*;*b*Y**Y*-2`*r83*82*x8*8y *8[#*<* 3,* O2p)* 1L6* [2[14*V<Z#* )* 5* V<* [2/6[7*<~* <* (6*<* *b6*<* *b6*<* *b6*5=*5 *5b**: 1-<=w2<=1&,=,06*_s=*_ *_b6*l=@!*m=1*n +"7=;#=!!:=$9=b919 1)9 19=$ (9&J>9' 9( 9) -29* -2Q9+  $Z9-r>{-9. 1J9/r>"=>&O$*9:>9; 4end9< 9C *9D>~&#>29>9 9b$Qh9? 39@9Z@9@N09@ 9@ {79@(9A0497A89`A@R"9AHZ 9@P09AX 39A`#>?J>>96$49?+9 9?&9?(>@w2321@(1Z@w2>bbb-2+1#@(b@w2>-2Rbb1@?`@(-2@w2>@-@w2>@-@w2>132@-Aw2>1AQ%#A@(17Aw2>A1A(-2`Aw2>32321=A(-2Aw2>A1fA(+Aw2>A/A(>Aw2>2|U2?>A11[2A5P9h B%rex9i B ,9jB 99l-2 09nb D#9o  69p ( n 9q 0 !9r<8%pos9s @ 9t 1H?l*9uA5 9| B *9}B 49~"C @9dC 9 bB* x9"C V9 |  9 b%u9PHBQ9\dC 9]I9^dCx49^"dC(C'9B9 159C 29"C59 C 29"C 9 1 8%9 1 %cp9wC5 9/D 29"C 9 1 8%9 1 %cp9wC 9/D=5@9D 29"C 9 1 8%9 1 %cp9wC &9 1 t9 [2 9D %me9/D( 9 D0 9 18 P9 1< 9 1>115@9xE 29"C :9"C O&9$"C 9>%cp9wC t59wC$ 91(%B9/D0  9b859E 29"C K.9 1 (9 1 %me9/D5 9 E 29 "C ;9 "C -9  -2 x69 b59F%val9 |589F 29"C :9"C%me9/D%B9/D%cp9wC  9 [2$ M 9 |( 9" |, x9# b05(9&G 29("C 9)"C%cp9*wC t59+wC s9, b >.9- 1 9. 1$5`91G 293"C%c194 |%c294| %cp95wC 96 1 8%97 1 (98 1 99 1  9: [2$%A9;/D(%B9;/D0%me9</D8 29=G@ 0 9>GN"1G&O 5h9AH 9B 1%cp9CwC 9D 1 8%9E 1 %c19F |%c29F| +9G b 9H b 9I |(%min9J |,%max9J|0%A9K/D8%B9K/D@ 29LGH 0 9MGV6h9uI'9jC *9 BEyes9Cp 9 C9C#95D9DQ%9xE%9Eo9E 9$F939/F9?G' 9NG 9QB"uII&O 9_(Cb;KO'0=0!I)0"Ik0# Iq0$ I0{020J10 J?0%"JII.J020MVJ*0MO2.0M<=2/xJ/ /b2/J&/U2/(.2/J/U2G/B=2/J&/C2//V<2/KV/H=/+2' 7KF5'IPsv'-2Piv'Puv'u/'K(U2RKw2CK7K6'K'U21' IH 'C26' K' U2"'  I$u0<1L <3 b!<4 bR.<6 2<7 6+<8 b<9 b /<: b($# =*`L!#=, br=- b=. .=/ I*>HL#>ML>VL >[L'>bL >im>nL"mLJO"mLJO"mLJO"mMJOw$4H?+M?- b! ?. b ?/}?0 ?1 u?2(j+?40?686?8O@|P@h OP k@jb 7@k  @qOP @ub @v  z@yL( @zbH W0@{ P @}UPX @R ` @b @  B@[P ,@| @b - @  )@ k&@b @  s#@aP >'@| 2@ 4@bc@ >@gP@K@bH1@ Pr@mPX@ `J!@b%@  7@sP@M@b@ @yPc@P@ @P%@P @ - @P $@b(@ 0'@b85@ @$@ |H`LLR   K M :@MU22.&P+.'-2+.( $l( Q4(!Q0("O(# |4($ [2(%1P{ ((P(-Q'/(!Q*!(('Q (( U2 (* I%cv(+ <= 3&(- 1 '4(. I2 *4((3Q (4 U2 (6 I%cv(7 <=%gv(9 C2 .(: C2 *0(uGR (v U2 j(x -2 D"(y U2 8(z -2%cv({ <= *(|GR(Q6(qREsvp( 82Egv( C25(R%ary( I2%ix( 5(R 5*( 1%ix( 5(R%cur( %end( 5( S%cur( -2%end( -26(JSEary(qR (R+(R0(R*50(S ( S -!(MR %(-2 *( S ( I(*s*(S >4(U2 `&( -260(TQ (>Q-(Q(Q4.(JS#(S*3X(T 0( 1 ( 1 ( 1 d( 1 (  ((  ( b ( -2 }((  -2( (  b0 (  b8 )(  b@ 5(  +H O(>P6`(@U(AJ(3(B"T*0)0(U ( I2 +(U (U /(U ( 1 ( 1$ ( 1( O( 1, (U"(U(|Uw2-2<U(1Uw2-2<U(|Vw2-2<-2L1U(|7Vw2<AV-=A V4valA c5]A i=A 1 J A <= ACV$(AVAVA -2A bV4A b A -2 VKA VI 5A"Z(A&Zc+A'c5q"A(|6A+|*A-| A.Z LA/Z(4psA0Z0(A4 18A5 1<A6 b@A7 bH'A8 1P A9 1QzA; 1Rn%A< [2SqA= 1TA> U2X(+A? U2`` A@ -2hAA 1pAB 1r AC 1tAD -2xAE 1AF 1 AG 5AH 7AI[2jAJ 1DAK 1!AL 1Q)AM U2&AN -2 AOZAP -2AQ b3AT b3AU bAV b97AW bAX bAY b A^ 1)A_ 1k A` 1LAa 1$Ab O2Ac 86Ad I2Af ZyAg Z@+1Ah 1Tf Ai 1UE)Aj 1VcAk 1WD,Al TXAm p`5An 1`#Ao 1d.ArhC7AspAtmxAv[2yR AxHxR2AyHxRTAzH xRG+A{H x A}[2{HA~ 1|VVV"c5Z&O"1Z&O 5AV!/Z'Z*%;[ ?%w2 %$;[ 4%$;[[W%QS[#A[Y[(|h[w2*%Ru[{[-[w2-2%SS[p1%U[[([2[w2-2%V[[-[w2"t[;#[ M/%u[ 0%w[ %y[ K%{[ %}[ %[ r%[ /%[ f%[ %%[ &*%[ %["t\&O#\ %\ %[ /%[ %[ !"%[ 41%[ %[ U$%[ %[ # %[ %[ %[ m% 1 % 1 l% 1"tq]&O@#a] %q] %["t]&O#] %] %] < %4"];#] ,%] y%= /%= Q%= "%="0(^; &%^ %="LM^; %2%B^ %[}H%^ 1P7+' %4*d4H%F^%pad%G^"E%^&O%P^^-_w2U2 ,%a__(1._w23232|%fRK%gH_N_(U2b_w2U2{ %h^#%i|__(|_w2bP%l[*%s_%fn%t }2%ptr%u +5-%v_(.1UIuIZ"b`&OR|"4`&OL_1"+V`&O"-2f`&O "-2v`&O"1`&O Z/O2P5v)+"-2`&O" '%1 r %1!B4 %B&4"._`; -B`";_a; < Bca eB1"15a;#*a $ B 5a"1Ra;#Ga V'B Ra B [ X B 5a"1a;#~a E(B a!Z!C&2!C(w2!{ C- 2!fC1[2!z)C4[2!#CK5!c0CL5!jCX2!CC[`!Q5C\|!.C]|!Ca!!'Ce2!3Cf2!JCin! C2!C2!6C|!V C|!&Co_!(CO2!S C!cC2!CE%!C[2"0b&O!Cb '%4N[ %6N[3HD=c-im]if}0kwSUbux + C ګ u LtNCT!c3ypcq fώ8ZP"Rc&O#c!/Dc"-c&O#c!D c"1d&O#d %N d"b2;d;#0d %b;d %c;d %d;d %e;d "%f;d .%g;d3HEefEQZ&oTMspѣ { f x r[ Y-WsVoMe>aUoMe=aDYY| v!"S#V$e%9y&'#(R)͡*i+,RF-%j./$j012`34`5}^6Q{7|^8P{9Y:z;g<f=n>BO?N@AzBC_DlE[FUGrMHAIJ#JK6%ZfEnv%ZEu8%Zf#ef"1f&O #%Zf6%[fEnv%[Eu8%[f#f %[f F/Z9G0#f%H& g$$@I}g I~+{I?Ij]I'I}r 4rawI}r(sCI |0I |4nIO8tHgf@H!g$@8I h I+kDIvI]I'I}r I}r(m]I |0I |45H ,hgH# >h$hJ6i4bufJ8g.J:LJ;LH/J<(s4curJ=(s 4endJ>(s(]J? |0J@ |44colJA |8nJGO@ 0JH~HJI(sPJJ(sX*JK |`4idJL |dYH$i2h\BH&,iI[BJ%n4saxJ[J+;JczJ|ĠJ|J(s J(s(*J|0JPJ|4 Ji8՜J|@J|DSvJHyJCzPFJ|XOJ|\ۭJ~`%VJ |h?J pNJ |J |v@J|JOJ|S(J|rJ|lJ,}{JsJ|JbRJ(s J|(3RJ|,?J0]J8[J@{J|Hb?J|L{J|PJ(sXJfr`AJfrhJ`pNJ|x ?J||J`uJ|OJi<J|;RJ|J|J|0J+ڦJ|ޅJ|WJ+J|J|uJWx%J"J |uJ |'J(s>iJ(sJ(s@J|<J|lMJ|ܪJuJ`PJ`Jz {Jz(5OJ|0dkJ|43sJ$|8:CJ%|<0JJ&Cz@J'|H\vJ(zP>DJ-{XQJ.gJ/OJ0OJ3~~J4|lJ5|yYJ6~}J8|EJ9O7`H'1n i{H)Cn*{ JAn GJB3 ÎJC3 dJD 9 iJE 9ijH*n7n)LH,nQ(LJxp JJk [J 1NJ J DyJ? J( WJـ0 ^J8 6WJ@ JYH H`JP S}JX ]Jہ` ёJh Jp Jx GJ[ GhJh yJ J" tJ fHJĂ Jт iJނ "J̀ YJ nJ JH 0J + J LJX &iJ|i\H-pnJH0p$JK+q0K,+K-sRK.(sF=K/tU+K0t QK1u(4K2t0K3t84docK4w@K6frH K7frP]K8|XK9N~\E:K:(s`=K;(shK=~p4URIK>(sx K?|IK@ |KDu~]H1qp3HHJqKDezVHQqHYr$ H[Tr H\fr4useH]HH^H 8H_q9[H`frHZ`rqfrHixr'rdQHrrlr3HHs>9,9*;~9{=:>8 |< y; p> 8 <e:;8<:;=P:Hrf3HHys\>A;i8<O=>>d=; 8 <H.ssH s$sHs4H sRH(smFHsss*>8xHt 0H+ Hs RH(s F=Ht U+Ht QHt( 4Ht0 Ht8%docHw@%nsH.yH HfrP ;H0zX 9H.y` %;H+h H<p =H<r#ss*=Hu 0H+ Hs RH(s F=Ht U+Ht QHw( 4Ht0 Ht8%docHw@ <H+H ;H+P %CH+X gH+` E:H(sh =H(sp (>H+xt*=H/w 0H0+ H1s RH2b F=H3t U+H4t QH5t( 4H6t0 H7t8%docH8w@ @H;|H *H<|L 8HBuP 9HCuX <HD4y` HE(sh HF(sp%idsHG+x {@HH+%URLHI(s <HJ| uHLvz %;HM+ n;HN| ;HP|u\HHLw|_fWjH$w\HH"wQ|VnAbWAH'Yw5H0#w*40H2 x H3Lw ZH4w RH5 (s%c1H6 x%c2H7 x QH8 x ҚH9 (s(VH1xww'L/x'&MKL@x#x;<M'Rx':<hM cxFx:Lux':;Lxix!C<Lzx!=Lzx}8Hvs<Hx*<0H!y 4H4y Hx >H(s ҚH(s 0H+ Hw(H.yxx=Ht$THTy:y\<Hgy*[<`Hz 0H+ Hs RH(s F=Ht U+Ht QHt( 4H0z0 H0z8%docHw@%nsH.yH v<HysP %;H+XsH*zZygy?8Hs<HPz6z=H-u?H.pzVzRx1Nz'0VwNz|z3HOz%_hZKYOz3HO${}EmNEH}y .T b  О EaJ 2DPwD.DHwHialxOL{$wXON^|sLOO |+JOP |fOQbORzOSbOT | BOUb(BOVb0BOWb8OX |@OY |DeOZ+HyO[+P rOMj|{OM}||-|+LHFOX||-|+^|mkP|'lkDvP||P%"|'-P&|||Q }'{|bQ*}|>Q9}|fQP8}$fpQR~[QS +QT}fHQU }yQXCzFQY| OQZ|$ۭQ[~(^Q]H04docQ^cz8S(Q_|@@Qb}HQc|PJbQd|TPQe}X4amQh|`]Qi|hCz3HKN~/XDtdaly\K~3HK!u~P&K$Z~pJ4~~-~frZJV#~$Z(JY~yJZJ\O>AJ]O J^ONJ_O ~tmJb&$mJdLyJeO]JfO'Jg~3|JpbNz|Ij@Vk ٢ $ 1 h ?kI./?JL3HJLz[՛JgJni(s((s3+$k4nJ^LR(ik+(s(sHJjx~-+(s(s(sFQJwx{J(q̀+(s^J)eJ-+(s|(s(sfr^JxzJ*0-Y+(s(s||(ssɁJfl-+(s| xqJ-+(s(s(s(sFCJŁˁ-ہ+nYJ 2ykJ 2nHJ-+(sJ*0-@+(sF-[+(s(sύJ*'J)u{-+(s|7LJ5uSJ@@JJ*lJTuJ`}|Jj}|Jv}|J9J9{`J9DJ%-X+(s(s(s|||uJx|MJ"rx(iLL%nhpR+3|S:<b `m?yDoZէ?/Uј u u u no oooophmq{SSKSeTZ(|xx`~`07SS{ThtS($gt(SRS!b S H#S S S ًS!nI" (|LAI+*0(+?L`I6KQ(|j+b|ҊI?9 Id(|+L|?In9\HJAdOl)[MgfUR X@œ@j@Nk@YS@K@!^@s~ @z@@'HCIBCrC'CxCCfv C\@<T9 2,<TB3|(+9TM(++7:TWÆɆ(b؆L!8Up!R;Up!8U! >Ud!<UtV"cz3HVt NoKҩ @3d@i@;@ C\C1 ^W#t$]W4lowW<&W <vW##$vW%4lowW&H&W'H{rW*!#$zrW,9^{W- |]W. |"WW/9&}W0?!WP!!LW|!!8pW!!lW!!W!!*W!"7&O#!9W!wXXH"fň;# RX8ň _X9ň aX:ň~Y'!Q~xY"o%docY#cz yY$Cz eY& | Y' | xY(z FlY* | cY+ |$ IlY,( wY. |0 hY/ |4 cY0z8 GY2 |@ Y3 |D GY4}H AY7P <Y8 |X Y9 +` yY< |h MY= |l 1Y@ |p bYACzx |YBCz rYEz ?YF YG + =YJ + dYM(s YN(s 7YQƎ =YR + 'YU ZYV | [YY + YZ| >DY[{yDY\Cz@uY_WxHbYa |PA&Yd +X\QYgO`xYhOhuYi |pxiYj |tUpY({IY)'*HXYzD%curY{(s H/Y|(s Y~ | Yo Y ٚY|( aY|, OY0 3Y 8 1Y |@ GYCzH Y|PY* P}YQb$}YSFYT |OYU |ۭYV~kYRV3HYeφ,pgW_CU FYp$sYr $#sHYtYubYvgYw |HYx )AYyfr Yz +(Y{ |0sY| +8Y} |@UYsY(|Ǎ|aYӍ$aYRY(s/YF_YǍ-#D|YY/5(ID_MYU$^MY}RY(s/Y#YI9nY >SY(Ǝ+(s(soYҎ؎(+(s(s!ywYq"'weYr `Y) zhY) ǨY)zfZU'yfHZfIl[x'lČ[lޑ[6&'ݑE[7i[9%'is[:ϏDk\T'Ckm\UՏ9M\_}|5\j}|m\p%'ma\q-?\s$?'>cR\tP33H]} Yj[]$V3H]-tOAi]3H]=:0oHD3H]I^fPbPԠHK|$f e y M v  Ӕ zj-l]cj'l[]j{^SI]+]-+L}M^?Ǒ'MB\^@ؑ$=_=y_>Cz _?Cz_@ |$S _Cby_DCz _ECz_F |_G |_H |S_=_ޑR_nR_b$K ` y` -2` O2?` -2Ň` -2L`"{v`]E e  &])b e &c#m-2 &cH-2 &ScN)@pZ%/ )@w2["W"cv)@<=#" 9.@|ax.@ 1p,j, %.@ 82sp.@ 82 u .@ 1/3@L _pj@ +,,@9_pl@ +,,pW_pn@ +--u_pp@ +*-(-Э_ps@ +O-M-_pu@ +t-r-0ϔ_p@ +--`_p@ +-- _p@ +--)_p@ +..G_p@ +-.+. e_p@ +R.P.P_p@ +w.u._p@ +.._p@ +..ݕ_p@ +.._p@ + / /@_p@ +0/./p7_p@ +U/S/U_p@ +z/x/аs_p@ +//_p@ +//0_p@ +//`͖_p@ +0 0_p@ +3010 _p@ +X0V0'_p@ +}0{0 E_p@ +00Pc_p@ +00_p@ +00_p@ +11_p@ +6141ۗ_p@ +[1Y1@_p@ +1~1p_p@ +115_p@ +11гS_p@ +11q_p@ +220_p@ +9272`_p@ +^2\2˘_p@ +22_p@ +22_p@ +22 %_p@ +22PC_p@ +33a_p@ +<3:3_p@ +a3_3_p@ +33_p@ +33@ٙ_p@ +33p_p@ +33_p@ +44ж3_p@ +?4=4Q_p@ +d4b40o_p@ +44`_pA +44_pA +44ɚ_pA +44_p A +55 _p A +B5@5P#_p A +g5e5A_pA +55__pA +55}_pA +55_pA +55@_p"A + 66pכ_p$A +E6C6_p)A +j6h6й_p+A +661_p.A +660O_p0A +66`m_p2A +66_p7A +#7!7_p9A +H7F7ǜ_p;A +m7k7 _p=A +77P_p?A +77!_pUA +77?_pWA +87]_pYA +&8$8{_p[A +K8I8@_p^A +p8n8p_p`A +88՝_pdA +88м_pfA +88_phA +990/_prA +)9'9`M_ptA +N9L9k_pvA +s9q9_pxA +99_pzA +99 Ş_p|A +99P_pA +::_pA +,:*:_pA +Q:O:=_pA +v:t:[_pA +::@y_pA +::p_pA +::_pA + ;;пӟ_pA +/;-;_pA +T;R;0_pA +y;w;`-_pA +;;K_pA +;;i_pA +;;_pA + < < _pA +2<0<Pà_pA +W<U<_pA +|<z<_pA +<<_pA +<<;_pB +<<@Y_pB +==pw_pB +5=3= ,_pB +Z=X=ZC ZP U  Q R cX cZC ZC ZC Z] CT (Q 0ZC Z] |T <Q ZC [] T WQ [C /[] T Q v6[C L[] 'T sQ  ;S[C i[] `T Q 9p[C [] T Q ;[C [] ңT Q ;[C []  T  Q `8[C [] DT HQ [C [] }T Q \C \] T pQ 0\C 4\] T Q ;\C Q\] (T Q <X\C n\] aT Q 9u\C \] T Q  5\C \] ӥT Q 1\C \]  T  Q P.\C \] ET 9Q +\C \] ~T Q &]C ]] T VQ `"#]C 9]] T tQ @]C V]] )T Q ]]C s]] bT Q  z]C ]] T (Q  ]C ]] ԧT Q ]C ]]  T Q P]C ]] FT Q P ]C ^] T Q p  ^C !^] T  Q (^C >^] T &Q E^C [^] *T @Q b^C x^] cT ZQ 6^C ^] T HQ ^C ^] թT xQ ^C ^] T pQ ^C ^] GT Q  ^C  _] T Q `_C &_] T Q `h-_C C_] T Q bJ_C `_] +T Q p`q_C _] dT Q p`_C _] T Q @t_C _] ֫T 0Q @t_C _] T Q R`C `] HT XQ P*`C @`] T Q PQ`C g`] T Q n`C `] T Q `C `] ,T Q `C `] eT Q  <`C `] T 8Q `X`C `] ׭T `Q X`C a] T Q TaC 2a] IT Q P9aC Oa] T Q VaC la] T Q saC a] T 0Q >aC a] -T `Q aC a] fT Q pNaC a] T Q @JaC a] دT Q `bC $b] T Q `5bC Kb] JT @Q RbC hb] T pQ ybC b] T Q bC b] T Q pbC b] .T Q bC b] gT Q PjbC  c] T HQ cC *c] ٱT xQ @1cC Gc] T Q NcC dc] KT Q PgkcC c] T Q dcC c] T (Q rcC c] T HQ rcC c] /T pQ rcC d] hT Q PdC 0d] T Q NAdC Wd] ڳT Q NhdC ~d] T Q LdC d] LT 8Q pdC d] T `Q pdC d] T Q pdC e] T Q @KeC -e] 0T Q `4eC Je] iT Q пQeC ge] T  Q neC e] ۵T @Q ЩeC e] T `Q eC e] MT Q eC e] T Q eC  f] T Q fC )f] T "Q 0fC Ff] 1T =Q PWfC mf] jT [Q P~fC f] T vQ PfC f] ܷT Q dfC f] T Q dfC  g] NT Q dgC 0g] T Q dAgC Wg] T Q chgC ~g] T Q cgC g] 2T  Q `agC g] kT HQ `agC g] T hQ ,gC h] ݹT Q `1hC -h] T Q  H>hC Th] OT Q  HehC {h] T 6Q hC h] T TQ BhC h] T pQ BhC h] 3T Q BhC  i] lT Q BiC 4i] T Q BEiC [i] ޻T Q BliC i] T Q `IiC i] PT Q `IiC i] T Q  iC i] ¼T Q  jC j] T (Q  /jC Ej] 4T ,Q  VjC lj] mT PQ }jC j] T xQ jC j] ߽T Q pjC j] T Q `jC j] QT Q `kC %k] T Q Э,kC Bk] þT @Q SkC ik] T `Q zkC k] 5T Q ФkC k] nT JQ kC k] T Q kC k] T Q lC l] T Q )lC ?l] RT hQ PlC fl] T (Q 0wlC l] T HQ 0lC l] T pQ pGlC l] 6T Q pElC l] oT Q 0lC m] T Q 0&mC r] WT Q  ErC [r] T Q p'brC xr] T @Q prC r] T pQ p#rC r] ;T Q @ rC r] tT Q prC r] T Q nrC  s] T  Q ЃsC &s] T HQ `F-sC Cs] XT pQ JsC `s] T Q ~gsC }s] T Q {sC s] T Q wsC s] <T Q @BsC s] uT 8Q pusC s] T `Q 0lsC t] T Q  rtC +t]  T Q _2tC Ht] YT Q ]YtC ot] T  Q ]tC t] T PQ ]tC t] T xQ ]tC t] =T Q [tC u] vT Q UuC (u] T Q U9uC Ou] T 2Q PTVuC lu] !T  Q DsuC u] ZT IQ QuC u] T eQ QuC u] T Q QuC u] T Q RvC v] >T Q pN"vC 8v] wT Q `K?vC Uv] T HQ G\vC rv] T Q @yvC v] "T hQ p=vC v] [T Q P;vC v] T Q :vC v] T Q `vC w] T Q `%wC ;w] ?T Q `LwC bw] xT (Q `swC w] T HQ `wC w] T pQ `wC w] #T Q @7wC w] \T %Q 3xC x] T BQ 3,xC Bx] T Q `.IxC _x] T ^Q !fxC |x] @T vQ @xC x] yT Q @xC x] T Q 4xC x] T (Q 4xC y] $T PQ 0`yC +y] ]T xQ 0`] T Q {EC [] T Q .bC x] MT Q ,C ] T Q p*C ] T  Q 0(ÆC ن] T  Q 0(C ] 1T : Q %C '] jT V Q %;C Q] T r Q #XC n] T PQ nuC ] T  Q lC ] NT  Q `jC Ň] T  Q @ḣC ] T  Q  fC ] T pQ WC ] 2T Q  #C 9] kT Q pT@C V] T  Q @?]C s] T !Q @zC ] T ;!Q `<C ] OT Q 0!C ʈ] T X!Q `шC ] T Q pC ] T Q  C !] 3T @Q @(C >] lT hQ EC QC \j Tvfw U Qk rC z  C F >? ?w2=}=cv?<=== 9?|sp? 82h>f>ax? 1>>%? 82:?2?u ? 1??u?L???-2l@b@/%fr@@%frAAenc%<BB.len%in%TrC~Cout%!Tr!DD]%#DD{%-2E{E;?-2*FF 9%  9% FF 9&C GC VC h 2T~Q0R2yC C  cT0C  T~ U U}" U1C ? TQ}NU]C h 4T~rC C C C  T}QR2%C R U~T a U~T P~' U3 3 @ -U}M RUwTQ}Y lUY Uf Uw U0T0 U0T0tU~T0 r U  )U* AU5 YT}BY sUJY USf Uw\ U0T0e U0T0otU~T0C  $T}Q~8U}C  iT 'Q0C C  U}T~ Uw"r U Z0r U >r U o zZ9"@FFC C mu? ~GGC C C   U~T I\?@.x \?w27G3Gcv\?<=~GpG 9^?|sp^? 82HHax^? 1OHAH%^? 82HHu ^? 1iIgI0vb?LIId?-25J-Jq%frJJ/r%fr\KLKencs%<L L.lent%inu%TrLLoutu%!TrMM]v%#dNVN{w%-2ON;o?-2O{O ~ 9z%  9|% OO B9%  PPIC TC C C C  7T~Q0R2C 1C ; hT0EC P T} U~ U} UC  TQ}U%C 0 9T}:C C  wTQR2C C C C  UwT ( UwT PD' U~] 'U}j3 ~ ZU~T}Q Y UY U}f U~ U0T0 U0T0tUwT0C  8T 'Q0C C   pU}T~( URr U `r U nr U o  9?m}v^?  ~CPAPsC }C C ? jU~T ID hC?O C?w2jPfPcvC?<=PP 9E?|spE? 82 Q QaxE? 1?Q/Q%E? 82QQu E? 1FRDR I? ~R|R a9O? RRhC sC C  C  T|!C AU hHC RC C C 9T|Q C C C !}TvQ2 .5C  9W?RRC C m E?  ~RRC C C Y U}T eE?p  ?w2SScv?<=YSOS 9 ?|sp ? 82SSax ? 1SS% ? 82TTu  ? 1UUvd 6a$?-2BUT0C  cTv5 UvT D UvT PLbU~[U~d U0T0m  U0T0wt. UvT0C  C 6r U    9>?VVC C mpv ?  ~WWC C C ( U~T \e?`  ?w2@W0!~z >w2YYcv><=1Z%Z 9>|sp> 82ZZax> 1+[[%> 82[[u > 1\\ >4x@\>\;>|g\c\A>32\\ 2" 9> \\0 _v:> ]\<#C #C #{T|Qv!C !C !;!C !C ! T~!C "U  i"C #"C e"C p"C "C "C "WT~Q "C "C "C #!TvQ2##C m#C  2"9>9]7]9"C D"C m]! > 1 ~_]]]S!C ]!C s!C # U}T e>`< >w2]]cv><=]] 9>|sp> 82[^S^ax> 1^^%> 82S_K_u > 1__>4x`` R>-20%frD`<`;>|``A>32`` =9> +a)a ?93%QaOa4v:> yaua>C ?C "?{TvQ|<C <UXT0<C <C =;=C )=C 4= T?=C c=U @kj=C t=C =C =C =C =C >PTQ >C 5>C H>C X>!TQ2l>T}{>U}>C >C >C >C  =:9>aa=C =C m<> c ~aa<C <C <C 3? U~T " V>@d >w2aacv><=Eb7b 9>|sp> 82bbax> 1cc%> 82ccu > 1ddw >-2%frYdQd{%-2dd;>4x6e.e  9% GH?@> -2eeQC Y;cC H1T|Q C C UcT0C  T0C  T| U|T   U|T PUv""Uv+ >U0T04 ZU0T0>twU|T0C C r U  9>eeC C mgv>  ~ee]C gC |C  U~T r>@?; >w2ffcv><=\fTf 9>|sp> 82ffax> 1ff%> 82ggu > 1gg>Z/h-h @n9> ThRh@C #@C ?C ?C ? T|?C ?U k?C @C ?@C N@C `@%T|Q / o@C @C @C @!iTvQ2@@C  @9>zhxh@C @C mg?P>  ~hh]?C g?C }?C  A U}T eKXX>pT X>w2hhcvX><=ii 9Z>|spZ> 82iiaxZ> 1&jj%Z> 82kku Z> 1kk0^>Zkky_> Czkk;`>|/l+lAa>32klel uUj9g> ll } 9o>  9t>   9% pv:}> llVC GWC UW{T|QvTC TC T; UC UC &U OT1UC UU{U q\UC fUC UC UC UC UC UTQ / UC %VC 8VC HV!2TvQ2YVC hVC sV dTVC VC VT1VUvVC %WC tWr U `rWr U  r uUG9>mm|UC UC mTZ> p ~ % >w2cm_mcv><=mm 9>|sp> 82nnax> 1Ln@n %> 82u > 1nn@%>-2I2zoro>>|oo$fr5p-pA$%ppaux$82zqxqU+$ |qqi$|qq{$-2rr;#>Z5s/s!1V)>32s~sgC մC !Tsr U `T Q   ! 9$ MT"@M> -2ssòC ˲;ֲC HF"T|Q / RsC >$ "Ŵr U C C رC C !"T~Q2U#U}T0C  )#T0&C 1 N#T}_ s#U~T n #U~T P#UT0QR|#U|#U  $U0T0 ($U0T0tE$U~T0=C C w$T}س C $T}QsR0:C M $TwQ0R2C C !r U $ _%9S> ttC C mO> % ~/t-tDC OC fC  U}T Pfr͇=W&* =w2VtRtcv=<=tt 9=|sp= 82$uuax= 1!vv%= 82vvu = 1ww)=^|MwGw $iwwcur$(s!xwH/$(syyoX$(szzn$Hzzcol$HR{N{/ $ &*~n~$ fr{{sL$|{{e$%n^|R| kX'9= ||rXC }XC  ' 9$ X%(9$ } }YC  YC WC XC  X 7(T}+XC KXc(U rRXC \XC XC XC XC X!(T|Q2%YC ZC Z(UwT0ZC Z )T}ZC Z(H)T| ZC Z m)T|ZC [C [5TvQvR2mW= ) ~2}0}WC WC WC [ [ U~T e"f6*&OPB= fk- =w2Y}U}cv=<=}} 9=|sp= 82.~&~ax= 1~~%= 82"u = 1us ,=^|;= bA=32 gP+9= 1/fC fC f;fC fC f +T~fC f+U ufC  gC EgC PgC ogC gC gC g!M,TvQ2gC gBx,T|QvgC gC hC "hOT| g,9=WUgC *gC mGf= "- ~}{=fC GfC ]fC 3h U}T eB=@h0 =w2cv=<=݀ 9=|sp= 82yqax= 1ׁ%= 82miu = 1/=^|;= bA=32D@ 8i.9= |zhC hC h;hC hC h .T~hC i /U uiC )iC eiC piC iC iC iC i!/TvQ2iC iB/T|QviC jC 7jC BjOT| 8i.09=?iC JiC mghP= W0 ~ȃƃ]hC ghC }hC Sj U}T eBk=`j3 k=w2cvk=<=4( 9m=|spm= 82Ąaxm= 1."%m= 82u m= 1 3q=^|CA;r= bhfAs=32 Xk19y= džņjC jC j;jC kC  k 2T~kC 8k?2U  v?kC IkC kC kC kC kC kC k!2TvQ2kC  lB2T|QvlC 5lC WlC blOT| Xkc39=_kC jkC mjm= 3 ~}jC jC jC sl U}T eP=l 7 P=w2:6cvP=<=s 9R=|spR= 82axR= 1ym%R= 82u R= 1VT@ S6V=^|;W= bAX=32ډ։ xm49^= lC lC l;mC "mC -m H5T~8mC Xmt5U hv_mC imC mC mC mC mC nC n!5TvQ2nC -nB6T|Qv4nC UnC wnC nOT| xm69f=86mC mC ml R= 6 ~^\lC lC lC n U}T ef5=n?: 5=w2cv5=<=ʊ 97=|sp7= 82ZRax7= 1ċ%7= 82NJu 7= 1 9;=^|ٌ׌;<= bA==32%! o$89C= ][oC oC o;3oC BoC Mo }8T~XoC xo8U voC oC oC oC oC pC $pC 4p!!9TvQ2?pC MpBL9T|QvTpC upC pC pOT| o99K=oC oC mnp 7= 9 ~nC nC nC p U}T eޖ=#>{= =w2Ѝ̍cv=<=  9=|sp= 82ax= 1%= 82u = 1 < =^|$";!=|KGA"=32 $Y;9(=  ;v:.= %C %C %{T|Qv$C ,$C 4$;I$C X$C c$ <T~n$C $1<U pi$C $C $C $C %C 1%C D%C T%!<TvQ2_%C %C  $ =90=$C $C m# = 2= ~CA#C #C #C % U}T e<%>@ <w2jfcv<<= 9<|sp< 82?7ax< 1%< 823/u < 1ix=1 H>_p=+P &@=^|;=|'#A=32a] &>9 =  ?v:= 'C (C ({T|QvW&C l&C t&;&C &C & g?T~&C &?U i&C &C %'C 0'C O'C q'C 'C '! @TvQ2'C 'C  &k@9=&C 'C m& < @ ~&C &C 3&C .( U}T e<0(>?D <w2FBcv<<= 9<|sp< 82ax< 1y%< 82 u < 1b`ix<1 A_p<+ C<^|ܗڗ;<|A<32=9 2)B9< us pBv:< *C O*C ]*{T|Qv(C (C (;(C (C ( BT~(C )BU j)C #)C e)C p)C )C )C )C )!mCTvQ2)C -*C  2)C9<՘Ә9)C D)C m]( < C ~S(C ](C s(C n* U}T eS<p*>{G <w2"cv<<=g[ 9<|sp< 82ax< 1aU%< 82u < 1>< F<^|vt;<|A<32כӛ r+YE9<   Ev:< 73@,C ,C ,{T|Qv*C *C *; +C +C #+ FT~.+C R+1FU HjY+C c+C +C +C +C +C ,C ,!FTvQ2,C m,C  r+ G9<omy+C +C m*` < 2G ~*C *C *C , U}T e<,>J <w2cv<<= 9<|sp< 82ax< 1%< 82u < 1؞֞0J<^|;<|73A<32qm -H9< `Hv:< џ͟.C .C .{T|Qv-C ,-C 4-;I-C X-C c- AIT~n-C -mIU j-C -C -C -C .C 1.C D.C T.!ITvQ2_.C .C  -EJ9< -C -C m,< nJ ~/-,C ,C ,C . U}T eZL<.>M <w2VRcv<<= 9<|sp< 82+#ax< 1%< 82u < 1rp~C m|#^< LR ~|C |C 3|C  RU}T   7<0V 7<w2cv7<<=[O 99<|sp9< 82ax9< 1WI%9< 82u 9< 1sqP%UL=<o[R><;?<| A@<32JF S 9F<  5S9N< %;Tv:T< ؂C !C /{T~QvC C ;̀C ۀC  TTC C &C eC pC C C ȁC ؁!&UTQ2C C  XUTC 5C WC }C C !UTvQ2UUC C  50V9V<<C GC m] %9< YV ~SC ]C sC @ U~T  <@aZ <w2/+cv<<=th 9<|sp< 82ax< 1nb%< 82u < 1us&YL <oxsd!<bخЮ;#<|84A$<32rn W9*< 0&$Xv:0< үίC ׅC {TvQ|C уC C  mXTvQ0R2C C ;.C =C H XTSC wXU  z~C C ńC ЄC C C -C @C P!wYT|Q2[YT}eC C  Y92< C C mm%< Z ~0.cC mC C  U~T  Z;]^ ;w2WScv;<= 9;|sp; 82,$ax; 1%; 82;3u ; 1&]L;o g;}*(;;|QMA;32 x[ 9<  [9 < ó&[v:< C C {T~QvjC C ;C C  O\TC C C 5C @C _C C C !\TQ2C ʇC Շ ]TC C 'C MC `C p!q]TvQ2}]UC ՈC  ]9<#! C C m-&; ^ ~IG#C -C CC  U~T  ;b ;w2plcv;<= 9;|sp; 82E=ax; 1%; 82=5u ; 1`'eaL;orng;b;;|yuA;32 g_9; '_v:; UC C {TvQ|C C C ‰ (`TvQ0R2̉C C ;C  C  `T#C G`U {NC XC C C C ׊C C C  !2aT|Q2+JaT}5C C  ga9;KInC yC m=0'; a ~qo3C =C RC Ƌ U~T  2^;mf ;w2cv;<=ݸѸ 9;|sp; 82meax; 1׹˹%; 82a]u ; 1weL;o{#-2;;|wsA;32 'Kc9; wcv:; HC C {T}QvgC q cT0{C  cT|C C ;C C  @dTC ldU HC C UC `C C C C !dTvQ2  eU~T  .eU~T PFeU  beU0T0 ~eU0T0!teU~T0(C uC  'e9;KI.C 9C m-Pw; $f ~qo#C -C CC  U}T  {;p(k {;w2cv{;<=ټѼ 9};|sp}; 82:8ax}; 1i]%}; 82u }; 1FDxjL;o|y#Czdoc#czJ{#z.*{#-2jd;;-2 g 9;  g 9# oh9#vC C C  *hT0C   C C $ vhT|/C OhU ؽVC `C C C C !iT|Q2 %iU~T  JiU~T PbiU|*D-iU|L iU|X iU0T0a iU0T0ktiU~T0jU|TC  7jT|C C  mjU0T0 jU0T0tU~T0 j 9;mx}; j ~?=C C C  U}T  F;;p ;;w2fbcv;;<= 9=;|sp=; 82&ax=; 1%=; 82xru =; 1 ,pLA;o_UB; bhKD;I2F@A#%aux#82ywU+# |i#|;J;|AK;32 Fl9Q;  ,Dm1VY;3282ƜC C "mTv`r U `T 8Q  `,mv:t; ^C ߝC {TQv># m r U UC wC C  #nT~Q0R2C C ;֚C C  ~nTC &nU -C 7C uC C C C C C !/oTvQ2,#WoUTQ|7ooU|>C C C oT}-mC }oT}QvR0C  TQ0R2 F^p9v;MC XC m +=; p ~C  C #C D U~T  ;`Vt ;w2 cv;<=MC 9;|sp; 82ax; 1%; 82u ; 1-sL;o!doc# czxj;;-2 q 9!;  q 9#ɞC C  rT|C CrU C 'C gC C C !rT|Q2rU|џrU~T0 0rU|T3&- sU|-C 8 0sTBC UC |C !vsTQ2C ɠ!TQ2 6s96;=C HC m,; t ~C C C  U}T  X:Pi{ :w2cv:<=.& 9:|sp: 82ax: 1%: 825/u : 1yzL:o1' IvU|L UvT}W U}T|QC [ vT0eC x C C  BwTwC nwU C C C EC \C m!wTwQ2 wUT  xUT Pb0xUwIxUw0gxUwT3oxU}Tc  xU0T0l  xU0T0v txUT0} C   yT| C  C   8yU0T0  TyU0T0 tqyUT0 C  C / C ? !yT|Q2R  yUT a  yUT Pv |zUw 5zU}T0 C   ^zU0T0  zzU0T0 tzUT0 C  C  z9 ;C C m y: { ~C  C #C 0  U~T +|:8 :w2cv:<=I= 9:|sp: 82ax: 1C7%: 82u : 1JH .L:oLp:ZyD# Cz*";:|A:32 | 9:  Ť|9: ̤C פC  | 9G# }9J# %#`.k}v:: MIC 6C D{T~Qv*C ?C G;\C kC v }TC C C C C C EC XC h!V~TQ2zC C  ~TC ťC C C ~TQ / C @C SC c!'T}Q2xb@UwXU}C C C C .9:צC C m-:  ~C C C U U~T   `:Щs `:w2cv`:<=  9b:|spb: 82traxb: 1%b: 82-)u b: 1~`/Lf:oy-# Cz.#frLB;k:-2 O 9q:  b 92#  u 96# 3C JC U T|`C ӁU @C C ϪC C C !1T|Q2 b1GhU|T0V|U|]C h T~rC C  9:$"C C m0/b: * ~JHC C  C  U}T  E:0N E:w2qmcvE:<= 9G:|spG: 82F>axG: 1%G: 82:6u G: 100LK:o;L:|AM:32&" 29S: ^\`0v:Y:  C _C m{T|QvC C ;ɭC حC  9T~C eU @C #C eC pC C C ȮC خ!݅TvQ2C =C  2J9[:9C DC m]0G: s ~SC ]C sC ~ U}T  g&:6 &:w2 cv&:<=TD 9(:|sp(: 82 ax(: 1wk%(: 82u (: 1~|0.L,:o-:|/:|C=;1:|A2:32 (98: 1Sv:>: 0,BC C {T~QvC C !C 1!T}Q2AC cC rC !ۈTvQ2C C ;C ΰC ٰ 4TvC `U C C UC `C }C C C C C !T|Q2T}Q!C uC  (s9@:hf/C :C m0(:  ~C C ¯C  U~T 1 0z :@wN.  :w2cv :<= 9 :|sp : 82ax : 1% : 82~zu  : 1"wL:o ;:|0,A:32jf Bx9: "Rv:: yC oyC }y{T|QvwC wC w;wC wC w T~wC "x׌U x)xC 3xC uxC xC xC xC xC x!OTvQ2xxC MyC  Bx9!:IxC TxC mmw" :  ~(&cwC mwC wC y U}T  u90 ,1 9w2OKcv9<= 99|sp9 82ax9 1 %9 82u 9 1zL9o53" frbX{#-2;9-2@8 E 99  ) 9 # 0 C ; C  C   T0 C    C  C   T| C  &U h C  C W C } C  C  !T|Q2  U~T   ΐU~T P U|  U0T0  U0T0 t;U~T0 XU|T0 lU| C   T~& C 5 C   9:mW Pz9  ~M C W C m C \  U}T  x9` ,4 9w2cv9<=,$ 99|sp9 82ax9 1%9 82FBu 9 1z}L9o" fr{"-2xp;9-2 H 99  [ 9" C   T0 C    C C  ˓T|C 9U @C JC C C C !UT|Q2 zU~T  U~T PU| ӔU0T0 U0T0t U~T0+)U|T0:=U|AC L bT~VC eC  Y•99:8`C kC m z9  ~`^} C  C  C  U}T   U}T  x9֞ x9w2cvx9<= 9z9|spz9 82ZRaxz9 1%z9 82NJu z9 10xL~9o{"-2;9|d`A932 99 `xv:9 C OC ]{T|Qv'C 1 +T0;C F PT|PC eC m;C C  TC ՜U C C C  C ?C eC xC !MTvQ2 rU~T  U~T PUv ˝U0T0 U0T0tU~T0C -C  d9964C C mxz9  ~\ZC C C n U}T  ;X9ʡ X9w2cvX9<= 9Z9|spZ9 82%#axZ9 1VH%Z9 82u Z9 1HF1L^9o~ret" |;b9-2 ؟ 9h9   9"#C :C E T|PC pIU wC C C C C !T|Q2 %ӠU E /C : T|DC UC  X9s9CAC C m`1Z9  ~igݲC C C y U}T  "\=9N =9w2cv=9<= 9?9|sp?9 82e]ax?9 1%?9 82YUu ?9 11\LC9o;D9| AE932EA 9K9 }{ 27v:Q9 \C C {T|QvC C ;C (C 3 T~>C bU 0iC sC C C ߵC C C (!4TvQ20:C C  9S9C C m1?9 ʤ ~C C ôC ζ U}T  4u9@ 9w2*&cv9<=oc 99|sp9 82ax9 1i]%9 82u 9 1FD{L9o~|u" |{"-2;9|^XA932 gW9$9 0| v:69 C C {T~Q|C  ƦT0C  T|C C ;C C  DT|'C GpU `NC XC C C C C C !TvQ2  UT ) 2UT P1JUvHbUvVzUvgUv| U0T0 ʨU0T0tUT0C C  gG989  nC yC mm{9 p ~1/cC mC C & U}T  X8  8w2XTcv8<= 98|sp8 82E=ax8 1%8 82TLu 8 1@yUL8o Lp8Zkg{"-2y" Cz;8|A832  98  0%98 yxv: 9 84`C C {T~QvkC u T0C  T}C C ;C C  TC C !C eC pC C C C !TQ2C C  TC EC gC {C =TQ / C C C !TvQ2UbUɭU|% U0T0. U0T09tUwT0@C C r U о 09 9pn7C BC m-y8 î ~#C -C CC  U~T  \8K 8w2cv8<= 98|sp8 82e]ax8 1%8 82u 8 1  P}L8o  R8L  B8L#  {}"-2_ Y ;8|  A832   e98 L J }v:8 t p bC  C {T~Q|NC X ܰT0bC m T}yC C ;C C  ZT}C U  C  C MC XC wC C C !TvQ2C C  C  GT}Q0R2:C \C kC } T|Q}R2 UT  ۲UT PUv Uv#Uv;U})SUvmU! U0T0* U0T06tijUT0=C C 5C C  K98   C +C m  }8 t ~  C  C #C + U}T |r80Kt r8w2  cvr8<=: 2  9t8|spt8 82  axt8 1  %t8 82  u t8 1L@}Lx8oRy8L!Bz8La[{i"-2;~8|;+A832 v98 &$p~Ҷum"|PJ@ LUsK dUsh |Usy Us Us ĶUsd! ~'v:8 C J!C Z!{TQ~C  KT0C  pT}C C ;C C $ ɷT}0C TU p\C gC C C C C C #!mTsQ2?C bC rC  T}Q0R2C C C  T|Q}R2 %UT   JUT P.AbUsCzUs^UsiU})¹UsڹU| U0T0 U0T0t1UT0C  C  cUs {Us 5 U!C ,!C  v98~C C m_}t8 + ~TC _C vC {! U}T OQ8!9 Q8w2"cvQ8<=g[ 9S8|spS8 82axS8 1eU%S8 82u S8 1hf~տLW8o{Z"-2;[8|H<A\832 "9b8  $ru]"|0,$U$$U8$UI$-UZ$EUr$]U$U v:k8 #C $C ${T|Q}!C ! T0!C " T|"C %"C -";B"C Q"C \" _Tg"C "U "C "C "C "C "C %#C 8#C H#!T}Q2Z# (U~T i# MU~T Pq#AeU# U0T0# U0T0#tU~T0#C #C  "9m8jh"C "C m!~S8 C ~!C !C !C $ U}T  ɤ80 8w2cv8<= 9 8|sp 8 82ax 8 1% 8 82|u  8 1|&L$8o  {:"-26.;(8|A)832 W9/8 |v:88 0,iC C {T|QvC  2T0C  WT|C C ;C C   TC 7U >C HC C C C C C !TTvQ2  yU~T  U~T P!Uv- U0T06 U0T0@t U~T0GC C  Wk9:8hf^C iC m]p| 8  ~SC ]C sC  U}T  80N& 8w2cv8<= 98|sp8 82ax8 1%8 82~zu 8 1p4oL 8o ; 8|0,A 832jf 298 4Jv:8  C _C m{T|QvC C ;ɾC ؾC  T~C U C #C eC pC C C ȿC ؿ!GTvQ2NC =C  2989C DC m]@48  ~(&SC ]C sC ~ U}T  7No 7w2OKcv7<= 97|sp7 82$ax7 1%7 82  u 7 1k i  5L7o  ;7|  A732!! @97 C bU iC sC C C C C C (!TvQ20Z:C C  97!!C C m47 & ~!!C C C  U}T  M[7N 7w2!!cv7<=.""" 97|sp7 82""ax7 1(##%7 82##u 7 1$$5L7o=$;$;7|d$`$A732$$ 97 $$6v:7 $$C C  {T|Qv7C LC T;iC xC  5T~C aU XC C C C /C UC hC x!TvQ2fC C  F976%4%C C m57 o ~\%Z%C C C  U}T  7  7w2%%cv7<=%% 97|sp7 82&}&ax7 1&&%7 82}'u'u 7 1''6ZL7o.(,(T7 bW(Q(ũ7 b((;7|) )A732H)D) 97 )~)6Ov:7 ))JC C {TvQ|C C C  T}Q0R2C C #C 2C D TvQ0R2NC cC k;C C  GT}C sU ȇC C C  C ?C [C C C C C C !T|Q2 r?TQ~*C uC  97))C C mMP67  ~**CC MC bC  U~T Տ7 7w2-*)*cv7<=r*f* 97|sp7 82+*ax7 1l+`+%7 82++u 7 1s,q,07L7o,,no7|,,;7|6-2-A732p-l- ?97 --`7v:7 --C WC e{T}Qv/C QC `C p!TvQ2yC C ;C C  /TC [U  C C EC PC mC C C C !T|Q2~TvC 5C  X97..C &C m77  ~..,.C C C v U~T H jt7 t7w2U.Q.cvt7<=.. 9v7|spv7 82*/"/axv7 1//%v7 82"00u v7 1007Lz7o00R{7 b00;}7|^1Z1A~73211 97 118Lv:7 11C C %{TvQ|C C  C 2 TvQ0R2<C QC Y;nC }C  TC U xC C C C -C GC mC C !T|Q2T}C C  9702.2C C m7v7 @ ~V2T2C C C 6 U~T S US7@1 S7w2}2y2cvS7<=22 9U7|spU7 82y3w3axU7 133%U7 8244u U7 1448LY7o44ҚZ7 b44! fr95/5;^7-255 9d7 66C C C C C C   (TvQ0R2C .C 9 ZT}DC hU ȈoC yC C C C %C 8C H!T}Q2STv`3UvT0oGUvvC  lT}C C C   9o77656mg`8U7  ~]6[6]C gC |C  U}T ` C?87Nz 87w266cv87<=66 9:7|sp:7 82Y7Q7ax:7 177%:7 82M8I8u :7 1889L>7o88;?7|88A@7329959 K9F7 q9o909v:L7 99C C -{T|QvWC lC t;C C  T~C #U C C %C 0C OC uC C !TvQ2C C  9N799C C m8:7 1 ~99C C 3C > U}T  L7@N 7w2::cv7<=c:W: 97|sp7 82::ax7 1];Q;%7 82;;u 7 1:<8<9 L#7or<p<;$7|<<A%732<< B9+7  = =9v:17 3=/=C oC }{T|QvC C ;C C  @T~C "lU `)C 3C uC C C C C !TvQ2C MC  BQ937k=i=IC TC mm97 z ~==cC mC C  U}T  7N  7w2==cv7<=== 97|sp7 82>>ax7 1>>%7 82?}?u 7 1??`:UL7o @ @; 7|3@/@A 732m@i@ 97 @@:0v:7 @@lC C {T|QvC  C ;)C 8C C T~NC rU yC C C C C C (C 8!-TvQ2@JC C  97AAC C m0:7  ~+A)AC C C  U}T  Ȉ6NU 6w2RANAcv6<=AA 96|sp6 82'BBax6 1BB%6 82CCu 6 1nClC;L6oCC;6|CCA632DD &96 ?D=D@;yv:6 gDcDC C {T|QvGC \C d;yC C  T~C U C C C  C ?C eC xC !vTvQ2C C  96DDC C m :6  ~DDC  C #C . U}T  o6$ 6w2DDcv6<=-E%E 96|sp6 82EEax6 1EE%6 822F.Fu 6 1FFcL6oFFhv!O2FFsv!-2LGHGR!(sGG{!-2GG;6-2H H  96 _p!+wHqHh&C u&T< _p!+'!Q 6HH *HHfA')BII'T*%C 4% uT0>%C Q% [%C j%C u% T~%C %U %C %C %C &C 0&C @&!KT~Q2R& pU}T a& U}T P&U~&C &T& U0T0&  U0T0&t)U}T0&C & NT~&C &C 'ZU~ '5U~-'U~7'T0I' UT'C y'g%TQRX$Y'N=U~'fUU~'C  %96wIuI%C %C m$P6  ~II$C $C %C ' U}T  60Nc 6w2IIcv6<= JI 96|sp6 82JJax6 1KJ%6 82KKu 6 1KK<L6oLL;6|?L;LA632yLuL 2496 LL=v:6 LL C _C m{T|QvC C ;C C  T~C  U C #C eC pC C C C !TvQ2C =C  296MM9C DC m]<6  ~7M5MSC ]C sC ~ U}T  w60N 6w2^MZMcv6<=MM 96|sp6 823N+Nax6 1NN%6 82'O#Ou 6 1zOxO;L6oOO;6|OOA632PP 2}96 KPIP;v:6 sPoP C _C m{T|QvC C ;C C  )T~C UU PC #C eC pC C C C !TvQ2C =C  2:96PP9C DC m];6 c ~PPSC ]C sC ~ U}T  SOe6f e6w2PPcve6<==Q1Q 9g6|spg6 82QQaxg6 17R+R%g6 82RRu g6 1>SC bXU 0iC sC C C C C C (!TvQ20:C C  =9`6mXkXC C mP=L6 f ~XXC C C  U}T  >/6N /6w2XXcv/6<=XX 916|sp16 82YYax16 1YY%16 82ZZu 16 1ZZ0>AL56o[ [;66|5[1[A7632o[k[ 9=6 [[`>v:C6 [[C C  {T|Qv7C LC T;iC xC  uT~C U C C C C /C UC hC x!TvQ2+C C  9E6\\C C m>16  ~-\+\C C C  U}T  ~ 6 ,  6w2T\P\cv 6<=\\ 9 6|sp 6 82P]N]ax 6 1}]s]% 6 82]]u  6 1q^o^>tL6o^^T6 b^^ũ6 b!__! frt_j_;6-2__ V96 L`J`C C C C C  T}Q0R2C C !C 0C B TvQ0R2WC fC q 'T|C SU ЋC C C C ?C eC xC !TQ28T}QvUvT0UvC  ?T}C C C %C   9*6r`p`mM> 6  ~``CC MC bC L U~T }5P<  5w2``cv5<=a` 95|sp5 82aaax5 1aa%5 826b.bu 5 1bbP?L5obbno5|c cx! frccYc;5-2cc sY95 ;d9dzC C C C C !TvQ2C C ( T}3C SU  ZC dC C C C !YT}Q2DqTvUvT0UvC   T}*C EC eC  2 96ad_dmw ?5 C  ~ddmC wC C  U~T H {5<  5w2ddcv5<=dd 95|sp5 82}e{eax5 1ee%5 82%ffu 5 1ff?p L5offR5 bffk! frRgHg;5-2gg  95 *h(hC C C C *C <  TvQ0R2QC `C k P T}vC | U pC C C  C  C 0! T}Q2;P TvH UvT0W# Uv^C i H T}sC C C  { 95PhNhm?5  ~vhthC C C  U~T S ^5жNV 5w2hhcv5<=hh 95|sp5 82rijiax5 1ii%5 82fjbju 5 1jj2L5ojj;5|kkA532RkNk ҷ'95 kk2zv:5 kkC C  {T|Qv7C LC T;iC xC  T~C U xC ÷C C C /C UC hC x!wTvQ2C ݸC  ҷ95kkٷC C mp25  ~llC C C  U}T  a5/ 5w27l3lcv5<=xlpl 95|sp5 82llax5 1 ml%5 82mmu 5 1mm0@L5o4n2nU!(s_nWn;5-2nn 95 $o"oC C 3C JC U T|`C U C C C C C !FT|Q2\&jT00C ; T|EC UC   95m@5  ~JoHoC C  C y U}T  Pn5 n5w2qomocvn5<=oo 9p5|spp5 82ppaxp5 1Dp6p%p5 82ppu p5 16q4q@Lt5onqlqI!(sqq;x5-2rq Pc9~5 ^r\rWC bC C C  T|C 0U 7C AC C C C !T|Q2iCT0C  hT|C C   95m`@p5  ~rrC C C ) U}T  O5 O5w2rrcvO5<=rr 9Q5|spQ5 82MsKsaxQ5 1~sps%Q5 82ttu Q5 1ptntp<\LU5ott>!(stt;Y5-2:u2u P<9_5 uuWC bC C C  nT|C 0U 7C AC C C C !T|Q2T0C  AT|C C  o 9i5m@<Q5  ~uuC C C ) U}T  (050 05w2uucv05<=&vv 925|sp25 82vvax25 1vv%25 82WwSwu 25 1ww@5L65oww3!(s xx;:5-2txlx 9@5 xxC C C C  GT|C sU XC C /C QC dC t!T|Q2|uT0C  T|C C  H 9J5mW@25 q ~xxMC WC mC  U}T  u5к 5w2yycv5<=`yXy 95|sp5 82yyax5 1yy%5 82zzu 5 1zz3L5o{{(!(sG{?{;5-2{{ 9!5  | |C C 3C JC U  T|`C LU C C ϻC C C !T|Q2&T00C ; T|EC UC  ! 9+5m35 J ~2|0|C C  C y U}T  4 l! 4w2Y|U|cv4<=|| 94|sp4 82||ax4 1,}}%4 82}}u 4 1~~P3 L4oV~T~!(s~y~;4-2~~ 95 FDC C C C  T|C й% U ׹C C C AC TC d! T|Q2l5v T0C   T|C C   9 5mG 34 #! ~lj=C GC ]C ɺ U}T  T4E$ 4w2cv4<= 94|sp4 8253ax4 1fX%4 82u 4 1XV4#L4o!(s;4-2" P"94 ~WC bC C C  "T|C 0"U X7C AC C C C Ľ!\#T|Q2̽)ֽ#T0C  #T|C C  # 94m34 # ~C C C ) U}T  4' 4w2͂ɂcv4<= 94|sp4 82omax4 1%4 82?;u 4 1PA&L4oʄȄ!(s;4-2\T y%94 C C CC ZC e %T|pC %U C C C C C $!5&T|Q2,6Y&T0@C K ~&T|UC eC  & 94m A4 & ~ޅC C C  U}T  5I4yNg* 4w2cv4<=L@ 94|sp4 82܆Ԇax4 1F:%4 82Ї̇u 4 1#!`#)L4o[Y;4|~A432 z8(94 #(v:4 l{C {C {{T|QvyC  zC z;)zC 8zC Cz (T~NzC rz)U xyzC zC zC zC zC {C ({C 8{!)TvQ2@{J{C {C  z)94TRzC zC my0#4 * ~zxyC yC yC { U}T  A~4F- ~4w2cv~4<=ډ 94|sp4 82vnax4 1Ԋ%4 82jfu 4 1A,L4o;4A432kg +94 A+v:4 ˌnjkC C {T|Q~C  C ;)C 8C C -,T~NC rY,U yC C C C C C (C 8!,TvQ2@JC C  >-94C C mA4 g- ~)'C C C  U}T  Qz_40 _4w2PLcv_4<= 9a4|spa4 82axa4 1#%a4 82Žu a4 1PB0Le4oMK (sxp;i4-2ߏ׏ .9o4 =;C C CC ZC e /T|pC B/U 8C C C C C $!/T|Q2,6/T0@C K /T|UC eC  0 9y4m Ba4 @0 ~caC C C  U}T  PD4N3 D4w2cvD4<=ϐÐ 9F4|spF4 82_WaxF4 1ɑ%F4 82SOu F4 1B3LJ4oޒܒ;K4|AL432?; 19R4 wuB1v:X4 lC C {T|QvC  C ;)C 8C C O2T~NC r{2U yC C C C C C (C 8!2TvQ2@JC C  `39Z4דՓC C mBF4 3 ~C C C  U}T  g)46 )4w2$ cv)4<=i] 9+4|sp+4 82ax+4 1 %+4 82u +4 1`C5G/4LNJW14-2;34o–C85@94 -2C ;C H*5TvQ~RC LC vC C  5T~Q0R2C 5UvT1WC g!5TQ2uC  #569?442*C 5C m 0C+4 ^6 ~ZXC  C "C  U~T o Y 4ID;  4w2}cv 4<=Ɨ 9 4|sp 4 82PNax 4 1}s% 4 82u  4 1qoC:G4Lfd4|url4LVN4Ldk4|;4o*& DL8@4 -2d`C ;%C 7H>8TvQwR~>C  C 6C EC W 8T~Q0R2iC C C !8T~Q2C C C  C  /9T~Q0R2,C HC jC yC  9TQ0R2C C C C !9TvQ2 9UT~QwC C C C C  C MC mC C C C  F:9$4MC XC mC 4 : ~›C C C  U~T Ў‰3g? 3w2cv3<=." 93|sp3 82ax3 1ۜ%3 82`Xu 3 1ٝםD?G3L3-2SMurl3L3Ldk3|>:;3oxtD<@4 -2KC S;]C pH<TvQR}wC \C C C  4=T}Q0R2C C C C  C 2 =T}Q0R2CC _C C C  =T}Q0R2C C C C !>>TvQ2Ab>TQ}RvC C *C < >T~Q0R2OC hC C C C C C 7C  Y?94C C mPD3 ? ~C C 2C W U~T _s3pME 3w273cv3<=|p 93|sp3 82ax3 13)%3 82u 3 1'%DG3La]fh3-2url3L3LTNdk3|;3oף A_p + A_p + ;A@3 -2ieC ;C HAT}QRvC P A a0 +B 6ߤ٤ *-)0A)BkcT}C  C C + tBT}Q0R2>C SC oC C C  BT~Q0R2C C C C " -CTQ0R22C NC pC C !~CTvQ2CU pT 0Q}R~X7C PC C C C C  C /C GC gC C DU pT 0Q0R~XC  D93̥ʥ C C mP3 E ~C C C  U~T c3`yVI 3w2cv3<=^R 93|sp3 82ax3 1 %3 82u 3 1 EHG3LC?.3L}3LҨ̨dk3|;3oD@@EF@3 -2~zaC i;sC HFTvQR~C C C C  (GT~Q0R2*C LC [C m qGT~Q0R2~C C C C  GT~Q0R2C  C +C :C J!HTvQ2W6HUT~C C C (C UC uC C C  H93C C mD3 I ~ܩکC C C  U~T  |3J 3w2cv3<=D< 93|sp3 82ax3 1ҪȪ%3 82KGu 3 1E6J93֫ԫiC uC m pE3 _J ~C  C  C 9aJU T  Q R  U}T e3sL 3w2#cv3<=d\ 93|sp3 82Ŭìax3 1%3 82kgu 3 1  K93 C  C mE3 L ~C C C   9  U}T eF2yBX 2w2C?cv2<=| 92|sp2 82Gax2 1I7%2 82u 2 1tr0W 2-26a2-2,r2|k]e o  zʵ> y[ ݷ˷y fr 3  r{ -2H0 (:N9 ><C *C  MN 9 /Pi8 !|cls9 *Lfbg: (CzO; "-2 l< !| }R[OSI /!y}NU}}C } OT0}$)OU}}C ~HTQ}R 0On[ 4Czμ̼"}4}H}W}OU}a}C x}C } OT}i׀C 5TvQvR1KzC gzC zC zC zC z!PT}Q2zC z PT0zC z PT}!{PUv3{C >{ QT~R{1+QU~f{ CQU|}{ hQU}T { QU}T P{C {>QUvT|Q{QU|{C { QU0T0{ RU0T0{t4RU}T1|C 0|C A| rRT 4Q0K|C V| RT}a|C ||RT0|C |C | RT Q0|C | ST}~C )~PST~Q h~ uSU}T w~ SU}T P~~C ~JSUvT~Q~C ~!STvQ2~C ~tTU}T0~C C *C ; jTT  Q0EC P TT}[C ~C VTa)C  TT}cUU~C C  @UT  Q0C  eUT}C .C 9(UTvGC W!UT~Q2C  C GC Z5 VTvQvR1oC 5;VTvQvR1C 5kVT|Q|R1C ҁ5VT|Q|R1C 5VTvQvR1C "5VT|Q|R17C J5+WTvQvR1^?WU|lr ^WU zr }WU r WU 8hcWU~r U Imy2 W ~yC yC zC  UvT pCt2;7` t2w2cvt2<=]S 9v2|spv2 82ҽaxv2 17'%v2 82u v2 1OM_ |2-2y~2-2eonb z>[rO-2]EyfriY 3 ${ -2  Z9NLC C  Z 9P[i|clsLvrgCzl| LN[S"!yTZU}cC m ZT0z$ZU}C HTQ}R~ 0<[n(Cz75„Ԅ{[U}C C ' [T~C  5TvQvR10C LC [C e %\T0oC z J\Tvb\UvC ʃ \Tރ1\U \U}  \U|T  ]U|T PC 4>1]UvT}Q0EE]U}LC m n]U0T0v ]U0T0t]U|T1c]UC ߅C ^TQ 0 %^U|T ? J^U|T PFC [Jz^UvTQ0φC ߆!^TvQ2! ^U0T0* ^U0T04c^U>t_U|T0OC _!=_TQ2nC xC Çr v_U чr _U 8h݇_U}r U m݂v2 _ ~\ZӂC ݂C C  U|T T2P*[b T2w2cvT2<= 9V2|spV2 82VPaxV2 1%V2 82#u V2 1vta \2-2eo a_p + |a 6+' *ea0A)B[T}C C $C 7C G!aT|Q2zr U 8hmw`V2 b ~mC wC C l U}T T1h 1w2cv1<=WM 91|sp1 82ax1 1YI%1 82 u 1 1ywBh 2-2R2 buri2-2F>/2-2eIoPJ-2keyK-2.lenLcnMb}sd_pZ+_C lT<Ud_pw+C gTQRXDY0 gd_py +y d 6.* *hd0A)BTvC C C C  eT}Q0R2C  C XPeU|oeU C  eT 'Q0 C peTvQ o%C 8}fTvQ~R2?C Qp4fTvQ qXC hpafTvQC [fU|TbC C  fTvQR2C fT}C g5gTQRX$YvC ZgTvgU|TRvC !gTvQ2C , gT~QR2=C r hU 8hr &hU Pr U mMЕ1 kh ~CC MC cC  hU}T  1l 1w2cv1<=ZP 91|sp1 82ax1 1)%1 82u 1 1 PVl 1-2F@11-21-2eo9-J i_p* + j_p, + , \j 6ic *0A)B4 * j 6a[ *0A0)BxEC TC oC jUvIC TkT}xC ?kTjkUvT нQvC kUvT0Q0 C 4C WC g!kTvQ2r kU (r lU r :lU r U 8hm 1 l ~USC C C  U~T T1I%o 1w2|xcv1<= 91|sp1 8264ax1 1eY%1 82u 1 1DBGnn1-2z;1-2e o:6C -C 8mTvBC M nTvWC C !EnTvQ2C r U 8h _n91rpfC qC mG1 n ~C C C  U}T eN1Iq 1w2cv1<= 91|sp1 82ywax1 1%1 8240u 1 1`Hp1-2;1-2eo}y3C {C FpTvC  kpTvC C !pTvQ2C r U 8h q91C C m0H1 9q ~C C  C   U}T ekb1Et b1w2cvb1<=E; 9d1|spd1 82axd1 1%d1 82yqu d1 1s h1-2.(Қj1-2}weo;o1-2IAbC yC rUvшrUvۈrT0C   sTvC 7C G!CsTvQ2WC i rsT~Q0R2r U 8h s9}1 C C md1 s ~C C 2C  U~T 71LSw 71w2cv71<=7- 991|sp91 82ax91 1%91 82{u 91 10v ?1-2#ҚA1-2rlcC1-2eo+C C /C guUvuUvQ0r uU 0uUvQ~C C 1 vT~Q0R2KC ] MvT}Q0R2oC !wvTvQ2C  vT}Q0R2΋r vU 8h܋r U m91 w ~C C ҉C  U~T W1Py 1w2cv1<= 91|sp1 82~xax1 1%1 82d^u 1 1y1-21|@:eoC C C C !xTvQ2`C C !xT}Q2C r xU :r U 8hmw1 ;y ~mC wC C  U~T /,0n{ 0w2cv0<=WO 90|sp0 82ax0 1%0 82u 0 1C{0-2B>bD1|xeoeC tC C C !zTvQ2C C !zT}Q2%C Cr '{U `h^r U 8hm`0 l{ ~-+ C C ,C R U~T Vǒ0(~ 0w2TPcv0<= 90|sp0 82ax0 1ND%0 82u 0 1/- }0-2kem0-2eo |_p +G } 6,( *fb0A)BT~C C GC C c}T}C C !}TvQ2r U 8hm0 } ~C C C   U~T c"001׀ 0w2cv0<=VN 90|sp0 82ax0 1'%0 82u 0 1p 0-2B>;0||xA032eov:0 *&%2C 2C 2{TvQ|1C 1C 1C 1;2C }2C 2C 2C 2!T|Q22r U 8h J2e90b`Q2C \2C m]1@0  ~S1C ]1C s1C 2 U}T eEx03 0w2cv0<= 90|sp0 82WOax0 1%0 82OKu 0 1ς0-2;0|A032PLeo@.v:0 3C 4C 4{TvQ|i3C 3C 3C 3;3C M4C X4C w4C 4!T|Q24r U 8h 490!4C ,4C m-30 = ~" #3C -3C C3C 4 U}T eT0 I 0w2IEcv0<= 90|sp0 82ax0 12&%0 82u 0 1H,0-2MG;0-2eroC C TvC  ̄TvC 'C 7!TvQ2EC ir U 8h q90?=C C mGH0  ~ec=C GC ]C ] U}T e,+GO0K^ O0w2cvO0<= 9Q0|spQ0 82.,axQ0 1]Q%Q0 82u Q0 1<:U0-2xreKo φ_pR+ _pV+ _pZ+ _p^+ _ph+Vx 6 *B>0A)Bx T|'Rه 6 *0A)B[ST|W0^: 6 *0A@)B6.#T|pZ 6 *0A)B T|h 6tp *0A)B7T|cC h.UvC !XTvQ2C 'C WC vC C  9}0MKC C m'Q0  ~sqC 'C =C K U}T e)P0Y 0w2cv0<= 90|sp0 82<:ax0 1i_%0 82u 0 1a[pIG0Lm#-2;$0-2xe%o {C C C  T~Q0R2C ϋU0U )C EC YT?UvT !C  cT0C HTQ~RvC  TvC &C =C Zr U  A9J0WUC C m=@I0 j ~}{3C =C SC i U}T  d/']9 /w2cv/<= 9/|sp/ 82d\ax/ 1%/ 82q i u / 1  `/(  y/ Cz  lD~ j { -2^ T ;/|  A/327 1   9/   9/  9/  )E9    X 9 v:0   +C +C +{TQ|K(C U( ϏT0_(C j( T}t(C (C (;(C (C ( NTw(C (zU h(C )C E)C P)C o)C )C )C )!TwQ2)C )C ) 'T)C *C .*XT1I* }U~T X* U~T Pm*Uw*UwT Q R~* UwT|** <U0T0* XU0T0*tuU~T0*C E+C m+"+.U|+r ӒU ,r U , U0T0, *U0T0!,tGU~T0/,r fU 8=,r U  )Ǔ90  )C &)C m (0/  ~(C  (C #(C + U~T  Ճt/@, t/w2/+cvt/<=ph 9v/|spv/ 82axv/ 1 %v/ 82u v/ 1{qAz/-2]k|/|ic }/[2GLHFG !tE!ebA/.len{ -2 ;/y -J9@/ -2 -C -;.C .H+T|Q Rv.C ,C ,C , jT0,C - Q- U~T `- ΖU~T Pl-:Uv-FUT Q R~-R6U-^NU- jU0T0- U0T0-tU~T}.j.C . TQR2.C .C .C /!)T}Q2/C 0/C I/C a/C v/C /C /C /C 0RU0C 30C L0C e0C 0C 0w0j0RU0C 1C 1STvQ0'1C O1C l1C 1C 1C 1TvQ21 ͙U0T01 U0T01tU~T01r %U 1r U  1.9/ZV8.C C.C m},v/  ~s,C },C ,C 1 2 U}T h)/2 )/w2cv)/<= 9+/|sp+/ 82][ax+/ 1%+/ 82u +/ 1qgԠurl// b]k1/|NH 2/[2GLG !xbE!ei]{ -2;9/uiЁۜ@i/ -23C 3;3C 3H͜T|Q Rv3C t2C 2C 2C 2 $T}Q0R22C 2 HT02C 2 3 UT 3 UT P 3ŝUwA3FU|T Q RZ3RU|y3^-U|3 IU0T03 eU0T03t}U(4j54C ^4C 4C 4C 4!۞T}Q24C 4C 4C 4C 5C 75C L5C a5C 5R[U|5C 5C 5C 6C 56C U6we6jm6RΟU|6C 6C 6TvQ06C 6C  7C -7C <7C L7cTvQ2]7 U0T0f7 U0T0p7tUT0~7r U  39o/313C 3C m-2`+/ B ~YW#2C -2C B2C 7 U}T .g/p# /w2|cv/<= 9/|sp/ 82" ax/ 1UE%/ 82 u / 1\ZIl/ A9/ HC SC C C  ǢT|C !U 8(C 2C oC C C !QTvQ2C  9$/C C mI/ ڣ ~C C C   U}T er.7o .w2,(cv.<=se 9.|sp. 82  ax. 1 w %. 82&!!u . 1!!@.}!!doc. czI"="lT Ï""{U -2##;.|$$A.32m$g$ d 9.  w 9.  9.  89u $$ ȥ 9y v: / $$:C ;C -;{T~Q|7C 8 ?T08C 8 dT}$8C 98C A8;V8C i8C u8 Tw8C 8U 8C 8C 8C 9C 9C E9C \9C m9!cTwQ29C 9C 9 T9C 9C 9ȧT19 UT : UT P=:+UwU:JUwT|d:cUwm: U0T0v: U0T0:tUT0:C :C ;.U|L;r  U Z;r (U @h;r GU q; cU0T0z; U0T0;tUT0;r U 8 89 /%%8C 8C m7. & ~>%<%7C 7C 7C >; U~T 1Ak.;} k.w2e%a%cvk.<=%% 9m.|spm. 82&&axm. 1L&B& %m. 82u m. 1&&.docq. cz3'#']kr.|'' s.[2:(0(G*L((G+!)(E,!e>*0*{- -2**;z.}J+>+ ҫ 9.  9.  E=Jo@. -2++L=C T=;^=C s=HaT|Q ;Rvz=C <C < T0$<C 6< @<C O<C Z< ߬Ti<C <C <T1< 5U~T < ZU~T P<rU=U=U$= U0T0-= ڭU0T0E=tU~T}=j=C >C >C />!LT}Q2F>C X>C q>C >C >C >C >C >C .?̮UG?C c?C |?C ?C ?C ?w?j??U%@C 4@C A@vTvQ0W@C @C @C @C @C @ԯTvQ2@r U 8Ar U Ar U  =s9.,,=C =C m;m.  ~.,,,;C ;C ;C A U}T Z. A$ .w2U,Q,cv.<=,, 9.|sp. 82,,ax. 1$-- %. 82u . 1--p`.-2..]k!.|.. ".[2..GLn/l/G!//E!e00b11.len{ -2Z2P2;+.}22 BJ@`. -2]3W3BC B;BC BHײT|Q ;RvBC AC AC A T0AC A 1B UU~T @B zU~T PLBUvrBUB³UB ޳U0T0B U0T0BtU~T}XCjgCC |C YTQR2CC CC CC C!T}Q2CC DC DC 1DC FDC oDC DC DC DUDC EC EC 5EC eEC EwEjEUEC EC EǵTvQ0EC FC 4>axv- 1e>Y>%v- 82>>u v- 1r?j?strz- b??resGy8@2@Tb-2@@'!g@@enc<[AIA fr BB{ -2sBiB;--2BB>MMO HCFC nClCLC LC LC L T}Q0R2LC L T0MC M T} M U}T /M +U}T PAMCUvUM [U`M sUmM!U|QyM-U0T|QvMUM:UvM U0T0M U0T0Mt5U}T0MRUvT0MC M wTvNC NNC ~N N U0T0N U0T0NtU}T1Nr U `NC NC  O NT|Q0R2)O jU0T02O U0T0!yQQ;,|RRA,32YRURJV v:, C C {TvQ"C 9C C C ;TC EC PC mC }!TvQ2C !TvQ2T r9,RRC &C mJ,  ~RRC C C  U~T  ,>T ,w2RRcv,<=#SS 9,|sp, 82SSax, 1SS%, 82QTMTu , 1TTPK,-2TTns-!y4U2Ukey.fr]UWU;,-2UUcC  ` T  `DT0C  iTvC C '!TvQ2 9, V VC C m' K,  ~2V0VC 'C =C > U}T eO,_+ ,w2YVUVcv,<=VV 9,|sp, 82VVax, 1(WW%, 82WWu , 1WWix,1,X(X !_p,+@!,-2pXjXns!yXXҚ frXX;,-2)Y!Yc_C _ _U}T0_U}_C _ Tv_C `C `!TvQ2 _f9,YY_C _C m'_,  ~YY_C '_C =_C +` U}T ez},0`+\ ,w2YYcv,<=Z Z 9,|sp, 82vZtZax, 1ZZ%, 82[[u , 1m[k[ix,1[[ _p,+,-2[[ns!y?\=\>frf\b\;,-2\\`C ` `8U}T0`LU}`C ` qTv`C 7aC Ga!TvQ2 a9,]]aC aC mW`p,  ~(]&]M`C W`C m`C [a U}T ejGs,4 s,w2O]K]cvs,<=]] 9u,|spu, 82]]axu, 1a^U^%u, 82^^u u, 1B_@_ixv,1|_x_ )_pv,+Zz,-2__ns!y``;,|P`L`A,32``v:, ``5C g6C u6{TvQ|95C o5C 5C 5;5C 6C  6C ?6C O6!TvQ2 59,``5C 5C m4u,  ~"a a4C 4C 5C 6 U}T e_g\,@ \,w2IaEacv\,<=aa 9^,|sp^, 82aaax^, 1bb%^, 82bbu ^, 1bbK/b,-25c/cns!yccC C !!TvQ2$l t9n,ccC C mgK^,  ~cc]C gC }C 5 U}T ek{),@` ),w2d dcv),<=UdId 9+,|sp+, 82ddax+, 1 ee%+, 82eeu +, 1eeLG/,LSfMfũ1,-2ffk3,-2ffns!yIg=gBfrggIfrMhGh;9,-2hh ; 9 C C C  T~Q0R2 C ' C = C L UU~T0b UU}T0r yU0T|Q} C   ,T0 C  H`TQwR~ tU| U} C   T~ C %!C U!C w!C !C  49W,i}i C !C mmK+, ] ~iicC mC C ! U~T ȑN ,!  ,w2iicv ,<= jj 9 ,|sp , 82tjljax , 1jj% , 82SkOku  , 1kkpL,-2kkGZz%ll % Czplnl;,|llA,32ll  9  8#9mmLPv:", FmBm"C G#C U#{TvQ| "C #"tT1-"C B"C J";x"Q}"C "C #C #C )#C  ":9$,~m|m"C "C m!@L , c ~mm!C !C !C i# U}T eP^+`. +w2mmcv+<= nn 9+|sp+ 82snknax+ 1nn%+ 82~oxou + 1ooNd+-2xpvpũ+-2ppk+-2ppyzAq9qBfrqqIfrqqns!yrr;+|hsdsA+32ss 1C9 ssO v:, )0C $1C 41{T~Q.C .C /UvT1/1U~Tv'/C 8fr;+-2Ƀ  9 f:C :C :UU|T0:UUvT0:U0T|:T0:C : >Tv:C ;C );C  :9++'%:C ;C m':P+  ~MK:C ':C <:C E; U~T  =*P; *w2tpcv*<= 9*|sp* 82ax* 1C9%* 82u * 1  ;Gd4r CzIE;+-2;U0;1T0;C ; VTv;C  ;9 +;C ;C mw;Q*  ~  m;C w;C ;C < U}T . M*p=U *w23/cv*<=tl 9*|sp* 82ՇӇax* 1%* 82}uu * 1Qx *-2>fr2,#GCz{z҉ʉ;*-280 k>q9 r>C }>C =C =UT0> Uv>U0Tv>Uv+>IU09>U T|D>+U|T~N>C Y> PTvc>C >C >C   9*m=Q*  ~=C =C =C > U~T 4 x*@= *w2ߊcv*<=$ 9*|sp* 82ax* 1%* 82-%u * 1R= *-2>fr܌#GCz1+zz;*-2 AS9 FDAC AC frlen |C3dl1 |dl2 |˜ l 9q*  9v* HC "HC 1HC AH!T}Q2RHC tHC HC H!T~Q2HC HC HC H FT~HC IC IwT1;IUUvKI UvIC IC IU|I UIUv.J,+UwT0Q}9J`CTvOJ8aU|T}]JuU}}J UJ,UT0Q}J`TvJ,UwT~J` U}T~J8'U|T}J;U}JOU~ K gUv"K Uv:Kr U WKr U x OI9*VIC aIC mGSX* ( ~ԙҙGC GC GC IK U~T f X*`K  *w2cv*<=B4 9*|sp* 82ax* 1%* 82u * 1@TC * Cz^NJ5*|]*|JrfrSsfrnewtfrlenu |dl1v |eUdl2w |(  9,*  91* KC KC LC L!HT}Q2!LC CLC RLC bL!TvQ2vLC LC L TLC LC LT1MU|#M U^M8=U|T}dMQU}uMC MC M,UT0Q}M,UTvQvN`U}TNU.N, UTvKNr ' U @YNr U  L 9Q*><LC LC mKT*  ~dbKC KC KC hN U~T Q fw)pN; )w2cv)<=Уģ 9)|sp) 82ZXax) 1}%) 82u ) 1T) Cz֥ƥJ5)|~)-2 S<fro[J=frQCnew>fr>?frdl@ |x d  9) w  9) NC OC OC !O! T}Q2ax) 1mc%) 82u ) 1a_Ur) Cz)-2>*frTJ+ |ήƮ R 9) e 9) LSC cSC rSC }S T~SC SC ST1SUUvS UvSD#U|TvT7Uv2Tr VU ЙOTr U  T9)/-TC TC mSPU)  ~USRC SC SC AT U~T  [t)QR t)w2|xcvt)<= 9v)|spv) 8264axv) 1eY%v) 82u v) 1ljixw)1 _pw)+U_{) Cz|)-2NHqfr Q 9) d 9) QC RC RC R Tv,RC ERC WRT1jR1U~TvxR8UvT|R$U|Rr CU HRr U  R9)RC RC mQTv)  ~;9QC QC QC R U~T  }U?)D/ ?)w2b^cv?)<= 9A)|spA) 82IGaxA) 1xl%A) 82u A) 1}`SE) CzJ5F)|]H)|[SJfrfr*;N)-2 W 9T) j 9Y)  } 9  F9 FC FC `EC EC EC E!T}Q2EC EC EC E!JTvQ2FC FC  F |T/FC LFC ^FT1FF,T}QvFUvT0F UvFC F .T}FC GC GC %GC EGC gGr U (Gr U   9o)mE0SA)  ~<:EC EC 2EC vG U~T Q X)PT= )w2c_cv)<= 9)|sp) 82ax) 12(%) 82u ) 1&$Uo ")-2Jfrb\#GCzz;))-2h` 9U9 ƻĻ@UC KUC TC TUT0TQU|TU|TIU0UUTvU"UvT|UC 'U GTv1UC gUC qUC   9:)mwTU)  ~mTC wTC TC U U~T 4 ,h(U_`! (w2cv(<=TL 9(|sp( 82ax( 1ؼ%( 82]Uu ( 1ֽԽix(1  _p(+PV ( CzXNũ(-2ϾǾt(-2/+BfrueRfr0$fr/Қfr#GCzn^Czns!yvj;(-2  9(  9(   9 VC ,VC DVC `VC kV 1T~zVC VC VbT1V1U|T~V U|V1U}T~V UWU$W^T0Q|R0.WU|yW0UWC W UT|WC WvU|XC  XC -XkU|TFXT~QaX^T}Q |0.(R0yX UX) UXyI UTXa UXr  U XXr U  W 9)c_WC WC mU V( ! ~UC UC UC X X U~T  s([& s(w2cvs(<= 9u(|spu( 82fdaxu( 1%u( 82u u( 1vpWY%y( Czdz(-2hb|(-2 B}(-2Rfr! fr}qfr@8 " 9( " 9(  w\#9 ~\C \C [C [C [C [ E#T~[C [C [v#T1\C /\C <\1#UT~G\ #U|W\#U|^\C h\C \C \1!$U}T~\ 9$Uv\xQ$Tv\e$Uv]$U~T0Q|R ]$U']$U|^]$Uvm]$U~T0Q|R0]%U~T0Q|R0]r =%U ț]r U  ']%9(.]C 9]C m=[Vu( % ~3[C =[C S[C ] U~T @zbD(]) D(w2cvD(<=XN 9F(|spF( 82axF( 1%F( 82u F( 1ixG(1TP &_pG(+W(K( CzL(-2  mfrfZ 8' 9V( K' 9[(  ^' 9r  ^'9v ^C _C ,^C C^C R^C ]^ 'T}l^C ^C ^(T1^11(UvT}^ I(Uv^](Uv^C ^C #_(U}Tv/_(Uv`_r (U X}_r U  /_))9n(6_C A_C m]PWF( R) ~97]C ]C ]C o_ U~T  ϕ(_R- (w2`\cv(<= 9(|sp( 82ax( 1I=%( 82u ( 1PNX,( Cz Y(-2GZPzretQzec;(-2 * 9#( * 9((  * 9X  * 9[ _C `+T1`C `C *` N+T~9`C V`C h`+T1`C `C `+Uv`+UvT0a+T0aC a  ,Tv#aC 7aC Ga!A,T~Q2Zar `,U war ,U  ar U  `,9?(`C `C m_W( - ~_C _C _C ia U~T  k' rEI2 'w2;7cv'<=~t 9'|sp' 82ax' 1$%' 82u ' 1+)[1' CzqaY'-2GZzthns!yretzr;'-2bX . 9' . 9'  . 9#  . 98 s/9F tC tC rC r:/U~T1rC rC r l/T}rC sC s/T1Qs/TvQ1R1ns/U}sU/U}Tvs 0T}s%0T}sC sC :t\0U}T0QtUz0U}Tv]t0T}wtC t!0TvQ2t0UT0t0T0tC t 1TvtC t@1UTvuC 'u!j1T}Q2:ur 1U XWur 1U  eur U  1 9 (mMrZ' 2 ~CrC MrC brC Iu U~T  Ry}'0ls6 }'w2 cv}'<=aY 9'|sp' 82ax' 1%' 82jbu ' 1Z 6' Cz%ũ'-2݆'-2Bfr!Rfrvjretz;'-2 3 9' 3 9'  3 9  n 49 #nC .nC lC lC lC lC l V4TvlC mC *m4T1Am14U}TvOm14U~Tvlm 4U}m4UvT~m 5U~m!5U}m95UmC m ^5TvmC m5U}nC  nC Un5UvT~Q0dn5U~nr 5U (nr U  6 9'm]lY' G6 ~@>SlC ]lC rlC n U~T  `@'puX: @'w2gccv@'<= 9B'|spB' 82!axB' 1RD%B' 82u B' 1lj[:F' CzũG'-260݆I'-2BfrRfrD2FZz 7 9U' 7 9Z'  dw)89 kwC vwC uC uC vC vC (v u8Tv7vC TvC fv8T1}v18U}Tvv18U~Tvv 8U}v9UvT~Q0v19U}vE9U~wi9UvT~Q}w9U1w9T0Dw9U}KwC UwC w9Uwr :U wr U  vb:9x'vC vC muP[B' : ~&$uC uC uC w U~T  ,]&@B@ &w2MIcv&<= 9&|sp& 82ax& 16*%& 82u & 1=;?& Cz}sũ&-2݆&-2VP_&-2Btfrf^Rufrvfrnsw!yxfr/#/Қyfrzi{ |s < 9& < 9& BC BC BC CC $CC /C <Tv>CC [CC mC)=T1C1G=U}TvC_=UC1}=U|TvCk=UTC=UC1=UwTvC =U~C =U~D>U~D'>U}#D;>U1Dr Z>U HD>UvT0Q}R]D>U}dD>UD>UvQ}RD>TvQ~E ?U~8E?TvsET5?T~E Ey`?UvT~E x?U~F?UFr ?U 7Fr ?U CF?UQFr U   dDA@9;' kDC vDC m}B& j@ ~DBsBC }BC BC )F @U}T xVF ,A{&w/E {&w2kgcv{&<= 9}&|sp}& 82  ax}& 1:0%}& 82u }& 1\6E& Czvfũ&-2(݆&-2&| RJfr`XBKfrretLfr`N;&-2) /B 9& BB 9&  UB 9R  yB9h yC yC @xC [xC qxC xC x BT|xC xC xCT1x15CUT|y1UCUT|.y oCUKyCU|T}[yCU}fyCUyCU~T|yCU~yC y DT|yC y8DU~T0yC  zC /zC ?z!|DT}Q2czC mzC zDU|T}zDU}zDU|T}QzC zr EU Ȥzr U  IE 9&mw[}& rE ~wC wC xC z U|T HQ4&{eJ 4&w2cv4&<=*  96&|sp6& 82ax6& 1%6& 82sku 6& 1`\I:& Cz0"Y;&-2GZz3)retz;A&-2g] F 9G& F 9L&  G 9$  G 9/ V}eG9; ]}C h}C r{C {GU~T1{C {C { GT}{C {C {GT11|HTvQ1R1=|,,HU}]|JHUTv|bHT}|HUT0|HT0|C | HTv|C +}UHU}Tv=}C G}C }C }!*IT}Q2}C }!TITvQ2}r sIU `}r IU  }r U  |I9v&|C }C m-{0\6& J ~$"#{C -{C B{C } U~T  L&~M &w2KGcv&<= 9&|sp& 82ax& 1%& 82u & 1 \[M& CzND݆&-2RfrretzNF;&-2 K 9& K 9&  K 9  gK9 nC yC r~C ~C ~C ~ ;LTv~C ~C ~lLT1~1LU}Tv,LUvT}LU}@LUJC U LTv_C C C r ?MU r U  nM 9/&m-~\& M ~86#~C -~C B~C  U~T  %Q %w2_[cv%<= 9%|sp% 82ax% 1.$%% 82u % 1" @]LP% Cz`X݆%-2RfrFZzOE N 9% O 9% LC cC rC } IOTvC C zOT1Ҁ1OU~Tv,OUvT|OUvOT0OU|@PUvPr 0PU ^r U H P9%C #C m]% P ~C C C m U~T  %`FT %w2 cv%<=RH 9%|sp% 82ax% 1%% 82~u % 1 S% Cz?5݆%-2_%-2RfrXLfr /R 9% BR 9% FC FC FC  GC G RTv'GC DGC VGRT1mG1RU}TvxGRU|G1SU~TvG87SUvT|Q}GKSU|G_SU}Gr ~SU GSU| Hr SU  Hr U @ GT9%[YGC GC mF% ;T ~FC FC FC G U~T ,h3%ЃY 3%w2cv3%<= 95%|sp5% 82b`ax5% 1%5% 82u 5% 1@^X9% Cz ݆:%-2<%|3+Rfr/Қfrfr"  retfr  ns!y  ;D%-2   U 9J% V 9O%  %V 9  ojV9 2 . vC C QC pC C  VT~C ÄC ՄVT11VUT~EWU~T}/*WU}AGWUT0K[WURC ] WT}gC WUT~΅C C C !WT|Q2-kXU}TL&XT~{oC MoC boC jo;oC oC o [T}oC oC o(\T1o1F\U~T}o1f\UT}p \U7p\UDp\U}T~Q0[p\U~gpC pC pC +q]U}T~QOq.]U~}qB]U~qC qC qp]U~qr ]U rr U  p]9.%pC pC mn@Z$ ^ ~><nC nC nC r U~T  $-2[ U Қfr  Ifr!!ns!y"p";E$|6#*#AF$32## 4g 9L$ Gg 9Q$ PMg v:$ P%C &C &{T}Qv#C #C $C $C  $;5$C I$C V$ hTe$C $C $8hT1$1VhU|Tv$1thU~Tv$ hU|$ hU~%hU~ %hU|T0)%hU|0%C %C %C %-iU|T0%JiTvQ0&biT|5&ziT|y&iU~&iU|T~&r iU H&r iU &iU~'jU|('r 1jU 9'EjU|G'r djU ВV'TvQ~ w%j9$$ $~%C %C m#L7$ j ~5$3$#C #C #C & U}T  ,&F#po #w2\$X$cv#<=$$ 9#|sp# 82%$ax# 1n%b%%# 82%%u # 1u&s&^o# Cz&&lZ#-2T'N'Χ#-2''Қfr''Bfr((ns!y));#|=*3*A$32** l 9$ l 9 $ ^l v:.$  C NJC Պ{T|Q}ڇC C C C $;1C LC W qmTfC C mT11mUvT~1mU}T~ʈ mUv nU}(&nTvP>nTvRnUvC C ɉnUvډnU}C nUvRnU~Tr nU pr U ( 1So90$++8C CC m^# |o ~(+&+C C C  U}T  ,t#p't #w2O+K+cv#<=++ 9#|sp# 82++ax# 1g,U,%# 824-.-u # 1--M@t#-2--ũ#-2#.!.k#-2N.F.#|..yCz"//Bfr/~/Ifr 0/ns!y10;#|_2]2A#3222Mq v:# *C +C +{TQ|'C 'C (qU}T1'(1qU~T}1(C F(C N(;a(C (12rT}( JrUv( brU~(rT}Qv(TrT~)rU}%)C 0)C L)C )C )C )C )!sTvQ2 *8sT}Q0,* d*yisU}T~Qv~*}sUv*sU~*C 4+sU}T0T+ysU}T~Qvu+C +ytU}T~Qv+$tU~+r U   *t9#22*C *C m'M# t ~3 3'C 'C 'C , U~T ?o# ew o#w26323cvo#<=w3o3 9q#|spq# 8233axq# 143%q# 824x4u q# 144P_vRu# b15/5#GqCzX5T5rz55;{#-255C C C ̋ DvTvQ0R2ًI[vU0^xvU0TvUvTvvUvC % vTv/C eC  7-w9#Y6W6>C IC mG _q# Vw ~6}6=C GC \C  U~T  L]O#z O#w266cvO#<=66 9Q#|spQ# 8277axQ# 177%Q# 8288u Q# 188_zU# Cz)9%9;V#|c9_9AW#3299 x 9]# x 9b# _yv:h# 99C ?C M{T|QvC  C ;)C 8C C `yT~RC oC yT1kC C  C ]r yU xr U Ȩ Ez9j#$:":C C m_Q# nz ~J:H:C C ӌC l U}T e '#q} '#w2q:m:cv'#<=:: 9)#|sp)# 82+;);ax)# 1Z;N;%)# 82;;u )# 17<5</|-# Czq<m<Xfr<<;1#-2U=M= { 97# { 9<# C *C 5 {T|DC aC s/|T1Y|U|T0m|U|C  |T~C r |U ȃr |U !r U  ɬ>}9J#==ЬC ۬C m׫/)# g} ~==ͫC ׫C C  U}T em" W "w2>=cv"<=C>9> 9"|sp" 82>>ax" 1>>%" 82s?o?u " 1??ix"1@? }~_p"+FҀy" CzD@>@ns5!y@@S6!yA@27LAA;"-2AA  9"  9#  ' 9G : 9K  9N bB`B C  C  C  C   T} C 1 C C T1r  C   T0 C  HKT~Q  R} C   pT} C  C  C $ r U (? r U   9"#m pF"  ~BB C  C  C 3  U}T  #Q"@ K "w2BBcv"<=BB 9"|sp" 82C|Cax" 1,D D%" 82DDu " 1 EEix"1CE?E $_p"+Gكm"-2EEyCzEEns!y'FFS!yFFO -2 GG2LG{G C  C  UsT1 C  Us0C : *T0EC VH[TQ~R}aC zC  T}C 5T|Q|R1r U  mo F"  ~GGd C o C  C  U~T i=VT"0R͋ T"w2GGcvT"<=1H)H 9V"|spV" 82HHaxV" 1CI3I%V" 82IIu V" 1[JYJp[m\"-2JJy^"-2KKyCzmKaK zKK[LoLO-2MkMyfrcNSN 3 OO{ -2OO V,9\PZPVC VC   9Ѕ@i|PPlen|PPclsLPPgCzQQ nTNS"!yQQvTU~TC T цT0T$U~TC THTQ~RT9U~T'TC BTC MT kTUC U5TvQvR1UC V!ŇT|Q25VC EV!T|Q2qVC V!T|Q2VC V!T|Q2RC RC RwU~T1RC R T0SC  S T~SC *S T=S1UT}QS U|hS @U~T wS eU~T PSxU}T|SU|S U0T0S ωU0T0StU~T1TU}TC TC  UCTQ HU hU~T WU U~T PbUU}TzUtȊU~T0UC U!TQ2VC VC W U|&Wr ?U 4Wr U  m]R@V"  ~QQSRC ]RC sRC CW U~T I!PW  !w2&R"Rcv!<=mR_R 9!|sp! 82MS Sax! 1UU%! 82VVu ! 1VVPEm!-2@W.W6a!-2X X,r!|XoXyGCzQYEY HzYY>IZZ[J\[yKfrx]h] 3L 1^%^{M -2^^ ] 9T``]C ]C   9\ir!|?`=`clss*Lq`c`gt(Cz7a3aOu"-2wamalv!|aa [QĎS/!ygbcb[WU,[C 6[ {T0C[$UM[C a[HTQRwZUTZC ZC Z Tw]C ^!ATvQ23^C C^!kTvQ2q^C ^!TvQ2^C ^5ŏTvQvR1"_C 2_!TvQ2WC WC XC &XC 5XC EX!JT}Q2WXiUT1aXC kX T0uXC X T}XC X אTX1UT~X  U|X 2U}T X WU}T PX}U~T|QwYU|Y U0T0Y ɑU0T00YtU}T1[YC vYC Y $T 4Q0YC Y IT}YC YmT0YC YC  Z T Q0ZC !Z ВT}w[C [TQ [ 'U}T [ LU}T P[rU~TQw[C \tU}T0!\C ?\C Z\C k\ T  Q0u\C \  T}\C \C \VAaw)\C \ fT}\c~U~\C ]C #] T  Q0-]C 8] T}C]C ^]C i](Tvw]C ]!=TQ2]UU}]C ]C ^C ^5TvQvR1^C ^5ϕTvQvR1G_C Z_5TvQvR1o_C _5/T|Q|R1_C _5_TvQvR1_C _5T|Q|R1_C _5T|Q|R1`ӖU|)`r U 7`r U  N`c)U~\`r U Im}W ! n ~bbsWC }WC WC F` U~T E!Қ !w2bbcv!<=cc 9!|sp! 82ccax! 1 dd%! 82ddu ! 1eep`! CzJeFe;! )eeA!32ee  9! ̘ 9! `"! $f fC 5C FT|aH)C C ;C &C 1 {T~@C ]C oT1C C C Vr U qr U P ؏`9!^f\fߏC C m@`!  ~ffC C C e U}T eu!\ u!w2ffcvu!<=ff 9w!|spw! 82MgKgaxw! 1zgpg%w! 82ggu w! 1]hWhixx!1hh _px!+ a|! Czhh}!-2ii'frji;!-2jj  9! " 9! C C  TT~"C ?C QT1nC U~ǜU}T0ϑۜU}֑C  T|C C+U}T~C ϒC ܒ]T|C  r U r U Щ 9!:k8kC C m`w!  ~`k^kC C ÐC ) U~T ,?j <  w2kkcv <=kk 9 |sp 82Al?lax 1pldl% 82llu  1nm`mQ CznnW |nny -2zojoi |0p,pj vpjp -2qq/frJfrqqeorr@t t[uuRLCzuu{ -2vv; -2,w$w A 9  T 9 _C C  T0C  T}C ȌC ӌ ܠT}C C  T15C qC UDU~T0 \U~pU~׍ UT  UT PT0QRXY  U0T0 *U0T0 tGUT05^T0MC X TvbC  U ?WԢUvdUTv Uv"Ȕ GUT ۏ lUT PTvQRXYcU~C CC \C n!TQ2C C ԐC C !VTQ2C 'mUvzUTvǑC ב!ߤT~Q2C -C \ U tr 7U r VU Xr uU Hr U UΒr ɥU 8h֒cU~r U 8r U 5Ur U  j9p!wwqC |C m  ~wwC C 3C   U}T `l |4 l w2wwcvl <=0x&x 9n |spn 82xxaxn 1xx%n 82MyGyu n 1yyixo 1zz _po + bs CzczWzt -2zz:u |#{{'yTrj{Z{retz(s,||N{ -2V}:}| |~y~;| -2~~  9   9  94n|`\&U|QR0X} fy9 mC xC (,C HC S T~bC C T1C ˖C C C  !:T|Q2C '5kT PQ0v(~3 ˗ U|ӗ(C 7ԪU}T0BY U|IC T T}^C C C 5]T PQ}Ҙ3 U|QR0X}AU}C ׫TQ0C T~8Y U|?C IC eC C gTQ2C r U ,r U Ъ ¬ 9 mݕan  ~ӕC ݕC C  U~T ȔeF 0W F w2cvF <=*  9H |spH 82axH 1ЀĀ%H 82^Vu H 1ׁՁbDL Cz URIM -2wquriifrĂ 6 9W  I 9\ C C ›C ͛ TvܛC C T11׮U~Tv-BUvT|9 U|jr (U r U p 99g @C KC mW`bH  ~" MC WC lC y U~T  j! bղ ! w2IEcv! <= 9# |sp# 82ax# 12&%# 82u # 1 c' CzIEuri\fr;+ -2  91   96 C  C  BT|$C AC SsT1hOuU|T0U|C  ֱT~C םr U 0r U  c9A C C mb#  ~ECC C ͜C  U}T e A  w2lhcv <= 9 |sp 82YQax 1Ç% 82MIu  1) Czֈ; UOA 32 ׳ 9   9 0=v: 5BC BC B{T|QvwAC AC A;AC AC A T~AC AC BǴT1BC BC BC Br  U lBr U k UBn9 )'\BC gBC m=A  ~OM3AC =AC SAC B U}T eRBt w2vrcv<= 9|sp 82c[ax 1׋% 82ʌČu  10.ix1jf _p+6 Cz#e Cz%!;|_[A32  9 0 9  C 9 V 9 v: DC EC E{T|Qv[CC pCC xC;CC CC C TCC CC C3T1CC  DC D eT'DC DDC VDT1mDC DC DC -Er ܸU  m;Er U lXEr U XldEr U l D{9*(DC DC mCp  ~PNCC CC 2CC JE U|T D `l w2wscv<= 9|sp 82ax 1F<% 82u  1+#/0 Cz`|ret)CzF:doc*czΒȒ+z!;-2 . 9 A 9  T 9/ ѧC C  T~C C 1T1QoϻU~{<U|T}IU}UT|;U|T}C  `T|C C C +C ;!T|Q2RμU|T0eC C C r U r U  èu9ʨC ըC m.  ~ C C C ̩ U~T $ ;0 ;w2GCcv;<= 9=|sp= 82ax= 10$%= 82u = 1"  A CzfXSB CzretCz zQE;G-2֘  9M & 9R  9 9Z L 9_  _ 9 `?Cz E¿9LC WC >ƪ'   ԪןU~\(U~T0iFU}T^TvvU~%vU,C 6C   9C C ŝ T}ԝC C T1C +C 6 QTEC bC tT1iU}T~ОTvTv C  TC _C o!,T}Q2C C /^T~rr }U r U `r U r U  r U 0 &;9?=-C 8C m]= d ~ecSC ]C rC  U}T  ȓa w2cv<=ϚŚ 9|sp 82FDax 1ui% 82u  1gepX CzS Cz5+XCzJ{zPJ;-2  9  9   9  9  % 9  8 9  K 9 aC bC  b }T}/bC LbC ^bT1wbC bC b TbC bC bT1c)Uv&cUGU}Tv`c_UcwTcC c TvcC cC c!T}Q2 dr U dr U &dr 0U H4dr OU ȝBdr nU О_dr U mdr U H{dr U  c 96cC cC ma@X 6 ~><aC aC aC Qd U}T  ?`J w2eacv<= 9|sp 82ax 1NB% 82ڠԠu  1@>  CzvS CzEeCz;-2Ţ  9  9   9  9   9  9  9  9 ΓC C  MT}C C .~T1GC VC a TpC C T1֔U ݔC C 9U #WU}TvEoUvyT}C  TC ϕC ߕ!TvQ2U 0/Tv#r 9U X1r XU ?r wU \r U  9\ZC C m  ~C C C N U}T  TjJ& jw2cvj<= 9l|spl 82KIaxl 1xn%l 82u l 1DBixm1~z _pm+oq CzȥzLJ ] 9z p 9 >ƪ  ԪrpUvDC [C f T}uC C T14Uv r SU r U  9C ŜC ml  ~C C C * U}T e*% I %w2cv%<=% 9'|sp' 82ax' 1%' 82?;u ' 1pc+ CzҨȨ %[CzMA$[Czөϩ\z  = 95 P 9: c4bCz^X!UQ0,UT}@U_vqC C  TvC ʞC ܞ2T1IߟWU}r vU r U x #9eC C m1@c'  ~Ϫͪ%C 1C IC   U}T e3` w2cv<=9/ 9|sp 82ax 1߫ӫ% 82keu  1ѬϬ Czy CzretJCz;-2e] ` 9 s 9   9   9   9N ƪQ  ԪǮUv.C EC P T}_C |C LT1C C  ~TСC C T1U}2UvT0<C G  TvQC C C r OU ʢr nU 8آr U pr U  Y9 `C kC m  ~86C C C  U}T  s+ w2_[cv<= 9|sp 82ax 1H<% 82԰ΰu  1:8`t Cz~pS Czret&Cz 'z;-2;/  9  9   9  9   9*   9@ ƪ5 ( Ԫô@U}nC C  ZT}C C ΣT1C C  TC -C ?T1V U}Tv*TvQ}ɤBU}ZTC  T}C SU}Tvp/TvC C r U Hr U ҥr 9U r XU r U  9 C C m-0  ~42#C -C BC ĥ U}T  cm< <w2[Wcv<<= 9>|sp> 82B@ax> 1qe%> 82u > 1xvKB CzSC Cz_Q#eD CzretCz;H-2cU W 9N j 9S  } 9[  9`   9h  9m   9  9  9  9>ƪʨʨK ԪߨUv\C sC ~ }T}C C T1֦C C  TC #C 5T1NC bC o GT~C C xT1U 8C  C =U}GC R Tv\C U 8U~T}PUv,F|U `/T}pr U ~r U r U Xr U r /U ér U  d942kC vC mЏ>  ~ZXC C 2C  U~T `X w2}cv<=Ļ 9|sp 82;9ax 1j^% 82u  1qo CzS Cz=5RL-2#eCzEe"CzYO;-2Կȿ C 9 V 9  i 9 | 9   T9 XV[C fC ̖C C C  T}C /C A1T1ZC nC { eTC C T1җU~T1U}Tv Uv07C B T~LC /@TvC C Ęr yU 8Ҙr U r U r U p  97m`  ~~|C C C  U~T mJ w2cv<= 9|sp 82_]ax 1% 82u  1) CzS CzaYRL-2#eCz Ee Cz}s;-2  9  9   9  9  9 |zC C lC C C  VT}C ϙC T1C C  T*C GC YT1r U~T1'U}Tv?UvКךC  qT~C 0/Tv?C IC dr U Hrr U r  U r U  < 9m-Ќ e ~#C -C BC  U~T { w2cv<=  9|sp 82ax 1% 82>:u  1dD Cz  9  9 tC C  T}C C ̠T1٠ r (U @%r U  ٠9C C m7c  ~)'-C 7C MC  U}T e~G{' {w2RLcv{<= 9}|sp} 82:8ax} 1m]%} 82!u } 1trix~1 _p~+@( Cz;-2.&  9  9 3C JC U GT}dC C xT1T0ȌC ӌ T}݌C r U {/r U `{ A9C C m(} j ~C C  C # U}T etqR0o Rw2cvR<= 9T|spT 82{yaxT 1%T 82KGu T 1ixU1 _pU+(Y Cz;Z-2me  9`  9e  39 :C EC C C  PT}čC C T1 T0C ! T}+C _C iC r U  |r U { 2 9vmW(T [ ~MC WC mC  U}T e ,pE ,w2cv,<=_Q 9.|sp. 82ax. 1qc%. 82 u . 1a_P2 Cz;3|A432  9:  9?  v:K FC 7GC EG{T|Q~EC EC E; FC FC #F ]T~2FC OFC aFT1FC GC GC UGr U mpGr U hm F59MecFC FC mE . ^ ~EC EC EC dG U}T epG w2cv<= 9 |sp  82ax  1 %  82u   1  Cz51;|mkA32  9  9 @ v:% HC IC -I{T|QvGC GC G; HC HC #H `T~2HC OHC aHT1HC HC IC =Ir U 8nXIr U m H89'HC HC mG  a ~ GC GC GC LI U}T eC0I w262cv<=}o 9|sp 82=ax 1% 82lhu  1ix1 w_p+d CzC7GZEznsF!yeWOG-2 lenH | I |w  9 # 9 dG[LKetnsh!yKEȣsU~أC ;C C #HTwQ  RC 5TsQsR1C C áҡC C  ZT~C C -T1UC C  TwC C 1C IC X(cC n <T}C 5lTsQsR1bC u5TsQsR1r U ȭˤr U m_Pd  ~TC _C vC  U}T ehV w2cv<= 9|sp 82_]ax 1% 82/+u  1ix1 _p+ )L Cz;-2<4 \ 9 o 9 C C % T}4C QC cT1C  T}C ۏr 0U |r U p| 9C C mǎ(  ~C ǎC ݎC  U}T e*h hw2cvh<=(  9j|spj 82axj 1%j 82-)u j 1~fn Cz) Cz3/;r-2qi  9x  9} GC _C j JTszC C {T1٩UsUsC  TsC Zr U hr U  "]9*C 6C m ej  ~C  C  C w U}T eEV Ew2cvE<=]U 9G|spG 82axG 1%G 82u G 1ixH1 _pH+)L Cz]Y;M-2  9S  9X cC zC  'T}C C ÐXT1C  T}C ;r U 0}Gr U | 9cC C m'P)G @ ~C 'C =C V U}T e[Ф  w2FBcv<= 9|sp 82ax 1% 82u  1eX  Cz8,ũ-2$D-2$RfrsmBfrcldCzO-2len |A1|!]|  |OI 3 9 F 9 DC bC qC C C C  TȥC C T11U|T~1&U}T~4 >UQRUswU|T 4 UwU|U}$C ;C Q T~ U| UwC C C C (r T  $ &)C 4  TP UwT 4 wC 5 TvQvR1C 5 TvQvR1Ѩr < U Xߨr U mPe  ~C C C è U}T  'wK w2cv<= 9|sp 82ax 1% 82}u  1ix1:6 _p+pf CzxC| cldCz[UO-2len |  | 1  9 D  9 C C )C 8C C  TRC oC  T1 U}C C   T?2 U}bC }C C ȬC ׬C ! T|Q2C  5 TvQvR1C 0C ?(IC T  T}mC C 5ITvQvR1r hU ˭r U Hm0f  ~ C C ƪC  UT 6 GdЭ w21-cv<=rj 9|sp 82ax 1% 82wsu  1f  Cz Cz}y;-2  9  9 7C OC Z =TsjC C nT1ɮUsUsC  Ts C Jr U Xr U Я P9C &C mf y ~?=C C C g U}T ehh`V| hw2fbcvh<= 9j|spj 82axj 19+%j 82u j 1+)ixk1ea _pk+)o Cz;p-2  9v  9{ ÑC ڑC  T}C C #KT1EOC Z }T}dC r U }r U x} l 9CAsC ~C m)j 3 ~ig}C C C  U}T eApH Aw2cvA<= 9C|spC 8220axC 1_U%C 82u C 1)'PgG Czi_4Cz;K-2 ~ 9Q  9V ׯC C  Ts C (C :T1i Us$UsC  ITsC r uU r U p 9cxvC ưC m gC  ~C C C  U}T eiV w2cv<= 9 |sp  82geax  1%  8273u   1ix!1 _p!+@*K% Cz;&-2D< [ 9, n 91 #C :C E T}TC qC T1C  T}ēC r /U H~r U ~ ̓9<ӓC ޓC m*   ~ݒC C C  U}T e[` V w2cv<=0( 9|sp 82ax 1% 82a]u  1ix1 _p+* Cz0,;-2nf  9  ( 9 C C  ZT}C єC T1C  T}$C [r U ~gr U ~ ,J93C >C mGp* s ~=C GC ]C v U}T er`I w2cv<=`R 9|sp 82ax 1rd% 82  u  1b ` ix1   _p+6 Cz  ;|  A32T N   9  9 Jv:   JC JC  K{T|QvIC IC I;IC JC J T~"JC ?JC QJT1eJC JC JC Kr U n8Kr U n J{9  JC JC mI  ~  IC IC IC ,K U}T e<B# w2& " cv<=g _  9|sp 82  ax 1  % 82n h u  1  ix1% !  _p+S# Czq c -2 afr;-2YO *! 9 =! 9  C!9p CC CC BC BC B !T~BC BC B!T1BC C "U~YC'"U}T0hC;"U}oCC zC `"T|CC C"U}T~-DC GDC TD"T|oDC yDC DC Dr #U Dr U h 2# 9m=BR [# ~3BC =BC SBC D U~T ,CNj6|' jw2cvj<=ZP 9l|spl 82axl 1%l 82u l 1g&p CzI=q-2>fr ?frmi/Қ@fr@ $ 9} $ 9  #%9E C C C C C  b%TvбC C %T11%U}Tv* %U}Tk%U}Twb &UvT|o&U| 7&UvT}K&U}ܲ_&U}C C $r &U H2r U  &9C C mKgl "' ~AC KC `C A n'U~T  F ,2/ HR+ /w2cv/<=[Q 91|sp1 82ax1 1%1 82zru 1 1ix21-) I(_p2+*6 Czyk7-2frzrfr/Қfr@ ( 9C ( 9H HC HC HC H )TvHC HC IL)T1&I1j)U~Tv1I)U|[Ik)U|TwnI )UvT~{I)U~I )UvT|I*U|I *U|Ir ;*U  Jr Z*U 'Jn*U|5Jr U   I*9e>:IC IC m[H`1 * ~xvQHC [HC pHC J D+U~T  :J q`1#j/ w2cv<= 9|sp 82YWax 1|% 82u  1pO. Cz5-2D>ppfr>fr;-2wm ~, 9 , 9  O_-ns!y , 9 2,T}Qv2,Uv2 2-UvT021-Uv?3C P3 T 'Q0 r- 9 1C 1C 1C 2 -T}2C /2C A2-T1X21.UvT}l2 .Uv2C 2 =.T}2C 2^.Uv2C 2C f3r .U p3r U ( 3.9*753C 3C m1@O !/ ~][1C 1C 1C u3 U~T  D,D\3 w2cv<= 9|sp 82><ax 1ka% 82u  1LH`N2 CzlZ-2) % Bfrc _ Қfr  ns!yH!@!;-2!! 0 9 0 9  -19 ""-C -C ,C ,C , 41T~,C ,C ,e1T1,C -11T~)- 1U|@-1T~Q|O-1U|a- n-1U|T0}-2U|-C - 72T}-C -X2U|-u2T~Q0-C .C .C 7.r 2U T.r U X 2 9m=,0N 3 ~0"."3,C =,C S,C F. U~T  `a6 w2W"S"cv<="" 9|sp 82""ax 1(##% 82##u  1$$ix1?$;$ )4_p+6 Cz$}$Bfr$$;-2$$ 4 9 4 9  b49 W%U%bC bC aC aC a 5T}aC bC #b?5T1Sb `bi5U}T0ob}5U}vbC b 5T~bC bC bC br 5U Htbr U t 6 9ma @6 ~}%{%}aC aC aC c U}T e\cz9 \w2%%cv\<=%% 9^|sp^ 82F&D&ax^ 1w&i&%^ 82''u ^ 1i'g'ix_1'' V7_p_+`8c Cz'';d-2#(( 7 9j 7 9o  Pd79 ((WdC bdC scC cC c &8T}cC cC cW8T1dn8T0dC d 8T}$dC 7dC AdC dr 8U tdr U t 9 9m7c0^ 19 ~((-cC 7cC McC d U}T e2dk< 2w2((cv2<=)) 94|sp4 82p)n)ax4 1))%4 82@*<*u 4 1**ix51** G:_p5+;9 Cz+ +;:-2b+Z+ : 9@ : 9E  e:9 ++eC eC eC eC %e ;T}4eC QeC ceH;T1e_;T0eC e ;T}eC eC eC fr ;U Hufr U u ; 9Wmd4 "< ~++dC dC dC f U}T eҌP? w2 , ,cv<=N,F, 9|sp 82,,ax 1,,% 82h-d-u  1--ix 1-- 8=_p +h?  Cz7.3.Rfry.m.;-2/. = 9 = 9  i=9 c/a/pC {C C ʳC ճ >T|C C N>T1$6x>U|T0E>U|LC W >T~aC C C r >U ȱȴr U  &? 9-mwg O? ~//mC wC C ״ U}T e"D w2//cv<=// 9|sp 82j0h0ax 100% 828141u  111phDy-211[ |22A\ -2{2_2hBspc 8233iA\f _o4i4ӶC C C gC o" ٷ'IA9r 44C C C C /ĶC ̶<C 1C ;C OIAT l Q2YC uC C C C VC C ʷC C Ǹc?C R5BTvQvR1r U IC `C q5BT N Q0ŵC ׵C g|CTp,:C LC gU|jCTv?C O!CT|Q2gC w!CT|Q2׸C C CTvQ0C /TvQ2 UaD944\C gC m @h D ~55C  C #C  U}T  G w2-5)5cv<=t5f5 9|sp 8266ax 16x6% 82#77u  1v7t7pi4G cz77;|77A32&8 8 E 9 E 9 i;Fv: s8o8ѺC OC ]{T|QvC C $;9C HC S FT~bC C FT1|C %C 0C mr GU r U H yG988C C m͹@i G ~88ùC ͹C C | U}T erK rw288cvr<=?919 9t|spt 8299axt 1::%t 82::u t 1;;ixu1O;K; H_pu+0jKy cz;;idzL << %.CzY<U<GZ/z<<;-2<< 4>axE 1e>Y>%E 82>>u E 1]?W?jVNI cz??`J|8@4@retczz@n@;N-2AA L 9T L 9Y  L 9! !C 8C C MTRC oC 7MT1OMUfMT0C ž MT|ϾC C ,C ;C K!MT|Q2UMUeC oC C r :NU ÿr U p ׾N9mfAdA޾C C mݽpjE N ~AAӽC ݽC C  U}T $ u]ЩT w2AAcv<=AA 9|sp 82]BSBax 1BB% 82CCu  1KD?DpS  czDD.cvp,}~dtdGyvEtEDW-2EE{ -2EE;|;F7FA32uFqF _P 9 rP 9 АPv:< FFOC C {T}Qv8 Q !FF G G 6G2GTC ^ ,QT0hC s QQT}}C C ;C êC Ъ QT~ߪC C QT1) RU~T 8 'RU~T PC C ̫ YRT|vRU|T1RUwTv RU0T0 RU0T0'tRU~T v $0..C ŬC ЬC 2STv-.JSUvEr iSU XN SU0T0W SU0T0er SU sr U  v!T9>sGoG}C C m@ JT ~GG C C )C x  U~T =sY w2GGcv<=H H 9|sp 82HHax 1I I% 82IIu  1JvJPX cz*KK.cvp,}~dtdGyKKDW-2-L)L{ -2mLcL;|LLA32MM U 9 V 9 XVv: iMeMC C {T}Qv V !MM MM MMC  VT0(C 3 VT}=C RC Z;oC C  ?WT~C C ήpWT1 WU~T  WU~T PrC C  WT|XTv  XU0T0ů q;SqC bqC mq cT~|qC qC qdT1qC qB,dT|QvqC rC  rC ?rC JrOxdT|Zrr dU 8wurr U v qd9dJ\H\qC qC mp I !e ~p\n\pC pC pC ir U}T erLh w2\\cv<=\\ 9|sp 829]7]ax 1j]\]% 82 ^^u  1w^q^Yg  cz^^!|P_N_ Wf 9' jf 9, _MC vMC M fTMC MC MfT1 NC 2NC ANC QN!gTvQ2NC Nr =gU oNr U o Mg9Bu_s_MC MC mM g ~__MC MC 3MC N U}T ^ ~NAk w2__cv<= `_ 9|sp 82``ax 1a a% 82aau  1 b bix1EbAb h_p+pj czbb;|bbA32bb 8i 9 Ki 9  iv: JcFcOC _PC mP{T|Qv'OC m 9 Q 9  9  C !C cC zC  ȎT|C C T1U|C  CT|C 7C AC \r U jr U p  9m'`G  ~42C 'C =C y U}T eݜ w2[Wcv<= 9|sp 82ax 1D8% 82ґʑu  1KImɓ czJ{-2 %yCzl^>YyCz  A 9 T 9  9} geC C  6(zIۑU})U|Tv9UT|GTBC YC hC s gTvC C T1U~T1ݒU}TvQ1R1U}U}Tv+T|C !UTvQ2C C +r U Hr U Vr U h P9WC bC ml 7 ~ڔؔC C C : U~T  EH`Iޘ Hw2cvH<=B: 9J|spJ 82axJ 1Еƕ%J 82ICu J 1ixK1 M_pK+mYO czJ>RP-2җ̗R-2nZfraUv[fr#G\Czlb]zޙ;Y-2LD  9_  9d  3 9b  x9o C +C C C C  T~C :C LT1iC 1UT~11U|T~OUT}cU}wUIU~UT|ŗU|T}C  T|C MC gC qC r =U r U X l 9mPmJ  ~КΚC C C  U~T 8,K@J+2 w2cv<=:0 9|sp 82ax 1ԛ% 82lfu  1֜Мj cz3URI-2 W-2R-2՞ўR fr  frҟƟ/Қ fr (seWfr BfrzJ:ns!y ;-2٣ͣ  9  9  Ӛ 9 @Czi_  9(KC KC L6U~L TU|T: MksU|TMU~TQ;MU~TQ}PMٛU`MUrMUxMU|M1UMyQUTMeUM{UMU|MU}N U|NNϜUSNU|]NU}kNr U   ^LJŝ'DfrޤiLx[U~T}zLU~T|QLLU|LUhLU}JC JC JC KC $K T~3KC PKC bKBT1KC K1mUT~KU|KU|LC * w2[Wcv<= 9!|sp! 82*(ax! 1YM%! 82߰u ! 1`^0R% cz &-2#G Czb^z fr zH>;--2³ v 93  98   9  M@9  T@C _@C B?C Y?C h?C s?  Tv?C ?C ?QT1?1oU}Tv? U}?UvT}?U} @IѪUv@UT~&@U~T}0@C ;@ ,TvE@C @ PU0@C @C @r U @r U ȕ  9Sm>R!  ~FD>C >C ?C @ U~T C  w2micv<= 9|sp 82 ax 1>2% 82̵ĵu  1EC@n cz{ -2#G Cz\Xz fr zB8;-2 k 9 ~ 9   9  ֭9  C C C C (C 3 TvBC _C qFT11dU}Tv1UvT~U~IUvUƮT}U}T~C   TvC 7 -U0FC PC kr fU r U   9mn  ~@>C C C z U~T C Xu w2gccv<= 9|sp 82 ax 18,% 82ƺu  1?=n_ czu -2#Gh CzVRzi frj z<2;-2 H 9 [ 9  n 9x  9|  C C C C (C 3 TvBC _C q#T11AU}Tv>_UvT~sU~IUvUT}U}T~C  TvC 7  U0FC PC kr CU r U 8 r 9mn  ~:8C C C z U~T C ,vKPº Kw2a]cvK<= 9M|spM 82axM 1J>%M 82ؿпu M 1QOQ czBR-2XTRT-2t! fr/Қ" fr# frD$ frns% !yaQ& z##G' Cz ;_-2  9e  9j   9G NQC lQC QC QC Q T|QC QC Q,T1R1JU}T| RbU}RUU~T01R U~HR^U|T0Q}R0URܶUT0]RIU|kRU TvR*UT|R>U}RC R cT|RC  SkU}T-S^U|T0QR0@S߷U|TQ~rSUTzSIU|SU3TSSUT|S^{U|T0Q}R0SU~T0SIU|SUȸT~SU~T|%TyUT~@TvUMT0U~XTFUkTZU}rTC |TC T U}Tr U XTU}Tr ޹U  Tr U  R?9RC RC m QM h ~QC  QC #QC T U~T  T ,Tl w2cv<=(  9|sp 82ax 1% 821)u  1p czB-2R-2t frD6/Қ fr frD frns !y zkU#G CzgQ; -2]O g 9 z 9 nUC UC UC UC U ƼT|UC UC  VT1 V1U}T|+V-U}=VUJU~T0QV bU~hV^U|T0Q}R0sVIU|VUTVؽUT|VU}VC V T|VC Wk=U}T:WyZU0T~OW^U|TQR0gWUoWIU|WU;TWUT|W^U|T0Q}R0WI-U|WUET~WcU~T|X {U} Xr U ,XU}:Xr ͿU  MXr U  V.9FVC VC m-U@ W ~0.#UC -UC CUC ?X \X U~T  CX w2WScv<= 9|sp 82ax 1&% 82u  1V0 cz\PR-2#G Cz3-z fr| z*";-2  9  9  oZF9 vZC ZC bYC yYC YC Y T}YC YC YT1Y1UvT}Y UvZ^U}T0QvR0"Z(Uv/ZI@U}=ZUXT~HZvU~TvRZC ]Z TvgZC ZC ZC Zr U ZUvZr U  Zr U  C 9mYV l ~YC YC 2YC [ U~T  L`X w2;7cv<=t 9|sp 82 ax 17-% 82u  1+)- czmaR-2#G Cz/)z frx z&;-2  9  9  YN9 YC YC XC XC XC Y TvYC /YC AYT1XY1U}TvcYU~uY^U0T~Y%U~YI=UvYUUT}YsU}T~YC Y TvYC ZC ZC ,Zr U 8ZU~FZr U  TZr U H @ 9mX i ~XC XC XC cZ U~T  i <K^ iw273cvi<=zp 9k|spk 82axk 1"%k 82u k 1`Qo czNJ;p-2  9v  9{ <C <C < T}<C <C <T1<<:T}=C = _T}=C P=r U pk=r U   !=9(=C 3=C mG<0Qk  ~=<C G<C ]<C _= U}T e]V*t *w273cv*<=xp 9,|sp, 82ax, 1%, 82u , 1  o60 czOEQ1-2w3-2 -@5-2d\dtd GyR fr:.z frz fr,$;=-2  9C  9H  69 C C  I 9 C C 3C GC cC n T|}C C T1UU}T0U UT0U,UT0KWU0T~Q}RkU}U#U~4U>C I T|SC C C r U r U й [{9dbC mC mn,  ~><C C C  U~T   w2eacv<= 9|sp 82ax 18*% 82u  1RPo czQ-2w-2z-@-2dtdb Gym_Rc fr zd frze frzl;-2 m 9  9   09i }{7C BC   9x C C ~C C C C C  cT|C C ,T1BUU}T0XUUT0gUUT0}KU|T~Q}R-U}CUWU~qUC  T|C C !C gC qC r U r U ` % 9%m=`o N ~3C =C SC  U~T  dA w2cv<=1) 9|sp 82ax 1% 82d\u  1p czQ-2w-2 -@-2sidtdA GyRB frzC fr^PzD fr;-2  9 * 9  o9H C C  9V .,C C C 5C SC gC C   T|C C >T1U[U}T0UxUT0UUT0XU|T~Q}R/U}:U@U~ZUdC o @T|yC C C C C /r U HLr U   9mo  ~TRC C C > U~T  ŐPf w2{wcv<= 9|sp 82ax 1J@% 82u  1-'ix1~v _p+p b b?;doc/ czv;-2$eU~UvT0C  TvC 7C YC hC z T~Q0R2C C C  dTvQ0R2e|U~ U|C 5C  9 C C mw`p  ~mC wC C R U~T ,gbR) bw2cvb<= 9d|spd 82axd 1%d 82sku d 1rh cz*"|i b S 9p f 9u SC ;SC JSC \S TvQ0R2qSC SC S TvSC SC ST1S *U}%TC DTr VU qaTr U Hq S9TC  TC mRd  ~RC RC RC ST U~T  =@tx =w2$ cv=<=k] 9?|sp? 82 ax? 1}o%? 82u ? 1mkix@1 _p@+!D cz;EL%AF32tn Q 9L d 9Q tC tC t;tC tC t T~tC uC +uT1@u JuC XuB&T|Qv_uC uGUvuC uC uC uOT|ur U @x vr U x u9]uC uC mgt!? / ~]tC gtC }tC v U}T e,c p`N  w2 cv <=OE 9 |sp  82ax  1%  82u   1ix 1! E_p +  czg_/ fr@.len |{ -2;-2/'  9  9"   9 `C `  T0 aC a )aC 8aC Ca WT|RaC oaC aT1a U}T a U}T ParU|T@Qa U0T0a /U0T0atLU}T0aC b wT|Q}bC $b T|.bC wbC bC br U br U  6bC98=bC HbC m`  l ~`C `C `C b U}T eb b w2cv<=5) 9|sp 82ax 1/#% 82u  15 cz4&. b:|$N -2o |{ -2  ;| | A32   1 9 D 9  d4n |_ [ ee$e~UTQ|,e .g 9   9v:   eC gC g{T}Q1=cC _cC ncC c T}Q0R2c(cC c T0cC c T}cC cC c;cC dC d 1TdC 68J Gy;-2  9   9  0Rna |XVDU~TQR e 9w (C C $ T~3C PC bT1C C 5T PQ0(C 5QT  Q0HiU~XU|pC }T|Q0T|(C  T|Q})C 4  T|>C (8URU~EC nC }C !T|Q2U~TQC T}Q0'C 1C MC C 7T}Q2C aT|Q2r U r U Ȼ F9O{MC XC mp  ~C C C   VU~T     !  w2cv <=! 9 |sp 82ax 1% 82= 9 u  1  `qj -2  C C !TvQ2 9  !!C C mG0q  ~F!D!=C GC ]C   U}T eT   w2m!i!cv <=!! 9 |sp 82" "ax 1B"2"% 82""u  1I#G#qX2 z## +9 ##C C tC C  ]T|C U XC C C 1C DC T!TvQ2\C  \G9 ##cC nC m7q p ~##-C 7C MC  U}T  ql M/  w2$$cv <=Z$R$ 9 |sp 82$$ax 1$$% 82_%[%u  1%%0rxG L%%; z& &`r @ -2K&G&|C ;C HT}QR~C C DC SC e ST}Q0R2rjU8C  9 &&C C mr  ~&&C C C  U}T . Nw   w w2&&cvw <=' ' 9y |spy 82r'p'axy 1''%y 82((u y 1i(g(E} -2((; -2(( _p + -_p +  6A)=) *){)0A)B))10 T6 * **0A@)BE*?*yC C  TvC j1C OC ZWT~oC z |TvC C  T0wjU   9 **C C m=Py D ~**3C =C SC  U}T sbX 6R X w2**cvX <=#++ 9Z |spZ 82++axZ 1,,%Z 82,,u Z 1- -P uE^ -2K ̑K-E-;e |--Af 32--v:p . .7C '8C 48{TvQ06C '7C <7C D7;a7.U  kh7C 7C 7C 8C 8!TvQ2G8r U   79r H.F.7C 7C m6 Z  ~n.l.6C 6C 6C V8 U~T  aE4 =  4 w2..cv4 <=.. 96 |sp6 82j/b/ax6 1//%6 82M0E0u 6 100r  .: -2fn L10;? |d1`1A@ 3211r v:Q 11C C {TvQ~oC ~U T0C C ;  U| U|/ U|C UC `C j U|r U   9S 22'C 2C m-r6  ~6242#C -C BC  U~T > L   w2]2Y2cv <=22 9 |sp 8222ax 122% 82e3_3u  133 {z   -2 ` |^y Cz^g "Cz ; -2C C r u U C C C ! TsQ2C   9/ m;    ~440C ;C RC { U|T j} `  w2A4=4cv <=~4z4 9 |sp 8244ax 144% 82I5C5u  155 kz  -2 ` |^y Cz ; -2 P G LsC C r U C C C !TsQ2C   9 m+P   ~55 C +C BC k U|T ,p p   w2%6!6cv <=f6^6 9 |sp 8266ax 166% 82q7i7u  177Z -2$8 8` -2^8Z8 oie O2ef %n88{g -299 C  C  C   T0 C '  Tv2 UM  U~T \  6U~T Pf SU}T0| UvT 'Q0R1 "Uv .Uv   U0T0  U0T0 tU~T0 C ' !>TvQ27 r U  9 _9]9 C  C m P  ~99 C  C  C F  U~T U P z U w299cvU <=99 9W |spW 82N:L:axW 1{:q:%W 82::u W 1o;m;[ -2;;`] -2;;{_ |<<oi3 O2[<W<V4 |<<e5 %n<<4r6 cz{=u={7 -2==;h -23>+>  9<   9[  C  C  C  C ) C 9 !T|Q2D C N  &T0X C c  KT}n cU~ C   U}T   U}T P UT0 U|T 'Q0R1 .U|$ ;6U+ 4  _U0T0=  {U0T0I tU}TW r U m UTw   U0T0   U0T0 t>U}T| C   cT~ C  C  !T~Q2 C 2r U  9 >> C  C m} W 1 ~>>s C } C  C A U~T N PL  w2>>cv <=!?? 9 |sp 82??ax 1@?% 82@@u  1A A@( -2OAEA` -2AAJ! -2BBoi O2QBOB  |BtBe %nCC.len w bCC{ -2XDPD;+ |DDA, 32"EE  9  3 9  E ^9 mEkE q 9' v:N EEfC WC g{T}Q1C C  C $C . T08C C 3T}MC bC j;urU~C  UT  UT PUT0 U~T|R0 AU0T0% ]U0T0/t{UTvBC C C C  T|QR2,C 6C zr  U r U H m9P EEC C m  ~ F FC C C   U~T (v s"  w22F.Fcv <=sFkF 9 |sp 82FFax 1G G% 82GGu  1GG" -2sHoH  |HHoi O2HH  |0I Ie %nII{ -2JJ; -2JJC -C 7 `T0AC L T|cC r U|T  U|T PH U0T0Q0R0X0% U}T~UJ U~ s U0T0  U0T0t U|TwC   T}C -C VC eC u!%!T~Q2C  W!U|T  |!U|T PH!U0T0Q0R0X0!U}T~b!U~T}Q|C  I"9 OKMKC C m r" ~uKsKC C C  U}T :k  '  w2KKcv <=KK 9 |sp 82\LTLax 1LL% 82mMgMu  1MMP& -2;N5Ndoc -2NNdk |NN4r cz8O0Ooi O2OO  |OO{ -2TPJP; |PPA 32QQ ;$ 9  N$ 9 $ v: C C {T}Q|C C C  $T0C  $T}C C ;1B%UT1L g%U~T [ %U~T Pg%UT0o}n%U|T &U0T0 &U0T0t<&U~TvC 5C @C lC C C !&TvQ2C r &U pr U ` 4'9 yQwQ C C mM  ]' ~QQCC MC cC  U~T KSQ  - Q w2QQcvQ <= RQ 9S |spS 82R~RaxS 1RR%S 82kSeSu S 1SS9-W -2QTKT6Y -2TTenc[ -2TT.len~ ptr b)U#U LUuUoi O25V3V  |fVXVw fr WWg |W|W/ Cz xp"XX{ -2XX@*e %n(Y Yz)Uw)U~Tvb)UvT~Q|'*U0T~QvR0X}Y+;*U~3"S*Uv;.k*UvG*U} *U0T0 *U0T0t*U|T1r U C C C  .+T0C  S+T|C  +U|T  +U|T PU+UvT}NW +U0T0`  ,U0T0kt-,U|TwC C  k,TvQR2C  ,T}QR25r ,U y<E ,U0T0N -U0T0Xt-U|T0fr U  v~-9 YY}C C m]СS - ~YYSC ]C sC k z U~T v P3  w2YYcv <=,Z"Z 9 |sp 82ZZax 1ZZ% 82s[m[u  1[[3 -2Z\V\6 -2\\enc -2\\.len7 8 L]]oi9 O2]] : |^^w; fr^^rv< CzG_-_{= -2\`R`; -2``/$R CzLaDa{S CzaaX/U0hUvT6C RC gC q 40T0{C  Y0T}C C  0U}T  0U}T P0UT0U0U~Tv51UE61U0T~QJ1U~ s1U0T0 1U0T0t1U}TC  1TvC =C WC l  2TvQR2 I2U0T0 e2U0T0t2U}T0r 2U (2U~ 2U0T0 2U0T0tU}T ]39L @b0 -2&m mP2 -2{msm4 -2mmf6 -2nndk8 |oo.len.bZoPoURLboo bppoiO2q|q4rqq  |XrJr{ -2rr;C -2ss x; 9 "C #C #C 5#C O#C Y# ;T0c#C q# $C 5$ <U~T D$ A<U~T PP$`<UT0y$<UTwQ}$ <Uv$<UT}$ <U0T0$ <U0T0$$t"=U~T$C $ G=Tv$C %C % =TwQ0R2%C % =TQR2%C & =TQ0R2&C ;&C J&C Z&!*>TvQ2&C &r U  %>9v "tt %C %C m", > ~\tZt"C "C "C & & U~T {e &.E  w2ttcv <=tt 9 |sp 82'u#uax 1gu]u% 82uuu  1PvDv D -2vv -2ww -2wzwf -2x xdk |xx.lenYptrZbxxURL[bty`y\LXzHzoi]O2{{4r^{{ _ | |{{` -2||; -2/}} @ 9k `AΧ-2}}Q+?AU T~[+C f+ dATv+ +C + TvQ0R2F'C g'C |'C 'C 'C ' AT0'C ' (C ( ABUT ( fBUT P(BUT0(BUTvR~)BUT~)&) BU0T0/) CU0T0:)t.CUT}A)C M) TCTwW)C )C * CUT * CUT P *CUT0m*C * DT}QR2*C * 8DTwQ0R2*C * iDTQ0R2*C +C &+C 6+!DTvQ2+C +r U y _)E9% .~*~f)C q)C m& DE ~h~f~&C &C 'C + + U~T M +U{J  w2~~cv <=~~ 9 |sp 82IGax 1xl% 82u  1I -2P -2 .len&.'bYUoi(O2 ) |{* -2ME F 9/ WHe5%n -"GU#-@GU|Tv+-5-G-b~GUvT|Q~O-GUvW-"GUv_-.GUv. GU0T0 . GU0T0.tHU~T1.%.9.r U To,C ,C ,C , HT0,C , HT~, HU~T - IU~T Pf-o- -IU0T0x- IIU0T0-tgIU~T-C - ITvQwR2E.r U  -I9  -C -C m-, !J ~KI#,C -,C B,C - mJU~T - ; P.\5P ; w2rncv; <= 9= |sp= 82,*ax= 1[O%= 82u = 1b``qOA -2PC -2.len.b:6oiO2vpV |ˆÆS( |4,r |4rcz  |F8{ -2ވ;P -2RB 6L 9 eMe%n/lLU/LU~T}/LU/LU}/.LU}j1 LU0T0s1  MU0T01t)MU|T1111r U T/ХM  ߊ.C .C /C  / MT0/C / MT|W/C q/ 0NU|T / UNU|T Ph0;mNU~o0x0 NU0T00 NU0T00tNU|T0C 0 NT0C 1$OUT~1C ,1 UOT}QR21r U  0O9 2.0C 0C m.0= O ~lj.C .C .C R1 a1 U~T ,~C1dVV w2cv<=ԋ̋ 9|sp 8253ax 1fX% 82 u  1uo0U-2ƍfh-2*&dir-2d`.lenwboiO2  |D:{ -2`7T]|)/'VVwsaxxpe%n 39xRret|db3.RUvTsR03cSRU|TsQ 3UvTsQ0R13cRU|TsQ4-3D3HRUwT0QsRvX0\3RUwTvd33b)SUvTwQ~3?SUw3"WSUv3.oSUv4 SU0T04 SU0T04r SU 4 SU0T04 SU0T04tTU~T15r U  92C ^2C u2C 2 uTT02C 2 TT~2C 2 TU~T  3 TU~T P4  UU0T0 4 )UU0T044tWUU~Twu4C 4C 4 TsQwR2 4#U96 &4C 34C m1 V ~őÑ1C 1C 2C 5 5 U~T "mgVJOda 5] aw2cva<=/% 9c|spc 82axc 1Ւɒ%c 82e_u c 1ѓɓЦ]g-27-fhi-2dirk-2.len3w4broi5O2LBV6 |˖ÖS(7 |3'r8 |˗4r9cz[S : |ɘ{; -2;w-2,aZ]H|њɚ/'IVVweJ%n7- 7@Xrete|7XUsTvR037cXU}TvQ I7UsTvQ0R16c!YU}TvQ46HHYU0T0QvX06gYUwTs6YUw7.YUs9 YU0T09 YU0T09r YU 9  ZU0T09 (ZU0T09tEZU~T19r U   8k[Χ|-2ϛ˛ 9ZU Tv9C  9 ZTsI9C [9 TsQ0R27P7[   `Z5C 5C 5C 5 u[T06C  6 [Tv!6C m6C 6 [U~T 6 [U~T P7 7;#\Uv7C %8P\UwTv18:8 y\U0T0C8 \U0T0O8t\U~TwX8C e8 \Tvq8C 8C 8 TsQwR2 ~8]]98C 8C mg5c ] ~[5C g5C ~5C 9 ]U}T 9 3@"9 _c "w2 cv"<=QG 9$|sp$ 82ΝƝax$ 14,%$ 82u $ 1b(-2SK*-2.lenptrboiO2%#  |RH{ -2ѠǠ;3|J@A432á \_ 9  `e%n'(;z_Uv?;_UTvG;Y;b_UvTQ}a;_Uvl;"`Uvt;.)`Uv< E`U0T0< a`U0T0<t~`U}T1<r U  `v:Z ;C <C <{T|Qb:C y:C :C : +aT0:C : PaT|:C :C :; ; aU}T ; aU}T P{;; aU0T0; bU0T0;t'bU}T;C -<C 8<C ^<C s< bTvQR2<r U y ;b9\֢Ң;C ;C m:$ c ~:C :C 2:C < < U~T  ,i< Zj w273cv<=zp 9|sp 82ax 1 % 82u  1i-2-2+!dir-2b.lenptrLoiO2V |PFS( |ӨǨr |i_4rcz  |VD{-2&;-2 De 9 Шfe%nvh>zzeU>eU}T>eU> eU~?eU=?.eU@ fU 'A 5fU0T0A QfU0T0AtnfU|T1Ar U  0Ap*gΧ-2 AAfU T}KAC VA fT~AC A T~Q0R2~?`g KE p=C =C =C = gT0=C = gT|=C j>C > hU|T > 'hU|T Pw? ?;LhU}?C  @yhUT}@"@ hU0T0+@ hU0T07@thU|T>@C K@ iTU@C @C @ EiT}QR"AC A viT~QR2Ar U y ]@i9d@C o@C m-=` j ~'%#=C -=C C=C A LjU|T PA qk w2NJcv<= 9|sp 82ax 1% 82u  1 :k9!`C lC m  ck ~GEC C 0C  U}T '?s0}n sw2njcvs<= 9u|spu 82C;axu 1%u 82"u u 1usam;y|Az32R} -2)!alv: mC wC {TvQ1C C ;C Ǔ5EmT  Q0,C =5vmT XQ0NC ŔC ДC .r mU OC \mT}C  4n9óC C mWPau ]n ~MC WC mC  U}T 'Kdp dw2 cvd<=QI 9f|spf 82axf 1ߴմ%f 82XTu f 1pso9nGC SC m @sf o ~ C  C  C 8s U}T 'SR+>r Rw20,cvR<=ui 9T|spT 82axT 1oc%T 82u T 1NLsq;XLAY32C C ; C B>qTvQ}"C eC pC C OTv 5q9_<C GC msT q ~  C C C  U}T '$h<`8^qt <w22.cv<<=wk 9>|sp> 82ax> 1oe%> 82u > 197s;B|soAC32 ksv:K !9C 9C 9{TvQ}8C 8C 8;8C u9C 9C  >9s9M)'E9C P9C m8> (t ~OM8C 8C 8C 9 U}T 'i0&u8 &w2Mcv&<= 9(|sp( 82ax( 1 %( 82 u ( 1 u ;,| A-32< v:5 < 97iI u8  w2Mcv <= 9|sp 82ax 1 % 82 u  1 u ;| A32< v: < 9!B9@w w2vrcv<= 9|sp 82KCax 1% 82*&u  1}{4w;|A32vv: -)h:C :C :{TvQ1:C 4:C <:;I:C :C :C  :yw9ge:C :C m9` w ~9C 9C 9C ; U}T '^ ;@z w2cv<= 9|sp 82ax 1% 82hdu  10hy;|A3251`yv: ok;C ?<C O<{TvQ Q;C ;C ;;;C <C  <C  ;y9;C ;C mG; y ~=;C G;C ];C `< U}T '{v#R| w2cv<=?3 9|sp 82ax 19-% 82u  1P"{;LRNA32ovC vC v;vC vBR{TvQ  vC vC vC wC "wOTv v{9vC vC m7v " | ~-vC 7vC MvC 3w U}T 'yB~ w2#cv<=d\ 9|sp 82ax 1% 82jfu  1mt "} ~C C C  C 15z}T Q0KC \5}T Q0gC w!}TvQ2C C 5 ~T Q0 U}T '|^z w2cv<=aU 9|sp 82ax 1YO% 82u  1#!`t;|]YA32tg v: C C {TvQ}5C JC R;l)yC C C  9C C m0t 1 ~C C C . U}T '0 w2cv<=^V 9|sp 82ax 1% 82eau  1 f9C C mYt  ~NC YC pC 5 U}T C_w|-8L3o ' O2key $<_p+pz L3oA9 ' O2.key $y$     1/\UvT Q1R X YUOC `t4T  yQ0C  XT0C  gT}QvRsX$Y~. _y0e3o\TyCzyT1jyUUU0]8e1o yCz<cur|ns !yء FĘe:i  |t.len   z~pkey -2"cn bdLuriLoad 82  w2sp82pJ -2?o)# _p2+n\6_vrC C C hC p" jE|clsF"LgG CzOH-2A7lI|UvC C  TvAScC  aT0$yUvUvC HƇTQRvC #5TsQsR1ȈstryfrA6UsC `U~T0C  TU~8C K5T|Q|R1p2) 6 *?;0A)B{uT|\C dC C  tT 'Q0C pT|Q~%C Eg݉TvQ}R~X Y0C C /C <C ANDUwpC C  T 4Q0C  T~C ˊT0C  T~cUsq'C 2C C ST @Q0NC Y xTsdC t[TsQ:~C NjT|C C C C  C )C HC eC C C C C C C @C LhT0XC tC  ߌT  Q0C  T~C C V:a)C C  xT  Q0 C + T~7C SC ^(ύT}}C C   T Q0C  4TC C (C  TXU QR~`C |C  T 4Q0C  T~C 2C UC rC C rT|Q0vU~uU~C C C C VJr U UC gp4T|Q ooC paT|QC pT|Q qC C ʐT|Q0C  T|QR2 C )C : 9T Q0EC P ^T~\C yC (T0C  T~C c5C DC QT|Q0eC tC <T|Q0C C sT|Q0C C C 2C NC kC C C C C  C 35%T}Q}R1HC [5UT|Q|R1pC 5T}Q}R1C 5T|Q|R1C 5T}Q}R1C 5T|Q|R1C #5ET}Q}R1]C lC y|T|Q0C 5T~Q~R1C 5ܔT}Q}R1C C T|Q0 C C )JT|Q0@C S5zTsQsR1C C C T|Q2C C T|Q0C C  ,T|Q0.C =C JcT|Q0XC gC tT|Q0C 5ʖT}Q}R1C 5T|Q|R1C C  C )C NC ]C jeT|Q0xC C T|Q0C C ӗT|Q0C C  T|Q0C C AT|Q0 C /C <xT|Q0Sr U ar U pf NjBн &+R/(sc/(sret eoq?onbJ 1`T w2sp82\_g]fC yC C C "C C HC P/WC _<C ѾC UT0C  TC /UT09C D  T~Pq#U|ZC hC x[ZTvQ:C U|T~C C ϿC C  C &C DC `C C C C C C C 4C @h_T0EC aC C C C T|Q0vԜU0C C C C V5C CC PLT|Q0gC oc}C C T|Q0C C ԝT|Q0C C  T|Q0 C )C ]C yC C C C C C *C ]C uC C ўT|Q0C C T|Q0C C ?T|Q0'C :5oTvQvR1OC b5TvQvR1wC 5ϟT~Q~R1C C C T|Q2C C JT|Q0C +C 8T|Q0MC [C hT|Q0}C C T|Q0C C C  C 7C EC RZT|Q0eC sC T|Q0C C ȡT|Q0C C T|Q0C C 6T|Q0C ,C 9mT|Q0Pr U @^r U lr ʢU zr U p,Pqe+o?Doxj w2 N_p+.@ W K<: ?a_>.114 W K ?A 6 *NJ0A)B˽T|C xcUTC Nuopve(o?oC=>.6  W K ?.IP W K<: ?caeU xhU NIEeE8DF#-2t Gw2 iO |]P |($mQ82f`DRI2retScU0C T}ƹU ڹC ݦT}Qv $ &R0C  T~C .6TQ B?MT1PnyUT1 Q NBkCzretl#95U0UvT1ʺ-UvT1޺ Qv·C C   tTvFLFwC TvQ BC TvQ  ɸC ۸$TvQ 4C  STvQ0R2/C ATvQ  gC wTvQ2F%/C ?!TvQ2_j#-28e#/o8X#<+8m#J-2 $ 82key% -2len&  cn' b (w2 o_p/,+ _p6+<_p:+Ue ƪMdoc !czMdtd 1Cz  CzUy8y)Cz< zkD|8R"frDO20-2soe1%noi O2~/ 82!w |dC gTvQ RIX Y0C !TQ22UsT} IU0C 9gTvQ RFX Y0C gͬTvQ R?X Y0jw}jU1EwXj*U  iC vOT~C C Ts C DO+i | URL,LiOID-Le.%n`X/0 821 |UM.2 -2/g3 g4 |G5L@:6g ;K -2oiL O2)'C gT|Q R?X Y0P T w2spU 82jL\Z _ C  C  C gC o"} C  C  C  / C  < C  C &   TU'U0.(Q02 C ?  GTJ C e C r  ~T}Q0| C   T} C  C  [ڰTvQ: C  C  C  C ! C @ C \ C z C  C  C  C  C  C +C GC jC vhT0C C C C $C 1T|Q06U0!ZU|TvQ~C C C C VUT|Q0C   T|QR2'C /c=C KC X@T|Q0mC {C wT|Q0C C T|Q0C C  T|Q05C QC lC C C C C C 5C QC C C T|Q0C C մT|Q0C C  T|Q0C *5<TvQvR1?C R5lT~Q~R1C C C T|Q2C C T|Q0C C  T|Q05C CC PUT|Q0eC sC T|Q0C C C C C $C 1T|Q0?C MC Z.T|Q0hC vC eT|Q0C C T|Q0C C ӷT|Q0C C  T|Q0r )U (r HU 0`U|>r U hLr U gUTvC ޸T~C   D!| -!%+Uk_|8R$+8'2bMlen>|<  w2sp 82 ٗ-2 -2< \  _S"  +$e -2K`  w2sp 82z\ _.C AC UC ?C G" _p +  6 *1-0A )Bmg[T}C C C /C '<nC C C IT `Q>C C C  C &C EC aC C C C C C C ,C HC kC whmT0C C C FVC C ؼTvQ0C  C .C JC eC C C C C C 7C ?cMC [C hTvQ0}C C TvQ0C C TvQ0C C -C IC ^C kwTvQ0C C TvQ0C C TvQ0C C TvQ0C *5LTvQvR1eC C C TvQ2C C ǿTvQ0C C TvQ0C #C 05TvQ0EC SC `lTvQ0uC C C C C C TvQ0%C 3C @TvQ0UC cC pETvQ0C C |TvQ0C C TvQ0C C TvQ0D>| f +'*b&len6|] #La]e -2} -2K |UM  w2sp 829\ _C C C wC "> UQ  *U}T~QvC C C /C <C 8C C(.T~ $ &MC X ST|cC mC IT (gQ:C C C C C C .C LC hC C C C C C C <C HhxT0UC qC C C C T|Q0C C C ,C 4Ve5/U~C  ^TvQ0R2C C T|Q0C cC C T|Q0C +C 8T|Q0MC [C hTT|Q0}C C C C C  C CC _C ~C C C C  T|Q0C #C 0DT|Q0EC SC `{T|Q0C 5TvQvR2C C C T|Q2 C C (&T|Q0=C KC X]T|Q0mC {C T|Q0C C T|Q0C C C *C WC eC r6T|Q0C C mT|Q0C C T|Q0C C T|Q0C #C 0T|Q0>C LC YIT|Q0pr U XgDs+ ` .s L.u -2B<v | xw2spy82I\~_nC C C C " [_p +>P   a&$?C FC PC X/_C g<C C  T}Q0C  :T|C C IxT fQ:C 2C NC jC C C C C C C 6C UC qC C C C h_T0C C  C C &V=C KC XT|Q0pC C C C C C $C @C _C {C C cC C T|Q0C  C T|Q0-C ;C HT|Q0]C yC C C C vT|Q0C C  T|Q05C CC PT|Q0eC sC T|Q0C 5KTvQvR1C C C T|Q2%C 3C @T|Q0UC cC pT|Q0C C 4T|Q0C C kT|Q0C C $C @C eC sC T|Q0C C  T|Q0C C DT|Q0C C {T|Q0%C 3C @T|Q0NC \C iT|Q0r U fDuC|` .C!LeI.E |F |*"resG -2Kp L w2spM 82:\R _  C !C 5C C '"C C C /C <NC iC v T}Q0C  T|C C IT  fQ:C C C  C &C EC aC C C C C C C ,C HC kC whT0C C C C VuC C IT|Q0C C C C C 9C \C xC C C C cC  C T|Q0-C ;C HST|Q0]C kC xT|Q0C C C C C T|Q0mC {C T|Q0C DTvC C {T|Q0C C T|Q07C J5TvQvR1eC C C &T|Q2C C C jT|Q0C C T|Q0%C 3C @T|Q0UC cC pT|Q0C C C C C C  zT|Q05C CC PT|Q0eC sC T|Q0C C T|Q0C C VT|Q0C C  T|Q0 r U PfD<|0=cR<-2#   _p>+F>U 6   *  0A)B  kTsFC D|p R-2T F '&b  len2|4 .  w2sp82  cnt |  ) -2;5b/]  bٗ -2(" -2yq \_C C ,C wC ">{{ 1: *( QO vt*UC C C  yT|C (T|C /C <DC dC o T}zC  *TwC C  \T~C BT 2Q:C C C C 9C XC tC C C C C C $C CC _C C htT0C C C C C TvQ0C C C C Vr 2U C +C 8iTvQ0MC aIT Q:wC  T}QR2C !T~Q2C cC C FTvQ0 C C (}TvQ0=C KC XTvQ0mC C C C C C 3C OC nC C C C mTvQ0C C TvQ0C +C 8TvQ0OC b5 TvQvR3C C C OTvQ2C C TvQ0C #C 0TvQ0EC SC `TvQ0uC C +TvQ0C C C C 'C 5C BTvQ0UC cC pTvQ0C C TvQ0C C ;TvQ0C C  rTvQ0 C  C ) TvQ0@ r U gE  S r U NI-2oiO24r+Cz~/ 82C gTsQ 2R@X Y0l[OUTlUTT0C TsC N@|` poiO2~/ 82,"w C  gTsQ RBX Y0Y C f Ts C  !TsQ2 C Dp-2XtL/o/{-2X.f` \fUUT`QX( Uuj8{j-28 j/|< ow2spp82< \t__WV|8{V-28 V+|QJ?`<e?$+msg?6LH//A ~{B-28*.lenC }PcsvG-2C  T0C  Ts4C QiT|QvRsX~Y0zr 7U fC  T|Q0R25{Uv$C AvTsQvR}X~Y0pU C  TsQ}R2  j*e*"+5%msg*4LH//, ~{--2rbtsv1-2)#C  T0C  TvC 4i)T|QsRvX~Y0]r HU kC } T|Q0R2M5Us^C {vTvQsR|X~Y0b SGe!+rmsg4L=3H// ~{-2 5sv-2vpC  T0C  TvC iT|QsRvX~Y0=r  U KC ] T|Q0R2-5MUs>C [vTvQsR|X~Y0B Sğ{-2msg4L.&Hsv -2// ~EC V 8T 'Q0C iTsQ}RwxU|Ts m^PbxV{"-2V;^|IC]GL n3c -2sC } *T0C HbTsQ R}jxUUmVP V{#-2V3c5-2SK w2sp82>n\_5-C C C ?C G"pC wC C /C <C C  T~KC UC iIT Q:pC zC C C C C  C 'C CC bC ~C C C C C C #hT0/C UC qC C C C IT|C yT}Q|R2C  C C $C F4V?C GcUC cC p T|Q0C C IIT Q2C C T|Q0C C T|Q0C #C 0T|Q0EC aC |C C C C C C EC aC U zC C T|Q0C C T|Q0 C C (4T|Q0WC j5dT|Q|R1}C C C C C T|Q0C C T|Q0%C 3C @0T|Q0UC cC pgT|Q0C 5TvQvR1C C C C 5C CC PT|Q0eC sC 9T|Q0C C pT|Q0C C T|Q0C C T|Q0C ,C 9T|Q0ma5P? w2Wsv-2<rc1o/-2mWsv-2o ;1?  w2X^A|W__sAhW__nA?YAWHXkb?(kh?kW?QrkXB>+.?(>+?H>|?Qr>X+d?(-??QrGt  -%`tuj  0uL)m ] p`uA)!!UC iC ~C C ""C *C 5C =/EC M<C C C IT Q6C C C C C F$V-C AIYT мQ6PC XchC {5T}Q}R1G- of M ?n!f! L!! YX"N"-boXo.  Y"" L## ?*#(#0fLg)tY#M#)##)$$pЈ)[$U$oC oC oC vC v"loC soC }oC o TQ~oC o(,T~oC o/oC o< pC +pC 6p TApC Np TYpC cpC wpIT Q>~pC pC pC pC pC  qC /qC KqC jqC qC qC qC qC qVqC qC rTvQ0rC 1rC PrC lrC rC rC rC rhVT0rC sC #sC ?sC ZsC vsC sC sC sC sC 'tC /tc=tC KtC Xt)TvQ0mtC {tC t`TvQ0tC tC tTvQ0tC tC uC uTvQ0-uC ;uC HuTvQ0]uC kuC xuITvQ0uC uC uTvQ0uC uC uTvQ0uC uC vTvQ0vC +vC 8v%TvQ0MvC [vC hv\TvQ0vC v5TvQvR3vC vC vC wTvQ2wC 1wC TwC pwC wC wC w;TvQ0wC wC wrTvQ0wC wC xTvQ0xC xC +xTvQ09xC GxC TxTvQ0bxC pxC }xTvQ0x / '$$)4% %xT'xL4fAx)BI%E%)O%%=yxTvyyG : %%T)%&!&?U|X:U|Gƪ1  Ԫa&[&0@)&&IUTsFћGp%  '& '{'T)''));(1(d6)C((LP :  6(( *7)3)0A0)Bs)m)Tve] )b))C T<>P886T  a))C C Ƶ( TvC *g TQR}X8Y0QC tg TQRX Y0C ϶C  B TvQR2'C QC qg T|QR}X$Y~ G0 = `H  ] jGB1C   **`B@ ]*Y*#BUUT0a`%:%:b99b/ == ppcǏǏJ7d ^p99b00b bL>L>b ~~ShhG)QQGUWWb fUfUO_OeKWKWS^^HHNNSHӝӝS1l1lbHHG.b ގގSPP==bbnnG+HSBBb`  b1DDb] 2>2>b Y&d<d<bz yyb JJ_lYffL5==b __L=`~`~L7``L4''Z/99_^o^oZ:bvvZ5 b &6&6b b b϶϶_\RhRhbJJbn wwb YYbqͪêVVbDDbHH]aa]XfXf]vCRCR] l l_;;_zz]/](}I}I]%]]] ;;_uZuZ] ]H;{;{_؟؟H͙͙]]]_']~W~WHVV]5aa]jnjn]ww]gg]:J:J]b]pp]mm]]__G@]]]>>]JnJn]]{{]xx]SS]RR]]ss]""]V_V_]ii]&_&_]bbF yy]66bJJ]~~]] [[] xx]]݀݀]]3`b`b]]]\\]<]'U'U]oo]B--]Sll]D]XyOyO]IxxIPGPGI IrrH  _DJJ_r eɖɖellb-]-]YQQb b fVqVqb RRfwwfOfT@T@f=r=rY`c`cȲ̄\-x-x\zLzL\ }}\ll\bbg\\krkr\\ffJ*RRJ,ssb~ \gg\ۣۣ[nn[[xx[)M)M[=q=q[dd[ҥҥ[bb[IŮŮIyyJttH"g"gJaFaFGNTTGW܁܁H~~HkkQ̛̛HttHttH||H{Q{Qg\\_oYYH"AAHKeKeHvHtRRgKKG KKG~ j|j|gŔŔH@@HaffHGg@g@HMMK~@]@]HXH9Hb;b;_ ++gHHUUHs_s_H3DDH$l$lHҀҀH&R&RH\\g K KH//Hg¡¡HQyRyRHQQe lSlSYLLe؂؂eIIeZZb LLYP\P\YIIhLeeYi BBHXXUnnHUOOb>>HZAAHVEEHIAIAHFFH]Z]Zg.j.jg;e;e_rrgƥƥgJ.Y.YgZZg``gddgppbHHH;;Hg}}b)n)nb \\bB scscbޮޮb bqq_%%YǞǞQYYH@jfjfQXLcLcQ_HHH:c:cHHPPHgC[C[G7HJJH}HqeeH^KKHH0C0CHffjKccHbbH99IUaUaIHOPOPHLZLZHGG_~~_FFNk^^^r>>_xxJQQd&``J11HtdtdJmhmh_~~d#{P{Pk_aaXJppd)[[Jxxg9ttVnQnQVVXE-A-AJm % s^s^lFFJ9KKU"_z\z\_>>_YFFfKfKfb>B>BbI55fWrWrb`C`CfJJb ZZf--ff``b ''f@@Jf``JT JMMI**XvqvlJJbvv_8__]<<b ccb __b{ b( \\NYYHTu (.-9%0 0 %-G%'9inty)E{2LE"ERL8 L6E!L-?+yY(F~'4!``$@O'lB[(L  T3 L Ln, i   Q,  q N !3R+ T#+ 4U#+] V /(v y.xy yE  zy [|E 2y >f 8f $10o 1E ( C c E=* F G ` L'5$ H  Z m   l  $ "h  #p # $x % '  L @  L g *!; -   L U!; h2' ( y@ L)H K Lm$S;} yX6 (7W8 0: !;? A y B y C}G 0I !J K} OZ 0Q !R S y 6T %Ua~ c ( #d ( ^eZg Y 20[ ( ]f G&h ~l 7n "o yt& Ov ( /w y xE p3@5<Y.D_rtL.V+i8pd3y y L$  %& y f( y (* y v0 y ,{ &| y ( ( L@ ( (M[Z!["$Z62 y.7 y8; yZB 9 ( + 6  ` L )s+##-g88B - 0 )8  -  ) MM!e 28 p/5 /N    "  # ($. . 8 0C C M 2X X b Zm m w    ( =       3  H  ]  r  A/ -8 V! '{# r  r 3 4  L # L / L 5  D  )  - L 5. 40 /+5  = 4> m@  b"A vC y$ E ( ]J 0 ,N*8 P6@ [H m(\X ]h 'j x N L Z L26 b( yp 46 d( yr  y r 4X 36 y X7 y0 X -Z,.Z =,   Z Z3 [ y 1 / b d Z e [ fy gy $h [ R 2 Zj5 [ yu( ZhD F Z)G [;6Hy:0  32 9 ( - !  ` L %; ' 32( )9 (*- + DIRG-IVvUVwLNVEp_  y/ OP1 op(! D!0 K!0 !I >!rG)#!E  ) !E ,!E "5!E "!E 2!E !E +!E 7!0" f!0#COP2  copP"yD"z0K"z0"zI>"zrG!)#"zE  !) "zE !,"zE !"5"zE !""zE !2"zE !"zE !+"zE 7"z0"f"z0# "}0$I"rG(3" Z0" ]08" ]0< "N@&" NH\8  `!" D!0 K!0 !I >!rG)#!E  ) !E ,!E "5!E "!E 2!E !E +!E 7!0" f!0# ! 0( R+! 00"!rG8,!]0@! IH!QIPx%! 0X"< /5P!`D!0K!0!I>!rG!)#!E  !) !E !,!E !"5!E !"!E !2!E !!E !+!E 7!0"f!0#! 0(R+! 00! 08! 0@! 0H G m"? $ t'##0#Iop#$0 =(#%0 #'0 s4#(0 #*]( <#,L00 #-L04 .5#/]8 #0L0@ #1L0D #30H A1#4P Z#5X "#6` #8]0h w#:]p 2#<]x #=] 7#A0 #CX U*#E0 #HI ,#KP@ #LP@ L'#N0 3#O0 2#^;0 #`0 6#a0 &-#b0 i"#n0 <&#u0 3#z0 h#{0 l'#}Q {#~0 ,)#] ,#0$3#L$-#0$#0$#P@$#] $ #]($ #G0$6#$8$#$P$E #$h$##/$ #/%ISv#0$7#]$d)#0%Ina#$# $ # $u #0 $#0(%Irs#00$#08$#0@$#0H$ #P$:5#0X$3#0`$0#0h$e #0p$d#Px$#P$:)#N$#0`$d/#6h$ #0p$0#0x$F#0$x"#0$ #0$1#Z$#$Y%#;0$1#0$ #0$#0$*#0$#0&#]&#\&#/\&2#=#]&-#?[&5#@Z&}#B]0&0#D]0&#Fy&R#Iy&\#J[ & #K0(&H#L00&-#M08&#NZ@&.#OH& #P0P&7#Q0X&#T0`&#U]h&/#Vp& #X0x&2 #Y0y&; #Z0z&) #[0{& #\0|& #]0}&#^0~&Y#_0&#aZ&#b0&#d& #fL0&#hL0&#lL0&J1#oy&#p]&b#s0&#t0&#u0&-#v0&D #w0&6#z0&0#}0&%#0&#0&4#0&#0&##0&-#0&,#0&#] & #08&J#0@&3#0H&F#0P&m#0X&L#0`&b#0h&] #0p&1#0x&#Z&58#:&C#0& #0&9"#0&W#0&!#Q&q2#y&;#y&e%#Z&.#]&)#Z&#0&A#0&&#0&(#y&q#L0&`7#0&.#0&x$#;0&#y&0#L0&2#L0&,/#]&)#0&a,#^&!# &I #:p&#Gx&#rG&7#rG&##:&<*#y&H #]0&#0&#0& #0& #0&7#x&#x&#l&+#l'Ian# ]0&6# ]0&< #]0&<#]0&(#]0&+#[&}#Z&#3&#!^&((##n0`&z#%]0d&#'Yh&6/#)0p&-#+L0x&W#,rG&#.rG&Y&#/rG&{5#1rG&#3rG&1#6Z&#7&#8&#9]0&`.#:0&s#;0&0#=0&'#>0&-#F0&^2#G0&##L(\&E$#N0&#SS&{#Wy& #Y0&+#[Z&/#\0& #a0&#b0&%#c0 &@3#d0 &+#f0 &#g0 &%#j0 &+7#k0( &~#l00 &(#m08 &#n0@ &-#o0H &$#p0P &b##r^X &5#s'^ &4#t'^( &H*#u0 &'#v0 &(#w0 &'&#x0 &t#y0 &#z0 &#|0 &%#}B &*#~ &s#7^ &7#0 &.#0 &6#0 &#,#0 &@#0 &S2#G^ &#0 &A0#( &#0( &.#00 & #M^8 &#rG@ &a#rGH &_-#S^P &&#0X &#0` & #3h &0'#Y^p &E#Y^x &4#0 &#0 &G4#0 &1##0 &#0 &#0 &#\ &,#0 &$#0 &4# &)#)Y &##)Y &E#)Y &"#LY &} #YY & #Y & #0 &r!#0 &E#0 &) #0 &#0 &}#0( &-#_^0 &7#]8 &:#s\@ &2#a] &5# e^ &## y &x#X &w#"k^ &7#-`G &#/ SVO $$sv$% &$( !$]0 $]0 ${4AVP %av$Q% &$-8 !$]0 $]0 $7HVQ ]%hv$% &$8 !$]0 $]0 $38CVR %cv$% &$7 !$]0 $]0 $#7NaS %?$?&&$}6!$]0$]0 $N9GPT K&gpP% & 3% 0 % lG -,% : !% ]0 1% ]0 .% 0 +% 0( W-% :0 % 08y,%E@7!%E@ !% a:HGVU 'gv$G' &$7 !$]0 $]0 $6 io$'&$H9!$]0$]0 $8^W ' `"?'#"CR2`"`(Z" 0" 0X," ;0C" L0=" L0K#" L0 )" Q*8" P@0" t" L0(&"Q0"Z m( 0&( "& : !& S 0& ;0 m7& ` _& 0 q&  & 0 +& Z(XPV[ ( xpv $7)'$0 $g:$$: b D) 6(' ) '' 0 ' g: +'  4'  "' 0 c ) X () '( 0 (g: %( [(d )0$4R*'$50 $5g:$5$5:4$6: $79(e _* u7h) #+ ')0 )g: ) )H z&)0 *)9H( )[H0 )}H8 !)Z@ )HH N):P /)]0X ):\ .)L0`h 0+$^;,'$_0 $_g:$_$_;4$`: $b6( 8$o4;0d$$q L8$r L@$$s LH92$t ZP($u 0X$v Z`u3$w 0hG-$x Zp $y 0xZ+$z `${ 0"i M,;, @& , y& S 3& S & S 1& S 0& S C6& S( /& S0 k& S8ANYj ,(any-)%  ()0)_10)0)0)e0)t0)Z) [)\/ L0) ]0) L)S X)1 )' 0) 0)1 1,{-4|X1}G~ (Ql .+0e."X Xq  XX}X .X(< m r.U($b.\)$c0b$dX#$e14$f1$g0 q . Z*/ *  *&G *' ]0 ]**( ]0PADr %s 0/ ,(*+/ Z*,  *-G *.  */rG *0 ]0 t / 0*L0 7*MZ ,*M0 F2*MG i**M]0 &*M]0 ,"*M]0 3*My$ $*M0( *M0)I8+SU8+-0I16+f*0U16+9;0I32+yL0U32+E]0*]0 i0~0+s02+~0+< ]00(0!)w 66y $000&%Q%011(`1 6,12 a,3y *,6 Z ,7 Z ?/,8 Z ),9 Z $,: Z( ,; Z0 ,< Z8 ,= Z@ ,@ ZH E,A ZP  ,B ZX &,D2` 74,F2h &,Hyp ,Iyt !,J x +,M9 Q ,NS ,O2 z.,Q2 I5,Y -,[2 ,\2 5,]2 ,^ ( 5,_  !4,`y ,b26-1,,+b21 `2 L2*22 `3 L.32&.3 .3%/ y G3+<3/G3%/ y/G3`0<|3de0>3p30N317&2312 L0!2 Z!2 0!&2 0&23HE$4he( :4 q-($ 6 (% a: v()_NHEK$F4hek (-{4 '(.]0 (/L0 --(52 $4$Z$LY$X$dY$0`$}63$0$6$6y $6 3}6 '30 3g: 3 3< X3m= J33<( f!300 l33]08 3@ 3H 3P W13s=X "3]0` g13]0d *3(h 3]0p 8%3]0t 3y=x  3[ 03Z 930 D#3 63 n 3 ,333E$3E  3:463?&3 $7$Z$LY$X$dY$0`$}63$0$6$6y $6) $7$Z$LY$X$dY$0`$}63$0$6$6y $6R* $-8$Z$LY$X$dY$0`$}63$0$6$6y $67) $8$Z$LY$X$dY$0`$}63$0$6$6y $6)-$H9)$Z)$L)Y$X)$d)Y$0)`$}6)3$0)$6)$6)y $6#+-$9)$Z)$L)Y$X)$d)Y$0)`$}6)3$0)$6)$6)y $6.#$:)$ d)3,$ 0)p)$ 0)L6$ 0.14$a:)Z#$ L))$ X)5$ a:)$ 0:4.7$:)~$ :)$ `(-$:)$) $Z-$5:)$5) $5Z*$: ]0:1:%:.-$_4;)$_) $_Z-$lY;)@!$mY;)1$n (; 4j;+_;!4j; 3; b30 3 0 )3 ;03{; (3& < 3'  3(  3) 0 3* 0 Q3+  Z3-3< {-3. 0 J3/3< ;C< L *3:x< 3; #end3<  3C *3DC<%< 3<3 3Z Qh3h= 33= 3> 3Y> N03s>  3> {73>( 3>0 43>8 3!?@ R"3E?H Z 3s>P 03j?X 33?`<h= <x<34 43= +3 [ 3=&3=/<=10]0=/L0>1<ZZZ0(]0=/ZS>1<0ZZi0S>=!>/0s>1<_>>1<y>>1<X00>>1<X0>$>>/L0>1<>X0>/0!?1<00i0>/0E?1<>i0'?/(d?1<d?e.K?/<?10y0m=<?]0]00p?0P3h J@1rex3i J@,3jP@93l003nZD#3o  63p (n 3q 0!3r:81pos3s @3t 0H=*3u?0 3| @ *3}@43~@@3%A 3 ZV@ x3@V3 y 3 Z1u3PuF@"3\%A3]CG&3^%Ax&43^"%A@'3c@3 L003^A23@03 A23@3 ]08%3 ]0 1cp38A0 3A23@3 ]08%3 ]0 1cp38A3A;0@3B23@3 ]08%3 ]0 1cp38A&3 ]0t3 03B 1me3A( 3 B0 3 ]08P3 ;0< 3 ;0>;000@39C23@:3@O&3$@ 3<1cp38A t538A$3]0(1B3A0 3Z803{C23@K.3 L0(3 L0 1me3A0 3 C23 @;3 @-3  0x63 Z03C1val3 y083\D23@:3@1me3A1B3A1cp38A  3 0$M 3 y(3" y,x3# Z00(3&D23(@ 3)@1cp3*8At53+8As3, Z>.3- L0  3. L0$0`31E233@1c134 y1c234y 1cp358A36 ]08%37 ]0 (38 L039 L0  3: 0$1A3;A(1B3;A01me3<A8 23=E@0 3>EN 0E L 0h3AuF3B ]01cp3C8A3D ]08%3E ]0 1c13F y1c23Fy+3G Z3H Z 3I y(1min3J y,1max3Jy01A3KA81B3KA@ 23LEH0 3MEV-h36G)'3+A) *3 V@2yes3EA)p 3 ^A)3A)#3A)3B)Q%39C)%3{C)o3C) 3$C)933/\D)3?D)' 3NE 3Q@ 6GSG L 3_@b5KLG'**!G )*"G k*# G q*$ G#// *G1* G?*%GG~GG/ *MH**M0.*M: )9H) )Z )[H&)0), )}H)0G); )H&)0/)a: )HV) ;)( ! HF5!rGsv!0iv!Luv!Xu/!H/0I1IH-!QI)!0)1! rG)H !0-! vI)! 0)"!  rG u061I  63 Z !64 Z R.66  267  6+68 Z 69 Z /6: Z( # 7*!J !#7, Z r7- Z 7.  .7/ [*8HJ #8MJ$8VJ$ 8[J$'8bJ$ 8i`$8nJ `J3L `J3L `J3L `J3Lw 4H9+JK 9- Z ! 9. Z  9/ }90 91 u92( j+940 968 698L@4P:h Nk:jZ7:k  :qN:uZ:v  z:yI(:zZHW0:{ P:}NX: `:Z: B:N,:y:Z- : ):{ k&:Z: s#:"N>':y2:R &4:Z&c: &>:(N&:vI&:ZH&1: P&r:.NX&: `&J!:Z&%: & 7:4N&:J&:Z&: &::N&c:@N&: &:@N&%:FN& : &- :FN &$:Z(&: 0&':Z8&5: @&$: yH!JI { R vI J  ::JK0 (&N+('0+((  l" N 4"!N 0""K O"# y 4"$ 0 "%;0N{ "(N"N/(N!("'SO"( 0"* G1cv"+ :3&"- L0'4". 0 4("3O"4 0"6 G1cv"7 :1gv"9 0.": 0 0"uP"v 0j"x 0D""y 08"z 01cv"{ : *"|P(N-"2P2svp" 02gv" 00"XP1ary" 01ix" L0"~P5*" L01ix" L0"P1cur" L1end" L0"P1cur" 01end" 0-" Q2ary"2P) "XP)+"~P)0"P50"`Q" `Q-!"P%"0*"P" G("s*"Q>4"0`&" 0-0"Q)Q "N)-"SO)"O)4." Q)#"fQ3X"R0" 0" 0" ;0d" L0" (" " Z" 0 }("  0( "  Z0 "  Z8)"  Z@5"  (HO"<P-`"@R)"A')3"BQ0)0"ZS " 0+"ZS"`S /"`S" L0 " L0$" L0(O" L0,'R""R/yS10:sS/]0S10:S/yS10:0L0S/yS1:d?S;,; BT#val; 3 ]; f =; L0 J ; : ;T (;T ;T ; 0 ; Z V4; Z ; 0 NTK; NT 5;"nX (;&nX c+;'3 q";(y 6;+y *;-y ;.tX L;/tX(#ps;0tX0 (;4 L08 ;5 L0< ;6 Z@ ;7 ZH ';8 0P ;9 0Q z;; 0R n%;< 0S q;= L0T ;> 0X (+;? 0` ` ;@ 0h ;A ;0p ;B ;0r ;C L0t ;D 0x ;E L0 ;F L0 ;G X 5;H X 7;I0 j;J 0 D;K ;0 !;L L0 Q);M 0 &;N 0 ;OzX ;P 0 ;Q Z 3;T Z 3;U Z ;V Z 97;W Z ;X Z ;Y Z ;^ 0 );_ ;0 k ;` 0 L;a 0$$;b 0$;c 6$6;d 0$;f X$y;g X@$+1;h 0T$f ;i 0U$E);j 0V$c;k 0W$D,;l QX$;m `$5;n 0`$#;o 0d$.;rLh$C7;sLp$;t`x$;v0y5 ;xEx52;yEx5T;zE x5G+;{E x$ ;}0{$H;~ 0|TBTT 3X L L0X L 5;T-XXX?1$X4$XXWQYYY/y)Y1*R6Y` H,` L`> ` %0a LaN a 0-a+"ab-ac-ad-ae-a"f-a.g-a-Za2nvZd2u8Zaa 0a L#Za-[a2nv[d2u8[aa[a9?-a8E@J>b77K7D77e7zV@Q b@YVb @[b @\b#use@]E @^E 8@_>b 9[@`b@ZbJba8E@Jc7>797,97*;7~97{=7:7>78 7|< 7y; 7p> 78 7<7e:7;787<7:7;7=P:@bb8E@c7\>7A;7i87<7O=7>7>7d=7; 78 <@\c8E@c7c7*7/7ɰ@cs@ c s@d 4@ ,d R@VcmF@&dccα@>d ͱx@*e 0@( @JcR@VcF=@*fU+@*f Q@g(4@*f0@*f81doc@h@W@hHv<@ cP1def@ cT @ VcXS@ d`Қ@ Vch %@Vcp@6e2d>8x@*f0@(@JcR@VcF=@*fU+@*f Q@*f(4@*f0@*f81doc@h@1ns@kH @bP;@lX9@k`%;@(h@9p=@9r@(x0f=@/h0@0(@1JcR@2ZF=@3*fU+@4*f Q@5*f(4@6*f0@7*f81doc@8h@@@;yH*@<yL8@BgP9@CgX<@Dk`@EVch@FVcp1ids@G(x{@@H(1URL@IVc<@Jyu@Ll%;@M(n;@Ny;@Py%g>d9E@h7|7_7fW7j@h9E@"h7Q|7V7nA7bWA@'h5@0#i40@2vi@3hZ@4hR@5 Vc1c1@6 i1c2@7 iQ@8 i Қ@9 Vc(V@1ihi9E@Bi777o7X7@Hi'Ai&MKAii:<:Ai:;AjiC<Aj=Aj@X:jp@Z k0@[(@\JcR@]VcF=@^*fU+@_*f Q@`g(4@a*f0@b*f81doc@ch@@eiH @fviP%C@g*eXҚ@hVc`@jih @Yk-j}8@vJc<@:k<0@k4@k@ k>@VcҚ@Vc0@(  @h(@k-k:k=@0f$T@kk\<@k[<`@l0@(@JcR@VcF=@*fU+@*f Q@*f(4@l0@l81doc@h@1ns@kHv<@cP%;@(Xs@lkk?8@Cl<CKm}DQm }DSm FDT y ODU y ۭDVlmkDRmmk`DpzhDpǨDp^E?n.n ]Egn#lowE9 &E 9vE#xngn vE%n#lowE&E &E'E{rE*!nn zrE,n ^{E- y ]E. y "WE/n &}E0n:nsnEP!nLE|!n8pE!nlE!nE!n*E!n 4Wo LGo9EWowXFE bo+toRF8o_F9oaF:o S GCo yGDl  GEl GF y GG y GH ySGoRGpo:yp;SlUdyp?yl@4l:|y=pA[|"l++BpCUsD{Q^ qA'^&b++AGZ^9lD,>,=F=`l,,Ee~qCUvCT}CQ1FnE|qCUvEqCUvCT !CQ1BCUvCQ|:=lprAy=!l,,AGZ=2lh-^-G`r=Rl--Em}rCTTCQ1CR1B CUhH\l`sAyl..A0Vc..IҚbP=b3/+/Jretl//JnskB060ĚWsCUvCTsCQ0EݞٌusCUsCTPEsCTvE ̌sCUvCTsK0sCUsK_sCUsFn:vkxtA %l00AҚ'bh1Z1A>8b22Jnsk22E utCTsCQ|EtCU}LXCUUCTQCQT:muMn'l22AB3b]3Q3ARCb33Jrvm4y4N@uJcldl5 5EL[uCUvEesuCU|Ey!uCU}CTsB.CUsLuCTQ:ϯm{{vMn%l^5X5AR1b55Jrvm66Jcldl66E!NvCU|CTsEȜfvCUvBٜ.CUsDj|vMnl66Mval*b77F0;F=HOjU:RbxMnlz8j8=Xb39+9G_w=l99P='"b99EbwCU}EnwCU|F{EțwCU|CQvCR0CX0FޛOJO_:NlYyAPNl::A#GN0l::=Olk;c;=4Ol;;JparO*l7</<=$O6l<<ExCU}CTvE~xCUvE1g|xCUCT}EjU!yCU}CT~CQ|EՀ9yCUsFEUjyCU}CT~CQ|EՀyCU}Eۚg|yCUCT}BCU ":ZDl,zADl+='=AElh=d=AβFl==O,z>`lsz?l?l?βl@$l:.YlN:|Al==Mnew.l>>Mold>l??Q$l=lD@<@E:~{CU|CTsEM~4{CU|CTsErm}V{CTsCQ1CR1EUn{CUsEÖՀ{CUsEؖ~{CUsE:|{CU|CTvEg|{CU|CTsR:|{CTQF%g|E;:||CU|CTvBNCU H">rlg|?lSold-l>]Zql|?ql?rl@$slTUc1l:bm}Ayl@@=ҚVc3A#A=RVcBA=bCzCO@FEb_}CT 'Ob:+l~MdoclCCAy*lEDA4yEEA~>y6F F=l6G GE5~CUsCT|CQ1E{ȍ:~CUvCT|EՍR~CUsE~j~CUsBؒՀCUvDE0~Ayl HHO>ݰy~Scurl?RL,l>]yScurl?RL-l>ƥryUScurrl?RLr)l@ȯsl:.j8yMcur8lxHlH;Dz8-lT;8@lQJc1:lIIJc2:lIIJp:%lJwJ:xlՀMdoc&lJJA24bbK\KAײ?yKK=g y3L-L@lEŽCUvCTsCQsCRsCXTCYwFԎ;EǀCTvFVo0PPWSlL~LXwk`EXP5CUUCTwFfFVnЌ]܂WSlLLWw-nXMLMNPGYnskMME(8ʁCU|E=CU|FFčEٍ8CU|F E9CU|F'GM3Yele kCNANZGZlhNfNBk܂CUsCTv[ZlNN\ CUsCTvV6WGZ lNNWw1nPODOZSlOOPYns kJPj|YYE`m}`CTsCQ1CR0EU}CUsCQ0E~CUsE̔ՀCUsE@ՀňCUsBfUCUsCQ0E,~CUvCTsE?~CUvCTsBvCU  "e:|t̉fL|YYfY|EZ9Zo:|`fL|ZZfY|[ [E~CUsBՀCUhe,zP+f>z[[fKz]\fXzS^7^nezq,zfXz_y_fKz_`O`f>za aPjezaaE~CU|CTsEŗ~CU|CTsEm}ŊCTsCQ1CR0EUCUsCQvOg|EՀCUsEĘU&CUsCQvEՀ>CUsE0~VCUsEGUsCUsCQ0E_UCUsCQ0B{CU p"F@#FK0sYsCT !epРfpob[bnptp~ipPjpJcFcE"=PCUvE*hCUsBxJCUsFVpOepu||@vQQ?Uu<<@{u@u@ug@g@@utt@wPPvaFaF?Nu~~@v__?@uZZHuDu,,@u@@@au@0vTT?Wu@u^^@unn@vhh?)uP\P\Du1l1lIu@u@uXX@<u[[Ju@u@urr@utt@uCV)uCfu@9uFF@ u J(I 0%0;-intN   l $"h #p #$x %' -    U -  *! h/ %/G%')4{2-4"4R-8 -64!-Z-Z?+NZY(ZZFZ~'Z4!Z $@Oy'l[(  z T3 z - -n, ci   Q,  q !!3 R  T# 4 U# ] V/( vn y. xN  y4  zN [ |4 2 N > N 8 N $ 0o 14( C c E* F G Z  -'5$ H  B U a- Z -U!L h2' ( N@ L)H \ -m$SL NX6 ;7h8 0: !;y? A N B N CG  0I !Jy K Ok 0Q !Ry S N 6T %Ua c ; #d ;^ekga Y 20[ ; ]N G&h l 7nZ "o Nt7 Ov ; /w N x4 p3@5<Y.D_rtL.V +i8pd3y N -$  %& N f( N (* N v0 N ,{ 7|N;   9 -@) 9 9e -!e"$-62 N.7 N8; NZB ( + 6   -  )    " s+- -7 gB BL- 0 )B  -'  ) W W!e 2B p5   N    "# # - ($8 8 B 0M M W 2b b l Zw w     2 G     (  =  R  g  |  A-B V! '{|  | 3 4  -  -  -5  N  )  / -5. 40 m /+5  = 4> m@ y b"A  vC N$ E m( ]J 0 ,N8 P @ [H m(\X ]h 'j x ! - - -26 b( Np Z46 d( Nr Z Nr 4b 36 N X7 N : b --,.-=,   - Z3 e N 1  b d - e e fN gN $h e \ 2 -j5 e Nu( -hD F -)G e;6HN:0  32  ( / !   - %E ' 32( ) (*/ + DIRQ -IV vZUV w-NV Ez_! N / BOP 1 op(" D"\1 K"\1 "4J >"H)#"4  ) "4 ,"4 "5"4 ""4 2"4 "4 +"4 7"0" f"0#COP 2  copP#yD#z\1K#z\1#z4J>#zH!)##z4  !) #z4 !,#z4 !"5#z4 !"#z4 !2#z4 !#z4 !+#z4 7#z0"f#z0# #}0$I#H(3# -0# 08# 0< #P@&# PH\ 8 `", D"\1 K"\1 "4J >"H)#"4  ) "4 ,"4 "5"4 ""4 2"4 "4 +"4 7"0" f"0# " \1( R+" \10""H8,"0@" @JH"rJPx%" \1X" < 95P"jD"\1K"\1"4J>"H!)#"4  !) "4 !,"4 !"5"4 !""4 !2"4 !"4 !+"4 7"0"f"0#" \1(R+" \10" \18" \1@" \1H G w"? $ t'$#?1#Iop$$\1 =($%?1 $'?1 s4$(?1 $*^( <$,00 $-04 .5$/^8 $00@ $10D $3?1H A1$4KP Z$5KX "$6K` $80h w$:^p 2$<^x $=^ 7$A0 $Cb U*$EV1 $H:J ,$KqA $LqA L'$Nb1 3$Ob1 2$^0 $`0 6$a0 &-$bJ1 i"$n0 <&$u{0 3$zV1 h${V1 l'$}R {$~P1 ,)$^ ,$P1$3$V$-$41$$41$$qA$$^ $ $^($ $H0$6$$8$$$P$E $$h$#$/$ $/%ISv$41$7$^$d)$V1%Ina$$$ $ $ $u $J1 $$41(%Irs$410$$J18$$J1@$$J1H$ $P$:5$41X$3$41`$0$41h$e $\1p$d$)Qx$$)Q$:)$O$$41`$d/$7h$ $\1p$0$\1x$F$V1$x"$J1$ $J1$1$-$$$Y%$0$1$0$ $b1$$b1$*$b1$$41&$^&$]&$/]&2$=D^&-$?e&5$@-&}$B0&0$D0&$FN&R$IN&\$Je & $KJ1(&H$LJ10&-$MJ18&$N-@&.$OH& $P41P&7$Q41X&$T41`&$U^h&/$Vp& $Xb1x&2 $Yb1y&; $Zb1z&) $[b1{& $\b1|& $]b1}&$^b1~&Y$_b1&$a-&$b41&$dW& $f0&$h0&$l0&J1$oN&$p_&b$sJ1&$tJ1&$uJ1&-$vJ1&D $wP1&6$zJ1&0$}J1&%$J1&$J1&4$J1&$41&#$41&-$41&,$P1&$_ & $V18&J$V1@&3$41H&F$P1P&m$P1X&L$P1`&b$P1h&] $P1p&1$P1x&$-&58$<&C$\1& $\1&9"$\1&W$\1&!$R&q2$N&;$N&e%$-&.$_&)$-&$P1&A$41&&$41&($N&q$0&`7$b1&.$b1&x$$0&$N&0$0&2$0&,/$_&)$V1&a,$"_&!$ &I $<p&$Hx&$H&7$H&#$<&<*$N&H $0&$b1&$b1& $b1& $b1&7$?&$?&$3&+$3'Ian$ 0&6$ 0&< $0&<$0&($0&+$e&}$-&$ 4&$!(_&(($#0`&z$%0d&$'#Zh&6/$)41p&-$+0x&W$,H&$.H&Y&$/H&{5$1H&$3H&1$6-&$7B&$8B&$90&`.$:0&s$;b1&0$=0&'$>b1&-$Fb1&^2$Gb1&#$LI]&E$$Nb1&$S;&{$WN& $Yb1&+$[-&/$\41& $a41&$b41&%$c41 &@3$d41 &+$f41 &$g41 &%$j41 &+7$k41( &~$l410 &($m418 &$n41@ &-$o41H &$$p41P &b#$r8_X &5$sH_ &4$tH_( &H*$u41 &'$v41 &($w41 &'&$x41 &t$y41 &$zV1 &$|V1 &%$}C &*$~ &s$X_ &7$0 &.$b1 &6$b1 &#,$?1 &@$?1 &S2$h_ &$P1 &A0$; &$?1( &.$P10 & $n_8 &$H@ &a$HH &_-$t_P &&$V1X &$V1` & $4h &0'$z_p &E$z_x &4$41 &$41 &G4$41 &1#$41 &$41 &$41 &$] &,$P1 &$$P1 &4$Z &)$JZ &#$JZ &E$JZ &"$mZ &} $zZ & $Z & $V1 &r!$V1 &E$P1 &) $V1 &$41 &}$V1( &-$_0 &7$_8 &:$]@ &2$^ &5$ _ &#$ N &x$Y &w$"_ &7$-H &$/ SV O $$sv%% &%; !%0 %0 %w5AV P %av%[% &%)9 !%0 %0 %8HV Q g%hv%% &%9 !%0 %0 %/9CV R %cv%% &%8 !%0 %0 %8Na S &?%I&&%y7!%0%0 %J:GP T U&gpP& ' 3& 41 & H -,& < !& 0 1& 0 .& V1 +& P1( W-& <0 & J18y,&4@7!&4@ !& ];HGV U 'gv%Q' &%8 !%0 %0 %7 io%'&%D:!%0%0 %9^ W ' `#?'##CS2`#j(Z# 0# 0X,# 0C# 0=# 0K## 0 )# R*8# qA0#K t# 0(&#R0" Z w(0'( "' ; !' U 0' 0 m7'  _' 0 q' K ' 41 +' -(XPV [ ( xpv %A)'%V1 %c;%%;_: \ N)U8(%)'%V1 %c;%%;4%;  b )6(( ) '( V1 ( c; +( K 4( K "( ?1  c  *X )N* ') V1 )c; %) [) d [*0%4*'%5V1 %5c;%5%5;4%6; %7:( e *u7h* + '*V1 *c; * *8I z&*V1 **ZI( *|I0 *I8 !*-@ *IH N*<P /*0X *<\ .*0` h +%^,'%_V1 %_c;%_%_0<4%`; %b7( 8%oU<0d$%q V8%r V@$%s VH92%t -P(%u J1X%v -`u3%w J1hG-%x -p %y J1xZ+%z %{ 0" i ,,@' /- y' T 3' T ' T 1' T 0' T C6' T( /' U0 k' T8ANY j <-(any (.)%  ;) 41)_1 ?1) J1) P1)e V1)t \1) -) e)\/  0)  0)  V)S  b)1  Z)'  b1)  1)1  1, {a.4 |Y1 } ~ ;Q l n.+0 ." Y  bq  b Y} Y . Y(< m .U(%b3/\)%cP1b%db#%e~14%f~1%gP1  q @/Z+/ + K +&H +' 0 ]*+( 0PAD r % s /,(++/ Z+, K +- I +. K +/H +0 0  t /0+L{0 7+M- ,+MV1 F2+MI i*+M0 &+M0 ,"+M0 3+MN$ $+M0( +M0)I8,;U8,/0I16,N0U16,0I32,N0U32,40*0 00+02,0,< 01;  1!) w 66 y u $41 41?1 ' % [% b1~1~1; j n1 6-13 a-3N *-6 - -7 - ?/-8 - )-9 - $-: -( -; -0 -< -8 -= -@ -@ -H E-A -P  -B -X &-D*3` 74-F03h &-HNp -INt !-J x +-M Q -N; -O63 z.-QF3 I5-Y  --[Q3 -\\3 5-]03 -^ ; 5-_ B !4-`N -bb36.1,-+ b %3 1 F3 - 3 * L3  W3 r3 --N3;/3 3&/3 /3%0 N 3+303%0 N03`1<3 de1>4 31N4 27#&3j413 0!3 -!3 \1!&3 J1&3,4.4%4////3/s0/)/$!//,/? /6 /g / / // /~4%v4HE%5he) 65 q-)$ 7 )% ]; v))OHEK%B5hek )-w5 ').0 )/0 --)563%5%-%VY%b%nY%41`%y73%?1%7%7y %74y7 '4V1 4c; 4 4= X4> J34=( f!4V10 l3408 4K@ 4KH 4P W14>X "40` g140d *4;h 40p 8%40t 4>x  4e 04- 9441 D#4K 64K n 4K ,4K344$44  4< 5 7 4 I& 3%8%-%VY%b%nY%41`%y73%?1%7%7y %7 N*%8%-%VY%b%nY%41`%y73%?1%7%7y %7 *%)9%-%VY%b%nY%41`%y73%?1%7%7y %7 )%9%-%VY%b%nY%41`%y73%?1%7%7y %7 )0%D:)%-)%V)Y%b)%n)Y%41)`%y7)3%?1)%7)%7)y %7 +0%:)%-)%V)Y%b)%n)Y%41)`%y7)3%?1)%7)%7)y %71#%;)% n)3,% V1)p)% 0)L6% b1114%];)Z#% V))% b)5% ];)% b1 6517%;)~% ;)%  j(0%;)%) %-0%;)%) %-0%5<)%5) %5-*%: 0<~1< % < 3/0%_U<)%_) %_-0%lz<)@!%mz<)1%n ; E 6<+<!5<4< b40 4 0 )4 04< (4&,= 4' K 4( K 4) 41 4* 41 Q4+ K Z4-T= {-4. 0 J4/T= <d= -*4:= 4; K#end4< K 4C K*4Dd= %=4=4 4-Qh4> 34> 4 ,= =4544> +4 e 4> K&4>-=>~1:10 >-0 B?-41?~1= ??~1= ??~1=0:1 ??~1=0? $? ?-0@~1=?0 ?-41B@~1=:1:10 @-41f@~1=?0 H@-;@~1=@ . l@-=@~1E1N\1>=@00 b1 @2P4h kA3rex4i kA,4jqA94l4104n-D#4o  64p (n 4q 0!4r;83pos4s K@4t 0H > *4u@2 4| A *4}A44~B@4FB 4 - wA x4BV4 N 4 -3u4PG A"4\FB4]dH&4^FBx&44^"FB  B'4A4 024B24B24 B24B4 08%4 0 3cp4YB2 4C24B4 08%4 0 3cp4YB4C <2@4C24B4 08%4 0 3cp4YB&4 0t4 b14C 3me4C( 4 C0 4 08P4 0< 4 0> 0 02@4ZD24B:4BO&4$B 4=3cp4YB t54YB$40(3B4C0 4-824D24BK.4 0(4 0 3me4C2 4 D24 B;4 B-4  41x64 -24D3val4 N284}E24B:4B3me4C3B4C3cp4YB  4 b1$M 4 N(4" N,x4# -02(4&E24(B 4)B3cp4*YBt54+YBs4, ->.4- 0  4. 0$2`41F243B3c144 N3c244N 3cp45YB46 08%47 0 (48 049 0  4: b1$3A4;C(3B4;C03me4<C8 24=F@0 4>FN 0F - 2h4AG4B 03cp4CYB4D 08%4E 0 3c14F N3c24FN+4G -4H - 4I N(3min4J N,3max4JN03A4KC83B4KC@ 24LFH0 4MFV0h4WH)'4LB) *4 wA4yes4fB)p 4 B)4B)#4C)4C)Q%4ZD)%4D)o4D) 4$D)934/}E)4?E)' 4NF 4QA WHtH - 4_ Bb6K- Q'+K+!H )+"H k+# H q+$ H / /+H1+ H?+%I H H I /+M8I*+MV1.+M<*ZI* *-*|I&*\1*/-*I*\1G*$<*I&*J1/*];*IV**<*;" JF5"Hsv"41iv"Vuv"bu/"I-\14J~1 %J J0"rJ)"\1)1" H)H "J10" J)" \1)""  Hu071K  73 - !74 - R.76 y 277  6+78 - 79 - /7: -(# 8*BK !#8, - r8- - 8.  .8/ e*9HK #9MK$9VK$ 9[K$'9bK$ 9i$9nK K5- K5- K5- K5-w4H:+kL :- - ! :. -  :/Z }:0Z :1Z u:2Z( j+:4Z0 :6Z8 6:8-@6P;h 1Ok;j-7;k B ;q1O;u-;v B z;yK(;z-HW0;{ BP;}7OX; `;-; BB;=O,;N;-- ; B); k&;-; Bs#;CO>';N2;\ &4;-&c; B&>;IO&;J&;-H&1; BP&r;OOX&; `&J!;-&%; B& 7;UO&;K&;-&; B&;[O&c;aO&; B&;aO&%;gO& ; B&- ;gO &$;-(&; B0&';-8&5; B@&$; NH BK K   \ J  K   :;kL \1)&O+)'41+)( Bl# O 4#!O 0#"\ O## N 4#$ b1 #%0 O{ #(O#P /(  P!(#'tP#( \1#* H3cv#+ <3&#- 0'4#. P1 4(#3P#4 \1#6 H3cv#7 <3gv#9 J1.#: J1 0#u)Q#v \1j#x 41D"#y \18#z 413cv#{ < *#|)Q( O0#SQ4svp# ?14gv# J12#yQ3ary# P13ix# V2#Q5*# 03ix# V2#Q3cur# V3end# V2#Q3cur# 413end# 410#,R4ary#SQ) #yQ)+#Q)0#Q50#R# R-!#/Q%#41*#Q# H( ,s*#R>4#\1`&# 4100#R)Q # P)-#tP)#P)4.#,R)##R 3X#S0# 0# 0# 0d# 0# K(# K# -# 41 }(#  41( #  -0 #  -8)#  -@5#  ;HO#=P0`#@S)#A')3#BS0)0#{T # P1+#{T#T /#T# 0 # 0$# 0(O# 0, ' S"#S-NT~141; T-0T~141; T-NT~141;410 T-NU~1;@ U ,< cU#val< j4 ]< N =< 0 J < < <%U(<U <U < 41 < - V4< - < 41 oUK< oU 5<"Y (<&Y c+<'j4 q"<(N 6<+N *<-N <.Y L \1X (+&1>(~1{ >-'1f>1b1z)>4b1#>K 4c0>L 4j>X1C>[_Q5>\N.>]N>aV!'>e13>f1J>i# >1>16>NV >N&>Q^(>V1S >bc>1>$>b1 /a ->a' 40Z 60Z a -a/?a ,b -b? b 01b -!b N 1b i1Nb+Cb bNb cNb dNb eNb" fNb. gNb0 Zb4nv Zn4u8 Zbb 0b -# Zb0 [ c4nv [n4u8 [bb [ c9@/c%A&8c$@B}c B~; {BU B ]BC 'Bm #rawBm( sCB N0 B N4 nB-8tAc ,cA# chC6d#bufC8c .C: C; H/C<n#curC=n #endC>n( ]C? N0 C@ N4#colCA N8 nCG-@ 0CH yH CInP CJnX *CK N`#idCL NdYA$d c\BA&d[BCi#saxCz [C; ;Cu CN ĠCN Cn Cn( *CN0 JPCN4  Cd8 ՜CN@ CND SvCzH yCuP FCNX OCN\ ۭCx` %VC Nh ?Cyp NC N C N v@CN JOCN S(CN rCN lCw${CKz$sCN$C-$RCn $CN($3RCN,$?Cz0$]CZ8$[CZ@${CNH$b?CNL${CNP$CnX$Cm`$ACmh$C_p$NCNx$ ?CN|$C_$uCN$OCd$<CN$;RCN$CN$CN&0C;&ڦCN&ޅCN&WC;&CN&CN&uCs&%Cz&"C N&uC N&'Cn&>iCn&Cn&@CN&<CN&lMCN&ܪCz&uC_&PC_&Cu &{Cu(&5OCN0&dkCN4&3sC$N8&:CC%N<&0JC&u@&C'NH&\vC(wuP&>DC-,vX&QC.z&gC/-&C0-&C3y&~C4N&lC5N&yYC6y&}C8N&EC9-7`A'i d{A)i{ CA%jGCBzÎCCzdCD ziCE zijA*1j i"(LClJCz[Co}1NC|}C}DyCz C){(WC]{0^C{86WC{@C{HH`C |PS}C<|X]C_|`ёCl|hCy|pC|x GC|GhC|yC }C"!}tC.}fHCH}CU}iCb}"CP{YC;}nC{ C40C ;C}LC}&iCwJA0lJD+%m 0D,; D-n RD.n F=D/Ap U+D0Ap QD16q( 4D2Ap0 D3Ap8#docD4r@ D6mH D7mP ]D8NX D9x\ E:D:n` =D;nh D=yp#URID>nx  D?N ID@ N DDx]A11m l.4AJjm//K/D//e/zVAQ7mAYm A[m A\m#useA]4 A^4 8A_jm 9[A`mAZm vm crAim rdQArn m.4An/>/9/,9/*;/~9/{=/:/>/8 /|< /y; /p> /8 /</e:/;/8/</:/;/=P:A n 'c.4An/\>/A;/i8/</O=/>/>/d=/; /8 <AnsA osA6o 4A Ho RAnmFABo o o>8xAA;x Gp=A/r0A0;A1nRA2-F=A3ApU+A4Ap QA5Ap(4A6Ap0A7Ap83docA8r@@A;NH*A<NL8AB6qP9AC6qX<ADt`AEnhAFnp3idsAG;x{@AH;3URLAIn<AJNuALu%;AM;n;ANN;APN AnҚAn0A;  Ar(At  t t=AGp$TAt t\<At[<`Awu0A;AnRAnF=AApU+AAp QAAp(4Au0Au83docAr@3nsAtHv<AnP%;A;XsAu t t?8ANo<Au u=A-J9wfJPwfpJRx [JS ; JTw fHJUw yJXu FJYN OJZN$ ۭJ[x( ^J]40#docJ^u8 S(J_N@ @JbwH JcNP JbJdNT PJewX#amJhLw` ]Jiowh u.4Dx//X/Dt/d/a/l/y\Dx.4D!x/P/&D$x lC4y y(ymZCV#4yZ(CYy yCZy C\- >AC]- C^- NC_- (y N<N=O=q yO>u  O?u O@ NS OC yODu  OEu OF N OG N OH NSOq=O<RO ̀RO ]O$ J{O؀ ON^O {O< $P/YHy 41 ~1?X 41cc@@<JmE=41dc=s#uidadA?ʳuddB>  ~1AClen@? - ee?mEe?eDYNET}DpEU}@DȪETsEQwER2@@ҽ@D7EUsET0@ժ<\41=nee=s/uff> ~1?X 41efafClen @?mffF˼]?4ruggDԇ!ET|ER@@D$ުLET|EQ}G5EU|@@DZUEU|ET0@zժHJ[mU=[ 412g(g=["ngg?X]mhh> ^~1A`Clenc@? d-vhthItsemhh?fm ii@sD~EUsDEU}ETsDȻÅEUsJܻׅEUs@ DȪETvEQwER2@1@@QD\GETv@uժ<϶;410=;nii=;-n+j!j?X= 41jjIenc>~kk@SDkEU|Dz EUs@Dު:ETsEQ| $ &DREUs@KɺުETsEQ| $ &L'mԇM'M'7nNlen'FOenc(~Oret)m<m`uN=<N~klk=%nalGl=%nmqmPlenPanIn?]Cho^o?XmooIinmppIoutmqp@DÈEUvDƸ(܈EUT@θ5D߸B EU|ET}EQ~DN%EU}D[=EU}DUETvDhmEU~DhEU}DuEU|D>EU (&DdEUHET 7$DEUHET @$D EUvD8EUvK͹EUH(zEUvETs@F5DWEU|ETsEQv@cDnhЋEUvDvhEUsD~uEU|DEUvD=EU}ET 7$DbEU}ET @$DzEU}D7EU3KQEU2<>i0M=41vv?Xiuwmw> ~1@J@[@nDKETsEQ $@Dʵ}ETsEQ $@DETsEQ2@@(D8ލET|EQ2@\KlETsEQ2 l~1?Xm 41xxRGn $@ɴ@дDݴEUv@D̫ET0@K٫ETvEQ $ER|HGKN=yK$؀UyMy?Miyy?XN N zzJ3EUsDaEU}KEU}<0:؀X6=y: i_zUz?J{<؀zzJEUHKEU $S;e+`1=y+u?{7{=Q+0؀{{Q~ސETTTU  ސM$ uMQ 0؀V>j uLb;NM؀MQ3؀>؀<41 ='41| |=="41{|o|> ~1@!@.@DȱET}EQ2@رDET|EQ2@KET}EQ2<߳u0̒='41}}> ~1?Xu}}@J@W@DET|EQ2@ذKETsEQ2<9jupÓ='j41~~=?j!NV~R~?Xlu~~?J{m؀~~> n~1@@@DETsEQ B@K ETsEQ2<]@um=y@u]G=@$NaMWXBuT5 QJNET T $0)#QZ&lEU0ETUTe3Tm@<;41po=yuL>= ,؀?؀x> ~1?X 41RH?GՃǃ@@@@˭Xԭ}kETDܭťEUvDEUv@D̫ET0@D!٫ET|EQER}D/EU}@X@iXqv9ET}@@ڮKMEU %<;NJ=y؀|?u? ؀?X N'JEU|JEUs@CJ@MJKaEU %ETsUӳfMyu<;{h؀,Pdochu?Xj؀?ku($DZEUs@L lA؀MyAu>J{C؀Yz\6N@DɪgoET EQ0@DgET EQ0@DʘETvEQ2Tt@%D6gET EQ0TLtZ>(p#?[*41e_?+u@DgET EQ0@@Xǩ}ET~@ΩDߩgET EQ0@D g#ET EQ0@D%MET}EQ2D4lET @G@Y@uKgET EQ0_J{%؀`R mD1ݝEUU@B@[Xd}ET~@kD|g?ET EQ0@DgpET EQ0@D§ET}EQ2DԧET|EQ DמEU|@@@D&g"ET EQ0KAMEU x%c _m";@<_R:n}y]EUU^E0Pb_J{#؀`R malp0aWDjEUsDub'EUs@@X~XET@DgET EQ0@ޥDgET EQ0@D ET~EQ2DET|EQv@#@5X>~3ET}DFKEU|@eDvg|ET EQ0@DgET EQ0@DĦgޡET EQ0@ϦDߦETvEQ2@tDM4EU 0%@K gET EQ0^00_J{#؀֌Ќalp0" KBEU@^m;Ndptr;KEavbe N `R maiN KEU:^nФ_J{&؀OKKMEU % ub dr!u@G@aXj}ET~DrtEUsD>EU #DʬhEUsET EQ0@@f|9A_m|(;_J|8;EA_R|Nn~alp~0`y؀ `GKG@ȣť]EU $f~f*ť_X2f"uDtEUsDEU #]֬EUUET0g 5h %5uiR6j;%h(=hhQrBkťТl֥Um Bnť5\֥Bo4"k.\J@o[00 \B0pK8EUsKEUskP\-!q rs`A\B`o #JEU GǫEUHkJuN\XmY[J(\XRJQJEUUTuTeTm] EUUki\\s ttuΐoϐD@ސȨETvDfETvKrETvkސ\Ɩ\D8q rސ\̗֗\NHBo @oDETvK/ETvkC\ߘј\z\1#poƇΚ̚[ '\\aY\țB o)'pƇDtEUs]NETTEQUERQ] EUTvQ`wnn@+v00R xPPvWWR whh@)wQQ@UvRw~~LwގގLvAv^^AwNNLvAvAvAwӝӝLv R1w__@@wKWKWLwLvDDR] v2>2>R vRvyyR wQQS&v``CvJJR vrrAvEEAvuuA5vYYA@vXXA<v1l1lRvAAAvOORw==GwbbGv R w\\Gv R wGwZZGww״״Gw>>GpvttAvFFAv11Avs_s_A3 q!u (0-9%0 0 %-G%'9inty)E{2LE"ERL8 L6E!L-?+yY((F~'4!ee$@O'lG[( L   T3  L Ln,  i   Q,  q S !3 R0  T#0 4 U#0] V /( v y. xy  yE  zy [ |E 2 y > f 8 f $ 60o 1E( C c EB* F G e  L'5$ H ߗ((1 AA LF~ E}E(Ԩ(c Zm  l $"h #p #$x %'$   L @ 44 L l44*!PD-n ~ L U! h2'b ( y@ L)H ~ Lm$S yX6 (7 8% 0: !; ?V A y B y C G 0I !J K O 0Q !R S y 6T %U a c ( #d (^eg YI 20[ ( ]f G&h  lm 7n "o y t Ov ( /w y xE p3@5<Y.D%_rtLV.V+i8pId3ym y L $ c %& y f( y (* y v0 y ,{ |y(co : L@  _!"$_62 y.7 y8; yZB 9 (V +" 6 [. ek L .k)vvs+g - 0" )  -  )W  !q e "2 p5   v N    "   ($   0   2   Z   V {   +  6 q A  L  W  b  m  x   A - V! '{  3 4   L  L  L 5:   ): : -g L 5.8 40 /+5  = 4> m@  b"A vC y$ E ( ]J 0 ,N/8 P;@ [H m(\X ]h 'j8 x SH L _X L26H b( yp 46H d( yr  y r 4 36 y X7 y   -_, ._ =,!:  ! _ Z3!  !y 1!  "b "d _ "e  "fy "gy $"h  " 2" _j5"  "yu(" _h"D"F _)"G ;6"Hy:0#X # 32# #9 (# - #! X eh L #% #' 32#( #)9 (#*- #+ XDIR$-IV%vUV%wLNV%E_& y %/ OP%1 &!op(' D'P2 K'P2 'RK >'I")#'E  ") 'E ",'E ""5'E ""'E "2'E "'E "+'E 7'n1" f'n1#COP%2 #copP(y[D(zP2K(zP2(zRK>(zI$)#(zE  $) (zE $,(zE $"5(zE $"(zE $2(zE $(zE $+(zE 7(zn1"f(zn1# (}1$I(I(3( _0( 18( 1< (2Q@&( 8QH \%8 h `' D'P2 K'P2 'RK >'I")#'E  ") 'E ",'E ""5'E ""'E "2'E "'E "+'E 7'n1" f'n1# ' P2( R+' P20"'I8,'1@' ^KH'KPx%' P2X "%< 5P'D'P2K'P2'RK>'I$)#'E  $) 'E $,'E $"5'E $"'E $2'E $'E $+'E 7'n1"f'n1#' P2(R+' P20' P28' P2@' P2H %G %? %4% t')#32&Iop)$P2 =()%32 )'32 s4)(32 )*_( <),10 )-14 .5)/_8 )01@ )11D )332H A1)4P Z)5X ")6` )81h w):_p 2)<_x )=_ 7)An1 )C U*)EJ2 )HXK ,)KB )LB L')NV2 3)OV2 2)^1 )`n1 6)an1 &-)b>2 i")nn1 <&)uc1 3)zJ2 h){J2 l')}T {)~D2 ,))_ ,)D2'3)'-)(2')(2')B')_ ' )_(' )I0'6)4%8')4%P'E )4%h'#)0' )0(ISv)(2'7)`'d))J2(Ina)')g ' )g 'u )>2 ')(2((Irs)(20')>28')>2@')>2H' )4P':5)(2X'3)(2`'0)(2h'e )P2p'd)GRx')GR':))Q')(2`'d/)~8h' )P2p'0)P2x'F)J2'x")>2' )>2'1)_')'Y%)1'1)n1' )V2')V2'*)V2')(2))`))^))/^)2)=b_)-)?)5)@_)})B1)0)D1))Fy)R)Iy)\)J ) )K>2()H)L>20)-)M>28))N_@).)O4H) )P(2P)7)Q(2X))T(2`))U`h)/)V4p) )XV2x)2 )YV2y); )ZV2z)) )[V2{) )\V2|) )]V2}))^V2~)Y)_V2))a_))b(2))d) )f1))h1))l1)J1)oy))p`)b)s>2))t>2))u>2)-)v>2)D )wD2)6)z>2)0)}>2)%)>2))>2)4)>2))(2)#)(2)-)(2),)D2))$` ) )J28)J)J2@)3)(2H)F)D2P)m)D2X)L)D2`)b)D2h)] )D2p)1)D2x))_)58)<=)C)P2) )P2)9")P2)W)P2)!)T)q2)y);)y)e%)_).)4`)))_))D2)A)(2)&)(2)()y)q)1)`7)V2).)V2)x$)1))y)0)1)2)1),/):`)))J2)a,)@`)!) )I )<=p))Ix))I)7)I)#)<=)<*)y)H )1))V2))V2) )V2) )V2)7)}))}))q)+)q*Ian) 1)6) 1)< )1)<)1)()1)+))})_))5))!F`)(()#1`)z)%1d))'A[h)6/))(2p)-)+1x)W),I)).I)Y&)/I){5)1I))3I)1)6_))7))8))91)`.):n1)s);V2)0)=n1)')>V2)-)FV2)^2)GV2)#)Lg^)E$)NV2))SS){)Wy) )YV2)+)[_)/)\(2) )a(2))b(2)%)c(2 )@3)d(2 )+)f(2 ))g(2 )%)j(2 )+7)k(2( )~)l(20 )()m(28 ))n(2@ )-)o(2H )$)p(2P )b#)rV`X )5)sf` )4)tf`( )H*)u(2 )')v(2 )()w(2 )'&)x(2 )t)y(2 ))zJ2 ))|J2 )%)}D )*)~ )s)v` )7)n1 ).)V2 )6)V2 )#,)32 )@)32 )S2)` ))D2 )A0)( ))32( ).)D20 ) )`8 ))I@ )a)IH )_-)`P )&)J2X ))J2` ) )5h )0')`p )E)`x )4)(2 ))(2 )G4)(2 )1#)(2 ))(2 ))(2 ))_ ),)D2 )$)D2 )4) )))h[ )#)h[ )E)h[ )")[ )} )[ ) )[ ) )J2 )r!)J2 )E)D2 )) )J2 ))(2 )})J2( )-)`0 )7)4`8 ):)^@ )2)_ )5) ` )#) y )x)[ )w)"` )7)-I ))/ SV%O E%4%!sv*% &*( !*1 *1 *p6AV%P %!av*% &*": !*1 *1 *9HV%Q %!hv* & &*: !*1 *1 *(:CV%R ,&!cv*m& &*9 !*1 *1 *9 Na%S z&?*&&*r8!*1*1 *C;GP%T &!gpP+ |' 3+ (2 + I -,+ <= !+ 1 1+ 1 .+ J2 ++ D2( W-+ <=0 + >28"y,+E@"7!+E@ !+ V<HGV%U '!gv*' &*9 !*1 *1 *8#io*(&*=;!*1*1 *: ^%W ( `(?9(#(CT2`((Z( n1( n1X,( 1C( 1=( 1K#( 1 )( T*8( B0( t( 1(&(S0 "%Z ( 0,e) ", < !, =V 0, 1 m7, e _, n1 q,  , (2 +, _(XPV%[ r)#xpv *)'*J2 *\<**< _:%\ )U8(**'*J2 *\<**<4*< f%^ (*G0**'*J2 *\<**<4* < * ;( %b * 6(- * '- J2 - \< +-  4-  "- 32 %c * X .6+ '. J2 .\< %. [. %d C+0*4+'*5J2 *5\<*5*5<4*6< *7;( %e + u7h/ w, '/J2 /\< / /VJ z&/J2 */xJ( /J0 /J8 !/_@ /JH N/<=P //1X /=\ ./1` %h ,*^-'*_J2 *_\<*_*_N=4*`< *b8( 8*os=0d$*q 8*r @$*s H92*t _P(*u >2X*v _`u3*w >2hG-*x _p *y >2xZ+*z e*{ n1 "%i -- @, . y, U 3, U , U 1, U 0, U C6, V( /, 7V0 k, U8ANY%j $.+any%/,% % (,%(2,_1%32,%>2,%D2,e%J2,t%P2,%_, %,\/% 1,% 1,% ,S% ,1% ,'% V2,% 2,1% x2,%{I/4%|Z1%}%~ ( Q%l V/+0%/"%Z% q % %Z}%Z .%Z( < %m /U(*b0\)*cD2b*d#*er24*fr2*gD2 %q (0 Z0j0 0  0&I 0' 1 ]*0( 1PAD%r % %s 0 ,(0+0 Z0,  0-(J 0.  0/I 00 1 %t 0 00Lc1 70M_ ,0MJ2 F20M4J i*0M1 &0M1 ,"0M1 30My$ $0Mn1( 0Mn1)I81SU81-n1I161f~1U16191I321y1U321E1-1U641L 11.1211 1< 12(1 !)%w 6  6%y 4%(2(232|'%%V2r2r2(b2 6214 a23y *26 _ 27 _ ?/28 _ )29 _ $2: _( 2; _0 2< _8 2= _@ 2@ _H E2A _P  2B _X &2D4` 742F$4h &2Hyp 2Iyt !2J x +2M9 Q 2NS 2O*4 z.2Q:4 I52Y -2[E4 2\P4 52]$4 2^ ( 52_  !42`y 2bV463~2/2+b4~2 e:4 L4*@4K4 ef4 L0yu4(4444&44 44%5 y :4.454%5 y54`6<4de6>54 6N577&8c518 1!8 _!8 P2!&8 >2&8%51E*5222232s02)2$!22,2? 26 2g 2 2 22 2~4*o5HE*5!he. /6 q-.$ ~8 .% V< v.)PHEK*;6!hek .-p6 '..1 ./1 --.5*4*6*_*Y**Y*(2`*r83*32*x8*8y *8 9r8 '9J2 9\< 9 9> X9? J39>( f!9J20 l3918 9@ 9H 9P W19?X "91` g191d *9(h 91p 8%91t 9?x  9 09_ 99(2 D#9 69 n 9 ,9"39E"$9E  9<=6~85&4*9*_*Y**Y*(2`*r83*32*x8*8y *86+*9*_*Y**Y*(2`*r83*32*x8*8y *8+*":*_*Y**Y*(2`*r83*32*x8*8y *8**:*_*Y**Y*(2`*r83*32*x8*8y *8*3*=;,*_,*,Y*,*,Y*(2,`*r8,3*32,*x8,*8,y *8w,3*;,*_,*,Y*,*,Y*(2,`*r8,3*32,*x8,*8,y *84#*<,* ,3,* J2,p)* 1,L6* V2414*V<,Z#* ,)* ,5* V<,* V2/647*<,~* <,* (3*<,*, *_3*<,*, *_3*<,*, *_3*5=,*5, *5_ **: 1<=r2<= &,=03*_s=,*_, *__3*l=,@!*m=,1*n ( 4=.=!:= 9= b9n1 9 n1 )9 19= (9&J> 9'  9(  9) (2 9* (2 Q9+  Z9-r> {-9. n1 J9/r> => L *9:> 9; &end9<  9C *9D>m&>9>9 9_ Qh9? 39@ 9Z@ 9@ N09@  9@ {79@( 9A0 497A8 9`A@ R"9AH Z 9@P 09AX 39A`>?J>>96 49? +9  9?&9?0>@r2.21@01Z@r2>___(2(1#@0_@r2>(2:__1@?`@0(2@r2>@@r2>@@r2>1.2@Ar2>1A@%A@017Ar2>A1A0(2`Ar2>.2.21=A0(2Ar2>A1fA0(Ar2>A/A0>Ar292yP2?>A11V2A5P9h B6rex9i B,9jB99l(209n_D#9o  69p (n 9q 0!9r<86pos9s @9t n1H?[ *9uA5 9| B *9}B49~"C@9dC 9 _B x9"CV9 y 9 _6u9PHB%9\dC9]I)9^dCx)49^"dC(C '9B 9 159C29"C59 C29"C9 18%9 1 6cp9wC5 9/D29"C9 18%9 1 6cp9wC9/D=5@9D29"C9 18%9 1 6cp9wC&9 1t9 V29D 6me9/D( 9 D0 9 18P9 1< 9 1>1n15@9xE29"C:9"CO&9$"C 9>6cp9wC t59wC$91(6B9/D0 9_859E29"CK.9 1(9 1 6me9/D5 9 E29 "C;9 "C-9  (2x69 _59F6val9 y589F29"C:9"C6me9/D6B9/D6cp9wC  9 V2$M 9 y(9" y,x9# _05(9&G29("C 9)"C6cp9*wCt59+wCs9, _>.9- 1  9. 1$5`91G293"C6c194 y6c294y 6cp95wC96 18%97 1 (98 199 1  9: V2$6A9;/D(6B9;/D06me9</D8 29=G@0 9>GN n1G L 5h9AH9B 16cp9CwC9D 18%9E 1 6c19F y6c29Fy+9G _9H _ 9I y(6min9J y,6max9Jy06A9K/D86B9K/D@ 29LGH0 9MGV3h9uI,'9jC, *9 B7yes9C,p 9 C,9C,#95D,9D,Q%9xE,%9E,o9E, 9$F,939/F,9?G,' 9NG 9QB uII L 9_(Cb;KL'0 0!I )0"I k0# I q0$ Iw0j00J10 J?0%"JII.J00MVJ*0MJ2.0M<=/xJ/ /_/J&/P2/./J/P2G/B=/J&/>2//V</KV/H=/(' 7KF5'Isv'(2iv'uv'u/'K0P2RKr2CK7K3'K,'P2,1' I,H '>23' K,' P2,"'  I u0<1L  <3 _ !<4 _ R.<6  2<7  6+<8 _ <9 _ /<: _( # =*`L !#=, _ r=- _ =.  .=/ *>HL #>ML'>VL' >[L''>bL' >ie'>nL eL8L eL8L eL8L eM8Lw 4H?+M ?- _ ! ?. _  ?/ }?0 ?1 u?2( j+?40 ?68 6?8L@9P@h OPk@j_7@k  @qOP@u_@v  z@yL(@z_HW0@{ P@}UPX@: `@_@ B@[P,@y@_- @ )@ k&@_@ s#@aP>'@y2@ )4@_)c@ )>@gP)@K)@_H)1@ P)r@mPX)@ `)J!@_)%@ ) 7@sP)@M)@_)@ )@yP)c@P)@ )@P)%@P) @ )- @P )$@_()@ 0)'@_8)5@ @)$@ yH`LL:   K Mh :@MP2.&P+.'(2+.(  l( Q 4(!Q 0(" O(# y 4($ V2 (%1P{ ((P(-Q/(!Q!(('Q(( P2(* I6cv(+ <=3&(- 1'4(. D2 4((3Q(4 P2(6 I6cv(7 <=6gv(9 >2.(: >2 0(uGR(v P2j(x (2D"(y P28(z (26cv({ <= *(|GR(Q3(qR7svp( 327gv( >25(R6ary( D26ix( 5(R5*( 16ix( 5(R6cur( 6end( 5( S6cur( (26end( (23(JS7ary(qR, (R,+(R,0(R50(S( S-!(MR%((2*( S( I(s*(S>4(P2`&( (230(T,Q (>Q,-(Q,(Q,4.(JS,#(S3X(T0( n1( n1( 1d( 1( (( ( _( (2 }((  (2( (  _0 (  _8)(  _@5(  (HO(>P3`(@U,(A9(,3(B"T0)0(U ( D2+(U(U /(U( 1 ( 1$( 1(O( 1,(U "(U0yUr2(2<U01Ur2(2<U0yVr2(2<(241U0y7Vr2<AV- A V&valA c5 ]A f =A 1 J A <= ACV (AV AV A (2 A _ V4A _ A (2 VKA V 5A"Z (A&Z c+A'c5 q"A(y 6A+y *A-y A.Z LA/Z(&psA0Z0 (A4 18 A5 1< A6 _@ A7 _H 'A8 n1P A9 n1Q zA; n1R n%A< V2S qA= 1T A> P2X (+A? P2` ` A@ (2h AA 1p AB 1r AC 1t AD (2x AE 1 AF 1 AG  5AH  7AIV2 jAJ n1 DAK 1 !AL 1 Q)AM P2 &AN (2 AOZ AP (2 AQ _ 3AT _ 3AU _ AV _ 97AW _ AX _ AY _ A^ 1 )A_ 1 k A` n1 LAa n1'$Ab J2'Ac 8'6Ad D2'Af Z'yAg Z@'+1Ah n1T'f Ai n1U'E)Aj n1V'cAk n1W'D,Al TX'Am X`'5An 1`'#Ao 1d'.Arh'C7Asp'Atex'AvV2y: AxEx:2AyEx:TAzE x:G+A{E x' A}V2{'HA~ n1|VVV c5Z L 1Z L 5AV/ZZ%;[?%r2%$;[4%$;[[ W%QS[A[Y[0yh[r2 *%Ru[{[[r2(2 %SS[ p1%U[[0V2[r2(2 %V[[[r2 l[.[M/%u[0%w[%y[K%{[%}[%[r%[/%[f%[%%[&*%[%[ l\ L\%\%[/%[ %[!"%[41%[%[U$%[%[# %[%[%[m% y1% y1l% y1 lq] L@a]%q]%[ l] L]%]%]< %4 ].],%]y%=/%=Q%="%= -(^.&%^%= 4M^.%2%B^%[;E%^2 2212P72+2'2%4d4H%F^6pad%G^ 4%^ L %P^^_r2P2 ,%a__01._r2.2.2 |%fRK %gH_N_0P2b_r2P2 { %h^ #%i|__0y_r2_P %l[%s_6fn%t x26ptr%u ( 5-%v_.1UIuIZ _` L:y 4` L4_1 (V` L (2f` L (2v` L n1` L I/J2P5e)( (2` L"'%1r %1B4%B&4 ._`.-B` ;_a.< BcaeB1 15a.*a$ B 5a 1Ra.GaV'B Ra B [X B 5a y1a.~aE(B aZ!C&2C(r2{ C-2fC1V2z)C4V2#CK5c0CL5jCX2CC[`Q5C\y.C]yCa!'Ce23Cf2JCiV C2C26CyV Cy&Co_(CJ2S CcC2C4%CV2 -b LCb'%4N[%6N[1ED=c2-i2m2]i2f}20k2w2SU2b22ux 2+ 2C 2ګ 2u 2L22tN2CT2!2c232222yp2cq22 2f2ώ28Z2P :c Lc/Dc -c LcD c y1d Ld%N d ]2;d.0d%b;d%c;d%d;d%e;d"%f;d.%g;d1EEef2E2Q2Z2&o2TM222s2p2ѣ 2{ 2f 2x 2r[ 2Y2-W2s22V2o2M2e2>a22U2o2M2e2=a2DY2Y22| 2v!2"2S#2V$2e%29y&2'2#(2R)2͡*2i+2,2RF-2%j.2/2$j021222`3242`52}^62Q{72|^82P{92Y:2z;2g<2f=2n>2BO?2N@2A2zB2C2_D2lE2[F2UG2rMH2AI2J2#JK3%Zf7nv%Z7u8%Zfef n1f L#%Zf3%[f7nv%[7u8%[ff%[fF/Z<G92,<GB3g g0(g9GM%g+g0(?g(7:GWKgQg0_`g49H-`g%I&}g $@J}h J~( {JK Jv ]J9 'Jq &rawJq( sCJ y0 J y4 nJL8tI hqgI# h hK6h&bufK8h .K:4 K;4 H/K<\r&curK=\r &endK>\r( ]K? y0 K@ y4&colKA y8 nKGL@ 0KH|H KI\rP KJ\rX *KK y`&idKL ydYI$hh\BI& i[BKn&saxK2~ [K( ;KTy Ky ĠKy K\r K\r( *Ky0 JPKy4  Kh8 ՜Ky@ KyD SvK8~H yK4yP FKyX OKy\ ۭK5|` %VK yh ?K+}p NK y K y v@Ky JOKy S(Ky rKy lKL{'{K}'sKy'K_'RK\r 'Ky('3RKy,'?K>~0']K8'[K@'{KyH'b?KyL'{KyP'K\rX'Kq`'AKqh'K`p'NKyx' ?Ky|'K`'uKy'OKh'<Ky';RKy'Ky'Ky)0K()ڦKy)ޅKy)WK()Ky)Ky)uKhw)%K>~)"K y)uK y)'K\r)>iK\r)K\r)@Ky)<Ky)lMKy)ܪK>~)uK`)PK`)K~y ){K~y()5OKy0)dkKy4)3sK$y8):CK%y<)0JK&4y@)K'yH)\vK(yP)>DK-yX)QK.&~)gK/L)K0L)K3})~K4y)lK5y)yYK6})}K8y)EK9L7`I'ni{I)#n{ KAjnGKBS~ÎKCS~dKD Y~iKE Y~ijI*vnn)LI,n%(LKXpJK~[K 1NKK%DyK_~ K~(WK~0^K086WK=@KyHH`KPS}KX]K`ёKhKpK=x GK{GhKyK K"tKʀfHKKiK"K~YK׀nK~ KE0K (K2LKx&iKzi\I-dp|nJI0vp JL+q 0L,( L-Pr RL.\r F=L/s U+L0s QL1t( 4L2s0 L3s8&docL4Rv@ L6qH L7qP ]L8yX L9n|\ E:L:\r` =L;\rh L=|p&URIL>\rx  L?y IL@ y LD|]I1qjp`grIiqrdQIrqq1EIPr2>292,92*;2~92{=2:2>28 2|< 2y; 2p> 28 2<2e:2;282<2:2;2=P:Iqlg1EIr2\>2A;2i82<2O=2>2>2d=2; 28 <IbrsI r sIr 4I r RI\rmFIrrr>8xIs0I(IPrRI\rF=IsU+Is QIs(4Is0Is86docIRv@6nsI?xH IqP;I!yX9I?x`%;I(hI9p=I9rss=It0I(IPrRI\rF=IsU+Is QIRv(4Is0Is86docIRv@<I(H;I(P%CI(XgI(`E:I\rh=I\rp(>I(xs=I/Rv0I0(I1PrRI2_F=I3sU+I4s QI5s(4I6s0I7s86docI8Rv@@I;yH*I<yL8IBtP9ICtX<IDEx`IE\rhIF\rp6idsIG(x{@IH(6URLII\r<IJyuILgy%;IM(n;INy;IPyt<EIv2|2_2fW2j IXv<EI"v2Q|2V2nA2b WAI'v 5I0#v40I2>wI3vZI4vRI5 \r6c1I6 Qw6c2I7 QwQI8 Qw ҚI9 \r( VI1Kwvv;<M'cw:<hM twWw:Nw:;NwzwC<Nw=Nw }8IvPr <Iw<0I2x4IExIw>I\rҚI\r0I(  IRv( I?xww \<IXx[<`Iy0I(IPrRI\rF=IsU+Is QIs(4I!y0I!y86docIRv@6nsI?xHv<IrP%;I(X sIyKxXx ?8Is <IAy'y =I-t ?I.ayGycw1Oyy0VwOymy1EPy22%2_h2ZKYPyxPLyy wXPNz sLPO y +JPP y fPQ_ PRy PS_ PT y BPU_( BPV_0 BPW_8 PX y@ PY yD ePZ(H yP[(P rPMzyzz(4= FPXzzz(zmkQzlkDvQzzQ%"{-Q&{z|R){{{bR*z>R9zfRPX{ fpRR5| [RS ( RT4{ fHRU@{ yRX4y FRYy ORZy$ ۭR[5|( ^R]E0&docR^Ty8 S(R_y@ @Rb.{H RcyP JbRdyT PRe.{X&amRhz` ]Ri {h4y1ELn|2/X2Dt2d2a2l2y\L;|1EL!|2P2&L$z|vpK4|||qZKV#| Z(KY} yKZ%} K\L >AK]L K^L NK_L |smKb&7} mKdl} yKeL ]KfL 'Kg}1yKp}>N2z|2I2j22@2V22k22 2٢ 2$ 21 2h 2?2kI2./?Kl}1EK&~22L2z[22՛2JgK}nh\r0\rS~(D~f4 nK^l~r~0h~(\r\r HKj~~~(\r\r\r FQKw~ {K~~0q~(\r ^K~ )eK 0(\ry\r\rq ^K~ zKJPy(\r\ryy\rr ɁK(\ry>w qK(\r\r\r\r FCK(jn YK2 ykK2 nHK"(=(\r>~ KJP`(\rf{(\r\r ύKJ 'K)(\ry 7LK5 SK@` KJJ lKT K`z Kjz Kvz KY~ KY~ {`KY~ DK?Ex(\r\r\ry>~yy>~ uK~hpS(KTe0y`ǁ`-4ǁST{htT( gt(T9 RT!_  T  #T ҁ T  T ًT!Eށ`J6W]0yv(_yҊJ?Y~8UfR;Uf8Ug >Uf<U?g^Vς ]V&lowV9 &V 9vV# vV%0&lowV&E &V'E{rV*!A0 zrV, ^{V- y ]V. y "WV/ &}V0ʂVP!<LV|!<8pV!<lV!<V!<*V!< 4 L׃9VwXWE lg.RW8_W9aW: @5 86 (2 74y 8 J2 9Ty : (2 {; (2( <Մ0 = y8 sHՄ I. S6J.>;@ۄ ǹB. 4C. JD q&lenE ?M 1 T&?yN 1 P&?O 1 L&?P 1 H&?QQ 1 D&?R 1 @&?DS 1 <&?ܸT 1 8&?U 1 4&?^V 1 0&?ԹW 1 ,&?X 1 (&@pXp@XɆAXXpPLB gX`C& C C ؜ԜDVXEU F[y@{Gctx[(Gmsg[+4u=Ae]nHsax^_[I/` ~}Aa (2A cr2Hspd32K3JÇA\o_KGK EUsL M EUsET M EUM0 7EUsET~EQEX}EY0M: OEUsMB gEUsM EUsEQ~ER2M EUsETEQER1M ֈEUsEQ~ER2M* EUsET~M,7  EUsM7* $EUsM`7 <EUsMk* TEUsMD ~EUsET x&EQ>MQ EUsMD^ EUsET0Mk ˉEUsMx EUsEQ0Mx EUsEQ0Mx "EUsEQ0M,x ?EUsEQ0M^x \EUsEQ0Mx yEUsEQ0Mx EUsEQ0M EUsEQ0M ܊EUsETvEQvER1M3 EUsET|EQ|ER1MS .EUsETvEQvER1Mvx KEUsEQ0M hEUsEQ2Mx EUsEQ0Mx EUsEQ0Mzx EUsEQ0Mx ܋EUsEQ0Mx EUsEQ0Mx EUsEQ0MQx 3EUsEQ0Mzx PEUsEQ0Mx mEUsEQ0L F{y~Gctx(Gmsg&4=AenHsax I/" ~}A# (2UMA%&~A (r2Hsp)32eOJpA\._PLK EU~M EUsL M- ǍEU~M5 ߍEU~M EU~ET M EU}M JEU~ET|EQ}EX}EY0M mEU~EQ|ER2M& EU~ETvEQvER1M@ EU~EQ|ER2M[* ׎EU~ET|M7 EU~M* EU~M7 EU~M* 7EU~MD \EU~ET &MFQ tEU~M^ EU~ET0Mk EU~Mx ƏEU~EQ0M)x EU~EQ0M[x EU~EQ0Mx EU~EQ0Mx :EU~EQ0Mx WEU~EQ0M!x tEU~EQ0M= EU~EQ0M_D EU~ET x&M{ ߐEU~ET}EQ}ER1M EU~ETvEQvER1M 1EU~ET|EQ|ER1Mx NEU~EQ0M kEU~EQ2M$x EU~EQ0MPx EU~EQ0Mx ‘EU~EQ0Mx ߑEU~EQ0MNx EU~EQ0M~x EU~EQ0Mx 6EU~EQ0Mx SEU~EQ0Mx pEU~EQ0L( yFԶy0JGctx(Gmsg(4=AentlHsaxץӥI/ ~}A (2 A r2b\Hsp32æJ@~A\_çK EUsL Mҿ EUsET M “EUM  EUsET~EQEX}EY0M*  EUsM2 "EUsM* @EUsET~M7 XEUsM* pEUsM7 EUsM* EUsMD ʔEUsET P&EQ>MvQ EUsM^ EUsET0Mk EUsM*x 4EUsEQ0MYx QEUsEQ0Mx nEUsEQ0Mx EUsEQ0Mx EUsEQ0M x ŕEUsEQ0MQx EUsEQ0Mm EUsEQ0M (EUsETEQER1M QEUsETvEQvER1M zEUsET|EQ|ER1M EUsETvEQvER1M&x EUsEQ0M@ ݖEUsEQ2M\x EUsEQ0Mx EUsEQ0M*x 4EUsEQ0MZx QEUsEQ0Mx nEUsEQ0Mx EUsEQ0Mx EUsEQ0M*x ŗEUsEQ0MZx EUsEQ0Lh NzGctxz!(OR{\rOE:|\rF:O=}\rکΩAenpbHsaxA r2g]A (2ܫ֫AO (2'%Hrv (2dJJHsp 32nJ0A\ _K EUsJ0cA\ _ׯѯK EUsJ`H_p(" K[ EUsET<M  EUsM ʙEUsMqEUsETvEQwER~EXM| EUsM =EUsET F(EQ>M* [EUsET|Mf sEUsM EUsET P(EQ>PQ M^ ǚEUsET0Mjx EUsEQ0Mx EUsEQ0Mx EUsEQ0Mx ;EUsEQ0M2x XEUsEQ0Mbx uEUsEQ0Mx EUsEQ0Mx EUsEQ0M ܛEUsETEQER1M0 EUsER1MHk EUsMjx .EUsEQ0Mx KEUsEQ0M hEUsEQ0M EUsET|EQ|ER1M EUsETvEQvER1M9x לEUsEQ0Mkx EUsEQ0Mx EUsEQ0M .EUsEQ2M4x KEUsEQ0M`x hEUsEQ0Mx EUsEQ0Kx EUsEQ0L KEU|FMyR1GctxM#(WEO?5M8\r"OJMP\rbZAeOnӱHsaxPA Qr2AR (2QMAOS (2HrvT (2JHspY 32}J0A\c _KV EUsMcR EUsMkR  EUsMRLEUsET|EQERMR dEUsMR EUsET (EQ>MS* EUsET|M^SQ ğEUsMSܟEUvMS^ EUsET0M.Tx EUsEQ0MHT 3EUsEQ2MfTk KEUsMzTx hEUsEQ0MTx EUsEQ0MTx EUsEQ0MUx EUsEQ0MBUx ܠEUsEQ0MrUx EUsEQ0MUx EUsEQ0MUx 3EUsEQ0MVx PEUsEQ0MCVx mEUsEQ0M]V EUsEQ0M{V EUsET~EQ~ER1MV ܡEUsETvEQvER1MWx EUsEQ0M3Wx EUsEQ0MWx 3EUsEQ0MWx PEUsEQ0MWx mEUsEQ0KXx EUsEQ0L2R KBREUvFص yAMЬGctx ( ڵGch +\rMGlen 3yd\Ae núHsax A  r2AO  J2LJA (2soHrv (2پJ Hsp 32JPףA\ _KhM EUsJ A\( _5/KO EUsJ=A\7 _~KO EUsMB UEUsM'B mEUsMB EUsET (EQ>M*CCEUsET|EQ}ER~M5C ٤EUsMgC EUsET X(EQ>MD -EUsET (EQ>M$D* KEUsET}MDQ cEUsMD^ EUsET0MEEUMFk EUsMFx ͥEUsEQ0MFx EUsEQ0MGx EUsEQ0M4Gx $EUsEQ0MbGx AEUsEQ0MGx ^EUsEQ0MGx {EUsEQ0MHx EUsEQ0M7Hx EUsEQ0MgHx ҦEUsEQ0MHx EUsEQ0MHx  EUsEQ0MHx )EUsEQ0M(Ix FEUsEQ0MZIx cEUsEQ0MIx EUsEQ0MIx EUsEQ0MIx EUsEQ0M Jx קEUsEQ0M9Jx EUsEQ0MkJx EUsEQ0MJx .EUsEQ0MJx KEUsEQ0M Kx hEUsEQ0M=Kx EUsEQ0MrKx EUsEQ0MKx EUsEQ0MKx ܨEUsEQ0MLx EUsEQ0MLx EUsEQ0M=L 3EUsEQ0MjLx PEUsEQ0MLx mEUsEQ0ML EUsEQ0MLx EUsEQ0MMx ĩEUsEQ0M-M EUsEQ0MSM EUsER1MMx EUsEQ0MMx 8EUsEQ0MNx UEUsEQ0M0Nx rEUsEQ0MNx EUsEQ0M%Ox EUsEQ0MYOx ɪEUsEQ0MOx EUsEQ0MO EUsET|EQ|ER1MP 8EUsETEQER1M P UEUsER1M>Px rEUsEQ0MXP EUsEQ2MlPx EUsEQ0MP ɫEUsEQ2MPx EUsEQ0MP EUsEQ2MQx  EUsEQ0M0Qx =EUsEQ0MbQx ZEUsEQ0MQx wEUsEQ0MQx EUsEQ0KQx EUsEQ0LA KAEUFEy;)бGctx(Gch(\rAen HsaxA r2PJAO J2A (2Hrv (2JHsp 32Hlen yJA\ _K? EUsM; EU}M< .EUsM < FEUsM\<CsEUsET|EQ}ERMg< EUsM< EUsET !EQ>M<* ӮEUsET|MR=Q EUsMm=EUvM=k EUsM=^ 8EUsET0M=x UEUsEQ0M>x rEUsEQ0M3>x EUsEQ0Md>x EUsEQ0M>x ɯEUsEQ0M>x EUsEQ0M?x EUsEQ0M4?x  EUsEQ0MM? =EUsEQ0Mv?x ZEUsEQ0M? wEUsEQ2M? EUsETEQER1M? ɰEUsETvEQvER1M?x EUsEQ0M#@x EUsEQ0M@x  EUsEQ0M@x =EUsEQ0M@x ZEUsEQ0M2Ax wEUsEQ0MVAx EUsEQ0KAx EUsEQ0L; K;EUvFXy"hGctx(D8Gch0\rGlen8yl`AenHsaxQH"A'ՄKX"ET}EQv $ &M""EUsRB"^EUUETTEQQF yp"^Gctx (O'5ՄndAenHsax^\HchqAѵ Hlen y86Hret ya[L"TL"MM"1޳EUvM"^EUsET|EQ}S"EU|S#*EU|M#1BEUvK$# EU  'F.y% Gctx(Gch3\rGlen;yAenmiHsaxA r2 AO J2A (2Hrv (21!JHsp 32JA\ _ K8  EUsMC EUsMK EUsMCEUsETvEQ|ER}M EUsM* EUsETvM FEUsET X(EQ>MBQ ^EUsM^ {EUsET0Mk EUsM*x EUsEQ0MYx ͶEUsEQ0Mx EUsEQ0Mx EUsEQ0Mx $EUsEQ0M)x AEUsEQ0M[x ^EUsEQ0Mx {EUsEQ0M EUsEQ0Mx EUsEQ0M ҷEUsEQ2M  EUsET~EQ~ER1M  EUsER1MV x 5EUsEQ0M x REUsEQ0M x oEUsEQ0M x EUsEQ0MB!x EUsEQ0Mr!x ƸEUsEQ0M!x EUsEQ0K!x EUsEQ0L FTy`5GctxT(bTORT+\rAeUnHsaxV\XA Wr2AX (2HrvY (2%AOZ J2Hsp\32JA\h_K8 EUsL5 M5AEUvM5 YEUsM5 qEUsM 64EUsET|EQ~M6 EUsMF6 ׺EUsET (EQ>MQ6* EUsET~M6Q  EUsM6+EU|ET}M6^ HEUsET0MM7`EUvM`7k xEUsMr7x EUsEQ0M7x EUsEQ0M7x ϻEUsEQ0M8x EUsEQ0M68x  EUsEQ0Mh8x &EUsEQ0M8x CEUsEQ0M8 `EUsEQ0M8 EUsETEQER1M9 EUsETvEQvER1M&9x ϼEUsEQ0M@9 EUsEQ2M\9x  EUsEQ0M9x &EUsEQ0M*:x CEUsEQ0MZ:x `EUsEQ0M:x }EUsEQ0M:x EUsEQ0M;x EUsEQ0M*;x ԽEUsEQ0KZ;x EUsEQ0Fy.eGctx(5+OR-\rOGZC>~-)AenoeHsaxA  r293A! J2AO" J2 A# (2Hrv$ (2Harv% (2D@Hsp'32zJ`>A\?_K2 EUsL"/ M4/cEU|MG/ {EUsMO/ EUsMZ/EUvET~Mm/WݿEUsETvEQER}M~/4EUsETvEQ~M/ EUsET|M/ UEUsET~EQ x(ER:EX$M0 sEUsET~M40 EUsET (EQ>M?0* EUsET|M0Q EUsM0^ EUsET0M,1EU|M@1k  EUsMR1x =EUsEQ0M1x ZEUsEQ0M1x wEUsEQ0M1x EUsEQ0M2x EUsEQ0MH2x EUsEQ0My2x EUsEQ0M2 EUsEQ0M2 1EUsETEQER1M2 ZEUsETvEQvER1M3x wEUsEQ0M 3 EUsEQ2M<3x EUsEQ0Mh3x EUsEQ0M 4x EUsEQ0M:4x EUsEQ0Mn4x %EUsEQ0M4x BEUsEQ0M4x _EUsEQ0M 5x |EUsEQ0K:5x EUsEQ0F޷y@)Gctx(Aen[SHsaxA r2Hsp32OCJ0TA\ _KX, EUsLf) Mt)yEU}M) EUsM) EUsM)D EUsET X'EQ>MF*Q EUsM*^ EUsET0M* EU}M*k 8EUsM+x UEUsEQ0M1+x rEUsEQ0Mc+x EUsEQ0M+x EUsEQ0M+x EUsEQ0M+x EUsEQ0M),x EUsEQ0M=,  EUsEQ0Ms, IEUsETvEQvER1M,x fEUsEQ0M, EUsEQ2M,x EUsEQ0M,x EUsEQ0M-x EUsEQ0M-x EUsEQ0M-x EUsEQ0M..x 1EUsEQ0Mq.x NEUsEQ0M.x kEUsEQ0K.x EUsEQ0F(y Gctx(D"AenHsax@<A r2|vA J2A (2H:Hrv (2JHsp 32Q H_p(SMK#  EUsET<JA\ _K  EUsJ0A\ _K EUsJp7H_p(L:KN  EUsET<M OEUvM  gEUsM  EUsM  EUsETM * EUsM  EUsET .(EQ>Ll M  "EUsET}EQ &(ER7EX$M 9ET0M  oEUsET}EQ (ER8EX$M  EUsET}M  EUsET =(EQ>M * EUsETvM Q EUsM ^  EUsET0M: x 'EUsEQ0Mi x DEUsEQ0M x aEUsEQ0M x ~EUsEQ0M x EUsEQ0M2 x EUsEQ0Mf x EUsEQ0M x EUsEQ0M  EUsET~EQ~ER1M  DEUsET|EQ|ER1Mhk \EUsMx yEUsEQ0Mx EUsEQ0M+x EUsEQ0M`x EUsEQ0Mx EUsEQ0Mx  EUsEQ0Mx 'EUsEQ0M+x DEUsEQ0MWx aEUsEQ0Mx ~EUsEQ0M EUsEQ0Mx EUsEQ0M x EUsEQ0M% EUsEQ0MK EUsET|EQ|ER1Mk DEUsET~EQ~ER1Mx aEUsEQ0Mx ~EUsEQ0M!x EUsEQ0MSx EUsEQ0Mx EUsEQ0Mx EUsEQ0M!x EUsEQ0MUx ,EUsEQ0Mmx IEUsEQ0M fEUsEQ2Mx EUsEQ0M EUsEQ2Mx EUsEQ0M0x EUsEQ0Mbx EUsEQ0Kx EUsEQ0L Fy0#Gctx(Gloc4jnAen(HsaxA r2T J2A (2hdHrv (2Hsp321J(A\_@:K& EUsL]# M}# MEUsM# eEUsM#z}EU}M# EUsM $ EUsET c(EQ>M$* EUsET|Mv$Q EUsM$^ EUsET0M %*EUvM %k BEUsM2%x _EUsEQ0Ma%x |EUsEQ0M%x EUsEQ0M%x EUsEQ0M%x EUsEQ0M(&x EUsEQ0MY&x  EUsEQ0Mm& *EUsEQ0M& SEUsETEQER1M& |EUsETvEQvER1M&x EUsEQ0M' EUsEQ2M'x EUsEQ0MH'x EUsEQ0M'x  EUsEQ0M(x *EUsEQ0MN(x GEUsEQ0M~(x dEUsEQ0M(x EUsEQ0M(x EUsEQ0K)x EUsEQ0NgpLzOeg$nA ir2Aj\r.*Ak\rhdHsaxlL M7 eEUsM EUsEQ (ER:EX$M7 EUsM EUsEQ  (ER\rH>GlenHyAX J2F<JH_p(K EU|ET<MB$EUsET}Kh EU|ETvEQ ER4EX$U.J2` O r26.Gsax.OGZ(>~O3(2'#AX J2e_HatV J2Hns2xAh 1lhHlen yAB\r+Hta>~AR\rMGA\rAqAq."IҚqJ H_p(K EU~ET<JP2H_p(K EU~ET<BVC B>C |xWX Y5VC C Z[ Y)  CQ CF V: ZX] tbXh R8Xs }X~ X F B X   X   X   X   X   M EU0ETvEQMEUvET0M8 (EU~ET}EQ ER4EX$MTEEU|ET0M} {EU~ET}EQ ER5EX$M EU 'ETvM[EUET0EQ|ERMEUvET0M  EU~ET}EQ ER4EX$MDEU 'ET0M  zEU~ET}EQ ER6EX$M3EUvET0MY EU~ET}EQ 'ER9EX$MqEU 'ET0M EU~ET}M-EUvET|M EEUvM cEU~ET}M EU~ETEQvEREX$SEUvSEUMd EU 'ETvEQ6LMEU|ET0M JEU~ET}EQ 'ER y  AXq  M EUsM( EU0ET oEQ1M EUvM!( EU|ETvM8( EU|ET qEQ1RP( ETUUEXJ2`a[O Xr2  GsaxX( ORX=\rAXZ J2A[qIҚ\qHns^2x}uJH_pZ(K EU|ET<M9EUsET0M oEU|ETvEQ ER4EX$M EU0ETsEQwL6MfET0M EU|ETvEQ 'ER."\rndO.,(2Hns02xlbIҚ1qA2qQ%GA@qnlK4 EU~Mz@ eET|EQvM9EUsETvEQ|ER}M EU0EQwM ETvLX NGsax#O,(2AQ4y95A$2xusM ]ETvM{EU|ER}L M LZ \gGsax#OR9\r A4y~AqIҚqPQ0iHns2x_]L g K#t EQvER0M EU0ET|EQwM@t ET0EQ|MT ET|SiEUvL N09Gsax OҚ5\rGuri \rB>O*(2zA r2A J2KEHrv (2Hsp32' JpH_p (60K~ EUsET<JA\_K( EUsL[ Mi 7EUsMq OEUsMnEUET0M EUsET}EQ 'ERM* ]EUsET|PQ M,^ EUsET0Mxk EUsMEU 'ET0Mx EUsEQ0Mx EUsEQ0Mx EUsEQ0MDx 7EUsEQ0Mvx TEUsEQ0Mx qEUsEQ0Mx EUsEQ0M EUsEQ0M EUsET|EQ|ER1MC EUsETvEQvER1Mfx EUsEQ0M 7EUsEQ2Mx TEUsEQ0Mx qEUsEQ0Mjx EUsEQ0Mx EUsEQ0Mx EUsEQ0Mx EUsEQ0MAx EUsEQ0Mjx EUsEQ0Kx EUsEQ0NGsax"OҚ7\r Guri"\rO,(2A r25-A J2Hrv (2Hsp32sYJ5H_p (|K EUsET<J0hA\_K EUsL M EUsM EUsMEUET0M- EUsET}EQ 'ERM* EUsET|PdQ M^ EUsET0Mk EUsMEU 'ET0M"x 6EUsEQ0MQx SEUsEQ0Mx pEUsEQ0Mx EUsEQ0Mx EUsEQ0Mx EUsEQ0MIx EUsEQ0M] EUsEQ0M *EUsET|EQ|ER1M SEUsETvEQvER1Mx pEUsEQ0M EUsEQ2M x EUsEQ0M8x EUsEQ0Mx EUsEQ0M x EUsEQ0M>x EUsEQ0Mnx ;EUsEQ0Mx XEUsEQ0Mx uEUsEQ0K x EUsEQ0]2x^4y^Қ7\r\Qs` Oes&n"  Hvecu  A vr2  _,`_py (QVH_p(8!4!_h`_p (B y Cr!n!C!!a0X!!Kh EU}B`*CK"G"C""aX""KH EU}B  C# #CI#E#aX##KX EU}L LL D(EUs\~<@YoTOe<%n##O8<0(2>$6$O{<=(2$$Hvec>$$Hth? 32%%A@ 32%%A Br2&&_`_pS(Qb[H_pV(a&]&bYY SC&&Be[VC&&LcY StY/EU@M~Y FEU0MYt oET0EQ (ER0LY MY EU}EQ (ER7EX EY0MZ EU}EQ (ER?EX EY0LZ<MZ EU}EQ2LZaMZ[ :EU}EQ0K[ EU}EQ2F qO'-Մ&&A] c']'Hnew q''Hp q((A ((Hcur.3)/)T r2b3 /\C\ k)i)CP ))CD ))L B %+C ))C  **KE EU 'ET1EQ@MMEUsSEU|L LJ KX EU &ckMd'$Մ5*-*d;\r**elenM+*f? q~+x+T r2b3 99C\ ++CP ++CD ,,KG EU|ET}EQvS#EUvL4 L`K EU &gHd'&Մ:,6,f] {,s,hcur.,,K EU &i'@a1d'"Մ--hp1.--hp2.--jEUUkѷal'#Մmp1.mp2.gՄpHhnewՄ ..fU.m.g.n r2SEU@L LK EU &g̸. KfU...n r2o IC& //C D/B/C j/h/S3EUHLD Kk EU &cn d r2//pWVC //C //ZX "00oVC Z0X0C 0~0WX 00oWVC 00C 00WX )1%1p==]VVC a1_1C 11Z=]X 11ptVC 11C 21ZtX .2,2o0VC S2Q2C y2w2W0X 22o`UVC 22C 22W`X &33oVC 33C 33WX 33oVC N4L4C t4r4WX 44o<VC 44C 44WX 55ow@VC U5S5C {5y5W@X 55qXVC 55C 66WX V6J6gs(2@gds\r66elens'y07*7f vr27|7fXw (277La M~ vEU}ETv $ &K EU}ETsEQ|ERv $ &gζ_(2od_\r#88d$_.\rs8o8f br288fXc (288hlend O9M9L M NEUvM lEU}ET|K* EU}ETsEQvER|r5l r2ssv(2tmrc1u/(2ssv(2vf51) ^5<́wstr5Wǁwlen5iT '6 1u1 ĺsinǁlmv01mv11mv21mv31mb1mk01mk11mm1n$mend y1xdy ld4lYd(3 l(>(lH>ylQr>x(i l(*llQry1q C>z9r9XJ99XU,:(:p1  C>d:b:Z [J[ULDEUvzp# C::C::YyyC[;U;C;;Rg ETUEQT{}}X{Y`{X|QQHU{<<X {)n)nX {\\XB {X( {JJXn {X {L>L>X {RhRhX{scscX{ޮޮX {>B>BXI{X{WrWrX{ssX~ }PP{P{X{66X{JJX{1l1lX{VVX{X{X {XXW|aFaFHN|33HC|HZ|hhH){~~I{I{FFI{ttI{ffIG{؟؟I{XF {11I{0C0CI{2>2>X ~~{ZL {X 8)u ں([lk9 0%0IU %IG%'Uint)@{29@"@R98 96@!9-?+Y(F~'4!ll 61 a3 *6 f 7 f ?/8 f )9 f $: f( ; f0 < f8 = f@ @ fH EA fP  B fX &D` 74Fh &Hp It !J x +MU Q Na O$ z.Q4 I5Y  -[? \J 5] ^ G 5_ - !4` bP6x + bx l4 9  *: E l` 9s`'MN& % f% 9I@ >9,9*;~9{=:>8 |< y; p> 8 <e:;8<:;=P: @ \>A;i8<O=>>d=; 8 < >8x 0 G R F= U+  Q (4 0 8doc 6@ns $ H P;  X9 $ `%; Gh Up= Ur= 0 G R F= U+  Q 6(4 0 8doc 6@< GH; GP%C GXg G`E: h= p(> Gx= /60 0G 1R 2fF= 3U+ 4 Q 5(4 60 78doc 86@@ ;H* <L8 BP9 CX< D* ` Eh Fpids GGx{@ HGURL I< Ju LL %; MGn; N; P;< 'H :<h  Y<: k :; |_C< p= p}8 v< <0  4 *  > Қ 0 G  6( $ \< = [<`  0 G R F= U+  Q (4  0  8doc 6@ns $ Hv< P%; GXs  0 = ?8 < &  = -? .F , H< 9^ d o G,< B3{  G -9 M  G G-7: W  f `1  0Vw   @! %_hZKY xL9 wXN sLO +JP  fQf R!  Sf T BUf( BVf0 BWf8 X @ Y D eZGH y[GP rM - FX  % G +  G   l $" h # p #$ x %' 9  \ ` 9 *! E  $@O[(* $ T3$ 94 9n, i  h Q, * q Z!3R T# 4U# h ] Vh /(v y.x y@  z [|@ 2 >t 8t $ 0o1@(C YcE *FYG li 9'5$H+8o R;o 8  >R < ~'!~x"/doc#9 y$ e&  ' x( Fl* c+ $Il,s(w. 0h/ 4c0 8G2 @3 DG4HA7iP<8 X9 G`y< hM= l1@ pbA x|B rE ?F G G=J GdMN7Q>=R G'UiZV [Y GZ >D[- yD\ @u_MHba PA&d GX\Qg9`xh9hui pxij tUp(;I)'MHXzcur{H/|~  / ٚ(a,O0 381 @G HP* A@0h+A) -    лX ݼ{\l}Q}S FT OU  ۭV, kR@eeφ,pgW_CU Fp$sr }#sHt ue bv gw  Hx  Ay z G( { 0 s| G8 } @Us q_%+?aKas R /F_?Y_M^M R /9n>S%>GoJPiG wq"| wero`zhǨ h{-  9U!6 h2' ( @ L)4 H F 9m$S6 x X6 G7R8 0: !;? A B  CxG  0I !J Kx OU 0Q !R S  6T %Uay c G #d G^eUg Y 20[ G ]t G&h yl 7n "o t! Ov G /w  x@ p3@5<Y.D!_rtL.V +i8pd3y  9$  %& f(  (*  v0 ,{ !|G f# 9@ # #Of!O" $f6 2 . 7 8 ; ZB !U(" +" 6"  l 9 " )" "  s+"! g,,"6-# 0# )#, -# )#AA"!#e #2#,p#5##" N " "  " ($""", 077"A 2LL"V Zaa"k"v"""1"""""'"<"Q"f"A#-#, V#!'#{#f# f3# v4#  v 9  9  95# # 8)## I 95$. 4$0 /+$5  $= 4$> m$@  b"$A v$C $ $E ( ]$J 0 ,$N68 $PB@ $[@ H m($\@ X $]@ h '$jx Z 9 f 926%b(% p %46%d(% r %% r &4L 3&6 X&7 $"L'-f,'.f=,(  ( f Z3( O ( 1(  )b )d f )e O )f )g $)h O )F2) fj5) O )u() fh)D)F f))G O;6)H#:0* * 32* *U (* I *!  l 9# *%/ *' 32*( *)U (**I *+ $DIR+; -%IV,v%UV,w9%NV,E- ,/ -%OP,1  &op(.l! D.B K.B .X >.V')#.@  ') .@ ',.@ '"5.@ '".@ '2.@ '.@ '+.@ 7.B" f.B#%COP,2 y!(copP/y"D/zBK/zB/zX>/zV))#/z@  )) /z@ ),/z@ )"5/z@ )"/z@ )2/z@ )/z@ )+/z@ 7/zB"f/zB# /}}B$I/V(3/ f0/ JB8/ JB< /}^@&/ ^H\,8 "`.$ D.B K.B .X >.V')#.@  ') .@ ',.@ '"5.@ '".@ '2.@ '.@ '+.@ 7.B" f.B# . B( R+. B0".V8,.JB@. XH.XPx%. BX",< $5P.M%D.BK.B.X>.V))#.@  )) .@ ),.@ )"5.@ )".@ )2.@ ).@ )+.@ 7.B"f.B#. B(R+. B0. B8. B@. BH ,G Z%? ,6 t'0#B*Iop0$B =(0%B 0'B s40(B 0*/m( <0,9B0 0-9B4 .50/5m8 009B@ 019BD 03BH A104kP Z05kX "06k` 08JBh w0:5mp 20<5mx 0=5m 70AB 0CL U*0EB 0HX ,0KO 0LO L'0NB 30OB 20^(B 0`B 60aB &-0bB i"0nB <&0uA 30zB h0{B l'0}ga {0~B ,)0;m ,0B+30@ +-0B+0B+0O+0Am + 0Gm(+ 0?W0+6068+06P+E 06h+#0lA+ 0lA,ISv0B+70Mm+d)0B,Ina0x +0+ 0+u 0B +0B(,Irs0B0+0B8+0B@+0BH+ 0`P+:50BX+30B`+00Bh+e 0Bp+d0_x+0_+:)0`^+0B`+d/0Fh+ 0Bp+00Bx+F0B+x"0B+ 0B+10f+0x +Y%0(B+10B+ 0B+0B+*0B+0B0Sm0*l0/*l20=l-0?O50@f}0BJB00DJB0FR0I\0JO  0KB(H0LB0-0MB80Nf@.0O`H 0PBP70QBX0TB`0Ucmh/0V`p 0XBx2 0YBy; 0ZBz) 0[B{ 0\B| 0]B}0^B~Y0_B0af0bB0d  0f9B0h9B0l9BJ10o0p2 b0sB0tB0uB-0vBD 0wB60zB00}B%0B0B40B0B#0B-0B,0B0im  0B8J0B@30BHF0BPm0BXL0B`b0Bh] 0Bp10Bx0f580JC0B 0B9"0BW0B!0gaq20;0e%0f.0ym)0f0BA0B&0B(0q09B`70B.0Bx$0(B0009B209B,/0m)0Ba,0m!0l! I 0Jp09Wx0V70V#0J<*0H 0JB0B0B 0B 0B70 0 0 +0 -Ian0 JB60 JB< 0JB<0JB(0JB+0O}0f0/C0!m((0#[B`z0%JBd0'hh6/0)Bp-0+9BxW0,V0.VY&0/V{501V03V106f07-08-09JB`.0:Bs0;B00=B'0>B-0FB^20GB#0LkE$0NB0Sa{0W 0YB+0[f/0\B 0aB0bB%0cB @30dB +0fB 0gB %0jB +70kB( ~0lB0 (0mB8 0nB@ -0oBH $0pBP b#0rmX 50sm 40tm( H*0uB '0vB (0wB '&0xB t0yB 0zB 0|B %0}7R *0~x s0m 70B .0B 60B #,0B @0B S20m 0B A00G 0B( .0B0  0m8 0V@ a0VH _-0mP &0BX 0B`  0Ch 0'0mp E0mx 40B 0B G40B 1#0B 0B 0B 0Ml ,0B $0B 40 )0h #0h E0h "0h } 0h  0 i  0B r!0B E0B ) 0B 0B }0B( -0m0 70ym8 :0k@ 20l 50 8 #0  x0Mh w0"m 70-V 0/x %SV,O 66&sv16 &1G !1JB 1JB 1D%AV,P 6&av1>7 &1G !1JB 1JB 15G%HV,Q J7&hv17 &1?H !1JB 1JB 1G%CV,R 7&cv17 &1/G !1JB 1JB 1FNa,S 7?1,8&1F!1JB1JB 1H%GP,T 88&gpP2 8 32 B 2 V -,2 J !2 JB 12 JB .2 B +2 B( W-2 J0 2 B8'y,2@@'7!2@@ !2 IH%GV,U 8&gv149 &1F !1JB 1JB 1%F(io1z9&1H!1JB1JB 1EH^,W 9 `/?9#/C@b2`/M:Z/ B/ BX,/ (BC/ 9B=/ 9BK#/ 9B )/ ga*8/ O0/k t/ 9B(&/a0",Z Z:03: "3 J !3 c 03 (B m73 l _3 B q3 k 3 B +3 f(%XPV,[ :(xpv 1$;'1B 1I1x 1 J ,b 1;6(4 ; '4 B 4 I +4 k 44 k "4 B ,c ;X 5; '5 B 5I %5x  [5x ,d ;014?<'15B 15I15x 15EJ416I 17eI(,e L<u7h6 = '6B 6I 6x  6W z&6B *6W( 6W0 6X8 !6f@ 6)XH N6JP /6JBX 6jJ\ .69B`,h =1^(>'1_B 1_I1_x 1_J41`I 1bF( 81oJ0d$1q @ 81r @ @$1s @ H921t fP(1u BX1v f`u31w BhG-1x fp 1y BxZ+1z l1{ B",i :>(>@3 > y3 c 33 c 3 5c 13 c 03 c C63 cc( /3 c0 k3 c8%ANY,j >.any,?/% , G/,B/_1,B/,B/,B/e,B/t,B/,f/ ,O/\/, 9B/, JB/, @ /S, L /1, /', B/, ^ /1, B,,{?4,|6h1,}% ,~ GQ,l ?+0,R@",7 BBBGM%B`9<C de9>CB9N*C :7  &;yC1; 9B!; f!; B!&; B&;;C$HE1C&he5 C q-5$ F 5% I v5)]$HEK1C&hek 5-D '5.JB 5/9B --55$1D1f1@ Y1L 1X Y1B`1F31B1 F1Fy 1F<F '<B <I <x  <L X<L J3<L( f!<B0 l3<JB8 <k@ <kH <x P W1<LX "<JB` g1<JBd *<Gh <JBp 8%<JBt <Mx  <O 0<f 9<B D#<k 6<k n <k ,<k'3<@'$<@  <JDFC,8 C1F1f1@ Y1L 1X Y1B`1F31B1 F1Fy 1F;1/G1f1@ Y1L 1X Y1B`1F31B1 F1Fy 1F?<1G1f1@ Y1L 1X Y1B`1F31B1 F1Fy 1F$;1?H1f1@ Y1L 1X Y1B`1F31B1 F1Fy 1F;11H/1f/1@ /Y1L /1X /Y1B/`1F/31B/1 F/1F/y 1F=11eI/1f/1@ /Y1L /1X /Y1B/`1F/31B/1 F/1F/y 1F2#1I/1 X /3,1 B/p)1 }B/L61 B2141I/Z#1 @ /)1 L /51 I/1 BC271J/~1 J/1 x M:11EJ/1x / 1f115jJ/15x / 15f*1: JBJBJ7wJ@11_J/1_x / 1_f11lJ/@!1mJ/11n G/ PJJ!=J<:K b<B < B )< (B<K (<&K <' k <( k <) B <* B Q<+ k Z<-K {-<. B J(BB3@<R2<mP:<mPO&<$mP <Lcp<P t5<P$<JB(B<zQ0 <f83<S2<mPK.< 9B(< 9B me<zQ3 < HS2< mP;< mP-<  Bx6< f3<aSval< 38<S2<mP:<mPme<zQB<zQcp<P  < B$M < (<" ,x<# f03(<&RT2<(mP <)mPcp<*Pt5<+Ps<, f>.<- 9B  <. 9B$3`<1U2<3mPc1<4 c2<4 cp<5P<6 JB8%<7 JB (<8 9B<9 9B  <: B$A<;zQ(B<;zQ0me<<zQ8 2<=U@0 <>UN B)U 9 3hK9497k7!9W )7"9W k7# ?W q7$ ?WAA7gW17 gW?7%mW?WWyWlA7MW*7MB.7MJ6W6x  6f6W&6B6>6X6BG6J6)X&6B/6I6KXV6J6G. XF5.V!sv.B!iv.@ !uv.L u/.KXBXBXX1.X/.B/1. V/H .B1. Y/. B/".  Vu0?1iY  ?3 f !?4 f R.?6  2?7  6+?8 f ?9 f /?: f(# @*Y !#@, f r@- f @.  .@/ O#*AH Z #AM Z+AV Z+ A[Z+'Ab/Z+ Ail+An@Z lZ59 l/Z59 l@Z59 lQZ59w4HB+Z B- f ! B. f  B/ }B0 B1 uB2( j+B40 B68 6B89@6PCh ]kCjf7Ck - Cq]CufCv - zCyiY(CzfHW0C{ -PC}]XC`CfC -BC],CCf- C -)Cok&CfC -s#C]>'C2CF4CfcC ->C]CYCfH1C -PrC]XC`J!Cf%C - 7C]CQZCfC -C]cC]C -C]%C] C -- C] $Cf(C -0'Cf85C -@$C HYiYoFYQZ:CZB5& ^+5'B+5( -l/ Z^ 4/!Z^ 0/"F O/# 4/$ B /%(B ^{ /( ^/x^ /(x l^!(/'^/( B/* ?Wcv/+ J3&/- 9B'4/. B 4(/30_/4 B/6 ?Wcv/7 Jgv/9 B./: B 0/u_/v Bj/x BD"/y B8/z Bcv/{ J */|_(`^1/_4svp/ B4gv/ B3/_ary/ Bix/ @ 3/`5*/ 9Bix/ @ 3//`cur/ @ end/ @ 3/V`cur/ Bend/ B1/`4ary/_/ /_/+/`/0//`50/`/ `-!/_%/B*/V`/ ?W($s*/a>4/B`&/ B10/ga/Q /^/-/^//0_/4./`/#/`l!3X/@b0/ B/ B/ (Bd/ 9B/ k(/ k/ f/ B }(/  B( /  f0 /  f8)/  f@5/  GHO/LP1`/@eb//A9/3/Bma0)0/b / B+/b/b //b/ 9B / 9B$/ 9B(O/ 9B,z9eb"/ebcBBJbJB5cBBJcccBBJB`9B;ccBJNic(>D c*valD yC ]D t =D 9B J D J Dc(D'd D'd D B D f V4D f D B cKD c# 5D"g (D&g c+D'yC q"D( 6D+ *D- D.g LD/g(*psD0g0 (D4 9B8 D5 9B< D6 f@ D7 fH 'D8 BP D9 BQ zD; BR n%D< BS qD= 9BT D> BX (+D? B` ` D@ Bh DA (Bp DB (Br DC 9Bt DD Bx DE 9B DF 9B DG L 5DH L 7DIB jDJ B DDK (B !DL 9B Q)DM B &DN B DOh DP B DQ f 3DT f 3DU f DV f 97DW f DX f DY f D^ }B )D_ (B k D` B LDa B+$Db B+Dc F+6Dd B+Df h+yDg h@++1Dh BT+f Di BU+E)Dj BV+cDk BW+D,Dl gaX+Dm `+5Dn }B`+#Do }Bd+.Dr@ h+C7Ds@ p+Dtlx+DvBy7 Dx@x72Dy@x7TDz@ x7G+D{@ x+ D}B{+HD~ B|9dc-d yCh 9 9B*h 9 5D9d?6h Bh,h?,B,$h4,$hMhW,QhhhhB*,RhhhBB,Shp1,UhhB iBB,Vii(iB s3i(iM/,u3i0,w3i,y3iK,{3i,}3i,3ir,3i/,3if,3i%,3i&*,3i,3i si 9i,i,3i/,3i ,3i!",3i41,3i,3iU$,3i,3i# ,3i,3i,3im, B, Bl, B sj 9@j,j,3i sj 9j,j,j< , "kk,,"ky,J/,JQ,J",J Isk&,hk,J `k%2,k,3i8@,k 1P7+',d4H,Flpad,Gl 6*l 9,P7l=lMlBB ,,aZl`l9BylBBB|,fX,gllBlBB{ ,h7l#,illlBfx ],li,s"mfn,t Bptr,u G5-,vl>9BbVV*h fcm 9f @ ym 9`"mJB Gm 9 Bm 9 Bm 9 Bm 9 ?B]C: Bm 9"',4Br ,4BE%E& yl7n-E,n lOn< EcDneEkB #Btnin$ E tn 4BnnV'E n E 3iX E tn BnnE(E nZ!F&BF(B{ F-BfF1Bz)F4B#FK/Cc0FL/CjFXBCF[2 Q5F\.F]Fa@ !'FeB3FfBJFi  FBFB6FV F&Fl(FBS FL cFBF6FB Ip 9Fp',4h,6h fLp 9mp 9]pG mp Bp 9~p,N p Bpp,bp,cp,dp,ep",fp.,gp1,Z!q4nv,ZX 4u8,Z&qp B6q 9#,Z!q1,[fq4nv,[X 4u8,[&qCq,[fq^Hqxq]Hq*lowHU &H UvH#qqvH%q*lowH&@ &H'@{rH*!qqzrH,=r ^{H- ]H.  "WH/=r &}H0CrqqHP!qLH|!q8pH!qlH!qH!q*H!q Pr 9r9HrwXI@ rrRI8r_I9raI:r9b<s:e(/;;:8:<6<;rv<s<;res ==c>c9ɖG`a/u:eG*/e=S=: 3GD7>#>:,rGN? ?;resH???@@J9 N@B@@K @@At;vald#A!A>b>bEa>Ua9Q`<v:RL BB:/BB;rv&CC;resCC<`yv=UU=TT=Q0>a>aHI^yIRL DCI 3;DDI,rEUEIEJresEE?Ke/sFkFK9 FFK iG_GL_wJvalGG<_w=Uv=T~>_>%_"`V>!`/<;`x=Uv=T~>U`\<]{=Us<^{=U0B^=UsYIz}WNzQwQWXzQQWdz7R/R]<]y|=Us<]|=Us=T1>]<]|=Us<]y|=Us=T2<]|=Us>^<^}=U<'^/}=U~<4^G}=U|ZM^`}=UU<^ˀx}=U|B^=Us<\}=Us=T1[/\\؀<\}=T~\\~=U~<\ ~=T}\]4~=U}<]L~=Uv>U^>^<^~~=Us<^~=U0B^=UsS/ubZTAuRRTNuRRT[u(S"SUhu]/ubb*8T[uzStSTNuSSTAu TT?Whu[TUT^uuWvuTT>_AA V`L7`aFaFN% $ > &I: ; 9 I$ >   I7I  : ; 9  : ; 9 I8 I !I/  : ; 9  : ; 9  : ; 9 I< : ; 9  : ; 9 I'I4: ;9 I?<&4: ; 9 I?< : ;9  : ;9 I8  : ; 9 : ; 9 I: ;9 I: ;9 I : ; 9  : ; 9 I 8  : ;9 ! : ;9 I 8 " : ;9 # : ; 9 I8 $ : ; 9 I8% : ; 9 I8& : ;9 I8' : ;9 I8( : ;9 ) : ;9 I*5I+!,: ; 9 -> I: ; 9 .( / : ;9 0 : ;9 1'I2 : ;9 3 : ;9 I8 4 : ;9 I5!I/6 : ;9 7 : ; 9 I 88> I: ;9 9.?: ; 9 '@B:: ; 9 IB;4: ; 9 IB<1=B1>B? U@1A B4: ; 9 IC1RB UX Y W D1BE 1UF41BG1H.?: ; 9 'I@BI4: ; 9 IBJ1RB X Y W K.: ; 9 ' L: ; 9 IM: ; 9 IN O.?: ; 9 'I 4P.?<n: ;9 Q.?<n: ; 9 R.?<n: ; % $ > &I: ; 9 I$ >   I : ; 9  : ; 9 I8 I !I/  : ; 9   : ; 9  : ; 9 I< : ; 9  : ; 9 I'I4: ;9 I?<&4: ; 9 I?<7I : ;9  : ;9 I8  : ; 9 : ; 9 I: ;9 I: ;9 I : ; 9  : ; 9 I 8  : ;9 ! : ;9 I 8 " : ;9 # : ; 9 I8 $ : ; 9 I8% : ; 9 I8& : ;9 I8' : ;9 I8( : ;9 ) : ;9 I*5I+!,: ; 9 -> I: ; 9 .( / : ;9 0 : ;9 1'I2 : ;9 3 : ;9 I8 4 : ;9 I5!I/6 : ;9 7 : ; 9 I 88> I: ;9 9.?: ;9 '@B:: ;9 IB;: ;9 IB<.?: ;9 'I<=4: ;9 IB>4: ;9 I?4: ;9 I@4: ;9 IA1RB X Y W B1CBD1E1FB1G.: ;9 '@BH4: ;9 IBI4I4J UK L1RB UX YW M1BN4: ; 9 IBO4I4P.: ; 9 '@BQ: ; 9 IBR: ; 9 IBS.?: ; 9 'I<T4: ; 9 IBU1RB UX Y W V4: ; 9 IW4: ; 9 IX.: ; 9 I Y.: ; 9 'I@BZB1[.: ; 9 'I \: ; 9 I].?<n: ; 9 ^.?<n: ;9 1B14: ;9 IB4: ;9 IB1 : ; 9 I8  U 4: ;9 I  : ;9 I8 1B : ;9 IB1RBUX YW ( : ;9 IB.?: ;9 'I< : ;9 I8.: ;9 '@B I.?<n: ;9 I: ; 9 I.?<n: ; 9 : ;9 I : ; 9 I8 : ; 9 I : ;9 I4: ;9 I 4: ;9 I?<!4: ; 9 I?<"I#&I$ : ; 9 % : ;9 I8 &!I/ '<('I)41B* : ;9 +7I,.: ;9 '@B-'.4: ;9 I/4: ;9 I0 1U1 : ; 9 I 8 2 : ; 9 3> I: ; 9 4 : ; 9 I8 5 : ;9 6 : ;9 7 : ;9 I 8 8: ;9 I9$ > :: ;9 I;!< = : ; 9 >1RBX YW ?: ; 9 I@(A: ; 9 IB : ; 9 C(D.?: ;9 'I@BE : ;9 IFB1G.1@BHI : ; 9 J!I/K UL41M: ;9 IN.: ;9 'I@BO : ; I8 P : ; 9 IQ : ;9 R : ; 9 I 8S.?: ;9 '@BT1U.: ;9 ' V: ; 9 IBW: ; 9 IX.?: ; 9 'I 4Y : ;9 Z : ; 9 I8[ : ;9 \> I: ;9 ]4: ; 9 I^4: ;9 I _.: ;9 'I `1RBUX YW a : ; 9 b( c4: ; 9 I?d41e 1f 1gBhi.: ;9 'jB1k.?: ;9 'I lB1m.?: ; 9 '@Bn4: ; 9 IBo.: ; 9 'I p 1Uq.?<n: ; r% Us$ > t uIv : ; w&x : ;9 I8y : ;9 z5I{: ; 9 | : ;9 }> I: ;9 ~.: ;9 'U@BB.?: ;9 : ;9 I4: ; 9 I4: ; 9 IB.: ; 9 ' .: ; 9 ' 4: ; 9 I1RBX YW .1@B1X YW  .?<n% $ > &I: ; 9 I$ >   I : ; 9  : ; 9 I8 I !I/  : ; 9   : ; 9  : ; 9 I< : ; 9  : ; 9 I'I4: ;9 I?<&4: ; 9 I?<7I : ;9  : ;9 I8  : ; 9 : ; 9 I: ;9 I: ;9 I : ; 9  : ; 9 I 8  : ;9 ! : ;9 I 8 " : ;9 # : ; 9 I8 $ : ; 9 I8% : ; 9 I8& : ;9 I8' : ;9 I8( : ;9 ) : ;9 I*5I+!,: ; 9 - : ;9 . : ;9 /'I0 : ;9 1 : ;9 I8 2 : ;9 I3!I/4 : ;9 5 : ; 9 I 86> I: ;9 7( 8> I: ; 9 9> I: ;9 :.?: ;9 'I@B;: ;9 I<: ;9 I=4: ;9 IB>.?: ;9 'I ?: ;9 I@4: ;9 IA: ;9 IBB1CBD.?: ;9 '@BE1F1G H.?: ;9 'I@BI4: ;9 IJ4: ;9 IBKLB1M: ;9 IBN UOB1P UQ4: ;9 I RB1S: ;9 IT U4: ;9 IV.?: ; 9 '@BW: ; 9 IBX4: ; 9 IY4: ; 9 IBZ4: ; 9 IB[ \].?: ; 9 'I ^: ; 9 I_4: ; 9 I`.?: ; 9 'I@Ba: ; 9 Ib: ; 9 Ic.?: ; 9 ' d: ; 9 Ie.1@Bf1Bg41h1X Y W i1j41Bk1l1UX Y W m 1Un41 o1RB UX YW p1RB X YW q1RB UX YW r 1sBt1UX YW u.?<n: ;9 v.?<n: ; 9 w.?<n% $ >  7I: ; 9 I$ > &I : ; 9  : ; 9 I8 I !I/  I < : ; 9  : ; 9  : ; 9 I& : ; 9  : ; 9 I'I4: ;9 I?<4: ; 9 I?< : ;9  : ;9 I8  : ; 9 : ; 9 I: ;9 I: ;9 I : ; 9  : ; 9 I 8  : ;9 ! : ;9 I 8 " : ;9 # : ; 9 I8 $ : ; 9 I8% : ; 9 I8& : ;9 I8' : ;9 I8( : ;9 ) : ;9 I*5I+!,: ; 9 -'I.> I: ; 9 /( 0 : ;9 1 : ;9 2 : ;9 3 : ;9 I8 4 : ;9 I5!I/6 : ;9 7 : ; 9 I 88> I: ;9 9> I: ;9 :;( <.?: ;9 'I@B=: ;9 IB>4: ;9 I?4: ;9 IB@1A UB UC4: ;9 ID1EBF GH.?: ;9 'I@BI4: ;9 IBJK1L.?: ;9 'I M: ;9 IN: ;9 IO4: ;9 IP: ;9 IBQB1R4: ;9 IS.?: ;9 '@BTB1U.?: ;9 ' V W4: ;9 I XBY.?: ;9 I@BZ.?: ;9 @[1RB UX YW \1B]B1^.?: ; 9 'I@B_: ; 9 IB`4: ; 9 IBa4: ; 9 IBb.?: ; 9 '@c.: ; 9 '@Bd: ; 9 IBe4: ; 9 I f.?: ; 9 '@Bg.?: ; 9 'I h: ; 9 Ii4: ; 9 Ij.?: ; 9 'I 4k.1@Bl1m41n1RB UX Y W o41Bp41q41 r1RB UX YW s1UX YW t1u 1Uv.?<n: ;9 w.?<n: ; 9 x.?<n% $ > &I: ; 9 I$ >  7I I  : ; 9  : ; 9 I8 I !I/  : ; 9  : ; 9  : ; 9 II : ;  : ; I8 < : ; 9  : ; 9 I'I4: ;9 I?<&4: ; 9 I?< : ;9  : ;9 I8  : ; 9 : ; 9 I: ;9 I : ;9 I! : ; 9 " : ; 9 I 8 # : ;9 $ : ;9 I 8 % : ;9 & : ; 9 I8 ' : ; 9 I8( : ; 9 I8) : ;9 I8* : ;9 I8+ : ;9 , : ;9 I-5I.!/: ; 9 0'I1> I: ; 9 2( 3 : ;9 4 : ;9 5 : ;9 6 : ;9 I8 7 : ;9 I8!I/9 : ;9 : : ; 9 I 8;> I: ;9 <> I: ;9 =>( ?4: ; 9 I@.?: ;9 I@BA4: ;9 IBB1RBUX YW C1BDEBF.?: ;9 'I@BG: ;9 IBH4: ;9 IBI4: ;9 IJ UK1L1M1N.?: ;9 '@BO: ;9 IBPB1Q RB1ST4: ;9 IU.?: ;9 'I@BV1W UX41BY1RBX YW Z [41\.?: ;9 '@B].?: ;9 'I ^: ;9 I_ `4: ;9 Ia 1Ub1RBX YW c.?: ; 9 '@Bd: ; 9 IBe: ; 9 IBf4: ; 9 IBg.?: ; 9 'I@Bh4: ; 9 IBi.?: ; 9 '@BjBk.?: ; 9 ' l: ; 9 Im4: ; 9 In4: ; 9 Io1RBUX Y W p1RBX Y W q1RBUX Y W r.: ; 9 ' s: ; 9 It u.: ; 9 'I v.: ;9 'I w: ;9 Ix.?: ; 9 'I 4y.1@Bz.1@B{.?<n: ;9 |.?<n: ; 9 }.?<n~.?<n: ; % : ; 9 I$ >  &I$ >  I : ; 9  : ; 9 I8 : ; 9 < I !I/ 4: ; 9 I?<!> I: ; 9 (  : ;9  : ;9 I8  : ;9 I8 : ;9 I'I'I& : ; 9  : ; 9  : ; 9 I : ;9  : ;9 I84: ;9 I?<  : ; 9 ! : ; 9 I"7I# : ; 9 $: ; 9 I%: ;9 I& : ; 9 ' : ; 9 I 8 ( : ;9 ) : ;9 I 8 * : ; 9 I8 + : ; 9 I8, : ; 9 I8- : ;9 I8. : ;9 / : ;9 I05I1 : ;9 2 : ;9 3 : ;9 4 : ;9 I5!I/6 : ;9 7 : ; 9 I 88> I: ;9 9.?: ;9 'I@B:: ;9 IB;4: ;9 IB<1=B>1? U@4: ;9 IBA UB1C.?: ;9 'I D: ;9 IE4: ;9 IF G4: ;9 IH.?: ; 9 'I@BI: ; 9 IBJ4: ; 9 IBK4: ; 9 IBL M.?: ; 9 'I@BN.?: ; 9 ' O: ; 9 IP4: ; 9 IQ4: ; 9 IR S.1@BT1BU41 V1RB UX Y W W41BX 1Y 1UZB1[B1\]1RB X YW ^ 1U_.?<n: ;9 `.?<n: ; 9  /usr/include/bits/usr/lib64/perl5/CORE/usr/include/sys/usr/include/bits/types/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/usr/include/netinetAv_CharPtrPtr.cstring_fortified.hinline.htypes.htypes.htime_t.hstddef.h__sigset_t.hstruct_timespec.hthread-shared-types.hpthreadtypes.hstdint-uintn.h__locale_t.hlocale_t.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hstruct_FILE.hFILE.hstdio.hsys_errlist.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hppport.hproto.hpthread.h KyJ K2 A2)<=( <X =!; U<g Y<u <uXf< _X"<F z,wY K  s YJX F<IK!I=XJ\YI=XY=Y<<  KJ. fK<WJ<ZI=-XO\ /usr/lib64/perl5/CORE/usr/include/bits/usr/include/sys/usr/include/bits/types/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/usr/include/netinet/usr/include/libxml2/libxmlDevel.cinline.hDevel.xstypes.htypes.htime_t.hstddef.h__sigset_t.hstruct_timespec.hthread-shared-types.hpthreadtypes.hstdint-uintn.h__locale_t.hlocale_t.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hstruct_FILE.hFILE.hstdio.hsys_errlist.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hxmlmemory.hxmlstring.htree.hxmlregexp.hglobals.hperl-libxml-mm.hpthread.hproto.hstdlib.hassert.h K  XX~X#  ~.J < X JJ<KeX ~X~X< X. "L.y (fy B"K  XX~X#  ~.J < X JJ<K f XPr? /usr/lib64/perl5/CORE/usr/include/bits/usr/include/sys/usr/include/bits/types/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/usr/include/netinet/usr/include/libxml2/libxmlLibXML.xsinline.hstring_fortified.hLibXML.cstdio2.htypes.htypes.htime_t.hstddef.h__sigset_t.hstruct_timespec.hthread-shared-types.hpthreadtypes.hstdarg.hstdint-uintn.h__locale_t.hlocale_t.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hstruct_FILE.hFILE.hstdio.hsys_errlist.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hoverload.hppport.hxmlstring.htree.hxmlIO.hparser.hentities.hxmlregexp.hdict.hhash.hxmlerror.hxmlautomata.hvalid.hiconv.hencoding.hxmlmemory.hglobals.hHTMLparser.hchvalid.hparserInternals.hxpath.hpattern.hrelaxng.hxmlschemas.hxmlreader.hcatalog.hperl-libxml-mm.hxpathcontext.hpthread.hproto.hxmlversion.hperl-libxml-sax.hxpath.hxpathInternals.hdom.hc14n.hAv_CharPtrPtr.hHTMLtree.hxinclude.hstring.h K~K x АYv,>J fffX-KW? + ?X>       !#'),-/2/ 1 J L  fXX .  w X  $y%(3DGH JMNPSU.VYZ\_  " tt"00 I$ehm5tyf0Ey*0 r0 f v< X $y00f0K040589;>WJ 0Q060]0<))K̐Yv,>J fffX-KW?  +?X>    !#'),-/2/1 JL |YKJ $rX(3DGH JMNPSU.VYZ\_ * vt"00 I$ehm.*0E0s0 f   $00K0f040589;>WJ 0Q060]0<))}f :X. sX Xv q=hJ0X.XtXxX!i;X0 < .X t< J<  v#  r=gJ0NXN.XtXNxX`f;X. uX Xu r=gJ0X.XtXyXKy  Xt   Yv,>J tKfJX-KW? + ?X>       !#&'),-/2(DGI ehmf  J K:<XJ2 J$oJ:Xt  L   Y $x $tJ 0 gt"00 H$JMNPSVY Z\_#{ ֞ E0*0 q0    $00f0K040589;>W 0Q060]0<))~usY-Y{y.>-=X,LXJ ttK/IX-KX-KW? !-      (*./1568< 0HPTV vzfJ> Jv <($| J... g  =+x<w0 (0f dt"0"0#'U$W[\^bei jlp#20Q0m0   $$90w0X0>0?CDFJf.0_0@0m0G))  ]XH/s.=J+<t<<X<< XX0)<)X0++=+.<+-+=  J</<XX !Xf0,0,,.Wf  "wtJ  xJ   Kuv,>X tXJftX-JJffX-JW? , >X>        (*./1568<j  0t" <sKt)  XXX 0PTV vzf J LJ ! 9%<      nJ 0 jt"0lf t+0U0W[\^bei jlp"##'$20Q0 u0   $$90w0X0>0?CDFJf +_)@)m)G)G)! iX[k K  XXX#  .J . X JfKf<L>:Z, f J [.#J      = L$t=..J[X#x$ <Xz[ V $K  XXX#  .J . X JfKf<L>:Z,fJ [.#J   Z X [!$<t=..J#[$<[.X$ [ `K  XX۪X#  .J < X JJ<L `X f _ A.J < >X JJ<KdX X .    h t. $XJJkt (fxr DK  XXAX# > A.J . >X tJ<<LcX  .    X>Y"  J= JY\ =1.NJ XYI-KJ2 M.2J MX2<M<Q9; 2<2J< L X2ȺK I2k eXff .2X,M<2܂K  XXX#  Ħ.J < X JJ<L c  .    ^ J Y !t^.!< X -=XJL ^Xt!fx ]VK  XXX#  .J < X JJ<L c  .    ^ J Y !t^.!< X -=XJL ^Xt!fx _~K  XXX#  .J < X JJ<Lf :JYJ YYW = Y; =t1 ! -=X pJ iu cQK  XXPX# / P.J < /X JJ<L c  .    p> : JY JY tp. ? X -=X p k x dRK  XXPX# / P.J < /X JJ<L c  .    p>=W= Y p. ? X -=X pJJ pttfx  fK  XXX#  .J < X JJ<KdX X J. i<%tq ($. M M2M.2JX%w% <p @hbK  XXX#  .J < X JJ<KdX X J. i<%tq ($. M M2M.2JX%w% <p `jbK  XXX#  .J < X JJ<KdX X J. i<%tq ($. M N1N.1JX%w% <p lbK  XXX#  †.J < X JJ<KdX X J. i<%tq ($. M N1N.1JX%w% <p nbK  XXֆX#  ݆.J < X JJ<KdX X J. i<%tq ($. M N1N.1JX%w% <p pK  XXTX# + T.J < +X JJ<LdX X .    r r. JX%JJk%( x<r  r~K  XXUX# * U.J < *X JJ<LdX X .    s s. JX%JJk%( x<r  @tsK  XXbX#  b.J < X JJ<LdX X .    yy.<X% y%tJ yXJJh%( x<r  voK  XXsX#   s.J <  X JJ<KeX ~.<f%fJJ..yX%(<y @wK  XXX#  .J < X JJ<KdX X J. <tqX ((. wQ .X Q..< Xt J XfXw  fp yuK  XXX#  .J < X JJ<KdX X J. <tqX ((. wX 'X X.'< Xt J XfXw  fp { Ks .XXX#  .J < X JJ<K  xf O0 /X t. +JZ (f<X !J P  !; Y<J X.J#H Jt=g!fX!t) /.֞ PX/ K  XXX#  .J < X JJ<K  zfP/  J. iP/L g ( +P   H ><     K#t / ! -=XjP ..vK  XXX#  .J . X tJ<Ke   J0f X J. <tq<( (. wV )t V.)< Xf J XfJw  fn K  XXX#  .J < X tJ<K zfQ.X X' J. |uct ( , f< J. ivDA/ K(. w Q     Y . Q..< X. #JJt Q<..t Xf^ `JK  XXAX# = B.J < =XtJ<KX  wf i X<fJLf X' J. tqJ (. wQ . Q..< Xf J XJ.Jw<  fl ~K  XXX#  .J < X JJ<K  zf R-  J. iR-L q$ +R Y   -XR.-< X -=Xtw bK  XXΎX#  Վ.J < X JJ<KdX X J. <tqX ((. wR -X R.-< Xt J XfXw  fp жxK  XXߕX#  .J < X JJ<KdX X J. <tqX ((. wW (X W.(< Xt J XfXw  fp  ~K  XXX#  .J < X JJ<K  zfX'  J. iJ  r$ +X Y 'X.'< X -=Xuw кK  XXX#  .J < X JJ<K  zfX'  J. iJ  r$ +X Y 'X.'< X -=Xuw K  XXX#  .J < X JJ<K  zfX'  J. iJ  r$ +X Y 'X.'< X -=Xuw 0K  XXX#  .J < X JJ<KdX X J. <tqX ((. wT +X T.+< Xt J XfXw  fp bK  XXX#  .J < X JJ<KdX X J. <tqX ((. wT +X T.+< Xt J XfXw  fp bK  XXX#  ő.J < X JJ<KdX X J. <tqX ((. wT +X T.+< Xt J XfXw  fp  ^K  XXݑX#  .J . X tJ<K +X<8&"  f X' J. <tp(8.<*&h (. wT + T.+< XX J XJ.tJv  fl `K  XXX#  .J . X tJ<Ke   J0f X J. <tq<(  (. wT +t T.+< Xf J XfJw  fn `K  XXX#  .J . X tJ<Ke f X J. <q( (. wU + T.+< XX J XftJw   fn @\K  XXX#  .J . X tJ<<Ke<  Y ; =t). ! -=Xh&h.t P[K  XXX#  .J . X tJ<Ke   JW.( X J. it J q( +V uW=  Y ; =t). ! -=Xj <u [K  XXĕX#  ˕.J . X tJ<Ke W( X J. it J q( +W W=  Y ; =t(. ! -=XXju CK  XXX#  .J < X JJ<K  zfW(  J. iJ  r$ +W Y (W.(< X -=Xuw ^K  XXX#  .J < X JJ<K  zfW(  J. iJ  r$ +W Y (W.(< X -=Xuw 0K  XXۖX#  .J < X JJ<K  zfW(  J. iJ  r$ +W Y (W.(< X -=Xuw K  XXחX#  ޗ.J < X JJ<K  zfX'  J. iJ  r$ +X Y 'X.'< X -=Xuw GK  XXX#  .J < X JJ<KdX X J. <tqX ((. wX 'X X.'< X. $Xw  fp ^K  XXX#  .J < X JJ<K  zfY&  J. iJ  r$ +X Y 'X.'< X -=Xuw bK  XXǘX#  Θ.J < X JJ<KdX X J. <tqX ((. wY &X Y.&< Xt J XfXw  fp bK  XXX#  .J . X tJ<K$f$: YI u1O z<Y JXu1L  Y / ;=X d I u m|K  XXX#  .J < X JJ<L  xf f  .    f >:K Z, =YX-=X Jf.A   X -=X fJJ f. n  @ K  XfӻX#  ڻ<J < X tJtL<fX< f Y    ffK  ]t Y ;= X 8@X.  t< D. f {K  XXYX# & Y.J < &X JJ<L  zf u   .    u   Y  u. ?  X -=X uJJ  u tX  Xu ;K  XXX#  .J < X JJ<Kf:Z,X^J.!J^ f [! t. tJJr^(n < X!j aK  XXǧX#  Χ.J < X JJ<KfVJ>:L`x. eJ & .   e   e= X>XK ;/  "   w  X X t. +JXt.@t  e  K 3J  qJY  JXu3L JY   !X a.   e. XXneX X  Xr ^K fK  XXX#  .J < XtJ<K<tX>,JLXeXXJe<<L eYe =Xe. =X" _yz e   ; = X K -/    !   }J<NtJ< XX f Je ;/   ? <I X  7<  X  X .  JJ.etfX< Jt>e ZY  ,jK  XXOX# 0 O.J < 0XtJ<KX  wf p gX _t   XK      =X <D  .u ]tXg f . fJJ.QXZriJg=>     %$t1fX4XJ4@ ʇ  ! -=X _JJ J.OJXJJ<Nf<f _4 X  =  u4XX 4_f  @7IK  XXêX#  ʪ.J < XtJ<K<f<'_X X _ '_J '_. <XJJ< _J Y; =     %1t$X1f4J4XJ ʇ  ! -=X _JJt J _4 X  =  Xt _4XX"tt"f  :CK  XXX#  .J . X tJ<KfVJ><L`X.`J< `J  _Y- =   Y  -   _. < X -=XJLtJ. _ttX  P;gK  XXX#  .J < X JJ<K`X d ` Y.`<<` X`.< X -=XJJr   <JK  XX`X#  `.J < X JJ<K c  . g Z  x7< x.< X -=Xf. u s p=4K  XXX#  .J . X tJ<Kf `X ``J; =X ; =t/  Y ue =Y `. ? X -=X `JJt. `  >NK  XX\X# # \.J . #X tJ<Ke  fw<  Xw v   .    v =   K; =t/Kd=-Y  v.@   X -=X vJJt  vt  l1XK  XX٫X#  .J . X tJ<Kf `X ``J; = Y; =t/  Y ue =Y `. ? X -=X `JJtf `  B]K  XXMX# 2 M.J < 2XtJ<KX  yf o X<fJ a. X .    a   YW=Y;=t1  ! -=X aJJt a<< k GK  XXX#  .J . X tJ<K $>f$>  Xt<  <t  Xt. `  .    `  Y#IXJ ?'X$J f`Y$t^uX#Y#yYtcYW=;=g##!Y!e=Zd>Ztu% t%XtnX%X .eK  XXX#  .J . X tJ<K $>X<fJ `. X .    `  ` =g, /==[q< <`ZH>Jt/W/X=Yt;=</W/Xt= XXm`<XK  XXǭX#  έ.J . X tJ<K $>  Xv<  <v  Xv. `  .    `  Y#IXJ >'X$J`&X#J"` Y  e=Xtj>[!>#Y#g%o%!Z%L!v!H>Y# .Xn QK  XXX#  .J . X tJ<Le lz< ^z a  . g Z  a e =YJJ t o .K  XXX#  .J . X tJ<Ke my< _y a  .  Z  `IXJ?  Y J pXn ~fK  XXX#  .J . X tJ<Kf aX aaJ; = Y; =t/  Y ue =Y a. ? X -=X aJJtf a  U Ks .XXϯX#  ֯.J < X tJ<Ls q:L  Xs. a   .    a = X     tt 3v  KJ L   K K K L'<'X< a.< X -=XJLX @ \t K k  XX XPK  XX_X#   _.J .  X tJ<K e   f w<  Xw x  .    w =   ; =t/  Y e =Y w. @ X -=X wJJt..*w  wֻXq [/K  XXX#  .J < XtJ<KXe  v   :Y X wIY<   Y/JJJ Xt ! -=Xi  n X iXX ir.K  XXVX# ) V.J . )X tJ<<K  xf s  VJ>:L  Xw. b  .    be =X =    *  AtY  Z X w$I$Y< b. A X -=X btY<.. bt  >/ z Xo nzK  XXX#  .J < X tJ<KsXZdJ>:`x. dJ X' .    d = Z    X tg    Qy< Q=X t. XJtTtt d /  yt y< Q=  tXf= nY 0<t f= taXn  rK  XX̱X#  ӱ.J . X tJ<Ke  fw<'bXX b' 'b. = X' .    b      Jg $  K J  B      u2JJ   X J b ?     /I=JXt v ! -=X b  A l bX~K  XX˲X#  Ҳ.J . X tJ<Ke  vVJ> DvL `x. c  .    be =X =    X N  X  ftgf.. bt 4Y stY<t..b k~K  XXX#  .J < XtJ<KJe  tYJY zJJcX Xs p}K  XXȷX#  Ϸ.J . X tJ<Kez. eJ X' .    d =    z< Bt. dt <. dJJJ XtJXtb< etX<oXr Ѓ Ks .XXضX#  ߶.J < XtJ<KXe  t<  Xt.JJ<L d   .    d     =     w ! -=X dJJdt.f tYv wu  iIX}K  XXX#  .J < X tJ<KsXZdJ>:L`x. eJ X+ .   e   e= X>X -/   ;u   K " J t< JX u"L  JXK    f e X  X< . XJf e  K yC     K Yof  K   .e    Xn  ~K  XXX#  .J . X tJ<Kf  e e.e<YW =Y H =fe Xe.< X -=Xf.nX ]K  XXX#  ú.J < X JJ<KdX X .    fe.< X J XfXJJl (fyr  |K  XX߽X#  .J < X JJ<KdX X .    ff.f X. *Jl (tyr  K  XXX#  .J < XtJ<KX  yf g     X Y! g!X  X h  %1t$X1f4XJ4A ʇ ! -=X gJJ.E.Xz g .g<   X > <"o  f4  " gX #4XX"i'4  8 J"gf4$f kFK  XX@X# ? @.J . ?X tJ<K e  l z< ^z h  . g Z  h =  YJJ s o LK  XX@X# ? @.J < ?X JJ<K  zf h  .    hW = Y; =t. ! -=XJ sXp  {K  XtDX# ; DJJ < ;X JJ<K  z j  J    jH = =.i ; KYJXZgfXz %  JJ#fJ..jt(K(K!2  =;KtXu |K  XXGX# 8 G.J < 8X JJ<K d :LmX. m J< X .    me =X v  J q <X<X i  mX  g(K IZ)m sJ Xu@Lu0<0X<-YXt sJ uX   u  fJ..ms %fffXef `X fK  s !u2!<2X!<!-YXtHLx Y "XxJ  X  ff.mXf $n  n. EK  s ! : u e =Ytg "f oJ<t.Xr-|K  XXQX# . Q.J < .X JJ<L  zf p  .    p =  Y ; =t1 ! -=X pJJ ptX u GK  XXQX# . Q.J < .X JJ<Kf<qX. q . tu< [ Zu"  pt   u-=J tfJ-KW> - =X=  - K KW >t f t  pX( kt  ftqvf .)<<t  X qK  XXQX# . Q.J < .X JJ<KdX X .    qq.< X J XfXJJh (fur  K  XXRX# - R.J . -X tJ<L"e" " q X .    q  Y Z<Z] q.?  X -=Xq O `<tJ."Q m<K  XXRX# - R.J < -XtJ<KX  yf q :L  Xv. x Xf .    x =   s = Z Kt: =g  x. ? X -=XȞf. xtX<fJJ b Xl K  XXaX#  a.J < X tJ<Ks r:L  Xv. x Xf .    x =   s = Z Zt: Z=g   x. ? X -=X xJJȞf xtX<fJJ xJgK  XXaX#  a.J < X tJ<Ks r:L  Xv. y Xf .    x =   s = Z Yt; Y=g   x. ? X -=X xJJȞf xtX<fJJ xJgK  XXbX#  b.J < XtJ<K< ys yX Xy< X/y< X -=Xf.jX )f<f y   -m.m `| Ks .XXeX#  e.J < XtJ<KXz z  z< X z. g Xf .    /; z Y   Y"X   ,f ,X ?  X<  X  Y,<v <   X0= Y! g!X<   YK; \X j X  V >t. ! -=XJJ.zf "    X"X *XJf3z vX "#7& ( "zj"b( jXK  XXeX#  e.J < X JJ<Kf0,~X &K  s !f tK;KW> ;i:>r.<.rJxut.X Ks .XXʁX#  с.J < X tJ<K(f(vt13 ! -=X LJJt3!K&(3(Lt < U( YYPf0<;=XK  QX X3KXk3K  XXX#  .J . X tJ<KfL3. L - =X3. L    ; =t/ 30<-=XK tJMLXXX 3L2tK  XXX#  .J . X tJ<Kf L3.LJ-=X3" L    ; =t/ 30:-=XY tJMLXXX 3M-tK  XXډX#  .J < X JJ<KP/fPX/P./<X X' J. i< tj (. wPY  ZL :X /J< PY / t. .Jp ff {K  XXX#  .J < X JJ<KR-fRX-R.-<X X J. i< tn ((. wR   I =X- tt J XXtt  fj pK  XXX#  .J < X JJ<KP/f PX /fP< /<P /XP./< X J. iP/ ^( +P   =<L  I=X   /P.>/ X -=Xa P䐑X/ zK  XXX#  .J < X tJ<KS,tSX,S.K,X X' J. |ut_ ( 2 f<& J. iv DA/ K(. w S   ; =YX  M Y, t. .Jmt XfYS0K  XXҋX#  ً.J < XtJ<KXQ.fQ  .Q   >      K#t           e =Y . ! -=XC Q(.Xf  i#-=XK J MJ.2\X!^ #.b#( $NitX J JJc2\  #tf y2 \" Y"s Y [  > #J0(#\, # \X# 2K  XXX#  .J . XtJ<KXfJ * \# \<# \#< \   Q    t #<< \Y #J \#X-=XK tJ.2\.!e .#f $NiX<X J JJe2\   #fy2 \" Y"s K [ H > t#J(#\, # 7K  XXʣX#  ѣ.J < X tJ<K ]"t ]X" ]."<X X, J. ]#tA ( 1 f<& .    \ #t     YI =      # t. .JG ](#f  ]Xg֐"K  XXX#  .J . .tKX ]t"]J"<]<"X]."< X .   x< ]    * t  V >  i "-=XK J MJ.2]!f ." $NitX J JJY2]  > "fy2 ]" Y"s Y [  > "J0(# q,]X" Ks .XXX#  .J . .tKX ]t".<J<L ] <" ]<" ]"< ]<       * t  V >  i "-=XK J MJ.2]!_ ".c"( $NitX J JJc2]  >"tf y2 ]" Y"s Y [  > "J0(# ],X" ]X" FK  XXX#  å.J . XtJ<KXfJ * ]" ]<" ]"< ]     t   t "<< ]Y "J ]"X-=XK tJ.2]t!f .!f $NiX<X J JJe2^   "fy2 ]" Y"s K [ H > t"J(# ],X! 0LK  XXX#  .J < XtJ<KtX  ^)&!< ^X  .    ; =X 9 ?t/ IXJX6!J^<X!J^ Y !^.!< X -=X.. ]f<X  (X u 6X!X(^!^  p֐  p֐6 )K  XXX#  .J . X tJ<L )X<f ^X$!< ^XZ, =  I=X ! ! -=XJLtfdt^t J! 0RjK  XXX#  .J < X JfKfJL>:Z,JXJZfX f ^z. =X0   t     ; =t 0  JZJg.#t $gJyu*Y't#';Y#'Y#-='XX (fX%J<u .H J% ' J &d<X)sX PW~K  XXX#  ƽ.J < X JfKfL<Z,JXXLdJ>:LfJ f< z. =X"   t      ; =t 0   <fX-JJ fXK>&J% (uJf%$/!f./d(J!'!$&u7%()3t/3;)Y/3Y/-)=3Xt$J!J<u  gf<fX-JJ   mffX-JJJ+<<f%$). + . &v=!j% c.f' X) uXgr< /s .XXcX#  c.J < X JJ<L y -J y Xfy<<yXy.< X .    y/ ! X t /W =t. ! -=XJL y"n*cXtK  XXcX#  c.J < XtJ<K ;Y<tW + z Y - gX z.<X X+ .    yX y<   "X  f *J *X i   X gY! g !Xf X KI /X y.  . +J..J." z(  1 fXJJ y<   J<" gXX'tXJ !"yftX Xo `hK  XXdX#  d.J < XtJ<K -Y<eXJJ< z X g Y - gX z.<X X .    ; z   Y"X  *J *X ?  X< v Y Y  $ t ]  !X i 3a A  /YW \X gX KI /X . tJX.J" z(  N   #p %W!=XJ&" zX #XX('X*<"8tX  >y"bj"tX Xj  oiK e  9.Yv ,>K- =X + [XJ ttK/IX-KX-KW?  .     p x   88L J Y     L u   <T2   r<t Y  XY] hK0X c. W: :!:I=Z. Yx;KX yK  XXX#  .J < X JfK,Z<Z,JXLdJ>:LfJ Z<& H><             = Y ;=t 0uI=X   <fX-JJ ffXK>&<%  .(J)1<%/!>tt1\*J!'!$&7%()3t/3;)Y/3Y/-)=3Xtt$J!J<u  = h%[%Y<fX-JJ.  mJfX-JJ1t)7<JuL/J62<)Y08t!<tX v% Zփ#K  XXX#  .J . X JfK,<Z>:Z,JXL ZX%. Z< H><             b= u ;Yt 0 v d>  g \F NX  <."J%<#>t &_Jy*Y't#';Y#'Y#-='XXf  %(Y<%J<u  = !9/%rt>@#J*&<Y$,t( W 0<<X% Z #.K  XXX#  .J . X tJ<Kf:>:Z,X [% ZJ.   :J % Z.%< X -=X..Z:$ [$K  XXԞX#  ۞.J . X JfKfL<Z,VJ>:LX [J.     J XJ. JYzJ/ W.t J.J XtJ%f..J/Z. .ty$. ($ [  Ks .XXX#  ǿ.J < XtJ<K<a  s  i+JJ t ! -=XJLtii JsXt|K  XXGX# 8 G.J . 8X tJ<Kd y< _y. CyJ< kJ  .    X 1. J.X < ! -=X kJJt.kJ AtX smsXK  XXGX# 8 G.J . 8X tJ<Kd y< _y. CyJ< kJ  .    X 1. J.X < ! -=X kJJt.kJ AtX smsXN y J Y e =Y> H>  X 4K  XXDX# ; D.J < ;X JJ<L a j )  W=iJt ! -=XJLffi he = ZY:>Y_ J# tXvX<X ssXXs iJK  XXEX# : E.J . :X tJ<<K  yf j   %  a J 'J'X<I = iJY  ! -=XJLtjJ r<Jsn jXXtK  XXFX# 9 F.J . 9X tJ<K  xf k # JX=u!fX!t#H JXx<5֞ 2XkMĺKs =.|XY=Y<<<|JXkovJ  K<' "-xt=<< Ls w0 ..[ ,  *J .X yxYyCX00=Z < X J#/ s YI  K)If'< Y8'X'zf $XMc bK(J$ Jx(&J8 J#v-#I YX K . #u$<   "XK6#L$.=" uYY=<n(J(tJ<of(f JK  XXX#  .J < X tJfL< ZX%ZJ   #  YBXKYSB  -=[c?Z    !#&'),-/2(,DGI ehmf /f JZ ,>/V?.. $t 0 wt"00 H$JMNPSVY Z\_r# t*0E0p0     $00K0f040589;>W 0Q060]0<)l)<K  XXX#  .J . X JfKf<L>:Z,X [#J.   # t YDtKVZVf+ d J>:LZX%J Z.    JJ _v  J  JXJ g. ,JX& Bt=<< = J  B%..Zf JYX.b=+J JJX*$<t&LXd0W0u;0KQf00f%(#[f eBX Z)%ZX$K  XX͝X#  ԝ.J . X JfKfL<Z,VJ>:LX ZJ.    K   J X<   JX<     J (%J KJXJ K" !t% f.... Zf<m<tCXY<< <tCXY<<<CX<% ZGK ^z Yv,>J fK-KW?{tYK< , $}(3DGH JMNPSU.VYZ\_ * p"00 I$ehm.*0E0 w0 f{X   $00K0f040589;>WJ 0Q060]0<)7K  XXfX#  f.J < X JJ<Kf<{Xt{.{JJL { 1XJkt<<16tZZ6hkXt)n"o<#\*K3X+JY%\'#';Y#'Y#;Y'Xf%y$JEt 00"0#'U#W[\^bei.jlp e$  0 Q200.XwX   $9*X*w*V*Y >)X?CDFJf -_*@*m*G**K  XXřX#  ̙.J . X tJ<K$f$    X  X  "%%X &(+,.1/ sXfJ ' BEEX Gbewq@u-=J- xt u0 &0#0F0HKLNQS.TWXZ]# l$ t)0C0q0 f    /0c0I0 u0< 3 478.:=U 0O050[0;)7KX;=XKIg <-X f X; s=gYt<. Y8'L8l 8,Xr tJX & tXJ*J:8 B t  X     z / t<X JXJ X)' tf  b<   X' )wt    /"t<"X<"th1Y/su ft  X  # "X.Y+suq"   sf"  ^(6JN%tJ-t Zz PY#K  XXgX#  g.J . X tJ<Kf:>:Z, {X. {< :>X =   5Y  J) vu.. {. sX P K  XXhX#  h.J < X tJ<Kt<Z,JXLdJ>:LfJ {J& :< {X =    u  Z1Y W [; KYJ<)t v  Y<1 u tf .Y  ! -=X. { {X P Ks .XXhX#  h.J < X tJ<Kt<Z,JJXZdJ>:L {X. { $ {.<X {    t f  J       0Zu    . J<..[X{( Y & {XJX | K  XXiX#  i.J < XtJ<fJ< {X. {<{J ,< { Ye = Y = .Y ! -=XJJJgtXJJ {J ue = Y W = gp  BK  XXiX#  i.J < XtJ<K<tX >,J X |X. J< |X |.<X> |  !    r 0X >u  {. X.  JJ[f<ftJ { | Ks .XXjX#  j.J < XtJ<fJZ,<JL |X.JJ<L | < K |.< X J J < |J  J Y uX t. Y     % =*    >Yv > _y Q/ utJ..C  Xt|  $.Y X|䐑f Ks .XXkX#  k.J . XtJ<tJ<Z,JXL |X.<J<L |< Y |.< X < J < |J  < Y wX t ud >X >  fZr LX >u$U?$KJ=$KJ<_ K  8J t 1u ! -=X...  Xt|X |.Y xt [u.K  XXlX#  l.J . XtJ<tJ< Z,JX X>, J<Z,<J<L |.J< |X.Y |> |  f x. 6 #   x. D ' Y YX   Y9 N *  t Xt/ !z u ! -=X... {X V L  < +((X. Y K/Y/  uJ.| &6|X*W uf Ks .XXnX#  n.J < X tJ<KtH>:Z,JXL }X. }<. }J     u X % *   w7 >/ +Y M L;~ Kt Kt KX   YrXt>  !v$ u = -=Xt...of Wt1(0X}䐑*W t us/ JXtoX#  oJJ . XtJ<K<X >HJ  }X J< J<L }X  }J< X < J < }J  < Y yX  <X yX  ! .Y YX =*   LY! v^H'P/!  /W / u#..J.  Xt}+ܐX  5 us/ JXtpX#  pJJ . XtJ<KJtX >HJ   }X J< J<L }X  }J< X < J < }J  < Yt uX <RxX Y X    =* ; Y[M Y! vJ/uuH'P/!  L7Ki}  Kf =X   !8!X wsXJX>  X!  Xtq  'u Y I=X.J..|J>/;<!Xt;#1 }䐑ې~ Ks .XXpX#  p.J . X tJ<Kf:>:Z, }X. }$ }.<X }<     % *    L/Y 8/= Y u t.  XJ  !2  Xts  'u = -=X.J}t [G w&JtW/;<!Xt;(1 ~  wK-X]y  O'tY'I<  Ks .XXijX#  ˳.J . X tJ<Ke o,J<LVJ>:L  Xs.c cJ Xf .    c: > X  =X =  t x  X ( XXKuuu E    X \ Lut ..bzf <  X Y L #I  't tXdYs=0=V&R8,t)$&Jz<` xX Xx< R(XqJ xd cX|K  XXX#  .J . X tJ<Ke  sVJ>  <sL  Xu. d  .    d: > X N  AXtgf.. T<h dg /s .XXNX# 1 N.J . 1X tJ<Le nx< `x o  .    o; = X > : u  [tg*  "fto< XXr or Ks .XX[X# $ [.J < $XtJ<KJ s  o X 6J = Y t; Y=gYf  = -=X u !]/XYt:Z=gXY>e. ?tgXY>gp!  XiuXYYZ.K  XX\X# # \.J < #XtJ<KXe  u<  Xu.JJ<L v   .   .X JJ < vJ; = X K Ld Xtv d >Y = Y : >t/  Y  ! -=X aXo P} Ks .XX^X# ! ^.J < !X tJ<Ks q:L  Xs. w   .    w; = X   ,  U ?Y e =Y >  Y > < >f ! -=XJLJ w  > Z Y    <!  =YV > ,t  U ?Y e =Y Yq > c< MYɭXY>gm wֻXk~ Ks .XX_X#   _.J <  X tJ<Ks q:L  Xs. w   .    w; = X   ,  9 ? Ye =Y >  Y > < >f ! -=X.. wX !   =Y V Lr Z  <  =YV > ,u< 9 ? Ye =Y Yq > kXX XwֻJXXk `XK  XX`X#  `.J . X tJ<K e   f w<  Xw x  .    x; = X  ; =t/  Y Kd =Y x. @ X -=X xJJt.*x  xֻXq pZN  NX)Xt   -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y-< uXY$  -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y-< uXY  -< uX Y -< uX Y -< uX Y -< uX Y -< uX Y-< uXZ$  -< uX Y -< uX Y -< uX Z, =< uXYЇu-YXYtXv>>,X  % j /usr/include/bits/usr/include/sys/usr/include/bits/types/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/usr/include/netinet/usr/lib64/perl5/CORE/usr/include/libxml2/libxmldom.ctypes.htypes.htime_t.hstddef.h__sigset_t.hstruct_timespec.hthread-shared-types.hpthreadtypes.hstdint-uintn.h__locale_t.hlocale_t.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hstruct_FILE.hFILE.hstdio.hsys_errlist.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hxmlstring.htree.hxmlregexp.hxmlmemory.hglobals.hxpath.hchvalid.hparserInternals.hperl-libxml-mm.hxpathInternals.hproto.hparser.h% -K%U {  H\ f`KO  ]<  X[ J Y ef sI  F Yg+ " J K K;  ]c=L K L ^Z<%!<="Wuv*<KWu / K =];Xa"="<A KK  J[Yt<"W %X ?X4JYNFN"JXt!KJ EA .)!,*KYe / K! +). K tZ ; . YZGX . ]tt   ZYحG]J% ?4JNTO"! .,*!Y$%Y!pJ+)/ ; Y JYYH t.    kK -S.Y  Y  J   fM? YK PKPX b< K \[ W< Y J tKH \ K K& Y MMX xX3KT 1H0f m u KxJ`3 Y  [ FX1r.kK  3o g JX]EAgU^d K JqX.n   /"[KY J^ m JMJ  Y  j k`J] hzJ\ *$J & J<LKL1   j X y JEj U?< / J   J . TJ    X K  t< K  uJM  /J .XJ b"J K  KH \J K- H XJ  ^ W Ktp34tK e:Z23xf <<s 3s J Y Xfo D5KDzP X X kM x g -! gJ . `ft u WJ3. Q/Q /<Q< Y  eX'+K'N Y rg<;j X X #  .S Y ;< X*. [%X[X!fltL 'O 2H ւ .MJ3< e  z k&(.K[ JX: K: :w X = !<< X  TK  8K L 2[w  F@..... l<:L ] ؃HXX n.X  tf[/. \ !'JK! Y n   \J1YeJ<ef  `pf0<gJtX &JrY+Z+> J.Y\&/K/W $/ Nw h JY X Z K K JJ KX , V7K7N   K}  wJ YKYzJ BwXJ .mJ<IKIy ! Kx  JKJYK\ #uJX ..uzJ BuhJ< k X  Zi ztX J [9wKh9zf J9w JJ g Y J Yt@J Y KOXgt.Xg. of ] EA tKK  z^h=  pJ Y <Z>   pJXXKPz^<iJX.j gwfJXiJX.gJ XJ[Pzfk.sfcK W x G Y O  Y  Y/&JKC.    KX wG Yg G ` J$X t   g%hf+X#Jlv,X$J\J  X a5 /usr/include/bits/usr/include/bits/types/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/sys/usr/include/usr/include/netinet/usr/lib64/perl5/CORE/usr/include/libxml2/libxmlperl-libxml-mm.cstring_fortified.h__locale_t.hstddef.hlocale_t.htypes.htypes.htime_t.h__sigset_t.hstruct_timespec.hthread-shared-types.hpthreadtypes.hstdint-uintn.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hstruct_FILE.hFILE.hstdio.hsys_errlist.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hxmlstring.htree.hxmlIO.hparser.hentities.hdict.hxmlregexp.hhash.hxmlerror.hxmlautomata.hvalid.hiconv.hencoding.hxmlmemory.hglobals.hperl-libxml-mm.hppport.hpthread.hproto.hperl-libxml-sax.h KX ?K=XY~ ~KX #~JK 'YtU t% g    z  v  mz #K=<YuIg.uX fK =XKYX  KwqM<(uX KKt K >XZ  g Ig! ]L mK   >XY = u  <KY;=Zr>t"&4Z-L.Z$ZtJZtKZr>t"&t4L<Y=gec  KK'Ys='t't4;=YJ ' L >Y'[K x'K CL >Y Xh s=X pK,=X" &t 4Y-tXY=ged  XKg -t1W=  u e K]<X]t   # uY   =  uD  q# u  Xn. b .K* AY2Y  <LY  MM _K<  J Yg8gl5_  t9zJ0 4d = 4q  X  K  ?+%Y f! h   ,J8U  =Y  XI u$X!<:Y"?- < ^' xI u$X!<:Y"%BxXG^X _<>K>Yu  tgt  Y7A=   gX < - =Xg [ f gt3 QfX >Y&$JK i t 0#Jn'<K Yxr f#<.X pKZ+X*f3]   KJ uIY ?YEY"._'(K=s =<YY f Y# t \Lty 5  t YJ 0Ks =<Y+X*f Y,J t,*< KXMJ, KW  < <Y  hJXX w "YJY K 8H. N$   J Y D : '%JK Q Z$<<'JY !X Xtf% <3XK  <@Y <{D~ JX KMU[ Y = zt. +. KY f! h J tw?m  =YtYY'#utKvYu Y, >X - =XK4jX. p<tJ\K>r ><Z;X f Y  K  MJ&ot;.x yX !t $Jt<XKx`  e u s<<];EJ;< .E.: j4 X  #fJ6J <@Y Gf9: z   YtXd<(vstdint-uintn.h__locale_t.hlocale_t.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hstruct_FILE.hFILE.hstdio.hsys_errlist.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hoverload.hppport.hxmlmemory.hxmlstring.htree.hxmlIO.hparser.hentities.hdict.hxmlregexp.hhash.hxmlerror.hxmlautomata.hvalid.hiconv.hencoding.hglobals.hchvalid.hparserInternals.hproto.hpthread.hstdlib.h 0 jov.Z==[;r>g"JJJJ@Z f#ׄX.< xt1Xf8JPW^J  f)(+f)Q,wXzx.XXXX  <UtX\f_J&epJ&?J/.269J>@JDGJ<Jt$f)jmJ6 xX to z<v X>t:>YJLXX[W> YX J .< XJXp< wXJDX f#2ׄ.J.  xt1Xf8JPW^J  f)(+f)Q,wXzx.vtXXpX  <UtX\f_J&epJ&?J/269J>@JDGJ<Jt$f)jmJ6 xX tjov.[=>[;r>g"JJ  XJXSJJ?Y f#ׄX.< xt1Xf8JPW^J  f)(+f)Q,wXzq.X XX  <UtX\f_J&epJ&?J/.269J>@JDGJ<Jt$f)jmJ6 xXstLʐX= w Y ; =  =xJ2LX= v Y  =x..K[ X= *X /X / >.< /X / >X /X / >X /X / >X /X / >X /X / >X /X / =X /X / =X /X /MG /t =t = /t =t > =t ="t} = t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = =t =t = =t =t = /t =t = /t =t > =t ="t <J}f 2f =f = Lt =t = >t =t = >t =t = >t =t = =t =t = =t =t = /t =t = /t =t > =t ="t~ = t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = =t =t = =t =t = /t =t = /t =t > =t ="t~ = t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = >t =t = =t =t = =t =t = /t =t = /t =t > =t ="t~ = .t =t = >t =t = >t =t = >t =t = >t =t = >t =t = =t =t = =t =t = /t =hJt = /t =t > =t ="t~ 2f =t = >t =t = >t =t = >t =t = =g<t =t = =t =t = /t =t = /t =t > =t ="t~ *X /X / >X /X / >X /X / >X /X / >X /X / >X /X / =X /X / =X /X / /X /X / /X /X 0 =X /"X~ = &X /X / >X /X / >X /X / >X /X / >X /X / >X /X / >X /X / >X /X / =X /X / =X /X / / X< /X / /X /X 0 =X /"X~ "X /X / >X /X / >X /X / >X /X / >X /X / >X /X / >X /X / >X /X / >X /X / =X /X / =X /[%<X / /X /X / /X /X 0 =X /"X~ "X /X / >X /X / >X /X / >X /X / >X /X / >X /X / >X /X / >X /X / =X /X / =X /cX< / /X /X / /X /X 0 =X /"X~ "X /X / >X /X / >X /X / >X /X / >X /X / >X /X / =f =f = =f =f = =X /X / /X /X 0 =X /"X~-DK"-s"!tv\  J < < #5K#s!tv\ Y = L< v + XK+T$<J.{LJYiZwvXXKJX*K*T`*x <t H>JYif0w XMG? UJ.K <Y FJf[# @8 c .z .zPt.XR KRR;K=tv\~ JKJKJXKtKX<.w 5 XK5YI=tYtv\ <J qXJ\J<]} ut!<Xh l<< .~ ~t Y~=<< r<~Y=Y<<v H Y~=Y<< uX J~<KV <K=sY.X=:>Y  X t ,< & t2F$J ZdX JJM? f[H> ...,X )Xf/JDJPJ" of " f)($f)E,fXhmw.XX   <HtKNfQJ&V_J&5J'.*-0J46J9<><>tW)Z]J. K=sY.X=:>Y  X t -< & t2F$J [cX JJM? f\H> ...,X )Xf/JDJPJ" mf " f)($f)E,fXhmv.XX   <HtKNfQJ&V_J&5J'.*-0J46J9<><>tW)Z]J.? ?)J:YI= Z  e Y< f YM YJ YJ . KKIK   8 Y  K 0 8X^Y Y.J PzJ <<  Jt J \ i   YK1JK#K8J%J J Y wJ YJN6XX<X#Xf ^tt &   X /I = Xt 0 t  1J/-!e*F2* 2f  w 4 Jt 2 ttX KSxRZ>X= Y >=H HZtXXoKXX YI<   XgMZfV>JX)fXJ2>t0t6 t1 t%+aAxX /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J 0X /X /J /X /X /J /X /X /J /X /X /J /X /X 0 Kf ="f<X#uYXYt<"X$Lf,Z<JX)f.J:fXJi<OXt- t2.tz:t4 t6.t|.~XkX^ ..S5 ..vf3Ksu.Yv J4 ;MGK LX]XjJxX*7 .0XKsu.Y Z ;=Z JJKIJXJ?Y f H>JL JY Kt,<  X&F 2 J Yf . JXN~@ f < Uf)X/J#D]JV_J(  f)$f'"*-0J46J9<>< ztXXX &)X/5J>J  k DJPV  f)$f()E,K%QWfZ]_.IfXhmm.^tE,fXhfm .XnX z)/")^)PJ"$*-0f46J9<J . XJ ^J ft5JH.KNfQJW2Z]J].JKjrvN. YN7=Z >:ZYtfJK IK ;X \ W =JJJ> f JK JX =JXN~@ F@ ... *X r<)X/JJ .... Dn.JV_J(  f)$f'"*-0J46J9<>< ytXyX. stE,fXhfm 5XX ))XPJ  .t5JH.KNfQJW2Z]J@}tK@?su.Y L IY...J ef:ZYtfJ  =JJeKZA> f w IY ....  w)Xf/J^J".... z DJPJV<_J(  f)(%($f)E,fXhXm . < ytX.XX H KNfQJ&WZ]J5J>J'f*-0J46J9<J.='K="vZ I . -  ..=WK=x.<zt t fJY I=X=  ;/t/t ..oJX utY}K?su. ZV=>XJL:J Z:Z JJN~@ fjׄ ...< xf)Xf/JDJPJl"t  f)($f)E,fXhmt.XX   <HtKNfQJ&V_J&5J'.*-0J46J9<><>tW)Z]J.Krv.[9=>Z΃JJ?Y fNׄ ..  x)Xf/JDJPJt"t  f)($f)E,fXhm)X   <HtKNfQJ&V_J&5J'.*-0J46J9<><>tW)Z]J. K?su[. X z<G=>Z/= Zd>  Y = fzJ KeJ JJM? fxׄ ...< xf)Xf/JDJPJd t  f)($f)E,fXhmx.XX   <HtKNfQJ&V_J&5J'.*-0J46J9<><>tW)Z]J.1 K1?su._ z<W=>Z̓JLJY >JJM? f\ׄ ...< v<)Xf/JDJPJn"t  f)($f)E,fXhmu.XX   <HtKNfQJ&V_J&5J'.*-0J46J9<><>tW)Z]J.,K,?su.] 9V=Z!X. ` :>  X JK J Z =JJM? f)f/J5J>J x  g t DJPJ  f)(%($f)E,fXhXm . < utXX H^KNfQJ&V_J'#*-0J46J9<J<tWZ]J.8 K8isu.] 9V=Z !  V>  YtfJJL> f I=JK ;J  =JJM? f I=JXM? f @ f< Yf)X/JDcJV_J_)/J5J>J>f# )f/5J>JYX + DJV_JDs"JPJq"  f)(%($f'"*-0J46J9<>.t  f)$f'"*-0J46J9<J t  f )(%!8$()E,K%QWfZ]JI<fXhmm.dtE,fXhfmm.tE,fXhfm n.XX )H/KNfQJ&V_JP &dX PJ$*-0f46J9<J zXoXXwX.  ` < J XX dJ ft5JH.KNfQJW2Z]JWqtZ]J].JK?su[. Y\7=Z   V>  JK J Y =JJN~@ f 2XJ et f)Xf/JDJV_J  <m    f)$f'"*-0J46J9<><>ttE,fXhf utXX  5J.f))PJW$Z]JHtKNfQJ:K1K s1 =s    { yL!v# uKo.[U?t0,>YKEOL~YK I= # -=X<X< X  ~KJ @'ufXt<kMJ YvL ...ofA KXpw qXX !<~.f{ x /usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/bits/usr/include/bits/types/usr/include/usr/include/libxml2/libxml/usr/include/sys/usr/include/netinet/usr/lib64/perl5/CORExpath.cstddef.htypes.hstruct_FILE.hFILE.hstdio.hsys_errlist.hxmlstring.htree.hdict.hxmlregexp.hxmlmemory.hhash.hxmlerror.h__locale_t.hlocale_t.htypes.htime_t.h__sigset_t.hstruct_timespec.hthread-shared-types.hpthreadtypes.hglobals.hxpath.hstdint-uintn.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hchvalid.hparserInternals.hxpathInternals.hparser.huri.h? [K<S  J?w#?;t?rf&J Y u  1 F@ < bf u  W= i $XX:X h ug LJJr >X =  Yt Y  *J0<J X< t   uX - =X > J =FK;AIw7v JY#"!VL6r  J   Y  Jf .J .[X ^  KZJqqX.JD\KD $t> ^  KZJqqX.JXXKX-J! ?  fd X X > [     XY  J...dtY t<c7. TX.X ?f=J ] JYKJL<. X =  [ ; =XJ .u .??K? $t> ^  KZJqqX.JIlaststatvallong long intPerl_av_pushold_parserPL_locale_mutexblku_oldsaveixIorigargcIorigargvsi_errnokeeper__pad0tbl_arena_next_spent_sizeIin_utf8_CTYPE_localehostentls_prevclose_parenPL_no_localize_reflex_stuffIlast_swash_hvxpvgv_readdir_ptrIstatcache_freeres_bufIcompilingIdbargsnew_perlblku_oldspsub_error_countxpvhvPERL_CONTEXT_asctime_bufferInumeric_standardsigngamprevcomppadIe_scriptPerl_newSV_typesv_u_servent_structPL_sv_placeholderIpreambleavDPPP_dummy_PL_parserIDBcontrolxpviotbl_maxsi_tidImy_cxt_sizeblku_old_tmpsfloorImain_rootxcv_outsideblku_type_PerlIO__localeshe_valuIutf8_totitle_spent_structnamed_buffPL_freqh_lengthop_firstIdoswitches_netent_sizethrhook_proc_tnext_branchPL_op_nameblock_evals_port__in6_uPL_no_wrongrefin_port_tgp_refcntprev_markIdef_layerlistsaw_infix_sigilIrestartjmpenvsave_lastlocIwarn_locale_spent_bufferIcolorsmg_objje_old_delaymagicmulti_endPerlIO_list_sPerlIO_list_tCOPHHscream_posIargvgvdespatch_signals_proc_tgetdate_errxio_flagsIsharehookold_regmatch_statexcv_xsubnextwordIminus_EIcheckavpad_1pad_2ImarkstackPL_bitcountIdump_re_max_lenxcv_flagsPL_warn_nlIstatusvalueIDBsingleutf8_substr__u6_addr8min_offsetPL_warn_nosemipmopst_atimsival_intIlast_in_gvIreg_curpmshare_proc_tIhash_rand_bits_enabled_call_addrlong doubleop_privatelex_formbrackSVt_LASTsbu_dstrAv_CharPtrPtr.cIrunopsIpsig_pend_ctime_bufferIcomppad_namePL_magic_vtablesImarkstack_maxsbu_iterssi_type_IO_wide_datainternalIreentrant_retintINonL1NonFinalFold__spins__blkcnt_tPTR_TBL_txhv_max_protoent_sizePL_no_symrefhent_hek_grent_ptr_getlogin_bufferxivu_eval_seenPL_curinterp__locale_dataPL_hash_seedpos_flagsIstack_baseexecImax_intro_pendingposcacheop_pmstashstartugroupsbu_strendre_scream_pos_data_scop_stashoffs_addrst_sizePL_opargspthread_key_tIperldblastparensi_addr_lsbIinplace__locale_t_pkeyIDBlinePL_bincompat_optionsIsv_arenarootjumpPL_uudmapgp_egvnewvalpadnamestatesxio_bottom_gv_unused2Iphaseyylensubbeg_asctime_sizeIblockhooksend_shift__nuserssbu_oldsaveix_pwent_ptrIosnamen_addrtypelex_casemodslex_brackstacknumbered_buff_STOREIefloatsizePADLISTIpeeppPADNAMEIregex_padretopprogram_invocation_namexcv_padlist_uminmodsp_pwdpIutf8_foldclosuresPL_checkIsv_yesparenfloorPL_op_private_bitfieldsbranchlikeJMPENVImain_startqr_anoncvIstashpad_archPerl_newSVrvmy_perlIenvgvIperlioIpadname_constIregmatch_stateprev_rexstderrIisarevIutf8localeIsignalhook__ownerPL_Noop_optc2_utf8__ino64_tsa_family_tsockaddr_inarp__pthread_list_tsubcoffsetsvu_fpyy_stack_frameIdebstashtopwordPerl_safesysfreereg_substr_datumsi_stackxpadl_maxInomemok__uint8_tfirstposPerl_warn_nocontextIdiehookprev_recurse_locinputany_ptr_readdir64_ptrCLONE_PARAMSIcompcv_vtable_offsetlex_repltimespecPL_interp_size_5_18_0PerlInterpreterxpadnl_max_namedPL_check_mutexxpvlenu_pvILatin1st_nlinkIminus_Fre_eval_strIscopestack_ixsp_maxIscopestack_maxIminus_aany_pvpIminus_cIminus_lIminus_nIminus_pIargvout_stackPL_op_seqIinitavsin6_familytbl_itemsPerl_ophook_tcache_maskPL_no_dir_funcfirstcharsImaxsysfdIlocalizinglex_sharedservent_crypt_struct_bufferPL_op_private_labelsrxfree_IO_save_endpw_namesp_lstchgcurly_getlogin_sizePL_sig_nameIunicodeblku_subqr_packageIrestartop__timezonePL_thr_keygofs__mask_was_savedPERL_PHASE_CONSTRUCTIlastgotoprobecop_lineIsecondgv__locale_structIsavebegininitializedXPVAVSTRLENexitlistentryop_ppaddrxpadnl_allocIcheckav_saveIdebug_pad_IO_backup_base__jmp_buf_taglex_flagsIendavblku_oldscopespIutf8_idcontIcomppad_name_fillmy_opIHasMultiCharFoldglobhook_tXPVCVPL_sh_path_sys_errlistPL_hash_seed_setregnodestdinIperl_destruct_levelsi_cxixmg_virtualpadnamelistoptoptinterpreterPL_warn_reservedPMOPIstashpadixst_uidlongfoldsp_min_IO_read_endxcv_xsubanyPADOFFSETPL_valid_types_RVIstatbufsbu_rflagsxpv_curxpadn_flagsIstderrgvxio_page_lenperl_memory_debug_header_IO_save_baseIin_clean_allmark_nameop_flagsold_regmatch_slab__ino_treg_substr_datalex_super_state_grent_structxcv_root_ucurlymsettingPL_uuemapPL_nanPL_magic_dataIcustom_op_descsPL_hexdigitsi_prevXPVGV_addr_bndsp_namp_IO_write_endlex_startsIsavestackavlensi_codeImodcountprev_curlyxIsortstashPL_mod_latin1_ucIstdingvsvt_localsp_warnIcustom_opsCHECKPOINTXPVHVany_av_grent_bufferlast_uni_IO_buf_baseXPVIOsp_expire__uint16_tminlenretIofsgvXS_unpack_charPtrPtrIdelaymagic_gidxcv_gv_uIcollxfrm_multtbl_arena_endIsavestack_ixPL_C_locale_objsockaddr_x25SVt_PVAVsin6_flowinfoxmg_magicsvu_gpany_dptrintuitIbody_rootssi_sigvalhek_lenIcollation_ixtokenbufop_nextopline_tmgvtblPL_valid_types_NVXPL_runops_dbg_readdir64_sizeIutf8_xidcontsi_cxstackyyerrstatus_hostent_ptrsbu_rxxcv_padlist_IO_markerPL_revisionsvt_get_Boolsvu_iv__prevIsort_RealCmpsbu_rxtaintedop_moresib_flags2xpv_len_uIpatchlevel_pwent_structnextvalsvu_pvany_gvIhash_rand_bitssbu_orig_IO_lock_t__gid_t_IO_read_ptrIparserxpadlarr_dbgstack_max1runops_proc_tany_hvPL_subversionIpadlist_generationSVt_PVFM__environxpadnl_maxIdefoutgv_lowerIstatusvalue_posix_pwent_buffer__ctype_tolowersiginfo_tany_ivmax_offsetIchopsetIrpeeppoldcomppadPL_fold_localesbu_rxresSVt_PVGVIincgvsi_markoffxpadnl_fillPL_no_usymtv_nsecnexttypesig_slurpyIcurpm_underSVt_PVHVSighandler_tpthread_getspecificsvu_hashin6addr_loopbacksvu_nvlex_inpatlast_lopsockaddr_ax25PL_isa_DOESptr_tbl_arenaSVt_PVIOSVt_PVIVfilteredIlastfdPL_perlio_fd_refcntIeval_start_readdir_structIlast_swash_keyls_linestrPerl_check_t_readdir_size__alignPADNAMELISTSVt_PVCVPERL_PHASE_START__srcxcv_hscxtany_u32_ctime_sizeop_pmreplrootud_inoIsavestack_maxIlocalpatchesIsv_rootSVt_PVLVp5rxop_next__saved_masksvu_rvsvu_rxsockaddr_eonany_opIcurstackSVt_PVMGIpadix_floorsi_statusxpadl_arrh_addrtype_strerror_sizeIdelaymagic_euidbufendPerl_newSVpvlex_inwhatany_pvPL_valid_types_PVXxnv_nvPL_phase_namessin_zeroIopfreehook_protoent_ptrIunitcheckavsvu_uvPerlIOlprotoentmg_lenImemory_debug_headerPL_no_modifyany_svSVt_IVItop_env__blksize_t_IO_buf_endshort unsigned int_spent_ptrPerl_av_fetchItmps_stackyy_lexsharedoffsIseen_deprecated_macro_IO_codecvtIsv_undefIpsig_nameLEXSHAREDclone_paramsperl_drand48_tIgensymPL_foldIregmatch_slabop_redooprsfp_hostent_structstart_tmpxio_fmt_namesvt_lencop_hintsh_nameIerrorsPL_no_memxpvlenu_lenh_aliases_hostent_sizePL_Yesop_pmreplstarthent_refcountsaved_copylex_sub_inwhatany_uvItmps_floorPL_do_undumpIstrxfrm_is_behavedxpadl_idIbasetimeIop_maskIsighandlerpunreferencedxpadnl_refcntIUpperLatin1xio_ofp_hostent_buffercop_seqmulti_startop_pmreplroot_shortbufSVt_NVIDBtracemaxlenpre_prefixop_targIbeginavje_retresume_statePL_dollarzero_mutexIsv_constspw_dirlex_casestackop_lastopIsub_generationblku_evalfloatPL_versionPL_no_securityIutf8_foldable__countunsigned charsi_cxmaxmulti_open_killst_rdevLOOPILB_invlistSVt_PVREENTRImess_svIglobalstashImin_intro_pendingPL_perlio_mutexexpectoldlocIcollxfrm_baseIutf8_perl_idcontcx_blkIstatnamexnv_u__uid_tsin6_scope_idblku_gimmePL_valid_types_IVXst_ctimrecheck_utf8_validityIutf8_tofoldxcv_rootISB_invlistblock_formatin_addr_top_sibparenttz_dsttime__dataold_namesvGNU C17 8.5.0 20210514 (Red Hat 8.5.0-28) -m64 -mtune=generic -march=x86-64 -g -g -O2 -fexceptions -fstack-protector-strong -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -fPIC -fplugin=gcc-annobinIAssigned_invlistpeep_tPL_my_ctx_mutexPerl_sv_free2Isv_nominlen__off_tperl_phaseIin_clean_objsd_reclenPL_mmap_page_sizePERL_PHASE_DESTRUCTin_podgp_ioImultideref_pcIors_svxpadn_protocvIevalseqIunlockhookregexp_enginemg_flagsIcurstashgr_passwdPerl_ppaddr_tgr_gidIstashpadmaxsi_overrun__clock_tSVt_NULLls_bufptrIbeginav_save__uint32_tIorigfilenamexmg_hash_indexlast_lop_opInumeric_localcop_warningsPL_op_private_bitdef_ixIcop_seqmaxop_pmtargetgvPL_veto_cleanupform_lex_stateIstatgvIdestroyhookcoplinest_blocks_sys_siglistsbu_msbu_sPerl_safesysmallocsave_curlyxIcomppadsub_no_recoverlex_dojoinxmg_udirent64gp_cvgenPL_utf8skipxcv_fileSVt_PVNVitervar_ugp_flagsxiou_dirp_servent_bufferPL_op_mutexparen_namesIregistered_mrossi_uidpw_passwdlex_allbracketsopvalIcurcopdbblock_subpos_magic_old_offsetgp_file_heksv_refcntsockaddr_in6__nlink_ttbl_aryxav_allocsi_fdnparensPL_no_funcxpadn_refcntIeval_rootold_eval_rootnamed_buff_iterst_gidIdowarnyycharIfirstgvmg_moremagicop_pmoffsetop_pmstashoffPERL_SIMGVTBLop_staticMAGICItmps_maxoptargPL_latin1_lcsockaddr_ipxIthreadhookPL_valid_types_IV_setblku_givwhengr_nameop_typeIutf8_perl_idstartsublenblku_oldmarkspxivu_ivIutf8_swash_ptrs_netent_ptrIpadname_undefpreamblingproto_perl_uppercx_uoutputIDBcvPL_sigfpe_savedtrieIlockhook__ctype_toupperPL_inf_xnvuPerl_keyword_plugin_txio_lines_leftcompflagssockaddr_isopthread_mutex_tIin_load_modulePL_memory_wrapxio_pagesigjmp_bufIlaststype__ctype_b__listh_addr_listIutf8_charname_continuein_my_stashxpadn_len_IO_write_ptr_strerror_bufferdummyIunitcheckav_savePL_op_descsi_stimePL_no_aelemXS_pack_charPtrPtrlastcloseparenshort intifmatchIdumpindentIoldnamepreambledop_code_listxhv_keysitersave_readdir64_struct_sys_nerrIAboveLatin1Iutf8_mark_servent_sizesi_signoIDBgvIlast_swash_tmps__namessv_anyblk_uxcv_startacceptedgvvalIWB_invlistolddepthIutf8cache_boundsprev_evalIpadixdefsv_save_netent_bufferxcv_stashYYSTYPExcv_gv_markersPL_keyword_plugincop_hints_hash_filenoIcustom_op_nameslex_sub_replstdoutxpadn_highre_scream_pos_datahek_hash_ttyname_bufferPL_hints_mutexIknown_layers_netent_errnoItaintingPL_op_private_bitdefsIcurcopIstack_sp__ssize_tany_boolregmatch_info_auxPERL_PHASE_ENDPL_interp_sizeIcollation_standard__glibc_reservedlex_deferxmg_stashPL_runops_stdIorigalensbu_maxiterssockaddrIdebugrefcounted_heIcurpadPL_op_private_valid__time_t__daylightst_mtims_protosbu_targd_type__destlogicalIforkprocesslex_bracketsxio_top_gvIutf8_tolowerPL_op_sequence/home/.cpanm/work/1779768303.2508939/XML-LibXML-2.0213blku_oldcopperl_mutexIcurstackinfoIstart_envlex_fakeeoflex_sub_opstashesIstashcachexnv_linesPL_use_safe_putenv_IO_write_basep_aliases_netent_structin_mynext_offxivu_uvsin_portpadnlImodglobalin6addr_anyICmdsockaddr_atregmatch_info_aux_evalxcv_start_uPL_no_helem_svbasespIgenerationIGCB_invlistIstrtabxpadl_outidxpadn_lowblock_givwhenregexp_paren_pair__sizecrypt_datapprivatecv_flags_tcur_top_envxpadn_typestashIin_utf8_COLLATE_localeIlast_swash_slenstate_uPERL_PHASE_RUN_sigfaultop_sparelex_opst_inopw_gecos__pid_tparsed_subop_lastxio_typeyylvalsp_inactsockaddr_dlxav_fillhent_valIorigenvironIdelaymagic_egidgp_avscream_oldsmg_ptr_cur_columnmaxpossa_familyptr_tblInumeric_namelazyiv_sifieldsSVCOMPARE_tSVt_REGEXPIpsig_ptrgp_cvxgv_stashnetentsaved_curcoptv_secblku_u16Iprofiledata__sigset_tgp_lineImainstackIcurpmop_pmflagsst_blksizexpadn_ourstashprogram_invocation_short_namePL_sig_numptr_tbl_ent_hostent_errnoop_slabbedIsublineIargvoutgvIwatchaddrIdefgvhek_keyPerlExitListEntryxio_bottom_namegp_formIreentrant_bufferhent_nextcheck_ix__off64_tIunsafeIhintgvsockaddr_in__jmp_bufIDBsignalIutf8_charname_beginblku_formatPL_ppaddr__dirstreamsin_addrIXpvIregex_padavPL_perlio_debug_fd__builtin_strcpyblku_loopcache_offsetwantedpw_uid_timerIstrxfrm_NUL_replacement__locksig_elemsPL_valid_types_NV_setgr_memIxsubfilenamegp_hvIpad_reset_pendingopterrdfoutgv_sigchldxcv_depthItaint_warnIArgvpw_shellsi_next_syscallPL_no_symref_svIexitlistIsubname_IO_read_basePL_warn_uninitany_i32Ihv_fetch_ent_mhUNOP_AUX_itemsvt_dup__pthread_mutex_sInumeric_radix_svPL_fold_latin1xcv_outside_seqPL_magic_vtable_namesPL_no_sock_funcIsplitstrxcv_heksvt_freesockaddr_nslong long unsigned intsi_addrdirentIbody_arenascheckstr_grent_sizePL_csighandlerpSVt_INVLISTIsortcopPL_warn_uninit_svsin_familyIsignalssbu_typesi_pidmg_privatedupeje_buflazysvItoptargetIstrxfrm_max_cpIerrgvPerl_sv_2pv_flagssvt_clearPERL_PHASE_CHECKnexttokePL_no_myglobItmps_ixIsig_pendingsubstrsany_svpintflagsdestroyable_proc_tIfdpidxpadlarr_allocivalany_dxptrn_netop_pmtargetoffIcollation_nameIefloatbuf_pwent_sizeoldvalany_longxiou_anyIexit_flagsc1_utf8Iglobhooksin6_portPL_block_typed_offxio_top_namexpadn_type_uIptr_tableIcolorset__jmpbufIfilemode__dev_t__kindIexitlistlensockaddr_unop_foldedIdelaymagicPL_charclassImarkstack_ptrblockpw_gidprev_yes_states_name_protoent_structop_compgp_svsvu_array__pthread_internal_listwhilemIInBitmapmother_re__valn_aliases_sigsysextflagsxio_fmt_gvxpadn_gencop_fileIcurstnamecx_subst__u6_addr16Isv_countsvt_setIdefstashItaintedtz_minuteswestIbodytargetoldoldbufptrxav_maxxiv_u_protoent_bufferst_modesavearray_xivu_chainleave_opIutf8_xidstartre_eval_startperl_debug_padIstack_maxsvtypest_dev__u6_addr32je_prevIclocktick__syscall_slong_tIXPosix_ptrsIDBsubspwd__nextIutf8_idstartje_mustcatchnumbered_buff_LENGTHyy_parserblock_loopop_savefreeIscopestackIformtargetpad_offsetPL_perlio_fd_refcnt_sizes_aliaseslastcpIconstpadixmulti_closestatherelinesImy_cxt_listIPosix_ptrs_freeres_listxivu_namehek__pad5_ttyname_sizesin6_addrIwatchokS_SvREFCNT_dec_IO_FILEPL_my_cxt_indexPerl_av_len__tznamep_protosvt_copyxnv_bm_tailsival_ptrXS_release_charPtrPtrmark_locsi_utimexpvavIsrand_calledoptind__mode_tsp_flagperl_keyIreplgvsa_dataIbreakable_sub_genrsfp_filtersIin_evalsuboffset__sigval_t_servent_ptrlex_re_reparsingIutf8_toupperlinestartsig_optelemsPERL_PHASE_INITIcv_has_evalmg_typexpvcvnumbered_buff_FETCHIrandom_stateIscopestack_namesi_bandxpadn_pvIcomppad_name_floorIdelaymagic_uidIwarnhookIlast_swash_klen_xmgu_sigpollxio_dirpucur_text__elisionblku_oldpmImain_cv_xmlNode__assert_failxpvivxmlGcMemSetupXML_ATTRIBUTE_IDREFxmlNsTypexmlReallocxmlMallocAtomicLocintSubsetxmlMallocXML_HTML_DOCUMENT_NODEXML_ENTITY_DECLXML_DOCUMENT_NODEXML_ATTRIBUTE_NOTATIONPerl___notusedPerl_xs_boot_epilogXML_TEXT_NODEXS_XML__LibXML__Devel_refcnt_incXS_XML__LibXML__Devel_node_to_perlXML_ENTITY_REF_NODEXML_ATTRIBUTE_NODEPmmSvNodeExtxmlReallocFuncnsDefPerl_newXS_deffileextSubsetxmlChartmpXSoffXS_XML__LibXML__Devel_refcntXML_XINCLUDE_STARTPerl_xs_handshakexmlStrdupFuncExternalIDxmlElementTypeXPVIVXML_ELEMENT_DECLTARGi_ivXML_PI_NODEXS_XML__LibXML__Devel_node_from_perl_xmlExpNodeXS_XML__LibXML__Devel_refcnt_decdebug_memoryXS_XML__LibXML__Devel_fix_ownerS_POPMARKXML_XINCLUDE_ENDpsviXML_CDATA_SECTION_NODEXML_ATTRIBUTE_IDxmlMallocAtomicPmmFixOwnerparseFlagsXML_DOCUMENT_FRAG_NODERETVALXML_ATTRIBUTE_DECLelementspropertiesPmmNodeToSvxmlExpNodePtrPmmREFCNT_decXML_ATTRIBUTE_ENUMERATION__PRETTY_FUNCTION___xmlNsnotationsgetenvxmlMallocFunc_xmlDictforbiddenExpxmlMemUsed_xmlAttrPerl_sv_newmortalatypeXML_DOCUMENT_TYPE_NODEcharsetXML_NAMESPACE_DECLoldNsxmlNodePtrXML_DTD_NODExmlAttributeTypeXML_ATTRIBUTE_IDREFSxmlMemStrdupxmlFreeFuncxmlMemMallocAtomicSystemIDXS_XML__LibXML__Devel_mem_usedchildrenXML_ATTRIBUTE_ENTITYXML_ATTRIBUTE_NMTOKENSXML_ENTITY_NODEPerl_sv_setiv_mg_xmlDocextraPerl_croak_xs_usage_xmlDtd_ProxyNodeemptyExpXML_DOCB_DOCUMENT_NODEboot_XML__LibXML__DevelxmlFreeXML_ATTRIBUTE_ENTITIESpentitiesPerl_sv_2iv_flagsDevel.cPerl_sv_2mortalXML_ATTRIBUTE_CDATAXML_NOTATION_NODEXML_COMMENT_NODEhrefXML_ELEMENT_NODEXML_ATTRIBUTE_NMTOKENxmlNodeSetBasePmmSvContextfoundxmlTextReaderConstNameencstringnameTabspaceMaxXS_XML__LibXML__Element_newxmlParserInputStateXS_XML__LibXML__Reader_isValiddisableSAXXML_CHAR_ENCODING_UTF8xmlOutputCloseCallbackXML_CHAR_ENCODING_EBCDICnode_seqXS_XML__LibXML_INIT_THREAD_SUPPORTvarLookupFuncvarLookupXS_XML__LibXML__Reader_lineNumberLibXML_get_recoversysIDXS_XML__LibXML__parse_sax_stringxmlXPathRegisterNsxmlSplitQName2hasPErefs_xmlOutputBufferRETVALSVvstatexpath_resXS_XML__LibXML__Document_compressionxmlCtxtUseOptionsXML_PARSER_PROLOGxmlNewTextXS_XML__LibXML__Document_removeInternalSubsetxmlParseDocumentbegin_linexmlAddSiblingxmlElementContentOccurXML_ELEMENT_CONTENT_MULTextSubSystemstringvalis_sharedXS_XML__LibXML__Reader_byteConsumedXML_TEXTREADER_MODE_ERRORxmlNewDocFragmentxmlNodeGetBasexmlDocGetRootElementXS_XML__LibXML_HAVE_STRUCT_ERRORSPerl_croakXML_PARSE_COMPACT_xmlParserCtxtLibXML_generic_variable_lookupmemsetnsURIXS_XML__LibXML__LibError_str1XS_XML__LibXML__LibError_str2XS_XML__LibXML__LibError_str3Perl_sv_isobjectonly_nonblankXS_XML__LibXML__Node__attributesxmlNewDocfreeElemsNrsetDocumentLocatorSAXFuncxmlXPathNewNodeSetcompressedXS_XML__LibXML__parse_sax_fhXS_XML__LibXML__XPathContext__findnodeswant_vtbl_hintselemXS_XML__LibXML__Document_createRawElementstartElementNsSAX2FuncLibXML_test_node_nameXML_FROM_MODULElastErrorXML_PARSER_SUBST_ENTITIESpositionwritecallbackdebugNodePerl_get_hvarray_resultXML_FROM_CHECKPerl_sv_isaXS_XML__LibXML__Node_lookupNamespaceURIxmlSetNsPropXML_BUFFER_ALLOC_IMMUTABLEXS_XML__LibXML__Document_createProcessingInstructionXS_XML__LibXML__Element_hasAttributeXS_XML__LibXML_load_catalogXML_FROM_PARSERXML_FROM_MEMORYxmlCopyNodefallback_amgLibXML_old_ext_ent_loaderxmlRelaxNGParserCtxtPtrsizeentcopyXS_XML__LibXML__XPathExpression_newxmlHashCreateXS_XML__LibXML__Element_setNamespaceDeclURIrshift_ass_amgxmlStrEqualxmlEnumerationPtrvaluePopxmlFreeNodeXS_XML__LibXML__XPathContext__findxmlStructuredErrorFuncXS_XML__LibXML__Reader__preservePatternnodeNr__va_list_tagreferencexpvnvnb_axisnewNodeXS_XML__LibXML__XPathContext_DESTROYxmlRegisterInputCallbacksXS_XML__LibXML__Namespace_nodeTypeXS_XML__LibXML__RelaxNG_DESTROYrngctxtgetPublicIdXS_XML__LibXML__Node_ownerNodePmmContextREFCNT_decresults_pvxmlTextReaderReadStateXML_FROM_OUTPUTXML_PARSE_NOXINCNODEXS_XML__LibXML__Reader_readAttributeValuewarningstartElementSAXFuncPROXY_NODE_REGISTRY_MUTEXfloatvalxmlIsBlankNodeinternalSubsetSAXFunc__chXS_XML__LibXML__Element__getNamespaceDeclURIXML_READER_TYPE_CDATAcheckedXS_XML__LibXML__Node__findXS_XML__LibXML__Reader__closexmlTextReaderLocatorPtrXML_PARSER_IGNORExmlTextReaderRelaxNGSetSchemaxmlC14NDocDumpMemoryLibXML_NodeToSvXML_PARSER_MISCdomXPathCompFindnsPrefixLibXML_perldata_to_LibXMLdatazLevel_xmlEntitynodeSv2Cmax_amg_codefreeElemsxmlTextReaderQuoteCharLibXML_validity_warning_ctxXS_XML__LibXML__Node_insertBeforeXML_PARSE_READERnodepathPerl_stack_growPerl_call_methodxmlNewReferencenewPrefixPerl_sv_derived_fromXML_FROM_DATATYPExmlSetPropXS_XML__LibXML__Document_createAttributeNSfilehandlerxmlRegexpPtrXML_ERR_FATALns_mapHTML_PARSE_NODEFDTDxmlUTF8Strlen__xmlParserVersionXML_PARSE_NONETxmlNewDtdXML_BUFFER_ALLOC_EXACTxmlUTF8StrsubxmlCharEncodingInputFuncXS_XML__LibXML_ENDxmlXPathCastNodeToNumber_xmlSAXHandlerignorableWhitespaceSAXFuncrefNodeXS_XML__LibXML__LibError_domainxmlSchemaValidateOneElementxmlIsCharGroupdomXPathCompSelectXS_XML__LibXML__Reader_isNamespaceDeclXS_XML__LibXML__Element_getAttributeNodeXS_XML__LibXML__CDATASection_newxmlRelaxNGParsexmlSchemaValidityErrorFuncto_gv_amg_xmlXPathAxisnsMaxsmart_amgxmlExternalEntityLoaderXML_READER_TYPE_DOCUMENT_TYPEXS_XML__LibXML__parse_sax_filexmlEncodeEntitiesReentrant_xmlCatalogsge_amgend_lineHTML_PARSE_RECOVERXS_XML__LibXML__pushhasInternalSubsetXS_XML__LibXML__Node_setRawNameboot_XML__LibXMLwant_vtbl_nkeysinternalFlagsin_amgspaceNrXML_FROM_HTMLXS_XML__LibXML__Attr_isIdXML_PARSER_EOFxmlCharEncOutFuncerrNoXS_XML__LibXML__externalEntityLoaderXML_TEXTREADER_MODE_INTERACTIVEnsWellFormedcos_amgexternalXS_XML__LibXML__Reader__getParserPropxmlReaderForFilevalueTabLibXML_load_external_entityelementnodeMaxPerl_get_svXS_XML__LibXML__Reader_nextSiblingXS_XML__LibXML__Namespace_declaredPrefixpushTabvstateTabXS_XML__LibXML__XPathContext_newhtmlxmlDocDumpFormatMemoryXML_READER_TYPE_NONExmlXIncludeProcessFlagspfdrfilename_svXS_XML__LibXML__Reader_xmlLang__stack_chk_failXML_READER_TYPE_ATTRIBUTEXML_FROM_C14NXML_ENTITY_NOT_BEING_CHECKEDparseModeXS_XML__LibXML__Node_getNamespacesexternalSubsetSAXFuncopLimitxmlBufPtrhtmlReadFiledomAttrSerializeContentxmlStrlenXS_XML__LibXML__Attr_newolddtdXS_XML__LibXML__Element_setAttributeNodedomXPathSelectPerl_sv_catpvXS_XML__LibXML__Namespace__isEqualxmlGetNsPropnameMaxnodelenxmlTextReaderCurrentDocxsd_docxmlSchemaValidCtxtPtrxmlGetLineNothreadsXS_XML__LibXML__Node_isSameNodepvalueXML_PARSE_NOERRORdomGetNodeValuepow_ass_amgDocProxyNodePtrxmlTextReaderMoveToAttributeNomult_ass_amgxmlTextReaderMoveToAttributeNsxmlXPathVariableLookupFuncXML_PARSE_XINCLUDExmlXPathFreeNodeSetafternewnsprocessingInstructionSAXFuncxmlCharEncodingOutputFunc_DocProxyNodenNodeXS_XML__LibXML__RelaxNG_parse_locationXS_XML__LibXML_LIBXML_RUNTIME_VERSIONxmlDtdPtrXML_FROM_HTTPexpandwant_vtbl_ovrldXS_XML__LibXML__Document_createEntityReferenceXS_XML__LibXML__Node_unbindNodeXS_XML__LibXML__Reader_localNameXS_XML__LibXML__XPathContext_getVarLookupFuncxmlStrcatXS_XML__LibXML__XPathContext_getContextNodexmlTextReaderAttributeCountXPATH_XSLT_TREEwant_vtbl_debugvarxmlSetGenericErrorFuncXS_XML__LibXML__Text_substringDataXML_CHAR_ENCODING_UCS4_3412XS_XML__LibXML__Reader_lookupNamespaceconcat_ass_amgxmlReplaceNodeXML_ELEMENT_CONTENT_OPTwell_formedrecord_infoxsub_tmp_svXS_XML__LibXML__Node__findnodesXS_XML__LibXML__Document_createDTDPerl_hv_common_key_lenxmlTextReaderStandaloneXS_XML__LibXML__RegExp__compileXML_PARSER_COMMENTLibXML_struct_error_callbackxmlBufferAllocationSchemeperl_docshortRangeiter_amgattributeDecldtd_svxmlFindCharEncodingHandlerXML_ELEMENT_CONTENT_SEQxmlGetNodePathpnameLibXML_will_die_ctxcommentsPerl_newSVpvnXS_XML__LibXML__XPathContext_setContextSizecatalogsXPATH_LOCATIONSETXML_PARSE_NOWARNING__xmlIndentTreeOutputXML_INTERNAL_GENERAL_ENTITYXS_XML__LibXML__Pattern_matchesNodecol_curxmlParserMaxDepthXS_XML__LibXML__Text_newhashkeyretvalXS_XML__LibXML__Reader_copyCurrentNodeXS_XML__LibXML__Reader_nextPatternMatchncmp_amgXML_PARSER_SEVERITY_VALIDITY_WARNINGdomReplaceChildoelemnomethod_amgXS_XML__LibXML__Document_setCompressionnodeInfoTabadd_amgxmlParserInputPtr__fmtattr_nodexmlCopyDocneg_amgPerl_mg_setstartDocumentSAXFuncxmlXPathAxisFuncxmlValidateNamedomInsertAfterXS_XML__LibXML__RelaxNG_parse_bufferwant_vtbl_vecxattrxmlDocDumpMemorydomAppendChildsvprefixxmlTextReaderPreservePatternto_av_amgXML_CHAR_ENCODING_UCS4LExmlXPathNodeSetAddXS_XML__LibXML__Reader__setRelaxNG_xmlParserNodeInfoPerl_sv_setnv_mguserDataxmlTextReaderPtrXML_PARSE_NOENTcontentIOxmlStrchrXS_XML__LibXML__Reader_moveToElementabs_amgXML_PARSE_SAXXS_XML__LibXML__Text_setDataconcat_amgnodelistcheckIndexxmlTextReaderGetParserColumnNumberxmlParserSeveritiesXS_XML__LibXML__RegExp_isDeterministicXS_XML__LibXML__Reader_nodeTypexmlCatalogPtrxmlXPathCastNodeToStringxmlSAXHandlerPtrPmmProxyNodeRegistrySizexmlEntityTypePerl_savetmpsHTML_PARSE_COMPACTmark_stack_entrydomGetAttrNodeXML_PARSE_BIG_LINESXS_XML__LibXML__Reader_nextElementnbCharsns_wildcardxmlXPathFreeObjectxmlNewChildXS_XML__LibXML__Node_line_numberwrittenXS_XML__LibXML__Document_validateencoderPmmCloneNodenbLongRangeXML_TEXTREADER_MODE_READINGread_lengthxmlEntityPtrres_lenstartDocumentXS_XML__LibXML_LIBXML_VERSIONXML_PARSE_NODICTXS_XML__LibXML__Reader_finishXS_XML__LibXML__Attr__setNamespacestrerrorsbxor_amgsnprintfxmlLoadCatalognotationDeclSAXFuncfinishDtdxmlBufferCreateLibXML_struct_error_handlernotationDeclgetParameterEntitySAXFuncxmlRegexpIsDeterministxmlTextReaderIsDefaultLibXML.cxmlXPathTypePtrxmlTextReaderIsNamespaceDeclxmlFreePropxmlTextReaderGetErrorHandlerPerl_sv_vcatpvfattr_valuexmlStringTextNoencLibXML_output_write_handlerxmlStrcmpLibXML_configure_xpathcontextxmlFreeParserCtxtXML_CHAR_ENCODING_NONExmlParserCtxtPtrunparsedEntityDeclXS_XML__LibXML__Node_parentNodehasExternalSubsetSAXFuncxmlRegexpCompilePerl_sv_2nv_flagssbor_ass_amgxmlInputReadCallbackxmlXPathNANdomInsertBeforeXS_XML__LibXML__Element_removeAttributeNSxmlSchemaParserCtxtPtrpxpathsne_amgXML_FROM_REGEXPxmlOutputBufferCreateIOS_croak_memory_wrapXS_XML__LibXML__Reader_xmlVersion_xmlXPathTypeXML_INTERNAL_PARAMETER_ENTITYxmlTextReaderClosevalueMaxxmlStringCommentxmlTextReaderSetParserPropXML_FROM_XINCLUDELibXML_old_ext_ent_loader_globalvstateMaxencoding_svxmlTextReaderConstXmlLangXS_XML__LibXML__Element_appendTextXML_READER_TYPE_ELEMENTXML_ELEMENT_CONTENT_PLUSread_results_ivnodesetvalxmlRelaxNGFreewant_vtbl_defelemXS_XML__LibXML__Document_documentElementlibErrxmlAddPrevSiblingxmlValidateDocumentxmlXPathNewContextPerl_call_pvPerl_sv_vcatpvfnwant_vtbl_packelemxmlSaveFormatFilemax_typesXS_XML__LibXML__Document_toStringHTMLfuncHashXS_XML__LibXML__Reader__newForFileXS_XML__LibXML__Dtd_parse_stringHTML_PARSE_PEDANTICXS_XML__LibXML__Node_previousNonBlankSiblingxmlCreatePushParserCtxtXS_XML__LibXML__Dtd_newxmlRelaxNGNewMemParserCtxtperl_functionXML_EXTERNAL_GENERAL_UNPARSED_ENTITYXS_XML__LibXML__parse_fhXML_READER_TYPE_COMMENToNodeentityDeclSAXFuncPmmFixOwnerNodexmlNewCDataBlockXS_XML__LibXML__RegExp_DESTROYXS_XML__LibXML__parse_html_stringxmlNewDocTextnb_variables_unusedXML_BUFFER_ALLOC_HYBRIDseq_amgchild_ctxtdiv_ass_amgxmlXPathEvalXS_XML__LibXML__LibError_messageXML_READER_TYPE_PROCESSING_INSTRUCTIONPerl_call_svxmlFreeTextReaderxmlValidateDtd_xmlPatternhtmlDocDumpMemoryXPVNVXML_PARSE_DTDATTRnot_amgxmlRegFreeRegexpsvEncodingxmlSetExternalEntityLoaderxmlNewDocNode_xmlValidCtxtrng_docint_results_lenxmlParseDTDXS_XML__LibXML__Schema_DESTROYXML_PARSE_DTDLOADXS_XML__LibXML__Namespace_DESTROYXS_XML__LibXML__Reader__newForDOMXS_XML__LibXML__Document_setURIxmlParserModeretnoderetCodeboolvalXPATH_RANGEnbentitiesXS_XML__LibXML__Element_addNewChildXS_XML__LibXML_HAVE_THREAD_SUPPORTcharactersPerl_newSVivXML_ERR_ERRORPmmContextSvxmlXPathPINFmax_funcs_unusedXML_CHAR_ENCODING_2022_JPxmlDictPtrXML_PARSER_SYSTEM_LITERALXS_XML__LibXML__Node_lastChildXS_XML__LibXML__Node_previousSiblingfatalErrorserrorwant_vtbl_arylenstr_xmlnsXML_FROM_SCHEMATRONVwant_vtbl_backrefreal_objmaxDepth_xmlRelaxNGValidCtxtexclusivexmlTextReaderIsEmptyElementHTML_PARSE_NOBLANKSlshift_ass_amgXML_TEXTREADER_MODE_CLOSEDgetColumnNumberLibXML_validity_error_ctxsband_amgdomAddNodeToListXS_XML__LibXML__Node__toStringC14NextdtdxmlSAXLocatorPtrXML_READER_TYPE_SIGNIFICANT_WHITESPACELibXML_XPathContext_poolXS_XML__LibXML__Reader_moveToAttributeXML_PARSER_PIXML_PARSER_SEVERITY_VALIDITY_ERRORXS_XML__LibXML__Attr_toStringwant_vtbl_collxfrm_xmlSchemaXML_PARSE_SAX1parser_options_xmlAutomataendDocumentSAXFuncnamespacePrefixXML_PARSER_CONTENTxmlIsIDXS_XML__LibXML__Dtd_publicIdXS_XML__LibXML__Element_setAttributeNodeNSxmlNodeSetPtrPmmNewNodenodeInfoMaxxmlGetNsListPerl_croak_nocontextnb_typesXML_PARSE_RECOVERXML_FROM_BUFFERXS_XML__LibXML__HashTable_new_xmlRelaxNGxmlSchemaValidateDoccdataBlockSAXFuncrepeat_ass_amgvctxtxmlIsDigitGroupPerl_newSVnv_xmlTextReaderwant_vtbl_arylen_pxmlSchemaPtrEXTERNAL_ENTITY_LOADER_FUNCXS_XML__LibXML__Document_setVersionXS_XML__LibXML__Node_replaceChild_xmlSchemaParserCtxtXML_CHAR_ENCODING_SHIFT_JISXS_XML__LibXML__Node_getNamespace_xmlParserNodeInfoSeqpnodeXML_FROM_DTDXS_XML__LibXML__Document_externalSubsetPerl_push_scopexmlXPathFunctionxmlTextReaderNextSiblingstrkeyxmlTextReaderReadOuterXmlXS_XML__LibXML__parse_html_fhxmlInputMatchCallbackxmlStrndupresolveEntitySAXFuncatan2_amgt_indent_varxmlNodeDumprawconsumedxmlXPathFuncLookupFuncsgt_amgto_hv_amgXML_PARSER_VALIDATEXML_CHAR_ENCODING_UTF16BExmlPatternMatchXML_CHAR_ENCODING_8859_4XS_XML__LibXML__Reader_getAttributeHashXML_CHAR_ENCODING_8859_5XML_CHAR_ENCODING_8859_6XML_CHAR_ENCODING_8859_7XML_CHAR_ENCODING_8859_8XML_CHAR_ENCODING_8859_9XPATH_POINTxmlIsCombiningGroupcompiledxmlXPathContextPtriconv_tnsprefixwant_vtbl_sigelemxmlTextReaderDepthxmlCheckVersionPSaxGetHandlerLibXML_get_reader_error_databool__amgPerl_block_gimmeXS_XML__LibXML__end_sax_pushXS_XML__LibXML__Node_lookupNamespacePrefixxmlRelaxNGFreeParserCtxtPerl_newSVsvwant_vtbl_substrXS_XML__LibXML__Node_ownerDocumentXML_CHAR_ENCODING_ASCIIXS_XML__LibXML__Text_replaceDataunparsedEntityDeclSAXFuncPmmRegistryREFCNT_decXS_XML__LibXML__Pattern_DESTROYxmlErrorPtrto_boolreal_docxmlXPathFreeContext__lenPerl_gv_add_by_typexmlSchemaParse_xmlChRangeGroupXS_XML__LibXML__Node_nodeTypeXS_XML__LibXML__RelaxNG_validateXML_PARSE_OLD10domRemoveChildxmlCopyNamespace_xmlBufXS_XML__LibXML__Node_replaceNode_xmlXPathObjectdictNamesXS_XML__LibXML__Document_is_validXS_XML__LibXML__Reader__newForIOdec_amgint_amg_xmlEnumerationXS_XML__LibXML__Text_appendDataxmlAttrPtrxmlTextReaderLookupNamespaceuser2xmlRelaxNGValidCtxtPtrhtmlReadIOxmlSearchNsXS_XML__LibXML__Pattern__compilePatternXML_EXTERNAL_GENERAL_PARSED_ENTITY_xmlCharEncodingHandlerxmlFreeDtdXML_TEXTREADER_MODE_INITIALcommentxmlParserInputBufferPtrhtmlDocPtrnodenamexmlSearchNsByHrefXS_XML__LibXML__Element__setNamespaceattallocsLibXML_report_error_ctxXS_XML__LibXML__Reader_skipSiblingsXS_XML__LibXML__Document_createTextNodeendElementNsSAX2FuncXML_CHAR_ENCODING_8859_1XML_CHAR_ENCODING_8859_2XML_CHAR_ENCODING_8859_3docdictwant_vtbl_isaelemXS_XML__LibXML__Document_toFHXS_XML__LibXML__Document_createRawElementNSxmlAutomataPtrinputTabfreeAttrsXML_PARSE_IGNORE_ENCXPathContextDataPtrsubtr_ass_amgXML_READER_TYPE_DOCUMENT_FRAGMENTXS_XML__LibXML__start_push_xmlChLRangeXS_XML__LibXML__parse_xml_chunkXML_FROM_XSLT_xmlXPathCompExprXS_XML__LibXML__Node__childNodesXML_FROM_I18NxmlHashTablePtrXS_XML__LibXML__Text_insertDataxmlTextReaderReadInnerXmlxmlXPathRegisterVariableLookupparserOptionsextIDnb_funcs_unusedwant_vtbl_dblinePerl_sv_setpvxmlTextReaderGetAttributeNsXML_PARSE_HUGExmlSchemaSetValidErrorsXS_XML__LibXML__XPathContext_getContextPositionwant_vtbl_envelemxmlRelaxNGNewDocParserCtxtXS_XML__LibXML__Comment_newxmlParseChunkcopy_amgopCountdomReadWellBalancedStringvarHashxmlRegisterDefaultInputCallbacksXML_READER_TYPE_DOCUMENTmodulo_amgresolveEntityXS_XML__LibXML__Element_getAttributeNodeNSXML_FROM_FTPXML_CHAR_ENCODING_UTF16LELibXML_reparent_removed_nodemaximumignorableWhitespacecontextSizeperl_xpathXML_INTERNAL_PREDEFINED_ENTITYlog_amgattributeDeclSAXFuncXS_XML__LibXML__Reader_readStateXS_XML__LibXML__Reader_baseURILibXML_set_reader_preserve_flagelnameXML_PARSE_NOCDATAexternalIDXS_XML__LibXML__Document_importNodeXML_BUFFER_ALLOC_BOUNDEDxmlTextReaderSetSchemainSubsetinstatexmlTextReaderMoveToFirstAttributePmmNewFragmentproxysbxor_ass_amgnbShortRangeXS_XML__LibXML__Namespace_newgetEntitySAXFunc_xmlSAXLocatorkeepBlanksreadcallbackrv_endstring_amgrestoreattsSpecialxmlCharEncodingXS_XML__LibXML__Node_normalizenew_URIxmlBufferAddXS_XML__LibXML__Reader_matchesPatternXML_ELEMENT_CONTENT_ONCEdomSetNodeValueXML_PARSER_STARTXS_XML__LibXML__Reader_nextSiblingElementsubtr_amgoriginXS_XML__LibXML__InputCallback_lib_init_callbacksXML_ELEMENT_CONTENT_PCDATAPerl_markstack_growlongRangeXS_XML__LibXML__Document_adoptNodesetDocumentLocatorwant_vtbl_checkcallXS_XML__LibXML__Namespace_declaredURIoutput_sv_xmlNodeSetXS_XML__LibXML_import_GDOMEfp_offsetXS_XML__LibXML__Reader_getAttributeNo_xmlXPathContextXS_XML__LibXML__Reader_getAttributeNsXS_XML__LibXML__Element_hasAttributeNSxmlRegexpExecctntXML_PARSE_NSCLEANxmlNewNsPmmSAXInitContextPmmFreeHashTablexmlTextReaderHasValuenodeInfoNrXS_XML__LibXML__Document_standalonexmlParseCharEncodingPmmNodeTypeNameiconv_outxmlXPathOrderDocElemsxmlNodeSetNamexmlTextReaderConstValuexmlValidityErrorFunc_xmlErrorxmlHasNsPropcommentSAXFuncxmlTextReaderReadXS_XML__LibXML__Document_createElementNSXS_XML__LibXML__Namespace_unique_keyxmlXPathNsLookupiconv_inguardxmlXPathAxisPtrxmlReaderForFdPerl_sv_vsetpvfnproximityPositionXML_ELEMENT_CONTENT_ELEMENTXS_XML__LibXML_LIBXML_DOTTED_VERSIONXS_XML__LibXML__Reader_readxmlTextReaderPreservexmlGetPropxmlTextReaderGetAttributesqrt_amghtmlReadDocend_posxmlXPathConvertFuncXS_XML__LibXML__Reader_prefixxmlCleanupParserXS_XML__LibXML__Attr_serializeContentinput_idXS_XML__LibXML__Document_URIwellFormedinput_bufxmlBufferContentelementDeclSAXFuncxmlFreeNsXML_FROM_TREEXML_READER_TYPE_XML_DECLARATIONsband_ass_amgmaxattsxmlIsIdeographicGroupXS_XML__LibXML__Document__toStringns_uriinc_prefix_listscmp_amgnewAttrxmlNewDocCommentxmlParserInputDeallocateXS_XML__LibXML__Node_hasChildNodesdomXPathFindrshift_amgXS_XML__LibXML__XPathContext__free_node_poolxmlCharStrndupXS_XML__LibXML__XPathContext_setContextPositionnodeC2SvXS_XML__LibXML__Node_setBaseURIXS_XML__LibXML__Node_string_valueXML_ERR_NONEXS_XML__LibXML__Node_removeChildXS_XML__LibXML__Schema_parse_bufferXS_XML__LibXML__Reader_nameXML_FROM_IOwant_vtbl_pack_xmlHashTableXS_XML__LibXML_export_GDOMEtmpNsNrxmlSaveFilexmlRelaxNGValidateDocattsDefaultXML_CHAR_ENCODING_ERRORXS_XML__LibXML__Common_encodeToUTF8xmlSchemaNewValidCtxtXML_PARSER_LOADDTDclosecallbackendElementXML_PARSER_CDATA_SECTIONxmlXPathNewBooleanXS_XML__LibXML__Document_cloneNodeXS_XML__LibXML__Element__setAttributeNSwant_vtbl_regexpint1int2Perl_free_tmpsXML_PARSER_DTDXS_XML__LibXML__Node_firstChildlinenumbersxmlTextReaderExpandLibXML_restore_contextendElementSAXFunctmpNsListlookup_funcfuncLookupDataXS_XML__LibXML__Document_createElementtokenxmlTextReaderHasAttributesxmlGenericErrorFuncXS_XML__LibXML__Document_createCommentXPATH_BOOLEANattr_namexmlTextReaderConstXmlVersionXS_XML__LibXML__XPathContext_registerFunctionNS_xmlElementContentLibXML_error_handler_ctxpctxtwant_vtbl_utf8LibXML_input_matchxmlTextReaderSchemaValidatexmlTextReaderMoveToNextAttributevarDataXS_XML__LibXML__LibError_context_and_columnPerl_newSVperl_dispatchxmlCharEncInFuncpow_amgwant_vtbl_hintsmyDocxmlInputOpenCallbackdiv_amgXS_XML__LibXML__Reader_depth_xmlValidStateextSubURIwant_vtbl_regdatastartElementrecoveryadd_ass_amgXS_XML__LibXML__Reader_isDefaultvarLookupDatapedanticXML_BUFFER_ALLOC_IOXPATH_UNDEFINEDXML_PARSER_ENTITY_VALUEnsNrXS_XML__LibXML__Element__getAttributeNSXS_XML__LibXML__Node_nextSiblingXS_XML__LibXML__Element_setNamespaceDeclPrefixinputMaxXS_XML__LibXML__Reader__newForStringPerl_mg_getXS_XML__LibXML__Reader_documentxmlTextReaderConstEncodingXML_PARSER_PUBLIC_LITERALXS_XML__LibXML__Document_setExternalSubsetPerl_sv_2bool_flagsxmlReaderForIOxmlDocSetRootElementLibXML_input_openHTML_PARSE_NOWARNINGxmlInputCloseCallbackXS_XML__LibXML__Reader__setXSDxmlGetIntSubsetxmlXPathParserContextPtrLibXML_configure_namespaceswant_vtbl_lvrefxmlHashLookupXML_ELEMENT_CONTENT_ORelementDeclxmlTextReaderGetParserPropXML_PARSER_END_TAGXS_XML__LibXML__Node_toStringxmlCharEncodingHandlerPtrxmlXPathNewCStringxmlSchemaSetParserErrorsXS_XML__LibXML__RegExp_matchesxmlValidityWarningFuncsle_amg_xmlChSRangeXS_XML__LibXML__Node_baseURIXS_XML__LibXML__LibError_codeerrorSAXFuncfatalErrorSAXFuncxmlRelaxNGPtrXS_XML__LibXML__Node_nodeNameetypeXPATH_NODESETXS_XML__LibXML__parse_filexmlGetDocCompressModexmlOutputBufferPtrxmlPatternPtrxmlElementContentPtrXS_XML__LibXML__processXIncludespropxmlSaveFormatFileToXML_TEXTREADER_MODE_EOFXML_PARSE_UNKNOWNreferenceSAXFuncxmlXPathCompilestr_xml_nsname_wildcardwant_vtbl_taintxmlNsPtrXS_XML__LibXML__Node_DESTROYxmlDocPtrXS_XML__LibXML_HAVE_SCHEMASLibXML_set_int_subsetsaved_errorhasExternalSubsetxmlNewCommentxmlTextReaderGetAttributeNogetSystemIdwant_vtbl_uvarxmlGetCharEncodingHandlerLibXML_input_closexmlNewIOInputStreamdirectoryread_resultsPerl_newRV_noincancestorxmlNewPIxmlNewPropdomNodeNormalizeXS_XML__LibXML__Reader_readOuterXmlXML_PARSER_SEVERITY_WARNINGfunctionURInextexmlInitParserXS_XML__LibXML__Reader_moveToAttributeNo__errno_locationnodememXS_XML__LibXML__Reader_moveToAttributeNssax2XS_XML__LibXML__Node_to_numberXS_XML__LibXML__Schema_validateXML_PARSE_PUSH_DOMxmlEntityRecursionGuardmult_amgXML_FROM_URIXS_XML__LibXML__Document_createDocumentxmlXPathFreeCompExprsv_gdomeXML_READER_TYPE_NOTATION_xmlParserInputBufferXML_PARSER_DEFAULTATTRSxmlStringTextxmlKeepBlanksDefaultLibXML_save_contextXML_CHAR_ENCODING_EUC_JPpchartmp_nodeXS_XML__LibXML__Reader__DESTROYendDocument_xmlRelaxNGParserCtxtPerl_sv_catsv_flagsXML_FROM_SCHEMASPwant_vtbl_envXML_PARSE_NOBASEFIXXS_XML__LibXML__Reader_quoteCharxmlTextReaderByteConsumedPmmNodeToGdomeSvXS_XML__LibXML__Document_createDocumentFragmentdomRemoveNsRefsXS_XML__LibXML__XPathContext_setContextNodeXS_XML__LibXML__Attr_parentElementall_nsstrcontentref_nodeXML_PARSER_ATTRIBUTE_VALUEreaderXS_XML__LibXML__parse_sax_xml_chunkXS_XML__LibXML__Reader_hasAttributeshasInternalSubsetSAXFuncwant_vtbl_regdatumXS_XML__LibXML__Node_addChildfreeAttrsNrxmlCreateFileParserCtxtXS_XML__LibXML__Node_hasAttributesxmlAutomataStatePtrftest_amg_XPathContextDataxmlTextReaderConstLocalNameXS_XML__LibXML__dump_registryXS_XML__LibXML__Node_addSiblingxmlUnlinkNodexmlTextConcatXML_READER_TYPE_WHITESPACEXS_XML__LibXML__Document_setInternalSubsetvalueFramefragmentxmlXPathNewFloatLibXML_input_readXS_XML__LibXML__Reader_attributeCountxmlPatterncompileXS_XML__LibXML__InputCallback_lib_cleanup_callbacksLibXML_init_parserXS_XML__LibXML__Element_removeAttributeNodexmlNodeAddContentxmlCleanupInputCallbacks_xmlRegexpXS_XML__LibXML__Document_internalSubsetxmlErrorLevelXS_XML__LibXML__Reader__setParserPropXML_FROM_NAMESPACEnargspregexpXML_FROM_SCHEMASVsbor_amgdomXPathCompFindCtxtXS_XML__LibXML__LibError_levelxmlElementContentTypeXS_XML__LibXML__LibError_fileHTML_PARSE_IGNORE_ENCCLASSxmlFreeParserInputBufferscompl_amgXS_XML__LibXML_DISABLE_THREAD_SUPPORTXS_XML__LibXML__Element_removeAttributexmlSetStructuredErrorFunctbuff__gnuc_va_list_xmlAutomataStateXS_XML__LibXML__Document_indexElementsstr_xmlxmlGetNoNsProp_xmlSchemaValidCtxtiorefXS_XML__LibXML__Text_deleteDataXS_XML__LibXML__Reader_readInnerXmlPerl_newSVpvf_nocontextXS_XML__LibXML__Dtd_systemIdXML_CHAR_ENCODING_UCS2HTML_PARSE_NOIMPLIEDxmlSetDocCompressModeLibXML_close_perlXML_ERR_WARNINGsvuriHTML_PARSE_NONETendElementNsXS_XML__LibXML__Reader__newForFdsystemIDxmlSchemaNewMemParserCtxtPmmDumpRegistryXS_XML__LibXML__Node_unique_keyxmlTextReaderCurrentNodeXPATH_STRINGXML_BUFFER_ALLOC_DOUBLEITpxpath_contextPerl_sv_setsv_flagsXS_XML__LibXML_HAVE_READERXML_READER_TYPE_ENTITY_REFERENCExmlReaderForDocXS_XML__LibXML__leaked_nodessizeentities__builtin_va_listselfXS_XML__LibXML__Node_prefixvalueNrXS_XML__LibXML__Reader_encodingLibXML_read_perlxmlSchemaFreeParserCtxtXS_XML__LibXML__Node_firstNonBlankChildxmlXPathRegisterFuncNSXS_XML__LibXML__parse_stringxmlTextReaderConstPrefixconvstartElementNsXS_XML__LibXML__end_pushxmlSetNsXML_PARSE_PUSH_SAXxmlIsExtenderGroupLibXML_output_close_handlerXS_XML__LibXML__Reader_isEmptyElementXS_XML__LibXML__DocumentFragment_newXS_XML__LibXML__default_catalogXML_FROM_VALIDrealstringXS_XML__LibXML__ParserContext_DESTROYXML_PARSE_PEDANTICinputNrXS_XML__LibXML__Document__setDocumentElementnew_stringspaceTabxmlInitializeCatalogwant_vtbl_posXS_XML__LibXML__RelaxNG_parse_documentXS_XML__LibXML__Element__getAttributesvURLxmlBufferCreateStaticwant_vtbl_mglobsystemxmlReconciliateNsxmlCharEncCloseFuncintSubNamedocfragXS_XML__LibXML__Document_getElementByIdXS_XML__LibXML__XPathContext_getContextSizeXS_XML__LibXML__XPathContext_getVarLookupDataXML_READER_TYPE_ENTITYxmlBufferLengthXS_XML__LibXML__Reader_preserveNodexmlGetIDXML_FROM_XPOINTERXS_XML__LibXML__Reader__setRelaxNGFilexmlOutputWriteCallbackdomXPathFindCtxtxmlFreeDocXS_XML__LibXML__Node_nodeValueXS_XML__LibXML__Node__getChildrenByTagNameNSinc_amgxmlRelaxNGFreeValidCtxtXML_READER_TYPE_END_ELEMENTLibXML_flat_handlerxmlAddChildXS_XML__LibXML__CLONEperl_resultxmlXPathCastToStringisStandaloneSAXFuncXML_CHAR_ENCODING_UCS4_2143catalto_sv_amgxmlParseBalancedChunkMemoryLibXML_get_reader_preserve_flagxmlTextReaderMoveToAttributenameNrppatternreplaceEntitiesXML_READER_TYPE_TEXTto_cv_amgxmlTextReaderRelaxNGValidateuser__xmlSaveNoEmptyTagsXS_XML__LibXML__Node_removeChildNodesmagic_vtable_maxxmlCreateMemoryParserCtxtXS_XML__LibXML__Reader_getAttributeXS_XML__LibXML__Reader__setXSDFilexmlNewNodelshift_amgLibXML_generic_extension_functionXS_XML__LibXML__XPathContext_registerVarLookupFuncXML_READER_TYPE_END_ENTITY_xmlXPathParserContextrepeat_amgXML_PARSE_NOBLANKSxmlSchemaFreeValidCtxtXML_PARSER_SEVERITY_ERRORXS_XML__LibXML__Reader_moveToNextAttributeXML_PARSER_ENTITY_DECLXS_XML__LibXML__Document_createAttributemodulo_ass_amgXS_XML__LibXML__Document_createCDATASectionXS_XML__LibXML__HashTable_DESTROY__builtin_strncpyxmlSetTreeDocxmlCreateIntSubsetXS_XML__LibXML__XPathContext_registerNsnumer_amgxmlRelaxNGNewValidCtxtXS_XML__LibXML__Document_createExternalSubsetXML_FROM_RELAXNGPXML_FROM_RELAXNGVXML_FROM_CATALOGXML_PARSE_DTDVALIDXS_XML__LibXML__XPathExpression_DESTROYXS_XML__LibXML__Reader_moveToFirstAttributexmlBufferPtrXS_XML__LibXML__Reader_nextXS_XML__LibXML__Node_localnameLibXML_cleanup_parserXPATH_NUMBERcharactersSAXFuncxmlRegisterDefaultOutputCallbacksisStandalonexmlStrdupXS_XML__LibXML__Document_setStandalonepsvi_statusXS_XML__LibXML__Node_insertAfterdomIsParentxmlRelaxNGNewParserCtxtprocessingInstruction_xmlBufferwith_saxxmlNewDocPropgetParameterEntityxmlSchemaValidityWarningFuncxmlGetExternalEntityLoaderxmlTextReaderNextlookup_dataxmlIsBaseCharGroupperlstringdomNameXS_XML__LibXML__Node_nextNonBlankSiblingloadsubsetxmlBufferFreexmlAllocParserInputBufferwantarraywarningSAXFuncXML_ENTITY_BEING_CHECKEDXS_XML__LibXML__Node_appendChilddeepxmlXPathCompExprPtrPerl_sv_setref_pvXS_XML__LibXML__Document_removeExternalSubsetxmlXPathRegisterFuncnewURIXML_CHAR_ENCODING_UCS4BEXS_XML__LibXML__Document_toFileXS_XML__LibXML__Reader_valuedomImportNodexmlIsPubidChar_tabXML_PARSE_DOMocurXPATH_USERSXS_XML__LibXML__XPathContext_lookupNswant_vtbl_svxmlSchemaNewParserCtxtoverflow_arg_areaxmlXPathNINFreg_save_areaXS_XML__LibXML__Document_setEncodingXML_FROM_WRITER_xmlParserInputxmlFreePatternsvchunkXS_XML__LibXML__Reader_columnNumberdomClearPSVIxmlReaderWalkerXS_XML__LibXML__Document_encodinguseDomEncodingXS_XML__LibXML__Node_namespaceURIHTML_PARSE_NOERRORPmmSAXInitializeXS_XML__LibXML__LibError_num1XS_XML__LibXML__LibError_num2XS_XML__LibXML__Node_setNodeNameXS_XML__LibXML__LibError_lineencstrxmlTextReaderMoveToElementxmlTextReaderConstBaseUriindex2TARGn_nvchild__builtin___snprintf_chknsTabxmlTextReaderNodeTypemax_axisold_dtdXS_XML__LibXML__Reader__nodePathxmlNewInputFromFileXS_XML__LibXML__Common_decodeFromUTF8strnameXML_EXTERNAL_PARAMETER_ENTITYnodeInfoxmlTextReaderErrorFuncsv_libxmlXS_XML__LibXML__Element__setAttributewant_vtbl_isaXS_XML__LibXML__Document_versiongp_offsetXS_XML__LibXML__Reader_standalonevaluePushXML_PARSER_EPILOGPnameentityDeclherexmlTextReaderReadAttributeValueXML_FROM_NONEstrlenregexp_amgXS_XML__LibXML__Node_cloneNodeXS_XML__LibXML__parse_html_filevstateNrxmlBufferCCatXML_PARSE_OLDSAXxmlTextReaderGetParserLineNumberS_SvREFCNT_incPmmCloneProxyNodesPmmSAXCloseContextgetLineNumbernsHashxmlIOParseDTDXML_FROM_XPATHxmlTextReaderConstNamespaceUriXS_XML__LibXML__Schema_parse_locationnodeTabgetEntityXS_XML__LibXML__Reader_hasValuemax_variables_unusedxmlTextReaderIsValidfuncLookupFuncxmlXPathObjectTypecdataBlockXS_XML__LibXML__Document_createInternalSubsetoldTagFlagXS_XML__LibXML__Element_appendTextChildxmlParserInputBufferPushPerl_pop_scopebegin_posprogressiveXML_PARSER_START_TAGslt_amgXS_XML__LibXML__Node_nodePathpattern_typens_prefixxmlXPathObjectPtrxmlSchemaFreeXS_XML__LibXML__Reader_namespaceURIreturn_nodedomNodeNormalizeListmovenewChildhelperdomGetElementsByTagNamexmlFreeNsListqnamefragment_nextxmlElementPtrdomClearPSVIInListXML_ATTRIBUTE_REQUIRED_domAddNsChainoldNodexmlCopyDtdXML_ATTRIBUTE_NONEdomNewNsxmlAttributePtr_xmlElementdomSetAttributeNodedomGetElementsByTagNameNSxmlAttributeDefaultdomTestDocumentcnodeXML_ATTRIBUTE_FIXEDxmlXPathNodeSetCreate__xmlGenericErrorXML_ATTRIBUTE_IMPLIEDdomUnlinkNodetreeXML_ELEMENT_TYPE_MIXEDXML_ELEMENT_TYPE_ANYXML_ELEMENT_TYPE_UNDEFINEDxmlSetListDocfollowupXML_ELEMENT_TYPE_EMPTY_xmlAttributedomRemoveNsDefXML_ELEMENT_TYPE_ELEMENTcontModeldefaultValuexmlNodeSetContentxmlFreeNodeListxmlAttrSerializeTxtContentnexthdomTestHierarchy_domReconcileNsreconcileNSdomReplaceNodexmlDocCopyNodedom.c__xmlGenericErrorContextleaderrefChildrepairdomAddNsDefxmlElementTypeVal_domReconcileNsAttrPmmRegistryNameHASH_NAME_SIZEPmmRegistryHashCopierPmmRegisterProxyNodexmlHashAddEntryiteratorrefnodeLocalProxyNodePtrPmmFastDecodeStringPmmEncodeStringscalarPmmRegistryLookupreal_domPmmFreeNodePmmSvOwnerreg_copylibnodeoldParentdfProxyt_pvPmmNewLocalProxyNodePmmRegistryREFCNT_incxmlHashSizePmmFastEncodeString_LocalProxyNodepayloadxmlCopyPropnodetofixPmmRegistryHashDeallocatordecodedPmmSetSvOwnerPmmRegistryDumpHashScannerxmlHashScanPmmUnregisterProxyNodexmlHashRemoveEntryPmmFixOwnerListrecursiveperlnodePmmNewContextxmlHashFreeperl-libxml-mm.csv_regxmlHashCopyPmmProxyNodeRegistryPtr_C2Sv_len__builtin_memcpyCBufferCharactersCBufferLengthPmmGetNsMappingbuflenPSaxCDATABlockPerl_sv_setpvnSystemIdHashCBufferNewLocalNameHashperl-libxml-sax.cPmmGenAttributeHashSVDataHashPmmGenPISVxmlSplitQNameS_perl_hash_oaathu_siphash_1_3onameValueHashnewstringPmmNarrowNsStackPmmSAXVectorPmmUpdateLocator_C2SvPmmSaxWarningfprintfsvMessageS_perl_hash_siphash_1_3PSaxCharactersFlushcharbufPSaxStartDocumentPmmGenCharDataSVPmmGenNsNamePSaxCharactersPmmExtendNsStackPmmAddNamespacePmmGenLocator__builtin_fwritePSaxExternalSubsetPSaxSetDocumentLocatorCBufferPurgePSaxEndDocumentPSaxProcessingInstructionPSaxStartElementVersionHashlast_errPSaxCharactersDispatchPmmGenElementSVnewchunkEncodingHashCBufferAppendNsURIHashPerl_newRVheadPmmSaxFatalErrorabortPSaxEndPrefix__streamxmlStrncatCBufferChunkNewTargetHashcopiedxmlCtxtGetLastErroremptyparamPSaxStartPrefixattrhashCBufferFreexmlStrncmpurilenPSaxCommentAttributesHashnamelenatnameHashCBufferPmmSaxErrorkeynamePSaxEndElementPmmSAXVectorPtrns_stack_rootPrefixHashCBufferChunkPublicIdHashnewNSPmmGenDTDSVjoincharsns_stacktdocXPTR_SUB_RESOURCE_ERRORxmlXPathCompiledEvalToBooleanXPATH_UNDEF_VARIABLE_ERRORXPATH_INVALID_CHAR_ERRORxmlXPathNodeSetMergeXPATH_EXPR_ERRORxmlParseFileXPATH_OP_LIMIT_EXCEEDEDXPATH_START_LITERAL_ERRORxpath.cnewobjXPTR_SYNTAX_ERRORXPATH_INVALID_TYPEXPATH_RECURSION_LIMIT_EXCEEDEDXPATH_INVALID_OPERANDperlDocumentFunctionXPTR_RESOURCE_ERRORXPATH_INVALID_CTXTXPATH_EXPRESSION_OKxmlBuildURIXPATH_INVALID_PREDICATE_ERRORdomXPathSelectCtxtXPATH_MEMORY_ERRORXPATH_UNKNOWN_FUNC_ERRORXPATH_VARIABLE_REF_ERRORXPATH_INVALID_ARITYXPATH_UNCLOSED_ERRORxmlXPathObjectCopyxmlXPathStringFunctionXPATH_NUMBER_ERRORXPATH_ENCODING_ERRORXPATH_INVALID_CTXT_POSITIONXPATH_FORBID_VARIABLE_ERRORxmlXPathCompiledEvalXPATH_UNDEF_PREFIX_ERRORfrootobj2XPATH_STACK_ERRORXPATH_INVALID_CTXT_SIZEXPATH_UNFINISHED_LITERAL_ERRORUVUUUVSU^U^TVTP]~U#]AEPEXSz~P~SS(V(TvxTVVP]~U#]SSPPQsQ6U6U,U\m\t^$P$U^m~P~^ftPtU]m]P]JbPbUmt<S<@T@AsAUSmST` s Us U` w Tw T P V TU}U"T"] T 2]2OTO^]^}T(NV^2O^^}^>C^C`~`\ O\O^~^}\CG~ $ &3$p"GK~ $ &3$p"CGv~ $ &3$p8]2O]^}]V2OV^}V]2O]^}] 1->PUUT^bTb|^|T^T^T\^^^Vv ] =v=qvbv]vvv $ &3$p"v $ &3$p"PP|v $ &3$p88]?]^?b^]?b]^?b^:]]]%VVV:]]]?1PUxUT]JTJY]YxTVv^)J^Yx^^~5\5v~)~JY~~ $ &3$p"~ $ &3$p"v~ $ &3$p85f\ \5f\ \f\)J\Yx\\V)JVYxVv\)J\Yx\1PUUTa]aT]T>V-^^^.3^3Q~Q\~X~~37~ $ &3$p"7;~ $ &3$p"37v~ $ &3$p8\X\\X\Q\\\>VVVQ\\\1X1.PU}UTO]ORTR}]V^~\VQ~RnVn}~~ $ &3$p"~ $ &3$p"v~ $ &3$p8(+P(+P1R0P U U T c ]c W TW f ]f T > V \: W \f \. 3 ^3 Q ~Q \ : \W f ~3 7 ~ $ &3$p"7 ; ~ $ &3$p"3 7 v~ $ &3$p8c g p}"g o p}"u y Py  ^ W ^f ^  ^: W ^f ^ V: W Vf V  ^: W ^f ^  1 . P U 9 U T  ] * T* 9 ] V ^ ~ \ ~ * \* 9 ~ ~ $ &3$p" ~ $ &3$p" P P V V  V* 9 VK _ _ * _K _ _ * __ c Pc t Vt x Px V 1 P@ Q UQ R UpZZUZUpZZTZ`_T`_e_P__P__P__P``P@`E`PabP$b)bPhbmbPbbPccPccPccP0d5dPWd\dPddPddPddPeePeePFfKfPmfrfPffPffPffP ggP0g5gPWg\gP~ggPggPggP-h2hPThYhPhhPhhPhhP iiP4i9iP[i`iPiiPiiPiiPiiPj#jPEjJjPljqjPjjPjjPjkPBkGkPiknkPkkPkkPllP?lDlPflklPllPllPmmP{P`{e{P{{PPنކPP,/P/VZZPZ\Te_p_P__P__P__P`)`PE`P`Pb bP)b4bPmbxbPbbPccPccPccP5d@dP\dgdPddPddPddPeePeePKfVfPrf}fPffPffPffPggP5g@gP\gggPggPggPggP2h=hPYhdhPhhPhhPhhPiiP9iDiP`ikiPiiPiiPiiPijP#j.jPJjUjPqj|jPjjPjjPkkPGkRkPnkykPkkPkkPl(lPDlOlPklvlPllPllPm%mPAmLmPhmsmPmmPnnPnnPnnPjouoPooPppP6pApPzppPppPppPFqQqPmqxqPqqPqqPqqPMtXtPtttPttPttPuuP-u8uPuuPuuPuuPvvPw$wP@wKwPgwrwPwwPwwPwxP x+xPxxPxxP yyP0y;yPWybyP~yyPyyPyyPyyPz%zPAzLzPhzszPzzPzzP{"{P>{I{Pe{p{P{{P†PކPP/:PU>UTQ^QT6^6T^>T\]}zVVV}>V} $ &3$p"} $ &3$p"PP|} $ &3$p8k__6__>_]]]]"]0!P!N_060 =0=APA]0>00']006]T0]"0">]0P06QPQw0w"00>wV00600>0V0060P_0>0V0060w0"0"0w0>0PE^^6{^^^>^ELPLm^mqPqv]P^1z11P@nUnnU@rTr^T^0T0?^?nTx\]}BV}V0V0?}DnV} $ &3$p"} $ &3$p"P0>P|} $ &3$p8 ^}^G^^+^`n^#_}___#0]}0]y]00]Rn]#0>_}00_00DR_Rn0#0P}00P`_00_Rn_,0}0e0eiPis_s}Q}00Rn0,0}0y0y}P}]00Rn0,0}0G0G^00R`^`n0TXPXBw}w0wDnwP5]59P9>]1B}1?D1}PUYUT]JTJY]\^~nVn~V.~/JVJY~~ $ &3$p"~ $ &3$p"|~ $ &3$p8 Ua1 /0PpU6UpT^T(^(6T\Vv]](v(6]v $ &3$p"v $ &3$p"P'P|v $ &3$p8\\(6\P^^(6^4P4VPV(6VRYPY_(6_P\1P`xUx)!U`|T|]!T!)!]\^~> V> Q ~R  V  ~ !V!)!~~ $ &3$p"~ $ &3$p"|~ $ &3$p8  U1 R 1  0P0!N!UN!#U0!R!TR!!]!Y"TY""]"#T##]X!~!\3#X#^X#a#~##^n!s!^s!!~!2"VY""Va##V##~s!w!~ $ &3$p"w!{!~ $ &3$p"s!w!|~ $ &3$p8 ##U#a#V##V!"\"#\2"2"13#a#V##V2"Y"1]!n!P`<~<U~<3?U`<<T<=^==T==^=$?T$?3?^<<]>>]>>} ?$?]<<V<<v<=\=r>\> ?\$?3?v<<v $ &3$p"<<v $ &3$p"<<P$?2?P<<}v $ &3$p8[>k>U>>U<<P<o=]=>]> ?]r>>\ ?$?\==V=>V ?$?V==1? ?1>>\ ?$?\==1<<P@XUXU@\T\^T^T^Tb\w|V|v]]v]|v $ &3$p"v $ &3$p"PP||v $ &3$p8PVVVP^\P\\ P {^{R^^bPb\1gwP@?X?UX? AU@?\?T\??]?@T@ A]b??\x?}?^}??~?@V@1@~2@@V@@~@@V@ A~}??~ $ &3$p"??~ $ &3$p"}??|~ $ &3$p8@@U@2@1@@0g?x?PpTTUTWUpTTTTU^UUTUU^UWWTWWfW^fWWTTT\V W] WW}=WWW]TT]TT}TuUVU3VV3VQV}QVV}W8WV8W=W}WWfW}fWW}TT} $ &3$p"TT} $ &3$p"TTPWWeWPTT|} $ &3$p8KVVVfWWVVVPtWWPVWV=WWWVTaU\UWW\fWW\uUuU1VWV=WWWVuUU1TTP ?U?!U CTC]T]!TJ}Sav\vR1R!KS1oSs{SS!]1T]?K0s]s{0ʹ]T! P0_T_!_ K0KѲ\T۳0۳Ps\sŴ0Ŵʹ\ʹ00!\"PóPóӳu~u~۳0SsQSQZsŴʹ06KPKTfPfss{P{!PS!SoSSSѲղPղ\11OaPWWUW \UWWTWX^X[T[[^[ \TWWVWxXvxXYvxYzZvxzZZVZZvpZ[vx[[V[[vx[[V[ \vxWW\WW|WX]XX\XX\Y:Y\[[|WW| $ &3$p"WW| $ &3$p"WWv| $ &3$p8XXP:Y\YPZ [P\YYP [#[P#[*[q8*[8[PpYY\YYpYYPYYQYYPYYQZZPZZUZ?ZU?Z?Zup"1?ZlZup"lZqZup"18[c[P[[U[[\[[P[[q[\P\\XtYZX8[[X[[X[\XYZQZ?ZQ8[Y[UY[[Q[[UYY0YY1YY2Z?Z0?ZGZpGZlZP[[0[\1ZZ\[[\Z?ZW?Z~ZT[[WXXQ:YOYQOY\YpZZQZ [p WX0XX0YSY0SYYQZ [0 [8[QkXX1XY0WWP f8fU8f3hU fpP:p]pV!oo\op\oo1oo1nnP##U#%U##T#D$]D$$T$%]%%T%%]##\j%%^%%~%%^##^#$~$$V$?%V%%V%%~##~ $ &3$p"##~ $ &3$p"##|~ $ &3$p8T%^%PZ%%V%%V7$$\%%\$$1j%%V%%V$$1##P%&U&.(U%&T&&]&'T'A']A'(T(.(]&>&\''^''~((^.&3&^3&R&~R&&V''V'(V(.(~3&7&~ $ &3$p"7&;&~ $ &3$p"3&7&|~ $ &3$p83&V&}#((-(}#(''P''V((Vw&&\A'(\&&1''V((V&'1&.&P0(N(UN(n*U0(R(TR((](Y)TY))])_*T_*n*]X(~(\)*^*%*~B*_*^n(s(^s((~(2)VY))V%*B*V_*n*~s(w(~ $ &3$p"w({(~ $ &3$p"s(w(|~ $ &3$p8s((}#(_*m*}#())P)%*VB*_*V()\)_*\2)2)1)%*VB*_*V2)Y)1](n(Pp**U*,Up**T*+]++T++]+,T,,]**\*,\,^\,e,~,,^**^**~*r+V++Ve,,V,,~**~ $ &3$p"**~ $ &3$p"**|~ $ &3$p8,,P,e,V,,V*^+\+,\r+r+1*,e,V,,Vr++1**P,,U,.U,,T,D-]D--T-.]..T..],,\j..^..~..^,,^,-~--V-?.V..V..~,,~ $ &3$p",,~ $ &3$p",,|~ $ &3$p8T.^.PZ..V..V7--\..\--1j..V..V--1,,P./U/.1U./T//]/0T0A0]A01T1.1]/>/\00^00~11^./3/^3/R/~R//V00V01V1.1~3/7/~ $ &3$p"7/;/~ $ &3$p"3/7/|~ $ &3$p800P00V11Vw//\A01\//100V11V/01/./P{|U|U{|T|l|]l| T ]T|>|\.|3|^3|R|~R||V||~}C}VC}v}~K~m~V ~3|7|~ $ &3$p"7|;|~ $ &3$p"3|7||~ $ &3$p8[}K~]m~ ]~~P~P||1[}~]m~~]v}}P}K~^m~ ^}} }} }}W,~K~0|.|P0NUN@U0RTR^\T\|^|1T1@^X\ς]}1]ns]s}5V\Vς}V1@}sz} $ &3$p"z~} $ &3$p"~P1?Psz|} $ &3$p8݁.O1TV1VY^1^551ςV1V5\1]nP@^U^U@bTb)^)T^T^h]|]}ʅ]}Vv\;\ʅ\vv $ &3$p"v $ &3$p"PP}v $ &3$p8SZU]]|]ʅ]`\ʅ\VV1|\ʅ\1m}PUU"T"^,T,L^LT^(Q\ˆ]ˆˈ}]>C]Ce}eV,[V[}ˈV}CJ} $ &3$p"JN} $ &3$p"NiPPCJ|} $ &3$p8s|TˈVV)^Q^1ˈVV,1->P.U.ƋU2T2^TΊ^ΊTƋ^8`]Ln]nw}]MRVRtvtg\ \w\ƋvRYv $ &3$p"Y]v $ &3$p"]~PŋPRY}v $ &3$p8#*UʼnS]]ΊL]w]0w\\tVΊVgg1Lw\\g1=MPUU"T"]NTNl]lT](N\3b^bk~^>C^Cb~b'VNVkV~CG~ $ &3$p"GK~ $ &3$p"CG|~ $ &3$p8C_P'^N3^k^ P !v]q]''13kVV'N1->PpUUpT]T]V^~\|VV~~ $ &3$p"~ $ &3$p"v~ $ &3$p8S\\SWPW\)PP-0P0_ P ^^P\P\o1PU`UTI^I5T5D^D`T1\I\|ѝ\#]#M}MFVmV}V}}~ *}~5D}#*} $ &3$p"*.} $ &3$p".:P52\m\0\*\5`\ PŜPŜ5D`^m5D`ѝ] ]*5]F0m00I\0005P5ѝ\*0*5\D`0}PP(u~u~0H0HXVXfvfVŝv*502VѝVĚl_5_D`_FF1ΜAV5VD`VIVѝVFm1 P`~U~U`TӞ]ӞנTנ]TV^~۞\۞CV]נVנ~V~ $ &3$p"~ $ &3$p"v~ $ &3$p8=\mנ\\0]0ПPПK^Km0mנ^^؟۟P۟=_=APAK\mנ__6]1PU0 UT`^`! T! 0 ^1\#]#I}IV V! 0 }#*} $ &3$p"*.} $ &3$p".:P5\\  \ * \  \! 0 \qP w  w  P ! w{0C ~ I00P]  0  ] y 0y ~ P  0 P  ]~  ]  P  ]  P ! ]I00PG \  0 ~ 0~  \  0  \" 5 P~  P}P_! _Z b Pb  \  P  \  P ! 1 G 0G K PK Z \~  01 PޣUޣUUTJ^JT ^ FTFU^\̦]̦Ц}/F]]%}%ҤVV/VFU} } $ &3$p" } $ &3$p")PFTP |} $ &3$p8lwޥЦwwFwf]]%ݤ0x0xP/0ЦV/FVJ^F^Ťݤ11ЦV/FVЦ1PЩUUЩT=]=T]V ^ +~+E\EVV~ ~ $ &3$p"~ $ &3$p" v~ $ &3$p8U+0 0 0P{0+0404FPFm\{0MTPTm^mqPq{\1P0NUN~U0RTRĭ]ĭYTY]oTo~]X~\(^(1~Ro^ns^s~2VYîV1RVo~~sw~ $ &3$p"w{~ $ &3$p"sw|~ $ &3$p8ۮ߮U1VRoV\o\2211VRoV2Y1]nPUUT^OTO[^[qTq^T^Я]9\\\f|\¯V¯v(\O\f\v¯ɯv $ &3$p"ɯͯv $ &3$p"ͯPP¯ɯ}v $ &3$p8 U4(]O]=]f]@OqfVVL^^((19fVV(O1P@w^wU^wyU@wbwTbww]wixTixx]xyTyy]hww\y8y^8yAy~byy^~ww^ww~wBxVixxVAybyVyy~ww~ $ &3$p"ww~ $ &3$p"ww|~ $ &3$p8xxUxAyVbyyVw.x\xy\BxBx1yAyVbyyVBxix1mw~wP0 H UH \ U0 L TL  ] M TM \ ]R x Vh m ^m  ~  \ 6 VJ M VM \ ~m q ~ $ &3$p"q u ~ $ &3$p"m q v~ $ &3$p8  \  0J  0  P ! \/ M 0  P % ^J  ^/ M ^  P ! ^! % P% / \) J 1W h P` x Ux U` | T|  ] }T}]  V  ^  ~  \ fVz}V}~  ~ $ &3$p"  ~ $ &3$p"  v~ $ &3$p8\ 90z0PQ\_}0  P U^z1^_}^18P8Q^QUPU_\Yz1  PU>UTM]MT]/T/>]\^~/^^~VCVV/>~~ $ &3$p"~ $ &3$p"|~ $ &3$p8[VP^^^V/V@\/\1V/V1PUnUT}]}T1]1_T_n]\^"~E_^^"~"VsV"@V_n~~ $ &3$p" ~ $ &3$p"|~ $ &3$p8VKOPO^^"E^"VE_Vp\1_\1"VE_V1PزUزyUܲTܲ-]-jTjy]V^~5\5V~jVjy~~ $ &3$p"~ $ &3$p"v~ $ &3$p8 U  P $T*.P.?\?CPCM\1PUζUT]Tѵ]ѵTζ]δ\Sx^x~^ô^ô~VVVζ~ôǴ~ $ &3$p"Ǵ˴~ $ &3$p"ôǴ|~ $ &3$p8+/U5VVn\ѵ\1SVV1P@^U^&U@bTb]T]T&]h\VvV~^~gVVV&~~ $ &3$p"~ $ &3$p"|~ $ &3$p8 V5;P;Pg___5; ;N\Yl\^^gg1g1m~PUU"T"^WTW}^}T^T(Q]Kz\z|\>C\Cf|f0VWV|V|CJ| $ &3$p"JN| $ &3$p"NjPPCJ}| $ &3$p8:_][___K\\P0wWww00W0P00VVT^^^001KVV0W1->PU+UT]]]T+]1\MVvV#_#IIVBVV+#* $ &3$p"*. $ &3$p".:P5\B2\\\\+\MVUV#]]]txPx3B\\\\?^j^1M\\B1 P0OUO{!U0STS]l!Tl!{!]Z\ S  sB!_!Sqv_vvSS 0 S0 5  B!l!{!v} $ &3$p"} $ &3$p"Pb\\ 5 \ !\'!B!\l!{!\&S5 B!S_!l!S!'!]5  ]_!l!]Pv B!_!l!1H^5 V ^V k 1k q ^q  1  ^_!g!1g!l!^l!vv1F J PJ  \_!l!\ ^B!_!^v1_qP!!U!$U!!T!5"]5""T""]"$T$$]!!\##^##~$$^!!^!!~!="V=""]""V"3#]# $]$$~!!~ $ &3$p"!!~ $ &3$p"!!|~ $ &3$p8K##_ $$_ ""P""^"#^#$^q#}#P $$P$$.$P.$8$18$A$PA$$10""\"$\""1$#$P#$$""1!!P0NUNU0RTR]~T~]T]X~\`^~^ns^s~WV~VV~sw~ $ &3$p"w{~ $ &3$p"sw|~ $ &3$p8(VPW^~`^^(VVC\\WW1`VVW~1]nP0NUN~U0RTRľ]ľYTY]oTo~]X~\(^(1~Ro^ns^s~2VYÿV1RVo~~sw~ $ &3$p"w{~ $ &3$p"sw|~ $ &3$p8ۿ߿U1VRoV\o\2211VRoV2Y1]nPUUT]T]T]\Sx^x~^^~VVV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8+/U5VVn\\1SVV1PUUTd]dT!]!T]\^~^^2~2VcVV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8{UVVW\!\1VV1P >U>U BTB^2T2V^V{T{^T^Hp]Ac]cl}]]bVbv\\l\vbiv $ &3$p"imv $ &3$p"mPPbi}v $ &3$p8U{G^2^E^l^%l\\nVV1Al\\1M]PUvUT^;T;^gTgv^]\)|Jg\V$v$\;\)J\gvv v $ &3$p"  v $ &3$p" .PguP }v $ &3$p8UrV;bVV)JV)VJgV]g]1)VJgV;1PU6UTi^iT>^>'T'6^]]} ']Vv\{\ \'6vv $ &3$p"v $ &3$p"P'5P}v $ &3$p8U5]"]>] ]\ '\\V>'V1\ '\1P@XUXU@\T\)])T]T]T]b^w|V|v\\v|v $ &3$p"v $ &3$p"P|~v $ &3$p8KRU V[VV 0[0[_P_V0fmPm]PV11gwPU>UT]TA]A/T/>]>\^~/^.3^3R~RVVV/>~37~ $ &3$p"7;~ $ &3$p"37|~ $ &3$p8UV/Vw\A/\1V/V1.P@^U^U@bTb]iTi]T]h\8^8A~b^~^~BViVAbV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8UAVbV.\\BB1AVbVBi1m~PUUT$]$T]T]\c^~^^~V#VV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8;?UEVV~\\1cVV1PU.UTt]t T 1]1T.].\^~^#^#B~BV sVV.~#'~ $ &3$p"'+~ $ &3$p"#'|~ $ &3$p8UVVg\1\1VV 1 P$$U$'U$$T$V%]V%'T'']$%\$%^%"%~"%%V%'V''~%%~ $ &3$p"% %~ $ &3$p"%%|~ $ &3$p8C&&^&'^}&&P&&&':'H'PH''_ '('V%Z%PZ%%]%&]&']&&P&&^&&P&&]}&&P&&&'''_''P''Q''''q''Q%%1$$P0NUN~U0RTR]YTY]oTo~]X~\(^(1~Ro^ns^s~2VYV1RVo~~sw~ $ &3$p"w{~ $ &3$p"sw|~ $ &3$p8U1VRoV\o\2211VRoV2Y1]nP0NUN~U0RTR]YTY]oTo~]X~\(^(1~Ro^ns^s~2VYV1RVo~~sw~ $ &3$p"w{~ $ &3$p"sw|~ $ &3$p8U1VRoV\o\2211VRoV2Y1]nPUU"T"^{T{^T^(P]<_\_i|\=BVBdvdT\{\i\vBIv $ &3$p"IMv $ &3$p"MnPPBI}v $ &3$p8UTV{VViViVV١@]]TT1<iVVT{1-=PUUT]T]T]\Sx^x~^^~VVV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8+/U5VVn\\1SVV1PUUTd]dT!]!T]\^~^^2~2VcVV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8{UVVW\!\1VV1P >U>LU BTBR^RT2^2T^=T=L^Hp]]bVbv\=\=Lvbiv $ &3$p"imv $ &3$p"mP=KPbi}v $ &3$p8U]]=]EV2V=VE020PV=0P]PV11M]PPhUhUPlTl ^ 7T7X^X}T}^r]Vv\}\}vv $ &3$p"v $ &3$p"P}P}v $ &3$p8UsVVX}Vs00P%VX}0 P %]%)P)7Vs1271wPUUTL^LT^T^]Vv\\vv $ &3$p"v $ &3$p"PP}v $ &3$p83:U?VCVV?0C0CGPGnV0NUPUn]nrPrV1{1PжUUжTd]dT!]!T]\ȸ^ȸѸ~^^2~2ҷVcVѸV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8{UѸVVW\!\ҷҷ1ѸVVҷ1PUyUT=]=jTjy]V ^ +~+E\EV~jVjy~ ~ $ &3$p"~ $ &3$p" v~ $ &3$p8U+00%PNj0+/P/@\@DPDN\1PU)UT]T)]V^~\]V]p~qV)~~ $ &3$p"~ $ &3$p"v~ $ &3$p8UL0q0P0P\P\Pq1PU)UT]T)]V^~\]V]p~qV)~~ $ &3$p"~ $ &3$p"v~ $ &3$p8UL0q0P0P\P\Pq1P0HUHU0LTL]T]RxVhm^m~\ V  ~!V~mq~ $ &3$p"qu~ $ &3$p"mqv~ $ &3$p8w{U0!|0|P0P\P\!1WhPкUyUкT=]=jTjy]V ^ +~+E\EV~jVjy~ ~ $ &3$p"~ $ &3$p" v~ $ &3$p8U+00%PNj0+/P/@\@DPDN\1P 8U8ɺU <T<]Tɺ]BhVX]^]{~{\V~Vɺ~]a~ $ &3$p"ae~ $ &3$p"]av~ $ &3$p8gkU{0l0luP0{P\P\1GXPU)UT]T)]ȼV^ۼ~ۼ\]V]p~qV)~~ $ &3$p"ż~ $ &3$p"v~ $ &3$p8ǽ˽UۼL0q̽0̽սP0۽߽P߽\P\Pq1PUUTM]MzTz](V^;~;U\UV~zVz~!~ $ &3$p"!%~ $ &3$p"!v~ $ &3$p8'+U;0,0,5P^z0;?P?P\PTPT^\1PyyUy{UyyTy$z]$zzTzz]z{T{{]yy\c{{^{{~{{^yy^yy~yzVz#{V{{V{{~yy~ $ &3$p"yy~ $ &3$p"yy|~ $ &3$p8;{?{UE{{V{{Vz~z\z{\zz1c{{V{{Vzz1yyPUUT$]$T]T]\UVvV^~V#VV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8;?UEIPI^^~\\1U^^1PUUTM]MzTz](V^;~;U\UV~zVz~!~ $ &3$p"!%~ $ &3$p"!v~ $ &3$p8'+U;0,0,5P^z0;?P?P\PTPT^\1PUUT$]$T]T]\c^~^^~V#VV~~ $ &3$p"~ $ &3$p"|~ $ &3$p8;?UEVV~\\1cVV1PUUT^lTl^T^0]"V"DvDC\J\v")v $ &3$p")-v $ &3$p"-KPP")}v $ &3$p8G^Jl^VJlVPI_P0V#J1 PUUT@^@dTd^T^]Vvf\m\vv $ &3$p"v $ &3$p" PP}v $ &3$p8[bwbmmdwwC^m^^^l_m__RPj^ $P$SVFm1PUWUT^T^HTHW^@]-2V2TvT\H\HWv29v $ &3$p"9=v $ &3$p"=[PHVP29}v $ &3$p8H^^H^5__0_F]D]]XVDVFJPJ]X\P\V1-PpUUpT6^6T#^#T^]Vv$\+\vv $ &3$p"v $ &3$p"PP}v $ &3$p80#N]+]#](^+^#@^X^%*_+s_X_YYPV{PVPVP&]]]]0]PPQ}qQ+1P`~U~U`T^fTf^T^]Vv\\vv $ &3$p"v $ &3$p"PP}v $ &3$p8fp_K__\^^^LVQ\`P`^nrPrV1PUUT]T]+S ^ D~D\~~ $~ $ &3$p"$(~ $ &3$p" $s~ $ &3$p8a0 PU9 UT' ]' * T* 9 ]S^~% \% ) ~* 9 ~~ $ &3$p"~ $ &3$p"s~ $ &3$p8 * 0PyyUyUyyTybzVbzzTzVTyCz^CzJzPJz{{K|VK||\||V||\|x}Vx}}}~V~~~~VEVE\V>\>__VP27]V]bPbVP\PՁ\ՁځPځVP%\%*P*MVMRPRzz^Vzz]z>z}>zU{\~~\>_\7\lz\z}\zz} $ &3$p"z!z} $ &3$p"!z'zPzz~} $ &3$p8bzzV~~Vz{^~5~^~~^Rz^^z|_~~_~~____z__z{0{{V~~V~~0>_VVRzVVz}0O}V}T~~0~~00_0z00z{0{{P{~^~~0~~P~~0~~^>^>_0_^707R^Rz00^z|0|~_~~0~~00_0__z00zU{0U{e{Pe{{\~~0>_070Rl\lz00z{0~P~0P~~^~~0>_07^Rz00zzPzF|]||]~~]~~]@]]>_]]ځ]*z]]71}}P} ~]}Z}]}}]_q]̀]Z}`}P`}}]}}P} ~ ~~P̀]}}P}~TyzP΂U΂U҂T҂\T\T؂%^%/P/<UV.].ąVӅ`eņVņ V PCVC^Vv]Ӆe]ņ]C]vч]v $ &3$p"v $ &3$p"P~v $ &3$p8G^Ӆe^ņ^^^VE_Ӆ_ņ__V0UVӅeVņ0CsVVV0TӅe0ņ000V<0<CPCąӅ`0`ePeņņ0CC00Vh0h_Ӆe0eņ_ņ0_*0C00V0P.^9u0uyPyPӅe0t0^00V0PE]Ӆe0ņ0C0ч0ч]VE0Ӆ0e_ņ0Cg0g_0P\Ӆe\ņ\\\1P]]A]tņ]WbPb^T݂PPhUhzUPlTl]0T0L]L]T]z]r/^/0p0z^Vvɻ\ɻ)v0zvv $ &3$p"v $ &3$p"~v $ &3$p80+\0L0L]\lz\]L]]PLZP Q }LZQwP>U>UBTB]T]TH^P^^c\c|V | G|} |}1S||cm| $ &3$p"mq| $ &3$p"qwPcm~| $ &3$p8$V1SV1S^1^S^^,]1]S]],G0G\\01\S\\__PP[VVVSVQPQquPuV V{V P{PQ v{QM^PUUTO^OT^T\p\ V9v9j]j{v~vv $ &3$p" v $ &3$p" &P|v $ &3$p8O^Lo^^j]]]w___w0VLVLo0oVVw0^L^Lo0o^^0 $}T $P}PQ#$q}Q4LowTw}4LPowP<DQDG#GLqowQ PUUT]T]TV^~{\{~\~~ $ &3$p"~ $ &3$p"v~ $ &3$p8p}"p}"P;RVRVPVlVVPP_1PUUT;];T ] TV ^ +~+\~\~ ~ $ &3$p"~ $ &3$p" v~ $ &3$p8;?p}"?Cp}"CJPVPVV^kP P1PUUT^qTq^T@\-2V2TvT$])q]qv]29v $ &3$p"9=v $ &3$p"=aPqP29|v $ &3$p8t(_)q__&^)q^^0V)O0OqVVPVPV)1-PU܋UT7^7T^܋T \ p܋\͉҉V҉v*]*;v~v҉܉v $ &3$p"܉v $ &3$p"P҉܉|v $ &3$p8__܋_* ]]܋]7Ԋ^4^b^΋^7V0VVbVb0V܋V͉PPhUhUPlTlk^klTl^rg\glpl\Vv]vvvv $ &3$p"v $ &3$p"P|v $ &3$p8]]eVlVV3_PlyPPPwPU^U T ^T^^\p^\',V,SvSo]ov3vCRv,6v $ &3$p"6:v $ &3$p":@P,6|v $ &3$p8o]5]VV5CVR^VP5>PR]P'PU UT^T ^\p \Vv ] v vv $ &3$p"v $ &3$p"P|v $ &3$p8;^^^ ]]+VVG[^^G[PPKWQW[~QP01N1UN12U01R1TR11]12T22]X1~1V2F2^F2n2~22^n1s1^s11~11\12~q22~22~s1w1~ $ &3$p"w1{1~ $ &3$p"s1w1v~ $ &3$p811\q22\2j2\22\1W2V22V12P22P2j2\22\J2q21]1n1P33U34U3"3T"3s3]s34T44](3N3V34^4>4~44^>3C3^C3a3~a3{3\{33~A44~44~C3G3~ $ &3$p"G3K3~ $ &3$p"C3G3v~ $ &3$p8{33\A4j4\3:4\44\3'4Vj44V33P44P3:4\44\4A41-3>3P 8U8iU <T<]NTN]]]iTBhVX]^]{~{\~N\Ni~]a~ $ &3$p"ae~ $ &3$p"]av~ $ &3$p8p}"p}"PVP VLNVP]hP1GXPUKUTk]k<T<K]"HV8=^=[~[\~\K~=A~ $ &3$p"AE~ $ &3$p"=Av~ $ &3$p8kop}"osp}"szPV<V\\P PQ | q Q'F\\'FPP,8Q8=|=FqQW{\,\WuP"P\hQhm|muq"Q\\PPQ|qQ\,<\P,6PQ|q,6Q0'8P.U.iU2T2]ZTZi]8aVNS_Sss\Z\ZiSZ $ &3$p"Z^ $ &3$p"^zPZhPeVNVZiV^3^NZ^p_%p.3_NZ_P_PVPVPVNZV1=NP''U'=,U'(T(o(^o(+T++^+=,T(1(]*5+V5+>+v++V(#(\#(F(|F()V;)*V>++V++|+=,V#(*(| $ &3$p"*(.(| $ &3$p".(J(P++P#(*(}| $ &3$p8)*wy++w++w,=,w1*H*PH**\**T**\a+l+Tl+t+\y++\,/,\/,8,P8,=,\F((0;)m*0m**P**w>+a+0a+y+wy++0++0, ,P/,=,0o(s(Ps()^;)+^>++^+=,^*>+\t+y+\++\+,\(:)_b)+_+=,_))1*>+\++\);)1 ((P@,n,Un,2U@,r,Tr,,],1T12]x,,\,,V,,R,111R12,-\./\00\01\12\,o-_./_00_01_11_ //0001--]l..]/0]00]11]11],1 ,o-0o--P-k._l.._./0/0_00000_01011P11_110,-0l..0.0000P00010110,9-09--V./0/ 0V00000V01011V11V --P-i.^l..^..P.1^--P->.Vl..P..V 00P00P--P-e.\11\1.l.1111},,P22U27U2"2T"2h2]h2~7T~77](2P2\=2B2VB2l2vl2 4^4~7^~77vB2I2v $ &3$p"I2M2v $ &3$p"M2Y2PT2#3\-45\5L6\6T7\~77\2n3w4 4wJ4`6w6~7w455+66T723]4-4]55]L66]T7~7]2-4 J4~7 2#30#3@3P@33\4-4\J45055\5L60L66\6T70T7\7P\7~7\2n304 40J4`60`6d6Pd66w6~7022P24_4-4_J4]4P]4~7_]3d3Pd33V4-4V55Pt6{6P{66V33P34\341-2=2PpU UpT]T ]\^~NVNa~bV~V ~~ $ &3$p"~ $ &3$p"|~ $ &3$p8UAb10P77U7;U77T7D8^D88T8 9^ 9/;T/;>;^>;;T77]::V::v;/;V77\77|78V8:V:;V/;>;|>;;V77| $ &3$p"77| $ &3$p"77P/;=;P77}| $ &3$p8q9P:w;;w>;Z;wh;;w99P9\:\;;\L;U;PU;Z;\h;;\7808=:0=:T:PT::w:;0;/;w>;Z;0Z;h;wh;p;P8#8P#88_8:_:;_>;;_\::\;/;\Z;h;\D88^9/;^>;;^881::\;/;\88177P;;U;AU;;T;<]<ATAA]AAT;;\;;V;<R<AAARAA;<\=?\6??\@A\<<P<<_==P=?_6??_@@_AAPAA_3>?6??@@<<=]==]?6?]?@]@A] <A ;AA ; <<0<=P==_==_=?0?-?P-?6?_6??0??P?@_@@0@@P@A_AA0 <=0==0=?0??P?@@A0AA0;<?<P?<=^=A^AA^ ==P==V==P==V1?6?P @@PY=]=P]==\==1;;P ANAUNAFU ARATRAA]AFTFF]XAA\mAAVAARAFFFRFFA_B\]CD\D|E\EF\FF\AOB_]CD_D|E_EF_FF_CDD[EEFAB]7CC]DD]|EE]FF]FF]AF ;AOB0OBqBPqB6C_7C]C_]CD0DDPDD_D|E0|EEPEE_EF0FFPFF_FF0AB07CPC0]CE0EEPEEEF0FF0AB0BzBV]CD0DDVD|E0|EEVEF0FFVFFVAAPA4C^7CC^CCPCF^zBBPB CV7CWCPWC]CVDDPEEPBBPB0C\FF\B7C1FF1]AmAPFFUF!LUFFTF(G](GLTL!L]FG\FGVG,Gv,GH^HL^L!LvG Gv $ &3$p" G Gv $ &3$p" GGPGG\H2J\VJJ\:KL\L!L\{GHwHHwHKw:KLwSI2JVJJ:KLGEH]HH]2JVJ]J:K]LL]{GH ;HL ;{GG0GGPGjH\HH\H2J02JVJ\VJJ0J:K\:KL0L LP LL\{GH0HH0HK0KKPK:Kw:KL0GGPGH_HH_H IP IL_HHPHHVHHVQJVJP$K+KP+K:KVjHnHPnHH\HH1FFP(U(U,T,~]~T]2X\HM^Ml~lV~?V?~~V~MQ~ $ &3$p"QU~ $ &3$p"MQ|~ $ &3$p8W[U1\07HP0LNLUNLOU0LRLTRLL]LOTO O] OOTXLLVnLsL\sLL|L4N^7NO^O O| OO^sLzL| $ &3$p"zL~L| $ &3$p"~LLPOOPL:MV7NNVN OVwOOVL[M_7NN_NO_JOO_MMPMMV OJOVVNN\NO\wOO\DMTMPTMM\ OJO\JOROPROwO\L:M0:MMV7NN0NNPNNVNO0JOwOVwOO0OOV[M_MP_M6N_ OJO_MMPM2N]7NN]NO] OO]MMPMNVNNPNNVMM0MM]N7N1]LnLP \8\U8\]U \<\T<\\]\]T]]]B\h\VX\]\^]\{\~{\\\\0]V0]C]~D]]V]]~]\a\~ $ &3$p"a\e\~ $ &3$p"]\a\v~ $ &3$p8]\\}#(]]}#(\\PD]N]Pt]]P]]P]]]]]P]]]#]D]1G\X\P]]U]^U]]T]^]^^T^^]]]V]]^]]~]]\]^V^^~^^V^^~]]~ $ &3$p"]]~ $ &3$p"]]v~ $ &3$p8]]}#(^^}#(S^k^P^^P^^Pq^u^Pu^^]^^P^^]^^1]]POOUO*RUOOTOP^PQTQQ^QRTR*R^O P\OOVO"Pv"PQ]QR]R*RvOPv $ &3$p"PPv $ &3$p"P)PPR)RPOP|v $ &3$p8O)P~#(R)R~#(pP%Q\QQ\PQ^QQTP%Q0%Q5QP5QGQ\QQPQR\PPPPvQVQRVGQKQPKQvQ\vQzQPzQQVQQ1OOPUUTA^AT^\]6}]Vv4]4Evvv $ &3$p"v $ &3$p"!PP|v $ &3$p84`]]A^b^^`];]]^;b^^00!VV;1PU>UT]T*]*/T/>]"HV8=^=[~[\/\/>~=A~ $ &3$p"AE~ $ &3$p"=Av~ $ &3$p8kop~"osp~"szP]PPPPVPV1'8P__U_+`U__T__]__T_+`]"_H_V8_=_^=_[_~[__\_`\`+`~=_A_~ $ &3$p"A_E_~ $ &3$p"=_A_v~ $ &3$p8=_b_}#(`*`}#(k_o_p~"o_s_p~"s_z_P__P__P__]__P__V__P__V__1'_8_P0`H`UH`[aU0`L`TL``]`(aT(a[a]R`x`Vh`m`^m``~`#a\(aLa\La[a~m`q`~ $ &3$p"q`u`~ $ &3$p"m`q`v~ $ &3$p8m``}#(LaZa}#(``p~"``p~"``P``P``P`%a]``P``V``P`aVa(a1W`h`P44U46U44T4A5]A5z6Tz66]45V55^56~W6z6^55^515~15h5\h55~6W6~z66~55~ $ &3$p"55~ $ &3$p"55v~ $ &3$p8585}#(z66}#(A5E5p}"E5I5p}"I5P5Ph55\626\55\W6z6\55VW6z6V55\W6z6\56145P@XUX5U@\T\]&T&5]bVx}^}~\~&\&5~}~ $ &3$p"~ $ &3$p"}v~ $ &3$p8p}"p}"PP#P0gxP@^U^!U@bTb^I!TI!j!^j!!T!!^h\~]}!V!!V!!}} $ &3$p"} $ &3$p"PO \!1!\I!j!\!!\  w!I!wj!!w u ^!1!^j!!^6 m ],!1!]j!!] u 0u  P  ^!1!01!I!Pj!!0O a Pa  \1!I!\j!v!Pv!|!\m q Pq  ]1!I!]G K pK  #  P    ^  P  \1!I!#j!!# !1m~P!!U!i#U!!T!("]("Z#TZ#i#]!!V""]""}:#Z#]!!^!"~"}"\":#\Z#i#~!!~ $ &3$p"!!~ $ &3$p"!!v~ $ &3$p8""p~""""p~"(","P,""]":#]Z"w"T}""\:#Z#\M""V#$#V:#Z#V8#:#1""\:#Z#\""1!!P`.~.U~.V1U`..T. /^ /G1TG1V1^..V0P0VP0T0v191V..\..|./]|00]01]91G1]G1V1|..| $ &3$p"..| $ &3$p"..P..P..V./|0191G1G1V1V./V /N/^|00^`//\00\01\91G1\//P//V|00V91G1V"/&/P&/{0_|0G1_"//0//P/$0\|00000\01091G10"//0//P/T0]|00000]00P010191]91G10//1011N/T/PT/y0^0G1^111T0|01..P33U357U33T3#4^#4&7T&757^33V33]33}35\5&7\&757}33} $ &3$p"33} $ &3$p"33P3A4V56V66V&757V33~#(&747~#(845_5&7_#404P045^55P5&7^X4\4P\45V 6l6V66V6&7V#44045P5`5]5 60 6P6]66]6606&7]`5g5Pg55]55P55VP6U6P55133P@7^7U^79U@7b7Tb77^79T99^h77V~77]77}78\89\99}77} $ &3$p"77} $ &3$p"77P77V19I9V99V77p"77p"7u8]88]919]D99]77P78V89VI99V7808*8P*8h88819I90I999977P78^819^19<9P<99^u8|8P|88]88P88V89P881m7~7P`xUxU`|T|]T]V^~\~~ $ &3$p"~ $ &3$p"v~ $ &3$p8}#(}#(1P::U:E;U::T::^:6;T6;E;^":J:\7:<:V<:^:v^:;];6;]6;E;v<:C:v $ &3$p"C:G:v $ &3$p"G:e:P6;D;P<:C:|v $ &3$p8::\::V;$;V::0::P;6;0::P:;\;6;\::P;;P::P::V::P::V:;1':7:PP;h;Uh;<UP;l;Tl;;]; <T <<]r;;V;;^;;~;<\<<~ <<~;;~ $ &3$p";;~ $ &3$p";;v~ $ &3$p8;;0;;P;;P;;V;;P;;V; <1w;;Pp==U=>Up==T=4>^4>>T>>^==\==V==v=>]>>]>>v==v $ &3$p"==v $ &3$p"==P>>P==|v $ &3$p8=>P>I>V>>V>>P>>\>>\=4>04>8>P8>g>^>>0I>M>PM>^>V^>b>Pb>g>Vk>>1==P@@U@ BU@@T@FA^FAATA B^@A\A AV A.Av.AA]AA]A Bv AAv $ &3$p"AAv $ &3$p"A;APA BP AA|v $ &3$p8YA]AP]AA\AA\dAkAPkAAVAAVIV,K:KVIKWKVHOI0II0JaJ0jJJ0JJPJJ^J:K0IKWK0HOI0II0IIPIIJaJjJxJJK,K:K0IKWK0HOI0II0J.J0.J8JP@JJJPJJNJTNJjJ]jJJ0JJPJJPJJ]JJPJJ]JK0KKPK*K0*K,KP,K:K0IKWK0H>I0>IJIPJIOIVI,KV,K:K0IKWK0HOI0II0IIPJ-JPjJ|JPJKP,K:K0IKWK0HOI0II0JJ0JaJ^jJJ^J,K^,K:K0IKWK0HOI0II0JaJ0jJJ0JJPJJwJK0K!KP!K,Kw,K:K0IKWK0OIxI0GGP`K~KU~KpNU`KKTKqL^qLiMTiMM^MYNTYNhN^hNpNTKK]KKVKKvKL\iMM\=NKN\YNhNvKKv $ &3$p"KKv $ &3$p"KKPYNgNPKK}v $ &3$p8LLPLM\ MMPMiM\M=N\KNTNPTNYN\hNpN\LL] MSM]iMM]MM]N8N]=NYN]dLLV MSv>SS\$T2T\2TATvS#Sv $ &3$p"#S'Sv $ &3$p"'SKSP2T@TPS#S}v $ &3$p8SSPST\ATJTPJTOT\^SSV$T2TVATOTV^SS0SSPSTV$T2T0ATOT0^SS0SSP$T2T0ATOT0T$T0SSPQQUQRUQQTQQ^QRTRR^RRTQQ]QQVQQvQsR\RR\RRvRR\QQv $ &3$p"QQv $ &3$p"QQPRRPQQ}v $ &3$p8QQ~#(RR~#(ZRiRPiRRVRRPRRVQR^RR^RR^QsR0sRwRPwRR\RR0RR0RR0QQPDEUEGUDETEF^FGTGYG^YGgGTgGvG^vGGTE@E]-E2EV2EXEvXEF\FgG\gGvGvvGG\2E9Ev $ &3$p"9E=Ev $ &3$p"=E_EPgGuGP2E9E}v $ &3$p8^FFPvGGPEF]F8G]YGgG]vGG]EFVF GVYGgGVvGGVEF0FFPYGgG0vGG0EF0FFPFFVFG0YGgG0vGG0FFPFF]FFPFFVFF1E-EPPThTUhTUUPTlTTlTT^T~UT~UU^rTT\TTVTTvTWU]ZU~U]~UUvTTv $ &3$p"TTv $ &3$p"TTP~UUPTT|v $ &3$p8TTPTU\ZU~U\TTPTUVZUlUVTU0UUPU5U\ZU~U0UUPU,UV,U0UP0U5UV9UZU1wTTPUUUUXUUUTU[V^[VXTXX^UU]UU\UV|VWVWXVXX|UU| $ &3$p"UU| $ &3$p"U VPXXPUU}| $ &3$p8U V~#(XX~#(VVPVW^WX^XXPXX^'V W]WW]W\X]XX]6VV\XX\6VV0VVPVW_WWWWPWX0XXXX06VV0VVPV~W\WX\XX\XX06V'W0WAX0AXEXPEXdX_dXXXXXX0?V'W0'WW_WdX0dXiXPiXX_XXPXX_XX0?VQW0QW]WPWX0?V'W0W\X0\X`XP`XpX]XX]XX0~WWPWW\WWPWW\WW1XX1UUP[.[U.[]U[2[T2[[^[]T]]^8[a[\N[S[]S[y[}y[\V\\V]]V]]}S[Z[} $ &3$p"Z[^[} $ &3$p"e[B\\\\\]]\[\P\\^\\P\M]^P]]^]]P]]^[[P[\P]](\\]\\]P]W]]o]]]B\F\PF\c\\\I]\P]]\[\0\\P\ ]VP]^]V^]o]0o]~]P~]]V]]0[\0\\P\ ]P]]0w\\1']P]0=[N[P]]U]}_U]]T]6^^6^`_T`_o_^o_}_T] ^]]]V]^v^_\_M_\R_`_\`_o_vo_}_\]^v $ &3$p"^^v $ &3$p"^+^P`_n_P]^}v $ &3$p8]+^~#(`_n_~#(^^P^_]_O_]o_x_Px_}_]>^^VR_`_Vo_}_V>^^0^^P^^V_<_VR_`_0o_}_0^_1/_R_0]]P__U_aU__T_`^`ZaTZaia^iaaT__]__V__v_`\`Za\Zaiaviaa\__v $ &3$p"__v $ &3$p"__PZahaP__}v $ &3$p8h``P``PiaraPwaaP ``P``V``VLaZaViaaV``V``P`aVa"aP"aLaV``1__P r>rU>reuU rBrTBrr^r:uT:uIu^IueuTHrpr]]rbrVbrrvr t\'t:u\:uIuvIueu\brirv $ &3$p"irmrv $ &3$p"mrrP:uHuPbrir}v $ &3$p8sPsPPss]'tmt]t u]IuRuPRuWu]Wu`uP`ueu]r$t^'t:u^Iueu^rrPrsV'tmtVt uV,u:uVIueuVrUs0UsmsP't9tP,u:u0Iueu0rqs0qssPss_'t=t0=tPtPPtt_ttPt,u_,u:u0Iueu0ttPttVttPttV u,uVs't1Mr]rP0lNlUNlnU0lRlTRll^lnTnn^Xll]mlrlVrllvl=n\Dnn\nnvrlylv $ &3$p"yl}lv $ &3$p"}llPnnPrlyl}v $ &3$p8-m@mP@mmVmnVDnxnVnnPnnVlJm]xnn]lRm^xnn^JmNmPNm?n]Dnxn]RmkmPkmm^mmPmAn^DnTnPTnxn^lm0mmPmm_mm0Dnbn0bncnPcnin_inn0mmPmmVmmPmmVnDn1]lmlPpuuUuwUpuuTu v^ vwTww^wwTuu]uuVuuvuv\vw\ww\wwvww\uuv $ &3$p"uuv $ &3$p"uuPwwPuu}v $ &3$p8iv|vP|vvVvPwVwwVwwPwwVuv]ww]ww] vv^ww^ww^vvPvv]vw]ww] vv0vvPvv^v3w^3w?wP?ww^ww^ww0ww0 vv0vvPvw0wwPw3w3ww0wwww0ww0dww1vv0uuP@BnBUnBVFU@BrBTrBB]BFTF)F])FVFTxBB\BBVBBvBC^ FF^F)Fv)FQF^BBv $ &3$p"BBv $ &3$p"BBPF(FPBB|v $ &3$p8pCCPCqDVD FV)F2FP2FQFVBC\DD\ FF\)FQF\BC] FF])FQF]CCPCCw1DRDwDDwDEw$E3Ew FFw)FQFwCCPCD^D F^QFVF^CC0CCPCC_CD]DD_D F] FF0)F7F07FQF_QFVF]CC0CCPC1D_1DGDPGDD_DD0D F_ FF0)FQF0QFVF_CD01DRD0DD0DE0EEPEEXE$Ew$E7EP7EGEwGErEXrEEwEEXEE0EEPEEwF Fw FF0)FQF0CC0CCPCC]DDP FF0)FQF0CC01DRD0DD0DE0$EBE0BEPEP FF0)FQF0DEPE0PESEPSErEQrEEEEPE FdDD0QFVF0}BBPwwUwzUwwTwx\xzTzz\w!x]xx^x8x~8xyVyzVzz~xx~ $ &3$p"xx~ $ &3$p"x)xP%xx]y*z]zz]xxPxy\yy\yyPyhz\}zz\zzPzz\VxZxPZx)yy\z}zzzzlxRy_y\z_}zz_zz_xyyyHzz yyPyy]yy]Hzz]y-yP-yFyHzZzPZz[zU}zzPzzlxXy0XyZyPZyy^yy^y\z0}zz0zzPzz^zz0yyPyy\yyPyy\yyPyy1wxP{{U{}U{"{T"{{^{}T}}^}}T({P{]={B{VB{d{vd{}\}x}\}}\}}v}}\B{I{v $ &3$p"I{M{v $ &3$p"M{q{P}}PB{I{}v $ &3$p8{0|P0|l|]}6}]}}P}}]}}P}}]{}^}|}^}}^}}^{{P{h|V}6}V}}V}}V{@|0@|\|P\|}_}*}P*}6}_}}_}}0}}0||P||V||P||V}}VV}}1|}1-{={P~~U~U~"~T"~|~^|~T^(~P~]=~B~VB~d~vd~\\vB~I~v $ &3$p"I~M~v $ &3$p"M~q~PPB~I~}v $ &3$p8~~P~EVVPV~~]]~P]]~0Pc_0EIPIZVZ^P^cVg1-~=~PUmUT^^^^T^m^*]V>v>Հ\B^\^mv#v $ &3$p"#'v $ &3$p"'KP^lP#}v $ &3$p8рPрVPYPY^V^3^4^^ՀP/\4B\^0PV4BVB^040P`F~FU~FHU`FFTFF^FGTGG^GHTFF]FFVFFvFsG\GG\GGv HH\FFv $ &3$p"FFv $ &3$p"FFPGGPFF}v $ &3$p8YGlGPlGGVG HV HHPHHVFG]GG]GH]FG^GG^GH^FsG0sGwGPwGG\GG0G H\ HH0FG0GGPGG]GG0GH0GG0FFPЃUdUЃT^BTBQ^QdT1\#]#I}I|VBVBQ}VdV#*} $ &3$p"*.} $ &3$p".:P5\\̆\4Q\Vd\؄P^^ͅPͅ4^QV^V_P_d^b__̆_4B_Vd_ŏ4PD]]]̆4]k/0-0-KPK̆0̆׆Pކ4B0Vd0k0.P.k__0,P,W_]0ކ0 P4_4B0Vd0k/0W0WmPm_ކ0ކP_4B0Vd0Db]bfPfk\o1QV1 PnnUnrUnnTnHo^HorTrr^no]rppVppvqqVnn\no|o1pVpqVqvڊV\Շ|Շ^^^|| $ &3$p"| $ &3$p"هPPv| $ &3$p8P^^\^ڊ^ P ^VVV]]]0PވVވ߈U00uV00ɈPɈ] U  0s0ډ]\u0u]0]0_G_du___s0s1݉0\0ڊ0'\U\\\1\1Pp''U',Up''T'(^(+T+,^''V**V**v++V''\''|'']''Q'p(|)x)|x))|}h++|}+,|''| $ &3$p"''| $ &3$p"''P'p(V))Vh++V+,V'"(](,(^p(p(Rd))R))h++p(()m* +`+++"(&(P&(*] ++]++],(0(P0()^))U)+^ ++^,((0((P((V((U()V))0)*V +h+Vh++0++V++0,((0((P()))Q) *0 *+*P+*<*<*O*QO*d*0d*m*P>+S+PW+h+Ph++0++++P++04+>+1S(\(P\()_>) +_ ++_* +1''P 8U8U <T<W^WXTX^Bj\W\V\~v~U]Xv]vv\cv $ &3$p"cgv $ &3$p"gPvP\c|v $ &3$p8ϋVPVϋ0P \ TP*V*.P.DV7X1GWPUxUT$]$T1]1]T]l]lxTތ\ݍ^ݍ~1O^Όӌ^ӌ~V1VO]V]l~lxVӌ׌~ $ &3$p"׌ی~ $ &3$p"ӌ׌|~ $ &3$p8PlwPV1OV\1]\lx\V1OV1ΌPȫUȫ!U̫T̫]T]!TҫV^ ~ %\%֬VV!~~ $ &3$p"~ $ &3$p"v~ $ &3$p8sP P 0P\0P\!0P^P\ɬ1׫P  U ? U  T  ] $ T$ 3 ]3 ? T  V  ^  ~  \  V $ V$ ? ~  ~ $ &3$p"  ~ $ &3$p"  v~ $ &3$p8  }#($ 2 }#(C q P  P3 > P d 0d q U $ 03 ? 0 w 0w  P  ]  0 $ 03 ? 0 $   3 ?     P  ^  P  ]  P  ]  1  P@ _ U_ U@ c Tc  ^  T ^T^j  \  p z\z_\P\  S  s  ] ]s]  s $ &3$p"  s $ &3$p"  |s $ &3$p8  ~#(~#(  S SS  P PP  0 0S0  0 0#/P/\]0@DPD\_\`P`]]     o  P0RNRUNRCWU0RRRTRRR^R4WT4WCW^XRBTVBTTT^TTTVTUVUUPUVVVCWVnRsR]sRR}R@S\TjU\UU\VV\&W4W\4WCW}sR}R} $ &3$p"}RR} $ &3$p"RRPsR}Rv} $ &3$p8RR^RTTUUVV4WRS_TU_ W4W_RRPRS]TeU]UU]VV] W4W]RS0STTU0UUU4W0RS0SSPST]TeU0eUjUPjUU]UU0UV]VV0V W] W4W0R T0 T&TP&TTT__TT0TTPTTTTPTU0UU_U4W0R@S0@SPSPPSS\TjU0UU0VV0 W&W\&W4W0RS0T0U00UjU_UU0VV_ W4W0SSPSS^TU^UU^VV^ W&W^&W/WP/W4W^VV1ST0ST^UV^V W^ST BTTPTT^UV BV W BT T^gTT^yTTPTT_]RnRPPWnWUnWi`UPWrWTrW\X^\X[T[ \^ \7`T7`F`^F`i`TxWYVYY\YZVZZ\ZZVZZ_Z$\V3\u\Vu\\\\-]V-]n]\n]]V]^\^^V^^P^^V^^P^^V^_P_<_\<_]_V]_b_Pb__\__P__V__P__\__P__\_`P``\`\`V\`i`\WW]WW}WX\j[ \\n]]\]]\)`7`\7`F`}WW} $ &3$p"WW} $ &3$p"WWPWWv} $ &3$p8WWPWZj[\3\\\]]]]^_7`F`i`WY_j[[_[ \_`7`_HXZwj[[w \\w3\\w\]w]]w]^w_7`wF`i`w\X`XP`XX^j[[^n]]^]]^`7`^\XZ0Zj[j[[0 \\03\\0\]0]]]^0^__7`0F`i`0\XX0XYPYj[^j[[0[[P \$\^3\n]^n]]0]]^]]0]`^`7`0F`i`^\X)Z0)Zj[]j[[0 \\03\\0\]0]]]]]0]^]^^0^<_]<_`0``]`7`0F`\`0\`i`]\XX0XXPXY\j[[0n]]0]]0`)`\)`7`0\XY0j[[0[[_n]]0]]_`7`0XXPXY]YZ]j[[] \\]3\p\]\(]]n]]]]]]^^]<_b_]__]`)`])`2`P2`7`]F`\`]]]1ZZ0BZZ BH[L[PL[j[_]^ B_<_ B`` B\`i` BZZ_ [H[_ZZw>[B[PB[e[e[j[P^_wBZZ_]^__<__``_\`i`_[+[P+[e[w}WWPUqUT]T!]!VTVe]eqT̎\ԏVԏv!HV^~V!VHVVVe~eqVŎ~ $ &3$p"ŎɎ~ $ &3$p"Ŏ|~ $ &3$p8oPepPaԏH!0H\!V\eq\ԏH!0H؏1PU)UT^T)^ѐ\Ð]Ð}VV)}Ðʐ} $ &3$p"ʐΐ} $ &3$p"ΐڐPՐ}\z\)\Ր~#((~#(TmPm^z^zP^ P^}Ñ\F\Kz\\0P]z]z0]P]0ÑʑPʑ\P\FKP1PUUT]T]TAV.3^3W~W\\~\3:~ $ &3$p":>~ $ &3$p">HPEVBVXVڑVߑtVVV0P0]]Pf]t]]P]0r!ftQQPQP1ߑP!I1Q1ߑIft~P660tΒ0~0Pč^101ߑߑI0ft000~0B0BVPVVX0XVt00ΒVVPV0~0k0krPr^0P^t0Β0Β^0~00Vt0Β0ΒV0~\0\]]101ߑ]ߑI0If]ft0t]0]0P___=DPD]V]aPawVj11.PΕUΕ,UҕTҕC^CT^,Tؕ\]}sVV,}} $ &3$p"} $ &3$p" P\՘\Yy\,\~#(~#(P_P_'P',_^^/]՘0PY\՘P\P\֙\D\ǚ\Η0ΗҗPҗ:]0D]P0֙]֙0Y]Yǚ0ǚ]0,0*0*4P4qTĘ0ĘјPTPT֙TYy0yTǚ0,0'+P+f,:APAY]Y]P]b\DPPY×f1ݕP0HUHU0LTL^jTjy^yTRz]glVlv\\j\jyvy\lsv $ &3$p"swv $ &3$p"wPjxPls}v $ &3$p8 PFVyPV[^\j^y^,P,W\9\0WgPUUT]םTם]T؜VȜ͜^͜~\VɝםVם~͜ќ~ $ &3$p"ќ՜~ $ &3$p"͜ќv~ $ &3$p8SgPPptPt\{P^Pĝ\ɝ1ȜPA.AU.ABUA2AT2AA]A|BT|BB]BBTBB]BBT8A^A\BQB^QByB~BB^NASA^SArA~rABV|BBVBBVBB~SAWA~ $ &3$p"WA[A~ $ &3$p"SAWA|~ $ &3$p8BBPBbBVBBVBBPBBV BBPBbBVBBVAuB\BB\BB\BbBVBBVUB|B1=ANAPBCUCdEUBCTC{C\{CDTDD\D;ET;EJE\JEdETC@C^|DD^DD~EE^-C2CV2CVCvVCC]CC^CCvChDvDE]E-Ev-E;E^;EXEvXEdEv2C9Cv $ &3$p"9C=Cv $ &3$p"=CCCP2C9C~v $ &3$p82CZC|#(;EIE|#(CCPC|D^E-E^JESEPSEdE^VDlDPXEcEPhDDvEEv{CD\E;E\JEdE\|DDVEEVDD1C-CP`~U~̩U`T^T̩^\]ɧ}ɧШVV̩}} $ &3$p"} $ &3$p"PI\&\Zx\̩\4IPI^P^P^IPTTzPz\BQPQU\xP\ɧk0k]0ɧ0P]0P\P\UZPè1P0NUNU0RTR]T]TX^mrVrvK\R\v\ryv $ &3$p"y}v $ &3$p"}Pry~v $ &3$p8P]tr]]P]]wP=^Rd^P^^0ϞPt0PܟP$Pd000VRV1Vd00؞ޞPޞ_P"VRt_Pܟ_P_P_d_Ed1ܟ^&C1]mPaaUa{dUaaTab]bBdTBdQd]Qd{dTaa^aaVaavac\cBd\BdQdvQd{d\aav $ &3$p"aav $ &3$p"aaPaa~v $ &3$p8abvbPvbpc] dd]d!dP!dBd]Qd{d]bbPbccV&d/dP/dBdVQd{dVa)c0)cP>DVP^PV$P$5^1-=P(U(%U,T,] T ]%T2X\HM^Ml~lV~ V %~MQ~ $ &3$p"QU~ $ &3$p"MQ|~ $ &3$p8̠ؠP$P٠07HPЋU/U *UЋTE]ET#]#/T *TV ^ +~+=\=V~V/~ *~ ~ $ &3$p"~ $ &3$p" v~ $ &3$p8 2}#("}#(P#.PÌnjPnj،]،܌P܌]1P0HUHU0LTL]T]RxVhm^m~\@V@S~TV~mq~ $ &3$p"qu~ $ &3$p"mqv~ $ &3$p8m}#(}#( PT^PPP&]&*P*/]3T1WhPpEEUEpGUpEETEF]FFTF!G]!GUGTUGdG]dGpGTEE\FFVFFv0GGGVEE^EE~EFVF0GVGGUGVUGdG~dGpGVEE~ $ &3$p"EE~ $ &3$p"EE|~ $ &3$p8aFFP!G0GPdGoGPFF p0.EF\!GUG\dGpG\FF1EEPpGGUGXIUpGGTGH]HHTHI]I=IT=ILI]LIXITGG\HH^HH~I/I^GG^GG~GlHVHIV/I=IV=ILI~LIXIVGG~ $ &3$p"GG~ $ &3$p"GG|~ $ &3$p8aHHPLIWIPrH}H p0.GH\I=I\LIXI\HH1GGP0OUOˤU0STSǡ]ǡT]T]ˤTZSsSĢSpcSc}\}SPS,xSx}P}SPˤSqv\v|ݡ^ݡU\^#\\|ˤ\v}| $ &3$p"}| $ &3$p"v}s| $ &3$p8v}#(}#(0<P<ޢ^,^}^ƤPƤˤ^R0Rޢ_,0}_0ˤ0ޢ0,0}0Z^}^0ˤ0PĢw}wP,w}wZ0Zբ\ޢ\#0#P\PWT}\\0ˤ0ǡ]^]}]ˤ]<  <Z  }  ˣףPף,_}__qPUUT]T]ŽV؎ݎ^ݎ~ \ V̏~͏V~ݎ~ $ &3$p"~ $ &3$p"ݎv~ $ &3$p8ݎ}#(}#(cPۏPP]Pʏ]͏1ǎ؎PUwUTR]RhThw]+S ^ ?~?@\Eh\hw~ $~ $ &3$p"$(~ $ &3$p" $s~ $ &3$p8ĩPĩD^EL^ZcPch^ݩSEJSPSP1S"E1 PUVUTu]uGTGV]"HV8=^=[~[m\mV,~-GVGV~=A~ $ &3$p"AE~ $ &3$p"=Av~ $ &3$p8=b}#(GU}#(ÐP;FPP]P*] -1'8PФUߨUФT]]]Tè]èߨT;V;LZVp)V)@^@VPVPߨV\;|;^ɧ^è|èѨ^| $ &3$p"!| $ &3$p"!'Pv| $ &3$p8 P s^ɧ ^@^ѨڨPڨߨ^]]]@m]èߨ]l\ɧ\èߨ\P\ɧ\#3P3Q_QY0YwɧקPק_@w@m_mwl]m]#P#Zml0cl0@@m0mèߨ0ly0ys_0$_@m0m_èߨ0lY0Y0@@m0mèߨ0ɧèߨPU˭UT3_3tTt_T_˭TV%kVktpt V PIVIb\bVP˭Vƪ]ƪ}^}t^}b}}˭^ƪͪ} $ &3$p"ͪѪ} $ &3$p"ѪݪPت\t\˭\ت#(#(Ps_P_ƭPƭ˭_q^b^^)]-P]]P%0]\t07\7>Tb0\˭0t˭PЭUgUЭTB]BXTXg]S ^/~/0\5X\Xg~~ $ &3$p"~ $ &3$p"s~ $ &3$p8P4^5<^JSPSX^ͮS5:SPS P !S51 P`xUxU`|T|Ց]ՑT]V^~͑\͑yVy~V~~ $ &3$p"~ $ &3$p"v~ $ &3$p8‘}#(}#(#DPPJNPN_]_cPc]l1PpUUpT]T]S^ϯ~ϯа\հ\~~ $ &3$p"~ $ &3$p"s~ $ &3$p8=TPT԰^հܰ^P^JmSհڰSPSPSհ1PؒUؒUܒTܒ5]5T]V^~-\-ٓVٓ~V~~ $ &3$p"~ $ &3$p"v~ $ &3$p8"}#(}#(PPP]ÓPÓ]̓1P 8U8vU <T<]gTgv]BhVX]^]{~{\9V9L~MgVgv~]a~ $ &3$p"ae~ $ &3$p"]av~ $ &3$p8]}#(gu}#(P[fP P]#P#J],M1GXP`I~IU~I8KU`IITII]IJTJJ]JKTK,K],K8KTII\pJJ^JJ~JK^II^II~I`JVJJVKKVK,K~,K8KVII~ $ &3$p"II~ $ &3$p"II|~ $ &3$p8II}#(K+K}#(QJdJP,K7KP`JJVJKVIJ\JK\,K8K\pJJVJKVJJ1IIPB.BU.BDUB2BT2BB^BDTDD^8BaB\NBSB]SByB}yBCVCDVDD}SBZB} $ &3$p"ZB^B} $ &3$p"^BjBPeB C\%D4D\DD\eBB~#(DD~#(BBPBC^C%D^%D,DP,DD^DDPDD^ C\C\CC\C%D\4DtD\DD\yBC0C+CP+CC]C%D]%D9D09DaD]aDnDPnDD]DD0\CcCPcCC\CCPCC\CCPCC1=BNBP<U<FU@T@^2T2A^AFTFn][`V`v]\x\ϲ2\2Av`gv $ &3$p"gkv $ &3$p"kP2@P`g}v $ &3$p8PiVxVϲV$-P-2V]2])P)̲]ϲ]AF]]aPax\10K[P HLHULH:JU HPHTPHH^H JT JJ^J:JTVH~H]kHpHVpHHvH,I\I J\ JJvpHwHv $ &3$p"wH{Hv $ &3$p"{HHP JJPpHwH}v $ &3$p8pHH~#( JJ~#(I%IP%IuIVIIVIIVIJPJ JVJ5JVH^I^II^I J^J5J^,I0IP0II\II\J:J\^IcIPcII^IIPII^II05J:J0[HkHP`1~1U~13U`11T11^1f3Tf3u3^u33T11]11V11v1,3\33f3\f3u3vu33\11v $ &3$p"11v $ &3$p"11Pf3t3P11}v $ &3$p8D2W2PW22]22]u3~3P~33]1[2VX3f3Vu33V22P22V1[20[2k2Pk22V22V33X3VX3f30u33022P22]22P22VS3X3P22P22]33S3] 333111P,.,U.,T.U,2,T2,,^,7.T7.F.^F.T.T8,a,\N,S,]S,y,}y,-V-7.V7.T.}S,Z,} $ &3$p"Z,^,} $ &3$p"^,j,Pe,-\.T.\,,P,-^-.^..P.).^F.O.PO.T.^ --U$.).Ui-m-Pm--\y,-0-(-P(-X-\--\--0.7.0F.T.0F-M-PM-t-]--P-.]t-{-P{--]--P--\--1=,N,P`axaUxacU`a|aT|aa]abTbc]aaVaa^aa~aa\abVbbVbc~aa~ $ &3$p"aa~ $ &3$p"aav~ $ &3$p8aa}#(bc}#(#b@bPbbP[b_bP_bb]fbmbPmbb^bbPbb]bb1aaPc(cU(cdUc,cT,cc]cdTdd]2cXcVHcMc^Mckc~kc}c\}c]dV]dpd~qddVdd~McQc~ $ &3$p"QcUc~ $ &3$p"McQcv~ $ &3$p8Mcrc}#(dd}#(ccPddP ddPdd]d#dP#d*d]Pdqd17cHcPddUdfUddTde]efTff]ddVdd^dd~d e\ eeVee~efVff~dd~ $ &3$p"dd~ $ &3$p"ddv~ $ &3$p8de}#(ff}#(ceePeePffPeePee]eePee]ee1ddPPhUh״UPlTl]ȴTȴ״]rV^~ų\ųvVȴVȴ״~~ $ &3$p"~ $ &3$p"v~ $ &3$p8}#(ȴִ}#(#PǴP'0'5P5\\P\ȴ0<CPC\^\`P`e\i1wPUUT[][wTw]T.V#^#A~Aҵ\~5\w\w~\#'~ $ &3$p"'+~ $ &3$p"#'v~ $ &3$p8[y]~w]]TXPXl__tPV~Vl_5VV̸_̸ָPָ׸V׸ݸpݸPVP1V"V",v,fVfpvxpV1UVUZPZwVVT_1r_rwPٷ1Uo0 PUU¹T¹4]4TA]AmTm|]|Tȹ\Ⱥ^~A_^޹^~VAV_mVm|~|V~ $ &3$p"~ $ &3$p"|~ $ &3$p8P|PVA_V'\Am\|\ȺVA_V1͹޹PUUTL^LZTZv^vT^Tڻ]ǻ̻V̻vU\Z\v\̻ӻv $ &3$p"ӻ׻v $ &3$p"׻PP̻ӻ}v $ &3$p8̻~#(~#(ļPļV%VPV?W]v]]׼PPż׼PPPVPV9Z1ǻPνUνÿUҽTҽ+]+T]ÿTؽ\^~V~Vÿ~~ $ &3$p"~ $ &3$p" P\\ÿ\P_ P _Pÿ_TPTP0PU0UdP0ÿ0Pʾ\ʾξPξӾ\׾1ݽPЩUUЩTx^xxTx^7]Fq\q|\sx|$)\)O|OV||V|E|es|x|)0| $ &3$p"04| $ &3$p"4SPxP?c]cwwEweswx](P(VV7VEeVenPnsVP\Ee\x|P|J^^s^VV]x]FVV8Sp8S08=~=SXv1sx1$PĭUĭUȭTȭ8^8T ^ Tέ]\N|\|\|ѮVѮj|j||UzVz|ϰ|V|| $ &3$p"| $ &3$p"P P#]#fwUwϰww ] wѮPVzVV PV0QU00 0|\ϰ\8<P<^U^^ ^!VV]P]z] ]!VVp0~XU11ӭPпUQUпT^T(^(6T6E^EQT] V .v. \6\6EvEQ\ v $ &3$p"v $ &3$p"8P6DP }v $ &3$p8PEPP|V(6VEQV0P`~U~@U`T]T]%T%4]4@T\^~^^~gVV%V%4~4@V~ $ &3$p"~ $ &3$p"|~ $ &3$p8QaP4?PgVV\%\4@\VV1P@KXKUXKLU@K\KT\KK^KLTLL^LLTLL^LLTbKK]wK|KV|KKvKL\LL\LLvLL\|KKv $ &3$p"KKv $ &3$p"KKPLLP|KK}v $ &3$p8XLmLPmLLVLLPLLVKL]LL]LL]}LL0gKwKPppUpurUppTpNq]Nq rT r1r]1rZrTZrir]irurTpq\qqVqqv1rLrVpp^pq~qqV r1rVLrZrVZrir~irurVpq~ $ &3$p"qq~ $ &3$p"pq|~ $ &3$p8p q}#(Zrhr}#(qqPirtrPqqVAqr\1rZr\irur\q r1ppPLMUMNULMTMiM]iMNTNN]MAMV.M3M^3MWM~WMM\MM~NN~NN\NN~3M:M~ $ &3$p":M>M~ $ &3$p">MHMPEMMVNNVNNVMMPMM\N NP NN\NNPNN\QN|NPMN0M.MPNNUNPUNNTNTO]TO-PT-PQP]QP}PT}PP]PPTNO\OP^P*P~QPoP^NO^O"O~"OOV-PQPVoP}PV}PP~PPVOO~ $ &3$p"O O~ $ &3$p"OO|~ $ &3$p8O&O}#(}PP}#(OOPPPPOPVQPoPVGO&P\QP}P\PP\OPVQPoPVP-P1NNPPPUPRUPPTPQ]QRTRR]PPVPP^PQ~QrQ\rQQ~QR~RR\RR~PP~ $ &3$p"PP~ $ &3$p"PPPPQVQQVRRVrQQPQQ\QQPQR\RRPRR\QQ0 RjRVQQ QQ1QQPQ[R [ReRPjRR QQ0PPPrrUr5tUrrTrs]ssTss]stTt)t])t5tTrr\ssVssvs tVrr^rr~rzsVssV ttVt)t~)t5tVrr~ $ &3$p"rr~ $ &3$p"rr|~ $ &3$p8rr}#(t(t}#(ks~sP)t4tPzssVss\st\)t5t\ss1rrPddUdAgUddTde]egTg%g]%gAgTdd^ddVddvdf\fg\g3gv3gAg\ddv $ &3$p"ddv $ &3$p"ddPdd~v $ &3$p8QefePfef]ff]fg]%g.gP.gAg]eePe&fVffVfgVggPggV3gAgVde0e fP f/f_ffPff_fg0%gAg0df0ffPfnf]ff]fg0%gAg0&f*fP*fefVefifPifnfVffVrff1ddPPgngUngEjUPgrgTrgg]g6jT6jEj]xgg\gg^gg~gAiV]i6jV6jEj~gg~ $ &3$p"gg~ $ &3$p"ggPgh\]ii\ij\6jEj\)h?hP?h\i_]ii_i j_ jjPj6j_hhPhh]]imiPmii]ijPj j]j6j]gh0hhPhi\]ii0iiPii\i6j0gh0hiPi0i]]i6j0iiPi'i\'i+iP+i0i\4i]i1}ggPUUT]T]ȕV^ە~ە\V~V~~ $ &3$p"ŕ~ $ &3$p"v~ $ &3$p8CdPPܖPەP0PdUUpΖ0jnPn]P]1P@XUXU@\T\]T]bVx}^}~\pVV~}~ $ &3$p"~ $ &3$p"}v~ $ &3$p8PA\\P\0&P&]P]0AEPEV\VZPZ_\c1gxPUUTV^VT^T*]V>v>\\v#v $ &3$p"#'v $ &3$p"'KPP#}v $ &3$p8P)V?VPVV^]Sb]]]^0P:\?L\LPTPS\SbPboTo\0P\P\^0P]?PPPS]Sb0boPo]00?0PPjhjUhj#lUPjljTljj^jlTl#l^rjj]jjVjjvjGk\kk\ll\l#lvjjv $ &3$p"jjv $ &3$p"jjPl"lPjj}v $ &3$p8.kCkPCkkVkkVklVllPllVjk^kl^jGk0GkZkPZkk\kk\kk0klPll\ll0jk0kkUkkUkl0kk0wjjPUoUTu]u`T`o]"HV8=^=[~[m\mV$~%`V`o~=A~ $ &3$p"AE~ $ &3$p"=Av~ $ &3$p8×ܗP%.PT_P՗ܗUP]P]%1'8PpUߙUpT]ЙTЙߙ]V^˘~˘ݘ\ݘV~ЙVЙߙ~~ $ &3$p"~ $ &3$p"v~ $ &3$p83LPPęϙPELURVPVg]gkPkp]t1PUyUTm]mjTjy]"HV8=^=[~[u\uV/~0jVjy~=A~ $ &3$p"AE~ $ &3$p"=Av~ $ &3$p8=b}#(jx}#(P\0<\\ePej\P06PP\P \01'8PUVUTT^T+T+:^:VT ] V4v4\+\+:v:V\v $ &3$p"v $ &3$p"AP+9P}v $ &3$p8Pt]y]:H]HQPQV]Tv^y+^:V^PNVyVPV:CPCHVPN\yP\1$Nj0 P`~U~U`T^T^\]}&VBV}} $ &3$p"} $ &3$p"Px\BT\~\~#(~#(OhPh?^BLPL~^P^_BY_~_x\TY\0PA_BY0Y~_~00P]BY0~00P\BY0~00P]B0P \ P\B1P@JnJUnJkNU@JrJTrJK^K.NT.N=N^=NkNTxJJ]JJ\JJ|JKVL.NV.N=N|BNkNVJJ| $ &3$p"JJ| $ &3$p"JJPJK]L$L]N=N]eK~KP~KK^LLPLL^LgM^MM^MN^ N)NP)N.N^BNkN^JJPJKLLLLN.NJK_LEL_N.N_KK]$LML]JK0KKPKK\L)L0)LL\LN\N.N0BNkN\JK0LML0MLYLPYLN]N.N0BNkN]JK0LL0LL0LMPMNPN.N0BNkN0JK0LL0LM0MMM.N0BNkN0JK0LEL0ELILPILuL_LN_N.N0BNkN_JK0LzL0zLLPL;M0;MOMPOMoMM.N0BNkN0JK0LL0L!M0!M6MP6MHMMMPMMPM.N0BNkN0LLPLLLLPLL\oMqMPqMMLLPL6MMNBNMNPMNkNuLyLPyLL_KL1=NBN1}JJPpNNUNPUpNNTNO^OPTPP^NN\NN]NN}NOVOPVPP}NN} $ &3$p"NN} $ &3$p"NNPNO\O P\PP\_OxOPxOO^OPPPSP^PPPPP^NO_O,P_PP_OO\ P=P\NO0OOPOO]OP0PP]PP0NO0O,P0,P0PP0PP_PP0NO0OBP0BPLPPPP0NO0O=P0=PAPPAPP\PP0SPZPPZPP^PPPPP\OO1NNPUUT^^T^^]Vv7\>z\zvv $ &3$p"v $ &3$p"!PzP}v $ &3$p8P9]>^]luPuz]P^>BPBV>LV^zV>0PV>z0P V PV>1P>>U>@U>>T>?^?t@Tt@@^@@T@@^> ?] ??V?4?v4?m@\t@@\@@v@@\??v $ &3$p"??v $ &3$p"?A?P@@P??}v $ &3$p8??P?+@Vt@@V@@P@@VT??]@@]@@]??P?I@^T??0??P?@]t@~@P~@@]@@0@@0T?@0@@P@I@]t@@0@@0+@/@P/@@@V@@D@PD@I@VM@t@1> ?PUUT^]T]^]Vv#\*k\kzvz\v $ &3$p"v $ &3$p"PkyP}v $ &3$p8tPV*KVzPV]*?]]k]z]P]0P^*6P6]^]k0z00P^*k0z0PVPV*1PUUT^]T]^]Vv#\*k\kzvz\v $ &3$p"v $ &3$p"PkyP}v $ &3$p8tPV*KVzPV]*?]]k]z]P]0P^*6P6]^]k0z00P^*k0z0PVPV*1PPPUPTUPQTQgQ^gQTTTT^TTTQ1Q]Q#Q\#QFQ|FQRVRTVTT|TTV#Q*Q| $ &3$p"*Q.Q| $ &3$p".QMQPTTP#Q*Q}| $ &3$p8QQPQfR\RS\SS\ TwT\TT\TT\TTPTT\gQ R^TT^vQR]TT]TT]vQR0R RP RR]RT]TT0TT]TT0TT]Q9R09RR]RS0SSPS,SX,S]SSS0S T] TTTTPTT0Q R0 R0RP0RR^RS^SSPSS^ TT^TT0QR0R@S0@S]SP]SSS T0 T$TP%T?TPTT0QfR0fRjRPjRR\RS0SSPSS\SS0SSPSS\ TT0QPR0PRTRPTRR_R;S0;S?SP?SSSS0SSPS T^ T;TTT0RRPRR\RRPRR\SSPS TPRR1TT1 QQPTUUU\XUT"UT"UU^UMXTMX\X^(UQU]>UCU\CUfU|fUWVWMXVMX\X|CUJU| $ &3$p"JUNU| $ &3$p"NUmUPMX[XPCUJU}| $ &3$p8 VVPV|V\WzW\WW\WX\ X:X\?XHXPHXMX\U@V^X:X^?XMX^U&V]X X]?XMX]U&V0&V*VP*V W]WX]X X0 X?X]?XMX0UYV0YVV]W"W0"W+WP+WWWW0WW]WXPX XX:X0?XMX0U@V0@VPVPPVV^WW^WWPWW^WX^X:X0?XMX0UV0WJW0JWNWPNW_W__WfWpW:X0?XMX0U|V0|VVPVV\WzW0zW~WP~WW\WW0WWPWW\W:X0?XMX0UnV0nVrVPrVV_WOW0OWfWPfWWWW0WWPWW^W:X0?XMX0VVPVV\VVPV W\WWPWWP:X?X\VW1:X?X1-U>UPXYUY[UXYTYZ^ZZTZ[^Y@Y]-Y2YV2YTYvTYZ\ZZ\Z[v2Y9Yv $ &3$p"9Y=Yv $ &3$p"=YaYPZ[P2Y9Y}v $ &3$p8YYPYZ]ZZ]ZZ]ZZPZZ]tYYVZZVZZVZ ZP ZZ^ZZ^tYY0YYPY8ZVZZVZZ0ZZVZZ0tY8Z08Z|>LV| $ &3$p"| $ &3$p"P/=P}| $ &3$p8P_\\ \>GPGL\0]]!/]>L]N$__!/_>L_bfPf,!/>Lb,0,.P.0!!/0>L0b0P^P^!^!/0>L0b0P]0!]!/0>L0b0P0!!/0>L0_cPct\txPx}\11PPhUhRUPlTl^CTCR^rV\|!]$C]CR|| $ &3$p"| $ &3$p"PV$V RV~#(T#($6T#(CQ~#(#^} ^&C^0 \0PV$0P V C0PVPV$1wPRRURaTURRTRlS^lSTTT6T^6TDTTDTST^STaTTRR]RRVRSvST\TDT\DTSTvSTaT\RRv $ &3$p"RRv $ &3$p"RSPDTRTPRR}v $ &3$p8SSPSTVST\TP\TaTV_ST]6TDT]STaT]ST0RRP@tXtUXt vU@t\tT\tt]tuTuu]uuTuv]v vTbtt\hupu^puu~uu^xt}t^}tt~tEuVuuVuuVuv~v vV}tt~ $ &3$p"tt~ $ &3$p"}tt|~ $ &3$p8}tt}#(uv}#(+u?uPv vPEuIuPIuuVuuVtu\uu\v v\uu1gtxtPp``U`bUp``T`$a]$abTbb]bbT``V``^``~`3a\3aCbVkbbVbb~bbV``~ $ &3$p"``~ $ &3$p"``v~ $ &3$p8``}#(bb}#(aaPaa\bbPbb\$a(aP(aa]kbb]bb] bbPb)b\)b-bP-b2b\6bkb1bb1``PbbUbYhUbbTbc^ckfTkff^fJhTJhYh^bc]xeeVeevggVbc\c5c|5cxeVegVgJhVJhYh|c c| $ &3$p" cc| $ &3$p"ccPc cP c0c]0cU>U BTB^T^THqVVvV^c\c|]"|)d|d|~|cj| $ &3$p"jn| $ &3$p"nxPu"V)VVVPP")4KPK\P\gnPx0x|P|V)0V0P^)^^^=0\\"P"$]U]])1M^P NUNU RTR^kTkz^zTXVkzVns]s}\}!}~}kz}sz} $ &3$p"z~} $ &3$p"~PQzww)wkyQ^X^z^VXV!B]]]w)XwzwK  KP]W]  ])  )5]P0wGwX0fkwz0P]57P7k]z] )GX fkz 0P^X0fk^z0P\Pk\z\PVzPVv0fk0]nPUUTb^bT^Tv]]V.v.*\1\v\ v $ &3$p"  v $ &3$p" P5Q5@1yQM_1y_b!^1y^VDoVb  V0V1y  VPH_HpV_Vb@0@DPD11y0y0!4P4.^y^P^bH0HWPW_P_P0_1y0y_0P_0P,]1<P<]]pxPxVPVyVQX0XgPg1yQt0t_P_Py_111PUQ"U"T"^B"TB"Q"^(]B"Q"]=BVBnvn \ B"\B"Q"vBIv $ &3$p"IMv $ &3$p"MZPWuQu !"B"B"P"QPB"PB"f_  _ !_+!!_"B"_P !"B"+!!"P !" P  _!!P!"_0 ] !0!"]"B"0H0H V  0  V !0!+!V+!!0!!V!!V"B"0P ^ +!^+!%]b&y&P&&]J#h$0h$B%_C%b&0b&y&_y&&0&&_&&0y##P#@%^C% &^ &&P&&^&&^0$4$p4$$#$$V$$P$%Vb&y&#%C%1&&1""P&&U&+U&&T&'^'+T++^&w']++] ''V'>'v>')\)+\++v''v $ &3$p"''v $ &3$p"'*'P''E'QE'(8***>+++++Qb'f'Pf'+w'(])>+]++]++]''P'(w)*w8*>+w++w++w''P'()**8*>+++++'(^)*^++^(8***>++++'N(0N()V))0)8*V8**0**V*>+0>+V+V++0++0'(0((Q))0))Q)8*8*>+0++0++0((P()**8*P>++++()P))^>+L+PL++^++^'(0()])>+0>++]++0++]++0''P')_)*_**P*+_((P(R)wR)V)PV)l)V**P*8*w>++w++wi+l+Pl++V++V_))1++1& 'P+,U,E.U+",T",,^,-T--^-E.T(,P,\=,B,VB,d,vd,,],,Q,,v--vB,I,v $ &3$p"I,M,v $ &3$p"M,n,P--PB,I,|v $ &3$p8,-\--\-E.\,-V--V9.E.V,.-_-E._#-*-P,.-0.-0-P0--_--0--_-E.0,,P,-^--^-E.^-"-P"--V-.P.9.V--0--0-,=,PP.~.U~.1UP..T..^.R1TR1a1^a11T..]..\..|.0V0M1VR1a1|a11V..| $ &3$p"..| $ &3$p"..PR1`1P..}| $ &3$p8./^191^a11^./]191]11]G//_a11_//P/191R1//P//}/191R1//P//}/191R1//P/191R1/0^01^91R1^./0//P/0_01_191091R1_a110"/&/P&/0\0M1\a11\l/p/Pp/000P00\0 191M1M1R1\a11//P/0]01]91R1]a1i1Pi11]/h0_01_91M1_/h0\01\91M1\001M1R11..P11U15U11T12^25T55^12V 22S242s42p2\p22s22s~i4|4s55s22s $ &3$p"22s $ &3$p"2#2P 23Vi44V55VY2]2P]2^4w^4i4wi45wp2b4\i45\22S|44Sp22022_2h4_i44045_\3c3Pp2h30h33P3i4wi45055w22P2f4^i4t4Pt45^3(3P(3G3V33P33P44P44V?3C3PC3i4w45wG3[3P[3`4V44P45V33P4i405501 2P 5V5UV59U 5Z5TZ55]5s9Ts99]99Tb55_y5~5S~55s55V5s9ws99s99w~55s $ &3$p"55s $ &3$p"55P5N6_7 8_88_s99_55P5z7w7 8w88w99w5T7]7 8]88]99]/66S8 8S88S99S5W60W6\6__67_7 80 88_88089U9s9_99_66P67w 88w8s9w99wm77] 88]8s9]99]q7w7Pw7~7s~77w 88w8s9w99wz7~7P~77w 88w88v8s9w99wz77V 88V8s9V99V 56067P77w7 80 88w8808s9w99099w6 6P 67^77P78^8s9^99^66P67v 8l8vl8p8Pp88S8s9v99v66P 77P3777P99P66P67S89S99P99S7#7P#9&9P&9c9S77w 8*8wc9s9w77^ 8*8^c9s9^~881991g5y5P9:U:<U9:T:l:^l:<T<<^<<T:@:\;;V;;v<<V-:2:V2:T:vT::]<<v2:9:v $ &3$p"9:=:v $ &3$p"=:a:P<<P2:9:|v $ &3$p8t:g;_$<<_<<_<<_::V$<{<V:+;V<<V?;F;P:G;0G;T;$<<0<<0<<0::P:;]$<<]<<]<<]:g;0g;#<_<<_<<0<<_::P:<\D<<\<<\+;>;P>;;V<<P<<V;#<_<<_<<_;$<1<<1:-:P<=U=AU<"=T"==\=ATAA\AAT(=Q=_>=C=^C=h=~h=j@V@AVAA~AAVC=J=~ $ &3$p"J=N=~ $ &3$p"N=Y=PU=Q>_??_@@_@)A_AA_==P=>??@@@)AAA=>]??]@@]@)A]AA]= >^??^@A^=>0>>^>r?^??0@@^@)A0)A:AU:AFA^AA^Z>>_AA_>>P>>@@?!?P!???@)AAAA-?4?P4?0>>P>>??0@@0@@P@@@)A0AA0==P=?\??P?P@\@A\AA\>>P>>@P@P@T@PT@@\@@AAAA\>>P>?_?@_@@_)AA_AAPAA_YA\AP\AA^~???@AA~??\?@\AA\]@@1AA1-=>=P U U T z]z}T}];S+0^0Q~Qx\x|~}~04~ $ &3$p"48~ $ &3$p"04s~ $ &3$p8[}0+P0HUHU0LTLʓ]ʓT]T]RxVY]}f]hm^m~\\~mq~ $ &3$p"qu~ $ &3$p"mqv~ $ &3$p8I1f1VVʓ֓P֓Y]f]]Y1f11WhPUsUTa]adTds]+S ^ ?~?_\_c~ds~ $~ $ &3$p"$(~ $ &3$p" $s~ $ &3$p8?d0 PUUT]XTX]T]V+1]1U}]^~S\SW~X\~~ $ &3$p"~ $ &3$p"v~ $ &3$p8+]BVV5X1P`8~8U~89U`88T88]8g9Tg99]99T99]88V 9:9^:9d9~99^88^88~8`9\g99\99~88~ $ &3$p"88~ $ &3$p"88v~ $ &3$p88b9}99}8K9V99V 9b9]99]>9g9188P99U9;U99T9T:]T::T::]::T:;]9:VT::]::}::]99^9:~::\::\:;~9:~ $ &3$p"::~ $ &3$p"9:v~ $ &3$p8?::1::1?::V::VT::1::1::199P ;8;U8;`<U ;<;T<;;]; <T <2<]2<Q<TQ<`<]B;h;V;;]; <}2<Q<]X;];^];z;~z;<\ <Q<\Q<`<~];a;~ $ &3$p"a;e;~ $ &3$p"];a;v~ $ &3$p8; < Q2<Q< Q;;V2<Q<V; < Q2<Q< Q; <1G;X;Pv(vU(v3wUv,vT,vv]vvTvw]w$wT$w3w]2vXvVvv]vv}w$w]HvMv^Mvjv~jvv\vv~v$w\$w3w~MvQv~ $ &3$p"QvUv~ $ &3$p"MvQvv~ $ &3$p8vv  w$w  vvVw$wVvv17vHvPUUT]T]\p\Vbvvv $ &3$p"v $ &3$p"|v $ &3$p8PU.UT_]_T]T.]V^~^^0~0\\.~~ $ &3$p"~ $ &3$p"v~ $ &3$p8Ul0loPUVV1P0IUIU0MTM]T]T{Skp^p~\~~pt~ $ &3$p"tx~ $ &3$p"pts~ $ &3$p80YkP JUJSY.U`P ]y y yVyyUyySyyUyyUyyP GUG^)w)G~G1w1 U wUw2U2wEUES^SfU [T[11 T T2T2ETESSfTFXPXSL%S< SS+SSS}SPW10l%\ 00$\\+\\20}\ES0y}P}LV VVV+VSV2V}VEVSfV_cPcS'101VVL%V< VV+SVV}VW10 00TpT20ES0P\ \\x\#] J]2]Q1~ ~~2~^1 JJ^^2JYPY1V JV2Vg#S#]\]8S8LsxL]\ ] c\c]^]\ ] SsxS SE]E\]S ] S]&S&+]+S6];^\^c}c]\}]\}&]+N\NS}SS^}]VS[}S}]\}aSr VJVVESV"&P&\+?\1\2s\PV+VV VPV+VP ^+S^\x\PxPQ|xQнU\qUq\TUTj\jU\BUBl\lzUнT_TTTj_jTB_BjTj_BTBl_lzTнQzP!\!(PYq\\qUq\TUTj\jU\BUBl\lzUUYPY%^(T^j^B^lz^}]Tj]]B^]}P#](T]j]B]lz]̾V̾^*V*9vx-V-@vx@VvxV(YVq=V=BPBeVejPj^PzVt̾^Tj^^PB^UTSTxUxSUнSTrVrwUwxTxVTнV Ps1e x1eV1TSTeU\н\PʽPQ|qʽQpzUz\UPSP x\PS |PUA\ALULl\lwUw\U\%U%N\T0V0LTL`V`wTwV!T!MVM|T|VT޺V޺TVCTCNV0VPӹ_P_]PPP޺S0_U_$ U0cTcSTSTS]T]STS T $ S4[0[V$ V40P9LP!PP4 P]_]]  ] $ P $ U$  V % T% vU'U0.(vVUVU'U0.(V2U'U0.(2wVwU'U0.( LU'U0.( + T+ w ]w vT'T0.(v]T]T'T0.(] T'T0.( w]wT'T0.( LT'T0.(  Q _QL_4  \v\P\\ w\  P  \1F\>L\A\\ \hV >Vh^1^ >^P\1\#P#>\Q\ 2 ^2 ` V` | vx cVcvvxAVA1]1V-V-2~2U^Zw^wV >]>LV  Q    Q - 2wU]U]U]U] ~V~vVDVV -V-2P2`V<\J\JOPO\]O`]POZPQ}OZQUD_DEUEp_T@]@ETEp]Q^EQEX^XxQx^Q^Q^Qp^0Eh0hxPx00PVp0Xx^^UD_DEUEp_VEhVxVP\\bp\)V)3v3Mvx5V5HvxHV\E\VV\VPpVH\i\P\PV^] :U:3]34U4]/V/4PVPY\\r\KVvx!VvxV\4VVPV|\\PVU]mUm]U*]*dUd]U[][`U`]U ]0]P0] 0P\\ \VmV*dVVR`VVdVdvxfVfwvxwV\m\mV\*V*d\dV\MVMRPR`\`V\ V{\*\*/P/R\0AUA\S\]U]mSFYS]mSFYP]jPNVQVYs]jQpU^AUAh^hAUA^S UpTS pQ\S QUVU_v_dvp{^{~x^VVA^hVA^AeVjV2 ^2 @ VE S ^ VVE S V D^^^D^h^^2 E ^iT2 ? TP]S ]PwS w__S _{{T{U S UTV\VZUZ[T[\UT\P` r Ur  S  U  P  V  V  V  VU(U`USUSzUzSU`TVTVT!VzVUSUSzUzSUPz\\*U*VUUV]U]bVbULTLSTS]bS*U*VUUV]U]bVbUP]\b\ U zVzUUV=U=BVB_U,T,ySyTS=BS U zVzUUV=U=BVB_UP=\B_\@U@\U\DTD]T]ckPkSSPnUn\UUPrTr]TPSTPkUk-]-4U4B]PoTo/^/4T4B^z\DVuV#vx#CVCLvLVvxVIV\1V1m\mrPrVPBVV1JVJOPOrVUS$U$CSCZUZS!T!\$T$\\$T$\S$U$CSCZUZS0]}]S$C]Z~]~P]d^$^P oCoUCoUoUUogoUgox] oCoTCoUoTUokoTkoooxT oCoQCoNo\NoUoPUokoQkox\bokoQkox\boobox]xopVp&pv&p+pvpqvvVvvPvvVooPox_ooPoxov^vvPvx^xxUxuySuy{yU{yySxxV{yyVxx0xoyVxy\'yoy\ >T>IVINTNZV'M\NZ\U˛S˛ћUP̛V̛ЛTpTɵVɵTVTpQ^¶Q¶^y\"\{\ɵ̵P̵V¶V"V2V_"_2_V{VP{PQv{QP2=^B"BU"B0BU0B1BUB"BU"B/BUDtP$8U8QPQUQPQUUSSUUV)UT\)T#SU9S9:U:GSGHUH[U[S T  T BPHlTlh:RUV,U,tVtUVUTS,T,@S@T0,@0@UPUS0P,<Pw|P|\\00,Y0YlPlw\P\@`U`SUSUU@fTfjQj\T\QT@cQc]Q]TQDn0n~P~V`UU?U?@U`T\T\;T;@T`QVQV?Q?@Qd0]P]P@0S SSUMUM[UTJVJMTM[T0@\@EPEL\LMPM[00=S@ISPyUySUSUUUPoToThT'T0.(TT'T0.(T`UUUUUUUCSd00A]ACPCV \'P'C\OUOSTSVPVUEVEKUKYVLTL]TE]EKTKY]l0l^E^EY0p0p\E\EY0e0e_E_EY000S0&ESEY0UUTTQQ` U * \* + U+ ^ \^ { U{ | U| U \` T S P ' S+ ^ S^ j Tj q Sq t Tt | T| S` Q ( V( + P+ ^ V^ { Q{ | Q| Q Vd  0+ 0 v0 0` U U U  U c Ud 0 0 P  0  P 5 05 7 P7 c 0d 0 0 S 0 ! 0 ! 0  S  T  0  S 5 05 7 u7 7 07 L !L c 0d 0  P  P c 0`UT\U U \  U * \* - U- C \C F UF X \`TST$ S$ F TF X S`QQ Q Q  Q X Q`R]R R ]  R , ], - R- E ]E F RF X ]dTSVP S P $ S$ - T- A VA F PF X S U  U QUpUUUU"U"jUt{0{UPUP'X'jUt{0{UPUu UKPKLr LjPt0R0jR!U!4V4PUPbVbgUT!X!gTQ4\4PQPb\bgQ" "3PP[PUU0VUVx\xyUy\U\0VTVvVvyTyVTVy~P~SPS\S[uS-U-VUVU&V*T*\T\T&\SSU&SRhPh]P]] P &]8LQLaPadQdoPwQQ(P0SUSbVbgUgvVvwUwUVUVUS U #U#)U "SUPUPUUQQTUUQU)U)SUT)T)STT)TU)UpUpTp U V U 1 V1 4 U4 C UC V U Vp T S T S 4 T4 < S< C TC T S S P S \ P 0 S0 3 \3 4 PC S S V U 1 V1 4 UC V U V 0" $ 0P \ S \C P 0P X \X q P  U # U# 9 U9 T U  T " S" # T# 9 T9 L PL T S # U9 T U  T " S" # T9 L PL T S U \ U\UU\UUU\Ue\ehUhU\ TNSNTSTSTTThThTSTS QVQQVQQQVQcVchQhQV QVQQQVcVchQV T ySSTTS9SS U\UUU\e\ehU\Xp0 9]9bS0]0ZUZeVefUfVUUVUUVvSSp~U~UpP=U=S U pSATATTpTV kV]Dk]0PDk0U\U\U!T!?V?TP20P\0?VPUVpUpVUPTm]mpTp]};0;GPGL^p0U0#P#+V0PP)S)*U+LSSSUSUDSDJUT\T&\&JTpP P9JPP1PI]UUUUUU U 5U5E T.V.5U5TTVTTVTV0T0EVQQQQQHQ0Q0EHRSRRSRRSR(S(0R0ES0(P(\@0@EPw0wVP0P)V)0P0E0909=P=^E0J0JNPN]E0U=\=DUDf\fU\#U#P\P{U{ UT;V;CUCDTDVV'T'VQ?]?DQD]Q ] Q'Q']R:SDS S'R'S0P\00P0P0P0]P00PV00PS002T+90UBSBzUzSUS0X0P0 4U4fVfUVU$R0RVPV\0@LpfjPjVPpPpUSUSt00]t0VVUNVNOpOgVghU.0.RPRfSfhPUUUUTTTTpUSP}SpT\T=\=ZTZ}\ U S U SU1S1cU 0 P c0 U 6 S6 U T T T 0T e Pe j 0q 0 L 0L e Qq 0p U U U U U T U U U U Up T T T T T T T T T T  U ] V] a Ua V U U a V  T { \{ T / \/ S TS a \ e 0e ] 0  P ! ]! 1 01 S ]S \ P\ a ] ) p{  P \! 1 p1 S \ W BW a Pa _ P ! _! 1 B1 a _ # U# ' S' . U. t St x Ux S 3 03 = U= ] 0x U U 0 U 0U e \x 0 \ 0  0 ' V. u Vu x Px VP \ U\ { S{ | UT e 0e | PT ] 0] d PP\\P%U%<V<=U)T)=T ;S*=P**@**V**PUSUSUUPU{UPPVS{VFJPJOSOSPUUPd\|\U UT TUSUP\\PVP:VgVUSpP`mUmySyUhmUmSSrPry0yqp@OUOVUUS1U19U 3U3TVTYU 7T7YT 7Q7YQ$3U3TVTYU0JSJXQ8LPLXT`lUlSUUPwUxUx #   [# l# # # K# # BUSUSUPSUU( S( ) U) ? S? @ U@ C U( S( ) U) ? S? @ U ) P7 > P U U U U U U U U U U U U U UUUUTVTVTSS*U*SUUS`T`VTTVT&`T`VTVT&*U*SS2`UUPoUozSzQUUUUPoTo}V}TTTTTPoQo\RQQQQT0koQo\RQkoTo}V}TTkoUozSzQUpP7HPH Q7W 7W07HPHWQU]U]TP_PT_TU]U]\\P^^PSSPVP_v_\'V'0vxV\  &V&+|<PPPU) S) A UA SU SPTn}np} }U) S) A UA SU S& ]s ]fnPn: \A s \ \P@ _A _P> ^A ^L\LV& V& S ]S } V} vx4 N ]N S vS n Vn s }s \/Ps  PUl]lqUqJ]T@_@kTk_JTzUl]lqUqJ]^\J\Pn^qJ^PgSqJS@V@^_^\VvxJf_fkvkV\V|,PkwPUUUUTV\TVWUWW\WYUYZ\Z\UUUTU{Ww{WWWWwWWW\wUUQUW^WWQWW^WWQW\^UURUW_WWRWW_WWRW\_UUUUTV\TVWUWW\WYUYZ\Z\UUhVVWWVYZVUUPUWSWWUWWSW\SUW]WW]W\]AVKVPUTV0TVXVPXV&W\9W=WP=WWVWW\WW0WY\YZ0ZZVZZ\ZZVZ\\UUTUVV4VT4V}P>}'~\'~B~0B~b\b0y\|'}_'}J}VJ}R}vR}'~V'~B~_B~bVb_PVPyV||P|y|}PboPpuPbbUbcSccUccUc2cS2c8cUbbTb c] ccTccTc7c]7c8cTbbQb cV ccQccQc3cV3c8cQbbUbcSccUccUc2cS2c8cUb c\c5c\c'c|0@cicUiccSccUccUccS@cmcTmccVccTccTccVDcicUiccSccUccUccSDcFcuucycPycc\cc\}ccPcc]ccPcc]cc]ccPccSccP\\U\bU\\T\\\\\T\^\^&^T&^j^\j^q^Tq^b\\\Q\\]\\Q\!^]!^&^Q&^l^]l^q^Qq^b]\\U\bU\\V\}]V\^h^V`aV\\P\]P]^S&^\^S\^f^Pq^bSo]y]P\\_\%^_&^\^_q^b_\}]0}]]P]^V&^\^V\^q^0q^`V`a0abV]]T]V]V]^]T^]]^]]~]#^^&^\^^q^`^``P````P`aab^3]J]P`aP aaP0vXvUXvvVvxUx"xV"xyUyyVyE|U0v\vT\vv^vxTx"x^"xyTyy^yE|T4vXvUXvvVvxUx"xV"xyUyyVyE|UVvw\wE|\hvovPovwSwE|Shvw]wE|]vvPvw^wx^"xy^yE|^vvPkvv_vvVvvvvwVwxVx"x_"xyVyy_yyPyy_yyVyyPyE|VvvPyyPyyPooUoIp\IpqUqr\r%vUooToWp^WpqTqr^r%vTooQo%vooUoIp\IpqUqr\r%vUopVqrVjssVopPpxqSq%vSoIp0IpMpPMpp\qr0jss\oWp0Wp[pP[pq^qq^qr0r%v^o}q]q%v]ppPp{q\qq\rjs\s%v\ipopPoppYop_ppVppvpyqVqqVqr_rjsVjss_ssPss_ssVssPs%vVppPssPssPj1jU1j%k]%k&kU&ko]j1jU1j%k]%k&kU&ko]/j#k\&ko\R^>RCRPCRUR^RBS\qS]T\kUsU\IIPIVL_jLsU_J JPNNPNNPJJPCRORPPRURP.K;KP;KVL]N=O]=OLOPLOQ]R#R]RBS]qS]T]kUsU]d(dU(ddVdeUeeVeJgUJg}gV}gjUd,dT,dUe]UeZeTZej]d(dU(ddVdeUeeVeJgUJg}gV}gjU&dd\ee\Jg}g\5d=dP=dPeSZejS5dWe^Zej^ddPdSe\Zee\eJg\}gj\8dd_ddVddvdQeVZeeVee_eJgVJgfg_fgkgPkg}g_}ggVggPgjVaddPkgwgPxg}gP@HTHUTHHVHIUYHsHPsHIS IISHIT IITHIV IIV`H I\ II\PGjGUjGGSG:HUzG~GP~GG\GG\G:H\GGPGG]GGPGG]GGPG:H]GGPGGVGGVG:HVGGPGGSGGSG HP H:HSGGPGG]GGPGG]GGPG:H] FGFUGFF^FFUFOG^ F+FT+FOGT FGFQGFfF\fFFQFF\FGQGOG\ FGFRGFpFVpFFRFFVFFRFOGV FGFXGFxFSxFFXFOGSKF[FP[F}F]}FFPFG]G GP GOG]KF[FP[F}F]}FFPFG]G GP GOG]PEnEUnEE\EEUEF\FFUPE[ET[EFTPEnEQnE}ES}EEQEESEFQPEnERnEE]EEREF]FFRrEEPEEVEEPEFVFFPrEEPEEVEEPEFVFFPDDUDD\DDUDAE\AEFEUDDTDFETDDQDDSDDQD>ES>EFEQDDRDD]DDRDCE]CEFERDDPDDVDEPE?EV?EFEPDDPDDVDEPE?EV?EFEP0;t;Ut;@^@@U@D^0;R;TR;D0;t;Qt;;S;DQ0;t;Rt;Dg;z;0z;;P;Dg;;0;;P;?]@D]g;;0X@}@P}@3Ag;;0~??\g;;0=t?Ut??RBBUBDRg;;0|<l=0l=b?\r@3A\MAB 'BB0BB\g;t;Qt;;S;;sp;@S@DSg;;0;v=V@BV g;;0 g;;0==P=?VBDV g;;0;;P;?_?@0@D_DD0z;;P;D;;P;?]@D]=~?RBDR=~?VBDV=6?P6?ZO^}8O^}JYxkmv0JYx+-1Xn+-1I@.K1`-   . K  W f @ W f * X` G0g=B_z]b4Hpp=pv  L  `wwycp'MSSVZCR^;;>M++.=+CFQT[ty 0JI X  !!]!]!_!n!!2"`"##!#%#.#3#X####### $$$%_%a%j%%%%&&&.&L&& '(''''((](](_(n((2)`)_*)))*H*_******r++,,!,*,\,,,,,,, ---._.a.j....///./L// 01000011]1]1_1n11J2x22222F222-3-3/3>3[34H443334444445+556z65555`6z66666677G8h7j7s77 89888888>9p9989 9:9999999::::I:K:T::::G;G;I;X;t;;<Q<;;;;8<Q<<<<<<==$?>>>>>> ?$?g?g?i?x??)@8@@@@=A=A?ANAlAUBBBBBBBBQBBBCCC-CPCDD;EJEdEmDsD|DDEEEEEEEFGUGdGpGFFFF0GGGGGGGGHH=ILIXIHHHHI/IIIIIIJJK,K8KeJgJpJJJKgKgKiKwKKwLyL}LLLLLwLyL}LLMMM.MQMMNNNNNNOP0P}PPPOOOPXPoPPPPPQQQQQRQQQQRRRRSS TDTSTaTTTTTTuUUWWfWWVVVVV W@WWWWWWWWWWXXvZzZ[[ \G\G\I\X\u\#]H]]]]]]]^^^'_'_)_8_U__``W`W`Y`h``a0aLaaaaaabbb7c7c9cHcechdqdddddddeefGfGfIfXfvfg@g$hghghihxhh8i`iDjjjjjjXkkdllllllxmmnnnnnnoopppppqqrZrirurrrrrrsst)t5tgtgtitxttuuuv v7v7v9vHvdvvv$wmwmwow~wwBxpxyxyyyy8yhyyyyyyyzz{J{Q{U{^{c{{{{|||.|L||},~P~ [}~p~~}}}},~F~F~P~iyy]]_n5`1ʂς1mmo}ejnw|Ѕ--/>_0ˆ==?Mng5:>GLnЋ/ *%#/ *WWYhKXǎǎɎ؎͏'')8U -Gl̓GGIXu,MgՕ'')8U(`ŘtЙ  CFp5D`>@I؝0D`6`נ--/=^T$*.7<_ݤЦF̦/FЦçè%Ȫ׫׫٫ɬ!]]_n2`o(Xoޯ(P!'+49\jܴ:AENSx,ҷȸGGIXu%Ȼjռhx]]_n2`o(Xo:AENSx,MMO]~*/3<Ac@gPg''ggiw.L //mmo~Bp8hJQU^c  <]]_n2`o(Xohx]]_n2`o(Xo:AENSx,MMO]~=wwy2@}{%jhxWWYh( 5zJLU 5zJQU^c  >#P#Fp  F-NHACFWY\   Y\a}o o r    0 _ n |        $ 3 ? o o r      '')8U'0j_% GGIXu N]i==?NmZYh779Hf\@'')8U/ggix&mmo~  !!!!!!!""Z#""""@#Z######w%%&&o'0%2%;%r%&&'''''*++****++=,=,?,N,s,--7.F.T......T00G1 0 00P019111111 383f3u33p2283X33333355&7m7m7o7~77889':':):7:X::;6;w;w;y;;G<G<I<X<u<!=B=P=_=k======>>>>>> ?.?e@x@@@@@@@A(AAAA=B=B?BNBsBCCDEEE-ENEFGgGvGGGGGGGOII:KIKWKKKKKKLMYNhNpNNNNNNOPcQQQQQQRRRRRSS SS8ST$T2TATOTwTwTyTTTQU`U~UUUUUUWWXYYY-YNYZZZ=[=[?[N[s[\\']P]]]]]]^ __/_R_`_o_}______``ZaiaaaaaaaccBdQd{ddddddffg%gAg}g}ggggNi`i6jwjwjyjjjkkl]l]l_lmll5nHnnnnnnopprgpiprppqqMrMrOr]r~rt0t:uIueuuuuuuvw|wwwwwwwwx2xyyz-{-{/{={^{| }p}}}}}-~-~/~=~^~ 88^΁ 8҂  CBVd·1`-ڊGGIWx7`vΌ]lxݍ8Oڎ؏Veqԏ(H WWYhNPYpݕݕߕ,WWYg9\jyȜɝם115Da,4_П779Hf٠ %__bqˤ3<Z},XZ}4;?èߨ   8"Lhex˭ (<XȯܰKKM[|в2wwyȴ  ;Uwи8w̶ `w͹͹Ϲ޹ m|úȺH_ǻQ`ݽݽ߽׾ÿ(6EQ%4@lswggixc 8@ .P+:V3H@z0kz0kz[==?NoJ`/>Lwwy(CF GGIXu779Hf\ rtw--/=^ Px   8??[5`*y~YY\kMz>}}Z0Dn(6ggiw--/>\'P(*3b_H_--/>_0`@BKz  C!  Z   W W Y h  A P M      Y}//mmo~gls]]_nWGNR[`  CHBDM__bqvl! B!_!8    _!l!!!!!!""$####$$$$$$%%%'''''a&u&x&}&'''' ( (((?()@)++=,***5+++},},,,,1.p.//111-2-2/2=2b234w55~7q3t333337777788/;>;;::::;/;;;;; <==??AAA]A]A_AmAAB@CDDFFFFFFF"GHH'J8JLHHIHQHVHH]L]L_LnLLN@NO OOOOOOPQQR]R]R_RnRRRRRRSTTT4WSSTTUUUV}W}WWWWWW$\8\7`F`i`BZZZp[]^^@_`````6bpbbbbbbbb)ceeJhmeoexeegghhhhhklokkkk@n`nXoboboxopvvyyyz4z6zCz~z}~`x݂݂߂ %ą؅xȆ-N0q͉܋.Qjȕ?N\lҘ--/=^  rÛǛʛ̛ћ 6]]_m&Xd Yآ(--/=` 8ĥ8H-Ndé$Hvs8HMS.48AFq ӭӭխX  ̯ү֯߯OORa8!XʹFY`mKY`mwwy'0]lzP]!н_ @@GGGGG[MMO^j Xlnq 39=  //44   (444Pp'g8PP`P`==?Nk,,11  111Jx`x0X00'')8U  ''PPWW< '''PWWWq,,<8PH T X h        7 } }      2zFHQPl(MMO^0]]_nvfzGz#8Q--/=cs  B""""""%H%&&&&&& '3'_))+++@++++-,-,/,=,^,----E.-_--9......00M1a11//a11/%000111 2,24p4522 3345g5g5k5y55~88s999c6h667997788:::-:N:;(<<<<;t;<<;;;;<<-=-=/=>=b=]@@AAA>=?@AAA~???@BBB(B,B/B}B}BBBBdDDF)FQFFFFFFGGGGH[H[H]HkHHII JJ5J}J}JJJJKL.NBNkNKKLNBNkNNNNNNOPP Q QQQ?QRST-U-U/U>U_UVW:X?XMXXXXXXYZTZ`_`_b_e_____________````@`@`B`E`aaab$b$b&b)bhbhbjbmbbbbbcccccccccccc0d0d2d5dWdWdYd\dddddddddddddeeeeeeeeFfFfHfKfmfmfofrfffffffffffff g g gg0g0g2g5gWgWgYg\g~g~ggggggggggg-h-h/h2hThThVhYhhhhhhhhhhhhh i iii4i4i6i9i[i[i]i`iiiiiiiiiiiiiiiiijj j#jEjEjGjJjljljnjqjjjjjjjjjjjkkBkBkDkGkikikkknkkkkkkkkkllll?l?lAlDlflflhlklllllllllmmmmmAmcmcmemhmmmmm|n|n~nnnnnnnnnneoeogojooooo p p pp1p1p3p6pupupwpzpppppppppAqAqCqFqhqhqjqmqqqqqqqqqqqqqHtHtJtMtototqtttttttttttuuuu(u(u*u-uuuuuuuuuuuuuvvvvwwww;w;w=w@wbwbwdwgwwwwwwwwwwwwwxxx xxxxxxxxxyyy y+y+y-y0yRyRyTyWyyyyy{y~yyyyyyyyyyyyyzzzzzAzczczezhzzzzzzzzz{{{{9{9{;{>{`{`{b{e{{{{{ننۆކ *&!%( , H    @ T y6@Z C ^cp***2Pw' 0 < &kyz|Lpk2kc@Hk(p+x 8!'!' >A>Aq q "!%!U!"!%!U!" "G"" "G"""(#""(##$$ $($($+$&&&'b'b'b't'0(=(''( (''( ('''' (0(((((@)D)E)g)`,p,A/N/\/_/////23=8B8`8e8m8p8M;R;p;z;;;;;=====t?BDDDDDDDTETEVE[EjErE$F$F&F+FCFKFoGwGzGGGGIVLpLsUIJNNJJJJHRfR KKKK+K.KUwW{W~WWWW\UVYYVWZZW"W&W+W]^0^`^x^b]F]aaUd{dpggajj m0mppssvvyy|"~0~y|}hx҂Vp͒"0Vу.H;ax&47W5H !$++1impzq.0T.WF`N`x`o8`P 7\`af p    c@cL)8&&&&h&&Xf   7 *T *u   * * *! *C g      $ 9 *N *g   * * * * 3 ]_ }~f ] X ` e% XU ] ` ]  `p e : j  e!  e9 ^@e%x e  p  2? R 2y    * *  *0 *J *h * *     0  Q  p   _  _    `<.  W  ~      p  p  S   S 8  X  ` pk    L  L  3  P_    ^  n  ^=  m  `       + T p    5 Yj  Y )! `  )!A #u 0!~ # % #> %B .(m %> .( n* 0(> n*. ,Y p*>w , . ,> . .1I .>i .1 2 01  2H 4 3 4 6 4: 6i V8 6 V8 9 `8^; 9l ; 9@ ; ; ; - ;W ; ;  ; `< ;@ `<> 3?j `< 3? A @? A4 Ba A B dE Bt dE/ pG_ pE pG XI pG XI4 8K_ `I} 8K L @K L; No L N P N PR R P R aT R% aTX W pT W \! WM \y ] \o ] ^  ]o3  ^k  +`  _+  +`  [a2! 0`+X! [a! c! `a! c" d." cJ" dx" f" d" f" 3h# f9# 3hf# Sj# @h# Sj# sl$ `j%$ slR$ n}$ l$ n$ p$ n% pJ% urx% p% ur% 5t% r& 5tG& vq& @t& v& 3w& v#' 3wI' yw' @wN' y' {' yN( {=( j( {=( ( .( ) .4) @`) 0) @) ) @* 6* f* * * Ƌ* + ƋH+ /t+ Ћ_+ + /+ , 0o>, l, , V, , V- V3- Vg- - `V- - . V=. l. v. V. v. 1/ w_/ / o/ o/ o*0 ߙ_0 po0 ߙ0 `0 1 `J1 w1 `1 1 1 %2 Z2 U2 2 U2 ̩ 3 `l,3 ̩\3 3 Щ3 3 !4 q!4 !R4 ~4 0N4 ~4  5 615 a5 y5 5 y5 ζ 6 N,6 ζX6 6 жN6 6 ɺ6 7 ɺB7 ys7 к7 y7 )7 8 )P8 ~8 0N8 ~8 '9 NS9 9 9 N9 : L: u: : v:  ; vB; 6v; ; 6; < @.< \< >< N< >< = @N8= m= = N= = .$> NE> .y> ~> 0N> ~> )&? C? )r? ~? 0N? ~? @ NA@ t@ @ N@ @ L1A ,WA LA A P<A B IB <mB B yB B yC )IC hC )C C 0C  D :D ZD D D FD E EP >jP >P 5P @P 5Q !DQ @`bQ !Q i#Q !Q i# R o'FR p#uR o'R ,R p'S ,:S T.oS ,DS T.S V1S `.T V1VT 3T `1#T 3T 57U 3/U 57dU 9U @7U 9U E; V :E$V E;XV <V P;V <V k=+W <K[W k=W >W p=UW >X @NX >zX @X BX @=X BY DDY BcY DY GY DY GZ WKFZ GgZ WKZ pNZ `KZ pN[ rQ?[ pN_[ rQ[ R[ QR[ R\ OT.\ RoN\ OTv\ U\ PT=\ U\ X] U_=] Xv] [] X] [^ ]C^ [k^ ]^ }_^ ]^ }_+_ ad_ __ a_ {d_ a` {d8` Agh` d` Ag` Ej` Pga EjMa #la Pja #la n"b 0lsMb nb rb neb rc euPc rE{c euc wc puXd wLd zd w/d zd }e {@e }xe e ~e f mCf kf mf ̓f p]f ̓+g d^g Ѓg dg g p$h Oh xh eh h xh i xAi qmi i qi )i j )@j pj 0}j j ,j | k ,8k ek 0Wk k k bk -l `l  l l %l l %/m ˤ]m 0~m ˤm ߨm Ф!n ߨXn wn n wn ˭o K4o ˭po go Эo gp Ep pnp p Fp 6p Fq ״Bq P`q ״q q q  r =r dr r r r *s ÿZs }s ÿs Qs пt QEt @wt `t @t u @Bu |u u u v VUv v Vv w `I=w {w w w x Px wx x x  y =y my ty y z 6z sz Lz z L{ RH{ Pp{ R{ { `{ *| ]| | | | } 2} ]} M{} } } }  ~ '~ 7~ Y~ sy~ ~ s~ ~ + G r   . ^ .( K 0a   ŀ  >- S > n @.ہ n 6? pc 6  @߂   7 U  n Ń n ) pM     0 K Pr 0  \ օ 0 , \ - ^ ` ,  >  >O & @ &χ  0 F +v K +҈ {!  0K3 {!e $ !9 $ '$ $L '{ =, ']Ȋ =, 2, @,P 2 7 2ދ 7 ;< 7] ; Anj ;} A" FT Ay F !L Fa  !L: Oh 0L O *RՎ Oj *R CWI 0Ri CW i` PW ֏ i`  b> p`Nd b Yh b Yh  o8 `hV o x xՑ y x  yG yr y0 y’  y L  ; ޓ  7 n ܋ L˔ ܋ - <P | Z :Õ Z \! `B \r  `  ! C v ћ 1˗ ћ *' JG *v  0Ø  ! 3B r    é! C ét  ЩŚ  % G ~ ! ۛ ! m mJ w p% Ĝ N   NI z P* z֝ н P н? zk н  zŞ  * i  ֟ F : z  Ϡ  # U  z& ̡ f f+ Y pz  K K K1 B[ B  ң   (I (k $  & $ ʤ m  m  F C p ` F  A P ǥ A   PL" L t s    A r  ŧ  P ? Q"j Q Q" & `"Y &5 +d &. + E. +U E.) 1Q P.\l 1 5ª 1dߪ 5 9- 5F 9v < 9 ū < A < 8 A] 1B 1B VF @B VFI H| `F Hҭ :J H! :J[ kN @J+ kN P, pNYU P Tɯ P T- \Xc Tl \X° cZ `X cZ= d[ j } * * * *۱ * *  *! *9 [ ɉ{ ɉ  ̲ Ȋ Ȋ 7 7= Y | ƌ ƌ -ٳ Ќ] - 0 Y    ٴ   0 O ,l ,   ܵ   & vB v` |  N N׶ { { . L h   ÷ q q , U |  X Xȸ n n ( O ɠt ɠ z zֹ   4E _ "} * * * * *) *O *n *     # ͢F ͢e   Լ   1 ɤN ɤu   +ֽ + N N@ b  A A;   >4 >Y i| i   L  L& ӫ> ӫ\ x    i  i 3 O mi m % %     ( yE y` ]y ]     3 O /i / } } Y Y չ' չF #c #w ں ں u u z z   + "I[ 0v [ * * * *# *F *m * * 0 z z : := [ p ? ?   T&P& L&H&D&#@&-<&68&A4&M0&Z,&g(&t  k k   1 13 L i     X X m> m] z  % %   , L %j % X X   S S= `  v v O O  ! j< j\ z     " !F !d h" h" $# $# 5) 5)- .J .j U5 U5 u; u; A A Q0 QY 1X 1X :Y :Y [ [  c  *5 *N *h * * * * * [ ^2 ^R `p ` ` ` a a \a" \aF {bh {b b b c 0 ` &-&T `&L) ch&&&& p= @Yo Ok @) !=^ @) q  0 =!O ;)[ `<jv &2Yd~ CTs  P/$<c! ; `aPv  "I KYv Pb P+ 0"<_ "   09 0#P 0e=\~ `1 Њg  0J7Zv &6] im N} *FTi ;  I @gS=i B `Q^ R1x @a a<" ` 5 HCa of }  , ,Kw! bZ2 Lk} C , 8 * `a / @@ =Ut ` "  =Z hz&  9W u 9/In  AM 8Ea t&   ` !.D Th P (7b q B1  `u) ;[k| Р `  ' 0M4Mj . p pH "  -: YIo} "h Dk &Kj p"~ |  0P 6 7K Xh @Xw c P6 B `5Qo/&;b p# pL'3L]y x [. o8E ;U ^f} 8]z v/Cd P AR P o'Ds n   `JX&'H `~ Љ ?.L 0Wl   @D f'B_ @jw X   )7\ Тl  0-Ig p{ Ф!5f p w p# 0(5Ea&hx 0= Ќ]5Nq ! b< 0)Lt pZ%/ { .e p!< Lh 7Qev %  m @ a  q      .annobin_Av_CharPtrPtr.c.annobin_Av_CharPtrPtr.c_end.annobin_Av_CharPtrPtr.c.hot.annobin_Av_CharPtrPtr.c_end.hot.annobin_Av_CharPtrPtr.c.unlikely.annobin_Av_CharPtrPtr.c_end.unlikely.annobin_Av_CharPtrPtr.c.startup.annobin_Av_CharPtrPtr.c_end.startup.annobin_Av_CharPtrPtr.c.exit.annobin_Av_CharPtrPtr.c_end.exit.annobin_XS_unpack_charPtrPtr.start.annobin_XS_unpack_charPtrPtr.end.annobin_XS_pack_charPtrPtr.start.annobin_XS_pack_charPtrPtr.end.annobin_XS_release_charPtrPtr.start.annobin_XS_release_charPtrPtr.end.annobin_Devel.c.annobin_Devel.c_end.annobin_Devel.c.hot.annobin_Devel.c_end.hot.annobin_Devel.c.unlikely.annobin_Devel.c_end.unlikely.annobin_Devel.c.startup.annobin_Devel.c_end.startup.annobin_Devel.c.exit.annobin_Devel.c_end.exit.annobin_XS_XML__LibXML__Devel_mem_used.start.annobin_XS_XML__LibXML__Devel_mem_used.endXS_XML__LibXML__Devel_mem_used__PRETTY_FUNCTION__.23861.annobin_XS_XML__LibXML__Devel_refcnt.start.annobin_XS_XML__LibXML__Devel_refcnt.endXS_XML__LibXML__Devel_refcnt__PRETTY_FUNCTION__.23817.annobin_XS_XML__LibXML__Devel_refcnt_inc.start.annobin_XS_XML__LibXML__Devel_refcnt_inc.endXS_XML__LibXML__Devel_refcnt_inc.annobin_XS_XML__LibXML__Devel_fix_owner.start.annobin_XS_XML__LibXML__Devel_fix_owner.endXS_XML__LibXML__Devel_fix_owner__PRETTY_FUNCTION__.23841.annobin_XS_XML__LibXML__Devel_refcnt_dec.start.annobin_XS_XML__LibXML__Devel_refcnt_dec.endXS_XML__LibXML__Devel_refcnt_dec__PRETTY_FUNCTION__.23795.annobin_XS_XML__LibXML__Devel_node_from_perl.start.annobin_XS_XML__LibXML__Devel_node_from_perl.endXS_XML__LibXML__Devel_node_from_perl__PRETTY_FUNCTION__.23755.annobin_XS_XML__LibXML__Devel_node_to_perl.start.annobin_XS_XML__LibXML__Devel_node_to_perl.endXS_XML__LibXML__Devel_node_to_perl.annobin_xmlMemMallocAtomic.start.annobin_xmlMemMallocAtomic.endxmlMemMallocAtomic.annobin_boot_XML__LibXML__Devel.start.annobin_boot_XML__LibXML__Devel.end.annobin_LibXML.c.annobin_LibXML.c_end.annobin_LibXML.c.hot.annobin_LibXML.c_end.hot.annobin_LibXML.c.unlikely.annobin_LibXML.c_end.unlikely.annobin_LibXML.c.startup.annobin_LibXML.c_end.startup.annobin_LibXML.c.exit.annobin_LibXML.c_end.exit.annobin_LibXML_output_close_handler.start.annobin_LibXML_output_close_handler.end.annobin_LibXML_input_match.start.annobin_LibXML_input_match.end.annobin_LibXML_input_open.start.annobin_LibXML_input_open.end.annobin_LibXML_error_handler_ctx.start.annobin_LibXML_error_handler_ctx.end.annobin_LibXML_validity_warning_ctx.start.annobin_LibXML_validity_warning_ctx.endLibXML_validity_warning_ctx.annobin_LibXML_validity_error_ctx.start.annobin_LibXML_validity_error_ctx.endLibXML_validity_error_ctx.annobin_LibXML_input_read.start.annobin_LibXML_input_read.end.annobin_LibXML_read_perl.start.annobin_LibXML_read_perl.end.annobin_LibXML_get_recover.start.annobin_LibXML_get_recover.endLibXML_get_recover.annobin_LibXML_load_external_entity.start.annobin_LibXML_load_external_entity.end.annobin_XS_XML__LibXML__XPathContext_setContextSize.start.annobin_XS_XML__LibXML__XPathContext_setContextSize.endXS_XML__LibXML__XPathContext_setContextSize.annobin_XS_XML__LibXML__XPathContext_setContextPosition.start.annobin_XS_XML__LibXML__XPathContext_setContextPosition.endXS_XML__LibXML__XPathContext_setContextPosition.annobin_XS_XML__LibXML__Attr_parentElement.start.annobin_XS_XML__LibXML__Attr_parentElement.endXS_XML__LibXML__Attr_parentElement.annobin_XS_XML__LibXML_export_GDOME.start.annobin_XS_XML__LibXML_export_GDOME.endXS_XML__LibXML_export_GDOME.annobin_XS_XML__LibXML_import_GDOME.start.annobin_XS_XML__LibXML_import_GDOME.endXS_XML__LibXML_import_GDOME.annobin_XS_XML__LibXML_DISABLE_THREAD_SUPPORT.start.annobin_XS_XML__LibXML_DISABLE_THREAD_SUPPORT.endXS_XML__LibXML_DISABLE_THREAD_SUPPORT.annobin_XS_XML__LibXML__XPathExpression_DESTROY.start.annobin_XS_XML__LibXML__XPathExpression_DESTROY.endXS_XML__LibXML__XPathExpression_DESTROY.annobin_XS_XML__LibXML__RegExp_DESTROY.start.annobin_XS_XML__LibXML__RegExp_DESTROY.endXS_XML__LibXML__RegExp_DESTROY.annobin_XS_XML__LibXML__RegExp_isDeterministic.start.annobin_XS_XML__LibXML__RegExp_isDeterministic.endXS_XML__LibXML__RegExp_isDeterministic.annobin_XS_XML__LibXML__LibError_level.start.annobin_XS_XML__LibXML__LibError_level.endXS_XML__LibXML__LibError_level.annobin_XS_XML__LibXML__LibError_num2.start.annobin_XS_XML__LibXML__LibError_num2.endXS_XML__LibXML__LibError_num2.annobin_XS_XML__LibXML__LibError_num1.start.annobin_XS_XML__LibXML__LibError_num1.endXS_XML__LibXML__LibError_num1.annobin_XS_XML__LibXML__LibError_line.start.annobin_XS_XML__LibXML__LibError_line.endXS_XML__LibXML__LibError_line.annobin_XS_XML__LibXML__LibError_code.start.annobin_XS_XML__LibXML__LibError_code.endXS_XML__LibXML__LibError_code.annobin_XS_XML__LibXML__LibError_domain.start.annobin_XS_XML__LibXML__LibError_domain.endXS_XML__LibXML__LibError_domain.annobin_XS_XML__LibXML__XPathContext_getContextSize.start.annobin_XS_XML__LibXML__XPathContext_getContextSize.endXS_XML__LibXML__XPathContext_getContextSize.annobin_XS_XML__LibXML__XPathContext_getContextPosition.start.annobin_XS_XML__LibXML__XPathContext_getContextPosition.endXS_XML__LibXML__XPathContext_getContextPosition.annobin_XS_XML__LibXML__Namespace_nodeType.start.annobin_XS_XML__LibXML__Namespace_nodeType.endXS_XML__LibXML__Namespace_nodeType.annobin_XS_XML__LibXML__default_catalog.start.annobin_XS_XML__LibXML__default_catalog.endXS_XML__LibXML__default_catalog.annobin_XS_XML__LibXML_HAVE_THREAD_SUPPORT.start.annobin_XS_XML__LibXML_HAVE_THREAD_SUPPORT.endXS_XML__LibXML_HAVE_THREAD_SUPPORT.annobin_XS_XML__LibXML_HAVE_STRUCT_ERRORS.start.annobin_XS_XML__LibXML_HAVE_STRUCT_ERRORS.endXS_XML__LibXML_HAVE_STRUCT_ERRORS.annobin_XS_XML__LibXML_HAVE_SCHEMAS.start.annobin_XS_XML__LibXML_HAVE_SCHEMAS.endXS_XML__LibXML_HAVE_SCHEMAS.annobin_XS_XML__LibXML_HAVE_READER.start.annobin_XS_XML__LibXML_HAVE_READER.endXS_XML__LibXML_HAVE_READER.annobin_XS_XML__LibXML_LIBXML_VERSION.start.annobin_XS_XML__LibXML_LIBXML_VERSION.endXS_XML__LibXML_LIBXML_VERSION.annobin_XS_XML__LibXML__RegExp_matches.start.annobin_XS_XML__LibXML__RegExp_matches.endXS_XML__LibXML__RegExp_matches.annobin_XS_XML__LibXML__Pattern_DESTROY.start.annobin_XS_XML__LibXML__Pattern_DESTROY.endXS_XML__LibXML__Pattern_DESTROY.annobin_XS_XML__LibXML__Node_unique_key.start.annobin_XS_XML__LibXML__Node_unique_key.endXS_XML__LibXML__Node_unique_key.annobin_XS_XML__LibXML__Node_isSameNode.start.annobin_XS_XML__LibXML__Node_isSameNode.endXS_XML__LibXML__Node_isSameNode.annobin_XS_XML__LibXML__Node_hasAttributes.start.annobin_XS_XML__LibXML__Node_hasAttributes.endXS_XML__LibXML__Node_hasAttributes.annobin_XS_XML__LibXML__Node_hasChildNodes.start.annobin_XS_XML__LibXML__Node_hasChildNodes.endXS_XML__LibXML__Node_hasChildNodes.annobin_XS_XML__LibXML__Node_nodeType.start.annobin_XS_XML__LibXML__Node_nodeType.endXS_XML__LibXML__Node_nodeType.annobin_XS_XML__LibXML__Document_setVersion.start.annobin_XS_XML__LibXML__Document_setVersion.endXS_XML__LibXML__Document_setVersion.annobin_XS_XML__LibXML__Document_setStandalone.start.annobin_XS_XML__LibXML__Document_setStandalone.endXS_XML__LibXML__Document_setStandalone.annobin_XS_XML__LibXML__Document_standalone.start.annobin_XS_XML__LibXML__Document_standalone.endXS_XML__LibXML__Document_standalone.annobin_XS_XML__LibXML__Document_setEncoding.start.annobin_XS_XML__LibXML__Document_setEncoding.endXS_XML__LibXML__Document_setEncoding.annobin_XS_XML__LibXML__Document_setURI.start.annobin_XS_XML__LibXML__Document_setURI.endXS_XML__LibXML__Document_setURI.annobin_XS_XML__LibXML__Pattern_matchesNode.start.annobin_XS_XML__LibXML__Pattern_matchesNode.endXS_XML__LibXML__Pattern_matchesNode.annobin_XS_XML__LibXML__LibError_context_and_column.start.annobin_XS_XML__LibXML__LibError_context_and_column.endXS_XML__LibXML__LibError_context_and_column.annobin_XS_XML__LibXML__Dtd_publicId.start.annobin_XS_XML__LibXML__Dtd_publicId.endXS_XML__LibXML__Dtd_publicId.annobin_XS_XML__LibXML__Dtd_systemId.start.annobin_XS_XML__LibXML__Dtd_systemId.endXS_XML__LibXML__Dtd_systemId.annobin_XS_XML__LibXML__Namespace_declaredPrefix.start.annobin_XS_XML__LibXML__Namespace_declaredPrefix.endXS_XML__LibXML__Namespace_declaredPrefix.annobin_XS_XML__LibXML__Namespace_declaredURI.start.annobin_XS_XML__LibXML__Namespace_declaredURI.endXS_XML__LibXML__Namespace_declaredURI.annobin_XS_XML__LibXML__Node_namespaceURI.start.annobin_XS_XML__LibXML__Node_namespaceURI.endXS_XML__LibXML__Node_namespaceURI.annobin_XS_XML__LibXML__Node_prefix.start.annobin_XS_XML__LibXML__Node_prefix.endXS_XML__LibXML__Node_prefix.annobin_XS_XML__LibXML__Node_localname.start.annobin_XS_XML__LibXML__Node_localname.endXS_XML__LibXML__Node_localname.annobin_XS_XML__LibXML__LibError_str3.start.annobin_XS_XML__LibXML__LibError_str3.endXS_XML__LibXML__LibError_str3.annobin_XS_XML__LibXML__LibError_str2.start.annobin_XS_XML__LibXML__LibError_str2.endXS_XML__LibXML__LibError_str2.annobin_XS_XML__LibXML__LibError_str1.start.annobin_XS_XML__LibXML__LibError_str1.endXS_XML__LibXML__LibError_str1.annobin_XS_XML__LibXML__LibError_file.start.annobin_XS_XML__LibXML__LibError_file.endXS_XML__LibXML__LibError_file.annobin_XS_XML__LibXML__LibError_message.start.annobin_XS_XML__LibXML__LibError_message.endXS_XML__LibXML__LibError_message.annobin_XS_XML__LibXML__Document_version.start.annobin_XS_XML__LibXML__Document_version.endXS_XML__LibXML__Document_version.annobin_XS_XML__LibXML__Document_encoding.start.annobin_XS_XML__LibXML__Document_encoding.endXS_XML__LibXML__Document_encoding.annobin_XS_XML__LibXML__Document_URI.start.annobin_XS_XML__LibXML__Document_URI.endXS_XML__LibXML__Document_URI.annobin_XS_XML__LibXML_LIBXML_DOTTED_VERSION.start.annobin_XS_XML__LibXML_LIBXML_DOTTED_VERSION.endXS_XML__LibXML_LIBXML_DOTTED_VERSION.annobin_XS_XML__LibXML__Reader_readState.start.annobin_XS_XML__LibXML__Reader_readState.endXS_XML__LibXML__Reader_readState.annobin_XS_XML__LibXML__Reader__close.start.annobin_XS_XML__LibXML__Reader__close.endXS_XML__LibXML__Reader__close.annobin_XS_XML__LibXML__Reader__DESTROY.start.annobin_XS_XML__LibXML__Reader__DESTROY.endXS_XML__LibXML__Reader__DESTROY.annobin_LibXML_set_reader_preserve_flag.start.annobin_LibXML_set_reader_preserve_flag.endLibXML_set_reader_preserve_flag.annobin_XS_XML__LibXML__Reader__setXSD.start.annobin_XS_XML__LibXML__Reader__setXSD.endXS_XML__LibXML__Reader__setXSD.annobin_XS_XML__LibXML__Reader__setXSDFile.start.annobin_XS_XML__LibXML__Reader__setXSDFile.endXS_XML__LibXML__Reader__setXSDFile.annobin_XS_XML__LibXML__Reader__setRelaxNG.start.annobin_XS_XML__LibXML__Reader__setRelaxNG.endXS_XML__LibXML__Reader__setRelaxNG.annobin_XS_XML__LibXML__Reader__setRelaxNGFile.start.annobin_XS_XML__LibXML__Reader__setRelaxNGFile.endXS_XML__LibXML__Reader__setRelaxNGFile.annobin_XS_XML__LibXML__Node_ownerNode.start.annobin_XS_XML__LibXML__Node_ownerNode.endXS_XML__LibXML__Node_ownerNodeXS_XML__LibXML__Node_ownerNode.cold.8.annobin_XS_XML__LibXML__Node_ownerDocument.start.annobin_XS_XML__LibXML__Node_ownerDocument.endXS_XML__LibXML__Node_ownerDocument.annobin_XS_XML__LibXML__Node_lastChild.start.annobin_XS_XML__LibXML__Node_lastChild.endXS_XML__LibXML__Node_lastChild.annobin_XS_XML__LibXML__Node_firstChild.start.annobin_XS_XML__LibXML__Node_firstChild.endXS_XML__LibXML__Node_firstChild.annobin_XS_XML__LibXML__Node_previousSibling.start.annobin_XS_XML__LibXML__Node_previousSibling.endXS_XML__LibXML__Node_previousSibling.annobin_XS_XML__LibXML__Node_nextSibling.start.annobin_XS_XML__LibXML__Node_nextSibling.endXS_XML__LibXML__Node_nextSibling.annobin_XS_XML__LibXML__Node_parentNode.start.annobin_XS_XML__LibXML__Node_parentNode.endXS_XML__LibXML__Node_parentNode.annobin_XS_XML__LibXML__Document_removeExternalSubset.start.annobin_XS_XML__LibXML__Document_removeExternalSubset.endXS_XML__LibXML__Document_removeExternalSubset.annobin_XS_XML__LibXML__Document_internalSubset.start.annobin_XS_XML__LibXML__Document_internalSubset.endXS_XML__LibXML__Document_internalSubset.annobin_XS_XML__LibXML__Document_externalSubset.start.annobin_XS_XML__LibXML__Document_externalSubset.endXS_XML__LibXML__Document_externalSubset.annobin_XS_XML__LibXML__Reader__preservePattern.start.annobin_XS_XML__LibXML__Reader__preservePattern.endXS_XML__LibXML__Reader__preservePattern.annobin_XS_XML__LibXML__Reader_document.start.annobin_XS_XML__LibXML__Reader_document.endXS_XML__LibXML__Reader_document.annobin_XS_XML__LibXML__Reader__getParserProp.start.annobin_XS_XML__LibXML__Reader__getParserProp.endXS_XML__LibXML__Reader__getParserProp.annobin_XS_XML__LibXML__Reader_matchesPattern.start.annobin_XS_XML__LibXML__Reader_matchesPattern.endXS_XML__LibXML__Reader_matchesPattern.annobin_XS_XML__LibXML__Node_cloneNode.start.annobin_XS_XML__LibXML__Node_cloneNode.endXS_XML__LibXML__Node_cloneNode.annobin_XS_XML__LibXML__Reader__nodePath.start.annobin_XS_XML__LibXML__Reader__nodePath.endXS_XML__LibXML__Reader__nodePath.annobin_XS_XML__LibXML__Node_nodePath.start.annobin_XS_XML__LibXML__Node_nodePath.endXS_XML__LibXML__Node_nodePath.annobin_XS_XML__LibXML__Reader_standalone.start.annobin_XS_XML__LibXML__Reader_standalone.endXS_XML__LibXML__Reader_standalone.annobin_XS_XML__LibXML__Reader__setParserProp.start.annobin_XS_XML__LibXML__Reader__setParserProp.endXS_XML__LibXML__Reader__setParserProp.annobin_XS_XML__LibXML__Reader_quoteChar.start.annobin_XS_XML__LibXML__Reader_quoteChar.endXS_XML__LibXML__Reader_quoteChar.annobin_XS_XML__LibXML__Reader_nodeType.start.annobin_XS_XML__LibXML__Reader_nodeType.endXS_XML__LibXML__Reader_nodeType.annobin_XS_XML__LibXML__Reader_depth.start.annobin_XS_XML__LibXML__Reader_depth.endXS_XML__LibXML__Reader_depth.annobin_XS_XML__LibXML__Reader_name.start.annobin_XS_XML__LibXML__Reader_name.endXS_XML__LibXML__Reader_name.annobin_XS_XML__LibXML__Reader_namespaceURI.start.annobin_XS_XML__LibXML__Reader_namespaceURI.endXS_XML__LibXML__Reader_namespaceURI.annobin_XS_XML__LibXML__Reader_localName.start.annobin_XS_XML__LibXML__Reader_localName.endXS_XML__LibXML__Reader_localName.annobin_XS_XML__LibXML__Reader_moveToNextAttribute.start.annobin_XS_XML__LibXML__Reader_moveToNextAttribute.endXS_XML__LibXML__Reader_moveToNextAttribute.annobin_XS_XML__LibXML__Reader_moveToFirstAttribute.start.annobin_XS_XML__LibXML__Reader_moveToFirstAttribute.endXS_XML__LibXML__Reader_moveToFirstAttribute.annobin_XS_XML__LibXML__Reader_moveToElement.start.annobin_XS_XML__LibXML__Reader_moveToElement.endXS_XML__LibXML__Reader_moveToElement.annobin_XS_XML__LibXML__Reader_moveToAttributeNs.start.annobin_XS_XML__LibXML__Reader_moveToAttributeNs.endXS_XML__LibXML__Reader_moveToAttributeNs.annobin_XS_XML__LibXML__Reader_moveToAttributeNo.start.annobin_XS_XML__LibXML__Reader_moveToAttributeNo.endXS_XML__LibXML__Reader_moveToAttributeNo.annobin_XS_XML__LibXML__Reader_moveToAttribute.start.annobin_XS_XML__LibXML__Reader_moveToAttribute.endXS_XML__LibXML__Reader_moveToAttribute.annobin_XS_XML__LibXML__Reader_lookupNamespace.start.annobin_XS_XML__LibXML__Reader_lookupNamespace.endXS_XML__LibXML__Reader_lookupNamespace.annobin_XS_XML__LibXML__Reader_isValid.start.annobin_XS_XML__LibXML__Reader_isValid.endXS_XML__LibXML__Reader_isValid.annobin_XS_XML__LibXML__Reader_isNamespaceDecl.start.annobin_XS_XML__LibXML__Reader_isNamespaceDecl.endXS_XML__LibXML__Reader_isNamespaceDecl.annobin_XS_XML__LibXML__Reader_isEmptyElement.start.annobin_XS_XML__LibXML__Reader_isEmptyElement.endXS_XML__LibXML__Reader_isEmptyElement.annobin_XS_XML__LibXML__Reader_isDefault.start.annobin_XS_XML__LibXML__Reader_isDefault.endXS_XML__LibXML__Reader_isDefault.annobin_XS_XML__LibXML__Reader_hasAttributes.start.annobin_XS_XML__LibXML__Reader_hasAttributes.endXS_XML__LibXML__Reader_hasAttributes.annobin_XS_XML__LibXML__Reader_value.start.annobin_XS_XML__LibXML__Reader_value.endXS_XML__LibXML__Reader_value.annobin_XS_XML__LibXML__Reader_hasValue.start.annobin_XS_XML__LibXML__Reader_hasValue.endXS_XML__LibXML__Reader_hasValue.annobin_XS_XML__LibXML__Reader_lineNumber.start.annobin_XS_XML__LibXML__Reader_lineNumber.endXS_XML__LibXML__Reader_lineNumber.annobin_XS_XML__LibXML__Reader_columnNumber.start.annobin_XS_XML__LibXML__Reader_columnNumber.endXS_XML__LibXML__Reader_columnNumber.annobin_XS_XML__LibXML__Reader_getAttributeNs.start.annobin_XS_XML__LibXML__Reader_getAttributeNs.endXS_XML__LibXML__Reader_getAttributeNs.annobin_XS_XML__LibXML__Reader_getAttributeNo.start.annobin_XS_XML__LibXML__Reader_getAttributeNo.endXS_XML__LibXML__Reader_getAttributeNo.annobin_XS_XML__LibXML__Reader_getAttribute.start.annobin_XS_XML__LibXML__Reader_getAttribute.endXS_XML__LibXML__Reader_getAttribute.annobin_XS_XML__LibXML__Reader_xmlVersion.start.annobin_XS_XML__LibXML__Reader_xmlVersion.endXS_XML__LibXML__Reader_xmlVersion.annobin_XS_XML__LibXML__Reader_xmlLang.start.annobin_XS_XML__LibXML__Reader_xmlLang.endXS_XML__LibXML__Reader_xmlLang.annobin_XS_XML__LibXML__Reader_prefix.start.annobin_XS_XML__LibXML__Reader_prefix.endXS_XML__LibXML__Reader_prefix.annobin_XS_XML__LibXML__Reader_encoding.start.annobin_XS_XML__LibXML__Reader_encoding.endXS_XML__LibXML__Reader_encoding.annobin_XS_XML__LibXML__Reader_byteConsumed.start.annobin_XS_XML__LibXML__Reader_byteConsumed.endXS_XML__LibXML__Reader_byteConsumed.annobin_XS_XML__LibXML__Reader_baseURI.start.annobin_XS_XML__LibXML__Reader_baseURI.endXS_XML__LibXML__Reader_baseURI.annobin_XS_XML__LibXML__Reader_attributeCount.start.annobin_XS_XML__LibXML__Reader_attributeCount.endXS_XML__LibXML__Reader_attributeCount.annobin_XS_XML__LibXML__Reader__newForDOM.start.annobin_XS_XML__LibXML__Reader__newForDOM.endXS_XML__LibXML__Reader__newForDOM.annobin_XS_XML__LibXML__Reader__newForFd.start.annobin_XS_XML__LibXML__Reader__newForFd.endXS_XML__LibXML__Reader__newForFd.annobin_XS_XML__LibXML__Reader__newForString.start.annobin_XS_XML__LibXML__Reader__newForString.endXS_XML__LibXML__Reader__newForString.annobin_XS_XML__LibXML__Reader__newForFile.start.annobin_XS_XML__LibXML__Reader__newForFile.endXS_XML__LibXML__Reader__newForFile.annobin_XS_XML__LibXML__InputCallback_lib_init_callbacks.start.annobin_XS_XML__LibXML__InputCallback_lib_init_callbacks.endXS_XML__LibXML__InputCallback_lib_init_callbacks.annobin_XS_XML__LibXML__InputCallback_lib_cleanup_callbacks.start.annobin_XS_XML__LibXML__InputCallback_lib_cleanup_callbacks.endXS_XML__LibXML__InputCallback_lib_cleanup_callbacks.annobin_XS_XML__LibXML__Element__getNamespaceDeclURI.start.annobin_XS_XML__LibXML__Element__getNamespaceDeclURI.endXS_XML__LibXML__Element__getNamespaceDeclURI.annobin_XS_XML__LibXML__Node_getNamespace.start.annobin_XS_XML__LibXML__Node_getNamespace.endXS_XML__LibXML__Node_getNamespace.annobin_XS_XML__LibXML__Node_getNamespaces.start.annobin_XS_XML__LibXML__Node_getNamespaces.endXS_XML__LibXML__Node_getNamespaces.annobin_XS_XML__LibXML__Document_documentElement.start.annobin_XS_XML__LibXML__Document_documentElement.endXS_XML__LibXML__Document_documentElement.annobin_XS_XML__LibXML__XPathContext_getVarLookupFunc.start.annobin_XS_XML__LibXML__XPathContext_getVarLookupFunc.endXS_XML__LibXML__XPathContext_getVarLookupFunc.annobin_XS_XML__LibXML__XPathContext_getVarLookupData.start.annobin_XS_XML__LibXML__XPathContext_getVarLookupData.endXS_XML__LibXML__XPathContext_getVarLookupData.annobin_XS_XML__LibXML__XPathContext_getContextNode.start.annobin_XS_XML__LibXML__XPathContext_getContextNode.endXS_XML__LibXML__XPathContext_getContextNode.annobin_LibXML_save_context.start.annobin_LibXML_save_context.endLibXML_save_context.annobin_XS_XML__LibXML__XPathContext_new.start.annobin_XS_XML__LibXML__XPathContext_new.endXS_XML__LibXML__XPathContext_new.annobin_XS_XML__LibXML__Schema_DESTROY.start.annobin_XS_XML__LibXML__Schema_DESTROY.endXS_XML__LibXML__Schema_DESTROY.annobin_XS_XML__LibXML__RelaxNG_DESTROY.start.annobin_XS_XML__LibXML__RelaxNG_DESTROY.endXS_XML__LibXML__RelaxNG_DESTROY.annobin_XS_XML__LibXML__Namespace__isEqual.start.annobin_XS_XML__LibXML__Namespace__isEqual.endXS_XML__LibXML__Namespace__isEqual.annobin_XS_XML__LibXML__Namespace_unique_key.start.annobin_XS_XML__LibXML__Namespace_unique_key.endXS_XML__LibXML__Namespace_unique_key.annobin_XS_XML__LibXML__Namespace_DESTROY.start.annobin_XS_XML__LibXML__Namespace_DESTROY.endXS_XML__LibXML__Namespace_DESTROY.annobin_XS_XML__LibXML__Namespace_new.start.annobin_XS_XML__LibXML__Namespace_new.endXS_XML__LibXML__Namespace_new.annobin_XS_XML__LibXML__Attr_isId.start.annobin_XS_XML__LibXML__Attr_isId.endXS_XML__LibXML__Attr_isId.annobin_XS_XML__LibXML__Element_setNamespaceDeclPrefix.start.annobin_XS_XML__LibXML__Element_setNamespaceDeclPrefix.endXS_XML__LibXML__Element_setNamespaceDeclPrefix.annobin_XS_XML__LibXML__Element__setNamespace.start.annobin_XS_XML__LibXML__Element__setNamespace.endXS_XML__LibXML__Element__setNamespace.annobin_XS_XML__LibXML__Node_lookupNamespaceURI.start.annobin_XS_XML__LibXML__Node_lookupNamespaceURI.endXS_XML__LibXML__Node_lookupNamespaceURI.annobin_XS_XML__LibXML__Attr__setNamespace.start.annobin_XS_XML__LibXML__Attr__setNamespace.endXS_XML__LibXML__Attr__setNamespace.annobin_XS_XML__LibXML__Node_lookupNamespacePrefix.start.annobin_XS_XML__LibXML__Node_lookupNamespacePrefix.endXS_XML__LibXML__Node_lookupNamespacePrefix.annobin_XS_XML__LibXML__Attr_toString.start.annobin_XS_XML__LibXML__Attr_toString.endXS_XML__LibXML__Attr_toString.annobin_XS_XML__LibXML__Attr_serializeContent.start.annobin_XS_XML__LibXML__Attr_serializeContent.endXS_XML__LibXML__Attr_serializeContent.annobin_XS_XML__LibXML__Attr_new.start.annobin_XS_XML__LibXML__Attr_new.endXS_XML__LibXML__Attr_new.annobin_XS_XML__LibXML__DocumentFragment_new.start.annobin_XS_XML__LibXML__DocumentFragment_new.endXS_XML__LibXML__DocumentFragment_new.annobin_XS_XML__LibXML__Document_createDocumentFragment.start.annobin_XS_XML__LibXML__Document_createDocumentFragment.endXS_XML__LibXML__Document_createDocumentFragment.annobin_XS_XML__LibXML__CDATASection_new.start.annobin_XS_XML__LibXML__CDATASection_new.endXS_XML__LibXML__CDATASection_new.annobin_XS_XML__LibXML__Document_createCDATASection.start.annobin_XS_XML__LibXML__Document_createCDATASection.endXS_XML__LibXML__Document_createCDATASection.annobin_XS_XML__LibXML__Comment_new.start.annobin_XS_XML__LibXML__Comment_new.endXS_XML__LibXML__Comment_new.annobin_XS_XML__LibXML__Node_nodeValue.start.annobin_XS_XML__LibXML__Node_nodeValue.endXS_XML__LibXML__Node_nodeValue.annobin_XS_XML__LibXML__Text_substringData.start.annobin_XS_XML__LibXML__Text_substringData.endXS_XML__LibXML__Text_substringData.annobin_XS_XML__LibXML__Text_replaceData.start.annobin_XS_XML__LibXML__Text_replaceData.endXS_XML__LibXML__Text_replaceData.annobin_XS_XML__LibXML__Text_deleteData.start.annobin_XS_XML__LibXML__Text_deleteData.endXS_XML__LibXML__Text_deleteData.annobin_XS_XML__LibXML__Text_insertData.start.annobin_XS_XML__LibXML__Text_insertData.endXS_XML__LibXML__Text_insertData.annobin_XS_XML__LibXML__Text_setData.start.annobin_XS_XML__LibXML__Text_setData.endXS_XML__LibXML__Text_setData.annobin_XS_XML__LibXML__Text_appendData.start.annobin_XS_XML__LibXML__Text_appendData.endXS_XML__LibXML__Text_appendData.annobin_XS_XML__LibXML__Text_new.start.annobin_XS_XML__LibXML__Text_new.endXS_XML__LibXML__Text_new.annobin_XS_XML__LibXML__Element_addNewChild.start.annobin_XS_XML__LibXML__Element_addNewChild.endXS_XML__LibXML__Element_addNewChild.annobin_XS_XML__LibXML__Document_createRawElement.start.annobin_XS_XML__LibXML__Document_createRawElement.endXS_XML__LibXML__Document_createRawElement.annobin_XS_XML__LibXML__Element_appendTextChild.start.annobin_XS_XML__LibXML__Element_appendTextChild.endXS_XML__LibXML__Element_appendTextChild.annobin_XS_XML__LibXML__Element_appendText.start.annobin_XS_XML__LibXML__Element_appendText.endXS_XML__LibXML__Element_appendText.annobin_XS_XML__LibXML__Element_removeAttributeNode.start.annobin_XS_XML__LibXML__Element_removeAttributeNode.endXS_XML__LibXML__Element_removeAttributeNode.annobin_XS_XML__LibXML__Node_addChild.start.annobin_XS_XML__LibXML__Node_addChild.endXS_XML__LibXML__Node_addChild.annobin_XS_XML__LibXML__Document_adoptNode.start.annobin_XS_XML__LibXML__Document_adoptNode.endXS_XML__LibXML__Document_adoptNode.annobin_XS_XML__LibXML__Document_importNode.start.annobin_XS_XML__LibXML__Document_importNode.endXS_XML__LibXML__Document_importNode.annobin_XS_XML__LibXML__Document_setExternalSubset.start.annobin_XS_XML__LibXML__Document_setExternalSubset.endXS_XML__LibXML__Document_setExternalSubset.annobin_XS_XML__LibXML__Element_getAttributeNodeNS.start.annobin_XS_XML__LibXML__Element_getAttributeNodeNS.endXS_XML__LibXML__Element_getAttributeNodeNS.annobin_XS_XML__LibXML__Element_hasAttributeNS.start.annobin_XS_XML__LibXML__Element_hasAttributeNS.endXS_XML__LibXML__Element_hasAttributeNS.annobin_XS_XML__LibXML__Element_setAttributeNodeNS.start.annobin_XS_XML__LibXML__Element_setAttributeNodeNS.endXS_XML__LibXML__Element_setAttributeNodeNS.annobin_XS_XML__LibXML__Element_removeAttributeNS.start.annobin_XS_XML__LibXML__Element_removeAttributeNS.endXS_XML__LibXML__Element_removeAttributeNS.annobin_XS_XML__LibXML__Element__getAttributeNS.start.annobin_XS_XML__LibXML__Element__getAttributeNS.endXS_XML__LibXML__Element__getAttributeNS.annobin_XS_XML__LibXML__Element_setAttributeNode.start.annobin_XS_XML__LibXML__Element_setAttributeNode.endXS_XML__LibXML__Element_setAttributeNode.annobin_XS_XML__LibXML__Element_getAttributeNode.start.annobin_XS_XML__LibXML__Element_getAttributeNode.endXS_XML__LibXML__Element_getAttributeNode.annobin_XS_XML__LibXML__Element_removeAttribute.start.annobin_XS_XML__LibXML__Element_removeAttribute.endXS_XML__LibXML__Element_removeAttribute.annobin_XS_XML__LibXML__Element_hasAttribute.start.annobin_XS_XML__LibXML__Element_hasAttribute.endXS_XML__LibXML__Element_hasAttribute.annobin_XS_XML__LibXML__Element__getAttribute.start.annobin_XS_XML__LibXML__Element__getAttribute.endXS_XML__LibXML__Element__getAttribute.annobin_XS_XML__LibXML__Element_setNamespaceDeclURI.start.annobin_XS_XML__LibXML__Element_setNamespaceDeclURI.endXS_XML__LibXML__Element_setNamespaceDeclURI.annobin_XS_XML__LibXML__Element_new.start.annobin_XS_XML__LibXML__Element_new.endXS_XML__LibXML__Element_new.annobin_XS_XML__LibXML__Node_line_number.start.annobin_XS_XML__LibXML__Node_line_number.endXS_XML__LibXML__Node_line_number.annobin_XS_XML__LibXML__Node_to_number.start.annobin_XS_XML__LibXML__Node_to_number.endXS_XML__LibXML__Node_to_number.annobin_XS_XML__LibXML__Node_string_value.start.annobin_XS_XML__LibXML__Node_string_value.endXS_XML__LibXML__Node_string_value.annobin_XS_XML__LibXML_INIT_THREAD_SUPPORT.start.annobin_XS_XML__LibXML_INIT_THREAD_SUPPORT.endXS_XML__LibXML_INIT_THREAD_SUPPORT.annobin_XS_XML__LibXML__Node_toString.start.annobin_XS_XML__LibXML__Node_toString.endXS_XML__LibXML__Node_toString.annobin_XS_XML__LibXML__Node_setBaseURI.start.annobin_XS_XML__LibXML__Node_setBaseURI.endXS_XML__LibXML__Node_setBaseURI.annobin_XS_XML__LibXML__Node_baseURI.start.annobin_XS_XML__LibXML__Node_baseURI.endXS_XML__LibXML__Node_baseURI.annobin_XS_XML__LibXML__Node_removeChildNodes.start.annobin_XS_XML__LibXML__Node_removeChildNodes.endXS_XML__LibXML__Node_removeChildNodes.annobin_XS_XML__LibXML__Node_normalize.start.annobin_XS_XML__LibXML__Node_normalize.endXS_XML__LibXML__Node_normalize.annobin_XS_XML__LibXML__Node__attributes.start.annobin_XS_XML__LibXML__Node__attributes.endXS_XML__LibXML__Node__attributes.annobin_XS_XML__LibXML__Node__getChildrenByTagNameNS.start.annobin_XS_XML__LibXML__Node__getChildrenByTagNameNS.endXS_XML__LibXML__Node__getChildrenByTagNameNS.annobin_XS_XML__LibXML__Node_firstNonBlankChild.start.annobin_XS_XML__LibXML__Node_firstNonBlankChild.endXS_XML__LibXML__Node_firstNonBlankChild.annobin_XS_XML__LibXML__Node__childNodes.start.annobin_XS_XML__LibXML__Node__childNodes.endXS_XML__LibXML__Node__childNodes.annobin_XS_XML__LibXML__Node_previousNonBlankSibling.start.annobin_XS_XML__LibXML__Node_previousNonBlankSibling.endXS_XML__LibXML__Node_previousNonBlankSibling.annobin_XS_XML__LibXML__Node_nextNonBlankSibling.start.annobin_XS_XML__LibXML__Node_nextNonBlankSibling.endXS_XML__LibXML__Node_nextNonBlankSibling.annobin_XS_XML__LibXML__Node_setRawName.start.annobin_XS_XML__LibXML__Node_setRawName.endXS_XML__LibXML__Node_setRawName.annobin_XS_XML__LibXML__Node_nodeName.start.annobin_XS_XML__LibXML__Node_nodeName.endXS_XML__LibXML__Node_nodeName.annobin_XS_XML__LibXML__Node_DESTROY.start.annobin_XS_XML__LibXML__Node_DESTROY.endXS_XML__LibXML__Node_DESTROY.annobin_XS_XML__LibXML__Document_indexElements.start.annobin_XS_XML__LibXML__Document_indexElements.endXS_XML__LibXML__Document_indexElements.annobin_XS_XML__LibXML__Document_getElementById.start.annobin_XS_XML__LibXML__Document_getElementById.endXS_XML__LibXML__Document_getElementById.annobin_XS_XML__LibXML__Document_cloneNode.start.annobin_XS_XML__LibXML__Document_cloneNode.endXS_XML__LibXML__Document_cloneNode.annobin_XS_XML__LibXML__Document_setCompression.start.annobin_XS_XML__LibXML__Document_setCompression.endXS_XML__LibXML__Document_setCompression.annobin_XS_XML__LibXML__Document_compression.start.annobin_XS_XML__LibXML__Document_compression.endXS_XML__LibXML__Document_compression.annobin_XS_XML__LibXML__Document_removeInternalSubset.start.annobin_XS_XML__LibXML__Document_removeInternalSubset.endXS_XML__LibXML__Document_removeInternalSubset.annobin_XS_XML__LibXML__Document_setInternalSubset.start.annobin_XS_XML__LibXML__Document_setInternalSubset.endXS_XML__LibXML__Document_setInternalSubset.annobin_XS_XML__LibXML__Document__setDocumentElement.start.annobin_XS_XML__LibXML__Document__setDocumentElement.endXS_XML__LibXML__Document__setDocumentElement.annobin_XS_XML__LibXML__Document_createProcessingInstruction.start.annobin_XS_XML__LibXML__Document_createProcessingInstruction.endXS_XML__LibXML__Document_createProcessingInstruction.annobin_XS_XML__LibXML__Document_createEntityReference.start.annobin_XS_XML__LibXML__Document_createEntityReference.endXS_XML__LibXML__Document_createEntityReference.annobin_XS_XML__LibXML__Document_createComment.start.annobin_XS_XML__LibXML__Document_createComment.endXS_XML__LibXML__Document_createComment.annobin_XS_XML__LibXML__Document_createTextNode.start.annobin_XS_XML__LibXML__Document_createTextNode.endXS_XML__LibXML__Document_createTextNode.annobin_XS_XML__LibXML__Document_createDTD.start.annobin_XS_XML__LibXML__Document_createDTD.endXS_XML__LibXML__Document_createDTD.annobin_XS_XML__LibXML__Document_createExternalSubset.start.annobin_XS_XML__LibXML__Document_createExternalSubset.endXS_XML__LibXML__Document_createExternalSubset.annobin_XS_XML__LibXML__Document_createInternalSubset.start.annobin_XS_XML__LibXML__Document_createInternalSubset.endXS_XML__LibXML__Document_createInternalSubset.annobin_XS_XML__LibXML__Document_createDocument.start.annobin_XS_XML__LibXML__Document_createDocument.endXS_XML__LibXML__Document_createDocument.annobin_XS_XML__LibXML__Document__toString.start.annobin_XS_XML__LibXML__Document__toString.endXS_XML__LibXML__Document__toString.annobin_XS_XML__LibXML__ParserContext_DESTROY.start.annobin_XS_XML__LibXML__ParserContext_DESTROY.endXS_XML__LibXML__ParserContext_DESTROY.annobin_XS_XML__LibXML__HashTable_DESTROY.start.annobin_XS_XML__LibXML__HashTable_DESTROY.endXS_XML__LibXML__HashTable_DESTROY.annobin_XS_XML__LibXML__HashTable_new.start.annobin_XS_XML__LibXML__HashTable_new.endXS_XML__LibXML__HashTable_new.annobin_XS_XML__LibXML_load_catalog.start.annobin_XS_XML__LibXML_load_catalog.endXS_XML__LibXML_load_catalog.annobin_LibXML_NodeToSv.start.annobin_LibXML_NodeToSv.endLibXML_NodeToSv.annobin_XS_XML__LibXML_END.start.annobin_XS_XML__LibXML_END.endXS_XML__LibXML_END.annobin_XS_XML__LibXML_LIBXML_RUNTIME_VERSION.start.annobin_XS_XML__LibXML_LIBXML_RUNTIME_VERSION.endXS_XML__LibXML_LIBXML_RUNTIME_VERSION.annobin_XS_XML__LibXML__dump_registry.start.annobin_XS_XML__LibXML__dump_registry.endXS_XML__LibXML__dump_registry.annobin_XS_XML__LibXML__leaked_nodes.start.annobin_XS_XML__LibXML__leaked_nodes.endXS_XML__LibXML__leaked_nodes.annobin_XS_XML__LibXML__CLONE.start.annobin_XS_XML__LibXML__CLONE.endXS_XML__LibXML__CLONE.annobin_LibXML_report_error_ctx.start.annobin_LibXML_report_error_ctx.endLibXML_report_error_ctx.annobin_XS_XML__LibXML__Common_decodeFromUTF8.start.annobin_XS_XML__LibXML__Common_decodeFromUTF8.endXS_XML__LibXML__Common_decodeFromUTF8.annobin_XS_XML__LibXML__Common_encodeToUTF8.start.annobin_XS_XML__LibXML__Common_encodeToUTF8.endXS_XML__LibXML__Common_encodeToUTF8.annobin_XS_XML__LibXML__XPathExpression_new.start.annobin_XS_XML__LibXML__XPathExpression_new.endXS_XML__LibXML__XPathExpression_new.annobin_XS_XML__LibXML__RegExp__compile.start.annobin_XS_XML__LibXML__RegExp__compile.endXS_XML__LibXML__RegExp__compile.annobin_XS_XML__LibXML__Reader_finish.start.annobin_XS_XML__LibXML__Reader_finish.endXS_XML__LibXML__Reader_finish.annobin_XS_XML__LibXML__Reader_read.start.annobin_XS_XML__LibXML__Reader_read.endXS_XML__LibXML__Reader_read.annobin_XS_XML__LibXML__Reader_preserveNode.start.annobin_XS_XML__LibXML__Reader_preserveNode.endXS_XML__LibXML__Reader_preserveNode.annobin_XS_XML__LibXML__Reader_nextPatternMatch.start.annobin_XS_XML__LibXML__Reader_nextPatternMatch.endXS_XML__LibXML__Reader_nextPatternMatch.annobin_XS_XML__LibXML__Reader_copyCurrentNode.start.annobin_XS_XML__LibXML__Reader_copyCurrentNode.endXS_XML__LibXML__Reader_copyCurrentNode.annobin_XS_XML__LibXML__Reader_readOuterXml.start.annobin_XS_XML__LibXML__Reader_readOuterXml.endXS_XML__LibXML__Reader_readOuterXml.annobin_XS_XML__LibXML__Reader_readInnerXml.start.annobin_XS_XML__LibXML__Reader_readInnerXml.endXS_XML__LibXML__Reader_readInnerXml.annobin_XS_XML__LibXML__Reader_readAttributeValue.start.annobin_XS_XML__LibXML__Reader_readAttributeValue.endXS_XML__LibXML__Reader_readAttributeValue.annobin_XS_XML__LibXML__Reader_skipSiblings.start.annobin_XS_XML__LibXML__Reader_skipSiblings.endXS_XML__LibXML__Reader_skipSiblings.annobin_XS_XML__LibXML__Reader_next.start.annobin_XS_XML__LibXML__Reader_next.endXS_XML__LibXML__Reader_next.annobin_XS_XML__LibXML__Reader_nextElement.start.annobin_XS_XML__LibXML__Reader_nextElement.endXS_XML__LibXML__Reader_nextElement.annobin_XS_XML__LibXML__Reader_nextSiblingElement.start.annobin_XS_XML__LibXML__Reader_nextSiblingElement.endXS_XML__LibXML__Reader_nextSiblingElement.annobin_XS_XML__LibXML__Reader_nextSibling.start.annobin_XS_XML__LibXML__Reader_nextSibling.endXS_XML__LibXML__Reader_nextSibling.annobin_XS_XML__LibXML__Reader_getAttributeHash.start.annobin_XS_XML__LibXML__Reader_getAttributeHash.endXS_XML__LibXML__Reader_getAttributeHash.annobin_XS_XML__LibXML__Schema_validate.start.annobin_XS_XML__LibXML__Schema_validate.endXS_XML__LibXML__Schema_validate.annobin_XS_XML__LibXML__Schema_parse_buffer.start.annobin_XS_XML__LibXML__Schema_parse_buffer.endXS_XML__LibXML__Schema_parse_buffer.annobin_XS_XML__LibXML__Schema_parse_location.start.annobin_XS_XML__LibXML__Schema_parse_location.endXS_XML__LibXML__Schema_parse_location.annobin_XS_XML__LibXML__RelaxNG_validate.start.annobin_XS_XML__LibXML__RelaxNG_validate.endXS_XML__LibXML__RelaxNG_validate.annobin_XS_XML__LibXML__RelaxNG_parse_document.start.annobin_XS_XML__LibXML__RelaxNG_parse_document.endXS_XML__LibXML__RelaxNG_parse_document.annobin_XS_XML__LibXML__RelaxNG_parse_buffer.start.annobin_XS_XML__LibXML__RelaxNG_parse_buffer.endXS_XML__LibXML__RelaxNG_parse_buffer.annobin_XS_XML__LibXML__RelaxNG_parse_location.start.annobin_XS_XML__LibXML__RelaxNG_parse_location.endXS_XML__LibXML__RelaxNG_parse_location.annobin_XS_XML__LibXML__Dtd_parse_string.start.annobin_XS_XML__LibXML__Dtd_parse_string.endXS_XML__LibXML__Dtd_parse_string.annobin_XS_XML__LibXML__Dtd_new.start.annobin_XS_XML__LibXML__Dtd_new.endXS_XML__LibXML__Dtd_new.annobin_XS_XML__LibXML__Node__findnodes.start.annobin_XS_XML__LibXML__Node__findnodes.endXS_XML__LibXML__Node__findnodes.annobin_XS_XML__LibXML__Node__find.start.annobin_XS_XML__LibXML__Node__find.endXS_XML__LibXML__Node__find.annobin_XS_XML__LibXML__Document_toStringHTML.start.annobin_XS_XML__LibXML__Document_toStringHTML.endXS_XML__LibXML__Document_toStringHTML.annobin_XS_XML__LibXML__Document_toFile.start.annobin_XS_XML__LibXML__Document_toFile.endXS_XML__LibXML__Document_toFile.annobin_XS_XML__LibXML__Document_toFH.start.annobin_XS_XML__LibXML__Document_toFH.endXS_XML__LibXML__Document_toFH.annobin_LibXML_output_write_handler.start.annobin_LibXML_output_write_handler.end.annobin_LibXML_configure_namespaces.start.annobin_LibXML_configure_namespaces.endLibXML_configure_namespaces.annobin_LibXML_configure_xpathcontext.start.annobin_LibXML_configure_xpathcontext.endLibXML_configure_xpathcontext.annobin_XS_XML__LibXML__XPathContext__find.start.annobin_XS_XML__LibXML__XPathContext__find.endXS_XML__LibXML__XPathContext__find.annobin_XS_XML__LibXML__XPathContext__findnodes.start.annobin_XS_XML__LibXML__XPathContext__findnodes.endXS_XML__LibXML__XPathContext__findnodes.annobin_XS_XML__LibXML__XPathContext_lookupNs.start.annobin_XS_XML__LibXML__XPathContext_lookupNs.endXS_XML__LibXML__XPathContext_lookupNs.annobin_XS_XML__LibXML__XPathContext_registerNs.start.annobin_XS_XML__LibXML__XPathContext_registerNs.endXS_XML__LibXML__XPathContext_registerNs.annobin_XS_XML__LibXML__Node__toStringC14N.start.annobin_XS_XML__LibXML__Node__toStringC14N.endXS_XML__LibXML__Node__toStringC14N.annobin_LibXML_set_int_subset.isra.4.start.annobin_LibXML_set_int_subset.isra.4.endLibXML_set_int_subset.isra.4.annobin_XS_XML__LibXML__Node_appendChild.start.annobin_XS_XML__LibXML__Node_appendChild.endXS_XML__LibXML__Node_appendChild.annobin_XS_XML__LibXML__Node_insertAfter.start.annobin_XS_XML__LibXML__Node_insertAfter.endXS_XML__LibXML__Node_insertAfter.annobin_XS_XML__LibXML__Node_insertBefore.start.annobin_XS_XML__LibXML__Node_insertBefore.endXS_XML__LibXML__Node_insertBefore.annobin_LibXML_reparent_removed_node.part.5.start.annobin_LibXML_reparent_removed_node.part.5.endLibXML_reparent_removed_node.part.5.annobin_XS_XML__LibXML__Node_unbindNode.start.annobin_XS_XML__LibXML__Node_unbindNode.endXS_XML__LibXML__Node_unbindNode.annobin_XS_XML__LibXML__Node_addSibling.start.annobin_XS_XML__LibXML__Node_addSibling.endXS_XML__LibXML__Node_addSibling.annobin_XS_XML__LibXML__Node_removeChild.start.annobin_XS_XML__LibXML__Node_removeChild.endXS_XML__LibXML__Node_removeChild.annobin_XS_XML__LibXML__Node_replaceNode.start.annobin_XS_XML__LibXML__Node_replaceNode.endXS_XML__LibXML__Node_replaceNode.annobin_XS_XML__LibXML__Node_replaceChild.start.annobin_XS_XML__LibXML__Node_replaceChild.endXS_XML__LibXML__Node_replaceChild.annobin_XS_XML__LibXML__Document_validate.start.annobin_XS_XML__LibXML__Document_validate.endXS_XML__LibXML__Document_validate.annobin_XS_XML__LibXML__Document_is_valid.start.annobin_XS_XML__LibXML__Document_is_valid.endXS_XML__LibXML__Document_is_valid.annobin_XS_XML__LibXML__Pattern__compilePattern.start.annobin_XS_XML__LibXML__Pattern__compilePattern.endXS_XML__LibXML__Pattern__compilePattern.annobin_LibXML_close_perl.start.annobin_LibXML_close_perl.end.annobin_LibXML_XPathContext_pool.isra.2.start.annobin_LibXML_XPathContext_pool.isra.2.endLibXML_XPathContext_pool.isra.2.annobin_LibXML_perldata_to_LibXMLdata.start.annobin_LibXML_perldata_to_LibXMLdata.endLibXML_perldata_to_LibXMLdata.annobin_XS_XML__LibXML__XPathContext__free_node_pool.start.annobin_XS_XML__LibXML__XPathContext__free_node_pool.endXS_XML__LibXML__XPathContext__free_node_pool.annobin_LibXML_restore_context.start.annobin_LibXML_restore_context.endLibXML_restore_context.annobin_LibXML_generic_variable_lookup.start.annobin_LibXML_generic_variable_lookup.endLibXML_generic_variable_lookup.annobin_XS_XML__LibXML__XPathContext_setContextNode.start.annobin_XS_XML__LibXML__XPathContext_setContextNode.endXS_XML__LibXML__XPathContext_setContextNode.annobin_XS_XML__LibXML__XPathContext_registerFunctionNS.start.annobin_XS_XML__LibXML__XPathContext_registerFunctionNS.endXS_XML__LibXML__XPathContext_registerFunctionNSLibXML_generic_extension_function.annobin_XS_XML__LibXML__XPathContext_registerVarLookupFunc.start.annobin_XS_XML__LibXML__XPathContext_registerVarLookupFunc.endXS_XML__LibXML__XPathContext_registerVarLookupFunc.annobin_LibXML_input_close.start.annobin_LibXML_input_close.end.annobin_XS_XML__LibXML__externalEntityLoader.start.annobin_XS_XML__LibXML__externalEntityLoader.endXS_XML__LibXML__externalEntityLoaderLibXML_old_ext_ent_loader_global.annobin_LibXML_generic_extension_function.start.annobin_LibXML_generic_extension_function.end.annobin_XS_XML__LibXML__Reader__newForIO.start.annobin_XS_XML__LibXML__Reader__newForIO.endXS_XML__LibXML__Reader__newForIO.annobin_XS_XML__LibXML__XPathContext_DESTROY.start.annobin_XS_XML__LibXML__XPathContext_DESTROY.endXS_XML__LibXML__XPathContext_DESTROY.annobin_LibXML_struct_error_callback.start.annobin_LibXML_struct_error_callback.end.annobin_LibXML_struct_error_handler.start.annobin_LibXML_struct_error_handler.end.annobin_LibXML_flat_handler.start.annobin_LibXML_flat_handler.end.annobin_LibXML_get_reader_error_data.start.annobin_LibXML_get_reader_error_data.end.annobin_LibXML_init_parser.start.annobin_LibXML_init_parser.endLibXML_old_ext_ent_loader.annobin_LibXML_cleanup_parser.start.annobin_LibXML_cleanup_parser.end.annobin_XS_XML__LibXML__end_sax_push.start.annobin_XS_XML__LibXML__end_sax_push.endXS_XML__LibXML__end_sax_push.annobin_XS_XML__LibXML__end_push.start.annobin_XS_XML__LibXML__end_push.endXS_XML__LibXML__end_push.annobin_XS_XML__LibXML__push.start.annobin_XS_XML__LibXML__push.endXS_XML__LibXML__push.annobin_XS_XML__LibXML__start_push.start.annobin_XS_XML__LibXML__start_push.endXS_XML__LibXML__start_push.annobin_XS_XML__LibXML__processXIncludes.start.annobin_XS_XML__LibXML__processXIncludes.endXS_XML__LibXML__processXIncludes.annobin_XS_XML__LibXML__parse_sax_xml_chunk.start.annobin_XS_XML__LibXML__parse_sax_xml_chunk.endXS_XML__LibXML__parse_sax_xml_chunk.annobin_XS_XML__LibXML__parse_xml_chunk.start.annobin_XS_XML__LibXML__parse_xml_chunk.endXS_XML__LibXML__parse_xml_chunk.annobin_XS_XML__LibXML__parse_html_fh.start.annobin_XS_XML__LibXML__parse_html_fh.endXS_XML__LibXML__parse_html_fh.annobin_XS_XML__LibXML__parse_html_file.start.annobin_XS_XML__LibXML__parse_html_file.endXS_XML__LibXML__parse_html_file.annobin_XS_XML__LibXML__parse_html_string.start.annobin_XS_XML__LibXML__parse_html_string.endXS_XML__LibXML__parse_html_string.annobin_XS_XML__LibXML__parse_sax_file.start.annobin_XS_XML__LibXML__parse_sax_file.endXS_XML__LibXML__parse_sax_file.annobin_XS_XML__LibXML__parse_file.start.annobin_XS_XML__LibXML__parse_file.endXS_XML__LibXML__parse_file.annobin_XS_XML__LibXML__parse_sax_fh.start.annobin_XS_XML__LibXML__parse_sax_fh.endXS_XML__LibXML__parse_sax_fh.annobin_XS_XML__LibXML__parse_fh.start.annobin_XS_XML__LibXML__parse_fh.endXS_XML__LibXML__parse_fh.annobin_XS_XML__LibXML__parse_sax_string.start.annobin_XS_XML__LibXML__parse_sax_string.endXS_XML__LibXML__parse_sax_string.annobin_XS_XML__LibXML__parse_string.start.annobin_XS_XML__LibXML__parse_string.endXS_XML__LibXML__parse_string.annobin_LibXML_test_node_name.start.annobin_LibXML_test_node_name.end.annobin_XS_XML__LibXML__Element__setAttributeNS.start.annobin_XS_XML__LibXML__Element__setAttributeNS.endXS_XML__LibXML__Element__setAttributeNS.annobin_XS_XML__LibXML__Element__setAttribute.start.annobin_XS_XML__LibXML__Element__setAttribute.endXS_XML__LibXML__Element__setAttribute.annobin_XS_XML__LibXML__Node_setNodeName.start.annobin_XS_XML__LibXML__Node_setNodeName.endXS_XML__LibXML__Node_setNodeName.annobin_XS_XML__LibXML__Document_createAttributeNS.start.annobin_XS_XML__LibXML__Document_createAttributeNS.endXS_XML__LibXML__Document_createAttributeNS.annobin_XS_XML__LibXML__Document_createAttribute.start.annobin_XS_XML__LibXML__Document_createAttribute.endXS_XML__LibXML__Document_createAttribute.annobin_XS_XML__LibXML__Document_createRawElementNS.start.annobin_XS_XML__LibXML__Document_createRawElementNS.endXS_XML__LibXML__Document_createRawElementNS.annobin_XS_XML__LibXML__Document_createElementNS.start.annobin_XS_XML__LibXML__Document_createElementNS.endXS_XML__LibXML__Document_createElementNS.annobin_XS_XML__LibXML__Document_createElement.start.annobin_XS_XML__LibXML__Document_createElement.endXS_XML__LibXML__Document_createElement.annobin_boot_XML__LibXML.start.annobin_boot_XML__LibXML.end.annobin_dom.c.annobin_dom.c_end.annobin_dom.c.hot.annobin_dom.c_end.hot.annobin_dom.c.unlikely.annobin_dom.c_end.unlikely.annobin_dom.c.startup.annobin_dom.c_end.startup.annobin_dom.c.exit.annobin_dom.c_end.exit.annobin_domClearPSVIInList.start.annobin_domClearPSVIInList.end.annobin_domClearPSVI.start.annobin_domClearPSVI.end.annobin_domAddNsDef.start.annobin_domAddNsDef.end.annobin_domRemoveNsDef.start.annobin_domRemoveNsDef.end.annobin__domAddNsChain.start.annobin__domAddNsChain.end.annobin__domReconcileNsAttr.start.annobin__domReconcileNsAttr.end.annobin__domReconcileNs.start.annobin__domReconcileNs.end_domReconcileNs.localalias.9.annobin_domReconcileNs.start.annobin_domReconcileNs.end.annobin_domReadWellBalancedString.start.annobin_domReadWellBalancedString.end.annobin_domAddNodeToList.start.annobin_domAddNodeToList.end.annobin_domIsParent.start.annobin_domIsParent.end.annobin_domTestHierarchy.start.annobin_domTestHierarchy.end.annobin_domTestDocument.start.annobin_domTestDocument.end.annobin_domUnlinkNode.start.annobin_domUnlinkNode.end.annobin_domImportNode.start.annobin_domImportNode.end.annobin_domName.start.annobin_domName.end.annobin_domAppendChild.start.annobin_domAppendChild.end.annobin_domRemoveChild.start.annobin_domRemoveChild.end.annobin_domReplaceChild.start.annobin_domReplaceChild.end.annobin_domInsertBefore.start.annobin_domInsertBefore.end.annobin_domInsertAfter.start.annobin_domInsertAfter.end.annobin_domReplaceNode.start.annobin_domReplaceNode.end.annobin_domGetNodeValue.start.annobin_domGetNodeValue.end.annobin_domSetNodeValue.start.annobin_domSetNodeValue.end.annobin_domGetElementsByTagName.start.annobin_domGetElementsByTagName.end.annobin_domGetElementsByTagNameNS.start.annobin_domGetElementsByTagNameNS.end.annobin_domNewNs.start.annobin_domNewNs.end.annobin_domGetAttrNode.start.annobin_domGetAttrNode.end.annobin_domSetAttributeNode.start.annobin_domSetAttributeNode.end.annobin_domAttrSerializeContent.start.annobin_domAttrSerializeContent.end.annobin_domNodeNormalize.start.annobin_domNodeNormalize.end.annobin_domNodeNormalizeList.start.annobin_domNodeNormalizeList.end.annobin_domRemoveNsRefs.start.annobin_domRemoveNsRefs.endperl-libxml-mm.c.annobin_perl_libxml_mm.c.annobin_perl_libxml_mm.c_end.annobin_perl_libxml_mm.c.hot.annobin_perl_libxml_mm.c_end.hot.annobin_perl_libxml_mm.c.unlikely.annobin_perl_libxml_mm.c_end.unlikely.annobin_perl_libxml_mm.c.startup.annobin_perl_libxml_mm.c_end.startup.annobin_perl_libxml_mm.c.exit.annobin_perl_libxml_mm.c_end.exit.annobin_PmmRegistryHashDeallocator.start.annobin_PmmRegistryHashDeallocator.endPmmRegistryHashDeallocator.annobin_PmmRegistryHashCopier.start.annobin_PmmRegistryHashCopier.end.annobin_PmmNodeTypeName.start.annobin_PmmNodeTypeName.end.annobin_PmmRegistryDumpHashScanner.start.annobin_PmmRegistryDumpHashScanner.end.annobin_PmmFreeHashTable.start.annobin_PmmFreeHashTable.end.annobin_PmmDumpRegistry.start.annobin_PmmDumpRegistry.end.annobin_PmmProxyNodeRegistryPtr.start.annobin_PmmProxyNodeRegistryPtr.end.annobin_PmmRegistryName.start.annobin_PmmRegistryName.end.annobin_PmmNewLocalProxyNode.start.annobin_PmmNewLocalProxyNode.end.annobin_PmmRegisterProxyNode.start.annobin_PmmRegisterProxyNode.end.annobin_PmmUnregisterProxyNode.start.annobin_PmmUnregisterProxyNode.end.annobin_PmmRegistryLookup.start.annobin_PmmRegistryLookup.end.annobin_PmmRegistryREFCNT_inc.start.annobin_PmmRegistryREFCNT_inc.end.annobin_PmmRegistryREFCNT_dec.start.annobin_PmmRegistryREFCNT_dec.end.annobin_PmmCloneProxyNodes.start.annobin_PmmCloneProxyNodes.end.annobin_PmmProxyNodeRegistrySize.start.annobin_PmmProxyNodeRegistrySize.end.annobin_PmmNewNode.start.annobin_PmmNewNode.end.annobin_PmmNewFragment.start.annobin_PmmNewFragment.end.annobin_PmmFreeNode.start.annobin_PmmFreeNode.end.annobin_PmmREFCNT_dec.start.annobin_PmmREFCNT_dec.endPmmREFCNT_dec.localalias.7.annobin_PmmNodeToSv.start.annobin_PmmNodeToSv.end.annobin_PmmCloneNode.start.annobin_PmmCloneNode.end.annobin_PmmSvNodeExt.start.annobin_PmmSvNodeExt.end.annobin_PmmSvOwner.start.annobin_PmmSvOwner.end.annobin_PmmSetSvOwner.start.annobin_PmmSetSvOwner.end.annobin_PmmFixOwnerList.start.annobin_PmmFixOwnerList.end.annobin_PmmFixOwner.start.annobin_PmmFixOwner.end.annobin_PmmFixOwnerNode.start.annobin_PmmFixOwnerNode.end.annobin_PmmNewContext.start.annobin_PmmNewContext.end.annobin_PmmContextREFCNT_dec.start.annobin_PmmContextREFCNT_dec.end.annobin_PmmContextSv.start.annobin_PmmContextSv.end.annobin_PmmSvContext.start.annobin_PmmSvContext.end.annobin_PmmFastEncodeString.start.annobin_PmmFastEncodeString.end.annobin_PmmFastDecodeString.start.annobin_PmmFastDecodeString.end.annobin_PmmEncodeString.start.annobin_PmmEncodeString.end.annobin_C2Sv.start.annobin_C2Sv.end.annobin_Sv2C.start.annobin_Sv2C.end.annobin_nodeC2Sv.start.annobin_nodeC2Sv.end.annobin_nodeSv2C.start.annobin_nodeSv2C.end.annobin_PmmNodeToGdomeSv.start.annobin_PmmNodeToGdomeSv.endperl-libxml-sax.c.annobin_perl_libxml_sax.c.annobin_perl_libxml_sax.c_end.annobin_perl_libxml_sax.c.hot.annobin_perl_libxml_sax.c_end.hot.annobin_perl_libxml_sax.c.unlikely.annobin_perl_libxml_sax.c_end.unlikely.annobin_perl_libxml_sax.c.startup.annobin_perl_libxml_sax.c_end.startup.annobin_perl_libxml_sax.c.exit.annobin_perl_libxml_sax.c_end.exit.annobin_PmmSaxWarning.start.annobin_PmmSaxWarning.end.annobin_PmmSaxError.start.annobin_PmmSaxError.end.annobin_PmmSaxFatalError.start.annobin_PmmSaxFatalError.end.annobin__C2Sv.start.annobin__C2Sv.end.annobin__C2Sv_len.start.annobin__C2Sv_len.end.annobin_PmmSAXInitialize.start.annobin_PmmSAXInitialize.endPrefixHashNsURIHashLocalNameHashAttributesHashValueHashDataHashTargetHashVersionHashEncodingHashPublicIdHashSystemIdHash.annobin_CBufferChunkNew.start.annobin_CBufferChunkNew.end.annobin_CBufferNew.start.annobin_CBufferNew.end.annobin_CBufferPurge.start.annobin_CBufferPurge.end.annobin_CBufferFree.start.annobin_CBufferFree.end.annobin_CBufferLength.start.annobin_CBufferLength.end.annobin_CBufferAppend.start.annobin_CBufferAppend.end.annobin_CBufferCharacters.start.annobin_CBufferCharacters.end.annobin_PmmSAXCloseContext.start.annobin_PmmSAXCloseContext.end.annobin_PmmGetNsMapping.start.annobin_PmmGetNsMapping.end.annobin_PSaxStartPrefix.start.annobin_PSaxStartPrefix.end.annobin_PSaxEndPrefix.start.annobin_PSaxEndPrefix.end.annobin_PmmExtendNsStack.start.annobin_PmmExtendNsStack.end.annobin_PmmNarrowNsStack.start.annobin_PmmNarrowNsStack.end.annobin_PmmAddNamespace.start.annobin_PmmAddNamespace.end.annobin_PmmGenElementSV.start.annobin_PmmGenElementSV.end.annobin_PmmGenNsName.start.annobin_PmmGenNsName.end.annobin_PmmGenAttributeHashSV.start.annobin_PmmGenAttributeHashSV.end.annobin_PmmGenCharDataSV.start.annobin_PmmGenCharDataSV.end.annobin_PmmGenPISV.start.annobin_PmmGenPISV.end.annobin_PmmGenDTDSV.start.annobin_PmmGenDTDSV.end.annobin_PmmGenLocator.start.annobin_PmmGenLocator.end.annobin_PmmUpdateLocator.start.annobin_PmmUpdateLocator.end.annobin_PSaxStartDocument.start.annobin_PSaxStartDocument.end.annobin_PSaxExternalSubset.start.annobin_PSaxExternalSubset.end.annobin_PSaxCharactersDispatch.start.annobin_PSaxCharactersDispatch.end.annobin_PSaxCharacters.start.annobin_PSaxCharacters.end.annobin_PSaxCharactersFlush.start.annobin_PSaxCharactersFlush.end.annobin_PSaxSetDocumentLocator.start.annobin_PSaxSetDocumentLocator.end.annobin_PSaxEndDocument.start.annobin_PSaxEndDocument.end.annobin_PSaxStartElement.start.annobin_PSaxStartElement.end.annobin_PSaxEndElement.start.annobin_PSaxEndElement.end.annobin_PSaxComment.start.annobin_PSaxComment.end.annobin_PSaxCDATABlock.start.annobin_PSaxCDATABlock.end.annobin_PSaxProcessingInstruction.start.annobin_PSaxProcessingInstruction.end.annobin_PSaxGetHandler.start.annobin_PSaxGetHandler.end.annobin_PmmSAXInitContext.start.annobin_PmmSAXInitContext.end.annobin_xpath.c.annobin_xpath.c_end.annobin_xpath.c.hot.annobin_xpath.c_end.hot.annobin_xpath.c.unlikely.annobin_xpath.c_end.unlikely.annobin_xpath.c.startup.annobin_xpath.c_end.startup.annobin_xpath.c.exit.annobin_xpath.c_end.exit.annobin_perlDocumentFunction.start.annobin_perlDocumentFunction.end.annobin_domXPathCompFind.start.annobin_domXPathCompFind.end.annobin_domXPathFind.start.annobin_domXPathFind.end.annobin_domXPathSelect.start.annobin_domXPathSelect.end.annobin_domXPathCompSelect.start.annobin_domXPathCompSelect.end.annobin_domXPathCompFindCtxt.start.annobin_domXPathCompFindCtxt.end.annobin_domXPathFindCtxt.start.annobin_domXPathFindCtxt.end.annobin_domXPathSelectCtxt.start.annobin_domXPathSelectCtxt.endcrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.7303__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entry__FRAME_END____GNU_EH_FRAME_HDR_fini_GLOBAL_OFFSET_TABLE___TMC_END____dso_handle_DYNAMIC_initxmlXPathObjectCopy@@LIBXML2_2.4.30Perl_sv_setnv_mgxmlXPathRegisterFunc@@LIBXML2_2.4.30PmmSAXInitContextxmlNodeDump@@LIBXML2_2.4.30PmmRegistryREFCNT_decxmlTextReaderQuoteChar@@LIBXML2_2.4.30xmlStrEqual@@LIBXML2_2.4.30xmlSaveFile@@LIBXML2_2.4.30LibXML_flat_handlerpthread_getspecific@@GLIBC_2.2.5Perl_mg_getxmlHashCopy@@LIBXML2_2.4.30xmlTextReaderNext@@LIBXML2_2.5.7xmlTextReaderDepth@@LIBXML2_2.4.30xmlTextReaderMoveToAttributeNs@@LIBXML2_2.5.0PSaxEndDocumentxmlSchemaValidateDoc@@LIBXML2_2.5.8xmlGetProp@@LIBXML2_2.4.30CBufferPurgeLibXML_cleanup_parserxmlTextReaderMoveToAttributeNo@@LIBXML2_2.5.0PSaxCommentdomXPathSelectPerl_av_lenPerl_get_hvxmlUnlinkNode@@LIBXML2_2.4.30xmlNewIOInputStream@@LIBXML2_2.4.30__xmlIndentTreeOutputnodeSv2CxmlSaveFormatFileTo@@LIBXML2_2.4.30xmlReaderWalker@@LIBXML2_2.6.0Perl_get_svxmlSetGenericErrorFunc@@LIBXML2_2.4.30PL_thr_keyxmlStrcmp@@LIBXML2_2.4.30xmlTextReaderMoveToElement@@LIBXML2_2.5.0LibXML_error_handler_ctxxmlDocDumpMemory@@LIBXML2_2.4.30xmlIsID@@LIBXML2_2.4.30xmlGetNodePath@@LIBXML2_2.4.30xmlTextReaderSetParserProp@@LIBXML2_2.5.0Perl_newRV_noincxmlSplitQName2@@LIBXML2_2.4.30Perl_sv_2bool_flagsabort@@GLIBC_2.2.5xmlTextReaderGetAttributeNo@@LIBXML2_2.5.0nodeC2SvxmlUTF8Strsub@@LIBXML2_2.4.30PmmGenDTDSVxmlTextReaderLookupNamespace@@LIBXML2_2.5.0Perl_newSVpvf_nocontextxmlSchemaSetValidErrors@@LIBXML2_2.5.8xmlTextReaderConstXmlVersion@@LIBXML2_2.6.15xmlTextReaderConstLocalName@@LIBXML2_2.6.0xmlReaderForIO@@LIBXML2_2.6.0xmlInitParser@@LIBXML2_2.4.30xmlRegisterInputCallbacks@@LIBXML2_2.4.30domGetElementsByTagNameNSdomXPathCompFindCtxtxmlTextReaderReadState@@LIBXML2_2.5.0xmlSchemaFreeValidCtxt@@LIBXML2_2.5.8__gmon_start__xmlBufferCreateStatic@@LIBXML2_2.6.0PmmGenNsNamexmlFreeProp@@LIBXML2_2.4.30xmlCleanupInputCallbacks@@LIBXML2_2.4.30xmlTextReaderCurrentDoc@@LIBXML2_2.5.0CBufferChunkNewxmlParseFile@@LIBXML2_2.4.30LibXML_struct_error_handlerdomInsertBeforexmlTextReaderByteConsumed@@LIBXML2_2.6.18xmlRelaxNGFreeParserCtxt@@LIBXML2_2.5.2__assert_fail@@GLIBC_2.2.5LibXML_init_parserhtmlReadIO@@LIBXML2_2.6.0xmlTextReaderExpand@@LIBXML2_2.5.7xmlCharEncInFunc@@LIBXML2_2.4.30PmmNodeToGdomeSvxmlTextReaderConstEncoding@@LIBXML2_2.6.15xmlTextReaderConstNamespaceUri@@LIBXML2_2.6.0xmlNewReference@@LIBXML2_2.4.30PmmGenLocatorxmlCtxtUseOptions@@LIBXML2_2.6.0PSaxSetDocumentLocatorPmmNewLocalProxyNodexmlNewDocNode@@LIBXML2_2.4.30xmlCtxtGetLastError@@LIBXML2_2.6.0xmlXPathFreeCompExpr@@LIBXML2_2.4.30xmlRelaxNGNewDocParserCtxt@@LIBXML2_2.5.7xmlTextReaderConstXmlLang@@LIBXML2_2.6.0xmlValidateName@@LIBXML2_2.5.4xmlNodeSetBase@@LIBXML2_2.4.30xmlAddPrevSibling@@LIBXML2_2.4.30PmmFixOwnerNodedomRemoveNsDefLibXML_output_close_handlerxmlTextReaderSchemaValidate@@LIBXML2_2.6.20xmlRegFreeRegexp@@LIBXML2_2.4.30PmmSaxWarningxmlXPathNewBoolean@@LIBXML2_2.4.30xmlXPathNodeSetAdd@@LIBXML2_2.4.30xmlHashSize@@LIBXML2_2.4.30xmlGetIntSubset@@LIBXML2_2.4.30PmmContextSvxmlSchemaNewParserCtxt@@LIBXML2_2.5.8xmlC14NDocDumpMemory@@LIBXML2_2.4.30xmlTextReaderIsValid@@LIBXML2_2.5.7Perl_warn_nocontextPerl_sv_2mortalxmlTextReaderSetSchema@@LIBXML2_2.6.20PmmFixOwnerListdomReplaceChildPerl_sv_vsetpvfnxmlSchemaParse@@LIBXML2_2.5.8xmlHashFree@@LIBXML2_2.4.30xmlNewNode@@LIBXML2_2.4.30xmlHashScan@@LIBXML2_2.4.30xmlDocCopyNode@@LIBXML2_2.4.30PmmFixOwnerxmlNewChild@@LIBXML2_2.4.30Perl_sv_setpv__xmlSaveNoEmptyTagsxmlXPathNewFloat@@LIBXML2_2.4.30xmlTextReaderHasValue@@LIBXML2_2.4.30xmlCheckVersion@@LIBXML2_2.4.30xmlFindCharEncodingHandler@@LIBXML2_2.4.30xmlDocSetRootElement@@LIBXML2_2.4.30xmlFreeDoc@@LIBXML2_2.4.30PmmSetSvOwner_C2Sv_lenxmlNoNetExternalEntityLoader@@LIBXML2_2.4.30xmlHashCreate@@LIBXML2_2.4.30xmlTextReaderGetAttributeNs@@LIBXML2_2.5.0xmlParseCharEncoding@@LIBXML2_2.4.30Perl_free_tmpsxmlNewDtd@@LIBXML2_2.4.30xmlSetDocCompressMode@@LIBXML2_2.4.30xmlSchemaValidateOneElement@@LIBXML2_2.6.14xmlTextReaderRelaxNGValidate@@LIBXML2_2.5.7xmlNewInputFromFile@@LIBXML2_2.4.30xmlBufferCCat@@LIBXML2_2.4.30xmlTextReaderRead@@LIBXML2_2.4.30_ITM_deregisterTMCloneTablexmlTextReaderIsNamespaceDecl@@LIBXML2_2.6.15domGetAttrNodePerl_newSVsvPSaxProcessingInstructionPerl_newXS_deffilexmlRelaxNGFree@@LIBXML2_2.5.2CBufferFreexmlGetDocCompressMode@@LIBXML2_2.4.30xmlNewDocComment@@LIBXML2_2.4.30__xmlParserVersiondomXPathCompSelectPmmSAXCloseContextCBufferLengthxmlSetListDoc@@LIBXML2_2.4.30LibXML_output_write_handlerPmmNarrowNsStack__xmlGenericErrorContextPmmNewFragmentxmlTextReaderPreserve@@LIBXML2_2.6.0PmmREFCNT_decxmlParserInputBufferPush@@LIBXML2_2.4.30xmlStrlen@@LIBXML2_2.4.30xmlPatternMatch@@LIBXML2_2.6.3xmlTextReaderAttributeCount@@LIBXML2_2.4.30xmlXPathCastToString@@LIBXML2_2.4.30xmlNewProp@@LIBXML2_2.4.30PL_hash_seedstrlen@@GLIBC_2.2.5xmlTextReaderHasAttributes@@LIBXML2_2.4.30xmlAddSibling@@LIBXML2_2.4.30domXPathFindCtxt_ITM_registerTMCloneTablexmlNodeGetBase@@LIBXML2_2.4.30Perl_xs_handshakexmlHashAddEntry@@LIBXML2_2.4.30PmmEncodeStringdomTestDocumentdomAddNsDefPmmFreeHashTablexmlCharEncOutFunc@@LIBXML2_2.4.30PmmGenElementSVxmlHashRemoveEntry@@LIBXML2_2.4.30PmmSaxFatalErrordomNodeNormalizeListxmlValidateDtd@@LIBXML2_2.4.30xmlNodeSetContent@@LIBXML2_2.4.30LibXML_input_openxmlNodeAddContent@@LIBXML2_2.4.30xmlMemUsed@@LIBXML2_2.4.30__cxa_finalize@@GLIBC_2.2.5domAddNodeToListPerl_sv_catpvxmlGetNsList@@LIBXML2_2.4.30xmlGetNsProp@@LIBXML2_2.4.30CBufferAppendPerl_sv_setref_pvPROXY_NODE_REGISTRY_MUTEXxmlTextReaderConstBaseUri@@LIBXML2_2.6.0PmmFastEncodeStringxmlRelaxNGNewMemParserCtxt@@LIBXML2_2.5.2LibXML_input_readxmlTextReaderIsEmptyElement@@LIBXML2_2.4.30xmlBufferFree@@LIBXML2_2.4.30xmlTextReaderNextSibling@@LIBXML2_2.6.0PmmFreeNodexmlBufferLength@@LIBXML2_2.4.30PmmRegistryDumpHashScannerxmlRegexpIsDeterminist@@LIBXML2_2.4.30xmlXPathCompiledEval@@LIBXML2_2.4.30xmlHasNsProp@@LIBXML2_2.4.30xmlStrchr@@LIBXML2_2.4.30xmlRelaxNGValidateDoc@@LIBXML2_2.5.2XS_pack_charPtrPtrPSaxCDATABlockPerl_pop_scopexmlCopyNamespace@@LIBXML2_2.4.30xmlReaderForDoc@@LIBXML2_2.6.0xmlTextReaderCurrentNode@@LIBXML2_2.5.0PmmGenPISVxmlRelaxNGNewValidCtxt@@LIBXML2_2.5.2Perl_newSVrvxmlCopyProp@@LIBXML2_2.4.30xmlSetTreeDoc@@LIBXML2_2.4.30domRemoveChildxmlTextReaderReadAttributeValue@@LIBXML2_2.5.0EXTERNAL_ENTITY_LOADER_FUNCPSaxStartDocumentxmlXPathNewContext@@LIBXML2_2.4.30LibXML_input_matchPerl_call_svstrerror@@GLIBC_2.2.5domRemoveNsRefsPerl_sv_setsv_flagsxmlXIncludeProcessFlags@@LIBXML2_2.6.3xmlNewDocProp@@LIBXML2_2.4.30xmlSetProp@@LIBXML2_2.4.30PmmRegisterProxyNodexmlAttrSerializeTxtContent@@LIBXML2_2.6.6XS_unpack_charPtrPtrPerl_sv_isaPerl_sv_setpvnxmlSetExternalEntityLoader@@LIBXML2_2.4.30domInsertAfterxmlXPathRegisterNs@@LIBXML2_2.4.30xmlXPathFreeObject@@LIBXML2_2.4.30LibXML_test_node_namePerl_sv_free2PmmGenCharDataSVPmmFastDecodeStringxmlSchemaNewMemParserCtxt@@LIBXML2_2.5.8CBufferCharactersxmlXPathCompile@@LIBXML2_2.4.30Perl_stack_growPerl_block_gimmexmlCreateMemoryParserCtxt@@LIBXML2_2.4.30domNodeNormalizehtmlDocDumpMemory@@LIBXML2_2.4.30xmlCreatePushParserCtxt@@LIBXML2_2.4.30PmmGenAttributeHashSVPSaxStartPrefixPmmSvContextxmlNewNs@@LIBXML2_2.4.30xmlGetLineNo@@LIBXML2_2.4.30PmmRegistryREFCNT_incvaluePush@@LIBXML2_2.4.30PmmSvNodeExtxmlCharEncCloseFunc@@LIBXML2_2.4.30CBufferNewLibXML_input_closePmmRegistryHashCopierPerl_sv_newmortalxmlTextReaderGetAttribute@@LIBXML2_2.5.0domReplaceNodexmlTextReaderNodeType@@LIBXML2_2.4.30Perl_av_fetchxmlMalloc@@LIBXML2_2.4.30xmlNewText@@LIBXML2_2.4.30xmlTextReaderClose@@LIBXML2_2.5.0PSaxCharactersxmlXPathNodeSetCreate@@LIBXML2_2.4.30Perl_xs_boot_epilogxmlTextReaderIsDefault@@LIBXML2_2.4.30xmlTextReaderConstValue@@LIBXML2_2.6.0xmlSaveFormatFile@@LIBXML2_2.4.30Perl_sv_catsv_flagsxmlXPathCastNodeToNumber@@LIBXML2_2.4.30xmlStrcat@@LIBXML2_2.4.30xmlRelaxNGFreeValidCtxt@@LIBXML2_2.5.2htmlReadDoc@@LIBXML2_2.6.0xmlXPathOrderDocElems@@LIBXML2_2.5.6xmlCharStrndup@@LIBXML2_2.4.30PSaxCharactersFlushPerl_sv_2nv_flagsLibXML_load_external_entity_domReconcileNsAttrxmlXPathFreeContext@@LIBXML2_2.4.30xmlSearchNsByHref@@LIBXML2_2.4.30PmmExtendNsStackxmlReaderForFile@@LIBXML2_2.6.0getenv@@GLIBC_2.2.5LibXML_get_reader_error_dataPSaxGetHandler__xmlGenericErrorxmlSchemaSetParserErrors@@LIBXML2_2.5.8Perl_call_methodxmlNewComment@@LIBXML2_2.4.30xmlUTF8Strlen@@LIBXML2_2.4.30domTestHierarchyPmmNewNodehtmlReadFile@@LIBXML2_2.6.0PmmSaxErrorPSaxEndElement__errno_location@@GLIBC_2.2.5xmlEncodeEntitiesReentrant@@LIBXML2_2.4.30xmlTextReaderGetParserProp@@LIBXML2_2.5.0xmlRegexpExec@@LIBXML2_2.4.30xmlLoadCatalog@@LIBXML2_2.4.30xmlXPathCompiledEvalToBoolean@@LIBXML2_2.6.27__bss_startxmlXPathStringFunction@@LIBXML2_2.4.30xmlGetCharEncodingHandler@@LIBXML2_2.4.30PmmGetNsMappingxmlTextReaderReadOuterXml@@LIBXML2_2.5.0Perl_newSVPmmUpdateLocatorxmlXPathEval@@LIBXML2_2.4.30xmlXPathCastNodeToString@@LIBXML2_2.4.30Perl_mg_setxmlSetNs@@LIBXML2_2.4.30Perl_sv_vcatpvfn__stack_chk_fail@@GLIBC_2.4domNewNsPerl_sv_vcatpvfperlDocumentFunctionxmlValidateDocument@@LIBXML2_2.4.30xmlTextReaderGetParserColumnNumber@@LIBXML2_2.6.17_C2SvPerl_newSVivxmlSchemaFreeParserCtxt@@LIBXML2_2.5.8Perl_newSVnvPmmRegistryNamedomXPathCompFindPerl_hv_common_key_lenxmlGcMemSetup@@LIBXML2_2.5.7xmlTextReaderGetErrorHandler@@LIBXML2_2.5.2xmlTextReaderConstName@@LIBXML2_2.6.0PSaxExternalSubsetxmlTextConcat@@LIBXML2_2.4.30xmlStrndup@@LIBXML2_2.4.30xmlSchemaNewValidCtxt@@LIBXML2_2.5.8xmlSetNsProp@@LIBXML2_2.4.30domIsParentxmlXPathNsLookup@@LIBXML2_2.4.30xmlTextReaderRelaxNGSetSchema@@LIBXML2_2.5.7strcpy@@GLIBC_2.2.5xmlOutputBufferCreateIO@@LIBXML2_2.4.30xmlRelaxNGParse@@LIBXML2_2.5.2Perl_gv_add_by_typexmlCleanupParser@@LIBXML2_2.4.30xmlTextReaderMoveToAttribute@@LIBXML2_2.5.0PmmRegistryLookupxmlParseChunk@@LIBXML2_2.4.30xmlMemMalloc@@LIBXML2_2.4.30PmmProxyNodeRegistrySizexmlSetStructuredErrorFunc@@LIBXML2_2.6.0xmlNewDocFragment@@LIBXML2_2.4.30Perl_sv_isobjectLibXML_struct_error_callbackxmlIOParseDTD@@LIBXML2_2.4.30xmlTextReaderReadInnerXml@@LIBXML2_2.5.0xmlStrncat@@LIBXML2_2.4.30xmlRegisterDefaultInputCallbacks@@LIBXML2_2.4.30xmlInitializeCatalog@@LIBXML2_2.4.30xmlMemStrdup@@LIBXML2_2.4.30xmlXPathRegisterVariableLookup@@LIBXML2_2.4.30Perl_croak_nocontextPmmSAXInitializedomReadWellBalancedStringxmlAddChild@@LIBXML2_2.4.30domXPathFindxmlParseBalancedChunkMemory@@LIBXML2_2.4.30xmlNodeSetName@@LIBXML2_2.4.30xmlBufferContent@@LIBXML2_2.4.30domAttrSerializeContentxmlReaderForFd@@LIBXML2_2.6.0xmlGetExternalEntityLoader@@LIBXML2_2.4.30xmlNewDoc@@LIBXML2_2.4.30domClearPSVIXS_release_charPtrPtrxmlCreateFileParserCtxt@@LIBXML2_2.4.30xmlBufferCreate@@LIBXML2_2.4.30xmlHashLookup@@LIBXML2_2.4.30PmmSvOwnerstrncpy@@GLIBC_2.2.5xmlXPathNodeSetMerge@@LIBXML2_2.4.30xmlTextReaderMoveToNextAttribute@@LIBXML2_2.5.0domNamexmlRelaxNGNewParserCtxt@@LIBXML2_2.5.2valuePop@@LIBXML2_2.4.30_domAddNsChaindomAppendChildxmlFreeDtd@@LIBXML2_2.4.30xmlSchemaFree@@LIBXML2_2.5.8boot_XML__LibXML__DevelPerl_safesysmallocxmlStrdup@@LIBXML2_2.4.30PmmNewContextdomImportNodePerl_newSVpvPmmContextREFCNT_decxmlGetNoNsProp@@LIBXML2_2.5.2domClearPSVIInListxmlXPathFreeNodeSet@@LIBXML2_2.4.30xmlDocGetRootElement@@LIBXML2_2.4.30PmmNodeTypeNamexmlNewCDataBlock@@LIBXML2_2.4.30xmlBuildURI@@LIBXML2_2.4.30xmlXPathRegisterFuncNS@@LIBXML2_2.4.30xmlParseDTD@@LIBXML2_2.4.30stderr@@GLIBC_2.2.5Perl_av_pushPerl_sv_2iv_flagsdomUnlinkNode__snprintf_chk@@GLIBC_2.3.4xmlNewDocText@@LIBXML2_2.4.30domSetAttributeNodePmmProxyNodeRegistryPtrxmlSplitQName@@LIBXML2_2.4.30xmlFreeNodeList@@LIBXML2_2.4.30PL_memory_wrapPerl_croak_xs_usagexmlFreeTextReader@@LIBXML2_2.4.30Perl_croakfwrite@@GLIBC_2.2.5xmlTextReaderGetParserLineNumber@@LIBXML2_2.6.17LibXML_read_perlPmmCloneProxyNodesxmlPatterncompile@@LIBXML2_2.6.3PmmAddNamespacexmlIsBlankNode@@LIBXML2_2.4.30Perl_safesysfreexmlKeepBlanksDefault@@LIBXML2_2.4.30Perl_call_pvxmlFree@@LIBXML2_2.4.30Perl_push_scopexmlFreeNode@@LIBXML2_2.4.30_edataPerl_newSV_typexmlReconciliateNs@@LIBXML2_2.4.30xmlTextReaderMoveToFirstAttribute@@LIBXML2_2.5.0LibXML_close_perlxmlRegexpCompile@@LIBXML2_2.4.30_domReconcileNsxmlDocDumpFormatMemory@@LIBXML2_2.4.30xmlGetID@@LIBXML2_2.4.30xmlXPathNewCString@@LIBXML2_2.4.30PmmUnregisterProxyNodePerl_savetmpsxmlCopyNode@@LIBXML2_2.4.30domXPathSelectCtxtxmlFreeParserCtxt@@LIBXML2_2.4.30xmlReplaceNode@@LIBXML2_2.4.30Perl_sv_derived_fromPSaxEndPrefixxmlXPathNewNodeSet@@LIBXML2_2.4.30xmlTextReaderConstPrefix@@LIBXML2_2.6.0boot_XML__LibXMLdomGetElementsByTagNamememcpy@@GLIBC_2.14xmlTextReaderStandalone@@LIBXML2_2.6.15PSaxStartElementxmlFreePattern@@LIBXML2_2.6.3Perl_newSVpvnPmmNodeToSvxmlCopyDtd@@LIBXML2_2.4.30PmmDumpRegistryxmlSearchNs@@LIBXML2_2.4.30xmlMallocAtomicLoc@@LIBXML2_2.5.9xmlMemRealloc@@LIBXML2_2.4.30xmlTextReaderPreservePattern@@LIBXML2_2.6.3xmlFreeNsList@@LIBXML2_2.4.30xmlStrncmp@@LIBXML2_2.4.30xmlAllocParserInputBuffer@@LIBXML2_2.4.30xmlFreeNs@@LIBXML2_2.4.30Perl_markstack_growPerl_sv_setiv_mgxmlBufferAdd@@LIBXML2_2.4.30Perl_newRVxmlCreateIntSubset@@LIBXML2_2.4.30PSaxCharactersDispatchxmlFreeParserInputBuffer@@LIBXML2_2.4.30PmmCloneNodexmlRegisterDefaultOutputCallbacks@@LIBXML2_2.4.30xmlParseDocument@@LIBXML2_2.4.30domGetNodeValuexmlNewPI@@LIBXML2_2.4.30Perl_sv_2pv_flagsdomSetNodeValuexmlMemFree@@LIBXML2_2.4.30xmlCopyDoc@@LIBXML2_2.4.30.symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.bss.comment.gnu.build.attributes.debug_aranges.debug_info.debug_abbrev.debug_line.debug_str.debug_loc.debug_ranges88$.o``8 PP/@ 7 7$Ho\\Uo``daahnBff`*xppsP~@ cc @c@c L)L)88~ &&&&Ph&h&X0-Xf0<l`,7 8.FR0J]Th" p| RvParser/.packlist000064400000004274152346270120007624 0ustar00/usr/local/lib64/perl5/XML/Parser.pm /usr/local/lib64/perl5/XML/Parser/Encodings/Japanese_Encodings.msg /usr/local/lib64/perl5/XML/Parser/Encodings/README /usr/local/lib64/perl5/XML/Parser/Encodings/big5.enc /usr/local/lib64/perl5/XML/Parser/Encodings/euc-kr.enc /usr/local/lib64/perl5/XML/Parser/Encodings/ibm866.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-15.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-2.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-3.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-4.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-5.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-7.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-8.enc /usr/local/lib64/perl5/XML/Parser/Encodings/iso-8859-9.enc /usr/local/lib64/perl5/XML/Parser/Encodings/koi8-r.enc /usr/local/lib64/perl5/XML/Parser/Encodings/windows-1250.enc /usr/local/lib64/perl5/XML/Parser/Encodings/windows-1251.enc /usr/local/lib64/perl5/XML/Parser/Encodings/windows-1252.enc /usr/local/lib64/perl5/XML/Parser/Encodings/windows-1255.enc /usr/local/lib64/perl5/XML/Parser/Encodings/x-euc-jp-jisx0221.enc /usr/local/lib64/perl5/XML/Parser/Encodings/x-euc-jp-unicode.enc /usr/local/lib64/perl5/XML/Parser/Encodings/x-sjis-cp932.enc /usr/local/lib64/perl5/XML/Parser/Encodings/x-sjis-jdk117.enc /usr/local/lib64/perl5/XML/Parser/Encodings/x-sjis-jisx0221.enc /usr/local/lib64/perl5/XML/Parser/Encodings/x-sjis-unicode.enc /usr/local/lib64/perl5/XML/Parser/Expat.pm /usr/local/lib64/perl5/XML/Parser/LWPExternEnt.pl /usr/local/lib64/perl5/XML/Parser/Style/Debug.pm /usr/local/lib64/perl5/XML/Parser/Style/Objects.pm /usr/local/lib64/perl5/XML/Parser/Style/Stream.pm /usr/local/lib64/perl5/XML/Parser/Style/Subs.pm /usr/local/lib64/perl5/XML/Parser/Style/Tree.pm /usr/local/lib64/perl5/auto/XML/Parser/Expat/Expat.so /usr/local/share/man/man3/XML::Parser.3pm /usr/local/share/man/man3/XML::Parser::Expat.3pm /usr/local/share/man/man3/XML::Parser::Style::Debug.3pm /usr/local/share/man/man3/XML::Parser::Style::Objects.3pm /usr/local/share/man/man3/XML::Parser::Style::Stream.3pm /usr/local/share/man/man3/XML::Parser::Style::Subs.3pm /usr/local/share/man/man3/XML::Parser::Style::Tree.3pm Parser/Expat/Expat.so000055500001313430152346270120010515 0ustar00ELF>p-@؍@8 @%$@8@8 0:0:!0:! ::!:!888$$ 8 8 8 Std 8 8 8 PtdQtdRtd0:0:!0:!GNU'Ǘ~T]vߖl'ʀh@2hjBE|T$19qX\}XC%&v 'Unj/Pr <eQGj _zf7C"pvLUlDA8*~>j, \ F"0(@!8@! _ (@!__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizelibpthread.so.0PL_thr_keypthread_getspecificPerl_sv_2iv_flagsPerl_sv_newmortalPerl_sv_setiv_mgPerl_croak_xs_usageXML_GetErrorCodeXML_GetCurrentByteIndexXML_GetCurrentColumnNumberXML_GetCurrentLineNumberPerl_hv_common_key_lenXML_ErrorStringPerl_sv_catpvf_nocontextPerl_push_scopePerl_savetmpsPerl_call_methodPerl_pop_scopePerl_sv_catsv_flagsPerl_free_tmpsPerl_stack_growPerl_markstack_growXML_ParsePerl_sv_2pv_flags__stack_chk_failXML_SetCharacterDataHandlerXML_SetProcessingInstructionHandlerXML_SetCommentHandlerXML_SetCdataSectionHandlerXML_SetUnparsedEntityDeclHandlerXML_SetNotationDeclHandlerXML_SetExternalEntityRefHandlerPerl_sv_2bool_flagsPerl_sv_2uv_flagsXML_SetElementHandlerXML_SetUnknownEncodingHandlerXML_SetNamespaceDeclHandlerPerl_newSVsvPerl_sv_setsv_flagsPerl_sv_2mortalXML_SetEndCdataSectionHandlerPerl_call_svXML_SetStartCdataSectionHandlerXML_GetInputContextPerl_newSVpvnPerl_newSVivXML_GetCurrentByteCountPerl_newSVpvPerl_sv_derived_fromPerl_safesysfreePerl_croak_nocontextPerl_safesysmallocPerl_sv_setref_pvPerl_get_hvPerl_sv_setpvXML_GetSpecifiedAttributeCountPerl_newSVPerl_sv_setpvnXML_SetDefaultHandlerXML_SetDefaultHandlerExpandXML_DefaultCurrentPerl_sv_catpvn_flagsstrchrPerl_av_pushPerl_av_lenPerl_sv_setivXML_GetBaseXML_SetBaseXML_SetXmlDeclHandlerXML_SetEndDoctypeDeclHandlerXML_SetStartDoctypeDeclHandlerXML_SetAttlistDeclHandlerPerl_sv_catpvXML_SetElementDeclHandlerPerl_newSV_typePerl_newRV_noincPerl_gv_stashpvPerl_sv_blessXML_SetEntityDeclHandlerXML_ExternalEntityParserCreatePerl_call_pvXML_ParserFreePerl_gv_add_by_typememcpyPerl_safesyscallocXML_ParserCreate_MMXML_SetUserDataXML_SetParamEntityParsingstrlenPerl_safesysreallocPerl_av_clearPerl_sv_free2Perl_av_popXML_GetBufferXML_ParseBufferstrncmpPerl_newRVboot_XML__Parser__ExpatPerl_xs_handshakePerl_newXS_deffilePerl_xs_boot_epiloglibexpat.so.1libperl.so.5.26libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.4U ui &ii 1ui 0:! .8:!-@:!@:!`:!h:!p:!x:!@!@@! @!0?! ?!$?!3?!]?!c!.>!/>!0>!1 >!2(>!40>!58>!6@>!7H>!8P>!9X>!:`>!;h>!<p>!=x>!>>!?>!@>!A>!B>!C>!D>!E>!F>!G>!H>!I>!J>!K>!L>!M>!N?!O?!P?!Q?!R ?!S(?!T0?!U8?!V@?!WH?!XP?!YX?!Z`?![h?!\p?!^x?!_?!`?!a?!b?!c?!d?!e?!f?!gHH!HtH5!%!hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahb%]!D%U!D%M!D%E!D%=!D%5!D%-!D%%!D%!D%!D% !D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%}!D%u!D%m!D%e!D%]!D%U!D%M!D%E!D%=!D%5!D%-!D%%!D%!D%!D% !D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%}!D%u!D%m!D%e!D%]!D%U!D%M!D%E!D%=!D%5!D%-!D%%!D%!D%!D% !D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%!D%}!D%u!D%m!D%e!D%]!D%U!D%M!DH=!H!H9tH6!Ht H=!H5z!H)HHH?HHtH !HtfD==!u+UH=!Ht H=> !d!]wSLLV1AHHHI)Ax?St9~3DʃTt(CHHDHBI9u[@T$tKH[DHcHAWAVAUIATUSHH!; ;H(;HPxHJHHxLc2H@JH)Hg;EfMcN,;H@J@ % =;H@J,HHIċ;t;H@@#_HHI$;P4H@@Lc$>;H@Nt(E %AEM LeIn;;HhLH(H[]A\A]A^A_;HhH@H@HlZfDH@JHL` ;LHHpH5Lff.@AWAVAUIATUSHH!;-;H(#;HPxHJHHxLc2 H@JH)Hg;EfMcN,;H@J@ % =;H@J,HHIċ;;H@@#HHL;Lcb;H@Nt(E %ACEM LeIn;;Hh LH(H[]A\A]A^A_;HhH@H@HlZfDH@JHL` ;LHHlH5Lff.@AWAVAUIATUSHH !;M;H(C;HPxHJHHxLc2-H@JH)Hg;EfIcL$;H@H@ % =;H@H,HH.Iŋ;;H@@#HHL;I;H@Nl E %AcEM LuIm;7;Hh,LH(H[]A\A]A^A_ ;HhH@H@HlZfDH@HHLh ;LHHlH5Lff.@AWAVAUIATUSHH< !;m;H(c;HPxHJHHxLc2MH@JH)Hg;EfMc'N,;H@J@ % =;H@J,HHNIċ;;H@@#HHL,;I;McH@Nt(E %AEM LeIn;T;HhILH(H[]A\A]A^A_@+;Hh H@H@HlZfDH@JHL` ;LHH#oH5Lff.@AWAVAUIATUSHH\ !;;H(;HPxHJHHxLc2mH@JH)Hg;EfMcGN,;H@J@ % =;H@J,HHnIċ;;H@@#HHL\;I;McH@Nt(E %AEM LeIn;t;HhiLH(H[]A\A]A^A_@K;Hh@H@H@HlZfD#H@JHL` ;LHHCoH57L/ff.@AWAVIAUATIUSH(H}!;M,$;L8IEHhHE1A j HHHAZA[Ht HH@ uH([]A\A]A^A_fDIE;HpHt$4HE1A jHt$ HHu\AXAYIMu@Ht;H@ <%= txLiI @MtLLI(LH-HMIH LH5rQH}H1^_H([]A\A]A^A_fLLT$LHD$?LILHD$HMHRLD$H5HHT$ H}1i;ZYH;H9;;HHxLaL`xLT$L;U;LT$LH+HHHA$;LT$H@ L)H<IE;LT$MgIG[LT$H@ L)HI;II$4L ;*H5Hf;A L ED;L ;;HhPH;hXR;H([H]A\A]A^A_eD;Ml$HmM$$HLHMV@;H띋;xLLHELT$I;LT$LHLT$I;0LLHLT$IAWAVAUIATUSHH!;;H(;HPxHJHHxLc2H@JH)H;EfIcL$;H@H@ % =};H@H,nHHIƋ;T;H@@#?HgHŹ1H5L>LcE; U ;H@Nt AEM LmIn;;HhLH(H[]A\A]A^A_;HhH@H@HlBfDkH@HHLp 1Lv/;9LHH{\H5oLgAWAVIAUATUSHH!dH%(HD$1;;L ;HPxHJHHx*HcH@HI)IA;DmMcN$;H@J@ % =j;H@N,[LHIŋ;Hc;;H@L4,;H@@#H?HAF % =IIvHPH$1LLcE;U ;H@Nl AEM LuIm;;HhuIL HD$dH3%(H[]A\A]A^A_@C;Hh8H@H@HlAF % =;HLHH$HH@JHLh 1L;LHHH5'LfAWAVIAUATUSHH< dH%(HD$1;];L S;HPxHJHHx*>HcH@HI)IA ;DmMcN$;H@J@ % =;H@N,LH;Iŋ;Hc;H@L4;H@@#HHAF % =IIvHPH$L|;LcRE ;BU ;H@Nl A"EM LuIm;;HhIL HD$dH3%(H[]A\A]A^A_f;HhH@H@HlAF % =;HLHUH$Hf[H@JHLh 1Lf;)LHHkH5LW2fUSHHHHt;E < HHt4E < HHt4E < HHt3E ~< HHtEE FeHEHtH@HHDHHt4E < qHHt4E <} iHHt3E }<u aH[]f.HEH H@HH{11@HEHH@HDH{19@HEHH@HH{1q@HEH!H@HH{11RfHEHzH@HH{1\@'HEHH@HH{19d@tsHEHH@HPH{H1[]offf.AVIAUATUSH ;;L ;HPxHJHHx*HcH@HI)IA ;DmMcjN$;H@J@ % =@;H@N,1LHIŋ;Hc;H@H@ % =tX;H@H,HHI}9G0s"GH;;HhJT%H[]A\A]A^H@HH@ H@JHLh QH5LAVAUIATUSH ;C;H(9;HPxHJHHxLc2#H@JH)H;EfIcL$;H@H@ % =t|;H@H,HH(HLmLAEhubH1111H*;;HhxJT%H[]A\A]A^[H@HHHh f.I}11H5zLrfAWAVIAUATUSHH ;;L(;HPxHJHHx*HcH@HI)IA;DeMcJ ;H@HL$J@ % =;H@N4vLHIƋ;HcVM.;H@L;Hh3Ll$IL(H[]A\A]A^A_f HH`;@H@JHLp Mux;H8M3LH;IEx7H5LAWAVIAUATUSHH< ;m;L(c;HPxHJHHx*NHcH@HI)IA;DeMc$J ;H@HL$J@ % =;H@N4LHFIƋ;HcM.;H@L;Hh3Ll$IL(H[]A\A]A^A_f HH`;@H@JHLp Mup;H8M3LH;IEp7H5ŨLAWAVIAUATUSHH< ;m;L(c;HPxHJHHx*NHcH@HI)IA;DeMc$J ;H@H $J@ % =;H@N,LHGIŋ;HcMu;H@MH,MyLHٿIIHrH9t&;Ht$uHt$HHHt'E ux<tt td1Lڿ;#H@N<;;H8I9t AG ;HhL4$IL0H[]A\A]A^A_ft;HEHtH@H5gH{HpHE80e^fAHEff.@(z,H5 "@KH@JHLh c+IL8H; HHBIfDLH@;fHUH5uHz 7D;詾1HH,H5E[T;yHHH5L訽AUIATUSHH ;1I;H(Hѿ; Hb;;HPxLbL`xL;;ԽHH+HHHA$;軽H@ H)HIE;HHE蘽H(;I臽HH;p;HhPeH;hX/;XH[H]A\A]fDH[]A\A]D;)HQ;HII&;HHHƹH3ff.AUIATUSHH ;豼I;H(虼HQ;芼H;{;HPxLbL`xhL;;THH+HHHA$;;H@ H)HIE;HHEH(;IHH藽;;HhPH;hX/;ػH[H]A\A]ffDH[]A\A]D;詻HѼ;葻HɼI&;yHHHFH3ff.AUIATUSHH ;1;H('H߼;Hp; ;HPxLbL`xL;;HH+HHHA$;ɺH@ H)HIE;HHE覺H(;I蕺HH%;~;HhPsH;hX;fH[H]A\A]@;IHq;1HHHH]fD; HAIfAWAVIAUATUSHH ;͹;L(ù;HPxHJHHx*讹HcH@HI)IA;DeMc脹J ;H@H $J@ % =V;H@N,GLH觵Iŋ;Hc'Mu;H@MH,MyLH9IIHrH9t&;Ht$ոHt$HHHt'E ux<tt td1L誹;胸H@N<;t;H8I9t AG V;HhKL4$IL0H[]A\A]A^A_ft;HEHtH@H5GH{HpHE80e^fAHEff.@(z,H5"@諷H@JHLh c苷IL8H;mHH袶IfDKLH蠷;fHUH5UHz 7D; 1HH茳H5%[T;ٶHHYH5 LAVIAUATUSHH-^ dH%(HD$1}~}L s}HPxHJHHx]HcLH@HH)HHd}DkIMc)}H@J@ % =}H@N,LHVIŋ}Hcյ}H@H؋@ % =貵}H@H袵HHHT$HLHLc,$LIr%1IMH9wIA} u9}IHcL$HcHHH9C1E1 HH9t: uHL)DD9}HJL)EDDˋ}H@ L)H}IǴHcLHɶ}H讴HH}ID$薴IcH[}H耴HHմ}I$iL HD$dH3%(H[]A\A]A^D;H@JHLh DH@HHX x}LLHͰIL)A։H50L@AVAUIATUSHHn dH%(HD$1;菳;L 腳;HPxHJHHxLc2oH@JI)IA>;AnHcHL,;H@H@ % =;H@L$LHoIHT$HL,IHLشHc4$;AIDzLIcHɴIċ;诲LH;I蚲H@L$;苲;Hh耲LH(HD$dH3%(uaH[]A\A]A^DSH@HHLp C;11H5HIbH5aLY4@UHSHHH 8HHH踱H H[]f.AWIAVAUAATIUSHHf HT$;蒱;H(舱H@;yHѰ;j;HPxLrLpxWL;;CHH+HHHA;+H@ H)HZI$HEM11L;ILHJH|$HEH1;IǰLH;HEAEuw袰HPHE ;H 荰H(;I${HH ;d;HhPYH;hX3;LH[H]A\A]A^A_֭fD+Hh;HA;;H8HEA?H8?;ѯH8fD;蹯HHH膬HfD;葯HɰI7AWAVIAUIATIUSHH& H4$;DD$ N;H(DH;5H荮;&;HPxLzLxxL;;HH+HHHA;H@ H)H ^I$H<$1HE;H$踮H4$H HEM1L;I苮LHHEM1Li;I_LH贮HE D$ ;tvAHhHE(;H(,H(;I$HH誯;;HhPH;hX2;H[H]A\A]A^A_uD˭HP;蹭H;衭H8BfD;艭H8fD;qHHH>HfD;IH聮I3fAWMAVIAUIATUSHH H$;Ht$;H(;HPxLbL`xL;;ͬHH+HHHA$;贬H@ H)HlIE;LeHE葬H@ L)HqH|$1Il$p;HD$dHt$H跬H<$;ID$@H@ H)HH<$1Le!;H$H4$HjHE;MH@ L)H1LMt$;HͫHH"ID$Mtx;豫H@ L)H1LIn;I艫LHޫ;IFsH(;IbHH[H]A\A]A^A_@;LfLL t#H@ H)Hk;LeH8HE;MMdH@ L)H;Mt$ɪH8ID$f;詪LLHvIfD;聪HHHNH6fD;YLLH&IXfD;1HHHHrfD; LLH֦ImfD;HI;ɩLLH薦IfD;衩HHHnHsLff.AWAVIAUMATIUSH(H Ht$;HL$LL$8;H(.H;Hw;;HPxLzLxxL;;HH+HHHA;ѨH@ H)H(I$H|$1HE;I袨LHHEM21L;IvLH˨HEH|$1[;IQLH覨HE M1L/;I%LHzHE(H|$1H0;ILHQ;HEH(;I$ԧHHd;轧;HhP貧H;hX ;衧H([H]A\A]A^A_+;聧H詨;iH8DfD;QH8fD;9HHHH^fD;HIIAVIAUIATUSH ;;H(֦H莨;ǦH;踦;HPxLbL`x襦L;;葦HH+HHHA$;xH@ H)HIE1LHHEQ;IGLH蜦;HE1H(;I HH谧; ;HhPH;hX;[]HA\A]A^遣;٥H;HHH莢H?fD;虥HѦIfAWIAVIAUIATUSHH& ;W;H(MH;>H薤;/;HPxLbL`xL;';HH+HHHA$;H@ H)HIE1LHHE;I辤LH1LHE;I蛤LH;HE腤H(;ItHH;];HhPRH;hX ;AH[H]A\A]A^A_ˡ;!HI; HHH֠HfD;HIAVIAUIATUSH ;谣;H(覣H^;藣H;舣;HPxLbL`xuL;;aHH+HHHA$;HH@ H)HIHEM1L;ILHhHE;HH(;H5PH+;Ԣ;HhPɢH;hX;輢[]HA\A]A^L@;衢Hɣ;艢H8vfD;qHHH>HfD;IH聣IfAWIAVIAUIATUSHHֶ ;;H(H赣;HF;ߡ;HPxLbL`x̡L;_;踡HH+HHHA$;蟡H@ H)HIHEM1Lt;IjLH迡HEM1LH;I>LH蓡HE;H$H(;H5HV;;HhPH;hX;H[H]A\A]A^A_q;ɠH;豠H8sfD;虠H8/fD;聠HHHNHfD;YH葡IfAVAUIATUSH ;#;L ;HPxHJHHxLc2H@JI)IA;AnHcܟ;L$H@L,şHKLH#;褟;H@HH@@ % =tw肟;H@HHhoHHϛHHПHğH輟;5;Hh*JT%H[]A\A]A^f H@HH@HHh H=1H5jL)fGǝAWAVIAUATUSH8H-\ }茞}H聞}HPxHJHHxD*jIcH@HH)H5}EeMc@N4}H@J@ % =}H@J1HHӜHË}AMc}H@J@ % =+辝}H@N,讝LH}=/v;t\臝L8}xLH͝}HbH@J}R}HXFIL0H8[]A\A]A^A_ÐDK,DC.HfAfAEALHLHQHH9hCAfPw BD+EI(IBD+uMcHCDL$(DD$ HL$L\$HD$萜LHsH葞I脛DL$(DD$ HL$L\$HfDfD@1ft0ΉtHH=uLDL$,HDD$(LHT$HHL$ HHt$HT$HL$ HH< DL$,HT$1Ht$DD$(fEHEH4tkLcσHDLHLLI DHD DHDIDHfAfDIo@AoHIoPQ$oXY4D9uA1L 3fEt+HcLAq0ffA p9u݋}HT$1H֜}HHT$HHHHs1H5 Htk}Ht$ȚHIDjHT$A$HHt$ XZD蓚H@JH@ {H@JHXz}bH51H豜HHw HiH=1`A(sE1E1hH5L[ff.AWAVAUIATUSHH ;ݙ;L ә;HPxHJHHxLc2轙H@JI)IA-;AnHc薙L$;H@H@ % =l;H@L,]LH轕Aŋ;C;H@@#.HVD辙;I;I LLp.MI;;H@H,LHH4;͘;Hh˜LH(H[]A\A]A^A_D裘;蜘q苘H@HHDh -H5L踗AWAVAUIATUSHH ;=;H(3;HPxHJHHxLc2H@JH)Hg;EfMcN,;H@J@ % =͗;H@J,辗HHIċ;褗;H@@#菗H跙HL|;Lcr;H@Nt(E %ASEM LeIn;';HhLH(H[]A\A]A^A_;HhH@H@HlZfDӖH@JHL` ;豖LHHlH5|Lߕff.@AUIATIUSHH-1 }a1H7}HLLLHH蛗K HH[]A\A]fDAWIAVIAUAATUSHHƪ ;;H(H襗;ޕH6;ϕ;HPxLbL`x輕L;;訕HH+HHHA$;菕H@ H)HIIcLHHE;I^LH賕;HEHH(;I7HHǖ; ;HhPH;hX;H[H]A\A]A^A_钒f;H;єHHH螑H8fD;詔HIfAWIAVAUATIUSH(H9 HD$hLt$`T$;H4$HD$HD$pDD$HD$D;H(:H;+H胓;;HPxLjLhx L;<;HH+HHHAE;ܓH@ H)H(+I$H<$1HE;H$譓H4$HHEMHct$L;I}LHғHEMu1L[;IQLH覓H|$HE H 1-;I#LHxH|$HE(H1;ILHJHE0D$Lm0;u`ӒL(;I$HHQ;誒;HhP蟒H;hXY;蒒H([H]A\A]A^A_@sH@ L)H;IX;HhIEo;9Ha;!H|$H8HE(H;H8 ;H8fD;ёH8TfD;蹑HIf;虑HHHfHfD;qLLH>IfDAWIAVIAUAATUSHH ;';H(HՒ;Hf;;HPxLbL`xL;;ؐHH+HHHA$;运H@ H)HIIcLHHE;I莐LH;HExH(;IgHH;P;HhPEH;hX;8H[H]A\A]A^A_f;HA;HHHΌH8fD;ُHIfAWAVIAUATUSHHl ;蝏;L(蓏;HPxHJHHx*~HcH@HI)IA;DeMcTJ ;H@H $J@ % =&;H@N,LHwIŋ;HcMu;H@MH,MԎLH IIHH9t&;Ht$襎Ht$HHHt/E < tt1LAFh;@H@N<;1;H8I9t AG(;HhL4$IL0H[]A\A]A^A_tCHEHzH@H5HgH\HE80QJfD)HEff.@(zH5I @KfDKH@JHLh 3+IL8H^; HHBIffDLH@;fHUH5Hz `'D;詌1HH,H5u3,;yHHH5tL訋AWAVAUIATUSHH ;-;L #;HPxHJHHxLc2 H@JI)IA};AnHcL4;H@H@ % =1輋;H@L$譋LH IMeL=oI$It$PLDHHt$t;gHt$1HqH豌H5LAD$h&LnLLAD$h|;Md$P LH@;ILHK;IH@L$;Ҋ;HhNJLH(H[]A\A]A^A_f{pfD苋fD苊H@HHLh H5pL踉AVAUIATUSH ;C;H(9;HPxHJHHxLc2#H@JH)H;EfIcL$;H@H@ % =tT׉;H@H,ȉHH(H;詉;Hh螉JT%H[]A\A]A^D胉H@HHHx H5oL賈AUIATUSHcHHoPHt3H 85HHL[HA]HA\A]$@IHLID$PH[]A\A]fAWI|AVAUIATUHSHHHH9 L%{ II)A<$褈HLE1jA0DHHԉH{1IXZtHMI7F < LH2A<$H&HLHA<$LH脅A<$M/HcHLH׉A<$ۇHHH轉K DHH[]A\A]A^A_@HH1[]A\A]A^A_% A<$=uHHch Ht$fHt$HăA<$HchAWAVAUIATUSH8H dH%(HD$(1; ;L ;HPxHJHHxD2IcH@HI)IA;AnHcÆ;H H@H $L<訆AV;H@HcL$蒆AV;AH@HcMcL,uH@N4AG % =9IMH@HD$AD$ % =<I$MD$H@HD$ HT$LD$H|H|$ IH48H91LD$1fAAHH9uLL$LF|MM9s*I1IK<fDATHH9uMMAIVLIuLI;zLHυ;IeH@L,;V;HhKL$$IL HD$(dH3%(uqH8[]A\A]A^A_f;LHT$HI@;HT$ LH較IHD$ HH5LoLff.AWAVAUIATUSHHL ;};L s;HPxHJHHxLc2]H@JI)IA#;AnHc6L$;H@H@ % = ;H@L,LH]HE;IH҃;IȃLLpMI;诃;H@H,蠃LHH;苃;Hh考LH(H[]A\A]A^A_cH@HHHx 诀;IHj<;I2I8H@L,H5jiLbfAVIAUATUSH— ;;L ;HPxHJHHx*ԂHcH@HI)IA;DmMc誂N$;H@J@ % =耂;H@N,qLH~Iŋ;HcQH@H,U uAt<1%= t,L4;;HhJT%H[]A\A]A^Ð u Hu@;H1H诀Hf.軁H@JHLh IH5biLAWAVIAUATUSHH< ;m;L(c;HPxHJHHx*NHcH@HI)IA;DeMc$J ;H@H $J@ % =;H@N,LHG}Iŋ;HcǀMu;H@MH,My褀LHIIHrH9t&;Ht$uHt$HH谀Ht'E ux<tt td1L~;#H@N<;;H8I9t AG ;HhL4$IL0H[]A\A]A^A_ft;HEHtH@H5H{HpHE80e^fAHEff.@(z,H5"@KH@JHLh c+IL8H; HHB~IfD~LH@;fHUH5Hz 7D;~1HH,{H5[T;y~HHzH5/fL}AWAVIAUATUSHH ;-~;L(#~;HPxHJHHx*~HcH@HI)IA;DeMc}J ;H@H $J@ % =};H@N,}LHzIŋ;Hc}Mu;H@MH,Myd}LH|IIHrH9t&;Ht$5}Ht$HHp}Ht'E ux<tt td1Lz;|H@N<;|;H8I9t AG |;Hh|L4$IL0H[]A\A]A^A_ft;HEHtH@H5'H{HpHE80e^fAHEff.@(z,H5"@ |H@JHLh c{IL8H;{HH{IfD{LH|;fHUH55Hz 7D;i{1HHwH5[T;9{HHwH5cLhzAWAVIAUATUSHH ;z;L(z;HPxHJHHx*zHcH@HI)IA;DeMczJ ;H@H $J@ % =vz;H@N,gzLHvIŋ;HcGzMu;H@MH,My$zLHYyIIHrH9t&;Ht$yHt$HH0zHt'E ux<tt td1Lx;yH@N<;y;H8I9t AG vy;HhkyL4$IL0H[]A\A]A^A_ft;HEHtH@H5H{HpHE80e^fAHEff.@(z,H5Y"@xH@JHLh cxIL8H;xHHwIfDkxLHx;fHUH5Hz 7D;)x1HHtH5[T;wHHytH5_L(wAWAVIAUATUSHH| ;w;L(w;HPxHJHHx*wHcH@HI)IA;DeMcdwJ ;H@H $J@ % =6w;H@N,'wLHsIŋ;HcwMu;H@MH,MyvLHvIIHrH9t&;Ht$vHt$HHvHt'E ux<tt td1L*v;cvH@N<;Tv;H8I9t AG 6v;Hh+vL4$IL0H[]A\A]A^A_ft;HEHtH@H5gH{HpHE80e^fAHEff.@(z,H5 "@uH@JHLh ckuIL8H;MuHHtIfD+uLHu;fHUH5uHz 7D;t1HHlqH5E[T;tHH9qH5\LsAWIAVAUATMUSH(H9 Ht$;HT$HL$DL$VtH(MH=k\9;I/tLLHu;tH@\LHu;tHu;sHJs;s;HPxLjLhxsL;;sHH+HHHAE;sH@ H)H zIH|$1HE;IusLHsH|$1HEZ;IPsLHsH|$1HE5;I+sLLm(H|s;HE sLHfsHE(MtD$ue;rL(;IrHHmt;r;HhPrH;hX;rH([H]A\A]A^A_4p@;rH@ L)H;InrHhIEjT$HqZH=`ZHD19I);)rHQsk@;rHHHnHdfD;qH!sIf;qLLHnI5ff.AWAVIAUATUSHHL ;}q;L(sq;HPxHJHHx*^qHcH@HI)IA;DeMc4qJ ;H@H $J@ % =q;H@N,pLHWmIŋ;HcpMu;H@MH,MypLHoIIHrH9t&;Ht$pHt$HHpHt'E ux<tt td1L n;3pH@N<;$p;H8I9t AG p;HhoL4$IL0H[]A\A]A^A_ft;HEHtH@H5H{HpHE80e^fAHEff.@(z,H5i"@[oH@JHLh c;oIL8H;oHHRnIfDnLHPo;fHUH5Hz 7D;n1HH=SHH@HHHx;S;HH@H8VRHH@HH@80R;HH@H8<RHH@HHHxA;R;HH@H8RHH@H;H@80r]R;HOR1HH"TH@;2R;L$R1LHSH@~ R;HH4$QH4$1HSH@Q;HQ1HHSH@Q;HH4$QH4$1HrSH@6Q;LvQ1LHISH@_[Q;HH4$IQH4$1HSH@-Q;LQ1LHRH@SQ;LP1LHRH@P;HP1HHRH@MP;HP1HHwRH@NP;HH4$rPH4$1HDRH@VP;HH4$DPH4$1HRH@ (P;LP1LHQH@O;LO1LHQH@O;HH4$OH4$1HQH@7O;LO1LHmQH@@AWAVIAUATUSHH,d ;]O;L SO;HPxHJHHx*>OHcH@HI)IAf;DmMcO;N4H@N$NU;H@HcHcL LL1H5L%HI;LhwKH E1jH?4LHA LZYHFL(Mt>AE N<F 2f.1LfK;J;H@Nl0E %AJEM LeIm;J;HhJIL0H[]A\A]A^A_@{J;HhpJH@H@HlfD?I$HH@HAOhf.IHHRH% =mIGHD$IEHH@HdAOhDH|$1H5^ -IID{IH@HHDh Iff.B(6+;ftI$Hz jI$ff.@(Q@tIUHz IEff.@(@;yH1LHGGHD$(DIHz MDHIW:0-DH1LHD;;G1LHtD(;G1LHLDvAG ;GLHHEfD;Gf.HID$80%@HGIE805D+GLHC;@; GLHCH=521GH=O21GH=q21FH=21FH5A/LEff.fAWHAVAUIATUSHHHdH%(HD$81D(HŅ~3p1I fDHADxH@BAHBH9uL-Z L5O[ A}M FIHLjHE1A L;G^_IHL8AG A}EHJ-LH"C IHhE % =HEH@ HPH{HHpHH)HHH)΁HHHǃf8HH_HHH\$8dH3%(rHH[]A\A]A^A_A}DHHWAZf< %= A}DA}L0DHkFA}DHCA}DA}HpxL~Lxx|DL;A}fDLH+pHHAA}LDH@ L)HbA}I/DHcLH1FA}IDLHjDA}ICL0A}CH5/HDA}L5Y CHLjLE1A HDA}ICA}HhPCZYH;hXA}CHAMt,M>AG <%= @1HǃHǃC1H5R-HjEIH0X HtcA}fA}BHDPA}BLLH?IzA}BHCI.@H=,1BH=.Bff.BAWAVIAUIATUSHH W H4$;6BAnhEfHL8AF0AF0Et1D9L$Dd$AV4Av8IF@9tAv0AV44IV(Iv H<$ոHD$;Eu9MfpMt0AD$  uk<tg tWInwAHT$HH7AAFhH[]A\A]A^A_DH<$1=HD$s/I$HtH@H@ I} MfII<$uM)IID$H$@HB;@H)@;@;HHxLaL`x@L;@ ;@LH+HHHH<$A$ ;w@H@ L)HH;$ IMgIGHD$IGI}H IV(Iv fDMMt;H(HD$PL|$*Hy,;*H *IX;*;HPxLbL`x*L;);q*HH+PHHA$;X*H@ H)HHD$(;HHE4*H(;**H5 Hf';A *HA9H0HhD#F i<a MHD$HD)H(HD$H$HHD$PHD$8 @E4$L%IH;q)H(HD$HxXHt$HT$HLA(Ht$HHt$PDL(;A")H(E;);LxP)L;xXb;(H*ESHD$;HxX(;HhP(H;hX;(HG&DHT$XdH3%(Hh[]A\A]A^A_Ð% =HHVH@HT$HD$HHt$HV`HJH9H)H|$HvXHHHDD8a< WH $HL$HHH<$5H $HL$H'DH4$'H4$HT$HH&D#HD$HD$HY@;';HHxLaL`x'L;a;'HH+HHHA$;i'H@ H)HHD$(;HHEHD$HEHD$0HE2'H(;('H5*Hd$;A 'HAHhH@ u<t%= 'HL$A D$$% =uBHHqHPHT$PHtHc$H9LE1&;&H(Ht$PJ;y&HT$8Ht$HB%HT$PH;I&HHH#HfD;!&HY'I1L63HD$;HxX$%HL$0HtQQ;%H|$HL$Q;Qf;%H&@%1HY#;HD$m%H0'$HD$0;H%H&I;1%HHH!HHt$H&;2Ht$0H&H=1%H= 1%H=1$H= 1$"H= 1$DAWIAVAUATUSHHL9 dH%(HD$1;m$;L(c$;HPxHJHHx*N$HcH@HI)IA\;DuMc$$N,;H@J@ % =g#;H@N4#LHK IƋ;Hc#;H@L<#;H@@##H%HAG tIWB}< -t/% =IIwHPH$Ll"Lc;B#;H@Nt(E %A##&EM LeIn;";Hh"IL(HD$dH3%( H[]A\A]A^A_";Hh"H@H@HlfD"H@JHLp ;q"HLH>!H$HfIG;L`A"HL#;I,"LH"LHLcfDLLLcD;!LHH+ H5 L!fAWAVIAUATUSHHl6 ;!;L !;HPxHJHHx*~!HcH@HI)IA,;DmMcT!N$;H@J@ % =*!;H@N,!LH{Iŋ;!U;H@HcHcL4 ;H@L< ;H@@# H"MEHAG < I@XLLg;Lcm ;f ;H@Nt E %AG EM LmIn; ;Hh IL H[]A\A]A^A_;HhMEH@H@HlAG $% =uIH@I@`IGI@X$fD;LD$LD$LHIP`[LD$@kH@JHLh O;ILHHH5tLwUSHH3 ;L[ H THHR1;;;HFH5 H;HH5 H;H,H5 H;vH3H5 H;YHH5 H;<H%1H5 Hf;H/H5HI;HkZH5 H,;HNXH5 H;HTH5 H;HQH5 H;H7NH58 H;qHH5C H;THJH5N H~;7H`GH5i Ha;HDH5| HD;HAH5 H';HH5 H ;HH5 H;HϤH5 H;HrH5 H;lHH5 H;OHH5 Hy;2HH5H\;HnH5H?;HAeH5 H";HH5 H;HWH5 H;HJH5 H;H-!H5 H;gH&H5 H;JH$H5 Ht;-H"H5' HW;HH52 H:;HH5E H;H|H5H H;HrzH5S H;HfH5^ H;H`H5i H;bHXH5| H;EH=H5 Ho;(HH5 HR; H4FBE A(A0 (A BBBH HT`*FBE B(A0A8DP] 8A0A(B BBBD H$,8FBE B(A0A8DP 8A0A(B BBBC H/8FBE B(A0A8DP 8A0A(B BBBC H8 28FBE B(A0A8DP 8A0A(B BBBC H58FBE B(A0A8DP 8A0A(B BBBC H78FBE B(A0A8DP 8A0A(B BBBC H:8FBE B(A0A8DP 8A0A(B BBBC Hh=FBE B(A0A8DPW 8A0A(B BBBJ H?FBE B(A0A8DPW 8A0A(B BBBJ HDA8FBE B(A0A8DP 8A0A(B BBBC LL8DrFEA A(D0 (A DBBK D (A ABBF LhErFEA A(D0 (A DBBK D (A ABBF 8FWFEA A(D0 (A DBBI H(G8FBE B(A0A8DP 8A0A(B BBBC @tJFEB A(A0D@O 0A(A BBBF @\MFBE A(A0D@G 0A(A BBBF $N6ADG gAAH$ N?FEB E(D0A8DP] 8A0D(B BBBK Hp PGFBE E(D0A8DP~ 8A0D(B BBBJ H RFEE E(A0A8DP 8I0D(B BBBI H \VoFBE E(D0A8D` 8A0D(B BBBH <T XwFEE A(A0 (A EBBF H YFEE E(A0A8D@( 8A0D(B BBBH < $[FEE A(A0 (A EBBI H \FEE E(A0A8D@2 8A0D(B BBBF <l (^gFBE A(A0 (A BBBJ  X_  T_ X P_FBE B(A0A8Dp_ 8A0A(B BBBB lxHYxApH0 cFBB E(A0A8D@3 8A0A(B BBBF H| dFBB E(A0A8D@9 8A0A(B BBBH 4 fZBED A(D0@(D ABBH fFEE E(A0A8D@ 8A0D(B BBBG HL g:FEB B(D0A8D` 8A0D(B BBBI H jFEE E(A0A8D@ 8A0D(B BBBG H 0lhFBE B(A0A8DP 8A0A(B BBBH H0ToFBB E(A0A8DP~ 8A0A(B BBBC <|pFBE A(A0 (A BBBF HqnFEA A(G0[ (G JEBI W(A ABBlqBJB E(A0D8DPtXH`^XAP 8D0A(B BBBE D 8F0A(B BBBM HxsFBB E(A0A8Dp 8A0A(B BBBC HpuFBB E(A0A8D@ 8A0A(B BBBD <vxFEB A(A0 (A BBBB HPw8FBE B(A0A8DP 8A0A(B BBBC Hz8FBE B(A0A8DP 8A0A(B BBBC H}8FBE B(A0A8DP 8A0A(B BBBC H4Ѐ8FBE B(A0A8DP 8A0A(B BBBC HăFEB B(D0A8D` 8A0D(B BBBI Hh8FBE B(A0A8DP 8A0A(B BBBC x\RBBB B(A0D8DPXH`_XBPm 8D0A(B BBBB iXH`[XBPrXH`\XBPXH`[XAPH@FEB E(D0A8D@* 8A0D(B BBBN H8FBE B(A0A8DP 8A0A(B BBBC X,|FBE E(A0C8Dp  8A0A(B BBBG cxJYxAp̦FBE B(A0A8DP{XJ`YXAP\XL`XXAPVXK`YXBPyXK`YXBPyXK`XXAPXJ`YXAP 8A0A(B BBBE l "FEB E(A0A8GEWA 8A0A(B BBBA 6GnAԲ dв FBE E(A0A8DP 8A0A(B BBBF  8D0D(B BBBI < 8,FBE A(A0 (A BBBF PL(FBB A(H0 (A BBBJ Q (D EBBJ <OFBE A(H0 (A BBBD LkBBE B(A0A8Ds 8A0A(B BBBB H0FEB B(A0A8DP 8A0A(B BBBD H|FBE B(A0A8DP 8A0A(B BBBD (_EAD ICDGNU .-@:!U @0:!8:!o`  ;  GA+GLIBCXX_ASSERTIONS[>  GA*FORTIFY>  GA+GLIBCXX_ASSERTIONS>   GA*FORTIFY ?GA+GLIBCXX_ASSERTIONS ? GA$3p1067p-p-GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1067p-p-GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1067p-p-GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign GA$3p1067p-p-GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobin GA*GOW*GA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3a1??GA$3a1??GA$3a1 GA$3a1HM,0.bN )0.m#9Bint@it3"h#p2$x5' 9   # G 9 '] *! Z_ '!B'? %!4W ', )-F 9 ) - -- 9D 9L -0 9~* L(? L< @a, L8 L  h# LV L7 L^J !L  @~ ) Or7 l8   zVH z9 9= c =  !GR(T#JU# qV,B(vnx@x@'y-'z@] |- G@5GPG3B 1-(C )ER;Fa G L 9'73H  (=$5"  XL-65J2F$ -abF"[ Am !!6Y=! !-!  a+  M +@\+7 =W@ l* *  - -  AWF  ( %."2 8M@%C'Z `ul->01=@2G @ARf .@@9~; Aer xMZ+ @ .map.:  R@> 9@R >-r x@ X>D-p7/(A;YN,ZT?L 9+!2 F'( @@k!)HB 9z3S2 t @L uMN 8 C:/;r? A @M,B @Ct G CI/JrKt  OQ CQ/Rr!S @LT4Uau c 2d ^ eQ n gZ Y C[ % ]G,6h u l NnL30o @t v cAw @( x- p3 5 '< 8@D _rtL %AV ;i Op fHy @ 9$ 5& @( @* @0 @ e={  |  @     9@ - - rK -t!K S1$-L2 @@7 @; @-Nk8 1=  M   9  h:  m   <   !( ( 2 H? C =:(? "= = / !t !XF(!n!L!)  Z  g1     *3  ( B3 3 = $GH H R M] ] g  r  }     -          #  8  M  b )?( !F{bl bI r-J r 9 9 9L/ 4W:B! 9K.&J0 f;5 n=I>@ r0A ~ C @$'E f( J 0>N8-P @[H8\XD)]h!8jx! 9- 9nL8 @LpL8 @L| @4H]I6 @)7 @   H --> .-=!1 ! -\H! K  !@'- &J'- &!1'- &0G'- &W'- &;'- 'C6"?'C6#$COP%2 'copP(y!c!(z7!)(z7!(zP!&(zzN(1(z-  (5(z- (_>(z- (J(z- (!1(z- (0G(z- (W(z- (;(z- !(zC6"!?(zC6#!O(}6$! (zN(!H( -0!%( 68!s&( 6'- &J'- &!1'- &0G'- &W'- &;'- 'C6"?'C6#' 7(<' 70!0'zN8!='6@! ' 'PH!` 'YPP!05' 7X'%< $ JP'U!c!'7!)'7!'P!&'zN(1'-  (5'- (_>'- (J'- (!1'- (0G'- (W'- (;'- !'C6"!?'C6#!' 7(!<' 70!$' 78!' 7@!9'' 7H%G b) %)f7)#6*Iop)$78)%6# )'6J)(6 )*d( ),u60!)-u64J)/d8)0u6@)1u6D#)36HD)4KP%)5KXC1)6K`n')86h):dpSG)<dx)=d7)AC6)CM;)E7!+)H!P=)KXG)LXG>7)N7TI)O7:G)^d6)`C6bM)aC6>)b60)nC66)u86JI)z7+){7^7)}X!)~69)d=)6+I)<+$!)6+ )6+)XG+$)d + )d(+ .)N0+($))8+^*))P+ ))h+Z2)5+s )5,ISv)6+)d+9)7,Ina)+?)+])+-)6 +()6(,Irs)60+)68+)6@+)6H+2)P+J)6X+lI)6`+*D)6h+)7p+)Wx+_#)W+9)U+%)6`+A)"=h+@)7p+xC)7x+J)7+0)6+L-)6+E)-+ )+5)d6+F)C6+ )7+)7+;)7+)6)d )c;)/c")=+d~>)?K "L)@- )B6C)D6)F@^)I@n)JK T )K6(p)L60:?)M68,)N-@@)OHR)P6PO)Q6Xt)T6`!)UdhB)Vp)X7x)Y7y!)Z7z)[7{)\7|w)]7})^7~)_71 )a-w)b6 &)dW)fu6I)hu6)lu6D)o@)pdy)s6g)t6@)u6s>)v6*)w6M)z6UD)}65)6 )6}J)6V)6&)6^?)6)6)d )78c()7@H)6H&)6PC)6X")6`)6hK)6pE)6x&)-P)B>)7 )7`0)7)7K/)XF)@)@5)-LA)dc:)-)6Z()6F+)69)@$)u6N)7@A)73)d6)@ )u6G)u6|A)eL:)7=) e)t )Bp)Nxg)zNN)zN2)B:)@)6*)7)76)7y)7O)?(")?)3<)3-Ian) 6(M) 6 -)6u+)6T8)6<)K  )-&)9)!et8)#6`K)%6d)' `hA))6pj>)+u6xp(),zN4 ).zN>6)/zNtK)1zN!)3zNnE)6-()7-)8-)96?@):C6%);7 )=C6 8)>72?)F7F)G7 )L0cG3)N7])S4Q)W@,)Y7P=)[-VB)\6f)a6G&)b6k5)c6  H)d6 ")f6 )g6 x5)j6 M)k6( )l60 @9)m68 b))n6@ h?)o6H 3)p6P -2)reX K)s/e pJ)t/e( ;)u6 ()v6 x))w6 6)x6 ))y6 $)z7 ;)|7 5)}I ;)~ + )?e O)C6 @)7 L)7 =)6 2$)6 F)Oe ~,)6 C)  )6( ?)60  )Ue8 ,)zN@ )zNH >)[eP 6)7X )7` k )9h "7)aep d)aex J)6 Z)6 I)6 1)6 ()6 d)6 /)c )6 4)6 AJ)L )1` 2)1` ~+)1` t1)T` -)a`  )`  )7  /)7 G )6 l )7 ')6 )7( ?)ge0 N)d8 ){c@ #F)id K) me ) @ /#)_ ')"se wN)-hN )/ $SV%O ))%sv*)5*/*6:*6 *;$AV%P *%av*F*5*>/*6:*6 *D>$HV%Q R*%hv**5*N?/*6:*6 *>$CV%R *%cv**5*>>/*6:*6 *==%S * ^!*4+!5*=!/*6!:*6 !*?$GP%T @+%gpP+ +G+ 6++ tN=+ Bj.+ 6P+ 6@+ 7 <+ 6(>+ B0 + 68&=+-@&.+-@/+ @H$GV%U +%gv*<,5*=/*6:*6 *4='io*,!5*?!/*6!:*6 !*T?#%W , `(?,!2(CY bG`(U-!b( C6!&)( C6!=( d6!O( u6!( u6! 2( u6 !x9( X! P( XG!(K !J( u6(!5(X0+1%Z b-0,-0, )A, [C, d66N, +, C6(#, K, 6 =, -($XPV%[ -'xpv *,.!<8*7!-.*A!S*!j*/AK%\ 9. (*.!<8*7!-.*A!S*!j*TA!I*@ !%] . h (*.!<8*7!-.*A!S*!j*yA!o+*@ %^ . 0*`/!<8*7!-.*A!S*!j*A!I* @ !(* t@(%b m/L(- /<8- 7-.- A<- KI- K)0- 6 %c / . 0<8. 7-..A=5.|.%d 0 J0*4{0!<8*57!-.*5A!S*5!j*5A!I*6@ !(*7t@(%e 0>Nh/ L1<8/7-./AS/j/O_6/7 :/AO(c/cO0/O8./-@8 /OHV/BPwB/6X%/A\6A/u6`;%h Y1 *^d2!<8*_7!-.*_A!S*_!j*_B!I*`@ !T&*b.=(!O*o*x -p! *y 6x!-<*z !*{ C6 1%i v2d2,@, 2, ZI, Z$, ZnD, ZB, Z L, Z($B, [0, Z8$ANY%j 2.any%3/q% /Q#%6/D%6/%6/%6/6%7/!%7/X"%-/%K /A% u6/ % 6/% </%% M/E% L/7% 7/% /2E% 07 D>%{4!J%|_!E%}! %~ a%l +4 H=0%4!!0%_!% M!% M!%_!%_ !%_(%m 4 l$(*b4!9*c6!+*dM!t2*e*7!*f*7!,&*g6  %q 40?5,0 K!0&N&0' 6;0( 6$PAD%r ) %s Y5(0+50, K0-N|0. K0/zN9&00 6  %t 5 00L86N0M- >0M7)0MN(;0M660M6S00M6 H0M@$*40MC6([0MC6)#I814#U81!C6#I161GS6#U161d6#I321@u6#U321-6066616FG161< 69%w 6M%y u )6 66 + ) F* 7*7*7 U 7:L218+23@26 - 27 -A28 -929 - H42: -(2; -0.2< -8t#2= -@2@ -H2A -PK2B -X~62D8`I2F8h62H@pb2I@t/2J x=2M2N4&2O8y@2Q8 K2Y $2[82\9K2]8h2^ K2_ -I2`@ 2b9>L36722+  8 678 9 8 $ 8  99 9W4*9 864*9 4*9b55 @_91T95_9a55 @5_9#6<9 lm6>9 9!6N9 77 i68:-E8 u6F/8 -E/8 758 6i6893-*:k,X#& (lC.!{=g -! Z   ieJ*:#HE*:%he. :?.$ "=.% @~.)gU#HEK*:%hek .-;6..6./u6>.58*;*-!*<"*MS*Yx!*6!*=G*69*=*(=*.==9=<897-.9AS9j9C+9uD LH9C(.970H968e*9K@b9KH9PD9{DX9096`D96di;9h 96p496t#9Dx`9K , 9-%9629KkM9K9K&9K&&9-&39-  9B ; "= : 4+ 9*=*-!*<"*MS*Yx!*6!*=G*69*=*(=*.=  0*>>*-!*<"*MS*Yx!*6!*=G*69*=*(=*.= {0*>*-!*<"*MS*Yx!*6!*=G*69*=*(=*.= `/*N?*-!*<"*MS*Yx!*6!*=G*69*=*(=*.= /4*?/*-/!*</"*M/S*Y/x!*6/!*=/G*6/9*=/*(=/*.= L14*t@/*-/!*</"*M/S*Y/x!*6/!*=/G*6/9*=/*(=/*.=52*@/{"* Y/=* 7/9* 6/L* 75I*@/%2* </5:* M/K* @/* 7 :5O*)A/* )A/,*  U-4*TA/5%*/[*-4*yA/5%*/[*-4*A/5%*/[*-4*A/5%*/[*-4*5A/5%*5/[*5-r;*: 6B*7B * A 44*_ d6 C66@9AJ!oG9G!9G!469$G! 9Ccp9@H !mK9@H$!96(B9H0![9-869J!oG9G!*@9 u6!99 u6 me9H6 9 J!oG9 G!Z9 G!9  6!L9 -69Jval9 @689dK!oG9G!9Gme9HB9Hcp9@H !F 9 7$! 9 @(!'9" @,!9# -06(9&K!oG9(G!-9)Gcp9*@H!mK9+@H!9, -!@9- u6 !9. u6$6`91L!oG93Gc194 @c294@ cp95@H! 96 6!497 6!Y898 u6!'99 u6 !F 9: 7$A9;H(B9;H0me9<H8!F9=L@!<9>LNC6L 9 6h9A}M!9B 6cp9C@H! 9D 6!49E 6 c19F @c29F@!!=9G -!(9H - !'9I @(min9J @,max9J@0A9KH8B9KH@!F9LLH!<9MLV4h9>N/793H/:9 ^G7yes9MH/ 9 fH/9H/29H/#9I/ 59AJ/~59J/9J/.9$J/G9/dK/n9?K/v9NL 9QG>N[N 9 $9_Gy$;K9 <,#0K0!NF:0"N0# N0$ N L5 ?50NE0 N0%N N N N 50MO;0M7N+0MB/AO5%/[/-/cO5/7/2/Oo)/7/ B/Oq6/6B/@/O/B /' P K'zNsv'6iv'<uv'M B'O7P*7  P P4'YP/&'7/_E' zN/V-'64' ~P/`%' 7/0'  zN+0<1Pd<3 -$/<4 -1@<6 rhG<7 ~;<8 -'<9 - RA<: -(q =*)Q1=, -+=- -+=. ~@=/ K "^;>HQ2>MQ+u>VQ+k>[Q+)8>bQ+>i+U*>nQQ89Q89Q89Q89wJH?+RR?- -d ?. -l?/L?0L?1L ?2L(R<?4L0A?6L8M?89@P@h U!0@j-!9 @k -!@qU!@u-! @v - !U@yP(!@z-H!FC@{ -P!@}UX!$@`!c&@-!K%@ -!@$U!P>@@!@-!|@ -!:@k!P6@-!@ -!>2@*U!07@@!~G@BI@-@ -"@0U@~P@-HE@ -Pt @6UX@`.@-5@ -M@ 7X;A? 7`A@ 6hM"AA d6p,AB d6rAC u6t1AD 6x{&AE u6AF u6'AG MKAH MMAI7EAJ C6%AK d6./AL u69AM 76AN 6AO_> AP 6w,AQ -{IAT -xIAU -9"AV -MAW -%AX -dAY --A^ 6&:A_ d6y-A` C6Aa C6+3Ab 7+Ac .=+;MAd 6+Af _+Ag _@+DAh C6T+t-Ai C6U+9Aj C6V+9Ak C6W+=Al XX+ Am `+KAn 6`+i2Ao 6d+@Ar<h+MAs<p+Atx+L)Av7y9*Ax-x9Ay-x9zAz- x9 <A{- x+.A}7{+A~ C6| [ J[ [:_ 9u6_ 9JA[ 3 _  _ %`!%*7!*%$`!J%$` _(%Q` ` "`@1`*7%R>` D`T`*76%S`D%Un` t`7`*76H%V` ``*7`1`A%u`C%w`%y`%{`/%}`7%`%`lA%`%`4%`:%`D#%`ba 9Ra+%%ba'%`B%`%`H0%`D%`%`W3%`Y%%`/%`%`%`% N6'% N6=% N6:b 9@*b}%:b%`ib 9Yb %ib%ib%_9Gb1b9>%b$%rBhB%rBU%rBZ1%rB!b1N%b%rBc1qF% c %`*-%nc+ xDM;B*"%_9 JH%Fcpad%Gc)c 9&*%Pc cc*77o=%ac cu6c*766+%fPF %gd d7+d*77%hc2%iEd Kd@id*7-aU%l` %sdfn%t 07ptr%u >%vvd 2 u6 nZ [N >N _-d 9  @<d 9  d 6e 96/e 9 6?e 9C6Oe 9 4 7 TU 9 - 6e 9"7%p6%p6B_94B&_9ce1?Bede1 Bce B6_6e1e,B ep6f1fH7B fB ` B eN6Rf1Gf8B Rf.C&6C(*7 C-6%C179C472CK9\CCL9(CX6C[d+KC\@@C]@*Ca<7Ce6?Cf6!CiLC6-*C6TLC@d-C@6C8d_9C7ACM&C6C)C7!g 9 CgF8%4`F%6`g 9gBDgq2g 9gD gN6h 9h%N h75h1*h1)%b5h3%c5h_"%d5h-%e5h1%f5h@%g5h 4%Zh7nv%ZY7u8%ZhhC6h 92%Zh4%[h7nv%[Y7u8%[hh%[hi 9:i:t4FiKDExi*minE!*lenE!BE3.Exi>/Exi$!i 9E)i"#EiE9+E E .+Ei+Eh iiEi"u0E!HjE#-Y=E$ $%E%,>BE&.*mapE' .0 E(i;: ,l,;6*p<>61?6 @7 OKA6( C-0D-4.E-8?F,l@ #H-H8J6P#K -XKL `ms" @!?UK  _w@.  *7Acv BA=B6  @Cax u6zD~5 6Esp 6D u6FH  gG zzH zmIU  IQ gIR _IX ZG% zzG, zzG3 zzHI zmIT IQ GP zzHf z7nIT @IQ pGm zzH zpnIT hIQ G zzH znIT IQ p@G zzH znIT IQ @ G zzH zoIT IQ =G zzH zToIT oIQ ;G zzH zoIT IQ pgG zzH1 zoIT  IQ peG8 zzHN zoIT PIQ 0bGU zzHk z8pIT IQ ^Gr zzH zqpIT IQ [G zzH zpIT IQ @G zzH zpIT IQ pXG zzH zqIT @IQ 0UG zzH zUqIT pIQ QGzzHzqIT IQ OG zzH6zqIT IQ G=zzHSzrIT IQ `GZzzHpz9rIT 0IQ 0GwzzHzrrIT `IQ GzzHzrIT IQ GzzHzrIT IQ pGzzHzsIT IQ GzzHzVsIT IQ `GzzHzsIT IQ PtG%zzH;zsIT IQ GBzzHXztIT 0IQ G_zzHuz:tIT XIQ G|zzHzstIT IQ 0GzzHztIT IQ P6GzzHztIT IQ p4GzzHzuIT IQ 2GzzHzWuIT 0IQ G zzH#zuIT `IQ G*zzH@zuIT IQ PGGzzH]zvIT IQ GdzzHzz;vIT IQ @wGzzHztvIT IQ qGzzHzvIT (IQ piGzzHzvIT PIQ NGzzHzwIT xIQ .GzzH zXwIT IQ 0MGzzH(zwIT IQ `G/zzJ?zK-X `{@. X *7AcvX BB6 Z @CspZ 6CaxZ u6L~5Z 6LZ u6[YM3zL ^ Ls` 6L(b @7/L&c 6M3yD@Ccbv{M4ayF{DY; @L -75Hz4yIU~IR1GzzNzITIQwIR2GzzHzyIT|GzzHzyIT|H1gyIU~N 1gIU~ITM041zLz <`ZGzzG zzN% zITvIQ|GzzGzzGzzH%zuzIT~IQ2G5zzGDzzGYzzGazGzzGEzzGPzzGmzzO#{L| HG zzGzzPyp3Z L{QyGzzGzzGzzH9  {{IUIT 6G> { 2lKK? 0Mp~@. ? *7 Acv? BOGB6 A @CspA 6CaxA u6L~5A 6LA u6M a}L E PLL,G -O,N|Ccbv{G=NGMzzGMzzGMzzHMz}IT}IQ2GMzzG NzzGNzzH,N{F}ITvIQ2GeNzzG}NzzO=N}LS HGDNzzGONzzPyWMA }QyGMMzzGWMzzGlMzzNN {IU~IT K( .Ѐ@. ( *7  Acv( B` X B6 * @Csp* 6 Cax* u6  L~5* 6 L* u6 ML . 5 1 L(0 @o k L&1 6 M&Ccbv{{ MyL8 <  G/zzG0zzN0zITvIQ|G9/zzGc/zzGr/zzH/zITvIQ2G/zzG/zzG/zG/zzG50zzG@0zzG]0zzO0^L: HV T G 0zzG0zzPy.P* Qy| z G.zzG.zzG/zzN0 {IU}IT PK# N>1@.  *7 Acv B B6  @Csp 6r p Cax u6 L~5 6B>L u6MzL  M(Ccbvd{ HWOˁIU}HjO,{IUvIT0IQ0HvO9{IUvIT0IQ0NOF{IT0IQ0GOzzG)OzzG8OzzHHOzlITvIQ2GOzzOvOL# HA?G}OzzGOzzPyNP QygeGNzzGNzzGNzzNO {IU}IT PK pi8@.  *7Acv BB6  @Csp 6][Cax u6L~5 6L u6~|ML  LX, 6 L( 6ZRMCcbvS{L#TG\jzzHgjS{xITGjzzHj`{ITIQvIR2Hjm{„IU}GjzzGjzzGkzzGkzzHkS{ITvGlzzH lz3ITGWlzzHdlz{]ITvIQ0GlzzNlz{ITvIQ2GizzG jzzGjzzH)jzȅIT}IQ2G9jzzGkzzOk(L HG kzzGkzzPyip QQyGizzGizzGizzNl {IU~IT ;K-F q8@.  *7Acv B B6  @Csp 6Cax u6L~5 6H@L u6MLL  LH 6LFL( 6M CcbvA{LFB!RHGqzzHrS{ITG+rzzH@r`{ITIQvIR2Hvr{+IU}G}rzzGrzzGuszzGszzHsS{wITvGszzHszITGszzHtz{ƈITvIQ0G'tzzN7tz{ITvIQ2G|qzzGqzzGqzzHqz1IT}IQ2GqzzGUszzOrL HGrzzGrzzPy=q QyG3qzzG=qzzGRqzzNHt {IU~IT LK}% @w@.  *7Acv BWMB6  @Csp 6Cax u6L~5 6rnL u6M :L  L( 6=5MPF).@@F_.@DL/Hx{?IU~ITwIQDH(x{WIU~G9xzzHGx{IT|IQ~ $ &GxzzNx{IT IQ0GwzzGwzzGwzzHxzIT|IQ2GQxzzH\xzIT|GfxzzGxzzOnxL HGuxzzGxzzPy{w Qy;9GqwzzG{wzzGwzzHx {IU}IT PGx{K g{@.  *7b^Acv BB6  @Csp 6Cax u63'L~5 6L u6M@ĎCenc {JHMp7Ctmp <omG\zzG~zzGzzHz)ITvIQ2GzzG$zzG;zzHM{vIT}IQ G{G{Hċ{IUvN{IU Oċ L HGˋzzG֋zzPy 2QyG݊zzGzzGzzN' {IU}IT  iK) P@. ) *7Acv) B"B6 + @Csp+ 6Cax+ u6L~5+ 6+#L+ u6ML:/ -L_1 @x t L(3 6 M.CemhF!B-+"%"M@L{""Csv 6""Cpfxi/#)#EbmhL @##Ci @##MPCc+%%%MӑL9iv%t%P\zp RmzSz$Q1z%%R%zQz%%P\zЍQmz%%T\z1Qmz& &T>zfQOz5&3&P\zÏP RmzGyzzGpzzH{ITIQ}H{ڒIU H{IUH{IU1$GzzH{4IT0GzzH |nITsIQ IRG8zzH\|ITIQIRIX$IYsGzzH#|IT @IQ0NА{IU hS>zll QOz`&^&GzzGzzGzzH zwITsIQ0IR2GzzGBzzGRzzHbzIT}IQ2GzzHzIT}GzzGmzzGzzOML H&&GzzGzzPy+ vQy&&GtzzGzzGzzN {IU~IT  HjK~E @.  *7&&Acv B' 'B6  @Csp 6''Cax u6''L~5 6F(B(L u6((MΗL @((D( -D& 6Cret ) )GjzzGzzGzzHzIT}IQ2GzzGґzzGڑzH0|<IU}GzzGzzHznIUGzzGzzH,=|ITvIQ}G]zzGdzzGuzzO,L$ HE)C)G3zzG>zzPy- <Qyk)i)G#zzG-zzGCzzN {IU}IT K[< 6@.  *7))Acv B))B6  @Csp 68*2*Cax u6**L~5 6++L u6n+l+ML  ++L( @++L& 6,,M@ǙL <V,R,GzzGOzzN]zITvIQ|G zzG3zzGBzzHRz ITvIQ2G\zzGqzzGyzHJ|JIU|GzzGzzGzzG-zzOғĚL H,,GٓzzGzzPy͒ Qy,,GÒzzG͒zzGzzNq {IU}IT PKH 2@.  *7,,Acv B --B6  @Csp 6--Cax u6.-L~5 6..L u6..M0L  3///L( Lo/i/L& 6//M xL <//G3zzG?4zzNM4zITvIQ~G2zzG#3zzG23zzHB3zITvIQ2GL3zzGa3zzGi3zHt3W|IU}G~3zzG3zzG4zzG4zzO3uL H.0,0G3zzG3zzPy2 QyT0R0G2zzG2zzG2zzNa4 {IU}IT PK p4@.  *7{0w0Acv B00B6  @Csp 6!11Cax u6v1j1L~5 622L u6W2U2ML  22L( @22L& 633M)L <?3;3G5zzG6zzN-6zITvIQ|G4zzG5zzG5zzH"5zmITvIQ2G,5zzGA5zzGI5zHT5d|IU|G^5zzG5zzG5zzG5zzO5&L Hw3u3G5zzG5zzPy4` OQy33G4zzG4zzG4zzNA6 {IU}IT PK  P6I@.  *733Acv B43B6  @Csp 6j4d4Cax u644L~5 6M5I5L u655M0L  55L( @66L& 6N6J6M`ڡL <66G`7zzG7zzN 8zITvIQ|G6zzG6zzG6zzH7zITvIQ2G 7zzG!7zzG)7zH47q|]IU|G>7zzG7zzG7zzG7zzO7עL H66G7zzG7zzPy}6 Qy66Gs6zzG}6zzG6zzN!8 {IU}IT PK@ 0@.  *7 7 7Acv BN7F7B6  @Csp 677Cax u687L~5 688L u688MPCL  #99L( @]9Y9L& 699ML <99G1zzG_2zzNm2zITvIQ|G1zzGC1zzGR1zzHb1zϤITvIQ2Gl1zzG1zzG1zH1~|IU|G1zzG2zzG 2zzG=2zzO1L H ::G1zzG1zzPy0  Qy/:-:G0zzG0zzG0zzN2 {IU}IT PK @.  *7V:R:Acv B::B6  @Csp 6%;#;Cax u6R;H;L~5 6;;L u6<<M_L  d<R<L( 6'==M0ۧL==Ccbv{+>'>GzzH|@ITIQ IR0Hʟ|eIU}IT Hҟ|}IU}H|IU}ITGzzHS{IT|GU|Ge|GzzGDzzGSzzHczIT|IQ2G zzHzDIT|GzzGuzzO'L Hc>a>G.zzG9zzPyݞ ͨQy>>GӞzzGݞzzGzzN {IU}IT PKs @. s *7>>Acvs B>>B6 u @Cspu 6R?P?Caxu u6?u?L~5u 6"@@Lu u6u@s@MeL y @@OKCcbv{@@GP|GzzG)zzG8zzHHzWITvIQ2G}zzOPL H@@GWzzGbzzPyǠpu ӪQyAAGzzGǠzzGݠzzN {IU}IT PKG$@ @. @ *7EAAAAcv@ BA~AB6 B @CspB 6AACaxB u6B BL~5B 6BBLB u6CCM`˭LY=F 6BC>CLV H 6|CxCLFJ 6CCL3L 6CCL(N 60D&DMdFBc F3 cLB?d -DDLPe -5E)ELf -EECbpg -3F!FL!h -"GGG{HtdIU|H{IU|GzzHz6ITIQIR2GzzN$zIT|IQIR2G=zzGXzzGnzzGzzGzzHzIT}GzzOLn HGGGzzGzzPy0B 9QyH HGzzGzzGzzGE{NT {IU}IT K7PtR@. *76H2HAcvBHoHB6 @Csp 6PIHICax u6IIL~5 6JJL u6JJMϱL  -K)KL9 @gKcKF)'@@F_( @DCpos)KKL*KKL+DL@LLK(,LzLL-@LLL-@7M-MCcnt.@MMGtzzGtzzG uzzHuz`IT}IQ2G+uzzGNuzzG^uzzHnuzITsIQ2Hu{ȰIU}ITwIQDGvzzG9vzzHGv{IT}IQs $ &GRvzzH]vz+ITsGjvzzHuv{VIT~ $ &GvzzHvz{ITsGvzzGvzzGvzzGwzzNw|IT|IQ|IR2Pyt Qy&N$NGtzzGtzzGtzzH7w {DIU~IT _GS{ITvGUzzH`zITGzzHz{ϼITvIQ0GǯzzNׯz{ITvIQ2GzzGJzzGYzzHiz:IT}IQ2GyzzGzzOELH~\|\GJzzGUzzPyݬ ýQy\\GӬzzGݬzzGzzN {IU~IT K$H`8@. `*7\\Acv`B]]B6 b@Cspb 6]]Caxb u6]]L~5b 6B^:^Lb u6^^ML f ^^LdLh6F_@_L(j6__MtLf/ __Ccbv{v`p`Cset@``GܰzzHS{hITG zzH `{ITIQvIR2HV|IU}G]zzGlzzGUzzGszzH~S{ITvGzzHz#ITGײzzHz{MITvIQ0GzzNz{ITvIQ2G\zzGzzGzzHzIT}IQ2GzzG5zzOL{H``GzzGzzPy`b AQy#a!aGzzGzzG2zzN( {IU~IT KCA08@. A*7JaFaAcvABaaB6 C@CspC 6bbCaxC u6FbeGʴzzGմzzPy] C QyfedeGSzzG]zzGrzzNh {IU~IT K3"`8\@. "*7eeAcv"BeeB6 $@Csp$ 6\fZfCax$ u6ffL~5$ 6gfL$ u6}g{gM@L ( ggL*6hhL(,6YhQhMpFLhhCcbv{8i2iGLzzHWS{:ITG{zzH`{lITIQvIR2Hƺ}IU}GͺzzGܺzzGŻzzGzzHS{ITvGzzHzITGGzzHTz{ITvIQ0GwzzNz{ITvIQ2G̹zzGzzG zzHzIT}IQ2G)zzGzzOL<HiiGzzGzzPy$ QyiiGzzGzzGzzN {IU~IT /K8@. *7iiAcvBj jB6 @Csp 6jjCax u6jjL~5 6Gk?kL u6kkML   kkL 6KlElL( 6llMLmlCcbv{{mumGzzHS{ITGzzH`{ITIQvIR2H&$}IU}G-zzG<zzG%zzGCzzHNS{9ITvGezzHpz^ITGzzHz{ITvIQ0GzzNz{ITvIQ2G,zzGZzzGizzHyzIT}IQ2GzzGzzOUSLHmmGZzzGezzPyp |QymmGzzGzzGzzN {IU~IT sK3O@. *7nnAcvBXnLnB6 @Csp 6nnCax u6ooL~5 6ooL u6ppML  =p9pL6ypspL(6ppM@Ccbv{,q&qGPzzHPS{ITvGPzzH Q`{'IT~IQIR2GQzzGQzzGeQzzHpQzfITvGQzzGQzzNQS{ITGLPzzG{PzzGPzzHPzIT~IQ2GPzzG}QzzO3Q9LHwquqG8QzzGCQzzPy P bQyqqGPzzG PzzG"PzzNQ {IU~IT K,Q8@. *7qqAcvB rqB6 @Csp 6rrCax u6rrL~5 6;s3sL u6ssM]L  ssL&6?t9tL(6ttML t!ttCcbvv{ouiuGRzzHRS{ITG SzzH S`{$ITIQvIR2HVS1}<IU}G]SzzGlSzzGUTzzGsTzzH~TS{ITvGTzzHTzITGTzzHTz{ITvIQ0GUzzNUz{ITvIQ2G\RzzGRzzGRzzHRzBIT}IQ2GRzzG5TzzOSLHuuGSzzGSzzPyR QyuuGRzzGRzzG2RzzN(U {IU~IT K10U8}@. *7vvAcvBLv@vB6 @Csp 6vvCax u6wvL~5 6~wvwL u6wwM L  3x-xL6x|xL(6xxM gL.ce9y/yCcbvd{yyGVzzH'VS{[ITGKVzzH`V`{ITIQvIR2HV>}IU}GVzzGVzzGWzzGWzzHWS{ITvGWzzHWzITGXzzH$Xz{@ITvIQ0GGXzzNWXz{ITvIQ2GUzzGUzzGUzzHUzIT}IQ2GUzzGuWzzOV LHyyGVzzGVzzPy]UP  4Qy#z!zGSUzzG]UzzGrUzzNhX {IU~IT K-pX8@. *7JzFzAcvBzzB6 @Csp 6{{Cax u6F{<{L~5 6{{L u6:|8|M@ /L  v|p|L|6||L(6}}Mp LHMQ".|}r}CcbvS{}}G\YzzHgYS{ITGYzzHY`{ITIQvIR2HYK}IU}GYzzGYzzGZzzGZzzHZS{ZITvG[zzH [zITGW[zzHd[z{ITvIQ0G[zzN[z{ITvIQ2GXzzG YzzGYzzH)YzIT}IQ2G9YzzGZzzOZtLH@~>~G ZzzGZzzPyX  Qyf~d~GXzzGXzzGXzzN[ {IU~IT K<h@h\@. h*7~~AcvhB~~B6 j@Cspj 6\ZCaxj u6L~5j 6Lj u6}{M@L n L9p6\VL(r6MpFL< Ccbv={G,zzH7S{-ITG[zzHp`{_ITIQvIR2H|wIU}GzzGϜzzG|G՝zzGzzHS{ITvGzzH zITGWzzHdz{ITvIQ0GzzNz{ITvIQ2GzzGڛzzGzzHzIT}IQ2G zzGzzOLHGzzGzzPymj QyGczzGmzzGzzN {IU~IT KJ[8@. J*795AcvJB~rB6 L@CspL 6CaxL u65+L~5L 6LL u6)'M L P e_L?R6L(T6M0 L+ukaCcbv,{ކG\zzH\S{ITG\zzH\`{ITIQvIR2H]X}IU}G]zzG,]zzG^zzG3^zzH>^S{9ITvGU^zzH`^z^ITG^zzH^z{ITvIQ0G^zzN^z{ITvIQ2G\zzGJ\zzGY\zzHi\zIT}IQ2Gy\zzG]zzOE]SLcH/-GJ]zzGU]zzPy[ L |QyUSG[zzG[zzG[zzN^ {IU~IT K?+^8.@. +*7|xAcv+BB6 -@Csp- 6KICax- u6xnL~5- 6L- u6ljM wL 1 L 36L(56H@M L!3%MCcbv{'!G_zzH_S{ ITG `zzH ``{>ITIQvIR2HV`e}VIU}G]`zzGl`zzGUazzGsazzH~aS{ITvGazzHazITGazzHaz{ITvIQ0GbzzNbz{ITvIQ2G\_zzG_zzG_zzH_z\IT}IQ2G_zzG5azzO`LEHrpG`zzG`zzPy_ - QyG_zzG_zzG2_zzN(b {IU~IT K4 0b8@.  *7Acv BB6 @Csp 6Cax u6L~5 66.L u6M L  L}?6:4L(6M LVE%Ccbv {jdGczzH'cS{uITGKczzH`c`{ITIQvIR2Hcr}IU}GczzGczzGdzzGdzzHdS{ ITvGdzzHdz0ITGezzH$ez{ZITvIQ0GGezzNWez{ITvIQ2GbzzGbzzGbzzHbzIT}IQ2GbzzGudzzOc%L&HGczzGczzPy]bP  NQyۏُGSbzzG]bzzGrbzzNhe {IU~IT  KC'pe}@. *7AcvBG;B6 @Csp 6ѐϐCax u6L~5 6yqL u6M@ L  ,(LA06hbL(6Mp gCcbv{GYfzzHdfS{ITvGfzzHf`{IT~IQIR2GfzzGfzzGfzzHgz8ITvG-gzzGHgzzNSgS{ITGezzG fzzGfzzH*fzIT~IQ2G:fzzG gzzOf LHfdGfzzGfzzPye  4QyGezzGezzGezzNmg {IU~IT K"pgc@. *7AcvBB6 @Csp 6Cax u6L~5 6*"L u6M L  ݕٕL,6L(6jbM MCcbv{̖ƖGYhzzHdhS{ITvGhzzHh`{IT~IQIR2GhzzGhzzGhzzHizITvG-izzGHizzNSiS{ITGgzzG hzzGhzzH*hzIT~IQ2G:hzzG izzOhLHGhzzGhzzPyg  Qy=;GgzzGgzzGgzzNmi {IU~IT *K:;D@. *7d`AcvBB6 @Csp 671Cax u6L~5 6-)L u6~ML  L(@ L&6C?ML <}yG=zzG=zzN=zITvIQ}GY<zzG<zzG<zzH<zITvIQ2G<zzG<zzG<zH<z?IU~IT IQ0IR1G<zzGm=zzGx=zzG=zzN=sIU~IT0O:=LHGA=zzGL=zzPy<` QyۚٚG<zzG<zzG3<zzN= {IU}IT PK: =~@. *7AcvBI;B6 @Csp 6Cax u6H6L~5 6L u6M@L  ̝ƝCsv6L(@UOL&6MpUlen Cs -Ccbv{)'H!?zIU}IR0G?zzH@zIT~IQwIR2N:@sIU}IT0MCL <SMGT?zzGG@zzNU@zITvIQ~Gl>zzG>zzG>zzH>zIT}IQ2G>zzG>zzG>zzG>zG4?zzG?zzG?zzG@zzOy?5LHG?zzG?zzPy-> ^Qyڟ؟G#>zzG->zzGB>zzHi@ {IU~IT Gn@{K~@ @. ~*7Acv~BF:B6 @Csp 6ԠΠCax u6/L~5 6L u6wuM4eL  LA6L#6%!L(@_[L&6M4XD1 6Ccbv{H 1gIU}IT~G zzGl zzN zITIQ#`IR2M 5L <c_G zzG zzN zITvIQ}G zzG zzG zzH zIT}IQ2G zzG zzG) zzG> zzGF zG zzG zzG zzG zzO LHG zzG zzPym p4 QyGc zzGm zzG zzN  {IU~IT EK[p@@. [*7Acv[B/!B6 ]@Csp] 6ӥͥCax] u6.L~5] 6L] u6vtM0L a Csvc6L(e@;5L&f6M`Ccbv{Ulen Cs -HAz~IU}IR1GAzzGxBzzHBzIT~IQwIR2NBsIU}IT0M(Lw <93GAzzGBzzNBzITvIQ~G@zzGAzzG%AzzH5AzlIT}IQ2GEAzzGTAzzGiAzzGqAzGAzzGEBzzGPBzzGBzzOBLyHG BzzGBzzPy@] CQyG@zzG@zzG@zzHB {IU~IT GB{KNOC@. *7AcvB, B6 @Csp 6Cax u6٪L~5 6L u6٫׫M 'L   M):CcbvU{MIVE_p_VE_pbVE_peVE_phVE_pkVE_pnVE_pqVE_ptV"E_pwV4E_pzVFE_p}VXE_pVjE_pV|E_pVE_pVE_pVE_pVE_pVE_pPyr@,_7QyQyWyP,XyN}IT}Py,bQyKGQyWy,XyN}IT}Py,eQy QyIEWy,XyN{}IT}Py-hZQyӮϮQy Wy-XyICNk}IT}Py @-kQyQyѯͯWyP-Xy N}IT}Py4-nQy[WQyWy-XyѰ˰N}IT}Py\-q}QyQyYUWy-XyN}IT}Py.tQy߱QyWy.XyYSN}IT}Py@.w?QyQyݲWyP.XyN}IT}Py.zQykgQyWy.Xy۳N}IT}Py.}Qy/+QyieWy.XyN}IT}Py$/bQyQy-)Wy/XyicN}IT}PyL@/QyQyWyP/Xy-'N}IT}Pyt/$Qy{wQyWy/XyN }IT}Py/Qy?;QyyuWy/XyN;}IT}Py0QyQy=9Wy0XyysN+}IT}Py@0GQyǸøQyWyP0Xy=7N[}IT}Py0QyQyŹWy0XyNK}IT}Py<0 QyOKQyWy0XyźN}IT}Ga{GrzzGzzGzzGzzG zzG4zzG\zzGzzGzzGzzGzzG$zzGLzzGtzzGzzGzzGzzGzzG<zzHX{%IUsN`}IU~GzzG2zzGBzzHRz~ITsIQ2GzzO`LVHGhzzGtzzPy& Qy75GzzGzzGzzN {IU}IT PK&Ip,@. *7^ZAcvBB6 @Csp 6Cax u61#L~5 6м̼L u6#!M%L  [YM@%CcbvK{~Mp%DC_pMPy%%MQyQy1-Wy%XymgN}ITvG%zzGzzGzzGzzHzITvIQ2GezzO8JLHG?zzGJzzPy$ sQy߾ݾGzzGzzGzzN {IU}IT PKD@. *7AcvBG?B6 @Csp 6Cax u6L~5 6L u6 M`"L,6N@L6LH@L( eSL&6& M" Ccbv{}oCpep  Cenc -Cspp 6zlVD E_p Ty  y QyH} IU1IT H} IU IT4G zzH2| IT|IQ IR8IX IY0GzzH|9 IT|IQ iIR7IX IY0GzzH-|{ IT|IQ IRIX IY0H,}3 IUIT @!IQ @!HEF{e IU|IT ЈIQ 0HT} IU|ITHj,{ IU|IT IQ H{9{ IU|IT `IQ0GzzH|! IT}IQ IR=IX IY0H }9 IU|Hs}e IUIT @!IQ0GzzHz ITIQ0IR2GzzHz{ IT|IQ0GzzHz{ IT}IQ0G7zzHDz{ ITGzzGzzHz{D IT|IQ2GzzHz{n IT}IQ2H{ IU HH({ IU pH6{ IU ND{IU M#:L <84G0zzG_zzNmzITvIQ|GzzGzzGzzG@zzGOzzH_zITvIQ2GizzG~zzGzGzzGzzGzzGzzOU9LHpnG\zzGgzzPy0" bQyGzzGzzGzzNS {IU~IT Y;Zcbv"{K}C" Acbv#{H_Er}IT0HEe})IT0HEX}@IT0H F}\IT0IQ0H?FK}sIT0HwF>}IT0[F1}IT0G~JzzHJz{ITvGJzzHJz{ITvIQ0GJzzHJz{ITvIQ0GKzzHKz{DITvIQ0G>KzzHKKz{iITvGnKzzH{Kz{ITvIQ0GKzzHKz{ITvIQ0GKzzHKz{ITvIQ0GKzzHLz{ITvIQ2G&LzzH6Lz{;ITvIQ2GNLzzH^Lz{eITvIQ2GvLzzGLzzHLz{ITvIQ2GLzzHLz{ITvIQ2GLzzHLz{ITvIQ2GMzzKn9n@z@8'Alen3@Ccbv{UKGˡzz[}IQTIR Q $ &IX2NkxIU}ITs\_@`"M@)_@Y=_+ @l_?eYLa 6Cencb {Lc@Cid@#FeMOCcm M@#Csp}6D'~ @Mp#<LdEAGozzGzzGzzGSzzG[}GAzzGMzzGU}G^zzGf~GzzGzzH{ITwIQv $ &GzzHzITGzzGzzH"~IT IQ4G2zzHQ|ZIT~IQ|IRvIX IY0G]zzGjzzGzzG~GzzG!(~G/zzNB|IT~IQ~IR1Tzxx6$Q1z}{Q%zQzH5~<IU}GzzH|xIT~IQ|IRvIX IY0G<zzHN{ITIQ G zzHzITvIQ2GzzH#|IT @IQ0Gh{Hv{1IU hN{IU (] 9)\;@0.S]:;UAseq;,Cenc< {YWL%=i|L'>@L,?@^L2B!ldLFC!LD!`ZLKE @\*@|O/@  @'pl@A@9eW@Q Csp6L'@dCret@L@nCcbv{x_M0 LdukGzzGzzGzzGzzG}M` -Ls 6L @{w^p LF/ 6M ,LJ L6-HM Ld*"GzzGzzGzzGGzzGO}M!L  -Ulen Tz *Q1zQ%zQz NB~ITvGZzzGzzzGzzGzzGzzHzITvIQIR2G{G2zzGNzzGozzGzzGzzGzzHM~ITvIQ0G%zzG3zzH@M~>ITvIQ0G%zzG3zzH@M~uITvIQ0GNzzG\zzNiM~ITvIQ0M ! C_sv 63/M`!C_p miGzzNzITvIQ2M!lLdGzzGzzGzzGzzG}HSZ~IU~ITIQ0H^|IU~Hn|IUvGxzzHg~ITvIQGzzG zzGzzH)~9IT IQ:G2zzG<zzGXzzGtzzGzzGzzGzzGzzG zzG(zzGDzzGzzHg~ITIQ~H} IUG(zzG:zzHJt~D IT|IQ4GQzzG[zzGwzzGzzGzzGzzGzzG zzG(zzGGzzGczzGzzGzzGzzGzzGzzG7zzG%zzGAzzG`zzG|zzGzzGzzGzzGzzGzzG:zzGOzzHaz!IT|IQ0IR2Hls!IU~GzzGzzGzzGzzG zzG&zzGIzzGezzGzzGzzGzzGzzGzzG7zzGRzzGnzzGzzGzzGzzGzzG"zzG4zzHBM~&#ITwIQ0GPzzG^zzHkM~]#IT|IQ0GyzzGzzHM~#ITwIQ0GzzGzzHM~#IT|IQ0GzzGzzHM~$ITwIQ0G"zzG0zzH=M~;$IT|IQ0GKzzGYzzHfM~r$IT|IQ0GtzzGzzHM~$ITwIQ0GzzGzzGzzHz{$IT|IQ0GzzG zzG&zzH4z{3%ITwIQ0G@zzGNzzH[M~j%IT|IQ0GizzG{zzHM~%ITwIQ0GzzGzzHM~%IT|IQ0GzzGzzHM~&ITwIQ0GzzGzzH M~H&IT|IQ0GzzG)zzH7M~&ITwIQ0GbzzHu|&IT}IQ}IR2GzzGzzGzzHz{&ITwIQ2GzzGzzG zzHz{9'IT|IQ2G#zzG?zzG[zzGizzHvM~'IT|IQ0GzzGzzHM~'ITwIQ0GzzGzzHM~'IT|IQ0GzzGzzHM~0(IT|IQ0GzzGzzH$M~h(ITwIQ0GzzGzzHM~(IT|IQ0GzzG zzHM~(ITwIQ0G%zzG3zzH@M~)IT|IQ0GNzzG`zzHnM~F)ITwIQ0G|zzGzzHM~})IT|IQ0GzzGzzGzzGzzG$zzG@zzGczzGzzGzzGzzHM~*IT|IQ0GzzG zzHM~T*ITwIQ0GNzzG`zzHnM~*ITwIQ0G|zzGzzHM~*IT|IQ0GzzGzzHM~*ITwIQ0GzzGzzHM~2+IT|IQ0GzzG zzHM~i+IT|IQ0G|zzGzzHM~+ITwIQ0GzzGzzHM~+ITwIQ0GzzGzzHM~,IT|IQ0GzzGzzHM~G,IT|IQ0G*zzG<zzHJM~,ITwIQ0GXzzGfzzNsM~IT|IQ0GzzH|,ITvIQ IR6IX IY0NsIU~IT GFzzGbzzGj}GqzzGy~GzzHy-IUwIT0GzzHz-ITGzzH*{-ITIQ0G4zzH?z-ITHZy.IUXIT0GdzzHoz=.ITGzzzGzzHt~t.ITvIQ2GzzHs.IU~IT GzzGzzGzzGzzG ~G?zzGwzzG(~GzzH/|A/ITvIQvIRGw{K}o3@@Y=cY@A@9@QCsp6+Ccbv{0*M`0Ld|G ~zzG~zzG3~zzGzzG'}G~zzGL~zzGo~zzH~y0IUIT0G~zzH~z0ITG~zzH~y0IUwIT0G~zzH~z1ITwG zzH)yI1IURIT0G3zzH>zn1ITvGOzzHmy1IUIT0GwzzHz1IT|GzzGzz[t~1IQ4GzzGzzGzzG7zzGWzzHj|R2IT~IQ~IR1GzzH|2ITvIQvIR1GzzH|2IT|IQ|IR1GπzzH|2ITvIQvIR1GzzH |3IT|IQ|IR1G7zzHJ|B3IT|IQ|IR1G_zzNr|ITvIQvIR1Kfo6@@_/KG@A@9@Q.&@a.Csp6Ccbv{M 4Ld=7GzzGzzGzzGzzG}GȁzzGҁzzGځ}GzzG~G/zzHTy5IUIT0G^zzHiz'5ITHyD5IU~IT0GzzHzi5IT~Hy5IUIT0GzzHz5IT~Hтy5IU}IT0GۂzzHz5IT}Hy6IUIT0GzzHz36IT}GzzG,zzH<t~j6ITvIQ4GCzzGNzzG_zzJu~GzzG(~GzzGzzGǃzzNڃ|ITvIQvIR6Kg@y?9@g@'h@(iXT@Aj@Cspk6Ccbvl{-'M7LqdyGyzzGyzzGyzzGo{zzGw{}GnyzzGxyzzGy}GyzzGy~GyzzHzyf8IUIT0G zzzHzz8ITH/zy8IUIT0G9zzzHDzz8IT~G^zzzGszzzGzzzHzt~9ITvIQ4GzzzGzzzGzzzJz~GzzzGzzzGz(~GzzzG{zzG/{zzGG{zzNZ{|ITvIQvIR4KcVoW;@VCspW6RDCcbvX{M:L]dB<GozzG pzzGpzzGpzzGp}GozzGozzGo}GozzGo~G7pzzGZpzzGkpzzH{pt~;ITvIQ4GpzzGpzzGpzzJp~GpzzGp(~GpzzNp|ITvIQvIR1KH={G>@=@Y=>@9?c[@Q@@R*A @-)CspB6eCcbvC{M<LHdG{zzG{zzG|zzG}zzG}}G{zzG{zzG{}G{zzG{~G|zzH=|y<IUwIT0GH|zzHT|z"=ITwHk|y?=IU~IT0Gu|zzH|zd=IT~H|y=IU}IT0G|zzH|z=IT}G|zzG|zzG|zzH|t~=ITvIQ4G|zzG}zzG}zzJ+}~G5}zzGG}zzGO}(~G_}zzGw}zzG}zzN}|ITvIQvIR5KLp:B@:UM@Y=@ @95@P{q@<  @@A!0,]9"]Q#]a.$Csp%6iCcbv&{ M?L+dcYGzzGzzG zzGGzzGO}GzzGƖzzGΖ}GՖzzGݖ~G$zzHHyN@IUwIT0GSzzH_zt@ITwHykx@IUIT  $ &GzzHz@ITHy@IU~IT0GzzHzAIT~Hӗy!AIUIT0GݗzzHzFAIT}Hy]AIT0G zzHzAIT}G-zzG?zzHOt~AITvIQ4GVzzGazzGnzzJ~GzzGzzGǘzzGϘ(~GߘzzGzzGzzG/zzGgzzHz|BITvIQvIR6GzzN|IT}IQ}IR1KpF@:@=*=9@.Ayu@@/@1@XTCsp6Ccbv{L6A7MCL dGzzG0zzGDzzGzzG}GzzHǶyDIU -IT1GѶzzH߶~IDIT~IQ|GzzH~{DIT~IQ -GzzG}GzzG~G]zzHyDIUIT0GzzHzEIT}HyEIUIT0GzzHzDEIT}H˷ycEIUIT0GշzzGzGzzHzEIT~GzzG#zzH3t~EITvIQ4G:zzGEzzGVzzJl~GwzzGzzHǸy`FIU$0.(IT0G׸zzG߸(~GzzH|FITvIQvIR5G7zzNJ|IT}IQ}IR1K'jI@:@Y=nf@!Csp6+Ccbv{L 6 M@GLdXRGdzzGwzzGzzGzzG}G)zzG3zzG;}GBzzGJ~HRo,HIU|H]{DHIU|GzzH˿ynHIUIT0GտzzHzHIT|GzzHzHIT~GzzGzzH"t~HITvIQ4G)zzG4zzGAzzJW~GgzzGo(~GzzN|ITvIQvIR3KK@@8+Alen7@woCsp6Ccbv{nhMQJLdG1zzGDzzGXzzGWzzG_}G zzGzzG}G"zzG*~GqzzHkxJIUIT} $ &GzzHzJIT|GzzGɕzzHٕt~KITvIQ4GzzGzzGzzJ~GzzG(~G/zzNB|ITvIQvIR2KC0M@   @&'x p Csp6  Ccbv{  MlLLd  GxzzGzzGzzGzzG}GPzzGZzzGb}GizzGq~GzzHyLIU}IT0GzzHzLIT|GzzGzzH%~:MIT mIQ4G,zzG7zzGDzzJT~G_zzGg(~GwzzGzzN|ITvIQvIR2K4ЈNP@> 6 @&)  AuriA  Csp6 k Ccbv{] W MNLd  G!zzG4zzGHzzGzzG}GzzGzzG }GzzG~GazzHyOIU~IT0GzzHz9OIT|HyVOIU}IT0G‰zzH͉z{OIT|G܉zzGzzH~OIT zIQ4GzzG zzGzzJ/~G7zzG?(~GOzzGgzzGzzN|ITvIQvIR3K:lr R@ Csp6Ccbv{SIM0 QLdGmzzGmzzG,mzzGmzzGm}GlzzGlzzGl}GlzzGl~GEmzzGhmzzGymzzHmt~QITvIQ4GmzzGmzzGmzzJm~GmzzGm(~GnzzNn|ITvIQvIR1Knx0nrS@x8,Cspz6Ccbv{{}M`RLdGnzzGnzzGnzzGoozzGwo}GOnzzGgnzzGon}GvnzzG~n~GnzzGnzzGnzzH ot~MSITvIQ4GozzGozzG(ozzJ:o~GWozzG_o(~GozzNo|ITvIQvIR1KdwU@dh`@8d+Cspf6:.Ccbvg{MPTLldGHzzG[zzGozzGgzzGo}G zzG*zzG2}G9zzGA~GzzHyUIU~IT0GzzHĄz*UIT|GτzzGzzHt~aUITvIQ4GzzGzzGzzJ~G'zzG/(~G?zzNR|ITvIQvIR2KnHOGX@Oia@JO3@:OG7/CspQ6CcbvR{.(MVLWdzGхzzGzzGzzGzzG'}GzzGzzG}G…zzGʅ~GzzH8y.WIUIT0GBzzHMzSWIT|H[ypWIU~IT0GezzHpzWIT|G{zzGzzHt~WITvIQ4GzzGzzGzzJՆ~G߆zzG(~GzzN |ITvIQvIR3K2-?[@-@Y=-(a]Csp/6Ccbv0{ukL=*16M&.YL>d~xGzzGzzGzzGxzzG}V@YE_pKPy3&KYQyQyWy`&XyVPJ}GzzGzzH~YIT|G3zzGzzG}GzzG~GzzGzzG!zzH1t~QZIT}IQ4G9zzGEzzGWzzG_~GzzHz{ZIT~IQ0GzzH%z{ZIT~IQ2G8zzG@(~GPzzHc|#[IT}IQ}IR2N{IU pKg4 b@@Y=*R4@ =dCsp6wWCcbv{D 6Lx6-E=Lr"-D  6DNK 6L=* 6  O0d\L,-!!G~M#x^LAd!!M$\Ld""G>zzGQzzGezzGzzG}M@$]L.A 6w"s"GdGzzHz2]ITHyI]IT0Hy`]IT0GzzNzITwG zzG(}G/zzG7~GzzG zzGzzH-t~]ITvIQ4G4zzG?zzGPzzGX~GzzG(~GwzzN|ITIQIRwPp$aQ""Hr}^IT He}^IT HX}^IT HK})_IT 0nIQ lHK}H_IT H\>}g_IT }H1}_IT G'zzH4z{_IT|IQ0GOzzH\z{_IT|IQ0GwzzHz{`IT|IQ0GzzHz{)`IT|GzzHz{S`IT|IQ0GzzHz{}`IT|IQ0GzzHz{`IT|IQ0GzzHz{`IT|IQ2GzzHz{`IT|IQ2GzzHz{%aIT|IQ2GzzHz{OaIT|IQ2GzzGzzHz{aIT|IQ2GzzH-z{aIT|IQ2G9zzHFz{aIT|GZzzGzzH;d bIUwGzzH~6bITvIQHyTbIUwIT0GkzzJ~GuzzHz{bIT|IQ0GUzzNez{IT|IQ2K2d@C#;#As+##Alen2@$ $Csp6|$p$Ccbv{%%McLdZ%T%GzzGzzG(zzG'zzG/}GٙzzGzzG}GzzG~GAzzHhkxdIUIT} $ &GrzzH}z;dIT|GzzGzzHt~rdITvIQ4GzzGzzGȚzzJޚ~GzzG(~GzzN|ITvIQvIR2\#61g@Y=%%@$%7&&@ 46''Cpos -''Cret6''MfLH 6](W(MfL,@((H΢yeIUvIT~GڢzzH~eIT}IQvGzzH~#fIT}G zzHg~NfIT}IQvG%zzH3g~yfITsIQvGzzNzITIQ2G\zzH||fITIQvIR~IX0IY0NyIUsIT0H1~gIUvIT|`hyIUUIT0\H @ko@  ((@A &6K)G)Csp"6))L># 6 +*L$ 6++L5D% -#,,FM1& Ubr' L0+(@,,L)@o-]-Cret*@I.5.amsg+ -Ccbv,{.//b- -M15jCcnt5 @//L$6 6J0B0M`1hL8d00GhzzG{zzGzzGzzG}OyiCchkI-1 1H~?iIU w~"#H$zzWiIU|N:zITwIQIR2GzzGzzGzzH~iIT IQ2GzzHDzziIU|GzzH|jITvIQvIR1NH{IU M1mL 7` -11M2lCcntm@A272Ln622Ctbo -13-3MP2jLqdk3g3GWzzGjzzG~zzGzzG}Tz`` ]kQ1z33Q%z33Qz33NkB~IU}GzzGzzGzzH~kIT IQ2GzzGrzzGzzHzkIT~IQIR2GzzH|&lITvIQvIR3H,{ElIU H:{dlIU N[{IU +Pz2hlQ1z44Q%z<4:4Qzc4a4NB~IU}IT~H|~lIU~ITwGzzG~H~7mIU~IQ|GzzGzzGzzG zzG(~N{IU VmE_pVmE_pPy2nQy44Qy44Wy2Xy55N }ITPy43~nQym5g5Qy55Wy@3Xy55N}IT~G$zzG?zzGG}GNzzGV~G5zzG@zzGQzzGY~HsoIU~IT0GzzG4zzGgzzGo(~G}zzH hoIT0GzzH{oIT GM{c!6Rsd!m6_6e677 7fobj6b7Z7M7pf_p77GzzN̼IT<OPSqL68 8Ci@Q8I8MpC_p88GWzzNdIT;GoGzzH~pITIQ~GzzH$qITGžzzN|IT|IQ jIR8IX$IYvGּzzH$xqIT|GzzH1qIT AIQ1G zzH>qIT}IQ~G"zzH-{qIT~G7zzH]|>hs-R>N>`~IUUITTcM @ kxd_->>`I{IUUc 6Zyhs->>hlen ??fsv6r?l?GzzH xIT0GzzNŔ|ITsIQ|IR}c6y6yhs-??hlen@ @fsv6a@_@GyzzN(y{ITsIQvi+Lyj. *7ksv6lmrc6nSM6yksv6nu6zj.  *7oJ>zj 9j j%-nK1Z\zj$1Zn.'"Nzzj$"Np%%G`pHpaaH/ p Hp&&)p\D\DH p22HpLLH pEBEBH pLJLJH p1111Hz pBEBEHbqCLCLp99H pDD3p pGG}p##H pAAH( p~~Tp55H~ pPp)()(pDDpSSH p@"@"H p=<=<H pH p Hp--H pHpIIH p$$HpHpP P p=(=(H pp&&p88p00pt:t:pE E H p!!dp%%pKK\p**Hn p77p@@rp qpDNDNmr00rFFp//rpX@X@pzzypEEupGpDp``@pD*D*HF pp##H p4444pp  p//KpxxH p++Hp!!H pHB pIIHpt t H p<<HpLLIsJ@JpHpB.B.p##H pXXHp H pkkHrXXHp++H r''Hr>>Hr  Hr  Ir$ $ I p ,p11/po3o3HpHpN9N9Hpi i H{p99H p::H pH"% : ; 9 I$ > $ > &I : ; 9  : ; 9 I8 I !I/  I <  7I : ; 9  : ; 9  : ; 9 I&> I: ; 9 ( 'I'I: ;9 I : ;9  : ;9 I8  : ;9 I8> I: ;9  : ; 9  : ; 9 I4: ;9 I?<4: ; 9 I?<  : ;9 ! : ;9 I8 " : ; 9 #: ; 9 I$: ;9 I% : ; 9 & : ; 9 I 8 ' : ;9 ( : ;9 I 8 ) : ;9 * : ; 9 I8 + : ; 9 I8, : ; 9 I8- : ;9 I8. : ;9 / : ;9 I05I1!2: ; 9 3> I: ; 9 4 : ;9 5 : ;9 6 : ;9 7 : ;9 I8!I/9 : ; 9 I 8:4: ; 9 I; : ; 9 < : ; 9 I 8 =4: ; 9 I>4: ; 9 I?.?: ;9 '@B@: ;9 IBA: ;9 IBB.?: ;9 'I<C4: ;9 IBD4: ;9 IE4: ;9 IF4: ;9 IG1H1IBJB1K.: ;9 '@BL4: ;9 IBM UN1O P1RBUX YW Q1BR1S1RBX YW T1RBX YW U4: ;9 IV W 1UX41BY.: ;9 ' Z: ;9 I[B1\.: ;9 'I@B]: ;9 I^ U_ : ;9 `B1a4: ;9 I b4: ;9 I c.: ; 9 'I@Bd: ; 9 IBe4: ; 9 IBf4: ; 9 IBg.: ; 9 '@Bh: ; 9 IBi.: ; 9 ' j: ; 9 Ik: ; 9 Il m4: ; 9 In.: ; 9 'I o.?: ; 9 'I 4p.?<n: ;9 q.?<nr.?<n: ; 9 s.?<n: ; 1K /usr/lib64/perl5/CORE/usr/include/bits/usr/include/bits/types/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/sys/usr/include/usr/include/netinetExpat.xsExpat.cinline.hbyteswap.hstring_fortified.h__locale_t.hstddef.hlocale_t.htypes.htypes.htime_t.h__sigset_t.hstruct_timespec.hthread-shared-types.hpthreadtypes.hexpat_external.hexpat.hstdint-uintn.hsetjmp.hsetjmp.h__sigval_t.hsiginfo_t.hsignal.hunistd.hgetopt_core.hsockaddr.hsocket.hin.hstat.htime.htime.herrno.hnetdb.hnetdb.hdirent.hdirent.hperl.hmath.hop.hcop.hintrpvar.hsv.hgv.hmg.hav.hhv.hcv.hpad.hhandy.hstruct_FILE.hFILE.hstdio.hsys_errlist.hperlio.hiperlsys.hperly.hregexp.hutf8.hutil.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hopcode.hperlvars.hmg_vtable.hencoding.hpatchlevel.hpthread.hproto.hstring.h1 0.K1z x.sf7=u ;K#=.ZJ -=<>:0g"Jt/J XJo XY  xX g!J{.y fQ JK  XXjX#  j.J < X JJ<Kf #< <# c _=;W=;V *w!.f.J.]<Xzz<ZW=;W=WV .JftfKtJK=-JKW?  ,>X>\uwU?<ctJ%t"XtJX" XK  XXsX#   s.J <  X JJ<Kfvf~  tX J XtJLt(<~ r =^ Ks .XXsX#   s.J .  X tJ<KfXuvV><,co fc.KɐY*@XJ fK-JKW>XuvV><,co f.Kɐ[+=J fK-JKW>XuuW=<-p K  XXkX#  k.J . X tJ<Kf v=JO  !Y e= =+,< @ I\ Z= L K XuuW=<epsq KgsK-Y[+=. fK-JKJtXZ+YhJJX.JXYftYI=XIu.y J. JtXo s fwXWXKgsY-[+=J ttKsKXKXK-KW>uW=<eorq }fKא[+=J tKKX-KW>uu-=J-ezt dKg[+=J tKYHKXWK-KW>uW=X.-yt /fK/א[+=J tuK-KW>u-=J-pr EeKEg[+=J tuKK-KW>uW=X.-epsr K  XXkX#  l.J < X JJ<KdYY=KYLp fIJ XYWu0.vY%";<%K X= XKp pXXYp $! XJfp<!s= pJ W M  ;=X  t`5 {vS9 hK  XXlX#  l.J < X JJ<Kff{ -= X .< X< JX<=.txq JX jK  XXmX#  m.J < X JJ<KfuuW=X.-szt K=s-u[+=J tKeKX KWKWKKIK.LuuW=<.IJfXtytuWfKsp }Kg[+=J t=KX-KW>uuW=X.-szt  K  XXrX#   r.J .  X tJ<Kf   fB /=tM/tU G[.J GrttX Ks .XXnX#  n.J < X tJ<Kf<Z,JJL,J<LdJ>:LX| <t J#V= K  X IJZ W J= = g X IJ>L Y ;=X ! -=XȐf. {X 0|Z,=X.<X tJf _K  XXoX#  o.J . X tJ<KfX,F <<t.if+zX `?9X J=';K&'j- .Kg\*=  :>YJ tKYHKX-KX-KW>uvV>X.,zt  K  XXqX#  q.J . X tJ<Kfr.<XJ t '   K I KKX  ,0X> <KXf?u"uJtXJ ",> X<l   t   Z :>XXL Z ,Z.XfX>-KW>  ,0Z,>      JJ.. <<< Y</J IJK-KW>K     !\t#&'),-/2/ WK ft"XC.X!#&'),-/2 <t.(DGH JMNPSVY Z\_m(bDGH JMNPSU.VYZ\_m.b).b).  JX$)$b)I5ehIbeh#b)E.Eb)*.*b)w.XX `  &  a).0)0b) .  -x X XKKb)f.fb) .4)589;>4b 589;> AWWb+ .)  .Qb).Q) g) ) )'6TX].].6)<b)<.-K  XXuX#   u.J .  X tJ<Kf<Z,VJ>:LfJ>f~XJ <...!...w..Yg= -K t+ XXX w 2< LdL 4 <&L,L2 <L,L2 <L,LY=_ KY + <XJ  H=. t. tJL ~(  x< +') 7J  WtXJ ~% X 0"X+*I"(tm*<0<*<I<( ~{0fPf0U   `} my<  Y<= g = FJ_t',>t  w <.ut {YsJiG= XI=W>/I=XXt< ^1 UYuSX<XWXxL X K=sK.[ `uJ=zJ=vYe_ %J9J3<v\.XJXX J!fX    IJ KWJf=IK JXXYJfLfH>>t,OhYIK wtX<tX<tX<tXX< t XW ="tX<tX<tX<y X"$$$ !6zytJX$$$ztHsH?wHHHz*<<  Hs@((w( o' ((zf  yX^ Xooxso  /K  XXuX#   u.J <  X JJ<Kf ~J<XvXY=Y<< f.ufu.  xKus =< \p=  <JJXX X.h|XYY;KW> sXXX}#| <| <.|J*J.X zt.XxK  s ! JYvKq.= Z\*g. fY-JKW?  ,>X>  <L <<  =  & Z t }  }fX%  ,>X>  H>%JK"! J <[G J?XJXy,#J t[-HKW?,>X> L<<XJtY J} fXxJtn) f(!~X=<<~t:L[+J~J~<J@  -=X t.  tJLj~XJ~J$< d   N  jX(Xt vH0>XIlaststatvalnumchildrenlong long intPerl_av_pushold_parserPL_locale_mutexblku_oldsaveixIorigargcdoposIorigargvPerl_sv_catpvn_flagssi_errnokeeperenc_sv__pad0tbl_arena_nextXML_CTYPE_EMPTY_spent_sizeIin_utf8_CTYPE_localeXML_SetXmlDeclHandlerhostentls_prevclose_parenPL_no_localize_reflex_stuffIlast_swash_hvxpvgv_readdir_ptrIstatcache_freeres_bufencmaphdrIcompilingXML_ParserFreeIdbargsnew_perlreleaseblku_oldspXML_StartDoctypeDeclHandlersub_error_countXML_SetUserDataXML_SetProcessingInstructionHandlerxpvhvPERL_CONTEXT_asctime_buffer__builtin_memcpyInumeric_standardsigngamprevcomppadIe_scriptPerl_newSV_typecommenthandlesv_u_servent_structPL_sv_placeholderIpreambleavIDBcontrolxpvioxpvivtbl_maxsi_tiddefaulthandleImy_cxt_sizeblku_old_tmpsfloorXML_GetCurrentByteIndexImain_rootPerl_call_pvxcv_outsideblku_type_PerlIO__localeshe_valuIutf8_totitle_spent_structnamed_buffPL_freqatt_typeh_lengthop_firstIdoswitches_netent_sizethrhook_proc_tnext_branchPL_op_namebmskdflthndlblock_evals_port__in6_uPL_no_wrongrefin_port_tgp_refcntprev_markIdef_layerlistresultsaw_infix_sigilIrestartjmpenvsave_lastlocIwarn_locale_spent_bufferIcolorsmg_objje_old_delaymagicXML_SetStartCdataSectionHandlermulti_endstrchrPerlIO_list_sPerlIO_list_tCOPHHscream_posIargvgvdespatch_signals_proc_tXML_SetCharacterDataHandlergetdate_errxio_flagsmarkbegIsharehookentstrold_regmatch_statexcv_xsubnextwordIminus_EisparamIcheckavpad_1pad_2ImarkstackxpvnvPL_bitcountIdump_re_max_lenxcv_flagsPL_warn_nlCallbackVectorIstatusvalueIDBsingleutf8_substr__u6_addr8min_offsetPL_warn_nosemipmopst_atimXS_XML__Parser__Expat_ElementIndexquantsival_intIlast_in_gvIreg_curpmshare_proc_tXML_NotationDeclHandlerPerl_av_len_call_addrns_tablelong doublesysidop_privatelex_formbrackPerl_call_svSVt_LASTstartCdatasbu_dstrXML_cpIrunopsIpsig_pend_ctime_bufferIcomppad_namePL_magic_vtablesImarkstack_maxsbu_iterssi_type_IO_wide_dataIreentrant_retintEncmap_HeaderencinfptrINonL1NonFinalFold__spinsXML_DefaultHandlernsstr__blkcnt_tPTR_TBL_tPerl_call_methodxhv_max_protoent_sizePL_no_symrefhent_hek_grent_ptr_getlogin_bufferxivu_eval_seeneledcl_svPL_curinterpextfin_sv__locale_dataPL_hash_seedpos_flagsfirstmapIstack_baseexecImax_intro_pendingposcacheXML_ErrorStringop_pmstashstartugroupsbu_strendre_scream_pos_data_sXML_SetEndDoctypeDeclHandlercop_stashoffXS_XML__Parser__Expat_GetCurrentLineNumbers_addrst_sizePL_opargspthread_key_tIperldblastparensi_addr_lsbIinplaceXS_XML__Parser__Expat_ParsePartial__locale_txpvuv_pkeyPerl_pop_scopeXML_SetUnknownEncodingHandlerIDBlinePL_bincompat_optionsIsv_arenarootjumpPL_uudmapgp_egvnewvalpadnamestatesxio_bottom_gvconvert_unused2Iphaseyylenstrncmpsubbegnslen_asctime_sizeIblockhooksend_shift__nuserssbu_oldsaveix_pwent_ptrIosnamen_addrtypeIstrxfrm_max_cplex_casemodslex_brackstacknumbered_buff_STOREIefloatsizens_listPADLISTIpeeppPADNAMEXML_Content_QuantIregex_padretopprogram_invocation_namexcv_padlist_uminmodmymallocxml_namespacesp_pwdpIutf8_foldclosuresPL_checkIsv_yesst_serialparenfloorXS_XML__Parser__Expat_SetEndDoctypeHandlerPL_op_private_bitfieldsPerl_sv_catpvbranchlikeJMPENVImain_startqr_anoncvIstashpad_archmy_perlPerl___notusedPerl_sv_setpvnIenvgvXML_CQUANT_PLUSIperlioIpadname_constPerl_xs_boot_epilognewUTF8SVpvnattsIregmatch_stateprev_rexstderrIisarevpnstabIutf8localeproc_svXML_GetBufferIsignalhookXS_XML__Parser__Expat_ParseString__ownerPL_Noop_optc2_utf8__ino64_tsa_family_tsockaddr_inarpEncinfo__pthread_list_ttsizsubcoffsetsvu_fpnamelenyy_stack_frameprefixesIdebstashenthndlrrsfptopwordPerl_safesysfreeXS_XML__Parser__Expat_SetCommentHandlerreg_substr_datumsi_stackxpadl_maxInomemok__uint8_tfirstposIdiehookprev_recurse_locinputany_ptr_readdir64_ptrCLONE_PARAMSIcompcv_vtable_offsetlex_repltimespecPL_interp_size_5_18_0PerlInterpretercmnthndlxpadnl_max_nameddoctypfin_svattdeclhndlreldeclhndlrPerl_hv_common_key_lenresume_callbacksPL_check_mutexxpvlenu_pvILatin1st_nlinkIminus_Fre_eval_strIscopestack_ixsp_maxIscopestack_maxPerl_get_hvattributeDeclIminus_aany_pvpIminus_cXS_XML__Parser__Expat_SetEndCdataHandlerIminus_lIminus_nIminus_pIargvout_stackdflt_svPL_op_seqIinitavPerl_newSVpvnPerl_newXS_deffilesin6_familyfree_fcntbl_itemsPerl_ophook_tcache_maskPL_no_dir_funcfirstcharsImaxsysfdIlocalizinglimitlex_sharedconvert_to_unicodeservent_crypt_struct_bufferPL_op_private_labelsrxfreePerl_sv_2uv_flags_IO_save_endPerl_av_poppw_namesp_lstchgcurly_getlogin_sizeXML_UnknownEncodingHandlerPL_sig_nameIunicodeblku_subqr_packageIrestartop__timezoneXS_XML__Parser__Expat_DefaultCurrentPL_thr_keygofs__mask_was_savedPERL_PHASE_CONSTRUCTIlastgotoprobecop_lineXML_ParserStruct__locale_structIsavebegininitializedXPVAVerrstruserdataSTRLENuserDataexitlistentryop_ppaddrxpadnl_allocXS_XML__Parser__Expat_RecognizedStringIcheckav_saveIdebug_pad_IO_backup_base__jmp_buf_taglex_flagsIendavblku_oldscopespIutf8_idcontIcomppad_name_fillmy_oprdresIHasMultiCharFoldglobhook_ttmpXSoffXPVCVpcontextPerl_savetmpsPL_sh_pathmark_stack_entrynotation_sv_sys_errlistPL_hash_seed_setregnodeXS_XML__Parser__Expat_ParseStreamXML_UnparsedEntityDeclHandlerstdinIperl_destruct_levelsi_cxixXML_SetNotationDeclHandlermg_virtualpadnamelistoptoptinterpreterPL_warn_reservedPMOPIstashpadixPerl_xs_handshakest_uidlongfoldsp_min_IO_read_endxcv_xsubanyPADOFFSETPL_valid_types_RVIstatbufsbu_rflagsxpv_curxpadn_flagsIstderrgvxio_page_lenXML_SetEndCdataSectionHandlernotationDeclperl_memory_debug_header_IO_save_basenewUTF8SVpvprefixes_sizeIin_clean_allmark_nameop_flagsold_regmatch_slabunknownEncoding__ino_treg_substr_datalex_super_state_grent_structxcv_root_ucurlymsettingPL_uuemapPL_nanPL_magic_dataIcustom_op_descsPL_hexdigitsi_prevXPVGVbytemap_addr_bndsp_namp_IO_write_endlex_startsIsavestacksi_codeImodcountprev_curlyxXS_XML__Parser__Expat_UnsetAllHandlersIsortstashPL_mod_latin1_ucunparsedEntityDeclIstdingvsvt_localsp_warnIcustom_opsCHECKPOINTXPVHVany_av_grent_bufferXS_XML__Parser__Expat_GetCurrentColumnNumberXS_XML__Parser__Expat_SetEntityDeclHandlerrelposlast_uni_IO_buf_baseXPVIOsp_expireXPVIVpubid__uint16_tminlenretXML_CommentHandlerIofsgvTARGi_ivIdelaymagic_gidXML_Encodingxcv_gv_uIcollxfrm_multXML_CQUANT_NONEparseparamparse_donePerl_gv_add_by_typetbl_arena_endIsavestack_ixdfltsvPL_C_locale_objXML_ParseBufferXML_Contentsockaddr_x25SVt_PVAVdoctypeEndsin6_flowinfounprsd_svXML_EntityDeclHandlerxmg_magicsvu_gpany_dptrintuitExtparse_CleanupIbody_rootssi_sigvalhek_lenIcollation_ixXML_CTYPE_CHOICEtokenbufop_nextopline_tcurpfxmgvtblPL_valid_types_NVXPL_runops_dbg_readdir64_sizeIutf8_xidcontsi_cxstacksuspend_callbacksyyerrstatusPerl_sv_catpvf_nocontext_hostent_ptrXML_GetSpecifiedAttributeCountsbu_rxxcv_padlist_IO_markerPL_revisionexthndlrsvt_get_Boolsvu_iv__prevIsort_RealCmpsbu_rxtaintedxmldechndlrop_moresib_flags2xpv_len_uIpatchlevelxmlDecl_pwent_structnextvalsvu_pvXPVNVany_gvIhash_rand_bitssbu_origXML_ExternalEntityRefHandler_IO_lock_t__gid_t_IO_read_ptrIparserxpadlarr_dbgstack_max1runops_proc_tany_hvPL_subversionIpadlist_generationxmldec_svSVt_PVFM__environxpadnl_maxIdefoutgv_lowerIstatusvalue_posix_pwent_bufferst_serial_stackptr__ctype_tolowersiginfo_tPerl_newSVivXS_XML__Parser__Expat_FreeEncodingany_ivPrefixMapmax_offsetIchopsetIrpeeppoldcomppadPL_fold_localesbu_rxresSVt_PVGVIincgvsi_markoffxpadnl_fillS_POPMARKXML_SetCommentHandlerPL_no_usymtv_nsecnexttypesig_slurpyIcurpm_underSVt_PVHVXS_XML__Parser__Expat_LoadEncodingentdcl_svSighandler_tpthread_getspecificsvu_hashin6addr_loopbacksvu_nvlex_inpatlast_lopsockaddr_ax25eslenPL_isa_DOESptr_tbl_arenaXML_EndCdataSectionHandlerExpat.cSVt_PVIOSVt_PVIVfilteredIlastfdPL_perlio_fd_refcntIeval_startXML_SetParamEntityParsing_readdir_structIlast_swash_keyls_linestrPerl_check_t_readdir_size__alignPerl_gv_stashpvattdcl_svholdPADNAMELISTSVt_PVCVPERL_PHASE_START__srcxcv_hscxtany_u32Perl_croak_nocontext_ctime_sizecmodop_pmreplrootud_inoIsavestack_maxXPVUVIlocalpatchesIsv_rootSVt_PVLVXS_XML__Parser__Expat_SetXMLDeclHandlerp5rxop_next__saved_masksvu_rvsvu_rxsockaddr_eonany_opgenerate_modelIcurstackblimSVt_PVMGIpadix_floorPerl_push_scopesi_statusxpadl_arrh_addrtypeXML_SetDefaultHandlerExpand_strerror_sizeIdelaymagic_euidbufendPerl_newSVpvlex_inwhatany_pvPL_valid_types_PVXskippingxnv_nvPL_phase_namessin_zeroIopfreehookXS_XML__Parser__Expat_SetStartElementHandler_protoent_ptrXML_CQUANT_REPIunitcheckavsvu_uvPerlIOlskip_untilecdhndlprotoentmg_lenImemory_debug_headerPL_no_modifyany_svSVt_IVItop_env__blksize_t_IO_buf_endPerl_sv_setivshort unsigned int_spent_ptrItmps_stackPerl_safesyscallocyy_lexsharedgen_ns_nameencinfnsdelimoffsPerl_newSVsvIseen_deprecated_macro_IO_codecvtIsv_undefIpsig_nameLEXSHAREDXS_XML__Parser__Expat_GenerateNSNameclone_paramsperl_drand48_tIgensymPL_fold__bsxIregmatch_slabtlineop_redoopXML_CTYPE_SEQ_hostent_structstart_tmpxio_fmt_namesvt_lenXML_Parsercop_hints__lenh_nameIerrorspfsizePL_no_memxpvlenu_lenh_aliases_hostent_sizePL_Yesop_pmreplstarthent_refcountXS_XML__Parser__Expat_OriginalStringXML_DefaultCurrentsaved_copylex_sub_inwhatany_uvItmps_floorPL_do_undumpIstrxfrm_is_behavedxpadl_idIbasetimeIop_maskIsighandlerpunreferencedxpadnl_refcntIUpperLatin1xio_ofperrctx_hostent_buffercop_seqmulti_startXML_Parseop_pmreplroot_shortbufSVt_NVIDBtracemaxlenpre_prefixop_targIbeginavje_retextent_svresume_statePL_dollarzero_mutexIsv_constspw_dirlex_casestack__bswap_16op_lastopXS_XML__Parser__Expat_SetEndElementHandlerIsub_generationblku_evalelementDeclfloatPL_versionPL_no_securityIutf8_foldable__countunsigned charsi_cxmaxmulti_open_killst_rdevLOOPILB_invlistSVt_PVXML_EndElementHandlerXML_GetInputContextPerl_sv_setpvmarkendREENTRImess_svIglobalstashImin_intro_pendingPL_perlio_mutexexpectoldlocIcollxfrm_baseIutf8_perl_idcontcx_blkIstatnameencodingRETVALxnv_uXML_PARAM_ENTITY_PARSING_ALWAYS__uid_tsin6_scope_idunusedblku_gimmePL_valid_types_IVXst_ctimrecheck_utf8_validityIutf8_tofoldxcv_rootISB_invlistblock_formatin_addr_top_sibparenttz_dsttime__dataold_namesvparseposxpadn_type_uIAssigned_invlist/home/.cpanm/work/1669629636.88601/XML-Parser-2.46/Expatpeep_tPL_my_ctx_mutexelnamePerl_sv_free2hasinternalIsv_nominlenmalloc_fcnmyfree__off_trealloc_fcnperl_phaseIin_clean_objsd_reclenexternalEntityRefPL_mmap_page_sizePERL_PHASE_DESTRUCTin_podPerl_stack_growXML_ElementDeclHandlergp_ioImultideref_pcbuffsizebytemap_sizeIors_svxpadn_protocvXML_XmlDeclHandlerxuv_uIevalseqIunlockhookregexp_enginemg_flagsIcurstashgr_passwdPerl_markstack_growPerl_ppaddr_tgr_gidXML_EndNamespaceDeclHandlerPerl_safesysreallocIstashpadmaxXS_XML__Parser__Expat_SetExternalEntityRefHandlersi_overrunendcd_sv__clock_tSVt_NULLls_bufptrIbeginav_savenewsizestart_sv__uint32_tIorigfilenamexmg_hash_indexself_svlast_lop_opInumeric_localcop_warningsPL_op_private_bitdef_ixIcop_seqmaxXS_XML__Parser__Expat_SetUnparsedEntityDeclHandlerIsecondgvop_pmtargetgvPL_veto_cleanupform_lex_stateXS_XML__Parser__Expat_Do_External_ParseIstatgvIdestroyhookcoplinest_blocks_sys_siglistsbu_msbu_sPerl_safesysmallocsave_curlyxIcomppadsub_no_recoverlex_dojoinxmg_uispfxdirent64XML_ExternalEntityParserCreatenotationgp_cvgenPL_utf8skipnothndlrXML_CharacterDataHandlerxcv_fileSVt_PVNVitervar_ugp_flagsxiou_dirp_servent_bufferPL_op_mutexparen_namesst_serial_stacksizeIregistered_mrossi_uidpw_passwdlex_allbracketsischaropvalIcurcopdbblock_subentitydtsthndlrno_expandpos_magic_old_offsetgp_file_heksv_refcntXML_SetEntityDeclHandlersockaddr_in6dfltXML_SetCdataSectionHandlerXML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE__nlink_ttbl_aryxav_allocsi_fdnparensend_svPL_no_funcxpadn_refcntIeval_rootold_eval_rootnamed_buff_iterst_gidIdowarnyycharIfirstgvmg_moremagicop_pmoffsetop_pmstashoffXML_GetCurrentLineNumberPERL_SIXML_SetAttlistDeclHandlerMGVTBLnew_prefix_listop_staticMAGICPerl_sv_newmortalItmps_maxlblenoptargPL_latin1_lcsockaddr_ipxIthreadhookdelimsvPL_valid_types_IV_setreqorfixblku_givwhengr_nameXS_XML__Parser__Expat_SetNotationDeclHandlerop_typeIutf8_perl_idstartsublenblku_oldmarkspendElementxivu_ivIutf8_swash_ptrs_netent_ptrXML_CTYPE_MIXEDIpadname_undefpreamblingproto_perlbyte_uppercx_uoutputIDBcvPL_sigfpe_savedtrieIlockhook__ctype_toupperPerl_newRVPL_inf_xnvucharacterDataPerl_keyword_plugin_txio_lines_leftcompflagsprochndlsockaddr_isopthread_mutex_tIin_load_modulePL_memory_wrapxio_pagePerl_newSVsigjmp_bufIlaststypeXS_XML__Parser__Expat_SetExtEntFinishHandler__ctype_b__listh_addr_listIutf8_charname_continuein_my_stashXS_XML__Parser__Expat_SetElementDeclHandlerxpadn_lenXML_ParserCreate_MM_IO_write_ptr_strerror_bufferstartElementlocal_patchesdummyXS_XML__Parser__Expat_SetCharacterDataHandlerIunitcheckav_savePL_op_descsi_stimePL_no_aelemnsStartlastcloseparenshort intifmatchIdumpindentIoldnamepreambledop_code_listxhv_keysitersave_readdir64_struct_sys_nerrIAboveLatin1Iutf8_mark_servent_sizesi_signoXML_CTYPE_ANYIDBgvIlast_swash_tmpsPerl_sv_2bool_flags__namessv_anyblk_uxcv_startacceptedgvvalIWB_invlistolddepthIutf8cachedtendhndlr_boundsprev_evalIpadixdefsv_save_netent_bufferxcv_stashYYSTYPExcv_gvdo_ns_markersPL_keyword_plugincop_hints_hash_filenoIcustom_op_nameslex_sub_replerrmsgstdoutxpadn_highre_scream_pos_datahek_hash_ttyname_bufferPL_hints_mutexIknown_layers_netent_errnoItaintingPL_op_private_bitdefsIcurcopIstack_spXML_PARAM_ENTITY_PARSING_NEVER__ssize_tany_boolXS_XML__Parser__Expat_PositionContextXML_GetBaseregmatch_info_auxIhash_rand_bits_enabledPL_interp_sizeIcollation_standard__glibc_reservedlex_deferxmg_stashPL_runops_stdIorigalensbu_maxiterssockaddrIdebugrefcounted_heIcurpadPL_op_private_validrecstringXML_GetCurrentColumnNumber__time_t__daylightst_mtims_protosbu_targEncodingTabled_type__destlogicalIforkprocesslex_bracketsxio_top_gvIutf8_tolowerPerl_newRV_noincPL_op_sequencerecStringblku_oldcopperl_mutexIcurstackinfoIstart_envlex_fakeeoflex_sub_opstashesIstashcachexnv_linesPerl_sv_blessPL_use_safe_putenv_IO_write_basep_aliases_netent_structin_mynext_offxivu_uvsin_portpadnlImodglobalin6addr_anyICmdsockaddr_atXML_GetErrorCoderegmatch_info_aux_evalxcv_start_uXS_XML__Parser__Expat_ParseDonePL_no_helem_svendCdataPerl_sv_catsv_flagsbasespIgenerationIGCB_invlistIstrtabxpadl_outidxpadn_lowblock_givwhenregexp_paren_pair__sizepretcrypt_datapprivatecv_flags_tcur_top_envxpadn_typestashIin_utf8_COLLATE_localeIlast_swash_slenstate_uPERL_PHASE_RUN_sigfaultop_sparelex_opst_inopw_gecos__pid_tparsed_subop_lastPerl_free_tmpsxio_typeyylvalPerl_sv_derived_fromsp_inactXS_XML__Parser__Expat_GetSpecifiedAttributeCountsockaddr_dlXS_XML__Parser__Expat_SetDefaultHandlerxav_fillhent_valIorigenvironIdelaymagic_egidgp_avvlenscream_oldsmg_ptr_cur_columnregexpmaxposXML_Charsa_familyappend_errorptr_tblInumeric_namelazyiv_sifieldsSVCOMPARE_tSVt_REGEXPIpsig_ptrgp_cvxgv_stashnetentsaved_curcoptv_secblku_u16Iprofiledata__sigset_tgp_lineImainstackIcurpmop_pmflagsst_blksizexpadn_ourstashprogram_invocation_short_namePL_sig_numptr_tbl_ent_hostent_errnoop_slabbedIsublineIargvoutgvIwatchaddrIdefgvtbuffhek_keyPerl_av_clearPerlExitListEntryxio_bottom_nameXML_StartCdataSectionHandlergp_formIreentrant_bufferhent_nextst_serial_stackcheck_ix__off64_tIunsafeIhintgvnmstrsockaddr_in__jmp_bufIDBsignalIutf8_charname_beginchar_svblku_formatPL_ppaddr__dirstreamXS_XML__Parser__Expat_SetProcessingInstructionHandlercmnt_svsin_addrIXpvIregex_padavPL_perlio_debug_fdblku_loopcache_offsetwantedpw_uid_timerIstrxfrm_NUL_replacementXML_SetExternalEntityRefHandler__locksig_elemsPL_valid_types_NV_setXML_SetBaseXS_XML__Parser__Expat_GetErrorCodegr_memIxsubfilenamegp_hvIpad_reset_pendingopterriorefdfoutgvPerl_sv_setsv_flags_sigchldattnamexcv_depthItaint_warnIArgvpw_shellsi_next_syscallPL_no_symref_svIexitliststandaloneXML_Memory_Handling_SuiteIsubnameattlim_IO_read_basePL_warn_uninitany_i32Ihv_fetch_ent_mhXML_EndDoctypeDeclHandlerUNOP_AUX_itembmap_startsvt_dup__pthread_mutex_sbmsizePerl_sv_setiv_mgInumeric_radix_svPL_fold_latin1xcv_outside_seqPL_magic_vtable_namesnmlenPL_no_sock_funcIsplitstrxcv_heksvt_freesockaddr_nsPERL_PHASE_ENDlong long unsigned intsi_addrdirentIbody_arenascheckstrXML_ProcessingInstructionHandler_grent_sizeQuantCharPL_csighandlerpSVt_INVLISTIsortcopXS_XML__Parser__Expat_SetAttListDeclHandlerPL_warn_uninit_svsin_familynsEndIsignalssbu_typesi_pidmg_privatedupeje_bufXS_XML__Parser__Expat_ParserCreatelazysvItoptargetlinebuffXML_ParamEntityParsingIerrgvPerl_sv_2pv_flagssvt_clearPERL_PHASE_CHECKpfxsizenexttokePL_no_myglobItmps_ixIsig_pendingsubstrsXML_SetElementHandlerany_svpintflagsdestroyable_proc_tXML_GetCurrentByteCountIfdpidxpadlarr_allocivalany_dxptrn_netPerl_croak_xs_usagecharhndlop_pmtargetoffIcollation_nameXS_XML__Parser__Expat_ErrorStringIefloatbuf_pwent_sizeXS_XML__Parser__Expat_SetBaseoldvalany_longxiou_anyXML_SetUnparsedEntityDeclHandlerIexit_flagsc1_utf8IglobhookXS_XML__Parser__Expat_SetStartCdataHandlersin6_portXML_CQUANT_OPTPL_block_typed_offbndxxio_top_nameXML_CTYPE_NAMEscdhndlIptr_tableIcolorsetXML_StartElementHandler__jmpbufIfilemode__dev_tXML_SetElementDeclHandler__kindIexitlistlensockaddr_unop_foldedIdelaymagicPL_charclassImarkstack_ptrblockpw_gidprev_yes_state_protoent_structop_compXS_XML__Parser__Expat_GetBasegp_svsvu_arrayXML_SetNamespaceDeclHandler__pthread_internal_listwhilemparse_streamIInBitmapdoctypeStartXS_XML__Parser__Expat_SetDoctypeHandlermother_re__valn_aliases_sigsysprocessingInstructionextflagsname_entxio_fmt_gvxpadn_genstartcd_svnamespacesXS_XML__Parser__Expat_GetCurrentByteIndexcop_fileIcurstnamecx_subst__u6_addr16Isv_countsvt_setXS_XML__Parser__Expat_ParserReleaseIdefstashItaintedtz_minuteswestIbodytargetoldoldbufptrxav_maxxiv_u_protoent_bufferst_modesavearraymyreallocPerl_sv_setref_pv_xivu_chainleave_opIutf8_xidstartre_eval_startperl_debug_padIstack_maxsvtypest_dev__u6_addr32je_prevIclocktickPerl_sv_2iv_flags__syscall_slong_tIXPosix_ptrsIDBsubspwd__nextIutf8_idstartje_mustcatchnumbered_buff_LENGTHentparyy_parserblock_loopop_savefreeIscopestackIformtargetprefixmappad_offsetXML_SetDefaultHandlerPL_perlio_fd_refcnt_sizes_aliasespnslstboot_XML__Parser__ExpatlastcpIconstpadixdelimlenmulti_closestatherelinesImy_cxt_listIPosix_ptrs_freeres_listxivu_namehekXS_XML__Parser__Expat_SkipUntil__pad5__bswap_32_ttyname_sizesin6_addrIwatchokS_SvREFCNT_dec_IO_FILE__stack_chk_failPL_my_cxt_indexdoctyp_sv__tznamep_protoPerl_sv_2mortalsvt_copyxnv_bm_tailXML_Content_Typesival_ptrmark_locsi_utimeentityDeclxpvavIsrand_calledoptindstrlen__mode_tsp_flagperl_keyIreplgvsa_dataIbreakable_sub_genrsfp_filtersunprsdhndlS_SvREFCNT_incIin_evalsuboffset__sigval_tXML_StartNamespaceDeclHandler_servent_ptrlex_re_reparsingXML_AttlistDeclHandlerIutf8_toupperlinestartsig_optelemsPERL_PHASE_INITIcv_has_evalXS_XML__Parser__Expat_ParserFreemg_typexpvcvXML_SetStartDoctypeDeclHandlernumbered_buff_FETCHIrandom_stateIscopestack_namesi_bandxpadn_pvIcomppad_name_floorGNU C17 8.5.0 20210514 (Red Hat 8.5.0-15) -m64 -mtune=generic -march=x86-64 -g -g -O2 -fexceptions -fstack-protector-strong -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -fPIC -fplugin=annobinIdelaymagic_uidIwarnhookIlast_swash_klen_xmgu_sigpollxio_dirpucur_text__elisionblku_oldpmImain_cvUUTTP V T0^U^U0bTb_2T2Q_QT _ Th]^^}Vv^v4v v2L^LQv vv $ &3$p"v $ &3$p"PP}v $ &3$p8^ 2^Q^_ 2_Q_\\\ \4VQV4w~Q^~~~~wT\\ \ 1 1m}PUp UT/ ^/ 0 T0 p ^"J\7<V<^v^]vv0 E vE \ ]\ p v<Cv $ &3$p"CGv $ &3$p"GePa o P<C|v $ &3$p8- ]0 E ] P U ' 0'7PUqUT]bTbq]V^Ab^^~U\U~A~bq~~ $ &3$p"~ $ &3$p"v~ $ &3$p8U\"\\Ab\|VAbVP|\Ab\1Pp U !Up T !]!i!Ti!!]!!T!!] V ^ ~ \ !V!h!~i!!V!!~ ~ $ &3$p" ~ $ &3$p" v~ $ &3$p8!S!V!!V!f!]!!]F!i!0 P@;^;U^;x>U@;b;Tb; <^ <|=T|==^=i>Ti>x>^h;;]};;V;;v;<\<i>\i>x>v;;v $ &3$p";;v $ &3$p";;Pi>w>P;;}v $ &3$p8;<]<|=]=i>]<<V<|=V=i>VA<J<PJ<<_<|=_=i>_<<^<|=^=i>^<<0<<T<|=0==0=i>0<<1m;};PBBUBFUBCTCC^CETE9E^9E FT FF^C0C]C"CV"CDCvDCD\D F\ FFv"C)Cv $ &3$p")C-Cv $ &3$p"-CKCP FFP"C)C}v $ &3$p8CD]DE]9E F]CDVDEV9E FVCCPCD_DE_SE F_CD^DE^9E F^C>D0>DEDTDE09EzE0E F0uDD1 CCPIJsJ1JJ1KI\IP\\U\]U\\T\]]]]T]]]\\\\\^\\~\\]V\]]~]]V]]~\\~ $ &3$p"\\~ $ &3$p"\\|~ $ &3$p8t]]Vt]]V]]0\\P ^?^U?^bU ^C^TC^^^^bTbb^J^t^Sa^f^]f^^}^_\_b\bb}f^m^} $ &3$p"m^q^} $ &3$p"q^^PbbPf^m^s} $ &3$p8^P_S_aSa3b43bPbSfbb4bbS2_D_P__PP_i_]i_m_Pm__SW`[`P[`3b]fbb]2_P_S_aSa3b4fbb4bbS_?`y ?``  bby _?`x ?``  bbx s`~`P~``Q`aaaPa3bSfbbS` as aap|asap6`3b_fbb___0_`}` `_ ``]``_|`~`0a a0 aaUasausaxaUxaa0aaPaapaaPbb]bb0__P``PbbP/axaROasa@Oasar__s,__s.~``sp"#0<_<_sv__1O^a^PbbUbhdUbbTbnc]nc9dT9dTd]TdYdTYdhd]bc\cc^c2c~2ccV#dYdVYdhd~cc~ $ &3$p"cc~ $ &3$p"cc|~ $ &3$p8cc]#d9d]ccPcd]c#d1bcPpddUdAfUpddTdd]d2fT2fAf]ddViee^f2f^dd^dd~d%e\%eie~ef~2fAf~dd~ $ &3$p"dd~ $ &3$p"ddv~ $ &3$p8%eYe\ee\Yee\f2f\LeeVf2fViee\f2f\ee1ddP`~U~1U`T]T]"T"1]VY]"]^~\VI~~"1~~ $ &3$p"~ $ &3$p"v~ $ &3$p8Y]]IMPM^"^<V"VY^"^1P@^U^U@bTb]T]hV<q^^~^~\<~~~~ $ &3$p"~ $ &3$p"v~ $ &3$p8)\\)\\VV<\\u1m~P >U> U BTB] T ]HnV Q ^ ^^c^c~\ ~| ~ ~cg~ $ &3$p"gk~ $ &3$p"cgv~ $ &3$p8 \| \ u \ \b V V u \ \U | 1M^PUQUT]BTBQ]Vy^!B^^~5\5y~!~BQ~~ $ &3$p"~ $ &3$p"v~ $ &3$p85i\\i\!B\\V!BVy\!B\1PppUphrUppTp6q]6q:rT:rTr]TrYrTYrhr]pp\pp^pp~prVrYrVYrhr~pp~ $ &3$p"pp~ $ &3$p"pp|~ $ &3$p86qq]qqUqq]qqUqr]r$rU$r*r]*r4rU4r:r]qqPqq\qqPqr\6qXq0Xqq_qqTqr_r*r_*r4rT4r:r_:qq\r:r\qr1ppPprrUrmsUprrTr@s]@sCsTCsms]rrVrr^rr~rr\rsVsBs~Cs^sV^sms~rr~ $ &3$p"rr~ $ &3$p"rrv~ $ &3$p8ssUssu sCs0rrPuuUu$xUuuTuVv]VvxTx$x]uu\uu^uv~vwVwxVx$x~uu~ $ &3$p"uu~ $ &3$p"u vPx#xPuu|~ $ &3$p8#v~v_ww_9vv\wx\VvJw]wx]cvw^wx^JwNwPNwfw]fwjwPjww]xx]vw_wwp"w%wp"#%w0wp"wx_vvXvvvvp"vv p"#vvp"xxvvPvw\xxPvvPvv|p"vv|p"#vv|p"vwXwwtp"#w%wtp"#%w0wtp"#xxPvvTvw|u"w-wY-w0wx"0w?w t"#x xT xxpu"sww1xx1uuP FMFUMF IU FQFTQFG^GHTHH^HHTHH^HHTHI^I ITXFH\H"H|pHH\HI\nFsFSsFFsFF]FFsF)GsHH]HHsHHsHIssF}Fs $ &3$p"}FFs $ &3$p"FFPsF}F|s $ &3$p8F]G]HH]@GGSHHSPGGPHHP]GcGp}"cGtG]tG|GR|GG]GGRHHRGGQGGRHHQGGRGHSHHSHHQGG0GG^GjH^HH^HH0]GiG0iGGTGG0GGUHH0]FnFP0xNxUNxyU0xRxTRxx]xeyTeyy]yyTyy]Xx~x\nxsx^sxx~x+yVeyyVyy~sxwx~ $ &3$p"wx{x~ $ &3$p"sxwx|~ $ &3$p8xxP|yyUxxPx>y]yyPyy]>yey1]xnxPyyUy8{UyyTyz^zzTz8{^y z\yyVyzvzZz]Zzwzvwzzv{${]${8{vyzv $ &3$p"zzv $ &3$p"z%zP){7{Pyz|v $ &3$p8rzz]z{]zzVz{VzzTzz0yyP@{^{U^{x~U@{b{Tb{ |^ ||}T|}}^}i~Ti~x~^h{{]}{{V{{v{|\|i~\i~x~v{{v $ &3$p"{{v $ &3$p"{{Pi~w~P{{}v $ &3$p8{|]||}]}i~]||V||}V}i~VA|J|PJ||_||}_}i~_||0||T||}0}}0}i~0||^||}^}i~^||1m{}{P~~U~U~~T~M^MTـ^ـT^~~]~~V~~v~7\>\v~~v $ &3$p"~~v $ &3$p"~~PP~~}v $ &3$p8<9]>]ـ]^ V>VـVP=_>__^0T>0ـ070^)^>^ـ^>1~~PށUށUT^T^T^]V$v$w\~\v v $ &3$p" v $ &3$p" +PP }v $ &3$p8|y]~]]`V~VVʂPʂ}_~_3_0%T~0Z0w0i^~^^00U~1PU8U"T"ͅ^ͅ<T<Y^Y)T)8^(P]=BVBdvd\)\)8vBIv $ &3$p"IMv $ &3$p"MkP)7PBI}v $ &3$p8]<]Y)]ޅV<VY)V P _<_s)_ޅ^0^eT<0Y0)0ޅ^<^Y)^1-=P0NUNhU0RTR^lTl^YTYh^X]mrVrv\Y\Yhvryv $ &3$p"y}v $ &3$p"}PYgPry}v $ &3$p8]l]Y]ЌVlVYV1:P:_l_Y_0Tl0ʍ0Y0ٌ^l^Y^Ō1]mPUȕUT]^]̔T̔^Tȕ^]͒ҒVҒvG\N\ȕvҒْv $ &3$p"ْݒv $ &3$p"ݒPǕPҒْ}v $ &3$p8LI]N̔]]n0VN̔VVPM_N̔__n0TN̔0*0G0n9^N̔^^%N1͒P!!U!#U!!T!U"^U"D#TD#\#^\##T##^!"]!!V!"v"&#\-##\##v!!v $ &3$p"!!v $ &3$p"!"P##P!!}v $ &3$p8m""^a#t#^",#_-#D#_a##_""P"#V-#D#V}##V"#]-#D#]a##]#-#1!!P##U#&U##T#$^$%T%&^&&T&&^#$]#$V$$$v$$w%\~%&\&&v$ $v $ &3$p" $ $v $ &3$p" $+$P&&P$ $}v $ &3$p8|$y%]~%%]&&]$`%V~%%V&&V$$P$}%_~%%_3&&_$%0%%%T~%%0&Z&0w&&0$i%^~%%^&&^U%~%1##P''U'8*U'"'T"''^'<)T<)Y)^Y))*T)*8*^('P']='B'VB'd'vd'(\()*\)*8*vB'I'v $ &3$p"I'M'v $ &3$p"M'k'P)*7*PB'I'}v $ &3$p8'(](<)]Y))*]'(V(<)VY))*V( (P ((_(<)_s))*_'^(0^(e(T(<)0Y))0))*0'(^(<)^Y))*^((1-'='P@*^*U^*x-U@*b*Tb* +^ +|,T|,,^,i-Ti-x-^h**]}**V**v*+\+i-\i-x-v**v $ &3$p"**v $ &3$p"**Pi-w-P**}v $ &3$p8*+]+|,],i-]++V+|,V,i-VA+J+PJ++_+|,_,i-_++0++T+|,0,,0,i-0++^+|,^,i-^++1m*}*Pm.mU.mxpUm2mT2mm^mzoTzoo^oipTipxp^8m`m]MmRmVRmtmvtmn\nip\ipxpvRmYmv $ &3$p"Ym]mv $ &3$p"]m{mPipwpPRmYm}v $ &3$p8mn]nnUnn]nlo]lotoUtozo]oip]mnVnzoVoipVnnPnn_nzo_oip_mvn0vnnTnlo0lotoToo0oip0mn^nzo^oip^nn1=mMmP--U-0U--T-M.^M./T//^/0T00^--]--V--v-7/\>/0\00v--v $ &3$p"--v $ &3$p"--P00P--}v $ &3$p8<.9/]>//]/0]^. /V>//V/0V..P.=/_>//_/0_^..0..T>//0/007000^.)/^>//^/0^/>/1--P00U03U00T01^12T23^33T33^01]01V1$1v$1w2\~23\33v1 1v $ &3$p" 1 1v $ &3$p" 1+1P33P1 1}v $ &3$p8|1y2]~22]33]1`2V~22V33V11P1}2_~22_333_1202%2T~2203Z30w3301i2^~22^33^U2~2100P44U487U4"4T"44^4<6T<6Y6^Y6)7T)787^(4P4]=4B4VB4d4vd45\5)7\)787vB4I4v $ &3$p"I4M4v $ &3$p"M4k4P)777PB4I4}v $ &3$p845]5<6]Y6)7]45V5<6VY6)7V5 5P 55_5<6_s6)7_4^50^5e5T5<60Y6606)7045^5<6^Y6)7^551-4=4P@7^7U^7=9U@7b7Tb77^78T88^8.9T.9=9^h77]}77V77v78\8.9\.9=9v77v $ &3$p"77v $ &3$p"77P.9<9P77}v $ &3$p8788^89^88_88_8.9_=8F8PF88V88V 9.9V88]88]8.9]881m7}7P@9^9U^9=;U@9b9Tb99^9:T::^:.;T.;=;^h99]}99V99v9:\:.;\.;=;v99v $ &3$p"99v $ &3$p"99P.;<;P99}v $ &3$p898:^:;^::_::_:.;_=:F:PF::V::V ;.;V::]::]:.;]::1m9}9P U U T ]1T1y]yT] V^^ ^!~!1\1]V]u~ZyV~~ $ &3$p" ~ $ &3$p"v~ $ &3$p8u^1Z^y^,]y]VyV,]] 11 PU>UT^T^*T*9^9>T \E]*] V4v4p]pvvv]v*9vv $ &3$p"v $ &3$p";P*8P|v $ &3$p8]]]^^^*^9>^PVVV*VT}^*^9>^I19>1 P.U.U2T2^\T\y^yT^8`\u^y^MRVRtvt]vv~v~\t]tyvvRYv $ &3$p"Y]v $ &3$p"]{PPRY|v $ &3$p8^]\]u^\^_\_^]y]!P!V\VyVNX!X*;X;\u]y]1=MP@nUnU@rTr^gTg^T^Tx\]]Vv] v Dvvg]vvv $ &3$p"v $ &3$p"PP|v $ &3$p8]g]]y^g^y ^^^DHPHV-gVVgs}gsT ^^^11}PpUUpT5]5UTUq]qT]S^~\ S %~UqS~~ $ &3$p"~ $ &3$p"s~ $ &3$p8%T^q^(?SqSBV]]BVPPFRQRV}Qg{]q]g{PqPkwQw{}qQ]@P]P@JPQ}@JQ]0@]P0:PQ}0:Q]`p]P`jPQ}`jQ]P`]PPZPQ}PZQ,@]],@PP0<Q<@}QTh]p]ThPpzPXdQdh}pzQ|]]|PPQ}Q]]PPQ}Q]]PPQ}Q]]PPQ}Q0]]0PP ,Q,0}QDX]]DXPPHTQTX}Ql]]lP Pp|Q|} Q]]PPQ}Q] 0]P *PQ} *Q] ]PPQ}Q ]] PPQ }Q0U0P@XUXlU@\T\(](+T+l]bVx}^}~\V*~+FVFl~}~ $ &3$p"~ $ &3$p"}v~ $ &3$p8PpPVF]VVF]VPFZPQvFZQ+0gxPPnUn#UPrTrƭ^ƭT#^x\!]%B]Vv2]Kd]div~#vv $ &3$p"v $ &3$p"P"P|v $ &3$p8έ׮\Lr\\K\L\%\BV\_Lr__K_L_%_BV_2T]L]+K]i]LѴ]%]B|]]ܵ]PE\+\FKPL\Ѵ\%B\|\ܵ\Y2VrKViVɮPɮ_r_K_L__V_Yұ0ұٱTr0+1+K0i%0B0LrKL%BVPP P\lPɰPPP\E\%B\%L1}PUSU{S{USUSpssUssUssUss\ssUpssTss]ssQssTssTss]ssTpssQssSssRssQssQssSssQtssUssUssUss\ssU09U9RU0_T_]RT0_Q_SзQз3S38Q8RSP^з^(,P,^^޹^FR^HPsP`zPlz0zqQqzwq"Pwq"^~x^3^O_._H~ HWpWkTk~pH~STz|U,{S|S0gtz#|tz#0%QpuQGPGgtgut|tBGp3%GPPPgt3%gut3%|t3%RcQcu yr$|Q/1rq1DRD[ЕU^UL^ЕTLЕQwQ8w8QwLQЕRR88TRT66LRЕX%]%)U)X$]$X]LX1p1Vvv4v4x]xPݗ]v)v)8P8]VPř]řҙ}ҙ֙}xP]PkRks}xvۛ]ۛߛQߛ}x$ɣ]ɣѣRѣwL]LQPQB]GL]ptPtV)8VTbVPLVhUVAQVVDrVɣV?tV V4bVVVQVO}VϧV¨VGV|VªVGVpVGV#V080Tm0mpPphVh0AVAV0VV0DVDr0rV0?V?t0tV 0 4V4b0bV0V0OVO}0}ϧVϧ0¨V¨0VG0GV0ªVªG0GpVp0VB0G0V#0#LV080Tv0h0AV00Dr00?t0 04b000O}0ϧ0¨0G00ªG0p0B0G0#0\8\T\h\AV\\Dr\\?t\ \4b\\\O}\ϧ\¨\G\\ªG\p\B\G\#\^Ж__Ҙ_ҘטPט_ZTfZfkwkwwz Tfz P_~_h_AV__Dr__?t_ _4b___O}_ϧ_¨_G__ªG_p_B_G_#_)-P-CVCBGLv0hɞ0ɞמPAV00Dr00?t0 04b000O}0ϧr0r|P¨0G00ªG0p0B0G0#0wV&V&+P+QVVrVr|QrVr|PPmVɣVPmVɣV$__POOUOQ]QQUQRS]OOTOgPgPRTRRRRSTOOQOPwPQQQQwQBRQBRjRwjRRQRRwR"SQ"SJSwJSRSQOOROP^PPUPQRQR^RBRRBRRS^OOXOQ_QQXQRS_O6PV6PlP\lPPVPQ\QGQ^GQiQViQmQpQQ^QQVQR\R=R^=RBRPBReRVeRjRPjRR\RRPRRVRRPRR\RRPRRVRS\S"SP"SESVESJSPJSRS\OQ]QQUQRS]O6P\RR\RR\RRP`SSUS:U\:UEUUEUU\`SSTSU`SSQSUT^UTrUQrUU^`SSRSU`SSXST]TYUXYUU]`SSYSUSTVT.Tv.TeTveTTvTTv TTv(TTvxYUrUv rUUvUUVUUPUUVS:U\:UEUUEUU\S)T_UU_UUPK9KU9KL\LLULOM\K=KT=KK_KLTLOM_K=KQ=KOMK=KR=KL]LLRLOM]CKKVKKvKLvL$Lv4L>Lv >LPLVPLTLpLLvLLvL Mv M-MV-M2MP2MOMVCKL\LLULOM\tKL^LL^LJM^JMOMPAAUAwB]wB|BU|BB]ABVB!Bv!B6BV6B:BpBBVBBPBBVAwB]wB|BU|BB]AuB\|BB\BBPPMxMUxMN\NNUNO\PMMTMNwNROTROOwPMMQM@N^@N:OQ:OO^PMMRMlN]lN!OR!OO]PMMXMOMMVMNvNPNvPN|Nv|NNv NNv(NNVNNpN Ov !O:Ov:OROvROuOVuOzOPzOOVMN\NNUNO\MN_NO_OOP@hohUohIj\IjTjUTjzk\@hhThiwi kT kRkwRkzkT@hhQhzk@hhRhNi_NijRjRk_RkzkR@hhXhzk@hhYhzkYhiVi#iv#i^iv^iiviiv iiv(iKj]Tjsj]sjxj}xjj]jjv jjv(jjvj kv kMkVMkRkPRkuk]ukzkPhIj\IjTjUTjzk\hi]jj]j"k]"k'kP'kRk]@fUf7_7<U<"_@yTy"@yQy"@yRy"@yXy1\1<X<"\@yYy"}>V>[v[vvv 3]<]]]b}xqV]ՊVՊڊPڊV]"P}7_7<U<"_P5^<q^P"^V]]PАU]'U']АT"_"'T'_АQ>\>QVvvpAeVejPjV]'U'](,P, ^'^B\A\PffUfg^ggUg7h^ffTfg_ggTg7h_ffQfg]ggQg7h]fRgVRg_gv_grgvxghVhhPh7hVfg^ggUg7h^gmg\g2h\2h7hPYYUYZ^Z$ZU$ZZ^YYTYZ]Z$ZT$ZZ]%YYVYYvYYvYZV9ZRZvRZuZVuZzZPzZZV%YZ^Z$ZU$ZZ^VYY\9ZZ\ZZPZZUZ[_[[U[\_ZZTZ[^[[T[\^ZZQZ[][[Q[\]ZB[VB[q[vq[[v[[v[[V\*\v*\B\vB\e\Ve\j\Pj\\VZ[_[[U[\_Za[\*\\\\\P>>U>?]??U??]??U??]>>p>%?V%?/?v/?D?VD?H?p??p??V??P>?]??U??]??U??]>?\??\??P??\@@U@A]A AU AA]AAUArA]@6@p6@@V@@v@@V@@p AAp1AmAVmArAP@A]A AU AA]AAUArA]c@A\AJA\JAOAPOArA\UUUUV]VVUVGW]UUTUV^VVTVGW^UiVViVvVvvVVvxW%WV%W*WP*WGWVUV]VVUVGW]&VV\WBW\BWGWPPWtWUtWX]XXUXX]PWxWTxWX_XXTXX_PWxWQxWX^XXQXX^~WWVWWvWXvpXXVXXPXXV~WX]XXUXX]W X\XX\XXPpUS'U'SUfSpTfT]']}}x:]]6]6;P;f]S'U'SUfSP"\'\TX\XaP:^S^SXP"\\T'PP Q|QpU^UM^MTUT:^pTIwITwTTTbwbTqwqT<w<aTaiwiT1w1:TpQI]]Լ}Tw]w}q]:]I_n_nyy\R/wTb_bw\ww|q_qw\_\aPa1_1:\^UM^MTUT:^IVVTqV:Vź0źкк\\T\ҿbq<a1PTҿbq<a1:^iTiλ]λ޻\an]u\<a\n\PԼ_w_^b^q^<^a^1^kkUkl^llUlm^kkTkl_llTlm_kkQkl]llQlm]k"lV"l/lv/lBlvxllVllPlmVkl^llUlm^k=l\lm\mmPstUttVtuUu+uV+u7uU7u8uU8uWuVWuYuUYuuVuuUssTsUt_UtuTu3u_3uuTstQtt]tuQu/u]/u8uQ8uu]t+tP+t_tSu7uP_tntPntuSuuP8uuSUtVtPVtu_8uu_ttPttVUL^LOUO+^T+VvVP VOxVxvvpPV.VDVVP V P+V4~~^bPb~ ~+~4|P + (~4O~u~D~ ~+~(P4DwDO~Dw|H=$ w+w0(p0)4A\\O0;O\\D0 0414A]A1P]O10D11+1 4_4O~O_D~D_ ~ _+~P(]O] ] TOuTTwF\\\ \~ q ~"p" p~"1~p"U w~"#O^P^]]P ]+]P6\Ox\ \+\pPvOVv*v:T T5\x\0:0:T0;]ww~w]RPPQ#Q.~R~.PP$Q$)~#).qQpU]V]oUoVUVUPh\o\Pj]joPo]Ph\o\<CPC<C0CJ_Jqqw_<CPC  U { \{ U g \g n Un  \ U ! T!  ^ T ^ P k ^n ^ P + _ m _n l _l \ | \  \ < ]< s \s x Px _ P+ } ] # ]n ]Q ]^ m Pm s V e Vn V  VQ V P Z  Pn | Z|  n 0x 1 P ]  ] l \x \ P \^^U^ ^U`hUhiU`hThiT^^U^^UPfjfUjff\ffUPfnfTnff]ffTffPffSffPJJUJKSKKUJJTJKVKKTJKPpb|HbBnpy(B"NPY"mmo~u.3<qMMO^{U    Q _ p   A x  8 .I*  E*}}D-p'')7X 0 a F!p!!!F!!!!!!!"#0##z"""#0#H#h######$U%%&$$$$$U%%& &&-'-'/'='^'(()*'''''((@)`))*m*m*o*}**+,i- ++++++,,,i------/@/0I.O.S.Z.^./@///000001U22311111U223 33-4-4/4=4^455)74444455@6`6)7m7m7o7}7788.9 8888888.9m9m9o9}99::.; :::::::.;m;m;o;};;<=i> <<<<<<===i>>???N@@8APAABBB C CCC>CuDD FCCCCCuDD E@E F]F]F`FnFFFFjHHHKIKIMI\IzI>JxJJIJJJ_KK8MOMMMOOOOOPRSSSUUVQV0WGWWWXXAYYZZZ*[p\\\\\\\]]]%]t]]]O^O^R^a^^v__b2_P__8bfbbD_P__8bfbb_____` ``bbaaasa@a@aEaJaaaaabbbc,cc(dYddddddee2f^e`eieef2ff:g h7hhhk0kk llm=m=m?mMmnmnnipmmmmmnnooippppppq rYr6qqqq r@rrrrrr sHs^st u@uuht u@uuuuuuuswwxcvOwwx]x]x_xnxx>yhyyx>y|yyyyyyzzz){zzz{m{m{o{}{{|}i~ ||||||}}}i~~~~~~@IOSZ^@UU --/=^)ɅυӅڅޅ@`)&]]_mŌY ŌpYpp 47<-mp͒%PY_cjn%PДIXXpO`BGL]_d+HkpvͣHPpvכۛ%nB}}%PYڱxPp(H!(H36{30hx@1:CHLnԼh hx@h1ggix0]P]P]P]p@X::BB__gg$$,,LLTTtt||<<DDddll 0X%::BB__gg$$,,LLTTtt||<<DDddll 0xBBBVggg{x@P0@`pP`,,,@TTThp|||0DDDXlll 0 +-3P +-3q(8A +(8 + `w00mmo}4XXX==?Mnc`jlu8` 0  ! @' p- @P(! 80:!8:!@:!:!Q O Q O Q5 (Ut Q8 | (U hX.  0U8[  }h  hX  [  pX8  o0  [g  ^  [8  w  ^  (bZ  ^8    (b  he  0b8L  Z  he  mg  pe  mg3  mim  pg  mi  l pi81 lr: lR "nh "n o 0nr o q oW q HtT q8 Ht " `(" > Y" " @ " " ?"# p-# -# -,#(@!;#8:!b# .n#0:!"#8# @#@:!#:!##(@!#'Z'h'w''''''''( $(1(E(S(c(v(((((((( ),)8)"8@!M)`) _x)))(@!)))))**<*N*j*******++#+1+>+L+\+ v++++++"++ ,,.annobin_Expat.c.annobin_Expat.c_end.annobin_Expat.c.hot.annobin_Expat.c_end.hot.annobin_Expat.c.unlikely.annobin_Expat.c_end.unlikely.annobin_Expat.c.startup.annobin_Expat.c_end.startup.annobin_Expat.c.exit.annobin_Expat.c_end.exit.annobin_convert_to_unicode.start.annobin_convert_to_unicode.endconvert_to_unicode.annobin_XS_XML__Parser__Expat_ElementIndex.start.annobin_XS_XML__Parser__Expat_ElementIndex.endXS_XML__Parser__Expat_ElementIndex.annobin_XS_XML__Parser__Expat_GetErrorCode.start.annobin_XS_XML__Parser__Expat_GetErrorCode.endXS_XML__Parser__Expat_GetErrorCode.annobin_XS_XML__Parser__Expat_GetCurrentByteIndex.start.annobin_XS_XML__Parser__Expat_GetCurrentByteIndex.endXS_XML__Parser__Expat_GetCurrentByteIndex.annobin_XS_XML__Parser__Expat_GetCurrentColumnNumber.start.annobin_XS_XML__Parser__Expat_GetCurrentColumnNumber.endXS_XML__Parser__Expat_GetCurrentColumnNumber.annobin_XS_XML__Parser__Expat_GetCurrentLineNumber.start.annobin_XS_XML__Parser__Expat_GetCurrentLineNumber.endXS_XML__Parser__Expat_GetCurrentLineNumber.annobin_append_error.start.annobin_append_error.endappend_error.annobin_XS_XML__Parser__Expat_ParseDone.start.annobin_XS_XML__Parser__Expat_ParseDone.endXS_XML__Parser__Expat_ParseDone.annobin_XS_XML__Parser__Expat_ParsePartial.start.annobin_XS_XML__Parser__Expat_ParsePartial.endXS_XML__Parser__Expat_ParsePartial.annobin_XS_XML__Parser__Expat_ParseString.start.annobin_XS_XML__Parser__Expat_ParseString.endXS_XML__Parser__Expat_ParseString.annobin_suspend_callbacks.start.annobin_suspend_callbacks.endsuspend_callbacks.annobin_XS_XML__Parser__Expat_SkipUntil.start.annobin_XS_XML__Parser__Expat_SkipUntil.endXS_XML__Parser__Expat_SkipUntil.annobin_XS_XML__Parser__Expat_UnsetAllHandlers.start.annobin_XS_XML__Parser__Expat_UnsetAllHandlers.endXS_XML__Parser__Expat_UnsetAllHandlers.annobin_XS_XML__Parser__Expat_SetExtEntFinishHandler.start.annobin_XS_XML__Parser__Expat_SetExtEntFinishHandler.endXS_XML__Parser__Expat_SetExtEntFinishHandler.annobin_XS_XML__Parser__Expat_SetExternalEntityRefHandler.start.annobin_XS_XML__Parser__Expat_SetExternalEntityRefHandler.endXS_XML__Parser__Expat_SetExternalEntityRefHandlerexternalEntityRef.annobin_XS_XML__Parser__Expat_SetNotationDeclHandler.start.annobin_XS_XML__Parser__Expat_SetNotationDeclHandler.endXS_XML__Parser__Expat_SetNotationDeclHandlernotationDecl.annobin_XS_XML__Parser__Expat_SetUnparsedEntityDeclHandler.start.annobin_XS_XML__Parser__Expat_SetUnparsedEntityDeclHandler.endXS_XML__Parser__Expat_SetUnparsedEntityDeclHandlerunparsedEntityDecl.annobin_XS_XML__Parser__Expat_SetCommentHandler.start.annobin_XS_XML__Parser__Expat_SetCommentHandler.endXS_XML__Parser__Expat_SetCommentHandlercommenthandle.annobin_XS_XML__Parser__Expat_SetProcessingInstructionHandler.start.annobin_XS_XML__Parser__Expat_SetProcessingInstructionHandler.endXS_XML__Parser__Expat_SetProcessingInstructionHandlerprocessingInstruction.annobin_XS_XML__Parser__Expat_SetCharacterDataHandler.start.annobin_XS_XML__Parser__Expat_SetCharacterDataHandler.endXS_XML__Parser__Expat_SetCharacterDataHandlercharacterData.annobin_XS_XML__Parser__Expat_SetEndElementHandler.start.annobin_XS_XML__Parser__Expat_SetEndElementHandler.endXS_XML__Parser__Expat_SetEndElementHandler.annobin_XS_XML__Parser__Expat_SetStartElementHandler.start.annobin_XS_XML__Parser__Expat_SetStartElementHandler.endXS_XML__Parser__Expat_SetStartElementHandler.annobin_XS_XML__Parser__Expat_SetEndCdataHandler.start.annobin_XS_XML__Parser__Expat_SetEndCdataHandler.endXS_XML__Parser__Expat_SetEndCdataHandlerendCdata.annobin_endCdata.start.annobin_endCdata.end.annobin_startCdata.start.annobin_startCdata.endstartCdata.annobin_doctypeEnd.start.annobin_doctypeEnd.enddoctypeEnd.annobin_XS_XML__Parser__Expat_SetStartCdataHandler.start.annobin_XS_XML__Parser__Expat_SetStartCdataHandler.endXS_XML__Parser__Expat_SetStartCdataHandler.annobin_XS_XML__Parser__Expat_PositionContext.start.annobin_XS_XML__Parser__Expat_PositionContext.endXS_XML__Parser__Expat_PositionContext.annobin_XS_XML__Parser__Expat_OriginalString.start.annobin_XS_XML__Parser__Expat_OriginalString.endXS_XML__Parser__Expat_OriginalString.annobin_newUTF8SVpv.start.annobin_newUTF8SVpv.endnewUTF8SVpv.annobin_xmlDecl.start.annobin_xmlDecl.endxmlDecl.annobin_doctypeStart.start.annobin_doctypeStart.enddoctypeStart.annobin_notationDecl.start.annobin_notationDecl.end.annobin_unparsedEntityDecl.start.annobin_unparsedEntityDecl.end.annobin_commenthandle.start.annobin_commenthandle.end.annobin_processingInstruction.start.annobin_processingInstruction.end.annobin_nsEnd.start.annobin_nsEnd.endnsEnd.annobin_nsStart.start.annobin_nsStart.endnsStart.annobin_XS_XML__Parser__Expat_FreeEncoding.start.annobin_XS_XML__Parser__Expat_FreeEncoding.endXS_XML__Parser__Expat_FreeEncoding.annobin_myfree.start.annobin_myfree.endmyfree.annobin_mymalloc.start.annobin_mymalloc.endmymalloc.annobin_XS_XML__Parser__Expat_LoadEncoding.start.annobin_XS_XML__Parser__Expat_LoadEncoding.endXS_XML__Parser__Expat_LoadEncodingEncodingTable.annobin_XS_XML__Parser__Expat_ErrorString.start.annobin_XS_XML__Parser__Expat_ErrorString.endXS_XML__Parser__Expat_ErrorString.annobin_XS_XML__Parser__Expat_GetSpecifiedAttributeCount.start.annobin_XS_XML__Parser__Expat_GetSpecifiedAttributeCount.endXS_XML__Parser__Expat_GetSpecifiedAttributeCount.annobin_newUTF8SVpvn.start.annobin_newUTF8SVpvn.endnewUTF8SVpvn.annobin_defaulthandle.start.annobin_defaulthandle.enddefaulthandle.annobin_entityDecl.start.annobin_entityDecl.endentityDecl.annobin_characterData.start.annobin_characterData.end.annobin_XS_XML__Parser__Expat_SetDefaultHandler.start.annobin_XS_XML__Parser__Expat_SetDefaultHandler.endXS_XML__Parser__Expat_SetDefaultHandler.annobin_XS_XML__Parser__Expat_RecognizedString.start.annobin_XS_XML__Parser__Expat_RecognizedString.endXS_XML__Parser__Expat_RecognizedStringrecString.annobin_XS_XML__Parser__Expat_DefaultCurrent.start.annobin_XS_XML__Parser__Expat_DefaultCurrent.endXS_XML__Parser__Expat_DefaultCurrent.annobin_recString.start.annobin_recString.end.annobin_gen_ns_name.start.annobin_gen_ns_name.endgen_ns_name.annobin_XS_XML__Parser__Expat_GenerateNSName.start.annobin_XS_XML__Parser__Expat_GenerateNSName.endXS_XML__Parser__Expat_GenerateNSName.annobin_XS_XML__Parser__Expat_GetBase.start.annobin_XS_XML__Parser__Expat_GetBase.endXS_XML__Parser__Expat_GetBase.annobin_XS_XML__Parser__Expat_SetBase.start.annobin_XS_XML__Parser__Expat_SetBase.endXS_XML__Parser__Expat_SetBase.annobin_XS_XML__Parser__Expat_SetXMLDeclHandler.start.annobin_XS_XML__Parser__Expat_SetXMLDeclHandler.endXS_XML__Parser__Expat_SetXMLDeclHandler.annobin_XS_XML__Parser__Expat_SetEndDoctypeHandler.start.annobin_XS_XML__Parser__Expat_SetEndDoctypeHandler.endXS_XML__Parser__Expat_SetEndDoctypeHandler.annobin_XS_XML__Parser__Expat_SetDoctypeHandler.start.annobin_XS_XML__Parser__Expat_SetDoctypeHandler.endXS_XML__Parser__Expat_SetDoctypeHandler.annobin_XS_XML__Parser__Expat_SetAttListDeclHandler.start.annobin_XS_XML__Parser__Expat_SetAttListDeclHandler.endXS_XML__Parser__Expat_SetAttListDeclHandlerattributeDecl.annobin_attributeDecl.start.annobin_attributeDecl.end.annobin_XS_XML__Parser__Expat_SetElementDeclHandler.start.annobin_XS_XML__Parser__Expat_SetElementDeclHandler.endXS_XML__Parser__Expat_SetElementDeclHandlerelementDecl.annobin_generate_model.start.annobin_generate_model.endgenerate_modelQuantChar.annobin_elementDecl.start.annobin_elementDecl.end.annobin_XS_XML__Parser__Expat_SetEntityDeclHandler.start.annobin_XS_XML__Parser__Expat_SetEntityDeclHandler.endXS_XML__Parser__Expat_SetEntityDeclHandler.annobin_externalEntityRef.start.annobin_externalEntityRef.end.annobin_XS_XML__Parser__Expat_ParserCreate.start.annobin_XS_XML__Parser__Expat_ParserCreate.endXS_XML__Parser__Expat_ParserCreatensdelimmsendElementstartElementunknownEncoding.annobin_unknownEncoding.start.annobin_unknownEncoding.end.annobin_myrealloc.start.annobin_myrealloc.endmyrealloc.annobin_startElement.start.annobin_startElement.end.annobin_XS_XML__Parser__Expat_ParserRelease.start.annobin_XS_XML__Parser__Expat_ParserRelease.endXS_XML__Parser__Expat_ParserRelease.annobin_endElement.start.annobin_endElement.end.annobin_XS_XML__Parser__Expat_ParserFree.start.annobin_XS_XML__Parser__Expat_ParserFree.endXS_XML__Parser__Expat_ParserFree.annobin_parse_stream.start.annobin_parse_stream.endparse_stream.annobin_XS_XML__Parser__Expat_Do_External_Parse.start.annobin_XS_XML__Parser__Expat_Do_External_Parse.endXS_XML__Parser__Expat_Do_External_Parse.annobin_XS_XML__Parser__Expat_ParseStream.start.annobin_XS_XML__Parser__Expat_ParseStream.endXS_XML__Parser__Expat_ParseStream.annobin_boot_XML__Parser__Expat.start.annobin_boot_XML__Parser__Expat.endcrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.7303__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entry__FRAME_END___fini__dso_handle_DYNAMIC__GNU_EH_FRAME_HDR__TMC_END___GLOBAL_OFFSET_TABLE__initXML_SetCommentHandlerPerl_sv_setref_pvXML_GetBufferPerl_sv_2iv_flagsXML_SetNamespaceDeclHandlerPerl_sv_2bool_flagsXML_SetUnknownEncodingHandlerXML_GetErrorCodePerl_newRV_noincPerl_sv_2uv_flagsPerl_stack_growstrncmp@@GLIBC_2.2.5_ITM_deregisterTMCloneTableXML_GetCurrentByteIndexPerl_sv_catpvn_flagsXML_SetEntityDeclHandlerXML_ExternalEntityParserCreateXML_GetInputContextPerl_call_methodXML_GetBasePerl_sv_derived_fromPerl_av_lenXML_GetCurrentLineNumberPerl_pop_scopeXML_SetNotationDeclHandlerXML_SetExternalEntityRefHandlerXML_SetElementDeclHandler_edataPerl_newSVXML_SetEndDoctypeDeclHandlerXML_SetUnparsedEntityDeclHandlerXML_SetCdataSectionHandlerstrlen@@GLIBC_2.2.5__stack_chk_fail@@GLIBC_2.4strchr@@GLIBC_2.2.5Perl_sv_setiv_mgPL_thr_keyPerl_sv_setpvPerl_sv_catpvf_nocontextXML_GetCurrentColumnNumberXML_SetCharacterDataHandlerPerl_sv_blessXML_ParserFreeXML_SetXmlDeclHandlerXML_SetDefaultHandlerPerl_sv_2pv_flagsPerl_xs_boot_epilogXML_SetUserDataPerl_safesysmallocXML_ParseXML_SetStartDoctypeDeclHandler__gmon_start__Perl_newSVsvPerl_croak_xs_usagePerl_savetmpsXML_ParseBuffermemcpy@@GLIBC_2.14Perl_gv_stashpvXML_ParserCreate_MMXML_SetEndCdataSectionHandlerXML_SetAttlistDeclHandlerPerl_av_pushPerl_newSVpvPerl_safesyscallocpthread_getspecific@@GLIBC_2.2.5XML_SetBasePerl_av_popPerl_croak_nocontextPerl_newXS_deffileboot_XML__Parser__ExpatPerl_sv_setsv_flagsPerl_sv_2mortal__bss_startXML_SetParamEntityParsingPerl_safesysfreePerl_safesysreallocXML_ErrorStringPerl_call_pvPerl_sv_catsv_flagsXML_SetProcessingInstructionHandlerPerl_xs_handshakeXML_SetDefaultHandlerExpandXML_GetSpecifiedAttributeCountXML_SetElementHandlerXML_SetStartCdataSectionHandlerPerl_free_tmpsPerl_markstack_growPerl_hv_common_key_lenPerl_sv_setpvnPerl_newRVPerl_newSV_typePerl_sv_catpvPerl_call_svPerl_sv_free2Perl_push_scope_ITM_registerTMCloneTablePerl_newSVivPerl_gv_add_by_typePerl_sv_setivXML_GetCurrentByteCountPerl_newSVpvn__cxa_finalize@@GLIBC_2.2.5Perl_sv_newmortalXML_DefaultCurrentPerl_av_clearPerl_get_hv.symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.comment.gnu.build.attributes.debug_aranges.debug_info.debug_abbrev.debug_line.debug_str.debug_loc.debug_ranges88$.o``48  @ ;HoUo`d00hnBH x s!!@~@'@'0p-p-@@ 2PPP (!(! 8 8 0:!0:8:!8:@:!@:@ :!:L5X0Et!Pcf@n`5P:%#) 0`&,V|SAX/.packlist000064400000002501152346270120007012 0ustar00/usr/local/share/man/man3/XML::SAX.3pm /usr/local/share/man/man3/XML::SAX::DocumentLocator.3pm /usr/local/share/man/man3/XML::SAX::Intro.3pm /usr/local/share/man/man3/XML::SAX::ParserFactory.3pm /usr/local/share/man/man3/XML::SAX::PurePerl.3pm /usr/local/share/man/man3/XML::SAX::PurePerl::Reader.3pm /usr/local/share/perl5/XML/SAX.pm /usr/local/share/perl5/XML/SAX/DocumentLocator.pm /usr/local/share/perl5/XML/SAX/Intro.pod /usr/local/share/perl5/XML/SAX/ParserFactory.pm /usr/local/share/perl5/XML/SAX/PurePerl.pm /usr/local/share/perl5/XML/SAX/PurePerl/DTDDecls.pm /usr/local/share/perl5/XML/SAX/PurePerl/DebugHandler.pm /usr/local/share/perl5/XML/SAX/PurePerl/DocType.pm /usr/local/share/perl5/XML/SAX/PurePerl/EncodingDetect.pm /usr/local/share/perl5/XML/SAX/PurePerl/Exception.pm /usr/local/share/perl5/XML/SAX/PurePerl/NoUnicodeExt.pm /usr/local/share/perl5/XML/SAX/PurePerl/Productions.pm /usr/local/share/perl5/XML/SAX/PurePerl/Reader.pm /usr/local/share/perl5/XML/SAX/PurePerl/Reader/NoUnicodeExt.pm /usr/local/share/perl5/XML/SAX/PurePerl/Reader/Stream.pm /usr/local/share/perl5/XML/SAX/PurePerl/Reader/String.pm /usr/local/share/perl5/XML/SAX/PurePerl/Reader/URI.pm /usr/local/share/perl5/XML/SAX/PurePerl/Reader/UnicodeExt.pm /usr/local/share/perl5/XML/SAX/PurePerl/UnicodeExt.pm /usr/local/share/perl5/XML/SAX/PurePerl/XMLDecl.pm SAX/Expat/.packlist000064400000000126152346270120010074 0ustar00/usr/local/share/man/man3/XML::SAX::Expat.3pm /usr/local/share/perl5/XML/SAX/Expat.pm SAX/Base/.packlist000064400000000426152346270120007670 0ustar00/usr/local/share/man/man3/XML::SAX::Base.3pm /usr/local/share/man/man3/XML::SAX::BuildSAXBase.3pm /usr/local/share/man/man3/XML::SAX::Exception.3pm /usr/local/share/perl5/XML/SAX/Base.pm /usr/local/share/perl5/XML/SAX/BuildSAXBase.pl /usr/local/share/perl5/XML/SAX/Exception.pm NamespaceSupport/.packlist000064400000000143152346270120011650 0ustar00/usr/local/share/man/man3/XML::NamespaceSupport.3pm /usr/local/share/perl5/XML/NamespaceSupport.pm Simple/.packlist000064400000000250152346270120007607 0ustar00/usr/local/share/man/man3/XML::Simple.3pm /usr/local/share/man/man3/XML::Simple::FAQ.3pm /usr/local/share/perl5/XML/Simple.pm /usr/local/share/perl5/XML/Simple/FAQ.pod