Added printing requirements

This commit is contained in:
Tom Price
2014-12-07 17:32:24 +00:00
parent c76d12d877
commit 7ba11a2db9
571 changed files with 143368 additions and 6 deletions

8
z3c/__init__.py Normal file
View File

@@ -0,0 +1,8 @@
# this is a namespace package
try:
import pkg_resources
pkg_resources.declare_namespace(__name__)
except ImportError:
import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)

18
z3c/rml/README.txt Normal file
View File

@@ -0,0 +1,18 @@
=========================
Reportlab Markup Language
=========================
This package is a free implementation of the RML markup language developed by
Reportlab. Unfortunately, full compliance cannot be immediately verified,
since the RML User Guide is ambiguous, incomplete and even incorrect. This
package can also not support the commercial extensions to Reportlab.
In the course of implementing the specification, I made already some
improvements for various tags and added others fully. I also tried hard to
test all features. If you have any new sample RML files that you would like to
share, please check them in.
Why reimplement RML? The other free implementation of RML tinyRML is
unfortunately pretty messy code and hard to debug. It makes it also hard to
add additional tags. However, much thanks goes to their authors, since they
have solved some of the very tricky issues.

7
z3c/rml/__init__.py Normal file
View File

@@ -0,0 +1,7 @@
# Hook up our custom paragraph parser.
import z3c.rml.paraparser
import z3c.rml.rlfix
from reportlab.lib.styles import getSampleStyleSheet
SampleStyleSheet = getSampleStyleSheet()

607
z3c/rml/attr.py Normal file
View File

@@ -0,0 +1,607 @@
# #############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
# #############################################################################
"""RML Attribute Implementation
"""
import cStringIO
import logging
import os
import re
import reportlab.graphics.widgets.markers
import reportlab.lib.colors
import reportlab.lib.pagesizes
import reportlab.lib.styles
import reportlab.lib.units
import reportlab.lib.utils
import urllib
import zope.interface
import zope.schema
from lxml import etree
from z3c.rml import interfaces, SampleStyleSheet
MISSING = object()
logger = logging.getLogger("z3c.rml")
def getFileInfo(directive):
root = directive
while root.parent:
root = root.parent
return '(file %s, line %i)' % (
root.filename, directive.element.sourceline)
def getManager(context, interface=None):
if interface is None:
# Avoid circular imports
from z3c.rml import interfaces
interface = interfaces.IManager
# Walk up the path until the manager is found
# Using interface.providedBy is much slower because it does many more checks
while (
context is not None and
not interface in context.__class__.__dict__.get('__implemented__', {})
):
context = context.parent
# If no manager was found, raise an error
if context is None:
raise ValueError('The manager could not be found.')
return context
def deprecated(oldName, attr, reason):
zope.interface.directlyProvides(attr, interfaces.IDeprecated)
attr.deprecatedName = oldName
attr.deprecatedReason = reason
return attr
class RMLAttribute(zope.schema.Field):
"""An attribute of the RML directive."""
missing_value = MISSING
default = MISSING
def fromUnicode(self, ustr):
"""See zope.schema.interfaces.IField"""
if self.context is None:
raise ValueError('Attribute not bound to a context.')
return super(RMLAttribute, self).fromUnicode(unicode(ustr))
def get(self):
"""See zope.schema.interfaces.IField"""
# If the attribute has a deprecated partner and the deprecated name
# has been specified, use it.
if (interfaces.IDeprecated.providedBy(self) and
self.deprecatedName in self.context.element.attrib):
name = self.deprecatedName
logger.warn(
u'Deprecated attribute "%s": %s %s' % (
name, self.deprecatedReason, getFileInfo(self.context)))
else:
name = self.__name__
# Extract the value.
value = self.context.element.get(name, self.missing_value)
# Get the correct default value.
if value is self.missing_value:
if self.default is not None:
return self.default
return self.missing_value
return self.fromUnicode(value)
class BaseChoice(RMLAttribute):
choices = {}
doLower = True
def fromUnicode(self, value):
if self.doLower:
value = value.lower()
if value in self.choices:
return self.choices[value]
raise ValueError(
'%r not a valid value for attribute "%s". %s' % (
value, self.__name__, getFileInfo(self.context)))
class Combination(RMLAttribute):
"""A combination of several other attribute types."""
def __init__(self, value_types=(), *args, **kw):
super(Combination, self).__init__(*args, **kw)
self.value_types = value_types
def fromUnicode(self, value):
for value_type in self.value_types:
bound = value_type.bind(self)
try:
return bound.fromUnicode(value)
except ValueError:
pass
raise ValueError(
'"%s" is not a valid value. %s' % (
value, getFileInfo(self.context)))
class String(RMLAttribute, zope.schema.Bytes):
"""A simple Bytes string."""
class Text(RMLAttribute, zope.schema.Text):
"""A simple unicode string."""
class Integer(RMLAttribute, zope.schema.Int):
"""An integer. A minimum and maximum value can be specified."""
# By making min and max simple attributes, we avoid some validation
# problems.
min = None
max = None
class Float(RMLAttribute, zope.schema.Float):
"""An flaoting point. A minimum and maximum value can be specified."""
# By making min and max simple attributes, we avoid some validation
# problems.
min = None
max = None
class StringOrInt(RMLAttribute):
"""A (bytes) string or an integer."""
def fromUnicode(self, value):
try:
return int(value)
except ValueError:
return str(value)
class Sequence(RMLAttribute, zope.schema._field.AbstractCollection):
"""A list of values of a specified type."""
splitre = re.compile('[ \t\n,;]*')
def __init__(self, splitre=None, *args, **kw):
super(Sequence, self).__init__(*args, **kw)
if splitre is not None:
self.splitre = splitre
def fromUnicode(self, ustr):
if ustr.startswith('(') and ustr.endswith(')'):
ustr = ustr[1:-1]
ustr = ustr.strip()
raw_values = self.splitre.split(ustr)
result = [self.value_type.bind(self.context).fromUnicode(raw.strip())
for raw in raw_values]
if ((self.min_length is not None and len(result) < self.min_length) and
(self.max_length is not None and len(result) > self.max_length)):
raise ValueError(
'Length of sequence must be at least %s and at most %i. %s' % (
self.min_length, self.max_length,
getFileInfo(self.context)))
return result
class IntegerSequence(Sequence):
"""A sequence of integers."""
def fromUnicode(self, ustr):
ustr = ustr.strip()
pieces = self.splitre.split(ustr)
numbers = set([])
for piece in pieces:
# Ignore empty pieces.
if not piece:
continue
# The piece is a range.
if '-' in piece:
start, end = piece.split('-')
# Make range lower and upper bound inclusive.
numbers.update(range(int(start), int(end) + 1))
continue
# The piece is just a number
numbers.add(int(piece))
return list(numbers)
class Choice(BaseChoice):
"""A choice of several values. The values are always case-insensitive."""
def __init__(self, choices=None, doLower=True, *args, **kw):
super(Choice, self).__init__(*args, **kw)
if isinstance(choices, (tuple, list)):
choices = dict(
[(val.lower() if doLower else val, val) for val in choices])
else:
choices = dict(
[(key.lower() if doLower else key, val)
for key, val in choices.items()])
self.choices = choices
self.doLower = doLower
class Boolean(BaseChoice):
'''A boolean value.
For true the values "true", "yes", and "1" are allowed. For false, the
values "false", "no", "1" are allowed.
'''
choices = {'true': True, 'false': False,
'yes': True, 'no': False,
'1': True, '0': False,
}
class TextBoolean(BaseChoice):
'''A boolean value as text.
ReportLab sometimes exposes low-level APIs, so we have to provide values
that are directly inserted into the PDF.
For "true" the values "true", "yes", and "1" are allowed. For "false", the
values "false", "no", "1" are allowed.
'''
choices = {'true': 'true', 'false': 'false',
'yes': 'true', 'no': 'false',
'1': 'true', '0': 'false',
}
class BooleanWithDefault(Boolean):
'''This is a boolean field that can also receive the value "default".'''
choices = Boolean.choices.copy()
choices.update({'default': None})
class Measurement(RMLAttribute):
'''This field represents a length value.
The units "in" (inch), "cm", "mm", and "pt" are allowed. If no units are
specified, the value is given in points/pixels.
'''
def __init__(self, allowPercentage=False, allowStar=False, *args, **kw):
super(Measurement, self).__init__(*args, **kw)
self.allowPercentage = allowPercentage
self.allowStar = allowStar
units = [
(re.compile('^(-?[0-9\.]+)\s*in$'), reportlab.lib.units.inch),
(re.compile('^(-?[0-9\.]+)\s*cm$'), reportlab.lib.units.cm),
(re.compile('^(-?[0-9\.]+)\s*mm$'), reportlab.lib.units.mm),
(re.compile('^(-?[0-9\.]+)\s*pt$'), 1),
(re.compile('^(-?[0-9\.]+)\s*$'), 1)
]
allowPercentage = False
allowStar = False
def fromUnicode(self, value):
if value == 'None':
return None
if value == '*' and self.allowStar:
return value
if value.endswith('%') and self.allowPercentage:
return value
for unit in self.units:
res = unit[0].search(value, 0)
if res:
return unit[1] * float(res.group(1))
raise ValueError(
'The value %r is not a valid measurement. %s' % (
value, getFileInfo(self.context)))
class File(Text):
"""This field will return a file object.
The value itself can eith be be a relative or absolute path. Additionally
the following syntax is supported: [path.to.python.mpackage]/path/to/file
"""
open = staticmethod(urllib.urlopen)
packageExtract = re.compile('^\[([0-9A-z_.]*)\]/(.*)$')
doNotOpen = False
def __init__(self, doNotOpen=False, *args, **kw):
super(File, self).__init__(*args, **kw)
self.doNotOpen = doNotOpen
def fromUnicode(self, value):
# Check whether the value is of the form:
# [<module.path>]/rel/path/image.gif"
if value.startswith('['):
result = self.packageExtract.match(value)
if result is None:
raise ValueError(
'The package-path-pair you specified was incorrect. %s' % (
getFileInfo(self.context)))
modulepath, path = result.groups()
module = __import__(modulepath, {}, {}, (modulepath))
value = os.path.join(os.path.dirname(module.__file__), path)
# If there is a drive name in the path, then we want a local file to
# be opened. This is only interesting for Windows of course.
if os.path.splitdrive(value)[0]:
value = 'file:///' + value
# If the file is not to be opened, simply return the path.
if self.doNotOpen:
return value
# Open/Download the file
fileObj = self.open(value)
sio = cStringIO.StringIO(fileObj.read())
fileObj.close()
sio.seek(0)
return sio
class Image(File):
"""Similar to the file File attribute, except that an image is internally
expected."""
def __init__(self, onlyOpen=False, *args, **kw):
super(Image, self).__init__(*args, **kw)
self.onlyOpen = onlyOpen
def fromUnicode(self, value):
if value.lower().endswith('.svg') or value.lower().endswith('.svgz'):
return self._load_svg(value)
fileObj = super(Image, self).fromUnicode(value)
if self.onlyOpen:
return fileObj
return reportlab.lib.utils.ImageReader(fileObj)
def _load_svg(self, value):
manager = getManager(self.context)
width = self.context.element.get('width')
if width is not None:
width = Measurement().fromUnicode(width)
height = self.context.element.get('height')
if height is not None:
height = Measurement().fromUnicode(height)
preserve = self.context.element.get('preserveAspectRatio')
if preserve is not None:
preserve = Boolean().fromUnicode(preserve)
cache_key = '%s-%sx%s-%s' % (value, width, height, preserve)
if cache_key in manager.svgs:
return manager.svgs[cache_key]
from gzip import GzipFile
from reportlab.graphics import renderPM
from svg2rlg import Renderer
from xml.etree import cElementTree
fileObj = super(Image, self).fromUnicode(value)
svg = fileObj.getvalue()
if svg[:2] == '\037\213':
svg = GzipFile(fileobj=fileObj).read()
svg = cElementTree.fromstring(svg)
svg = Renderer(value).render(svg)
if preserve:
if width is not None or height is not None:
if width is not None and height is None:
height = svg.height * width / svg.width
elif height is not None and width is None:
width = svg.width * height / svg.height
elif float(width) / height > float(svg.width) / svg.height:
width = svg.width * height / svg.height
else:
height = svg.height * width / svg.width
else:
if width is None:
width = svg.width
if height is None:
height = svg.height
svg.scale(width / svg.width, height / svg.height)
svg.width = width
svg.height = height
svg = renderPM.drawToPIL(svg, dpi=300)
svg = reportlab.lib.utils.ImageReader(svg)
svg.read = True # A hack to get ImageReader through as an open Image
# when used with imageAndFlowables
manager.svgs[cache_key] = svg
return svg
class Color(RMLAttribute):
"""Requires the input of a color. There are several supported formats.
Three values in a row are interpreted as RGB value ranging from 0-255.
A string is interpreted as a name to a pre-defined color.
The 'CMYK()' wrapper around four values represents a CMYK color
specification.
"""
def __init__(self, acceptNone=False, *args, **kw):
super(Color, self).__init__(*args, **kw)
self.acceptNone = acceptNone
def fromUnicode(self, value):
if self.acceptNone and value.lower() == 'none':
return None
manager = getManager(self.context)
if value.startswith('rml:'):
value = manager.get_name(value[4:], '#000000')
if value in manager.colors:
return manager.colors[value]
try:
return reportlab.lib.colors.toColor(value)
# Bare except, since code raises string exception: Invalid color value
except:
raise ValueError(
'The color specification "%s" is not valid. %s' % (
value, getFileInfo(self.context)))
def _getStyle(context, value):
manager = getManager(context)
for styles in (manager.styles, SampleStyleSheet.byName):
if value in styles:
return styles[value]
elif 'style.' + value in styles:
return styles['style.' + value]
elif value.startswith('style.') and value[6:] in styles:
return styles[value[6:]]
raise ValueError('Style %r could not be found. %s' % (
value, getFileInfo(context)))
class Style(String):
"""Requires a valid style to be entered.
Whether the style is a paragraph, table or box style is irrelevant, except
that it has to fit the tag.
"""
default = SampleStyleSheet.byName['Normal']
def fromUnicode(self, value):
return _getStyle(self.context, value)
class Padding(Sequence):
"""This attribute is specific for padding and will produce the proper
length of the padding sequence."""
def __init__(self, *args, **kw):
kw.update(dict(value_type=Integer(), min_length=1, max_length=4))
super(Padding, self).__init__(*args, **kw)
def fromUnicode(self, value):
seq = super(Padding, self).fromUnicode(value)
# pdfgen does not like a single paddign value.
if len(seq) == 1:
seq.append(seq[0])
return seq
class Symbol(Text):
"""This attribute should contain the text representation of a symbol to be
used."""
def fromUnicode(self, value):
return reportlab.graphics.widgets.markers.makeMarker(value)
class PageSize(RMLAttribute):
"""A simple measurement pair that specifies the page size. Optionally you
can also specify a the name of a page size, such as A4, letter, or legal.
"""
sizePair = Sequence(value_type=Measurement())
words = Sequence(value_type=String())
def fromUnicode(self, value):
# First try to get a pair
try:
return self.sizePair.bind(self.context).fromUnicode(value)
except ValueError:
pass
# Now we try to lookup a name. The following type of combinations must
# work: "Letter" "LETTER" "A4 landscape" "letter portrait"
words = self.words.bind(self.context).fromUnicode(value)
words = [word.lower() for word in words]
# First look for the orientation
orienter = None
for orientation in ('landscape', 'portrait'):
if orientation in words:
orienter = getattr(reportlab.lib.pagesizes, orientation)
words.remove(orientation)
# We must have exactely one value left that matches a paper size
pagesize = getattr(reportlab.lib.pagesizes, words[0].upper())
# Now do the final touches
if orienter:
pagesize = orienter(pagesize)
return pagesize
class TextNode(RMLAttribute):
"""Return the text content of an element."""
def get(self):
if self.context.element.text is None:
return u''
return unicode(self.context.element.text).strip()
class FirstLevelTextNode(TextNode):
"""Gets all the text content of an element without traversing into any
child-elements."""
def get(self):
text = self.context.element.text or u''
for child in self.context.element.getchildren():
text += child.tail or u''
return text.strip()
class TextNodeSequence(Sequence, TextNode):
"""A sequence of values retrieved from the element's content."""
def get(self):
return self.fromUnicode(self.context.element.text)
class TextNodeGrid(TextNodeSequence):
"""A grid/matrix of values retrieved from the element's content.
The number of columns is specified for every case, but the number of rows
is dynamic.
"""
def __init__(self, columns=None, *args, **kw):
super(TextNodeGrid, self).__init__(*args, **kw)
self.columns = columns
def fromUnicode(self, ustr):
result = super(TextNodeGrid, self).fromUnicode(ustr)
if len(result) % self.columns != 0:
raise ValueError(
'Number of elements must be divisible by %i. %s' % (
self.columns, getFileInfo(self.context)))
return [result[i * self.columns:(i + 1) * self.columns]
for i in range(len(result) / self.columns)]
class RawXMLContent(RMLAttribute):
"""Retrieve the raw content of an element.
Only some special element substitution will be made.
"""
def __init__(self, *args, **kw):
super(RawXMLContent, self).__init__(*args, **kw)
def get(self):
# ReportLab's paragraph parser does not like attributes from other
# namespaces; sigh. So we have to improvize.
text = etree.tounicode(self.context.element, pretty_print=False)
text = text[text.find('>') + 1:text.rfind('<')]
return text
class XMLContent(RawXMLContent):
"""Same as 'RawXMLContent', except that the whitespace is normalized."""
def get(self):
text = super(XMLContent, self).get()
return text.strip().replace('\t', ' ')

1012
z3c/rml/canvas.py Normal file

File diff suppressed because it is too large Load Diff

1662
z3c/rml/chart.py Normal file

File diff suppressed because it is too large Load Diff

123
z3c/rml/directive.py Normal file
View File

@@ -0,0 +1,123 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""RML Directive Implementation
"""
import logging
import zope.interface
import zope.schema
from lxml import etree
from z3c.rml import interfaces
from z3c.rml.attr import getManager
logging.raiseExceptions = False
logger = logging.getLogger("z3c.rml")
ABORT_ON_INVALID_DIRECTIVE = False
def DeprecatedDirective(iface, reason):
zope.interface.directlyProvides(iface, interfaces.IDeprecatedDirective)
iface.setTaggedValue('deprecatedReason', reason)
return iface
def getFileInfo(directive, element=None):
root = directive
while root.parent:
root = root.parent
if element is None:
element = directive.element
return '(file %s, line %i)' %(root.filename, element.sourceline)
class RMLDirective(object):
zope.interface.implements(interfaces.IRMLDirective)
signature = None
factories = {}
def __init__(self, element, parent):
self.element = element
self.parent = parent
def getAttributeValues(self, ignore=None, select=None, attrMapping=None,
includeMissing=False, valuesOnly=False):
"""See interfaces.IRMLDirective"""
manager = getManager(self)
cache = '%s.%s' % (self.signature.__module__, self.signature.__name__)
if cache in manager.attributesCache:
fields = manager.attributesCache[cache]
else:
fields = []
for name, attr in zope.schema.getFieldsInOrder(self.signature):
fields.append((name, attr))
manager.attributesCache[cache] = fields
items = []
for name, attr in fields:
# Only add the attribute to the list, if it is supposed there
if ((ignore is None or name not in ignore) and
(select is None or name in select)):
# Get the value.
value = attr.bind(self).get()
# If no value was found for a required field, raise a value
# error
if attr.required and value is attr.missing_value:
raise ValueError(
'No value for required attribute "%s" '
'in directive "%s" %s.' % (
name, self.element.tag, getFileInfo(self)))
# Only add the entry if the value is not the missing value or
# missing values are requested to be included.
if value is not attr.missing_value or includeMissing:
items.append((name, value))
# Sort the items based on the section
if select is not None:
select = list(select)
items = sorted(items, key=lambda (n, v): select.index(n))
# If the attribute name does not match the internal API
# name, then convert the name to the internal one
if attrMapping:
items = [(attrMapping.get(name, name), value)
for name, value in items]
# Sometimes we only want the values without the names
if valuesOnly:
return [value for name, value in items]
return items
def processSubDirectives(self, select=None, ignore=None):
# Go through all children of the directive and try to process them.
for element in self.element.getchildren():
# Ignore all comments
if isinstance(element, etree._Comment):
continue
# Raise an error/log any unknown directive.
if element.tag not in self.factories:
msg = "Directive %r could not be processed and was " \
"ignored. %s" %(element.tag, getFileInfo(self, element))
# Record any tags/elements that could not be processed.
logger.warn(msg)
if ABORT_ON_INVALID_DIRECTIVE:
raise ValueError(msg)
continue
if select is not None and element.tag not in select:
continue
if ignore is not None and element.tag in ignore:
continue
directive = self.factories[element.tag](element, self)
directive.process()
def process(self):
self.processSubDirectives()

169
z3c/rml/doclogic.py Normal file
View File

@@ -0,0 +1,169 @@
##############################################################################
#
# Copyright (c) 2012 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""``doc*`` directives.
"""
import reportlab.platypus
from z3c.rml import attr, directive, flowable, interfaces, occurence
class IDocAssign(interfaces.IRMLDirectiveSignature):
"""Assign a value to the namesapce."""
var = attr.String(
title=u'Variable Name',
description=u'The name under which the value is stored.',
required=True)
expr = attr.String(
title=u'Expression',
description=u'The expression that creates the value when evaluated.',
required=True)
class DocAssign(flowable.Flowable):
signature = IDocAssign
klass = reportlab.platypus.flowables.DocAssign
class IDocExec(interfaces.IRMLDirectiveSignature):
"""Execute a statement."""
stmt = attr.String(
title=u'Statement',
description=u'The statement to be executed.',
required=True)
class DocExec(flowable.Flowable):
signature = IDocExec
klass = reportlab.platypus.flowables.DocExec
class IDocPara(interfaces.IRMLDirectiveSignature):
"""Create a paragraph with the value returned from the expression."""
expr = attr.String(
title=u'Expression',
description=u'The expression to be executed.',
required=True)
format = attr.String(
title=u'Format',
description=u'The format used to render the expression value.',
required=False)
style = attr.Style(
title=u'Style',
description=u'The style of the paragraph.',
required=False)
escape = attr.Boolean(
title=u'Escape Text',
description=u'When set (default) the expression value is escaped.',
required=False)
class DocPara(flowable.Flowable):
signature = IDocPara
klass = reportlab.platypus.flowables.DocPara
class IDocAssert(interfaces.IRMLDirectiveSignature):
"""Assert a certain condition."""
cond = attr.String(
title=u'Condition',
description=u'The condition to be asserted.',
required=True)
format = attr.String(
title=u'Format',
description=u'The text displayed if assertion fails.',
required=False)
class DocAssert(flowable.Flowable):
signature = IDocAssert
klass = reportlab.platypus.flowables.DocAssert
class IDocElse(interfaces.IRMLDirectiveSignature):
"""Starts 'else' block."""
class DocElse(flowable.Flowable):
signature = IDocElse
def process(self):
if not isinstance(self.parent, DocIf):
raise ValueError("<docElse> can only be placed inside a <docIf>")
self.parent.flow = self.parent.elseFlow
class IDocIf(flowable.IFlow):
"""Display story flow based on the value of the condition."""
cond = attr.String(
title=u'Condition',
description=u'The condition to be tested.',
required=True)
class DocIf(flowable.Flow):
signature = IDocAssert
klass = reportlab.platypus.flowables.DocIf
def __init__(self, *args, **kw):
super(flowable.Flow, self).__init__(*args, **kw)
self.thenFlow = self.flow = []
self.elseFlow = []
def process(self):
args = dict(self.getAttributeValues())
self.processSubDirectives()
dif = self.klass(
thenBlock = self.thenFlow, elseBlock = self.elseFlow, **args)
self.parent.flow.append(dif)
class IDocWhile(flowable.IFlow):
"""Repeat the included directives as long as the condition is true."""
cond = attr.String(
title=u'Condition',
description=u'The condition to be tested.',
required=True)
class DocWhile(flowable.Flow):
signature = IDocAssert
klass = reportlab.platypus.flowables.DocWhile
def process(self):
args = dict(self.getAttributeValues())
self.processSubDirectives()
dwhile = self.klass(whileBlock = self.flow, **args)
self.parent.flow.append(dwhile)
flowable.Flow.factories['docAssign'] = DocAssign
flowable.Flow.factories['docExec'] = DocExec
flowable.Flow.factories['docPara'] = DocPara
flowable.Flow.factories['docAssert'] = DocAssert
flowable.Flow.factories['docIf'] = DocIf
flowable.Flow.factories['docElse'] = DocElse
flowable.Flow.factories['docWhile'] = DocWhile
flowable.IFlow.setTaggedValue(
'directives',
flowable.IFlow.getTaggedValue('directives') +
(occurence.ZeroOrMore('docAssign', IDocAssign),
occurence.ZeroOrMore('docExec', IDocExec),
occurence.ZeroOrMore('docPara', IDocPara),
occurence.ZeroOrMore('docIf', IDocIf),
occurence.ZeroOrMore('docElse', IDocElse),
occurence.ZeroOrMore('docWhile', IDocWhile),
)
)

757
z3c/rml/document.py Normal file
View File

@@ -0,0 +1,757 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""RML ``document`` element
"""
import cStringIO
import logging
import sys
import zope.interface
import reportlab.pdfgen.canvas
from reportlab.pdfbase import pdfmetrics, ttfonts, cidfonts
from reportlab.lib import colors, fonts
from reportlab.platypus import tableofcontents
from reportlab.platypus.doctemplate import IndexingFlowable
from z3c.rml import attr, canvas, directive, doclogic, interfaces, list
from z3c.rml import occurence, pdfinclude, special, storyplace, stylesheet
from z3c.rml import template
LOGGER_NAME = 'z3c.rml.render'
class IRegisterType1Face(interfaces.IRMLDirectiveSignature):
"""Register a new Type 1 font face."""
afmFile = attr.File(
title=u'AFM File',
description=u'Path to AFM file used to register the Type 1 face.',
doNotOpen=True,
required=True)
pfbFile = attr.File(
title=u'PFB File',
description=u'Path to PFB file used to register the Type 1 face.',
doNotOpen=True,
required=True)
class RegisterType1Face(directive.RMLDirective):
signature = IRegisterType1Face
def process(self):
args = self.getAttributeValues(valuesOnly=True)
face = pdfmetrics.EmbeddedType1Face(*args)
pdfmetrics.registerTypeFace(face)
class IRegisterFont(interfaces.IRMLDirectiveSignature):
"""Register a new font based on a face and encoding."""
name = attr.String(
title=u'Name',
description=(u'The name under which the font can be used in style '
u'declarations or other parameters that lookup a font.'),
required=True)
faceName = attr.String(
title=u'Face Name',
description=(u'The name of the face the font uses. The face has to '
u'be previously registered.'),
required=True)
encName = attr.String(
title=u'Encoding Name',
description=(u'The name of the encdoing to be used.'),
required=True)
class RegisterFont(directive.RMLDirective):
signature = IRegisterFont
def process(self):
args = self.getAttributeValues(valuesOnly=True)
font = pdfmetrics.Font(*args)
pdfmetrics.registerFont(font)
class IAddMapping(interfaces.IRMLDirectiveSignature):
"""Map various styles(bold, italic) of a font name to the actual ps fonts
used."""
faceName = attr.String(
title=u'Name',
description=(u'The name of the font to be mapped'),
required=True)
bold = attr.Integer(
title=u'Bold',
description=(u'Bold'),
required=True)
italic = attr.Integer(
title=u'Italic',
description=(u'Italic'),
required=True)
psName = attr.String(
title=u'psName',
description=(u'Actual font name mapped'),
required=True)
class AddMapping(directive.RMLDirective):
signature = IAddMapping
def process(self):
args = self.getAttributeValues(valuesOnly=True)
fonts.addMapping(*args)
class IRegisterTTFont(interfaces.IRMLDirectiveSignature):
"""Register a new TrueType font given the TT file and face name."""
faceName = attr.String(
title=u'Face Name',
description=(u'The name of the face the font uses. The face has to '
u'be previously registered.'),
required=True)
fileName = attr.File(
title=u'File Name',
description=u'File path of the of the TrueType font.',
doNotOpen=True,
required=True)
class RegisterTTFont(directive.RMLDirective):
signature = IRegisterTTFont
def process(self):
args = self.getAttributeValues(valuesOnly=True)
font = ttfonts.TTFont(*args)
pdfmetrics.registerFont(font)
class IRegisterCidFont(interfaces.IRMLDirectiveSignature):
"""Register a new CID font given the face name."""
faceName = attr.String(
title=u'Face Name',
description=(u'The name of the face the font uses. The face has to '
u'be previously registered.'),
required=True)
encName = attr.String(
title=u'Encoding Name',
description=(u'The name of the encoding to use for the font.'),
required=False)
class RegisterCidFont(directive.RMLDirective):
signature = IRegisterCidFont
attrMapping = {'faceName': 'face', 'encName': 'encoding'}
def process(self):
args = dict(self.getAttributeValues(attrMapping=self.attrMapping))
if 'encoding' in args:
font = cidfonts.CIDFont(**args)
else:
font = cidfonts.UnicodeCIDFont(**args)
pdfmetrics.registerFont(font)
class IRegisterFontFamily(interfaces.IRMLDirectiveSignature):
"""Register a new font family."""
name = attr.String(
title=u'Name',
description=(u'The name of the font family.'),
required=True)
normal = attr.String(
title=u'Normal Font Name',
description=(u'The name of the normal font variant.'),
required=False)
bold = attr.String(
title=u'Bold Font Name',
description=(u'The name of the bold font variant.'),
required=False)
italic = attr.String(
title=u'Italic Font Name',
description=(u'The name of the italic font variant.'),
required=False)
boldItalic = attr.String(
title=u'Bold/Italic Font Name',
description=(u'The name of the bold/italic font variant.'),
required=True)
class RegisterFontFamily(directive.RMLDirective):
signature = IRegisterFontFamily
attrMapping = {'name': 'family'}
def process(self):
args = dict(self.getAttributeValues(attrMapping=self.attrMapping))
pdfmetrics.registerFontFamily(**args)
class IColorDefinition(interfaces.IRMLDirectiveSignature):
"""Define a new color and give it a name to be known under."""
id = attr.String(
title=u'Id',
description=(u'The id/name the color will be available under.'),
required=True)
RGB = attr.Color(
title=u'RGB Color',
description=(u'The color value that is represented.'),
required=False)
CMYK = attr.Color(
title=u'CMYK Color',
description=(u'The color value that is represented.'),
required=False)
value = attr.Color(
title=u'Color',
description=(u'The color value that is represented.'),
required=False)
spotName = attr.String(
title=u'Spot Name',
description=(u'The Spot Name of the CMYK color.'),
required=False)
density = attr.Float(
title=u'Density',
description=(u'The color density of the CMYK color.'),
min=0.0,
max=1.0,
required=False)
knockout = attr.String(
title=u'Knockout',
description=(u'The knockout of the CMYK color.'),
required=False)
alpha = attr.Float(
title=u'Alpha',
description=(u'The alpha channel of the color.'),
min=0.0,
max=1.0,
required=False)
class ColorDefinition(directive.RMLDirective):
signature = IColorDefinition
def process(self):
kwargs = dict(self.getAttributeValues())
id = kwargs.pop('id')
for attrName in ('RGB', 'CMYK', 'value'):
color = kwargs.pop(attrName, None)
if color is not None:
# CMYK has additional attributes.
for name, value in kwargs.items():
setattr(color, name, value)
manager = attr.getManager(self)
manager.colors[id] = color
return
raise ValueError('At least one color definition must be specified.')
# Initialize also supports the <color> tag.
stylesheet.Initialize.factories['color'] = ColorDefinition
stylesheet.IInitialize.setTaggedValue(
'directives',
stylesheet.IInitialize.getTaggedValue('directives') +
(occurence.ZeroOrMore('color', IColorDefinition),)
)
class IStartIndex(interfaces.IRMLDirectiveSignature):
"""Start a new index."""
name = attr.String(
title=u'Name',
description=u'The name of the index.',
default='index',
required=True)
offset = attr.Integer(
title=u'Offset',
description=u'The counting offset.',
min=0,
required=False)
format = attr.Choice(
title=u'Format',
description=(u'The format the index is going to use.'),
choices=interfaces.LIST_FORMATS,
required=False)
class StartIndex(directive.RMLDirective):
signature = IStartIndex
def process(self):
kwargs = dict(self.getAttributeValues())
name = kwargs['name']
manager = attr.getManager(self)
manager.indexes[name] = tableofcontents.SimpleIndex(**kwargs)
class ICropMarks(interfaces.IRMLDirectiveSignature):
"""Crop Marks specification"""
name = attr.String(
title=u'Name',
description=u'The name of the index.',
default='index',
required=True)
borderWidth = attr.Measurement(
title=u'Border Width',
description=u'The width of the crop mark border.',
required=False)
markColor = attr.Color(
title=u'Mark Color',
description=u'The color of the crop marks.',
required=False)
markWidth = attr.Measurement(
title=u'Mark Width',
description=u'The line width of the actual crop marks.',
required=False)
markLength = attr.Measurement(
title=u'Mark Length',
description=u'The length of the actual crop marks.',
required=False)
markLast = attr.Boolean(
title=u'Mark Last',
description=u'If set, marks are drawn after the content is rendered.',
required=False)
bleedWidth = attr.Measurement(
title=u'Bleed Width',
description=(u'The width of the page bleed.'),
required=False)
class CropMarksProperties(object):
borderWidth = 36
markWidth = 0.5
markColor = colors.toColor('green')
markLength = 18
markLast = True
bleedWidth = 0
class CropMarks(directive.RMLDirective):
signature = ICropMarks
def process(self):
cmp = CropMarksProperties()
for name, value in self.getAttributeValues():
setattr(cmp, name, value)
self.parent.parent.cropMarks = cmp
class ILogConfig(interfaces.IRMLDirectiveSignature):
"""Configure the render logger."""
level = attr.Choice(
title=u'Level',
description=u'The default log level.',
choices=interfaces.LOG_LEVELS,
doLower=False,
required=False)
format = attr.String(
title=u'Format',
description=u'The format of the log messages.',
required=False)
filename = attr.File(
title=u'File Name',
description=u'The path to the file that is being logged.',
doNotOpen=True,
required=True)
filemode = attr.Choice(
title=u'File Mode',
description=u'The mode to open the file in.',
choices={'WRITE': 'w', 'APPEND': 'a'},
default='a',
required=False)
datefmt = attr.String(
title=u'Date Format',
description=u'The format of the log message date.',
required=False)
class LogConfig(directive.RMLDirective):
signature = ILogConfig
def process(self):
args = dict(self.getAttributeValues())
# cleanup win paths like:
# ....\\input\\file:///D:\\trunk\\...
if sys.platform[:3].lower() == "win":
if args['filename'].startswith('file:///'):
args['filename'] = args['filename'][len('file:///'):]
logger = logging.getLogger(LOGGER_NAME)
handler = logging.FileHandler(args['filename'], args['filemode'])
formatter = logging.Formatter(
args.get('format'), args.get('datefmt'))
handler.setFormatter(formatter)
logger.addHandler(handler)
if 'level' in args:
logger.setLevel(args['level'])
self.parent.parent.logger = logger
class IDocInit(interfaces.IRMLDirectiveSignature):
occurence.containing(
occurence.ZeroOrMore('color', IColorDefinition),
occurence.ZeroOrMore('name', special.IName),
occurence.ZeroOrMore('registerType1Face', IRegisterType1Face),
occurence.ZeroOrMore('registerFont', IRegisterFont),
occurence.ZeroOrMore('registerCidFont', IRegisterCidFont),
occurence.ZeroOrMore('registerTTFont', IRegisterTTFont),
occurence.ZeroOrMore('registerFontFamily', IRegisterFontFamily),
occurence.ZeroOrMore('addMapping', IAddMapping),
occurence.ZeroOrMore('logConfig', ILogConfig),
occurence.ZeroOrMore('cropMarks', ICropMarks),
occurence.ZeroOrMore('startIndex', IStartIndex),
)
pageMode = attr.Choice(
title=u'Page Mode',
description=(u'The page mode in which the document is opened in '
u'the viewer.'),
choices=('UseNone', 'UseOutlines', 'UseThumbs', 'FullScreen'),
required=False)
pageLayout = attr.Choice(
title=u'Page Layout',
description=(u'The layout in which the pages are displayed in '
u'the viewer.'),
choices=('SinglePage', 'OneColumn', 'TwoColumnLeft', 'TwoColumnRight'),
required=False)
useCropMarks = attr.Boolean(
title=u'Use Crop Marks',
description=u'A flag when set shows crop marks on the page.',
required=False)
hideToolbar = attr.TextBoolean(
title=u'Hide Toolbar',
description=(u'A flag indicating that the toolbar is hidden in '
u'the viewer.'),
required=False)
hideMenubar = attr.TextBoolean(
title=u'Hide Menubar',
description=(u'A flag indicating that the menubar is hidden in '
u'the viewer.'),
required=False)
hideWindowUI = attr.TextBoolean(
title=u'Hide Window UI',
description=(u'A flag indicating that the window UI is hidden in '
u'the viewer.'),
required=False)
fitWindow = attr.TextBoolean(
title=u'Fit Window',
description=u'A flag indicating that the page fits in the viewer.',
required=False)
centerWindow = attr.TextBoolean(
title=u'Center Window',
description=(u'A flag indicating that the page fits is centered '
u'in the viewer.'),
required=False)
displayDocTitle = attr.TextBoolean(
title=u'Display Doc Title',
description=(u'A flag indicating that the document title is displayed '
u'in the viewer.'),
required=False)
nonFullScreenPageMode = attr.Choice(
title=u'Non-Full-Screen Page Mode',
description=(u'Non-Full-Screen page mode in the viewer.'),
choices=('UseNone', 'UseOutlines', 'UseThumbs', 'UseOC'),
required=False)
direction = attr.Choice(
title=u'Text Direction',
description=(u'The text direction of the PDF.'),
choices=('L2R', 'R2L'),
required=False)
viewArea = attr.Choice(
title=u'View Area',
description=(u'View Area setting used in the viewer.'),
choices=('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'),
required=False)
viewClip = attr.Choice(
title=u'View Clip',
description=(u'View Clip setting used in the viewer.'),
choices=('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'),
required=False)
printArea = attr.Choice(
title=u'Print Area',
description=(u'Print Area setting used in the viewer.'),
choices=('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'),
required=False)
printClip = attr.Choice(
title=u'Print Clip',
description=(u'Print Clip setting used in the viewer.'),
choices=('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'),
required=False)
printScaling = attr.Choice(
title=u'Print Scaling',
description=(u'The print scaling mode in which the document is opened '
u'in the viewer.'),
choices=('None', 'AppDefault'),
required=False)
class DocInit(directive.RMLDirective):
signature = IDocInit
factories = {
'name': special.Name,
'color': ColorDefinition,
'registerType1Face': RegisterType1Face,
'registerFont': RegisterFont,
'registerTTFont': RegisterTTFont,
'registerCidFont': RegisterCidFont,
'registerFontFamily': RegisterFontFamily,
'addMapping': AddMapping,
'logConfig': LogConfig,
'cropMarks': CropMarks,
'startIndex': StartIndex,
}
viewerOptions = dict(
(option[0].lower()+option[1:], option)
for option in ['HideToolbar', 'HideMenubar', 'HideWindowUI', 'FitWindow',
'CenterWindow', 'DisplayDocTitle',
'NonFullScreenPageMode', 'Direction', 'ViewArea',
'ViewClip', 'PrintArea', 'PrintClip', 'PrintScaling'])
def process(self):
kwargs = dict(self.getAttributeValues())
self.parent.cropMarks = kwargs.get('useCropMarks', False)
self.parent.pageMode = kwargs.get('pageMode')
self.parent.pageLayout = kwargs.get('pageLayout')
for name in self.viewerOptions:
setattr(self.parent, name, kwargs.get(name))
super(DocInit, self).process()
class IDocument(interfaces.IRMLDirectiveSignature):
occurence.containing(
occurence.ZeroOrOne('docinit', IDocInit),
occurence.ZeroOrOne('stylesheet', stylesheet.IStylesheet),
occurence.ZeroOrOne('template', template.ITemplate),
occurence.ZeroOrOne('story', template.IStory),
occurence.ZeroOrOne('pageInfo', canvas.IPageInfo),
occurence.ZeroOrMore('pageDrawing', canvas.IPageDrawing),
)
filename = attr.String(
title=u'File Name',
description=(u'The default name of the output file, if no output '
u'file was provided.'),
required=True)
title = attr.String(
title=u'Title',
description=(u'The "Title" annotation for the PDF document.'),
required=False)
subject = attr.String(
title=u'Subject',
description=(u'The "Subject" annotation for the PDF document.'),
required=False)
author = attr.String(
title=u'Author',
description=(u'The "Author" annotation for the PDF document.'),
required=False)
creator = attr.String(
title=u'Creator',
description=(u'The "Creator" annotation for the PDF document.'),
required=False)
debug = attr.Boolean(
title=u'Debug',
description=u'A flag to activate the debug output.',
default=False,
required=False)
compression = attr.BooleanWithDefault(
title=u'Compression',
description=(u'A flag determining whether page compression should '
u'be used.'),
required=False)
invariant = attr.BooleanWithDefault(
title=u'Invariant',
description=(u'A flag that determines whether the produced PDF '
u'should be invariant with respect to the date and '
u'the exact contents.'),
required=False)
class Document(directive.RMLDirective):
signature = IDocument
zope.interface.implements(interfaces.IManager,
interfaces.IPostProcessorManager,
interfaces.ICanvasManager)
factories = {
'docinit': DocInit,
'stylesheet': stylesheet.Stylesheet,
'template': template.Template,
'story': template.Story,
'pageInfo': canvas.PageInfo,
'pageDrawing': canvas.PageDrawing,
}
def __init__(self, element):
super(Document, self).__init__(element, None)
self.names = {}
self.styles = {}
self.colors = {}
self.indexes = {}
self.postProcessors = []
self.filename = '<unknown>'
self.cropMarks = False
self.pageLayout = None
self.pageMode = None
self.logger = None
self.svgs = {}
self.attributesCache = {}
for name in DocInit.viewerOptions:
setattr(self, name, None)
def _indexAdd(self, canvas, name, label):
self.indexes[name](canvas, name, label)
def _beforeDocument(self):
self._initCanvas(self.doc.canv)
self.canvas = self.doc.canv
def _initCanvas(self, canvas):
canvas._indexAdd = self._indexAdd
canvas.manager = self
if self.pageLayout:
canvas._doc._catalog.setPageLayout(self.pageLayout)
if self.pageMode:
canvas._doc._catalog.setPageMode(self.pageMode)
for name, option in DocInit.viewerOptions.items():
if getattr(self, name) is not None:
canvas.setViewerPreference(option, getattr(self, name))
# Setting annotations.
data = dict(self.getAttributeValues(
select=('title', 'subject', 'author', 'creator')))
canvas.setTitle(data.get('title'))
canvas.setSubject(data.get('subject'))
canvas.setAuthor(data.get('author'))
canvas.setCreator(data.get('creator'))
def process(self, outputFile=None, maxPasses=2):
"""Process document"""
# Reset all reportlab global variables. This is very important for
# ReportLab not to fail.
reportlab.rl_config._reset()
debug = self.getAttributeValues(select=('debug',), valuesOnly=True)[0]
if not debug:
reportlab.rl_config.shapeChecking = 0
# Add our colors mapping to the default ones.
colors.toColor.setExtraColorsNameSpace(self.colors)
if outputFile is None:
# TODO: This is relative to the input file *not* the CWD!!!
outputFile = open(self.element.get('filename'), 'wb')
# Create a temporary output file, so that post-processors can
# massage the output
self.outputFile = tempOutput = cStringIO.StringIO()
# Process common sub-directives
self.processSubDirectives(select=('docinit', 'stylesheet'))
# Handle Page Drawing Documents
if self.element.find('pageDrawing') is not None:
kwargs = dict(self.getAttributeValues(
select=('compression', 'debug'),
attrMapping={'compression': 'pageCompression',
'debug': 'verbosity'}
))
kwargs['cropMarks'] = self.cropMarks
self.canvas = reportlab.pdfgen.canvas.Canvas(tempOutput, **kwargs)
self._initCanvas(self.canvas)
self.processSubDirectives(select=('pageInfo', 'pageDrawing'))
self.canvas.save()
# Handle Flowable-based documents.
elif self.element.find('template') is not None:
self.processSubDirectives(select=('template', 'story'))
self.doc.beforeDocument = self._beforeDocument
self.doc.multiBuild(self.flowables, maxPasses=maxPasses)
# Process all post processors
for name, processor in self.postProcessors:
tempOutput.seek(0)
tempOutput = processor.process(tempOutput)
# Save the result into our real output file
tempOutput.seek(0)
outputFile.write(tempOutput.getvalue())
# Cleanup.
colors.toColor.setExtraColorsNameSpace({})
reportlab.rl_config.shapeChecking = 1
def get_name(self, name, default=None):
if default is None:
default = u''
if name not in self.names:
if self.doc._indexingFlowables and isinstance(
self.doc._indexingFlowables[-1],
DummyIndexingFlowable
):
return default
self.doc._indexingFlowables.append(DummyIndexingFlowable())
return self.names.get(name, default)
class DummyIndexingFlowable(IndexingFlowable):
"""A dummy flowable to trick multiBuild into performing +1 pass."""
def __init__(self):
self.i = -1
def isSatisfied(self):
self.i += 1
return self.i

76
z3c/rml/dtd.py Normal file
View File

@@ -0,0 +1,76 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Generate a DTD from the code
"""
import zope.schema
from z3c.rml import attr, document, occurence
occurence2Symbol = {
occurence.ZeroOrMore: '*',
occurence.ZeroOrOne: '?',
occurence.OneOrMore: '+',
}
def generateElement(name, signature):
if signature is None:
return ''
# Create the list of sub-elements.
subElementList = []
for occurence in signature.queryTaggedValue('directives', ()):
subElementList.append(
occurence.tag + occurence2Symbol.get(occurence.__class__, '')
)
fields = zope.schema.getFieldsInOrder(signature)
for attrName, field in fields:
if isinstance(field, attr.TextNode):
subElementList.append('#PCDATA')
break
subElementList = ','.join(subElementList)
if subElementList:
subElementList = ' (' + subElementList + ')'
text = '\n<!ELEMENT %s%s>' %(name, subElementList)
# Create a list of attributes for this element.
for attrName, field in fields:
# Ignore text nodes, since they are not attributes.
if isinstance(field, attr.TextNode):
continue
# Create the type
if isinstance(field, attr.Choice):
type = '(' + '|'.join(field.choices.keys()) + ')'
else:
type = 'CDATA'
# Create required flag
if field.required:
required = '#REQUIRED'
else:
required = '#IMPLIED'
# Put it all together
text += '\n<!ATTLIST %s %s %s %s>' %(name, attrName, type, required)
text += '\n'
# Walk through all sub-elements, creating th eDTD entries for them.
for occurence in signature.queryTaggedValue('directives', ()):
text += generateElement(occurence.tag, occurence.signature)
return text
def generate(useWrapper=False):
text = generateElement('document', document.Document.signature)
if useWrapper:
text = '<!DOCTYPE RML [\n%s]>\n' %text
return text
def main():
print generate()

1611
z3c/rml/flowable.py Normal file

File diff suppressed because it is too large Load Diff

356
z3c/rml/form.py Normal file
View File

@@ -0,0 +1,356 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Page Drawing Related Element Processing
"""
import types
import reportlab.pdfbase.pdfform
from z3c.rml import attr, directive, interfaces, occurence
try:
import reportlab.graphics.barcode
except ImportError:
# barcode package has not been installed
import types
import reportlab.graphics
reportlab.graphics.barcode = types.ModuleType('barcode')
reportlab.graphics.barcode.getCodeNames = lambda : ()
class IBarCodeBase(interfaces.IRMLDirectiveSignature):
"""Create a bar code."""
code = attr.Choice(
title=u'Code',
description=u'The name of the type of code to use.',
choices=reportlab.graphics.barcode.getCodeNames(),
required=True)
value = attr.TextNode(
title=u'Value',
description=u'The value represented by the code.',
required=True)
width = attr.Measurement(
title=u'Width',
description=u'The width of the barcode.',
required=False)
height = attr.Measurement(
title=u'Height',
description=u'The height of the barcode.',
required=False)
barStrokeColor = attr.Color(
title=u'Bar Stroke Color',
description=(u'The color of the line strokes in the barcode.'),
required=False)
barStrokeWidth = attr.Measurement(
title=u'Bar Stroke Width',
description=u'The width of the line strokes in the barcode.',
required=False)
barFillColor = attr.Color(
title=u'Bar Fill Color',
description=(u'The color of the filled shapes in the barcode.'),
required=False)
gap = attr.Measurement(
title=u'Gap',
description=u'The width of the inter-character gaps.',
required=False)
# Bar code dependent attributes
# I2of5, Code128, Standard93, FIM, POSTNET, Ean13B
barWidth = attr.Measurement(
title=u'Bar Width',
description=u'The width of the smallest bar within the barcode',
required=False)
# I2of5, Code128, Standard93, FIM, POSTNET
barHeight = attr.Measurement(
title=u'Bar Height',
description=u'The height of the symbol.',
required=False)
# I2of5
ratio = attr.Float(
title=u'Ratio',
description=(u'The ratio of wide elements to narrow elements. '
u'Must be between 2.0 and 3.0 (or 2.2 and 3.0 if the '
u'barWidth is greater than 20 mils (.02 inch)).'),
min=2.0,
max=3.0,
required=False)
# I2of5
# Should be boolean, but some code want it as int; will still work
checksum = attr.Integer(
title=u'Ratio',
description=(u'A flag that enables the computation and inclusion of '
u'the check digit.'),
required=False)
# I2of5
bearers = attr.Float(
title=u'Bearers',
description=(u'Height of bearer bars (horizontal bars along the top '
u'and bottom of the barcode). Default is 3 '
u'x-dimensions. Set to zero for no bearer bars.'
u'(Bearer bars help detect misscans, so it is '
u'suggested to leave them on).'),
required=False)
# I2of5, Code128, Standard93, FIM, Ean13
quiet = attr.Boolean(
title=u'Quiet Zone',
description=(u'A flag to include quiet zones in the symbol.'),
required=False)
# I2of5, Code128, Standard93, FIM, Ean13
lquiet = attr.Measurement(
title=u'Left Quiet Zone',
description=(u"Quiet zone size to the left of code, if quiet is "
u"true. Default is the greater of .25 inch or .15 times "
u"the symbol's length."),
required=False)
# I2of5, Code128, Standard93, FIM, Ean13
rquiet = attr.Measurement(
title=u'Right Quiet Zone',
description=(u"Quiet zone size to the right of code, if quiet is "
u"true. Default is the greater of .25 inch or .15 times "
u"the symbol's length."),
required=False)
# I2of5, Code128, Standard93, FIM, POSTNET, Ean13
fontName = attr.String(
title=u'Font Name',
description=(u'The font used to print the value.'),
required=False)
# I2of5, Code128, Standard93, FIM, POSTNET, Ean13
fontSize = attr.Measurement(
title=u'Font Size',
description=(u'The size of the value text.'),
required=False)
# I2of5, Code128, Standard93, FIM, POSTNET, Ean13
humanReadable = attr.Boolean(
title=u'Human Readable',
description=(u'A flag when set causes the value to be printed below '
u'the bar code.'),
required=False)
# I2of5, Standard93
stop = attr.Boolean(
title=u'Show Start/Stop',
description=(u'A flag to specify whether the start/stop symbols '
u'are to be shown.'),
required=False)
# FIM, POSTNET
spaceWidth = attr.Measurement(
title=u'Space Width',
description=u'The space of the inter-character gaps.',
required=False)
# POSTNET
shortHeight = attr.Measurement(
title=u'Short Height',
description=u'The height of the short bar.',
required=False)
# Ean13
textColor = attr.Color(
title=u'Text Color',
description=(u'The color of human readable text.'),
required=False)
# USPS4S
routing = attr.String(
title=u'Routing',
description=u'The routing information string.',
required=False)
# QR
barLevel = attr.Choice(
title=u'Bar Level',
description=u'The error correction level for QR code',
choices=['L', 'M', 'Q', 'H'],
required=False)
class IBarCode(IBarCodeBase):
"""A barcode graphic."""
x = attr.Measurement(
title=u'X-Position',
description=u'The x-position of the lower-left corner of the barcode.',
default=0,
required=False)
y = attr.Measurement(
title=u'Y-Position',
description=u'The y-position of the lower-left corner of the barcode.',
default=0,
required=False)
isoScale = attr.Boolean(
title=u'Isometric Scaling',
description=u'When set, the aspect ration of the barcode is enforced.',
required=False)
class BarCode(directive.RMLDirective):
signature = IBarCode
def process(self):
kw = dict(self.getAttributeValues())
name = kw.pop('code')
kw['value'] = str(kw['value'])
x = kw.pop('x', 0)
y = kw.pop('y', 0)
code = reportlab.graphics.barcode.createBarcodeDrawing(name, **kw)
manager = attr.getManager(self, interfaces.ICanvasManager)
code.drawOn(manager.canvas, x, y)
class IField(interfaces.IRMLDirectiveSignature):
"""A field."""
title = attr.Text(
title=u'Title',
description=u'The title of the field.',
required=True)
x = attr.Measurement(
title=u'X-Position',
description=u'The x-position of the lower-left corner of the field.',
default=0,
required=True)
y = attr.Measurement(
title=u'Y-Position',
description=u'The y-position of the lower-left corner of the field.',
default=0,
required=True)
class Field(directive.RMLDirective):
signature = IField
callable = None
attrMapping = {}
def process(self):
kwargs = dict(self.getAttributeValues(attrMapping=self.attrMapping))
canvas = attr.getManager(self, interfaces.ICanvasManager).canvas
getattr(reportlab.pdfbase.pdfform, self.callable)(canvas, **kwargs)
class ITextField(IField):
"""A text field within the PDF"""
width = attr.Measurement(
title=u'Width',
description=u'The width of the text field.',
required=True)
height = attr.Measurement(
title=u'Height',
description=u'The height of the text field.',
required=True)
value = attr.Text(
title=u'Value',
description=u'The default text value of the field.',
required=False)
maxLength = attr.Integer(
title=u'Maximum Length',
description=u'The maximum amount of characters allowed in the field.',
required=False)
multiline = attr.Boolean(
title=u'Multiline',
description=u'A flag when set allows multiple lines within the field.',
required=False)
class TextField(Field):
signature = ITextField
callable = 'textFieldAbsolute'
attrMapping = {'maxLength': 'maxlen'}
class IButtonField(IField):
"""A button field within the PDF"""
value = attr.Choice(
title=u'Value',
description=u'The value of the button.',
choices=('Yes', 'Off'),
required=True)
class ButtonField(Field):
signature = IButtonField
callable = 'buttonFieldAbsolute'
class IOption(interfaces.IRMLDirectiveSignature):
"""An option in the select field."""
value = attr.TextNode(
title=u'Value',
description=u'The value of the option.',
required=True)
class Option(directive.RMLDirective):
signature = IOption
def process(self):
value = self.getAttributeValues(valuesOnly=True)[0]
self.parent.options.append(value)
class ISelectField(IField):
"""A selection field within the PDF"""
occurence.containing(
occurence.ZeroOrMore('option', IOption))
width = attr.Measurement(
title=u'Width',
description=u'The width of the select field.',
required=True)
height = attr.Measurement(
title=u'Height',
description=u'The height of the select field.',
required=True)
value = attr.Text(
title=u'Value',
description=u'The default value of the field.',
required=False)
class SelectField(Field):
signature = ISelectField
callable = 'selectFieldAbsolute'
factories = {'option': Option}
def process(self):
self.options = []
self.processSubDirectives()
kwargs = dict(self.getAttributeValues(attrMapping=self.attrMapping))
kwargs['options'] = self.options
canvas = attr.getManager(self, interfaces.ICanvasManager).canvas
getattr(reportlab.pdfbase.pdfform, self.callable)(canvas, **kwargs)

148
z3c/rml/interfaces.py Normal file
View File

@@ -0,0 +1,148 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""RML to PDF Converter Interfaces
"""
__docformat__ = "reStructuredText"
import logging
import reportlab.lib.enums
import zope.interface
import zope.schema
from z3c.rml.occurence import ZeroOrMore, ZeroOrOne, OneOrMore
JOIN_CHOICES = {'round': 1, 'mitered': 0, 'bevelled': 2}
CAP_CHOICES = {'default': 0, 'butt': 0, 'round': 1, 'square': 2}
ALIGN_CHOICES = {
'left': reportlab.lib.enums.TA_LEFT,
'right': reportlab.lib.enums.TA_RIGHT,
'center': reportlab.lib.enums.TA_CENTER,
'centre': reportlab.lib.enums.TA_CENTER,
'justify': reportlab.lib.enums.TA_JUSTIFY}
ALIGN_TEXT_CHOICES = {
'left': 'LEFT', 'right': 'RIGHT', 'center': 'CENTER', 'centre': 'CENTER',
'decimal': 'DECIMAL'}
VALIGN_TEXT_CHOICES = {
'top': 'TOP', 'middle': 'MIDDLE', 'bottom': 'BOTTOM'}
SPLIT_CHOICES = ('splitfirst', 'splitlast')
TEXT_TRANSFORM_CHOICES = ('uppercase', 'lowercase')
LIST_FORMATS = ('I', 'i', '123', 'ABC', 'abc')
ORDERED_LIST_TYPES = ('I', 'i', '1', 'A', 'a')
UNORDERED_BULLET_VALUES = ('bullet', 'circle', 'square', 'disc', 'diamond',
'rarrowhead')
LOG_LEVELS = {
'DEBUG': logging.DEBUG,
'INFO': logging.INFO,
'WARNING': logging.WARNING,
'ERROR': logging.ERROR,
'CRITICAL': logging.CRITICAL}
class IRML2PDF(zope.interface.Interface):
"""This is the main public API of z3c.rml"""
def parseString(xml):
"""Parse an XML string and convert it to PDF.
The output is a ``StringIO`` object.
"""
def go(xmlInputName, outputFileName=None, outDir=None, dtdDir=None):
"""Convert RML 2 PDF.
The generated file will be located in the ``outDir`` under the name
``outputFileName``.
"""
class IManager(zope.interface.Interface):
"""A manager of all document-global variables."""
names = zope.interface.Attribute("Names dict")
styles = zope.interface.Attribute("Styles dict")
colors = zope.interface.Attribute("Colors dict")
class IPostProcessorManager(zope.interface.Interface):
"""Manages all post processors"""
postProcessors = zope.interface.Attribute(
"List of tuples of the form: (name, processor)")
class ICanvasManager(zope.interface.Interface):
"""A manager for the canvas."""
canvas = zope.interface.Attribute("Canvas")
class IRMLDirectiveSignature(zope.interface.Interface):
"""The attribute and sub-directives signature of the current
RML directive."""
class IRMLDirective(zope.interface.Interface):
"""A directive in RML extracted from an Element Tree element."""
signature = zope.schema.Field(
title=u'Signature',
description=(u'The signature of the RML directive.'),
required=True)
parent = zope.schema.Field(
title=u'Parent RML Element',
description=u'The parent in the RML element hierarchy',
required=True,)
element = zope.schema.Field(
title=u'Element',
description=(u'The Element Tree element from which the data '
u'is retrieved.'),
required=True)
def getAttributeValues(ignore=None, select=None, includeMissing=False):
"""Return a list of name-value-tuples based on the signature.
If ``ignore`` is specified, all attributes are returned except the
ones listed in the argument. The values of the sequence are the
attribute names.
If ``select`` is specified, only attributes listed in the argument are
returned. The values of the sequence are the attribute names.
If ``includeMissing`` is set to true, then even missing attributes are
included in the value list.
"""
def processSubDirectives(self):
"""Process all sub-directives."""
def process(self):
"""Process the directive.
The main task for this method is to interpret the available data and
to make the corresponding calls in the Reportlab document.
This call should also process all sub-directives and process them.
"""
class IDeprecated(zope.interface.Interface):
"""Mark an attribute as being compatible."""
deprecatedName = zope.schema.TextLine(
title=u'Name',
description=u'The name of the original attribute.',
required=True)
deprecatedReason = zope.schema.Text(
title=u'Reason',
description=u'The reason the attribute has been deprecated.',
required=False)
class IDeprecatedDirective(zope.interface.interfaces.IInterface):
"""A directive that is deprecated."""

181
z3c/rml/list.py Normal file
View File

@@ -0,0 +1,181 @@
##############################################################################
#
# Copyright (c) 2012 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""``ul``, ``ol``, and ``li`` directives.
"""
__docformat__ = "reStructuredText"
import copy
import reportlab.lib.styles
import reportlab.platypus
import zope.schema
from reportlab.platypus import flowables
from z3c.rml import attr, directive, flowable, interfaces, occurence, stylesheet
class IListItem(stylesheet.IMinimalListStyle, flowable.IFlow):
"""A list item in an ordered or unordered list."""
style = attr.Style(
title=u'Style',
description=u'The list style that is applied to the list.',
required=False)
class ListItem(flowable.Flow):
signature = IListItem
klass = reportlab.platypus.ListItem
attrMapping = {}
styleAttributes = zope.schema.getFieldNames(stylesheet.IMinimalListStyle)
def processStyle(self, style):
attrs = self.getAttributeValues(select=self.styleAttributes)
if attrs or not hasattr(style, 'value'):
style = copy.deepcopy(style)
# Sigh, this is needed since unordered list items expect the value.
style.value = style.start
for name, value in attrs:
setattr(style, name, value)
return style
def process(self):
self.processSubDirectives()
args = dict(self.getAttributeValues(ignore=self.styleAttributes))
if 'style' not in args:
args['style'] = self.parent.baseStyle
args['style'] = self.processStyle(args['style'])
li = self.klass(self.flow, **args)
self.parent.flow.append(li)
class IOrderedListItem(IListItem):
"""An ordered list item."""
value = attr.Integer(
title=u'Bullet Value',
description=u'The counter value.',
required=False)
class OrderedListItem(ListItem):
signature = IOrderedListItem
class IUnorderedListItem(IListItem):
"""An ordered list item."""
value = attr.Choice(
title=u'Bullet Value',
description=u'The type of bullet character.',
choices=interfaces.UNORDERED_BULLET_VALUES,
required=False)
class UnorderedListItem(ListItem):
signature = IUnorderedListItem
styleAttributes = ListItem.styleAttributes + ['value']
class IListBase(stylesheet.IBaseListStyle):
style = attr.Style(
title=u'Style',
description=u'The list style that is applied to the list.',
required=False)
class ListBase(directive.RMLDirective):
klass = reportlab.platypus.ListFlowable
factories = {'li': ListItem}
attrMapping = {}
styleAttributes = zope.schema.getFieldNames(stylesheet.IBaseListStyle)
def __init__(self, *args, **kw):
super(ListBase, self).__init__(*args, **kw)
self.flow = []
def processStyle(self, style):
attrs = self.getAttributeValues(
select=self.styleAttributes, attrMapping=self.attrMapping)
if attrs:
style = copy.deepcopy(style)
for name, value in attrs:
setattr(style, name, value)
return style
def process(self):
args = dict(self.getAttributeValues(
ignore=self.styleAttributes, attrMapping=self.attrMapping))
if 'style' not in args:
args['style'] = reportlab.lib.styles.ListStyle('List')
args['style'] = self.baseStyle = self.processStyle(args['style'])
self.processSubDirectives()
li = self.klass(self.flow, **args)
self.parent.flow.append(li)
class IOrderedList(IListBase):
"""An ordered list."""
occurence.containing(
occurence.ZeroOrMore('li', IOrderedListItem),
)
bulletType = attr.Choice(
title=u'Bullet Type',
description=u'The type of bullet formatting.',
choices=interfaces.ORDERED_LIST_TYPES,
doLower=False,
required=False)
class OrderedList(ListBase):
signature = IOrderedList
factories = {'li': OrderedListItem}
styleAttributes = ListBase.styleAttributes + ['bulletType']
class IUnorderedList(IListBase):
"""And unordered list."""
occurence.containing(
occurence.ZeroOrMore('li', IUnorderedListItem),
)
value = attr.Choice(
title=u'Bullet Value',
description=u'The type of bullet character.',
choices=interfaces.UNORDERED_BULLET_VALUES,
default='disc',
required=False)
class UnorderedList(ListBase):
signature = IUnorderedList
attrMapping = {'value': 'start'}
factories = {'li': UnorderedListItem}
def getAttributeValues(self, *args, **kw):
res = super(UnorderedList, self).getAttributeValues(*args, **kw)
res.append(('bulletType', 'bullet'))
return res
flowable.Flow.factories['ol'] = OrderedList
flowable.IFlow.setTaggedValue(
'directives',
flowable.IFlow.getTaggedValue('directives') +
(occurence.ZeroOrMore('ol', IOrderedList),)
)
flowable.Flow.factories['ul'] = UnorderedList
flowable.IFlow.setTaggedValue(
'directives',
flowable.IFlow.getTaggedValue('directives') +
(occurence.ZeroOrMore('ul', IUnorderedList),)
)

113
z3c/rml/occurence.py Normal file
View File

@@ -0,0 +1,113 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Condition Implementation
"""
import reportlab
import sys
import zope.interface
import zope.schema
from zope.schema import fieldproperty
class ICondition(zope.interface.Interface):
"""Condition that is checked before a directive is available."""
__doc__ = zope.schema.TextLine(
title=u'Description',
description=u'The description of the condition.',
required=True)
def __call__(directive):
"""Check whether the condition is fulfilled for the given directive."""
class IOccurence(zope.interface.Interface):
"""Description of the occurence of a sub-directive."""
__doc__ = zope.schema.TextLine(
title=u'Description',
description=u'The description of the occurence.',
required=True)
tag = zope.schema.BytesLine(
title=u'Tag',
description=u'The tag of the sub-directive within the directive',
required=True)
signature = zope.schema.Field(
title=u'Signature',
description=u'The signature of the sub-directive.',
required=True)
condition = zope.schema.Field(
title=u'Condition',
description=u'The condition that the directive is available.',
required=False)
@zope.interface.implementer(ICondition)
def laterThanReportlab21(directive):
"""The directive is only available in Reportlab 2.1 and higher."""
return [int(num) for num in reportlab.Version.split('.')] >= (2, 0)
def containing(*occurences):
frame = sys._getframe(1)
f_locals = frame.f_locals
f_globals = frame.f_globals
if not (f_locals is not f_globals
and f_locals.get('__module__')
and f_locals.get('__module__') == f_globals.get('__name__')
):
raise TypeError("contains not called from signature interface")
f_locals['__interface_tagged_values__'] = {'directives': occurences}
class Occurence(object):
zope.interface.implements(IOccurence)
tag = fieldproperty.FieldProperty(IOccurence['tag'])
signature = fieldproperty.FieldProperty(IOccurence['signature'])
condition = fieldproperty.FieldProperty(IOccurence['condition'])
def __init__(self, tag, signature, condition=None):
self.tag = tag
self.signature = signature
self.condition = condition
class ZeroOrMore(Occurence):
"""Zero or More
This sub-directive can occur zero or more times.
"""
class ZeroOrOne(Occurence):
"""Zero or one
This sub-directive can occur zero or one time.
"""
class OneOrMore(Occurence):
"""One or More
This sub-directive can occur one or more times.
"""
class One(Occurence):
"""One
This sub-directive must occur exactly one time.
"""

115
z3c/rml/page.py Normal file
View File

@@ -0,0 +1,115 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Page Drawing Related Element Processing
"""
import cStringIO
from z3c.rml import attr, directive, interfaces
try:
import PyPDF2
from PyPDF2.generic import NameObject
except ImportError:
# We don't want to require pyPdf, if you do not want to use the features
# in this module.
PyPDF2 = None
class MergePostProcessor(object):
def __init__(self):
self.operations = {}
def process(self, inputFile1):
input1 = PyPDF2.PdfFileReader(inputFile1)
output = PyPDF2.PdfFileWriter()
# TODO: Do not access protected classes
output._info.getObject().update(input1.documentInfo)
if output._root:
# Backwards-compatible with PyPDF2 version 1.21
output._root.getObject()[NameObject("/Outlines")] = (
output._addObject(input1.trailer["/Root"]["/Outlines"]))
else:
# Compatible with PyPDF2 version 1.22+
output._root_object[NameObject("/Outlines")] = (
output._addObject(input1.trailer["/Root"]["/Outlines"]))
for (num, page) in enumerate(input1.pages):
if num in self.operations:
for mergeFile, mergeNumber in self.operations[num]:
merger = PyPDF2.PdfFileReader(mergeFile)
mergerPage = merger.getPage(mergeNumber)
mergerPage.mergePage(page)
page = mergerPage
output.addPage(page)
outputFile = cStringIO.StringIO()
output.write(outputFile)
return outputFile
class IMergePage(interfaces.IRMLDirectiveSignature):
"""Merges an existing PDF Page into the one to be generated."""
filename = attr.File(
title=u'File',
description=(u'Reference to the PDF file to extract the page from.'),
required=True)
page = attr.Integer(
title=u'Page Number',
description=u'The page number of the PDF file that is used to merge..',
required=True)
class MergePage(directive.RMLDirective):
signature = IMergePage
def getProcessor(self):
manager = attr.getManager(self, interfaces.IPostProcessorManager)
procs = dict(manager.postProcessors)
if 'MERGE' not in procs:
proc = MergePostProcessor()
manager.postProcessors.append(('MERGE', proc))
return proc
return procs['MERGE']
def process(self):
if PyPDF2 is None:
raise Exception(
'pyPdf is not installed, so this feature is not available.')
inputFile, inPage = self.getAttributeValues(valuesOnly=True)
manager = attr.getManager(self, interfaces.ICanvasManager)
outPage = manager.canvas.getPageNumber()-1
proc = self.getProcessor()
pageOperations = proc.operations.setdefault(outPage, [])
pageOperations.append((inputFile, inPage))
class MergePageInPageTemplate(MergePage):
def process(self):
if PyPDF2 is None:
raise Exception(
'pyPdf is not installed, so this feature is not available.')
inputFile, inPage = self.getAttributeValues(valuesOnly=True)
onPage = self.parent.pt.onPage
def drawOnCanvas(canvas, doc):
onPage(canvas, doc)
outPage = canvas.getPageNumber()-1
proc = self.getProcessor()
pageOperations = proc.operations.setdefault(outPage, [])
pageOperations.append((inputFile, inPage))
self.parent.pt.onPage = drawOnCanvas

45
z3c/rml/pagetemplate.py Normal file
View File

@@ -0,0 +1,45 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Page Template Support
"""
import zope
from z3c.rml import rml2pdf
try:
import zope.pagetemplate.pagetemplatefile
except ImportError, err:
raise
# zope.pagetemplate package has not been installed
import types
zope.pagetemplate = types.ModuleType('pagetemplate')
zope.pagetemplate.pagetemplatefile = types.ModuleType('pagetemplatefile')
zope.pagetemplate.pagetemplatefile.PageTemplateFile = object
class RMLPageTemplateFile(zope.pagetemplate.pagetemplatefile.PageTemplateFile):
def pt_getContext(self, args=(), options=None, **ignore):
rval = {'template': self,
'args': args,
'nothing': None,
'context': options
}
rval.update(self.pt_getEngine().getBaseNames())
return rval
def __call__(self, *args, **kwargs):
rml = super(RMLPageTemplateFile, self).__call__(*args, **kwargs)
return rml2pdf.parseString(
rml, filename=self.pt_source_file()).getvalue()

54
z3c/rml/pagetemplate.txt Normal file
View File

@@ -0,0 +1,54 @@
==================
RML Page Templates
==================
This package also provides optional support a helper class to use page
templates with RML without using the entire Zope framework. This document will
demonstrate how to use page templates and RML together.
In this example, we will simply iterate through a list of names and display
them in the PDF.
The first step is to create a page template:
>>> import tempfile
>>> ptFileName = tempfile.mktemp('.pt')
>>> open(ptFileName, 'w').write('''\
... <?xml version="1.0" encoding="UTF-8" ?>
... <!DOCTYPE document SYSTEM "rml.dtd">
... <document filename="template.pdf"
... xmlns:tal="http://xml.zope.org/namespaces/tal">
...
... <template pageSize="(21cm, 29cm)">
... <pageTemplate id="main">
... <frame id="main" x1="2cm" y1="2cm"
... width="17cm" height="25cm" />
... </pageTemplate>
... </template>
...
... <story>
... <para
... tal:repeat="name context/names"
... tal:content="name" />
... </story>
...
... </document>
... ''')
The ``context`` namespace will be created during rendering. I get back to this
later. In th enext step we instantiate the page template:
>>> from z3c.rml import pagetemplate
>>> rmlPageTemplate = pagetemplate.RMLPageTemplateFile(ptFileName)
All we have to do now is to render the template. The context of the template
is effectively the keyword arguments dictionary:
>>> rmlPageTemplate(names=(u'Roy', u'Daniel', u'Julian', u'Stephan'))
'%PDF-1.4...'
You can uncomment the following line to write out the PDF in the current
working directory:
#>>> open('pagetemplate-test.pdf', 'w').write(
#... rmlPageTemplate(names=(u'Roy', u'Daniel', u'Julian', u'Stephan')))

181
z3c/rml/paraparser.py Normal file
View File

@@ -0,0 +1,181 @@
##############################################################################
#
# Copyright (c) 2007-2008 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Paragraph-internal XML parser extensions.
"""
import copy
import inspect
import reportlab.lib.fonts
import reportlab.platypus.paraparser
class PageNumberFragment(reportlab.platypus.paraparser.ParaFrag):
"""A fragment whose `text` is computed at access time."""
def __init__(self, **attributes):
reportlab.platypus.paraparser.ParaFrag.__init__(self, **attributes)
self.counting_from = attributes.get('countingFrom', 1)
@property
def text(self):
# Guess 1: We're in a paragraph in a story.
frame = inspect.currentframe(4)
canvas = frame.f_locals.get('canvas', None)
if canvas is None:
# Guess 2: We're in a template
canvas = frame.f_locals.get('canv', None)
if canvas is None:
# Guess 3: We're in evalString or namedString
canvas = getattr(frame.f_locals.get('self', None), 'canv', None)
if canvas is None:
raise Exception("Can't use <pageNumber/> in this location.")
return str(canvas.getPageNumber() + int(self.counting_from) - 1)
class GetNameFragment(reportlab.platypus.paraparser.ParaFrag):
"""A fragment whose `text` is computed at access time."""
def __init__(self, **attributes):
reportlab.platypus.paraparser.ParaFrag.__init__(self, **attributes)
self.id = attributes['id']
self.default = attributes.get('default')
@property
def text(self):
# Guess 1: We're in a paragraph in a story.
frame = inspect.currentframe(4)
canvas = frame.f_locals.get('canvas', None)
if canvas is None:
# Guess 2: We're in a template
canvas = frame.f_locals.get('canv', None)
if canvas is None:
# Guess 3: We're in evalString or namedString
canvas = getattr(frame.f_locals.get('self', None), 'canv', None)
if canvas is None:
raise Exception("Can't use <getName/> in this location.")
return canvas.manager.get_name(self.id, self.default)
class EvalStringFragment(reportlab.platypus.paraparser.ParaFrag):
"""A fragment whose `text` is evaluated at access time."""
def __init__(self, **attributes):
reportlab.platypus.paraparser.ParaFrag.__init__(self, **attributes)
self.frags = []
@property
def text(self):
text = u''
for frag in self.frags:
if isinstance(frag, basestring):
text += frag
else:
text += frag.text
from z3c.rml.special import do_eval
return do_eval(text)
class NameFragment(reportlab.platypus.paraparser.ParaFrag):
"""A fragment whose attribute `value` is set to a variable."""
def __init__(self, **attributes):
reportlab.platypus.paraparser.ParaFrag.__init__(self, **attributes)
@property
def text(self):
# Guess 1: We're in a paragraph in a story.
frame = inspect.currentframe(4)
canvas = frame.f_locals.get('canvas', None)
if canvas is None:
# Guess 2: We're in a template
canvas = frame.f_locals.get('canv', None)
if canvas is None:
# Guess 3: We're in evalString or namedString
canvas = getattr(frame.f_locals.get('self', None), 'canv', None)
if canvas is None:
raise Exception("Can't use <name> in this location.")
canvas.manager.names[self.id] = self.value
return u''
class Z3CParagraphParser(reportlab.platypus.paraparser.ParaParser):
"""Extensions to paragraph-internal XML parsing."""
def __init__(self, *args, **kwargs):
reportlab.platypus.paraparser.ParaParser.__init__(self, *args, **kwargs)
self.in_eval = False
def startDynamic(self, attributes, klass):
frag = klass(**attributes)
frag.__dict__.update(self._stack[-1].__dict__)
frag.fontName = reportlab.lib.fonts.tt2ps(
frag.fontName, frag.bold, frag.italic)
if self.in_eval:
self._stack[-1].frags.append(frag)
else:
self.fragList.append(frag)
self._stack.append(frag)
def endDynamic(self):
if not self.in_eval:
self._pop()
def start_pagenumber(self, attributes):
self.startDynamic(attributes, PageNumberFragment)
def end_pagenumber(self):
self.endDynamic()
def start_getname(self, attributes):
self.startDynamic(attributes, GetNameFragment)
def end_getname(self):
self.endDynamic()
def start_name(self, attributes):
self.startDynamic(attributes, NameFragment)
def end_name(self):
self.endDynamic()
def start_evalstring(self, attributes):
self.startDynamic(attributes, EvalStringFragment)
self.in_eval = True
def end_evalstring(self):
self.in_eval = False
self.endDynamic()
def handle_data(self, data):
if not self.in_eval:
reportlab.platypus.paraparser.ParaParser.handle_data(self, data)
else:
frag = self._stack[-1].frags.append(data)
# Monkey-patch reportlabs global parser instance. Wah.
import reportlab.platypus.paragraph
reportlab.platypus.paragraph.ParaParser = Z3CParagraphParser

149
z3c/rml/pdfinclude.py Normal file
View File

@@ -0,0 +1,149 @@
##############################################################################
#
# Copyright (c) 2012 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""``pdfInclude`` Directive.
"""
__docformat__ = "reStructuredText"
import cStringIO
try:
import PyPDF2
from PyPDF2.generic import NameObject
except ImportError:
PyPDF2 = None
from reportlab.platypus import flowables
from z3c.rml import attr, flowable, interfaces, occurence, page
class ConcatenationPostProcessor(object):
def __init__(self):
self.operations = []
def process(self, inputFile1):
input1 = PyPDF2.PdfFileReader(inputFile1)
merger = PyPDF2.PdfFileMerger()
merger.output._info.getObject().update(input1.documentInfo)
prev_insert = 0
for start_page, inputFile2, pages, num_pages in self.operations:
if prev_insert < start_page:
merger.append(inputFile1, pages=(prev_insert, start_page))
if not pages:
merger.append(inputFile2)
else:
# Note, users start counting at 1. ;-)
for page in pages:
merger.append(inputFile2, pages=(page-1, page))
prev_insert = start_page + num_pages
input1 = PyPDF2.PdfFileReader(inputFile1)
num_pages = input1.getNumPages()
if prev_insert < num_pages:
merger.append(
inputFile1, pages=(prev_insert, num_pages))
outputFile = cStringIO.StringIO()
merger.write(outputFile)
return outputFile
class PDFPageFlowable(flowables.Flowable):
def __init__(self, width, height):
flowables.Flowable.__init__(self)
self.width = width
self.height = height
def draw(self):
pass
def split(self, availWidth, availheight):
return [self]
class IncludePdfPagesFlowable(flowables.Flowable):
def __init__(self, pdf_file, pages, concatprocessor):
flowables.Flowable.__init__(self)
self.pdf_file = pdf_file
self.proc = concatprocessor
self.pages = pages
self.width = 10<<32
self.height = 10<<32
def draw():
return NotImplementedError('PDFPages shall be drawn not me')
def split(self, availWidth, availheight):
pages = self.pages
if not pages:
pdf = PyPDF2.PdfFileReader(self.pdf_file)
num_pages = pdf.getNumPages()
pages = range(num_pages)
else:
num_pages = len(pages)
start_page = self.canv.getPageNumber()
self.proc.operations.append(
(start_page, self.pdf_file, self.pages, num_pages))
result = []
for i in pages:
result.append(flowables.PageBreak())
result.append(PDFPageFlowable(availWidth, availheight))
return result
class IIncludePdfPages(interfaces.IRMLDirectiveSignature):
"""Inserts a set of pages from a given PDF."""
filename = attr.File(
title=u'Path to file',
description=u'The pdf file to include.',
required=True)
pages = attr.IntegerSequence(
title=u'Pages',
description=u'A list of pages to insert.',
required=False)
class IncludePdfPages(flowable.Flowable):
signature = IIncludePdfPages
def getProcessor(self):
manager = attr.getManager(self, interfaces.IPostProcessorManager)
procs = dict(manager.postProcessors)
if 'CONCAT' not in procs:
proc = ConcatenationPostProcessor()
manager.postProcessors.append(('CONCAT', proc))
return proc
return procs['CONCAT']
def process(self):
if PyPDF2 is None:
raise Exception(
'PyPDF2 is not installed, so this feature is not available.')
args = dict(self.getAttributeValues())
proc = self.getProcessor()
self.parent.flow.append(
IncludePdfPagesFlowable(args['filename'], args.get('pages'), proc))
flowable.Flow.factories['includePdfPages'] = IncludePdfPages
flowable.IFlow.setTaggedValue(
'directives',
flowable.IFlow.getTaggedValue('directives') +
(occurence.ZeroOrMore('includePdfPages', IIncludePdfPages),)
)

135
z3c/rml/platypus.py Normal file
View File

@@ -0,0 +1,135 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Style Related Element Processing
"""
import reportlab.platypus.flowables
import reportlab.rl_config
from reportlab.rl_config import overlapAttachedSpace
import zope.interface
from z3c.rml import interfaces
# Fix problem with reportlab 2.0
class KeepInFrame(reportlab.platypus.flowables.KeepInFrame):
def __init__(self, maxWidth, maxHeight, content=[], mergeSpace=1,
mode='shrink', name=''):
self.name = name
self.maxWidth = maxWidth
self.maxHeight = maxHeight
self.mode = mode
assert mode in ('error','overflow','shrink','truncate'), \
'%s invalid mode value %s' % (self.identity(),mode)
# This is an unnecessary check, since wrap() handles None just fine!
#assert maxHeight>=0, \
# '%s invalid maxHeight value %s' % (self.identity(),maxHeight)
if mergeSpace is None: mergeSpace = overlapAttachedSpace
self.mergespace = mergeSpace
self._content = content
class BaseFlowable(reportlab.platypus.flowables.Flowable):
def __init__(self, *args, **kw):
reportlab.platypus.flowables.Flowable.__init__(self)
self.args = args
self.kw = kw
def wrap(self, *args):
return (0, 0)
def draw(self):
pass
class Illustration(reportlab.platypus.flowables.Flowable):
def __init__(self, processor, width, height):
self.processor = processor
self.width = width
self.height = height
def wrap(self, *args):
return (self.width, self.height)
def draw(self):
# Import here to avoid recursive imports
from z3c.rml import canvas
self.canv.saveState()
drawing = canvas.Drawing(
self.processor.element, self.processor)
zope.interface.alsoProvides(drawing, interfaces.ICanvasManager)
drawing.canvas = self.canv
drawing.process()
self.canv.restoreState()
class BookmarkPage(BaseFlowable):
def draw(self):
self.canv.bookmarkPage(*self.args, **self.kw)
class Bookmark(BaseFlowable):
def draw(self):
self.canv.bookmarkHorizontal(*self.args, **self.kw)
class OutlineAdd(BaseFlowable):
def draw(self):
if self.kw.get('key', None) is None:
self.kw['key'] = str(hash(self))
self.canv.bookmarkPage(self.kw['key'])
self.canv.addOutlineEntry(**self.kw)
class Link(reportlab.platypus.flowables._Container,
reportlab.platypus.flowables.Flowable):
def __init__(self, content, **args):
self._content = content
self.args = args
def wrap(self, availWidth, availHeight):
self.width, self.height = reportlab.platypus.flowables._listWrapOn(
self._content, availWidth, self.canv)
return self.width, self.height
def drawOn(self, canv, x, y, _sW=0, scale=1.0, content=None, aW=None):
'''we simulate being added to a frame'''
pS = 0
if aW is None: aW = self.width
aW = scale*(aW+_sW)
if content is None:
content = self._content
y += self.height*scale
startX = x
startY = y
totalWidth = 0
totalHeight = 0
for c in content:
w, h = c.wrapOn(canv,aW,0xfffffff)
if w < reportlab.rl_config._FUZZ or h < reportlab.rl_config._FUZZ:
continue
if c is not content[0]: h += max(c.getSpaceBefore()-pS,0)
y -= h
c.drawOn(canv,x,y,_sW=aW-w)
if c is not content[-1]:
pS = c.getSpaceAfter()
y -= pS
totalWidth += w
totalHeight += h
rectangle = [startX, startY-totalHeight,
startX+totalWidth, startY]
if 'url' in self.args:
canv.linkURL(rect=rectangle, **self.args)
else:
canv.linkAbsolute('', Rect=rectangle, **self.args)

294
z3c/rml/reference.pt Normal file
View File

@@ -0,0 +1,294 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE document SYSTEM "rml.dtd">
<document
filename="rml-reference.pdf"
xmlns:tal="http://xml.zope.org/namespaces/tal"
>
<docinit>
<registerFont name="ZapfDingbats" faceName="ZapfDingbats"
encName="StandardEncoding"/>
</docinit>
<stylesheet>
<paraStyle
name="section-header"
fontName="Helvetica-Bold"
fontSize="36"
leading="42"
spaceAfter="30"
/>
<paraStyle
name="content"
fontName="Times-Roman"
fontSize="12"
spaceAfter="5"
/>
<paraStyle
name="deprecation"
fontName="Times-Roman"
fontSize="12"
textColor="red"
/>
<paraStyle
name="attribute-type-name"
fontName="Times-Bold"
fontSize="14"
spaceBefore="10"
spaceAfter="5"
keepWithNext="true"
/>
<paraStyle
name="element-name"
fontName="Times-Bold"
fontSize="14"
spaceBefore="10"
spaceAfter="5"
keepWithNext="true"
/>
<paraStyle
name="element-subtitle"
fontName="Times-Bold"
fontSize="12"
spaceBefore="10"
spaceAfter="5"
/>
<paraStyle
name="attribute-name"
fontName="Times-Roman"
fontSize="11"
leftIndent="0.5cm"
spaceBefore="5"
/>
<paraStyle
name="field-deprecation"
fontName="Times-Roman"
fontSize="10"
leftIndent="0.9cm"
textColor="red"
/>
<paraStyle
name="field-description"
fontName="Times-Roman"
fontSize="10"
leftIndent="0.9cm"
/>
<paraStyle
name="sub-directive"
fontName="Times-Roman"
fontSize="10"
leftIndent="0.5cm"
/>
<paraStyle
name="example-info"
fontName="Times-Roman"
fontSize="10"
leftIndent="0.5cm"
spaceAfter="5"
/>
<paraStyle
name="code"
fontName="Courier"
fontSize="10"
leftIndent="0.5cm"
/>
<blockTableStyle id="plain">
<blockLeftPadding length="0" />
</blockTableStyle>
</stylesheet>
<template
pageSize="A4"
allowSplitting="true"
title="z3c.RML Reference"
author="Zope Community">
<pageTemplate id="first-page">
<pageGraphics>
<setFont name="Helvetica" size="48" />
<drawCenteredString x="10.5cm" y="20cm">
z3c.RML Reference
</drawCenteredString>
<setFont name="Helvetica" size="24" />
<drawCenteredString x="10.5cm" y="18.5cm">
Version 2.1
</drawCenteredString>
</pageGraphics>
<frame id="main" x1="3cm" y1="2cm" width="17cm" height="25.7cm" />
</pageTemplate>
<pageTemplate id="main">
<frame id="main" x1="2cm" y1="2cm" width="17cm" height="25.7cm" />
</pageTemplate>
</template>
<story firstPageTemplate="first-page">
<setNextTemplate name="main" />
<nextPage />
<para style="section-header">
Introduction
</para>
<para style="content">
RML is a XML dialect for generating PDF files. Like HTML produces a page
within the browser, RML produces a PDF file. The RML processor uses the
ReportLab library to convert the RML text into a full PDF template.
</para>
<para style="content">
The original version of RML was developed by ReportLab, Inc. as a
commercial extension to the free ReportLab library. This original
version of RML is still available and supported by ReportLab, Inc. This
version of RML, z3c.RML, is a free implementation of the XML dialect
based on the available documentation. While it tries to keep some level
of compatibility with the original version of RML, it is intended to
provde a as clean and feature-rich API as possible.
</para>
<para style="content">
The contents of this document is auto-generated from the code itself and
should thus be very accurate and complete.
</para>
<nextPage />
<para style="section-header">
Attribute Types
</para>
<outlineAdd>Attribute Types</outlineAdd>
<para style="content">
This section list the types of attributes used for the attributes within
the RML elements.
</para>
<spacer length="0.5cm" />
<tal:block repeat="type context/types">
<para style="attribute-type-name" tal:content="type/name">
Attribute Name
</para>
<outlineAdd level="1" tal:content="type/name">Attribute Name</outlineAdd>
<para style="content" tal:content="type/description">
Attribute purpose and data description.
</para>
</tal:block>
<nextPage />
<para style="section-header">
Directives
</para>
<outlineAdd>Directives</outlineAdd>
<tal:block repeat="directive context/directives">
<para style="element-name" tal:content="directive/name">
Element Name
</para>
<outlineAdd level="1" tal:content="directive/name">
Element Name
</outlineAdd>
<bookmarkPage tal:attributes="name directive/id"/>
<para style="deprecation"
tal:condition="directive/deprecated">
<b>Deprecated:</b>
<tal:block tal:content="directive/reason">Reason</tal:block>
</para>
<para style="content" tal:content="directive/description">
What is this element doing?
</para>
<tal:block condition="directive/attributes">
<para style="element-subtitle">
<i>Attributes</i>
</para>
<tal:block repeat="attr directive/attributes">
<para style="attribute-name">
<b tal:content="attr/name">para</b>
<tal:block condition="attr/required">
<i>(required)</i>
</tal:block>
-
<tal:block content="attr/type">Type</tal:block>
</para>
<para style="field-deprecation"
tal:condition="attr/deprecated">
<b>Deprecated:</b>
<tal:block tal:content="attr/reason">Reason</tal:block>
</para>
<para style="field-description"
tal:condition="attr/title">
<i tal:content="attr/title">Title</i>:
<tal:block tal:content="attr/description">Description</tal:block>
</para>
</tal:block>
</tal:block>
<tal:block define="attr directive/content"
condition="directive/content">
<para style="element-subtitle">
<i>Content</i>
</para>
<para style="attribute-name">
<tal:block content="attr/type">Type</tal:block>
<tal:block condition="attr/required">
<i>(required)</i>
</tal:block>
</para>
<para style="field-description"
tal:condition="attr/title">
<i tal:content="attr/title">Title</i>:
<tal:block tal:content="attr/description">Description</tal:block>
</para>
</tal:block>
<tal:block condition="directive/sub-directives">
<para style="element-subtitle">
<i>Sub-Directives</i>
</para>
<link destination=""
tal:repeat="directive directive/sub-directives"
tal:attributes="destination directive/id">
<para style="sub-directive">
<font color="blue">
<b tal:content="directive/name">para</b>
</font>
<i>
(<tal:block replace="directive/occurence">ZeroOrMore</tal:block>)
</i>
<font color="red" tal:condition="directive/deprecated">
<i>(Deprecated)</i>
</font>
</para>
</link>
</tal:block>
<tal:block condition="directive/examples">
<para style="element-subtitle">
<i>Examples</i>
</para>
<tal:block repeat="example directive/examples">
<xpre style="code" tal:content="structure example/code">
Example Code
</xpre>
<blockTable style="plain">
<tr>
<td>
<para style="example-info">
(Extracted from file
<link href="" tal:attributes="href example/rmlurl">
<i tal:content="example/filename">File</i>,
</link>
line <tal:block replace="example/line" />)
</para>
</td>
<td>
<para>
<link href="" tal:attributes="href example/pdfurl">
<font color="blue">[PDF]</font>
</link>
</para>
</td>
</tr>
</blockTable>
</tal:block>
</tal:block>
</tal:block>
</story>
</document>

242
z3c/rml/reference.py Normal file
View File

@@ -0,0 +1,242 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""RML Reference Generator
"""
import copy
import re
import os
import pygments.token
import zope.schema
import zope.schema.interfaces
from lxml import etree
from xml.sax import saxutils
from pygments.lexers import XmlLexer
from z3c.rml import attr, document, interfaces, pagetemplate
INPUT_URL = ('https://github.com/zopefoundation/z3c.rml/blob/master/src/z3c/'
'rml/tests/input/%s')
EXPECTED_URL = ('https://github.com/zopefoundation/z3c.rml/blob/master/src/z3c/'
'rml/tests/expected/%s?raw=true')
EXAMPLES_DIRECTORY = os.path.join(os.path.dirname(__file__), 'tests', 'input')
IGNORE_ATTRIBUTES = ('RMLAttribute', 'BaseChoice')
CONTENT_FIELD_TYPES = (
attr.TextNode, attr.TextNodeSequence, attr.TextNodeGrid,
attr.RawXMLContent, attr.XMLContent)
STYLES_FORMATTING = {
pygments.token.Name.Tag : ('<font textColor="red">', '</font>'),
pygments.token.Literal.String : ('<font textColor="blue">', '</font>'),
}
EXAMPLE_NS = 'http://namespaces.zope.org/rml/doc'
EXAMPLE_ATTR_NAME = '{%s}example' %EXAMPLE_NS
def dedent(rml):
spaces = re.findall('\n( *)<', rml)
if not spaces:
return rml
least = min([len(s) for s in spaces if s != ''])
return rml.replace('\n'+' '*least, '\n')
def enforceColumns(rml, columns=80):
result = []
for line in rml.split('\n'):
if len(line) <= columns:
result.append(line)
continue
# Determine the indentation for all other lines
lineStart = re.findall('^( *<[a-zA-Z0-9]+ )', line)
lineIndent = 0
if lineStart:
lineIndent = len(lineStart[0])
# Create lines having at most the specified number of columns
while len(line) > columns:
end = line[:columns].rfind(' ')
result.append(line[:end])
line = ' '*lineIndent + line[end+1:]
result.append(line)
return '\n'.join(result)
def highlightRML(rml):
lexer = XmlLexer()
styledRml = ''
for ttype, token in lexer.get_tokens(rml):
start, end = STYLES_FORMATTING.get(ttype, ('', ''))
styledRml += start + saxutils.escape(token) + end
return styledRml
def removeDocAttributes(elem):
for name in elem.attrib.keys():
if name.startswith('{'+EXAMPLE_NS+'}'):
del elem.attrib[name]
for child in elem.getchildren():
removeDocAttributes(child)
def getAttributeTypes():
types = []
candidates = sorted(attr.__dict__.items(), key=lambda e: e[0])
for name, candidate in candidates:
if not (isinstance(candidate, type) and
zope.schema.interfaces.IField.implementedBy(candidate) and
name not in IGNORE_ATTRIBUTES):
continue
types.append({
'name': name,
'description': candidate.__doc__
})
return types
def formatField(field):
return field.__class__.__name__
def formatChoice(field):
choices = ', '.join([repr(choice) for choice in field.choices.keys()])
return '%s of (%s)' %(field.__class__.__name__, choices)
def formatSequence(field):
vtFormatter = typeFormatters.get(field.value_type.__class__, formatField)
return '%s of %s' %(field.__class__.__name__, vtFormatter(field.value_type))
def formatGrid(field):
vtFormatter = typeFormatters.get(field.value_type.__class__, formatField)
return '%s with %i cols of %s' %(
field.__class__.__name__, field.columns, vtFormatter(field.value_type))
def formatCombination(field):
vts = [typeFormatters.get(vt.__class__, formatField)(vt)
for vt in field.value_types]
return '%s of %s' %(field.__class__.__name__, ', '.join(vts))
typeFormatters = {
attr.Choice: formatChoice,
attr.Sequence: formatSequence,
attr.Combination: formatCombination,
attr.TextNodeSequence: formatSequence,
attr.TextNodeGrid: formatGrid}
def processSignature(name, signature, examples, directives=None):
if directives is None:
directives = {}
# Process this directive
if signature not in directives:
info = {'name': name, 'description': signature.getDoc(),
'id': str(hash(signature)), 'deprecated': False}
# If directive is deprecated, then add some info
if interfaces.IDeprecatedDirective.providedBy(signature):
info['deprecated'] = True
info['reason'] = signature.getTaggedValue('deprecatedReason')
attrs = []
content = None
for fname, field in zope.schema.getFieldsInOrder(signature):
# Handle the case, where the field describes the content
typeFormatter = typeFormatters.get(field.__class__, formatField)
fieldInfo = {
'name': fname,
'type': typeFormatter(field),
'title': field.title,
'description': field.description,
'required': field.required,
'deprecated': False,
}
if field.__class__ in CONTENT_FIELD_TYPES:
content = fieldInfo
else:
attrs.append(fieldInfo)
# Add a separate entry for the deprecated field
if interfaces.IDeprecated.providedBy(field):
deprFieldInfo = fieldInfo.copy()
deprFieldInfo['deprecated'] = True
deprFieldInfo['name'] = field.deprecatedName
deprFieldInfo['reason'] = field.deprecatedReason
attrs.append(deprFieldInfo)
info['attributes'] = attrs
info['content'] = content
# Examples can be either gotten by interface path or tag name
ifacePath = signature.__module__ + '.' + signature.__name__
if ifacePath in examples:
info['examples'] = examples[ifacePath]
else:
info['examples'] = examples.get(name, None)
subs = []
for occurence in signature.queryTaggedValue('directives', ()):
subs.append({
'name': occurence.tag,
'occurence': occurence.__class__.__name__,
'deprecated': interfaces.IDeprecatedDirective.providedBy(
occurence.signature),
'id': str(hash(occurence.signature))
})
info['sub-directives'] = subs
directives[signature] = info
# Process Children
for occurence in signature.queryTaggedValue('directives', ()):
processSignature(occurence.tag, occurence.signature,
examples, directives)
def extractExamples(directory):
examples = {}
for filename in os.listdir(directory):
if not filename.endswith('.rml'):
continue
rmlFile = open(os.path.join(directory, filename), 'r')
root = etree.parse(rmlFile).getroot()
elements = root.xpath('//@doc:example/parent::*',
namespaces={'doc': EXAMPLE_NS})
# Phase 1: Collect all elements
for elem in elements:
demoTag = elem.get(EXAMPLE_ATTR_NAME) or elem.tag
elemExamples = examples.setdefault(demoTag, [])
elemExamples.append({
'filename': filename,
'line': elem.sourceline,
'element': elem,
'rmlurl': INPUT_URL %filename,
'pdfurl': EXPECTED_URL %(filename[:-4]+'.pdf')
})
# Phase 2: Render all elements
removeDocAttributes(root)
for dirExamples in examples.values():
for example in dirExamples:
xml = etree.tounicode(example['element']).strip()
xml = re.sub(
' ?xmlns:doc="http://namespaces.zope.org/rml/doc"', '', xml)
xml = dedent(xml)
xml = enforceColumns(xml, 80)
xml = highlightRML(xml)
example['code'] = xml
return examples
def main(outPath=None):
examples = extractExamples(EXAMPLES_DIRECTORY)
template = pagetemplate.RMLPageTemplateFile('reference.pt')
directives = {}
processSignature('document', document.IDocument, examples, directives)
directives = sorted(directives.values(), key=lambda d: d['name'])
pdf = template(types=getAttributeTypes(), directives=directives)
open(outPath or 'rml-reference.pdf', 'wb').write(pdf)

50
z3c/rml/rlfix.py Normal file
View File

@@ -0,0 +1,50 @@
##############################################################################
#
# Copyright (c) 2012 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""ReportLab fixups.
"""
__docformat__ = "reStructuredText"
from reportlab.pdfbase import pdfform, pdfmetrics, ttfonts
from reportlab.pdfbase.pdfpattern import PDFPattern
from reportlab.graphics import testshapes
def resetPdfForm():
pdfform.PDFDOCENC = PDFPattern(pdfform.PDFDocEncodingPattern)
pdfform.ENCODING = PDFPattern(
pdfform.EncodingPattern, PDFDocEncoding=pdfform.PDFDOCENC)
pdfform.GLOBALFONTSDICTIONARY = pdfform.FormFontsDictionary()
pdfform.GLOBALRESOURCES = pdfform.FormResources()
pdfform.ZADB = PDFPattern(pdfform.ZaDbPattern)
def resetFonts():
# testshapes._setup registers the Vera fonts every time which is a little
# slow on all platforms. On Windows it lists the entire system font
# directory and registers them all which is very slow.
pdfmetrics.registerFont(ttfonts.TTFont("Vera", "Vera.ttf"))
pdfmetrics.registerFont(ttfonts.TTFont("VeraBd", "VeraBd.ttf"))
pdfmetrics.registerFont(ttfonts.TTFont("VeraIt", "VeraIt.ttf"))
pdfmetrics.registerFont(ttfonts.TTFont("VeraBI", "VeraBI.ttf"))
for f in ('Times-Roman','Courier','Helvetica','Vera', 'VeraBd', 'VeraIt',
'VeraBI'):
if f not in testshapes._FONTS:
testshapes._FONTS.append(f)
def setSideLabels():
from reportlab.graphics.charts import piecharts
piecharts.Pie3d.sideLabels = 0
setSideLabels()
from reportlab.rl_config import register_reset
register_reset(resetPdfForm)
register_reset(resetFonts)
del register_reset

5978
z3c/rml/rml-reference.pdf Normal file

File diff suppressed because it is too large Load Diff

2236
z3c/rml/rml.dtd Normal file

File diff suppressed because it is too large Load Diff

70
z3c/rml/rml2pdf.py Normal file
View File

@@ -0,0 +1,70 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""RML to PDF Converter
"""
import cStringIO
import os
import sys
import zope.interface
from lxml import etree
from z3c.rml import document, interfaces
zope.interface.moduleProvides(interfaces.IRML2PDF)
def parseString(xml, removeEncodingLine=True, filename=None):
if isinstance(xml, unicode) and removeEncodingLine:
# RML is a unicode string, but oftentimes documents declare their
# encoding using <?xml ...>. Unfortuantely, I cannot tell lxml to
# ignore that directive. Thus we remove it.
if xml.startswith('<?xml'):
xml = xml.split('\n', 1)[-1]
root = etree.fromstring(xml)
doc = document.Document(root)
if filename:
doc.filename = filename
output = cStringIO.StringIO()
doc.process(output)
output.seek(0)
return output
def go(xmlInputName, outputFileName=None, outDir=None, dtdDir=None):
if dtdDir is not None:
sys.stderr.write('The ``dtdDir`` option is not yet supported.')
xmlFile = open(xmlInputName, 'r')
root = etree.parse(xmlFile).getroot()
doc = document.Document(root)
doc.filename = xmlInputName
outputFile = None
# If an output filename is specified, create an output filepointer for it
if outputFileName is not None:
if outDir is not None:
outputFileName = os.path.join(outDir, outputFileName)
outputFile = open(outputFileName, 'wb')
# Create a Reportlab canvas by processing the document
doc.process(outputFile)
def main(args=None):
if args is None:
args = sys.argv[1:]
go(*args)
if __name__ == '__main__':
canvas = go(sys.argv[1])

116
z3c/rml/rml2pdfscript.py Normal file
View File

@@ -0,0 +1,116 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""RML to PDF Converter
"""
import subprocess
import sys
import os
_fileOpen = None
def excecuteSubProcess(xmlInputName, outputFileName, testing=None):
# set the sys path given from the parent process
sysPath = os.environ['Z3CRMLSYSPATH']
sys.path[:] = sysPath.split(';')
# now it come the ugly thing, but we need to hook our test changes into
# our subprocess.
if testing is not None:
# set some globals
import z3c.rml.attr
import z3c.rml.directive
global _fileOpen
_fileOpen = z3c.rml.attr.File.open
def testOpen(img, filename):
# cleanup win paths like:
# ....\\input\\file:///D:\\trunk\\...
if sys.platform[:3].lower() == "win":
if filename.startswith('file:///'):
filename = filename[len('file:///'):]
path = os.path.join(os.path.dirname(xmlInputName), filename)
return open(path, 'rb')
# override some testing stuff for our tests
z3c.rml.attr.File.open = testOpen
import z3c.rml.tests.module
sys.modules['module'] = z3c.rml.tests.module
sys.modules['mymodule'] = z3c.rml.tests.module
# import rml and process the pdf
from z3c.rml import rml2pdf
rml2pdf.go(xmlInputName, outputFileName)
if testing is not None:
# reset some globals
z3c.rml.attr.File.open = _fileOpen
del sys.modules['module']
del sys.modules['mymodule']
def goSubProcess(xmlInputName, outputFileName, testing=False):
"""Processes PDF rendering in a sub process.
This method is much slower then the ``go`` method defined in rml2pdf.py
because each PDF generation is done in a sub process. But this will make
sure, that we do not run into problems. Note, the ReportLab lib is not
threadsafe.
Use this method from python and it will dispatch the pdf generation
to a subprocess.
Note: this method does not take care on how much process will started.
Probably it's a good idea to use a queue or a global utility which only
start a predefined amount of sub processes.
"""
# get the sys path used for this python process
env = os.environ
sysPath = ';'.join(sys.path)
# set the sys path as env var for the new sub process
env['Z3CRMLSYSPATH'] = sysPath
py = sys.executable
# setup the cmd
program = [py, __file__, 'excecuteSubProcess', xmlInputName, outputFileName]
if testing is True:
program.append('testing=1')
program = " ".join(program)
# run the subprocess in the rml input file folder, this will make it easy
# to include images. If this doesn't fit, feel free to add a additional
# home argument, and let this be the default, ri
os.chdir(os.path.dirname(xmlInputName))
# start processing in a sub process, raise exception or return None
try:
p = subprocess.Popen(program, executable=py, env=env,
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
except Exception, e:
raise Exception("Subprocess error: %s" % e)
# Do we need to improve the implementation and kill the subprocess which will
# fail? ri
stdout, stderr = p.communicate()
error = stderr
if error:
raise Exception("Subprocess error: %s" % error)
if __name__ == '__main__':
if len(sys.argv) == 5:
#testing support
canvas = excecuteSubProcess(sys.argv[2], sys.argv[3], sys.argv[4])
else:
canvas = excecuteSubProcess(sys.argv[2], sys.argv[3])

114
z3c/rml/special.py Normal file
View File

@@ -0,0 +1,114 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Special Element Processing
"""
from z3c.rml import attr, directive, interfaces
class IName(interfaces.IRMLDirectiveSignature):
"""Defines a name for a string."""
id = attr.String(
title=u'Id',
description=u'The id under which the value will be known.',
required=True)
value = attr.Text(
title=u'Value',
description=u'The text that is displayed if the id is called.',
required=True)
class Name(directive.RMLDirective):
signature = IName
def process(self):
id, value = self.getAttributeValues(valuesOnly=True)
manager = attr.getManager(self)
manager.names[id] = value
class IAlias(interfaces.IRMLDirectiveSignature):
"""Defines an alias for a given style."""
id = attr.String(
title=u'Id',
description=u'The id as which the style will be known.',
required=True)
value = attr.Style(
title=u'Value',
description=u'The style that is represented.',
required=True)
class Alias(directive.RMLDirective):
signature = IAlias
def process(self):
id, value = self.getAttributeValues(valuesOnly=True)
manager = attr.getManager(self)
manager.styles[id] = value
class TextFlowables(object):
def _getManager(self):
if hasattr(self, 'manager'):
return self.manager
else:
return attr.getManager(self)
def getPageNumber(self, elem, canvas):
return unicode(
canvas.getPageNumber() + int(elem.get('countingFrom', 1)) - 1
)
def getName(self, elem, canvas):
return self._getManager().get_name(
elem.get('id'),
elem.get('default')
)
def evalString(self, elem, canvas):
return do_eval(self._getText(elem, canvas))
def namedString(self, elem, canvas):
self._getManager().names[elem.get('id')] = self._getText(
elem, canvas, include_final_tail=False
)
return u''
def name(self, elem, canvas):
self._getManager().names[elem.get('id')] = elem.get('value')
return u''
handleElements = {'pageNumber': getPageNumber,
'getName': getName,
'evalString': evalString,
'namedString': namedString,
'name': name}
def _getText(self, node, canvas, include_final_tail=True):
text = node.text or u''
for sub in node.getchildren():
if sub.tag in self.handleElements:
text += self.handleElements[sub.tag](self, sub, canvas)
else:
self._getText(sub, canvas)
text += sub.tail or u''
if include_final_tail:
text += node.tail or u''
return text
def do_eval(value):
# Maybe still not safe
return unicode(eval(value.strip(), {'__builtins__': None}, {}))

112
z3c/rml/storyplace.py Normal file
View File

@@ -0,0 +1,112 @@
##############################################################################
#
# Copyright (c) 2012 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""``pdfInclude`` Directive.
"""
__docformat__ = "reStructuredText"
from reportlab.platypus import flowables
from z3c.rml import attr, flowable, interfaces, occurence
class StoryPlaceFlowable(flowables.Flowable):
def __init__(self, x, y, width, height, origin, flows):
flowables.Flowable.__init__(self)
self.x = x
self.y = y
self.width = width
self.height = height
self.origin = origin
self.flows = flows
def wrap(self, *args):
return (0, 0)
def draw(self):
saveState = False
x, y = self.x, self.y
self.canv.restoreState()
if self.origin == 'frame':
x += self._frame._x1
y += self._frame._y1
elif self.origin == 'local':
x += self._frame._x
y += self._frame._y
else:
# origin == 'page'
pass
width, height = self.width, self.height
y += height
for flow in self.flows.flow:
flowWidth, flowHeight = flow.wrap(width, height)
if flowWidth <= width and flowHeight <= height:
y -= flowHeight
flow.drawOn(self.canv, x, y)
height -= flowHeight
else:
raise ValueError("Not enough space")
self.canv.saveState()
class IStoryPlace(interfaces.IRMLDirectiveSignature):
"""Draws a set of flowables on the canvas within a given region."""
x = attr.Measurement(
title=u'X-Coordinate',
description=(u'The X-coordinate of the lower-left position of the '
u'place.'),
required=True)
y = attr.Measurement(
title=u'Y-Coordinate',
description=(u'The Y-coordinate of the lower-left position of the '
u'place.'),
required=True)
width = attr.Measurement(
title=u'Width',
description=u'The width of the place.',
required=False)
height = attr.Measurement(
title=u'Height',
description=u'The height of the place.',
required=False)
origin = attr.Choice(
title=u'Origin',
description=u'The origin of the coordinate system for the story.',
choices=('page', 'frame', 'local'),
default = 'page',
required=False)
class StoryPlace(flowable.Flowable):
signature = IStoryPlace
def process(self):
x, y, width, height, origin = self.getAttributeValues(
select=('x', 'y', 'width', 'height', 'origin'), valuesOnly=True)
flows = flowable.Flow(self.element, self.parent)
flows.process()
self.parent.flow.append(
StoryPlaceFlowable(x, y, width, height, origin, flows))
flowable.Flow.factories['storyPlace'] = StoryPlace
flowable.IFlow.setTaggedValue(
'directives',
flowable.IFlow.getTaggedValue('directives') +
(occurence.ZeroOrMore('storyPlace', IStoryPlace),)
)

687
z3c/rml/stylesheet.py Normal file
View File

@@ -0,0 +1,687 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Style Related Element Processing
"""
import copy
import reportlab.lib.styles
import reportlab.lib.enums
import reportlab.platypus
from z3c.rml import attr, directive, interfaces, occurence, SampleStyleSheet, \
special
class IInitialize(interfaces.IRMLDirectiveSignature):
"""Do some RML processing initialization."""
occurence.containing(
occurence.ZeroOrMore('name', special.IName),
occurence.ZeroOrMore('alias', special.IAlias),
)
class Initialize(directive.RMLDirective):
signature = IInitialize
factories = {
'name': special.Name,
'alias': special.Alias,
}
class IBaseParagraphStyle(interfaces.IRMLDirectiveSignature):
fontName = attr.String(
title=u'Font Name',
description=u'The name of the font for the paragraph.',
required=False)
fontSize = attr.Measurement(
title=u'Font Size',
description=u'The font size for the text of the paragraph.',
required=False)
leading = attr.Measurement(
title=u'Leading',
description=(u'The height of a single paragraph line. It includes '
u'character height.'),
required=False)
leftIndent = attr.Measurement(
title=u'Left Indentation',
description=u'General indentation on the left side.',
required=False)
rightIndent = attr.Measurement(
title=u'Right Indentation',
description=u'General indentation on the right side.',
required=False)
firstLineIndent = attr.Measurement(
title=u'First Line Indentation',
description=u'The indentation of the first line in the paragraph.',
required=False)
alignment = attr.Choice(
title=u'Alignment',
description=u'The text alignment.',
choices=interfaces.ALIGN_CHOICES,
required=False)
spaceBefore = attr.Measurement(
title=u'Space Before',
description=u'The vertical space before the paragraph.',
required=False)
spaceAfter = attr.Measurement(
title=u'Space After',
description=u'The vertical space after the paragraph.',
required=False)
bulletFontName = attr.String(
title=u'Bullet Font Name',
description=u'The font in which the bullet character will be rendered.',
required=False)
bulletFontSize = attr.Measurement(
title=u'Bullet Font Size',
description=u'The font size of the bullet character.',
required=False)
bulletIndent = attr.Measurement(
title=u'Bullet Indentation',
description=u'The indentation that is kept for a bullet point.',
required=False)
textColor = attr.Color(
title=u'Text Color',
description=u'The color in which the text will appear.',
required=False)
backColor = attr.Color(
title=u'Background Color',
description=u'The background color of the paragraph.',
required=False)
wordWrap = attr.String(
title=u'Word Wrap Method',
description=(u'When set to "CJK", invoke CJK word wrapping'),
required=False)
borderWidth = attr.Measurement(
title=u'Paragraph Border Width',
description=u'The width of the paragraph border.',
required=False)
borderPadding = attr.Padding(
title=u'Paragraph Border Padding',
description=u'Padding of the paragraph.',
required=False)
borderColor = attr.Color(
title=u'Border Color',
description=u'The color in which the paragraph border will appear.',
required=False)
borderRadius = attr.Measurement(
title=u'Paragraph Border Radius',
description=u'The radius of the paragraph border.',
required=False)
allowWidows = attr.Boolean(
title=u'Allow Widows',
description=(u'Allow widows.'),
required=False)
allowOrphans = attr.Boolean(
title=u'Allow Orphans',
description=(u'Allow orphans.'),
required=False)
textTransforms = attr.Choice(
title=u'Text Transforms',
description=u'Text transformations.',
choices=interfaces.TEXT_TRANSFORM_CHOICES,
required=False)
endDots = attr.String(
title=u'End Dots',
description=u'Characters/Dots at the end of a paragraph.',
required=False)
# Attributes not part of the official style attributes, but are accessed
# by the paragraph renderer.
keepWithNext = attr.Boolean(
title=u'Keep with Next',
description=(u'When set, this paragraph will always be in the same '
u'frame as the following flowable.'),
required=False)
pageBreakBefore = attr.Boolean(
title=u'Page Break Before',
description=(u'Specifies whether a page break should be inserted '
u'before the directive.'),
required=False)
frameBreakBefore = attr.Boolean(
title=u'Frame Break Before',
description=(u'Specifies whether a frame break should be inserted '
u'before the directive.'),
required=False)
class IParagraphStyle(IBaseParagraphStyle):
"""Defines a paragraph style and gives it a name."""
name = attr.String(
title=u'Name',
description=u'The name of the style.',
required=True)
alias = attr.String(
title=u'Alias',
description=u'An alias under which the style will also be known as.',
required=False)
parent = attr.Style(
title=u'Parent',
description=(u'The apragraph style that will be used as a base for '
u'this one.'),
required=False)
class ParagraphStyle(directive.RMLDirective):
signature = IParagraphStyle
def process(self):
kwargs = dict(self.getAttributeValues())
parent = kwargs.pop(
'parent', SampleStyleSheet['Normal'])
name = kwargs.pop('name')
style = copy.deepcopy(parent)
style.name = name[6:] if name.startswith('style.') else name
for name, value in kwargs.items():
setattr(style, name, value)
manager = attr.getManager(self)
manager.styles[style.name] = style
class ITableStyleCommand(interfaces.IRMLDirectiveSignature):
start = attr.Sequence(
title=u'Start Coordinates',
description=u'The start table coordinates for the style instruction',
value_type=attr.Combination(
value_types=(attr.Integer(),
attr.Choice(choices=interfaces.SPLIT_CHOICES))
),
default=[0, 0],
min_length=2,
max_length=2,
required=True)
stop = attr.Sequence(
title=u'End Coordinates',
description=u'The end table coordinates for the style instruction',
value_type=attr.Combination(
value_types=(attr.Integer(),
attr.Choice(choices=interfaces.SPLIT_CHOICES))
),
default=[-1, -1],
min_length=2,
max_length=2,
required=True)
class TableStyleCommand(directive.RMLDirective):
name = None
def process(self):
args = [self.name]
args += self.getAttributeValues(valuesOnly=True)
self.parent.style.add(*args)
class IBlockFont(ITableStyleCommand):
"""Set the font properties for the texts."""
name = attr.String(
title=u'Font Name',
description=u'The name of the font for the cell.',
required=False)
size = attr.Measurement(
title=u'Font Size',
description=u'The font size for the text of the cell.',
required=False)
leading = attr.Measurement(
title=u'Leading',
description=(u'The height of a single text line. It includes '
u'character height.'),
required=False)
class BlockFont(TableStyleCommand):
signature = IBlockFont
name = 'FONT'
class IBlockLeading(ITableStyleCommand):
"""Set the text leading."""
length = attr.Measurement(
title=u'Length',
description=(u'The height of a single text line. It includes '
u'character height.'),
required=True)
class BlockLeading(TableStyleCommand):
signature = IBlockLeading
name = 'LEADING'
class IBlockTextColor(ITableStyleCommand):
"""Set the text color."""
colorName = attr.Color(
title=u'Color Name',
description=u'The color in which the text will appear.',
required=True)
class BlockTextColor(TableStyleCommand):
signature = IBlockTextColor
name = 'TEXTCOLOR'
class IBlockAlignment(ITableStyleCommand):
"""Set the text alignment."""
value = attr.Choice(
title=u'Text Alignment',
description=u'The text alignment within the cell.',
choices=interfaces.ALIGN_TEXT_CHOICES,
required=True)
class BlockAlignment(TableStyleCommand):
signature = IBlockAlignment
name = 'ALIGNMENT'
class IBlockLeftPadding(ITableStyleCommand):
"""Set the left padding of the cells."""
length = attr.Measurement(
title=u'Length',
description=u'The size of the padding.',
required=True)
class BlockLeftPadding(TableStyleCommand):
signature = IBlockLeftPadding
name = 'LEFTPADDING'
class IBlockRightPadding(ITableStyleCommand):
"""Set the right padding of the cells."""
length = attr.Measurement(
title=u'Length',
description=u'The size of the padding.',
required=True)
class BlockRightPadding(TableStyleCommand):
signature = IBlockRightPadding
name = 'RIGHTPADDING'
class IBlockBottomPadding(ITableStyleCommand):
"""Set the bottom padding of the cells."""
length = attr.Measurement(
title=u'Length',
description=u'The size of the padding.',
required=True)
class BlockBottomPadding(TableStyleCommand):
signature = IBlockBottomPadding
name = 'BOTTOMPADDING'
class IBlockTopPadding(ITableStyleCommand):
"""Set the top padding of the cells."""
length = attr.Measurement(
title=u'Length',
description=u'The size of the padding.',
required=True)
class BlockTopPadding(TableStyleCommand):
signature = IBlockTopPadding
name = 'TOPPADDING'
class IBlockBackground(ITableStyleCommand):
"""Define the background color of the cells.
It also supports alternating colors.
"""
colorName = attr.Color(
title=u'Color Name',
description=u'The color to use as the background for every cell.',
required=False)
colorsByRow = attr.Sequence(
title=u'Colors By Row',
description=u'A list of colors to be used circularly for rows.',
value_type=attr.Color(acceptNone=True),
required=False)
colorsByCol = attr.Sequence(
title=u'Colors By Column',
description=u'A list of colors to be used circularly for columns.',
value_type=attr.Color(acceptNone=True),
required=False)
class BlockBackground(TableStyleCommand):
signature = IBlockBackground
name = 'BACKGROUND'
def process(self):
args = [self.name]
if 'colorsByRow' in self.element.keys():
args = [BlockRowBackground.name]
elif 'colorsByCol' in self.element.keys():
args = [BlockColBackground.name]
args += self.getAttributeValues(valuesOnly=True)
self.parent.style.add(*args)
class IBlockRowBackground(ITableStyleCommand):
"""Define the background colors for rows."""
colorNames = attr.Sequence(
title=u'Colors By Row',
description=u'A list of colors to be used circularly for rows.',
value_type=attr.Color(),
required=True)
class BlockRowBackground(TableStyleCommand):
signature = IBlockRowBackground
name = 'ROWBACKGROUNDS'
class IBlockColBackground(ITableStyleCommand):
"""Define the background colors for columns."""
colorNames = attr.Sequence(
title=u'Colors By Row',
description=u'A list of colors to be used circularly for rows.',
value_type=attr.Color(),
required=True)
class BlockColBackground(TableStyleCommand):
signature = IBlockColBackground
name = 'COLBACKGROUNDS'
class IBlockValign(ITableStyleCommand):
"""Define the vertical alignment of the cells."""
value = attr.Choice(
title=u'Vertical Alignment',
description=u'The vertical alignment of the text with the cells.',
choices=interfaces.VALIGN_TEXT_CHOICES,
required=True)
class BlockValign(TableStyleCommand):
signature = IBlockValign
name = 'VALIGN'
class IBlockSpan(ITableStyleCommand):
"""Define a span over multiple cells (rows and columns)."""
class BlockSpan(TableStyleCommand):
signature = IBlockSpan
name = 'SPAN'
class ILineStyle(ITableStyleCommand):
"""Define the border line style of each cell."""
kind = attr.Choice(
title=u'Kind',
description=u'The kind of line actions to be taken.',
choices=('GRID', 'BOX', 'OUTLINE', 'INNERGRID',
'LINEBELOW', 'LINEABOVE', 'LINEBEFORE', 'LINEAFTER'),
required=True)
thickness = attr.Measurement(
title=u'Thickness',
description=u'Line Thickness',
default=1,
required=True)
colorName = attr.Color(
title=u'Color',
description=u'The color of the border line.',
default=None,
required=True)
cap = attr.Choice(
title=u'Cap',
description=u'The cap at the end of a border line.',
choices=interfaces.CAP_CHOICES,
default=1,
required=True)
dash = attr.Sequence(
title=u'Dash-Pattern',
description=u'The dash-pattern of a line.',
value_type=attr.Measurement(),
default=None,
required=False)
join = attr.Choice(
title=u'Join',
description=u'The way lines are joined together.',
choices=interfaces.JOIN_CHOICES,
default=1,
required=False)
count = attr.Integer(
title=u'Count',
description=(u'Describes whether the line is a single (1) or '
u'double (2) line.'),
default=1,
required=False)
class LineStyle(TableStyleCommand):
signature = ILineStyle
def process(self):
name = self.getAttributeValues(select=('kind',), valuesOnly=True)[0]
args = [name]
args += self.getAttributeValues(ignore=('kind',), valuesOnly=True,
includeMissing=True)
self.parent.style.add(*args)
class IBlockTableStyle(interfaces.IRMLDirectiveSignature):
"""A style defining the look of a table."""
occurence.containing(
occurence.ZeroOrMore('blockFont', IBlockFont),
occurence.ZeroOrMore('blockLeading', IBlockLeading),
occurence.ZeroOrMore('blockTextColor', IBlockTextColor),
occurence.ZeroOrMore('blockAlignment', IBlockAlignment),
occurence.ZeroOrMore('blockLeftPadding', IBlockLeftPadding),
occurence.ZeroOrMore('blockRightPadding', IBlockRightPadding),
occurence.ZeroOrMore('blockBottomPadding', IBlockBottomPadding),
occurence.ZeroOrMore('blockTopPadding', IBlockTopPadding),
occurence.ZeroOrMore('blockBackground', IBlockBackground),
occurence.ZeroOrMore('blockRowBackground', IBlockRowBackground),
occurence.ZeroOrMore('blockColBackground', IBlockColBackground),
occurence.ZeroOrMore('blockValign', IBlockValign),
occurence.ZeroOrMore('blockSpan', IBlockSpan),
occurence.ZeroOrMore('lineStyle', ILineStyle)
)
id = attr.String(
title=u'Id',
description=u'The name/id of the style.',
required=True)
keepWithNext = attr.Boolean(
title=u'Keep with Next',
description=(u'When set, this paragraph will always be in the same '
u'frame as the following flowable.'),
required=False)
class BlockTableStyle(directive.RMLDirective):
signature = IBlockTableStyle
factories = {
'blockFont': BlockFont,
'blockLeading': BlockLeading,
'blockTextColor': BlockTextColor,
'blockAlignment': BlockAlignment,
'blockLeftPadding': BlockLeftPadding,
'blockRightPadding': BlockRightPadding,
'blockBottomPadding': BlockBottomPadding,
'blockTopPadding': BlockTopPadding,
'blockBackground': BlockBackground,
'blockRowBackground': BlockRowBackground,
'blockColBackground': BlockColBackground,
'blockValign': BlockValign,
'blockSpan': BlockSpan,
'lineStyle': LineStyle,
}
def process(self):
kw = dict(self.getAttributeValues())
id = kw.pop('id')
# Create Style
self.style = reportlab.platypus.tables.TableStyle()
for name, value in kw.items():
setattr(self.style, name, value)
# Fill style
self.processSubDirectives()
# Add style to the manager
manager = attr.getManager(self)
manager.styles[id] = self.style
class IMinimalListStyle(interfaces.IRMLDirectiveSignature):
leftIndent = attr.Measurement(
title=u'Left Indentation',
description=u'General indentation on the left side.',
required=False)
rightIndent = attr.Measurement(
title=u'Right Indentation',
description=u'General indentation on the right side.',
required=False)
bulletColor = attr.Color(
title=u'Bullet Color',
description=u'The color in which the bullet will appear.',
required=False)
bulletFontName = attr.String(
title=u'Bullet Font Name',
description=u'The font in which the bullet character will be rendered.',
required=False)
bulletFontSize = attr.Measurement(
title=u'Bullet Font Size',
description=u'The font size of the bullet character.',
required=False)
bulletOffsetY = attr.Measurement(
title=u'Bullet Y-Offset',
description=u'The vertical offset of the bullet.',
required=False)
bulletDedent = attr.StringOrInt(
title=u'Bullet Dedent',
description=u'Either pixels of dedent or auto (default).',
required=False)
bulletDir = attr.Choice(
title=u'Bullet Layout Direction',
description=u'The layout direction of the bullet.',
choices=('ltr', 'rtl'),
required=False)
bulletFormat = attr.String(
title=u'Bullet Format',
description=u'A formatting expression for the bullet text.',
required=False)
bulletType = attr.Choice(
title=u'Bullet Type',
description=u'The type of number to display.',
choices=interfaces.ORDERED_LIST_TYPES + \
interfaces.UNORDERED_BULLET_VALUES,
doLower=False,
required=False)
class IBaseListStyle(IMinimalListStyle):
start = attr.Combination(
title=u'Start Value',
description=u'The counter start value.',
value_types=(attr.Integer(),
attr.Choice(choices=interfaces.UNORDERED_BULLET_VALUES)),
required=False)
class IListStyle(IBaseListStyle):
"""Defines a list style and gives it a name."""
name = attr.String(
title=u'Name',
description=u'The name of the style.',
required=True)
parent = attr.Style(
title=u'Parent',
description=(u'The list style that will be used as a base for '
u'this one.'),
required=False)
class ListStyle(directive.RMLDirective):
signature = IListStyle
def process(self):
kwargs = dict(self.getAttributeValues())
parent = kwargs.pop(
'parent', reportlab.lib.styles.ListStyle(name='List'))
name = kwargs.pop('name')
style = copy.deepcopy(parent)
style.name = name[6:] if name.startswith('style.') else name
for name, value in kwargs.items():
setattr(style, name, value)
manager = attr.getManager(self)
manager.styles[style.name] = style
class IStylesheet(interfaces.IRMLDirectiveSignature):
"""A styleheet defines the styles that can be used in the document."""
occurence.containing(
occurence.ZeroOrOne('initialize', IInitialize),
occurence.ZeroOrMore('paraStyle', IParagraphStyle),
occurence.ZeroOrMore('blockTableStyle', IBlockTableStyle),
occurence.ZeroOrMore('listStyle', IListStyle),
# TODO:
#occurence.ZeroOrMore('boxStyle', IBoxStyle),
)
class Stylesheet(directive.RMLDirective):
signature = IStylesheet
factories = {
'initialize': Initialize,
'paraStyle': ParagraphStyle,
'blockTableStyle': BlockTableStyle,
'listStyle': ListStyle,
}

276
z3c/rml/template.py Normal file
View File

@@ -0,0 +1,276 @@
##############################################################################
#
# Copyright (c) 2007 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Style Related Element Processing
"""
import zope.interface
from reportlab import platypus
from z3c.rml import attr, directive, interfaces, occurence
from z3c.rml import canvas, flowable, page, stylesheet
class IStory(flowable.IFlow):
"""The story of the PDF file."""
occurence.containing(
*flowable.IFlow.getTaggedValue('directives'))
firstPageTemplate = attr.Text(
title=u'First Page Template',
description=u'The first page template to be used.',
default=None,
required=False)
class Story(flowable.Flow):
signature = IStory
def process(self):
self.parent.flowables = super(Story, self).process()
self.parent.doc._firstPageTemplateIndex = self.getFirstPTIndex()
def getFirstPTIndex(self):
args = dict(self.getAttributeValues(select=('firstPageTemplate',)))
fpt = args.pop('firstPageTemplate', None)
if fpt is None:
return 0
for idx, pageTemplate in enumerate(self.parent.doc.pageTemplates):
if pageTemplate.id == fpt:
return idx
raise ValueError('%r is not a correct page template id.' %fpt)
class IFrame(interfaces.IRMLDirectiveSignature):
"""A frame on a page."""
x1 = attr.Measurement(
title=u'X-Position',
description=u'The X-Position of the lower-left corner of the frame.',
allowPercentage=True,
required=True)
y1 = attr.Measurement(
title=u'Y-Position',
description=u'The Y-Position of the lower-left corner of the frame.',
allowPercentage=True,
required=True)
width = attr.Measurement(
title=u'Width',
description=u'The width of the frame.',
allowPercentage=True,
required=True)
height = attr.Measurement(
title=u'Height',
description=u'The height of the frame.',
allowPercentage=True,
required=True)
id = attr.Text(
title=u'Id',
description=u'The id of the frame.',
required=False)
leftPadding = attr.Measurement(
title=u'Left Padding',
description=u'The left padding of the frame.',
default=0,
required=False)
rightPadding = attr.Measurement(
title=u'Right Padding',
description=u'The right padding of the frame.',
default=0,
required=False)
topPadding = attr.Measurement(
title=u'Top Padding',
description=u'The top padding of the frame.',
default=0,
required=False)
bottomPadding = attr.Measurement(
title=u'Bottom Padding',
description=u'The bottom padding of the frame.',
default=0,
required=False)
showBoundary = attr.Boolean(
title=u'Show Boundary',
description=u'A flag to show the boundary of the frame.',
required=False)
class Frame(directive.RMLDirective):
signature = IFrame
def process(self):
# get the page size
size = self.parent.pt.pagesize
if size is None:
size = self.parent.parent.parent.doc.pagesize
# Get the arguments
args = dict(self.getAttributeValues())
# Deal with percentages
for name, dir in (('x1', 0), ('y1', 1), ('width', 0), ('height', 1)):
if isinstance(args[name], basestring) and args[name].endswith('%'):
args[name] = float(args[name][:-1])/100*size[dir]
frame = platypus.Frame(**args)
self.parent.frames.append(frame)
class IPageGraphics(canvas.IDrawing):
"""Define the page graphics for the page template."""
class PageGraphics(directive.RMLDirective):
zope.interface.implements(interfaces.ICanvasManager)
signature = IPageGraphics
def process(self):
onPage = self.parent.pt.onPage
def drawOnCanvas(canv, doc):
onPage(canv, doc)
canv.saveState()
self.canvas = canv
drawing = canvas.Drawing(self.element, self)
drawing.process()
canv.restoreState()
self.parent.pt.onPage = drawOnCanvas
class IPageTemplate(interfaces.IRMLDirectiveSignature):
"""Define a page template."""
occurence.containing(
occurence.OneOrMore('frame', IFrame),
occurence.ZeroOrOne('pageGraphics', IPageGraphics),
occurence.ZeroOrOne('mergePage', page.IMergePage),
)
id = attr.Text(
title=u'Id',
description=u'The id of the template.',
required=True)
pagesize = attr.PageSize(
title=u'Page Size',
description=u'The Page Size.',
required=False)
autoNextTemplate = attr.String(
title=u'Auto Next Page Template',
description=u'The page template to use automatically for the next page.',
required=False)
class PageTemplate(directive.RMLDirective):
signature = IPageTemplate
attrMapping = {'autoNextTemplate': 'autoNextPageTemplate'}
factories = {
'frame': Frame,
'pageGraphics': PageGraphics,
'mergePage': page.MergePageInPageTemplate,
}
def process(self):
args = dict(self.getAttributeValues(attrMapping=self.attrMapping))
pagesize = args.pop('pagesize', None)
self.frames = []
self.pt = platypus.PageTemplate(**args)
self.processSubDirectives()
self.pt.frames = self.frames
if pagesize:
self.pt.pagesize = pagesize
self.parent.parent.doc.addPageTemplates(self.pt)
class ITemplate(interfaces.IRMLDirectiveSignature):
"""Define a page template."""
occurence.containing(
occurence.OneOrMore('pageTemplate', IPageTemplate),
)
pagesize = attr.PageSize(
title=u'Page Size',
description=u'The Page Size.',
required=False)
rotation = attr.Integer(
title=u'Rotation',
description=u'The rotation of the page in multiples of 90 degrees.',
required=False)
leftMargin = attr.Measurement(
title=u'Left Margin',
description=u'The left margin of the template.',
default=0,
required=False)
rightMargin = attr.Measurement(
title=u'Right Margin',
description=u'The right margin of the template.',
default=0,
required=False)
topMargin = attr.Measurement(
title=u'Top Margin',
description=u'The top margin of the template.',
default=0,
required=False)
bottomMargin = attr.Measurement(
title=u'Bottom Margin',
description=u'The bottom margin of the template.',
default=0,
required=False)
showBoundary = attr.Boolean(
title=u'Show Boundary',
description=u'A flag to show the boundary of the template.',
required=False)
allowSplitting = attr.Boolean(
title=u'Allow Splitting',
description=u'A flag to allow splitting over multiple templates.',
required=False)
title = attr.Text(
title=u'Title',
description=u'The title of the PDF document.',
required=False)
author = attr.Text(
title=u'Author',
description=u'The author of the PDF document.',
required=False)
class Template(directive.RMLDirective):
signature = ITemplate
factories = {
'pageTemplate': PageTemplate,
}
def process(self):
args = self.getAttributeValues()
args += self.parent.getAttributeValues(
select=('debug', 'compression', 'invariant'),
attrMapping={'debug': '_debug', 'compression': 'pageCompression'})
args += (('cropMarks', self.parent.cropMarks),)
self.parent.doc = platypus.BaseDocTemplate(
self.parent.outputFile, **dict(args))
self.processSubDirectives()

View File

@@ -0,0 +1 @@
# Make a package.

View File

@@ -0,0 +1,107 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 8 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R5': class PDFCatalog
5 0 obj
% Document Root
<< /Outlines 9 0 R
/PageMode /UseNone
/Pages 7 0 R
/Type /Catalog >>
endobj
% 'R6': class PDFInfo
6 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R7': class PDFPages
7 0 obj
% page tree
<< /Count 1
/Kids [ 4 0 R ]
/Type /Pages >>
endobj
% 'R8': class PDFStream
8 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 455 >>
stream
GasJL:N%0q&B4+(r#OYAWR;6[eEc7_.*fr$Wgp*&ONi$:L'8CGrlM&kXQ)iG;FQP+R!J;uc#Bn7pj@91E34)!bJ=A3*aD_YC58op/q,>fr(5WK1iefAF-b)(cn?3GQTs6d`\C[(n4g/#U)7n,<1c,8>ZUT$.>eF\O0.aG]lEusFugKGIKoHcl2s6LUG!<gk'4^?ZZfNiOX6(-k-8NaPo<?7hHT;qjj.qn62*Ye#'A]JD-Y"=fjkSYYapA1OEQG0`]J*KFX$`*e,%O55HbI&Hj>t\2ed2PKZX+c]V&:ZGsbMfh*;!uI]$3PH&6CRTP"R>f@Ej2T((4lL:WLk=^!9UhoJp"E,sI)inA^l:8Z&g6<d*\!EZaoHUu.<Ed4,D8>[b9iMmiWVP1Z_3@5Ok&AG$7gU_99G'9`%')"a2$8fq'0uhKV",3E[g17PRNI>9Hp^9%kX!@~>endstream
endobj
% 'R9': class PDFOutlines
9 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 10
0000000000 65535 f
0000000113 00000 n
0000000221 00000 n
0000000386 00000 n
0000000559 00000 n
0000000836 00000 n
0000000970 00000 n
0000001239 00000 n
0000001344 00000 n
0000001941 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 6 0 R
/Root 5 0 R
/Size 10 >>
startxref
1992
%%EOF

View File

@@ -0,0 +1,107 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 8 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R5': class PDFCatalog
5 0 obj
% Document Root
<< /Outlines 9 0 R
/PageMode /UseNone
/Pages 7 0 R
/Type /Catalog >>
endobj
% 'R6': class PDFInfo
6 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R7': class PDFPages
7 0 obj
% page tree
<< /Count 1
/Kids [ 4 0 R ]
/Type /Pages >>
endobj
% 'R8': class PDFStream
8 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 454 >>
stream
GasJL5u/FS&;BS8nfQ^CX^JEIDA'Ie+usX/FY@D]Asr"SHL5*e.HT15hN1>]+QSY2cb+Q&AiNmVI(J&5pni#=jkp2T#;.M5FbPgDcQ;4)rh<[)XQ2FcV_"=CTpsAK0E5gS)i&5U^t6OtLgn:+YN5L7Qdm)lMIM1p@H1O@B3]Y3+)6/6rWI?Sobj\-W!gN9'`X<FliRl?+N[!UBrHl!Tm@BWo@EbFq.o>>cs>#q*j'WX)](5f2OV6)CrYE-U`JI`iRZac*=:V5>(/JJkB3Ja+2Dpm-LIXi0R6l5*#cZS-&j@^4U!6[8rXDQ!h4^H:D1NE;bQ@9_P>Edoh+(QBrM6jOKhdDkbq.n2>)!X9S[V<[[)pU0".PPR>c@Nn3#]u9Ll8&f=!o2L@U?P(gWq&pn!(Tl?Ym_ZSQHjYUdReTNR;40m:DN..i5?-C[GBlkB!D+5],Z*<~>endstream
endobj
% 'R9': class PDFOutlines
9 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 10
0000000000 65535 f
0000000113 00000 n
0000000221 00000 n
0000000386 00000 n
0000000559 00000 n
0000000836 00000 n
0000000970 00000 n
0000001239 00000 n
0000001344 00000 n
0000001940 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 6 0 R
/Root 5 0 R
/Size 10 >>
startxref
1991
%%EOF

View File

@@ -0,0 +1,102 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 7 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 6 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R4': class PDFCatalog
4 0 obj
% Document Root
<< /Outlines 8 0 R
/PageMode /UseNone
/Pages 6 0 R
/Type /Catalog
/ViewerPreferences 9 0 R >>
endobj
% 'R5': class PDFInfo
5 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130305225909+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R6': class PDFPages
6 0 obj
% page tree
<< /Count 1
/Kids [ 3 0 R ]
/Type /Pages >>
endobj
% 'R7': class PDFStream
7 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 194 >>
stream
GappW5mkI_&4Q>Egu0p:7Es>jR'!#32o8fB2Q_rq<nh5[V`.)-q$[\EH$k4$6YY-nfJ1q^!p/>U<+H1-LcnE$OFhptO_6!)8u(,(9NTt(IO7<+@(]#B2=rgtQiC5hZK<7lJibp-%X%9cD8t'7TsqOm/fl@:SqH8^\Q=FT'=MULkiX8e$=9PqV\D\l#"6E_ao~>endstream
endobj
% 'R8': class PDFOutlines
8 0 obj
<< /Count 0
/Type /Outlines >>
endobj
% 'R9': class ViewerPreferencesPDFDictionary
9 0 obj
<< /PrintScaling /None >>
endobj
xref
0 10
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000810 00000 n
0000001079 00000 n
0000001184 00000 n
0000001520 00000 n
0000001618 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\266\223\013\225\230\266Y\231\206\3278`\331\265G&) (\266\223\013\225\230\266Y\231\206\3278`\331\265G&)]
/Info 5 0 R
/Root 4 0 R
/Size 10 >>
startxref
1662
%%EOF

View File

@@ -0,0 +1,127 @@
%PDF-1.3
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 8 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page2': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R5': class PDFCatalog
5 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 7 0 R
/Type /Catalog >>
endobj
% 'R6': class PDFInfo
6 0 obj
<< /Author (anonymous)
/CreationDate (D:20121217140300+05'00')
/Creator (ReportLab PDF Library - www.reportlab.com)
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (unspecified)
/Title (untitled) >>
endobj
% 'R7': class PDFPages
7 0 obj
% page tree
<< /Count 2
/Kids [ 3 0 R
4 0 R ]
/Type /Pages >>
endobj
% 'R8': class PDFStream
8 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 139 >>
stream
GapQh0E=F,0U\H3T\pNYT^QKk?tc>IP,;W#U1^23ihPEM_TN+I0SHG`19f970NBe]1tON^#g$)nn4:gGa]Abo0?Ql6;fKo2.P=R(85)fZE%+C1ccf&6<!^TD#gi\mUVP%V!4<7T5l~>endstream
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 141 >>
stream
GapQh0E=F,0U\H3T\pNYT^QKk?tc>IP,;W#U1^23ihPEM_TN+I0SHG`1pYUe1p^"42DN`<;[CKFd-sTNaiRTicS*F4d8L<G:!V'X;$]]d:K;?_8hA<49@m,Ka\iDl!ZRrNb67n1SK#W~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000926 00000 n
0000001061 00000 n
0000001343 00000 n
0000001456 00000 n
0000001735 00000 n
0000002019 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\232w\017\3421\263\325\354R\366\267\025H\343&\012) (\232w\017\3421\263\325\354R\366\267\025H\343&\012)]
/Info 6 0 R
/Root 5 0 R
/Size 11 >>
startxref
2071
%%EOF

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,136 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 5 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Annot.NUMBER1': class TextAnnotation
4 0 obj
<< /Contents (\376\377\000X\000:\000:\000P\000D\000F\000
\000P\000X\000(\000S\000)\000
\000M\000T\000(\000P\000I\000N\000K\000))
/F 3
/Rect [ 0
,
0
,
1
,
1 ]
/Subtype /Text
/Type /Annot >>
endobj
% 'F3': class PDFType1Font
5 0 obj
% Font ZapfDingbats
<< /BaseFont /ZapfDingbats
/Encoding /ZapfDingbatsEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
6 0 obj
% Page dictionary
<< /Annots [ 4 0 R ]
/Contents 10 0 R
/MediaBox [ 0
0
612
792 ]
/Parent 9 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R7': class PDFCatalog
7 0 obj
% Document Root
<< /Outlines 11 0 R
/PageMode /UseNone
/Pages 9 0 R
/Type /Catalog >>
endobj
% 'R8': class PDFInfo
8 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20000101000000+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R9': class PDFPages
9 0 obj
% page tree
<< /Count 1
/Kids [ 6 0 R ]
/Type /Pages >>
endobj
% 'R10': class PDFStream
10 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 674 >>
stream
Gb"/$?#Q2d'Rc%,s)=i,'<<sI$2N#VQY;:\.9jQKp?[;1Y@'0H[+i?f9g[PFU3([@Cb4O\mQ(%,*(/YP60^<WJ6@]O3<AX^-6RjY+C*i/f^Je,pZe+V19iR+\>(B_!b@L-&<,E/G_1e8+Y;R,Ip_u[?fq\tV=CeLRXIU!$fOPQiEa2G0_XlBL;XN&N2C*/1kB+\W%jdSk/8S\'b)%djZ`5eQmKFJe+YC^Y9#0IF2d]Tihob$llsYu"Z%T\<!CND;FOMQbKRpVV\s6(AGboimEKtC-/[,lCFuNKcT4E;'oT">FuS2UmHhdI=\#2F/>\L9DaSVs*DBjUH4./j9VboIVRT0@auk2cLs\cb-\e"X3]36*Pu^kjPXk--VA7EV`Lh7l`FB#>MH290bFE:859;IpY9RnUh(@u0_@mT/V7&^5,$K$)ic)'g6?'o&N2_(P=YN7L-qlRobc!,A9NCja,<5/l9`<<4ZI[[iI'?K:>0W)[Cm1FW(]W:Xfu+uHZ:UhE:;aHF3a6A*WACC])8nSqCk8nrNY^'Slh@eZ#04.*/_+W9R9\i.Ib]UtW+e2Ek2J%77Uo)a.VZi:"VN,8L.kFJGK0su-du!#2;Y<PledZ/s+]Ttfjgl>6<E<g3l%+6##3<9E3r>,mrV5&hllM8m'F#oF>j!/Im:.e\c~>endstream
endobj
% 'R11': class PDFOutlines
11 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 12
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000600 00000 n
0000000856 00000 n
0000001030 00000 n
0000001318 00000 n
0000001453 00000 n
0000001722 00000 n
0000001828 00000 n
0000002646 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\223\367y\354\321\362\222Ju\262\315V\3448<\372) (\223\367y\354\321\362\222Ju\262\315V\3448<\372)]
/Info 8 0 R
/Root 7 0 R
/Size 12 >>
startxref
2698
%%EOF

View File

@@ -0,0 +1,322 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 5 0 R
/F4 6 0 R
/F5 7 0 R
/F6 9 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 18 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F3': class PDFType1Font
5 0 obj
% Font Courier
<< /BaseFont /Courier
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'F4': class PDFType1Font
6 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'F5': class PDFType1Font
7 0 obj
% Font ZapfDingbats
<< /BaseFont /ZapfDingbats
/Encoding /ZapfDingbatsEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'Page2': class PDFPage
8 0 obj
% Page dictionary
<< /Contents 19 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F6': class PDFType1Font
9 0 obj
% Font Courier-Oblique
<< /BaseFont /Courier-Oblique
/Encoding /WinAnsiEncoding
/Name /F6
/Subtype /Type1
/Type /Font >>
endobj
% 'Page3': class PDFPage
10 0 obj
% Page dictionary
<< /Contents 20 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page4': class PDFPage
11 0 obj
% Page dictionary
<< /Contents 21 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page5': class PDFPage
12 0 obj
% Page dictionary
<< /Contents 22 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'FormXob.ce52f900887bbd9ff9881c236099059a': class PDFImageXObject
13 0 obj
<< /BitsPerComponent 8
/ColorSpace /DeviceRGB
/Filter [ /ASCII85Decode
/FlateDecode ]
/Height 86
/Length 3441
/Subtype /Image
/Type /XObject
/Width 130 >>
stream
Gb"/kc\l$s&BFP1_2Dt)$d:1-71_WG5t""8d$&bf&I]R7/-[n]Ci0j46p]$_"<iAJ+AkPK+^dQ3d#.o2*fP=T(/u'4+Zm=%BD/CfZ`;oPEV<+N41dqfbeEiJFoCU*lDj9][C$6dYQlI_F*$sEYC8T\iGp73lgK<Pc&r,^]Wlq7SO]%?&*dkB7;8pc#'@%.gKhGaJ_,AMooIO[aU7Kbr(V1>a0tHAPLlrJ9CjJP]Q3:qi]L#Fa-T"Ac's+Mn;AA&B6[X-o?:8=&#D:N"#.Sd_Jd&9nAMZ$Rc?Cq]/Y@kGCugmI;S1MEQ=hE#?fu]AM8aaT1Fe#Q@"WD]Ve6J*7aNZ3-FN9]5r]/8)?iJrSUU\&9qs,l-cZ%,@Ga:aj1tI*.E%7]"0q@K7*%X`Af\njiWkC+51"lqO*V0*PI'PBJf1OT02\,Erh63ZEf)S^]!jfHpmVVo1#\nh"B/Yc3VT5AJc=Ij'4BjV:+2kk<HNQmc.&9l_BFJLuek3.Ad))F6:]Za5,D#N8Y=/5er+re/W@^$.6s9Z2?lR&Yg&ub=e2am1b$EC%]6D*Maj'NO^7!+3n3&S;^A.9dq9H6VhO::=>67ig(ZqPk)\b0r:qcXj)4V):BjW1aG9sr[">($q&@&2IVjUXKB`Q6S_#QPVQ<*!=7!gZ)uuaUP>9uEFQc49!Pn$gdSY2"9^dV)^&'O6ZPLEmUUKj=0GrtOFg]EA_)rZ&;rVG*uIo`F7LH(Ktl%Gc6>hI=B"D!/K;VVAbkh_dMaT?"DMF),S/hm>a3)l<UR%IC1E'f?>7K"=C+Ak"]sJfAU=.%EUKQU+N.i;Q//H.6[FEoi_BsN%kVaghJClIbg7+J<T=!_VUr+X)=m/T+^*S<k:Te:9;Ar'52'u/<95_^d?#Cm(3a^).k<+u>B.Che#fJj1ZLr,IdH\qC])p?cEfgQim'seq:@jhddafm@3jBfh:gMK;$:u_Tu`Ef5+:,^BULR&2*)B/@nCjXR21K+<SWuHTFlLt'<kA]iR!TA,d'<J@\QP+[-ZLpcb;?E/.b*;EG)_(p'X^[cm)$98at<>c_NWo*aNDp9X1"d!$,2'E=2JJn8C4$[G>uV@nc,FbWK.kk;5bN[lL.ac+H'4?u]gpgIb!9C[Nt'diDUboZDk3Q6bqekZfLKir0p'T.OkEb0"GQhe^7P5tiPEKg9`>*6*8=eoGBkm.`S8P!!VW:p8uuM*7C(XQ669?@q5$Q4JD5R:NNg&#\*=Lcs_Ys-4ti8M=plM2=X[jDgXP`d5!5=A/'/D7IZWLoh%R/5#uJD-R#!Ct4c/.JK\;hPKdHbZ*&omX+;2N/bA=BSmAO_!:.d7kKp`k(#fe%"%)Bc>TQpKJ^XW)gN/-g9n9KpU)/\f1$QU>slYX%2rG"CReW\5cHb`#!.+i12ka"f!N[]nrqE:aVl<oHK4,j"jG%?3Cb=u&;9tiK2F>=hB+OEDSh8`2^pdo%QR65*#mk%-#X[",Ofs=\_!N!>3!HV)troQI\?^9^#=7,?QpZadoGqfh>,"Q3`/l#;<4!6LL(3mqm;>D2;<UEjnYmQi$QH[bRr<&=3GIsCCj=<_V0PcDkU$"9l&JPCY+=oLba697H/1ZR`NfcF5&A.joeb.C8.W:i1(h_i6bd_aHnq6=W6t'pT(*AptT.+A40#_3BB$q2USI,_t)1079S[5@U[D21aYDqc_RZt6(0)FVb>-DSjMNd2a'#ggd(q3&M5_iUbYsb]ja""]dcA\fuB?iiO&!^PLOi35WqkHR'-KR*aWf^n<f,a/dt28BJ.s-PNP4Q9Hm,H`\H<)h5FLD=?mQ@m@J]hlc9gB.u[)TD,CYOcAYMU/3XRdi)LC-/OnZ`!hnh-%<)cui@I6Ok#?>:jJn&Tb3('.eah]JEM[&j5^)dgEdO)BF`>l**+9SmWp06Tn\hjj8O#guco7C$_cFSN8udG_'JXgj(:e9P*nnOK[6iK?kn>.LPi?]flJeri[+^]1DMBV`UbNOnV<q8>1U'HA3WA`_,Z[[YiY\F\l<kE+8Ck)sKqZmfr]6Z\LlFkKB0G5u2n99UGV8r#ViL])`/I_o3?7-POuCd71kl4tc#&87YZ#7&_njIh5>."XWK>CNV82<:lUW2MZ6]R1"(Qr"9LlJ0]N3]b>>DbL9h[9,de1[W?HDg'Ht=lel/IrgDER(cMeqYC#aZQTG"aM>=r:+og:N9?@rW_D09;hA-aAd$\gEY138bbi'P@0Q6YOP7nqSA49.ffNT8-`cPF!35;&.X&;Js0qoSkiQG5a9P8WsU9K*A$nP[U&kMU"o>YqIs9[^M%D9[uVM0$DR/kl(\cZXB55OdZGEad#;2dKHA#SogbAU\HC\3:Ss4hN7P.K,`5-`og&N[dDq)aI.f@Q[uXZq(#J"84k7RM9GI6Eu=ob5#K["qZi86D#mOt?F/UJLHEq@EFtnV[YYJGC0N2k#UGs_O)`e)0)d_`U4<:#BZoVfh*cco3&^>XC>$l0:NDf3PVCPLkT+K[Gj[;*Mi.`B:<?a;%!=r>GfhIC(l@kjVkHl1:7`XP[)fE9FEV_$!\TETGUITa(dFf,"t3A+]Y"B=CIq/8;/4FH0h2\_-'@F`\hoa*j-]Y^3`L_r8h1=p=Yqo:=<sJP;IO&iQ+08d-CNG$>/;_DBHiBuE=[u4d*$B&Ie"+Raq&W57a\Ba#YK`!"66+NaMM5$&r>Bgbs;^cVM_sYUWoa3HQEjJX@)NI.r?q0!VETqhE@j3RfpT"pBK,="rZ_6UM,J9AsiZ&.PVuI"=kH,W`(^\H^L/0Pl;f($GEt/HKdKa-Z[#mb4Qck:NdTka@p4=AMKW!n2kO%iX4a+%PsVJqh'Mg+P*jW\U+Mhj#iUt8&bn)#YWO)\+6#NT0,TqCkQIFZS_tQfq9j]iEWVSG/#.HH;1Ks+:^BgHYq798DlD2M\)Jj:bFB^hgC\o;H:%"`HcWs\CTB1n`h!$E@9Mgk%VV"54r_tmMGA@":V56%)>K12KnD(SlW7A\OSmlGX,:m0V8WqK![YP?b0[4SD:rC-*s.&GJA78Y!'=J*A3?!5Hnp!m]cU73i^-fm[`,^NS554-[-=Z5\`Bk;o;Z;nQGDC::$=t0T\E-1Y=<p'OND5SD5QO=RT)Xadnf/*:3%Q::607\6%\h>kP3K%I"HS5IogSDcLLBO3hleVhS@CWc(mO8<;,DEi0!5GO>7RPopn9ZYXJ#O"H@C(tsj/.PI+-Y"pJ@=gj.uGFR3Z+[*^=BVXt$Cc*W1/+-B5+alZI1hBZo-/BldS`68Ql\;k-:(?g%7u7$pCe%rKe94K)B.N>\f_[4(&VtcnFh/?.eBk5GO<,P\GA;#]]3$>VTQBYBGrpH')5Y:[OJ_i^9Kd5i5KbtHR>X\kU)%s5S\FmonqYG2qrh)*9t?/cqb!YMa/8Ub@.B+9K".)ZAlu_*NdqGMqYu*b<qL`8"8iHr`IR=~>endstream
endobj
% 'Page6': class PDFPage
14 0 obj
% Page dictionary
<< /Contents 23 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ]
/XObject << /FormXob.ce52f900887bbd9ff9881c236099059a 13 0 R >> >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R15': class PDFCatalog
15 0 obj
% Document Root
<< /Outlines 24 0 R
/PageMode /UseNone
/Pages 17 0 R
/Type /Catalog >>
endobj
% 'R16': class PDFInfo
16 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121218153938+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R17': class PDFPages
17 0 obj
% page tree
<< /Count 6
/Kids [ 4 0 R
8 0 R
10 0 R
11 0 R
12 0 R
14 0 R ]
/Type /Pages >>
endobj
% 'R18': class PDFStream
18 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 171 >>
stream
GapXM_$\%5&4Gu<r54%$'cOF%R\j06Sgp\p5EHQn>#=PbgI>b/J`4EipaMI%g&jFUVBujA4-2FQ2E7Wm%r3q1:n/De$\(&8qKY%g=%PgP*nk+L3Au9=f?j..dCsO/6Ld2H?:"&,F]P$7),Tm/fod"7W(IjMSdDMVYiZ#fQR#Z~>endstream
endobj
% 'R19': class PDFStream
19 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1381 >>
stream
Gau`SD/\/e&H3^ns5Dl:RlWB`8A/-rQ2s]A!sPtRXn?DL(WrU+/[D0Ee;E\GmmpTeXXKh\(FpI.2L0Mmh=DWD#[$jFlMl/8E#Z[eOoV0e`]tNmJaa.u%kfS"?!aHi$H/9PPaGc9LD+2?LO-ZP3'R,'"lTrMO+5s4qfb[=GqEFSUk6Kaqr7qX$GsP$r)naKE-[S`SB=(:-)T^Q(X,V"LPiuATm$djaDp=kHInu^qC7:G@:f:ZR&gb8P0$nm;f0>VPI-'e_Uji+`'jh\b<R<mb+c&f.-'fr.0Qgjn>".O@(YtG\ESIUm_33uNrD'Vh5\l[p7ko=7McCdjSVfe]u6'YZ[S]$RX??8*iNS<"+i^!iIM-/CE8f+arGApPdk$\SZ7Pej.97e>HopaZ@Fl2d0M!!aXPo/l[ZZ/3<;<pZi(1C8/+=`71Blt6/LrP?9o/*';A*o"t/Lc.?7"j'qdl2-)SBh?a>-X"#0r5RNMWWo#na@6qq_jWg2a[%LN#f_\tUeDd]G3aioG4!pZRpZ403,k#GABQ9>]O)JUm8^pca2V3j7Y>`*1LiJCb\Y]G:Jnj5T@A=J?UPG8Q%[Bec&Z#/5YZX;nthWGiL$b56%d"5GP*Ye"?f>;]7mU>kGneE@s@hF'ZOiLEINHRang+(#,#?6bP5kG4N+",=baTNun(9VSF`3\ed[BP!05,R(&.u*B6VkAJp/aTH?<&/e0YK@("ki35ATLKl'9+85P^n6fHj_u!>.bU9./]Z=/]8o#&2eh3ss%<i7\A'I+ee;5fg`r(GUdI:K@i-')9c=C)cI3dM]W.g[+elt\.u[t8P>Ebh;])tWk"Udpl9K44Rf`H2FE&\m_IVpM=ZW#gWR:n4pn;pk_qmOT'5mop[)/m%?(1B`2Prq:a9:RD@9h.N!ZFU^E:X^1]U=&hI$a0L+E5M<Ib9Kd<FpnbN_5W[)'#19eELnm`^%V-&7]*O12YX=Y&gb+o*&G'fI"kP3^>fRV>tr15X+prlY8Ug=&"+-V3//g+5?/6_j6R."hFC\89;G=7U1?'49s0_abZ%,6kpf@`"aqb)<.&2_fY=pZT`)Z/FG.9$!0Wo]Mou1<_*<Fp[20]4CZ)r[BCsZ`f*nrb3_JAJUqEXo5??r>.&4f[!^l(f3U?0<s5^sX)qF;cF48J/)XauU<S3j-Q.k*'sErVb(7(f21'SEZo<(EpmJKNGNWLtnP%h\p\TIlTl&)FmJ'E1P5\/'N_B&BHZDBI8m3"@p_3&UHgi[h`p]#YLku5Y=3%QV5-+<_jl:+K#^f3u4!/$dSj`i(gM`/E`NH?=U#E5^jRKEV^A_g5c^![?hn-N\`<oAkUT1<DC;6%$?W5D.q5u#dRE*rlEk=JP92-FGH1;t`eC7%~>endstream
endobj
% 'R20': class PDFStream
20 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1515 >>
stream
Gb!#\D/\/e&H3^ns5DmaLc[GPpnAQDka/@Ycljpf7_jP&;f(,f/'F>,cc^e9Nhe)HNb$7pgC?+]6mSD:kFOd+6ja]YW;<&9!H*=q\YDD-pbSRp#k7<A=9%jNYKI;2`diAUN)AT%0cZiH%Wa`f&fu:`"o]-hT7=Ug&+Au&&(:q.2c1@-[Jo>:p'1FJi;]l$5$_J?i%k*C2C1\?1NJ?4_)d6>A_gIMPAE*5=W4b__1G7Z2g714dRiPoV*=3*$km2LRPW9i=*(%#im6\3LNo,EKDlR>rZ[#n9cSp+UsZq#6n'%#?:@GO)E-3Dq)PcWY6`55eIZ]r0lWR1T[WZF+C6@8Lnc5KC^"Mi_IBp,jX/9IC\:X?9l]%TlPP_0)T$R"%d**8Gu;\-(nb,2K%Of2&r3\[bi%q$-35;b@A'3<"-S;]<h$L;+GFpBg;HoQ>MD%16QKL@`l*>78i"NIces*B5"as5_81dcEU![H7Q.NRSKp)?[<-AAW=Ka!iIcsn:ju-P0mlNh@?Mem>OB[&4!._=k<le[n4/kY-jtAgAf(NQ#J`?>BJ,m:h&XN/A$?C#*=U*\*PcRj;2,n-WF_Z9b4)RTMDF[O=bB3;p?2d/ertJm@@(7^b\h*XaeM-:h-,QM4U8mV]LoX*Z5q=55[JFBEd1l0$N0&3a]AorPJI!EJ]gt;0.LuTHZ&jSI;d;h)t%`V_e=E,;._\;WK%!NVPc.Yr-uN+Cl)jA`UVg)p_Jt=iPp[e>stL/[]&XlUkXZM:s"AnLBhc+,.;oYLi%8a7_Pm72>0"_/,.\[\$"FP\2\a1C^nb&i(E.9n=X\\93)4,F0a:B#j$_\DDsBTPVmRdUMD4A3Wdr'f`FN\+3q0>$5-\^mUqpUIeZ^ijK.i?Hd84jF$SCCf&<_/K'Epj`^#n'(i[*lCCmXqKR(<A#uN3sUi*jID/OoXc-ISDQ$A:J6$4^7Xnpr?`0TYWQ-slc3l'5Uj-VYm7*tBUDoYnPQ303LSDTW"n"ubD'`Bb/GNAPNN(hN^B(35^J_WFYW`)iH@!^WfD?Wcurc'lCIJt$jBAW`_[dm4r[`\TB!'=\FF&!$a/DftfJD"F\]`5E+=(`,"i8N3$8t?K/A@M*&qT_SY<fn2]I:H;Sb_cq!;;is'#BCF408>(IZp6&B"C08393Gu`75S-iHB@)'EYZO?4B^eO\O7<?Q(W=1RPk3Dco_+3#5uGkOLZY"2CbW-+?c(b<R)K"k@hTn-llr;S>__`HVYfXFBs*ZMX40Y[A6[424tBfh-!O-=",Od6MY1jDRQ[SC,.4uknZ"PNNqRVO7H.TU"qI$,'TsX8IADJC1FsF6Io`("m,om(WqU*I]#J=I5RT3fUrS(H>'`Y=?UGtXCE"#CI9TTEJ3HG("O=JWa0@bD9Q'3.u=,8mA-dB-sYf2,lp$BYUJSX]'=u&qnaiPP,]i#!t*LWQmPlP9^qBX,am]sSlW?n*Ut!kbSQ8NZc@l@>gZbZ6EA(Z5@ieo/)@4SFb\(trrDp[r\+~>endstream
endobj
% 'R21': class PDFStream
21 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1634 >>
stream
GauHLD/\Dn&H6"8s'_/h:jQliZ1CF7h3YkD9'kCeV:+2!?OSY7gQ8Xr;i^bJ2g4&.Q47,"!(&EKa3Vsl1S0/LM/TE/-Zag]&U_*b5T,NX5]'uJBE0udj.d^:7s^0rmAi6:M-J<b"Kg`=[nhC`%t2o[d2[JMcNEn6qA)OEQZ-;";S[Q<pl1i]kW=`Pf-7pL+!oi"os#N0C`?X:,AnSY!VcH_q?44IZIIB7?GiLs(<fe!g-dBoe7oC'Zj"rYTM>C1B$_KN;%<u*nQEjJ+lFJ8J3tqjZ%/[$O?X,?n2M0a)#@<K)[&>raMYB@!uQq7^8Xl5#Xuu4nDVs$%dSNrEZ%Rr&a5K3MOp+Inf0W\RE^W"80fb(BG)Kh/k$9#N^hM)O/#jPfDP_>.<oEo]I%k*<j+ds%2o:Pap4oeP7n7d1m)%2+^)W@`EcC>.m]n_=\,ukokiG2Y3uqBCqW`9HHSOq,P+g>P%*-4]rs;\*124nYm\&md.T5M,*.m)`*t2^gY`LGBGT0O)HC^-V@a\,M^LfelDbf07lN-*o,,7/&ul%o6E8_q&h)/EQ/l"([@CiYmDMWIYu^3,D>f17KlZ?@Hni<(/]V,Y#.4!rd=6K!WIOi1"I]@Necmo>D4>hU$k$-TO@;k_SX-Ln"'EFo["P;"I]E0`N3c.&*0u]q0cXE,.r>PSiZ?JuMNYsj;MclUQXe#Po,O`k-FIO9GWb@M!OE82#*iS5'rf$]nq&o7-$15\k]ghZE_bF+e1Orc^41+50XnI?(3A8tbZRRORQA'J6i1aIo*lBpB9[PnaE%j:-]]tTrcI_`)q\+:ig*?2hdG/P.H_7VG`tkOCe_=V-LW7M8u;6SPQ*.LU8H[^,BekG]u_Tj9UGDm:DXZ4aJZ=!fnW7DU!o:=*V0iQH]paKGnaUhQRrF7?S\RZ^=p/6-](Im]Yg"HHi@>/frjXDjEPhf6_(#LW//LrV3cj\MY6j5U^P*VUl_C>Bd^4%V(8Y!"I>!]VoG,`=7fTgGW!#]-0?X-ZS\(menMR&&^*L:r*0d(kG9J,f"'mI^k8d<YL5B^Z5glbl4F`64-<q1p\Q"[^%Y@dDmp^n+dsa7/udU"I(RZGhHY7jY\]d_he)aQ0EG<AI@%YKaPH@Jk"?L)L0'm\;X5o2eE"=d/dDnG>o75s4_",/@'J6K1rO'4non9QrPq,E#1r-b5"7`Z'_6sF@+N/CW1f$)![KDB"]&;oo4K,`or^t>dS/Y^`6jrOHO3pl=bbT\?Cen>:RgiAKaS)O,@u+D$#'ScDuP?$*Z$"JUba3nitB[YkV#BCJ7J@4@<%t_@DlfhDP#R,\\_m;d(?N,9LE6X=GD%"UUOM+&C5p<Y-c@7=EX6T3'DU)=k4EonY@@c>E_ICF1Vt6h7IE3O^G%k^>KZ@Wk$VC`"kFuOA9009kW6u;/qg+loW?BGcfl=AoisBgS34@'Kj0)o6<l8pj#[h`nN)aXZQk5)5RY#)k"l'_U`'[4k#EfFBL]!U=hBJk1+0Wc>>3Ke1at9)MrJ+,Y4o^L'^^^JX:8OF=[B]kc$cM2HA1_O#+VEJ592<K1EB;2UX[tcpKrs(RYcq-ipmSmt.u>Y&5j%5r>,>'b7'^<+eo96gZU3'D'g."ungC+%<uu&-~>endstream
endobj
% 'R22': class PDFStream
22 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 462 >>
stream
Gasaj>>N*i(k!dbIlPhDVpVc815<7CUJ"97&a?&DgF-R;)r'lVgD5ZO9JgORIHRup3Su9:.mKd&3!UKb\cDi*i%kr,0^o[G\^ahd*R.Fm?ZD;iT&Cq\2LVOe4%&/JG?s\XpA=03^-)YXU1l>bV6.Q+\i?N&i1Jqo]#E=e'GsZS=J%R3_&Ek(cUTQ@dHX1e*U7Dic8FQqU/(E0W*S\4"(l/=b,mg5Q#0\M#`C-"'8Mi(%Xa4rjEeK[\NLPAPfgR]2s>h&9$92Gc0&enGV7uEK3;>%bVHPHJZ<OT1s,redZ8'ZE2H@^@:%dLhGdS=-YjHCGCV"YIFt3)$JVqN)N$c:Sl])&3S>TV\LOH`qOjqQr0`1!r*Krj;%>683OXl5Y+f`p[UGKA>43gr3S4OE##VS2HS6kTl1$@q,mm5qH'l]t9k:8$*QAK72@+*'bpBC5Kd_D<&m"07gkWAS~>endstream
endobj
% 'R23': class PDFStream
23 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1991 >>
stream
GauHKgMYb8&:HLqIi+gh;$pMCF]Vc]8D4D&i1rpq+FV>SP$CnSOBcCABh/!qSlppegN$g@BOG%"GB[q;B$Mq0)W<(5T2AAUE^LZ/J:]Lm&dkMR.;^^%O3Qq2kL1*Z2l:!)HfJKnDt^CIm.H>#bMd3IUuc8XS"']O?<rTKr4]%f[#V:=jWpDK%mQ#Fe)hllIe5,HSt6Y')"[3<((@*>R]dLEq3$]4.rW,+0NkLT2SQC9jn7cChHl38Odr"JXL61MdGZdBZZ38hNL%aV(riU%=Y5t+1nMo]X4:ml'(ig0p>=^^_nO>14VP58PMQY558!%sHJ1VBAl&[q6C!I.^*qu`VJeki8P;gSFJIWW8n!Cd'E:5mo>RM<s-D3SPg.e!0%L[C7Vo_WOTt8#fr_E_R'u!XOsk'X8/L?qP.YAp[$M^KQ#9m6g1VF-'gj20,iJ!=4\q%c\!FJNa<>E)HT9FZAtA_H'?5VXTlL?0b`7Q1&#E\J8Ll3HQlPgip5>Im]ZA4Y$N"["<gJk?P`.'HO`8UEY]<Rg#[OOp9e]o3[E.Ic.%@GZT7!hO[sd&Z5:**!\?iAlrH.epc_M/Bl(QT1+u7.\d0:=!a/VZn4uZ[\D98^=<c2YK;@Pp[*d1qdb;Zi+a#X&q4/_\f,2]EV=g3.LG(]%l?bGuW`Tmt?b/?Hbds%=9-V7PD^q1tLoQNWaY)JWf,AF2O``P25/]nh51.c=-TVJip0%SJ/]ZG?o3d"/4e5ab.%Wu,*7I.<6g9(PD*\K;9Q_bCNgEP@/!\36QE':ElR#RoLn@]sS:;Y^70:gOF4i7;345XTr,Mk[om77u;kdZMs5ERRgr8K2W8>L2>BNJ?:$<tZ$LO%`3Or"[amY]:,.(pCM@sud1bC]]H/$rESSlIN\\f@g1j"M[/K_d0Fn7IcbP]\H"W0J6+Sro[Jg;k\\KGCk?/3d2;ZNLTUF21\K@m)rC*PuEhd0SW:;5PoQq`o%5U]c,Tklj.cTii..975*&Zp;6OXK62;lH6q=TE:5?nc7EI04\XsC:=b+a9j2IQXN]:#oF=8=`*Y*-&FtB3eGg+,*X,YE5T#%]<`!K#P!n`HgF:PM6b:0gNs_mq*i,@"OQGV`CFd0g[PkU5[=k,HcZ&jM@:$RR++[[<@>5jg#dYi5c&a<%j_F:`[F>DaTuJ:P=670ALZ21a=9OWjL'R(A$o*\alu:9*K!FP5U?aO"XZ,S'`.r1B3r<EV,H4#dt0M@+HarB#S^QR@O=>-(W/t4nJoZHiDMr[0jo$oN,f<**.`'9k1\`Rdj_1&.jE_NAV\='o/)gCB;>Lu$8N+R1gL9oXF028Lj*:A\E1RJ1B5')OU(=ua28`G*eWNi%qT6u&*6gQbOfRKR)Kr(#>__?hFYNZ\7-.IA?DWT)""BTaAa!@_f;cO6^0(L1c0bKS4q><4kX(JPXtH7N[ki,\8P6\7TD(e87j>Q"kRr?*)E(^m6m'fSHr68ClfL)KBs;5W%F[>%g+gc>O2P9#-4$anGL1F-IQ[@r&dMMLg-=Rc"VR-Q8,#kbF^hANLc"UNrcu/dbY)_<bX%OVHT)OVi>=I]*$JT.F$'<!HI0;_D-VU1'PCJ4[_t9*D,%]I["PPT,I7?%X]U]4g>eb:9t.13bYp$=b=>6j*H77`[U(J^r5it^Z8d[W,%Oc3hUkV$0_p%[Q<$1W8E1_;EPB_')8("BQ`lg4CgoUlH+aj>X^a]DZkj:IO`\nB_BG;mmd>nd=-e=].f9_g&S2qc!=f4&a:fG:aujWGK-N=6p5PD2Y%jnL:,9"fIK-Xh.+*$:*u1X5t2gd$*>B#NmRdBSOo>qQbQn?YsE%Ul@47GAiuI,*]>'ua5?#X&36blIO,O>U09bjLNUBR60:LGVEO0udLT<kX,ss@]n9*-1qHInD;L9b)BC-0?8qN_NLi[Oe0hJ$j^X,52)*:NHY/rdDleJtb4&)P7J`uNmCZR4%]kX#XA'2+9b6KXh6.bY4o#ollp0V~>endstream
endobj
% 'R24': class PDFOutlines
24 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 25
0000000000 65535 f
0000000113 00000 n
0000000269 00000 n
0000000434 00000 n
0000000621 00000 n
0000000902 00000 n
0000001063 00000 n
0000001234 00000 n
0000001408 00000 n
0000001689 00000 n
0000001864 00000 n
0000002144 00000 n
0000002424 00000 n
0000002747 00000 n
0000006424 00000 n
0000006771 00000 n
0000006909 00000 n
0000007180 00000 n
0000007331 00000 n
0000007644 00000 n
0000009168 00000 n
0000010826 00000 n
0000012603 00000 n
0000013207 00000 n
0000015343 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\\\235j\236!`\255\002\350\332z\003\317\346\3325) (\\\235j\236!`\255\002\350\332z\003\317\346\3325)]
/Info 16 0 R
/Root 15 0 R
/Size 25 >>
startxref
15395
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 875 >>
stream
Gb"/&@?6jB&H-M+J!aKUfI!H]Z6Fa7>*C;bUt=W;:qJ3ZJqZ)5J)=fL7"jBiV&)kMEL/I;oA85ip$G)]Q9Re9SSnMbqs\JmJ5G_O5a]O+ItWm^E:@X&:b`<qb@6]<D@r'5El=ZSB2+d!So'+pJ^N)qO7^VN)>H</n@T,4LU[)7=3bUNIt7Pg5s,S]&POT,C0MaCkUniTUh>d.GZOG?L!6!IWC8s!=9WLU8=!mTjKG%%a:qQ7;sYpG,C^H*+J2(8CcINFLo3;!4%<&+m@;<"U8YBk'i`pqa[*u_V]]G>\brZ="Di6s&T62_f9$h(7c2+*]+,;^8+PW=g4E*%Jor!LI)Y85$_4LjiJA;)LPYsGZOH:'7'M>mSB1&BS0WJ7ed#>ZejtrX0+tPp_FXWtME!Uq$GLMbk<,au`G)$u13JV^0k*[PQFDl2Zq`f]_F9t/,I=$l>)LP1AFl8]/l4$u]>ub#Pbft#F=8NM=LOeYB6g%YT1D$U9%dcef-W?`(>nE3)/L)'^)guccF+=.D'uB?^p,8T]d!scR+\+r;lt0_l0cRk=2nU+ofnj/7I>T0O0s=tU@u>&V(?K2UdJkcLmQY.@]RQ(]\fe/j(kbF[CP9YI62L%j(7U8oLOngBbrXPIs-ODVG"WZZ*R7;IU@TR\@AP""@72)qM*:@bhP0m]3T:1_:e`9iVL`QK/3WD:0HAH997P4$<ZC:;eX59goF%:Dld7@V43P^Vc)/UNJ<&pUE"E`oscC=XOm=I3F>(il[[qr3+hi-1bd-bp3o.%bH&G.7Ehe/RfGfmnO:)`ZoaeOG.7jUXDLh2Kk^%.Q^2LL]1?W,9n[PGJ[NDF#2Gp22`5!.E/gF:_K=R0QhCHt_&p0ACBX~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000587 00000 n
0000000760 00000 n
0000001037 00000 n
0000001172 00000 n
0000001441 00000 n
0000001546 00000 n
0000002564 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2616
%%EOF

View File

@@ -0,0 +1,149 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 10 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 9 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page2': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 11 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 9 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R7': class PDFCatalog
7 0 obj
% Document Root
<< /Outlines 12 0 R
/PageMode /UseNone
/Pages 9 0 R
/Type /Catalog >>
endobj
% 'R8': class PDFInfo
8 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R9': class PDFPages
9 0 obj
% page tree
<< /Count 2
/Kids [ 5 0 R
6 0 R ]
/Type /Pages >>
endobj
% 'R10': class PDFStream
10 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 774 >>
stream
GauHG9lo#B'YH6>J(UG2dV2rZ[__%U:6JAMBg*FWEtLlL\$e^W;3HE9l!Zpb):GlZ#D6me^"q6(M8?YC7_`XDHqa&/S:PZ*;m=UVO^-fql#qN!4+qUXfO::qK,1cnCO#Usp-rJLf_:Mmk^WJU_66Y\O[s>.]?#uMn`o41G_G->P.*#sisl9R3t+7N$od2k08qlF;+01KbmCO;Hof0qjk1,P@$_GQ8qu,Z>=ouDjKm6aXmbq!HP+ZP$O8D\?pm?J1%@uI;dmc''h6ERr':n*>:jhf3OL]P+rL.d8kT55!hP5$n%bp4j`B=I%4KkXP3!VURZ!T@FiTm#U9m]lbhVPuY3bN,jGg$2Lbp",BH!5<Sr:`T/f!Vdh"?ZEFJ]hm"Cha<29tWM4FB%X1R\6H*=>tBQqS>JFC*4J6d*$=KorM3^6.NiY^^=;<GgKn^(?,LZm,Hc,*PUjZo"-?hBYg.%n=d)Wk+Lq.3>SL,'RnW7V(Uc<"hrG$]>7A9.Y.J&SKRPerBE5[f5=cgtp#s-+_6=PA;+%qPR5hFZqap%8KVH]+^8I*B:'*j\N->6"f2DKRaH9ONdnbJW,jKWcVM6NLH;I;X0S4;;1d,SY[4e(6G7M:0!u'[@EmnP[djka*J;,A[QP[BG8k;.V2LO/=KX=<L8<=YH$B\]GMD'rP9Vrboj<)"u3%SJo_IgTKN8rp7SFKHgta[f.m4;b:>\7HnBY@Q*#Y?EHieW?\bm%4aa%W^00VB<OVDA#TZ+Vs#<3S-QLsfDd[g$`W~>endstream
endobj
% 'R11': class PDFStream
11 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 937 >>
stream
Gb"/$9lJ`N&A9=Y+.h\M<fLmuNGW]OQ)(FK2G%DXQWt<4?oQ_2m3QKGI<X:M"GecIl7(^[L7*>Uc'u,]Jgk&mrXKV";h,Ap(+b&F#0S_@"ID(YqRtebSrOCb^5<NGE3#?7=="GsI:MX=n4aQ^K&Mc/QfS#0!WgIJDHF)N3%9<hES_o7L#?5?Ts/B8@6:n`G$nOm2&t5!2]?Ds''9n[+$ZABpj'7NBZh/2h2+W1^Oe:NGg=s+SKOCd=$Q7$K9)-XedQ(0nYY2:i=Y`0Q4)H5mPr9)DRDP@L()h.WBt$f"/ZQE0ZfBV-re[6<"a%bk:h_O*:ge=F%2s,Z]$6Tg<aiGa[jGNIR]Y<N7&HcBT\$H-nk0<:$(I]fBbNcL-ilMLp%Rm9Gi"X#oT`OOLqt+^'KB($h%XQ8'Vr>6j6V:SB_jM?'2H>c)<`)JgJTo]ZBWa1Keno<J/XecF",cZrU0.MMP]&1\%%7&OD7-J=pt:4NghT(/IZPEY0f==]0?.dj_0!r0on7^Cr`L,#VKb9o2cK1\Q,ieieNFoLL)'_V`B%C+L3nYrp7iV20C(51:EGU&"?*VmD;lBUd0G7.d18X/7_5B/>jY<"u5u[TV6>iBm$%+]f0'AYf]Z2U]\@TU<Z=9Gq'spJ7!lMOfEJ_,hMDehu\ARBR)%1'!m7#DQ@28Omin0LUjp=]Qojl&96]eZBS>C3k6OoUHD8N9q;af\1=qj'pfD.7aVr,9R267;K;"QLo3AhA/^ns)us7Pe-Jj9l2;<hQCZbf"@&\1Yrfe`$\R:Q%s[mA$4XYDY'eAjWK>eDh8\3l)Bl]B;q+u7pdg:$gqUClg&Tecc`0UrH5prBu-$gqJM)#LQFliN88?m6lBL:NsNAP,C:M-?2T;WG+;j=VQ99"7Y`\sP?2N;7q4^#YI4bFiiEl<lZ)f0UYkqVaQ35`~>endstream
endobj
% 'R12': class PDFOutlines
12 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 13
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000587 00000 n
0000000760 00000 n
0000001038 00000 n
0000001316 00000 n
0000001451 00000 n
0000001720 00000 n
0000001834 00000 n
0000002750 00000 n
0000003831 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 8 0 R
/Root 7 0 R
/Size 13 >>
startxref
3883
%%EOF

View File

@@ -0,0 +1,149 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 10 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 9 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page2': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 11 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 9 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R7': class PDFCatalog
7 0 obj
% Document Root
<< /Outlines 12 0 R
/PageMode /UseNone
/Pages 9 0 R
/Type /Catalog >>
endobj
% 'R8': class PDFInfo
8 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R9': class PDFPages
9 0 obj
% page tree
<< /Count 2
/Kids [ 5 0 R
6 0 R ]
/Type /Pages >>
endobj
% 'R10': class PDFStream
10 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 774 >>
stream
GauHG9lo#B'YH6>J(UG2dV2rZ[__%U:6JAMBg*FWEtLlL\$e^W;3HE9l!Zpb):GlZ#D6me^"q6(M8?YC7_`XDHqa&/S:PZ*;m=UVO^-fql#qN!4+qUXfO::qK,1cnCO#Usp-rJLf_:Mmk^WJU_66Y\O[s>.]?#uMn`o41G_G->P.*#sisl9R3t+7N$od2k08qlF;+01KbmCO;Hof0qjk1,P@$_GQ8qu,Z>=ouDjKm6aXmbq!HP+ZP$O8D\?pm?J1%@uI;dmc''h6ERr':n*>:jhf3OL]P+rL.d8kT55!hP5$n%bp4j`B=I%4KkXP3!VURZ!T@FiTm#U9m]lbhVPuY3bN,jGg$2Lbp",BH!5<Sr:`T/f!Vdh"?ZEFJ]hm"Cha<29tWM4FB%X1R\6H*=>tBQqS>JFC*4J6d*$=KorM3^6.NiY^^=;<GgKn^(?,LZm,Hc,*PUjZo"-?hBYg.%n=d)Wk+Lq.3>SL,'RnW7V(Uc<"hrG$]>7A9.Y.J&SKRPerBE5[f5=cgtp#s-+_6=PA;+%qPR5hFZqap%8KVH]+^8I*B:'*j\N->6"f2DKRaH9ONdnbJW,jKWcVM6NLH;I;X0S4;;1d,SY[4e(6G7M:0!u'[@EmnP[djka*J;,A[QP[BG8k;.V2LO/=KX=<L8<=YH$B\]GMD'rP9Vrboj<)"u3%SJo_IgTKN8rp7SFKHgta[f.m4;b:>\7HnBY@Q*#Y?EHieW?\bm%4aa%W^00VB<OVDA#TZ+Vs#<3S-QLsfDd[g$`W~>endstream
endobj
% 'R11': class PDFStream
11 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 937 >>
stream
Gb"/$9lJ`N&A9=Y+.h\M<fLmuNGW]OQ)(FK2G%DXQWt<4?oQ_2m3QKGI<X:M"GecIl7(^[L7*>Uc'u,]Jgk&mrXKV";h,Ap(+b&F#0S_@"ID(YqRtebSrOCb^5<NGE3#?7=="GsI:MX=n4aQ^K&Mc/QfS#0!WgIJDHF)N3%9<hES_o7L#?5?Ts/B8@6:n`G$nOm2&t5!2]?Ds''9n[+$ZABpj'7NBZh/2h2+W1^Oe:NGg=s+SKOCd=$Q7$K9)-XedQ(0nYY2:i=Y`0Q4)H5mPr9)DRDP@L()h.WBt$f"/ZQE0ZfBV-re[6<"a%bk:h_O*:ge=F%2s,Z]$6Tg<aiGa[jGNIR]Y<N7&HcBT\$H-nk0<:$(I]fBbNcL-ilMLp%Rm9Gi"X#oT`OOLqt+^'KB($h%XQ8'Vr>6j6V:SB_jM?'2H>c)<`)JgJTo]ZBWa1Keno<J/XecF",cZrU0.MMP]&1\%%7&OD7-J=pt:4NghT(/IZPEY0f==]0?.dj_0!r0on7^Cr`L,#VKb9o2cK1\Q,ieieNFoLL)'_V`B%C+L3nYrp7iV20C(51:EGU&"?*VmD;lBUd0G7.d18X/7_5B/>jY<"u5u[TV6>iBm$%+]f0'AYf]Z2U]\@TU<Z=9Gq'spJ7!lMOfEJ_,hMDehu\ARBR)%1'!m7#DQ@28Omin0LUjp=]Qojl&96]eZBS>C3k6OoUHD8N9q;af\1=qj'pfD.7aVr,9R267;K;"QLo3AhA/^ns)us7Pe-Jj9l2;<hQCZbf"@&\1Yrfe`$\R:Q%s[mA$4XYDY'eAjWK>eDh8\3l)Bl]B;q+u7pdg:$gqUClg&Tecc`0UrH5prBu-$gqJM)#LQFliN88?m6lBL:NsNAP,C:M-?2T;WG+;j=VQ99"7Y`\sP?2N;7q4^#YI4bFiiEl<lZ)f0UYkqVaQ35`~>endstream
endobj
% 'R12': class PDFOutlines
12 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 13
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000587 00000 n
0000000760 00000 n
0000001038 00000 n
0000001316 00000 n
0000001451 00000 n
0000001720 00000 n
0000001834 00000 n
0000002750 00000 n
0000003831 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 8 0 R
/Root 7 0 R
/Size 13 >>
startxref
3883
%%EOF

Binary file not shown.

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Times-Roman
<< /BaseFont /Times-Roman
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130304200123+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1716 >>
stream
Gb!TYcYm#H%*.f;niu?jot]c=-!a_3",[,s<b"9$4#i(d3f'?OFqOA]+8)4sS^\O/n;A;jfJ!^uP9MH4qG<>2<aK\=]Nc?GAnK?6ST3N14rG.cRb9@Vh<acED6e*KQlO(Y\7X`02@K-8o]2Xn'A)oa5Gd>dj_B$JLBj=7dh>UGp8s2Ne_$$*>4Sed=+AFQbI]E3o4G_I]Xq?`c$X<02Y6h-qV'a']d<:9ApM'pcYlO)/0F36ApNoX\%"10?d7r<q(U^-k?If)b\kYkojIQ5_ttAd6dhFu<Z6/L\HZ5^63q:?ik\Q#-q'(X"FPIbk?mfYC2!S4gcoPVl$)9=ZLR[]%si%n@*QrGMB4mdk5?MTm%O5&I[Vf3CMe"hVX%=ps/VGfRW64N=AJsb`9b>"Z0d0_OqD77V:]?D]mbMd;_60mEi!I1$^J[,jt"s^Lc\,X+nD4@A]0'7W;$X48<f8BHsksl+U_iW!($7CCajnI(s^JNoUZE@NBWKN5UUfRJ97O3'E]Od-okrP"A@B,%ZW$iN?JjCh'd&8oKY;C9Z\LLR8Ukq==IVu)'pXs-:CWIlc:K9;h9l?,pd.k?:Y*U5p_H5a(3;#h3bjVbWo3'JJ'3uOZ4QUM6_n+OYC]I:c_-I,b]4nQ7CIHlm7\g0QJ:H?"-B](uTB\LWi1>jKW%8[KDQ<K'XmI6sfFm7H>[>BF&18V&>YX=jj!6j9nD7<=+fu&]?5\4Mpp5PK1b=832-E+s+M6WEWp<e<8Wa#Tc3)I!DY@S:,[kEYcIRB_b0#S=PqQ;H#TfEDTkFePqA;@X!KeWXi&@nO+-C=.n4A8dO/S:Cs?-l>*uVHDrY,&3MBS@RQY$2B?iVH]>ZP#S:66YoSth;p/fOnghgG"/ZmWaKQDZYDDM]j9Q,#;BnHPj.'%0?_t17S/2`+ArV=["frLO:<8rl73&&[3_gSV_FC3k*69?%Q`t0Kr/'LH#*6R0C[?hL@h:tQde`.B03'OP.:D]lpa)X!rDP$;R?,PIB<tn1G0BROp,NOTZ>e<\o+-b1:<'8PJJ9"`%W!H../ZsSXM]WRCmZUb#RZk0LU7C$3=dRsC#;mjT_=!TFVKPo`dIoj#pDou7=l)<>R*'e&!]II_C0(54>[mbkQ_uC(mGpJglE)t:1Pi&]0L(^E)qmkVc:?%Ic;oT#:]@V8Tctf/@Y`"J8O1tf/b(j'Ti./OZ5Wmi4M:?;[/q4h*D]h+s43'\J<7`;NQ%86M!eDa'3("#Q_I==V1Hb\QV;2\cIee;@-!TeP?@!E\,ekO*%`pW4_"W4n@Q7Q5$d\ZeH^(4?F'DM"Q9@fq_*!Y:et,\"DiQh>-HorVYYunIQHXJm`Qb]HM[C(b!o=ml)%h6@nO5k.G:jX.M=#`<533*prT%Fc4<6;]_ce10n863DcUe&tQOr):>Xl..)50;GSuM%B3Fm8f(*T8$.1+2[?]7d-]F6AH7,1Z_ph+:WNH,+7aLm9IVXiSY8=l77b:-ih6]VV?3'+%[#*9fNg"7qdh=T]MpR>6W7,;R#L^4<%o)-+VU"HU[T<YLjSNaG!>_1'*Q]*R4n^DOP4?[_PEGMP`ZG`8VIK7!VTV6CHL)!>/X*:0'C[SR*p\)Yq22hcXLW"g80W5jcRd#qE4?-#d`EtO./_g8@%t7&kYBiV@37krO1P,+&R%XZ[MbPIIP#M5G$6\I2]<_XJW2M1]Mq`5.YW,:]:LtiZZ_~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000567 00000 n
0000000746 00000 n
0000001023 00000 n
0000001158 00000 n
0000001427 00000 n
0000001532 00000 n
0000003392 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\275\375"\226\004\012\247\311\024I9\2513L\031\365) (\275\375"\226\004\012\247\311\024I9\2513L\031\365)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
3444
%%EOF

View File

@@ -0,0 +1,549 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 8 0 R
/F4 10 0 R
/F5 11 0 R
/F6 16 0 R
/F7 20 0 R
/F8 21 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Annot.NUMBER1': class PDFDictionary
4 0 obj
<< /A << /S /URI
/Type /Action
/URI (mailto:robin@reportlab.com) >>
/Border [ 0
0
0 ]
/Rect [ 0
0
595.2756
841.8898 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Annot.NUMBER2': class LinkAnnotation
5 0 obj
<< /Border [ 0
0
0 ]
/Contents ()
/Dest [ 25 0 R
/XYZ
72
695.68
0 ]
/Rect [ 155.9877
643.68
297.72
661.68 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Annot.NUMBER3': class PDFDictionary
6 0 obj
<< /A << /S /URI
/Type /Action
/URI (http://www.reportlab.com/) >>
/Border [ 0
0
0 ]
/Rect [ 297.72
643.68
439.4523
661.68 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Page1': class PDFPage
7 0 obj
% Page dictionary
<< /Annots [ 4 0 R
5 0 R
6 0 R ]
/Contents 29 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F3': class PDFType1Font
8 0 obj
% Font Times-Bold
<< /BaseFont /Times-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page2': class PDFPage
9 0 obj
% Page dictionary
<< /Contents 30 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F4': class PDFType1Font
10 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'F5': class PDFType1Font
11 0 obj
% Font Courier
<< /BaseFont /Courier
/Encoding /WinAnsiEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'Annot.NUMBER4': class LinkAnnotation
12 0 obj
<< /Border [ 0
0
0 ]
/Contents ()
/Dest [ 25 0 R
/XYZ
72
695.68
0 ]
/Rect [ 155.9877
607.68
297.72
625.68 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Annot.NUMBER5': class PDFDictionary
13 0 obj
<< /A << /S /URI
/Type /Action
/URI (http://www.reportlab.com/) >>
/Border [ 0
0
0 ]
/Rect [ 297.72
607.68
439.4523
625.68 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Page3': class PDFPage
14 0 obj
% Page dictionary
<< /Annots [ 12 0 R
13 0 R ]
/Contents 31 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page4': class PDFPage
15 0 obj
% Page dictionary
<< /Contents 32 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F6': class PDFType1Font
16 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F6
/Subtype /Type1
/Type /Font >>
endobj
% 'Annot.NUMBER6': class LinkAnnotation
17 0 obj
<< /Border [ 0
0
0 ]
/Contents ()
/Dest [ 25 0 R
/XYZ
72
695.68
0 ]
/Rect [ 155.9877
679.68
297.72
697.68 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Annot.NUMBER7': class PDFDictionary
18 0 obj
<< /A << /S /URI
/Type /Action
/URI (http://www.reportlab.com/) >>
/Border [ 0
0
0 ]
/Rect [ 297.72
679.68
439.4523
697.68 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Page5': class PDFPage
19 0 obj
% Page dictionary
<< /Annots [ 17 0 R
18 0 R ]
/Contents 33 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F7': class PDFType1Font
20 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F7
/Subtype /Type1
/Type /Font >>
endobj
% 'F8': class PDFType1Font
21 0 obj
% Font Times-Roman
<< /BaseFont /Times-Roman
/Encoding /WinAnsiEncoding
/Name /F8
/Subtype /Type1
/Type /Font >>
endobj
% 'Page6': class PDFPage
22 0 obj
% Page dictionary
<< /Contents 34 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page7': class PDFPage
23 0 obj
% Page dictionary
<< /Contents 35 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page8': class PDFPage
24 0 obj
% Page dictionary
<< /Contents 36 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page9': class PDFPage
25 0 obj
% Page dictionary
<< /Contents 37 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 28 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R26': class PDFCatalog
26 0 obj
% Document Root
<< /Outlines 38 0 R
/PageMode /UseNone
/Pages 28 0 R
/Type /Catalog >>
endobj
% 'R27': class PDFInfo
27 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130304200123+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R28': class PDFPages
28 0 obj
% page tree
<< /Count 9
/Kids [ 7 0 R
9 0 R
14 0 R
15 0 R
19 0 R
22 0 R
23 0 R
24 0 R
25 0 R ]
/Type /Pages >>
endobj
% 'R29': class PDFStream
29 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 2127 >>
stream
GauHLgQ(#X%"2Jjs++8pfM.GURYu(N99U]:;\T7q)TYQXA:&,CX,B'&fC@ab1Qk3D9.SOeK5B,>i=X0T3TM%kYjig_^K1`WlNOqK7t=E<Ck-J__r=I:]=>RI_5$:N42g+ugq^7$+/FG%Y-7i=^*8g`"_(/^<f%UE=s1<+=/_Q)CXe&,;OXo!.B3g4/Tq1`&k4U/la7FP%f%_=`+rH^#[nH<X8?iR$W)p/K/cKl@<oZ'@<mHi'O_TM>=@o>__t-G(_o.1-rB5%`3BKLde-O@I"fNq\GMLBU\$I"YLsPGW'IJEXXlme\_)Zm/;,c'!6so**7?MQ(;);cU3='OR2qp;;8==kH8QF-+X(Zi&n)j?;PAM?T"nZEHQe;<jD_Gh@WS=6E3g<?mJqHnV)MHR\dJI-rR2.]*RoZ.b)#([Ja[mBEg$h3QKQVFX3\Sh4^[@t7D.pfopNd)m_T@+F1QXo?6E8-*W^DhqskcpA5i<[9"GB?;b=b$J0AatXb@qRZTL][%=P8i4b@g-3?"\,$*V>5?H>tp/JW`F>O<W>.H;Mj6LI7OrpmGp>!%hR4-WFho3aSFAbqTi%fRZk5*JDT0!/->4IY$=foQ(klE.]p$R*tQ/l)M6k;$;u_`ljN#?S\?q["dWIeS(L>,)RBfD\U]^=E>[oUC.hRc6l,o"_/*FbNcs>6;FKDRY]Zb_RV6[jCf[,buY.7RB'`\#XV>LKZ)(;9f]C>aLD>>a.7"1Yk5$+).?E[pqJVS>tlpG66*,Sg=GKQu91tjSLX=i'UPDXq__`F_t]set#@^dT0rbr"Fu3_55q/1Mfq@_2aqr=+*u[G(VcUV%YcE)m/.5Lc04p%])Jq3USZp6Mp<nU&nOTl9JF3-q-5PSUsME<F2M2Xh/+m44OBQT+)%RG:Z(;irR3=#98)a_XuOs3GV\J%9Q6@[@$Df4Na*tW(lM)Ca,8`^rkJ!24BD=Y@\&8Q/]6/E[KBt$02D%YpgfSUTFkr+hlp:3u"'I.`j3'((qp)^s22c0J*JU8BZ&o#*qu'&.mifqc$k[bt'?qgpJi-NZnYNFg1oo.[1FP`)^!/Jl:P6YoYgNK5"Y9SJ]I^].4ds(*=/?hTlZ-5u#fC.QOmNP`a?J`jclep:DT_(TIo(/A#iu&8<2b_fEgUNG&Vj-I=dTVc`"A+kf-EA+KEEArc-d(d,PA,-@W=H`:ngQ;9Xh=j[1J*OkH#Nc/o,S@U/?S#MVEJm0js;o=6udbQ+hA2emg`P_h9ptQ<$YUu=JbgXQ'C2=M[DGc9rUk=+ZJu5u;FN3KLoWMb<7(E?k]BD1`b)PF6;6L.6T&Uj`UuNKfUuNKf[,X]dR@ZCE*:KOJ*UfXK*UfZ!*I$Xkm*'P$RHL>$i7o$]+bZ*i1;T/c=)G0Jld,\X5,/L6HjfbK<ZGX]'t7"Oc(H&c.[_'pX;M`FX8K>$B!"B;h9%DBd.`HCGdolN7%&foMW-c%LC5Pf;>i2+1*!D:OF$:&4<l4@i,`]4KFDV`J.6^=H-@`&%Bul0HHQ@Diq(%NiEOB#X[?'D'<`Q?B2Zr_,Q/4e;VgEW0o].N?0lUaKb"7B(+ERkOjGpYLTQa&`-u1p1]'c>52K)b%*':rhD[A[k3Aga^ai3NX`,2^9?g!oj4!(#RJCAE4G5d3okeLXPZgTrq'B:np?$<_k$Q1E9sB@3,BUGiJPL7*7VPHFV`?!l(imUr%g9=HC^p;>c:F%*##9[bep3e5S$'K9<3`GdZ^\SQ!ZHq%/S`qB65?AUW?GM=$(E%LbARWB=H4PYkMP.'kod55/"ed@jb(PWpUc9\CtRXq"s;V*r=1a8!Td#.+G9QY@09.7([YVa#4jJ'a1njps0mEDHr)Tan9r&%J/?F<dPd6mb'=dd`psC6=)mRg*V:3%,HaB'*dS#6-$,Gqm<Ak!l$*Frl$*Frm<J<ck+p08DUR2F2sFq.qp/7!KQLfWB*Rl=Wc,4aXsM<n12@omB#NkkY(pp=+4]Xr6fJQtX>O@<\q\-^/_BBQq!(N"`g/hTn,"/9cYu$pefNERB.+"_#mna)N-Q7/&LXO!EoU98Fp=P#LI(Et[=/_m20ZhF]l-#F2GQ+_nBUZ,pV'gY?48uE$TY50Lqf+gDn%5giVMg]gT`o=~>endstream
endobj
% 'R30': class PDFStream
30 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1251 >>
stream
GasaogQ(#X%"1(mIphkGVm$olAYBn_8a@M<2VHn'kt>>p-/+eu1ui=?lhKql)9K1t=Oi*YYXBNR%XCT*!2!SKq^uW62f!ZG$6TU_]n%="@T_O'+7&/Z65J:!S-3.<6^hXo\qC:Hdrb0,F;"4cXAbQl;c-=<G>E)?1-+(05\.^HT+P)jLi9j=I%,`V?Hj6tl\]K)Q.j]rWY'E397r3.-)%-l>M*o:AAOZ6_]Aqq&)J6RYuXblL)JKK.\n!eYK;P+^6LQJ"&,"6@Jpql5JaF=L#G+E+Lncjr^LqX$<iE80G(6,kV(50AkFJ9:sH0s)D#6;pO33V9Z%rUK<S44A!FK7L-Hjr.)aHI94U@/-uXc%P=?)D7R>;5@@&;s%*HT,m%l"CRlML[/t%8B8u+6T"5E3"'gVb3Lkq3V#2-89;'E@d\-.2tk2?#cDbbZp*aB'%a)X`"enkM9KN_N!"m&%URMTrCf?N(t,H26[XWOcM;!A`Rl@R;be&bl7>$2\;?/_]Fm?H1lH85`*$tr!r/fn]%[^bZtA\j=oK\qao+-aV0W-c^$C[fD598-5rONLBkUg`&H#+f=GMi(8:O?=L)H&ti?IAE$aP&IlkH"cK1$]hT`"'MRN<[t+JLbgo9>FAZ/P*6&bfQ0t#Urp]4L6UpCn(EQ.HVXTDo_`M.+jEq*6kJO6a&2_O:gU8uIO)K:Ymb::PGMTKqb-KO1HS+5\#S+1X*T#m24d50";dqlQ`"gai*P$8Q0*qtBc`lm-Zkk?oSS,G-2fbI/W_O.Q3/J$LJ^00dVK>RVd:44!PDu-i_#%qJb-Dq0amcdfq?h#X7eC0:SYrEh7(dYj>*;'^2H6r,h/`p`q>A6"+8+G(BVVoZG6i8bL"/^JZg-'GG`:S_.Y0@igao6Qik!4\f(rLHT//hoRJn@%@M?"GYcL_#V8YBFhDS@%NBI+M]QG9A>AnO],%g1!-Sa2ng%Ksh_=j8510K\)n*<(?#VFrP?pU0MMS9fJ!gJfg^hF.0pM:nrpnjlIuY\+\.c_@V91q;id+Anp]6NL^b<#F%d0W:lLS-DL;\CsQ_aX3\$/fM9$l#_<&@.HEW,]ZL<'#^nF5_EooA\2-n<`AM-\e,e7BHY!ue[LRTiXJ/gB1W]#HeLmu!_,UGGPG7a&X"K7!>\rScPfmFFMhf@T9*9Dfo./c>D0rgbq6mJe)^\FcJL./(=saV&eHm/Iu:9>_,V?(PlU9A#Zo_Jm*$\1fI[9D>64l/Z3L[:j7~>endstream
endobj
% 'R31': class PDFStream
31 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1320 >>
stream
Gau0CgMZ%0&:G(NJ!e8uO]=4P77p!G@(0fq5u=p-s+"q-N]+3(b&S9]f.V(%`JuMHTs.u&E+[B8Nb0gL+Vl_1T;sQZk63t1+s;HU)N[E&(/OGciqB5Q:?7nA(f:Vkk7Pn1YMf6Mk24o41d&X-AZ7Mg[`T]udH9A=DQCjNFIH=/M:JZa^tg)L=hiMKTkNA^+(4URmY4VhrsV9"fu*;W%']$NTr;2J*CTc&d+>D(XGRe)\#So_Z4_$iXLk@o^'P_mKCE"bL2-`5.(4n$$G"B.[h_qm(#/"[XY2m%Q08"Yl5o#i?b3-#n"H_<;D?37lf%<,e=a!(0+JHIcMh-n_pE6jBXsJKl?1R"LUOjNU8^*=4hQ3khbDp-T.;(0nPZPsgM4Ltej^Ai(HY.PGobVTo6T7.X%MDJ92V-&B!pbUCOF?B]I^D+*qPRDa:Y[^notm3VU[kr<C2c=M_+3,X'5+.2*U.[?C"]%`B7K&Z0C\N0i3&f5O*[H`sg!P%W.T1;4_b;=Y`#\6p)bUQ/=T[\X8>8S=(3lnXBeSas_n'W((Ct5t7M^qDkbRH')RS'9W?QOg;b1N#9lS,/Q+Xj"uN>O"k9l&tZCQ_oIm=oDA#J9[WLnb(=nKbogSsS812\IUuN,H7g6ffD.oTEW,aFl;(OE<)A$M"^\(Cd/73-Dq.[fMQ:l]h!1"$,k&Za(W[.(:U4M4Vam7MO7\&%Yq?.,CB`'IYl`Fjq?6"@ek+:E['*(d."3g?,i\'1,4.4TaFl186ZksIU2+N3"4Iunk=S?FIYQt6Sa*$DIb'_Hh&s?'=sZ;G8lD0aj.>=umU4OqAAV89A`GYP\)8^deGQ#"+W+"]dc=lg;6(!`WOBi^/r5!DQuFC26j]\Bk+#O0PF'YEbg;dqE]hC&Q=NCo\.d*AjVfAhBI0NJ=-/l,F%XCl8r]s&^7+/S0.`Rc]8eh1kObK_5^2^e,98"PFo+3oCFXH1mF^R,F,p:m6>f^RFZu@m29p5gVAW)5Sn6-PLrTh0cE!rc:6#=71WsD[8X`(&;X:B<As/8AZ@ABd82Z;hY>9J4ZbmK:/Y#B[L1@gHo,1!<02[s?-HM9cl`t>Yk"t6t5NTr;nb2b>2[R70PO$ej>pX=J1L[=h\&Q<:=h"0BN9=g);\mA,haU1F'@>D<%;Z),>Kd/<JC[2r?saO-)\9;Hk\M)T8n`&J&%"mkChXG.TsH%r(($Ok"Bm'm[Q(4DK[rW2o8@7Fd+Q9``6Uq-$#BZH)i"5WIt&='&,lH8Qk0.C)"%q5rF*3#o_4[U;DM$>fIX1,luS7^BRt"qnpbboIdVmDS*q!f&2j~>endstream
endobj
% 'R32': class PDFStream
32 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 330 >>
stream
Gatm6b=]],'\s#b%qhkn0fMgjG3OMai^V0fB&d!/LH_pVkP%^!G3gWP)eg42EZVn68s'%G\8N9nj`#36+9hKHdR(k-iQ?/k_Q'h^8j[<\g^97=0C['94(gD3:n!8(ZPHU(6*P&_PEG0(c=4?dadB6nCk"VF%CCh)E,pC7[tQp@.7hl8ppdE+Z9>3cafdFpXg!Wu9tKM*(qSjCgA&e$C5Z(hGItUV7sSI,Do5HkHb'[@G&HF#-GWpN2o*GJ7\UBp[SU*N[*^35Hgo"t6Xk%RN]JRm1*0-uBc:Upc97Pcl@2<O>5Qdlr7<J\31/^;lTQq?p'I9\N-,~>endstream
endobj
% 'R33': class PDFStream
33 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1210 >>
stream
Gaua?hf%4&&BE[jp`KFT.Q-lZ[Za82UodfZ:"?VQ]M3_Y&0Pg\3XFQK^OEW_bD&gu9AK^PNj!m*3W!ia!5d^rl?0g,khQqYh#IM.VFq'AUM+t3hG;1e*!J_o.0GW/`1t-.+ke:,DERbU*^T0`%Ur&!Dj2@a65r::h'h0i<>7!Z@.i0Tct'^_GGpI5=b=SIr@Z>rkS9QCMo!%I4F+'CR/DEg-Io"Qc&fs&Ul8A:'Q8nX^-Ld@61Z9RPJ#\E@]A^2\ltG6*=I.!AG]*h.1al8Q0;<B4@mTgS!6SU)"XIU#XhRl)$.ed(l>2=O#RWf.]qe.@Dm/A8EbDb;iWIr/`6+cc2b6R[Sd!PJV"^5`('rTB4qrA*e`#Zdm=s\(*P?J&90\"%T1k?rI;e'l9a%JeIALe[jiK1;d*mT`$-OdCU+YDrAi^[qNe/WltF,IO#3fpZcI&7f8+oQ_d0ZMmO$Q)I[_\=j$F[&/dgfFFr84?0IQRT8bSC5kra-b(L,Y@hkbg_km7\%^pCf_5'2Gnj_TJP3e5qFS>_!"@Z-T_p2uK47_qA`d#1N3$$D^gN`g]l#X$=+j&L_,iaK;(DjKdS_0hJKbEjOF6N"@cD0k<55I]mA>?@!^Z6"[iUq?=FE4:Fl"AWOXM[n<a4Wg6eU2,^t=nQA%-!i^Sam,K!MVX.)Y_C%,fjL+lc2>qj1/D_c`kndbYKe@.Qt?GKmagFc$U^]\@AmDV-N2arK-=41Pf;ZZ'LH,<>tA6T_bl5"]i\?iE3)lJ79LCqTenE&0Vn,!kL!-(6>KNoQruP$=K/(1'udGs4Jqq,"U=7\)%Hb/23Z._[JqW$,cY'C/10FY(rqf%4k7PLGF;kZNpUC1rp618MJFJ$S3]KsNd7Xmg-D=2grk?!Lc,<9W)%=B=cHiuFR5na)/q*Rd/bhu"CT?Irhj-qKEf=,EW!k]8Jd</G/993`ABM"(m54FQAOYL=*<@5pF\YOQi"e_[h$pbe_OWcFLN*_RE=2C\JhIsf_cfV6a]4XI'Lc>UtKG_0f3<^)P`$6bYIc?TaA'S^rT0;SVBiSXKbT6b`cY:JIt\HXl`-n4DAtBBZ-*HVf<r*Bm(CPEgLC9M8Qs.$+&0<)3="O#\/T9bYBtc,C4fHjp-3]@)`:3*glbSSfa?qJY!qpK1262()kXgD&,!\d5G$P91a`D7U)PH?X=3!IgBK1>b>[lq?p'0H>W~>endstream
endobj
% 'R34': class PDFStream
34 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 2462 >>
stream
GatU4>Ari;&Uk7Ps"MO3DU'HR9!U$AkQTU[g%H,XQgG**6.6'BU24Zp8r'/#ptp:MUguQqXLL`YfHNQ*Hnubf$l+;RIt@EfQ2p@qi5_Gl#XWdW+ddRSGk_?4*j2[lbX;5#B7W"46Bo^--jIZLlh/f;l`7hC+V5i:.P8nuD^O!)q?fXr]f)*ZU8A3=(elaL\UE@m-htb>K<K,t=%^5[LL9$!#K,I9o@__1bpPTap,#/\W?=RB=He,1eBrj%IrMfH.b@ol,rr&pe.(UKQ<_>:[a6!2Le8lp1k3>["gT_j.T4?D@3H6,5dQ1&E"=tSo+tHYplqhZ"P.S--2<'L*5rhe$At"*j-c0s(P7#'93^XI/qF=;FKUK*dRks[C9[fj^q]mH"dmMAX]SjBZB4_+R2OPTf;I<-!F2abP+0"FQPCuF/(q:@MbEN3Q/=WN#cO/+N'qO403J&Rr#%YMlSp_d#7i>f382IBH8UCm1hR\gjY+"idXm:PMDHJY<GNg@jX?6>h8,t'+_;93::1Nk=Rn<dJL2)T%c&`k#YYZ:M/MY#/g>n5$''@ddX!N?c-mk,2aPGP;<%!mZQjb37Fo97D8pYJ$4Y"SA]Z"N)01Br%p/$R#`4C)o#Gru#,b'*el`LK6ASt4!_n*K)qENrBW+C=3#82N(7iQ*H>c%2`cVui'VXm(.Pb,2B6#dldnZVnbF5I9aeGOZ6nC&$&-a4?rq,[nn0V^(mO#t.PUR\%4IM6D%]2`6s#!;*[gMl>f\qhnmnGd7gInD<R,A1A$$D/gV\Xte$j/@'eXDM`UJFO!n<@db:#tLQLC4(K#Q;/(6(]e'kJHK%$U^<WZYk6<hB.6=m+Fo"GMEbJhE7Aq1*^/]r_6BqS*m,U*UGo^r*Tbu(U&t)SbYlC"S90,r3]R*qLg5)5Z8;?ESQ,_BE/d`/2;s1(>3_%R"J/2K>OL:6/X2WbI/r04sVhB]Lgbl_dGYV0q9*%qZ;iVGOW=MS>PN.iT.eT-asZC@#7sRM':$H",6>0\gEI:7/q_L^@GlbO@6IOqt9\Jd+"LV-qa#>^oHHCk*Mb+8]-DR7e&u5)"c/qAC-<QL[MdZHT-1#oVZ\J4S3W2P0A]]k^7]fMZ2A,oPFZL>)-fiY7C-7ai,>N4oas4nPS2V:@ED2^au_P=Fhc"=GK^Vp0:Fb=>D?aGk,^fg;&#g.DDcab52='Y*`ZI-%;q\]61o#+O$0OERIie@.Jr13"o$:Zd1Afh_,^Z_qKLeBN:ElHUFW.X%N;E'$n"h]5k17P`%9PRA,VfB\a.eXH:!7=LtM,2-Em^@u!n6dH]CeCO:Vd^b^Co,o;%cq#jZMqLH=l=H3,L.b]ho[P2iu3Tb`gM-7DFV&(H)>+.\a)?VU&`hg]G>Y3!dq7R!T_H^6i9@N7g]eUgiEj#^tT`Uuj9H.8J+,QfU"!7itTHquoB_3;^X0"tsi!-anWh/E+XLR>1l@0/oX4u2.]/aE&fc1q6)0sdk%7eSZii<h0DJ1,N.rhP^C]j(u48X/AkFR1hT"!"aeSagL*>\LMC7N<i7k,ilR)#)PR39LZKkD%3Tp?bgM*J\HKAl1BGVU.!e%s+n`a8,ln8_tme<Nnd5>u@Pi/n\s<-4!+lK$`,=OK+SY\h6bh$;Su=b=&I3oXXtVEo>P4#;;1bO!>*/a<@R`T31(:rY1f"Z#%)]W13Y0JU:s6d5_YL%2=TK9OR9]Y@a?rV_U:rWYRZS*]k#1nf.<2g?@:hKt2e31CGb$if\ZqbRS[;!B='G&4FWggX'&>)B\Pbo!W,SdiYI(nH])chdMC:N=M@,(naf]PZA0J]CVCgqD4!lY']/cTOrC%'MJ(:+D,VBi?a0r4!SB8S^qVD;O#nkFO"MlDLWO[)(8U%Edr')L[`m*FmAR#=4+?Nd>"/VQqLo\fUb]pQGrT.7r[=KYbm6^26$.CC4AA<X%SnX$j-Fb:QfH_PQ7*SAT#hLC*tebDF%4V""Y%l9W^+:*VXY9'(>rK08c>Dj!fa#2a9c(C.8pNo9Rh7??\&d+D_IH-n1]mN\D!!Vm8\A\l37,h_1@EHiIn"ck!C_5FWGi8OSbpb>DPDA<c&b5>p?)Yga$`iR>g3n!9:99LmtZf^?L1;FTc,iMcP?Q<<5HL,J-d69SS#K="oQ^%7ZpE[,*Ed[='pS%$d>o9(4%fY^hk-?H*:l&.]d$lpK'a6KI6VW&CQ]i!Urb8,ImXFZ:&Pp\]mbem8G7mB545;N2gT&#V\V"8)gdr>omVp(fUY/eo*W-!$:;SE#LDshhMp>f"i"n(k&k89NgbA?ar%-t?IK=L;@?e=?%5XWpB/+W"$^a!^UWa`rR!G'h`SA9_@.#;!13^5Abl..#q\M'_hoORp@3,Pa0mE*pQobVLbT6,)cd-\.`?'N(_[fo=^&PAY%__K)B)PB+^qANEh%2aBn#g?@h]:uY7p#WO^GqhXS`CQ;%m+^Di;2_gA#@S(~>endstream
endobj
% 'R35': class PDFStream
35 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 526 >>
stream
GatUra\K`-'LhbYndfXFPo=JZ6bKO#O:W?R?U..0AUlV6Hp2`M!b-,.'uc%]qrHo'DJTZu4EPfa28CDkX(r',6,!EC'+XgY/Fti95VY@1TF'd([7Xs6>mZR3oGU46Eu<:rWm/9+G/(!9.*8ELR5CDnXBXFA!nr$qA0M20\[GYAff@jc4TlQ`#Z#"C::!0(1:1GOTuRS;X\k&uR`2NZ$!@U\%2URb'0Tu]n4UiHOO&B=>U3L&ilh(_ZIs0R8uN4oZ%:rDh`t%UbGO/Y![ptoJW0u#&/Q`m"-20l5tOm8a;j^Vk*Y'a8'Ys(7?BOh'?i2ICQ=q>>f\%/`$^p^K%Cu&[lIMUk(lee`rrS+Ec1J*$Sk5"JiP0&c&m(:1EC"dp]PY3n<tSG`gh^MPKDtJTB=(%:2,eMiY0Nj_/#(dREi]"+6Z/JpMC@FH\D?p4]Kbs<5Q3sbM(SB8XfM@rp;i'12cJp2kIAe2s,o3E',/_"R=I4U9^,Kk4<u/lf7nYQ[E#XjniIO*.7g1P5ot~>endstream
endobj
% 'R36': class PDFStream
36 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 3185 >>
stream
Gb!#`;0/MR&UrUes+e]p]N8b5bQ%`-DK<4cgIcL/=heP>J7U9O-\3Hbqu#n=0\m"=JtDZ]WNG!^Jc6M#JPYm^Zl:G;m6B/$>],8je#iE78I;64m=S7*+r7Y;'gLP]]rOT%]DllF(3(m!Sh<\`p8.P)p$U^=mhE.XJ`<I5/[p-np4<2-lCDcq%9HK:iN9_Vln>3I$XMZXT1-"7W`n1@Me04TDX6c1;q8$>]AAlcGGs1:lqV,A<82F:5&Lji.-ndu;E6Sg;XBl#YqE*-\ikki_RA&S@_"+X^V(Gm^P^e7`-&=i*r!YE=YpZKIU>3;okK&oY,f>0s$rX.11+Qa#nn9ERGCY4B#O#m>t8[W;P"8]-MD+"DX<dWgr"?6Zd]jVb>.gPi?t!2J8'H538JHbHaXk@XEJaOfrhp9Yns/0n0o!Idm/do)_&a^>]r`Mrh4#KnO"4'XPWMq!<1K6gBjP$ks?]Lct%E'[8YEtZI#;m5OZem1[Klmfc9NUor%*A7clX5b'9LA^jl91B@U6MQ==p:QYRuJjeaNnp-<^->#8*0SH@`o"O(t[@LdO2#>g0kB^,SfVJ\+.l6^g-F_CcX\(_l5@U#r!j0fn-QKr"lZ[5W6`I>_X1"gIF:A6hF=oAPL^a"IIkXPimC$JR8U(6YmlHfT,*IuVgFj?]kn,Vb#!_j\c1Xm_3\dYGgIAokk]&J^N.X5K(^*B\Q7TSB])Eb2!%]^C8eUIMh\bknI)YQDp@]'?cGT*G=gVMY3cDI'<eiiME>eW<O8&,f!]U;24<Gq/NimmLhJc<D\J6CPS@!@>j3kfPo3[5Y(Q&[J6-Xs!(h&-9;icPU\SKSQ4;8DT.!B^$:"mjMG:h.(O7/+Z;_S]7-CTJ`hS"gpt<Ni%/2m>H&`bDWF4pp$]]qgmN\++:#D6;V^0th\U(KV(gl[)L`WW02?&7;W!9tP;'X0l.bCl;qG=,Q%3]GI(.E*+Y,?f02Tqj#Tf-r36oB"mm9c88G00T"\oh`gM3b=7C/]1KfEY2*D/p5)1<&K^*`*SKTPF.u+!1TtjnDP;$00sT%bg9)/bi\%%>:.R-eOdOai84kD^rZ(fG,-STo`UP.u>^,POe@`9pS:q6mA*+ONZ@A)=S6:YY`]Zlur*7`M_m<$RIq&V1.dn_)qn.F&%emGA5<7S9HS^C,J)!a"mADhiVZrckE-Z%7*#O,g:3B!@klcURbnMj4A)PDfC'nW`V]Z6B;XUE4=YdQK5;/qcI$$8!\fC/,c/TL5GFsrTk58%.VgsVGdW<4YVCc-KRTMqkR-U'%9+e'`"P7M$Di:XPg'PX/!9o=o#`o6O!IDtkSH*As'-N8:!Ko\^+:SGSdQe?d%<MXsE?ILb#6L]P+@$(p8`Zq[#phG3qb)oT\:E(BTTbhb9#sS`#!/a2305$b7&eR!O;\Q2WR3sY2%g-lUN%D6)@05.i2kER7r"2=20,CI;Bp`821"?k;Bp`82%k[BUO\!H80CNa"JXC:+@qL/U!uUQ8rWtJe0HWR(MeLmC'aO")P%]FWR3sY231F`P8XmP;PS4S2%k^CUOaOF)@069JPKr*%\uSS5\`+eUkZ\<;2mB1Z,\]Y+jG'ro,Z1?a"uW3b]bo8*R&oO1=)Z<F!U>taF)%5MqTBHDb69;Jn.5X?7*5@n6,&BKGtJ8D0Y4"r`>F.Eaj"c/0tM@cSAsKr%&uqa'\#Ii:&09k412h,I_r-"IYT/#+MNXP,eQCouSo?*^sB6`T>MDbu$#MrJ/UndG4FDlEW*lcu"eP\aD[XI1Wh_;9["$;;<3]UZ<,Cm84SG149kF8's06hSA:;M7VJ9J,e<d.+Tc<i9%oM-jgh1GO+'C7P>)JOub4,'9bDNZ\_M6@/>b6LJB.$2Y"t.;mgIBY=.tam_u>2Pm;:Rg1D^iqHhr7D;/m=;M,eGr'_7HGbd1@`LQ(WAm9FY%L5je[^b(Vim@3V3)W1@X69*0*6!>)s03=)imAe[X*o-j]f7jC?'iWU=7"Zo.;JBY5FR?[M"In:nu6Qrl[.5Qh2"d*G:3FIh$+8CMQ1!=gGQ3[W:l"T^O!B$.I>?g=B/#!Cmt<N<>Ve!]e&FlkLqi3`@C28Q;$6i!At_fFroCU^T(L.r6RX^5!Ln$5(U<W5IlMbS&a(A\N@>!:$do;SOIZQrF,D.?kl23I?V3]'_A=a@ND_R-t:<!\qmXbAJ[.I_lFQ0'#haY]`(BX=_3cfqQ$%71"u-nX(,Ic[:],6o(oCB?@Pttl`Wp*rDaH5^In%mS+F4\nTnu<+5[#a`RIR_"3[QN.m<1D'i55=8<:WeTi$ln.E&rsF=L>(.NZOCjY,_XG''F7R73'+(L8e'Oek%#=c4N^?AsO'-!?30lm5eoP;CC%o!d62!./O6A<4O:=s@9A%cTk.B4U!=fOn/X:6b:+EY'>2T$0VIH`AVE8pPP>L_!pdP3FQ+T2Lq7Ol=jQ+?kIl+VQ6=hG@dE;%iEO-Z:Vb*8!Ul1j]5JY`E98HbbE@LF-^.!1[I>,s:mO%q,uCd-Lcm_d;rI(@`R7[AVV#E/)'cGqJ#CfIKb$7GnT$an/aSm^:KpCF*9ab,p+%p0)9aA<4Mdp<3Tj4P4GS#nQ`of4sI&"ZkT7!b>*A?NBH7pBrhL"Toe7L&nTX?SMQSj=:Ggn@Vf:r?[)I^%(_u"O=5IG[?='&GCsYf-50gIE_:d`.tRX4hVV^1[H?Xf-3D3IH9Y##b5>,H!ZF(&GFi,CCrPD?LbZDnKI7aVq3,3mVNE1f?/'9Q+gQTl$#k30:RWAXn;9i8\T)*1Z(.5K=r%i+P@uYL4.)5>/Z3#cTJlVJMZXkT%>/MKRN.M[0W:2Dg5THp^m/=dq]OT_`m%)/`K.M-_=Y&^_ui#cYF+7_ER\c=p3-TO*Fuhp^m.]Vq3,3L:u_p/`K.MCJV-&i8!XP4Kh2$#^b[t[0W:4cgt>Y#I4$q=p3-TQV=TJiEe$_]iJ$;S+E^>%sH[^dqEgFB/?.(B#-*hH(&P=H#1X0fJM5h;br$?.=X3;HSrY-C-9bk:u9@mP(b16=VFS@rJ&$5!WOq@qhNjCk?ARR^C5E8MSG]88Jq$"^1gVgh9'!2L9Fd/(TlaLJ2moAT*+j`!N:@j]B-kQh"-8mZR-'e]CNecX8Pon\f?$<kgDC%%,l^8b9"D_Po,N(G4.lI[X:rT*?g[UhhU.T,K83Frr<IeX^1~>endstream
endobj
% 'R37': class PDFStream
37 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 557 >>
stream
GatUq:JZTs(l.Q*I#%Hp9?,]6^K5P6)D<R!j$=Q(/;*/@cAumJ$S:$4Oc0;-qt-4fmsu8WdQ_R:E<^@o_.89$'8RESBg<iQK5'Cn3='(Hb&BTpE$YQ<@?\L%msXsPFu]])5[ph\bgb[sp[jnoal2a"Gr)E*"9g?DhN]eG-["KZ<1h#t4:c46FlS_Z_MRK1WtR=q]eG-,AdI0K;j<j&Rq9&gE!B/DB3-`TEXpJ(U<t,O=eJ^th@rQ4!+I,Rb[_HV]V\+2b!M(gTpM6ZI`+unZ;"Sr2FiTD,;geRd<9qn:VYeNI%,R2Yl;l,-1'&h$1U&Nnm^A7)A;B$&hlXH+;]SS,r]_73)J#Ggu/@Z>sbI"j-n4[fur10"3b%;Vn(iVc&(^smdL8>/tpbLE@p=OT/dg+NrE^P3m@9+[#_c8#FN,V:34I`oXnPSs6WP1DoYLfJ<#p;HeZqlCMp3D_uF\X#6ofd2;PQQ7d.hF%*[LYfl,R2PRM<cCW:6V4mTS&2&5Gg?<A=X#V0fl7JUQV_U@i4R<s;JNH@>UpSPL(Ja`O;)OJK?~>endstream
endobj
% 'R38': class PDFOutlines
38 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 39
0000000000 65535 f
0000000113 00000 n
0000000298 00000 n
0000000463 00000 n
0000000656 00000 n
0000000887 00000 n
0000001113 00000 n
0000001336 00000 n
0000001653 00000 n
0000001818 00000 n
0000002099 00000 n
0000002271 00000 n
0000002446 00000 n
0000002673 00000 n
0000002897 00000 n
0000003207 00000 n
0000003489 00000 n
0000003678 00000 n
0000003905 00000 n
0000004129 00000 n
0000004441 00000 n
0000004631 00000 n
0000004799 00000 n
0000005079 00000 n
0000005359 00000 n
0000005639 00000 n
0000005920 00000 n
0000006058 00000 n
0000006329 00000 n
0000006507 00000 n
0000008777 00000 n
0000010171 00000 n
0000011634 00000 n
0000012106 00000 n
0000013459 00000 n
0000016064 00000 n
0000016732 00000 n
0000020060 00000 n
0000020761 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\275\375"\226\004\012\247\311\024I9\2513L\031\365) (\275\375"\226\004\012\247\311\024I9\2513L\031\365)]
/Info 27 0 R
/Root 26 0 R
/Size 39 >>
startxref
20813
%%EOF

View File

@@ -0,0 +1,222 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 7 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Courier
<< /BaseFont /Courier
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 13 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 12 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page2': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 14 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 12 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F4': class PDFType1Font
7 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'Page3': class PDFPage
8 0 obj
% Page dictionary
<< /Contents 15 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 12 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page4': class PDFPage
9 0 obj
% Page dictionary
<< /Contents 16 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 12 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R10': class PDFCatalog
10 0 obj
% Document Root
<< /Outlines 17 0 R
/PageMode /UseNone
/Pages 12 0 R
/Type /Catalog >>
endobj
% 'R11': class PDFInfo
11 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R12': class PDFPages
12 0 obj
% page tree
<< /Count 4
/Kids [ 5 0 R
6 0 R
8 0 R
9 0 R ]
/Type /Pages >>
endobj
% 'R13': class PDFStream
13 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 399 >>
stream
Gat=%h+kg@(qj:^G;tEqTS]Ks"j82]d0iWeoED+X0`tpg-,d:%/T(m=#U)pS/>qD$.g'pPL%B^%gai"D%#dP*^]Y6G;`q'>qMM%uEA6W3cH*60*5I#Kpe[-9OH>\nXjKjLVL8(kJ^VPI^<Ne"mJc9`F:ImLFV?00j/Ba6LZ"Cf!ARtM#]M4iC!;3W/`CW)+ecaj%YI7gk;DB%)Ls;!0^6%8mWt'\(_''IcdGh:gn7=s%I5P`Qu\HrRhqJKD*9cr-f_+84F9P(^tA+@7ONRc#A1O"Y!2P8FgUS+[QCT!2siSK)_A"2XUR2-T$M0aS<?#bWp\#brP,6oV'h-;cp*F:djiVBZs4ZJ_Biob.U$Ci,gt&1=5=`<%HGFrdh4[bHrb+O2b"ec!"MI(OT~>endstream
endobj
% 'R14': class PDFStream
14 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 500 >>
stream
Gat$s>u/<k'Ra>os)8T\6mHcTFcJtN?qaCp2"APO.YZ-_2VT_OhqOG-PlOFf/nrVEkFQ`uK%M^8s">&DK&`Y"5UcC=KLH<^LCOiI[kR:g"\B_(8X(b[$]m@Z:"#uZ;P\:@5!e5fVFRu90"BC8rV+0"1hVTWefjf=plVJa%tbMX'TC%/b.u:n`#*0V6:phJpr*M?`KDW]<j6LI_'iSsqjEVb8kjsnEf^SR_BAQ+C@k0+h9;i]l(3LFhDo`8)E]Z0C,(l*<jII_a+Z6:3O0uj_m5%-MA"WjNoe,Qj1lbY!H_Y]NsE!D4A.JqZF#%GD-CAH`'e?>jc%;UM8423jgn]eZ0dt+A675oZI\YQfNe?\`8*#Np/M@qna76ZeZYj(Q8@2H(Z[oXgV3)u/tIV]09b$(?2[-fFg&_SM)sO]fojfqf50HG;60!"lL\W\'9;VIE*9Xnh`iaCEm,g\M0?JENV)-)Iui:MFo4JYXn:@8>'YT'K.j*u2.6~>endstream
endobj
% 'R15': class PDFStream
15 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 517 >>
stream
Gat$sbA-)l&A/t[%g@=5%BQ:AagQ:#GsFnC&)BP^:=e*d?mjX4Qi):Xq(Y'l%DcFc<E6)(<<VPNMZ;iD3,poA-P42/J@*[B=#b88nh3]]`ZPpK-BX@V#AE>=\Ihj](b+D^r4KYUig\D<\>nq8s*rd'ptZ`Nln>kM\>.^92GN%)0JlF21iu2RCToPG<Oe+AO&lIMc@sbsi$b+(<(K<c[(_S=))>[5^V^*k,i`om@!o8S:cc),iq.,pD://n>Khkn$]'LF97pXDreYZXCGK=$l%.T,Rub-I=$G0b>S5Su9To^bHh>0>Tme$V\@W%.B6Z$HXD#CP-AY@ZO#jr(>9l*i5+G:l\Ybb!L3#Sb<)s_GSr1364Lcq9O&*`NhsQI5Y-"'P)5m9,Xsk"%f"8r%J(]m/gU1gW.8;%tI,;QGMe$#t76Ze8q.3VceIl"6+`f`!kG^'mM_c29E_=R`PGJnfNF$"A,:e0d<5+r[4hd/:fOI4PPfLZjg+*]3BZ0c^+\fZN6,E:n~>endstream
endobj
% 'R16': class PDFStream
16 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 351 >>
stream
Gb"/a;+ne\'SYEPr=9-$R%c=G`1"As%Nd#sQTn;'Xd-<E/-GkF-?0dU7bLUc1//,C3Ou]`,6HXb,/,-;i)8TO+s70&KTJko:N<Mcj>BZ+7M%%_,ZrW5?4a.uPUSMV$Arog#,D(M.HOVEBX;ZF/Sf!<qY>+b5(\6<5)prWd\Ohc5n[g&6CnQ3,tKIeK3:=N59dUJ`jkXMa,OjQ;6M#&es)_B$KoWC?J$GrGVn.>>LS&CctuJ%@r_q07TbWho6pc8<%m0BJU,jJE9>E=ZsD^A]Zc^Bh6LHr+8;i$Nr+QZgE6\-_Z2.?Q]T>o$11GsRr<r+%qq`jW:l.Vs)\3gm^8OE2#.,e<)7?~>endstream
endobj
% 'R17': class PDFOutlines
17 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 18
0000000000 65535 f
0000000113 00000 n
0000000245 00000 n
0000000410 00000 n
0000000599 00000 n
0000000758 00000 n
0000001037 00000 n
0000001318 00000 n
0000001497 00000 n
0000001776 00000 n
0000002056 00000 n
0000002194 00000 n
0000002465 00000 n
0000002596 00000 n
0000003137 00000 n
0000003779 00000 n
0000004438 00000 n
0000004933 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 11 0 R
/Root 10 0 R
/Size 18 >>
startxref
4985
%%EOF

View File

@@ -0,0 +1,124 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Annot.NUMBER1': class PDFDictionary
4 0 obj
<< /A << /S /URI
/Type /Action
/URI (mailto:robin@reportlab.com) >>
/Border [ 0
0
0 ]
/Rect [ 0
0
595.2756
841.8898 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Annots [ 4 0 R ]
/Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130304200123+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 416 >>
stream
GauHFd8#<J'R_@f+7A/o@`L's"eUaqAn$^UZTl5PF%coJ;h*]]%^tr44nrDu8hT<!S9$>PM!Tb3?Q4MW%C63>EmPaj_$&slR-QH)6#g'P5pc`U9JMr%>JNlKI"h[q3^cR[Zo/DM*72ERJX+6MS(0G&VoUl<nsS]Yd1t#FS$2)l[eY+J<E[(\ljE@po[F%iG0@51,[jiUPkE&4(kJZ>B7f!.N)]'Te<V1Li+^Dg'G@RrFg.:^!UO<&+H:]8/bg_VAb0*4$8M35H-/k?kP$qa'N;9up!gOobN]L;6K0uJAl[DGa.L;C(]S4GjM#PM>&q,iMiXak=8@`U)fp<(A(La/TPZVU=Pd!PEu_AD%G4\rh4iU84WkYmO$';[3MU-bRYTOq7o8+e/Y,!>_b'i7&J%fn0_begFLg'~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000221 00000 n
0000000386 00000 n
0000000579 00000 n
0000000795 00000 n
0000001092 00000 n
0000001227 00000 n
0000001496 00000 n
0000001601 00000 n
0000002160 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\275\375"\226\004\012\247\311\024I9\2513L\031\365) (\275\375"\226\004\012\247\311\024I9\2513L\031\365)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2212
%%EOF

View File

@@ -0,0 +1,318 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 9 0 R
/F4 11 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Annot.NUMBER1': class PDFDictionary
4 0 obj
<< /A << /S /URI
/Type /Action
/URI (mailto:robin@reportlab.com) >>
/Border [ 0
0
0 ]
/Rect [ 0
0
595.2756
841.8898 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Annots [ 4 0 R ]
/Contents 17 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 16 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page2': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 18 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 16 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Annot.NUMBER2': class PDFDictionary
7 0 obj
<< /A << /S /URI
/Type /Action
/URI (mailto:robin@reportlab.com) >>
/Border [ 0
0
0 ]
/Rect [ 0
0
595.2756
841.8898 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Page3': class PDFPage
8 0 obj
% Page dictionary
<< /Annots [ 7 0 R ]
/Contents 19 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 16 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F3': class PDFType1Font
9 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page4': class PDFPage
10 0 obj
% Page dictionary
<< /Contents 20 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 16 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F4': class PDFType1Font
11 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'Page5': class PDFPage
12 0 obj
% Page dictionary
<< /Contents 21 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 16 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page6': class PDFPage
13 0 obj
% Page dictionary
<< /Contents 22 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 16 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R14': class PDFCatalog
14 0 obj
% Document Root
<< /Outlines 23 0 R
/PageMode /UseNone
/Pages 16 0 R
/Type /Catalog >>
endobj
% 'R15': class PDFInfo
15 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130304200123+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R16': class PDFPages
16 0 obj
% page tree
<< /Count 6
/Kids [ 5 0 R
6 0 R
8 0 R
10 0 R
12 0 R
13 0 R ]
/Type /Pages >>
endobj
% 'R17': class PDFStream
17 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 509 >>
stream
GauHGb>,r/&A1NU5O>XS_IRN(N]A8YJqO\597A!8l&.Yr&tkkXmC'"Cf:`E`/(&[`1ZP`m&EjAdH]eIn`c1[*J/$ul+=A/g<uAli=+I)Yn.5oh+I",qJguIuhtut-h!u:YBNp\U2?MX3B"k1BYuT9Nq*lg;9%<(sid%OAlZr;sID@gr"I`kkV,.rSbSN.<P$*)5nIjiq2)VbYOf)0?-tEZ1;`bX5#D\Is`E=jE?#.)jNR*f\'XC0t=d,%]O'H03&f!tE9XW7k&/eBbbu]`e7b12*nVgD>&L1P"!Ol_Q@G3XjE,54]l6$O^P_QMKSH`)+^V.*%mf`*0O@pc8AM&(e-]@="=>M.)e>O??$5_gdd8C26WoGcCRe"0J)@oiZ.]Xmh`ai!0(N7W^mdT.T@!H_g\i[6)YE.M0$8s`a4#+F9f5dcJH8amRrnR,DadY%As(Gi7:+,8N#;4L,S`=1DGC$jUpB&b,l#PNGNgi0LijNNWl$r,1'0,dD+5lJm!<~>endstream
endobj
% 'R18': class PDFStream
18 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 202 >>
stream
Gaqcob79+h$q9oSbWjmZ\j2,TaOWa\DN+Mp^^;eY'J].L*NC8;D7[:&3L:<R+h_Fplko$jJKjRuj8oQM@aEVI8>Bm)9S%7UZ8>+\(^+Je*nJ]!1Hi\qQ)t7a#")s]8(2;Gr:Xn5eJ(`L"kVajcanT`(DMH@@pV!D^;F%\3dHdrkERU72t0FtSTOl^CpLU'cX>!&1kmcE~>endstream
endobj
% 'R19': class PDFStream
19 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 475 >>
stream
GauHGgJ5X?%"5>/J+2Kc7#9;s)P.Mg5XG`jUHd+bNc"F*\cM\UP&0O6?$P!(C6[<>nZdM4,#Im(gF!0?I0)><#fn-V!cl.$H%nTt"sk[0(DfV%#H8H#1"7)RL;>VRE6#k`,dE.^."a=+8J)0Vq<I].B\9:oB+;<d0-P?jbC_KblSMJX&PFdFAZH5?Zg'&jK3A&A5s?qd<oaUN"XJM_B'@goqe0)/#bkh*J5b9'NBi_9RbP<;<5l#)dbl@qJAi,ZP"W;SVo#fZ,B-`R?`4&afT@(Y[mgh(D83cN[)i/O4:lO%<5bLH4"/O&IKjU*&KPUcNT[.!o(?ZFWP3$c[XrXE>MC-AFnStglT?2O8QD9#aP"5DK?Ji*jRHf*B!^/1=*$u9@Db/^4kX]"j;U6co4L;^@R#-Rk4U/O*Rs]-mQ's6*p=SF`-B=8be9([NmF(S+*-01A;ONc-"d21`E$p`K3o%mld,~>endstream
endobj
% 'R20': class PDFStream
20 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 172 >>
stream
GapY8_$\%5&-U@,+TF.R7>8bJ]%67K[&47GpCAO$KaMSnIqr!f#)3@MLgqk-\Hb$I784nZ>sK#*emN.Ih7_"?"R3so6M\)&kkDukL.W-u,HSrXZu>`DX^UHSTRC+$K]5'?eI:$Fk5"$#h$n.SE""4X'a52R.NSnuGOY#0-G^s_~>endstream
endobj
% 'R21': class PDFStream
21 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1297 >>
stream
GasIe_/e9g&A<G1s0+:>7.."\.*K&HkbW,Y4h-oUd7c1,JE2k]%0A?db#Z6jDaB5ch+T#RA;OFT^4#nPjg;g1Sj(>Xkk>OWhr^.VBi@sEb#Ym[UCWjCPK2.9FETtG>0`FZG',d^6,([O]NSr,X#7!q$ef\ZqrdF[jek=]Bu;+BQU+-=?cO8WDU)qe05Z/0.6aAq=LqheC:VF:.p?6@fkNt!opS"lQW3r\!`<$c98P.1FKe:@^3Klm5o30[E.3^%X+Y^LG\7Q2rDt#oO8Kthfnt+;<T@*:;Ws+#;;:5`D"\g]bHj,e5JKX.H$/oabps4S#t(:d4S!du9X@Ho"%CRfc^%-;)@1L#*HgXuWF]'1:8%>)lLFu%hl!sjEZe@Pp@>H2B[cO*I".DJg_lt4E()/iL;%m&*>JpY#OWg"JW,iD$6rL73UrCeko+1q9R4&%3j[p5[;gUJ'q@^u(\\lokUWm</Q:$RUtF<G:4ks7.,gODT!EK+dn\R`Y=b\GV2c&Q"0$99!kHmEoV#N34k3k]./0'T!a%Z7%3iiQ>6SmSH-^DqHg4t!5FinZ1/foR>mq9Yi$\d#\NiX7d(7%mWG/BfP<Hc2>`>gQ4]?"cLNh^ue]nUFQu0`)A9e&[84iCsq]G/&!a>T.fN6t\HBQl$3l^RR>JraiG(+l8PJ[-1^Lg!b(eZq?>A1!h4<Xc(A3e)+7EB!n/OOaR;&OooQVfiFN7eNBhGloLh3=!:`\])226/_3UV&*8]$pPanbb@[cQ1b"b,b$SQE<[_l)g.H)YPX)Vl3m^4B/K4(4hirl2"n-<s*=(]&)p4Kj@b>PL2l*i!b=m;HG7l=Qbm8V$It^>TJ1/(Mlt#.GRh@ndAGsN^lpGY0hI)*hj`KBi$G)K9R\'03+=jdXs@**g<Xip0aoN9hY4:cC,1ADJmu&g&9T'#4gPaT?(ei;.'aiAb<QskR=&Q*+>G):>6>6OF:UGISn05!6,8u(h>UD.QCgh"rS8D3Q0;QkV8L<[MAOQKddSl#$YLVqjs&`Z<*moSdbljQjUK68m<3a6#Xl0'\9AOSHl#_Pt8qBSKL!3"Z=,3`7d!C"9:feMK's[\q6;m6&uFLg!QQg"ND_T!3agW!mkB`gl!^'<&:s,in>lG`&4]FfS.D;gaH,]lGa>=GPSd+6]`58.%`A]Ho+9'4H+-4Z>>R/)VI]&`'priTHTmUH_YoG>#_OV-VF<19Ni;G8I2m]@Z0;0CfC-MYXI/0TkmVteCJ7+67:f.*-CBu`eLTXP9rm*9,?XV]><7th05rZ:/CikN,4al~>endstream
endobj
% 'R22': class PDFStream
22 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1071 >>
stream
Gasam9lJfF&A9%PIi':E]5X""/8oa97C+@#9c=&Cpd.QY&mL6X8]n=7lhcFjO/+Mq@c:Tc*6u3Bn'0q#_C&.:bs:no7IPC[jTSY2b0-l^lCQj6QPY^L([::Pnr9.SH+#o.i?1AG.Fsu)>Ae,\>#@0(eK;Q^(E\._;8j^,k=J1@\')[Ym57mn;Y<s\n`fV]da&)^`@BW,<8Q_>=]2NXOD"E[ara8!C40/S<&:>&<BBX*G<f2N>6oh)4/=;=if2m0qMTXsU1=4ST-Gf>d\shD]Gc,(UX:f2gX4b#[];>Up+Mr.IR!uf?:C'](GocB':PrQJYF3Q@a>bJCm]M`kW>#Kns3MVICICu6J*/qc,P1.d(@E,GT^j!^a3?0,I3a9X"E,/\$*8;^;ssPi/GHSqR5s1L!*s(5IcnT09PFrl+oe%g$?D@'H)]ckn%u)L7d,Fr=.Zj5W7CcmAr'T##3LWG%s9Wj(nk=P;9LX"fD+6@*;"M3el.GkJp/@*nWf??:Cm-Z:uua6$hkdef"02,3N#5V\^CX2e\+7B\U&eSD3F^[W02upmJu]eBVUs_#ZOQ!+)F)'G@K+9/XhF,%uLGFm0A8^]hWKE(_(l+e55f?9kLg*do-SjekQdP`,)VAI7q'RYJk]C(:3h[.eI2^![rqot'JRiJOro_p<M,*j-TfcQ70"UjXGjdrc*7_RIp^<h_CorA_B=`qI]Q\IaIV6Xu"j<!SEbj1Xgg17ZbtE52_g+rGZC%A=^T4JkQAD9F/.@1#E4agQcM33r+:%+]CSZ[j5%<I4A:[#G)'oHl>%"-=QnkCG'[/(UuI-cf%P_+gq>RK@-o&HJ[oeVbac?,93UcjPK(m-%:\H%I%KJm$W1!mkB`4I@Z>?*gm^k'BoPREI0sbouX#2ej)Q^@@E'?%-\8'Vr`?b%D/2BCnXDLX\5R<BHs,gTuMJG*3kc;:\:b0[D1pVafWK>cXM2-2p^fNJs5M"C2t7DK<J1.mF,/PR/&H:9Kf7g<;bkJ(jEJpA_h`Dp.f(/"q3-+WO#Ak][9DFDU'0OO^:,2<+*-C\Vt"IUP7bji'GaC*)j~>endstream
endobj
% 'R23': class PDFOutlines
23 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 24
0000000000 65535 f
0000000113 00000 n
0000000246 00000 n
0000000411 00000 n
0000000604 00000 n
0000000820 00000 n
0000001119 00000 n
0000001412 00000 n
0000001628 00000 n
0000001929 00000 n
0000002116 00000 n
0000002398 00000 n
0000002572 00000 n
0000002852 00000 n
0000003133 00000 n
0000003271 00000 n
0000003542 00000 n
0000003692 00000 n
0000004343 00000 n
0000004687 00000 n
0000005304 00000 n
0000005618 00000 n
0000007058 00000 n
0000008274 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\275\375"\226\004\012\247\311\024I9\2513L\031\365) (\275\375"\226\004\012\247\311\024I9\2513L\031\365)]
/Info 15 0 R
/Root 14 0 R
/Size 24 >>
startxref
8326
%%EOF

View File

@@ -0,0 +1,263 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 18 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page2': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 19 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page3': class PDFPage
7 0 obj
% Page dictionary
<< /Contents 20 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page4': class PDFPage
8 0 obj
% Page dictionary
<< /Contents 21 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 17 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R9': class PDFCatalog
9 0 obj
% Document Root
<< /Outlines 11 0 R
/PageMode /UseNone
/Pages 17 0 R
/Type /Catalog >>
endobj
% 'R10': class PDFInfo
10 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R11': class PDFOutlines
11 0 obj
<< /Count 7
/First 12 0 R
/Last 12 0 R
/Type /Outlines >>
endobj
% 'Outline.0': class OutlineEntryObject
12 0 obj
<< /Count 4
/Dest [ 5 0 R
/Fit ]
/First 13 0 R
/Last 16 0 R
/Parent 11 0 R
/Title (TOP Level) >>
endobj
% 'Outline.6.0': class OutlineEntryObject
13 0 obj
<< /Count 1
/Dest [ 6 0 R
/Fit ]
/First 14 0 R
/Last 14 0 R
/Next 15 0 R
/Parent 12 0 R
/Title (Level 1) >>
endobj
% 'Outline.7.0': class OutlineEntryObject
14 0 obj
<< /Dest [ 7 0 R
/Fit ]
/Parent 13 0 R
/Title (Level 2) >>
endobj
% 'Outline.6.1': class OutlineEntryObject
15 0 obj
<< /Dest [ 8 0 R
/Fit ]
/Next 16 0 R
/Parent 12 0 R
/Prev 13 0 R
/Title (Level 1 Again) >>
endobj
% 'Outline.6.2': class OutlineEntryObject
16 0 obj
<< /Dest [ 8 0 R
/Fit ]
/Parent 12 0 R
/Prev 15 0 R
/Title (\376\377\000A\000m\000p\000e\000r\000s\000a\000n\000d\000 \000\(\000&\000\)\000 \000a\000n\000d\000 \000J\000a\000p\000a\000n\000e\000s\000e\000 \000\(0~0_0o0T^\014g\0330n0\3330\3060\3530\222\00010d\220xb\2360W0f0O0`0U0D\000\)\000 \000T\000e\000s\000t) >>
endobj
% 'R17': class PDFPages
17 0 obj
% page tree
<< /Count 4
/Kids [ 5 0 R
6 0 R
7 0 R
8 0 R ]
/Type /Pages >>
endobj
% 'R18': class PDFStream
18 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 172 >>
stream
GarWr9aUqV$jGR;Tm(`SF\sNk[,Y36eURq9JQ,KYr'NW^R:';l68fpu(IFlaG4u*C'$N9;@`SQa6\KP`Mg'C6bS\ii`Y;=YSM>Pf1*`].8?E*qZ^@dB1^9#9V:4lNXW=cb;9O3cR`P/VY.RDgmH`Gt/nGAM6Y>ut?$Q)E3m]B+~>endstream
endobj
% 'R19': class PDFStream
19 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 170 >>
stream
GarWr_$\%5$jPX:U$qImVh_k%da"mI:BM4"##[nC"@[`fZX>pf67sAXIgE.dff`*G<j:9iL`n-B$kY7f([peKR5(Y0N@CZ<#@mU"AO]FaO?*jKB/*IdBFQ"q9;gZ'>!$HO\sDkkeI:PF7eQ`G3F6T7!P(O_o`\WGpAre-.OP~>endstream
endobj
% 'R20': class PDFStream
20 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 170 >>
stream
GarWr_$\%5$jPX:U$qImVh_k%da"mI:BM4"##[nC"@[`fZX>pf67sAXIgE.dff`*G<j:9iL`n-B$kY7f([peKR5(Y0N@CZ<#@mU"AO]FaO?*jKB/*IdBFQ"q9;gZ'>!$HO\sDkkeI:PF7POP>kBOP&"lp"nee`Geh$;I7.OY~>endstream
endobj
% 'R21': class PDFStream
21 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 282 >>
stream
Garo<4`A1k'Lhaeq%%\L6ALY8U'*qh_8LrdOi:$(KRD?*8H&:**Z.b>b0om#jEp;N+`W9^((Ka[0jPG`5jgpPS3h+tP%!hp#0[3`4u,EDk1Q%Th4eq@4BobWg]]lOC$qAk#m58,FLmfYg;_6H?7&-A[*][q42*hUZCO7P+CBPJ-Q`-!K316Xpgk59RFoP%Oc4bH'%-SR(DZ:6=Z80:dq^b<p(P&o$Ul`#CH$h0H`bMBU,,7T[f/bLntYVhla#'iO05N%ALc3k@,o$!+:N]!SiU1[~>endstream
endobj
xref
0 22
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000587 00000 n
0000000760 00000 n
0000001039 00000 n
0000001318 00000 n
0000001597 00000 n
0000001876 00000 n
0000002013 00000 n
0000002287 00000 n
0000002412 00000 n
0000002584 00000 n
0000002769 00000 n
0000002897 00000 n
0000003061 00000 n
0000003430 00000 n
0000003561 00000 n
0000003875 00000 n
0000004187 00000 n
0000004499 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 10 0 R
/Root 9 0 R
/Size 22 >>
startxref
4896
%%EOF

View File

@@ -0,0 +1,244 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 5 0 R
/F5 6 0 R
/F6 8 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'F4': class PDFType1Font
5 0 obj
% Font Courier
<< /BaseFont /Courier
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'F5': class PDFType1Font
6 0 obj
% Font ZapfDingbats
<< /BaseFont /ZapfDingbats
/Encoding /ZapfDingbatsEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
7 0 obj
% Page dictionary
<< /Contents 15 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 14 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F6': class PDFType1Font
8 0 obj
% Font Courier-Oblique
<< /BaseFont /Courier-Oblique
/Encoding /WinAnsiEncoding
/Name /F6
/Subtype /Type1
/Type /Font >>
endobj
% 'Page2': class PDFPage
9 0 obj
% Page dictionary
<< /Contents 16 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 14 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page3': class PDFPage
10 0 obj
% Page dictionary
<< /Contents 17 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 14 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page4': class PDFPage
11 0 obj
% Page dictionary
<< /Contents 18 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 14 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R12': class PDFCatalog
12 0 obj
% Document Root
<< /Outlines 19 0 R
/PageMode /UseNone
/Pages 14 0 R
/Type /Catalog >>
endobj
% 'R13': class PDFInfo
13 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121218153938+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R14': class PDFPages
14 0 obj
% page tree
<< /Count 4
/Kids [ 7 0 R
9 0 R
10 0 R
11 0 R ]
/Type /Pages >>
endobj
% 'R15': class PDFStream
15 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1376 >>
stream
Gb!#[;/`4!&:T\)s"JS&S>tG]Z='o$LJ+h::.j9rRAVMfCO7f.0Y">lFT(m'>n"/uI7rq*=!b._n'$1:bVq=/2H]`eld*Ngi')hKW=:b>0ER^U#2o[^)I?eLI=7s<.+l6pUGhY21H_nNEN&2eJ:VWA&?]I:l*goopjNRD-md*;6jad]?[egC#/\+tr(2\=G^YjnR&YYug4V3MJhceC-j7aNH@qlL>^`t]lN9d%'WV<Wl4XKZ:7W^JWn7g]p`bT[Dr@1NHkD8_bVjhl5U*$;Sq]lM-(09X.X3CkGe3-9r:kl#($mY8^it/pTSC.N19`?!UEL#_0MY6mn5TR^<t[K'eTrhTa<TV@(<O5+6hO0n!]1dcOUa8(n:K!If<d\T5_bH*#Uk4X^U@D_HkQUV-5e"mg@JH4beFEcn2/+!%.pasJA;BrAXlid'';ONb)8,Q?\\Fq8g.3M?h13fO?"Z#OXJrCKj,M#EISm=\V,7"/t[$-8*PPn7.Ye]\CR&Wo[jqB:>eLJ'UaUZ&P42q)k0.@Nd<R!UZE87gF]T?Om\.[ef!e@B[UR\B=b3CAD\j/0b]q("hTbXA;dsQP?A:K,ECfo(M_p9>'rqCYu(q]GPe&IR2/P)/IKJR:fhLdC:%tskb1HdfiT(M+LYoC(WsQ@gV%ndU:_$a<9AIZH"6PTahbRc9q1X\TV^d7fA%P6l;8Kfa%.dr$4Eq\Z5-=PV=N>/1jBsn@E]oP@.Zcogd[ZT&TT^[>-&7uS*Ar+dY04:#$Dk6ZW(W>9_H4269NH*FBZ<`9ToPH6kASN;=?4Q1_#%#d)Vu&4lQW%:^5nL*21"GfrofkG16h'=#Jb"U.D2M@[]g+bOu?f:AEUYYDU5XPXe%["#Eu!ljuW>]b$,MGSB#Y,[6]+m(i(@kIDW'gb\,.gmtLGg`ngQCXW)<gNco[9c5>"Kh\.LGXn;4q(+o<!q4E)A8ELUps:Ck4?$l.cSQB6EEAan5s(l>F)d4oIUoHOoe's<e>_Q\4jETE)"=lglS1&TZ#3.@*Y\nh1pDg@@h+H,O"$bT]<Jn>n4,BC3G6GPhbN+D6@C.BC0cc,R")p0!7tg?Y`!NEY(!A)]qs4;F;=QRmDdsBfJ"B:/U+f1<!mbhApc2ulB_&IWpD^DGKhWCb]QP,4HmOT*SeKh:VM\BA&7>5m`IZGO1k.Q-3%X#f;sbfSZW11W#50Z[b^,)?!E1l_dR2Wa1l&1rM-oq9TQLJS6hFf"paauF/lY%XqL<*P\g1Z;eh[ifOemSm^M<Do!#4q6QW'B(!NFUl`Wlgr/KBTUJ:<]*7Vl$YN&kN$e.q;3KsTC-@^bmQ-*X5J#tLYod6:rGNt3kP(&Tc[_\]N.Sf^4b7+U+=8r?W\/nK~>endstream
endobj
% 'R16': class PDFStream
16 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1469 >>
stream
Gb!#\9lJcU&A9%PIi,,>W.hY<Idfuq/oGDHKj-Mk:VG-k,r))A=/>,W^V7%d>`+b;;'M:8Y[PH'jkKOlc--Yl_87k*IQjn7Xoioq6\-uuk!0(^&DY-@_<&YnQPXCr!VPLlUVnm&\3LEAAp_H4i)pfu.i<d4j-JN7^O[NMEk(#HGm"fZa%qZm%)HQ^ISgXu0/$4BRJ[gY,sm.B]>X5I'>_@Ch4,THfkTbkV%tViYZ]J#=MQ25[l4AeV6hquG5S_-dl\id/0fDl-:sH>I%BC2BCK!t1k-UFMhc7i6Pf\@aUL/lVtYFcHpNfl@U#B+/PV=r?u(@<i?hfG_P\\V5,$gI5,>M5c(c.]CGpCWENn4:LT3f<6g1lD>&XmG(oI^I@^g;8!5&NO3H=+p0S?Wjh$qBtcYsW83uCuX4+c;b]aQQs;p0Qg-,VehE`*&^0l,:8hXTt8lIeGmNL<eCLq/^<n78'5+N,gk;[=Pi^EjIS8$EF%M;U*V[5/Z!:]4.SgfB+M5DR+B\gh@Ya*'dn!*\;C7L_qZ7N#a[oer4P<=8ZkNDhqsN_KQk$O3b)OeSeq8a9UXRf6VpM&Yj(HMn#BnKgMkeI&07"sfb1VTec6#Kf_5bjm_bC5q`j:sj`%7'o-)MF/u\7hhrMTefXt@FebG5=UIr*>2gc]o#ZOG%<HSF8QM&#;PCP77+_C/Aa<OIYQB2alA6S<9qe.Y"h8_EFY%m\TJK4>/GTtWO2j259A5ki95cn*/B4Q6do2<.NuEfV):Pl:H7N\a$;mmf0nOmQtVrpi&T)L(lI']SekU-pnjjZA%i2qf=[:uZYO*t3]S=!oB:/EGsT[\OC03T$B2LN3AoHR+&G/&+X(Ul5h^!ST\UiSnGKWFfOS=O@'JMlL("8f3jE8mk*>Sp4WS"s7nH$.,N?:!hVOj!6E:=R:iUqk%>0Ff<`/SVeD5]A?Rmll=4tENI0o!6+]5q-!X-uuIHOJceE\3gdEDF%"?Ur8JC_k-[FuP^K+dO0)9s7h:rhPts!,>GWP75=h]gTrN$0Sc]+^@V@lQ0?V-Hi9R28bLB3%jQM@[7;i?;)8EZ*]Z7Y9@$6n:V-gaola=_Z4*pi2/S@?,QQRkT[8l)M87--GFG"aW,#kp)i2]fTT;+?qC_R7hR=[r[iX^?<q<c8ehu'JGdNXCI97%#JT^E2X?MbWF.m0!]mA2c<-@epqCHkh^b<]LG7;$7c%C<#g7d[;%LsOEAY_[)Q3%i_f+S2;4V<YHg6,:35'.N]Ff+@>D@o^VP:cC8$#SlusKZoiL0fK+4h7W;FVY)67uKS9:o2HWt0_B+[X9c;8#aBs66e66(&oZa58)hp8u`'mkXMLftFQ'BH!OHi'fbr)PaWJQH+4Tm+K_.mQ(s)#0,M1Rp\gCg(*2)/M*Sh5blgdD%.lM>j9_4&#LMHbPTmak:/]b&+=a[Nt.Ng3^,RibL<^]P_'\!\Q/*")Z3#;#~>endstream
endobj
% 'R17': class PDFStream
17 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1407 >>
stream
Gaua?D/\-!&BEZub'+]uhU#2?GLqmTlC0W+3JmI``&ZYEnn,]G\2?0WYEO"!rasbX5i<VcOp4=Yf/*#jfq1DP-kLc'rAe!\S-SQ[Oof2+9S(op%D`=)_<K'+V^HeM!VOt]US_8!i<$.Z0ZQ*W2Y_qjY^kU'LCsE*E=%3;-/92s'[SKDIUVRX"CE;H<P/$RHBNg!eD#/FC"qPU4O`sH'6'_Af+HM$[\K-8Mcs-p*C"?Tq":HcNfpA!')fsbcqAIS'sKm2@;e/c]a^4i)DL9H(X/Won876,'as:DB.tst=NDI'+uol<Z'\/AEAU<(,*=5-ToE_<MNU$TSlDl")rR+>R-,ZH1oXaoj6kGuANi=.J?&T)(Vn`QJ3q)l97d_$APSS+,!YXPJ@Aqac'Qn;.%-(*bRJ7;Dk_aS\l57!/IA[An?u)R3i$e20Oj5aesCnqTik;jFWu`UF(s.4IHn88p/S,ekQOglDHj(lC>?kZk`jZ&fgcMEh9+m]q",G8h%fL^(M:cF)*:#S*]nnJ$2t`DMip#42!qE/4a:Cu-ts's7?[D4Ub\boTJZEbOsk=^/&\%ZZ+NX@1Ps;&a+N=/W%8PJn0oK..<6;#=%:dTgEk2G`87<1A0/]SS]MX1raU8s4<ao9aYQ-(pi=(bTX$UKBOd(3rc$_^*nfG47?3Mj(udCNMJ7kt<*;dpUc;[37Cklu@1#S`ce"")nBr$cBHsp]<gbm@Gq:;T>$R=6o+W7O1msc&=l?sPONosZ"#*qPj&96#YcPS#]RefWJVA;^S/,6;j&Pae'[rUF-oItsX<!Z??n-UCFfh#?Af;71^.HE/Bb?+S(80]qpK[05GgRhR[^"l&T)Ea;"L*2oi6h^\]Y>Kt5B]W'Yd&I5.NTd&/O!1Qq<3"SWI[#UnYuD\Cq+o:hnd<tp]c6;\EG2j%BL!Z5Cj7*dfUn\91NQF\V#N'*1I7h\&a*perMR@khC1a'A)^!T?)[S2K\j*-E)EeK]c_E8"2k7*1I9"rSLr6lQR5iRa(UX/`>dVpY4)L$I?cFpLFX,;G;$bJOtcSlB^)\?m0dC[Q]/dUU[bT`%oR_*h%(*2O/-FS+*T%1)tPueJYGBfRtWPX(&h[S1*[N%'G>7_S(OS2pKXf8T!5S/;J]+NA0AEjdWm@NW'7cTB3kPY[,%+"39ChG%pJ>.;\/O3+O*7CFE3`<4hVM]<;QASZ<3HF+02IPcOl$6.Pdo:B]sKH?4,K1C<=<&P%0*g3+3$M1@Zm98hJNm3`*h,?]rc[VL">(HfW+a5&6ZY!7m1MfH*ud?KDp,bm3TET?Y!*_E'%T'6k<&Cr%)r(PRU;+3!jY'-DT%!-"1G`8E$_?;`+l8pCd5c<6OP^7C.<,r8>ku9&:6)T[8g),f>6eNA#q6$\+:/Cik?ots#~>endstream
endobj
% 'R18': class PDFStream
18 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 462 >>
stream
Gasaj>>N*i(k#bss)=]h:8;=d$4Lh`7S-9-&a?&DgF-R;)r'lVgD5ZO9JgORIHRup3Su9:-U4@"3!UKb3^Ws8_.On7A`+dqF5'mPQKBSdTK#R!T&Cq\2LT6tE!Hf&kCMf8hHreFm:chYRMM)eg'V)gMc35$^d#XgFc3MA($JT(=I6OVTf;2I]`>IU7&q71Ff;@?37ih]M)s>]Tlt.C1\ApC<4R.kX0PHX"CX$=B]?7Z`IX*?Odtn/aR+fqVGu-[4$s53.4sQc%\KX.ijjj]%;'120[%hg"fekBdO5c28jB&\_3m4?KR%]uHW+4<T<)&Vh#WsXoO3B@.3-f/C+0(/HX:D8jCF0Jjf4[tk^tYJrA+[sn@orh7le6+jOc3p\Vd[]g4i`KCV?@ijBrqF2i)dVh0W"e9oj4L02Y9OcGN>iCEc]:l7cP#[R"#RD(\[k/k#6QPd%9.bc/(_~>endstream
endobj
% 'R19': class PDFOutlines
19 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 20
0000000000 65535 f
0000000113 00000 n
0000000269 00000 n
0000000434 00000 n
0000000623 00000 n
0000000794 00000 n
0000000955 00000 n
0000001129 00000 n
0000001410 00000 n
0000001585 00000 n
0000001864 00000 n
0000002144 00000 n
0000002425 00000 n
0000002563 00000 n
0000002834 00000 n
0000002967 00000 n
0000004486 00000 n
0000006098 00000 n
0000007648 00000 n
0000008254 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\\\235j\236!`\255\002\350\332z\003\317\346\3325) (\\\235j\236!`\255\002\350\332z\003\317\346\3325)]
/Info 13 0 R
/Root 12 0 R
/Size 20 >>
startxref
8306
%%EOF

View File

@@ -0,0 +1,90 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
1 0 obj
<< /F1 2 0 R /F2 3 0 R /F3 4 0 R >>
endobj
2 0 obj
<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
endobj
3 0 obj
<< /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font >>
endobj
4 0 obj
<< /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font >>
endobj
5 0 obj
<< /Contents 12 0 R /MediaBox [ 0 0 595 842 ] /Parent 11 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
6 0 obj
<< /Contents 13 0 R /MediaBox [ 0 0 595 842 ] /Parent 11 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
7 0 obj
<< /Contents 14 0 R /MediaBox [ 0 0 595 842 ] /Parent 11 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
8 0 obj
<< /Contents 15 0 R /MediaBox [ 0 0 595 842 ] /Parent 11 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
9 0 obj
<< /Outlines 16 0 R /PageMode /UseNone /Pages 11 0 R /Type /Catalog >>
endobj
10 0 obj
<< /Author (\(anonymous\)) /CreationDate (D:20140724022809+05'00') /Creator (\(unspecified\)) /Keywords () /Producer (ReportLab PDF Library - www.reportlab.com) /Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
11 0 obj
<< /Count 4 /Kids [ 5 0 R 6 0 R 7 0 R 8 0 R ] /Type /Pages >>
endobj
12 0 obj
<< /Filter [ /ASCII85Decode /FlateDecode ] /Length 3047 >>
stream
Gb!#^gQL=$&Uekgs.QLaOE#$:'ec;[7m$7:SFUQ@f2IqN^H`JY_59aA,],&=T@4oOJeCLmZsHg]'no-;T[B+Ti&ER6Do_bp*Je#ddSCA`3A*I4amj"-4hd[MO3aGHIf@QM\`AE+juTj,1kl%/f&M#C/.;UfkAtr3d,".T^N4o'`reKI]V,"q.O;^/*r[p==7f),ltu<d`Bh52a,flf2l#lOkKacEc=^Ps3'R/pC?@,2:qiH`)u??V]f1aZi;s+Q=o7j%1Mu7""742:43^g^0KabD2dbiUB+p@4)#[5@hJ'GOn+H*7BcqoT7hPu^'B6Xi]D1c@ji,lp!,biWDWg-jWg+\#.]9I"NbL*>iesUn-'6(1PGCn9K$l4Wb)94@mn)RLZ8bR%GU<U(R(H?e4r](JE^#ua0BWJFCDbr?HkiXsj_6LNRSpL/>""(olG!t1@[6:PPntpE=FQAe]t:0DgM&q816te2dKC,BUln'BRkg-GMUJ;^hhk;3\J.K3)tVp'A?69n%5^ZO_rjp3H&tUKB,o0"M^7"d?*]bf;N.KXe=qK]Y6l*Z1OYH.<.YF>ngMa.Ct[#E^i7A(q2Ot*@@bCo1.+gCh-X(HX+JmUi#\ADe-9l:8,!3dUQS[]'Ps*HXg/3rm,1#3!G*HMA=`mflp;NC/Z`I_kCkN52@!%=08u40"$DHO<f"/@<H4h::(O]H9#JAi[G0/c4#u'?nD@t,5.p[[!etEdISngdI&GP2S7-;.LDuPN+d0/_c/h**;r(,H8RAV=WsuC"QKqcohgCXS@b-d]-5%N52$o:pI)(L@PC,8;67!S=ab25O_k^kLBd\]fP="<fiFo4A1<+;Hc?(]s757&9O*nG_P'2sTQ>0eXBZ#jt(iR;A'FX]5fL[Q6f`]=NY5hNC`4@uk"J1-Z*cmTJ@>6r:8Ke?O=`"qq?sa\bQAo;>Z3\17&%pa;]BU1E@qVo6Ut)Fco0OLCk$$iu;AiuIr"d7_c>-EMh+"jNV@Xh*qMunc&4EUrfGq0/9WA3!`@Iu,-\inA%$<'#aIUCm2?[JSi;=L=@ok3s!g9*'cdb(BD"UbGn.fsd6BgFLVJO-_?>DIB=;3*S!q,-Ya@D6Z:*r*CRu9Z],50O?U%&quX=%#9b2BggfdcX-TusSF="^eCW=8I_G1sg(H(MX\X:2g%QCn-4_I-AogA)#j(UGLP8-FPo2t1J*Ej5n=bj-/QSb:=p_-,:taEL[^hMPG&P(Vk%B9H[/CNQD.-0NHCH3<`T9'<dE@p/^mNSD\(X19`&NQWt*,jQUN^f]6(+&G7P3@i:>RSQkjl%n.XIq^?En`79%?uaMt]LPO5?GX%RjJ1/K3M(dN!P'^"cWcT?#PC"he-+IO`\KLS8:jJ(Q3l)'Q,kC^RQ2$l(X#iD#`'J<j41`=pe)h_U(K\8fk;CFPZl^B1r<=63ic<AW%X]p8);5mgSG,qa9a>U0k^5=PP6Su,R^1BWg;C7ECjA^Jg36]NFKg,S2qm0YbOcDD##M>l9)(:E7@H67lcg;[\-*B>&@t..U=FK9):#hKr+CK"P4Ob*F!nS0()p\ecUcO829o^0-mspG/PDfNQUcp;h`,CS131lidX.`lLXKE"P7T/oTa\.fE$jg\t`YnP&;=Mjs*"J/ZfV6BLdGs`4&5VHc30Ygs?tuLN[3:O"BW0&;YK4&']nD=sNslNWbY+IV;56Hc36\C`>@B%;Z^1(9e7pmQYgh-l?+[agW)VmH$DSelLqhDs+Q:,BBd&@[bPQ6M'0!Ba0Lk$JE3Kc2)KC/Y%O<@,^`3c'mcXQ"drVe'hNSo:GM9d`SKCG1D/`IV`:C%/R.M-?o15l0.M8ms8VBK,oB8_sZmU#p$_0Vk&&(<=@^9ZW!c'[p#tdSt-(3p!+RCe$IL6m+(@57rL%hY4q52f:uQJHI8eBKH@gp?h`hBX[ab>2n.!kd\G8VDr/$83Ub@0;K(EjBWbjBo]FZsjL0Z@]fBBeakQWX]fCN(St,e>?mmo!MK?j`L&BfuUQ*JBXg/kCfYEfc<#$mo)s'k&qZ/=>-N"9Z]^OWpCuK[!@,dNKeu:ZJ/U)e@Z6Ke0)6&Y[gqG.qJ8pojKi)F:FtN$j81_c5i5\u7I&AM,%@pEJdSCMPapcl#\l[:No,E$!mpM4@CHhKP7-=VolXL/Y]-b7/Zr2HGS'``ILlXf#fg$Et&8P3^)nDAq!$#>Ik>"\'k@)'551[-dR"t@jqK.<ZZ7q>,Q9uNe_ElG7,L`q0<>&$OZb$siBD8iuZb%5?QhRn+$Q/Gj'/8:+gg=BI_1(C-e1^PMQ.1<.mBQroa9W3f0;Z(cANeY+N3nNOF^Xt,Uq;1:<NC$`XF`T;f:_95U8W`Zc%1f68=<6+Ngiu:^a\3Ukq4RZW^99=GE#lVZPD-T84115:Zkd:X"0isSP4hd$sQOCP;,/k(E=5Ed`,66r8=4C.9oZ!a6rDN=OfN9\3\B>WmAqsE/A;#\*.7#:,m<c@!*-jEc"j2$E=a*Sam2#q88,q(H]@g=kKG$EoF0KrdP[,QXS40*cTj%ag8'--Pk<Z)UJ8tDb_o0YgG4kB3fZ=b?O+#mmMKs<U7'14H#fJYO#)qi)rG96I,@+UZ^pSO<;EE\o6hNj]Ci]O%.Yuq%]IjW^bB8IeBU<^QTI;mnBnT/%XhJLO"la$G:Z?>W/4F`V_La3F6Z'epD2<h"sG%@]Y3(h0)r!DhV2@7dFWEoQ6ri?q%\h?=A_5$U^^5B%Y,C'o#8g0LNFk#b0pFQm(;2#^^k,X3mER#jGA:pq?P%+3FS1?T_\.ITDeW@XrP>o6X*?lt:ch,NGPU9^ejjVkFgt`qh-7%\XkKalLG_p>tuITZqFI8[tiV+/k0`BkB/(/A&r<ISbeMIX."i;iA/e73Z/A7KsHNXUm=X/'X^5')eL3YOcF@n%JRlU:4Fr:"`RRh;@#&@\:hP#[+('3aq8P+E?r_4LM:tC#8,lbjm.><^EE1r@7J3LZ&q`"V_*_^AhOso(CBoYdI*ubf/^S?'Y2:CI=3eKi=jX<!;Q%[kH>RYg%m2o+h1skKj,4Wl54L~>endstream
endobj
13 0 obj
<< /Filter [ /ASCII85Decode /FlateDecode ] /Length 1190 >>
stream
Gb"/$9lJcU&A9%PIi+st3H,gaa>.o%V.]uGE8.0#OGbbZE_(&Qgnf4]MO@i/fqh)/:"oA=TI=4#Q=0-"p:WD'AeKpq-OHDV$h2U\?>gHI;V9Q^/>FM-n)2Iao&AX!,+PKkjSg])U=Jdm&!B;O,YOmp?U5aRY\dh=a00^OgRgF/-0sK;0-%g/nXgo_F:Fju\mNt,?qXS*r<V/E+lU&V$O+"ZPcn-0&sh33b&1]aIN(YC0>S44pCUPS'<Uk;2M[ko0]jU_.5]<@&BelW5TBi!F2fDYAa\NlhIK-fW@,=)lM!H0>3aH'it:e?Kg%VG!CFU?RDie6(LHS0#1h%_?noV#Mm\@.Kgo2!SZqTd8-oIeE)5u.B8*2W7*qWITPM=LP',Ief74X4<fR+p%ZoSMKsT1Ui4cd*7nK"dTauCo:hF_4@?08XYX_HI=$sMcK;Be;^(;Ds<D>-J'.$3'PD$R6$*a$f/4h=^d#*qqXKs^ol:\.SW)>-9O01u"6Kia(5XeSX9FBQmY)&d,?5REK3IZtu$A5A6nbp8T..-/D[3UBb.[HAT.%^\nh$V+S&D0m)F':4OPe-6-4b=^.6H]YOBen*89f'QSQ!'$5Vbj4g(m\fZ4_""A1*iaaCH*f=lfjC`^"+AT7B+@3#"O4G?sU*BB=t?&I2QSS9KmC9AqN%bOueAPOMVIU$anA6e0kak]bAX#mM?Qp&V$q7G^jjc"\usA(bb]D8/)6Ze=K.mQ&gs8rOYg/\qXCX'@PHW3=gcTCgU9OQ@5MHadH`FX:90Jp#RR=6c9e#V0VQOjWn>)*@\0;1e.5>Z@H4NB\3Ue`%T,ljRNB(GXhs1al&Pe0/fJlo<k,IN6srQ%B>!fIA]_KcXK8g>FPD#nWnb!/J_h*fi#nW*NZL.?-!rZb&OV*"!Y4R0Kt#dLVSOrm>PL*CnM-l_L%N`_E&C[%b=L(lG`lW;sPaQ7?=;3XhSX$rM/;"R6c<F#]g*E+fkm&6#(Gu'K)m-bg2,jZChrH@iOc^9r9o<&`gMid$LpF%I6`#XXGHc<^E44O3GBVSY$-ng<%;TMibhX%663+$,GY@8GQni>_sJeV[bnpjZf>]hjA6;h_>Z!%JoQ,eCfeNU/s:_A+[OGBt/puaU3\q;kIusj<$nd$nH`=XT*Oo9Q7=_I0TFkd6'(Nk=,!TB`;(kL4A1Qi_MF.$X!~>endstream
endobj
14 0 obj
<< /Filter [ /ASCII85Decode /FlateDecode ] /Length 1117 >>
stream
Gasan;/_pp&:T\)s"MU/paVU3`Y_?cV,k:n/EN[#b=`p90GlEeQePg*jPP/nf7kWl9k,UVcbOqc2rDhK&CMqHs,.o5k8`>a7hEY$<tHZD!r3<'Q![kqIsL!^0glo"i[@?Y0a^=(pI'p!aKcMc0SFfYZ`jDa`;b:sL)c2,Dgc+-hYN^+_KZOaLttO,CU(cA+o`)D2suC/QPU:#lX1%`C-d!*'tl=.@aGD<*0t(tQaBqtK8ea#8E_7Dq[?L20uJ9\]mqMRe1q4mqZIQ+YSU)C't!m=2f`\!oerJX(RT)99;boNQ@;kRO`<f*o#=<@Enqs$R,rI#^ks_NBFXS<C*Cb9)$O#!co1X>kR>E^C',0)8efk+aA4W*"RPuZL7KMkUp.NJ/K"B7@K7>RV(2<^8o'G<B'tr&d*+dIU]`LsPpQFXdXusJ3>kZKZN-Z^[RM`W;3k>$SU0?9jaNKiB_a4\HriJt[HN-[CFBmp>=omX^3<YbQbAu=AGVl65'CdA1q'4j@,""8TP>`U<,JZ;aJko^-#*sJPj?82+AGXKR>Y)$*;Zg*4WfRMRZ^X@'6n<CY/SO)YB@1Rl,GP+h?c?mCC*Rs;NIC?U1b"ZA/-Xj4m95<c4<iK8E4&=@0<>Q(HPa6$O02BE[:0R2i`<0C5a$9D_4!$$.lD<aW.,E&3&U*_e3/h)&;%W\2q]N2:d4A?+"GIi<ltnLVW8Os8)DAG[ZbW0a_u63b`*6nN;]h`L?`W*XHl0B(`TL.bN+@PQNtIPTPL0n)c0a*a.l1hj.e-E8\k&>*9Aj4*X_tTK!8!Bq$b<=B5kK,_ra$ou,"al9$VQLP@)%)?m"UJeJkD(d`FKMhd$6_a$WjWh/#5Uc.^clqXZ%Gu*(80+241Y"."iD<[S!%$tMJ7D&ue-0^[i3Rb11E:p71;)5-NWAEd:QZG-!8=if+Xe"g&kes8B2jDXj7Uq6Bd"Q1QcP);i8['+hVAYprdmTC2'L]][%(tN_#eCak_!AIaDq$&<R+An,$V;,8cJmijR&2!S%G%od:N6-S"c(VsRr^Et0[qYYQR$@c#6Lh#SgjF#GRDe-S3#@6ErQ=ohj,O8S^o&:GE=]1mHpN:3F&Jdi:>k4he?#d~>endstream
endobj
15 0 obj
<< /Filter [ /ASCII85Decode /FlateDecode ] /Length 3689 >>
stream
Gau`VD3*G]&cNgos'_"<W)GZ:bO7(;!kmnOY\fia2$O*rqh:>LRu&C?UpM*(f6;u!$Y@Melj_Bi8\?RB*6p\<bep-%(u`6Dq(mg-IU9ofG<Ye3=Du$JH;dq\KjWFb?[R.p_E8ci^SGLPhj]tYn:=rjj%m\OE]Jp:BE[W<#64Mng[T4^\:ZZj)19Lo`o2pUi=D^R$9iO&hC!N)`V_Tp5Jd1lB#<G4^.;Y?nn'R_9Q6Qe!b\$L@o+./(gG/Ubb2pcjXnl-o42C'W*R<B&WFi%TC+&acct%,AGfiKkO;4nRcAne:RS8:77W+1hQl!_g35^PaN1GA2X>ePON8f2O'HNj'Z$!Sp7V!$7d*#)/27+1,_R0)Oi_qg(WiSi^=%?SP0^=,D+e:%cd=*"*oC>@CqB*_[A1CRA2]lZ]?8In)nnQ1B!]UZgdl;ZHrfX;Z)>^,2J'?qDln*]%.59<r!B[Bd%I^m]*6F]R=mqhGm8;I:T?)Z&shX:73GUOeI^.kb=&W<OVt'Q";kZc<t3dJ5`bqSIPGNPc!X1/Tr1<"2b^oj:-N[Si,A<BY;=D4f?*YOKI?c+29,*o&0R,m+'MGo`7.*5#BTsHXd(AJR<[f.E!W75-lSb(7K_sbSD;%?">#*5LQHFC_F$TgkWIKZ'0`Z'9pJ9]E@MPap]^Mi16uJ$W)./LF-$]rcl<WjFue;s_HZ,a_)m[[_cT?4CYAmrST=FlX#GCN'N]e6e^+SSP1,p%:7#C<e&3u0U3Oo""(?IW%;)$!%-%JYLs\LN'!X\In-1]n>X,On$3Hf2Ca1-d*FPpY$sW@'FK!4I`GQ1s"7GP=r+i]L&$I']P8>9ob&YGP:2Dgn@=D3`WCJU/)XYAe#7ObJ&IIm&[Pn&J>>JssOobE4M55;@04K_>XHsQ6[Z>U$*Op+E+ZO1P^nLtF$4$mUn2gtDZ/'H>SJ[c31(:Q#PXl6Q[OfK^\At!*G"A2eX9N<alW"?Q_Bb0R5#3qp6J0Ed_/F_`$mrLK4ALm0j`g#93smdNKsqsP%,*VHn;^omLB`7<6l!JjQfm?6:AgU^FiCUsF;`-6@i1?M^Z7K`pbCa31f]]Ic@!d>r#d4Q2Nr7I#>rBB,PFjq=bJ]mes-[8!(Z)I)?3;5*N(;[KE*E*6?XI`.?gbAA2:;s"#CK\i?F>MS2<H3O1^%X@NfSD]s\-'"_Qjbneta'3r])IOZ0"ar#;X&K>b!nJeAQL6N_%,XL=/RE>nAN3$R5#aC%0i!MZ0b"1kDM:X)i!J5l&tf`\<<Q=0M:.*LaI@M^s,gKClB2+j/Y+?32t"/\cs0nk!R@tD\bSn[_S;f*_[YT9V7clsX!\kY^&,)CNQQ_BB!N`$]m9RV'd)bZ-4ihT5.%&[eS@T<t>-CJ.dUKA/q>p*+NME&n:GUgk2$ggb'Mpae2+B*o?#"9AD9Ug!Gn;Bu%h@W\A@?Y7B<b3Em7^QuW9-':ig:4Es_.i_E(X>F;7lIaL4H3HNJn'rh;n;!lB20FW)=<P8+`f,^);e"3&G^;&b\CBUPcRN!Ar:1j]8/iVUlZsGI3$QXU='`1]3cOJbbVZ!7,3K.N8fD?1+WX!e.YDBpl=OJN=WoD#=X%sHQiS60bE%SMINk*m6mJ30nkep9Bs_BI)sS$^*+7c_BCt4$MNTd.upmG<*)$:'PS04?G!f[Ub^]e-%^b?&mhYED%mC(7c^iq:C*JTHiZlC5U:ilGFOPh`)UT$e>B0Q-f]n>7Wgb`2e;8k2.)B`<lPoIm?da5\!kTG<3/<Q?_BDAVmNa7Se?X1=@*``:M5np_l?m,WEehn.?qn9,)pD@cq,YPFhT:+,m_6=P_\sIM)AK[Wa)HrgqY(V]!>pe3u[XHM[.8:/32YJP)KiC&:*adF!4U[S\JL%KLV;>\qG-KN%:X9b=ORk==S3Tguc*Yas6Nk=%XBfC\R9qgpYR436E/=aZ!eZ;s(L`%N1+?2!'&g\.2"d6$:_J-Q6.pc=nOoN)s0hg,.7>%"jki;G:b_Rc]pS6CDb2A[\;MOII0OMZ@j\5BN#OP[sf[UN<f)/L&;nj3TF`hBr[$7-(hW5IedZA;!QrUYkT<a-EnaPFo*l6_<9O:O<]?*O[]88pJ4AN)A_/Fj/MYbkuQD_Om@O0X-m3ct_F:J]>0]6S0XX;ac`#kf642!MG&bMi>opO?X)YM(X08:95GciCpc7M;L6h>(n+>$c5(rZ_3kXU+Xp@=qVc<U?jf+6fJka:.\I39oQf8)#SUQYD:`Irb:2/gsotRIPFPK9&W8UR1tr'Uts9uI3Rdu;11Cl_G,F4=->q;'Q6(+6'$Y$eO4D"3J6`H$<596$VXejQG0Yu;Jj]]^qU(NY%dID:5j]go/ehRGW#.0Q%k\[]kOef2d7o8<ZHN?^,5SMZUKe*R>c#o.;NoVE=<XO1"9[Bc8M#UoDsM4@^^H)8.#IX)qH!28rB5%iJ>m]`NET,\#TUD\iJ.(im``!UY-'A@W<r[%/-]"*GDFX18e"DI57$6)uV]Tds%k'?#pP5ac&<Kn'Qfe'!/!?4$M4rH&6=X*Ti)>'U!e(L)PP9FqOCP0Y9-`=`)LM>ao=WDT:+s5lHsgquaF>;\J?83R=8ZaZ_=4X\%OG@*_C0@1Ic3Jp5.idBhALDeTI.LMo^G`99/@K1^8*OL6q*/r1$f4F1$5`qN!*M>^(8$$EJOkSf^YbiLV+%?"*2O9t=DVu[!K)D@(6hYB>do^BQ3C#='H7ij(YE+A#/,!00=TaPWN;]C8jV[d9,H<tZhT>(<Gm<NWF-m(F*O2Or_Q9C\JgXqkC:Ge;8QI(,!\K^6CeSoo-TP+kS<YVDmB*rrmP3b4%qY2DqR$HI(9a<bN]=^,j)S$)^BH2\$R]*n1`)l9AB30Y*R]oM!e31o(ou;6^/8kE`95egM2Q!N(omr+V-pH*]<YKC4?7[ETC1D8J;U_8FpP!NtV7L-eBl`'1k9V#=GcO<"$^O+diWE40:?6XhW[NB<92.<PU8&@Jk9Q.)R3Vf-'S?BE%6XAMX>gSVFK!ifP[%eGYO5Pbl2C9CC,M')fW.ZRPIW';qketmh2_;jcBC!;PT[N5)>1lc$ZJV[S[^87Z3sm[?g&e_X7B6eaXpG^::hc+k0%Bp3;hI824:YFbNj%ucDO<^TlTS^H5*Hg.8dOI;4Sf0QL.O.iJQ3')lk&Zf(Y8![=oX,l(`+5PBda<`thU-ZK^.U"UOklhE7Q4:$dCJKb?2SDA63pU1/Q+c*(mJIA)oE*A3QA7012f#]bfGPg@6Tkp(!_']#tcGl9]82e\iD)[gDdd!):r$/*c8%FClM\9E""eHO5t'c1r!6ti0`T\n!4e2M-m9J&2=?#>QrS[%gbUNrOhlt>p\Q1$='d:@]id$V9924eeS[bu/_hY;S9;7BBp,2'-Qj-XpnK3E/e/LPZ\^[$nmiu!6JiRk.*)Pt5a^[jko]n9Hr)(48#kZF32ig_MmKtf9:L?6P!K8]K#cTGmL1p,SLct;m\*B"`%nf3(&%%Abb*LsRnV*99Ne)PPQgDcqQ7(D%'>X$Q0DNCm\[B27Rpji6Z:T]H.and#g\i[B\GGK-Ci7>\_gQ-1OWS\/8c?B?(bM>F[C21IrWghbgEm?tKGL^OYUrFTQc7US_o:;>!G@8]SO./,e1iIiuRHOS5Q(mRZSU9OFAtJ;UoAULX;[7&DFQrmsW<97P#%#%=+0sU;@/~>endstream
endobj
16 0 obj
<< /Count 0 /Type /Outlines >>
endobj
xref
0 17
0000000000 65535 f
0000000075 00000 n
0000000129 00000 n
0000000239 00000 n
0000000361 00000 n
0000000472 00000 n
0000000671 00000 n
0000000870 00000 n
0000001069 00000 n
0000001268 00000 n
0000001357 00000 n
0000001594 00000 n
0000001675 00000 n
0000004819 00000 n
0000006106 00000 n
0000007320 00000 n
0000011106 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\276\204\202o<f\200\344\260!e\225\353pm\217) (\276\204\202o<f\200\344\260!e\225\353pm\217)]
/Info 10 0 R /Root 9 0 R /Size 17 >>
startxref
11156
%%EOF

View File

@@ -0,0 +1,408 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 5 0 R
/F5 7 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFDictionary
4 0 obj
<< /BaseFont /HeiseiMin-W3
/DescendantFonts [ << /BaseFont /HeiseiMin-W3
/CIDSystemInfo << /Ordering (Japan1)
/Registry (Adobe)
/Supplement 2 >>
/DW 1000
/FontDescriptor << /Ascent 723
/CapHeight 709
/Descent -241
/Flags 6
/FontBBox [ -123
-257
1001
910 ]
/FontName /HeiseiMin-W3
/ItalicAngle 0
/StemV 69
/Type /FontDescriptor
/XHeight 450 >>
/Subtype /CIDFontType0
/Type /Font
/W [ 1
[ 250
333
408
500 ]
5
[ 500
833
778
180
333 ]
10
[ 333
500
564
250
333
250
278
500 ]
18
26
500
27
28
278
29
31
564
32
[ 444
921
722
667 ]
36
[ 667
722
611
556
722 ]
41
[ 722
333
389
722
611
889
722 ]
48
[ 722
556
722
667
556
611
722 ]
55
[ 722
944
722 ]
58
[ 722
611
333
500
333
469
500
333
444
500
444
500
444
333
500 ]
73
[ 500
278 ]
75
[ 278
500
278
778
500 ]
80
82
500
83
[ 333
389
278
500 ]
87
[ 500
722
500 ]
90
[ 500
444
480
200
480
333 ]
97
[ 278 ]
99
[ 200 ]
101
[ 333
500 ]
103
[ 500
167 ]
107
[ 500 ]
109
[ 500
333 ]
111
[ 333
556 ]
113
[ 556
500 ]
117
[ 250 ]
119
[ 350
333
444 ]
123
[ 500 ]
126
[ 444
333 ]
128
137
333
138
[ 1000
889
276
611
722
889
310
667
278 ]
147
[ 278
500
722
500
564
760
564
760 ]
157
158
300
159
[ 500
300
750 ]
162
163
750
164
169
722
170
[ 667
611 ]
172
174
611
175
178
333
179
185
722
187
191
722
192
[ 556
444 ]
194
203
444
204
207
278
208
214
500
216
222
500
223
[ 556
722
611
500
389
980
444 ]
231
[ 500 ]
323
[ 500 ]
325
[ 500 ]
327
389
500 ] >> ]
/Encoding /UniJIS-UCS2-H
/Name /F3
/Subtype /Type0
/Type /Font >>
endobj
% 'F4': class PDFType1Font
5 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 12 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 11 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'F5': class PDFType1Font
7 0 obj
% Font Times-Bold
<< /BaseFont /Times-Bold
/Encoding /WinAnsiEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'Page2': class PDFPage
8 0 obj
% Page dictionary
<< /Contents 13 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 11 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R9': class PDFCatalog
9 0 obj
% Document Root
<< /Outlines 14 0 R
/PageMode /UseNone
/Pages 11 0 R
/Type /Catalog >>
endobj
% 'R10': class PDFInfo
10 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20000101000000+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R11': class PDFPages
11 0 obj
% page tree
<< /Count 2
/Kids [ 6 0 R
8 0 R ]
/Type /Pages >>
endobj
% 'R12': class PDFStream
12 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 2195 >>
stream
Gb!#\lZ:NE&HC$LreE(Q^nHU+GBu:A98BCkVBM$h'KXbQ<U@%C/F/6?`sjio[s.QlSKG,<KOtE8REat;]>*1VgIF4Wr8F+<-NMJ?3-``"$h/qemB-ot$2j)W4SZGX5d(LP4^&N3ldfj]^ahV(@bjCh6]Wtk-dXl'Gp6Q:4U5?V"^K:26Gat*_`f&qdkI&tKNGKh3\,BirrE%^Rbbf$CV(RE\_oJO`m)1;)-F<\m0/*"5ZfX;JIjHZ=mR_%@M/Kq9`iN0!lk#@i3SsZ.<pGnD+fCppE5Z=Tp;ebj-n`/d8kRZl.IUk_8a8CES4`64'Ep[U[h!D7^Fe3g+)n:K!QEUS2PB"P)&14qVHmkkE"UB$8R!k`=dq5#&uh$_WupKqkGhQqh<77Lf;CVQ-@)J[18B[0B,1VEA7iZ=J^9ZhTEl1!dPAi"jH"9"CVbQ1IWon(/@@q>I>(&[`7@1^/UtpGo#NJ7qlUe0HHfqs5G/XUN@^/U/`a[1SQS;Zt.)Imgco;bDCm?Y0A=*Gt@!T+u,4583oWU8^0HVb`*&JrV=r^!>\d(+E8qXS0;mSki6A"*4npHVrup+XtPa:>*6?mY&E66PtoT<#n^mYfr,/hO,2iGT:@PfTT[i;@Cnp@Ja!?aCsf<%fci%TH(rhI<h&th]nXQQ@BQn%%[SqJF"$OiLl4Yf=HjnB$Md6;Oob!$/<33=^33:4-sm@!)J7qr_Bnc8=VlN/6E5o+R*3NO&gCo"\>*XR5-uk9,<S%97QJ[KPt(U@TbIpQ%,WR!BOX$A:pL<t4I/Q$;JH4,m,s04@om$^dXnu6?=P*#BhL+nCW'MsP;kjo`<c5#&5K.F2&Pc3e#jCWNtfSC'0rEEU[YL`qCG(sP*km]GA:Zi=QCicLRPj.9V;X\E%!MibnQ'KR77m#lDHgBPlfVi-#@Te>0k<.C+'>CeskhL!cWS8FRuJ<VdPS;N:n/RWDAi:EW1R`=PW.M^?KqR9Yfdsf-rosapg9OQ8iD\bJl2bE8tZ_::L&,?(/59R>4gt%B\HG1UkJIc)6OT/]-;mr\FI"CYHJ*$faEVjW*)jMOrCBAN"H7A4mZQI7:FdA!YoOAnLYa0Sid4HQDI]Ks"4DdK;DE4(=77L\)s%(1%u)0G8[_]#"_dIt#Z!i+?l5+^Q<%X>^AF\?_>cS`](#iA>#ioS3)VCFceuDqKUi7Pt\t63g(XpYQXkTFB/*rB]3uag/:hF/1E]hq=>\ZSD()T*XWgq@l\_ZdIYEI>QTi4FqeiJl3tWl00sr$dUWffr8e=p*g(%Z?LlHV@gb&gTQ_M+WI^sJg-ZVW*rMCEC_"E&!C]gU6_YiNZQm(76-`[\J#WSj:JTV"H`sA$<;H!raBFIc<kOBN)cboQO'iHEtC-o/)58U.6H,3BuF@F:j:mE.u1-@b-]]dIidt%K$FhtVrSZW0Bq2(a?JX[D0F<9FYVu@g!'5m;je=G2OhHBVK99*[=c*(Z2qc\=6aLl:[)>..nOp+k#+t\_=dU;s$oI`3IQ2G7[(7t@GSX7?O9-(0`,CJ+&bcaXYmV"[tQp&2O+_SR>Q'>R9s[-WCln$Bskq\6^:ZNY,]qE@??1a9&F235T)>@r?Af/>=ks,\\Gd-kYRj-'(TFs&o&"b@^XXN8V4@_^SQ;qKij=fJ<&h[IQb5@8[W7iQYR"3JL@sl8Qh\*cn9H`;R4h>Flh!()HbY2Oc`]]"Qio-.FW&_emEXF[3!_L6YB>Dd-9K*<8J:PH'PA_2qG?O4fW4A)=*/sU5hpYaA!"5ep<,VhUpn8NI641R&>\d,#d_5@\hK'<o@0bTEjsU@*W3@\ap8A9PtK@1cXShh6@RJ(+J=:NTb38Gg88=[J^=7ai)EfeaZ[J%0D!'fEb&NgECEK#dk`Y*<U-*CG#t'75_@f/aA[1GH2VkTJgn\X-`kd<LK8sFL<lnXnkOsLqJF*Rt5EQ7n8qV+s3,/I1GkS/)[La`BLak18V7YouhNPSn>$eCjBC$@j?oL`Ve[-'+BHb1_.d;A".0PRVBr&dl925HjR4nH"^8eoY=kf'SO$Kql5&?$au>fH'Gr-G5n"59;>""*lQ(.0:/-Pds+!@EN@aco\KEeZq;14jL>24,r="l_dt140dpeToli,lD,@llC2(DC:?+5A7:R52*H`9EBdgES`S[cG\77n29ndN5C##PYBZ,B"SHeFCp^bCm(Nf~>endstream
endobj
% 'R13': class PDFStream
13 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 620 >>
stream
Gat=(?#SIO%"("ls$351fs%u^,YRjc2KTg5FQc4OF9DH((/C/J:9qgSp@BZSNT6h"#7NL#%Op7s#DE<E*qK).!IV7n4sD*MFpb#X"ni9eff8gC7m8;N1<p1uoKMFNoZTZ8PFN=tLgV_MgjQ^G2]!^CjgKp6DI/ZK-4,EG3E].DjgKj.?+o+FDnnPfIClC=+3AsPM&K(Q2-ujpP_E*$ls1c*'LHP>'gcRMPB`-)35b2e("/HNOh/E=EO5inpf14B<Z,^G)#N:d_OSWiH0(gbURTq6D[<*%bLqI'8)_(cje!GT9^?_?,'nU9TT/r+Jnbu6OS4lJUG-sqPeH,Zo0a7f\f'I_h&G$]pr%1^H.r,NSa/MrmbSkEKudO7hCra_<X_o]3Q(*h3OENpODW4G5,N^<prQ?Y?A<<q=bV^Sq@j'b%ec4NY?$*N&+BBA",3g'),sF1;6\J(r+IZf1<^SY$rm],et&Hg1?C-8[(J-3@"PKfq.f`u=*Ki8JYM%r5]nS0?S%YQs3CLG3O#Q1ZKNCB3@N,!AH&3Fam^!78W&aJ0&(m3IHK$t?9=1hXd'5Ae]c#t(;+rQPN*hF^=tVi$TdIM'0\g>Sac,/hWtK'UVD*08lb~>endstream
endobj
% 'R14': class PDFOutlines
14 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 15
0000000000 65535 f
0000000113 00000 n
0000000257 00000 n
0000000422 00000 n
0000000612 00000 n
0000002586 00000 n
0000002759 00000 n
0000003040 00000 n
0000003205 00000 n
0000003484 00000 n
0000003621 00000 n
0000003892 00000 n
0000004007 00000 n
0000006345 00000 n
0000007109 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\223\367y\354\321\362\222Ju\262\315V\3448<\372) (\223\367y\354\321\362\222Ju\262\315V\3448<\372)]
/Info 10 0 R
/Root 9 0 R
/Size 15 >>
startxref
7161
%%EOF

View File

@@ -0,0 +1,86 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
1 0 obj
<< /F1 2 0 R /F2 3 0 R /F3 4 0 R >>
endobj
2 0 obj
<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
endobj
3 0 obj
<< /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font >>
endobj
4 0 obj
<< /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font >>
endobj
5 0 obj
<< /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /ASCII85Decode /FlateDecode ] /Height 178 /Length 1411 /Subtype /Image
/Type /XObject /Width 223 >>
stream
Gb"0UiGP,='S'';s.qeOeY4UF"6S=OQud^VCBG(GAs5(Mq#LHqz!.Yq<s82TcJHLP^!nSlYP70?2'IOd23dfJf\^<cWS+iH4,V=#!e$:`T7.<d6Ua8da&gqCMPI/8">2geZEKZVI8P>SL,u4;@s+9g9d8,SQLhc2(:J-sJNFI])PZFEUl#\jFZ:_%H@=C9X?_UKa0Wj?1:5?HkVFOtls/RGXnij1t?P*/Ms#N@/']`,Yeu3e8.XqB`H,Ve?\nNbgF'Z7f6#n!CFcKDIh]1_dM6hN!kFaiXko%U^3tRG<E1L2T]MBnP\&VH]GM0lp2C+@.1=olW)pa^b/eiFE^\Ug\(9>\g]Z3$MB`,9i9XrJGoM]17i_6L/21+5lbA=lt\JOF7T$&q7)X"q&hVu(.<lODNT?uWaTp7FEa]?^I@oHug1W>c*@+:TS>IP#9BnDU+gN\NplSpJ`F1^nLSn&\FF46C1_\d(SG&c6YTAs6tb48Et&uPp)JSl't/>"A@SB?5\b]2@Z+"hE#Z6WkK(/00gMc5qSUl&*=]Lrm8Xdld-EQXG=A)jq(;D9e"=]..-:1`urrsp('auQElasfuDlP?B%PI(+%la!<QLQtf+e7fi!XdgoqmEr6#U)#8W"d9MVEQXFmZ.liF#o'dfg<'^<&uR9piF8;m9\R#iV^uP^3_j87>$[Z@Uk?!n.[+b1a8*kUSFgeTcFpETSKi-WQdE0N]"d@!d0$qgEh&V#fJW\D=c#0LZkN>O?uDI#X*c4!iNG'U@X['uSQj@U6hm=r&Bk'2*H<jcq`7jcouOm8XQBBWlJeV#MAJJ9UkA54]/U\)@RGWp+K'Hgl(IcDAEE/IR9pt^8RD1X.pPT7"e-=K[bcdV]qAgPZuSW]26"p0M?41CEbu-Qp&D".SKX"mAEBVnj#8mUUo1.uP`(_j's@bZ8I'C_Lm-DiK+TKu>^TIOS2>9"'6+X;lF10\,Z\:oiZq?:)r`,2M\!1NPNs,5+\o1Rq?]E,;QY'JihT>)%)g7jh*0'O_oA4pF7u`+*7Y"lT>\h`6RLWtc<$cQgr`4)fKWm^-[USDZu)AAYm]^k0[>+t_m!i&chrZaGGuq@[a)'%>PYJaT>D,g4cnF_r-P'>^5hLE[XS-*Ut'd[XsDEkSl;e[[@<2<l#%O)k/12f6.7Sn+/]Z_aOqk#9%,:4Hgn^cpYutH>I-;%eS]G5h^+#Lk]K.1:2/C,akYki+br+a3&??\%:R>h=7N5qB,B`qc;*\32R-FM$Z;ZU[*EXuqO=6"EDC5.El9u7\pM)rVeCL+EDEV"r&-^D/0Em29BO*"!tWpkK\T>P]00eV3:JLHSuGsl[F%d.B9=0JM3G<b8Qt+!/THr>3(Zc5Ua8da&gqCMPI/8">2geZEKZVI8P>QRz!!(@;#AOfr/H~>endstream
endobj
6 0 obj
<< /Contents 12 0 R /MediaBox [ 0 0 595 842 ] /Parent 11 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << /FormXob.0ebb4782cae50a6fa41cca1aeba0254e 5 0 R >> >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
7 0 obj
<< /Contents 13 0 R /MediaBox [ 0 0 595 842 ] /Parent 11 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << /FormXob.0ebb4782cae50a6fa41cca1aeba0254e 5 0 R >> >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
8 0 obj
<< /Contents 14 0 R /MediaBox [ 0 0 595 842 ] /Parent 11 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
9 0 obj
<< /Outlines 15 0 R /PageMode /UseNone /Pages 11 0 R /Type /Catalog >>
endobj
10 0 obj
<< /Author (\(anonymous\)) /CreationDate (D:20000101000000+00'00') /Creator (\(unspecified\)) /Keywords () /Producer (ReportLab PDF Library - www.reportlab.com) /Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
11 0 obj
<< /Count 3 /Kids [ 6 0 R 7 0 R 8 0 R ] /Type /Pages >>
endobj
12 0 obj
<< /Filter [ /ASCII85Decode /FlateDecode ] /Length 945 >>
stream
GatU09i'M/&A:TVIi,/?L+5&eJ&S@a+r[EnPm[<5".,!18X=8,_7M$gIskt\Fo[)X$3YD9SWEMWBANn"kth(e\H+ZCi,gS:6r5F#,XDLN-%%5_U\jT&gEI1hgEI5?K8g;6cQg;0E$c\<6RXiH\c-RdrOeLbJ_%Y3WuT!33.fKGI3Vf!o<p9B1:>WSm8'CbKAr*@GVpPm0T5]j+oa+8Tg?3Y1^5A6AU-VDrFtIkS(0;Q+XBbAF<3g9.uHLQa`6sR(Jn7X"=i]0p^[5`738I2.grLWBYh%cXP"`G\:Z)"f/A#f"N>J!E0N]ehpmV.pF,YJ\,f7!#trtnlPNTiLI\#sr7,g0Z#1qd!OkPK^m6*9l,kkAb$mfsg.ifiUm%A@m0T#_L'9oep:HWf7B><*g^K^J2ETQ\Fs&uRCX_PU/0[n'\km.9dhGY@Che&7b7ZDW>FO8pJ\T3@a9JrQ36asqI44X?K;?n@^s\VtJ7=LG)RWI"'aH9BMRk41Zg82eVUS'FKr/-,P[/o`i62rbDXFs-Cu_6MMVm1BQ;UXmVFIR`eLRR:\Z;,1fag>?CF[#[4I,!J2,iep8N7/t:QE^jRcV7t0+:Ej\7\h3.;MP;6k>`DU:>9:jo$YGO&"l8g&*U`+N25CRH79p0b%^&P_ge].3pNV(o7PUKc*/)DHcn/2eAtD%-\FS9X[1R?Jh-]$g-X$loeW<NhU`.mt,nHL[;?(&6YSO*[;ok0MM=DN'@*"1jah=FEPMG3/_ft9%.taFhu1`F</YBPF'4C!IM7#KO7:+C3Wtu_a`VHLu>2bmjrCIChY>-o7138Q8Em3=r;XA"I#[J/(!K2CDjQaQH3u=[kGD>@:B.[[4;JDdM4F%&pZKFor'hGelo3>>jnSdiO3!t3)PefrUp;n.ULQZ#E-73/_1Y`O[^'_0Vi4Cab!U^.lrCSkT>'2m$d~>endstream
endobj
13 0 obj
<< /Filter [ /ASCII85Decode /FlateDecode ] /Length 725 >>
stream
Gb!Sj9on!^&A9=Y+%GOL<iXbYq79U2W`E?']:21^BS(f:85*Mlb.k.#+crOIW)E:$@1qmcBDgnO-OBn?Ik4i_$K+8]2ff1^6bWUKM1kd:53C>9O6IqB33X*6S<:=fGlp.I@5K,FK9T9T/!rJI^#S!fkE'KFi,N*b%;uB)p[G^kCCTl`?+A>4C0S:0>KEE[Ihs<c:FA"F*/F1PA!oZYiA&^C[dpjdM`pBVdXX7A(Ms"V,*.fu%4Q9B4j,c&<*a<6"3S0O>jOV[X`bJ?Ae.Q%FAnI4L;Tl>2R$,>"1&'l]uiUQ0MS>0cI>Jpc32%rr2FK,jhi_08@i>D:Hi*YC@HQfMjnneXr:4B8*dgGC6h%s[8YYncBP`Cj@YL1lf<b5PCJ_jFf)(bF`&pQ.K7Vn-Y&C'(`0DQe,%F(edKb@Loq^Lp@-2UEB<VoqGDf;E,8`$3<924[^)VR`<F@obVG7l%ZGWg2biu$/-sdaKhPBN-ll/"YEWQdTpX797<p.9gmZ^VBq7[G>^M(J;Z<@=Ms):/@R2uga>6_:GUA3F6]%$DFnA5dM1,("`8O*pB5trH=G,*8,W^i^N)Ue`X+B:&SiYnKX$Nqio[6]^b['n&4_7,5%JJ;E2cXn_-p,//qLY's:)%6`i.+,k6&I*(p#"I_gL>gsXD5R%M"XoXp/dcplsQ?S@E(AGB.')BDZka`h@%3L1r+?#_u,"HDP_sLj>W\\`7P~>endstream
endobj
14 0 obj
<< /Filter [ /ASCII85Decode /FlateDecode ] /Length 722 >>
stream
GasJOd;RJf&B<TXomc`^*nI#;,\beo7jb/kBgWht`(OI-jO0DUG-E"8o%3>H\kuiJC)a-rkI^3[q2uo_:DTR&#@&!g\&j`n-lQX>A;T:MT8MmoqfEHl3O3eKj]Sm8c>b$ip;tb+jF)c*R\K""qf7%IhgO:Q+Qr8K85FK:aDlds:@&7U6!%A2/X5m_EtmM.]T!s#V\>'54FEK#^KRdK#nKnQo-hndek9$aUM5\@h&gB0jK"pu>"YQd4G]SGUh)j/Hg5nfDpU"3&VPmt_T#VW/R%+"86B5fI=eZ@OWT8!P42F<+BTSZDfJFX'N\n-mEE'3lsr#a5q"_gPL,G2K;Irq7,M4O>bpV5ad@B![<H[5'KThGjW>sd.n,Pg`V$HUf6UE9C9k,8AV/FWgS"spR!!@G>;8J@E)_@1__`oK2,QhpU6Q4KW,nYW2"i["$iKrfPS`S6-nj/T;Z:K%N!+&0^CdfX8;o8,Y_Zftr_ohJi*%q8)N)HXbi$keCLsL)Gt!^RPY+hcS>50C.;[09NnBA/Ll7$0Um15ZXS=9^keK%!$\PppCX&?f)'p5jT;k4PNR[#ulqD@1P<@glamr?%77CIulT)tY,s`J05;Z*=i+*j%DpOL.V:0'@EgM*-"8N'APV_n2C.H)_B^`(MA-Vc`Xu(d6"`k*h)Jcp/c$+=%lTO6m,%3i+iD16OJjII)lpgIu>/LN=34s:jQqj4Q$&(.X~>endstream
endobj
15 0 obj
<< /Count 0 /Type /Outlines >>
endobj
xref
0 16
0000000000 65535 f
0000000075 00000 n
0000000129 00000 n
0000000239 00000 n
0000000361 00000 n
0000000476 00000 n
0000002084 00000 n
0000002346 00000 n
0000002608 00000 n
0000002807 00000 n
0000002896 00000 n
0000003133 00000 n
0000003208 00000 n
0000004249 00000 n
0000005070 00000 n
0000005888 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\223\367y\354\321\362\222Ju\262\315V\3448<\372) (\223\367y\354\321\362\222Ju\262\315V\3448<\372)]
/Info 10 0 R /Root 9 0 R /Size 16 >>
startxref
5938
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20000101000000+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 637 >>
stream
Gatm8d;GF-'Rc%,IlNL'1bieT,S,7d[VF5oBjHju8UYT78[:=C)7-Jq5MHl$?")u\#TK1YO6q"LO!+er6i9%'!LF\\?4da+X8lZ06["HMfm*.14RtK>135HJJu$TC"F4/u@S&7LB:+ArZ5k9!Dm&>k%p-h?D/e*CN4;.H"521"ChJISN^kCOSW_VHqkaNLVrLXpbp-mdU;_@Fe;jlE">eeHMdh+5>F.p\/M$p\8\g]8g?bB6^8oUI(j0<`B_W:t5#WU-Fk(gb6a%bX>"u<qVM8q-`p'0(]YF:A)0JkX8t03qRTn[@mi0N86i.KSYd$He)NFTERsZe=Kn]@L:p3kDQWON08f.s,Hn)h_EP2tW)t7n4it^0nV0TI<cF#&=.3Gf/\[3Hd"*E$?7f50cPuJYk\V2Q9E`(Fj8=ja>5M<aqpD:"][?^Mu_OBd9mIT/o((Y3H7!Pl7CdTd=/TSbPPnXH0g>5UZ:-4(,_F-PRBodPm%^"JVm*&L(h.ialoNkr/rbNsSKTli$Pa9LF,\&Sp17Fi4U0]GN'%'/I=2QF)TLWUte53@J-)&MRW#us=k4$<=^e4ilYp#[EIXX,ET>u\aCIlp*A#9PmqcuD&L,=nqpp'<>2E^7O@m'Si^Ljgf~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000587 00000 n
0000000760 00000 n
0000001037 00000 n
0000001172 00000 n
0000001441 00000 n
0000001546 00000 n
0000002326 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\223\367y\354\321\362\222Ju\262\315V\3448<\372) (\223\367y\354\321\362\222Ju\262\315V\3448<\372)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2378
%%EOF

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,96 @@
%PDF-1.3
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 7 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 6 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R4': class PDFCatalog
4 0 obj
% Document Root
<< /Outlines 8 0 R
/PageMode /UseNone
/Pages 6 0 R
/Type /Catalog >>
endobj
% 'R5': class PDFInfo
5 0 obj
<< /Author (anonymous)
/CreationDate (D:20121217140300+05'00')
/Creator (ReportLab PDF Library - www.reportlab.com)
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (unspecified)
/Title (untitled) >>
endobj
% 'R6': class PDFPages
6 0 obj
% page tree
<< /Count 1
/Kids [ 3 0 R ]
/Type /Pages >>
endobj
% 'R7': class PDFStream
7 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 115 >>
stream
GapQh0E=F,0U\H3T\pNYT^QKk?tc>IP,;W#U1^23ihPEM_TN+I0SHG`1,I?72-)Cc1tON^#g$)nn4:gGa]Abo0?Ql6do6Up;@(YOlVZU%!W]l;'T)~>endstream
endobj
% 'R8': class PDFOutlines
8 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 9
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000783 00000 n
0000001065 00000 n
0000001170 00000 n
0000001427 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\232w\017\3421\263\325\354R\366\267\025H\343&\012) (\232w\017\3421\263\325\354R\366\267\025H\343&\012)]
/Info 5 0 R
/Root 4 0 R
/Size 9 >>
startxref
1478
%%EOF

View File

@@ -0,0 +1,96 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 7 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 6 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R4': class PDFCatalog
4 0 obj
% Document Root
<< /Outlines 8 0 R
/PageMode /UseNone
/Pages 6 0 R
/Type /Catalog >>
endobj
% 'R5': class PDFInfo
5 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R6': class PDFPages
6 0 obj
% page tree
<< /Count 1
/Kids [ 3 0 R ]
/Type /Pages >>
endobj
% 'R7': class PDFStream
7 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 276 >>
stream
Gat=b5tf-M&;BS,reF!=lClsslL%g-"^sPBq#dmiD(9C#P:=*ChD?`,i^knYR5]%*T1#6Ab^VPPpBmCBKP[;VODWN7*O/[WnQ$FrbI_Vq^"ju]<pQiA^+@^7r/ODNdj;$>;9^#$V<ebUMCh+^p>IPPr"Nca)#fcskJng+n!8eMj5!TUSGa)9oYISX*d'uM\qYNb]#g14\ULflGQ2-#?ps=IdGT^DXrDd7K>Bi!81gL*J_44RepZQPi$C>kM9_r+?1gM02ZCOKZM4R7HXUC~>endstream
endobj
% 'R8': class PDFOutlines
8 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 9
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000783 00000 n
0000001052 00000 n
0000001157 00000 n
0000001575 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 5 0 R
/Root 4 0 R
/Size 9 >>
startxref
1626
%%EOF

View File

@@ -0,0 +1,96 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 7 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 6 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R4': class PDFCatalog
4 0 obj
% Document Root
<< /Outlines 8 0 R
/PageMode /UseNone
/Pages 6 0 R
/Type /Catalog >>
endobj
% 'R5': class PDFInfo
5 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R6': class PDFPages
6 0 obj
% page tree
<< /Count 1
/Kids [ 3 0 R ]
/Type /Pages >>
endobj
% 'R7': class PDFStream
7 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1150 >>
stream
Gat=+b>K96&A5Wts"MKH,)Y72]ojREa<BI`!+UTo5DV%ZI""O'BiYRi!(E/g>H;I\[s*S7!f;CVI86+/B+t(<<IrRP\Hc]"KukX2:WB0eit:\4r"tLc/oBW$h2/<$_Aas\.]GiB*]b`YZ@ib?oB#"A#*[`t/_mGqi*pd!pb8=(_4UPs!Ns.BMN9Ie$'UQ@1n:s?d.bD.%nPnl=`@2@3+X*Y+,'?4&ZgsRPR`;]F?Ji?#fcClF*2IhR2Yf41g9Ml<g630jZo=:DWZSpIF;8u)qhb"H9@?5S5d1'fpk_oY:bu4j'/"+=fF-X:#39:[;12*h&%FtW6)Q*jm)2dfE\U-H="a'96m9Q\)3g>3VCgt1TaBg_\XM$S(>&,X_r!E^9L7K&<_%\ajo&KYn&bgoXpF-QL[L,DEg33k,PlR;t%eu?/[k-5.XGN`kM4'hb::.5#ECaD)^cfZW"A^hSO":p[c@ul&1EkRj21CR$ibT+.&6.%BBA3[qcbG](^o_[UDNoa_GQl7/5RDeQWL*=lC*%32bebm&>#^H"+g]cJd9o96K@3M&R\d;AeXZi$-W)A\O*t=q3*-lVc8p*c4_XgPUg+);X#`p8MkBT-ST-[k?4>erW^ja)tO3A0%31R<cp(V5@Zae;gOe'bMt&I;92!<Mlj3:"cCCe]0%:P]9up*E`VGHtH]*FfB.Y?Sii`R2:;80b>/LUO9dXbTEJ6f40T8hUH"(B^POl*UU'GF;B4%A&JS'#0`utbmY(H[5cf_<pb;Z0^YD7Hd`H;7n<DgVin6afl[+_W9jVW2s$"E#>Tg*7)r6G+lq"\o7D^`FWqB#`*oBn%oUl.8tTDrK8o+'$s9(_:>1;<8%CB@K<J7ZSr$G5#,"oYHC>Q[_U>S?#GdXW'JL,mF@pr2YslL'J>/',P*!L)<]qEEIJD`$Tbpdb@WWWJd7l#,k"l>'-lEdR9LMA7'FogBE%9Qf6X=#la.0+a/@c<C_.6Lj1/lV.3MgC!bYDs=<,>X6@f&2$gGc*BQr>0HWFT,40G,2!;`GMT^o:GlUdDaW;!B;AJgH\@=JDrsWLQj9HcL^)L%Xt19>rX!HQ]-8gT7#KGHVqpl6'^jh8/m/EI:=?l$qItg%Xc%OhqoBS<U\m;Khh&.c#gKkTANfcRf~>endstream
endobj
% 'R8': class PDFOutlines
8 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 9
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000783 00000 n
0000001052 00000 n
0000001157 00000 n
0000002450 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 5 0 R
/Root 4 0 R
/Size 9 >>
startxref
2501
%%EOF

View File

@@ -0,0 +1,96 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 7 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 6 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R4': class PDFCatalog
4 0 obj
% Document Root
<< /Outlines 8 0 R
/PageMode /UseNone
/Pages 6 0 R
/Type /Catalog >>
endobj
% 'R5': class PDFInfo
5 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R6': class PDFPages
6 0 obj
% page tree
<< /Count 1
/Kids [ 3 0 R ]
/Type /Pages >>
endobj
% 'R7': class PDFStream
7 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1054 >>
stream
GatUs9lJKG&;KY9nfRQ2-o/F#rUQWu,WJcj!QY^i#YbZ*P*Dgqr-``Nn$nCk7V\trmAmMJH$9+eiu"WaO(j)Nm?ROP<:<$hAZT'A/)r+WQ5AiHE^%+)chOU%chRu^=\!,X<$aOT+#*JNf"0!`VioVG\Q<]%[YN,@g)eb1bDYYf>2H4>]Cm/<rm#/3q(,\aI8G8Z=&I]5@u.[oPDWDM777ibUZ0o$9FprfFqM<Af@[)5;+5>+]"d"m_lklFkOROd8V=j*.ps!2d0'K6LggV?T8M3R^A_Xa)NAT+kYVR:N@!^r*^:Q97'Y7Of"Obm%i;<C3m3]P-D62'8NKMg`S*psM("ZN4&_J,qpMRP"2Q9C5R@pnQu@2iC;L"/.#.4(#?'$&q8Q-hU]iR>VDEcpkk5*S,2[M#8OTi$lSUUU<7.ROHbWB9\(egRnb2LW*g(,tO;co=HiT!k[K%Qc;(Rj^A1F);?5[:gIFoMu@h]:bEeV,g+@)(1=o^u8MC"KJ`QH.ZJb!=BB=$?`Z?3])X5fb*3g?9IMV/WGSZ"mf7A!n[N_<f,2eg!9kFF\n6Ge7K,&76DM(!Op-gmA%aU9/u?`:$Un$D]LHM+dp(pb'`O?MBbPQ?\1('Q6%;(Su64\^%Y=YS(@@n*^g+a^^L.0C9@/.,3!U0'`*H_R'!\\EJr*B/[8F["G`1tgSL,t^u?`G>ul6R@UpFC)^MV;U+a=3'rlh:JC`;-nEd0cV&7@YsF`La@*3M>0KAqKY@)CK#["#`[/>`JPc3m0+<\r+BJg4?_)ZQ:/Y(,dMl$Jj_4,QXF='@QdfoBeZrJ*fH;W;@dY?5(Z<L>6lF0>V$N<.6NZirrK.UIth]6L2*?PL,9oOQkC*&1##;&LVaba[Bm&]RBf]a<bFp-hgC]]0pVa003WSZ1(r7I:5S<c3$lH(Nq5ZoVQr)g0c"N;\gN(-(s$<^]VZ_^p#+sX+,D2JEZgMN3D2au3I2fB&D;aTh`I6g)P`F(9L0Eq9d71S1l8HDKN>#KfJ.)d=Gn?ZkMDO*UZcPXdW^H>J==g`!F4TF;#~>endstream
endobj
% 'R8': class PDFOutlines
8 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 9
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000783 00000 n
0000001052 00000 n
0000001157 00000 n
0000002354 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 5 0 R
/Root 4 0 R
/Size 9 >>
startxref
2405
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (Reportlab Inc \(Documentation Team\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (Example 5 - templates and pageTemplates) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1281 >>
stream
GauHJ9lJcG&A9%PIi.h=>sO:H0?\\kco)7G]1!?#5kdlD[%rEh[3QL=rUh1&[M1*p9fLaZ%9aNZ3:B!?B842A5GVTF!oQEK=+:i*%Rb(TT'\i92dAl%ahQ<Hh/lQ3@W$re5Wi/%^.jp0&j5'ZIF!&P$#S9%]Ds40qppDdG42!=3U(A?U,A=I"u;`E0JMar=91en!c`aD/J+h2iVE1V^'oBGL_?(\J#>`S)>ITjB)"nS;aAM/.[mYVs5l7r^-VBQ=GQ;RVn3b8p(%XQCk!<\DrrtJ(]F_9MZpBKNZ5?qmZ,qm7_R&dhHj"4CMAP5m9,\8$Lmpin@C%,VIY$K",YEuY(%#T+I(?.l?$kRI,5"]_]!"LN'T!ebt>*G/L7]s>DTE%/FGc[*N3DMR;Ic.0p9Q@UtP4n+eO26:b1,59\>fb>_CI/b_cU?73tYSXYNg'K`!lq:BGOs)V$;SLg%^@?gl7V#3!EE/Fc3i7N',!/B%fBF"T?X<.dHq71]W/N:.[l!6+f1R:U&iJgiS`UjrjC!1R5+pf++amSEcl6OrP4KS(5(EqmFa#-2>bKVWj=mIQ4#EE5p3Yks>Oc_5j[A3o=8]$+ZaF&<kPN%IXpVW5Lr8M4%-1+k'MbgnJQr2!8"SQ4kNEf;Q7EL(AUlgA\OB.JPQ3e&.?@R]=4%@)d(6<5MoMEe"#6@9L',NUehBTfU<<$BSd$G<3%P$)R"5fgT3Tus=fZ$jF"`*&65_A'AqN`+ePGTm-H"RS?UI62^uMWCd/8u8d=oc"c`j":609H1Y+0roCjH2`F:-;PgDV8B^:a$6fCpj0Vq;VRAVF:0hL;&UrsNI!.$+e#B:Sl%X6X&lT,lai%EC-q_B2i^q('U?lSp;Ij@+=gC<FuHG\P!Y:PG"V*5F\6VXV1jS-1thLb`s8*jj:1:@BHp9DD]eTG=Q@/>XDskl20t&"GcVeT%aGIB+7&/ea-s_4mfo6jK8a8BM(-IpeL/;IPt8@PbeOCU6*p:BC<l(=HD+3ci;Xd<H>B9qB2?KR)"_kkJoLtK$?L9<jW(8@lSW0"$cU^;8YZ@L[:Q^L*V9+OP+#=m4^R_g<MrqX.O"K\nm='jlF%pW,5)O8+)e>Hhno>YkgjjUl48F_jjU&Cn[dq53RcW7YVm3!lYsa*B8-YM8<YD=Bia4`K^f+rH/WdPlDe;Km`2-@=Xm3'%Gtoso6$(aqjHc=f.+*fUL-X?hEb-C#6_k3/bd:s-jo[]=,N/K93tJDal+0c9?7%-=+V*>(";H"80c!eFRg*Lf=md~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000573 00000 n
0000000752 00000 n
0000001029 00000 n
0000001164 00000 n
0000001482 00000 n
0000001587 00000 n
0000003012 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\375\011\352\002\224\227v=\274\333;F\316\275\372\251) (\375\011\352\002\224\227v=\274\333;F\316\275\372\251)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
3064
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 807 >>
stream
Gb!#[?#SFN'R`L25@!_62PE$PS.DW:&(O]pdaVu8VEJSQL8KQi->'4VI^VVB3cLW,QmPWB-]ZN`k8mt_"?cK'qD_[\>UOK96\&!(EZj_#61PmW-H![;E'UjQ,75$@j`Gq&ds%kgE$4$a]B/+39=Y`?'!%iW<==e%I"7poH((\L#L(Zi69n^dCA86R'X&[jLZFF!rMmV^62Osrr="c;5b_\/"J13^ah`5A<s<2;5kOp5$./C_D_<[#$!n+co;i'XYF@Ga'NiNu2qetheH0/b,Oes[@06jHlCu3k;:S"8hhpq:7-#WeGF\1MV,pn"?GZu9`n5bP35tV*i@b(gE5.]IB"UN&iGFdjemk&kn@b)*$OtU5G*MW\joVTSkIY8V3f-`&19h'u:CJsHmkKa<C#e]K:W%,K.>LF-L9s:7o:hb-i7dTl=T]#mI77)1o6R.oQ&&R)7GK&FMJNEp&6879/^V'>K?2('n34KSTnM^F%tbue]hdD2=Cgki!c'OUlIg\J=gQ#KET#isLE.(*-cu4LY(/Lrd&V6lSfp9U4bG%#PJF&eJRfJpj!)K0-WuHY@a#@RWka[!(T7dE@'sfS10gM8P[a/r`?\3qp<!<#'"]*u41cAo%IZU'i($!qdZ6Dl?n4tW1]!5t/5HH/3M+cXIUn<t3)SHd$XMb(Vi"^=g#H\A\ESLN:&Jj`[Jtb:28Q.Ng!cg?lD0TJB(g<uSJkJ$nTe*]VXgjr_DA0ciL(EEn-uBOim\n(E`(&VZ2"SR`CK-!T-d4ZjB.bPjPT#\a-gUTb#TA-`Ss-)%)]n')8`'T~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000573 00000 n
0000000760 00000 n
0000001037 00000 n
0000001172 00000 n
0000001441 00000 n
0000001546 00000 n
0000002496 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2548
%%EOF

View File

@@ -0,0 +1,96 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 7 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 6 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R4': class PDFCatalog
4 0 obj
% Document Root
<< /Outlines 8 0 R
/PageMode /UseNone
/Pages 6 0 R
/Type /Catalog >>
endobj
% 'R5': class PDFInfo
5 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R6': class PDFPages
6 0 obj
% page tree
<< /Count 1
/Kids [ 3 0 R ]
/Type /Pages >>
endobj
% 'R7': class PDFStream
7 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 204 >>
stream
Garo<4V#=_%#&mu^;HEX!'=oNY*FNk"dBs*!eqHsmQZdor3QQ`jF"8*T:H7rq2!(?"M092?6G,IJ])\!3b"GC*_]#q]J=>pc3L4.1`B%B3_6+kpWZ:#F@!_lr1TjC$^,H$8&_Vh<+Q(deFFJ]23m'APAT#)DABih9ptcW"=ZJsJejsZ2l:K3FIG?rVHIN[+*dl\0,ED,W;~>endstream
endobj
% 'R8': class PDFOutlines
8 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 9
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000783 00000 n
0000001052 00000 n
0000001157 00000 n
0000001503 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 5 0 R
/Root 4 0 R
/Size 9 >>
startxref
1554
%%EOF

View File

@@ -0,0 +1,96 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 7 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 6 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R4': class PDFCatalog
4 0 obj
% Document Root
<< /Outlines 8 0 R
/PageMode /UseNone
/Pages 6 0 R
/Type /Catalog >>
endobj
% 'R5': class PDFInfo
5 0 obj
<< /Author (anonymous)
/CreationDate (D:20121217140300+05'00')
/Creator (ReportLab PDF Library - www.reportlab.com)
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (unspecified)
/Title (untitled) >>
endobj
% 'R6': class PDFPages
6 0 obj
% page tree
<< /Count 1
/Kids [ 3 0 R ]
/Type /Pages >>
endobj
% 'R7': class PDFStream
7 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 186 >>
stream
Garp%3tB+]&-UA:db\DI$HTB"8K.tLW/tq*#q-DnmU*p!nk4Nbfh_<dCe!"\lWe(1/D(s[/1;<RfERQRp4]#**`mBQl?jk$LP1U;QkeC5[7e7IQ)s%Hrf8TH<oVHi=&tYCU4".s,^qrsql";q>KtO3K:lu0F!nU5T']:,([IK.,<'M]J_U;>7lOQ~>endstream
endobj
% 'R8': class PDFOutlines
8 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 9
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000783 00000 n
0000001065 00000 n
0000001170 00000 n
0000001498 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\232w\017\3421\263\325\354R\366\267\025H\343&\012) (\232w\017\3421\263\325\354R\366\267\025H\343&\012)]
/Info 5 0 R
/Root 4 0 R
/Size 9 >>
startxref
1549
%%EOF

View File

@@ -0,0 +1,151 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 5 0 R
/F5 6 0 R
/F6 7 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Courier-BoldOblique
<< /BaseFont /Courier-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'F4': class PDFType1Font
5 0 obj
% Font Symbol
<< /BaseFont /Symbol
/Encoding /SymbolEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'F5': class PDFType1Font
6 0 obj
% Font Times-Roman
<< /BaseFont /Times-Roman
/Encoding /WinAnsiEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'F6': class PDFType1Font
7 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F6
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
8 0 obj
% Page dictionary
<< /Contents 12 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 11 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R9': class PDFCatalog
9 0 obj
% Document Root
<< /Outlines 13 0 R
/PageMode /UseNone
/Pages 11 0 R
/Type /Catalog >>
endobj
% 'R10': class PDFInfo
10 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121219133528+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R11': class PDFPages
11 0 obj
% page tree
<< /Count 1
/Kids [ 8 0 R ]
/Type /Pages >>
endobj
% 'R12': class PDFStream
12 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1219 >>
stream
Gat=j95iiK&:j3Mr#b(b/dt2`+-MMULBTS%JH^ohg-^q.bh-Z@aXbJQoC"c:8=F;QGT5:sWStnV4@rIBn3cTLg&l^TiV&959qcq;apEjo.src^2r>E1mG]J;$0.1A#_W)$.&8+W>#8lJ2aS-k`t9/!0pi?3Y_$F@(h>?l.3gA[Gmjo1%-3X`/7gWab@30M)0tV.PKfY<j-_\u2V7^b4KfRA@#2ouUQ`Z)Le.^R=U^%P6su,$5Tc1,oWl"`/g`AeS8@VPS%TB)#?s[IQ!@L'7'\?KSgPcsU;-i;!7i8%A]]!ApV<T(_qVd;;Jms?Z(HIQbApYpJ6rK#5stDA'9mu6q$C3df]Af(Q1f5sbCA15S#/_r2WYR8Ls+q<`0b>okNgVgaX)!MS*m*'N@+.!$_n;8C="K07l+M]M#:_A?63(LVU;S$WpL/E7q>*XdB`%tbm)`;<;R</*FYiMPj9*$#WAW(W&Mf6[]_WjTYTc<l&IGH3`td#7@i1>*HlQ/>n71Jeb@PY5_=T+6euY-#sE,^=_Tan(6*RiW-Wr,oOnHrfQRdHcajYQ:HRBJ]ATJgCJ,`h).;er*=c9GjN!F>/TEY)/>nhuR(f31^RSeV>;\nZd=&4ke'DE]]=m6b?`NdBj()K:njbj)`H;\njJ=f\3ca(qo"jZ-q1fF(N.]=2qq.?n8..b`Vt@<506#S6(/aPcR@&-G<DTHnbaACt__Cg?9-Ggq:X71rF.0&Pe+lh-%Z0;6J!?oi.,Krkfca.pm,0dhLGS4(dg^95?J*)ulV<'a@2qPg1rj%keQ@%_Yd3YNI(Pg@#b8L*l2?c11\!*eB$t'6hSkl_/mrT&OqJpZ_9[aJ(8$jTTK/cl5iXAS?tpP^E"JBjQtE<$i[%_1B3rL=:Tj<mj<dh0O`-JUH(&1J&Su*B\f-Dfq+/8d)"SeE^T-_&7Yc&!d+[12\lAMYI:Z@,_(032&QA_e2:988s-hg>Q&'K)&s:O-ddZS./JDNKaYjX=FP-qPBbm<fREQsIRLK=-M9>/rJ2"3KFuI3K6qY5JjI+BM8:e"@aHQ5aTD-o7/.l=iEX?e)iiS7Lbr\SR4.kZGT;UjrpPNssn'oZ^#>e3lN^u<q3[45"Es2(;Es2(;G6IXCG6IYn87FY&hG0XjfS<4aLX&kk3=eT])S?lUc4k!ElDsS%Er*V)9B1LIKibBkRco@*>AM85G5]T'S&=7J?iK`+M?~>endstream
endobj
% 'R13': class PDFOutlines
13 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 14
0000000000 65535 f
0000000113 00000 n
0000000269 00000 n
0000000434 00000 n
0000000605 00000 n
0000000790 00000 n
0000000948 00000 n
0000001117 00000 n
0000001296 00000 n
0000001575 00000 n
0000001712 00000 n
0000001983 00000 n
0000002090 00000 n
0000003454 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\344l\301\320j\307\346\376\210=\215\256\246l\2546) (\344l\301\320j\307\346\376\210=\215\256\246l\2546)]
/Info 10 0 R
/Root 9 0 R
/Size 14 >>
startxref
3506
%%EOF

View File

@@ -0,0 +1,129 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 5 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'F4': class PDFType1Font
5 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 10 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 9 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R7': class PDFCatalog
7 0 obj
% Document Root
<< /Outlines 11 0 R
/PageMode /UseNone
/Pages 9 0 R
/Type /Catalog >>
endobj
% 'R8': class PDFInfo
8 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R9': class PDFPages
9 0 obj
% page tree
<< /Count 1
/Kids [ 6 0 R ]
/Type /Pages >>
endobj
% 'R10': class PDFStream
10 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 622 >>
stream
Gat%ac#28i%"RdInd[d*`M/0aI]k>ldk1h%!a2!$)k:G5HJ%7RZ4kOkXY,;.gQ;'Tr$6k`d-8F8riuWNBOJA;5_<SUBU")1)a$"Lg"UoJgthKoGQMeMK"=h8N?3SnB.3ll5ngt*!=:I@J4)Df%4W9_At)l3Hht)*rGFQE)A_g_BFi,sXS8p&4m_'%n8f-/lgO6'oEC[jd+lNJ%-P9pVt*/TcEci#]:.9m;b0jJNTsj@)B?'?kG1*fp):bL<n8tB,">!l%ZVL\hWOP]HEnlL$8+cQ"3X.a[,-hq@H\,tr"6UEAMlr4_m9k.X<qu1Hh;j1L4]rWh'j-hikI>@Fl)cPMLeI1b<^j*Z&MMrV:]+n*'51`h;bAL6%@FOS\83d)#LL/#ceLkof5[$WXp-$)bYu[W$nt5b2f;=AP//p'S8(me]PrKYJ]=AbmrSC7u<.e+*Kp/<8ph<+<dmS8W^4Wejtld+Xh;op]lBPV\5U9'G+=h#O&;<4qrTr]:d)>icRPD;i+9V8r0NE'#`.p3YF9A&/7)rqu]69;i+9W$AbaE",H'"2%m:*$VDBb?5JhcQ2$T:KX_@L.!hl)h5k:fJu^C:*S(,7V.c^ElF4s/'BZX9"lZKl~>endstream
endobj
% 'R11': class PDFOutlines
11 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 12
0000000000 65535 f
0000000113 00000 n
0000000245 00000 n
0000000410 00000 n
0000000585 00000 n
0000000774 00000 n
0000000943 00000 n
0000001221 00000 n
0000001356 00000 n
0000001625 00000 n
0000001731 00000 n
0000002497 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 8 0 R
/Root 7 0 R
/Size 12 >>
startxref
2549
%%EOF

View File

@@ -0,0 +1,140 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 5 0 R
/F5 6 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'F4': class PDFType1Font
5 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'F5': class PDFType1Font
6 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
7 0 obj
% Page dictionary
<< /Contents 11 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 10 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R8': class PDFCatalog
8 0 obj
% Document Root
<< /Outlines 12 0 R
/PageMode /UseNone
/Pages 10 0 R
/Type /Catalog >>
endobj
% 'R9': class PDFInfo
9 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130304200123+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R10': class PDFPages
10 0 obj
% page tree
<< /Count 1
/Kids [ 7 0 R ]
/Type /Pages >>
endobj
% 'R11': class PDFStream
11 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 932 >>
stream
Gat=*9i'M/&A:TVIi*/4<S6[)pDu<@P#//X/_&dE97VPc:+.29rV9a&mIf1nA#2LIna(V_p\&*?&?,Ins1DJ:Hq[p'6U1jt*M=MVOuZ4"iS\u@\F<9F(n-!k`fYY5qWQ-$E8WKZ8F#DSQ]M6:/0SM+3['=@gl3Yi0UhuHY(*8u5_L@Q+#^0$=Di"bR6KDEeuR%74D`qmH(D*E%j?4Oj9$C@r(Ph`2JL6hP$E<]ohfK2c'39K`))I8;U[juEBrf%J<g*Y>DPZbD%X;:`(9/fNY\DOnU*Aj(5Igqe]Dh%mJGnIPh\sJ)%iC]AqD'B6Uio=Fpm]QnIE-e<Y3Lr^*WRFr9X#-`KQ_B2%p=a0gmF`)H5!o>UX'\P][n)Z.#tq$XrAr:TH;Uek+k+jX+3c$F_$<B8.YY)YLgV@N(80N2Jod7B<Y@3Z-D$3Jdmd@'uM3cVI@"e'9UJ%\&'Z38Ag8'qgl\(mo`ben@&*qg*+,[bkl/Lu.G5k35"_\pLtW6b&7j?e7"Aa.c5->E7KMN+\^VY`:;<I61H>&nIEL4akgn30ntVC3\<d%mF1&qL$@I%ELlHl;K;Ca^)\)=mj`'DiHF'j)I%$>.R%Xd/8B=Q3#itK8n'uD39$Jr<tngplV=b4A>'\g;6A$SQWLr"JqDA<#H&lk3`4V'dH\6<@Fa8aqCJl=?rRWq3d1<+]b;l?0lcZN%/<<,uq3o,#j@5W5-Pf,.oaF!j/O#9X5X<^,/^'F+t#TFd-*@VPuE*#IA!-@@;J?\giCjhB<onC=I,!%&[2b/$2Z\Cc2(EkeUB0_t33K[s%a30C'jmNW3XZra*FsdgPra5FKUp1qHGSDLS1AX]Ts+[V98Us0i>:c?j),q3J6dK9A)$*ITB[qbgR4DFX%\R25OZf5YqrFe:Uqh09)eB"g"]ofFhY!5lW;TC?,t~>endstream
endobj
% 'R12': class PDFOutlines
12 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 13
0000000000 65535 f
0000000113 00000 n
0000000257 00000 n
0000000422 00000 n
0000000597 00000 n
0000000786 00000 n
0000000957 00000 n
0000001136 00000 n
0000001415 00000 n
0000001551 00000 n
0000001821 00000 n
0000001928 00000 n
0000003004 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\275\375"\226\004\012\247\311\024I9\2513L\031\365) (\275\375"\226\004\012\247\311\024I9\2513L\031\365)]
/Info 9 0 R
/Root 8 0 R
/Size 13 >>
startxref
3056
%%EOF

View File

@@ -0,0 +1,134 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-BoldOblique
<< /BaseFont /Helvetica-BoldOblique
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'FormXob.a9475650de663a97fd49920ba129d955': class PDFImageXObject
5 0 obj
<< /BitsPerComponent 8
/ColorSpace /DeviceRGB
/Filter [ /ASCII85Decode
/FlateDecode ]
/Height 86
/Length 3441
/Subtype /Image
/Type /XObject
/Width 130 >>
stream
Gb"/kc\l$s&BFP1_2Dt)$d:1-71_WG5t""8d$&bf&I]R7/-[n]Ci0j46p]$_"<iAJ+AkPK+^dQ3d#.o2*fP=T(/u'4+Zm=%BD/CfZ`;oPEV<+N41dqfbeEiJFoCU*lDj9][C$6dYQlI_F*$sEYC8T\iGp73lgK<Pc&r,^]Wlq7SO]%?&*dkB7;8pc#'@%.gKhGaJ_,AMooIO[aU7Kbr(V1>a0tHAPLlrJ9CjJP]Q3:qi]L#Fa-T"Ac's+Mn;AA&B6[X-o?:8=&#D:N"#.Sd_Jd&9nAMZ$Rc?Cq]/Y@kGCugmI;S1MEQ=hE#?fu]AM8aaT1Fe#Q@"WD]Ve6J*7aNZ3-FN9]5r]/8)?iJrSUU\&9qs,l-cZ%,@Ga:aj1tI*.E%7]"0q@K7*%X`Af\njiWkC+51"lqO*V0*PI'PBJf1OT02\,Erh63ZEf)S^]!jfHpmVVo1#\nh"B/Yc3VT5AJc=Ij'4BjV:+2kk<HNQmc.&9l_BFJLuek3.Ad))F6:]Za5,D#N8Y=/5er+re/W@^$.6s9Z2?lR&Yg&ub=e2am1b$EC%]6D*Maj'NO^7!+3n3&S;^A.9dq9H6VhO::=>67ig(ZqPk)\b0r:qcXj)4V):BjW1aG9sr[">($q&@&2IVjUXKB`Q6S_#QPVQ<*!=7!gZ)uuaUP>9uEFQc49!Pn$gdSY2"9^dV)^&'O6ZPLEmUUKj=0GrtOFg]EA_)rZ&;rVG*uIo`F7LH(Ktl%Gc6>hI=B"D!/K;VVAbkh_dMaT?"DMF),S/hm>a3)l<UR%IC1E'f?>7K"=C+Ak"]sJfAU=.%EUKQU+N.i;Q//H.6[FEoi_BsN%kVaghJClIbg7+J<T=!_VUr+X)=m/T+^*S<k:Te:9;Ar'52'u/<95_^d?#Cm(3a^).k<+u>B.Che#fJj1ZLr,IdH\qC])p?cEfgQim'seq:@jhddafm@3jBfh:gMK;$:u_Tu`Ef5+:,^BULR&2*)B/@nCjXR21K+<SWuHTFlLt'<kA]iR!TA,d'<J@\QP+[-ZLpcb;?E/.b*;EG)_(p'X^[cm)$98at<>c_NWo*aNDp9X1"d!$,2'E=2JJn8C4$[G>uV@nc,FbWK.kk;5bN[lL.ac+H'4?u]gpgIb!9C[Nt'diDUboZDk3Q6bqekZfLKir0p'T.OkEb0"GQhe^7P5tiPEKg9`>*6*8=eoGBkm.`S8P!!VW:p8uuM*7C(XQ669?@q5$Q4JD5R:NNg&#\*=Lcs_Ys-4ti8M=plM2=X[jDgXP`d5!5=A/'/D7IZWLoh%R/5#uJD-R#!Ct4c/.JK\;hPKdHbZ*&omX+;2N/bA=BSmAO_!:.d7kKp`k(#fe%"%)Bc>TQpKJ^XW)gN/-g9n9KpU)/\f1$QU>slYX%2rG"CReW\5cHb`#!.+i12ka"f!N[]nrqE:aVl<oHK4,j"jG%?3Cb=u&;9tiK2F>=hB+OEDSh8`2^pdo%QR65*#mk%-#X[",Ofs=\_!N!>3!HV)troQI\?^9^#=7,?QpZadoGqfh>,"Q3`/l#;<4!6LL(3mqm;>D2;<UEjnYmQi$QH[bRr<&=3GIsCCj=<_V0PcDkU$"9l&JPCY+=oLba697H/1ZR`NfcF5&A.joeb.C8.W:i1(h_i6bd_aHnq6=W6t'pT(*AptT.+A40#_3BB$q2USI,_t)1079S[5@U[D21aYDqc_RZt6(0)FVb>-DSjMNd2a'#ggd(q3&M5_iUbYsb]ja""]dcA\fuB?iiO&!^PLOi35WqkHR'-KR*aWf^n<f,a/dt28BJ.s-PNP4Q9Hm,H`\H<)h5FLD=?mQ@m@J]hlc9gB.u[)TD,CYOcAYMU/3XRdi)LC-/OnZ`!hnh-%<)cui@I6Ok#?>:jJn&Tb3('.eah]JEM[&j5^)dgEdO)BF`>l**+9SmWp06Tn\hjj8O#guco7C$_cFSN8udG_'JXgj(:e9P*nnOK[6iK?kn>.LPi?]flJeri[+^]1DMBV`UbNOnV<q8>1U'HA3WA`_,Z[[YiY\F\l<kE+8Ck)sKqZmfr]6Z\LlFkKB0G5u2n99UGV8r#ViL])`/I_o3?7-POuCd71kl4tc#&87YZ#7&_njIh5>."XWK>CNV82<:lUW2MZ6]R1"(Qr"9LlJ0]N3]b>>DbL9h[9,de1[W?HDg'Ht=lel/IrgDER(cMeqYC#aZQTG"aM>=r:+og:N9?@rW_D09;hA-aAd$\gEY138bbi'P@0Q6YOP7nqSA49.ffNT8-`cPF!35;&.X&;Js0qoSkiQG5a9P8WsU9K*A$nP[U&kMU"o>YqIs9[^M%D9[uVM0$DR/kl(\cZXB55OdZGEad#;2dKHA#SogbAU\HC\3:Ss4hN7P.K,`5-`og&N[dDq)aI.f@Q[uXZq(#J"84k7RM9GI6Eu=ob5#K["qZi86D#mOt?F/UJLHEq@EFtnV[YYJGC0N2k#UGs_O)`e)0)d_`U4<:#BZoVfh*cco3&^>XC>$l0:NDf3PVCPLkT+K[Gj[;*Mi.`B:<?a;%!=r>GfhIC(l@kjVkHl1:7`XP[)fE9FEV_$!\TETGUITa(dFf,"t3A+]Y"B=CIq/8;/4FH0h2\_-'@F`\hoa*j-]Y^3`L_r8h1=p=Yqo:=<sJP;IO&iQ+08d-CNG$>/;_DBHiBuE=[u4d*$B&Ie"+Raq&W57a\Ba#YK`!"66+NaMM5$&r>Bgbs;^cVM_sYUWoa3HQEjJX@)NI.r?q0!VETqhE@j3RfpT"pBK,="rZ_6UM,J9AsiZ&.PVuI"=kH,W`(^\H^L/0Pl;f($GEt/HKdKa-Z[#mb4Qck:NdTka@p4=AMKW!n2kO%iX4a+%PsVJqh'Mg+P*jW\U+Mhj#iUt8&bn)#YWO)\+6#NT0,TqCkQIFZS_tQfq9j]iEWVSG/#.HH;1Ks+:^BgHYq798DlD2M\)Jj:bFB^hgC\o;H:%"`HcWs\CTB1n`h!$E@9Mgk%VV"54r_tmMGA@":V56%)>K12KnD(SlW7A\OSmlGX,:m0V8WqK![YP?b0[4SD:rC-*s.&GJA78Y!'=J*A3?!5Hnp!m]cU73i^-fm[`,^NS554-[-=Z5\`Bk;o;Z;nQGDC::$=t0T\E-1Y=<p'OND5SD5QO=RT)Xadnf/*:3%Q::607\6%\h>kP3K%I"HS5IogSDcLLBO3hleVhS@CWc(mO8<;,DEi0!5GO>7RPopn9ZYXJ#O"H@C(tsj/.PI+-Y"pJ@=gj.uGFR3Z+[*^=BVXt$Cc*W1/+-B5+alZI1hBZo-/BldS`68Ql\;k-:(?g%7u7$pCe%rKe94K)B.N>\f_[4(&VtcnFh/?.eBk5GO<,P\GA;#]]3$>VTQBYBGrpH')5Y:[OJ_i^9Kd5i5KbtHR>X\kU)%s5S\FmonqYG2qrh)*9t?/cqb!YMa/8Ub@.B+9K".)ZAlu_*NdqGMqYu*b<qL`8"8iHr`IR=~>endstream
endobj
% 'Page1': class PDFPage
6 0 obj
% Page dictionary
<< /Contents 10 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 9 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ]
/XObject << /FormXob.a9475650de663a97fd49920ba129d955 5 0 R >> >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R7': class PDFCatalog
7 0 obj
% Document Root
<< /Outlines 11 0 R
/PageMode /UseNone
/Pages 9 0 R
/Type /Catalog >>
endobj
% 'R8': class PDFInfo
8 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130304200123+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R9': class PDFPages
9 0 obj
% page tree
<< /Count 1
/Kids [ 6 0 R ]
/Type /Pages >>
endobj
% 'R10': class PDFStream
10 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 879 >>
stream
Gb!;c9i'M/&A:TVJ!a`'`+EZU_qlmn<2qnln:@WmP7SYQ1o-j1^\cutS]H?`U6685hRq[tR2s%fp)n>O6[ud"!R<Hf?6C@V[K)Oc6?W[ufm*.)4M()bX=Y':7&JPVUYMX!j`k<[^h-M\?J5hp0Qe<I\a:Xt,IF#d$CI@`aih`tgj)#9<LGN':QTK%Gg)(T[9:@]"1rrhSj.XSliFC*3:30HaKG@`6c$,Bb(mGjX#-KbG*XG3N'oY<]<c=TKh;Y^.c;#KL@#rr-e8K#.8U'Zgn_Tr7iR:GfML:h]])DVl'pK?d9GG"O`,H-*dZLdg=$E1a?<n/_j6[.9L'rC<+LlUP$uf.RWmf>oV1'*\(-H!7OC_X?Hfem\OdQj1ktcV7l#cq$GKR?M/mr"Bt.^i>^m]R"?bFH6Y%JG#OCS&!2`&@K6Rjppt,PXl/<:&3:nF$;F<YMfbuS-`kSE,k[hc6("TZ%LtElJs)")VRB<O%T9o/gmROB4c`>lMPSV)[PU4*4XP3'AZ<l5J%joNOh/W6VS_-JUN&:ApLm`iMm[&r6/R+hjJqr5Z4*W35G&;.7_NsL<$005naaZn7okJd0Rk`1S@6^?g"A&.C;UYpTg"4Z&X31gf^lLbKmA<*J+:sqp?+st%j!!)I2-"cu*lo\h*V)J6.$e'f%t-1>$]f&?/%PMd2PBn[V@q7%\9n^W%7@9H-OQgmnd3B;d`[o1ZM.)KC;p48K_.EZi91o"SntFZ1psG`BE"h@]JDjU5^`,]_KU3L#lJ(&.bgJ<hOs$@KFY-V/W(LLi?l@Q#5LI$];rerO0S$/!piAcm(0P(]28[B7P)>meA/6?$EtJWX5b8NCk9/E]=iFJ&3_D:^Gg+&%?*f,!KukO8,~>endstream
endobj
% 'R11': class PDFOutlines
11 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 12
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000573 00000 n
0000000803 00000 n
0000004479 00000 n
0000004822 00000 n
0000004957 00000 n
0000005226 00000 n
0000005332 00000 n
0000006355 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\275\375"\226\004\012\247\311\024I9\2513L\031\365) (\275\375"\226\004\012\247\311\024I9\2513L\031\365)]
/Info 8 0 R
/Root 7 0 R
/Size 12 >>
startxref
6407
%%EOF

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,107 @@
%PDF-1.3
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 8 0 R
/MediaBox [ 0
0
595.2756
822.0472 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 180
/Trans << >>
/Type /Page >>
endobj
% 'R5': class PDFCatalog
5 0 obj
% Document Root
<< /Outlines 9 0 R
/PageMode /UseNone
/Pages 7 0 R
/Type /Catalog >>
endobj
% 'R6': class PDFInfo
6 0 obj
<< /Author (Stephan Richter)
/CreationDate (D:20130304205054+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (Test Template Document) >>
endobj
% 'R7': class PDFPages
7 0 obj
% page tree
<< /Count 1
/Kids [ 4 0 R ]
/Type /Pages >>
endobj
% 'R8': class PDFStream
8 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 207 >>
stream
Gaqcp9a\a&%#+EXF,/q]$B@jCVk'r_\EHBjGQ;RaBeB&X$\tDk8jX:H?h+grR=]I-%)>_Z3"q)k*QT*'BlF]e5&b=#`=NWV@H%8_V-t;[JZT7&Qs/:PqJ&Ijen(XLBPh$G*Z7L,ZoIM)CJ#O_"W=UePAdDu?gVHMHD.jUI6V0KGpeDL:iRSTr].I=o>N'"ZHL!fF$coLN?0o.~>endstream
endobj
% 'R9': class PDFOutlines
9 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 10
0000000000 65535 f
0000000113 00000 n
0000000221 00000 n
0000000386 00000 n
0000000559 00000 n
0000000838 00000 n
0000000972 00000 n
0000001252 00000 n
0000001357 00000 n
0000001706 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(1\301\(\211\016s\276^\256\005jv\035\353\227i) (1\301\(\211\016s\276^\256\005jv\035\353\227i)]
/Info 6 0 R
/Root 5 0 R
/Size 10 >>
startxref
1757
%%EOF

View File

@@ -0,0 +1,127 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
3 0 obj
% Page dictionary
<< /Contents 8 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Page2': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R5': class PDFCatalog
5 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 7 0 R
/Type /Catalog >>
endobj
% 'R6': class PDFInfo
6 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130305225909+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R7': class PDFPages
7 0 obj
% page tree
<< /Count 2
/Kids [ 3 0 R
4 0 R ]
/Type /Pages >>
endobj
% 'R8': class PDFStream
8 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 545 >>
stream
Gatn#h+lua&;BR'oc9(&lEXD.Vb,TA>pPMTY>>C;?GOK+n_uSUG!PrufIkOcXf,E6abe"^TC7`Z-4&u]IP)DO9od%3!YQZ+"GqaJq(7'Yh9L)NA(SeKH5m(pajLTmE#bZ&Z"XU<=@6HYV@fh]WJ#TG'AUuu6a_gWhFp32aD4-hQ8WIoUHYguis_e;\Z&iVn-AO!a=k6h]pIR(9SZc4V;oJqmrF,<*/VSJ>o<s>OjK/d7.6-ooDkC_md23I7)&fZAfZqaR)DjR1a6_d%h+N3VH_HZI5[Uk8:4-E2%2&oFLtf/NNimY@4A1H%@^bj3+q*bi2Vj;`LG6YLL@kL<.3_8r.W;DZ!7n="IT`X,(4E/"Ij"ps5R`tqf'1@>F'G-@Fnr6:a&,iZg]0GGS!c?IjcdQ4M@*]:d%&9PAG>qIO-ffJ#'2'crJmok!#t=8ro1"gMU'(Sh%XRk,9"WM%khCNmo*Z:UdH26PuuNd7$gPGGmr#Wl8VX'KJVC:sSQhhO:oB_6n\G5&[+BK%]>+rj1-\gF#G!o*.F/8#l~>endstream
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 262 >>
stream
GasbS_2a+$'LhaAr52g7R:'7($9Lt(2%,EB!CeQ3Jk/Q4rHUN]bfj\IVTF0JaZW]ld#n6t)IR&/gIXp>F,!BJ"QgA%'*aLOTKi7l',<02W`(If.b7c9efZI=r-@p_h3RP1h-OBAI9p*a6h=md%-drWmdhAYg,bhW7:?T!HYImc,09uM!]/r^"3:D_eFPLlokHe0$j[(6nqWoh)P+Bsi%f&K&t,bCTR.QH8'WFqO)AnOL5rq6C\MlKAb-ue@Lrb$P4MUX~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000209 00000 n
0000000372 00000 n
0000000649 00000 n
0000000926 00000 n
0000001061 00000 n
0000001330 00000 n
0000001443 00000 n
0000002128 00000 n
0000002533 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\266\223\013\225\230\266Y\231\206\3278`\331\265G&) (\266\223\013\225\230\266Y\231\206\3278`\331\265G&)]
/Info 6 0 R
/Root 5 0 R
/Size 11 >>
startxref
2585
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font ZapfDingbats
<< /BaseFont /ZapfDingbats
/Encoding /StandardEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 2097 >>
stream
GatV"lZ3b/'ZIhb.f[E]_LSrVgG;"KX_"IoiX8UoIGt$)a9.Ml#XQG]hsTk!FE]KadsX!\T_O[kc^qbmbh<!GL+:aPU#j$"%]emK[+aB1MKC`3YGdjGeaumbF1SpPCib5TX_B/bf:FI-Bk!?Jh;hJ,Q@e.Lc&L#'U3#L;fX^:)gqm(WKkG0J%9_l*T20[3XaBZ;q_oQ:*Sd9Z4Ki@$o:t,Vs7k!udI-VZjm)][q=4C!akh#[GOOU5218_(Y>eTL3\3&C=oLRLFHOm-WiauuU6TkERIj1sjgJp7XU_t79&GUH4)p/f[Vii>$nje@eUBi,9">4TNmt%b3\A&Bo'lW=ddFMY4'B:E>IDbkF;.aXh=aUWk'rR"W^@nH:jRc8Xs2HmLqW/?OT?nIa:/IWNUJLP<Q$4'0aV2-(XdPTc?Le4m4Qac7$EZKKs-JpBZ#kcTG5hArYhcjI)m^`I:Pk^[c@XhOL5D(N6R-:_Dar=XM^@ZTG3R5.\b*Vlt)OGLJQeJ)3Vk&lV.^P)rH<Qa(M.oiLAkZ2L`("9H1Q^9&'!)9;D&,UN!Y!18YM-Y&Pl/1j+;a1rC%50r&]2H"9S^(Zc.'R!%4l1/5K)P46W8P]bWB)jEZe]o&11SKN8pA3^J@Ee?]og?\`)C%A*aKPunZ=o8&cnPVcU_ekSjSKtj/1854>Ee@7\6fFoaQVJ/g7YWa.95[Q5=];hAnthP'gET):@7tK7$JE,l11It>Jo(3-70?H?O;el8C9PK+P:rCNjAc57>T@)$O-_%oeR'OJh_[naI"n@-D:jsiPX7:B^ID=j%RNYDn0s6L1gs$p:^X1MJ";sSb9Z'93JrR@@7tK7$E<qQ@_QEJCh,dGhhm<r,j5$)`8k,L$&;;R0I/Z.c?LdIlbY6;Dj_jj5"!_RD:jsiPX7:ephTFPPD$iO-lTAt>B5?o80*`+-JpRM3.-a\+a)G#)jE[heIgHp>:.GJ)&Z8)%CnbJTF9piP:r?&)gV!pp71@[:'jGJ2W$2cGNm5kaG=\8ENM\"1t,eUD<Wb'leWTV)*I9-k=\V>E:duT%24fD#@lX_*L9rG;5+)lOSOo>M;B=G!VuuGN'CMK9Qeg4]JS>BD0I`K"4K0c8P/]naQqH2B.5bfKoEgSc*pR`IOHMCg]/V#D8)3cm$a0?EW_]1[KY;!L"BmHQ&ign[4T2&.(g]LX5!\%X)5S8P45?5XE"E1XP/%X-/jlKXE"E)XP/%N"kcCDWlbcYU1t'X/IF_.&QM")j&B6UCJjk`PbrI'(oH#7b9Z&E;O5H7@$GEt/X(j[8Pprr!)]c@[nMn>P+kon!2ELtTPIF"\I>>*E>YP+!aU`$gJX9Y%:GE8o.?/Z?V"$D2h4c*bI:.XIOR^bg]0aA0&JEMG"7Ef\H.Xe?/b,`KjVqu.NaFCW[lH(.(h'!WS@JCW@m'`8N<!0<,M]2<0qNk,lCi';Rlga;I."JK'XF*9'$728p(<K(5:Yg:b!QB;5u.n[4(rJMGgtcN)ErqAWlP0.8&\+0M;$6Q:\r?;O#<55a:R*/JDYZ85Uiq5Z+Q-QV>oRAg3PPAfQN(^@:6kT_hSW;Y`G4;17[Ge*DGq@T5OP@T6]JQ_=4YaAD[p"AjO*95.&H0/A&=X4<W-E?.D`\rU^B-I_dZM,Moc@&SpKGnd@)ARLLY_dL`a?u>[-f*d3gD?,;HO+ObE;R".M@'E*--#:+jZGm>=Z:50gCO8sd`XQ=_7LE^Bq_GV"a'lDG$AE7#;Rj^U@(8Z5V/$U<FH%6TFH$ulf,dNR)E.Zd)C^WK4dPXrD?0:9m^"#AfRB(d2EhTQ2Gtr3HQjbPg]/[;Uenufr1/uY,;sE>,;pa1YoQCR)`Ia7)\E;-IZm)VD?*$^,*]ArPu0G'%T>80'XKrd@Q&*(@l>NqZOME#lGB'N)o.u'#R,(kV4`eeJ=ql-,AeeQ'1UEi%:IURKVGmk1=X=a@FRc"ZF8YeXGn17XGmL>D1>)b)`N:U)ekPFr@+R[g]4-eUbUZu;Ms5=!K,W&K=pS)&T6XX-uC1<ijQUU\;eh0\;`>dg\qfU2Em2m2UW^eqc='YpcJ]780c(?58eH&1ELO?[CPfl5m=Oj~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000573 00000 n
0000000743 00000 n
0000001020 00000 n
0000001155 00000 n
0000001424 00000 n
0000001529 00000 n
0000003770 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
3822
%%EOF

View File

@@ -0,0 +1,107 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 8 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R5': class PDFCatalog
5 0 obj
% Document Root
<< /Outlines 9 0 R
/PageMode /UseNone
/Pages 7 0 R
/Type /Catalog >>
endobj
% 'R6': class PDFInfo
6 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R7': class PDFPages
7 0 obj
% page tree
<< /Count 1
/Kids [ 4 0 R ]
/Type /Pages >>
endobj
% 'R8': class PDFStream
8 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 350 >>
stream
GatUl_+oY;'LhaAr57>FRL.EZ0ZN3"]$c;;d<1-Je,Voc63#fMc57qS@M7.eMt^ORmjUV5(\;:e!BYk53sN\J.^1JL+RX5"_VdQcfRB,na(^iP3OYHskpB'j9g=a7J[#[eMd\h\DBYRko#+rsGL4n.'.$Y!DTs(4V(UnjH@nYo/`qmt)FC9;,r2Kq.9^4q<7*s*Y&sd8#'#Kb+46@Ufu@P/e/&f@g+N5shkpVJ/cUUAM_Y_c=dBS=(fXj4=9tH;I.C@pQ8\`p\SQTp(k")"NZUF5.&.VTg*(2d*mrGl6*#=C3R]>0S7V:D_iJA^q`a`kVFJli]6,;X6M:*gnS\tl_&"miOcf~>endstream
endobj
% 'R9': class PDFOutlines
9 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 10
0000000000 65535 f
0000000113 00000 n
0000000221 00000 n
0000000386 00000 n
0000000559 00000 n
0000000836 00000 n
0000000970 00000 n
0000001239 00000 n
0000001344 00000 n
0000001836 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 6 0 R
/Root 5 0 R
/Size 10 >>
startxref
1887
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 221 >>
stream
GarW2h$Sa!&;BQVhr.gX60_.,"q_Oq?$$b($S6"$,`tC=hmiYR&[Uij%VO)_#a#n5qcj5-6'r7?+W!rp`/l5;id23nUL'EDOuQIPS*C3;-7Z3ANIo-4od`%i>DFnB:tg4bY*ou821]"@m&dS>m^\)<@5dSn7Vmoe;;^27VO2dW[p1;)Icra0k_?TsS=c;]dMrU`(QAc.Q,R@rdbIV2I.%M_L-XM~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000569 00000 n
0000000742 00000 n
0000001019 00000 n
0000001154 00000 n
0000001423 00000 n
0000001528 00000 n
0000001892 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
1944
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Times-Roman
<< /BaseFont /Times-Roman
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (anonymous)
/CreationDate (D:20121217140300+05'00')
/Creator (ReportLab PDF Library - www.reportlab.com)
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (unspecified)
/Title (untitled) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1089 >>
stream
Gb!;d95i<6&AG?Ts'^paW@$Y,ltad36<o&S+V%L$74X[]<@,Sua5][YDA+DC-4?d>g2#mK^8X9UbS[$o5Nk>8G5rEuGju[Q3GcD28g\!<%UO#'.mLiN[@a[^[jEelE$:XJ,h1Dimbld;eK-?X?1%+>jj!5]3Gc..3V/o9lW""[Pb9#[HKU&JI<MAmU7M@d]O%@fn8#_;4S6O\#EiIYc"qa#!O]\=hV1OI,kNfYa_mu=Kc%5+l$5&:9E/s</CTb$<<JTU;9iD_-1#R.ibZ;S5D`8Gc`)J23>3]J9q3!/0lp4C(at*mRQRG(D"R&K0NPtgKi[4WY<Z_$l6.sA3/o+W40+o#X<ZiWck_n/>!\r:3kIro*VOp=7,GIaoPN>+f[s$:cM`k7hr/'O@PluQE_W8I$WJl(?!@ZTaoj8<MSY`OYj7O*C#(mre,lKjHG3.,na,E;guFGkm\dr5a'n9:5IWL+*6sO.^FueYDf5%;^B*)%pCk0/&I+R\Je&`M67m,0(pq04jfOV?X]R'KKs"T6G^N%`Zq+cU;0.e?9ehm<$c5eG%&QiH0X^"MpVui5f+s"VU5-^+JOaPGq-a[OVEmA_h;61TmB!3uSbH,ef+5JLUUGODl:,"=`T-YEV69FTd6Epp[fbp3_.HY*9ZT[DH!W\Gk[O+_6b`0d^`@)krhl3ZaeQBb5!nKUlo7kJ=<#&!)B)>#;`b0/l[YmV$GLp4:;M.fbf4/'@4&j>\"#ap67ObcDE3?s9L]6D/S@=JN2JQ*r<XHAG43:E:4THCl#]_q<G8Tt>7M*]6kZR84,/N2\3T+VBfZj0'+pSVD>K+CQ!HVF<.Rcq=f]Q);7c,IC-@2`S4>Jifqfe2-8;]eVuN#[p)hA&+&;1n]XN#gQ`%!gZhe43X7P_HF'$JZ;GA>iZC%Je3/nsSHC!RT1j7q1>)L8IfQ"csp@6>lpt20[9bh^V]#*]'.IsrQ+ebQUY+C"b$]isDh;.]K'D]8CQqG_Z7pdU*-]h2Se5!C==/u)^/30H;:"qM"3$NF)7.l*42f8.ancKVEEg*?\#>3dkbN@=+9UhhB<9-M5>tf]hOULL*+#[seYl~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000573 00000 n
0000000740 00000 n
0000001017 00000 n
0000001152 00000 n
0000001434 00000 n
0000001539 00000 n
0000002772 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\232w\017\3421\263\325\354R\366\267\025H\343&\012) (\232w\017\3421\263\325\354R\366\267\025H\343&\012)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2824
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Times-Roman
<< /BaseFont /Times-Roman
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (anonymous)
/CreationDate (D:20121217140300+05'00')
/Creator (ReportLab PDF Library - www.reportlab.com)
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (unspecified)
/Title (untitled) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 2040 >>
stream
Gb!;e9<[,-']+m-s1q@,FH)@AkI)rb+Z>&-+VkfW<Y\!@<@,Sua6t"oS]$OEEri[m-Lp/Ehg'WAC]e,6+,%sIc@ihmOfuJ"!h>d0,9Wp-VshaZVrJru^^6t/K;BRd!""=jENksHpNJZ^0;aNVjQ5,do'4-Ia3Wi>]CVpRalt$1]a0@B*Y6p8KHQEak<Tsal";sOCZ:iiYeXBYJc'XQY[I=F[kgP`_>j(Gd55#i^@t.T<A%hJ4[[n@.^On0b.n5<-R^SPnimBr_Hk<8K&B+\1Z=KolOUP';M1@Xn+2oSe6OE/*t*geE/,N?X=oTh2bOWo^#hV43P.\)&dOG"Ftl@:(5H2YTjm8]>E')crHJV[HHB71s0:6g?TJBl6&c2>4"+/HQSE>TG&58q),m(%+UDT76qZaj(B]MCpgSr<[O2-/UA@m6]=`^Agc^+^I&,7s+VDDXCdZ.-,Yr10/OO+)V-;1CW'sCMJQ[_Qb_fO3_9eR=aO%br11HPTbUj^lYj4DN/>A&?2)^,r>D?0=.'#K\j"WX2-CXlcA"[M$AhX6tBi;h8A6;)or=JQqDu+#^nki;+KgbQR[Ub1=^*FS_U%O!ADLMOf?Wrre?SG'?6p?Y<;p$*i"i#m(4Us(ik1R`0;IUAdQ&;#"oF\7HLB7.LOY\Y,OM2_pUmi)i?#ioa1n-oGCt*P33G))m7DujbRsmApKTtP&Tb4u>9gR&Z59Um[j9.d&B$+sNnU)]?2@HgLq:f.(GVZYk2M/:CQP/oVj),2:7:)mdV@e60lg\E!h1F_3^J?ZMgOZDi,CguZ1<)bF5dUQ?HU/ED>XclLbF<rHk(MgV>bMbCX=Z`4R%KJYo"H!/=CUQR:@b;qpW#S-.D#$jI#XI2Elh.8BIT9\>YCs09XOHtRuJ.Y`bP=S[Uear(6#j<R"tV43Y1A\PD_;RL#I;+!j/+X\2Of]^V]ihX1+_Y^&Ra"2Z^R/o#*3EKRs"^_-9[Ef<kF%0f?WupASBSVdA.OdZ\-2KDQt>I$1q;6h=^M^,DJWPs''O^Gd*Y.C/G@W<S=;9J[Ntn'/j,kqW"T\>-hM2q7o+g3N.jFkt)=><c0OL>6[lV$ct(:7fUT06XbKT).JRm'a_O)si=GL/+JI"(.s%/UB@%H%l7_s,2'iC&'uqkEjeC/mGe]pW2N;A^4!oh&G2?n8s\uL12A95f3$r6U5%B6S*T&#*HDj82_^G6)8Pe1^V8G$mF0Cc?S)@\=k5Nq:4I-'b@d+8PS4X0en9[";VNWK,I*H"9Y$iaN9=[gYi,XjU"_%atm?d*l&HB].e06<lij]8=Znbo<SfCjU:&0Kt]qnW8D%mT#Y>s@AJeq?!MuQB;Y!:g_M0eUCqR*&4.IC+I`JHJ4D579KC_aWF2(LG:;(#Bs[(`0UNjcVWY8'',.u8?D^qUe&b_3gKgIF%i"pBZ8*`plT#Yo`K<=;?BR;a"Ll%@ZedtjZ*+K@,b8n1T#^.^d>gB0"sqn'jZ'fh1de&jR3]cdUdRPK)6dc.lZ*S=KtL&0(5p.@Z%Nc0p-cee7ao>!_LAaXf1gW*`JPq$!P/cOe3.KM?8)h/CS3Xe9GhqP3F!]1\O=S3-PM0]VsF,hf0,01AeU8uZ:[eF5hLIk0VfR#CQ1RU2"51pnK?%=>2]["Kc?hQGiCbDKFfcB]W(K4[7&UK<pkUW1.9fhR(E##;G9N3>T5(e'c2TF<Qm9CY:"l8P>4Mj%?+B!ci&a+[QliB->/JB_Y2.i;@JHUOo]nenj6Br<$C^-cD6SC-B47R:)K&`O`4TN''toZoKHZJL+"lgU`JHogJB-b<&D\,m8^/2_m"@?SbWdIjeejZ4(+Kn)uTI(e_%OKTEgEG=(?rsol@.,_VIZPg0!P;N8GFs*^A5bBK1Jo5Lqc--?q.-SoL5HY*T"/40N@pbO8&leMVm-[4T.9]CtOG=O$EkOmA42p!kS-LDLFZ",KA&<=-$DaDSb8+?F[^Eg^f9%RAhrM7p0,PKS>,qSoC,DNfFp2g0%1Qedg3;.VM4CYpK3l.tR8pMJ"An.-3J=u6~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000573 00000 n
0000000740 00000 n
0000001017 00000 n
0000001152 00000 n
0000001434 00000 n
0000001539 00000 n
0000003723 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\232w\017\3421\263\325\354R\366\267\025H\343&\012) (\232w\017\3421\263\325\354R\366\267\025H\343&\012)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
3775
%%EOF

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,107 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Times-Roman
<< /BaseFont /Times-Roman
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
4 0 obj
% Page dictionary
<< /Contents 8 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 7 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R5': class PDFCatalog
5 0 obj
% Document Root
<< /Outlines 9 0 R
/PageMode /UseNone
/Pages 7 0 R
/Type /Catalog >>
endobj
% 'R6': class PDFInfo
6 0 obj
<< /Author (anonymous)
/CreationDate (D:20121217140300+05'00')
/Creator (ReportLab PDF Library - www.reportlab.com)
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (unspecified)
/Title (untitled) >>
endobj
% 'R7': class PDFPages
7 0 obj
% page tree
<< /Count 1
/Kids [ 4 0 R ]
/Type /Pages >>
endobj
% 'R8': class PDFStream
8 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 1221 >>
stream
Gb!;f9lC_#%)&jOrujlt_ShJ*O"6h8iW>PfikS&gWDZ%S_V`D%R;KEH>NidDKY$HW46u(Jo4%Sk_BJadcbD\OK^a'j:L8'L$.ETr,n8=mn7(*hquX(Z'if"g23_&g`mV_G&KZ>rGkp^\Q]j+O4:BJ20"sIWds7<%c,SYMS"28a;b<-=Y)s?dH_%@Ts596Yb^Q.rPe_8[JF)'4pp&Yn)<9PRCU@[*rQ=r<VMj!d=o[g\NNqiO%tCr*O\[^7ma"snYKOCDW+k`d>b6VPgWeIlB(:2cMskFk[r?-B>$'b58,'9+<2:b#kqVnKUm;&Yj<I`:#3,RNqfDZ@11^X5/#<XW0L^jN,6:>/<M0o#6tS[iPEA*]S<lDP`9M%:@%g%fKENdC9ooWo+qVP[`]sg;:b#!A)f^O5BT[$2=D1#*/L48m0b?[p'H%1M'e0Qpcl-U!!goAu$>-JL81hqU)6"oB;o39@Y/Ej_ac.ch!t.2CTgW&s8HV:]N$;:q8u@3iP#;TXA)7Ft;Fr?:92HD'M)%t%W_mLr!,Ea4Q>s$%@N^=UOs-*d#pl[91o6"-P%IZ9%^b4@7RG`uO@mAE\sNIgaAF?1[D[Cm3p;(nF\'WB#@E@TJcAfo[B?Kh<H?."]+L5",gsmql#4Vp$WTk(2FN1/@_fPd_K6TER/BlNH$R_oGji$I0NW0p!HZSMLj:45YB[A]"Psl#!j%T0WdqX&6U^2_`Pn)`ZIUToCY_us6q!a^P%Mt#`U3d>d[-QcJ]QqDOLAS2Z"KssU?rZ;'eTq-k7(S\,smOG7A2?YBKT<.,+X9869um!CN;fPQG["hrNtXj>tsEbP/ZmY=EVej>Q#@4XA;l[aU1?d=7`N0gn1gJ'`Oo7NJG+!g`K9Bh9MR>/anJ"s4aHYLGM/lgqc+drH?tM_n2fd"0b\d[hE<Vo6q)JZ["L)UFeh9iOY8W1S"2b9i*g0o3TD7ag1Y+cGX;&?#HB]8hH(8(S"(:h$Os#3c8c:QNl<&/tY`W#A8H<@Mi8pj+21+I4k2/`7jBsdp`TMco?WeZq:GrQLarUF4aB5m:A&5^g8tscGd$HW=.1+SC9T=:CbPo=t,M"F$X@uYirU6l45Pgi>KUS<3\4I:^htlP^-4Yi<j?`MJsDK4V(J;$Wh8:L,nnr[C<j0167b3K7!FX#A&/[ABZ_\M5o0k.jpM0Eqqeg4O:Q'\8kSRoTnYV=8T2*h>@Cj-,6M~>endstream
endobj
% 'R9': class PDFOutlines
9 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 10
0000000000 65535 f
0000000113 00000 n
0000000221 00000 n
0000000386 00000 n
0000000553 00000 n
0000000830 00000 n
0000000964 00000 n
0000001246 00000 n
0000001351 00000 n
0000002715 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\232w\017\3421\263\325\354R\366\267\025H\343&\012) (\232w\017\3421\263\325\354R\366\267\025H\343&\012)]
/Info 6 0 R
/Root 5 0 R
/Size 10 >>
startxref
2766
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 266 >>
stream
Gas2Dh$V"Q%#+-TH\ZZ&"hUVu\d@AMkcVQ1ncDbQrt+l%_(IckJs+QFnDtpnKZ",;]rHVi,;'7t_&JJ9(-KWr_r).3oOKb;biTt5WpcUILrX:mmrLk`;dMiW7NjB@-uUpUM<br)W!>L/>+X$?,F?SPouP182_N=\,N<a%BiUe%c@$*^".J<eEk3d44B3`M8G6ktb.;%9&VI[&pYj!*(hKeTXt^U[DLZFLJ!&HH9"X^kefbd$r2]KuhI!!@kt>e+@;lI7@9h1~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000569 00000 n
0000000742 00000 n
0000001019 00000 n
0000001154 00000 n
0000001423 00000 n
0000001528 00000 n
0000001937 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
1989
%%EOF

View File

@@ -0,0 +1,183 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 12 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 11 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'Annot.NUMBER1': class PDFDictionary
6 0 obj
<< /A << /S /URI
/Type /Action
/URI (http://google.com) >>
/Border [ 0
0
0 ]
/Rect [ 72
741.6535
297.5
770 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Annot.NUMBER2': class LinkAnnotation
7 0 obj
<< /Border [ 0
0
0 ]
/Contents ()
/Dest [ 5 0 R
/Fit ]
/Rect [ 297.5
741.6535
523
770 ]
/Subtype /Link
/Type /Annot >>
endobj
% 'Page2': class PDFPage
8 0 obj
% Page dictionary
<< /Annots [ 6 0 R
7 0 R ]
/Contents 13 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 11 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R9': class PDFCatalog
9 0 obj
% Document Root
<< /Outlines 14 0 R
/PageMode /UseNone
/Pages 11 0 R
/Type /Catalog >>
endobj
% 'R10': class PDFInfo
10 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121220121136+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R11': class PDFPages
11 0 obj
% page tree
<< /Count 2
/Kids [ 5 0 R
8 0 R ]
/Type /Pages >>
endobj
% 'R12': class PDFStream
12 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 252 >>
stream
Gar?,b79+X&4Q==r52g7M*MF\(<2&*<btIl#667s0-;J9q3DWBBVoK"dlZ$"/)]\(]Oq\X+ZPU7OJ!hODu61E4#2eRBo#V*8-FC?j]p=Vi]T]Q)_=?\KK>e/U`B6%84$DM7$lr&_ck;M-Wk*=AJHM*X^:fAHodBKG$(!ifW(gd^$H-FAR!tm6?=]l?5a[T]REEuPQ"p6mUTb#qCs3"1]/1Ers!hT(`$D8^//LnUW5C:Ps$jM3+*Y#G-=SJ~>endstream
endobj
% 'R13': class PDFStream
13 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 159 >>
stream
Gar'"_$YfK&4Gspq[[bT4f$buke3Wq$>j5OTN"2kdJlEJJcUuSjtOFQ/$SOhokt&+MFT0.#ON\kGj#Np19F5jYdHjc`DiN>d:'=phZfrogLRq_`]:XG!d$oZ/^#jHDpT)B^I#(;'+RjrT/.5>pniRU#NV="Vu~>endstream
endobj
% 'R14': class PDFOutlines
14 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 15
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000569 00000 n
0000000742 00000 n
0000001035 00000 n
0000001257 00000 n
0000001443 00000 n
0000001750 00000 n
0000001887 00000 n
0000002158 00000 n
0000002273 00000 n
0000002667 00000 n
0000002970 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(-<j\(\341V\)\016\302\364v\265?8\321\365) (-<j\(\341V\)\016\302\364v\265?8\321\365)]
/Info 10 0 R
/Root 9 0 R
/Size 15 >>
startxref
3022
%%EOF

View File

@@ -0,0 +1,140 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 5 0 R
/F5 6 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'F4': class PDFType1Font
5 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'F5': class PDFType1Font
6 0 obj
% Font Symbol
<< /BaseFont /Symbol
/Encoding /SymbolEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
7 0 obj
% Page dictionary
<< /Contents 11 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 10 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R8': class PDFCatalog
8 0 obj
% Document Root
<< /Outlines 12 0 R
/PageMode /UseNone
/Pages 10 0 R
/Type /Catalog >>
endobj
% 'R9': class PDFInfo
9 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R10': class PDFPages
10 0 obj
% page tree
<< /Count 1
/Kids [ 7 0 R ]
/Type /Pages >>
endobj
% 'R11': class PDFStream
11 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 386 >>
stream
Gatn!b>*^E(kq]0]YdmHM1r_35Y6nBUTE7<oEBc]nH)!H(I#R0:i8&.7+6n=k.dGT["QL/ZJVqgXu4(T5TKV$,aj>"_l`XG2rCAR2W73&1?%rVAC+GsKJt$;(T6&)ocBWI'uGo^<*(l]j*3h.Gm=5+TW$W97H[*Fp%p8l29a"#&a9.CS#U2i\N\'QU-U0phThNW;NdFrN]81O6DRYalYT'pbfF8a%EKAQ0e#MTCk>P\3l&9u':aN!HA@paN5gST9m`r]acm[-D=^q4T7&\YFf[YHUH;BVk%\`(;p'dIWW.QPMO'a+B/#P7T4Jq)SZp)hX<k%<l@cH?ch+)`CX\pR)=Vh[5Q>?:[XW^tY0mV$U\-]NG:M1':(d4bn@^J"Ic=3~>endstream
endobj
% 'R12': class PDFOutlines
12 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 13
0000000000 65535 f
0000000113 00000 n
0000000257 00000 n
0000000422 00000 n
0000000593 00000 n
0000000768 00000 n
0000000949 00000 n
0000001105 00000 n
0000001384 00000 n
0000001520 00000 n
0000001790 00000 n
0000001897 00000 n
0000002427 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 9 0 R
/Root 8 0 R
/Size 13 >>
startxref
2479
%%EOF

View File

@@ -0,0 +1,140 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R
/F4 5 0 R
/F5 6 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'F4': class PDFType1Font
5 0 obj
% Font Helvetica-Oblique
<< /BaseFont /Helvetica-Oblique
/Encoding /WinAnsiEncoding
/Name /F4
/Subtype /Type1
/Type /Font >>
endobj
% 'F5': class PDFType1Font
6 0 obj
% Font Symbol
<< /BaseFont /Symbol
/Encoding /SymbolEncoding
/Name /F5
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
7 0 obj
% Page dictionary
<< /Contents 11 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 10 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R8': class PDFCatalog
8 0 obj
% Document Root
<< /Outlines 12 0 R
/PageMode /UseNone
/Pages 10 0 R
/Type /Catalog >>
endobj
% 'R9': class PDFInfo
9 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R10': class PDFPages
10 0 obj
% page tree
<< /Count 1
/Kids [ 7 0 R ]
/Type /Pages >>
endobj
% 'R11': class PDFStream
11 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 386 >>
stream
Gatn!b>*^E(kq]0]YdmHM1r_35Y6nBUTE7<oEBc]nH)!H(I#R0:i8&.7+6n=k.dGT["QL/ZJVqgXu4(T5TKV$,aj>"_l`XG2rCAR2W73&1?%rVAC+GsKJt$;(T6&)ocBWI'uGo^<*(l]j*3h.Gm=5+TW$W97H[*Fp%p8l29a"#&a9.CS#U2i\N\'QU-U0phThNW;NdFrN]81O6DRYalYT'pbfF8a%EKAQ0e#MTCk>P\3l&9u':aN!HA@paN5gST9m`r]acm[-D=^q4T7&\YFf[YHUH;BVk%\`(;p'dIWW.QPMO'a+B/#P7T4Jq)SZp)hX<k%<l@cH?ch+)`CX\pR)=Vh[5Q>?:[XW^tY0mV$U\-]NG:M1':(d4bn@^J"Ic=3~>endstream
endobj
% 'R12': class PDFOutlines
12 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 13
0000000000 65535 f
0000000113 00000 n
0000000257 00000 n
0000000422 00000 n
0000000593 00000 n
0000000768 00000 n
0000000949 00000 n
0000001105 00000 n
0000001384 00000 n
0000001520 00000 n
0000001790 00000 n
0000001897 00000 n
0000002427 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 9 0 R
/Root 8 0 R
/Size 13 >>
startxref
2479
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 399 >>
stream
GasbWbAP0N&4Q>Undfr4,%3SIa2([(7Fe^/VNQFZ7mLg_#l]<NB>U<<Pn<%'43'-uS-d$/KB0a1!3[!@"b@M1$Za61Ic*BOfdY82_Ua\"bnD_9Ba%dp,l@X7l[7VIN#OI[&S;CTc.eUdNq3b"o+U+"MUh^9rf51P^?NWjOQUFW?<.b[\\hWm36HW=@!\$0/acQ_?AVnk;o@3fWjFIFV;Op#kLiXWDj"Ski.EIAVWg-#fM47i9BfJZfa?;ikkTO(TbT2]e_:!6*$ijaU-</cM3P3rYe0IR-Ycqp74VBpTu,T\YG@EK;tOF7%nFLbY`2OjD3Q-N;/4`QWA-;9$Hp=F8r^5UIb7,h@2l&_fMmHg%iVR&7e^&@5A7A5HI-4DF<bhSrt9VN$SjEoM?~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000569 00000 n
0000000742 00000 n
0000001019 00000 n
0000001154 00000 n
0000001423 00000 n
0000001528 00000 n
0000002070 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2122
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 520 >>
stream
GasbX9i&Y\%#459qB()987[RHVMg*e+;baN!p#(qm#+GF@tG)<+"+&bL"]:m<p0.>`,F^+JYYeis7Hu^f"l0r5U!WJ:g.OO:N5dNj?$(8`Kge+SeE/ER\B"8#X<p8H,_$;h$+Gh$F9nfRensRG^agt?!i-:6af%Get6ij3c*jO#/Y_qaK$2H>OLEeHTVJf?,BTS"(0i)ppE`4gkl_<.79@tqq6[4K0:+=+e*7m0Mkki,*S2ao)tE9@F5EcK6c#0>?$.TF\Ufp<>Hcsp<Emk3u<#09^."[WaDG#XTGOaDUbm0k/Z:32=?3uI.APX0BUUNKm@(r>[P^9qdO<q(K9Mn@_V"u'N/)/rm.<&#SV5=:e&u[&Xqpq#Yh[3KI48_66-`uPC#ue2aZDYh>$N3&*)ap9`u7$RjMK!/2[.FTb,5!#C)4`mE[PA[7hZ,b7mu4k2*VD9T80bW\W:Q[ltJ#-=a-dkVFr.1)@PVT8?F/OZqppgTmn\fbJ'+A"^S%]VZfGrW'Q/'d<~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000569 00000 n
0000000742 00000 n
0000001019 00000 n
0000001154 00000 n
0000001423 00000 n
0000001528 00000 n
0000002191 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2243
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20130304200123+00'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 665 >>
stream
Gau1,cYhJk%*%`?r!ki$"fb,!/6bBe_m#t&d7ZF35hi+=\n&d+g$=\C:&.S"j]!L])=f0?dq?c\T^cOUpZVtQ28XNL^fZE=@%;6Kn)/PoX1rdg#.Ckb\K5b5iWta;+FXHGj*\*+2uWko;hsbcK'?309qV.rfN`iUp^3M2_qWZ/q!`O\oD`U!lZUkg,<#)N"hsAbDj6;!E&jC1M7]\S7&"OMlG.V4<#SS=CP,:3i-!Z3r,qZ;8R.-i'X%/8naO8JkDQoL6(?epc.?8\3#doe]QL.4OS#^)D4pPJep1gI+E>8U$Y1=sY/tW5G#)B9J1]1"NRm+)K!9e_%?t"h>+="IAQPh5<R!L5ZU0@Pi=6FAX\^(cnjJkNEhUXuKdnShWiTI(Flg%T_NpGp<E:_O=h.@?j[-("D[C+&C_hcNlkP9#C__]MlkG1dU?T2EVOppPFR=&"(=sWeW<WCnED;L\<r!FNi$YFFcK][Q:G;f5C4O?-dMV+'Y"mC^jto8f,`UcEjs-JOF#:>gVa.8$1feup#,V_t@jTdg>,lNe'qL?3A;t#1nj?"DE>;_&a]r"AVG_:cRt!2.foW;odV')nO%++KNoC4?M*i`^5"TOpZb*mB8l$EXguUE"Fe7a%p(;6;PFM,o;5^TBf!T67^YYWdrWA/6KZ3~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000569 00000 n
0000000742 00000 n
0000001019 00000 n
0000001154 00000 n
0000001423 00000 n
0000001528 00000 n
0000002336 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\275\375"\226\004\012\247\311\024I9\2513L\031\365) (\275\375"\226\004\012\247\311\024I9\2513L\031\365)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2388
%%EOF

View File

@@ -0,0 +1,118 @@
%PDF-1.4
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
% The standard fonts dictionary
<< /F1 2 0 R
/F2 3 0 R
/F3 4 0 R >>
endobj
% 'F1': class PDFType1Font
2 0 obj
% Font Helvetica
<< /BaseFont /Helvetica
/Encoding /WinAnsiEncoding
/Name /F1
/Subtype /Type1
/Type /Font >>
endobj
% 'F2': class PDFType1Font
3 0 obj
% Font Courier-Bold
<< /BaseFont /Courier-Bold
/Encoding /WinAnsiEncoding
/Name /F2
/Subtype /Type1
/Type /Font >>
endobj
% 'F3': class PDFType1Font
4 0 obj
% Font Helvetica-Bold
<< /BaseFont /Helvetica-Bold
/Encoding /WinAnsiEncoding
/Name /F3
/Subtype /Type1
/Type /Font >>
endobj
% 'Page1': class PDFPage
5 0 obj
% Page dictionary
<< /Contents 9 0 R
/MediaBox [ 0
0
595.2756
841.8898 ]
/Parent 8 0 R
/Resources << /Font 1 0 R
/ProcSet [ /PDF
/Text
/ImageB
/ImageC
/ImageI ] >>
/Rotate 0
/Trans << >>
/Type /Page >>
endobj
% 'R6': class PDFCatalog
6 0 obj
% Document Root
<< /Outlines 10 0 R
/PageMode /UseNone
/Pages 8 0 R
/Type /Catalog >>
endobj
% 'R7': class PDFInfo
7 0 obj
<< /Author (\(anonymous\))
/CreationDate (D:20121217140300+05'00')
/Creator (\(unspecified\))
/Keywords ()
/Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\))
/Title (\(anonymous\)) >>
endobj
% 'R8': class PDFPages
8 0 obj
% page tree
<< /Count 1
/Kids [ 5 0 R ]
/Type /Pages >>
endobj
% 'R9': class PDFStream
9 0 obj
% page stream
<< /Filter [ /ASCII85Decode
/FlateDecode ]
/Length 552 >>
stream
Gas2H9i&Y\%#459qB())PEmM/RPkf<0Yrjt/r\QsLOF8uYu6r9nb9;PVX'UQ[;$]EM>bFc.Y-P(gilZtbUcHN!e^]g"/2(`]7:,*7mCu=)E*e@W>op@`>PBZJp7G#k@l0GCUYE47@;@HLn%pppDcgCh;3\<_e=Is2kP9$4qt_\#HjWCP@hhUY"H2WWnR:9(a^%*8DLOu3tc+6=9^hH:*iPmk#i2<j=1`K6N:0-d22A`+JkK*0M+)@$eUFf'$F0e'X_4M)hnp<=#7_9>Y/04\LXB_-1"T'6^giN7^i:+bIU"o2^+)gGNrU78K(Le3%fQV/1&Dh8pVnL1YgJFWPOOQ1,5:R:r=.QeX'.nAi`9L*^Ud"71PP!<$%uHjW\cqX?N3?C:L8R>^hq+I<uZqA6=9_%BFE?$h<Z75K2##U2S+jWP>>uc\9bkI/gUt7iI$;p?9tZ9pm@"!&*3R>;*a5ndZFclN$p%UoGG%ZOMOe$Z7e*2dZ3X\Qrl,DOF=<.##.U'7:-*n^]_2O29Rak7Js'^q'C"$q($o!HI`:nG<Be~>endstream
endobj
% 'R10': class PDFOutlines
10 0 obj
<< /Count 0
/Type /Outlines >>
endobj
xref
0 11
0000000000 65535 f
0000000113 00000 n
0000000233 00000 n
0000000398 00000 n
0000000569 00000 n
0000000742 00000 n
0000001019 00000 n
0000001154 00000 n
0000001423 00000 n
0000001528 00000 n
0000002223 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\2514PW\375b\346M\037u\307 \354\014_\254) (\2514PW\375b\346M\037u\307 \354\014_\254)]
/Info 7 0 R
/Root 6 0 R
/Size 11 >>
startxref
2275
%%EOF

Some files were not shown because too many files have changed in this diff Show More